diff --git a/.gitignore b/.gitignore index 06cb1ac1eccfb..a2be8a67d8c9d 100644 --- a/.gitignore +++ b/.gitignore @@ -44,6 +44,7 @@ node_modules/ !/apps/updatenotification !/apps/theming !/apps/twofactor_backupcodes +!/apps/user_picker !/apps/user_status !/apps/weather_status !/apps/webhook_listeners diff --git a/.tx/config b/.tx/config index fabfedd91a4df..5ff66fceb1a6e 100644 --- a/.tx/config +++ b/.tx/config @@ -170,6 +170,12 @@ source_file = translationfiles/templates/user_ldap.pot source_lang = en type = PO +[o:nextcloud:p:nextcloud:r:user_picker] +file_filter = translationfiles//user_picker.po +source_file = translationfiles/templates/user_picker.pot +source_lang = en +type = PO + [o:nextcloud:p:nextcloud:r:user_status] file_filter = translationfiles//user_status.po source_file = translationfiles/templates/user_status.pot diff --git a/REUSE.toml b/REUSE.toml index e1e801fbeba38..2edf5cd8c8b60 100644 --- a/REUSE.toml +++ b/REUSE.toml @@ -268,7 +268,7 @@ SPDX-FileCopyrightText = "2021 Nextcloud GmbH and Nextcloud contributors" SPDX-License-Identifier = "AGPL-3.0-or-later" [[annotations]] -path = ["apps/encryption/img/app.svg", "apps/federation/img/app.svg", "apps/files/img/add-color.png", "apps/files/img/add-color.svg", "apps/files/img/app-dark.svg", "apps/files/img/app.svg", "apps/files/img/change.png", "apps/files/img/change.svg", "apps/files/img/delete-color.png", "apps/files/img/delete-color.svg", "apps/files/img/folder.svg", "apps/files/img/folder-move.svg", "apps/files_external/img/app-dark.svg", "apps/files_external/img/app.svg", "apps/user_ldap/img/app-dark.svg", "apps/user_ldap/img/app.svg", "apps/comments/img/comments-dark.svg", "apps/comments/img/comments.svg", "apps/files_reminders/img/alarm.svg", "apps/files_reminders/img/app-dark.svg", "apps/files_reminders/img/app.svg", "apps/files_versions/img/app-dark.svg", "apps/files_versions/img/app.svg", "apps/files_trashbin/img/app-dark.svg", "apps/files_trashbin/img/app.svg", "apps/theming/img/accessibility-dark.svg", "apps/testing/img/app.svg", "apps/sharebymail/img/app.svg", "apps/systemtags/img/app.svg", "apps/provisioning_api/img/app.svg", "apps/settings/img/apps.svg", "apps/settings/img/change.svg", "apps/settings/img/help.svg", "apps/settings/img/password.svg", "apps/settings/img/personal.png", "apps/settings/img/personal.svg", "apps/settings/img/share.svg", "apps/settings/img/users-white.svg", "apps/settings/img/users.svg", "apps/files_sharing/img/app.svg", "apps/settings/img/admin.svg", "apps/settings/img/library_add_check.svg", "apps/settings/img/settings.svg", "apps/settings/img/settings_apps.svg", "apps/settings/img/toggle-filelist.svg", "apps/webhook_listeners/img/app-dark.svg", "apps/webhook_listeners/img/app.svg", "core/img/filetypes/application-pdf.svg", "core/img/breadcrumb.svg", "core/img/filetypes/application.svg", "core/img/filetypes/audio.svg", "core/img/filetypes/file.svg", "core/img/filetypes/folder-drag-accept.svg", "core/img/filetypes/folder-encrypted.svg", "core/img/filetypes/folder-external.svg", "core/img/filetypes/folder-public.svg", "core/img/filetypes/folder-shared.svg", "core/img/filetypes/folder-starred.svg", "core/img/filetypes/folder.svg", "core/img/filetypes/image.svg", "core/img/filetypes/link.svg", "core/img/filetypes/location.svg", "core/img/filetypes/mindmap.svg", "core/img/filetypes/text-calendar.svg", "core/img/filetypes/text-code.svg", "core/img/filetypes/text-vcard.svg", "core/img/filetypes/text.svg", "core/img/filetypes/video.svg", "core/img/filetypes/x-office-document.svg", "core/img/filetypes/x-office-drawing.svg", "core/img/filetypes/x-office-form-template.svg", "core/img/filetypes/x-office-form.svg", "core/img/filetypes/x-office-presentation.svg", "core/img/filetypes/x-office-spreadsheet.svg", "core/img/places/calendar-dark.png", "core/img/places/calendar.png", "core/img/places/calendar.svg", "core/img/places/contacts-dark.png", "core/img/places/contacts.svg", "core/img/places/default-app-icon.svg", "core/img/places/files.svg", "core/img/places/home.svg", "core/img/places/link.svg", "core/img/places/music.svg", "core/img/places/picture.svg", "core/img/rating/s0.svg", "core/img/rating/s1.svg", "core/img/rating/s10.svg", "core/img/rating/s2.svg", "core/img/rating/s3.svg", "core/img/rating/s4.svg", "core/img/rating/s5.svg", "core/img/rating/s6.svg", "core/img/rating/s7.svg", "core/img/rating/s8.svg", "core/img/rating/s9.svg", "core/img/mail.svg", "core/img/rss.svg", "core/img/clients/desktop.svg", "core/img/clients/phone.svg", "core/img/clients/tablet.svg", "core/img/categories/auth.svg", "core/img/categories/bundles.svg", "core/img/categories/customization.svg", "core/img/categories/files.svg", "core/img/categories/games.svg", "core/img/categories/integration.svg", "core/img/categories/monitoring.svg", "core/img/categories/multimedia.svg", "core/img/categories/office.svg", "core/img/categories/organization.svg", "core/img/categories/social.svg", "core/img/categories/workflow.svg", "core/img/apps/circles.svg", "core/img/apps/notes.svg", "core/img/apps/richdocuments.svg", "core/img/caldav/attendees.png", "core/img/caldav/attendees.svg", "core/img/caldav/description.png", "core/img/caldav/description.svg", "core/img/caldav/link.png", "core/img/caldav/link.svg", "core/img/caldav/location.png", "core/img/caldav/location.svg", "core/img/caldav/organizer.png", "core/img/caldav/organizer.svg", "core/img/caldav/time.png", "core/img/caldav/time.svg", "core/img/caldav/title.png", "core/img/caldav/title.svg", "core/img/actions/add-folder-description.svg", "core/img/actions/add.svg", "core/img/actions/address.png", "core/img/actions/address.svg", "core/img/actions/alert-outline.svg", "core/img/actions/arrow-left.svg", "core/img/actions/arrow-right.svg", "core/img/actions/audio-off.svg", "core/img/actions/audio.svg", "core/img/actions/caret-white.svg", "core/img/actions/caret.svg", "core/img/actions/change.svg", "core/img/actions/clippy.svg", "core/img/actions/close.svg", "core/img/actions/comment.png", "core/img/actions/comment.svg", "core/img/actions/confirm-fade.svg", "core/img/actions/confirm-white.svg", "core/img/actions/confirm.svg", "core/img/actions/delete.png", "core/img/actions/delete.svg", "core/img/actions/details.svg", "core/img/actions/disabled-user.svg", "core/img/actions/disabled-users.svg", "core/img/actions/download.png", "core/img/actions/download.svg", "core/img/actions/edit.svg", "core/img/actions/error-white.svg", "core/img/actions/error.svg", "core/img/actions/external.svg", "core/img/actions/filter.svg", "core/img/actions/fullscreen.svg", "core/img/actions/group.svg", "core/img/actions/history.png", "core/img/actions/history.svg", "core/img/actions/info-white.svg", "core/img/actions/info.png", "core/img/actions/info.svg", "core/img/actions/logout.svg", "core/img/actions/mail.svg", "core/img/actions/menu-sidebar.svg", "core/img/actions/menu.svg", "core/img/actions/more-white.svg", "core/img/actions/more.png", "core/img/actions/more.svg", "core/img/actions/password-white.svg", "core/img/actions/password.png", "core/img/actions/password.svg", "core/img/actions/pause.svg", "core/img/actions/phone.svg", "core/img/actions/play-add.svg", "core/img/actions/play-next.svg", "core/img/actions/play-previous.svg", "core/img/actions/play.svg", "core/img/actions/profile.svg", "core/img/actions/projects.svg", "core/img/actions/public-white.svg", "core/img/actions/public.svg", "core/img/actions/quota.svg", "core/img/actions/recent.svg", "core/img/actions/rename.svg", "core/img/actions/screen-off.svg", "core/img/actions/screen.svg", "core/img/actions/search.svg", "core/img/actions/settings-dark.svg", "core/img/actions/settings.svg", "core/img/actions/share.png", "core/img/actions/share.svg", "core/img/actions/shared.svg", "core/img/actions/sound-off.svg", "core/img/actions/sound.svg", "core/img/actions/star-dark.svg", "core/img/actions/star.png", "core/img/actions/star.svg", "core/img/actions/starred.png", "core/img/actions/starred.svg", "core/img/actions/tag.png", "core/img/actions/tag.svg", "core/img/actions/template-add.svg", "core/img/actions/timezone.svg", "core/img/actions/toggle-background.svg", "core/img/actions/toggle-filelist.svg", "core/img/actions/toggle-pictures.svg", "core/img/actions/toggle.svg", "core/img/actions/triangle-e.svg", "core/img/actions/triangle-n.svg", "core/img/actions/triangle-s.svg", "core/img/actions/unshare.svg", "core/img/actions/upload.svg", "core/img/actions/user-admin.svg", "core/img/actions/user.svg", "core/img/actions/verified.svg", "core/img/actions/verify.svg", "core/img/actions/verifying.svg", "core/img/actions/video-off.svg", "core/img/actions/video-switch.svg", "core/img/actions/video.svg", "core/img/actions/view-close.svg", "core/img/actions/view-download.svg", "core/img/actions/view-next.svg", "core/img/actions/view-pause.svg", "core/img/actions/view-play.svg", "core/img/actions/view-previous.svg", "core/img/places/contacts-dark.png", "core/img/places/contacts.svg", "apps/user_status/img/app-dark.svg", "apps/user_status/img/app.svg", "apps/theming/img/app-dark.svg", "apps/theming/img/app.svg", "apps/updatenotification/img/app.svg", "apps/weather_status/img/app-dark.svg", "apps/weather_status/img/app.svg", "apps/updatenotification/img/notification.svg"] +path = ["apps/encryption/img/app.svg", "apps/federation/img/app.svg", "apps/files/img/add-color.png", "apps/files/img/add-color.svg", "apps/files/img/app-dark.svg", "apps/files/img/app.svg", "apps/files/img/change.png", "apps/files/img/change.svg", "apps/files/img/delete-color.png", "apps/files/img/delete-color.svg", "apps/files/img/folder.svg", "apps/files/img/folder-move.svg", "apps/files_external/img/app-dark.svg", "apps/files_external/img/app.svg", "apps/user_ldap/img/app-dark.svg", "apps/user_ldap/img/app.svg", "apps/comments/img/comments-dark.svg", "apps/comments/img/comments.svg", "apps/files_reminders/img/alarm.svg", "apps/files_reminders/img/app-dark.svg", "apps/files_reminders/img/app.svg", "apps/files_versions/img/app-dark.svg", "apps/files_versions/img/app.svg", "apps/files_trashbin/img/app-dark.svg", "apps/files_trashbin/img/app.svg", "apps/theming/img/accessibility-dark.svg", "apps/testing/img/app.svg", "apps/sharebymail/img/app.svg", "apps/systemtags/img/app.svg", "apps/provisioning_api/img/app.svg", "apps/settings/img/apps.svg", "apps/settings/img/change.svg", "apps/settings/img/help.svg", "apps/settings/img/password.svg", "apps/settings/img/personal.png", "apps/settings/img/personal.svg", "apps/settings/img/share.svg", "apps/settings/img/users-white.svg", "apps/settings/img/users.svg", "apps/files_sharing/img/app.svg", "apps/settings/img/admin.svg", "apps/settings/img/library_add_check.svg", "apps/settings/img/settings.svg", "apps/settings/img/settings_apps.svg", "apps/settings/img/toggle-filelist.svg", "apps/webhook_listeners/img/app-dark.svg", "apps/webhook_listeners/img/app.svg", "core/img/filetypes/application-pdf.svg", "core/img/breadcrumb.svg", "core/img/filetypes/application.svg", "core/img/filetypes/audio.svg", "core/img/filetypes/file.svg", "core/img/filetypes/folder-drag-accept.svg", "core/img/filetypes/folder-encrypted.svg", "core/img/filetypes/folder-external.svg", "core/img/filetypes/folder-public.svg", "core/img/filetypes/folder-shared.svg", "core/img/filetypes/folder-starred.svg", "core/img/filetypes/folder.svg", "core/img/filetypes/image.svg", "core/img/filetypes/link.svg", "core/img/filetypes/location.svg", "core/img/filetypes/mindmap.svg", "core/img/filetypes/text-calendar.svg", "core/img/filetypes/text-code.svg", "core/img/filetypes/text-vcard.svg", "core/img/filetypes/text.svg", "core/img/filetypes/video.svg", "core/img/filetypes/x-office-document.svg", "core/img/filetypes/x-office-drawing.svg", "core/img/filetypes/x-office-form-template.svg", "core/img/filetypes/x-office-form.svg", "core/img/filetypes/x-office-presentation.svg", "core/img/filetypes/x-office-spreadsheet.svg", "core/img/places/calendar-dark.png", "core/img/places/calendar.png", "core/img/places/calendar.svg", "core/img/places/contacts-dark.png", "core/img/places/contacts.svg", "core/img/places/default-app-icon.svg", "core/img/places/files.svg", "core/img/places/home.svg", "core/img/places/link.svg", "core/img/places/music.svg", "core/img/places/picture.svg", "core/img/rating/s0.svg", "core/img/rating/s1.svg", "core/img/rating/s10.svg", "core/img/rating/s2.svg", "core/img/rating/s3.svg", "core/img/rating/s4.svg", "core/img/rating/s5.svg", "core/img/rating/s6.svg", "core/img/rating/s7.svg", "core/img/rating/s8.svg", "core/img/rating/s9.svg", "core/img/mail.svg", "core/img/rss.svg", "core/img/clients/desktop.svg", "core/img/clients/phone.svg", "core/img/clients/tablet.svg", "core/img/categories/auth.svg", "core/img/categories/bundles.svg", "core/img/categories/customization.svg", "core/img/categories/files.svg", "core/img/categories/games.svg", "core/img/categories/integration.svg", "core/img/categories/monitoring.svg", "core/img/categories/multimedia.svg", "core/img/categories/office.svg", "core/img/categories/organization.svg", "core/img/categories/social.svg", "core/img/categories/workflow.svg", "core/img/apps/circles.svg", "core/img/apps/notes.svg", "core/img/apps/richdocuments.svg", "core/img/caldav/attendees.png", "core/img/caldav/attendees.svg", "core/img/caldav/description.png", "core/img/caldav/description.svg", "core/img/caldav/link.png", "core/img/caldav/link.svg", "core/img/caldav/location.png", "core/img/caldav/location.svg", "core/img/caldav/organizer.png", "core/img/caldav/organizer.svg", "core/img/caldav/time.png", "core/img/caldav/time.svg", "core/img/caldav/title.png", "core/img/caldav/title.svg", "core/img/actions/add-folder-description.svg", "core/img/actions/add.svg", "core/img/actions/address.png", "core/img/actions/address.svg", "core/img/actions/alert-outline.svg", "core/img/actions/arrow-left.svg", "core/img/actions/arrow-right.svg", "core/img/actions/audio-off.svg", "core/img/actions/audio.svg", "core/img/actions/caret-white.svg", "core/img/actions/caret.svg", "core/img/actions/change.svg", "core/img/actions/clippy.svg", "core/img/actions/close.svg", "core/img/actions/comment.png", "core/img/actions/comment.svg", "core/img/actions/confirm-fade.svg", "core/img/actions/confirm-white.svg", "core/img/actions/confirm.svg", "core/img/actions/delete.png", "core/img/actions/delete.svg", "core/img/actions/details.svg", "core/img/actions/disabled-user.svg", "core/img/actions/disabled-users.svg", "core/img/actions/download.png", "core/img/actions/download.svg", "core/img/actions/edit.svg", "core/img/actions/error-white.svg", "core/img/actions/error.svg", "core/img/actions/external.svg", "core/img/actions/filter.svg", "core/img/actions/fullscreen.svg", "core/img/actions/group.svg", "core/img/actions/history.png", "core/img/actions/history.svg", "core/img/actions/info-white.svg", "core/img/actions/info.png", "core/img/actions/info.svg", "core/img/actions/logout.svg", "core/img/actions/mail.svg", "core/img/actions/menu-sidebar.svg", "core/img/actions/menu.svg", "core/img/actions/more-white.svg", "core/img/actions/more.png", "core/img/actions/more.svg", "core/img/actions/password-white.svg", "core/img/actions/password.png", "core/img/actions/password.svg", "core/img/actions/pause.svg", "core/img/actions/phone.svg", "core/img/actions/play-add.svg", "core/img/actions/play-next.svg", "core/img/actions/play-previous.svg", "core/img/actions/play.svg", "core/img/actions/profile.svg", "core/img/actions/projects.svg", "core/img/actions/public-white.svg", "core/img/actions/public.svg", "core/img/actions/quota.svg", "core/img/actions/recent.svg", "core/img/actions/rename.svg", "core/img/actions/screen-off.svg", "core/img/actions/screen.svg", "core/img/actions/search.svg", "core/img/actions/settings-dark.svg", "core/img/actions/settings.svg", "core/img/actions/share.png", "core/img/actions/share.svg", "core/img/actions/shared.svg", "core/img/actions/sound-off.svg", "core/img/actions/sound.svg", "core/img/actions/star-dark.svg", "core/img/actions/star.png", "core/img/actions/star.svg", "core/img/actions/starred.png", "core/img/actions/starred.svg", "core/img/actions/tag.png", "core/img/actions/tag.svg", "core/img/actions/template-add.svg", "core/img/actions/timezone.svg", "core/img/actions/toggle-background.svg", "core/img/actions/toggle-filelist.svg", "core/img/actions/toggle-pictures.svg", "core/img/actions/toggle.svg", "core/img/actions/triangle-e.svg", "core/img/actions/triangle-n.svg", "core/img/actions/triangle-s.svg", "core/img/actions/unshare.svg", "core/img/actions/upload.svg", "core/img/actions/user-admin.svg", "core/img/actions/user.svg", "core/img/actions/verified.svg", "core/img/actions/verify.svg", "core/img/actions/verifying.svg", "core/img/actions/video-off.svg", "core/img/actions/video-switch.svg", "core/img/actions/video.svg", "core/img/actions/view-close.svg", "core/img/actions/view-download.svg", "core/img/actions/view-next.svg", "core/img/actions/view-pause.svg", "core/img/actions/view-play.svg", "core/img/actions/view-previous.svg", "core/img/places/contacts-dark.png", "core/img/places/contacts.svg", "apps/user_picker/img/app-dark.svg", "apps/user_picker/img/app.svg", "apps/user_status/img/app-dark.svg", "apps/user_status/img/app.svg", "apps/theming/img/app-dark.svg", "apps/theming/img/app.svg", "apps/updatenotification/img/app.svg", "apps/weather_status/img/app-dark.svg", "apps/weather_status/img/app.svg", "apps/updatenotification/img/notification.svg"] precedence = "aggregate" SPDX-FileCopyrightText = "2018-2024 Google LLC" SPDX-License-Identifier = "Apache-2.0" diff --git a/apps/user_picker/.noopenapi b/apps/user_picker/.noopenapi new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/apps/user_picker/appinfo/info.xml b/apps/user_picker/appinfo/info.xml new file mode 100644 index 0000000000000..3167fe7319787 --- /dev/null +++ b/apps/user_picker/appinfo/info.xml @@ -0,0 +1,19 @@ + + + + user_picker + Profile picker + Profile smart picker and link preview + + 1.0.0 + agpl + Julien Veyssier + UserPicker + integration + + + + diff --git a/apps/user_picker/composer/autoload.php b/apps/user_picker/composer/autoload.php new file mode 100644 index 0000000000000..834cda88e9dd4 --- /dev/null +++ b/apps/user_picker/composer/autoload.php @@ -0,0 +1,22 @@ + + * Jordi Boggiano + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer\Autoload; + +/** + * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. + * + * $loader = new \Composer\Autoload\ClassLoader(); + * + * // register classes with namespaces + * $loader->add('Symfony\Component', __DIR__.'/component'); + * $loader->add('Symfony', __DIR__.'/framework'); + * + * // activate the autoloader + * $loader->register(); + * + * // to enable searching the include path (eg. for PEAR packages) + * $loader->setUseIncludePath(true); + * + * In this example, if you try to use a class in the Symfony\Component + * namespace or one of its children (Symfony\Component\Console for instance), + * the autoloader will first look for the class under the component/ + * directory, and it will then fallback to the framework/ directory if not + * found before giving up. + * + * This class is loosely based on the Symfony UniversalClassLoader. + * + * @author Fabien Potencier + * @author Jordi Boggiano + * @see https://www.php-fig.org/psr/psr-0/ + * @see https://www.php-fig.org/psr/psr-4/ + */ +class ClassLoader +{ + /** @var \Closure(string):void */ + private static $includeFile; + + /** @var string|null */ + private $vendorDir; + + // PSR-4 + /** + * @var array> + */ + private $prefixLengthsPsr4 = array(); + /** + * @var array> + */ + private $prefixDirsPsr4 = array(); + /** + * @var list + */ + private $fallbackDirsPsr4 = array(); + + // PSR-0 + /** + * List of PSR-0 prefixes + * + * Structured as array('F (first letter)' => array('Foo\Bar (full prefix)' => array('path', 'path2'))) + * + * @var array>> + */ + private $prefixesPsr0 = array(); + /** + * @var list + */ + private $fallbackDirsPsr0 = array(); + + /** @var bool */ + private $useIncludePath = false; + + /** + * @var array + */ + private $classMap = array(); + + /** @var bool */ + private $classMapAuthoritative = false; + + /** + * @var array + */ + private $missingClasses = array(); + + /** @var string|null */ + private $apcuPrefix; + + /** + * @var array + */ + private static $registeredLoaders = array(); + + /** + * @param string|null $vendorDir + */ + public function __construct($vendorDir = null) + { + $this->vendorDir = $vendorDir; + self::initializeIncludeClosure(); + } + + /** + * @return array> + */ + public function getPrefixes() + { + if (!empty($this->prefixesPsr0)) { + return call_user_func_array('array_merge', array_values($this->prefixesPsr0)); + } + + return array(); + } + + /** + * @return array> + */ + public function getPrefixesPsr4() + { + return $this->prefixDirsPsr4; + } + + /** + * @return list + */ + public function getFallbackDirs() + { + return $this->fallbackDirsPsr0; + } + + /** + * @return list + */ + public function getFallbackDirsPsr4() + { + return $this->fallbackDirsPsr4; + } + + /** + * @return array Array of classname => path + */ + public function getClassMap() + { + return $this->classMap; + } + + /** + * @param array $classMap Class to filename map + * + * @return void + */ + public function addClassMap(array $classMap) + { + if ($this->classMap) { + $this->classMap = array_merge($this->classMap, $classMap); + } else { + $this->classMap = $classMap; + } + } + + /** + * Registers a set of PSR-0 directories for a given prefix, either + * appending or prepending to the ones previously set for this prefix. + * + * @param string $prefix The prefix + * @param list|string $paths The PSR-0 root directories + * @param bool $prepend Whether to prepend the directories + * + * @return void + */ + public function add($prefix, $paths, $prepend = false) + { + $paths = (array) $paths; + if (!$prefix) { + if ($prepend) { + $this->fallbackDirsPsr0 = array_merge( + $paths, + $this->fallbackDirsPsr0 + ); + } else { + $this->fallbackDirsPsr0 = array_merge( + $this->fallbackDirsPsr0, + $paths + ); + } + + return; + } + + $first = $prefix[0]; + if (!isset($this->prefixesPsr0[$first][$prefix])) { + $this->prefixesPsr0[$first][$prefix] = $paths; + + return; + } + if ($prepend) { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $paths, + $this->prefixesPsr0[$first][$prefix] + ); + } else { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $this->prefixesPsr0[$first][$prefix], + $paths + ); + } + } + + /** + * Registers a set of PSR-4 directories for a given namespace, either + * appending or prepending to the ones previously set for this namespace. + * + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param list|string $paths The PSR-4 base directories + * @param bool $prepend Whether to prepend the directories + * + * @throws \InvalidArgumentException + * + * @return void + */ + public function addPsr4($prefix, $paths, $prepend = false) + { + $paths = (array) $paths; + if (!$prefix) { + // Register directories for the root namespace. + if ($prepend) { + $this->fallbackDirsPsr4 = array_merge( + $paths, + $this->fallbackDirsPsr4 + ); + } else { + $this->fallbackDirsPsr4 = array_merge( + $this->fallbackDirsPsr4, + $paths + ); + } + } elseif (!isset($this->prefixDirsPsr4[$prefix])) { + // Register directories for a new namespace. + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); + } + $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; + $this->prefixDirsPsr4[$prefix] = $paths; + } elseif ($prepend) { + // Prepend directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $paths, + $this->prefixDirsPsr4[$prefix] + ); + } else { + // Append directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $this->prefixDirsPsr4[$prefix], + $paths + ); + } + } + + /** + * Registers a set of PSR-0 directories for a given prefix, + * replacing any others previously set for this prefix. + * + * @param string $prefix The prefix + * @param list|string $paths The PSR-0 base directories + * + * @return void + */ + public function set($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr0 = (array) $paths; + } else { + $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; + } + } + + /** + * Registers a set of PSR-4 directories for a given namespace, + * replacing any others previously set for this namespace. + * + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param list|string $paths The PSR-4 base directories + * + * @throws \InvalidArgumentException + * + * @return void + */ + public function setPsr4($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr4 = (array) $paths; + } else { + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); + } + $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; + $this->prefixDirsPsr4[$prefix] = (array) $paths; + } + } + + /** + * Turns on searching the include path for class files. + * + * @param bool $useIncludePath + * + * @return void + */ + public function setUseIncludePath($useIncludePath) + { + $this->useIncludePath = $useIncludePath; + } + + /** + * Can be used to check if the autoloader uses the include path to check + * for classes. + * + * @return bool + */ + public function getUseIncludePath() + { + return $this->useIncludePath; + } + + /** + * Turns off searching the prefix and fallback directories for classes + * that have not been registered with the class map. + * + * @param bool $classMapAuthoritative + * + * @return void + */ + public function setClassMapAuthoritative($classMapAuthoritative) + { + $this->classMapAuthoritative = $classMapAuthoritative; + } + + /** + * Should class lookup fail if not found in the current class map? + * + * @return bool + */ + public function isClassMapAuthoritative() + { + return $this->classMapAuthoritative; + } + + /** + * APCu prefix to use to cache found/not-found classes, if the extension is enabled. + * + * @param string|null $apcuPrefix + * + * @return void + */ + public function setApcuPrefix($apcuPrefix) + { + $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null; + } + + /** + * The APCu prefix in use, or null if APCu caching is not enabled. + * + * @return string|null + */ + public function getApcuPrefix() + { + return $this->apcuPrefix; + } + + /** + * Registers this instance as an autoloader. + * + * @param bool $prepend Whether to prepend the autoloader or not + * + * @return void + */ + public function register($prepend = false) + { + spl_autoload_register(array($this, 'loadClass'), true, $prepend); + + if (null === $this->vendorDir) { + return; + } + + if ($prepend) { + self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders; + } else { + unset(self::$registeredLoaders[$this->vendorDir]); + self::$registeredLoaders[$this->vendorDir] = $this; + } + } + + /** + * Unregisters this instance as an autoloader. + * + * @return void + */ + public function unregister() + { + spl_autoload_unregister(array($this, 'loadClass')); + + if (null !== $this->vendorDir) { + unset(self::$registeredLoaders[$this->vendorDir]); + } + } + + /** + * Loads the given class or interface. + * + * @param string $class The name of the class + * @return true|null True if loaded, null otherwise + */ + public function loadClass($class) + { + if ($file = $this->findFile($class)) { + $includeFile = self::$includeFile; + $includeFile($file); + + return true; + } + + return null; + } + + /** + * Finds the path to the file where the class is defined. + * + * @param string $class The name of the class + * + * @return string|false The path if found, false otherwise + */ + public function findFile($class) + { + // class map lookup + if (isset($this->classMap[$class])) { + return $this->classMap[$class]; + } + if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { + return false; + } + if (null !== $this->apcuPrefix) { + $file = apcu_fetch($this->apcuPrefix.$class, $hit); + if ($hit) { + return $file; + } + } + + $file = $this->findFileWithExtension($class, '.php'); + + // Search for Hack files if we are running on HHVM + if (false === $file && defined('HHVM_VERSION')) { + $file = $this->findFileWithExtension($class, '.hh'); + } + + if (null !== $this->apcuPrefix) { + apcu_add($this->apcuPrefix.$class, $file); + } + + if (false === $file) { + // Remember that this class does not exist. + $this->missingClasses[$class] = true; + } + + return $file; + } + + /** + * Returns the currently registered loaders keyed by their corresponding vendor directories. + * + * @return array + */ + public static function getRegisteredLoaders() + { + return self::$registeredLoaders; + } + + /** + * @param string $class + * @param string $ext + * @return string|false + */ + private function findFileWithExtension($class, $ext) + { + // PSR-4 lookup + $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; + + $first = $class[0]; + if (isset($this->prefixLengthsPsr4[$first])) { + $subPath = $class; + while (false !== $lastPos = strrpos($subPath, '\\')) { + $subPath = substr($subPath, 0, $lastPos); + $search = $subPath . '\\'; + if (isset($this->prefixDirsPsr4[$search])) { + $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1); + foreach ($this->prefixDirsPsr4[$search] as $dir) { + if (file_exists($file = $dir . $pathEnd)) { + return $file; + } + } + } + } + } + + // PSR-4 fallback dirs + foreach ($this->fallbackDirsPsr4 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { + return $file; + } + } + + // PSR-0 lookup + if (false !== $pos = strrpos($class, '\\')) { + // namespaced class name + $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) + . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); + } else { + // PEAR-like class name + $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; + } + + if (isset($this->prefixesPsr0[$first])) { + foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { + if (0 === strpos($class, $prefix)) { + foreach ($dirs as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + } + } + } + + // PSR-0 fallback dirs + foreach ($this->fallbackDirsPsr0 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + + // PSR-0 include paths. + if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { + return $file; + } + + return false; + } + + /** + * @return void + */ + private static function initializeIncludeClosure() + { + if (self::$includeFile !== null) { + return; + } + + /** + * Scope isolated include. + * + * Prevents access to $this/self from included files. + * + * @param string $file + * @return void + */ + self::$includeFile = \Closure::bind(static function($file) { + include $file; + }, null, null); + } +} diff --git a/apps/user_picker/composer/composer/InstalledVersions.php b/apps/user_picker/composer/composer/InstalledVersions.php new file mode 100644 index 0000000000000..2052022fd8e1e --- /dev/null +++ b/apps/user_picker/composer/composer/InstalledVersions.php @@ -0,0 +1,396 @@ + + * Jordi Boggiano + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer; + +use Composer\Autoload\ClassLoader; +use Composer\Semver\VersionParser; + +/** + * This class is copied in every Composer installed project and available to all + * + * See also https://getcomposer.org/doc/07-runtime.md#installed-versions + * + * To require its presence, you can require `composer-runtime-api ^2.0` + * + * @final + */ +class InstalledVersions +{ + /** + * @var string|null if set (by reflection by Composer), this should be set to the path where this class is being copied to + * @internal + */ + private static $selfDir = null; + + /** + * @var mixed[]|null + * @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array}|array{}|null + */ + private static $installed; + + /** + * @var bool + */ + private static $installedIsLocalDir; + + /** + * @var bool|null + */ + private static $canGetVendors; + + /** + * @var array[] + * @psalm-var array}> + */ + private static $installedByVendor = array(); + + /** + * Returns a list of all package names which are present, either by being installed, replaced or provided + * + * @return string[] + * @psalm-return list + */ + public static function getInstalledPackages() + { + $packages = array(); + foreach (self::getInstalled() as $installed) { + $packages[] = array_keys($installed['versions']); + } + + if (1 === \count($packages)) { + return $packages[0]; + } + + return array_keys(array_flip(\call_user_func_array('array_merge', $packages))); + } + + /** + * Returns a list of all package names with a specific type e.g. 'library' + * + * @param string $type + * @return string[] + * @psalm-return list + */ + public static function getInstalledPackagesByType($type) + { + $packagesByType = array(); + + foreach (self::getInstalled() as $installed) { + foreach ($installed['versions'] as $name => $package) { + if (isset($package['type']) && $package['type'] === $type) { + $packagesByType[] = $name; + } + } + } + + return $packagesByType; + } + + /** + * Checks whether the given package is installed + * + * This also returns true if the package name is provided or replaced by another package + * + * @param string $packageName + * @param bool $includeDevRequirements + * @return bool + */ + public static function isInstalled($packageName, $includeDevRequirements = true) + { + foreach (self::getInstalled() as $installed) { + if (isset($installed['versions'][$packageName])) { + return $includeDevRequirements || !isset($installed['versions'][$packageName]['dev_requirement']) || $installed['versions'][$packageName]['dev_requirement'] === false; + } + } + + return false; + } + + /** + * Checks whether the given package satisfies a version constraint + * + * e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call: + * + * Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3') + * + * @param VersionParser $parser Install composer/semver to have access to this class and functionality + * @param string $packageName + * @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package + * @return bool + */ + public static function satisfies(VersionParser $parser, $packageName, $constraint) + { + $constraint = $parser->parseConstraints((string) $constraint); + $provided = $parser->parseConstraints(self::getVersionRanges($packageName)); + + return $provided->matches($constraint); + } + + /** + * Returns a version constraint representing all the range(s) which are installed for a given package + * + * It is easier to use this via isInstalled() with the $constraint argument if you need to check + * whether a given version of a package is installed, and not just whether it exists + * + * @param string $packageName + * @return string Version constraint usable with composer/semver + */ + public static function getVersionRanges($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + $ranges = array(); + if (isset($installed['versions'][$packageName]['pretty_version'])) { + $ranges[] = $installed['versions'][$packageName]['pretty_version']; + } + if (array_key_exists('aliases', $installed['versions'][$packageName])) { + $ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']); + } + if (array_key_exists('replaced', $installed['versions'][$packageName])) { + $ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']); + } + if (array_key_exists('provided', $installed['versions'][$packageName])) { + $ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']); + } + + return implode(' || ', $ranges); + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present + */ + public static function getVersion($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + if (!isset($installed['versions'][$packageName]['version'])) { + return null; + } + + return $installed['versions'][$packageName]['version']; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present + */ + public static function getPrettyVersion($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + if (!isset($installed['versions'][$packageName]['pretty_version'])) { + return null; + } + + return $installed['versions'][$packageName]['pretty_version']; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference + */ + public static function getReference($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + if (!isset($installed['versions'][$packageName]['reference'])) { + return null; + } + + return $installed['versions'][$packageName]['reference']; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path. + */ + public static function getInstallPath($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @return array + * @psalm-return array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool} + */ + public static function getRootPackage() + { + $installed = self::getInstalled(); + + return $installed[0]['root']; + } + + /** + * Returns the raw installed.php data for custom implementations + * + * @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect. + * @return array[] + * @psalm-return array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} + */ + public static function getRawData() + { + @trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED); + + if (null === self::$installed) { + // only require the installed.php file if this file is loaded from its dumped location, + // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937 + if (substr(__DIR__, -8, 1) !== 'C') { + self::$installed = include __DIR__ . '/installed.php'; + } else { + self::$installed = array(); + } + } + + return self::$installed; + } + + /** + * Returns the raw data of all installed.php which are currently loaded for custom implementations + * + * @return array[] + * @psalm-return list}> + */ + public static function getAllRawData() + { + return self::getInstalled(); + } + + /** + * Lets you reload the static array from another file + * + * This is only useful for complex integrations in which a project needs to use + * this class but then also needs to execute another project's autoloader in process, + * and wants to ensure both projects have access to their version of installed.php. + * + * A typical case would be PHPUnit, where it would need to make sure it reads all + * the data it needs from this class, then call reload() with + * `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure + * the project in which it runs can then also use this class safely, without + * interference between PHPUnit's dependencies and the project's dependencies. + * + * @param array[] $data A vendor/composer/installed.php data set + * @return void + * + * @psalm-param array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $data + */ + public static function reload($data) + { + self::$installed = $data; + self::$installedByVendor = array(); + + // when using reload, we disable the duplicate protection to ensure that self::$installed data is + // always returned, but we cannot know whether it comes from the installed.php in __DIR__ or not, + // so we have to assume it does not, and that may result in duplicate data being returned when listing + // all installed packages for example + self::$installedIsLocalDir = false; + } + + /** + * @return string + */ + private static function getSelfDir() + { + if (self::$selfDir === null) { + self::$selfDir = strtr(__DIR__, '\\', '/'); + } + + return self::$selfDir; + } + + /** + * @return array[] + * @psalm-return list}> + */ + private static function getInstalled() + { + if (null === self::$canGetVendors) { + self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders'); + } + + $installed = array(); + $copiedLocalDir = false; + + if (self::$canGetVendors) { + $selfDir = self::getSelfDir(); + foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) { + $vendorDir = strtr($vendorDir, '\\', '/'); + if (isset(self::$installedByVendor[$vendorDir])) { + $installed[] = self::$installedByVendor[$vendorDir]; + } elseif (is_file($vendorDir.'/composer/installed.php')) { + /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $required */ + $required = require $vendorDir.'/composer/installed.php'; + self::$installedByVendor[$vendorDir] = $required; + $installed[] = $required; + if (self::$installed === null && $vendorDir.'/composer' === $selfDir) { + self::$installed = $required; + self::$installedIsLocalDir = true; + } + } + if (self::$installedIsLocalDir && $vendorDir.'/composer' === $selfDir) { + $copiedLocalDir = true; + } + } + } + + if (null === self::$installed) { + // only require the installed.php file if this file is loaded from its dumped location, + // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937 + if (substr(__DIR__, -8, 1) !== 'C') { + /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $required */ + $required = require __DIR__ . '/installed.php'; + self::$installed = $required; + } else { + self::$installed = array(); + } + } + + if (self::$installed !== array() && !$copiedLocalDir) { + $installed[] = self::$installed; + } + + return $installed; + } +} diff --git a/apps/user_picker/composer/composer/LICENSE b/apps/user_picker/composer/composer/LICENSE new file mode 100644 index 0000000000000..f27399a042d95 --- /dev/null +++ b/apps/user_picker/composer/composer/LICENSE @@ -0,0 +1,21 @@ + +Copyright (c) Nils Adermann, Jordi Boggiano + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + diff --git a/apps/user_picker/composer/composer/autoload_classmap.php b/apps/user_picker/composer/composer/autoload_classmap.php new file mode 100644 index 0000000000000..c9737263aeb5b --- /dev/null +++ b/apps/user_picker/composer/composer/autoload_classmap.php @@ -0,0 +1,13 @@ + $vendorDir . '/composer/InstalledVersions.php', + 'OCA\\UserPicker\\AppInfo\\Application' => $baseDir . '/../lib/AppInfo/Application.php', + 'OCA\\UserPicker\\Listener\\UserPickerReferenceListener' => $baseDir . '/../lib/Listener/UserPickerReferenceListener.php', + 'OCA\\UserPicker\\Reference\\ProfilePickerReferenceProvider' => $baseDir . '/../lib/Reference/ProfilePickerReferenceProvider.php', +); diff --git a/apps/user_picker/composer/composer/autoload_namespaces.php b/apps/user_picker/composer/composer/autoload_namespaces.php new file mode 100644 index 0000000000000..3f5c929625125 --- /dev/null +++ b/apps/user_picker/composer/composer/autoload_namespaces.php @@ -0,0 +1,9 @@ + array($baseDir . '/../lib'), +); diff --git a/apps/user_picker/composer/composer/autoload_real.php b/apps/user_picker/composer/composer/autoload_real.php new file mode 100644 index 0000000000000..c39c53c50810d --- /dev/null +++ b/apps/user_picker/composer/composer/autoload_real.php @@ -0,0 +1,37 @@ +setClassMapAuthoritative(true); + $loader->register(true); + + return $loader; + } +} diff --git a/apps/user_picker/composer/composer/autoload_static.php b/apps/user_picker/composer/composer/autoload_static.php new file mode 100644 index 0000000000000..02daae8b94ece --- /dev/null +++ b/apps/user_picker/composer/composer/autoload_static.php @@ -0,0 +1,39 @@ + + array ( + 'OCA\\UserPicker\\' => 15, + ), + ); + + public static $prefixDirsPsr4 = array ( + 'OCA\\UserPicker\\' => + array ( + 0 => __DIR__ . '/..' . '/../lib', + ), + ); + + public static $classMap = array ( + 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php', + 'OCA\\UserPicker\\AppInfo\\Application' => __DIR__ . '/..' . '/../lib/AppInfo/Application.php', + 'OCA\\UserPicker\\Listener\\UserPickerReferenceListener' => __DIR__ . '/..' . '/../lib/Listener/UserPickerReferenceListener.php', + 'OCA\\UserPicker\\Reference\\ProfilePickerReferenceProvider' => __DIR__ . '/..' . '/../lib/Reference/ProfilePickerReferenceProvider.php', + ); + + public static function getInitializer(ClassLoader $loader) + { + return \Closure::bind(function () use ($loader) { + $loader->prefixLengthsPsr4 = ComposerStaticInitUserPicker::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInitUserPicker::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInitUserPicker::$classMap; + + }, null, ClassLoader::class); + } +} diff --git a/apps/user_picker/composer/composer/installed.json b/apps/user_picker/composer/composer/installed.json new file mode 100644 index 0000000000000..f20a6c47c6d4f --- /dev/null +++ b/apps/user_picker/composer/composer/installed.json @@ -0,0 +1,5 @@ +{ + "packages": [], + "dev": false, + "dev-package-names": [] +} diff --git a/apps/user_picker/composer/composer/installed.php b/apps/user_picker/composer/composer/installed.php new file mode 100644 index 0000000000000..93f6366323458 --- /dev/null +++ b/apps/user_picker/composer/composer/installed.php @@ -0,0 +1,23 @@ + array( + 'name' => '__root__', + 'pretty_version' => 'dev-master', + 'version' => 'dev-master', + 'reference' => '4ee57514f882450097e09ce9a577c2dcdb0f002c', + 'type' => 'library', + 'install_path' => __DIR__ . '/../', + 'aliases' => array(), + 'dev' => false, + ), + 'versions' => array( + '__root__' => array( + 'pretty_version' => 'dev-master', + 'version' => 'dev-master', + 'reference' => '4ee57514f882450097e09ce9a577c2dcdb0f002c', + 'type' => 'library', + 'install_path' => __DIR__ . '/../', + 'aliases' => array(), + 'dev_requirement' => false, + ), + ), +); diff --git a/apps/user_picker/img/app-dark.svg b/apps/user_picker/img/app-dark.svg new file mode 100644 index 0000000000000..2aa865d2cf108 --- /dev/null +++ b/apps/user_picker/img/app-dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/user_picker/img/app.svg b/apps/user_picker/img/app.svg new file mode 100644 index 0000000000000..ed094bacbba2b --- /dev/null +++ b/apps/user_picker/img/app.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/user_picker/l10n/.gitkeep b/apps/user_picker/l10n/.gitkeep new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/apps/user_picker/lib/AppInfo/Application.php b/apps/user_picker/lib/AppInfo/Application.php new file mode 100644 index 0000000000000..25e3050ba15bb --- /dev/null +++ b/apps/user_picker/lib/AppInfo/Application.php @@ -0,0 +1,34 @@ +registerReferenceProvider(ProfilePickerReferenceProvider::class); + $context->registerEventListener(RenderReferenceEvent::class, UserPickerReferenceListener::class); + } + + public function boot(IBootContext $context): void { + } +} diff --git a/apps/user_picker/lib/Listener/UserPickerReferenceListener.php b/apps/user_picker/lib/Listener/UserPickerReferenceListener.php new file mode 100644 index 0000000000000..efa7839836828 --- /dev/null +++ b/apps/user_picker/lib/Listener/UserPickerReferenceListener.php @@ -0,0 +1,28 @@ + + */ +class UserPickerReferenceListener implements IEventListener { + public function handle(Event $event): void { + if (!$event instanceof RenderReferenceEvent) { + return; + } + + Util::addScript(Application::APP_ID, 'reference'); + } +} diff --git a/apps/user_picker/lib/Reference/ProfilePickerReferenceProvider.php b/apps/user_picker/lib/Reference/ProfilePickerReferenceProvider.php new file mode 100644 index 0000000000000..4994b0045fce9 --- /dev/null +++ b/apps/user_picker/lib/Reference/ProfilePickerReferenceProvider.php @@ -0,0 +1,180 @@ +l10n->t('Profile picker'); + } + + /** + * @inheritDoc + */ + public function getOrder(): int { + return 10; + } + + /** + * @inheritDoc + */ + public function getIconUrl(): string { + return $this->urlGenerator->imagePath(Application::APP_ID, 'app-dark.svg'); + } + + /** + * @inheritDoc + */ + public function matchReference(string $referenceText): bool { + return $this->getObjectId($referenceText) !== null; + } + + /** + * @inheritDoc + */ + public function resolveReference(string $referenceText): ?IReference { + if (!$this->matchReference($referenceText)) { + return null; + } + + $userId = $this->getObjectId($referenceText); + $user = $this->userManager->get($userId); + if ($user === null) { + return null; + } + if (!$this->profileManager->isProfileEnabled($user)) { + return null; + } + $account = $this->accountManager->getAccount($user); + + $currentUser = $this->userManager->get($this->userId); + + $reference = new Reference($referenceText); + + $userDisplayName = $user->getDisplayName(); + $userEmail = $user->getEMailAddress(); + $userAvatarUrl = $this->urlGenerator->linkToRouteAbsolute('core.avatar.getAvatar', ['userId' => $userId, 'size' => '64']); + + $bioProperty = $account->getProperty(IAccountManager::PROPERTY_BIOGRAPHY); + $bio = null; + $fullBio = null; + if ($this->profileManager->isProfileFieldVisible(IAccountManager::PROPERTY_BIOGRAPHY, $user, $currentUser)) { + $fullBio = $bioProperty->getValue(); + $bio = $fullBio !== '' + ? (mb_strlen($fullBio) > 80 + ? (mb_substr($fullBio, 0, 80) . '...') + : $fullBio) + : null; + } + $headline = $account->getProperty(IAccountManager::PROPERTY_HEADLINE); + $location = $account->getProperty(IAccountManager::PROPERTY_ADDRESS); + $website = $account->getProperty(IAccountManager::PROPERTY_WEBSITE); + $organisation = $account->getProperty(IAccountManager::PROPERTY_ORGANISATION); + $role = $account->getProperty(IAccountManager::PROPERTY_ROLE); + + // for clients who can't render the reference widgets + $reference->setTitle($userDisplayName); + $reference->setDescription($userEmail ?? $userDisplayName); + $reference->setImageUrl($userAvatarUrl); + + $isLocationVisible = $this->profileManager->isProfileFieldVisible(IAccountManager::PROPERTY_ADDRESS, $user, $currentUser); + + // for the Vue reference widget + $reference->setRichObject( + self::RICH_OBJECT_TYPE, + [ + 'user_id' => $userId, + 'title' => $userDisplayName, + 'subline' => $userEmail ?? $userDisplayName, + 'email' => $userEmail, + 'bio' => $bio, + 'full_bio' => $fullBio, + 'headline' => $this->profileManager->isProfileFieldVisible(IAccountManager::PROPERTY_HEADLINE, $user, $currentUser) ? $headline->getValue() : null, + 'location' => $isLocationVisible ? $location->getValue() : null, + 'location_url' => $isLocationVisible ? $this->getOpenStreetLocationUrl($location->getValue()) : null, + 'website' => $this->profileManager->isProfileFieldVisible(IAccountManager::PROPERTY_WEBSITE, $user, $currentUser) ? $website->getValue() : null, + 'organisation' => $this->profileManager->isProfileFieldVisible(IAccountManager::PROPERTY_ORGANISATION, $user, $currentUser) ? $organisation->getValue() : null, + 'role' => $this->profileManager->isProfileFieldVisible(IAccountManager::PROPERTY_ROLE, $user, $currentUser) ? $role->getValue() : null, + 'url' => $referenceText, + ] + ); + return $reference; + } + + public function getObjectId(string $url): ?string { + $baseUrl = $this->urlGenerator->getBaseUrl(); + $baseWithIndex = $baseUrl . '/index.php'; + + preg_match('/^' . preg_quote($baseUrl, '/') . '\/u\/(\w+)$/', $url, $matches); + if (count($matches) > 1) { + return $matches[1]; + } + preg_match('/^' . preg_quote($baseWithIndex, '/') . '\/u\/(\w+)$/', $url, $matches); + if (count($matches) > 1) { + return $matches[1]; + } + + return null; + } + + public function getOpenStreetLocationUrl($location): string { + return 'https://www.openstreetmap.org/search?query=' . urlencode($location); + } + + /** + * @inheritDoc + */ + public function getCachePrefix(string $referenceId): string { + return $this->userId ?? ''; + } + + /** + * @inheritDoc + */ + public function getCacheKey(string $referenceId): ?string { + $objectId = $this->getObjectId($referenceId); + if ($objectId !== null) { + return $objectId; + } + return $referenceId; + } +} diff --git a/apps/user_picker/src/components/ProfilesCustomPicker.vue b/apps/user_picker/src/components/ProfilesCustomPicker.vue new file mode 100644 index 0000000000000..d3b6dcf755b47 --- /dev/null +++ b/apps/user_picker/src/components/ProfilesCustomPicker.vue @@ -0,0 +1,218 @@ + + + + + + + diff --git a/apps/user_picker/src/reference.js b/apps/user_picker/src/reference.js new file mode 100644 index 0000000000000..4ffc5e9cf84fd --- /dev/null +++ b/apps/user_picker/src/reference.js @@ -0,0 +1,41 @@ +/** + * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + +import { NcCustomPickerRenderResult, registerCustomPickerElement, registerWidget } from '@nextcloud/vue/components/NcRichText' + +registerWidget('user_picker_profile', async (el, { richObjectType, richObject, accessible }) => { + const { createApp } = await import('vue') + const { default: ProfilePickerReferenceWidget } = await import('./views/ProfilePickerReferenceWidget.vue') + + const app = createApp( + ProfilePickerReferenceWidget, + { + richObjectType, + richObject, + accessible, + }, + ) + app.mixin({ methods: { t, n } }) + app.mount(el) +}, () => {}, { hasInteractiveView: false }) + +registerCustomPickerElement('profile_picker', async (el, { providerId, accessible }) => { + const { createApp } = await import('vue') + const { default: ProfilesCustomPicker } = await import('./components/ProfilesCustomPicker.vue') + + const app = createApp( + ProfilesCustomPicker, + { + providerId, + accessible, + }, + ) + app.mixin({ methods: { t, n } }) + app.mount(el) + + return new NcCustomPickerRenderResult(el, app) +}, (el, renderResult) => { + renderResult.object.unmount() +}, 'normal') diff --git a/apps/user_picker/src/utils/logger.ts b/apps/user_picker/src/utils/logger.ts new file mode 100644 index 0000000000000..c71b7e14bc5db --- /dev/null +++ b/apps/user_picker/src/utils/logger.ts @@ -0,0 +1,11 @@ +/*! + * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + +import { getLoggerBuilder } from '@nextcloud/logger' + +export const logger = getLoggerBuilder() + .detectLogLevel() + .setApp('user_picker') + .build() diff --git a/apps/user_picker/src/views/ProfilePickerReferenceWidget.vue b/apps/user_picker/src/views/ProfilePickerReferenceWidget.vue new file mode 100644 index 0000000000000..0312b1807ad34 --- /dev/null +++ b/apps/user_picker/src/views/ProfilePickerReferenceWidget.vue @@ -0,0 +1,164 @@ + + + + + + + diff --git a/apps/user_picker/tests/bootstrap.php b/apps/user_picker/tests/bootstrap.php new file mode 100644 index 0000000000000..b7bddb8a34f53 --- /dev/null +++ b/apps/user_picker/tests/bootstrap.php @@ -0,0 +1,20 @@ +loadApp('user_picker'); diff --git a/apps/user_picker/tests/unit/Reference/ProfilePickerReferenceProviderTest.php b/apps/user_picker/tests/unit/Reference/ProfilePickerReferenceProviderTest.php new file mode 100644 index 0000000000000..d3cf072b36c40 --- /dev/null +++ b/apps/user_picker/tests/unit/Reference/ProfilePickerReferenceProviderTest.php @@ -0,0 +1,375 @@ + [ + 'user_id' => 'user1', + 'displayname' => 'First User', + 'email' => 'user1@domain.co', + 'avatarurl' => 'https://nextcloud.local/index.php/avatar/user1/64', + ], + 'user2' => [ + 'user_id' => 'user2', + 'displayname' => 'Second User', + 'email' => 'user2@domain.co', + 'avatarurl' => 'https://nextcloud.local/index.php/avatar/user2/64', + ], + 'user3' => null, + ]; + private array $testAccountsData = [ + 'user1' => [ + IAccountManager::PROPERTY_BIOGRAPHY => [ + 'scope' => IAccountManager::SCOPE_PRIVATE, + 'visible' => true, + 'value' => 'This is a first test user', + ], + IAccountManager::PROPERTY_HEADLINE => [ + 'scope' => IAccountManager::SCOPE_LOCAL, + 'visible' => false, + 'value' => 'I\'m a first test user', + ], + IAccountManager::PROPERTY_ADDRESS => [ + 'scope' => IAccountManager::SCOPE_LOCAL, + 'visible' => true, + 'value' => 'Odessa', + ], + IAccountManager::PROPERTY_WEBSITE => [ + 'scope' => IAccountManager::SCOPE_LOCAL, + 'visible' => true, + 'value' => 'https://domain.co/testuser1', + ], + IAccountManager::PROPERTY_ORGANISATION => [ + 'scope' => IAccountManager::SCOPE_PRIVATE, + 'visible' => true, + 'value' => 'Nextcloud GmbH', + ], + IAccountManager::PROPERTY_ROLE => [ + 'scope' => IAccountManager::SCOPE_LOCAL, + 'visible' => true, + 'value' => 'Non-existing user', + ], + IAccountManager::PROPERTY_PROFILE_ENABLED => [ + 'scope' => IAccountManager::SCOPE_LOCAL, + 'visible' => true, + 'value' => '1', + ], + ], + 'user2' => [ + IAccountManager::PROPERTY_BIOGRAPHY => [ + 'scope' => IAccountManager::SCOPE_LOCAL, + 'visible' => true, + 'value' => 'This is a test user', + ], + IAccountManager::PROPERTY_HEADLINE => [ + 'scope' => IAccountManager::SCOPE_LOCAL, + 'visible' => true, + 'value' => 'Second test user', + ], + IAccountManager::PROPERTY_ADDRESS => [ + 'scope' => IAccountManager::SCOPE_LOCAL, + 'visible' => true, + 'value' => 'Berlin', + ], + IAccountManager::PROPERTY_WEBSITE => [ + 'scope' => IAccountManager::SCOPE_LOCAL, + 'visible' => true, + 'value' => 'https://domain.co/testuser2', + ], + IAccountManager::PROPERTY_ORGANISATION => [ + 'scope' => IAccountManager::SCOPE_PRIVATE, + 'visible' => true, + 'value' => 'Nextcloud GmbH', + ], + IAccountManager::PROPERTY_ROLE => [ + 'scope' => IAccountManager::SCOPE_LOCAL, + 'visible' => true, + 'value' => 'Non-existing user', + ], + IAccountManager::PROPERTY_PROFILE_ENABLED => [ + 'scope' => IAccountManager::SCOPE_LOCAL, + 'visible' => true, + 'value' => '1', + ], + ], + 'user3' => null, + ]; + private string $baseUrl = 'https://nextcloud.local'; + private string $testLink = 'https://nextcloud.local/index.php/u/user'; + private array $testLinks = [ + 'user1' => 'https://nextcloud.local/index.php/u/user1', + 'user2' => 'https://nextcloud.local/index.php/u/user2', + 'user4' => 'https://nextcloud.local/index.php/u/user4', + ]; + + public function setUp(): void { + parent::setUp(); + + $this->l10n = $this->createMock(IL10N::class); + $this->urlGenerator = $this->createMock(IURLGenerator::class); + $this->userManager = $this->createMock(IUserManager::class); + $this->accountManager = $this->createMock(IAccountManager::class); + $this->profileManager = $this->createMock(IProfileManager::class); + + $this->referenceProvider = new ProfilePickerReferenceProvider( + $this->l10n, + $this->urlGenerator, + $this->userManager, + $this->accountManager, + $this->profileManager, + $this->userId + ); + + $this->urlGenerator->expects($this->any()) + ->method('getBaseUrl') + ->willReturn($this->baseUrl); + + $this->profileManager->expects($this->any()) + ->method('isProfileEnabled') + ->willReturn(true); + + $this->profileManager->expects($this->any()) + ->method('isProfileFieldVisible') + ->willReturnCallback(function (string $profileField, IUser $targetUser, ?IUser $visitingUser) { + return $this->testAccountsData[$targetUser->getUID()][$profileField]['visible'] + && $this->testAccountsData[$targetUser->getUID()][$profileField]['scope'] !== IAccountManager::SCOPE_PRIVATE; + }); + + $this->adminUser = $this->createMock(IUser::class); + $this->adminUser->expects($this->any()) + ->method('getUID') + ->willReturn('admin'); + $this->adminUser->expects($this->any()) + ->method('getDisplayName') + ->willReturn('admin'); + } + + private function getTestAccountPropertyValue(string $testUserId, string $property): mixed { + if (!$this->testAccountsData[$testUserId][$property]['visible'] + || $this->testAccountsData[$testUserId][$property]['scope'] === IAccountManager::SCOPE_PRIVATE) { + return null; + } + return $this->testAccountsData[$testUserId][$property]['value']; + } + + /** + * @param string $userId + * @return IReference|null + */ + private function setupUserAccountReferenceExpectation(string $userId): ?IReference { + $user = $this->createMock(IUser::class); + + if (isset($this->testUsersData[$userId])) { + + // setup user expectations + $user->expects($this->any()) + ->method('getUID') + ->willReturn($this->testUsersData[$userId]['user_id']); + $user->expects($this->any()) + ->method('getDisplayName') + ->willReturn($this->testUsersData[$userId]['displayname']); + $user->expects($this->any()) + ->method('getEMailAddress') + ->willReturn($this->testUsersData[$userId]['email']); + + $this->userManager->expects($this->any()) + ->method('get') + ->willReturnCallback(function (string $uid) use ($user, $userId) { + if ($uid === $userId) { + return $user; + } elseif ($uid === 'admin') { + return $this->adminUser; + } + return null; + }); + + // setup account expectations + $account = $this->createMock(IAccount::class); + $account->expects($this->any()) + ->method('getProperty') + ->willReturnCallback(function ($property) use ($userId) { + $propertyMock = $this->createMock(IAccountProperty::class); + $propertyMock->expects($this->any()) + ->method('getValue') + ->willReturn($this->testAccountsData[$userId][$property]['value'] ?? ''); + $propertyMock->expects($this->any()) + ->method('getScope') + ->willReturn($this->testAccountsData[$userId][$property]['scope'] ?? ''); + return $propertyMock; + }); + + $this->accountManager->expects($this->any()) + ->method('getAccount') + ->with($user) + ->willReturn($account); + + // setup reference + if ($this->testUsersData[$userId] === null) { + $expectedReference = null; + } else { + $expectedReference = new Reference($this->testLinks[$userId]); + $expectedReference->setTitle($this->testUsersData[$userId]['displayname']); + $expectedReference->setDescription($this->testUsersData[$userId]['email']); + $expectedReference->setImageUrl($this->testUsersData[$userId]['avatarurl']); + $bio = $this->getTestAccountPropertyValue($userId, IAccountManager::PROPERTY_BIOGRAPHY); + $location = $this->getTestAccountPropertyValue($userId, IAccountManager::PROPERTY_ADDRESS); + + $expectedReference->setRichObject(ProfilePickerReferenceProvider::RICH_OBJECT_TYPE, [ + 'user_id' => $this->testUsersData[$userId]['user_id'], + 'title' => $this->testUsersData[$userId]['displayname'], + 'subline' => $this->testUsersData[$userId]['email'] ?? $this->testUsersData[$userId]['displayname'], + 'email' => $this->testUsersData[$userId]['email'], + 'bio' => isset($bio) && $bio !== '' + ? (mb_strlen($bio) > 80 + ? (mb_substr($bio, 0, 80) . '...') + : $bio) + : null, + 'full_bio' => $bio, + 'headline' => $this->getTestAccountPropertyValue($userId, IAccountManager::PROPERTY_HEADLINE), + 'location' => $location, + 'location_url' => $location !== null ? 'https://www.openstreetmap.org/search?query=' . urlencode($location) : null, + 'website' => $this->getTestAccountPropertyValue($userId, IAccountManager::PROPERTY_WEBSITE), + 'organisation' => $this->getTestAccountPropertyValue($userId, IAccountManager::PROPERTY_ORGANISATION), + 'role' => $this->getTestAccountPropertyValue($userId, IAccountManager::PROPERTY_ROLE), + 'url' => $this->testLinks[$userId], + ]); + } + + $this->urlGenerator->expects($this->any()) + ->method('linkToRouteAbsolute') + ->with('core.avatar.getAvatar', ['userId' => $userId, 'size' => 64]) + ->willReturn($this->testUsersData[$userId]['avatarurl']); + } + + return $expectedReference ?? null; + } + + /** + * Resolved reference should contain the expected reference fields according to account property scope + * + * @dataProvider resolveReferenceDataProvider + */ + public function testResolveReference($expected, $reference, $userId) { + if (isset($userId)) { + $expectedReference = $this->setupUserAccountReferenceExpectation($userId); + } + + $resultReference = $this->referenceProvider->resolveReference($reference); + $this->assertEquals($expected, isset($resultReference)); + $this->assertEquals($expectedReference ?? null, $resultReference); + } + + public function testGetId() { + $this->assertEquals('profile_picker', $this->referenceProvider->getId()); + } + + /** + * @dataProvider referenceDataProvider + */ + public function testMatchReference($expected, $reference) { + $this->assertEquals($expected, $this->referenceProvider->matchReference($reference)); + } + + /** + * @dataProvider cacheKeyDataProvider + */ + public function testGetCacheKey($expected, $reference) { + $this->assertEquals($expected, $this->referenceProvider->getCacheKey($reference)); + } + + public function testGetCachePrefix() { + $this->assertEquals($this->userId, $this->referenceProvider->getCachePrefix($this->testLink)); + } + + public function testGetTitle() { + $this->l10n->expects($this->once()) + ->method('t') + ->with('Profile picker') + ->willReturn('Profile picker'); + $this->assertEquals('Profile picker', $this->referenceProvider->getTitle()); + } + + /** + * Test getObjectId method. + * It should return the userid extracted from the link (http(s)://domain.com/(index.php)/u/{userid}). + * + * @dataProvider objectIdDataProvider + */ + public function testGetObjectId($expected, $reference) { + $this->assertEquals($expected, $this->referenceProvider->getObjectId($reference)); + } + + /** + * @dataProvider locationDataProvider + */ + public function testGetOpenStreetLocationUrl($expected, $location) { + $this->assertEquals($expected, $this->referenceProvider->getOpenStreetLocationUrl($location)); + } + + public static function referenceDataProvider(): array { + return [ + 'not a link' => [false, 'profile_picker'], + 'valid link to test user' => [true, 'https://nextcloud.local/index.php/u/user1'], + 'pretty link to test user' => [true, 'https://nextcloud.local/u/user1'], + 'not valid link' => [false, 'https://nextcloud.local'], + ]; + } + + public static function objectIdDataProvider(): array { + return [ + 'valid link to test user' => ['user1', 'https://nextcloud.local/index.php/u/user1'], + 'not valid link' => [null, 'https://nextcloud.local'], + ]; + } + + public static function cacheKeyDataProvider(): array { + return [ + 'valid link to test user' => ['user1', 'https://nextcloud.local/index.php/u/user1'], + 'not valid link' => ['https://nextcloud.local', 'https://nextcloud.local'], + ]; + } + + public static function locationDataProvider(): array { + return [ + 'link to location' => ['https://www.openstreetmap.org/search?query=location', 'location'], + 'link to Odessa' => ['https://www.openstreetmap.org/search?query=Odessa', 'Odessa'], + 'link to Frankfurt am Main' => ['https://www.openstreetmap.org/search?query=Frankfurt+am+Main', 'Frankfurt am Main'], + ]; + } + + public static function resolveReferenceDataProvider(): array { + return [ + 'test reference for user1' => [true, 'https://nextcloud.local/index.php/u/user1', 'user1'], + 'test reference for user2' => [true, 'https://nextcloud.local/index.php/u/user2', 'user2'], + 'test reference for non-existing user' => [false, 'https://nextcloud.local/index.php/u/user4', 'user4'], + 'test reference for not valid link' => [null, 'https://nextcloud.local', null], + ]; + } +} diff --git a/apps/user_picker/tests/unit/Service/ApplicationTest.php b/apps/user_picker/tests/unit/Service/ApplicationTest.php new file mode 100644 index 0000000000000..9662f761d5d96 --- /dev/null +++ b/apps/user_picker/tests/unit/Service/ApplicationTest.php @@ -0,0 +1,17 @@ +assertEquals('user_picker', $app::APP_ID); + } +} diff --git a/build/frontend/apps/user_picker b/build/frontend/apps/user_picker new file mode 120000 index 0000000000000..164c674a0b15a --- /dev/null +++ b/build/frontend/apps/user_picker @@ -0,0 +1 @@ +../../../apps/user_picker \ No newline at end of file diff --git a/build/frontend/vite.config.ts b/build/frontend/vite.config.ts index 4b1cfbdb113ce..2c7e93b3f9403 100644 --- a/build/frontend/vite.config.ts +++ b/build/frontend/vite.config.ts @@ -62,6 +62,9 @@ const modules = { renewPassword: resolve(import.meta.dirname, 'apps/user_ldap/src', 'renewPassword.ts'), 'settings-admin': resolve(import.meta.dirname, 'apps/user_ldap/src', 'settings-admin.ts'), }, + user_picker: { + reference: resolve(import.meta.dirname, 'apps/user_picker/src', 'reference.js'), + }, user_status: { menu: resolve(import.meta.dirname, 'apps/user_status/src', 'menu.js'), }, diff --git a/build/integration/features/provisioning-v1.feature b/build/integration/features/provisioning-v1.feature index 8fcfb076497a0..93cdb640d340f 100644 --- a/build/integration/features/provisioning-v1.feature +++ b/build/integration/features/provisioning-v1.feature @@ -637,6 +637,7 @@ Feature: provisioning | twofactor_backupcodes | | updatenotification | | user_ldap | + | user_picker | | user_status | | viewer | | workflowengine | diff --git a/build/license.php b/build/license.php index bb6351181c62f..1646f724836d5 100644 --- a/build/license.php +++ b/build/license.php @@ -459,6 +459,7 @@ private function fixInvalidEmail($author) { '../apps/twofactor_backupcodes', '../apps/updatenotification', '../apps/user_ldap', + '../apps/user_picker', '../apps/user_status', '../apps/weather_status', '../apps/workflowengine', diff --git a/core/shipped.json b/core/shipped.json index 79a88cf22f09c..2f51791d647f8 100644 --- a/core/shipped.json +++ b/core/shipped.json @@ -48,6 +48,7 @@ "twofactor_totp", "updatenotification", "user_ldap", + "user_picker", "user_status", "viewer", "weather_status", diff --git a/dist/AccountOutline-BlW-6JqD.chunk.mjs b/dist/AccountOutline-BlW-6JqD.chunk.mjs new file mode 100644 index 0000000000000..d02214cf92d94 --- /dev/null +++ b/dist/AccountOutline-BlW-6JqD.chunk.mjs @@ -0,0 +1,2 @@ +import{b as V,a3 as q,x as p,j as y,o as m,k as M,n as K,J,Q as b,a7 as N,u as C,c as U,w as G,m as Z,g as Q,t as T,z as $,L as X,l as Y}from"./runtime-dom.esm-bundler-DdtEg5E9.chunk.mjs";import{p as t1}from"./string_decoder-vT-u9WbV.chunk.mjs";import{_ as P,o as _,e as e1}from"./createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs";import{g as n1}from"./index-Bndk0DrU.chunk.mjs";import{a as r1}from"./index-DCpg1aui.chunk.mjs";var J1="M13 14H11V9H13M13 18H11V16H13M1 21H23L12 2L1 21Z",U1="M11,15H13V17H11V15M11,7H13V13H11V7M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20Z",G1="M23,12L20.56,9.22L20.9,5.54L17.29,4.72L15.4,1.54L12,3L8.6,1.54L6.71,4.72L3.1,5.53L3.44,9.21L1,12L3.44,14.78L3.1,18.47L6.71,19.29L8.6,22.47L12,21L15.4,22.46L17.29,19.28L20.9,18.46L20.56,14.78L23,12M13,17H11V15H13V17M13,13H11V7H13V13Z",Q1="M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z",X1="M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z",Y1="M19,19H5V8H19M16,1V3H8V1H6V3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3H18V1",tt="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z",et="M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z",nt="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z",rt="M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z",at="M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z",it="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z",st="M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M16.2,16.2L11,13V7H12.5V12.2L17,14.9L16.2,16.2Z",ot="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z",lt="M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2C6.47,2 2,6.47 2,12C2,17.53 6.47,22 12,22C17.53,22 22,17.53 22,12C22,6.47 17.53,2 12,2M14.59,8L12,10.59L9.41,8L8,9.41L10.59,12L8,14.59L9.41,16L12,13.41L14.59,16L16,14.59L13.41,12L16,9.41L14.59,8Z",ut="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z",ct="M16,12A2,2 0 0,1 18,10A2,2 0 0,1 20,12A2,2 0 0,1 18,14A2,2 0 0,1 16,12M10,12A2,2 0 0,1 12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12M4,12A2,2 0 0,1 6,10A2,2 0 0,1 8,12A2,2 0 0,1 6,14A2,2 0 0,1 4,12Z",ft="M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17M12,4.5C7,4.5 2.73,7.61 1,12C2.73,16.39 7,19.5 12,19.5C17,19.5 21.27,16.39 23,12C21.27,7.61 17,4.5 12,4.5Z",pt="M11.83,9L15,12.16C15,12.11 15,12.05 15,12A3,3 0 0,0 12,9C11.94,9 11.89,9 11.83,9M7.53,9.8L9.08,11.35C9.03,11.56 9,11.77 9,12A3,3 0 0,0 12,15C12.22,15 12.44,14.97 12.65,14.92L14.2,16.47C13.53,16.8 12.79,17 12,17A5,5 0 0,1 7,12C7,11.21 7.2,10.47 7.53,9.8M2,4.27L4.28,6.55L4.73,7C3.08,8.3 1.78,10 1,12C2.73,16.39 7,19.5 12,19.5C13.55,19.5 15.03,19.2 16.38,18.66L16.81,19.08L19.73,22L21,20.73L3.27,3M12,7A5,5 0 0,1 17,12C17,12.64 16.87,13.26 16.64,13.82L19.57,16.75C21.07,15.5 22.27,13.86 23,12C21.27,7.61 17,4.5 12,4.5C10.6,4.5 9.26,4.75 8,5.2L10.17,7.35C10.74,7.13 11.35,7 12,7Z",dt="M13,9H11V7H13M13,17H11V11H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z",Lt="M14,19H18V5H14M6,19H10V5H6V19Z",vt="M8,5.14V19.14L19,12.14L8,5.14Z",gt="M12.5,8C9.85,8 7.45,9 5.6,10.6L2,7V16H11L7.38,12.38C8.77,11.22 10.54,10.5 12.5,10.5C16.04,10.5 19.05,12.81 20.1,16L22.47,15.22C21.08,11.03 17.15,8 12.5,8Z";const a1=["aria-hidden","aria-label"],i1={key:0,viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},s1=["d"],o1=["innerHTML"],l1=V({__name:"NcIconSvgWrapper",props:{directional:{type:Boolean},inline:{type:Boolean},svg:{default:""},name:{default:void 0},path:{default:""},size:{default:20}},setup(t){q(i=>({fb515064:e.value}));const n=t,e=p(()=>typeof n.size=="number"?`${n.size}px`:n.size),r=p(()=>{if(!n.svg||n.path)return;const i=t1.sanitize(n.svg),a=new DOMParser().parseFromString(i,"image/svg+xml");return a.querySelector("parsererror")?"":(a.documentElement.id&&a.documentElement.removeAttribute("id"),a.documentElement.outerHTML)});return(i,a)=>(m(),y("span",{"aria-hidden":i.name?void 0:"true","aria-label":i.name||void 0,class:K(["icon-vue",{"icon-vue--directional":i.directional,"icon-vue--inline":i.inline}]),role:"img"},[r.value?(m(),y("span",{key:1,innerHTML:r.value},null,8,o1)):(m(),y("svg",i1,[M("path",{d:i.path},null,8,s1)]))],10,a1))}}),ht=P(l1,[["__scopeId","data-v-aaedb1c3"]]),u1=()=>{},x=Array.isArray;function B(t,n){return(t.aliasOf||t)===(n.aliasOf||n)}function c1(t,n){if(Object.keys(t).length!==Object.keys(n).length)return!1;for(const e in t)if(!f1(t[e],n[e]))return!1;return!0}function f1(t,n){return x(t)?S(t,n):x(n)?S(n,t):t===n}function S(t,n){return x(n)?t.length===n.length&&t.every((e,r)=>e===n[r]):t.length===1&&t[0]===n}const w=Symbol(""),p1=Symbol("");function z(t){const n=b(w),e=b(p1),r=p(()=>{const s=C(t.to);return n.resolve(s)}),i=p(()=>{const{matched:s}=r.value,{length:f}=s,u=s[f-1],c=e.matched;if(!u||!c.length)return-1;const v=c.findIndex(B.bind(null,u));if(v>-1)return v;const d=O(s[f-2]);return f>1&&O(u)===d&&c[c.length-1].path!==d?c.findIndex(B.bind(null,s[f-2])):v}),a=p(()=>i.value>-1&&g1(e.params,r.value.params)),o=p(()=>i.value>-1&&i.value===e.matched.length-1&&c1(e.params,r.value.params));function l(s={}){if(v1(s)){const f=n[C(t.replace)?"replace":"push"](C(t.to)).catch(u1);return t.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>f),f}return Promise.resolve()}return{route:r,href:p(()=>r.value.href),isActive:a,isExactActive:o,navigate:l}}function d1(t){return t.length===1?t[0]:t}const L1=V({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:z,setup(t,{slots:n}){const e=J(z(t)),{options:r}=b(w),i=p(()=>({[j(t.activeClass,r.linkActiveClass,"router-link-active")]:e.isActive,[j(t.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:e.isExactActive}));return()=>{const a=n.default&&d1(n.default(e));return t.custom?a:N("a",{"aria-current":e.isExactActive?t.ariaCurrentValue:null,href:e.href,onClick:e.navigate,class:i.value},a)}}}),mt=L1;function v1(t){if(!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)&&!t.defaultPrevented&&!(t.button!==void 0&&t.button!==0)){if(t.currentTarget&&t.currentTarget.getAttribute){const n=t.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(n))return}return t.preventDefault&&t.preventDefault(),!0}}function g1(t,n){for(const e in n){const r=n[e],i=t[e];if(typeof r=="string"){if(r!==i)return!1}else if(!x(i)||i.length!==r.length||r.some((a,o)=>a!==i[o]))return!1}return!0}function O(t){return t?t.aliasOf?t.aliasOf.path:t.path:""}const j=(t,n,e)=>t??n??e,[h1]=window.OC?.config?.version?.split(".")??[],m1=Number.parseInt(h1??"32")<32,A1=Symbol.for("NcFormBox:context");function y1(){return b(A1,{isInFormBox:!1,formBoxItemClass:void 0})}const b1={class:"button-vue__wrapper"},M1={class:"button-vue__icon"},C1={class:"button-vue__text"},H1=V({__name:"NcButton",props:{alignment:{default:"center"},ariaLabel:{default:void 0},disabled:{type:Boolean},download:{type:[String,Boolean],default:void 0},href:{default:void 0},pressed:{type:Boolean,default:void 0},size:{default:"normal"},target:{default:"_self"},text:{default:void 0},to:{default:void 0},type:{default:"button"},variant:{default:"secondary"},wide:{type:Boolean}},emits:["click","update:pressed"],setup(t,{emit:n}){const e=t,r=n,{formBoxItemClass:i}=y1(),a=b(w,null)!==null,o=p(()=>a&&e.to?"RouterLink":e.href?"a":"button"),l=p(()=>o.value==="button"&&typeof e.pressed=="boolean"),s=p(()=>e.pressed?"primary":e.pressed===!1&&e.variant==="primary"?"secondary":e.variant),f=p(()=>s.value.startsWith("tertiary")),u=p(()=>e.alignment.split("-")[0]),c=p(()=>e.alignment.includes("-")),v=b("NcPopover:trigger:attrs",()=>({}),!1),d=p(()=>v()),h=p(()=>{if(o.value==="RouterLink")return{to:e.to,activeClass:"active"};if(o.value==="a")return{href:e.href||"#",target:e.target,rel:"nofollow noreferrer noopener",download:e.download||void 0};if(o.value==="button")return{...d.value,"aria-pressed":e.pressed,type:e.type,disabled:e.disabled}});function g(L){l.value&&r("update:pressed",!e.pressed),r("click",L)}return(L,A)=>(m(),U(X(o.value),$({class:["button-vue",[`button-vue--size-${L.size}`,{[`button-vue--${s.value}`]:s.value,"button-vue--tertiary":f.value,"button-vue--wide":L.wide,[`button-vue--${u.value}`]:u.value!=="center","button-vue--reverse":c.value,"button-vue--legacy":C(m1)},C(i)]],"aria-label":L.ariaLabel},h.value,{onClick:g}),{default:G(()=>[M("span",b1,[M("span",M1,[Z(L.$slots,"icon",{},void 0,!0)]),M("span",C1,[Z(L.$slots,"default",{},()=>[Q(T(L.text),1)],!0)])])]),_:3},16,["class","aria-label"]))}}),At=P(H1,[["__scopeId","data-v-e3b1a10b"]]),x1=n1().detectUser().setApp("@nextcloud/vue").build();function H(t,n,e){const r={type:String(t)};return e==null&&(typeof n=="string"||Array.isArray(n))?e=n:Object.assign(r,n),Array.isArray(e)?r.children=e:e!=null&&(r.value=String(e)),r}const D=(function(t){if(t==null)return Z1;if(typeof t=="function")return k(t);if(typeof t=="object")return Array.isArray(t)?V1(t):k1(t);if(typeof t=="string")return w1(t);throw new Error("Expected function, string, or object as test")});function V1(t){const n=[];let e=-1;for(;++e":""))+")"})}return v;function v(){let d=F,h,g,L;if((!n||a(s,f,u[u.length-1]||void 0))&&(d=z1(e(s,u)),d[0]===E))return d;if("children"in s&&s.children){const A=s;if(A.children&&d[0]!==R)for(g=(r?A.children.length:-1)+o,L=u.concat(A);g>-1&&gi.type==="text",(i,a,o)=>{let l=E1(i.value);return typeof l=="string"?l=[H("text",l)]:l=l.map(s=>typeof s=="string"?H("text",s):H("link",{url:s.props.href},[H("text",s.props.href)])).filter(s=>s).flat(),o.children.splice(a,1,...l),[R,(a??0)+l.length]})}}function E1(t){let n=I.exec(t);const e=[];let r=0;for(;n!==null;){let a=n[2],o,l=t.substring(r,n.index+n[1].length);a[0]===" "&&(l+=a[0],a=a.substring(1).trim());const s=a[a.length-1];(s==="."||s===","||s===";"||n[0][0]==="("&&s===")")&&(a=a.substring(0,a.length-1),o=s),e.push(l),e.push({component:j1,props:{href:a}}),o&&e.push(o),r=n.index+n[0].length,n=I.exec(t)}e.push(t.substring(r));const i=e.map(a=>typeof a=="string"?a:a.props.href).join("");return t===i?e:(x1.error("[NcRichText] Failed to reassemble the chunked text: "+t),t)}function Mt(t,n){const e=(u,c)=>u.startsWith(c)?u.slice(c.length):u,r=(u,...c)=>c.reduce((v,d)=>e(v,d),u);if(!t)return null;const i=/^https?:\/\//.test(n),a=/^[a-z][a-z0-9+.-]*:.+/.test(n);if(!i&&a||i&&!n.startsWith(_())||!i&&!n.startsWith("/"))return null;const o=i?r(n,_(),"/index.php"):n,l=r(t.options.history.base,e1(),"/index.php"),s=r(o,l)||"/",f=t.resolve(s);return f.matched.length?f.fullPath:null}const I1={name:"AccountOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},N1=["aria-hidden","aria-label"],T1=["fill","width","height"],$1={d:"M12,4A4,4 0 0,1 16,8A4,4 0 0,1 12,12A4,4 0 0,1 8,8A4,4 0 0,1 12,4M12,6A2,2 0 0,0 10,8A2,2 0 0,0 12,10A2,2 0 0,0 14,8A2,2 0 0,0 12,6M12,13C14.67,13 20,14.33 20,17V20H4V17C4,14.33 9.33,13 12,13M12,14.9C9.03,14.9 5.9,16.36 5.9,17V18.1H18.1V17C18.1,16.36 14.97,14.9 12,14.9Z"},P1={key:0};function D1(t,n,e,r,i,a){return m(),y("span",$(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon account-outline-icon",role:"img",onClick:n[0]||(n[0]=o=>t.$emit("click",o))}),[(m(),y("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[M("path",$1,[e.title?(m(),y("title",P1,T(e.title),1)):Y("",!0)])],8,T1))],16,N1)}const Ct=r1(I1,[["render",D1]]);export{Ct as A,S1 as B,E1 as C,bt as D,E,H as F,it as G,nt as H,st as I,Y1 as J,ht as N,mt as R,R as S,yt as U,ft as a,At as b,tt as c,U1 as d,X1 as e,lt as f,Mt as g,Q1 as h,m1 as i,ct as j,at as k,x1 as l,pt as m,gt as n,ot as o,J1 as p,dt as q,et as r,G1 as s,Lt as t,vt as u,rt as v,D as w,O1 as x,ut as y,w as z}; +//# sourceMappingURL=AccountOutline-BlW-6JqD.chunk.mjs.map diff --git a/dist/NcAvatar-DmUGApWA-DBHt6M62.chunk.mjs.license b/dist/AccountOutline-BlW-6JqD.chunk.mjs.license similarity index 69% rename from dist/NcAvatar-DmUGApWA-DBHt6M62.chunk.mjs.license rename to dist/AccountOutline-BlW-6JqD.chunk.mjs.license index 86cf77faf3a0a..c98a2abf556c0 100644 --- a/dist/NcAvatar-DmUGApWA-DBHt6M62.chunk.mjs.license +++ b/dist/AccountOutline-BlW-6JqD.chunk.mjs.license @@ -1,25 +1,15 @@ SPDX-License-Identifier: AGPL-3.0-or-later SPDX-License-Identifier: MIT -SPDX-FileCopyrightText: Eric Norris (https://github.com/ericnorris) +SPDX-FileCopyrightText: Eduardo San Martin Morote SPDX-FileCopyrightText: Eugene Sharygin -SPDX-FileCopyrightText: Jacob Clevenger SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors +SPDX-FileCopyrightText: Rob Cresswell SPDX-FileCopyrightText: Titus Wormer (https://wooorm.com) -SPDX-FileCopyrightText: ts-md5 developers This file is generated from multiple sources. Included packages: - @nextcloud/vue - version: 9.3.1 - license: AGPL-3.0-or-later -- @vueuse/components - - version: 14.1.0 - - license: MIT -- striptags - - version: 3.2.0 - - license: MIT -- ts-md5 - - version: 2.0.1 - - license: MIT - unist-builder - version: 4.0.0 - license: MIT @@ -32,3 +22,9 @@ This file is generated from multiple sources. Included packages: - unist-util-visit-parents - version: 6.0.2 - license: MIT +- vue-material-design-icons + - version: 5.3.1 + - license: MIT +- vue-router + - version: 4.6.3 + - license: MIT diff --git a/dist/AccountOutline-BlW-6JqD.chunk.mjs.map b/dist/AccountOutline-BlW-6JqD.chunk.mjs.map new file mode 100644 index 0000000000000..ce7cc9d43e5aa --- /dev/null +++ b/dist/AccountOutline-BlW-6JqD.chunk.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"AccountOutline-BlW-6JqD.chunk.mjs","sources":["../node_modules/@nextcloud/vue/dist/chunks/mdi-XFJRiRqJ.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcIconSvgWrapper-BvLanNaW.mjs","../node_modules/vue-router/dist/devtools-BLCumUwL.mjs","../node_modules/vue-router/dist/vue-router.mjs","../node_modules/@nextcloud/vue/dist/chunks/legacy-DcjXBL_t.mjs","../node_modules/@nextcloud/vue/dist/chunks/useNcFormBox-DA9iwXWY.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcButton-Dc8V4Urj.mjs","../node_modules/@nextcloud/vue/dist/chunks/logger-D3RVzcfQ.mjs","../node_modules/unist-builder/lib/index.js","../node_modules/unist-util-is/lib/index.js","../node_modules/unist-util-visit-parents/lib/index.js","../node_modules/unist-util-visit/lib/index.js","../node_modules/@nextcloud/vue/dist/chunks/autolink-U5pBzLgI.mjs","../node_modules/vue-material-design-icons/AccountOutline.vue"],"sourcesContent":["var mdiAlert = \"M13 14H11V9H13M13 18H11V16H13M1 21H23L12 2L1 21Z\";\nvar mdiAlertCircleOutline = \"M11,15H13V17H11V15M11,7H13V13H11V7M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20Z\";\nvar mdiAlertDecagram = \"M23,12L20.56,9.22L20.9,5.54L17.29,4.72L15.4,1.54L12,3L8.6,1.54L6.71,4.72L3.1,5.53L3.44,9.21L1,12L3.44,14.78L3.1,18.47L6.71,19.29L8.6,22.47L12,21L15.4,22.46L17.29,19.28L20.9,18.46L20.56,14.78L23,12M13,17H11V15H13V17M13,13H11V7H13V13Z\";\nvar mdiArrowLeft = \"M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z\";\nvar mdiArrowRight = \"M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z\";\nvar mdiArrowTopRight = \"M5,17.59L15.59,7H9V5H19V15H17V8.41L6.41,19L5,17.59Z\";\nvar mdiCalendarBlank = \"M19,19H5V8H19M16,1V3H8V1H6V3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3H18V1\";\nvar mdiCheck = \"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z\";\nvar mdiCheckboxMarkedCircle = \"M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\";\nvar mdiChevronDown = \"M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z\";\nvar mdiChevronLeft = \"M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z\";\nvar mdiChevronRight = \"M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z\";\nvar mdiChevronUp = \"M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z\";\nvar mdiClock = \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M16.2,16.2L11,13V7H12.5V12.2L17,14.9L16.2,16.2Z\";\nvar mdiClose = \"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z\";\nvar mdiCloseCircleOutline = \"M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2C6.47,2 2,6.47 2,12C2,17.53 6.47,22 12,22C17.53,22 22,17.53 22,12C22,6.47 17.53,2 12,2M14.59,8L12,10.59L9.41,8L8,9.41L10.59,12L8,14.59L9.41,16L12,13.41L14.59,16L16,14.59L13.41,12L16,9.41L14.59,8Z\";\nvar mdiCog = \"M12,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z\";\nvar mdiCogOutline = \"M12,8A4,4 0 0,1 16,12A4,4 0 0,1 12,16A4,4 0 0,1 8,12A4,4 0 0,1 12,8M12,10A2,2 0 0,0 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12A2,2 0 0,0 12,10M10,22C9.75,22 9.54,21.82 9.5,21.58L9.13,18.93C8.5,18.68 7.96,18.34 7.44,17.94L4.95,18.95C4.73,19.03 4.46,18.95 4.34,18.73L2.34,15.27C2.21,15.05 2.27,14.78 2.46,14.63L4.57,12.97L4.5,12L4.57,11L2.46,9.37C2.27,9.22 2.21,8.95 2.34,8.73L4.34,5.27C4.46,5.05 4.73,4.96 4.95,5.05L7.44,6.05C7.96,5.66 8.5,5.32 9.13,5.07L9.5,2.42C9.54,2.18 9.75,2 10,2H14C14.25,2 14.46,2.18 14.5,2.42L14.87,5.07C15.5,5.32 16.04,5.66 16.56,6.05L19.05,5.05C19.27,4.96 19.54,5.05 19.66,5.27L21.66,8.73C21.79,8.95 21.73,9.22 21.54,9.37L19.43,11L19.5,12L19.43,13L21.54,14.63C21.73,14.78 21.79,15.05 21.66,15.27L19.66,18.73C19.54,18.95 19.27,19.04 19.05,18.95L16.56,17.95C16.04,18.34 15.5,18.68 14.87,18.93L14.5,21.58C14.46,21.82 14.25,22 14,22H10M11.25,4L10.88,6.61C9.68,6.86 8.62,7.5 7.85,8.39L5.44,7.35L4.69,8.65L6.8,10.2C6.4,11.37 6.4,12.64 6.8,13.8L4.68,15.36L5.43,16.66L7.86,15.62C8.63,16.5 9.68,17.14 10.87,17.38L11.24,20H12.76L13.13,17.39C14.32,17.14 15.37,16.5 16.14,15.62L18.57,16.66L19.32,15.36L17.2,13.81C17.6,12.64 17.6,11.37 17.2,10.2L19.31,8.65L18.56,7.35L16.15,8.39C15.38,7.5 14.32,6.86 13.12,6.62L12.75,4H11.25Z\";\nvar mdiContentCopy = \"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z\";\nvar mdiCreation = \"M19,1L17.74,3.75L15,5L17.74,6.26L19,9L20.25,6.26L23,5L20.25,3.75M9,4L6.5,9.5L1,12L6.5,14.5L9,20L11.5,14.5L17,12L11.5,9.5M19,15L17.74,17.74L15,19L17.74,20.25L19,23L20.25,20.25L23,19L20.25,17.74\";\nvar mdiDotsHorizontal = \"M16,12A2,2 0 0,1 18,10A2,2 0 0,1 20,12A2,2 0 0,1 18,14A2,2 0 0,1 16,12M10,12A2,2 0 0,1 12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12M4,12A2,2 0 0,1 6,10A2,2 0 0,1 8,12A2,2 0 0,1 6,14A2,2 0 0,1 4,12Z\";\nvar mdiEye = \"M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17M12,4.5C7,4.5 2.73,7.61 1,12C2.73,16.39 7,19.5 12,19.5C17,19.5 21.27,16.39 23,12C21.27,7.61 17,4.5 12,4.5Z\";\nvar mdiEyeOff = \"M11.83,9L15,12.16C15,12.11 15,12.05 15,12A3,3 0 0,0 12,9C11.94,9 11.89,9 11.83,9M7.53,9.8L9.08,11.35C9.03,11.56 9,11.77 9,12A3,3 0 0,0 12,15C12.22,15 12.44,14.97 12.65,14.92L14.2,16.47C13.53,16.8 12.79,17 12,17A5,5 0 0,1 7,12C7,11.21 7.2,10.47 7.53,9.8M2,4.27L4.28,6.55L4.73,7C3.08,8.3 1.78,10 1,12C2.73,16.39 7,19.5 12,19.5C13.55,19.5 15.03,19.2 16.38,18.66L16.81,19.08L19.73,22L21,20.73L3.27,3M12,7A5,5 0 0,1 17,12C17,12.64 16.87,13.26 16.64,13.82L19.57,16.75C21.07,15.5 22.27,13.86 23,12C21.27,7.61 17,4.5 12,4.5C10.6,4.5 9.26,4.75 8,5.2L10.17,7.35C10.74,7.13 11.35,7 12,7Z\";\nvar mdiInformation = \"M13,9H11V7H13M13,17H11V11H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\";\nvar mdiMenu = \"M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z\";\nvar mdiMenuOpen = \"M21,15.61L19.59,17L14.58,12L19.59,7L21,8.39L17.44,12L21,15.61M3,6H16V8H3V6M3,13V11H13V13H3M3,18V16H16V18H3Z\";\nvar mdiOpenInNew = \"M14,3V5H17.59L7.76,14.83L9.17,16.24L19,6.41V10H21V3M19,19H5V5H12V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V12H19V19Z\";\nvar mdiPause = \"M14,19H18V5H14M6,19H10V5H6V19Z\";\nvar mdiPlay = \"M8,5.14V19.14L19,12.14L8,5.14Z\";\nvar mdiToggleSwitch = \"M17,7H7A5,5 0 0,0 2,12A5,5 0 0,0 7,17H17A5,5 0 0,0 22,12A5,5 0 0,0 17,7M17,15A3,3 0 0,1 14,12A3,3 0 0,1 17,9A3,3 0 0,1 20,12A3,3 0 0,1 17,15Z\";\nvar mdiToggleSwitchOff = \"M17,7H7A5,5 0 0,0 2,12A5,5 0 0,0 7,17H17A5,5 0 0,0 22,12A5,5 0 0,0 17,7M7,15A3,3 0 0,1 4,12A3,3 0 0,1 7,9A3,3 0 0,1 10,12A3,3 0 0,1 7,15Z\";\nvar mdiUndo = \"M12.5,8C9.85,8 7.45,9 5.6,10.6L2,7V16H11L7.38,12.38C8.77,11.22 10.54,10.5 12.5,10.5C16.04,10.5 19.05,12.81 20.1,16L22.47,15.22C21.08,11.03 17.15,8 12.5,8Z\";\nexport {\n mdiCog as A,\n mdiCogOutline as B,\n mdiPause as C,\n mdiPlay as D,\n mdiMenuOpen as E,\n mdiMenu as F,\n mdiUndo as a,\n mdiClose as b,\n mdiChevronRight as c,\n mdiCheck as d,\n mdiContentCopy as e,\n mdiAlertCircleOutline as f,\n mdiAlert as g,\n mdiInformation as h,\n mdiCheckboxMarkedCircle as i,\n mdiAlertDecagram as j,\n mdiToggleSwitch as k,\n mdiToggleSwitchOff as l,\n mdiArrowRight as m,\n mdiCreation as n,\n mdiEyeOff as o,\n mdiEye as p,\n mdiOpenInNew as q,\n mdiArrowTopRight as r,\n mdiCloseCircleOutline as s,\n mdiArrowLeft as t,\n mdiDotsHorizontal as u,\n mdiChevronUp as v,\n mdiChevronDown as w,\n mdiChevronLeft as x,\n mdiClock as y,\n mdiCalendarBlank as z\n};\n//# sourceMappingURL=mdi-XFJRiRqJ.mjs.map\n","import '../assets/NcIconSvgWrapper-N3OwSN9O.css';\nimport { defineComponent, useCssVars, computed, warn, createElementBlock, openBlock, normalizeClass, createElementVNode } from \"vue\";\nimport DOMPurify from \"dompurify\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2 = {\n key: 0,\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\"\n};\nconst _hoisted_3 = [\"d\"];\nconst _hoisted_4 = [\"innerHTML\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcIconSvgWrapper\",\n props: {\n directional: { type: Boolean },\n inline: { type: Boolean },\n svg: { default: \"\" },\n name: { default: void 0 },\n path: { default: \"\" },\n size: { default: 20 }\n },\n setup(__props) {\n useCssVars((_ctx) => ({\n \"fb515064\": iconSize.value\n }));\n const props = __props;\n const iconSize = computed(() => typeof props.size === \"number\" ? `${props.size}px` : props.size);\n const cleanSvg = computed(() => {\n if (!props.svg || props.path) {\n return;\n }\n const svg = DOMPurify.sanitize(props.svg);\n const svgDocument = new DOMParser().parseFromString(svg, \"image/svg+xml\");\n if (svgDocument.querySelector(\"parsererror\")) {\n warn(\"SVG is not valid\");\n return \"\";\n }\n if (svgDocument.documentElement.id) {\n svgDocument.documentElement.removeAttribute(\"id\");\n }\n return svgDocument.documentElement.outerHTML;\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"span\", {\n \"aria-hidden\": _ctx.name ? void 0 : \"true\",\n \"aria-label\": _ctx.name || void 0,\n class: normalizeClass([\"icon-vue\", {\n \"icon-vue--directional\": _ctx.directional,\n \"icon-vue--inline\": _ctx.inline\n }]),\n role: \"img\"\n }, [\n !cleanSvg.value ? (openBlock(), createElementBlock(\"svg\", _hoisted_2, [\n createElementVNode(\"path\", { d: _ctx.path }, null, 8, _hoisted_3)\n ])) : (openBlock(), createElementBlock(\"span\", {\n key: 1,\n innerHTML: cleanSvg.value\n }, null, 8, _hoisted_4))\n ], 10, _hoisted_1);\n };\n }\n});\nconst NcIconSvgWrapper = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-aaedb1c3\"]]);\nexport {\n NcIconSvgWrapper as N\n};\n//# sourceMappingURL=NcIconSvgWrapper-BvLanNaW.mjs.map\n","/*!\n * vue-router v4.6.3\n * (c) 2025 Eduardo San Martin Morote\n * @license MIT\n */\nimport { getCurrentInstance, inject, onActivated, onDeactivated, onUnmounted, watch } from \"vue\";\nimport { setupDevtoolsPlugin } from \"@vue/devtools-api\";\n\n//#region src/utils/env.ts\nconst isBrowser = typeof document !== \"undefined\";\n\n//#endregion\n//#region src/utils/index.ts\n/**\n* Identity function that returns the value as is.\n*\n* @param v - the value to return\n*\n* @internal\n*/\nconst identityFn = (v) => v;\n/**\n* Allows differentiating lazy components from functional components and vue-class-component\n* @internal\n*\n* @param component\n*/\nfunction isRouteComponent(component) {\n\treturn typeof component === \"object\" || \"displayName\" in component || \"props\" in component || \"__vccOpts\" in component;\n}\nfunction isESModule(obj) {\n\treturn obj.__esModule || obj[Symbol.toStringTag] === \"Module\" || obj.default && isRouteComponent(obj.default);\n}\nconst assign = Object.assign;\nfunction applyToParams(fn, params) {\n\tconst newParams = {};\n\tfor (const key in params) {\n\t\tconst value = params[key];\n\t\tnewParams[key] = isArray(value) ? value.map(fn) : fn(value);\n\t}\n\treturn newParams;\n}\nconst noop = () => {};\n/**\n* Typesafe alternative to Array.isArray\n* https://github.com/microsoft/TypeScript/pull/48228\n*/\nconst isArray = Array.isArray;\nfunction mergeOptions(defaults, partialOptions) {\n\tconst options = {};\n\tfor (const key in defaults) options[key] = key in partialOptions ? partialOptions[key] : defaults[key];\n\treturn options;\n}\n\n//#endregion\n//#region src/warning.ts\nfunction warn$1(msg) {\n\tconst args = Array.from(arguments).slice(1);\n\tconsole.warn.apply(console, [\"[Vue Router warn]: \" + msg].concat(args));\n}\n\n//#endregion\n//#region src/encoding.ts\n/**\n* Encoding Rules (␣ = Space)\n* - Path: ␣ \" < > # ? { }\n* - Query: ␣ \" < > # & =\n* - Hash: ␣ \" < > `\n*\n* On top of that, the RFC3986 (https://tools.ietf.org/html/rfc3986#section-2.2)\n* defines some extra characters to be encoded. Most browsers do not encode them\n* in encodeURI https://github.com/whatwg/url/issues/369, so it may be safer to\n* also encode `!'()*`. Leaving un-encoded only ASCII alphanumeric(`a-zA-Z0-9`)\n* plus `-._~`. This extra safety should be applied to query by patching the\n* string returned by encodeURIComponent encodeURI also encodes `[\\]^`. `\\`\n* should be encoded to avoid ambiguity. Browsers (IE, FF, C) transform a `\\`\n* into a `/` if directly typed in. The _backtick_ (`````) should also be\n* encoded everywhere because some browsers like FF encode it when directly\n* written while others don't. Safari and IE don't encode ``\"<>{}``` in hash.\n*/\nconst HASH_RE = /#/g;\nconst AMPERSAND_RE = /&/g;\nconst SLASH_RE = /\\//g;\nconst EQUAL_RE = /=/g;\nconst IM_RE = /\\?/g;\nconst PLUS_RE = /\\+/g;\n/**\n* NOTE: It's not clear to me if we should encode the + symbol in queries, it\n* seems to be less flexible than not doing so and I can't find out the legacy\n* systems requiring this for regular requests like text/html. In the standard,\n* the encoding of the plus character is only mentioned for\n* application/x-www-form-urlencoded\n* (https://url.spec.whatwg.org/#urlencoded-parsing) and most browsers seems lo\n* leave the plus character as is in queries. To be more flexible, we allow the\n* plus character on the query, but it can also be manually encoded by the user.\n*\n* Resources:\n* - https://url.spec.whatwg.org/#urlencoded-parsing\n* - https://stackoverflow.com/questions/1634271/url-encoding-the-space-character-or-20\n*/\nconst ENC_BRACKET_OPEN_RE = /%5B/g;\nconst ENC_BRACKET_CLOSE_RE = /%5D/g;\nconst ENC_CARET_RE = /%5E/g;\nconst ENC_BACKTICK_RE = /%60/g;\nconst ENC_CURLY_OPEN_RE = /%7B/g;\nconst ENC_PIPE_RE = /%7C/g;\nconst ENC_CURLY_CLOSE_RE = /%7D/g;\nconst ENC_SPACE_RE = /%20/g;\n/**\n* Encode characters that need to be encoded on the path, search and hash\n* sections of the URL.\n*\n* @internal\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction commonEncode(text) {\n\treturn text == null ? \"\" : encodeURI(\"\" + text).replace(ENC_PIPE_RE, \"|\").replace(ENC_BRACKET_OPEN_RE, \"[\").replace(ENC_BRACKET_CLOSE_RE, \"]\");\n}\n/**\n* Encode characters that need to be encoded on the hash section of the URL.\n*\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction encodeHash(text) {\n\treturn commonEncode(text).replace(ENC_CURLY_OPEN_RE, \"{\").replace(ENC_CURLY_CLOSE_RE, \"}\").replace(ENC_CARET_RE, \"^\");\n}\n/**\n* Encode characters that need to be encoded query values on the query\n* section of the URL.\n*\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction encodeQueryValue(text) {\n\treturn commonEncode(text).replace(PLUS_RE, \"%2B\").replace(ENC_SPACE_RE, \"+\").replace(HASH_RE, \"%23\").replace(AMPERSAND_RE, \"%26\").replace(ENC_BACKTICK_RE, \"`\").replace(ENC_CURLY_OPEN_RE, \"{\").replace(ENC_CURLY_CLOSE_RE, \"}\").replace(ENC_CARET_RE, \"^\");\n}\n/**\n* Like `encodeQueryValue` but also encodes the `=` character.\n*\n* @param text - string to encode\n*/\nfunction encodeQueryKey(text) {\n\treturn encodeQueryValue(text).replace(EQUAL_RE, \"%3D\");\n}\n/**\n* Encode characters that need to be encoded on the path section of the URL.\n*\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction encodePath(text) {\n\treturn commonEncode(text).replace(HASH_RE, \"%23\").replace(IM_RE, \"%3F\");\n}\n/**\n* Encode characters that need to be encoded on the path section of the URL as a\n* param. This function encodes everything {@link encodePath} does plus the\n* slash (`/`) character. If `text` is `null` or `undefined`, returns an empty\n* string instead.\n*\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction encodeParam(text) {\n\treturn encodePath(text).replace(SLASH_RE, \"%2F\");\n}\nfunction decode(text) {\n\tif (text == null) return null;\n\ttry {\n\t\treturn decodeURIComponent(\"\" + text);\n\t} catch (err) {\n\t\tprocess.env.NODE_ENV !== \"production\" && warn$1(`Error decoding \"${text}\". Using original value`);\n\t}\n\treturn \"\" + text;\n}\n\n//#endregion\n//#region src/location.ts\nconst TRAILING_SLASH_RE = /\\/$/;\nconst removeTrailingSlash = (path) => path.replace(TRAILING_SLASH_RE, \"\");\n/**\n* Transforms a URI into a normalized history location\n*\n* @param parseQuery\n* @param location - URI to normalize\n* @param currentLocation - current absolute location. Allows resolving relative\n* paths. Must start with `/`. Defaults to `/`\n* @returns a normalized history location\n*/\nfunction parseURL(parseQuery$1, location, currentLocation = \"/\") {\n\tlet path, query = {}, searchString = \"\", hash = \"\";\n\tconst hashPos = location.indexOf(\"#\");\n\tlet searchPos = location.indexOf(\"?\");\n\tsearchPos = hashPos >= 0 && searchPos > hashPos ? -1 : searchPos;\n\tif (searchPos >= 0) {\n\t\tpath = location.slice(0, searchPos);\n\t\tsearchString = location.slice(searchPos, hashPos > 0 ? hashPos : location.length);\n\t\tquery = parseQuery$1(searchString.slice(1));\n\t}\n\tif (hashPos >= 0) {\n\t\tpath = path || location.slice(0, hashPos);\n\t\thash = location.slice(hashPos, location.length);\n\t}\n\tpath = resolveRelativePath(path != null ? path : location, currentLocation);\n\treturn {\n\t\tfullPath: path + searchString + hash,\n\t\tpath,\n\t\tquery,\n\t\thash: decode(hash)\n\t};\n}\nfunction NEW_stringifyURL(stringifyQuery$1, path, query, hash = \"\") {\n\tconst searchText = stringifyQuery$1(query);\n\treturn path + (searchText && \"?\") + searchText + encodeHash(hash);\n}\n/**\n* Stringifies a URL object\n*\n* @param stringifyQuery\n* @param location\n*/\nfunction stringifyURL(stringifyQuery$1, location) {\n\tconst query = location.query ? stringifyQuery$1(location.query) : \"\";\n\treturn location.path + (query && \"?\") + query + (location.hash || \"\");\n}\n/**\n* Strips off the base from the beginning of a location.pathname in a non-case-sensitive way.\n*\n* @param pathname - location.pathname\n* @param base - base to strip off\n*/\nfunction stripBase(pathname, base) {\n\tif (!base || !pathname.toLowerCase().startsWith(base.toLowerCase())) return pathname;\n\treturn pathname.slice(base.length) || \"/\";\n}\n/**\n* Checks if two RouteLocation are equal. This means that both locations are\n* pointing towards the same {@link RouteRecord} and that all `params`, `query`\n* parameters and `hash` are the same\n*\n* @param stringifyQuery - A function that takes a query object of type LocationQueryRaw and returns a string representation of it.\n* @param a - first {@link RouteLocation}\n* @param b - second {@link RouteLocation}\n*/\nfunction isSameRouteLocation(stringifyQuery$1, a, b) {\n\tconst aLastIndex = a.matched.length - 1;\n\tconst bLastIndex = b.matched.length - 1;\n\treturn aLastIndex > -1 && aLastIndex === bLastIndex && isSameRouteRecord(a.matched[aLastIndex], b.matched[bLastIndex]) && isSameRouteLocationParams(a.params, b.params) && stringifyQuery$1(a.query) === stringifyQuery$1(b.query) && a.hash === b.hash;\n}\n/**\n* Check if two `RouteRecords` are equal. Takes into account aliases: they are\n* considered equal to the `RouteRecord` they are aliasing.\n*\n* @param a - first {@link RouteRecord}\n* @param b - second {@link RouteRecord}\n*/\nfunction isSameRouteRecord(a, b) {\n\treturn (a.aliasOf || a) === (b.aliasOf || b);\n}\nfunction isSameRouteLocationParams(a, b) {\n\tif (Object.keys(a).length !== Object.keys(b).length) return false;\n\tfor (const key in a) if (!isSameRouteLocationParamsValue(a[key], b[key])) return false;\n\treturn true;\n}\nfunction isSameRouteLocationParamsValue(a, b) {\n\treturn isArray(a) ? isEquivalentArray(a, b) : isArray(b) ? isEquivalentArray(b, a) : a === b;\n}\n/**\n* Check if two arrays are the same or if an array with one single entry is the\n* same as another primitive value. Used to check query and parameters\n*\n* @param a - array of values\n* @param b - array of values or a single value\n*/\nfunction isEquivalentArray(a, b) {\n\treturn isArray(b) ? a.length === b.length && a.every((value, i) => value === b[i]) : a.length === 1 && a[0] === b;\n}\n/**\n* Resolves a relative path that starts with `.`.\n*\n* @param to - path location we are resolving\n* @param from - currentLocation.path, should start with `/`\n*/\nfunction resolveRelativePath(to, from) {\n\tif (to.startsWith(\"/\")) return to;\n\tif (process.env.NODE_ENV !== \"production\" && !from.startsWith(\"/\")) {\n\t\twarn$1(`Cannot resolve a relative location without an absolute path. Trying to resolve \"${to}\" from \"${from}\". It should look like \"/${from}\".`);\n\t\treturn to;\n\t}\n\tif (!to) return from;\n\tconst fromSegments = from.split(\"/\");\n\tconst toSegments = to.split(\"/\");\n\tconst lastToSegment = toSegments[toSegments.length - 1];\n\tif (lastToSegment === \"..\" || lastToSegment === \".\") toSegments.push(\"\");\n\tlet position = fromSegments.length - 1;\n\tlet toPosition;\n\tlet segment;\n\tfor (toPosition = 0; toPosition < toSegments.length; toPosition++) {\n\t\tsegment = toSegments[toPosition];\n\t\tif (segment === \".\") continue;\n\t\tif (segment === \"..\") {\n\t\t\tif (position > 1) position--;\n\t\t} else break;\n\t}\n\treturn fromSegments.slice(0, position).join(\"/\") + \"/\" + toSegments.slice(toPosition).join(\"/\");\n}\n/**\n* Initial route location where the router is. Can be used in navigation guards\n* to differentiate the initial navigation.\n*\n* @example\n* ```js\n* import { START_LOCATION } from 'vue-router'\n*\n* router.beforeEach((to, from) => {\n* if (from === START_LOCATION) {\n* // initial navigation\n* }\n* })\n* ```\n*/\nconst START_LOCATION_NORMALIZED = {\n\tpath: \"/\",\n\tname: void 0,\n\tparams: {},\n\tquery: {},\n\thash: \"\",\n\tfullPath: \"/\",\n\tmatched: [],\n\tmeta: {},\n\tredirectedFrom: void 0\n};\n\n//#endregion\n//#region src/history/common.ts\nlet NavigationType = /* @__PURE__ */ function(NavigationType$1) {\n\tNavigationType$1[\"pop\"] = \"pop\";\n\tNavigationType$1[\"push\"] = \"push\";\n\treturn NavigationType$1;\n}({});\nlet NavigationDirection = /* @__PURE__ */ function(NavigationDirection$1) {\n\tNavigationDirection$1[\"back\"] = \"back\";\n\tNavigationDirection$1[\"forward\"] = \"forward\";\n\tNavigationDirection$1[\"unknown\"] = \"\";\n\treturn NavigationDirection$1;\n}({});\n/**\n* Starting location for Histories\n*/\nconst START = \"\";\n/**\n* Normalizes a base by removing any trailing slash and reading the base tag if\n* present.\n*\n* @param base - base to normalize\n*/\nfunction normalizeBase(base) {\n\tif (!base) if (isBrowser) {\n\t\tconst baseEl = document.querySelector(\"base\");\n\t\tbase = baseEl && baseEl.getAttribute(\"href\") || \"/\";\n\t\tbase = base.replace(/^\\w+:\\/\\/[^\\/]+/, \"\");\n\t} else base = \"/\";\n\tif (base[0] !== \"/\" && base[0] !== \"#\") base = \"/\" + base;\n\treturn removeTrailingSlash(base);\n}\nconst BEFORE_HASH_RE = /^[^#]+#/;\nfunction createHref(base, location) {\n\treturn base.replace(BEFORE_HASH_RE, \"#\") + location;\n}\n\n//#endregion\n//#region src/scrollBehavior.ts\nfunction getElementPosition(el, offset) {\n\tconst docRect = document.documentElement.getBoundingClientRect();\n\tconst elRect = el.getBoundingClientRect();\n\treturn {\n\t\tbehavior: offset.behavior,\n\t\tleft: elRect.left - docRect.left - (offset.left || 0),\n\t\ttop: elRect.top - docRect.top - (offset.top || 0)\n\t};\n}\nconst computeScrollPosition = () => ({\n\tleft: window.scrollX,\n\ttop: window.scrollY\n});\nfunction scrollToPosition(position) {\n\tlet scrollToOptions;\n\tif (\"el\" in position) {\n\t\tconst positionEl = position.el;\n\t\tconst isIdSelector = typeof positionEl === \"string\" && positionEl.startsWith(\"#\");\n\t\t/**\n\t\t* `id`s can accept pretty much any characters, including CSS combinators\n\t\t* like `>` or `~`. It's still possible to retrieve elements using\n\t\t* `document.getElementById('~')` but it needs to be escaped when using\n\t\t* `document.querySelector('#\\\\~')` for it to be valid. The only\n\t\t* requirements for `id`s are them to be unique on the page and to not be\n\t\t* empty (`id=\"\"`). Because of that, when passing an id selector, it should\n\t\t* be properly escaped for it to work with `querySelector`. We could check\n\t\t* for the id selector to be simple (no CSS combinators `+ >~`) but that\n\t\t* would make things inconsistent since they are valid characters for an\n\t\t* `id` but would need to be escaped when using `querySelector`, breaking\n\t\t* their usage and ending up in no selector returned. Selectors need to be\n\t\t* escaped:\n\t\t*\n\t\t* - `#1-thing` becomes `#\\31 -thing`\n\t\t* - `#with~symbols` becomes `#with\\\\~symbols`\n\t\t*\n\t\t* - More information about the topic can be found at\n\t\t* https://mathiasbynens.be/notes/html5-id-class.\n\t\t* - Practical example: https://mathiasbynens.be/demo/html5-id\n\t\t*/\n\t\tif (process.env.NODE_ENV !== \"production\" && typeof position.el === \"string\") {\n\t\t\tif (!isIdSelector || !document.getElementById(position.el.slice(1))) try {\n\t\t\t\tconst foundEl = document.querySelector(position.el);\n\t\t\t\tif (isIdSelector && foundEl) {\n\t\t\t\t\twarn$1(`The selector \"${position.el}\" should be passed as \"el: document.querySelector('${position.el}')\" because it starts with \"#\".`);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} catch (err) {\n\t\t\t\twarn$1(`The selector \"${position.el}\" is invalid. If you are using an id selector, make sure to escape it. You can find more information about escaping characters in selectors at https://mathiasbynens.be/notes/css-escapes or use CSS.escape (https://developer.mozilla.org/en-US/docs/Web/API/CSS/escape).`);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tconst el = typeof positionEl === \"string\" ? isIdSelector ? document.getElementById(positionEl.slice(1)) : document.querySelector(positionEl) : positionEl;\n\t\tif (!el) {\n\t\t\tprocess.env.NODE_ENV !== \"production\" && warn$1(`Couldn't find element using selector \"${position.el}\" returned by scrollBehavior.`);\n\t\t\treturn;\n\t\t}\n\t\tscrollToOptions = getElementPosition(el, position);\n\t} else scrollToOptions = position;\n\tif (\"scrollBehavior\" in document.documentElement.style) window.scrollTo(scrollToOptions);\n\telse window.scrollTo(scrollToOptions.left != null ? scrollToOptions.left : window.scrollX, scrollToOptions.top != null ? scrollToOptions.top : window.scrollY);\n}\nfunction getScrollKey(path, delta) {\n\treturn (history.state ? history.state.position - delta : -1) + path;\n}\nconst scrollPositions = /* @__PURE__ */ new Map();\nfunction saveScrollPosition(key, scrollPosition) {\n\tscrollPositions.set(key, scrollPosition);\n}\nfunction getSavedScrollPosition(key) {\n\tconst scroll = scrollPositions.get(key);\n\tscrollPositions.delete(key);\n\treturn scroll;\n}\n/**\n* ScrollBehavior instance used by the router to compute and restore the scroll\n* position when navigating.\n*/\n\n//#endregion\n//#region src/types/typeGuards.ts\nfunction isRouteLocation(route) {\n\treturn typeof route === \"string\" || route && typeof route === \"object\";\n}\nfunction isRouteName(name) {\n\treturn typeof name === \"string\" || typeof name === \"symbol\";\n}\n\n//#endregion\n//#region src/errors.ts\n/**\n* Flags so we can combine them when checking for multiple errors. This is the internal version of\n* {@link NavigationFailureType}.\n*\n* @internal\n*/\nlet ErrorTypes = /* @__PURE__ */ function(ErrorTypes$1) {\n\tErrorTypes$1[ErrorTypes$1[\"MATCHER_NOT_FOUND\"] = 1] = \"MATCHER_NOT_FOUND\";\n\tErrorTypes$1[ErrorTypes$1[\"NAVIGATION_GUARD_REDIRECT\"] = 2] = \"NAVIGATION_GUARD_REDIRECT\";\n\tErrorTypes$1[ErrorTypes$1[\"NAVIGATION_ABORTED\"] = 4] = \"NAVIGATION_ABORTED\";\n\tErrorTypes$1[ErrorTypes$1[\"NAVIGATION_CANCELLED\"] = 8] = \"NAVIGATION_CANCELLED\";\n\tErrorTypes$1[ErrorTypes$1[\"NAVIGATION_DUPLICATED\"] = 16] = \"NAVIGATION_DUPLICATED\";\n\treturn ErrorTypes$1;\n}({});\nconst NavigationFailureSymbol = Symbol(process.env.NODE_ENV !== \"production\" ? \"navigation failure\" : \"\");\n/**\n* Enumeration with all possible types for navigation failures. Can be passed to\n* {@link isNavigationFailure} to check for specific failures.\n*/\nlet NavigationFailureType = /* @__PURE__ */ function(NavigationFailureType$1) {\n\t/**\n\t* An aborted navigation is a navigation that failed because a navigation\n\t* guard returned `false` or called `next(false)`\n\t*/\n\tNavigationFailureType$1[NavigationFailureType$1[\"aborted\"] = 4] = \"aborted\";\n\t/**\n\t* A cancelled navigation is a navigation that failed because a more recent\n\t* navigation finished started (not necessarily finished).\n\t*/\n\tNavigationFailureType$1[NavigationFailureType$1[\"cancelled\"] = 8] = \"cancelled\";\n\t/**\n\t* A duplicated navigation is a navigation that failed because it was\n\t* initiated while already being at the exact same location.\n\t*/\n\tNavigationFailureType$1[NavigationFailureType$1[\"duplicated\"] = 16] = \"duplicated\";\n\treturn NavigationFailureType$1;\n}({});\nconst ErrorTypeMessages = {\n\t[ErrorTypes.MATCHER_NOT_FOUND]({ location, currentLocation }) {\n\t\treturn `No match for\\n ${JSON.stringify(location)}${currentLocation ? \"\\nwhile being at\\n\" + JSON.stringify(currentLocation) : \"\"}`;\n\t},\n\t[ErrorTypes.NAVIGATION_GUARD_REDIRECT]({ from, to }) {\n\t\treturn `Redirected from \"${from.fullPath}\" to \"${stringifyRoute(to)}\" via a navigation guard.`;\n\t},\n\t[ErrorTypes.NAVIGATION_ABORTED]({ from, to }) {\n\t\treturn `Navigation aborted from \"${from.fullPath}\" to \"${to.fullPath}\" via a navigation guard.`;\n\t},\n\t[ErrorTypes.NAVIGATION_CANCELLED]({ from, to }) {\n\t\treturn `Navigation cancelled from \"${from.fullPath}\" to \"${to.fullPath}\" with a new navigation.`;\n\t},\n\t[ErrorTypes.NAVIGATION_DUPLICATED]({ from, to }) {\n\t\treturn `Avoided redundant navigation to current location: \"${from.fullPath}\".`;\n\t}\n};\n/**\n* Creates a typed NavigationFailure object.\n* @internal\n* @param type - NavigationFailureType\n* @param params - { from, to }\n*/\nfunction createRouterError(type, params) {\n\tif (process.env.NODE_ENV !== \"production\" || false) return assign(new Error(ErrorTypeMessages[type](params)), {\n\t\ttype,\n\t\t[NavigationFailureSymbol]: true\n\t}, params);\n\telse return assign(/* @__PURE__ */ new Error(), {\n\t\ttype,\n\t\t[NavigationFailureSymbol]: true\n\t}, params);\n}\nfunction isNavigationFailure(error, type) {\n\treturn error instanceof Error && NavigationFailureSymbol in error && (type == null || !!(error.type & type));\n}\nconst propertiesToLog = [\n\t\"params\",\n\t\"query\",\n\t\"hash\"\n];\nfunction stringifyRoute(to) {\n\tif (typeof to === \"string\") return to;\n\tif (to.path != null) return to.path;\n\tconst location = {};\n\tfor (const key of propertiesToLog) if (key in to) location[key] = to[key];\n\treturn JSON.stringify(location, null, 2);\n}\n\n//#endregion\n//#region src/query.ts\n/**\n* Transforms a queryString into a {@link LocationQuery} object. Accept both, a\n* version with the leading `?` and without Should work as URLSearchParams\n\n* @internal\n*\n* @param search - search string to parse\n* @returns a query object\n*/\nfunction parseQuery(search) {\n\tconst query = {};\n\tif (search === \"\" || search === \"?\") return query;\n\tconst searchParams = (search[0] === \"?\" ? search.slice(1) : search).split(\"&\");\n\tfor (let i = 0; i < searchParams.length; ++i) {\n\t\tconst searchParam = searchParams[i].replace(PLUS_RE, \" \");\n\t\tconst eqPos = searchParam.indexOf(\"=\");\n\t\tconst key = decode(eqPos < 0 ? searchParam : searchParam.slice(0, eqPos));\n\t\tconst value = eqPos < 0 ? null : decode(searchParam.slice(eqPos + 1));\n\t\tif (key in query) {\n\t\t\tlet currentValue = query[key];\n\t\t\tif (!isArray(currentValue)) currentValue = query[key] = [currentValue];\n\t\t\tcurrentValue.push(value);\n\t\t} else query[key] = value;\n\t}\n\treturn query;\n}\n/**\n* Stringifies a {@link LocationQueryRaw} object. Like `URLSearchParams`, it\n* doesn't prepend a `?`\n*\n* @internal\n*\n* @param query - query object to stringify\n* @returns string version of the query without the leading `?`\n*/\nfunction stringifyQuery(query) {\n\tlet search = \"\";\n\tfor (let key in query) {\n\t\tconst value = query[key];\n\t\tkey = encodeQueryKey(key);\n\t\tif (value == null) {\n\t\t\tif (value !== void 0) search += (search.length ? \"&\" : \"\") + key;\n\t\t\tcontinue;\n\t\t}\n\t\t(isArray(value) ? value.map((v) => v && encodeQueryValue(v)) : [value && encodeQueryValue(value)]).forEach((value$1) => {\n\t\t\tif (value$1 !== void 0) {\n\t\t\t\tsearch += (search.length ? \"&\" : \"\") + key;\n\t\t\t\tif (value$1 != null) search += \"=\" + value$1;\n\t\t\t}\n\t\t});\n\t}\n\treturn search;\n}\n/**\n* Transforms a {@link LocationQueryRaw} into a {@link LocationQuery} by casting\n* numbers into strings, removing keys with an undefined value and replacing\n* undefined with null in arrays\n*\n* @param query - query object to normalize\n* @returns a normalized query object\n*/\nfunction normalizeQuery(query) {\n\tconst normalizedQuery = {};\n\tfor (const key in query) {\n\t\tconst value = query[key];\n\t\tif (value !== void 0) normalizedQuery[key] = isArray(value) ? value.map((v) => v == null ? null : \"\" + v) : value == null ? value : \"\" + value;\n\t}\n\treturn normalizedQuery;\n}\n\n//#endregion\n//#region src/injectionSymbols.ts\n/**\n* RouteRecord being rendered by the closest ancestor Router View. Used for\n* `onBeforeRouteUpdate` and `onBeforeRouteLeave`. rvlm stands for Router View\n* Location Matched\n*\n* @internal\n*/\nconst matchedRouteKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"router view location matched\" : \"\");\n/**\n* Allows overriding the router view depth to control which component in\n* `matched` is rendered. rvd stands for Router View Depth\n*\n* @internal\n*/\nconst viewDepthKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"router view depth\" : \"\");\n/**\n* Allows overriding the router instance returned by `useRouter` in tests. r\n* stands for router\n*\n* @internal\n*/\nconst routerKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"router\" : \"\");\n/**\n* Allows overriding the current route returned by `useRoute` in tests. rl\n* stands for route location\n*\n* @internal\n*/\nconst routeLocationKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"route location\" : \"\");\n/**\n* Allows overriding the current route used by router-view. Internally this is\n* used when the `route` prop is passed.\n*\n* @internal\n*/\nconst routerViewLocationKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"router view location\" : \"\");\n\n//#endregion\n//#region src/utils/callbacks.ts\n/**\n* Create a list of callbacks that can be reset. Used to create before and after navigation guards list\n*/\nfunction useCallbacks() {\n\tlet handlers = [];\n\tfunction add(handler) {\n\t\thandlers.push(handler);\n\t\treturn () => {\n\t\t\tconst i = handlers.indexOf(handler);\n\t\t\tif (i > -1) handlers.splice(i, 1);\n\t\t};\n\t}\n\tfunction reset() {\n\t\thandlers = [];\n\t}\n\treturn {\n\t\tadd,\n\t\tlist: () => handlers.slice(),\n\t\treset\n\t};\n}\n\n//#endregion\n//#region src/navigationGuards.ts\nfunction registerGuard(record, name, guard) {\n\tconst removeFromList = () => {\n\t\trecord[name].delete(guard);\n\t};\n\tonUnmounted(removeFromList);\n\tonDeactivated(removeFromList);\n\tonActivated(() => {\n\t\trecord[name].add(guard);\n\t});\n\trecord[name].add(guard);\n}\n/**\n* Add a navigation guard that triggers whenever the component for the current\n* location is about to be left. Similar to {@link beforeRouteLeave} but can be\n* used in any component. The guard is removed when the component is unmounted.\n*\n* @param leaveGuard - {@link NavigationGuard}\n*/\nfunction onBeforeRouteLeave(leaveGuard) {\n\tif (process.env.NODE_ENV !== \"production\" && !getCurrentInstance()) {\n\t\twarn$1(\"getCurrentInstance() returned null. onBeforeRouteLeave() must be called at the top of a setup function\");\n\t\treturn;\n\t}\n\tconst activeRecord = inject(matchedRouteKey, {}).value;\n\tif (!activeRecord) {\n\t\tprocess.env.NODE_ENV !== \"production\" && warn$1(\"No active route record was found when calling `onBeforeRouteLeave()`. Make sure you call this function inside a component child of . Maybe you called it inside of App.vue?\");\n\t\treturn;\n\t}\n\tregisterGuard(activeRecord, \"leaveGuards\", leaveGuard);\n}\n/**\n* Add a navigation guard that triggers whenever the current location is about\n* to be updated. Similar to {@link beforeRouteUpdate} but can be used in any\n* component. The guard is removed when the component is unmounted.\n*\n* @param updateGuard - {@link NavigationGuard}\n*/\nfunction onBeforeRouteUpdate(updateGuard) {\n\tif (process.env.NODE_ENV !== \"production\" && !getCurrentInstance()) {\n\t\twarn$1(\"getCurrentInstance() returned null. onBeforeRouteUpdate() must be called at the top of a setup function\");\n\t\treturn;\n\t}\n\tconst activeRecord = inject(matchedRouteKey, {}).value;\n\tif (!activeRecord) {\n\t\tprocess.env.NODE_ENV !== \"production\" && warn$1(\"No active route record was found when calling `onBeforeRouteUpdate()`. Make sure you call this function inside a component child of . Maybe you called it inside of App.vue?\");\n\t\treturn;\n\t}\n\tregisterGuard(activeRecord, \"updateGuards\", updateGuard);\n}\nfunction guardToPromiseFn(guard, to, from, record, name, runWithContext = (fn) => fn()) {\n\tconst enterCallbackArray = record && (record.enterCallbacks[name] = record.enterCallbacks[name] || []);\n\treturn () => new Promise((resolve, reject) => {\n\t\tconst next = (valid) => {\n\t\t\tif (valid === false) reject(createRouterError(ErrorTypes.NAVIGATION_ABORTED, {\n\t\t\t\tfrom,\n\t\t\t\tto\n\t\t\t}));\n\t\t\telse if (valid instanceof Error) reject(valid);\n\t\t\telse if (isRouteLocation(valid)) reject(createRouterError(ErrorTypes.NAVIGATION_GUARD_REDIRECT, {\n\t\t\t\tfrom: to,\n\t\t\t\tto: valid\n\t\t\t}));\n\t\t\telse {\n\t\t\t\tif (enterCallbackArray && record.enterCallbacks[name] === enterCallbackArray && typeof valid === \"function\") enterCallbackArray.push(valid);\n\t\t\t\tresolve();\n\t\t\t}\n\t\t};\n\t\tconst guardReturn = runWithContext(() => guard.call(record && record.instances[name], to, from, process.env.NODE_ENV !== \"production\" ? canOnlyBeCalledOnce(next, to, from) : next));\n\t\tlet guardCall = Promise.resolve(guardReturn);\n\t\tif (guard.length < 3) guardCall = guardCall.then(next);\n\t\tif (process.env.NODE_ENV !== \"production\" && guard.length > 2) {\n\t\t\tconst message = `The \"next\" callback was never called inside of ${guard.name ? \"\\\"\" + guard.name + \"\\\"\" : \"\"}:\\n${guard.toString()}\\n. If you are returning a value instead of calling \"next\", make sure to remove the \"next\" parameter from your function.`;\n\t\t\tif (typeof guardReturn === \"object\" && \"then\" in guardReturn) guardCall = guardCall.then((resolvedValue) => {\n\t\t\t\tif (!next._called) {\n\t\t\t\t\twarn$1(message);\n\t\t\t\t\treturn Promise.reject(/* @__PURE__ */ new Error(\"Invalid navigation guard\"));\n\t\t\t\t}\n\t\t\t\treturn resolvedValue;\n\t\t\t});\n\t\t\telse if (guardReturn !== void 0) {\n\t\t\t\tif (!next._called) {\n\t\t\t\t\twarn$1(message);\n\t\t\t\t\treject(/* @__PURE__ */ new Error(\"Invalid navigation guard\"));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tguardCall.catch((err) => reject(err));\n\t});\n}\nfunction canOnlyBeCalledOnce(next, to, from) {\n\tlet called = 0;\n\treturn function() {\n\t\tif (called++ === 1) warn$1(`The \"next\" callback was called more than once in one navigation guard when going from \"${from.fullPath}\" to \"${to.fullPath}\". It should be called exactly one time in each navigation guard. This will fail in production.`);\n\t\tnext._called = true;\n\t\tif (called === 1) next.apply(null, arguments);\n\t};\n}\nfunction extractComponentsGuards(matched, guardType, to, from, runWithContext = (fn) => fn()) {\n\tconst guards = [];\n\tfor (const record of matched) {\n\t\tif (process.env.NODE_ENV !== \"production\" && !record.components && record.children && !record.children.length) warn$1(`Record with path \"${record.path}\" is either missing a \"component(s)\" or \"children\" property.`);\n\t\tfor (const name in record.components) {\n\t\t\tlet rawComponent = record.components[name];\n\t\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\t\tif (!rawComponent || typeof rawComponent !== \"object\" && typeof rawComponent !== \"function\") {\n\t\t\t\t\twarn$1(`Component \"${name}\" in record with path \"${record.path}\" is not a valid component. Received \"${String(rawComponent)}\".`);\n\t\t\t\t\tthrow new Error(\"Invalid route component\");\n\t\t\t\t} else if (\"then\" in rawComponent) {\n\t\t\t\t\twarn$1(`Component \"${name}\" in record with path \"${record.path}\" is a Promise instead of a function that returns a Promise. Did you write \"import('./MyPage.vue')\" instead of \"() => import('./MyPage.vue')\" ? This will break in production if not fixed.`);\n\t\t\t\t\tconst promise = rawComponent;\n\t\t\t\t\trawComponent = () => promise;\n\t\t\t\t} else if (rawComponent.__asyncLoader && !rawComponent.__warnedDefineAsync) {\n\t\t\t\t\trawComponent.__warnedDefineAsync = true;\n\t\t\t\t\twarn$1(`Component \"${name}\" in record with path \"${record.path}\" is defined using \"defineAsyncComponent()\". Write \"() => import('./MyPage.vue')\" instead of \"defineAsyncComponent(() => import('./MyPage.vue'))\".`);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (guardType !== \"beforeRouteEnter\" && !record.instances[name]) continue;\n\t\t\tif (isRouteComponent(rawComponent)) {\n\t\t\t\tconst guard = (rawComponent.__vccOpts || rawComponent)[guardType];\n\t\t\t\tguard && guards.push(guardToPromiseFn(guard, to, from, record, name, runWithContext));\n\t\t\t} else {\n\t\t\t\tlet componentPromise = rawComponent();\n\t\t\t\tif (process.env.NODE_ENV !== \"production\" && !(\"catch\" in componentPromise)) {\n\t\t\t\t\twarn$1(`Component \"${name}\" in record with path \"${record.path}\" is a function that does not return a Promise. If you were passing a functional component, make sure to add a \"displayName\" to the component. This will break in production if not fixed.`);\n\t\t\t\t\tcomponentPromise = Promise.resolve(componentPromise);\n\t\t\t\t}\n\t\t\t\tguards.push(() => componentPromise.then((resolved) => {\n\t\t\t\t\tif (!resolved) throw new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\"`);\n\t\t\t\t\tconst resolvedComponent = isESModule(resolved) ? resolved.default : resolved;\n\t\t\t\t\trecord.mods[name] = resolved;\n\t\t\t\t\trecord.components[name] = resolvedComponent;\n\t\t\t\t\tconst guard = (resolvedComponent.__vccOpts || resolvedComponent)[guardType];\n\t\t\t\t\treturn guard && guardToPromiseFn(guard, to, from, record, name, runWithContext)();\n\t\t\t\t}));\n\t\t\t}\n\t\t}\n\t}\n\treturn guards;\n}\n/**\n* Ensures a route is loaded, so it can be passed as o prop to ``.\n*\n* @param route - resolved route to load\n*/\nfunction loadRouteLocation(route) {\n\treturn route.matched.every((record) => record.redirect) ? Promise.reject(/* @__PURE__ */ new Error(\"Cannot load a route that redirects.\")) : Promise.all(route.matched.map((record) => record.components && Promise.all(Object.keys(record.components).reduce((promises, name) => {\n\t\tconst rawComponent = record.components[name];\n\t\tif (typeof rawComponent === \"function\" && !(\"displayName\" in rawComponent)) promises.push(rawComponent().then((resolved) => {\n\t\t\tif (!resolved) return Promise.reject(/* @__PURE__ */ new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\". Ensure you passed a function that returns a promise.`));\n\t\t\tconst resolvedComponent = isESModule(resolved) ? resolved.default : resolved;\n\t\t\trecord.mods[name] = resolved;\n\t\t\trecord.components[name] = resolvedComponent;\n\t\t}));\n\t\treturn promises;\n\t}, [])))).then(() => route);\n}\n/**\n* Split the leaving, updating, and entering records.\n* @internal\n*\n* @param to - Location we are navigating to\n* @param from - Location we are navigating from\n*/\nfunction extractChangingRecords(to, from) {\n\tconst leavingRecords = [];\n\tconst updatingRecords = [];\n\tconst enteringRecords = [];\n\tconst len = Math.max(from.matched.length, to.matched.length);\n\tfor (let i = 0; i < len; i++) {\n\t\tconst recordFrom = from.matched[i];\n\t\tif (recordFrom) if (to.matched.find((record) => isSameRouteRecord(record, recordFrom))) updatingRecords.push(recordFrom);\n\t\telse leavingRecords.push(recordFrom);\n\t\tconst recordTo = to.matched[i];\n\t\tif (recordTo) {\n\t\t\tif (!from.matched.find((record) => isSameRouteRecord(record, recordTo))) enteringRecords.push(recordTo);\n\t\t}\n\t}\n\treturn [\n\t\tleavingRecords,\n\t\tupdatingRecords,\n\t\tenteringRecords\n\t];\n}\n\n//#endregion\n//#region src/devtools.ts\n/**\n* Copies a route location and removes any problematic properties that cannot be shown in devtools (e.g. Vue instances).\n*\n* @param routeLocation - routeLocation to format\n* @param tooltip - optional tooltip\n* @returns a copy of the routeLocation\n*/\nfunction formatRouteLocation(routeLocation, tooltip) {\n\tconst copy = assign({}, routeLocation, { matched: routeLocation.matched.map((matched) => omit(matched, [\n\t\t\"instances\",\n\t\t\"children\",\n\t\t\"aliasOf\"\n\t])) });\n\treturn { _custom: {\n\t\ttype: null,\n\t\treadOnly: true,\n\t\tdisplay: routeLocation.fullPath,\n\t\ttooltip,\n\t\tvalue: copy\n\t} };\n}\nfunction formatDisplay(display) {\n\treturn { _custom: { display } };\n}\nlet routerId = 0;\nfunction addDevtools(app, router, matcher) {\n\tif (router.__hasDevtools) return;\n\trouter.__hasDevtools = true;\n\tconst id = routerId++;\n\tsetupDevtoolsPlugin({\n\t\tid: \"org.vuejs.router\" + (id ? \".\" + id : \"\"),\n\t\tlabel: \"Vue Router\",\n\t\tpackageName: \"vue-router\",\n\t\thomepage: \"https://router.vuejs.org\",\n\t\tlogo: \"https://router.vuejs.org/logo.png\",\n\t\tcomponentStateTypes: [\"Routing\"],\n\t\tapp\n\t}, (api) => {\n\t\tif (typeof api.now !== \"function\") warn$1(\"[Vue Router]: You seem to be using an outdated version of Vue Devtools. Are you still using the Beta release instead of the stable one? You can find the links at https://devtools.vuejs.org/guide/installation.html.\");\n\t\tapi.on.inspectComponent((payload, ctx) => {\n\t\t\tif (payload.instanceData) payload.instanceData.state.push({\n\t\t\t\ttype: \"Routing\",\n\t\t\t\tkey: \"$route\",\n\t\t\t\teditable: false,\n\t\t\t\tvalue: formatRouteLocation(router.currentRoute.value, \"Current Route\")\n\t\t\t});\n\t\t});\n\t\tapi.on.visitComponentTree(({ treeNode: node, componentInstance }) => {\n\t\t\tif (componentInstance.__vrv_devtools) {\n\t\t\t\tconst info = componentInstance.__vrv_devtools;\n\t\t\t\tnode.tags.push({\n\t\t\t\t\tlabel: (info.name ? `${info.name.toString()}: ` : \"\") + info.path,\n\t\t\t\t\ttextColor: 0,\n\t\t\t\t\ttooltip: \"This component is rendered by <router-view>\",\n\t\t\t\t\tbackgroundColor: PINK_500\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (isArray(componentInstance.__vrl_devtools)) {\n\t\t\t\tcomponentInstance.__devtoolsApi = api;\n\t\t\t\tcomponentInstance.__vrl_devtools.forEach((devtoolsData) => {\n\t\t\t\t\tlet label = devtoolsData.route.path;\n\t\t\t\t\tlet backgroundColor = ORANGE_400;\n\t\t\t\t\tlet tooltip = \"\";\n\t\t\t\t\tlet textColor = 0;\n\t\t\t\t\tif (devtoolsData.error) {\n\t\t\t\t\t\tlabel = devtoolsData.error;\n\t\t\t\t\t\tbackgroundColor = RED_100;\n\t\t\t\t\t\ttextColor = RED_700;\n\t\t\t\t\t} else if (devtoolsData.isExactActive) {\n\t\t\t\t\t\tbackgroundColor = LIME_500;\n\t\t\t\t\t\ttooltip = \"This is exactly active\";\n\t\t\t\t\t} else if (devtoolsData.isActive) {\n\t\t\t\t\t\tbackgroundColor = BLUE_600;\n\t\t\t\t\t\ttooltip = \"This link is active\";\n\t\t\t\t\t}\n\t\t\t\t\tnode.tags.push({\n\t\t\t\t\t\tlabel,\n\t\t\t\t\t\ttextColor,\n\t\t\t\t\t\ttooltip,\n\t\t\t\t\t\tbackgroundColor\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\twatch(router.currentRoute, () => {\n\t\t\trefreshRoutesView();\n\t\t\tapi.notifyComponentUpdate();\n\t\t\tapi.sendInspectorTree(routerInspectorId);\n\t\t\tapi.sendInspectorState(routerInspectorId);\n\t\t});\n\t\tconst navigationsLayerId = \"router:navigations:\" + id;\n\t\tapi.addTimelineLayer({\n\t\t\tid: navigationsLayerId,\n\t\t\tlabel: `Router${id ? \" \" + id : \"\"} Navigations`,\n\t\t\tcolor: 4237508\n\t\t});\n\t\trouter.onError((error, to) => {\n\t\t\tapi.addTimelineEvent({\n\t\t\t\tlayerId: navigationsLayerId,\n\t\t\t\tevent: {\n\t\t\t\t\ttitle: \"Error during Navigation\",\n\t\t\t\t\tsubtitle: to.fullPath,\n\t\t\t\t\tlogType: \"error\",\n\t\t\t\t\ttime: api.now(),\n\t\t\t\t\tdata: { error },\n\t\t\t\t\tgroupId: to.meta.__navigationId\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\tlet navigationId = 0;\n\t\trouter.beforeEach((to, from) => {\n\t\t\tconst data = {\n\t\t\t\tguard: formatDisplay(\"beforeEach\"),\n\t\t\t\tfrom: formatRouteLocation(from, \"Current Location during this navigation\"),\n\t\t\t\tto: formatRouteLocation(to, \"Target location\")\n\t\t\t};\n\t\t\tObject.defineProperty(to.meta, \"__navigationId\", { value: navigationId++ });\n\t\t\tapi.addTimelineEvent({\n\t\t\t\tlayerId: navigationsLayerId,\n\t\t\t\tevent: {\n\t\t\t\t\ttime: api.now(),\n\t\t\t\t\ttitle: \"Start of navigation\",\n\t\t\t\t\tsubtitle: to.fullPath,\n\t\t\t\t\tdata,\n\t\t\t\t\tgroupId: to.meta.__navigationId\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\trouter.afterEach((to, from, failure) => {\n\t\t\tconst data = { guard: formatDisplay(\"afterEach\") };\n\t\t\tif (failure) {\n\t\t\t\tdata.failure = { _custom: {\n\t\t\t\t\ttype: Error,\n\t\t\t\t\treadOnly: true,\n\t\t\t\t\tdisplay: failure ? failure.message : \"\",\n\t\t\t\t\ttooltip: \"Navigation Failure\",\n\t\t\t\t\tvalue: failure\n\t\t\t\t} };\n\t\t\t\tdata.status = formatDisplay(\"❌\");\n\t\t\t} else data.status = formatDisplay(\"✅\");\n\t\t\tdata.from = formatRouteLocation(from, \"Current Location during this navigation\");\n\t\t\tdata.to = formatRouteLocation(to, \"Target location\");\n\t\t\tapi.addTimelineEvent({\n\t\t\t\tlayerId: navigationsLayerId,\n\t\t\t\tevent: {\n\t\t\t\t\ttitle: \"End of navigation\",\n\t\t\t\t\tsubtitle: to.fullPath,\n\t\t\t\t\ttime: api.now(),\n\t\t\t\t\tdata,\n\t\t\t\t\tlogType: failure ? \"warning\" : \"default\",\n\t\t\t\t\tgroupId: to.meta.__navigationId\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\t/**\n\t\t* Inspector of Existing routes\n\t\t*/\n\t\tconst routerInspectorId = \"router-inspector:\" + id;\n\t\tapi.addInspector({\n\t\t\tid: routerInspectorId,\n\t\t\tlabel: \"Routes\" + (id ? \" \" + id : \"\"),\n\t\t\ticon: \"book\",\n\t\t\ttreeFilterPlaceholder: \"Search routes\"\n\t\t});\n\t\tfunction refreshRoutesView() {\n\t\t\tif (!activeRoutesPayload) return;\n\t\t\tconst payload = activeRoutesPayload;\n\t\t\tlet routes = matcher.getRoutes().filter((route) => !route.parent || !route.parent.record.components);\n\t\t\troutes.forEach(resetMatchStateOnRouteRecord);\n\t\t\tif (payload.filter) routes = routes.filter((route) => isRouteMatching(route, payload.filter.toLowerCase()));\n\t\t\troutes.forEach((route) => markRouteRecordActive(route, router.currentRoute.value));\n\t\t\tpayload.rootNodes = routes.map(formatRouteRecordForInspector);\n\t\t}\n\t\tlet activeRoutesPayload;\n\t\tapi.on.getInspectorTree((payload) => {\n\t\t\tactiveRoutesPayload = payload;\n\t\t\tif (payload.app === app && payload.inspectorId === routerInspectorId) refreshRoutesView();\n\t\t});\n\t\t/**\n\t\t* Display information about the currently selected route record\n\t\t*/\n\t\tapi.on.getInspectorState((payload) => {\n\t\t\tif (payload.app === app && payload.inspectorId === routerInspectorId) {\n\t\t\t\tconst route = matcher.getRoutes().find((route$1) => route$1.record.__vd_id === payload.nodeId);\n\t\t\t\tif (route) payload.state = { options: formatRouteRecordMatcherForStateInspector(route) };\n\t\t\t}\n\t\t});\n\t\tapi.sendInspectorTree(routerInspectorId);\n\t\tapi.sendInspectorState(routerInspectorId);\n\t});\n}\nfunction modifierForKey(key) {\n\tif (key.optional) return key.repeatable ? \"*\" : \"?\";\n\telse return key.repeatable ? \"+\" : \"\";\n}\nfunction formatRouteRecordMatcherForStateInspector(route) {\n\tconst { record } = route;\n\tconst fields = [{\n\t\teditable: false,\n\t\tkey: \"path\",\n\t\tvalue: record.path\n\t}];\n\tif (record.name != null) fields.push({\n\t\teditable: false,\n\t\tkey: \"name\",\n\t\tvalue: record.name\n\t});\n\tfields.push({\n\t\teditable: false,\n\t\tkey: \"regexp\",\n\t\tvalue: route.re\n\t});\n\tif (route.keys.length) fields.push({\n\t\teditable: false,\n\t\tkey: \"keys\",\n\t\tvalue: { _custom: {\n\t\t\ttype: null,\n\t\t\treadOnly: true,\n\t\t\tdisplay: route.keys.map((key) => `${key.name}${modifierForKey(key)}`).join(\" \"),\n\t\t\ttooltip: \"Param keys\",\n\t\t\tvalue: route.keys\n\t\t} }\n\t});\n\tif (record.redirect != null) fields.push({\n\t\teditable: false,\n\t\tkey: \"redirect\",\n\t\tvalue: record.redirect\n\t});\n\tif (route.alias.length) fields.push({\n\t\teditable: false,\n\t\tkey: \"aliases\",\n\t\tvalue: route.alias.map((alias) => alias.record.path)\n\t});\n\tif (Object.keys(route.record.meta).length) fields.push({\n\t\teditable: false,\n\t\tkey: \"meta\",\n\t\tvalue: route.record.meta\n\t});\n\tfields.push({\n\t\tkey: \"score\",\n\t\teditable: false,\n\t\tvalue: { _custom: {\n\t\t\ttype: null,\n\t\t\treadOnly: true,\n\t\t\tdisplay: route.score.map((score) => score.join(\", \")).join(\" | \"),\n\t\t\ttooltip: \"Score used to sort routes\",\n\t\t\tvalue: route.score\n\t\t} }\n\t});\n\treturn fields;\n}\n/**\n* Extracted from tailwind palette\n*/\nconst PINK_500 = 15485081;\nconst BLUE_600 = 2450411;\nconst LIME_500 = 8702998;\nconst CYAN_400 = 2282478;\nconst ORANGE_400 = 16486972;\nconst DARK = 6710886;\nconst RED_100 = 16704226;\nconst RED_700 = 12131356;\nfunction formatRouteRecordForInspector(route) {\n\tconst tags = [];\n\tconst { record } = route;\n\tif (record.name != null) tags.push({\n\t\tlabel: String(record.name),\n\t\ttextColor: 0,\n\t\tbackgroundColor: CYAN_400\n\t});\n\tif (record.aliasOf) tags.push({\n\t\tlabel: \"alias\",\n\t\ttextColor: 0,\n\t\tbackgroundColor: ORANGE_400\n\t});\n\tif (route.__vd_match) tags.push({\n\t\tlabel: \"matches\",\n\t\ttextColor: 0,\n\t\tbackgroundColor: PINK_500\n\t});\n\tif (route.__vd_exactActive) tags.push({\n\t\tlabel: \"exact\",\n\t\ttextColor: 0,\n\t\tbackgroundColor: LIME_500\n\t});\n\tif (route.__vd_active) tags.push({\n\t\tlabel: \"active\",\n\t\ttextColor: 0,\n\t\tbackgroundColor: BLUE_600\n\t});\n\tif (record.redirect) tags.push({\n\t\tlabel: typeof record.redirect === \"string\" ? `redirect: ${record.redirect}` : \"redirects\",\n\t\ttextColor: 16777215,\n\t\tbackgroundColor: DARK\n\t});\n\tlet id = record.__vd_id;\n\tif (id == null) {\n\t\tid = String(routeRecordId++);\n\t\trecord.__vd_id = id;\n\t}\n\treturn {\n\t\tid,\n\t\tlabel: record.path,\n\t\ttags,\n\t\tchildren: route.children.map(formatRouteRecordForInspector)\n\t};\n}\nlet routeRecordId = 0;\nconst EXTRACT_REGEXP_RE = /^\\/(.*)\\/([a-z]*)$/;\nfunction markRouteRecordActive(route, currentRoute) {\n\tconst isExactActive = currentRoute.matched.length && isSameRouteRecord(currentRoute.matched[currentRoute.matched.length - 1], route.record);\n\troute.__vd_exactActive = route.__vd_active = isExactActive;\n\tif (!isExactActive) route.__vd_active = currentRoute.matched.some((match) => isSameRouteRecord(match, route.record));\n\troute.children.forEach((childRoute) => markRouteRecordActive(childRoute, currentRoute));\n}\nfunction resetMatchStateOnRouteRecord(route) {\n\troute.__vd_match = false;\n\troute.children.forEach(resetMatchStateOnRouteRecord);\n}\nfunction isRouteMatching(route, filter) {\n\tconst found = String(route.re).match(EXTRACT_REGEXP_RE);\n\troute.__vd_match = false;\n\tif (!found || found.length < 3) return false;\n\tif (new RegExp(found[1].replace(/\\$$/, \"\"), found[2]).test(filter)) {\n\t\troute.children.forEach((child) => isRouteMatching(child, filter));\n\t\tif (route.record.path !== \"/\" || filter === \"/\") {\n\t\t\troute.__vd_match = route.re.test(filter);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tconst path = route.record.path.toLowerCase();\n\tconst decodedPath = decode(path);\n\tif (!filter.startsWith(\"/\") && (decodedPath.includes(filter) || path.includes(filter))) return true;\n\tif (decodedPath.startsWith(filter) || path.startsWith(filter)) return true;\n\tif (route.record.name && String(route.record.name).includes(filter)) return true;\n\treturn route.children.some((child) => isRouteMatching(child, filter));\n}\nfunction omit(obj, keys) {\n\tconst ret = {};\n\tfor (const key in obj) if (!keys.includes(key)) ret[key] = obj[key];\n\treturn ret;\n}\n\n//#endregion\nexport { ErrorTypes, NEW_stringifyURL, NavigationDirection, NavigationFailureType, NavigationType, START, START_LOCATION_NORMALIZED, addDevtools, applyToParams, assign, computeScrollPosition, createHref, createRouterError, decode, encodeHash, encodeParam, encodePath, extractChangingRecords, extractComponentsGuards, getSavedScrollPosition, getScrollKey, guardToPromiseFn, identityFn, isArray, isBrowser, isNavigationFailure, isRouteLocation, isRouteName, isSameRouteLocation, isSameRouteLocationParams, isSameRouteRecord, loadRouteLocation, matchedRouteKey, mergeOptions, noop, normalizeBase, normalizeQuery, onBeforeRouteLeave, onBeforeRouteUpdate, parseQuery, parseURL, resolveRelativePath, routeLocationKey, routerKey, routerViewLocationKey, saveScrollPosition, scrollToPosition, stringifyQuery, stringifyURL, stripBase, useCallbacks, viewDepthKey, warn$1 as warn };","/*!\n * vue-router v4.6.3\n * (c) 2025 Eduardo San Martin Morote\n * @license MIT\n */\nimport { ErrorTypes, NavigationDirection, NavigationFailureType, NavigationType, START, START_LOCATION_NORMALIZED, addDevtools, applyToParams, assign, computeScrollPosition, createHref, createRouterError, decode, encodeHash, encodeParam, extractChangingRecords, extractComponentsGuards, getSavedScrollPosition, getScrollKey, guardToPromiseFn, isArray, isBrowser, isNavigationFailure, isRouteLocation, isRouteName, isSameRouteLocation, isSameRouteLocationParams, isSameRouteRecord, loadRouteLocation, matchedRouteKey, mergeOptions, noop, normalizeBase, normalizeQuery, onBeforeRouteLeave, onBeforeRouteUpdate, parseQuery, parseURL, routeLocationKey, routerKey, routerViewLocationKey, saveScrollPosition, scrollToPosition, stringifyQuery, stringifyURL, stripBase, useCallbacks, viewDepthKey, warn as warn$1 } from \"./devtools-BLCumUwL.mjs\";\nimport { computed, defineComponent, getCurrentInstance, h, inject, nextTick, provide, reactive, ref, shallowReactive, shallowRef, unref, watch, watchEffect } from \"vue\";\n\n//#region src/history/html5.ts\nlet createBaseLocation = () => location.protocol + \"//\" + location.host;\n/**\n* Creates a normalized history location from a window.location object\n* @param base - The base path\n* @param location - The window.location object\n*/\nfunction createCurrentLocation(base, location$1) {\n\tconst { pathname, search, hash } = location$1;\n\tconst hashPos = base.indexOf(\"#\");\n\tif (hashPos > -1) {\n\t\tlet slicePos = hash.includes(base.slice(hashPos)) ? base.slice(hashPos).length : 1;\n\t\tlet pathFromHash = hash.slice(slicePos);\n\t\tif (pathFromHash[0] !== \"/\") pathFromHash = \"/\" + pathFromHash;\n\t\treturn stripBase(pathFromHash, \"\");\n\t}\n\treturn stripBase(pathname, base) + search + hash;\n}\nfunction useHistoryListeners(base, historyState, currentLocation, replace) {\n\tlet listeners = [];\n\tlet teardowns = [];\n\tlet pauseState = null;\n\tconst popStateHandler = ({ state }) => {\n\t\tconst to = createCurrentLocation(base, location);\n\t\tconst from = currentLocation.value;\n\t\tconst fromState = historyState.value;\n\t\tlet delta = 0;\n\t\tif (state) {\n\t\t\tcurrentLocation.value = to;\n\t\t\thistoryState.value = state;\n\t\t\tif (pauseState && pauseState === from) {\n\t\t\t\tpauseState = null;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tdelta = fromState ? state.position - fromState.position : 0;\n\t\t} else replace(to);\n\t\tlisteners.forEach((listener) => {\n\t\t\tlistener(currentLocation.value, from, {\n\t\t\t\tdelta,\n\t\t\t\ttype: NavigationType.pop,\n\t\t\t\tdirection: delta ? delta > 0 ? NavigationDirection.forward : NavigationDirection.back : NavigationDirection.unknown\n\t\t\t});\n\t\t});\n\t};\n\tfunction pauseListeners() {\n\t\tpauseState = currentLocation.value;\n\t}\n\tfunction listen(callback) {\n\t\tlisteners.push(callback);\n\t\tconst teardown = () => {\n\t\t\tconst index = listeners.indexOf(callback);\n\t\t\tif (index > -1) listeners.splice(index, 1);\n\t\t};\n\t\tteardowns.push(teardown);\n\t\treturn teardown;\n\t}\n\tfunction beforeUnloadListener() {\n\t\tif (document.visibilityState === \"hidden\") {\n\t\t\tconst { history: history$1 } = window;\n\t\t\tif (!history$1.state) return;\n\t\t\thistory$1.replaceState(assign({}, history$1.state, { scroll: computeScrollPosition() }), \"\");\n\t\t}\n\t}\n\tfunction destroy() {\n\t\tfor (const teardown of teardowns) teardown();\n\t\tteardowns = [];\n\t\twindow.removeEventListener(\"popstate\", popStateHandler);\n\t\twindow.removeEventListener(\"pagehide\", beforeUnloadListener);\n\t\tdocument.removeEventListener(\"visibilitychange\", beforeUnloadListener);\n\t}\n\twindow.addEventListener(\"popstate\", popStateHandler);\n\twindow.addEventListener(\"pagehide\", beforeUnloadListener);\n\tdocument.addEventListener(\"visibilitychange\", beforeUnloadListener);\n\treturn {\n\t\tpauseListeners,\n\t\tlisten,\n\t\tdestroy\n\t};\n}\n/**\n* Creates a state object\n*/\nfunction buildState(back, current, forward, replaced = false, computeScroll = false) {\n\treturn {\n\t\tback,\n\t\tcurrent,\n\t\tforward,\n\t\treplaced,\n\t\tposition: window.history.length,\n\t\tscroll: computeScroll ? computeScrollPosition() : null\n\t};\n}\nfunction useHistoryStateNavigation(base) {\n\tconst { history: history$1, location: location$1 } = window;\n\tconst currentLocation = { value: createCurrentLocation(base, location$1) };\n\tconst historyState = { value: history$1.state };\n\tif (!historyState.value) changeLocation(currentLocation.value, {\n\t\tback: null,\n\t\tcurrent: currentLocation.value,\n\t\tforward: null,\n\t\tposition: history$1.length - 1,\n\t\treplaced: true,\n\t\tscroll: null\n\t}, true);\n\tfunction changeLocation(to, state, replace$1) {\n\t\t/**\n\t\t* if a base tag is provided, and we are on a normal domain, we have to\n\t\t* respect the provided `base` attribute because pushState() will use it and\n\t\t* potentially erase anything before the `#` like at\n\t\t* https://github.com/vuejs/router/issues/685 where a base of\n\t\t* `/folder/#` but a base of `/` would erase the `/folder/` section. If\n\t\t* there is no host, the `` tag makes no sense and if there isn't a\n\t\t* base tag we can just use everything after the `#`.\n\t\t*/\n\t\tconst hashIndex = base.indexOf(\"#\");\n\t\tconst url = hashIndex > -1 ? (location$1.host && document.querySelector(\"base\") ? base : base.slice(hashIndex)) + to : createBaseLocation() + base + to;\n\t\ttry {\n\t\t\thistory$1[replace$1 ? \"replaceState\" : \"pushState\"](state, \"\", url);\n\t\t\thistoryState.value = state;\n\t\t} catch (err) {\n\t\t\tif (process.env.NODE_ENV !== \"production\") warn$1(\"Error with push/replace State\", err);\n\t\t\telse console.error(err);\n\t\t\tlocation$1[replace$1 ? \"replace\" : \"assign\"](url);\n\t\t}\n\t}\n\tfunction replace(to, data) {\n\t\tchangeLocation(to, assign({}, history$1.state, buildState(historyState.value.back, to, historyState.value.forward, true), data, { position: historyState.value.position }), true);\n\t\tcurrentLocation.value = to;\n\t}\n\tfunction push(to, data) {\n\t\tconst currentState = assign({}, historyState.value, history$1.state, {\n\t\t\tforward: to,\n\t\t\tscroll: computeScrollPosition()\n\t\t});\n\t\tif (process.env.NODE_ENV !== \"production\" && !history$1.state) warn$1(\"history.state seems to have been manually replaced without preserving the necessary values. Make sure to preserve existing history state if you are manually calling history.replaceState:\\n\\nhistory.replaceState(history.state, '', url)\\n\\nYou can find more information at https://router.vuejs.org/guide/migration/#Usage-of-history-state\");\n\t\tchangeLocation(currentState.current, currentState, true);\n\t\tchangeLocation(to, assign({}, buildState(currentLocation.value, to, null), { position: currentState.position + 1 }, data), false);\n\t\tcurrentLocation.value = to;\n\t}\n\treturn {\n\t\tlocation: currentLocation,\n\t\tstate: historyState,\n\t\tpush,\n\t\treplace\n\t};\n}\n/**\n* Creates an HTML5 history. Most common history for single page applications.\n*\n* @param base -\n*/\nfunction createWebHistory(base) {\n\tbase = normalizeBase(base);\n\tconst historyNavigation = useHistoryStateNavigation(base);\n\tconst historyListeners = useHistoryListeners(base, historyNavigation.state, historyNavigation.location, historyNavigation.replace);\n\tfunction go(delta, triggerListeners = true) {\n\t\tif (!triggerListeners) historyListeners.pauseListeners();\n\t\thistory.go(delta);\n\t}\n\tconst routerHistory = assign({\n\t\tlocation: \"\",\n\t\tbase,\n\t\tgo,\n\t\tcreateHref: createHref.bind(null, base)\n\t}, historyNavigation, historyListeners);\n\tObject.defineProperty(routerHistory, \"location\", {\n\t\tenumerable: true,\n\t\tget: () => historyNavigation.location.value\n\t});\n\tObject.defineProperty(routerHistory, \"state\", {\n\t\tenumerable: true,\n\t\tget: () => historyNavigation.state.value\n\t});\n\treturn routerHistory;\n}\n\n//#endregion\n//#region src/history/memory.ts\n/**\n* Creates an in-memory based history. The main purpose of this history is to handle SSR. It starts in a special location that is nowhere.\n* It's up to the user to replace that location with the starter location by either calling `router.push` or `router.replace`.\n*\n* @param base - Base applied to all urls, defaults to '/'\n* @returns a history object that can be passed to the router constructor\n*/\nfunction createMemoryHistory(base = \"\") {\n\tlet listeners = [];\n\tlet queue = [[START, {}]];\n\tlet position = 0;\n\tbase = normalizeBase(base);\n\tfunction setLocation(location$1, state = {}) {\n\t\tposition++;\n\t\tif (position !== queue.length) queue.splice(position);\n\t\tqueue.push([location$1, state]);\n\t}\n\tfunction triggerListeners(to, from, { direction, delta }) {\n\t\tconst info = {\n\t\t\tdirection,\n\t\t\tdelta,\n\t\t\ttype: NavigationType.pop\n\t\t};\n\t\tfor (const callback of listeners) callback(to, from, info);\n\t}\n\tconst routerHistory = {\n\t\tlocation: START,\n\t\tstate: {},\n\t\tbase,\n\t\tcreateHref: createHref.bind(null, base),\n\t\treplace(to, state) {\n\t\t\tqueue.splice(position--, 1);\n\t\t\tsetLocation(to, state);\n\t\t},\n\t\tpush(to, state) {\n\t\t\tsetLocation(to, state);\n\t\t},\n\t\tlisten(callback) {\n\t\t\tlisteners.push(callback);\n\t\t\treturn () => {\n\t\t\t\tconst index = listeners.indexOf(callback);\n\t\t\t\tif (index > -1) listeners.splice(index, 1);\n\t\t\t};\n\t\t},\n\t\tdestroy() {\n\t\t\tlisteners = [];\n\t\t\tqueue = [[START, {}]];\n\t\t\tposition = 0;\n\t\t},\n\t\tgo(delta, shouldTrigger = true) {\n\t\t\tconst from = this.location;\n\t\t\tconst direction = delta < 0 ? NavigationDirection.back : NavigationDirection.forward;\n\t\t\tposition = Math.max(0, Math.min(position + delta, queue.length - 1));\n\t\t\tif (shouldTrigger) triggerListeners(this.location, from, {\n\t\t\t\tdirection,\n\t\t\t\tdelta\n\t\t\t});\n\t\t}\n\t};\n\tObject.defineProperty(routerHistory, \"location\", {\n\t\tenumerable: true,\n\t\tget: () => queue[position][0]\n\t});\n\tObject.defineProperty(routerHistory, \"state\", {\n\t\tenumerable: true,\n\t\tget: () => queue[position][1]\n\t});\n\treturn routerHistory;\n}\n\n//#endregion\n//#region src/history/hash.ts\n/**\n* Creates a hash history. Useful for web applications with no host (e.g. `file://`) or when configuring a server to\n* handle any URL is not possible.\n*\n* @param base - optional base to provide. Defaults to `location.pathname + location.search` If there is a `` tag\n* in the `head`, its value will be ignored in favor of this parameter **but note it affects all the history.pushState()\n* calls**, meaning that if you use a `` tag, it's `href` value **has to match this parameter** (ignoring anything\n* after the `#`).\n*\n* @example\n* ```js\n* // at https://example.com/folder\n* createWebHashHistory() // gives a url of `https://example.com/folder#`\n* createWebHashHistory('/folder/') // gives a url of `https://example.com/folder/#`\n* // if the `#` is provided in the base, it won't be added by `createWebHashHistory`\n* createWebHashHistory('/folder/#/app/') // gives a url of `https://example.com/folder/#/app/`\n* // you should avoid doing this because it changes the original url and breaks copying urls\n* createWebHashHistory('/other-folder/') // gives a url of `https://example.com/other-folder/#`\n*\n* // at file:///usr/etc/folder/index.html\n* // for locations with no `host`, the base is ignored\n* createWebHashHistory('/iAmIgnored') // gives a url of `file:///usr/etc/folder/index.html#`\n* ```\n*/\nfunction createWebHashHistory(base) {\n\tbase = location.host ? base || location.pathname + location.search : \"\";\n\tif (!base.includes(\"#\")) base += \"#\";\n\tif (process.env.NODE_ENV !== \"production\" && !base.endsWith(\"#/\") && !base.endsWith(\"#\")) warn$1(`A hash base must end with a \"#\":\\n\"${base}\" should be \"${base.replace(/#.*$/, \"#\")}\".`);\n\treturn createWebHistory(base);\n}\n\n//#endregion\n//#region src/matcher/pathTokenizer.ts\nlet TokenType = /* @__PURE__ */ function(TokenType$1) {\n\tTokenType$1[TokenType$1[\"Static\"] = 0] = \"Static\";\n\tTokenType$1[TokenType$1[\"Param\"] = 1] = \"Param\";\n\tTokenType$1[TokenType$1[\"Group\"] = 2] = \"Group\";\n\treturn TokenType$1;\n}({});\nvar TokenizerState = /* @__PURE__ */ function(TokenizerState$1) {\n\tTokenizerState$1[TokenizerState$1[\"Static\"] = 0] = \"Static\";\n\tTokenizerState$1[TokenizerState$1[\"Param\"] = 1] = \"Param\";\n\tTokenizerState$1[TokenizerState$1[\"ParamRegExp\"] = 2] = \"ParamRegExp\";\n\tTokenizerState$1[TokenizerState$1[\"ParamRegExpEnd\"] = 3] = \"ParamRegExpEnd\";\n\tTokenizerState$1[TokenizerState$1[\"EscapeNext\"] = 4] = \"EscapeNext\";\n\treturn TokenizerState$1;\n}(TokenizerState || {});\nconst ROOT_TOKEN = {\n\ttype: TokenType.Static,\n\tvalue: \"\"\n};\nconst VALID_PARAM_RE = /[a-zA-Z0-9_]/;\nfunction tokenizePath(path) {\n\tif (!path) return [[]];\n\tif (path === \"/\") return [[ROOT_TOKEN]];\n\tif (!path.startsWith(\"/\")) throw new Error(process.env.NODE_ENV !== \"production\" ? `Route paths should start with a \"/\": \"${path}\" should be \"/${path}\".` : `Invalid path \"${path}\"`);\n\tfunction crash(message) {\n\t\tthrow new Error(`ERR (${state})/\"${buffer}\": ${message}`);\n\t}\n\tlet state = TokenizerState.Static;\n\tlet previousState = state;\n\tconst tokens = [];\n\tlet segment;\n\tfunction finalizeSegment() {\n\t\tif (segment) tokens.push(segment);\n\t\tsegment = [];\n\t}\n\tlet i = 0;\n\tlet char;\n\tlet buffer = \"\";\n\tlet customRe = \"\";\n\tfunction consumeBuffer() {\n\t\tif (!buffer) return;\n\t\tif (state === TokenizerState.Static) segment.push({\n\t\t\ttype: TokenType.Static,\n\t\t\tvalue: buffer\n\t\t});\n\t\telse if (state === TokenizerState.Param || state === TokenizerState.ParamRegExp || state === TokenizerState.ParamRegExpEnd) {\n\t\t\tif (segment.length > 1 && (char === \"*\" || char === \"+\")) crash(`A repeatable param (${buffer}) must be alone in its segment. eg: '/:ids+.`);\n\t\t\tsegment.push({\n\t\t\t\ttype: TokenType.Param,\n\t\t\t\tvalue: buffer,\n\t\t\t\tregexp: customRe,\n\t\t\t\trepeatable: char === \"*\" || char === \"+\",\n\t\t\t\toptional: char === \"*\" || char === \"?\"\n\t\t\t});\n\t\t} else crash(\"Invalid state to consume buffer\");\n\t\tbuffer = \"\";\n\t}\n\tfunction addCharToBuffer() {\n\t\tbuffer += char;\n\t}\n\twhile (i < path.length) {\n\t\tchar = path[i++];\n\t\tif (char === \"\\\\\" && state !== TokenizerState.ParamRegExp) {\n\t\t\tpreviousState = state;\n\t\t\tstate = TokenizerState.EscapeNext;\n\t\t\tcontinue;\n\t\t}\n\t\tswitch (state) {\n\t\t\tcase TokenizerState.Static:\n\t\t\t\tif (char === \"/\") {\n\t\t\t\t\tif (buffer) consumeBuffer();\n\t\t\t\t\tfinalizeSegment();\n\t\t\t\t} else if (char === \":\") {\n\t\t\t\t\tconsumeBuffer();\n\t\t\t\t\tstate = TokenizerState.Param;\n\t\t\t\t} else addCharToBuffer();\n\t\t\t\tbreak;\n\t\t\tcase TokenizerState.EscapeNext:\n\t\t\t\taddCharToBuffer();\n\t\t\t\tstate = previousState;\n\t\t\t\tbreak;\n\t\t\tcase TokenizerState.Param:\n\t\t\t\tif (char === \"(\") state = TokenizerState.ParamRegExp;\n\t\t\t\telse if (VALID_PARAM_RE.test(char)) addCharToBuffer();\n\t\t\t\telse {\n\t\t\t\t\tconsumeBuffer();\n\t\t\t\t\tstate = TokenizerState.Static;\n\t\t\t\t\tif (char !== \"*\" && char !== \"?\" && char !== \"+\") i--;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase TokenizerState.ParamRegExp:\n\t\t\t\tif (char === \")\") if (customRe[customRe.length - 1] == \"\\\\\") customRe = customRe.slice(0, -1) + char;\n\t\t\t\telse state = TokenizerState.ParamRegExpEnd;\n\t\t\t\telse customRe += char;\n\t\t\t\tbreak;\n\t\t\tcase TokenizerState.ParamRegExpEnd:\n\t\t\t\tconsumeBuffer();\n\t\t\t\tstate = TokenizerState.Static;\n\t\t\t\tif (char !== \"*\" && char !== \"?\" && char !== \"+\") i--;\n\t\t\t\tcustomRe = \"\";\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tcrash(\"Unknown state\");\n\t\t\t\tbreak;\n\t\t}\n\t}\n\tif (state === TokenizerState.ParamRegExp) crash(`Unfinished custom RegExp for param \"${buffer}\"`);\n\tconsumeBuffer();\n\tfinalizeSegment();\n\treturn tokens;\n}\n\n//#endregion\n//#region src/matcher/pathParserRanker.ts\nconst BASE_PARAM_PATTERN = \"[^/]+?\";\nconst BASE_PATH_PARSER_OPTIONS = {\n\tsensitive: false,\n\tstrict: false,\n\tstart: true,\n\tend: true\n};\nvar PathScore = /* @__PURE__ */ function(PathScore$1) {\n\tPathScore$1[PathScore$1[\"_multiplier\"] = 10] = \"_multiplier\";\n\tPathScore$1[PathScore$1[\"Root\"] = 90] = \"Root\";\n\tPathScore$1[PathScore$1[\"Segment\"] = 40] = \"Segment\";\n\tPathScore$1[PathScore$1[\"SubSegment\"] = 30] = \"SubSegment\";\n\tPathScore$1[PathScore$1[\"Static\"] = 40] = \"Static\";\n\tPathScore$1[PathScore$1[\"Dynamic\"] = 20] = \"Dynamic\";\n\tPathScore$1[PathScore$1[\"BonusCustomRegExp\"] = 10] = \"BonusCustomRegExp\";\n\tPathScore$1[PathScore$1[\"BonusWildcard\"] = -50] = \"BonusWildcard\";\n\tPathScore$1[PathScore$1[\"BonusRepeatable\"] = -20] = \"BonusRepeatable\";\n\tPathScore$1[PathScore$1[\"BonusOptional\"] = -8] = \"BonusOptional\";\n\tPathScore$1[PathScore$1[\"BonusStrict\"] = .7000000000000001] = \"BonusStrict\";\n\tPathScore$1[PathScore$1[\"BonusCaseSensitive\"] = .25] = \"BonusCaseSensitive\";\n\treturn PathScore$1;\n}(PathScore || {});\nconst REGEX_CHARS_RE = /[.+*?^${}()[\\]/\\\\]/g;\n/**\n* Creates a path parser from an array of Segments (a segment is an array of Tokens)\n*\n* @param segments - array of segments returned by tokenizePath\n* @param extraOptions - optional options for the regexp\n* @returns a PathParser\n*/\nfunction tokensToParser(segments, extraOptions) {\n\tconst options = assign({}, BASE_PATH_PARSER_OPTIONS, extraOptions);\n\tconst score = [];\n\tlet pattern = options.start ? \"^\" : \"\";\n\tconst keys = [];\n\tfor (const segment of segments) {\n\t\tconst segmentScores = segment.length ? [] : [PathScore.Root];\n\t\tif (options.strict && !segment.length) pattern += \"/\";\n\t\tfor (let tokenIndex = 0; tokenIndex < segment.length; tokenIndex++) {\n\t\t\tconst token = segment[tokenIndex];\n\t\t\tlet subSegmentScore = PathScore.Segment + (options.sensitive ? PathScore.BonusCaseSensitive : 0);\n\t\t\tif (token.type === TokenType.Static) {\n\t\t\t\tif (!tokenIndex) pattern += \"/\";\n\t\t\t\tpattern += token.value.replace(REGEX_CHARS_RE, \"\\\\$&\");\n\t\t\t\tsubSegmentScore += PathScore.Static;\n\t\t\t} else if (token.type === TokenType.Param) {\n\t\t\t\tconst { value, repeatable, optional, regexp } = token;\n\t\t\t\tkeys.push({\n\t\t\t\t\tname: value,\n\t\t\t\t\trepeatable,\n\t\t\t\t\toptional\n\t\t\t\t});\n\t\t\t\tconst re$1 = regexp ? regexp : BASE_PARAM_PATTERN;\n\t\t\t\tif (re$1 !== BASE_PARAM_PATTERN) {\n\t\t\t\t\tsubSegmentScore += PathScore.BonusCustomRegExp;\n\t\t\t\t\ttry {\n\t\t\t\t\t\t`${re$1}`;\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\tthrow new Error(`Invalid custom RegExp for param \"${value}\" (${re$1}): ` + err.message);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tlet subPattern = repeatable ? `((?:${re$1})(?:/(?:${re$1}))*)` : `(${re$1})`;\n\t\t\t\tif (!tokenIndex) subPattern = optional && segment.length < 2 ? `(?:/${subPattern})` : \"/\" + subPattern;\n\t\t\t\tif (optional) subPattern += \"?\";\n\t\t\t\tpattern += subPattern;\n\t\t\t\tsubSegmentScore += PathScore.Dynamic;\n\t\t\t\tif (optional) subSegmentScore += PathScore.BonusOptional;\n\t\t\t\tif (repeatable) subSegmentScore += PathScore.BonusRepeatable;\n\t\t\t\tif (re$1 === \".*\") subSegmentScore += PathScore.BonusWildcard;\n\t\t\t}\n\t\t\tsegmentScores.push(subSegmentScore);\n\t\t}\n\t\tscore.push(segmentScores);\n\t}\n\tif (options.strict && options.end) {\n\t\tconst i = score.length - 1;\n\t\tscore[i][score[i].length - 1] += PathScore.BonusStrict;\n\t}\n\tif (!options.strict) pattern += \"/?\";\n\tif (options.end) pattern += \"$\";\n\telse if (options.strict && !pattern.endsWith(\"/\")) pattern += \"(?:/|$)\";\n\tconst re = new RegExp(pattern, options.sensitive ? \"\" : \"i\");\n\tfunction parse(path) {\n\t\tconst match = path.match(re);\n\t\tconst params = {};\n\t\tif (!match) return null;\n\t\tfor (let i = 1; i < match.length; i++) {\n\t\t\tconst value = match[i] || \"\";\n\t\t\tconst key = keys[i - 1];\n\t\t\tparams[key.name] = value && key.repeatable ? value.split(\"/\") : value;\n\t\t}\n\t\treturn params;\n\t}\n\tfunction stringify(params) {\n\t\tlet path = \"\";\n\t\tlet avoidDuplicatedSlash = false;\n\t\tfor (const segment of segments) {\n\t\t\tif (!avoidDuplicatedSlash || !path.endsWith(\"/\")) path += \"/\";\n\t\t\tavoidDuplicatedSlash = false;\n\t\t\tfor (const token of segment) if (token.type === TokenType.Static) path += token.value;\n\t\t\telse if (token.type === TokenType.Param) {\n\t\t\t\tconst { value, repeatable, optional } = token;\n\t\t\t\tconst param = value in params ? params[value] : \"\";\n\t\t\t\tif (isArray(param) && !repeatable) throw new Error(`Provided param \"${value}\" is an array but it is not repeatable (* or + modifiers)`);\n\t\t\t\tconst text = isArray(param) ? param.join(\"/\") : param;\n\t\t\t\tif (!text) if (optional) {\n\t\t\t\t\tif (segment.length < 2) if (path.endsWith(\"/\")) path = path.slice(0, -1);\n\t\t\t\t\telse avoidDuplicatedSlash = true;\n\t\t\t\t} else throw new Error(`Missing required param \"${value}\"`);\n\t\t\t\tpath += text;\n\t\t\t}\n\t\t}\n\t\treturn path || \"/\";\n\t}\n\treturn {\n\t\tre,\n\t\tscore,\n\t\tkeys,\n\t\tparse,\n\t\tstringify\n\t};\n}\n/**\n* Compares an array of numbers as used in PathParser.score and returns a\n* number. This function can be used to `sort` an array\n*\n* @param a - first array of numbers\n* @param b - second array of numbers\n* @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\n* should be sorted first\n*/\nfunction compareScoreArray(a, b) {\n\tlet i = 0;\n\twhile (i < a.length && i < b.length) {\n\t\tconst diff = b[i] - a[i];\n\t\tif (diff) return diff;\n\t\ti++;\n\t}\n\tif (a.length < b.length) return a.length === 1 && a[0] === PathScore.Static + PathScore.Segment ? -1 : 1;\n\telse if (a.length > b.length) return b.length === 1 && b[0] === PathScore.Static + PathScore.Segment ? 1 : -1;\n\treturn 0;\n}\n/**\n* Compare function that can be used with `sort` to sort an array of PathParser\n*\n* @param a - first PathParser\n* @param b - second PathParser\n* @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\n*/\nfunction comparePathParserScore(a, b) {\n\tlet i = 0;\n\tconst aScore = a.score;\n\tconst bScore = b.score;\n\twhile (i < aScore.length && i < bScore.length) {\n\t\tconst comp = compareScoreArray(aScore[i], bScore[i]);\n\t\tif (comp) return comp;\n\t\ti++;\n\t}\n\tif (Math.abs(bScore.length - aScore.length) === 1) {\n\t\tif (isLastScoreNegative(aScore)) return 1;\n\t\tif (isLastScoreNegative(bScore)) return -1;\n\t}\n\treturn bScore.length - aScore.length;\n}\n/**\n* This allows detecting splats at the end of a path: /home/:id(.*)*\n*\n* @param score - score to check\n* @returns true if the last entry is negative\n*/\nfunction isLastScoreNegative(score) {\n\tconst last = score[score.length - 1];\n\treturn score.length > 0 && last[last.length - 1] < 0;\n}\nconst PATH_PARSER_OPTIONS_DEFAULTS = {\n\tstrict: false,\n\tend: true,\n\tsensitive: false\n};\n\n//#endregion\n//#region src/matcher/pathMatcher.ts\nfunction createRouteRecordMatcher(record, parent, options) {\n\tconst parser = tokensToParser(tokenizePath(record.path), options);\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\tconst existingKeys = /* @__PURE__ */ new Set();\n\t\tfor (const key of parser.keys) {\n\t\t\tif (existingKeys.has(key.name)) warn$1(`Found duplicated params with name \"${key.name}\" for path \"${record.path}\". Only the last one will be available on \"$route.params\".`);\n\t\t\texistingKeys.add(key.name);\n\t\t}\n\t}\n\tconst matcher = assign(parser, {\n\t\trecord,\n\t\tparent,\n\t\tchildren: [],\n\t\talias: []\n\t});\n\tif (parent) {\n\t\tif (!matcher.record.aliasOf === !parent.record.aliasOf) parent.children.push(matcher);\n\t}\n\treturn matcher;\n}\n\n//#endregion\n//#region src/matcher/index.ts\n/**\n* Creates a Router Matcher.\n*\n* @internal\n* @param routes - array of initial routes\n* @param globalOptions - global route options\n*/\nfunction createRouterMatcher(routes, globalOptions) {\n\tconst matchers = [];\n\tconst matcherMap = /* @__PURE__ */ new Map();\n\tglobalOptions = mergeOptions(PATH_PARSER_OPTIONS_DEFAULTS, globalOptions);\n\tfunction getRecordMatcher(name) {\n\t\treturn matcherMap.get(name);\n\t}\n\tfunction addRoute(record, parent, originalRecord) {\n\t\tconst isRootAdd = !originalRecord;\n\t\tconst mainNormalizedRecord = normalizeRouteRecord(record);\n\t\tif (process.env.NODE_ENV !== \"production\") checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent);\n\t\tmainNormalizedRecord.aliasOf = originalRecord && originalRecord.record;\n\t\tconst options = mergeOptions(globalOptions, record);\n\t\tconst normalizedRecords = [mainNormalizedRecord];\n\t\tif (\"alias\" in record) {\n\t\t\tconst aliases = typeof record.alias === \"string\" ? [record.alias] : record.alias;\n\t\t\tfor (const alias of aliases) normalizedRecords.push(normalizeRouteRecord(assign({}, mainNormalizedRecord, {\n\t\t\t\tcomponents: originalRecord ? originalRecord.record.components : mainNormalizedRecord.components,\n\t\t\t\tpath: alias,\n\t\t\t\taliasOf: originalRecord ? originalRecord.record : mainNormalizedRecord\n\t\t\t})));\n\t\t}\n\t\tlet matcher;\n\t\tlet originalMatcher;\n\t\tfor (const normalizedRecord of normalizedRecords) {\n\t\t\tconst { path } = normalizedRecord;\n\t\t\tif (parent && path[0] !== \"/\") {\n\t\t\t\tconst parentPath = parent.record.path;\n\t\t\t\tconst connectingSlash = parentPath[parentPath.length - 1] === \"/\" ? \"\" : \"/\";\n\t\t\t\tnormalizedRecord.path = parent.record.path + (path && connectingSlash + path);\n\t\t\t}\n\t\t\tif (process.env.NODE_ENV !== \"production\" && normalizedRecord.path === \"*\") throw new Error(\"Catch all routes (\\\"*\\\") must now be defined using a param with a custom regexp.\\nSee more at https://router.vuejs.org/guide/migration/#Removed-star-or-catch-all-routes.\");\n\t\t\tmatcher = createRouteRecordMatcher(normalizedRecord, parent, options);\n\t\t\tif (process.env.NODE_ENV !== \"production\" && parent && path[0] === \"/\") checkMissingParamsInAbsolutePath(matcher, parent);\n\t\t\tif (originalRecord) {\n\t\t\t\toriginalRecord.alias.push(matcher);\n\t\t\t\tif (process.env.NODE_ENV !== \"production\") checkSameParams(originalRecord, matcher);\n\t\t\t} else {\n\t\t\t\toriginalMatcher = originalMatcher || matcher;\n\t\t\t\tif (originalMatcher !== matcher) originalMatcher.alias.push(matcher);\n\t\t\t\tif (isRootAdd && record.name && !isAliasRecord(matcher)) {\n\t\t\t\t\tif (process.env.NODE_ENV !== \"production\") checkSameNameAsAncestor(record, parent);\n\t\t\t\t\tremoveRoute(record.name);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (isMatchable(matcher)) insertMatcher(matcher);\n\t\t\tif (mainNormalizedRecord.children) {\n\t\t\t\tconst children = mainNormalizedRecord.children;\n\t\t\t\tfor (let i = 0; i < children.length; i++) addRoute(children[i], matcher, originalRecord && originalRecord.children[i]);\n\t\t\t}\n\t\t\toriginalRecord = originalRecord || matcher;\n\t\t}\n\t\treturn originalMatcher ? () => {\n\t\t\tremoveRoute(originalMatcher);\n\t\t} : noop;\n\t}\n\tfunction removeRoute(matcherRef) {\n\t\tif (isRouteName(matcherRef)) {\n\t\t\tconst matcher = matcherMap.get(matcherRef);\n\t\t\tif (matcher) {\n\t\t\t\tmatcherMap.delete(matcherRef);\n\t\t\t\tmatchers.splice(matchers.indexOf(matcher), 1);\n\t\t\t\tmatcher.children.forEach(removeRoute);\n\t\t\t\tmatcher.alias.forEach(removeRoute);\n\t\t\t}\n\t\t} else {\n\t\t\tconst index = matchers.indexOf(matcherRef);\n\t\t\tif (index > -1) {\n\t\t\t\tmatchers.splice(index, 1);\n\t\t\t\tif (matcherRef.record.name) matcherMap.delete(matcherRef.record.name);\n\t\t\t\tmatcherRef.children.forEach(removeRoute);\n\t\t\t\tmatcherRef.alias.forEach(removeRoute);\n\t\t\t}\n\t\t}\n\t}\n\tfunction getRoutes() {\n\t\treturn matchers;\n\t}\n\tfunction insertMatcher(matcher) {\n\t\tconst index = findInsertionIndex(matcher, matchers);\n\t\tmatchers.splice(index, 0, matcher);\n\t\tif (matcher.record.name && !isAliasRecord(matcher)) matcherMap.set(matcher.record.name, matcher);\n\t}\n\tfunction resolve(location$1, currentLocation) {\n\t\tlet matcher;\n\t\tlet params = {};\n\t\tlet path;\n\t\tlet name;\n\t\tif (\"name\" in location$1 && location$1.name) {\n\t\t\tmatcher = matcherMap.get(location$1.name);\n\t\t\tif (!matcher) throw createRouterError(ErrorTypes.MATCHER_NOT_FOUND, { location: location$1 });\n\t\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\t\tconst invalidParams = Object.keys(location$1.params || {}).filter((paramName) => !matcher.keys.find((k) => k.name === paramName));\n\t\t\t\tif (invalidParams.length) warn$1(`Discarded invalid param(s) \"${invalidParams.join(\"\\\", \\\"\")}\" when navigating. See https://github.com/vuejs/router/blob/main/packages/router/CHANGELOG.md#414-2022-08-22 for more details.`);\n\t\t\t}\n\t\t\tname = matcher.record.name;\n\t\t\tparams = assign(pickParams(currentLocation.params, matcher.keys.filter((k) => !k.optional).concat(matcher.parent ? matcher.parent.keys.filter((k) => k.optional) : []).map((k) => k.name)), location$1.params && pickParams(location$1.params, matcher.keys.map((k) => k.name)));\n\t\t\tpath = matcher.stringify(params);\n\t\t} else if (location$1.path != null) {\n\t\t\tpath = location$1.path;\n\t\t\tif (process.env.NODE_ENV !== \"production\" && !path.startsWith(\"/\")) warn$1(`The Matcher cannot resolve relative paths but received \"${path}\". Unless you directly called \\`matcher.resolve(\"${path}\")\\`, this is probably a bug in vue-router. Please open an issue at https://github.com/vuejs/router/issues/new/choose.`);\n\t\t\tmatcher = matchers.find((m) => m.re.test(path));\n\t\t\tif (matcher) {\n\t\t\t\tparams = matcher.parse(path);\n\t\t\t\tname = matcher.record.name;\n\t\t\t}\n\t\t} else {\n\t\t\tmatcher = currentLocation.name ? matcherMap.get(currentLocation.name) : matchers.find((m) => m.re.test(currentLocation.path));\n\t\t\tif (!matcher) throw createRouterError(ErrorTypes.MATCHER_NOT_FOUND, {\n\t\t\t\tlocation: location$1,\n\t\t\t\tcurrentLocation\n\t\t\t});\n\t\t\tname = matcher.record.name;\n\t\t\tparams = assign({}, currentLocation.params, location$1.params);\n\t\t\tpath = matcher.stringify(params);\n\t\t}\n\t\tconst matched = [];\n\t\tlet parentMatcher = matcher;\n\t\twhile (parentMatcher) {\n\t\t\tmatched.unshift(parentMatcher.record);\n\t\t\tparentMatcher = parentMatcher.parent;\n\t\t}\n\t\treturn {\n\t\t\tname,\n\t\t\tpath,\n\t\t\tparams,\n\t\t\tmatched,\n\t\t\tmeta: mergeMetaFields(matched)\n\t\t};\n\t}\n\troutes.forEach((route) => addRoute(route));\n\tfunction clearRoutes() {\n\t\tmatchers.length = 0;\n\t\tmatcherMap.clear();\n\t}\n\treturn {\n\t\taddRoute,\n\t\tresolve,\n\t\tremoveRoute,\n\t\tclearRoutes,\n\t\tgetRoutes,\n\t\tgetRecordMatcher\n\t};\n}\n/**\n* Picks an object param to contain only specified keys.\n*\n* @param params - params object to pick from\n* @param keys - keys to pick\n*/\nfunction pickParams(params, keys) {\n\tconst newParams = {};\n\tfor (const key of keys) if (key in params) newParams[key] = params[key];\n\treturn newParams;\n}\n/**\n* Normalizes a RouteRecordRaw. Creates a copy\n*\n* @param record\n* @returns the normalized version\n*/\nfunction normalizeRouteRecord(record) {\n\tconst normalized = {\n\t\tpath: record.path,\n\t\tredirect: record.redirect,\n\t\tname: record.name,\n\t\tmeta: record.meta || {},\n\t\taliasOf: record.aliasOf,\n\t\tbeforeEnter: record.beforeEnter,\n\t\tprops: normalizeRecordProps(record),\n\t\tchildren: record.children || [],\n\t\tinstances: {},\n\t\tleaveGuards: /* @__PURE__ */ new Set(),\n\t\tupdateGuards: /* @__PURE__ */ new Set(),\n\t\tenterCallbacks: {},\n\t\tcomponents: \"components\" in record ? record.components || null : record.component && { default: record.component }\n\t};\n\tObject.defineProperty(normalized, \"mods\", { value: {} });\n\treturn normalized;\n}\n/**\n* Normalize the optional `props` in a record to always be an object similar to\n* components. Also accept a boolean for components.\n* @param record\n*/\nfunction normalizeRecordProps(record) {\n\tconst propsObject = {};\n\tconst props = record.props || false;\n\tif (\"component\" in record) propsObject.default = props;\n\telse for (const name in record.components) propsObject[name] = typeof props === \"object\" ? props[name] : props;\n\treturn propsObject;\n}\n/**\n* Checks if a record or any of its parent is an alias\n* @param record\n*/\nfunction isAliasRecord(record) {\n\twhile (record) {\n\t\tif (record.record.aliasOf) return true;\n\t\trecord = record.parent;\n\t}\n\treturn false;\n}\n/**\n* Merge meta fields of an array of records\n*\n* @param matched - array of matched records\n*/\nfunction mergeMetaFields(matched) {\n\treturn matched.reduce((meta, record) => assign(meta, record.meta), {});\n}\nfunction isSameParam(a, b) {\n\treturn a.name === b.name && a.optional === b.optional && a.repeatable === b.repeatable;\n}\n/**\n* Check if a path and its alias have the same required params\n*\n* @param a - original record\n* @param b - alias record\n*/\nfunction checkSameParams(a, b) {\n\tfor (const key of a.keys) if (!key.optional && !b.keys.find(isSameParam.bind(null, key))) return warn$1(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" must have the exact same param named \"${key.name}\"`);\n\tfor (const key of b.keys) if (!key.optional && !a.keys.find(isSameParam.bind(null, key))) return warn$1(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" must have the exact same param named \"${key.name}\"`);\n}\n/**\n* A route with a name and a child with an empty path without a name should warn when adding the route\n*\n* @param mainNormalizedRecord - RouteRecordNormalized\n* @param parent - RouteRecordMatcher\n*/\nfunction checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent) {\n\tif (parent && parent.record.name && !mainNormalizedRecord.name && !mainNormalizedRecord.path) warn$1(`The route named \"${String(parent.record.name)}\" has a child without a name and an empty path. Using that name won't render the empty path child so you probably want to move the name to the child instead. If this is intentional, add a name to the child route to remove the warning.`);\n}\nfunction checkSameNameAsAncestor(record, parent) {\n\tfor (let ancestor = parent; ancestor; ancestor = ancestor.parent) if (ancestor.record.name === record.name) throw new Error(`A route named \"${String(record.name)}\" has been added as a ${parent === ancestor ? \"child\" : \"descendant\"} of a route with the same name. Route names must be unique and a nested route cannot use the same name as an ancestor.`);\n}\nfunction checkMissingParamsInAbsolutePath(record, parent) {\n\tfor (const key of parent.keys) if (!record.keys.find(isSameParam.bind(null, key))) return warn$1(`Absolute path \"${record.record.path}\" must have the exact same param named \"${key.name}\" as its parent \"${parent.record.path}\".`);\n}\n/**\n* Performs a binary search to find the correct insertion index for a new matcher.\n*\n* Matchers are primarily sorted by their score. If scores are tied then we also consider parent/child relationships,\n* with descendants coming before ancestors. If there's still a tie, new routes are inserted after existing routes.\n*\n* @param matcher - new matcher to be inserted\n* @param matchers - existing matchers\n*/\nfunction findInsertionIndex(matcher, matchers) {\n\tlet lower = 0;\n\tlet upper = matchers.length;\n\twhile (lower !== upper) {\n\t\tconst mid = lower + upper >> 1;\n\t\tif (comparePathParserScore(matcher, matchers[mid]) < 0) upper = mid;\n\t\telse lower = mid + 1;\n\t}\n\tconst insertionAncestor = getInsertionAncestor(matcher);\n\tif (insertionAncestor) {\n\t\tupper = matchers.lastIndexOf(insertionAncestor, upper - 1);\n\t\tif (process.env.NODE_ENV !== \"production\" && upper < 0) warn$1(`Finding ancestor route \"${insertionAncestor.record.path}\" failed for \"${matcher.record.path}\"`);\n\t}\n\treturn upper;\n}\nfunction getInsertionAncestor(matcher) {\n\tlet ancestor = matcher;\n\twhile (ancestor = ancestor.parent) if (isMatchable(ancestor) && comparePathParserScore(matcher, ancestor) === 0) return ancestor;\n}\n/**\n* Checks if a matcher can be reachable. This means if it's possible to reach it as a route. For example, routes without\n* a component, or name, or redirect, are just used to group other routes.\n* @param matcher\n* @param matcher.record record of the matcher\n* @returns\n*/\nfunction isMatchable({ record }) {\n\treturn !!(record.name || record.components && Object.keys(record.components).length || record.redirect);\n}\n\n//#endregion\n//#region src/RouterLink.ts\n/**\n* Returns the internal behavior of a {@link RouterLink} without the rendering part.\n*\n* @param props - a `to` location and an optional `replace` flag\n*/\nfunction useLink(props) {\n\tconst router = inject(routerKey);\n\tconst currentRoute = inject(routeLocationKey);\n\tlet hasPrevious = false;\n\tlet previousTo = null;\n\tconst route = computed(() => {\n\t\tconst to = unref(props.to);\n\t\tif (process.env.NODE_ENV !== \"production\" && (!hasPrevious || to !== previousTo)) {\n\t\t\tif (!isRouteLocation(to)) if (hasPrevious) warn$1(`Invalid value for prop \"to\" in useLink()\\n- to:`, to, `\\n- previous to:`, previousTo, `\\n- props:`, props);\n\t\t\telse warn$1(`Invalid value for prop \"to\" in useLink()\\n- to:`, to, `\\n- props:`, props);\n\t\t\tpreviousTo = to;\n\t\t\thasPrevious = true;\n\t\t}\n\t\treturn router.resolve(to);\n\t});\n\tconst activeRecordIndex = computed(() => {\n\t\tconst { matched } = route.value;\n\t\tconst { length } = matched;\n\t\tconst routeMatched = matched[length - 1];\n\t\tconst currentMatched = currentRoute.matched;\n\t\tif (!routeMatched || !currentMatched.length) return -1;\n\t\tconst index = currentMatched.findIndex(isSameRouteRecord.bind(null, routeMatched));\n\t\tif (index > -1) return index;\n\t\tconst parentRecordPath = getOriginalPath(matched[length - 2]);\n\t\treturn length > 1 && getOriginalPath(routeMatched) === parentRecordPath && currentMatched[currentMatched.length - 1].path !== parentRecordPath ? currentMatched.findIndex(isSameRouteRecord.bind(null, matched[length - 2])) : index;\n\t});\n\tconst isActive = computed(() => activeRecordIndex.value > -1 && includesParams(currentRoute.params, route.value.params));\n\tconst isExactActive = computed(() => activeRecordIndex.value > -1 && activeRecordIndex.value === currentRoute.matched.length - 1 && isSameRouteLocationParams(currentRoute.params, route.value.params));\n\tfunction navigate(e = {}) {\n\t\tif (guardEvent(e)) {\n\t\t\tconst p = router[unref(props.replace) ? \"replace\" : \"push\"](unref(props.to)).catch(noop);\n\t\t\tif (props.viewTransition && typeof document !== \"undefined\" && \"startViewTransition\" in document) document.startViewTransition(() => p);\n\t\t\treturn p;\n\t\t}\n\t\treturn Promise.resolve();\n\t}\n\tif ((process.env.NODE_ENV !== \"production\" || __VUE_PROD_DEVTOOLS__) && isBrowser) {\n\t\tconst instance = getCurrentInstance();\n\t\tif (instance) {\n\t\t\tconst linkContextDevtools = {\n\t\t\t\troute: route.value,\n\t\t\t\tisActive: isActive.value,\n\t\t\t\tisExactActive: isExactActive.value,\n\t\t\t\terror: null\n\t\t\t};\n\t\t\tinstance.__vrl_devtools = instance.__vrl_devtools || [];\n\t\t\tinstance.__vrl_devtools.push(linkContextDevtools);\n\t\t\twatchEffect(() => {\n\t\t\t\tlinkContextDevtools.route = route.value;\n\t\t\t\tlinkContextDevtools.isActive = isActive.value;\n\t\t\t\tlinkContextDevtools.isExactActive = isExactActive.value;\n\t\t\t\tlinkContextDevtools.error = isRouteLocation(unref(props.to)) ? null : \"Invalid \\\"to\\\" value\";\n\t\t\t}, { flush: \"post\" });\n\t\t}\n\t}\n\t/**\n\t* NOTE: update {@link _RouterLinkI}'s `$slots` type when updating this\n\t*/\n\treturn {\n\t\troute,\n\t\thref: computed(() => route.value.href),\n\t\tisActive,\n\t\tisExactActive,\n\t\tnavigate\n\t};\n}\nfunction preferSingleVNode(vnodes) {\n\treturn vnodes.length === 1 ? vnodes[0] : vnodes;\n}\nconst RouterLinkImpl = /* @__PURE__ */ defineComponent({\n\tname: \"RouterLink\",\n\tcompatConfig: { MODE: 3 },\n\tprops: {\n\t\tto: {\n\t\t\ttype: [String, Object],\n\t\t\trequired: true\n\t\t},\n\t\treplace: Boolean,\n\t\tactiveClass: String,\n\t\texactActiveClass: String,\n\t\tcustom: Boolean,\n\t\tariaCurrentValue: {\n\t\t\ttype: String,\n\t\t\tdefault: \"page\"\n\t\t},\n\t\tviewTransition: Boolean\n\t},\n\tuseLink,\n\tsetup(props, { slots }) {\n\t\tconst link = reactive(useLink(props));\n\t\tconst { options } = inject(routerKey);\n\t\tconst elClass = computed(() => ({\n\t\t\t[getLinkClass(props.activeClass, options.linkActiveClass, \"router-link-active\")]: link.isActive,\n\t\t\t[getLinkClass(props.exactActiveClass, options.linkExactActiveClass, \"router-link-exact-active\")]: link.isExactActive\n\t\t}));\n\t\treturn () => {\n\t\t\tconst children = slots.default && preferSingleVNode(slots.default(link));\n\t\t\treturn props.custom ? children : h(\"a\", {\n\t\t\t\t\"aria-current\": link.isExactActive ? props.ariaCurrentValue : null,\n\t\t\t\thref: link.href,\n\t\t\t\tonClick: link.navigate,\n\t\t\t\tclass: elClass.value\n\t\t\t}, children);\n\t\t};\n\t}\n});\n/**\n* Component to render a link that triggers a navigation on click.\n*/\nconst RouterLink = RouterLinkImpl;\nfunction guardEvent(e) {\n\tif (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) return;\n\tif (e.defaultPrevented) return;\n\tif (e.button !== void 0 && e.button !== 0) return;\n\tif (e.currentTarget && e.currentTarget.getAttribute) {\n\t\tconst target = e.currentTarget.getAttribute(\"target\");\n\t\tif (/\\b_blank\\b/i.test(target)) return;\n\t}\n\tif (e.preventDefault) e.preventDefault();\n\treturn true;\n}\nfunction includesParams(outer, inner) {\n\tfor (const key in inner) {\n\t\tconst innerValue = inner[key];\n\t\tconst outerValue = outer[key];\n\t\tif (typeof innerValue === \"string\") {\n\t\t\tif (innerValue !== outerValue) return false;\n\t\t} else if (!isArray(outerValue) || outerValue.length !== innerValue.length || innerValue.some((value, i) => value !== outerValue[i])) return false;\n\t}\n\treturn true;\n}\n/**\n* Get the original path value of a record by following its aliasOf\n* @param record\n*/\nfunction getOriginalPath(record) {\n\treturn record ? record.aliasOf ? record.aliasOf.path : record.path : \"\";\n}\n/**\n* Utility class to get the active class based on defaults.\n* @param propClass\n* @param globalClass\n* @param defaultClass\n*/\nconst getLinkClass = (propClass, globalClass, defaultClass) => propClass != null ? propClass : globalClass != null ? globalClass : defaultClass;\n\n//#endregion\n//#region src/RouterView.ts\nconst RouterViewImpl = /* @__PURE__ */ defineComponent({\n\tname: \"RouterView\",\n\tinheritAttrs: false,\n\tprops: {\n\t\tname: {\n\t\t\ttype: String,\n\t\t\tdefault: \"default\"\n\t\t},\n\t\troute: Object\n\t},\n\tcompatConfig: { MODE: 3 },\n\tsetup(props, { attrs, slots }) {\n\t\tprocess.env.NODE_ENV !== \"production\" && warnDeprecatedUsage();\n\t\tconst injectedRoute = inject(routerViewLocationKey);\n\t\tconst routeToDisplay = computed(() => props.route || injectedRoute.value);\n\t\tconst injectedDepth = inject(viewDepthKey, 0);\n\t\tconst depth = computed(() => {\n\t\t\tlet initialDepth = unref(injectedDepth);\n\t\t\tconst { matched } = routeToDisplay.value;\n\t\t\tlet matchedRoute;\n\t\t\twhile ((matchedRoute = matched[initialDepth]) && !matchedRoute.components) initialDepth++;\n\t\t\treturn initialDepth;\n\t\t});\n\t\tconst matchedRouteRef = computed(() => routeToDisplay.value.matched[depth.value]);\n\t\tprovide(viewDepthKey, computed(() => depth.value + 1));\n\t\tprovide(matchedRouteKey, matchedRouteRef);\n\t\tprovide(routerViewLocationKey, routeToDisplay);\n\t\tconst viewRef = ref();\n\t\twatch(() => [\n\t\t\tviewRef.value,\n\t\t\tmatchedRouteRef.value,\n\t\t\tprops.name\n\t\t], ([instance, to, name], [oldInstance, from, oldName]) => {\n\t\t\tif (to) {\n\t\t\t\tto.instances[name] = instance;\n\t\t\t\tif (from && from !== to && instance && instance === oldInstance) {\n\t\t\t\t\tif (!to.leaveGuards.size) to.leaveGuards = from.leaveGuards;\n\t\t\t\t\tif (!to.updateGuards.size) to.updateGuards = from.updateGuards;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (instance && to && (!from || !isSameRouteRecord(to, from) || !oldInstance)) (to.enterCallbacks[name] || []).forEach((callback) => callback(instance));\n\t\t}, { flush: \"post\" });\n\t\treturn () => {\n\t\t\tconst route = routeToDisplay.value;\n\t\t\tconst currentName = props.name;\n\t\t\tconst matchedRoute = matchedRouteRef.value;\n\t\t\tconst ViewComponent = matchedRoute && matchedRoute.components[currentName];\n\t\t\tif (!ViewComponent) return normalizeSlot(slots.default, {\n\t\t\t\tComponent: ViewComponent,\n\t\t\t\troute\n\t\t\t});\n\t\t\tconst routePropsOption = matchedRoute.props[currentName];\n\t\t\tconst routeProps = routePropsOption ? routePropsOption === true ? route.params : typeof routePropsOption === \"function\" ? routePropsOption(route) : routePropsOption : null;\n\t\t\tconst onVnodeUnmounted = (vnode) => {\n\t\t\t\tif (vnode.component.isUnmounted) matchedRoute.instances[currentName] = null;\n\t\t\t};\n\t\t\tconst component = h(ViewComponent, assign({}, routeProps, attrs, {\n\t\t\t\tonVnodeUnmounted,\n\t\t\t\tref: viewRef\n\t\t\t}));\n\t\t\tif ((process.env.NODE_ENV !== \"production\" || __VUE_PROD_DEVTOOLS__) && isBrowser && component.ref) {\n\t\t\t\tconst info = {\n\t\t\t\t\tdepth: depth.value,\n\t\t\t\t\tname: matchedRoute.name,\n\t\t\t\t\tpath: matchedRoute.path,\n\t\t\t\t\tmeta: matchedRoute.meta\n\t\t\t\t};\n\t\t\t\t(isArray(component.ref) ? component.ref.map((r) => r.i) : [component.ref.i]).forEach((instance) => {\n\t\t\t\t\tinstance.__vrv_devtools = info;\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn normalizeSlot(slots.default, {\n\t\t\t\tComponent: component,\n\t\t\t\troute\n\t\t\t}) || component;\n\t\t};\n\t}\n});\nfunction normalizeSlot(slot, data) {\n\tif (!slot) return null;\n\tconst slotContent = slot(data);\n\treturn slotContent.length === 1 ? slotContent[0] : slotContent;\n}\n/**\n* Component to display the current route the user is at.\n*/\nconst RouterView = RouterViewImpl;\nfunction warnDeprecatedUsage() {\n\tconst instance = getCurrentInstance();\n\tconst parentName = instance.parent && instance.parent.type.name;\n\tconst parentSubTreeType = instance.parent && instance.parent.subTree && instance.parent.subTree.type;\n\tif (parentName && (parentName === \"KeepAlive\" || parentName.includes(\"Transition\")) && typeof parentSubTreeType === \"object\" && parentSubTreeType.name === \"RouterView\") {\n\t\tconst comp = parentName === \"KeepAlive\" ? \"keep-alive\" : \"transition\";\n\t\twarn$1(` can no longer be used directly inside or .\nUse slot props instead:\n\n\n <${comp}>\\n \\n \\n`);\n\t}\n}\n\n//#endregion\n//#region src/router.ts\n/**\n* Creates a Router instance that can be used by a Vue app.\n*\n* @param options - {@link RouterOptions}\n*/\nfunction createRouter(options) {\n\tconst matcher = createRouterMatcher(options.routes, options);\n\tconst parseQuery$1 = options.parseQuery || parseQuery;\n\tconst stringifyQuery$1 = options.stringifyQuery || stringifyQuery;\n\tconst routerHistory = options.history;\n\tif (process.env.NODE_ENV !== \"production\" && !routerHistory) throw new Error(\"Provide the \\\"history\\\" option when calling \\\"createRouter()\\\": https://router.vuejs.org/api/interfaces/RouterOptions.html#history\");\n\tconst beforeGuards = useCallbacks();\n\tconst beforeResolveGuards = useCallbacks();\n\tconst afterGuards = useCallbacks();\n\tconst currentRoute = shallowRef(START_LOCATION_NORMALIZED);\n\tlet pendingLocation = START_LOCATION_NORMALIZED;\n\tif (isBrowser && options.scrollBehavior && \"scrollRestoration\" in history) history.scrollRestoration = \"manual\";\n\tconst normalizeParams = applyToParams.bind(null, (paramValue) => \"\" + paramValue);\n\tconst encodeParams = applyToParams.bind(null, encodeParam);\n\tconst decodeParams = applyToParams.bind(null, decode);\n\tfunction addRoute(parentOrRoute, route) {\n\t\tlet parent;\n\t\tlet record;\n\t\tif (isRouteName(parentOrRoute)) {\n\t\t\tparent = matcher.getRecordMatcher(parentOrRoute);\n\t\t\tif (process.env.NODE_ENV !== \"production\" && !parent) warn$1(`Parent route \"${String(parentOrRoute)}\" not found when adding child route`, route);\n\t\t\trecord = route;\n\t\t} else record = parentOrRoute;\n\t\treturn matcher.addRoute(record, parent);\n\t}\n\tfunction removeRoute(name) {\n\t\tconst recordMatcher = matcher.getRecordMatcher(name);\n\t\tif (recordMatcher) matcher.removeRoute(recordMatcher);\n\t\telse if (process.env.NODE_ENV !== \"production\") warn$1(`Cannot remove non-existent route \"${String(name)}\"`);\n\t}\n\tfunction getRoutes() {\n\t\treturn matcher.getRoutes().map((routeMatcher) => routeMatcher.record);\n\t}\n\tfunction hasRoute(name) {\n\t\treturn !!matcher.getRecordMatcher(name);\n\t}\n\tfunction resolve(rawLocation, currentLocation) {\n\t\tcurrentLocation = assign({}, currentLocation || currentRoute.value);\n\t\tif (typeof rawLocation === \"string\") {\n\t\t\tconst locationNormalized = parseURL(parseQuery$1, rawLocation, currentLocation.path);\n\t\t\tconst matchedRoute$1 = matcher.resolve({ path: locationNormalized.path }, currentLocation);\n\t\t\tconst href$1 = routerHistory.createHref(locationNormalized.fullPath);\n\t\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\t\tif (href$1.startsWith(\"//\")) warn$1(`Location \"${rawLocation}\" resolved to \"${href$1}\". A resolved location cannot start with multiple slashes.`);\n\t\t\t\telse if (!matchedRoute$1.matched.length) warn$1(`No match found for location with path \"${rawLocation}\"`);\n\t\t\t}\n\t\t\treturn assign(locationNormalized, matchedRoute$1, {\n\t\t\t\tparams: decodeParams(matchedRoute$1.params),\n\t\t\t\thash: decode(locationNormalized.hash),\n\t\t\t\tredirectedFrom: void 0,\n\t\t\t\thref: href$1\n\t\t\t});\n\t\t}\n\t\tif (process.env.NODE_ENV !== \"production\" && !isRouteLocation(rawLocation)) {\n\t\t\twarn$1(`router.resolve() was passed an invalid location. This will fail in production.\\n- Location:`, rawLocation);\n\t\t\treturn resolve({});\n\t\t}\n\t\tlet matcherLocation;\n\t\tif (rawLocation.path != null) {\n\t\t\tif (process.env.NODE_ENV !== \"production\" && \"params\" in rawLocation && !(\"name\" in rawLocation) && Object.keys(rawLocation.params).length) warn$1(`Path \"${rawLocation.path}\" was passed with params but they will be ignored. Use a named route alongside params instead.`);\n\t\t\tmatcherLocation = assign({}, rawLocation, { path: parseURL(parseQuery$1, rawLocation.path, currentLocation.path).path });\n\t\t} else {\n\t\t\tconst targetParams = assign({}, rawLocation.params);\n\t\t\tfor (const key in targetParams) if (targetParams[key] == null) delete targetParams[key];\n\t\t\tmatcherLocation = assign({}, rawLocation, { params: encodeParams(targetParams) });\n\t\t\tcurrentLocation.params = encodeParams(currentLocation.params);\n\t\t}\n\t\tconst matchedRoute = matcher.resolve(matcherLocation, currentLocation);\n\t\tconst hash = rawLocation.hash || \"\";\n\t\tif (process.env.NODE_ENV !== \"production\" && hash && !hash.startsWith(\"#\")) warn$1(`A \\`hash\\` should always start with the character \"#\". Replace \"${hash}\" with \"#${hash}\".`);\n\t\tmatchedRoute.params = normalizeParams(decodeParams(matchedRoute.params));\n\t\tconst fullPath = stringifyURL(stringifyQuery$1, assign({}, rawLocation, {\n\t\t\thash: encodeHash(hash),\n\t\t\tpath: matchedRoute.path\n\t\t}));\n\t\tconst href = routerHistory.createHref(fullPath);\n\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\tif (href.startsWith(\"//\")) warn$1(`Location \"${rawLocation}\" resolved to \"${href}\". A resolved location cannot start with multiple slashes.`);\n\t\t\telse if (!matchedRoute.matched.length) warn$1(`No match found for location with path \"${rawLocation.path != null ? rawLocation.path : rawLocation}\"`);\n\t\t}\n\t\treturn assign({\n\t\t\tfullPath,\n\t\t\thash,\n\t\t\tquery: stringifyQuery$1 === stringifyQuery ? normalizeQuery(rawLocation.query) : rawLocation.query || {}\n\t\t}, matchedRoute, {\n\t\t\tredirectedFrom: void 0,\n\t\t\thref\n\t\t});\n\t}\n\tfunction locationAsObject(to) {\n\t\treturn typeof to === \"string\" ? parseURL(parseQuery$1, to, currentRoute.value.path) : assign({}, to);\n\t}\n\tfunction checkCanceledNavigation(to, from) {\n\t\tif (pendingLocation !== to) return createRouterError(ErrorTypes.NAVIGATION_CANCELLED, {\n\t\t\tfrom,\n\t\t\tto\n\t\t});\n\t}\n\tfunction push(to) {\n\t\treturn pushWithRedirect(to);\n\t}\n\tfunction replace(to) {\n\t\treturn push(assign(locationAsObject(to), { replace: true }));\n\t}\n\tfunction handleRedirectRecord(to, from) {\n\t\tconst lastMatched = to.matched[to.matched.length - 1];\n\t\tif (lastMatched && lastMatched.redirect) {\n\t\t\tconst { redirect } = lastMatched;\n\t\t\tlet newTargetLocation = typeof redirect === \"function\" ? redirect(to, from) : redirect;\n\t\t\tif (typeof newTargetLocation === \"string\") {\n\t\t\t\tnewTargetLocation = newTargetLocation.includes(\"?\") || newTargetLocation.includes(\"#\") ? newTargetLocation = locationAsObject(newTargetLocation) : { path: newTargetLocation };\n\t\t\t\tnewTargetLocation.params = {};\n\t\t\t}\n\t\t\tif (process.env.NODE_ENV !== \"production\" && newTargetLocation.path == null && !(\"name\" in newTargetLocation)) {\n\t\t\t\twarn$1(`Invalid redirect found:\\n${JSON.stringify(newTargetLocation, null, 2)}\\n when navigating to \"${to.fullPath}\". A redirect must contain a name or path. This will break in production.`);\n\t\t\t\tthrow new Error(\"Invalid redirect\");\n\t\t\t}\n\t\t\treturn assign({\n\t\t\t\tquery: to.query,\n\t\t\t\thash: to.hash,\n\t\t\t\tparams: newTargetLocation.path != null ? {} : to.params\n\t\t\t}, newTargetLocation);\n\t\t}\n\t}\n\tfunction pushWithRedirect(to, redirectedFrom) {\n\t\tconst targetLocation = pendingLocation = resolve(to);\n\t\tconst from = currentRoute.value;\n\t\tconst data = to.state;\n\t\tconst force = to.force;\n\t\tconst replace$1 = to.replace === true;\n\t\tconst shouldRedirect = handleRedirectRecord(targetLocation, from);\n\t\tif (shouldRedirect) return pushWithRedirect(assign(locationAsObject(shouldRedirect), {\n\t\t\tstate: typeof shouldRedirect === \"object\" ? assign({}, data, shouldRedirect.state) : data,\n\t\t\tforce,\n\t\t\treplace: replace$1\n\t\t}), redirectedFrom || targetLocation);\n\t\tconst toLocation = targetLocation;\n\t\ttoLocation.redirectedFrom = redirectedFrom;\n\t\tlet failure;\n\t\tif (!force && isSameRouteLocation(stringifyQuery$1, from, targetLocation)) {\n\t\t\tfailure = createRouterError(ErrorTypes.NAVIGATION_DUPLICATED, {\n\t\t\t\tto: toLocation,\n\t\t\t\tfrom\n\t\t\t});\n\t\t\thandleScroll(from, from, true, false);\n\t\t}\n\t\treturn (failure ? Promise.resolve(failure) : navigate(toLocation, from)).catch((error) => isNavigationFailure(error) ? isNavigationFailure(error, ErrorTypes.NAVIGATION_GUARD_REDIRECT) ? error : markAsReady(error) : triggerError(error, toLocation, from)).then((failure$1) => {\n\t\t\tif (failure$1) {\n\t\t\t\tif (isNavigationFailure(failure$1, ErrorTypes.NAVIGATION_GUARD_REDIRECT)) {\n\t\t\t\t\tif (process.env.NODE_ENV !== \"production\" && isSameRouteLocation(stringifyQuery$1, resolve(failure$1.to), toLocation) && redirectedFrom && (redirectedFrom._count = redirectedFrom._count ? redirectedFrom._count + 1 : 1) > 30) {\n\t\t\t\t\t\twarn$1(`Detected a possibly infinite redirection in a navigation guard when going from \"${from.fullPath}\" to \"${toLocation.fullPath}\". Aborting to avoid a Stack Overflow.\\n Are you always returning a new location within a navigation guard? That would lead to this error. Only return when redirecting or aborting, that should fix this. This might break in production if not fixed.`);\n\t\t\t\t\t\treturn Promise.reject(/* @__PURE__ */ new Error(\"Infinite redirect in navigation guard\"));\n\t\t\t\t\t}\n\t\t\t\t\treturn pushWithRedirect(assign({ replace: replace$1 }, locationAsObject(failure$1.to), {\n\t\t\t\t\t\tstate: typeof failure$1.to === \"object\" ? assign({}, data, failure$1.to.state) : data,\n\t\t\t\t\t\tforce\n\t\t\t\t\t}), redirectedFrom || toLocation);\n\t\t\t\t}\n\t\t\t} else failure$1 = finalizeNavigation(toLocation, from, true, replace$1, data);\n\t\t\ttriggerAfterEach(toLocation, from, failure$1);\n\t\t\treturn failure$1;\n\t\t});\n\t}\n\t/**\n\t* Helper to reject and skip all navigation guards if a new navigation happened\n\t* @param to\n\t* @param from\n\t*/\n\tfunction checkCanceledNavigationAndReject(to, from) {\n\t\tconst error = checkCanceledNavigation(to, from);\n\t\treturn error ? Promise.reject(error) : Promise.resolve();\n\t}\n\tfunction runWithContext(fn) {\n\t\tconst app = installedApps.values().next().value;\n\t\treturn app && typeof app.runWithContext === \"function\" ? app.runWithContext(fn) : fn();\n\t}\n\tfunction navigate(to, from) {\n\t\tlet guards;\n\t\tconst [leavingRecords, updatingRecords, enteringRecords] = extractChangingRecords(to, from);\n\t\tguards = extractComponentsGuards(leavingRecords.reverse(), \"beforeRouteLeave\", to, from);\n\t\tfor (const record of leavingRecords) record.leaveGuards.forEach((guard) => {\n\t\t\tguards.push(guardToPromiseFn(guard, to, from));\n\t\t});\n\t\tconst canceledNavigationCheck = checkCanceledNavigationAndReject.bind(null, to, from);\n\t\tguards.push(canceledNavigationCheck);\n\t\treturn runGuardQueue(guards).then(() => {\n\t\t\tguards = [];\n\t\t\tfor (const guard of beforeGuards.list()) guards.push(guardToPromiseFn(guard, to, from));\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).then(() => {\n\t\t\tguards = extractComponentsGuards(updatingRecords, \"beforeRouteUpdate\", to, from);\n\t\t\tfor (const record of updatingRecords) record.updateGuards.forEach((guard) => {\n\t\t\t\tguards.push(guardToPromiseFn(guard, to, from));\n\t\t\t});\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).then(() => {\n\t\t\tguards = [];\n\t\t\tfor (const record of enteringRecords) if (record.beforeEnter) if (isArray(record.beforeEnter)) for (const beforeEnter of record.beforeEnter) guards.push(guardToPromiseFn(beforeEnter, to, from));\n\t\t\telse guards.push(guardToPromiseFn(record.beforeEnter, to, from));\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).then(() => {\n\t\t\tto.matched.forEach((record) => record.enterCallbacks = {});\n\t\t\tguards = extractComponentsGuards(enteringRecords, \"beforeRouteEnter\", to, from, runWithContext);\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).then(() => {\n\t\t\tguards = [];\n\t\t\tfor (const guard of beforeResolveGuards.list()) guards.push(guardToPromiseFn(guard, to, from));\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).catch((err) => isNavigationFailure(err, ErrorTypes.NAVIGATION_CANCELLED) ? err : Promise.reject(err));\n\t}\n\tfunction triggerAfterEach(to, from, failure) {\n\t\tafterGuards.list().forEach((guard) => runWithContext(() => guard(to, from, failure)));\n\t}\n\t/**\n\t* - Cleans up any navigation guards\n\t* - Changes the url if necessary\n\t* - Calls the scrollBehavior\n\t*/\n\tfunction finalizeNavigation(toLocation, from, isPush, replace$1, data) {\n\t\tconst error = checkCanceledNavigation(toLocation, from);\n\t\tif (error) return error;\n\t\tconst isFirstNavigation = from === START_LOCATION_NORMALIZED;\n\t\tconst state = !isBrowser ? {} : history.state;\n\t\tif (isPush) if (replace$1 || isFirstNavigation) routerHistory.replace(toLocation.fullPath, assign({ scroll: isFirstNavigation && state && state.scroll }, data));\n\t\telse routerHistory.push(toLocation.fullPath, data);\n\t\tcurrentRoute.value = toLocation;\n\t\thandleScroll(toLocation, from, isPush, isFirstNavigation);\n\t\tmarkAsReady();\n\t}\n\tlet removeHistoryListener;\n\tfunction setupListeners() {\n\t\tif (removeHistoryListener) return;\n\t\tremoveHistoryListener = routerHistory.listen((to, _from, info) => {\n\t\t\tif (!router.listening) return;\n\t\t\tconst toLocation = resolve(to);\n\t\t\tconst shouldRedirect = handleRedirectRecord(toLocation, router.currentRoute.value);\n\t\t\tif (shouldRedirect) {\n\t\t\t\tpushWithRedirect(assign(shouldRedirect, {\n\t\t\t\t\treplace: true,\n\t\t\t\t\tforce: true\n\t\t\t\t}), toLocation).catch(noop);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tpendingLocation = toLocation;\n\t\t\tconst from = currentRoute.value;\n\t\t\tif (isBrowser) saveScrollPosition(getScrollKey(from.fullPath, info.delta), computeScrollPosition());\n\t\t\tnavigate(toLocation, from).catch((error) => {\n\t\t\t\tif (isNavigationFailure(error, ErrorTypes.NAVIGATION_ABORTED | ErrorTypes.NAVIGATION_CANCELLED)) return error;\n\t\t\t\tif (isNavigationFailure(error, ErrorTypes.NAVIGATION_GUARD_REDIRECT)) {\n\t\t\t\t\tpushWithRedirect(assign(locationAsObject(error.to), { force: true }), toLocation).then((failure) => {\n\t\t\t\t\t\tif (isNavigationFailure(failure, ErrorTypes.NAVIGATION_ABORTED | ErrorTypes.NAVIGATION_DUPLICATED) && !info.delta && info.type === NavigationType.pop) routerHistory.go(-1, false);\n\t\t\t\t\t}).catch(noop);\n\t\t\t\t\treturn Promise.reject();\n\t\t\t\t}\n\t\t\t\tif (info.delta) routerHistory.go(-info.delta, false);\n\t\t\t\treturn triggerError(error, toLocation, from);\n\t\t\t}).then((failure) => {\n\t\t\t\tfailure = failure || finalizeNavigation(toLocation, from, false);\n\t\t\t\tif (failure) {\n\t\t\t\t\tif (info.delta && !isNavigationFailure(failure, ErrorTypes.NAVIGATION_CANCELLED)) routerHistory.go(-info.delta, false);\n\t\t\t\t\telse if (info.type === NavigationType.pop && isNavigationFailure(failure, ErrorTypes.NAVIGATION_ABORTED | ErrorTypes.NAVIGATION_DUPLICATED)) routerHistory.go(-1, false);\n\t\t\t\t}\n\t\t\t\ttriggerAfterEach(toLocation, from, failure);\n\t\t\t}).catch(noop);\n\t\t});\n\t}\n\tlet readyHandlers = useCallbacks();\n\tlet errorListeners = useCallbacks();\n\tlet ready;\n\t/**\n\t* Trigger errorListeners added via onError and throws the error as well\n\t*\n\t* @param error - error to throw\n\t* @param to - location we were navigating to when the error happened\n\t* @param from - location we were navigating from when the error happened\n\t* @returns the error as a rejected promise\n\t*/\n\tfunction triggerError(error, to, from) {\n\t\tmarkAsReady(error);\n\t\tconst list = errorListeners.list();\n\t\tif (list.length) list.forEach((handler) => handler(error, to, from));\n\t\telse {\n\t\t\tif (process.env.NODE_ENV !== \"production\") warn$1(\"uncaught error during route navigation:\");\n\t\t\tconsole.error(error);\n\t\t}\n\t\treturn Promise.reject(error);\n\t}\n\tfunction isReady() {\n\t\tif (ready && currentRoute.value !== START_LOCATION_NORMALIZED) return Promise.resolve();\n\t\treturn new Promise((resolve$1, reject) => {\n\t\t\treadyHandlers.add([resolve$1, reject]);\n\t\t});\n\t}\n\tfunction markAsReady(err) {\n\t\tif (!ready) {\n\t\t\tready = !err;\n\t\t\tsetupListeners();\n\t\t\treadyHandlers.list().forEach(([resolve$1, reject]) => err ? reject(err) : resolve$1());\n\t\t\treadyHandlers.reset();\n\t\t}\n\t\treturn err;\n\t}\n\tfunction handleScroll(to, from, isPush, isFirstNavigation) {\n\t\tconst { scrollBehavior } = options;\n\t\tif (!isBrowser || !scrollBehavior) return Promise.resolve();\n\t\tconst scrollPosition = !isPush && getSavedScrollPosition(getScrollKey(to.fullPath, 0)) || (isFirstNavigation || !isPush) && history.state && history.state.scroll || null;\n\t\treturn nextTick().then(() => scrollBehavior(to, from, scrollPosition)).then((position) => position && scrollToPosition(position)).catch((err) => triggerError(err, to, from));\n\t}\n\tconst go = (delta) => routerHistory.go(delta);\n\tlet started;\n\tconst installedApps = /* @__PURE__ */ new Set();\n\tconst router = {\n\t\tcurrentRoute,\n\t\tlistening: true,\n\t\taddRoute,\n\t\tremoveRoute,\n\t\tclearRoutes: matcher.clearRoutes,\n\t\thasRoute,\n\t\tgetRoutes,\n\t\tresolve,\n\t\toptions,\n\t\tpush,\n\t\treplace,\n\t\tgo,\n\t\tback: () => go(-1),\n\t\tforward: () => go(1),\n\t\tbeforeEach: beforeGuards.add,\n\t\tbeforeResolve: beforeResolveGuards.add,\n\t\tafterEach: afterGuards.add,\n\t\tonError: errorListeners.add,\n\t\tisReady,\n\t\tinstall(app) {\n\t\t\tapp.component(\"RouterLink\", RouterLink);\n\t\t\tapp.component(\"RouterView\", RouterView);\n\t\t\tapp.config.globalProperties.$router = router;\n\t\t\tObject.defineProperty(app.config.globalProperties, \"$route\", {\n\t\t\t\tenumerable: true,\n\t\t\t\tget: () => unref(currentRoute)\n\t\t\t});\n\t\t\tif (isBrowser && !started && currentRoute.value === START_LOCATION_NORMALIZED) {\n\t\t\t\tstarted = true;\n\t\t\t\tpush(routerHistory.location).catch((err) => {\n\t\t\t\t\tif (process.env.NODE_ENV !== \"production\") warn$1(\"Unexpected error when starting the router:\", err);\n\t\t\t\t});\n\t\t\t}\n\t\t\tconst reactiveRoute = {};\n\t\t\tfor (const key in START_LOCATION_NORMALIZED) Object.defineProperty(reactiveRoute, key, {\n\t\t\t\tget: () => currentRoute.value[key],\n\t\t\t\tenumerable: true\n\t\t\t});\n\t\t\tapp.provide(routerKey, router);\n\t\t\tapp.provide(routeLocationKey, shallowReactive(reactiveRoute));\n\t\t\tapp.provide(routerViewLocationKey, currentRoute);\n\t\t\tconst unmountApp = app.unmount;\n\t\t\tinstalledApps.add(app);\n\t\t\tapp.unmount = function() {\n\t\t\t\tinstalledApps.delete(app);\n\t\t\t\tif (installedApps.size < 1) {\n\t\t\t\t\tpendingLocation = START_LOCATION_NORMALIZED;\n\t\t\t\t\tremoveHistoryListener && removeHistoryListener();\n\t\t\t\t\tremoveHistoryListener = null;\n\t\t\t\t\tcurrentRoute.value = START_LOCATION_NORMALIZED;\n\t\t\t\t\tstarted = false;\n\t\t\t\t\tready = false;\n\t\t\t\t}\n\t\t\t\tunmountApp();\n\t\t\t};\n\t\t\tif ((process.env.NODE_ENV !== \"production\" || __VUE_PROD_DEVTOOLS__) && isBrowser) addDevtools(app, router, matcher);\n\t\t}\n\t};\n\tfunction runGuardQueue(guards) {\n\t\treturn guards.reduce((promise, guard) => promise.then(() => runWithContext(guard)), Promise.resolve());\n\t}\n\treturn router;\n}\n\n//#endregion\n//#region src/useApi.ts\n/**\n* Returns the router instance. Equivalent to using `$router` inside\n* templates.\n*/\nfunction useRouter() {\n\treturn inject(routerKey);\n}\n/**\n* Returns the current route location. Equivalent to using `$route` inside\n* templates.\n*/\nfunction useRoute(_name) {\n\treturn inject(routeLocationKey);\n}\n\n//#endregion\nexport { NavigationFailureType, RouterLink, RouterView, START_LOCATION_NORMALIZED as START_LOCATION, createMemoryHistory, createRouter, createRouterMatcher, createWebHashHistory, createWebHistory, isNavigationFailure, loadRouteLocation, matchedRouteKey, onBeforeRouteLeave, onBeforeRouteUpdate, parseQuery, routeLocationKey, routerKey, routerViewLocationKey, stringifyQuery, useLink, useRoute, useRouter, viewDepthKey };","const [majorVersion] = window.OC?.config?.version?.split(\".\") ?? [];\nconst isLegacy = Number.parseInt(majorVersion ?? \"32\") < 32;\nexport {\n isLegacy as i\n};\n//# sourceMappingURL=legacy-DcjXBL_t.mjs.map\n","import { inject } from \"vue\";\nconst NC_FORM_BOX_CONTEXT_KEY = Symbol.for(\"NcFormBox:context\");\nfunction useNcFormBox() {\n return inject(NC_FORM_BOX_CONTEXT_KEY, {\n isInFormBox: false,\n formBoxItemClass: void 0\n });\n}\nexport {\n NC_FORM_BOX_CONTEXT_KEY as N,\n useNcFormBox as u\n};\n//# sourceMappingURL=useNcFormBox-DA9iwXWY.mjs.map\n","import '../assets/NcButton--Fj4gghF.css';\nimport { defineComponent, inject, computed, createBlock, openBlock, resolveDynamicComponent, mergeProps, unref, withCtx, createElementVNode, renderSlot, createTextVNode, toDisplayString } from \"vue\";\nimport { routerKey } from \"vue-router\";\nimport { i as isLegacy } from \"./legacy-DcjXBL_t.mjs\";\nimport { u as useNcFormBox } from \"./useNcFormBox-DA9iwXWY.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = { class: \"button-vue__wrapper\" };\nconst _hoisted_2 = { class: \"button-vue__icon\" };\nconst _hoisted_3 = { class: \"button-vue__text\" };\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcButton\",\n props: {\n alignment: { default: \"center\" },\n ariaLabel: { default: void 0 },\n disabled: { type: Boolean },\n download: { type: [String, Boolean], default: void 0 },\n href: { default: void 0 },\n pressed: { type: Boolean, default: void 0 },\n size: { default: \"normal\" },\n target: { default: \"_self\" },\n text: { default: void 0 },\n to: { default: void 0 },\n type: { default: \"button\" },\n variant: { default: \"secondary\" },\n wide: { type: Boolean }\n },\n emits: [\"click\", \"update:pressed\"],\n setup(__props, { emit: __emit }) {\n const props = __props;\n const emit = __emit;\n const { formBoxItemClass } = useNcFormBox();\n const hasVueRouterContext = inject(routerKey, null) !== null;\n const tag = computed(() => {\n if (hasVueRouterContext && props.to) {\n return \"RouterLink\";\n } else if (props.href) {\n return \"a\";\n } else {\n return \"button\";\n }\n });\n const hasPressedState = computed(() => tag.value === \"button\" && typeof props.pressed === \"boolean\");\n const variantWithPressed = computed(() => {\n if (props.pressed) {\n return \"primary\";\n }\n if (props.pressed === false && props.variant === \"primary\") {\n return \"secondary\";\n }\n return props.variant;\n });\n const isTertiaryVariant = computed(() => variantWithPressed.value.startsWith(\"tertiary\"));\n const flexAlignment = computed(() => props.alignment.split(\"-\")[0]);\n const isReverseAligned = computed(() => props.alignment.includes(\"-\"));\n const getNcPopoverTriggerAttrs = inject(\"NcPopover:trigger:attrs\", () => ({}), false);\n const ncPopoverTriggerAttrs = computed(() => getNcPopoverTriggerAttrs());\n const attrs = computed(() => {\n if (tag.value === \"RouterLink\") {\n return {\n to: props.to,\n activeClass: \"active\"\n };\n } else if (tag.value === \"a\") {\n return {\n href: props.href || \"#\",\n target: props.target,\n rel: \"nofollow noreferrer noopener\",\n download: props.download || void 0\n };\n } else if (tag.value === \"button\") {\n return {\n ...ncPopoverTriggerAttrs.value,\n \"aria-pressed\": props.pressed,\n type: props.type,\n disabled: props.disabled\n };\n }\n return void 0;\n });\n function onClick(event) {\n if (hasPressedState.value) {\n emit(\"update:pressed\", !props.pressed);\n }\n emit(\"click\", event);\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(resolveDynamicComponent(tag.value), mergeProps({\n class: [\"button-vue\", [\n `button-vue--size-${_ctx.size}`,\n {\n [`button-vue--${variantWithPressed.value}`]: variantWithPressed.value,\n \"button-vue--tertiary\": isTertiaryVariant.value,\n \"button-vue--wide\": _ctx.wide,\n [`button-vue--${flexAlignment.value}`]: flexAlignment.value !== \"center\",\n \"button-vue--reverse\": isReverseAligned.value,\n \"button-vue--legacy\": unref(isLegacy)\n },\n unref(formBoxItemClass)\n ]],\n \"aria-label\": _ctx.ariaLabel\n }, attrs.value, { onClick }), {\n default: withCtx(() => [\n createElementVNode(\"span\", _hoisted_1, [\n createElementVNode(\"span\", _hoisted_2, [\n renderSlot(_ctx.$slots, \"icon\", {}, void 0, true)\n ]),\n createElementVNode(\"span\", _hoisted_3, [\n renderSlot(_ctx.$slots, \"default\", {}, () => [\n createTextVNode(toDisplayString(_ctx.text), 1)\n ], true)\n ])\n ])\n ]),\n _: 3\n }, 16, [\"class\", \"aria-label\"]);\n };\n }\n});\nconst NcButton = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-e3b1a10b\"]]);\nexport {\n NcButton as N\n};\n//# sourceMappingURL=NcButton-Dc8V4Urj.mjs.map\n","import { getLoggerBuilder } from \"@nextcloud/logger\";\nconst logger = getLoggerBuilder().detectUser().setApp(\"@nextcloud/vue\").build();\nexport {\n logger as l\n};\n//# sourceMappingURL=logger-D3RVzcfQ.mjs.map\n","/**\n * @typedef {import('unist').Node} Node\n */\n\n/**\n * @typedef {Array | string} ChildrenOrValue\n * List to use as `children` or value to use as `value`.\n *\n * @typedef {Record} Props\n * Other fields to add to the node.\n */\n\n/**\n * Build a node.\n *\n * @template {string} T\n * @template {Props} P\n * @template {Array} C\n *\n * @overload\n * @param {T} type\n * @returns {{type: T}}\n *\n * @overload\n * @param {T} type\n * @param {P} props\n * @returns {{type: T} & P}\n *\n * @overload\n * @param {T} type\n * @param {string} value\n * @returns {{type: T, value: string}}\n *\n * @overload\n * @param {T} type\n * @param {P} props\n * @param {string} value\n * @returns {{type: T, value: string} & P}\n *\n * @overload\n * @param {T} type\n * @param {C} children\n * @returns {{type: T, children: C}}\n *\n * @overload\n * @param {T} type\n * @param {P} props\n * @param {C} children\n * @returns {{type: T, children: C} & P}\n *\n * @param {string} type\n * Node type.\n * @param {ChildrenOrValue | Props | null | undefined} [props]\n * Fields assigned to node (default: `undefined`).\n * @param {ChildrenOrValue | null | undefined} [value]\n * Children of node or value of `node` (cast to string).\n * @returns {Node}\n * Built node.\n */\nexport function u(type, props, value) {\n /** @type {Node} */\n const node = {type: String(type)}\n\n if (\n (value === undefined || value === null) &&\n (typeof props === 'string' || Array.isArray(props))\n ) {\n value = props\n } else {\n Object.assign(node, props)\n }\n\n if (Array.isArray(value)) {\n // @ts-expect-error: create a parent.\n node.children = value\n } else if (value !== undefined && value !== null) {\n // @ts-expect-error: create a literal.\n node.value = String(value)\n }\n\n return node\n}\n","/**\n * @import {Node, Parent} from 'unist'\n */\n\n/**\n * @template Fn\n * @template Fallback\n * @typedef {Fn extends (value: any) => value is infer Thing ? Thing : Fallback} Predicate\n */\n\n/**\n * @callback Check\n * Check that an arbitrary value is a node.\n * @param {unknown} this\n * The given context.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {boolean}\n * Whether this is a node and passes a test.\n *\n * @typedef {Record | Node} Props\n * Object to check for equivalence.\n *\n * Note: `Node` is included as it is common but is not indexable.\n *\n * @typedef {Array | ReadonlyArray | Props | TestFunction | string | null | undefined} Test\n * Check for an arbitrary node.\n *\n * @callback TestFunction\n * Check if a node passes a test.\n * @param {unknown} this\n * The given context.\n * @param {Node} node\n * A node.\n * @param {number | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | undefined} [parent]\n * The node’s parent.\n * @returns {boolean | undefined | void}\n * Whether this node passes the test.\n *\n * Note: `void` is included until TS sees no return as `undefined`.\n */\n\n/**\n * Check if `node` is a `Node` and whether it passes the given test.\n *\n * @param {unknown} node\n * Thing to check, typically `Node`.\n * @param {Test} test\n * A check for a specific node.\n * @param {number | null | undefined} index\n * The node’s position in its parent.\n * @param {Parent | null | undefined} parent\n * The node’s parent.\n * @param {unknown} context\n * Context object (`this`) to pass to `test` functions.\n * @returns {boolean}\n * Whether `node` is a node and passes a test.\n */\nexport const is =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * (>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition[number]}) &\n * (>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition[number]}) &\n * ((node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * ((node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * ((node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate) &\n * ((node?: null | undefined) => false) &\n * ((node: unknown, test?: null | undefined, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((node: unknown, test?: Test, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * @param {unknown} [node]\n * @param {Test} [test]\n * @param {number | null | undefined} [index]\n * @param {Parent | null | undefined} [parent]\n * @param {unknown} [context]\n * @returns {boolean}\n */\n // eslint-disable-next-line max-params\n function (node, test, index, parent, context) {\n const check = convert(test)\n\n if (\n index !== undefined &&\n index !== null &&\n (typeof index !== 'number' ||\n index < 0 ||\n index === Number.POSITIVE_INFINITY)\n ) {\n throw new Error('Expected positive finite index')\n }\n\n if (\n parent !== undefined &&\n parent !== null &&\n (!is(parent) || !parent.children)\n ) {\n throw new Error('Expected parent node')\n }\n\n if (\n (parent === undefined || parent === null) !==\n (index === undefined || index === null)\n ) {\n throw new Error('Expected both parent and index')\n }\n\n return looksLikeANode(node)\n ? check.call(context, node, index, parent)\n : false\n }\n )\n\n/**\n * Generate an assertion from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * a `node`, `index`, and `parent`.\n *\n * @param {Test} test\n * * when nullish, checks if `node` is a `Node`.\n * * when `string`, works like passing `(node) => node.type === test`.\n * * when `function` checks if function passed the node is true.\n * * when `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n * * when `array`, checks if any one of the subtests pass.\n * @returns {Check}\n * An assertion.\n */\nexport const convert =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate) &\n * ((test?: null | undefined) => (node?: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((test?: Test) => Check)\n * )}\n */\n (\n /**\n * @param {Test} [test]\n * @returns {Check}\n */\n function (test) {\n if (test === null || test === undefined) {\n return ok\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n if (typeof test === 'object') {\n return Array.isArray(test)\n ? anyFactory(test)\n : // Cast because `ReadonlyArray` goes into the above but `isArray`\n // narrows to `Array`.\n propertiesFactory(/** @type {Props} */ (test))\n }\n\n if (typeof test === 'string') {\n return typeFactory(test)\n }\n\n throw new Error('Expected function, string, or object as test')\n }\n )\n\n/**\n * @param {Array} tests\n * @returns {Check}\n */\nfunction anyFactory(tests) {\n /** @type {Array} */\n const checks = []\n let index = -1\n\n while (++index < tests.length) {\n checks[index] = convert(tests[index])\n }\n\n return castFactory(any)\n\n /**\n * @this {unknown}\n * @type {TestFunction}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].apply(this, parameters)) return true\n }\n\n return false\n }\n}\n\n/**\n * Turn an object into a test for a node with a certain fields.\n *\n * @param {Props} check\n * @returns {Check}\n */\nfunction propertiesFactory(check) {\n const checkAsRecord = /** @type {Record} */ (check)\n\n return castFactory(all)\n\n /**\n * @param {Node} node\n * @returns {boolean}\n */\n function all(node) {\n const nodeAsRecord = /** @type {Record} */ (\n /** @type {unknown} */ (node)\n )\n\n /** @type {string} */\n let key\n\n for (key in check) {\n if (nodeAsRecord[key] !== checkAsRecord[key]) return false\n }\n\n return true\n }\n}\n\n/**\n * Turn a string into a test for a node with a certain type.\n *\n * @param {string} check\n * @returns {Check}\n */\nfunction typeFactory(check) {\n return castFactory(type)\n\n /**\n * @param {Node} node\n */\n function type(node) {\n return node && node.type === check\n }\n}\n\n/**\n * Turn a custom test into a test for a node that passes that test.\n *\n * @param {TestFunction} testFunction\n * @returns {Check}\n */\nfunction castFactory(testFunction) {\n return check\n\n /**\n * @this {unknown}\n * @type {Check}\n */\n function check(value, index, parent) {\n return Boolean(\n looksLikeANode(value) &&\n testFunction.call(\n this,\n value,\n typeof index === 'number' ? index : undefined,\n parent || undefined\n )\n )\n }\n}\n\nfunction ok() {\n return true\n}\n\n/**\n * @param {unknown} value\n * @returns {value is Node}\n */\nfunction looksLikeANode(value) {\n return value !== null && typeof value === 'object' && 'type' in value\n}\n","/**\n * @import {Node as UnistNode, Parent as UnistParent} from 'unist'\n */\n\n/**\n * @typedef {Exclude | undefined} Test\n * Test from `unist-util-is`.\n *\n * Note: we have remove and add `undefined`, because otherwise when generating\n * automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n * which doesn’t work when publishing on npm.\n */\n\n/**\n * @typedef {(\n * Fn extends (value: any) => value is infer Thing\n * ? Thing\n * : Fallback\n * )} Predicate\n * Get the value of a type guard `Fn`.\n * @template Fn\n * Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n * Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n * Check extends null | undefined // No test.\n * ? Value\n * : Value extends {type: Check} // String (type) test.\n * ? Value\n * : Value extends Check // Partial test.\n * ? Value\n * : Check extends Function // Function test.\n * ? Predicate extends Value\n * ? Predicate\n * : never\n * : never // Some other test?\n * )} MatchesOne\n * Check whether a node matches a primitive check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n * Check extends ReadonlyArray\n * ? MatchesOne\n * : Check extends Array\n * ? MatchesOne\n * : MatchesOne\n * )} Matches\n * Check whether a node matches a check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n * Number; capped reasonably.\n */\n\n/**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n * Increment a number in the type system.\n * @template {Uint} [I=0]\n * Index.\n */\n\n/**\n * @typedef {(\n * Node extends UnistParent\n * ? Node extends {children: Array}\n * ? Child extends Children ? Node : never\n * : never\n * : never\n * )} InternalParent\n * Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {InternalParent, Child>} Parent\n * Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Depth extends Max\n * ? never\n * :\n * | InternalParent\n * | InternalAncestor, Max, Increment>\n * )} InternalAncestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {InternalAncestor, Child>} Ancestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Tree extends UnistParent\n * ? Depth extends Max\n * ? Tree\n * : Tree | InclusiveDescendant>\n * : Tree\n * )} InclusiveDescendant\n * Collect all (inclusive) descendants of `Tree`.\n *\n * > 👉 **Note**: for performance reasons, this seems to be the fastest way to\n * > recurse without actually running into an infinite loop, which the\n * > previous version did.\n * >\n * > Practically, a max of `2` is typically enough assuming a `Root` is\n * > passed, but it doesn’t improve performance.\n * > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n * > Using up to `10` doesn’t hurt or help either.\n * @template {UnistNode} Tree\n * Tree type.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {'skip' | boolean} Action\n * Union of the action types.\n *\n * @typedef {number} Index\n * Move to the sibling at `index` next (after node itself is completely\n * traversed).\n *\n * Useful if mutating the tree, such as removing the node the visitor is\n * currently on, or any of its previous siblings.\n * Results less than 0 or greater than or equal to `children.length` stop\n * traversing the parent.\n *\n * @typedef {[(Action | null | undefined | void)?, (Index | null | undefined)?]} ActionTuple\n * List with one or two values, the first an action, the second an index.\n *\n * @typedef {Action | ActionTuple | Index | null | undefined | void} VisitorResult\n * Any value that can be returned from a visitor.\n */\n\n/**\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform the parent of node (the last of `ancestors`).\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of an ancestor still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Array} ancestors\n * Ancestors of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n * @template {UnistNode} [Visited=UnistNode]\n * Visited node type.\n * @template {UnistParent} [VisitedParents=UnistParent]\n * Ancestor type.\n */\n\n/**\n * @typedef {Visitor, Check>, Ancestor, Check>>>} BuildVisitor\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parents`.\n * @template {UnistNode} [Tree=UnistNode]\n * Tree type.\n * @template {Test} [Check=Test]\n * Test type.\n */\n\nimport {convert} from 'unist-util-is'\nimport {color} from 'unist-util-visit-parents/do-not-use-color'\n\n/** @type {Readonly} */\nconst empty = []\n\n/**\n * Continue traversing as normal.\n */\nexport const CONTINUE = true\n\n/**\n * Stop traversing immediately.\n */\nexport const EXIT = false\n\n/**\n * Do not traverse this node’s children.\n */\nexport const SKIP = 'skip'\n\n/**\n * Visit nodes, with ancestral information.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @overload\n * @param {Tree} tree\n * @param {Check} check\n * @param {BuildVisitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @overload\n * @param {Tree} tree\n * @param {BuildVisitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @param {UnistNode} tree\n * Tree to traverse.\n * @param {Visitor | Test} test\n * `unist-util-is`-compatible test\n * @param {Visitor | boolean | null | undefined} [visitor]\n * Handle each node.\n * @param {boolean | null | undefined} [reverse]\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns {undefined}\n * Nothing.\n *\n * @template {UnistNode} Tree\n * Node type.\n * @template {Test} Check\n * `unist-util-is`-compatible test.\n */\nexport function visitParents(tree, test, visitor, reverse) {\n /** @type {Test} */\n let check\n\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n // @ts-expect-error no visitor given, so `visitor` is test.\n visitor = test\n } else {\n // @ts-expect-error visitor given, so `test` isn’t a visitor.\n check = test\n }\n\n const is = convert(check)\n const step = reverse ? -1 : 1\n\n factory(tree, undefined, [])()\n\n /**\n * @param {UnistNode} node\n * @param {number | undefined} index\n * @param {Array} parents\n */\n function factory(node, index, parents) {\n const value = /** @type {Record} */ (\n node && typeof node === 'object' ? node : {}\n )\n\n if (typeof value.type === 'string') {\n const name =\n // `hast`\n typeof value.tagName === 'string'\n ? value.tagName\n : // `xast`\n typeof value.name === 'string'\n ? value.name\n : undefined\n\n Object.defineProperty(visit, 'name', {\n value:\n 'node (' + color(node.type + (name ? '<' + name + '>' : '')) + ')'\n })\n }\n\n return visit\n\n function visit() {\n /** @type {Readonly} */\n let result = empty\n /** @type {Readonly} */\n let subresult\n /** @type {number} */\n let offset\n /** @type {Array} */\n let grandparents\n\n if (!test || is(node, index, parents[parents.length - 1] || undefined)) {\n // @ts-expect-error: `visitor` is now a visitor.\n result = toResult(visitor(node, parents))\n\n if (result[0] === EXIT) {\n return result\n }\n }\n\n if ('children' in node && node.children) {\n const nodeAsParent = /** @type {UnistParent} */ (node)\n\n if (nodeAsParent.children && result[0] !== SKIP) {\n offset = (reverse ? nodeAsParent.children.length : -1) + step\n grandparents = parents.concat(nodeAsParent)\n\n while (offset > -1 && offset < nodeAsParent.children.length) {\n const child = nodeAsParent.children[offset]\n\n subresult = factory(child, offset, grandparents)()\n\n if (subresult[0] === EXIT) {\n return subresult\n }\n\n offset =\n typeof subresult[1] === 'number' ? subresult[1] : offset + step\n }\n }\n }\n\n return result\n }\n }\n}\n\n/**\n * Turn a return value into a clean result.\n *\n * @param {VisitorResult} value\n * Valid return values from visitors.\n * @returns {Readonly}\n * Clean result.\n */\nfunction toResult(value) {\n if (Array.isArray(value)) {\n return value\n }\n\n if (typeof value === 'number') {\n return [CONTINUE, value]\n }\n\n return value === null || value === undefined ? empty : [value]\n}\n","/**\n * @typedef {import('unist').Node} UnistNode\n * @typedef {import('unist').Parent} UnistParent\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n */\n\n/**\n * @typedef {Exclude | undefined} Test\n * Test from `unist-util-is`.\n *\n * Note: we have remove and add `undefined`, because otherwise when generating\n * automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n * which doesn’t work when publishing on npm.\n */\n\n// To do: use types from `unist-util-visit-parents` when it’s released.\n\n/**\n * @typedef {(\n * Fn extends (value: any) => value is infer Thing\n * ? Thing\n * : Fallback\n * )} Predicate\n * Get the value of a type guard `Fn`.\n * @template Fn\n * Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n * Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n * Check extends null | undefined // No test.\n * ? Value\n * : Value extends {type: Check} // String (type) test.\n * ? Value\n * : Value extends Check // Partial test.\n * ? Value\n * : Check extends Function // Function test.\n * ? Predicate extends Value\n * ? Predicate\n * : never\n * : never // Some other test?\n * )} MatchesOne\n * Check whether a node matches a primitive check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n * Check extends Array\n * ? MatchesOne\n * : MatchesOne\n * )} Matches\n * Check whether a node matches a check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n * Number; capped reasonably.\n */\n\n/**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n * Increment a number in the type system.\n * @template {Uint} [I=0]\n * Index.\n */\n\n/**\n * @typedef {(\n * Node extends UnistParent\n * ? Node extends {children: Array}\n * ? Child extends Children ? Node : never\n * : never\n * : never\n * )} InternalParent\n * Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {InternalParent, Child>} Parent\n * Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Depth extends Max\n * ? never\n * :\n * | InternalParent\n * | InternalAncestor, Max, Increment>\n * )} InternalAncestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {(\n * Tree extends UnistParent\n * ? Depth extends Max\n * ? Tree\n * : Tree | InclusiveDescendant>\n * : Tree\n * )} InclusiveDescendant\n * Collect all (inclusive) descendants of `Tree`.\n *\n * > 👉 **Note**: for performance reasons, this seems to be the fastest way to\n * > recurse without actually running into an infinite loop, which the\n * > previous version did.\n * >\n * > Practically, a max of `2` is typically enough assuming a `Root` is\n * > passed, but it doesn’t improve performance.\n * > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n * > Using up to `10` doesn’t hurt or help either.\n * @template {UnistNode} Tree\n * Tree type.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform `parent`.\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of `parent` still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Visited extends UnistNode ? number | undefined : never} index\n * Index of `node` in `parent`.\n * @param {Ancestor extends UnistParent ? Ancestor | undefined : never} parent\n * Parent of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n * @template {UnistNode} [Visited=UnistNode]\n * Visited node type.\n * @template {UnistParent} [Ancestor=UnistParent]\n * Ancestor type.\n */\n\n/**\n * @typedef {Visitor>} BuildVisitorFromMatch\n * Build a typed `Visitor` function from a node and all possible parents.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Visited\n * Node type.\n * @template {UnistParent} Ancestor\n * Parent type.\n */\n\n/**\n * @typedef {(\n * BuildVisitorFromMatch<\n * Matches,\n * Extract\n * >\n * )} BuildVisitorFromDescendants\n * Build a typed `Visitor` function from a list of descendants and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Descendant\n * Node type.\n * @template {Test} Check\n * Test type.\n */\n\n/**\n * @typedef {(\n * BuildVisitorFromDescendants<\n * InclusiveDescendant,\n * Check\n * >\n * )} BuildVisitor\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} [Tree=UnistNode]\n * Node type.\n * @template {Test} [Check=Test]\n * Test type.\n */\n\nimport {visitParents} from 'unist-util-visit-parents'\n\nexport {CONTINUE, EXIT, SKIP} from 'unist-util-visit-parents'\n\n/**\n * Visit nodes.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @overload\n * @param {Tree} tree\n * @param {Check} check\n * @param {BuildVisitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @overload\n * @param {Tree} tree\n * @param {BuildVisitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @param {UnistNode} tree\n * Tree to traverse.\n * @param {Visitor | Test} testOrVisitor\n * `unist-util-is`-compatible test (optional, omit to pass a visitor).\n * @param {Visitor | boolean | null | undefined} [visitorOrReverse]\n * Handle each node (when test is omitted, pass `reverse`).\n * @param {boolean | null | undefined} [maybeReverse=false]\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns {undefined}\n * Nothing.\n *\n * @template {UnistNode} Tree\n * Node type.\n * @template {Test} Check\n * `unist-util-is`-compatible test.\n */\nexport function visit(tree, testOrVisitor, visitorOrReverse, maybeReverse) {\n /** @type {boolean | null | undefined} */\n let reverse\n /** @type {Test} */\n let test\n /** @type {Visitor} */\n let visitor\n\n if (\n typeof testOrVisitor === 'function' &&\n typeof visitorOrReverse !== 'function'\n ) {\n test = undefined\n visitor = testOrVisitor\n reverse = visitorOrReverse\n } else {\n // @ts-expect-error: assume the overload with test was given.\n test = testOrVisitor\n // @ts-expect-error: assume the overload with test was given.\n visitor = visitorOrReverse\n reverse = maybeReverse\n }\n\n visitParents(tree, test, overload, reverse)\n\n /**\n * @param {UnistNode} node\n * @param {Array} parents\n */\n function overload(node, parents) {\n const parent = parents[parents.length - 1]\n const index = parent ? parent.children.indexOf(node) : undefined\n return visitor(node, index, parent)\n }\n}\n","import { getBaseUrl, getRootUrl } from \"@nextcloud/router\";\nimport { u } from \"unist-builder\";\nimport { visit, SKIP } from \"unist-util-visit\";\nimport { defineComponent, h } from \"vue\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\n/*!\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst URL_PATTERN = /(\\s|^)(https?:\\/\\/)([-A-Z0-9+_.]+(?::[0-9]+)?(?:\\/[-A-Z0-9+&@#%?=~_|!:,.;()]*)*)(\\s|$)/ig;\nconst URL_PATTERN_AUTOLINK = /(\\s|\\(|^)((https?:\\/\\/)([-A-Z0-9+_.]+[-A-Z0-9]+(?::[0-9]+)?(?:\\/[-A-Z0-9+&@#%?=~_|!:,.;()]*)*))(?=\\s|\\)|$)/ig;\nconst NcLink = defineComponent({\n name: \"NcLink\",\n props: {\n href: {\n type: String,\n required: true\n }\n },\n render() {\n return h(\"a\", {\n href: this.href,\n rel: \"noopener noreferrer\",\n target: \"_blank\",\n class: \"rich-text--external-link\"\n }, [this.href.trim()]);\n }\n});\nfunction remarkAutolink({ autolink, useMarkdown, useExtendedMarkdown }) {\n return function(tree) {\n if (useExtendedMarkdown || !useMarkdown || !autolink) {\n return;\n }\n visit(tree, (node) => node.type === \"text\", (node, index, parent) => {\n let parsed = parseUrl(node.value);\n if (typeof parsed === \"string\") {\n parsed = [u(\"text\", parsed)];\n } else {\n parsed = parsed.map((n) => {\n if (typeof n === \"string\") {\n return u(\"text\", n);\n }\n return u(\"link\", {\n url: n.props.href\n }, [u(\"text\", n.props.href)]);\n }).filter((x) => x).flat();\n }\n parent.children.splice(index, 1, ...parsed);\n return [SKIP, (index ?? 0) + parsed.length];\n });\n };\n}\nfunction parseUrl(text) {\n let match = URL_PATTERN_AUTOLINK.exec(text);\n const list = [];\n let start = 0;\n while (match !== null) {\n let href = match[2];\n let textAfter;\n let textBefore = text.substring(start, match.index + match[1].length);\n if (href[0] === \" \") {\n textBefore += href[0];\n href = href.substring(1).trim();\n }\n const lastChar = href[href.length - 1];\n if (lastChar === \".\" || lastChar === \",\" || lastChar === \";\" || match[0][0] === \"(\" && lastChar === \")\") {\n href = href.substring(0, href.length - 1);\n textAfter = lastChar;\n }\n list.push(textBefore);\n list.push({ component: NcLink, props: { href } });\n if (textAfter) {\n list.push(textAfter);\n }\n start = match.index + match[0].length;\n match = URL_PATTERN_AUTOLINK.exec(text);\n }\n list.push(text.substring(start));\n const joinedText = list.map((item) => typeof item === \"string\" ? item : item.props.href).join(\"\");\n if (text === joinedText) {\n return list;\n }\n logger.error(\"[NcRichText] Failed to reassemble the chunked text: \" + text);\n return text;\n}\nfunction getRoute(router, url) {\n const removePrefix = (str, prefix) => str.startsWith(prefix) ? str.slice(prefix.length) : str;\n const removePrefixes = (str, ...prefixes) => prefixes.reduce((acc, prefix) => removePrefix(acc, prefix), str);\n if (!router) {\n return null;\n }\n const isAbsoluteURL = /^https?:\\/\\//.test(url);\n const isNonHttpLink = /^[a-z][a-z0-9+.-]*:.+/.test(url);\n if (!isAbsoluteURL && isNonHttpLink) {\n return null;\n }\n if (isAbsoluteURL && !url.startsWith(getBaseUrl())) {\n return null;\n }\n if (!isAbsoluteURL && !url.startsWith(\"/\")) {\n return null;\n }\n const relativeUrl = isAbsoluteURL ? removePrefixes(url, getBaseUrl(), \"/index.php\") : url;\n const relativeRouterBase = removePrefixes(router.options.history.base, getRootUrl(), \"/index.php\");\n const potentialRouterPath = removePrefixes(relativeUrl, relativeRouterBase) || \"/\";\n const route = router.resolve(potentialRouterPath);\n if (!route.matched.length) {\n return null;\n }\n return route.fullPath;\n}\nexport {\n URL_PATTERN as U,\n getRoute as g,\n parseUrl as p,\n remarkAutolink as r\n};\n//# sourceMappingURL=autolink-U5pBzLgI.mjs.map\n","\n\n"],"names":["mdiAlert","mdiAlertCircleOutline","mdiAlertDecagram","mdiArrowLeft","mdiArrowRight","mdiCalendarBlank","mdiCheck","mdiCheckboxMarkedCircle","mdiChevronDown","mdiChevronLeft","mdiChevronRight","mdiChevronUp","mdiClock","mdiClose","mdiCloseCircleOutline","mdiContentCopy","mdiDotsHorizontal","mdiEye","mdiEyeOff","mdiInformation","mdiPause","mdiPlay","mdiUndo","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_sfc_main","defineComponent","__props","useCssVars","_ctx","iconSize","props","computed","cleanSvg","svg","DOMPurify","svgDocument","_cache","openBlock","createElementBlock","normalizeClass","createElementVNode","NcIconSvgWrapper","_export_sfc","noop","isArray","isSameRouteRecord","a","b","isSameRouteLocationParams","key","isSameRouteLocationParamsValue","isEquivalentArray","value","i","routerKey","routeLocationKey","useLink","router","inject","currentRoute","route","to","unref","activeRecordIndex","matched","length","routeMatched","currentMatched","index","parentRecordPath","getOriginalPath","isActive","includesParams","isExactActive","navigate","e","guardEvent","p","preferSingleVNode","vnodes","RouterLinkImpl","slots","link","reactive","options","elClass","getLinkClass","children","h","RouterLink","target","outer","inner","innerValue","outerValue","record","propClass","globalClass","defaultClass","majorVersion","isLegacy","NC_FORM_BOX_CONTEXT_KEY","useNcFormBox","__emit","emit","formBoxItemClass","hasVueRouterContext","tag","hasPressedState","variantWithPressed","isTertiaryVariant","flexAlignment","isReverseAligned","getNcPopoverTriggerAttrs","ncPopoverTriggerAttrs","attrs","onClick","event","createBlock","resolveDynamicComponent","mergeProps","withCtx","renderSlot","createTextVNode","toDisplayString","NcButton","logger","getLoggerBuilder","u","type","node","convert","test","ok","castFactory","anyFactory","propertiesFactory","typeFactory","tests","checks","any","parameters","check","checkAsRecord","all","nodeAsRecord","testFunction","parent","looksLikeANode","empty","CONTINUE","EXIT","SKIP","visitParents","tree","visitor","reverse","is","step","factory","parents","name","visit","result","subresult","offset","grandparents","toResult","nodeAsParent","child","testOrVisitor","visitorOrReverse","maybeReverse","overload","URL_PATTERN","URL_PATTERN_AUTOLINK","NcLink","remarkAutolink","autolink","useMarkdown","useExtendedMarkdown","parsed","parseUrl","n","x","text","match","list","start","href","textAfter","textBefore","lastChar","joinedText","item","getRoute","url","removePrefix","str","prefix","removePrefixes","prefixes","acc","isAbsoluteURL","isNonHttpLink","getBaseUrl","relativeUrl","relativeRouterBase","getRootUrl","potentialRouterPath","_createElementBlock","_mergeProps","$props","$event","_createElementVNode","_openBlock"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13]} \ No newline at end of file diff --git a/dist/NcAvatar-DmUGApWA-DBHt6M62.chunk.mjs.map.license b/dist/AccountOutline-BlW-6JqD.chunk.mjs.map.license similarity index 69% rename from dist/NcAvatar-DmUGApWA-DBHt6M62.chunk.mjs.map.license rename to dist/AccountOutline-BlW-6JqD.chunk.mjs.map.license index 86cf77faf3a0a..c98a2abf556c0 100644 --- a/dist/NcAvatar-DmUGApWA-DBHt6M62.chunk.mjs.map.license +++ b/dist/AccountOutline-BlW-6JqD.chunk.mjs.map.license @@ -1,25 +1,15 @@ SPDX-License-Identifier: AGPL-3.0-or-later SPDX-License-Identifier: MIT -SPDX-FileCopyrightText: Eric Norris (https://github.com/ericnorris) +SPDX-FileCopyrightText: Eduardo San Martin Morote SPDX-FileCopyrightText: Eugene Sharygin -SPDX-FileCopyrightText: Jacob Clevenger SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors +SPDX-FileCopyrightText: Rob Cresswell SPDX-FileCopyrightText: Titus Wormer (https://wooorm.com) -SPDX-FileCopyrightText: ts-md5 developers This file is generated from multiple sources. Included packages: - @nextcloud/vue - version: 9.3.1 - license: AGPL-3.0-or-later -- @vueuse/components - - version: 14.1.0 - - license: MIT -- striptags - - version: 3.2.0 - - license: MIT -- ts-md5 - - version: 2.0.1 - - license: MIT - unist-builder - version: 4.0.0 - license: MIT @@ -32,3 +22,9 @@ This file is generated from multiple sources. Included packages: - unist-util-visit-parents - version: 6.0.2 - license: MIT +- vue-material-design-icons + - version: 5.3.1 + - license: MIT +- vue-router + - version: 4.6.3 + - license: MIT diff --git a/dist/NcNoteCard-CVhtNL04-DopLwvn9.chunk.css b/dist/AccountOutline-Bx-uhVVO.chunk.css similarity index 82% rename from dist/NcNoteCard-CVhtNL04-DopLwvn9.chunk.css rename to dist/AccountOutline-Bx-uhVVO.chunk.css index c7be771cb3277..7d12f8c445fbb 100644 --- a/dist/NcNoteCard-CVhtNL04-DopLwvn9.chunk.css +++ b/dist/AccountOutline-Bx-uhVVO.chunk.css @@ -1 +1 @@ -.material-design-icon[data-v-aaedb1c3]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.icon-vue[data-v-aaedb1c3]{display:flex;justify-content:center;align-items:center;min-width:var(--default-clickable-area);min-height:var(--default-clickable-area);opacity:1}.icon-vue.icon-vue--inline[data-v-aaedb1c3]{display:inline-flex!important;min-width:fit-content;min-height:fit-content;vertical-align:text-bottom}.icon-vue span[data-v-aaedb1c3]{line-height:0}.icon-vue[data-v-aaedb1c3] svg{fill:currentColor;width:var(--fb515064);height:var(--fb515064);max-width:var(--fb515064);max-height:var(--fb515064)}.icon-vue--directional[data-v-aaedb1c3] svg:dir(rtl){transform:scaleX(-1)}.material-design-icon[data-v-e3b1a10b]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.button-vue[data-v-e3b1a10b]{--button-size: var(--default-clickable-area);--button-inner-size: calc(var(--button-size) - 4px);--button-radius: var(--border-radius-element);--button-padding-default: calc(var(--default-grid-baseline) + var(--button-radius));--button-padding: var(--default-grid-baseline) var(--button-padding-default);color:var(--color-primary-element-light-text);background-color:var(--color-primary-element-light);border:1px solid var(--color-primary-element-light-hover);border-bottom-width:2px;border-radius:var(--button-radius);box-sizing:border-box;position:relative;width:fit-content;overflow:hidden;padding-block:1px 0;padding-inline:var(--button-padding);min-height:var(--button-size);min-width:var(--button-size);display:flex;align-items:center;justify-content:center;transition-property:color,border-color,background-color;transition-duration:.1s;transition-timing-function:linear;cursor:pointer;font-size:var(--default-font-size);font-weight:700}.button-vue--size-small[data-v-e3b1a10b]{--button-size: var(--clickable-area-small);--button-radius: var(--border-radius-small)}.button-vue--size-large[data-v-e3b1a10b]{--button-size: var(--clickable-area-large)}.button-vue[data-v-e3b1a10b] *{cursor:pointer}.button-vue[data-v-e3b1a10b]:focus{outline:none}.button-vue[data-v-e3b1a10b]:disabled{filter:saturate(.7);opacity:.5;cursor:default}.button-vue[data-v-e3b1a10b]:disabled *{cursor:default}.button-vue[data-v-e3b1a10b]:hover:not(:disabled){background-color:var(--color-primary-element-light-hover)}.button-vue[data-v-e3b1a10b]:active{background-color:var(--color-primary-element-light)}.button-vue__wrapper[data-v-e3b1a10b]{display:inline-flex;align-items:center;justify-content:center;width:100%}.button-vue--end .button-vue__wrapper[data-v-e3b1a10b]{justify-content:end}.button-vue--start .button-vue__wrapper[data-v-e3b1a10b]{justify-content:start}.button-vue--reverse .button-vue__wrapper[data-v-e3b1a10b]{flex-direction:row-reverse}.button-vue--reverse[data-v-e3b1a10b]{--button-padding: var(--button-padding-default) var(--default-grid-baseline)}.button-vue__icon[data-v-e3b1a10b]{--default-clickable-area: var(--button-inner-size);height:var(--button-inner-size);width:var(--button-inner-size);min-height:var(--button-inner-size);min-width:var(--button-inner-size);display:flex;justify-content:center;align-items:center}.button-vue__icon[data-v-e3b1a10b]:empty{display:none}.button-vue--size-small .button-vue__icon[data-v-e3b1a10b]>*{max-height:16px;max-width:16px}.button-vue--size-small .button-vue__icon[data-v-e3b1a10b] svg{height:16px;width:16px}.button-vue__text[data-v-e3b1a10b]{font-weight:700;margin-bottom:1px;padding:2px 0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.button-vue__text[data-v-e3b1a10b]:empty{display:none}.button-vue[data-v-e3b1a10b]:has(.button-vue__text:empty){--button-padding: var(--button-radius);line-height:1;width:var(--button-size)!important}.button-vue[data-v-e3b1a10b]:has(.button-vue__icon:empty){--button-padding: var(--button-padding-default)}.button-vue:has(.button-vue__icon:empty) .button-vue__text[data-v-e3b1a10b]{padding-inline:var(--default-grid-baseline)}.button-vue--wide[data-v-e3b1a10b]{width:100%}.button-vue[data-v-e3b1a10b]:focus-visible{outline:2px solid var(--color-main-text)!important;box-shadow:0 0 0 4px var(--color-main-background)!important}.button-vue:focus-visible.button-vue--vue-tertiary-on-primary[data-v-e3b1a10b]{outline:2px solid var(--color-primary-element-text);border-radius:var(--border-radius-element);background-color:transparent}.button-vue--primary[data-v-e3b1a10b]{background-color:var(--color-primary-element);border-color:var(--color-primary-element-hover);color:var(--color-primary-element-text)}.button-vue--primary[data-v-e3b1a10b]:hover:not(:disabled){background-color:var(--color-primary-element-hover)}.button-vue--primary[data-v-e3b1a10b]:active{background-color:var(--color-primary-element)}.button-vue--secondary[data-v-e3b1a10b]{background-color:var(--color-primary-element-light);border-color:var(--color-primary-element-light-hover);color:var(--color-primary-element-light-text)}.button-vue--secondary[data-v-e3b1a10b]:hover:not(:disabled){color:var(--color-primary-element-light-text);background-color:var(--color-primary-element-light-hover)}.button-vue--tertiary[data-v-e3b1a10b]{background-color:transparent;border-color:transparent;color:var(--color-main-text)}.button-vue--tertiary[data-v-e3b1a10b]:hover:not(:disabled){background-color:var(--color-background-hover)}.button-vue--tertiary-no-background[data-v-e3b1a10b]:hover:not(:disabled){background-color:transparent}.button-vue--tertiary-on-primary[data-v-e3b1a10b]{color:var(--color-primary-element-text)}.button-vue--tertiary-on-primary[data-v-e3b1a10b]:hover:not(:disabled){background-color:transparent}.button-vue--success[data-v-e3b1a10b]{border-color:var(--color-success-hover);background-color:var(--color-success);color:var(--color-success-text)}.button-vue--success[data-v-e3b1a10b]:hover:not(:disabled){background-color:var(--color-success-hover)}.button-vue--success[data-v-e3b1a10b]:active{background-color:var(--color-success)}.button-vue--warning[data-v-e3b1a10b]{border-color:var(--color-warning-hover);background-color:var(--color-warning);color:var(--color-warning-text)}.button-vue--warning[data-v-e3b1a10b]:hover:not(:disabled){background-color:var(--color-warning-hover)}.button-vue--warning[data-v-e3b1a10b]:active{background-color:var(--color-warning)}.button-vue--error[data-v-e3b1a10b]{border-color:var(--color-error-hover);background-color:var(--color-error);color:var(--color-error-text)}.button-vue--error[data-v-e3b1a10b]:hover:not(:disabled){background-color:var(--color-error-hover)}.button-vue--error[data-v-e3b1a10b]:active{background-color:var(--color-error)}.button-vue--legacy[data-v-e3b1a10b]{--button-inner-size: var(--button-size);border:none;padding-block:0}.button-vue--legacy.button-vue--error[data-v-e3b1a10b],.button-vue--legacy.button-vue--success[data-v-e3b1a10b],.button-vue--legacy.button-vue--warning[data-v-e3b1a10b]{color:#fff}.material-design-icon[data-v-7e4656f9]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.notecard[data-v-7e4656f9]{--note-card-icon-size: 20px;--note-card-padding: calc(2 * var(--default-grid-baseline));color:var(--color-main-text)!important;background-color:var(--note-background)!important;border-inline-start:var(--default-grid-baseline) solid var(--note-theme);border-radius:var(--border-radius-small);margin:1rem 0;padding:var(--note-card-padding);display:flex;flex-direction:row;gap:var(--note-card-padding)}.notecard__heading[data-v-7e4656f9]{font-size:var(--note-card-icon-size);font-weight:600}.notecard__icon[data-v-7e4656f9]{color:var(--note-theme)}.notecard__icon--heading[data-v-7e4656f9]{font-size:var(--note-card-icon-size);margin-block:calc((1lh - 1em)/2) auto}.notecard--success[data-v-7e4656f9]{--note-background: var(--color-success);--note-theme: var(--color-success-text)}.notecard--info[data-v-7e4656f9]{--note-background: var(--color-info);--note-theme: var(--color-info-text)}.notecard--error[data-v-7e4656f9]{--note-background: var(--color-error);--note-theme: var(--color-error-text)}.notecard--warning[data-v-7e4656f9]{--note-background: var(--color-warning);--note-theme: var(--color-warning-text)}.notecard--legacy[data-v-7e4656f9]{background-color:color-mix(in srgb,var(--note-background),var(--color-main-background) 80%)!important;color:var(--color-main-text)!important} +.material-design-icon[data-v-aaedb1c3]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.icon-vue[data-v-aaedb1c3]{display:flex;justify-content:center;align-items:center;min-width:var(--default-clickable-area);min-height:var(--default-clickable-area);opacity:1}.icon-vue.icon-vue--inline[data-v-aaedb1c3]{display:inline-flex!important;min-width:fit-content;min-height:fit-content;vertical-align:text-bottom}.icon-vue span[data-v-aaedb1c3]{line-height:0}.icon-vue[data-v-aaedb1c3] svg{fill:currentColor;width:var(--fb515064);height:var(--fb515064);max-width:var(--fb515064);max-height:var(--fb515064)}.icon-vue--directional[data-v-aaedb1c3] svg:dir(rtl){transform:scaleX(-1)}.material-design-icon[data-v-e3b1a10b]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.button-vue[data-v-e3b1a10b]{--button-size: var(--default-clickable-area);--button-inner-size: calc(var(--button-size) - 4px);--button-radius: var(--border-radius-element);--button-padding-default: calc(var(--default-grid-baseline) + var(--button-radius));--button-padding: var(--default-grid-baseline) var(--button-padding-default);color:var(--color-primary-element-light-text);background-color:var(--color-primary-element-light);border:1px solid var(--color-primary-element-light-hover);border-bottom-width:2px;border-radius:var(--button-radius);box-sizing:border-box;position:relative;width:fit-content;overflow:hidden;padding-block:1px 0;padding-inline:var(--button-padding);min-height:var(--button-size);min-width:var(--button-size);display:flex;align-items:center;justify-content:center;transition-property:color,border-color,background-color;transition-duration:.1s;transition-timing-function:linear;cursor:pointer;font-size:var(--default-font-size);font-weight:700}.button-vue--size-small[data-v-e3b1a10b]{--button-size: var(--clickable-area-small);--button-radius: var(--border-radius-small)}.button-vue--size-large[data-v-e3b1a10b]{--button-size: var(--clickable-area-large)}.button-vue[data-v-e3b1a10b] *{cursor:pointer}.button-vue[data-v-e3b1a10b]:focus{outline:none}.button-vue[data-v-e3b1a10b]:disabled{filter:saturate(.7);opacity:.5;cursor:default}.button-vue[data-v-e3b1a10b]:disabled *{cursor:default}.button-vue[data-v-e3b1a10b]:hover:not(:disabled){background-color:var(--color-primary-element-light-hover)}.button-vue[data-v-e3b1a10b]:active{background-color:var(--color-primary-element-light)}.button-vue__wrapper[data-v-e3b1a10b]{display:inline-flex;align-items:center;justify-content:center;width:100%}.button-vue--end .button-vue__wrapper[data-v-e3b1a10b]{justify-content:end}.button-vue--start .button-vue__wrapper[data-v-e3b1a10b]{justify-content:start}.button-vue--reverse .button-vue__wrapper[data-v-e3b1a10b]{flex-direction:row-reverse}.button-vue--reverse[data-v-e3b1a10b]{--button-padding: var(--button-padding-default) var(--default-grid-baseline)}.button-vue__icon[data-v-e3b1a10b]{--default-clickable-area: var(--button-inner-size);height:var(--button-inner-size);width:var(--button-inner-size);min-height:var(--button-inner-size);min-width:var(--button-inner-size);display:flex;justify-content:center;align-items:center}.button-vue__icon[data-v-e3b1a10b]:empty{display:none}.button-vue--size-small .button-vue__icon[data-v-e3b1a10b]>*{max-height:16px;max-width:16px}.button-vue--size-small .button-vue__icon[data-v-e3b1a10b] svg{height:16px;width:16px}.button-vue__text[data-v-e3b1a10b]{font-weight:700;margin-bottom:1px;padding:2px 0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.button-vue__text[data-v-e3b1a10b]:empty{display:none}.button-vue[data-v-e3b1a10b]:has(.button-vue__text:empty){--button-padding: var(--button-radius);line-height:1;width:var(--button-size)!important}.button-vue[data-v-e3b1a10b]:has(.button-vue__icon:empty){--button-padding: var(--button-padding-default)}.button-vue:has(.button-vue__icon:empty) .button-vue__text[data-v-e3b1a10b]{padding-inline:var(--default-grid-baseline)}.button-vue--wide[data-v-e3b1a10b]{width:100%}.button-vue[data-v-e3b1a10b]:focus-visible{outline:2px solid var(--color-main-text)!important;box-shadow:0 0 0 4px var(--color-main-background)!important}.button-vue:focus-visible.button-vue--vue-tertiary-on-primary[data-v-e3b1a10b]{outline:2px solid var(--color-primary-element-text);border-radius:var(--border-radius-element);background-color:transparent}.button-vue--primary[data-v-e3b1a10b]{background-color:var(--color-primary-element);border-color:var(--color-primary-element-hover);color:var(--color-primary-element-text)}.button-vue--primary[data-v-e3b1a10b]:hover:not(:disabled){background-color:var(--color-primary-element-hover)}.button-vue--primary[data-v-e3b1a10b]:active{background-color:var(--color-primary-element)}.button-vue--secondary[data-v-e3b1a10b]{background-color:var(--color-primary-element-light);border-color:var(--color-primary-element-light-hover);color:var(--color-primary-element-light-text)}.button-vue--secondary[data-v-e3b1a10b]:hover:not(:disabled){color:var(--color-primary-element-light-text);background-color:var(--color-primary-element-light-hover)}.button-vue--tertiary[data-v-e3b1a10b]{background-color:transparent;border-color:transparent;color:var(--color-main-text)}.button-vue--tertiary[data-v-e3b1a10b]:hover:not(:disabled){background-color:var(--color-background-hover)}.button-vue--tertiary-no-background[data-v-e3b1a10b]:hover:not(:disabled){background-color:transparent}.button-vue--tertiary-on-primary[data-v-e3b1a10b]{color:var(--color-primary-element-text)}.button-vue--tertiary-on-primary[data-v-e3b1a10b]:hover:not(:disabled){background-color:transparent}.button-vue--success[data-v-e3b1a10b]{border-color:var(--color-success-hover);background-color:var(--color-success);color:var(--color-success-text)}.button-vue--success[data-v-e3b1a10b]:hover:not(:disabled){background-color:var(--color-success-hover)}.button-vue--success[data-v-e3b1a10b]:active{background-color:var(--color-success)}.button-vue--warning[data-v-e3b1a10b]{border-color:var(--color-warning-hover);background-color:var(--color-warning);color:var(--color-warning-text)}.button-vue--warning[data-v-e3b1a10b]:hover:not(:disabled){background-color:var(--color-warning-hover)}.button-vue--warning[data-v-e3b1a10b]:active{background-color:var(--color-warning)}.button-vue--error[data-v-e3b1a10b]{border-color:var(--color-error-hover);background-color:var(--color-error);color:var(--color-error-text)}.button-vue--error[data-v-e3b1a10b]:hover:not(:disabled){background-color:var(--color-error-hover)}.button-vue--error[data-v-e3b1a10b]:active{background-color:var(--color-error)}.button-vue--legacy[data-v-e3b1a10b]{--button-inner-size: var(--button-size);border:none;padding-block:0}.button-vue--legacy.button-vue--error[data-v-e3b1a10b],.button-vue--legacy.button-vue--success[data-v-e3b1a10b],.button-vue--legacy.button-vue--warning[data-v-e3b1a10b]{color:#fff} diff --git a/dist/AuthMechanismRsa-BQFNdXT1.chunk.mjs b/dist/AuthMechanismRsa-BQFNdXT1.chunk.mjs new file mode 100644 index 0000000000000..64093087a6c7e --- /dev/null +++ b/dist/AuthMechanismRsa-BQFNdXT1.chunk.mjs @@ -0,0 +1,2 @@ +import{b as g,p as y,q as v,c as p,u as o,o as n,L as h,w as _,g as V,t as k,r as x,s as M,j as d,e as f,F as q,C as w,E as U,G as j}from"./runtime-dom.esm-bundler-DdtEg5E9.chunk.mjs";import{c as C}from"./index-DVH_Kr3Q.chunk.mjs";import{a as E}from"./index-JpgrUA2Z-BXxDc_if.chunk.mjs";import{t as s}from"./string_decoder-vT-u9WbV.chunk.mjs";import{g as S}from"./createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs";import{b as A}from"./AccountOutline-BlW-6JqD.chunk.mjs";import{N}from"./NcSelect-Czzsi3P_-BKaYvmLF.chunk.mjs";import{N as z}from"./NcCheckboxRadioSwitch-BCSKF7Tk-B1Kcz6gU.chunk.mjs";import{N as B}from"./NcPasswordField-djttkA5Q-Dz7uhHFj.chunk.mjs";import{_ as G}from"./TrashCanOutline-DglPBhgI.chunk.mjs";import{a as c,C as b}from"./types-BqUbz9dh.chunk.mjs";import{l as K}from"./logger-resIultJ.chunk.mjs";const L=g({__name:"ConfigurationEntry",props:y({configKey:{},configOption:{}},{modelValue:{type:[String,Boolean],default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const a=v(e,"modelValue");return(t,i)=>e.configOption.type!==o(c).Boolean?(n(),p(h(e.configOption.type===o(c).Password?o(B):o(G)),{key:0,modelValue:a.value,"onUpdate:modelValue":i[0]||(i[0]=l=>a.value=l),name:e.configKey,required:!(e.configOption.flags&o(b).Optional),label:e.configOption.value,title:e.configOption.tooltip},null,8,["modelValue","name","required","label","title"])):(n(),p(o(z),{key:1,modelValue:a.value,"onUpdate:modelValue":i[1]||(i[1]=l=>a.value=l),type:"switch",title:e.configOption.tooltip},{default:_(()=>[V(k(e.configOption.value),1)]),_:1},8,["modelValue","title"]))}}),P=g({__name:"AuthMechanismRsa",props:y({authMechanism:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const a=v(e,"modelValue"),t=x();M(t,()=>{t.value&&(a.value.private_key="",a.value.public_key="")});async function i(){try{const{data:l}=await C.post(S("/apps/files_external/ajax/public_key.php"),{keyLength:t.value});a.value.private_key=l.data.private_key,a.value.public_key=l.data.public_key}catch(l){K.error("Error generating RSA key pair",{error:l}),E(s("files_external","Error generating key pair"))}}return(l,m)=>(n(),d("div",null,[(n(!0),d(q,null,w(e.authMechanism.configuration,(r,u)=>U((n(),p(L,{key:r.value,modelValue:a.value[u],"onUpdate:modelValue":O=>a.value[u]=O,"config-key":u,"config-option":r},null,8,["modelValue","onUpdate:modelValue","config-key","config-option"])),[[j,!(r.flags&o(b).Hidden)]])),128)),f(o(N),{modelValue:t.value,"onUpdate:modelValue":m[0]||(m[0]=r=>t.value=r),clearable:!1,"input-label":o(s)("files_external","Key size"),options:[1024,2048,4096],required:""},null,8,["modelValue","input-label"]),f(o(A),{disabled:!t.value,wide:"",onClick:i},{default:_(()=>[V(k(o(s)("files_external","Generate keys")),1)]),_:1},8,["disabled"])]))}}),$=Object.freeze(Object.defineProperty({__proto__:null,default:P},Symbol.toStringTag,{value:"Module"}));export{$ as A,L as _}; +//# sourceMappingURL=AuthMechanismRsa-BQFNdXT1.chunk.mjs.map diff --git a/dist/AuthMechanismRsa-e40gyg0q.chunk.mjs.license b/dist/AuthMechanismRsa-BQFNdXT1.chunk.mjs.license similarity index 100% rename from dist/AuthMechanismRsa-e40gyg0q.chunk.mjs.license rename to dist/AuthMechanismRsa-BQFNdXT1.chunk.mjs.license diff --git a/dist/AuthMechanismRsa-e40gyg0q.chunk.mjs.map b/dist/AuthMechanismRsa-BQFNdXT1.chunk.mjs.map similarity index 97% rename from dist/AuthMechanismRsa-e40gyg0q.chunk.mjs.map rename to dist/AuthMechanismRsa-BQFNdXT1.chunk.mjs.map index 8e0ae1a30bc77..a0e853666d5a9 100644 --- a/dist/AuthMechanismRsa-e40gyg0q.chunk.mjs.map +++ b/dist/AuthMechanismRsa-BQFNdXT1.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"AuthMechanismRsa-e40gyg0q.chunk.mjs","sources":["../build/frontend/apps/files_external/src/components/AddExternalStorageDialog/ConfigurationEntry.vue","../build/frontend/apps/files_external/src/views/AuthMechanismRsa.vue"],"sourcesContent":["\n\n\n\n\n","\n\n\n\n\n"],"names":["value","_useModel","__props","_unref","ConfigurationType","_createBlock","_resolveDynamicComponent","NcPasswordField","NcTextField","$event","ConfigurationFlag","NcCheckboxRadioSwitch","_createTextVNode","_toDisplayString","modelValue","keySize","ref","watch","generateKeys","data","axios","generateUrl","error","logger","showError","t","_createElementBlock","_openBlock","_Fragment","configOption","configKey","ConfigurationEntry","_vShow","_createVNode","NcSelect","NcButton"],"mappings":"s/BAaA,MAAMA,EAAQC,EAA6BC,EAAC,YAA6B,eAWjEA,EAAA,aAAa,OAASC,EAAAC,CAAA,EAAkB,aAF/CC,EAOiCC,EAN3BJ,EAAA,aAAa,OAASC,EAAAC,CAAA,EAAkB,SAAWD,EAAAI,CAAA,EAAkBJ,EAAAK,CAAA,CAAW,EAAA,kBAE5ER,EAAA,2CAAAA,EAAK,MAAAS,GACb,KAAMP,EAAA,UACN,WAAYA,EAAA,aAAa,MAAQC,EAAAO,CAAA,EAAkB,UACnD,MAAOR,EAAA,aAAa,MACpB,MAAOA,EAAA,aAAa,OAAA,iEACtBG,EAMwBF,EAAAQ,CAAA,EAAA,kBAJdX,EAAA,2CAAAA,EAAK,MAAAS,GACd,KAAK,SACJ,MAAOP,EAAA,aAAa,OAAA,aACrB,IAAwB,CAArBU,EAAAC,EAAAX,EAAA,aAAa,KAAK,EAAA,CAAA,CAAA,mLChBvB,MAAMY,EAAab,EAA6CC,EAAA,YAAmB,EAM7Ea,EAAUC,EAAA,EAChBC,EAAMF,EAAS,IAAM,CAChBA,EAAQ,QACXD,EAAW,MAAM,YAAc,GAC/BA,EAAW,MAAM,WAAa,GAEhC,CAAC,EAKD,eAAeI,GAAe,CAC7B,GAAI,CAEH,KAAM,CAAE,KAAAC,GAAS,MAAMC,EAAM,KAAKC,EAAY,0CAA0C,EAAG,CAC1F,UAAWN,EAAQ,KAAA,CACnB,EAEDD,EAAW,MAAM,YAAcK,EAAK,KAAK,YACzCL,EAAW,MAAM,WAAaK,EAAK,KAAK,UACzC,OAASG,EAAO,CACfC,EAAO,MAAM,gCAAiC,CAAE,MAAAD,CAAA,CAAO,EACvDE,EAAUC,EAAE,iBAAkB,2BAA2B,CAAC,CAC3D,CACD,mBAICC,EAsBM,MAAA,KAAA,EArBLC,EAAA,EAAA,EAAAD,EAMiCE,SALE1B,EAAA,cAAc,cAAa,CAAtD2B,EAAcC,WADtBzB,EAMiC0B,EAAA,CAH/B,IAAKF,EAAa,MACV,WAAAf,EAAA,MAAWgB,CAAS,EAApB,sBAAArB,GAAAK,EAAA,MAAWgB,CAAS,EAAArB,EAC5B,aAAYqB,EACZ,gBAAeD,CAAA,8EAJN,CAAAG,EAAA,EAAAH,EAAa,MAAQ1B,EAAAO,CAAA,EAAkB,OAAM,CAAA,UAMxDuB,EAKY9B,EAAA+B,CAAA,EAAA,YAJFnB,EAAA,2CAAAA,EAAO,MAAAN,GACf,UAAW,GACX,cAAaN,EAAAsB,CAAA,EAAC,iBAAA,UAAA,EACd,QAAS,CAAA,KAAA,KAAA,IAAA,EACV,SAAA,EAAA,uCAEDQ,EAKW9B,EAAAgC,CAAA,EAAA,CAJT,UAAWpB,EAAA,MACZ,KAAA,GACC,QAAOG,CAAA,aACR,IAA0C,KAAvCf,EAAAsB,CAAA,EAAC,iBAAA,eAAA,CAAA,EAAA,CAAA,CAAA"} \ No newline at end of file +{"version":3,"file":"AuthMechanismRsa-BQFNdXT1.chunk.mjs","sources":["../build/frontend/apps/files_external/src/components/AddExternalStorageDialog/ConfigurationEntry.vue","../build/frontend/apps/files_external/src/views/AuthMechanismRsa.vue"],"sourcesContent":["\n\n\n\n\n","\n\n\n\n\n"],"names":["value","_useModel","__props","_unref","ConfigurationType","_createBlock","_resolveDynamicComponent","NcPasswordField","NcTextField","$event","ConfigurationFlag","NcCheckboxRadioSwitch","_createTextVNode","_toDisplayString","modelValue","keySize","ref","watch","generateKeys","data","axios","generateUrl","error","logger","showError","t","_createElementBlock","_openBlock","_Fragment","configOption","configKey","ConfigurationEntry","_vShow","_createVNode","NcSelect","NcButton"],"mappings":"s+BAaA,MAAMA,EAAQC,EAA6BC,EAAC,YAA6B,eAWjEA,EAAA,aAAa,OAASC,EAAAC,CAAA,EAAkB,aAF/CC,EAOiCC,EAN3BJ,EAAA,aAAa,OAASC,EAAAC,CAAA,EAAkB,SAAWD,EAAAI,CAAA,EAAkBJ,EAAAK,CAAA,CAAW,EAAA,kBAE5ER,EAAA,2CAAAA,EAAK,MAAAS,GACb,KAAMP,EAAA,UACN,WAAYA,EAAA,aAAa,MAAQC,EAAAO,CAAA,EAAkB,UACnD,MAAOR,EAAA,aAAa,MACpB,MAAOA,EAAA,aAAa,OAAA,iEACtBG,EAMwBF,EAAAQ,CAAA,EAAA,kBAJdX,EAAA,2CAAAA,EAAK,MAAAS,GACd,KAAK,SACJ,MAAOP,EAAA,aAAa,OAAA,aACrB,IAAwB,CAArBU,EAAAC,EAAAX,EAAA,aAAa,KAAK,EAAA,CAAA,CAAA,mLChBvB,MAAMY,EAAab,EAA6CC,EAAA,YAAmB,EAM7Ea,EAAUC,EAAA,EAChBC,EAAMF,EAAS,IAAM,CAChBA,EAAQ,QACXD,EAAW,MAAM,YAAc,GAC/BA,EAAW,MAAM,WAAa,GAEhC,CAAC,EAKD,eAAeI,GAAe,CAC7B,GAAI,CAEH,KAAM,CAAE,KAAAC,GAAS,MAAMC,EAAM,KAAKC,EAAY,0CAA0C,EAAG,CAC1F,UAAWN,EAAQ,KAAA,CACnB,EAEDD,EAAW,MAAM,YAAcK,EAAK,KAAK,YACzCL,EAAW,MAAM,WAAaK,EAAK,KAAK,UACzC,OAASG,EAAO,CACfC,EAAO,MAAM,gCAAiC,CAAE,MAAAD,CAAA,CAAO,EACvDE,EAAUC,EAAE,iBAAkB,2BAA2B,CAAC,CAC3D,CACD,mBAICC,EAsBM,MAAA,KAAA,EArBLC,EAAA,EAAA,EAAAD,EAMiCE,SALE1B,EAAA,cAAc,cAAa,CAAtD2B,EAAcC,WADtBzB,EAMiC0B,EAAA,CAH/B,IAAKF,EAAa,MACV,WAAAf,EAAA,MAAWgB,CAAS,EAApB,sBAAArB,GAAAK,EAAA,MAAWgB,CAAS,EAAArB,EAC5B,aAAYqB,EACZ,gBAAeD,CAAA,8EAJN,CAAAG,EAAA,EAAAH,EAAa,MAAQ1B,EAAAO,CAAA,EAAkB,OAAM,CAAA,UAMxDuB,EAKY9B,EAAA+B,CAAA,EAAA,YAJFnB,EAAA,2CAAAA,EAAO,MAAAN,GACf,UAAW,GACX,cAAaN,EAAAsB,CAAA,EAAC,iBAAA,UAAA,EACd,QAAS,CAAA,KAAA,KAAA,IAAA,EACV,SAAA,EAAA,uCAEDQ,EAKW9B,EAAAgC,CAAA,EAAA,CAJT,UAAWpB,EAAA,MACZ,KAAA,GACC,QAAOG,CAAA,aACR,IAA0C,KAAvCf,EAAAsB,CAAA,EAAC,iBAAA,eAAA,CAAA,EAAA,CAAA,CAAA"} \ No newline at end of file diff --git a/dist/AuthMechanismRsa-e40gyg0q.chunk.mjs.map.license b/dist/AuthMechanismRsa-BQFNdXT1.chunk.mjs.map.license similarity index 100% rename from dist/AuthMechanismRsa-e40gyg0q.chunk.mjs.map.license rename to dist/AuthMechanismRsa-BQFNdXT1.chunk.mjs.map.license diff --git a/dist/AuthMechanismRsa-e40gyg0q.chunk.mjs b/dist/AuthMechanismRsa-e40gyg0q.chunk.mjs deleted file mode 100644 index 2bfa155da7a2d..0000000000000 --- a/dist/AuthMechanismRsa-e40gyg0q.chunk.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import{b as g,p as y,q as v,c as p,u as o,o as n,N as h,w as _,g as V,t as k,r as x,s as M,j as d,e as f,F as q,C as w,E as U,G as j}from"./runtime-dom.esm-bundler-BrYCUcZF.chunk.mjs";import{c as C}from"./index-BfylblLb.chunk.mjs";import{a as E}from"./index-JpgrUA2Z-BFiKKJ1W.chunk.mjs";import{t as s}from"./translation-DoG5ZELJ-gw0g4US-.chunk.mjs";import{g as N}from"./createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs";import{c as S}from"./NcNoteCard-CVhtNL04-hwuc093N.chunk.mjs";import{N as A}from"./NcSelect-Czzsi3P_-DLFUGW7z.chunk.mjs";import{N as K}from"./NcCheckboxRadioSwitch-BCSKF7Tk-yPckcGKs.chunk.mjs";import{N as z}from"./NcPasswordField-djttkA5Q-2g87vOpY.chunk.mjs";import{_ as B}from"./TrashCanOutline-CvWRJ8GE.chunk.mjs";import{a as c,C as b}from"./types-BoPN4zt3.chunk.mjs";import{l as G}from"./logger-CrDakPzW.chunk.mjs";const P=g({__name:"ConfigurationEntry",props:y({configKey:{},configOption:{}},{modelValue:{type:[String,Boolean],default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const a=v(e,"modelValue");return(t,i)=>e.configOption.type!==o(c).Boolean?(n(),p(h(e.configOption.type===o(c).Password?o(z):o(B)),{key:0,modelValue:a.value,"onUpdate:modelValue":i[0]||(i[0]=l=>a.value=l),name:e.configKey,required:!(e.configOption.flags&o(b).Optional),label:e.configOption.value,title:e.configOption.tooltip},null,8,["modelValue","name","required","label","title"])):(n(),p(o(K),{key:1,modelValue:a.value,"onUpdate:modelValue":i[1]||(i[1]=l=>a.value=l),type:"switch",title:e.configOption.tooltip},{default:_(()=>[V(k(e.configOption.value),1)]),_:1},8,["modelValue","title"]))}}),R=g({__name:"AuthMechanismRsa",props:y({authMechanism:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const a=v(e,"modelValue"),t=x();M(t,()=>{t.value&&(a.value.private_key="",a.value.public_key="")});async function i(){try{const{data:l}=await C.post(N("/apps/files_external/ajax/public_key.php"),{keyLength:t.value});a.value.private_key=l.data.private_key,a.value.public_key=l.data.public_key}catch(l){G.error("Error generating RSA key pair",{error:l}),E(s("files_external","Error generating key pair"))}}return(l,m)=>(n(),d("div",null,[(n(!0),d(q,null,w(e.authMechanism.configuration,(r,u)=>U((n(),p(P,{key:r.value,modelValue:a.value[u],"onUpdate:modelValue":O=>a.value[u]=O,"config-key":u,"config-option":r},null,8,["modelValue","onUpdate:modelValue","config-key","config-option"])),[[j,!(r.flags&o(b).Hidden)]])),128)),f(o(A),{modelValue:t.value,"onUpdate:modelValue":m[0]||(m[0]=r=>t.value=r),clearable:!1,"input-label":o(s)("files_external","Key size"),options:[1024,2048,4096],required:""},null,8,["modelValue","input-label"]),f(o(S),{disabled:!t.value,wide:"",onClick:i},{default:_(()=>[V(k(o(s)("files_external","Generate keys")),1)]),_:1},8,["disabled"])]))}}),$=Object.freeze(Object.defineProperty({__proto__:null,default:R},Symbol.toStringTag,{value:"Module"}));export{$ as A,P as _}; -//# sourceMappingURL=AuthMechanismRsa-e40gyg0q.chunk.mjs.map diff --git a/dist/ContentCopy-DVkZwwZt.chunk.mjs b/dist/ContentCopy-s5fS3y5J.chunk.mjs similarity index 77% rename from dist/ContentCopy-DVkZwwZt.chunk.mjs rename to dist/ContentCopy-s5fS3y5J.chunk.mjs index 75e15bc6e9d3a..a8a43499890ce 100644 --- a/dist/ContentCopy-DVkZwwZt.chunk.mjs +++ b/dist/ContentCopy-s5fS3y5J.chunk.mjs @@ -1,2 +1,2 @@ -import{r as g,_ as p,t as h}from"./createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs";import{b as C,j as i,o as e,k as o,l as s,m as _,g as k,t as r,u as d,e as y,z as f}from"./runtime-dom.esm-bundler-BrYCUcZF.chunk.mjs";import{a as H}from"./index-xFugdZPW.chunk.mjs";const b={name:"HelpCircleIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},A=["aria-hidden","aria-label"],v=["fill","width","height"],z={d:"M15.07,11.25L14.17,12.17C13.45,12.89 13,13.5 13,15H11V14.5C11,13.39 11.45,12.39 12.17,11.67L13.41,10.41C13.78,10.05 14,9.55 14,9C14,7.89 13.1,7 12,7A2,2 0 0,0 10,9H8A4,4 0 0,1 12,5A4,4 0 0,1 16,9C16,9.88 15.64,10.67 15.07,11.25M13,19H11V17H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12C22,6.47 17.5,2 12,2Z"},V={key:0};function w(a,l,t,c,m,u){return e(),i("span",f(a.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon help-circle-icon",role:"img",onClick:l[0]||(l[0]=n=>a.$emit("click",n))}),[(e(),i("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[o("path",z,[t.title?(e(),i("title",V,r(t.title),1)):s("",!0)])],8,v))],16,A)}const M=p(b,[["render",w]]);g();const S={class:"settings-section"},x={class:"settings-section__name"},$=["aria-label","href","title"],I={key:0,class:"settings-section__desc"},N=C({__name:"NcSettingsSection",props:{name:{},description:{default:""},docUrl:{default:""}},setup(a){const l=h("External documentation");return(t,c)=>(e(),i("div",S,[o("h2",x,[k(r(t.name)+" ",1),t.docUrl?(e(),i("a",{key:0,"aria-label":d(l),class:"settings-section__info",href:t.docUrl,rel:"noreferrer nofollow",target:"_blank",title:d(l)},[y(M,{size:20})],8,$)):s("",!0)]),t.description?(e(),i("p",I,r(t.description),1)):s("",!0),_(t.$slots,"default",{},void 0,!0)]))}}),T=p(N,[["__scopeId","data-v-9cedb949"]]),U={name:"ContentCopyIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},B=["aria-hidden","aria-label"],L=["fill","width","height"],Z={d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"},j={key:0};function E(a,l,t,c,m,u){return e(),i("span",f(a.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon content-copy-icon",role:"img",onClick:l[0]||(l[0]=n=>a.$emit("click",n))}),[(e(),i("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[o("path",Z,[t.title?(e(),i("title",j,r(t.title),1)):s("",!0)])],8,L))],16,B)}const F=H(U,[["render",E]]);export{F as I,T as N}; -//# sourceMappingURL=ContentCopy-DVkZwwZt.chunk.mjs.map +import{r as g,_ as p,b as h}from"./createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs";import{b as C,j as i,o as e,k as o,l as s,m as _,g as b,t as r,u as d,e as k,z as f}from"./runtime-dom.esm-bundler-DdtEg5E9.chunk.mjs";import{a as y}from"./index-DCpg1aui.chunk.mjs";const H={name:"HelpCircleIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},A=["aria-hidden","aria-label"],v=["fill","width","height"],z={d:"M15.07,11.25L14.17,12.17C13.45,12.89 13,13.5 13,15H11V14.5C11,13.39 11.45,12.39 12.17,11.67L13.41,10.41C13.78,10.05 14,9.55 14,9C14,7.89 13.1,7 12,7A2,2 0 0,0 10,9H8A4,4 0 0,1 12,5A4,4 0 0,1 16,9C16,9.88 15.64,10.67 15.07,11.25M13,19H11V17H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12C22,6.47 17.5,2 12,2Z"},V={key:0};function w(a,l,t,c,m,u){return e(),i("span",f(a.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon help-circle-icon",role:"img",onClick:l[0]||(l[0]=n=>a.$emit("click",n))}),[(e(),i("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[o("path",z,[t.title?(e(),i("title",V,r(t.title),1)):s("",!0)])],8,v))],16,A)}const M=p(H,[["render",w]]);g();const S={class:"settings-section"},x={class:"settings-section__name"},$=["aria-label","href","title"],I={key:0,class:"settings-section__desc"},N=C({__name:"NcSettingsSection",props:{name:{},description:{default:""},docUrl:{default:""}},setup(a){const l=h("External documentation");return(t,c)=>(e(),i("div",S,[o("h2",x,[b(r(t.name)+" ",1),t.docUrl?(e(),i("a",{key:0,"aria-label":d(l),class:"settings-section__info",href:t.docUrl,rel:"noreferrer nofollow",target:"_blank",title:d(l)},[k(M,{size:20})],8,$)):s("",!0)]),t.description?(e(),i("p",I,r(t.description),1)):s("",!0),_(t.$slots,"default",{},void 0,!0)]))}}),T=p(N,[["__scopeId","data-v-9cedb949"]]),U={name:"ContentCopyIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},B=["aria-hidden","aria-label"],L=["fill","width","height"],Z={d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"},j={key:0};function E(a,l,t,c,m,u){return e(),i("span",f(a.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon content-copy-icon",role:"img",onClick:l[0]||(l[0]=n=>a.$emit("click",n))}),[(e(),i("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[o("path",Z,[t.title?(e(),i("title",j,r(t.title),1)):s("",!0)])],8,L))],16,B)}const F=y(U,[["render",E]]);export{F as I,T as N}; +//# sourceMappingURL=ContentCopy-s5fS3y5J.chunk.mjs.map diff --git a/dist/ContentCopy-DVkZwwZt.chunk.mjs.license b/dist/ContentCopy-s5fS3y5J.chunk.mjs.license similarity index 100% rename from dist/ContentCopy-DVkZwwZt.chunk.mjs.license rename to dist/ContentCopy-s5fS3y5J.chunk.mjs.license diff --git a/dist/ContentCopy-DVkZwwZt.chunk.mjs.map b/dist/ContentCopy-s5fS3y5J.chunk.mjs.map similarity index 99% rename from dist/ContentCopy-DVkZwwZt.chunk.mjs.map rename to dist/ContentCopy-s5fS3y5J.chunk.mjs.map index 23b9f82a4ad44..6d1ce82b963bf 100644 --- a/dist/ContentCopy-DVkZwwZt.chunk.mjs.map +++ b/dist/ContentCopy-s5fS3y5J.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"ContentCopy-DVkZwwZt.chunk.mjs","sources":["../node_modules/@nextcloud/vue/dist/chunks/NcSettingsSection-DYXU4pOK.mjs","../node_modules/vue-material-design-icons/ContentCopy.vue"],"sourcesContent":["import '../assets/NcSettingsSection-f5rBJsKJ.css';\nimport { createElementBlock, openBlock, mergeProps, createElementVNode, createCommentVNode, toDisplayString, defineComponent, renderSlot, createTextVNode, unref, createVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { r as register, a as t } from \"./_l10n-DrTiip5c.mjs\";\nconst _sfc_main$1 = {\n name: \"HelpCircleIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$1 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$1 = { d: \"M15.07,11.25L14.17,12.17C13.45,12.89 13,13.5 13,15H11V14.5C11,13.39 11.45,12.39 12.17,11.67L13.41,10.41C13.78,10.05 14,9.55 14,9C14,7.89 13.1,7 12,7A2,2 0 0,0 10,9H8A4,4 0 0,1 12,5A4,4 0 0,1 16,9C16,9.88 15.64,10.67 15.07,11.25M13,19H11V17H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12C22,6.47 17.5,2 12,2Z\" };\nconst _hoisted_4$1 = { key: 0 };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon help-circle-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$1, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$1, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$1))\n ], 16, _hoisted_1$1);\n}\nconst HelpCircle = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render]]);\nregister();\nconst _hoisted_1 = { class: \"settings-section\" };\nconst _hoisted_2 = { class: \"settings-section__name\" };\nconst _hoisted_3 = [\"aria-label\", \"href\", \"title\"];\nconst _hoisted_4 = {\n key: 0,\n class: \"settings-section__desc\"\n};\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcSettingsSection\",\n props: {\n name: {},\n description: { default: \"\" },\n docUrl: { default: \"\" }\n },\n setup(__props) {\n const ariaLabel = t(\"External documentation\");\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1, [\n createElementVNode(\"h2\", _hoisted_2, [\n createTextVNode(toDisplayString(_ctx.name) + \" \", 1),\n _ctx.docUrl ? (openBlock(), createElementBlock(\"a\", {\n key: 0,\n \"aria-label\": unref(ariaLabel),\n class: \"settings-section__info\",\n href: _ctx.docUrl,\n rel: \"noreferrer nofollow\",\n target: \"_blank\",\n title: unref(ariaLabel)\n }, [\n createVNode(HelpCircle, { size: 20 })\n ], 8, _hoisted_3)) : createCommentVNode(\"\", true)\n ]),\n _ctx.description ? (openBlock(), createElementBlock(\"p\", _hoisted_4, toDisplayString(_ctx.description), 1)) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ]);\n };\n }\n});\nconst NcSettingsSection = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-9cedb949\"]]);\nexport {\n NcSettingsSection as N\n};\n//# sourceMappingURL=NcSettingsSection-DYXU4pOK.mjs.map\n","\n\n"],"names":["_sfc_main$1","_hoisted_1$1","_hoisted_2$1","_hoisted_3$1","_hoisted_4$1","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","openBlock","createElementBlock","mergeProps","$event","createElementVNode","toDisplayString","createCommentVNode","HelpCircle","_export_sfc","register","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_sfc_main","defineComponent","__props","ariaLabel","t","createTextVNode","unref","createVNode","renderSlot","NcSettingsSection","_createElementBlock","_mergeProps","_createElementVNode","_openBlock"],"mappings":"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","x_google_ignoreList":[0,1]} \ No newline at end of file +{"version":3,"file":"ContentCopy-s5fS3y5J.chunk.mjs","sources":["../node_modules/@nextcloud/vue/dist/chunks/NcSettingsSection-DYXU4pOK.mjs","../node_modules/vue-material-design-icons/ContentCopy.vue"],"sourcesContent":["import '../assets/NcSettingsSection-f5rBJsKJ.css';\nimport { createElementBlock, openBlock, mergeProps, createElementVNode, createCommentVNode, toDisplayString, defineComponent, renderSlot, createTextVNode, unref, createVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { r as register, a as t } from \"./_l10n-DrTiip5c.mjs\";\nconst _sfc_main$1 = {\n name: \"HelpCircleIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$1 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$1 = { d: \"M15.07,11.25L14.17,12.17C13.45,12.89 13,13.5 13,15H11V14.5C11,13.39 11.45,12.39 12.17,11.67L13.41,10.41C13.78,10.05 14,9.55 14,9C14,7.89 13.1,7 12,7A2,2 0 0,0 10,9H8A4,4 0 0,1 12,5A4,4 0 0,1 16,9C16,9.88 15.64,10.67 15.07,11.25M13,19H11V17H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12C22,6.47 17.5,2 12,2Z\" };\nconst _hoisted_4$1 = { key: 0 };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon help-circle-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$1, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$1, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$1))\n ], 16, _hoisted_1$1);\n}\nconst HelpCircle = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render]]);\nregister();\nconst _hoisted_1 = { class: \"settings-section\" };\nconst _hoisted_2 = { class: \"settings-section__name\" };\nconst _hoisted_3 = [\"aria-label\", \"href\", \"title\"];\nconst _hoisted_4 = {\n key: 0,\n class: \"settings-section__desc\"\n};\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcSettingsSection\",\n props: {\n name: {},\n description: { default: \"\" },\n docUrl: { default: \"\" }\n },\n setup(__props) {\n const ariaLabel = t(\"External documentation\");\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1, [\n createElementVNode(\"h2\", _hoisted_2, [\n createTextVNode(toDisplayString(_ctx.name) + \" \", 1),\n _ctx.docUrl ? (openBlock(), createElementBlock(\"a\", {\n key: 0,\n \"aria-label\": unref(ariaLabel),\n class: \"settings-section__info\",\n href: _ctx.docUrl,\n rel: \"noreferrer nofollow\",\n target: \"_blank\",\n title: unref(ariaLabel)\n }, [\n createVNode(HelpCircle, { size: 20 })\n ], 8, _hoisted_3)) : createCommentVNode(\"\", true)\n ]),\n _ctx.description ? (openBlock(), createElementBlock(\"p\", _hoisted_4, toDisplayString(_ctx.description), 1)) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ]);\n };\n }\n});\nconst NcSettingsSection = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-9cedb949\"]]);\nexport {\n NcSettingsSection as N\n};\n//# sourceMappingURL=NcSettingsSection-DYXU4pOK.mjs.map\n","\n\n"],"names":["_sfc_main$1","_hoisted_1$1","_hoisted_2$1","_hoisted_3$1","_hoisted_4$1","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","openBlock","createElementBlock","mergeProps","$event","createElementVNode","toDisplayString","createCommentVNode","HelpCircle","_export_sfc","register","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_sfc_main","defineComponent","__props","ariaLabel","t","createTextVNode","unref","createVNode","renderSlot","NcSettingsSection","_createElementBlock","_mergeProps","_createElementVNode","_openBlock"],"mappings":"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","x_google_ignoreList":[0,1]} \ No newline at end of file diff --git a/dist/ContentCopy-DVkZwwZt.chunk.mjs.map.license b/dist/ContentCopy-s5fS3y5J.chunk.mjs.map.license similarity index 100% rename from dist/ContentCopy-DVkZwwZt.chunk.mjs.map.license rename to dist/ContentCopy-s5fS3y5J.chunk.mjs.map.license diff --git a/dist/CredentialsDialog-DRqXEuS4.chunk.mjs b/dist/CredentialsDialog-DRqXEuS4.chunk.mjs deleted file mode 100644 index e032d055c9150..0000000000000 --- a/dist/CredentialsDialog-DRqXEuS4.chunk.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import{t}from"./translation-DoG5ZELJ-gw0g4US-.chunk.mjs";import{N as m}from"./index-JpgrUA2Z-BFiKKJ1W.chunk.mjs";import{N as d}from"./NcNoteCard-CVhtNL04-hwuc093N.chunk.mjs";import{N as p}from"./NcPasswordField-djttkA5Q-2g87vOpY.chunk.mjs";import{_ as c}from"./TrashCanOutline-CvWRJ8GE.chunk.mjs";import{b as g,r as n,c as f,o as h,w as x,e as s,u as e}from"./runtime-dom.esm-bundler-BrYCUcZF.chunk.mjs";import"./index-6_gsQFyp.chunk.mjs";import"./index-xFugdZPW.chunk.mjs";import"./createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs";import"./mdi-D55n0uzy.chunk.mjs";import"./index-BfylblLb.chunk.mjs";import"./string_decoder-BO00msnV.chunk.mjs";import"./NcInputField-Bwsh2aHY-CHbAfY0u.chunk.mjs";const D=g({__name:"CredentialsDialog",emits:["close"],setup(_){const o=n(""),r=n(""),u=[{label:t("files_external","Confirm"),type:"submit",variant:"primary"}];return(i,a)=>(h(),f(e(m),{buttons:u,class:"external-storage-auth","close-on-click-outside":"","data-cy-external-storage-auth":"","is-form":"",name:e(t)("files_external","Storage credentials"),"out-transition":"",onSubmit:a[2]||(a[2]=l=>i.$emit("close",{login:o.value,password:r.value})),"onUpdate:open":a[3]||(a[3]=l=>i.$emit("close"))},{default:x(()=>[s(e(d),{class:"external-storage-auth__header",text:e(t)("files_external","To access the storage, you need to provide the authentication credentials."),type:"info"},null,8,["text"]),s(e(c),{modelValue:o.value,"onUpdate:modelValue":a[0]||(a[0]=l=>o.value=l),autofocus:"",class:"external-storage-auth__login","data-cy-external-storage-auth-dialog-login":"",label:e(t)("files_external","Login"),placeholder:e(t)("files_external","Enter the storage login"),minlength:"2",name:"login",required:""},null,8,["modelValue","label","placeholder"]),s(e(p),{modelValue:r.value,"onUpdate:modelValue":a[1]||(a[1]=l=>r.value=l),class:"external-storage-auth__password","data-cy-external-storage-auth-dialog-password":"",label:e(t)("files_external","Password"),placeholder:e(t)("files_external","Enter the storage password"),name:"password",required:""},null,8,["modelValue","label","placeholder"])]),_:1},8,["name"]))}});export{D as default}; -//# sourceMappingURL=CredentialsDialog-DRqXEuS4.chunk.mjs.map diff --git a/dist/CredentialsDialog-DeDiIW45.chunk.mjs b/dist/CredentialsDialog-DeDiIW45.chunk.mjs new file mode 100644 index 0000000000000..3f97ac4c8bbb9 --- /dev/null +++ b/dist/CredentialsDialog-DeDiIW45.chunk.mjs @@ -0,0 +1,2 @@ +import{t}from"./string_decoder-vT-u9WbV.chunk.mjs";import{N as u}from"./index-JpgrUA2Z-BXxDc_if.chunk.mjs";import{N as d}from"./mdi-BpC5Cj53.chunk.mjs";import{N as p}from"./NcPasswordField-djttkA5Q-Dz7uhHFj.chunk.mjs";import{_ as c}from"./TrashCanOutline-DglPBhgI.chunk.mjs";import{b as g,r as n,c as f,o as h,w as x,e as s,u as e}from"./runtime-dom.esm-bundler-DdtEg5E9.chunk.mjs";import"./index-Bndk0DrU.chunk.mjs";import"./index-DCpg1aui.chunk.mjs";import"./createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs";import"./NcModal-MC_HktJd-DqeuH-fk.chunk.mjs";import"./AccountOutline-BlW-6JqD.chunk.mjs";import"./Web-aYJacExm.chunk.mjs";import"./index-DVH_Kr3Q.chunk.mjs";import"./public-uQ6dl0vH.chunk.mjs";import"./NcInputField-Bwsh2aHY-Cz27INBW.chunk.mjs";const P=g({__name:"CredentialsDialog",emits:["close"],setup(_){const l=n(""),r=n(""),m=[{label:t("files_external","Confirm"),type:"submit",variant:"primary"}];return(i,a)=>(h(),f(e(u),{buttons:m,class:"external-storage-auth","close-on-click-outside":"","data-cy-external-storage-auth":"","is-form":"",name:e(t)("files_external","Storage credentials"),"out-transition":"",onSubmit:a[2]||(a[2]=o=>i.$emit("close",{login:l.value,password:r.value})),"onUpdate:open":a[3]||(a[3]=o=>i.$emit("close"))},{default:x(()=>[s(e(d),{class:"external-storage-auth__header",text:e(t)("files_external","To access the storage, you need to provide the authentication credentials."),type:"info"},null,8,["text"]),s(e(c),{modelValue:l.value,"onUpdate:modelValue":a[0]||(a[0]=o=>l.value=o),autofocus:"",class:"external-storage-auth__login","data-cy-external-storage-auth-dialog-login":"",label:e(t)("files_external","Login"),placeholder:e(t)("files_external","Enter the storage login"),minlength:"2",name:"login",required:""},null,8,["modelValue","label","placeholder"]),s(e(p),{modelValue:r.value,"onUpdate:modelValue":a[1]||(a[1]=o=>r.value=o),class:"external-storage-auth__password","data-cy-external-storage-auth-dialog-password":"",label:e(t)("files_external","Password"),placeholder:e(t)("files_external","Enter the storage password"),name:"password",required:""},null,8,["modelValue","label","placeholder"])]),_:1},8,["name"]))}});export{P as default}; +//# sourceMappingURL=CredentialsDialog-DeDiIW45.chunk.mjs.map diff --git a/dist/CredentialsDialog-DRqXEuS4.chunk.mjs.license b/dist/CredentialsDialog-DeDiIW45.chunk.mjs.license similarity index 100% rename from dist/CredentialsDialog-DRqXEuS4.chunk.mjs.license rename to dist/CredentialsDialog-DeDiIW45.chunk.mjs.license diff --git a/dist/CredentialsDialog-DRqXEuS4.chunk.mjs.map b/dist/CredentialsDialog-DeDiIW45.chunk.mjs.map similarity index 96% rename from dist/CredentialsDialog-DRqXEuS4.chunk.mjs.map rename to dist/CredentialsDialog-DeDiIW45.chunk.mjs.map index ecf000289dfaf..5d06b6fca2029 100644 --- a/dist/CredentialsDialog-DRqXEuS4.chunk.mjs.map +++ b/dist/CredentialsDialog-DeDiIW45.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"CredentialsDialog-DRqXEuS4.chunk.mjs","sources":["../build/frontend/apps/files_external/src/views/CredentialsDialog.vue"],"sourcesContent":["\n\n\n\n\n"],"names":["login","ref","password","dialogButtons","t","_createBlock","_unref","NcDialog","_cache","$event","$emit","_createVNode","NcNoteCard","NcTextField","NcPasswordField"],"mappings":"kvBAiBA,MAAMA,EAAQC,EAAI,EAAE,EACdC,EAAWD,EAAI,EAAE,EAEjBE,EAA0D,CAAC,CAChE,MAAOC,EAAE,iBAAkB,SAAS,EACpC,KAAM,SACN,QAAS,SAAA,CACT,oBAIAC,EAqCWC,EAAAC,CAAA,EAAA,CApCT,QAASJ,EACV,MAAM,wBACN,yBAAA,GACA,gCAAA,GACA,UAAA,GACC,KAAMG,EAAAF,CAAA,EAAC,iBAAA,qBAAA,EACR,iBAAA,GACC,SAAMI,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAEC,EAAAA,MAAK,QAAA,CAAA,MAAYV,EAAA,eAAOE,EAAA,MAAQ,GACxC,+BAAaQ,EAAAA,MAAK,OAAA,EAAA,aAEnB,IAGe,CAHfC,EAGeL,EAAAM,CAAA,EAAA,CAFd,MAAM,gCACL,KAAMN,EAAAF,CAAA,EAAC,iBAAA,4EAAA,EACR,KAAK,MAAA,mBAGNO,EASYL,EAAAO,CAAA,EAAA,YARFb,EAAA,2CAAAA,EAAK,MAAAS,GACd,UAAA,GACA,MAAM,+BACN,6CAAA,GACC,MAAOH,EAAAF,CAAA,EAAC,iBAAA,OAAA,EACR,YAAaE,EAAAF,CAAA,EAAC,iBAAA,yBAAA,EACf,UAAU,IACV,KAAK,QACL,SAAA,EAAA,+CAGDO,EAOYL,EAAAQ,CAAA,EAAA,YANFZ,EAAA,2CAAAA,EAAQ,MAAAO,GACjB,MAAM,kCACN,gDAAA,GACC,MAAOH,EAAAF,CAAA,EAAC,iBAAA,UAAA,EACR,YAAaE,EAAAF,CAAA,EAAC,iBAAA,4BAAA,EACf,KAAK,WACL,SAAA,EAAA"} \ No newline at end of file +{"version":3,"file":"CredentialsDialog-DeDiIW45.chunk.mjs","sources":["../build/frontend/apps/files_external/src/views/CredentialsDialog.vue"],"sourcesContent":["\n\n\n\n\n"],"names":["login","ref","password","dialogButtons","t","_createBlock","_unref","NcDialog","_cache","$event","$emit","_createVNode","NcNoteCard","NcTextField","NcPasswordField"],"mappings":"8yBAiBA,MAAMA,EAAQC,EAAI,EAAE,EACdC,EAAWD,EAAI,EAAE,EAEjBE,EAA0D,CAAC,CAChE,MAAOC,EAAE,iBAAkB,SAAS,EACpC,KAAM,SACN,QAAS,SAAA,CACT,oBAIAC,EAqCWC,EAAAC,CAAA,EAAA,CApCT,QAASJ,EACV,MAAM,wBACN,yBAAA,GACA,gCAAA,GACA,UAAA,GACC,KAAMG,EAAAF,CAAA,EAAC,iBAAA,qBAAA,EACR,iBAAA,GACC,SAAMI,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAEC,EAAAA,MAAK,QAAA,CAAA,MAAYV,EAAA,eAAOE,EAAA,MAAQ,GACxC,+BAAaQ,EAAAA,MAAK,OAAA,EAAA,aAEnB,IAGe,CAHfC,EAGeL,EAAAM,CAAA,EAAA,CAFd,MAAM,gCACL,KAAMN,EAAAF,CAAA,EAAC,iBAAA,4EAAA,EACR,KAAK,MAAA,mBAGNO,EASYL,EAAAO,CAAA,EAAA,YARFb,EAAA,2CAAAA,EAAK,MAAAS,GACd,UAAA,GACA,MAAM,+BACN,6CAAA,GACC,MAAOH,EAAAF,CAAA,EAAC,iBAAA,OAAA,EACR,YAAaE,EAAAF,CAAA,EAAC,iBAAA,yBAAA,EACf,UAAU,IACV,KAAK,QACL,SAAA,EAAA,+CAGDO,EAOYL,EAAAQ,CAAA,EAAA,YANFZ,EAAA,2CAAAA,EAAQ,MAAAO,GACjB,MAAM,kCACN,gDAAA,GACC,MAAOH,EAAAF,CAAA,EAAC,iBAAA,UAAA,EACR,YAAaE,EAAAF,CAAA,EAAC,iBAAA,4BAAA,EACf,KAAK,WACL,SAAA,EAAA"} \ No newline at end of file diff --git a/dist/CredentialsDialog-DRqXEuS4.chunk.mjs.map.license b/dist/CredentialsDialog-DeDiIW45.chunk.mjs.map.license similarity index 100% rename from dist/CredentialsDialog-DRqXEuS4.chunk.mjs.map.license rename to dist/CredentialsDialog-DeDiIW45.chunk.mjs.map.license diff --git a/dist/FilePicker-W-IYpVkn-Fzv5zmTx.chunk.mjs b/dist/FilePicker-W-IYpVkn-Djs9gpBp.chunk.mjs similarity index 70% rename from dist/FilePicker-W-IYpVkn-Fzv5zmTx.chunk.mjs rename to dist/FilePicker-W-IYpVkn-Djs9gpBp.chunk.mjs index a80c606cd2a20..2d87468dc4cd9 100644 --- a/dist/FilePicker-W-IYpVkn-Fzv5zmTx.chunk.mjs +++ b/dist/FilePicker-W-IYpVkn-Djs9gpBp.chunk.mjs @@ -1,4 +1,4 @@ -import{f as Xe,j as b,o as g,c as B,l as G,e as $,y as Yt,w as k,m as je,k as T,n as fe,g as be,t as x,z as re,H as Re,F as oe,ag as It,a7 as pe,r as P,a5 as Er,a1 as _e,b as me,x as O,a6 as st,s as Qt,Y as Zt,A as Ie,u as w,v as br,C as ke,p as _r,q as Nt,J as wr,B as yr,a4 as Tr,K as Ir}from"./runtime-dom.esm-bundler-BrYCUcZF.chunk.mjs";import{u as Nr,d as Ar,s as Cr,g as Lr,a as $e,b as Dr,o as Rr,c as Or,p as Sr,e as kr}from"./index-6_gsQFyp.chunk.mjs";import{i as lt,R as Fr,S as A,N as $r,T as ye,a as ct}from"./index-JpgrUA2Z-BFiKKJ1W.chunk.mjs";import{N as At}from"./index-BZk0T9Q-.chunk.mjs";import{r as Pr,B as He}from"./string_decoder-BO00msnV.chunk.mjs";import{i as Ne,b as Br,e as xr,c as Mr,f as Kt,d as Ce,j as Te,g as Ur,l as Jt}from"./index-xFugdZPW.chunk.mjs";import{_ as Pe,c as zr,b as Gr,g as ut}from"./createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs";import{a as Vr,u as Xr}from"./index-DY1sONrk.chunk.mjs";import{g as jr,a as er}from"./translation-DoG5ZELJ-gw0g4US-.chunk.mjs";import{c as we,a as tr}from"./NcNoteCard-CVhtNL04-hwuc093N.chunk.mjs";import{N as rr}from"./NcCheckboxRadioSwitch-BCSKF7Tk-yPckcGKs.chunk.mjs";import{N as Ct,c as Lt,a as Dt,_ as Hr}from"./NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-CAvY10OW.chunk.mjs";import{r as Wr,s as qr,t as Yr,u as Qr,v as Zr,w as Kr,x as Rt,o as Jr,c as ei}from"./mdi-D55n0uzy.chunk.mjs";import{S as Ot}from"./ShareType-suoNfd7y.chunk.mjs";import{P as ti,a as ri}from"./NcBreadcrumbs-DYfGaSjT-DHeGymVL.chunk.mjs";import{c as ir}from"./index-BfylblLb.chunk.mjs";import{N as ii}from"./NcSelect-Czzsi3P_-DLFUGW7z.chunk.mjs";import{_ as ai}from"./TrashCanOutline-CvWRJ8GE.chunk.mjs";import"./NcPasswordField-djttkA5Q-2g87vOpY.chunk.mjs";import"./NcInputField-Bwsh2aHY-CHbAfY0u.chunk.mjs";const ni={name:"ChevronRightIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},si=["aria-hidden","aria-label"],oi=["fill","width","height"],li={d:"M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z"},ci={key:0};function ui(e,i,r,n,c,m){return g(),b("span",re(e.$attrs,{"aria-hidden":r.title?null:"true","aria-label":r.title,class:"material-design-icon chevron-right-icon",role:"img",onClick:i[0]||(i[0]=u=>e.$emit("click",u))}),[(g(),b("svg",{fill:r.fillColor,class:"material-design-icon__svg",width:r.size,height:r.size,viewBox:"0 0 24 24"},[T("path",li,[r.title?(g(),b("title",ci,x(r.title),1)):G("",!0)])],8,oi))],16,si)}const di=Pe(ni,[["render",ui]]),pi={name:"NcBreadcrumb",components:{NcActions:lt,ChevronRight:di,NcButton:we},inheritAttrs:!1,props:{name:{type:String,required:!0},title:{type:String,default:null},to:{type:[String,Object],default:void 0},href:{type:String,default:void 0},icon:{type:String,default:""},forceIconText:{type:Boolean,default:!1},disableDrop:{type:Boolean,default:!1},forceMenu:{type:Boolean,default:!1},open:{type:Boolean,default:!1},class:{type:[String,Array,Object],default:""}},emits:["dragenter","dragleave","dropped","update:open"],setup(){const e=zr();return{actionsContainer:`.vue-crumb[data-crumb-id="${e}"]`,crumbId:e}},data(){return{hovering:!1}},computed:{linkAttributes(){return this.to?{to:this.to,...this.$attrs}:this.href?{href:this.href,...this.$attrs}:this.$attrs}},methods:{onOpenChange(e){this.$emit("update:open",e)},dropped(e){return this.disableDrop||(this.$emit("dropped",e,this.to||this.href),this.$parent.$emit("dropped",e,this.to||this.href),this.hovering=!1),!1},dragEnter(e){this.$emit("dragenter",e),!this.disableDrop&&(this.hovering=!0)},dragLeave(e){this.$emit("dragleave",e),!this.disableDrop&&(e.target.contains(e.relatedTarget)||this.$refs.crumb.contains(e.relatedTarget)||(this.hovering=!1))}}},mi=["data-crumb-id"];function hi(e,i,r,n,c,m){const u=Xe("NcButton"),f=Xe("NcActions"),d=Xe("ChevronRight");return g(),b("li",{ref:"crumb",class:fe(["vue-crumb",[{"vue-crumb--hovered":c.hovering},e.$props.class]]),"data-crumb-id":n.crumbId,draggable:"false",onDragstart:Re(()=>{},["prevent"]),onDrop:i[0]||(i[0]=Re((...p)=>m.dropped&&m.dropped(...p),["prevent"])),onDragover:Re(()=>{},["prevent"]),onDragenter:i[1]||(i[1]=(...p)=>m.dragEnter&&m.dragEnter(...p)),onDragleave:i[2]||(i[2]=(...p)=>m.dragLeave&&m.dragLeave(...p))},[(r.name||r.icon||e.$slots.icon)&&!e.$slots.default?(g(),B(u,re({key:0,"aria-label":r.icon?r.name:void 0,variant:"tertiary"},m.linkAttributes),Yt({_:2},[e.$slots.icon||r.icon?{name:"icon",fn:k(()=>[je(e.$slots,"icon",{},()=>[T("span",{class:fe([r.icon,"icon"])},null,2)],!0)]),key:"0"}:void 0,!(e.$slots.icon||r.icon)||r.forceIconText?{name:"default",fn:k(()=>[be(x(r.name),1)]),key:"1"}:void 0]),1040,["aria-label"])):G("",!0),e.$slots.default?(g(),B(f,{key:1,ref:"actions",container:n.actionsContainer,"force-menu":r.forceMenu,"force-name":"","menu-name":r.name,open:r.open,title:r.title,variant:"tertiary","onUpdate:open":m.onOpenChange},{icon:k(()=>[je(e.$slots,"menu-icon",{},void 0,!0)]),default:k(()=>[je(e.$slots,"default",{},void 0,!0)]),_:3},8,["container","force-menu","menu-name","open","title","onUpdate:open"])):G("",!0),$(d,{class:"vue-crumb__separator",size:20})],42,mi)}const Fe=Pe(pi,[["render",hi],["__scopeId","data-v-28ef52a4"]]),fi={name:"FolderIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},gi=["aria-hidden","aria-label"],vi=["fill","width","height"],Ei={d:"M10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6H12L10,4Z"},bi={key:0};function _i(e,i,r,n,c,m){return g(),b("span",re(e.$attrs,{"aria-hidden":r.title?null:"true","aria-label":r.title,class:"material-design-icon folder-icon",role:"img",onClick:i[0]||(i[0]=u=>e.$emit("click",u))}),[(g(),b("svg",{fill:r.fillColor,class:"material-design-icon__svg",width:r.size,height:r.size,viewBox:"0 0 24 24"},[T("path",Ei,[r.title?(g(),b("title",bi,x(r.title),1)):G("",!0)])],8,vi))],16,gi)}const St=Pe(fi,[["render",_i]]),q="vue-crumb",wi={name:"NcBreadcrumbs",components:{NcActions:lt,NcActionButton:Dt,NcActionRouter:Lt,NcActionLink:Ct,NcBreadcrumb:Fe,IconFolder:St},props:{rootIcon:{type:String,default:"icon-home"},ariaLabel:{type:String,default:null}},emits:["dropped"],data(){return{hiddenIndices:[],menuBreadcrumbProps:{name:"",forceMenu:!0,disableDrop:!0,open:!1},breadcrumbsRefs:[]}},created(){window.addEventListener("resize",Ar(()=>{this.handleWindowResize()},100)),Cr("navigation-toggled",this.delayedResize)},mounted(){this.handleWindowResize()},updated(){this.delayedResize(),this.$nextTick(()=>{this.hideCrumbs()})},beforeUnmount(){window.removeEventListener("resize",this.handleWindowResize),Nr("navigation-toggled",this.delayedResize)},methods:{closeActions(e){this.$refs.actionsBreadcrumb.$el.contains(e.relatedTarget)||(this.menuBreadcrumbProps.open=!1)},async delayedResize(){await this.$nextTick(),this.handleWindowResize()},handleWindowResize(){if(!this.$refs.container)return;const e=this.breadcrumbsRefs.length,i=[],r=this.$refs.container.offsetWidth;let n=this.getTotalWidth();this.$refs.breadcrumb__actions&&(n+=this.$refs.breadcrumb__actions.offsetWidth);let c=n-r;c+=c>0?64:0;let m=0;const u=Math.floor(e/2);for(;c>0&&mf-d))||(this.hiddenIndices=i)},arraysEqual(e,i){if(e.length!==i.length)return!1;if(e===i)return!0;if(e===null||i===null)return!1;for(let r=0;re+this.getWidth(i.$el,r===this.breadcrumbsRefs.length-1),0)},getWidth(e,i){if(!e?.classList)return 0;const r=e.classList.contains(`${q}--hidden`);e.style.minWidth="auto",i&&(e.style.maxWidth="210px"),e.classList.remove(`${q}--hidden`);const n=e.offsetWidth;return r&&e.classList.add(`${q}--hidden`),e.style.minWidth="",e.style.maxWidth="",n},preventDefault(e){return e.preventDefault&&e.preventDefault(),!1},dragStart(e){return this.preventDefault(e)},dropped(e,i,r){r||this.$emit("dropped",e,i),this.menuBreadcrumbProps.open=!1;const n=document.querySelectorAll(`.${q}`);for(const c of n)c.classList.remove(`${q}--hovered`);return this.preventDefault(e)},dragOver(e){return this.preventDefault(e)},dragEnter(e,i){if(!i&&e.target.closest){const r=e.target.closest(`.${q}`);if(r.classList&&r.classList.contains(q)){const n=document.querySelectorAll(`.${q}`);for(const c of n)c.classList.remove(`${q}--hovered`);r.classList.add(`${q}--hovered`)}}},dragLeave(e,i){if(!i&&!e.target.contains(e.relatedTarget)&&e.target.closest){const r=e.target.closest(`.${q}`);if(r.contains(e.relatedTarget))return;r.classList&&r.classList.contains(q)&&r.classList.remove(`${q}--hovered`)}},hideCrumbs(){this.breadcrumbsRefs.forEach((e,i)=>{e?.$el?.classList&&(this.hiddenIndices.includes(i)?e.$el.classList.add(`${q}--hidden`):e.$el.classList.remove(`${q}--hidden`))})},isBreadcrumb(e){return e?.type?.name==="NcBreadcrumb"}},render(){let e=[];if(this.$slots.default?.().forEach(c=>{if(this.isBreadcrumb(c)){e.push(c);return}c?.type===oe&&c?.children?.forEach?.(m=>{this.isBreadcrumb(m)&&e.push(m)})}),e.length===0)return;e[0]=It(e[0],{icon:this.rootIcon,ref:"breadcrumbs"});const i=[];e=e.map((c,m)=>It(c,{ref:u=>{i[m]=u}}));const r=[...e];this.hiddenIndices.length&&r.splice(Math.round(e.length/2),0,pe(Fe,{class:"dropdown",...this.menuBreadcrumbProps,"aria-hidden":!0,ref:"actionsBreadcrumb",key:"actions-breadcrumb-1",onDragenter:()=>{this.menuBreadcrumbProps.open=!0},onDragleave:this.closeActions,"onUpdate:open":c=>{this.menuBreadcrumbProps.open=c}},{default:()=>this.hiddenIndices.filter(c=>c<=e.length-1).map(c=>{const m=e[c],{to:u,href:f,disableDrop:d,name:p,...l}=m.props;delete l.ref;let v=Dt,E="";f&&(v=Ct,E=f),u&&(v=Lt,E=u);const I=pe(St,{size:20});return pe(v,{...l,class:q,href:f||null,to:u||null,draggable:!1,onDragstart:this.dragStart,onDrop:V=>this.dropped(V,E,d),onDragover:this.dragOver,onDragenter:V=>this.dragEnter(V,d),onDragleave:V=>this.dragLeave(V,d)},{default:()=>p,icon:()=>I})})}));const n=[pe("nav",{"aria-label":this.ariaLabel},[pe("ul",{class:"breadcrumb__crumbs"},[r])])];return Fr(this.$slots.actions?.())&&n.push(pe("div",{class:"breadcrumb__actions",ref:"breadcrumb__actions"},this.$slots.actions?.())),this.breadcrumbsRefs=i,pe("div",{class:["breadcrumb",{"breadcrumb--collapsed":this.hiddenIndices.length===e.length-2}],ref:"container"},n)}},yi=Pe(wi,[["__scopeId","data-v-af2b1226"]]);function ue(e,i,r){return i in e?Object.defineProperty(e,i,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[i]=r,e}function kt(e,i,r){Ti(e,i),i.set(e,r)}function Ti(e,i){if(i.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}function H(e,i){var r=ar(e,i,"get");return Ii(e,r)}function Ii(e,i){return i.get?i.get.call(e):i.value}function Ft(e,i,r){var n=ar(e,i,"set");return Ni(e,n,r),r}function ar(e,i,r){if(!i.has(e))throw new TypeError("attempted to "+r+" private field on non-instance");return i.get(e)}function Ni(e,i,r){if(i.set)i.set.call(e,r);else{if(!i.writable)throw new TypeError("attempted to set read only private field");i.value=r}}var Ai=typeof Symbol<"u"?Symbol.toStringTag:"@@toStringTag",Y=new WeakMap,ve=new WeakMap;class Be{constructor(i){var{executor:r=()=>{},internals:n=pt(),promise:c=new Promise((m,u)=>r(m,u,f=>{n.onCancelList.push(f)}))}=i;kt(this,Y,{writable:!0,value:void 0}),kt(this,ve,{writable:!0,value:void 0}),ue(this,Ai,"CancelablePromise"),this.cancel=this.cancel.bind(this),Ft(this,Y,n),Ft(this,ve,c||new Promise((m,u)=>r(m,u,f=>{n.onCancelList.push(f)})))}then(i,r){return Oe(H(this,ve).then(Le(i,H(this,Y)),Le(r,H(this,Y))),H(this,Y))}catch(i){return Oe(H(this,ve).catch(Le(i,H(this,Y))),H(this,Y))}finally(i,r){return r&&H(this,Y).onCancelList.push(i),Oe(H(this,ve).finally(Le(()=>{if(i)return r&&(H(this,Y).onCancelList=H(this,Y).onCancelList.filter(n=>n!==i)),i()},H(this,Y))),H(this,Y))}cancel(){H(this,Y).isCanceled=!0;var i=H(this,Y).onCancelList;H(this,Y).onCancelList=[];for(var r of i)if(typeof r=="function")try{r()}catch(n){console.error(n)}}isCanceled(){return H(this,Y).isCanceled===!0}}class ie extends Be{constructor(i){super({executor:i})}}ue(ie,"all",function(e){return De(e,Promise.all(e))}),ue(ie,"allSettled",function(e){return De(e,Promise.allSettled(e))}),ue(ie,"any",function(e){return De(e,Promise.any(e))}),ue(ie,"race",function(e){return De(e,Promise.race(e))}),ue(ie,"resolve",function(e){return $t(Promise.resolve(e))}),ue(ie,"reject",function(e){return $t(Promise.reject(e))}),ue(ie,"isCancelable",dt);function $t(e){return Oe(e,pt())}function dt(e){return e instanceof ie||e instanceof Be}function Le(e,i){if(e)return r=>{if(!i.isCanceled){var n=e(r);return dt(n)&&i.onCancelList.push(n.cancel),n}return r}}function Oe(e,i){return new Be({internals:i,promise:e})}function De(e,i){var r=pt();return r.onCancelList.push(()=>{for(var n of e)dt(n)&&n.cancel()}),new Be({internals:r,promise:i})}function pt(){return{isCanceled:!1,onCancelList:[]}}const Ci=Lr().setApp("@nextcloud/files").detectUser().build();var le=(e=>(e.Folder="folder",e.File="file",e))(le||{}),ee=(e=>(e[e.NONE=0]="NONE",e[e.CREATE=4]="CREATE",e[e.READ=1]="READ",e[e.UPDATE=2]="UPDATE",e[e.DELETE=8]="DELETE",e[e.SHARE=16]="SHARE",e[e.ALL=31]="ALL",e))(ee||{});const nr=function(e,i){return e.match(i)!==null},ce=(e,i)=>{if(e.id&&typeof e.id!="number")throw new Error("Invalid id type of value");if(!e.source)throw new Error("Missing mandatory source");try{new URL(e.source)}catch{throw new Error("Invalid source format, source must be a valid URL")}if(!e.source.startsWith("http"))throw new Error("Invalid source format, only http(s) is supported");if(e.displayname&&typeof e.displayname!="string")throw new Error("Invalid displayname type");if(e.mtime&&!(e.mtime instanceof Date))throw new Error("Invalid mtime type");if(e.crtime&&!(e.crtime instanceof Date))throw new Error("Invalid crtime type");if(!e.mime||typeof e.mime!="string"||!e.mime.match(/^[-\w.]+\/[-+\w.]+$/gi))throw new Error("Missing or invalid mandatory mime");if("size"in e&&typeof e.size!="number"&&e.size!==void 0)throw new Error("Invalid size type");if("permissions"in e&&e.permissions!==void 0&&!(typeof e.permissions=="number"&&e.permissions>=ee.NONE&&e.permissions<=ee.ALL))throw new Error("Invalid permissions");if(e.owner&&e.owner!==null&&typeof e.owner!="string")throw new Error("Invalid owner type");if(e.attributes&&typeof e.attributes!="object")throw new Error("Invalid attributes type");if(e.root&&typeof e.root!="string")throw new Error("Invalid root type");if(e.root&&!e.root.startsWith("/"))throw new Error("Root must start with a leading slash");if(e.root&&!e.source.includes(e.root))throw new Error("Root must be part of the source");if(e.root&&nr(e.source,i)){const r=e.source.match(i)[0];if(!e.source.includes(Te(r,e.root)))throw new Error("The root must be relative to the service. e.g /files/emma")}if(e.status&&!Object.values(mt).includes(e.status))throw new Error("Status must be a valid NodeStatus")};var mt=(e=>(e.NEW="new",e.FAILED="failed",e.LOADING="loading",e.LOCKED="locked",e))(mt||{});class xe{_data;_attributes;_knownDavService=/(remote|public)\.php\/(web)?dav/i;readonlyAttributes=Object.entries(Object.getOwnPropertyDescriptors(xe.prototype)).filter(i=>typeof i[1].get=="function"&&i[0]!=="__proto__").map(i=>i[0]);handler={set:(i,r,n)=>this.readonlyAttributes.includes(r)?!1:Reflect.set(i,r,n),deleteProperty:(i,r)=>this.readonlyAttributes.includes(r)?!1:Reflect.deleteProperty(i,r),get:(i,r,n)=>this.readonlyAttributes.includes(r)?(Ci.warn(`Accessing "Node.attributes.${r}" is deprecated, access it directly on the Node instance.`),Reflect.get(this,r)):Reflect.get(i,r,n)};constructor(i,r){i.mime||(i.mime="application/octet-stream"),ce(i,r||this._knownDavService),this._data={displayname:i.attributes?.displayname,...i,attributes:{}},this._attributes=new Proxy(this._data.attributes,this.handler),this.update(i.attributes??{}),r&&(this._knownDavService=r)}get source(){return this._data.source.replace(/\/$/i,"")}get encodedSource(){const{origin:i}=new URL(this.source);return i+xr(this.source.slice(i.length))}get basename(){return Mr(this.source)}get displayname(){return this._data.displayname||this.basename}set displayname(i){ce({...this._data,displayname:i},this._knownDavService),this._data.displayname=i}get extension(){return Kt(this.source)}get dirname(){if(this.root){let r=this.source;this.isDavResource&&(r=r.split(this._knownDavService).pop());const n=r.indexOf(this.root),c=this.root.replace(/\/$/,"");return Ce(r.slice(n+c.length)||"/")}const i=new URL(this.source);return Ce(i.pathname)}get mime(){return this._data.mime||"application/octet-stream"}set mime(i){i??="application/octet-stream",ce({...this._data,mime:i},this._knownDavService),this._data.mime=i}get mtime(){return this._data.mtime}set mtime(i){ce({...this._data,mtime:i},this._knownDavService),this._data.mtime=i}get crtime(){return this._data.crtime}get size(){return this._data.size}set size(i){ce({...this._data,size:i},this._knownDavService),this.updateMtime(),this._data.size=i}get attributes(){return this._attributes}get permissions(){return this.owner===null&&!this.isDavResource?ee.READ:this._data.permissions!==void 0?this._data.permissions:ee.NONE}set permissions(i){ce({...this._data,permissions:i},this._knownDavService),this.updateMtime(),this._data.permissions=i}get owner(){return this.isDavResource?this._data.owner:null}get isDavResource(){return nr(this.source,this._knownDavService)}get isDavRessource(){return this.isDavResource}get root(){return this._data.root?this._data.root.replace(/^(.+)\/$/,"$1"):this.isDavResource&&Ce(this.source).split(this._knownDavService).pop()||null}get path(){if(this.root){let i=this.source;this.isDavResource&&(i=i.split(this._knownDavService).pop());const r=i.indexOf(this.root),n=this.root.replace(/\/$/,"");return i.slice(r+n.length)||"/"}return(this.dirname+"/"+this.basename).replace(/\/\//g,"/")}get fileid(){return this._data?.id}get status(){return this._data?.status}set status(i){ce({...this._data,status:i},this._knownDavService),this._data.status=i}get data(){return structuredClone(this._data)}move(i){ce({...this._data,source:i},this._knownDavService);const r=this.basename;this._data.source=i,this.displayname===r&&this.basename!==r&&(this.displayname=this.basename)}rename(i){if(i.includes("/"))throw new Error("Invalid basename");this.move(Ce(this.source)+"/"+i)}updateMtime(){this._data.mtime&&(this._data.mtime=new Date)}update(i){for(const[r,n]of Object.entries(i))try{n===void 0?delete this.attributes[r]:this.attributes[r]=n}catch(c){if(c instanceof TypeError)continue;throw c}}}class ht extends xe{get type(){return le.File}clone(){return new ht(this.data)}}class ft extends xe{constructor(i){super({...i,mime:"httpd/unix-directory"})}get type(){return le.Folder}get extension(){return null}get mime(){return"httpd/unix-directory"}clone(){return new ft(this.data)}}const Li=function(e=""){let i=ee.NONE;return e&&((e.includes("C")||e.includes("K"))&&(i|=ee.CREATE),e.includes("G")&&(i|=ee.READ),(e.includes("W")||e.includes("N")||e.includes("V"))&&(i|=ee.UPDATE),e.includes("D")&&(i|=ee.DELETE),e.includes("R")&&(i|=ee.SHARE)),i},Di=["d:getcontentlength","d:getcontenttype","d:getetag","d:getlastmodified","d:creationdate","d:displayname","d:quota-available-bytes","d:resourcetype","nc:has-preview","nc:is-encrypted","nc:mount-type","oc:comments-unread","oc:favorite","oc:fileid","oc:owner-display-name","oc:owner-id","oc:permissions","oc:size"],Ri={d:"DAV:",nc:"http://nextcloud.org/ns",oc:"http://owncloud.org/ns",ocs:"http://open-collaboration-services.org/ns"},gt=function(){return typeof window._nc_dav_properties>"u"&&(window._nc_dav_properties=[...Di]),window._nc_dav_properties.map(e=>`<${e} />`).join(" ")},vt=function(){return typeof window._nc_dav_namespaces>"u"&&(window._nc_dav_namespaces={...Ri}),Object.keys(window._nc_dav_namespaces).map(e=>`xmlns:${e}="${window._nc_dav_namespaces?.[e]}"`).join(" ")},sr=function(){return` +import{f as Xe,j as b,o as g,c as B,l as G,e as $,y as qt,w as k,m as He,k as T,n as fe,g as be,t as x,z as re,H as Re,F as oe,at as It,a7 as pe,r as P,a9 as Er,a0 as _e,b as me,x as O,aa as st,s as Qt,Z as Zt,A as Ie,u as w,v as br,C as ke,p as _r,q as Nt,K as wr,B as yr,a4 as Tr,I as Ir}from"./runtime-dom.esm-bundler-DdtEg5E9.chunk.mjs";import{u as Nr,d as Ar,s as Cr,g as Lr,a as $e,b as Dr,o as Rr,f as Or,p as Sr,e as kr}from"./index-Bndk0DrU.chunk.mjs";import{t as A,N as Fr,l as ye,a as lt}from"./index-JpgrUA2Z-BXxDc_if.chunk.mjs";import{N as At}from"./index-QzsMEHKe.chunk.mjs";import{i as Ne,g as $r,B as je}from"./public-uQ6dl0vH.chunk.mjs";import{_ as Pe,c as Pr,d as Br,g as ct}from"./createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs";import{a as xr,u as Mr}from"./index-BGtOTwEf.chunk.mjs";import{e as Ur,b as zr,c as Kt,d as Ce,j as Te,g as Gr,l as Jt}from"./index-DCpg1aui.chunk.mjs";import{r as Vr,g as Xr,a as er}from"./string_decoder-vT-u9WbV.chunk.mjs";import{b as we,N as tr}from"./AccountOutline-BlW-6JqD.chunk.mjs";import{N as rr}from"./NcCheckboxRadioSwitch-BCSKF7Tk-B1Kcz6gU.chunk.mjs";import{N as Ct,b as Lt,a as Dt,_ as Hr}from"./NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-BNncp1Y1.chunk.mjs";import{r as jr,s as Wr,t as Yr,u as qr,v as Qr,w as Zr,x as Rt,o as Kr,c as Jr}from"./mdi-BpC5Cj53.chunk.mjs";import{S as Ot}from"./ShareType-suoNfd7y.chunk.mjs";import{P as ei,a as ti}from"./NcBreadcrumbs-DYfGaSjT-BPFs0jvP.chunk.mjs";import{c as ir}from"./index-DVH_Kr3Q.chunk.mjs";import{N as ut,H as ri}from"./NcModal-MC_HktJd-DqeuH-fk.chunk.mjs";import{N as ii}from"./NcSelect-Czzsi3P_-BKaYvmLF.chunk.mjs";import{_ as ai}from"./TrashCanOutline-DglPBhgI.chunk.mjs";import"./Web-aYJacExm.chunk.mjs";import"./NcPasswordField-djttkA5Q-Dz7uhHFj.chunk.mjs";import"./NcInputField-Bwsh2aHY-Cz27INBW.chunk.mjs";const ni={name:"ChevronRightIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},si=["aria-hidden","aria-label"],oi=["fill","width","height"],li={d:"M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z"},ci={key:0};function ui(e,i,r,n,c,m){return g(),b("span",re(e.$attrs,{"aria-hidden":r.title?null:"true","aria-label":r.title,class:"material-design-icon chevron-right-icon",role:"img",onClick:i[0]||(i[0]=u=>e.$emit("click",u))}),[(g(),b("svg",{fill:r.fillColor,class:"material-design-icon__svg",width:r.size,height:r.size,viewBox:"0 0 24 24"},[T("path",li,[r.title?(g(),b("title",ci,x(r.title),1)):G("",!0)])],8,oi))],16,si)}const di=Pe(ni,[["render",ui]]),pi={name:"NcBreadcrumb",components:{NcActions:ut,ChevronRight:di,NcButton:we},inheritAttrs:!1,props:{name:{type:String,required:!0},title:{type:String,default:null},to:{type:[String,Object],default:void 0},href:{type:String,default:void 0},icon:{type:String,default:""},forceIconText:{type:Boolean,default:!1},disableDrop:{type:Boolean,default:!1},forceMenu:{type:Boolean,default:!1},open:{type:Boolean,default:!1},class:{type:[String,Array,Object],default:""}},emits:["dragenter","dragleave","dropped","update:open"],setup(){const e=Pr();return{actionsContainer:`.vue-crumb[data-crumb-id="${e}"]`,crumbId:e}},data(){return{hovering:!1}},computed:{linkAttributes(){return this.to?{to:this.to,...this.$attrs}:this.href?{href:this.href,...this.$attrs}:this.$attrs}},methods:{onOpenChange(e){this.$emit("update:open",e)},dropped(e){return this.disableDrop||(this.$emit("dropped",e,this.to||this.href),this.$parent.$emit("dropped",e,this.to||this.href),this.hovering=!1),!1},dragEnter(e){this.$emit("dragenter",e),!this.disableDrop&&(this.hovering=!0)},dragLeave(e){this.$emit("dragleave",e),!this.disableDrop&&(e.target.contains(e.relatedTarget)||this.$refs.crumb.contains(e.relatedTarget)||(this.hovering=!1))}}},mi=["data-crumb-id"];function hi(e,i,r,n,c,m){const u=Xe("NcButton"),f=Xe("NcActions"),d=Xe("ChevronRight");return g(),b("li",{ref:"crumb",class:fe(["vue-crumb",[{"vue-crumb--hovered":c.hovering},e.$props.class]]),"data-crumb-id":n.crumbId,draggable:"false",onDragstart:Re(()=>{},["prevent"]),onDrop:i[0]||(i[0]=Re((...p)=>m.dropped&&m.dropped(...p),["prevent"])),onDragover:Re(()=>{},["prevent"]),onDragenter:i[1]||(i[1]=(...p)=>m.dragEnter&&m.dragEnter(...p)),onDragleave:i[2]||(i[2]=(...p)=>m.dragLeave&&m.dragLeave(...p))},[(r.name||r.icon||e.$slots.icon)&&!e.$slots.default?(g(),B(u,re({key:0,"aria-label":r.icon?r.name:void 0,variant:"tertiary"},m.linkAttributes),qt({_:2},[e.$slots.icon||r.icon?{name:"icon",fn:k(()=>[He(e.$slots,"icon",{},()=>[T("span",{class:fe([r.icon,"icon"])},null,2)],!0)]),key:"0"}:void 0,!(e.$slots.icon||r.icon)||r.forceIconText?{name:"default",fn:k(()=>[be(x(r.name),1)]),key:"1"}:void 0]),1040,["aria-label"])):G("",!0),e.$slots.default?(g(),B(f,{key:1,ref:"actions",container:n.actionsContainer,"force-menu":r.forceMenu,"force-name":"","menu-name":r.name,open:r.open,title:r.title,variant:"tertiary","onUpdate:open":m.onOpenChange},{icon:k(()=>[He(e.$slots,"menu-icon",{},void 0,!0)]),default:k(()=>[He(e.$slots,"default",{},void 0,!0)]),_:3},8,["container","force-menu","menu-name","open","title","onUpdate:open"])):G("",!0),$(d,{class:"vue-crumb__separator",size:20})],42,mi)}const Fe=Pe(pi,[["render",hi],["__scopeId","data-v-28ef52a4"]]),fi={name:"FolderIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},gi=["aria-hidden","aria-label"],vi=["fill","width","height"],Ei={d:"M10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6H12L10,4Z"},bi={key:0};function _i(e,i,r,n,c,m){return g(),b("span",re(e.$attrs,{"aria-hidden":r.title?null:"true","aria-label":r.title,class:"material-design-icon folder-icon",role:"img",onClick:i[0]||(i[0]=u=>e.$emit("click",u))}),[(g(),b("svg",{fill:r.fillColor,class:"material-design-icon__svg",width:r.size,height:r.size,viewBox:"0 0 24 24"},[T("path",Ei,[r.title?(g(),b("title",bi,x(r.title),1)):G("",!0)])],8,vi))],16,gi)}const St=Pe(fi,[["render",_i]]),Y="vue-crumb",wi={name:"NcBreadcrumbs",components:{NcActions:ut,NcActionButton:Dt,NcActionRouter:Lt,NcActionLink:Ct,NcBreadcrumb:Fe,IconFolder:St},props:{rootIcon:{type:String,default:"icon-home"},ariaLabel:{type:String,default:null}},emits:["dropped"],data(){return{hiddenIndices:[],menuBreadcrumbProps:{name:"",forceMenu:!0,disableDrop:!0,open:!1},breadcrumbsRefs:[]}},created(){window.addEventListener("resize",Ar(()=>{this.handleWindowResize()},100)),Cr("navigation-toggled",this.delayedResize)},mounted(){this.handleWindowResize()},updated(){this.delayedResize(),this.$nextTick(()=>{this.hideCrumbs()})},beforeUnmount(){window.removeEventListener("resize",this.handleWindowResize),Nr("navigation-toggled",this.delayedResize)},methods:{closeActions(e){this.$refs.actionsBreadcrumb.$el.contains(e.relatedTarget)||(this.menuBreadcrumbProps.open=!1)},async delayedResize(){await this.$nextTick(),this.handleWindowResize()},handleWindowResize(){if(!this.$refs.container)return;const e=this.breadcrumbsRefs.length,i=[],r=this.$refs.container.offsetWidth;let n=this.getTotalWidth();this.$refs.breadcrumb__actions&&(n+=this.$refs.breadcrumb__actions.offsetWidth);let c=n-r;c+=c>0?64:0;let m=0;const u=Math.floor(e/2);for(;c>0&&mf-d))||(this.hiddenIndices=i)},arraysEqual(e,i){if(e.length!==i.length)return!1;if(e===i)return!0;if(e===null||i===null)return!1;for(let r=0;re+this.getWidth(i.$el,r===this.breadcrumbsRefs.length-1),0)},getWidth(e,i){if(!e?.classList)return 0;const r=e.classList.contains(`${Y}--hidden`);e.style.minWidth="auto",i&&(e.style.maxWidth="210px"),e.classList.remove(`${Y}--hidden`);const n=e.offsetWidth;return r&&e.classList.add(`${Y}--hidden`),e.style.minWidth="",e.style.maxWidth="",n},preventDefault(e){return e.preventDefault&&e.preventDefault(),!1},dragStart(e){return this.preventDefault(e)},dropped(e,i,r){r||this.$emit("dropped",e,i),this.menuBreadcrumbProps.open=!1;const n=document.querySelectorAll(`.${Y}`);for(const c of n)c.classList.remove(`${Y}--hovered`);return this.preventDefault(e)},dragOver(e){return this.preventDefault(e)},dragEnter(e,i){if(!i&&e.target.closest){const r=e.target.closest(`.${Y}`);if(r.classList&&r.classList.contains(Y)){const n=document.querySelectorAll(`.${Y}`);for(const c of n)c.classList.remove(`${Y}--hovered`);r.classList.add(`${Y}--hovered`)}}},dragLeave(e,i){if(!i&&!e.target.contains(e.relatedTarget)&&e.target.closest){const r=e.target.closest(`.${Y}`);if(r.contains(e.relatedTarget))return;r.classList&&r.classList.contains(Y)&&r.classList.remove(`${Y}--hovered`)}},hideCrumbs(){this.breadcrumbsRefs.forEach((e,i)=>{e?.$el?.classList&&(this.hiddenIndices.includes(i)?e.$el.classList.add(`${Y}--hidden`):e.$el.classList.remove(`${Y}--hidden`))})},isBreadcrumb(e){return e?.type?.name==="NcBreadcrumb"}},render(){let e=[];if(this.$slots.default?.().forEach(c=>{if(this.isBreadcrumb(c)){e.push(c);return}c?.type===oe&&c?.children?.forEach?.(m=>{this.isBreadcrumb(m)&&e.push(m)})}),e.length===0)return;e[0]=It(e[0],{icon:this.rootIcon,ref:"breadcrumbs"});const i=[];e=e.map((c,m)=>It(c,{ref:u=>{i[m]=u}}));const r=[...e];this.hiddenIndices.length&&r.splice(Math.round(e.length/2),0,pe(Fe,{class:"dropdown",...this.menuBreadcrumbProps,"aria-hidden":!0,ref:"actionsBreadcrumb",key:"actions-breadcrumb-1",onDragenter:()=>{this.menuBreadcrumbProps.open=!0},onDragleave:this.closeActions,"onUpdate:open":c=>{this.menuBreadcrumbProps.open=c}},{default:()=>this.hiddenIndices.filter(c=>c<=e.length-1).map(c=>{const m=e[c],{to:u,href:f,disableDrop:d,name:p,...l}=m.props;delete l.ref;let v=Dt,E="";f&&(v=Ct,E=f),u&&(v=Lt,E=u);const I=pe(St,{size:20});return pe(v,{...l,class:Y,href:f||null,to:u||null,draggable:!1,onDragstart:this.dragStart,onDrop:V=>this.dropped(V,E,d),onDragover:this.dragOver,onDragenter:V=>this.dragEnter(V,d),onDragleave:V=>this.dragLeave(V,d)},{default:()=>p,icon:()=>I})})}));const n=[pe("nav",{"aria-label":this.ariaLabel},[pe("ul",{class:"breadcrumb__crumbs"},[r])])];return ri(this.$slots.actions?.())&&n.push(pe("div",{class:"breadcrumb__actions",ref:"breadcrumb__actions"},this.$slots.actions?.())),this.breadcrumbsRefs=i,pe("div",{class:["breadcrumb",{"breadcrumb--collapsed":this.hiddenIndices.length===e.length-2}],ref:"container"},n)}},yi=Pe(wi,[["__scopeId","data-v-af2b1226"]]);function ue(e,i,r){return i in e?Object.defineProperty(e,i,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[i]=r,e}function kt(e,i,r){Ti(e,i),i.set(e,r)}function Ti(e,i){if(i.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}function j(e,i){var r=ar(e,i,"get");return Ii(e,r)}function Ii(e,i){return i.get?i.get.call(e):i.value}function Ft(e,i,r){var n=ar(e,i,"set");return Ni(e,n,r),r}function ar(e,i,r){if(!i.has(e))throw new TypeError("attempted to "+r+" private field on non-instance");return i.get(e)}function Ni(e,i,r){if(i.set)i.set.call(e,r);else{if(!i.writable)throw new TypeError("attempted to set read only private field");i.value=r}}var Ai=typeof Symbol<"u"?Symbol.toStringTag:"@@toStringTag",q=new WeakMap,ve=new WeakMap;class Be{constructor(i){var{executor:r=()=>{},internals:n=pt(),promise:c=new Promise((m,u)=>r(m,u,f=>{n.onCancelList.push(f)}))}=i;kt(this,q,{writable:!0,value:void 0}),kt(this,ve,{writable:!0,value:void 0}),ue(this,Ai,"CancelablePromise"),this.cancel=this.cancel.bind(this),Ft(this,q,n),Ft(this,ve,c||new Promise((m,u)=>r(m,u,f=>{n.onCancelList.push(f)})))}then(i,r){return Oe(j(this,ve).then(Le(i,j(this,q)),Le(r,j(this,q))),j(this,q))}catch(i){return Oe(j(this,ve).catch(Le(i,j(this,q))),j(this,q))}finally(i,r){return r&&j(this,q).onCancelList.push(i),Oe(j(this,ve).finally(Le(()=>{if(i)return r&&(j(this,q).onCancelList=j(this,q).onCancelList.filter(n=>n!==i)),i()},j(this,q))),j(this,q))}cancel(){j(this,q).isCanceled=!0;var i=j(this,q).onCancelList;j(this,q).onCancelList=[];for(var r of i)if(typeof r=="function")try{r()}catch(n){console.error(n)}}isCanceled(){return j(this,q).isCanceled===!0}}class ie extends Be{constructor(i){super({executor:i})}}ue(ie,"all",function(e){return De(e,Promise.all(e))}),ue(ie,"allSettled",function(e){return De(e,Promise.allSettled(e))}),ue(ie,"any",function(e){return De(e,Promise.any(e))}),ue(ie,"race",function(e){return De(e,Promise.race(e))}),ue(ie,"resolve",function(e){return $t(Promise.resolve(e))}),ue(ie,"reject",function(e){return $t(Promise.reject(e))}),ue(ie,"isCancelable",dt);function $t(e){return Oe(e,pt())}function dt(e){return e instanceof ie||e instanceof Be}function Le(e,i){if(e)return r=>{if(!i.isCanceled){var n=e(r);return dt(n)&&i.onCancelList.push(n.cancel),n}return r}}function Oe(e,i){return new Be({internals:i,promise:e})}function De(e,i){var r=pt();return r.onCancelList.push(()=>{for(var n of e)dt(n)&&n.cancel()}),new Be({internals:r,promise:i})}function pt(){return{isCanceled:!1,onCancelList:[]}}const Ci=Lr().setApp("@nextcloud/files").detectUser().build();var le=(e=>(e.Folder="folder",e.File="file",e))(le||{}),ee=(e=>(e[e.NONE=0]="NONE",e[e.CREATE=4]="CREATE",e[e.READ=1]="READ",e[e.UPDATE=2]="UPDATE",e[e.DELETE=8]="DELETE",e[e.SHARE=16]="SHARE",e[e.ALL=31]="ALL",e))(ee||{});const nr=function(e,i){return e.match(i)!==null},ce=(e,i)=>{if(e.id&&typeof e.id!="number")throw new Error("Invalid id type of value");if(!e.source)throw new Error("Missing mandatory source");try{new URL(e.source)}catch{throw new Error("Invalid source format, source must be a valid URL")}if(!e.source.startsWith("http"))throw new Error("Invalid source format, only http(s) is supported");if(e.displayname&&typeof e.displayname!="string")throw new Error("Invalid displayname type");if(e.mtime&&!(e.mtime instanceof Date))throw new Error("Invalid mtime type");if(e.crtime&&!(e.crtime instanceof Date))throw new Error("Invalid crtime type");if(!e.mime||typeof e.mime!="string"||!e.mime.match(/^[-\w.]+\/[-+\w.]+$/gi))throw new Error("Missing or invalid mandatory mime");if("size"in e&&typeof e.size!="number"&&e.size!==void 0)throw new Error("Invalid size type");if("permissions"in e&&e.permissions!==void 0&&!(typeof e.permissions=="number"&&e.permissions>=ee.NONE&&e.permissions<=ee.ALL))throw new Error("Invalid permissions");if(e.owner&&e.owner!==null&&typeof e.owner!="string")throw new Error("Invalid owner type");if(e.attributes&&typeof e.attributes!="object")throw new Error("Invalid attributes type");if(e.root&&typeof e.root!="string")throw new Error("Invalid root type");if(e.root&&!e.root.startsWith("/"))throw new Error("Root must start with a leading slash");if(e.root&&!e.source.includes(e.root))throw new Error("Root must be part of the source");if(e.root&&nr(e.source,i)){const r=e.source.match(i)[0];if(!e.source.includes(Te(r,e.root)))throw new Error("The root must be relative to the service. e.g /files/emma")}if(e.status&&!Object.values(mt).includes(e.status))throw new Error("Status must be a valid NodeStatus")};var mt=(e=>(e.NEW="new",e.FAILED="failed",e.LOADING="loading",e.LOCKED="locked",e))(mt||{});class xe{_data;_attributes;_knownDavService=/(remote|public)\.php\/(web)?dav/i;readonlyAttributes=Object.entries(Object.getOwnPropertyDescriptors(xe.prototype)).filter(i=>typeof i[1].get=="function"&&i[0]!=="__proto__").map(i=>i[0]);handler={set:(i,r,n)=>this.readonlyAttributes.includes(r)?!1:Reflect.set(i,r,n),deleteProperty:(i,r)=>this.readonlyAttributes.includes(r)?!1:Reflect.deleteProperty(i,r),get:(i,r,n)=>this.readonlyAttributes.includes(r)?(Ci.warn(`Accessing "Node.attributes.${r}" is deprecated, access it directly on the Node instance.`),Reflect.get(this,r)):Reflect.get(i,r,n)};constructor(i,r){i.mime||(i.mime="application/octet-stream"),ce(i,r||this._knownDavService),this._data={displayname:i.attributes?.displayname,...i,attributes:{}},this._attributes=new Proxy(this._data.attributes,this.handler),this.update(i.attributes??{}),r&&(this._knownDavService=r)}get source(){return this._data.source.replace(/\/$/i,"")}get encodedSource(){const{origin:i}=new URL(this.source);return i+Ur(this.source.slice(i.length))}get basename(){return zr(this.source)}get displayname(){return this._data.displayname||this.basename}set displayname(i){ce({...this._data,displayname:i},this._knownDavService),this._data.displayname=i}get extension(){return Kt(this.source)}get dirname(){if(this.root){let r=this.source;this.isDavResource&&(r=r.split(this._knownDavService).pop());const n=r.indexOf(this.root),c=this.root.replace(/\/$/,"");return Ce(r.slice(n+c.length)||"/")}const i=new URL(this.source);return Ce(i.pathname)}get mime(){return this._data.mime||"application/octet-stream"}set mime(i){i??="application/octet-stream",ce({...this._data,mime:i},this._knownDavService),this._data.mime=i}get mtime(){return this._data.mtime}set mtime(i){ce({...this._data,mtime:i},this._knownDavService),this._data.mtime=i}get crtime(){return this._data.crtime}get size(){return this._data.size}set size(i){ce({...this._data,size:i},this._knownDavService),this.updateMtime(),this._data.size=i}get attributes(){return this._attributes}get permissions(){return this.owner===null&&!this.isDavResource?ee.READ:this._data.permissions!==void 0?this._data.permissions:ee.NONE}set permissions(i){ce({...this._data,permissions:i},this._knownDavService),this.updateMtime(),this._data.permissions=i}get owner(){return this.isDavResource?this._data.owner:null}get isDavResource(){return nr(this.source,this._knownDavService)}get isDavRessource(){return this.isDavResource}get root(){return this._data.root?this._data.root.replace(/^(.+)\/$/,"$1"):this.isDavResource&&Ce(this.source).split(this._knownDavService).pop()||null}get path(){if(this.root){let i=this.source;this.isDavResource&&(i=i.split(this._knownDavService).pop());const r=i.indexOf(this.root),n=this.root.replace(/\/$/,"");return i.slice(r+n.length)||"/"}return(this.dirname+"/"+this.basename).replace(/\/\//g,"/")}get fileid(){return this._data?.id}get status(){return this._data?.status}set status(i){ce({...this._data,status:i},this._knownDavService),this._data.status=i}get data(){return structuredClone(this._data)}move(i){ce({...this._data,source:i},this._knownDavService);const r=this.basename;this._data.source=i,this.displayname===r&&this.basename!==r&&(this.displayname=this.basename)}rename(i){if(i.includes("/"))throw new Error("Invalid basename");this.move(Ce(this.source)+"/"+i)}updateMtime(){this._data.mtime&&(this._data.mtime=new Date)}update(i){for(const[r,n]of Object.entries(i))try{n===void 0?delete this.attributes[r]:this.attributes[r]=n}catch(c){if(c instanceof TypeError)continue;throw c}}}class ht extends xe{get type(){return le.File}clone(){return new ht(this.data)}}class ft extends xe{constructor(i){super({...i,mime:"httpd/unix-directory"})}get type(){return le.Folder}get extension(){return null}get mime(){return"httpd/unix-directory"}clone(){return new ft(this.data)}}const Li=function(e=""){let i=ee.NONE;return e&&((e.includes("C")||e.includes("K"))&&(i|=ee.CREATE),e.includes("G")&&(i|=ee.READ),(e.includes("W")||e.includes("N")||e.includes("V"))&&(i|=ee.UPDATE),e.includes("D")&&(i|=ee.DELETE),e.includes("R")&&(i|=ee.SHARE)),i},Di=["d:getcontentlength","d:getcontenttype","d:getetag","d:getlastmodified","d:creationdate","d:displayname","d:quota-available-bytes","d:resourcetype","nc:has-preview","nc:is-encrypted","nc:mount-type","oc:comments-unread","oc:favorite","oc:fileid","oc:owner-display-name","oc:owner-id","oc:permissions","oc:size"],Ri={d:"DAV:",nc:"http://nextcloud.org/ns",oc:"http://owncloud.org/ns",ocs:"http://open-collaboration-services.org/ns"},gt=function(){return typeof window._nc_dav_properties>"u"&&(window._nc_dav_properties=[...Di]),window._nc_dav_properties.map(e=>`<${e} />`).join(" ")},vt=function(){return typeof window._nc_dav_namespaces>"u"&&(window._nc_dav_namespaces={...Ri}),Object.keys(window._nc_dav_namespaces).map(e=>`xmlns:${e}="${window._nc_dav_namespaces?.[e]}"`).join(" ")},sr=function(){return` ${gt()} @@ -65,13 +65,13 @@ import{f as Xe,j as b,o as g,c as B,l as G,e as $,y as Yt,w as k,m as je,k as T, 0 -`};function ki(){return Ne()?`/files/${Br()}`:`/files/${$e()?.uid}`}const Ae=ki();function Fi(){const e=Gr("dav");return Ne()?e.replace("remote.php","public.php"):e}const or=Fi(),$i=function(e=or,i={}){const r=Vr(e,{headers:i});function n(c){r.setHeaders({...i,"X-Requested-With":"XMLHttpRequest",requesttoken:c??""})}return Rr(n),n(Dr()),Xr().patch("fetch",(c,m)=>{const u=m.headers;return u?.method&&(m.method=u.method,delete u.method),fetch(c,m)}),r},Pi=(e,i="/",r=Ae)=>{const n=new AbortController;return new ie(async(c,m,u)=>{u(()=>n.abort());try{const f=(await e.getDirectoryContents(`${r}${i}`,{signal:n.signal,details:!0,data:Oi(),headers:{method:"REPORT"},includeSelf:!0})).data.filter(d=>d.filename!==i).map(d=>Me(d,r));c(f)}catch(f){m(f)}})},Me=function(e,i=Ae,r=or){let n=$e()?.uid;if(Ne())n=n??"anonymous";else if(!n)throw new Error("No user id found");const c=e.props,m=Li(c?.permissions),u=String(c?.["owner-id"]||n),f=c.fileid||0,d=new Date(Date.parse(e.lastmod)),p=new Date(Date.parse(c.creationdate)),l={id:f,source:`${r}${e.filename}`,mtime:!isNaN(d.getTime())&&d.getTime()!==0?d:void 0,crtime:!isNaN(p.getTime())&&p.getTime()!==0?p:void 0,mime:e.mime||"application/octet-stream",displayname:c.displayname!==void 0?String(c.displayname):void 0,size:c?.size||Number.parseInt(c.getcontentlength||"0"),status:f<0?mt.FAILED:void 0,permissions:m,owner:u,root:i,attributes:{...e,...c,hasPreview:c?.["has-preview"]}};return delete l.attributes?.props,e.type==="file"?new ht(l):new ft(l)};var Bi=Pr();const xi=Or(Bi);var We={},Pt,Bt;function lr(){return Bt||(Bt=1,Pt=typeof Sr=="object"&&We&&We.NODE_DEBUG&&/\bsemver\b/i.test(We.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{}),Pt}var qe,xt;function cr(){if(xt)return qe;xt=1;const e="2.0.0",i=256,r=Number.MAX_SAFE_INTEGER||9007199254740991,n=16,c=i-6;return qe={MAX_LENGTH:i,MAX_SAFE_COMPONENT_LENGTH:n,MAX_SAFE_BUILD_LENGTH:c,MAX_SAFE_INTEGER:r,RELEASE_TYPES:["major","premajor","minor","preminor","patch","prepatch","prerelease"],SEMVER_SPEC_VERSION:e,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2},qe}var Ye={exports:{}},Mt;function Mi(){return Mt||(Mt=1,(function(e,i){const{MAX_SAFE_COMPONENT_LENGTH:r,MAX_SAFE_BUILD_LENGTH:n,MAX_LENGTH:c}=cr(),m=lr();i=e.exports={};const u=i.re=[],f=i.safeRe=[],d=i.src=[],p=i.safeSrc=[],l=i.t={};let v=0;const E="[a-zA-Z0-9-]",I=[["\\s",1],["\\d",c],[E,n]],V=W=>{for(const[X,te]of I)W=W.split(`${X}*`).join(`${X}{0,${te}}`).split(`${X}+`).join(`${X}{1,${te}}`);return W},_=(W,X,te)=>{const J=V(X),C=v++;m(W,C,X),l[W]=C,d[C]=X,p[C]=J,u[C]=new RegExp(X,te?"g":void 0),f[C]=new RegExp(J,te?"g":void 0)};_("NUMERICIDENTIFIER","0|[1-9]\\d*"),_("NUMERICIDENTIFIERLOOSE","\\d+"),_("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${E}*`),_("MAINVERSION",`(${d[l.NUMERICIDENTIFIER]})\\.(${d[l.NUMERICIDENTIFIER]})\\.(${d[l.NUMERICIDENTIFIER]})`),_("MAINVERSIONLOOSE",`(${d[l.NUMERICIDENTIFIERLOOSE]})\\.(${d[l.NUMERICIDENTIFIERLOOSE]})\\.(${d[l.NUMERICIDENTIFIERLOOSE]})`),_("PRERELEASEIDENTIFIER",`(?:${d[l.NONNUMERICIDENTIFIER]}|${d[l.NUMERICIDENTIFIER]})`),_("PRERELEASEIDENTIFIERLOOSE",`(?:${d[l.NONNUMERICIDENTIFIER]}|${d[l.NUMERICIDENTIFIERLOOSE]})`),_("PRERELEASE",`(?:-(${d[l.PRERELEASEIDENTIFIER]}(?:\\.${d[l.PRERELEASEIDENTIFIER]})*))`),_("PRERELEASELOOSE",`(?:-?(${d[l.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${d[l.PRERELEASEIDENTIFIERLOOSE]})*))`),_("BUILDIDENTIFIER",`${E}+`),_("BUILD",`(?:\\+(${d[l.BUILDIDENTIFIER]}(?:\\.${d[l.BUILDIDENTIFIER]})*))`),_("FULLPLAIN",`v?${d[l.MAINVERSION]}${d[l.PRERELEASE]}?${d[l.BUILD]}?`),_("FULL",`^${d[l.FULLPLAIN]}$`),_("LOOSEPLAIN",`[v=\\s]*${d[l.MAINVERSIONLOOSE]}${d[l.PRERELEASELOOSE]}?${d[l.BUILD]}?`),_("LOOSE",`^${d[l.LOOSEPLAIN]}$`),_("GTLT","((?:<|>)?=?)"),_("XRANGEIDENTIFIERLOOSE",`${d[l.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),_("XRANGEIDENTIFIER",`${d[l.NUMERICIDENTIFIER]}|x|X|\\*`),_("XRANGEPLAIN",`[v=\\s]*(${d[l.XRANGEIDENTIFIER]})(?:\\.(${d[l.XRANGEIDENTIFIER]})(?:\\.(${d[l.XRANGEIDENTIFIER]})(?:${d[l.PRERELEASE]})?${d[l.BUILD]}?)?)?`),_("XRANGEPLAINLOOSE",`[v=\\s]*(${d[l.XRANGEIDENTIFIERLOOSE]})(?:\\.(${d[l.XRANGEIDENTIFIERLOOSE]})(?:\\.(${d[l.XRANGEIDENTIFIERLOOSE]})(?:${d[l.PRERELEASELOOSE]})?${d[l.BUILD]}?)?)?`),_("XRANGE",`^${d[l.GTLT]}\\s*${d[l.XRANGEPLAIN]}$`),_("XRANGELOOSE",`^${d[l.GTLT]}\\s*${d[l.XRANGEPLAINLOOSE]}$`),_("COERCEPLAIN",`(^|[^\\d])(\\d{1,${r}})(?:\\.(\\d{1,${r}}))?(?:\\.(\\d{1,${r}}))?`),_("COERCE",`${d[l.COERCEPLAIN]}(?:$|[^\\d])`),_("COERCEFULL",d[l.COERCEPLAIN]+`(?:${d[l.PRERELEASE]})?(?:${d[l.BUILD]})?(?:$|[^\\d])`),_("COERCERTL",d[l.COERCE],!0),_("COERCERTLFULL",d[l.COERCEFULL],!0),_("LONETILDE","(?:~>?)"),_("TILDETRIM",`(\\s*)${d[l.LONETILDE]}\\s+`,!0),i.tildeTrimReplace="$1~",_("TILDE",`^${d[l.LONETILDE]}${d[l.XRANGEPLAIN]}$`),_("TILDELOOSE",`^${d[l.LONETILDE]}${d[l.XRANGEPLAINLOOSE]}$`),_("LONECARET","(?:\\^)"),_("CARETTRIM",`(\\s*)${d[l.LONECARET]}\\s+`,!0),i.caretTrimReplace="$1^",_("CARET",`^${d[l.LONECARET]}${d[l.XRANGEPLAIN]}$`),_("CARETLOOSE",`^${d[l.LONECARET]}${d[l.XRANGEPLAINLOOSE]}$`),_("COMPARATORLOOSE",`^${d[l.GTLT]}\\s*(${d[l.LOOSEPLAIN]})$|^$`),_("COMPARATOR",`^${d[l.GTLT]}\\s*(${d[l.FULLPLAIN]})$|^$`),_("COMPARATORTRIM",`(\\s*)${d[l.GTLT]}\\s*(${d[l.LOOSEPLAIN]}|${d[l.XRANGEPLAIN]})`,!0),i.comparatorTrimReplace="$1$2$3",_("HYPHENRANGE",`^\\s*(${d[l.XRANGEPLAIN]})\\s+-\\s+(${d[l.XRANGEPLAIN]})\\s*$`),_("HYPHENRANGELOOSE",`^\\s*(${d[l.XRANGEPLAINLOOSE]})\\s+-\\s+(${d[l.XRANGEPLAINLOOSE]})\\s*$`),_("STAR","(<|>)?=?\\s*\\*"),_("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),_("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")})(Ye,Ye.exports)),Ye.exports}var Qe,Ut;function Ui(){if(Ut)return Qe;Ut=1;const e=Object.freeze({loose:!0}),i=Object.freeze({});return Qe=r=>r?typeof r!="object"?e:r:i,Qe}var Ze,zt;function zi(){if(zt)return Ze;zt=1;const e=/^[0-9]+$/,i=(r,n)=>{if(typeof r=="number"&&typeof n=="number")return r===n?0:ri(n,r)},Ze}var Ke,Gt;function ur(){if(Gt)return Ke;Gt=1;const e=lr(),{MAX_LENGTH:i,MAX_SAFE_INTEGER:r}=cr(),{safeRe:n,t:c}=Mi(),m=Ui(),{compareIdentifiers:u}=zi();class f{constructor(p,l){if(l=m(l),p instanceof f){if(p.loose===!!l.loose&&p.includePrerelease===!!l.includePrerelease)return p;p=p.version}else if(typeof p!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof p}".`);if(p.length>i)throw new TypeError(`version is longer than ${i} characters`);e("SemVer",p,l),this.options=l,this.loose=!!l.loose,this.includePrerelease=!!l.includePrerelease;const v=p.trim().match(l.loose?n[c.LOOSE]:n[c.FULL]);if(!v)throw new TypeError(`Invalid Version: ${p}`);if(this.raw=p,this.major=+v[1],this.minor=+v[2],this.patch=+v[3],this.major>r||this.major<0)throw new TypeError("Invalid major version");if(this.minor>r||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>r||this.patch<0)throw new TypeError("Invalid patch version");v[4]?this.prerelease=v[4].split(".").map(E=>{if(/^[0-9]+$/.test(E)){const I=+E;if(I>=0&&Ip.major?1:this.minorp.minor?1:this.patchp.patch?1:0}comparePre(p){if(p instanceof f||(p=new f(p,this.options)),this.prerelease.length&&!p.prerelease.length)return-1;if(!this.prerelease.length&&p.prerelease.length)return 1;if(!this.prerelease.length&&!p.prerelease.length)return 0;let l=0;do{const v=this.prerelease[l],E=p.prerelease[l];if(e("prerelease compare",l,v,E),v===void 0&&E===void 0)return 0;if(E===void 0)return 1;if(v===void 0)return-1;if(v!==E)return u(v,E)}while(++l)}compareBuild(p){p instanceof f||(p=new f(p,this.options));let l=0;do{const v=this.build[l],E=p.build[l];if(e("build compare",l,v,E),v===void 0&&E===void 0)return 0;if(E===void 0)return 1;if(v===void 0)return-1;if(v!==E)return u(v,E)}while(++l)}inc(p,l,v){if(p.startsWith("pre")){if(!l&&v===!1)throw new Error("invalid increment argument: identifier is empty");if(l){const E=`-${l}`.match(this.options.loose?n[c.PRERELEASELOOSE]:n[c.PRERELEASE]);if(!E||E[1]!==l)throw new Error(`invalid identifier: ${l}`)}}switch(p){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",l,v);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",l,v);break;case"prepatch":this.prerelease.length=0,this.inc("patch",l,v),this.inc("pre",l,v);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",l,v),this.inc("pre",l,v);break;case"release":if(this.prerelease.length===0)throw new Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{const E=Number(v)?1:0;if(this.prerelease.length===0)this.prerelease=[E];else{let I=this.prerelease.length;for(;--I>=0;)typeof this.prerelease[I]=="number"&&(this.prerelease[I]++,I=-2);if(I===-1){if(l===this.prerelease.join(".")&&v===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(E)}}if(l){let I=[l,E];v===!1&&(I=[l]),u(this.prerelease[0],l)===0?isNaN(this.prerelease[1])&&(this.prerelease=I):this.prerelease=I}break}default:throw new Error(`invalid increment argument: ${p}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}}return Ke=f,Ke}var Je,Vt;function Gi(){if(Vt)return Je;Vt=1;const e=ur();return Je=(i,r)=>new e(i,r).major,Je}Gi();var et,Xt;function Vi(){if(Xt)return et;Xt=1;const e=ur();return et=(i,r,n=!1)=>{if(i instanceof e)return i;try{return new e(i,r)}catch(c){if(!n)return null;throw c}},et}var tt,jt;function Xi(){if(jt)return tt;jt=1;const e=Vi();return tt=(i,r)=>{const n=e(i,r);return n?n.version:null},tt}Xi();var Ht={},Wt;function ji(){return Wt||(Wt=1,(function(e){(function(i){i.parser=function(a,t){return new n(a,t)},i.SAXParser=n,i.SAXStream=l,i.createStream=p,i.MAX_BUFFER_LENGTH=64*1024;var r=["comment","sgmlDecl","textNode","tagName","doctype","procInstName","procInstBody","entity","attribName","attribValue","cdata","script"];i.EVENTS=["text","processinginstruction","sgmldeclaration","doctype","comment","opentagstart","attribute","opentag","closetag","opencdata","cdata","closecdata","error","end","ready","script","opennamespace","closenamespace"];function n(a,t){if(!(this instanceof n))return new n(a,t);var h=this;m(h),h.q=h.c="",h.bufferCheckPosition=i.MAX_BUFFER_LENGTH,h.opt=t||{},h.opt.lowercase=h.opt.lowercase||h.opt.lowercasetags,h.looseCase=h.opt.lowercase?"toLowerCase":"toUpperCase",h.tags=[],h.closed=h.closedRoot=h.sawRoot=!1,h.tag=h.error=null,h.strict=!!a,h.noscript=!!(a||h.opt.noscript),h.state=o.BEGIN,h.strictEntities=h.opt.strictEntities,h.ENTITIES=h.strictEntities?Object.create(i.XML_ENTITIES):Object.create(i.ENTITIES),h.attribList=[],h.opt.xmlns&&(h.ns=Object.create(_)),h.opt.unquotedAttributeValues===void 0&&(h.opt.unquotedAttributeValues=!a),h.trackPosition=h.opt.position!==!1,h.trackPosition&&(h.position=h.line=h.column=0),y(h,"onready")}Object.create||(Object.create=function(a){function t(){}t.prototype=a;var h=new t;return h}),Object.keys||(Object.keys=function(a){var t=[];for(var h in a)a.hasOwnProperty(h)&&t.push(h);return t});function c(a){for(var t=Math.max(i.MAX_BUFFER_LENGTH,10),h=0,s=0,L=r.length;st)switch(r[s]){case"textNode":ne(a);break;case"cdata":N(a,"oncdata",a.cdata),a.cdata="";break;case"script":N(a,"onscript",a.script),a.script="";break;default:ge(a,"Max buffer length exceeded: "+r[s])}h=Math.max(h,U)}var z=i.MAX_BUFFER_LENGTH-h;a.bufferCheckPosition=z+a.position}function m(a){for(var t=0,h=r.length;t`};function ki(){return Ne()?`/files/${$r()}`:`/files/${$e()?.uid}`}const Ae=ki();function Fi(){const e=Br("dav");return Ne()?e.replace("remote.php","public.php"):e}const or=Fi(),$i=function(e=or,i={}){const r=xr(e,{headers:i});function n(c){r.setHeaders({...i,"X-Requested-With":"XMLHttpRequest",requesttoken:c??""})}return Rr(n),n(Dr()),Mr().patch("fetch",(c,m)=>{const u=m.headers;return u?.method&&(m.method=u.method,delete u.method),fetch(c,m)}),r},Pi=(e,i="/",r=Ae)=>{const n=new AbortController;return new ie(async(c,m,u)=>{u(()=>n.abort());try{const f=(await e.getDirectoryContents(`${r}${i}`,{signal:n.signal,details:!0,data:Oi(),headers:{method:"REPORT"},includeSelf:!0})).data.filter(d=>d.filename!==i).map(d=>Me(d,r));c(f)}catch(f){m(f)}})},Me=function(e,i=Ae,r=or){let n=$e()?.uid;if(Ne())n=n??"anonymous";else if(!n)throw new Error("No user id found");const c=e.props,m=Li(c?.permissions),u=String(c?.["owner-id"]||n),f=c.fileid||0,d=new Date(Date.parse(e.lastmod)),p=new Date(Date.parse(c.creationdate)),l={id:f,source:`${r}${e.filename}`,mtime:!isNaN(d.getTime())&&d.getTime()!==0?d:void 0,crtime:!isNaN(p.getTime())&&p.getTime()!==0?p:void 0,mime:e.mime||"application/octet-stream",displayname:c.displayname!==void 0?String(c.displayname):void 0,size:c?.size||Number.parseInt(c.getcontentlength||"0"),status:f<0?mt.FAILED:void 0,permissions:m,owner:u,root:i,attributes:{...e,...c,hasPreview:c?.["has-preview"]}};return delete l.attributes?.props,e.type==="file"?new ht(l):new ft(l)};var Bi=Vr();const xi=Or(Bi);var We={},Pt,Bt;function lr(){return Bt||(Bt=1,Pt=typeof Sr=="object"&&We&&We.NODE_DEBUG&&/\bsemver\b/i.test(We.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{}),Pt}var Ye,xt;function cr(){if(xt)return Ye;xt=1;const e="2.0.0",i=256,r=Number.MAX_SAFE_INTEGER||9007199254740991,n=16,c=i-6;return Ye={MAX_LENGTH:i,MAX_SAFE_COMPONENT_LENGTH:n,MAX_SAFE_BUILD_LENGTH:c,MAX_SAFE_INTEGER:r,RELEASE_TYPES:["major","premajor","minor","preminor","patch","prepatch","prerelease"],SEMVER_SPEC_VERSION:e,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2},Ye}var qe={exports:{}},Mt;function Mi(){return Mt||(Mt=1,(function(e,i){const{MAX_SAFE_COMPONENT_LENGTH:r,MAX_SAFE_BUILD_LENGTH:n,MAX_LENGTH:c}=cr(),m=lr();i=e.exports={};const u=i.re=[],f=i.safeRe=[],d=i.src=[],p=i.safeSrc=[],l=i.t={};let v=0;const E="[a-zA-Z0-9-]",I=[["\\s",1],["\\d",c],[E,n]],V=W=>{for(const[X,te]of I)W=W.split(`${X}*`).join(`${X}{0,${te}}`).split(`${X}+`).join(`${X}{1,${te}}`);return W},_=(W,X,te)=>{const J=V(X),C=v++;m(W,C,X),l[W]=C,d[C]=X,p[C]=J,u[C]=new RegExp(X,te?"g":void 0),f[C]=new RegExp(J,te?"g":void 0)};_("NUMERICIDENTIFIER","0|[1-9]\\d*"),_("NUMERICIDENTIFIERLOOSE","\\d+"),_("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${E}*`),_("MAINVERSION",`(${d[l.NUMERICIDENTIFIER]})\\.(${d[l.NUMERICIDENTIFIER]})\\.(${d[l.NUMERICIDENTIFIER]})`),_("MAINVERSIONLOOSE",`(${d[l.NUMERICIDENTIFIERLOOSE]})\\.(${d[l.NUMERICIDENTIFIERLOOSE]})\\.(${d[l.NUMERICIDENTIFIERLOOSE]})`),_("PRERELEASEIDENTIFIER",`(?:${d[l.NONNUMERICIDENTIFIER]}|${d[l.NUMERICIDENTIFIER]})`),_("PRERELEASEIDENTIFIERLOOSE",`(?:${d[l.NONNUMERICIDENTIFIER]}|${d[l.NUMERICIDENTIFIERLOOSE]})`),_("PRERELEASE",`(?:-(${d[l.PRERELEASEIDENTIFIER]}(?:\\.${d[l.PRERELEASEIDENTIFIER]})*))`),_("PRERELEASELOOSE",`(?:-?(${d[l.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${d[l.PRERELEASEIDENTIFIERLOOSE]})*))`),_("BUILDIDENTIFIER",`${E}+`),_("BUILD",`(?:\\+(${d[l.BUILDIDENTIFIER]}(?:\\.${d[l.BUILDIDENTIFIER]})*))`),_("FULLPLAIN",`v?${d[l.MAINVERSION]}${d[l.PRERELEASE]}?${d[l.BUILD]}?`),_("FULL",`^${d[l.FULLPLAIN]}$`),_("LOOSEPLAIN",`[v=\\s]*${d[l.MAINVERSIONLOOSE]}${d[l.PRERELEASELOOSE]}?${d[l.BUILD]}?`),_("LOOSE",`^${d[l.LOOSEPLAIN]}$`),_("GTLT","((?:<|>)?=?)"),_("XRANGEIDENTIFIERLOOSE",`${d[l.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),_("XRANGEIDENTIFIER",`${d[l.NUMERICIDENTIFIER]}|x|X|\\*`),_("XRANGEPLAIN",`[v=\\s]*(${d[l.XRANGEIDENTIFIER]})(?:\\.(${d[l.XRANGEIDENTIFIER]})(?:\\.(${d[l.XRANGEIDENTIFIER]})(?:${d[l.PRERELEASE]})?${d[l.BUILD]}?)?)?`),_("XRANGEPLAINLOOSE",`[v=\\s]*(${d[l.XRANGEIDENTIFIERLOOSE]})(?:\\.(${d[l.XRANGEIDENTIFIERLOOSE]})(?:\\.(${d[l.XRANGEIDENTIFIERLOOSE]})(?:${d[l.PRERELEASELOOSE]})?${d[l.BUILD]}?)?)?`),_("XRANGE",`^${d[l.GTLT]}\\s*${d[l.XRANGEPLAIN]}$`),_("XRANGELOOSE",`^${d[l.GTLT]}\\s*${d[l.XRANGEPLAINLOOSE]}$`),_("COERCEPLAIN",`(^|[^\\d])(\\d{1,${r}})(?:\\.(\\d{1,${r}}))?(?:\\.(\\d{1,${r}}))?`),_("COERCE",`${d[l.COERCEPLAIN]}(?:$|[^\\d])`),_("COERCEFULL",d[l.COERCEPLAIN]+`(?:${d[l.PRERELEASE]})?(?:${d[l.BUILD]})?(?:$|[^\\d])`),_("COERCERTL",d[l.COERCE],!0),_("COERCERTLFULL",d[l.COERCEFULL],!0),_("LONETILDE","(?:~>?)"),_("TILDETRIM",`(\\s*)${d[l.LONETILDE]}\\s+`,!0),i.tildeTrimReplace="$1~",_("TILDE",`^${d[l.LONETILDE]}${d[l.XRANGEPLAIN]}$`),_("TILDELOOSE",`^${d[l.LONETILDE]}${d[l.XRANGEPLAINLOOSE]}$`),_("LONECARET","(?:\\^)"),_("CARETTRIM",`(\\s*)${d[l.LONECARET]}\\s+`,!0),i.caretTrimReplace="$1^",_("CARET",`^${d[l.LONECARET]}${d[l.XRANGEPLAIN]}$`),_("CARETLOOSE",`^${d[l.LONECARET]}${d[l.XRANGEPLAINLOOSE]}$`),_("COMPARATORLOOSE",`^${d[l.GTLT]}\\s*(${d[l.LOOSEPLAIN]})$|^$`),_("COMPARATOR",`^${d[l.GTLT]}\\s*(${d[l.FULLPLAIN]})$|^$`),_("COMPARATORTRIM",`(\\s*)${d[l.GTLT]}\\s*(${d[l.LOOSEPLAIN]}|${d[l.XRANGEPLAIN]})`,!0),i.comparatorTrimReplace="$1$2$3",_("HYPHENRANGE",`^\\s*(${d[l.XRANGEPLAIN]})\\s+-\\s+(${d[l.XRANGEPLAIN]})\\s*$`),_("HYPHENRANGELOOSE",`^\\s*(${d[l.XRANGEPLAINLOOSE]})\\s+-\\s+(${d[l.XRANGEPLAINLOOSE]})\\s*$`),_("STAR","(<|>)?=?\\s*\\*"),_("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),_("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")})(qe,qe.exports)),qe.exports}var Qe,Ut;function Ui(){if(Ut)return Qe;Ut=1;const e=Object.freeze({loose:!0}),i=Object.freeze({});return Qe=r=>r?typeof r!="object"?e:r:i,Qe}var Ze,zt;function zi(){if(zt)return Ze;zt=1;const e=/^[0-9]+$/,i=(r,n)=>{if(typeof r=="number"&&typeof n=="number")return r===n?0:ri(n,r)},Ze}var Ke,Gt;function ur(){if(Gt)return Ke;Gt=1;const e=lr(),{MAX_LENGTH:i,MAX_SAFE_INTEGER:r}=cr(),{safeRe:n,t:c}=Mi(),m=Ui(),{compareIdentifiers:u}=zi();class f{constructor(p,l){if(l=m(l),p instanceof f){if(p.loose===!!l.loose&&p.includePrerelease===!!l.includePrerelease)return p;p=p.version}else if(typeof p!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof p}".`);if(p.length>i)throw new TypeError(`version is longer than ${i} characters`);e("SemVer",p,l),this.options=l,this.loose=!!l.loose,this.includePrerelease=!!l.includePrerelease;const v=p.trim().match(l.loose?n[c.LOOSE]:n[c.FULL]);if(!v)throw new TypeError(`Invalid Version: ${p}`);if(this.raw=p,this.major=+v[1],this.minor=+v[2],this.patch=+v[3],this.major>r||this.major<0)throw new TypeError("Invalid major version");if(this.minor>r||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>r||this.patch<0)throw new TypeError("Invalid patch version");v[4]?this.prerelease=v[4].split(".").map(E=>{if(/^[0-9]+$/.test(E)){const I=+E;if(I>=0&&Ip.major?1:this.minorp.minor?1:this.patchp.patch?1:0}comparePre(p){if(p instanceof f||(p=new f(p,this.options)),this.prerelease.length&&!p.prerelease.length)return-1;if(!this.prerelease.length&&p.prerelease.length)return 1;if(!this.prerelease.length&&!p.prerelease.length)return 0;let l=0;do{const v=this.prerelease[l],E=p.prerelease[l];if(e("prerelease compare",l,v,E),v===void 0&&E===void 0)return 0;if(E===void 0)return 1;if(v===void 0)return-1;if(v!==E)return u(v,E)}while(++l)}compareBuild(p){p instanceof f||(p=new f(p,this.options));let l=0;do{const v=this.build[l],E=p.build[l];if(e("build compare",l,v,E),v===void 0&&E===void 0)return 0;if(E===void 0)return 1;if(v===void 0)return-1;if(v!==E)return u(v,E)}while(++l)}inc(p,l,v){if(p.startsWith("pre")){if(!l&&v===!1)throw new Error("invalid increment argument: identifier is empty");if(l){const E=`-${l}`.match(this.options.loose?n[c.PRERELEASELOOSE]:n[c.PRERELEASE]);if(!E||E[1]!==l)throw new Error(`invalid identifier: ${l}`)}}switch(p){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",l,v);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",l,v);break;case"prepatch":this.prerelease.length=0,this.inc("patch",l,v),this.inc("pre",l,v);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",l,v),this.inc("pre",l,v);break;case"release":if(this.prerelease.length===0)throw new Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{const E=Number(v)?1:0;if(this.prerelease.length===0)this.prerelease=[E];else{let I=this.prerelease.length;for(;--I>=0;)typeof this.prerelease[I]=="number"&&(this.prerelease[I]++,I=-2);if(I===-1){if(l===this.prerelease.join(".")&&v===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(E)}}if(l){let I=[l,E];v===!1&&(I=[l]),u(this.prerelease[0],l)===0?isNaN(this.prerelease[1])&&(this.prerelease=I):this.prerelease=I}break}default:throw new Error(`invalid increment argument: ${p}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}}return Ke=f,Ke}var Je,Vt;function Gi(){if(Vt)return Je;Vt=1;const e=ur();return Je=(i,r)=>new e(i,r).major,Je}Gi();var et,Xt;function Vi(){if(Xt)return et;Xt=1;const e=ur();return et=(i,r,n=!1)=>{if(i instanceof e)return i;try{return new e(i,r)}catch(c){if(!n)return null;throw c}},et}var tt,Ht;function Xi(){if(Ht)return tt;Ht=1;const e=Vi();return tt=(i,r)=>{const n=e(i,r);return n?n.version:null},tt}Xi();var jt={},Wt;function Hi(){return Wt||(Wt=1,(function(e){(function(i){i.parser=function(a,t){return new n(a,t)},i.SAXParser=n,i.SAXStream=l,i.createStream=p,i.MAX_BUFFER_LENGTH=64*1024;var r=["comment","sgmlDecl","textNode","tagName","doctype","procInstName","procInstBody","entity","attribName","attribValue","cdata","script"];i.EVENTS=["text","processinginstruction","sgmldeclaration","doctype","comment","opentagstart","attribute","opentag","closetag","opencdata","cdata","closecdata","error","end","ready","script","opennamespace","closenamespace"];function n(a,t){if(!(this instanceof n))return new n(a,t);var h=this;m(h),h.q=h.c="",h.bufferCheckPosition=i.MAX_BUFFER_LENGTH,h.opt=t||{},h.opt.lowercase=h.opt.lowercase||h.opt.lowercasetags,h.looseCase=h.opt.lowercase?"toLowerCase":"toUpperCase",h.tags=[],h.closed=h.closedRoot=h.sawRoot=!1,h.tag=h.error=null,h.strict=!!a,h.noscript=!!(a||h.opt.noscript),h.state=o.BEGIN,h.strictEntities=h.opt.strictEntities,h.ENTITIES=h.strictEntities?Object.create(i.XML_ENTITIES):Object.create(i.ENTITIES),h.attribList=[],h.opt.xmlns&&(h.ns=Object.create(_)),h.opt.unquotedAttributeValues===void 0&&(h.opt.unquotedAttributeValues=!a),h.trackPosition=h.opt.position!==!1,h.trackPosition&&(h.position=h.line=h.column=0),y(h,"onready")}Object.create||(Object.create=function(a){function t(){}t.prototype=a;var h=new t;return h}),Object.keys||(Object.keys=function(a){var t=[];for(var h in a)a.hasOwnProperty(h)&&t.push(h);return t});function c(a){for(var t=Math.max(i.MAX_BUFFER_LENGTH,10),h=0,s=0,L=r.length;st)switch(r[s]){case"textNode":ne(a);break;case"cdata":N(a,"oncdata",a.cdata),a.cdata="";break;case"script":N(a,"onscript",a.script),a.script="";break;default:ge(a,"Max buffer length exceeded: "+r[s])}h=Math.max(h,U)}var z=i.MAX_BUFFER_LENGTH-h;a.bufferCheckPosition=z+a.position}function m(a){for(var t=0,h=r.length;t"||C(a)}function D(a,t){return a.test(t)}function ae(a,t){return!D(a,t)}var o=0;i.STATE={BEGIN:o++,BEGIN_WHITESPACE:o++,TEXT:o++,TEXT_ENTITY:o++,OPEN_WAKA:o++,SGML_DECL:o++,SGML_DECL_QUOTED:o++,DOCTYPE:o++,DOCTYPE_QUOTED:o++,DOCTYPE_DTD:o++,DOCTYPE_DTD_QUOTED:o++,COMMENT_STARTING:o++,COMMENT:o++,COMMENT_ENDING:o++,COMMENT_ENDED:o++,CDATA:o++,CDATA_ENDING:o++,CDATA_ENDING_2:o++,PROC_INST:o++,PROC_INST_BODY:o++,PROC_INST_ENDING:o++,OPEN_TAG:o++,OPEN_TAG_SLASH:o++,ATTRIB:o++,ATTRIB_NAME:o++,ATTRIB_NAME_SAW_WHITE:o++,ATTRIB_VALUE:o++,ATTRIB_VALUE_QUOTED:o++,ATTRIB_VALUE_CLOSED:o++,ATTRIB_VALUE_UNQUOTED:o++,ATTRIB_VALUE_ENTITY_Q:o++,ATTRIB_VALUE_ENTITY_U:o++,CLOSE_TAG:o++,CLOSE_TAG_SAW_WHITE:o++,SCRIPT:o++,SCRIPT_ENDING:o++},i.XML_ENTITIES={amp:"&",gt:">",lt:"<",quot:'"',apos:"'"},i.ENTITIES={amp:"&",gt:">",lt:"<",quot:'"',apos:"'",AElig:198,Aacute:193,Acirc:194,Agrave:192,Aring:197,Atilde:195,Auml:196,Ccedil:199,ETH:208,Eacute:201,Ecirc:202,Egrave:200,Euml:203,Iacute:205,Icirc:206,Igrave:204,Iuml:207,Ntilde:209,Oacute:211,Ocirc:212,Ograve:210,Oslash:216,Otilde:213,Ouml:214,THORN:222,Uacute:218,Ucirc:219,Ugrave:217,Uuml:220,Yacute:221,aacute:225,acirc:226,aelig:230,agrave:224,aring:229,atilde:227,auml:228,ccedil:231,eacute:233,ecirc:234,egrave:232,eth:240,euml:235,iacute:237,icirc:238,igrave:236,iuml:239,ntilde:241,oacute:243,ocirc:244,ograve:242,oslash:248,otilde:245,ouml:246,szlig:223,thorn:254,uacute:250,ucirc:251,ugrave:249,uuml:252,yacute:253,yuml:255,copy:169,reg:174,nbsp:160,iexcl:161,cent:162,pound:163,curren:164,yen:165,brvbar:166,sect:167,uml:168,ordf:170,laquo:171,not:172,shy:173,macr:175,deg:176,plusmn:177,sup1:185,sup2:178,sup3:179,acute:180,micro:181,para:182,middot:183,cedil:184,ordm:186,raquo:187,frac14:188,frac12:189,frac34:190,iquest:191,times:215,divide:247,OElig:338,oelig:339,Scaron:352,scaron:353,Yuml:376,fnof:402,circ:710,tilde:732,Alpha:913,Beta:914,Gamma:915,Delta:916,Epsilon:917,Zeta:918,Eta:919,Theta:920,Iota:921,Kappa:922,Lambda:923,Mu:924,Nu:925,Xi:926,Omicron:927,Pi:928,Rho:929,Sigma:931,Tau:932,Upsilon:933,Phi:934,Chi:935,Psi:936,Omega:937,alpha:945,beta:946,gamma:947,delta:948,epsilon:949,zeta:950,eta:951,theta:952,iota:953,kappa:954,lambda:955,mu:956,nu:957,xi:958,omicron:959,pi:960,rho:961,sigmaf:962,sigma:963,tau:964,upsilon:965,phi:966,chi:967,psi:968,omega:969,thetasym:977,upsih:978,piv:982,ensp:8194,emsp:8195,thinsp:8201,zwnj:8204,zwj:8205,lrm:8206,rlm:8207,ndash:8211,mdash:8212,lsquo:8216,rsquo:8217,sbquo:8218,ldquo:8220,rdquo:8221,bdquo:8222,dagger:8224,Dagger:8225,bull:8226,hellip:8230,permil:8240,prime:8242,Prime:8243,lsaquo:8249,rsaquo:8250,oline:8254,frasl:8260,euro:8364,image:8465,weierp:8472,real:8476,trade:8482,alefsym:8501,larr:8592,uarr:8593,rarr:8594,darr:8595,harr:8596,crarr:8629,lArr:8656,uArr:8657,rArr:8658,dArr:8659,hArr:8660,forall:8704,part:8706,exist:8707,empty:8709,nabla:8711,isin:8712,notin:8713,ni:8715,prod:8719,sum:8721,minus:8722,lowast:8727,radic:8730,prop:8733,infin:8734,ang:8736,and:8743,or:8744,cap:8745,cup:8746,int:8747,there4:8756,sim:8764,cong:8773,asymp:8776,ne:8800,equiv:8801,le:8804,ge:8805,sub:8834,sup:8835,nsub:8836,sube:8838,supe:8839,oplus:8853,otimes:8855,perp:8869,sdot:8901,lceil:8968,rceil:8969,lfloor:8970,rfloor:8971,lang:9001,rang:9002,loz:9674,spades:9824,clubs:9827,hearts:9829,diams:9830},Object.keys(i.ENTITIES).forEach(function(a){var t=i.ENTITIES[a],h=typeof t=="number"?String.fromCharCode(t):t;i.ENTITIES[a]=h});for(var S in i.STATE)i.STATE[i.STATE[S]]=S;o=i.STATE;function y(a,t,h){a[t]&&a[t](h)}function N(a,t,h){a.textNode&&ne(a),y(a,t,h)}function ne(a){a.textNode=Et(a.opt,a.textNode),a.textNode&&y(a,"ontext",a.textNode),a.textNode=""}function Et(a,t){return a.trim&&(t=t.trim()),a.normalize&&(t=t.replace(/\s+/g," ")),t}function ge(a,t){return ne(a),a.trackPosition&&(t+=` Line: `+a.line+` Column: `+a.column+` Char: `+a.c),t=new Error(t),a.error=t,y(a,"onerror",t),a}function bt(a){return a.sawRoot&&!a.closedRoot&&R(a,"Unclosed root tag"),a.state!==o.BEGIN&&a.state!==o.BEGIN_WHITESPACE&&a.state!==o.TEXT&&ge(a,"Unexpected end"),ne(a),a.c="",a.closed=!0,y(a,"onend"),n.call(a,a.strict,a.opt),a}function R(a,t){if(typeof a!="object"||!(a instanceof n))throw new Error("bad call to strictFail");a.strict&&ge(a,t)}function hr(a){a.strict||(a.tagName=a.tagName[a.looseCase]());var t=a.tags[a.tags.length-1]||a,h=a.tag={name:a.tagName,attributes:{}};a.opt.xmlns&&(h.ns=t.ns),a.attribList.length=0,N(a,"onopentagstart",h)}function Ue(a,t){var h=a.indexOf(":"),s=h<0?["",a]:a.split(":"),L=s[0],U=s[1];return t&&a==="xmlns"&&(L="xmlns",U=""),{prefix:L,local:U}}function ze(a){if(a.strict||(a.attribName=a.attribName[a.looseCase]()),a.attribList.indexOf(a.attribName)!==-1||a.tag.attributes.hasOwnProperty(a.attribName)){a.attribName=a.attribValue="";return}if(a.opt.xmlns){var t=Ue(a.attribName,!0),h=t.prefix,s=t.local;if(h==="xmlns")if(s==="xml"&&a.attribValue!==I)R(a,"xml: prefix must be bound to "+I+` Actual: `+a.attribValue);else if(s==="xmlns"&&a.attribValue!==V)R(a,"xmlns: prefix must be bound to "+V+` -Actual: `+a.attribValue);else{var L=a.tag,U=a.tags[a.tags.length-1]||a;L.ns===U.ns&&(L.ns=Object.create(U.ns)),L.ns[s]=a.attribValue}a.attribList.push([a.attribName,a.attribValue])}else a.tag.attributes[a.attribName]=a.attribValue,N(a,"onattribute",{name:a.attribName,value:a.attribValue});a.attribName=a.attribValue=""}function de(a,t){if(a.opt.xmlns){var h=a.tag,s=Ue(a.tagName);h.prefix=s.prefix,h.local=s.local,h.uri=h.ns[s.prefix]||"",h.prefix&&!h.uri&&(R(a,"Unbound namespace prefix: "+JSON.stringify(a.tagName)),h.uri=s.prefix);var L=a.tags[a.tags.length-1]||a;h.ns&&L.ns!==h.ns&&Object.keys(h.ns).forEach(function(Tt){N(a,"onopennamespace",{prefix:Tt,uri:h.ns[Tt]})});for(var U=0,z=a.attribList.length;U",a.tagName="",a.state=o.SCRIPT;return}N(a,"onscript",a.script),a.script=""}var t=a.tags.length,h=a.tagName;a.strict||(h=h[a.looseCase]());for(var s=h;t--;){var L=a.tags[t];if(L.name!==s)R(a,"Unexpected close tag");else break}if(t<0){R(a,"Unmatched closing tag: "+a.tagName),a.textNode+="",a.state=o.TEXT;return}a.tagName=h;for(var U=a.tags.length;U-- >t;){var z=a.tag=a.tags.pop();a.tagName=a.tag.name,N(a,"onclosetag",a.tagName);var Q={};for(var Z in z.ns)Q[Z]=z.ns[Z];var he=a.tags[a.tags.length-1]||a;a.opt.xmlns&&z.ns!==he.ns&&Object.keys(z.ns).forEach(function(j){var se=z.ns[j];N(a,"onclosenamespace",{prefix:j,uri:se})})}t===0&&(a.closedRoot=!0),a.tagName=a.attribValue=a.attribName="",a.attribList.length=0,a.state=o.TEXT}function fr(a){var t=a.entity,h=t.toLowerCase(),s,L="";return a.ENTITIES[t]?a.ENTITIES[t]:a.ENTITIES[h]?a.ENTITIES[h]:(t=h,t.charAt(0)==="#"&&(t.charAt(1)==="x"?(t=t.slice(2),s=parseInt(t,16),L=s.toString(16)):(t=t.slice(1),s=parseInt(t,10),L=s.toString(10))),t=t.replace(/^0+/,""),isNaN(s)||L.toLowerCase()!==t?(R(a,"Invalid character entity"),"&"+a.entity+";"):String.fromCodePoint(s))}function _t(a,t){t==="<"?(a.state=o.OPEN_WAKA,a.startTagPosition=a.position):C(t)||(R(a,"Non-whitespace before first tag."),a.textNode=t,a.state=o.TEXT)}function wt(a,t){var h="";return t",a.tagName="",a.state=o.SCRIPT;return}N(a,"onscript",a.script),a.script=""}var t=a.tags.length,h=a.tagName;a.strict||(h=h[a.looseCase]());for(var s=h;t--;){var L=a.tags[t];if(L.name!==s)R(a,"Unexpected close tag");else break}if(t<0){R(a,"Unmatched closing tag: "+a.tagName),a.textNode+="",a.state=o.TEXT;return}a.tagName=h;for(var U=a.tags.length;U-- >t;){var z=a.tag=a.tags.pop();a.tagName=a.tag.name,N(a,"onclosetag",a.tagName);var Q={};for(var Z in z.ns)Q[Z]=z.ns[Z];var he=a.tags[a.tags.length-1]||a;a.opt.xmlns&&z.ns!==he.ns&&Object.keys(z.ns).forEach(function(H){var se=z.ns[H];N(a,"onclosenamespace",{prefix:H,uri:se})})}t===0&&(a.closedRoot=!0),a.tagName=a.attribValue=a.attribName="",a.attribList.length=0,a.state=o.TEXT}function fr(a){var t=a.entity,h=t.toLowerCase(),s,L="";return a.ENTITIES[t]?a.ENTITIES[t]:a.ENTITIES[h]?a.ENTITIES[h]:(t=h,t.charAt(0)==="#"&&(t.charAt(1)==="x"?(t=t.slice(2),s=parseInt(t,16),L=s.toString(16)):(t=t.slice(1),s=parseInt(t,10),L=s.toString(10))),t=t.replace(/^0+/,""),isNaN(s)||L.toLowerCase()!==t?(R(a,"Invalid character entity"),"&"+a.entity+";"):String.fromCodePoint(s))}function _t(a,t){t==="<"?(a.state=o.OPEN_WAKA,a.startTagPosition=a.position):C(t)||(R(a,"Non-whitespace before first tag."),a.textNode=t,a.state=o.TEXT)}function wt(a,t){var h="";return t"?(N(t,"onsgmldeclaration",t.sgmlDecl),t.sgmlDecl="",t.state=o.TEXT):(F(s)&&(t.state=o.SGML_DECL_QUOTED),t.sgmlDecl+=s);continue;case o.SGML_DECL_QUOTED:s===t.q&&(t.state=o.SGML_DECL,t.q=""),t.sgmlDecl+=s;continue;case o.DOCTYPE:s===">"?(t.state=o.TEXT,N(t,"ondoctype",t.doctype),t.doctype=!0):(t.doctype+=s,s==="["?t.state=o.DOCTYPE_DTD:F(s)&&(t.state=o.DOCTYPE_QUOTED,t.q=s));continue;case o.DOCTYPE_QUOTED:t.doctype+=s,s===t.q&&(t.q="",t.state=o.DOCTYPE);continue;case o.DOCTYPE_DTD:s==="]"?(t.doctype+=s,t.state=o.DOCTYPE):s==="<"?(t.state=o.OPEN_WAKA,t.startTagPosition=t.position):F(s)?(t.doctype+=s,t.state=o.DOCTYPE_DTD_QUOTED,t.q=s):t.doctype+=s;continue;case o.DOCTYPE_DTD_QUOTED:t.doctype+=s,s===t.q&&(t.state=o.DOCTYPE_DTD,t.q="");continue;case o.COMMENT:s==="-"?t.state=o.COMMENT_ENDING:t.comment+=s;continue;case o.COMMENT_ENDING:s==="-"?(t.state=o.COMMENT_ENDED,t.comment=Et(t.opt,t.comment),t.comment&&N(t,"oncomment",t.comment),t.comment=""):(t.comment+="-"+s,t.state=o.COMMENT);continue;case o.COMMENT_ENDED:s!==">"?(R(t,"Malformed comment"),t.comment+="--"+s,t.state=o.COMMENT):t.doctype&&t.doctype!==!0?t.state=o.DOCTYPE_DTD:t.state=o.TEXT;continue;case o.CDATA:s==="]"?t.state=o.CDATA_ENDING:t.cdata+=s;continue;case o.CDATA_ENDING:s==="]"?t.state=o.CDATA_ENDING_2:(t.cdata+="]"+s,t.state=o.CDATA);continue;case o.CDATA_ENDING_2:s===">"?(t.cdata&&N(t,"oncdata",t.cdata),N(t,"onclosecdata"),t.cdata="",t.state=o.TEXT):s==="]"?t.cdata+="]":(t.cdata+="]]"+s,t.state=o.CDATA);continue;case o.PROC_INST:s==="?"?t.state=o.PROC_INST_ENDING:C(s)?t.state=o.PROC_INST_BODY:t.procInstName+=s;continue;case o.PROC_INST_BODY:if(!t.procInstBody&&C(s))continue;s==="?"?t.state=o.PROC_INST_ENDING:t.procInstBody+=s;continue;case o.PROC_INST_ENDING:s===">"?(N(t,"onprocessinginstruction",{name:t.procInstName,body:t.procInstBody}),t.procInstName=t.procInstBody="",t.state=o.TEXT):(t.procInstBody+="?"+s,t.state=o.PROC_INST_BODY);continue;case o.OPEN_TAG:D(X,s)?t.tagName+=s:(hr(t),s===">"?de(t):s==="/"?t.state=o.OPEN_TAG_SLASH:(C(s)||R(t,"Invalid character in tag name"),t.state=o.ATTRIB));continue;case o.OPEN_TAG_SLASH:s===">"?(de(t,!0),Ge(t)):(R(t,"Forward-slash in opening tag not followed by >"),t.state=o.ATTRIB);continue;case o.ATTRIB:if(C(s))continue;s===">"?de(t):s==="/"?t.state=o.OPEN_TAG_SLASH:D(W,s)?(t.attribName=s,t.attribValue="",t.state=o.ATTRIB_NAME):R(t,"Invalid attribute name");continue;case o.ATTRIB_NAME:s==="="?t.state=o.ATTRIB_VALUE:s===">"?(R(t,"Attribute without value"),t.attribValue=t.attribName,ze(t),de(t)):C(s)?t.state=o.ATTRIB_NAME_SAW_WHITE:D(X,s)?t.attribName+=s:R(t,"Invalid attribute name");continue;case o.ATTRIB_NAME_SAW_WHITE:if(s==="=")t.state=o.ATTRIB_VALUE;else{if(C(s))continue;R(t,"Attribute without value"),t.tag.attributes[t.attribName]="",t.attribValue="",N(t,"onattribute",{name:t.attribName,value:""}),t.attribName="",s===">"?de(t):D(W,s)?(t.attribName=s,t.state=o.ATTRIB_NAME):(R(t,"Invalid attribute name"),t.state=o.ATTRIB)}continue;case o.ATTRIB_VALUE:if(C(s))continue;F(s)?(t.q=s,t.state=o.ATTRIB_VALUE_QUOTED):(t.opt.unquotedAttributeValues||ge(t,"Unquoted attribute value"),t.state=o.ATTRIB_VALUE_UNQUOTED,t.attribValue=s);continue;case o.ATTRIB_VALUE_QUOTED:if(s!==t.q){s==="&"?t.state=o.ATTRIB_VALUE_ENTITY_Q:t.attribValue+=s;continue}ze(t),t.q="",t.state=o.ATTRIB_VALUE_CLOSED;continue;case o.ATTRIB_VALUE_CLOSED:C(s)?t.state=o.ATTRIB:s===">"?de(t):s==="/"?t.state=o.OPEN_TAG_SLASH:D(W,s)?(R(t,"No whitespace between attributes"),t.attribName=s,t.attribValue="",t.state=o.ATTRIB_NAME):R(t,"Invalid attribute name");continue;case o.ATTRIB_VALUE_UNQUOTED:if(!M(s)){s==="&"?t.state=o.ATTRIB_VALUE_ENTITY_U:t.attribValue+=s;continue}ze(t),s===">"?de(t):t.state=o.ATTRIB;continue;case o.CLOSE_TAG:if(t.tagName)s===">"?Ge(t):D(X,s)?t.tagName+=s:t.script?(t.script+=""?Ge(t):R(t,"Invalid characters in closing tag");continue;case o.TEXT_ENTITY:case o.ATTRIB_VALUE_ENTITY_Q:case o.ATTRIB_VALUE_ENTITY_U:var z,Q;switch(t.state){case o.TEXT_ENTITY:z=o.TEXT,Q="textNode";break;case o.ATTRIB_VALUE_ENTITY_Q:z=o.ATTRIB_VALUE_QUOTED,Q="attribValue";break;case o.ATTRIB_VALUE_ENTITY_U:z=o.ATTRIB_VALUE_UNQUOTED,Q="attribValue";break}if(s===";"){var Z=fr(t);t.opt.unparsedEntities&&!Object.values(i.XML_ENTITIES).includes(Z)?(t.entity="",t.state=z,t.write(Z)):(t[Q]+=Z,t.entity="",t.state=z)}else D(t.entity.length?J:te,s)?t.entity+=s:(R(t,"Invalid character in entity name"),t[Q]+="&"+t.entity+s,t.entity="",t.state=z);continue;default:throw new Error(t,"Unknown state: "+t.state)}return t.position>=t.bufferCheckPosition&&c(t),t}String.fromCodePoint||(function(){var a=String.fromCharCode,t=Math.floor,h=function(){var s=16384,L=[],U,z,Q=-1,Z=arguments.length;if(!Z)return"";for(var he="";++Q1114111||t(j)!==j)throw RangeError("Invalid code point: "+j);j<=65535?L.push(j):(j-=65536,U=(j>>10)+55296,z=j%1024+56320,L.push(U,z)),(Q+1===Z||L.length>s)&&(he+=a.apply(null,L),L.length=0)}return he};Object.defineProperty?Object.defineProperty(String,"fromCodePoint",{value:h,configurable:!0,writable:!0}):String.fromCodePoint=h})()})(e)})(Ht)),Ht}ji();var Se=(e=>(e.ReservedName="reserved name",e.Character="character",e.Extension="extension",e))(Se||{});class Ee extends Error{constructor(i){super(`Invalid ${i.reason} '${i.segment}' in filename '${i.filename}'`,{cause:i})}get filename(){return this.cause.filename}get reason(){return this.cause.reason}get segment(){return this.cause.segment}}function Hi(e){const i=Ur().files,r=i.forbidden_filename_characters??window._oc_config?.forbidden_filenames_characters??["/","\\"];for(const u of r)if(e.includes(u))throw new Ee({segment:u,reason:"character",filename:e});if(e=e.toLocaleLowerCase(),(i.forbidden_filenames??[".htaccess"]).includes(e))throw new Ee({filename:e,segment:e,reason:"reserved name"});const n=e.indexOf(".",1),c=e.substring(0,n===-1?void 0:n);if((i.forbidden_filename_basenames??[]).includes(c))throw new Ee({filename:e,segment:c,reason:"reserved name"});const m=i.forbidden_filename_extensions??[".part",".filepart"];for(const u of m)if(e.length>u.length&&e.endsWith(u))throw new Ee({segment:u,reason:"extension",filename:e})}const rt=["B","KB","MB","GB","TB","PB"],it=["B","KiB","MiB","GiB","TiB","PiB"];function Wi(e,i=!1,r=!1,n=!1){r=r&&!n,typeof e=="string"&&(e=Number(e));let c=e>0?Math.floor(Math.log(e)/Math.log(n?1e3:1024)):0;c=Math.min((r?it.length:rt.length)-1,c);const m=r?it[c]:rt[c];let u=(e/Math.pow(n?1e3:1024,c)).toFixed(1);return i===!0&&c===0?(u!=="0.0"?"< 1 ":"0 ")+(r?it[1]:rt[1]):(c<2?u=parseFloat(u).toFixed(0):u=parseFloat(u).toLocaleString(er()),u+" "+m)}function qt(e){return e instanceof Date?e.toISOString():String(e)}function qi(e,i,r){i=i??[m=>m],r=r??[];const n=i.map((m,u)=>(r[u]??"asc")==="asc"?1:-1),c=Intl.Collator([jr(),er()],{numeric:!0,usage:"sort"});return[...e].sort((m,u)=>{for(const[f,d]of i.entries()){const p=c.compare(qt(d(m)),qt(d(u)));if(p!==0)return p*n[f]}return 0})}function Yi(e,i={}){const r={sortingMode:"basename",sortingOrder:"asc",...i};function n(u){const f=u.displayname||u.attributes?.displayname||u.basename||"";return u.type===le.Folder?f:f.lastIndexOf(".")>0?f.slice(0,f.lastIndexOf(".")):f}const c=[...r.sortFavoritesFirst?[u=>u.attributes?.favorite!==1]:[],...r.sortFoldersFirst?[u=>u.type!=="folder"]:[],...r.sortingMode!=="basename"?[u=>u[r.sortingMode]??u.attributes[r.sortingMode]]:[],u=>n(u),u=>u.basename],m=[...r.sortFavoritesFirst?["asc"]:[],...r.sortFoldersFirst?["asc"]:[],...r.sortingMode==="mtime"?[r.sortingOrder==="asc"?"desc":"asc"]:[],...r.sortingMode!=="mtime"&&r.sortingMode!=="basename"?[r.sortingOrder]:[],r.sortingOrder,r.sortingOrder];return qi(e,c,m)}const Qi=new ti({concurrency:5});function Zi(e){const{resolve:i,promise:r}=Promise.withResolvers();return Qi.add(()=>{const n=new Image;return n.onerror=()=>i(!1),n.onload=()=>i(!0),n.src=e,r}),r}function Ki(e,i={}){i={size:32,cropPreview:!1,mimeFallback:!0,...i};try{const r=e.attributes?.previewUrl||ut("/core/preview?fileId={fileid}",{fileid:e.fileid});let n;try{n=new URL(r)}catch{n=new URL(r,window.location.origin)}return n.searchParams.set("x",`${i.size}`),n.searchParams.set("y",`${i.size}`),n.searchParams.set("mimeFallback",`${i.mimeFallback}`),n.searchParams.set("a",i.cropPreview===!0?"0":"1"),n.searchParams.set("c",`${e.attributes.etag}`),n}catch{return null}}function Ji(e,i){const r=P(null),n=P(!1);return Er(()=>{n.value=!1,r.value=Ki(_e(e),_e(i||{})),r.value&&_e(e).type===le.File&&Zi(r.value.href).then(c=>{n.value=c})}),{previewURL:r,previewLoaded:n}}const K=(e,i)=>{const r=e.__vccOpts||e;for(const[n,c]of i)r[n]=c;return r},ea={name:"FileIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ta=["aria-hidden","aria-label"],ra=["fill","width","height"],ia={d:"M13,9V3.5L18.5,9M6,2C4.89,2 4,2.89 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2H6Z"},aa={key:0};function na(e,i,r,n,c,m){return g(),b("span",re(e.$attrs,{"aria-hidden":r.title?null:"true","aria-label":r.title,class:"material-design-icon file-icon",role:"img",onClick:i[0]||(i[0]=u=>e.$emit("click",u))}),[(g(),b("svg",{fill:r.fillColor,class:"material-design-icon__svg",width:r.size,height:r.size,viewBox:"0 0 24 24"},[T("path",ia,[r.title?(g(),b("title",aa,x(r.title),1)):G("",!0)])],8,ra))],16,ta)}const ot=K(ea,[["render",na]]),sa={name:"MenuDownIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},oa=["aria-hidden","aria-label"],la=["fill","width","height"],ca={d:"M7,10L12,15L17,10H7Z"},ua={key:0};function da(e,i,r,n,c,m){return g(),b("span",re(e.$attrs,{"aria-hidden":r.title?null:"true","aria-label":r.title,class:"material-design-icon menu-down-icon",role:"img",onClick:i[0]||(i[0]=u=>e.$emit("click",u))}),[(g(),b("svg",{fill:r.fillColor,class:"material-design-icon__svg",width:r.size,height:r.size,viewBox:"0 0 24 24"},[T("path",ca,[r.title?(g(),b("title",ua,x(r.title),1)):G("",!0)])],8,la))],16,oa)}const at=K(sa,[["render",da]]),pa={name:"MenuUpIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ma=["aria-hidden","aria-label"],ha=["fill","width","height"],fa={d:"M7,15L12,10L17,15H7Z"},ga={key:0};function va(e,i,r,n,c,m){return g(),b("span",re(e.$attrs,{"aria-hidden":r.title?null:"true","aria-label":r.title,class:"material-design-icon menu-up-icon",role:"img",onClick:i[0]||(i[0]=u=>e.$emit("click",u))}),[(g(),b("svg",{fill:r.fillColor,class:"material-design-icon__svg",width:r.size,height:r.size,viewBox:"0 0 24 24"},[T("path",fa,[r.title?(g(),b("title",ga,x(r.title),1)):G("",!0)])],8,ha))],16,ma)}const nt=K(pa,[["render",va]]),Ea={name:"FolderIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ba=["aria-hidden","aria-label"],_a=["fill","width","height"],wa={d:"M10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6H12L10,4Z"},ya={key:0};function Ta(e,i,r,n,c,m){return g(),b("span",re(e.$attrs,{"aria-hidden":r.title?null:"true","aria-label":r.title,class:"material-design-icon folder-icon",role:"img",onClick:i[0]||(i[0]=u=>e.$emit("click",u))}),[(g(),b("svg",{fill:r.fillColor,class:"material-design-icon__svg",width:r.size,height:r.size,viewBox:"0 0 24 24"},[T("path",wa,[r.title?(g(),b("title",ya,x(r.title),1)):G("",!0)])],8,_a))],16,ba)}const dr=K(Ea,[["render",Ta]]),pr={"file-picker__file-icon":"_file-picker__file-icon_3v9zx_9","file-picker__file-icon--primary":"_file-picker__file-icon--primary_3v9zx_21","file-picker__file-icon-overlay":"_file-picker__file-icon-overlay_3v9zx_25"},Ia=me({__name:"FilePreview",props:{node:{},cropImagePreviews:{type:Boolean}},setup(e){const i=e,r=P(pr),{previewURL:n,previewLoaded:c}=Ji(Zt(i,"node"),O(()=>({cropPreview:i.cropImagePreviews}))),m=O(()=>i.node.type===le.File),u=O(()=>{if(i.node.type!==le.Folder)return null;if(i.node.attributes?.["is-encrypted"]===1)return Qr;if(i.node.attributes?.["is-tag"])return Zr;const f=Object.values(i.node.attributes?.["share-types"]||{}).flat();if(f.some(d=>d===Ot.Link||d===Ot.Email))return Kr;if(f.length>0)return Rt;switch(i.node.attributes?.["mount-type"]){case"external":case"external-session":return ei;case"group":return Jr;case"shared":return Rt}return null});return(f,d)=>(g(),b("div",{style:Ir(w(c)?{backgroundImage:`url(${w(n)})`}:void 0),class:fe(r.value["file-picker__file-icon"])},[w(c)?G("",!0):(g(),b(oe,{key:0},[m.value?(g(),B(ot,{key:0,size:32})):(g(),b(oe,{key:1},[u.value?(g(),B(w(tr),{key:0,class:fe(r.value["file-picker__file-icon-overlay"]),inline:"",path:u.value,size:16},null,8,["class","path"])):G("",!0),$(dr,{class:fe(r.value["file-picker__file-icon--primary"]),size:32},null,8,["class"])],64))],64))],6))}}),Na=["tabindex","aria-selected","data-filename"],Aa={class:"row-name"},Ca={class:"file-picker__name-container","data-testid":"row-name"},La=["title","textContent"],Da=["textContent"],Ra={class:"row-size"},Oa={class:"row-modified"},Sa=me({__name:"FileListRow",props:{allowPickDirectory:{type:Boolean},selected:{type:Boolean},showCheckbox:{type:Boolean},canPick:{type:Boolean},node:{},cropImagePreviews:{type:Boolean}},emits:["update:selected","enterDirectory"],setup(e,{emit:i}){const r=e,n=i,c=O(()=>r.node.mtime??0),m=O(()=>Kt(r.node.displayname)),u=O(()=>r.node.displayname.slice(0,m.value?-m.value.length:void 0)),f=O(()=>r.node.type===le.Folder),d=O(()=>r.canPick&&(r.allowPickDirectory||!f.value)),p=O(()=>(r.node.permissions&ee.READ)===ee.READ);function l(){d.value&&n("update:selected",!r.selected)}function v(){f.value?p.value&&n("enterDirectory",r.node):l()}function E(I){I.key==="Enter"&&v()}return(I,V)=>(g(),b("tr",re({tabindex:e.showCheckbox&&!f.value?void 0:0,"aria-selected":d.value?e.selected:void 0,class:["file-picker__row",[{"file-picker__row--selected":e.selected&&!e.showCheckbox,"file-picker__row--not-navigatable":f.value&&!p.value,"file-picker__row--not-pickable":!d.value}]],"data-filename":e.node.basename,"data-testid":"file-list-row"},Tr({click:v,...!e.showCheckbox||f.value?{keydown:E}:{}},!0)),[e.showCheckbox?(g(),b("td",{key:0,class:"row-checkbox",onClick:Re(()=>{},["stop"])},[$(w(rr),{"aria-label":w(A)("Select the row for {nodename}",{nodename:u.value}),disabled:!d.value,"data-testid":"row-checkbox","model-value":e.selected,"onUpdate:modelValue":l},null,8,["aria-label","disabled","model-value"])])):G("",!0),T("td",Aa,[T("div",Ca,[$(Ia,{node:e.node,"crop-image-previews":e.cropImagePreviews},null,8,["node","crop-image-previews"]),T("div",{class:"file-picker__file-name",title:u.value,textContent:x(u.value)},null,8,La),T("div",{class:"file-picker__file-extension",textContent:x(m.value)},null,8,Da)])]),T("td",Ra,x(w(Wi)(e.node.size||0)),1),T("td",Oa,[$(w(Hr),{timestamp:c.value,"ignore-seconds":""},null,8,["timestamp"])])],16,Na))}}),ka=K(Sa,[["__scopeId","data-v-2af740c4"]]),Fa={"aria-hidden":"true",class:"file-picker__row loading-row"},$a={key:0,class:"row-checkbox"},Pa={class:"row-name"},Ba={class:"row-wrapper"},xa=me({__name:"LoadingTableRow",props:{showCheckbox:{type:Boolean}},setup(e){return(i,r)=>(g(),b("tr",Fa,[e.showCheckbox?(g(),b("td",$a,[...r[0]||(r[0]=[T("span",null,null,-1)])])):G("",!0),T("td",Pa,[T("div",Ba,[T("span",{class:fe(w(pr)["file-picker__file-icon"])},null,2),r[1]||(r[1]=T("span",null,null,-1))])]),r[2]||(r[2]=T("td",{class:"row-size"},[T("span")],-1)),r[3]||(r[3]=T("td",{class:"row-modified"},[T("span")],-1))]))}}),Ma=K(xa,[["__scopeId","data-v-1f96131b"]]);function mr(){const e=Jt("files","config",null),i=P(e?.show_hidden??!0),r=P(e?.sort_favorites_first??!0),n=P(e?.crop_image_previews??!0);return Ie(async()=>{if(Ne())ye.debug("Skip loading files settings - currently on public share");else try{const{data:c}=await ir.get(ut("/apps/files/api/v1/configs"));i.value=c?.data?.show_hidden??!1,r.value=c?.data?.sort_favorites_first??!0,n.value=c?.data?.crop_image_previews??!0}catch(c){ye.error("Could not load files settings",{error:c}),ct(A("Could not load files settings"))}}),{showHiddenFiles:i,sortFavoritesFirst:r,cropImagePreviews:n}}function Ua(e){const i=p=>p==="asc"?"ascending":p==="desc"?"descending":"none",r=Jt("files","viewConfigs",null),n=P({sortBy:r?.files?.sorting_mode??"basename",order:i(r?.files?.sorting_direction??"asc")}),c=P({sortBy:r?.recent?.sorting_mode??"basename",order:i(r?.recent?.sorting_direction??"asc")}),m=P({sortBy:r?.favorites?.sorting_mode??"basename",order:i(r?.favorites?.sorting_direction??"asc")});Ie(async()=>{if(Ne())ye.debug("Skip loading files views - currently on public share");else try{const{data:p}=await ir.get(ut("/apps/files/api/v1/views"));n.value={sortBy:p?.data?.files?.sorting_mode??"basename",order:i(p?.data?.files?.sorting_direction)},m.value={sortBy:p?.data?.favorites?.sorting_mode??"basename",order:i(p?.data?.favorites?.sorting_direction)},c.value={sortBy:p?.data?.recent?.sorting_mode??"basename",order:i(p?.data?.recent?.sorting_direction)}}catch(p){ye.error("Could not load files views",{error:p}),ct(A("Could not load files views"))}});const u=O(()=>_e(e||"files")==="files"?n.value:_e(e)==="recent"?c.value:m.value),f=O(()=>u.value.sortBy),d=O(()=>u.value.order);return{filesViewConfig:n,favoritesViewConfig:m,recentViewConfig:c,currentConfig:u,sortBy:f,order:d}}const za={key:0,class:"row-checkbox"},Ga={class:"hidden-visually"},Va=["aria-sort"],Xa={class:"header-wrapper"},ja={key:2,style:{width:"44px"}},Ha=["aria-sort"],Wa={key:2,style:{width:"44px"}},qa=["aria-sort"],Ya={key:2,style:{width:"44px"}},Qa=me({__name:"FileList",props:_r({currentView:{},multiselect:{type:Boolean},allowPickDirectory:{type:Boolean},loading:{type:Boolean},files:{},canPick:{type:Function}},{path:{required:!0},pathModifiers:{},selectedFiles:{required:!0},selectedFilesModifiers:{}}),emits:["update:path","update:selectedFiles"],setup(e){const i=Nt(e,"path"),r=Nt(e,"selectedFiles"),n=e,c=P(),{currentConfig:m}=Ua(n.currentView),u=O(()=>c.value??m.value),f=O(()=>u.value.sortBy==="basename"?u.value.order==="none"?void 0:u.value.order:void 0),d=O(()=>u.value.sortBy==="size"?u.value.order==="none"?void 0:u.value.order:void 0),p=O(()=>u.value.sortBy==="mtime"?u.value.order==="none"?void 0:u.value.order:void 0);function l(F){u.value.sortBy===F?u.value.order==="ascending"?c.value={sortBy:u.value.sortBy,order:"descending"}:c.value={sortBy:u.value.sortBy,order:"ascending"}:c.value={sortBy:F,order:"ascending"}}const{sortFavoritesFirst:v,cropImagePreviews:E}=mr(),I=O(()=>Yi(n.files,{sortFoldersFirst:!0,sortFavoritesFirst:v.value,sortingOrder:u.value.order==="descending"?"desc":"asc",sortingMode:u.value.sortBy})),V=O(()=>n.files.filter(F=>n.allowPickDirectory||F.type!==le.Folder)),_=O(()=>!n.loading&&r.value.length>0&&r.value.length>=V.value.length);function W(){r.value.lengthM.path!==F.path):n.multiselect?r.value=[...r.value,F]:r.value=[F]}function te(F){i.value=F.path}const J=P(4),C=P();{const F=()=>wr(()=>{const M=C.value?.parentElement?.children||[];let D=C.value?.parentElement?.clientHeight||450;for(let ae=0;ae{window.addEventListener("resize",F),F()}),yr(()=>{window.removeEventListener("resize",F)})}return(F,M)=>(g(),b("div",{ref_key:"fileContainer",ref:C,class:"file-picker__files"},[T("table",null,[T("thead",null,[T("tr",null,[e.multiselect?(g(),b("th",za,[T("span",Ga,x(w(A)("Select entry")),1),e.multiselect?(g(),B(w(rr),{key:0,"aria-label":w(A)("Select all entries"),"data-testid":"select-all-checkbox","model-value":_.value,"onUpdate:modelValue":W},null,8,["aria-label","model-value"])):G("",!0)])):G("",!0),T("th",{"aria-sort":f.value,class:"row-name"},[T("div",Xa,[M[3]||(M[3]=T("span",{class:"file-picker__header-preview"},null,-1)),$(w(we),{"data-test":"file-picker_sort-name",variant:"tertiary",wide:"",onClick:M[0]||(M[0]=D=>l("basename"))},{icon:k(()=>[f.value==="ascending"?(g(),B(nt,{key:0,size:20})):f.value==="descending"?(g(),B(at,{key:1,size:20})):(g(),b("span",ja))]),default:k(()=>[be(" "+x(w(A)("Name")),1)]),_:1})])],8,Va),T("th",{"aria-sort":d.value,class:"row-size"},[$(w(we),{variant:"tertiary",wide:"",onClick:M[1]||(M[1]=D=>l("size"))},{icon:k(()=>[d.value==="ascending"?(g(),B(nt,{key:0,size:20})):d.value==="descending"?(g(),B(at,{key:1,size:20})):(g(),b("span",Wa))]),default:k(()=>[be(" "+x(w(A)("Size")),1)]),_:1})],8,Ha),T("th",{"aria-sort":p.value,class:"row-modified"},[$(w(we),{variant:"tertiary",wide:"",onClick:M[2]||(M[2]=D=>l("mtime"))},{icon:k(()=>[p.value==="ascending"?(g(),B(nt,{key:0,size:20})):p.value==="descending"?(g(),B(at,{key:1,size:20})):(g(),b("span",Ya))]),default:k(()=>[be(" "+x(w(A)("Modified")),1)]),_:1})],8,qa)])]),T("tbody",null,[e.loading?(g(!0),b(oe,{key:0},ke(J.value,D=>(g(),B(Ma,{key:D,"show-checkbox":e.multiselect},null,8,["show-checkbox"]))),128)):(g(!0),b(oe,{key:1},ke(I.value,D=>(g(),B(ka,{key:D.fileid||D.path,"allow-pick-directory":e.allowPickDirectory,"show-checkbox":e.multiselect,"can-pick":(e.multiselect||r.value.length===0||r.value.includes(D))&&(e.canPick===void 0||e.canPick(D)),selected:r.value.includes(D),node:D,"crop-image-previews":w(E),"onUpdate:selected":ae=>X(D),onEnterDirectory:te},null,8,["allow-pick-directory","show-checkbox","can-pick","selected","node","crop-image-previews","onUpdate:selected"]))),128))])])],512))}}),Za=K(Qa,[["__scopeId","data-v-68ec5c33"]]),Ka={name:"HomeIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ja=["aria-hidden","aria-label"],en=["fill","width","height"],tn={d:"M10,20V14H14V20H19V12H22L12,3L2,12H5V20H10Z"},rn={key:0};function an(e,i,r,n,c,m){return g(),b("span",re(e.$attrs,{"aria-hidden":r.title?null:"true","aria-label":r.title,class:"material-design-icon home-icon",role:"img",onClick:i[0]||(i[0]=u=>e.$emit("click",u))}),[(g(),b("svg",{fill:r.fillColor,class:"material-design-icon__svg",width:r.size,height:r.size,viewBox:"0 0 24 24"},[T("path",tn,[r.title?(g(),b("title",rn,x(r.title),1)):G("",!0)])],8,en))],16,Ja)}const nn=K(Ka,[["render",an]]),sn={name:"PlusIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},on=["aria-hidden","aria-label"],ln=["fill","width","height"],cn={d:"M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z"},un={key:0};function dn(e,i,r,n,c,m){return g(),b("span",re(e.$attrs,{"aria-hidden":r.title?null:"true","aria-label":r.title,class:"material-design-icon plus-icon",role:"img",onClick:i[0]||(i[0]=u=>e.$emit("click",u))}),[(g(),b("svg",{fill:r.fillColor,class:"material-design-icon__svg",width:r.size,height:r.size,viewBox:"0 0 24 24"},[T("path",cn,[r.title?(g(),b("title",un,x(r.title),1)):G("",!0)])],8,ln))],16,on)}const pn=K(sn,[["render",dn]]),mn=me({__name:"FilePickerBreadcrumbs",props:{path:{},showMenu:{type:Boolean}},emits:["update:path","create-node"],setup(e,{emit:i}){const r=e,n=i,c=P(!1),m=P(""),u=br("nameInput");function f(){const l=m.value.trim(),v=u.value?.$el?.querySelector("input");let E="";try{Hi(l)}catch(I){if(!(I instanceof Ee))throw I;switch(I.reason){case Se.Character:E=A('"{char}" is not allowed inside a folder name.',{char:I.segment});break;case Se.ReservedName:E=A('"{segment}" is a reserved name and not allowed for folder names.',{segment:I.segment});break;case Se.Extension:E=A('Folder names must not end with "{extension}".',{extension:I.segment});break;default:E=A("Invalid folder name.")}}return v&&v.setCustomValidity(E),E===""}function d(){const l=m.value.trim();f()&&(c.value=!1,n("create-node",l),m.value="")}const p=O(()=>r.path.split("/").filter(l=>l!=="").map((l,v,E)=>({name:l,path:"/"+E.slice(0,v+1).join("/")})));return(l,v)=>(g(),B(w(yi),{class:"file-picker__breadcrumbs"},Yt({default:k(()=>[$(w(Fe),{name:w(A)("All files"),title:w(A)("Home"),onClick:v[0]||(v[0]=E=>n("update:path","/"))},{icon:k(()=>[$(nn,{size:20})]),_:1},8,["name","title"]),(g(!0),b(oe,null,ke(p.value,E=>(g(),B(w(Fe),{key:E.path,name:E.name,title:E.path,onClick:I=>n("update:path",E.path)},null,8,["name","title","onClick"]))),128))]),_:2},[e.showMenu?{name:"actions",fn:k(()=>[$(w(lt),{open:c.value,"onUpdate:open":v[2]||(v[2]=E=>c.value=E),"aria-label":w(A)("Create directory"),"force-menu":!0,"force-name":!0,"menu-name":w(A)("New"),variant:"secondary",onClose:v[3]||(v[3]=E=>m.value="")},{icon:k(()=>[$(pn,{size:20})]),default:k(()=>[$(w(ri),{ref_key:"nameInput",ref:u,modelValue:m.value,"onUpdate:modelValue":[v[1]||(v[1]=E=>m.value=E),f],label:w(A)("New folder"),placeholder:w(A)("New folder name"),onSubmit:d},{icon:k(()=>[$(dr,{size:20})]),_:1},8,["modelValue","label","placeholder"])]),_:1},8,["open","aria-label","menu-name"])]),key:"0"}:void 0]),1024))}}),hn=K(mn,[["__scopeId","data-v-4ce40fd0"]]),fn={name:"CloseIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},gn=["aria-hidden","aria-label"],vn=["fill","width","height"],En={d:"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z"},bn={key:0};function _n(e,i,r,n,c,m){return g(),b("span",re(e.$attrs,{"aria-hidden":r.title?null:"true","aria-label":r.title,class:"material-design-icon close-icon",role:"img",onClick:i[0]||(i[0]=u=>e.$emit("click",u))}),[(g(),b("svg",{fill:r.fillColor,class:"material-design-icon__svg",width:r.size,height:r.size,viewBox:"0 0 24 24"},[T("path",En,[r.title?(g(),b("title",bn,x(r.title),1)):G("",!0)])],8,vn))],16,gn)}const wn=K(fn,[["render",_n]]),yn={name:"MagnifyIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Tn=["aria-hidden","aria-label"],In=["fill","width","height"],Nn={d:"M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z"},An={key:0};function Cn(e,i,r,n,c,m){return g(),b("span",re(e.$attrs,{"aria-hidden":r.title?null:"true","aria-label":r.title,class:"material-design-icon magnify-icon",role:"img",onClick:i[0]||(i[0]=u=>e.$emit("click",u))}),[(g(),b("svg",{fill:r.fillColor,class:"material-design-icon__svg",width:r.size,height:r.size,viewBox:"0 0 24 24"},[T("path",Nn,[r.title?(g(),b("title",An,x(r.title),1)):G("",!0)])],8,In))],16,Tn)}const Ln=K(yn,[["render",Cn]]);function Dn(e){const i=[{id:"files",label:A("All files"),icon:Wr},{id:"recent",label:A("Recent"),icon:qr},{id:"favorites",label:A("Favorites"),icon:Yr}],r=e.value?i.filter(({id:n})=>n==="files"):i;return{allViews:i,availableViews:r}}const Rn={key:0,class:"file-picker__side"},On=me({__name:"FilePickerNavigation",props:{currentView:{},filterString:{},isCollapsed:{type:Boolean},disabledNavigation:{type:Boolean}},emits:["update:currentView","update:filterString"],setup(e,{emit:i}){const r=e,n=i,{availableViews:c}=Dn(P($e()===null)),m=O(()=>c.filter(f=>f.id===r.currentView)[0]??c[0]),u=f=>n("update:filterString",f.toString());return(f,d)=>(g(),b(oe,null,[$(w(ai),{class:"file-picker__filter-input",label:w(A)("Filter file list"),"show-trailing-button":!!e.filterString,"model-value":e.filterString,"onUpdate:modelValue":u,onTrailingButtonClick:d[0]||(d[0]=p=>u(""))},{"trailing-button-icon":k(()=>[$(wn,{size:16})]),default:k(()=>[$(Ln,{size:16})]),_:1},8,["label","show-trailing-button","model-value"]),w(c).length>1&&!e.disabledNavigation?(g(),b(oe,{key:0},[e.isCollapsed?(g(),B(w(ii),{key:1,"aria-label":w(A)("Current view selector"),clearable:!1,searchable:!1,options:w(c),"model-value":m.value,"onUpdate:modelValue":d[1]||(d[1]=p=>n("update:currentView",p.id))},null,8,["aria-label","options","model-value"])):(g(),b("ul",Rn,[(g(!0),b(oe,null,ke(w(c),p=>(g(),b("li",{key:p.id},[$(w(we),{variant:e.currentView===p.id?"primary":"tertiary",wide:!0,onClick:l=>f.$emit("update:currentView",p.id)},{icon:k(()=>[$(w(tr),{path:p.icon,size:20},null,8,["path"])]),default:k(()=>[be(" "+x(p.label),1)]),_:2},1032,["variant","onClick"])]))),128))]))],64)):G("",!0)],64))}}),Sn=K(On,[["__scopeId","data-v-b91fd905"]]);function kn(e){const i=new AbortController,r=Math.round(Date.now()/1e3)-3600*24*14;return new ie(async(n,c,m)=>{m(()=>i.abort());try{const{data:u}=await e.search("/",{signal:i.signal,details:!0,data:Si(r)}),f=u.results.map(d=>Me(d));n(f)}catch(u){c(u)}})}function Fn(e,i){const r=new AbortController;return new ie(async(n,c,m)=>{m(()=>r.abort());try{const u=(await e.getDirectoryContents(Te(Ae,i),{signal:r.signal,details:!0,includeSelf:!0,data:sr()})).data.map(f=>Me(f));n({contents:u.filter(({path:f})=>f!==i),folder:u.find(({path:f})=>f===i)})}catch(u){c(u)}})}async function $n(e,i){const{data:r}=await e.stat(Te(Ae,i),{details:!0,data:sr()});return Me(r)}function Pn(e,i){const r=$i(),n=st([]),c=st(null),m=P(!0),u=P(null);async function f(p){const l=Te(i.value,p);await r.createDirectory(Te(Ae,l));const v=await $n(r,l);return n.value=[...n.value,v],v}async function d(){u.value&&u.value.cancel(),m.value=!0,e.value==="favorites"?u.value=Pi(r,i.value):e.value==="recent"?u.value=kn(r):u.value=Fn(r,i.value);const p=await u.value;if(p)"folder"in p?(c.value=p.folder,n.value=p.contents):(c.value=null,n.value=p);else return;u.value=null,m.value=!1}return Qt([e,i],()=>d()),Ie(()=>d()),{isLoading:m,files:n,folder:c,loadFiles:d,createDirectory:f}}function Bn(e){const i=O(()=>e.value.map(r=>r.split("/")));return{isSupportedMimeType:r=>{const n=r.split("/");return i.value.some(([c,m])=>(n[0]===c||c==="*")&&(n[1]===m||m==="*"))}}}const xn={class:"file-picker__main"},Mn={key:1,class:"file-picker__view"},Un=me({__name:"FilePicker",props:{buttons:{},name:{},allowPickDirectory:{type:Boolean,default:!1},noMenu:{type:Boolean,default:!1},disabledNavigation:{type:Boolean,default:!1},filterFn:{type:Function,default:void 0},canPickFn:{type:Function,default:void 0},mimetypeFilter:{default:()=>[]},multiselect:{type:Boolean,default:!1},path:{default:void 0}},emits:["close"],setup(e,{emit:i}){const r=e,n=i,c=P(!0),m=P("files"),u=P(window?.sessionStorage.getItem("NC.FilePicker.LastPath")||"/"),f=P(""),d=O({get:()=>m.value==="files"?f.value||r.path||u.value:"/",set:S=>{f.value=S}}),p=st([]),{files:l,folder:v,isLoading:E,loadFiles:I,createDirectory:V}=Pn(m,d);Qt([f],()=>{r.path===void 0&&f.value&&window.sessionStorage.setItem("NC.FilePicker.LastPath",f.value),p.value=[]});let _=!1;const W=O(()=>{const S=p.value.length===0&&r.allowPickDirectory&&v.value?[v.value]:p.value;return(typeof r.buttons=="function"?r.buttons(S,d.value,m.value):r.buttons).map(y=>({...y,disabled:y.disabled||E.value,callback:()=>{_=!0,X(y.callback,S)}}))});async function X(S,y){await S(y),n("close",y),_=!1}const te=O(()=>m.value==="favorites"?A("Favorites"):m.value==="recent"?A("Recent"):""),J=P(""),{isSupportedMimeType:C}=Bn(Zt(r,"mimetypeFilter"));Ie(()=>I());const{showHiddenFiles:F}=mr(),M=O(()=>{let S=l.value;return F.value||(S=S.filter(y=>!y.basename.startsWith("."))),r.mimetypeFilter.length>0&&(S=S.filter(y=>y.type==="folder"||y.mime&&C(y.mime))),J.value&&(S=S.filter(y=>y.basename.toLowerCase().includes(J.value.toLowerCase()))),r.filterFn&&(S=S.filter(y=>r.filterFn(y))),S}),D=O(()=>m.value==="files"?A("Upload some content or sync with your devices!"):m.value==="recent"?A("Files and folders you recently modified will show up here."):A("Files and folders you mark as favorite will show up here."));async function ae(S){try{const y=await V(S);f.value=y.path,kr("files:node:created",l.value.filter(N=>N.basename===S)[0])}catch(y){ye.warn("Could not create new folder",{name:S,error:y}),ct(A("Could not create the new folder"))}}function o(S){!S&&!_&&n("close")}return(S,y)=>(g(),B(w($r),{open:c.value,"onUpdate:open":[y[6]||(y[6]=N=>c.value=N),o],buttons:W.value,name:e.name,size:"large","content-classes":"file-picker__content","dialog-classes":"file-picker","navigation-classes":"file-picker__navigation"},{navigation:k(({isCollapsed:N})=>[$(Sn,{"current-view":m.value,"onUpdate:currentView":y[0]||(y[0]=ne=>m.value=ne),"filter-string":J.value,"onUpdate:filterString":y[1]||(y[1]=ne=>J.value=ne),"is-collapsed":N,"disabled-navigation":e.disabledNavigation},null,8,["current-view","filter-string","is-collapsed","disabled-navigation"])]),default:k(()=>[T("div",xn,[m.value==="files"?(g(),B(hn,{key:0,path:d.value,"onUpdate:path":y[2]||(y[2]=N=>d.value=N),"show-menu":!e.noMenu,onCreateNode:ae},null,8,["path","show-menu"])):(g(),b("div",Mn,[T("h3",null,x(te.value),1)])),w(E)||M.value.length>0?(g(),B(Za,{key:2,path:d.value,"onUpdate:path":[y[3]||(y[3]=N=>d.value=N),y[5]||(y[5]=N=>m.value="files")],"selected-files":p.value,"onUpdate:selectedFiles":y[4]||(y[4]=N=>p.value=N),"allow-pick-directory":e.allowPickDirectory,"current-view":m.value,files:M.value,multiselect:e.multiselect,loading:w(E),name:te.value,"can-pick":e.canPickFn},null,8,["path","selected-files","allow-pick-directory","current-view","files","multiselect","loading","name","can-pick"])):J.value?(g(),B(w(At),{key:3,name:w(A)("No matching files"),description:w(A)("No files matching your filter were found.")},{icon:k(()=>[$(ot)]),_:1},8,["name","description"])):(g(),B(w(At),{key:4,name:w(A)("No files in here"),description:D.value},{icon:k(()=>[$(ot)]),_:1},8,["name","description"]))])]),_:1},8,["open","buttons","name"]))}}),os=K(Un,[["__scopeId","data-v-303416d3"]]);export{os as default}; -//# sourceMappingURL=FilePicker-W-IYpVkn-Fzv5zmTx.chunk.mjs.map +`?(t.line++,t.column=0):t.column++);t.textNode+=a.substring(L,h-1)}s==="<"&&!(t.sawRoot&&t.closedRoot&&!t.strict)?(t.state=o.OPEN_WAKA,t.startTagPosition=t.position):(!C(s)&&(!t.sawRoot||t.closedRoot)&&R(t,"Text data outside of root node."),s==="&"?t.state=o.TEXT_ENTITY:t.textNode+=s);continue;case o.SCRIPT:s==="<"?t.state=o.SCRIPT_ENDING:t.script+=s;continue;case o.SCRIPT_ENDING:s==="/"?t.state=o.CLOSE_TAG:(t.script+="<"+s,t.state=o.SCRIPT);continue;case o.OPEN_WAKA:if(s==="!")t.state=o.SGML_DECL,t.sgmlDecl="";else if(!C(s))if(D(W,s))t.state=o.OPEN_TAG,t.tagName=s;else if(s==="/")t.state=o.CLOSE_TAG,t.tagName="";else if(s==="?")t.state=o.PROC_INST,t.procInstName=t.procInstBody="";else{if(R(t,"Unencoded <"),t.startTagPosition+1"?(N(t,"onsgmldeclaration",t.sgmlDecl),t.sgmlDecl="",t.state=o.TEXT):(F(s)&&(t.state=o.SGML_DECL_QUOTED),t.sgmlDecl+=s);continue;case o.SGML_DECL_QUOTED:s===t.q&&(t.state=o.SGML_DECL,t.q=""),t.sgmlDecl+=s;continue;case o.DOCTYPE:s===">"?(t.state=o.TEXT,N(t,"ondoctype",t.doctype),t.doctype=!0):(t.doctype+=s,s==="["?t.state=o.DOCTYPE_DTD:F(s)&&(t.state=o.DOCTYPE_QUOTED,t.q=s));continue;case o.DOCTYPE_QUOTED:t.doctype+=s,s===t.q&&(t.q="",t.state=o.DOCTYPE);continue;case o.DOCTYPE_DTD:s==="]"?(t.doctype+=s,t.state=o.DOCTYPE):s==="<"?(t.state=o.OPEN_WAKA,t.startTagPosition=t.position):F(s)?(t.doctype+=s,t.state=o.DOCTYPE_DTD_QUOTED,t.q=s):t.doctype+=s;continue;case o.DOCTYPE_DTD_QUOTED:t.doctype+=s,s===t.q&&(t.state=o.DOCTYPE_DTD,t.q="");continue;case o.COMMENT:s==="-"?t.state=o.COMMENT_ENDING:t.comment+=s;continue;case o.COMMENT_ENDING:s==="-"?(t.state=o.COMMENT_ENDED,t.comment=Et(t.opt,t.comment),t.comment&&N(t,"oncomment",t.comment),t.comment=""):(t.comment+="-"+s,t.state=o.COMMENT);continue;case o.COMMENT_ENDED:s!==">"?(R(t,"Malformed comment"),t.comment+="--"+s,t.state=o.COMMENT):t.doctype&&t.doctype!==!0?t.state=o.DOCTYPE_DTD:t.state=o.TEXT;continue;case o.CDATA:s==="]"?t.state=o.CDATA_ENDING:t.cdata+=s;continue;case o.CDATA_ENDING:s==="]"?t.state=o.CDATA_ENDING_2:(t.cdata+="]"+s,t.state=o.CDATA);continue;case o.CDATA_ENDING_2:s===">"?(t.cdata&&N(t,"oncdata",t.cdata),N(t,"onclosecdata"),t.cdata="",t.state=o.TEXT):s==="]"?t.cdata+="]":(t.cdata+="]]"+s,t.state=o.CDATA);continue;case o.PROC_INST:s==="?"?t.state=o.PROC_INST_ENDING:C(s)?t.state=o.PROC_INST_BODY:t.procInstName+=s;continue;case o.PROC_INST_BODY:if(!t.procInstBody&&C(s))continue;s==="?"?t.state=o.PROC_INST_ENDING:t.procInstBody+=s;continue;case o.PROC_INST_ENDING:s===">"?(N(t,"onprocessinginstruction",{name:t.procInstName,body:t.procInstBody}),t.procInstName=t.procInstBody="",t.state=o.TEXT):(t.procInstBody+="?"+s,t.state=o.PROC_INST_BODY);continue;case o.OPEN_TAG:D(X,s)?t.tagName+=s:(hr(t),s===">"?de(t):s==="/"?t.state=o.OPEN_TAG_SLASH:(C(s)||R(t,"Invalid character in tag name"),t.state=o.ATTRIB));continue;case o.OPEN_TAG_SLASH:s===">"?(de(t,!0),Ge(t)):(R(t,"Forward-slash in opening tag not followed by >"),t.state=o.ATTRIB);continue;case o.ATTRIB:if(C(s))continue;s===">"?de(t):s==="/"?t.state=o.OPEN_TAG_SLASH:D(W,s)?(t.attribName=s,t.attribValue="",t.state=o.ATTRIB_NAME):R(t,"Invalid attribute name");continue;case o.ATTRIB_NAME:s==="="?t.state=o.ATTRIB_VALUE:s===">"?(R(t,"Attribute without value"),t.attribValue=t.attribName,ze(t),de(t)):C(s)?t.state=o.ATTRIB_NAME_SAW_WHITE:D(X,s)?t.attribName+=s:R(t,"Invalid attribute name");continue;case o.ATTRIB_NAME_SAW_WHITE:if(s==="=")t.state=o.ATTRIB_VALUE;else{if(C(s))continue;R(t,"Attribute without value"),t.tag.attributes[t.attribName]="",t.attribValue="",N(t,"onattribute",{name:t.attribName,value:""}),t.attribName="",s===">"?de(t):D(W,s)?(t.attribName=s,t.state=o.ATTRIB_NAME):(R(t,"Invalid attribute name"),t.state=o.ATTRIB)}continue;case o.ATTRIB_VALUE:if(C(s))continue;F(s)?(t.q=s,t.state=o.ATTRIB_VALUE_QUOTED):(t.opt.unquotedAttributeValues||ge(t,"Unquoted attribute value"),t.state=o.ATTRIB_VALUE_UNQUOTED,t.attribValue=s);continue;case o.ATTRIB_VALUE_QUOTED:if(s!==t.q){s==="&"?t.state=o.ATTRIB_VALUE_ENTITY_Q:t.attribValue+=s;continue}ze(t),t.q="",t.state=o.ATTRIB_VALUE_CLOSED;continue;case o.ATTRIB_VALUE_CLOSED:C(s)?t.state=o.ATTRIB:s===">"?de(t):s==="/"?t.state=o.OPEN_TAG_SLASH:D(W,s)?(R(t,"No whitespace between attributes"),t.attribName=s,t.attribValue="",t.state=o.ATTRIB_NAME):R(t,"Invalid attribute name");continue;case o.ATTRIB_VALUE_UNQUOTED:if(!M(s)){s==="&"?t.state=o.ATTRIB_VALUE_ENTITY_U:t.attribValue+=s;continue}ze(t),s===">"?de(t):t.state=o.ATTRIB;continue;case o.CLOSE_TAG:if(t.tagName)s===">"?Ge(t):D(X,s)?t.tagName+=s:t.script?(t.script+=""?Ge(t):R(t,"Invalid characters in closing tag");continue;case o.TEXT_ENTITY:case o.ATTRIB_VALUE_ENTITY_Q:case o.ATTRIB_VALUE_ENTITY_U:var z,Q;switch(t.state){case o.TEXT_ENTITY:z=o.TEXT,Q="textNode";break;case o.ATTRIB_VALUE_ENTITY_Q:z=o.ATTRIB_VALUE_QUOTED,Q="attribValue";break;case o.ATTRIB_VALUE_ENTITY_U:z=o.ATTRIB_VALUE_UNQUOTED,Q="attribValue";break}if(s===";"){var Z=fr(t);t.opt.unparsedEntities&&!Object.values(i.XML_ENTITIES).includes(Z)?(t.entity="",t.state=z,t.write(Z)):(t[Q]+=Z,t.entity="",t.state=z)}else D(t.entity.length?J:te,s)?t.entity+=s:(R(t,"Invalid character in entity name"),t[Q]+="&"+t.entity+s,t.entity="",t.state=z);continue;default:throw new Error(t,"Unknown state: "+t.state)}return t.position>=t.bufferCheckPosition&&c(t),t}String.fromCodePoint||(function(){var a=String.fromCharCode,t=Math.floor,h=function(){var s=16384,L=[],U,z,Q=-1,Z=arguments.length;if(!Z)return"";for(var he="";++Q1114111||t(H)!==H)throw RangeError("Invalid code point: "+H);H<=65535?L.push(H):(H-=65536,U=(H>>10)+55296,z=H%1024+56320,L.push(U,z)),(Q+1===Z||L.length>s)&&(he+=a.apply(null,L),L.length=0)}return he};Object.defineProperty?Object.defineProperty(String,"fromCodePoint",{value:h,configurable:!0,writable:!0}):String.fromCodePoint=h})()})(e)})(jt)),jt}Hi();var Se=(e=>(e.ReservedName="reserved name",e.Character="character",e.Extension="extension",e))(Se||{});class Ee extends Error{constructor(i){super(`Invalid ${i.reason} '${i.segment}' in filename '${i.filename}'`,{cause:i})}get filename(){return this.cause.filename}get reason(){return this.cause.reason}get segment(){return this.cause.segment}}function ji(e){const i=Gr().files,r=i.forbidden_filename_characters??window._oc_config?.forbidden_filenames_characters??["/","\\"];for(const u of r)if(e.includes(u))throw new Ee({segment:u,reason:"character",filename:e});if(e=e.toLocaleLowerCase(),(i.forbidden_filenames??[".htaccess"]).includes(e))throw new Ee({filename:e,segment:e,reason:"reserved name"});const n=e.indexOf(".",1),c=e.substring(0,n===-1?void 0:n);if((i.forbidden_filename_basenames??[]).includes(c))throw new Ee({filename:e,segment:c,reason:"reserved name"});const m=i.forbidden_filename_extensions??[".part",".filepart"];for(const u of m)if(e.length>u.length&&e.endsWith(u))throw new Ee({segment:u,reason:"extension",filename:e})}const rt=["B","KB","MB","GB","TB","PB"],it=["B","KiB","MiB","GiB","TiB","PiB"];function Wi(e,i=!1,r=!1,n=!1){r=r&&!n,typeof e=="string"&&(e=Number(e));let c=e>0?Math.floor(Math.log(e)/Math.log(n?1e3:1024)):0;c=Math.min((r?it.length:rt.length)-1,c);const m=r?it[c]:rt[c];let u=(e/Math.pow(n?1e3:1024,c)).toFixed(1);return i===!0&&c===0?(u!=="0.0"?"< 1 ":"0 ")+(r?it[1]:rt[1]):(c<2?u=parseFloat(u).toFixed(0):u=parseFloat(u).toLocaleString(er()),u+" "+m)}function Yt(e){return e instanceof Date?e.toISOString():String(e)}function Yi(e,i,r){i=i??[m=>m],r=r??[];const n=i.map((m,u)=>(r[u]??"asc")==="asc"?1:-1),c=Intl.Collator([Xr(),er()],{numeric:!0,usage:"sort"});return[...e].sort((m,u)=>{for(const[f,d]of i.entries()){const p=c.compare(Yt(d(m)),Yt(d(u)));if(p!==0)return p*n[f]}return 0})}function qi(e,i={}){const r={sortingMode:"basename",sortingOrder:"asc",...i};function n(u){const f=u.displayname||u.attributes?.displayname||u.basename||"";return u.type===le.Folder?f:f.lastIndexOf(".")>0?f.slice(0,f.lastIndexOf(".")):f}const c=[...r.sortFavoritesFirst?[u=>u.attributes?.favorite!==1]:[],...r.sortFoldersFirst?[u=>u.type!=="folder"]:[],...r.sortingMode!=="basename"?[u=>u[r.sortingMode]??u.attributes[r.sortingMode]]:[],u=>n(u),u=>u.basename],m=[...r.sortFavoritesFirst?["asc"]:[],...r.sortFoldersFirst?["asc"]:[],...r.sortingMode==="mtime"?[r.sortingOrder==="asc"?"desc":"asc"]:[],...r.sortingMode!=="mtime"&&r.sortingMode!=="basename"?[r.sortingOrder]:[],r.sortingOrder,r.sortingOrder];return Yi(e,c,m)}const Qi=new ei({concurrency:5});function Zi(e){const{resolve:i,promise:r}=Promise.withResolvers();return Qi.add(()=>{const n=new Image;return n.onerror=()=>i(!1),n.onload=()=>i(!0),n.src=e,r}),r}function Ki(e,i={}){i={size:32,cropPreview:!1,mimeFallback:!0,...i};try{const r=e.attributes?.previewUrl||ct("/core/preview?fileId={fileid}",{fileid:e.fileid});let n;try{n=new URL(r)}catch{n=new URL(r,window.location.origin)}return n.searchParams.set("x",`${i.size}`),n.searchParams.set("y",`${i.size}`),n.searchParams.set("mimeFallback",`${i.mimeFallback}`),n.searchParams.set("a",i.cropPreview===!0?"0":"1"),n.searchParams.set("c",`${e.attributes.etag}`),n}catch{return null}}function Ji(e,i){const r=P(null),n=P(!1);return Er(()=>{n.value=!1,r.value=Ki(_e(e),_e(i||{})),r.value&&_e(e).type===le.File&&Zi(r.value.href).then(c=>{n.value=c})}),{previewURL:r,previewLoaded:n}}const K=(e,i)=>{const r=e.__vccOpts||e;for(const[n,c]of i)r[n]=c;return r},ea={name:"FileIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ta=["aria-hidden","aria-label"],ra=["fill","width","height"],ia={d:"M13,9V3.5L18.5,9M6,2C4.89,2 4,2.89 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2H6Z"},aa={key:0};function na(e,i,r,n,c,m){return g(),b("span",re(e.$attrs,{"aria-hidden":r.title?null:"true","aria-label":r.title,class:"material-design-icon file-icon",role:"img",onClick:i[0]||(i[0]=u=>e.$emit("click",u))}),[(g(),b("svg",{fill:r.fillColor,class:"material-design-icon__svg",width:r.size,height:r.size,viewBox:"0 0 24 24"},[T("path",ia,[r.title?(g(),b("title",aa,x(r.title),1)):G("",!0)])],8,ra))],16,ta)}const ot=K(ea,[["render",na]]),sa={name:"MenuDownIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},oa=["aria-hidden","aria-label"],la=["fill","width","height"],ca={d:"M7,10L12,15L17,10H7Z"},ua={key:0};function da(e,i,r,n,c,m){return g(),b("span",re(e.$attrs,{"aria-hidden":r.title?null:"true","aria-label":r.title,class:"material-design-icon menu-down-icon",role:"img",onClick:i[0]||(i[0]=u=>e.$emit("click",u))}),[(g(),b("svg",{fill:r.fillColor,class:"material-design-icon__svg",width:r.size,height:r.size,viewBox:"0 0 24 24"},[T("path",ca,[r.title?(g(),b("title",ua,x(r.title),1)):G("",!0)])],8,la))],16,oa)}const at=K(sa,[["render",da]]),pa={name:"MenuUpIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ma=["aria-hidden","aria-label"],ha=["fill","width","height"],fa={d:"M7,15L12,10L17,15H7Z"},ga={key:0};function va(e,i,r,n,c,m){return g(),b("span",re(e.$attrs,{"aria-hidden":r.title?null:"true","aria-label":r.title,class:"material-design-icon menu-up-icon",role:"img",onClick:i[0]||(i[0]=u=>e.$emit("click",u))}),[(g(),b("svg",{fill:r.fillColor,class:"material-design-icon__svg",width:r.size,height:r.size,viewBox:"0 0 24 24"},[T("path",fa,[r.title?(g(),b("title",ga,x(r.title),1)):G("",!0)])],8,ha))],16,ma)}const nt=K(pa,[["render",va]]),Ea={name:"FolderIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ba=["aria-hidden","aria-label"],_a=["fill","width","height"],wa={d:"M10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6H12L10,4Z"},ya={key:0};function Ta(e,i,r,n,c,m){return g(),b("span",re(e.$attrs,{"aria-hidden":r.title?null:"true","aria-label":r.title,class:"material-design-icon folder-icon",role:"img",onClick:i[0]||(i[0]=u=>e.$emit("click",u))}),[(g(),b("svg",{fill:r.fillColor,class:"material-design-icon__svg",width:r.size,height:r.size,viewBox:"0 0 24 24"},[T("path",wa,[r.title?(g(),b("title",ya,x(r.title),1)):G("",!0)])],8,_a))],16,ba)}const dr=K(Ea,[["render",Ta]]),pr={"file-picker__file-icon":"_file-picker__file-icon_3v9zx_9","file-picker__file-icon--primary":"_file-picker__file-icon--primary_3v9zx_21","file-picker__file-icon-overlay":"_file-picker__file-icon-overlay_3v9zx_25"},Ia=me({__name:"FilePreview",props:{node:{},cropImagePreviews:{type:Boolean}},setup(e){const i=e,r=P(pr),{previewURL:n,previewLoaded:c}=Ji(Zt(i,"node"),O(()=>({cropPreview:i.cropImagePreviews}))),m=O(()=>i.node.type===le.File),u=O(()=>{if(i.node.type!==le.Folder)return null;if(i.node.attributes?.["is-encrypted"]===1)return qr;if(i.node.attributes?.["is-tag"])return Qr;const f=Object.values(i.node.attributes?.["share-types"]||{}).flat();if(f.some(d=>d===Ot.Link||d===Ot.Email))return Zr;if(f.length>0)return Rt;switch(i.node.attributes?.["mount-type"]){case"external":case"external-session":return Jr;case"group":return Kr;case"shared":return Rt}return null});return(f,d)=>(g(),b("div",{style:Ir(w(c)?{backgroundImage:`url(${w(n)})`}:void 0),class:fe(r.value["file-picker__file-icon"])},[w(c)?G("",!0):(g(),b(oe,{key:0},[m.value?(g(),B(ot,{key:0,size:32})):(g(),b(oe,{key:1},[u.value?(g(),B(w(tr),{key:0,class:fe(r.value["file-picker__file-icon-overlay"]),inline:"",path:u.value,size:16},null,8,["class","path"])):G("",!0),$(dr,{class:fe(r.value["file-picker__file-icon--primary"]),size:32},null,8,["class"])],64))],64))],6))}}),Na=["tabindex","aria-selected","data-filename"],Aa={class:"row-name"},Ca={class:"file-picker__name-container","data-testid":"row-name"},La=["title","textContent"],Da=["textContent"],Ra={class:"row-size"},Oa={class:"row-modified"},Sa=me({__name:"FileListRow",props:{allowPickDirectory:{type:Boolean},selected:{type:Boolean},showCheckbox:{type:Boolean},canPick:{type:Boolean},node:{},cropImagePreviews:{type:Boolean}},emits:["update:selected","enterDirectory"],setup(e,{emit:i}){const r=e,n=i,c=O(()=>r.node.mtime??0),m=O(()=>Kt(r.node.displayname)),u=O(()=>r.node.displayname.slice(0,m.value?-m.value.length:void 0)),f=O(()=>r.node.type===le.Folder),d=O(()=>r.canPick&&(r.allowPickDirectory||!f.value)),p=O(()=>(r.node.permissions&ee.READ)===ee.READ);function l(){d.value&&n("update:selected",!r.selected)}function v(){f.value?p.value&&n("enterDirectory",r.node):l()}function E(I){I.key==="Enter"&&v()}return(I,V)=>(g(),b("tr",re({tabindex:e.showCheckbox&&!f.value?void 0:0,"aria-selected":d.value?e.selected:void 0,class:["file-picker__row",[{"file-picker__row--selected":e.selected&&!e.showCheckbox,"file-picker__row--not-navigatable":f.value&&!p.value,"file-picker__row--not-pickable":!d.value}]],"data-filename":e.node.basename,"data-testid":"file-list-row"},Tr({click:v,...!e.showCheckbox||f.value?{keydown:E}:{}},!0)),[e.showCheckbox?(g(),b("td",{key:0,class:"row-checkbox",onClick:Re(()=>{},["stop"])},[$(w(rr),{"aria-label":w(A)("Select the row for {nodename}",{nodename:u.value}),disabled:!d.value,"data-testid":"row-checkbox","model-value":e.selected,"onUpdate:modelValue":l},null,8,["aria-label","disabled","model-value"])])):G("",!0),T("td",Aa,[T("div",Ca,[$(Ia,{node:e.node,"crop-image-previews":e.cropImagePreviews},null,8,["node","crop-image-previews"]),T("div",{class:"file-picker__file-name",title:u.value,textContent:x(u.value)},null,8,La),T("div",{class:"file-picker__file-extension",textContent:x(m.value)},null,8,Da)])]),T("td",Ra,x(w(Wi)(e.node.size||0)),1),T("td",Oa,[$(w(Hr),{timestamp:c.value,"ignore-seconds":""},null,8,["timestamp"])])],16,Na))}}),ka=K(Sa,[["__scopeId","data-v-2af740c4"]]),Fa={"aria-hidden":"true",class:"file-picker__row loading-row"},$a={key:0,class:"row-checkbox"},Pa={class:"row-name"},Ba={class:"row-wrapper"},xa=me({__name:"LoadingTableRow",props:{showCheckbox:{type:Boolean}},setup(e){return(i,r)=>(g(),b("tr",Fa,[e.showCheckbox?(g(),b("td",$a,[...r[0]||(r[0]=[T("span",null,null,-1)])])):G("",!0),T("td",Pa,[T("div",Ba,[T("span",{class:fe(w(pr)["file-picker__file-icon"])},null,2),r[1]||(r[1]=T("span",null,null,-1))])]),r[2]||(r[2]=T("td",{class:"row-size"},[T("span")],-1)),r[3]||(r[3]=T("td",{class:"row-modified"},[T("span")],-1))]))}}),Ma=K(xa,[["__scopeId","data-v-1f96131b"]]);function mr(){const e=Jt("files","config",null),i=P(e?.show_hidden??!0),r=P(e?.sort_favorites_first??!0),n=P(e?.crop_image_previews??!0);return Ie(async()=>{if(Ne())ye.debug("Skip loading files settings - currently on public share");else try{const{data:c}=await ir.get(ct("/apps/files/api/v1/configs"));i.value=c?.data?.show_hidden??!1,r.value=c?.data?.sort_favorites_first??!0,n.value=c?.data?.crop_image_previews??!0}catch(c){ye.error("Could not load files settings",{error:c}),lt(A("Could not load files settings"))}}),{showHiddenFiles:i,sortFavoritesFirst:r,cropImagePreviews:n}}function Ua(e){const i=p=>p==="asc"?"ascending":p==="desc"?"descending":"none",r=Jt("files","viewConfigs",null),n=P({sortBy:r?.files?.sorting_mode??"basename",order:i(r?.files?.sorting_direction??"asc")}),c=P({sortBy:r?.recent?.sorting_mode??"basename",order:i(r?.recent?.sorting_direction??"asc")}),m=P({sortBy:r?.favorites?.sorting_mode??"basename",order:i(r?.favorites?.sorting_direction??"asc")});Ie(async()=>{if(Ne())ye.debug("Skip loading files views - currently on public share");else try{const{data:p}=await ir.get(ct("/apps/files/api/v1/views"));n.value={sortBy:p?.data?.files?.sorting_mode??"basename",order:i(p?.data?.files?.sorting_direction)},m.value={sortBy:p?.data?.favorites?.sorting_mode??"basename",order:i(p?.data?.favorites?.sorting_direction)},c.value={sortBy:p?.data?.recent?.sorting_mode??"basename",order:i(p?.data?.recent?.sorting_direction)}}catch(p){ye.error("Could not load files views",{error:p}),lt(A("Could not load files views"))}});const u=O(()=>_e(e||"files")==="files"?n.value:_e(e)==="recent"?c.value:m.value),f=O(()=>u.value.sortBy),d=O(()=>u.value.order);return{filesViewConfig:n,favoritesViewConfig:m,recentViewConfig:c,currentConfig:u,sortBy:f,order:d}}const za={key:0,class:"row-checkbox"},Ga={class:"hidden-visually"},Va=["aria-sort"],Xa={class:"header-wrapper"},Ha={key:2,style:{width:"44px"}},ja=["aria-sort"],Wa={key:2,style:{width:"44px"}},Ya=["aria-sort"],qa={key:2,style:{width:"44px"}},Qa=me({__name:"FileList",props:_r({currentView:{},multiselect:{type:Boolean},allowPickDirectory:{type:Boolean},loading:{type:Boolean},files:{},canPick:{type:Function}},{path:{required:!0},pathModifiers:{},selectedFiles:{required:!0},selectedFilesModifiers:{}}),emits:["update:path","update:selectedFiles"],setup(e){const i=Nt(e,"path"),r=Nt(e,"selectedFiles"),n=e,c=P(),{currentConfig:m}=Ua(n.currentView),u=O(()=>c.value??m.value),f=O(()=>u.value.sortBy==="basename"?u.value.order==="none"?void 0:u.value.order:void 0),d=O(()=>u.value.sortBy==="size"?u.value.order==="none"?void 0:u.value.order:void 0),p=O(()=>u.value.sortBy==="mtime"?u.value.order==="none"?void 0:u.value.order:void 0);function l(F){u.value.sortBy===F?u.value.order==="ascending"?c.value={sortBy:u.value.sortBy,order:"descending"}:c.value={sortBy:u.value.sortBy,order:"ascending"}:c.value={sortBy:F,order:"ascending"}}const{sortFavoritesFirst:v,cropImagePreviews:E}=mr(),I=O(()=>qi(n.files,{sortFoldersFirst:!0,sortFavoritesFirst:v.value,sortingOrder:u.value.order==="descending"?"desc":"asc",sortingMode:u.value.sortBy})),V=O(()=>n.files.filter(F=>n.allowPickDirectory||F.type!==le.Folder)),_=O(()=>!n.loading&&r.value.length>0&&r.value.length>=V.value.length);function W(){r.value.lengthM.path!==F.path):n.multiselect?r.value=[...r.value,F]:r.value=[F]}function te(F){i.value=F.path}const J=P(4),C=P();{const F=()=>wr(()=>{const M=C.value?.parentElement?.children||[];let D=C.value?.parentElement?.clientHeight||450;for(let ae=0;ae{window.addEventListener("resize",F),F()}),yr(()=>{window.removeEventListener("resize",F)})}return(F,M)=>(g(),b("div",{ref_key:"fileContainer",ref:C,class:"file-picker__files"},[T("table",null,[T("thead",null,[T("tr",null,[e.multiselect?(g(),b("th",za,[T("span",Ga,x(w(A)("Select entry")),1),e.multiselect?(g(),B(w(rr),{key:0,"aria-label":w(A)("Select all entries"),"data-testid":"select-all-checkbox","model-value":_.value,"onUpdate:modelValue":W},null,8,["aria-label","model-value"])):G("",!0)])):G("",!0),T("th",{"aria-sort":f.value,class:"row-name"},[T("div",Xa,[M[3]||(M[3]=T("span",{class:"file-picker__header-preview"},null,-1)),$(w(we),{"data-test":"file-picker_sort-name",variant:"tertiary",wide:"",onClick:M[0]||(M[0]=D=>l("basename"))},{icon:k(()=>[f.value==="ascending"?(g(),B(nt,{key:0,size:20})):f.value==="descending"?(g(),B(at,{key:1,size:20})):(g(),b("span",Ha))]),default:k(()=>[be(" "+x(w(A)("Name")),1)]),_:1})])],8,Va),T("th",{"aria-sort":d.value,class:"row-size"},[$(w(we),{variant:"tertiary",wide:"",onClick:M[1]||(M[1]=D=>l("size"))},{icon:k(()=>[d.value==="ascending"?(g(),B(nt,{key:0,size:20})):d.value==="descending"?(g(),B(at,{key:1,size:20})):(g(),b("span",Wa))]),default:k(()=>[be(" "+x(w(A)("Size")),1)]),_:1})],8,ja),T("th",{"aria-sort":p.value,class:"row-modified"},[$(w(we),{variant:"tertiary",wide:"",onClick:M[2]||(M[2]=D=>l("mtime"))},{icon:k(()=>[p.value==="ascending"?(g(),B(nt,{key:0,size:20})):p.value==="descending"?(g(),B(at,{key:1,size:20})):(g(),b("span",qa))]),default:k(()=>[be(" "+x(w(A)("Modified")),1)]),_:1})],8,Ya)])]),T("tbody",null,[e.loading?(g(!0),b(oe,{key:0},ke(J.value,D=>(g(),B(Ma,{key:D,"show-checkbox":e.multiselect},null,8,["show-checkbox"]))),128)):(g(!0),b(oe,{key:1},ke(I.value,D=>(g(),B(ka,{key:D.fileid||D.path,"allow-pick-directory":e.allowPickDirectory,"show-checkbox":e.multiselect,"can-pick":(e.multiselect||r.value.length===0||r.value.includes(D))&&(e.canPick===void 0||e.canPick(D)),selected:r.value.includes(D),node:D,"crop-image-previews":w(E),"onUpdate:selected":ae=>X(D),onEnterDirectory:te},null,8,["allow-pick-directory","show-checkbox","can-pick","selected","node","crop-image-previews","onUpdate:selected"]))),128))])])],512))}}),Za=K(Qa,[["__scopeId","data-v-68ec5c33"]]),Ka={name:"HomeIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ja=["aria-hidden","aria-label"],en=["fill","width","height"],tn={d:"M10,20V14H14V20H19V12H22L12,3L2,12H5V20H10Z"},rn={key:0};function an(e,i,r,n,c,m){return g(),b("span",re(e.$attrs,{"aria-hidden":r.title?null:"true","aria-label":r.title,class:"material-design-icon home-icon",role:"img",onClick:i[0]||(i[0]=u=>e.$emit("click",u))}),[(g(),b("svg",{fill:r.fillColor,class:"material-design-icon__svg",width:r.size,height:r.size,viewBox:"0 0 24 24"},[T("path",tn,[r.title?(g(),b("title",rn,x(r.title),1)):G("",!0)])],8,en))],16,Ja)}const nn=K(Ka,[["render",an]]),sn={name:"PlusIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},on=["aria-hidden","aria-label"],ln=["fill","width","height"],cn={d:"M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z"},un={key:0};function dn(e,i,r,n,c,m){return g(),b("span",re(e.$attrs,{"aria-hidden":r.title?null:"true","aria-label":r.title,class:"material-design-icon plus-icon",role:"img",onClick:i[0]||(i[0]=u=>e.$emit("click",u))}),[(g(),b("svg",{fill:r.fillColor,class:"material-design-icon__svg",width:r.size,height:r.size,viewBox:"0 0 24 24"},[T("path",cn,[r.title?(g(),b("title",un,x(r.title),1)):G("",!0)])],8,ln))],16,on)}const pn=K(sn,[["render",dn]]),mn=me({__name:"FilePickerBreadcrumbs",props:{path:{},showMenu:{type:Boolean}},emits:["update:path","create-node"],setup(e,{emit:i}){const r=e,n=i,c=P(!1),m=P(""),u=br("nameInput");function f(){const l=m.value.trim(),v=u.value?.$el?.querySelector("input");let E="";try{ji(l)}catch(I){if(!(I instanceof Ee))throw I;switch(I.reason){case Se.Character:E=A('"{char}" is not allowed inside a folder name.',{char:I.segment});break;case Se.ReservedName:E=A('"{segment}" is a reserved name and not allowed for folder names.',{segment:I.segment});break;case Se.Extension:E=A('Folder names must not end with "{extension}".',{extension:I.segment});break;default:E=A("Invalid folder name.")}}return v&&v.setCustomValidity(E),E===""}function d(){const l=m.value.trim();f()&&(c.value=!1,n("create-node",l),m.value="")}const p=O(()=>r.path.split("/").filter(l=>l!=="").map((l,v,E)=>({name:l,path:"/"+E.slice(0,v+1).join("/")})));return(l,v)=>(g(),B(w(yi),{class:"file-picker__breadcrumbs"},qt({default:k(()=>[$(w(Fe),{name:w(A)("All files"),title:w(A)("Home"),onClick:v[0]||(v[0]=E=>n("update:path","/"))},{icon:k(()=>[$(nn,{size:20})]),_:1},8,["name","title"]),(g(!0),b(oe,null,ke(p.value,E=>(g(),B(w(Fe),{key:E.path,name:E.name,title:E.path,onClick:I=>n("update:path",E.path)},null,8,["name","title","onClick"]))),128))]),_:2},[e.showMenu?{name:"actions",fn:k(()=>[$(w(ut),{open:c.value,"onUpdate:open":v[2]||(v[2]=E=>c.value=E),"aria-label":w(A)("Create directory"),"force-menu":!0,"force-name":!0,"menu-name":w(A)("New"),variant:"secondary",onClose:v[3]||(v[3]=E=>m.value="")},{icon:k(()=>[$(pn,{size:20})]),default:k(()=>[$(w(ti),{ref_key:"nameInput",ref:u,modelValue:m.value,"onUpdate:modelValue":[v[1]||(v[1]=E=>m.value=E),f],label:w(A)("New folder"),placeholder:w(A)("New folder name"),onSubmit:d},{icon:k(()=>[$(dr,{size:20})]),_:1},8,["modelValue","label","placeholder"])]),_:1},8,["open","aria-label","menu-name"])]),key:"0"}:void 0]),1024))}}),hn=K(mn,[["__scopeId","data-v-4ce40fd0"]]),fn={name:"CloseIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},gn=["aria-hidden","aria-label"],vn=["fill","width","height"],En={d:"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z"},bn={key:0};function _n(e,i,r,n,c,m){return g(),b("span",re(e.$attrs,{"aria-hidden":r.title?null:"true","aria-label":r.title,class:"material-design-icon close-icon",role:"img",onClick:i[0]||(i[0]=u=>e.$emit("click",u))}),[(g(),b("svg",{fill:r.fillColor,class:"material-design-icon__svg",width:r.size,height:r.size,viewBox:"0 0 24 24"},[T("path",En,[r.title?(g(),b("title",bn,x(r.title),1)):G("",!0)])],8,vn))],16,gn)}const wn=K(fn,[["render",_n]]),yn={name:"MagnifyIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Tn=["aria-hidden","aria-label"],In=["fill","width","height"],Nn={d:"M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z"},An={key:0};function Cn(e,i,r,n,c,m){return g(),b("span",re(e.$attrs,{"aria-hidden":r.title?null:"true","aria-label":r.title,class:"material-design-icon magnify-icon",role:"img",onClick:i[0]||(i[0]=u=>e.$emit("click",u))}),[(g(),b("svg",{fill:r.fillColor,class:"material-design-icon__svg",width:r.size,height:r.size,viewBox:"0 0 24 24"},[T("path",Nn,[r.title?(g(),b("title",An,x(r.title),1)):G("",!0)])],8,In))],16,Tn)}const Ln=K(yn,[["render",Cn]]);function Dn(e){const i=[{id:"files",label:A("All files"),icon:jr},{id:"recent",label:A("Recent"),icon:Wr},{id:"favorites",label:A("Favorites"),icon:Yr}],r=e.value?i.filter(({id:n})=>n==="files"):i;return{allViews:i,availableViews:r}}const Rn={key:0,class:"file-picker__side"},On=me({__name:"FilePickerNavigation",props:{currentView:{},filterString:{},isCollapsed:{type:Boolean},disabledNavigation:{type:Boolean}},emits:["update:currentView","update:filterString"],setup(e,{emit:i}){const r=e,n=i,{availableViews:c}=Dn(P($e()===null)),m=O(()=>c.filter(f=>f.id===r.currentView)[0]??c[0]),u=f=>n("update:filterString",f.toString());return(f,d)=>(g(),b(oe,null,[$(w(ai),{class:"file-picker__filter-input",label:w(A)("Filter file list"),"show-trailing-button":!!e.filterString,"model-value":e.filterString,"onUpdate:modelValue":u,onTrailingButtonClick:d[0]||(d[0]=p=>u(""))},{"trailing-button-icon":k(()=>[$(wn,{size:16})]),default:k(()=>[$(Ln,{size:16})]),_:1},8,["label","show-trailing-button","model-value"]),w(c).length>1&&!e.disabledNavigation?(g(),b(oe,{key:0},[e.isCollapsed?(g(),B(w(ii),{key:1,"aria-label":w(A)("Current view selector"),clearable:!1,searchable:!1,options:w(c),"model-value":m.value,"onUpdate:modelValue":d[1]||(d[1]=p=>n("update:currentView",p.id))},null,8,["aria-label","options","model-value"])):(g(),b("ul",Rn,[(g(!0),b(oe,null,ke(w(c),p=>(g(),b("li",{key:p.id},[$(w(we),{variant:e.currentView===p.id?"primary":"tertiary",wide:!0,onClick:l=>f.$emit("update:currentView",p.id)},{icon:k(()=>[$(w(tr),{path:p.icon,size:20},null,8,["path"])]),default:k(()=>[be(" "+x(p.label),1)]),_:2},1032,["variant","onClick"])]))),128))]))],64)):G("",!0)],64))}}),Sn=K(On,[["__scopeId","data-v-b91fd905"]]);function kn(e){const i=new AbortController,r=Math.round(Date.now()/1e3)-3600*24*14;return new ie(async(n,c,m)=>{m(()=>i.abort());try{const{data:u}=await e.search("/",{signal:i.signal,details:!0,data:Si(r)}),f=u.results.map(d=>Me(d));n(f)}catch(u){c(u)}})}function Fn(e,i){const r=new AbortController;return new ie(async(n,c,m)=>{m(()=>r.abort());try{const u=(await e.getDirectoryContents(Te(Ae,i),{signal:r.signal,details:!0,includeSelf:!0,data:sr()})).data.map(f=>Me(f));n({contents:u.filter(({path:f})=>f!==i),folder:u.find(({path:f})=>f===i)})}catch(u){c(u)}})}async function $n(e,i){const{data:r}=await e.stat(Te(Ae,i),{details:!0,data:sr()});return Me(r)}function Pn(e,i){const r=$i(),n=st([]),c=st(null),m=P(!0),u=P(null);async function f(p){const l=Te(i.value,p);await r.createDirectory(Te(Ae,l));const v=await $n(r,l);return n.value=[...n.value,v],v}async function d(){u.value&&u.value.cancel(),m.value=!0,e.value==="favorites"?u.value=Pi(r,i.value):e.value==="recent"?u.value=kn(r):u.value=Fn(r,i.value);const p=await u.value;if(p)"folder"in p?(c.value=p.folder,n.value=p.contents):(c.value=null,n.value=p);else return;u.value=null,m.value=!1}return Qt([e,i],()=>d()),Ie(()=>d()),{isLoading:m,files:n,folder:c,loadFiles:d,createDirectory:f}}function Bn(e){const i=O(()=>e.value.map(r=>r.split("/")));return{isSupportedMimeType:r=>{const n=r.split("/");return i.value.some(([c,m])=>(n[0]===c||c==="*")&&(n[1]===m||m==="*"))}}}const xn={class:"file-picker__main"},Mn={key:1,class:"file-picker__view"},Un=me({__name:"FilePicker",props:{buttons:{},name:{},allowPickDirectory:{type:Boolean,default:!1},noMenu:{type:Boolean,default:!1},disabledNavigation:{type:Boolean,default:!1},filterFn:{type:Function,default:void 0},canPickFn:{type:Function,default:void 0},mimetypeFilter:{default:()=>[]},multiselect:{type:Boolean,default:!1},path:{default:void 0}},emits:["close"],setup(e,{emit:i}){const r=e,n=i,c=P(!0),m=P("files"),u=P(window?.sessionStorage.getItem("NC.FilePicker.LastPath")||"/"),f=P(""),d=O({get:()=>m.value==="files"?f.value||r.path||u.value:"/",set:S=>{f.value=S}}),p=st([]),{files:l,folder:v,isLoading:E,loadFiles:I,createDirectory:V}=Pn(m,d);Qt([f],()=>{r.path===void 0&&f.value&&window.sessionStorage.setItem("NC.FilePicker.LastPath",f.value),p.value=[]});let _=!1;const W=O(()=>{const S=p.value.length===0&&r.allowPickDirectory&&v.value?[v.value]:p.value;return(typeof r.buttons=="function"?r.buttons(S,d.value,m.value):r.buttons).map(y=>({...y,disabled:y.disabled||E.value,callback:()=>{_=!0,X(y.callback,S)}}))});async function X(S,y){await S(y),n("close",y),_=!1}const te=O(()=>m.value==="favorites"?A("Favorites"):m.value==="recent"?A("Recent"):""),J=P(""),{isSupportedMimeType:C}=Bn(Zt(r,"mimetypeFilter"));Ie(()=>I());const{showHiddenFiles:F}=mr(),M=O(()=>{let S=l.value;return F.value||(S=S.filter(y=>!y.basename.startsWith("."))),r.mimetypeFilter.length>0&&(S=S.filter(y=>y.type==="folder"||y.mime&&C(y.mime))),J.value&&(S=S.filter(y=>y.basename.toLowerCase().includes(J.value.toLowerCase()))),r.filterFn&&(S=S.filter(y=>r.filterFn(y))),S}),D=O(()=>m.value==="files"?A("Upload some content or sync with your devices!"):m.value==="recent"?A("Files and folders you recently modified will show up here."):A("Files and folders you mark as favorite will show up here."));async function ae(S){try{const y=await V(S);f.value=y.path,kr("files:node:created",l.value.filter(N=>N.basename===S)[0])}catch(y){ye.warn("Could not create new folder",{name:S,error:y}),lt(A("Could not create the new folder"))}}function o(S){!S&&!_&&n("close")}return(S,y)=>(g(),B(w(Fr),{open:c.value,"onUpdate:open":[y[6]||(y[6]=N=>c.value=N),o],buttons:W.value,name:e.name,size:"large","content-classes":"file-picker__content","dialog-classes":"file-picker","navigation-classes":"file-picker__navigation"},{navigation:k(({isCollapsed:N})=>[$(Sn,{"current-view":m.value,"onUpdate:currentView":y[0]||(y[0]=ne=>m.value=ne),"filter-string":J.value,"onUpdate:filterString":y[1]||(y[1]=ne=>J.value=ne),"is-collapsed":N,"disabled-navigation":e.disabledNavigation},null,8,["current-view","filter-string","is-collapsed","disabled-navigation"])]),default:k(()=>[T("div",xn,[m.value==="files"?(g(),B(hn,{key:0,path:d.value,"onUpdate:path":y[2]||(y[2]=N=>d.value=N),"show-menu":!e.noMenu,onCreateNode:ae},null,8,["path","show-menu"])):(g(),b("div",Mn,[T("h3",null,x(te.value),1)])),w(E)||M.value.length>0?(g(),B(Za,{key:2,path:d.value,"onUpdate:path":[y[3]||(y[3]=N=>d.value=N),y[5]||(y[5]=N=>m.value="files")],"selected-files":p.value,"onUpdate:selectedFiles":y[4]||(y[4]=N=>p.value=N),"allow-pick-directory":e.allowPickDirectory,"current-view":m.value,files:M.value,multiselect:e.multiselect,loading:w(E),name:te.value,"can-pick":e.canPickFn},null,8,["path","selected-files","allow-pick-directory","current-view","files","multiselect","loading","name","can-pick"])):J.value?(g(),B(w(At),{key:3,name:w(A)("No matching files"),description:w(A)("No files matching your filter were found.")},{icon:k(()=>[$(ot)]),_:1},8,["name","description"])):(g(),B(w(At),{key:4,name:w(A)("No files in here"),description:D.value},{icon:k(()=>[$(ot)]),_:1},8,["name","description"]))])]),_:1},8,["open","buttons","name"]))}}),cs=K(Un,[["__scopeId","data-v-303416d3"]]);export{cs as default}; +//# sourceMappingURL=FilePicker-W-IYpVkn-Djs9gpBp.chunk.mjs.map diff --git a/dist/FilePicker-W-IYpVkn-Fzv5zmTx.chunk.mjs.license b/dist/FilePicker-W-IYpVkn-Djs9gpBp.chunk.mjs.license similarity index 100% rename from dist/FilePicker-W-IYpVkn-Fzv5zmTx.chunk.mjs.license rename to dist/FilePicker-W-IYpVkn-Djs9gpBp.chunk.mjs.license diff --git a/dist/FilePicker-W-IYpVkn-Fzv5zmTx.chunk.mjs.map b/dist/FilePicker-W-IYpVkn-Djs9gpBp.chunk.mjs.map similarity index 99% rename from dist/FilePicker-W-IYpVkn-Fzv5zmTx.chunk.mjs.map rename to dist/FilePicker-W-IYpVkn-Djs9gpBp.chunk.mjs.map index 3568f6146ae07..4ddd18aa061f7 100644 --- a/dist/FilePicker-W-IYpVkn-Fzv5zmTx.chunk.mjs.map +++ b/dist/FilePicker-W-IYpVkn-Djs9gpBp.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"FilePicker-W-IYpVkn-Fzv5zmTx.chunk.mjs","sources":["../node_modules/@nextcloud/vue/dist/chunks/NcBreadcrumb-Bwkn3eve.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcBreadcrumbs-PN5_hHQn.mjs","../node_modules/cancelable-promise/esm/CancelablePromise.mjs","../node_modules/@nextcloud/dialogs/node_modules/@nextcloud/files/dist/chunks/dav-Rt1kTtvI.mjs","../node_modules/@nextcloud/dialogs/node_modules/@nextcloud/files/dist/index.mjs","../node_modules/@nextcloud/dialogs/dist/chunks/preview-BIbJGxXF.mjs","../node_modules/@nextcloud/dialogs/dist/chunks/_plugin-vue_export-helper-1tPrXgE0.mjs","../node_modules/@nextcloud/dialogs/dist/chunks/FilePicker-W-IYpVkn.mjs"],"sourcesContent":["import '../assets/NcBreadcrumb-CHjeSh0y.css';\nimport { createElementBlock, openBlock, mergeProps, createElementVNode, createCommentVNode, toDisplayString, resolveComponent, withModifiers, normalizeClass, createBlock, createVNode, createSlots, withCtx, renderSlot, createTextVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { N as NcButton } from \"./NcButton-Dc8V4Urj.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { N as NcActions } from \"./NcActions-DWmvh7-Y.mjs\";\nconst _sfc_main$1 = {\n name: \"ChevronRightIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3 = { d: \"M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z\" };\nconst _hoisted_4 = { key: 0 };\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon chevron-right-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2))\n ], 16, _hoisted_1$1);\n}\nconst ChevronRight = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1]]);\nconst _sfc_main = {\n name: \"NcBreadcrumb\",\n components: {\n NcActions,\n ChevronRight,\n NcButton\n },\n inheritAttrs: false,\n props: {\n /**\n * The main text content of the entry.\n */\n name: {\n type: String,\n required: true\n },\n /**\n * The title attribute of the element.\n */\n title: {\n type: String,\n default: null\n },\n /**\n * Route Location the link should navigate to when clicked on.\n *\n * @see https://v3.router.vuejs.org/api/#to\n */\n to: {\n type: [String, Object],\n default: void 0\n },\n /**\n * Set this prop if your app doesn't use vue-router, breadcrumbs will show as normal links.\n */\n href: {\n type: String,\n default: void 0\n },\n /**\n * Set a css icon-class to show an icon along name text (if forceIconText is provided, otherwise just icon).\n */\n icon: {\n type: String,\n default: \"\"\n },\n /**\n * Enables text to accompany the icon, if the icon was provided. The text that will be displayed is the name prop.\n */\n forceIconText: {\n type: Boolean,\n default: false\n },\n /**\n * Disable dropping on this breadcrumb.\n */\n disableDrop: {\n type: Boolean,\n default: false\n },\n /**\n * Force the actions to display in a three dot menu\n */\n forceMenu: {\n type: Boolean,\n default: false\n },\n /**\n * Open state of the Actions menu\n */\n open: {\n type: Boolean,\n default: false\n },\n /**\n * CSS class to apply to the root element.\n */\n class: {\n type: [String, Array, Object],\n default: \"\"\n }\n },\n emits: [\n \"dragenter\",\n \"dragleave\",\n \"dropped\",\n \"update:open\"\n ],\n setup() {\n const crumbId = createElementId();\n return {\n actionsContainer: `.vue-crumb[data-crumb-id=\"${crumbId}\"]`,\n crumbId\n };\n },\n data() {\n return {\n /**\n * Variable to track if we hover over the breadcrumb\n */\n hovering: false\n };\n },\n computed: {\n /**\n * The attributes to pass to `router-link` or `a`\n */\n linkAttributes() {\n if (this.to) {\n return { to: this.to, ...this.$attrs };\n } else if (this.href) {\n return { href: this.href, ...this.$attrs };\n }\n return this.$attrs;\n }\n },\n methods: {\n /**\n * Function to handle changing the open state of the Actions menu\n * $emit the open state.\n *\n * @param {boolean} open The open state of the Actions menu\n */\n onOpenChange(open) {\n this.$emit(\"update:open\", open);\n },\n /**\n * Function to handle a drop on the breadcrumb.\n * $emit the event and the path, remove the hovering state.\n *\n * @param {object} e The drop event\n * @return {boolean}\n */\n dropped(e) {\n if (this.disableDrop) {\n return false;\n }\n this.$emit(\"dropped\", e, this.to || this.href);\n this.$parent.$emit(\"dropped\", e, this.to || this.href);\n this.hovering = false;\n return false;\n },\n /**\n * Add the hovering state on drag enter\n *\n * @param {DragEvent} e The drag-enter event\n */\n dragEnter(e) {\n this.$emit(\"dragenter\", e);\n if (this.disableDrop) {\n return;\n }\n this.hovering = true;\n },\n /**\n * Remove the hovering state on drag leave\n *\n * @param {DragEvent} e The drag leave event\n */\n dragLeave(e) {\n this.$emit(\"dragleave\", e);\n if (this.disableDrop) {\n return;\n }\n if (e.target.contains(e.relatedTarget) || this.$refs.crumb.contains(e.relatedTarget)) {\n return;\n }\n this.hovering = false;\n }\n }\n};\nconst _hoisted_1 = [\"data-crumb-id\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcButton = resolveComponent(\"NcButton\");\n const _component_NcActions = resolveComponent(\"NcActions\");\n const _component_ChevronRight = resolveComponent(\"ChevronRight\");\n return openBlock(), createElementBlock(\"li\", {\n ref: \"crumb\",\n class: normalizeClass([\"vue-crumb\", [{ \"vue-crumb--hovered\": $data.hovering }, _ctx.$props.class]]),\n \"data-crumb-id\": $setup.crumbId,\n draggable: \"false\",\n onDragstart: withModifiers(() => {\n }, [\"prevent\"]),\n onDrop: _cache[0] || (_cache[0] = withModifiers((...args) => $options.dropped && $options.dropped(...args), [\"prevent\"])),\n onDragover: withModifiers(() => {\n }, [\"prevent\"]),\n onDragenter: _cache[1] || (_cache[1] = (...args) => $options.dragEnter && $options.dragEnter(...args)),\n onDragleave: _cache[2] || (_cache[2] = (...args) => $options.dragLeave && $options.dragLeave(...args))\n }, [\n ($props.name || $props.icon || _ctx.$slots.icon) && !_ctx.$slots.default ? (openBlock(), createBlock(_component_NcButton, mergeProps({\n key: 0,\n \"aria-label\": $props.icon ? $props.name : void 0,\n variant: \"tertiary\"\n }, $options.linkAttributes), createSlots({ _: 2 }, [\n _ctx.$slots.icon || $props.icon ? {\n name: \"icon\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"icon\", {}, () => [\n createElementVNode(\"span\", {\n class: normalizeClass([$props.icon, \"icon\"])\n }, null, 2)\n ], true)\n ]),\n key: \"0\"\n } : void 0,\n !(_ctx.$slots.icon || $props.icon) || $props.forceIconText ? {\n name: \"default\",\n fn: withCtx(() => [\n createTextVNode(toDisplayString($props.name), 1)\n ]),\n key: \"1\"\n } : void 0\n ]), 1040, [\"aria-label\"])) : createCommentVNode(\"\", true),\n _ctx.$slots.default ? (openBlock(), createBlock(_component_NcActions, {\n key: 1,\n ref: \"actions\",\n container: $setup.actionsContainer,\n \"force-menu\": $props.forceMenu,\n \"force-name\": \"\",\n \"menu-name\": $props.name,\n open: $props.open,\n title: $props.title,\n variant: \"tertiary\",\n \"onUpdate:open\": $options.onOpenChange\n }, {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"menu-icon\", {}, void 0, true)\n ]),\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"container\", \"force-menu\", \"menu-name\", \"open\", \"title\", \"onUpdate:open\"])) : createCommentVNode(\"\", true),\n createVNode(_component_ChevronRight, {\n class: \"vue-crumb__separator\",\n size: 20\n })\n ], 42, _hoisted_1);\n}\nconst NcBreadcrumb = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-28ef52a4\"]]);\nexport {\n NcBreadcrumb as N\n};\n//# sourceMappingURL=NcBreadcrumb-Bwkn3eve.mjs.map\n","import '../assets/NcBreadcrumbs-DYfGaSjT.css';\nimport { unsubscribe, subscribe } from \"@nextcloud/event-bus\";\nimport debounce from \"debounce\";\nimport { createElementBlock, openBlock, mergeProps, createElementVNode, createCommentVNode, toDisplayString, Fragment, cloneVNode, h } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { N as NcActions, i as isSlotPopulated } from \"./NcActions-DWmvh7-Y.mjs\";\nimport { N as NcActionButton } from \"./NcActionButton-pKOSrlGE.mjs\";\nimport { N as NcActionLink } from \"./NcActionLink-vEvKSV4N.mjs\";\nimport { N as NcActionRouter } from \"./NcActionRouter-oT-YU_jf.mjs\";\nimport { N as NcBreadcrumb } from \"./NcBreadcrumb-Bwkn3eve.mjs\";\nconst _sfc_main$1 = {\n name: \"FolderIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3 = { d: \"M10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6H12L10,4Z\" };\nconst _hoisted_4 = { key: 0 };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon folder-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2))\n ], 16, _hoisted_1);\n}\nconst IconFolder = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render]]);\nconst crumbClass = \"vue-crumb\";\nconst _sfc_main = {\n name: \"NcBreadcrumbs\",\n components: {\n NcActions,\n NcActionButton,\n NcActionRouter,\n NcActionLink,\n NcBreadcrumb,\n IconFolder\n },\n props: {\n /**\n * Set a css icon-class for the icon of the root breadcrumb to be used.\n */\n rootIcon: {\n type: String,\n default: \"icon-home\"\n },\n /**\n * Set the aria-label of the nav element.\n */\n ariaLabel: {\n type: String,\n default: null\n }\n },\n emits: [\"dropped\"],\n data() {\n return {\n /**\n * Array to track the hidden breadcrumbs by their index.\n * Comparing two crumbs somehow does not work, so we use the indices.\n */\n hiddenIndices: [],\n /**\n * This is the props of the middle Action menu\n * that show the ellipsised breadcrumbs\n */\n menuBreadcrumbProps: {\n // Don't show a name for this breadcrumb, only the Actions menu\n name: \"\",\n forceMenu: true,\n // Don't allow dropping directly on the actions breadcrumb\n disableDrop: true,\n // Is the menu open or not\n open: false\n },\n breadcrumbsRefs: []\n };\n },\n created() {\n window.addEventListener(\"resize\", debounce(() => {\n this.handleWindowResize();\n }, 100));\n subscribe(\"navigation-toggled\", this.delayedResize);\n },\n mounted() {\n this.handleWindowResize();\n },\n updated() {\n this.delayedResize();\n this.$nextTick(() => {\n this.hideCrumbs();\n });\n },\n beforeUnmount() {\n window.removeEventListener(\"resize\", this.handleWindowResize);\n unsubscribe(\"navigation-toggled\", this.delayedResize);\n },\n methods: {\n /**\n * Close the actions menu\n *\n * @param {object} e The event\n */\n closeActions(e) {\n if (this.$refs.actionsBreadcrumb.$el.contains(e.relatedTarget)) {\n return;\n }\n this.menuBreadcrumbProps.open = false;\n },\n /**\n * Call the resize function after a delay\n */\n async delayedResize() {\n await this.$nextTick();\n this.handleWindowResize();\n },\n /**\n * Check the width of the breadcrumb and hide breadcrumbs\n * if we overflow otherwise.\n */\n handleWindowResize() {\n if (!this.$refs.container) {\n return;\n }\n const nrCrumbs = this.breadcrumbsRefs.length;\n const hiddenIndices = [];\n const availableWidth = this.$refs.container.offsetWidth;\n let totalWidth = this.getTotalWidth();\n if (this.$refs.breadcrumb__actions) {\n totalWidth += this.$refs.breadcrumb__actions.offsetWidth;\n }\n let overflow = totalWidth - availableWidth;\n overflow += overflow > 0 ? 64 : 0;\n let i = 0;\n const startIndex = Math.floor(nrCrumbs / 2);\n while (overflow > 0 && i < nrCrumbs - 2) {\n const currentIndex = startIndex + (i % 2 ? i + 1 : i) / 2 * Math.pow(-1, i + nrCrumbs % 2);\n overflow -= this.getWidth(this.breadcrumbsRefs[currentIndex]?.$el, currentIndex === this.breadcrumbsRefs.length - 1);\n hiddenIndices.push(currentIndex);\n i++;\n }\n if (!this.arraysEqual(this.hiddenIndices, hiddenIndices.sort((a, b) => a - b))) {\n this.hiddenIndices = hiddenIndices;\n }\n },\n /**\n * Checks if two arrays are equal.\n * Only works for primitive arrays, but that's enough here.\n *\n * @param {Array} a The first array\n * @param {Array} b The second array\n * @return {boolean} Wether the arrays are equal\n */\n arraysEqual(a, b) {\n if (a.length !== b.length) {\n return false;\n } else if (a === b) {\n return true;\n } else if (a === null || b === null) {\n return false;\n }\n for (let i = 0; i < a.length; ++i) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n },\n /**\n * Calculates the total width of all breadcrumbs\n *\n * @return {number} The total width\n */\n getTotalWidth() {\n return this.breadcrumbsRefs.reduce((width, crumb, index) => width + this.getWidth(crumb.$el, index === this.breadcrumbsRefs.length - 1), 0);\n },\n /**\n * Calculates the width of the provided element\n *\n * @param {object} el The element\n * @param {boolean} isLast Is this the last crumb\n * @return {number} The width\n */\n getWidth(el, isLast) {\n if (!el?.classList) {\n return 0;\n }\n const hide = el.classList.contains(`${crumbClass}--hidden`);\n el.style.minWidth = \"auto\";\n if (isLast) {\n el.style.maxWidth = \"210px\";\n }\n el.classList.remove(`${crumbClass}--hidden`);\n const w = el.offsetWidth;\n if (hide) {\n el.classList.add(`${crumbClass}--hidden`);\n }\n el.style.minWidth = \"\";\n el.style.maxWidth = \"\";\n return w;\n },\n /**\n * Prevents the default of a provided event\n *\n * @param {object} e The event\n * @return {boolean}\n */\n preventDefault(e) {\n if (e.preventDefault) {\n e.preventDefault();\n }\n return false;\n },\n /**\n * Handles the drag start.\n * Prevents a breadcrumb from being draggable.\n *\n * @param {object} e The event\n * @return {boolean}\n */\n dragStart(e) {\n return this.preventDefault(e);\n },\n /**\n * Handles when something is dropped on the breadcrumb.\n *\n * @param {object} e The drop event\n * @param {string} path The path of the breadcrumb\n * @param {boolean} disabled Whether dropping is disabled for this breadcrumb\n * @return {boolean}\n */\n dropped(e, path, disabled) {\n if (!disabled) {\n this.$emit(\"dropped\", e, path);\n }\n this.menuBreadcrumbProps.open = false;\n const crumbs = document.querySelectorAll(`.${crumbClass}`);\n for (const crumb of crumbs) {\n crumb.classList.remove(`${crumbClass}--hovered`);\n }\n return this.preventDefault(e);\n },\n /**\n * Handles the drag over event\n *\n * @param {object} e The drag over event\n * @return {boolean}\n */\n dragOver(e) {\n return this.preventDefault(e);\n },\n /**\n * Handles the drag enter event\n *\n * @param {object} e The drag over event\n * @param {boolean} disabled Whether dropping is disabled for this breadcrumb\n */\n dragEnter(e, disabled) {\n if (disabled) {\n return;\n }\n if (e.target.closest) {\n const target = e.target.closest(`.${crumbClass}`);\n if (target.classList && target.classList.contains(crumbClass)) {\n const crumbs = document.querySelectorAll(`.${crumbClass}`);\n for (const crumb of crumbs) {\n crumb.classList.remove(`${crumbClass}--hovered`);\n }\n target.classList.add(`${crumbClass}--hovered`);\n }\n }\n },\n /**\n * Handles the drag leave event\n *\n * @param {object} e The drag leave event\n * @param {boolean} disabled Whether dropping is disabled for this breadcrumb\n */\n dragLeave(e, disabled) {\n if (disabled) {\n return;\n }\n if (e.target.contains(e.relatedTarget)) {\n return;\n }\n if (e.target.closest) {\n const target = e.target.closest(`.${crumbClass}`);\n if (target.contains(e.relatedTarget)) {\n return;\n }\n if (target.classList && target.classList.contains(crumbClass)) {\n target.classList.remove(`${crumbClass}--hovered`);\n }\n }\n },\n /**\n * Check for each crumb if we have to hide it and\n * add it to the array of all crumbs.\n */\n hideCrumbs() {\n this.breadcrumbsRefs.forEach((crumb, i) => {\n if (crumb?.$el?.classList) {\n if (this.hiddenIndices.includes(i)) {\n crumb.$el.classList.add(`${crumbClass}--hidden`);\n } else {\n crumb.$el.classList.remove(`${crumbClass}--hidden`);\n }\n }\n });\n },\n isBreadcrumb(vnode) {\n return vnode?.type?.name === \"NcBreadcrumb\";\n }\n },\n /**\n * The render function to display the component\n *\n * @return {object|undefined} The created VNode\n */\n render() {\n let breadcrumbs = [];\n this.$slots.default?.().forEach((vnode) => {\n if (this.isBreadcrumb(vnode)) {\n breadcrumbs.push(vnode);\n return;\n }\n if (vnode?.type === Fragment) {\n vnode?.children?.forEach?.((child) => {\n if (this.isBreadcrumb(child)) {\n breadcrumbs.push(child);\n }\n });\n }\n });\n if (breadcrumbs.length === 0) {\n return;\n }\n breadcrumbs[0] = cloneVNode(breadcrumbs[0], {\n icon: this.rootIcon,\n ref: \"breadcrumbs\"\n });\n const breadcrumbsRefs = [];\n breadcrumbs = breadcrumbs.map((crumb, index) => cloneVNode(crumb, {\n ref: (crumb2) => {\n breadcrumbsRefs[index] = crumb2;\n }\n }));\n const crumbs = [...breadcrumbs];\n if (this.hiddenIndices.length) {\n crumbs.splice(\n Math.round(breadcrumbs.length / 2),\n 0,\n // The Actions menu\n // Use a breadcrumb component for the hidden breadcrumbs\n // eslint-disable-line @stylistic/function-call-argument-newline\n h(NcBreadcrumb, {\n class: \"dropdown\",\n ...this.menuBreadcrumbProps,\n // Hide the dropdown menu from screen-readers,\n // since the crumbs in the menu are still in the list.\n \"aria-hidden\": true,\n // Add a ref to the Actions menu\n ref: \"actionsBreadcrumb\",\n key: \"actions-breadcrumb-1\",\n // Add handlers so the Actions menu opens on hover\n onDragenter: () => {\n this.menuBreadcrumbProps.open = true;\n },\n onDragleave: this.closeActions,\n // Make sure we keep the same open state\n // as the Actions component\n \"onUpdate:open\": (open) => {\n this.menuBreadcrumbProps.open = open;\n }\n // Add all hidden breadcrumbs as ActionRouter or ActionLink\n }, {\n default: () => this.hiddenIndices.filter((index) => index <= breadcrumbs.length - 1).map((index) => {\n const crumb = breadcrumbs[index];\n const {\n // Get the parameters from the breadcrumb component props\n to,\n href,\n disableDrop,\n name,\n // Props to forward\n ...propsToForward\n } = crumb.props;\n delete propsToForward.ref;\n let element = NcActionButton;\n let path = \"\";\n if (href) {\n element = NcActionLink;\n path = href;\n }\n if (to) {\n element = NcActionRouter;\n path = to;\n }\n const folderIcon = h(IconFolder, {\n size: 20\n });\n return h(element, {\n ...propsToForward,\n class: crumbClass,\n href: href || null,\n to: to || null,\n // Prevent the breadcrumbs from being draggable\n draggable: false,\n // Add the drag and drop handlers\n onDragstart: this.dragStart,\n onDrop: ($event) => this.dropped($event, path, disableDrop),\n onDragover: this.dragOver,\n onDragenter: ($event) => this.dragEnter($event, disableDrop),\n onDragleave: ($event) => this.dragLeave($event, disableDrop)\n }, {\n default: () => name,\n icon: () => folderIcon\n });\n })\n })\n );\n }\n const wrapper = [h(\"nav\", { \"aria-label\": this.ariaLabel }, [h(\"ul\", { class: \"breadcrumb__crumbs\" }, [crumbs])])];\n if (isSlotPopulated(this.$slots.actions?.())) {\n wrapper.push(h(\"div\", { class: \"breadcrumb__actions\", ref: \"breadcrumb__actions\" }, this.$slots.actions?.()));\n }\n this.breadcrumbsRefs = breadcrumbsRefs;\n return h(\"div\", { class: [\"breadcrumb\", { \"breadcrumb--collapsed\": this.hiddenIndices.length === breadcrumbs.length - 2 }], ref: \"container\" }, wrapper);\n }\n};\nconst NcBreadcrumbs = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-af2b1226\"]]);\nexport {\n NcBreadcrumbs as N\n};\n//# sourceMappingURL=NcBreadcrumbs-PN5_hHQn.mjs.map\n","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }\n\nfunction _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); } }\n\nfunction _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"get\"); return _classApplyDescriptorGet(receiver, descriptor); }\n\nfunction _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }\n\nfunction _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"set\"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }\n\nfunction _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError(\"attempted to \" + action + \" private field on non-instance\"); } return privateMap.get(receiver); }\n\nfunction _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError(\"attempted to set read only private field\"); } descriptor.value = value; } }\n\nvar toStringTag = typeof Symbol !== 'undefined' ? Symbol.toStringTag : '@@toStringTag';\n\nvar _internals = /*#__PURE__*/new WeakMap();\n\nvar _promise = /*#__PURE__*/new WeakMap();\n\nclass CancelablePromiseInternal {\n constructor(_ref) {\n var {\n executor = () => {},\n internals = defaultInternals(),\n promise = new Promise((resolve, reject) => executor(resolve, reject, onCancel => {\n internals.onCancelList.push(onCancel);\n }))\n } = _ref;\n\n _classPrivateFieldInitSpec(this, _internals, {\n writable: true,\n value: void 0\n });\n\n _classPrivateFieldInitSpec(this, _promise, {\n writable: true,\n value: void 0\n });\n\n _defineProperty(this, toStringTag, 'CancelablePromise');\n\n this.cancel = this.cancel.bind(this);\n\n _classPrivateFieldSet(this, _internals, internals);\n\n _classPrivateFieldSet(this, _promise, promise || new Promise((resolve, reject) => executor(resolve, reject, onCancel => {\n internals.onCancelList.push(onCancel);\n })));\n }\n\n then(onfulfilled, onrejected) {\n return makeCancelable(_classPrivateFieldGet(this, _promise).then(createCallback(onfulfilled, _classPrivateFieldGet(this, _internals)), createCallback(onrejected, _classPrivateFieldGet(this, _internals))), _classPrivateFieldGet(this, _internals));\n }\n\n catch(onrejected) {\n return makeCancelable(_classPrivateFieldGet(this, _promise).catch(createCallback(onrejected, _classPrivateFieldGet(this, _internals))), _classPrivateFieldGet(this, _internals));\n }\n\n finally(onfinally, runWhenCanceled) {\n if (runWhenCanceled) {\n _classPrivateFieldGet(this, _internals).onCancelList.push(onfinally);\n }\n\n return makeCancelable(_classPrivateFieldGet(this, _promise).finally(createCallback(() => {\n if (onfinally) {\n if (runWhenCanceled) {\n _classPrivateFieldGet(this, _internals).onCancelList = _classPrivateFieldGet(this, _internals).onCancelList.filter(callback => callback !== onfinally);\n }\n\n return onfinally();\n }\n }, _classPrivateFieldGet(this, _internals))), _classPrivateFieldGet(this, _internals));\n }\n\n cancel() {\n _classPrivateFieldGet(this, _internals).isCanceled = true;\n\n var callbacks = _classPrivateFieldGet(this, _internals).onCancelList;\n\n _classPrivateFieldGet(this, _internals).onCancelList = [];\n\n for (var callback of callbacks) {\n if (typeof callback === 'function') {\n try {\n callback();\n } catch (err) {\n console.error(err);\n }\n }\n }\n }\n\n isCanceled() {\n return _classPrivateFieldGet(this, _internals).isCanceled === true;\n }\n\n}\n\nexport class CancelablePromise extends CancelablePromiseInternal {\n constructor(executor) {\n super({\n executor\n });\n }\n\n}\n\n_defineProperty(CancelablePromise, \"all\", function all(iterable) {\n return makeAllCancelable(iterable, Promise.all(iterable));\n});\n\n_defineProperty(CancelablePromise, \"allSettled\", function allSettled(iterable) {\n return makeAllCancelable(iterable, Promise.allSettled(iterable));\n});\n\n_defineProperty(CancelablePromise, \"any\", function any(iterable) {\n return makeAllCancelable(iterable, Promise.any(iterable));\n});\n\n_defineProperty(CancelablePromise, \"race\", function race(iterable) {\n return makeAllCancelable(iterable, Promise.race(iterable));\n});\n\n_defineProperty(CancelablePromise, \"resolve\", function resolve(value) {\n return cancelable(Promise.resolve(value));\n});\n\n_defineProperty(CancelablePromise, \"reject\", function reject(reason) {\n return cancelable(Promise.reject(reason));\n});\n\n_defineProperty(CancelablePromise, \"isCancelable\", isCancelablePromise);\n\nexport default CancelablePromise;\nexport function cancelable(promise) {\n return makeCancelable(promise, defaultInternals());\n}\nexport function isCancelablePromise(promise) {\n return promise instanceof CancelablePromise || promise instanceof CancelablePromiseInternal;\n}\n\nfunction createCallback(onResult, internals) {\n if (onResult) {\n return arg => {\n if (!internals.isCanceled) {\n var result = onResult(arg);\n\n if (isCancelablePromise(result)) {\n internals.onCancelList.push(result.cancel);\n }\n\n return result;\n }\n\n return arg;\n };\n }\n}\n\nfunction makeCancelable(promise, internals) {\n return new CancelablePromiseInternal({\n internals,\n promise\n });\n}\n\nfunction makeAllCancelable(iterable, promise) {\n var internals = defaultInternals();\n internals.onCancelList.push(() => {\n for (var resolvable of iterable) {\n if (isCancelablePromise(resolvable)) {\n resolvable.cancel();\n }\n }\n });\n return new CancelablePromiseInternal({\n internals,\n promise\n });\n}\n\nfunction defaultInternals() {\n return {\n isCanceled: false,\n onCancelList: []\n };\n}\n//# sourceMappingURL=CancelablePromise.mjs.map","import { getCurrentUser, onRequestTokenUpdate, getRequestToken } from \"@nextcloud/auth\";\nimport { isPublicShare, getSharingToken } from \"@nextcloud/sharing/public\";\nimport { generateRemoteUrl } from \"@nextcloud/router\";\nimport { CancelablePromise } from \"cancelable-promise\";\nimport { createClient, getPatcher } from \"webdav\";\nimport { getLoggerBuilder } from \"@nextcloud/logger\";\nimport { join, encodePath, basename, extname, dirname } from \"@nextcloud/paths\";\nconst logger = getLoggerBuilder().setApp(\"@nextcloud/files\").detectUser().build();\nvar FileType = /* @__PURE__ */ ((FileType2) => {\n FileType2[\"Folder\"] = \"folder\";\n FileType2[\"File\"] = \"file\";\n return FileType2;\n})(FileType || {});\nvar Permission = /* @__PURE__ */ ((Permission2) => {\n Permission2[Permission2[\"NONE\"] = 0] = \"NONE\";\n Permission2[Permission2[\"CREATE\"] = 4] = \"CREATE\";\n Permission2[Permission2[\"READ\"] = 1] = \"READ\";\n Permission2[Permission2[\"UPDATE\"] = 2] = \"UPDATE\";\n Permission2[Permission2[\"DELETE\"] = 8] = \"DELETE\";\n Permission2[Permission2[\"SHARE\"] = 16] = \"SHARE\";\n Permission2[Permission2[\"ALL\"] = 31] = \"ALL\";\n return Permission2;\n})(Permission || {});\nconst isDavResource = function(source, davService) {\n return source.match(davService) !== null;\n};\nconst validateData = (data, davService) => {\n if (data.id && typeof data.id !== \"number\") {\n throw new Error(\"Invalid id type of value\");\n }\n if (!data.source) {\n throw new Error(\"Missing mandatory source\");\n }\n try {\n new URL(data.source);\n } catch (e) {\n throw new Error(\"Invalid source format, source must be a valid URL\");\n }\n if (!data.source.startsWith(\"http\")) {\n throw new Error(\"Invalid source format, only http(s) is supported\");\n }\n if (data.displayname && typeof data.displayname !== \"string\") {\n throw new Error(\"Invalid displayname type\");\n }\n if (data.mtime && !(data.mtime instanceof Date)) {\n throw new Error(\"Invalid mtime type\");\n }\n if (data.crtime && !(data.crtime instanceof Date)) {\n throw new Error(\"Invalid crtime type\");\n }\n if (!data.mime || typeof data.mime !== \"string\" || !data.mime.match(/^[-\\w.]+\\/[-+\\w.]+$/gi)) {\n throw new Error(\"Missing or invalid mandatory mime\");\n }\n if (\"size\" in data && typeof data.size !== \"number\" && data.size !== void 0) {\n throw new Error(\"Invalid size type\");\n }\n if (\"permissions\" in data && data.permissions !== void 0 && !(typeof data.permissions === \"number\" && data.permissions >= Permission.NONE && data.permissions <= Permission.ALL)) {\n throw new Error(\"Invalid permissions\");\n }\n if (data.owner && data.owner !== null && typeof data.owner !== \"string\") {\n throw new Error(\"Invalid owner type\");\n }\n if (data.attributes && typeof data.attributes !== \"object\") {\n throw new Error(\"Invalid attributes type\");\n }\n if (data.root && typeof data.root !== \"string\") {\n throw new Error(\"Invalid root type\");\n }\n if (data.root && !data.root.startsWith(\"/\")) {\n throw new Error(\"Root must start with a leading slash\");\n }\n if (data.root && !data.source.includes(data.root)) {\n throw new Error(\"Root must be part of the source\");\n }\n if (data.root && isDavResource(data.source, davService)) {\n const service = data.source.match(davService)[0];\n if (!data.source.includes(join(service, data.root))) {\n throw new Error(\"The root must be relative to the service. e.g /files/emma\");\n }\n }\n if (data.status && !Object.values(NodeStatus).includes(data.status)) {\n throw new Error(\"Status must be a valid NodeStatus\");\n }\n};\nvar NodeStatus = /* @__PURE__ */ ((NodeStatus2) => {\n NodeStatus2[\"NEW\"] = \"new\";\n NodeStatus2[\"FAILED\"] = \"failed\";\n NodeStatus2[\"LOADING\"] = \"loading\";\n NodeStatus2[\"LOCKED\"] = \"locked\";\n return NodeStatus2;\n})(NodeStatus || {});\nclass Node {\n _data;\n _attributes;\n _knownDavService = /(remote|public)\\.php\\/(web)?dav/i;\n readonlyAttributes = Object.entries(Object.getOwnPropertyDescriptors(Node.prototype)).filter((e) => typeof e[1].get === \"function\" && e[0] !== \"__proto__\").map((e) => e[0]);\n handler = {\n set: (target, prop, value) => {\n if (this.readonlyAttributes.includes(prop)) {\n return false;\n }\n return Reflect.set(target, prop, value);\n },\n deleteProperty: (target, prop) => {\n if (this.readonlyAttributes.includes(prop)) {\n return false;\n }\n return Reflect.deleteProperty(target, prop);\n },\n // TODO: This is deprecated and only needed for files v3\n get: (target, prop, receiver) => {\n if (this.readonlyAttributes.includes(prop)) {\n logger.warn(`Accessing \"Node.attributes.${prop}\" is deprecated, access it directly on the Node instance.`);\n return Reflect.get(this, prop);\n }\n return Reflect.get(target, prop, receiver);\n }\n };\n constructor(data, davService) {\n if (!data.mime) {\n data.mime = \"application/octet-stream\";\n }\n validateData(data, davService || this._knownDavService);\n this._data = {\n // TODO: Remove with next major release, this is just for compatibility\n displayname: data.attributes?.displayname,\n ...data,\n attributes: {}\n };\n this._attributes = new Proxy(this._data.attributes, this.handler);\n this.update(data.attributes ?? {});\n if (davService) {\n this._knownDavService = davService;\n }\n }\n /**\n * Get the source url to this object\n * There is no setter as the source is not meant to be changed manually.\n * You can use the rename or move method to change the source.\n */\n get source() {\n return this._data.source.replace(/\\/$/i, \"\");\n }\n /**\n * Get the encoded source url to this object for requests purposes\n */\n get encodedSource() {\n const { origin } = new URL(this.source);\n return origin + encodePath(this.source.slice(origin.length));\n }\n /**\n * Get this object name\n * There is no setter as the source is not meant to be changed manually.\n * You can use the rename or move method to change the source.\n */\n get basename() {\n return basename(this.source);\n }\n /**\n * The nodes displayname\n * By default the display name and the `basename` are identical,\n * but it is possible to have a different name. This happens\n * on the files app for example for shared folders.\n */\n get displayname() {\n return this._data.displayname || this.basename;\n }\n /**\n * Set the displayname\n */\n set displayname(displayname) {\n validateData({ ...this._data, displayname }, this._knownDavService);\n this._data.displayname = displayname;\n }\n /**\n * Get this object's extension\n * There is no setter as the source is not meant to be changed manually.\n * You can use the rename or move method to change the source.\n */\n get extension() {\n return extname(this.source);\n }\n /**\n * Get the directory path leading to this object\n * Will use the relative path to root if available\n *\n * There is no setter as the source is not meant to be changed manually.\n * You can use the rename or move method to change the source.\n */\n get dirname() {\n if (this.root) {\n let source = this.source;\n if (this.isDavResource) {\n source = source.split(this._knownDavService).pop();\n }\n const firstMatch = source.indexOf(this.root);\n const root = this.root.replace(/\\/$/, \"\");\n return dirname(source.slice(firstMatch + root.length) || \"/\");\n }\n const url = new URL(this.source);\n return dirname(url.pathname);\n }\n /**\n * Get the file mime\n */\n get mime() {\n return this._data.mime || \"application/octet-stream\";\n }\n /**\n * Set the file mime\n * Removing the mime type will set it to `application/octet-stream`\n */\n set mime(mime) {\n mime ??= \"application/octet-stream\";\n validateData({ ...this._data, mime }, this._knownDavService);\n this._data.mime = mime;\n }\n /**\n * Get the file modification time\n */\n get mtime() {\n return this._data.mtime;\n }\n /**\n * Set the file modification time\n */\n set mtime(mtime) {\n validateData({ ...this._data, mtime }, this._knownDavService);\n this._data.mtime = mtime;\n }\n /**\n * Get the file creation time\n * There is no setter as the creation time is not meant to be changed\n */\n get crtime() {\n return this._data.crtime;\n }\n /**\n * Get the file size\n */\n get size() {\n return this._data.size;\n }\n /**\n * Set the file size\n */\n set size(size) {\n validateData({ ...this._data, size }, this._knownDavService);\n this.updateMtime();\n this._data.size = size;\n }\n /**\n * Get the file attribute\n * This contains all additional attributes not provided by the Node class\n */\n get attributes() {\n return this._attributes;\n }\n /**\n * Get the file permissions\n */\n get permissions() {\n if (this.owner === null && !this.isDavResource) {\n return Permission.READ;\n }\n return this._data.permissions !== void 0 ? this._data.permissions : Permission.NONE;\n }\n /**\n * Set the file permissions\n */\n set permissions(permissions) {\n validateData({ ...this._data, permissions }, this._knownDavService);\n this.updateMtime();\n this._data.permissions = permissions;\n }\n /**\n * Get the file owner\n * There is no setter as the owner is not meant to be changed\n */\n get owner() {\n if (!this.isDavResource) {\n return null;\n }\n return this._data.owner;\n }\n /**\n * Is this a dav-related resource ?\n */\n get isDavResource() {\n return isDavResource(this.source, this._knownDavService);\n }\n /**\n * @deprecated use `isDavResource` instead - will be removed in next major version.\n */\n get isDavRessource() {\n return this.isDavResource;\n }\n /**\n * Get the dav root of this object\n * There is no setter as the root is not meant to be changed\n */\n get root() {\n if (this._data.root) {\n return this._data.root.replace(/^(.+)\\/$/, \"$1\");\n }\n if (this.isDavResource) {\n const root = dirname(this.source);\n return root.split(this._knownDavService).pop() || null;\n }\n return null;\n }\n /**\n * Get the absolute path of this object relative to the root\n */\n get path() {\n if (this.root) {\n let source = this.source;\n if (this.isDavResource) {\n source = source.split(this._knownDavService).pop();\n }\n const firstMatch = source.indexOf(this.root);\n const root = this.root.replace(/\\/$/, \"\");\n return source.slice(firstMatch + root.length) || \"/\";\n }\n return (this.dirname + \"/\" + this.basename).replace(/\\/\\//g, \"/\");\n }\n /**\n * Get the node id if defined.\n * There is no setter as the fileid is not meant to be changed\n */\n get fileid() {\n return this._data?.id;\n }\n /**\n * Get the node status.\n */\n get status() {\n return this._data?.status;\n }\n /**\n * Set the node status.\n */\n set status(status) {\n validateData({ ...this._data, status }, this._knownDavService);\n this._data.status = status;\n }\n /**\n * Get the node data\n */\n get data() {\n return structuredClone(this._data);\n }\n /**\n * Move the node to a new destination\n *\n * @param {string} destination the new source.\n * e.g. https://cloud.domain.com/remote.php/dav/files/emma/Photos/picture.jpg\n */\n move(destination) {\n validateData({ ...this._data, source: destination }, this._knownDavService);\n const oldBasename = this.basename;\n this._data.source = destination;\n if (this.displayname === oldBasename && this.basename !== oldBasename) {\n this.displayname = this.basename;\n }\n }\n /**\n * Rename the node\n * This aliases the move method for easier usage\n *\n * @param basename The new name of the node\n */\n rename(basename2) {\n if (basename2.includes(\"/\")) {\n throw new Error(\"Invalid basename\");\n }\n this.move(dirname(this.source) + \"/\" + basename2);\n }\n /**\n * Update the mtime if exists\n */\n updateMtime() {\n if (this._data.mtime) {\n this._data.mtime = /* @__PURE__ */ new Date();\n }\n }\n /**\n * Update the attributes of the node\n * Warning, updating attributes will NOT automatically update the mtime.\n *\n * @param attributes The new attributes to update on the Node attributes\n */\n update(attributes) {\n for (const [name, value] of Object.entries(attributes)) {\n try {\n if (value === void 0) {\n delete this.attributes[name];\n } else {\n this.attributes[name] = value;\n }\n } catch (e) {\n if (e instanceof TypeError) {\n continue;\n }\n throw e;\n }\n }\n }\n}\nclass File extends Node {\n get type() {\n return FileType.File;\n }\n /**\n * Returns a clone of the file\n */\n clone() {\n return new File(this.data);\n }\n}\nclass Folder extends Node {\n constructor(data) {\n super({\n ...data,\n mime: \"httpd/unix-directory\"\n });\n }\n get type() {\n return FileType.Folder;\n }\n get extension() {\n return null;\n }\n get mime() {\n return \"httpd/unix-directory\";\n }\n /**\n * Returns a clone of the folder\n */\n clone() {\n return new Folder(this.data);\n }\n}\nconst parsePermissions = function(permString = \"\") {\n let permissions = Permission.NONE;\n if (!permString) {\n return permissions;\n }\n if (permString.includes(\"C\") || permString.includes(\"K\")) {\n permissions |= Permission.CREATE;\n }\n if (permString.includes(\"G\")) {\n permissions |= Permission.READ;\n }\n if (permString.includes(\"W\") || permString.includes(\"N\") || permString.includes(\"V\")) {\n permissions |= Permission.UPDATE;\n }\n if (permString.includes(\"D\")) {\n permissions |= Permission.DELETE;\n }\n if (permString.includes(\"R\")) {\n permissions |= Permission.SHARE;\n }\n return permissions;\n};\nconst defaultDavProperties = [\n \"d:getcontentlength\",\n \"d:getcontenttype\",\n \"d:getetag\",\n \"d:getlastmodified\",\n \"d:creationdate\",\n \"d:displayname\",\n \"d:quota-available-bytes\",\n \"d:resourcetype\",\n \"nc:has-preview\",\n \"nc:is-encrypted\",\n \"nc:mount-type\",\n \"oc:comments-unread\",\n \"oc:favorite\",\n \"oc:fileid\",\n \"oc:owner-display-name\",\n \"oc:owner-id\",\n \"oc:permissions\",\n \"oc:size\"\n];\nconst defaultDavNamespaces = {\n d: \"DAV:\",\n nc: \"http://nextcloud.org/ns\",\n oc: \"http://owncloud.org/ns\",\n ocs: \"http://open-collaboration-services.org/ns\"\n};\nconst registerDavProperty = function(prop, namespace = { nc: \"http://nextcloud.org/ns\" }) {\n if (typeof window._nc_dav_properties === \"undefined\") {\n window._nc_dav_properties = [...defaultDavProperties];\n window._nc_dav_namespaces = { ...defaultDavNamespaces };\n }\n const namespaces = { ...window._nc_dav_namespaces, ...namespace };\n if (window._nc_dav_properties.find((search) => search === prop)) {\n logger.warn(`${prop} already registered`, { prop });\n return false;\n }\n if (prop.startsWith(\"<\") || prop.split(\":\").length !== 2) {\n logger.error(`${prop} is not valid. See example: 'oc:fileid'`, { prop });\n return false;\n }\n const ns = prop.split(\":\")[0];\n if (!namespaces[ns]) {\n logger.error(`${prop} namespace unknown`, { prop, namespaces });\n return false;\n }\n window._nc_dav_properties.push(prop);\n window._nc_dav_namespaces = namespaces;\n return true;\n};\nconst getDavProperties = function() {\n if (typeof window._nc_dav_properties === \"undefined\") {\n window._nc_dav_properties = [...defaultDavProperties];\n }\n return window._nc_dav_properties.map((prop) => `<${prop} />`).join(\" \");\n};\nconst getDavNameSpaces = function() {\n if (typeof window._nc_dav_namespaces === \"undefined\") {\n window._nc_dav_namespaces = { ...defaultDavNamespaces };\n }\n return Object.keys(window._nc_dav_namespaces).map((ns) => `xmlns:${ns}=\"${window._nc_dav_namespaces?.[ns]}\"`).join(\" \");\n};\nconst getDefaultPropfind = function() {\n return `\n\t\t\n\t\t\t\n\t\t\t\t${getDavProperties()}\n\t\t\t\n\t\t`;\n};\nconst getFavoritesReport = function() {\n return `\n\t\t\n\t\t\t\n\t\t\t\t${getDavProperties()}\n\t\t\t\n\t\t\t\n\t\t\t\t1\n\t\t\t\n\t\t`;\n};\nconst getRecentSearch = function(lastModified) {\n return `\n\n\t\n\t\t\n\t\t\t\n\t\t\t\t${getDavProperties()}\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t/files/${getCurrentUser()?.uid}/\n\t\t\t\tinfinity\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\thttpd/unix-directory\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t0\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t${lastModified}\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t100\n\t\t\t0\n\t\t\n\t\n`;\n};\nfunction getRootPath() {\n if (isPublicShare()) {\n return `/files/${getSharingToken()}`;\n }\n return `/files/${getCurrentUser()?.uid}`;\n}\nconst defaultRootPath = getRootPath();\nfunction getRemoteURL() {\n const url = generateRemoteUrl(\"dav\");\n if (isPublicShare()) {\n return url.replace(\"remote.php\", \"public.php\");\n }\n return url;\n}\nconst defaultRemoteURL = getRemoteURL();\nconst getClient = function(remoteURL = defaultRemoteURL, headers = {}) {\n const client = createClient(remoteURL, { headers });\n function setHeaders(token) {\n client.setHeaders({\n ...headers,\n // Add this so the server knows it is an request from the browser\n \"X-Requested-With\": \"XMLHttpRequest\",\n // Inject user auth\n requesttoken: token ?? \"\"\n });\n }\n onRequestTokenUpdate(setHeaders);\n setHeaders(getRequestToken());\n const patcher = getPatcher();\n patcher.patch(\"fetch\", (url, options) => {\n const headers2 = options.headers;\n if (headers2?.method) {\n options.method = headers2.method;\n delete headers2.method;\n }\n return fetch(url, options);\n });\n return client;\n};\nconst getFavoriteNodes = (davClient, path = \"/\", davRoot = defaultRootPath) => {\n const controller = new AbortController();\n return new CancelablePromise(async (resolve, reject, onCancel) => {\n onCancel(() => controller.abort());\n try {\n const contentsResponse = await davClient.getDirectoryContents(`${davRoot}${path}`, {\n signal: controller.signal,\n details: true,\n data: getFavoritesReport(),\n headers: {\n // see getClient for patched webdav client\n method: \"REPORT\"\n },\n includeSelf: true\n });\n const nodes = contentsResponse.data.filter((node) => node.filename !== path).map((result) => resultToNode(result, davRoot));\n resolve(nodes);\n } catch (error) {\n reject(error);\n }\n });\n};\nconst resultToNode = function(node, filesRoot = defaultRootPath, remoteURL = defaultRemoteURL) {\n let userId = getCurrentUser()?.uid;\n if (isPublicShare()) {\n userId = userId ?? \"anonymous\";\n } else if (!userId) {\n throw new Error(\"No user id found\");\n }\n const props = node.props;\n const permissions = parsePermissions(props?.permissions);\n const owner = String(props?.[\"owner-id\"] || userId);\n const id = props.fileid || 0;\n const mtime = new Date(Date.parse(node.lastmod));\n const crtime = new Date(Date.parse(props.creationdate));\n const nodeData = {\n id,\n source: `${remoteURL}${node.filename}`,\n mtime: !isNaN(mtime.getTime()) && mtime.getTime() !== 0 ? mtime : void 0,\n crtime: !isNaN(crtime.getTime()) && crtime.getTime() !== 0 ? crtime : void 0,\n mime: node.mime || \"application/octet-stream\",\n // Manually cast to work around for https://github.com/perry-mitchell/webdav-client/pull/380\n displayname: props.displayname !== void 0 ? String(props.displayname) : void 0,\n size: props?.size || Number.parseInt(props.getcontentlength || \"0\"),\n // The fileid is set to -1 for failed requests\n status: id < 0 ? NodeStatus.FAILED : void 0,\n permissions,\n owner,\n root: filesRoot,\n attributes: {\n ...node,\n ...props,\n hasPreview: props?.[\"has-preview\"]\n }\n };\n delete nodeData.attributes?.props;\n return node.type === \"file\" ? new File(nodeData) : new Folder(nodeData);\n};\nexport {\n FileType as F,\n Node as N,\n Permission as P,\n getRemoteURL as a,\n defaultRemoteURL as b,\n getClient as c,\n defaultRootPath as d,\n getFavoriteNodes as e,\n defaultDavProperties as f,\n getRootPath as g,\n defaultDavNamespaces as h,\n registerDavProperty as i,\n getDavProperties as j,\n getDavNameSpaces as k,\n getDefaultPropfind as l,\n getFavoritesReport as m,\n getRecentSearch as n,\n logger as o,\n parsePermissions as p,\n File as q,\n resultToNode as r,\n Folder as s,\n NodeStatus as t\n};\n//# sourceMappingURL=dav-Rt1kTtvI.mjs.map\n","import { o as logger, F as FileType } from \"./chunks/dav-Rt1kTtvI.mjs\";\nimport { q, s, N, t, P, c, l, m, n, a, g, p, b, r, d, h, f, k, j, e, i } from \"./chunks/dav-Rt1kTtvI.mjs\";\nimport { TypedEventTarget } from \"typescript-event-target\";\nimport require$$1 from \"string_decoder\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport { extname, basename } from \"@nextcloud/paths\";\nimport { getCanonicalLocale, getLanguage } from \"@nextcloud/l10n\";\nvar DefaultType = /* @__PURE__ */ ((DefaultType2) => {\n DefaultType2[\"DEFAULT\"] = \"default\";\n DefaultType2[\"HIDDEN\"] = \"hidden\";\n return DefaultType2;\n})(DefaultType || {});\nclass FileAction {\n _action;\n constructor(action) {\n this.validateAction(action);\n this._action = action;\n }\n get id() {\n return this._action.id;\n }\n get displayName() {\n return this._action.displayName;\n }\n get title() {\n return this._action.title;\n }\n get iconSvgInline() {\n return this._action.iconSvgInline;\n }\n get enabled() {\n return this._action.enabled;\n }\n get exec() {\n return this._action.exec;\n }\n get execBatch() {\n return this._action.execBatch;\n }\n get hotkey() {\n return this._action.hotkey;\n }\n get order() {\n return this._action.order;\n }\n get parent() {\n return this._action.parent;\n }\n get default() {\n return this._action.default;\n }\n get destructive() {\n return this._action.destructive;\n }\n get inline() {\n return this._action.inline;\n }\n get renderInline() {\n return this._action.renderInline;\n }\n validateAction(action) {\n if (!action.id || typeof action.id !== \"string\") {\n throw new Error(\"Invalid id\");\n }\n if (!action.displayName || typeof action.displayName !== \"function\") {\n throw new Error(\"Invalid displayName function\");\n }\n if (\"title\" in action && typeof action.title !== \"function\") {\n throw new Error(\"Invalid title function\");\n }\n if (!action.iconSvgInline || typeof action.iconSvgInline !== \"function\") {\n throw new Error(\"Invalid iconSvgInline function\");\n }\n if (!action.exec || typeof action.exec !== \"function\") {\n throw new Error(\"Invalid exec function\");\n }\n if (\"enabled\" in action && typeof action.enabled !== \"function\") {\n throw new Error(\"Invalid enabled function\");\n }\n if (\"execBatch\" in action && typeof action.execBatch !== \"function\") {\n throw new Error(\"Invalid execBatch function\");\n }\n if (\"order\" in action && typeof action.order !== \"number\") {\n throw new Error(\"Invalid order\");\n }\n if (action.destructive !== void 0 && typeof action.destructive !== \"boolean\") {\n throw new Error(\"Invalid destructive flag\");\n }\n if (\"parent\" in action && typeof action.parent !== \"string\") {\n throw new Error(\"Invalid parent\");\n }\n if (action.default && !Object.values(DefaultType).includes(action.default)) {\n throw new Error(\"Invalid default\");\n }\n if (\"inline\" in action && typeof action.inline !== \"function\") {\n throw new Error(\"Invalid inline function\");\n }\n if (\"renderInline\" in action && typeof action.renderInline !== \"function\") {\n throw new Error(\"Invalid renderInline function\");\n }\n if (\"hotkey\" in action && action.hotkey !== void 0) {\n if (typeof action.hotkey !== \"object\") {\n throw new Error(\"Invalid hotkey configuration\");\n }\n if (typeof action.hotkey.key !== \"string\" || !action.hotkey.key) {\n throw new Error(\"Missing or invalid hotkey key\");\n }\n if (typeof action.hotkey.description !== \"string\" || !action.hotkey.description) {\n throw new Error(\"Missing or invalid hotkey description\");\n }\n }\n }\n}\nconst registerFileAction = function(action) {\n if (typeof window._nc_fileactions === \"undefined\") {\n window._nc_fileactions = [];\n logger.debug(\"FileActions initialized\");\n }\n if (window._nc_fileactions.find((search) => search.id === action.id)) {\n logger.error(`FileAction ${action.id} already registered`, { action });\n return;\n }\n window._nc_fileactions.push(action);\n};\nconst getFileActions = function() {\n if (typeof window._nc_fileactions === \"undefined\") {\n window._nc_fileactions = [];\n logger.debug(\"FileActions initialized\");\n }\n return window._nc_fileactions;\n};\nclass FileListAction {\n _action;\n constructor(action) {\n this.validateAction(action);\n this._action = action;\n }\n get id() {\n return this._action.id;\n }\n get displayName() {\n return this._action.displayName;\n }\n get iconSvgInline() {\n return this._action.iconSvgInline;\n }\n get order() {\n return this._action.order;\n }\n get enabled() {\n return this._action.enabled;\n }\n get exec() {\n return this._action.exec;\n }\n validateAction(action) {\n if (!action.id || typeof action.id !== \"string\") {\n throw new Error(\"Invalid id\");\n }\n if (!action.displayName || typeof action.displayName !== \"function\") {\n throw new Error(\"Invalid displayName function\");\n }\n if (\"iconSvgInline\" in action && typeof action.iconSvgInline !== \"function\") {\n throw new Error(\"Invalid iconSvgInline function\");\n }\n if (\"order\" in action && typeof action.order !== \"number\") {\n throw new Error(\"Invalid order\");\n }\n if (\"enabled\" in action && typeof action.enabled !== \"function\") {\n throw new Error(\"Invalid enabled function\");\n }\n if (!action.exec || typeof action.exec !== \"function\") {\n throw new Error(\"Invalid exec function\");\n }\n }\n}\nconst registerFileListAction = (action) => {\n if (typeof window._nc_filelistactions === \"undefined\") {\n window._nc_filelistactions = [];\n }\n if (window._nc_filelistactions.find((listAction) => listAction.id === action.id)) {\n logger.error(`FileListAction with id \"${action.id}\" is already registered`, { action });\n return;\n }\n window._nc_filelistactions.push(action);\n};\nconst getFileListActions = () => {\n if (typeof window._nc_filelistactions === \"undefined\") {\n window._nc_filelistactions = [];\n }\n return window._nc_filelistactions;\n};\nfunction getDefaultExportFromCjs(x) {\n return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, \"default\") ? x[\"default\"] : x;\n}\nvar debug_1;\nvar hasRequiredDebug;\nfunction requireDebug() {\n if (hasRequiredDebug) return debug_1;\n hasRequiredDebug = 1;\n const debug = typeof process === \"object\" && process.env && process.env.NODE_DEBUG && /\\bsemver\\b/i.test(process.env.NODE_DEBUG) ? (...args) => console.error(\"SEMVER\", ...args) : () => {\n };\n debug_1 = debug;\n return debug_1;\n}\nvar constants;\nvar hasRequiredConstants;\nfunction requireConstants() {\n if (hasRequiredConstants) return constants;\n hasRequiredConstants = 1;\n const SEMVER_SPEC_VERSION = \"2.0.0\";\n const MAX_LENGTH = 256;\n const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */\n 9007199254740991;\n const MAX_SAFE_COMPONENT_LENGTH = 16;\n const MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6;\n const RELEASE_TYPES = [\n \"major\",\n \"premajor\",\n \"minor\",\n \"preminor\",\n \"patch\",\n \"prepatch\",\n \"prerelease\"\n ];\n constants = {\n MAX_LENGTH,\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_SAFE_INTEGER,\n RELEASE_TYPES,\n SEMVER_SPEC_VERSION,\n FLAG_INCLUDE_PRERELEASE: 1,\n FLAG_LOOSE: 2\n };\n return constants;\n}\nvar re = { exports: {} };\nvar hasRequiredRe;\nfunction requireRe() {\n if (hasRequiredRe) return re.exports;\n hasRequiredRe = 1;\n (function(module, exports) {\n const {\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_LENGTH\n } = requireConstants();\n const debug = requireDebug();\n exports = module.exports = {};\n const re2 = exports.re = [];\n const safeRe = exports.safeRe = [];\n const src = exports.src = [];\n const safeSrc = exports.safeSrc = [];\n const t2 = exports.t = {};\n let R = 0;\n const LETTERDASHNUMBER = \"[a-zA-Z0-9-]\";\n const safeRegexReplacements = [\n [\"\\\\s\", 1],\n [\"\\\\d\", MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH]\n ];\n const makeSafeRegex = (value) => {\n for (const [token, max] of safeRegexReplacements) {\n value = value.split(`${token}*`).join(`${token}{0,${max}}`).split(`${token}+`).join(`${token}{1,${max}}`);\n }\n return value;\n };\n const createToken = (name, value, isGlobal) => {\n const safe = makeSafeRegex(value);\n const index = R++;\n debug(name, index, value);\n t2[name] = index;\n src[index] = value;\n safeSrc[index] = safe;\n re2[index] = new RegExp(value, isGlobal ? \"g\" : void 0);\n safeRe[index] = new RegExp(safe, isGlobal ? \"g\" : void 0);\n };\n createToken(\"NUMERICIDENTIFIER\", \"0|[1-9]\\\\d*\");\n createToken(\"NUMERICIDENTIFIERLOOSE\", \"\\\\d+\");\n createToken(\"NONNUMERICIDENTIFIER\", `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`);\n createToken(\"MAINVERSION\", `(${src[t2.NUMERICIDENTIFIER]})\\\\.(${src[t2.NUMERICIDENTIFIER]})\\\\.(${src[t2.NUMERICIDENTIFIER]})`);\n createToken(\"MAINVERSIONLOOSE\", `(${src[t2.NUMERICIDENTIFIERLOOSE]})\\\\.(${src[t2.NUMERICIDENTIFIERLOOSE]})\\\\.(${src[t2.NUMERICIDENTIFIERLOOSE]})`);\n createToken(\"PRERELEASEIDENTIFIER\", `(?:${src[t2.NONNUMERICIDENTIFIER]}|${src[t2.NUMERICIDENTIFIER]})`);\n createToken(\"PRERELEASEIDENTIFIERLOOSE\", `(?:${src[t2.NONNUMERICIDENTIFIER]}|${src[t2.NUMERICIDENTIFIERLOOSE]})`);\n createToken(\"PRERELEASE\", `(?:-(${src[t2.PRERELEASEIDENTIFIER]}(?:\\\\.${src[t2.PRERELEASEIDENTIFIER]})*))`);\n createToken(\"PRERELEASELOOSE\", `(?:-?(${src[t2.PRERELEASEIDENTIFIERLOOSE]}(?:\\\\.${src[t2.PRERELEASEIDENTIFIERLOOSE]})*))`);\n createToken(\"BUILDIDENTIFIER\", `${LETTERDASHNUMBER}+`);\n createToken(\"BUILD\", `(?:\\\\+(${src[t2.BUILDIDENTIFIER]}(?:\\\\.${src[t2.BUILDIDENTIFIER]})*))`);\n createToken(\"FULLPLAIN\", `v?${src[t2.MAINVERSION]}${src[t2.PRERELEASE]}?${src[t2.BUILD]}?`);\n createToken(\"FULL\", `^${src[t2.FULLPLAIN]}$`);\n createToken(\"LOOSEPLAIN\", `[v=\\\\s]*${src[t2.MAINVERSIONLOOSE]}${src[t2.PRERELEASELOOSE]}?${src[t2.BUILD]}?`);\n createToken(\"LOOSE\", `^${src[t2.LOOSEPLAIN]}$`);\n createToken(\"GTLT\", \"((?:<|>)?=?)\");\n createToken(\"XRANGEIDENTIFIERLOOSE\", `${src[t2.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`);\n createToken(\"XRANGEIDENTIFIER\", `${src[t2.NUMERICIDENTIFIER]}|x|X|\\\\*`);\n createToken(\"XRANGEPLAIN\", `[v=\\\\s]*(${src[t2.XRANGEIDENTIFIER]})(?:\\\\.(${src[t2.XRANGEIDENTIFIER]})(?:\\\\.(${src[t2.XRANGEIDENTIFIER]})(?:${src[t2.PRERELEASE]})?${src[t2.BUILD]}?)?)?`);\n createToken(\"XRANGEPLAINLOOSE\", `[v=\\\\s]*(${src[t2.XRANGEIDENTIFIERLOOSE]})(?:\\\\.(${src[t2.XRANGEIDENTIFIERLOOSE]})(?:\\\\.(${src[t2.XRANGEIDENTIFIERLOOSE]})(?:${src[t2.PRERELEASELOOSE]})?${src[t2.BUILD]}?)?)?`);\n createToken(\"XRANGE\", `^${src[t2.GTLT]}\\\\s*${src[t2.XRANGEPLAIN]}$`);\n createToken(\"XRANGELOOSE\", `^${src[t2.GTLT]}\\\\s*${src[t2.XRANGEPLAINLOOSE]}$`);\n createToken(\"COERCEPLAIN\", `${\"(^|[^\\\\d])(\\\\d{1,\"}${MAX_SAFE_COMPONENT_LENGTH}})(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`);\n createToken(\"COERCE\", `${src[t2.COERCEPLAIN]}(?:$|[^\\\\d])`);\n createToken(\"COERCEFULL\", src[t2.COERCEPLAIN] + `(?:${src[t2.PRERELEASE]})?(?:${src[t2.BUILD]})?(?:$|[^\\\\d])`);\n createToken(\"COERCERTL\", src[t2.COERCE], true);\n createToken(\"COERCERTLFULL\", src[t2.COERCEFULL], true);\n createToken(\"LONETILDE\", \"(?:~>?)\");\n createToken(\"TILDETRIM\", `(\\\\s*)${src[t2.LONETILDE]}\\\\s+`, true);\n exports.tildeTrimReplace = \"$1~\";\n createToken(\"TILDE\", `^${src[t2.LONETILDE]}${src[t2.XRANGEPLAIN]}$`);\n createToken(\"TILDELOOSE\", `^${src[t2.LONETILDE]}${src[t2.XRANGEPLAINLOOSE]}$`);\n createToken(\"LONECARET\", \"(?:\\\\^)\");\n createToken(\"CARETTRIM\", `(\\\\s*)${src[t2.LONECARET]}\\\\s+`, true);\n exports.caretTrimReplace = \"$1^\";\n createToken(\"CARET\", `^${src[t2.LONECARET]}${src[t2.XRANGEPLAIN]}$`);\n createToken(\"CARETLOOSE\", `^${src[t2.LONECARET]}${src[t2.XRANGEPLAINLOOSE]}$`);\n createToken(\"COMPARATORLOOSE\", `^${src[t2.GTLT]}\\\\s*(${src[t2.LOOSEPLAIN]})$|^$`);\n createToken(\"COMPARATOR\", `^${src[t2.GTLT]}\\\\s*(${src[t2.FULLPLAIN]})$|^$`);\n createToken(\"COMPARATORTRIM\", `(\\\\s*)${src[t2.GTLT]}\\\\s*(${src[t2.LOOSEPLAIN]}|${src[t2.XRANGEPLAIN]})`, true);\n exports.comparatorTrimReplace = \"$1$2$3\";\n createToken(\"HYPHENRANGE\", `^\\\\s*(${src[t2.XRANGEPLAIN]})\\\\s+-\\\\s+(${src[t2.XRANGEPLAIN]})\\\\s*$`);\n createToken(\"HYPHENRANGELOOSE\", `^\\\\s*(${src[t2.XRANGEPLAINLOOSE]})\\\\s+-\\\\s+(${src[t2.XRANGEPLAINLOOSE]})\\\\s*$`);\n createToken(\"STAR\", \"(<|>)?=?\\\\s*\\\\*\");\n createToken(\"GTE0\", \"^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$\");\n createToken(\"GTE0PRE\", \"^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$\");\n })(re, re.exports);\n return re.exports;\n}\nvar parseOptions_1;\nvar hasRequiredParseOptions;\nfunction requireParseOptions() {\n if (hasRequiredParseOptions) return parseOptions_1;\n hasRequiredParseOptions = 1;\n const looseOption = Object.freeze({ loose: true });\n const emptyOpts = Object.freeze({});\n const parseOptions = (options) => {\n if (!options) {\n return emptyOpts;\n }\n if (typeof options !== \"object\") {\n return looseOption;\n }\n return options;\n };\n parseOptions_1 = parseOptions;\n return parseOptions_1;\n}\nvar identifiers;\nvar hasRequiredIdentifiers;\nfunction requireIdentifiers() {\n if (hasRequiredIdentifiers) return identifiers;\n hasRequiredIdentifiers = 1;\n const numeric = /^[0-9]+$/;\n const compareIdentifiers = (a2, b2) => {\n if (typeof a2 === \"number\" && typeof b2 === \"number\") {\n return a2 === b2 ? 0 : a2 < b2 ? -1 : 1;\n }\n const anum = numeric.test(a2);\n const bnum = numeric.test(b2);\n if (anum && bnum) {\n a2 = +a2;\n b2 = +b2;\n }\n return a2 === b2 ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a2 < b2 ? -1 : 1;\n };\n const rcompareIdentifiers = (a2, b2) => compareIdentifiers(b2, a2);\n identifiers = {\n compareIdentifiers,\n rcompareIdentifiers\n };\n return identifiers;\n}\nvar semver;\nvar hasRequiredSemver;\nfunction requireSemver() {\n if (hasRequiredSemver) return semver;\n hasRequiredSemver = 1;\n const debug = requireDebug();\n const { MAX_LENGTH, MAX_SAFE_INTEGER } = requireConstants();\n const { safeRe: re2, t: t2 } = requireRe();\n const parseOptions = requireParseOptions();\n const { compareIdentifiers } = requireIdentifiers();\n class SemVer {\n constructor(version, options) {\n options = parseOptions(options);\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose && version.includePrerelease === !!options.includePrerelease) {\n return version;\n } else {\n version = version.version;\n }\n } else if (typeof version !== \"string\") {\n throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`);\n }\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n );\n }\n debug(\"SemVer\", version, options);\n this.options = options;\n this.loose = !!options.loose;\n this.includePrerelease = !!options.includePrerelease;\n const m2 = version.trim().match(options.loose ? re2[t2.LOOSE] : re2[t2.FULL]);\n if (!m2) {\n throw new TypeError(`Invalid Version: ${version}`);\n }\n this.raw = version;\n this.major = +m2[1];\n this.minor = +m2[2];\n this.patch = +m2[3];\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError(\"Invalid major version\");\n }\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError(\"Invalid minor version\");\n }\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError(\"Invalid patch version\");\n }\n if (!m2[4]) {\n this.prerelease = [];\n } else {\n this.prerelease = m2[4].split(\".\").map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id;\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num;\n }\n }\n return id;\n });\n }\n this.build = m2[5] ? m2[5].split(\".\") : [];\n this.format();\n }\n format() {\n this.version = `${this.major}.${this.minor}.${this.patch}`;\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join(\".\")}`;\n }\n return this.version;\n }\n toString() {\n return this.version;\n }\n compare(other) {\n debug(\"SemVer.compare\", this.version, this.options, other);\n if (!(other instanceof SemVer)) {\n if (typeof other === \"string\" && other === this.version) {\n return 0;\n }\n other = new SemVer(other, this.options);\n }\n if (other.version === this.version) {\n return 0;\n }\n return this.compareMain(other) || this.comparePre(other);\n }\n compareMain(other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options);\n }\n if (this.major < other.major) {\n return -1;\n }\n if (this.major > other.major) {\n return 1;\n }\n if (this.minor < other.minor) {\n return -1;\n }\n if (this.minor > other.minor) {\n return 1;\n }\n if (this.patch < other.patch) {\n return -1;\n }\n if (this.patch > other.patch) {\n return 1;\n }\n return 0;\n }\n comparePre(other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options);\n }\n if (this.prerelease.length && !other.prerelease.length) {\n return -1;\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1;\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0;\n }\n let i2 = 0;\n do {\n const a2 = this.prerelease[i2];\n const b2 = other.prerelease[i2];\n debug(\"prerelease compare\", i2, a2, b2);\n if (a2 === void 0 && b2 === void 0) {\n return 0;\n } else if (b2 === void 0) {\n return 1;\n } else if (a2 === void 0) {\n return -1;\n } else if (a2 === b2) {\n continue;\n } else {\n return compareIdentifiers(a2, b2);\n }\n } while (++i2);\n }\n compareBuild(other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options);\n }\n let i2 = 0;\n do {\n const a2 = this.build[i2];\n const b2 = other.build[i2];\n debug(\"build compare\", i2, a2, b2);\n if (a2 === void 0 && b2 === void 0) {\n return 0;\n } else if (b2 === void 0) {\n return 1;\n } else if (a2 === void 0) {\n return -1;\n } else if (a2 === b2) {\n continue;\n } else {\n return compareIdentifiers(a2, b2);\n }\n } while (++i2);\n }\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc(release, identifier, identifierBase) {\n if (release.startsWith(\"pre\")) {\n if (!identifier && identifierBase === false) {\n throw new Error(\"invalid increment argument: identifier is empty\");\n }\n if (identifier) {\n const match = `-${identifier}`.match(this.options.loose ? re2[t2.PRERELEASELOOSE] : re2[t2.PRERELEASE]);\n if (!match || match[1] !== identifier) {\n throw new Error(`invalid identifier: ${identifier}`);\n }\n }\n }\n switch (release) {\n case \"premajor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor = 0;\n this.major++;\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"preminor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor++;\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"prepatch\":\n this.prerelease.length = 0;\n this.inc(\"patch\", identifier, identifierBase);\n this.inc(\"pre\", identifier, identifierBase);\n break;\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case \"prerelease\":\n if (this.prerelease.length === 0) {\n this.inc(\"patch\", identifier, identifierBase);\n }\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"release\":\n if (this.prerelease.length === 0) {\n throw new Error(`version ${this.raw} is not a prerelease`);\n }\n this.prerelease.length = 0;\n break;\n case \"major\":\n if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) {\n this.major++;\n }\n this.minor = 0;\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"minor\":\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++;\n }\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"patch\":\n if (this.prerelease.length === 0) {\n this.patch++;\n }\n this.prerelease = [];\n break;\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case \"pre\": {\n const base = Number(identifierBase) ? 1 : 0;\n if (this.prerelease.length === 0) {\n this.prerelease = [base];\n } else {\n let i2 = this.prerelease.length;\n while (--i2 >= 0) {\n if (typeof this.prerelease[i2] === \"number\") {\n this.prerelease[i2]++;\n i2 = -2;\n }\n }\n if (i2 === -1) {\n if (identifier === this.prerelease.join(\".\") && identifierBase === false) {\n throw new Error(\"invalid increment argument: identifier already exists\");\n }\n this.prerelease.push(base);\n }\n }\n if (identifier) {\n let prerelease = [identifier, base];\n if (identifierBase === false) {\n prerelease = [identifier];\n }\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = prerelease;\n }\n } else {\n this.prerelease = prerelease;\n }\n }\n break;\n }\n default:\n throw new Error(`invalid increment argument: ${release}`);\n }\n this.raw = this.format();\n if (this.build.length) {\n this.raw += `+${this.build.join(\".\")}`;\n }\n return this;\n }\n }\n semver = SemVer;\n return semver;\n}\nvar major_1;\nvar hasRequiredMajor;\nfunction requireMajor() {\n if (hasRequiredMajor) return major_1;\n hasRequiredMajor = 1;\n const SemVer = requireSemver();\n const major2 = (a2, loose) => new SemVer(a2, loose).major;\n major_1 = major2;\n return major_1;\n}\nvar majorExports = requireMajor();\nconst major = /* @__PURE__ */ getDefaultExportFromCjs(majorExports);\nvar parse_1;\nvar hasRequiredParse;\nfunction requireParse() {\n if (hasRequiredParse) return parse_1;\n hasRequiredParse = 1;\n const SemVer = requireSemver();\n const parse = (version, options, throwErrors = false) => {\n if (version instanceof SemVer) {\n return version;\n }\n try {\n return new SemVer(version, options);\n } catch (er) {\n if (!throwErrors) {\n return null;\n }\n throw er;\n }\n };\n parse_1 = parse;\n return parse_1;\n}\nvar valid_1;\nvar hasRequiredValid;\nfunction requireValid() {\n if (hasRequiredValid) return valid_1;\n hasRequiredValid = 1;\n const parse = requireParse();\n const valid2 = (version, options) => {\n const v = parse(version, options);\n return v ? v.version : null;\n };\n valid_1 = valid2;\n return valid_1;\n}\nvar validExports = requireValid();\nconst valid = /* @__PURE__ */ getDefaultExportFromCjs(validExports);\n/*!\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nclass ProxyBus {\n bus;\n constructor(bus2) {\n if (typeof bus2.getVersion !== \"function\" || !valid(bus2.getVersion())) {\n console.warn(\"Proxying an event bus with an unknown or invalid version\");\n } else if (major(bus2.getVersion()) !== major(this.getVersion())) {\n console.warn(\n \"Proxying an event bus of version \" + bus2.getVersion() + \" with \" + this.getVersion()\n );\n }\n this.bus = bus2;\n }\n getVersion() {\n return \"3.3.3\";\n }\n subscribe(name, handler) {\n this.bus.subscribe(name, handler);\n }\n unsubscribe(name, handler) {\n this.bus.unsubscribe(name, handler);\n }\n emit(name, ...event) {\n this.bus.emit(name, ...event);\n }\n}\n/*!\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nclass SimpleBus {\n handlers = /* @__PURE__ */ new Map();\n getVersion() {\n return \"3.3.3\";\n }\n subscribe(name, handler) {\n this.handlers.set(\n name,\n (this.handlers.get(name) || []).concat(\n handler\n )\n );\n }\n unsubscribe(name, handler) {\n this.handlers.set(\n name,\n (this.handlers.get(name) || []).filter((h2) => h2 !== handler)\n );\n }\n emit(name, ...event) {\n const handlers = this.handlers.get(name) || [];\n handlers.forEach((h2) => {\n try {\n ;\n h2(event[0]);\n } catch (e2) {\n console.error(\"could not invoke event listener\", e2);\n }\n });\n }\n}\n/*!\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nlet bus = null;\nfunction getBus() {\n if (bus !== null) {\n return bus;\n }\n if (typeof window === \"undefined\") {\n return new Proxy({}, {\n get: () => {\n return () => console.error(\n \"Window not available, EventBus can not be established!\"\n );\n }\n });\n }\n if (window.OC?._eventBus && typeof window._nc_event_bus === \"undefined\") {\n console.warn(\n \"found old event bus instance at OC._eventBus. Update your version!\"\n );\n window._nc_event_bus = window.OC._eventBus;\n }\n if (typeof window?._nc_event_bus !== \"undefined\") {\n bus = new ProxyBus(window._nc_event_bus);\n } else {\n bus = window._nc_event_bus = new SimpleBus();\n }\n return bus;\n}\nfunction emit(name, ...event) {\n getBus().emit(name, ...event);\n}\n/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nclass FileListFilter extends TypedEventTarget {\n id;\n order;\n constructor(id, order = 100) {\n super();\n this.id = id;\n this.order = order;\n }\n filter(nodes) {\n throw new Error(\"Not implemented\");\n }\n updateChips(chips) {\n this.dispatchTypedEvent(\"update:chips\", new CustomEvent(\"update:chips\", { detail: chips }));\n }\n filterUpdated() {\n this.dispatchTypedEvent(\"update:filter\", new CustomEvent(\"update:filter\"));\n }\n}\nfunction registerFileListFilter(filter) {\n if (!window._nc_filelist_filters) {\n window._nc_filelist_filters = /* @__PURE__ */ new Map();\n }\n if (window._nc_filelist_filters.has(filter.id)) {\n throw new Error(`File list filter \"${filter.id}\" already registered`);\n }\n window._nc_filelist_filters.set(filter.id, filter);\n emit(\"files:filter:added\", filter);\n}\nfunction unregisterFileListFilter(filterId) {\n if (window._nc_filelist_filters && window._nc_filelist_filters.has(filterId)) {\n window._nc_filelist_filters.delete(filterId);\n emit(\"files:filter:removed\", filterId);\n }\n}\nfunction getFileListFilters() {\n if (!window._nc_filelist_filters) {\n return [];\n }\n return [...window._nc_filelist_filters.values()];\n}\nclass Header {\n _header;\n constructor(header) {\n this.validateHeader(header);\n this._header = header;\n }\n get id() {\n return this._header.id;\n }\n get order() {\n return this._header.order;\n }\n get enabled() {\n return this._header.enabled;\n }\n get render() {\n return this._header.render;\n }\n get updated() {\n return this._header.updated;\n }\n validateHeader(header) {\n if (!header.id || !header.render || !header.updated) {\n throw new Error(\"Invalid header: id, render and updated are required\");\n }\n if (typeof header.id !== \"string\") {\n throw new Error(\"Invalid id property\");\n }\n if (header.enabled !== void 0 && typeof header.enabled !== \"function\") {\n throw new Error(\"Invalid enabled property\");\n }\n if (header.render && typeof header.render !== \"function\") {\n throw new Error(\"Invalid render property\");\n }\n if (header.updated && typeof header.updated !== \"function\") {\n throw new Error(\"Invalid updated property\");\n }\n }\n}\nconst registerFileListHeaders = function(header) {\n if (typeof window._nc_filelistheader === \"undefined\") {\n window._nc_filelistheader = [];\n logger.debug(\"FileListHeaders initialized\");\n }\n if (window._nc_filelistheader.find((search) => search.id === header.id)) {\n logger.error(`Header ${header.id} already registered`, { header });\n return;\n }\n window._nc_filelistheader.push(header);\n};\nconst getFileListHeaders = function() {\n if (typeof window._nc_filelistheader === \"undefined\") {\n window._nc_filelistheader = [];\n logger.debug(\"FileListHeaders initialized\");\n }\n return window._nc_filelistheader;\n};\nclass Navigation extends TypedEventTarget {\n _views = [];\n _currentView = null;\n /**\n * Register a new view on the navigation\n * @param view The view to register\n * @throws `Error` is thrown if a view with the same id is already registered\n */\n register(view) {\n if (this._views.find((search) => search.id === view.id)) {\n throw new Error(`View id ${view.id} is already registered`);\n }\n this._views.push(view);\n this.dispatchTypedEvent(\"update\", new CustomEvent(\"update\"));\n }\n /**\n * Remove a registered view\n * @param id The id of the view to remove\n */\n remove(id) {\n const index = this._views.findIndex((view) => view.id === id);\n if (index !== -1) {\n this._views.splice(index, 1);\n this.dispatchTypedEvent(\"update\", new CustomEvent(\"update\"));\n }\n }\n /**\n * Set the currently active view\n * @fires UpdateActiveViewEvent\n * @param view New active view\n */\n setActive(view) {\n this._currentView = view;\n const event = new CustomEvent(\"updateActive\", { detail: view });\n this.dispatchTypedEvent(\"updateActive\", event);\n }\n /**\n * The currently active files view\n */\n get active() {\n return this._currentView;\n }\n /**\n * All registered views\n */\n get views() {\n return this._views;\n }\n}\nconst getNavigation = function() {\n if (typeof window._nc_navigation === \"undefined\") {\n window._nc_navigation = new Navigation();\n logger.debug(\"Navigation service initialized\");\n }\n return window._nc_navigation;\n};\nclass Column {\n _column;\n constructor(column) {\n isValidColumn(column);\n this._column = column;\n }\n get id() {\n return this._column.id;\n }\n get title() {\n return this._column.title;\n }\n get render() {\n return this._column.render;\n }\n get sort() {\n return this._column.sort;\n }\n get summary() {\n return this._column.summary;\n }\n}\nconst isValidColumn = function(column) {\n if (!column.id || typeof column.id !== \"string\") {\n throw new Error(\"A column id is required\");\n }\n if (!column.title || typeof column.title !== \"string\") {\n throw new Error(\"A column title is required\");\n }\n if (!column.render || typeof column.render !== \"function\") {\n throw new Error(\"A render function is required\");\n }\n if (column.sort && typeof column.sort !== \"function\") {\n throw new Error(\"Column sortFunction must be a function\");\n }\n if (column.summary && typeof column.summary !== \"function\") {\n throw new Error(\"Column summary must be a function\");\n }\n return true;\n};\nvar sax$1 = {};\nvar hasRequiredSax;\nfunction requireSax() {\n if (hasRequiredSax) return sax$1;\n hasRequiredSax = 1;\n (function(exports) {\n (function(sax2) {\n sax2.parser = function(strict, opt) {\n return new SAXParser(strict, opt);\n };\n sax2.SAXParser = SAXParser;\n sax2.SAXStream = SAXStream;\n sax2.createStream = createStream;\n sax2.MAX_BUFFER_LENGTH = 64 * 1024;\n var buffers = [\n \"comment\",\n \"sgmlDecl\",\n \"textNode\",\n \"tagName\",\n \"doctype\",\n \"procInstName\",\n \"procInstBody\",\n \"entity\",\n \"attribName\",\n \"attribValue\",\n \"cdata\",\n \"script\"\n ];\n sax2.EVENTS = [\n \"text\",\n \"processinginstruction\",\n \"sgmldeclaration\",\n \"doctype\",\n \"comment\",\n \"opentagstart\",\n \"attribute\",\n \"opentag\",\n \"closetag\",\n \"opencdata\",\n \"cdata\",\n \"closecdata\",\n \"error\",\n \"end\",\n \"ready\",\n \"script\",\n \"opennamespace\",\n \"closenamespace\"\n ];\n function SAXParser(strict, opt) {\n if (!(this instanceof SAXParser)) {\n return new SAXParser(strict, opt);\n }\n var parser = this;\n clearBuffers(parser);\n parser.q = parser.c = \"\";\n parser.bufferCheckPosition = sax2.MAX_BUFFER_LENGTH;\n parser.opt = opt || {};\n parser.opt.lowercase = parser.opt.lowercase || parser.opt.lowercasetags;\n parser.looseCase = parser.opt.lowercase ? \"toLowerCase\" : \"toUpperCase\";\n parser.tags = [];\n parser.closed = parser.closedRoot = parser.sawRoot = false;\n parser.tag = parser.error = null;\n parser.strict = !!strict;\n parser.noscript = !!(strict || parser.opt.noscript);\n parser.state = S.BEGIN;\n parser.strictEntities = parser.opt.strictEntities;\n parser.ENTITIES = parser.strictEntities ? Object.create(sax2.XML_ENTITIES) : Object.create(sax2.ENTITIES);\n parser.attribList = [];\n if (parser.opt.xmlns) {\n parser.ns = Object.create(rootNS);\n }\n if (parser.opt.unquotedAttributeValues === void 0) {\n parser.opt.unquotedAttributeValues = !strict;\n }\n parser.trackPosition = parser.opt.position !== false;\n if (parser.trackPosition) {\n parser.position = parser.line = parser.column = 0;\n }\n emit2(parser, \"onready\");\n }\n if (!Object.create) {\n Object.create = function(o) {\n function F() {\n }\n F.prototype = o;\n var newf = new F();\n return newf;\n };\n }\n if (!Object.keys) {\n Object.keys = function(o) {\n var a2 = [];\n for (var i2 in o) if (o.hasOwnProperty(i2)) a2.push(i2);\n return a2;\n };\n }\n function checkBufferLength(parser) {\n var maxAllowed = Math.max(sax2.MAX_BUFFER_LENGTH, 10);\n var maxActual = 0;\n for (var i2 = 0, l2 = buffers.length; i2 < l2; i2++) {\n var len = parser[buffers[i2]].length;\n if (len > maxAllowed) {\n switch (buffers[i2]) {\n case \"textNode\":\n closeText(parser);\n break;\n case \"cdata\":\n emitNode(parser, \"oncdata\", parser.cdata);\n parser.cdata = \"\";\n break;\n case \"script\":\n emitNode(parser, \"onscript\", parser.script);\n parser.script = \"\";\n break;\n default:\n error(parser, \"Max buffer length exceeded: \" + buffers[i2]);\n }\n }\n maxActual = Math.max(maxActual, len);\n }\n var m2 = sax2.MAX_BUFFER_LENGTH - maxActual;\n parser.bufferCheckPosition = m2 + parser.position;\n }\n function clearBuffers(parser) {\n for (var i2 = 0, l2 = buffers.length; i2 < l2; i2++) {\n parser[buffers[i2]] = \"\";\n }\n }\n function flushBuffers(parser) {\n closeText(parser);\n if (parser.cdata !== \"\") {\n emitNode(parser, \"oncdata\", parser.cdata);\n parser.cdata = \"\";\n }\n if (parser.script !== \"\") {\n emitNode(parser, \"onscript\", parser.script);\n parser.script = \"\";\n }\n }\n SAXParser.prototype = {\n end: function() {\n end(this);\n },\n write,\n resume: function() {\n this.error = null;\n return this;\n },\n close: function() {\n return this.write(null);\n },\n flush: function() {\n flushBuffers(this);\n }\n };\n var Stream;\n try {\n Stream = require(\"stream\").Stream;\n } catch (ex) {\n Stream = function() {\n };\n }\n if (!Stream) Stream = function() {\n };\n var streamWraps = sax2.EVENTS.filter(function(ev) {\n return ev !== \"error\" && ev !== \"end\";\n });\n function createStream(strict, opt) {\n return new SAXStream(strict, opt);\n }\n function SAXStream(strict, opt) {\n if (!(this instanceof SAXStream)) {\n return new SAXStream(strict, opt);\n }\n Stream.apply(this);\n this._parser = new SAXParser(strict, opt);\n this.writable = true;\n this.readable = true;\n var me = this;\n this._parser.onend = function() {\n me.emit(\"end\");\n };\n this._parser.onerror = function(er) {\n me.emit(\"error\", er);\n me._parser.error = null;\n };\n this._decoder = null;\n streamWraps.forEach(function(ev) {\n Object.defineProperty(me, \"on\" + ev, {\n get: function() {\n return me._parser[\"on\" + ev];\n },\n set: function(h2) {\n if (!h2) {\n me.removeAllListeners(ev);\n me._parser[\"on\" + ev] = h2;\n return h2;\n }\n me.on(ev, h2);\n },\n enumerable: true,\n configurable: false\n });\n });\n }\n SAXStream.prototype = Object.create(Stream.prototype, {\n constructor: {\n value: SAXStream\n }\n });\n SAXStream.prototype.write = function(data) {\n if (typeof Buffer === \"function\" && typeof Buffer.isBuffer === \"function\" && Buffer.isBuffer(data)) {\n if (!this._decoder) {\n var SD = require$$1.StringDecoder;\n this._decoder = new SD(\"utf8\");\n }\n data = this._decoder.write(data);\n }\n this._parser.write(data.toString());\n this.emit(\"data\", data);\n return true;\n };\n SAXStream.prototype.end = function(chunk) {\n if (chunk && chunk.length) {\n this.write(chunk);\n }\n this._parser.end();\n return true;\n };\n SAXStream.prototype.on = function(ev, handler) {\n var me = this;\n if (!me._parser[\"on\" + ev] && streamWraps.indexOf(ev) !== -1) {\n me._parser[\"on\" + ev] = function() {\n var args = arguments.length === 1 ? [arguments[0]] : Array.apply(null, arguments);\n args.splice(0, 0, ev);\n me.emit.apply(me, args);\n };\n }\n return Stream.prototype.on.call(me, ev, handler);\n };\n var CDATA = \"[CDATA[\";\n var DOCTYPE = \"DOCTYPE\";\n var XML_NAMESPACE = \"http://www.w3.org/XML/1998/namespace\";\n var XMLNS_NAMESPACE = \"http://www.w3.org/2000/xmlns/\";\n var rootNS = { xml: XML_NAMESPACE, xmlns: XMLNS_NAMESPACE };\n var nameStart = /[:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/;\n var nameBody = /[:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\u00B7\\u0300-\\u036F\\u203F-\\u2040.\\d-]/;\n var entityStart = /[#:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/;\n var entityBody = /[#:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\u00B7\\u0300-\\u036F\\u203F-\\u2040.\\d-]/;\n function isWhitespace(c2) {\n return c2 === \" \" || c2 === \"\\n\" || c2 === \"\\r\" || c2 === \"\t\";\n }\n function isQuote(c2) {\n return c2 === '\"' || c2 === \"'\";\n }\n function isAttribEnd(c2) {\n return c2 === \">\" || isWhitespace(c2);\n }\n function isMatch(regex, c2) {\n return regex.test(c2);\n }\n function notMatch(regex, c2) {\n return !isMatch(regex, c2);\n }\n var S = 0;\n sax2.STATE = {\n BEGIN: S++,\n // leading byte order mark or whitespace\n BEGIN_WHITESPACE: S++,\n // leading whitespace\n TEXT: S++,\n // general stuff\n TEXT_ENTITY: S++,\n // & and such.\n OPEN_WAKA: S++,\n // <\n SGML_DECL: S++,\n // \n SCRIPT: S++,\n // \n\n\n","\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport default getLoggerBuilder()\n\t.setApp('files_version')\n\t.detectUser()\n\t.build()\n","\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport default `\n\n\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n`\n","/*!\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { INode } from '@nextcloud/files'\nimport type { FileStat, ResponseDataDetailed } from 'webdav'\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport axios from '@nextcloud/axios'\nimport { getClient } from '@nextcloud/files/dav'\nimport { getCanonicalLocale } from '@nextcloud/l10n'\nimport { encodePath, join } from '@nextcloud/paths'\nimport { generateRemoteUrl, generateUrl } from '@nextcloud/router'\nimport davRequest from '../utils/davRequest.ts'\nimport logger from '../utils/logger.ts'\n\nexport interface Version {\n\tfileId: string // The id of the file associated to the version.\n\tlabel: string // 'Current version' or ''\n\tauthor: string | null // UID for the author of the version\n\tauthorName: string | null // Display name of the author\n\tfilename: string // File name relative to the version DAV endpoint\n\tbasename: string // A base name generated from the mtime\n\tmime: string // Empty for the current version, else the actual mime type of the version\n\tetag: string // Empty for the current version, else the actual mime type of the version\n\tsize: number // File size in bytes\n\ttype: string // 'file'\n\tmtime: number // Version creation date as a timestamp\n\tpermissions: string // Only readable: 'R'\n\tpreviewUrl: string // Preview URL of the version\n\turl: string // Download URL of the version\n\tsource: string // The WebDAV endpoint of the resource\n\tfileVersion: string | null // The version id, null for the current version\n}\n\nconst client = getClient()\n\n/**\n * Get file versions for a given node\n *\n * @param node - The node to fetch versions for\n */\nexport async function fetchVersions(node: INode): Promise {\n\tconst path = `/versions/${getCurrentUser()?.uid}/versions/${node.fileid}`\n\n\ttry {\n\t\tconst response = await client.getDirectoryContents(path, {\n\t\t\tdata: davRequest,\n\t\t\tdetails: true,\n\t\t}) as ResponseDataDetailed\n\n\t\tconst versions = response.data\n\t\t\t// Filter out root\n\t\t\t.filter(({ mime }) => mime !== '')\n\t\t\t.map((version) => formatVersion(version as Required, node))\n\n\t\tconst authorIds = new Set(versions.map((version) => String(version.author)))\n\t\tconst authors = await axios.post(generateUrl('/displaynames'), { users: [...authorIds] })\n\n\t\tfor (const version of versions) {\n\t\t\tconst author = authors.data.users[version.author ?? '']\n\t\t\tif (author) {\n\t\t\t\tversion.authorName = author\n\t\t\t}\n\t\t}\n\n\t\treturn versions\n\t} catch (exception) {\n\t\tlogger.error('Could not fetch version', { exception })\n\t\tthrow exception\n\t}\n}\n\n/**\n * Restore the given version\n *\n * @param version - The version to restore\n */\nexport async function restoreVersion(version: Version) {\n\ttry {\n\t\tlogger.debug('Restoring version', { url: version.url })\n\t\tawait client.moveFile(\n\t\t\t`/versions/${getCurrentUser()?.uid}/versions/${version.fileId}/${version.fileVersion}`,\n\t\t\t`/versions/${getCurrentUser()?.uid}/restore/target`,\n\t\t)\n\t} catch (exception) {\n\t\tlogger.error('Could not restore version', { exception })\n\t\tthrow exception\n\t}\n}\n\n/**\n * Format version\n *\n * @param version - The version data from WebDAV\n * @param node - The original node\n */\nfunction formatVersion(version: Required, node: INode): Version {\n\tconst mtime = Date.parse(version.lastmod)\n\tlet previewUrl = ''\n\n\tif (mtime === node.mtime?.getTime()) { // Version is the current one\n\t\tpreviewUrl = generateUrl('/core/preview?fileId={fileId}&c={fileEtag}&x=250&y=250&forceIcon=0&a=0&forceIcon=1&mimeFallback=1', {\n\t\t\tfileId: node.fileid,\n\t\t\tfileEtag: node.attributes.etag,\n\t\t})\n\t} else {\n\t\tpreviewUrl = generateUrl('/apps/files_versions/preview?file={file}&version={fileVersion}&mimeFallback=1', {\n\t\t\tfile: node.path,\n\t\t\tfileVersion: version.basename,\n\t\t})\n\t}\n\n\treturn {\n\t\tfileId: node.fileid!.toString(),\n\t\t// If version-label is defined make sure it is a string (prevent issue if the label is a number an PHP returns a number then)\n\t\tlabel: version.props['version-label'] ? String(version.props['version-label']) : '',\n\t\tauthor: version.props['version-author'] ? String(version.props['version-author']) : null,\n\t\tauthorName: null,\n\t\tfilename: version.filename,\n\t\tbasename: new Date(mtime).toLocaleString(\n\t\t\t[getCanonicalLocale(), getCanonicalLocale().split('-')[0]!],\n\t\t\t{\n\t\t\t\ttimeStyle: 'long',\n\t\t\t\tdateStyle: 'medium',\n\t\t\t},\n\t\t),\n\t\tmime: version.mime,\n\t\tetag: `${version.props.getetag}`,\n\t\tsize: version.size,\n\t\ttype: version.type,\n\t\tmtime,\n\t\tpermissions: 'R',\n\t\tpreviewUrl,\n\t\turl: join('/remote.php/dav', version.filename),\n\t\tsource: generateRemoteUrl('dav') + encodePath(version.filename),\n\t\tfileVersion: version.basename,\n\t}\n}\n\n/**\n * Set version label\n *\n * @param version - The version to set the label for\n * @param newLabel - The new label\n */\nexport async function setVersionLabel(version: Version, newLabel: string) {\n\treturn await client.customRequest(\n\t\tversion.filename,\n\t\t{\n\t\t\tmethod: 'PROPPATCH',\n\t\t\tdata: `\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t${newLabel}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t`,\n\t\t},\n\t)\n}\n\n/**\n * Delete version\n *\n * @param version - The version to delete\n */\nexport async function deleteVersion(version: Version) {\n\tawait client.deleteFile(version.filename)\n}\n","\n\n\n\n\n\n"],"names":["_sfc_main","_hoisted_3","_createElementBlock","_mergeProps","_ctx","$props","_cache","$event","_createElementVNode","_openBlock","props","__props","emit","__emit","previewLoaded","ref","previewErrored","capabilities","loadState","humanReadableSize","computed","formatFileSize","versionLabel","label","t","versionAuthor","getCurrentUser","versionHumanExplicitDate","getCanonicalLocale","downloadURL","getRootUrl","enableLabeling","enableDeletion","hasDeletePermissions","hasPermission","Permission","hasUpdatePermissions","isDownloadable","attribute","labelUpdate","restoreVersion","deleteVersion","nextTick","click","event","compareVersion","node","permission","_createBlock","_unref","NcListItem","_createVNode","ImageOffOutline","_hoisted_1","_hoisted_4","_hoisted_5","_hoisted_6","NcAvatar","_hoisted_8","_hoisted_9","NcDateTime","NcActionButton","Pencil","_createTextVNode","FileCompare","BackupRestore","NcActionLink","Download","Delete","labelInput","useTemplateRef","internalLabel","dialogButtons","buttons","setVersionLabel","svgCheck","watchEffect","NcDialog","$emit","NcTextField","_toDisplayString","logger","getLoggerBuilder","_sfc_main$1","defineComponent","containerHeight","containerTop","containerBottom","currentRowTop","currentRowBottom","visibleSections","section","visibleRows","row","distance","visibleItems","rows","items","rowIdToKeyMap","item","usedTokens","key","unusedTokens","finalMapping","id","totalHeight","sectionHeight","paddingTop","buffer","value","currentRowTopDistanceFromTop","entries","entry","cr","_normalizeStyle","_renderSlot","davRequest","client","getClient","fetchVersions","path","versions","mime","version","formatVersion","authorIds","authors","axios","generateUrl","author","exception","mtime","previewUrl","join","generateRemoteUrl","encodePath","newLabel","__expose","setActive","isMobile","useIsMobile","isActive","loading","showVersionLabelForm","editedVersion","watch","toRef","currentVersionMtime","orderedVersions","a","b","sections","initialVersionMtime","canView","canCompare","active","handleRestore","restoredNode","restoreStartedEventState","showSuccess","showError","handleLabelUpdateRequest","handleLabelUpdate","oldLabel","handleDelete","index","openVersion","_versions","v","VirtualScrolling","_withCtx","_Fragment","_renderList","VersionEntry","NcLoadingIcon","VersionLabelDialog"],"mappings":"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","x_google_ignoreList":[0,1,2]} \ No newline at end of file +{"version":3,"file":"FilesVersionsSidebarTab-DyksVutL.chunk.mjs","sources":["../node_modules/vue-material-design-icons/BackupRestore.vue","../node_modules/vue-material-design-icons/FileCompare.vue","../node_modules/vue-material-design-icons/ImageOffOutline.vue","../build/frontend/apps/files_versions/src/components/VersionEntry.vue","../build/frontend/apps/files_versions/src/components/VersionLabelDialog.vue","../build/frontend/apps/files_versions/src/utils/logger.ts","../build/frontend/apps/files_versions/src/components/VirtualScrolling.vue","../build/frontend/apps/files_versions/src/utils/davRequest.ts","../build/frontend/apps/files_versions/src/utils/versions.ts","../build/frontend/apps/files_versions/src/views/FilesVersionsSidebarTab.vue"],"sourcesContent":["\n\n","\n\n","\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport default getLoggerBuilder()\n\t.setApp('files_version')\n\t.detectUser()\n\t.build()\n","\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport default `\n\n\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n`\n","/*!\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { INode } from '@nextcloud/files'\nimport type { FileStat, ResponseDataDetailed } from 'webdav'\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport axios from '@nextcloud/axios'\nimport { getClient } from '@nextcloud/files/dav'\nimport { getCanonicalLocale } from '@nextcloud/l10n'\nimport { encodePath, join } from '@nextcloud/paths'\nimport { generateRemoteUrl, generateUrl } from '@nextcloud/router'\nimport davRequest from '../utils/davRequest.ts'\nimport logger from '../utils/logger.ts'\n\nexport interface Version {\n\tfileId: string // The id of the file associated to the version.\n\tlabel: string // 'Current version' or ''\n\tauthor: string | null // UID for the author of the version\n\tauthorName: string | null // Display name of the author\n\tfilename: string // File name relative to the version DAV endpoint\n\tbasename: string // A base name generated from the mtime\n\tmime: string // Empty for the current version, else the actual mime type of the version\n\tetag: string // Empty for the current version, else the actual mime type of the version\n\tsize: number // File size in bytes\n\ttype: string // 'file'\n\tmtime: number // Version creation date as a timestamp\n\tpermissions: string // Only readable: 'R'\n\tpreviewUrl: string // Preview URL of the version\n\turl: string // Download URL of the version\n\tsource: string // The WebDAV endpoint of the resource\n\tfileVersion: string | null // The version id, null for the current version\n}\n\nconst client = getClient()\n\n/**\n * Get file versions for a given node\n *\n * @param node - The node to fetch versions for\n */\nexport async function fetchVersions(node: INode): Promise {\n\tconst path = `/versions/${getCurrentUser()?.uid}/versions/${node.fileid}`\n\n\ttry {\n\t\tconst response = await client.getDirectoryContents(path, {\n\t\t\tdata: davRequest,\n\t\t\tdetails: true,\n\t\t}) as ResponseDataDetailed\n\n\t\tconst versions = response.data\n\t\t\t// Filter out root\n\t\t\t.filter(({ mime }) => mime !== '')\n\t\t\t.map((version) => formatVersion(version as Required, node))\n\n\t\tconst authorIds = new Set(versions.map((version) => String(version.author)))\n\t\tconst authors = await axios.post(generateUrl('/displaynames'), { users: [...authorIds] })\n\n\t\tfor (const version of versions) {\n\t\t\tconst author = authors.data.users[version.author ?? '']\n\t\t\tif (author) {\n\t\t\t\tversion.authorName = author\n\t\t\t}\n\t\t}\n\n\t\treturn versions\n\t} catch (exception) {\n\t\tlogger.error('Could not fetch version', { exception })\n\t\tthrow exception\n\t}\n}\n\n/**\n * Restore the given version\n *\n * @param version - The version to restore\n */\nexport async function restoreVersion(version: Version) {\n\ttry {\n\t\tlogger.debug('Restoring version', { url: version.url })\n\t\tawait client.moveFile(\n\t\t\t`/versions/${getCurrentUser()?.uid}/versions/${version.fileId}/${version.fileVersion}`,\n\t\t\t`/versions/${getCurrentUser()?.uid}/restore/target`,\n\t\t)\n\t} catch (exception) {\n\t\tlogger.error('Could not restore version', { exception })\n\t\tthrow exception\n\t}\n}\n\n/**\n * Format version\n *\n * @param version - The version data from WebDAV\n * @param node - The original node\n */\nfunction formatVersion(version: Required, node: INode): Version {\n\tconst mtime = Date.parse(version.lastmod)\n\tlet previewUrl = ''\n\n\tif (mtime === node.mtime?.getTime()) { // Version is the current one\n\t\tpreviewUrl = generateUrl('/core/preview?fileId={fileId}&c={fileEtag}&x=250&y=250&forceIcon=0&a=0&forceIcon=1&mimeFallback=1', {\n\t\t\tfileId: node.fileid,\n\t\t\tfileEtag: node.attributes.etag,\n\t\t})\n\t} else {\n\t\tpreviewUrl = generateUrl('/apps/files_versions/preview?file={file}&version={fileVersion}&mimeFallback=1', {\n\t\t\tfile: node.path,\n\t\t\tfileVersion: version.basename,\n\t\t})\n\t}\n\n\treturn {\n\t\tfileId: node.fileid!.toString(),\n\t\t// If version-label is defined make sure it is a string (prevent issue if the label is a number an PHP returns a number then)\n\t\tlabel: version.props['version-label'] ? String(version.props['version-label']) : '',\n\t\tauthor: version.props['version-author'] ? String(version.props['version-author']) : null,\n\t\tauthorName: null,\n\t\tfilename: version.filename,\n\t\tbasename: new Date(mtime).toLocaleString(\n\t\t\t[getCanonicalLocale(), getCanonicalLocale().split('-')[0]!],\n\t\t\t{\n\t\t\t\ttimeStyle: 'long',\n\t\t\t\tdateStyle: 'medium',\n\t\t\t},\n\t\t),\n\t\tmime: version.mime,\n\t\tetag: `${version.props.getetag}`,\n\t\tsize: version.size,\n\t\ttype: version.type,\n\t\tmtime,\n\t\tpermissions: 'R',\n\t\tpreviewUrl,\n\t\turl: join('/remote.php/dav', version.filename),\n\t\tsource: generateRemoteUrl('dav') + encodePath(version.filename),\n\t\tfileVersion: version.basename,\n\t}\n}\n\n/**\n * Set version label\n *\n * @param version - The version to set the label for\n * @param newLabel - The new label\n */\nexport async function setVersionLabel(version: Version, newLabel: string) {\n\treturn await client.customRequest(\n\t\tversion.filename,\n\t\t{\n\t\t\tmethod: 'PROPPATCH',\n\t\t\tdata: `\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t${newLabel}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t`,\n\t\t},\n\t)\n}\n\n/**\n * Delete version\n *\n * @param version - The version to delete\n */\nexport async function deleteVersion(version: Version) {\n\tawait client.deleteFile(version.filename)\n}\n","\n\n\n\n\n\n"],"names":["_sfc_main","_hoisted_3","_createElementBlock","_mergeProps","_ctx","$props","_cache","$event","_createElementVNode","_openBlock","props","__props","emit","__emit","previewLoaded","ref","previewErrored","capabilities","loadState","humanReadableSize","computed","formatFileSize","versionLabel","label","t","versionAuthor","getCurrentUser","versionHumanExplicitDate","getCanonicalLocale","downloadURL","getRootUrl","enableLabeling","enableDeletion","hasDeletePermissions","hasPermission","Permission","hasUpdatePermissions","isDownloadable","attribute","labelUpdate","restoreVersion","deleteVersion","nextTick","click","event","compareVersion","node","permission","_createBlock","_unref","NcListItem","_createVNode","ImageOffOutline","_hoisted_1","_hoisted_4","_hoisted_5","_hoisted_6","NcAvatar","_hoisted_8","_hoisted_9","NcDateTime","NcActionButton","Pencil","_createTextVNode","FileCompare","BackupRestore","NcActionLink","Download","Delete","labelInput","useTemplateRef","internalLabel","dialogButtons","buttons","setVersionLabel","svgCheck","watchEffect","NcDialog","$emit","NcTextField","_toDisplayString","logger","getLoggerBuilder","_sfc_main$1","defineComponent","containerHeight","containerTop","containerBottom","currentRowTop","currentRowBottom","visibleSections","section","visibleRows","row","distance","visibleItems","rows","items","rowIdToKeyMap","item","usedTokens","key","unusedTokens","finalMapping","id","totalHeight","sectionHeight","paddingTop","buffer","value","currentRowTopDistanceFromTop","entries","entry","cr","_normalizeStyle","_renderSlot","davRequest","client","getClient","fetchVersions","path","versions","mime","version","formatVersion","authorIds","authors","axios","generateUrl","author","exception","mtime","previewUrl","join","generateRemoteUrl","encodePath","newLabel","__expose","setActive","isMobile","useIsMobile","isActive","loading","showVersionLabelForm","editedVersion","watch","toRef","currentVersionMtime","orderedVersions","a","b","sections","initialVersionMtime","canView","canCompare","active","handleRestore","restoredNode","restoreStartedEventState","showSuccess","showError","handleLabelUpdateRequest","handleLabelUpdate","oldLabel","handleDelete","index","openVersion","_versions","v","VirtualScrolling","_withCtx","_Fragment","_renderList","VersionEntry","NcLoadingIcon","VersionLabelDialog"],"mappings":"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","x_google_ignoreList":[0,1,2]} \ No newline at end of file diff --git a/dist/FilesVersionsSidebarTab-Cug-mCDO.chunk.mjs.map.license b/dist/FilesVersionsSidebarTab-DyksVutL.chunk.mjs.map.license similarity index 100% rename from dist/FilesVersionsSidebarTab-Cug-mCDO.chunk.mjs.map.license rename to dist/FilesVersionsSidebarTab-DyksVutL.chunk.mjs.map.license diff --git a/dist/NcAvatar-DmUGApWA-DBHt6M62.chunk.mjs b/dist/NcAvatar-DmUGApWA-DBHt6M62.chunk.mjs deleted file mode 100644 index c5950d8594ec3..0000000000000 --- a/dist/NcAvatar-DmUGApWA-DBHt6M62.chunk.mjs +++ /dev/null @@ -1,5 +0,0 @@ -import{f as dt,a as F,u as P,s as B}from"./index-6_gsQFyp.chunk.mjs";import{c as st}from"./index-BfylblLb.chunk.mjs";import{_ as at,j as V,d as ft,g as nt,r as pt,k as gt,a as yt,t as T}from"./createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs";import{m as mt,n as vt,o as G,p as bt,q as _t,r as R,t as St,i as xt,I as At}from"./index-JpgrUA2Z-BFiKKJ1W.chunk.mjs";import{j as x,o as p,k as O,m as rt,l as M,K as E,n as H,t as U,M as kt,x as it,a1 as Ut,r as wt,s as q,a2 as Lt,a6 as Mt,b as It,a7 as Nt,f as w,a8 as Ct,E as Dt,c as L,w as N,y as K,e as Y,F as Ot,C as Et,N as $t,z as jt,g as zt}from"./runtime-dom.esm-bundler-BrYCUcZF.chunk.mjs";import{l as $,a as Pt,c as Bt}from"./NcNoteCard-CVhtNL04-hwuc093N.chunk.mjs";import{g as Tt}from"./colors-Go3zmZRD-DU6ImAGi.chunk.mjs";import"./translation-DoG5ZELJ-gw0g4US-.chunk.mjs";import{g as Wt}from"./index-xFugdZPW.chunk.mjs";import{N as Ft,g as Gt}from"./PencilOutline-DCq8EKwg.chunk.mjs";import{b as Ht,c as qt,N as Zt,a as Vt}from"./NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-CAvY10OW.chunk.mjs";import{N as Rt}from"./mdi-D55n0uzy.chunk.mjs";const Kt={name:"NcActionText",mixins:[Ht],inject:{isInSemanticMenu:{from:mt,default:!1}}},Yt=["role"],Jt={key:0,class:"action-text__longtext-wrapper"},Qt={class:"action-text__name"},Xt=["textContent"],te=["textContent"],ee={key:2,class:"action-text__text"};function se(i,r,a,s,t,e){return p(),x("li",{class:"action",role:e.isInSemanticMenu&&"presentation"},[O("span",{class:"action-text",onClick:r[0]||(r[0]=(...n)=>i.onClick&&i.onClick(...n))},[rt(i.$slots,"icon",{},()=>[i.icon!==""?(p(),x("span",{key:0,"aria-hidden":"true",class:H(["action-text__icon",[i.isIconUrl?"action-text__icon--url":i.icon]]),style:E({backgroundImage:i.isIconUrl?`url(${i.icon})`:null})},null,6)):M("",!0)],!0),i.name?(p(),x("span",Jt,[O("strong",Qt,U(i.name),1),O("span",{class:"action-text__longtext",textContent:U(i.text)},null,8,Xt)])):i.isLongText?(p(),x("span",{key:1,class:"action-text__longtext",textContent:U(i.text)},null,8,te)):(p(),x("span",ee,U(i.text),1)),M("",!0)])],8,Yt)}const ae=at(Kt,[["render",se],["__scopeId","data-v-fa684b48"]]),ne=Symbol.for("nc:theme:enforced");function re(i){const r=it(()=>Ut(i)??document.body),a=wt(G(r.value)),s=_t();function t(){a.value=G(r.value)}return bt(r,t,{attributes:!0}),q(r,t),q(s,t,{immediate:!0}),Lt(a)}const ie=vt(()=>re());function oe(){const i=ie(),r=kt(ne,void 0);return it(()=>r?.value?r.value==="dark":i.value)}const W=new WeakMap,ue={mounted(i,r){const a=!r.modifiers.bubble;let s;if(typeof r.value=="function")s=R(i,r.value,{capture:a});else{const[t,e]=r.value;s=R(i,t,Object.assign({capture:a},e))}W.set(i,s)},unmounted(i){const r=W.get(i);r&&typeof r=="function"?r():r?.stop(),W.delete(i)}};function ce(){let i=!1;const r=Mt(!1);return(a,s)=>{if(r.value=s.value,i)return;i=!0;const t=St(a,s.value);q(r,e=>t.value=e)}}ce();function D(i,r,a){const s={type:String(i)};return a==null&&(typeof r=="string"||Array.isArray(r))?a=r:Object.assign(s,r),Array.isArray(a)?s.children=a:a!=null&&(s.value=String(a)),s}const ot=(function(i){if(i==null)return fe;if(typeof i=="function")return j(i);if(typeof i=="object")return Array.isArray(i)?le(i):he(i);if(typeof i=="string")return de(i);throw new Error("Expected function, string, or object as test")});function le(i){const r=[];let a=-1;for(;++a":""))+")"})}return A;function A(){let h=ut,c,o,v;if((!r||e(u,m,d[d.length-1]||void 0))&&(h=me(a(u,d)),h[0]===J))return h;if("children"in u&&u.children){const _=u;if(_.children&&h[0]!==ct)for(o=(s?_.children.length:-1)+n,v=d.concat(_);o>-1&&o<_.children.length;){const S=_.children[o];if(c=l(S,o,v)(),c[0]===J)return c;o=typeof c[1]=="number"?c[1]:o+n}}return h}}}function me(i){return Array.isArray(i)?i:typeof i=="number"?[ge,i]:i==null?ut:[i]}function ve(i,r,a,s){let t,e,n;typeof r=="function"&&typeof a!="function"?(e=void 0,n=r,t=a):(e=r,n=a,t=s),ye(i,e,l,t);function l(u,m){const d=m[m.length-1],f=d?d.children.indexOf(u):void 0;return n(u,f,d)}}const Ve=/(\s|^)(https?:\/\/)([-A-Z0-9+_.]+(?::[0-9]+)?(?:\/[-A-Z0-9+&@#%?=~_|!:,.;()]*)*)(\s|$)/ig,Q=/(\s|\(|^)((https?:\/\/)([-A-Z0-9+_.]+[-A-Z0-9]+(?::[0-9]+)?(?:\/[-A-Z0-9+&@#%?=~_|!:,.;()]*)*))(?=\s|\)|$)/ig,be=It({name:"NcLink",props:{href:{type:String,required:!0}},render(){return Nt("a",{href:this.href,rel:"noopener noreferrer",target:"_blank",class:"rich-text--external-link"},[this.href.trim()])}});function Re({autolink:i,useMarkdown:r,useExtendedMarkdown:a}){return function(s){a||!r||!i||ve(s,t=>t.type==="text",(t,e,n)=>{let l=_e(t.value);return typeof l=="string"?l=[D("text",l)]:l=l.map(u=>typeof u=="string"?D("text",u):D("link",{url:u.props.href},[D("text",u.props.href)])).filter(u=>u).flat(),n.children.splice(e,1,...l),[ct,(e??0)+l.length]})}}function _e(i){let r=Q.exec(i);const a=[];let s=0;for(;r!==null;){let e=r[2],n,l=i.substring(s,r.index+r[1].length);e[0]===" "&&(l+=e[0],e=e.substring(1).trim());const u=e[e.length-1];(u==="."||u===","||u===";"||r[0][0]==="("&&u===")")&&(e=e.substring(0,e.length-1),n=u),a.push(l),a.push({component:be,props:{href:e}}),n&&a.push(n),s=r.index+r[0].length,r=Q.exec(i)}a.push(i.substring(s));const t=a.map(e=>typeof e=="string"?e:e.props.href).join("");return i===t?a:($.error("[NcRichText] Failed to reassemble the chunked text: "+i),i)}function Se(i,r){const a=(d,f)=>d.startsWith(f)?d.slice(f.length):d,s=(d,...f)=>f.reduce((A,h)=>a(A,h),d);if(!i)return null;const t=/^https?:\/\//.test(r),e=/^[a-z][a-z0-9+.-]*:.+/.test(r);if(!t&&e||t&&!r.startsWith(V())||!t&&!r.startsWith("/"))return null;const n=t?s(r,V(),"/index.php"):r,l=s(i.options.history.base,ft(),"/index.php"),u=s(n,l)||"/",m=i.resolve(u);return m.matched.length?m.fullPath:null}function xe(i){return window._nc_contacts_menu_hooks?Object.values(window._nc_contacts_menu_hooks).filter(r=>r.enabled(i)):[]}const Ae=new Int32Array(4);class y{static hashStr(r,a=!1){return this.onePassHasher.start().appendStr(r).end(a)}static hashAsciiStr(r,a=!1){return this.onePassHasher.start().appendAsciiStr(r).end(a)}static stateIdentity=new Int32Array([1732584193,-271733879,-1732584194,271733878]);static buffer32Identity=new Int32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);static hexChars="0123456789abcdef";static hexOut=[];static onePassHasher=new y;static _hex(r){const a=y.hexChars,s=y.hexOut;let t,e,n,l;for(l=0;l<4;l+=1)for(e=l*8,t=r[l],n=0;n<8;n+=2)s[e+1+n]=a.charAt(t&15),t>>>=4,s[e+0+n]=a.charAt(t&15),t>>>=4;return s.join("")}static _md5cycle(r,a){let s=r[0],t=r[1],e=r[2],n=r[3];s+=(t&e|~t&n)+a[0]-680876936|0,s=(s<<7|s>>>25)+t|0,n+=(s&t|~s&e)+a[1]-389564586|0,n=(n<<12|n>>>20)+s|0,e+=(n&s|~n&t)+a[2]+606105819|0,e=(e<<17|e>>>15)+n|0,t+=(e&n|~e&s)+a[3]-1044525330|0,t=(t<<22|t>>>10)+e|0,s+=(t&e|~t&n)+a[4]-176418897|0,s=(s<<7|s>>>25)+t|0,n+=(s&t|~s&e)+a[5]+1200080426|0,n=(n<<12|n>>>20)+s|0,e+=(n&s|~n&t)+a[6]-1473231341|0,e=(e<<17|e>>>15)+n|0,t+=(e&n|~e&s)+a[7]-45705983|0,t=(t<<22|t>>>10)+e|0,s+=(t&e|~t&n)+a[8]+1770035416|0,s=(s<<7|s>>>25)+t|0,n+=(s&t|~s&e)+a[9]-1958414417|0,n=(n<<12|n>>>20)+s|0,e+=(n&s|~n&t)+a[10]-42063|0,e=(e<<17|e>>>15)+n|0,t+=(e&n|~e&s)+a[11]-1990404162|0,t=(t<<22|t>>>10)+e|0,s+=(t&e|~t&n)+a[12]+1804603682|0,s=(s<<7|s>>>25)+t|0,n+=(s&t|~s&e)+a[13]-40341101|0,n=(n<<12|n>>>20)+s|0,e+=(n&s|~n&t)+a[14]-1502002290|0,e=(e<<17|e>>>15)+n|0,t+=(e&n|~e&s)+a[15]+1236535329|0,t=(t<<22|t>>>10)+e|0,s+=(t&n|e&~n)+a[1]-165796510|0,s=(s<<5|s>>>27)+t|0,n+=(s&e|t&~e)+a[6]-1069501632|0,n=(n<<9|n>>>23)+s|0,e+=(n&t|s&~t)+a[11]+643717713|0,e=(e<<14|e>>>18)+n|0,t+=(e&s|n&~s)+a[0]-373897302|0,t=(t<<20|t>>>12)+e|0,s+=(t&n|e&~n)+a[5]-701558691|0,s=(s<<5|s>>>27)+t|0,n+=(s&e|t&~e)+a[10]+38016083|0,n=(n<<9|n>>>23)+s|0,e+=(n&t|s&~t)+a[15]-660478335|0,e=(e<<14|e>>>18)+n|0,t+=(e&s|n&~s)+a[4]-405537848|0,t=(t<<20|t>>>12)+e|0,s+=(t&n|e&~n)+a[9]+568446438|0,s=(s<<5|s>>>27)+t|0,n+=(s&e|t&~e)+a[14]-1019803690|0,n=(n<<9|n>>>23)+s|0,e+=(n&t|s&~t)+a[3]-187363961|0,e=(e<<14|e>>>18)+n|0,t+=(e&s|n&~s)+a[8]+1163531501|0,t=(t<<20|t>>>12)+e|0,s+=(t&n|e&~n)+a[13]-1444681467|0,s=(s<<5|s>>>27)+t|0,n+=(s&e|t&~e)+a[2]-51403784|0,n=(n<<9|n>>>23)+s|0,e+=(n&t|s&~t)+a[7]+1735328473|0,e=(e<<14|e>>>18)+n|0,t+=(e&s|n&~s)+a[12]-1926607734|0,t=(t<<20|t>>>12)+e|0,s+=(t^e^n)+a[5]-378558|0,s=(s<<4|s>>>28)+t|0,n+=(s^t^e)+a[8]-2022574463|0,n=(n<<11|n>>>21)+s|0,e+=(n^s^t)+a[11]+1839030562|0,e=(e<<16|e>>>16)+n|0,t+=(e^n^s)+a[14]-35309556|0,t=(t<<23|t>>>9)+e|0,s+=(t^e^n)+a[1]-1530992060|0,s=(s<<4|s>>>28)+t|0,n+=(s^t^e)+a[4]+1272893353|0,n=(n<<11|n>>>21)+s|0,e+=(n^s^t)+a[7]-155497632|0,e=(e<<16|e>>>16)+n|0,t+=(e^n^s)+a[10]-1094730640|0,t=(t<<23|t>>>9)+e|0,s+=(t^e^n)+a[13]+681279174|0,s=(s<<4|s>>>28)+t|0,n+=(s^t^e)+a[0]-358537222|0,n=(n<<11|n>>>21)+s|0,e+=(n^s^t)+a[3]-722521979|0,e=(e<<16|e>>>16)+n|0,t+=(e^n^s)+a[6]+76029189|0,t=(t<<23|t>>>9)+e|0,s+=(t^e^n)+a[9]-640364487|0,s=(s<<4|s>>>28)+t|0,n+=(s^t^e)+a[12]-421815835|0,n=(n<<11|n>>>21)+s|0,e+=(n^s^t)+a[15]+530742520|0,e=(e<<16|e>>>16)+n|0,t+=(e^n^s)+a[2]-995338651|0,t=(t<<23|t>>>9)+e|0,s+=(e^(t|~n))+a[0]-198630844|0,s=(s<<6|s>>>26)+t|0,n+=(t^(s|~e))+a[7]+1126891415|0,n=(n<<10|n>>>22)+s|0,e+=(s^(n|~t))+a[14]-1416354905|0,e=(e<<15|e>>>17)+n|0,t+=(n^(e|~s))+a[5]-57434055|0,t=(t<<21|t>>>11)+e|0,s+=(e^(t|~n))+a[12]+1700485571|0,s=(s<<6|s>>>26)+t|0,n+=(t^(s|~e))+a[3]-1894986606|0,n=(n<<10|n>>>22)+s|0,e+=(s^(n|~t))+a[10]-1051523|0,e=(e<<15|e>>>17)+n|0,t+=(n^(e|~s))+a[1]-2054922799|0,t=(t<<21|t>>>11)+e|0,s+=(e^(t|~n))+a[8]+1873313359|0,s=(s<<6|s>>>26)+t|0,n+=(t^(s|~e))+a[15]-30611744|0,n=(n<<10|n>>>22)+s|0,e+=(s^(n|~t))+a[6]-1560198380|0,e=(e<<15|e>>>17)+n|0,t+=(n^(e|~s))+a[13]+1309151649|0,t=(t<<21|t>>>11)+e|0,s+=(e^(t|~n))+a[4]-145523070|0,s=(s<<6|s>>>26)+t|0,n+=(t^(s|~e))+a[11]-1120210379|0,n=(n<<10|n>>>22)+s|0,e+=(s^(n|~t))+a[2]+718787259|0,e=(e<<15|e>>>17)+n|0,t+=(n^(e|~s))+a[9]-343485551|0,t=(t<<21|t>>>11)+e|0,r[0]=s+r[0]|0,r[1]=t+r[1]|0,r[2]=e+r[2]|0,r[3]=n+r[3]|0}_dataLength=0;_bufferLength=0;_state=new Int32Array(4);_buffer=new ArrayBuffer(68);_buffer8;_buffer32;constructor(){this._buffer8=new Uint8Array(this._buffer,0,68),this._buffer32=new Uint32Array(this._buffer,0,17),this.start()}start(){return this._dataLength=0,this._bufferLength=0,this._state.set(y.stateIdentity),this}appendStr(r){const a=this._buffer8,s=this._buffer32;let t=this._bufferLength,e,n;for(n=0;n>>6)+192,a[t++]=e&63|128;else if(e<55296||e>56319)a[t++]=(e>>>12)+224,a[t++]=e>>>6&63|128,a[t++]=e&63|128;else{if(e=(e-55296)*1024+(r.charCodeAt(++n)-56320)+65536,e>1114111)throw new Error("Unicode standard supports code points up to U+10FFFF");a[t++]=(e>>>18)+240,a[t++]=e>>>12&63|128,a[t++]=e>>>6&63|128,a[t++]=e&63|128}t>=64&&(this._dataLength+=64,y._md5cycle(this._state,s),t-=64,s[0]=s[16])}return this._bufferLength=t,this}appendAsciiStr(r){const a=this._buffer8,s=this._buffer32;let t=this._bufferLength,e,n=0;for(;;){for(e=Math.min(r.length-n,64-t);e--;)a[t++]=r.charCodeAt(n++);if(t<64)break;this._dataLength+=64,y._md5cycle(this._state,s),t=0}return this._bufferLength=t,this}appendByteArray(r){const a=this._buffer8,s=this._buffer32;let t=this._bufferLength,e,n=0;for(;;){for(e=Math.min(r.length-n,64-t);e--;)a[t++]=r[n++];if(t<64)break;this._dataLength+=64,y._md5cycle(this._state,s),t=0}return this._bufferLength=t,this}getState(){const r=this._state;return{buffer:String.fromCharCode.apply(null,Array.from(this._buffer8)),buflen:this._bufferLength,length:this._dataLength,state:[r[0],r[1],r[2],r[3]]}}setState(r){const a=r.buffer,s=r.state,t=this._state;let e;for(this._dataLength=r.length,this._bufferLength=r.buflen,t[0]=s[0],t[1]=s[1],t[2]=s[2],t[3]=s[3],e=0;e>2)+1;this._dataLength+=a;const n=this._dataLength*8;if(s[a]=128,s[a+1]=s[a+2]=s[a+3]=0,t.set(y.buffer32Identity.subarray(e),e),a>55&&(y._md5cycle(this._state,t),t.set(y.buffer32Identity)),n<=4294967295)t[14]=n;else{const l=n.toString(16).match(/(.*?)(.{0,8})$/);if(l===null)return r?Ae:"";const u=parseInt(l[2],16),m=parseInt(l[1],16)||0;t[14]=u,t[15]=m}return y._md5cycle(this._state,t),r?this._state:y._hex(this._state)}}if(y.hashStr("hello")!=="5d41402abc4b2a76b9719d911017c592")throw new Error("Md5 self test failed.");function ke(i){let r=i;i.match(/^([0-9a-f]{4}-?){8}$/)===null&&(r=y.hashStr(i)),r=r.replace(/[^0-9a-f]/g,"");let a=0;for(let s=0;s/g,l=/<\/?([^\s\/>]+)/;function u(c,o,v){c=c||"",o=o||[],v=v||"";let _=d(o,v);return f(c,_)}function m(c,o){c=c||[],o=o||"";let v=d(c,o);return function(_){return f(_||"",v)}}u.init_streaming_mode=m;function d(c,o){return c=A(c),{allowable_tags:c,tag_replacement:o,state:s,tag_buffer:"",depth:0,in_quote_char:""}}function f(c,o){if(typeof c!="string")throw new TypeError("'html' parameter must be a string");let v=o.allowable_tags,_=o.tag_replacement,S=o.state,g=o.tag_buffer,C=o.depth,k=o.in_quote_char,I="";for(let z=0,ht=c.length;z":if(k)break;if(C){C--;break}k="",S=s,g+=">",v.has(h(g))?I+=g:I+=_,g="";break;case'"':case"'":b===k?k="":k=k||b,g+=b;break;case"-":g===""?(g.slice(-2)=="--"&&(S=s),g=""):g+=b)}return o.state=S,o.tag_buffer=g,o.depth=C,o.in_quote_char=k,I}function A(c){let o=new Set;if(typeof c=="string"){let v;for(;v=n.exec(c);)o.add(v[1])}else!a.nonNative&&typeof c[a.iterator]=="function"?o=new Set(c):typeof c.forEach=="function"&&c.forEach(o.add,o);return o}function h(c){let o=l.exec(c);return o?o[1].toLowerCase():null}i.exports?i.exports=u:r.striptags=u})(Ue)})(Z)),Z.exports}we();function Le(i,r){const a=(r?.size||64)<=64?64:512,s=r?.isGuest?"/guest":"",t=r?.isDarkTheme??G(document.body)?"/dark":"";return nt(`/avatar${s}/{user}/{size}${t}`,{user:i,size:a})}pt(gt);const Me={data(){return{hasStatus:!1,userStatus:{status:null,message:null,icon:null}}},methods:{async fetchUserStatus(i){if(!i)return;const r=Wt();if(!(!Object.hasOwn(r,"user_status")||!r.user_status.enabled)&&F())try{const{data:a}=await st.get(yt("apps/user_status/api/v1/statuses/{userId}",{userId:i}));this.setUserStatus(a.ocs.data)}catch(a){if(a.response.status===404&&a.response.data.ocs?.data?.length===0)return;$.error("Failed to fetch user status",{error:a})}},setUserStatus({status:i,message:r,icon:a}){this.userStatus.status=i||"",this.userStatus.message=r||"",this.userStatus.icon=a||"",this.hasStatus=!!i}}},lt=dt("nextcloud").persist().build();function Ie(i){const r=lt.getItem("user-has-avatar."+i);return typeof r=="string"?!!r:null}function et(i,r){i&<.setItem("user-has-avatar."+i,r)}const Ne={name:"NcAvatar",directives:{ClickOutside:ue},components:{IconDotsHorizontal:At,NcActions:xt,NcButton:Bt,NcIconSvgWrapper:Pt,NcLoadingIcon:Rt,NcUserStatusIcon:Ft},mixins:[Me],props:{url:{type:String,default:void 0},iconClass:{type:String,default:void 0},user:{type:String,default:void 0},hideStatus:{type:Boolean,default:!1},verboseStatus:{type:Boolean,default:!1},preloadedUserStatus:{type:Object,default:void 0},isGuest:{type:Boolean,default:!1},displayName:{type:String,default:void 0},size:{type:Number,default:32},noPlaceholder:{type:Boolean,default:!1},disableTooltip:{type:Boolean,default:!1},disableMenu:{type:Boolean,default:!1},tooltipMessage:{type:String,default:null},isNoUser:{type:Boolean,default:!1},menuContainer:{type:[Boolean,String,Object,Element],default:"body"}},setup(){return{isDarkTheme:oe()}},data(){return{avatarUrlLoaded:null,avatarSrcSetLoaded:null,userDoesNotExist:!1,isAvatarLoaded:!1,isMenuLoaded:!1,contactsMenuLoading:!1,contactsMenuData:{},contactsMenuActions:[],contactsMenuOpenState:!1}},computed:{avatarAriaLabel(){if(this.hasMenu)return this.canDisplayUserStatus||this.showUserStatusIconOnAvatar?T("Avatar of {displayName}, {status}",{displayName:this.displayName??this.user,status:Gt(this.userStatus.status)}):T("Avatar of {displayName}",{displayName:this.displayName??this.user})},canDisplayUserStatus(){return!this.hideStatus&&this.hasStatus&&["online","away","busy","dnd"].includes(this.userStatus.status)},showUserStatusIconOnAvatar(){return!this.hideStatus&&!this.verboseStatus&&this.hasStatus&&this.userStatus.status!=="dnd"&&this.userStatus.icon},userIdentifier(){return this.isDisplayNameDefined?this.displayName:this.isUserDefined?this.user:""},isUserDefined(){return typeof this.user<"u"},isDisplayNameDefined(){return typeof this.displayName<"u"},isUrlDefined(){return typeof this.url<"u"},hasMenu(){return this.disableMenu?!1:this.isMenuLoaded?this.menu.length>0:!(this.user===F()?.uid||this.userDoesNotExist||this.url)},showInitials(){return!this.noPlaceholder&&this.userDoesNotExist&&!(this.iconClass||this.$slots.icon)},avatarStyle(){return{"--avatar-size":this.size+"px",lineHeight:this.showInitials?this.size+"px":0,fontSize:Math.round(this.size*.45)+"px"}},initialsWrapperStyle(){const{r:i,g:r,b:a}=X(this.userIdentifier);return{backgroundColor:`rgba(${i}, ${r}, ${a}, 0.1)`}},initialsStyle(){const{r:i,g:r,b:a}=X(this.userIdentifier);return{color:`rgb(${i}, ${r}, ${a})`}},tooltip(){return this.disableTooltip?null:this.tooltipMessage?this.tooltipMessage:this.displayName},initials(){let i="?";if(this.showInitials){const r=this.userIdentifier.trim();if(r==="")return i;const a=r.match(/[\p{L}\p{N}\s]/gu);if(!a)return i;const s=a.join(""),t=s.lastIndexOf(" ");i=String.fromCodePoint(s.codePointAt(0)),t!==-1&&(i=i.concat(String.fromCodePoint(s.codePointAt(t+1))))}return i.toLocaleUpperCase()},menu(){const i=this.contactsMenuActions.map(a=>{const s=Se(this.$router,a.hyperlink);return{ncActionComponent:s?qt:Zt,ncActionComponentProps:s?{to:s,icon:a.icon}:{href:a.hyperlink,icon:a.icon},text:a.title}});for(const a of xe(this.contactsMenuData))try{i.push({ncActionComponent:Vt,ncActionComponentProps:{onClick:()=>a.callback(this.contactsMenuData)},text:a.displayName(this.contactsMenuData),iconSvg:a.iconSvg(this.contactsMenuData)})}catch(s){$.error(`Failed to render ContactsMenu action ${a.id}`,{error:s,action:a})}function r(a){const s=document.createTextNode(a),t=document.createElement("p");return t.appendChild(s),t.innerHTML}if(!this.hideStatus&&(this.userStatus.icon||this.userStatus.message)){const a=` - ${r(this.userStatus.icon)} - `;return[{ncActionComponent:ae,ncActionComponentProps:{},iconSvg:this.userStatus.icon?a:void 0,text:`${this.userStatus.message}`}].concat(i)}return i}},watch:{url(){this.userDoesNotExist=!1,this.loadAvatarUrl()},user(){this.userDoesNotExist=!1,this.isMenuLoaded=!1,this.loadAvatarUrl()}},mounted(){this.loadAvatarUrl(),B("settings:avatar:updated",this.loadAvatarUrl),B("settings:display-name:updated",this.loadAvatarUrl),!this.hideStatus&&this.user&&!this.isNoUser?(this.preloadedUserStatus?this.setUserStatus(this.preloadedUserStatus):this.fetchUserStatus(this.user),B("user_status:status.updated",this.handleUserStatusUpdated)):!this.hideStatus&&this.preloadedUserStatus&&this.setUserStatus(this.preloadedUserStatus)},beforeUnmount(){P("settings:avatar:updated",this.loadAvatarUrl),P("settings:display-name:updated",this.loadAvatarUrl),P("user_status:status.updated",this.handleUserStatusUpdated)},methods:{t:T,handleUserStatusUpdated(i){this.user===i.userId&&(this.userStatus={status:i.status,icon:i.icon,message:i.message},this.hasStatus=i.status!==null)},async toggleMenu(i){i.type==="keydown"&&i.key!=="Enter"||(this.contactsMenuOpenState||await this.fetchContactsMenu(),this.contactsMenuOpenState=!this.contactsMenuOpenState)},closeMenu(){this.contactsMenuOpenState=!1},async fetchContactsMenu(){this.contactsMenuLoading=!0;try{const i=encodeURIComponent(this.user),{data:r}=await st.post(nt("contactsmenu/findOne"),`shareType=0&shareWith=${i}`);this.contactsMenuData=r,this.contactsMenuActions=r.topAction?[r.topAction].concat(r.actions):r.actions}catch{this.contactsMenuOpenState=!1}this.contactsMenuLoading=!1,this.isMenuLoaded=!0},loadAvatarUrl(){if(this.isAvatarLoaded=!1,!this.isUrlDefined&&(!this.isUserDefined||this.isNoUser||this.iconClass||this.$slots.icon)){this.isAvatarLoaded=!0,this.userDoesNotExist=!0;return}if(this.isUrlDefined){this.updateImageIfValid(this.url);return}if(this.size<=64){const i=this.avatarUrlGenerator(this.user,64),r=[i+" 1x",this.avatarUrlGenerator(this.user,512)+" 8x"].join(", ");this.updateImageIfValid(i,r)}else{const i=this.avatarUrlGenerator(this.user,512);this.updateImageIfValid(i)}},avatarUrlGenerator(i,r){let a=Le(i,{size:r,isDarkTheme:this.isDarkTheme,isGuest:this.isGuest});return i===F()?.uid&&typeof oc_userconfig<"u"&&(a+="?v="+window.oc_userconfig.avatar.version),a},updateImageIfValid(i,r=null){const a=Ie(this.user);if(this.isUserDefined&&typeof a=="boolean"){this.isAvatarLoaded=!0,this.avatarUrlLoaded=i,r&&(this.avatarSrcSetLoaded=r),a===!1&&(this.userDoesNotExist=!0);return}const s=new Image;s.onload=()=>{this.avatarUrlLoaded=i,r&&(this.avatarSrcSetLoaded=r),this.isAvatarLoaded=!0,et(this.user,!0)},s.onerror=t=>{$.debug("[NcAvatar] Invalid avatar url",{error:t,url:i}),this.avatarUrlLoaded=null,this.avatarSrcSetLoaded=null,this.userDoesNotExist=!0,this.isAvatarLoaded=!1,et(this.user,!1)},r&&(s.srcset=r),s.src=i}}},Ce=["title"],De=["src","srcset"],Oe={key:2,class:"avatardiv__user-status avatardiv__user-status--icon"};function Ee(i,r,a,s,t,e){const n=w("NcLoadingIcon"),l=w("IconDotsHorizontal"),u=w("NcButton"),m=w("NcIconSvgWrapper"),d=w("NcActions"),f=w("NcUserStatusIcon"),A=Ct("click-outside");return Dt((p(),x("span",{class:H(["avatardiv popovermenu-wrapper",{"avatardiv--unknown":t.userDoesNotExist,"avatardiv--with-menu":e.hasMenu,"avatardiv--with-menu-loading":t.contactsMenuLoading}]),style:E(e.avatarStyle),title:e.tooltip},[rt(i.$slots,"icon",{},()=>[a.iconClass?(p(),x("span",{key:0,class:H([a.iconClass,"avatar-class-icon"])},null,2)):t.isAvatarLoaded&&!t.userDoesNotExist?(p(),x("img",{key:1,src:t.avatarUrlLoaded,srcset:t.avatarSrcSetLoaded,alt:""},null,8,De)):M("",!0)],!0),e.hasMenu&&e.menu.length===0?(p(),L(u,{key:0,"aria-label":e.avatarAriaLabel,class:"action-item action-item__menutoggle",variant:"tertiary-no-background",onClick:e.toggleMenu},{icon:N(()=>[t.contactsMenuLoading?(p(),L(n,{key:0})):(p(),L(l,{key:1,size:20}))]),_:1},8,["aria-label","onClick"])):e.hasMenu?(p(),L(d,{key:1,open:t.contactsMenuOpenState,"onUpdate:open":r[0]||(r[0]=h=>t.contactsMenuOpenState=h),"aria-label":e.avatarAriaLabel,container:a.menuContainer,"force-menu":"","manual-open":"",variant:"tertiary-no-background",onClick:e.toggleMenu},K({default:N(()=>[(p(!0),x(Ot,null,Et(e.menu,(h,c)=>(p(),L($t(h.ncActionComponent),jt({key:c},{ref_for:!0},h.ncActionComponentProps),K({default:N(()=>[zt(" "+U(h.text),1)]),_:2},[h.iconSvg?{name:"icon",fn:N(()=>[Y(m,{svg:h.iconSvg},null,8,["svg"])]),key:"0"}:void 0]),1040))),128))]),_:2},[t.contactsMenuLoading?{name:"icon",fn:N(()=>[Y(n)]),key:"0"}:void 0]),1032,["open","aria-label","container","onClick"])):M("",!0),e.showUserStatusIconOnAvatar?(p(),x("span",Oe,U(i.userStatus.icon),1)):e.canDisplayUserStatus?(p(),L(f,{key:3,class:"avatardiv__user-status",status:i.userStatus.status,"aria-hidden":String(e.hasMenu)},null,8,["status","aria-hidden"])):M("",!0),e.showInitials?(p(),x("span",{key:4,style:E(e.initialsWrapperStyle),class:"avatardiv__initials-wrapper"},[O("span",{style:E(e.initialsStyle),class:"avatardiv__initials"},U(e.initials),5)],4)):M("",!0)],14,Ce)),[[A,e.closeMenu]])}const Ke=at(Ne,[["render",Ee],["__scopeId","data-v-d7dc2a1f"]]);export{J as E,Ke as N,ct as S,Ve as U,ye as a,Me as b,ot as c,Se as g,_e as p,Re as r,D as u,ve as v}; -//# sourceMappingURL=NcAvatar-DmUGApWA-DBHt6M62.chunk.mjs.map diff --git a/dist/NcAvatar-DmUGApWA-DBHt6M62.chunk.mjs.map b/dist/NcAvatar-DmUGApWA-DBHt6M62.chunk.mjs.map deleted file mode 100644 index c56e9b84b7869..0000000000000 --- a/dist/NcAvatar-DmUGApWA-DBHt6M62.chunk.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"NcAvatar-DmUGApWA-DBHt6M62.chunk.mjs","sources":["../node_modules/@nextcloud/vue/dist/chunks/NcActionText-uKvLcEY6.mjs","../node_modules/@nextcloud/vue/dist/chunks/constants-Bls5liKo.mjs","../node_modules/@nextcloud/vue/dist/composables/useIsDarkTheme/index.mjs","../node_modules/@vueuse/components/dist/index.js","../node_modules/unist-builder/lib/index.js","../node_modules/unist-util-is/lib/index.js","../node_modules/unist-util-visit-parents/lib/index.js","../node_modules/unist-util-visit/lib/index.js","../node_modules/@nextcloud/vue/dist/chunks/autolink-U5pBzLgI.mjs","../node_modules/@nextcloud/vue/dist/functions/contactsMenu/index.mjs","../node_modules/ts-md5/dist/index.es.js","../node_modules/@nextcloud/vue/dist/functions/usernameToColor/index.mjs","../node_modules/striptags/src/striptags.js","../node_modules/@nextcloud/vue/dist/chunks/NcMentionBubble.vue_vue_type_style_index_0_scoped_45238efd_lang-D6LzDiYf.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAvatar-DmUGApWA.mjs"],"sourcesContent":["import '../assets/NcActionText-D9InmayH.css';\nimport { A as ActionTextMixin } from \"./actionText-DYzDdbVe.mjs\";\nimport { a as NC_ACTIONS_IS_SEMANTIC_MENU } from \"./useNcActions-CiGWxAJE.mjs\";\nimport { createElementBlock, openBlock, createElementVNode, renderSlot, createCommentVNode, normalizeStyle, normalizeClass, toDisplayString } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcActionText\",\n mixins: [ActionTextMixin],\n inject: {\n isInSemanticMenu: {\n from: NC_ACTIONS_IS_SEMANTIC_MENU,\n default: false\n }\n }\n};\nconst _hoisted_1 = [\"role\"];\nconst _hoisted_2 = {\n key: 0,\n class: \"action-text__longtext-wrapper\"\n};\nconst _hoisted_3 = { class: \"action-text__name\" };\nconst _hoisted_4 = [\"textContent\"];\nconst _hoisted_5 = [\"textContent\"];\nconst _hoisted_6 = {\n key: 2,\n class: \"action-text__text\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"li\", {\n class: \"action\",\n role: $options.isInSemanticMenu && \"presentation\"\n }, [\n createElementVNode(\"span\", {\n class: \"action-text\",\n onClick: _cache[0] || (_cache[0] = (...args) => _ctx.onClick && _ctx.onClick(...args))\n }, [\n renderSlot(_ctx.$slots, \"icon\", {}, () => [\n _ctx.icon !== \"\" ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n \"aria-hidden\": \"true\",\n class: normalizeClass([\"action-text__icon\", [_ctx.isIconUrl ? \"action-text__icon--url\" : _ctx.icon]]),\n style: normalizeStyle({ backgroundImage: _ctx.isIconUrl ? `url(${_ctx.icon})` : null })\n }, null, 6)) : createCommentVNode(\"\", true)\n ], true),\n _ctx.name ? (openBlock(), createElementBlock(\"span\", _hoisted_2, [\n createElementVNode(\"strong\", _hoisted_3, toDisplayString(_ctx.name), 1),\n createElementVNode(\"span\", {\n class: \"action-text__longtext\",\n textContent: toDisplayString(_ctx.text)\n }, null, 8, _hoisted_4)\n ])) : _ctx.isLongText ? (openBlock(), createElementBlock(\"span\", {\n key: 1,\n class: \"action-text__longtext\",\n textContent: toDisplayString(_ctx.text)\n }, null, 8, _hoisted_5)) : (openBlock(), createElementBlock(\"span\", _hoisted_6, toDisplayString(_ctx.text), 1)),\n createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_1);\n}\nconst NcActionText = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-fa684b48\"]]);\nexport {\n NcActionText as N\n};\n//# sourceMappingURL=NcActionText-uKvLcEY6.mjs.map\n","/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst INJECTION_KEY_THEME = Symbol.for(\"nc:theme:enforced\");\nexport {\n INJECTION_KEY_THEME as I\n};\n//# sourceMappingURL=constants-Bls5liKo.mjs.map\n","import { createSharedComposable, usePreferredDark, useMutationObserver } from \"@vueuse/core\";\nimport { computed, toValue, ref, watch, readonly, inject } from \"vue\";\nimport { checkIfDarkTheme } from \"../../functions/isDarkTheme/index.mjs\";\nimport { I as INJECTION_KEY_THEME } from \"../../chunks/constants-Bls5liKo.mjs\";\n/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction useIsDarkThemeElement(el) {\n const element = computed(() => toValue(el) ?? document.body);\n const isDarkTheme = ref(checkIfDarkTheme(element.value));\n const isDarkSystemTheme = usePreferredDark();\n function updateIsDarkTheme() {\n isDarkTheme.value = checkIfDarkTheme(element.value);\n }\n useMutationObserver(element, updateIsDarkTheme, { attributes: true });\n watch(element, updateIsDarkTheme);\n watch(isDarkSystemTheme, updateIsDarkTheme, { immediate: true });\n return readonly(isDarkTheme);\n}\nconst useInternalIsDarkTheme = createSharedComposable(() => useIsDarkThemeElement());\nfunction useIsDarkTheme() {\n const isDarkTheme = useInternalIsDarkTheme();\n const enforcedTheme = inject(INJECTION_KEY_THEME, void 0);\n return computed(() => {\n if (enforcedTheme?.value) {\n return enforcedTheme.value === \"dark\";\n }\n return isDarkTheme.value;\n });\n}\nexport {\n useIsDarkTheme,\n useIsDarkThemeElement\n};\n//# sourceMappingURL=index.mjs.map\n","import { defaultWindow, isClient, onClickOutside, onKeyStroke, onLongPress, useActiveElement, useBattery, useBrowserLocation, useClipboard, useColorMode, useDark, useDeviceMotion, useDeviceOrientation, useDevicePixelRatio, useDevicesList, useDocumentVisibility, useDraggable, useElementBounding, useElementHover, useElementSize, useElementVisibility, useEyeDropper, useFullscreen, useGeolocation, useIdle, useImage, useInfiniteScroll, useIntersectionObserver, useMouse, useMouseInElement, useMousePressed, useNetwork, useNow, useObjectUrl, useOffsetPagination, useOnline, usePageLeave, usePointer, usePointerLock, usePreferredColorScheme, usePreferredContrast, usePreferredDark, usePreferredLanguages, usePreferredReducedMotion, usePreferredReducedTransparency, useResizeObserver, useScreenSafeArea, useScroll, useScrollLock, useStorage, useTimeAgo, useTimestamp, useVirtualList, useWindowFocus, useWindowSize } from \"@vueuse/core\";\nimport { computed, defineComponent, h, reactive, shallowRef, toRefs, toValue, watch } from \"vue\";\nimport { reactiveOmit, toRefs as toRefs$1, useToggle } from \"@vueuse/shared\";\n\n//#region ../core/onClickOutside/component.ts\nconst OnClickOutside = /* @__PURE__ */ defineComponent((props, { slots, emit }) => {\n\tconst target = shallowRef();\n\tonClickOutside(target, (e) => {\n\t\temit(\"trigger\", e);\n\t}, props.options);\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default());\n\t};\n}, {\n\tname: \"OnClickOutside\",\n\tprops: [\"as\", \"options\"],\n\temits: [\"trigger\"]\n});\n\n//#endregion\n//#region ../core/onClickOutside/directive.ts\nconst stopClickOutsideMap = /* @__PURE__ */ new WeakMap();\nconst vOnClickOutside = {\n\tmounted(el, binding) {\n\t\tconst capture = !binding.modifiers.bubble;\n\t\tlet stop;\n\t\tif (typeof binding.value === \"function\") stop = onClickOutside(el, binding.value, { capture });\n\t\telse {\n\t\t\tconst [handler, options] = binding.value;\n\t\t\tstop = onClickOutside(el, handler, Object.assign({ capture }, options));\n\t\t}\n\t\tstopClickOutsideMap.set(el, stop);\n\t},\n\tunmounted(el) {\n\t\tconst stop = stopClickOutsideMap.get(el);\n\t\tif (stop && typeof stop === \"function\") stop();\n\t\telse stop === null || stop === void 0 || stop.stop();\n\t\tstopClickOutsideMap.delete(el);\n\t}\n};\n/** @deprecated use `vOnClickOutside` instead */\nconst VOnClickOutside = vOnClickOutside;\n\n//#endregion\n//#region ../core/onKeyStroke/directive.ts\nconst vOnKeyStroke = { mounted(el, binding) {\n\tvar _binding$arg$split, _binding$arg;\n\tconst keys = (_binding$arg$split = (_binding$arg = binding.arg) === null || _binding$arg === void 0 ? void 0 : _binding$arg.split(\",\")) !== null && _binding$arg$split !== void 0 ? _binding$arg$split : true;\n\tif (typeof binding.value === \"function\") onKeyStroke(keys, binding.value, { target: el });\n\telse {\n\t\tconst [handler, options] = binding.value;\n\t\tonKeyStroke(keys, handler, {\n\t\t\ttarget: el,\n\t\t\t...options\n\t\t});\n\t}\n} };\n\n//#endregion\n//#region ../core/onLongPress/component.ts\nconst OnLongPress = /* @__PURE__ */ defineComponent((props, { slots, emit }) => {\n\tconst target = shallowRef();\n\tconst data = onLongPress(target, (e) => {\n\t\temit(\"trigger\", e);\n\t}, props.options);\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"OnLongPress\",\n\tprops: [\"as\", \"options\"],\n\temits: [\"trigger\"]\n});\n\n//#endregion\n//#region ../core/onLongPress/directive.ts\nconst vOnLongPress = { mounted(el, binding) {\n\tif (typeof binding.value === \"function\") onLongPress(el, binding.value, { modifiers: binding.modifiers });\n\telse onLongPress(el, ...binding.value);\n} };\n/** @deprecated use `vOnLongPress` instead */\nconst VOnLongPress = vOnLongPress;\n\n//#endregion\n//#region ../core/useActiveElement/component.ts\nconst UseActiveElement = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ element: useActiveElement(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseActiveElement\",\n\tprops: [\n\t\t\"deep\",\n\t\t\"triggerOnRemoval\",\n\t\t\"window\",\n\t\t\"document\"\n\t]\n});\n\n//#endregion\n//#region ../core/useBattery/component.ts\nconst UseBattery = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useBattery(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseBattery\",\n\tprops: [\"navigator\"]\n});\n\n//#endregion\n//#region ../core/useBrowserLocation/component.ts\nconst UseBrowserLocation = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useBrowserLocation(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseBrowserLocation\",\n\tprops: [\"window\"]\n});\n\n//#endregion\n//#region ../core/useClipboard/component.ts\nconst UseClipboard = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useClipboard(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseClipboard\",\n\tprops: [\n\t\t\"source\",\n\t\t\"read\",\n\t\t\"navigator\",\n\t\t\"copiedDuring\",\n\t\t\"legacy\"\n\t]\n});\n\n//#endregion\n//#region ../core/useColorMode/component.ts\nconst UseColorMode = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst mode = useColorMode(props);\n\tconst data = reactive({\n\t\tmode,\n\t\tsystem: mode.system,\n\t\tstore: mode.store\n\t});\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseColorMode\",\n\tprops: [\n\t\t\"attribute\",\n\t\t\"deep\",\n\t\t\"disableTransition\",\n\t\t\"emitAuto\",\n\t\t\"eventFilter\",\n\t\t\"flush\",\n\t\t\"initOnMounted\",\n\t\t\"initialValue\",\n\t\t\"listenToStorageChanges\",\n\t\t\"mergeDefaults\",\n\t\t\"modes\",\n\t\t\"onChanged\",\n\t\t\"onError\",\n\t\t\"selector\",\n\t\t\"serializer\",\n\t\t\"shallow\",\n\t\t\"storage\",\n\t\t\"storageKey\",\n\t\t\"storageRef\",\n\t\t\"window\",\n\t\t\"writeDefaults\"\n\t]\n});\n\n//#endregion\n//#region ../core/useDark/component.ts\nconst UseDark = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst isDark = useDark(props);\n\tconst data = reactive({\n\t\tisDark,\n\t\ttoggleDark: useToggle(isDark)\n\t});\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseDark\",\n\tprops: [\n\t\t\"attribute\",\n\t\t\"deep\",\n\t\t\"disableTransition\",\n\t\t\"emitAuto\",\n\t\t\"eventFilter\",\n\t\t\"flush\",\n\t\t\"initOnMounted\",\n\t\t\"initialValue\",\n\t\t\"listenToStorageChanges\",\n\t\t\"mergeDefaults\",\n\t\t\"onChanged\",\n\t\t\"onError\",\n\t\t\"selector\",\n\t\t\"serializer\",\n\t\t\"shallow\",\n\t\t\"storage\",\n\t\t\"storageKey\",\n\t\t\"storageRef\",\n\t\t\"valueDark\",\n\t\t\"valueLight\",\n\t\t\"window\",\n\t\t\"writeDefaults\"\n\t]\n});\n\n//#endregion\n//#region ../core/useDeviceMotion/component.ts\nconst UseDeviceMotion = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = useDeviceMotion(props);\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseDeviceMotion\",\n\tprops: [\n\t\t\"eventFilter\",\n\t\t\"requestPermissions\",\n\t\t\"window\"\n\t]\n});\n\n//#endregion\n//#region ../core/useDeviceOrientation/component.ts\nconst UseDeviceOrientation = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useDeviceOrientation(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseDeviceOrientation\",\n\tprops: [\"window\"]\n});\n\n//#endregion\n//#region ../core/useDevicePixelRatio/component.ts\nconst UseDevicePixelRatio = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useDevicePixelRatio(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseDevicePixelRatio\",\n\tprops: [\"window\"]\n});\n\n//#endregion\n//#region ../core/useDevicesList/component.ts\nconst UseDevicesList = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useDevicesList(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseDevicesList\",\n\tprops: [\n\t\t\"constraints\",\n\t\t\"navigator\",\n\t\t\"onUpdated\",\n\t\t\"requestPermissions\"\n\t]\n});\n\n//#endregion\n//#region ../core/useDocumentVisibility/component.ts\nconst UseDocumentVisibility = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ visibility: useDocumentVisibility(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseDocumentVisibility\",\n\tprops: [\"document\"]\n});\n\n//#endregion\n//#region ../core/useDraggable/component.ts\nconst UseDraggable = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst target = shallowRef();\n\tconst handle = computed(() => {\n\t\tvar _toValue;\n\t\treturn (_toValue = toValue(props.handle)) !== null && _toValue !== void 0 ? _toValue : target.value;\n\t});\n\tconst containerElement = computed(() => {\n\t\tvar _ref;\n\t\treturn (_ref = props.containerElement) !== null && _ref !== void 0 ? _ref : void 0;\n\t});\n\tconst disabled = computed(() => !!props.disabled);\n\tconst storageValue = props.storageKey && useStorage(props.storageKey, toValue(props.initialValue) || {\n\t\tx: 0,\n\t\ty: 0\n\t}, isClient ? props.storageType === \"session\" ? sessionStorage : localStorage : void 0);\n\tconst initialValue = storageValue || props.initialValue || {\n\t\tx: 0,\n\t\ty: 0\n\t};\n\tconst onEnd = (position, event) => {\n\t\tvar _props$onEnd;\n\t\t(_props$onEnd = props.onEnd) === null || _props$onEnd === void 0 || _props$onEnd.call(props, position, event);\n\t\tif (!storageValue) return;\n\t\tstorageValue.value.x = position.x;\n\t\tstorageValue.value.y = position.y;\n\t};\n\tconst data = reactive(useDraggable(target, {\n\t\t...props,\n\t\thandle,\n\t\tinitialValue,\n\t\tonEnd,\n\t\tdisabled,\n\t\tcontainerElement\n\t}));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", {\n\t\t\tref: target,\n\t\t\tstyle: `touch-action:none;${data.style}`\n\t\t}, slots.default(data));\n\t};\n}, {\n\tname: \"UseDraggable\",\n\tprops: [\n\t\t\"storageKey\",\n\t\t\"storageType\",\n\t\t\"initialValue\",\n\t\t\"exact\",\n\t\t\"preventDefault\",\n\t\t\"stopPropagation\",\n\t\t\"pointerTypes\",\n\t\t\"as\",\n\t\t\"handle\",\n\t\t\"axis\",\n\t\t\"onStart\",\n\t\t\"onMove\",\n\t\t\"onEnd\",\n\t\t\"disabled\",\n\t\t\"buttons\",\n\t\t\"containerElement\",\n\t\t\"capture\",\n\t\t\"draggingElement\"\n\t]\n});\n\n//#endregion\n//#region ../core/useElementBounding/component.ts\nconst UseElementBounding = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst target = shallowRef();\n\tconst data = reactive(useElementBounding(target, props));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"UseElementBounding\",\n\tprops: [\n\t\t\"as\",\n\t\t\"immediate\",\n\t\t\"reset\",\n\t\t\"updateTiming\",\n\t\t\"windowResize\",\n\t\t\"windowScroll\"\n\t]\n});\n\n//#endregion\n//#region ../core/useElementBounding/directive.ts\nconst vElementBounding = { mounted(el, binding) {\n\tconst [handler, options] = typeof binding.value === \"function\" ? [binding.value, {}] : binding.value;\n\tconst { height, bottom, left, right, top, width, x, y } = useElementBounding(el, options);\n\twatch([\n\t\theight,\n\t\tbottom,\n\t\tleft,\n\t\tright,\n\t\ttop,\n\t\twidth,\n\t\tx,\n\t\ty\n\t], () => handler({\n\t\theight,\n\t\tbottom,\n\t\tleft,\n\t\tright,\n\t\ttop,\n\t\twidth,\n\t\tx,\n\t\ty\n\t}));\n} };\n\n//#endregion\n//#region ../core/useElementHover/directive.ts\nconst vElementHover = { mounted(el, binding) {\n\tconst value = binding.value;\n\tif (typeof value === \"function\") watch(useElementHover(el), (v) => value(v));\n\telse {\n\t\tconst [handler, options] = value;\n\t\twatch(useElementHover(el, options), (v) => handler(v));\n\t}\n} };\n\n//#endregion\n//#region ../core/useElementSize/component.ts\nconst UseElementSize = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tvar _toValue, _toValue2;\n\tconst target = shallowRef();\n\tconst { width, height } = toRefs(props);\n\tconst data = reactive(useElementSize(target, {\n\t\twidth: (_toValue = toValue(width)) !== null && _toValue !== void 0 ? _toValue : 0,\n\t\theight: (_toValue2 = toValue(height)) !== null && _toValue2 !== void 0 ? _toValue2 : 0\n\t}, {\n\t\tbox: props.box,\n\t\twindow: props.window\n\t}));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"UseElementSize\",\n\tprops: [\n\t\t\"as\",\n\t\t\"box\",\n\t\t\"height\",\n\t\t\"width\",\n\t\t\"window\"\n\t]\n});\n\n//#endregion\n//#region ../core/useElementSize/directive.ts\nconst vElementSize = { mounted(el, binding) {\n\tvar _binding$value;\n\tconst handler = typeof binding.value === \"function\" ? binding.value : (_binding$value = binding.value) === null || _binding$value === void 0 ? void 0 : _binding$value[0];\n\tconst { width, height } = useElementSize(el, ...typeof binding.value === \"function\" ? [] : binding.value.slice(1));\n\twatch([width, height], ([width$1, height$1]) => handler({\n\t\twidth: width$1,\n\t\theight: height$1\n\t}));\n} };\n\n//#endregion\n//#region ../core/useElementVisibility/component.ts\nconst UseElementVisibility = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst target = shallowRef();\n\tconst data = reactive({ isVisible: useElementVisibility(target, props) });\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"UseElementVisibility\",\n\tprops: [\n\t\t\"as\",\n\t\t\"once\",\n\t\t\"rootMargin\",\n\t\t\"scrollTarget\",\n\t\t\"threshold\",\n\t\t\"window\"\n\t]\n});\n\n//#endregion\n//#region ../core/useElementVisibility/directive.ts\nconst vElementVisibility = { mounted(el, binding) {\n\tif (typeof binding.value === \"function\") {\n\t\tconst handler = binding.value;\n\t\twatch(useElementVisibility(el), (v) => handler(v), { immediate: true });\n\t} else {\n\t\tconst [handler, options] = binding.value;\n\t\twatch(useElementVisibility(el, options), (v) => handler(v), { immediate: true });\n\t}\n} };\n\n//#endregion\n//#region ../core/useEyeDropper/component.ts\nconst UseEyeDropper = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useEyeDropper(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseEyeDropper\",\n\tprops: [\"initialValue\"]\n});\n\n//#endregion\n//#region ../core/useFullscreen/component.ts\nconst UseFullscreen = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst target = shallowRef();\n\tconst data = reactive(useFullscreen(target, props));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"UseFullscreen\",\n\tprops: [\n\t\t\"as\",\n\t\t\"autoExit\",\n\t\t\"document\"\n\t]\n});\n\n//#endregion\n//#region ../core/useGeolocation/component.ts\nconst UseGeolocation = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useGeolocation(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseGeolocation\",\n\tprops: [\n\t\t\"enableHighAccuracy\",\n\t\t\"immediate\",\n\t\t\"maximumAge\",\n\t\t\"navigator\",\n\t\t\"timeout\"\n\t]\n});\n\n//#endregion\n//#region ../core/useIdle/component.ts\nconst UseIdle = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useIdle(props.timeout, props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseIdle\",\n\tprops: [\n\t\t\"eventFilter\",\n\t\t\"events\",\n\t\t\"initialState\",\n\t\t\"listenForVisibilityChange\",\n\t\t\"timeout\",\n\t\t\"window\"\n\t]\n});\n\n//#endregion\n//#region ../core/useImage/component.ts\nconst UseImage = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useImage(props));\n\treturn () => {\n\t\tif (data.isLoading && slots.loading) return slots.loading(data);\n\t\telse if (data.error && slots.error) return slots.error(data.error);\n\t\tif (slots.default) return slots.default(data);\n\t\treturn h(props.as || \"img\", props);\n\t};\n}, {\n\tname: \"UseImage\",\n\tprops: [\n\t\t\"alt\",\n\t\t\"as\",\n\t\t\"class\",\n\t\t\"crossorigin\",\n\t\t\"decoding\",\n\t\t\"fetchPriority\",\n\t\t\"height\",\n\t\t\"ismap\",\n\t\t\"loading\",\n\t\t\"referrerPolicy\",\n\t\t\"sizes\",\n\t\t\"src\",\n\t\t\"srcset\",\n\t\t\"usemap\",\n\t\t\"width\"\n\t]\n});\n\n//#endregion\n//#region ../core/useInfiniteScroll/directive.ts\nconst vInfiniteScroll = { mounted(el, binding) {\n\tif (typeof binding.value === \"function\") useInfiniteScroll(el, binding.value);\n\telse useInfiniteScroll(el, ...binding.value);\n} };\n\n//#endregion\n//#region ../core/useIntersectionObserver/directive.ts\nconst vIntersectionObserver = { mounted(el, binding) {\n\tif (typeof binding.value === \"function\") useIntersectionObserver(el, binding.value);\n\telse useIntersectionObserver(el, ...binding.value);\n} };\n\n//#endregion\n//#region ../core/useMouse/component.ts\nconst UseMouse = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useMouse(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseMouse\",\n\tprops: [\n\t\t\"eventFilter\",\n\t\t\"initialValue\",\n\t\t\"resetOnTouchEnds\",\n\t\t\"scroll\",\n\t\t\"target\",\n\t\t\"touch\",\n\t\t\"type\",\n\t\t\"window\"\n\t]\n});\n\n//#endregion\n//#region ../core/useMouseInElement/component.ts\nconst UseMouseInElement = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst target = shallowRef();\n\tconst data = reactive(useMouseInElement(target, props));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"UseMouseInElement\",\n\tprops: [\n\t\t\"as\",\n\t\t\"eventFilter\",\n\t\t\"handleOutside\",\n\t\t\"initialValue\",\n\t\t\"resetOnTouchEnds\",\n\t\t\"scroll\",\n\t\t\"target\",\n\t\t\"touch\",\n\t\t\"type\",\n\t\t\"window\",\n\t\t\"windowResize\",\n\t\t\"windowScroll\"\n\t]\n});\n\n//#endregion\n//#region ../core/useMouseInElement/directive.ts\nconst vMouseInElement = { mounted(el, binding) {\n\tconst [handler, options] = typeof binding.value === \"function\" ? [binding.value, {}] : binding.value;\n\twatch(reactiveOmit(reactive(useMouseInElement(el, options)), \"stop\"), (val) => handler(val));\n} };\n\n//#endregion\n//#region ../core/useMousePressed/component.ts\nconst UseMousePressed = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst target = shallowRef();\n\tconst data = reactive(useMousePressed({\n\t\t...props,\n\t\ttarget\n\t}));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"UseMousePressed\",\n\tprops: [\n\t\t\"as\",\n\t\t\"capture\",\n\t\t\"drag\",\n\t\t\"initialValue\",\n\t\t\"onPressed\",\n\t\t\"onReleased\",\n\t\t\"touch\",\n\t\t\"window\"\n\t]\n});\n\n//#endregion\n//#region ../core/useNetwork/component.ts\nconst UseNetwork = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useNetwork(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseNetwork\",\n\tprops: [\"window\"]\n});\n\n//#endregion\n//#region ../core/useNow/component.ts\nconst UseNow = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useNow({\n\t\t...props,\n\t\tcontrols: true\n\t}));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseNow\",\n\tprops: [\"immediate\", \"interval\"]\n});\n\n//#endregion\n//#region ../core/useObjectUrl/component.ts\nconst UseObjectUrl = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst { object } = toRefs$1(props);\n\tconst url = useObjectUrl(object);\n\treturn () => {\n\t\tif (slots.default && url.value) return slots.default(url.value);\n\t};\n}, {\n\tname: \"UseObjectUrl\",\n\tprops: [\"object\"]\n});\n\n//#endregion\n//#region ../core/useOffsetPagination/component.ts\nconst UseOffsetPagination = /* @__PURE__ */ defineComponent((props, { slots, emit }) => {\n\tconst data = reactive(useOffsetPagination({\n\t\t...props,\n\t\ttotal: toValue(props.total) || void 0,\n\t\tonPageChange(...args) {\n\t\t\tvar _props$onPageChange;\n\t\t\t(_props$onPageChange = props.onPageChange) === null || _props$onPageChange === void 0 || _props$onPageChange.call(props, ...args);\n\t\t\temit(\"page-change\", ...args);\n\t\t},\n\t\tonPageSizeChange(...args) {\n\t\t\tvar _props$onPageSizeChan;\n\t\t\t(_props$onPageSizeChan = props.onPageSizeChange) === null || _props$onPageSizeChan === void 0 || _props$onPageSizeChan.call(props, ...args);\n\t\t\temit(\"page-size-change\", ...args);\n\t\t},\n\t\tonPageCountChange(...args) {\n\t\t\tvar _props$onPageCountCha;\n\t\t\t(_props$onPageCountCha = props.onPageCountChange) === null || _props$onPageCountCha === void 0 || _props$onPageCountCha.call(props, ...args);\n\t\t\temit(\"page-count-change\", ...args);\n\t\t}\n\t}));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseOffsetPagination\",\n\tprops: [\n\t\t\"onPageChange\",\n\t\t\"onPageCountChange\",\n\t\t\"onPageSizeChange\",\n\t\t\"page\",\n\t\t\"pageSize\",\n\t\t\"total\"\n\t]\n});\n\n//#endregion\n//#region ../core/useOnline/component.ts\nconst UseOnline = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ isOnline: useOnline(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseOnline\",\n\tprops: [\"window\"]\n});\n\n//#endregion\n//#region ../core/usePageLeave/component.ts\nconst UsePageLeave = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ isLeft: usePageLeave(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UsePageLeave\",\n\tprops: [\"window\"]\n});\n\n//#endregion\n//#region ../core/usePointer/component.ts\nconst UsePointer = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst el = shallowRef(null);\n\tconst data = reactive(usePointer({\n\t\t...props,\n\t\ttarget: props.target === \"self\" ? el : defaultWindow\n\t}));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UsePointer\",\n\tprops: [\n\t\t\"initialValue\",\n\t\t\"pointerTypes\",\n\t\t\"target\",\n\t\t\"window\"\n\t]\n});\n\n//#endregion\n//#region ../core/usePointerLock/component.ts\nconst UsePointerLock = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst target = shallowRef();\n\tconst data = reactive(usePointerLock(target));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"UsePointerLock\",\n\tprops: [\"as\", \"document\"]\n});\n\n//#endregion\n//#region ../core/usePreferredColorScheme/component.ts\nconst UsePreferredColorScheme = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ colorScheme: usePreferredColorScheme(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UsePreferredColorScheme\",\n\tprops: [\"window\"]\n});\n\n//#endregion\n//#region ../core/usePreferredContrast/component.ts\nconst UsePreferredContrast = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ contrast: usePreferredContrast(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UsePreferredContrast\",\n\tprops: [\"window\"]\n});\n\n//#endregion\n//#region ../core/usePreferredDark/component.ts\nconst UsePreferredDark = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ prefersDark: usePreferredDark(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UsePreferredDark\",\n\tprops: [\"window\"]\n});\n\n//#endregion\n//#region ../core/usePreferredLanguages/component.ts\nconst UsePreferredLanguages = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ languages: usePreferredLanguages(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UsePreferredLanguages\",\n\tprops: [\"window\"]\n});\n\n//#endregion\n//#region ../core/usePreferredReducedMotion/component.ts\nconst UsePreferredReducedMotion = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ motion: usePreferredReducedMotion(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UsePreferredReducedMotion\",\n\tprops: [\"window\"]\n});\n\n//#endregion\n//#region ../core/usePreferredReducedTransparency/component.ts\nconst UsePreferredReducedTransparency = /* @__PURE__ */ defineComponent({\n\tname: \"UsePreferredReducedTransparency\",\n\tsetup(props, { slots }) {\n\t\tconst data = reactive({ transparency: usePreferredReducedTransparency() });\n\t\treturn () => {\n\t\t\tif (slots.default) return slots.default(data);\n\t\t};\n\t}\n});\n\n//#endregion\n//#region ../core/useResizeObserver/directive.ts\nconst vResizeObserver = { mounted(el, binding) {\n\tif (typeof binding.value === \"function\") useResizeObserver(el, binding.value);\n\telse useResizeObserver(el, ...binding.value);\n} };\n\n//#endregion\n//#region ../core/useScreenSafeArea/component.ts\nconst UseScreenSafeArea = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useScreenSafeArea());\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { style: {\n\t\t\tpaddingTop: props.top ? data.top : \"\",\n\t\t\tpaddingRight: props.right ? data.right : \"\",\n\t\t\tpaddingBottom: props.bottom ? data.bottom : \"\",\n\t\t\tpaddingLeft: props.left ? data.left : \"\",\n\t\t\tboxSizing: \"border-box\",\n\t\t\tmaxHeight: \"100vh\",\n\t\t\tmaxWidth: \"100vw\",\n\t\t\toverflow: \"auto\"\n\t\t} }, slots.default(data));\n\t};\n}, {\n\tname: \"UseScreenSafeArea\",\n\tprops: [\n\t\t\"top\",\n\t\t\"right\",\n\t\t\"bottom\",\n\t\t\"left\"\n\t]\n});\n\n//#endregion\n//#region ../core/useScroll/directive.ts\nconst vScroll = { mounted(el, binding) {\n\tif (typeof binding.value === \"function\") {\n\t\tconst handler = binding.value;\n\t\tconst state = useScroll(el, {\n\t\t\tonScroll() {\n\t\t\t\thandler(state);\n\t\t\t},\n\t\t\tonStop() {\n\t\t\t\thandler(state);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tconst [handler, options] = binding.value;\n\t\tconst state = useScroll(el, {\n\t\t\t...options,\n\t\t\tonScroll(e) {\n\t\t\t\tvar _options$onScroll;\n\t\t\t\t(_options$onScroll = options.onScroll) === null || _options$onScroll === void 0 || _options$onScroll.call(options, e);\n\t\t\t\thandler(state);\n\t\t\t},\n\t\t\tonStop(e) {\n\t\t\t\tvar _options$onStop;\n\t\t\t\t(_options$onStop = options.onStop) === null || _options$onStop === void 0 || _options$onStop.call(options, e);\n\t\t\t\thandler(state);\n\t\t\t}\n\t\t});\n\t}\n} };\n\n//#endregion\n//#region ../core/useScrollLock/directive.ts\nfunction onScrollLock() {\n\tlet isMounted = false;\n\tconst state = shallowRef(false);\n\treturn (el, binding) => {\n\t\tstate.value = binding.value;\n\t\tif (isMounted) return;\n\t\tisMounted = true;\n\t\tconst isLocked = useScrollLock(el, binding.value);\n\t\twatch(state, (v) => isLocked.value = v);\n\t};\n}\nconst vScrollLock = onScrollLock();\n\n//#endregion\n//#region ../core/useTimeAgo/component.ts\nconst UseTimeAgo = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useTimeAgo(() => props.time, {\n\t\t...props,\n\t\tcontrols: true\n\t}));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseTimeAgo\",\n\tprops: [\n\t\t\"fullDateFormatter\",\n\t\t\"max\",\n\t\t\"messages\",\n\t\t\"rounding\",\n\t\t\"showSecond\",\n\t\t\"time\",\n\t\t\"units\",\n\t\t\"updateInterval\"\n\t]\n});\n\n//#endregion\n//#region ../core/useTimestamp/component.ts\nconst UseTimestamp = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useTimestamp({\n\t\t...props,\n\t\tcontrols: true\n\t}));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseTimestamp\",\n\tprops: [\n\t\t\"callback\",\n\t\t\"immediate\",\n\t\t\"interval\",\n\t\t\"offset\"\n\t]\n});\n\n//#endregion\n//#region ../core/useVirtualList/component.ts\nconst UseVirtualList = /* @__PURE__ */ defineComponent((props, { slots, expose }) => {\n\tconst { list: listRef } = toRefs(props);\n\tconst { list, containerProps, wrapperProps, scrollTo } = useVirtualList(listRef, props.options);\n\texpose({ scrollTo });\n\tif (containerProps.style && typeof containerProps.style === \"object\" && !Array.isArray(containerProps.style)) containerProps.style.height = props.height || \"300px\";\n\treturn () => h(\"div\", { ...containerProps }, [h(\"div\", { ...wrapperProps.value }, list.value.map((item) => h(\"div\", { style: {\n\t\toverflow: \"hidden\",\n\t\theight: item.height\n\t} }, slots.default ? slots.default(item) : \"Please set content!\")))]);\n}, {\n\tname: \"UseVirtualList\",\n\tprops: [\n\t\t\"height\",\n\t\t\"list\",\n\t\t\"options\"\n\t]\n});\n\n//#endregion\n//#region ../core/useWindowFocus/component.ts\nconst UseWindowFocus = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ focused: useWindowFocus(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseWindowFocus\",\n\tprops: [\"window\"]\n});\n\n//#endregion\n//#region ../core/useWindowSize/component.ts\nconst UseWindowSize = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useWindowSize(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseWindowSize\",\n\tprops: [\n\t\t\"includeScrollbar\",\n\t\t\"initialHeight\",\n\t\t\"initialWidth\",\n\t\t\"listenOrientation\",\n\t\t\"type\",\n\t\t\"window\"\n\t]\n});\n\n//#endregion\nexport { OnClickOutside, OnLongPress, UseActiveElement, UseBattery, UseBrowserLocation, UseClipboard, UseColorMode, UseDark, UseDeviceMotion, UseDeviceOrientation, UseDevicePixelRatio, UseDevicesList, UseDocumentVisibility, UseDraggable, UseElementBounding, UseElementSize, UseElementVisibility, UseEyeDropper, UseFullscreen, UseGeolocation, UseIdle, UseImage, UseMouse, UseMouseInElement, UseMousePressed, UseNetwork, UseNow, UseObjectUrl, UseOffsetPagination, UseOnline, UsePageLeave, UsePointer, UsePointerLock, UsePreferredColorScheme, UsePreferredContrast, UsePreferredDark, UsePreferredLanguages, UsePreferredReducedMotion, UsePreferredReducedTransparency, UseScreenSafeArea, UseTimeAgo, UseTimestamp, UseVirtualList, UseWindowFocus, UseWindowSize, VOnClickOutside, VOnLongPress, vElementBounding, vElementHover, vElementSize, vElementVisibility, vInfiniteScroll, vIntersectionObserver, vMouseInElement, vOnClickOutside, vOnKeyStroke, vOnLongPress, vResizeObserver, vScroll, vScrollLock };","/**\n * @typedef {import('unist').Node} Node\n */\n\n/**\n * @typedef {Array | string} ChildrenOrValue\n * List to use as `children` or value to use as `value`.\n *\n * @typedef {Record} Props\n * Other fields to add to the node.\n */\n\n/**\n * Build a node.\n *\n * @template {string} T\n * @template {Props} P\n * @template {Array} C\n *\n * @overload\n * @param {T} type\n * @returns {{type: T}}\n *\n * @overload\n * @param {T} type\n * @param {P} props\n * @returns {{type: T} & P}\n *\n * @overload\n * @param {T} type\n * @param {string} value\n * @returns {{type: T, value: string}}\n *\n * @overload\n * @param {T} type\n * @param {P} props\n * @param {string} value\n * @returns {{type: T, value: string} & P}\n *\n * @overload\n * @param {T} type\n * @param {C} children\n * @returns {{type: T, children: C}}\n *\n * @overload\n * @param {T} type\n * @param {P} props\n * @param {C} children\n * @returns {{type: T, children: C} & P}\n *\n * @param {string} type\n * Node type.\n * @param {ChildrenOrValue | Props | null | undefined} [props]\n * Fields assigned to node (default: `undefined`).\n * @param {ChildrenOrValue | null | undefined} [value]\n * Children of node or value of `node` (cast to string).\n * @returns {Node}\n * Built node.\n */\nexport function u(type, props, value) {\n /** @type {Node} */\n const node = {type: String(type)}\n\n if (\n (value === undefined || value === null) &&\n (typeof props === 'string' || Array.isArray(props))\n ) {\n value = props\n } else {\n Object.assign(node, props)\n }\n\n if (Array.isArray(value)) {\n // @ts-expect-error: create a parent.\n node.children = value\n } else if (value !== undefined && value !== null) {\n // @ts-expect-error: create a literal.\n node.value = String(value)\n }\n\n return node\n}\n","/**\n * @import {Node, Parent} from 'unist'\n */\n\n/**\n * @template Fn\n * @template Fallback\n * @typedef {Fn extends (value: any) => value is infer Thing ? Thing : Fallback} Predicate\n */\n\n/**\n * @callback Check\n * Check that an arbitrary value is a node.\n * @param {unknown} this\n * The given context.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {boolean}\n * Whether this is a node and passes a test.\n *\n * @typedef {Record | Node} Props\n * Object to check for equivalence.\n *\n * Note: `Node` is included as it is common but is not indexable.\n *\n * @typedef {Array | ReadonlyArray | Props | TestFunction | string | null | undefined} Test\n * Check for an arbitrary node.\n *\n * @callback TestFunction\n * Check if a node passes a test.\n * @param {unknown} this\n * The given context.\n * @param {Node} node\n * A node.\n * @param {number | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | undefined} [parent]\n * The node’s parent.\n * @returns {boolean | undefined | void}\n * Whether this node passes the test.\n *\n * Note: `void` is included until TS sees no return as `undefined`.\n */\n\n/**\n * Check if `node` is a `Node` and whether it passes the given test.\n *\n * @param {unknown} node\n * Thing to check, typically `Node`.\n * @param {Test} test\n * A check for a specific node.\n * @param {number | null | undefined} index\n * The node’s position in its parent.\n * @param {Parent | null | undefined} parent\n * The node’s parent.\n * @param {unknown} context\n * Context object (`this`) to pass to `test` functions.\n * @returns {boolean}\n * Whether `node` is a node and passes a test.\n */\nexport const is =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * (>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition[number]}) &\n * (>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition[number]}) &\n * ((node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * ((node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * ((node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate) &\n * ((node?: null | undefined) => false) &\n * ((node: unknown, test?: null | undefined, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((node: unknown, test?: Test, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * @param {unknown} [node]\n * @param {Test} [test]\n * @param {number | null | undefined} [index]\n * @param {Parent | null | undefined} [parent]\n * @param {unknown} [context]\n * @returns {boolean}\n */\n // eslint-disable-next-line max-params\n function (node, test, index, parent, context) {\n const check = convert(test)\n\n if (\n index !== undefined &&\n index !== null &&\n (typeof index !== 'number' ||\n index < 0 ||\n index === Number.POSITIVE_INFINITY)\n ) {\n throw new Error('Expected positive finite index')\n }\n\n if (\n parent !== undefined &&\n parent !== null &&\n (!is(parent) || !parent.children)\n ) {\n throw new Error('Expected parent node')\n }\n\n if (\n (parent === undefined || parent === null) !==\n (index === undefined || index === null)\n ) {\n throw new Error('Expected both parent and index')\n }\n\n return looksLikeANode(node)\n ? check.call(context, node, index, parent)\n : false\n }\n )\n\n/**\n * Generate an assertion from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * a `node`, `index`, and `parent`.\n *\n * @param {Test} test\n * * when nullish, checks if `node` is a `Node`.\n * * when `string`, works like passing `(node) => node.type === test`.\n * * when `function` checks if function passed the node is true.\n * * when `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n * * when `array`, checks if any one of the subtests pass.\n * @returns {Check}\n * An assertion.\n */\nexport const convert =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate) &\n * ((test?: null | undefined) => (node?: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((test?: Test) => Check)\n * )}\n */\n (\n /**\n * @param {Test} [test]\n * @returns {Check}\n */\n function (test) {\n if (test === null || test === undefined) {\n return ok\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n if (typeof test === 'object') {\n return Array.isArray(test)\n ? anyFactory(test)\n : // Cast because `ReadonlyArray` goes into the above but `isArray`\n // narrows to `Array`.\n propertiesFactory(/** @type {Props} */ (test))\n }\n\n if (typeof test === 'string') {\n return typeFactory(test)\n }\n\n throw new Error('Expected function, string, or object as test')\n }\n )\n\n/**\n * @param {Array} tests\n * @returns {Check}\n */\nfunction anyFactory(tests) {\n /** @type {Array} */\n const checks = []\n let index = -1\n\n while (++index < tests.length) {\n checks[index] = convert(tests[index])\n }\n\n return castFactory(any)\n\n /**\n * @this {unknown}\n * @type {TestFunction}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].apply(this, parameters)) return true\n }\n\n return false\n }\n}\n\n/**\n * Turn an object into a test for a node with a certain fields.\n *\n * @param {Props} check\n * @returns {Check}\n */\nfunction propertiesFactory(check) {\n const checkAsRecord = /** @type {Record} */ (check)\n\n return castFactory(all)\n\n /**\n * @param {Node} node\n * @returns {boolean}\n */\n function all(node) {\n const nodeAsRecord = /** @type {Record} */ (\n /** @type {unknown} */ (node)\n )\n\n /** @type {string} */\n let key\n\n for (key in check) {\n if (nodeAsRecord[key] !== checkAsRecord[key]) return false\n }\n\n return true\n }\n}\n\n/**\n * Turn a string into a test for a node with a certain type.\n *\n * @param {string} check\n * @returns {Check}\n */\nfunction typeFactory(check) {\n return castFactory(type)\n\n /**\n * @param {Node} node\n */\n function type(node) {\n return node && node.type === check\n }\n}\n\n/**\n * Turn a custom test into a test for a node that passes that test.\n *\n * @param {TestFunction} testFunction\n * @returns {Check}\n */\nfunction castFactory(testFunction) {\n return check\n\n /**\n * @this {unknown}\n * @type {Check}\n */\n function check(value, index, parent) {\n return Boolean(\n looksLikeANode(value) &&\n testFunction.call(\n this,\n value,\n typeof index === 'number' ? index : undefined,\n parent || undefined\n )\n )\n }\n}\n\nfunction ok() {\n return true\n}\n\n/**\n * @param {unknown} value\n * @returns {value is Node}\n */\nfunction looksLikeANode(value) {\n return value !== null && typeof value === 'object' && 'type' in value\n}\n","/**\n * @import {Node as UnistNode, Parent as UnistParent} from 'unist'\n */\n\n/**\n * @typedef {Exclude | undefined} Test\n * Test from `unist-util-is`.\n *\n * Note: we have remove and add `undefined`, because otherwise when generating\n * automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n * which doesn’t work when publishing on npm.\n */\n\n/**\n * @typedef {(\n * Fn extends (value: any) => value is infer Thing\n * ? Thing\n * : Fallback\n * )} Predicate\n * Get the value of a type guard `Fn`.\n * @template Fn\n * Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n * Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n * Check extends null | undefined // No test.\n * ? Value\n * : Value extends {type: Check} // String (type) test.\n * ? Value\n * : Value extends Check // Partial test.\n * ? Value\n * : Check extends Function // Function test.\n * ? Predicate extends Value\n * ? Predicate\n * : never\n * : never // Some other test?\n * )} MatchesOne\n * Check whether a node matches a primitive check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n * Check extends ReadonlyArray\n * ? MatchesOne\n * : Check extends Array\n * ? MatchesOne\n * : MatchesOne\n * )} Matches\n * Check whether a node matches a check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n * Number; capped reasonably.\n */\n\n/**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n * Increment a number in the type system.\n * @template {Uint} [I=0]\n * Index.\n */\n\n/**\n * @typedef {(\n * Node extends UnistParent\n * ? Node extends {children: Array}\n * ? Child extends Children ? Node : never\n * : never\n * : never\n * )} InternalParent\n * Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {InternalParent, Child>} Parent\n * Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Depth extends Max\n * ? never\n * :\n * | InternalParent\n * | InternalAncestor, Max, Increment>\n * )} InternalAncestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {InternalAncestor, Child>} Ancestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Tree extends UnistParent\n * ? Depth extends Max\n * ? Tree\n * : Tree | InclusiveDescendant>\n * : Tree\n * )} InclusiveDescendant\n * Collect all (inclusive) descendants of `Tree`.\n *\n * > 👉 **Note**: for performance reasons, this seems to be the fastest way to\n * > recurse without actually running into an infinite loop, which the\n * > previous version did.\n * >\n * > Practically, a max of `2` is typically enough assuming a `Root` is\n * > passed, but it doesn’t improve performance.\n * > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n * > Using up to `10` doesn’t hurt or help either.\n * @template {UnistNode} Tree\n * Tree type.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {'skip' | boolean} Action\n * Union of the action types.\n *\n * @typedef {number} Index\n * Move to the sibling at `index` next (after node itself is completely\n * traversed).\n *\n * Useful if mutating the tree, such as removing the node the visitor is\n * currently on, or any of its previous siblings.\n * Results less than 0 or greater than or equal to `children.length` stop\n * traversing the parent.\n *\n * @typedef {[(Action | null | undefined | void)?, (Index | null | undefined)?]} ActionTuple\n * List with one or two values, the first an action, the second an index.\n *\n * @typedef {Action | ActionTuple | Index | null | undefined | void} VisitorResult\n * Any value that can be returned from a visitor.\n */\n\n/**\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform the parent of node (the last of `ancestors`).\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of an ancestor still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Array} ancestors\n * Ancestors of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n * @template {UnistNode} [Visited=UnistNode]\n * Visited node type.\n * @template {UnistParent} [VisitedParents=UnistParent]\n * Ancestor type.\n */\n\n/**\n * @typedef {Visitor, Check>, Ancestor, Check>>>} BuildVisitor\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parents`.\n * @template {UnistNode} [Tree=UnistNode]\n * Tree type.\n * @template {Test} [Check=Test]\n * Test type.\n */\n\nimport {convert} from 'unist-util-is'\nimport {color} from 'unist-util-visit-parents/do-not-use-color'\n\n/** @type {Readonly} */\nconst empty = []\n\n/**\n * Continue traversing as normal.\n */\nexport const CONTINUE = true\n\n/**\n * Stop traversing immediately.\n */\nexport const EXIT = false\n\n/**\n * Do not traverse this node’s children.\n */\nexport const SKIP = 'skip'\n\n/**\n * Visit nodes, with ancestral information.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @overload\n * @param {Tree} tree\n * @param {Check} check\n * @param {BuildVisitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @overload\n * @param {Tree} tree\n * @param {BuildVisitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @param {UnistNode} tree\n * Tree to traverse.\n * @param {Visitor | Test} test\n * `unist-util-is`-compatible test\n * @param {Visitor | boolean | null | undefined} [visitor]\n * Handle each node.\n * @param {boolean | null | undefined} [reverse]\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns {undefined}\n * Nothing.\n *\n * @template {UnistNode} Tree\n * Node type.\n * @template {Test} Check\n * `unist-util-is`-compatible test.\n */\nexport function visitParents(tree, test, visitor, reverse) {\n /** @type {Test} */\n let check\n\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n // @ts-expect-error no visitor given, so `visitor` is test.\n visitor = test\n } else {\n // @ts-expect-error visitor given, so `test` isn’t a visitor.\n check = test\n }\n\n const is = convert(check)\n const step = reverse ? -1 : 1\n\n factory(tree, undefined, [])()\n\n /**\n * @param {UnistNode} node\n * @param {number | undefined} index\n * @param {Array} parents\n */\n function factory(node, index, parents) {\n const value = /** @type {Record} */ (\n node && typeof node === 'object' ? node : {}\n )\n\n if (typeof value.type === 'string') {\n const name =\n // `hast`\n typeof value.tagName === 'string'\n ? value.tagName\n : // `xast`\n typeof value.name === 'string'\n ? value.name\n : undefined\n\n Object.defineProperty(visit, 'name', {\n value:\n 'node (' + color(node.type + (name ? '<' + name + '>' : '')) + ')'\n })\n }\n\n return visit\n\n function visit() {\n /** @type {Readonly} */\n let result = empty\n /** @type {Readonly} */\n let subresult\n /** @type {number} */\n let offset\n /** @type {Array} */\n let grandparents\n\n if (!test || is(node, index, parents[parents.length - 1] || undefined)) {\n // @ts-expect-error: `visitor` is now a visitor.\n result = toResult(visitor(node, parents))\n\n if (result[0] === EXIT) {\n return result\n }\n }\n\n if ('children' in node && node.children) {\n const nodeAsParent = /** @type {UnistParent} */ (node)\n\n if (nodeAsParent.children && result[0] !== SKIP) {\n offset = (reverse ? nodeAsParent.children.length : -1) + step\n grandparents = parents.concat(nodeAsParent)\n\n while (offset > -1 && offset < nodeAsParent.children.length) {\n const child = nodeAsParent.children[offset]\n\n subresult = factory(child, offset, grandparents)()\n\n if (subresult[0] === EXIT) {\n return subresult\n }\n\n offset =\n typeof subresult[1] === 'number' ? subresult[1] : offset + step\n }\n }\n }\n\n return result\n }\n }\n}\n\n/**\n * Turn a return value into a clean result.\n *\n * @param {VisitorResult} value\n * Valid return values from visitors.\n * @returns {Readonly}\n * Clean result.\n */\nfunction toResult(value) {\n if (Array.isArray(value)) {\n return value\n }\n\n if (typeof value === 'number') {\n return [CONTINUE, value]\n }\n\n return value === null || value === undefined ? empty : [value]\n}\n","/**\n * @typedef {import('unist').Node} UnistNode\n * @typedef {import('unist').Parent} UnistParent\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n */\n\n/**\n * @typedef {Exclude | undefined} Test\n * Test from `unist-util-is`.\n *\n * Note: we have remove and add `undefined`, because otherwise when generating\n * automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n * which doesn’t work when publishing on npm.\n */\n\n// To do: use types from `unist-util-visit-parents` when it’s released.\n\n/**\n * @typedef {(\n * Fn extends (value: any) => value is infer Thing\n * ? Thing\n * : Fallback\n * )} Predicate\n * Get the value of a type guard `Fn`.\n * @template Fn\n * Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n * Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n * Check extends null | undefined // No test.\n * ? Value\n * : Value extends {type: Check} // String (type) test.\n * ? Value\n * : Value extends Check // Partial test.\n * ? Value\n * : Check extends Function // Function test.\n * ? Predicate extends Value\n * ? Predicate\n * : never\n * : never // Some other test?\n * )} MatchesOne\n * Check whether a node matches a primitive check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n * Check extends Array\n * ? MatchesOne\n * : MatchesOne\n * )} Matches\n * Check whether a node matches a check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n * Number; capped reasonably.\n */\n\n/**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n * Increment a number in the type system.\n * @template {Uint} [I=0]\n * Index.\n */\n\n/**\n * @typedef {(\n * Node extends UnistParent\n * ? Node extends {children: Array}\n * ? Child extends Children ? Node : never\n * : never\n * : never\n * )} InternalParent\n * Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {InternalParent, Child>} Parent\n * Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Depth extends Max\n * ? never\n * :\n * | InternalParent\n * | InternalAncestor, Max, Increment>\n * )} InternalAncestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {(\n * Tree extends UnistParent\n * ? Depth extends Max\n * ? Tree\n * : Tree | InclusiveDescendant>\n * : Tree\n * )} InclusiveDescendant\n * Collect all (inclusive) descendants of `Tree`.\n *\n * > 👉 **Note**: for performance reasons, this seems to be the fastest way to\n * > recurse without actually running into an infinite loop, which the\n * > previous version did.\n * >\n * > Practically, a max of `2` is typically enough assuming a `Root` is\n * > passed, but it doesn’t improve performance.\n * > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n * > Using up to `10` doesn’t hurt or help either.\n * @template {UnistNode} Tree\n * Tree type.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform `parent`.\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of `parent` still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Visited extends UnistNode ? number | undefined : never} index\n * Index of `node` in `parent`.\n * @param {Ancestor extends UnistParent ? Ancestor | undefined : never} parent\n * Parent of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n * @template {UnistNode} [Visited=UnistNode]\n * Visited node type.\n * @template {UnistParent} [Ancestor=UnistParent]\n * Ancestor type.\n */\n\n/**\n * @typedef {Visitor>} BuildVisitorFromMatch\n * Build a typed `Visitor` function from a node and all possible parents.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Visited\n * Node type.\n * @template {UnistParent} Ancestor\n * Parent type.\n */\n\n/**\n * @typedef {(\n * BuildVisitorFromMatch<\n * Matches,\n * Extract\n * >\n * )} BuildVisitorFromDescendants\n * Build a typed `Visitor` function from a list of descendants and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Descendant\n * Node type.\n * @template {Test} Check\n * Test type.\n */\n\n/**\n * @typedef {(\n * BuildVisitorFromDescendants<\n * InclusiveDescendant,\n * Check\n * >\n * )} BuildVisitor\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} [Tree=UnistNode]\n * Node type.\n * @template {Test} [Check=Test]\n * Test type.\n */\n\nimport {visitParents} from 'unist-util-visit-parents'\n\nexport {CONTINUE, EXIT, SKIP} from 'unist-util-visit-parents'\n\n/**\n * Visit nodes.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @overload\n * @param {Tree} tree\n * @param {Check} check\n * @param {BuildVisitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @overload\n * @param {Tree} tree\n * @param {BuildVisitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @param {UnistNode} tree\n * Tree to traverse.\n * @param {Visitor | Test} testOrVisitor\n * `unist-util-is`-compatible test (optional, omit to pass a visitor).\n * @param {Visitor | boolean | null | undefined} [visitorOrReverse]\n * Handle each node (when test is omitted, pass `reverse`).\n * @param {boolean | null | undefined} [maybeReverse=false]\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns {undefined}\n * Nothing.\n *\n * @template {UnistNode} Tree\n * Node type.\n * @template {Test} Check\n * `unist-util-is`-compatible test.\n */\nexport function visit(tree, testOrVisitor, visitorOrReverse, maybeReverse) {\n /** @type {boolean | null | undefined} */\n let reverse\n /** @type {Test} */\n let test\n /** @type {Visitor} */\n let visitor\n\n if (\n typeof testOrVisitor === 'function' &&\n typeof visitorOrReverse !== 'function'\n ) {\n test = undefined\n visitor = testOrVisitor\n reverse = visitorOrReverse\n } else {\n // @ts-expect-error: assume the overload with test was given.\n test = testOrVisitor\n // @ts-expect-error: assume the overload with test was given.\n visitor = visitorOrReverse\n reverse = maybeReverse\n }\n\n visitParents(tree, test, overload, reverse)\n\n /**\n * @param {UnistNode} node\n * @param {Array} parents\n */\n function overload(node, parents) {\n const parent = parents[parents.length - 1]\n const index = parent ? parent.children.indexOf(node) : undefined\n return visitor(node, index, parent)\n }\n}\n","import { getBaseUrl, getRootUrl } from \"@nextcloud/router\";\nimport { u } from \"unist-builder\";\nimport { visit, SKIP } from \"unist-util-visit\";\nimport { defineComponent, h } from \"vue\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\n/*!\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst URL_PATTERN = /(\\s|^)(https?:\\/\\/)([-A-Z0-9+_.]+(?::[0-9]+)?(?:\\/[-A-Z0-9+&@#%?=~_|!:,.;()]*)*)(\\s|$)/ig;\nconst URL_PATTERN_AUTOLINK = /(\\s|\\(|^)((https?:\\/\\/)([-A-Z0-9+_.]+[-A-Z0-9]+(?::[0-9]+)?(?:\\/[-A-Z0-9+&@#%?=~_|!:,.;()]*)*))(?=\\s|\\)|$)/ig;\nconst NcLink = defineComponent({\n name: \"NcLink\",\n props: {\n href: {\n type: String,\n required: true\n }\n },\n render() {\n return h(\"a\", {\n href: this.href,\n rel: \"noopener noreferrer\",\n target: \"_blank\",\n class: \"rich-text--external-link\"\n }, [this.href.trim()]);\n }\n});\nfunction remarkAutolink({ autolink, useMarkdown, useExtendedMarkdown }) {\n return function(tree) {\n if (useExtendedMarkdown || !useMarkdown || !autolink) {\n return;\n }\n visit(tree, (node) => node.type === \"text\", (node, index, parent) => {\n let parsed = parseUrl(node.value);\n if (typeof parsed === \"string\") {\n parsed = [u(\"text\", parsed)];\n } else {\n parsed = parsed.map((n) => {\n if (typeof n === \"string\") {\n return u(\"text\", n);\n }\n return u(\"link\", {\n url: n.props.href\n }, [u(\"text\", n.props.href)]);\n }).filter((x) => x).flat();\n }\n parent.children.splice(index, 1, ...parsed);\n return [SKIP, (index ?? 0) + parsed.length];\n });\n };\n}\nfunction parseUrl(text) {\n let match = URL_PATTERN_AUTOLINK.exec(text);\n const list = [];\n let start = 0;\n while (match !== null) {\n let href = match[2];\n let textAfter;\n let textBefore = text.substring(start, match.index + match[1].length);\n if (href[0] === \" \") {\n textBefore += href[0];\n href = href.substring(1).trim();\n }\n const lastChar = href[href.length - 1];\n if (lastChar === \".\" || lastChar === \",\" || lastChar === \";\" || match[0][0] === \"(\" && lastChar === \")\") {\n href = href.substring(0, href.length - 1);\n textAfter = lastChar;\n }\n list.push(textBefore);\n list.push({ component: NcLink, props: { href } });\n if (textAfter) {\n list.push(textAfter);\n }\n start = match.index + match[0].length;\n match = URL_PATTERN_AUTOLINK.exec(text);\n }\n list.push(text.substring(start));\n const joinedText = list.map((item) => typeof item === \"string\" ? item : item.props.href).join(\"\");\n if (text === joinedText) {\n return list;\n }\n logger.error(\"[NcRichText] Failed to reassemble the chunked text: \" + text);\n return text;\n}\nfunction getRoute(router, url) {\n const removePrefix = (str, prefix) => str.startsWith(prefix) ? str.slice(prefix.length) : str;\n const removePrefixes = (str, ...prefixes) => prefixes.reduce((acc, prefix) => removePrefix(acc, prefix), str);\n if (!router) {\n return null;\n }\n const isAbsoluteURL = /^https?:\\/\\//.test(url);\n const isNonHttpLink = /^[a-z][a-z0-9+.-]*:.+/.test(url);\n if (!isAbsoluteURL && isNonHttpLink) {\n return null;\n }\n if (isAbsoluteURL && !url.startsWith(getBaseUrl())) {\n return null;\n }\n if (!isAbsoluteURL && !url.startsWith(\"/\")) {\n return null;\n }\n const relativeUrl = isAbsoluteURL ? removePrefixes(url, getBaseUrl(), \"/index.php\") : url;\n const relativeRouterBase = removePrefixes(router.options.history.base, getRootUrl(), \"/index.php\");\n const potentialRouterPath = removePrefixes(relativeUrl, relativeRouterBase) || \"/\";\n const route = router.resolve(potentialRouterPath);\n if (!route.matched.length) {\n return null;\n }\n return route.fullPath;\n}\nexport {\n URL_PATTERN as U,\n getRoute as g,\n parseUrl as p,\n remarkAutolink as r\n};\n//# sourceMappingURL=autolink-U5pBzLgI.mjs.map\n","import { l as logger } from \"../../chunks/logger-D3RVzcfQ.mjs\";\nfunction registerContactsMenuAction(action) {\n window._nc_contacts_menu_hooks ??= {};\n if (window._nc_contacts_menu_hooks[action.id]) {\n logger.error(`ContactsMenu action for id ${action.id} has already been registered`, {\n action\n });\n return;\n }\n window._nc_contacts_menu_hooks[action.id] = action;\n}\nfunction getEnabledContactsMenuActions(entry) {\n if (!window._nc_contacts_menu_hooks) {\n return [];\n }\n return Object.values(window._nc_contacts_menu_hooks).filter((action) => action.enabled(entry));\n}\nexport {\n getEnabledContactsMenuActions,\n registerContactsMenuAction\n};\n//# sourceMappingURL=index.mjs.map\n","const c = new Int32Array(4);\nclass h {\n static hashStr(i, a = !1) {\n return this.onePassHasher.start().appendStr(i).end(a);\n }\n static hashAsciiStr(i, a = !1) {\n return this.onePassHasher.start().appendAsciiStr(i).end(a);\n }\n // Private Static Variables\n static stateIdentity = new Int32Array([\n 1732584193,\n -271733879,\n -1732584194,\n 271733878\n ]);\n static buffer32Identity = new Int32Array([\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0\n ]);\n static hexChars = \"0123456789abcdef\";\n static hexOut = [];\n // Permanent instance is to use for one-call hashing\n static onePassHasher = new h();\n static _hex(i) {\n const a = h.hexChars, t = h.hexOut;\n let e, s, r, n;\n for (n = 0; n < 4; n += 1)\n for (s = n * 8, e = i[n], r = 0; r < 8; r += 2)\n t[s + 1 + r] = a.charAt(e & 15), e >>>= 4, t[s + 0 + r] = a.charAt(e & 15), e >>>= 4;\n return t.join(\"\");\n }\n static _md5cycle(i, a) {\n let t = i[0], e = i[1], s = i[2], r = i[3];\n t += (e & s | ~e & r) + a[0] - 680876936 | 0, t = (t << 7 | t >>> 25) + e | 0, r += (t & e | ~t & s) + a[1] - 389564586 | 0, r = (r << 12 | r >>> 20) + t | 0, s += (r & t | ~r & e) + a[2] + 606105819 | 0, s = (s << 17 | s >>> 15) + r | 0, e += (s & r | ~s & t) + a[3] - 1044525330 | 0, e = (e << 22 | e >>> 10) + s | 0, t += (e & s | ~e & r) + a[4] - 176418897 | 0, t = (t << 7 | t >>> 25) + e | 0, r += (t & e | ~t & s) + a[5] + 1200080426 | 0, r = (r << 12 | r >>> 20) + t | 0, s += (r & t | ~r & e) + a[6] - 1473231341 | 0, s = (s << 17 | s >>> 15) + r | 0, e += (s & r | ~s & t) + a[7] - 45705983 | 0, e = (e << 22 | e >>> 10) + s | 0, t += (e & s | ~e & r) + a[8] + 1770035416 | 0, t = (t << 7 | t >>> 25) + e | 0, r += (t & e | ~t & s) + a[9] - 1958414417 | 0, r = (r << 12 | r >>> 20) + t | 0, s += (r & t | ~r & e) + a[10] - 42063 | 0, s = (s << 17 | s >>> 15) + r | 0, e += (s & r | ~s & t) + a[11] - 1990404162 | 0, e = (e << 22 | e >>> 10) + s | 0, t += (e & s | ~e & r) + a[12] + 1804603682 | 0, t = (t << 7 | t >>> 25) + e | 0, r += (t & e | ~t & s) + a[13] - 40341101 | 0, r = (r << 12 | r >>> 20) + t | 0, s += (r & t | ~r & e) + a[14] - 1502002290 | 0, s = (s << 17 | s >>> 15) + r | 0, e += (s & r | ~s & t) + a[15] + 1236535329 | 0, e = (e << 22 | e >>> 10) + s | 0, t += (e & r | s & ~r) + a[1] - 165796510 | 0, t = (t << 5 | t >>> 27) + e | 0, r += (t & s | e & ~s) + a[6] - 1069501632 | 0, r = (r << 9 | r >>> 23) + t | 0, s += (r & e | t & ~e) + a[11] + 643717713 | 0, s = (s << 14 | s >>> 18) + r | 0, e += (s & t | r & ~t) + a[0] - 373897302 | 0, e = (e << 20 | e >>> 12) + s | 0, t += (e & r | s & ~r) + a[5] - 701558691 | 0, t = (t << 5 | t >>> 27) + e | 0, r += (t & s | e & ~s) + a[10] + 38016083 | 0, r = (r << 9 | r >>> 23) + t | 0, s += (r & e | t & ~e) + a[15] - 660478335 | 0, s = (s << 14 | s >>> 18) + r | 0, e += (s & t | r & ~t) + a[4] - 405537848 | 0, e = (e << 20 | e >>> 12) + s | 0, t += (e & r | s & ~r) + a[9] + 568446438 | 0, t = (t << 5 | t >>> 27) + e | 0, r += (t & s | e & ~s) + a[14] - 1019803690 | 0, r = (r << 9 | r >>> 23) + t | 0, s += (r & e | t & ~e) + a[3] - 187363961 | 0, s = (s << 14 | s >>> 18) + r | 0, e += (s & t | r & ~t) + a[8] + 1163531501 | 0, e = (e << 20 | e >>> 12) + s | 0, t += (e & r | s & ~r) + a[13] - 1444681467 | 0, t = (t << 5 | t >>> 27) + e | 0, r += (t & s | e & ~s) + a[2] - 51403784 | 0, r = (r << 9 | r >>> 23) + t | 0, s += (r & e | t & ~e) + a[7] + 1735328473 | 0, s = (s << 14 | s >>> 18) + r | 0, e += (s & t | r & ~t) + a[12] - 1926607734 | 0, e = (e << 20 | e >>> 12) + s | 0, t += (e ^ s ^ r) + a[5] - 378558 | 0, t = (t << 4 | t >>> 28) + e | 0, r += (t ^ e ^ s) + a[8] - 2022574463 | 0, r = (r << 11 | r >>> 21) + t | 0, s += (r ^ t ^ e) + a[11] + 1839030562 | 0, s = (s << 16 | s >>> 16) + r | 0, e += (s ^ r ^ t) + a[14] - 35309556 | 0, e = (e << 23 | e >>> 9) + s | 0, t += (e ^ s ^ r) + a[1] - 1530992060 | 0, t = (t << 4 | t >>> 28) + e | 0, r += (t ^ e ^ s) + a[4] + 1272893353 | 0, r = (r << 11 | r >>> 21) + t | 0, s += (r ^ t ^ e) + a[7] - 155497632 | 0, s = (s << 16 | s >>> 16) + r | 0, e += (s ^ r ^ t) + a[10] - 1094730640 | 0, e = (e << 23 | e >>> 9) + s | 0, t += (e ^ s ^ r) + a[13] + 681279174 | 0, t = (t << 4 | t >>> 28) + e | 0, r += (t ^ e ^ s) + a[0] - 358537222 | 0, r = (r << 11 | r >>> 21) + t | 0, s += (r ^ t ^ e) + a[3] - 722521979 | 0, s = (s << 16 | s >>> 16) + r | 0, e += (s ^ r ^ t) + a[6] + 76029189 | 0, e = (e << 23 | e >>> 9) + s | 0, t += (e ^ s ^ r) + a[9] - 640364487 | 0, t = (t << 4 | t >>> 28) + e | 0, r += (t ^ e ^ s) + a[12] - 421815835 | 0, r = (r << 11 | r >>> 21) + t | 0, s += (r ^ t ^ e) + a[15] + 530742520 | 0, s = (s << 16 | s >>> 16) + r | 0, e += (s ^ r ^ t) + a[2] - 995338651 | 0, e = (e << 23 | e >>> 9) + s | 0, t += (s ^ (e | ~r)) + a[0] - 198630844 | 0, t = (t << 6 | t >>> 26) + e | 0, r += (e ^ (t | ~s)) + a[7] + 1126891415 | 0, r = (r << 10 | r >>> 22) + t | 0, s += (t ^ (r | ~e)) + a[14] - 1416354905 | 0, s = (s << 15 | s >>> 17) + r | 0, e += (r ^ (s | ~t)) + a[5] - 57434055 | 0, e = (e << 21 | e >>> 11) + s | 0, t += (s ^ (e | ~r)) + a[12] + 1700485571 | 0, t = (t << 6 | t >>> 26) + e | 0, r += (e ^ (t | ~s)) + a[3] - 1894986606 | 0, r = (r << 10 | r >>> 22) + t | 0, s += (t ^ (r | ~e)) + a[10] - 1051523 | 0, s = (s << 15 | s >>> 17) + r | 0, e += (r ^ (s | ~t)) + a[1] - 2054922799 | 0, e = (e << 21 | e >>> 11) + s | 0, t += (s ^ (e | ~r)) + a[8] + 1873313359 | 0, t = (t << 6 | t >>> 26) + e | 0, r += (e ^ (t | ~s)) + a[15] - 30611744 | 0, r = (r << 10 | r >>> 22) + t | 0, s += (t ^ (r | ~e)) + a[6] - 1560198380 | 0, s = (s << 15 | s >>> 17) + r | 0, e += (r ^ (s | ~t)) + a[13] + 1309151649 | 0, e = (e << 21 | e >>> 11) + s | 0, t += (s ^ (e | ~r)) + a[4] - 145523070 | 0, t = (t << 6 | t >>> 26) + e | 0, r += (e ^ (t | ~s)) + a[11] - 1120210379 | 0, r = (r << 10 | r >>> 22) + t | 0, s += (t ^ (r | ~e)) + a[2] + 718787259 | 0, s = (s << 15 | s >>> 17) + r | 0, e += (r ^ (s | ~t)) + a[9] - 343485551 | 0, e = (e << 21 | e >>> 11) + s | 0, i[0] = t + i[0] | 0, i[1] = e + i[1] | 0, i[2] = s + i[2] | 0, i[3] = r + i[3] | 0;\n }\n _dataLength = 0;\n _bufferLength = 0;\n _state = new Int32Array(4);\n _buffer = new ArrayBuffer(68);\n _buffer8;\n _buffer32;\n constructor() {\n this._buffer8 = new Uint8Array(this._buffer, 0, 68), this._buffer32 = new Uint32Array(this._buffer, 0, 17), this.start();\n }\n /**\n * Initialise buffer to be hashed\n */\n start() {\n return this._dataLength = 0, this._bufferLength = 0, this._state.set(h.stateIdentity), this;\n }\n // Char to code point to to array conversion:\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/charCodeAt\n // #Example.3A_Fixing_charCodeAt_to_handle_non-Basic-Multilingual-Plane_characters_if_their_presence_earlier_in_the_string_is_unknown\n /**\n * Append a UTF-8 string to the hash buffer\n * @param str String to append\n */\n appendStr(i) {\n const a = this._buffer8, t = this._buffer32;\n let e = this._bufferLength, s, r;\n for (r = 0; r < i.length; r += 1) {\n if (s = i.charCodeAt(r), s < 128)\n a[e++] = s;\n else if (s < 2048)\n a[e++] = (s >>> 6) + 192, a[e++] = s & 63 | 128;\n else if (s < 55296 || s > 56319)\n a[e++] = (s >>> 12) + 224, a[e++] = s >>> 6 & 63 | 128, a[e++] = s & 63 | 128;\n else {\n if (s = (s - 55296) * 1024 + (i.charCodeAt(++r) - 56320) + 65536, s > 1114111)\n throw new Error(\n \"Unicode standard supports code points up to U+10FFFF\"\n );\n a[e++] = (s >>> 18) + 240, a[e++] = s >>> 12 & 63 | 128, a[e++] = s >>> 6 & 63 | 128, a[e++] = s & 63 | 128;\n }\n e >= 64 && (this._dataLength += 64, h._md5cycle(this._state, t), e -= 64, t[0] = t[16]);\n }\n return this._bufferLength = e, this;\n }\n /**\n * Append an ASCII string to the hash buffer\n * @param str String to append\n */\n appendAsciiStr(i) {\n const a = this._buffer8, t = this._buffer32;\n let e = this._bufferLength, s, r = 0;\n for (; ; ) {\n for (s = Math.min(i.length - r, 64 - e); s--; )\n a[e++] = i.charCodeAt(r++);\n if (e < 64)\n break;\n this._dataLength += 64, h._md5cycle(this._state, t), e = 0;\n }\n return this._bufferLength = e, this;\n }\n /**\n * Append a byte array to the hash buffer\n * @param input array to append\n */\n appendByteArray(i) {\n const a = this._buffer8, t = this._buffer32;\n let e = this._bufferLength, s, r = 0;\n for (; ; ) {\n for (s = Math.min(i.length - r, 64 - e); s--; )\n a[e++] = i[r++];\n if (e < 64)\n break;\n this._dataLength += 64, h._md5cycle(this._state, t), e = 0;\n }\n return this._bufferLength = e, this;\n }\n /**\n * Get the state of the hash buffer\n */\n getState() {\n const i = this._state;\n return {\n buffer: String.fromCharCode.apply(null, Array.from(this._buffer8)),\n buflen: this._bufferLength,\n length: this._dataLength,\n state: [i[0], i[1], i[2], i[3]]\n };\n }\n /**\n * Override the current state of the hash buffer\n * @param state New hash buffer state\n */\n setState(i) {\n const a = i.buffer, t = i.state, e = this._state;\n let s;\n for (this._dataLength = i.length, this._bufferLength = i.buflen, e[0] = t[0], e[1] = t[1], e[2] = t[2], e[3] = t[3], s = 0; s < a.length; s += 1)\n this._buffer8[s] = a.charCodeAt(s);\n }\n /**\n * Hash the current state of the hash buffer and return the result\n * @param raw Whether to return the value as an `Int32Array`\n */\n end(i = !1) {\n const a = this._bufferLength, t = this._buffer8, e = this._buffer32, s = (a >> 2) + 1;\n this._dataLength += a;\n const r = this._dataLength * 8;\n if (t[a] = 128, t[a + 1] = t[a + 2] = t[a + 3] = 0, e.set(h.buffer32Identity.subarray(s), s), a > 55 && (h._md5cycle(this._state, e), e.set(h.buffer32Identity)), r <= 4294967295)\n e[14] = r;\n else {\n const n = r.toString(16).match(/(.*?)(.{0,8})$/);\n if (n === null) return i ? c : \"\";\n const o = parseInt(n[2], 16), _ = parseInt(n[1], 16) || 0;\n e[14] = o, e[15] = _;\n }\n return h._md5cycle(this._state, e), i ? this._state : h._hex(this._state);\n }\n}\nif (h.hashStr(\"hello\") !== \"5d41402abc4b2a76b9719d911017c592\")\n throw new Error(\"Md5 self test failed.\");\nclass l {\n constructor(i, a = !0, t = 1048576) {\n this._callback = i, this._async = a, this._partSize = t, this._configureReader();\n }\n _reader;\n _md5;\n _part;\n // private _length!: number;\n _blob;\n /**\n * Hash a blob of data in the worker\n * @param blob Data to hash\n */\n hash(i) {\n const a = this;\n a._blob = i, a._part = 0, a._md5 = new h(), a._processPart();\n }\n _fail() {\n this._callback({\n success: !1,\n result: \"data read failed\"\n });\n }\n _hashData(i) {\n let a = this;\n a._md5.appendByteArray(new Uint8Array(i.target.result)), a._part * a._partSize >= a._blob.size ? a._callback({\n success: !0,\n result: a._md5.end()\n }) : a._processPart();\n }\n _processPart() {\n const i = this;\n let a = 0, t;\n i._part += 1, i._blob.size > i._partSize ? (a = i._part * i._partSize, a > i._blob.size && (a = i._blob.size), t = i._blob.slice(\n (i._part - 1) * i._partSize,\n a\n )) : t = i._blob, i._async ? i._reader.readAsArrayBuffer(t) : setTimeout(() => {\n try {\n i._hashData({\n target: {\n result: i._reader.readAsArrayBuffer(\n t\n )\n }\n });\n } catch {\n i._fail();\n }\n }, 0);\n }\n _configureReader() {\n const i = this;\n i._async ? (i._reader = new FileReader(), i._reader.onload = i._hashData.bind(i), i._reader.onerror = i._fail.bind(i), i._reader.onabort = i._fail.bind(i)) : i._reader = new FileReaderSync();\n }\n}\nclass u {\n _queue = [];\n _hashWorker;\n _processing;\n _ready = !0;\n constructor(i, a) {\n const t = this;\n Worker ? (t._hashWorker = new Worker(i, a), t._hashWorker.onmessage = t._recievedMessage.bind(t), t._hashWorker.onerror = (e) => {\n t._ready = !1, console.error(\"Hash worker failure\", e);\n }) : (t._ready = !1, console.error(\"Web Workers are not supported in this browser\"));\n }\n /**\n * Hash a blob of data in the worker\n * @param blob Data to hash\n * @returns Promise of the Hashed result\n */\n hash(i) {\n const a = this;\n let t;\n return t = new Promise((e, s) => {\n a._queue.push({\n blob: i,\n resolve: e,\n reject: s\n }), a._processNext();\n }), t;\n }\n /** Terminate any existing hash requests */\n terminate() {\n this._ready = !1, this._hashWorker.terminate();\n }\n // Processes the next item in the queue\n _processNext() {\n this._ready && !this._processing && this._queue.length > 0 && (this._processing = this._queue.pop(), this._hashWorker.postMessage(this._processing.blob));\n }\n // Hash result is returned from the worker\n _recievedMessage(i) {\n const a = i.data;\n a.success ? this._processing?.resolve(a.result) : this._processing?.reject(a.result), this._processing = void 0, this._processNext();\n }\n}\nexport {\n h as Md5,\n l as Md5FileHasher,\n u as ParallelHasher\n};\n//# sourceMappingURL=index.es.js.map\n","import { Md5 } from \"ts-md5\";\nimport { g as generatePalette } from \"../../chunks/colors-Go3zmZRD.mjs\";\nfunction hashCode(str) {\n let hash = str;\n if (str.match(/^([0-9a-f]{4}-?){8}$/) === null) {\n hash = Md5.hashStr(str);\n }\n hash = hash.replace(/[^0-9a-f]/g, \"\");\n let finalInt = 0;\n for (let i = 0; i < hash.length; i++) {\n finalInt += parseInt(hash.charAt(i), 16);\n }\n return finalInt;\n}\nfunction usernameToColor(username) {\n const steps = 6;\n const finalPalette = generatePalette(steps);\n const hash = hashCode(username.toLocaleLowerCase());\n return finalPalette[hash % finalPalette.length];\n}\nexport {\n usernameToColor\n};\n//# sourceMappingURL=index.mjs.map\n","'use strict';\n\n(function (global) {\n\n // minimal symbol polyfill for IE11 and others\n if (typeof Symbol !== 'function') {\n var Symbol = function(name) {\n return name;\n }\n\n Symbol.nonNative = true;\n }\n\n const STATE_PLAINTEXT = Symbol('plaintext');\n const STATE_HTML = Symbol('html');\n const STATE_COMMENT = Symbol('comment');\n\n const ALLOWED_TAGS_REGEX = /<(\\w*)>/g;\n const NORMALIZE_TAG_REGEX = /<\\/?([^\\s\\/>]+)/;\n\n function striptags(html, allowable_tags, tag_replacement) {\n html = html || '';\n allowable_tags = allowable_tags || [];\n tag_replacement = tag_replacement || '';\n\n let context = init_context(allowable_tags, tag_replacement);\n\n return striptags_internal(html, context);\n }\n\n function init_striptags_stream(allowable_tags, tag_replacement) {\n allowable_tags = allowable_tags || [];\n tag_replacement = tag_replacement || '';\n\n let context = init_context(allowable_tags, tag_replacement);\n\n return function striptags_stream(html) {\n return striptags_internal(html || '', context);\n };\n }\n\n striptags.init_streaming_mode = init_striptags_stream;\n\n function init_context(allowable_tags, tag_replacement) {\n allowable_tags = parse_allowable_tags(allowable_tags);\n\n return {\n allowable_tags : allowable_tags,\n tag_replacement: tag_replacement,\n\n state : STATE_PLAINTEXT,\n tag_buffer : '',\n depth : 0,\n in_quote_char : ''\n };\n }\n\n function striptags_internal(html, context) {\n if (typeof html != \"string\") {\n throw new TypeError(\"'html' parameter must be a string\");\n }\n\n let allowable_tags = context.allowable_tags;\n let tag_replacement = context.tag_replacement;\n\n let state = context.state;\n let tag_buffer = context.tag_buffer;\n let depth = context.depth;\n let in_quote_char = context.in_quote_char;\n let output = '';\n\n for (let idx = 0, length = html.length; idx < length; idx++) {\n let char = html[idx];\n\n if (state === STATE_PLAINTEXT) {\n switch (char) {\n case '<':\n state = STATE_HTML;\n tag_buffer += char;\n break;\n\n default:\n output += char;\n break;\n }\n }\n\n else if (state === STATE_HTML) {\n switch (char) {\n case '<':\n // ignore '<' if inside a quote\n if (in_quote_char) {\n break;\n }\n\n // we're seeing a nested '<'\n depth++;\n break;\n\n case '>':\n // ignore '>' if inside a quote\n if (in_quote_char) {\n break;\n }\n\n // something like this is happening: '<<>>'\n if (depth) {\n depth--;\n\n break;\n }\n\n // this is closing the tag in tag_buffer\n in_quote_char = '';\n state = STATE_PLAINTEXT;\n tag_buffer += '>';\n\n if (allowable_tags.has(normalize_tag(tag_buffer))) {\n output += tag_buffer;\n } else {\n output += tag_replacement;\n }\n\n tag_buffer = '';\n break;\n\n case '\"':\n case '\\'':\n // catch both single and double quotes\n\n if (char === in_quote_char) {\n in_quote_char = '';\n } else {\n in_quote_char = in_quote_char || char;\n }\n\n tag_buffer += char;\n break;\n\n case '-':\n if (tag_buffer === '':\n if (tag_buffer.slice(-2) == '--') {\n // close the comment\n state = STATE_PLAINTEXT;\n }\n\n tag_buffer = '';\n break;\n\n default:\n tag_buffer += char;\n break;\n }\n }\n }\n\n // save the context for future iterations\n context.state = state;\n context.tag_buffer = tag_buffer;\n context.depth = depth;\n context.in_quote_char = in_quote_char;\n\n return output;\n }\n\n function parse_allowable_tags(allowable_tags) {\n let tag_set = new Set();\n\n if (typeof allowable_tags === 'string') {\n let match;\n\n while ((match = ALLOWED_TAGS_REGEX.exec(allowable_tags))) {\n tag_set.add(match[1]);\n }\n }\n\n else if (!Symbol.nonNative &&\n typeof allowable_tags[Symbol.iterator] === 'function') {\n\n tag_set = new Set(allowable_tags);\n }\n\n else if (typeof allowable_tags.forEach === 'function') {\n // IE11 compatible\n allowable_tags.forEach(tag_set.add, tag_set);\n }\n\n return tag_set;\n }\n\n function normalize_tag(tag_buffer) {\n let match = NORMALIZE_TAG_REGEX.exec(tag_buffer);\n\n return match ? match[1].toLowerCase() : null;\n }\n\n if (typeof define === 'function' && define.amd) {\n // AMD\n define(function module_factory() { return striptags; });\n }\n\n else if (typeof module === 'object' && module.exports) {\n // Node\n module.exports = striptags;\n }\n\n else {\n // Browser\n global.striptags = striptags;\n }\n}(this));\n","import '../assets/NcMentionBubble-ptHUq68a.css';\nimport { generateUrl } from \"@nextcloud/router\";\nimport { checkIfDarkTheme } from \"../functions/isDarkTheme/index.mjs\";\nfunction getAvatarUrl(user, options) {\n const size = (options?.size || 64) <= 64 ? 64 : 512;\n const guestUrl = options?.isGuest ? \"/guest\" : \"\";\n const themeUrl = options?.isDarkTheme ?? checkIfDarkTheme(document.body) ? \"/dark\" : \"\";\n return generateUrl(`/avatar${guestUrl}/{user}/{size}${themeUrl}`, {\n user,\n size\n });\n}\nexport {\n getAvatarUrl as g\n};\n//# sourceMappingURL=NcMentionBubble.vue_vue_type_style_index_0_scoped_45238efd_lang-D6LzDiYf.mjs.map\n","import '../assets/NcAvatar-f8SJKMDw.css';\nimport { getCurrentUser } from \"@nextcloud/auth\";\nimport axios from \"@nextcloud/axios\";\nimport { getBuilder } from \"@nextcloud/browser-storage\";\nimport { unsubscribe, subscribe } from \"@nextcloud/event-bus\";\nimport { generateOcsUrl, generateUrl } from \"@nextcloud/router\";\nimport { vOnClickOutside } from \"@vueuse/components\";\nimport { N as NcActions, I as IconDotsHorizontal } from \"./NcActions-DWmvh7-Y.mjs\";\nimport { g as getRoute } from \"./autolink-U5pBzLgI.mjs\";\nimport \"../composables/useFormatDateTime/index.mjs\";\nimport \"../composables/useHotKey/index.mjs\";\nimport { useIsDarkTheme } from \"../composables/useIsDarkTheme/index.mjs\";\nimport \"../composables/useIsFullscreen/index.mjs\";\nimport \"../composables/useIsMobile/index.mjs\";\nimport { getEnabledContactsMenuActions } from \"../functions/contactsMenu/index.mjs\";\nimport { usernameToColor } from \"../functions/usernameToColor/index.mjs\";\nimport { r as register, i as t10, a as t } from \"./_l10n-DrTiip5c.mjs\";\nimport \"escape-html\";\nimport \"striptags\";\nimport { resolveComponent, resolveDirective, withDirectives, createElementBlock, openBlock, normalizeStyle, normalizeClass, renderSlot, createBlock, createCommentVNode, withCtx, createSlots, Fragment, renderList, resolveDynamicComponent, mergeProps, createTextVNode, toDisplayString, createVNode, createElementVNode } from \"vue\";\nimport { g as getAvatarUrl } from \"./NcMentionBubble.vue_vue_type_style_index_0_scoped_45238efd_lang-D6LzDiYf.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { N as NcUserStatusIcon, g as getUserStatusText } from \"./NcUserStatusIcon-CGEf7fej.mjs\";\nimport { N as NcActionButton } from \"./NcActionButton-pKOSrlGE.mjs\";\nimport { N as NcActionLink } from \"./NcActionLink-vEvKSV4N.mjs\";\nimport { N as NcActionRouter } from \"./NcActionRouter-oT-YU_jf.mjs\";\nimport { N as NcActionText } from \"./NcActionText-uKvLcEY6.mjs\";\nimport { N as NcButton } from \"./NcButton-Dc8V4Urj.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-BvLanNaW.mjs\";\nimport { N as NcLoadingIcon } from \"./NcLoadingIcon-b_ajZ_nQ.mjs\";\nregister(t10);\nconst userStatus = {\n data() {\n return {\n hasStatus: false,\n userStatus: {\n status: null,\n message: null,\n icon: null\n }\n };\n },\n methods: {\n /**\n * Fetches the user-status from the server\n *\n * @param {string} userId UserId of the user to fetch the status for\n *\n * @return {Promise}\n */\n async fetchUserStatus(userId) {\n if (!userId) {\n return;\n }\n const capabilities = getCapabilities();\n if (!Object.hasOwn(capabilities, \"user_status\") || !capabilities.user_status.enabled) {\n return;\n }\n if (!getCurrentUser()) {\n return;\n }\n try {\n const { data } = await axios.get(generateOcsUrl(\"apps/user_status/api/v1/statuses/{userId}\", { userId }));\n this.setUserStatus(data.ocs.data);\n } catch (e) {\n if (e.response.status === 404 && e.response.data.ocs?.data?.length === 0) {\n return;\n }\n logger.error(\"Failed to fetch user status\", { error: e });\n }\n },\n /**\n * Sets the user status\n *\n * @param {string} status user's status\n * @param {string} message user's message\n * @param {string} icon user's icon\n */\n setUserStatus({ status, message, icon }) {\n this.userStatus.status = status || \"\";\n this.userStatus.message = message || \"\";\n this.userStatus.icon = icon || \"\";\n this.hasStatus = !!status;\n }\n }\n};\nconst browserStorage = getBuilder(\"nextcloud\").persist().build();\nfunction getUserHasAvatar(userId) {\n const flag = browserStorage.getItem(\"user-has-avatar.\" + userId);\n if (typeof flag === \"string\") {\n return Boolean(flag);\n }\n return null;\n}\nfunction setUserHasAvatar(userId, flag) {\n if (userId) {\n browserStorage.setItem(\"user-has-avatar.\" + userId, flag);\n }\n}\nconst _sfc_main = {\n name: \"NcAvatar\",\n directives: {\n /** @type {import('vue').ObjectDirective} */\n ClickOutside: vOnClickOutside\n },\n components: {\n IconDotsHorizontal,\n NcActions,\n NcButton,\n NcIconSvgWrapper,\n NcLoadingIcon,\n NcUserStatusIcon\n },\n mixins: [userStatus],\n props: {\n /**\n * Set a custom url to the avatar image\n * either the url, user or displayName property must be defined\n */\n url: {\n type: String,\n default: void 0\n },\n /**\n * Set a css icon-class for an icon to be used instead of the avatar.\n */\n iconClass: {\n type: String,\n default: void 0\n },\n /**\n * Set the user id to fetch the avatar\n * either the url, user or displayName property must be defined\n */\n user: {\n type: String,\n default: void 0\n },\n /**\n * Do not show the user status on the avatar.\n */\n hideStatus: {\n type: Boolean,\n default: false\n },\n /**\n * Show the verbose user status (e.g. \"online\" / \"away\") instead of just the status icon.\n */\n verboseStatus: {\n type: Boolean,\n default: false\n },\n /**\n * When the user status was preloaded via another source it can be handed in with this property to save the request.\n * If this property is not set the status will be fetched automatically.\n * If a preloaded no-status is available provide this object with properties \"status\", \"icon\" and \"message\" set to null.\n */\n preloadedUserStatus: {\n type: Object,\n default: void 0\n },\n /**\n * Is the user a guest user (then we have to user a different endpoint)\n */\n isGuest: {\n type: Boolean,\n default: false\n },\n /**\n * Set a display name that will be rendered as a tooltip\n * either the url, user or displayName property must be defined\n * specify just the displayname to generate a placeholder avatar without\n * trying to fetch the avatar based on the user id\n */\n displayName: {\n type: String,\n default: void 0\n },\n /**\n * Set a size in px for the rendered avatar\n */\n size: {\n type: Number,\n default: 32\n },\n /**\n * Do not automatically generate a placeholder avatars if there is no real avatar is available.\n */\n noPlaceholder: {\n type: Boolean,\n default: false\n },\n /**\n * Disable the tooltip\n */\n disableTooltip: {\n type: Boolean,\n default: false\n },\n /**\n * Disable the menu\n */\n disableMenu: {\n type: Boolean,\n default: false\n },\n /**\n * Declares a custom tooltip when not null\n * Fallback will be the displayName\n *\n * requires disableTooltip not to be set to true\n */\n tooltipMessage: {\n type: String,\n default: null\n },\n /**\n * Declares username is not a user's name, when true.\n * Prevents loading user's avatar from server and forces generating colored initials,\n * i.e. if the user is a group\n */\n isNoUser: {\n type: Boolean,\n default: false\n },\n /**\n * Selector for the popover menu container\n */\n menuContainer: {\n type: [Boolean, String, Object, Element],\n default: \"body\"\n }\n },\n setup() {\n const isDarkTheme = useIsDarkTheme();\n return {\n isDarkTheme\n };\n },\n data() {\n return {\n avatarUrlLoaded: null,\n avatarSrcSetLoaded: null,\n userDoesNotExist: false,\n isAvatarLoaded: false,\n isMenuLoaded: false,\n contactsMenuLoading: false,\n contactsMenuData: {},\n contactsMenuActions: [],\n contactsMenuOpenState: false\n };\n },\n computed: {\n avatarAriaLabel() {\n if (!this.hasMenu) {\n return;\n }\n if (this.canDisplayUserStatus || this.showUserStatusIconOnAvatar) {\n return t(\"Avatar of {displayName}, {status}\", { displayName: this.displayName ?? this.user, status: getUserStatusText(this.userStatus.status) });\n }\n return t(\"Avatar of {displayName}\", { displayName: this.displayName ?? this.user });\n },\n canDisplayUserStatus() {\n return !this.hideStatus && this.hasStatus && [\"online\", \"away\", \"busy\", \"dnd\"].includes(this.userStatus.status);\n },\n showUserStatusIconOnAvatar() {\n return !this.hideStatus && !this.verboseStatus && this.hasStatus && this.userStatus.status !== \"dnd\" && this.userStatus.icon;\n },\n /**\n * The user identifier, either the display name if set or the user property\n * If both properties are not set an empty string is returned\n */\n userIdentifier() {\n if (this.isDisplayNameDefined) {\n return this.displayName;\n }\n if (this.isUserDefined) {\n return this.user;\n }\n return \"\";\n },\n isUserDefined() {\n return typeof this.user !== \"undefined\";\n },\n isDisplayNameDefined() {\n return typeof this.displayName !== \"undefined\";\n },\n isUrlDefined() {\n return typeof this.url !== \"undefined\";\n },\n hasMenu() {\n if (this.disableMenu) {\n return false;\n }\n if (this.isMenuLoaded) {\n return this.menu.length > 0;\n }\n return !(this.user === getCurrentUser()?.uid || this.userDoesNotExist || this.url);\n },\n /**\n * True if initials should be shown as the user icon fallback\n */\n showInitials() {\n return !this.noPlaceholder && this.userDoesNotExist && !(this.iconClass || this.$slots.icon);\n },\n avatarStyle() {\n return {\n \"--avatar-size\": this.size + \"px\",\n lineHeight: this.showInitials ? this.size + \"px\" : 0,\n fontSize: Math.round(this.size * 0.45) + \"px\"\n };\n },\n initialsWrapperStyle() {\n const { r, g, b } = usernameToColor(this.userIdentifier);\n return {\n backgroundColor: `rgba(${r}, ${g}, ${b}, 0.1)`\n };\n },\n initialsStyle() {\n const { r, g, b } = usernameToColor(this.userIdentifier);\n return {\n color: `rgb(${r}, ${g}, ${b})`\n };\n },\n tooltip() {\n if (this.disableTooltip) {\n return null;\n }\n if (this.tooltipMessage) {\n return this.tooltipMessage;\n }\n return this.displayName;\n },\n /**\n * Get the (max. two) initials of the user as uppcase string\n */\n initials() {\n let initials = \"?\";\n if (this.showInitials) {\n const user = this.userIdentifier.trim();\n if (user === \"\") {\n return initials;\n }\n const filteredChars = user.match(/[\\p{L}\\p{N}\\s]/gu);\n if (!filteredChars) {\n return initials;\n }\n const filtered = filteredChars.join(\"\");\n const idx = filtered.lastIndexOf(\" \");\n initials = String.fromCodePoint(filtered.codePointAt(0));\n if (idx !== -1) {\n initials = initials.concat(String.fromCodePoint(filtered.codePointAt(idx + 1)));\n }\n }\n return initials.toLocaleUpperCase();\n },\n menu() {\n const actions = this.contactsMenuActions.map((item) => {\n const route = getRoute(this.$router, item.hyperlink);\n return {\n ncActionComponent: route ? NcActionRouter : NcActionLink,\n ncActionComponentProps: route ? {\n to: route,\n icon: item.icon\n } : {\n href: item.hyperlink,\n icon: item.icon\n },\n text: item.title\n };\n });\n for (const action of getEnabledContactsMenuActions(this.contactsMenuData)) {\n try {\n actions.push({\n ncActionComponent: NcActionButton,\n ncActionComponentProps: {\n onClick: () => action.callback(this.contactsMenuData)\n },\n text: action.displayName(this.contactsMenuData),\n iconSvg: action.iconSvg(this.contactsMenuData)\n });\n } catch (error) {\n logger.error(`Failed to render ContactsMenu action ${action.id}`, {\n error,\n action\n });\n }\n }\n function escape(html) {\n const text = document.createTextNode(html);\n const p = document.createElement(\"p\");\n p.appendChild(text);\n return p.innerHTML;\n }\n if (!this.hideStatus && (this.userStatus.icon || this.userStatus.message)) {\n const emojiIcon = `\n\t\t\t\t\t${escape(this.userStatus.icon)}\n\t\t\t\t`;\n return [{\n ncActionComponent: NcActionText,\n ncActionComponentProps: {},\n iconSvg: this.userStatus.icon ? emojiIcon : void 0,\n text: `${this.userStatus.message}`\n }].concat(actions);\n }\n return actions;\n }\n },\n watch: {\n url() {\n this.userDoesNotExist = false;\n this.loadAvatarUrl();\n },\n user() {\n this.userDoesNotExist = false;\n this.isMenuLoaded = false;\n this.loadAvatarUrl();\n }\n },\n mounted() {\n this.loadAvatarUrl();\n subscribe(\"settings:avatar:updated\", this.loadAvatarUrl);\n subscribe(\"settings:display-name:updated\", this.loadAvatarUrl);\n if (!this.hideStatus && this.user && !this.isNoUser) {\n if (!this.preloadedUserStatus) {\n this.fetchUserStatus(this.user);\n } else {\n this.setUserStatus(this.preloadedUserStatus);\n }\n subscribe(\"user_status:status.updated\", this.handleUserStatusUpdated);\n } else if (!this.hideStatus && this.preloadedUserStatus) {\n this.setUserStatus(this.preloadedUserStatus);\n }\n },\n beforeUnmount() {\n unsubscribe(\"settings:avatar:updated\", this.loadAvatarUrl);\n unsubscribe(\"settings:display-name:updated\", this.loadAvatarUrl);\n unsubscribe(\"user_status:status.updated\", this.handleUserStatusUpdated);\n },\n methods: {\n t,\n handleUserStatusUpdated(state) {\n if (this.user === state.userId) {\n this.userStatus = {\n status: state.status,\n icon: state.icon,\n message: state.message\n };\n this.hasStatus = state.status !== null;\n }\n },\n /**\n * Toggle the popover menu on click or enter\n *\n * @param {KeyboardEvent|MouseEvent} event the UI event\n */\n async toggleMenu(event) {\n if (event.type === \"keydown\" && event.key !== \"Enter\") {\n return;\n }\n if (!this.contactsMenuOpenState) {\n await this.fetchContactsMenu();\n }\n this.contactsMenuOpenState = !this.contactsMenuOpenState;\n },\n closeMenu() {\n this.contactsMenuOpenState = false;\n },\n async fetchContactsMenu() {\n this.contactsMenuLoading = true;\n try {\n const user = encodeURIComponent(this.user);\n const { data } = await axios.post(generateUrl(\"contactsmenu/findOne\"), `shareType=0&shareWith=${user}`);\n this.contactsMenuData = data;\n this.contactsMenuActions = data.topAction ? [data.topAction].concat(data.actions) : data.actions;\n } catch {\n this.contactsMenuOpenState = false;\n }\n this.contactsMenuLoading = false;\n this.isMenuLoaded = true;\n },\n /**\n * Handle avatar loading if user or url defined\n */\n loadAvatarUrl() {\n this.isAvatarLoaded = false;\n if (!this.isUrlDefined && (!this.isUserDefined || this.isNoUser || this.iconClass || this.$slots.icon)) {\n this.isAvatarLoaded = true;\n this.userDoesNotExist = true;\n return;\n }\n if (this.isUrlDefined) {\n this.updateImageIfValid(this.url);\n return;\n }\n if (this.size <= 64) {\n const avatarUrl = this.avatarUrlGenerator(this.user, 64);\n const srcset = [\n avatarUrl + \" 1x\",\n this.avatarUrlGenerator(this.user, 512) + \" 8x\"\n ].join(\", \");\n this.updateImageIfValid(avatarUrl, srcset);\n } else {\n const avatarUrl = this.avatarUrlGenerator(this.user, 512);\n this.updateImageIfValid(avatarUrl);\n }\n },\n /**\n * Generate an avatar url from the server's avatar endpoint\n *\n * @param {string} user the user id\n * @param {number} size the desired size\n * @return {string}\n */\n avatarUrlGenerator(user, size) {\n let avatarUrl = getAvatarUrl(user, {\n size,\n isDarkTheme: this.isDarkTheme,\n isGuest: this.isGuest\n });\n if (user === getCurrentUser()?.uid && typeof oc_userconfig !== \"undefined\") {\n avatarUrl += \"?v=\" + window.oc_userconfig.avatar.version;\n }\n return avatarUrl;\n },\n /**\n * Check if the provided url is valid and update Avatar if so\n *\n * @param {string} url the avatar url\n * @param {Array} srcset the avatar srcset\n */\n updateImageIfValid(url, srcset = null) {\n const userHasAvatar = getUserHasAvatar(this.user);\n if (this.isUserDefined && typeof userHasAvatar === \"boolean\") {\n this.isAvatarLoaded = true;\n this.avatarUrlLoaded = url;\n if (srcset) {\n this.avatarSrcSetLoaded = srcset;\n }\n if (userHasAvatar === false) {\n this.userDoesNotExist = true;\n }\n return;\n }\n const img = new Image();\n img.onload = () => {\n this.avatarUrlLoaded = url;\n if (srcset) {\n this.avatarSrcSetLoaded = srcset;\n }\n this.isAvatarLoaded = true;\n setUserHasAvatar(this.user, true);\n };\n img.onerror = (error) => {\n logger.debug(\"[NcAvatar] Invalid avatar url\", { error, url });\n this.avatarUrlLoaded = null;\n this.avatarSrcSetLoaded = null;\n this.userDoesNotExist = true;\n this.isAvatarLoaded = false;\n setUserHasAvatar(this.user, false);\n };\n if (srcset) {\n img.srcset = srcset;\n }\n img.src = url;\n }\n }\n};\nconst _hoisted_1 = [\"title\"];\nconst _hoisted_2 = [\"src\", \"srcset\"];\nconst _hoisted_3 = {\n key: 2,\n class: \"avatardiv__user-status avatardiv__user-status--icon\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcLoadingIcon = resolveComponent(\"NcLoadingIcon\");\n const _component_IconDotsHorizontal = resolveComponent(\"IconDotsHorizontal\");\n const _component_NcButton = resolveComponent(\"NcButton\");\n const _component_NcIconSvgWrapper = resolveComponent(\"NcIconSvgWrapper\");\n const _component_NcActions = resolveComponent(\"NcActions\");\n const _component_NcUserStatusIcon = resolveComponent(\"NcUserStatusIcon\");\n const _directive_click_outside = resolveDirective(\"click-outside\");\n return withDirectives((openBlock(), createElementBlock(\"span\", {\n class: normalizeClass([\"avatardiv popovermenu-wrapper\", {\n \"avatardiv--unknown\": $data.userDoesNotExist,\n \"avatardiv--with-menu\": $options.hasMenu,\n \"avatardiv--with-menu-loading\": $data.contactsMenuLoading\n }]),\n style: normalizeStyle($options.avatarStyle),\n title: $options.tooltip\n }, [\n renderSlot(_ctx.$slots, \"icon\", {}, () => [\n $props.iconClass ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n class: normalizeClass([$props.iconClass, \"avatar-class-icon\"])\n }, null, 2)) : $data.isAvatarLoaded && !$data.userDoesNotExist ? (openBlock(), createElementBlock(\"img\", {\n key: 1,\n src: $data.avatarUrlLoaded,\n srcset: $data.avatarSrcSetLoaded,\n alt: \"\"\n }, null, 8, _hoisted_2)) : createCommentVNode(\"\", true)\n ], true),\n $options.hasMenu && $options.menu.length === 0 ? (openBlock(), createBlock(_component_NcButton, {\n key: 0,\n \"aria-label\": $options.avatarAriaLabel,\n class: \"action-item action-item__menutoggle\",\n variant: \"tertiary-no-background\",\n onClick: $options.toggleMenu\n }, {\n icon: withCtx(() => [\n $data.contactsMenuLoading ? (openBlock(), createBlock(_component_NcLoadingIcon, { key: 0 })) : (openBlock(), createBlock(_component_IconDotsHorizontal, {\n key: 1,\n size: 20\n }))\n ]),\n _: 1\n }, 8, [\"aria-label\", \"onClick\"])) : $options.hasMenu ? (openBlock(), createBlock(_component_NcActions, {\n key: 1,\n open: $data.contactsMenuOpenState,\n \"onUpdate:open\": _cache[0] || (_cache[0] = ($event) => $data.contactsMenuOpenState = $event),\n \"aria-label\": $options.avatarAriaLabel,\n container: $props.menuContainer,\n \"force-menu\": \"\",\n \"manual-open\": \"\",\n variant: \"tertiary-no-background\",\n onClick: $options.toggleMenu\n }, createSlots({\n default: withCtx(() => [\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.menu, (item, key) => {\n return openBlock(), createBlock(resolveDynamicComponent(item.ncActionComponent), mergeProps({ key }, { ref_for: true }, item.ncActionComponentProps), createSlots({\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString(item.text), 1)\n ]),\n _: 2\n }, [\n item.iconSvg ? {\n name: \"icon\",\n fn: withCtx(() => [\n createVNode(_component_NcIconSvgWrapper, {\n svg: item.iconSvg\n }, null, 8, [\"svg\"])\n ]),\n key: \"0\"\n } : void 0\n ]), 1040);\n }), 128))\n ]),\n _: 2\n }, [\n $data.contactsMenuLoading ? {\n name: \"icon\",\n fn: withCtx(() => [\n createVNode(_component_NcLoadingIcon)\n ]),\n key: \"0\"\n } : void 0\n ]), 1032, [\"open\", \"aria-label\", \"container\", \"onClick\"])) : createCommentVNode(\"\", true),\n $options.showUserStatusIconOnAvatar ? (openBlock(), createElementBlock(\"span\", _hoisted_3, toDisplayString(_ctx.userStatus.icon), 1)) : $options.canDisplayUserStatus ? (openBlock(), createBlock(_component_NcUserStatusIcon, {\n key: 3,\n class: \"avatardiv__user-status\",\n status: _ctx.userStatus.status,\n \"aria-hidden\": String($options.hasMenu)\n }, null, 8, [\"status\", \"aria-hidden\"])) : createCommentVNode(\"\", true),\n $options.showInitials ? (openBlock(), createElementBlock(\"span\", {\n key: 4,\n style: normalizeStyle($options.initialsWrapperStyle),\n class: \"avatardiv__initials-wrapper\"\n }, [\n createElementVNode(\"span\", {\n style: normalizeStyle($options.initialsStyle),\n class: \"avatardiv__initials\"\n }, toDisplayString($options.initials), 5)\n ], 4)) : createCommentVNode(\"\", true)\n ], 14, _hoisted_1)), [\n [_directive_click_outside, $options.closeMenu]\n ]);\n}\nconst NcAvatar = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-d7dc2a1f\"]]);\nexport {\n NcAvatar as N,\n userStatus as u\n};\n//# sourceMappingURL=NcAvatar-DmUGApWA.mjs.map\n"],"names":["_sfc_main","ActionTextMixin","NC_ACTIONS_IS_SEMANTIC_MENU","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","openBlock","createElementBlock","createElementVNode","args","renderSlot","normalizeClass","normalizeStyle","createCommentVNode","toDisplayString","NcActionText","_export_sfc","INJECTION_KEY_THEME","useIsDarkThemeElement","el","element","computed","toValue","isDarkTheme","ref","checkIfDarkTheme","isDarkSystemTheme","usePreferredDark","updateIsDarkTheme","useMutationObserver","watch","readonly","useInternalIsDarkTheme","createSharedComposable","useIsDarkTheme","enforcedTheme","inject","stopClickOutsideMap","vOnClickOutside","binding","capture","stop","onClickOutside","handler","options","onScrollLock","isMounted","state","shallowRef","isLocked","useScrollLock","v","u","type","props","value","node","convert","test","ok","castFactory","anyFactory","propertiesFactory","typeFactory","tests","checks","index","any","parameters","check","checkAsRecord","all","nodeAsRecord","key","testFunction","parent","looksLikeANode","empty","CONTINUE","EXIT","SKIP","visitParents","tree","visitor","reverse","is","step","factory","parents","name","visit","result","subresult","offset","grandparents","toResult","nodeAsParent","child","testOrVisitor","visitorOrReverse","maybeReverse","overload","URL_PATTERN","URL_PATTERN_AUTOLINK","NcLink","defineComponent","h","remarkAutolink","autolink","useMarkdown","useExtendedMarkdown","parsed","parseUrl","n","x","text","match","list","start","href","textAfter","textBefore","lastChar","joinedText","item","logger","getRoute","router","url","removePrefix","str","prefix","removePrefixes","prefixes","acc","isAbsoluteURL","isNonHttpLink","getBaseUrl","relativeUrl","relativeRouterBase","getRootUrl","potentialRouterPath","route","getEnabledContactsMenuActions","entry","action","c","i","a","t","e","s","r","o","_","hashCode","hash","Md5","finalInt","usernameToColor","username","finalPalette","generatePalette","global","Symbol","STATE_PLAINTEXT","STATE_HTML","STATE_COMMENT","ALLOWED_TAGS_REGEX","NORMALIZE_TAG_REGEX","striptags","html","allowable_tags","tag_replacement","context","init_context","striptags_internal","init_striptags_stream","parse_allowable_tags","tag_buffer","depth","in_quote_char","output","idx","length","char","normalize_tag","tag_set","module","this","getAvatarUrl","user","size","guestUrl","themeUrl","generateUrl","register","t10","userStatus","userId","capabilities","getCapabilities","getCurrentUser","data","axios","generateOcsUrl","status","message","icon","browserStorage","getBuilder","getUserHasAvatar","flag","setUserHasAvatar","IconDotsHorizontal","NcActions","NcButton","NcIconSvgWrapper","NcLoadingIcon","NcUserStatusIcon","getUserStatusText","g","b","initials","filteredChars","filtered","actions","NcActionRouter","NcActionLink","NcActionButton","error","escape","p","emojiIcon","subscribe","unsubscribe","event","avatarUrl","srcset","userHasAvatar","img","_component_NcLoadingIcon","resolveComponent","_component_IconDotsHorizontal","_component_NcButton","_component_NcIconSvgWrapper","_component_NcActions","_component_NcUserStatusIcon","_directive_click_outside","resolveDirective","withDirectives","createBlock","withCtx","$event","createSlots","Fragment","renderList","resolveDynamicComponent","mergeProps","createTextVNode","createVNode","NcAvatar"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]} \ No newline at end of file diff --git a/dist/NcAvatar-DmUGApWA-xbPVEdSn.chunk.mjs b/dist/NcAvatar-DmUGApWA-xbPVEdSn.chunk.mjs new file mode 100644 index 0000000000000..7881e6b6c0e56 --- /dev/null +++ b/dist/NcAvatar-DmUGApWA-xbPVEdSn.chunk.mjs @@ -0,0 +1,5 @@ +import{c as nt,a as j,u as $,s as z}from"./index-Bndk0DrU.chunk.mjs";import{c as X}from"./index-DVH_Kr3Q.chunk.mjs";import{_ as Y,g as Z,r as it,j as rt,a as ot,b as B}from"./createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs";import{c as ut,d as ct,e as T,g as lt,h as ht,o as V,j as dt,N as ft,I as pt}from"./NcModal-MC_HktJd-DqeuH-fk.chunk.mjs";import{j as p,o as c,k as C,m as tt,l as U,I as D,n as G,t as S,Q as mt,x as et,a0 as gt,r as vt,s as F,a1 as yt,aa as bt,f as _,ab as St,E as _t,c as x,w,y as q,e as Q,F as xt,C as Ut,L as At,z as kt,g as Lt}from"./runtime-dom.esm-bundler-DdtEg5E9.chunk.mjs";import{l as H,N as wt,b as It,g as Mt}from"./AccountOutline-BlW-6JqD.chunk.mjs";import{g as Nt}from"./colors-Go3zmZRD-DNxaZwS4.chunk.mjs";import"./string_decoder-vT-u9WbV.chunk.mjs";import{g as Ct}from"./index-DCpg1aui.chunk.mjs";import{N as Dt,g as Ot}from"./PencilOutline-BSRAQiy1.chunk.mjs";import{A as Et,b as $t,N as zt,a as Bt}from"./NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-BNncp1Y1.chunk.mjs";import{N as Pt}from"./Web-aYJacExm.chunk.mjs";const jt={name:"NcActionText",mixins:[Et],inject:{isInSemanticMenu:{from:ut,default:!1}}},Tt=["role"],Gt={key:0,class:"action-text__longtext-wrapper"},Ft={class:"action-text__name"},Ht=["textContent"],Wt=["textContent"],Vt={key:2,class:"action-text__text"};function qt(r,i,n,s,t,e){return c(),p("li",{class:"action",role:e.isInSemanticMenu&&"presentation"},[C("span",{class:"action-text",onClick:i[0]||(i[0]=(...a)=>r.onClick&&r.onClick(...a))},[tt(r.$slots,"icon",{},()=>[r.icon!==""?(c(),p("span",{key:0,"aria-hidden":"true",class:G(["action-text__icon",[r.isIconUrl?"action-text__icon--url":r.icon]]),style:D({backgroundImage:r.isIconUrl?`url(${r.icon})`:null})},null,6)):U("",!0)],!0),r.name?(c(),p("span",Gt,[C("strong",Ft,S(r.name),1),C("span",{class:"action-text__longtext",textContent:S(r.text)},null,8,Ht)])):r.isLongText?(c(),p("span",{key:1,class:"action-text__longtext",textContent:S(r.text)},null,8,Wt)):(c(),p("span",Vt,S(r.text),1)),U("",!0)])],8,Tt)}const Qt=Y(jt,[["render",qt],["__scopeId","data-v-fa684b48"]]),Rt=Symbol.for("nc:theme:enforced");function Jt(r){const i=et(()=>gt(r)??document.body),n=vt(T(i.value)),s=ht();function t(){n.value=T(i.value)}return lt(i,t,{attributes:!0}),F(i,t),F(s,t,{immediate:!0}),yt(n)}const Kt=ct(()=>Jt());function Xt(){const r=Kt(),i=mt(Rt,void 0);return et(()=>i?.value?i.value==="dark":r.value)}const P=new WeakMap,Yt={mounted(r,i){const n=!i.modifiers.bubble;let s;if(typeof i.value=="function")s=V(r,i.value,{capture:n});else{const[t,e]=i.value;s=V(r,t,Object.assign({capture:n},e))}P.set(r,s)},unmounted(r){const i=P.get(r);i&&typeof i=="function"?i():i?.stop(),P.delete(r)}};function Zt(){let r=!1;const i=bt(!1);return(n,s)=>{if(i.value=s.value,r)return;r=!0;const t=dt(n,s.value);F(i,e=>t.value=e)}}Zt();function te(r){return window._nc_contacts_menu_hooks?Object.values(window._nc_contacts_menu_hooks).filter(i=>i.enabled(r)):[]}const ee=new Int32Array(4);class h{static hashStr(i,n=!1){return this.onePassHasher.start().appendStr(i).end(n)}static hashAsciiStr(i,n=!1){return this.onePassHasher.start().appendAsciiStr(i).end(n)}static stateIdentity=new Int32Array([1732584193,-271733879,-1732584194,271733878]);static buffer32Identity=new Int32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);static hexChars="0123456789abcdef";static hexOut=[];static onePassHasher=new h;static _hex(i){const n=h.hexChars,s=h.hexOut;let t,e,a,d;for(d=0;d<4;d+=1)for(e=d*8,t=i[d],a=0;a<8;a+=2)s[e+1+a]=n.charAt(t&15),t>>>=4,s[e+0+a]=n.charAt(t&15),t>>>=4;return s.join("")}static _md5cycle(i,n){let s=i[0],t=i[1],e=i[2],a=i[3];s+=(t&e|~t&a)+n[0]-680876936|0,s=(s<<7|s>>>25)+t|0,a+=(s&t|~s&e)+n[1]-389564586|0,a=(a<<12|a>>>20)+s|0,e+=(a&s|~a&t)+n[2]+606105819|0,e=(e<<17|e>>>15)+a|0,t+=(e&a|~e&s)+n[3]-1044525330|0,t=(t<<22|t>>>10)+e|0,s+=(t&e|~t&a)+n[4]-176418897|0,s=(s<<7|s>>>25)+t|0,a+=(s&t|~s&e)+n[5]+1200080426|0,a=(a<<12|a>>>20)+s|0,e+=(a&s|~a&t)+n[6]-1473231341|0,e=(e<<17|e>>>15)+a|0,t+=(e&a|~e&s)+n[7]-45705983|0,t=(t<<22|t>>>10)+e|0,s+=(t&e|~t&a)+n[8]+1770035416|0,s=(s<<7|s>>>25)+t|0,a+=(s&t|~s&e)+n[9]-1958414417|0,a=(a<<12|a>>>20)+s|0,e+=(a&s|~a&t)+n[10]-42063|0,e=(e<<17|e>>>15)+a|0,t+=(e&a|~e&s)+n[11]-1990404162|0,t=(t<<22|t>>>10)+e|0,s+=(t&e|~t&a)+n[12]+1804603682|0,s=(s<<7|s>>>25)+t|0,a+=(s&t|~s&e)+n[13]-40341101|0,a=(a<<12|a>>>20)+s|0,e+=(a&s|~a&t)+n[14]-1502002290|0,e=(e<<17|e>>>15)+a|0,t+=(e&a|~e&s)+n[15]+1236535329|0,t=(t<<22|t>>>10)+e|0,s+=(t&a|e&~a)+n[1]-165796510|0,s=(s<<5|s>>>27)+t|0,a+=(s&e|t&~e)+n[6]-1069501632|0,a=(a<<9|a>>>23)+s|0,e+=(a&t|s&~t)+n[11]+643717713|0,e=(e<<14|e>>>18)+a|0,t+=(e&s|a&~s)+n[0]-373897302|0,t=(t<<20|t>>>12)+e|0,s+=(t&a|e&~a)+n[5]-701558691|0,s=(s<<5|s>>>27)+t|0,a+=(s&e|t&~e)+n[10]+38016083|0,a=(a<<9|a>>>23)+s|0,e+=(a&t|s&~t)+n[15]-660478335|0,e=(e<<14|e>>>18)+a|0,t+=(e&s|a&~s)+n[4]-405537848|0,t=(t<<20|t>>>12)+e|0,s+=(t&a|e&~a)+n[9]+568446438|0,s=(s<<5|s>>>27)+t|0,a+=(s&e|t&~e)+n[14]-1019803690|0,a=(a<<9|a>>>23)+s|0,e+=(a&t|s&~t)+n[3]-187363961|0,e=(e<<14|e>>>18)+a|0,t+=(e&s|a&~s)+n[8]+1163531501|0,t=(t<<20|t>>>12)+e|0,s+=(t&a|e&~a)+n[13]-1444681467|0,s=(s<<5|s>>>27)+t|0,a+=(s&e|t&~e)+n[2]-51403784|0,a=(a<<9|a>>>23)+s|0,e+=(a&t|s&~t)+n[7]+1735328473|0,e=(e<<14|e>>>18)+a|0,t+=(e&s|a&~s)+n[12]-1926607734|0,t=(t<<20|t>>>12)+e|0,s+=(t^e^a)+n[5]-378558|0,s=(s<<4|s>>>28)+t|0,a+=(s^t^e)+n[8]-2022574463|0,a=(a<<11|a>>>21)+s|0,e+=(a^s^t)+n[11]+1839030562|0,e=(e<<16|e>>>16)+a|0,t+=(e^a^s)+n[14]-35309556|0,t=(t<<23|t>>>9)+e|0,s+=(t^e^a)+n[1]-1530992060|0,s=(s<<4|s>>>28)+t|0,a+=(s^t^e)+n[4]+1272893353|0,a=(a<<11|a>>>21)+s|0,e+=(a^s^t)+n[7]-155497632|0,e=(e<<16|e>>>16)+a|0,t+=(e^a^s)+n[10]-1094730640|0,t=(t<<23|t>>>9)+e|0,s+=(t^e^a)+n[13]+681279174|0,s=(s<<4|s>>>28)+t|0,a+=(s^t^e)+n[0]-358537222|0,a=(a<<11|a>>>21)+s|0,e+=(a^s^t)+n[3]-722521979|0,e=(e<<16|e>>>16)+a|0,t+=(e^a^s)+n[6]+76029189|0,t=(t<<23|t>>>9)+e|0,s+=(t^e^a)+n[9]-640364487|0,s=(s<<4|s>>>28)+t|0,a+=(s^t^e)+n[12]-421815835|0,a=(a<<11|a>>>21)+s|0,e+=(a^s^t)+n[15]+530742520|0,e=(e<<16|e>>>16)+a|0,t+=(e^a^s)+n[2]-995338651|0,t=(t<<23|t>>>9)+e|0,s+=(e^(t|~a))+n[0]-198630844|0,s=(s<<6|s>>>26)+t|0,a+=(t^(s|~e))+n[7]+1126891415|0,a=(a<<10|a>>>22)+s|0,e+=(s^(a|~t))+n[14]-1416354905|0,e=(e<<15|e>>>17)+a|0,t+=(a^(e|~s))+n[5]-57434055|0,t=(t<<21|t>>>11)+e|0,s+=(e^(t|~a))+n[12]+1700485571|0,s=(s<<6|s>>>26)+t|0,a+=(t^(s|~e))+n[3]-1894986606|0,a=(a<<10|a>>>22)+s|0,e+=(s^(a|~t))+n[10]-1051523|0,e=(e<<15|e>>>17)+a|0,t+=(a^(e|~s))+n[1]-2054922799|0,t=(t<<21|t>>>11)+e|0,s+=(e^(t|~a))+n[8]+1873313359|0,s=(s<<6|s>>>26)+t|0,a+=(t^(s|~e))+n[15]-30611744|0,a=(a<<10|a>>>22)+s|0,e+=(s^(a|~t))+n[6]-1560198380|0,e=(e<<15|e>>>17)+a|0,t+=(a^(e|~s))+n[13]+1309151649|0,t=(t<<21|t>>>11)+e|0,s+=(e^(t|~a))+n[4]-145523070|0,s=(s<<6|s>>>26)+t|0,a+=(t^(s|~e))+n[11]-1120210379|0,a=(a<<10|a>>>22)+s|0,e+=(s^(a|~t))+n[2]+718787259|0,e=(e<<15|e>>>17)+a|0,t+=(a^(e|~s))+n[9]-343485551|0,t=(t<<21|t>>>11)+e|0,i[0]=s+i[0]|0,i[1]=t+i[1]|0,i[2]=e+i[2]|0,i[3]=a+i[3]|0}_dataLength=0;_bufferLength=0;_state=new Int32Array(4);_buffer=new ArrayBuffer(68);_buffer8;_buffer32;constructor(){this._buffer8=new Uint8Array(this._buffer,0,68),this._buffer32=new Uint32Array(this._buffer,0,17),this.start()}start(){return this._dataLength=0,this._bufferLength=0,this._state.set(h.stateIdentity),this}appendStr(i){const n=this._buffer8,s=this._buffer32;let t=this._bufferLength,e,a;for(a=0;a>>6)+192,n[t++]=e&63|128;else if(e<55296||e>56319)n[t++]=(e>>>12)+224,n[t++]=e>>>6&63|128,n[t++]=e&63|128;else{if(e=(e-55296)*1024+(i.charCodeAt(++a)-56320)+65536,e>1114111)throw new Error("Unicode standard supports code points up to U+10FFFF");n[t++]=(e>>>18)+240,n[t++]=e>>>12&63|128,n[t++]=e>>>6&63|128,n[t++]=e&63|128}t>=64&&(this._dataLength+=64,h._md5cycle(this._state,s),t-=64,s[0]=s[16])}return this._bufferLength=t,this}appendAsciiStr(i){const n=this._buffer8,s=this._buffer32;let t=this._bufferLength,e,a=0;for(;;){for(e=Math.min(i.length-a,64-t);e--;)n[t++]=i.charCodeAt(a++);if(t<64)break;this._dataLength+=64,h._md5cycle(this._state,s),t=0}return this._bufferLength=t,this}appendByteArray(i){const n=this._buffer8,s=this._buffer32;let t=this._bufferLength,e,a=0;for(;;){for(e=Math.min(i.length-a,64-t);e--;)n[t++]=i[a++];if(t<64)break;this._dataLength+=64,h._md5cycle(this._state,s),t=0}return this._bufferLength=t,this}getState(){const i=this._state;return{buffer:String.fromCharCode.apply(null,Array.from(this._buffer8)),buflen:this._bufferLength,length:this._dataLength,state:[i[0],i[1],i[2],i[3]]}}setState(i){const n=i.buffer,s=i.state,t=this._state;let e;for(this._dataLength=i.length,this._bufferLength=i.buflen,t[0]=s[0],t[1]=s[1],t[2]=s[2],t[3]=s[3],e=0;e>2)+1;this._dataLength+=n;const a=this._dataLength*8;if(s[n]=128,s[n+1]=s[n+2]=s[n+3]=0,t.set(h.buffer32Identity.subarray(e),e),n>55&&(h._md5cycle(this._state,t),t.set(h.buffer32Identity)),a<=4294967295)t[14]=a;else{const d=a.toString(16).match(/(.*?)(.{0,8})$/);if(d===null)return i?ee:"";const b=parseInt(d[2],16),A=parseInt(d[1],16)||0;t[14]=b,t[15]=A}return h._md5cycle(this._state,t),i?this._state:h._hex(this._state)}}if(h.hashStr("hello")!=="5d41402abc4b2a76b9719d911017c592")throw new Error("Md5 self test failed.");function se(r){let i=r;r.match(/^([0-9a-f]{4}-?){8}$/)===null&&(i=h.hashStr(r)),i=i.replace(/[^0-9a-f]/g,"");let n=0;for(let s=0;s/g,d=/<\/?([^\s\/>]+)/;function b(u,o,m){u=u||"",o=o||[],m=m||"";let k=I(o,m);return M(u,k)}function A(u,o){u=u||[],o=o||"";let m=I(u,o);return function(k){return M(k||"",m)}}b.init_streaming_mode=A;function I(u,o){return u=O(u),{allowable_tags:u,tag_replacement:o,state:s,tag_buffer:"",depth:0,in_quote_char:""}}function M(u,o){if(typeof u!="string")throw new TypeError("'html' parameter must be a string");let m=o.allowable_tags,k=o.tag_replacement,v=o.state,l=o.tag_buffer,N=o.depth,y=o.in_quote_char,L="";for(let E=0,at=u.length;E":if(y)break;if(N){N--;break}y="",v=s,l+=">",m.has(g(l))?L+=l:L+=k,l="";break;case'"':case"'":f===y?y="":y=y||f,l+=f;break;case"-":l===""?(l.slice(-2)=="--"&&(v=s),l=""):l+=f)}return o.state=v,o.tag_buffer=l,o.depth=N,o.in_quote_char=y,L}function O(u){let o=new Set;if(typeof u=="string"){let m;for(;m=a.exec(u);)o.add(m[1])}else!n.nonNative&&typeof u[n.iterator]=="function"?o=new Set(u):typeof u.forEach=="function"&&u.forEach(o.add,o);return o}function g(u){let o=d.exec(u);return o?o[1].toLowerCase():null}r.exports?r.exports=b:i.striptags=b})(ae)})(W)),W.exports}ne();function ie(r,i){const n=(i?.size||64)<=64?64:512,s=i?.isGuest?"/guest":"",t=i?.isDarkTheme??T(document.body)?"/dark":"";return Z(`/avatar${s}/{user}/{size}${t}`,{user:r,size:n})}it(rt);const re={data(){return{hasStatus:!1,userStatus:{status:null,message:null,icon:null}}},methods:{async fetchUserStatus(r){if(!r)return;const i=Ct();if(!(!Object.hasOwn(i,"user_status")||!i.user_status.enabled)&&j())try{const{data:n}=await X.get(ot("apps/user_status/api/v1/statuses/{userId}",{userId:r}));this.setUserStatus(n.ocs.data)}catch(n){if(n.response.status===404&&n.response.data.ocs?.data?.length===0)return;H.error("Failed to fetch user status",{error:n})}},setUserStatus({status:r,message:i,icon:n}){this.userStatus.status=r||"",this.userStatus.message=i||"",this.userStatus.icon=n||"",this.hasStatus=!!r}}},st=nt("nextcloud").persist().build();function oe(r){const i=st.getItem("user-has-avatar."+r);return typeof i=="string"?!!i:null}function K(r,i){r&&st.setItem("user-has-avatar."+r,i)}const ue={name:"NcAvatar",directives:{ClickOutside:Yt},components:{IconDotsHorizontal:pt,NcActions:ft,NcButton:It,NcIconSvgWrapper:wt,NcLoadingIcon:Pt,NcUserStatusIcon:Dt},mixins:[re],props:{url:{type:String,default:void 0},iconClass:{type:String,default:void 0},user:{type:String,default:void 0},hideStatus:{type:Boolean,default:!1},verboseStatus:{type:Boolean,default:!1},preloadedUserStatus:{type:Object,default:void 0},isGuest:{type:Boolean,default:!1},displayName:{type:String,default:void 0},size:{type:Number,default:32},noPlaceholder:{type:Boolean,default:!1},disableTooltip:{type:Boolean,default:!1},disableMenu:{type:Boolean,default:!1},tooltipMessage:{type:String,default:null},isNoUser:{type:Boolean,default:!1},menuContainer:{type:[Boolean,String,Object,Element],default:"body"}},setup(){return{isDarkTheme:Xt()}},data(){return{avatarUrlLoaded:null,avatarSrcSetLoaded:null,userDoesNotExist:!1,isAvatarLoaded:!1,isMenuLoaded:!1,contactsMenuLoading:!1,contactsMenuData:{},contactsMenuActions:[],contactsMenuOpenState:!1}},computed:{avatarAriaLabel(){if(this.hasMenu)return this.canDisplayUserStatus||this.showUserStatusIconOnAvatar?B("Avatar of {displayName}, {status}",{displayName:this.displayName??this.user,status:Ot(this.userStatus.status)}):B("Avatar of {displayName}",{displayName:this.displayName??this.user})},canDisplayUserStatus(){return!this.hideStatus&&this.hasStatus&&["online","away","busy","dnd"].includes(this.userStatus.status)},showUserStatusIconOnAvatar(){return!this.hideStatus&&!this.verboseStatus&&this.hasStatus&&this.userStatus.status!=="dnd"&&this.userStatus.icon},userIdentifier(){return this.isDisplayNameDefined?this.displayName:this.isUserDefined?this.user:""},isUserDefined(){return typeof this.user<"u"},isDisplayNameDefined(){return typeof this.displayName<"u"},isUrlDefined(){return typeof this.url<"u"},hasMenu(){return this.disableMenu?!1:this.isMenuLoaded?this.menu.length>0:!(this.user===j()?.uid||this.userDoesNotExist||this.url)},showInitials(){return!this.noPlaceholder&&this.userDoesNotExist&&!(this.iconClass||this.$slots.icon)},avatarStyle(){return{"--avatar-size":this.size+"px",lineHeight:this.showInitials?this.size+"px":0,fontSize:Math.round(this.size*.45)+"px"}},initialsWrapperStyle(){const{r,g:i,b:n}=R(this.userIdentifier);return{backgroundColor:`rgba(${r}, ${i}, ${n}, 0.1)`}},initialsStyle(){const{r,g:i,b:n}=R(this.userIdentifier);return{color:`rgb(${r}, ${i}, ${n})`}},tooltip(){return this.disableTooltip?null:this.tooltipMessage?this.tooltipMessage:this.displayName},initials(){let r="?";if(this.showInitials){const i=this.userIdentifier.trim();if(i==="")return r;const n=i.match(/[\p{L}\p{N}\s]/gu);if(!n)return r;const s=n.join(""),t=s.lastIndexOf(" ");r=String.fromCodePoint(s.codePointAt(0)),t!==-1&&(r=r.concat(String.fromCodePoint(s.codePointAt(t+1))))}return r.toLocaleUpperCase()},menu(){const r=this.contactsMenuActions.map(n=>{const s=Mt(this.$router,n.hyperlink);return{ncActionComponent:s?$t:zt,ncActionComponentProps:s?{to:s,icon:n.icon}:{href:n.hyperlink,icon:n.icon},text:n.title}});for(const n of te(this.contactsMenuData))try{r.push({ncActionComponent:Bt,ncActionComponentProps:{onClick:()=>n.callback(this.contactsMenuData)},text:n.displayName(this.contactsMenuData),iconSvg:n.iconSvg(this.contactsMenuData)})}catch(s){H.error(`Failed to render ContactsMenu action ${n.id}`,{error:s,action:n})}function i(n){const s=document.createTextNode(n),t=document.createElement("p");return t.appendChild(s),t.innerHTML}if(!this.hideStatus&&(this.userStatus.icon||this.userStatus.message)){const n=` + ${i(this.userStatus.icon)} + `;return[{ncActionComponent:Qt,ncActionComponentProps:{},iconSvg:this.userStatus.icon?n:void 0,text:`${this.userStatus.message}`}].concat(r)}return r}},watch:{url(){this.userDoesNotExist=!1,this.loadAvatarUrl()},user(){this.userDoesNotExist=!1,this.isMenuLoaded=!1,this.loadAvatarUrl()}},mounted(){this.loadAvatarUrl(),z("settings:avatar:updated",this.loadAvatarUrl),z("settings:display-name:updated",this.loadAvatarUrl),!this.hideStatus&&this.user&&!this.isNoUser?(this.preloadedUserStatus?this.setUserStatus(this.preloadedUserStatus):this.fetchUserStatus(this.user),z("user_status:status.updated",this.handleUserStatusUpdated)):!this.hideStatus&&this.preloadedUserStatus&&this.setUserStatus(this.preloadedUserStatus)},beforeUnmount(){$("settings:avatar:updated",this.loadAvatarUrl),$("settings:display-name:updated",this.loadAvatarUrl),$("user_status:status.updated",this.handleUserStatusUpdated)},methods:{t:B,handleUserStatusUpdated(r){this.user===r.userId&&(this.userStatus={status:r.status,icon:r.icon,message:r.message},this.hasStatus=r.status!==null)},async toggleMenu(r){r.type==="keydown"&&r.key!=="Enter"||(this.contactsMenuOpenState||await this.fetchContactsMenu(),this.contactsMenuOpenState=!this.contactsMenuOpenState)},closeMenu(){this.contactsMenuOpenState=!1},async fetchContactsMenu(){this.contactsMenuLoading=!0;try{const r=encodeURIComponent(this.user),{data:i}=await X.post(Z("contactsmenu/findOne"),`shareType=0&shareWith=${r}`);this.contactsMenuData=i,this.contactsMenuActions=i.topAction?[i.topAction].concat(i.actions):i.actions}catch{this.contactsMenuOpenState=!1}this.contactsMenuLoading=!1,this.isMenuLoaded=!0},loadAvatarUrl(){if(this.isAvatarLoaded=!1,!this.isUrlDefined&&(!this.isUserDefined||this.isNoUser||this.iconClass||this.$slots.icon)){this.isAvatarLoaded=!0,this.userDoesNotExist=!0;return}if(this.isUrlDefined){this.updateImageIfValid(this.url);return}if(this.size<=64){const r=this.avatarUrlGenerator(this.user,64),i=[r+" 1x",this.avatarUrlGenerator(this.user,512)+" 8x"].join(", ");this.updateImageIfValid(r,i)}else{const r=this.avatarUrlGenerator(this.user,512);this.updateImageIfValid(r)}},avatarUrlGenerator(r,i){let n=ie(r,{size:i,isDarkTheme:this.isDarkTheme,isGuest:this.isGuest});return r===j()?.uid&&typeof oc_userconfig<"u"&&(n+="?v="+window.oc_userconfig.avatar.version),n},updateImageIfValid(r,i=null){const n=oe(this.user);if(this.isUserDefined&&typeof n=="boolean"){this.isAvatarLoaded=!0,this.avatarUrlLoaded=r,i&&(this.avatarSrcSetLoaded=i),n===!1&&(this.userDoesNotExist=!0);return}const s=new Image;s.onload=()=>{this.avatarUrlLoaded=r,i&&(this.avatarSrcSetLoaded=i),this.isAvatarLoaded=!0,K(this.user,!0)},s.onerror=t=>{H.debug("[NcAvatar] Invalid avatar url",{error:t,url:r}),this.avatarUrlLoaded=null,this.avatarSrcSetLoaded=null,this.userDoesNotExist=!0,this.isAvatarLoaded=!1,K(this.user,!1)},i&&(s.srcset=i),s.src=r}}},ce=["title"],le=["src","srcset"],he={key:2,class:"avatardiv__user-status avatardiv__user-status--icon"};function de(r,i,n,s,t,e){const a=_("NcLoadingIcon"),d=_("IconDotsHorizontal"),b=_("NcButton"),A=_("NcIconSvgWrapper"),I=_("NcActions"),M=_("NcUserStatusIcon"),O=St("click-outside");return _t((c(),p("span",{class:G(["avatardiv popovermenu-wrapper",{"avatardiv--unknown":t.userDoesNotExist,"avatardiv--with-menu":e.hasMenu,"avatardiv--with-menu-loading":t.contactsMenuLoading}]),style:D(e.avatarStyle),title:e.tooltip},[tt(r.$slots,"icon",{},()=>[n.iconClass?(c(),p("span",{key:0,class:G([n.iconClass,"avatar-class-icon"])},null,2)):t.isAvatarLoaded&&!t.userDoesNotExist?(c(),p("img",{key:1,src:t.avatarUrlLoaded,srcset:t.avatarSrcSetLoaded,alt:""},null,8,le)):U("",!0)],!0),e.hasMenu&&e.menu.length===0?(c(),x(b,{key:0,"aria-label":e.avatarAriaLabel,class:"action-item action-item__menutoggle",variant:"tertiary-no-background",onClick:e.toggleMenu},{icon:w(()=>[t.contactsMenuLoading?(c(),x(a,{key:0})):(c(),x(d,{key:1,size:20}))]),_:1},8,["aria-label","onClick"])):e.hasMenu?(c(),x(I,{key:1,open:t.contactsMenuOpenState,"onUpdate:open":i[0]||(i[0]=g=>t.contactsMenuOpenState=g),"aria-label":e.avatarAriaLabel,container:n.menuContainer,"force-menu":"","manual-open":"",variant:"tertiary-no-background",onClick:e.toggleMenu},q({default:w(()=>[(c(!0),p(xt,null,Ut(e.menu,(g,u)=>(c(),x(At(g.ncActionComponent),kt({key:u},{ref_for:!0},g.ncActionComponentProps),q({default:w(()=>[Lt(" "+S(g.text),1)]),_:2},[g.iconSvg?{name:"icon",fn:w(()=>[Q(A,{svg:g.iconSvg},null,8,["svg"])]),key:"0"}:void 0]),1040))),128))]),_:2},[t.contactsMenuLoading?{name:"icon",fn:w(()=>[Q(a)]),key:"0"}:void 0]),1032,["open","aria-label","container","onClick"])):U("",!0),e.showUserStatusIconOnAvatar?(c(),p("span",he,S(r.userStatus.icon),1)):e.canDisplayUserStatus?(c(),x(M,{key:3,class:"avatardiv__user-status",status:r.userStatus.status,"aria-hidden":String(e.hasMenu)},null,8,["status","aria-hidden"])):U("",!0),e.showInitials?(c(),p("span",{key:4,style:D(e.initialsWrapperStyle),class:"avatardiv__initials-wrapper"},[C("span",{style:D(e.initialsStyle),class:"avatardiv__initials"},S(e.initials),5)],4)):U("",!0)],14,ce)),[[O,e.closeMenu]])}const ke=Y(ue,[["render",de],["__scopeId","data-v-d7dc2a1f"]]);export{ke as N,re as u}; +//# sourceMappingURL=NcAvatar-DmUGApWA-xbPVEdSn.chunk.mjs.map diff --git a/dist/NcAvatar-DmUGApWA-xbPVEdSn.chunk.mjs.license b/dist/NcAvatar-DmUGApWA-xbPVEdSn.chunk.mjs.license new file mode 100644 index 0000000000000..814c91d4a3821 --- /dev/null +++ b/dist/NcAvatar-DmUGApWA-xbPVEdSn.chunk.mjs.license @@ -0,0 +1,20 @@ +SPDX-License-Identifier: AGPL-3.0-or-later +SPDX-License-Identifier: MIT +SPDX-FileCopyrightText: Eric Norris (https://github.com/ericnorris) +SPDX-FileCopyrightText: Jacob Clevenger +SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors +SPDX-FileCopyrightText: ts-md5 developers + +This file is generated from multiple sources. Included packages: +- @nextcloud/vue + - version: 9.3.1 + - license: AGPL-3.0-or-later +- @vueuse/components + - version: 14.1.0 + - license: MIT +- striptags + - version: 3.2.0 + - license: MIT +- ts-md5 + - version: 2.0.1 + - license: MIT diff --git a/dist/NcAvatar-DmUGApWA-xbPVEdSn.chunk.mjs.map b/dist/NcAvatar-DmUGApWA-xbPVEdSn.chunk.mjs.map new file mode 100644 index 0000000000000..ad34ef312bd23 --- /dev/null +++ b/dist/NcAvatar-DmUGApWA-xbPVEdSn.chunk.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"NcAvatar-DmUGApWA-xbPVEdSn.chunk.mjs","sources":["../node_modules/@nextcloud/vue/dist/chunks/NcActionText-uKvLcEY6.mjs","../node_modules/@nextcloud/vue/dist/chunks/constants-Bls5liKo.mjs","../node_modules/@nextcloud/vue/dist/composables/useIsDarkTheme/index.mjs","../node_modules/@vueuse/components/dist/index.js","../node_modules/@nextcloud/vue/dist/functions/contactsMenu/index.mjs","../node_modules/ts-md5/dist/index.es.js","../node_modules/@nextcloud/vue/dist/functions/usernameToColor/index.mjs","../node_modules/striptags/src/striptags.js","../node_modules/@nextcloud/vue/dist/chunks/NcMentionBubble.vue_vue_type_style_index_0_scoped_45238efd_lang-D6LzDiYf.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAvatar-DmUGApWA.mjs"],"sourcesContent":["import '../assets/NcActionText-D9InmayH.css';\nimport { A as ActionTextMixin } from \"./actionText-DYzDdbVe.mjs\";\nimport { a as NC_ACTIONS_IS_SEMANTIC_MENU } from \"./useNcActions-CiGWxAJE.mjs\";\nimport { createElementBlock, openBlock, createElementVNode, renderSlot, createCommentVNode, normalizeStyle, normalizeClass, toDisplayString } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcActionText\",\n mixins: [ActionTextMixin],\n inject: {\n isInSemanticMenu: {\n from: NC_ACTIONS_IS_SEMANTIC_MENU,\n default: false\n }\n }\n};\nconst _hoisted_1 = [\"role\"];\nconst _hoisted_2 = {\n key: 0,\n class: \"action-text__longtext-wrapper\"\n};\nconst _hoisted_3 = { class: \"action-text__name\" };\nconst _hoisted_4 = [\"textContent\"];\nconst _hoisted_5 = [\"textContent\"];\nconst _hoisted_6 = {\n key: 2,\n class: \"action-text__text\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"li\", {\n class: \"action\",\n role: $options.isInSemanticMenu && \"presentation\"\n }, [\n createElementVNode(\"span\", {\n class: \"action-text\",\n onClick: _cache[0] || (_cache[0] = (...args) => _ctx.onClick && _ctx.onClick(...args))\n }, [\n renderSlot(_ctx.$slots, \"icon\", {}, () => [\n _ctx.icon !== \"\" ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n \"aria-hidden\": \"true\",\n class: normalizeClass([\"action-text__icon\", [_ctx.isIconUrl ? \"action-text__icon--url\" : _ctx.icon]]),\n style: normalizeStyle({ backgroundImage: _ctx.isIconUrl ? `url(${_ctx.icon})` : null })\n }, null, 6)) : createCommentVNode(\"\", true)\n ], true),\n _ctx.name ? (openBlock(), createElementBlock(\"span\", _hoisted_2, [\n createElementVNode(\"strong\", _hoisted_3, toDisplayString(_ctx.name), 1),\n createElementVNode(\"span\", {\n class: \"action-text__longtext\",\n textContent: toDisplayString(_ctx.text)\n }, null, 8, _hoisted_4)\n ])) : _ctx.isLongText ? (openBlock(), createElementBlock(\"span\", {\n key: 1,\n class: \"action-text__longtext\",\n textContent: toDisplayString(_ctx.text)\n }, null, 8, _hoisted_5)) : (openBlock(), createElementBlock(\"span\", _hoisted_6, toDisplayString(_ctx.text), 1)),\n createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_1);\n}\nconst NcActionText = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-fa684b48\"]]);\nexport {\n NcActionText as N\n};\n//# sourceMappingURL=NcActionText-uKvLcEY6.mjs.map\n","/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst INJECTION_KEY_THEME = Symbol.for(\"nc:theme:enforced\");\nexport {\n INJECTION_KEY_THEME as I\n};\n//# sourceMappingURL=constants-Bls5liKo.mjs.map\n","import { createSharedComposable, usePreferredDark, useMutationObserver } from \"@vueuse/core\";\nimport { computed, toValue, ref, watch, readonly, inject } from \"vue\";\nimport { checkIfDarkTheme } from \"../../functions/isDarkTheme/index.mjs\";\nimport { I as INJECTION_KEY_THEME } from \"../../chunks/constants-Bls5liKo.mjs\";\n/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction useIsDarkThemeElement(el) {\n const element = computed(() => toValue(el) ?? document.body);\n const isDarkTheme = ref(checkIfDarkTheme(element.value));\n const isDarkSystemTheme = usePreferredDark();\n function updateIsDarkTheme() {\n isDarkTheme.value = checkIfDarkTheme(element.value);\n }\n useMutationObserver(element, updateIsDarkTheme, { attributes: true });\n watch(element, updateIsDarkTheme);\n watch(isDarkSystemTheme, updateIsDarkTheme, { immediate: true });\n return readonly(isDarkTheme);\n}\nconst useInternalIsDarkTheme = createSharedComposable(() => useIsDarkThemeElement());\nfunction useIsDarkTheme() {\n const isDarkTheme = useInternalIsDarkTheme();\n const enforcedTheme = inject(INJECTION_KEY_THEME, void 0);\n return computed(() => {\n if (enforcedTheme?.value) {\n return enforcedTheme.value === \"dark\";\n }\n return isDarkTheme.value;\n });\n}\nexport {\n useIsDarkTheme,\n useIsDarkThemeElement\n};\n//# sourceMappingURL=index.mjs.map\n","import { defaultWindow, isClient, onClickOutside, onKeyStroke, onLongPress, useActiveElement, useBattery, useBrowserLocation, useClipboard, useColorMode, useDark, useDeviceMotion, useDeviceOrientation, useDevicePixelRatio, useDevicesList, useDocumentVisibility, useDraggable, useElementBounding, useElementHover, useElementSize, useElementVisibility, useEyeDropper, useFullscreen, useGeolocation, useIdle, useImage, useInfiniteScroll, useIntersectionObserver, useMouse, useMouseInElement, useMousePressed, useNetwork, useNow, useObjectUrl, useOffsetPagination, useOnline, usePageLeave, usePointer, usePointerLock, usePreferredColorScheme, usePreferredContrast, usePreferredDark, usePreferredLanguages, usePreferredReducedMotion, usePreferredReducedTransparency, useResizeObserver, useScreenSafeArea, useScroll, useScrollLock, useStorage, useTimeAgo, useTimestamp, useVirtualList, useWindowFocus, useWindowSize } from \"@vueuse/core\";\nimport { computed, defineComponent, h, reactive, shallowRef, toRefs, toValue, watch } from \"vue\";\nimport { reactiveOmit, toRefs as toRefs$1, useToggle } from \"@vueuse/shared\";\n\n//#region ../core/onClickOutside/component.ts\nconst OnClickOutside = /* @__PURE__ */ defineComponent((props, { slots, emit }) => {\n\tconst target = shallowRef();\n\tonClickOutside(target, (e) => {\n\t\temit(\"trigger\", e);\n\t}, props.options);\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default());\n\t};\n}, {\n\tname: \"OnClickOutside\",\n\tprops: [\"as\", \"options\"],\n\temits: [\"trigger\"]\n});\n\n//#endregion\n//#region ../core/onClickOutside/directive.ts\nconst stopClickOutsideMap = /* @__PURE__ */ new WeakMap();\nconst vOnClickOutside = {\n\tmounted(el, binding) {\n\t\tconst capture = !binding.modifiers.bubble;\n\t\tlet stop;\n\t\tif (typeof binding.value === \"function\") stop = onClickOutside(el, binding.value, { capture });\n\t\telse {\n\t\t\tconst [handler, options] = binding.value;\n\t\t\tstop = onClickOutside(el, handler, Object.assign({ capture }, options));\n\t\t}\n\t\tstopClickOutsideMap.set(el, stop);\n\t},\n\tunmounted(el) {\n\t\tconst stop = stopClickOutsideMap.get(el);\n\t\tif (stop && typeof stop === \"function\") stop();\n\t\telse stop === null || stop === void 0 || stop.stop();\n\t\tstopClickOutsideMap.delete(el);\n\t}\n};\n/** @deprecated use `vOnClickOutside` instead */\nconst VOnClickOutside = vOnClickOutside;\n\n//#endregion\n//#region ../core/onKeyStroke/directive.ts\nconst vOnKeyStroke = { mounted(el, binding) {\n\tvar _binding$arg$split, _binding$arg;\n\tconst keys = (_binding$arg$split = (_binding$arg = binding.arg) === null || _binding$arg === void 0 ? void 0 : _binding$arg.split(\",\")) !== null && _binding$arg$split !== void 0 ? _binding$arg$split : true;\n\tif (typeof binding.value === \"function\") onKeyStroke(keys, binding.value, { target: el });\n\telse {\n\t\tconst [handler, options] = binding.value;\n\t\tonKeyStroke(keys, handler, {\n\t\t\ttarget: el,\n\t\t\t...options\n\t\t});\n\t}\n} };\n\n//#endregion\n//#region ../core/onLongPress/component.ts\nconst OnLongPress = /* @__PURE__ */ defineComponent((props, { slots, emit }) => {\n\tconst target = shallowRef();\n\tconst data = onLongPress(target, (e) => {\n\t\temit(\"trigger\", e);\n\t}, props.options);\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"OnLongPress\",\n\tprops: [\"as\", \"options\"],\n\temits: [\"trigger\"]\n});\n\n//#endregion\n//#region ../core/onLongPress/directive.ts\nconst vOnLongPress = { mounted(el, binding) {\n\tif (typeof binding.value === \"function\") onLongPress(el, binding.value, { modifiers: binding.modifiers });\n\telse onLongPress(el, ...binding.value);\n} };\n/** @deprecated use `vOnLongPress` instead */\nconst VOnLongPress = vOnLongPress;\n\n//#endregion\n//#region ../core/useActiveElement/component.ts\nconst UseActiveElement = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ element: useActiveElement(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseActiveElement\",\n\tprops: [\n\t\t\"deep\",\n\t\t\"triggerOnRemoval\",\n\t\t\"window\",\n\t\t\"document\"\n\t]\n});\n\n//#endregion\n//#region ../core/useBattery/component.ts\nconst UseBattery = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useBattery(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseBattery\",\n\tprops: [\"navigator\"]\n});\n\n//#endregion\n//#region ../core/useBrowserLocation/component.ts\nconst UseBrowserLocation = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useBrowserLocation(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseBrowserLocation\",\n\tprops: [\"window\"]\n});\n\n//#endregion\n//#region ../core/useClipboard/component.ts\nconst UseClipboard = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useClipboard(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseClipboard\",\n\tprops: [\n\t\t\"source\",\n\t\t\"read\",\n\t\t\"navigator\",\n\t\t\"copiedDuring\",\n\t\t\"legacy\"\n\t]\n});\n\n//#endregion\n//#region ../core/useColorMode/component.ts\nconst UseColorMode = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst mode = useColorMode(props);\n\tconst data = reactive({\n\t\tmode,\n\t\tsystem: mode.system,\n\t\tstore: mode.store\n\t});\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseColorMode\",\n\tprops: [\n\t\t\"attribute\",\n\t\t\"deep\",\n\t\t\"disableTransition\",\n\t\t\"emitAuto\",\n\t\t\"eventFilter\",\n\t\t\"flush\",\n\t\t\"initOnMounted\",\n\t\t\"initialValue\",\n\t\t\"listenToStorageChanges\",\n\t\t\"mergeDefaults\",\n\t\t\"modes\",\n\t\t\"onChanged\",\n\t\t\"onError\",\n\t\t\"selector\",\n\t\t\"serializer\",\n\t\t\"shallow\",\n\t\t\"storage\",\n\t\t\"storageKey\",\n\t\t\"storageRef\",\n\t\t\"window\",\n\t\t\"writeDefaults\"\n\t]\n});\n\n//#endregion\n//#region ../core/useDark/component.ts\nconst UseDark = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst isDark = useDark(props);\n\tconst data = reactive({\n\t\tisDark,\n\t\ttoggleDark: useToggle(isDark)\n\t});\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseDark\",\n\tprops: [\n\t\t\"attribute\",\n\t\t\"deep\",\n\t\t\"disableTransition\",\n\t\t\"emitAuto\",\n\t\t\"eventFilter\",\n\t\t\"flush\",\n\t\t\"initOnMounted\",\n\t\t\"initialValue\",\n\t\t\"listenToStorageChanges\",\n\t\t\"mergeDefaults\",\n\t\t\"onChanged\",\n\t\t\"onError\",\n\t\t\"selector\",\n\t\t\"serializer\",\n\t\t\"shallow\",\n\t\t\"storage\",\n\t\t\"storageKey\",\n\t\t\"storageRef\",\n\t\t\"valueDark\",\n\t\t\"valueLight\",\n\t\t\"window\",\n\t\t\"writeDefaults\"\n\t]\n});\n\n//#endregion\n//#region ../core/useDeviceMotion/component.ts\nconst UseDeviceMotion = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = useDeviceMotion(props);\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseDeviceMotion\",\n\tprops: [\n\t\t\"eventFilter\",\n\t\t\"requestPermissions\",\n\t\t\"window\"\n\t]\n});\n\n//#endregion\n//#region ../core/useDeviceOrientation/component.ts\nconst UseDeviceOrientation = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useDeviceOrientation(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseDeviceOrientation\",\n\tprops: [\"window\"]\n});\n\n//#endregion\n//#region ../core/useDevicePixelRatio/component.ts\nconst UseDevicePixelRatio = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useDevicePixelRatio(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseDevicePixelRatio\",\n\tprops: [\"window\"]\n});\n\n//#endregion\n//#region ../core/useDevicesList/component.ts\nconst UseDevicesList = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useDevicesList(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseDevicesList\",\n\tprops: [\n\t\t\"constraints\",\n\t\t\"navigator\",\n\t\t\"onUpdated\",\n\t\t\"requestPermissions\"\n\t]\n});\n\n//#endregion\n//#region ../core/useDocumentVisibility/component.ts\nconst UseDocumentVisibility = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ visibility: useDocumentVisibility(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseDocumentVisibility\",\n\tprops: [\"document\"]\n});\n\n//#endregion\n//#region ../core/useDraggable/component.ts\nconst UseDraggable = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst target = shallowRef();\n\tconst handle = computed(() => {\n\t\tvar _toValue;\n\t\treturn (_toValue = toValue(props.handle)) !== null && _toValue !== void 0 ? _toValue : target.value;\n\t});\n\tconst containerElement = computed(() => {\n\t\tvar _ref;\n\t\treturn (_ref = props.containerElement) !== null && _ref !== void 0 ? _ref : void 0;\n\t});\n\tconst disabled = computed(() => !!props.disabled);\n\tconst storageValue = props.storageKey && useStorage(props.storageKey, toValue(props.initialValue) || {\n\t\tx: 0,\n\t\ty: 0\n\t}, isClient ? props.storageType === \"session\" ? sessionStorage : localStorage : void 0);\n\tconst initialValue = storageValue || props.initialValue || {\n\t\tx: 0,\n\t\ty: 0\n\t};\n\tconst onEnd = (position, event) => {\n\t\tvar _props$onEnd;\n\t\t(_props$onEnd = props.onEnd) === null || _props$onEnd === void 0 || _props$onEnd.call(props, position, event);\n\t\tif (!storageValue) return;\n\t\tstorageValue.value.x = position.x;\n\t\tstorageValue.value.y = position.y;\n\t};\n\tconst data = reactive(useDraggable(target, {\n\t\t...props,\n\t\thandle,\n\t\tinitialValue,\n\t\tonEnd,\n\t\tdisabled,\n\t\tcontainerElement\n\t}));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", {\n\t\t\tref: target,\n\t\t\tstyle: `touch-action:none;${data.style}`\n\t\t}, slots.default(data));\n\t};\n}, {\n\tname: \"UseDraggable\",\n\tprops: [\n\t\t\"storageKey\",\n\t\t\"storageType\",\n\t\t\"initialValue\",\n\t\t\"exact\",\n\t\t\"preventDefault\",\n\t\t\"stopPropagation\",\n\t\t\"pointerTypes\",\n\t\t\"as\",\n\t\t\"handle\",\n\t\t\"axis\",\n\t\t\"onStart\",\n\t\t\"onMove\",\n\t\t\"onEnd\",\n\t\t\"disabled\",\n\t\t\"buttons\",\n\t\t\"containerElement\",\n\t\t\"capture\",\n\t\t\"draggingElement\"\n\t]\n});\n\n//#endregion\n//#region ../core/useElementBounding/component.ts\nconst UseElementBounding = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst target = shallowRef();\n\tconst data = reactive(useElementBounding(target, props));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"UseElementBounding\",\n\tprops: [\n\t\t\"as\",\n\t\t\"immediate\",\n\t\t\"reset\",\n\t\t\"updateTiming\",\n\t\t\"windowResize\",\n\t\t\"windowScroll\"\n\t]\n});\n\n//#endregion\n//#region ../core/useElementBounding/directive.ts\nconst vElementBounding = { mounted(el, binding) {\n\tconst [handler, options] = typeof binding.value === \"function\" ? [binding.value, {}] : binding.value;\n\tconst { height, bottom, left, right, top, width, x, y } = useElementBounding(el, options);\n\twatch([\n\t\theight,\n\t\tbottom,\n\t\tleft,\n\t\tright,\n\t\ttop,\n\t\twidth,\n\t\tx,\n\t\ty\n\t], () => handler({\n\t\theight,\n\t\tbottom,\n\t\tleft,\n\t\tright,\n\t\ttop,\n\t\twidth,\n\t\tx,\n\t\ty\n\t}));\n} };\n\n//#endregion\n//#region ../core/useElementHover/directive.ts\nconst vElementHover = { mounted(el, binding) {\n\tconst value = binding.value;\n\tif (typeof value === \"function\") watch(useElementHover(el), (v) => value(v));\n\telse {\n\t\tconst [handler, options] = value;\n\t\twatch(useElementHover(el, options), (v) => handler(v));\n\t}\n} };\n\n//#endregion\n//#region ../core/useElementSize/component.ts\nconst UseElementSize = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tvar _toValue, _toValue2;\n\tconst target = shallowRef();\n\tconst { width, height } = toRefs(props);\n\tconst data = reactive(useElementSize(target, {\n\t\twidth: (_toValue = toValue(width)) !== null && _toValue !== void 0 ? _toValue : 0,\n\t\theight: (_toValue2 = toValue(height)) !== null && _toValue2 !== void 0 ? _toValue2 : 0\n\t}, {\n\t\tbox: props.box,\n\t\twindow: props.window\n\t}));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"UseElementSize\",\n\tprops: [\n\t\t\"as\",\n\t\t\"box\",\n\t\t\"height\",\n\t\t\"width\",\n\t\t\"window\"\n\t]\n});\n\n//#endregion\n//#region ../core/useElementSize/directive.ts\nconst vElementSize = { mounted(el, binding) {\n\tvar _binding$value;\n\tconst handler = typeof binding.value === \"function\" ? binding.value : (_binding$value = binding.value) === null || _binding$value === void 0 ? void 0 : _binding$value[0];\n\tconst { width, height } = useElementSize(el, ...typeof binding.value === \"function\" ? [] : binding.value.slice(1));\n\twatch([width, height], ([width$1, height$1]) => handler({\n\t\twidth: width$1,\n\t\theight: height$1\n\t}));\n} };\n\n//#endregion\n//#region ../core/useElementVisibility/component.ts\nconst UseElementVisibility = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst target = shallowRef();\n\tconst data = reactive({ isVisible: useElementVisibility(target, props) });\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"UseElementVisibility\",\n\tprops: [\n\t\t\"as\",\n\t\t\"once\",\n\t\t\"rootMargin\",\n\t\t\"scrollTarget\",\n\t\t\"threshold\",\n\t\t\"window\"\n\t]\n});\n\n//#endregion\n//#region ../core/useElementVisibility/directive.ts\nconst vElementVisibility = { mounted(el, binding) {\n\tif (typeof binding.value === \"function\") {\n\t\tconst handler = binding.value;\n\t\twatch(useElementVisibility(el), (v) => handler(v), { immediate: true });\n\t} else {\n\t\tconst [handler, options] = binding.value;\n\t\twatch(useElementVisibility(el, options), (v) => handler(v), { immediate: true });\n\t}\n} };\n\n//#endregion\n//#region ../core/useEyeDropper/component.ts\nconst UseEyeDropper = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useEyeDropper(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseEyeDropper\",\n\tprops: [\"initialValue\"]\n});\n\n//#endregion\n//#region ../core/useFullscreen/component.ts\nconst UseFullscreen = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst target = shallowRef();\n\tconst data = reactive(useFullscreen(target, props));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"UseFullscreen\",\n\tprops: [\n\t\t\"as\",\n\t\t\"autoExit\",\n\t\t\"document\"\n\t]\n});\n\n//#endregion\n//#region ../core/useGeolocation/component.ts\nconst UseGeolocation = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useGeolocation(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseGeolocation\",\n\tprops: [\n\t\t\"enableHighAccuracy\",\n\t\t\"immediate\",\n\t\t\"maximumAge\",\n\t\t\"navigator\",\n\t\t\"timeout\"\n\t]\n});\n\n//#endregion\n//#region ../core/useIdle/component.ts\nconst UseIdle = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useIdle(props.timeout, props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseIdle\",\n\tprops: [\n\t\t\"eventFilter\",\n\t\t\"events\",\n\t\t\"initialState\",\n\t\t\"listenForVisibilityChange\",\n\t\t\"timeout\",\n\t\t\"window\"\n\t]\n});\n\n//#endregion\n//#region ../core/useImage/component.ts\nconst UseImage = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useImage(props));\n\treturn () => {\n\t\tif (data.isLoading && slots.loading) return slots.loading(data);\n\t\telse if (data.error && slots.error) return slots.error(data.error);\n\t\tif (slots.default) return slots.default(data);\n\t\treturn h(props.as || \"img\", props);\n\t};\n}, {\n\tname: \"UseImage\",\n\tprops: [\n\t\t\"alt\",\n\t\t\"as\",\n\t\t\"class\",\n\t\t\"crossorigin\",\n\t\t\"decoding\",\n\t\t\"fetchPriority\",\n\t\t\"height\",\n\t\t\"ismap\",\n\t\t\"loading\",\n\t\t\"referrerPolicy\",\n\t\t\"sizes\",\n\t\t\"src\",\n\t\t\"srcset\",\n\t\t\"usemap\",\n\t\t\"width\"\n\t]\n});\n\n//#endregion\n//#region ../core/useInfiniteScroll/directive.ts\nconst vInfiniteScroll = { mounted(el, binding) {\n\tif (typeof binding.value === \"function\") useInfiniteScroll(el, binding.value);\n\telse useInfiniteScroll(el, ...binding.value);\n} };\n\n//#endregion\n//#region ../core/useIntersectionObserver/directive.ts\nconst vIntersectionObserver = { mounted(el, binding) {\n\tif (typeof binding.value === \"function\") useIntersectionObserver(el, binding.value);\n\telse useIntersectionObserver(el, ...binding.value);\n} };\n\n//#endregion\n//#region ../core/useMouse/component.ts\nconst UseMouse = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useMouse(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseMouse\",\n\tprops: [\n\t\t\"eventFilter\",\n\t\t\"initialValue\",\n\t\t\"resetOnTouchEnds\",\n\t\t\"scroll\",\n\t\t\"target\",\n\t\t\"touch\",\n\t\t\"type\",\n\t\t\"window\"\n\t]\n});\n\n//#endregion\n//#region ../core/useMouseInElement/component.ts\nconst UseMouseInElement = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst target = shallowRef();\n\tconst data = reactive(useMouseInElement(target, props));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"UseMouseInElement\",\n\tprops: [\n\t\t\"as\",\n\t\t\"eventFilter\",\n\t\t\"handleOutside\",\n\t\t\"initialValue\",\n\t\t\"resetOnTouchEnds\",\n\t\t\"scroll\",\n\t\t\"target\",\n\t\t\"touch\",\n\t\t\"type\",\n\t\t\"window\",\n\t\t\"windowResize\",\n\t\t\"windowScroll\"\n\t]\n});\n\n//#endregion\n//#region ../core/useMouseInElement/directive.ts\nconst vMouseInElement = { mounted(el, binding) {\n\tconst [handler, options] = typeof binding.value === \"function\" ? [binding.value, {}] : binding.value;\n\twatch(reactiveOmit(reactive(useMouseInElement(el, options)), \"stop\"), (val) => handler(val));\n} };\n\n//#endregion\n//#region ../core/useMousePressed/component.ts\nconst UseMousePressed = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst target = shallowRef();\n\tconst data = reactive(useMousePressed({\n\t\t...props,\n\t\ttarget\n\t}));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"UseMousePressed\",\n\tprops: [\n\t\t\"as\",\n\t\t\"capture\",\n\t\t\"drag\",\n\t\t\"initialValue\",\n\t\t\"onPressed\",\n\t\t\"onReleased\",\n\t\t\"touch\",\n\t\t\"window\"\n\t]\n});\n\n//#endregion\n//#region ../core/useNetwork/component.ts\nconst UseNetwork = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useNetwork(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseNetwork\",\n\tprops: [\"window\"]\n});\n\n//#endregion\n//#region ../core/useNow/component.ts\nconst UseNow = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useNow({\n\t\t...props,\n\t\tcontrols: true\n\t}));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseNow\",\n\tprops: [\"immediate\", \"interval\"]\n});\n\n//#endregion\n//#region ../core/useObjectUrl/component.ts\nconst UseObjectUrl = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst { object } = toRefs$1(props);\n\tconst url = useObjectUrl(object);\n\treturn () => {\n\t\tif (slots.default && url.value) return slots.default(url.value);\n\t};\n}, {\n\tname: \"UseObjectUrl\",\n\tprops: [\"object\"]\n});\n\n//#endregion\n//#region ../core/useOffsetPagination/component.ts\nconst UseOffsetPagination = /* @__PURE__ */ defineComponent((props, { slots, emit }) => {\n\tconst data = reactive(useOffsetPagination({\n\t\t...props,\n\t\ttotal: toValue(props.total) || void 0,\n\t\tonPageChange(...args) {\n\t\t\tvar _props$onPageChange;\n\t\t\t(_props$onPageChange = props.onPageChange) === null || _props$onPageChange === void 0 || _props$onPageChange.call(props, ...args);\n\t\t\temit(\"page-change\", ...args);\n\t\t},\n\t\tonPageSizeChange(...args) {\n\t\t\tvar _props$onPageSizeChan;\n\t\t\t(_props$onPageSizeChan = props.onPageSizeChange) === null || _props$onPageSizeChan === void 0 || _props$onPageSizeChan.call(props, ...args);\n\t\t\temit(\"page-size-change\", ...args);\n\t\t},\n\t\tonPageCountChange(...args) {\n\t\t\tvar _props$onPageCountCha;\n\t\t\t(_props$onPageCountCha = props.onPageCountChange) === null || _props$onPageCountCha === void 0 || _props$onPageCountCha.call(props, ...args);\n\t\t\temit(\"page-count-change\", ...args);\n\t\t}\n\t}));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseOffsetPagination\",\n\tprops: [\n\t\t\"onPageChange\",\n\t\t\"onPageCountChange\",\n\t\t\"onPageSizeChange\",\n\t\t\"page\",\n\t\t\"pageSize\",\n\t\t\"total\"\n\t]\n});\n\n//#endregion\n//#region ../core/useOnline/component.ts\nconst UseOnline = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ isOnline: useOnline(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseOnline\",\n\tprops: [\"window\"]\n});\n\n//#endregion\n//#region ../core/usePageLeave/component.ts\nconst UsePageLeave = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ isLeft: usePageLeave(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UsePageLeave\",\n\tprops: [\"window\"]\n});\n\n//#endregion\n//#region ../core/usePointer/component.ts\nconst UsePointer = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst el = shallowRef(null);\n\tconst data = reactive(usePointer({\n\t\t...props,\n\t\ttarget: props.target === \"self\" ? el : defaultWindow\n\t}));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UsePointer\",\n\tprops: [\n\t\t\"initialValue\",\n\t\t\"pointerTypes\",\n\t\t\"target\",\n\t\t\"window\"\n\t]\n});\n\n//#endregion\n//#region ../core/usePointerLock/component.ts\nconst UsePointerLock = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst target = shallowRef();\n\tconst data = reactive(usePointerLock(target));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"UsePointerLock\",\n\tprops: [\"as\", \"document\"]\n});\n\n//#endregion\n//#region ../core/usePreferredColorScheme/component.ts\nconst UsePreferredColorScheme = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ colorScheme: usePreferredColorScheme(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UsePreferredColorScheme\",\n\tprops: [\"window\"]\n});\n\n//#endregion\n//#region ../core/usePreferredContrast/component.ts\nconst UsePreferredContrast = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ contrast: usePreferredContrast(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UsePreferredContrast\",\n\tprops: [\"window\"]\n});\n\n//#endregion\n//#region ../core/usePreferredDark/component.ts\nconst UsePreferredDark = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ prefersDark: usePreferredDark(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UsePreferredDark\",\n\tprops: [\"window\"]\n});\n\n//#endregion\n//#region ../core/usePreferredLanguages/component.ts\nconst UsePreferredLanguages = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ languages: usePreferredLanguages(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UsePreferredLanguages\",\n\tprops: [\"window\"]\n});\n\n//#endregion\n//#region ../core/usePreferredReducedMotion/component.ts\nconst UsePreferredReducedMotion = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ motion: usePreferredReducedMotion(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UsePreferredReducedMotion\",\n\tprops: [\"window\"]\n});\n\n//#endregion\n//#region ../core/usePreferredReducedTransparency/component.ts\nconst UsePreferredReducedTransparency = /* @__PURE__ */ defineComponent({\n\tname: \"UsePreferredReducedTransparency\",\n\tsetup(props, { slots }) {\n\t\tconst data = reactive({ transparency: usePreferredReducedTransparency() });\n\t\treturn () => {\n\t\t\tif (slots.default) return slots.default(data);\n\t\t};\n\t}\n});\n\n//#endregion\n//#region ../core/useResizeObserver/directive.ts\nconst vResizeObserver = { mounted(el, binding) {\n\tif (typeof binding.value === \"function\") useResizeObserver(el, binding.value);\n\telse useResizeObserver(el, ...binding.value);\n} };\n\n//#endregion\n//#region ../core/useScreenSafeArea/component.ts\nconst UseScreenSafeArea = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useScreenSafeArea());\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { style: {\n\t\t\tpaddingTop: props.top ? data.top : \"\",\n\t\t\tpaddingRight: props.right ? data.right : \"\",\n\t\t\tpaddingBottom: props.bottom ? data.bottom : \"\",\n\t\t\tpaddingLeft: props.left ? data.left : \"\",\n\t\t\tboxSizing: \"border-box\",\n\t\t\tmaxHeight: \"100vh\",\n\t\t\tmaxWidth: \"100vw\",\n\t\t\toverflow: \"auto\"\n\t\t} }, slots.default(data));\n\t};\n}, {\n\tname: \"UseScreenSafeArea\",\n\tprops: [\n\t\t\"top\",\n\t\t\"right\",\n\t\t\"bottom\",\n\t\t\"left\"\n\t]\n});\n\n//#endregion\n//#region ../core/useScroll/directive.ts\nconst vScroll = { mounted(el, binding) {\n\tif (typeof binding.value === \"function\") {\n\t\tconst handler = binding.value;\n\t\tconst state = useScroll(el, {\n\t\t\tonScroll() {\n\t\t\t\thandler(state);\n\t\t\t},\n\t\t\tonStop() {\n\t\t\t\thandler(state);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tconst [handler, options] = binding.value;\n\t\tconst state = useScroll(el, {\n\t\t\t...options,\n\t\t\tonScroll(e) {\n\t\t\t\tvar _options$onScroll;\n\t\t\t\t(_options$onScroll = options.onScroll) === null || _options$onScroll === void 0 || _options$onScroll.call(options, e);\n\t\t\t\thandler(state);\n\t\t\t},\n\t\t\tonStop(e) {\n\t\t\t\tvar _options$onStop;\n\t\t\t\t(_options$onStop = options.onStop) === null || _options$onStop === void 0 || _options$onStop.call(options, e);\n\t\t\t\thandler(state);\n\t\t\t}\n\t\t});\n\t}\n} };\n\n//#endregion\n//#region ../core/useScrollLock/directive.ts\nfunction onScrollLock() {\n\tlet isMounted = false;\n\tconst state = shallowRef(false);\n\treturn (el, binding) => {\n\t\tstate.value = binding.value;\n\t\tif (isMounted) return;\n\t\tisMounted = true;\n\t\tconst isLocked = useScrollLock(el, binding.value);\n\t\twatch(state, (v) => isLocked.value = v);\n\t};\n}\nconst vScrollLock = onScrollLock();\n\n//#endregion\n//#region ../core/useTimeAgo/component.ts\nconst UseTimeAgo = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useTimeAgo(() => props.time, {\n\t\t...props,\n\t\tcontrols: true\n\t}));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseTimeAgo\",\n\tprops: [\n\t\t\"fullDateFormatter\",\n\t\t\"max\",\n\t\t\"messages\",\n\t\t\"rounding\",\n\t\t\"showSecond\",\n\t\t\"time\",\n\t\t\"units\",\n\t\t\"updateInterval\"\n\t]\n});\n\n//#endregion\n//#region ../core/useTimestamp/component.ts\nconst UseTimestamp = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useTimestamp({\n\t\t...props,\n\t\tcontrols: true\n\t}));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseTimestamp\",\n\tprops: [\n\t\t\"callback\",\n\t\t\"immediate\",\n\t\t\"interval\",\n\t\t\"offset\"\n\t]\n});\n\n//#endregion\n//#region ../core/useVirtualList/component.ts\nconst UseVirtualList = /* @__PURE__ */ defineComponent((props, { slots, expose }) => {\n\tconst { list: listRef } = toRefs(props);\n\tconst { list, containerProps, wrapperProps, scrollTo } = useVirtualList(listRef, props.options);\n\texpose({ scrollTo });\n\tif (containerProps.style && typeof containerProps.style === \"object\" && !Array.isArray(containerProps.style)) containerProps.style.height = props.height || \"300px\";\n\treturn () => h(\"div\", { ...containerProps }, [h(\"div\", { ...wrapperProps.value }, list.value.map((item) => h(\"div\", { style: {\n\t\toverflow: \"hidden\",\n\t\theight: item.height\n\t} }, slots.default ? slots.default(item) : \"Please set content!\")))]);\n}, {\n\tname: \"UseVirtualList\",\n\tprops: [\n\t\t\"height\",\n\t\t\"list\",\n\t\t\"options\"\n\t]\n});\n\n//#endregion\n//#region ../core/useWindowFocus/component.ts\nconst UseWindowFocus = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ focused: useWindowFocus(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseWindowFocus\",\n\tprops: [\"window\"]\n});\n\n//#endregion\n//#region ../core/useWindowSize/component.ts\nconst UseWindowSize = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useWindowSize(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseWindowSize\",\n\tprops: [\n\t\t\"includeScrollbar\",\n\t\t\"initialHeight\",\n\t\t\"initialWidth\",\n\t\t\"listenOrientation\",\n\t\t\"type\",\n\t\t\"window\"\n\t]\n});\n\n//#endregion\nexport { OnClickOutside, OnLongPress, UseActiveElement, UseBattery, UseBrowserLocation, UseClipboard, UseColorMode, UseDark, UseDeviceMotion, UseDeviceOrientation, UseDevicePixelRatio, UseDevicesList, UseDocumentVisibility, UseDraggable, UseElementBounding, UseElementSize, UseElementVisibility, UseEyeDropper, UseFullscreen, UseGeolocation, UseIdle, UseImage, UseMouse, UseMouseInElement, UseMousePressed, UseNetwork, UseNow, UseObjectUrl, UseOffsetPagination, UseOnline, UsePageLeave, UsePointer, UsePointerLock, UsePreferredColorScheme, UsePreferredContrast, UsePreferredDark, UsePreferredLanguages, UsePreferredReducedMotion, UsePreferredReducedTransparency, UseScreenSafeArea, UseTimeAgo, UseTimestamp, UseVirtualList, UseWindowFocus, UseWindowSize, VOnClickOutside, VOnLongPress, vElementBounding, vElementHover, vElementSize, vElementVisibility, vInfiniteScroll, vIntersectionObserver, vMouseInElement, vOnClickOutside, vOnKeyStroke, vOnLongPress, vResizeObserver, vScroll, vScrollLock };","import { l as logger } from \"../../chunks/logger-D3RVzcfQ.mjs\";\nfunction registerContactsMenuAction(action) {\n window._nc_contacts_menu_hooks ??= {};\n if (window._nc_contacts_menu_hooks[action.id]) {\n logger.error(`ContactsMenu action for id ${action.id} has already been registered`, {\n action\n });\n return;\n }\n window._nc_contacts_menu_hooks[action.id] = action;\n}\nfunction getEnabledContactsMenuActions(entry) {\n if (!window._nc_contacts_menu_hooks) {\n return [];\n }\n return Object.values(window._nc_contacts_menu_hooks).filter((action) => action.enabled(entry));\n}\nexport {\n getEnabledContactsMenuActions,\n registerContactsMenuAction\n};\n//# sourceMappingURL=index.mjs.map\n","const c = new Int32Array(4);\nclass h {\n static hashStr(i, a = !1) {\n return this.onePassHasher.start().appendStr(i).end(a);\n }\n static hashAsciiStr(i, a = !1) {\n return this.onePassHasher.start().appendAsciiStr(i).end(a);\n }\n // Private Static Variables\n static stateIdentity = new Int32Array([\n 1732584193,\n -271733879,\n -1732584194,\n 271733878\n ]);\n static buffer32Identity = new Int32Array([\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0\n ]);\n static hexChars = \"0123456789abcdef\";\n static hexOut = [];\n // Permanent instance is to use for one-call hashing\n static onePassHasher = new h();\n static _hex(i) {\n const a = h.hexChars, t = h.hexOut;\n let e, s, r, n;\n for (n = 0; n < 4; n += 1)\n for (s = n * 8, e = i[n], r = 0; r < 8; r += 2)\n t[s + 1 + r] = a.charAt(e & 15), e >>>= 4, t[s + 0 + r] = a.charAt(e & 15), e >>>= 4;\n return t.join(\"\");\n }\n static _md5cycle(i, a) {\n let t = i[0], e = i[1], s = i[2], r = i[3];\n t += (e & s | ~e & r) + a[0] - 680876936 | 0, t = (t << 7 | t >>> 25) + e | 0, r += (t & e | ~t & s) + a[1] - 389564586 | 0, r = (r << 12 | r >>> 20) + t | 0, s += (r & t | ~r & e) + a[2] + 606105819 | 0, s = (s << 17 | s >>> 15) + r | 0, e += (s & r | ~s & t) + a[3] - 1044525330 | 0, e = (e << 22 | e >>> 10) + s | 0, t += (e & s | ~e & r) + a[4] - 176418897 | 0, t = (t << 7 | t >>> 25) + e | 0, r += (t & e | ~t & s) + a[5] + 1200080426 | 0, r = (r << 12 | r >>> 20) + t | 0, s += (r & t | ~r & e) + a[6] - 1473231341 | 0, s = (s << 17 | s >>> 15) + r | 0, e += (s & r | ~s & t) + a[7] - 45705983 | 0, e = (e << 22 | e >>> 10) + s | 0, t += (e & s | ~e & r) + a[8] + 1770035416 | 0, t = (t << 7 | t >>> 25) + e | 0, r += (t & e | ~t & s) + a[9] - 1958414417 | 0, r = (r << 12 | r >>> 20) + t | 0, s += (r & t | ~r & e) + a[10] - 42063 | 0, s = (s << 17 | s >>> 15) + r | 0, e += (s & r | ~s & t) + a[11] - 1990404162 | 0, e = (e << 22 | e >>> 10) + s | 0, t += (e & s | ~e & r) + a[12] + 1804603682 | 0, t = (t << 7 | t >>> 25) + e | 0, r += (t & e | ~t & s) + a[13] - 40341101 | 0, r = (r << 12 | r >>> 20) + t | 0, s += (r & t | ~r & e) + a[14] - 1502002290 | 0, s = (s << 17 | s >>> 15) + r | 0, e += (s & r | ~s & t) + a[15] + 1236535329 | 0, e = (e << 22 | e >>> 10) + s | 0, t += (e & r | s & ~r) + a[1] - 165796510 | 0, t = (t << 5 | t >>> 27) + e | 0, r += (t & s | e & ~s) + a[6] - 1069501632 | 0, r = (r << 9 | r >>> 23) + t | 0, s += (r & e | t & ~e) + a[11] + 643717713 | 0, s = (s << 14 | s >>> 18) + r | 0, e += (s & t | r & ~t) + a[0] - 373897302 | 0, e = (e << 20 | e >>> 12) + s | 0, t += (e & r | s & ~r) + a[5] - 701558691 | 0, t = (t << 5 | t >>> 27) + e | 0, r += (t & s | e & ~s) + a[10] + 38016083 | 0, r = (r << 9 | r >>> 23) + t | 0, s += (r & e | t & ~e) + a[15] - 660478335 | 0, s = (s << 14 | s >>> 18) + r | 0, e += (s & t | r & ~t) + a[4] - 405537848 | 0, e = (e << 20 | e >>> 12) + s | 0, t += (e & r | s & ~r) + a[9] + 568446438 | 0, t = (t << 5 | t >>> 27) + e | 0, r += (t & s | e & ~s) + a[14] - 1019803690 | 0, r = (r << 9 | r >>> 23) + t | 0, s += (r & e | t & ~e) + a[3] - 187363961 | 0, s = (s << 14 | s >>> 18) + r | 0, e += (s & t | r & ~t) + a[8] + 1163531501 | 0, e = (e << 20 | e >>> 12) + s | 0, t += (e & r | s & ~r) + a[13] - 1444681467 | 0, t = (t << 5 | t >>> 27) + e | 0, r += (t & s | e & ~s) + a[2] - 51403784 | 0, r = (r << 9 | r >>> 23) + t | 0, s += (r & e | t & ~e) + a[7] + 1735328473 | 0, s = (s << 14 | s >>> 18) + r | 0, e += (s & t | r & ~t) + a[12] - 1926607734 | 0, e = (e << 20 | e >>> 12) + s | 0, t += (e ^ s ^ r) + a[5] - 378558 | 0, t = (t << 4 | t >>> 28) + e | 0, r += (t ^ e ^ s) + a[8] - 2022574463 | 0, r = (r << 11 | r >>> 21) + t | 0, s += (r ^ t ^ e) + a[11] + 1839030562 | 0, s = (s << 16 | s >>> 16) + r | 0, e += (s ^ r ^ t) + a[14] - 35309556 | 0, e = (e << 23 | e >>> 9) + s | 0, t += (e ^ s ^ r) + a[1] - 1530992060 | 0, t = (t << 4 | t >>> 28) + e | 0, r += (t ^ e ^ s) + a[4] + 1272893353 | 0, r = (r << 11 | r >>> 21) + t | 0, s += (r ^ t ^ e) + a[7] - 155497632 | 0, s = (s << 16 | s >>> 16) + r | 0, e += (s ^ r ^ t) + a[10] - 1094730640 | 0, e = (e << 23 | e >>> 9) + s | 0, t += (e ^ s ^ r) + a[13] + 681279174 | 0, t = (t << 4 | t >>> 28) + e | 0, r += (t ^ e ^ s) + a[0] - 358537222 | 0, r = (r << 11 | r >>> 21) + t | 0, s += (r ^ t ^ e) + a[3] - 722521979 | 0, s = (s << 16 | s >>> 16) + r | 0, e += (s ^ r ^ t) + a[6] + 76029189 | 0, e = (e << 23 | e >>> 9) + s | 0, t += (e ^ s ^ r) + a[9] - 640364487 | 0, t = (t << 4 | t >>> 28) + e | 0, r += (t ^ e ^ s) + a[12] - 421815835 | 0, r = (r << 11 | r >>> 21) + t | 0, s += (r ^ t ^ e) + a[15] + 530742520 | 0, s = (s << 16 | s >>> 16) + r | 0, e += (s ^ r ^ t) + a[2] - 995338651 | 0, e = (e << 23 | e >>> 9) + s | 0, t += (s ^ (e | ~r)) + a[0] - 198630844 | 0, t = (t << 6 | t >>> 26) + e | 0, r += (e ^ (t | ~s)) + a[7] + 1126891415 | 0, r = (r << 10 | r >>> 22) + t | 0, s += (t ^ (r | ~e)) + a[14] - 1416354905 | 0, s = (s << 15 | s >>> 17) + r | 0, e += (r ^ (s | ~t)) + a[5] - 57434055 | 0, e = (e << 21 | e >>> 11) + s | 0, t += (s ^ (e | ~r)) + a[12] + 1700485571 | 0, t = (t << 6 | t >>> 26) + e | 0, r += (e ^ (t | ~s)) + a[3] - 1894986606 | 0, r = (r << 10 | r >>> 22) + t | 0, s += (t ^ (r | ~e)) + a[10] - 1051523 | 0, s = (s << 15 | s >>> 17) + r | 0, e += (r ^ (s | ~t)) + a[1] - 2054922799 | 0, e = (e << 21 | e >>> 11) + s | 0, t += (s ^ (e | ~r)) + a[8] + 1873313359 | 0, t = (t << 6 | t >>> 26) + e | 0, r += (e ^ (t | ~s)) + a[15] - 30611744 | 0, r = (r << 10 | r >>> 22) + t | 0, s += (t ^ (r | ~e)) + a[6] - 1560198380 | 0, s = (s << 15 | s >>> 17) + r | 0, e += (r ^ (s | ~t)) + a[13] + 1309151649 | 0, e = (e << 21 | e >>> 11) + s | 0, t += (s ^ (e | ~r)) + a[4] - 145523070 | 0, t = (t << 6 | t >>> 26) + e | 0, r += (e ^ (t | ~s)) + a[11] - 1120210379 | 0, r = (r << 10 | r >>> 22) + t | 0, s += (t ^ (r | ~e)) + a[2] + 718787259 | 0, s = (s << 15 | s >>> 17) + r | 0, e += (r ^ (s | ~t)) + a[9] - 343485551 | 0, e = (e << 21 | e >>> 11) + s | 0, i[0] = t + i[0] | 0, i[1] = e + i[1] | 0, i[2] = s + i[2] | 0, i[3] = r + i[3] | 0;\n }\n _dataLength = 0;\n _bufferLength = 0;\n _state = new Int32Array(4);\n _buffer = new ArrayBuffer(68);\n _buffer8;\n _buffer32;\n constructor() {\n this._buffer8 = new Uint8Array(this._buffer, 0, 68), this._buffer32 = new Uint32Array(this._buffer, 0, 17), this.start();\n }\n /**\n * Initialise buffer to be hashed\n */\n start() {\n return this._dataLength = 0, this._bufferLength = 0, this._state.set(h.stateIdentity), this;\n }\n // Char to code point to to array conversion:\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/charCodeAt\n // #Example.3A_Fixing_charCodeAt_to_handle_non-Basic-Multilingual-Plane_characters_if_their_presence_earlier_in_the_string_is_unknown\n /**\n * Append a UTF-8 string to the hash buffer\n * @param str String to append\n */\n appendStr(i) {\n const a = this._buffer8, t = this._buffer32;\n let e = this._bufferLength, s, r;\n for (r = 0; r < i.length; r += 1) {\n if (s = i.charCodeAt(r), s < 128)\n a[e++] = s;\n else if (s < 2048)\n a[e++] = (s >>> 6) + 192, a[e++] = s & 63 | 128;\n else if (s < 55296 || s > 56319)\n a[e++] = (s >>> 12) + 224, a[e++] = s >>> 6 & 63 | 128, a[e++] = s & 63 | 128;\n else {\n if (s = (s - 55296) * 1024 + (i.charCodeAt(++r) - 56320) + 65536, s > 1114111)\n throw new Error(\n \"Unicode standard supports code points up to U+10FFFF\"\n );\n a[e++] = (s >>> 18) + 240, a[e++] = s >>> 12 & 63 | 128, a[e++] = s >>> 6 & 63 | 128, a[e++] = s & 63 | 128;\n }\n e >= 64 && (this._dataLength += 64, h._md5cycle(this._state, t), e -= 64, t[0] = t[16]);\n }\n return this._bufferLength = e, this;\n }\n /**\n * Append an ASCII string to the hash buffer\n * @param str String to append\n */\n appendAsciiStr(i) {\n const a = this._buffer8, t = this._buffer32;\n let e = this._bufferLength, s, r = 0;\n for (; ; ) {\n for (s = Math.min(i.length - r, 64 - e); s--; )\n a[e++] = i.charCodeAt(r++);\n if (e < 64)\n break;\n this._dataLength += 64, h._md5cycle(this._state, t), e = 0;\n }\n return this._bufferLength = e, this;\n }\n /**\n * Append a byte array to the hash buffer\n * @param input array to append\n */\n appendByteArray(i) {\n const a = this._buffer8, t = this._buffer32;\n let e = this._bufferLength, s, r = 0;\n for (; ; ) {\n for (s = Math.min(i.length - r, 64 - e); s--; )\n a[e++] = i[r++];\n if (e < 64)\n break;\n this._dataLength += 64, h._md5cycle(this._state, t), e = 0;\n }\n return this._bufferLength = e, this;\n }\n /**\n * Get the state of the hash buffer\n */\n getState() {\n const i = this._state;\n return {\n buffer: String.fromCharCode.apply(null, Array.from(this._buffer8)),\n buflen: this._bufferLength,\n length: this._dataLength,\n state: [i[0], i[1], i[2], i[3]]\n };\n }\n /**\n * Override the current state of the hash buffer\n * @param state New hash buffer state\n */\n setState(i) {\n const a = i.buffer, t = i.state, e = this._state;\n let s;\n for (this._dataLength = i.length, this._bufferLength = i.buflen, e[0] = t[0], e[1] = t[1], e[2] = t[2], e[3] = t[3], s = 0; s < a.length; s += 1)\n this._buffer8[s] = a.charCodeAt(s);\n }\n /**\n * Hash the current state of the hash buffer and return the result\n * @param raw Whether to return the value as an `Int32Array`\n */\n end(i = !1) {\n const a = this._bufferLength, t = this._buffer8, e = this._buffer32, s = (a >> 2) + 1;\n this._dataLength += a;\n const r = this._dataLength * 8;\n if (t[a] = 128, t[a + 1] = t[a + 2] = t[a + 3] = 0, e.set(h.buffer32Identity.subarray(s), s), a > 55 && (h._md5cycle(this._state, e), e.set(h.buffer32Identity)), r <= 4294967295)\n e[14] = r;\n else {\n const n = r.toString(16).match(/(.*?)(.{0,8})$/);\n if (n === null) return i ? c : \"\";\n const o = parseInt(n[2], 16), _ = parseInt(n[1], 16) || 0;\n e[14] = o, e[15] = _;\n }\n return h._md5cycle(this._state, e), i ? this._state : h._hex(this._state);\n }\n}\nif (h.hashStr(\"hello\") !== \"5d41402abc4b2a76b9719d911017c592\")\n throw new Error(\"Md5 self test failed.\");\nclass l {\n constructor(i, a = !0, t = 1048576) {\n this._callback = i, this._async = a, this._partSize = t, this._configureReader();\n }\n _reader;\n _md5;\n _part;\n // private _length!: number;\n _blob;\n /**\n * Hash a blob of data in the worker\n * @param blob Data to hash\n */\n hash(i) {\n const a = this;\n a._blob = i, a._part = 0, a._md5 = new h(), a._processPart();\n }\n _fail() {\n this._callback({\n success: !1,\n result: \"data read failed\"\n });\n }\n _hashData(i) {\n let a = this;\n a._md5.appendByteArray(new Uint8Array(i.target.result)), a._part * a._partSize >= a._blob.size ? a._callback({\n success: !0,\n result: a._md5.end()\n }) : a._processPart();\n }\n _processPart() {\n const i = this;\n let a = 0, t;\n i._part += 1, i._blob.size > i._partSize ? (a = i._part * i._partSize, a > i._blob.size && (a = i._blob.size), t = i._blob.slice(\n (i._part - 1) * i._partSize,\n a\n )) : t = i._blob, i._async ? i._reader.readAsArrayBuffer(t) : setTimeout(() => {\n try {\n i._hashData({\n target: {\n result: i._reader.readAsArrayBuffer(\n t\n )\n }\n });\n } catch {\n i._fail();\n }\n }, 0);\n }\n _configureReader() {\n const i = this;\n i._async ? (i._reader = new FileReader(), i._reader.onload = i._hashData.bind(i), i._reader.onerror = i._fail.bind(i), i._reader.onabort = i._fail.bind(i)) : i._reader = new FileReaderSync();\n }\n}\nclass u {\n _queue = [];\n _hashWorker;\n _processing;\n _ready = !0;\n constructor(i, a) {\n const t = this;\n Worker ? (t._hashWorker = new Worker(i, a), t._hashWorker.onmessage = t._recievedMessage.bind(t), t._hashWorker.onerror = (e) => {\n t._ready = !1, console.error(\"Hash worker failure\", e);\n }) : (t._ready = !1, console.error(\"Web Workers are not supported in this browser\"));\n }\n /**\n * Hash a blob of data in the worker\n * @param blob Data to hash\n * @returns Promise of the Hashed result\n */\n hash(i) {\n const a = this;\n let t;\n return t = new Promise((e, s) => {\n a._queue.push({\n blob: i,\n resolve: e,\n reject: s\n }), a._processNext();\n }), t;\n }\n /** Terminate any existing hash requests */\n terminate() {\n this._ready = !1, this._hashWorker.terminate();\n }\n // Processes the next item in the queue\n _processNext() {\n this._ready && !this._processing && this._queue.length > 0 && (this._processing = this._queue.pop(), this._hashWorker.postMessage(this._processing.blob));\n }\n // Hash result is returned from the worker\n _recievedMessage(i) {\n const a = i.data;\n a.success ? this._processing?.resolve(a.result) : this._processing?.reject(a.result), this._processing = void 0, this._processNext();\n }\n}\nexport {\n h as Md5,\n l as Md5FileHasher,\n u as ParallelHasher\n};\n//# sourceMappingURL=index.es.js.map\n","import { Md5 } from \"ts-md5\";\nimport { g as generatePalette } from \"../../chunks/colors-Go3zmZRD.mjs\";\nfunction hashCode(str) {\n let hash = str;\n if (str.match(/^([0-9a-f]{4}-?){8}$/) === null) {\n hash = Md5.hashStr(str);\n }\n hash = hash.replace(/[^0-9a-f]/g, \"\");\n let finalInt = 0;\n for (let i = 0; i < hash.length; i++) {\n finalInt += parseInt(hash.charAt(i), 16);\n }\n return finalInt;\n}\nfunction usernameToColor(username) {\n const steps = 6;\n const finalPalette = generatePalette(steps);\n const hash = hashCode(username.toLocaleLowerCase());\n return finalPalette[hash % finalPalette.length];\n}\nexport {\n usernameToColor\n};\n//# sourceMappingURL=index.mjs.map\n","'use strict';\n\n(function (global) {\n\n // minimal symbol polyfill for IE11 and others\n if (typeof Symbol !== 'function') {\n var Symbol = function(name) {\n return name;\n }\n\n Symbol.nonNative = true;\n }\n\n const STATE_PLAINTEXT = Symbol('plaintext');\n const STATE_HTML = Symbol('html');\n const STATE_COMMENT = Symbol('comment');\n\n const ALLOWED_TAGS_REGEX = /<(\\w*)>/g;\n const NORMALIZE_TAG_REGEX = /<\\/?([^\\s\\/>]+)/;\n\n function striptags(html, allowable_tags, tag_replacement) {\n html = html || '';\n allowable_tags = allowable_tags || [];\n tag_replacement = tag_replacement || '';\n\n let context = init_context(allowable_tags, tag_replacement);\n\n return striptags_internal(html, context);\n }\n\n function init_striptags_stream(allowable_tags, tag_replacement) {\n allowable_tags = allowable_tags || [];\n tag_replacement = tag_replacement || '';\n\n let context = init_context(allowable_tags, tag_replacement);\n\n return function striptags_stream(html) {\n return striptags_internal(html || '', context);\n };\n }\n\n striptags.init_streaming_mode = init_striptags_stream;\n\n function init_context(allowable_tags, tag_replacement) {\n allowable_tags = parse_allowable_tags(allowable_tags);\n\n return {\n allowable_tags : allowable_tags,\n tag_replacement: tag_replacement,\n\n state : STATE_PLAINTEXT,\n tag_buffer : '',\n depth : 0,\n in_quote_char : ''\n };\n }\n\n function striptags_internal(html, context) {\n if (typeof html != \"string\") {\n throw new TypeError(\"'html' parameter must be a string\");\n }\n\n let allowable_tags = context.allowable_tags;\n let tag_replacement = context.tag_replacement;\n\n let state = context.state;\n let tag_buffer = context.tag_buffer;\n let depth = context.depth;\n let in_quote_char = context.in_quote_char;\n let output = '';\n\n for (let idx = 0, length = html.length; idx < length; idx++) {\n let char = html[idx];\n\n if (state === STATE_PLAINTEXT) {\n switch (char) {\n case '<':\n state = STATE_HTML;\n tag_buffer += char;\n break;\n\n default:\n output += char;\n break;\n }\n }\n\n else if (state === STATE_HTML) {\n switch (char) {\n case '<':\n // ignore '<' if inside a quote\n if (in_quote_char) {\n break;\n }\n\n // we're seeing a nested '<'\n depth++;\n break;\n\n case '>':\n // ignore '>' if inside a quote\n if (in_quote_char) {\n break;\n }\n\n // something like this is happening: '<<>>'\n if (depth) {\n depth--;\n\n break;\n }\n\n // this is closing the tag in tag_buffer\n in_quote_char = '';\n state = STATE_PLAINTEXT;\n tag_buffer += '>';\n\n if (allowable_tags.has(normalize_tag(tag_buffer))) {\n output += tag_buffer;\n } else {\n output += tag_replacement;\n }\n\n tag_buffer = '';\n break;\n\n case '\"':\n case '\\'':\n // catch both single and double quotes\n\n if (char === in_quote_char) {\n in_quote_char = '';\n } else {\n in_quote_char = in_quote_char || char;\n }\n\n tag_buffer += char;\n break;\n\n case '-':\n if (tag_buffer === '':\n if (tag_buffer.slice(-2) == '--') {\n // close the comment\n state = STATE_PLAINTEXT;\n }\n\n tag_buffer = '';\n break;\n\n default:\n tag_buffer += char;\n break;\n }\n }\n }\n\n // save the context for future iterations\n context.state = state;\n context.tag_buffer = tag_buffer;\n context.depth = depth;\n context.in_quote_char = in_quote_char;\n\n return output;\n }\n\n function parse_allowable_tags(allowable_tags) {\n let tag_set = new Set();\n\n if (typeof allowable_tags === 'string') {\n let match;\n\n while ((match = ALLOWED_TAGS_REGEX.exec(allowable_tags))) {\n tag_set.add(match[1]);\n }\n }\n\n else if (!Symbol.nonNative &&\n typeof allowable_tags[Symbol.iterator] === 'function') {\n\n tag_set = new Set(allowable_tags);\n }\n\n else if (typeof allowable_tags.forEach === 'function') {\n // IE11 compatible\n allowable_tags.forEach(tag_set.add, tag_set);\n }\n\n return tag_set;\n }\n\n function normalize_tag(tag_buffer) {\n let match = NORMALIZE_TAG_REGEX.exec(tag_buffer);\n\n return match ? match[1].toLowerCase() : null;\n }\n\n if (typeof define === 'function' && define.amd) {\n // AMD\n define(function module_factory() { return striptags; });\n }\n\n else if (typeof module === 'object' && module.exports) {\n // Node\n module.exports = striptags;\n }\n\n else {\n // Browser\n global.striptags = striptags;\n }\n}(this));\n","import '../assets/NcMentionBubble-ptHUq68a.css';\nimport { generateUrl } from \"@nextcloud/router\";\nimport { checkIfDarkTheme } from \"../functions/isDarkTheme/index.mjs\";\nfunction getAvatarUrl(user, options) {\n const size = (options?.size || 64) <= 64 ? 64 : 512;\n const guestUrl = options?.isGuest ? \"/guest\" : \"\";\n const themeUrl = options?.isDarkTheme ?? checkIfDarkTheme(document.body) ? \"/dark\" : \"\";\n return generateUrl(`/avatar${guestUrl}/{user}/{size}${themeUrl}`, {\n user,\n size\n });\n}\nexport {\n getAvatarUrl as g\n};\n//# sourceMappingURL=NcMentionBubble.vue_vue_type_style_index_0_scoped_45238efd_lang-D6LzDiYf.mjs.map\n","import '../assets/NcAvatar-f8SJKMDw.css';\nimport { getCurrentUser } from \"@nextcloud/auth\";\nimport axios from \"@nextcloud/axios\";\nimport { getBuilder } from \"@nextcloud/browser-storage\";\nimport { unsubscribe, subscribe } from \"@nextcloud/event-bus\";\nimport { generateOcsUrl, generateUrl } from \"@nextcloud/router\";\nimport { vOnClickOutside } from \"@vueuse/components\";\nimport { N as NcActions, I as IconDotsHorizontal } from \"./NcActions-DWmvh7-Y.mjs\";\nimport { g as getRoute } from \"./autolink-U5pBzLgI.mjs\";\nimport \"../composables/useFormatDateTime/index.mjs\";\nimport \"../composables/useHotKey/index.mjs\";\nimport { useIsDarkTheme } from \"../composables/useIsDarkTheme/index.mjs\";\nimport \"../composables/useIsFullscreen/index.mjs\";\nimport \"../composables/useIsMobile/index.mjs\";\nimport { getEnabledContactsMenuActions } from \"../functions/contactsMenu/index.mjs\";\nimport { usernameToColor } from \"../functions/usernameToColor/index.mjs\";\nimport { r as register, i as t10, a as t } from \"./_l10n-DrTiip5c.mjs\";\nimport \"escape-html\";\nimport \"striptags\";\nimport { resolveComponent, resolveDirective, withDirectives, createElementBlock, openBlock, normalizeStyle, normalizeClass, renderSlot, createBlock, createCommentVNode, withCtx, createSlots, Fragment, renderList, resolveDynamicComponent, mergeProps, createTextVNode, toDisplayString, createVNode, createElementVNode } from \"vue\";\nimport { g as getAvatarUrl } from \"./NcMentionBubble.vue_vue_type_style_index_0_scoped_45238efd_lang-D6LzDiYf.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { N as NcUserStatusIcon, g as getUserStatusText } from \"./NcUserStatusIcon-CGEf7fej.mjs\";\nimport { N as NcActionButton } from \"./NcActionButton-pKOSrlGE.mjs\";\nimport { N as NcActionLink } from \"./NcActionLink-vEvKSV4N.mjs\";\nimport { N as NcActionRouter } from \"./NcActionRouter-oT-YU_jf.mjs\";\nimport { N as NcActionText } from \"./NcActionText-uKvLcEY6.mjs\";\nimport { N as NcButton } from \"./NcButton-Dc8V4Urj.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-BvLanNaW.mjs\";\nimport { N as NcLoadingIcon } from \"./NcLoadingIcon-b_ajZ_nQ.mjs\";\nregister(t10);\nconst userStatus = {\n data() {\n return {\n hasStatus: false,\n userStatus: {\n status: null,\n message: null,\n icon: null\n }\n };\n },\n methods: {\n /**\n * Fetches the user-status from the server\n *\n * @param {string} userId UserId of the user to fetch the status for\n *\n * @return {Promise}\n */\n async fetchUserStatus(userId) {\n if (!userId) {\n return;\n }\n const capabilities = getCapabilities();\n if (!Object.hasOwn(capabilities, \"user_status\") || !capabilities.user_status.enabled) {\n return;\n }\n if (!getCurrentUser()) {\n return;\n }\n try {\n const { data } = await axios.get(generateOcsUrl(\"apps/user_status/api/v1/statuses/{userId}\", { userId }));\n this.setUserStatus(data.ocs.data);\n } catch (e) {\n if (e.response.status === 404 && e.response.data.ocs?.data?.length === 0) {\n return;\n }\n logger.error(\"Failed to fetch user status\", { error: e });\n }\n },\n /**\n * Sets the user status\n *\n * @param {string} status user's status\n * @param {string} message user's message\n * @param {string} icon user's icon\n */\n setUserStatus({ status, message, icon }) {\n this.userStatus.status = status || \"\";\n this.userStatus.message = message || \"\";\n this.userStatus.icon = icon || \"\";\n this.hasStatus = !!status;\n }\n }\n};\nconst browserStorage = getBuilder(\"nextcloud\").persist().build();\nfunction getUserHasAvatar(userId) {\n const flag = browserStorage.getItem(\"user-has-avatar.\" + userId);\n if (typeof flag === \"string\") {\n return Boolean(flag);\n }\n return null;\n}\nfunction setUserHasAvatar(userId, flag) {\n if (userId) {\n browserStorage.setItem(\"user-has-avatar.\" + userId, flag);\n }\n}\nconst _sfc_main = {\n name: \"NcAvatar\",\n directives: {\n /** @type {import('vue').ObjectDirective} */\n ClickOutside: vOnClickOutside\n },\n components: {\n IconDotsHorizontal,\n NcActions,\n NcButton,\n NcIconSvgWrapper,\n NcLoadingIcon,\n NcUserStatusIcon\n },\n mixins: [userStatus],\n props: {\n /**\n * Set a custom url to the avatar image\n * either the url, user or displayName property must be defined\n */\n url: {\n type: String,\n default: void 0\n },\n /**\n * Set a css icon-class for an icon to be used instead of the avatar.\n */\n iconClass: {\n type: String,\n default: void 0\n },\n /**\n * Set the user id to fetch the avatar\n * either the url, user or displayName property must be defined\n */\n user: {\n type: String,\n default: void 0\n },\n /**\n * Do not show the user status on the avatar.\n */\n hideStatus: {\n type: Boolean,\n default: false\n },\n /**\n * Show the verbose user status (e.g. \"online\" / \"away\") instead of just the status icon.\n */\n verboseStatus: {\n type: Boolean,\n default: false\n },\n /**\n * When the user status was preloaded via another source it can be handed in with this property to save the request.\n * If this property is not set the status will be fetched automatically.\n * If a preloaded no-status is available provide this object with properties \"status\", \"icon\" and \"message\" set to null.\n */\n preloadedUserStatus: {\n type: Object,\n default: void 0\n },\n /**\n * Is the user a guest user (then we have to user a different endpoint)\n */\n isGuest: {\n type: Boolean,\n default: false\n },\n /**\n * Set a display name that will be rendered as a tooltip\n * either the url, user or displayName property must be defined\n * specify just the displayname to generate a placeholder avatar without\n * trying to fetch the avatar based on the user id\n */\n displayName: {\n type: String,\n default: void 0\n },\n /**\n * Set a size in px for the rendered avatar\n */\n size: {\n type: Number,\n default: 32\n },\n /**\n * Do not automatically generate a placeholder avatars if there is no real avatar is available.\n */\n noPlaceholder: {\n type: Boolean,\n default: false\n },\n /**\n * Disable the tooltip\n */\n disableTooltip: {\n type: Boolean,\n default: false\n },\n /**\n * Disable the menu\n */\n disableMenu: {\n type: Boolean,\n default: false\n },\n /**\n * Declares a custom tooltip when not null\n * Fallback will be the displayName\n *\n * requires disableTooltip not to be set to true\n */\n tooltipMessage: {\n type: String,\n default: null\n },\n /**\n * Declares username is not a user's name, when true.\n * Prevents loading user's avatar from server and forces generating colored initials,\n * i.e. if the user is a group\n */\n isNoUser: {\n type: Boolean,\n default: false\n },\n /**\n * Selector for the popover menu container\n */\n menuContainer: {\n type: [Boolean, String, Object, Element],\n default: \"body\"\n }\n },\n setup() {\n const isDarkTheme = useIsDarkTheme();\n return {\n isDarkTheme\n };\n },\n data() {\n return {\n avatarUrlLoaded: null,\n avatarSrcSetLoaded: null,\n userDoesNotExist: false,\n isAvatarLoaded: false,\n isMenuLoaded: false,\n contactsMenuLoading: false,\n contactsMenuData: {},\n contactsMenuActions: [],\n contactsMenuOpenState: false\n };\n },\n computed: {\n avatarAriaLabel() {\n if (!this.hasMenu) {\n return;\n }\n if (this.canDisplayUserStatus || this.showUserStatusIconOnAvatar) {\n return t(\"Avatar of {displayName}, {status}\", { displayName: this.displayName ?? this.user, status: getUserStatusText(this.userStatus.status) });\n }\n return t(\"Avatar of {displayName}\", { displayName: this.displayName ?? this.user });\n },\n canDisplayUserStatus() {\n return !this.hideStatus && this.hasStatus && [\"online\", \"away\", \"busy\", \"dnd\"].includes(this.userStatus.status);\n },\n showUserStatusIconOnAvatar() {\n return !this.hideStatus && !this.verboseStatus && this.hasStatus && this.userStatus.status !== \"dnd\" && this.userStatus.icon;\n },\n /**\n * The user identifier, either the display name if set or the user property\n * If both properties are not set an empty string is returned\n */\n userIdentifier() {\n if (this.isDisplayNameDefined) {\n return this.displayName;\n }\n if (this.isUserDefined) {\n return this.user;\n }\n return \"\";\n },\n isUserDefined() {\n return typeof this.user !== \"undefined\";\n },\n isDisplayNameDefined() {\n return typeof this.displayName !== \"undefined\";\n },\n isUrlDefined() {\n return typeof this.url !== \"undefined\";\n },\n hasMenu() {\n if (this.disableMenu) {\n return false;\n }\n if (this.isMenuLoaded) {\n return this.menu.length > 0;\n }\n return !(this.user === getCurrentUser()?.uid || this.userDoesNotExist || this.url);\n },\n /**\n * True if initials should be shown as the user icon fallback\n */\n showInitials() {\n return !this.noPlaceholder && this.userDoesNotExist && !(this.iconClass || this.$slots.icon);\n },\n avatarStyle() {\n return {\n \"--avatar-size\": this.size + \"px\",\n lineHeight: this.showInitials ? this.size + \"px\" : 0,\n fontSize: Math.round(this.size * 0.45) + \"px\"\n };\n },\n initialsWrapperStyle() {\n const { r, g, b } = usernameToColor(this.userIdentifier);\n return {\n backgroundColor: `rgba(${r}, ${g}, ${b}, 0.1)`\n };\n },\n initialsStyle() {\n const { r, g, b } = usernameToColor(this.userIdentifier);\n return {\n color: `rgb(${r}, ${g}, ${b})`\n };\n },\n tooltip() {\n if (this.disableTooltip) {\n return null;\n }\n if (this.tooltipMessage) {\n return this.tooltipMessage;\n }\n return this.displayName;\n },\n /**\n * Get the (max. two) initials of the user as uppcase string\n */\n initials() {\n let initials = \"?\";\n if (this.showInitials) {\n const user = this.userIdentifier.trim();\n if (user === \"\") {\n return initials;\n }\n const filteredChars = user.match(/[\\p{L}\\p{N}\\s]/gu);\n if (!filteredChars) {\n return initials;\n }\n const filtered = filteredChars.join(\"\");\n const idx = filtered.lastIndexOf(\" \");\n initials = String.fromCodePoint(filtered.codePointAt(0));\n if (idx !== -1) {\n initials = initials.concat(String.fromCodePoint(filtered.codePointAt(idx + 1)));\n }\n }\n return initials.toLocaleUpperCase();\n },\n menu() {\n const actions = this.contactsMenuActions.map((item) => {\n const route = getRoute(this.$router, item.hyperlink);\n return {\n ncActionComponent: route ? NcActionRouter : NcActionLink,\n ncActionComponentProps: route ? {\n to: route,\n icon: item.icon\n } : {\n href: item.hyperlink,\n icon: item.icon\n },\n text: item.title\n };\n });\n for (const action of getEnabledContactsMenuActions(this.contactsMenuData)) {\n try {\n actions.push({\n ncActionComponent: NcActionButton,\n ncActionComponentProps: {\n onClick: () => action.callback(this.contactsMenuData)\n },\n text: action.displayName(this.contactsMenuData),\n iconSvg: action.iconSvg(this.contactsMenuData)\n });\n } catch (error) {\n logger.error(`Failed to render ContactsMenu action ${action.id}`, {\n error,\n action\n });\n }\n }\n function escape(html) {\n const text = document.createTextNode(html);\n const p = document.createElement(\"p\");\n p.appendChild(text);\n return p.innerHTML;\n }\n if (!this.hideStatus && (this.userStatus.icon || this.userStatus.message)) {\n const emojiIcon = `\n\t\t\t\t\t${escape(this.userStatus.icon)}\n\t\t\t\t`;\n return [{\n ncActionComponent: NcActionText,\n ncActionComponentProps: {},\n iconSvg: this.userStatus.icon ? emojiIcon : void 0,\n text: `${this.userStatus.message}`\n }].concat(actions);\n }\n return actions;\n }\n },\n watch: {\n url() {\n this.userDoesNotExist = false;\n this.loadAvatarUrl();\n },\n user() {\n this.userDoesNotExist = false;\n this.isMenuLoaded = false;\n this.loadAvatarUrl();\n }\n },\n mounted() {\n this.loadAvatarUrl();\n subscribe(\"settings:avatar:updated\", this.loadAvatarUrl);\n subscribe(\"settings:display-name:updated\", this.loadAvatarUrl);\n if (!this.hideStatus && this.user && !this.isNoUser) {\n if (!this.preloadedUserStatus) {\n this.fetchUserStatus(this.user);\n } else {\n this.setUserStatus(this.preloadedUserStatus);\n }\n subscribe(\"user_status:status.updated\", this.handleUserStatusUpdated);\n } else if (!this.hideStatus && this.preloadedUserStatus) {\n this.setUserStatus(this.preloadedUserStatus);\n }\n },\n beforeUnmount() {\n unsubscribe(\"settings:avatar:updated\", this.loadAvatarUrl);\n unsubscribe(\"settings:display-name:updated\", this.loadAvatarUrl);\n unsubscribe(\"user_status:status.updated\", this.handleUserStatusUpdated);\n },\n methods: {\n t,\n handleUserStatusUpdated(state) {\n if (this.user === state.userId) {\n this.userStatus = {\n status: state.status,\n icon: state.icon,\n message: state.message\n };\n this.hasStatus = state.status !== null;\n }\n },\n /**\n * Toggle the popover menu on click or enter\n *\n * @param {KeyboardEvent|MouseEvent} event the UI event\n */\n async toggleMenu(event) {\n if (event.type === \"keydown\" && event.key !== \"Enter\") {\n return;\n }\n if (!this.contactsMenuOpenState) {\n await this.fetchContactsMenu();\n }\n this.contactsMenuOpenState = !this.contactsMenuOpenState;\n },\n closeMenu() {\n this.contactsMenuOpenState = false;\n },\n async fetchContactsMenu() {\n this.contactsMenuLoading = true;\n try {\n const user = encodeURIComponent(this.user);\n const { data } = await axios.post(generateUrl(\"contactsmenu/findOne\"), `shareType=0&shareWith=${user}`);\n this.contactsMenuData = data;\n this.contactsMenuActions = data.topAction ? [data.topAction].concat(data.actions) : data.actions;\n } catch {\n this.contactsMenuOpenState = false;\n }\n this.contactsMenuLoading = false;\n this.isMenuLoaded = true;\n },\n /**\n * Handle avatar loading if user or url defined\n */\n loadAvatarUrl() {\n this.isAvatarLoaded = false;\n if (!this.isUrlDefined && (!this.isUserDefined || this.isNoUser || this.iconClass || this.$slots.icon)) {\n this.isAvatarLoaded = true;\n this.userDoesNotExist = true;\n return;\n }\n if (this.isUrlDefined) {\n this.updateImageIfValid(this.url);\n return;\n }\n if (this.size <= 64) {\n const avatarUrl = this.avatarUrlGenerator(this.user, 64);\n const srcset = [\n avatarUrl + \" 1x\",\n this.avatarUrlGenerator(this.user, 512) + \" 8x\"\n ].join(\", \");\n this.updateImageIfValid(avatarUrl, srcset);\n } else {\n const avatarUrl = this.avatarUrlGenerator(this.user, 512);\n this.updateImageIfValid(avatarUrl);\n }\n },\n /**\n * Generate an avatar url from the server's avatar endpoint\n *\n * @param {string} user the user id\n * @param {number} size the desired size\n * @return {string}\n */\n avatarUrlGenerator(user, size) {\n let avatarUrl = getAvatarUrl(user, {\n size,\n isDarkTheme: this.isDarkTheme,\n isGuest: this.isGuest\n });\n if (user === getCurrentUser()?.uid && typeof oc_userconfig !== \"undefined\") {\n avatarUrl += \"?v=\" + window.oc_userconfig.avatar.version;\n }\n return avatarUrl;\n },\n /**\n * Check if the provided url is valid and update Avatar if so\n *\n * @param {string} url the avatar url\n * @param {Array} srcset the avatar srcset\n */\n updateImageIfValid(url, srcset = null) {\n const userHasAvatar = getUserHasAvatar(this.user);\n if (this.isUserDefined && typeof userHasAvatar === \"boolean\") {\n this.isAvatarLoaded = true;\n this.avatarUrlLoaded = url;\n if (srcset) {\n this.avatarSrcSetLoaded = srcset;\n }\n if (userHasAvatar === false) {\n this.userDoesNotExist = true;\n }\n return;\n }\n const img = new Image();\n img.onload = () => {\n this.avatarUrlLoaded = url;\n if (srcset) {\n this.avatarSrcSetLoaded = srcset;\n }\n this.isAvatarLoaded = true;\n setUserHasAvatar(this.user, true);\n };\n img.onerror = (error) => {\n logger.debug(\"[NcAvatar] Invalid avatar url\", { error, url });\n this.avatarUrlLoaded = null;\n this.avatarSrcSetLoaded = null;\n this.userDoesNotExist = true;\n this.isAvatarLoaded = false;\n setUserHasAvatar(this.user, false);\n };\n if (srcset) {\n img.srcset = srcset;\n }\n img.src = url;\n }\n }\n};\nconst _hoisted_1 = [\"title\"];\nconst _hoisted_2 = [\"src\", \"srcset\"];\nconst _hoisted_3 = {\n key: 2,\n class: \"avatardiv__user-status avatardiv__user-status--icon\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcLoadingIcon = resolveComponent(\"NcLoadingIcon\");\n const _component_IconDotsHorizontal = resolveComponent(\"IconDotsHorizontal\");\n const _component_NcButton = resolveComponent(\"NcButton\");\n const _component_NcIconSvgWrapper = resolveComponent(\"NcIconSvgWrapper\");\n const _component_NcActions = resolveComponent(\"NcActions\");\n const _component_NcUserStatusIcon = resolveComponent(\"NcUserStatusIcon\");\n const _directive_click_outside = resolveDirective(\"click-outside\");\n return withDirectives((openBlock(), createElementBlock(\"span\", {\n class: normalizeClass([\"avatardiv popovermenu-wrapper\", {\n \"avatardiv--unknown\": $data.userDoesNotExist,\n \"avatardiv--with-menu\": $options.hasMenu,\n \"avatardiv--with-menu-loading\": $data.contactsMenuLoading\n }]),\n style: normalizeStyle($options.avatarStyle),\n title: $options.tooltip\n }, [\n renderSlot(_ctx.$slots, \"icon\", {}, () => [\n $props.iconClass ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n class: normalizeClass([$props.iconClass, \"avatar-class-icon\"])\n }, null, 2)) : $data.isAvatarLoaded && !$data.userDoesNotExist ? (openBlock(), createElementBlock(\"img\", {\n key: 1,\n src: $data.avatarUrlLoaded,\n srcset: $data.avatarSrcSetLoaded,\n alt: \"\"\n }, null, 8, _hoisted_2)) : createCommentVNode(\"\", true)\n ], true),\n $options.hasMenu && $options.menu.length === 0 ? (openBlock(), createBlock(_component_NcButton, {\n key: 0,\n \"aria-label\": $options.avatarAriaLabel,\n class: \"action-item action-item__menutoggle\",\n variant: \"tertiary-no-background\",\n onClick: $options.toggleMenu\n }, {\n icon: withCtx(() => [\n $data.contactsMenuLoading ? (openBlock(), createBlock(_component_NcLoadingIcon, { key: 0 })) : (openBlock(), createBlock(_component_IconDotsHorizontal, {\n key: 1,\n size: 20\n }))\n ]),\n _: 1\n }, 8, [\"aria-label\", \"onClick\"])) : $options.hasMenu ? (openBlock(), createBlock(_component_NcActions, {\n key: 1,\n open: $data.contactsMenuOpenState,\n \"onUpdate:open\": _cache[0] || (_cache[0] = ($event) => $data.contactsMenuOpenState = $event),\n \"aria-label\": $options.avatarAriaLabel,\n container: $props.menuContainer,\n \"force-menu\": \"\",\n \"manual-open\": \"\",\n variant: \"tertiary-no-background\",\n onClick: $options.toggleMenu\n }, createSlots({\n default: withCtx(() => [\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.menu, (item, key) => {\n return openBlock(), createBlock(resolveDynamicComponent(item.ncActionComponent), mergeProps({ key }, { ref_for: true }, item.ncActionComponentProps), createSlots({\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString(item.text), 1)\n ]),\n _: 2\n }, [\n item.iconSvg ? {\n name: \"icon\",\n fn: withCtx(() => [\n createVNode(_component_NcIconSvgWrapper, {\n svg: item.iconSvg\n }, null, 8, [\"svg\"])\n ]),\n key: \"0\"\n } : void 0\n ]), 1040);\n }), 128))\n ]),\n _: 2\n }, [\n $data.contactsMenuLoading ? {\n name: \"icon\",\n fn: withCtx(() => [\n createVNode(_component_NcLoadingIcon)\n ]),\n key: \"0\"\n } : void 0\n ]), 1032, [\"open\", \"aria-label\", \"container\", \"onClick\"])) : createCommentVNode(\"\", true),\n $options.showUserStatusIconOnAvatar ? (openBlock(), createElementBlock(\"span\", _hoisted_3, toDisplayString(_ctx.userStatus.icon), 1)) : $options.canDisplayUserStatus ? (openBlock(), createBlock(_component_NcUserStatusIcon, {\n key: 3,\n class: \"avatardiv__user-status\",\n status: _ctx.userStatus.status,\n \"aria-hidden\": String($options.hasMenu)\n }, null, 8, [\"status\", \"aria-hidden\"])) : createCommentVNode(\"\", true),\n $options.showInitials ? (openBlock(), createElementBlock(\"span\", {\n key: 4,\n style: normalizeStyle($options.initialsWrapperStyle),\n class: \"avatardiv__initials-wrapper\"\n }, [\n createElementVNode(\"span\", {\n style: normalizeStyle($options.initialsStyle),\n class: \"avatardiv__initials\"\n }, toDisplayString($options.initials), 5)\n ], 4)) : createCommentVNode(\"\", true)\n ], 14, _hoisted_1)), [\n [_directive_click_outside, $options.closeMenu]\n ]);\n}\nconst NcAvatar = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-d7dc2a1f\"]]);\nexport {\n NcAvatar as N,\n userStatus as u\n};\n//# sourceMappingURL=NcAvatar-DmUGApWA.mjs.map\n"],"names":["_sfc_main","ActionTextMixin","NC_ACTIONS_IS_SEMANTIC_MENU","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","openBlock","createElementBlock","createElementVNode","args","renderSlot","normalizeClass","normalizeStyle","createCommentVNode","toDisplayString","NcActionText","_export_sfc","INJECTION_KEY_THEME","useIsDarkThemeElement","el","element","computed","toValue","isDarkTheme","ref","checkIfDarkTheme","isDarkSystemTheme","usePreferredDark","updateIsDarkTheme","useMutationObserver","watch","readonly","useInternalIsDarkTheme","createSharedComposable","useIsDarkTheme","enforcedTheme","inject","stopClickOutsideMap","vOnClickOutside","binding","capture","stop","onClickOutside","handler","options","onScrollLock","isMounted","state","shallowRef","isLocked","useScrollLock","v","getEnabledContactsMenuActions","entry","action","c","i","a","t","e","s","r","n","o","_","hashCode","str","hash","Md5","finalInt","usernameToColor","username","finalPalette","generatePalette","global","Symbol","name","STATE_PLAINTEXT","STATE_HTML","STATE_COMMENT","ALLOWED_TAGS_REGEX","NORMALIZE_TAG_REGEX","striptags","html","allowable_tags","tag_replacement","context","init_context","striptags_internal","init_striptags_stream","parse_allowable_tags","tag_buffer","depth","in_quote_char","output","idx","length","char","normalize_tag","tag_set","match","module","this","getAvatarUrl","user","size","guestUrl","themeUrl","generateUrl","register","t10","userStatus","userId","capabilities","getCapabilities","getCurrentUser","data","axios","generateOcsUrl","logger","status","message","icon","browserStorage","getBuilder","getUserHasAvatar","flag","setUserHasAvatar","IconDotsHorizontal","NcActions","NcButton","NcIconSvgWrapper","NcLoadingIcon","NcUserStatusIcon","getUserStatusText","g","b","initials","filteredChars","filtered","actions","item","route","getRoute","NcActionRouter","NcActionLink","NcActionButton","error","escape","text","p","emojiIcon","subscribe","unsubscribe","event","avatarUrl","srcset","url","userHasAvatar","img","_component_NcLoadingIcon","resolveComponent","_component_IconDotsHorizontal","_component_NcButton","_component_NcIconSvgWrapper","_component_NcActions","_component_NcUserStatusIcon","_directive_click_outside","resolveDirective","withDirectives","createBlock","withCtx","$event","createSlots","Fragment","renderList","key","resolveDynamicComponent","mergeProps","createTextVNode","createVNode","NcAvatar"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9]} \ No newline at end of file diff --git a/dist/NcAvatar-DmUGApWA-xbPVEdSn.chunk.mjs.map.license b/dist/NcAvatar-DmUGApWA-xbPVEdSn.chunk.mjs.map.license new file mode 100644 index 0000000000000..814c91d4a3821 --- /dev/null +++ b/dist/NcAvatar-DmUGApWA-xbPVEdSn.chunk.mjs.map.license @@ -0,0 +1,20 @@ +SPDX-License-Identifier: AGPL-3.0-or-later +SPDX-License-Identifier: MIT +SPDX-FileCopyrightText: Eric Norris (https://github.com/ericnorris) +SPDX-FileCopyrightText: Jacob Clevenger +SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors +SPDX-FileCopyrightText: ts-md5 developers + +This file is generated from multiple sources. Included packages: +- @nextcloud/vue + - version: 9.3.1 + - license: AGPL-3.0-or-later +- @vueuse/components + - version: 14.1.0 + - license: MIT +- striptags + - version: 3.2.0 + - license: MIT +- ts-md5 + - version: 2.0.1 + - license: MIT diff --git a/dist/NcBreadcrumbs-DYfGaSjT-BPFs0jvP.chunk.mjs b/dist/NcBreadcrumbs-DYfGaSjT-BPFs0jvP.chunk.mjs new file mode 100644 index 0000000000000..285089eb56e9d --- /dev/null +++ b/dist/NcBreadcrumbs-DYfGaSjT-BPFs0jvP.chunk.mjs @@ -0,0 +1,3 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=[window.OC.filePath('', '', 'dist/index-FxQbLoUx.chunk.mjs'),window.OC.filePath('', '', 'dist/createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs'),window.OC.filePath('', '', 'dist/string_decoder-vT-u9WbV.chunk.mjs'),window.OC.filePath('', '', 'dist/index-Bndk0DrU.chunk.mjs'),window.OC.filePath('', '', 'dist/AccountOutline-BlW-6JqD.chunk.mjs'),window.OC.filePath('', '', 'dist/runtime-dom.esm-bundler-DdtEg5E9.chunk.mjs'),window.OC.filePath('', '', 'dist/index-DCpg1aui.chunk.mjs'),window.OC.filePath('', '', 'dist/AccountOutline-Bx-uhVVO.chunk.css'),window.OC.filePath('', '', 'dist/NcModal-MC_HktJd-DqeuH-fk.chunk.mjs'),window.OC.filePath('', '', 'dist/NcModal-MC_HktJd-YC6kxNbR.chunk.css'),window.OC.filePath('', '', 'dist/NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-BNncp1Y1.chunk.mjs'),window.OC.filePath('', '', 'dist/NcDateTime-DXOHXnuu.chunk.css'),window.OC.filePath('', '', 'dist/Web-aYJacExm.chunk.mjs'),window.OC.filePath('', '', 'dist/Web-BYHcrfvW.chunk.css'),window.OC.filePath('', '', 'dist/NcSelect-Czzsi3P_-BKaYvmLF.chunk.mjs'),window.OC.filePath('', '', 'dist/NcSelect-Czzsi3P_-DxGOLvnt.chunk.css'),window.OC.filePath('', '', 'dist/NcInputField-Bwsh2aHY-Cz27INBW.chunk.mjs'),window.OC.filePath('', '', 'dist/NcInputField-Bwsh2aHY-_gyGHRGx.chunk.css'),window.OC.filePath('', '', 'dist/index-JpgrUA2Z-BXxDc_if.chunk.mjs'),window.OC.filePath('', '', 'dist/mdi-BpC5Cj53.chunk.mjs'),window.OC.filePath('', '', 'dist/mdi-Jq77EThs.chunk.css'),window.OC.filePath('', '', 'dist/index-JpgrUA2Z-CX17yN4T.chunk.css'),window.OC.filePath('', '', 'dist/NcContent-BR_nMwKN-DuxjkyFF.chunk.mjs'),window.OC.filePath('', '', 'dist/NcContent-BR_nMwKN-BSxKRQfD.chunk.css'),window.OC.filePath('', '', 'dist/index-QzsMEHKe.chunk.mjs'),window.OC.filePath('', '', 'dist/index-DoZPzs7J.chunk.css'),window.OC.filePath('', '', 'dist/NcAvatar-DmUGApWA-xbPVEdSn.chunk.mjs'),window.OC.filePath('', '', 'dist/index-DVH_Kr3Q.chunk.mjs'),window.OC.filePath('', '', 'dist/public-uQ6dl0vH.chunk.mjs'),window.OC.filePath('', '', 'dist/colors-Go3zmZRD-DNxaZwS4.chunk.mjs'),window.OC.filePath('', '', 'dist/PencilOutline-BSRAQiy1.chunk.mjs'),window.OC.filePath('', '', 'dist/PencilOutline-Bq_6hmXG.chunk.css'),window.OC.filePath('', '', 'dist/NcAvatar-DmUGApWA-B-07Svbi.chunk.css'),window.OC.filePath('', '', 'dist/NcEmojiPicker-pM4Pg2yq-CYkSkF_Y.chunk.mjs'),window.OC.filePath('', '', 'dist/NcColorPicker-Kc0JqRtp-G7GArS5K.chunk.mjs'),window.OC.filePath('', '', 'dist/NcColorPicker-Kc0JqRtp-BOLDG5h-.chunk.css'),window.OC.filePath('', '', 'dist/TrashCanOutline-DglPBhgI.chunk.mjs'),window.OC.filePath('', '', 'dist/NcEmojiPicker-pM4Pg2yq-BHtXoCfG.chunk.css'),window.OC.filePath('', '', 'dist/NcRichText-CBMtJzE_-BrKByk17.chunk.mjs'),window.OC.filePath('', '', 'dist/NcCheckboxRadioSwitch-BCSKF7Tk-B1Kcz6gU.chunk.mjs'),window.OC.filePath('', '', 'dist/NcCheckboxRadioSwitch-BCSKF7Tk-BgdwjgMO.chunk.css'),window.OC.filePath('', '', 'dist/NcRichText-CBMtJzE_-DAm7eJJb.chunk.css'),window.OC.filePath('', '', 'dist/index-BrN_nqOS.chunk.css')])))=>i.map(i=>d[i]); +import{_ as I}from"./index-DCpg1aui.chunk.mjs";import{b as B,p as R,q as j,x as S,j as P,o as b,k as g,t as V,n as w,z as k,a as N,f as T,m as Y,I as C,H as Z,l as M,c as x,e as H,w as W}from"./runtime-dom.esm-bundler-DdtEg5E9.chunk.mjs";import{r as z,_ as F,b as A,c as E,k as G}from"./createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs";import{c as J}from"./NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-BNncp1Y1.chunk.mjs";import{N as K}from"./NcPasswordField-djttkA5Q-Dz7uhHFj.chunk.mjs";import{_ as Q}from"./TrashCanOutline-DglPBhgI.chunk.mjs";import{f as X}from"./index-Bndk0DrU.chunk.mjs";z();const ee=["for"],te=["id","type","value","min","max"],ie=B({inheritAttrs:!1,__name:"NcDateTimePickerNative",props:R({class:{default:void 0},id:{default:()=>E()},inputClass:{default:""},type:{default:"date"},label:{default:()=>A("Please choose a date")},min:{default:null},max:{default:null},hideLabel:{type:Boolean}},{modelValue:{default:null},modelModifiers:{}}),emits:["update:modelValue"],setup(s){const t=j(s,"modelValue"),e=s,c=S(()=>t.value?l(t.value):""),m=S(()=>e.max?l(e.max):void 0),r=S(()=>e.min?l(e.min):void 0);function h(i){const a=i.getFullYear().toString().padStart(4,"0"),u=(i.getMonth()+1).toString().padStart(2,"0"),d=i.getDate().toString().padStart(2,"0"),p=i.getHours().toString().padStart(2,"0"),f=i.getMinutes().toString().padStart(2,"0");return{yyyy:a,MM:u,dd:d,hh:p,mm:f}}function l(i){const{yyyy:a,MM:u,dd:d,hh:p,mm:f}=h(i);if(e.type==="datetime-local")return`${a}-${u}-${d}T${p}:${f}`;if(e.type==="date")return`${a}-${u}-${d}`;if(e.type==="month")return`${a}-${u}`;if(e.type==="time")return`${p}:${f}`;if(e.type==="week"){const o=new Date(Number.parseInt(a),0,1),v=Math.floor((i.getTime()-o.getTime())/(1440*60*1e3)),_=Math.ceil(v/7);return`${a}-W${_}`}return""}function n(i){const a=i.target;if(!a||isNaN(a.valueAsNumber))t.value=null;else if(e.type==="time"){const u=a.value,{yyyy:d,MM:p,dd:f}=h(t.value||new Date);t.value=new Date(`${d}-${p}-${f}T${u}`)}else if(e.type==="month"){const u=(new Date(a.value).getMonth()+1).toString().padStart(2,"0"),{yyyy:d,dd:p,hh:f,mm:o}=h(t.value||new Date);t.value=new Date(`${d}-${u}-${p}T${f}:${o}`)}else{const u=new Date(a.valueAsNumber).getTimezoneOffset()*1e3*60,d=a.valueAsNumber+u;t.value=new Date(d)}}return(i,a)=>(b(),P("div",{class:w(["native-datetime-picker",i.$props.class])},[g("label",{class:w(["native-datetime-picker__label",{"hidden-visually":i.hideLabel}]),for:i.id},V(i.label),11,ee),g("input",k({id:i.id,class:["native-datetime-picker__input",i.inputClass],type:i.type,value:c.value,min:r.value,max:m.value},i.$attrs,{onInput:n}),null,16,te)],2))}}),ae=F(ie,[["__scopeId","data-v-b97e1f7a"]]);z(G);const ne={name:"NcActionInput",components:{NcDateTimePickerNative:ae,NcPasswordField:K,NcTextField:Q,NcColorPicker:N(()=>I(()=>import("./index-FxQbLoUx.chunk.mjs").then(s=>s.i),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42]),import.meta.url)),NcDateTimePicker:N(()=>I(()=>import("./index-FxQbLoUx.chunk.mjs").then(s=>s.c),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42]),import.meta.url)),NcSelect:N(()=>I(()=>import("./index-QzsMEHKe.chunk.mjs").then(s=>s.i),__vite__mapDeps([24,1,2,3,5,14,8,4,6,7,9,12,13,15,25]),import.meta.url))},mixins:[J],inheritAttrs:!1,props:{id:{type:String,default:()=>"action-"+E(),validator:s=>s.trim()!==""},inputId:{type:String,default:()=>"action-input-"+E(),validator:s=>s.trim()!==""},icon:{type:String,default:""},type:{type:String,default:"text",validator(s){return["date","datetime-local","month","multiselect","number","password","search","tel","text","time","url","week","color","email"].includes(s)}},idNativeDateTimePicker:{type:String,default:"date-time-picker_id"},isNativePicker:{type:Boolean,default:!1},label:{type:String,default:null},labelOutside:{type:Boolean,default:!0},modelValue:{type:[String,Date,Number,Array],default:""},disabled:{type:Boolean,default:!1},ariaLabel:{type:String,default:""},showTrailingButton:{type:Boolean,default:!0},trailingButtonLabel:{type:String,default:A("Submit")},class:{type:[String,Array,Object],default:""}},emits:["submit","update:modelValue"],computed:{isIconUrl(){try{return new URL(this.icon)}catch{return!1}},isMultiselectType(){return this.type==="multiselect"},nativeDatePickerType(){switch(this.type){case"date":case"month":case"time":case"week":case"datetime-local":return this.type}return!1},datePickerType(){if(!this.isNativePicker)switch(this.type){case"date":case"month":case"time":return this.type;case"datetime-local":return"datetime"}return!1},isFocusable(){return!this.disabled}},methods:{onLeave(){this.$refs.datetimepicker&&this.$refs.datetimepicker.$refs.datepicker&&this.$refs.datetimepicker.$refs.datepicker.closePopup()},onSubmit(s){if(s.preventDefault(),s.stopPropagation(),!this.disabled)this.$emit("submit",s);else return!1},onUpdateModelValue(s){this.$emit("update:modelValue",s)}}},se={class:"action-input__icon-wrapper"},re=["disabled"],oe={class:"action-input__container"},le=["for"],ue={class:"action-input__input-container"},ce={key:4,class:"action-input__container"},de=["for"],pe={class:"action-input__input-container"};function he(s,t,e,c,m,r){const h=T("NcDateTimePicker"),l=T("NcDateTimePickerNative"),n=T("NcSelect"),i=T("NcPasswordField"),a=T("NcColorPicker"),u=T("NcTextField");return b(),P("li",{class:w(["action",[{"action--disabled":e.disabled},s.$props.class]])},[g("span",{class:w(["action-input",{"action-input-picker--disabled":e.disabled,"action-input--visible-label":e.labelOutside&&e.label}]),onMouseleave:t[3]||(t[3]=(...d)=>r.onLeave&&r.onLeave(...d))},[g("span",se,[Y(s.$slots,"icon",{},()=>[g("span",{"aria-hidden":"true",class:w(["action-input__icon",[r.isIconUrl?"action-input__icon--url":e.icon]]),style:C({backgroundImage:r.isIconUrl?`url(${e.icon})`:null})},null,6)],!0)]),g("form",{ref:"form",class:"action-input__form",disabled:e.disabled,onSubmit:t[2]||(t[2]=Z((...d)=>r.onSubmit&&r.onSubmit(...d),["prevent"]))},[g("div",oe,[e.label&&e.labelOutside&&!e.isNativePicker?(b(),P("label",{key:0,class:w(["action-input__text-label",{"action-input__text-label--hidden":!e.labelOutside}]),for:e.inputId},V(e.label),11,le)):M("",!0),g("div",ue,[r.datePickerType?(b(),x(h,k({key:0,ref:"datetimepicker","model-value":e.modelValue,style:{"z-index":"99999999999"},placeholder:s.text,disabled:e.disabled,type:r.datePickerType,"input-class":["mx-input",{focusable:r.isFocusable}],class:"action-input__datetimepicker","append-to-body":""},s.$attrs,{"onUpdate:modelValue":r.onUpdateModelValue}),null,16,["model-value","placeholder","disabled","type","input-class","onUpdate:modelValue"])):e.isNativePicker?(b(),x(l,k({key:1,id:e.idNativeDateTimePicker,"model-value":e.modelValue,label:e.label,type:r.nativeDatePickerType,"input-class":{focusable:r.isFocusable},class:"action-input__datetimepicker"},s.$attrs,{"onUpdate:modelValue":r.onUpdateModelValue}),null,16,["id","model-value","label","type","input-class","onUpdate:modelValue"])):r.isMultiselectType?(b(),x(n,k({key:2,"model-value":e.modelValue,placeholder:s.text,disabled:e.disabled,"append-to-body":!1,"input-class":{focusable:r.isFocusable},class:"action-input__multi"},s.$attrs,{"onUpdate:modelValue":r.onUpdateModelValue}),null,16,["model-value","placeholder","disabled","input-class","onUpdate:modelValue"])):e.type==="password"?(b(),x(i,k({key:3,id:e.inputId,"model-value":e.modelValue,label:e.label,"label-outside":!e.label||e.labelOutside,placeholder:s.text,disabled:e.disabled,"input-class":{focusable:r.isFocusable},"show-trailing-button":e.showTrailingButton&&!e.disabled},s.$attrs,{"onUpdate:modelValue":r.onUpdateModelValue}),null,16,["id","model-value","label","label-outside","placeholder","disabled","input-class","show-trailing-button","onUpdate:modelValue"])):e.type==="color"?(b(),P("div",ce,[e.label&&e.type==="color"?(b(),P("label",{key:0,class:w(["action-input__text-label",{"action-input__text-label--hidden":!e.labelOutside}]),for:e.inputId},V(e.label),11,de)):M("",!0),g("div",pe,[H(a,k({id:"inputId","model-value":e.modelValue,class:"colorpicker__trigger"},s.$attrs,{"onUpdate:modelValue":r.onUpdateModelValue,onSubmit:t[0]||(t[0]=d=>s.$refs.form.requestSubmit())}),{default:W(()=>[g("button",{class:w(["colorpicker__preview",{focusable:r.isFocusable}]),style:C({"background-color":e.modelValue})},null,6)]),_:1},16,["model-value","onUpdate:modelValue"])])])):(b(),x(u,k({key:5,id:e.inputId,"model-value":e.modelValue,label:e.label,"label-outside":!e.label||e.labelOutside,placeholder:s.text,disabled:e.disabled,"input-class":{focusable:r.isFocusable},type:e.type,"trailing-button-icon":"arrowRight","trailing-button-label":e.trailingButtonLabel,"show-trailing-button":e.showTrailingButton&&!e.disabled},s.$attrs,{onTrailingButtonClick:t[1]||(t[1]=d=>s.$refs.form.requestSubmit()),"onUpdate:modelValue":r.onUpdateModelValue}),null,16,["id","model-value","label","label-outside","placeholder","disabled","input-class","type","trailing-button-label","show-trailing-button","onUpdate:modelValue"]))])])],40,re)],34)],2)}const Ie=F(ne,[["render",he],["__scopeId","data-v-67b3d681"]]);var D={exports:{}},O;function me(){return O||(O=1,(function(s){var t=Object.prototype.hasOwnProperty,e="~";function c(){}Object.create&&(c.prototype=Object.create(null),new c().__proto__||(e=!1));function m(n,i,a){this.fn=n,this.context=i,this.once=a||!1}function r(n,i,a,u,d){if(typeof a!="function")throw new TypeError("The listener must be a function");var p=new m(a,u||n,d),f=e?e+i:i;return n._events[f]?n._events[f].fn?n._events[f]=[n._events[f],p]:n._events[f].push(p):(n._events[f]=p,n._eventsCount++),n}function h(n,i){--n._eventsCount===0?n._events=new c:delete n._events[i]}function l(){this._events=new c,this._eventsCount=0}l.prototype.eventNames=function(){var n=[],i,a;if(this._eventsCount===0)return n;for(a in i=this._events)t.call(i,a)&&n.push(e?a.slice(1):a);return Object.getOwnPropertySymbols?n.concat(Object.getOwnPropertySymbols(i)):n},l.prototype.listeners=function(n){var i=e?e+n:n,a=this._events[i];if(!a)return[];if(a.fn)return[a.fn];for(var u=0,d=a.length,p=new Array(d);us.reason??new DOMException("This operation was aborted.","AbortError");function ve(s,t){const{milliseconds:e,fallback:c,message:m,customTimers:r={setTimeout,clearTimeout},signal:h}=t;let l,n;const i=new Promise((a,u)=>{if(typeof e!="number"||Math.sign(e)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${e}\``);if(h?.aborted){u(U(h));return}if(h&&(n=()=>{u(U(h))},h.addEventListener("abort",n,{once:!0})),s.then(a,u),e===Number.POSITIVE_INFINITY)return;const d=new L;l=r.setTimeout.call(void 0,()=>{if(c){try{a(c())}catch(p){u(p)}return}typeof s.cancel=="function"&&s.cancel(),m===!1?a():m instanceof Error?u(m):(d.message=m??`Promise timed out after ${e} milliseconds`,u(d))},e)}).finally(()=>{i.clear(),n&&h&&h.removeEventListener("abort",n)});return i.clear=()=>{r.clearTimeout.call(void 0,l),l=void 0},i}function be(s,t,e){let c=0,m=s.length;for(;m>0;){const r=Math.trunc(m/2);let h=c+r;e(s[h],t)<=0?(c=++h,m-=r+1):m=r}return c}class ge{#t=[];enqueue(t,e){const{priority:c=0,id:m}=e??{},r={priority:c,id:m,run:t};if(this.size===0||this.#t[this.size-1].priority>=c){this.#t.push(r);return}const h=be(this.#t,r,(l,n)=>n.priority-l.priority);this.#t.splice(h,0,r)}setPriority(t,e){const c=this.#t.findIndex(r=>r.id===t);if(c===-1)throw new ReferenceError(`No promise function with the id "${t}" exists in the queue.`);const[m]=this.#t.splice(c,1);this.enqueue(m.run,{priority:e,id:t})}dequeue(){return this.#t.shift()?.run}filter(t){return this.#t.filter(e=>e.priority===t.priority).map(e=>e.run)}get size(){return this.#t.length}}class Se extends ye{#t;#a;#n=0;#h;#m=!1;#f=!1;#u;#g=0;#y=0;#s;#r;#e;#_;#i=0;#c;#o;#P=1n;#d=new Map;timeout;constructor(t){if(super(),t={carryoverIntervalCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:ge,...t},!(typeof t.intervalCap=="number"&&t.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${t.intervalCap?.toString()??""}\` (${typeof t.intervalCap})`);if(t.interval===void 0||!(Number.isFinite(t.interval)&&t.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${t.interval?.toString()??""}\` (${typeof t.interval})`);if(this.#t=t.carryoverIntervalCount??t.carryoverConcurrencyCount??!1,this.#a=t.intervalCap===Number.POSITIVE_INFINITY||t.interval===0,this.#h=t.intervalCap,this.#u=t.interval,this.#e=new t.queueClass,this.#_=t.queueClass,this.concurrency=t.concurrency,t.timeout!==void 0&&!(Number.isFinite(t.timeout)&&t.timeout>0))throw new TypeError(`Expected \`timeout\` to be a positive finite number, got \`${t.timeout}\` (${typeof t.timeout})`);this.timeout=t.timeout,this.#o=t.autoStart===!1,this.#C()}get#I(){return this.#a||this.#n0){const c=t-this.#y;if(c{this.#V()},t))}#k(){this.#s&&(clearInterval(this.#s),this.#s=void 0)}#L(){this.#r&&(clearTimeout(this.#r),this.#r=void 0)}#v(){if(this.#e.size===0)return this.#k(),this.emit("empty"),this.#i===0&&(this.#L(),this.emit("idle")),!1;let t=!1;if(!this.#o){const e=!this.#E;if(this.#I&&this.#S){const c=this.#e.dequeue();this.#a||(this.#n++,this.#p()),this.emit("active"),this.#y=Date.now(),c(),e&&this.#T(),t=!0}}return t}#T(){this.#a||this.#s!==void 0||(this.#s=setInterval(()=>{this.#$()},this.#u),this.#g=Date.now()+this.#u)}#$(){this.#n===0&&this.#i===0&&this.#s&&this.#k(),this.#n=this.#t?this.#i:0,this.#b(),this.#p()}#b(){for(;this.#v(););}get concurrency(){return this.#c}set concurrency(t){if(!(typeof t=="number"&&t>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${t}\` (${typeof t})`);this.#c=t,this.#b()}setPriority(t,e){if(typeof e!="number"||!Number.isFinite(e))throw new TypeError(`Expected \`priority\` to be a finite number, got \`${e}\` (${typeof e})`);this.#e.setPriority(t,e)}async add(t,e={}){return e.id??=(this.#P++).toString(),e={timeout:this.timeout,...e},new Promise((c,m)=>{const r=Symbol(`task-${e.id}`);this.#e.enqueue(async()=>{this.#i++,this.#d.set(r,{id:e.id,priority:e.priority??0,startTime:Date.now(),timeout:e.timeout});let h;try{try{e.signal?.throwIfAborted()}catch(i){throw this.#a||this.#n--,this.#d.delete(r),i}let l=t({signal:e.signal});if(e.timeout&&(l=ve(Promise.resolve(l),{milliseconds:e.timeout,message:`Task timed out after ${e.timeout}ms (queue has ${this.#i} running, ${this.#e.size} waiting)`})),e.signal){const{signal:i}=e;l=Promise.race([l,new Promise((a,u)=>{h=()=>{u(i.reason)},i.addEventListener("abort",h,{once:!0})})])}const n=await l;c(n),this.emit("completed",n)}catch(l){m(l),this.emit("error",l)}finally{h&&e.signal?.removeEventListener("abort",h),this.#d.delete(r),queueMicrotask(()=>{this.#N()})}},e),this.emit("add"),this.#v()})}async addAll(t,e){return Promise.all(t.map(async c=>this.add(c,e)))}start(){return this.#o?(this.#o=!1,this.#b(),this):this}pause(){this.#o=!0}clear(){this.#e=new this.#_,this.#x()}async onEmpty(){this.#e.size!==0&&await this.#l("empty")}async onSizeLessThan(t){this.#e.sizethis.#e.size{const c=m=>{this.off("error",c),e(m)};this.on("error",c)})}async#l(t,e){return new Promise(c=>{const m=()=>{e&&!e()||(this.off(t,m),c())};this.on(t,m)})}get size(){return this.#e.size}sizeBy(t){return this.#e.filter(t).length}get pending(){return this.#i}get isPaused(){return this.#o}#C(){this.#a||(this.on("add",()=>{this.#e.size>0&&this.#p()}),this.on("next",()=>{this.#p()}))}#p(){this.#a||this.#f||(this.#f=!0,queueMicrotask(()=>{this.#f=!1,this.#x()}))}#x(){const t=this.#m,e=!this.#a&&this.#n>=this.#h&&this.#e.size>0;e!==t&&(this.#m=e,this.emit(e?"rateLimit":"rateLimitCleared"))}get isRateLimited(){return this.#m}get isSaturated(){return this.#i===this.#c&&this.#e.size>0||this.isRateLimited&&this.#e.size>0}get runningTasks(){return[...this.#d.values()].map(t=>({...t}))}}export{ae as N,Se as P,Ie as a}; +//# sourceMappingURL=NcBreadcrumbs-DYfGaSjT-BPFs0jvP.chunk.mjs.map diff --git a/dist/NcBreadcrumbs-DYfGaSjT-DHeGymVL.chunk.mjs.license b/dist/NcBreadcrumbs-DYfGaSjT-BPFs0jvP.chunk.mjs.license similarity index 100% rename from dist/NcBreadcrumbs-DYfGaSjT-DHeGymVL.chunk.mjs.license rename to dist/NcBreadcrumbs-DYfGaSjT-BPFs0jvP.chunk.mjs.license diff --git a/dist/NcBreadcrumbs-DYfGaSjT-DHeGymVL.chunk.mjs.map b/dist/NcBreadcrumbs-DYfGaSjT-BPFs0jvP.chunk.mjs.map similarity index 99% rename from dist/NcBreadcrumbs-DYfGaSjT-DHeGymVL.chunk.mjs.map rename to dist/NcBreadcrumbs-DYfGaSjT-BPFs0jvP.chunk.mjs.map index 69333d42f40ec..9d2fe9d1e8056 100644 --- a/dist/NcBreadcrumbs-DYfGaSjT-DHeGymVL.chunk.mjs.map +++ b/dist/NcBreadcrumbs-DYfGaSjT-BPFs0jvP.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"mappings":"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","names":["register","_hoisted_1","_hoisted_2","_sfc_main","defineComponent","mergeModels","createElementId","t","__props","modelValue","useModel","props","formattedValue","computed","formatValue","formattedMax","formattedMin","getReadableDate","value","yyyy","MM","dd","hh","mm","startDate","daysSinceBeginningOfYear","weekNumber","onInput","event","input","time","timezoneOffsetSeconds","inputDateWithTimezone","_ctx","_cache","openBlock","createElementBlock","normalizeClass","createElementVNode","toDisplayString","mergeProps","NcDateTimePickerNative","_export_sfc","t48","NcPasswordField","_sfc_main$1","defineAsyncComponent","__vitePreload","n","ActionGlobalMixin","id","type","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_sfc_render","$props","$setup","$data","$options","_component_NcDateTimePicker","resolveComponent","_component_NcDateTimePickerNative","_component_NcSelect","_component_NcPasswordField","_component_NcColorPicker","_component_NcTextField","args","renderSlot","normalizeStyle","withModifiers","createCommentVNode","createBlock","createVNode","$event","withCtx","NcActionInput","has","prefix","Events","EE","fn","context","once","addListener","emitter","listener","evt","clearEvent","EventEmitter","names","events","name","handlers","i","l","ee","listeners","a1","a2","a3","a4","a5","len","length","j","module","TimeoutError","message","options","getAbortedReason","signal","pTimeout","promise","milliseconds","fallback","customTimers","timer","abortHandler","cancelablePromise","resolve","reject","timeoutError","error","lowerBound","array","comparator","first","count","step","it","PriorityQueue","#queue","run","priority","element","index","a","b","item","PQueue","#carryoverIntervalCount","#isIntervalIgnored","#intervalCount","#intervalCap","#rateLimitedInInterval","#rateLimitFlushScheduled","#interval","#intervalEnd","#lastExecutionTime","#intervalId","#timeoutId","#queueClass","#pending","#concurrency","#isPaused","#idAssigner","#runningTasks","#setupRateLimitTracking","#doesIntervalAllowAnother","#doesConcurrentAllowAnother","#next","#tryToStartAnother","#onResumeInterval","#onInterval","#initializeIntervalIfNeeded","#isIntervalPaused","now","delay","timeSinceLastExecution","#createIntervalTimeout","#clearIntervalTimer","#clearTimeoutTimer","taskStarted","canInitializeInterval","job","#scheduleRateLimitUpdate","#processQueue","newConcurrency","function_","taskSymbol","eventListener","operation","_resolve","result","functions","#updateRateLimitState","#onEvent","limit","handleError","filter","previous","shouldBeRateLimited","task"],"ignoreList":[0,1,2,3,4,5,6],"sources":["../node_modules/@nextcloud/vue/dist/chunks/NcDateTimePickerNative-DXF3-uR3.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcActionInput-uL5aa-A2.mjs","../node_modules/eventemitter3/index.js","../node_modules/p-timeout/index.js","../node_modules/p-queue/dist/lower-bound.js","../node_modules/p-queue/dist/priority-queue.js","../node_modules/p-queue/dist/index.js"],"sourcesContent":["import '../assets/NcDateTimePickerNative-BP6eg8aU.css';\nimport { defineComponent, mergeModels, useModel, computed, createElementBlock, openBlock, normalizeClass, createElementVNode, toDisplayString, mergeProps } from \"vue\";\nimport { r as register, a as t } from \"./_l10n-DrTiip5c.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister();\nconst _hoisted_1 = [\"for\"];\nconst _hoisted_2 = [\"id\", \"type\", \"value\", \"min\", \"max\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...{ inheritAttrs: false },\n __name: \"NcDateTimePickerNative\",\n props: /* @__PURE__ */ mergeModels({\n class: { default: void 0 },\n id: { default: () => createElementId() },\n inputClass: { default: \"\" },\n type: { default: \"date\" },\n label: { default: () => t(\"Please choose a date\") },\n min: { default: null },\n max: { default: null },\n hideLabel: { type: Boolean }\n }, {\n \"modelValue\": { default: null },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props) {\n const modelValue = useModel(__props, \"modelValue\");\n const props = __props;\n const formattedValue = computed(() => modelValue.value ? formatValue(modelValue.value) : \"\");\n const formattedMax = computed(() => props.max ? formatValue(props.max) : void 0);\n const formattedMin = computed(() => props.min ? formatValue(props.min) : void 0);\n function getReadableDate(value) {\n const yyyy = value.getFullYear().toString().padStart(4, \"0\");\n const MM = (value.getMonth() + 1).toString().padStart(2, \"0\");\n const dd = value.getDate().toString().padStart(2, \"0\");\n const hh = value.getHours().toString().padStart(2, \"0\");\n const mm = value.getMinutes().toString().padStart(2, \"0\");\n return { yyyy, MM, dd, hh, mm };\n }\n function formatValue(value) {\n const { yyyy, MM, dd, hh, mm } = getReadableDate(value);\n if (props.type === \"datetime-local\") {\n return `${yyyy}-${MM}-${dd}T${hh}:${mm}`;\n } else if (props.type === \"date\") {\n return `${yyyy}-${MM}-${dd}`;\n } else if (props.type === \"month\") {\n return `${yyyy}-${MM}`;\n } else if (props.type === \"time\") {\n return `${hh}:${mm}`;\n } else if (props.type === \"week\") {\n const startDate = new Date(Number.parseInt(yyyy), 0, 1);\n const daysSinceBeginningOfYear = Math.floor((value.getTime() - startDate.getTime()) / (24 * 60 * 60 * 1e3));\n const weekNumber = Math.ceil(daysSinceBeginningOfYear / 7);\n return `${yyyy}-W${weekNumber}`;\n }\n return \"\";\n }\n function onInput(event) {\n const input = event.target;\n if (!input || isNaN(input.valueAsNumber)) {\n modelValue.value = null;\n } else if (props.type === \"time\") {\n const time = input.value;\n const { yyyy, MM, dd } = getReadableDate(modelValue.value || /* @__PURE__ */ new Date());\n modelValue.value = /* @__PURE__ */ new Date(`${yyyy}-${MM}-${dd}T${time}`);\n } else if (props.type === \"month\") {\n const MM = (new Date(input.value).getMonth() + 1).toString().padStart(2, \"0\");\n const { yyyy, dd, hh, mm } = getReadableDate(modelValue.value || /* @__PURE__ */ new Date());\n modelValue.value = /* @__PURE__ */ new Date(`${yyyy}-${MM}-${dd}T${hh}:${mm}`);\n } else {\n const timezoneOffsetSeconds = new Date(input.valueAsNumber).getTimezoneOffset() * 1e3 * 60;\n const inputDateWithTimezone = input.valueAsNumber + timezoneOffsetSeconds;\n modelValue.value = new Date(inputDateWithTimezone);\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"native-datetime-picker\", _ctx.$props.class])\n }, [\n createElementVNode(\"label\", {\n class: normalizeClass([\"native-datetime-picker__label\", { \"hidden-visually\": _ctx.hideLabel }]),\n for: _ctx.id\n }, toDisplayString(_ctx.label), 11, _hoisted_1),\n createElementVNode(\"input\", mergeProps({\n id: _ctx.id,\n class: [\"native-datetime-picker__input\", _ctx.inputClass],\n type: _ctx.type,\n value: formattedValue.value,\n min: formattedMin.value,\n max: formattedMax.value\n }, _ctx.$attrs, { onInput }), null, 16, _hoisted_2)\n ], 2);\n };\n }\n});\nconst NcDateTimePickerNative = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-b97e1f7a\"]]);\nexport {\n NcDateTimePickerNative as N\n};\n//# sourceMappingURL=NcDateTimePickerNative-DXF3-uR3.mjs.map\n","import '../assets/NcActionInput-BxRA_Skn.css';\nimport { defineAsyncComponent, resolveComponent, createElementBlock, openBlock, normalizeClass, createElementVNode, renderSlot, normalizeStyle, withModifiers, createCommentVNode, toDisplayString, createBlock, mergeProps, createVNode, withCtx } from \"vue\";\nimport { r as register, h as t48, a as t } from \"./_l10n-DrTiip5c.mjs\";\nimport { A as ActionGlobalMixin } from \"./actionGlobal-BZFdtdJL.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { N as NcDateTimePickerNative } from \"./NcDateTimePickerNative-DXF3-uR3.mjs\";\nimport { N as NcPasswordField } from \"./NcPasswordField-djttkA5Q.mjs\";\nimport { _ as _sfc_main$1 } from \"./NcTextField.vue_vue_type_script_setup_true_lang-D1y_LfGJ.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t48);\nconst _sfc_main = {\n name: \"NcActionInput\",\n components: {\n NcDateTimePickerNative,\n NcPasswordField,\n NcTextField: _sfc_main$1,\n // Lazy load components with more than 50kB bundle size impact\n NcColorPicker: defineAsyncComponent(() => import(\"../components/NcColorPicker/index.mjs\")),\n NcDateTimePicker: defineAsyncComponent(() => import(\"../components/NcDateTimePicker/index.mjs\")),\n NcSelect: defineAsyncComponent(() => import(\"../components/NcSelect/index.mjs\"))\n },\n mixins: [ActionGlobalMixin],\n inheritAttrs: false,\n props: {\n /**\n * id attribute of the checkbox element\n */\n id: {\n type: String,\n default: () => \"action-\" + createElementId(),\n validator: (id) => id.trim() !== \"\"\n },\n /**\n * id attribute of the text input element\n */\n inputId: {\n type: String,\n default: () => \"action-input-\" + createElementId(),\n validator: (id) => id.trim() !== \"\"\n },\n /**\n * Icon to show with the action, can be either a CSS class or an URL\n */\n icon: {\n type: String,\n default: \"\"\n },\n /**\n * type attribute of the input field\n */\n type: {\n type: String,\n default: \"text\",\n validator(type) {\n return [\n \"date\",\n \"datetime-local\",\n \"month\",\n \"multiselect\",\n \"number\",\n \"password\",\n \"search\",\n \"tel\",\n \"text\",\n \"time\",\n \"url\",\n \"week\",\n \"color\",\n \"email\"\n ].includes(type);\n }\n },\n /**\n * id attribute for the native date time picker\n */\n idNativeDateTimePicker: {\n type: String,\n default: \"date-time-picker_id\"\n },\n /**\n * Flag to use a native date time picker\n */\n isNativePicker: {\n type: Boolean,\n default: false\n },\n /**\n * The visible input label for accessibility purposes.\n */\n label: {\n type: String,\n default: null\n },\n /**\n * If you want to show the label just above the\n * input field, pass in `true` to this prop.\n */\n labelOutside: {\n type: Boolean,\n default: true\n },\n /**\n * value attribute of the input field\n */\n modelValue: {\n type: [String, Date, Number, Array],\n default: \"\"\n },\n /**\n * disabled state of the input field\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * aria-label attribute of the input field\n */\n ariaLabel: {\n type: String,\n default: \"\"\n },\n /**\n * Attribute forwarded to the underlying NcPasswordField and NcTextField\n */\n showTrailingButton: {\n type: Boolean,\n default: true\n },\n /**\n * Trailing button label forwarded to the underlying NcTextField\n */\n trailingButtonLabel: {\n type: String,\n default: t(\"Submit\")\n },\n /**\n * CSS class to apply to the root element.\n */\n class: {\n type: [String, Array, Object],\n default: \"\"\n }\n },\n emits: [\n \"submit\",\n \"update:modelValue\"\n ],\n computed: {\n isIconUrl() {\n try {\n return new URL(this.icon);\n } catch {\n return false;\n }\n },\n isMultiselectType() {\n return this.type === \"multiselect\";\n },\n nativeDatePickerType() {\n switch (this.type) {\n case \"date\":\n case \"month\":\n case \"time\":\n case \"week\":\n case \"datetime-local\":\n return this.type;\n }\n return false;\n },\n datePickerType() {\n if (!this.isNativePicker) {\n switch (this.type) {\n case \"date\":\n case \"month\":\n case \"time\":\n return this.type;\n case \"datetime-local\":\n return \"datetime\";\n }\n }\n return false;\n },\n /**\n * determines if the action is focusable\n *\n * @return {boolean} is the action focusable ?\n */\n isFocusable() {\n return !this.disabled;\n }\n },\n methods: {\n // closing datepicker popup on mouseleave = unfocus\n onLeave() {\n if (this.$refs.datetimepicker && this.$refs.datetimepicker.$refs.datepicker) {\n this.$refs.datetimepicker.$refs.datepicker.closePopup();\n }\n },\n onSubmit(event) {\n event.preventDefault();\n event.stopPropagation();\n if (!this.disabled) {\n this.$emit(\"submit\", event);\n } else {\n return false;\n }\n },\n onUpdateModelValue(event) {\n this.$emit(\"update:modelValue\", event);\n }\n }\n};\nconst _hoisted_1 = { class: \"action-input__icon-wrapper\" };\nconst _hoisted_2 = [\"disabled\"];\nconst _hoisted_3 = { class: \"action-input__container\" };\nconst _hoisted_4 = [\"for\"];\nconst _hoisted_5 = { class: \"action-input__input-container\" };\nconst _hoisted_6 = {\n key: 4,\n class: \"action-input__container\"\n};\nconst _hoisted_7 = [\"for\"];\nconst _hoisted_8 = { class: \"action-input__input-container\" };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcDateTimePicker = resolveComponent(\"NcDateTimePicker\");\n const _component_NcDateTimePickerNative = resolveComponent(\"NcDateTimePickerNative\");\n const _component_NcSelect = resolveComponent(\"NcSelect\");\n const _component_NcPasswordField = resolveComponent(\"NcPasswordField\");\n const _component_NcColorPicker = resolveComponent(\"NcColorPicker\");\n const _component_NcTextField = resolveComponent(\"NcTextField\");\n return openBlock(), createElementBlock(\"li\", {\n class: normalizeClass([\"action\", [{ \"action--disabled\": $props.disabled }, _ctx.$props.class]])\n }, [\n createElementVNode(\"span\", {\n class: normalizeClass([\"action-input\", {\n \"action-input-picker--disabled\": $props.disabled,\n \"action-input--visible-label\": $props.labelOutside && $props.label\n }]),\n onMouseleave: _cache[3] || (_cache[3] = (...args) => $options.onLeave && $options.onLeave(...args))\n }, [\n createElementVNode(\"span\", _hoisted_1, [\n renderSlot(_ctx.$slots, \"icon\", {}, () => [\n createElementVNode(\"span\", {\n \"aria-hidden\": \"true\",\n class: normalizeClass([\"action-input__icon\", [$options.isIconUrl ? \"action-input__icon--url\" : $props.icon]]),\n style: normalizeStyle({ backgroundImage: $options.isIconUrl ? `url(${$props.icon})` : null })\n }, null, 6)\n ], true)\n ]),\n createElementVNode(\"form\", {\n ref: \"form\",\n class: \"action-input__form\",\n disabled: $props.disabled,\n onSubmit: _cache[2] || (_cache[2] = withModifiers((...args) => $options.onSubmit && $options.onSubmit(...args), [\"prevent\"]))\n }, [\n createElementVNode(\"div\", _hoisted_3, [\n $props.label && $props.labelOutside && !$props.isNativePicker ? (openBlock(), createElementBlock(\"label\", {\n key: 0,\n class: normalizeClass([\"action-input__text-label\", { \"action-input__text-label--hidden\": !$props.labelOutside }]),\n for: $props.inputId\n }, toDisplayString($props.label), 11, _hoisted_4)) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", _hoisted_5, [\n $options.datePickerType ? (openBlock(), createBlock(_component_NcDateTimePicker, mergeProps({\n key: 0,\n ref: \"datetimepicker\",\n \"model-value\": $props.modelValue,\n style: { \"z-index\": \"99999999999\" },\n placeholder: _ctx.text,\n disabled: $props.disabled,\n type: $options.datePickerType,\n \"input-class\": [\"mx-input\", { focusable: $options.isFocusable }],\n class: \"action-input__datetimepicker\",\n \"append-to-body\": \"\"\n }, _ctx.$attrs, { \"onUpdate:modelValue\": $options.onUpdateModelValue }), null, 16, [\"model-value\", \"placeholder\", \"disabled\", \"type\", \"input-class\", \"onUpdate:modelValue\"])) : $props.isNativePicker ? (openBlock(), createBlock(_component_NcDateTimePickerNative, mergeProps({\n key: 1,\n id: $props.idNativeDateTimePicker,\n \"model-value\": $props.modelValue,\n label: $props.label,\n type: $options.nativeDatePickerType,\n \"input-class\": { focusable: $options.isFocusable },\n class: \"action-input__datetimepicker\"\n }, _ctx.$attrs, { \"onUpdate:modelValue\": $options.onUpdateModelValue }), null, 16, [\"id\", \"model-value\", \"label\", \"type\", \"input-class\", \"onUpdate:modelValue\"])) : $options.isMultiselectType ? (openBlock(), createBlock(_component_NcSelect, mergeProps({\n key: 2,\n \"model-value\": $props.modelValue,\n placeholder: _ctx.text,\n disabled: $props.disabled,\n \"append-to-body\": false,\n \"input-class\": { focusable: $options.isFocusable },\n class: \"action-input__multi\"\n }, _ctx.$attrs, { \"onUpdate:modelValue\": $options.onUpdateModelValue }), null, 16, [\"model-value\", \"placeholder\", \"disabled\", \"input-class\", \"onUpdate:modelValue\"])) : $props.type === \"password\" ? (openBlock(), createBlock(_component_NcPasswordField, mergeProps({\n key: 3,\n id: $props.inputId,\n \"model-value\": $props.modelValue,\n label: $props.label,\n \"label-outside\": !$props.label || $props.labelOutside,\n placeholder: _ctx.text,\n disabled: $props.disabled,\n \"input-class\": { focusable: $options.isFocusable },\n \"show-trailing-button\": $props.showTrailingButton && !$props.disabled\n }, _ctx.$attrs, { \"onUpdate:modelValue\": $options.onUpdateModelValue }), null, 16, [\"id\", \"model-value\", \"label\", \"label-outside\", \"placeholder\", \"disabled\", \"input-class\", \"show-trailing-button\", \"onUpdate:modelValue\"])) : $props.type === \"color\" ? (openBlock(), createElementBlock(\"div\", _hoisted_6, [\n $props.label && $props.type === \"color\" ? (openBlock(), createElementBlock(\"label\", {\n key: 0,\n class: normalizeClass([\"action-input__text-label\", { \"action-input__text-label--hidden\": !$props.labelOutside }]),\n for: $props.inputId\n }, toDisplayString($props.label), 11, _hoisted_7)) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", _hoisted_8, [\n createVNode(_component_NcColorPicker, mergeProps({\n id: \"inputId\",\n \"model-value\": $props.modelValue,\n class: \"colorpicker__trigger\"\n }, _ctx.$attrs, {\n \"onUpdate:modelValue\": $options.onUpdateModelValue,\n onSubmit: _cache[0] || (_cache[0] = ($event) => _ctx.$refs.form.requestSubmit())\n }), {\n default: withCtx(() => [\n createElementVNode(\"button\", {\n class: normalizeClass([\"colorpicker__preview\", { focusable: $options.isFocusable }]),\n style: normalizeStyle({ \"background-color\": $props.modelValue })\n }, null, 6)\n ]),\n _: 1\n }, 16, [\"model-value\", \"onUpdate:modelValue\"])\n ])\n ])) : (openBlock(), createBlock(_component_NcTextField, mergeProps({\n key: 5,\n id: $props.inputId,\n \"model-value\": $props.modelValue,\n label: $props.label,\n \"label-outside\": !$props.label || $props.labelOutside,\n placeholder: _ctx.text,\n disabled: $props.disabled,\n \"input-class\": { focusable: $options.isFocusable },\n type: $props.type,\n \"trailing-button-icon\": \"arrowRight\",\n \"trailing-button-label\": $props.trailingButtonLabel,\n \"show-trailing-button\": $props.showTrailingButton && !$props.disabled\n }, _ctx.$attrs, {\n onTrailingButtonClick: _cache[1] || (_cache[1] = ($event) => _ctx.$refs.form.requestSubmit()),\n \"onUpdate:modelValue\": $options.onUpdateModelValue\n }), null, 16, [\"id\", \"model-value\", \"label\", \"label-outside\", \"placeholder\", \"disabled\", \"input-class\", \"type\", \"trailing-button-label\", \"show-trailing-button\", \"onUpdate:modelValue\"]))\n ])\n ])\n ], 40, _hoisted_2)\n ], 34)\n ], 2);\n}\nconst NcActionInput = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-67b3d681\"]]);\nexport {\n NcActionInput as N\n};\n//# sourceMappingURL=NcActionInput-uL5aa-A2.mjs.map\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","export class TimeoutError extends Error {\n\tname = 'TimeoutError';\n\n\tconstructor(message, options) {\n\t\tsuper(message, options);\n\t\tError.captureStackTrace?.(this, TimeoutError);\n\t}\n}\n\nconst getAbortedReason = signal => signal.reason ?? new DOMException('This operation was aborted.', 'AbortError');\n\nexport default function pTimeout(promise, options) {\n\tconst {\n\t\tmilliseconds,\n\t\tfallback,\n\t\tmessage,\n\t\tcustomTimers = {setTimeout, clearTimeout},\n\t\tsignal,\n\t} = options;\n\n\tlet timer;\n\tlet abortHandler;\n\n\tconst wrappedPromise = new Promise((resolve, reject) => {\n\t\tif (typeof milliseconds !== 'number' || Math.sign(milliseconds) !== 1) {\n\t\t\tthrow new TypeError(`Expected \\`milliseconds\\` to be a positive number, got \\`${milliseconds}\\``);\n\t\t}\n\n\t\tif (signal?.aborted) {\n\t\t\treject(getAbortedReason(signal));\n\t\t\treturn;\n\t\t}\n\n\t\tif (signal) {\n\t\t\tabortHandler = () => {\n\t\t\t\treject(getAbortedReason(signal));\n\t\t\t};\n\n\t\t\tsignal.addEventListener('abort', abortHandler, {once: true});\n\t\t}\n\n\t\t// Use .then() instead of async IIFE to preserve stack traces\n\t\t// eslint-disable-next-line promise/prefer-await-to-then, promise/prefer-catch\n\t\tpromise.then(resolve, reject);\n\n\t\tif (milliseconds === Number.POSITIVE_INFINITY) {\n\t\t\treturn;\n\t\t}\n\n\t\t// We create the error outside of `setTimeout` to preserve the stack trace.\n\t\tconst timeoutError = new TimeoutError();\n\n\t\t// `.call(undefined, ...)` is needed for custom timers to avoid context issues\n\t\ttimer = customTimers.setTimeout.call(undefined, () => {\n\t\t\tif (fallback) {\n\t\t\t\ttry {\n\t\t\t\t\tresolve(fallback());\n\t\t\t\t} catch (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (typeof promise.cancel === 'function') {\n\t\t\t\tpromise.cancel();\n\t\t\t}\n\n\t\t\tif (message === false) {\n\t\t\t\tresolve();\n\t\t\t} else if (message instanceof Error) {\n\t\t\t\treject(message);\n\t\t\t} else {\n\t\t\t\ttimeoutError.message = message ?? `Promise timed out after ${milliseconds} milliseconds`;\n\t\t\t\treject(timeoutError);\n\t\t\t}\n\t\t}, milliseconds);\n\t});\n\n\t// eslint-disable-next-line promise/prefer-await-to-then\n\tconst cancelablePromise = wrappedPromise.finally(() => {\n\t\tcancelablePromise.clear();\n\t\tif (abortHandler && signal) {\n\t\t\tsignal.removeEventListener('abort', abortHandler);\n\t\t}\n\t});\n\n\tcancelablePromise.clear = () => {\n\t\t// `.call(undefined, ...)` is needed for custom timers to avoid context issues\n\t\tcustomTimers.clearTimeout.call(undefined, timer);\n\t\ttimer = undefined;\n\t};\n\n\treturn cancelablePromise;\n}\n","// Port of lower_bound from https://en.cppreference.com/w/cpp/algorithm/lower_bound\n// Used to compute insertion index to keep queue sorted after insertion\nexport default function lowerBound(array, value, comparator) {\n let first = 0;\n let count = array.length;\n while (count > 0) {\n const step = Math.trunc(count / 2);\n let it = first + step;\n if (comparator(array[it], value) <= 0) {\n first = ++it;\n count -= step + 1;\n }\n else {\n count = step;\n }\n }\n return first;\n}\n","import lowerBound from './lower-bound.js';\nexport default class PriorityQueue {\n #queue = [];\n enqueue(run, options) {\n const { priority = 0, id, } = options ?? {};\n const element = {\n priority,\n id,\n run,\n };\n if (this.size === 0 || this.#queue[this.size - 1].priority >= priority) {\n this.#queue.push(element);\n return;\n }\n const index = lowerBound(this.#queue, element, (a, b) => b.priority - a.priority);\n this.#queue.splice(index, 0, element);\n }\n setPriority(id, priority) {\n const index = this.#queue.findIndex((element) => element.id === id);\n if (index === -1) {\n throw new ReferenceError(`No promise function with the id \"${id}\" exists in the queue.`);\n }\n const [item] = this.#queue.splice(index, 1);\n this.enqueue(item.run, { priority, id });\n }\n dequeue() {\n const item = this.#queue.shift();\n return item?.run;\n }\n filter(options) {\n return this.#queue.filter((element) => element.priority === options.priority).map((element) => element.run);\n }\n get size() {\n return this.#queue.length;\n }\n}\n","import { EventEmitter } from 'eventemitter3';\nimport pTimeout from 'p-timeout';\nimport PriorityQueue from './priority-queue.js';\n/**\nPromise queue with concurrency control.\n*/\nexport default class PQueue extends EventEmitter {\n #carryoverIntervalCount;\n #isIntervalIgnored;\n #intervalCount = 0;\n #intervalCap;\n #rateLimitedInInterval = false;\n #rateLimitFlushScheduled = false;\n #interval;\n #intervalEnd = 0;\n #lastExecutionTime = 0;\n #intervalId;\n #timeoutId;\n #queue;\n #queueClass;\n #pending = 0;\n // The `!` is needed because of https://github.com/microsoft/TypeScript/issues/32194\n #concurrency;\n #isPaused;\n // Use to assign a unique identifier to a promise function, if not explicitly specified\n #idAssigner = 1n;\n // Track currently running tasks for debugging\n #runningTasks = new Map();\n /**\n Get or set the default timeout for all tasks. Can be changed at runtime.\n\n Operations will throw a `TimeoutError` if they don't complete within the specified time.\n\n The timeout begins when the operation is dequeued and starts execution, not while it's waiting in the queue.\n\n @example\n ```\n const queue = new PQueue({timeout: 5000});\n\n // Change timeout for all future tasks\n queue.timeout = 10000;\n ```\n */\n timeout;\n constructor(options) {\n super();\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n options = {\n carryoverIntervalCount: false,\n intervalCap: Number.POSITIVE_INFINITY,\n interval: 0,\n concurrency: Number.POSITIVE_INFINITY,\n autoStart: true,\n queueClass: PriorityQueue,\n ...options,\n };\n if (!(typeof options.intervalCap === 'number' && options.intervalCap >= 1)) {\n throw new TypeError(`Expected \\`intervalCap\\` to be a number from 1 and up, got \\`${options.intervalCap?.toString() ?? ''}\\` (${typeof options.intervalCap})`);\n }\n if (options.interval === undefined || !(Number.isFinite(options.interval) && options.interval >= 0)) {\n throw new TypeError(`Expected \\`interval\\` to be a finite number >= 0, got \\`${options.interval?.toString() ?? ''}\\` (${typeof options.interval})`);\n }\n // TODO: Remove this fallback in the next major version\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n this.#carryoverIntervalCount = options.carryoverIntervalCount ?? options.carryoverConcurrencyCount ?? false;\n this.#isIntervalIgnored = options.intervalCap === Number.POSITIVE_INFINITY || options.interval === 0;\n this.#intervalCap = options.intervalCap;\n this.#interval = options.interval;\n this.#queue = new options.queueClass();\n this.#queueClass = options.queueClass;\n this.concurrency = options.concurrency;\n if (options.timeout !== undefined && !(Number.isFinite(options.timeout) && options.timeout > 0)) {\n throw new TypeError(`Expected \\`timeout\\` to be a positive finite number, got \\`${options.timeout}\\` (${typeof options.timeout})`);\n }\n this.timeout = options.timeout;\n this.#isPaused = options.autoStart === false;\n this.#setupRateLimitTracking();\n }\n get #doesIntervalAllowAnother() {\n return this.#isIntervalIgnored || this.#intervalCount < this.#intervalCap;\n }\n get #doesConcurrentAllowAnother() {\n return this.#pending < this.#concurrency;\n }\n #next() {\n this.#pending--;\n if (this.#pending === 0) {\n this.emit('pendingZero');\n }\n this.#tryToStartAnother();\n this.emit('next');\n }\n #onResumeInterval() {\n this.#onInterval(); // Already schedules update\n this.#initializeIntervalIfNeeded();\n this.#timeoutId = undefined;\n }\n get #isIntervalPaused() {\n const now = Date.now();\n if (this.#intervalId === undefined) {\n const delay = this.#intervalEnd - now;\n if (delay < 0) {\n // If the interval has expired while idle, check if we should enforce the interval\n // from the last task execution. This ensures proper spacing between tasks even\n // when the queue becomes empty and then new tasks are added.\n if (this.#lastExecutionTime > 0) {\n const timeSinceLastExecution = now - this.#lastExecutionTime;\n if (timeSinceLastExecution < this.#interval) {\n // Not enough time has passed since the last task execution\n this.#createIntervalTimeout(this.#interval - timeSinceLastExecution);\n return true;\n }\n }\n // Enough time has passed or no previous execution, allow execution\n this.#intervalCount = (this.#carryoverIntervalCount) ? this.#pending : 0;\n }\n else {\n // Act as the interval is pending\n this.#createIntervalTimeout(delay);\n return true;\n }\n }\n return false;\n }\n #createIntervalTimeout(delay) {\n if (this.#timeoutId !== undefined) {\n return;\n }\n this.#timeoutId = setTimeout(() => {\n this.#onResumeInterval();\n }, delay);\n }\n #clearIntervalTimer() {\n if (this.#intervalId) {\n clearInterval(this.#intervalId);\n this.#intervalId = undefined;\n }\n }\n #clearTimeoutTimer() {\n if (this.#timeoutId) {\n clearTimeout(this.#timeoutId);\n this.#timeoutId = undefined;\n }\n }\n #tryToStartAnother() {\n if (this.#queue.size === 0) {\n // We can clear the interval (\"pause\")\n // Because we can redo it later (\"resume\")\n this.#clearIntervalTimer();\n this.emit('empty');\n if (this.#pending === 0) {\n // Clear timeout as well when completely idle\n this.#clearTimeoutTimer();\n this.emit('idle');\n }\n return false;\n }\n let taskStarted = false;\n if (!this.#isPaused) {\n const canInitializeInterval = !this.#isIntervalPaused;\n if (this.#doesIntervalAllowAnother && this.#doesConcurrentAllowAnother) {\n const job = this.#queue.dequeue();\n // Increment interval count immediately to prevent race conditions\n if (!this.#isIntervalIgnored) {\n this.#intervalCount++;\n this.#scheduleRateLimitUpdate();\n }\n this.emit('active');\n this.#lastExecutionTime = Date.now();\n job();\n if (canInitializeInterval) {\n this.#initializeIntervalIfNeeded();\n }\n taskStarted = true;\n }\n }\n return taskStarted;\n }\n #initializeIntervalIfNeeded() {\n if (this.#isIntervalIgnored || this.#intervalId !== undefined) {\n return;\n }\n this.#intervalId = setInterval(() => {\n this.#onInterval();\n }, this.#interval);\n this.#intervalEnd = Date.now() + this.#interval;\n }\n #onInterval() {\n if (this.#intervalCount === 0 && this.#pending === 0 && this.#intervalId) {\n this.#clearIntervalTimer();\n }\n this.#intervalCount = this.#carryoverIntervalCount ? this.#pending : 0;\n this.#processQueue();\n this.#scheduleRateLimitUpdate();\n }\n /**\n Executes all queued functions until it reaches the limit.\n */\n #processQueue() {\n // eslint-disable-next-line no-empty\n while (this.#tryToStartAnother()) { }\n }\n get concurrency() {\n return this.#concurrency;\n }\n set concurrency(newConcurrency) {\n if (!(typeof newConcurrency === 'number' && newConcurrency >= 1)) {\n throw new TypeError(`Expected \\`concurrency\\` to be a number from 1 and up, got \\`${newConcurrency}\\` (${typeof newConcurrency})`);\n }\n this.#concurrency = newConcurrency;\n this.#processQueue();\n }\n /**\n Updates the priority of a promise function by its id, affecting its execution order. Requires a defined concurrency limit to take effect.\n\n For example, this can be used to prioritize a promise function to run earlier.\n\n ```js\n import PQueue from 'p-queue';\n\n const queue = new PQueue({concurrency: 1});\n\n queue.add(async () => '🦄', {priority: 1});\n queue.add(async () => '🦀', {priority: 0, id: '🦀'});\n queue.add(async () => '🦄', {priority: 1});\n queue.add(async () => '🦄', {priority: 1});\n\n queue.setPriority('🦀', 2);\n ```\n\n In this case, the promise function with `id: '🦀'` runs second.\n\n You can also deprioritize a promise function to delay its execution:\n\n ```js\n import PQueue from 'p-queue';\n\n const queue = new PQueue({concurrency: 1});\n\n queue.add(async () => '🦄', {priority: 1});\n queue.add(async () => '🦀', {priority: 1, id: '🦀'});\n queue.add(async () => '🦄');\n queue.add(async () => '🦄', {priority: 0});\n\n queue.setPriority('🦀', -1);\n ```\n Here, the promise function with `id: '🦀'` executes last.\n */\n setPriority(id, priority) {\n if (typeof priority !== 'number' || !Number.isFinite(priority)) {\n throw new TypeError(`Expected \\`priority\\` to be a finite number, got \\`${priority}\\` (${typeof priority})`);\n }\n this.#queue.setPriority(id, priority);\n }\n async add(function_, options = {}) {\n // In case `id` is not defined.\n options.id ??= (this.#idAssigner++).toString();\n options = {\n timeout: this.timeout,\n ...options,\n };\n return new Promise((resolve, reject) => {\n // Create a unique symbol for tracking this task\n const taskSymbol = Symbol(`task-${options.id}`);\n this.#queue.enqueue(async () => {\n this.#pending++;\n // Track this running task\n this.#runningTasks.set(taskSymbol, {\n id: options.id,\n priority: options.priority ?? 0, // Match priority-queue default\n startTime: Date.now(),\n timeout: options.timeout,\n });\n let eventListener;\n try {\n // Check abort signal - if aborted, need to decrement the counter\n // that was incremented in tryToStartAnother\n try {\n options.signal?.throwIfAborted();\n }\n catch (error) {\n // Decrement the counter that was already incremented\n if (!this.#isIntervalIgnored) {\n this.#intervalCount--;\n }\n // Clean up tracking before throwing\n this.#runningTasks.delete(taskSymbol);\n throw error;\n }\n let operation = function_({ signal: options.signal });\n if (options.timeout) {\n operation = pTimeout(Promise.resolve(operation), {\n milliseconds: options.timeout,\n message: `Task timed out after ${options.timeout}ms (queue has ${this.#pending} running, ${this.#queue.size} waiting)`,\n });\n }\n if (options.signal) {\n const { signal } = options;\n operation = Promise.race([operation, new Promise((_resolve, reject) => {\n eventListener = () => {\n reject(signal.reason);\n };\n signal.addEventListener('abort', eventListener, { once: true });\n })]);\n }\n const result = await operation;\n resolve(result);\n this.emit('completed', result);\n }\n catch (error) {\n reject(error);\n this.emit('error', error);\n }\n finally {\n // Clean up abort event listener\n if (eventListener) {\n options.signal?.removeEventListener('abort', eventListener);\n }\n // Remove from running tasks\n this.#runningTasks.delete(taskSymbol);\n // Use queueMicrotask to prevent deep recursion while maintaining timing\n queueMicrotask(() => {\n this.#next();\n });\n }\n }, options);\n this.emit('add');\n this.#tryToStartAnother();\n });\n }\n async addAll(functions, options) {\n return Promise.all(functions.map(async (function_) => this.add(function_, options)));\n }\n /**\n Start (or resume) executing enqueued tasks within concurrency limit. No need to call this if queue is not paused (via `options.autoStart = false` or by `.pause()` method.)\n */\n start() {\n if (!this.#isPaused) {\n return this;\n }\n this.#isPaused = false;\n this.#processQueue();\n return this;\n }\n /**\n Put queue execution on hold.\n */\n pause() {\n this.#isPaused = true;\n }\n /**\n Clear the queue.\n */\n clear() {\n this.#queue = new this.#queueClass();\n // Note: We don't clear #runningTasks as those tasks are still running\n // They will be removed when they complete in the finally block\n // Force synchronous update since clear() should have immediate effect\n this.#updateRateLimitState();\n }\n /**\n Can be called multiple times. Useful if you for example add additional items at a later time.\n\n @returns A promise that settles when the queue becomes empty.\n */\n async onEmpty() {\n // Instantly resolve if the queue is empty\n if (this.#queue.size === 0) {\n return;\n }\n await this.#onEvent('empty');\n }\n /**\n @returns A promise that settles when the queue size is less than the given limit: `queue.size < limit`.\n\n If you want to avoid having the queue grow beyond a certain size you can `await queue.onSizeLessThan()` before adding a new item.\n\n Note that this only limits the number of items waiting to start. There could still be up to `concurrency` jobs already running that this call does not include in its calculation.\n */\n async onSizeLessThan(limit) {\n // Instantly resolve if the queue is empty.\n if (this.#queue.size < limit) {\n return;\n }\n await this.#onEvent('next', () => this.#queue.size < limit);\n }\n /**\n The difference with `.onEmpty` is that `.onIdle` guarantees that all work from the queue has finished. `.onEmpty` merely signals that the queue is empty, but it could mean that some promises haven't completed yet.\n\n @returns A promise that settles when the queue becomes empty, and all promises have completed; `queue.size === 0 && queue.pending === 0`.\n */\n async onIdle() {\n // Instantly resolve if none pending and if nothing else is queued\n if (this.#pending === 0 && this.#queue.size === 0) {\n return;\n }\n await this.#onEvent('idle');\n }\n /**\n The difference with `.onIdle` is that `.onPendingZero` only waits for currently running tasks to finish, ignoring queued tasks.\n\n @returns A promise that settles when all currently running tasks have completed; `queue.pending === 0`.\n */\n async onPendingZero() {\n if (this.#pending === 0) {\n return;\n }\n await this.#onEvent('pendingZero');\n }\n /**\n @returns A promise that settles when the queue becomes rate-limited due to intervalCap.\n */\n async onRateLimit() {\n if (this.isRateLimited) {\n return;\n }\n await this.#onEvent('rateLimit');\n }\n /**\n @returns A promise that settles when the queue is no longer rate-limited.\n */\n async onRateLimitCleared() {\n if (!this.isRateLimited) {\n return;\n }\n await this.#onEvent('rateLimitCleared');\n }\n /**\n @returns A promise that rejects when any task in the queue errors.\n\n Use with `Promise.race([queue.onError(), queue.onIdle()])` to fail fast on the first error while still resolving normally when the queue goes idle.\n\n Important: The promise returned by `add()` still rejects. You must handle each `add()` promise (for example, `.catch(() => {})`) to avoid unhandled rejections.\n\n @example\n ```\n import PQueue from 'p-queue';\n\n const queue = new PQueue({concurrency: 2});\n\n queue.add(() => fetchData(1)).catch(() => {});\n queue.add(() => fetchData(2)).catch(() => {});\n queue.add(() => fetchData(3)).catch(() => {});\n\n // Stop processing on first error\n try {\n await Promise.race([\n queue.onError(),\n queue.onIdle()\n ]);\n } catch (error) {\n queue.pause(); // Stop processing remaining tasks\n console.error('Queue failed:', error);\n }\n ```\n */\n // eslint-disable-next-line @typescript-eslint/promise-function-async\n async onError() {\n return new Promise((_resolve, reject) => {\n const handleError = (error) => {\n this.off('error', handleError);\n reject(error);\n };\n this.on('error', handleError);\n });\n }\n async #onEvent(event, filter) {\n return new Promise(resolve => {\n const listener = () => {\n if (filter && !filter()) {\n return;\n }\n this.off(event, listener);\n resolve();\n };\n this.on(event, listener);\n });\n }\n /**\n Size of the queue, the number of queued items waiting to run.\n */\n get size() {\n return this.#queue.size;\n }\n /**\n Size of the queue, filtered by the given options.\n\n For example, this can be used to find the number of items remaining in the queue with a specific priority level.\n */\n sizeBy(options) {\n // eslint-disable-next-line unicorn/no-array-callback-reference\n return this.#queue.filter(options).length;\n }\n /**\n Number of running items (no longer in the queue).\n */\n get pending() {\n return this.#pending;\n }\n /**\n Whether the queue is currently paused.\n */\n get isPaused() {\n return this.#isPaused;\n }\n #setupRateLimitTracking() {\n // Only schedule updates when rate limiting is enabled\n if (this.#isIntervalIgnored) {\n return;\n }\n // Wire up to lifecycle events that affect rate limit state\n // Only 'add' and 'next' can actually change rate limit state\n this.on('add', () => {\n if (this.#queue.size > 0) {\n this.#scheduleRateLimitUpdate();\n }\n });\n this.on('next', () => {\n this.#scheduleRateLimitUpdate();\n });\n }\n #scheduleRateLimitUpdate() {\n // Skip if rate limiting is not enabled or already scheduled\n if (this.#isIntervalIgnored || this.#rateLimitFlushScheduled) {\n return;\n }\n this.#rateLimitFlushScheduled = true;\n queueMicrotask(() => {\n this.#rateLimitFlushScheduled = false;\n this.#updateRateLimitState();\n });\n }\n #updateRateLimitState() {\n const previous = this.#rateLimitedInInterval;\n const shouldBeRateLimited = !this.#isIntervalIgnored\n && this.#intervalCount >= this.#intervalCap\n && this.#queue.size > 0;\n if (shouldBeRateLimited !== previous) {\n this.#rateLimitedInInterval = shouldBeRateLimited;\n this.emit(shouldBeRateLimited ? 'rateLimit' : 'rateLimitCleared');\n }\n }\n /**\n Whether the queue is currently rate-limited due to intervalCap.\n */\n get isRateLimited() {\n return this.#rateLimitedInInterval;\n }\n /**\n Whether the queue is saturated. Returns `true` when:\n - All concurrency slots are occupied and tasks are waiting, OR\n - The queue is rate-limited and tasks are waiting\n\n Useful for detecting backpressure and potential hanging tasks.\n\n ```js\n import PQueue from 'p-queue';\n\n const queue = new PQueue({concurrency: 2});\n\n // Backpressure handling\n if (queue.isSaturated) {\n console.log('Queue is saturated, waiting for capacity...');\n await queue.onSizeLessThan(queue.concurrency);\n }\n\n // Monitoring for stuck tasks\n setInterval(() => {\n if (queue.isSaturated) {\n console.warn(`Queue saturated: ${queue.pending} running, ${queue.size} waiting`);\n }\n }, 60000);\n ```\n */\n get isSaturated() {\n return (this.#pending === this.#concurrency && this.#queue.size > 0)\n || (this.isRateLimited && this.#queue.size > 0);\n }\n /**\n The tasks currently being executed. Each task includes its `id`, `priority`, `startTime`, and `timeout` (if set).\n\n Returns an array of task info objects.\n\n ```js\n import PQueue from 'p-queue';\n\n const queue = new PQueue({concurrency: 2});\n\n // Add tasks with IDs for better debugging\n queue.add(() => fetchUser(123), {id: 'user-123'});\n queue.add(() => fetchPosts(456), {id: 'posts-456', priority: 1});\n\n // Check what's running\n console.log(queue.runningTasks);\n // => [{\n // id: 'user-123',\n // priority: 0,\n // startTime: 1759253001716,\n // timeout: undefined\n // }, {\n // id: 'posts-456',\n // priority: 1,\n // startTime: 1759253001916,\n // timeout: undefined\n // }]\n ```\n */\n get runningTasks() {\n // Return fresh array with fresh objects to prevent mutations\n return [...this.#runningTasks.values()].map(task => ({ ...task }));\n }\n}\n/**\nError thrown when a task times out.\n\n@example\n```\nimport PQueue, {TimeoutError} from 'p-queue';\n\nconst queue = new PQueue({timeout: 1000});\n\ntry {\n await queue.add(() => someTask());\n} catch (error) {\n if (error instanceof TimeoutError) {\n console.log('Task timed out');\n }\n}\n```\n*/\nexport { TimeoutError } from 'p-timeout';\n"],"file":"NcBreadcrumbs-DYfGaSjT-DHeGymVL.chunk.mjs"} \ No newline at end of file +{"version":3,"mappings":"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","names":["register","_hoisted_1","_hoisted_2","_sfc_main","defineComponent","mergeModels","createElementId","t","__props","modelValue","useModel","props","formattedValue","computed","formatValue","formattedMax","formattedMin","getReadableDate","value","yyyy","MM","dd","hh","mm","startDate","daysSinceBeginningOfYear","weekNumber","onInput","event","input","time","timezoneOffsetSeconds","inputDateWithTimezone","_ctx","_cache","openBlock","createElementBlock","normalizeClass","createElementVNode","toDisplayString","mergeProps","NcDateTimePickerNative","_export_sfc","t48","NcPasswordField","_sfc_main$1","defineAsyncComponent","__vitePreload","n","ActionGlobalMixin","id","type","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_sfc_render","$props","$setup","$data","$options","_component_NcDateTimePicker","resolveComponent","_component_NcDateTimePickerNative","_component_NcSelect","_component_NcPasswordField","_component_NcColorPicker","_component_NcTextField","args","renderSlot","normalizeStyle","withModifiers","createCommentVNode","createBlock","createVNode","$event","withCtx","NcActionInput","has","prefix","Events","EE","fn","context","once","addListener","emitter","listener","evt","clearEvent","EventEmitter","names","events","name","handlers","i","l","ee","listeners","a1","a2","a3","a4","a5","len","length","j","module","TimeoutError","message","options","getAbortedReason","signal","pTimeout","promise","milliseconds","fallback","customTimers","timer","abortHandler","cancelablePromise","resolve","reject","timeoutError","error","lowerBound","array","comparator","first","count","step","it","PriorityQueue","#queue","run","priority","element","index","a","b","item","PQueue","#carryoverIntervalCount","#isIntervalIgnored","#intervalCount","#intervalCap","#rateLimitedInInterval","#rateLimitFlushScheduled","#interval","#intervalEnd","#lastExecutionTime","#intervalId","#timeoutId","#queueClass","#pending","#concurrency","#isPaused","#idAssigner","#runningTasks","#setupRateLimitTracking","#doesIntervalAllowAnother","#doesConcurrentAllowAnother","#next","#tryToStartAnother","#onResumeInterval","#onInterval","#initializeIntervalIfNeeded","#isIntervalPaused","now","delay","timeSinceLastExecution","#createIntervalTimeout","#clearIntervalTimer","#clearTimeoutTimer","taskStarted","canInitializeInterval","job","#scheduleRateLimitUpdate","#processQueue","newConcurrency","function_","taskSymbol","eventListener","operation","_resolve","result","functions","#updateRateLimitState","#onEvent","limit","handleError","filter","previous","shouldBeRateLimited","task"],"ignoreList":[0,1,2,3,4,5,6],"sources":["../node_modules/@nextcloud/vue/dist/chunks/NcDateTimePickerNative-DXF3-uR3.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcActionInput-uL5aa-A2.mjs","../node_modules/eventemitter3/index.js","../node_modules/p-timeout/index.js","../node_modules/p-queue/dist/lower-bound.js","../node_modules/p-queue/dist/priority-queue.js","../node_modules/p-queue/dist/index.js"],"sourcesContent":["import '../assets/NcDateTimePickerNative-BP6eg8aU.css';\nimport { defineComponent, mergeModels, useModel, computed, createElementBlock, openBlock, normalizeClass, createElementVNode, toDisplayString, mergeProps } from \"vue\";\nimport { r as register, a as t } from \"./_l10n-DrTiip5c.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister();\nconst _hoisted_1 = [\"for\"];\nconst _hoisted_2 = [\"id\", \"type\", \"value\", \"min\", \"max\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...{ inheritAttrs: false },\n __name: \"NcDateTimePickerNative\",\n props: /* @__PURE__ */ mergeModels({\n class: { default: void 0 },\n id: { default: () => createElementId() },\n inputClass: { default: \"\" },\n type: { default: \"date\" },\n label: { default: () => t(\"Please choose a date\") },\n min: { default: null },\n max: { default: null },\n hideLabel: { type: Boolean }\n }, {\n \"modelValue\": { default: null },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props) {\n const modelValue = useModel(__props, \"modelValue\");\n const props = __props;\n const formattedValue = computed(() => modelValue.value ? formatValue(modelValue.value) : \"\");\n const formattedMax = computed(() => props.max ? formatValue(props.max) : void 0);\n const formattedMin = computed(() => props.min ? formatValue(props.min) : void 0);\n function getReadableDate(value) {\n const yyyy = value.getFullYear().toString().padStart(4, \"0\");\n const MM = (value.getMonth() + 1).toString().padStart(2, \"0\");\n const dd = value.getDate().toString().padStart(2, \"0\");\n const hh = value.getHours().toString().padStart(2, \"0\");\n const mm = value.getMinutes().toString().padStart(2, \"0\");\n return { yyyy, MM, dd, hh, mm };\n }\n function formatValue(value) {\n const { yyyy, MM, dd, hh, mm } = getReadableDate(value);\n if (props.type === \"datetime-local\") {\n return `${yyyy}-${MM}-${dd}T${hh}:${mm}`;\n } else if (props.type === \"date\") {\n return `${yyyy}-${MM}-${dd}`;\n } else if (props.type === \"month\") {\n return `${yyyy}-${MM}`;\n } else if (props.type === \"time\") {\n return `${hh}:${mm}`;\n } else if (props.type === \"week\") {\n const startDate = new Date(Number.parseInt(yyyy), 0, 1);\n const daysSinceBeginningOfYear = Math.floor((value.getTime() - startDate.getTime()) / (24 * 60 * 60 * 1e3));\n const weekNumber = Math.ceil(daysSinceBeginningOfYear / 7);\n return `${yyyy}-W${weekNumber}`;\n }\n return \"\";\n }\n function onInput(event) {\n const input = event.target;\n if (!input || isNaN(input.valueAsNumber)) {\n modelValue.value = null;\n } else if (props.type === \"time\") {\n const time = input.value;\n const { yyyy, MM, dd } = getReadableDate(modelValue.value || /* @__PURE__ */ new Date());\n modelValue.value = /* @__PURE__ */ new Date(`${yyyy}-${MM}-${dd}T${time}`);\n } else if (props.type === \"month\") {\n const MM = (new Date(input.value).getMonth() + 1).toString().padStart(2, \"0\");\n const { yyyy, dd, hh, mm } = getReadableDate(modelValue.value || /* @__PURE__ */ new Date());\n modelValue.value = /* @__PURE__ */ new Date(`${yyyy}-${MM}-${dd}T${hh}:${mm}`);\n } else {\n const timezoneOffsetSeconds = new Date(input.valueAsNumber).getTimezoneOffset() * 1e3 * 60;\n const inputDateWithTimezone = input.valueAsNumber + timezoneOffsetSeconds;\n modelValue.value = new Date(inputDateWithTimezone);\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"native-datetime-picker\", _ctx.$props.class])\n }, [\n createElementVNode(\"label\", {\n class: normalizeClass([\"native-datetime-picker__label\", { \"hidden-visually\": _ctx.hideLabel }]),\n for: _ctx.id\n }, toDisplayString(_ctx.label), 11, _hoisted_1),\n createElementVNode(\"input\", mergeProps({\n id: _ctx.id,\n class: [\"native-datetime-picker__input\", _ctx.inputClass],\n type: _ctx.type,\n value: formattedValue.value,\n min: formattedMin.value,\n max: formattedMax.value\n }, _ctx.$attrs, { onInput }), null, 16, _hoisted_2)\n ], 2);\n };\n }\n});\nconst NcDateTimePickerNative = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-b97e1f7a\"]]);\nexport {\n NcDateTimePickerNative as N\n};\n//# sourceMappingURL=NcDateTimePickerNative-DXF3-uR3.mjs.map\n","import '../assets/NcActionInput-BxRA_Skn.css';\nimport { defineAsyncComponent, resolveComponent, createElementBlock, openBlock, normalizeClass, createElementVNode, renderSlot, normalizeStyle, withModifiers, createCommentVNode, toDisplayString, createBlock, mergeProps, createVNode, withCtx } from \"vue\";\nimport { r as register, h as t48, a as t } from \"./_l10n-DrTiip5c.mjs\";\nimport { A as ActionGlobalMixin } from \"./actionGlobal-BZFdtdJL.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { N as NcDateTimePickerNative } from \"./NcDateTimePickerNative-DXF3-uR3.mjs\";\nimport { N as NcPasswordField } from \"./NcPasswordField-djttkA5Q.mjs\";\nimport { _ as _sfc_main$1 } from \"./NcTextField.vue_vue_type_script_setup_true_lang-D1y_LfGJ.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t48);\nconst _sfc_main = {\n name: \"NcActionInput\",\n components: {\n NcDateTimePickerNative,\n NcPasswordField,\n NcTextField: _sfc_main$1,\n // Lazy load components with more than 50kB bundle size impact\n NcColorPicker: defineAsyncComponent(() => import(\"../components/NcColorPicker/index.mjs\")),\n NcDateTimePicker: defineAsyncComponent(() => import(\"../components/NcDateTimePicker/index.mjs\")),\n NcSelect: defineAsyncComponent(() => import(\"../components/NcSelect/index.mjs\"))\n },\n mixins: [ActionGlobalMixin],\n inheritAttrs: false,\n props: {\n /**\n * id attribute of the checkbox element\n */\n id: {\n type: String,\n default: () => \"action-\" + createElementId(),\n validator: (id) => id.trim() !== \"\"\n },\n /**\n * id attribute of the text input element\n */\n inputId: {\n type: String,\n default: () => \"action-input-\" + createElementId(),\n validator: (id) => id.trim() !== \"\"\n },\n /**\n * Icon to show with the action, can be either a CSS class or an URL\n */\n icon: {\n type: String,\n default: \"\"\n },\n /**\n * type attribute of the input field\n */\n type: {\n type: String,\n default: \"text\",\n validator(type) {\n return [\n \"date\",\n \"datetime-local\",\n \"month\",\n \"multiselect\",\n \"number\",\n \"password\",\n \"search\",\n \"tel\",\n \"text\",\n \"time\",\n \"url\",\n \"week\",\n \"color\",\n \"email\"\n ].includes(type);\n }\n },\n /**\n * id attribute for the native date time picker\n */\n idNativeDateTimePicker: {\n type: String,\n default: \"date-time-picker_id\"\n },\n /**\n * Flag to use a native date time picker\n */\n isNativePicker: {\n type: Boolean,\n default: false\n },\n /**\n * The visible input label for accessibility purposes.\n */\n label: {\n type: String,\n default: null\n },\n /**\n * If you want to show the label just above the\n * input field, pass in `true` to this prop.\n */\n labelOutside: {\n type: Boolean,\n default: true\n },\n /**\n * value attribute of the input field\n */\n modelValue: {\n type: [String, Date, Number, Array],\n default: \"\"\n },\n /**\n * disabled state of the input field\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * aria-label attribute of the input field\n */\n ariaLabel: {\n type: String,\n default: \"\"\n },\n /**\n * Attribute forwarded to the underlying NcPasswordField and NcTextField\n */\n showTrailingButton: {\n type: Boolean,\n default: true\n },\n /**\n * Trailing button label forwarded to the underlying NcTextField\n */\n trailingButtonLabel: {\n type: String,\n default: t(\"Submit\")\n },\n /**\n * CSS class to apply to the root element.\n */\n class: {\n type: [String, Array, Object],\n default: \"\"\n }\n },\n emits: [\n \"submit\",\n \"update:modelValue\"\n ],\n computed: {\n isIconUrl() {\n try {\n return new URL(this.icon);\n } catch {\n return false;\n }\n },\n isMultiselectType() {\n return this.type === \"multiselect\";\n },\n nativeDatePickerType() {\n switch (this.type) {\n case \"date\":\n case \"month\":\n case \"time\":\n case \"week\":\n case \"datetime-local\":\n return this.type;\n }\n return false;\n },\n datePickerType() {\n if (!this.isNativePicker) {\n switch (this.type) {\n case \"date\":\n case \"month\":\n case \"time\":\n return this.type;\n case \"datetime-local\":\n return \"datetime\";\n }\n }\n return false;\n },\n /**\n * determines if the action is focusable\n *\n * @return {boolean} is the action focusable ?\n */\n isFocusable() {\n return !this.disabled;\n }\n },\n methods: {\n // closing datepicker popup on mouseleave = unfocus\n onLeave() {\n if (this.$refs.datetimepicker && this.$refs.datetimepicker.$refs.datepicker) {\n this.$refs.datetimepicker.$refs.datepicker.closePopup();\n }\n },\n onSubmit(event) {\n event.preventDefault();\n event.stopPropagation();\n if (!this.disabled) {\n this.$emit(\"submit\", event);\n } else {\n return false;\n }\n },\n onUpdateModelValue(event) {\n this.$emit(\"update:modelValue\", event);\n }\n }\n};\nconst _hoisted_1 = { class: \"action-input__icon-wrapper\" };\nconst _hoisted_2 = [\"disabled\"];\nconst _hoisted_3 = { class: \"action-input__container\" };\nconst _hoisted_4 = [\"for\"];\nconst _hoisted_5 = { class: \"action-input__input-container\" };\nconst _hoisted_6 = {\n key: 4,\n class: \"action-input__container\"\n};\nconst _hoisted_7 = [\"for\"];\nconst _hoisted_8 = { class: \"action-input__input-container\" };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcDateTimePicker = resolveComponent(\"NcDateTimePicker\");\n const _component_NcDateTimePickerNative = resolveComponent(\"NcDateTimePickerNative\");\n const _component_NcSelect = resolveComponent(\"NcSelect\");\n const _component_NcPasswordField = resolveComponent(\"NcPasswordField\");\n const _component_NcColorPicker = resolveComponent(\"NcColorPicker\");\n const _component_NcTextField = resolveComponent(\"NcTextField\");\n return openBlock(), createElementBlock(\"li\", {\n class: normalizeClass([\"action\", [{ \"action--disabled\": $props.disabled }, _ctx.$props.class]])\n }, [\n createElementVNode(\"span\", {\n class: normalizeClass([\"action-input\", {\n \"action-input-picker--disabled\": $props.disabled,\n \"action-input--visible-label\": $props.labelOutside && $props.label\n }]),\n onMouseleave: _cache[3] || (_cache[3] = (...args) => $options.onLeave && $options.onLeave(...args))\n }, [\n createElementVNode(\"span\", _hoisted_1, [\n renderSlot(_ctx.$slots, \"icon\", {}, () => [\n createElementVNode(\"span\", {\n \"aria-hidden\": \"true\",\n class: normalizeClass([\"action-input__icon\", [$options.isIconUrl ? \"action-input__icon--url\" : $props.icon]]),\n style: normalizeStyle({ backgroundImage: $options.isIconUrl ? `url(${$props.icon})` : null })\n }, null, 6)\n ], true)\n ]),\n createElementVNode(\"form\", {\n ref: \"form\",\n class: \"action-input__form\",\n disabled: $props.disabled,\n onSubmit: _cache[2] || (_cache[2] = withModifiers((...args) => $options.onSubmit && $options.onSubmit(...args), [\"prevent\"]))\n }, [\n createElementVNode(\"div\", _hoisted_3, [\n $props.label && $props.labelOutside && !$props.isNativePicker ? (openBlock(), createElementBlock(\"label\", {\n key: 0,\n class: normalizeClass([\"action-input__text-label\", { \"action-input__text-label--hidden\": !$props.labelOutside }]),\n for: $props.inputId\n }, toDisplayString($props.label), 11, _hoisted_4)) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", _hoisted_5, [\n $options.datePickerType ? (openBlock(), createBlock(_component_NcDateTimePicker, mergeProps({\n key: 0,\n ref: \"datetimepicker\",\n \"model-value\": $props.modelValue,\n style: { \"z-index\": \"99999999999\" },\n placeholder: _ctx.text,\n disabled: $props.disabled,\n type: $options.datePickerType,\n \"input-class\": [\"mx-input\", { focusable: $options.isFocusable }],\n class: \"action-input__datetimepicker\",\n \"append-to-body\": \"\"\n }, _ctx.$attrs, { \"onUpdate:modelValue\": $options.onUpdateModelValue }), null, 16, [\"model-value\", \"placeholder\", \"disabled\", \"type\", \"input-class\", \"onUpdate:modelValue\"])) : $props.isNativePicker ? (openBlock(), createBlock(_component_NcDateTimePickerNative, mergeProps({\n key: 1,\n id: $props.idNativeDateTimePicker,\n \"model-value\": $props.modelValue,\n label: $props.label,\n type: $options.nativeDatePickerType,\n \"input-class\": { focusable: $options.isFocusable },\n class: \"action-input__datetimepicker\"\n }, _ctx.$attrs, { \"onUpdate:modelValue\": $options.onUpdateModelValue }), null, 16, [\"id\", \"model-value\", \"label\", \"type\", \"input-class\", \"onUpdate:modelValue\"])) : $options.isMultiselectType ? (openBlock(), createBlock(_component_NcSelect, mergeProps({\n key: 2,\n \"model-value\": $props.modelValue,\n placeholder: _ctx.text,\n disabled: $props.disabled,\n \"append-to-body\": false,\n \"input-class\": { focusable: $options.isFocusable },\n class: \"action-input__multi\"\n }, _ctx.$attrs, { \"onUpdate:modelValue\": $options.onUpdateModelValue }), null, 16, [\"model-value\", \"placeholder\", \"disabled\", \"input-class\", \"onUpdate:modelValue\"])) : $props.type === \"password\" ? (openBlock(), createBlock(_component_NcPasswordField, mergeProps({\n key: 3,\n id: $props.inputId,\n \"model-value\": $props.modelValue,\n label: $props.label,\n \"label-outside\": !$props.label || $props.labelOutside,\n placeholder: _ctx.text,\n disabled: $props.disabled,\n \"input-class\": { focusable: $options.isFocusable },\n \"show-trailing-button\": $props.showTrailingButton && !$props.disabled\n }, _ctx.$attrs, { \"onUpdate:modelValue\": $options.onUpdateModelValue }), null, 16, [\"id\", \"model-value\", \"label\", \"label-outside\", \"placeholder\", \"disabled\", \"input-class\", \"show-trailing-button\", \"onUpdate:modelValue\"])) : $props.type === \"color\" ? (openBlock(), createElementBlock(\"div\", _hoisted_6, [\n $props.label && $props.type === \"color\" ? (openBlock(), createElementBlock(\"label\", {\n key: 0,\n class: normalizeClass([\"action-input__text-label\", { \"action-input__text-label--hidden\": !$props.labelOutside }]),\n for: $props.inputId\n }, toDisplayString($props.label), 11, _hoisted_7)) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", _hoisted_8, [\n createVNode(_component_NcColorPicker, mergeProps({\n id: \"inputId\",\n \"model-value\": $props.modelValue,\n class: \"colorpicker__trigger\"\n }, _ctx.$attrs, {\n \"onUpdate:modelValue\": $options.onUpdateModelValue,\n onSubmit: _cache[0] || (_cache[0] = ($event) => _ctx.$refs.form.requestSubmit())\n }), {\n default: withCtx(() => [\n createElementVNode(\"button\", {\n class: normalizeClass([\"colorpicker__preview\", { focusable: $options.isFocusable }]),\n style: normalizeStyle({ \"background-color\": $props.modelValue })\n }, null, 6)\n ]),\n _: 1\n }, 16, [\"model-value\", \"onUpdate:modelValue\"])\n ])\n ])) : (openBlock(), createBlock(_component_NcTextField, mergeProps({\n key: 5,\n id: $props.inputId,\n \"model-value\": $props.modelValue,\n label: $props.label,\n \"label-outside\": !$props.label || $props.labelOutside,\n placeholder: _ctx.text,\n disabled: $props.disabled,\n \"input-class\": { focusable: $options.isFocusable },\n type: $props.type,\n \"trailing-button-icon\": \"arrowRight\",\n \"trailing-button-label\": $props.trailingButtonLabel,\n \"show-trailing-button\": $props.showTrailingButton && !$props.disabled\n }, _ctx.$attrs, {\n onTrailingButtonClick: _cache[1] || (_cache[1] = ($event) => _ctx.$refs.form.requestSubmit()),\n \"onUpdate:modelValue\": $options.onUpdateModelValue\n }), null, 16, [\"id\", \"model-value\", \"label\", \"label-outside\", \"placeholder\", \"disabled\", \"input-class\", \"type\", \"trailing-button-label\", \"show-trailing-button\", \"onUpdate:modelValue\"]))\n ])\n ])\n ], 40, _hoisted_2)\n ], 34)\n ], 2);\n}\nconst NcActionInput = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-67b3d681\"]]);\nexport {\n NcActionInput as N\n};\n//# sourceMappingURL=NcActionInput-uL5aa-A2.mjs.map\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","export class TimeoutError extends Error {\n\tname = 'TimeoutError';\n\n\tconstructor(message, options) {\n\t\tsuper(message, options);\n\t\tError.captureStackTrace?.(this, TimeoutError);\n\t}\n}\n\nconst getAbortedReason = signal => signal.reason ?? new DOMException('This operation was aborted.', 'AbortError');\n\nexport default function pTimeout(promise, options) {\n\tconst {\n\t\tmilliseconds,\n\t\tfallback,\n\t\tmessage,\n\t\tcustomTimers = {setTimeout, clearTimeout},\n\t\tsignal,\n\t} = options;\n\n\tlet timer;\n\tlet abortHandler;\n\n\tconst wrappedPromise = new Promise((resolve, reject) => {\n\t\tif (typeof milliseconds !== 'number' || Math.sign(milliseconds) !== 1) {\n\t\t\tthrow new TypeError(`Expected \\`milliseconds\\` to be a positive number, got \\`${milliseconds}\\``);\n\t\t}\n\n\t\tif (signal?.aborted) {\n\t\t\treject(getAbortedReason(signal));\n\t\t\treturn;\n\t\t}\n\n\t\tif (signal) {\n\t\t\tabortHandler = () => {\n\t\t\t\treject(getAbortedReason(signal));\n\t\t\t};\n\n\t\t\tsignal.addEventListener('abort', abortHandler, {once: true});\n\t\t}\n\n\t\t// Use .then() instead of async IIFE to preserve stack traces\n\t\t// eslint-disable-next-line promise/prefer-await-to-then, promise/prefer-catch\n\t\tpromise.then(resolve, reject);\n\n\t\tif (milliseconds === Number.POSITIVE_INFINITY) {\n\t\t\treturn;\n\t\t}\n\n\t\t// We create the error outside of `setTimeout` to preserve the stack trace.\n\t\tconst timeoutError = new TimeoutError();\n\n\t\t// `.call(undefined, ...)` is needed for custom timers to avoid context issues\n\t\ttimer = customTimers.setTimeout.call(undefined, () => {\n\t\t\tif (fallback) {\n\t\t\t\ttry {\n\t\t\t\t\tresolve(fallback());\n\t\t\t\t} catch (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (typeof promise.cancel === 'function') {\n\t\t\t\tpromise.cancel();\n\t\t\t}\n\n\t\t\tif (message === false) {\n\t\t\t\tresolve();\n\t\t\t} else if (message instanceof Error) {\n\t\t\t\treject(message);\n\t\t\t} else {\n\t\t\t\ttimeoutError.message = message ?? `Promise timed out after ${milliseconds} milliseconds`;\n\t\t\t\treject(timeoutError);\n\t\t\t}\n\t\t}, milliseconds);\n\t});\n\n\t// eslint-disable-next-line promise/prefer-await-to-then\n\tconst cancelablePromise = wrappedPromise.finally(() => {\n\t\tcancelablePromise.clear();\n\t\tif (abortHandler && signal) {\n\t\t\tsignal.removeEventListener('abort', abortHandler);\n\t\t}\n\t});\n\n\tcancelablePromise.clear = () => {\n\t\t// `.call(undefined, ...)` is needed for custom timers to avoid context issues\n\t\tcustomTimers.clearTimeout.call(undefined, timer);\n\t\ttimer = undefined;\n\t};\n\n\treturn cancelablePromise;\n}\n","// Port of lower_bound from https://en.cppreference.com/w/cpp/algorithm/lower_bound\n// Used to compute insertion index to keep queue sorted after insertion\nexport default function lowerBound(array, value, comparator) {\n let first = 0;\n let count = array.length;\n while (count > 0) {\n const step = Math.trunc(count / 2);\n let it = first + step;\n if (comparator(array[it], value) <= 0) {\n first = ++it;\n count -= step + 1;\n }\n else {\n count = step;\n }\n }\n return first;\n}\n","import lowerBound from './lower-bound.js';\nexport default class PriorityQueue {\n #queue = [];\n enqueue(run, options) {\n const { priority = 0, id, } = options ?? {};\n const element = {\n priority,\n id,\n run,\n };\n if (this.size === 0 || this.#queue[this.size - 1].priority >= priority) {\n this.#queue.push(element);\n return;\n }\n const index = lowerBound(this.#queue, element, (a, b) => b.priority - a.priority);\n this.#queue.splice(index, 0, element);\n }\n setPriority(id, priority) {\n const index = this.#queue.findIndex((element) => element.id === id);\n if (index === -1) {\n throw new ReferenceError(`No promise function with the id \"${id}\" exists in the queue.`);\n }\n const [item] = this.#queue.splice(index, 1);\n this.enqueue(item.run, { priority, id });\n }\n dequeue() {\n const item = this.#queue.shift();\n return item?.run;\n }\n filter(options) {\n return this.#queue.filter((element) => element.priority === options.priority).map((element) => element.run);\n }\n get size() {\n return this.#queue.length;\n }\n}\n","import { EventEmitter } from 'eventemitter3';\nimport pTimeout from 'p-timeout';\nimport PriorityQueue from './priority-queue.js';\n/**\nPromise queue with concurrency control.\n*/\nexport default class PQueue extends EventEmitter {\n #carryoverIntervalCount;\n #isIntervalIgnored;\n #intervalCount = 0;\n #intervalCap;\n #rateLimitedInInterval = false;\n #rateLimitFlushScheduled = false;\n #interval;\n #intervalEnd = 0;\n #lastExecutionTime = 0;\n #intervalId;\n #timeoutId;\n #queue;\n #queueClass;\n #pending = 0;\n // The `!` is needed because of https://github.com/microsoft/TypeScript/issues/32194\n #concurrency;\n #isPaused;\n // Use to assign a unique identifier to a promise function, if not explicitly specified\n #idAssigner = 1n;\n // Track currently running tasks for debugging\n #runningTasks = new Map();\n /**\n Get or set the default timeout for all tasks. Can be changed at runtime.\n\n Operations will throw a `TimeoutError` if they don't complete within the specified time.\n\n The timeout begins when the operation is dequeued and starts execution, not while it's waiting in the queue.\n\n @example\n ```\n const queue = new PQueue({timeout: 5000});\n\n // Change timeout for all future tasks\n queue.timeout = 10000;\n ```\n */\n timeout;\n constructor(options) {\n super();\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n options = {\n carryoverIntervalCount: false,\n intervalCap: Number.POSITIVE_INFINITY,\n interval: 0,\n concurrency: Number.POSITIVE_INFINITY,\n autoStart: true,\n queueClass: PriorityQueue,\n ...options,\n };\n if (!(typeof options.intervalCap === 'number' && options.intervalCap >= 1)) {\n throw new TypeError(`Expected \\`intervalCap\\` to be a number from 1 and up, got \\`${options.intervalCap?.toString() ?? ''}\\` (${typeof options.intervalCap})`);\n }\n if (options.interval === undefined || !(Number.isFinite(options.interval) && options.interval >= 0)) {\n throw new TypeError(`Expected \\`interval\\` to be a finite number >= 0, got \\`${options.interval?.toString() ?? ''}\\` (${typeof options.interval})`);\n }\n // TODO: Remove this fallback in the next major version\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n this.#carryoverIntervalCount = options.carryoverIntervalCount ?? options.carryoverConcurrencyCount ?? false;\n this.#isIntervalIgnored = options.intervalCap === Number.POSITIVE_INFINITY || options.interval === 0;\n this.#intervalCap = options.intervalCap;\n this.#interval = options.interval;\n this.#queue = new options.queueClass();\n this.#queueClass = options.queueClass;\n this.concurrency = options.concurrency;\n if (options.timeout !== undefined && !(Number.isFinite(options.timeout) && options.timeout > 0)) {\n throw new TypeError(`Expected \\`timeout\\` to be a positive finite number, got \\`${options.timeout}\\` (${typeof options.timeout})`);\n }\n this.timeout = options.timeout;\n this.#isPaused = options.autoStart === false;\n this.#setupRateLimitTracking();\n }\n get #doesIntervalAllowAnother() {\n return this.#isIntervalIgnored || this.#intervalCount < this.#intervalCap;\n }\n get #doesConcurrentAllowAnother() {\n return this.#pending < this.#concurrency;\n }\n #next() {\n this.#pending--;\n if (this.#pending === 0) {\n this.emit('pendingZero');\n }\n this.#tryToStartAnother();\n this.emit('next');\n }\n #onResumeInterval() {\n this.#onInterval(); // Already schedules update\n this.#initializeIntervalIfNeeded();\n this.#timeoutId = undefined;\n }\n get #isIntervalPaused() {\n const now = Date.now();\n if (this.#intervalId === undefined) {\n const delay = this.#intervalEnd - now;\n if (delay < 0) {\n // If the interval has expired while idle, check if we should enforce the interval\n // from the last task execution. This ensures proper spacing between tasks even\n // when the queue becomes empty and then new tasks are added.\n if (this.#lastExecutionTime > 0) {\n const timeSinceLastExecution = now - this.#lastExecutionTime;\n if (timeSinceLastExecution < this.#interval) {\n // Not enough time has passed since the last task execution\n this.#createIntervalTimeout(this.#interval - timeSinceLastExecution);\n return true;\n }\n }\n // Enough time has passed or no previous execution, allow execution\n this.#intervalCount = (this.#carryoverIntervalCount) ? this.#pending : 0;\n }\n else {\n // Act as the interval is pending\n this.#createIntervalTimeout(delay);\n return true;\n }\n }\n return false;\n }\n #createIntervalTimeout(delay) {\n if (this.#timeoutId !== undefined) {\n return;\n }\n this.#timeoutId = setTimeout(() => {\n this.#onResumeInterval();\n }, delay);\n }\n #clearIntervalTimer() {\n if (this.#intervalId) {\n clearInterval(this.#intervalId);\n this.#intervalId = undefined;\n }\n }\n #clearTimeoutTimer() {\n if (this.#timeoutId) {\n clearTimeout(this.#timeoutId);\n this.#timeoutId = undefined;\n }\n }\n #tryToStartAnother() {\n if (this.#queue.size === 0) {\n // We can clear the interval (\"pause\")\n // Because we can redo it later (\"resume\")\n this.#clearIntervalTimer();\n this.emit('empty');\n if (this.#pending === 0) {\n // Clear timeout as well when completely idle\n this.#clearTimeoutTimer();\n this.emit('idle');\n }\n return false;\n }\n let taskStarted = false;\n if (!this.#isPaused) {\n const canInitializeInterval = !this.#isIntervalPaused;\n if (this.#doesIntervalAllowAnother && this.#doesConcurrentAllowAnother) {\n const job = this.#queue.dequeue();\n // Increment interval count immediately to prevent race conditions\n if (!this.#isIntervalIgnored) {\n this.#intervalCount++;\n this.#scheduleRateLimitUpdate();\n }\n this.emit('active');\n this.#lastExecutionTime = Date.now();\n job();\n if (canInitializeInterval) {\n this.#initializeIntervalIfNeeded();\n }\n taskStarted = true;\n }\n }\n return taskStarted;\n }\n #initializeIntervalIfNeeded() {\n if (this.#isIntervalIgnored || this.#intervalId !== undefined) {\n return;\n }\n this.#intervalId = setInterval(() => {\n this.#onInterval();\n }, this.#interval);\n this.#intervalEnd = Date.now() + this.#interval;\n }\n #onInterval() {\n if (this.#intervalCount === 0 && this.#pending === 0 && this.#intervalId) {\n this.#clearIntervalTimer();\n }\n this.#intervalCount = this.#carryoverIntervalCount ? this.#pending : 0;\n this.#processQueue();\n this.#scheduleRateLimitUpdate();\n }\n /**\n Executes all queued functions until it reaches the limit.\n */\n #processQueue() {\n // eslint-disable-next-line no-empty\n while (this.#tryToStartAnother()) { }\n }\n get concurrency() {\n return this.#concurrency;\n }\n set concurrency(newConcurrency) {\n if (!(typeof newConcurrency === 'number' && newConcurrency >= 1)) {\n throw new TypeError(`Expected \\`concurrency\\` to be a number from 1 and up, got \\`${newConcurrency}\\` (${typeof newConcurrency})`);\n }\n this.#concurrency = newConcurrency;\n this.#processQueue();\n }\n /**\n Updates the priority of a promise function by its id, affecting its execution order. Requires a defined concurrency limit to take effect.\n\n For example, this can be used to prioritize a promise function to run earlier.\n\n ```js\n import PQueue from 'p-queue';\n\n const queue = new PQueue({concurrency: 1});\n\n queue.add(async () => '🦄', {priority: 1});\n queue.add(async () => '🦀', {priority: 0, id: '🦀'});\n queue.add(async () => '🦄', {priority: 1});\n queue.add(async () => '🦄', {priority: 1});\n\n queue.setPriority('🦀', 2);\n ```\n\n In this case, the promise function with `id: '🦀'` runs second.\n\n You can also deprioritize a promise function to delay its execution:\n\n ```js\n import PQueue from 'p-queue';\n\n const queue = new PQueue({concurrency: 1});\n\n queue.add(async () => '🦄', {priority: 1});\n queue.add(async () => '🦀', {priority: 1, id: '🦀'});\n queue.add(async () => '🦄');\n queue.add(async () => '🦄', {priority: 0});\n\n queue.setPriority('🦀', -1);\n ```\n Here, the promise function with `id: '🦀'` executes last.\n */\n setPriority(id, priority) {\n if (typeof priority !== 'number' || !Number.isFinite(priority)) {\n throw new TypeError(`Expected \\`priority\\` to be a finite number, got \\`${priority}\\` (${typeof priority})`);\n }\n this.#queue.setPriority(id, priority);\n }\n async add(function_, options = {}) {\n // In case `id` is not defined.\n options.id ??= (this.#idAssigner++).toString();\n options = {\n timeout: this.timeout,\n ...options,\n };\n return new Promise((resolve, reject) => {\n // Create a unique symbol for tracking this task\n const taskSymbol = Symbol(`task-${options.id}`);\n this.#queue.enqueue(async () => {\n this.#pending++;\n // Track this running task\n this.#runningTasks.set(taskSymbol, {\n id: options.id,\n priority: options.priority ?? 0, // Match priority-queue default\n startTime: Date.now(),\n timeout: options.timeout,\n });\n let eventListener;\n try {\n // Check abort signal - if aborted, need to decrement the counter\n // that was incremented in tryToStartAnother\n try {\n options.signal?.throwIfAborted();\n }\n catch (error) {\n // Decrement the counter that was already incremented\n if (!this.#isIntervalIgnored) {\n this.#intervalCount--;\n }\n // Clean up tracking before throwing\n this.#runningTasks.delete(taskSymbol);\n throw error;\n }\n let operation = function_({ signal: options.signal });\n if (options.timeout) {\n operation = pTimeout(Promise.resolve(operation), {\n milliseconds: options.timeout,\n message: `Task timed out after ${options.timeout}ms (queue has ${this.#pending} running, ${this.#queue.size} waiting)`,\n });\n }\n if (options.signal) {\n const { signal } = options;\n operation = Promise.race([operation, new Promise((_resolve, reject) => {\n eventListener = () => {\n reject(signal.reason);\n };\n signal.addEventListener('abort', eventListener, { once: true });\n })]);\n }\n const result = await operation;\n resolve(result);\n this.emit('completed', result);\n }\n catch (error) {\n reject(error);\n this.emit('error', error);\n }\n finally {\n // Clean up abort event listener\n if (eventListener) {\n options.signal?.removeEventListener('abort', eventListener);\n }\n // Remove from running tasks\n this.#runningTasks.delete(taskSymbol);\n // Use queueMicrotask to prevent deep recursion while maintaining timing\n queueMicrotask(() => {\n this.#next();\n });\n }\n }, options);\n this.emit('add');\n this.#tryToStartAnother();\n });\n }\n async addAll(functions, options) {\n return Promise.all(functions.map(async (function_) => this.add(function_, options)));\n }\n /**\n Start (or resume) executing enqueued tasks within concurrency limit. No need to call this if queue is not paused (via `options.autoStart = false` or by `.pause()` method.)\n */\n start() {\n if (!this.#isPaused) {\n return this;\n }\n this.#isPaused = false;\n this.#processQueue();\n return this;\n }\n /**\n Put queue execution on hold.\n */\n pause() {\n this.#isPaused = true;\n }\n /**\n Clear the queue.\n */\n clear() {\n this.#queue = new this.#queueClass();\n // Note: We don't clear #runningTasks as those tasks are still running\n // They will be removed when they complete in the finally block\n // Force synchronous update since clear() should have immediate effect\n this.#updateRateLimitState();\n }\n /**\n Can be called multiple times. Useful if you for example add additional items at a later time.\n\n @returns A promise that settles when the queue becomes empty.\n */\n async onEmpty() {\n // Instantly resolve if the queue is empty\n if (this.#queue.size === 0) {\n return;\n }\n await this.#onEvent('empty');\n }\n /**\n @returns A promise that settles when the queue size is less than the given limit: `queue.size < limit`.\n\n If you want to avoid having the queue grow beyond a certain size you can `await queue.onSizeLessThan()` before adding a new item.\n\n Note that this only limits the number of items waiting to start. There could still be up to `concurrency` jobs already running that this call does not include in its calculation.\n */\n async onSizeLessThan(limit) {\n // Instantly resolve if the queue is empty.\n if (this.#queue.size < limit) {\n return;\n }\n await this.#onEvent('next', () => this.#queue.size < limit);\n }\n /**\n The difference with `.onEmpty` is that `.onIdle` guarantees that all work from the queue has finished. `.onEmpty` merely signals that the queue is empty, but it could mean that some promises haven't completed yet.\n\n @returns A promise that settles when the queue becomes empty, and all promises have completed; `queue.size === 0 && queue.pending === 0`.\n */\n async onIdle() {\n // Instantly resolve if none pending and if nothing else is queued\n if (this.#pending === 0 && this.#queue.size === 0) {\n return;\n }\n await this.#onEvent('idle');\n }\n /**\n The difference with `.onIdle` is that `.onPendingZero` only waits for currently running tasks to finish, ignoring queued tasks.\n\n @returns A promise that settles when all currently running tasks have completed; `queue.pending === 0`.\n */\n async onPendingZero() {\n if (this.#pending === 0) {\n return;\n }\n await this.#onEvent('pendingZero');\n }\n /**\n @returns A promise that settles when the queue becomes rate-limited due to intervalCap.\n */\n async onRateLimit() {\n if (this.isRateLimited) {\n return;\n }\n await this.#onEvent('rateLimit');\n }\n /**\n @returns A promise that settles when the queue is no longer rate-limited.\n */\n async onRateLimitCleared() {\n if (!this.isRateLimited) {\n return;\n }\n await this.#onEvent('rateLimitCleared');\n }\n /**\n @returns A promise that rejects when any task in the queue errors.\n\n Use with `Promise.race([queue.onError(), queue.onIdle()])` to fail fast on the first error while still resolving normally when the queue goes idle.\n\n Important: The promise returned by `add()` still rejects. You must handle each `add()` promise (for example, `.catch(() => {})`) to avoid unhandled rejections.\n\n @example\n ```\n import PQueue from 'p-queue';\n\n const queue = new PQueue({concurrency: 2});\n\n queue.add(() => fetchData(1)).catch(() => {});\n queue.add(() => fetchData(2)).catch(() => {});\n queue.add(() => fetchData(3)).catch(() => {});\n\n // Stop processing on first error\n try {\n await Promise.race([\n queue.onError(),\n queue.onIdle()\n ]);\n } catch (error) {\n queue.pause(); // Stop processing remaining tasks\n console.error('Queue failed:', error);\n }\n ```\n */\n // eslint-disable-next-line @typescript-eslint/promise-function-async\n async onError() {\n return new Promise((_resolve, reject) => {\n const handleError = (error) => {\n this.off('error', handleError);\n reject(error);\n };\n this.on('error', handleError);\n });\n }\n async #onEvent(event, filter) {\n return new Promise(resolve => {\n const listener = () => {\n if (filter && !filter()) {\n return;\n }\n this.off(event, listener);\n resolve();\n };\n this.on(event, listener);\n });\n }\n /**\n Size of the queue, the number of queued items waiting to run.\n */\n get size() {\n return this.#queue.size;\n }\n /**\n Size of the queue, filtered by the given options.\n\n For example, this can be used to find the number of items remaining in the queue with a specific priority level.\n */\n sizeBy(options) {\n // eslint-disable-next-line unicorn/no-array-callback-reference\n return this.#queue.filter(options).length;\n }\n /**\n Number of running items (no longer in the queue).\n */\n get pending() {\n return this.#pending;\n }\n /**\n Whether the queue is currently paused.\n */\n get isPaused() {\n return this.#isPaused;\n }\n #setupRateLimitTracking() {\n // Only schedule updates when rate limiting is enabled\n if (this.#isIntervalIgnored) {\n return;\n }\n // Wire up to lifecycle events that affect rate limit state\n // Only 'add' and 'next' can actually change rate limit state\n this.on('add', () => {\n if (this.#queue.size > 0) {\n this.#scheduleRateLimitUpdate();\n }\n });\n this.on('next', () => {\n this.#scheduleRateLimitUpdate();\n });\n }\n #scheduleRateLimitUpdate() {\n // Skip if rate limiting is not enabled or already scheduled\n if (this.#isIntervalIgnored || this.#rateLimitFlushScheduled) {\n return;\n }\n this.#rateLimitFlushScheduled = true;\n queueMicrotask(() => {\n this.#rateLimitFlushScheduled = false;\n this.#updateRateLimitState();\n });\n }\n #updateRateLimitState() {\n const previous = this.#rateLimitedInInterval;\n const shouldBeRateLimited = !this.#isIntervalIgnored\n && this.#intervalCount >= this.#intervalCap\n && this.#queue.size > 0;\n if (shouldBeRateLimited !== previous) {\n this.#rateLimitedInInterval = shouldBeRateLimited;\n this.emit(shouldBeRateLimited ? 'rateLimit' : 'rateLimitCleared');\n }\n }\n /**\n Whether the queue is currently rate-limited due to intervalCap.\n */\n get isRateLimited() {\n return this.#rateLimitedInInterval;\n }\n /**\n Whether the queue is saturated. Returns `true` when:\n - All concurrency slots are occupied and tasks are waiting, OR\n - The queue is rate-limited and tasks are waiting\n\n Useful for detecting backpressure and potential hanging tasks.\n\n ```js\n import PQueue from 'p-queue';\n\n const queue = new PQueue({concurrency: 2});\n\n // Backpressure handling\n if (queue.isSaturated) {\n console.log('Queue is saturated, waiting for capacity...');\n await queue.onSizeLessThan(queue.concurrency);\n }\n\n // Monitoring for stuck tasks\n setInterval(() => {\n if (queue.isSaturated) {\n console.warn(`Queue saturated: ${queue.pending} running, ${queue.size} waiting`);\n }\n }, 60000);\n ```\n */\n get isSaturated() {\n return (this.#pending === this.#concurrency && this.#queue.size > 0)\n || (this.isRateLimited && this.#queue.size > 0);\n }\n /**\n The tasks currently being executed. Each task includes its `id`, `priority`, `startTime`, and `timeout` (if set).\n\n Returns an array of task info objects.\n\n ```js\n import PQueue from 'p-queue';\n\n const queue = new PQueue({concurrency: 2});\n\n // Add tasks with IDs for better debugging\n queue.add(() => fetchUser(123), {id: 'user-123'});\n queue.add(() => fetchPosts(456), {id: 'posts-456', priority: 1});\n\n // Check what's running\n console.log(queue.runningTasks);\n // => [{\n // id: 'user-123',\n // priority: 0,\n // startTime: 1759253001716,\n // timeout: undefined\n // }, {\n // id: 'posts-456',\n // priority: 1,\n // startTime: 1759253001916,\n // timeout: undefined\n // }]\n ```\n */\n get runningTasks() {\n // Return fresh array with fresh objects to prevent mutations\n return [...this.#runningTasks.values()].map(task => ({ ...task }));\n }\n}\n/**\nError thrown when a task times out.\n\n@example\n```\nimport PQueue, {TimeoutError} from 'p-queue';\n\nconst queue = new PQueue({timeout: 1000});\n\ntry {\n await queue.add(() => someTask());\n} catch (error) {\n if (error instanceof TimeoutError) {\n console.log('Task timed out');\n }\n}\n```\n*/\nexport { TimeoutError } from 'p-timeout';\n"],"file":"NcBreadcrumbs-DYfGaSjT-BPFs0jvP.chunk.mjs"} \ No newline at end of file diff --git a/dist/NcBreadcrumbs-DYfGaSjT-DHeGymVL.chunk.mjs.map.license b/dist/NcBreadcrumbs-DYfGaSjT-BPFs0jvP.chunk.mjs.map.license similarity index 100% rename from dist/NcBreadcrumbs-DYfGaSjT-DHeGymVL.chunk.mjs.map.license rename to dist/NcBreadcrumbs-DYfGaSjT-BPFs0jvP.chunk.mjs.map.license diff --git a/dist/NcBreadcrumbs-DYfGaSjT-DHeGymVL.chunk.mjs b/dist/NcBreadcrumbs-DYfGaSjT-DHeGymVL.chunk.mjs deleted file mode 100644 index 52016700bf3f9..0000000000000 --- a/dist/NcBreadcrumbs-DYfGaSjT-DHeGymVL.chunk.mjs +++ /dev/null @@ -1,3 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=[window.OC.filePath('', '', 'dist/index-DZnagzmP.chunk.mjs'),window.OC.filePath('', '', 'dist/createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs'),window.OC.filePath('', '', 'dist/translation-DoG5ZELJ-gw0g4US-.chunk.mjs'),window.OC.filePath('', '', 'dist/index-6_gsQFyp.chunk.mjs'),window.OC.filePath('', '', 'dist/NcNoteCard-CVhtNL04-hwuc093N.chunk.mjs'),window.OC.filePath('', '', 'dist/runtime-dom.esm-bundler-BrYCUcZF.chunk.mjs'),window.OC.filePath('', '', 'dist/NcNoteCard-CVhtNL04-DopLwvn9.chunk.css'),window.OC.filePath('', '', 'dist/index-JpgrUA2Z-BFiKKJ1W.chunk.mjs'),window.OC.filePath('', '', 'dist/index-xFugdZPW.chunk.mjs'),window.OC.filePath('', '', 'dist/mdi-D55n0uzy.chunk.mjs'),window.OC.filePath('', '', 'dist/mdi-BYHcrfvW.chunk.css'),window.OC.filePath('', '', 'dist/index-JpgrUA2Z-PxDoi4mB.chunk.css'),window.OC.filePath('', '', 'dist/NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-CAvY10OW.chunk.mjs'),window.OC.filePath('', '', 'dist/NcDateTime-DXOHXnuu.chunk.css'),window.OC.filePath('', '', 'dist/NcSelect-Czzsi3P_-DLFUGW7z.chunk.mjs'),window.OC.filePath('', '', 'dist/NcSelect-Czzsi3P_-DxGOLvnt.chunk.css'),window.OC.filePath('', '', 'dist/NcInputField-Bwsh2aHY-CHbAfY0u.chunk.mjs'),window.OC.filePath('', '', 'dist/NcInputField-Bwsh2aHY-_gyGHRGx.chunk.css'),window.OC.filePath('', '', 'dist/NcRichText-CBMtJzE_-bvZFA37H.chunk.mjs'),window.OC.filePath('', '', 'dist/colors-Go3zmZRD-DU6ImAGi.chunk.mjs'),window.OC.filePath('', '', 'dist/NcCheckboxRadioSwitch-BCSKF7Tk-yPckcGKs.chunk.mjs'),window.OC.filePath('', '', 'dist/NcCheckboxRadioSwitch-BCSKF7Tk-BgdwjgMO.chunk.css'),window.OC.filePath('', '', 'dist/index-BfylblLb.chunk.mjs'),window.OC.filePath('', '', 'dist/string_decoder-BO00msnV.chunk.mjs'),window.OC.filePath('', '', 'dist/index-BZk0T9Q-.chunk.mjs'),window.OC.filePath('', '', 'dist/index-DoZPzs7J.chunk.css'),window.OC.filePath('', '', 'dist/NcAvatar-DmUGApWA-DBHt6M62.chunk.mjs'),window.OC.filePath('', '', 'dist/PencilOutline-DCq8EKwg.chunk.mjs'),window.OC.filePath('', '', 'dist/PencilOutline-Bq_6hmXG.chunk.css'),window.OC.filePath('', '', 'dist/NcAvatar-DmUGApWA-B-07Svbi.chunk.css'),window.OC.filePath('', '', 'dist/TrashCanOutline-CvWRJ8GE.chunk.mjs'),window.OC.filePath('', '', 'dist/NcRichText-CBMtJzE_-Ctfl9_Xi.chunk.css'),window.OC.filePath('', '', 'dist/NcEmojiPicker-pM4Pg2yq-C_Dpe77I.chunk.mjs'),window.OC.filePath('', '', 'dist/NcColorPicker-Kc0JqRtp-VtydDeG1.chunk.mjs'),window.OC.filePath('', '', 'dist/NcColorPicker-Kc0JqRtp-BOLDG5h-.chunk.css'),window.OC.filePath('', '', 'dist/NcEmojiPicker-pM4Pg2yq-BHtXoCfG.chunk.css'),window.OC.filePath('', '', 'dist/index-BrN_nqOS.chunk.css')])))=>i.map(i=>d[i]); -import{_ as S}from"./index-xFugdZPW.chunk.mjs";import{b as B,p as R,q as j,x as I,j as P,o as b,k as g,t as V,n as w,z as k,a as N,f as T,m as Y,K as C,H as Z,l as M,c as x,e as H,w as K}from"./runtime-dom.esm-bundler-BrYCUcZF.chunk.mjs";import{r as z,_ as A,t as F,c as E,h as W}from"./createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs";import{A as G}from"./NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-CAvY10OW.chunk.mjs";import{N as J}from"./NcPasswordField-djttkA5Q-2g87vOpY.chunk.mjs";import{_ as Q}from"./TrashCanOutline-CvWRJ8GE.chunk.mjs";import{c as X}from"./index-6_gsQFyp.chunk.mjs";z();const ee=["for"],te=["id","type","value","min","max"],ie=B({inheritAttrs:!1,__name:"NcDateTimePickerNative",props:R({class:{default:void 0},id:{default:()=>E()},inputClass:{default:""},type:{default:"date"},label:{default:()=>F("Please choose a date")},min:{default:null},max:{default:null},hideLabel:{type:Boolean}},{modelValue:{default:null},modelModifiers:{}}),emits:["update:modelValue"],setup(s){const t=j(s,"modelValue"),e=s,c=I(()=>t.value?l(t.value):""),m=I(()=>e.max?l(e.max):void 0),r=I(()=>e.min?l(e.min):void 0);function h(i){const a=i.getFullYear().toString().padStart(4,"0"),u=(i.getMonth()+1).toString().padStart(2,"0"),d=i.getDate().toString().padStart(2,"0"),p=i.getHours().toString().padStart(2,"0"),f=i.getMinutes().toString().padStart(2,"0");return{yyyy:a,MM:u,dd:d,hh:p,mm:f}}function l(i){const{yyyy:a,MM:u,dd:d,hh:p,mm:f}=h(i);if(e.type==="datetime-local")return`${a}-${u}-${d}T${p}:${f}`;if(e.type==="date")return`${a}-${u}-${d}`;if(e.type==="month")return`${a}-${u}`;if(e.type==="time")return`${p}:${f}`;if(e.type==="week"){const o=new Date(Number.parseInt(a),0,1),v=Math.floor((i.getTime()-o.getTime())/(1440*60*1e3)),_=Math.ceil(v/7);return`${a}-W${_}`}return""}function n(i){const a=i.target;if(!a||isNaN(a.valueAsNumber))t.value=null;else if(e.type==="time"){const u=a.value,{yyyy:d,MM:p,dd:f}=h(t.value||new Date);t.value=new Date(`${d}-${p}-${f}T${u}`)}else if(e.type==="month"){const u=(new Date(a.value).getMonth()+1).toString().padStart(2,"0"),{yyyy:d,dd:p,hh:f,mm:o}=h(t.value||new Date);t.value=new Date(`${d}-${u}-${p}T${f}:${o}`)}else{const u=new Date(a.valueAsNumber).getTimezoneOffset()*1e3*60,d=a.valueAsNumber+u;t.value=new Date(d)}}return(i,a)=>(b(),P("div",{class:w(["native-datetime-picker",i.$props.class])},[g("label",{class:w(["native-datetime-picker__label",{"hidden-visually":i.hideLabel}]),for:i.id},V(i.label),11,ee),g("input",k({id:i.id,class:["native-datetime-picker__input",i.inputClass],type:i.type,value:c.value,min:r.value,max:m.value},i.$attrs,{onInput:n}),null,16,te)],2))}}),ae=A(ie,[["__scopeId","data-v-b97e1f7a"]]);z(W);const ne={name:"NcActionInput",components:{NcDateTimePickerNative:ae,NcPasswordField:J,NcTextField:Q,NcColorPicker:N(()=>S(()=>import("./index-DZnagzmP.chunk.mjs").then(s=>s.i),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36]),import.meta.url)),NcDateTimePicker:N(()=>S(()=>import("./index-DZnagzmP.chunk.mjs").then(s=>s.c),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36]),import.meta.url)),NcSelect:N(()=>S(()=>import("./index-BZk0T9Q-.chunk.mjs").then(s=>s.i),__vite__mapDeps([24,1,2,3,5,14,7,8,4,6,9,10,11,15,25]),import.meta.url))},mixins:[G],inheritAttrs:!1,props:{id:{type:String,default:()=>"action-"+E(),validator:s=>s.trim()!==""},inputId:{type:String,default:()=>"action-input-"+E(),validator:s=>s.trim()!==""},icon:{type:String,default:""},type:{type:String,default:"text",validator(s){return["date","datetime-local","month","multiselect","number","password","search","tel","text","time","url","week","color","email"].includes(s)}},idNativeDateTimePicker:{type:String,default:"date-time-picker_id"},isNativePicker:{type:Boolean,default:!1},label:{type:String,default:null},labelOutside:{type:Boolean,default:!0},modelValue:{type:[String,Date,Number,Array],default:""},disabled:{type:Boolean,default:!1},ariaLabel:{type:String,default:""},showTrailingButton:{type:Boolean,default:!0},trailingButtonLabel:{type:String,default:F("Submit")},class:{type:[String,Array,Object],default:""}},emits:["submit","update:modelValue"],computed:{isIconUrl(){try{return new URL(this.icon)}catch{return!1}},isMultiselectType(){return this.type==="multiselect"},nativeDatePickerType(){switch(this.type){case"date":case"month":case"time":case"week":case"datetime-local":return this.type}return!1},datePickerType(){if(!this.isNativePicker)switch(this.type){case"date":case"month":case"time":return this.type;case"datetime-local":return"datetime"}return!1},isFocusable(){return!this.disabled}},methods:{onLeave(){this.$refs.datetimepicker&&this.$refs.datetimepicker.$refs.datepicker&&this.$refs.datetimepicker.$refs.datepicker.closePopup()},onSubmit(s){if(s.preventDefault(),s.stopPropagation(),!this.disabled)this.$emit("submit",s);else return!1},onUpdateModelValue(s){this.$emit("update:modelValue",s)}}},se={class:"action-input__icon-wrapper"},re=["disabled"],oe={class:"action-input__container"},le=["for"],ue={class:"action-input__input-container"},ce={key:4,class:"action-input__container"},de=["for"],pe={class:"action-input__input-container"};function he(s,t,e,c,m,r){const h=T("NcDateTimePicker"),l=T("NcDateTimePickerNative"),n=T("NcSelect"),i=T("NcPasswordField"),a=T("NcColorPicker"),u=T("NcTextField");return b(),P("li",{class:w(["action",[{"action--disabled":e.disabled},s.$props.class]])},[g("span",{class:w(["action-input",{"action-input-picker--disabled":e.disabled,"action-input--visible-label":e.labelOutside&&e.label}]),onMouseleave:t[3]||(t[3]=(...d)=>r.onLeave&&r.onLeave(...d))},[g("span",se,[Y(s.$slots,"icon",{},()=>[g("span",{"aria-hidden":"true",class:w(["action-input__icon",[r.isIconUrl?"action-input__icon--url":e.icon]]),style:C({backgroundImage:r.isIconUrl?`url(${e.icon})`:null})},null,6)],!0)]),g("form",{ref:"form",class:"action-input__form",disabled:e.disabled,onSubmit:t[2]||(t[2]=Z((...d)=>r.onSubmit&&r.onSubmit(...d),["prevent"]))},[g("div",oe,[e.label&&e.labelOutside&&!e.isNativePicker?(b(),P("label",{key:0,class:w(["action-input__text-label",{"action-input__text-label--hidden":!e.labelOutside}]),for:e.inputId},V(e.label),11,le)):M("",!0),g("div",ue,[r.datePickerType?(b(),x(h,k({key:0,ref:"datetimepicker","model-value":e.modelValue,style:{"z-index":"99999999999"},placeholder:s.text,disabled:e.disabled,type:r.datePickerType,"input-class":["mx-input",{focusable:r.isFocusable}],class:"action-input__datetimepicker","append-to-body":""},s.$attrs,{"onUpdate:modelValue":r.onUpdateModelValue}),null,16,["model-value","placeholder","disabled","type","input-class","onUpdate:modelValue"])):e.isNativePicker?(b(),x(l,k({key:1,id:e.idNativeDateTimePicker,"model-value":e.modelValue,label:e.label,type:r.nativeDatePickerType,"input-class":{focusable:r.isFocusable},class:"action-input__datetimepicker"},s.$attrs,{"onUpdate:modelValue":r.onUpdateModelValue}),null,16,["id","model-value","label","type","input-class","onUpdate:modelValue"])):r.isMultiselectType?(b(),x(n,k({key:2,"model-value":e.modelValue,placeholder:s.text,disabled:e.disabled,"append-to-body":!1,"input-class":{focusable:r.isFocusable},class:"action-input__multi"},s.$attrs,{"onUpdate:modelValue":r.onUpdateModelValue}),null,16,["model-value","placeholder","disabled","input-class","onUpdate:modelValue"])):e.type==="password"?(b(),x(i,k({key:3,id:e.inputId,"model-value":e.modelValue,label:e.label,"label-outside":!e.label||e.labelOutside,placeholder:s.text,disabled:e.disabled,"input-class":{focusable:r.isFocusable},"show-trailing-button":e.showTrailingButton&&!e.disabled},s.$attrs,{"onUpdate:modelValue":r.onUpdateModelValue}),null,16,["id","model-value","label","label-outside","placeholder","disabled","input-class","show-trailing-button","onUpdate:modelValue"])):e.type==="color"?(b(),P("div",ce,[e.label&&e.type==="color"?(b(),P("label",{key:0,class:w(["action-input__text-label",{"action-input__text-label--hidden":!e.labelOutside}]),for:e.inputId},V(e.label),11,de)):M("",!0),g("div",pe,[H(a,k({id:"inputId","model-value":e.modelValue,class:"colorpicker__trigger"},s.$attrs,{"onUpdate:modelValue":r.onUpdateModelValue,onSubmit:t[0]||(t[0]=d=>s.$refs.form.requestSubmit())}),{default:K(()=>[g("button",{class:w(["colorpicker__preview",{focusable:r.isFocusable}]),style:C({"background-color":e.modelValue})},null,6)]),_:1},16,["model-value","onUpdate:modelValue"])])])):(b(),x(u,k({key:5,id:e.inputId,"model-value":e.modelValue,label:e.label,"label-outside":!e.label||e.labelOutside,placeholder:s.text,disabled:e.disabled,"input-class":{focusable:r.isFocusable},type:e.type,"trailing-button-icon":"arrowRight","trailing-button-label":e.trailingButtonLabel,"show-trailing-button":e.showTrailingButton&&!e.disabled},s.$attrs,{onTrailingButtonClick:t[1]||(t[1]=d=>s.$refs.form.requestSubmit()),"onUpdate:modelValue":r.onUpdateModelValue}),null,16,["id","model-value","label","label-outside","placeholder","disabled","input-class","type","trailing-button-label","show-trailing-button","onUpdate:modelValue"]))])])],40,re)],34)],2)}const Se=A(ne,[["render",he],["__scopeId","data-v-67b3d681"]]);var D={exports:{}},O;function me(){return O||(O=1,(function(s){var t=Object.prototype.hasOwnProperty,e="~";function c(){}Object.create&&(c.prototype=Object.create(null),new c().__proto__||(e=!1));function m(n,i,a){this.fn=n,this.context=i,this.once=a||!1}function r(n,i,a,u,d){if(typeof a!="function")throw new TypeError("The listener must be a function");var p=new m(a,u||n,d),f=e?e+i:i;return n._events[f]?n._events[f].fn?n._events[f]=[n._events[f],p]:n._events[f].push(p):(n._events[f]=p,n._eventsCount++),n}function h(n,i){--n._eventsCount===0?n._events=new c:delete n._events[i]}function l(){this._events=new c,this._eventsCount=0}l.prototype.eventNames=function(){var n=[],i,a;if(this._eventsCount===0)return n;for(a in i=this._events)t.call(i,a)&&n.push(e?a.slice(1):a);return Object.getOwnPropertySymbols?n.concat(Object.getOwnPropertySymbols(i)):n},l.prototype.listeners=function(n){var i=e?e+n:n,a=this._events[i];if(!a)return[];if(a.fn)return[a.fn];for(var u=0,d=a.length,p=new Array(d);us.reason??new DOMException("This operation was aborted.","AbortError");function ve(s,t){const{milliseconds:e,fallback:c,message:m,customTimers:r={setTimeout,clearTimeout},signal:h}=t;let l,n;const i=new Promise((a,u)=>{if(typeof e!="number"||Math.sign(e)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${e}\``);if(h?.aborted){u(U(h));return}if(h&&(n=()=>{u(U(h))},h.addEventListener("abort",n,{once:!0})),s.then(a,u),e===Number.POSITIVE_INFINITY)return;const d=new L;l=r.setTimeout.call(void 0,()=>{if(c){try{a(c())}catch(p){u(p)}return}typeof s.cancel=="function"&&s.cancel(),m===!1?a():m instanceof Error?u(m):(d.message=m??`Promise timed out after ${e} milliseconds`,u(d))},e)}).finally(()=>{i.clear(),n&&h&&h.removeEventListener("abort",n)});return i.clear=()=>{r.clearTimeout.call(void 0,l),l=void 0},i}function be(s,t,e){let c=0,m=s.length;for(;m>0;){const r=Math.trunc(m/2);let h=c+r;e(s[h],t)<=0?(c=++h,m-=r+1):m=r}return c}class ge{#t=[];enqueue(t,e){const{priority:c=0,id:m}=e??{},r={priority:c,id:m,run:t};if(this.size===0||this.#t[this.size-1].priority>=c){this.#t.push(r);return}const h=be(this.#t,r,(l,n)=>n.priority-l.priority);this.#t.splice(h,0,r)}setPriority(t,e){const c=this.#t.findIndex(r=>r.id===t);if(c===-1)throw new ReferenceError(`No promise function with the id "${t}" exists in the queue.`);const[m]=this.#t.splice(c,1);this.enqueue(m.run,{priority:e,id:t})}dequeue(){return this.#t.shift()?.run}filter(t){return this.#t.filter(e=>e.priority===t.priority).map(e=>e.run)}get size(){return this.#t.length}}class Ie extends ye{#t;#a;#n=0;#h;#m=!1;#f=!1;#u;#g=0;#y=0;#s;#r;#e;#_;#i=0;#c;#o;#P=1n;#d=new Map;timeout;constructor(t){if(super(),t={carryoverIntervalCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:ge,...t},!(typeof t.intervalCap=="number"&&t.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${t.intervalCap?.toString()??""}\` (${typeof t.intervalCap})`);if(t.interval===void 0||!(Number.isFinite(t.interval)&&t.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${t.interval?.toString()??""}\` (${typeof t.interval})`);if(this.#t=t.carryoverIntervalCount??t.carryoverConcurrencyCount??!1,this.#a=t.intervalCap===Number.POSITIVE_INFINITY||t.interval===0,this.#h=t.intervalCap,this.#u=t.interval,this.#e=new t.queueClass,this.#_=t.queueClass,this.concurrency=t.concurrency,t.timeout!==void 0&&!(Number.isFinite(t.timeout)&&t.timeout>0))throw new TypeError(`Expected \`timeout\` to be a positive finite number, got \`${t.timeout}\` (${typeof t.timeout})`);this.timeout=t.timeout,this.#o=t.autoStart===!1,this.#C()}get#S(){return this.#a||this.#n0){const c=t-this.#y;if(c{this.#V()},t))}#k(){this.#s&&(clearInterval(this.#s),this.#s=void 0)}#L(){this.#r&&(clearTimeout(this.#r),this.#r=void 0)}#v(){if(this.#e.size===0)return this.#k(),this.emit("empty"),this.#i===0&&(this.#L(),this.emit("idle")),!1;let t=!1;if(!this.#o){const e=!this.#E;if(this.#S&&this.#I){const c=this.#e.dequeue();this.#a||(this.#n++,this.#p()),this.emit("active"),this.#y=Date.now(),c(),e&&this.#T(),t=!0}}return t}#T(){this.#a||this.#s!==void 0||(this.#s=setInterval(()=>{this.#$()},this.#u),this.#g=Date.now()+this.#u)}#$(){this.#n===0&&this.#i===0&&this.#s&&this.#k(),this.#n=this.#t?this.#i:0,this.#b(),this.#p()}#b(){for(;this.#v(););}get concurrency(){return this.#c}set concurrency(t){if(!(typeof t=="number"&&t>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${t}\` (${typeof t})`);this.#c=t,this.#b()}setPriority(t,e){if(typeof e!="number"||!Number.isFinite(e))throw new TypeError(`Expected \`priority\` to be a finite number, got \`${e}\` (${typeof e})`);this.#e.setPriority(t,e)}async add(t,e={}){return e.id??=(this.#P++).toString(),e={timeout:this.timeout,...e},new Promise((c,m)=>{const r=Symbol(`task-${e.id}`);this.#e.enqueue(async()=>{this.#i++,this.#d.set(r,{id:e.id,priority:e.priority??0,startTime:Date.now(),timeout:e.timeout});let h;try{try{e.signal?.throwIfAborted()}catch(i){throw this.#a||this.#n--,this.#d.delete(r),i}let l=t({signal:e.signal});if(e.timeout&&(l=ve(Promise.resolve(l),{milliseconds:e.timeout,message:`Task timed out after ${e.timeout}ms (queue has ${this.#i} running, ${this.#e.size} waiting)`})),e.signal){const{signal:i}=e;l=Promise.race([l,new Promise((a,u)=>{h=()=>{u(i.reason)},i.addEventListener("abort",h,{once:!0})})])}const n=await l;c(n),this.emit("completed",n)}catch(l){m(l),this.emit("error",l)}finally{h&&e.signal?.removeEventListener("abort",h),this.#d.delete(r),queueMicrotask(()=>{this.#N()})}},e),this.emit("add"),this.#v()})}async addAll(t,e){return Promise.all(t.map(async c=>this.add(c,e)))}start(){return this.#o?(this.#o=!1,this.#b(),this):this}pause(){this.#o=!0}clear(){this.#e=new this.#_,this.#x()}async onEmpty(){this.#e.size!==0&&await this.#l("empty")}async onSizeLessThan(t){this.#e.sizethis.#e.size{const c=m=>{this.off("error",c),e(m)};this.on("error",c)})}async#l(t,e){return new Promise(c=>{const m=()=>{e&&!e()||(this.off(t,m),c())};this.on(t,m)})}get size(){return this.#e.size}sizeBy(t){return this.#e.filter(t).length}get pending(){return this.#i}get isPaused(){return this.#o}#C(){this.#a||(this.on("add",()=>{this.#e.size>0&&this.#p()}),this.on("next",()=>{this.#p()}))}#p(){this.#a||this.#f||(this.#f=!0,queueMicrotask(()=>{this.#f=!1,this.#x()}))}#x(){const t=this.#m,e=!this.#a&&this.#n>=this.#h&&this.#e.size>0;e!==t&&(this.#m=e,this.emit(e?"rateLimit":"rateLimitCleared"))}get isRateLimited(){return this.#m}get isSaturated(){return this.#i===this.#c&&this.#e.size>0||this.isRateLimited&&this.#e.size>0}get runningTasks(){return[...this.#d.values()].map(t=>({...t}))}}export{ae as N,Ie as P,Se as a}; -//# sourceMappingURL=NcBreadcrumbs-DYfGaSjT-DHeGymVL.chunk.mjs.map diff --git a/dist/NcCheckboxRadioSwitch-BCSKF7Tk-B1Kcz6gU.chunk.mjs b/dist/NcCheckboxRadioSwitch-BCSKF7Tk-B1Kcz6gU.chunk.mjs new file mode 100644 index 0000000000000..560fcec2f434f --- /dev/null +++ b/dist/NcCheckboxRadioSwitch-BCSKF7Tk-B1Kcz6gU.chunk.mjs @@ -0,0 +1,2 @@ +import{Q as z,c as C,w as k,z as d,a4 as A,L as T,A as I,x as S,j as l,o as n,k as p,l as s,m,n as v,t as b,f as B,e as M,y as $,g as N,a3 as H}from"./runtime-dom.esm-bundler-DdtEg5E9.chunk.mjs";import{r as L,_ as u,n as E,b as O,c as x}from"./createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs";import{N as Z}from"./Web-aYJacExm.chunk.mjs";const q=Symbol.for("insideRadioGroup");function R(){return z(q,void 0)}const j={name:"CheckboxBlankOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},G=["aria-hidden","aria-label"],W=["fill","width","height"],P={d:"M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3M19,5V19H5V5H19Z"},U={key:0};function D(t,a,e,o,c,i){return n(),l("span",d(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon checkbox-blank-outline-icon",role:"img",onClick:a[0]||(a[0]=r=>t.$emit("click",r))}),[(n(),l("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[p("path",P,[e.title?(n(),l("title",U,b(e.title),1)):s("",!0)])],8,W))],16,G)}const Q=u(j,[["render",D]]),Y={name:"CheckboxMarkedIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},F=["aria-hidden","aria-label"],J=["fill","width","height"],K={d:"M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z"},X={key:0};function ee(t,a,e,o,c,i){return n(),l("span",d(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon checkbox-marked-icon",role:"img",onClick:a[0]||(a[0]=r=>t.$emit("click",r))}),[(n(),l("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[p("path",K,[e.title?(n(),l("title",X,b(e.title),1)):s("",!0)])],8,J))],16,F)}const te=u(Y,[["render",ee]]),ie={name:"MinusBoxIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ae=["aria-hidden","aria-label"],ne=["fill","width","height"],le={d:"M17,13H7V11H17M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z"},oe={key:0};function re(t,a,e,o,c,i){return n(),l("span",d(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon minus-box-icon",role:"img",onClick:a[0]||(a[0]=r=>t.$emit("click",r))}),[(n(),l("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[p("path",le,[e.title?(n(),l("title",oe,b(e.title),1)):s("",!0)])],8,ne))],16,ae)}const se=u(ie,[["render",re]]),ce={name:"RadioboxBlankIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},de=["aria-hidden","aria-label"],ue=["fill","width","height"],he={d:"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z"},pe={key:0};function be(t,a,e,o,c,i){return n(),l("span",d(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon radiobox-blank-icon",role:"img",onClick:a[0]||(a[0]=r=>t.$emit("click",r))}),[(n(),l("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[p("path",he,[e.title?(n(),l("title",pe,b(e.title),1)):s("",!0)])],8,ue))],16,de)}const ye=u(ce,[["render",be]]),ge={name:"RadioboxMarkedIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},me=["aria-hidden","aria-label"],fe=["fill","width","height"],ke={d:"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,7A5,5 0 0,0 7,12A5,5 0 0,0 12,17A5,5 0 0,0 17,12A5,5 0 0,0 12,7Z"},ve={key:0};function xe(t,a,e,o,c,i){return n(),l("span",d(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon radiobox-marked-icon",role:"img",onClick:a[0]||(a[0]=r=>t.$emit("click",r))}),[(n(),l("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[p("path",ke,[e.title?(n(),l("title",ve,b(e.title),1)):s("",!0)])],8,fe))],16,me)}const Ce=u(ge,[["render",xe]]),we={name:"ToggleSwitchIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ae=["aria-hidden","aria-label"],Se=["fill","width","height"],_e={d:"M17,7H7A5,5 0 0,0 2,12A5,5 0 0,0 7,17H17A5,5 0 0,0 22,12A5,5 0 0,0 17,7M17,15A3,3 0 0,1 14,12A3,3 0 0,1 17,9A3,3 0 0,1 20,12A3,3 0 0,1 17,15Z"},Ve={key:0};function Te(t,a,e,o,c,i){return n(),l("span",d(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon toggle-switch-icon",role:"img",onClick:a[0]||(a[0]=r=>t.$emit("click",r))}),[(n(),l("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[p("path",_e,[e.title?(n(),l("title",Ve,b(e.title),1)):s("",!0)])],8,Se))],16,Ae)}const Be=u(we,[["render",Te]]),ze={name:"ToggleSwitchOffIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ie=["aria-hidden","aria-label"],Me=["fill","width","height"],$e={d:"M17,7H7A5,5 0 0,0 2,12A5,5 0 0,0 7,17H17A5,5 0 0,0 22,12A5,5 0 0,0 17,7M7,15A3,3 0 0,1 4,12A3,3 0 0,1 7,9A3,3 0 0,1 10,12A3,3 0 0,1 7,15Z"},Ne={key:0};function He(t,a,e,o,c,i){return n(),l("span",d(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon toggle-switch-off-icon",role:"img",onClick:a[0]||(a[0]=r=>t.$emit("click",r))}),[(n(),l("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[p("path",$e,[e.title?(n(),l("title",Ne,b(e.title),1)):s("",!0)])],8,Me))],16,Ie)}const Le=u(ze,[["render",He]]),g="checkbox",y="radio",h="switch",f="button",Ee={name:"NcCheckboxContent",components:{NcLoadingIcon:Z},props:{iconClass:{type:[String,Object],default:null},textClass:{type:[String,Object],default:null},type:{type:String,default:"checkbox",validator:t=>[g,y,h,f].includes(t)},buttonVariant:{type:Boolean,default:!1},isChecked:{type:Boolean,default:!1},indeterminate:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},iconSize:{type:Number,default:24},labelId:{type:String,required:!0},descriptionId:{type:String,required:!0}},computed:{isButtonType(){return this.type===f},checkboxRadioIconElement(){return this.type===y?this.isChecked?Ce:ye:this.type===h?this.isChecked?Be:Le:this.indeterminate?se:this.isChecked?te:Q}}},Oe={key:0,class:"checkbox-content__wrapper"},Ze=["id"],qe=["id"];function Re(t,a,e,o,c,i){const r=B("NcLoadingIcon");return n(),l("span",{class:v(["checkbox-content",{["checkbox-content-"+e.type]:!0,"checkbox-content--button-variant":e.buttonVariant,"checkbox-content--has-text":!!t.$slots.default}])},[p("span",{class:v(["checkbox-content__icon",{"checkbox-content__icon--checked":e.isChecked,"checkbox-content__icon--has-description":!i.isButtonType&&t.$slots.description,[e.iconClass]:!0}]),"aria-hidden":!0,inert:""},[m(t.$slots,"icon",{checked:e.isChecked,loading:e.loading},()=>[e.loading?(n(),C(r,{key:0})):e.buttonVariant?s("",!0):(n(),C(T(i.checkboxRadioIconElement),{key:1,size:e.iconSize},null,8,["size"]))],!0)],2),t.$slots.default||t.$slots.description?(n(),l("span",Oe,[t.$slots.default?(n(),l("span",{key:0,id:e.labelId,class:v(["checkbox-content__text",e.textClass])},[m(t.$slots,"default",{},void 0,!0)],10,Ze)):s("",!0),!i.isButtonType&&t.$slots.description?(n(),l("span",{key:1,id:e.descriptionId,class:"checkbox-content__description"},[m(t.$slots,"description",{},void 0,!0)],8,qe)):s("",!0)])):s("",!0)],2)}const je=u(Ee,[["render",Re],["__scopeId","data-v-a1ac280f"]]);L();const w={name:"NcCheckboxRadioSwitch",components:{NcCheckboxContent:je},inheritAttrs:!1,props:{id:{type:String,default:()=>"checkbox-radio-switch-"+x(),validator:t=>t.trim()!==""},wrapperId:{type:String,default:null},name:{type:String,default:null},ariaLabel:{type:String,default:""},type:{type:String,default:"checkbox",validator:t=>[g,y,h,f].includes(t)},buttonVariant:{type:Boolean,default:!1},buttonVariantGrouped:{type:String,default:"no",validator:t=>["no","vertical","horizontal"].includes(t)},modelValue:{type:[Boolean,Array,String],default:!1},value:{type:String,default:null},disabled:{type:Boolean,default:!1},indeterminate:{type:Boolean,default:!1},required:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},wrapperElement:{type:String,default:null},class:{type:[String,Array,Object],default:""},style:{type:[String,Array,Object],default:""},description:{type:String,default:null}},emits:["update:modelValue"],setup(t,{emit:a}){const e=R();I(()=>e?.value.register(!1));const o=S(()=>e?.value?y:t.type),c=S({get(){return e?.value?e.value.modelValue:t.modelValue},set(i){e?.value?e.value.onUpdate(i):a("update:modelValue",i)}});return{internalType:o,internalModelValue:c,labelId:x(),descriptionId:x()}},computed:{isButtonType(){return this.internalType===f},computedWrapperElement(){return this.isButtonType?"button":this.wrapperElement!==null?this.wrapperElement:"span"},listeners(){return this.isButtonType?{click:this.onToggle}:{change:this.onToggle}},iconSize(){return this.internalType===h?36:20},cssIconSize(){return this.iconSize+"px"},cssIconHeight(){return this.internalType===h?"16px":this.cssIconSize},inputType(){return[g,y,f].includes(this.internalType)?this.internalType:g},isChecked(){return this.value!==null?Array.isArray(this.internalModelValue)?[...this.internalModelValue].indexOf(this.value)>-1:this.internalModelValue===this.value:this.internalModelValue===!0},hasIndeterminate(){return[g,y].includes(this.inputType)}},mounted(){if(this.name&&this.internalType===g&&!Array.isArray(this.internalModelValue))throw new Error("When using groups of checkboxes, the updated value will be an array.");if(this.name&&this.internalType===h)throw new Error("Switches are not made to be used for data sets. Please use checkboxes instead.");if(typeof this.internalModelValue!="boolean"&&this.internalType===h)throw new Error("Switches can only be used with boolean as modelValue prop.")},methods:{t:O,n:E,onToggle(t){if(this.disabled||t.target.tagName.toLowerCase()==="a")return;if(this.internalType===y){this.internalModelValue=this.value;return}if(this.internalType===h){this.internalModelValue=!this.isChecked;return}if(typeof this.internalModelValue=="boolean"){this.internalModelValue=!this.internalModelValue;return}const a=this.getInputsSet().filter(e=>e.checked).map(e=>e.value);a.includes(this.value)?this.internalModelValue=a.filter(e=>e!==this.value):this.internalModelValue=[...a,this.value]},getInputsSet(){return[...document.getElementsByName(this.name)]}}},_=()=>{H(t=>({"65a7082e":t.cssIconSize,"20f7d30f":t.cssIconHeight}))},V=w.setup;w.setup=V?(t,a)=>(_(),V(t,a)):_;const Ge=["id","aria-labelledby","aria-describedby","aria-label","disabled","type","value","checked",".indeterminate","required","name"];function We(t,a,e,o,c,i){const r=B("NcCheckboxContent");return n(),C(T(i.computedWrapperElement),d({id:e.wrapperId??(i.isButtonType?e.id:null),"aria-label":i.isButtonType&&e.ariaLabel?e.ariaLabel:void 0,class:["checkbox-radio-switch",[t.$props.class,{["checkbox-radio-switch-"+o.internalType]:o.internalType,"checkbox-radio-switch--checked":i.isChecked,"checkbox-radio-switch--disabled":e.disabled,"checkbox-radio-switch--indeterminate":i.hasIndeterminate?e.indeterminate:!1,"checkbox-radio-switch--button-variant":e.buttonVariant,"checkbox-radio-switch--button-variant-v-grouped":e.buttonVariant&&e.buttonVariantGrouped==="vertical","checkbox-radio-switch--button-variant-h-grouped":e.buttonVariant&&e.buttonVariantGrouped==="horizontal","button-vue":i.isButtonType}]],style:e.style,type:i.isButtonType?"button":null},i.isButtonType?t.$attrs:{},A(i.isButtonType?i.listeners:{})),{default:k(()=>[i.isButtonType?s("",!0):(n(),l("input",d({key:0,id:e.id,"aria-labelledby":!i.isButtonType&&!e.ariaLabel?o.labelId:null,"aria-describedby":!i.isButtonType&&(e.description||t.$slots.description)?o.descriptionId:null,"aria-label":e.ariaLabel||void 0,class:"checkbox-radio-switch__input",disabled:e.disabled,type:i.inputType,value:e.value,checked:i.isChecked,".indeterminate":i.hasIndeterminate?e.indeterminate:null,required:e.required,name:e.name},t.$attrs,A(i.listeners,!0)),null,48,Ge)),M(r,{id:i.isButtonType?void 0:`${e.id}-label`,class:"checkbox-radio-switch__content","icon-class":"checkbox-radio-switch__icon","text-class":"checkbox-radio-switch__text",type:o.internalType,indeterminate:i.hasIndeterminate?e.indeterminate:!1,"button-variant":e.buttonVariant,"is-checked":i.isChecked,loading:e.loading,"label-id":o.labelId,"description-id":o.descriptionId,"icon-size":i.iconSize,onClick:i.onToggle},$({icon:k(()=>[m(t.$slots,"icon",{},void 0,!0)]),_:2},[t.$slots.description||e.description?{name:"description",fn:k(()=>[m(t.$slots,"description",{},()=>[N(b(e.description),1)],!0)]),key:"0"}:void 0,t.$slots.default?{name:"default",fn:k(()=>[m(t.$slots,"default",{},void 0,!0)]),key:"1"}:void 0]),1032,["id","type","indeterminate","button-variant","is-checked","loading","label-id","description-id","icon-size","onClick"])]),_:3},16,["id","aria-label","class","style","type"])}const Qe=u(w,[["render",We],["__scopeId","data-v-0dcb138a"]]);export{Qe as N}; +//# sourceMappingURL=NcCheckboxRadioSwitch-BCSKF7Tk-B1Kcz6gU.chunk.mjs.map diff --git a/dist/NcCheckboxRadioSwitch-BCSKF7Tk-yPckcGKs.chunk.mjs.license b/dist/NcCheckboxRadioSwitch-BCSKF7Tk-B1Kcz6gU.chunk.mjs.license similarity index 100% rename from dist/NcCheckboxRadioSwitch-BCSKF7Tk-yPckcGKs.chunk.mjs.license rename to dist/NcCheckboxRadioSwitch-BCSKF7Tk-B1Kcz6gU.chunk.mjs.license diff --git a/dist/NcCheckboxRadioSwitch-BCSKF7Tk-yPckcGKs.chunk.mjs.map b/dist/NcCheckboxRadioSwitch-BCSKF7Tk-B1Kcz6gU.chunk.mjs.map similarity index 99% rename from dist/NcCheckboxRadioSwitch-BCSKF7Tk-yPckcGKs.chunk.mjs.map rename to dist/NcCheckboxRadioSwitch-BCSKF7Tk-B1Kcz6gU.chunk.mjs.map index 3fef3059bb557..2badfbfbdd11c 100644 --- a/dist/NcCheckboxRadioSwitch-BCSKF7Tk-yPckcGKs.chunk.mjs.map +++ b/dist/NcCheckboxRadioSwitch-BCSKF7Tk-B1Kcz6gU.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"NcCheckboxRadioSwitch-BCSKF7Tk-yPckcGKs.chunk.mjs","sources":["../node_modules/@nextcloud/vue/dist/chunks/useNcRadioGroup-DaZbEKbf.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcCheckboxRadioSwitch-BCSKF7Tk.mjs"],"sourcesContent":["import { inject } from \"vue\";\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst INSIDE_RADIO_GROUP_KEY = Symbol.for(\"insideRadioGroup\");\nfunction useInsideRadioGroup() {\n return inject(INSIDE_RADIO_GROUP_KEY, void 0);\n}\nexport {\n INSIDE_RADIO_GROUP_KEY as I,\n useInsideRadioGroup as u\n};\n//# sourceMappingURL=useNcRadioGroup-DaZbEKbf.mjs.map\n","import '../assets/NcCheckboxRadioSwitch-C_70VMQr.css';\nimport { createElementBlock, openBlock, mergeProps, createElementVNode, createCommentVNode, toDisplayString, resolveComponent, normalizeClass, renderSlot, createBlock, resolveDynamicComponent, toHandlers, withCtx, createVNode, createSlots, createTextVNode, onMounted, computed, useCssVars } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { N as NcLoadingIcon } from \"./NcLoadingIcon-b_ajZ_nQ.mjs\";\nimport { r as register, q as n, a as t } from \"./_l10n-DrTiip5c.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { u as useInsideRadioGroup } from \"./useNcRadioGroup-DaZbEKbf.mjs\";\nconst _sfc_main$8 = {\n name: \"CheckboxBlankOutlineIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$8 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$7 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$7 = { d: \"M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3M19,5V19H5V5H19Z\" };\nconst _hoisted_4$6 = { key: 0 };\nfunction _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon checkbox-blank-outline-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$7, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$6, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$7))\n ], 16, _hoisted_1$8);\n}\nconst CheckboxBlankOutline = /* @__PURE__ */ _export_sfc(_sfc_main$8, [[\"render\", _sfc_render$8]]);\nconst _sfc_main$7 = {\n name: \"CheckboxMarkedIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$7 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$6 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$6 = { d: \"M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z\" };\nconst _hoisted_4$5 = { key: 0 };\nfunction _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon checkbox-marked-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$6, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$5, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$6))\n ], 16, _hoisted_1$7);\n}\nconst CheckboxMarked = /* @__PURE__ */ _export_sfc(_sfc_main$7, [[\"render\", _sfc_render$7]]);\nconst _sfc_main$6 = {\n name: \"MinusBoxIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$6 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$5 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$5 = { d: \"M17,13H7V11H17M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z\" };\nconst _hoisted_4$4 = { key: 0 };\nfunction _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon minus-box-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$5, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$5))\n ], 16, _hoisted_1$6);\n}\nconst MinusBox = /* @__PURE__ */ _export_sfc(_sfc_main$6, [[\"render\", _sfc_render$6]]);\nconst _sfc_main$5 = {\n name: \"RadioboxBlankIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$5 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$4 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$4 = { d: \"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\" };\nconst _hoisted_4$3 = { key: 0 };\nfunction _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon radiobox-blank-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$4, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$3, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$4))\n ], 16, _hoisted_1$5);\n}\nconst RadioboxBlank = /* @__PURE__ */ _export_sfc(_sfc_main$5, [[\"render\", _sfc_render$5]]);\nconst _sfc_main$4 = {\n name: \"RadioboxMarkedIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$4 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$3 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$3 = { d: \"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,7A5,5 0 0,0 7,12A5,5 0 0,0 12,17A5,5 0 0,0 17,12A5,5 0 0,0 12,7Z\" };\nconst _hoisted_4$2 = { key: 0 };\nfunction _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon radiobox-marked-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$3, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$2, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$3))\n ], 16, _hoisted_1$4);\n}\nconst RadioboxMarked = /* @__PURE__ */ _export_sfc(_sfc_main$4, [[\"render\", _sfc_render$4]]);\nconst _sfc_main$3 = {\n name: \"ToggleSwitchIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$3 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$2 = { d: \"M17,7H7A5,5 0 0,0 2,12A5,5 0 0,0 7,17H17A5,5 0 0,0 22,12A5,5 0 0,0 17,7M17,15A3,3 0 0,1 14,12A3,3 0 0,1 17,9A3,3 0 0,1 20,12A3,3 0 0,1 17,15Z\" };\nconst _hoisted_4$1 = { key: 0 };\nfunction _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon toggle-switch-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$2, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$1, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$2))\n ], 16, _hoisted_1$3);\n}\nconst ToggleSwitch = /* @__PURE__ */ _export_sfc(_sfc_main$3, [[\"render\", _sfc_render$3]]);\nconst _sfc_main$2 = {\n name: \"ToggleSwitchOffIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$2 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$1 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$1 = { d: \"M17,7H7A5,5 0 0,0 2,12A5,5 0 0,0 7,17H17A5,5 0 0,0 22,12A5,5 0 0,0 17,7M7,15A3,3 0 0,1 4,12A3,3 0 0,1 7,9A3,3 0 0,1 10,12A3,3 0 0,1 7,15Z\" };\nconst _hoisted_4 = { key: 0 };\nfunction _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon toggle-switch-off-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$1, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$1))\n ], 16, _hoisted_1$2);\n}\nconst ToggleSwitchOff = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"render\", _sfc_render$2]]);\nconst TYPE_CHECKBOX = \"checkbox\";\nconst TYPE_RADIO = \"radio\";\nconst TYPE_SWITCH = \"switch\";\nconst TYPE_BUTTON = \"button\";\nconst _sfc_main$1 = {\n name: \"NcCheckboxContent\",\n components: {\n NcLoadingIcon\n },\n props: {\n /**\n * Class for the icon element\n */\n iconClass: {\n type: [String, Object],\n default: null\n },\n /**\n * Class for the text element\n */\n textClass: {\n type: [String, Object],\n default: null\n },\n /**\n * Type of the input. checkbox, radio, switch, or button.\n *\n * Only use button when used in a `tablist` container and the\n * `tab` role is set.\n *\n * @type {'checkbox'|'radio'|'switch'|'button'}\n */\n type: {\n type: String,\n default: \"checkbox\",\n validator: (type) => [\n TYPE_CHECKBOX,\n TYPE_RADIO,\n TYPE_SWITCH,\n TYPE_BUTTON\n ].includes(type)\n },\n /**\n * Toggle the alternative button style\n */\n buttonVariant: {\n type: Boolean,\n default: false\n },\n /**\n * True if the entry is checked\n */\n isChecked: {\n type: Boolean,\n default: false\n },\n /**\n * Indeterminate state\n */\n indeterminate: {\n type: Boolean,\n default: false\n },\n /**\n * Loading state\n */\n loading: {\n type: Boolean,\n default: false\n },\n /**\n * Icon size\n */\n iconSize: {\n type: Number,\n default: 24\n },\n /**\n * Label id attribute\n */\n labelId: {\n type: String,\n required: true\n },\n /**\n * Description id attribute\n */\n descriptionId: {\n type: String,\n required: true\n }\n },\n computed: {\n isButtonType() {\n return this.type === TYPE_BUTTON;\n },\n /**\n * Returns the proper Material icon depending on the select case\n *\n * @return {object}\n */\n checkboxRadioIconElement() {\n if (this.type === TYPE_RADIO) {\n if (this.isChecked) {\n return RadioboxMarked;\n }\n return RadioboxBlank;\n }\n if (this.type === TYPE_SWITCH) {\n if (this.isChecked) {\n return ToggleSwitch;\n }\n return ToggleSwitchOff;\n }\n if (this.indeterminate) {\n return MinusBox;\n }\n if (this.isChecked) {\n return CheckboxMarked;\n }\n return CheckboxBlankOutline;\n }\n }\n};\nconst _hoisted_1$1 = {\n key: 0,\n class: \"checkbox-content__wrapper\"\n};\nconst _hoisted_2 = [\"id\"];\nconst _hoisted_3 = [\"id\"];\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcLoadingIcon = resolveComponent(\"NcLoadingIcon\");\n return openBlock(), createElementBlock(\"span\", {\n class: normalizeClass([\"checkbox-content\", {\n [\"checkbox-content-\" + $props.type]: true,\n \"checkbox-content--button-variant\": $props.buttonVariant,\n \"checkbox-content--has-text\": !!_ctx.$slots.default\n }])\n }, [\n createElementVNode(\"span\", {\n class: normalizeClass([\"checkbox-content__icon\", {\n \"checkbox-content__icon--checked\": $props.isChecked,\n \"checkbox-content__icon--has-description\": !$options.isButtonType && _ctx.$slots.description,\n [$props.iconClass]: true\n }]),\n \"aria-hidden\": true,\n inert: \"\"\n }, [\n renderSlot(_ctx.$slots, \"icon\", {\n checked: $props.isChecked,\n loading: $props.loading\n }, () => [\n $props.loading ? (openBlock(), createBlock(_component_NcLoadingIcon, { key: 0 })) : !$props.buttonVariant ? (openBlock(), createBlock(resolveDynamicComponent($options.checkboxRadioIconElement), {\n key: 1,\n size: $props.iconSize\n }, null, 8, [\"size\"])) : createCommentVNode(\"\", true)\n ], true)\n ], 2),\n _ctx.$slots.default || _ctx.$slots.description ? (openBlock(), createElementBlock(\"span\", _hoisted_1$1, [\n _ctx.$slots.default ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n id: $props.labelId,\n class: normalizeClass([\"checkbox-content__text\", $props.textClass])\n }, [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ], 10, _hoisted_2)) : createCommentVNode(\"\", true),\n !$options.isButtonType && _ctx.$slots.description ? (openBlock(), createElementBlock(\"span\", {\n key: 1,\n id: $props.descriptionId,\n class: \"checkbox-content__description\"\n }, [\n renderSlot(_ctx.$slots, \"description\", {}, void 0, true)\n ], 8, _hoisted_3)) : createCommentVNode(\"\", true)\n ])) : createCommentVNode(\"\", true)\n ], 2);\n}\nconst NcCheckboxContent = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1], [\"__scopeId\", \"data-v-a1ac280f\"]]);\nregister();\nconst _sfc_main = {\n name: \"NcCheckboxRadioSwitch\",\n components: {\n NcCheckboxContent\n },\n // We need to pass attributes to the input element\n inheritAttrs: false,\n props: {\n /**\n * Unique id attribute of the input\n */\n id: {\n type: String,\n default: () => \"checkbox-radio-switch-\" + createElementId(),\n validator: (id) => id.trim() !== \"\"\n },\n /**\n * Unique id attribute of the wrapper element\n */\n wrapperId: {\n type: String,\n default: null\n },\n /**\n * Input name. Required for radio, optional for checkbox, and ignored\n * for button.\n */\n name: {\n type: String,\n default: null\n },\n /**\n * Required if no text is set.\n * The aria-label is forwarded to the input or button.\n */\n ariaLabel: {\n type: String,\n default: \"\"\n },\n /**\n * Type of the input. checkbox, radio, switch, or button.\n *\n * Only use button when used in a `tablist` container and the\n * `tab` role is set.\n *\n * @type {'checkbox'|'radio'|'switch'|'button'}\n */\n type: {\n type: String,\n default: \"checkbox\",\n validator: (type) => [\n TYPE_CHECKBOX,\n TYPE_RADIO,\n TYPE_SWITCH,\n TYPE_BUTTON\n ].includes(type)\n },\n /**\n * Toggle the alternative button style\n *\n * @deprecated - Use `NcRadioGroup` instead\n */\n buttonVariant: {\n type: Boolean,\n default: false\n },\n /**\n * Are the elements are all direct siblings?\n * If so they will be grouped horizontally or vertically\n *\n * @type {'no'|'horizontal'|'vertical'}\n * @deprecated - Use `NcRadioGroup` instead\n */\n buttonVariantGrouped: {\n type: String,\n default: \"no\",\n validator: (v) => [\"no\", \"vertical\", \"horizontal\"].includes(v)\n },\n /**\n * Checked state. To be used with `v-model:value`\n */\n modelValue: {\n type: [Boolean, Array, String],\n default: false\n },\n /**\n * Value to be synced on check\n */\n value: {\n type: String,\n default: null\n },\n /**\n * Disabled state\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * Indeterminate state\n */\n indeterminate: {\n type: Boolean,\n default: false\n },\n /**\n * Required state\n */\n required: {\n type: Boolean,\n default: false\n },\n /**\n * Loading state\n */\n loading: {\n type: Boolean,\n default: false\n },\n /**\n * Wrapping element tag\n *\n * When `type` is set to `button` this will be ignored\n *\n * Defaults to `span`\n */\n wrapperElement: {\n type: String,\n default: null\n },\n /**\n * The class(es) to pass to the wrapper / root element of the component\n */\n class: {\n type: [String, Array, Object],\n default: \"\"\n },\n /**\n * The style to pass to the wrapper / root element of the component\n */\n style: {\n type: [String, Array, Object],\n default: \"\"\n },\n /**\n * Description\n *\n * This is unsupported when using button has type.\n */\n description: {\n type: String,\n default: null\n }\n },\n emits: [\"update:modelValue\"],\n setup(props, { emit }) {\n const radioGroup = useInsideRadioGroup();\n onMounted(() => radioGroup?.value.register(false));\n const internalType = computed(() => radioGroup?.value ? TYPE_RADIO : props.type);\n const internalModelValue = computed({\n get() {\n if (radioGroup?.value) {\n return radioGroup.value.modelValue;\n }\n return props.modelValue;\n },\n set(value) {\n if (radioGroup?.value) {\n radioGroup.value.onUpdate(value);\n } else {\n emit(\"update:modelValue\", value);\n }\n }\n });\n return {\n internalType,\n internalModelValue,\n labelId: createElementId(),\n descriptionId: createElementId()\n };\n },\n computed: {\n isButtonType() {\n return this.internalType === TYPE_BUTTON;\n },\n computedWrapperElement() {\n if (this.isButtonType) {\n return \"button\";\n }\n if (this.wrapperElement !== null) {\n return this.wrapperElement;\n }\n return \"span\";\n },\n listeners() {\n if (this.isButtonType) {\n return {\n click: this.onToggle\n };\n }\n return {\n change: this.onToggle\n };\n },\n iconSize() {\n return this.internalType === TYPE_SWITCH ? 36 : 20;\n },\n cssIconSize() {\n return this.iconSize + \"px\";\n },\n cssIconHeight() {\n return this.internalType === TYPE_SWITCH ? \"16px\" : this.cssIconSize;\n },\n /**\n * Return the input type.\n * Switch is not an official type\n *\n * @return {string}\n */\n inputType() {\n const nativeTypes = [\n TYPE_CHECKBOX,\n TYPE_RADIO,\n TYPE_BUTTON\n ];\n if (nativeTypes.includes(this.internalType)) {\n return this.internalType;\n }\n return TYPE_CHECKBOX;\n },\n /**\n * Check if that entry is checked\n * If value is defined, we use that as the checked value\n * If not, we expect true/false in this.checked\n *\n * @return {boolean}\n */\n isChecked() {\n if (this.value !== null) {\n if (Array.isArray(this.internalModelValue)) {\n return [...this.internalModelValue].indexOf(this.value) > -1;\n }\n return this.internalModelValue === this.value;\n }\n return this.internalModelValue === true;\n },\n hasIndeterminate() {\n return [\n TYPE_CHECKBOX,\n TYPE_RADIO\n ].includes(this.inputType);\n }\n },\n mounted() {\n if (this.name && this.internalType === TYPE_CHECKBOX) {\n if (!Array.isArray(this.internalModelValue)) {\n throw new Error(\"When using groups of checkboxes, the updated value will be an array.\");\n }\n }\n if (this.name && this.internalType === TYPE_SWITCH) {\n throw new Error(\"Switches are not made to be used for data sets. Please use checkboxes instead.\");\n }\n if (typeof this.internalModelValue !== \"boolean\" && this.internalType === TYPE_SWITCH) {\n throw new Error(\"Switches can only be used with boolean as modelValue prop.\");\n }\n },\n methods: {\n t,\n n,\n onToggle(event) {\n if (this.disabled || event.target.tagName.toLowerCase() === \"a\") {\n return;\n }\n if (this.internalType === TYPE_RADIO) {\n this.internalModelValue = this.value;\n return;\n }\n if (this.internalType === TYPE_SWITCH) {\n this.internalModelValue = !this.isChecked;\n return;\n }\n if (typeof this.internalModelValue === \"boolean\") {\n this.internalModelValue = !this.internalModelValue;\n return;\n }\n const values = this.getInputsSet().filter((input) => input.checked).map((input) => input.value);\n if (values.includes(this.value)) {\n this.internalModelValue = values.filter((v) => v !== this.value);\n } else {\n this.internalModelValue = [...values, this.value];\n }\n },\n /**\n * Get the input set based on this name\n *\n * @return {Node[]}\n */\n getInputsSet() {\n return [...document.getElementsByName(this.name)];\n }\n }\n};\nconst __injectCSSVars__ = () => {\n useCssVars((_ctx) => ({\n \"65a7082e\": _ctx.cssIconSize,\n \"20f7d30f\": _ctx.cssIconHeight\n }));\n};\nconst __setup__ = _sfc_main.setup;\n_sfc_main.setup = __setup__ ? (props, ctx) => {\n __injectCSSVars__();\n return __setup__(props, ctx);\n} : __injectCSSVars__;\nconst _hoisted_1 = [\"id\", \"aria-labelledby\", \"aria-describedby\", \"aria-label\", \"disabled\", \"type\", \"value\", \"checked\", \".indeterminate\", \"required\", \"name\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcCheckboxContent = resolveComponent(\"NcCheckboxContent\");\n return openBlock(), createBlock(resolveDynamicComponent($options.computedWrapperElement), mergeProps({\n id: $props.wrapperId ?? ($options.isButtonType ? $props.id : null),\n \"aria-label\": $options.isButtonType && $props.ariaLabel ? $props.ariaLabel : void 0,\n class: [\"checkbox-radio-switch\", [\n _ctx.$props.class,\n {\n [\"checkbox-radio-switch-\" + $setup.internalType]: $setup.internalType,\n \"checkbox-radio-switch--checked\": $options.isChecked,\n \"checkbox-radio-switch--disabled\": $props.disabled,\n \"checkbox-radio-switch--indeterminate\": $options.hasIndeterminate ? $props.indeterminate : false,\n \"checkbox-radio-switch--button-variant\": $props.buttonVariant,\n \"checkbox-radio-switch--button-variant-v-grouped\": $props.buttonVariant && $props.buttonVariantGrouped === \"vertical\",\n \"checkbox-radio-switch--button-variant-h-grouped\": $props.buttonVariant && $props.buttonVariantGrouped === \"horizontal\",\n \"button-vue\": $options.isButtonType\n }\n ]],\n style: $props.style,\n type: $options.isButtonType ? \"button\" : null\n }, $options.isButtonType ? _ctx.$attrs : {}, toHandlers($options.isButtonType ? $options.listeners : {})), {\n default: withCtx(() => [\n !$options.isButtonType ? (openBlock(), createElementBlock(\"input\", mergeProps({\n key: 0,\n id: $props.id,\n \"aria-labelledby\": !$options.isButtonType && !$props.ariaLabel ? $setup.labelId : null,\n \"aria-describedby\": !$options.isButtonType && ($props.description || _ctx.$slots.description) ? $setup.descriptionId : null,\n \"aria-label\": $props.ariaLabel || void 0,\n class: \"checkbox-radio-switch__input\",\n disabled: $props.disabled,\n type: $options.inputType,\n value: $props.value,\n checked: $options.isChecked,\n \".indeterminate\": $options.hasIndeterminate ? $props.indeterminate : null,\n required: $props.required,\n name: $props.name\n }, _ctx.$attrs, toHandlers($options.listeners, true)), null, 48, _hoisted_1)) : createCommentVNode(\"\", true),\n createVNode(_component_NcCheckboxContent, {\n id: !$options.isButtonType ? `${$props.id}-label` : void 0,\n class: \"checkbox-radio-switch__content\",\n \"icon-class\": \"checkbox-radio-switch__icon\",\n \"text-class\": \"checkbox-radio-switch__text\",\n type: $setup.internalType,\n indeterminate: $options.hasIndeterminate ? $props.indeterminate : false,\n \"button-variant\": $props.buttonVariant,\n \"is-checked\": $options.isChecked,\n loading: $props.loading,\n \"label-id\": $setup.labelId,\n \"description-id\": $setup.descriptionId,\n \"icon-size\": $options.iconSize,\n onClick: $options.onToggle\n }, createSlots({\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"icon\", {}, void 0, true)\n ]),\n _: 2\n }, [\n _ctx.$slots.description || $props.description ? {\n name: \"description\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"description\", {}, () => [\n createTextVNode(toDisplayString($props.description), 1)\n ], true)\n ]),\n key: \"0\"\n } : void 0,\n !!_ctx.$slots.default ? {\n name: \"default\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ]),\n key: \"1\"\n } : void 0\n ]), 1032, [\"id\", \"type\", \"indeterminate\", \"button-variant\", \"is-checked\", \"loading\", \"label-id\", \"description-id\", \"icon-size\", \"onClick\"])\n ]),\n _: 3\n }, 16, [\"id\", \"aria-label\", \"class\", \"style\", \"type\"]);\n}\nconst NcCheckboxRadioSwitch = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-0dcb138a\"]]);\nexport {\n NcCheckboxRadioSwitch as N\n};\n//# sourceMappingURL=NcCheckboxRadioSwitch-BCSKF7Tk.mjs.map\n"],"names":["INSIDE_RADIO_GROUP_KEY","useInsideRadioGroup","inject","_sfc_main$8","_hoisted_1$8","_hoisted_2$7","_hoisted_3$7","_hoisted_4$6","_sfc_render$8","_ctx","_cache","$props","$setup","$data","$options","openBlock","createElementBlock","mergeProps","$event","createElementVNode","toDisplayString","createCommentVNode","CheckboxBlankOutline","_export_sfc","_sfc_main$7","_hoisted_1$7","_hoisted_2$6","_hoisted_3$6","_hoisted_4$5","_sfc_render$7","CheckboxMarked","_sfc_main$6","_hoisted_1$6","_hoisted_2$5","_hoisted_3$5","_hoisted_4$4","_sfc_render$6","MinusBox","_sfc_main$5","_hoisted_1$5","_hoisted_2$4","_hoisted_3$4","_hoisted_4$3","_sfc_render$5","RadioboxBlank","_sfc_main$4","_hoisted_1$4","_hoisted_2$3","_hoisted_3$3","_hoisted_4$2","_sfc_render$4","RadioboxMarked","_sfc_main$3","_hoisted_1$3","_hoisted_2$2","_hoisted_3$2","_hoisted_4$1","_sfc_render$3","ToggleSwitch","_sfc_main$2","_hoisted_1$2","_hoisted_2$1","_hoisted_3$1","_hoisted_4","_sfc_render$2","ToggleSwitchOff","TYPE_CHECKBOX","TYPE_RADIO","TYPE_SWITCH","TYPE_BUTTON","_sfc_main$1","NcLoadingIcon","type","_hoisted_1$1","_hoisted_2","_hoisted_3","_sfc_render$1","_component_NcLoadingIcon","resolveComponent","normalizeClass","renderSlot","createBlock","resolveDynamicComponent","NcCheckboxContent","register","_sfc_main","createElementId","id","v","props","emit","radioGroup","onMounted","internalType","computed","internalModelValue","value","t","n","event","values","input","__injectCSSVars__","useCssVars","__setup__","ctx","_hoisted_1","_sfc_render","_component_NcCheckboxContent","toHandlers","withCtx","createVNode","createSlots","createTextVNode","NcCheckboxRadioSwitch"],"mappings":"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","x_google_ignoreList":[0,1]} \ No newline at end of file +{"version":3,"file":"NcCheckboxRadioSwitch-BCSKF7Tk-B1Kcz6gU.chunk.mjs","sources":["../node_modules/@nextcloud/vue/dist/chunks/useNcRadioGroup-DaZbEKbf.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcCheckboxRadioSwitch-BCSKF7Tk.mjs"],"sourcesContent":["import { inject } from \"vue\";\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst INSIDE_RADIO_GROUP_KEY = Symbol.for(\"insideRadioGroup\");\nfunction useInsideRadioGroup() {\n return inject(INSIDE_RADIO_GROUP_KEY, void 0);\n}\nexport {\n INSIDE_RADIO_GROUP_KEY as I,\n useInsideRadioGroup as u\n};\n//# sourceMappingURL=useNcRadioGroup-DaZbEKbf.mjs.map\n","import '../assets/NcCheckboxRadioSwitch-C_70VMQr.css';\nimport { createElementBlock, openBlock, mergeProps, createElementVNode, createCommentVNode, toDisplayString, resolveComponent, normalizeClass, renderSlot, createBlock, resolveDynamicComponent, toHandlers, withCtx, createVNode, createSlots, createTextVNode, onMounted, computed, useCssVars } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { N as NcLoadingIcon } from \"./NcLoadingIcon-b_ajZ_nQ.mjs\";\nimport { r as register, q as n, a as t } from \"./_l10n-DrTiip5c.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { u as useInsideRadioGroup } from \"./useNcRadioGroup-DaZbEKbf.mjs\";\nconst _sfc_main$8 = {\n name: \"CheckboxBlankOutlineIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$8 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$7 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$7 = { d: \"M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3M19,5V19H5V5H19Z\" };\nconst _hoisted_4$6 = { key: 0 };\nfunction _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon checkbox-blank-outline-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$7, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$6, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$7))\n ], 16, _hoisted_1$8);\n}\nconst CheckboxBlankOutline = /* @__PURE__ */ _export_sfc(_sfc_main$8, [[\"render\", _sfc_render$8]]);\nconst _sfc_main$7 = {\n name: \"CheckboxMarkedIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$7 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$6 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$6 = { d: \"M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z\" };\nconst _hoisted_4$5 = { key: 0 };\nfunction _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon checkbox-marked-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$6, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$5, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$6))\n ], 16, _hoisted_1$7);\n}\nconst CheckboxMarked = /* @__PURE__ */ _export_sfc(_sfc_main$7, [[\"render\", _sfc_render$7]]);\nconst _sfc_main$6 = {\n name: \"MinusBoxIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$6 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$5 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$5 = { d: \"M17,13H7V11H17M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z\" };\nconst _hoisted_4$4 = { key: 0 };\nfunction _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon minus-box-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$5, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$5))\n ], 16, _hoisted_1$6);\n}\nconst MinusBox = /* @__PURE__ */ _export_sfc(_sfc_main$6, [[\"render\", _sfc_render$6]]);\nconst _sfc_main$5 = {\n name: \"RadioboxBlankIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$5 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$4 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$4 = { d: \"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\" };\nconst _hoisted_4$3 = { key: 0 };\nfunction _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon radiobox-blank-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$4, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$3, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$4))\n ], 16, _hoisted_1$5);\n}\nconst RadioboxBlank = /* @__PURE__ */ _export_sfc(_sfc_main$5, [[\"render\", _sfc_render$5]]);\nconst _sfc_main$4 = {\n name: \"RadioboxMarkedIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$4 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$3 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$3 = { d: \"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,7A5,5 0 0,0 7,12A5,5 0 0,0 12,17A5,5 0 0,0 17,12A5,5 0 0,0 12,7Z\" };\nconst _hoisted_4$2 = { key: 0 };\nfunction _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon radiobox-marked-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$3, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$2, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$3))\n ], 16, _hoisted_1$4);\n}\nconst RadioboxMarked = /* @__PURE__ */ _export_sfc(_sfc_main$4, [[\"render\", _sfc_render$4]]);\nconst _sfc_main$3 = {\n name: \"ToggleSwitchIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$3 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$2 = { d: \"M17,7H7A5,5 0 0,0 2,12A5,5 0 0,0 7,17H17A5,5 0 0,0 22,12A5,5 0 0,0 17,7M17,15A3,3 0 0,1 14,12A3,3 0 0,1 17,9A3,3 0 0,1 20,12A3,3 0 0,1 17,15Z\" };\nconst _hoisted_4$1 = { key: 0 };\nfunction _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon toggle-switch-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$2, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$1, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$2))\n ], 16, _hoisted_1$3);\n}\nconst ToggleSwitch = /* @__PURE__ */ _export_sfc(_sfc_main$3, [[\"render\", _sfc_render$3]]);\nconst _sfc_main$2 = {\n name: \"ToggleSwitchOffIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$2 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$1 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$1 = { d: \"M17,7H7A5,5 0 0,0 2,12A5,5 0 0,0 7,17H17A5,5 0 0,0 22,12A5,5 0 0,0 17,7M7,15A3,3 0 0,1 4,12A3,3 0 0,1 7,9A3,3 0 0,1 10,12A3,3 0 0,1 7,15Z\" };\nconst _hoisted_4 = { key: 0 };\nfunction _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon toggle-switch-off-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$1, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$1))\n ], 16, _hoisted_1$2);\n}\nconst ToggleSwitchOff = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"render\", _sfc_render$2]]);\nconst TYPE_CHECKBOX = \"checkbox\";\nconst TYPE_RADIO = \"radio\";\nconst TYPE_SWITCH = \"switch\";\nconst TYPE_BUTTON = \"button\";\nconst _sfc_main$1 = {\n name: \"NcCheckboxContent\",\n components: {\n NcLoadingIcon\n },\n props: {\n /**\n * Class for the icon element\n */\n iconClass: {\n type: [String, Object],\n default: null\n },\n /**\n * Class for the text element\n */\n textClass: {\n type: [String, Object],\n default: null\n },\n /**\n * Type of the input. checkbox, radio, switch, or button.\n *\n * Only use button when used in a `tablist` container and the\n * `tab` role is set.\n *\n * @type {'checkbox'|'radio'|'switch'|'button'}\n */\n type: {\n type: String,\n default: \"checkbox\",\n validator: (type) => [\n TYPE_CHECKBOX,\n TYPE_RADIO,\n TYPE_SWITCH,\n TYPE_BUTTON\n ].includes(type)\n },\n /**\n * Toggle the alternative button style\n */\n buttonVariant: {\n type: Boolean,\n default: false\n },\n /**\n * True if the entry is checked\n */\n isChecked: {\n type: Boolean,\n default: false\n },\n /**\n * Indeterminate state\n */\n indeterminate: {\n type: Boolean,\n default: false\n },\n /**\n * Loading state\n */\n loading: {\n type: Boolean,\n default: false\n },\n /**\n * Icon size\n */\n iconSize: {\n type: Number,\n default: 24\n },\n /**\n * Label id attribute\n */\n labelId: {\n type: String,\n required: true\n },\n /**\n * Description id attribute\n */\n descriptionId: {\n type: String,\n required: true\n }\n },\n computed: {\n isButtonType() {\n return this.type === TYPE_BUTTON;\n },\n /**\n * Returns the proper Material icon depending on the select case\n *\n * @return {object}\n */\n checkboxRadioIconElement() {\n if (this.type === TYPE_RADIO) {\n if (this.isChecked) {\n return RadioboxMarked;\n }\n return RadioboxBlank;\n }\n if (this.type === TYPE_SWITCH) {\n if (this.isChecked) {\n return ToggleSwitch;\n }\n return ToggleSwitchOff;\n }\n if (this.indeterminate) {\n return MinusBox;\n }\n if (this.isChecked) {\n return CheckboxMarked;\n }\n return CheckboxBlankOutline;\n }\n }\n};\nconst _hoisted_1$1 = {\n key: 0,\n class: \"checkbox-content__wrapper\"\n};\nconst _hoisted_2 = [\"id\"];\nconst _hoisted_3 = [\"id\"];\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcLoadingIcon = resolveComponent(\"NcLoadingIcon\");\n return openBlock(), createElementBlock(\"span\", {\n class: normalizeClass([\"checkbox-content\", {\n [\"checkbox-content-\" + $props.type]: true,\n \"checkbox-content--button-variant\": $props.buttonVariant,\n \"checkbox-content--has-text\": !!_ctx.$slots.default\n }])\n }, [\n createElementVNode(\"span\", {\n class: normalizeClass([\"checkbox-content__icon\", {\n \"checkbox-content__icon--checked\": $props.isChecked,\n \"checkbox-content__icon--has-description\": !$options.isButtonType && _ctx.$slots.description,\n [$props.iconClass]: true\n }]),\n \"aria-hidden\": true,\n inert: \"\"\n }, [\n renderSlot(_ctx.$slots, \"icon\", {\n checked: $props.isChecked,\n loading: $props.loading\n }, () => [\n $props.loading ? (openBlock(), createBlock(_component_NcLoadingIcon, { key: 0 })) : !$props.buttonVariant ? (openBlock(), createBlock(resolveDynamicComponent($options.checkboxRadioIconElement), {\n key: 1,\n size: $props.iconSize\n }, null, 8, [\"size\"])) : createCommentVNode(\"\", true)\n ], true)\n ], 2),\n _ctx.$slots.default || _ctx.$slots.description ? (openBlock(), createElementBlock(\"span\", _hoisted_1$1, [\n _ctx.$slots.default ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n id: $props.labelId,\n class: normalizeClass([\"checkbox-content__text\", $props.textClass])\n }, [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ], 10, _hoisted_2)) : createCommentVNode(\"\", true),\n !$options.isButtonType && _ctx.$slots.description ? (openBlock(), createElementBlock(\"span\", {\n key: 1,\n id: $props.descriptionId,\n class: \"checkbox-content__description\"\n }, [\n renderSlot(_ctx.$slots, \"description\", {}, void 0, true)\n ], 8, _hoisted_3)) : createCommentVNode(\"\", true)\n ])) : createCommentVNode(\"\", true)\n ], 2);\n}\nconst NcCheckboxContent = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1], [\"__scopeId\", \"data-v-a1ac280f\"]]);\nregister();\nconst _sfc_main = {\n name: \"NcCheckboxRadioSwitch\",\n components: {\n NcCheckboxContent\n },\n // We need to pass attributes to the input element\n inheritAttrs: false,\n props: {\n /**\n * Unique id attribute of the input\n */\n id: {\n type: String,\n default: () => \"checkbox-radio-switch-\" + createElementId(),\n validator: (id) => id.trim() !== \"\"\n },\n /**\n * Unique id attribute of the wrapper element\n */\n wrapperId: {\n type: String,\n default: null\n },\n /**\n * Input name. Required for radio, optional for checkbox, and ignored\n * for button.\n */\n name: {\n type: String,\n default: null\n },\n /**\n * Required if no text is set.\n * The aria-label is forwarded to the input or button.\n */\n ariaLabel: {\n type: String,\n default: \"\"\n },\n /**\n * Type of the input. checkbox, radio, switch, or button.\n *\n * Only use button when used in a `tablist` container and the\n * `tab` role is set.\n *\n * @type {'checkbox'|'radio'|'switch'|'button'}\n */\n type: {\n type: String,\n default: \"checkbox\",\n validator: (type) => [\n TYPE_CHECKBOX,\n TYPE_RADIO,\n TYPE_SWITCH,\n TYPE_BUTTON\n ].includes(type)\n },\n /**\n * Toggle the alternative button style\n *\n * @deprecated - Use `NcRadioGroup` instead\n */\n buttonVariant: {\n type: Boolean,\n default: false\n },\n /**\n * Are the elements are all direct siblings?\n * If so they will be grouped horizontally or vertically\n *\n * @type {'no'|'horizontal'|'vertical'}\n * @deprecated - Use `NcRadioGroup` instead\n */\n buttonVariantGrouped: {\n type: String,\n default: \"no\",\n validator: (v) => [\"no\", \"vertical\", \"horizontal\"].includes(v)\n },\n /**\n * Checked state. To be used with `v-model:value`\n */\n modelValue: {\n type: [Boolean, Array, String],\n default: false\n },\n /**\n * Value to be synced on check\n */\n value: {\n type: String,\n default: null\n },\n /**\n * Disabled state\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * Indeterminate state\n */\n indeterminate: {\n type: Boolean,\n default: false\n },\n /**\n * Required state\n */\n required: {\n type: Boolean,\n default: false\n },\n /**\n * Loading state\n */\n loading: {\n type: Boolean,\n default: false\n },\n /**\n * Wrapping element tag\n *\n * When `type` is set to `button` this will be ignored\n *\n * Defaults to `span`\n */\n wrapperElement: {\n type: String,\n default: null\n },\n /**\n * The class(es) to pass to the wrapper / root element of the component\n */\n class: {\n type: [String, Array, Object],\n default: \"\"\n },\n /**\n * The style to pass to the wrapper / root element of the component\n */\n style: {\n type: [String, Array, Object],\n default: \"\"\n },\n /**\n * Description\n *\n * This is unsupported when using button has type.\n */\n description: {\n type: String,\n default: null\n }\n },\n emits: [\"update:modelValue\"],\n setup(props, { emit }) {\n const radioGroup = useInsideRadioGroup();\n onMounted(() => radioGroup?.value.register(false));\n const internalType = computed(() => radioGroup?.value ? TYPE_RADIO : props.type);\n const internalModelValue = computed({\n get() {\n if (radioGroup?.value) {\n return radioGroup.value.modelValue;\n }\n return props.modelValue;\n },\n set(value) {\n if (radioGroup?.value) {\n radioGroup.value.onUpdate(value);\n } else {\n emit(\"update:modelValue\", value);\n }\n }\n });\n return {\n internalType,\n internalModelValue,\n labelId: createElementId(),\n descriptionId: createElementId()\n };\n },\n computed: {\n isButtonType() {\n return this.internalType === TYPE_BUTTON;\n },\n computedWrapperElement() {\n if (this.isButtonType) {\n return \"button\";\n }\n if (this.wrapperElement !== null) {\n return this.wrapperElement;\n }\n return \"span\";\n },\n listeners() {\n if (this.isButtonType) {\n return {\n click: this.onToggle\n };\n }\n return {\n change: this.onToggle\n };\n },\n iconSize() {\n return this.internalType === TYPE_SWITCH ? 36 : 20;\n },\n cssIconSize() {\n return this.iconSize + \"px\";\n },\n cssIconHeight() {\n return this.internalType === TYPE_SWITCH ? \"16px\" : this.cssIconSize;\n },\n /**\n * Return the input type.\n * Switch is not an official type\n *\n * @return {string}\n */\n inputType() {\n const nativeTypes = [\n TYPE_CHECKBOX,\n TYPE_RADIO,\n TYPE_BUTTON\n ];\n if (nativeTypes.includes(this.internalType)) {\n return this.internalType;\n }\n return TYPE_CHECKBOX;\n },\n /**\n * Check if that entry is checked\n * If value is defined, we use that as the checked value\n * If not, we expect true/false in this.checked\n *\n * @return {boolean}\n */\n isChecked() {\n if (this.value !== null) {\n if (Array.isArray(this.internalModelValue)) {\n return [...this.internalModelValue].indexOf(this.value) > -1;\n }\n return this.internalModelValue === this.value;\n }\n return this.internalModelValue === true;\n },\n hasIndeterminate() {\n return [\n TYPE_CHECKBOX,\n TYPE_RADIO\n ].includes(this.inputType);\n }\n },\n mounted() {\n if (this.name && this.internalType === TYPE_CHECKBOX) {\n if (!Array.isArray(this.internalModelValue)) {\n throw new Error(\"When using groups of checkboxes, the updated value will be an array.\");\n }\n }\n if (this.name && this.internalType === TYPE_SWITCH) {\n throw new Error(\"Switches are not made to be used for data sets. Please use checkboxes instead.\");\n }\n if (typeof this.internalModelValue !== \"boolean\" && this.internalType === TYPE_SWITCH) {\n throw new Error(\"Switches can only be used with boolean as modelValue prop.\");\n }\n },\n methods: {\n t,\n n,\n onToggle(event) {\n if (this.disabled || event.target.tagName.toLowerCase() === \"a\") {\n return;\n }\n if (this.internalType === TYPE_RADIO) {\n this.internalModelValue = this.value;\n return;\n }\n if (this.internalType === TYPE_SWITCH) {\n this.internalModelValue = !this.isChecked;\n return;\n }\n if (typeof this.internalModelValue === \"boolean\") {\n this.internalModelValue = !this.internalModelValue;\n return;\n }\n const values = this.getInputsSet().filter((input) => input.checked).map((input) => input.value);\n if (values.includes(this.value)) {\n this.internalModelValue = values.filter((v) => v !== this.value);\n } else {\n this.internalModelValue = [...values, this.value];\n }\n },\n /**\n * Get the input set based on this name\n *\n * @return {Node[]}\n */\n getInputsSet() {\n return [...document.getElementsByName(this.name)];\n }\n }\n};\nconst __injectCSSVars__ = () => {\n useCssVars((_ctx) => ({\n \"65a7082e\": _ctx.cssIconSize,\n \"20f7d30f\": _ctx.cssIconHeight\n }));\n};\nconst __setup__ = _sfc_main.setup;\n_sfc_main.setup = __setup__ ? (props, ctx) => {\n __injectCSSVars__();\n return __setup__(props, ctx);\n} : __injectCSSVars__;\nconst _hoisted_1 = [\"id\", \"aria-labelledby\", \"aria-describedby\", \"aria-label\", \"disabled\", \"type\", \"value\", \"checked\", \".indeterminate\", \"required\", \"name\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcCheckboxContent = resolveComponent(\"NcCheckboxContent\");\n return openBlock(), createBlock(resolveDynamicComponent($options.computedWrapperElement), mergeProps({\n id: $props.wrapperId ?? ($options.isButtonType ? $props.id : null),\n \"aria-label\": $options.isButtonType && $props.ariaLabel ? $props.ariaLabel : void 0,\n class: [\"checkbox-radio-switch\", [\n _ctx.$props.class,\n {\n [\"checkbox-radio-switch-\" + $setup.internalType]: $setup.internalType,\n \"checkbox-radio-switch--checked\": $options.isChecked,\n \"checkbox-radio-switch--disabled\": $props.disabled,\n \"checkbox-radio-switch--indeterminate\": $options.hasIndeterminate ? $props.indeterminate : false,\n \"checkbox-radio-switch--button-variant\": $props.buttonVariant,\n \"checkbox-radio-switch--button-variant-v-grouped\": $props.buttonVariant && $props.buttonVariantGrouped === \"vertical\",\n \"checkbox-radio-switch--button-variant-h-grouped\": $props.buttonVariant && $props.buttonVariantGrouped === \"horizontal\",\n \"button-vue\": $options.isButtonType\n }\n ]],\n style: $props.style,\n type: $options.isButtonType ? \"button\" : null\n }, $options.isButtonType ? _ctx.$attrs : {}, toHandlers($options.isButtonType ? $options.listeners : {})), {\n default: withCtx(() => [\n !$options.isButtonType ? (openBlock(), createElementBlock(\"input\", mergeProps({\n key: 0,\n id: $props.id,\n \"aria-labelledby\": !$options.isButtonType && !$props.ariaLabel ? $setup.labelId : null,\n \"aria-describedby\": !$options.isButtonType && ($props.description || _ctx.$slots.description) ? $setup.descriptionId : null,\n \"aria-label\": $props.ariaLabel || void 0,\n class: \"checkbox-radio-switch__input\",\n disabled: $props.disabled,\n type: $options.inputType,\n value: $props.value,\n checked: $options.isChecked,\n \".indeterminate\": $options.hasIndeterminate ? $props.indeterminate : null,\n required: $props.required,\n name: $props.name\n }, _ctx.$attrs, toHandlers($options.listeners, true)), null, 48, _hoisted_1)) : createCommentVNode(\"\", true),\n createVNode(_component_NcCheckboxContent, {\n id: !$options.isButtonType ? `${$props.id}-label` : void 0,\n class: \"checkbox-radio-switch__content\",\n \"icon-class\": \"checkbox-radio-switch__icon\",\n \"text-class\": \"checkbox-radio-switch__text\",\n type: $setup.internalType,\n indeterminate: $options.hasIndeterminate ? $props.indeterminate : false,\n \"button-variant\": $props.buttonVariant,\n \"is-checked\": $options.isChecked,\n loading: $props.loading,\n \"label-id\": $setup.labelId,\n \"description-id\": $setup.descriptionId,\n \"icon-size\": $options.iconSize,\n onClick: $options.onToggle\n }, createSlots({\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"icon\", {}, void 0, true)\n ]),\n _: 2\n }, [\n _ctx.$slots.description || $props.description ? {\n name: \"description\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"description\", {}, () => [\n createTextVNode(toDisplayString($props.description), 1)\n ], true)\n ]),\n key: \"0\"\n } : void 0,\n !!_ctx.$slots.default ? {\n name: \"default\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ]),\n key: \"1\"\n } : void 0\n ]), 1032, [\"id\", \"type\", \"indeterminate\", \"button-variant\", \"is-checked\", \"loading\", \"label-id\", \"description-id\", \"icon-size\", \"onClick\"])\n ]),\n _: 3\n }, 16, [\"id\", \"aria-label\", \"class\", \"style\", \"type\"]);\n}\nconst NcCheckboxRadioSwitch = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-0dcb138a\"]]);\nexport {\n NcCheckboxRadioSwitch as N\n};\n//# sourceMappingURL=NcCheckboxRadioSwitch-BCSKF7Tk.mjs.map\n"],"names":["INSIDE_RADIO_GROUP_KEY","useInsideRadioGroup","inject","_sfc_main$8","_hoisted_1$8","_hoisted_2$7","_hoisted_3$7","_hoisted_4$6","_sfc_render$8","_ctx","_cache","$props","$setup","$data","$options","openBlock","createElementBlock","mergeProps","$event","createElementVNode","toDisplayString","createCommentVNode","CheckboxBlankOutline","_export_sfc","_sfc_main$7","_hoisted_1$7","_hoisted_2$6","_hoisted_3$6","_hoisted_4$5","_sfc_render$7","CheckboxMarked","_sfc_main$6","_hoisted_1$6","_hoisted_2$5","_hoisted_3$5","_hoisted_4$4","_sfc_render$6","MinusBox","_sfc_main$5","_hoisted_1$5","_hoisted_2$4","_hoisted_3$4","_hoisted_4$3","_sfc_render$5","RadioboxBlank","_sfc_main$4","_hoisted_1$4","_hoisted_2$3","_hoisted_3$3","_hoisted_4$2","_sfc_render$4","RadioboxMarked","_sfc_main$3","_hoisted_1$3","_hoisted_2$2","_hoisted_3$2","_hoisted_4$1","_sfc_render$3","ToggleSwitch","_sfc_main$2","_hoisted_1$2","_hoisted_2$1","_hoisted_3$1","_hoisted_4","_sfc_render$2","ToggleSwitchOff","TYPE_CHECKBOX","TYPE_RADIO","TYPE_SWITCH","TYPE_BUTTON","_sfc_main$1","NcLoadingIcon","type","_hoisted_1$1","_hoisted_2","_hoisted_3","_sfc_render$1","_component_NcLoadingIcon","resolveComponent","normalizeClass","renderSlot","createBlock","resolveDynamicComponent","NcCheckboxContent","register","_sfc_main","createElementId","id","v","props","emit","radioGroup","onMounted","internalType","computed","internalModelValue","value","t","n","event","values","input","__injectCSSVars__","useCssVars","__setup__","ctx","_hoisted_1","_sfc_render","_component_NcCheckboxContent","toHandlers","withCtx","createVNode","createSlots","createTextVNode","NcCheckboxRadioSwitch"],"mappings":"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","x_google_ignoreList":[0,1]} \ No newline at end of file diff --git a/dist/NcCheckboxRadioSwitch-BCSKF7Tk-yPckcGKs.chunk.mjs.map.license b/dist/NcCheckboxRadioSwitch-BCSKF7Tk-B1Kcz6gU.chunk.mjs.map.license similarity index 100% rename from dist/NcCheckboxRadioSwitch-BCSKF7Tk-yPckcGKs.chunk.mjs.map.license rename to dist/NcCheckboxRadioSwitch-BCSKF7Tk-B1Kcz6gU.chunk.mjs.map.license diff --git a/dist/NcCheckboxRadioSwitch-BCSKF7Tk-yPckcGKs.chunk.mjs b/dist/NcCheckboxRadioSwitch-BCSKF7Tk-yPckcGKs.chunk.mjs deleted file mode 100644 index 03780437e6ebb..0000000000000 --- a/dist/NcCheckboxRadioSwitch-BCSKF7Tk-yPckcGKs.chunk.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import{M as z,c as C,w as k,z as d,a4 as A,N as T,A as I,x as S,j as l,o as n,k as p,l as s,m,n as v,t as b,f as B,e as M,y as $,g as N,L as H}from"./runtime-dom.esm-bundler-BrYCUcZF.chunk.mjs";import{r as L,_ as u,n as E,t as O,c as x}from"./createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs";import{N as Z}from"./mdi-D55n0uzy.chunk.mjs";const q=Symbol.for("insideRadioGroup");function R(){return z(q,void 0)}const j={name:"CheckboxBlankOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},G=["aria-hidden","aria-label"],W=["fill","width","height"],P={d:"M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3M19,5V19H5V5H19Z"},U={key:0};function D(t,a,e,o,c,i){return n(),l("span",d(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon checkbox-blank-outline-icon",role:"img",onClick:a[0]||(a[0]=r=>t.$emit("click",r))}),[(n(),l("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[p("path",P,[e.title?(n(),l("title",U,b(e.title),1)):s("",!0)])],8,W))],16,G)}const Y=u(j,[["render",D]]),F={name:"CheckboxMarkedIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},J=["aria-hidden","aria-label"],K=["fill","width","height"],Q={d:"M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z"},X={key:0};function ee(t,a,e,o,c,i){return n(),l("span",d(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon checkbox-marked-icon",role:"img",onClick:a[0]||(a[0]=r=>t.$emit("click",r))}),[(n(),l("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[p("path",Q,[e.title?(n(),l("title",X,b(e.title),1)):s("",!0)])],8,K))],16,J)}const te=u(F,[["render",ee]]),ie={name:"MinusBoxIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ae=["aria-hidden","aria-label"],ne=["fill","width","height"],le={d:"M17,13H7V11H17M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z"},oe={key:0};function re(t,a,e,o,c,i){return n(),l("span",d(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon minus-box-icon",role:"img",onClick:a[0]||(a[0]=r=>t.$emit("click",r))}),[(n(),l("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[p("path",le,[e.title?(n(),l("title",oe,b(e.title),1)):s("",!0)])],8,ne))],16,ae)}const se=u(ie,[["render",re]]),ce={name:"RadioboxBlankIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},de=["aria-hidden","aria-label"],ue=["fill","width","height"],he={d:"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z"},pe={key:0};function be(t,a,e,o,c,i){return n(),l("span",d(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon radiobox-blank-icon",role:"img",onClick:a[0]||(a[0]=r=>t.$emit("click",r))}),[(n(),l("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[p("path",he,[e.title?(n(),l("title",pe,b(e.title),1)):s("",!0)])],8,ue))],16,de)}const ye=u(ce,[["render",be]]),ge={name:"RadioboxMarkedIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},me=["aria-hidden","aria-label"],fe=["fill","width","height"],ke={d:"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,7A5,5 0 0,0 7,12A5,5 0 0,0 12,17A5,5 0 0,0 17,12A5,5 0 0,0 12,7Z"},ve={key:0};function xe(t,a,e,o,c,i){return n(),l("span",d(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon radiobox-marked-icon",role:"img",onClick:a[0]||(a[0]=r=>t.$emit("click",r))}),[(n(),l("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[p("path",ke,[e.title?(n(),l("title",ve,b(e.title),1)):s("",!0)])],8,fe))],16,me)}const Ce=u(ge,[["render",xe]]),we={name:"ToggleSwitchIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ae=["aria-hidden","aria-label"],Se=["fill","width","height"],_e={d:"M17,7H7A5,5 0 0,0 2,12A5,5 0 0,0 7,17H17A5,5 0 0,0 22,12A5,5 0 0,0 17,7M17,15A3,3 0 0,1 14,12A3,3 0 0,1 17,9A3,3 0 0,1 20,12A3,3 0 0,1 17,15Z"},Ve={key:0};function Te(t,a,e,o,c,i){return n(),l("span",d(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon toggle-switch-icon",role:"img",onClick:a[0]||(a[0]=r=>t.$emit("click",r))}),[(n(),l("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[p("path",_e,[e.title?(n(),l("title",Ve,b(e.title),1)):s("",!0)])],8,Se))],16,Ae)}const Be=u(we,[["render",Te]]),ze={name:"ToggleSwitchOffIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ie=["aria-hidden","aria-label"],Me=["fill","width","height"],$e={d:"M17,7H7A5,5 0 0,0 2,12A5,5 0 0,0 7,17H17A5,5 0 0,0 22,12A5,5 0 0,0 17,7M7,15A3,3 0 0,1 4,12A3,3 0 0,1 7,9A3,3 0 0,1 10,12A3,3 0 0,1 7,15Z"},Ne={key:0};function He(t,a,e,o,c,i){return n(),l("span",d(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon toggle-switch-off-icon",role:"img",onClick:a[0]||(a[0]=r=>t.$emit("click",r))}),[(n(),l("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[p("path",$e,[e.title?(n(),l("title",Ne,b(e.title),1)):s("",!0)])],8,Me))],16,Ie)}const Le=u(ze,[["render",He]]),g="checkbox",y="radio",h="switch",f="button",Ee={name:"NcCheckboxContent",components:{NcLoadingIcon:Z},props:{iconClass:{type:[String,Object],default:null},textClass:{type:[String,Object],default:null},type:{type:String,default:"checkbox",validator:t=>[g,y,h,f].includes(t)},buttonVariant:{type:Boolean,default:!1},isChecked:{type:Boolean,default:!1},indeterminate:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},iconSize:{type:Number,default:24},labelId:{type:String,required:!0},descriptionId:{type:String,required:!0}},computed:{isButtonType(){return this.type===f},checkboxRadioIconElement(){return this.type===y?this.isChecked?Ce:ye:this.type===h?this.isChecked?Be:Le:this.indeterminate?se:this.isChecked?te:Y}}},Oe={key:0,class:"checkbox-content__wrapper"},Ze=["id"],qe=["id"];function Re(t,a,e,o,c,i){const r=B("NcLoadingIcon");return n(),l("span",{class:v(["checkbox-content",{["checkbox-content-"+e.type]:!0,"checkbox-content--button-variant":e.buttonVariant,"checkbox-content--has-text":!!t.$slots.default}])},[p("span",{class:v(["checkbox-content__icon",{"checkbox-content__icon--checked":e.isChecked,"checkbox-content__icon--has-description":!i.isButtonType&&t.$slots.description,[e.iconClass]:!0}]),"aria-hidden":!0,inert:""},[m(t.$slots,"icon",{checked:e.isChecked,loading:e.loading},()=>[e.loading?(n(),C(r,{key:0})):e.buttonVariant?s("",!0):(n(),C(T(i.checkboxRadioIconElement),{key:1,size:e.iconSize},null,8,["size"]))],!0)],2),t.$slots.default||t.$slots.description?(n(),l("span",Oe,[t.$slots.default?(n(),l("span",{key:0,id:e.labelId,class:v(["checkbox-content__text",e.textClass])},[m(t.$slots,"default",{},void 0,!0)],10,Ze)):s("",!0),!i.isButtonType&&t.$slots.description?(n(),l("span",{key:1,id:e.descriptionId,class:"checkbox-content__description"},[m(t.$slots,"description",{},void 0,!0)],8,qe)):s("",!0)])):s("",!0)],2)}const je=u(Ee,[["render",Re],["__scopeId","data-v-a1ac280f"]]);L();const w={name:"NcCheckboxRadioSwitch",components:{NcCheckboxContent:je},inheritAttrs:!1,props:{id:{type:String,default:()=>"checkbox-radio-switch-"+x(),validator:t=>t.trim()!==""},wrapperId:{type:String,default:null},name:{type:String,default:null},ariaLabel:{type:String,default:""},type:{type:String,default:"checkbox",validator:t=>[g,y,h,f].includes(t)},buttonVariant:{type:Boolean,default:!1},buttonVariantGrouped:{type:String,default:"no",validator:t=>["no","vertical","horizontal"].includes(t)},modelValue:{type:[Boolean,Array,String],default:!1},value:{type:String,default:null},disabled:{type:Boolean,default:!1},indeterminate:{type:Boolean,default:!1},required:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},wrapperElement:{type:String,default:null},class:{type:[String,Array,Object],default:""},style:{type:[String,Array,Object],default:""},description:{type:String,default:null}},emits:["update:modelValue"],setup(t,{emit:a}){const e=R();I(()=>e?.value.register(!1));const o=S(()=>e?.value?y:t.type),c=S({get(){return e?.value?e.value.modelValue:t.modelValue},set(i){e?.value?e.value.onUpdate(i):a("update:modelValue",i)}});return{internalType:o,internalModelValue:c,labelId:x(),descriptionId:x()}},computed:{isButtonType(){return this.internalType===f},computedWrapperElement(){return this.isButtonType?"button":this.wrapperElement!==null?this.wrapperElement:"span"},listeners(){return this.isButtonType?{click:this.onToggle}:{change:this.onToggle}},iconSize(){return this.internalType===h?36:20},cssIconSize(){return this.iconSize+"px"},cssIconHeight(){return this.internalType===h?"16px":this.cssIconSize},inputType(){return[g,y,f].includes(this.internalType)?this.internalType:g},isChecked(){return this.value!==null?Array.isArray(this.internalModelValue)?[...this.internalModelValue].indexOf(this.value)>-1:this.internalModelValue===this.value:this.internalModelValue===!0},hasIndeterminate(){return[g,y].includes(this.inputType)}},mounted(){if(this.name&&this.internalType===g&&!Array.isArray(this.internalModelValue))throw new Error("When using groups of checkboxes, the updated value will be an array.");if(this.name&&this.internalType===h)throw new Error("Switches are not made to be used for data sets. Please use checkboxes instead.");if(typeof this.internalModelValue!="boolean"&&this.internalType===h)throw new Error("Switches can only be used with boolean as modelValue prop.")},methods:{t:O,n:E,onToggle(t){if(this.disabled||t.target.tagName.toLowerCase()==="a")return;if(this.internalType===y){this.internalModelValue=this.value;return}if(this.internalType===h){this.internalModelValue=!this.isChecked;return}if(typeof this.internalModelValue=="boolean"){this.internalModelValue=!this.internalModelValue;return}const a=this.getInputsSet().filter(e=>e.checked).map(e=>e.value);a.includes(this.value)?this.internalModelValue=a.filter(e=>e!==this.value):this.internalModelValue=[...a,this.value]},getInputsSet(){return[...document.getElementsByName(this.name)]}}},_=()=>{H(t=>({"65a7082e":t.cssIconSize,"20f7d30f":t.cssIconHeight}))},V=w.setup;w.setup=V?(t,a)=>(_(),V(t,a)):_;const Ge=["id","aria-labelledby","aria-describedby","aria-label","disabled","type","value","checked",".indeterminate","required","name"];function We(t,a,e,o,c,i){const r=B("NcCheckboxContent");return n(),C(T(i.computedWrapperElement),d({id:e.wrapperId??(i.isButtonType?e.id:null),"aria-label":i.isButtonType&&e.ariaLabel?e.ariaLabel:void 0,class:["checkbox-radio-switch",[t.$props.class,{["checkbox-radio-switch-"+o.internalType]:o.internalType,"checkbox-radio-switch--checked":i.isChecked,"checkbox-radio-switch--disabled":e.disabled,"checkbox-radio-switch--indeterminate":i.hasIndeterminate?e.indeterminate:!1,"checkbox-radio-switch--button-variant":e.buttonVariant,"checkbox-radio-switch--button-variant-v-grouped":e.buttonVariant&&e.buttonVariantGrouped==="vertical","checkbox-radio-switch--button-variant-h-grouped":e.buttonVariant&&e.buttonVariantGrouped==="horizontal","button-vue":i.isButtonType}]],style:e.style,type:i.isButtonType?"button":null},i.isButtonType?t.$attrs:{},A(i.isButtonType?i.listeners:{})),{default:k(()=>[i.isButtonType?s("",!0):(n(),l("input",d({key:0,id:e.id,"aria-labelledby":!i.isButtonType&&!e.ariaLabel?o.labelId:null,"aria-describedby":!i.isButtonType&&(e.description||t.$slots.description)?o.descriptionId:null,"aria-label":e.ariaLabel||void 0,class:"checkbox-radio-switch__input",disabled:e.disabled,type:i.inputType,value:e.value,checked:i.isChecked,".indeterminate":i.hasIndeterminate?e.indeterminate:null,required:e.required,name:e.name},t.$attrs,A(i.listeners,!0)),null,48,Ge)),M(r,{id:i.isButtonType?void 0:`${e.id}-label`,class:"checkbox-radio-switch__content","icon-class":"checkbox-radio-switch__icon","text-class":"checkbox-radio-switch__text",type:o.internalType,indeterminate:i.hasIndeterminate?e.indeterminate:!1,"button-variant":e.buttonVariant,"is-checked":i.isChecked,loading:e.loading,"label-id":o.labelId,"description-id":o.descriptionId,"icon-size":i.iconSize,onClick:i.onToggle},$({icon:k(()=>[m(t.$slots,"icon",{},void 0,!0)]),_:2},[t.$slots.description||e.description?{name:"description",fn:k(()=>[m(t.$slots,"description",{},()=>[N(b(e.description),1)],!0)]),key:"0"}:void 0,t.$slots.default?{name:"default",fn:k(()=>[m(t.$slots,"default",{},void 0,!0)]),key:"1"}:void 0]),1032,["id","type","indeterminate","button-variant","is-checked","loading","label-id","description-id","icon-size","onClick"])]),_:3},16,["id","aria-label","class","style","type"])}const Ye=u(w,[["render",We],["__scopeId","data-v-0dcb138a"]]);export{Ye as N}; -//# sourceMappingURL=NcCheckboxRadioSwitch-BCSKF7Tk-yPckcGKs.chunk.mjs.map diff --git a/dist/NcColorPicker-Kc0JqRtp-G7GArS5K.chunk.mjs b/dist/NcColorPicker-Kc0JqRtp-G7GArS5K.chunk.mjs new file mode 100644 index 0000000000000..2e3c1c897d777 --- /dev/null +++ b/dist/NcColorPicker-Kc0JqRtp-G7GArS5K.chunk.mjs @@ -0,0 +1,2 @@ +import{j as m,o as p,I as E,f as I,k as l,e as v,E as T,af as xe,t as ae,n as Y,l as x,c as $,G as B,b as we,p as re,q as ne,r as ye,x as ke,w as F,u as f,ae as Ce,F as Me,C as Se,g as _e,m as He,ac as Ae,ad as $e}from"./runtime-dom.esm-bundler-DdtEg5E9.chunk.mjs";import{l as Le,N as U,c as Ee,f as Re,b as K,h as Fe,j as Ie}from"./AccountOutline-BlW-6JqD.chunk.mjs";import{r as De,_ as Ne,c as Te,b as M}from"./createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs";import{d as ie,C as se,a as le}from"./colors-Go3zmZRD-DNxaZwS4.chunk.mjs";import{z as ze}from"./NcModal-MC_HktJd-DqeuH-fk.chunk.mjs";const Be="";function D(e,t){t===void 0&&(t={});var a=t.insertAt;if(!(!e||typeof document>"u")){var r=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css",a==="top"&&r.firstChild?r.insertBefore(n,r.firstChild):r.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}}const N=function(e,t){const{componentPrefix:a=Be}=t||{};e.component(`${a}${this.name}`,this)},G={};var z={name:"Checkboard",props:{size:{type:[Number,String],default:8},white:{type:String,default:"#fff"},grey:{type:String,default:"#e6e6e6"}},computed:{bgStyle(){return{"background-image":`url(${Ve(this.white,this.grey,this.size)})`}}}};function Ue(e,t,a){if(typeof document>"u")return null;const r=document.createElement("canvas");r.width=r.height=a*2;const n=r.getContext("2d");return n?(n.fillStyle=e,n.fillRect(0,0,r.width,r.height),n.fillStyle=t,n.fillRect(0,0,a,a),n.translate(a,a),n.fillRect(0,0,a,a),r.toDataURL()):null}function Ve(e,t,a){const r=`${e},${t},${a}`;if(G[r])return G[r];const n=Ue(e,t,a);return G[r]=n,n}function Oe(e,t,a,r,n,o){return p(),m("div",{class:"vc-checkerboard",style:E(o.bgStyle)},null,4)}var je=".vc-checkerboard{background-size:contain;bottom:0;left:0;position:absolute;right:0;top:0}";D(je),z.render=Oe,z.__file="src/components/checkboard/checkboard.vue",z.install=N;var j={name:"Alpha",components:{Checkboard:z},props:{value:Object,onChange:Function},computed:{colors(){return this.value},gradientColor(){const{rgba:e}=this.colors,t=[e.r,e.g,e.b].join(",");return`linear-gradient(to right, rgba(${t}, 0) 0%, rgba(${t}, 1) 100%)`}},methods:{handleChange(e,t){!t&&e.preventDefault();const{container:a}=this.$refs;if(!a)return;const r=a.clientWidth,n=a.getBoundingClientRect().left+window.pageXOffset,o=(e.pageX||(e.touches?e.touches[0].pageX:0))-n;let i;o<0?i=0:o>r?i=1:i=Math.round(o*100/r)/100,this.colors.a!==i&&this.$emit("change",{h:this.colors.hsl.h,s:this.colors.hsl.s,l:this.colors.hsl.l,a:i,source:"rgba"})},handleMouseDown(e){this.handleChange(e,!0),window.addEventListener("mousemove",this.handleChange),window.addEventListener("mouseup",this.handleMouseUp)},handleMouseUp(){this.unbindEventListeners()},unbindEventListeners(){window.removeEventListener("mousemove",this.handleChange),window.removeEventListener("mouseup",this.handleMouseUp)}}};const qe={class:"vc-alpha"},Xe={class:"vc-alpha-checkboard-wrap"},We=l("div",{class:"vc-alpha-picker"},null,-1),Pe=[We];function Ye(e,t,a,r,n,o){const i=I("Checkboard");return p(),m("div",qe,[l("div",Xe,[v(i)]),l("div",{class:"vc-alpha-gradient",style:E({background:o.gradientColor})},null,4),l("div",{ref:"container",class:"vc-alpha-container",onMousedown:t[0]||(t[0]=(...s)=>o.handleMouseDown&&o.handleMouseDown(...s)),onTouchmove:t[1]||(t[1]=(...s)=>o.handleChange&&o.handleChange(...s)),onTouchstart:t[2]||(t[2]=(...s)=>o.handleChange&&o.handleChange(...s))},[l("div",{class:"vc-alpha-pointer",style:E({left:`${o.colors.a*100}%`})},Pe,4)],544)])}var Ke=".vc-alpha,.vc-alpha-checkboard-wrap{bottom:0;left:0;position:absolute;right:0;top:0}.vc-alpha-checkboard-wrap{overflow:hidden}.vc-alpha-gradient{bottom:0;left:0;position:absolute;right:0;top:0}.vc-alpha-container{cursor:pointer;height:100%;margin:0 3px;position:relative;z-index:2}.vc-alpha-pointer{position:absolute;z-index:2}.vc-alpha-picker{background:#fff;border-radius:1px;box-shadow:0 0 2px rgba(0,0,0,.6);cursor:pointer;height:8px;margin-top:1px;transform:translateX(-2px);width:4px}";D(Ke),j.render=Ye,j.__file="src/components/alpha/alpha.vue",j.install=N;function b(e,t){Ge(e)&&(e="100%");var a=Ze(e);return e=t===360?e:Math.min(t,Math.max(0,parseFloat(e))),a&&(e=parseInt(String(e*t),10)/100),Math.abs(e-t)<1e-6?1:(t===360?e=(e<0?e%t+t:e%t)/parseFloat(String(t)):e=e%t/parseFloat(String(t)),e)}function V(e){return Math.min(1,Math.max(0,e))}function Ge(e){return typeof e=="string"&&e.indexOf(".")!==-1&&parseFloat(e)===1}function Ze(e){return typeof e=="string"&&e.indexOf("%")!==-1}function pe(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function O(e){return e<=1?"".concat(Number(e)*100,"%"):e}function R(e){return e.length===1?"0"+e:String(e)}function Je(e,t,a){return{r:b(e,255)*255,g:b(t,255)*255,b:b(a,255)*255}}function he(e,t,a){e=b(e,255),t=b(t,255),a=b(a,255);var r=Math.max(e,t,a),n=Math.min(e,t,a),o=0,i=0,s=(r+n)/2;if(r===n)i=0,o=0;else{var d=r-n;switch(i=s>.5?d/(2-r-n):d/(r+n),r){case e:o=(t-a)/d+(t1&&(a-=1),a<1/6?e+(t-e)*(6*a):a<1/2?t:a<2/3?e+(t-e)*(2/3-a)*6:e}function Qe(e,t,a){var r,n,o;if(e=b(e,360),t=b(t,100),a=b(a,100),t===0)n=a,o=a,r=a;else{var i=a<.5?a*(1+t):a+t-a*t,s=2*a-i;r=Z(s,i,e+1/3),n=Z(s,i,e),o=Z(s,i,e-1/3)}return{r:r*255,g:n*255,b:o*255}}function ce(e,t,a){e=b(e,255),t=b(t,255),a=b(a,255);var r=Math.max(e,t,a),n=Math.min(e,t,a),o=0,i=r,s=r-n,d=r===0?0:s/r;if(r===n)o=0;else{switch(r){case e:o=(t-a)/s+(t>16,g:(e&65280)>>8,b:e&255}}var oe={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",goldenrod:"#daa520",gold:"#ffd700",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavenderblush:"#fff0f5",lavender:"#e6e6fa",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};function rt(e){var t={r:0,g:0,b:0},a=1,r=null,n=null,o=null,i=!1,s=!1;return typeof e=="string"&&(e=st(e)),typeof e=="object"&&(S(e.r)&&S(e.g)&&S(e.b)?(t=Je(e.r,e.g,e.b),i=!0,s=String(e.r).substr(-1)==="%"?"prgb":"rgb"):S(e.h)&&S(e.s)&&S(e.v)?(r=O(e.s),n=O(e.v),t=et(e.h,r,n),i=!0,s="hsv"):S(e.h)&&S(e.s)&&S(e.l)&&(r=O(e.s),o=O(e.l),t=Qe(e.h,r,o),i=!0,s="hsl"),Object.prototype.hasOwnProperty.call(e,"a")&&(a=e.a)),a=pe(a),{ok:i,format:e.format||s,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a}}var nt="[-\\+]?\\d+%?",it="[-\\+]?\\d*\\.\\d+%?",L="(?:".concat(it,")|(?:").concat(nt,")"),J="[\\s|\\(]+(".concat(L,")[,|\\s]+(").concat(L,")[,|\\s]+(").concat(L,")\\s*\\)?"),Q="[\\s|\\(]+(".concat(L,")[,|\\s]+(").concat(L,")[,|\\s]+(").concat(L,")[,|\\s]+(").concat(L,")\\s*\\)?"),C={CSS_UNIT:new RegExp(L),rgb:new RegExp("rgb"+J),rgba:new RegExp("rgba"+Q),hsl:new RegExp("hsl"+J),hsla:new RegExp("hsla"+Q),hsv:new RegExp("hsv"+J),hsva:new RegExp("hsva"+Q),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/};function st(e){if(e=e.trim().toLowerCase(),e.length===0)return!1;var t=!1;if(oe[e])e=oe[e],t=!0;else if(e==="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var a=C.rgb.exec(e);return a?{r:a[1],g:a[2],b:a[3]}:(a=C.rgba.exec(e),a?{r:a[1],g:a[2],b:a[3],a:a[4]}:(a=C.hsl.exec(e),a?{h:a[1],s:a[2],l:a[3]}:(a=C.hsla.exec(e),a?{h:a[1],s:a[2],l:a[3],a:a[4]}:(a=C.hsv.exec(e),a?{h:a[1],s:a[2],v:a[3]}:(a=C.hsva.exec(e),a?{h:a[1],s:a[2],v:a[3],a:a[4]}:(a=C.hex8.exec(e),a?{r:w(a[1]),g:w(a[2]),b:w(a[3]),a:ue(a[4]),format:t?"name":"hex8"}:(a=C.hex6.exec(e),a?{r:w(a[1]),g:w(a[2]),b:w(a[3]),format:t?"name":"hex"}:(a=C.hex4.exec(e),a?{r:w(a[1]+a[1]),g:w(a[2]+a[2]),b:w(a[3]+a[3]),a:ue(a[4]+a[4]),format:t?"name":"hex8"}:(a=C.hex3.exec(e),a?{r:w(a[1]+a[1]),g:w(a[2]+a[2]),b:w(a[3]+a[3]),format:t?"name":"hex"}:!1)))))))))}function S(e){return!!C.CSS_UNIT.exec(String(e))}var lt=(function(){function e(t,a){t===void 0&&(t=""),a===void 0&&(a={});var r;if(t instanceof e)return t;typeof t=="number"&&(t=ot(t)),this.originalInput=t;var n=rt(t);this.originalInput=t,this.r=n.r,this.g=n.g,this.b=n.b,this.a=n.a,this.roundA=Math.round(100*this.a)/100,this.format=(r=a.format)!==null&&r!==void 0?r:n.format,this.gradientType=a.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=n.ok}return e.prototype.isDark=function(){return this.getBrightness()<128},e.prototype.isLight=function(){return!this.isDark()},e.prototype.getBrightness=function(){var t=this.toRgb();return(t.r*299+t.g*587+t.b*114)/1e3},e.prototype.getLuminance=function(){var t=this.toRgb(),a,r,n,o=t.r/255,i=t.g/255,s=t.b/255;return o<=.03928?a=o/12.92:a=Math.pow((o+.055)/1.055,2.4),i<=.03928?r=i/12.92:r=Math.pow((i+.055)/1.055,2.4),s<=.03928?n=s/12.92:n=Math.pow((s+.055)/1.055,2.4),.2126*a+.7152*r+.0722*n},e.prototype.getAlpha=function(){return this.a},e.prototype.setAlpha=function(t){return this.a=pe(t),this.roundA=Math.round(100*this.a)/100,this},e.prototype.isMonochrome=function(){var t=this.toHsl().s;return t===0},e.prototype.toHsv=function(){var t=ce(this.r,this.g,this.b);return{h:t.h*360,s:t.s,v:t.v,a:this.a}},e.prototype.toHsvString=function(){var t=ce(this.r,this.g,this.b),a=Math.round(t.h*360),r=Math.round(t.s*100),n=Math.round(t.v*100);return this.a===1?"hsv(".concat(a,", ").concat(r,"%, ").concat(n,"%)"):"hsva(".concat(a,", ").concat(r,"%, ").concat(n,"%, ").concat(this.roundA,")")},e.prototype.toHsl=function(){var t=he(this.r,this.g,this.b);return{h:t.h*360,s:t.s,l:t.l,a:this.a}},e.prototype.toHslString=function(){var t=he(this.r,this.g,this.b),a=Math.round(t.h*360),r=Math.round(t.s*100),n=Math.round(t.l*100);return this.a===1?"hsl(".concat(a,", ").concat(r,"%, ").concat(n,"%)"):"hsla(".concat(a,", ").concat(r,"%, ").concat(n,"%, ").concat(this.roundA,")")},e.prototype.toHex=function(t){return t===void 0&&(t=!1),de(this.r,this.g,this.b,t)},e.prototype.toHexString=function(t){return t===void 0&&(t=!1),"#"+this.toHex(t)},e.prototype.toHex8=function(t){return t===void 0&&(t=!1),tt(this.r,this.g,this.b,this.a,t)},e.prototype.toHex8String=function(t){return t===void 0&&(t=!1),"#"+this.toHex8(t)},e.prototype.toHexShortString=function(t){return t===void 0&&(t=!1),this.a===1?this.toHexString(t):this.toHex8String(t)},e.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},e.prototype.toRgbString=function(){var t=Math.round(this.r),a=Math.round(this.g),r=Math.round(this.b);return this.a===1?"rgb(".concat(t,", ").concat(a,", ").concat(r,")"):"rgba(".concat(t,", ").concat(a,", ").concat(r,", ").concat(this.roundA,")")},e.prototype.toPercentageRgb=function(){var t=function(a){return"".concat(Math.round(b(a,255)*100),"%")};return{r:t(this.r),g:t(this.g),b:t(this.b),a:this.a}},e.prototype.toPercentageRgbString=function(){var t=function(a){return Math.round(b(a,255)*100)};return this.a===1?"rgb(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%)"):"rgba(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%, ").concat(this.roundA,")")},e.prototype.toName=function(){if(this.a===0)return"transparent";if(this.a<1)return!1;for(var t="#"+de(this.r,this.g,this.b,!1),a=0,r=Object.entries(oe);a=0,o=!a&&n&&(t.startsWith("hex")||t==="name");return o?t==="name"&&this.a===0?this.toName():this.toRgbString():(t==="rgb"&&(r=this.toRgbString()),t==="prgb"&&(r=this.toPercentageRgbString()),(t==="hex"||t==="hex6")&&(r=this.toHexString()),t==="hex3"&&(r=this.toHexString(!0)),t==="hex4"&&(r=this.toHex8String(!0)),t==="hex8"&&(r=this.toHex8String()),t==="name"&&(r=this.toName()),t==="hsl"&&(r=this.toHslString()),t==="hsv"&&(r=this.toHsvString()),r||this.toHexString())},e.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},e.prototype.clone=function(){return new e(this.toString())},e.prototype.lighten=function(t){t===void 0&&(t=10);var a=this.toHsl();return a.l+=t/100,a.l=V(a.l),new e(a)},e.prototype.brighten=function(t){t===void 0&&(t=10);var a=this.toRgb();return a.r=Math.max(0,Math.min(255,a.r-Math.round(255*-(t/100)))),a.g=Math.max(0,Math.min(255,a.g-Math.round(255*-(t/100)))),a.b=Math.max(0,Math.min(255,a.b-Math.round(255*-(t/100)))),new e(a)},e.prototype.darken=function(t){t===void 0&&(t=10);var a=this.toHsl();return a.l-=t/100,a.l=V(a.l),new e(a)},e.prototype.tint=function(t){return t===void 0&&(t=10),this.mix("white",t)},e.prototype.shade=function(t){return t===void 0&&(t=10),this.mix("black",t)},e.prototype.desaturate=function(t){t===void 0&&(t=10);var a=this.toHsl();return a.s-=t/100,a.s=V(a.s),new e(a)},e.prototype.saturate=function(t){t===void 0&&(t=10);var a=this.toHsl();return a.s+=t/100,a.s=V(a.s),new e(a)},e.prototype.greyscale=function(){return this.desaturate(100)},e.prototype.spin=function(t){var a=this.toHsl(),r=(a.h+t)%360;return a.h=r<0?360+r:r,new e(a)},e.prototype.mix=function(t,a){a===void 0&&(a=50);var r=this.toRgb(),n=new e(t).toRgb(),o=a/100,i={r:(n.r-r.r)*o+r.r,g:(n.g-r.g)*o+r.g,b:(n.b-r.b)*o+r.b,a:(n.a-r.a)*o+r.a};return new e(i)},e.prototype.analogous=function(t,a){t===void 0&&(t=6),a===void 0&&(a=30);var r=this.toHsl(),n=360/a,o=[this];for(r.h=(r.h-(n*t>>1)+720)%360;--t;)r.h=(r.h+n)%360,o.push(new e(r));return o},e.prototype.complement=function(){var t=this.toHsl();return t.h=(t.h+180)%360,new e(t)},e.prototype.monochromatic=function(t){t===void 0&&(t=6);for(var a=this.toHsv(),r=a.h,n=a.s,o=a.v,i=[],s=1/t;t--;)i.push(new e({h:r,s:n,v:o})),o=(o+s)%1;return i},e.prototype.splitcomplement=function(){var t=this.toHsl(),a=t.h;return[this,new e({h:(a+72)%360,s:t.s,l:t.l}),new e({h:(a+216)%360,s:t.s,l:t.l})]},e.prototype.onBackground=function(t){var a=this.toRgb(),r=new e(t).toRgb(),n=a.a+r.a*(1-a.a);return new e({r:(a.r*a.a+r.r*r.a*(1-a.a))/n,g:(a.g*a.a+r.g*r.a*(1-a.a))/n,b:(a.b*a.a+r.b*r.a*(1-a.a))/n,a:n})},e.prototype.triad=function(){return this.polyad(3)},e.prototype.tetrad=function(){return this.polyad(4)},e.prototype.polyad=function(t){for(var a=this.toHsl(),r=a.h,n=[this],o=360/t,i=1;i0?r=A(e.hex):e&&e.hsv?r=A(e.hsv):e&&e.rgba?r=A(e.rgba):e&&e.rgb?r=A(e.rgb):r=A(e),r&&(r._a===void 0||r._a===null)&&r.setAlpha(a||r.getAlpha());const n=r.toHsl(),o=r.toHsv();return n.s===0&&(o.h=n.h=e.h||e.hsl&&e.hsl.h||t||0),o.v<.0164&&(o.h=e.h||e.hsv&&e.hsv.h||0,o.s=e.s||e.hsv&&e.hsv.s||0),n.l<.01&&(n.h=e.h||e.hsl&&e.hsl.h||0,n.s=e.s||e.hsl&&e.hsl.s||0),{hsl:n,hex:r.toHexString().toUpperCase(),hex8:r.toHex8String().toUpperCase(),rgba:r.toRgb(),hsv:o,oldHue:e.h||t||n.h,source:e.source,a:r.getAlpha()}}var ht={model:{prop:"modelValue",event:"update:modelValue"},props:["modelValue"],data(){return{val:ee(this.modelValue)}},computed:{colors:{get(){return this.val},set(e){this.val=e,this.$emit("update:modelValue",e)}}},watch:{modelValue(e){this.val=ee(e)}},methods:{colorChange(e,t){this.oldHue=this.colors.hsl.h,this.colors=ee(e,t||this.oldHue)},isValidHex(e){return A(e).isValid},simpleCheckForValidColor(e){const t=["r","g","b","a","h","s","l","v"];let a=0,r=0;for(let n=0;nt.toUpperCase())},isTransparent(e){return A(e).getAlpha()===0}}},q={name:"EditableInput",props:{label:String,labelText:String,desc:String,value:[String,Number],max:Number,min:Number,arrowOffset:{type:Number,default:1}},computed:{val:{get(){return this.value},set(e){if(this.max!==void 0&&+e>this.max)this.$refs.input.value=this.max;else return e}},labelId(){return`input__label__${this.label}__${Math.random().toString().slice(2,5)}`},labelSpanText(){return this.labelText||this.label}},methods:{update(e){this.handleChange(e.target.value)},handleChange(e){const t={};t[this.label]=e,t.hex===void 0&&t["#"]===void 0?this.$emit("change",t):e.length>5&&this.$emit("change",t)},handleKeyDown(e){let{val:t}=this;const a=Number(t);if(a){const r=this.arrowOffset||1;e.keyCode===38&&(t=a+r,this.handleChange(t),e.preventDefault()),e.keyCode===40&&(t=a-r,this.handleChange(t),e.preventDefault())}}}};const ct={class:"vc-editable-input"},dt=["aria-labelledby"],ut=["id","for"],pt={class:"vc-input__desc"};function ft(e,t,a,r,n,o){return p(),m("div",ct,[T(l("input",{ref:"input","onUpdate:modelValue":t[0]||(t[0]=i=>o.val=i),"aria-labelledby":o.labelId,class:"vc-input__input",onKeydown:t[1]||(t[1]=(...i)=>o.handleKeyDown&&o.handleKeyDown(...i)),onInput:t[2]||(t[2]=(...i)=>o.update&&o.update(...i))},null,40,dt),[[xe,o.val]]),l("span",{id:o.labelId,for:a.label,class:"vc-input__label"},ae(o.labelSpanText),9,ut),l("span",pt,ae(a.desc),1)])}var gt=".vc-editable-input{position:relative}.vc-input__input{border:0;outline:none;padding:0}.vc-input__label{text-transform:capitalize}";D(gt),q.render=ft,q.__file="src/components/editable-input/editable-input.vue",q.install=N;function te(e,t,a){return ta?a:e:et?t:e}var X={name:"Saturation",props:{value:Object},computed:{colors(){return this.value},bgColor(){return`hsl(${this.colors.hsv.h}, 100%, 50%)`},pointerTop(){return`${-(this.colors.hsv.v*100)+1+100}%`},pointerLeft(){return`${this.colors.hsv.s*100}%`}},methods:{handleChange(e,t){!t&&e.preventDefault();const{container:a}=this.$refs;if(!a)return;const r=a.clientWidth,n=a.clientHeight,o=a.getBoundingClientRect().left+window.pageXOffset,i=a.getBoundingClientRect().top+window.pageYOffset,s=e.pageX||(e.touches?e.touches[0].pageX:0),d=e.pageY||(e.touches?e.touches[0].pageY:0),k=te(s-o,0,r),g=te(d-i,0,n),u=k/r,_=te(-(g/n)+1,0,1);this.onChange({h:this.colors.hsv.h,s:u,v:_,a:this.colors.hsv.a,source:"hsva"})},onChange(e){this.$emit("change",e)},handleMouseDown(e){window.addEventListener("mousemove",this.handleChange),window.addEventListener("mouseup",this.handleChange),window.addEventListener("mouseup",this.handleMouseUp)},handleMouseUp(e){this.unbindEventListeners()},unbindEventListeners(){window.removeEventListener("mousemove",this.handleChange),window.removeEventListener("mouseup",this.handleChange),window.removeEventListener("mouseup",this.handleMouseUp)}}};const vt=l("div",{class:"vc-saturation--white"},null,-1),bt=l("div",{class:"vc-saturation--black"},null,-1),mt=l("div",{class:"vc-saturation-circle"},null,-1),xt=[mt];function wt(e,t,a,r,n,o){return p(),m("div",{ref:"container",class:"vc-saturation",style:E({background:o.bgColor}),onMousedown:t[0]||(t[0]=(...i)=>o.handleMouseDown&&o.handleMouseDown(...i)),onTouchmove:t[1]||(t[1]=(...i)=>o.handleChange&&o.handleChange(...i)),onTouchstart:t[2]||(t[2]=(...i)=>o.handleChange&&o.handleChange(...i))},[vt,bt,l("div",{class:"vc-saturation-pointer",style:E({top:o.pointerTop,left:o.pointerLeft})},xt,4)],36)}var yt=".vc-saturation,.vc-saturation--black,.vc-saturation--white{bottom:0;cursor:pointer;left:0;position:absolute;right:0;top:0}.vc-saturation--white{background:linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.vc-saturation--black{background:linear-gradient(0deg,#000,transparent)}.vc-saturation-pointer{cursor:pointer;position:absolute}.vc-saturation-circle{border-radius:50%;box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);cursor:head;height:4px;transform:translate(-2px,-2px);width:4px}";D(yt),X.render=wt,X.__file="src/components/saturation/saturation.vue",X.install=N;var W={name:"Hue",props:{value:Object,direction:{type:String,default:"horizontal"}},data(){return{oldHue:0,pullDirection:""}},computed:{colors(){return this.value},directionClass(){return{"vc-hue--horizontal":this.direction==="horizontal","vc-hue--vertical":this.direction==="vertical"}},pointerTop(){return this.direction==="vertical"?this.colors.hsl.h===0&&this.pullDirection==="right"?0:`${-(this.colors.hsl.h*100/360)+100}%`:0},pointerLeft(){return this.direction==="vertical"?0:this.colors.hsl.h===0&&this.pullDirection==="right"?"100%":`${this.colors.hsl.h*100/360}%`}},watch:{value:{handler(e,t){const{h:a}=e.hsl;a!==0&&a-this.oldHue>0&&(this.pullDirection="right"),a!==0&&a-this.oldHue<0&&(this.pullDirection="left"),this.oldHue=a},deep:!0,immediate:!0}},methods:{handleChange(e,t){!t&&e.preventDefault();const{container:a}=this.$refs;if(!a)return;const r=a.clientWidth,n=a.clientHeight,o=a.getBoundingClientRect().left+window.pageXOffset,i=a.getBoundingClientRect().top+window.pageYOffset,s=e.pageX||(e.touches?e.touches[0].pageX:0),d=e.pageY||(e.touches?e.touches[0].pageY:0),k=s-o,g=d-i;let u,_;this.direction==="vertical"?(g<0?u=360:g>n?u=0:(_=-(g*100/n)+100,u=360*_/100),this.colors.hsl.h!==u&&this.$emit("change",{h:u,s:this.colors.hsl.s,l:this.colors.hsl.l,a:this.colors.hsl.a,source:"hsl"})):(k<0?u=0:k>r?u=360:(_=k*100/r,u=360*_/100),this.colors.hsl.h!==u&&this.$emit("change",{h:u,s:this.colors.hsl.s,l:this.colors.hsl.l,a:this.colors.hsl.a,source:"hsl"}))},handleMouseDown(e){this.handleChange(e,!0),window.addEventListener("mousemove",this.handleChange),window.addEventListener("mouseup",this.handleChange),window.addEventListener("mouseup",this.handleMouseUp)},handleMouseUp(e){this.unbindEventListeners()},unbindEventListeners(){window.removeEventListener("mousemove",this.handleChange),window.removeEventListener("mouseup",this.handleChange),window.removeEventListener("mouseup",this.handleMouseUp)}}};const kt=["aria-valuenow"],Ct=l("div",{class:"vc-hue-picker"},null,-1),Mt=[Ct];function St(e,t,a,r,n,o){return p(),m("div",{class:Y(["vc-hue",[o.directionClass]])},[l("div",{ref:"container",class:"vc-hue-container",role:"slider","aria-valuenow":o.colors.hsl.h,"aria-valuemin":"0","aria-valuemax":"360",onMousedown:t[0]||(t[0]=(...i)=>o.handleMouseDown&&o.handleMouseDown(...i)),onTouchmove:t[1]||(t[1]=(...i)=>o.handleChange&&o.handleChange(...i)),onTouchstart:t[2]||(t[2]=(...i)=>o.handleChange&&o.handleChange(...i))},[l("div",{class:"vc-hue-pointer",style:E({top:o.pointerTop,left:o.pointerLeft}),role:"presentation"},Mt,4)],40,kt)],2)}var _t=".vc-hue{border-radius:2px;bottom:0;left:0;position:absolute;right:0;top:0}.vc-hue--horizontal{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.vc-hue--vertical{background:linear-gradient(0deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.vc-hue-container{cursor:pointer;height:100%;margin:0 2px;position:relative}.vc-hue-pointer{position:absolute;z-index:2}.vc-hue-picker{background:#fff;border-radius:1px;box-shadow:0 0 2px rgba(0,0,0,.6);cursor:pointer;height:8px;margin-top:1px;transform:translateX(-2px);width:4px}";D(_t),W.render=St,W.__file="src/components/hue/hue.vue",W.install=N;var P={name:"Chrome",components:{Saturation:X,Hue:W,Alpha:j,EdIn:q,Checkboard:z},mixins:[ht],props:{disableAlpha:{type:Boolean,default:!1},disableFields:{type:Boolean,default:!1},format:{type:String,default:"hex"}},data(){return{fieldsIndex:"hex",highlight:!1}},computed:{hsl(){const{h:e,s:t,l:a}=this.colors.hsl;return{h:e.toFixed(),s:`${(t*100).toFixed()}%`,l:`${(a*100).toFixed()}%`}},activeColor(){const{rgba:e}=this.colors;return`rgba(${[e.r,e.g,e.b,e.a].join(",")})`},hasAlpha(){return this.colors.a<1}},watch:{format:{handler(e){this.fieldsIndex=e},immediate:!0}},methods:{childChange(e){this.colorChange(e)},inputChange(e){if(e){if(e.hex)this.isValidHex(e.hex)&&this.colorChange({hex:e.hex,source:"hex"});else if(e.r||e.g||e.b||e.a)this.colorChange({r:e.r||this.colors.rgba.r,g:e.g||this.colors.rgba.g,b:e.b||this.colors.rgba.b,a:e.a||this.colors.rgba.a,source:"rgba"});else if(e.h||e.s||e.l){const t=e.s?e.s.replace("%","")/100:this.colors.hsl.s,a=e.l?e.l.replace("%","")/100:this.colors.hsl.l;this.colorChange({h:e.h||this.colors.hsl.h,s:t,l:a,source:"hsl"})}}},toggleViews(){switch(this.fieldsIndex){case"hex":this.fieldsIndex=`rgb${this.disableAlpha?"":"a"}`;break;case"rgb":case"rgba":this.fieldsIndex=`hsl${this.disableAlpha?"":"a"}`;break;default:this.fieldsIndex="hex";break}this.$emit("update:format",this.fieldsIndex)},showHighlight(){this.highlight=!0},hideHighlight(){this.highlight=!1}}};const Ht={class:"vc-chrome-saturation-wrap"},At={class:"vc-chrome-body"},$t={class:"vc-chrome-controls"},Lt={class:"vc-chrome-color-wrap"},Et=["aria-label"],Rt={class:"vc-chrome-sliders"},Ft={class:"vc-chrome-hue-wrap"},It={key:0,class:"vc-chrome-alpha-wrap"},Dt={key:0,class:"vc-chrome-fields-wrap"},Nt={class:"vc-chrome-fields"},Tt={class:"vc-chrome-field"},zt={class:"vc-chrome-fields"},Bt={class:"vc-chrome-field"},Ut={class:"vc-chrome-field"},Vt={class:"vc-chrome-field"},Ot={key:0,class:"vc-chrome-field"},jt={class:"vc-chrome-fields"},qt={class:"vc-chrome-field"},Xt={class:"vc-chrome-field"},Wt={class:"vc-chrome-field"},Pt={key:0,class:"vc-chrome-field"},Yt={class:"vc-chrome-toggle-icon"},Kt=l("path",{fill:"#333",d:"M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z"},null,-1),Gt=[Kt],Zt={class:"vc-chrome-toggle-icon-highlight"};function Jt(e,t,a,r,n,o){const i=I("Saturation"),s=I("Checkboard"),d=I("Hue"),k=I("Alpha"),g=I("EdIn");return p(),m("div",{role:"application","aria-label":"Chrome color picker",class:Y(["vc-chrome",[a.disableAlpha?"vc-chrome__disable-alpha":""]])},[l("div",Ht,[v(i,{value:e.colors,onChange:o.childChange},null,8,["value","onChange"])]),l("div",At,[l("div",$t,[l("div",Lt,[l("div",{"aria-label":`current color is ${e.colors.hex}`,class:"vc-chrome-active-color",style:E({background:o.activeColor})},null,12,Et),a.disableAlpha?x("v-if",!0):(p(),$(s,{key:0}))]),l("div",Rt,[l("div",Ft,[v(d,{value:e.colors,onChange:o.childChange},null,8,["value","onChange"])]),a.disableAlpha?x("v-if",!0):(p(),m("div",It,[v(k,{value:e.colors,onChange:o.childChange},null,8,["value","onChange"])]))])]),a.disableFields?x("v-if",!0):(p(),m("div",Dt,[T(l("div",Nt,[x(" hex "),l("div",Tt,[o.hasAlpha?x("v-if",!0):(p(),$(g,{key:0,label:"hex",value:e.colors.hex,onChange:o.inputChange},null,8,["value","onChange"])),o.hasAlpha?(p(),$(g,{key:1,label:"hex",value:e.colors.hex8,onChange:o.inputChange},null,8,["value","onChange"])):x("v-if",!0)])],512),[[B,n.fieldsIndex==="hex"]]),T(l("div",zt,[x(" rgba "),l("div",Bt,[v(g,{label:"r",value:e.colors.rgba.r,onChange:o.inputChange},null,8,["value","onChange"])]),l("div",Ut,[v(g,{label:"g",value:e.colors.rgba.g,onChange:o.inputChange},null,8,["value","onChange"])]),l("div",Vt,[v(g,{label:"b",value:e.colors.rgba.b,onChange:o.inputChange},null,8,["value","onChange"])]),a.disableAlpha?x("v-if",!0):(p(),m("div",Ot,[v(g,{label:"a",value:e.colors.a,"arrow-offset":.01,max:1,onChange:o.inputChange},null,8,["value","arrow-offset","onChange"])]))],512),[[B,["rgb","rgba"].includes(n.fieldsIndex)]]),T(l("div",jt,[x(" hsla "),l("div",qt,[v(g,{label:"h",value:o.hsl.h,onChange:o.inputChange},null,8,["value","onChange"])]),l("div",Xt,[v(g,{label:"s",value:o.hsl.s,onChange:o.inputChange},null,8,["value","onChange"])]),l("div",Wt,[v(g,{label:"l",value:o.hsl.l,onChange:o.inputChange},null,8,["value","onChange"])]),a.disableAlpha?x("v-if",!0):(p(),m("div",Pt,[v(g,{label:"a",value:e.colors.a,"arrow-offset":.01,max:1,onChange:o.inputChange},null,8,["value","arrow-offset","onChange"])]))],512),[[B,["hsl","hsla"].includes(n.fieldsIndex)]]),x(" btn "),l("div",{class:"vc-chrome-toggle-btn",role:"button","aria-label":"Change another color definition",onClick:t[3]||(t[3]=(...u)=>o.toggleViews&&o.toggleViews(...u))},[l("div",Yt,[(p(),m("svg",{style:{width:"24px",height:"24px"},viewBox:"0 0 24 24",onMouseover:t[0]||(t[0]=(...u)=>o.showHighlight&&o.showHighlight(...u)),onMouseenter:t[1]||(t[1]=(...u)=>o.showHighlight&&o.showHighlight(...u)),onMouseout:t[2]||(t[2]=(...u)=>o.hideHighlight&&o.hideHighlight(...u))},Gt,32))]),T(l("div",Zt,null,512),[[B,n.highlight]])]),x(" btn ")]))])],2)}var Qt=".vc-chrome{background:#fff;background-color:#fff;border-radius:2px;box-shadow:0 0 2px rgba(0,0,0,.3),0 4px 8px rgba(0,0,0,.3);box-sizing:initial;font-family:Menlo;width:225px}.vc-chrome-controls{display:flex}.vc-chrome-color-wrap{position:relative;width:36px}.vc-chrome-active-color{border-radius:15px;height:30px;overflow:hidden;position:relative;width:30px;z-index:1}.vc-chrome-color-wrap .vc-checkerboard{background-size:auto;border-radius:15px;height:30px;width:30px}.vc-chrome-sliders{flex:1}.vc-chrome-fields-wrap{display:flex;padding-top:16px}.vc-chrome-fields{display:flex;flex:1;margin-left:-6px}.vc-chrome-field{padding-left:6px;width:100%}.vc-chrome-toggle-btn{position:relative;text-align:right;width:32px}.vc-chrome-toggle-icon{cursor:pointer;margin-right:-4px;margin-top:12px;position:relative;z-index:2}.vc-chrome-toggle-icon-highlight{background:#eee;border-radius:4px;height:28px;left:12px;position:absolute;top:10px;width:24px}.vc-chrome-hue-wrap{margin-bottom:8px}.vc-chrome-alpha-wrap,.vc-chrome-hue-wrap{height:10px;position:relative}.vc-chrome-alpha-wrap .vc-alpha-gradient,.vc-chrome-hue-wrap .vc-hue{border-radius:2px}.vc-chrome-alpha-wrap .vc-alpha-picker,.vc-chrome-hue-wrap .vc-hue-picker{background-color:#f8f8f8;border-radius:6px;box-shadow:0 1px 4px 0 rgba(0,0,0,.37);height:12px;transform:translate(-6px,-2px);width:12px}.vc-chrome-body{background-color:#fff;padding:16px 16px 12px}.vc-chrome-saturation-wrap{border-radius:2px 2px 0 0;overflow:hidden;padding-bottom:55%;position:relative;width:100%}.vc-chrome-saturation-wrap .vc-saturation-circle{height:12px;width:12px}.vc-chrome-fields .vc-input__input{border:none;border-radius:2px;box-shadow:inset 0 0 0 1px #dadada;color:#333;font-size:11px;height:21px;text-align:center;width:100%}.vc-chrome-fields .vc-input__label{color:#969696;display:block;font-size:11px;line-height:11px;margin-top:12px;text-align:center;text-transform:uppercase}.vc-chrome__disable-alpha .vc-chrome-active-color{height:18px;width:18px}.vc-chrome__disable-alpha .vc-chrome-color-wrap{width:30px}.vc-chrome__disable-alpha .vc-chrome-hue-wrap{margin-bottom:4px;margin-top:4px}";D(Qt),P.render=Jt,P.__file="src/components/chrome/chrome.vue",P.install=N,De();const ea=["aria-label"],ta={key:0,class:"color-picker__simple"},aa=["aria-label","name","checked","onClick"],oa=["title"],ra=["aria-label","name","checked"],na={key:0,class:"color-picker__navigation"},ia=we({__name:"NcColorPicker",props:re({advancedFields:{type:Boolean},clearable:{type:Boolean},container:{default:"body"},palette:{default:()=>[]},paletteOnly:{type:Boolean}},{modelValue:{required:!0},modelModifiers:{},open:{type:Boolean},openModifiers:{}}),emits:re(["submit","closed"],["update:modelValue","update:open"]),setup(e,{emit:t}){const a=ne(e,"modelValue"),r=ne(e,"open"),n=e,o=t,i=/^#([a-f0-9]{3}|[a-f0-9]{6})$/i,s=Te(),d=ye(!1),k=ke(()=>{let c=n.palette;for(const h of c)if(typeof h=="string"&&!h.match(i)||typeof h=="object"&&!h.color?.match(i)){Le.error("[NcColorPicker] Invalid palette passed",{color:h}),c=[];break}return c.length===0&&(c=n.clearable?[...ie,se,le]:[...ie]),c.map(h=>({color:typeof h=="object"?h.color:h,name:typeof h=="object"&&h.name?h.name:M("A color with a HEX value {hex}",{hex:typeof h=="string"?h:h.color})}))});function g(c){o("submit",a.value),c(),d.value=!1}function u(c){c=typeof c=="string"?c:c.color,n.clearable&&a.value===c?a.value=void 0:a.value=c}function _(c){a.value=c.hex}function fe(c){return ge(c)>.5?se.color:le.color}function ge(c){const[h,H,y]=ve(c);return(.2126*h+.7152*H+.0722*y)/255}function ve(c){const h=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(c);return h?[parseInt(h[1],16),parseInt(h[2],16),parseInt(h[3],16)]:[0,0,0]}return(c,h)=>(p(),$(f(ze),{shown:r.value,"onUpdate:shown":h[3]||(h[3]=H=>r.value=H),container:c.container,"popup-role":"dialog",onApplyHide:h[4]||(h[4]=H=>o("closed"))},{trigger:F(H=>[He(c.$slots,"default",Ae($e(H)),void 0,!0)]),default:F(H=>[l("div",{role:"dialog",class:Y(["color-picker",{"color-picker--advanced-fields":d.value&&c.advancedFields,"color-picker--clearable":c.clearable}]),"aria-modal":"true","aria-label":f(M)("Color picker")},[v(Ce,{name:"slide",mode:"out-in"},{default:F(()=>[d.value?(p(),$(f(P),{key:1,class:"color-picker__advanced","disable-alpha":!0,"disable-fields":!c.advancedFields,"model-value":a.value??"#000000","onUpdate:modelValue":_},null,8,["disable-fields","model-value"])):(p(),m("div",ta,[(p(!0),m(Me,null,Se(k.value,({color:y,name:be},me)=>(p(),m("label",{key:me,class:Y(["color-picker__simple-color-circle",{"color-picker__simple-color-circle--active":y===a.value}]),style:E({backgroundColor:y,color:fe(y)})},[y===a.value?(p(),$(f(U),{key:0,path:f(Ee)},null,8,["path"])):x("",!0),l("input",{type:"radio",class:"hidden-visually","aria-label":be,name:`color-picker-${f(s)}`,checked:y===a.value,onClick:sa=>u(y)},null,8,aa)],6))),128)),c.clearable?(p(),m("label",{key:0,class:"color-picker__clear",title:f(M)("No color")},[v(f(U),{size:a.value?28:34,path:f(Re)},null,8,["size","path"]),l("input",{type:"radio",class:"hidden-visually","aria-label":f(M)("No color"),name:`color-picker-${f(s)}`,checked:!a.value,onClick:h[0]||(h[0]=y=>a.value=void 0)},null,8,ra)],8,oa)):x("",!0)]))]),_:1}),c.paletteOnly?x("",!0):(p(),m("div",na,[d.value?(p(),$(f(K),{key:0,"aria-label":f(M)("Back"),title:f(M)("Back"),variant:"tertiary",onClick:h[1]||(h[1]=y=>d.value=!1)},{icon:F(()=>[v(f(U),{directional:"",path:f(Fe)},null,8,["path"])]),_:1},8,["aria-label","title"])):(p(),$(f(K),{key:1,"aria-label":f(M)("More options"),title:f(M)("More options"),variant:"tertiary",onClick:h[2]||(h[2]=y=>d.value=!0)},{icon:F(()=>[v(f(U),{path:f(Ie)},null,8,["path"])]),_:1},8,["aria-label","title"])),v(f(K),{variant:"primary",onClick:y=>g(H.hide)},{default:F(()=>[_e(ae(f(M)("Choose")),1)]),_:2},1032,["onClick"])]))],10,ea)]),_:3},8,["shown","container"]))}}),pa=Ne(ia,[["__scopeId","data-v-3d24879b"]]);export{pa as N}; +//# sourceMappingURL=NcColorPicker-Kc0JqRtp-G7GArS5K.chunk.mjs.map diff --git a/dist/NcColorPicker-Kc0JqRtp-VtydDeG1.chunk.mjs.license b/dist/NcColorPicker-Kc0JqRtp-G7GArS5K.chunk.mjs.license similarity index 100% rename from dist/NcColorPicker-Kc0JqRtp-VtydDeG1.chunk.mjs.license rename to dist/NcColorPicker-Kc0JqRtp-G7GArS5K.chunk.mjs.license diff --git a/dist/NcColorPicker-Kc0JqRtp-VtydDeG1.chunk.mjs.map b/dist/NcColorPicker-Kc0JqRtp-G7GArS5K.chunk.mjs.map similarity index 99% rename from dist/NcColorPicker-Kc0JqRtp-VtydDeG1.chunk.mjs.map rename to dist/NcColorPicker-Kc0JqRtp-G7GArS5K.chunk.mjs.map index 6a9a9b3b252fc..33efbf994ed3f 100644 --- a/dist/NcColorPicker-Kc0JqRtp-VtydDeG1.chunk.mjs.map +++ b/dist/NcColorPicker-Kc0JqRtp-G7GArS5K.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"NcColorPicker-Kc0JqRtp-VtydDeG1.chunk.mjs","sources":["../node_modules/@ckpack/vue-color/libs/defaultConfig.js","../node_modules/@ckpack/vue-color/libs/style-inject.es-746bb8ed.js","../node_modules/@ckpack/vue-color/libs/utils/compoent.js","../node_modules/@ckpack/vue-color/libs/components/checkboard/index.js","../node_modules/@ckpack/vue-color/libs/components/alpha/index.js","../node_modules/@ctrl/tinycolor/dist/module/util.js","../node_modules/@ctrl/tinycolor/dist/module/conversion.js","../node_modules/@ctrl/tinycolor/dist/module/css-color-names.js","../node_modules/@ctrl/tinycolor/dist/module/format-input.js","../node_modules/@ctrl/tinycolor/dist/module/index.js","../node_modules/@ckpack/vue-color/libs/mixin/color.js","../node_modules/@ckpack/vue-color/libs/components/editable-input/index.js","../node_modules/@ckpack/vue-color/libs/utils/utils.js","../node_modules/@ckpack/vue-color/libs/components/saturation/index.js","../node_modules/@ckpack/vue-color/libs/components/hue/index.js","../node_modules/@ckpack/vue-color/libs/components/chrome/index.js","../node_modules/@nextcloud/vue/dist/chunks/NcColorPicker-Kc0JqRtp.mjs"],"sourcesContent":["const name = 'VueColor';\n// 自定义组件前缀\nconst prefix = '';\nconst cssPrefix = '';\nconst size = 'medium';\n\nexport { cssPrefix, name, prefix, size };\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport { styleInject as s };\n","import { prefix } from '../defaultConfig.js';\n\nconst install = function (app, options) {\n const { componentPrefix = prefix } = options || {};\n app.component(`${componentPrefix}${this.name}`, this);\n};\n\nexport { install };\n","import { openBlock, createElementBlock, normalizeStyle } from 'vue';\nimport { s as styleInject } from '../../style-inject.es-746bb8ed.js';\nimport { install } from '../../utils/compoent.js';\nimport '../../defaultConfig.js';\n\nconst _checkboardCache = {};\n\nvar script = {\n name: 'Checkboard',\n props: {\n size: {\n type: [Number, String],\n default: 8,\n },\n white: {\n type: String,\n default: '#fff',\n },\n grey: {\n type: String,\n default: '#e6e6e6',\n },\n },\n computed: {\n bgStyle() {\n return {\n 'background-image': `url(${getCheckboard(this.white, this.grey, this.size)})`,\n };\n },\n },\n};\n\n/**\n * get base 64 data by canvas\n *\n * @param {String} c1 hex color\n * @param {String} c2 hex color\n * @param {Number} size\n */\n\nfunction renderCheckboard(c1, c2, size) {\n // Dont Render On Server\n if (typeof document === 'undefined')\n return null;\n\n const canvas = document.createElement('canvas');\n canvas.width = canvas.height = size * 2;\n const ctx = canvas.getContext('2d');\n // If no context can be found, return early.\n if (!ctx)\n return null;\n\n ctx.fillStyle = c1;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n ctx.fillStyle = c2;\n ctx.fillRect(0, 0, size, size);\n ctx.translate(size, size);\n ctx.fillRect(0, 0, size, size);\n return canvas.toDataURL();\n}\n\n/**\n * get checkboard base data and cache\n *\n * @param {String} c1 hex color\n * @param {String} c2 hex color\n * @param {Number} size\n */\n\nfunction getCheckboard(c1, c2, size) {\n const key = `${c1},${c2},${size}`;\n\n if (_checkboardCache[key])\n return _checkboardCache[key];\n\n const checkboard = renderCheckboard(c1, c2, size);\n _checkboardCache[key] = checkboard;\n return checkboard;\n}\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return (openBlock(), createElementBlock(\"div\", {\n class: \"vc-checkerboard\",\n style: normalizeStyle($options.bgStyle)\n }, null, 4 /* STYLE */))\n}\n\nvar css_248z = \".vc-checkerboard{background-size:contain;bottom:0;left:0;position:absolute;right:0;top:0}\";\nstyleInject(css_248z);\n\nscript.render = render;\nscript.__file = \"src/components/checkboard/checkboard.vue\";\n\nscript.install = install;\n\nexport { script as default };\n","import script$1 from '../checkboard/index.js';\nimport { resolveComponent, openBlock, createElementBlock, createElementVNode, createVNode, normalizeStyle } from 'vue';\nimport { s as styleInject } from '../../style-inject.es-746bb8ed.js';\nimport { install } from '../../utils/compoent.js';\nimport '../../defaultConfig.js';\n\nvar script = {\n name: 'Alpha',\n components: {\n Checkboard: script$1,\n },\n props: {\n value: Object,\n onChange: Function,\n },\n computed: {\n colors() {\n return this.value;\n },\n gradientColor() {\n const { rgba } = this.colors;\n const rgbStr = [rgba.r, rgba.g, rgba.b].join(',');\n return `linear-gradient(to right, rgba(${rgbStr}, 0) 0%, rgba(${rgbStr}, 1) 100%)`;\n },\n },\n methods: {\n handleChange(e, skip) {\n !skip && e.preventDefault();\n const { container } = this.$refs;\n if (!container) {\n // for some edge cases, container may not exist. see #220\n return;\n }\n const containerWidth = container.clientWidth;\n\n const xOffset = container.getBoundingClientRect().left + window.pageXOffset;\n const pageX = e.pageX || (e.touches ? e.touches[0].pageX : 0);\n const left = pageX - xOffset;\n\n let a;\n if (left < 0)\n a = 0;\n else if (left > containerWidth)\n a = 1;\n else\n a = Math.round(left * 100 / containerWidth) / 100;\n\n if (this.colors.a !== a) {\n this.$emit('change', {\n h: this.colors.hsl.h,\n s: this.colors.hsl.s,\n l: this.colors.hsl.l,\n a,\n source: 'rgba',\n });\n }\n },\n handleMouseDown(e) {\n this.handleChange(e, true);\n window.addEventListener('mousemove', this.handleChange);\n window.addEventListener('mouseup', this.handleMouseUp);\n },\n handleMouseUp() {\n this.unbindEventListeners();\n },\n unbindEventListeners() {\n window.removeEventListener('mousemove', this.handleChange);\n window.removeEventListener('mouseup', this.handleMouseUp);\n },\n },\n};\n\nconst _hoisted_1 = { class: \"vc-alpha\" };\nconst _hoisted_2 = { class: \"vc-alpha-checkboard-wrap\" };\nconst _hoisted_3 = /*#__PURE__*/createElementVNode(\"div\", { class: \"vc-alpha-picker\" }, null, -1 /* HOISTED */);\nconst _hoisted_4 = [\n _hoisted_3\n];\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_Checkboard = resolveComponent(\"Checkboard\");\n\n return (openBlock(), createElementBlock(\"div\", _hoisted_1, [\n createElementVNode(\"div\", _hoisted_2, [\n createVNode(_component_Checkboard)\n ]),\n createElementVNode(\"div\", {\n class: \"vc-alpha-gradient\",\n style: normalizeStyle({ background: $options.gradientColor })\n }, null, 4 /* STYLE */),\n createElementVNode(\"div\", {\n ref: \"container\",\n class: \"vc-alpha-container\",\n onMousedown: _cache[0] || (_cache[0] = (...args) => ($options.handleMouseDown && $options.handleMouseDown(...args))),\n onTouchmove: _cache[1] || (_cache[1] = (...args) => ($options.handleChange && $options.handleChange(...args))),\n onTouchstart: _cache[2] || (_cache[2] = (...args) => ($options.handleChange && $options.handleChange(...args)))\n }, [\n createElementVNode(\"div\", {\n class: \"vc-alpha-pointer\",\n style: normalizeStyle({ left: `${$options.colors.a * 100}%` })\n }, _hoisted_4, 4 /* STYLE */)\n ], 544 /* HYDRATE_EVENTS, NEED_PATCH */)\n ]))\n}\n\nvar css_248z = \".vc-alpha,.vc-alpha-checkboard-wrap{bottom:0;left:0;position:absolute;right:0;top:0}.vc-alpha-checkboard-wrap{overflow:hidden}.vc-alpha-gradient{bottom:0;left:0;position:absolute;right:0;top:0}.vc-alpha-container{cursor:pointer;height:100%;margin:0 3px;position:relative;z-index:2}.vc-alpha-pointer{position:absolute;z-index:2}.vc-alpha-picker{background:#fff;border-radius:1px;box-shadow:0 0 2px rgba(0,0,0,.6);cursor:pointer;height:8px;margin-top:1px;transform:translateX(-2px);width:4px}\";\nstyleInject(css_248z);\n\nscript.render = render;\nscript.__file = \"src/components/alpha/alpha.vue\";\n\nscript.install = install;\n\nexport { script as default };\n","/**\n * Take input from [0, n] and return it as [0, 1]\n * @hidden\n */\nexport function bound01(n, max) {\n if (isOnePointZero(n)) {\n n = '100%';\n }\n var isPercent = isPercentage(n);\n n = max === 360 ? n : Math.min(max, Math.max(0, parseFloat(n)));\n // Automatically convert percentage into number\n if (isPercent) {\n n = parseInt(String(n * max), 10) / 100;\n }\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n // Convert into [0, 1] range if it isn't already\n if (max === 360) {\n // If n is a hue given in degrees,\n // wrap around out-of-range values into [0, 360] range\n // then convert into [0, 1].\n n = (n < 0 ? (n % max) + max : n % max) / parseFloat(String(max));\n }\n else {\n // If n not a hue given in degrees\n // Convert into [0, 1] range if it isn't already.\n n = (n % max) / parseFloat(String(max));\n }\n return n;\n}\n/**\n * Force a number between 0 and 1\n * @hidden\n */\nexport function clamp01(val) {\n return Math.min(1, Math.max(0, val));\n}\n/**\n * Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n * \n * @hidden\n */\nexport function isOnePointZero(n) {\n return typeof n === 'string' && n.indexOf('.') !== -1 && parseFloat(n) === 1;\n}\n/**\n * Check to see if string passed in is a percentage\n * @hidden\n */\nexport function isPercentage(n) {\n return typeof n === 'string' && n.indexOf('%') !== -1;\n}\n/**\n * Return a valid alpha value [0,1] with all invalid values being set to 1\n * @hidden\n */\nexport function boundAlpha(a) {\n a = parseFloat(a);\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n return a;\n}\n/**\n * Replace a decimal with it's percentage value\n * @hidden\n */\nexport function convertToPercentage(n) {\n if (n <= 1) {\n return \"\".concat(Number(n) * 100, \"%\");\n }\n return n;\n}\n/**\n * Force a hex value to have 2 characters\n * @hidden\n */\nexport function pad2(c) {\n return c.length === 1 ? '0' + c : String(c);\n}\n","import { bound01, pad2 } from './util.js';\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n/**\n * Handle bounds / percentage checking to conform to CSS color spec\n * \n * *Assumes:* r, g, b in [0, 255] or [0, 1]\n * *Returns:* { r, g, b } in [0, 255]\n */\nexport function rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255,\n };\n}\n/**\n * Converts an RGB color value to HSL.\n * *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n * *Returns:* { h, s, l } in [0,1]\n */\nexport function rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var s = 0;\n var l = (max + min) / 2;\n if (max === min) {\n s = 0;\n h = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, l: l };\n}\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * (6 * t);\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n/**\n * Converts an HSL color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hslToRgb(h, s, l) {\n var r;\n var g;\n var b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n if (s === 0) {\n // achromatic\n g = l;\n b = l;\n r = l;\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color value to HSV\n *\n * *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n * *Returns:* { h, s, v } in [0,1]\n */\nexport function rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var v = max;\n var d = max - min;\n var s = max === 0 ? 0 : d / max;\n if (max === min) {\n h = 0; // achromatic\n }\n else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n/**\n * Converts an HSV color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n var i = Math.floor(h);\n var f = h - i;\n var p = v * (1 - s);\n var q = v * (1 - f * s);\n var t = v * (1 - (1 - f) * s);\n var mod = i % 6;\n var r = [v, q, p, p, t, v][mod];\n var g = [t, v, v, q, p, p][mod];\n var b = [p, p, t, v, v, q][mod];\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color to hex\n *\n * Assumes r, g, and b are contained in the set [0, 255]\n * Returns a 3 or 6 character hex\n */\nexport function rgbToHex(r, g, b, allow3Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n // Return a 3 character hex if possible\n if (allow3Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color plus alpha transparency to hex\n *\n * Assumes r, g, b are contained in the set [0, 255] and\n * a in [0, 1]. Returns a 4 or 8 character rgba hex\n */\n// eslint-disable-next-line max-params\nexport function rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n pad2(convertDecimalToHex(a)),\n ];\n // Return a 4 character hex if possible\n if (allow4Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1)) &&\n hex[3].startsWith(hex[3].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color to an ARGB Hex8 string\n * Rarely used, but required for \"toFilter()\"\n */\nexport function rgbaToArgbHex(r, g, b, a) {\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n return hex.join('');\n}\n/** Converts a decimal to a hex value */\nexport function convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n/** Converts a hex value to a decimal */\nexport function convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n}\n/** Parse a base-16 hex value into a base-10 integer */\nexport function parseIntFromHex(val) {\n return parseInt(val, 16);\n}\nexport function numberInputToObject(color) {\n return {\n r: color >> 16,\n g: (color & 0xff00) >> 8,\n b: color & 0xff,\n };\n}\n","// https://github.com/bahamas10/css-color-names/blob/master/css-color-names.json\n/**\n * @hidden\n */\nexport var names = {\n aliceblue: '#f0f8ff',\n antiquewhite: '#faebd7',\n aqua: '#00ffff',\n aquamarine: '#7fffd4',\n azure: '#f0ffff',\n beige: '#f5f5dc',\n bisque: '#ffe4c4',\n black: '#000000',\n blanchedalmond: '#ffebcd',\n blue: '#0000ff',\n blueviolet: '#8a2be2',\n brown: '#a52a2a',\n burlywood: '#deb887',\n cadetblue: '#5f9ea0',\n chartreuse: '#7fff00',\n chocolate: '#d2691e',\n coral: '#ff7f50',\n cornflowerblue: '#6495ed',\n cornsilk: '#fff8dc',\n crimson: '#dc143c',\n cyan: '#00ffff',\n darkblue: '#00008b',\n darkcyan: '#008b8b',\n darkgoldenrod: '#b8860b',\n darkgray: '#a9a9a9',\n darkgreen: '#006400',\n darkgrey: '#a9a9a9',\n darkkhaki: '#bdb76b',\n darkmagenta: '#8b008b',\n darkolivegreen: '#556b2f',\n darkorange: '#ff8c00',\n darkorchid: '#9932cc',\n darkred: '#8b0000',\n darksalmon: '#e9967a',\n darkseagreen: '#8fbc8f',\n darkslateblue: '#483d8b',\n darkslategray: '#2f4f4f',\n darkslategrey: '#2f4f4f',\n darkturquoise: '#00ced1',\n darkviolet: '#9400d3',\n deeppink: '#ff1493',\n deepskyblue: '#00bfff',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1e90ff',\n firebrick: '#b22222',\n floralwhite: '#fffaf0',\n forestgreen: '#228b22',\n fuchsia: '#ff00ff',\n gainsboro: '#dcdcdc',\n ghostwhite: '#f8f8ff',\n goldenrod: '#daa520',\n gold: '#ffd700',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#adff2f',\n grey: '#808080',\n honeydew: '#f0fff0',\n hotpink: '#ff69b4',\n indianred: '#cd5c5c',\n indigo: '#4b0082',\n ivory: '#fffff0',\n khaki: '#f0e68c',\n lavenderblush: '#fff0f5',\n lavender: '#e6e6fa',\n lawngreen: '#7cfc00',\n lemonchiffon: '#fffacd',\n lightblue: '#add8e6',\n lightcoral: '#f08080',\n lightcyan: '#e0ffff',\n lightgoldenrodyellow: '#fafad2',\n lightgray: '#d3d3d3',\n lightgreen: '#90ee90',\n lightgrey: '#d3d3d3',\n lightpink: '#ffb6c1',\n lightsalmon: '#ffa07a',\n lightseagreen: '#20b2aa',\n lightskyblue: '#87cefa',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#b0c4de',\n lightyellow: '#ffffe0',\n lime: '#00ff00',\n limegreen: '#32cd32',\n linen: '#faf0e6',\n magenta: '#ff00ff',\n maroon: '#800000',\n mediumaquamarine: '#66cdaa',\n mediumblue: '#0000cd',\n mediumorchid: '#ba55d3',\n mediumpurple: '#9370db',\n mediumseagreen: '#3cb371',\n mediumslateblue: '#7b68ee',\n mediumspringgreen: '#00fa9a',\n mediumturquoise: '#48d1cc',\n mediumvioletred: '#c71585',\n midnightblue: '#191970',\n mintcream: '#f5fffa',\n mistyrose: '#ffe4e1',\n moccasin: '#ffe4b5',\n navajowhite: '#ffdead',\n navy: '#000080',\n oldlace: '#fdf5e6',\n olive: '#808000',\n olivedrab: '#6b8e23',\n orange: '#ffa500',\n orangered: '#ff4500',\n orchid: '#da70d6',\n palegoldenrod: '#eee8aa',\n palegreen: '#98fb98',\n paleturquoise: '#afeeee',\n palevioletred: '#db7093',\n papayawhip: '#ffefd5',\n peachpuff: '#ffdab9',\n peru: '#cd853f',\n pink: '#ffc0cb',\n plum: '#dda0dd',\n powderblue: '#b0e0e6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#ff0000',\n rosybrown: '#bc8f8f',\n royalblue: '#4169e1',\n saddlebrown: '#8b4513',\n salmon: '#fa8072',\n sandybrown: '#f4a460',\n seagreen: '#2e8b57',\n seashell: '#fff5ee',\n sienna: '#a0522d',\n silver: '#c0c0c0',\n skyblue: '#87ceeb',\n slateblue: '#6a5acd',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#fffafa',\n springgreen: '#00ff7f',\n steelblue: '#4682b4',\n tan: '#d2b48c',\n teal: '#008080',\n thistle: '#d8bfd8',\n tomato: '#ff6347',\n turquoise: '#40e0d0',\n violet: '#ee82ee',\n wheat: '#f5deb3',\n white: '#ffffff',\n whitesmoke: '#f5f5f5',\n yellow: '#ffff00',\n yellowgreen: '#9acd32',\n};\n","/* eslint-disable @typescript-eslint/no-redundant-type-constituents */\nimport { convertHexToDecimal, hslToRgb, hsvToRgb, parseIntFromHex, rgbToRgb, } from './conversion.js';\nimport { names } from './css-color-names.js';\nimport { boundAlpha, convertToPercentage } from './util.js';\n/**\n * Given a string or object, convert that input to RGB\n *\n * Possible string inputs:\n * ```\n * \"red\"\n * \"#f00\" or \"f00\"\n * \"#ff0000\" or \"ff0000\"\n * \"#ff000000\" or \"ff000000\"\n * \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n * \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n * \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n * \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n * \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n * \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n * \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n * ```\n */\nexport function inputToRGB(color) {\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n if (typeof color === 'string') {\n color = stringInputToObject(color);\n }\n if (typeof color === 'object') {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === '%' ? 'prgb' : 'rgb';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = 'hsv';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = 'hsl';\n }\n if (Object.prototype.hasOwnProperty.call(color, 'a')) {\n a = color.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a,\n };\n}\n// \nvar CSS_INTEGER = '[-\\\\+]?\\\\d+%?';\n// \nvar CSS_NUMBER = '[-\\\\+]?\\\\d*\\\\.\\\\d+%?';\n// Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\nvar CSS_UNIT = \"(?:\".concat(CSS_NUMBER, \")|(?:\").concat(CSS_INTEGER, \")\");\n// Actual matching.\n// Parentheses and commas are optional, but not required.\n// Whitespace can take the place of commas or opening paren\nvar PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar matchers = {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp('rgb' + PERMISSIVE_MATCH3),\n rgba: new RegExp('rgba' + PERMISSIVE_MATCH4),\n hsl: new RegExp('hsl' + PERMISSIVE_MATCH3),\n hsla: new RegExp('hsla' + PERMISSIVE_MATCH4),\n hsv: new RegExp('hsv' + PERMISSIVE_MATCH3),\n hsva: new RegExp('hsva' + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n};\n/**\n * Permissive string parsing. Take in a number of formats, and output an object\n * based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\n */\nexport function stringInputToObject(color) {\n color = color.trim().toLowerCase();\n if (color.length === 0) {\n return false;\n }\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color === 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: 'name' };\n }\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match = matchers.rgb.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n match = matchers.rgba.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n match = matchers.hsl.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n match = matchers.hsla.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n match = matchers.hsv.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n match = matchers.hsva.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n match = matchers.hex8.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex6.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n match = matchers.hex4.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n a: convertHexToDecimal(match[4] + match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex3.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n return false;\n}\n/**\n * Check to see if it looks like a CSS unit\n * (see `matchers` above for definition).\n */\nexport function isValidCSSUnit(color) {\n return Boolean(matchers.CSS_UNIT.exec(String(color)));\n}\n","import { numberInputToObject, rgbaToHex, rgbToHex, rgbToHsl, rgbToHsv } from './conversion.js';\nimport { names } from './css-color-names.js';\nimport { inputToRGB } from './format-input';\nimport { bound01, boundAlpha, clamp01 } from './util.js';\nvar TinyColor = /** @class */ (function () {\n function TinyColor(color, opts) {\n if (color === void 0) { color = ''; }\n if (opts === void 0) { opts = {}; }\n var _a;\n // If input is already a tinycolor, return itself\n if (color instanceof TinyColor) {\n // eslint-disable-next-line no-constructor-return\n return color;\n }\n if (typeof color === 'number') {\n color = numberInputToObject(color);\n }\n this.originalInput = color;\n var rgb = inputToRGB(color);\n this.originalInput = color;\n this.r = rgb.r;\n this.g = rgb.g;\n this.b = rgb.b;\n this.a = rgb.a;\n this.roundA = Math.round(100 * this.a) / 100;\n this.format = (_a = opts.format) !== null && _a !== void 0 ? _a : rgb.format;\n this.gradientType = opts.gradientType;\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this.r < 1) {\n this.r = Math.round(this.r);\n }\n if (this.g < 1) {\n this.g = Math.round(this.g);\n }\n if (this.b < 1) {\n this.b = Math.round(this.b);\n }\n this.isValid = rgb.ok;\n }\n TinyColor.prototype.isDark = function () {\n return this.getBrightness() < 128;\n };\n TinyColor.prototype.isLight = function () {\n return !this.isDark();\n };\n /**\n * Returns the perceived brightness of the color, from 0-255.\n */\n TinyColor.prototype.getBrightness = function () {\n // http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n };\n /**\n * Returns the perceived luminance of a color, from 0-1.\n */\n TinyColor.prototype.getLuminance = function () {\n // http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var R;\n var G;\n var B;\n var RsRGB = rgb.r / 255;\n var GsRGB = rgb.g / 255;\n var BsRGB = rgb.b / 255;\n if (RsRGB <= 0.03928) {\n R = RsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n R = Math.pow((RsRGB + 0.055) / 1.055, 2.4);\n }\n if (GsRGB <= 0.03928) {\n G = GsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n G = Math.pow((GsRGB + 0.055) / 1.055, 2.4);\n }\n if (BsRGB <= 0.03928) {\n B = BsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n B = Math.pow((BsRGB + 0.055) / 1.055, 2.4);\n }\n return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n };\n /**\n * Returns the alpha value of a color, from 0-1.\n */\n TinyColor.prototype.getAlpha = function () {\n return this.a;\n };\n /**\n * Sets the alpha value on the current color.\n *\n * @param alpha - The new alpha value. The accepted range is 0-1.\n */\n TinyColor.prototype.setAlpha = function (alpha) {\n this.a = boundAlpha(alpha);\n this.roundA = Math.round(100 * this.a) / 100;\n return this;\n };\n /**\n * Returns whether the color is monochrome.\n */\n TinyColor.prototype.isMonochrome = function () {\n var s = this.toHsl().s;\n return s === 0;\n };\n /**\n * Returns the object as a HSVA object.\n */\n TinyColor.prototype.toHsv = function () {\n var hsv = rgbToHsv(this.r, this.g, this.b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this.a };\n };\n /**\n * Returns the hsva values interpolated into a string with the following format:\n * \"hsva(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toHsvString = function () {\n var hsv = rgbToHsv(this.r, this.g, this.b);\n var h = Math.round(hsv.h * 360);\n var s = Math.round(hsv.s * 100);\n var v = Math.round(hsv.v * 100);\n return this.a === 1 ? \"hsv(\".concat(h, \", \").concat(s, \"%, \").concat(v, \"%)\") : \"hsva(\".concat(h, \", \").concat(s, \"%, \").concat(v, \"%, \").concat(this.roundA, \")\");\n };\n /**\n * Returns the object as a HSLA object.\n */\n TinyColor.prototype.toHsl = function () {\n var hsl = rgbToHsl(this.r, this.g, this.b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this.a };\n };\n /**\n * Returns the hsla values interpolated into a string with the following format:\n * \"hsla(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toHslString = function () {\n var hsl = rgbToHsl(this.r, this.g, this.b);\n var h = Math.round(hsl.h * 360);\n var s = Math.round(hsl.s * 100);\n var l = Math.round(hsl.l * 100);\n return this.a === 1 ? \"hsl(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%)\") : \"hsla(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%, \").concat(this.roundA, \")\");\n };\n /**\n * Returns the hex value of the color.\n * @param allow3Char will shorten hex value to 3 char if possible\n */\n TinyColor.prototype.toHex = function (allow3Char) {\n if (allow3Char === void 0) { allow3Char = false; }\n return rgbToHex(this.r, this.g, this.b, allow3Char);\n };\n /**\n * Returns the hex value of the color -with a # prefixed.\n * @param allow3Char will shorten hex value to 3 char if possible\n */\n TinyColor.prototype.toHexString = function (allow3Char) {\n if (allow3Char === void 0) { allow3Char = false; }\n return '#' + this.toHex(allow3Char);\n };\n /**\n * Returns the hex 8 value of the color.\n * @param allow4Char will shorten hex value to 4 char if possible\n */\n TinyColor.prototype.toHex8 = function (allow4Char) {\n if (allow4Char === void 0) { allow4Char = false; }\n return rgbaToHex(this.r, this.g, this.b, this.a, allow4Char);\n };\n /**\n * Returns the hex 8 value of the color -with a # prefixed.\n * @param allow4Char will shorten hex value to 4 char if possible\n */\n TinyColor.prototype.toHex8String = function (allow4Char) {\n if (allow4Char === void 0) { allow4Char = false; }\n return '#' + this.toHex8(allow4Char);\n };\n /**\n * Returns the shorter hex value of the color depends on its alpha -with a # prefixed.\n * @param allowShortChar will shorten hex value to 3 or 4 char if possible\n */\n TinyColor.prototype.toHexShortString = function (allowShortChar) {\n if (allowShortChar === void 0) { allowShortChar = false; }\n return this.a === 1 ? this.toHexString(allowShortChar) : this.toHex8String(allowShortChar);\n };\n /**\n * Returns the object as a RGBA object.\n */\n TinyColor.prototype.toRgb = function () {\n return {\n r: Math.round(this.r),\n g: Math.round(this.g),\n b: Math.round(this.b),\n a: this.a,\n };\n };\n /**\n * Returns the RGBA values interpolated into a string with the following format:\n * \"RGBA(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toRgbString = function () {\n var r = Math.round(this.r);\n var g = Math.round(this.g);\n var b = Math.round(this.b);\n return this.a === 1 ? \"rgb(\".concat(r, \", \").concat(g, \", \").concat(b, \")\") : \"rgba(\".concat(r, \", \").concat(g, \", \").concat(b, \", \").concat(this.roundA, \")\");\n };\n /**\n * Returns the object as a RGBA object.\n */\n TinyColor.prototype.toPercentageRgb = function () {\n var fmt = function (x) { return \"\".concat(Math.round(bound01(x, 255) * 100), \"%\"); };\n return {\n r: fmt(this.r),\n g: fmt(this.g),\n b: fmt(this.b),\n a: this.a,\n };\n };\n /**\n * Returns the RGBA relative values interpolated into a string\n */\n TinyColor.prototype.toPercentageRgbString = function () {\n var rnd = function (x) { return Math.round(bound01(x, 255) * 100); };\n return this.a === 1\n ? \"rgb(\".concat(rnd(this.r), \"%, \").concat(rnd(this.g), \"%, \").concat(rnd(this.b), \"%)\")\n : \"rgba(\".concat(rnd(this.r), \"%, \").concat(rnd(this.g), \"%, \").concat(rnd(this.b), \"%, \").concat(this.roundA, \")\");\n };\n /**\n * The 'real' name of the color -if there is one.\n */\n TinyColor.prototype.toName = function () {\n if (this.a === 0) {\n return 'transparent';\n }\n if (this.a < 1) {\n return false;\n }\n var hex = '#' + rgbToHex(this.r, this.g, this.b, false);\n for (var _i = 0, _a = Object.entries(names); _i < _a.length; _i++) {\n var _b = _a[_i], key = _b[0], value = _b[1];\n if (hex === value) {\n return key;\n }\n }\n return false;\n };\n TinyColor.prototype.toString = function (format) {\n var formatSet = Boolean(format);\n format = format !== null && format !== void 0 ? format : this.format;\n var formattedString = false;\n var hasAlpha = this.a < 1 && this.a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format.startsWith('hex') || format === 'name');\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === 'name' && this.a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === 'rgb') {\n formattedString = this.toRgbString();\n }\n if (format === 'prgb') {\n formattedString = this.toPercentageRgbString();\n }\n if (format === 'hex' || format === 'hex6') {\n formattedString = this.toHexString();\n }\n if (format === 'hex3') {\n formattedString = this.toHexString(true);\n }\n if (format === 'hex4') {\n formattedString = this.toHex8String(true);\n }\n if (format === 'hex8') {\n formattedString = this.toHex8String();\n }\n if (format === 'name') {\n formattedString = this.toName();\n }\n if (format === 'hsl') {\n formattedString = this.toHslString();\n }\n if (format === 'hsv') {\n formattedString = this.toHsvString();\n }\n return formattedString || this.toHexString();\n };\n TinyColor.prototype.toNumber = function () {\n return (Math.round(this.r) << 16) + (Math.round(this.g) << 8) + Math.round(this.b);\n };\n TinyColor.prototype.clone = function () {\n return new TinyColor(this.toString());\n };\n /**\n * Lighten the color a given amount. Providing 100 will always return white.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.lighten = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return new TinyColor(hsl);\n };\n /**\n * Brighten the color a given amount, from 0 to 100.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.brighten = function (amount) {\n if (amount === void 0) { amount = 10; }\n var rgb = this.toRgb();\n rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100))));\n rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100))));\n rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100))));\n return new TinyColor(rgb);\n };\n /**\n * Darken the color a given amount, from 0 to 100.\n * Providing 100 will always return black.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.darken = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return new TinyColor(hsl);\n };\n /**\n * Mix the color with pure white, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return white.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.tint = function (amount) {\n if (amount === void 0) { amount = 10; }\n return this.mix('white', amount);\n };\n /**\n * Mix the color with pure black, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return black.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.shade = function (amount) {\n if (amount === void 0) { amount = 10; }\n return this.mix('black', amount);\n };\n /**\n * Desaturate the color a given amount, from 0 to 100.\n * Providing 100 will is the same as calling greyscale\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.desaturate = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return new TinyColor(hsl);\n };\n /**\n * Saturate the color a given amount, from 0 to 100.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.saturate = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return new TinyColor(hsl);\n };\n /**\n * Completely desaturates a color into greyscale.\n * Same as calling `desaturate(100)`\n */\n TinyColor.prototype.greyscale = function () {\n return this.desaturate(100);\n };\n /**\n * Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n * Values outside of this range will be wrapped into this range.\n */\n TinyColor.prototype.spin = function (amount) {\n var hsl = this.toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return new TinyColor(hsl);\n };\n /**\n * Mix the current color a given amount with another color, from 0 to 100.\n * 0 means no mixing (return current color).\n */\n TinyColor.prototype.mix = function (color, amount) {\n if (amount === void 0) { amount = 50; }\n var rgb1 = this.toRgb();\n var rgb2 = new TinyColor(color).toRgb();\n var p = amount / 100;\n var rgba = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b,\n a: (rgb2.a - rgb1.a) * p + rgb1.a,\n };\n return new TinyColor(rgba);\n };\n TinyColor.prototype.analogous = function (results, slices) {\n if (results === void 0) { results = 6; }\n if (slices === void 0) { slices = 30; }\n var hsl = this.toHsl();\n var part = 360 / slices;\n var ret = [this];\n for (hsl.h = (hsl.h - ((part * results) >> 1) + 720) % 360; --results;) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(new TinyColor(hsl));\n }\n return ret;\n };\n /**\n * taken from https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js\n */\n TinyColor.prototype.complement = function () {\n var hsl = this.toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return new TinyColor(hsl);\n };\n TinyColor.prototype.monochromatic = function (results) {\n if (results === void 0) { results = 6; }\n var hsv = this.toHsv();\n var h = hsv.h;\n var s = hsv.s;\n var v = hsv.v;\n var res = [];\n var modification = 1 / results;\n while (results--) {\n res.push(new TinyColor({ h: h, s: s, v: v }));\n v = (v + modification) % 1;\n }\n return res;\n };\n TinyColor.prototype.splitcomplement = function () {\n var hsl = this.toHsl();\n var h = hsl.h;\n return [\n this,\n new TinyColor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l }),\n new TinyColor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l }),\n ];\n };\n /**\n * Compute how the color would appear on a background\n */\n TinyColor.prototype.onBackground = function (background) {\n var fg = this.toRgb();\n var bg = new TinyColor(background).toRgb();\n var alpha = fg.a + bg.a * (1 - fg.a);\n return new TinyColor({\n r: (fg.r * fg.a + bg.r * bg.a * (1 - fg.a)) / alpha,\n g: (fg.g * fg.a + bg.g * bg.a * (1 - fg.a)) / alpha,\n b: (fg.b * fg.a + bg.b * bg.a * (1 - fg.a)) / alpha,\n a: alpha,\n });\n };\n /**\n * Alias for `polyad(3)`\n */\n TinyColor.prototype.triad = function () {\n return this.polyad(3);\n };\n /**\n * Alias for `polyad(4)`\n */\n TinyColor.prototype.tetrad = function () {\n return this.polyad(4);\n };\n /**\n * Get polyad colors, like (for 1, 2, 3, 4, 5, 6, 7, 8, etc...)\n * monad, dyad, triad, tetrad, pentad, hexad, heptad, octad, etc...\n */\n TinyColor.prototype.polyad = function (n) {\n var hsl = this.toHsl();\n var h = hsl.h;\n var result = [this];\n var increment = 360 / n;\n for (var i = 1; i < n; i++) {\n result.push(new TinyColor({ h: (h + i * increment) % 360, s: hsl.s, l: hsl.l }));\n }\n return result;\n };\n /**\n * compare color vs current color\n */\n TinyColor.prototype.equals = function (color) {\n return this.toRgbString() === new TinyColor(color).toRgbString();\n };\n return TinyColor;\n}());\nexport { TinyColor };\n// kept for backwards compatability with v1\nexport function tinycolor(color, opts) {\n if (color === void 0) { color = ''; }\n if (opts === void 0) { opts = {}; }\n return new TinyColor(color, opts);\n}\n","import { TinyColor } from '@ctrl/tinycolor';\n\nfunction tinycolor(...args) {\n return new TinyColor(...args);\n}\n\nfunction _colorChange(data, oldHue) {\n const alpha = data && data.a;\n let color;\n\n // hsl is better than hex between conversions\n if (data && data.hsl)\n color = tinycolor(data.hsl);\n else if (data && data.hex && data.hex.length > 0)\n color = tinycolor(data.hex);\n else if (data && data.hsv)\n color = tinycolor(data.hsv);\n else if (data && data.rgba)\n color = tinycolor(data.rgba);\n else if (data && data.rgb)\n color = tinycolor(data.rgb);\n else\n color = tinycolor(data);\n\n if (color && (color._a === undefined || color._a === null))\n color.setAlpha(alpha || color.getAlpha());\n\n const hsl = color.toHsl();\n const hsv = color.toHsv();\n\n if (hsl.s === 0)\n hsv.h = hsl.h = data.h || (data.hsl && data.hsl.h) || oldHue || 0;\n\n /* --- comment this block to fix #109, may cause #25 again --- */\n // when the hsv.v is less than 0.0164 (base on test)\n // because of possible loss of precision\n // the result of hue and saturation would be miscalculated\n if (hsv.v < 0.0164) {\n hsv.h = data.h || (data.hsv && data.hsv.h) || 0;\n hsv.s = data.s || (data.hsv && data.hsv.s) || 0;\n }\n\n if (hsl.l < 0.01) {\n hsl.h = data.h || (data.hsl && data.hsl.h) || 0;\n hsl.s = data.s || (data.hsl && data.hsl.s) || 0;\n }\n /* ------ */\n\n return {\n hsl,\n hex: color.toHexString().toUpperCase(),\n hex8: color.toHex8String().toUpperCase(),\n rgba: color.toRgb(),\n hsv,\n oldHue: data.h || oldHue || hsl.h,\n source: data.source,\n a: color.getAlpha(),\n };\n}\n\nvar colorMixin = {\n model: {\n prop: 'modelValue',\n event: 'update:modelValue',\n },\n props: ['modelValue'],\n data() {\n return {\n val: _colorChange(this.modelValue),\n };\n },\n computed: {\n colors: {\n get() {\n return this.val;\n },\n set(newVal) {\n this.val = newVal;\n this.$emit('update:modelValue', newVal);\n },\n },\n },\n watch: {\n modelValue(newVal) {\n this.val = _colorChange(newVal);\n },\n },\n methods: {\n colorChange(data, oldHue) {\n this.oldHue = this.colors.hsl.h;\n this.colors = _colorChange(data, oldHue || this.oldHue);\n },\n isValidHex(hex) {\n return tinycolor(hex).isValid;\n },\n simpleCheckForValidColor(data) {\n const keysToCheck = ['r', 'g', 'b', 'a', 'h', 's', 'l', 'v'];\n let checked = 0;\n let passed = 0;\n\n for (let i = 0; i < keysToCheck.length; i++) {\n const letter = keysToCheck[i];\n if (data[letter]) {\n checked++;\n if (!isNaN(data[letter]))\n passed++;\n }\n }\n\n if (checked === passed)\n return data;\n },\n paletteUpperCase(palette) {\n return palette.map(c => c.toUpperCase());\n },\n isTransparent(color) {\n return tinycolor(color).getAlpha() === 0;\n },\n },\n};\n\nexport { colorMixin as default };\n","import { openBlock, createElementBlock, withDirectives, createElementVNode, vModelText, toDisplayString } from 'vue';\nimport { s as styleInject } from '../../style-inject.es-746bb8ed.js';\nimport { install } from '../../utils/compoent.js';\nimport '../../defaultConfig.js';\n\nvar script = {\n name: 'EditableInput',\n props: {\n label: String,\n labelText: String,\n desc: String,\n value: [String, Number],\n max: Number,\n min: Number,\n arrowOffset: {\n type: Number,\n default: 1,\n },\n },\n computed: {\n val: {\n get() {\n return this.value;\n },\n set(v) {\n // TODO: min\n if (!(this.max === undefined) && +v > this.max)\n this.$refs.input.value = this.max;\n else\n return v;\n },\n },\n labelId() {\n return `input__label__${this.label}__${Math.random().toString().slice(2, 5)}`;\n },\n labelSpanText() {\n return this.labelText || this.label;\n },\n },\n methods: {\n update(e) {\n this.handleChange(e.target.value);\n },\n handleChange(newVal) {\n const data = {};\n data[this.label] = newVal;\n if (data.hex === undefined && data['#'] === undefined)\n this.$emit('change', data);\n else if (newVal.length > 5)\n this.$emit('change', data);\n },\n // **** unused\n // handleBlur (e) {\n // console.log(e)\n // },\n handleKeyDown(e) {\n let { val } = this;\n const number = Number(val);\n\n if (number) {\n const amount = this.arrowOffset || 1;\n\n // Up\n if (e.keyCode === 38) {\n val = number + amount;\n this.handleChange(val);\n e.preventDefault();\n }\n\n // Down\n if (e.keyCode === 40) {\n val = number - amount;\n this.handleChange(val);\n e.preventDefault();\n }\n }\n },\n // **** unused\n // handleDrag (e) {\n // console.log(e)\n // },\n // handleMouseDown (e) {\n // console.log(e)\n // }\n },\n};\n\nconst _hoisted_1 = { class: \"vc-editable-input\" };\nconst _hoisted_2 = [\"aria-labelledby\"];\nconst _hoisted_3 = [\"id\", \"for\"];\nconst _hoisted_4 = { class: \"vc-input__desc\" };\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return (openBlock(), createElementBlock(\"div\", _hoisted_1, [\n withDirectives(createElementVNode(\"input\", {\n ref: \"input\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => (($options.val) = $event)),\n \"aria-labelledby\": $options.labelId,\n class: \"vc-input__input\",\n onKeydown: _cache[1] || (_cache[1] = (...args) => ($options.handleKeyDown && $options.handleKeyDown(...args))),\n onInput: _cache[2] || (_cache[2] = (...args) => ($options.update && $options.update(...args)))\n }, null, 40 /* PROPS, HYDRATE_EVENTS */, _hoisted_2), [\n [vModelText, $options.val]\n ]),\n createElementVNode(\"span\", {\n id: $options.labelId,\n for: $props.label,\n class: \"vc-input__label\"\n }, toDisplayString($options.labelSpanText), 9 /* TEXT, PROPS */, _hoisted_3),\n createElementVNode(\"span\", _hoisted_4, toDisplayString($props.desc), 1 /* TEXT */)\n ]))\n}\n\nvar css_248z = \".vc-editable-input{position:relative}.vc-input__input{border:0;outline:none;padding:0}.vc-input__label{text-transform:capitalize}\";\nstyleInject(css_248z);\n\nscript.render = render;\nscript.__file = \"src/components/editable-input/editable-input.vue\";\n\nscript.install = install;\n\nexport { script as default };\n","function clamp(value, min, max) {\n return min < max\n ? (value < min ? min : value > max ? max : value)\n : (value < max ? max : value > min ? min : value);\n}\n\nexport { clamp };\n","import { clamp } from '../../utils/utils.js';\nimport { openBlock, createElementBlock, normalizeStyle, createElementVNode } from 'vue';\nimport { s as styleInject } from '../../style-inject.es-746bb8ed.js';\nimport { install } from '../../utils/compoent.js';\nimport '../../defaultConfig.js';\n\nvar script = {\n name: 'Saturation',\n props: {\n value: Object,\n },\n computed: {\n colors() {\n return this.value;\n },\n bgColor() {\n return `hsl(${this.colors.hsv.h}, 100%, 50%)`;\n },\n pointerTop() {\n return `${(-(this.colors.hsv.v * 100) + 1) + 100}%`;\n },\n pointerLeft() {\n return `${this.colors.hsv.s * 100}%`;\n },\n },\n methods: {\n handleChange(e, skip) {\n !skip && e.preventDefault();\n const { container } = this.$refs;\n if (!container) {\n // for some edge cases, container may not exist. see #220\n return;\n }\n const containerWidth = container.clientWidth;\n const containerHeight = container.clientHeight;\n\n const xOffset = container.getBoundingClientRect().left + window.pageXOffset;\n const yOffset = container.getBoundingClientRect().top + window.pageYOffset;\n const pageX = e.pageX || (e.touches ? e.touches[0].pageX : 0);\n const pageY = e.pageY || (e.touches ? e.touches[0].pageY : 0);\n const left = clamp(pageX - xOffset, 0, containerWidth);\n const top = clamp(pageY - yOffset, 0, containerHeight);\n const saturation = left / containerWidth;\n const bright = clamp(-(top / containerHeight) + 1, 0, 1);\n\n this.onChange({\n h: this.colors.hsv.h,\n s: saturation,\n v: bright,\n a: this.colors.hsv.a,\n source: 'hsva',\n });\n },\n onChange(param) {\n this.$emit('change', param);\n },\n handleMouseDown(e) {\n // this.handleChange(e, true)\n window.addEventListener('mousemove', this.handleChange);\n window.addEventListener('mouseup', this.handleChange);\n window.addEventListener('mouseup', this.handleMouseUp);\n },\n handleMouseUp(e) {\n this.unbindEventListeners();\n },\n unbindEventListeners() {\n window.removeEventListener('mousemove', this.handleChange);\n window.removeEventListener('mouseup', this.handleChange);\n window.removeEventListener('mouseup', this.handleMouseUp);\n },\n },\n};\n\nconst _hoisted_1 = /*#__PURE__*/createElementVNode(\"div\", { class: \"vc-saturation--white\" }, null, -1 /* HOISTED */);\nconst _hoisted_2 = /*#__PURE__*/createElementVNode(\"div\", { class: \"vc-saturation--black\" }, null, -1 /* HOISTED */);\nconst _hoisted_3 = /*#__PURE__*/createElementVNode(\"div\", { class: \"vc-saturation-circle\" }, null, -1 /* HOISTED */);\nconst _hoisted_4 = [\n _hoisted_3\n];\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return (openBlock(), createElementBlock(\"div\", {\n ref: \"container\",\n class: \"vc-saturation\",\n style: normalizeStyle({ background: $options.bgColor }),\n onMousedown: _cache[0] || (_cache[0] = (...args) => ($options.handleMouseDown && $options.handleMouseDown(...args))),\n onTouchmove: _cache[1] || (_cache[1] = (...args) => ($options.handleChange && $options.handleChange(...args))),\n onTouchstart: _cache[2] || (_cache[2] = (...args) => ($options.handleChange && $options.handleChange(...args)))\n }, [\n _hoisted_1,\n _hoisted_2,\n createElementVNode(\"div\", {\n class: \"vc-saturation-pointer\",\n style: normalizeStyle({ top: $options.pointerTop, left: $options.pointerLeft })\n }, _hoisted_4, 4 /* STYLE */)\n ], 36 /* STYLE, HYDRATE_EVENTS */))\n}\n\nvar css_248z = \".vc-saturation,.vc-saturation--black,.vc-saturation--white{bottom:0;cursor:pointer;left:0;position:absolute;right:0;top:0}.vc-saturation--white{background:linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.vc-saturation--black{background:linear-gradient(0deg,#000,transparent)}.vc-saturation-pointer{cursor:pointer;position:absolute}.vc-saturation-circle{border-radius:50%;box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);cursor:head;height:4px;transform:translate(-2px,-2px);width:4px}\";\nstyleInject(css_248z);\n\nscript.render = render;\nscript.__file = \"src/components/saturation/saturation.vue\";\n\nscript.install = install;\n\nexport { script as default };\n","import { openBlock, createElementBlock, normalizeClass, createElementVNode, normalizeStyle } from 'vue';\nimport { s as styleInject } from '../../style-inject.es-746bb8ed.js';\nimport { install } from '../../utils/compoent.js';\nimport '../../defaultConfig.js';\n\nvar script = {\n name: 'Hue',\n props: {\n value: Object,\n direction: {\n type: String,\n // [horizontal | vertical]\n default: 'horizontal',\n },\n },\n data() {\n return {\n oldHue: 0,\n pullDirection: '',\n };\n },\n computed: {\n colors() {\n return this.value;\n },\n directionClass() {\n return {\n 'vc-hue--horizontal': this.direction === 'horizontal',\n 'vc-hue--vertical': this.direction === 'vertical',\n };\n },\n pointerTop() {\n if (this.direction === 'vertical') {\n if (this.colors.hsl.h === 0 && this.pullDirection === 'right')\n return 0;\n return `${-((this.colors.hsl.h * 100) / 360) + 100}%`;\n }\n return 0;\n },\n pointerLeft() {\n if (this.direction === 'vertical')\n return 0;\n\n if (this.colors.hsl.h === 0 && this.pullDirection === 'right')\n return '100%';\n return `${(this.colors.hsl.h * 100) / 360}%`;\n },\n },\n watch: {\n value: {\n handler(value, oldVal) {\n const { h } = value.hsl;\n if (h !== 0 && h - this.oldHue > 0)\n this.pullDirection = 'right';\n if (h !== 0 && h - this.oldHue < 0)\n this.pullDirection = 'left';\n this.oldHue = h;\n },\n deep: true,\n immediate: true,\n },\n },\n methods: {\n handleChange(e, skip) {\n !skip && e.preventDefault();\n\n const { container } = this.$refs;\n if (!container) {\n // for some edge cases, container may not exist. see #220\n return;\n }\n const containerWidth = container.clientWidth;\n const containerHeight = container.clientHeight;\n\n const xOffset = container.getBoundingClientRect().left + window.pageXOffset;\n const yOffset = container.getBoundingClientRect().top + window.pageYOffset;\n const pageX = e.pageX || (e.touches ? e.touches[0].pageX : 0);\n const pageY = e.pageY || (e.touches ? e.touches[0].pageY : 0);\n const left = pageX - xOffset;\n const top = pageY - yOffset;\n\n let h;\n let percent;\n\n if (this.direction === 'vertical') {\n if (top < 0) {\n h = 360;\n }\n else if (top > containerHeight) {\n h = 0;\n }\n else {\n percent = -(top * 100 / containerHeight) + 100;\n h = (360 * percent / 100);\n }\n\n if (this.colors.hsl.h !== h) {\n this.$emit('change', {\n h,\n s: this.colors.hsl.s,\n l: this.colors.hsl.l,\n a: this.colors.hsl.a,\n source: 'hsl',\n });\n }\n }\n else {\n if (left < 0) {\n h = 0;\n }\n else if (left > containerWidth) {\n h = 360;\n }\n else {\n percent = left * 100 / containerWidth;\n h = (360 * percent / 100);\n }\n\n if (this.colors.hsl.h !== h) {\n this.$emit('change', {\n h,\n s: this.colors.hsl.s,\n l: this.colors.hsl.l,\n a: this.colors.hsl.a,\n source: 'hsl',\n });\n }\n }\n },\n handleMouseDown(e) {\n this.handleChange(e, true);\n window.addEventListener('mousemove', this.handleChange);\n window.addEventListener('mouseup', this.handleChange);\n window.addEventListener('mouseup', this.handleMouseUp);\n },\n handleMouseUp(e) {\n this.unbindEventListeners();\n },\n unbindEventListeners() {\n window.removeEventListener('mousemove', this.handleChange);\n window.removeEventListener('mouseup', this.handleChange);\n window.removeEventListener('mouseup', this.handleMouseUp);\n },\n },\n};\n\nconst _hoisted_1 = [\"aria-valuenow\"];\nconst _hoisted_2 = /*#__PURE__*/createElementVNode(\"div\", { class: \"vc-hue-picker\" }, null, -1 /* HOISTED */);\nconst _hoisted_3 = [\n _hoisted_2\n];\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return (openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"vc-hue\", [$options.directionClass]])\n }, [\n createElementVNode(\"div\", {\n ref: \"container\",\n class: \"vc-hue-container\",\n role: \"slider\",\n \"aria-valuenow\": $options.colors.hsl.h,\n \"aria-valuemin\": \"0\",\n \"aria-valuemax\": \"360\",\n onMousedown: _cache[0] || (_cache[0] = (...args) => ($options.handleMouseDown && $options.handleMouseDown(...args))),\n onTouchmove: _cache[1] || (_cache[1] = (...args) => ($options.handleChange && $options.handleChange(...args))),\n onTouchstart: _cache[2] || (_cache[2] = (...args) => ($options.handleChange && $options.handleChange(...args)))\n }, [\n createElementVNode(\"div\", {\n class: \"vc-hue-pointer\",\n style: normalizeStyle({ top: $options.pointerTop, left: $options.pointerLeft }),\n role: \"presentation\"\n }, _hoisted_3, 4 /* STYLE */)\n ], 40 /* PROPS, HYDRATE_EVENTS */, _hoisted_1)\n ], 2 /* CLASS */))\n}\n\nvar css_248z = \".vc-hue{border-radius:2px;bottom:0;left:0;position:absolute;right:0;top:0}.vc-hue--horizontal{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.vc-hue--vertical{background:linear-gradient(0deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.vc-hue-container{cursor:pointer;height:100%;margin:0 2px;position:relative}.vc-hue-pointer{position:absolute;z-index:2}.vc-hue-picker{background:#fff;border-radius:1px;box-shadow:0 0 2px rgba(0,0,0,.6);cursor:pointer;height:8px;margin-top:1px;transform:translateX(-2px);width:4px}\";\nstyleInject(css_248z);\n\nscript.render = render;\nscript.__file = \"src/components/hue/hue.vue\";\n\nscript.install = install;\n\nexport { script as default };\n","import colorMixin from '../../mixin/color.js';\nimport script$4 from '../editable-input/index.js';\nimport script$1 from '../saturation/index.js';\nimport script$2 from '../hue/index.js';\nimport script$3 from '../alpha/index.js';\nimport script$5 from '../checkboard/index.js';\nimport { resolveComponent, openBlock, createElementBlock, normalizeClass, createElementVNode, createVNode, normalizeStyle, createBlock, createCommentVNode, withDirectives, vShow } from 'vue';\nimport { s as styleInject } from '../../style-inject.es-746bb8ed.js';\nimport { install } from '../../utils/compoent.js';\nimport '@ctrl/tinycolor';\nimport '../../utils/utils.js';\nimport '../../defaultConfig.js';\n\nvar script = {\n name: 'Chrome',\n components: {\n Saturation: script$1,\n Hue: script$2,\n Alpha: script$3,\n EdIn: script$4,\n Checkboard: script$5,\n },\n mixins: [colorMixin],\n props: {\n disableAlpha: {\n type: Boolean,\n default: false,\n },\n disableFields: {\n type: Boolean,\n default: false,\n },\n format: {\n type: String,\n default: 'hex',\n },\n },\n data() {\n return {\n fieldsIndex: 'hex',\n highlight: false,\n };\n },\n computed: {\n hsl() {\n const { h, s, l } = this.colors.hsl;\n return {\n h: h.toFixed(),\n s: `${(s * 100).toFixed()}%`,\n l: `${(l * 100).toFixed()}%`,\n };\n },\n activeColor() {\n const { rgba } = this.colors;\n return `rgba(${[rgba.r, rgba.g, rgba.b, rgba.a].join(',')})`;\n },\n hasAlpha() {\n return this.colors.a < 1;\n },\n },\n watch: {\n format: {\n handler(val) {\n this.fieldsIndex = val;\n },\n immediate: true,\n },\n },\n methods: {\n childChange(data) {\n this.colorChange(data);\n },\n inputChange(data) {\n if (!data)\n return;\n\n if (data.hex) {\n this.isValidHex(data.hex) && this.colorChange({\n hex: data.hex,\n source: 'hex',\n });\n }\n else if (data.r || data.g || data.b || data.a) {\n this.colorChange({\n r: data.r || this.colors.rgba.r,\n g: data.g || this.colors.rgba.g,\n b: data.b || this.colors.rgba.b,\n a: data.a || this.colors.rgba.a,\n source: 'rgba',\n });\n }\n else if (data.h || data.s || data.l) {\n const s = data.s ? (data.s.replace('%', '') / 100) : this.colors.hsl.s;\n const l = data.l ? (data.l.replace('%', '') / 100) : this.colors.hsl.l;\n\n this.colorChange({\n h: data.h || this.colors.hsl.h,\n s,\n l,\n source: 'hsl',\n });\n }\n },\n toggleViews() {\n switch (this.fieldsIndex) {\n case 'hex':\n this.fieldsIndex = `rgb${this.disableAlpha ? '' : 'a'}`;\n break;\n case 'rgb':\n case 'rgba':\n this.fieldsIndex = `hsl${this.disableAlpha ? '' : 'a'}`;\n break;\n default:\n this.fieldsIndex = 'hex';\n break;\n }\n this.$emit('update:format', this.fieldsIndex);\n },\n showHighlight() {\n this.highlight = true;\n },\n hideHighlight() {\n this.highlight = false;\n },\n },\n};\n\nconst _hoisted_1 = { class: \"vc-chrome-saturation-wrap\" };\nconst _hoisted_2 = { class: \"vc-chrome-body\" };\nconst _hoisted_3 = { class: \"vc-chrome-controls\" };\nconst _hoisted_4 = { class: \"vc-chrome-color-wrap\" };\nconst _hoisted_5 = [\"aria-label\"];\nconst _hoisted_6 = { class: \"vc-chrome-sliders\" };\nconst _hoisted_7 = { class: \"vc-chrome-hue-wrap\" };\nconst _hoisted_8 = {\n key: 0,\n class: \"vc-chrome-alpha-wrap\"\n};\nconst _hoisted_9 = {\n key: 0,\n class: \"vc-chrome-fields-wrap\"\n};\nconst _hoisted_10 = { class: \"vc-chrome-fields\" };\nconst _hoisted_11 = { class: \"vc-chrome-field\" };\nconst _hoisted_12 = { class: \"vc-chrome-fields\" };\nconst _hoisted_13 = { class: \"vc-chrome-field\" };\nconst _hoisted_14 = { class: \"vc-chrome-field\" };\nconst _hoisted_15 = { class: \"vc-chrome-field\" };\nconst _hoisted_16 = {\n key: 0,\n class: \"vc-chrome-field\"\n};\nconst _hoisted_17 = { class: \"vc-chrome-fields\" };\nconst _hoisted_18 = { class: \"vc-chrome-field\" };\nconst _hoisted_19 = { class: \"vc-chrome-field\" };\nconst _hoisted_20 = { class: \"vc-chrome-field\" };\nconst _hoisted_21 = {\n key: 0,\n class: \"vc-chrome-field\"\n};\nconst _hoisted_22 = { class: \"vc-chrome-toggle-icon\" };\nconst _hoisted_23 = /*#__PURE__*/createElementVNode(\"path\", {\n fill: \"#333\",\n d: \"M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z\"\n}, null, -1 /* HOISTED */);\nconst _hoisted_24 = [\n _hoisted_23\n];\nconst _hoisted_25 = { class: \"vc-chrome-toggle-icon-highlight\" };\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_Saturation = resolveComponent(\"Saturation\");\n const _component_Checkboard = resolveComponent(\"Checkboard\");\n const _component_Hue = resolveComponent(\"Hue\");\n const _component_Alpha = resolveComponent(\"Alpha\");\n const _component_EdIn = resolveComponent(\"EdIn\");\n\n return (openBlock(), createElementBlock(\"div\", {\n role: \"application\",\n \"aria-label\": \"Chrome color picker\",\n class: normalizeClass([\"vc-chrome\", [$props.disableAlpha ? 'vc-chrome__disable-alpha' : '']])\n }, [\n createElementVNode(\"div\", _hoisted_1, [\n createVNode(_component_Saturation, {\n value: _ctx.colors,\n onChange: $options.childChange\n }, null, 8 /* PROPS */, [\"value\", \"onChange\"])\n ]),\n createElementVNode(\"div\", _hoisted_2, [\n createElementVNode(\"div\", _hoisted_3, [\n createElementVNode(\"div\", _hoisted_4, [\n createElementVNode(\"div\", {\n \"aria-label\": `current color is ${_ctx.colors.hex}`,\n class: \"vc-chrome-active-color\",\n style: normalizeStyle({ background: $options.activeColor })\n }, null, 12 /* STYLE, PROPS */, _hoisted_5),\n (!$props.disableAlpha)\n ? (openBlock(), createBlock(_component_Checkboard, { key: 0 }))\n : createCommentVNode(\"v-if\", true)\n ]),\n createElementVNode(\"div\", _hoisted_6, [\n createElementVNode(\"div\", _hoisted_7, [\n createVNode(_component_Hue, {\n value: _ctx.colors,\n onChange: $options.childChange\n }, null, 8 /* PROPS */, [\"value\", \"onChange\"])\n ]),\n (!$props.disableAlpha)\n ? (openBlock(), createElementBlock(\"div\", _hoisted_8, [\n createVNode(_component_Alpha, {\n value: _ctx.colors,\n onChange: $options.childChange\n }, null, 8 /* PROPS */, [\"value\", \"onChange\"])\n ]))\n : createCommentVNode(\"v-if\", true)\n ])\n ]),\n (!$props.disableFields)\n ? (openBlock(), createElementBlock(\"div\", _hoisted_9, [\n withDirectives(createElementVNode(\"div\", _hoisted_10, [\n createCommentVNode(\" hex \"),\n createElementVNode(\"div\", _hoisted_11, [\n (!$options.hasAlpha)\n ? (openBlock(), createBlock(_component_EdIn, {\n key: 0,\n label: \"hex\",\n value: _ctx.colors.hex,\n onChange: $options.inputChange\n }, null, 8 /* PROPS */, [\"value\", \"onChange\"]))\n : createCommentVNode(\"v-if\", true),\n ($options.hasAlpha)\n ? (openBlock(), createBlock(_component_EdIn, {\n key: 1,\n label: \"hex\",\n value: _ctx.colors.hex8,\n onChange: $options.inputChange\n }, null, 8 /* PROPS */, [\"value\", \"onChange\"]))\n : createCommentVNode(\"v-if\", true)\n ])\n ], 512 /* NEED_PATCH */), [\n [vShow, $data.fieldsIndex === 'hex']\n ]),\n withDirectives(createElementVNode(\"div\", _hoisted_12, [\n createCommentVNode(\" rgba \"),\n createElementVNode(\"div\", _hoisted_13, [\n createVNode(_component_EdIn, {\n label: \"r\",\n value: _ctx.colors.rgba.r,\n onChange: $options.inputChange\n }, null, 8 /* PROPS */, [\"value\", \"onChange\"])\n ]),\n createElementVNode(\"div\", _hoisted_14, [\n createVNode(_component_EdIn, {\n label: \"g\",\n value: _ctx.colors.rgba.g,\n onChange: $options.inputChange\n }, null, 8 /* PROPS */, [\"value\", \"onChange\"])\n ]),\n createElementVNode(\"div\", _hoisted_15, [\n createVNode(_component_EdIn, {\n label: \"b\",\n value: _ctx.colors.rgba.b,\n onChange: $options.inputChange\n }, null, 8 /* PROPS */, [\"value\", \"onChange\"])\n ]),\n (!$props.disableAlpha)\n ? (openBlock(), createElementBlock(\"div\", _hoisted_16, [\n createVNode(_component_EdIn, {\n label: \"a\",\n value: _ctx.colors.a,\n \"arrow-offset\": 0.01,\n max: 1,\n onChange: $options.inputChange\n }, null, 8 /* PROPS */, [\"value\", \"arrow-offset\", \"onChange\"])\n ]))\n : createCommentVNode(\"v-if\", true)\n ], 512 /* NEED_PATCH */), [\n [vShow, ['rgb', 'rgba'].includes($data.fieldsIndex)]\n ]),\n withDirectives(createElementVNode(\"div\", _hoisted_17, [\n createCommentVNode(\" hsla \"),\n createElementVNode(\"div\", _hoisted_18, [\n createVNode(_component_EdIn, {\n label: \"h\",\n value: $options.hsl.h,\n onChange: $options.inputChange\n }, null, 8 /* PROPS */, [\"value\", \"onChange\"])\n ]),\n createElementVNode(\"div\", _hoisted_19, [\n createVNode(_component_EdIn, {\n label: \"s\",\n value: $options.hsl.s,\n onChange: $options.inputChange\n }, null, 8 /* PROPS */, [\"value\", \"onChange\"])\n ]),\n createElementVNode(\"div\", _hoisted_20, [\n createVNode(_component_EdIn, {\n label: \"l\",\n value: $options.hsl.l,\n onChange: $options.inputChange\n }, null, 8 /* PROPS */, [\"value\", \"onChange\"])\n ]),\n (!$props.disableAlpha)\n ? (openBlock(), createElementBlock(\"div\", _hoisted_21, [\n createVNode(_component_EdIn, {\n label: \"a\",\n value: _ctx.colors.a,\n \"arrow-offset\": 0.01,\n max: 1,\n onChange: $options.inputChange\n }, null, 8 /* PROPS */, [\"value\", \"arrow-offset\", \"onChange\"])\n ]))\n : createCommentVNode(\"v-if\", true)\n ], 512 /* NEED_PATCH */), [\n [vShow, ['hsl', 'hsla'].includes($data.fieldsIndex)]\n ]),\n createCommentVNode(\" btn \"),\n createElementVNode(\"div\", {\n class: \"vc-chrome-toggle-btn\",\n role: \"button\",\n \"aria-label\": \"Change another color definition\",\n onClick: _cache[3] || (_cache[3] = (...args) => ($options.toggleViews && $options.toggleViews(...args)))\n }, [\n createElementVNode(\"div\", _hoisted_22, [\n (openBlock(), createElementBlock(\"svg\", {\n style: {\"width\":\"24px\",\"height\":\"24px\"},\n viewBox: \"0 0 24 24\",\n onMouseover: _cache[0] || (_cache[0] = (...args) => ($options.showHighlight && $options.showHighlight(...args))),\n onMouseenter: _cache[1] || (_cache[1] = (...args) => ($options.showHighlight && $options.showHighlight(...args))),\n onMouseout: _cache[2] || (_cache[2] = (...args) => ($options.hideHighlight && $options.hideHighlight(...args)))\n }, _hoisted_24, 32 /* HYDRATE_EVENTS */))\n ]),\n withDirectives(createElementVNode(\"div\", _hoisted_25, null, 512 /* NEED_PATCH */), [\n [vShow, $data.highlight]\n ])\n ]),\n createCommentVNode(\" btn \")\n ]))\n : createCommentVNode(\"v-if\", true)\n ])\n ], 2 /* CLASS */))\n}\n\nvar css_248z = \".vc-chrome{background:#fff;background-color:#fff;border-radius:2px;box-shadow:0 0 2px rgba(0,0,0,.3),0 4px 8px rgba(0,0,0,.3);box-sizing:initial;font-family:Menlo;width:225px}.vc-chrome-controls{display:flex}.vc-chrome-color-wrap{position:relative;width:36px}.vc-chrome-active-color{border-radius:15px;height:30px;overflow:hidden;position:relative;width:30px;z-index:1}.vc-chrome-color-wrap .vc-checkerboard{background-size:auto;border-radius:15px;height:30px;width:30px}.vc-chrome-sliders{flex:1}.vc-chrome-fields-wrap{display:flex;padding-top:16px}.vc-chrome-fields{display:flex;flex:1;margin-left:-6px}.vc-chrome-field{padding-left:6px;width:100%}.vc-chrome-toggle-btn{position:relative;text-align:right;width:32px}.vc-chrome-toggle-icon{cursor:pointer;margin-right:-4px;margin-top:12px;position:relative;z-index:2}.vc-chrome-toggle-icon-highlight{background:#eee;border-radius:4px;height:28px;left:12px;position:absolute;top:10px;width:24px}.vc-chrome-hue-wrap{margin-bottom:8px}.vc-chrome-alpha-wrap,.vc-chrome-hue-wrap{height:10px;position:relative}.vc-chrome-alpha-wrap .vc-alpha-gradient,.vc-chrome-hue-wrap .vc-hue{border-radius:2px}.vc-chrome-alpha-wrap .vc-alpha-picker,.vc-chrome-hue-wrap .vc-hue-picker{background-color:#f8f8f8;border-radius:6px;box-shadow:0 1px 4px 0 rgba(0,0,0,.37);height:12px;transform:translate(-6px,-2px);width:12px}.vc-chrome-body{background-color:#fff;padding:16px 16px 12px}.vc-chrome-saturation-wrap{border-radius:2px 2px 0 0;overflow:hidden;padding-bottom:55%;position:relative;width:100%}.vc-chrome-saturation-wrap .vc-saturation-circle{height:12px;width:12px}.vc-chrome-fields .vc-input__input{border:none;border-radius:2px;box-shadow:inset 0 0 0 1px #dadada;color:#333;font-size:11px;height:21px;text-align:center;width:100%}.vc-chrome-fields .vc-input__label{color:#969696;display:block;font-size:11px;line-height:11px;margin-top:12px;text-align:center;text-transform:uppercase}.vc-chrome__disable-alpha .vc-chrome-active-color{height:18px;width:18px}.vc-chrome__disable-alpha .vc-chrome-color-wrap{width:30px}.vc-chrome__disable-alpha .vc-chrome-hue-wrap{margin-bottom:4px;margin-top:4px}\";\nstyleInject(css_248z);\n\nscript.render = render;\nscript.__file = \"src/components/chrome/chrome.vue\";\n\nscript.install = install;\n\nexport { script as default };\n","import '../assets/NcColorPicker-CO_Jq2Ow.css';\nimport { defineComponent, mergeModels, useModel, ref, computed, createBlock, openBlock, unref, withCtx, createElementVNode, normalizeClass, createVNode, createElementBlock, createCommentVNode, Transition, Fragment, renderList, normalizeStyle, createTextVNode, toDisplayString, renderSlot, normalizeProps, guardReactiveProps } from \"vue\";\nimport { Chrome } from \"@ckpack/vue-color\";\nimport { d as mdiCheck, s as mdiCloseCircleOutline, t as mdiArrowLeft, u as mdiDotsHorizontal } from \"./mdi-XFJRiRqJ.mjs\";\nimport { r as register, a as t } from \"./_l10n-DrTiip5c.mjs\";\nimport { d as defaultPalette, a as COLOR_BLACK, b as COLOR_WHITE } from \"./colors-Go3zmZRD.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { N as NcButton } from \"./NcButton-Dc8V4Urj.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-BvLanNaW.mjs\";\nimport { N as NcPopover } from \"./NcPopover-C-MTaPCs.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister();\nconst _hoisted_1 = [\"aria-label\"];\nconst _hoisted_2 = {\n key: 0,\n class: \"color-picker__simple\"\n};\nconst _hoisted_3 = [\"aria-label\", \"name\", \"checked\", \"onClick\"];\nconst _hoisted_4 = [\"title\"];\nconst _hoisted_5 = [\"aria-label\", \"name\", \"checked\"];\nconst _hoisted_6 = {\n key: 0,\n class: \"color-picker__navigation\"\n};\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcColorPicker\",\n props: /* @__PURE__ */ mergeModels({\n advancedFields: { type: Boolean },\n clearable: { type: Boolean },\n container: { default: \"body\" },\n palette: { default: () => [] },\n paletteOnly: { type: Boolean }\n }, {\n \"modelValue\": { required: true },\n \"modelModifiers\": {},\n \"open\": { type: Boolean },\n \"openModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"submit\", \"closed\"], [\"update:modelValue\", \"update:open\"]),\n setup(__props, { emit: __emit }) {\n const currentColor = useModel(__props, \"modelValue\");\n const open = useModel(__props, \"open\");\n const props = __props;\n const emit = __emit;\n const HEX_REGEX = /^#([a-f0-9]{3}|[a-f0-9]{6})$/i;\n const id = createElementId();\n const advanced = ref(false);\n const normalizedPalette = computed(() => {\n let palette = props.palette;\n for (const color of palette) {\n if (typeof color === \"string\" && !color.match(HEX_REGEX) || typeof color === \"object\" && !color.color?.match(HEX_REGEX)) {\n logger.error(\"[NcColorPicker] Invalid palette passed\", { color });\n palette = [];\n break;\n }\n }\n if (palette.length === 0) {\n palette = props.clearable ? [...defaultPalette, COLOR_BLACK, COLOR_WHITE] : [...defaultPalette];\n }\n return palette.map((item) => ({\n color: typeof item === \"object\" ? item.color : item,\n name: typeof item === \"object\" && item.name ? item.name : t(\"A color with a HEX value {hex}\", { hex: typeof item === \"string\" ? item : item.color })\n }));\n });\n function handleConfirm(hideCallback) {\n emit(\"submit\", currentColor.value);\n hideCallback();\n advanced.value = false;\n }\n function toggleColor(color) {\n color = typeof color === \"string\" ? color : color.color;\n if (props.clearable && currentColor.value === color) {\n currentColor.value = void 0;\n } else {\n currentColor.value = color;\n }\n }\n function pickCustomColor(color) {\n currentColor.value = color.hex;\n }\n function getContrastColor(color) {\n return calculateLuma(color) > 0.5 ? COLOR_BLACK.color : COLOR_WHITE.color;\n }\n function calculateLuma(color) {\n const [red, green, blue] = hexToRGB(color);\n return (0.2126 * red + 0.7152 * green + 0.0722 * blue) / 255;\n }\n function hexToRGB(hex) {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n if (!result) {\n return [0, 0, 0];\n }\n return [parseInt(result[1], 16), parseInt(result[2], 16), parseInt(result[3], 16)];\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(NcPopover), {\n shown: open.value,\n \"onUpdate:shown\": _cache[3] || (_cache[3] = ($event) => open.value = $event),\n container: _ctx.container,\n \"popup-role\": \"dialog\",\n onApplyHide: _cache[4] || (_cache[4] = ($event) => emit(\"closed\"))\n }, {\n trigger: withCtx((slotProps) => [\n renderSlot(_ctx.$slots, \"default\", normalizeProps(guardReactiveProps(slotProps)), void 0, true)\n ]),\n default: withCtx((slotProps) => [\n createElementVNode(\"div\", {\n role: \"dialog\",\n class: normalizeClass([\"color-picker\", {\n \"color-picker--advanced-fields\": advanced.value && _ctx.advancedFields,\n \"color-picker--clearable\": _ctx.clearable\n }]),\n \"aria-modal\": \"true\",\n \"aria-label\": unref(t)(\"Color picker\")\n }, [\n createVNode(Transition, {\n name: \"slide\",\n mode: \"out-in\"\n }, {\n default: withCtx(() => [\n !advanced.value ? (openBlock(), createElementBlock(\"div\", _hoisted_2, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(normalizedPalette.value, ({ color, name }, index) => {\n return openBlock(), createElementBlock(\"label\", {\n key: index,\n class: normalizeClass([\"color-picker__simple-color-circle\", { \"color-picker__simple-color-circle--active\": color === currentColor.value }]),\n style: normalizeStyle({\n backgroundColor: color,\n color: getContrastColor(color)\n })\n }, [\n color === currentColor.value ? (openBlock(), createBlock(unref(NcIconSvgWrapper), {\n key: 0,\n path: unref(mdiCheck)\n }, null, 8, [\"path\"])) : createCommentVNode(\"\", true),\n createElementVNode(\"input\", {\n type: \"radio\",\n class: \"hidden-visually\",\n \"aria-label\": name,\n name: `color-picker-${unref(id)}`,\n checked: color === currentColor.value,\n onClick: ($event) => toggleColor(color)\n }, null, 8, _hoisted_3)\n ], 6);\n }), 128)),\n _ctx.clearable ? (openBlock(), createElementBlock(\"label\", {\n key: 0,\n class: \"color-picker__clear\",\n title: unref(t)(\"No color\")\n }, [\n createVNode(unref(NcIconSvgWrapper), {\n size: currentColor.value ? 28 : 34,\n path: unref(mdiCloseCircleOutline)\n }, null, 8, [\"size\", \"path\"]),\n createElementVNode(\"input\", {\n type: \"radio\",\n class: \"hidden-visually\",\n \"aria-label\": unref(t)(\"No color\"),\n name: `color-picker-${unref(id)}`,\n checked: !currentColor.value,\n onClick: _cache[0] || (_cache[0] = ($event) => currentColor.value = void 0)\n }, null, 8, _hoisted_5)\n ], 8, _hoisted_4)) : createCommentVNode(\"\", true)\n ])) : (openBlock(), createBlock(unref(Chrome), {\n key: 1,\n class: \"color-picker__advanced\",\n \"disable-alpha\": true,\n \"disable-fields\": !_ctx.advancedFields,\n \"model-value\": currentColor.value ?? \"#000000\",\n \"onUpdate:modelValue\": pickCustomColor\n }, null, 8, [\"disable-fields\", \"model-value\"]))\n ]),\n _: 1\n }),\n !_ctx.paletteOnly ? (openBlock(), createElementBlock(\"div\", _hoisted_6, [\n advanced.value ? (openBlock(), createBlock(unref(NcButton), {\n key: 0,\n \"aria-label\": unref(t)(\"Back\"),\n title: unref(t)(\"Back\"),\n variant: \"tertiary\",\n onClick: _cache[1] || (_cache[1] = ($event) => advanced.value = false)\n }, {\n icon: withCtx(() => [\n createVNode(unref(NcIconSvgWrapper), {\n directional: \"\",\n path: unref(mdiArrowLeft)\n }, null, 8, [\"path\"])\n ]),\n _: 1\n }, 8, [\"aria-label\", \"title\"])) : (openBlock(), createBlock(unref(NcButton), {\n key: 1,\n \"aria-label\": unref(t)(\"More options\"),\n title: unref(t)(\"More options\"),\n variant: \"tertiary\",\n onClick: _cache[2] || (_cache[2] = ($event) => advanced.value = true)\n }, {\n icon: withCtx(() => [\n createVNode(unref(NcIconSvgWrapper), { path: unref(mdiDotsHorizontal) }, null, 8, [\"path\"])\n ]),\n _: 1\n }, 8, [\"aria-label\", \"title\"])),\n createVNode(unref(NcButton), {\n variant: \"primary\",\n onClick: ($event) => handleConfirm(slotProps.hide)\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(unref(t)(\"Choose\")), 1)\n ]),\n _: 2\n }, 1032, [\"onClick\"])\n ])) : createCommentVNode(\"\", true)\n ], 10, _hoisted_1)\n ]),\n _: 3\n }, 8, [\"shown\", \"container\"]);\n };\n }\n});\nconst NcColorPicker = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-3d24879b\"]]);\nexport {\n NcColorPicker as N\n};\n//# sourceMappingURL=NcColorPicker-Kc0JqRtp.mjs.map\n"],"names":["prefix","styleInject","css","ref","insertAt","head","style","install","app","options","componentPrefix","_checkboardCache","script","getCheckboard","renderCheckboard","c1","c2","size","canvas","ctx","key","checkboard","render","_ctx","_cache","$props","$setup","$data","$options","openBlock","createElementBlock","normalizeStyle","css_248z","script$1","rgba","rgbStr","skip","container","containerWidth","xOffset","left","a","_hoisted_1","_hoisted_2","_hoisted_3","createElementVNode","_hoisted_4","_component_Checkboard","resolveComponent","createVNode","args","bound01","n","max","isOnePointZero","isPercent","isPercentage","clamp01","val","boundAlpha","convertToPercentage","pad2","c","rgbToRgb","r","g","b","rgbToHsl","min","h","s","l","d","hue2rgb","p","q","t","hslToRgb","rgbToHsv","v","hsvToRgb","i","f","mod","rgbToHex","allow3Char","hex","rgbaToHex","allow4Char","convertDecimalToHex","convertHexToDecimal","parseIntFromHex","numberInputToObject","color","names","inputToRGB","rgb","ok","format","stringInputToObject","isValidCSSUnit","CSS_INTEGER","CSS_NUMBER","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","matchers","named","match","TinyColor","opts","_a","R","G","B","RsRGB","GsRGB","BsRGB","alpha","hsv","hsl","allowShortChar","fmt","x","rnd","_i","_b","value","formatSet","formattedString","hasAlpha","needsAlphaFormat","amount","hue","rgb1","rgb2","results","slices","part","ret","res","modification","background","fg","bg","result","increment","tinycolor","_colorChange","data","oldHue","colorMixin","newVal","keysToCheck","checked","passed","letter","palette","number","withDirectives","$event","vModelText","toDisplayString","clamp","containerHeight","yOffset","pageX","pageY","top","saturation","bright","param","oldVal","percent","normalizeClass","script$2","script$3","script$4","script$5","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","_component_Saturation","_component_Hue","_component_Alpha","_component_EdIn","createCommentVNode","createBlock","vShow","register","_sfc_main","defineComponent","mergeModels","__props","__emit","currentColor","useModel","open","props","emit","HEX_REGEX","id","createElementId","advanced","normalizedPalette","computed","logger","defaultPalette","COLOR_BLACK","COLOR_WHITE","item","handleConfirm","hideCallback","toggleColor","pickCustomColor","getContrastColor","calculateLuma","red","green","blue","hexToRGB","unref","NcPopover","withCtx","slotProps","renderSlot","normalizeProps","guardReactiveProps","Transition","Chrome","Fragment","renderList","name","index","NcIconSvgWrapper","mdiCheck","mdiCloseCircleOutline","NcButton","mdiArrowLeft","mdiDotsHorizontal","createTextVNode","NcColorPicker","_export_sfc"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]} \ No newline at end of file +{"version":3,"file":"NcColorPicker-Kc0JqRtp-G7GArS5K.chunk.mjs","sources":["../node_modules/@ckpack/vue-color/libs/defaultConfig.js","../node_modules/@ckpack/vue-color/libs/style-inject.es-746bb8ed.js","../node_modules/@ckpack/vue-color/libs/utils/compoent.js","../node_modules/@ckpack/vue-color/libs/components/checkboard/index.js","../node_modules/@ckpack/vue-color/libs/components/alpha/index.js","../node_modules/@ctrl/tinycolor/dist/module/util.js","../node_modules/@ctrl/tinycolor/dist/module/conversion.js","../node_modules/@ctrl/tinycolor/dist/module/css-color-names.js","../node_modules/@ctrl/tinycolor/dist/module/format-input.js","../node_modules/@ctrl/tinycolor/dist/module/index.js","../node_modules/@ckpack/vue-color/libs/mixin/color.js","../node_modules/@ckpack/vue-color/libs/components/editable-input/index.js","../node_modules/@ckpack/vue-color/libs/utils/utils.js","../node_modules/@ckpack/vue-color/libs/components/saturation/index.js","../node_modules/@ckpack/vue-color/libs/components/hue/index.js","../node_modules/@ckpack/vue-color/libs/components/chrome/index.js","../node_modules/@nextcloud/vue/dist/chunks/NcColorPicker-Kc0JqRtp.mjs"],"sourcesContent":["const name = 'VueColor';\n// 自定义组件前缀\nconst prefix = '';\nconst cssPrefix = '';\nconst size = 'medium';\n\nexport { cssPrefix, name, prefix, size };\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport { styleInject as s };\n","import { prefix } from '../defaultConfig.js';\n\nconst install = function (app, options) {\n const { componentPrefix = prefix } = options || {};\n app.component(`${componentPrefix}${this.name}`, this);\n};\n\nexport { install };\n","import { openBlock, createElementBlock, normalizeStyle } from 'vue';\nimport { s as styleInject } from '../../style-inject.es-746bb8ed.js';\nimport { install } from '../../utils/compoent.js';\nimport '../../defaultConfig.js';\n\nconst _checkboardCache = {};\n\nvar script = {\n name: 'Checkboard',\n props: {\n size: {\n type: [Number, String],\n default: 8,\n },\n white: {\n type: String,\n default: '#fff',\n },\n grey: {\n type: String,\n default: '#e6e6e6',\n },\n },\n computed: {\n bgStyle() {\n return {\n 'background-image': `url(${getCheckboard(this.white, this.grey, this.size)})`,\n };\n },\n },\n};\n\n/**\n * get base 64 data by canvas\n *\n * @param {String} c1 hex color\n * @param {String} c2 hex color\n * @param {Number} size\n */\n\nfunction renderCheckboard(c1, c2, size) {\n // Dont Render On Server\n if (typeof document === 'undefined')\n return null;\n\n const canvas = document.createElement('canvas');\n canvas.width = canvas.height = size * 2;\n const ctx = canvas.getContext('2d');\n // If no context can be found, return early.\n if (!ctx)\n return null;\n\n ctx.fillStyle = c1;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n ctx.fillStyle = c2;\n ctx.fillRect(0, 0, size, size);\n ctx.translate(size, size);\n ctx.fillRect(0, 0, size, size);\n return canvas.toDataURL();\n}\n\n/**\n * get checkboard base data and cache\n *\n * @param {String} c1 hex color\n * @param {String} c2 hex color\n * @param {Number} size\n */\n\nfunction getCheckboard(c1, c2, size) {\n const key = `${c1},${c2},${size}`;\n\n if (_checkboardCache[key])\n return _checkboardCache[key];\n\n const checkboard = renderCheckboard(c1, c2, size);\n _checkboardCache[key] = checkboard;\n return checkboard;\n}\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return (openBlock(), createElementBlock(\"div\", {\n class: \"vc-checkerboard\",\n style: normalizeStyle($options.bgStyle)\n }, null, 4 /* STYLE */))\n}\n\nvar css_248z = \".vc-checkerboard{background-size:contain;bottom:0;left:0;position:absolute;right:0;top:0}\";\nstyleInject(css_248z);\n\nscript.render = render;\nscript.__file = \"src/components/checkboard/checkboard.vue\";\n\nscript.install = install;\n\nexport { script as default };\n","import script$1 from '../checkboard/index.js';\nimport { resolveComponent, openBlock, createElementBlock, createElementVNode, createVNode, normalizeStyle } from 'vue';\nimport { s as styleInject } from '../../style-inject.es-746bb8ed.js';\nimport { install } from '../../utils/compoent.js';\nimport '../../defaultConfig.js';\n\nvar script = {\n name: 'Alpha',\n components: {\n Checkboard: script$1,\n },\n props: {\n value: Object,\n onChange: Function,\n },\n computed: {\n colors() {\n return this.value;\n },\n gradientColor() {\n const { rgba } = this.colors;\n const rgbStr = [rgba.r, rgba.g, rgba.b].join(',');\n return `linear-gradient(to right, rgba(${rgbStr}, 0) 0%, rgba(${rgbStr}, 1) 100%)`;\n },\n },\n methods: {\n handleChange(e, skip) {\n !skip && e.preventDefault();\n const { container } = this.$refs;\n if (!container) {\n // for some edge cases, container may not exist. see #220\n return;\n }\n const containerWidth = container.clientWidth;\n\n const xOffset = container.getBoundingClientRect().left + window.pageXOffset;\n const pageX = e.pageX || (e.touches ? e.touches[0].pageX : 0);\n const left = pageX - xOffset;\n\n let a;\n if (left < 0)\n a = 0;\n else if (left > containerWidth)\n a = 1;\n else\n a = Math.round(left * 100 / containerWidth) / 100;\n\n if (this.colors.a !== a) {\n this.$emit('change', {\n h: this.colors.hsl.h,\n s: this.colors.hsl.s,\n l: this.colors.hsl.l,\n a,\n source: 'rgba',\n });\n }\n },\n handleMouseDown(e) {\n this.handleChange(e, true);\n window.addEventListener('mousemove', this.handleChange);\n window.addEventListener('mouseup', this.handleMouseUp);\n },\n handleMouseUp() {\n this.unbindEventListeners();\n },\n unbindEventListeners() {\n window.removeEventListener('mousemove', this.handleChange);\n window.removeEventListener('mouseup', this.handleMouseUp);\n },\n },\n};\n\nconst _hoisted_1 = { class: \"vc-alpha\" };\nconst _hoisted_2 = { class: \"vc-alpha-checkboard-wrap\" };\nconst _hoisted_3 = /*#__PURE__*/createElementVNode(\"div\", { class: \"vc-alpha-picker\" }, null, -1 /* HOISTED */);\nconst _hoisted_4 = [\n _hoisted_3\n];\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_Checkboard = resolveComponent(\"Checkboard\");\n\n return (openBlock(), createElementBlock(\"div\", _hoisted_1, [\n createElementVNode(\"div\", _hoisted_2, [\n createVNode(_component_Checkboard)\n ]),\n createElementVNode(\"div\", {\n class: \"vc-alpha-gradient\",\n style: normalizeStyle({ background: $options.gradientColor })\n }, null, 4 /* STYLE */),\n createElementVNode(\"div\", {\n ref: \"container\",\n class: \"vc-alpha-container\",\n onMousedown: _cache[0] || (_cache[0] = (...args) => ($options.handleMouseDown && $options.handleMouseDown(...args))),\n onTouchmove: _cache[1] || (_cache[1] = (...args) => ($options.handleChange && $options.handleChange(...args))),\n onTouchstart: _cache[2] || (_cache[2] = (...args) => ($options.handleChange && $options.handleChange(...args)))\n }, [\n createElementVNode(\"div\", {\n class: \"vc-alpha-pointer\",\n style: normalizeStyle({ left: `${$options.colors.a * 100}%` })\n }, _hoisted_4, 4 /* STYLE */)\n ], 544 /* HYDRATE_EVENTS, NEED_PATCH */)\n ]))\n}\n\nvar css_248z = \".vc-alpha,.vc-alpha-checkboard-wrap{bottom:0;left:0;position:absolute;right:0;top:0}.vc-alpha-checkboard-wrap{overflow:hidden}.vc-alpha-gradient{bottom:0;left:0;position:absolute;right:0;top:0}.vc-alpha-container{cursor:pointer;height:100%;margin:0 3px;position:relative;z-index:2}.vc-alpha-pointer{position:absolute;z-index:2}.vc-alpha-picker{background:#fff;border-radius:1px;box-shadow:0 0 2px rgba(0,0,0,.6);cursor:pointer;height:8px;margin-top:1px;transform:translateX(-2px);width:4px}\";\nstyleInject(css_248z);\n\nscript.render = render;\nscript.__file = \"src/components/alpha/alpha.vue\";\n\nscript.install = install;\n\nexport { script as default };\n","/**\n * Take input from [0, n] and return it as [0, 1]\n * @hidden\n */\nexport function bound01(n, max) {\n if (isOnePointZero(n)) {\n n = '100%';\n }\n var isPercent = isPercentage(n);\n n = max === 360 ? n : Math.min(max, Math.max(0, parseFloat(n)));\n // Automatically convert percentage into number\n if (isPercent) {\n n = parseInt(String(n * max), 10) / 100;\n }\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n // Convert into [0, 1] range if it isn't already\n if (max === 360) {\n // If n is a hue given in degrees,\n // wrap around out-of-range values into [0, 360] range\n // then convert into [0, 1].\n n = (n < 0 ? (n % max) + max : n % max) / parseFloat(String(max));\n }\n else {\n // If n not a hue given in degrees\n // Convert into [0, 1] range if it isn't already.\n n = (n % max) / parseFloat(String(max));\n }\n return n;\n}\n/**\n * Force a number between 0 and 1\n * @hidden\n */\nexport function clamp01(val) {\n return Math.min(1, Math.max(0, val));\n}\n/**\n * Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n * \n * @hidden\n */\nexport function isOnePointZero(n) {\n return typeof n === 'string' && n.indexOf('.') !== -1 && parseFloat(n) === 1;\n}\n/**\n * Check to see if string passed in is a percentage\n * @hidden\n */\nexport function isPercentage(n) {\n return typeof n === 'string' && n.indexOf('%') !== -1;\n}\n/**\n * Return a valid alpha value [0,1] with all invalid values being set to 1\n * @hidden\n */\nexport function boundAlpha(a) {\n a = parseFloat(a);\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n return a;\n}\n/**\n * Replace a decimal with it's percentage value\n * @hidden\n */\nexport function convertToPercentage(n) {\n if (n <= 1) {\n return \"\".concat(Number(n) * 100, \"%\");\n }\n return n;\n}\n/**\n * Force a hex value to have 2 characters\n * @hidden\n */\nexport function pad2(c) {\n return c.length === 1 ? '0' + c : String(c);\n}\n","import { bound01, pad2 } from './util.js';\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n/**\n * Handle bounds / percentage checking to conform to CSS color spec\n * \n * *Assumes:* r, g, b in [0, 255] or [0, 1]\n * *Returns:* { r, g, b } in [0, 255]\n */\nexport function rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255,\n };\n}\n/**\n * Converts an RGB color value to HSL.\n * *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n * *Returns:* { h, s, l } in [0,1]\n */\nexport function rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var s = 0;\n var l = (max + min) / 2;\n if (max === min) {\n s = 0;\n h = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, l: l };\n}\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * (6 * t);\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n/**\n * Converts an HSL color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hslToRgb(h, s, l) {\n var r;\n var g;\n var b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n if (s === 0) {\n // achromatic\n g = l;\n b = l;\n r = l;\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color value to HSV\n *\n * *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n * *Returns:* { h, s, v } in [0,1]\n */\nexport function rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var v = max;\n var d = max - min;\n var s = max === 0 ? 0 : d / max;\n if (max === min) {\n h = 0; // achromatic\n }\n else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n/**\n * Converts an HSV color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n var i = Math.floor(h);\n var f = h - i;\n var p = v * (1 - s);\n var q = v * (1 - f * s);\n var t = v * (1 - (1 - f) * s);\n var mod = i % 6;\n var r = [v, q, p, p, t, v][mod];\n var g = [t, v, v, q, p, p][mod];\n var b = [p, p, t, v, v, q][mod];\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color to hex\n *\n * Assumes r, g, and b are contained in the set [0, 255]\n * Returns a 3 or 6 character hex\n */\nexport function rgbToHex(r, g, b, allow3Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n // Return a 3 character hex if possible\n if (allow3Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color plus alpha transparency to hex\n *\n * Assumes r, g, b are contained in the set [0, 255] and\n * a in [0, 1]. Returns a 4 or 8 character rgba hex\n */\n// eslint-disable-next-line max-params\nexport function rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n pad2(convertDecimalToHex(a)),\n ];\n // Return a 4 character hex if possible\n if (allow4Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1)) &&\n hex[3].startsWith(hex[3].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color to an ARGB Hex8 string\n * Rarely used, but required for \"toFilter()\"\n */\nexport function rgbaToArgbHex(r, g, b, a) {\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n return hex.join('');\n}\n/** Converts a decimal to a hex value */\nexport function convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n/** Converts a hex value to a decimal */\nexport function convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n}\n/** Parse a base-16 hex value into a base-10 integer */\nexport function parseIntFromHex(val) {\n return parseInt(val, 16);\n}\nexport function numberInputToObject(color) {\n return {\n r: color >> 16,\n g: (color & 0xff00) >> 8,\n b: color & 0xff,\n };\n}\n","// https://github.com/bahamas10/css-color-names/blob/master/css-color-names.json\n/**\n * @hidden\n */\nexport var names = {\n aliceblue: '#f0f8ff',\n antiquewhite: '#faebd7',\n aqua: '#00ffff',\n aquamarine: '#7fffd4',\n azure: '#f0ffff',\n beige: '#f5f5dc',\n bisque: '#ffe4c4',\n black: '#000000',\n blanchedalmond: '#ffebcd',\n blue: '#0000ff',\n blueviolet: '#8a2be2',\n brown: '#a52a2a',\n burlywood: '#deb887',\n cadetblue: '#5f9ea0',\n chartreuse: '#7fff00',\n chocolate: '#d2691e',\n coral: '#ff7f50',\n cornflowerblue: '#6495ed',\n cornsilk: '#fff8dc',\n crimson: '#dc143c',\n cyan: '#00ffff',\n darkblue: '#00008b',\n darkcyan: '#008b8b',\n darkgoldenrod: '#b8860b',\n darkgray: '#a9a9a9',\n darkgreen: '#006400',\n darkgrey: '#a9a9a9',\n darkkhaki: '#bdb76b',\n darkmagenta: '#8b008b',\n darkolivegreen: '#556b2f',\n darkorange: '#ff8c00',\n darkorchid: '#9932cc',\n darkred: '#8b0000',\n darksalmon: '#e9967a',\n darkseagreen: '#8fbc8f',\n darkslateblue: '#483d8b',\n darkslategray: '#2f4f4f',\n darkslategrey: '#2f4f4f',\n darkturquoise: '#00ced1',\n darkviolet: '#9400d3',\n deeppink: '#ff1493',\n deepskyblue: '#00bfff',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1e90ff',\n firebrick: '#b22222',\n floralwhite: '#fffaf0',\n forestgreen: '#228b22',\n fuchsia: '#ff00ff',\n gainsboro: '#dcdcdc',\n ghostwhite: '#f8f8ff',\n goldenrod: '#daa520',\n gold: '#ffd700',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#adff2f',\n grey: '#808080',\n honeydew: '#f0fff0',\n hotpink: '#ff69b4',\n indianred: '#cd5c5c',\n indigo: '#4b0082',\n ivory: '#fffff0',\n khaki: '#f0e68c',\n lavenderblush: '#fff0f5',\n lavender: '#e6e6fa',\n lawngreen: '#7cfc00',\n lemonchiffon: '#fffacd',\n lightblue: '#add8e6',\n lightcoral: '#f08080',\n lightcyan: '#e0ffff',\n lightgoldenrodyellow: '#fafad2',\n lightgray: '#d3d3d3',\n lightgreen: '#90ee90',\n lightgrey: '#d3d3d3',\n lightpink: '#ffb6c1',\n lightsalmon: '#ffa07a',\n lightseagreen: '#20b2aa',\n lightskyblue: '#87cefa',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#b0c4de',\n lightyellow: '#ffffe0',\n lime: '#00ff00',\n limegreen: '#32cd32',\n linen: '#faf0e6',\n magenta: '#ff00ff',\n maroon: '#800000',\n mediumaquamarine: '#66cdaa',\n mediumblue: '#0000cd',\n mediumorchid: '#ba55d3',\n mediumpurple: '#9370db',\n mediumseagreen: '#3cb371',\n mediumslateblue: '#7b68ee',\n mediumspringgreen: '#00fa9a',\n mediumturquoise: '#48d1cc',\n mediumvioletred: '#c71585',\n midnightblue: '#191970',\n mintcream: '#f5fffa',\n mistyrose: '#ffe4e1',\n moccasin: '#ffe4b5',\n navajowhite: '#ffdead',\n navy: '#000080',\n oldlace: '#fdf5e6',\n olive: '#808000',\n olivedrab: '#6b8e23',\n orange: '#ffa500',\n orangered: '#ff4500',\n orchid: '#da70d6',\n palegoldenrod: '#eee8aa',\n palegreen: '#98fb98',\n paleturquoise: '#afeeee',\n palevioletred: '#db7093',\n papayawhip: '#ffefd5',\n peachpuff: '#ffdab9',\n peru: '#cd853f',\n pink: '#ffc0cb',\n plum: '#dda0dd',\n powderblue: '#b0e0e6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#ff0000',\n rosybrown: '#bc8f8f',\n royalblue: '#4169e1',\n saddlebrown: '#8b4513',\n salmon: '#fa8072',\n sandybrown: '#f4a460',\n seagreen: '#2e8b57',\n seashell: '#fff5ee',\n sienna: '#a0522d',\n silver: '#c0c0c0',\n skyblue: '#87ceeb',\n slateblue: '#6a5acd',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#fffafa',\n springgreen: '#00ff7f',\n steelblue: '#4682b4',\n tan: '#d2b48c',\n teal: '#008080',\n thistle: '#d8bfd8',\n tomato: '#ff6347',\n turquoise: '#40e0d0',\n violet: '#ee82ee',\n wheat: '#f5deb3',\n white: '#ffffff',\n whitesmoke: '#f5f5f5',\n yellow: '#ffff00',\n yellowgreen: '#9acd32',\n};\n","/* eslint-disable @typescript-eslint/no-redundant-type-constituents */\nimport { convertHexToDecimal, hslToRgb, hsvToRgb, parseIntFromHex, rgbToRgb, } from './conversion.js';\nimport { names } from './css-color-names.js';\nimport { boundAlpha, convertToPercentage } from './util.js';\n/**\n * Given a string or object, convert that input to RGB\n *\n * Possible string inputs:\n * ```\n * \"red\"\n * \"#f00\" or \"f00\"\n * \"#ff0000\" or \"ff0000\"\n * \"#ff000000\" or \"ff000000\"\n * \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n * \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n * \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n * \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n * \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n * \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n * \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n * ```\n */\nexport function inputToRGB(color) {\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n if (typeof color === 'string') {\n color = stringInputToObject(color);\n }\n if (typeof color === 'object') {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === '%' ? 'prgb' : 'rgb';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = 'hsv';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = 'hsl';\n }\n if (Object.prototype.hasOwnProperty.call(color, 'a')) {\n a = color.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a,\n };\n}\n// \nvar CSS_INTEGER = '[-\\\\+]?\\\\d+%?';\n// \nvar CSS_NUMBER = '[-\\\\+]?\\\\d*\\\\.\\\\d+%?';\n// Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\nvar CSS_UNIT = \"(?:\".concat(CSS_NUMBER, \")|(?:\").concat(CSS_INTEGER, \")\");\n// Actual matching.\n// Parentheses and commas are optional, but not required.\n// Whitespace can take the place of commas or opening paren\nvar PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar matchers = {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp('rgb' + PERMISSIVE_MATCH3),\n rgba: new RegExp('rgba' + PERMISSIVE_MATCH4),\n hsl: new RegExp('hsl' + PERMISSIVE_MATCH3),\n hsla: new RegExp('hsla' + PERMISSIVE_MATCH4),\n hsv: new RegExp('hsv' + PERMISSIVE_MATCH3),\n hsva: new RegExp('hsva' + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n};\n/**\n * Permissive string parsing. Take in a number of formats, and output an object\n * based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\n */\nexport function stringInputToObject(color) {\n color = color.trim().toLowerCase();\n if (color.length === 0) {\n return false;\n }\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color === 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: 'name' };\n }\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match = matchers.rgb.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n match = matchers.rgba.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n match = matchers.hsl.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n match = matchers.hsla.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n match = matchers.hsv.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n match = matchers.hsva.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n match = matchers.hex8.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex6.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n match = matchers.hex4.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n a: convertHexToDecimal(match[4] + match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex3.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n return false;\n}\n/**\n * Check to see if it looks like a CSS unit\n * (see `matchers` above for definition).\n */\nexport function isValidCSSUnit(color) {\n return Boolean(matchers.CSS_UNIT.exec(String(color)));\n}\n","import { numberInputToObject, rgbaToHex, rgbToHex, rgbToHsl, rgbToHsv } from './conversion.js';\nimport { names } from './css-color-names.js';\nimport { inputToRGB } from './format-input';\nimport { bound01, boundAlpha, clamp01 } from './util.js';\nvar TinyColor = /** @class */ (function () {\n function TinyColor(color, opts) {\n if (color === void 0) { color = ''; }\n if (opts === void 0) { opts = {}; }\n var _a;\n // If input is already a tinycolor, return itself\n if (color instanceof TinyColor) {\n // eslint-disable-next-line no-constructor-return\n return color;\n }\n if (typeof color === 'number') {\n color = numberInputToObject(color);\n }\n this.originalInput = color;\n var rgb = inputToRGB(color);\n this.originalInput = color;\n this.r = rgb.r;\n this.g = rgb.g;\n this.b = rgb.b;\n this.a = rgb.a;\n this.roundA = Math.round(100 * this.a) / 100;\n this.format = (_a = opts.format) !== null && _a !== void 0 ? _a : rgb.format;\n this.gradientType = opts.gradientType;\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this.r < 1) {\n this.r = Math.round(this.r);\n }\n if (this.g < 1) {\n this.g = Math.round(this.g);\n }\n if (this.b < 1) {\n this.b = Math.round(this.b);\n }\n this.isValid = rgb.ok;\n }\n TinyColor.prototype.isDark = function () {\n return this.getBrightness() < 128;\n };\n TinyColor.prototype.isLight = function () {\n return !this.isDark();\n };\n /**\n * Returns the perceived brightness of the color, from 0-255.\n */\n TinyColor.prototype.getBrightness = function () {\n // http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n };\n /**\n * Returns the perceived luminance of a color, from 0-1.\n */\n TinyColor.prototype.getLuminance = function () {\n // http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var R;\n var G;\n var B;\n var RsRGB = rgb.r / 255;\n var GsRGB = rgb.g / 255;\n var BsRGB = rgb.b / 255;\n if (RsRGB <= 0.03928) {\n R = RsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n R = Math.pow((RsRGB + 0.055) / 1.055, 2.4);\n }\n if (GsRGB <= 0.03928) {\n G = GsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n G = Math.pow((GsRGB + 0.055) / 1.055, 2.4);\n }\n if (BsRGB <= 0.03928) {\n B = BsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n B = Math.pow((BsRGB + 0.055) / 1.055, 2.4);\n }\n return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n };\n /**\n * Returns the alpha value of a color, from 0-1.\n */\n TinyColor.prototype.getAlpha = function () {\n return this.a;\n };\n /**\n * Sets the alpha value on the current color.\n *\n * @param alpha - The new alpha value. The accepted range is 0-1.\n */\n TinyColor.prototype.setAlpha = function (alpha) {\n this.a = boundAlpha(alpha);\n this.roundA = Math.round(100 * this.a) / 100;\n return this;\n };\n /**\n * Returns whether the color is monochrome.\n */\n TinyColor.prototype.isMonochrome = function () {\n var s = this.toHsl().s;\n return s === 0;\n };\n /**\n * Returns the object as a HSVA object.\n */\n TinyColor.prototype.toHsv = function () {\n var hsv = rgbToHsv(this.r, this.g, this.b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this.a };\n };\n /**\n * Returns the hsva values interpolated into a string with the following format:\n * \"hsva(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toHsvString = function () {\n var hsv = rgbToHsv(this.r, this.g, this.b);\n var h = Math.round(hsv.h * 360);\n var s = Math.round(hsv.s * 100);\n var v = Math.round(hsv.v * 100);\n return this.a === 1 ? \"hsv(\".concat(h, \", \").concat(s, \"%, \").concat(v, \"%)\") : \"hsva(\".concat(h, \", \").concat(s, \"%, \").concat(v, \"%, \").concat(this.roundA, \")\");\n };\n /**\n * Returns the object as a HSLA object.\n */\n TinyColor.prototype.toHsl = function () {\n var hsl = rgbToHsl(this.r, this.g, this.b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this.a };\n };\n /**\n * Returns the hsla values interpolated into a string with the following format:\n * \"hsla(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toHslString = function () {\n var hsl = rgbToHsl(this.r, this.g, this.b);\n var h = Math.round(hsl.h * 360);\n var s = Math.round(hsl.s * 100);\n var l = Math.round(hsl.l * 100);\n return this.a === 1 ? \"hsl(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%)\") : \"hsla(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%, \").concat(this.roundA, \")\");\n };\n /**\n * Returns the hex value of the color.\n * @param allow3Char will shorten hex value to 3 char if possible\n */\n TinyColor.prototype.toHex = function (allow3Char) {\n if (allow3Char === void 0) { allow3Char = false; }\n return rgbToHex(this.r, this.g, this.b, allow3Char);\n };\n /**\n * Returns the hex value of the color -with a # prefixed.\n * @param allow3Char will shorten hex value to 3 char if possible\n */\n TinyColor.prototype.toHexString = function (allow3Char) {\n if (allow3Char === void 0) { allow3Char = false; }\n return '#' + this.toHex(allow3Char);\n };\n /**\n * Returns the hex 8 value of the color.\n * @param allow4Char will shorten hex value to 4 char if possible\n */\n TinyColor.prototype.toHex8 = function (allow4Char) {\n if (allow4Char === void 0) { allow4Char = false; }\n return rgbaToHex(this.r, this.g, this.b, this.a, allow4Char);\n };\n /**\n * Returns the hex 8 value of the color -with a # prefixed.\n * @param allow4Char will shorten hex value to 4 char if possible\n */\n TinyColor.prototype.toHex8String = function (allow4Char) {\n if (allow4Char === void 0) { allow4Char = false; }\n return '#' + this.toHex8(allow4Char);\n };\n /**\n * Returns the shorter hex value of the color depends on its alpha -with a # prefixed.\n * @param allowShortChar will shorten hex value to 3 or 4 char if possible\n */\n TinyColor.prototype.toHexShortString = function (allowShortChar) {\n if (allowShortChar === void 0) { allowShortChar = false; }\n return this.a === 1 ? this.toHexString(allowShortChar) : this.toHex8String(allowShortChar);\n };\n /**\n * Returns the object as a RGBA object.\n */\n TinyColor.prototype.toRgb = function () {\n return {\n r: Math.round(this.r),\n g: Math.round(this.g),\n b: Math.round(this.b),\n a: this.a,\n };\n };\n /**\n * Returns the RGBA values interpolated into a string with the following format:\n * \"RGBA(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toRgbString = function () {\n var r = Math.round(this.r);\n var g = Math.round(this.g);\n var b = Math.round(this.b);\n return this.a === 1 ? \"rgb(\".concat(r, \", \").concat(g, \", \").concat(b, \")\") : \"rgba(\".concat(r, \", \").concat(g, \", \").concat(b, \", \").concat(this.roundA, \")\");\n };\n /**\n * Returns the object as a RGBA object.\n */\n TinyColor.prototype.toPercentageRgb = function () {\n var fmt = function (x) { return \"\".concat(Math.round(bound01(x, 255) * 100), \"%\"); };\n return {\n r: fmt(this.r),\n g: fmt(this.g),\n b: fmt(this.b),\n a: this.a,\n };\n };\n /**\n * Returns the RGBA relative values interpolated into a string\n */\n TinyColor.prototype.toPercentageRgbString = function () {\n var rnd = function (x) { return Math.round(bound01(x, 255) * 100); };\n return this.a === 1\n ? \"rgb(\".concat(rnd(this.r), \"%, \").concat(rnd(this.g), \"%, \").concat(rnd(this.b), \"%)\")\n : \"rgba(\".concat(rnd(this.r), \"%, \").concat(rnd(this.g), \"%, \").concat(rnd(this.b), \"%, \").concat(this.roundA, \")\");\n };\n /**\n * The 'real' name of the color -if there is one.\n */\n TinyColor.prototype.toName = function () {\n if (this.a === 0) {\n return 'transparent';\n }\n if (this.a < 1) {\n return false;\n }\n var hex = '#' + rgbToHex(this.r, this.g, this.b, false);\n for (var _i = 0, _a = Object.entries(names); _i < _a.length; _i++) {\n var _b = _a[_i], key = _b[0], value = _b[1];\n if (hex === value) {\n return key;\n }\n }\n return false;\n };\n TinyColor.prototype.toString = function (format) {\n var formatSet = Boolean(format);\n format = format !== null && format !== void 0 ? format : this.format;\n var formattedString = false;\n var hasAlpha = this.a < 1 && this.a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format.startsWith('hex') || format === 'name');\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === 'name' && this.a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === 'rgb') {\n formattedString = this.toRgbString();\n }\n if (format === 'prgb') {\n formattedString = this.toPercentageRgbString();\n }\n if (format === 'hex' || format === 'hex6') {\n formattedString = this.toHexString();\n }\n if (format === 'hex3') {\n formattedString = this.toHexString(true);\n }\n if (format === 'hex4') {\n formattedString = this.toHex8String(true);\n }\n if (format === 'hex8') {\n formattedString = this.toHex8String();\n }\n if (format === 'name') {\n formattedString = this.toName();\n }\n if (format === 'hsl') {\n formattedString = this.toHslString();\n }\n if (format === 'hsv') {\n formattedString = this.toHsvString();\n }\n return formattedString || this.toHexString();\n };\n TinyColor.prototype.toNumber = function () {\n return (Math.round(this.r) << 16) + (Math.round(this.g) << 8) + Math.round(this.b);\n };\n TinyColor.prototype.clone = function () {\n return new TinyColor(this.toString());\n };\n /**\n * Lighten the color a given amount. Providing 100 will always return white.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.lighten = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return new TinyColor(hsl);\n };\n /**\n * Brighten the color a given amount, from 0 to 100.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.brighten = function (amount) {\n if (amount === void 0) { amount = 10; }\n var rgb = this.toRgb();\n rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100))));\n rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100))));\n rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100))));\n return new TinyColor(rgb);\n };\n /**\n * Darken the color a given amount, from 0 to 100.\n * Providing 100 will always return black.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.darken = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return new TinyColor(hsl);\n };\n /**\n * Mix the color with pure white, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return white.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.tint = function (amount) {\n if (amount === void 0) { amount = 10; }\n return this.mix('white', amount);\n };\n /**\n * Mix the color with pure black, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return black.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.shade = function (amount) {\n if (amount === void 0) { amount = 10; }\n return this.mix('black', amount);\n };\n /**\n * Desaturate the color a given amount, from 0 to 100.\n * Providing 100 will is the same as calling greyscale\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.desaturate = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return new TinyColor(hsl);\n };\n /**\n * Saturate the color a given amount, from 0 to 100.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.saturate = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return new TinyColor(hsl);\n };\n /**\n * Completely desaturates a color into greyscale.\n * Same as calling `desaturate(100)`\n */\n TinyColor.prototype.greyscale = function () {\n return this.desaturate(100);\n };\n /**\n * Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n * Values outside of this range will be wrapped into this range.\n */\n TinyColor.prototype.spin = function (amount) {\n var hsl = this.toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return new TinyColor(hsl);\n };\n /**\n * Mix the current color a given amount with another color, from 0 to 100.\n * 0 means no mixing (return current color).\n */\n TinyColor.prototype.mix = function (color, amount) {\n if (amount === void 0) { amount = 50; }\n var rgb1 = this.toRgb();\n var rgb2 = new TinyColor(color).toRgb();\n var p = amount / 100;\n var rgba = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b,\n a: (rgb2.a - rgb1.a) * p + rgb1.a,\n };\n return new TinyColor(rgba);\n };\n TinyColor.prototype.analogous = function (results, slices) {\n if (results === void 0) { results = 6; }\n if (slices === void 0) { slices = 30; }\n var hsl = this.toHsl();\n var part = 360 / slices;\n var ret = [this];\n for (hsl.h = (hsl.h - ((part * results) >> 1) + 720) % 360; --results;) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(new TinyColor(hsl));\n }\n return ret;\n };\n /**\n * taken from https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js\n */\n TinyColor.prototype.complement = function () {\n var hsl = this.toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return new TinyColor(hsl);\n };\n TinyColor.prototype.monochromatic = function (results) {\n if (results === void 0) { results = 6; }\n var hsv = this.toHsv();\n var h = hsv.h;\n var s = hsv.s;\n var v = hsv.v;\n var res = [];\n var modification = 1 / results;\n while (results--) {\n res.push(new TinyColor({ h: h, s: s, v: v }));\n v = (v + modification) % 1;\n }\n return res;\n };\n TinyColor.prototype.splitcomplement = function () {\n var hsl = this.toHsl();\n var h = hsl.h;\n return [\n this,\n new TinyColor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l }),\n new TinyColor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l }),\n ];\n };\n /**\n * Compute how the color would appear on a background\n */\n TinyColor.prototype.onBackground = function (background) {\n var fg = this.toRgb();\n var bg = new TinyColor(background).toRgb();\n var alpha = fg.a + bg.a * (1 - fg.a);\n return new TinyColor({\n r: (fg.r * fg.a + bg.r * bg.a * (1 - fg.a)) / alpha,\n g: (fg.g * fg.a + bg.g * bg.a * (1 - fg.a)) / alpha,\n b: (fg.b * fg.a + bg.b * bg.a * (1 - fg.a)) / alpha,\n a: alpha,\n });\n };\n /**\n * Alias for `polyad(3)`\n */\n TinyColor.prototype.triad = function () {\n return this.polyad(3);\n };\n /**\n * Alias for `polyad(4)`\n */\n TinyColor.prototype.tetrad = function () {\n return this.polyad(4);\n };\n /**\n * Get polyad colors, like (for 1, 2, 3, 4, 5, 6, 7, 8, etc...)\n * monad, dyad, triad, tetrad, pentad, hexad, heptad, octad, etc...\n */\n TinyColor.prototype.polyad = function (n) {\n var hsl = this.toHsl();\n var h = hsl.h;\n var result = [this];\n var increment = 360 / n;\n for (var i = 1; i < n; i++) {\n result.push(new TinyColor({ h: (h + i * increment) % 360, s: hsl.s, l: hsl.l }));\n }\n return result;\n };\n /**\n * compare color vs current color\n */\n TinyColor.prototype.equals = function (color) {\n return this.toRgbString() === new TinyColor(color).toRgbString();\n };\n return TinyColor;\n}());\nexport { TinyColor };\n// kept for backwards compatability with v1\nexport function tinycolor(color, opts) {\n if (color === void 0) { color = ''; }\n if (opts === void 0) { opts = {}; }\n return new TinyColor(color, opts);\n}\n","import { TinyColor } from '@ctrl/tinycolor';\n\nfunction tinycolor(...args) {\n return new TinyColor(...args);\n}\n\nfunction _colorChange(data, oldHue) {\n const alpha = data && data.a;\n let color;\n\n // hsl is better than hex between conversions\n if (data && data.hsl)\n color = tinycolor(data.hsl);\n else if (data && data.hex && data.hex.length > 0)\n color = tinycolor(data.hex);\n else if (data && data.hsv)\n color = tinycolor(data.hsv);\n else if (data && data.rgba)\n color = tinycolor(data.rgba);\n else if (data && data.rgb)\n color = tinycolor(data.rgb);\n else\n color = tinycolor(data);\n\n if (color && (color._a === undefined || color._a === null))\n color.setAlpha(alpha || color.getAlpha());\n\n const hsl = color.toHsl();\n const hsv = color.toHsv();\n\n if (hsl.s === 0)\n hsv.h = hsl.h = data.h || (data.hsl && data.hsl.h) || oldHue || 0;\n\n /* --- comment this block to fix #109, may cause #25 again --- */\n // when the hsv.v is less than 0.0164 (base on test)\n // because of possible loss of precision\n // the result of hue and saturation would be miscalculated\n if (hsv.v < 0.0164) {\n hsv.h = data.h || (data.hsv && data.hsv.h) || 0;\n hsv.s = data.s || (data.hsv && data.hsv.s) || 0;\n }\n\n if (hsl.l < 0.01) {\n hsl.h = data.h || (data.hsl && data.hsl.h) || 0;\n hsl.s = data.s || (data.hsl && data.hsl.s) || 0;\n }\n /* ------ */\n\n return {\n hsl,\n hex: color.toHexString().toUpperCase(),\n hex8: color.toHex8String().toUpperCase(),\n rgba: color.toRgb(),\n hsv,\n oldHue: data.h || oldHue || hsl.h,\n source: data.source,\n a: color.getAlpha(),\n };\n}\n\nvar colorMixin = {\n model: {\n prop: 'modelValue',\n event: 'update:modelValue',\n },\n props: ['modelValue'],\n data() {\n return {\n val: _colorChange(this.modelValue),\n };\n },\n computed: {\n colors: {\n get() {\n return this.val;\n },\n set(newVal) {\n this.val = newVal;\n this.$emit('update:modelValue', newVal);\n },\n },\n },\n watch: {\n modelValue(newVal) {\n this.val = _colorChange(newVal);\n },\n },\n methods: {\n colorChange(data, oldHue) {\n this.oldHue = this.colors.hsl.h;\n this.colors = _colorChange(data, oldHue || this.oldHue);\n },\n isValidHex(hex) {\n return tinycolor(hex).isValid;\n },\n simpleCheckForValidColor(data) {\n const keysToCheck = ['r', 'g', 'b', 'a', 'h', 's', 'l', 'v'];\n let checked = 0;\n let passed = 0;\n\n for (let i = 0; i < keysToCheck.length; i++) {\n const letter = keysToCheck[i];\n if (data[letter]) {\n checked++;\n if (!isNaN(data[letter]))\n passed++;\n }\n }\n\n if (checked === passed)\n return data;\n },\n paletteUpperCase(palette) {\n return palette.map(c => c.toUpperCase());\n },\n isTransparent(color) {\n return tinycolor(color).getAlpha() === 0;\n },\n },\n};\n\nexport { colorMixin as default };\n","import { openBlock, createElementBlock, withDirectives, createElementVNode, vModelText, toDisplayString } from 'vue';\nimport { s as styleInject } from '../../style-inject.es-746bb8ed.js';\nimport { install } from '../../utils/compoent.js';\nimport '../../defaultConfig.js';\n\nvar script = {\n name: 'EditableInput',\n props: {\n label: String,\n labelText: String,\n desc: String,\n value: [String, Number],\n max: Number,\n min: Number,\n arrowOffset: {\n type: Number,\n default: 1,\n },\n },\n computed: {\n val: {\n get() {\n return this.value;\n },\n set(v) {\n // TODO: min\n if (!(this.max === undefined) && +v > this.max)\n this.$refs.input.value = this.max;\n else\n return v;\n },\n },\n labelId() {\n return `input__label__${this.label}__${Math.random().toString().slice(2, 5)}`;\n },\n labelSpanText() {\n return this.labelText || this.label;\n },\n },\n methods: {\n update(e) {\n this.handleChange(e.target.value);\n },\n handleChange(newVal) {\n const data = {};\n data[this.label] = newVal;\n if (data.hex === undefined && data['#'] === undefined)\n this.$emit('change', data);\n else if (newVal.length > 5)\n this.$emit('change', data);\n },\n // **** unused\n // handleBlur (e) {\n // console.log(e)\n // },\n handleKeyDown(e) {\n let { val } = this;\n const number = Number(val);\n\n if (number) {\n const amount = this.arrowOffset || 1;\n\n // Up\n if (e.keyCode === 38) {\n val = number + amount;\n this.handleChange(val);\n e.preventDefault();\n }\n\n // Down\n if (e.keyCode === 40) {\n val = number - amount;\n this.handleChange(val);\n e.preventDefault();\n }\n }\n },\n // **** unused\n // handleDrag (e) {\n // console.log(e)\n // },\n // handleMouseDown (e) {\n // console.log(e)\n // }\n },\n};\n\nconst _hoisted_1 = { class: \"vc-editable-input\" };\nconst _hoisted_2 = [\"aria-labelledby\"];\nconst _hoisted_3 = [\"id\", \"for\"];\nconst _hoisted_4 = { class: \"vc-input__desc\" };\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return (openBlock(), createElementBlock(\"div\", _hoisted_1, [\n withDirectives(createElementVNode(\"input\", {\n ref: \"input\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => (($options.val) = $event)),\n \"aria-labelledby\": $options.labelId,\n class: \"vc-input__input\",\n onKeydown: _cache[1] || (_cache[1] = (...args) => ($options.handleKeyDown && $options.handleKeyDown(...args))),\n onInput: _cache[2] || (_cache[2] = (...args) => ($options.update && $options.update(...args)))\n }, null, 40 /* PROPS, HYDRATE_EVENTS */, _hoisted_2), [\n [vModelText, $options.val]\n ]),\n createElementVNode(\"span\", {\n id: $options.labelId,\n for: $props.label,\n class: \"vc-input__label\"\n }, toDisplayString($options.labelSpanText), 9 /* TEXT, PROPS */, _hoisted_3),\n createElementVNode(\"span\", _hoisted_4, toDisplayString($props.desc), 1 /* TEXT */)\n ]))\n}\n\nvar css_248z = \".vc-editable-input{position:relative}.vc-input__input{border:0;outline:none;padding:0}.vc-input__label{text-transform:capitalize}\";\nstyleInject(css_248z);\n\nscript.render = render;\nscript.__file = \"src/components/editable-input/editable-input.vue\";\n\nscript.install = install;\n\nexport { script as default };\n","function clamp(value, min, max) {\n return min < max\n ? (value < min ? min : value > max ? max : value)\n : (value < max ? max : value > min ? min : value);\n}\n\nexport { clamp };\n","import { clamp } from '../../utils/utils.js';\nimport { openBlock, createElementBlock, normalizeStyle, createElementVNode } from 'vue';\nimport { s as styleInject } from '../../style-inject.es-746bb8ed.js';\nimport { install } from '../../utils/compoent.js';\nimport '../../defaultConfig.js';\n\nvar script = {\n name: 'Saturation',\n props: {\n value: Object,\n },\n computed: {\n colors() {\n return this.value;\n },\n bgColor() {\n return `hsl(${this.colors.hsv.h}, 100%, 50%)`;\n },\n pointerTop() {\n return `${(-(this.colors.hsv.v * 100) + 1) + 100}%`;\n },\n pointerLeft() {\n return `${this.colors.hsv.s * 100}%`;\n },\n },\n methods: {\n handleChange(e, skip) {\n !skip && e.preventDefault();\n const { container } = this.$refs;\n if (!container) {\n // for some edge cases, container may not exist. see #220\n return;\n }\n const containerWidth = container.clientWidth;\n const containerHeight = container.clientHeight;\n\n const xOffset = container.getBoundingClientRect().left + window.pageXOffset;\n const yOffset = container.getBoundingClientRect().top + window.pageYOffset;\n const pageX = e.pageX || (e.touches ? e.touches[0].pageX : 0);\n const pageY = e.pageY || (e.touches ? e.touches[0].pageY : 0);\n const left = clamp(pageX - xOffset, 0, containerWidth);\n const top = clamp(pageY - yOffset, 0, containerHeight);\n const saturation = left / containerWidth;\n const bright = clamp(-(top / containerHeight) + 1, 0, 1);\n\n this.onChange({\n h: this.colors.hsv.h,\n s: saturation,\n v: bright,\n a: this.colors.hsv.a,\n source: 'hsva',\n });\n },\n onChange(param) {\n this.$emit('change', param);\n },\n handleMouseDown(e) {\n // this.handleChange(e, true)\n window.addEventListener('mousemove', this.handleChange);\n window.addEventListener('mouseup', this.handleChange);\n window.addEventListener('mouseup', this.handleMouseUp);\n },\n handleMouseUp(e) {\n this.unbindEventListeners();\n },\n unbindEventListeners() {\n window.removeEventListener('mousemove', this.handleChange);\n window.removeEventListener('mouseup', this.handleChange);\n window.removeEventListener('mouseup', this.handleMouseUp);\n },\n },\n};\n\nconst _hoisted_1 = /*#__PURE__*/createElementVNode(\"div\", { class: \"vc-saturation--white\" }, null, -1 /* HOISTED */);\nconst _hoisted_2 = /*#__PURE__*/createElementVNode(\"div\", { class: \"vc-saturation--black\" }, null, -1 /* HOISTED */);\nconst _hoisted_3 = /*#__PURE__*/createElementVNode(\"div\", { class: \"vc-saturation-circle\" }, null, -1 /* HOISTED */);\nconst _hoisted_4 = [\n _hoisted_3\n];\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return (openBlock(), createElementBlock(\"div\", {\n ref: \"container\",\n class: \"vc-saturation\",\n style: normalizeStyle({ background: $options.bgColor }),\n onMousedown: _cache[0] || (_cache[0] = (...args) => ($options.handleMouseDown && $options.handleMouseDown(...args))),\n onTouchmove: _cache[1] || (_cache[1] = (...args) => ($options.handleChange && $options.handleChange(...args))),\n onTouchstart: _cache[2] || (_cache[2] = (...args) => ($options.handleChange && $options.handleChange(...args)))\n }, [\n _hoisted_1,\n _hoisted_2,\n createElementVNode(\"div\", {\n class: \"vc-saturation-pointer\",\n style: normalizeStyle({ top: $options.pointerTop, left: $options.pointerLeft })\n }, _hoisted_4, 4 /* STYLE */)\n ], 36 /* STYLE, HYDRATE_EVENTS */))\n}\n\nvar css_248z = \".vc-saturation,.vc-saturation--black,.vc-saturation--white{bottom:0;cursor:pointer;left:0;position:absolute;right:0;top:0}.vc-saturation--white{background:linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.vc-saturation--black{background:linear-gradient(0deg,#000,transparent)}.vc-saturation-pointer{cursor:pointer;position:absolute}.vc-saturation-circle{border-radius:50%;box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);cursor:head;height:4px;transform:translate(-2px,-2px);width:4px}\";\nstyleInject(css_248z);\n\nscript.render = render;\nscript.__file = \"src/components/saturation/saturation.vue\";\n\nscript.install = install;\n\nexport { script as default };\n","import { openBlock, createElementBlock, normalizeClass, createElementVNode, normalizeStyle } from 'vue';\nimport { s as styleInject } from '../../style-inject.es-746bb8ed.js';\nimport { install } from '../../utils/compoent.js';\nimport '../../defaultConfig.js';\n\nvar script = {\n name: 'Hue',\n props: {\n value: Object,\n direction: {\n type: String,\n // [horizontal | vertical]\n default: 'horizontal',\n },\n },\n data() {\n return {\n oldHue: 0,\n pullDirection: '',\n };\n },\n computed: {\n colors() {\n return this.value;\n },\n directionClass() {\n return {\n 'vc-hue--horizontal': this.direction === 'horizontal',\n 'vc-hue--vertical': this.direction === 'vertical',\n };\n },\n pointerTop() {\n if (this.direction === 'vertical') {\n if (this.colors.hsl.h === 0 && this.pullDirection === 'right')\n return 0;\n return `${-((this.colors.hsl.h * 100) / 360) + 100}%`;\n }\n return 0;\n },\n pointerLeft() {\n if (this.direction === 'vertical')\n return 0;\n\n if (this.colors.hsl.h === 0 && this.pullDirection === 'right')\n return '100%';\n return `${(this.colors.hsl.h * 100) / 360}%`;\n },\n },\n watch: {\n value: {\n handler(value, oldVal) {\n const { h } = value.hsl;\n if (h !== 0 && h - this.oldHue > 0)\n this.pullDirection = 'right';\n if (h !== 0 && h - this.oldHue < 0)\n this.pullDirection = 'left';\n this.oldHue = h;\n },\n deep: true,\n immediate: true,\n },\n },\n methods: {\n handleChange(e, skip) {\n !skip && e.preventDefault();\n\n const { container } = this.$refs;\n if (!container) {\n // for some edge cases, container may not exist. see #220\n return;\n }\n const containerWidth = container.clientWidth;\n const containerHeight = container.clientHeight;\n\n const xOffset = container.getBoundingClientRect().left + window.pageXOffset;\n const yOffset = container.getBoundingClientRect().top + window.pageYOffset;\n const pageX = e.pageX || (e.touches ? e.touches[0].pageX : 0);\n const pageY = e.pageY || (e.touches ? e.touches[0].pageY : 0);\n const left = pageX - xOffset;\n const top = pageY - yOffset;\n\n let h;\n let percent;\n\n if (this.direction === 'vertical') {\n if (top < 0) {\n h = 360;\n }\n else if (top > containerHeight) {\n h = 0;\n }\n else {\n percent = -(top * 100 / containerHeight) + 100;\n h = (360 * percent / 100);\n }\n\n if (this.colors.hsl.h !== h) {\n this.$emit('change', {\n h,\n s: this.colors.hsl.s,\n l: this.colors.hsl.l,\n a: this.colors.hsl.a,\n source: 'hsl',\n });\n }\n }\n else {\n if (left < 0) {\n h = 0;\n }\n else if (left > containerWidth) {\n h = 360;\n }\n else {\n percent = left * 100 / containerWidth;\n h = (360 * percent / 100);\n }\n\n if (this.colors.hsl.h !== h) {\n this.$emit('change', {\n h,\n s: this.colors.hsl.s,\n l: this.colors.hsl.l,\n a: this.colors.hsl.a,\n source: 'hsl',\n });\n }\n }\n },\n handleMouseDown(e) {\n this.handleChange(e, true);\n window.addEventListener('mousemove', this.handleChange);\n window.addEventListener('mouseup', this.handleChange);\n window.addEventListener('mouseup', this.handleMouseUp);\n },\n handleMouseUp(e) {\n this.unbindEventListeners();\n },\n unbindEventListeners() {\n window.removeEventListener('mousemove', this.handleChange);\n window.removeEventListener('mouseup', this.handleChange);\n window.removeEventListener('mouseup', this.handleMouseUp);\n },\n },\n};\n\nconst _hoisted_1 = [\"aria-valuenow\"];\nconst _hoisted_2 = /*#__PURE__*/createElementVNode(\"div\", { class: \"vc-hue-picker\" }, null, -1 /* HOISTED */);\nconst _hoisted_3 = [\n _hoisted_2\n];\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return (openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"vc-hue\", [$options.directionClass]])\n }, [\n createElementVNode(\"div\", {\n ref: \"container\",\n class: \"vc-hue-container\",\n role: \"slider\",\n \"aria-valuenow\": $options.colors.hsl.h,\n \"aria-valuemin\": \"0\",\n \"aria-valuemax\": \"360\",\n onMousedown: _cache[0] || (_cache[0] = (...args) => ($options.handleMouseDown && $options.handleMouseDown(...args))),\n onTouchmove: _cache[1] || (_cache[1] = (...args) => ($options.handleChange && $options.handleChange(...args))),\n onTouchstart: _cache[2] || (_cache[2] = (...args) => ($options.handleChange && $options.handleChange(...args)))\n }, [\n createElementVNode(\"div\", {\n class: \"vc-hue-pointer\",\n style: normalizeStyle({ top: $options.pointerTop, left: $options.pointerLeft }),\n role: \"presentation\"\n }, _hoisted_3, 4 /* STYLE */)\n ], 40 /* PROPS, HYDRATE_EVENTS */, _hoisted_1)\n ], 2 /* CLASS */))\n}\n\nvar css_248z = \".vc-hue{border-radius:2px;bottom:0;left:0;position:absolute;right:0;top:0}.vc-hue--horizontal{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.vc-hue--vertical{background:linear-gradient(0deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.vc-hue-container{cursor:pointer;height:100%;margin:0 2px;position:relative}.vc-hue-pointer{position:absolute;z-index:2}.vc-hue-picker{background:#fff;border-radius:1px;box-shadow:0 0 2px rgba(0,0,0,.6);cursor:pointer;height:8px;margin-top:1px;transform:translateX(-2px);width:4px}\";\nstyleInject(css_248z);\n\nscript.render = render;\nscript.__file = \"src/components/hue/hue.vue\";\n\nscript.install = install;\n\nexport { script as default };\n","import colorMixin from '../../mixin/color.js';\nimport script$4 from '../editable-input/index.js';\nimport script$1 from '../saturation/index.js';\nimport script$2 from '../hue/index.js';\nimport script$3 from '../alpha/index.js';\nimport script$5 from '../checkboard/index.js';\nimport { resolveComponent, openBlock, createElementBlock, normalizeClass, createElementVNode, createVNode, normalizeStyle, createBlock, createCommentVNode, withDirectives, vShow } from 'vue';\nimport { s as styleInject } from '../../style-inject.es-746bb8ed.js';\nimport { install } from '../../utils/compoent.js';\nimport '@ctrl/tinycolor';\nimport '../../utils/utils.js';\nimport '../../defaultConfig.js';\n\nvar script = {\n name: 'Chrome',\n components: {\n Saturation: script$1,\n Hue: script$2,\n Alpha: script$3,\n EdIn: script$4,\n Checkboard: script$5,\n },\n mixins: [colorMixin],\n props: {\n disableAlpha: {\n type: Boolean,\n default: false,\n },\n disableFields: {\n type: Boolean,\n default: false,\n },\n format: {\n type: String,\n default: 'hex',\n },\n },\n data() {\n return {\n fieldsIndex: 'hex',\n highlight: false,\n };\n },\n computed: {\n hsl() {\n const { h, s, l } = this.colors.hsl;\n return {\n h: h.toFixed(),\n s: `${(s * 100).toFixed()}%`,\n l: `${(l * 100).toFixed()}%`,\n };\n },\n activeColor() {\n const { rgba } = this.colors;\n return `rgba(${[rgba.r, rgba.g, rgba.b, rgba.a].join(',')})`;\n },\n hasAlpha() {\n return this.colors.a < 1;\n },\n },\n watch: {\n format: {\n handler(val) {\n this.fieldsIndex = val;\n },\n immediate: true,\n },\n },\n methods: {\n childChange(data) {\n this.colorChange(data);\n },\n inputChange(data) {\n if (!data)\n return;\n\n if (data.hex) {\n this.isValidHex(data.hex) && this.colorChange({\n hex: data.hex,\n source: 'hex',\n });\n }\n else if (data.r || data.g || data.b || data.a) {\n this.colorChange({\n r: data.r || this.colors.rgba.r,\n g: data.g || this.colors.rgba.g,\n b: data.b || this.colors.rgba.b,\n a: data.a || this.colors.rgba.a,\n source: 'rgba',\n });\n }\n else if (data.h || data.s || data.l) {\n const s = data.s ? (data.s.replace('%', '') / 100) : this.colors.hsl.s;\n const l = data.l ? (data.l.replace('%', '') / 100) : this.colors.hsl.l;\n\n this.colorChange({\n h: data.h || this.colors.hsl.h,\n s,\n l,\n source: 'hsl',\n });\n }\n },\n toggleViews() {\n switch (this.fieldsIndex) {\n case 'hex':\n this.fieldsIndex = `rgb${this.disableAlpha ? '' : 'a'}`;\n break;\n case 'rgb':\n case 'rgba':\n this.fieldsIndex = `hsl${this.disableAlpha ? '' : 'a'}`;\n break;\n default:\n this.fieldsIndex = 'hex';\n break;\n }\n this.$emit('update:format', this.fieldsIndex);\n },\n showHighlight() {\n this.highlight = true;\n },\n hideHighlight() {\n this.highlight = false;\n },\n },\n};\n\nconst _hoisted_1 = { class: \"vc-chrome-saturation-wrap\" };\nconst _hoisted_2 = { class: \"vc-chrome-body\" };\nconst _hoisted_3 = { class: \"vc-chrome-controls\" };\nconst _hoisted_4 = { class: \"vc-chrome-color-wrap\" };\nconst _hoisted_5 = [\"aria-label\"];\nconst _hoisted_6 = { class: \"vc-chrome-sliders\" };\nconst _hoisted_7 = { class: \"vc-chrome-hue-wrap\" };\nconst _hoisted_8 = {\n key: 0,\n class: \"vc-chrome-alpha-wrap\"\n};\nconst _hoisted_9 = {\n key: 0,\n class: \"vc-chrome-fields-wrap\"\n};\nconst _hoisted_10 = { class: \"vc-chrome-fields\" };\nconst _hoisted_11 = { class: \"vc-chrome-field\" };\nconst _hoisted_12 = { class: \"vc-chrome-fields\" };\nconst _hoisted_13 = { class: \"vc-chrome-field\" };\nconst _hoisted_14 = { class: \"vc-chrome-field\" };\nconst _hoisted_15 = { class: \"vc-chrome-field\" };\nconst _hoisted_16 = {\n key: 0,\n class: \"vc-chrome-field\"\n};\nconst _hoisted_17 = { class: \"vc-chrome-fields\" };\nconst _hoisted_18 = { class: \"vc-chrome-field\" };\nconst _hoisted_19 = { class: \"vc-chrome-field\" };\nconst _hoisted_20 = { class: \"vc-chrome-field\" };\nconst _hoisted_21 = {\n key: 0,\n class: \"vc-chrome-field\"\n};\nconst _hoisted_22 = { class: \"vc-chrome-toggle-icon\" };\nconst _hoisted_23 = /*#__PURE__*/createElementVNode(\"path\", {\n fill: \"#333\",\n d: \"M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z\"\n}, null, -1 /* HOISTED */);\nconst _hoisted_24 = [\n _hoisted_23\n];\nconst _hoisted_25 = { class: \"vc-chrome-toggle-icon-highlight\" };\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_Saturation = resolveComponent(\"Saturation\");\n const _component_Checkboard = resolveComponent(\"Checkboard\");\n const _component_Hue = resolveComponent(\"Hue\");\n const _component_Alpha = resolveComponent(\"Alpha\");\n const _component_EdIn = resolveComponent(\"EdIn\");\n\n return (openBlock(), createElementBlock(\"div\", {\n role: \"application\",\n \"aria-label\": \"Chrome color picker\",\n class: normalizeClass([\"vc-chrome\", [$props.disableAlpha ? 'vc-chrome__disable-alpha' : '']])\n }, [\n createElementVNode(\"div\", _hoisted_1, [\n createVNode(_component_Saturation, {\n value: _ctx.colors,\n onChange: $options.childChange\n }, null, 8 /* PROPS */, [\"value\", \"onChange\"])\n ]),\n createElementVNode(\"div\", _hoisted_2, [\n createElementVNode(\"div\", _hoisted_3, [\n createElementVNode(\"div\", _hoisted_4, [\n createElementVNode(\"div\", {\n \"aria-label\": `current color is ${_ctx.colors.hex}`,\n class: \"vc-chrome-active-color\",\n style: normalizeStyle({ background: $options.activeColor })\n }, null, 12 /* STYLE, PROPS */, _hoisted_5),\n (!$props.disableAlpha)\n ? (openBlock(), createBlock(_component_Checkboard, { key: 0 }))\n : createCommentVNode(\"v-if\", true)\n ]),\n createElementVNode(\"div\", _hoisted_6, [\n createElementVNode(\"div\", _hoisted_7, [\n createVNode(_component_Hue, {\n value: _ctx.colors,\n onChange: $options.childChange\n }, null, 8 /* PROPS */, [\"value\", \"onChange\"])\n ]),\n (!$props.disableAlpha)\n ? (openBlock(), createElementBlock(\"div\", _hoisted_8, [\n createVNode(_component_Alpha, {\n value: _ctx.colors,\n onChange: $options.childChange\n }, null, 8 /* PROPS */, [\"value\", \"onChange\"])\n ]))\n : createCommentVNode(\"v-if\", true)\n ])\n ]),\n (!$props.disableFields)\n ? (openBlock(), createElementBlock(\"div\", _hoisted_9, [\n withDirectives(createElementVNode(\"div\", _hoisted_10, [\n createCommentVNode(\" hex \"),\n createElementVNode(\"div\", _hoisted_11, [\n (!$options.hasAlpha)\n ? (openBlock(), createBlock(_component_EdIn, {\n key: 0,\n label: \"hex\",\n value: _ctx.colors.hex,\n onChange: $options.inputChange\n }, null, 8 /* PROPS */, [\"value\", \"onChange\"]))\n : createCommentVNode(\"v-if\", true),\n ($options.hasAlpha)\n ? (openBlock(), createBlock(_component_EdIn, {\n key: 1,\n label: \"hex\",\n value: _ctx.colors.hex8,\n onChange: $options.inputChange\n }, null, 8 /* PROPS */, [\"value\", \"onChange\"]))\n : createCommentVNode(\"v-if\", true)\n ])\n ], 512 /* NEED_PATCH */), [\n [vShow, $data.fieldsIndex === 'hex']\n ]),\n withDirectives(createElementVNode(\"div\", _hoisted_12, [\n createCommentVNode(\" rgba \"),\n createElementVNode(\"div\", _hoisted_13, [\n createVNode(_component_EdIn, {\n label: \"r\",\n value: _ctx.colors.rgba.r,\n onChange: $options.inputChange\n }, null, 8 /* PROPS */, [\"value\", \"onChange\"])\n ]),\n createElementVNode(\"div\", _hoisted_14, [\n createVNode(_component_EdIn, {\n label: \"g\",\n value: _ctx.colors.rgba.g,\n onChange: $options.inputChange\n }, null, 8 /* PROPS */, [\"value\", \"onChange\"])\n ]),\n createElementVNode(\"div\", _hoisted_15, [\n createVNode(_component_EdIn, {\n label: \"b\",\n value: _ctx.colors.rgba.b,\n onChange: $options.inputChange\n }, null, 8 /* PROPS */, [\"value\", \"onChange\"])\n ]),\n (!$props.disableAlpha)\n ? (openBlock(), createElementBlock(\"div\", _hoisted_16, [\n createVNode(_component_EdIn, {\n label: \"a\",\n value: _ctx.colors.a,\n \"arrow-offset\": 0.01,\n max: 1,\n onChange: $options.inputChange\n }, null, 8 /* PROPS */, [\"value\", \"arrow-offset\", \"onChange\"])\n ]))\n : createCommentVNode(\"v-if\", true)\n ], 512 /* NEED_PATCH */), [\n [vShow, ['rgb', 'rgba'].includes($data.fieldsIndex)]\n ]),\n withDirectives(createElementVNode(\"div\", _hoisted_17, [\n createCommentVNode(\" hsla \"),\n createElementVNode(\"div\", _hoisted_18, [\n createVNode(_component_EdIn, {\n label: \"h\",\n value: $options.hsl.h,\n onChange: $options.inputChange\n }, null, 8 /* PROPS */, [\"value\", \"onChange\"])\n ]),\n createElementVNode(\"div\", _hoisted_19, [\n createVNode(_component_EdIn, {\n label: \"s\",\n value: $options.hsl.s,\n onChange: $options.inputChange\n }, null, 8 /* PROPS */, [\"value\", \"onChange\"])\n ]),\n createElementVNode(\"div\", _hoisted_20, [\n createVNode(_component_EdIn, {\n label: \"l\",\n value: $options.hsl.l,\n onChange: $options.inputChange\n }, null, 8 /* PROPS */, [\"value\", \"onChange\"])\n ]),\n (!$props.disableAlpha)\n ? (openBlock(), createElementBlock(\"div\", _hoisted_21, [\n createVNode(_component_EdIn, {\n label: \"a\",\n value: _ctx.colors.a,\n \"arrow-offset\": 0.01,\n max: 1,\n onChange: $options.inputChange\n }, null, 8 /* PROPS */, [\"value\", \"arrow-offset\", \"onChange\"])\n ]))\n : createCommentVNode(\"v-if\", true)\n ], 512 /* NEED_PATCH */), [\n [vShow, ['hsl', 'hsla'].includes($data.fieldsIndex)]\n ]),\n createCommentVNode(\" btn \"),\n createElementVNode(\"div\", {\n class: \"vc-chrome-toggle-btn\",\n role: \"button\",\n \"aria-label\": \"Change another color definition\",\n onClick: _cache[3] || (_cache[3] = (...args) => ($options.toggleViews && $options.toggleViews(...args)))\n }, [\n createElementVNode(\"div\", _hoisted_22, [\n (openBlock(), createElementBlock(\"svg\", {\n style: {\"width\":\"24px\",\"height\":\"24px\"},\n viewBox: \"0 0 24 24\",\n onMouseover: _cache[0] || (_cache[0] = (...args) => ($options.showHighlight && $options.showHighlight(...args))),\n onMouseenter: _cache[1] || (_cache[1] = (...args) => ($options.showHighlight && $options.showHighlight(...args))),\n onMouseout: _cache[2] || (_cache[2] = (...args) => ($options.hideHighlight && $options.hideHighlight(...args)))\n }, _hoisted_24, 32 /* HYDRATE_EVENTS */))\n ]),\n withDirectives(createElementVNode(\"div\", _hoisted_25, null, 512 /* NEED_PATCH */), [\n [vShow, $data.highlight]\n ])\n ]),\n createCommentVNode(\" btn \")\n ]))\n : createCommentVNode(\"v-if\", true)\n ])\n ], 2 /* CLASS */))\n}\n\nvar css_248z = \".vc-chrome{background:#fff;background-color:#fff;border-radius:2px;box-shadow:0 0 2px rgba(0,0,0,.3),0 4px 8px rgba(0,0,0,.3);box-sizing:initial;font-family:Menlo;width:225px}.vc-chrome-controls{display:flex}.vc-chrome-color-wrap{position:relative;width:36px}.vc-chrome-active-color{border-radius:15px;height:30px;overflow:hidden;position:relative;width:30px;z-index:1}.vc-chrome-color-wrap .vc-checkerboard{background-size:auto;border-radius:15px;height:30px;width:30px}.vc-chrome-sliders{flex:1}.vc-chrome-fields-wrap{display:flex;padding-top:16px}.vc-chrome-fields{display:flex;flex:1;margin-left:-6px}.vc-chrome-field{padding-left:6px;width:100%}.vc-chrome-toggle-btn{position:relative;text-align:right;width:32px}.vc-chrome-toggle-icon{cursor:pointer;margin-right:-4px;margin-top:12px;position:relative;z-index:2}.vc-chrome-toggle-icon-highlight{background:#eee;border-radius:4px;height:28px;left:12px;position:absolute;top:10px;width:24px}.vc-chrome-hue-wrap{margin-bottom:8px}.vc-chrome-alpha-wrap,.vc-chrome-hue-wrap{height:10px;position:relative}.vc-chrome-alpha-wrap .vc-alpha-gradient,.vc-chrome-hue-wrap .vc-hue{border-radius:2px}.vc-chrome-alpha-wrap .vc-alpha-picker,.vc-chrome-hue-wrap .vc-hue-picker{background-color:#f8f8f8;border-radius:6px;box-shadow:0 1px 4px 0 rgba(0,0,0,.37);height:12px;transform:translate(-6px,-2px);width:12px}.vc-chrome-body{background-color:#fff;padding:16px 16px 12px}.vc-chrome-saturation-wrap{border-radius:2px 2px 0 0;overflow:hidden;padding-bottom:55%;position:relative;width:100%}.vc-chrome-saturation-wrap .vc-saturation-circle{height:12px;width:12px}.vc-chrome-fields .vc-input__input{border:none;border-radius:2px;box-shadow:inset 0 0 0 1px #dadada;color:#333;font-size:11px;height:21px;text-align:center;width:100%}.vc-chrome-fields .vc-input__label{color:#969696;display:block;font-size:11px;line-height:11px;margin-top:12px;text-align:center;text-transform:uppercase}.vc-chrome__disable-alpha .vc-chrome-active-color{height:18px;width:18px}.vc-chrome__disable-alpha .vc-chrome-color-wrap{width:30px}.vc-chrome__disable-alpha .vc-chrome-hue-wrap{margin-bottom:4px;margin-top:4px}\";\nstyleInject(css_248z);\n\nscript.render = render;\nscript.__file = \"src/components/chrome/chrome.vue\";\n\nscript.install = install;\n\nexport { script as default };\n","import '../assets/NcColorPicker-CO_Jq2Ow.css';\nimport { defineComponent, mergeModels, useModel, ref, computed, createBlock, openBlock, unref, withCtx, createElementVNode, normalizeClass, createVNode, createElementBlock, createCommentVNode, Transition, Fragment, renderList, normalizeStyle, createTextVNode, toDisplayString, renderSlot, normalizeProps, guardReactiveProps } from \"vue\";\nimport { Chrome } from \"@ckpack/vue-color\";\nimport { d as mdiCheck, s as mdiCloseCircleOutline, t as mdiArrowLeft, u as mdiDotsHorizontal } from \"./mdi-XFJRiRqJ.mjs\";\nimport { r as register, a as t } from \"./_l10n-DrTiip5c.mjs\";\nimport { d as defaultPalette, a as COLOR_BLACK, b as COLOR_WHITE } from \"./colors-Go3zmZRD.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { N as NcButton } from \"./NcButton-Dc8V4Urj.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-BvLanNaW.mjs\";\nimport { N as NcPopover } from \"./NcPopover-C-MTaPCs.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister();\nconst _hoisted_1 = [\"aria-label\"];\nconst _hoisted_2 = {\n key: 0,\n class: \"color-picker__simple\"\n};\nconst _hoisted_3 = [\"aria-label\", \"name\", \"checked\", \"onClick\"];\nconst _hoisted_4 = [\"title\"];\nconst _hoisted_5 = [\"aria-label\", \"name\", \"checked\"];\nconst _hoisted_6 = {\n key: 0,\n class: \"color-picker__navigation\"\n};\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcColorPicker\",\n props: /* @__PURE__ */ mergeModels({\n advancedFields: { type: Boolean },\n clearable: { type: Boolean },\n container: { default: \"body\" },\n palette: { default: () => [] },\n paletteOnly: { type: Boolean }\n }, {\n \"modelValue\": { required: true },\n \"modelModifiers\": {},\n \"open\": { type: Boolean },\n \"openModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"submit\", \"closed\"], [\"update:modelValue\", \"update:open\"]),\n setup(__props, { emit: __emit }) {\n const currentColor = useModel(__props, \"modelValue\");\n const open = useModel(__props, \"open\");\n const props = __props;\n const emit = __emit;\n const HEX_REGEX = /^#([a-f0-9]{3}|[a-f0-9]{6})$/i;\n const id = createElementId();\n const advanced = ref(false);\n const normalizedPalette = computed(() => {\n let palette = props.palette;\n for (const color of palette) {\n if (typeof color === \"string\" && !color.match(HEX_REGEX) || typeof color === \"object\" && !color.color?.match(HEX_REGEX)) {\n logger.error(\"[NcColorPicker] Invalid palette passed\", { color });\n palette = [];\n break;\n }\n }\n if (palette.length === 0) {\n palette = props.clearable ? [...defaultPalette, COLOR_BLACK, COLOR_WHITE] : [...defaultPalette];\n }\n return palette.map((item) => ({\n color: typeof item === \"object\" ? item.color : item,\n name: typeof item === \"object\" && item.name ? item.name : t(\"A color with a HEX value {hex}\", { hex: typeof item === \"string\" ? item : item.color })\n }));\n });\n function handleConfirm(hideCallback) {\n emit(\"submit\", currentColor.value);\n hideCallback();\n advanced.value = false;\n }\n function toggleColor(color) {\n color = typeof color === \"string\" ? color : color.color;\n if (props.clearable && currentColor.value === color) {\n currentColor.value = void 0;\n } else {\n currentColor.value = color;\n }\n }\n function pickCustomColor(color) {\n currentColor.value = color.hex;\n }\n function getContrastColor(color) {\n return calculateLuma(color) > 0.5 ? COLOR_BLACK.color : COLOR_WHITE.color;\n }\n function calculateLuma(color) {\n const [red, green, blue] = hexToRGB(color);\n return (0.2126 * red + 0.7152 * green + 0.0722 * blue) / 255;\n }\n function hexToRGB(hex) {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n if (!result) {\n return [0, 0, 0];\n }\n return [parseInt(result[1], 16), parseInt(result[2], 16), parseInt(result[3], 16)];\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(NcPopover), {\n shown: open.value,\n \"onUpdate:shown\": _cache[3] || (_cache[3] = ($event) => open.value = $event),\n container: _ctx.container,\n \"popup-role\": \"dialog\",\n onApplyHide: _cache[4] || (_cache[4] = ($event) => emit(\"closed\"))\n }, {\n trigger: withCtx((slotProps) => [\n renderSlot(_ctx.$slots, \"default\", normalizeProps(guardReactiveProps(slotProps)), void 0, true)\n ]),\n default: withCtx((slotProps) => [\n createElementVNode(\"div\", {\n role: \"dialog\",\n class: normalizeClass([\"color-picker\", {\n \"color-picker--advanced-fields\": advanced.value && _ctx.advancedFields,\n \"color-picker--clearable\": _ctx.clearable\n }]),\n \"aria-modal\": \"true\",\n \"aria-label\": unref(t)(\"Color picker\")\n }, [\n createVNode(Transition, {\n name: \"slide\",\n mode: \"out-in\"\n }, {\n default: withCtx(() => [\n !advanced.value ? (openBlock(), createElementBlock(\"div\", _hoisted_2, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(normalizedPalette.value, ({ color, name }, index) => {\n return openBlock(), createElementBlock(\"label\", {\n key: index,\n class: normalizeClass([\"color-picker__simple-color-circle\", { \"color-picker__simple-color-circle--active\": color === currentColor.value }]),\n style: normalizeStyle({\n backgroundColor: color,\n color: getContrastColor(color)\n })\n }, [\n color === currentColor.value ? (openBlock(), createBlock(unref(NcIconSvgWrapper), {\n key: 0,\n path: unref(mdiCheck)\n }, null, 8, [\"path\"])) : createCommentVNode(\"\", true),\n createElementVNode(\"input\", {\n type: \"radio\",\n class: \"hidden-visually\",\n \"aria-label\": name,\n name: `color-picker-${unref(id)}`,\n checked: color === currentColor.value,\n onClick: ($event) => toggleColor(color)\n }, null, 8, _hoisted_3)\n ], 6);\n }), 128)),\n _ctx.clearable ? (openBlock(), createElementBlock(\"label\", {\n key: 0,\n class: \"color-picker__clear\",\n title: unref(t)(\"No color\")\n }, [\n createVNode(unref(NcIconSvgWrapper), {\n size: currentColor.value ? 28 : 34,\n path: unref(mdiCloseCircleOutline)\n }, null, 8, [\"size\", \"path\"]),\n createElementVNode(\"input\", {\n type: \"radio\",\n class: \"hidden-visually\",\n \"aria-label\": unref(t)(\"No color\"),\n name: `color-picker-${unref(id)}`,\n checked: !currentColor.value,\n onClick: _cache[0] || (_cache[0] = ($event) => currentColor.value = void 0)\n }, null, 8, _hoisted_5)\n ], 8, _hoisted_4)) : createCommentVNode(\"\", true)\n ])) : (openBlock(), createBlock(unref(Chrome), {\n key: 1,\n class: \"color-picker__advanced\",\n \"disable-alpha\": true,\n \"disable-fields\": !_ctx.advancedFields,\n \"model-value\": currentColor.value ?? \"#000000\",\n \"onUpdate:modelValue\": pickCustomColor\n }, null, 8, [\"disable-fields\", \"model-value\"]))\n ]),\n _: 1\n }),\n !_ctx.paletteOnly ? (openBlock(), createElementBlock(\"div\", _hoisted_6, [\n advanced.value ? (openBlock(), createBlock(unref(NcButton), {\n key: 0,\n \"aria-label\": unref(t)(\"Back\"),\n title: unref(t)(\"Back\"),\n variant: \"tertiary\",\n onClick: _cache[1] || (_cache[1] = ($event) => advanced.value = false)\n }, {\n icon: withCtx(() => [\n createVNode(unref(NcIconSvgWrapper), {\n directional: \"\",\n path: unref(mdiArrowLeft)\n }, null, 8, [\"path\"])\n ]),\n _: 1\n }, 8, [\"aria-label\", \"title\"])) : (openBlock(), createBlock(unref(NcButton), {\n key: 1,\n \"aria-label\": unref(t)(\"More options\"),\n title: unref(t)(\"More options\"),\n variant: \"tertiary\",\n onClick: _cache[2] || (_cache[2] = ($event) => advanced.value = true)\n }, {\n icon: withCtx(() => [\n createVNode(unref(NcIconSvgWrapper), { path: unref(mdiDotsHorizontal) }, null, 8, [\"path\"])\n ]),\n _: 1\n }, 8, [\"aria-label\", \"title\"])),\n createVNode(unref(NcButton), {\n variant: \"primary\",\n onClick: ($event) => handleConfirm(slotProps.hide)\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(unref(t)(\"Choose\")), 1)\n ]),\n _: 2\n }, 1032, [\"onClick\"])\n ])) : createCommentVNode(\"\", true)\n ], 10, _hoisted_1)\n ]),\n _: 3\n }, 8, [\"shown\", \"container\"]);\n };\n }\n});\nconst NcColorPicker = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-3d24879b\"]]);\nexport {\n NcColorPicker as N\n};\n//# sourceMappingURL=NcColorPicker-Kc0JqRtp.mjs.map\n"],"names":["prefix","styleInject","css","ref","insertAt","head","style","install","app","options","componentPrefix","_checkboardCache","script","getCheckboard","renderCheckboard","c1","c2","size","canvas","ctx","key","checkboard","render","_ctx","_cache","$props","$setup","$data","$options","openBlock","createElementBlock","normalizeStyle","css_248z","script$1","rgba","rgbStr","skip","container","containerWidth","xOffset","left","a","_hoisted_1","_hoisted_2","_hoisted_3","createElementVNode","_hoisted_4","_component_Checkboard","resolveComponent","createVNode","args","bound01","n","max","isOnePointZero","isPercent","isPercentage","clamp01","val","boundAlpha","convertToPercentage","pad2","c","rgbToRgb","r","g","b","rgbToHsl","min","h","s","l","d","hue2rgb","p","q","t","hslToRgb","rgbToHsv","v","hsvToRgb","i","f","mod","rgbToHex","allow3Char","hex","rgbaToHex","allow4Char","convertDecimalToHex","convertHexToDecimal","parseIntFromHex","numberInputToObject","color","names","inputToRGB","rgb","ok","format","stringInputToObject","isValidCSSUnit","CSS_INTEGER","CSS_NUMBER","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","matchers","named","match","TinyColor","opts","_a","R","G","B","RsRGB","GsRGB","BsRGB","alpha","hsv","hsl","allowShortChar","fmt","x","rnd","_i","_b","value","formatSet","formattedString","hasAlpha","needsAlphaFormat","amount","hue","rgb1","rgb2","results","slices","part","ret","res","modification","background","fg","bg","result","increment","tinycolor","_colorChange","data","oldHue","colorMixin","newVal","keysToCheck","checked","passed","letter","palette","number","withDirectives","$event","vModelText","toDisplayString","clamp","containerHeight","yOffset","pageX","pageY","top","saturation","bright","param","oldVal","percent","normalizeClass","script$2","script$3","script$4","script$5","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","_component_Saturation","_component_Hue","_component_Alpha","_component_EdIn","createCommentVNode","createBlock","vShow","register","_sfc_main","defineComponent","mergeModels","__props","__emit","currentColor","useModel","open","props","emit","HEX_REGEX","id","createElementId","advanced","normalizedPalette","computed","logger","defaultPalette","COLOR_BLACK","COLOR_WHITE","item","handleConfirm","hideCallback","toggleColor","pickCustomColor","getContrastColor","calculateLuma","red","green","blue","hexToRGB","unref","NcPopover","withCtx","slotProps","renderSlot","normalizeProps","guardReactiveProps","Transition","Chrome","Fragment","renderList","name","index","NcIconSvgWrapper","mdiCheck","mdiCloseCircleOutline","NcButton","mdiArrowLeft","mdiDotsHorizontal","createTextVNode","NcColorPicker","_export_sfc"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]} \ No newline at end of file diff --git a/dist/NcColorPicker-Kc0JqRtp-VtydDeG1.chunk.mjs.map.license b/dist/NcColorPicker-Kc0JqRtp-G7GArS5K.chunk.mjs.map.license similarity index 100% rename from dist/NcColorPicker-Kc0JqRtp-VtydDeG1.chunk.mjs.map.license rename to dist/NcColorPicker-Kc0JqRtp-G7GArS5K.chunk.mjs.map.license diff --git a/dist/NcColorPicker-Kc0JqRtp-VtydDeG1.chunk.mjs b/dist/NcColorPicker-Kc0JqRtp-VtydDeG1.chunk.mjs deleted file mode 100644 index e00e2fcb5de9c..0000000000000 --- a/dist/NcColorPicker-Kc0JqRtp-VtydDeG1.chunk.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import{j as m,o as p,K as E,f as I,k as l,e as v,E as T,ac as xe,t as ae,n as Y,l as x,c as $,G as B,b as we,p as re,q as ne,r as ye,x as ke,w as F,u as f,ab as Ce,F as Me,C as Se,g as _e,m as He,a9 as Ae,aa as $e}from"./runtime-dom.esm-bundler-BrYCUcZF.chunk.mjs";import{l as Le,a as U,d as Ee,f as Re,c as K,g as Fe,h as Ie}from"./NcNoteCard-CVhtNL04-hwuc093N.chunk.mjs";import{r as De,_ as Ne,c as Te,t as M}from"./createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs";import{d as ie,C as se,a as le}from"./colors-Go3zmZRD-DU6ImAGi.chunk.mjs";import{H as ze}from"./index-JpgrUA2Z-BFiKKJ1W.chunk.mjs";const Be="";function D(e,t){t===void 0&&(t={});var a=t.insertAt;if(!(!e||typeof document>"u")){var r=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css",a==="top"&&r.firstChild?r.insertBefore(n,r.firstChild):r.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}}const N=function(e,t){const{componentPrefix:a=Be}=t||{};e.component(`${a}${this.name}`,this)},G={};var z={name:"Checkboard",props:{size:{type:[Number,String],default:8},white:{type:String,default:"#fff"},grey:{type:String,default:"#e6e6e6"}},computed:{bgStyle(){return{"background-image":`url(${Ve(this.white,this.grey,this.size)})`}}}};function Ue(e,t,a){if(typeof document>"u")return null;const r=document.createElement("canvas");r.width=r.height=a*2;const n=r.getContext("2d");return n?(n.fillStyle=e,n.fillRect(0,0,r.width,r.height),n.fillStyle=t,n.fillRect(0,0,a,a),n.translate(a,a),n.fillRect(0,0,a,a),r.toDataURL()):null}function Ve(e,t,a){const r=`${e},${t},${a}`;if(G[r])return G[r];const n=Ue(e,t,a);return G[r]=n,n}function Oe(e,t,a,r,n,o){return p(),m("div",{class:"vc-checkerboard",style:E(o.bgStyle)},null,4)}var je=".vc-checkerboard{background-size:contain;bottom:0;left:0;position:absolute;right:0;top:0}";D(je),z.render=Oe,z.__file="src/components/checkboard/checkboard.vue",z.install=N;var j={name:"Alpha",components:{Checkboard:z},props:{value:Object,onChange:Function},computed:{colors(){return this.value},gradientColor(){const{rgba:e}=this.colors,t=[e.r,e.g,e.b].join(",");return`linear-gradient(to right, rgba(${t}, 0) 0%, rgba(${t}, 1) 100%)`}},methods:{handleChange(e,t){!t&&e.preventDefault();const{container:a}=this.$refs;if(!a)return;const r=a.clientWidth,n=a.getBoundingClientRect().left+window.pageXOffset,o=(e.pageX||(e.touches?e.touches[0].pageX:0))-n;let i;o<0?i=0:o>r?i=1:i=Math.round(o*100/r)/100,this.colors.a!==i&&this.$emit("change",{h:this.colors.hsl.h,s:this.colors.hsl.s,l:this.colors.hsl.l,a:i,source:"rgba"})},handleMouseDown(e){this.handleChange(e,!0),window.addEventListener("mousemove",this.handleChange),window.addEventListener("mouseup",this.handleMouseUp)},handleMouseUp(){this.unbindEventListeners()},unbindEventListeners(){window.removeEventListener("mousemove",this.handleChange),window.removeEventListener("mouseup",this.handleMouseUp)}}};const qe={class:"vc-alpha"},Xe={class:"vc-alpha-checkboard-wrap"},We=l("div",{class:"vc-alpha-picker"},null,-1),Pe=[We];function Ye(e,t,a,r,n,o){const i=I("Checkboard");return p(),m("div",qe,[l("div",Xe,[v(i)]),l("div",{class:"vc-alpha-gradient",style:E({background:o.gradientColor})},null,4),l("div",{ref:"container",class:"vc-alpha-container",onMousedown:t[0]||(t[0]=(...s)=>o.handleMouseDown&&o.handleMouseDown(...s)),onTouchmove:t[1]||(t[1]=(...s)=>o.handleChange&&o.handleChange(...s)),onTouchstart:t[2]||(t[2]=(...s)=>o.handleChange&&o.handleChange(...s))},[l("div",{class:"vc-alpha-pointer",style:E({left:`${o.colors.a*100}%`})},Pe,4)],544)])}var Ke=".vc-alpha,.vc-alpha-checkboard-wrap{bottom:0;left:0;position:absolute;right:0;top:0}.vc-alpha-checkboard-wrap{overflow:hidden}.vc-alpha-gradient{bottom:0;left:0;position:absolute;right:0;top:0}.vc-alpha-container{cursor:pointer;height:100%;margin:0 3px;position:relative;z-index:2}.vc-alpha-pointer{position:absolute;z-index:2}.vc-alpha-picker{background:#fff;border-radius:1px;box-shadow:0 0 2px rgba(0,0,0,.6);cursor:pointer;height:8px;margin-top:1px;transform:translateX(-2px);width:4px}";D(Ke),j.render=Ye,j.__file="src/components/alpha/alpha.vue",j.install=N;function b(e,t){Ge(e)&&(e="100%");var a=Ze(e);return e=t===360?e:Math.min(t,Math.max(0,parseFloat(e))),a&&(e=parseInt(String(e*t),10)/100),Math.abs(e-t)<1e-6?1:(t===360?e=(e<0?e%t+t:e%t)/parseFloat(String(t)):e=e%t/parseFloat(String(t)),e)}function V(e){return Math.min(1,Math.max(0,e))}function Ge(e){return typeof e=="string"&&e.indexOf(".")!==-1&&parseFloat(e)===1}function Ze(e){return typeof e=="string"&&e.indexOf("%")!==-1}function pe(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function O(e){return e<=1?"".concat(Number(e)*100,"%"):e}function R(e){return e.length===1?"0"+e:String(e)}function Je(e,t,a){return{r:b(e,255)*255,g:b(t,255)*255,b:b(a,255)*255}}function he(e,t,a){e=b(e,255),t=b(t,255),a=b(a,255);var r=Math.max(e,t,a),n=Math.min(e,t,a),o=0,i=0,s=(r+n)/2;if(r===n)i=0,o=0;else{var d=r-n;switch(i=s>.5?d/(2-r-n):d/(r+n),r){case e:o=(t-a)/d+(t1&&(a-=1),a<1/6?e+(t-e)*(6*a):a<1/2?t:a<2/3?e+(t-e)*(2/3-a)*6:e}function Qe(e,t,a){var r,n,o;if(e=b(e,360),t=b(t,100),a=b(a,100),t===0)n=a,o=a,r=a;else{var i=a<.5?a*(1+t):a+t-a*t,s=2*a-i;r=Z(s,i,e+1/3),n=Z(s,i,e),o=Z(s,i,e-1/3)}return{r:r*255,g:n*255,b:o*255}}function ce(e,t,a){e=b(e,255),t=b(t,255),a=b(a,255);var r=Math.max(e,t,a),n=Math.min(e,t,a),o=0,i=r,s=r-n,d=r===0?0:s/r;if(r===n)o=0;else{switch(r){case e:o=(t-a)/s+(t>16,g:(e&65280)>>8,b:e&255}}var oe={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",goldenrod:"#daa520",gold:"#ffd700",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavenderblush:"#fff0f5",lavender:"#e6e6fa",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};function rt(e){var t={r:0,g:0,b:0},a=1,r=null,n=null,o=null,i=!1,s=!1;return typeof e=="string"&&(e=st(e)),typeof e=="object"&&(S(e.r)&&S(e.g)&&S(e.b)?(t=Je(e.r,e.g,e.b),i=!0,s=String(e.r).substr(-1)==="%"?"prgb":"rgb"):S(e.h)&&S(e.s)&&S(e.v)?(r=O(e.s),n=O(e.v),t=et(e.h,r,n),i=!0,s="hsv"):S(e.h)&&S(e.s)&&S(e.l)&&(r=O(e.s),o=O(e.l),t=Qe(e.h,r,o),i=!0,s="hsl"),Object.prototype.hasOwnProperty.call(e,"a")&&(a=e.a)),a=pe(a),{ok:i,format:e.format||s,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a}}var nt="[-\\+]?\\d+%?",it="[-\\+]?\\d*\\.\\d+%?",L="(?:".concat(it,")|(?:").concat(nt,")"),J="[\\s|\\(]+(".concat(L,")[,|\\s]+(").concat(L,")[,|\\s]+(").concat(L,")\\s*\\)?"),Q="[\\s|\\(]+(".concat(L,")[,|\\s]+(").concat(L,")[,|\\s]+(").concat(L,")[,|\\s]+(").concat(L,")\\s*\\)?"),C={CSS_UNIT:new RegExp(L),rgb:new RegExp("rgb"+J),rgba:new RegExp("rgba"+Q),hsl:new RegExp("hsl"+J),hsla:new RegExp("hsla"+Q),hsv:new RegExp("hsv"+J),hsva:new RegExp("hsva"+Q),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/};function st(e){if(e=e.trim().toLowerCase(),e.length===0)return!1;var t=!1;if(oe[e])e=oe[e],t=!0;else if(e==="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var a=C.rgb.exec(e);return a?{r:a[1],g:a[2],b:a[3]}:(a=C.rgba.exec(e),a?{r:a[1],g:a[2],b:a[3],a:a[4]}:(a=C.hsl.exec(e),a?{h:a[1],s:a[2],l:a[3]}:(a=C.hsla.exec(e),a?{h:a[1],s:a[2],l:a[3],a:a[4]}:(a=C.hsv.exec(e),a?{h:a[1],s:a[2],v:a[3]}:(a=C.hsva.exec(e),a?{h:a[1],s:a[2],v:a[3],a:a[4]}:(a=C.hex8.exec(e),a?{r:w(a[1]),g:w(a[2]),b:w(a[3]),a:ue(a[4]),format:t?"name":"hex8"}:(a=C.hex6.exec(e),a?{r:w(a[1]),g:w(a[2]),b:w(a[3]),format:t?"name":"hex"}:(a=C.hex4.exec(e),a?{r:w(a[1]+a[1]),g:w(a[2]+a[2]),b:w(a[3]+a[3]),a:ue(a[4]+a[4]),format:t?"name":"hex8"}:(a=C.hex3.exec(e),a?{r:w(a[1]+a[1]),g:w(a[2]+a[2]),b:w(a[3]+a[3]),format:t?"name":"hex"}:!1)))))))))}function S(e){return!!C.CSS_UNIT.exec(String(e))}var lt=(function(){function e(t,a){t===void 0&&(t=""),a===void 0&&(a={});var r;if(t instanceof e)return t;typeof t=="number"&&(t=ot(t)),this.originalInput=t;var n=rt(t);this.originalInput=t,this.r=n.r,this.g=n.g,this.b=n.b,this.a=n.a,this.roundA=Math.round(100*this.a)/100,this.format=(r=a.format)!==null&&r!==void 0?r:n.format,this.gradientType=a.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=n.ok}return e.prototype.isDark=function(){return this.getBrightness()<128},e.prototype.isLight=function(){return!this.isDark()},e.prototype.getBrightness=function(){var t=this.toRgb();return(t.r*299+t.g*587+t.b*114)/1e3},e.prototype.getLuminance=function(){var t=this.toRgb(),a,r,n,o=t.r/255,i=t.g/255,s=t.b/255;return o<=.03928?a=o/12.92:a=Math.pow((o+.055)/1.055,2.4),i<=.03928?r=i/12.92:r=Math.pow((i+.055)/1.055,2.4),s<=.03928?n=s/12.92:n=Math.pow((s+.055)/1.055,2.4),.2126*a+.7152*r+.0722*n},e.prototype.getAlpha=function(){return this.a},e.prototype.setAlpha=function(t){return this.a=pe(t),this.roundA=Math.round(100*this.a)/100,this},e.prototype.isMonochrome=function(){var t=this.toHsl().s;return t===0},e.prototype.toHsv=function(){var t=ce(this.r,this.g,this.b);return{h:t.h*360,s:t.s,v:t.v,a:this.a}},e.prototype.toHsvString=function(){var t=ce(this.r,this.g,this.b),a=Math.round(t.h*360),r=Math.round(t.s*100),n=Math.round(t.v*100);return this.a===1?"hsv(".concat(a,", ").concat(r,"%, ").concat(n,"%)"):"hsva(".concat(a,", ").concat(r,"%, ").concat(n,"%, ").concat(this.roundA,")")},e.prototype.toHsl=function(){var t=he(this.r,this.g,this.b);return{h:t.h*360,s:t.s,l:t.l,a:this.a}},e.prototype.toHslString=function(){var t=he(this.r,this.g,this.b),a=Math.round(t.h*360),r=Math.round(t.s*100),n=Math.round(t.l*100);return this.a===1?"hsl(".concat(a,", ").concat(r,"%, ").concat(n,"%)"):"hsla(".concat(a,", ").concat(r,"%, ").concat(n,"%, ").concat(this.roundA,")")},e.prototype.toHex=function(t){return t===void 0&&(t=!1),de(this.r,this.g,this.b,t)},e.prototype.toHexString=function(t){return t===void 0&&(t=!1),"#"+this.toHex(t)},e.prototype.toHex8=function(t){return t===void 0&&(t=!1),tt(this.r,this.g,this.b,this.a,t)},e.prototype.toHex8String=function(t){return t===void 0&&(t=!1),"#"+this.toHex8(t)},e.prototype.toHexShortString=function(t){return t===void 0&&(t=!1),this.a===1?this.toHexString(t):this.toHex8String(t)},e.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},e.prototype.toRgbString=function(){var t=Math.round(this.r),a=Math.round(this.g),r=Math.round(this.b);return this.a===1?"rgb(".concat(t,", ").concat(a,", ").concat(r,")"):"rgba(".concat(t,", ").concat(a,", ").concat(r,", ").concat(this.roundA,")")},e.prototype.toPercentageRgb=function(){var t=function(a){return"".concat(Math.round(b(a,255)*100),"%")};return{r:t(this.r),g:t(this.g),b:t(this.b),a:this.a}},e.prototype.toPercentageRgbString=function(){var t=function(a){return Math.round(b(a,255)*100)};return this.a===1?"rgb(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%)"):"rgba(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%, ").concat(this.roundA,")")},e.prototype.toName=function(){if(this.a===0)return"transparent";if(this.a<1)return!1;for(var t="#"+de(this.r,this.g,this.b,!1),a=0,r=Object.entries(oe);a=0,o=!a&&n&&(t.startsWith("hex")||t==="name");return o?t==="name"&&this.a===0?this.toName():this.toRgbString():(t==="rgb"&&(r=this.toRgbString()),t==="prgb"&&(r=this.toPercentageRgbString()),(t==="hex"||t==="hex6")&&(r=this.toHexString()),t==="hex3"&&(r=this.toHexString(!0)),t==="hex4"&&(r=this.toHex8String(!0)),t==="hex8"&&(r=this.toHex8String()),t==="name"&&(r=this.toName()),t==="hsl"&&(r=this.toHslString()),t==="hsv"&&(r=this.toHsvString()),r||this.toHexString())},e.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},e.prototype.clone=function(){return new e(this.toString())},e.prototype.lighten=function(t){t===void 0&&(t=10);var a=this.toHsl();return a.l+=t/100,a.l=V(a.l),new e(a)},e.prototype.brighten=function(t){t===void 0&&(t=10);var a=this.toRgb();return a.r=Math.max(0,Math.min(255,a.r-Math.round(255*-(t/100)))),a.g=Math.max(0,Math.min(255,a.g-Math.round(255*-(t/100)))),a.b=Math.max(0,Math.min(255,a.b-Math.round(255*-(t/100)))),new e(a)},e.prototype.darken=function(t){t===void 0&&(t=10);var a=this.toHsl();return a.l-=t/100,a.l=V(a.l),new e(a)},e.prototype.tint=function(t){return t===void 0&&(t=10),this.mix("white",t)},e.prototype.shade=function(t){return t===void 0&&(t=10),this.mix("black",t)},e.prototype.desaturate=function(t){t===void 0&&(t=10);var a=this.toHsl();return a.s-=t/100,a.s=V(a.s),new e(a)},e.prototype.saturate=function(t){t===void 0&&(t=10);var a=this.toHsl();return a.s+=t/100,a.s=V(a.s),new e(a)},e.prototype.greyscale=function(){return this.desaturate(100)},e.prototype.spin=function(t){var a=this.toHsl(),r=(a.h+t)%360;return a.h=r<0?360+r:r,new e(a)},e.prototype.mix=function(t,a){a===void 0&&(a=50);var r=this.toRgb(),n=new e(t).toRgb(),o=a/100,i={r:(n.r-r.r)*o+r.r,g:(n.g-r.g)*o+r.g,b:(n.b-r.b)*o+r.b,a:(n.a-r.a)*o+r.a};return new e(i)},e.prototype.analogous=function(t,a){t===void 0&&(t=6),a===void 0&&(a=30);var r=this.toHsl(),n=360/a,o=[this];for(r.h=(r.h-(n*t>>1)+720)%360;--t;)r.h=(r.h+n)%360,o.push(new e(r));return o},e.prototype.complement=function(){var t=this.toHsl();return t.h=(t.h+180)%360,new e(t)},e.prototype.monochromatic=function(t){t===void 0&&(t=6);for(var a=this.toHsv(),r=a.h,n=a.s,o=a.v,i=[],s=1/t;t--;)i.push(new e({h:r,s:n,v:o})),o=(o+s)%1;return i},e.prototype.splitcomplement=function(){var t=this.toHsl(),a=t.h;return[this,new e({h:(a+72)%360,s:t.s,l:t.l}),new e({h:(a+216)%360,s:t.s,l:t.l})]},e.prototype.onBackground=function(t){var a=this.toRgb(),r=new e(t).toRgb(),n=a.a+r.a*(1-a.a);return new e({r:(a.r*a.a+r.r*r.a*(1-a.a))/n,g:(a.g*a.a+r.g*r.a*(1-a.a))/n,b:(a.b*a.a+r.b*r.a*(1-a.a))/n,a:n})},e.prototype.triad=function(){return this.polyad(3)},e.prototype.tetrad=function(){return this.polyad(4)},e.prototype.polyad=function(t){for(var a=this.toHsl(),r=a.h,n=[this],o=360/t,i=1;i0?r=A(e.hex):e&&e.hsv?r=A(e.hsv):e&&e.rgba?r=A(e.rgba):e&&e.rgb?r=A(e.rgb):r=A(e),r&&(r._a===void 0||r._a===null)&&r.setAlpha(a||r.getAlpha());const n=r.toHsl(),o=r.toHsv();return n.s===0&&(o.h=n.h=e.h||e.hsl&&e.hsl.h||t||0),o.v<.0164&&(o.h=e.h||e.hsv&&e.hsv.h||0,o.s=e.s||e.hsv&&e.hsv.s||0),n.l<.01&&(n.h=e.h||e.hsl&&e.hsl.h||0,n.s=e.s||e.hsl&&e.hsl.s||0),{hsl:n,hex:r.toHexString().toUpperCase(),hex8:r.toHex8String().toUpperCase(),rgba:r.toRgb(),hsv:o,oldHue:e.h||t||n.h,source:e.source,a:r.getAlpha()}}var ht={model:{prop:"modelValue",event:"update:modelValue"},props:["modelValue"],data(){return{val:ee(this.modelValue)}},computed:{colors:{get(){return this.val},set(e){this.val=e,this.$emit("update:modelValue",e)}}},watch:{modelValue(e){this.val=ee(e)}},methods:{colorChange(e,t){this.oldHue=this.colors.hsl.h,this.colors=ee(e,t||this.oldHue)},isValidHex(e){return A(e).isValid},simpleCheckForValidColor(e){const t=["r","g","b","a","h","s","l","v"];let a=0,r=0;for(let n=0;nt.toUpperCase())},isTransparent(e){return A(e).getAlpha()===0}}},q={name:"EditableInput",props:{label:String,labelText:String,desc:String,value:[String,Number],max:Number,min:Number,arrowOffset:{type:Number,default:1}},computed:{val:{get(){return this.value},set(e){if(this.max!==void 0&&+e>this.max)this.$refs.input.value=this.max;else return e}},labelId(){return`input__label__${this.label}__${Math.random().toString().slice(2,5)}`},labelSpanText(){return this.labelText||this.label}},methods:{update(e){this.handleChange(e.target.value)},handleChange(e){const t={};t[this.label]=e,t.hex===void 0&&t["#"]===void 0?this.$emit("change",t):e.length>5&&this.$emit("change",t)},handleKeyDown(e){let{val:t}=this;const a=Number(t);if(a){const r=this.arrowOffset||1;e.keyCode===38&&(t=a+r,this.handleChange(t),e.preventDefault()),e.keyCode===40&&(t=a-r,this.handleChange(t),e.preventDefault())}}}};const ct={class:"vc-editable-input"},dt=["aria-labelledby"],ut=["id","for"],pt={class:"vc-input__desc"};function ft(e,t,a,r,n,o){return p(),m("div",ct,[T(l("input",{ref:"input","onUpdate:modelValue":t[0]||(t[0]=i=>o.val=i),"aria-labelledby":o.labelId,class:"vc-input__input",onKeydown:t[1]||(t[1]=(...i)=>o.handleKeyDown&&o.handleKeyDown(...i)),onInput:t[2]||(t[2]=(...i)=>o.update&&o.update(...i))},null,40,dt),[[xe,o.val]]),l("span",{id:o.labelId,for:a.label,class:"vc-input__label"},ae(o.labelSpanText),9,ut),l("span",pt,ae(a.desc),1)])}var gt=".vc-editable-input{position:relative}.vc-input__input{border:0;outline:none;padding:0}.vc-input__label{text-transform:capitalize}";D(gt),q.render=ft,q.__file="src/components/editable-input/editable-input.vue",q.install=N;function te(e,t,a){return ta?a:e:et?t:e}var X={name:"Saturation",props:{value:Object},computed:{colors(){return this.value},bgColor(){return`hsl(${this.colors.hsv.h}, 100%, 50%)`},pointerTop(){return`${-(this.colors.hsv.v*100)+1+100}%`},pointerLeft(){return`${this.colors.hsv.s*100}%`}},methods:{handleChange(e,t){!t&&e.preventDefault();const{container:a}=this.$refs;if(!a)return;const r=a.clientWidth,n=a.clientHeight,o=a.getBoundingClientRect().left+window.pageXOffset,i=a.getBoundingClientRect().top+window.pageYOffset,s=e.pageX||(e.touches?e.touches[0].pageX:0),d=e.pageY||(e.touches?e.touches[0].pageY:0),k=te(s-o,0,r),g=te(d-i,0,n),u=k/r,_=te(-(g/n)+1,0,1);this.onChange({h:this.colors.hsv.h,s:u,v:_,a:this.colors.hsv.a,source:"hsva"})},onChange(e){this.$emit("change",e)},handleMouseDown(e){window.addEventListener("mousemove",this.handleChange),window.addEventListener("mouseup",this.handleChange),window.addEventListener("mouseup",this.handleMouseUp)},handleMouseUp(e){this.unbindEventListeners()},unbindEventListeners(){window.removeEventListener("mousemove",this.handleChange),window.removeEventListener("mouseup",this.handleChange),window.removeEventListener("mouseup",this.handleMouseUp)}}};const vt=l("div",{class:"vc-saturation--white"},null,-1),bt=l("div",{class:"vc-saturation--black"},null,-1),mt=l("div",{class:"vc-saturation-circle"},null,-1),xt=[mt];function wt(e,t,a,r,n,o){return p(),m("div",{ref:"container",class:"vc-saturation",style:E({background:o.bgColor}),onMousedown:t[0]||(t[0]=(...i)=>o.handleMouseDown&&o.handleMouseDown(...i)),onTouchmove:t[1]||(t[1]=(...i)=>o.handleChange&&o.handleChange(...i)),onTouchstart:t[2]||(t[2]=(...i)=>o.handleChange&&o.handleChange(...i))},[vt,bt,l("div",{class:"vc-saturation-pointer",style:E({top:o.pointerTop,left:o.pointerLeft})},xt,4)],36)}var yt=".vc-saturation,.vc-saturation--black,.vc-saturation--white{bottom:0;cursor:pointer;left:0;position:absolute;right:0;top:0}.vc-saturation--white{background:linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.vc-saturation--black{background:linear-gradient(0deg,#000,transparent)}.vc-saturation-pointer{cursor:pointer;position:absolute}.vc-saturation-circle{border-radius:50%;box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);cursor:head;height:4px;transform:translate(-2px,-2px);width:4px}";D(yt),X.render=wt,X.__file="src/components/saturation/saturation.vue",X.install=N;var W={name:"Hue",props:{value:Object,direction:{type:String,default:"horizontal"}},data(){return{oldHue:0,pullDirection:""}},computed:{colors(){return this.value},directionClass(){return{"vc-hue--horizontal":this.direction==="horizontal","vc-hue--vertical":this.direction==="vertical"}},pointerTop(){return this.direction==="vertical"?this.colors.hsl.h===0&&this.pullDirection==="right"?0:`${-(this.colors.hsl.h*100/360)+100}%`:0},pointerLeft(){return this.direction==="vertical"?0:this.colors.hsl.h===0&&this.pullDirection==="right"?"100%":`${this.colors.hsl.h*100/360}%`}},watch:{value:{handler(e,t){const{h:a}=e.hsl;a!==0&&a-this.oldHue>0&&(this.pullDirection="right"),a!==0&&a-this.oldHue<0&&(this.pullDirection="left"),this.oldHue=a},deep:!0,immediate:!0}},methods:{handleChange(e,t){!t&&e.preventDefault();const{container:a}=this.$refs;if(!a)return;const r=a.clientWidth,n=a.clientHeight,o=a.getBoundingClientRect().left+window.pageXOffset,i=a.getBoundingClientRect().top+window.pageYOffset,s=e.pageX||(e.touches?e.touches[0].pageX:0),d=e.pageY||(e.touches?e.touches[0].pageY:0),k=s-o,g=d-i;let u,_;this.direction==="vertical"?(g<0?u=360:g>n?u=0:(_=-(g*100/n)+100,u=360*_/100),this.colors.hsl.h!==u&&this.$emit("change",{h:u,s:this.colors.hsl.s,l:this.colors.hsl.l,a:this.colors.hsl.a,source:"hsl"})):(k<0?u=0:k>r?u=360:(_=k*100/r,u=360*_/100),this.colors.hsl.h!==u&&this.$emit("change",{h:u,s:this.colors.hsl.s,l:this.colors.hsl.l,a:this.colors.hsl.a,source:"hsl"}))},handleMouseDown(e){this.handleChange(e,!0),window.addEventListener("mousemove",this.handleChange),window.addEventListener("mouseup",this.handleChange),window.addEventListener("mouseup",this.handleMouseUp)},handleMouseUp(e){this.unbindEventListeners()},unbindEventListeners(){window.removeEventListener("mousemove",this.handleChange),window.removeEventListener("mouseup",this.handleChange),window.removeEventListener("mouseup",this.handleMouseUp)}}};const kt=["aria-valuenow"],Ct=l("div",{class:"vc-hue-picker"},null,-1),Mt=[Ct];function St(e,t,a,r,n,o){return p(),m("div",{class:Y(["vc-hue",[o.directionClass]])},[l("div",{ref:"container",class:"vc-hue-container",role:"slider","aria-valuenow":o.colors.hsl.h,"aria-valuemin":"0","aria-valuemax":"360",onMousedown:t[0]||(t[0]=(...i)=>o.handleMouseDown&&o.handleMouseDown(...i)),onTouchmove:t[1]||(t[1]=(...i)=>o.handleChange&&o.handleChange(...i)),onTouchstart:t[2]||(t[2]=(...i)=>o.handleChange&&o.handleChange(...i))},[l("div",{class:"vc-hue-pointer",style:E({top:o.pointerTop,left:o.pointerLeft}),role:"presentation"},Mt,4)],40,kt)],2)}var _t=".vc-hue{border-radius:2px;bottom:0;left:0;position:absolute;right:0;top:0}.vc-hue--horizontal{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.vc-hue--vertical{background:linear-gradient(0deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.vc-hue-container{cursor:pointer;height:100%;margin:0 2px;position:relative}.vc-hue-pointer{position:absolute;z-index:2}.vc-hue-picker{background:#fff;border-radius:1px;box-shadow:0 0 2px rgba(0,0,0,.6);cursor:pointer;height:8px;margin-top:1px;transform:translateX(-2px);width:4px}";D(_t),W.render=St,W.__file="src/components/hue/hue.vue",W.install=N;var P={name:"Chrome",components:{Saturation:X,Hue:W,Alpha:j,EdIn:q,Checkboard:z},mixins:[ht],props:{disableAlpha:{type:Boolean,default:!1},disableFields:{type:Boolean,default:!1},format:{type:String,default:"hex"}},data(){return{fieldsIndex:"hex",highlight:!1}},computed:{hsl(){const{h:e,s:t,l:a}=this.colors.hsl;return{h:e.toFixed(),s:`${(t*100).toFixed()}%`,l:`${(a*100).toFixed()}%`}},activeColor(){const{rgba:e}=this.colors;return`rgba(${[e.r,e.g,e.b,e.a].join(",")})`},hasAlpha(){return this.colors.a<1}},watch:{format:{handler(e){this.fieldsIndex=e},immediate:!0}},methods:{childChange(e){this.colorChange(e)},inputChange(e){if(e){if(e.hex)this.isValidHex(e.hex)&&this.colorChange({hex:e.hex,source:"hex"});else if(e.r||e.g||e.b||e.a)this.colorChange({r:e.r||this.colors.rgba.r,g:e.g||this.colors.rgba.g,b:e.b||this.colors.rgba.b,a:e.a||this.colors.rgba.a,source:"rgba"});else if(e.h||e.s||e.l){const t=e.s?e.s.replace("%","")/100:this.colors.hsl.s,a=e.l?e.l.replace("%","")/100:this.colors.hsl.l;this.colorChange({h:e.h||this.colors.hsl.h,s:t,l:a,source:"hsl"})}}},toggleViews(){switch(this.fieldsIndex){case"hex":this.fieldsIndex=`rgb${this.disableAlpha?"":"a"}`;break;case"rgb":case"rgba":this.fieldsIndex=`hsl${this.disableAlpha?"":"a"}`;break;default:this.fieldsIndex="hex";break}this.$emit("update:format",this.fieldsIndex)},showHighlight(){this.highlight=!0},hideHighlight(){this.highlight=!1}}};const Ht={class:"vc-chrome-saturation-wrap"},At={class:"vc-chrome-body"},$t={class:"vc-chrome-controls"},Lt={class:"vc-chrome-color-wrap"},Et=["aria-label"],Rt={class:"vc-chrome-sliders"},Ft={class:"vc-chrome-hue-wrap"},It={key:0,class:"vc-chrome-alpha-wrap"},Dt={key:0,class:"vc-chrome-fields-wrap"},Nt={class:"vc-chrome-fields"},Tt={class:"vc-chrome-field"},zt={class:"vc-chrome-fields"},Bt={class:"vc-chrome-field"},Ut={class:"vc-chrome-field"},Vt={class:"vc-chrome-field"},Ot={key:0,class:"vc-chrome-field"},jt={class:"vc-chrome-fields"},qt={class:"vc-chrome-field"},Xt={class:"vc-chrome-field"},Wt={class:"vc-chrome-field"},Pt={key:0,class:"vc-chrome-field"},Yt={class:"vc-chrome-toggle-icon"},Kt=l("path",{fill:"#333",d:"M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z"},null,-1),Gt=[Kt],Zt={class:"vc-chrome-toggle-icon-highlight"};function Jt(e,t,a,r,n,o){const i=I("Saturation"),s=I("Checkboard"),d=I("Hue"),k=I("Alpha"),g=I("EdIn");return p(),m("div",{role:"application","aria-label":"Chrome color picker",class:Y(["vc-chrome",[a.disableAlpha?"vc-chrome__disable-alpha":""]])},[l("div",Ht,[v(i,{value:e.colors,onChange:o.childChange},null,8,["value","onChange"])]),l("div",At,[l("div",$t,[l("div",Lt,[l("div",{"aria-label":`current color is ${e.colors.hex}`,class:"vc-chrome-active-color",style:E({background:o.activeColor})},null,12,Et),a.disableAlpha?x("v-if",!0):(p(),$(s,{key:0}))]),l("div",Rt,[l("div",Ft,[v(d,{value:e.colors,onChange:o.childChange},null,8,["value","onChange"])]),a.disableAlpha?x("v-if",!0):(p(),m("div",It,[v(k,{value:e.colors,onChange:o.childChange},null,8,["value","onChange"])]))])]),a.disableFields?x("v-if",!0):(p(),m("div",Dt,[T(l("div",Nt,[x(" hex "),l("div",Tt,[o.hasAlpha?x("v-if",!0):(p(),$(g,{key:0,label:"hex",value:e.colors.hex,onChange:o.inputChange},null,8,["value","onChange"])),o.hasAlpha?(p(),$(g,{key:1,label:"hex",value:e.colors.hex8,onChange:o.inputChange},null,8,["value","onChange"])):x("v-if",!0)])],512),[[B,n.fieldsIndex==="hex"]]),T(l("div",zt,[x(" rgba "),l("div",Bt,[v(g,{label:"r",value:e.colors.rgba.r,onChange:o.inputChange},null,8,["value","onChange"])]),l("div",Ut,[v(g,{label:"g",value:e.colors.rgba.g,onChange:o.inputChange},null,8,["value","onChange"])]),l("div",Vt,[v(g,{label:"b",value:e.colors.rgba.b,onChange:o.inputChange},null,8,["value","onChange"])]),a.disableAlpha?x("v-if",!0):(p(),m("div",Ot,[v(g,{label:"a",value:e.colors.a,"arrow-offset":.01,max:1,onChange:o.inputChange},null,8,["value","arrow-offset","onChange"])]))],512),[[B,["rgb","rgba"].includes(n.fieldsIndex)]]),T(l("div",jt,[x(" hsla "),l("div",qt,[v(g,{label:"h",value:o.hsl.h,onChange:o.inputChange},null,8,["value","onChange"])]),l("div",Xt,[v(g,{label:"s",value:o.hsl.s,onChange:o.inputChange},null,8,["value","onChange"])]),l("div",Wt,[v(g,{label:"l",value:o.hsl.l,onChange:o.inputChange},null,8,["value","onChange"])]),a.disableAlpha?x("v-if",!0):(p(),m("div",Pt,[v(g,{label:"a",value:e.colors.a,"arrow-offset":.01,max:1,onChange:o.inputChange},null,8,["value","arrow-offset","onChange"])]))],512),[[B,["hsl","hsla"].includes(n.fieldsIndex)]]),x(" btn "),l("div",{class:"vc-chrome-toggle-btn",role:"button","aria-label":"Change another color definition",onClick:t[3]||(t[3]=(...u)=>o.toggleViews&&o.toggleViews(...u))},[l("div",Yt,[(p(),m("svg",{style:{width:"24px",height:"24px"},viewBox:"0 0 24 24",onMouseover:t[0]||(t[0]=(...u)=>o.showHighlight&&o.showHighlight(...u)),onMouseenter:t[1]||(t[1]=(...u)=>o.showHighlight&&o.showHighlight(...u)),onMouseout:t[2]||(t[2]=(...u)=>o.hideHighlight&&o.hideHighlight(...u))},Gt,32))]),T(l("div",Zt,null,512),[[B,n.highlight]])]),x(" btn ")]))])],2)}var Qt=".vc-chrome{background:#fff;background-color:#fff;border-radius:2px;box-shadow:0 0 2px rgba(0,0,0,.3),0 4px 8px rgba(0,0,0,.3);box-sizing:initial;font-family:Menlo;width:225px}.vc-chrome-controls{display:flex}.vc-chrome-color-wrap{position:relative;width:36px}.vc-chrome-active-color{border-radius:15px;height:30px;overflow:hidden;position:relative;width:30px;z-index:1}.vc-chrome-color-wrap .vc-checkerboard{background-size:auto;border-radius:15px;height:30px;width:30px}.vc-chrome-sliders{flex:1}.vc-chrome-fields-wrap{display:flex;padding-top:16px}.vc-chrome-fields{display:flex;flex:1;margin-left:-6px}.vc-chrome-field{padding-left:6px;width:100%}.vc-chrome-toggle-btn{position:relative;text-align:right;width:32px}.vc-chrome-toggle-icon{cursor:pointer;margin-right:-4px;margin-top:12px;position:relative;z-index:2}.vc-chrome-toggle-icon-highlight{background:#eee;border-radius:4px;height:28px;left:12px;position:absolute;top:10px;width:24px}.vc-chrome-hue-wrap{margin-bottom:8px}.vc-chrome-alpha-wrap,.vc-chrome-hue-wrap{height:10px;position:relative}.vc-chrome-alpha-wrap .vc-alpha-gradient,.vc-chrome-hue-wrap .vc-hue{border-radius:2px}.vc-chrome-alpha-wrap .vc-alpha-picker,.vc-chrome-hue-wrap .vc-hue-picker{background-color:#f8f8f8;border-radius:6px;box-shadow:0 1px 4px 0 rgba(0,0,0,.37);height:12px;transform:translate(-6px,-2px);width:12px}.vc-chrome-body{background-color:#fff;padding:16px 16px 12px}.vc-chrome-saturation-wrap{border-radius:2px 2px 0 0;overflow:hidden;padding-bottom:55%;position:relative;width:100%}.vc-chrome-saturation-wrap .vc-saturation-circle{height:12px;width:12px}.vc-chrome-fields .vc-input__input{border:none;border-radius:2px;box-shadow:inset 0 0 0 1px #dadada;color:#333;font-size:11px;height:21px;text-align:center;width:100%}.vc-chrome-fields .vc-input__label{color:#969696;display:block;font-size:11px;line-height:11px;margin-top:12px;text-align:center;text-transform:uppercase}.vc-chrome__disable-alpha .vc-chrome-active-color{height:18px;width:18px}.vc-chrome__disable-alpha .vc-chrome-color-wrap{width:30px}.vc-chrome__disable-alpha .vc-chrome-hue-wrap{margin-bottom:4px;margin-top:4px}";D(Qt),P.render=Jt,P.__file="src/components/chrome/chrome.vue",P.install=N,De();const ea=["aria-label"],ta={key:0,class:"color-picker__simple"},aa=["aria-label","name","checked","onClick"],oa=["title"],ra=["aria-label","name","checked"],na={key:0,class:"color-picker__navigation"},ia=we({__name:"NcColorPicker",props:re({advancedFields:{type:Boolean},clearable:{type:Boolean},container:{default:"body"},palette:{default:()=>[]},paletteOnly:{type:Boolean}},{modelValue:{required:!0},modelModifiers:{},open:{type:Boolean},openModifiers:{}}),emits:re(["submit","closed"],["update:modelValue","update:open"]),setup(e,{emit:t}){const a=ne(e,"modelValue"),r=ne(e,"open"),n=e,o=t,i=/^#([a-f0-9]{3}|[a-f0-9]{6})$/i,s=Te(),d=ye(!1),k=ke(()=>{let c=n.palette;for(const h of c)if(typeof h=="string"&&!h.match(i)||typeof h=="object"&&!h.color?.match(i)){Le.error("[NcColorPicker] Invalid palette passed",{color:h}),c=[];break}return c.length===0&&(c=n.clearable?[...ie,se,le]:[...ie]),c.map(h=>({color:typeof h=="object"?h.color:h,name:typeof h=="object"&&h.name?h.name:M("A color with a HEX value {hex}",{hex:typeof h=="string"?h:h.color})}))});function g(c){o("submit",a.value),c(),d.value=!1}function u(c){c=typeof c=="string"?c:c.color,n.clearable&&a.value===c?a.value=void 0:a.value=c}function _(c){a.value=c.hex}function fe(c){return ge(c)>.5?se.color:le.color}function ge(c){const[h,H,y]=ve(c);return(.2126*h+.7152*H+.0722*y)/255}function ve(c){const h=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(c);return h?[parseInt(h[1],16),parseInt(h[2],16),parseInt(h[3],16)]:[0,0,0]}return(c,h)=>(p(),$(f(ze),{shown:r.value,"onUpdate:shown":h[3]||(h[3]=H=>r.value=H),container:c.container,"popup-role":"dialog",onApplyHide:h[4]||(h[4]=H=>o("closed"))},{trigger:F(H=>[He(c.$slots,"default",Ae($e(H)),void 0,!0)]),default:F(H=>[l("div",{role:"dialog",class:Y(["color-picker",{"color-picker--advanced-fields":d.value&&c.advancedFields,"color-picker--clearable":c.clearable}]),"aria-modal":"true","aria-label":f(M)("Color picker")},[v(Ce,{name:"slide",mode:"out-in"},{default:F(()=>[d.value?(p(),$(f(P),{key:1,class:"color-picker__advanced","disable-alpha":!0,"disable-fields":!c.advancedFields,"model-value":a.value??"#000000","onUpdate:modelValue":_},null,8,["disable-fields","model-value"])):(p(),m("div",ta,[(p(!0),m(Me,null,Se(k.value,({color:y,name:be},me)=>(p(),m("label",{key:me,class:Y(["color-picker__simple-color-circle",{"color-picker__simple-color-circle--active":y===a.value}]),style:E({backgroundColor:y,color:fe(y)})},[y===a.value?(p(),$(f(U),{key:0,path:f(Ee)},null,8,["path"])):x("",!0),l("input",{type:"radio",class:"hidden-visually","aria-label":be,name:`color-picker-${f(s)}`,checked:y===a.value,onClick:sa=>u(y)},null,8,aa)],6))),128)),c.clearable?(p(),m("label",{key:0,class:"color-picker__clear",title:f(M)("No color")},[v(f(U),{size:a.value?28:34,path:f(Re)},null,8,["size","path"]),l("input",{type:"radio",class:"hidden-visually","aria-label":f(M)("No color"),name:`color-picker-${f(s)}`,checked:!a.value,onClick:h[0]||(h[0]=y=>a.value=void 0)},null,8,ra)],8,oa)):x("",!0)]))]),_:1}),c.paletteOnly?x("",!0):(p(),m("div",na,[d.value?(p(),$(f(K),{key:0,"aria-label":f(M)("Back"),title:f(M)("Back"),variant:"tertiary",onClick:h[1]||(h[1]=y=>d.value=!1)},{icon:F(()=>[v(f(U),{directional:"",path:f(Fe)},null,8,["path"])]),_:1},8,["aria-label","title"])):(p(),$(f(K),{key:1,"aria-label":f(M)("More options"),title:f(M)("More options"),variant:"tertiary",onClick:h[2]||(h[2]=y=>d.value=!0)},{icon:F(()=>[v(f(U),{path:f(Ie)},null,8,["path"])]),_:1},8,["aria-label","title"])),v(f(K),{variant:"primary",onClick:y=>g(H.hide)},{default:F(()=>[_e(ae(f(M)("Choose")),1)]),_:2},1032,["onClick"])]))],10,ea)]),_:3},8,["shown","container"]))}}),pa=Ne(ia,[["__scopeId","data-v-3d24879b"]]);export{pa as N}; -//# sourceMappingURL=NcColorPicker-Kc0JqRtp-VtydDeG1.chunk.mjs.map diff --git a/dist/NcContent-BR_nMwKN-BSxKRQfD.chunk.css b/dist/NcContent-BR_nMwKN-BSxKRQfD.chunk.css new file mode 100644 index 0000000000000..ef1c28adec157 --- /dev/null +++ b/dist/NcContent-BR_nMwKN-BSxKRQfD.chunk.css @@ -0,0 +1 @@ +.material-design-icon[data-v-a28923a1]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-details-toggle[data-v-a28923a1]{position:sticky;width:var(--default-clickable-area);height:var(--default-clickable-area);padding:calc((var(--default-clickable-area) - 16px) / 2);cursor:pointer;opacity:.6;transform:rotate(180deg);background-color:var(--color-main-background);z-index:2000;top:var(--app-navigation-padding);inset-inline-start:calc(var(--default-clickable-area) + var(--app-navigation-padding) * 2)}.app-details-toggle--mobile[data-v-a28923a1]{inset-inline-start:var(--app-navigation-padding)}.app-details-toggle[data-v-a28923a1]:active,.app-details-toggle[data-v-a28923a1]:hover,.app-details-toggle[data-v-a28923a1]:focus{opacity:1}.material-design-icon[data-v-a2641cc2]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-content[data-v-a2641cc2]{position:initial;z-index:1000;flex-basis:100vw;height:100%;margin:0!important;background-color:var(--color-main-background);min-width:0}.app-content[data-v-a2641cc2]:not(.app-content--has-list){overflow:auto}.app-content-wrapper[data-v-a2641cc2]{position:relative;width:100%;height:100%}.app-content-wrapper--no-split.app-content-wrapper--show-list[data-v-a2641cc2] .app-content-list{display:flex}.app-content-wrapper--no-split.app-content-wrapper--show-list[data-v-a2641cc2] .app-content-details,.app-content-wrapper--no-split.app-content-wrapper--show-details[data-v-a2641cc2] .app-content-list{display:none}.app-content-wrapper--no-split.app-content-wrapper--show-details[data-v-a2641cc2] .app-content-details{display:block}[data-v-a2641cc2] .splitpanes.default-theme .app-content-list{max-width:none;scrollbar-width:auto}[data-v-a2641cc2] .splitpanes.default-theme .splitpanes__pane{background-color:transparent;transition:none}[data-v-a2641cc2] .splitpanes.default-theme .splitpanes__pane-list{min-width:300px;position:sticky}@media only screen and (width<1024px){[data-v-a2641cc2] .splitpanes.default-theme .splitpanes__pane-list{display:none}}[data-v-a2641cc2] .splitpanes.default-theme .splitpanes__pane-details{overflow-y:auto}@media only screen and (width<1024px){[data-v-a2641cc2] .splitpanes.default-theme .splitpanes__pane-details{min-width:100%}}[data-v-a2641cc2] .splitpanes.default-theme .splitpanes__splitter{background-color:var(--color-main-background)}[data-v-a2641cc2] .splitpanes.default-theme .splitpanes__splitter:before,[data-v-a2641cc2] .splitpanes.default-theme .splitpanes__splitter:after{background-color:var(--color-border)}[data-v-a2641cc2] .splitpanes.default-theme.splitpanes--vertical .splitpanes__splitter{border-inline-start:1px solid var(--color-border)}[data-v-a2641cc2] .splitpanes.default-theme.splitpanes--horizontal .splitpanes__splitter{border-top:1px solid var(--color-border)}.app-content-wrapper--show-list[data-v-a2641cc2] .app-content-list{max-width:none}.splitpanes{display:flex;width:100%;height:100%}.splitpanes--vertical{flex-direction:row}.splitpanes--horizontal{flex-direction:column}.splitpanes--dragging .splitpanes__pane,*:has(.splitpanes--dragging){-webkit-user-select:none;user-select:none;pointer-events:none}.splitpanes__pane{width:100%;height:100%;overflow:hidden}.splitpanes--vertical .splitpanes__pane{transition:width .2s ease-out;will-change:width}.splitpanes--horizontal .splitpanes__pane{transition:height .2s ease-out;will-change:height}.splitpanes--dragging .splitpanes__pane{transition:none}.splitpanes__splitter{touch-action:none}.splitpanes--vertical>.splitpanes__splitter{min-width:1px;cursor:col-resize}.splitpanes--horizontal>.splitpanes__splitter{min-height:1px;cursor:row-resize}.default-theme.splitpanes .splitpanes__pane{background-color:#f2f2f2}.default-theme.splitpanes .splitpanes__splitter{background-color:#fff;box-sizing:border-box;position:relative;flex-shrink:0}.default-theme.splitpanes .splitpanes__splitter:before,.default-theme.splitpanes .splitpanes__splitter:after{content:"";position:absolute;top:50%;left:50%;background-color:#00000026;transition:background-color .3s}.default-theme.splitpanes .splitpanes__splitter:hover:before,.default-theme.splitpanes .splitpanes__splitter:hover:after{background-color:#00000040}.default-theme.splitpanes .splitpanes__splitter:first-child{cursor:auto}.default-theme.splitpanes .splitpanes .splitpanes__splitter{z-index:1}.default-theme.splitpanes--vertical>.splitpanes__splitter,.default-theme .splitpanes--vertical>.splitpanes__splitter{width:7px;border-left:1px solid #eee;margin-left:-1px}.default-theme.splitpanes--vertical>.splitpanes__splitter:before,.default-theme.splitpanes--vertical>.splitpanes__splitter:after,.default-theme .splitpanes--vertical>.splitpanes__splitter:before,.default-theme .splitpanes--vertical>.splitpanes__splitter:after{transform:translateY(-50%);width:1px;height:30px}.default-theme.splitpanes--vertical>.splitpanes__splitter:before,.default-theme .splitpanes--vertical>.splitpanes__splitter:before{margin-left:-2px}.default-theme.splitpanes--vertical>.splitpanes__splitter:after,.default-theme .splitpanes--vertical>.splitpanes__splitter:after{margin-left:1px}.default-theme.splitpanes--horizontal>.splitpanes__splitter,.default-theme .splitpanes--horizontal>.splitpanes__splitter{height:7px;border-top:1px solid #eee;margin-top:-1px}.default-theme.splitpanes--horizontal>.splitpanes__splitter:before,.default-theme.splitpanes--horizontal>.splitpanes__splitter:after,.default-theme .splitpanes--horizontal>.splitpanes__splitter:before,.default-theme .splitpanes--horizontal>.splitpanes__splitter:after{transform:translate(-50%);width:30px;height:1px}.default-theme.splitpanes--horizontal>.splitpanes__splitter:before,.default-theme .splitpanes--horizontal>.splitpanes__splitter:before{margin-top:-2px}.default-theme.splitpanes--horizontal>.splitpanes__splitter:after,.default-theme .splitpanes--horizontal>.splitpanes__splitter:after{margin-top:1px}.material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}#skip-actions.vue-skip-actions:focus-within{top:0!important;inset-inline-start:0!important;width:100vw;height:100vh;padding:var(--body-container-margin)!important;-webkit-backdrop-filter:brightness(50%);backdrop-filter:brightness(50%)}.material-design-icon[data-v-d9b0d7e8]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.vue-skip-actions__container[data-v-d9b0d7e8]{background-color:var(--color-main-background);border-radius:var(--border-radius-element);padding:22px}.vue-skip-actions__headline[data-v-d9b0d7e8]{font-weight:700;font-size:20px;line-height:30px;margin-bottom:12px}.vue-skip-actions__buttons[data-v-d9b0d7e8]{display:flex;flex-wrap:wrap;gap:12px}.vue-skip-actions__buttons[data-v-d9b0d7e8]>*{flex:1 0 fit-content}.vue-skip-actions__image[data-v-d9b0d7e8]{margin-top:12px}.vue-skip-actions__image[data-v-d9b0d7e8]:dir(rtl){transform:rotateY(180deg)}.content[data-v-d9b0d7e8]{display:flex;width:calc(100% - var(--body-container-margin) * 2);border-radius:var(--body-container-radius);height:var(--body-height);overflow:hidden;padding:0}.content[data-v-d9b0d7e8]:not(.with-sidebar--full){position:fixed}.content[data-v-d9b0d7e8],.content[data-v-d9b0d7e8] *{box-sizing:border-box} diff --git a/dist/NcContent-BR_nMwKN-DuxjkyFF.chunk.mjs b/dist/NcContent-BR_nMwKN-DuxjkyFF.chunk.mjs new file mode 100644 index 0000000000000..6d436f0567d9f --- /dev/null +++ b/dist/NcContent-BR_nMwKN-DuxjkyFF.chunk.mjs @@ -0,0 +1,54 @@ +import{c as Ze,e as q}from"./index-Bndk0DrU.chunk.mjs";import{l as he,g as Be}from"./index-DCpg1aui.chunk.mjs";import{u as Oe,i as Fe,b as ne}from"./NcModal-MC_HktJd-DqeuH-fk.chunk.mjs";import{i as Ge,r as M,x as D,s as V,A as le,N as se,c as j,a5 as P,o as C,L as Ke,Q as H,a6 as We,j as b,m as N,I as Xe,u as y,a7 as qe,K,f as Q,l as L,t as W,F as je,n as Z,E as ee,H as ge,G as te,k as X,e as k,w as R,b as fe,M as Ue,g as ve,a8 as Ye}from"./runtime-dom.esm-bundler-DdtEg5E9.chunk.mjs";import{l as B,N as xe,e as Je,b as ie}from"./AccountOutline-BlW-6JqD.chunk.mjs";import{r as ze,_ as oe,b as O}from"./createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs";const Ae="nextcloud-ui",Ve="1.0.0",Qe={__name:"splitpanes",props:{horizontal:{type:Boolean,default:!1},pushOtherPanes:{type:Boolean,default:!0},maximizePanes:{type:Boolean,default:!0},rtl:{type:Boolean,default:!1},firstSplitter:{type:Boolean,default:!1}},emits:["ready","resize","resized","pane-click","pane-maximize","pane-add","pane-remove","splitter-click","splitter-dblclick"],setup(o,{emit:p}){const d=p,r=o,m=Ge(),l=M([]),S=D(()=>l.value.reduce((e,t)=>(e[~~t.id]=t)&&e,{})),x=D(()=>l.value.length),c=M(null),g=M(!1),v=M({mouseDown:!1,dragging:!1,activeSplitter:null,cursorOffset:0}),E=M({splitter:null,timeoutId:null}),I=D(()=>({[`splitpanes splitpanes--${r.horizontal?"horizontal":"vertical"}`]:!0,"splitpanes--dragging":v.value.dragging})),T=()=>{document.addEventListener("mousemove",h,{passive:!1}),document.addEventListener("mouseup",_),"ontouchstart"in window&&(document.addEventListener("touchmove",h,{passive:!1}),document.addEventListener("touchend",_))},$=()=>{document.removeEventListener("mousemove",h,{passive:!1}),document.removeEventListener("mouseup",_),"ontouchstart"in window&&(document.removeEventListener("touchmove",h,{passive:!1}),document.removeEventListener("touchend",_))},F=(e,t)=>{const n=e.target.closest(".splitpanes__splitter");if(n){const{left:i,top:a}=n.getBoundingClientRect(),{clientX:s,clientY:u}="ontouchstart"in window&&e.touches?e.touches[0]:e;v.value.cursorOffset=r.horizontal?u-a:s-i}T(),v.value.mouseDown=!0,v.value.activeSplitter=t},h=e=>{v.value.mouseDown&&(e.preventDefault(),v.value.dragging=!0,requestAnimationFrame(()=>{Se(ye(e)),z("resize",{event:e},!0)}))},_=e=>{v.value.dragging&&(window.getSelection().removeAllRanges(),z("resized",{event:e},!0)),v.value.mouseDown=!1,v.value.activeSplitter=null,setTimeout(()=>{v.value.dragging=!1,$()},100)},U=(e,t)=>{"ontouchstart"in window&&(e.preventDefault(),E.value.splitter===t?(clearTimeout(E.value.timeoutId),E.value.timeoutId=null,re(e,t),E.value.splitter=null):(E.value.splitter=t,E.value.timeoutId=setTimeout(()=>E.value.splitter=null,500))),v.value.dragging||z("splitter-click",{event:e,index:t},!0)},re=(e,t)=>{if(z("splitter-dblclick",{event:e,index:t},!0),r.maximizePanes){let n=0;l.value=l.value.map((i,a)=>(i.size=a===t?i.max:i.min,a!==t&&(n+=i.min),i)),l.value[t].size-=n,z("pane-maximize",{event:e,index:t,pane:l.value[t]}),z("resized",{event:e,index:t},!0)}},Ce=(e,t)=>{z("pane-click",{event:e,index:S.value[t].index,pane:S.value[t]})},ye=e=>{const t=c.value.getBoundingClientRect(),{clientX:n,clientY:i}="ontouchstart"in window&&e.touches?e.touches[0]:e;return{x:n-(r.horizontal?0:v.value.cursorOffset)-t.left,y:i-(r.horizontal?v.value.cursorOffset:0)-t.top}},De=e=>{e=e[r.horizontal?"y":"x"];const t=c.value[r.horizontal?"clientHeight":"clientWidth"];return r.rtl&&!r.horizontal&&(e=t-e),e*100/t},Se=e=>{const t=v.value.activeSplitter;let n={prevPanesSize:ue(t),nextPanesSize:A(t),prevReachedMinPanes:0,nextReachedMinPanes:0};const i=0+(r.pushOtherPanes?0:n.prevPanesSize),a=100-(r.pushOtherPanes?0:n.nextPanesSize),s=Math.max(Math.min(De(e),a),i);let u=[t,t+1],f=l.value[u[0]]||null,w=l.value[u[1]]||null;const pe=f.max<100&&s>=f.max+n.prevPanesSize,$e=w.max<100&&s<=100-(w.max+A(t+1));if(pe||$e){pe?(f.size=f.max,w.size=Math.max(100-f.max-n.prevPanesSize-n.nextPanesSize,0)):(f.size=Math.max(100-w.max-n.prevPanesSize-A(t+1),0),w.size=w.max);return}if(r.pushOtherPanes){const ce=Ee(n,s);if(!ce)return;({sums:n,panesToResize:u}=ce),f=l.value[u[0]]||null,w=l.value[u[1]]||null}f!==null&&(f.size=Math.min(Math.max(s-n.prevPanesSize-n.prevReachedMinPanes,f.min),f.max)),w!==null&&(w.size=Math.min(Math.max(100-s-n.nextPanesSize-n.nextReachedMinPanes,w.min),w.max))},Ee=(e,t)=>{const n=v.value.activeSplitter,i=[n,n+1];return t{s>i[0]&&s<=n&&(a.size=a.min,e.prevReachedMinPanes+=a.min)}),e.prevPanesSize=ue(i[0]),i[0]===void 0)?(e.prevReachedMinPanes=0,l.value[0].size=l.value[0].min,l.value.forEach((a,s)=>{s>0&&s<=n&&(a.size=a.min,e.prevReachedMinPanes+=a.min)}),l.value[i[1]].size=100-e.prevReachedMinPanes-l.value[0].min-e.prevPanesSize-e.nextPanesSize,null):t>100-e.nextPanesSize-l.value[i[1]].min&&(i[1]=Me(n).index,e.nextReachedMinPanes=0,i[1]>n+1&&l.value.forEach((a,s)=>{s>n&&s{s=n+1&&(a.size=a.min,e.nextReachedMinPanes+=a.min)}),l.value[i[0]].size=100-e.prevPanesSize-A(i[0]-1),null):{sums:e,panesToResize:i}},ue=e=>l.value.reduce((t,n,i)=>t+(il.value.reduce((t,n,i)=>t+(i>e+1?n.size:0),0),Pe=e=>[...l.value].reverse().find(t=>t.indext.min)||{},Me=e=>l.value.find(t=>t.index>e+1&&t.size>t.min)||{},_e=()=>{var e;const t=Array.from(((e=c.value)==null?void 0:e.children)||[]);for(const n of t){const i=n.classList.contains("splitpanes__pane"),a=n.classList.contains("splitpanes__splitter");!i&&!a&&(n.remove(),console.warn("Splitpanes: Only elements are allowed at the root of . One of your DOM nodes was removed."))}},de=(e,t,n=!1)=>{const i=e-1,a=document.createElement("div");a.classList.add("splitpanes__splitter"),n||(a.onmousedown=s=>F(s,i),typeof window<"u"&&"ontouchstart"in window&&(a.ontouchstart=s=>F(s,i)),a.onclick=s=>U(s,i+1)),a.ondblclick=s=>re(s,i+1),t.parentNode.insertBefore(a,t)},be=e=>{e.onmousedown=void 0,e.onclick=void 0,e.ondblclick=void 0,e.remove()},G=()=>{var e;const t=Array.from(((e=c.value)==null?void 0:e.children)||[]);for(const i of t)i.className.includes("splitpanes__splitter")&&be(i);let n=0;for(const i of t)i.className.includes("splitpanes__pane")&&(!n&&r.firstSplitter?de(n,i,!0):n&&de(n,i),n++)},Ne=({uid:e,...t})=>{const n=S.value[e];for(const[i,a]of Object.entries(t))n[i]=a},ke=e=>{var t;let n=-1;Array.from(((t=c.value)==null?void 0:t.children)||[]).some(i=>(i.className.includes("splitpanes__pane")&&n++,i.isSameNode(e.el))),l.value.splice(n,0,{...e,index:n}),l.value.forEach((i,a)=>i.index=a),g.value&&K(()=>{G(),Y({addedPane:l.value[n]}),z("pane-add",{pane:l.value[n]})})},He=e=>{const t=l.value.findIndex(i=>i.id===e);l.value[t].el=null;const n=l.value.splice(t,1)[0];l.value.forEach((i,a)=>i.index=a),K(()=>{G(),z("pane-remove",{pane:n}),Y({removedPane:{...n}})})},Y=(e={})=>{!e.addedPane&&!e.removedPane?Re():l.value.some(t=>t.givenSize!==null||t.min||t.max<100)?Ie(e):Le(),g.value&&z("resized")},Le=()=>{const e=100/x.value;let t=0;const n=[],i=[];for(const a of l.value)a.size=Math.max(Math.min(e,a.max),a.min),t-=a.size,a.size>=a.max&&n.push(a.id),a.size<=a.min&&i.push(a.id);t>.1&&J(t,n,i)},Re=()=>{let e=100;const t=[],n=[];let i=0;for(const s of l.value)e-=s.size,s.givenSize!==null&&i++,s.size>=s.max&&t.push(s.id),s.size<=s.min&&n.push(s.id);let a=100;if(e>.1){for(const s of l.value)s.givenSize===null&&(s.size=Math.max(Math.min(e/(x.value-i),s.max),s.min)),a-=s.size;a>.1&&J(a,t,n)}},Ie=({addedPane:e,removedPane:t}={})=>{let n=100/x.value,i=0;const a=[],s=[];(e?.givenSize??null)!==null&&(n=(100-e.givenSize)/(x.value-1));for(const u of l.value)i-=u.size,u.size>=u.max&&a.push(u.id),u.size<=u.min&&s.push(u.id);if(!(Math.abs(i)<.1)){for(const u of l.value)e?.givenSize!==null&&e?.id===u.id||(u.size=Math.max(Math.min(n,u.max),u.min)),i-=u.size,u.size>=u.max&&a.push(u.id),u.size<=u.min&&s.push(u.id);i>.1&&J(i,a,s)}},J=(e,t,n)=>{let i;e>0?i=e/(x.value-t.length):i=e/(x.value-n.length),l.value.forEach((a,s)=>{if(e>0&&!t.includes(a.id)){const u=Math.max(Math.min(a.size+i,a.max),a.min),f=u-a.size;e-=f,a.size=u}else if(!n.includes(a.id)){const u=Math.max(Math.min(a.size+i,a.max),a.min),f=u-a.size;e-=f,a.size=u}}),Math.abs(e)>.1&&K(()=>{g.value&&console.warn("Splitpanes: Could not resize panes correctly due to their constraints.")})},z=(e,t=void 0,n=!1)=>{const i=t?.index??v.value.activeSplitter??null;d(e,{...t,...i!==null&&{index:i},...n&&i!==null&&{prevPane:l.value[i-(r.firstSplitter?1:0)],nextPane:l.value[i+(r.firstSplitter?0:1)]},panes:l.value.map(a=>({min:a.min,max:a.max,size:a.size}))})};V(()=>r.firstSplitter,()=>G()),le(()=>{_e(),G(),Y(),z("ready"),g.value=!0}),se(()=>g.value=!1);const Te=()=>{var e;return qe("div",{ref:c,class:I.value},(e=m.default)==null?void 0:e.call(m))};return P("panes",l),P("indexedPanes",S),P("horizontal",D(()=>r.horizontal)),P("requestUpdate",Ne),P("onPaneAdd",ke),P("onPaneRemove",He),P("onPaneClick",Ce),(e,t)=>(C(),j(Ke(Te)))}},et={__name:"pane",props:{size:{type:[Number,String]},minSize:{type:[Number,String],default:0},maxSize:{type:[Number,String],default:100}},setup(o){var p;const d=o,r=H("requestUpdate"),m=H("onPaneAdd"),l=H("horizontal"),S=H("onPaneRemove"),x=H("onPaneClick"),c=(p=We())==null?void 0:p.uid,g=H("indexedPanes"),v=D(()=>g.value[c]),E=M(null),I=D(()=>{const h=isNaN(d.size)||d.size===void 0?0:parseFloat(d.size);return Math.max(Math.min(h,$.value),T.value)}),T=D(()=>{const h=parseFloat(d.minSize);return isNaN(h)?0:h}),$=D(()=>{const h=parseFloat(d.maxSize);return isNaN(h)?100:h}),F=D(()=>{var h;return`${l.value?"height":"width"}: ${(h=v.value)==null?void 0:h.size}%`});return V(()=>I.value,h=>r({uid:c,size:h})),V(()=>T.value,h=>r({uid:c,min:h})),V(()=>$.value,h=>r({uid:c,max:h})),le(()=>{m({id:c,el:E.value,min:T.value,max:$.value,givenSize:d.size===void 0?null:I.value,size:I.value})}),se(()=>S(c)),(h,_)=>(C(),b("div",{ref_key:"paneEl",ref:E,class:"splitpanes__pane",onClick:_[0]||(_[0]=U=>y(x)(U,h._.uid)),style:Xe(F.value)},[N(h.$slots,"default")],4))}};function tt(o){let p=!1,d;return(...r)=>(p||(p=!0,d=o(...r)),d)}let we="missing-app-name";try{we=Ae}catch{B.error("The `@nextcloud/vue` library was used without setting / replacing the `appName`.")}const ae=we;let it="";try{it=Ve}catch{B.error("The `@nextcloud/vue` library was used without setting / replacing the `appVersion`.")}const at=tt(()=>{const o=he("core","active-app",ae);return he("core","apps",[]).find(({id:p})=>p===o)?.name??ae});ze();const nt=fe({__name:"NcAppContentDetailsToggle",setup(o){const p=ne();V(p,d),le(()=>{d(p.value)}),se(()=>{p.value&&d(!1)});function d(r=!0){const m=document.querySelector(".app-navigation .app-navigation-toggle");m&&(m.style.display=r?"none":"",r===!0&&q("toggle-navigation",{open:!1}))}return(r,m)=>(C(),j(y(ie),{"aria-label":y(O)("Go back to the list"),class:Z(["app-details-toggle",{"app-details-toggle--mobile":y(p)}]),title:y(O)("Go back to the list"),variant:"tertiary"},{icon:R(()=>[k(y(xe),{directional:"",path:y(Je)},null,8,["path"])]),_:1},8,["aria-label","class","title"]))}}),lt=oe(nt,[["__scopeId","data-v-a28923a1"]]),me=Ze("nextcloud").persist().build(),st=Be().theming?.name??"Nextcloud",ot={name:"NcAppContent",components:{NcAppContentDetailsToggle:lt,Pane:et,Splitpanes:Qe},props:{disableSwipe:{type:Boolean,default:!1},listSize:{type:Number,default:20},listMinWidth:{type:Number,default:15},listMaxWidth:{type:Number,default:40},paneConfigKey:{type:String,default:""},showDetails:{type:Boolean,default:!0},layout:{type:String,default:"vertical-split",validator(o){return["no-split","vertical-split","horizontal-split"].includes(o)}},pageHeading:{type:String,default:null},pageTitle:{type:String,default:null}},emits:["update:showDetails","resizeList"],setup(){return{isMobile:ne(),isRtl:Fe}},data(){return{contentHeight:0,swiping:{},listPaneSize:this.restorePaneConfig()}},computed:{paneConfigID(){if(this.paneConfigKey!=="")return`pane-list-size-${this.paneConfigKey}`;try{return`pane-list-size-${ae}`}catch{return B.info("[NcAppContent]: falling back to global nextcloud pane config"),"pane-list-size-nextcloud"}},detailsPaneSize(){return this.listPaneSize?100-this.listPaneSize:this.paneDefaults.details.size},paneDefaults(){return{list:{size:this.listSize,min:this.listMinWidth,max:this.listMaxWidth},details:{size:100-this.listSize,min:100-this.listMaxWidth,max:100-this.listMinWidth}}},realPageTitle(){const o=new Set;if(this.pageTitle)for(const p of this.pageTitle.split(" - "))o.add(p);else if(this.pageHeading){for(const p of this.pageHeading.split(" - "))o.add(p);o.size>0&&o.add(at())}else return null;return o.add(st),[...o.values()].join(" - ")}},watch:{realPageTitle:{immediate:!0,handler(){this.realPageTitle!==null&&(document.title=this.realPageTitle)}},paneConfigKey:{immediate:!0,handler(){this.restorePaneConfig()}}},mounted(){this.disableSwipe||(this.swiping=Oe(this.$el,{onSwipeEnd:this.handleSwipe})),this.restorePaneConfig()},methods:{handleSwipe(o,p){Math.abs(this.swiping.lengthX)>70&&(this.swiping.coordsStart.x<300/2&&p==="right"?q("toggle-navigation",{open:!0}):this.swiping.coordsStart.x<300*1.5&&p==="left"&&q("toggle-navigation",{open:!1}))},handlePaneResize(o){const p=parseInt(o.panes[0].size,10);me.setItem(this.paneConfigID,JSON.stringify(p)),this.listPaneSize=p,this.$emit("resizeList",{size:p}),B.debug("[NcAppContent] pane config",{listPaneSize:p})},restorePaneConfig(){const o=parseInt(me.getItem(this.paneConfigID),10);if(!isNaN(o)&&o!==this.listPaneSize)return B.debug("[NcAppContent] pane config",{listPaneSize:o}),this.listPaneSize=o,o},hideDetails(){this.$emit("update:showDetails",!1)}}},rt={key:0,class:"hidden-visually"},ut={key:1,class:"app-content-wrapper"};function dt(o,p,d,r,m,l){const S=Q("NcAppContentDetailsToggle"),x=Q("Pane"),c=Q("Splitpanes");return C(),b("main",{id:"app-content-vue",class:Z(["app-content no-snapper",{"app-content--has-list":!!o.$slots.list}])},[d.pageHeading?(C(),b("h1",rt,W(d.pageHeading),1)):L("",!0),o.$slots.list?(C(),b(je,{key:1},[r.isMobile||d.layout==="no-split"?(C(),b("div",{key:0,class:Z(["app-content-wrapper app-content-wrapper--no-split",{"app-content-wrapper--show-details":d.showDetails,"app-content-wrapper--show-list":!d.showDetails,"app-content-wrapper--mobile":r.isMobile}])},[d.showDetails?(C(),j(S,{key:0,onClick:ge(l.hideDetails,["stop","prevent"])},null,8,["onClick"])):L("",!0),ee(X("div",null,[N(o.$slots,"list",{},void 0,!0)],512),[[te,!d.showDetails]]),d.showDetails?N(o.$slots,"default",{key:1},void 0,!0):L("",!0)],2)):d.layout==="vertical-split"||d.layout==="horizontal-split"?(C(),b("div",ut,[k(c,{horizontal:d.layout==="horizontal-split",class:Z(["default-theme",{"splitpanes--horizontal":d.layout==="horizontal-split","splitpanes--vertical":d.layout==="vertical-split"}]),rtl:r.isRtl,onResized:l.handlePaneResize},{default:R(()=>[k(x,{class:"splitpanes__pane-list",size:m.listPaneSize||l.paneDefaults.list.size,"min-size":l.paneDefaults.list.min,"max-size":l.paneDefaults.list.max},{default:R(()=>[N(o.$slots,"list",{},void 0,!0)]),_:3},8,["size","min-size","max-size"]),k(x,{class:"splitpanes__pane-details",size:l.detailsPaneSize,"min-size":l.paneDefaults.details.min,"max-size":l.paneDefaults.details.max},{default:R(()=>[N(o.$slots,"default",{},void 0,!0)]),_:3},8,["size","min-size","max-size"])]),_:3},8,["horizontal","class","rtl","onResized"])])):L("",!0)],64)):L("",!0),o.$slots.list?L("",!0):N(o.$slots,"default",{key:2},void 0,!0)],2)}const Et=oe(ot,[["render",dt],["__scopeId","data-v-a2641cc2"]]),pt=Symbol.for("NcContent:setHasAppNavigation"),ct=Symbol.for("NcContent:selector");ze();const ht=` + + + + + + + + + + + + + + + + + + + + + + +`,vt=` + + + + + + + + + + + + + + + + + + + + + + +`,mt={class:"vue-skip-actions__container"},gt={class:"vue-skip-actions__headline"},ft={class:"vue-skip-actions__buttons"},xt=fe({__name:"NcContent",props:{appName:{}},setup(o){const p=o;P(pt,x),P(ct,"#content-vue"),P("appName",D(()=>p.appName));const d=ne(),r=M(!1),m=M(),l=D(()=>m.value==="navigation"?vt:ht);Ue(()=>{const c=document.getElementById("skip-actions");c&&(c.innerHTML="",c.classList.add("vue-skip-actions"))});function S(){q("toggle-navigation",{open:!0}),K(()=>{window.location.hash="app-navigation-vue",document.getElementById("app-navigation-vue").focus()})}function x(c){r.value=c,m.value||(m.value="navigation")}return(c,g)=>(C(),b("div",{id:"content-vue",class:Z(["content",`app-${c.appName.toLowerCase()}`])},[(C(),j(Ye,{to:"#skip-actions"},[X("div",mt,[X("div",gt,W(y(O)("Keyboard navigation help")),1),X("div",ft,[ee(k(ie,{href:"#app-navigation-vue",variant:"tertiary",onClick:ge(S,["prevent"]),onFocusin:g[0]||(g[0]=v=>m.value="navigation"),onMouseover:g[1]||(g[1]=v=>m.value="navigation")},{default:R(()=>[ve(W(y(O)("Skip to app navigation")),1)]),_:1},512),[[te,r.value]]),k(ie,{href:"#app-content-vue",variant:"tertiary",onFocusin:g[2]||(g[2]=v=>m.value="content"),onMouseover:g[3]||(g[3]=v=>m.value="content")},{default:R(()=>[ve(W(y(O)("Skip to main content")),1)]),_:1})]),ee(k(xe,{class:"vue-skip-actions__image",svg:l.value,size:"auto"},null,8,["svg"]),[[te,!y(d)]])])])),N(c.$slots,"default",{},void 0,!0)],2))}}),Pt=oe(xt,[["__scopeId","data-v-d9b0d7e8"]]);export{Et as N,Pt as a}; +//# sourceMappingURL=NcContent-BR_nMwKN-DuxjkyFF.chunk.mjs.map diff --git a/dist/NcNoteCard-CVhtNL04-hwuc093N.chunk.mjs.license b/dist/NcContent-BR_nMwKN-DuxjkyFF.chunk.mjs.license similarity index 74% rename from dist/NcNoteCard-CVhtNL04-hwuc093N.chunk.mjs.license rename to dist/NcContent-BR_nMwKN-DuxjkyFF.chunk.mjs.license index eadee349d1ecf..07c0ea163dbee 100644 --- a/dist/NcNoteCard-CVhtNL04-hwuc093N.chunk.mjs.license +++ b/dist/NcContent-BR_nMwKN-DuxjkyFF.chunk.mjs.license @@ -1,12 +1,12 @@ SPDX-License-Identifier: AGPL-3.0-or-later SPDX-License-Identifier: MIT -SPDX-FileCopyrightText: Eduardo San Martin Morote +SPDX-FileCopyrightText: Antoni Andre SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors This file is generated from multiple sources. Included packages: - @nextcloud/vue - version: 9.3.1 - license: AGPL-3.0-or-later -- vue-router - - version: 4.6.3 +- splitpanes + - version: 4.0.4 - license: MIT diff --git a/dist/NcContent-BR_nMwKN-DuxjkyFF.chunk.mjs.map b/dist/NcContent-BR_nMwKN-DuxjkyFF.chunk.mjs.map new file mode 100644 index 0000000000000..6ed1772aa7dff --- /dev/null +++ b/dist/NcContent-BR_nMwKN-DuxjkyFF.chunk.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"NcContent-BR_nMwKN-DuxjkyFF.chunk.mjs","sources":["../node_modules/splitpanes/dist/splitpanes.es.js","../node_modules/@nextcloud/vue/dist/chunks/appName-DtnLUijR.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppContent-CTpYDkuT.mjs","../node_modules/@nextcloud/vue/dist/chunks/constants-DrSznhwy.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcContent-BR_nMwKN.mjs"],"sourcesContent":["import { useSlots as ce, ref as k, computed as z, watch as B, onMounted as G, onBeforeUnmount as X, provide as g, createBlock as ve, openBlock as Y, resolveDynamicComponent as me, nextTick as T, h as fe, inject as w, getCurrentInstance as de, createElementBlock as pe, normalizeStyle as ze, unref as he, renderSlot as xe } from \"vue\";\nconst Pe = {\n __name: \"splitpanes\",\n props: {\n horizontal: { type: Boolean, default: !1 },\n pushOtherPanes: { type: Boolean, default: !0 },\n maximizePanes: { type: Boolean, default: !0 },\n // Maximize pane on splitter double click/tap.\n rtl: { type: Boolean, default: !1 },\n // Right to left direction.\n firstSplitter: { type: Boolean, default: !1 }\n },\n emits: [\n \"ready\",\n \"resize\",\n \"resized\",\n \"pane-click\",\n \"pane-maximize\",\n \"pane-add\",\n \"pane-remove\",\n \"splitter-click\",\n \"splitter-dblclick\"\n ],\n setup(D, { emit: h }) {\n const y = h, u = D, E = ce(), l = k([]), M = z(() => l.value.reduce((e, n) => (e[~~n.id] = n) && e, {})), m = z(() => l.value.length), x = k(null), S = k(!1), c = k({\n mouseDown: !1,\n dragging: !1,\n activeSplitter: null,\n cursorOffset: 0\n // Cursor offset within the splitter.\n }), f = k({\n // Used to detect double click on touch devices.\n splitter: null,\n timeoutId: null\n }), _ = z(() => ({\n [`splitpanes splitpanes--${u.horizontal ? \"horizontal\" : \"vertical\"}`]: !0,\n \"splitpanes--dragging\": c.value.dragging\n })), R = () => {\n document.addEventListener(\"mousemove\", r, { passive: !1 }), document.addEventListener(\"mouseup\", P), \"ontouchstart\" in window && (document.addEventListener(\"touchmove\", r, { passive: !1 }), document.addEventListener(\"touchend\", P));\n }, O = () => {\n document.removeEventListener(\"mousemove\", r, { passive: !1 }), document.removeEventListener(\"mouseup\", P), \"ontouchstart\" in window && (document.removeEventListener(\"touchmove\", r, { passive: !1 }), document.removeEventListener(\"touchend\", P));\n }, b = (e, n) => {\n const t = e.target.closest(\".splitpanes__splitter\");\n if (t) {\n const { left: i, top: a } = t.getBoundingClientRect(), { clientX: s, clientY: o } = \"ontouchstart\" in window && e.touches ? e.touches[0] : e;\n c.value.cursorOffset = u.horizontal ? o - a : s - i;\n }\n R(), c.value.mouseDown = !0, c.value.activeSplitter = n;\n }, r = (e) => {\n c.value.mouseDown && (e.preventDefault(), c.value.dragging = !0, requestAnimationFrame(() => {\n K(I(e)), d(\"resize\", { event: e }, !0);\n }));\n }, P = (e) => {\n c.value.dragging && (window.getSelection().removeAllRanges(), d(\"resized\", { event: e }, !0)), c.value.mouseDown = !1, c.value.activeSplitter = null, setTimeout(() => {\n c.value.dragging = !1, O();\n }, 100);\n }, A = (e, n) => {\n \"ontouchstart\" in window && (e.preventDefault(), f.value.splitter === n ? (clearTimeout(f.value.timeoutId), f.value.timeoutId = null, U(e, n), f.value.splitter = null) : (f.value.splitter = n, f.value.timeoutId = setTimeout(() => f.value.splitter = null, 500))), c.value.dragging || d(\"splitter-click\", { event: e, index: n }, !0);\n }, U = (e, n) => {\n if (d(\"splitter-dblclick\", { event: e, index: n }, !0), u.maximizePanes) {\n let t = 0;\n l.value = l.value.map((i, a) => (i.size = a === n ? i.max : i.min, a !== n && (t += i.min), i)), l.value[n].size -= t, d(\"pane-maximize\", { event: e, index: n, pane: l.value[n] }), d(\"resized\", { event: e, index: n }, !0);\n }\n }, W = (e, n) => {\n d(\"pane-click\", {\n event: e,\n index: M.value[n].index,\n pane: M.value[n]\n });\n }, I = (e) => {\n const n = x.value.getBoundingClientRect(), { clientX: t, clientY: i } = \"ontouchstart\" in window && e.touches ? e.touches[0] : e;\n return {\n x: t - (u.horizontal ? 0 : c.value.cursorOffset) - n.left,\n y: i - (u.horizontal ? c.value.cursorOffset : 0) - n.top\n };\n }, J = (e) => {\n e = e[u.horizontal ? \"y\" : \"x\"];\n const n = x.value[u.horizontal ? \"clientHeight\" : \"clientWidth\"];\n return u.rtl && !u.horizontal && (e = n - e), e * 100 / n;\n }, K = (e) => {\n const n = c.value.activeSplitter;\n let t = {\n prevPanesSize: $(n),\n nextPanesSize: N(n),\n prevReachedMinPanes: 0,\n nextReachedMinPanes: 0\n };\n const i = 0 + (u.pushOtherPanes ? 0 : t.prevPanesSize), a = 100 - (u.pushOtherPanes ? 0 : t.nextPanesSize), s = Math.max(Math.min(J(e), a), i);\n let o = [n, n + 1], v = l.value[o[0]] || null, p = l.value[o[1]] || null;\n const H = v.max < 100 && s >= v.max + t.prevPanesSize, ue = p.max < 100 && s <= 100 - (p.max + N(n + 1));\n if (H || ue) {\n H ? (v.size = v.max, p.size = Math.max(100 - v.max - t.prevPanesSize - t.nextPanesSize, 0)) : (v.size = Math.max(100 - p.max - t.prevPanesSize - N(n + 1), 0), p.size = p.max);\n return;\n }\n if (u.pushOtherPanes) {\n const j = Q(t, s);\n if (!j) return;\n ({ sums: t, panesToResize: o } = j), v = l.value[o[0]] || null, p = l.value[o[1]] || null;\n }\n v !== null && (v.size = Math.min(Math.max(s - t.prevPanesSize - t.prevReachedMinPanes, v.min), v.max)), p !== null && (p.size = Math.min(Math.max(100 - s - t.nextPanesSize - t.nextReachedMinPanes, p.min), p.max));\n }, Q = (e, n) => {\n const t = c.value.activeSplitter, i = [t, t + 1];\n return n < e.prevPanesSize + l.value[i[0]].min && (i[0] = V(t).index, e.prevReachedMinPanes = 0, i[0] < t && l.value.forEach((a, s) => {\n s > i[0] && s <= t && (a.size = a.min, e.prevReachedMinPanes += a.min);\n }), e.prevPanesSize = $(i[0]), i[0] === void 0) ? (e.prevReachedMinPanes = 0, l.value[0].size = l.value[0].min, l.value.forEach((a, s) => {\n s > 0 && s <= t && (a.size = a.min, e.prevReachedMinPanes += a.min);\n }), l.value[i[1]].size = 100 - e.prevReachedMinPanes - l.value[0].min - e.prevPanesSize - e.nextPanesSize, null) : n > 100 - e.nextPanesSize - l.value[i[1]].min && (i[1] = Z(t).index, e.nextReachedMinPanes = 0, i[1] > t + 1 && l.value.forEach((a, s) => {\n s > t && s < i[1] && (a.size = a.min, e.nextReachedMinPanes += a.min);\n }), e.nextPanesSize = N(i[1] - 1), i[1] === void 0) ? (e.nextReachedMinPanes = 0, l.value.forEach((a, s) => {\n s < m.value - 1 && s >= t + 1 && (a.size = a.min, e.nextReachedMinPanes += a.min);\n }), l.value[i[0]].size = 100 - e.prevPanesSize - N(i[0] - 1), null) : { sums: e, panesToResize: i };\n }, $ = (e) => l.value.reduce((n, t, i) => n + (i < e ? t.size : 0), 0), N = (e) => l.value.reduce((n, t, i) => n + (i > e + 1 ? t.size : 0), 0), V = (e) => [...l.value].reverse().find((t) => t.index < e && t.size > t.min) || {}, Z = (e) => l.value.find((t) => t.index > e + 1 && t.size > t.min) || {}, ee = () => {\n var n;\n const e = Array.from(((n = x.value) == null ? void 0 : n.children) || []);\n for (const t of e) {\n const i = t.classList.contains(\"splitpanes__pane\"), a = t.classList.contains(\"splitpanes__splitter\");\n !i && !a && (t.remove(), console.warn(\"Splitpanes: Only elements are allowed at the root of . One of your DOM nodes was removed.\"));\n }\n }, F = (e, n, t = !1) => {\n const i = e - 1, a = document.createElement(\"div\");\n a.classList.add(\"splitpanes__splitter\"), t || (a.onmousedown = (s) => b(s, i), typeof window < \"u\" && \"ontouchstart\" in window && (a.ontouchstart = (s) => b(s, i)), a.onclick = (s) => A(s, i + 1)), a.ondblclick = (s) => U(s, i + 1), n.parentNode.insertBefore(a, n);\n }, ne = (e) => {\n e.onmousedown = void 0, e.onclick = void 0, e.ondblclick = void 0, e.remove();\n }, C = () => {\n var t;\n const e = Array.from(((t = x.value) == null ? void 0 : t.children) || []);\n for (const i of e)\n i.className.includes(\"splitpanes__splitter\") && ne(i);\n let n = 0;\n for (const i of e)\n i.className.includes(\"splitpanes__pane\") && (!n && u.firstSplitter ? F(n, i, !0) : n && F(n, i), n++);\n }, ie = ({ uid: e, ...n }) => {\n const t = M.value[e];\n for (const [i, a] of Object.entries(n)) t[i] = a;\n }, te = (e) => {\n var t;\n let n = -1;\n Array.from(((t = x.value) == null ? void 0 : t.children) || []).some((i) => (i.className.includes(\"splitpanes__pane\") && n++, i.isSameNode(e.el))), l.value.splice(n, 0, { ...e, index: n }), l.value.forEach((i, a) => i.index = a), S.value && T(() => {\n C(), L({ addedPane: l.value[n] }), d(\"pane-add\", { pane: l.value[n] });\n });\n }, ae = (e) => {\n const n = l.value.findIndex((i) => i.id === e);\n l.value[n].el = null;\n const t = l.value.splice(n, 1)[0];\n l.value.forEach((i, a) => i.index = a), T(() => {\n C(), d(\"pane-remove\", { pane: t }), L({ removedPane: { ...t } });\n });\n }, L = (e = {}) => {\n !e.addedPane && !e.removedPane ? le() : l.value.some((n) => n.givenSize !== null || n.min || n.max < 100) ? oe(e) : se(), S.value && d(\"resized\");\n }, se = () => {\n const e = 100 / m.value;\n let n = 0;\n const t = [], i = [];\n for (const a of l.value)\n a.size = Math.max(Math.min(e, a.max), a.min), n -= a.size, a.size >= a.max && t.push(a.id), a.size <= a.min && i.push(a.id);\n n > 0.1 && q(n, t, i);\n }, le = () => {\n let e = 100;\n const n = [], t = [];\n let i = 0;\n for (const s of l.value)\n e -= s.size, s.givenSize !== null && i++, s.size >= s.max && n.push(s.id), s.size <= s.min && t.push(s.id);\n let a = 100;\n if (e > 0.1) {\n for (const s of l.value)\n s.givenSize === null && (s.size = Math.max(Math.min(e / (m.value - i), s.max), s.min)), a -= s.size;\n a > 0.1 && q(a, n, t);\n }\n }, oe = ({ addedPane: e, removedPane: n } = {}) => {\n let t = 100 / m.value, i = 0;\n const a = [], s = [];\n ((e == null ? void 0 : e.givenSize) ?? null) !== null && (t = (100 - e.givenSize) / (m.value - 1));\n for (const o of l.value)\n i -= o.size, o.size >= o.max && a.push(o.id), o.size <= o.min && s.push(o.id);\n if (!(Math.abs(i) < 0.1)) {\n for (const o of l.value)\n (e == null ? void 0 : e.givenSize) !== null && (e == null ? void 0 : e.id) === o.id || (o.size = Math.max(Math.min(t, o.max), o.min)), i -= o.size, o.size >= o.max && a.push(o.id), o.size <= o.min && s.push(o.id);\n i > 0.1 && q(i, a, s);\n }\n }, q = (e, n, t) => {\n let i;\n e > 0 ? i = e / (m.value - n.length) : i = e / (m.value - t.length), l.value.forEach((a, s) => {\n if (e > 0 && !n.includes(a.id)) {\n const o = Math.max(Math.min(a.size + i, a.max), a.min), v = o - a.size;\n e -= v, a.size = o;\n } else if (!t.includes(a.id)) {\n const o = Math.max(Math.min(a.size + i, a.max), a.min), v = o - a.size;\n e -= v, a.size = o;\n }\n }), Math.abs(e) > 0.1 && T(() => {\n S.value && console.warn(\"Splitpanes: Could not resize panes correctly due to their constraints.\");\n });\n }, d = (e, n = void 0, t = !1) => {\n const i = (n == null ? void 0 : n.index) ?? c.value.activeSplitter ?? null;\n y(e, {\n ...n,\n ...i !== null && { index: i },\n ...t && i !== null && {\n prevPane: l.value[i - (u.firstSplitter ? 1 : 0)],\n nextPane: l.value[i + (u.firstSplitter ? 0 : 1)]\n },\n panes: l.value.map((a) => ({ min: a.min, max: a.max, size: a.size }))\n });\n };\n B(() => u.firstSplitter, () => C()), G(() => {\n ee(), C(), L(), d(\"ready\"), S.value = !0;\n }), X(() => S.value = !1);\n const re = () => {\n var e;\n return fe(\n \"div\",\n { ref: x, class: _.value },\n (e = E.default) == null ? void 0 : e.call(E)\n );\n };\n return g(\"panes\", l), g(\"indexedPanes\", M), g(\"horizontal\", z(() => u.horizontal)), g(\"requestUpdate\", ie), g(\"onPaneAdd\", te), g(\"onPaneRemove\", ae), g(\"onPaneClick\", W), (e, n) => (Y(), ve(me(re)));\n }\n}, ge = {\n __name: \"pane\",\n props: {\n size: { type: [Number, String] },\n minSize: { type: [Number, String], default: 0 },\n maxSize: { type: [Number, String], default: 100 }\n },\n setup(D) {\n var b;\n const h = D, y = w(\"requestUpdate\"), u = w(\"onPaneAdd\"), E = w(\"horizontal\"), l = w(\"onPaneRemove\"), M = w(\"onPaneClick\"), m = (b = de()) == null ? void 0 : b.uid, x = w(\"indexedPanes\"), S = z(() => x.value[m]), c = k(null), f = z(() => {\n const r = isNaN(h.size) || h.size === void 0 ? 0 : parseFloat(h.size);\n return Math.max(Math.min(r, R.value), _.value);\n }), _ = z(() => {\n const r = parseFloat(h.minSize);\n return isNaN(r) ? 0 : r;\n }), R = z(() => {\n const r = parseFloat(h.maxSize);\n return isNaN(r) ? 100 : r;\n }), O = z(() => {\n var r;\n return `${E.value ? \"height\" : \"width\"}: ${(r = S.value) == null ? void 0 : r.size}%`;\n });\n return B(() => f.value, (r) => y({ uid: m, size: r })), B(() => _.value, (r) => y({ uid: m, min: r })), B(() => R.value, (r) => y({ uid: m, max: r })), G(() => {\n u({\n id: m,\n el: c.value,\n min: _.value,\n max: R.value,\n // The given size (useful to know the user intention).\n givenSize: h.size === void 0 ? null : f.value,\n size: f.value\n // The computed current size at any time.\n });\n }), X(() => l(m)), (r, P) => (Y(), pe(\"div\", {\n ref_key: \"paneEl\",\n ref: c,\n class: \"splitpanes__pane\",\n onClick: P[0] || (P[0] = (A) => he(M)(A, r._.uid)),\n style: ze(O.value)\n }, [\n xe(r.$slots, \"default\")\n ], 4));\n }\n};\nexport {\n ge as Pane,\n Pe as Splitpanes\n};\n","import { loadState } from \"@nextcloud/initial-state\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction once(func) {\n let wasCalled = false;\n let result;\n return (...args) => {\n if (!wasCalled) {\n wasCalled = true;\n result = func(...args);\n }\n return result;\n };\n}\nlet realAppName = \"missing-app-name\";\ntry {\n realAppName = appName;\n} catch {\n logger.error(\"The `@nextcloud/vue` library was used without setting / replacing the `appName`.\");\n}\nconst APP_NAME = realAppName;\nlet realAppVersion = \"\";\ntry {\n realAppVersion = appVersion;\n} catch {\n logger.error(\"The `@nextcloud/vue` library was used without setting / replacing the `appVersion`.\");\n}\nconst APP_VERSION = realAppVersion;\nconst getLocalizedAppName = once(() => {\n const activeApp = loadState(\"core\", \"active-app\", APP_NAME);\n return loadState(\"core\", \"apps\", []).find(({ id }) => id === activeApp)?.name ?? APP_NAME;\n});\nexport {\n APP_NAME as A,\n APP_VERSION as a,\n getLocalizedAppName as g\n};\n//# sourceMappingURL=appName-DtnLUijR.mjs.map\n","import '../assets/NcAppContent-HF21N7dO.css';\nimport { getBuilder } from \"@nextcloud/browser-storage\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport { emit } from \"@nextcloud/event-bus\";\nimport { useSwipe } from \"@vueuse/core\";\nimport { Splitpanes, Pane } from \"splitpanes\";\nimport { defineComponent, watch, onMounted, onBeforeUnmount, createBlock, openBlock, unref, normalizeClass, withCtx, createVNode, resolveComponent, createElementBlock, createCommentVNode, renderSlot, toDisplayString, Fragment, withDirectives, withModifiers, createElementVNode, vShow } from \"vue\";\nimport { m as mdiArrowRight } from \"./mdi-XFJRiRqJ.mjs\";\nimport { useIsMobile } from \"../composables/useIsMobile/index.mjs\";\nimport { r as register, a as t } from \"./_l10n-DrTiip5c.mjs\";\nimport { N as NcButton } from \"./NcButton-Dc8V4Urj.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-BvLanNaW.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { g as getLocalizedAppName, A as APP_NAME } from \"./appName-DtnLUijR.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { i as isRtl } from \"./rtl-v0UOPAM7.mjs\";\nimport \"splitpanes/dist/splitpanes.css\";\nregister();\nconst _sfc_main$1 = /* @__PURE__ */ defineComponent({\n __name: \"NcAppContentDetailsToggle\",\n setup(__props) {\n const isMobile = useIsMobile();\n watch(isMobile, toggleAppNavigationButton);\n onMounted(() => {\n toggleAppNavigationButton(isMobile.value);\n });\n onBeforeUnmount(() => {\n if (isMobile.value) {\n toggleAppNavigationButton(false);\n }\n });\n function toggleAppNavigationButton(hide = true) {\n const appNavigationToggle = document.querySelector(\".app-navigation .app-navigation-toggle\");\n if (appNavigationToggle) {\n appNavigationToggle.style.display = hide ? \"none\" : \"\";\n if (hide === true) {\n emit(\"toggle-navigation\", { open: false });\n }\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(NcButton), {\n \"aria-label\": unref(t)(\"Go back to the list\"),\n class: normalizeClass([\"app-details-toggle\", { \"app-details-toggle--mobile\": unref(isMobile) }]),\n title: unref(t)(\"Go back to the list\"),\n variant: \"tertiary\"\n }, {\n icon: withCtx(() => [\n createVNode(unref(NcIconSvgWrapper), {\n directional: \"\",\n path: unref(mdiArrowRight)\n }, null, 8, [\"path\"])\n ]),\n _: 1\n }, 8, [\"aria-label\", \"class\", \"title\"]);\n };\n }\n});\nconst NcAppContentDetailsToggle = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"__scopeId\", \"data-v-a28923a1\"]]);\nconst browserStorage = getBuilder(\"nextcloud\").persist().build();\nconst instanceName = getCapabilities().theming?.name ?? \"Nextcloud\";\nconst _sfc_main = {\n name: \"NcAppContent\",\n components: {\n NcAppContentDetailsToggle,\n Pane,\n Splitpanes\n },\n props: {\n /**\n * Allows to disable the control by swipe of the app navigation open state.\n */\n disableSwipe: {\n type: Boolean,\n default: false\n },\n /**\n * Allows you to set the default width of the resizable list in % on vertical-split\n * or respectively the default height on horizontal-split.\n *\n * Must be between `listMinWidth` and `listMaxWidth`.\n */\n listSize: {\n type: Number,\n default: 20\n },\n /**\n * Allows you to set the minimum width of the list column in % on vertical-split\n * or respectively the minimum height on horizontal-split.\n */\n listMinWidth: {\n type: Number,\n default: 15\n },\n /**\n * Allows you to set the maximum width of the list column in % on vertical-split\n * or respectively the maximum height on horizontal-split.\n */\n listMaxWidth: {\n type: Number,\n default: 40\n },\n /**\n * Specify the config key for the pane config sizes\n * Default is the global var appName if you use the webpack-vue-config\n */\n paneConfigKey: {\n type: String,\n default: \"\"\n },\n /**\n * When in mobile view, only the list or the details are shown.\n *\n * If you provide a list, you need to provide a variable\n * that will be set to true by the user when an element of\n * the list gets selected. The details will then show a back\n * arrow to return to the list that will update this prop to false.\n */\n showDetails: {\n type: Boolean,\n default: true\n },\n /**\n * Content layout used when there is a list together with content:\n * - `vertical-split` - a 2-column layout with list and default content separated vertically\n * - `no-split` - a single column layout; List is shown when `showDetails` is `false`, otherwise the default slot content is shown with a back button to return to the list.\n * - 'horizontal-split' - a 2-column layout with list and default content separated horizontally\n * On mobile screen `no-split` layout is forced.\n */\n layout: {\n type: String,\n default: \"vertical-split\",\n validator(value) {\n return [\"no-split\", \"vertical-split\", \"horizontal-split\"].includes(value);\n }\n },\n /**\n * Specify the `

` page heading\n */\n pageHeading: {\n type: String,\n default: null\n },\n /**\n * Allow setting the page's ``\n *\n * If a page heading is set it defaults to `{pageHeading} - {appName} - {instanceName}` e.g. `Favorites - Files - MyPersonalCloud`.\n * When the page heading and the app name is the same only one is used, e.g. `Files - Files - MyPersonalCloud` is shown as `Files - MyPersonalCloud`.\n * When setting the prop then the following format will be used: `{pageTitle} - {instanceName}`\n */\n pageTitle: {\n type: String,\n default: null\n }\n },\n emits: [\n \"update:showDetails\",\n \"resizeList\"\n ],\n setup() {\n return {\n isMobile: useIsMobile(),\n isRtl\n };\n },\n data() {\n return {\n contentHeight: 0,\n swiping: {},\n listPaneSize: this.restorePaneConfig()\n };\n },\n computed: {\n paneConfigID() {\n if (this.paneConfigKey !== \"\") {\n return `pane-list-size-${this.paneConfigKey}`;\n }\n try {\n return `pane-list-size-${APP_NAME}`;\n } catch {\n logger.info(\"[NcAppContent]: falling back to global nextcloud pane config\");\n return \"pane-list-size-nextcloud\";\n }\n },\n detailsPaneSize() {\n if (this.listPaneSize) {\n return 100 - this.listPaneSize;\n }\n return this.paneDefaults.details.size;\n },\n paneDefaults() {\n return {\n list: {\n size: this.listSize,\n min: this.listMinWidth,\n max: this.listMaxWidth\n },\n // set the inverse values of the details column\n // based on the provided (or default) values of the list column\n details: {\n size: 100 - this.listSize,\n min: 100 - this.listMaxWidth,\n max: 100 - this.listMinWidth\n }\n };\n },\n realPageTitle() {\n const entries = /* @__PURE__ */ new Set();\n if (this.pageTitle) {\n for (const part of this.pageTitle.split(\" - \")) {\n entries.add(part);\n }\n } else if (this.pageHeading) {\n for (const part of this.pageHeading.split(\" - \")) {\n entries.add(part);\n }\n if (entries.size > 0) {\n entries.add(getLocalizedAppName());\n }\n } else {\n return null;\n }\n entries.add(instanceName);\n return [...entries.values()].join(\" - \");\n }\n },\n watch: {\n realPageTitle: {\n immediate: true,\n handler() {\n if (this.realPageTitle !== null) {\n document.title = this.realPageTitle;\n }\n }\n },\n paneConfigKey: {\n immediate: true,\n handler() {\n this.restorePaneConfig();\n }\n }\n },\n mounted() {\n if (!this.disableSwipe) {\n this.swiping = useSwipe(this.$el, {\n onSwipeEnd: this.handleSwipe\n });\n }\n this.restorePaneConfig();\n },\n methods: {\n /**\n * handle the swipe event\n *\n * @param {TouchEvent} e The touch event\n * @param {import('@vueuse/core').SwipeDirection} direction The swipe direction of the event\n */\n handleSwipe(e, direction) {\n const minSwipeX = 70;\n const touchZone = 300;\n if (Math.abs(this.swiping.lengthX) > minSwipeX) {\n if (this.swiping.coordsStart.x < touchZone / 2 && direction === \"right\") {\n emit(\"toggle-navigation\", {\n open: true\n });\n } else if (this.swiping.coordsStart.x < touchZone * 1.5 && direction === \"left\") {\n emit(\"toggle-navigation\", {\n open: false\n });\n }\n }\n },\n handlePaneResize(event) {\n const listPaneSize = parseInt(event.panes[0].size, 10);\n browserStorage.setItem(this.paneConfigID, JSON.stringify(listPaneSize));\n this.listPaneSize = listPaneSize;\n this.$emit(\"resizeList\", { size: listPaneSize });\n logger.debug(\"[NcAppContent] pane config\", { listPaneSize });\n },\n // browserStorage is not reactive, we need to update this manually\n restorePaneConfig() {\n const listPaneSize = parseInt(browserStorage.getItem(this.paneConfigID), 10);\n if (!isNaN(listPaneSize) && listPaneSize !== this.listPaneSize) {\n logger.debug(\"[NcAppContent] pane config\", { listPaneSize });\n this.listPaneSize = listPaneSize;\n return listPaneSize;\n }\n },\n /**\n * The user clicked the back arrow from the details view\n */\n hideDetails() {\n this.$emit(\"update:showDetails\", false);\n }\n }\n};\nconst _hoisted_1 = {\n key: 0,\n class: \"hidden-visually\"\n};\nconst _hoisted_2 = {\n key: 1,\n class: \"app-content-wrapper\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcAppContentDetailsToggle = resolveComponent(\"NcAppContentDetailsToggle\");\n const _component_Pane = resolveComponent(\"Pane\");\n const _component_Splitpanes = resolveComponent(\"Splitpanes\");\n return openBlock(), createElementBlock(\"main\", {\n id: \"app-content-vue\",\n class: normalizeClass([\"app-content no-snapper\", { \"app-content--has-list\": !!_ctx.$slots.list }])\n }, [\n $props.pageHeading ? (openBlock(), createElementBlock(\"h1\", _hoisted_1, toDisplayString($props.pageHeading), 1)) : createCommentVNode(\"\", true),\n !!_ctx.$slots.list ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [\n $setup.isMobile || $props.layout === \"no-split\" ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"app-content-wrapper app-content-wrapper--no-split\", {\n \"app-content-wrapper--show-details\": $props.showDetails,\n \"app-content-wrapper--show-list\": !$props.showDetails,\n \"app-content-wrapper--mobile\": $setup.isMobile\n }])\n }, [\n $props.showDetails ? (openBlock(), createBlock(_component_NcAppContentDetailsToggle, {\n key: 0,\n onClick: withModifiers($options.hideDetails, [\"stop\", \"prevent\"])\n }, null, 8, [\"onClick\"])) : createCommentVNode(\"\", true),\n withDirectives(createElementVNode(\"div\", null, [\n renderSlot(_ctx.$slots, \"list\", {}, void 0, true)\n ], 512), [\n [vShow, !$props.showDetails]\n ]),\n $props.showDetails ? renderSlot(_ctx.$slots, \"default\", { key: 1 }, void 0, true) : createCommentVNode(\"\", true)\n ], 2)) : $props.layout === \"vertical-split\" || $props.layout === \"horizontal-split\" ? (openBlock(), createElementBlock(\"div\", _hoisted_2, [\n createVNode(_component_Splitpanes, {\n horizontal: $props.layout === \"horizontal-split\",\n class: normalizeClass([\"default-theme\", {\n \"splitpanes--horizontal\": $props.layout === \"horizontal-split\",\n \"splitpanes--vertical\": $props.layout === \"vertical-split\"\n }]),\n rtl: $setup.isRtl,\n onResized: $options.handlePaneResize\n }, {\n default: withCtx(() => [\n createVNode(_component_Pane, {\n class: \"splitpanes__pane-list\",\n size: $data.listPaneSize || $options.paneDefaults.list.size,\n \"min-size\": $options.paneDefaults.list.min,\n \"max-size\": $options.paneDefaults.list.max\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"list\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"size\", \"min-size\", \"max-size\"]),\n createVNode(_component_Pane, {\n class: \"splitpanes__pane-details\",\n size: $options.detailsPaneSize,\n \"min-size\": $options.paneDefaults.details.min,\n \"max-size\": $options.paneDefaults.details.max\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"size\", \"min-size\", \"max-size\"])\n ]),\n _: 3\n }, 8, [\"horizontal\", \"class\", \"rtl\", \"onResized\"])\n ])) : createCommentVNode(\"\", true)\n ], 64)) : createCommentVNode(\"\", true),\n !_ctx.$slots.list ? renderSlot(_ctx.$slots, \"default\", { key: 2 }, void 0, true) : createCommentVNode(\"\", true)\n ], 2);\n}\nconst NcAppContent = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-a2641cc2\"]]);\nexport {\n NcAppContent as N\n};\n//# sourceMappingURL=NcAppContent-CTpYDkuT.mjs.map\n","/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst HAS_APP_NAVIGATION_KEY = Symbol.for(\"NcContent:setHasAppNavigation\");\nconst CONTENT_SELECTOR_KEY = Symbol.for(\"NcContent:selector\");\nexport {\n CONTENT_SELECTOR_KEY as C,\n HAS_APP_NAVIGATION_KEY as H\n};\n//# sourceMappingURL=constants-DrSznhwy.mjs.map\n","import '../assets/NcContent-CVIwhwfc.css';\nimport { defineComponent, provide, computed, ref, onBeforeMount, createElementBlock, openBlock, normalizeClass, createBlock, renderSlot, Teleport, createElementVNode, withDirectives, toDisplayString, unref, createVNode, withModifiers, withCtx, createTextVNode, vShow, nextTick } from \"vue\";\nimport { emit } from \"@nextcloud/event-bus\";\nimport { N as NcButton } from \"./NcButton-Dc8V4Urj.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-BvLanNaW.mjs\";\nimport { useIsMobile } from \"../composables/useIsMobile/index.mjs\";\nimport { r as register, a as t } from \"./_l10n-DrTiip5c.mjs\";\nimport { H as HAS_APP_NAVIGATION_KEY, C as CONTENT_SELECTOR_KEY } from \"./constants-DrSznhwy.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister();\nconst contentSvg = '<!--\\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\\n - SPDX-License-Identifier: AGPL-3.0-or-later\\n-->\\n<svg width=\"395\" height=\"314\" viewBox=\"0 0 395 314\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\\n<rect width=\"395\" height=\"314\" rx=\"11\" fill=\"#439DCD\"/>\\n<rect x=\"13\" y=\"51\" width=\"366\" height=\"248\" rx=\"8\" fill=\"white\"/>\\n<rect x=\"22\" y=\"111\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"127\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"63\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"191\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"143\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"79\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"159\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"95\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"175\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<path d=\"M288 145C277.56 147.8 265.32 149 254 149C242.68 149 230.44 147.8 220 145L218 153C225.44 155 234 156.32 242 157V209H250V185H258V209H266V157C274 156.32 282.56 155 290 153L288 145ZM254 145C258.4 145 262 141.4 262 137C262 132.6 258.4 129 254 129C249.6 129 246 132.6 246 137C246 141.4 249.6 145 254 145Z\" fill=\"#DEDEDE\"/>\\n<path d=\"M43.5358 13C38.6641 13 34.535 16.2415 33.2552 20.6333C32.143 18.3038 29.7327 16.6718 26.9564 16.6718C23.1385 16.6718 20 19.7521 20 23.4993C20 27.2465 23.1385 30.3282 26.9564 30.3282C29.7327 30.3282 32.1429 28.6952 33.2552 26.3653C34.535 30.7575 38.6641 34 43.5358 34C48.3715 34 52.4796 30.8064 53.7921 26.4637C54.9249 28.7407 57.3053 30.3282 60.0421 30.3282C63.8601 30.3282 67 27.2465 67 23.4993C67 19.7521 63.8601 16.6718 60.0421 16.6718C57.3053 16.6718 54.9249 18.2583 53.7921 20.5349C52.4796 16.1926 48.3715 13 43.5358 13ZM43.5358 17.0079C47.2134 17.0079 50.1512 19.8899 50.1512 23.4993C50.1512 27.1087 47.2134 29.9921 43.5358 29.9921C39.8583 29.9921 36.9218 27.1087 36.9218 23.4993C36.9218 19.8899 39.8583 17.0079 43.5358 17.0079ZM26.9564 20.6797C28.5677 20.6797 29.8307 21.9179 29.8307 23.4993C29.8307 25.0807 28.5677 26.3203 26.9564 26.3203C25.3452 26.3203 24.0836 25.0807 24.0836 23.4993C24.0836 21.9179 25.3452 20.6797 26.9564 20.6797ZM60.0421 20.6797C61.6534 20.6797 62.9164 21.9179 62.9164 23.4993C62.9164 25.0807 61.6534 26.3203 60.0421 26.3203C58.4309 26.3203 57.1693 25.0807 57.1693 23.4993C57.1693 21.9179 58.4309 20.6797 60.0421 20.6797Z\" fill=\"white\"/>\\n<rect x=\"79\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"99\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"119\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"139\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"159\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"179\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 0C5.37258 0 0 5.37259 0 12V302C0 308.627 5.37259 314 12 314H383C389.627 314 395 308.627 395 302V12C395 5.37258 389.627 0 383 0H12ZM140 44C132.268 44 126 50.268 126 58V292C126 299.732 132.268 306 140 306H372C379.732 306 386 299.732 386 292V58C386 50.268 379.732 44 372 44H140Z\" fill=\"black\" fill-opacity=\"0.35\"/>\\n</svg>\\n';\nconst navigationSvg = '<!--\\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\\n - SPDX-License-Identifier: AGPL-3.0-or-later\\n-->\\n<svg width=\"395\" height=\"314\" viewBox=\"0 0 395 314\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\\n<rect width=\"395\" height=\"314\" rx=\"11\" fill=\"#439DCD\"/>\\n<rect x=\"13\" y=\"51\" width=\"366\" height=\"248\" rx=\"8\" fill=\"white\"/>\\n<rect x=\"22\" y=\"111\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"127\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"63\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"191\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"143\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"79\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"159\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"95\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"175\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<path d=\"M288 145C277.56 147.8 265.32 149 254 149C242.68 149 230.44 147.8 220 145L218 153C225.44 155 234 156.32 242 157V209H250V185H258V209H266V157C274 156.32 282.56 155 290 153L288 145ZM254 145C258.4 145 262 141.4 262 137C262 132.6 258.4 129 254 129C249.6 129 246 132.6 246 137C246 141.4 249.6 145 254 145Z\" fill=\"#DEDEDE\"/>\\n<path d=\"M43.5358 13C38.6641 13 34.535 16.2415 33.2552 20.6333C32.143 18.3038 29.7327 16.6718 26.9564 16.6718C23.1385 16.6718 20 19.7521 20 23.4993C20 27.2465 23.1385 30.3282 26.9564 30.3282C29.7327 30.3282 32.1429 28.6952 33.2552 26.3653C34.535 30.7575 38.6641 34 43.5358 34C48.3715 34 52.4796 30.8064 53.7921 26.4637C54.9249 28.7407 57.3053 30.3282 60.0421 30.3282C63.8601 30.3282 67 27.2465 67 23.4993C67 19.7521 63.8601 16.6718 60.0421 16.6718C57.3053 16.6718 54.9249 18.2583 53.7921 20.5349C52.4796 16.1926 48.3715 13 43.5358 13ZM43.5358 17.0079C47.2134 17.0079 50.1512 19.8899 50.1512 23.4993C50.1512 27.1087 47.2134 29.9921 43.5358 29.9921C39.8583 29.9921 36.9218 27.1087 36.9218 23.4993C36.9218 19.8899 39.8583 17.0079 43.5358 17.0079ZM26.9564 20.6797C28.5677 20.6797 29.8307 21.9179 29.8307 23.4993C29.8307 25.0807 28.5677 26.3203 26.9564 26.3203C25.3452 26.3203 24.0836 25.0807 24.0836 23.4993C24.0836 21.9179 25.3452 20.6797 26.9564 20.6797ZM60.0421 20.6797C61.6534 20.6797 62.9164 21.9179 62.9164 23.4993C62.9164 25.0807 61.6534 26.3203 60.0421 26.3203C58.4309 26.3203 57.1693 25.0807 57.1693 23.4993C57.1693 21.9179 58.4309 20.6797 60.0421 20.6797Z\" fill=\"white\"/>\\n<rect x=\"79\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"99\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"119\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"139\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"159\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"179\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 0C5.37258 0 0 5.37259 0 12V302C0 308.627 5.37259 314 12 314H383C389.627 314 395 308.627 395 302V12C395 5.37258 389.627 0 383 0H12ZM112 44C119.732 44 126 50.268 126 58V292C126 299.732 119.732 306 112 306H20C12.268 306 6 299.732 6 292V58C6 50.268 12.268 44 20 44H112Z\" fill=\"black\" fill-opacity=\"0.35\"/>\\n</svg>\\n';\nconst _hoisted_1 = { class: \"vue-skip-actions__container\" };\nconst _hoisted_2 = { class: \"vue-skip-actions__headline\" };\nconst _hoisted_3 = { class: \"vue-skip-actions__buttons\" };\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcContent\",\n props: {\n appName: {}\n },\n setup(__props) {\n const props = __props;\n provide(HAS_APP_NAVIGATION_KEY, setAppNavigation);\n provide(CONTENT_SELECTOR_KEY, \"#content-vue\");\n provide(\"appName\", computed(() => props.appName));\n const isMobile = useIsMobile();\n const hasAppNavigation = ref(false);\n const currentFocus = ref();\n const currentImage = computed(() => currentFocus.value === \"navigation\" ? navigationSvg : contentSvg);\n onBeforeMount(() => {\n const container = document.getElementById(\"skip-actions\");\n if (container) {\n container.innerHTML = \"\";\n container.classList.add(\"vue-skip-actions\");\n }\n });\n function openAppNavigation() {\n emit(\"toggle-navigation\", { open: true });\n nextTick(() => {\n window.location.hash = \"app-navigation-vue\";\n document.getElementById(\"app-navigation-vue\").focus();\n });\n }\n function setAppNavigation(value) {\n hasAppNavigation.value = value;\n if (!currentFocus.value) {\n currentFocus.value = \"navigation\";\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n id: \"content-vue\",\n class: normalizeClass([\"content\", `app-${_ctx.appName.toLowerCase()}`])\n }, [\n (openBlock(), createBlock(Teleport, { to: \"#skip-actions\" }, [\n createElementVNode(\"div\", _hoisted_1, [\n createElementVNode(\"div\", _hoisted_2, toDisplayString(unref(t)(\"Keyboard navigation help\")), 1),\n createElementVNode(\"div\", _hoisted_3, [\n withDirectives(createVNode(NcButton, {\n href: \"#app-navigation-vue\",\n variant: \"tertiary\",\n onClick: withModifiers(openAppNavigation, [\"prevent\"]),\n onFocusin: _cache[0] || (_cache[0] = ($event) => currentFocus.value = \"navigation\"),\n onMouseover: _cache[1] || (_cache[1] = ($event) => currentFocus.value = \"navigation\")\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(unref(t)(\"Skip to app navigation\")), 1)\n ]),\n _: 1\n }, 512), [\n [vShow, hasAppNavigation.value]\n ]),\n createVNode(NcButton, {\n href: \"#app-content-vue\",\n variant: \"tertiary\",\n onFocusin: _cache[2] || (_cache[2] = ($event) => currentFocus.value = \"content\"),\n onMouseover: _cache[3] || (_cache[3] = ($event) => currentFocus.value = \"content\")\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(unref(t)(\"Skip to main content\")), 1)\n ]),\n _: 1\n })\n ]),\n withDirectives(createVNode(NcIconSvgWrapper, {\n class: \"vue-skip-actions__image\",\n svg: currentImage.value,\n size: \"auto\"\n }, null, 8, [\"svg\"]), [\n [vShow, !unref(isMobile)]\n ])\n ])\n ])),\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ], 2);\n };\n }\n});\nconst NcContent = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-d9b0d7e8\"]]);\nexport {\n NcContent as N\n};\n//# sourceMappingURL=NcContent-BR_nMwKN.mjs.map\n"],"names":["Pe","D","h","y","u","E","ce","k","M","z","n","m","x","S","c","f","_","R","r","P","O","b","t","a","o","K","I","d","A","U","W","J","$","N","v","p","H","ue","j","Q","V","Z","ee","e","F","ne","C","ie","te","T","L","ae","le","oe","se","q","B","G","X","re","fe","g","Y","ve","me","ge","w","l","de","pe","he","ze","xe","once","func","wasCalled","result","args","realAppName","appName","logger","APP_NAME","realAppVersion","appVersion","getLocalizedAppName","activeApp","loadState","id","register","_sfc_main$1","defineComponent","__props","isMobile","useIsMobile","watch","toggleAppNavigationButton","onMounted","onBeforeUnmount","hide","appNavigationToggle","emit","_ctx","_cache","openBlock","createBlock","unref","NcButton","normalizeClass","withCtx","createVNode","NcIconSvgWrapper","mdiArrowRight","NcAppContentDetailsToggle","_export_sfc","browserStorage","getBuilder","instanceName","getCapabilities","_sfc_main","Pane","Splitpanes","value","isRtl","entries","part","useSwipe","direction","event","listPaneSize","_hoisted_1","_hoisted_2","_sfc_render","$props","$setup","$data","$options","_component_NcAppContentDetailsToggle","resolveComponent","_component_Pane","_component_Splitpanes","createElementBlock","toDisplayString","createCommentVNode","Fragment","withModifiers","withDirectives","createElementVNode","renderSlot","vShow","NcAppContent","HAS_APP_NAVIGATION_KEY","CONTENT_SELECTOR_KEY","contentSvg","navigationSvg","_hoisted_3","props","provide","setAppNavigation","computed","hasAppNavigation","ref","currentFocus","currentImage","onBeforeMount","container","openAppNavigation","nextTick","Teleport","$event","createTextVNode","NcContent"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4]} \ No newline at end of file diff --git a/dist/NcNoteCard-CVhtNL04-hwuc093N.chunk.mjs.map.license b/dist/NcContent-BR_nMwKN-DuxjkyFF.chunk.mjs.map.license similarity index 74% rename from dist/NcNoteCard-CVhtNL04-hwuc093N.chunk.mjs.map.license rename to dist/NcContent-BR_nMwKN-DuxjkyFF.chunk.mjs.map.license index eadee349d1ecf..07c0ea163dbee 100644 --- a/dist/NcNoteCard-CVhtNL04-hwuc093N.chunk.mjs.map.license +++ b/dist/NcContent-BR_nMwKN-DuxjkyFF.chunk.mjs.map.license @@ -1,12 +1,12 @@ SPDX-License-Identifier: AGPL-3.0-or-later SPDX-License-Identifier: MIT -SPDX-FileCopyrightText: Eduardo San Martin Morote +SPDX-FileCopyrightText: Antoni Andre <antoniandre.web@gmail.com> SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors This file is generated from multiple sources. Included packages: - @nextcloud/vue - version: 9.3.1 - license: AGPL-3.0-or-later -- vue-router - - version: 4.6.3 +- splitpanes + - version: 4.0.4 - license: MIT diff --git a/dist/NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-BNncp1Y1.chunk.mjs b/dist/NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-BNncp1Y1.chunk.mjs new file mode 100644 index 0000000000000..d70328f548891 --- /dev/null +++ b/dist/NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-BNncp1Y1.chunk.mjs @@ -0,0 +1,2 @@ +import{N as S,k as v,c as I}from"./AccountOutline-BlW-6JqD.chunk.mjs";import{A as T,c as _,B as V,C as w}from"./NcModal-MC_HktJd-DqeuH-fk.chunk.mjs";import{_ as b}from"./createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs";import{f as C,j as a,o as i,k as s,m as f,c as y,l as u,I as k,n as m,t as l,z as M,e as L,w as $,b as U,x as h,Z as g,u as A}from"./runtime-dom.esm-bundler-DdtEg5E9.chunk.mjs";const B={beforeUpdate(){this.text=this.getText()},data(){return{text:this.getText()}},computed:{isLongText(){return this.text&&this.text.trim().length>20}},methods:{getText(){return this.$slots.default?.()[0].children?.trim?.()||""}}},x={mixins:[B],props:{icon:{type:String,default:""},name:{type:String,default:""},title:{type:String,default:""},closeAfterClick:{type:Boolean,default:!1},ariaLabel:{type:String,default:null}},inject:{closeMenu:{from:T}},emits:["click"],created(){"ariaHidden"in this.$attrs},computed:{isIconUrl(){try{return!!new URL(this.icon,this.icon.startsWith("/")?window.location.origin:void 0)}catch{return!1}}},methods:{onClick(t){this.$emit("click",t),this.closeAfterClick&&this.closeMenu(!1)}}},N={name:"NcActionButton",components:{NcIconSvgWrapper:S},mixins:[x],inject:{isInSemanticMenu:{from:_,default:!1}},props:{disabled:{type:Boolean,default:!1},isMenu:{type:Boolean,default:!1},type:{type:String,default:"button",validator:t=>["button","checkbox","radio","reset","submit"].includes(t)},modelValue:{type:[Boolean,String],default:null},value:{type:String,default:null},description:{type:String,default:""}},emits:["update:modelValue"],setup(){return{mdiCheck:I,mdiChevronRight:v}},computed:{isFocusable(){return!this.disabled},isChecked(){return this.type==="radio"&&typeof this.modelValue!="boolean"?this.modelValue===this.value:this.modelValue},nativeType(){return this.type==="submit"||this.type==="reset"?this.type:"button"},buttonAttributes(){const t={};return this.isInSemanticMenu?(t.role="menuitem",this.type==="radio"?(t.role="menuitemradio",t["aria-checked"]=this.isChecked?"true":"false"):(this.type==="checkbox"||this.nativeType==="button"&&this.modelValue!==null)&&(t.role="menuitemcheckbox",t["aria-checked"]=this.modelValue===null?"mixed":this.modelValue?"true":"false")):this.modelValue!==null&&this.nativeType==="button"&&(t["aria-pressed"]=this.modelValue?"true":"false"),t}},methods:{handleClick(t){this.onClick(t),(this.modelValue!==null||this.type!=="button")&&(this.type==="radio"?typeof this.modelValue!="boolean"?this.isChecked||this.$emit("update:modelValue",this.value):this.$emit("update:modelValue",!this.isChecked):this.$emit("update:modelValue",!this.isChecked))}}},j=["role"],R=["aria-label","disabled","title","type"],W={class:"action-button__longtext-wrapper"},q={key:0,class:"action-button__name"},F=["textContent"],O={key:2,class:"action-button__text"},z=["textContent"],D={key:2,class:"action-button__pressed-icon material-design-icon"};function H(t,e,o,c,d,n){const r=C("NcIconSvgWrapper");return i(),a("li",{class:m(["action",{"action--disabled":o.disabled}]),role:n.isInSemanticMenu&&"presentation"},[s("button",M({"aria-label":t.ariaLabel,class:["action-button button-vue",{"action-button--active":n.isChecked,focusable:n.isFocusable}],disabled:o.disabled,title:t.title,type:n.nativeType},n.buttonAttributes,{onClick:e[0]||(e[0]=(...p)=>n.handleClick&&n.handleClick(...p))}),[f(t.$slots,"icon",{},()=>[s("span",{class:m([[t.isIconUrl?"action-button__icon--url":t.icon],"action-button__icon"]),style:k({backgroundImage:t.isIconUrl?`url(${t.icon})`:null}),"aria-hidden":"true"},null,6)],!0),s("span",W,[t.name?(i(),a("strong",q,l(t.name),1)):u("",!0),t.isLongText?(i(),a("span",{key:1,class:"action-button__longtext",textContent:l(t.text)},null,8,F)):(i(),a("span",O,l(t.text),1)),o.description?(i(),a("span",{key:3,class:"action-button__description",textContent:l(o.description)},null,8,z)):u("",!0)]),o.isMenu?(i(),y(r,{key:0,class:"action-button__menu-icon",directional:"",path:c.mdiChevronRight},null,8,["path"])):n.isChecked?(i(),y(r,{key:1,path:c.mdiCheck,class:"action-button__pressed-icon"},null,8,["path"])):n.isChecked===!1?(i(),a("span",D)):u("",!0),u("",!0)],16,R)],10,j)}const ht=b(N,[["render",H],["__scopeId","data-v-6c2daf4e"]]),Z={name:"NcActionLink",mixins:[x],inject:{isInSemanticMenu:{from:_,default:!1}},props:{href:{type:String,required:!0,validator:t=>{try{return new URL(t)}catch{return t.startsWith("#")||t.startsWith("/")}}},download:{type:String,default:null},target:{type:String,default:"_self",validator:t=>t&&(!t.startsWith("_")||["_blank","_self","_parent","_top"].indexOf(t)>-1)},title:{type:String,default:null}}},E=["role"],G=["download","href","aria-label","target","title","role"],J={key:0,class:"action-link__longtext-wrapper"},K={class:"action-link__name"},P=["textContent"],Q=["textContent"],X={key:2,class:"action-link__text"};function Y(t,e,o,c,d,n){return i(),a("li",{class:"action",role:n.isInSemanticMenu&&"presentation"},[s("a",{download:o.download,href:o.href,"aria-label":t.ariaLabel,target:o.target,title:o.title,class:"action-link focusable",rel:"nofollow noreferrer noopener",role:n.isInSemanticMenu&&"menuitem",onClick:e[0]||(e[0]=(...r)=>t.onClick&&t.onClick(...r))},[f(t.$slots,"icon",{},()=>[s("span",{"aria-hidden":"true",class:m(["action-link__icon",[t.isIconUrl?"action-link__icon--url":t.icon]]),style:k({backgroundImage:t.isIconUrl?`url(${t.icon})`:null})},null,6)],!0),t.name?(i(),a("span",J,[s("strong",K,l(t.name),1),e[1]||(e[1]=s("br",null,null,-1)),s("span",{class:"action-link__longtext",textContent:l(t.text)},null,8,P)])):t.isLongText?(i(),a("span",{key:1,class:"action-link__longtext",textContent:l(t.text)},null,8,Q)):(i(),a("span",X,l(t.text),1)),u("",!0)],8,G)],8,E)}const _t=b(Z,[["render",Y],["__scopeId","data-v-32f01b7a"]]),tt={name:"NcActionRouter",mixins:[x],inject:{isInSemanticMenu:{from:_,default:!1}},props:{to:{type:[String,Object],required:!0}}},et=["role"],nt={key:0,class:"action-router__longtext-wrapper"},it={class:"action-router__name"},at=["textContent"],ot=["textContent"],lt={key:2,class:"action-router__text"};function st(t,e,o,c,d,n){const r=C("RouterLink");return i(),a("li",{class:"action",role:n.isInSemanticMenu&&"presentation"},[L(r,{"aria-label":t.ariaLabel,class:"action-router focusable",rel:"nofollow noreferrer noopener",role:n.isInSemanticMenu&&"menuitem",title:t.title,to:o.to,onClick:t.onClick},{default:$(()=>[f(t.$slots,"icon",{},()=>[s("span",{"aria-hidden":"true",class:m(["action-router__icon",[t.isIconUrl?"action-router__icon--url":t.icon]]),style:k({backgroundImage:t.isIconUrl?`url(${t.icon})`:null})},null,6)],!0),t.name?(i(),a("span",nt,[s("strong",it,l(t.name),1),e[0]||(e[0]=s("br",null,null,-1)),s("span",{class:"action-router__longtext",textContent:l(t.text)},null,8,at)])):t.isLongText?(i(),a("span",{key:1,class:"action-router__longtext",textContent:l(t.text)},null,8,ot)):(i(),a("span",lt,l(t.text),1)),u("",!0)]),_:3},8,["aria-label","role","title","to","onClick"])],8,et)}const bt=b(tt,[["render",st],["__scopeId","data-v-87267750"]]),rt=["data-timestamp","title","textContent"],ft=U({__name:"NcDateTime",props:{timestamp:{},format:{default:()=>({timeStyle:"medium",dateStyle:"short"})},relativeTime:{type:[Boolean,String],default:"long"},ignoreSeconds:{type:Boolean}},setup(t){const e=t,o=h(()=>({format:e.format})),c=h(()=>({ignoreSeconds:e.ignoreSeconds,relativeTime:e.relativeTime||"long",update:e.relativeTime!==!1})),d=V(g(()=>e.timestamp),o),n=w(g(()=>e.timestamp),c),r=h(()=>e.relativeTime?n.value:d.value);return(p,ct)=>(i(),a("span",{class:"nc-datetime",dir:"auto","data-timestamp":p.timestamp,title:A(d),textContent:l(r.value)},null,8,rt))}});export{x as A,_t as N,ft as _,ht as a,bt as b,B as c}; +//# sourceMappingURL=NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-BNncp1Y1.chunk.mjs.map diff --git a/dist/NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-CAvY10OW.chunk.mjs.license b/dist/NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-BNncp1Y1.chunk.mjs.license similarity index 100% rename from dist/NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-CAvY10OW.chunk.mjs.license rename to dist/NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-BNncp1Y1.chunk.mjs.license diff --git a/dist/NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-CAvY10OW.chunk.mjs.map b/dist/NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-BNncp1Y1.chunk.mjs.map similarity index 99% rename from dist/NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-CAvY10OW.chunk.mjs.map rename to dist/NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-BNncp1Y1.chunk.mjs.map index 49cf06aed7520..08ab3b4e9c4bf 100644 --- a/dist/NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-CAvY10OW.chunk.mjs.map +++ b/dist/NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-BNncp1Y1.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-CAvY10OW.chunk.mjs","sources":["../node_modules/@nextcloud/vue/dist/chunks/actionGlobal-BZFdtdJL.mjs","../node_modules/@nextcloud/vue/dist/chunks/actionText-DYzDdbVe.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcActionButton-pKOSrlGE.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcActionLink-vEvKSV4N.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcActionRouter-oT-YU_jf.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U.mjs"],"sourcesContent":["const ActionGlobalMixin = {\n beforeUpdate() {\n this.text = this.getText();\n },\n data() {\n return {\n // $slots are not reactive.\n // We need to update the content manually\n text: this.getText()\n };\n },\n computed: {\n isLongText() {\n return this.text && this.text.trim().length > 20;\n }\n },\n methods: {\n getText() {\n return this.$slots.default?.()[0].children?.trim?.() || \"\";\n }\n }\n};\nexport {\n ActionGlobalMixin as A\n};\n//# sourceMappingURL=actionGlobal-BZFdtdJL.mjs.map\n","import { warn } from \"vue\";\nimport { N as NC_ACTIONS_CLOSE_MENU } from \"./useNcActions-CiGWxAJE.mjs\";\nimport { A as ActionGlobalMixin } from \"./actionGlobal-BZFdtdJL.mjs\";\nconst ActionTextMixin = {\n mixins: [ActionGlobalMixin],\n props: {\n /**\n * Icon to show with the action, can be either a CSS class or an URL\n */\n icon: {\n type: String,\n default: \"\"\n },\n /**\n * The main text content of the entry.\n */\n name: {\n type: String,\n default: \"\"\n },\n /**\n * The title attribute of the element.\n */\n title: {\n type: String,\n default: \"\"\n },\n /**\n * Whether we close the Actions menu after the click\n */\n closeAfterClick: {\n type: Boolean,\n default: false\n },\n /**\n * Aria label for the button. Not needed if the button has text.\n */\n ariaLabel: {\n type: String,\n default: null\n }\n },\n inject: {\n closeMenu: {\n from: NC_ACTIONS_CLOSE_MENU\n }\n },\n emits: [\n \"click\"\n ],\n created() {\n if (\"ariaHidden\" in this.$attrs) {\n warn(\"[NcAction*]: Do not set the ariaHidden attribute as the root element will inherit the incorrect aria-hidden.\");\n }\n },\n computed: {\n /**\n * Check if icon prop is an URL\n *\n * @return {boolean} Whether the icon prop is an URL\n */\n isIconUrl() {\n try {\n return !!new URL(this.icon, this.icon.startsWith(\"/\") ? window.location.origin : void 0);\n } catch {\n return false;\n }\n }\n },\n methods: {\n onClick(event) {\n this.$emit(\"click\", event);\n if (this.closeAfterClick) {\n this.closeMenu(false);\n }\n }\n }\n};\nexport {\n ActionTextMixin as A\n};\n//# sourceMappingURL=actionText-DYzDdbVe.mjs.map\n","import '../assets/NcActionButton-Bb0ihLdt.css';\nimport { c as mdiChevronRight, d as mdiCheck } from \"./mdi-XFJRiRqJ.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-BvLanNaW.mjs\";\nimport { A as ActionTextMixin } from \"./actionText-DYzDdbVe.mjs\";\nimport { a as NC_ACTIONS_IS_SEMANTIC_MENU } from \"./useNcActions-CiGWxAJE.mjs\";\nimport { resolveComponent, createElementBlock, openBlock, normalizeClass, createElementVNode, mergeProps, renderSlot, createBlock, createCommentVNode, normalizeStyle, toDisplayString } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcActionButton\",\n components: {\n NcIconSvgWrapper\n },\n mixins: [ActionTextMixin],\n inject: {\n isInSemanticMenu: {\n from: NC_ACTIONS_IS_SEMANTIC_MENU,\n default: false\n }\n },\n props: {\n /**\n * disabled state of the action button\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * If this is a menu, a chevron icon will\n * be added at the end of the line\n */\n isMenu: {\n type: Boolean,\n default: false\n },\n /**\n * The button's behavior, by default the button acts like a normal button with optional toggle button behavior if `modelValue` is `true` or `false`.\n * But you can also set to checkbox button behavior with tri-state or radio button like behavior.\n * This extends the native HTML button type attribute.\n */\n type: {\n type: String,\n default: \"button\",\n validator: (behavior) => [\"button\", \"checkbox\", \"radio\", \"reset\", \"submit\"].includes(behavior)\n },\n /**\n * The buttons state if `type` is 'checkbox' or 'radio' (meaning if it is pressed / selected).\n * For checkbox and toggle button behavior - boolean value.\n * For radio button behavior - could be a boolean checked or a string with the value of the button.\n * Note: Unlike native radio buttons, NcActionButton are not grouped by name, so you need to connect them by bind correct modelValue.\n *\n * **This is not availabe for `type='submit'` or `type='reset'`**\n *\n * If using `type='checkbox'` a `model-value` of `true` means checked, `false` means unchecked and `null` means indeterminate (tri-state)\n * For `type='radio'` `null` is equal to `false`\n */\n modelValue: {\n type: [Boolean, String],\n default: null\n },\n /**\n * The value used for the `modelValue` when this component is used with radio behavior\n * Similar to the `value` attribute of `<input type=\"radio\">`\n */\n value: {\n type: String,\n default: null\n },\n /**\n * Small underlying text content of the entry\n */\n description: {\n type: String,\n default: \"\"\n }\n },\n emits: [\"update:modelValue\"],\n setup() {\n return {\n mdiCheck,\n mdiChevronRight\n };\n },\n computed: {\n /**\n * determines if the action is focusable\n *\n * @return {boolean} is the action focusable ?\n */\n isFocusable() {\n return !this.disabled;\n },\n /**\n * The current \"checked\" or \"pressed\" state for the model behavior\n */\n isChecked() {\n if (this.type === \"radio\" && typeof this.modelValue !== \"boolean\") {\n return this.modelValue === this.value;\n }\n return this.modelValue;\n },\n /**\n * The native HTML type to set on the button\n */\n nativeType() {\n if (this.type === \"submit\" || this.type === \"reset\") {\n return this.type;\n }\n return \"button\";\n },\n /**\n * HTML attributes to bind to the <button>\n */\n buttonAttributes() {\n const attributes = {};\n if (this.isInSemanticMenu) {\n attributes.role = \"menuitem\";\n if (this.type === \"radio\") {\n attributes.role = \"menuitemradio\";\n attributes[\"aria-checked\"] = this.isChecked ? \"true\" : \"false\";\n } else if (this.type === \"checkbox\" || this.nativeType === \"button\" && this.modelValue !== null) {\n attributes.role = \"menuitemcheckbox\";\n attributes[\"aria-checked\"] = this.modelValue === null ? \"mixed\" : this.modelValue ? \"true\" : \"false\";\n }\n } else if (this.modelValue !== null && this.nativeType === \"button\") {\n attributes[\"aria-pressed\"] = this.modelValue ? \"true\" : \"false\";\n }\n return attributes;\n }\n },\n methods: {\n /**\n * Forward click event, let mixin handle the close-after-click and emit new modelValue if needed\n *\n * @param {MouseEvent} event - The click event\n */\n handleClick(event) {\n this.onClick(event);\n if (this.modelValue !== null || this.type !== \"button\") {\n if (this.type === \"radio\") {\n if (typeof this.modelValue !== \"boolean\") {\n if (!this.isChecked) {\n this.$emit(\"update:modelValue\", this.value);\n }\n } else {\n this.$emit(\"update:modelValue\", !this.isChecked);\n }\n } else {\n this.$emit(\"update:modelValue\", !this.isChecked);\n }\n }\n }\n }\n};\nconst _hoisted_1 = [\"role\"];\nconst _hoisted_2 = [\"aria-label\", \"disabled\", \"title\", \"type\"];\nconst _hoisted_3 = { class: \"action-button__longtext-wrapper\" };\nconst _hoisted_4 = {\n key: 0,\n class: \"action-button__name\"\n};\nconst _hoisted_5 = [\"textContent\"];\nconst _hoisted_6 = {\n key: 2,\n class: \"action-button__text\"\n};\nconst _hoisted_7 = [\"textContent\"];\nconst _hoisted_8 = {\n key: 2,\n class: \"action-button__pressed-icon material-design-icon\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcIconSvgWrapper = resolveComponent(\"NcIconSvgWrapper\");\n return openBlock(), createElementBlock(\"li\", {\n class: normalizeClass([\"action\", { \"action--disabled\": $props.disabled }]),\n role: $options.isInSemanticMenu && \"presentation\"\n }, [\n createElementVNode(\"button\", mergeProps({\n \"aria-label\": _ctx.ariaLabel,\n class: [\"action-button button-vue\", {\n \"action-button--active\": $options.isChecked,\n focusable: $options.isFocusable\n }],\n disabled: $props.disabled,\n title: _ctx.title,\n type: $options.nativeType\n }, $options.buttonAttributes, {\n onClick: _cache[0] || (_cache[0] = (...args) => $options.handleClick && $options.handleClick(...args))\n }), [\n renderSlot(_ctx.$slots, \"icon\", {}, () => [\n createElementVNode(\"span\", {\n class: normalizeClass([[_ctx.isIconUrl ? \"action-button__icon--url\" : _ctx.icon], \"action-button__icon\"]),\n style: normalizeStyle({ backgroundImage: _ctx.isIconUrl ? `url(${_ctx.icon})` : null }),\n \"aria-hidden\": \"true\"\n }, null, 6)\n ], true),\n createElementVNode(\"span\", _hoisted_3, [\n _ctx.name ? (openBlock(), createElementBlock(\"strong\", _hoisted_4, toDisplayString(_ctx.name), 1)) : createCommentVNode(\"\", true),\n _ctx.isLongText ? (openBlock(), createElementBlock(\"span\", {\n key: 1,\n class: \"action-button__longtext\",\n textContent: toDisplayString(_ctx.text)\n }, null, 8, _hoisted_5)) : (openBlock(), createElementBlock(\"span\", _hoisted_6, toDisplayString(_ctx.text), 1)),\n $props.description ? (openBlock(), createElementBlock(\"span\", {\n key: 3,\n class: \"action-button__description\",\n textContent: toDisplayString($props.description)\n }, null, 8, _hoisted_7)) : createCommentVNode(\"\", true)\n ]),\n $props.isMenu ? (openBlock(), createBlock(_component_NcIconSvgWrapper, {\n key: 0,\n class: \"action-button__menu-icon\",\n directional: \"\",\n path: $setup.mdiChevronRight\n }, null, 8, [\"path\"])) : $options.isChecked ? (openBlock(), createBlock(_component_NcIconSvgWrapper, {\n key: 1,\n path: $setup.mdiCheck,\n class: \"action-button__pressed-icon\"\n }, null, 8, [\"path\"])) : $options.isChecked === false ? (openBlock(), createElementBlock(\"span\", _hoisted_8)) : createCommentVNode(\"\", true),\n createCommentVNode(\"\", true)\n ], 16, _hoisted_2)\n ], 10, _hoisted_1);\n}\nconst NcActionButton = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-6c2daf4e\"]]);\nexport {\n NcActionButton as N\n};\n//# sourceMappingURL=NcActionButton-pKOSrlGE.mjs.map\n","import '../assets/NcActionLink-DAEr-vmd.css';\nimport { A as ActionTextMixin } from \"./actionText-DYzDdbVe.mjs\";\nimport { a as NC_ACTIONS_IS_SEMANTIC_MENU } from \"./useNcActions-CiGWxAJE.mjs\";\nimport { createElementBlock, openBlock, createElementVNode, renderSlot, createCommentVNode, normalizeStyle, normalizeClass, toDisplayString } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcActionLink\",\n mixins: [ActionTextMixin],\n inject: {\n isInSemanticMenu: {\n from: NC_ACTIONS_IS_SEMANTIC_MENU,\n default: false\n }\n },\n props: {\n /**\n * destionation to link to\n */\n href: {\n type: String,\n required: true,\n validator: (value) => {\n try {\n return new URL(value);\n } catch {\n return value.startsWith(\"#\") || value.startsWith(\"/\");\n }\n }\n },\n /**\n * download the link instead of opening\n */\n download: {\n type: String,\n default: null\n },\n /**\n * target to open the link\n */\n target: {\n type: String,\n default: \"_self\",\n validator: (value) => {\n return value && (!value.startsWith(\"_\") || [\"_blank\", \"_self\", \"_parent\", \"_top\"].indexOf(value) > -1);\n }\n },\n /**\n * Declares a native tooltip when not null\n */\n title: {\n type: String,\n default: null\n }\n }\n};\nconst _hoisted_1 = [\"role\"];\nconst _hoisted_2 = [\"download\", \"href\", \"aria-label\", \"target\", \"title\", \"role\"];\nconst _hoisted_3 = {\n key: 0,\n class: \"action-link__longtext-wrapper\"\n};\nconst _hoisted_4 = { class: \"action-link__name\" };\nconst _hoisted_5 = [\"textContent\"];\nconst _hoisted_6 = [\"textContent\"];\nconst _hoisted_7 = {\n key: 2,\n class: \"action-link__text\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"li\", {\n class: \"action\",\n role: $options.isInSemanticMenu && \"presentation\"\n }, [\n createElementVNode(\"a\", {\n download: $props.download,\n href: $props.href,\n \"aria-label\": _ctx.ariaLabel,\n target: $props.target,\n title: $props.title,\n class: \"action-link focusable\",\n rel: \"nofollow noreferrer noopener\",\n role: $options.isInSemanticMenu && \"menuitem\",\n onClick: _cache[0] || (_cache[0] = (...args) => _ctx.onClick && _ctx.onClick(...args))\n }, [\n renderSlot(_ctx.$slots, \"icon\", {}, () => [\n createElementVNode(\"span\", {\n \"aria-hidden\": \"true\",\n class: normalizeClass([\"action-link__icon\", [_ctx.isIconUrl ? \"action-link__icon--url\" : _ctx.icon]]),\n style: normalizeStyle({ backgroundImage: _ctx.isIconUrl ? `url(${_ctx.icon})` : null })\n }, null, 6)\n ], true),\n _ctx.name ? (openBlock(), createElementBlock(\"span\", _hoisted_3, [\n createElementVNode(\"strong\", _hoisted_4, toDisplayString(_ctx.name), 1),\n _cache[1] || (_cache[1] = createElementVNode(\"br\", null, null, -1)),\n createElementVNode(\"span\", {\n class: \"action-link__longtext\",\n textContent: toDisplayString(_ctx.text)\n }, null, 8, _hoisted_5)\n ])) : _ctx.isLongText ? (openBlock(), createElementBlock(\"span\", {\n key: 1,\n class: \"action-link__longtext\",\n textContent: toDisplayString(_ctx.text)\n }, null, 8, _hoisted_6)) : (openBlock(), createElementBlock(\"span\", _hoisted_7, toDisplayString(_ctx.text), 1)),\n createCommentVNode(\"\", true)\n ], 8, _hoisted_2)\n ], 8, _hoisted_1);\n}\nconst NcActionLink = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-32f01b7a\"]]);\nexport {\n NcActionLink as N\n};\n//# sourceMappingURL=NcActionLink-vEvKSV4N.mjs.map\n","import '../assets/NcActionRouter-DeYzeM5W.css';\nimport { A as ActionTextMixin } from \"./actionText-DYzDdbVe.mjs\";\nimport { a as NC_ACTIONS_IS_SEMANTIC_MENU } from \"./useNcActions-CiGWxAJE.mjs\";\nimport { resolveComponent, createElementBlock, openBlock, createVNode, withCtx, renderSlot, createCommentVNode, createElementVNode, normalizeStyle, normalizeClass, toDisplayString } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcActionRouter\",\n mixins: [ActionTextMixin],\n inject: {\n isInSemanticMenu: {\n from: NC_ACTIONS_IS_SEMANTIC_MENU,\n default: false\n }\n },\n props: {\n /**\n * router-link to prop [https://router.vuejs.org/api/#to](https://router.vuejs.org/api/#to)\n */\n to: {\n type: [String, Object],\n required: true\n }\n }\n};\nconst _hoisted_1 = [\"role\"];\nconst _hoisted_2 = {\n key: 0,\n class: \"action-router__longtext-wrapper\"\n};\nconst _hoisted_3 = { class: \"action-router__name\" };\nconst _hoisted_4 = [\"textContent\"];\nconst _hoisted_5 = [\"textContent\"];\nconst _hoisted_6 = {\n key: 2,\n class: \"action-router__text\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_RouterLink = resolveComponent(\"RouterLink\");\n return openBlock(), createElementBlock(\"li\", {\n class: \"action\",\n role: $options.isInSemanticMenu && \"presentation\"\n }, [\n createVNode(_component_RouterLink, {\n \"aria-label\": _ctx.ariaLabel,\n class: \"action-router focusable\",\n rel: \"nofollow noreferrer noopener\",\n role: $options.isInSemanticMenu && \"menuitem\",\n title: _ctx.title,\n to: $props.to,\n onClick: _ctx.onClick\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"icon\", {}, () => [\n createElementVNode(\"span\", {\n \"aria-hidden\": \"true\",\n class: normalizeClass([\"action-router__icon\", [_ctx.isIconUrl ? \"action-router__icon--url\" : _ctx.icon]]),\n style: normalizeStyle({ backgroundImage: _ctx.isIconUrl ? `url(${_ctx.icon})` : null })\n }, null, 6)\n ], true),\n _ctx.name ? (openBlock(), createElementBlock(\"span\", _hoisted_2, [\n createElementVNode(\"strong\", _hoisted_3, toDisplayString(_ctx.name), 1),\n _cache[0] || (_cache[0] = createElementVNode(\"br\", null, null, -1)),\n createElementVNode(\"span\", {\n class: \"action-router__longtext\",\n textContent: toDisplayString(_ctx.text)\n }, null, 8, _hoisted_4)\n ])) : _ctx.isLongText ? (openBlock(), createElementBlock(\"span\", {\n key: 1,\n class: \"action-router__longtext\",\n textContent: toDisplayString(_ctx.text)\n }, null, 8, _hoisted_5)) : (openBlock(), createElementBlock(\"span\", _hoisted_6, toDisplayString(_ctx.text), 1)),\n createCommentVNode(\"\", true)\n ]),\n _: 3\n }, 8, [\"aria-label\", \"role\", \"title\", \"to\", \"onClick\"])\n ], 8, _hoisted_1);\n}\nconst NcActionRouter = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-87267750\"]]);\nexport {\n NcActionRouter as N\n};\n//# sourceMappingURL=NcActionRouter-oT-YU_jf.mjs.map\n","import { defineComponent, computed, toRef, createElementBlock, openBlock, toDisplayString, unref } from \"vue\";\nimport { useFormatTime, useFormatRelativeTime } from \"../composables/useFormatDateTime/index.mjs\";\nconst _hoisted_1 = [\"data-timestamp\", \"title\", \"textContent\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcDateTime\",\n props: {\n timestamp: {},\n format: { default: () => ({ timeStyle: \"medium\", dateStyle: \"short\" }) },\n relativeTime: { type: [Boolean, String], default: \"long\" },\n ignoreSeconds: { type: Boolean }\n },\n setup(__props) {\n const props = __props;\n const timeOptions = computed(() => ({ format: props.format }));\n const relativeTimeOptions = computed(() => ({\n ignoreSeconds: props.ignoreSeconds,\n relativeTime: props.relativeTime || \"long\",\n update: props.relativeTime !== false\n }));\n const title = useFormatTime(toRef(() => props.timestamp), timeOptions);\n const relativeTime = useFormatRelativeTime(toRef(() => props.timestamp), relativeTimeOptions);\n const formattedTime = computed(() => props.relativeTime ? relativeTime.value : title.value);\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"span\", {\n class: \"nc-datetime\",\n dir: \"auto\",\n \"data-timestamp\": _ctx.timestamp,\n title: unref(title),\n textContent: toDisplayString(formattedTime.value)\n }, null, 8, _hoisted_1);\n };\n }\n});\nexport {\n _sfc_main as _\n};\n//# sourceMappingURL=NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U.mjs.map\n"],"names":["ActionGlobalMixin","ActionTextMixin","NC_ACTIONS_CLOSE_MENU","event","_sfc_main","NcIconSvgWrapper","NC_ACTIONS_IS_SEMANTIC_MENU","behavior","mdiCheck","mdiChevronRight","attributes","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","_component_NcIconSvgWrapper","resolveComponent","openBlock","createElementBlock","normalizeClass","createElementVNode","mergeProps","args","renderSlot","normalizeStyle","toDisplayString","createCommentVNode","createBlock","NcActionButton","_export_sfc","value","NcActionLink","_component_RouterLink","createVNode","withCtx","NcActionRouter","defineComponent","__props","props","timeOptions","computed","relativeTimeOptions","title","useFormatTime","toRef","relativeTime","useFormatRelativeTime","formattedTime","unref"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5]} \ No newline at end of file +{"version":3,"file":"NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-BNncp1Y1.chunk.mjs","sources":["../node_modules/@nextcloud/vue/dist/chunks/actionGlobal-BZFdtdJL.mjs","../node_modules/@nextcloud/vue/dist/chunks/actionText-DYzDdbVe.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcActionButton-pKOSrlGE.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcActionLink-vEvKSV4N.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcActionRouter-oT-YU_jf.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U.mjs"],"sourcesContent":["const ActionGlobalMixin = {\n beforeUpdate() {\n this.text = this.getText();\n },\n data() {\n return {\n // $slots are not reactive.\n // We need to update the content manually\n text: this.getText()\n };\n },\n computed: {\n isLongText() {\n return this.text && this.text.trim().length > 20;\n }\n },\n methods: {\n getText() {\n return this.$slots.default?.()[0].children?.trim?.() || \"\";\n }\n }\n};\nexport {\n ActionGlobalMixin as A\n};\n//# sourceMappingURL=actionGlobal-BZFdtdJL.mjs.map\n","import { warn } from \"vue\";\nimport { N as NC_ACTIONS_CLOSE_MENU } from \"./useNcActions-CiGWxAJE.mjs\";\nimport { A as ActionGlobalMixin } from \"./actionGlobal-BZFdtdJL.mjs\";\nconst ActionTextMixin = {\n mixins: [ActionGlobalMixin],\n props: {\n /**\n * Icon to show with the action, can be either a CSS class or an URL\n */\n icon: {\n type: String,\n default: \"\"\n },\n /**\n * The main text content of the entry.\n */\n name: {\n type: String,\n default: \"\"\n },\n /**\n * The title attribute of the element.\n */\n title: {\n type: String,\n default: \"\"\n },\n /**\n * Whether we close the Actions menu after the click\n */\n closeAfterClick: {\n type: Boolean,\n default: false\n },\n /**\n * Aria label for the button. Not needed if the button has text.\n */\n ariaLabel: {\n type: String,\n default: null\n }\n },\n inject: {\n closeMenu: {\n from: NC_ACTIONS_CLOSE_MENU\n }\n },\n emits: [\n \"click\"\n ],\n created() {\n if (\"ariaHidden\" in this.$attrs) {\n warn(\"[NcAction*]: Do not set the ariaHidden attribute as the root element will inherit the incorrect aria-hidden.\");\n }\n },\n computed: {\n /**\n * Check if icon prop is an URL\n *\n * @return {boolean} Whether the icon prop is an URL\n */\n isIconUrl() {\n try {\n return !!new URL(this.icon, this.icon.startsWith(\"/\") ? window.location.origin : void 0);\n } catch {\n return false;\n }\n }\n },\n methods: {\n onClick(event) {\n this.$emit(\"click\", event);\n if (this.closeAfterClick) {\n this.closeMenu(false);\n }\n }\n }\n};\nexport {\n ActionTextMixin as A\n};\n//# sourceMappingURL=actionText-DYzDdbVe.mjs.map\n","import '../assets/NcActionButton-Bb0ihLdt.css';\nimport { c as mdiChevronRight, d as mdiCheck } from \"./mdi-XFJRiRqJ.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-BvLanNaW.mjs\";\nimport { A as ActionTextMixin } from \"./actionText-DYzDdbVe.mjs\";\nimport { a as NC_ACTIONS_IS_SEMANTIC_MENU } from \"./useNcActions-CiGWxAJE.mjs\";\nimport { resolveComponent, createElementBlock, openBlock, normalizeClass, createElementVNode, mergeProps, renderSlot, createBlock, createCommentVNode, normalizeStyle, toDisplayString } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcActionButton\",\n components: {\n NcIconSvgWrapper\n },\n mixins: [ActionTextMixin],\n inject: {\n isInSemanticMenu: {\n from: NC_ACTIONS_IS_SEMANTIC_MENU,\n default: false\n }\n },\n props: {\n /**\n * disabled state of the action button\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * If this is a menu, a chevron icon will\n * be added at the end of the line\n */\n isMenu: {\n type: Boolean,\n default: false\n },\n /**\n * The button's behavior, by default the button acts like a normal button with optional toggle button behavior if `modelValue` is `true` or `false`.\n * But you can also set to checkbox button behavior with tri-state or radio button like behavior.\n * This extends the native HTML button type attribute.\n */\n type: {\n type: String,\n default: \"button\",\n validator: (behavior) => [\"button\", \"checkbox\", \"radio\", \"reset\", \"submit\"].includes(behavior)\n },\n /**\n * The buttons state if `type` is 'checkbox' or 'radio' (meaning if it is pressed / selected).\n * For checkbox and toggle button behavior - boolean value.\n * For radio button behavior - could be a boolean checked or a string with the value of the button.\n * Note: Unlike native radio buttons, NcActionButton are not grouped by name, so you need to connect them by bind correct modelValue.\n *\n * **This is not availabe for `type='submit'` or `type='reset'`**\n *\n * If using `type='checkbox'` a `model-value` of `true` means checked, `false` means unchecked and `null` means indeterminate (tri-state)\n * For `type='radio'` `null` is equal to `false`\n */\n modelValue: {\n type: [Boolean, String],\n default: null\n },\n /**\n * The value used for the `modelValue` when this component is used with radio behavior\n * Similar to the `value` attribute of `<input type=\"radio\">`\n */\n value: {\n type: String,\n default: null\n },\n /**\n * Small underlying text content of the entry\n */\n description: {\n type: String,\n default: \"\"\n }\n },\n emits: [\"update:modelValue\"],\n setup() {\n return {\n mdiCheck,\n mdiChevronRight\n };\n },\n computed: {\n /**\n * determines if the action is focusable\n *\n * @return {boolean} is the action focusable ?\n */\n isFocusable() {\n return !this.disabled;\n },\n /**\n * The current \"checked\" or \"pressed\" state for the model behavior\n */\n isChecked() {\n if (this.type === \"radio\" && typeof this.modelValue !== \"boolean\") {\n return this.modelValue === this.value;\n }\n return this.modelValue;\n },\n /**\n * The native HTML type to set on the button\n */\n nativeType() {\n if (this.type === \"submit\" || this.type === \"reset\") {\n return this.type;\n }\n return \"button\";\n },\n /**\n * HTML attributes to bind to the <button>\n */\n buttonAttributes() {\n const attributes = {};\n if (this.isInSemanticMenu) {\n attributes.role = \"menuitem\";\n if (this.type === \"radio\") {\n attributes.role = \"menuitemradio\";\n attributes[\"aria-checked\"] = this.isChecked ? \"true\" : \"false\";\n } else if (this.type === \"checkbox\" || this.nativeType === \"button\" && this.modelValue !== null) {\n attributes.role = \"menuitemcheckbox\";\n attributes[\"aria-checked\"] = this.modelValue === null ? \"mixed\" : this.modelValue ? \"true\" : \"false\";\n }\n } else if (this.modelValue !== null && this.nativeType === \"button\") {\n attributes[\"aria-pressed\"] = this.modelValue ? \"true\" : \"false\";\n }\n return attributes;\n }\n },\n methods: {\n /**\n * Forward click event, let mixin handle the close-after-click and emit new modelValue if needed\n *\n * @param {MouseEvent} event - The click event\n */\n handleClick(event) {\n this.onClick(event);\n if (this.modelValue !== null || this.type !== \"button\") {\n if (this.type === \"radio\") {\n if (typeof this.modelValue !== \"boolean\") {\n if (!this.isChecked) {\n this.$emit(\"update:modelValue\", this.value);\n }\n } else {\n this.$emit(\"update:modelValue\", !this.isChecked);\n }\n } else {\n this.$emit(\"update:modelValue\", !this.isChecked);\n }\n }\n }\n }\n};\nconst _hoisted_1 = [\"role\"];\nconst _hoisted_2 = [\"aria-label\", \"disabled\", \"title\", \"type\"];\nconst _hoisted_3 = { class: \"action-button__longtext-wrapper\" };\nconst _hoisted_4 = {\n key: 0,\n class: \"action-button__name\"\n};\nconst _hoisted_5 = [\"textContent\"];\nconst _hoisted_6 = {\n key: 2,\n class: \"action-button__text\"\n};\nconst _hoisted_7 = [\"textContent\"];\nconst _hoisted_8 = {\n key: 2,\n class: \"action-button__pressed-icon material-design-icon\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcIconSvgWrapper = resolveComponent(\"NcIconSvgWrapper\");\n return openBlock(), createElementBlock(\"li\", {\n class: normalizeClass([\"action\", { \"action--disabled\": $props.disabled }]),\n role: $options.isInSemanticMenu && \"presentation\"\n }, [\n createElementVNode(\"button\", mergeProps({\n \"aria-label\": _ctx.ariaLabel,\n class: [\"action-button button-vue\", {\n \"action-button--active\": $options.isChecked,\n focusable: $options.isFocusable\n }],\n disabled: $props.disabled,\n title: _ctx.title,\n type: $options.nativeType\n }, $options.buttonAttributes, {\n onClick: _cache[0] || (_cache[0] = (...args) => $options.handleClick && $options.handleClick(...args))\n }), [\n renderSlot(_ctx.$slots, \"icon\", {}, () => [\n createElementVNode(\"span\", {\n class: normalizeClass([[_ctx.isIconUrl ? \"action-button__icon--url\" : _ctx.icon], \"action-button__icon\"]),\n style: normalizeStyle({ backgroundImage: _ctx.isIconUrl ? `url(${_ctx.icon})` : null }),\n \"aria-hidden\": \"true\"\n }, null, 6)\n ], true),\n createElementVNode(\"span\", _hoisted_3, [\n _ctx.name ? (openBlock(), createElementBlock(\"strong\", _hoisted_4, toDisplayString(_ctx.name), 1)) : createCommentVNode(\"\", true),\n _ctx.isLongText ? (openBlock(), createElementBlock(\"span\", {\n key: 1,\n class: \"action-button__longtext\",\n textContent: toDisplayString(_ctx.text)\n }, null, 8, _hoisted_5)) : (openBlock(), createElementBlock(\"span\", _hoisted_6, toDisplayString(_ctx.text), 1)),\n $props.description ? (openBlock(), createElementBlock(\"span\", {\n key: 3,\n class: \"action-button__description\",\n textContent: toDisplayString($props.description)\n }, null, 8, _hoisted_7)) : createCommentVNode(\"\", true)\n ]),\n $props.isMenu ? (openBlock(), createBlock(_component_NcIconSvgWrapper, {\n key: 0,\n class: \"action-button__menu-icon\",\n directional: \"\",\n path: $setup.mdiChevronRight\n }, null, 8, [\"path\"])) : $options.isChecked ? (openBlock(), createBlock(_component_NcIconSvgWrapper, {\n key: 1,\n path: $setup.mdiCheck,\n class: \"action-button__pressed-icon\"\n }, null, 8, [\"path\"])) : $options.isChecked === false ? (openBlock(), createElementBlock(\"span\", _hoisted_8)) : createCommentVNode(\"\", true),\n createCommentVNode(\"\", true)\n ], 16, _hoisted_2)\n ], 10, _hoisted_1);\n}\nconst NcActionButton = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-6c2daf4e\"]]);\nexport {\n NcActionButton as N\n};\n//# sourceMappingURL=NcActionButton-pKOSrlGE.mjs.map\n","import '../assets/NcActionLink-DAEr-vmd.css';\nimport { A as ActionTextMixin } from \"./actionText-DYzDdbVe.mjs\";\nimport { a as NC_ACTIONS_IS_SEMANTIC_MENU } from \"./useNcActions-CiGWxAJE.mjs\";\nimport { createElementBlock, openBlock, createElementVNode, renderSlot, createCommentVNode, normalizeStyle, normalizeClass, toDisplayString } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcActionLink\",\n mixins: [ActionTextMixin],\n inject: {\n isInSemanticMenu: {\n from: NC_ACTIONS_IS_SEMANTIC_MENU,\n default: false\n }\n },\n props: {\n /**\n * destionation to link to\n */\n href: {\n type: String,\n required: true,\n validator: (value) => {\n try {\n return new URL(value);\n } catch {\n return value.startsWith(\"#\") || value.startsWith(\"/\");\n }\n }\n },\n /**\n * download the link instead of opening\n */\n download: {\n type: String,\n default: null\n },\n /**\n * target to open the link\n */\n target: {\n type: String,\n default: \"_self\",\n validator: (value) => {\n return value && (!value.startsWith(\"_\") || [\"_blank\", \"_self\", \"_parent\", \"_top\"].indexOf(value) > -1);\n }\n },\n /**\n * Declares a native tooltip when not null\n */\n title: {\n type: String,\n default: null\n }\n }\n};\nconst _hoisted_1 = [\"role\"];\nconst _hoisted_2 = [\"download\", \"href\", \"aria-label\", \"target\", \"title\", \"role\"];\nconst _hoisted_3 = {\n key: 0,\n class: \"action-link__longtext-wrapper\"\n};\nconst _hoisted_4 = { class: \"action-link__name\" };\nconst _hoisted_5 = [\"textContent\"];\nconst _hoisted_6 = [\"textContent\"];\nconst _hoisted_7 = {\n key: 2,\n class: \"action-link__text\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"li\", {\n class: \"action\",\n role: $options.isInSemanticMenu && \"presentation\"\n }, [\n createElementVNode(\"a\", {\n download: $props.download,\n href: $props.href,\n \"aria-label\": _ctx.ariaLabel,\n target: $props.target,\n title: $props.title,\n class: \"action-link focusable\",\n rel: \"nofollow noreferrer noopener\",\n role: $options.isInSemanticMenu && \"menuitem\",\n onClick: _cache[0] || (_cache[0] = (...args) => _ctx.onClick && _ctx.onClick(...args))\n }, [\n renderSlot(_ctx.$slots, \"icon\", {}, () => [\n createElementVNode(\"span\", {\n \"aria-hidden\": \"true\",\n class: normalizeClass([\"action-link__icon\", [_ctx.isIconUrl ? \"action-link__icon--url\" : _ctx.icon]]),\n style: normalizeStyle({ backgroundImage: _ctx.isIconUrl ? `url(${_ctx.icon})` : null })\n }, null, 6)\n ], true),\n _ctx.name ? (openBlock(), createElementBlock(\"span\", _hoisted_3, [\n createElementVNode(\"strong\", _hoisted_4, toDisplayString(_ctx.name), 1),\n _cache[1] || (_cache[1] = createElementVNode(\"br\", null, null, -1)),\n createElementVNode(\"span\", {\n class: \"action-link__longtext\",\n textContent: toDisplayString(_ctx.text)\n }, null, 8, _hoisted_5)\n ])) : _ctx.isLongText ? (openBlock(), createElementBlock(\"span\", {\n key: 1,\n class: \"action-link__longtext\",\n textContent: toDisplayString(_ctx.text)\n }, null, 8, _hoisted_6)) : (openBlock(), createElementBlock(\"span\", _hoisted_7, toDisplayString(_ctx.text), 1)),\n createCommentVNode(\"\", true)\n ], 8, _hoisted_2)\n ], 8, _hoisted_1);\n}\nconst NcActionLink = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-32f01b7a\"]]);\nexport {\n NcActionLink as N\n};\n//# sourceMappingURL=NcActionLink-vEvKSV4N.mjs.map\n","import '../assets/NcActionRouter-DeYzeM5W.css';\nimport { A as ActionTextMixin } from \"./actionText-DYzDdbVe.mjs\";\nimport { a as NC_ACTIONS_IS_SEMANTIC_MENU } from \"./useNcActions-CiGWxAJE.mjs\";\nimport { resolveComponent, createElementBlock, openBlock, createVNode, withCtx, renderSlot, createCommentVNode, createElementVNode, normalizeStyle, normalizeClass, toDisplayString } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcActionRouter\",\n mixins: [ActionTextMixin],\n inject: {\n isInSemanticMenu: {\n from: NC_ACTIONS_IS_SEMANTIC_MENU,\n default: false\n }\n },\n props: {\n /**\n * router-link to prop [https://router.vuejs.org/api/#to](https://router.vuejs.org/api/#to)\n */\n to: {\n type: [String, Object],\n required: true\n }\n }\n};\nconst _hoisted_1 = [\"role\"];\nconst _hoisted_2 = {\n key: 0,\n class: \"action-router__longtext-wrapper\"\n};\nconst _hoisted_3 = { class: \"action-router__name\" };\nconst _hoisted_4 = [\"textContent\"];\nconst _hoisted_5 = [\"textContent\"];\nconst _hoisted_6 = {\n key: 2,\n class: \"action-router__text\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_RouterLink = resolveComponent(\"RouterLink\");\n return openBlock(), createElementBlock(\"li\", {\n class: \"action\",\n role: $options.isInSemanticMenu && \"presentation\"\n }, [\n createVNode(_component_RouterLink, {\n \"aria-label\": _ctx.ariaLabel,\n class: \"action-router focusable\",\n rel: \"nofollow noreferrer noopener\",\n role: $options.isInSemanticMenu && \"menuitem\",\n title: _ctx.title,\n to: $props.to,\n onClick: _ctx.onClick\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"icon\", {}, () => [\n createElementVNode(\"span\", {\n \"aria-hidden\": \"true\",\n class: normalizeClass([\"action-router__icon\", [_ctx.isIconUrl ? \"action-router__icon--url\" : _ctx.icon]]),\n style: normalizeStyle({ backgroundImage: _ctx.isIconUrl ? `url(${_ctx.icon})` : null })\n }, null, 6)\n ], true),\n _ctx.name ? (openBlock(), createElementBlock(\"span\", _hoisted_2, [\n createElementVNode(\"strong\", _hoisted_3, toDisplayString(_ctx.name), 1),\n _cache[0] || (_cache[0] = createElementVNode(\"br\", null, null, -1)),\n createElementVNode(\"span\", {\n class: \"action-router__longtext\",\n textContent: toDisplayString(_ctx.text)\n }, null, 8, _hoisted_4)\n ])) : _ctx.isLongText ? (openBlock(), createElementBlock(\"span\", {\n key: 1,\n class: \"action-router__longtext\",\n textContent: toDisplayString(_ctx.text)\n }, null, 8, _hoisted_5)) : (openBlock(), createElementBlock(\"span\", _hoisted_6, toDisplayString(_ctx.text), 1)),\n createCommentVNode(\"\", true)\n ]),\n _: 3\n }, 8, [\"aria-label\", \"role\", \"title\", \"to\", \"onClick\"])\n ], 8, _hoisted_1);\n}\nconst NcActionRouter = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-87267750\"]]);\nexport {\n NcActionRouter as N\n};\n//# sourceMappingURL=NcActionRouter-oT-YU_jf.mjs.map\n","import { defineComponent, computed, toRef, createElementBlock, openBlock, toDisplayString, unref } from \"vue\";\nimport { useFormatTime, useFormatRelativeTime } from \"../composables/useFormatDateTime/index.mjs\";\nconst _hoisted_1 = [\"data-timestamp\", \"title\", \"textContent\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcDateTime\",\n props: {\n timestamp: {},\n format: { default: () => ({ timeStyle: \"medium\", dateStyle: \"short\" }) },\n relativeTime: { type: [Boolean, String], default: \"long\" },\n ignoreSeconds: { type: Boolean }\n },\n setup(__props) {\n const props = __props;\n const timeOptions = computed(() => ({ format: props.format }));\n const relativeTimeOptions = computed(() => ({\n ignoreSeconds: props.ignoreSeconds,\n relativeTime: props.relativeTime || \"long\",\n update: props.relativeTime !== false\n }));\n const title = useFormatTime(toRef(() => props.timestamp), timeOptions);\n const relativeTime = useFormatRelativeTime(toRef(() => props.timestamp), relativeTimeOptions);\n const formattedTime = computed(() => props.relativeTime ? relativeTime.value : title.value);\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"span\", {\n class: \"nc-datetime\",\n dir: \"auto\",\n \"data-timestamp\": _ctx.timestamp,\n title: unref(title),\n textContent: toDisplayString(formattedTime.value)\n }, null, 8, _hoisted_1);\n };\n }\n});\nexport {\n _sfc_main as _\n};\n//# sourceMappingURL=NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U.mjs.map\n"],"names":["ActionGlobalMixin","ActionTextMixin","NC_ACTIONS_CLOSE_MENU","event","_sfc_main","NcIconSvgWrapper","NC_ACTIONS_IS_SEMANTIC_MENU","behavior","mdiCheck","mdiChevronRight","attributes","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","_component_NcIconSvgWrapper","resolveComponent","openBlock","createElementBlock","normalizeClass","createElementVNode","mergeProps","args","renderSlot","normalizeStyle","toDisplayString","createCommentVNode","createBlock","NcActionButton","_export_sfc","value","NcActionLink","_component_RouterLink","createVNode","withCtx","NcActionRouter","defineComponent","__props","props","timeOptions","computed","relativeTimeOptions","title","useFormatTime","toRef","relativeTime","useFormatRelativeTime","formattedTime","unref"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5]} \ No newline at end of file diff --git a/dist/NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-CAvY10OW.chunk.mjs.map.license b/dist/NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-BNncp1Y1.chunk.mjs.map.license similarity index 100% rename from dist/NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-CAvY10OW.chunk.mjs.map.license rename to dist/NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-BNncp1Y1.chunk.mjs.map.license diff --git a/dist/NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-CAvY10OW.chunk.mjs b/dist/NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-CAvY10OW.chunk.mjs deleted file mode 100644 index c66a1a6809723..0000000000000 --- a/dist/NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-CAvY10OW.chunk.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import{a as S,j as v,d as I}from"./NcNoteCard-CVhtNL04-hwuc093N.chunk.mjs";import{J as T,m as _,K as V,L as w}from"./index-JpgrUA2Z-BFiKKJ1W.chunk.mjs";import{_ as b}from"./createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs";import{f as C,j as a,o as i,k as s,m as f,c as y,l as u,K as k,n as m,t as l,z as L,e as M,w as $,b as U,x as h,Y as g,u as A}from"./runtime-dom.esm-bundler-BrYCUcZF.chunk.mjs";const j={beforeUpdate(){this.text=this.getText()},data(){return{text:this.getText()}},computed:{isLongText(){return this.text&&this.text.trim().length>20}},methods:{getText(){return this.$slots.default?.()[0].children?.trim?.()||""}}},x={mixins:[j],props:{icon:{type:String,default:""},name:{type:String,default:""},title:{type:String,default:""},closeAfterClick:{type:Boolean,default:!1},ariaLabel:{type:String,default:null}},inject:{closeMenu:{from:T}},emits:["click"],created(){"ariaHidden"in this.$attrs},computed:{isIconUrl(){try{return!!new URL(this.icon,this.icon.startsWith("/")?window.location.origin:void 0)}catch{return!1}}},methods:{onClick(t){this.$emit("click",t),this.closeAfterClick&&this.closeMenu(!1)}}},B={name:"NcActionButton",components:{NcIconSvgWrapper:S},mixins:[x],inject:{isInSemanticMenu:{from:_,default:!1}},props:{disabled:{type:Boolean,default:!1},isMenu:{type:Boolean,default:!1},type:{type:String,default:"button",validator:t=>["button","checkbox","radio","reset","submit"].includes(t)},modelValue:{type:[Boolean,String],default:null},value:{type:String,default:null},description:{type:String,default:""}},emits:["update:modelValue"],setup(){return{mdiCheck:I,mdiChevronRight:v}},computed:{isFocusable(){return!this.disabled},isChecked(){return this.type==="radio"&&typeof this.modelValue!="boolean"?this.modelValue===this.value:this.modelValue},nativeType(){return this.type==="submit"||this.type==="reset"?this.type:"button"},buttonAttributes(){const t={};return this.isInSemanticMenu?(t.role="menuitem",this.type==="radio"?(t.role="menuitemradio",t["aria-checked"]=this.isChecked?"true":"false"):(this.type==="checkbox"||this.nativeType==="button"&&this.modelValue!==null)&&(t.role="menuitemcheckbox",t["aria-checked"]=this.modelValue===null?"mixed":this.modelValue?"true":"false")):this.modelValue!==null&&this.nativeType==="button"&&(t["aria-pressed"]=this.modelValue?"true":"false"),t}},methods:{handleClick(t){this.onClick(t),(this.modelValue!==null||this.type!=="button")&&(this.type==="radio"?typeof this.modelValue!="boolean"?this.isChecked||this.$emit("update:modelValue",this.value):this.$emit("update:modelValue",!this.isChecked):this.$emit("update:modelValue",!this.isChecked))}}},N=["role"],R=["aria-label","disabled","title","type"],W={class:"action-button__longtext-wrapper"},q={key:0,class:"action-button__name"},F=["textContent"],K={key:2,class:"action-button__text"},O=["textContent"],z={key:2,class:"action-button__pressed-icon material-design-icon"};function D(t,e,o,c,d,n){const r=C("NcIconSvgWrapper");return i(),a("li",{class:m(["action",{"action--disabled":o.disabled}]),role:n.isInSemanticMenu&&"presentation"},[s("button",L({"aria-label":t.ariaLabel,class:["action-button button-vue",{"action-button--active":n.isChecked,focusable:n.isFocusable}],disabled:o.disabled,title:t.title,type:n.nativeType},n.buttonAttributes,{onClick:e[0]||(e[0]=(...p)=>n.handleClick&&n.handleClick(...p))}),[f(t.$slots,"icon",{},()=>[s("span",{class:m([[t.isIconUrl?"action-button__icon--url":t.icon],"action-button__icon"]),style:k({backgroundImage:t.isIconUrl?`url(${t.icon})`:null}),"aria-hidden":"true"},null,6)],!0),s("span",W,[t.name?(i(),a("strong",q,l(t.name),1)):u("",!0),t.isLongText?(i(),a("span",{key:1,class:"action-button__longtext",textContent:l(t.text)},null,8,F)):(i(),a("span",K,l(t.text),1)),o.description?(i(),a("span",{key:3,class:"action-button__description",textContent:l(o.description)},null,8,O)):u("",!0)]),o.isMenu?(i(),y(r,{key:0,class:"action-button__menu-icon",directional:"",path:c.mdiChevronRight},null,8,["path"])):n.isChecked?(i(),y(r,{key:1,path:c.mdiCheck,class:"action-button__pressed-icon"},null,8,["path"])):n.isChecked===!1?(i(),a("span",z)):u("",!0),u("",!0)],16,R)],10,N)}const ht=b(B,[["render",D],["__scopeId","data-v-6c2daf4e"]]),H={name:"NcActionLink",mixins:[x],inject:{isInSemanticMenu:{from:_,default:!1}},props:{href:{type:String,required:!0,validator:t=>{try{return new URL(t)}catch{return t.startsWith("#")||t.startsWith("/")}}},download:{type:String,default:null},target:{type:String,default:"_self",validator:t=>t&&(!t.startsWith("_")||["_blank","_self","_parent","_top"].indexOf(t)>-1)},title:{type:String,default:null}}},J=["role"],Y=["download","href","aria-label","target","title","role"],E={key:0,class:"action-link__longtext-wrapper"},G={class:"action-link__name"},P=["textContent"],Q=["textContent"],X={key:2,class:"action-link__text"};function Z(t,e,o,c,d,n){return i(),a("li",{class:"action",role:n.isInSemanticMenu&&"presentation"},[s("a",{download:o.download,href:o.href,"aria-label":t.ariaLabel,target:o.target,title:o.title,class:"action-link focusable",rel:"nofollow noreferrer noopener",role:n.isInSemanticMenu&&"menuitem",onClick:e[0]||(e[0]=(...r)=>t.onClick&&t.onClick(...r))},[f(t.$slots,"icon",{},()=>[s("span",{"aria-hidden":"true",class:m(["action-link__icon",[t.isIconUrl?"action-link__icon--url":t.icon]]),style:k({backgroundImage:t.isIconUrl?`url(${t.icon})`:null})},null,6)],!0),t.name?(i(),a("span",E,[s("strong",G,l(t.name),1),e[1]||(e[1]=s("br",null,null,-1)),s("span",{class:"action-link__longtext",textContent:l(t.text)},null,8,P)])):t.isLongText?(i(),a("span",{key:1,class:"action-link__longtext",textContent:l(t.text)},null,8,Q)):(i(),a("span",X,l(t.text),1)),u("",!0)],8,Y)],8,J)}const _t=b(H,[["render",Z],["__scopeId","data-v-32f01b7a"]]),tt={name:"NcActionRouter",mixins:[x],inject:{isInSemanticMenu:{from:_,default:!1}},props:{to:{type:[String,Object],required:!0}}},et=["role"],nt={key:0,class:"action-router__longtext-wrapper"},it={class:"action-router__name"},at=["textContent"],ot=["textContent"],lt={key:2,class:"action-router__text"};function st(t,e,o,c,d,n){const r=C("RouterLink");return i(),a("li",{class:"action",role:n.isInSemanticMenu&&"presentation"},[M(r,{"aria-label":t.ariaLabel,class:"action-router focusable",rel:"nofollow noreferrer noopener",role:n.isInSemanticMenu&&"menuitem",title:t.title,to:o.to,onClick:t.onClick},{default:$(()=>[f(t.$slots,"icon",{},()=>[s("span",{"aria-hidden":"true",class:m(["action-router__icon",[t.isIconUrl?"action-router__icon--url":t.icon]]),style:k({backgroundImage:t.isIconUrl?`url(${t.icon})`:null})},null,6)],!0),t.name?(i(),a("span",nt,[s("strong",it,l(t.name),1),e[0]||(e[0]=s("br",null,null,-1)),s("span",{class:"action-router__longtext",textContent:l(t.text)},null,8,at)])):t.isLongText?(i(),a("span",{key:1,class:"action-router__longtext",textContent:l(t.text)},null,8,ot)):(i(),a("span",lt,l(t.text),1)),u("",!0)]),_:3},8,["aria-label","role","title","to","onClick"])],8,et)}const bt=b(tt,[["render",st],["__scopeId","data-v-87267750"]]),rt=["data-timestamp","title","textContent"],ft=U({__name:"NcDateTime",props:{timestamp:{},format:{default:()=>({timeStyle:"medium",dateStyle:"short"})},relativeTime:{type:[Boolean,String],default:"long"},ignoreSeconds:{type:Boolean}},setup(t){const e=t,o=h(()=>({format:e.format})),c=h(()=>({ignoreSeconds:e.ignoreSeconds,relativeTime:e.relativeTime||"long",update:e.relativeTime!==!1})),d=V(g(()=>e.timestamp),o),n=w(g(()=>e.timestamp),c),r=h(()=>e.relativeTime?n.value:d.value);return(p,ct)=>(i(),a("span",{class:"nc-datetime",dir:"auto","data-timestamp":p.timestamp,title:A(d),textContent:l(r.value)},null,8,rt))}});export{j as A,_t as N,ft as _,ht as a,x as b,bt as c}; -//# sourceMappingURL=NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-CAvY10OW.chunk.mjs.map diff --git a/dist/NcEmojiPicker-pM4Pg2yq-CYkSkF_Y.chunk.mjs b/dist/NcEmojiPicker-pM4Pg2yq-CYkSkF_Y.chunk.mjs new file mode 100644 index 0000000000000..6784837574c55 --- /dev/null +++ b/dist/NcEmojiPicker-pM4Pg2yq-CYkSkF_Y.chunk.mjs @@ -0,0 +1,6 @@ +import{j as b,o as p,F as H,C as Y,I as Z,n as W,k as y,c as re,l as L,w as U,t as T,L as Ct,f as S,e as M,E as Ye,af as xt,_ as z,m as ie,G as Bt,z as Ze,H as qt,y as vt,ac as At,ad as St}from"./runtime-dom.esm-bundler-DdtEg5E9.chunk.mjs";import{a as $}from"./index-DCpg1aui.chunk.mjs";import{z as Mt,M as Pt,O as zt}from"./NcModal-MC_HktJd-DqeuH-fk.chunk.mjs";import{r as Ot,y as Tt,C as Ht,D as Lt,E as Wt,b as j,_ as Qe}from"./createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs";import{N as It}from"./NcColorPicker-Kc0JqRtp-G7GArS5K.chunk.mjs";import{c as Rt}from"./index-Bndk0DrU.chunk.mjs";import{b as J}from"./colors-Go3zmZRD-DNxaZwS4.chunk.mjs";import{b as Nt}from"./AccountOutline-BlW-6JqD.chunk.mjs";import{_ as Gt}from"./TrashCanOutline-DglPBhgI.chunk.mjs";const Ut=!0,$t=JSON.parse('[{"id":"smileys","name":"Smileys & Emotion","emojis":["grinning","smiley","smile","grin","laughing","sweat_smile","rolling_on_the_floor_laughing","joy","slightly_smiling_face","upside_down_face","melting_face","wink","blush","innocent","smiling_face_with_3_hearts","heart_eyes","star-struck","kissing_heart","kissing","relaxed","kissing_closed_eyes","kissing_smiling_eyes","smiling_face_with_tear","yum","stuck_out_tongue","stuck_out_tongue_winking_eye","zany_face","stuck_out_tongue_closed_eyes","money_mouth_face","hugging_face","face_with_hand_over_mouth","face_with_open_eyes_and_hand_over_mouth","face_with_peeking_eye","shushing_face","thinking_face","saluting_face","zipper_mouth_face","face_with_raised_eyebrow","neutral_face","expressionless","no_mouth","dotted_line_face","face_in_clouds","smirk","unamused","face_with_rolling_eyes","grimacing","face_exhaling","lying_face","shaking_face","relieved","pensive","sleepy","drooling_face","sleeping","mask","face_with_thermometer","face_with_head_bandage","nauseated_face","face_vomiting","sneezing_face","hot_face","cold_face","woozy_face","dizzy_face","face_with_spiral_eyes","exploding_head","face_with_cowboy_hat","partying_face","disguised_face","sunglasses","nerd_face","face_with_monocle","confused","face_with_diagonal_mouth","worried","slightly_frowning_face","white_frowning_face","open_mouth","hushed","astonished","flushed","pleading_face","face_holding_back_tears","frowning","anguished","fearful","cold_sweat","disappointed_relieved","cry","sob","scream","confounded","persevere","disappointed","sweat","weary","tired_face","yawning_face","triumph","rage","angry","face_with_symbols_on_mouth","smiling_imp","imp","skull","skull_and_crossbones","hankey","clown_face","japanese_ogre","japanese_goblin","ghost","alien","space_invader","robot_face","smiley_cat","smile_cat","joy_cat","heart_eyes_cat","smirk_cat","kissing_cat","scream_cat","crying_cat_face","pouting_cat","see_no_evil","hear_no_evil","speak_no_evil","love_letter","cupid","gift_heart","sparkling_heart","heartpulse","heartbeat","revolving_hearts","two_hearts","heart_decoration","heavy_heart_exclamation_mark_ornament","broken_heart","heart_on_fire","mending_heart","heart","pink_heart","orange_heart","yellow_heart","green_heart","blue_heart","light_blue_heart","purple_heart","brown_heart","black_heart","grey_heart","white_heart","kiss","100","anger","boom","dizzy","sweat_drops","dash","hole","speech_balloon","eye-in-speech-bubble","left_speech_bubble","right_anger_bubble","thought_balloon","zzz"]},{"id":"people","name":"People & Body","emojis":["wave","raised_back_of_hand","raised_hand_with_fingers_splayed","hand","spock-hand","rightwards_hand","leftwards_hand","palm_down_hand","palm_up_hand","leftwards_pushing_hand","rightwards_pushing_hand","ok_hand","pinched_fingers","pinching_hand","v","crossed_fingers","hand_with_index_finger_and_thumb_crossed","i_love_you_hand_sign","the_horns","call_me_hand","point_left","point_right","point_up_2","middle_finger","point_down","point_up","index_pointing_at_the_viewer","+1","-1","fist","facepunch","left-facing_fist","right-facing_fist","clap","raised_hands","heart_hands","open_hands","palms_up_together","handshake","pray","writing_hand","nail_care","selfie","muscle","mechanical_arm","mechanical_leg","leg","foot","ear","ear_with_hearing_aid","nose","brain","anatomical_heart","lungs","tooth","bone","eyes","eye","tongue","lips","biting_lip","baby","child","boy","girl","adult","person_with_blond_hair","man","bearded_person","man_with_beard","woman_with_beard","red_haired_man","curly_haired_man","white_haired_man","bald_man","woman","red_haired_woman","red_haired_person","curly_haired_woman","curly_haired_person","white_haired_woman","white_haired_person","bald_woman","bald_person","blond-haired-woman","blond-haired-man","older_adult","older_man","older_woman","person_frowning","man-frowning","woman-frowning","person_with_pouting_face","man-pouting","woman-pouting","no_good","man-gesturing-no","woman-gesturing-no","ok_woman","man-gesturing-ok","woman-gesturing-ok","information_desk_person","man-tipping-hand","woman-tipping-hand","raising_hand","man-raising-hand","woman-raising-hand","deaf_person","deaf_man","deaf_woman","bow","man-bowing","woman-bowing","face_palm","man-facepalming","woman-facepalming","shrug","man-shrugging","woman-shrugging","health_worker","male-doctor","female-doctor","student","male-student","female-student","teacher","male-teacher","female-teacher","judge","male-judge","female-judge","farmer","male-farmer","female-farmer","cook","male-cook","female-cook","mechanic","male-mechanic","female-mechanic","factory_worker","male-factory-worker","female-factory-worker","office_worker","male-office-worker","female-office-worker","scientist","male-scientist","female-scientist","technologist","male-technologist","female-technologist","singer","male-singer","female-singer","artist","male-artist","female-artist","pilot","male-pilot","female-pilot","astronaut","male-astronaut","female-astronaut","firefighter","male-firefighter","female-firefighter","cop","male-police-officer","female-police-officer","sleuth_or_spy","male-detective","female-detective","guardsman","male-guard","female-guard","ninja","construction_worker","male-construction-worker","female-construction-worker","person_with_crown","prince","princess","man_with_turban","man-wearing-turban","woman-wearing-turban","man_with_gua_pi_mao","person_with_headscarf","person_in_tuxedo","man_in_tuxedo","woman_in_tuxedo","bride_with_veil","man_with_veil","woman_with_veil","pregnant_woman","pregnant_man","pregnant_person","breast-feeding","woman_feeding_baby","man_feeding_baby","person_feeding_baby","angel","santa","mrs_claus","mx_claus","superhero","male_superhero","female_superhero","supervillain","male_supervillain","female_supervillain","mage","male_mage","female_mage","fairy","male_fairy","female_fairy","vampire","male_vampire","female_vampire","merperson","merman","mermaid","elf","male_elf","female_elf","genie","male_genie","female_genie","zombie","male_zombie","female_zombie","troll","massage","man-getting-massage","woman-getting-massage","haircut","man-getting-haircut","woman-getting-haircut","walking","man-walking","woman-walking","standing_person","man_standing","woman_standing","kneeling_person","man_kneeling","woman_kneeling","person_with_probing_cane","man_with_probing_cane","woman_with_probing_cane","person_in_motorized_wheelchair","man_in_motorized_wheelchair","woman_in_motorized_wheelchair","person_in_manual_wheelchair","man_in_manual_wheelchair","woman_in_manual_wheelchair","runner","man-running","woman-running","dancer","man_dancing","man_in_business_suit_levitating","dancers","men-with-bunny-ears-partying","women-with-bunny-ears-partying","person_in_steamy_room","man_in_steamy_room","woman_in_steamy_room","person_climbing","man_climbing","woman_climbing","fencer","horse_racing","skier","snowboarder","golfer","man-golfing","woman-golfing","surfer","man-surfing","woman-surfing","rowboat","man-rowing-boat","woman-rowing-boat","swimmer","man-swimming","woman-swimming","person_with_ball","man-bouncing-ball","woman-bouncing-ball","weight_lifter","man-lifting-weights","woman-lifting-weights","bicyclist","man-biking","woman-biking","mountain_bicyclist","man-mountain-biking","woman-mountain-biking","person_doing_cartwheel","man-cartwheeling","woman-cartwheeling","wrestlers","man-wrestling","woman-wrestling","water_polo","man-playing-water-polo","woman-playing-water-polo","handball","man-playing-handball","woman-playing-handball","juggling","man-juggling","woman-juggling","person_in_lotus_position","man_in_lotus_position","woman_in_lotus_position","bath","sleeping_accommodation","people_holding_hands","two_women_holding_hands","man_and_woman_holding_hands","two_men_holding_hands","couplekiss","woman-kiss-man","man-kiss-man","woman-kiss-woman","couple_with_heart","woman-heart-man","man-heart-man","woman-heart-woman","family","man-woman-boy","man-woman-girl","man-woman-girl-boy","man-woman-boy-boy","man-woman-girl-girl","man-man-boy","man-man-girl","man-man-girl-boy","man-man-boy-boy","man-man-girl-girl","woman-woman-boy","woman-woman-girl","woman-woman-girl-boy","woman-woman-boy-boy","woman-woman-girl-girl","man-boy","man-boy-boy","man-girl","man-girl-boy","man-girl-girl","woman-boy","woman-boy-boy","woman-girl","woman-girl-boy","woman-girl-girl","speaking_head_in_silhouette","bust_in_silhouette","busts_in_silhouette","people_hugging","footprints"]},{"id":"nature","name":"Animals & Nature","emojis":["monkey_face","monkey","gorilla","orangutan","dog","dog2","guide_dog","service_dog","poodle","wolf","fox_face","raccoon","cat","cat2","black_cat","lion_face","tiger","tiger2","leopard","horse","moose","donkey","racehorse","unicorn_face","zebra_face","deer","bison","cow","ox","water_buffalo","cow2","pig","pig2","boar","pig_nose","ram","sheep","goat","dromedary_camel","camel","llama","giraffe_face","elephant","mammoth","rhinoceros","hippopotamus","mouse","mouse2","rat","hamster","rabbit","rabbit2","chipmunk","beaver","hedgehog","bat","bear","polar_bear","koala","panda_face","sloth","otter","skunk","kangaroo","badger","feet","turkey","chicken","rooster","hatching_chick","baby_chick","hatched_chick","bird","penguin","dove_of_peace","eagle","duck","swan","owl","dodo","feather","flamingo","peacock","parrot","wing","black_bird","goose","frog","crocodile","turtle","lizard","snake","dragon_face","dragon","sauropod","t-rex","whale","whale2","dolphin","seal","fish","tropical_fish","blowfish","shark","octopus","shell","coral","jellyfish","snail","butterfly","bug","ant","bee","beetle","ladybug","cricket","cockroach","spider","spider_web","scorpion","mosquito","fly","worm","microbe","bouquet","cherry_blossom","white_flower","lotus","rosette","rose","wilted_flower","hibiscus","sunflower","blossom","tulip","hyacinth","seedling","potted_plant","evergreen_tree","deciduous_tree","palm_tree","cactus","ear_of_rice","herb","shamrock","four_leaf_clover","maple_leaf","fallen_leaf","leaves","empty_nest","nest_with_eggs","mushroom"]},{"id":"foods","name":"Food & Drink","emojis":["grapes","melon","watermelon","tangerine","lemon","banana","pineapple","mango","apple","green_apple","pear","peach","cherries","strawberry","blueberries","kiwifruit","tomato","olive","coconut","avocado","eggplant","potato","carrot","corn","hot_pepper","bell_pepper","cucumber","leafy_green","broccoli","garlic","onion","peanuts","beans","chestnut","ginger_root","pea_pod","bread","croissant","baguette_bread","flatbread","pretzel","bagel","pancakes","waffle","cheese_wedge","meat_on_bone","poultry_leg","cut_of_meat","bacon","hamburger","fries","pizza","hotdog","sandwich","taco","burrito","tamale","stuffed_flatbread","falafel","egg","fried_egg","shallow_pan_of_food","stew","fondue","bowl_with_spoon","green_salad","popcorn","butter","salt","canned_food","bento","rice_cracker","rice_ball","rice","curry","ramen","spaghetti","sweet_potato","oden","sushi","fried_shrimp","fish_cake","moon_cake","dango","dumpling","fortune_cookie","takeout_box","crab","lobster","shrimp","squid","oyster","icecream","shaved_ice","ice_cream","doughnut","cookie","birthday","cake","cupcake","pie","chocolate_bar","candy","lollipop","custard","honey_pot","baby_bottle","glass_of_milk","coffee","teapot","tea","sake","champagne","wine_glass","cocktail","tropical_drink","beer","beers","clinking_glasses","tumbler_glass","pouring_liquid","cup_with_straw","bubble_tea","beverage_box","mate_drink","ice_cube","chopsticks","knife_fork_plate","fork_and_knife","spoon","hocho","jar","amphora"]},{"id":"activity","name":"Activities","emojis":["jack_o_lantern","christmas_tree","fireworks","sparkler","firecracker","sparkles","balloon","tada","confetti_ball","tanabata_tree","bamboo","dolls","flags","wind_chime","rice_scene","red_envelope","ribbon","gift","reminder_ribbon","admission_tickets","ticket","medal","trophy","sports_medal","first_place_medal","second_place_medal","third_place_medal","soccer","baseball","softball","basketball","volleyball","football","rugby_football","tennis","flying_disc","bowling","cricket_bat_and_ball","field_hockey_stick_and_ball","ice_hockey_stick_and_puck","lacrosse","table_tennis_paddle_and_ball","badminton_racquet_and_shuttlecock","boxing_glove","martial_arts_uniform","goal_net","golf","ice_skate","fishing_pole_and_fish","diving_mask","running_shirt_with_sash","ski","sled","curling_stone","dart","yo-yo","kite","gun","8ball","crystal_ball","magic_wand","video_game","joystick","slot_machine","game_die","jigsaw","teddy_bear","pinata","mirror_ball","nesting_dolls","spades","hearts","diamonds","clubs","chess_pawn","black_joker","mahjong","flower_playing_cards","performing_arts","frame_with_picture","art","thread","sewing_needle","yarn","knot"]},{"id":"places","name":"Travel & Places","emojis":["earth_africa","earth_americas","earth_asia","globe_with_meridians","world_map","japan","compass","snow_capped_mountain","mountain","volcano","mount_fuji","camping","beach_with_umbrella","desert","desert_island","national_park","stadium","classical_building","building_construction","bricks","rock","wood","hut","house_buildings","derelict_house_building","house","house_with_garden","office","post_office","european_post_office","hospital","bank","hotel","love_hotel","convenience_store","school","department_store","factory","japanese_castle","european_castle","wedding","tokyo_tower","statue_of_liberty","church","mosque","hindu_temple","synagogue","shinto_shrine","kaaba","fountain","tent","foggy","night_with_stars","cityscape","sunrise_over_mountains","sunrise","city_sunset","city_sunrise","bridge_at_night","hotsprings","carousel_horse","playground_slide","ferris_wheel","roller_coaster","barber","circus_tent","steam_locomotive","railway_car","bullettrain_side","bullettrain_front","train2","metro","light_rail","station","tram","monorail","mountain_railway","train","bus","oncoming_bus","trolleybus","minibus","ambulance","fire_engine","police_car","oncoming_police_car","taxi","oncoming_taxi","car","oncoming_automobile","blue_car","pickup_truck","truck","articulated_lorry","tractor","racing_car","racing_motorcycle","motor_scooter","manual_wheelchair","motorized_wheelchair","auto_rickshaw","bike","scooter","skateboard","roller_skate","busstop","motorway","railway_track","oil_drum","fuelpump","wheel","rotating_light","traffic_light","vertical_traffic_light","octagonal_sign","construction","anchor","ring_buoy","boat","canoe","speedboat","passenger_ship","ferry","motor_boat","ship","airplane","small_airplane","airplane_departure","airplane_arriving","parachute","seat","helicopter","suspension_railway","mountain_cableway","aerial_tramway","satellite","rocket","flying_saucer","bellhop_bell","luggage","hourglass","hourglass_flowing_sand","watch","alarm_clock","stopwatch","timer_clock","mantelpiece_clock","clock12","clock1230","clock1","clock130","clock2","clock230","clock3","clock330","clock4","clock430","clock5","clock530","clock6","clock630","clock7","clock730","clock8","clock830","clock9","clock930","clock10","clock1030","clock11","clock1130","new_moon","waxing_crescent_moon","first_quarter_moon","moon","full_moon","waning_gibbous_moon","last_quarter_moon","waning_crescent_moon","crescent_moon","new_moon_with_face","first_quarter_moon_with_face","last_quarter_moon_with_face","thermometer","sunny","full_moon_with_face","sun_with_face","ringed_planet","star","star2","stars","milky_way","cloud","partly_sunny","thunder_cloud_and_rain","mostly_sunny","barely_sunny","partly_sunny_rain","rain_cloud","snow_cloud","lightning","tornado","fog","wind_blowing_face","cyclone","rainbow","closed_umbrella","umbrella","umbrella_with_rain_drops","umbrella_on_ground","zap","snowflake","snowman","snowman_without_snow","comet","fire","droplet","ocean"]},{"id":"objects","name":"Objects","emojis":["eyeglasses","dark_sunglasses","goggles","lab_coat","safety_vest","necktie","shirt","jeans","scarf","gloves","coat","socks","dress","kimono","sari","one-piece_swimsuit","briefs","shorts","bikini","womans_clothes","folding_hand_fan","purse","handbag","pouch","shopping_bags","school_satchel","thong_sandal","mans_shoe","athletic_shoe","hiking_boot","womans_flat_shoe","high_heel","sandal","ballet_shoes","boot","hair_pick","crown","womans_hat","tophat","mortar_board","billed_cap","military_helmet","helmet_with_white_cross","prayer_beads","lipstick","ring","gem","mute","speaker","sound","loud_sound","loudspeaker","mega","postal_horn","bell","no_bell","musical_score","musical_note","notes","studio_microphone","level_slider","control_knobs","microphone","headphones","radio","saxophone","accordion","guitar","musical_keyboard","trumpet","violin","banjo","drum_with_drumsticks","long_drum","maracas","flute","iphone","calling","phone","telephone_receiver","pager","fax","battery","low_battery","electric_plug","computer","desktop_computer","printer","keyboard","three_button_mouse","trackball","minidisc","floppy_disk","cd","dvd","abacus","movie_camera","film_frames","film_projector","clapper","tv","camera","camera_with_flash","video_camera","vhs","mag","mag_right","candle","bulb","flashlight","izakaya_lantern","diya_lamp","notebook_with_decorative_cover","closed_book","book","green_book","blue_book","orange_book","books","notebook","ledger","page_with_curl","scroll","page_facing_up","newspaper","rolled_up_newspaper","bookmark_tabs","bookmark","label","moneybag","coin","yen","dollar","euro","pound","money_with_wings","credit_card","receipt","chart","email","e-mail","incoming_envelope","envelope_with_arrow","outbox_tray","inbox_tray","package","mailbox","mailbox_closed","mailbox_with_mail","mailbox_with_no_mail","postbox","ballot_box_with_ballot","pencil2","black_nib","lower_left_fountain_pen","lower_left_ballpoint_pen","lower_left_paintbrush","lower_left_crayon","memo","briefcase","file_folder","open_file_folder","card_index_dividers","date","calendar","spiral_note_pad","spiral_calendar_pad","card_index","chart_with_upwards_trend","chart_with_downwards_trend","bar_chart","clipboard","pushpin","round_pushpin","paperclip","linked_paperclips","straight_ruler","triangular_ruler","scissors","card_file_box","file_cabinet","wastebasket","lock","unlock","lock_with_ink_pen","closed_lock_with_key","key","old_key","hammer","axe","pick","hammer_and_pick","hammer_and_wrench","dagger_knife","crossed_swords","bomb","boomerang","bow_and_arrow","shield","carpentry_saw","wrench","screwdriver","nut_and_bolt","gear","compression","scales","probing_cane","link","chains","hook","toolbox","magnet","ladder","alembic","test_tube","petri_dish","dna","microscope","telescope","satellite_antenna","syringe","drop_of_blood","pill","adhesive_bandage","crutch","stethoscope","x-ray","door","elevator","mirror","window","bed","couch_and_lamp","chair","toilet","plunger","shower","bathtub","mouse_trap","razor","lotion_bottle","safety_pin","broom","basket","roll_of_paper","bucket","soap","bubbles","toothbrush","sponge","fire_extinguisher","shopping_trolley","smoking","coffin","headstone","funeral_urn","nazar_amulet","hamsa","moyai","placard","identification_card"]},{"id":"symbols","name":"Symbols","emojis":["atm","put_litter_in_its_place","potable_water","wheelchair","mens","womens","restroom","baby_symbol","wc","passport_control","customs","baggage_claim","left_luggage","warning","children_crossing","no_entry","no_entry_sign","no_bicycles","no_smoking","do_not_litter","non-potable_water","no_pedestrians","no_mobile_phones","underage","radioactive_sign","biohazard_sign","arrow_up","arrow_upper_right","arrow_right","arrow_lower_right","arrow_down","arrow_lower_left","arrow_left","arrow_upper_left","arrow_up_down","left_right_arrow","leftwards_arrow_with_hook","arrow_right_hook","arrow_heading_up","arrow_heading_down","arrows_clockwise","arrows_counterclockwise","back","end","on","soon","top","place_of_worship","atom_symbol","om_symbol","star_of_david","wheel_of_dharma","yin_yang","latin_cross","orthodox_cross","star_and_crescent","peace_symbol","menorah_with_nine_branches","six_pointed_star","khanda","aries","taurus","gemini","cancer","leo","virgo","libra","scorpius","sagittarius","capricorn","aquarius","pisces","ophiuchus","twisted_rightwards_arrows","repeat","repeat_one","arrow_forward","fast_forward","black_right_pointing_double_triangle_with_vertical_bar","black_right_pointing_triangle_with_double_vertical_bar","arrow_backward","rewind","black_left_pointing_double_triangle_with_vertical_bar","arrow_up_small","arrow_double_up","arrow_down_small","arrow_double_down","double_vertical_bar","black_square_for_stop","black_circle_for_record","eject","cinema","low_brightness","high_brightness","signal_strength","wireless","vibration_mode","mobile_phone_off","female_sign","male_sign","transgender_symbol","heavy_multiplication_x","heavy_plus_sign","heavy_minus_sign","heavy_division_sign","heavy_equals_sign","infinity","bangbang","interrobang","question","grey_question","grey_exclamation","exclamation","wavy_dash","currency_exchange","heavy_dollar_sign","medical_symbol","recycle","fleur_de_lis","trident","name_badge","beginner","o","white_check_mark","ballot_box_with_check","heavy_check_mark","x","negative_squared_cross_mark","curly_loop","loop","part_alternation_mark","eight_spoked_asterisk","eight_pointed_black_star","sparkle","copyright","registered","tm","hash","keycap_star","zero","one","two","three","four","five","six","seven","eight","nine","keycap_ten","capital_abcd","abcd","1234","symbols","abc","a","ab","b","cl","cool","free","information_source","id","m","new","ng","o2","ok","parking","sos","up","vs","koko","sa","u6708","u6709","u6307","ideograph_advantage","u5272","u7121","u7981","accept","u7533","u5408","u7a7a","congratulations","secret","u55b6","u6e80","red_circle","large_orange_circle","large_yellow_circle","large_green_circle","large_blue_circle","large_purple_circle","large_brown_circle","black_circle","white_circle","large_red_square","large_orange_square","large_yellow_square","large_green_square","large_blue_square","large_purple_square","large_brown_square","black_large_square","white_large_square","black_medium_square","white_medium_square","black_medium_small_square","white_medium_small_square","black_small_square","white_small_square","large_orange_diamond","large_blue_diamond","small_orange_diamond","small_blue_diamond","small_red_triangle","small_red_triangle_down","diamond_shape_with_a_dot_inside","radio_button","white_square_button","black_square_button"]},{"id":"flags","name":"Flags","emojis":["checkered_flag","cn","crossed_flags","de","es","flag-ac","flag-ad","flag-ae","flag-af","flag-ag","flag-ai","flag-al","flag-am","flag-ao","flag-aq","flag-ar","flag-as","flag-at","flag-au","flag-aw","flag-ax","flag-az","flag-ba","flag-bb","flag-bd","flag-be","flag-bf","flag-bg","flag-bh","flag-bi","flag-bj","flag-bl","flag-bm","flag-bn","flag-bo","flag-bq","flag-br","flag-bs","flag-bt","flag-bv","flag-bw","flag-by","flag-bz","flag-ca","flag-cc","flag-cd","flag-cf","flag-cg","flag-ch","flag-ci","flag-ck","flag-cl","flag-cm","flag-co","flag-cp","flag-cr","flag-cu","flag-cv","flag-cw","flag-cx","flag-cy","flag-cz","flag-dg","flag-dj","flag-dk","flag-dm","flag-do","flag-dz","flag-ea","flag-ec","flag-ee","flag-eg","flag-eh","flag-england","flag-er","flag-et","flag-eu","flag-fi","flag-fj","flag-fk","flag-fm","flag-fo","flag-ga","flag-gd","flag-ge","flag-gf","flag-gg","flag-gh","flag-gi","flag-gl","flag-gm","flag-gn","flag-gp","flag-gq","flag-gr","flag-gs","flag-gt","flag-gu","flag-gw","flag-gy","flag-hk","flag-hm","flag-hn","flag-hr","flag-ht","flag-hu","flag-ic","flag-id","flag-ie","flag-il","flag-im","flag-in","flag-io","flag-iq","flag-ir","flag-is","flag-je","flag-jm","flag-jo","flag-ke","flag-kg","flag-kh","flag-ki","flag-km","flag-kn","flag-kp","flag-kw","flag-ky","flag-kz","flag-la","flag-lb","flag-lc","flag-li","flag-lk","flag-lr","flag-ls","flag-lt","flag-lu","flag-lv","flag-ly","flag-ma","flag-mc","flag-md","flag-me","flag-mf","flag-mg","flag-mh","flag-mk","flag-ml","flag-mm","flag-mn","flag-mo","flag-mp","flag-mq","flag-mr","flag-ms","flag-mt","flag-mu","flag-mv","flag-mw","flag-mx","flag-my","flag-mz","flag-na","flag-nc","flag-ne","flag-nf","flag-ng","flag-ni","flag-nl","flag-no","flag-np","flag-nr","flag-nu","flag-nz","flag-om","flag-pa","flag-pe","flag-pf","flag-pg","flag-ph","flag-pk","flag-pl","flag-pm","flag-pn","flag-pr","flag-ps","flag-pt","flag-pw","flag-py","flag-qa","flag-re","flag-ro","flag-rs","flag-rw","flag-sa","flag-sb","flag-sc","flag-scotland","flag-sd","flag-se","flag-sg","flag-sh","flag-si","flag-sj","flag-sk","flag-sl","flag-sm","flag-sn","flag-so","flag-sr","flag-ss","flag-st","flag-sv","flag-sx","flag-sy","flag-sz","flag-ta","flag-tc","flag-td","flag-tf","flag-tg","flag-th","flag-tj","flag-tk","flag-tl","flag-tm","flag-tn","flag-to","flag-tr","flag-tt","flag-tv","flag-tw","flag-tz","flag-ua","flag-ug","flag-um","flag-uy","flag-uz","flag-va","flag-vc","flag-ve","flag-vg","flag-vi","flag-vn","flag-vu","flag-wales","flag-wf","flag-ws","flag-xk","flag-ye","flag-yt","flag-za","flag-zm","flag-zw","fr","gb","it","jp","kr","pirate_flag","rainbow-flag","ru","transgender_flag","triangular_flag_on_post","us","waving_black_flag","waving_white_flag"]}]'),Kt=JSON.parse(`{"100":{"subcategory":"emotion","a":"Hundred Points Symbol","b":"1F4AF","d":true,"e":true,"f":true,"h":true,"j":["hundred_points","score","perfect","numbers","century","exam","quiz","test","pass","hundred","100"],"k":[28,7],"o":0},"1234":{"subcategory":"alphanum","a":"Input Symbol for Numbers","b":"1F522","d":true,"e":true,"f":true,"h":true,"j":["input_numbers","numbers","blue-square","1234","1","2","3","4"],"k":[29,60],"o":0},"grinning":{"subcategory":"face-smiling","a":"Grinning Face","b":"1F600","d":true,"e":true,"f":true,"h":true,"j":["grinning_face","face","smile","happy","joy",":D","grin"],"k":[32,21],"m":":D","o":1},"smiley":{"subcategory":"face-smiling","a":"Smiling Face with Open Mouth","b":"1F603","d":true,"e":true,"f":true,"h":true,"j":["grinning_face_with_big_eyes","face","happy","joy","haha",":D",":)","smile","funny"],"k":[32,24],"l":["=)","=-)"],"m":":)","o":0},"smile":{"subcategory":"face-smiling","a":"Smiling Face with Open Mouth and Smiling Eyes","b":"1F604","d":true,"e":true,"f":true,"h":true,"j":["grinning_face_with_smiling_eyes","face","happy","joy","funny","haha","laugh","like",":D",":)","smile"],"k":[32,25],"l":["C:","c:",":D",":-D"],"m":":)","o":0},"grin":{"subcategory":"face-smiling","a":"Grinning Face with Smiling Eyes","b":"1F601","d":true,"e":true,"f":true,"h":true,"j":["beaming_face_with_smiling_eyes","face","happy","smile","joy","kawaii"],"k":[32,22],"o":0},"laughing":{"subcategory":"face-smiling","a":"Smiling Face with Open Mouth and Tightly-Closed Eyes","b":"1F606","d":true,"e":true,"f":true,"h":true,"j":["grinning_squinting_face","happy","joy","lol","satisfied","haha","face","glad","XD","laugh"],"k":[32,27],"l":[":>",":->"],"n":["satisfied"],"o":0},"sweat_smile":{"subcategory":"face-smiling","a":"Smiling Face with Open Mouth and Cold Sweat","b":"1F605","d":true,"e":true,"f":true,"h":true,"j":["grinning_face_with_sweat","face","hot","happy","laugh","sweat","smile","relief"],"k":[32,26],"o":0},"rolling_on_the_floor_laughing":{"subcategory":"face-smiling","a":"Rolling on the Floor Laughing","b":"1F923","d":true,"e":true,"f":true,"h":true,"j":["rolling_on_the_floor_laughing","face","rolling","floor","laughing","lol","haha","rofl"],"k":[40,17],"o":3},"joy":{"subcategory":"face-smiling","a":"Face with Tears of Joy","b":"1F602","d":true,"e":true,"f":true,"h":true,"j":["face_with_tears_of_joy","face","cry","tears","weep","happy","happytears","haha"],"k":[32,23],"o":0},"slightly_smiling_face":{"subcategory":"face-smiling","a":"Slightly Smiling Face","b":"1F642","d":true,"e":true,"f":true,"h":true,"j":["slightly_smiling_face","face","smile"],"k":[33,29],"l":[":)","(:",":-)"],"o":1},"upside_down_face":{"subcategory":"face-smiling","a":"Upside-Down Face","b":"1F643","d":true,"e":true,"f":true,"h":true,"j":["upside_down_face","face","flipped","silly","smile"],"k":[33,30],"o":1},"melting_face":{"subcategory":"face-smiling","a":"Melting Face","b":"1FAE0","d":true,"e":true,"f":true,"h":true,"j":["melting face","hot","heat"],"k":[55,30],"o":14},"wink":{"subcategory":"face-smiling","a":"Winking Face","b":"1F609","d":true,"e":true,"f":true,"h":true,"j":["winking_face","face","happy","mischievous","secret",";)","smile","eye"],"k":[32,30],"l":[";)",";-)"],"m":";)","o":0},"blush":{"subcategory":"face-smiling","a":"Smiling Face with Smiling Eyes","b":"1F60A","d":true,"e":true,"f":true,"h":true,"j":["smiling_face_with_smiling_eyes","face","smile","happy","flushed","crush","embarrassed","shy","joy"],"k":[32,31],"m":":)","o":0},"innocent":{"subcategory":"face-smiling","a":"Smiling Face with Halo","b":"1F607","d":true,"e":true,"f":true,"h":true,"j":["smiling_face_with_halo","face","angel","heaven","halo","innocent"],"k":[32,28],"o":1},"smiling_face_with_3_hearts":{"subcategory":"face-affection","a":"Smiling Face with Smiling Eyes and Three Hearts","b":"1F970","d":true,"e":true,"f":true,"h":true,"j":["smiling_face_with_hearts","face","love","like","affection","valentines","infatuation","crush","hearts","adore"],"k":[43,60],"o":11},"heart_eyes":{"subcategory":"face-affection","a":"Smiling Face with Heart-Shaped Eyes","b":"1F60D","d":true,"e":true,"f":true,"h":true,"j":["smiling_face_with_heart_eyes","face","love","like","affection","valentines","infatuation","crush","heart"],"k":[32,34],"o":0},"star-struck":{"subcategory":"face-affection","a":"Grinning Face with Star Eyes","b":"1F929","d":true,"e":true,"f":true,"h":true,"j":["star_struck","face","smile","starry","eyes","grinning"],"k":[40,40],"n":["grinning_face_with_star_eyes"],"o":5},"kissing_heart":{"subcategory":"face-affection","a":"Face Throwing a Kiss","b":"1F618","d":true,"e":true,"f":true,"h":true,"j":["face_blowing_a_kiss","face","love","like","affection","valentines","infatuation","kiss"],"k":[32,45],"l":[":*",":-*"],"o":0},"kissing":{"subcategory":"face-affection","a":"Kissing Face","b":"1F617","d":true,"e":true,"f":true,"h":true,"j":["kissing_face","love","like","face","3","valentines","infatuation","kiss"],"k":[32,44],"o":1},"relaxed":{"subcategory":"face-affection","a":"White Smiling Face","b":"263A-FE0F","c":"263A","d":true,"e":true,"f":true,"h":true,"j":["smiling_face","face","blush","massage","happiness"],"k":[57,35],"o":0},"kissing_closed_eyes":{"subcategory":"face-affection","a":"Kissing Face with Closed Eyes","b":"1F61A","d":true,"e":true,"f":true,"h":true,"j":["kissing_face_with_closed_eyes","face","love","like","affection","valentines","infatuation","kiss"],"k":[32,47],"o":0},"kissing_smiling_eyes":{"subcategory":"face-affection","a":"Kissing Face with Smiling Eyes","b":"1F619","d":true,"e":true,"f":true,"h":true,"j":["kissing_face_with_smiling_eyes","face","affection","valentines","infatuation","kiss"],"k":[32,46],"o":1},"smiling_face_with_tear":{"subcategory":"face-affection","a":"Smiling Face with Tear","b":"1F972","d":true,"e":true,"f":true,"h":true,"j":["smiling face with tear","sad","cry","pretend"],"k":[44,1],"o":13},"yum":{"subcategory":"face-tongue","a":"Face Savouring Delicious Food","b":"1F60B","d":true,"e":true,"f":true,"h":true,"j":["face_savoring_food","happy","joy","tongue","smile","face","silly","yummy","nom","delicious","savouring"],"k":[32,32],"o":0},"stuck_out_tongue":{"subcategory":"face-tongue","a":"Face with Stuck-out Tongue","b":"1F61B","d":true,"e":true,"f":true,"h":true,"j":["face_with_tongue","face","prank","childish","playful","mischievous","smile","tongue"],"k":[32,48],"l":[":p",":-p",":P",":-P",":b",":-b"],"m":":p","o":1},"stuck_out_tongue_winking_eye":{"subcategory":"face-tongue","a":"Face with Stuck-out Tongue and Winking Eye","b":"1F61C","d":true,"e":true,"f":true,"h":true,"j":["winking_face_with_tongue","face","prank","childish","playful","mischievous","smile","wink","tongue"],"k":[32,49],"l":[";p",";-p",";b",";-b",";P",";-P"],"m":";p","o":0},"zany_face":{"subcategory":"face-tongue","a":"Grinning Face with One Large and One Small Eye","b":"1F92A","d":true,"e":true,"f":true,"h":true,"j":["zany_face","face","goofy","crazy"],"k":[40,41],"n":["grinning_face_with_one_large_and_one_small_eye"],"o":5},"stuck_out_tongue_closed_eyes":{"subcategory":"face-tongue","a":"Face with Stuck-out Tongue and Tightly-Closed Eyes","b":"1F61D","d":true,"e":true,"f":true,"h":true,"j":["squinting_face_with_tongue","face","prank","playful","mischievous","smile","tongue"],"k":[32,50],"o":0},"money_mouth_face":{"subcategory":"face-tongue","a":"Money-Mouth Face","b":"1F911","d":true,"e":true,"f":true,"h":true,"j":["money_mouth_face","face","rich","dollar","money"],"k":[39,0],"o":1},"hugging_face":{"subcategory":"face-hand","a":"Hugging Face","b":"1F917","d":true,"e":true,"f":true,"h":true,"j":["hugging_face","face","smile","hug"],"k":[39,6],"o":1},"face_with_hand_over_mouth":{"subcategory":"face-hand","a":"Smiling Face with Smiling Eyes and Hand Covering Mouth","b":"1F92D","d":true,"e":true,"f":true,"h":true,"j":["face_with_hand_over_mouth","face","whoops","shock","surprise"],"k":[40,44],"n":["smiling_face_with_smiling_eyes_and_hand_covering_mouth"],"o":5},"face_with_open_eyes_and_hand_over_mouth":{"subcategory":"face-hand","a":"Face with Open Eyes and Hand over Mouth","b":"1FAE2","d":true,"e":true,"f":true,"h":true,"j":["face with open eyes and hand over mouth","silence","secret","shock","surprise"],"k":[55,32],"o":14},"face_with_peeking_eye":{"subcategory":"face-hand","a":"Face with Peeking Eye","b":"1FAE3","d":true,"e":true,"f":true,"h":true,"j":["face with peeking eye","scared","frightening","embarrassing","shy"],"k":[55,33],"o":14},"shushing_face":{"subcategory":"face-hand","a":"Face with Finger Covering Closed Lips","b":"1F92B","d":true,"e":true,"f":true,"h":true,"j":["shushing_face","face","quiet","shhh"],"k":[40,42],"n":["face_with_finger_covering_closed_lips"],"o":5},"thinking_face":{"subcategory":"face-hand","a":"Thinking Face","b":"1F914","d":true,"e":true,"f":true,"h":true,"j":["thinking_face","face","hmmm","think","consider"],"k":[39,3],"o":1},"saluting_face":{"subcategory":"face-hand","a":"Saluting Face","b":"1FAE1","d":true,"e":true,"f":true,"h":true,"j":["saluting face","respect","salute"],"k":[55,31],"o":14},"zipper_mouth_face":{"subcategory":"face-neutral-skeptical","a":"Zipper-Mouth Face","b":"1F910","d":true,"e":true,"f":true,"h":true,"j":["zipper_mouth_face","face","sealed","zipper","secret"],"k":[38,60],"o":1},"face_with_raised_eyebrow":{"subcategory":"face-neutral-skeptical","a":"Face with One Eyebrow Raised","b":"1F928","d":true,"e":true,"f":true,"h":true,"j":["face_with_raised_eyebrow","face","distrust","scepticism","disapproval","disbelief","surprise","suspicious"],"k":[40,39],"n":["face_with_one_eyebrow_raised"],"o":5},"neutral_face":{"subcategory":"face-neutral-skeptical","a":"Neutral Face","b":"1F610","d":true,"e":true,"f":true,"h":true,"j":["neutral_face","indifference","meh",":|","neutral"],"k":[32,37],"l":[":|",":-|"],"o":0},"expressionless":{"subcategory":"face-neutral-skeptical","a":"Expressionless Face","b":"1F611","d":true,"e":true,"f":true,"h":true,"j":["expressionless_face","face","indifferent","-_-","meh","deadpan"],"k":[32,38],"o":1},"no_mouth":{"subcategory":"face-neutral-skeptical","a":"Face Without Mouth","b":"1F636","d":true,"e":true,"f":true,"h":true,"j":["face_without_mouth","face"],"k":[33,17],"o":1},"dotted_line_face":{"subcategory":"face-neutral-skeptical","a":"Dotted Line Face","b":"1FAE5","d":true,"e":true,"f":true,"h":true,"j":["dotted line face","invisible","lonely","isolation","depression"],"k":[55,35],"o":14},"face_in_clouds":{"subcategory":"face-neutral-skeptical","a":"Face in Clouds","b":"1F636-200D-1F32B-FE0F","c":"1F636-200D-1F32B","d":true,"e":true,"f":true,"h":true,"j":["face in clouds","shower","steam","dream"],"k":[33,16],"o":13},"smirk":{"subcategory":"face-neutral-skeptical","a":"Smirking Face","b":"1F60F","d":true,"e":true,"f":true,"h":true,"j":["smirking_face","face","smile","mean","prank","smug","sarcasm"],"k":[32,36],"o":0},"unamused":{"subcategory":"face-neutral-skeptical","a":"Unamused Face","b":"1F612","d":true,"e":true,"f":true,"h":true,"j":["unamused_face","indifference","bored","straight face","serious","sarcasm","unimpressed","skeptical","dubious","ugh","side_eye"],"k":[32,39],"m":":(","o":0},"face_with_rolling_eyes":{"subcategory":"face-neutral-skeptical","a":"Face with Rolling Eyes","b":"1F644","d":true,"e":true,"f":true,"h":true,"j":["face_with_rolling_eyes","face","eyeroll","frustrated"],"k":[33,31],"o":1},"grimacing":{"subcategory":"face-neutral-skeptical","a":"Grimacing Face","b":"1F62C","d":true,"e":true,"f":true,"h":true,"j":["grimacing_face","face","grimace","teeth"],"k":[33,4],"o":1},"face_exhaling":{"subcategory":"face-neutral-skeptical","a":"Face Exhaling","b":"1F62E-200D-1F4A8","d":true,"e":true,"f":true,"h":true,"j":["face exhaling","relieve","relief","tired","sigh"],"k":[33,6],"o":13},"lying_face":{"subcategory":"face-neutral-skeptical","a":"Lying Face","b":"1F925","d":true,"e":true,"f":true,"h":true,"j":["lying_face","face","lie","pinocchio"],"k":[40,19],"o":3},"shaking_face":{"subcategory":"face-neutral-skeptical","a":"Shaking Face","b":"1FAE8","d":true,"e":true,"f":false,"h":false,"j":["shaking face","dizzy","shock","blurry","earthquake"],"k":[55,38],"o":15},"relieved":{"subcategory":"face-sleepy","a":"Relieved Face","b":"1F60C","d":true,"e":true,"f":true,"h":true,"j":["relieved_face","face","relaxed","phew","massage","happiness"],"k":[32,33],"o":0},"pensive":{"subcategory":"face-sleepy","a":"Pensive Face","b":"1F614","d":true,"e":true,"f":true,"h":true,"j":["pensive_face","face","sad","depressed","upset"],"k":[32,41],"o":0},"sleepy":{"subcategory":"face-sleepy","a":"Sleepy Face","b":"1F62A","d":true,"e":true,"f":true,"h":true,"j":["sleepy_face","face","tired","rest","nap"],"k":[33,2],"o":0},"drooling_face":{"subcategory":"face-sleepy","a":"Drooling Face","b":"1F924","d":true,"e":true,"f":true,"h":true,"j":["drooling_face","face"],"k":[40,18],"o":3},"sleeping":{"subcategory":"face-sleepy","a":"Sleeping Face","b":"1F634","d":true,"e":true,"f":true,"h":true,"j":["sleeping_face","face","tired","sleepy","night","zzz"],"k":[33,13],"o":1},"mask":{"subcategory":"face-unwell","a":"Face with Medical Mask","b":"1F637","d":true,"e":true,"f":true,"h":true,"j":["face_with_medical_mask","face","sick","ill","disease","covid"],"k":[33,18],"o":0},"face_with_thermometer":{"subcategory":"face-unwell","a":"Face with Thermometer","b":"1F912","d":true,"e":true,"f":true,"h":true,"j":["face_with_thermometer","sick","temperature","thermometer","cold","fever","covid"],"k":[39,1],"o":1},"face_with_head_bandage":{"subcategory":"face-unwell","a":"Face with Head-Bandage","b":"1F915","d":true,"e":true,"f":true,"h":true,"j":["face_with_head_bandage","injured","clumsy","bandage","hurt"],"k":[39,4],"o":1},"nauseated_face":{"subcategory":"face-unwell","a":"Nauseated Face","b":"1F922","d":true,"e":true,"f":true,"h":true,"j":["nauseated_face","face","vomit","gross","green","sick","throw up","ill"],"k":[40,16],"o":3},"face_vomiting":{"subcategory":"face-unwell","a":"Face with Open Mouth Vomiting","b":"1F92E","d":true,"e":true,"f":true,"h":true,"j":["face_vomiting","face","sick"],"k":[40,45],"n":["face_with_open_mouth_vomiting"],"o":5},"sneezing_face":{"subcategory":"face-unwell","a":"Sneezing Face","b":"1F927","d":true,"e":true,"f":true,"h":true,"j":["sneezing_face","face","gesundheit","sneeze","sick","allergy"],"k":[40,38],"o":3},"hot_face":{"subcategory":"face-unwell","a":"Overheated Face","b":"1F975","d":true,"e":true,"f":true,"h":true,"j":["hot_face","face","feverish","heat","red","sweating"],"k":[44,4],"o":11},"cold_face":{"subcategory":"face-unwell","a":"Freezing Face","b":"1F976","d":true,"e":true,"f":true,"h":true,"j":["cold_face","face","blue","freezing","frozen","frostbite","icicles"],"k":[44,5],"o":11},"woozy_face":{"subcategory":"face-unwell","a":"Face with Uneven Eyes and Wavy Mouth","b":"1F974","d":true,"e":true,"f":true,"h":true,"j":["woozy_face","face","dizzy","intoxicated","tipsy","wavy"],"k":[44,3],"o":11},"dizzy_face":{"subcategory":"face-unwell","a":"Dizzy Face","b":"1F635","d":true,"e":true,"f":true,"h":true,"j":["dizzy_face","spent","unconscious","xox","dizzy"],"k":[33,15],"o":0},"face_with_spiral_eyes":{"subcategory":"face-unwell","a":"Face with Spiral Eyes","b":"1F635-200D-1F4AB","d":true,"e":true,"f":true,"h":true,"j":["face with spiral eyes","sick","ill","confused","nauseous","nausea"],"k":[33,14],"o":13},"exploding_head":{"subcategory":"face-unwell","a":"Shocked Face with Exploding Head","b":"1F92F","d":true,"e":true,"f":true,"h":true,"j":["exploding_head","face","shocked","mind","blown"],"k":[40,46],"n":["shocked_face_with_exploding_head"],"o":5},"face_with_cowboy_hat":{"subcategory":"face-hat","a":"Face with Cowboy Hat","b":"1F920","d":true,"e":true,"f":true,"h":true,"j":["cowboy_hat_face","face","cowgirl","hat"],"k":[40,14],"o":3},"partying_face":{"subcategory":"face-hat","a":"Face with Party Horn and Party Hat","b":"1F973","d":true,"e":true,"f":true,"h":true,"j":["partying_face","face","celebration","woohoo"],"k":[44,2],"o":11},"disguised_face":{"subcategory":"face-hat","a":"Disguised Face","b":"1F978","d":true,"e":true,"f":true,"h":true,"j":["disguised face","pretent","brows","glasses","moustache"],"k":[44,12],"o":13},"sunglasses":{"subcategory":"face-glasses","a":"Smiling Face with Sunglasses","b":"1F60E","d":true,"e":true,"f":true,"h":true,"j":["smiling_face_with_sunglasses","face","cool","smile","summer","beach","sunglass"],"k":[32,35],"l":["8)"],"o":1},"nerd_face":{"subcategory":"face-glasses","a":"Nerd Face","b":"1F913","d":true,"e":true,"f":true,"h":true,"j":["nerd_face","face","nerdy","geek","dork"],"k":[39,2],"o":1},"face_with_monocle":{"subcategory":"face-glasses","a":"Face with Monocle","b":"1F9D0","d":true,"e":true,"f":true,"h":true,"j":["face_with_monocle","face","stuffy","wealthy"],"k":[47,13],"o":5},"confused":{"subcategory":"face-concerned","a":"Confused Face","b":"1F615","d":true,"e":true,"f":true,"h":true,"j":["confused_face","face","indifference","huh","weird","hmmm",":/"],"k":[32,42],"l":[":\\\\",":-\\\\",":/",":-/"],"o":1},"face_with_diagonal_mouth":{"subcategory":"face-concerned","a":"Face with Diagonal Mouth","b":"1FAE4","d":true,"e":true,"f":true,"h":true,"j":["face with diagonal mouth","skeptic","confuse","frustrated","indifferent"],"k":[55,34],"o":14},"worried":{"subcategory":"face-concerned","a":"Worried Face","b":"1F61F","d":true,"e":true,"f":true,"h":true,"j":["worried_face","face","concern","nervous",":("],"k":[32,52],"o":1},"slightly_frowning_face":{"subcategory":"face-concerned","a":"Slightly Frowning Face","b":"1F641","d":true,"e":true,"f":true,"h":true,"j":["slightly_frowning_face","face","frowning","disappointed","sad","upset"],"k":[33,28],"o":1},"white_frowning_face":{"subcategory":"face-concerned","a":"Frowning Face","b":"2639-FE0F","c":"2639","d":true,"e":true,"f":true,"h":true,"j":["frowning_face","face","sad","upset","frown"],"k":[57,34],"o":0},"open_mouth":{"subcategory":"face-concerned","a":"Face with Open Mouth","b":"1F62E","d":true,"e":true,"f":true,"h":true,"j":["face_with_open_mouth","face","surprise","impressed","wow","whoa",":O"],"k":[33,7],"l":[":o",":-o",":O",":-O"],"o":1},"hushed":{"subcategory":"face-concerned","a":"Hushed Face","b":"1F62F","d":true,"e":true,"f":true,"h":true,"j":["hushed_face","face","woo","shh"],"k":[33,8],"o":1},"astonished":{"subcategory":"face-concerned","a":"Astonished Face","b":"1F632","d":true,"e":true,"f":true,"h":true,"j":["astonished_face","face","xox","surprised","poisoned"],"k":[33,11],"o":0},"flushed":{"subcategory":"face-concerned","a":"Flushed Face","b":"1F633","d":true,"e":true,"f":true,"h":true,"j":["flushed_face","face","blush","shy","flattered"],"k":[33,12],"o":0},"pleading_face":{"subcategory":"face-concerned","a":"Face with Pleading Eyes","b":"1F97A","d":true,"e":true,"f":true,"h":true,"j":["pleading_face","face","begging","mercy","cry","tears","sad","grievance"],"k":[44,14],"o":11},"face_holding_back_tears":{"subcategory":"face-concerned","a":"Face Holding Back Tears","b":"1F979","d":true,"e":true,"f":true,"h":true,"j":["face holding back tears","touched","gratitude","cry"],"k":[44,13],"o":14},"frowning":{"subcategory":"face-concerned","a":"Frowning Face with Open Mouth","b":"1F626","d":true,"e":true,"f":true,"h":true,"j":["frowning_face_with_open_mouth","face","aw","what"],"k":[32,59],"o":1},"anguished":{"subcategory":"face-concerned","a":"Anguished Face","b":"1F627","d":true,"e":true,"f":true,"h":true,"j":["anguished_face","face","stunned","nervous"],"k":[32,60],"l":["D:"],"o":1},"fearful":{"subcategory":"face-concerned","a":"Fearful Face","b":"1F628","d":true,"e":true,"f":true,"h":true,"j":["fearful_face","face","scared","terrified","nervous"],"k":[33,0],"o":0},"cold_sweat":{"subcategory":"face-concerned","a":"Face with Open Mouth and Cold Sweat","b":"1F630","d":true,"e":true,"f":true,"h":true,"j":["anxious_face_with_sweat","face","nervous","sweat"],"k":[33,9],"o":0},"disappointed_relieved":{"subcategory":"face-concerned","a":"Disappointed but Relieved Face","b":"1F625","d":true,"e":true,"f":true,"h":true,"j":["sad_but_relieved_face","face","phew","sweat","nervous"],"k":[32,58],"o":0},"cry":{"subcategory":"face-concerned","a":"Crying Face","b":"1F622","d":true,"e":true,"f":true,"h":true,"j":["crying_face","face","tears","sad","depressed","upset",":'("],"k":[32,55],"l":[":'("],"m":":'(","o":0},"sob":{"subcategory":"face-concerned","a":"Loudly Crying Face","b":"1F62D","d":true,"e":true,"f":true,"h":true,"j":["loudly_crying_face","sobbing","face","cry","tears","sad","upset","depressed"],"k":[33,5],"m":":'(","o":0},"scream":{"subcategory":"face-concerned","a":"Face Screaming in Fear","b":"1F631","d":true,"e":true,"f":true,"h":true,"j":["face_screaming_in_fear","face","munch","scared","omg"],"k":[33,10],"o":0},"confounded":{"subcategory":"face-concerned","a":"Confounded Face","b":"1F616","d":true,"e":true,"f":true,"h":true,"j":["confounded_face","face","confused","sick","unwell","oops",":S"],"k":[32,43],"o":0},"persevere":{"subcategory":"face-concerned","a":"Persevering Face","b":"1F623","d":true,"e":true,"f":true,"h":true,"j":["persevering_face","face","sick","no","upset","oops"],"k":[32,56],"o":0},"disappointed":{"subcategory":"face-concerned","a":"Disappointed Face","b":"1F61E","d":true,"e":true,"f":true,"h":true,"j":["disappointed_face","face","sad","upset","depressed",":("],"k":[32,51],"l":["):",":(",":-("],"m":":(","o":0},"sweat":{"subcategory":"face-concerned","a":"Face with Cold Sweat","b":"1F613","d":true,"e":true,"f":true,"h":true,"j":["downcast_face_with_sweat","face","hot","sad","tired","exercise"],"k":[32,40],"o":0},"weary":{"subcategory":"face-concerned","a":"Weary Face","b":"1F629","d":true,"e":true,"f":true,"h":true,"j":["weary_face","face","tired","sleepy","sad","frustrated","upset"],"k":[33,1],"o":0},"tired_face":{"subcategory":"face-concerned","a":"Tired Face","b":"1F62B","d":true,"e":true,"f":true,"h":true,"j":["tired_face","sick","whine","upset","frustrated"],"k":[33,3],"o":0},"yawning_face":{"subcategory":"face-concerned","a":"Yawning Face","b":"1F971","d":true,"e":true,"f":true,"h":true,"j":["yawning_face","tired","sleepy"],"k":[44,0],"o":12},"triumph":{"subcategory":"face-negative","a":"Face with Look of Triumph","b":"1F624","d":true,"e":true,"f":true,"h":true,"j":["face_with_steam_from_nose","face","gas","phew","proud","pride","triumph"],"k":[32,57],"o":0},"rage":{"subcategory":"face-negative","a":"Pouting Face","b":"1F621","d":true,"e":true,"f":true,"h":true,"j":["pouting_face","angry","mad","hate","despise"],"k":[32,54],"o":0},"angry":{"subcategory":"face-negative","a":"Angry Face","b":"1F620","d":true,"e":true,"f":true,"h":true,"j":["angry_face","mad","face","annoyed","frustrated"],"k":[32,53],"l":[">:(",">:-("],"o":0},"face_with_symbols_on_mouth":{"subcategory":"face-negative","a":"Serious Face with Symbols Covering Mouth","b":"1F92C","d":true,"e":true,"f":true,"h":true,"j":["face_with_symbols_on_mouth","face","swearing","cursing","cussing","profanity","expletive"],"k":[40,43],"n":["serious_face_with_symbols_covering_mouth"],"o":5},"smiling_imp":{"subcategory":"face-negative","a":"Smiling Face with Horns","b":"1F608","d":true,"e":true,"f":true,"h":true,"j":["smiling_face_with_horns","devil","horns"],"k":[32,29],"o":1},"imp":{"subcategory":"face-negative","a":"Imp","b":"1F47F","d":true,"e":true,"f":true,"h":true,"j":["angry_face_with_horns","devil","angry","horns"],"k":[25,9],"o":0},"skull":{"subcategory":"face-negative","a":"Skull","b":"1F480","d":true,"e":true,"f":true,"h":true,"j":["skull","dead","skeleton","creepy","death","dead"],"k":[25,10],"o":0},"skull_and_crossbones":{"subcategory":"face-negative","a":"Skull and Crossbones","b":"2620-FE0F","c":"2620","d":true,"e":true,"f":true,"h":true,"j":["skull_and_crossbones","poison","danger","deadly","scary","death","pirate","evil"],"k":[57,26],"o":1},"hankey":{"subcategory":"face-costume","a":"Pile of Poo","b":"1F4A9","d":true,"e":true,"f":true,"h":true,"j":["pile_of_poo","hankey","shitface","fail","turd","shit"],"k":[27,57],"n":["poop","shit"],"o":0},"clown_face":{"subcategory":"face-costume","a":"Clown Face","b":"1F921","d":true,"e":true,"f":true,"h":true,"j":["clown_face","face"],"k":[40,15],"o":3},"japanese_ogre":{"subcategory":"face-costume","a":"Japanese Ogre","b":"1F479","d":true,"e":true,"f":true,"h":true,"j":["ogre","monster","red","mask","halloween","scary","creepy","devil","demon","japanese_ogre"],"k":[24,59],"o":0},"japanese_goblin":{"subcategory":"face-costume","a":"Japanese Goblin","b":"1F47A","d":true,"e":true,"f":true,"h":true,"j":["goblin","red","evil","mask","monster","scary","creepy","japanese_goblin"],"k":[24,60],"o":0},"ghost":{"subcategory":"face-costume","a":"Ghost","b":"1F47B","d":true,"e":true,"f":true,"h":true,"j":["ghost","halloween","spooky","scary"],"k":[25,0],"o":0},"alien":{"subcategory":"face-costume","a":"Extraterrestrial Alien","b":"1F47D","d":true,"e":true,"f":true,"h":true,"j":["alien","UFO","paul","weird","outer_space"],"k":[25,7],"o":0},"space_invader":{"subcategory":"face-costume","a":"Alien Monster","b":"1F47E","d":true,"e":true,"f":true,"h":true,"j":["alien_monster","game","arcade","play"],"k":[25,8],"o":0},"robot_face":{"subcategory":"face-costume","a":"Robot Face","b":"1F916","d":true,"e":true,"f":true,"h":true,"j":["robot","computer","machine","bot"],"k":[39,5],"o":1},"smiley_cat":{"subcategory":"cat-face","a":"Smiling Cat Face with Open Mouth","b":"1F63A","d":true,"e":true,"f":true,"h":true,"j":["grinning_cat","animal","cats","happy","smile"],"k":[33,21],"o":0},"smile_cat":{"subcategory":"cat-face","a":"Grinning Cat Face with Smiling Eyes","b":"1F638","d":true,"e":true,"f":true,"h":true,"j":["grinning_cat_with_smiling_eyes","animal","cats","smile"],"k":[33,19],"o":0},"joy_cat":{"subcategory":"cat-face","a":"Cat Face with Tears of Joy","b":"1F639","d":true,"e":true,"f":true,"h":true,"j":["cat_with_tears_of_joy","animal","cats","haha","happy","tears"],"k":[33,20],"o":0},"heart_eyes_cat":{"subcategory":"cat-face","a":"Smiling Cat Face with Heart-Shaped Eyes","b":"1F63B","d":true,"e":true,"f":true,"h":true,"j":["smiling_cat_with_heart_eyes","animal","love","like","affection","cats","valentines","heart"],"k":[33,22],"o":0},"smirk_cat":{"subcategory":"cat-face","a":"Cat Face with Wry Smile","b":"1F63C","d":true,"e":true,"f":true,"h":true,"j":["cat_with_wry_smile","animal","cats","smirk"],"k":[33,23],"o":0},"kissing_cat":{"subcategory":"cat-face","a":"Kissing Cat Face with Closed Eyes","b":"1F63D","d":true,"e":true,"f":true,"h":true,"j":["kissing_cat","animal","cats","kiss"],"k":[33,24],"o":0},"scream_cat":{"subcategory":"cat-face","a":"Weary Cat Face","b":"1F640","d":true,"e":true,"f":true,"h":true,"j":["weary_cat","animal","cats","munch","scared","scream"],"k":[33,27],"o":0},"crying_cat_face":{"subcategory":"cat-face","a":"Crying Cat Face","b":"1F63F","d":true,"e":true,"f":true,"h":true,"j":["crying_cat","animal","tears","weep","sad","cats","upset","cry"],"k":[33,26],"o":0},"pouting_cat":{"subcategory":"cat-face","a":"Pouting Cat Face","b":"1F63E","d":true,"e":true,"f":true,"h":true,"j":["pouting_cat","animal","cats"],"k":[33,25],"o":0},"see_no_evil":{"subcategory":"monkey-face","a":"See-No-Evil Monkey","b":"1F648","d":true,"e":true,"f":true,"h":true,"j":["see_no_evil_monkey","monkey","animal","nature","haha"],"k":[34,25],"o":0},"hear_no_evil":{"subcategory":"monkey-face","a":"Hear-No-Evil Monkey","b":"1F649","d":true,"e":true,"f":true,"h":true,"j":["hear_no_evil_monkey","animal","monkey","nature"],"k":[34,26],"o":0},"speak_no_evil":{"subcategory":"monkey-face","a":"Speak-No-Evil Monkey","b":"1F64A","d":true,"e":true,"f":true,"h":true,"j":["speak_no_evil_monkey","monkey","animal","nature","omg"],"k":[34,27],"o":0},"love_letter":{"subcategory":"heart","a":"Love Letter","b":"1F48C","d":true,"e":true,"f":true,"h":true,"j":["love_letter","email","like","affection","envelope","valentines"],"k":[26,39],"o":0},"cupid":{"subcategory":"heart","a":"Heart with Arrow","b":"1F498","d":true,"e":true,"f":true,"h":true,"j":["heart_with_arrow","love","like","heart","affection","valentines"],"k":[27,40],"o":0},"gift_heart":{"subcategory":"heart","a":"Heart with Ribbon","b":"1F49D","d":true,"e":true,"f":true,"h":true,"j":["heart_with_ribbon","love","valentines"],"k":[27,45],"o":0},"sparkling_heart":{"subcategory":"heart","a":"Sparkling Heart","b":"1F496","d":true,"e":true,"f":true,"h":true,"j":["sparkling_heart","love","like","affection","valentines"],"k":[27,38],"o":0},"heartpulse":{"subcategory":"heart","a":"Growing Heart","b":"1F497","d":true,"e":true,"f":true,"h":true,"j":["growing_heart","like","love","affection","valentines","pink"],"k":[27,39],"o":0},"heartbeat":{"subcategory":"heart","a":"Beating Heart","b":"1F493","d":true,"e":true,"f":true,"h":true,"j":["beating_heart","love","like","affection","valentines","pink","heart"],"k":[27,35],"o":0},"revolving_hearts":{"subcategory":"heart","a":"Revolving Hearts","b":"1F49E","d":true,"e":true,"f":true,"h":true,"j":["revolving_hearts","love","like","affection","valentines"],"k":[27,46],"o":0},"two_hearts":{"subcategory":"heart","a":"Two Hearts","b":"1F495","d":true,"e":true,"f":true,"h":true,"j":["two_hearts","love","like","affection","valentines","heart"],"k":[27,37],"o":0},"heart_decoration":{"subcategory":"heart","a":"Heart Decoration","b":"1F49F","d":true,"e":true,"f":true,"h":true,"j":["heart_decoration","purple-square","love","like"],"k":[27,47],"o":0},"heavy_heart_exclamation_mark_ornament":{"subcategory":"heart","a":"Heart Exclamation","b":"2763-FE0F","c":"2763","d":true,"e":true,"f":true,"h":true,"j":["heart_exclamation","decoration","love"],"k":[59,38],"o":1},"broken_heart":{"subcategory":"heart","a":"Broken Heart","b":"1F494","d":true,"e":true,"f":true,"h":true,"j":["broken_heart","sad","sorry","break","heart","heartbreak"],"k":[27,36],"l":["</3"],"m":"</3","o":0},"heart_on_fire":{"subcategory":"heart","a":"Heart on Fire","b":"2764-FE0F-200D-1F525","c":"2764-200D-1F525","d":true,"e":true,"f":true,"h":true,"j":["heart on fire","passionate","enthusiastic"],"k":[59,39],"o":13},"mending_heart":{"subcategory":"heart","a":"Mending Heart","b":"2764-FE0F-200D-1FA79","c":"2764-200D-1FA79","d":true,"e":true,"f":true,"h":true,"j":["mending heart","broken heart","bandage","wounded"],"k":[59,40],"o":13},"heart":{"subcategory":"heart","a":"Heavy Black Heart","b":"2764-FE0F","c":"2764","d":true,"e":true,"f":true,"h":true,"j":["red_heart","love","like","valentines"],"k":[59,41],"l":["<3"],"m":"<3","o":0},"pink_heart":{"subcategory":"heart","a":"Pink Heart","b":"1FA77","d":true,"e":true,"f":false,"h":false,"j":["pink heart","valentines"],"k":[53,55],"o":15},"orange_heart":{"subcategory":"heart","a":"Orange Heart","b":"1F9E1","d":true,"e":true,"f":true,"h":true,"j":["orange_heart","love","like","affection","valentines"],"k":[53,17],"o":5},"yellow_heart":{"subcategory":"heart","a":"Yellow Heart","b":"1F49B","d":true,"e":true,"f":true,"h":true,"j":["yellow_heart","love","like","affection","valentines"],"k":[27,43],"m":"<3","o":0},"green_heart":{"subcategory":"heart","a":"Green Heart","b":"1F49A","d":true,"e":true,"f":true,"h":true,"j":["green_heart","love","like","affection","valentines"],"k":[27,42],"m":"<3","o":0},"blue_heart":{"subcategory":"heart","a":"Blue Heart","b":"1F499","d":true,"e":true,"f":true,"h":true,"j":["blue_heart","love","like","affection","valentines"],"k":[27,41],"m":"<3","o":0},"light_blue_heart":{"subcategory":"heart","a":"Light Blue Heart","b":"1FA75","d":true,"e":true,"f":false,"h":false,"j":["light blue heart","ice","baby blue"],"k":[53,53],"o":15},"purple_heart":{"subcategory":"heart","a":"Purple Heart","b":"1F49C","d":true,"e":true,"f":true,"h":true,"j":["purple_heart","love","like","affection","valentines"],"k":[27,44],"m":"<3","o":0},"brown_heart":{"subcategory":"heart","a":"Brown Heart","b":"1F90E","d":true,"e":true,"f":true,"h":true,"j":["brown_heart","coffee"],"k":[38,53],"o":12},"black_heart":{"subcategory":"heart","a":"Black Heart","b":"1F5A4","d":true,"e":true,"f":true,"h":true,"j":["black_heart","evil"],"k":[31,56],"o":3},"grey_heart":{"subcategory":"heart","a":"Grey Heart","b":"1FA76","d":true,"e":true,"f":false,"h":false,"j":["grey heart","silver","monochrome"],"k":[53,54],"o":15},"white_heart":{"subcategory":"heart","a":"White Heart","b":"1F90D","d":true,"e":true,"f":true,"h":true,"j":["white_heart","pure"],"k":[38,52],"o":12},"kiss":{"subcategory":"emotion","a":"Kiss Mark","b":"1F48B","d":true,"e":true,"f":true,"h":true,"j":["kiss_mark","face","lips","love","like","affection","valentines"],"k":[26,38],"o":0},"anger":{"subcategory":"emotion","a":"Anger Symbol","b":"1F4A2","d":true,"e":true,"f":true,"h":true,"j":["anger_symbol","angry","mad"],"k":[27,50],"o":0},"boom":{"subcategory":"emotion","a":"Collision Symbol","b":"1F4A5","d":true,"e":true,"f":true,"h":true,"j":["collision","bomb","explode","explosion","blown"],"k":[27,53],"n":["collision"],"o":0},"dizzy":{"subcategory":"emotion","a":"Dizzy Symbol","b":"1F4AB","d":true,"e":true,"f":true,"h":true,"j":["dizzy","star","sparkle","shoot","magic"],"k":[28,3],"o":0},"sweat_drops":{"subcategory":"emotion","a":"Splashing Sweat Symbol","b":"1F4A6","d":true,"e":true,"f":true,"h":true,"j":["sweat_droplets","water","drip","oops"],"k":[27,54],"o":0},"dash":{"subcategory":"emotion","a":"Dash Symbol","b":"1F4A8","d":true,"e":true,"f":true,"h":true,"j":["dashing_away","wind","air","fast","shoo","fart","smoke","puff"],"k":[27,56],"o":0},"hole":{"subcategory":"emotion","a":"Hole","b":"1F573-FE0F","c":"1F573","d":true,"e":true,"f":true,"h":true,"j":["hole","embarrassing"],"k":[30,59],"o":0},"speech_balloon":{"subcategory":"emotion","a":"Speech Balloon","b":"1F4AC","d":true,"e":true,"f":true,"h":true,"j":["speech_balloon","bubble","words","message","talk","chatting"],"k":[28,4],"o":0},"eye-in-speech-bubble":{"subcategory":"emotion","a":"Eye in Speech Bubble","b":"1F441-FE0F-200D-1F5E8-FE0F","d":true,"e":true,"f":true,"h":false,"j":["eye_in_speech_bubble","info"],"k":[11,54],"o":2},"left_speech_bubble":{"subcategory":"emotion","a":"Left Speech Bubble","b":"1F5E8-FE0F","c":"1F5E8","d":true,"e":true,"f":true,"h":true,"j":["left_speech_bubble","words","message","talk","chatting"],"k":[32,12],"o":2},"right_anger_bubble":{"subcategory":"emotion","a":"Right Anger Bubble","b":"1F5EF-FE0F","c":"1F5EF","d":true,"e":true,"f":true,"h":true,"j":["right_anger_bubble","caption","speech","thinking","mad"],"k":[32,13],"o":0},"thought_balloon":{"subcategory":"emotion","a":"Thought Balloon","b":"1F4AD","d":true,"e":true,"f":true,"h":true,"j":["thought_balloon","bubble","cloud","speech","thinking","dream"],"k":[28,5],"o":1},"zzz":{"subcategory":"emotion","a":"Sleeping Symbol","b":"1F4A4","d":true,"e":true,"f":true,"h":true,"j":["zzz","sleepy","tired","dream"],"k":[27,52],"o":0},"wave":{"subcategory":"hand-fingers-open","skin_variations":{"1F3FB":{"unified":"1F44B-1F3FB","non_qualified":null,"image":"1f44b-1f3fb.png","sheet_x":12,"sheet_y":40,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F44B-1F3FC","non_qualified":null,"image":"1f44b-1f3fc.png","sheet_x":12,"sheet_y":41,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F44B-1F3FD","non_qualified":null,"image":"1f44b-1f3fd.png","sheet_x":12,"sheet_y":42,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F44B-1F3FE","non_qualified":null,"image":"1f44b-1f3fe.png","sheet_x":12,"sheet_y":43,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F44B-1F3FF","non_qualified":null,"image":"1f44b-1f3ff.png","sheet_x":12,"sheet_y":44,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Waving Hand Sign","b":"1F44B","d":true,"e":true,"f":true,"h":true,"j":["waving_hand","wave","hands","gesture","goodbye","solong","farewell","hello","hi","palm"],"k":[12,39],"o":0},"raised_back_of_hand":{"subcategory":"hand-fingers-open","skin_variations":{"1F3FB":{"unified":"1F91A-1F3FB","non_qualified":null,"image":"1f91a-1f3fb.png","sheet_x":39,"sheet_y":20,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F91A-1F3FC","non_qualified":null,"image":"1f91a-1f3fc.png","sheet_x":39,"sheet_y":21,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F91A-1F3FD","non_qualified":null,"image":"1f91a-1f3fd.png","sheet_x":39,"sheet_y":22,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F91A-1F3FE","non_qualified":null,"image":"1f91a-1f3fe.png","sheet_x":39,"sheet_y":23,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F91A-1F3FF","non_qualified":null,"image":"1f91a-1f3ff.png","sheet_x":39,"sheet_y":24,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Raised Back of Hand","b":"1F91A","d":true,"e":true,"f":true,"h":true,"j":["raised_back_of_hand","fingers","raised","backhand"],"k":[39,19],"o":3},"raised_hand_with_fingers_splayed":{"subcategory":"hand-fingers-open","skin_variations":{"1F3FB":{"unified":"1F590-1F3FB","non_qualified":null,"image":"1f590-1f3fb.png","sheet_x":31,"sheet_y":39,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F590-1F3FC","non_qualified":null,"image":"1f590-1f3fc.png","sheet_x":31,"sheet_y":40,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F590-1F3FD","non_qualified":null,"image":"1f590-1f3fd.png","sheet_x":31,"sheet_y":41,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F590-1F3FE","non_qualified":null,"image":"1f590-1f3fe.png","sheet_x":31,"sheet_y":42,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F590-1F3FF","non_qualified":null,"image":"1f590-1f3ff.png","sheet_x":31,"sheet_y":43,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Hand with Fingers Splayed","b":"1F590-FE0F","c":"1F590","d":true,"e":true,"f":true,"h":true,"j":["hand_with_fingers_splayed","hand","fingers","palm"],"k":[31,38],"o":0},"hand":{"subcategory":"hand-fingers-open","skin_variations":{"1F3FB":{"unified":"270B-1F3FB","non_qualified":null,"image":"270b-1f3fb.png","sheet_x":59,"sheet_y":4,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"270B-1F3FC","non_qualified":null,"image":"270b-1f3fc.png","sheet_x":59,"sheet_y":5,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"270B-1F3FD","non_qualified":null,"image":"270b-1f3fd.png","sheet_x":59,"sheet_y":6,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"270B-1F3FE","non_qualified":null,"image":"270b-1f3fe.png","sheet_x":59,"sheet_y":7,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"270B-1F3FF","non_qualified":null,"image":"270b-1f3ff.png","sheet_x":59,"sheet_y":8,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Raised Hand","b":"270B","d":true,"e":true,"f":true,"h":true,"j":["raised_hand","fingers","stop","highfive","palm","ban"],"k":[59,3],"n":["raised_hand"],"o":0},"spock-hand":{"subcategory":"hand-fingers-open","skin_variations":{"1F3FB":{"unified":"1F596-1F3FB","non_qualified":null,"image":"1f596-1f3fb.png","sheet_x":31,"sheet_y":51,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F596-1F3FC","non_qualified":null,"image":"1f596-1f3fc.png","sheet_x":31,"sheet_y":52,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F596-1F3FD","non_qualified":null,"image":"1f596-1f3fd.png","sheet_x":31,"sheet_y":53,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F596-1F3FE","non_qualified":null,"image":"1f596-1f3fe.png","sheet_x":31,"sheet_y":54,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F596-1F3FF","non_qualified":null,"image":"1f596-1f3ff.png","sheet_x":31,"sheet_y":55,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Raised Hand with Part Between Middle and Ring Fingers","b":"1F596","d":true,"e":true,"f":true,"h":true,"j":["vulcan_salute","hand","fingers","spock","star trek"],"k":[31,50],"o":1},"rightwards_hand":{"subcategory":"hand-fingers-open","skin_variations":{"1F3FB":{"unified":"1FAF1-1F3FB","non_qualified":null,"image":"1faf1-1f3fb.png","sheet_x":55,"sheet_y":46,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1FAF1-1F3FC","non_qualified":null,"image":"1faf1-1f3fc.png","sheet_x":55,"sheet_y":47,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1FAF1-1F3FD","non_qualified":null,"image":"1faf1-1f3fd.png","sheet_x":55,"sheet_y":48,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1FAF1-1F3FE","non_qualified":null,"image":"1faf1-1f3fe.png","sheet_x":55,"sheet_y":49,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1FAF1-1F3FF","non_qualified":null,"image":"1faf1-1f3ff.png","sheet_x":55,"sheet_y":50,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Rightwards Hand","b":"1FAF1","d":true,"e":true,"f":true,"h":true,"j":["rightwards hand","palm","offer"],"k":[55,45],"o":14},"leftwards_hand":{"subcategory":"hand-fingers-open","skin_variations":{"1F3FB":{"unified":"1FAF2-1F3FB","non_qualified":null,"image":"1faf2-1f3fb.png","sheet_x":55,"sheet_y":52,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1FAF2-1F3FC","non_qualified":null,"image":"1faf2-1f3fc.png","sheet_x":55,"sheet_y":53,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1FAF2-1F3FD","non_qualified":null,"image":"1faf2-1f3fd.png","sheet_x":55,"sheet_y":54,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1FAF2-1F3FE","non_qualified":null,"image":"1faf2-1f3fe.png","sheet_x":55,"sheet_y":55,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1FAF2-1F3FF","non_qualified":null,"image":"1faf2-1f3ff.png","sheet_x":55,"sheet_y":56,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Leftwards Hand","b":"1FAF2","d":true,"e":true,"f":true,"h":true,"j":["leftwards hand","palm","offer"],"k":[55,51],"o":14},"palm_down_hand":{"subcategory":"hand-fingers-open","skin_variations":{"1F3FB":{"unified":"1FAF3-1F3FB","non_qualified":null,"image":"1faf3-1f3fb.png","sheet_x":55,"sheet_y":58,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1FAF3-1F3FC","non_qualified":null,"image":"1faf3-1f3fc.png","sheet_x":55,"sheet_y":59,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1FAF3-1F3FD","non_qualified":null,"image":"1faf3-1f3fd.png","sheet_x":55,"sheet_y":60,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1FAF3-1F3FE","non_qualified":null,"image":"1faf3-1f3fe.png","sheet_x":56,"sheet_y":0,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1FAF3-1F3FF","non_qualified":null,"image":"1faf3-1f3ff.png","sheet_x":56,"sheet_y":1,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Palm Down Hand","b":"1FAF3","d":true,"e":true,"f":true,"h":true,"j":["palm down hand","palm","drop"],"k":[55,57],"o":14},"palm_up_hand":{"subcategory":"hand-fingers-open","skin_variations":{"1F3FB":{"unified":"1FAF4-1F3FB","non_qualified":null,"image":"1faf4-1f3fb.png","sheet_x":56,"sheet_y":3,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1FAF4-1F3FC","non_qualified":null,"image":"1faf4-1f3fc.png","sheet_x":56,"sheet_y":4,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1FAF4-1F3FD","non_qualified":null,"image":"1faf4-1f3fd.png","sheet_x":56,"sheet_y":5,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1FAF4-1F3FE","non_qualified":null,"image":"1faf4-1f3fe.png","sheet_x":56,"sheet_y":6,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1FAF4-1F3FF","non_qualified":null,"image":"1faf4-1f3ff.png","sheet_x":56,"sheet_y":7,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Palm Up Hand","b":"1FAF4","d":true,"e":true,"f":true,"h":true,"j":["palm up hand","lift","offer","demand"],"k":[56,2],"o":14},"leftwards_pushing_hand":{"subcategory":"hand-fingers-open","skin_variations":{"1F3FB":{"unified":"1FAF7-1F3FB","non_qualified":null,"image":"1faf7-1f3fb.png","sheet_x":56,"sheet_y":21,"added_in":"15.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":false,"has_img_facebook":false},"1F3FC":{"unified":"1FAF7-1F3FC","non_qualified":null,"image":"1faf7-1f3fc.png","sheet_x":56,"sheet_y":22,"added_in":"15.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":false,"has_img_facebook":false},"1F3FD":{"unified":"1FAF7-1F3FD","non_qualified":null,"image":"1faf7-1f3fd.png","sheet_x":56,"sheet_y":23,"added_in":"15.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":false,"has_img_facebook":false},"1F3FE":{"unified":"1FAF7-1F3FE","non_qualified":null,"image":"1faf7-1f3fe.png","sheet_x":56,"sheet_y":24,"added_in":"15.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":false,"has_img_facebook":false},"1F3FF":{"unified":"1FAF7-1F3FF","non_qualified":null,"image":"1faf7-1f3ff.png","sheet_x":56,"sheet_y":25,"added_in":"15.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":false,"has_img_facebook":false}},"a":"Leftwards Pushing Hand","b":"1FAF7","d":true,"e":true,"f":false,"h":false,"j":["leftwards pushing hand","highfive","pressing","stop"],"k":[56,20],"o":15},"rightwards_pushing_hand":{"subcategory":"hand-fingers-open","skin_variations":{"1F3FB":{"unified":"1FAF8-1F3FB","non_qualified":null,"image":"1faf8-1f3fb.png","sheet_x":56,"sheet_y":27,"added_in":"15.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":false,"has_img_facebook":false},"1F3FC":{"unified":"1FAF8-1F3FC","non_qualified":null,"image":"1faf8-1f3fc.png","sheet_x":56,"sheet_y":28,"added_in":"15.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":false,"has_img_facebook":false},"1F3FD":{"unified":"1FAF8-1F3FD","non_qualified":null,"image":"1faf8-1f3fd.png","sheet_x":56,"sheet_y":29,"added_in":"15.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":false,"has_img_facebook":false},"1F3FE":{"unified":"1FAF8-1F3FE","non_qualified":null,"image":"1faf8-1f3fe.png","sheet_x":56,"sheet_y":30,"added_in":"15.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":false,"has_img_facebook":false},"1F3FF":{"unified":"1FAF8-1F3FF","non_qualified":null,"image":"1faf8-1f3ff.png","sheet_x":56,"sheet_y":31,"added_in":"15.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":false,"has_img_facebook":false}},"a":"Rightwards Pushing Hand","b":"1FAF8","d":true,"e":true,"f":false,"h":false,"j":["rightwards pushing hand","highfive","pressing","stop"],"k":[56,26],"o":15},"ok_hand":{"subcategory":"hand-fingers-partial","skin_variations":{"1F3FB":{"unified":"1F44C-1F3FB","non_qualified":null,"image":"1f44c-1f3fb.png","sheet_x":12,"sheet_y":46,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F44C-1F3FC","non_qualified":null,"image":"1f44c-1f3fc.png","sheet_x":12,"sheet_y":47,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F44C-1F3FD","non_qualified":null,"image":"1f44c-1f3fd.png","sheet_x":12,"sheet_y":48,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F44C-1F3FE","non_qualified":null,"image":"1f44c-1f3fe.png","sheet_x":12,"sheet_y":49,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F44C-1F3FF","non_qualified":null,"image":"1f44c-1f3ff.png","sheet_x":12,"sheet_y":50,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Ok Hand Sign","b":"1F44C","d":true,"e":true,"f":true,"h":true,"j":["ok_hand","fingers","limbs","perfect","ok","okay"],"k":[12,45],"o":0},"pinched_fingers":{"subcategory":"hand-fingers-partial","skin_variations":{"1F3FB":{"unified":"1F90C-1F3FB","non_qualified":null,"image":"1f90c-1f3fb.png","sheet_x":38,"sheet_y":47,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F90C-1F3FC","non_qualified":null,"image":"1f90c-1f3fc.png","sheet_x":38,"sheet_y":48,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F90C-1F3FD","non_qualified":null,"image":"1f90c-1f3fd.png","sheet_x":38,"sheet_y":49,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F90C-1F3FE","non_qualified":null,"image":"1f90c-1f3fe.png","sheet_x":38,"sheet_y":50,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F90C-1F3FF","non_qualified":null,"image":"1f90c-1f3ff.png","sheet_x":38,"sheet_y":51,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Pinched Fingers","b":"1F90C","d":true,"e":true,"f":true,"h":true,"j":["pinched fingers","size","tiny","small"],"k":[38,46],"o":13},"pinching_hand":{"subcategory":"hand-fingers-partial","skin_variations":{"1F3FB":{"unified":"1F90F-1F3FB","non_qualified":null,"image":"1f90f-1f3fb.png","sheet_x":38,"sheet_y":55,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F90F-1F3FC","non_qualified":null,"image":"1f90f-1f3fc.png","sheet_x":38,"sheet_y":56,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F90F-1F3FD","non_qualified":null,"image":"1f90f-1f3fd.png","sheet_x":38,"sheet_y":57,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F90F-1F3FE","non_qualified":null,"image":"1f90f-1f3fe.png","sheet_x":38,"sheet_y":58,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F90F-1F3FF","non_qualified":null,"image":"1f90f-1f3ff.png","sheet_x":38,"sheet_y":59,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Pinching Hand","b":"1F90F","d":true,"e":true,"f":true,"h":true,"j":["pinching_hand","tiny","small","size"],"k":[38,54],"o":12},"v":{"subcategory":"hand-fingers-partial","skin_variations":{"1F3FB":{"unified":"270C-1F3FB","non_qualified":null,"image":"270c-1f3fb.png","sheet_x":59,"sheet_y":10,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"270C-1F3FC","non_qualified":null,"image":"270c-1f3fc.png","sheet_x":59,"sheet_y":11,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"270C-1F3FD","non_qualified":null,"image":"270c-1f3fd.png","sheet_x":59,"sheet_y":12,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"270C-1F3FE","non_qualified":null,"image":"270c-1f3fe.png","sheet_x":59,"sheet_y":13,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"270C-1F3FF","non_qualified":null,"image":"270c-1f3ff.png","sheet_x":59,"sheet_y":14,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Victory Hand","b":"270C-FE0F","c":"270C","d":true,"e":true,"f":true,"h":true,"j":["victory_hand","fingers","ohyeah","hand","peace","victory","two"],"k":[59,9],"o":0},"crossed_fingers":{"subcategory":"hand-fingers-partial","skin_variations":{"1F3FB":{"unified":"1F91E-1F3FB","non_qualified":null,"image":"1f91e-1f3fb.png","sheet_x":40,"sheet_y":3,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F91E-1F3FC","non_qualified":null,"image":"1f91e-1f3fc.png","sheet_x":40,"sheet_y":4,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F91E-1F3FD","non_qualified":null,"image":"1f91e-1f3fd.png","sheet_x":40,"sheet_y":5,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F91E-1F3FE","non_qualified":null,"image":"1f91e-1f3fe.png","sheet_x":40,"sheet_y":6,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F91E-1F3FF","non_qualified":null,"image":"1f91e-1f3ff.png","sheet_x":40,"sheet_y":7,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Hand with Index and Middle Fingers Crossed","b":"1F91E","d":true,"e":true,"f":true,"h":true,"j":["crossed_fingers","good","lucky"],"k":[40,2],"n":["hand_with_index_and_middle_fingers_crossed"],"o":3},"hand_with_index_finger_and_thumb_crossed":{"subcategory":"hand-fingers-partial","skin_variations":{"1F3FB":{"unified":"1FAF0-1F3FB","non_qualified":null,"image":"1faf0-1f3fb.png","sheet_x":55,"sheet_y":40,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1FAF0-1F3FC","non_qualified":null,"image":"1faf0-1f3fc.png","sheet_x":55,"sheet_y":41,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1FAF0-1F3FD","non_qualified":null,"image":"1faf0-1f3fd.png","sheet_x":55,"sheet_y":42,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1FAF0-1F3FE","non_qualified":null,"image":"1faf0-1f3fe.png","sheet_x":55,"sheet_y":43,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1FAF0-1F3FF","non_qualified":null,"image":"1faf0-1f3ff.png","sheet_x":55,"sheet_y":44,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Hand with Index Finger and Thumb Crossed","b":"1FAF0","d":true,"e":true,"f":true,"h":true,"j":["hand with index finger and thumb crossed","heart","love","money","expensive"],"k":[55,39],"o":14},"i_love_you_hand_sign":{"subcategory":"hand-fingers-partial","skin_variations":{"1F3FB":{"unified":"1F91F-1F3FB","non_qualified":null,"image":"1f91f-1f3fb.png","sheet_x":40,"sheet_y":9,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F91F-1F3FC","non_qualified":null,"image":"1f91f-1f3fc.png","sheet_x":40,"sheet_y":10,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F91F-1F3FD","non_qualified":null,"image":"1f91f-1f3fd.png","sheet_x":40,"sheet_y":11,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F91F-1F3FE","non_qualified":null,"image":"1f91f-1f3fe.png","sheet_x":40,"sheet_y":12,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F91F-1F3FF","non_qualified":null,"image":"1f91f-1f3ff.png","sheet_x":40,"sheet_y":13,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"I Love You Hand Sign","b":"1F91F","d":true,"e":true,"f":true,"h":true,"j":["love_you_gesture","hand","fingers","gesture"],"k":[40,8],"o":5},"the_horns":{"subcategory":"hand-fingers-partial","skin_variations":{"1F3FB":{"unified":"1F918-1F3FB","non_qualified":null,"image":"1f918-1f3fb.png","sheet_x":39,"sheet_y":8,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F918-1F3FC","non_qualified":null,"image":"1f918-1f3fc.png","sheet_x":39,"sheet_y":9,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F918-1F3FD","non_qualified":null,"image":"1f918-1f3fd.png","sheet_x":39,"sheet_y":10,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F918-1F3FE","non_qualified":null,"image":"1f918-1f3fe.png","sheet_x":39,"sheet_y":11,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F918-1F3FF","non_qualified":null,"image":"1f918-1f3ff.png","sheet_x":39,"sheet_y":12,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Sign of the Horns","b":"1F918","d":true,"e":true,"f":true,"h":true,"j":["sign_of_the_horns","hand","fingers","evil_eye","sign_of_horns","rock_on"],"k":[39,7],"n":["sign_of_the_horns"],"o":1},"call_me_hand":{"subcategory":"hand-fingers-partial","skin_variations":{"1F3FB":{"unified":"1F919-1F3FB","non_qualified":null,"image":"1f919-1f3fb.png","sheet_x":39,"sheet_y":14,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F919-1F3FC","non_qualified":null,"image":"1f919-1f3fc.png","sheet_x":39,"sheet_y":15,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F919-1F3FD","non_qualified":null,"image":"1f919-1f3fd.png","sheet_x":39,"sheet_y":16,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F919-1F3FE","non_qualified":null,"image":"1f919-1f3fe.png","sheet_x":39,"sheet_y":17,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F919-1F3FF","non_qualified":null,"image":"1f919-1f3ff.png","sheet_x":39,"sheet_y":18,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Call Me Hand","b":"1F919","d":true,"e":true,"f":true,"h":true,"j":["call_me_hand","hands","gesture","shaka"],"k":[39,13],"o":3},"point_left":{"subcategory":"hand-single-finger","skin_variations":{"1F3FB":{"unified":"1F448-1F3FB","non_qualified":null,"image":"1f448-1f3fb.png","sheet_x":12,"sheet_y":22,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F448-1F3FC","non_qualified":null,"image":"1f448-1f3fc.png","sheet_x":12,"sheet_y":23,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F448-1F3FD","non_qualified":null,"image":"1f448-1f3fd.png","sheet_x":12,"sheet_y":24,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F448-1F3FE","non_qualified":null,"image":"1f448-1f3fe.png","sheet_x":12,"sheet_y":25,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F448-1F3FF","non_qualified":null,"image":"1f448-1f3ff.png","sheet_x":12,"sheet_y":26,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"White Left Pointing Backhand Index","b":"1F448","d":true,"e":true,"f":true,"h":true,"j":["backhand_index_pointing_left","direction","fingers","hand","left"],"k":[12,21],"o":0},"point_right":{"subcategory":"hand-single-finger","skin_variations":{"1F3FB":{"unified":"1F449-1F3FB","non_qualified":null,"image":"1f449-1f3fb.png","sheet_x":12,"sheet_y":28,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F449-1F3FC","non_qualified":null,"image":"1f449-1f3fc.png","sheet_x":12,"sheet_y":29,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F449-1F3FD","non_qualified":null,"image":"1f449-1f3fd.png","sheet_x":12,"sheet_y":30,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F449-1F3FE","non_qualified":null,"image":"1f449-1f3fe.png","sheet_x":12,"sheet_y":31,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F449-1F3FF","non_qualified":null,"image":"1f449-1f3ff.png","sheet_x":12,"sheet_y":32,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"White Right Pointing Backhand Index","b":"1F449","d":true,"e":true,"f":true,"h":true,"j":["backhand_index_pointing_right","fingers","hand","direction","right"],"k":[12,27],"o":0},"point_up_2":{"subcategory":"hand-single-finger","skin_variations":{"1F3FB":{"unified":"1F446-1F3FB","non_qualified":null,"image":"1f446-1f3fb.png","sheet_x":12,"sheet_y":10,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F446-1F3FC","non_qualified":null,"image":"1f446-1f3fc.png","sheet_x":12,"sheet_y":11,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F446-1F3FD","non_qualified":null,"image":"1f446-1f3fd.png","sheet_x":12,"sheet_y":12,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F446-1F3FE","non_qualified":null,"image":"1f446-1f3fe.png","sheet_x":12,"sheet_y":13,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F446-1F3FF","non_qualified":null,"image":"1f446-1f3ff.png","sheet_x":12,"sheet_y":14,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"White Up Pointing Backhand Index","b":"1F446","d":true,"e":true,"f":true,"h":true,"j":["backhand_index_pointing_up","fingers","hand","direction","up"],"k":[12,9],"o":0},"middle_finger":{"subcategory":"hand-single-finger","skin_variations":{"1F3FB":{"unified":"1F595-1F3FB","non_qualified":null,"image":"1f595-1f3fb.png","sheet_x":31,"sheet_y":45,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F595-1F3FC","non_qualified":null,"image":"1f595-1f3fc.png","sheet_x":31,"sheet_y":46,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F595-1F3FD","non_qualified":null,"image":"1f595-1f3fd.png","sheet_x":31,"sheet_y":47,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F595-1F3FE","non_qualified":null,"image":"1f595-1f3fe.png","sheet_x":31,"sheet_y":48,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F595-1F3FF","non_qualified":null,"image":"1f595-1f3ff.png","sheet_x":31,"sheet_y":49,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Reversed Hand with Middle Finger Extended","b":"1F595","d":true,"e":true,"f":true,"h":true,"j":["middle_finger","hand","fingers","rude","middle","flipping"],"k":[31,44],"n":["reversed_hand_with_middle_finger_extended"],"o":1},"point_down":{"subcategory":"hand-single-finger","skin_variations":{"1F3FB":{"unified":"1F447-1F3FB","non_qualified":null,"image":"1f447-1f3fb.png","sheet_x":12,"sheet_y":16,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F447-1F3FC","non_qualified":null,"image":"1f447-1f3fc.png","sheet_x":12,"sheet_y":17,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F447-1F3FD","non_qualified":null,"image":"1f447-1f3fd.png","sheet_x":12,"sheet_y":18,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F447-1F3FE","non_qualified":null,"image":"1f447-1f3fe.png","sheet_x":12,"sheet_y":19,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F447-1F3FF","non_qualified":null,"image":"1f447-1f3ff.png","sheet_x":12,"sheet_y":20,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"White Down Pointing Backhand Index","b":"1F447","d":true,"e":true,"f":true,"h":true,"j":["backhand_index_pointing_down","fingers","hand","direction","down"],"k":[12,15],"o":0},"point_up":{"subcategory":"hand-single-finger","skin_variations":{"1F3FB":{"unified":"261D-1F3FB","non_qualified":null,"image":"261d-1f3fb.png","sheet_x":57,"sheet_y":21,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"261D-1F3FC","non_qualified":null,"image":"261d-1f3fc.png","sheet_x":57,"sheet_y":22,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"261D-1F3FD","non_qualified":null,"image":"261d-1f3fd.png","sheet_x":57,"sheet_y":23,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"261D-1F3FE","non_qualified":null,"image":"261d-1f3fe.png","sheet_x":57,"sheet_y":24,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"261D-1F3FF","non_qualified":null,"image":"261d-1f3ff.png","sheet_x":57,"sheet_y":25,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"White Up Pointing Index","b":"261D-FE0F","c":"261D","d":true,"e":true,"f":true,"h":true,"j":["index_pointing_up","hand","fingers","direction","up"],"k":[57,20],"o":0},"index_pointing_at_the_viewer":{"subcategory":"hand-single-finger","skin_variations":{"1F3FB":{"unified":"1FAF5-1F3FB","non_qualified":null,"image":"1faf5-1f3fb.png","sheet_x":56,"sheet_y":9,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1FAF5-1F3FC","non_qualified":null,"image":"1faf5-1f3fc.png","sheet_x":56,"sheet_y":10,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1FAF5-1F3FD","non_qualified":null,"image":"1faf5-1f3fd.png","sheet_x":56,"sheet_y":11,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1FAF5-1F3FE","non_qualified":null,"image":"1faf5-1f3fe.png","sheet_x":56,"sheet_y":12,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1FAF5-1F3FF","non_qualified":null,"image":"1faf5-1f3ff.png","sheet_x":56,"sheet_y":13,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Index Pointing at the Viewer","b":"1FAF5","d":true,"e":true,"f":true,"h":true,"j":["index pointing at the viewer","you","recruit"],"k":[56,8],"o":14},"+1":{"subcategory":"hand-fingers-closed","skin_variations":{"1F3FB":{"unified":"1F44D-1F3FB","non_qualified":null,"image":"1f44d-1f3fb.png","sheet_x":12,"sheet_y":52,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F44D-1F3FC","non_qualified":null,"image":"1f44d-1f3fc.png","sheet_x":12,"sheet_y":53,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F44D-1F3FD","non_qualified":null,"image":"1f44d-1f3fd.png","sheet_x":12,"sheet_y":54,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F44D-1F3FE","non_qualified":null,"image":"1f44d-1f3fe.png","sheet_x":12,"sheet_y":55,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F44D-1F3FF","non_qualified":null,"image":"1f44d-1f3ff.png","sheet_x":12,"sheet_y":56,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Thumbs Up Sign","b":"1F44D","d":true,"e":true,"f":true,"h":true,"j":["thumbs_up","thumbsup","yes","awesome","good","agree","accept","cool","hand","like","+1"],"k":[12,51],"n":["thumbsup"],"o":0},"-1":{"subcategory":"hand-fingers-closed","skin_variations":{"1F3FB":{"unified":"1F44E-1F3FB","non_qualified":null,"image":"1f44e-1f3fb.png","sheet_x":12,"sheet_y":58,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F44E-1F3FC","non_qualified":null,"image":"1f44e-1f3fc.png","sheet_x":12,"sheet_y":59,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F44E-1F3FD","non_qualified":null,"image":"1f44e-1f3fd.png","sheet_x":12,"sheet_y":60,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F44E-1F3FE","non_qualified":null,"image":"1f44e-1f3fe.png","sheet_x":13,"sheet_y":0,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F44E-1F3FF","non_qualified":null,"image":"1f44e-1f3ff.png","sheet_x":13,"sheet_y":1,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Thumbs Down Sign","b":"1F44E","d":true,"e":true,"f":true,"h":true,"j":["thumbs_down","thumbsdown","no","dislike","hand","-1"],"k":[12,57],"n":["thumbsdown"],"o":0},"fist":{"subcategory":"hand-fingers-closed","skin_variations":{"1F3FB":{"unified":"270A-1F3FB","non_qualified":null,"image":"270a-1f3fb.png","sheet_x":58,"sheet_y":59,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"270A-1F3FC","non_qualified":null,"image":"270a-1f3fc.png","sheet_x":58,"sheet_y":60,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"270A-1F3FD","non_qualified":null,"image":"270a-1f3fd.png","sheet_x":59,"sheet_y":0,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"270A-1F3FE","non_qualified":null,"image":"270a-1f3fe.png","sheet_x":59,"sheet_y":1,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"270A-1F3FF","non_qualified":null,"image":"270a-1f3ff.png","sheet_x":59,"sheet_y":2,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Raised Fist","b":"270A","d":true,"e":true,"f":true,"h":true,"j":["raised_fist","fingers","hand","grasp"],"k":[58,58],"o":0},"facepunch":{"subcategory":"hand-fingers-closed","skin_variations":{"1F3FB":{"unified":"1F44A-1F3FB","non_qualified":null,"image":"1f44a-1f3fb.png","sheet_x":12,"sheet_y":34,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F44A-1F3FC","non_qualified":null,"image":"1f44a-1f3fc.png","sheet_x":12,"sheet_y":35,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F44A-1F3FD","non_qualified":null,"image":"1f44a-1f3fd.png","sheet_x":12,"sheet_y":36,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F44A-1F3FE","non_qualified":null,"image":"1f44a-1f3fe.png","sheet_x":12,"sheet_y":37,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F44A-1F3FF","non_qualified":null,"image":"1f44a-1f3ff.png","sheet_x":12,"sheet_y":38,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Fisted Hand Sign","b":"1F44A","d":true,"e":true,"f":true,"h":true,"j":["oncoming_fist","angry","violence","fist","hit","attack","hand"],"k":[12,33],"n":["punch"],"o":0},"left-facing_fist":{"subcategory":"hand-fingers-closed","skin_variations":{"1F3FB":{"unified":"1F91B-1F3FB","non_qualified":null,"image":"1f91b-1f3fb.png","sheet_x":39,"sheet_y":26,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F91B-1F3FC","non_qualified":null,"image":"1f91b-1f3fc.png","sheet_x":39,"sheet_y":27,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F91B-1F3FD","non_qualified":null,"image":"1f91b-1f3fd.png","sheet_x":39,"sheet_y":28,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F91B-1F3FE","non_qualified":null,"image":"1f91b-1f3fe.png","sheet_x":39,"sheet_y":29,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F91B-1F3FF","non_qualified":null,"image":"1f91b-1f3ff.png","sheet_x":39,"sheet_y":30,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Left-Facing Fist","b":"1F91B","d":true,"e":true,"f":true,"h":true,"j":["left_facing_fist","hand","fistbump"],"k":[39,25],"o":3},"right-facing_fist":{"subcategory":"hand-fingers-closed","skin_variations":{"1F3FB":{"unified":"1F91C-1F3FB","non_qualified":null,"image":"1f91c-1f3fb.png","sheet_x":39,"sheet_y":32,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F91C-1F3FC","non_qualified":null,"image":"1f91c-1f3fc.png","sheet_x":39,"sheet_y":33,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F91C-1F3FD","non_qualified":null,"image":"1f91c-1f3fd.png","sheet_x":39,"sheet_y":34,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F91C-1F3FE","non_qualified":null,"image":"1f91c-1f3fe.png","sheet_x":39,"sheet_y":35,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F91C-1F3FF","non_qualified":null,"image":"1f91c-1f3ff.png","sheet_x":39,"sheet_y":36,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Right-Facing Fist","b":"1F91C","d":true,"e":true,"f":true,"h":true,"j":["right_facing_fist","hand","fistbump"],"k":[39,31],"o":3},"clap":{"subcategory":"hands","skin_variations":{"1F3FB":{"unified":"1F44F-1F3FB","non_qualified":null,"image":"1f44f-1f3fb.png","sheet_x":13,"sheet_y":3,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F44F-1F3FC","non_qualified":null,"image":"1f44f-1f3fc.png","sheet_x":13,"sheet_y":4,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F44F-1F3FD","non_qualified":null,"image":"1f44f-1f3fd.png","sheet_x":13,"sheet_y":5,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F44F-1F3FE","non_qualified":null,"image":"1f44f-1f3fe.png","sheet_x":13,"sheet_y":6,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F44F-1F3FF","non_qualified":null,"image":"1f44f-1f3ff.png","sheet_x":13,"sheet_y":7,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Clapping Hands Sign","b":"1F44F","d":true,"e":true,"f":true,"h":true,"j":["clapping_hands","hands","praise","applause","congrats","yay"],"k":[13,2],"o":0},"raised_hands":{"subcategory":"hands","skin_variations":{"1F3FB":{"unified":"1F64C-1F3FB","non_qualified":null,"image":"1f64c-1f3fb.png","sheet_x":34,"sheet_y":47,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F64C-1F3FC","non_qualified":null,"image":"1f64c-1f3fc.png","sheet_x":34,"sheet_y":48,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F64C-1F3FD","non_qualified":null,"image":"1f64c-1f3fd.png","sheet_x":34,"sheet_y":49,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F64C-1F3FE","non_qualified":null,"image":"1f64c-1f3fe.png","sheet_x":34,"sheet_y":50,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F64C-1F3FF","non_qualified":null,"image":"1f64c-1f3ff.png","sheet_x":34,"sheet_y":51,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Person Raising Both Hands in Celebration","b":"1F64C","d":true,"e":true,"f":true,"h":true,"j":["raising_hands","gesture","hooray","yea","celebration","hands"],"k":[34,46],"o":0},"heart_hands":{"subcategory":"hands","skin_variations":{"1F3FB":{"unified":"1FAF6-1F3FB","non_qualified":null,"image":"1faf6-1f3fb.png","sheet_x":56,"sheet_y":15,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1FAF6-1F3FC","non_qualified":null,"image":"1faf6-1f3fc.png","sheet_x":56,"sheet_y":16,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1FAF6-1F3FD","non_qualified":null,"image":"1faf6-1f3fd.png","sheet_x":56,"sheet_y":17,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1FAF6-1F3FE","non_qualified":null,"image":"1faf6-1f3fe.png","sheet_x":56,"sheet_y":18,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1FAF6-1F3FF","non_qualified":null,"image":"1faf6-1f3ff.png","sheet_x":56,"sheet_y":19,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Heart Hands","b":"1FAF6","d":true,"e":true,"f":true,"h":true,"j":["heart hands","love","appreciation","support"],"k":[56,14],"o":14},"open_hands":{"subcategory":"hands","skin_variations":{"1F3FB":{"unified":"1F450-1F3FB","non_qualified":null,"image":"1f450-1f3fb.png","sheet_x":13,"sheet_y":9,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F450-1F3FC","non_qualified":null,"image":"1f450-1f3fc.png","sheet_x":13,"sheet_y":10,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F450-1F3FD","non_qualified":null,"image":"1f450-1f3fd.png","sheet_x":13,"sheet_y":11,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F450-1F3FE","non_qualified":null,"image":"1f450-1f3fe.png","sheet_x":13,"sheet_y":12,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F450-1F3FF","non_qualified":null,"image":"1f450-1f3ff.png","sheet_x":13,"sheet_y":13,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Open Hands Sign","b":"1F450","d":true,"e":true,"f":true,"h":true,"j":["open_hands","fingers","butterfly","hands","open"],"k":[13,8],"o":0},"palms_up_together":{"subcategory":"hands","skin_variations":{"1F3FB":{"unified":"1F932-1F3FB","non_qualified":null,"image":"1f932-1f3fb.png","sheet_x":40,"sheet_y":60,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F932-1F3FC","non_qualified":null,"image":"1f932-1f3fc.png","sheet_x":41,"sheet_y":0,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F932-1F3FD","non_qualified":null,"image":"1f932-1f3fd.png","sheet_x":41,"sheet_y":1,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F932-1F3FE","non_qualified":null,"image":"1f932-1f3fe.png","sheet_x":41,"sheet_y":2,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F932-1F3FF","non_qualified":null,"image":"1f932-1f3ff.png","sheet_x":41,"sheet_y":3,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Palms Up Together","b":"1F932","d":true,"e":true,"f":true,"h":true,"j":["palms_up_together","hands","gesture","cupped","prayer"],"k":[40,59],"o":5},"handshake":{"subcategory":"hands","skin_variations":{"1F3FB":{"unified":"1F91D-1F3FB","non_qualified":null,"image":"1f91d-1f3fb.png","sheet_x":39,"sheet_y":38,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F91D-1F3FC","non_qualified":null,"image":"1f91d-1f3fc.png","sheet_x":39,"sheet_y":39,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F91D-1F3FD","non_qualified":null,"image":"1f91d-1f3fd.png","sheet_x":39,"sheet_y":40,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F91D-1F3FE","non_qualified":null,"image":"1f91d-1f3fe.png","sheet_x":39,"sheet_y":41,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F91D-1F3FF","non_qualified":null,"image":"1f91d-1f3ff.png","sheet_x":39,"sheet_y":42,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FC":{"unified":"1FAF1-1F3FB-200D-1FAF2-1F3FC","non_qualified":null,"image":"1faf1-1f3fb-200d-1faf2-1f3fc.png","sheet_x":39,"sheet_y":43,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FD":{"unified":"1FAF1-1F3FB-200D-1FAF2-1F3FD","non_qualified":null,"image":"1faf1-1f3fb-200d-1faf2-1f3fd.png","sheet_x":39,"sheet_y":44,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FE":{"unified":"1FAF1-1F3FB-200D-1FAF2-1F3FE","non_qualified":null,"image":"1faf1-1f3fb-200d-1faf2-1f3fe.png","sheet_x":39,"sheet_y":45,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FF":{"unified":"1FAF1-1F3FB-200D-1FAF2-1F3FF","non_qualified":null,"image":"1faf1-1f3fb-200d-1faf2-1f3ff.png","sheet_x":39,"sheet_y":46,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FB":{"unified":"1FAF1-1F3FC-200D-1FAF2-1F3FB","non_qualified":null,"image":"1faf1-1f3fc-200d-1faf2-1f3fb.png","sheet_x":39,"sheet_y":47,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FD":{"unified":"1FAF1-1F3FC-200D-1FAF2-1F3FD","non_qualified":null,"image":"1faf1-1f3fc-200d-1faf2-1f3fd.png","sheet_x":39,"sheet_y":48,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FE":{"unified":"1FAF1-1F3FC-200D-1FAF2-1F3FE","non_qualified":null,"image":"1faf1-1f3fc-200d-1faf2-1f3fe.png","sheet_x":39,"sheet_y":49,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FF":{"unified":"1FAF1-1F3FC-200D-1FAF2-1F3FF","non_qualified":null,"image":"1faf1-1f3fc-200d-1faf2-1f3ff.png","sheet_x":39,"sheet_y":50,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FB":{"unified":"1FAF1-1F3FD-200D-1FAF2-1F3FB","non_qualified":null,"image":"1faf1-1f3fd-200d-1faf2-1f3fb.png","sheet_x":39,"sheet_y":51,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FC":{"unified":"1FAF1-1F3FD-200D-1FAF2-1F3FC","non_qualified":null,"image":"1faf1-1f3fd-200d-1faf2-1f3fc.png","sheet_x":39,"sheet_y":52,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FE":{"unified":"1FAF1-1F3FD-200D-1FAF2-1F3FE","non_qualified":null,"image":"1faf1-1f3fd-200d-1faf2-1f3fe.png","sheet_x":39,"sheet_y":53,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FF":{"unified":"1FAF1-1F3FD-200D-1FAF2-1F3FF","non_qualified":null,"image":"1faf1-1f3fd-200d-1faf2-1f3ff.png","sheet_x":39,"sheet_y":54,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FB":{"unified":"1FAF1-1F3FE-200D-1FAF2-1F3FB","non_qualified":null,"image":"1faf1-1f3fe-200d-1faf2-1f3fb.png","sheet_x":39,"sheet_y":55,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FC":{"unified":"1FAF1-1F3FE-200D-1FAF2-1F3FC","non_qualified":null,"image":"1faf1-1f3fe-200d-1faf2-1f3fc.png","sheet_x":39,"sheet_y":56,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FD":{"unified":"1FAF1-1F3FE-200D-1FAF2-1F3FD","non_qualified":null,"image":"1faf1-1f3fe-200d-1faf2-1f3fd.png","sheet_x":39,"sheet_y":57,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FF":{"unified":"1FAF1-1F3FE-200D-1FAF2-1F3FF","non_qualified":null,"image":"1faf1-1f3fe-200d-1faf2-1f3ff.png","sheet_x":39,"sheet_y":58,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FB":{"unified":"1FAF1-1F3FF-200D-1FAF2-1F3FB","non_qualified":null,"image":"1faf1-1f3ff-200d-1faf2-1f3fb.png","sheet_x":39,"sheet_y":59,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FC":{"unified":"1FAF1-1F3FF-200D-1FAF2-1F3FC","non_qualified":null,"image":"1faf1-1f3ff-200d-1faf2-1f3fc.png","sheet_x":39,"sheet_y":60,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FD":{"unified":"1FAF1-1F3FF-200D-1FAF2-1F3FD","non_qualified":null,"image":"1faf1-1f3ff-200d-1faf2-1f3fd.png","sheet_x":40,"sheet_y":0,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FE":{"unified":"1FAF1-1F3FF-200D-1FAF2-1F3FE","non_qualified":null,"image":"1faf1-1f3ff-200d-1faf2-1f3fe.png","sheet_x":40,"sheet_y":1,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Handshake","b":"1F91D","d":true,"e":true,"f":true,"h":true,"j":["handshake","agreement","shake"],"k":[39,37],"o":3},"pray":{"subcategory":"hands","skin_variations":{"1F3FB":{"unified":"1F64F-1F3FB","non_qualified":null,"image":"1f64f-1f3fb.png","sheet_x":35,"sheet_y":28,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F64F-1F3FC","non_qualified":null,"image":"1f64f-1f3fc.png","sheet_x":35,"sheet_y":29,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F64F-1F3FD","non_qualified":null,"image":"1f64f-1f3fd.png","sheet_x":35,"sheet_y":30,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F64F-1F3FE","non_qualified":null,"image":"1f64f-1f3fe.png","sheet_x":35,"sheet_y":31,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F64F-1F3FF","non_qualified":null,"image":"1f64f-1f3ff.png","sheet_x":35,"sheet_y":32,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Person with Folded Hands","b":"1F64F","d":true,"e":true,"f":true,"h":true,"j":["folded_hands","please","hope","wish","namaste","highfive","pray","thank you","thanks","appreciate"],"k":[35,27],"o":0},"writing_hand":{"subcategory":"hand-prop","skin_variations":{"1F3FB":{"unified":"270D-1F3FB","non_qualified":null,"image":"270d-1f3fb.png","sheet_x":59,"sheet_y":16,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"270D-1F3FC","non_qualified":null,"image":"270d-1f3fc.png","sheet_x":59,"sheet_y":17,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"270D-1F3FD","non_qualified":null,"image":"270d-1f3fd.png","sheet_x":59,"sheet_y":18,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"270D-1F3FE","non_qualified":null,"image":"270d-1f3fe.png","sheet_x":59,"sheet_y":19,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"270D-1F3FF","non_qualified":null,"image":"270d-1f3ff.png","sheet_x":59,"sheet_y":20,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Writing Hand","b":"270D-FE0F","c":"270D","d":true,"e":true,"f":true,"h":true,"j":["writing_hand","lower_left_ballpoint_pen","stationery","write","compose"],"k":[59,15],"o":0},"nail_care":{"subcategory":"hand-prop","skin_variations":{"1F3FB":{"unified":"1F485-1F3FB","non_qualified":null,"image":"1f485-1f3fb.png","sheet_x":25,"sheet_y":55,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F485-1F3FC","non_qualified":null,"image":"1f485-1f3fc.png","sheet_x":25,"sheet_y":56,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F485-1F3FD","non_qualified":null,"image":"1f485-1f3fd.png","sheet_x":25,"sheet_y":57,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F485-1F3FE","non_qualified":null,"image":"1f485-1f3fe.png","sheet_x":25,"sheet_y":58,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F485-1F3FF","non_qualified":null,"image":"1f485-1f3ff.png","sheet_x":25,"sheet_y":59,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Nail Polish","b":"1F485","d":true,"e":true,"f":true,"h":true,"j":["nail_polish","nail_care","beauty","manicure","finger","fashion","nail","slay"],"k":[25,54],"o":0},"selfie":{"subcategory":"hand-prop","skin_variations":{"1F3FB":{"unified":"1F933-1F3FB","non_qualified":null,"image":"1f933-1f3fb.png","sheet_x":41,"sheet_y":5,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F933-1F3FC","non_qualified":null,"image":"1f933-1f3fc.png","sheet_x":41,"sheet_y":6,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F933-1F3FD","non_qualified":null,"image":"1f933-1f3fd.png","sheet_x":41,"sheet_y":7,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F933-1F3FE","non_qualified":null,"image":"1f933-1f3fe.png","sheet_x":41,"sheet_y":8,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F933-1F3FF","non_qualified":null,"image":"1f933-1f3ff.png","sheet_x":41,"sheet_y":9,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Selfie","b":"1F933","d":true,"e":true,"f":true,"h":true,"j":["selfie","camera","phone"],"k":[41,4],"o":3},"muscle":{"subcategory":"body-parts","skin_variations":{"1F3FB":{"unified":"1F4AA-1F3FB","non_qualified":null,"image":"1f4aa-1f3fb.png","sheet_x":27,"sheet_y":59,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F4AA-1F3FC","non_qualified":null,"image":"1f4aa-1f3fc.png","sheet_x":27,"sheet_y":60,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F4AA-1F3FD","non_qualified":null,"image":"1f4aa-1f3fd.png","sheet_x":28,"sheet_y":0,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F4AA-1F3FE","non_qualified":null,"image":"1f4aa-1f3fe.png","sheet_x":28,"sheet_y":1,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F4AA-1F3FF","non_qualified":null,"image":"1f4aa-1f3ff.png","sheet_x":28,"sheet_y":2,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Flexed Biceps","b":"1F4AA","d":true,"e":true,"f":true,"h":true,"j":["flexed_biceps","arm","flex","hand","summer","strong","biceps"],"k":[27,58],"o":0},"mechanical_arm":{"subcategory":"body-parts","a":"Mechanical Arm","b":"1F9BE","d":true,"e":true,"f":true,"h":true,"j":["mechanical_arm","accessibility"],"k":[46,5],"o":12},"mechanical_leg":{"subcategory":"body-parts","a":"Mechanical Leg","b":"1F9BF","d":true,"e":true,"f":true,"h":true,"j":["mechanical_leg","accessibility"],"k":[46,6],"o":12},"leg":{"subcategory":"body-parts","skin_variations":{"1F3FB":{"unified":"1F9B5-1F3FB","non_qualified":null,"image":"1f9b5-1f3fb.png","sheet_x":45,"sheet_y":9,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9B5-1F3FC","non_qualified":null,"image":"1f9b5-1f3fc.png","sheet_x":45,"sheet_y":10,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9B5-1F3FD","non_qualified":null,"image":"1f9b5-1f3fd.png","sheet_x":45,"sheet_y":11,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9B5-1F3FE","non_qualified":null,"image":"1f9b5-1f3fe.png","sheet_x":45,"sheet_y":12,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9B5-1F3FF","non_qualified":null,"image":"1f9b5-1f3ff.png","sheet_x":45,"sheet_y":13,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Leg","b":"1F9B5","d":true,"e":true,"f":true,"h":true,"j":["leg","kick","limb"],"k":[45,8],"o":11},"foot":{"subcategory":"body-parts","skin_variations":{"1F3FB":{"unified":"1F9B6-1F3FB","non_qualified":null,"image":"1f9b6-1f3fb.png","sheet_x":45,"sheet_y":15,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9B6-1F3FC","non_qualified":null,"image":"1f9b6-1f3fc.png","sheet_x":45,"sheet_y":16,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9B6-1F3FD","non_qualified":null,"image":"1f9b6-1f3fd.png","sheet_x":45,"sheet_y":17,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9B6-1F3FE","non_qualified":null,"image":"1f9b6-1f3fe.png","sheet_x":45,"sheet_y":18,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9B6-1F3FF","non_qualified":null,"image":"1f9b6-1f3ff.png","sheet_x":45,"sheet_y":19,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Foot","b":"1F9B6","d":true,"e":true,"f":true,"h":true,"j":["foot","kick","stomp"],"k":[45,14],"o":11},"ear":{"subcategory":"body-parts","skin_variations":{"1F3FB":{"unified":"1F442-1F3FB","non_qualified":null,"image":"1f442-1f3fb.png","sheet_x":11,"sheet_y":57,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F442-1F3FC","non_qualified":null,"image":"1f442-1f3fc.png","sheet_x":11,"sheet_y":58,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F442-1F3FD","non_qualified":null,"image":"1f442-1f3fd.png","sheet_x":11,"sheet_y":59,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F442-1F3FE","non_qualified":null,"image":"1f442-1f3fe.png","sheet_x":11,"sheet_y":60,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F442-1F3FF","non_qualified":null,"image":"1f442-1f3ff.png","sheet_x":12,"sheet_y":0,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Ear","b":"1F442","d":true,"e":true,"f":true,"h":true,"j":["ear","face","hear","sound","listen"],"k":[11,56],"o":0},"ear_with_hearing_aid":{"subcategory":"body-parts","skin_variations":{"1F3FB":{"unified":"1F9BB-1F3FB","non_qualified":null,"image":"1f9bb-1f3fb.png","sheet_x":45,"sheet_y":59,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9BB-1F3FC","non_qualified":null,"image":"1f9bb-1f3fc.png","sheet_x":45,"sheet_y":60,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9BB-1F3FD","non_qualified":null,"image":"1f9bb-1f3fd.png","sheet_x":46,"sheet_y":0,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9BB-1F3FE","non_qualified":null,"image":"1f9bb-1f3fe.png","sheet_x":46,"sheet_y":1,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9BB-1F3FF","non_qualified":null,"image":"1f9bb-1f3ff.png","sheet_x":46,"sheet_y":2,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Ear with Hearing Aid","b":"1F9BB","d":true,"e":true,"f":true,"h":true,"j":["ear_with_hearing_aid","accessibility"],"k":[45,58],"o":12},"nose":{"subcategory":"body-parts","skin_variations":{"1F3FB":{"unified":"1F443-1F3FB","non_qualified":null,"image":"1f443-1f3fb.png","sheet_x":12,"sheet_y":2,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F443-1F3FC","non_qualified":null,"image":"1f443-1f3fc.png","sheet_x":12,"sheet_y":3,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F443-1F3FD","non_qualified":null,"image":"1f443-1f3fd.png","sheet_x":12,"sheet_y":4,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F443-1F3FE","non_qualified":null,"image":"1f443-1f3fe.png","sheet_x":12,"sheet_y":5,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F443-1F3FF","non_qualified":null,"image":"1f443-1f3ff.png","sheet_x":12,"sheet_y":6,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Nose","b":"1F443","d":true,"e":true,"f":true,"h":true,"j":["nose","smell","sniff"],"k":[12,1],"o":0},"brain":{"subcategory":"body-parts","a":"Brain","b":"1F9E0","d":true,"e":true,"f":true,"h":true,"j":["brain","smart","intelligent"],"k":[53,16],"o":5},"anatomical_heart":{"subcategory":"body-parts","a":"Anatomical Heart","b":"1FAC0","d":true,"e":true,"f":true,"h":true,"j":["anatomical heart","health","heartbeat"],"k":[54,56],"o":13},"lungs":{"subcategory":"body-parts","a":"Lungs","b":"1FAC1","d":true,"e":true,"f":true,"h":true,"j":["lungs","breathe"],"k":[54,57],"o":13},"tooth":{"subcategory":"body-parts","a":"Tooth","b":"1F9B7","d":true,"e":true,"f":true,"h":true,"j":["tooth","teeth","dentist"],"k":[45,20],"o":11},"bone":{"subcategory":"body-parts","a":"Bone","b":"1F9B4","d":true,"e":true,"f":true,"h":true,"j":["bone","skeleton"],"k":[45,7],"o":11},"eyes":{"subcategory":"body-parts","a":"Eyes","b":"1F440","d":true,"e":true,"f":true,"h":true,"j":["eyes","look","watch","stalk","peek","see"],"k":[11,53],"o":0},"eye":{"subcategory":"body-parts","a":"Eye","b":"1F441-FE0F","c":"1F441","d":true,"e":true,"f":true,"h":true,"j":["eye","face","look","see","watch","stare"],"k":[11,55],"o":0},"tongue":{"subcategory":"body-parts","a":"Tongue","b":"1F445","d":true,"e":true,"f":true,"h":true,"j":["tongue","mouth","playful"],"k":[12,8],"o":0},"lips":{"subcategory":"body-parts","a":"Mouth","b":"1F444","d":true,"e":true,"f":true,"h":true,"j":["mouth","kiss"],"k":[12,7],"o":0},"biting_lip":{"subcategory":"body-parts","a":"Biting Lip","b":"1FAE6","d":true,"e":true,"f":true,"h":true,"j":["biting lip","flirt","sexy","pain","worry"],"k":[55,36],"o":14},"baby":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F476-1F3FB","non_qualified":null,"image":"1f476-1f3fb.png","sheet_x":24,"sheet_y":30,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F476-1F3FC","non_qualified":null,"image":"1f476-1f3fc.png","sheet_x":24,"sheet_y":31,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F476-1F3FD","non_qualified":null,"image":"1f476-1f3fd.png","sheet_x":24,"sheet_y":32,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F476-1F3FE","non_qualified":null,"image":"1f476-1f3fe.png","sheet_x":24,"sheet_y":33,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F476-1F3FF","non_qualified":null,"image":"1f476-1f3ff.png","sheet_x":24,"sheet_y":34,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Baby","b":"1F476","d":true,"e":true,"f":true,"h":true,"j":["baby","child","boy","girl","toddler"],"k":[24,29],"o":0},"child":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F9D2-1F3FB","non_qualified":null,"image":"1f9d2-1f3fb.png","sheet_x":50,"sheet_y":14,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D2-1F3FC","non_qualified":null,"image":"1f9d2-1f3fc.png","sheet_x":50,"sheet_y":15,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D2-1F3FD","non_qualified":null,"image":"1f9d2-1f3fd.png","sheet_x":50,"sheet_y":16,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D2-1F3FE","non_qualified":null,"image":"1f9d2-1f3fe.png","sheet_x":50,"sheet_y":17,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D2-1F3FF","non_qualified":null,"image":"1f9d2-1f3ff.png","sheet_x":50,"sheet_y":18,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Child","b":"1F9D2","d":true,"e":true,"f":true,"h":true,"j":["child","gender-neutral","young"],"k":[50,13],"o":5},"boy":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F466-1F3FB","non_qualified":null,"image":"1f466-1f3fb.png","sheet_x":13,"sheet_y":36,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F466-1F3FC","non_qualified":null,"image":"1f466-1f3fc.png","sheet_x":13,"sheet_y":37,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F466-1F3FD","non_qualified":null,"image":"1f466-1f3fd.png","sheet_x":13,"sheet_y":38,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F466-1F3FE","non_qualified":null,"image":"1f466-1f3fe.png","sheet_x":13,"sheet_y":39,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F466-1F3FF","non_qualified":null,"image":"1f466-1f3ff.png","sheet_x":13,"sheet_y":40,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Boy","b":"1F466","d":true,"e":true,"f":true,"h":true,"j":["boy","man","male","guy","teenager"],"k":[13,35],"o":0},"girl":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F467-1F3FB","non_qualified":null,"image":"1f467-1f3fb.png","sheet_x":13,"sheet_y":42,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F467-1F3FC","non_qualified":null,"image":"1f467-1f3fc.png","sheet_x":13,"sheet_y":43,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F467-1F3FD","non_qualified":null,"image":"1f467-1f3fd.png","sheet_x":13,"sheet_y":44,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F467-1F3FE","non_qualified":null,"image":"1f467-1f3fe.png","sheet_x":13,"sheet_y":45,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F467-1F3FF","non_qualified":null,"image":"1f467-1f3ff.png","sheet_x":13,"sheet_y":46,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Girl","b":"1F467","d":true,"e":true,"f":true,"h":true,"j":["girl","female","woman","teenager"],"k":[13,41],"o":0},"adult":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F9D1-1F3FB","non_qualified":null,"image":"1f9d1-1f3fb.png","sheet_x":50,"sheet_y":8,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D1-1F3FC","non_qualified":null,"image":"1f9d1-1f3fc.png","sheet_x":50,"sheet_y":9,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D1-1F3FD","non_qualified":null,"image":"1f9d1-1f3fd.png","sheet_x":50,"sheet_y":10,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D1-1F3FE","non_qualified":null,"image":"1f9d1-1f3fe.png","sheet_x":50,"sheet_y":11,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D1-1F3FF","non_qualified":null,"image":"1f9d1-1f3ff.png","sheet_x":50,"sheet_y":12,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Adult","b":"1F9D1","d":true,"e":true,"f":true,"h":true,"j":["person","gender-neutral"],"k":[50,7],"o":5},"person_with_blond_hair":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F471-1F3FB","non_qualified":null,"image":"1f471-1f3fb.png","sheet_x":23,"sheet_y":49,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F471-1F3FC","non_qualified":null,"image":"1f471-1f3fc.png","sheet_x":23,"sheet_y":50,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F471-1F3FD","non_qualified":null,"image":"1f471-1f3fd.png","sheet_x":23,"sheet_y":51,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F471-1F3FE","non_qualified":null,"image":"1f471-1f3fe.png","sheet_x":23,"sheet_y":52,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F471-1F3FF","non_qualified":null,"image":"1f471-1f3ff.png","sheet_x":23,"sheet_y":53,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoleted_by":"1F471-200D-2642-FE0F","a":"Person with Blond Hair","b":"1F471","d":true,"e":true,"f":true,"h":true,"j":["person_blond_hair","hairstyle"],"k":[23,48],"o":0},"man":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F468-1F3FB","non_qualified":null,"image":"1f468-1f3fb.png","sheet_x":17,"sheet_y":15,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F468-1F3FC","non_qualified":null,"image":"1f468-1f3fc.png","sheet_x":17,"sheet_y":16,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F468-1F3FD","non_qualified":null,"image":"1f468-1f3fd.png","sheet_x":17,"sheet_y":17,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F468-1F3FE","non_qualified":null,"image":"1f468-1f3fe.png","sheet_x":17,"sheet_y":18,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F468-1F3FF","non_qualified":null,"image":"1f468-1f3ff.png","sheet_x":17,"sheet_y":19,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man","b":"1F468","d":true,"e":true,"f":true,"h":true,"j":["man","mustache","father","dad","guy","classy","sir","moustache"],"k":[17,14],"o":0},"bearded_person":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F9D4-1F3FB","non_qualified":null,"image":"1f9d4-1f3fb.png","sheet_x":50,"sheet_y":38,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D4-1F3FC","non_qualified":null,"image":"1f9d4-1f3fc.png","sheet_x":50,"sheet_y":39,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D4-1F3FD","non_qualified":null,"image":"1f9d4-1f3fd.png","sheet_x":50,"sheet_y":40,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D4-1F3FE","non_qualified":null,"image":"1f9d4-1f3fe.png","sheet_x":50,"sheet_y":41,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D4-1F3FF","non_qualified":null,"image":"1f9d4-1f3ff.png","sheet_x":50,"sheet_y":42,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Bearded Person","b":"1F9D4","d":true,"e":true,"f":true,"h":true,"j":["man_beard","person","bewhiskered"],"k":[50,37],"o":5},"man_with_beard":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F9D4-1F3FB-200D-2642-FE0F","non_qualified":"1F9D4-1F3FB-200D-2642","image":"1f9d4-1f3fb-200d-2642-fe0f.png","sheet_x":50,"sheet_y":32,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D4-1F3FC-200D-2642-FE0F","non_qualified":"1F9D4-1F3FC-200D-2642","image":"1f9d4-1f3fc-200d-2642-fe0f.png","sheet_x":50,"sheet_y":33,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D4-1F3FD-200D-2642-FE0F","non_qualified":"1F9D4-1F3FD-200D-2642","image":"1f9d4-1f3fd-200d-2642-fe0f.png","sheet_x":50,"sheet_y":34,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D4-1F3FE-200D-2642-FE0F","non_qualified":"1F9D4-1F3FE-200D-2642","image":"1f9d4-1f3fe-200d-2642-fe0f.png","sheet_x":50,"sheet_y":35,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D4-1F3FF-200D-2642-FE0F","non_qualified":"1F9D4-1F3FF-200D-2642","image":"1f9d4-1f3ff-200d-2642-fe0f.png","sheet_x":50,"sheet_y":36,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man: Beard","b":"1F9D4-200D-2642-FE0F","c":"1F9D4-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man beard","facial hair"],"k":[50,31],"o":13},"woman_with_beard":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F9D4-1F3FB-200D-2640-FE0F","non_qualified":"1F9D4-1F3FB-200D-2640","image":"1f9d4-1f3fb-200d-2640-fe0f.png","sheet_x":50,"sheet_y":26,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D4-1F3FC-200D-2640-FE0F","non_qualified":"1F9D4-1F3FC-200D-2640","image":"1f9d4-1f3fc-200d-2640-fe0f.png","sheet_x":50,"sheet_y":27,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D4-1F3FD-200D-2640-FE0F","non_qualified":"1F9D4-1F3FD-200D-2640","image":"1f9d4-1f3fd-200d-2640-fe0f.png","sheet_x":50,"sheet_y":28,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D4-1F3FE-200D-2640-FE0F","non_qualified":"1F9D4-1F3FE-200D-2640","image":"1f9d4-1f3fe-200d-2640-fe0f.png","sheet_x":50,"sheet_y":29,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D4-1F3FF-200D-2640-FE0F","non_qualified":"1F9D4-1F3FF-200D-2640","image":"1f9d4-1f3ff-200d-2640-fe0f.png","sheet_x":50,"sheet_y":30,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman: Beard","b":"1F9D4-200D-2640-FE0F","c":"1F9D4-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman beard","facial hair"],"k":[50,25],"o":13},"red_haired_man":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F468-1F3FB-200D-1F9B0","non_qualified":null,"image":"1f468-1f3fb-200d-1f9b0.png","sheet_x":15,"sheet_y":31,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F468-1F3FC-200D-1F9B0","non_qualified":null,"image":"1f468-1f3fc-200d-1f9b0.png","sheet_x":15,"sheet_y":32,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F468-1F3FD-200D-1F9B0","non_qualified":null,"image":"1f468-1f3fd-200d-1f9b0.png","sheet_x":15,"sheet_y":33,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F468-1F3FE-200D-1F9B0","non_qualified":null,"image":"1f468-1f3fe-200d-1f9b0.png","sheet_x":15,"sheet_y":34,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F468-1F3FF-200D-1F9B0","non_qualified":null,"image":"1f468-1f3ff-200d-1f9b0.png","sheet_x":15,"sheet_y":35,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man: Red Hair","b":"1F468-200D-1F9B0","d":true,"e":true,"f":true,"h":true,"j":["man_red_hair","hairstyle"],"k":[15,30],"o":11},"curly_haired_man":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F468-1F3FB-200D-1F9B1","non_qualified":null,"image":"1f468-1f3fb-200d-1f9b1.png","sheet_x":15,"sheet_y":37,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F468-1F3FC-200D-1F9B1","non_qualified":null,"image":"1f468-1f3fc-200d-1f9b1.png","sheet_x":15,"sheet_y":38,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F468-1F3FD-200D-1F9B1","non_qualified":null,"image":"1f468-1f3fd-200d-1f9b1.png","sheet_x":15,"sheet_y":39,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F468-1F3FE-200D-1F9B1","non_qualified":null,"image":"1f468-1f3fe-200d-1f9b1.png","sheet_x":15,"sheet_y":40,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F468-1F3FF-200D-1F9B1","non_qualified":null,"image":"1f468-1f3ff-200d-1f9b1.png","sheet_x":15,"sheet_y":41,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man: Curly Hair","b":"1F468-200D-1F9B1","d":true,"e":true,"f":true,"h":true,"j":["man_curly_hair","hairstyle"],"k":[15,36],"o":11},"white_haired_man":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F468-1F3FB-200D-1F9B3","non_qualified":null,"image":"1f468-1f3fb-200d-1f9b3.png","sheet_x":15,"sheet_y":49,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F468-1F3FC-200D-1F9B3","non_qualified":null,"image":"1f468-1f3fc-200d-1f9b3.png","sheet_x":15,"sheet_y":50,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F468-1F3FD-200D-1F9B3","non_qualified":null,"image":"1f468-1f3fd-200d-1f9b3.png","sheet_x":15,"sheet_y":51,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F468-1F3FE-200D-1F9B3","non_qualified":null,"image":"1f468-1f3fe-200d-1f9b3.png","sheet_x":15,"sheet_y":52,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F468-1F3FF-200D-1F9B3","non_qualified":null,"image":"1f468-1f3ff-200d-1f9b3.png","sheet_x":15,"sheet_y":53,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man: White Hair","b":"1F468-200D-1F9B3","d":true,"e":true,"f":true,"h":true,"j":["man_white_hair","old","elder"],"k":[15,48],"o":11},"bald_man":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F468-1F3FB-200D-1F9B2","non_qualified":null,"image":"1f468-1f3fb-200d-1f9b2.png","sheet_x":15,"sheet_y":43,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F468-1F3FC-200D-1F9B2","non_qualified":null,"image":"1f468-1f3fc-200d-1f9b2.png","sheet_x":15,"sheet_y":44,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F468-1F3FD-200D-1F9B2","non_qualified":null,"image":"1f468-1f3fd-200d-1f9b2.png","sheet_x":15,"sheet_y":45,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F468-1F3FE-200D-1F9B2","non_qualified":null,"image":"1f468-1f3fe-200d-1f9b2.png","sheet_x":15,"sheet_y":46,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F468-1F3FF-200D-1F9B2","non_qualified":null,"image":"1f468-1f3ff-200d-1f9b2.png","sheet_x":15,"sheet_y":47,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man: Bald","b":"1F468-200D-1F9B2","d":true,"e":true,"f":true,"h":true,"j":["man_bald","hairless"],"k":[15,42],"o":11},"woman":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F469-1F3FB","non_qualified":null,"image":"1f469-1f3fb.png","sheet_x":21,"sheet_y":35,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F469-1F3FC","non_qualified":null,"image":"1f469-1f3fc.png","sheet_x":21,"sheet_y":36,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F469-1F3FD","non_qualified":null,"image":"1f469-1f3fd.png","sheet_x":21,"sheet_y":37,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F469-1F3FE","non_qualified":null,"image":"1f469-1f3fe.png","sheet_x":21,"sheet_y":38,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F469-1F3FF","non_qualified":null,"image":"1f469-1f3ff.png","sheet_x":21,"sheet_y":39,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman","b":"1F469","d":true,"e":true,"f":true,"h":true,"j":["woman","female","girls","lady"],"k":[21,34],"o":0},"red_haired_woman":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F469-1F3FB-200D-1F9B0","non_qualified":null,"image":"1f469-1f3fb-200d-1f9b0.png","sheet_x":18,"sheet_y":60,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F469-1F3FC-200D-1F9B0","non_qualified":null,"image":"1f469-1f3fc-200d-1f9b0.png","sheet_x":19,"sheet_y":0,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F469-1F3FD-200D-1F9B0","non_qualified":null,"image":"1f469-1f3fd-200d-1f9b0.png","sheet_x":19,"sheet_y":1,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F469-1F3FE-200D-1F9B0","non_qualified":null,"image":"1f469-1f3fe-200d-1f9b0.png","sheet_x":19,"sheet_y":2,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F469-1F3FF-200D-1F9B0","non_qualified":null,"image":"1f469-1f3ff-200d-1f9b0.png","sheet_x":19,"sheet_y":3,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman: Red Hair","b":"1F469-200D-1F9B0","d":true,"e":true,"f":true,"h":true,"j":["woman_red_hair","hairstyle"],"k":[18,59],"o":11},"red_haired_person":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F9D1-1F3FB-200D-1F9B0","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f9b0.png","sheet_x":49,"sheet_y":15,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D1-1F3FC-200D-1F9B0","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f9b0.png","sheet_x":49,"sheet_y":16,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D1-1F3FD-200D-1F9B0","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f9b0.png","sheet_x":49,"sheet_y":17,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D1-1F3FE-200D-1F9B0","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f9b0.png","sheet_x":49,"sheet_y":18,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D1-1F3FF-200D-1F9B0","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f9b0.png","sheet_x":49,"sheet_y":19,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Person: Red Hair","b":"1F9D1-200D-1F9B0","d":true,"e":true,"f":true,"h":true,"j":["person_red_hair","hairstyle"],"k":[49,14],"o":12},"curly_haired_woman":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F469-1F3FB-200D-1F9B1","non_qualified":null,"image":"1f469-1f3fb-200d-1f9b1.png","sheet_x":19,"sheet_y":5,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F469-1F3FC-200D-1F9B1","non_qualified":null,"image":"1f469-1f3fc-200d-1f9b1.png","sheet_x":19,"sheet_y":6,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F469-1F3FD-200D-1F9B1","non_qualified":null,"image":"1f469-1f3fd-200d-1f9b1.png","sheet_x":19,"sheet_y":7,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F469-1F3FE-200D-1F9B1","non_qualified":null,"image":"1f469-1f3fe-200d-1f9b1.png","sheet_x":19,"sheet_y":8,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F469-1F3FF-200D-1F9B1","non_qualified":null,"image":"1f469-1f3ff-200d-1f9b1.png","sheet_x":19,"sheet_y":9,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman: Curly Hair","b":"1F469-200D-1F9B1","d":true,"e":true,"f":true,"h":true,"j":["woman_curly_hair","hairstyle"],"k":[19,4],"o":11},"curly_haired_person":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F9D1-1F3FB-200D-1F9B1","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f9b1.png","sheet_x":49,"sheet_y":21,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D1-1F3FC-200D-1F9B1","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f9b1.png","sheet_x":49,"sheet_y":22,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D1-1F3FD-200D-1F9B1","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f9b1.png","sheet_x":49,"sheet_y":23,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D1-1F3FE-200D-1F9B1","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f9b1.png","sheet_x":49,"sheet_y":24,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D1-1F3FF-200D-1F9B1","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f9b1.png","sheet_x":49,"sheet_y":25,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Person: Curly Hair","b":"1F9D1-200D-1F9B1","d":true,"e":true,"f":true,"h":true,"j":["person_curly_hair","hairstyle"],"k":[49,20],"o":12},"white_haired_woman":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F469-1F3FB-200D-1F9B3","non_qualified":null,"image":"1f469-1f3fb-200d-1f9b3.png","sheet_x":19,"sheet_y":17,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F469-1F3FC-200D-1F9B3","non_qualified":null,"image":"1f469-1f3fc-200d-1f9b3.png","sheet_x":19,"sheet_y":18,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F469-1F3FD-200D-1F9B3","non_qualified":null,"image":"1f469-1f3fd-200d-1f9b3.png","sheet_x":19,"sheet_y":19,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F469-1F3FE-200D-1F9B3","non_qualified":null,"image":"1f469-1f3fe-200d-1f9b3.png","sheet_x":19,"sheet_y":20,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F469-1F3FF-200D-1F9B3","non_qualified":null,"image":"1f469-1f3ff-200d-1f9b3.png","sheet_x":19,"sheet_y":21,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman: White Hair","b":"1F469-200D-1F9B3","d":true,"e":true,"f":true,"h":true,"j":["woman_white_hair","old","elder"],"k":[19,16],"o":11},"white_haired_person":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F9D1-1F3FB-200D-1F9B3","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f9b3.png","sheet_x":49,"sheet_y":33,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D1-1F3FC-200D-1F9B3","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f9b3.png","sheet_x":49,"sheet_y":34,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D1-1F3FD-200D-1F9B3","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f9b3.png","sheet_x":49,"sheet_y":35,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D1-1F3FE-200D-1F9B3","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f9b3.png","sheet_x":49,"sheet_y":36,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D1-1F3FF-200D-1F9B3","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f9b3.png","sheet_x":49,"sheet_y":37,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Person: White Hair","b":"1F9D1-200D-1F9B3","d":true,"e":true,"f":true,"h":true,"j":["person_white_hair","elder","old"],"k":[49,32],"o":12},"bald_woman":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F469-1F3FB-200D-1F9B2","non_qualified":null,"image":"1f469-1f3fb-200d-1f9b2.png","sheet_x":19,"sheet_y":11,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F469-1F3FC-200D-1F9B2","non_qualified":null,"image":"1f469-1f3fc-200d-1f9b2.png","sheet_x":19,"sheet_y":12,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F469-1F3FD-200D-1F9B2","non_qualified":null,"image":"1f469-1f3fd-200d-1f9b2.png","sheet_x":19,"sheet_y":13,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F469-1F3FE-200D-1F9B2","non_qualified":null,"image":"1f469-1f3fe-200d-1f9b2.png","sheet_x":19,"sheet_y":14,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F469-1F3FF-200D-1F9B2","non_qualified":null,"image":"1f469-1f3ff-200d-1f9b2.png","sheet_x":19,"sheet_y":15,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman: Bald","b":"1F469-200D-1F9B2","d":true,"e":true,"f":true,"h":true,"j":["woman_bald","hairless"],"k":[19,10],"o":11},"bald_person":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F9D1-1F3FB-200D-1F9B2","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f9b2.png","sheet_x":49,"sheet_y":27,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D1-1F3FC-200D-1F9B2","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f9b2.png","sheet_x":49,"sheet_y":28,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D1-1F3FD-200D-1F9B2","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f9b2.png","sheet_x":49,"sheet_y":29,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D1-1F3FE-200D-1F9B2","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f9b2.png","sheet_x":49,"sheet_y":30,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D1-1F3FF-200D-1F9B2","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f9b2.png","sheet_x":49,"sheet_y":31,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Person: Bald","b":"1F9D1-200D-1F9B2","d":true,"e":true,"f":true,"h":true,"j":["person_bald","hairless"],"k":[49,26],"o":12},"blond-haired-woman":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F471-1F3FB-200D-2640-FE0F","non_qualified":"1F471-1F3FB-200D-2640","image":"1f471-1f3fb-200d-2640-fe0f.png","sheet_x":23,"sheet_y":37,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F471-1F3FC-200D-2640-FE0F","non_qualified":"1F471-1F3FC-200D-2640","image":"1f471-1f3fc-200d-2640-fe0f.png","sheet_x":23,"sheet_y":38,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F471-1F3FD-200D-2640-FE0F","non_qualified":"1F471-1F3FD-200D-2640","image":"1f471-1f3fd-200d-2640-fe0f.png","sheet_x":23,"sheet_y":39,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F471-1F3FE-200D-2640-FE0F","non_qualified":"1F471-1F3FE-200D-2640","image":"1f471-1f3fe-200d-2640-fe0f.png","sheet_x":23,"sheet_y":40,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F471-1F3FF-200D-2640-FE0F","non_qualified":"1F471-1F3FF-200D-2640","image":"1f471-1f3ff-200d-2640-fe0f.png","sheet_x":23,"sheet_y":41,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman: Blond Hair","b":"1F471-200D-2640-FE0F","c":"1F471-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_blond_hair","woman","female","girl","blonde","person"],"k":[23,36],"o":4},"blond-haired-man":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F471-1F3FB-200D-2642-FE0F","non_qualified":"1F471-1F3FB-200D-2642","image":"1f471-1f3fb-200d-2642-fe0f.png","sheet_x":23,"sheet_y":43,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F471-1F3FC-200D-2642-FE0F","non_qualified":"1F471-1F3FC-200D-2642","image":"1f471-1f3fc-200d-2642-fe0f.png","sheet_x":23,"sheet_y":44,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F471-1F3FD-200D-2642-FE0F","non_qualified":"1F471-1F3FD-200D-2642","image":"1f471-1f3fd-200d-2642-fe0f.png","sheet_x":23,"sheet_y":45,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F471-1F3FE-200D-2642-FE0F","non_qualified":"1F471-1F3FE-200D-2642","image":"1f471-1f3fe-200d-2642-fe0f.png","sheet_x":23,"sheet_y":46,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F471-1F3FF-200D-2642-FE0F","non_qualified":"1F471-1F3FF-200D-2642","image":"1f471-1f3ff-200d-2642-fe0f.png","sheet_x":23,"sheet_y":47,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoletes":"1F471","a":"Man: Blond Hair","b":"1F471-200D-2642-FE0F","c":"1F471-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_blond_hair","man","male","boy","blonde","guy","person"],"k":[23,42],"o":4},"older_adult":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F9D3-1F3FB","non_qualified":null,"image":"1f9d3-1f3fb.png","sheet_x":50,"sheet_y":20,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D3-1F3FC","non_qualified":null,"image":"1f9d3-1f3fc.png","sheet_x":50,"sheet_y":21,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D3-1F3FD","non_qualified":null,"image":"1f9d3-1f3fd.png","sheet_x":50,"sheet_y":22,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D3-1F3FE","non_qualified":null,"image":"1f9d3-1f3fe.png","sheet_x":50,"sheet_y":23,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D3-1F3FF","non_qualified":null,"image":"1f9d3-1f3ff.png","sheet_x":50,"sheet_y":24,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Older Adult","b":"1F9D3","d":true,"e":true,"f":true,"h":true,"j":["older_person","human","elder","senior","gender-neutral"],"k":[50,19],"o":5},"older_man":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F474-1F3FB","non_qualified":null,"image":"1f474-1f3fb.png","sheet_x":24,"sheet_y":18,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F474-1F3FC","non_qualified":null,"image":"1f474-1f3fc.png","sheet_x":24,"sheet_y":19,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F474-1F3FD","non_qualified":null,"image":"1f474-1f3fd.png","sheet_x":24,"sheet_y":20,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F474-1F3FE","non_qualified":null,"image":"1f474-1f3fe.png","sheet_x":24,"sheet_y":21,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F474-1F3FF","non_qualified":null,"image":"1f474-1f3ff.png","sheet_x":24,"sheet_y":22,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Older Man","b":"1F474","d":true,"e":true,"f":true,"h":true,"j":["old_man","human","male","men","old","elder","senior"],"k":[24,17],"o":0},"older_woman":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F475-1F3FB","non_qualified":null,"image":"1f475-1f3fb.png","sheet_x":24,"sheet_y":24,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F475-1F3FC","non_qualified":null,"image":"1f475-1f3fc.png","sheet_x":24,"sheet_y":25,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F475-1F3FD","non_qualified":null,"image":"1f475-1f3fd.png","sheet_x":24,"sheet_y":26,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F475-1F3FE","non_qualified":null,"image":"1f475-1f3fe.png","sheet_x":24,"sheet_y":27,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F475-1F3FF","non_qualified":null,"image":"1f475-1f3ff.png","sheet_x":24,"sheet_y":28,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Older Woman","b":"1F475","d":true,"e":true,"f":true,"h":true,"j":["old_woman","human","female","women","lady","old","elder","senior"],"k":[24,23],"o":0},"person_frowning":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F64D-1F3FB","non_qualified":null,"image":"1f64d-1f3fb.png","sheet_x":35,"sheet_y":4,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F64D-1F3FC","non_qualified":null,"image":"1f64d-1f3fc.png","sheet_x":35,"sheet_y":5,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F64D-1F3FD","non_qualified":null,"image":"1f64d-1f3fd.png","sheet_x":35,"sheet_y":6,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F64D-1F3FE","non_qualified":null,"image":"1f64d-1f3fe.png","sheet_x":35,"sheet_y":7,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F64D-1F3FF","non_qualified":null,"image":"1f64d-1f3ff.png","sheet_x":35,"sheet_y":8,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoleted_by":"1F64D-200D-2640-FE0F","a":"Person Frowning","b":"1F64D","d":true,"e":true,"f":true,"h":true,"j":["person_frowning","worried"],"k":[35,3],"o":0},"man-frowning":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F64D-1F3FB-200D-2642-FE0F","non_qualified":"1F64D-1F3FB-200D-2642","image":"1f64d-1f3fb-200d-2642-fe0f.png","sheet_x":34,"sheet_y":59,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F64D-1F3FC-200D-2642-FE0F","non_qualified":"1F64D-1F3FC-200D-2642","image":"1f64d-1f3fc-200d-2642-fe0f.png","sheet_x":34,"sheet_y":60,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F64D-1F3FD-200D-2642-FE0F","non_qualified":"1F64D-1F3FD-200D-2642","image":"1f64d-1f3fd-200d-2642-fe0f.png","sheet_x":35,"sheet_y":0,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F64D-1F3FE-200D-2642-FE0F","non_qualified":"1F64D-1F3FE-200D-2642","image":"1f64d-1f3fe-200d-2642-fe0f.png","sheet_x":35,"sheet_y":1,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F64D-1F3FF-200D-2642-FE0F","non_qualified":"1F64D-1F3FF-200D-2642","image":"1f64d-1f3ff-200d-2642-fe0f.png","sheet_x":35,"sheet_y":2,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Frowning","b":"1F64D-200D-2642-FE0F","c":"1F64D-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_frowning","male","boy","man","sad","depressed","discouraged","unhappy"],"k":[34,58],"o":4},"woman-frowning":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F64D-1F3FB-200D-2640-FE0F","non_qualified":"1F64D-1F3FB-200D-2640","image":"1f64d-1f3fb-200d-2640-fe0f.png","sheet_x":34,"sheet_y":53,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F64D-1F3FC-200D-2640-FE0F","non_qualified":"1F64D-1F3FC-200D-2640","image":"1f64d-1f3fc-200d-2640-fe0f.png","sheet_x":34,"sheet_y":54,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F64D-1F3FD-200D-2640-FE0F","non_qualified":"1F64D-1F3FD-200D-2640","image":"1f64d-1f3fd-200d-2640-fe0f.png","sheet_x":34,"sheet_y":55,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F64D-1F3FE-200D-2640-FE0F","non_qualified":"1F64D-1F3FE-200D-2640","image":"1f64d-1f3fe-200d-2640-fe0f.png","sheet_x":34,"sheet_y":56,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F64D-1F3FF-200D-2640-FE0F","non_qualified":"1F64D-1F3FF-200D-2640","image":"1f64d-1f3ff-200d-2640-fe0f.png","sheet_x":34,"sheet_y":57,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoletes":"1F64D","a":"Woman Frowning","b":"1F64D-200D-2640-FE0F","c":"1F64D-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_frowning","female","girl","woman","sad","depressed","discouraged","unhappy"],"k":[34,52],"o":4},"person_with_pouting_face":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F64E-1F3FB","non_qualified":null,"image":"1f64e-1f3fb.png","sheet_x":35,"sheet_y":22,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F64E-1F3FC","non_qualified":null,"image":"1f64e-1f3fc.png","sheet_x":35,"sheet_y":23,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F64E-1F3FD","non_qualified":null,"image":"1f64e-1f3fd.png","sheet_x":35,"sheet_y":24,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F64E-1F3FE","non_qualified":null,"image":"1f64e-1f3fe.png","sheet_x":35,"sheet_y":25,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F64E-1F3FF","non_qualified":null,"image":"1f64e-1f3ff.png","sheet_x":35,"sheet_y":26,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoleted_by":"1F64E-200D-2640-FE0F","a":"Person with Pouting Face","b":"1F64E","d":true,"e":true,"f":true,"h":true,"j":["person_pouting","upset"],"k":[35,21],"o":0},"man-pouting":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F64E-1F3FB-200D-2642-FE0F","non_qualified":"1F64E-1F3FB-200D-2642","image":"1f64e-1f3fb-200d-2642-fe0f.png","sheet_x":35,"sheet_y":16,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F64E-1F3FC-200D-2642-FE0F","non_qualified":"1F64E-1F3FC-200D-2642","image":"1f64e-1f3fc-200d-2642-fe0f.png","sheet_x":35,"sheet_y":17,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F64E-1F3FD-200D-2642-FE0F","non_qualified":"1F64E-1F3FD-200D-2642","image":"1f64e-1f3fd-200d-2642-fe0f.png","sheet_x":35,"sheet_y":18,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F64E-1F3FE-200D-2642-FE0F","non_qualified":"1F64E-1F3FE-200D-2642","image":"1f64e-1f3fe-200d-2642-fe0f.png","sheet_x":35,"sheet_y":19,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F64E-1F3FF-200D-2642-FE0F","non_qualified":"1F64E-1F3FF-200D-2642","image":"1f64e-1f3ff-200d-2642-fe0f.png","sheet_x":35,"sheet_y":20,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Pouting","b":"1F64E-200D-2642-FE0F","c":"1F64E-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_pouting","male","boy","man"],"k":[35,15],"o":4},"woman-pouting":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F64E-1F3FB-200D-2640-FE0F","non_qualified":"1F64E-1F3FB-200D-2640","image":"1f64e-1f3fb-200d-2640-fe0f.png","sheet_x":35,"sheet_y":10,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F64E-1F3FC-200D-2640-FE0F","non_qualified":"1F64E-1F3FC-200D-2640","image":"1f64e-1f3fc-200d-2640-fe0f.png","sheet_x":35,"sheet_y":11,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F64E-1F3FD-200D-2640-FE0F","non_qualified":"1F64E-1F3FD-200D-2640","image":"1f64e-1f3fd-200d-2640-fe0f.png","sheet_x":35,"sheet_y":12,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F64E-1F3FE-200D-2640-FE0F","non_qualified":"1F64E-1F3FE-200D-2640","image":"1f64e-1f3fe-200d-2640-fe0f.png","sheet_x":35,"sheet_y":13,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F64E-1F3FF-200D-2640-FE0F","non_qualified":"1F64E-1F3FF-200D-2640","image":"1f64e-1f3ff-200d-2640-fe0f.png","sheet_x":35,"sheet_y":14,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoletes":"1F64E","a":"Woman Pouting","b":"1F64E-200D-2640-FE0F","c":"1F64E-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_pouting","female","girl","woman"],"k":[35,9],"o":4},"no_good":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F645-1F3FB","non_qualified":null,"image":"1f645-1f3fb.png","sheet_x":33,"sheet_y":45,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F645-1F3FC","non_qualified":null,"image":"1f645-1f3fc.png","sheet_x":33,"sheet_y":46,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F645-1F3FD","non_qualified":null,"image":"1f645-1f3fd.png","sheet_x":33,"sheet_y":47,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F645-1F3FE","non_qualified":null,"image":"1f645-1f3fe.png","sheet_x":33,"sheet_y":48,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F645-1F3FF","non_qualified":null,"image":"1f645-1f3ff.png","sheet_x":33,"sheet_y":49,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoleted_by":"1F645-200D-2640-FE0F","a":"Face with No Good Gesture","b":"1F645","d":true,"e":true,"f":true,"h":true,"j":["person_gesturing_no","decline"],"k":[33,44],"o":0},"man-gesturing-no":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F645-1F3FB-200D-2642-FE0F","non_qualified":"1F645-1F3FB-200D-2642","image":"1f645-1f3fb-200d-2642-fe0f.png","sheet_x":33,"sheet_y":39,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F645-1F3FC-200D-2642-FE0F","non_qualified":"1F645-1F3FC-200D-2642","image":"1f645-1f3fc-200d-2642-fe0f.png","sheet_x":33,"sheet_y":40,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F645-1F3FD-200D-2642-FE0F","non_qualified":"1F645-1F3FD-200D-2642","image":"1f645-1f3fd-200d-2642-fe0f.png","sheet_x":33,"sheet_y":41,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F645-1F3FE-200D-2642-FE0F","non_qualified":"1F645-1F3FE-200D-2642","image":"1f645-1f3fe-200d-2642-fe0f.png","sheet_x":33,"sheet_y":42,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F645-1F3FF-200D-2642-FE0F","non_qualified":"1F645-1F3FF-200D-2642","image":"1f645-1f3ff-200d-2642-fe0f.png","sheet_x":33,"sheet_y":43,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Gesturing No","b":"1F645-200D-2642-FE0F","c":"1F645-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_gesturing_no","male","boy","man","nope"],"k":[33,38],"o":4},"woman-gesturing-no":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F645-1F3FB-200D-2640-FE0F","non_qualified":"1F645-1F3FB-200D-2640","image":"1f645-1f3fb-200d-2640-fe0f.png","sheet_x":33,"sheet_y":33,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F645-1F3FC-200D-2640-FE0F","non_qualified":"1F645-1F3FC-200D-2640","image":"1f645-1f3fc-200d-2640-fe0f.png","sheet_x":33,"sheet_y":34,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F645-1F3FD-200D-2640-FE0F","non_qualified":"1F645-1F3FD-200D-2640","image":"1f645-1f3fd-200d-2640-fe0f.png","sheet_x":33,"sheet_y":35,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F645-1F3FE-200D-2640-FE0F","non_qualified":"1F645-1F3FE-200D-2640","image":"1f645-1f3fe-200d-2640-fe0f.png","sheet_x":33,"sheet_y":36,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F645-1F3FF-200D-2640-FE0F","non_qualified":"1F645-1F3FF-200D-2640","image":"1f645-1f3ff-200d-2640-fe0f.png","sheet_x":33,"sheet_y":37,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoletes":"1F645","a":"Woman Gesturing No","b":"1F645-200D-2640-FE0F","c":"1F645-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_gesturing_no","female","girl","woman","nope"],"k":[33,32],"o":4},"ok_woman":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F646-1F3FB","non_qualified":null,"image":"1f646-1f3fb.png","sheet_x":34,"sheet_y":2,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F646-1F3FC","non_qualified":null,"image":"1f646-1f3fc.png","sheet_x":34,"sheet_y":3,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F646-1F3FD","non_qualified":null,"image":"1f646-1f3fd.png","sheet_x":34,"sheet_y":4,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F646-1F3FE","non_qualified":null,"image":"1f646-1f3fe.png","sheet_x":34,"sheet_y":5,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F646-1F3FF","non_qualified":null,"image":"1f646-1f3ff.png","sheet_x":34,"sheet_y":6,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoleted_by":"1F646-200D-2640-FE0F","a":"Face with Ok Gesture","b":"1F646","d":true,"e":true,"f":true,"h":true,"j":["person_gesturing_ok","agree"],"k":[34,1],"o":0},"man-gesturing-ok":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F646-1F3FB-200D-2642-FE0F","non_qualified":"1F646-1F3FB-200D-2642","image":"1f646-1f3fb-200d-2642-fe0f.png","sheet_x":33,"sheet_y":57,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F646-1F3FC-200D-2642-FE0F","non_qualified":"1F646-1F3FC-200D-2642","image":"1f646-1f3fc-200d-2642-fe0f.png","sheet_x":33,"sheet_y":58,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F646-1F3FD-200D-2642-FE0F","non_qualified":"1F646-1F3FD-200D-2642","image":"1f646-1f3fd-200d-2642-fe0f.png","sheet_x":33,"sheet_y":59,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F646-1F3FE-200D-2642-FE0F","non_qualified":"1F646-1F3FE-200D-2642","image":"1f646-1f3fe-200d-2642-fe0f.png","sheet_x":33,"sheet_y":60,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F646-1F3FF-200D-2642-FE0F","non_qualified":"1F646-1F3FF-200D-2642","image":"1f646-1f3ff-200d-2642-fe0f.png","sheet_x":34,"sheet_y":0,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Gesturing Ok","b":"1F646-200D-2642-FE0F","c":"1F646-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_gesturing_ok","men","boy","male","blue","human","man"],"k":[33,56],"o":4},"woman-gesturing-ok":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F646-1F3FB-200D-2640-FE0F","non_qualified":"1F646-1F3FB-200D-2640","image":"1f646-1f3fb-200d-2640-fe0f.png","sheet_x":33,"sheet_y":51,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F646-1F3FC-200D-2640-FE0F","non_qualified":"1F646-1F3FC-200D-2640","image":"1f646-1f3fc-200d-2640-fe0f.png","sheet_x":33,"sheet_y":52,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F646-1F3FD-200D-2640-FE0F","non_qualified":"1F646-1F3FD-200D-2640","image":"1f646-1f3fd-200d-2640-fe0f.png","sheet_x":33,"sheet_y":53,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F646-1F3FE-200D-2640-FE0F","non_qualified":"1F646-1F3FE-200D-2640","image":"1f646-1f3fe-200d-2640-fe0f.png","sheet_x":33,"sheet_y":54,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F646-1F3FF-200D-2640-FE0F","non_qualified":"1F646-1F3FF-200D-2640","image":"1f646-1f3ff-200d-2640-fe0f.png","sheet_x":33,"sheet_y":55,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoletes":"1F646","a":"Woman Gesturing Ok","b":"1F646-200D-2640-FE0F","c":"1F646-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_gesturing_ok","women","girl","female","pink","human","woman"],"k":[33,50],"o":4},"information_desk_person":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F481-1F3FB","non_qualified":null,"image":"1f481-1f3fb.png","sheet_x":25,"sheet_y":24,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F481-1F3FC","non_qualified":null,"image":"1f481-1f3fc.png","sheet_x":25,"sheet_y":25,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F481-1F3FD","non_qualified":null,"image":"1f481-1f3fd.png","sheet_x":25,"sheet_y":26,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F481-1F3FE","non_qualified":null,"image":"1f481-1f3fe.png","sheet_x":25,"sheet_y":27,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F481-1F3FF","non_qualified":null,"image":"1f481-1f3ff.png","sheet_x":25,"sheet_y":28,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoleted_by":"1F481-200D-2640-FE0F","a":"Information Desk Person","b":"1F481","d":true,"e":true,"f":true,"h":true,"j":["person_tipping_hand","information"],"k":[25,23],"o":0},"man-tipping-hand":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F481-1F3FB-200D-2642-FE0F","non_qualified":"1F481-1F3FB-200D-2642","image":"1f481-1f3fb-200d-2642-fe0f.png","sheet_x":25,"sheet_y":18,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F481-1F3FC-200D-2642-FE0F","non_qualified":"1F481-1F3FC-200D-2642","image":"1f481-1f3fc-200d-2642-fe0f.png","sheet_x":25,"sheet_y":19,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F481-1F3FD-200D-2642-FE0F","non_qualified":"1F481-1F3FD-200D-2642","image":"1f481-1f3fd-200d-2642-fe0f.png","sheet_x":25,"sheet_y":20,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F481-1F3FE-200D-2642-FE0F","non_qualified":"1F481-1F3FE-200D-2642","image":"1f481-1f3fe-200d-2642-fe0f.png","sheet_x":25,"sheet_y":21,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F481-1F3FF-200D-2642-FE0F","non_qualified":"1F481-1F3FF-200D-2642","image":"1f481-1f3ff-200d-2642-fe0f.png","sheet_x":25,"sheet_y":22,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Tipping Hand","b":"1F481-200D-2642-FE0F","c":"1F481-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_tipping_hand","male","boy","man","human","information"],"k":[25,17],"o":4},"woman-tipping-hand":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F481-1F3FB-200D-2640-FE0F","non_qualified":"1F481-1F3FB-200D-2640","image":"1f481-1f3fb-200d-2640-fe0f.png","sheet_x":25,"sheet_y":12,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F481-1F3FC-200D-2640-FE0F","non_qualified":"1F481-1F3FC-200D-2640","image":"1f481-1f3fc-200d-2640-fe0f.png","sheet_x":25,"sheet_y":13,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F481-1F3FD-200D-2640-FE0F","non_qualified":"1F481-1F3FD-200D-2640","image":"1f481-1f3fd-200d-2640-fe0f.png","sheet_x":25,"sheet_y":14,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F481-1F3FE-200D-2640-FE0F","non_qualified":"1F481-1F3FE-200D-2640","image":"1f481-1f3fe-200d-2640-fe0f.png","sheet_x":25,"sheet_y":15,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F481-1F3FF-200D-2640-FE0F","non_qualified":"1F481-1F3FF-200D-2640","image":"1f481-1f3ff-200d-2640-fe0f.png","sheet_x":25,"sheet_y":16,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoletes":"1F481","a":"Woman Tipping Hand","b":"1F481-200D-2640-FE0F","c":"1F481-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_tipping_hand","female","girl","woman","human","information"],"k":[25,11],"o":4},"raising_hand":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F64B-1F3FB","non_qualified":null,"image":"1f64b-1f3fb.png","sheet_x":34,"sheet_y":41,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F64B-1F3FC","non_qualified":null,"image":"1f64b-1f3fc.png","sheet_x":34,"sheet_y":42,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F64B-1F3FD","non_qualified":null,"image":"1f64b-1f3fd.png","sheet_x":34,"sheet_y":43,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F64B-1F3FE","non_qualified":null,"image":"1f64b-1f3fe.png","sheet_x":34,"sheet_y":44,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F64B-1F3FF","non_qualified":null,"image":"1f64b-1f3ff.png","sheet_x":34,"sheet_y":45,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoleted_by":"1F64B-200D-2640-FE0F","a":"Happy Person Raising One Hand","b":"1F64B","d":true,"e":true,"f":true,"h":true,"j":["person_raising_hand","question"],"k":[34,40],"o":0},"man-raising-hand":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F64B-1F3FB-200D-2642-FE0F","non_qualified":"1F64B-1F3FB-200D-2642","image":"1f64b-1f3fb-200d-2642-fe0f.png","sheet_x":34,"sheet_y":35,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F64B-1F3FC-200D-2642-FE0F","non_qualified":"1F64B-1F3FC-200D-2642","image":"1f64b-1f3fc-200d-2642-fe0f.png","sheet_x":34,"sheet_y":36,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F64B-1F3FD-200D-2642-FE0F","non_qualified":"1F64B-1F3FD-200D-2642","image":"1f64b-1f3fd-200d-2642-fe0f.png","sheet_x":34,"sheet_y":37,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F64B-1F3FE-200D-2642-FE0F","non_qualified":"1F64B-1F3FE-200D-2642","image":"1f64b-1f3fe-200d-2642-fe0f.png","sheet_x":34,"sheet_y":38,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F64B-1F3FF-200D-2642-FE0F","non_qualified":"1F64B-1F3FF-200D-2642","image":"1f64b-1f3ff-200d-2642-fe0f.png","sheet_x":34,"sheet_y":39,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Raising Hand","b":"1F64B-200D-2642-FE0F","c":"1F64B-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_raising_hand","male","boy","man"],"k":[34,34],"o":4},"woman-raising-hand":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F64B-1F3FB-200D-2640-FE0F","non_qualified":"1F64B-1F3FB-200D-2640","image":"1f64b-1f3fb-200d-2640-fe0f.png","sheet_x":34,"sheet_y":29,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F64B-1F3FC-200D-2640-FE0F","non_qualified":"1F64B-1F3FC-200D-2640","image":"1f64b-1f3fc-200d-2640-fe0f.png","sheet_x":34,"sheet_y":30,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F64B-1F3FD-200D-2640-FE0F","non_qualified":"1F64B-1F3FD-200D-2640","image":"1f64b-1f3fd-200d-2640-fe0f.png","sheet_x":34,"sheet_y":31,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F64B-1F3FE-200D-2640-FE0F","non_qualified":"1F64B-1F3FE-200D-2640","image":"1f64b-1f3fe-200d-2640-fe0f.png","sheet_x":34,"sheet_y":32,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F64B-1F3FF-200D-2640-FE0F","non_qualified":"1F64B-1F3FF-200D-2640","image":"1f64b-1f3ff-200d-2640-fe0f.png","sheet_x":34,"sheet_y":33,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoletes":"1F64B","a":"Woman Raising Hand","b":"1F64B-200D-2640-FE0F","c":"1F64B-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_raising_hand","female","girl","woman"],"k":[34,28],"o":4},"deaf_person":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F9CF-1F3FB","non_qualified":null,"image":"1f9cf-1f3fb.png","sheet_x":47,"sheet_y":8,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9CF-1F3FC","non_qualified":null,"image":"1f9cf-1f3fc.png","sheet_x":47,"sheet_y":9,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9CF-1F3FD","non_qualified":null,"image":"1f9cf-1f3fd.png","sheet_x":47,"sheet_y":10,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9CF-1F3FE","non_qualified":null,"image":"1f9cf-1f3fe.png","sheet_x":47,"sheet_y":11,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9CF-1F3FF","non_qualified":null,"image":"1f9cf-1f3ff.png","sheet_x":47,"sheet_y":12,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Deaf Person","b":"1F9CF","d":true,"e":true,"f":true,"h":true,"j":["deaf_person","accessibility"],"k":[47,7],"o":12},"deaf_man":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F9CF-1F3FB-200D-2642-FE0F","non_qualified":"1F9CF-1F3FB-200D-2642","image":"1f9cf-1f3fb-200d-2642-fe0f.png","sheet_x":47,"sheet_y":2,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9CF-1F3FC-200D-2642-FE0F","non_qualified":"1F9CF-1F3FC-200D-2642","image":"1f9cf-1f3fc-200d-2642-fe0f.png","sheet_x":47,"sheet_y":3,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9CF-1F3FD-200D-2642-FE0F","non_qualified":"1F9CF-1F3FD-200D-2642","image":"1f9cf-1f3fd-200d-2642-fe0f.png","sheet_x":47,"sheet_y":4,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9CF-1F3FE-200D-2642-FE0F","non_qualified":"1F9CF-1F3FE-200D-2642","image":"1f9cf-1f3fe-200d-2642-fe0f.png","sheet_x":47,"sheet_y":5,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9CF-1F3FF-200D-2642-FE0F","non_qualified":"1F9CF-1F3FF-200D-2642","image":"1f9cf-1f3ff-200d-2642-fe0f.png","sheet_x":47,"sheet_y":6,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Deaf Man","b":"1F9CF-200D-2642-FE0F","c":"1F9CF-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["deaf_man","accessibility"],"k":[47,1],"o":12},"deaf_woman":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F9CF-1F3FB-200D-2640-FE0F","non_qualified":"1F9CF-1F3FB-200D-2640","image":"1f9cf-1f3fb-200d-2640-fe0f.png","sheet_x":46,"sheet_y":57,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9CF-1F3FC-200D-2640-FE0F","non_qualified":"1F9CF-1F3FC-200D-2640","image":"1f9cf-1f3fc-200d-2640-fe0f.png","sheet_x":46,"sheet_y":58,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9CF-1F3FD-200D-2640-FE0F","non_qualified":"1F9CF-1F3FD-200D-2640","image":"1f9cf-1f3fd-200d-2640-fe0f.png","sheet_x":46,"sheet_y":59,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9CF-1F3FE-200D-2640-FE0F","non_qualified":"1F9CF-1F3FE-200D-2640","image":"1f9cf-1f3fe-200d-2640-fe0f.png","sheet_x":46,"sheet_y":60,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9CF-1F3FF-200D-2640-FE0F","non_qualified":"1F9CF-1F3FF-200D-2640","image":"1f9cf-1f3ff-200d-2640-fe0f.png","sheet_x":47,"sheet_y":0,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Deaf Woman","b":"1F9CF-200D-2640-FE0F","c":"1F9CF-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["deaf_woman","accessibility"],"k":[46,56],"o":12},"bow":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F647-1F3FB","non_qualified":null,"image":"1f647-1f3fb.png","sheet_x":34,"sheet_y":20,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F647-1F3FC","non_qualified":null,"image":"1f647-1f3fc.png","sheet_x":34,"sheet_y":21,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F647-1F3FD","non_qualified":null,"image":"1f647-1f3fd.png","sheet_x":34,"sheet_y":22,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F647-1F3FE","non_qualified":null,"image":"1f647-1f3fe.png","sheet_x":34,"sheet_y":23,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F647-1F3FF","non_qualified":null,"image":"1f647-1f3ff.png","sheet_x":34,"sheet_y":24,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Person Bowing Deeply","b":"1F647","d":true,"e":true,"f":true,"h":true,"j":["person_bowing","respectiful"],"k":[34,19],"o":0},"man-bowing":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F647-1F3FB-200D-2642-FE0F","non_qualified":"1F647-1F3FB-200D-2642","image":"1f647-1f3fb-200d-2642-fe0f.png","sheet_x":34,"sheet_y":14,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F647-1F3FC-200D-2642-FE0F","non_qualified":"1F647-1F3FC-200D-2642","image":"1f647-1f3fc-200d-2642-fe0f.png","sheet_x":34,"sheet_y":15,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F647-1F3FD-200D-2642-FE0F","non_qualified":"1F647-1F3FD-200D-2642","image":"1f647-1f3fd-200d-2642-fe0f.png","sheet_x":34,"sheet_y":16,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F647-1F3FE-200D-2642-FE0F","non_qualified":"1F647-1F3FE-200D-2642","image":"1f647-1f3fe-200d-2642-fe0f.png","sheet_x":34,"sheet_y":17,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F647-1F3FF-200D-2642-FE0F","non_qualified":"1F647-1F3FF-200D-2642","image":"1f647-1f3ff-200d-2642-fe0f.png","sheet_x":34,"sheet_y":18,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Bowing","b":"1F647-200D-2642-FE0F","c":"1F647-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_bowing","man","male","boy"],"k":[34,13],"o":4},"woman-bowing":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F647-1F3FB-200D-2640-FE0F","non_qualified":"1F647-1F3FB-200D-2640","image":"1f647-1f3fb-200d-2640-fe0f.png","sheet_x":34,"sheet_y":8,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F647-1F3FC-200D-2640-FE0F","non_qualified":"1F647-1F3FC-200D-2640","image":"1f647-1f3fc-200d-2640-fe0f.png","sheet_x":34,"sheet_y":9,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F647-1F3FD-200D-2640-FE0F","non_qualified":"1F647-1F3FD-200D-2640","image":"1f647-1f3fd-200d-2640-fe0f.png","sheet_x":34,"sheet_y":10,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F647-1F3FE-200D-2640-FE0F","non_qualified":"1F647-1F3FE-200D-2640","image":"1f647-1f3fe-200d-2640-fe0f.png","sheet_x":34,"sheet_y":11,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F647-1F3FF-200D-2640-FE0F","non_qualified":"1F647-1F3FF-200D-2640","image":"1f647-1f3ff-200d-2640-fe0f.png","sheet_x":34,"sheet_y":12,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Bowing","b":"1F647-200D-2640-FE0F","c":"1F647-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_bowing","woman","female","girl"],"k":[34,7],"o":4},"face_palm":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F926-1F3FB","non_qualified":null,"image":"1f926-1f3fb.png","sheet_x":40,"sheet_y":33,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F926-1F3FC","non_qualified":null,"image":"1f926-1f3fc.png","sheet_x":40,"sheet_y":34,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F926-1F3FD","non_qualified":null,"image":"1f926-1f3fd.png","sheet_x":40,"sheet_y":35,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F926-1F3FE","non_qualified":null,"image":"1f926-1f3fe.png","sheet_x":40,"sheet_y":36,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F926-1F3FF","non_qualified":null,"image":"1f926-1f3ff.png","sheet_x":40,"sheet_y":37,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Face Palm","b":"1F926","d":true,"e":true,"f":true,"h":true,"j":["person_facepalming","disappointed"],"k":[40,32],"o":3},"man-facepalming":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F926-1F3FB-200D-2642-FE0F","non_qualified":"1F926-1F3FB-200D-2642","image":"1f926-1f3fb-200d-2642-fe0f.png","sheet_x":40,"sheet_y":27,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F926-1F3FC-200D-2642-FE0F","non_qualified":"1F926-1F3FC-200D-2642","image":"1f926-1f3fc-200d-2642-fe0f.png","sheet_x":40,"sheet_y":28,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F926-1F3FD-200D-2642-FE0F","non_qualified":"1F926-1F3FD-200D-2642","image":"1f926-1f3fd-200d-2642-fe0f.png","sheet_x":40,"sheet_y":29,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F926-1F3FE-200D-2642-FE0F","non_qualified":"1F926-1F3FE-200D-2642","image":"1f926-1f3fe-200d-2642-fe0f.png","sheet_x":40,"sheet_y":30,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F926-1F3FF-200D-2642-FE0F","non_qualified":"1F926-1F3FF-200D-2642","image":"1f926-1f3ff-200d-2642-fe0f.png","sheet_x":40,"sheet_y":31,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Facepalming","b":"1F926-200D-2642-FE0F","c":"1F926-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_facepalming","man","male","boy","disbelief"],"k":[40,26],"o":4},"woman-facepalming":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F926-1F3FB-200D-2640-FE0F","non_qualified":"1F926-1F3FB-200D-2640","image":"1f926-1f3fb-200d-2640-fe0f.png","sheet_x":40,"sheet_y":21,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F926-1F3FC-200D-2640-FE0F","non_qualified":"1F926-1F3FC-200D-2640","image":"1f926-1f3fc-200d-2640-fe0f.png","sheet_x":40,"sheet_y":22,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F926-1F3FD-200D-2640-FE0F","non_qualified":"1F926-1F3FD-200D-2640","image":"1f926-1f3fd-200d-2640-fe0f.png","sheet_x":40,"sheet_y":23,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F926-1F3FE-200D-2640-FE0F","non_qualified":"1F926-1F3FE-200D-2640","image":"1f926-1f3fe-200d-2640-fe0f.png","sheet_x":40,"sheet_y":24,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F926-1F3FF-200D-2640-FE0F","non_qualified":"1F926-1F3FF-200D-2640","image":"1f926-1f3ff-200d-2640-fe0f.png","sheet_x":40,"sheet_y":25,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Facepalming","b":"1F926-200D-2640-FE0F","c":"1F926-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_facepalming","woman","female","girl","disbelief"],"k":[40,20],"o":4},"shrug":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F937-1F3FB","non_qualified":null,"image":"1f937-1f3fb.png","sheet_x":41,"sheet_y":53,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F937-1F3FC","non_qualified":null,"image":"1f937-1f3fc.png","sheet_x":41,"sheet_y":54,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F937-1F3FD","non_qualified":null,"image":"1f937-1f3fd.png","sheet_x":41,"sheet_y":55,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F937-1F3FE","non_qualified":null,"image":"1f937-1f3fe.png","sheet_x":41,"sheet_y":56,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F937-1F3FF","non_qualified":null,"image":"1f937-1f3ff.png","sheet_x":41,"sheet_y":57,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Shrug","b":"1F937","d":true,"e":true,"f":true,"h":true,"j":["person_shrugging","regardless"],"k":[41,52],"o":3},"man-shrugging":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F937-1F3FB-200D-2642-FE0F","non_qualified":"1F937-1F3FB-200D-2642","image":"1f937-1f3fb-200d-2642-fe0f.png","sheet_x":41,"sheet_y":47,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F937-1F3FC-200D-2642-FE0F","non_qualified":"1F937-1F3FC-200D-2642","image":"1f937-1f3fc-200d-2642-fe0f.png","sheet_x":41,"sheet_y":48,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F937-1F3FD-200D-2642-FE0F","non_qualified":"1F937-1F3FD-200D-2642","image":"1f937-1f3fd-200d-2642-fe0f.png","sheet_x":41,"sheet_y":49,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F937-1F3FE-200D-2642-FE0F","non_qualified":"1F937-1F3FE-200D-2642","image":"1f937-1f3fe-200d-2642-fe0f.png","sheet_x":41,"sheet_y":50,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F937-1F3FF-200D-2642-FE0F","non_qualified":"1F937-1F3FF-200D-2642","image":"1f937-1f3ff-200d-2642-fe0f.png","sheet_x":41,"sheet_y":51,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Shrugging","b":"1F937-200D-2642-FE0F","c":"1F937-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_shrugging","man","male","boy","confused","indifferent","doubt"],"k":[41,46],"o":4},"woman-shrugging":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F937-1F3FB-200D-2640-FE0F","non_qualified":"1F937-1F3FB-200D-2640","image":"1f937-1f3fb-200d-2640-fe0f.png","sheet_x":41,"sheet_y":41,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F937-1F3FC-200D-2640-FE0F","non_qualified":"1F937-1F3FC-200D-2640","image":"1f937-1f3fc-200d-2640-fe0f.png","sheet_x":41,"sheet_y":42,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F937-1F3FD-200D-2640-FE0F","non_qualified":"1F937-1F3FD-200D-2640","image":"1f937-1f3fd-200d-2640-fe0f.png","sheet_x":41,"sheet_y":43,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F937-1F3FE-200D-2640-FE0F","non_qualified":"1F937-1F3FE-200D-2640","image":"1f937-1f3fe-200d-2640-fe0f.png","sheet_x":41,"sheet_y":44,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F937-1F3FF-200D-2640-FE0F","non_qualified":"1F937-1F3FF-200D-2640","image":"1f937-1f3ff-200d-2640-fe0f.png","sheet_x":41,"sheet_y":45,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Shrugging","b":"1F937-200D-2640-FE0F","c":"1F937-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_shrugging","woman","female","girl","confused","indifferent","doubt"],"k":[41,40],"o":4},"health_worker":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F9D1-1F3FB-200D-2695-FE0F","non_qualified":"1F9D1-1F3FB-200D-2695","image":"1f9d1-1f3fb-200d-2695-fe0f.png","sheet_x":49,"sheet_y":51,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D1-1F3FC-200D-2695-FE0F","non_qualified":"1F9D1-1F3FC-200D-2695","image":"1f9d1-1f3fc-200d-2695-fe0f.png","sheet_x":49,"sheet_y":52,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D1-1F3FD-200D-2695-FE0F","non_qualified":"1F9D1-1F3FD-200D-2695","image":"1f9d1-1f3fd-200d-2695-fe0f.png","sheet_x":49,"sheet_y":53,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D1-1F3FE-200D-2695-FE0F","non_qualified":"1F9D1-1F3FE-200D-2695","image":"1f9d1-1f3fe-200d-2695-fe0f.png","sheet_x":49,"sheet_y":54,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D1-1F3FF-200D-2695-FE0F","non_qualified":"1F9D1-1F3FF-200D-2695","image":"1f9d1-1f3ff-200d-2695-fe0f.png","sheet_x":49,"sheet_y":55,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Health Worker","b":"1F9D1-200D-2695-FE0F","c":"1F9D1-200D-2695","d":true,"e":true,"f":true,"h":true,"j":["health_worker","hospital"],"k":[49,50],"o":12},"male-doctor":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F468-1F3FB-200D-2695-FE0F","non_qualified":"1F468-1F3FB-200D-2695","image":"1f468-1f3fb-200d-2695-fe0f.png","sheet_x":16,"sheet_y":6,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F468-1F3FC-200D-2695-FE0F","non_qualified":"1F468-1F3FC-200D-2695","image":"1f468-1f3fc-200d-2695-fe0f.png","sheet_x":16,"sheet_y":7,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F468-1F3FD-200D-2695-FE0F","non_qualified":"1F468-1F3FD-200D-2695","image":"1f468-1f3fd-200d-2695-fe0f.png","sheet_x":16,"sheet_y":8,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F468-1F3FE-200D-2695-FE0F","non_qualified":"1F468-1F3FE-200D-2695","image":"1f468-1f3fe-200d-2695-fe0f.png","sheet_x":16,"sheet_y":9,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F468-1F3FF-200D-2695-FE0F","non_qualified":"1F468-1F3FF-200D-2695","image":"1f468-1f3ff-200d-2695-fe0f.png","sheet_x":16,"sheet_y":10,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Health Worker","b":"1F468-200D-2695-FE0F","c":"1F468-200D-2695","d":true,"e":true,"f":true,"h":true,"j":["man_health_worker","doctor","nurse","therapist","healthcare","man","human"],"k":[16,5],"o":4},"female-doctor":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F469-1F3FB-200D-2695-FE0F","non_qualified":"1F469-1F3FB-200D-2695","image":"1f469-1f3fb-200d-2695-fe0f.png","sheet_x":19,"sheet_y":35,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F469-1F3FC-200D-2695-FE0F","non_qualified":"1F469-1F3FC-200D-2695","image":"1f469-1f3fc-200d-2695-fe0f.png","sheet_x":19,"sheet_y":36,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F469-1F3FD-200D-2695-FE0F","non_qualified":"1F469-1F3FD-200D-2695","image":"1f469-1f3fd-200d-2695-fe0f.png","sheet_x":19,"sheet_y":37,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F469-1F3FE-200D-2695-FE0F","non_qualified":"1F469-1F3FE-200D-2695","image":"1f469-1f3fe-200d-2695-fe0f.png","sheet_x":19,"sheet_y":38,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F469-1F3FF-200D-2695-FE0F","non_qualified":"1F469-1F3FF-200D-2695","image":"1f469-1f3ff-200d-2695-fe0f.png","sheet_x":19,"sheet_y":39,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Health Worker","b":"1F469-200D-2695-FE0F","c":"1F469-200D-2695","d":true,"e":true,"f":true,"h":true,"j":["woman_health_worker","doctor","nurse","therapist","healthcare","woman","human"],"k":[19,34],"o":4},"student":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F9D1-1F3FB-200D-1F393","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f393.png","sheet_x":47,"sheet_y":39,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D1-1F3FC-200D-1F393","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f393.png","sheet_x":47,"sheet_y":40,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D1-1F3FD-200D-1F393","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f393.png","sheet_x":47,"sheet_y":41,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D1-1F3FE-200D-1F393","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f393.png","sheet_x":47,"sheet_y":42,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D1-1F3FF-200D-1F393","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f393.png","sheet_x":47,"sheet_y":43,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Student","b":"1F9D1-200D-1F393","d":true,"e":true,"f":true,"h":true,"j":["student","learn"],"k":[47,38],"o":12},"male-student":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F468-1F3FB-200D-1F393","non_qualified":null,"image":"1f468-1f3fb-200d-1f393.png","sheet_x":14,"sheet_y":5,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F468-1F3FC-200D-1F393","non_qualified":null,"image":"1f468-1f3fc-200d-1f393.png","sheet_x":14,"sheet_y":6,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F468-1F3FD-200D-1F393","non_qualified":null,"image":"1f468-1f3fd-200d-1f393.png","sheet_x":14,"sheet_y":7,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F468-1F3FE-200D-1F393","non_qualified":null,"image":"1f468-1f3fe-200d-1f393.png","sheet_x":14,"sheet_y":8,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F468-1F3FF-200D-1F393","non_qualified":null,"image":"1f468-1f3ff-200d-1f393.png","sheet_x":14,"sheet_y":9,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Student","b":"1F468-200D-1F393","d":true,"e":true,"f":true,"h":true,"j":["man_student","graduate","man","human"],"k":[14,4],"o":4},"female-student":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F469-1F3FB-200D-1F393","non_qualified":null,"image":"1f469-1f3fb-200d-1f393.png","sheet_x":17,"sheet_y":39,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F469-1F3FC-200D-1F393","non_qualified":null,"image":"1f469-1f3fc-200d-1f393.png","sheet_x":17,"sheet_y":40,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F469-1F3FD-200D-1F393","non_qualified":null,"image":"1f469-1f3fd-200d-1f393.png","sheet_x":17,"sheet_y":41,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F469-1F3FE-200D-1F393","non_qualified":null,"image":"1f469-1f3fe-200d-1f393.png","sheet_x":17,"sheet_y":42,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F469-1F3FF-200D-1F393","non_qualified":null,"image":"1f469-1f3ff-200d-1f393.png","sheet_x":17,"sheet_y":43,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Student","b":"1F469-200D-1F393","d":true,"e":true,"f":true,"h":true,"j":["woman_student","graduate","woman","human"],"k":[17,38],"o":4},"teacher":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F9D1-1F3FB-200D-1F3EB","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f3eb.png","sheet_x":47,"sheet_y":57,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D1-1F3FC-200D-1F3EB","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f3eb.png","sheet_x":47,"sheet_y":58,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D1-1F3FD-200D-1F3EB","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f3eb.png","sheet_x":47,"sheet_y":59,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D1-1F3FE-200D-1F3EB","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f3eb.png","sheet_x":47,"sheet_y":60,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D1-1F3FF-200D-1F3EB","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f3eb.png","sheet_x":48,"sheet_y":0,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Teacher","b":"1F9D1-200D-1F3EB","d":true,"e":true,"f":true,"h":true,"j":["teacher","professor"],"k":[47,56],"o":12},"male-teacher":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F468-1F3FB-200D-1F3EB","non_qualified":null,"image":"1f468-1f3fb-200d-1f3eb.png","sheet_x":14,"sheet_y":23,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F468-1F3FC-200D-1F3EB","non_qualified":null,"image":"1f468-1f3fc-200d-1f3eb.png","sheet_x":14,"sheet_y":24,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F468-1F3FD-200D-1F3EB","non_qualified":null,"image":"1f468-1f3fd-200d-1f3eb.png","sheet_x":14,"sheet_y":25,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F468-1F3FE-200D-1F3EB","non_qualified":null,"image":"1f468-1f3fe-200d-1f3eb.png","sheet_x":14,"sheet_y":26,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F468-1F3FF-200D-1F3EB","non_qualified":null,"image":"1f468-1f3ff-200d-1f3eb.png","sheet_x":14,"sheet_y":27,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Teacher","b":"1F468-200D-1F3EB","d":true,"e":true,"f":true,"h":true,"j":["man_teacher","instructor","professor","man","human"],"k":[14,22],"o":4},"female-teacher":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F469-1F3FB-200D-1F3EB","non_qualified":null,"image":"1f469-1f3fb-200d-1f3eb.png","sheet_x":17,"sheet_y":57,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F469-1F3FC-200D-1F3EB","non_qualified":null,"image":"1f469-1f3fc-200d-1f3eb.png","sheet_x":17,"sheet_y":58,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F469-1F3FD-200D-1F3EB","non_qualified":null,"image":"1f469-1f3fd-200d-1f3eb.png","sheet_x":17,"sheet_y":59,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F469-1F3FE-200D-1F3EB","non_qualified":null,"image":"1f469-1f3fe-200d-1f3eb.png","sheet_x":17,"sheet_y":60,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F469-1F3FF-200D-1F3EB","non_qualified":null,"image":"1f469-1f3ff-200d-1f3eb.png","sheet_x":18,"sheet_y":0,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Teacher","b":"1F469-200D-1F3EB","d":true,"e":true,"f":true,"h":true,"j":["woman_teacher","instructor","professor","woman","human"],"k":[17,56],"o":4},"judge":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F9D1-1F3FB-200D-2696-FE0F","non_qualified":"1F9D1-1F3FB-200D-2696","image":"1f9d1-1f3fb-200d-2696-fe0f.png","sheet_x":49,"sheet_y":57,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D1-1F3FC-200D-2696-FE0F","non_qualified":"1F9D1-1F3FC-200D-2696","image":"1f9d1-1f3fc-200d-2696-fe0f.png","sheet_x":49,"sheet_y":58,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D1-1F3FD-200D-2696-FE0F","non_qualified":"1F9D1-1F3FD-200D-2696","image":"1f9d1-1f3fd-200d-2696-fe0f.png","sheet_x":49,"sheet_y":59,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D1-1F3FE-200D-2696-FE0F","non_qualified":"1F9D1-1F3FE-200D-2696","image":"1f9d1-1f3fe-200d-2696-fe0f.png","sheet_x":49,"sheet_y":60,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D1-1F3FF-200D-2696-FE0F","non_qualified":"1F9D1-1F3FF-200D-2696","image":"1f9d1-1f3ff-200d-2696-fe0f.png","sheet_x":50,"sheet_y":0,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Judge","b":"1F9D1-200D-2696-FE0F","c":"1F9D1-200D-2696","d":true,"e":true,"f":true,"h":true,"j":["judge","law"],"k":[49,56],"o":12},"male-judge":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F468-1F3FB-200D-2696-FE0F","non_qualified":"1F468-1F3FB-200D-2696","image":"1f468-1f3fb-200d-2696-fe0f.png","sheet_x":16,"sheet_y":12,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F468-1F3FC-200D-2696-FE0F","non_qualified":"1F468-1F3FC-200D-2696","image":"1f468-1f3fc-200d-2696-fe0f.png","sheet_x":16,"sheet_y":13,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F468-1F3FD-200D-2696-FE0F","non_qualified":"1F468-1F3FD-200D-2696","image":"1f468-1f3fd-200d-2696-fe0f.png","sheet_x":16,"sheet_y":14,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F468-1F3FE-200D-2696-FE0F","non_qualified":"1F468-1F3FE-200D-2696","image":"1f468-1f3fe-200d-2696-fe0f.png","sheet_x":16,"sheet_y":15,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F468-1F3FF-200D-2696-FE0F","non_qualified":"1F468-1F3FF-200D-2696","image":"1f468-1f3ff-200d-2696-fe0f.png","sheet_x":16,"sheet_y":16,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Judge","b":"1F468-200D-2696-FE0F","c":"1F468-200D-2696","d":true,"e":true,"f":true,"h":true,"j":["man_judge","justice","court","man","human"],"k":[16,11],"o":4},"female-judge":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F469-1F3FB-200D-2696-FE0F","non_qualified":"1F469-1F3FB-200D-2696","image":"1f469-1f3fb-200d-2696-fe0f.png","sheet_x":19,"sheet_y":41,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F469-1F3FC-200D-2696-FE0F","non_qualified":"1F469-1F3FC-200D-2696","image":"1f469-1f3fc-200d-2696-fe0f.png","sheet_x":19,"sheet_y":42,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F469-1F3FD-200D-2696-FE0F","non_qualified":"1F469-1F3FD-200D-2696","image":"1f469-1f3fd-200d-2696-fe0f.png","sheet_x":19,"sheet_y":43,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F469-1F3FE-200D-2696-FE0F","non_qualified":"1F469-1F3FE-200D-2696","image":"1f469-1f3fe-200d-2696-fe0f.png","sheet_x":19,"sheet_y":44,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F469-1F3FF-200D-2696-FE0F","non_qualified":"1F469-1F3FF-200D-2696","image":"1f469-1f3ff-200d-2696-fe0f.png","sheet_x":19,"sheet_y":45,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Judge","b":"1F469-200D-2696-FE0F","c":"1F469-200D-2696","d":true,"e":true,"f":true,"h":true,"j":["woman_judge","justice","court","woman","human"],"k":[19,40],"o":4},"farmer":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F9D1-1F3FB-200D-1F33E","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f33e.png","sheet_x":47,"sheet_y":15,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D1-1F3FC-200D-1F33E","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f33e.png","sheet_x":47,"sheet_y":16,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D1-1F3FD-200D-1F33E","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f33e.png","sheet_x":47,"sheet_y":17,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D1-1F3FE-200D-1F33E","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f33e.png","sheet_x":47,"sheet_y":18,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D1-1F3FF-200D-1F33E","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f33e.png","sheet_x":47,"sheet_y":19,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Farmer","b":"1F9D1-200D-1F33E","d":true,"e":true,"f":true,"h":true,"j":["farmer","crops"],"k":[47,14],"o":12},"male-farmer":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F468-1F3FB-200D-1F33E","non_qualified":null,"image":"1f468-1f3fb-200d-1f33e.png","sheet_x":13,"sheet_y":48,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F468-1F3FC-200D-1F33E","non_qualified":null,"image":"1f468-1f3fc-200d-1f33e.png","sheet_x":13,"sheet_y":49,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F468-1F3FD-200D-1F33E","non_qualified":null,"image":"1f468-1f3fd-200d-1f33e.png","sheet_x":13,"sheet_y":50,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F468-1F3FE-200D-1F33E","non_qualified":null,"image":"1f468-1f3fe-200d-1f33e.png","sheet_x":13,"sheet_y":51,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F468-1F3FF-200D-1F33E","non_qualified":null,"image":"1f468-1f3ff-200d-1f33e.png","sheet_x":13,"sheet_y":52,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Farmer","b":"1F468-200D-1F33E","d":true,"e":true,"f":true,"h":true,"j":["man_farmer","rancher","gardener","man","human"],"k":[13,47],"o":4},"female-farmer":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F469-1F3FB-200D-1F33E","non_qualified":null,"image":"1f469-1f3fb-200d-1f33e.png","sheet_x":17,"sheet_y":21,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F469-1F3FC-200D-1F33E","non_qualified":null,"image":"1f469-1f3fc-200d-1f33e.png","sheet_x":17,"sheet_y":22,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F469-1F3FD-200D-1F33E","non_qualified":null,"image":"1f469-1f3fd-200d-1f33e.png","sheet_x":17,"sheet_y":23,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F469-1F3FE-200D-1F33E","non_qualified":null,"image":"1f469-1f3fe-200d-1f33e.png","sheet_x":17,"sheet_y":24,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F469-1F3FF-200D-1F33E","non_qualified":null,"image":"1f469-1f3ff-200d-1f33e.png","sheet_x":17,"sheet_y":25,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Farmer","b":"1F469-200D-1F33E","d":true,"e":true,"f":true,"h":true,"j":["woman_farmer","rancher","gardener","woman","human"],"k":[17,20],"o":4},"cook":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F9D1-1F3FB-200D-1F373","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f373.png","sheet_x":47,"sheet_y":21,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D1-1F3FC-200D-1F373","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f373.png","sheet_x":47,"sheet_y":22,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D1-1F3FD-200D-1F373","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f373.png","sheet_x":47,"sheet_y":23,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D1-1F3FE-200D-1F373","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f373.png","sheet_x":47,"sheet_y":24,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D1-1F3FF-200D-1F373","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f373.png","sheet_x":47,"sheet_y":25,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Cook","b":"1F9D1-200D-1F373","d":true,"e":true,"f":true,"h":true,"j":["cook","food","kitchen","culinary"],"k":[47,20],"o":12},"male-cook":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F468-1F3FB-200D-1F373","non_qualified":null,"image":"1f468-1f3fb-200d-1f373.png","sheet_x":13,"sheet_y":54,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F468-1F3FC-200D-1F373","non_qualified":null,"image":"1f468-1f3fc-200d-1f373.png","sheet_x":13,"sheet_y":55,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F468-1F3FD-200D-1F373","non_qualified":null,"image":"1f468-1f3fd-200d-1f373.png","sheet_x":13,"sheet_y":56,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F468-1F3FE-200D-1F373","non_qualified":null,"image":"1f468-1f3fe-200d-1f373.png","sheet_x":13,"sheet_y":57,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F468-1F3FF-200D-1F373","non_qualified":null,"image":"1f468-1f3ff-200d-1f373.png","sheet_x":13,"sheet_y":58,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Cook","b":"1F468-200D-1F373","d":true,"e":true,"f":true,"h":true,"j":["man_cook","chef","man","human"],"k":[13,53],"o":4},"female-cook":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F469-1F3FB-200D-1F373","non_qualified":null,"image":"1f469-1f3fb-200d-1f373.png","sheet_x":17,"sheet_y":27,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F469-1F3FC-200D-1F373","non_qualified":null,"image":"1f469-1f3fc-200d-1f373.png","sheet_x":17,"sheet_y":28,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F469-1F3FD-200D-1F373","non_qualified":null,"image":"1f469-1f3fd-200d-1f373.png","sheet_x":17,"sheet_y":29,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F469-1F3FE-200D-1F373","non_qualified":null,"image":"1f469-1f3fe-200d-1f373.png","sheet_x":17,"sheet_y":30,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F469-1F3FF-200D-1F373","non_qualified":null,"image":"1f469-1f3ff-200d-1f373.png","sheet_x":17,"sheet_y":31,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Cook","b":"1F469-200D-1F373","d":true,"e":true,"f":true,"h":true,"j":["woman_cook","chef","woman","human"],"k":[17,26],"o":4},"mechanic":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F9D1-1F3FB-200D-1F527","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f527.png","sheet_x":48,"sheet_y":20,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D1-1F3FC-200D-1F527","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f527.png","sheet_x":48,"sheet_y":21,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D1-1F3FD-200D-1F527","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f527.png","sheet_x":48,"sheet_y":22,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D1-1F3FE-200D-1F527","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f527.png","sheet_x":48,"sheet_y":23,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D1-1F3FF-200D-1F527","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f527.png","sheet_x":48,"sheet_y":24,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Mechanic","b":"1F9D1-200D-1F527","d":true,"e":true,"f":true,"h":true,"j":["mechanic","worker","technician"],"k":[48,19],"o":12},"male-mechanic":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F468-1F3FB-200D-1F527","non_qualified":null,"image":"1f468-1f3fb-200d-1f527.png","sheet_x":15,"sheet_y":1,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F468-1F3FC-200D-1F527","non_qualified":null,"image":"1f468-1f3fc-200d-1f527.png","sheet_x":15,"sheet_y":2,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F468-1F3FD-200D-1F527","non_qualified":null,"image":"1f468-1f3fd-200d-1f527.png","sheet_x":15,"sheet_y":3,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F468-1F3FE-200D-1F527","non_qualified":null,"image":"1f468-1f3fe-200d-1f527.png","sheet_x":15,"sheet_y":4,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F468-1F3FF-200D-1F527","non_qualified":null,"image":"1f468-1f3ff-200d-1f527.png","sheet_x":15,"sheet_y":5,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Mechanic","b":"1F468-200D-1F527","d":true,"e":true,"f":true,"h":true,"j":["man_mechanic","plumber","man","human","wrench"],"k":[15,0],"o":4},"female-mechanic":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F469-1F3FB-200D-1F527","non_qualified":null,"image":"1f469-1f3fb-200d-1f527.png","sheet_x":18,"sheet_y":30,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F469-1F3FC-200D-1F527","non_qualified":null,"image":"1f469-1f3fc-200d-1f527.png","sheet_x":18,"sheet_y":31,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F469-1F3FD-200D-1F527","non_qualified":null,"image":"1f469-1f3fd-200d-1f527.png","sheet_x":18,"sheet_y":32,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F469-1F3FE-200D-1F527","non_qualified":null,"image":"1f469-1f3fe-200d-1f527.png","sheet_x":18,"sheet_y":33,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F469-1F3FF-200D-1F527","non_qualified":null,"image":"1f469-1f3ff-200d-1f527.png","sheet_x":18,"sheet_y":34,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Mechanic","b":"1F469-200D-1F527","d":true,"e":true,"f":true,"h":true,"j":["woman_mechanic","plumber","woman","human","wrench"],"k":[18,29],"o":4},"factory_worker":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F9D1-1F3FB-200D-1F3ED","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f3ed.png","sheet_x":48,"sheet_y":2,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D1-1F3FC-200D-1F3ED","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f3ed.png","sheet_x":48,"sheet_y":3,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D1-1F3FD-200D-1F3ED","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f3ed.png","sheet_x":48,"sheet_y":4,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D1-1F3FE-200D-1F3ED","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f3ed.png","sheet_x":48,"sheet_y":5,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D1-1F3FF-200D-1F3ED","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f3ed.png","sheet_x":48,"sheet_y":6,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Factory Worker","b":"1F9D1-200D-1F3ED","d":true,"e":true,"f":true,"h":true,"j":["factory_worker","labor"],"k":[48,1],"o":12},"male-factory-worker":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F468-1F3FB-200D-1F3ED","non_qualified":null,"image":"1f468-1f3fb-200d-1f3ed.png","sheet_x":14,"sheet_y":29,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F468-1F3FC-200D-1F3ED","non_qualified":null,"image":"1f468-1f3fc-200d-1f3ed.png","sheet_x":14,"sheet_y":30,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F468-1F3FD-200D-1F3ED","non_qualified":null,"image":"1f468-1f3fd-200d-1f3ed.png","sheet_x":14,"sheet_y":31,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F468-1F3FE-200D-1F3ED","non_qualified":null,"image":"1f468-1f3fe-200d-1f3ed.png","sheet_x":14,"sheet_y":32,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F468-1F3FF-200D-1F3ED","non_qualified":null,"image":"1f468-1f3ff-200d-1f3ed.png","sheet_x":14,"sheet_y":33,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Factory Worker","b":"1F468-200D-1F3ED","d":true,"e":true,"f":true,"h":true,"j":["man_factory_worker","assembly","industrial","man","human"],"k":[14,28],"o":4},"female-factory-worker":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F469-1F3FB-200D-1F3ED","non_qualified":null,"image":"1f469-1f3fb-200d-1f3ed.png","sheet_x":18,"sheet_y":2,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F469-1F3FC-200D-1F3ED","non_qualified":null,"image":"1f469-1f3fc-200d-1f3ed.png","sheet_x":18,"sheet_y":3,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F469-1F3FD-200D-1F3ED","non_qualified":null,"image":"1f469-1f3fd-200d-1f3ed.png","sheet_x":18,"sheet_y":4,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F469-1F3FE-200D-1F3ED","non_qualified":null,"image":"1f469-1f3fe-200d-1f3ed.png","sheet_x":18,"sheet_y":5,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F469-1F3FF-200D-1F3ED","non_qualified":null,"image":"1f469-1f3ff-200d-1f3ed.png","sheet_x":18,"sheet_y":6,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Factory Worker","b":"1F469-200D-1F3ED","d":true,"e":true,"f":true,"h":true,"j":["woman_factory_worker","assembly","industrial","woman","human"],"k":[18,1],"o":4},"office_worker":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F9D1-1F3FB-200D-1F4BC","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f4bc.png","sheet_x":48,"sheet_y":14,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D1-1F3FC-200D-1F4BC","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f4bc.png","sheet_x":48,"sheet_y":15,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D1-1F3FD-200D-1F4BC","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f4bc.png","sheet_x":48,"sheet_y":16,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D1-1F3FE-200D-1F4BC","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f4bc.png","sheet_x":48,"sheet_y":17,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D1-1F3FF-200D-1F4BC","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f4bc.png","sheet_x":48,"sheet_y":18,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Office Worker","b":"1F9D1-200D-1F4BC","d":true,"e":true,"f":true,"h":true,"j":["office_worker","business"],"k":[48,13],"o":12},"male-office-worker":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F468-1F3FB-200D-1F4BC","non_qualified":null,"image":"1f468-1f3fb-200d-1f4bc.png","sheet_x":14,"sheet_y":56,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F468-1F3FC-200D-1F4BC","non_qualified":null,"image":"1f468-1f3fc-200d-1f4bc.png","sheet_x":14,"sheet_y":57,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F468-1F3FD-200D-1F4BC","non_qualified":null,"image":"1f468-1f3fd-200d-1f4bc.png","sheet_x":14,"sheet_y":58,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F468-1F3FE-200D-1F4BC","non_qualified":null,"image":"1f468-1f3fe-200d-1f4bc.png","sheet_x":14,"sheet_y":59,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F468-1F3FF-200D-1F4BC","non_qualified":null,"image":"1f468-1f3ff-200d-1f4bc.png","sheet_x":14,"sheet_y":60,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Office Worker","b":"1F468-200D-1F4BC","d":true,"e":true,"f":true,"h":true,"j":["man_office_worker","business","manager","man","human"],"k":[14,55],"o":4},"female-office-worker":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F469-1F3FB-200D-1F4BC","non_qualified":null,"image":"1f469-1f3fb-200d-1f4bc.png","sheet_x":18,"sheet_y":24,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F469-1F3FC-200D-1F4BC","non_qualified":null,"image":"1f469-1f3fc-200d-1f4bc.png","sheet_x":18,"sheet_y":25,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F469-1F3FD-200D-1F4BC","non_qualified":null,"image":"1f469-1f3fd-200d-1f4bc.png","sheet_x":18,"sheet_y":26,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F469-1F3FE-200D-1F4BC","non_qualified":null,"image":"1f469-1f3fe-200d-1f4bc.png","sheet_x":18,"sheet_y":27,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F469-1F3FF-200D-1F4BC","non_qualified":null,"image":"1f469-1f3ff-200d-1f4bc.png","sheet_x":18,"sheet_y":28,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Office Worker","b":"1F469-200D-1F4BC","d":true,"e":true,"f":true,"h":true,"j":["woman_office_worker","business","manager","woman","human"],"k":[18,23],"o":4},"scientist":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F9D1-1F3FB-200D-1F52C","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f52c.png","sheet_x":48,"sheet_y":26,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D1-1F3FC-200D-1F52C","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f52c.png","sheet_x":48,"sheet_y":27,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D1-1F3FD-200D-1F52C","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f52c.png","sheet_x":48,"sheet_y":28,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D1-1F3FE-200D-1F52C","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f52c.png","sheet_x":48,"sheet_y":29,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D1-1F3FF-200D-1F52C","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f52c.png","sheet_x":48,"sheet_y":30,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Scientist","b":"1F9D1-200D-1F52C","d":true,"e":true,"f":true,"h":true,"j":["scientist","chemistry"],"k":[48,25],"o":12},"male-scientist":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F468-1F3FB-200D-1F52C","non_qualified":null,"image":"1f468-1f3fb-200d-1f52c.png","sheet_x":15,"sheet_y":7,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F468-1F3FC-200D-1F52C","non_qualified":null,"image":"1f468-1f3fc-200d-1f52c.png","sheet_x":15,"sheet_y":8,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F468-1F3FD-200D-1F52C","non_qualified":null,"image":"1f468-1f3fd-200d-1f52c.png","sheet_x":15,"sheet_y":9,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F468-1F3FE-200D-1F52C","non_qualified":null,"image":"1f468-1f3fe-200d-1f52c.png","sheet_x":15,"sheet_y":10,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F468-1F3FF-200D-1F52C","non_qualified":null,"image":"1f468-1f3ff-200d-1f52c.png","sheet_x":15,"sheet_y":11,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Scientist","b":"1F468-200D-1F52C","d":true,"e":true,"f":true,"h":true,"j":["man_scientist","biologist","chemist","engineer","physicist","man","human"],"k":[15,6],"o":4},"female-scientist":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F469-1F3FB-200D-1F52C","non_qualified":null,"image":"1f469-1f3fb-200d-1f52c.png","sheet_x":18,"sheet_y":36,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F469-1F3FC-200D-1F52C","non_qualified":null,"image":"1f469-1f3fc-200d-1f52c.png","sheet_x":18,"sheet_y":37,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F469-1F3FD-200D-1F52C","non_qualified":null,"image":"1f469-1f3fd-200d-1f52c.png","sheet_x":18,"sheet_y":38,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F469-1F3FE-200D-1F52C","non_qualified":null,"image":"1f469-1f3fe-200d-1f52c.png","sheet_x":18,"sheet_y":39,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F469-1F3FF-200D-1F52C","non_qualified":null,"image":"1f469-1f3ff-200d-1f52c.png","sheet_x":18,"sheet_y":40,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Scientist","b":"1F469-200D-1F52C","d":true,"e":true,"f":true,"h":true,"j":["woman_scientist","biologist","chemist","engineer","physicist","woman","human"],"k":[18,35],"o":4},"technologist":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F9D1-1F3FB-200D-1F4BB","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f4bb.png","sheet_x":48,"sheet_y":8,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D1-1F3FC-200D-1F4BB","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f4bb.png","sheet_x":48,"sheet_y":9,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D1-1F3FD-200D-1F4BB","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f4bb.png","sheet_x":48,"sheet_y":10,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D1-1F3FE-200D-1F4BB","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f4bb.png","sheet_x":48,"sheet_y":11,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D1-1F3FF-200D-1F4BB","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f4bb.png","sheet_x":48,"sheet_y":12,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Technologist","b":"1F9D1-200D-1F4BB","d":true,"e":true,"f":true,"h":true,"j":["technologist","computer"],"k":[48,7],"o":12},"male-technologist":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F468-1F3FB-200D-1F4BB","non_qualified":null,"image":"1f468-1f3fb-200d-1f4bb.png","sheet_x":14,"sheet_y":50,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F468-1F3FC-200D-1F4BB","non_qualified":null,"image":"1f468-1f3fc-200d-1f4bb.png","sheet_x":14,"sheet_y":51,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F468-1F3FD-200D-1F4BB","non_qualified":null,"image":"1f468-1f3fd-200d-1f4bb.png","sheet_x":14,"sheet_y":52,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F468-1F3FE-200D-1F4BB","non_qualified":null,"image":"1f468-1f3fe-200d-1f4bb.png","sheet_x":14,"sheet_y":53,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F468-1F3FF-200D-1F4BB","non_qualified":null,"image":"1f468-1f3ff-200d-1f4bb.png","sheet_x":14,"sheet_y":54,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Technologist","b":"1F468-200D-1F4BB","d":true,"e":true,"f":true,"h":true,"j":["man_technologist","coder","developer","engineer","programmer","software","man","human","laptop","computer"],"k":[14,49],"o":4},"female-technologist":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F469-1F3FB-200D-1F4BB","non_qualified":null,"image":"1f469-1f3fb-200d-1f4bb.png","sheet_x":18,"sheet_y":18,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F469-1F3FC-200D-1F4BB","non_qualified":null,"image":"1f469-1f3fc-200d-1f4bb.png","sheet_x":18,"sheet_y":19,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F469-1F3FD-200D-1F4BB","non_qualified":null,"image":"1f469-1f3fd-200d-1f4bb.png","sheet_x":18,"sheet_y":20,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F469-1F3FE-200D-1F4BB","non_qualified":null,"image":"1f469-1f3fe-200d-1f4bb.png","sheet_x":18,"sheet_y":21,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F469-1F3FF-200D-1F4BB","non_qualified":null,"image":"1f469-1f3ff-200d-1f4bb.png","sheet_x":18,"sheet_y":22,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Technologist","b":"1F469-200D-1F4BB","d":true,"e":true,"f":true,"h":true,"j":["woman_technologist","coder","developer","engineer","programmer","software","woman","human","laptop","computer"],"k":[18,17],"o":4},"singer":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F9D1-1F3FB-200D-1F3A4","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f3a4.png","sheet_x":47,"sheet_y":45,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D1-1F3FC-200D-1F3A4","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f3a4.png","sheet_x":47,"sheet_y":46,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D1-1F3FD-200D-1F3A4","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f3a4.png","sheet_x":47,"sheet_y":47,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D1-1F3FE-200D-1F3A4","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f3a4.png","sheet_x":47,"sheet_y":48,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D1-1F3FF-200D-1F3A4","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f3a4.png","sheet_x":47,"sheet_y":49,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Singer","b":"1F9D1-200D-1F3A4","d":true,"e":true,"f":true,"h":true,"j":["singer","song","artist","performer"],"k":[47,44],"o":12},"male-singer":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F468-1F3FB-200D-1F3A4","non_qualified":null,"image":"1f468-1f3fb-200d-1f3a4.png","sheet_x":14,"sheet_y":11,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F468-1F3FC-200D-1F3A4","non_qualified":null,"image":"1f468-1f3fc-200d-1f3a4.png","sheet_x":14,"sheet_y":12,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F468-1F3FD-200D-1F3A4","non_qualified":null,"image":"1f468-1f3fd-200d-1f3a4.png","sheet_x":14,"sheet_y":13,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F468-1F3FE-200D-1F3A4","non_qualified":null,"image":"1f468-1f3fe-200d-1f3a4.png","sheet_x":14,"sheet_y":14,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F468-1F3FF-200D-1F3A4","non_qualified":null,"image":"1f468-1f3ff-200d-1f3a4.png","sheet_x":14,"sheet_y":15,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Singer","b":"1F468-200D-1F3A4","d":true,"e":true,"f":true,"h":true,"j":["man_singer","rockstar","entertainer","man","human"],"k":[14,10],"o":4},"female-singer":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F469-1F3FB-200D-1F3A4","non_qualified":null,"image":"1f469-1f3fb-200d-1f3a4.png","sheet_x":17,"sheet_y":45,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F469-1F3FC-200D-1F3A4","non_qualified":null,"image":"1f469-1f3fc-200d-1f3a4.png","sheet_x":17,"sheet_y":46,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F469-1F3FD-200D-1F3A4","non_qualified":null,"image":"1f469-1f3fd-200d-1f3a4.png","sheet_x":17,"sheet_y":47,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F469-1F3FE-200D-1F3A4","non_qualified":null,"image":"1f469-1f3fe-200d-1f3a4.png","sheet_x":17,"sheet_y":48,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F469-1F3FF-200D-1F3A4","non_qualified":null,"image":"1f469-1f3ff-200d-1f3a4.png","sheet_x":17,"sheet_y":49,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Singer","b":"1F469-200D-1F3A4","d":true,"e":true,"f":true,"h":true,"j":["woman_singer","rockstar","entertainer","woman","human"],"k":[17,44],"o":4},"artist":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F9D1-1F3FB-200D-1F3A8","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f3a8.png","sheet_x":47,"sheet_y":51,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D1-1F3FC-200D-1F3A8","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f3a8.png","sheet_x":47,"sheet_y":52,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D1-1F3FD-200D-1F3A8","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f3a8.png","sheet_x":47,"sheet_y":53,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D1-1F3FE-200D-1F3A8","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f3a8.png","sheet_x":47,"sheet_y":54,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D1-1F3FF-200D-1F3A8","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f3a8.png","sheet_x":47,"sheet_y":55,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Artist","b":"1F9D1-200D-1F3A8","d":true,"e":true,"f":true,"h":true,"j":["artist","painting","draw","creativity"],"k":[47,50],"o":12},"male-artist":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F468-1F3FB-200D-1F3A8","non_qualified":null,"image":"1f468-1f3fb-200d-1f3a8.png","sheet_x":14,"sheet_y":17,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F468-1F3FC-200D-1F3A8","non_qualified":null,"image":"1f468-1f3fc-200d-1f3a8.png","sheet_x":14,"sheet_y":18,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F468-1F3FD-200D-1F3A8","non_qualified":null,"image":"1f468-1f3fd-200d-1f3a8.png","sheet_x":14,"sheet_y":19,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F468-1F3FE-200D-1F3A8","non_qualified":null,"image":"1f468-1f3fe-200d-1f3a8.png","sheet_x":14,"sheet_y":20,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F468-1F3FF-200D-1F3A8","non_qualified":null,"image":"1f468-1f3ff-200d-1f3a8.png","sheet_x":14,"sheet_y":21,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Artist","b":"1F468-200D-1F3A8","d":true,"e":true,"f":true,"h":true,"j":["man_artist","painter","man","human"],"k":[14,16],"o":4},"female-artist":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F469-1F3FB-200D-1F3A8","non_qualified":null,"image":"1f469-1f3fb-200d-1f3a8.png","sheet_x":17,"sheet_y":51,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F469-1F3FC-200D-1F3A8","non_qualified":null,"image":"1f469-1f3fc-200d-1f3a8.png","sheet_x":17,"sheet_y":52,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F469-1F3FD-200D-1F3A8","non_qualified":null,"image":"1f469-1f3fd-200d-1f3a8.png","sheet_x":17,"sheet_y":53,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F469-1F3FE-200D-1F3A8","non_qualified":null,"image":"1f469-1f3fe-200d-1f3a8.png","sheet_x":17,"sheet_y":54,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F469-1F3FF-200D-1F3A8","non_qualified":null,"image":"1f469-1f3ff-200d-1f3a8.png","sheet_x":17,"sheet_y":55,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Artist","b":"1F469-200D-1F3A8","d":true,"e":true,"f":true,"h":true,"j":["woman_artist","painter","woman","human"],"k":[17,50],"o":4},"pilot":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F9D1-1F3FB-200D-2708-FE0F","non_qualified":"1F9D1-1F3FB-200D-2708","image":"1f9d1-1f3fb-200d-2708-fe0f.png","sheet_x":50,"sheet_y":2,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D1-1F3FC-200D-2708-FE0F","non_qualified":"1F9D1-1F3FC-200D-2708","image":"1f9d1-1f3fc-200d-2708-fe0f.png","sheet_x":50,"sheet_y":3,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D1-1F3FD-200D-2708-FE0F","non_qualified":"1F9D1-1F3FD-200D-2708","image":"1f9d1-1f3fd-200d-2708-fe0f.png","sheet_x":50,"sheet_y":4,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D1-1F3FE-200D-2708-FE0F","non_qualified":"1F9D1-1F3FE-200D-2708","image":"1f9d1-1f3fe-200d-2708-fe0f.png","sheet_x":50,"sheet_y":5,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D1-1F3FF-200D-2708-FE0F","non_qualified":"1F9D1-1F3FF-200D-2708","image":"1f9d1-1f3ff-200d-2708-fe0f.png","sheet_x":50,"sheet_y":6,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Pilot","b":"1F9D1-200D-2708-FE0F","c":"1F9D1-200D-2708","d":true,"e":true,"f":true,"h":true,"j":["pilot","fly","plane","airplane"],"k":[50,1],"o":12},"male-pilot":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F468-1F3FB-200D-2708-FE0F","non_qualified":"1F468-1F3FB-200D-2708","image":"1f468-1f3fb-200d-2708-fe0f.png","sheet_x":16,"sheet_y":18,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F468-1F3FC-200D-2708-FE0F","non_qualified":"1F468-1F3FC-200D-2708","image":"1f468-1f3fc-200d-2708-fe0f.png","sheet_x":16,"sheet_y":19,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F468-1F3FD-200D-2708-FE0F","non_qualified":"1F468-1F3FD-200D-2708","image":"1f468-1f3fd-200d-2708-fe0f.png","sheet_x":16,"sheet_y":20,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F468-1F3FE-200D-2708-FE0F","non_qualified":"1F468-1F3FE-200D-2708","image":"1f468-1f3fe-200d-2708-fe0f.png","sheet_x":16,"sheet_y":21,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F468-1F3FF-200D-2708-FE0F","non_qualified":"1F468-1F3FF-200D-2708","image":"1f468-1f3ff-200d-2708-fe0f.png","sheet_x":16,"sheet_y":22,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Pilot","b":"1F468-200D-2708-FE0F","c":"1F468-200D-2708","d":true,"e":true,"f":true,"h":true,"j":["man_pilot","aviator","plane","man","human"],"k":[16,17],"o":4},"female-pilot":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F469-1F3FB-200D-2708-FE0F","non_qualified":"1F469-1F3FB-200D-2708","image":"1f469-1f3fb-200d-2708-fe0f.png","sheet_x":19,"sheet_y":47,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F469-1F3FC-200D-2708-FE0F","non_qualified":"1F469-1F3FC-200D-2708","image":"1f469-1f3fc-200d-2708-fe0f.png","sheet_x":19,"sheet_y":48,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F469-1F3FD-200D-2708-FE0F","non_qualified":"1F469-1F3FD-200D-2708","image":"1f469-1f3fd-200d-2708-fe0f.png","sheet_x":19,"sheet_y":49,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F469-1F3FE-200D-2708-FE0F","non_qualified":"1F469-1F3FE-200D-2708","image":"1f469-1f3fe-200d-2708-fe0f.png","sheet_x":19,"sheet_y":50,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F469-1F3FF-200D-2708-FE0F","non_qualified":"1F469-1F3FF-200D-2708","image":"1f469-1f3ff-200d-2708-fe0f.png","sheet_x":19,"sheet_y":51,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Pilot","b":"1F469-200D-2708-FE0F","c":"1F469-200D-2708","d":true,"e":true,"f":true,"h":true,"j":["woman_pilot","aviator","plane","woman","human"],"k":[19,46],"o":4},"astronaut":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F9D1-1F3FB-200D-1F680","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f680.png","sheet_x":48,"sheet_y":32,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D1-1F3FC-200D-1F680","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f680.png","sheet_x":48,"sheet_y":33,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D1-1F3FD-200D-1F680","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f680.png","sheet_x":48,"sheet_y":34,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D1-1F3FE-200D-1F680","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f680.png","sheet_x":48,"sheet_y":35,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D1-1F3FF-200D-1F680","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f680.png","sheet_x":48,"sheet_y":36,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Astronaut","b":"1F9D1-200D-1F680","d":true,"e":true,"f":true,"h":true,"j":["astronaut","outerspace"],"k":[48,31],"o":12},"male-astronaut":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F468-1F3FB-200D-1F680","non_qualified":null,"image":"1f468-1f3fb-200d-1f680.png","sheet_x":15,"sheet_y":13,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F468-1F3FC-200D-1F680","non_qualified":null,"image":"1f468-1f3fc-200d-1f680.png","sheet_x":15,"sheet_y":14,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F468-1F3FD-200D-1F680","non_qualified":null,"image":"1f468-1f3fd-200d-1f680.png","sheet_x":15,"sheet_y":15,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F468-1F3FE-200D-1F680","non_qualified":null,"image":"1f468-1f3fe-200d-1f680.png","sheet_x":15,"sheet_y":16,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F468-1F3FF-200D-1F680","non_qualified":null,"image":"1f468-1f3ff-200d-1f680.png","sheet_x":15,"sheet_y":17,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Astronaut","b":"1F468-200D-1F680","d":true,"e":true,"f":true,"h":true,"j":["man_astronaut","space","rocket","man","human"],"k":[15,12],"o":4},"female-astronaut":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F469-1F3FB-200D-1F680","non_qualified":null,"image":"1f469-1f3fb-200d-1f680.png","sheet_x":18,"sheet_y":42,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F469-1F3FC-200D-1F680","non_qualified":null,"image":"1f469-1f3fc-200d-1f680.png","sheet_x":18,"sheet_y":43,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F469-1F3FD-200D-1F680","non_qualified":null,"image":"1f469-1f3fd-200d-1f680.png","sheet_x":18,"sheet_y":44,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F469-1F3FE-200D-1F680","non_qualified":null,"image":"1f469-1f3fe-200d-1f680.png","sheet_x":18,"sheet_y":45,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F469-1F3FF-200D-1F680","non_qualified":null,"image":"1f469-1f3ff-200d-1f680.png","sheet_x":18,"sheet_y":46,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Astronaut","b":"1F469-200D-1F680","d":true,"e":true,"f":true,"h":true,"j":["woman_astronaut","space","rocket","woman","human"],"k":[18,41],"o":4},"firefighter":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F9D1-1F3FB-200D-1F692","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f692.png","sheet_x":48,"sheet_y":38,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D1-1F3FC-200D-1F692","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f692.png","sheet_x":48,"sheet_y":39,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D1-1F3FD-200D-1F692","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f692.png","sheet_x":48,"sheet_y":40,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D1-1F3FE-200D-1F692","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f692.png","sheet_x":48,"sheet_y":41,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D1-1F3FF-200D-1F692","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f692.png","sheet_x":48,"sheet_y":42,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Firefighter","b":"1F9D1-200D-1F692","d":true,"e":true,"f":true,"h":true,"j":["firefighter","fire"],"k":[48,37],"o":12},"male-firefighter":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F468-1F3FB-200D-1F692","non_qualified":null,"image":"1f468-1f3fb-200d-1f692.png","sheet_x":15,"sheet_y":19,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F468-1F3FC-200D-1F692","non_qualified":null,"image":"1f468-1f3fc-200d-1f692.png","sheet_x":15,"sheet_y":20,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F468-1F3FD-200D-1F692","non_qualified":null,"image":"1f468-1f3fd-200d-1f692.png","sheet_x":15,"sheet_y":21,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F468-1F3FE-200D-1F692","non_qualified":null,"image":"1f468-1f3fe-200d-1f692.png","sheet_x":15,"sheet_y":22,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F468-1F3FF-200D-1F692","non_qualified":null,"image":"1f468-1f3ff-200d-1f692.png","sheet_x":15,"sheet_y":23,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Firefighter","b":"1F468-200D-1F692","d":true,"e":true,"f":true,"h":true,"j":["man_firefighter","fireman","man","human"],"k":[15,18],"o":4},"female-firefighter":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F469-1F3FB-200D-1F692","non_qualified":null,"image":"1f469-1f3fb-200d-1f692.png","sheet_x":18,"sheet_y":48,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F469-1F3FC-200D-1F692","non_qualified":null,"image":"1f469-1f3fc-200d-1f692.png","sheet_x":18,"sheet_y":49,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F469-1F3FD-200D-1F692","non_qualified":null,"image":"1f469-1f3fd-200d-1f692.png","sheet_x":18,"sheet_y":50,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F469-1F3FE-200D-1F692","non_qualified":null,"image":"1f469-1f3fe-200d-1f692.png","sheet_x":18,"sheet_y":51,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F469-1F3FF-200D-1F692","non_qualified":null,"image":"1f469-1f3ff-200d-1f692.png","sheet_x":18,"sheet_y":52,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Firefighter","b":"1F469-200D-1F692","d":true,"e":true,"f":true,"h":true,"j":["woman_firefighter","fireman","woman","human"],"k":[18,47],"o":4},"cop":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F46E-1F3FB","non_qualified":null,"image":"1f46e-1f3fb.png","sheet_x":23,"sheet_y":10,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F46E-1F3FC","non_qualified":null,"image":"1f46e-1f3fc.png","sheet_x":23,"sheet_y":11,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F46E-1F3FD","non_qualified":null,"image":"1f46e-1f3fd.png","sheet_x":23,"sheet_y":12,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F46E-1F3FE","non_qualified":null,"image":"1f46e-1f3fe.png","sheet_x":23,"sheet_y":13,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F46E-1F3FF","non_qualified":null,"image":"1f46e-1f3ff.png","sheet_x":23,"sheet_y":14,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoleted_by":"1F46E-200D-2642-FE0F","a":"Police Officer","b":"1F46E","d":true,"e":true,"f":true,"h":true,"j":["police_officer","cop"],"k":[23,9],"o":0},"male-police-officer":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F46E-1F3FB-200D-2642-FE0F","non_qualified":"1F46E-1F3FB-200D-2642","image":"1f46e-1f3fb-200d-2642-fe0f.png","sheet_x":23,"sheet_y":4,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F46E-1F3FC-200D-2642-FE0F","non_qualified":"1F46E-1F3FC-200D-2642","image":"1f46e-1f3fc-200d-2642-fe0f.png","sheet_x":23,"sheet_y":5,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F46E-1F3FD-200D-2642-FE0F","non_qualified":"1F46E-1F3FD-200D-2642","image":"1f46e-1f3fd-200d-2642-fe0f.png","sheet_x":23,"sheet_y":6,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F46E-1F3FE-200D-2642-FE0F","non_qualified":"1F46E-1F3FE-200D-2642","image":"1f46e-1f3fe-200d-2642-fe0f.png","sheet_x":23,"sheet_y":7,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F46E-1F3FF-200D-2642-FE0F","non_qualified":"1F46E-1F3FF-200D-2642","image":"1f46e-1f3ff-200d-2642-fe0f.png","sheet_x":23,"sheet_y":8,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoletes":"1F46E","a":"Man Police Officer","b":"1F46E-200D-2642-FE0F","c":"1F46E-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_police_officer","man","police","law","legal","enforcement","arrest","911"],"k":[23,3],"o":4},"female-police-officer":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F46E-1F3FB-200D-2640-FE0F","non_qualified":"1F46E-1F3FB-200D-2640","image":"1f46e-1f3fb-200d-2640-fe0f.png","sheet_x":22,"sheet_y":59,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F46E-1F3FC-200D-2640-FE0F","non_qualified":"1F46E-1F3FC-200D-2640","image":"1f46e-1f3fc-200d-2640-fe0f.png","sheet_x":22,"sheet_y":60,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F46E-1F3FD-200D-2640-FE0F","non_qualified":"1F46E-1F3FD-200D-2640","image":"1f46e-1f3fd-200d-2640-fe0f.png","sheet_x":23,"sheet_y":0,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F46E-1F3FE-200D-2640-FE0F","non_qualified":"1F46E-1F3FE-200D-2640","image":"1f46e-1f3fe-200d-2640-fe0f.png","sheet_x":23,"sheet_y":1,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F46E-1F3FF-200D-2640-FE0F","non_qualified":"1F46E-1F3FF-200D-2640","image":"1f46e-1f3ff-200d-2640-fe0f.png","sheet_x":23,"sheet_y":2,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Police Officer","b":"1F46E-200D-2640-FE0F","c":"1F46E-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_police_officer","woman","police","law","legal","enforcement","arrest","911","female"],"k":[22,58],"o":4},"sleuth_or_spy":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F575-1F3FB","non_qualified":null,"image":"1f575-1f3fb.png","sheet_x":31,"sheet_y":18,"added_in":"2.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F575-1F3FC","non_qualified":null,"image":"1f575-1f3fc.png","sheet_x":31,"sheet_y":19,"added_in":"2.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F575-1F3FD","non_qualified":null,"image":"1f575-1f3fd.png","sheet_x":31,"sheet_y":20,"added_in":"2.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F575-1F3FE","non_qualified":null,"image":"1f575-1f3fe.png","sheet_x":31,"sheet_y":21,"added_in":"2.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F575-1F3FF","non_qualified":null,"image":"1f575-1f3ff.png","sheet_x":31,"sheet_y":22,"added_in":"2.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoleted_by":"1F575-FE0F-200D-2642-FE0F","a":"Detective","b":"1F575-FE0F","c":"1F575","d":true,"e":true,"f":true,"h":true,"j":["detective","human","spy"],"k":[31,17],"o":0},"male-detective":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F575-1F3FB-200D-2642-FE0F","non_qualified":"1F575-1F3FB-200D-2642","image":"1f575-1f3fb-200d-2642-fe0f.png","sheet_x":31,"sheet_y":12,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F575-1F3FC-200D-2642-FE0F","non_qualified":"1F575-1F3FC-200D-2642","image":"1f575-1f3fc-200d-2642-fe0f.png","sheet_x":31,"sheet_y":13,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F575-1F3FD-200D-2642-FE0F","non_qualified":"1F575-1F3FD-200D-2642","image":"1f575-1f3fd-200d-2642-fe0f.png","sheet_x":31,"sheet_y":14,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F575-1F3FE-200D-2642-FE0F","non_qualified":"1F575-1F3FE-200D-2642","image":"1f575-1f3fe-200d-2642-fe0f.png","sheet_x":31,"sheet_y":15,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F575-1F3FF-200D-2642-FE0F","non_qualified":"1F575-1F3FF-200D-2642","image":"1f575-1f3ff-200d-2642-fe0f.png","sheet_x":31,"sheet_y":16,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoletes":"1F575-FE0F","a":"Man Detective","b":"1F575-FE0F-200D-2642-FE0F","d":true,"e":true,"f":true,"h":false,"j":["man_detective","crime"],"k":[31,11],"o":4},"female-detective":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F575-1F3FB-200D-2640-FE0F","non_qualified":"1F575-1F3FB-200D-2640","image":"1f575-1f3fb-200d-2640-fe0f.png","sheet_x":31,"sheet_y":6,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F575-1F3FC-200D-2640-FE0F","non_qualified":"1F575-1F3FC-200D-2640","image":"1f575-1f3fc-200d-2640-fe0f.png","sheet_x":31,"sheet_y":7,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F575-1F3FD-200D-2640-FE0F","non_qualified":"1F575-1F3FD-200D-2640","image":"1f575-1f3fd-200d-2640-fe0f.png","sheet_x":31,"sheet_y":8,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F575-1F3FE-200D-2640-FE0F","non_qualified":"1F575-1F3FE-200D-2640","image":"1f575-1f3fe-200d-2640-fe0f.png","sheet_x":31,"sheet_y":9,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F575-1F3FF-200D-2640-FE0F","non_qualified":"1F575-1F3FF-200D-2640","image":"1f575-1f3ff-200d-2640-fe0f.png","sheet_x":31,"sheet_y":10,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Detective","b":"1F575-FE0F-200D-2640-FE0F","d":true,"e":true,"f":true,"h":false,"j":["woman_detective","human","spy","detective","female","woman"],"k":[31,5],"o":4},"guardsman":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F482-1F3FB","non_qualified":null,"image":"1f482-1f3fb.png","sheet_x":25,"sheet_y":42,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F482-1F3FC","non_qualified":null,"image":"1f482-1f3fc.png","sheet_x":25,"sheet_y":43,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F482-1F3FD","non_qualified":null,"image":"1f482-1f3fd.png","sheet_x":25,"sheet_y":44,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F482-1F3FE","non_qualified":null,"image":"1f482-1f3fe.png","sheet_x":25,"sheet_y":45,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F482-1F3FF","non_qualified":null,"image":"1f482-1f3ff.png","sheet_x":25,"sheet_y":46,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoleted_by":"1F482-200D-2642-FE0F","a":"Guardsman","b":"1F482","d":true,"e":true,"f":true,"h":true,"j":["guard","protect"],"k":[25,41],"o":0},"male-guard":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F482-1F3FB-200D-2642-FE0F","non_qualified":"1F482-1F3FB-200D-2642","image":"1f482-1f3fb-200d-2642-fe0f.png","sheet_x":25,"sheet_y":36,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F482-1F3FC-200D-2642-FE0F","non_qualified":"1F482-1F3FC-200D-2642","image":"1f482-1f3fc-200d-2642-fe0f.png","sheet_x":25,"sheet_y":37,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F482-1F3FD-200D-2642-FE0F","non_qualified":"1F482-1F3FD-200D-2642","image":"1f482-1f3fd-200d-2642-fe0f.png","sheet_x":25,"sheet_y":38,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F482-1F3FE-200D-2642-FE0F","non_qualified":"1F482-1F3FE-200D-2642","image":"1f482-1f3fe-200d-2642-fe0f.png","sheet_x":25,"sheet_y":39,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F482-1F3FF-200D-2642-FE0F","non_qualified":"1F482-1F3FF-200D-2642","image":"1f482-1f3ff-200d-2642-fe0f.png","sheet_x":25,"sheet_y":40,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoletes":"1F482","a":"Man Guard","b":"1F482-200D-2642-FE0F","c":"1F482-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_guard","uk","gb","british","male","guy","royal"],"k":[25,35],"o":4},"female-guard":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F482-1F3FB-200D-2640-FE0F","non_qualified":"1F482-1F3FB-200D-2640","image":"1f482-1f3fb-200d-2640-fe0f.png","sheet_x":25,"sheet_y":30,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F482-1F3FC-200D-2640-FE0F","non_qualified":"1F482-1F3FC-200D-2640","image":"1f482-1f3fc-200d-2640-fe0f.png","sheet_x":25,"sheet_y":31,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F482-1F3FD-200D-2640-FE0F","non_qualified":"1F482-1F3FD-200D-2640","image":"1f482-1f3fd-200d-2640-fe0f.png","sheet_x":25,"sheet_y":32,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F482-1F3FE-200D-2640-FE0F","non_qualified":"1F482-1F3FE-200D-2640","image":"1f482-1f3fe-200d-2640-fe0f.png","sheet_x":25,"sheet_y":33,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F482-1F3FF-200D-2640-FE0F","non_qualified":"1F482-1F3FF-200D-2640","image":"1f482-1f3ff-200d-2640-fe0f.png","sheet_x":25,"sheet_y":34,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Guard","b":"1F482-200D-2640-FE0F","c":"1F482-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_guard","uk","gb","british","female","royal","woman"],"k":[25,29],"o":4},"ninja":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F977-1F3FB","non_qualified":null,"image":"1f977-1f3fb.png","sheet_x":44,"sheet_y":7,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F977-1F3FC","non_qualified":null,"image":"1f977-1f3fc.png","sheet_x":44,"sheet_y":8,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F977-1F3FD","non_qualified":null,"image":"1f977-1f3fd.png","sheet_x":44,"sheet_y":9,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F977-1F3FE","non_qualified":null,"image":"1f977-1f3fe.png","sheet_x":44,"sheet_y":10,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F977-1F3FF","non_qualified":null,"image":"1f977-1f3ff.png","sheet_x":44,"sheet_y":11,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Ninja","b":"1F977","d":true,"e":true,"f":true,"h":true,"j":["ninja","ninjutsu","skills","japanese"],"k":[44,6],"o":13},"construction_worker":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F477-1F3FB","non_qualified":null,"image":"1f477-1f3fb.png","sheet_x":24,"sheet_y":48,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F477-1F3FC","non_qualified":null,"image":"1f477-1f3fc.png","sheet_x":24,"sheet_y":49,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F477-1F3FD","non_qualified":null,"image":"1f477-1f3fd.png","sheet_x":24,"sheet_y":50,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F477-1F3FE","non_qualified":null,"image":"1f477-1f3fe.png","sheet_x":24,"sheet_y":51,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F477-1F3FF","non_qualified":null,"image":"1f477-1f3ff.png","sheet_x":24,"sheet_y":52,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoleted_by":"1F477-200D-2642-FE0F","a":"Construction Worker","b":"1F477","d":true,"e":true,"f":true,"h":true,"j":["construction_worker","labor","build"],"k":[24,47],"o":0},"male-construction-worker":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F477-1F3FB-200D-2642-FE0F","non_qualified":"1F477-1F3FB-200D-2642","image":"1f477-1f3fb-200d-2642-fe0f.png","sheet_x":24,"sheet_y":42,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F477-1F3FC-200D-2642-FE0F","non_qualified":"1F477-1F3FC-200D-2642","image":"1f477-1f3fc-200d-2642-fe0f.png","sheet_x":24,"sheet_y":43,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F477-1F3FD-200D-2642-FE0F","non_qualified":"1F477-1F3FD-200D-2642","image":"1f477-1f3fd-200d-2642-fe0f.png","sheet_x":24,"sheet_y":44,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F477-1F3FE-200D-2642-FE0F","non_qualified":"1F477-1F3FE-200D-2642","image":"1f477-1f3fe-200d-2642-fe0f.png","sheet_x":24,"sheet_y":45,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F477-1F3FF-200D-2642-FE0F","non_qualified":"1F477-1F3FF-200D-2642","image":"1f477-1f3ff-200d-2642-fe0f.png","sheet_x":24,"sheet_y":46,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoletes":"1F477","a":"Man Construction Worker","b":"1F477-200D-2642-FE0F","c":"1F477-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_construction_worker","male","human","wip","guy","build","construction","worker","labor"],"k":[24,41],"o":4},"female-construction-worker":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F477-1F3FB-200D-2640-FE0F","non_qualified":"1F477-1F3FB-200D-2640","image":"1f477-1f3fb-200d-2640-fe0f.png","sheet_x":24,"sheet_y":36,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F477-1F3FC-200D-2640-FE0F","non_qualified":"1F477-1F3FC-200D-2640","image":"1f477-1f3fc-200d-2640-fe0f.png","sheet_x":24,"sheet_y":37,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F477-1F3FD-200D-2640-FE0F","non_qualified":"1F477-1F3FD-200D-2640","image":"1f477-1f3fd-200d-2640-fe0f.png","sheet_x":24,"sheet_y":38,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F477-1F3FE-200D-2640-FE0F","non_qualified":"1F477-1F3FE-200D-2640","image":"1f477-1f3fe-200d-2640-fe0f.png","sheet_x":24,"sheet_y":39,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F477-1F3FF-200D-2640-FE0F","non_qualified":"1F477-1F3FF-200D-2640","image":"1f477-1f3ff-200d-2640-fe0f.png","sheet_x":24,"sheet_y":40,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Construction Worker","b":"1F477-200D-2640-FE0F","c":"1F477-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_construction_worker","female","human","wip","build","construction","worker","labor","woman"],"k":[24,35],"o":4},"person_with_crown":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1FAC5-1F3FB","non_qualified":null,"image":"1fac5-1f3fb.png","sheet_x":55,"sheet_y":11,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1FAC5-1F3FC","non_qualified":null,"image":"1fac5-1f3fc.png","sheet_x":55,"sheet_y":12,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1FAC5-1F3FD","non_qualified":null,"image":"1fac5-1f3fd.png","sheet_x":55,"sheet_y":13,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1FAC5-1F3FE","non_qualified":null,"image":"1fac5-1f3fe.png","sheet_x":55,"sheet_y":14,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1FAC5-1F3FF","non_qualified":null,"image":"1fac5-1f3ff.png","sheet_x":55,"sheet_y":15,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Person with Crown","b":"1FAC5","d":true,"e":true,"f":true,"h":true,"j":["person with crown","royalty","power"],"k":[55,10],"o":14},"prince":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F934-1F3FB","non_qualified":null,"image":"1f934-1f3fb.png","sheet_x":41,"sheet_y":11,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F934-1F3FC","non_qualified":null,"image":"1f934-1f3fc.png","sheet_x":41,"sheet_y":12,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F934-1F3FD","non_qualified":null,"image":"1f934-1f3fd.png","sheet_x":41,"sheet_y":13,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F934-1F3FE","non_qualified":null,"image":"1f934-1f3fe.png","sheet_x":41,"sheet_y":14,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F934-1F3FF","non_qualified":null,"image":"1f934-1f3ff.png","sheet_x":41,"sheet_y":15,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Prince","b":"1F934","d":true,"e":true,"f":true,"h":true,"j":["prince","boy","man","male","crown","royal","king"],"k":[41,10],"o":3},"princess":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F478-1F3FB","non_qualified":null,"image":"1f478-1f3fb.png","sheet_x":24,"sheet_y":54,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F478-1F3FC","non_qualified":null,"image":"1f478-1f3fc.png","sheet_x":24,"sheet_y":55,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F478-1F3FD","non_qualified":null,"image":"1f478-1f3fd.png","sheet_x":24,"sheet_y":56,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F478-1F3FE","non_qualified":null,"image":"1f478-1f3fe.png","sheet_x":24,"sheet_y":57,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F478-1F3FF","non_qualified":null,"image":"1f478-1f3ff.png","sheet_x":24,"sheet_y":58,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Princess","b":"1F478","d":true,"e":true,"f":true,"h":true,"j":["princess","girl","woman","female","blond","crown","royal","queen"],"k":[24,53],"o":0},"man_with_turban":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F473-1F3FB","non_qualified":null,"image":"1f473-1f3fb.png","sheet_x":24,"sheet_y":12,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F473-1F3FC","non_qualified":null,"image":"1f473-1f3fc.png","sheet_x":24,"sheet_y":13,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F473-1F3FD","non_qualified":null,"image":"1f473-1f3fd.png","sheet_x":24,"sheet_y":14,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F473-1F3FE","non_qualified":null,"image":"1f473-1f3fe.png","sheet_x":24,"sheet_y":15,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F473-1F3FF","non_qualified":null,"image":"1f473-1f3ff.png","sheet_x":24,"sheet_y":16,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoleted_by":"1F473-200D-2642-FE0F","a":"Man with Turban","b":"1F473","d":true,"e":true,"f":true,"h":true,"j":["person_wearing_turban","headdress"],"k":[24,11],"o":0},"man-wearing-turban":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F473-1F3FB-200D-2642-FE0F","non_qualified":"1F473-1F3FB-200D-2642","image":"1f473-1f3fb-200d-2642-fe0f.png","sheet_x":24,"sheet_y":6,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F473-1F3FC-200D-2642-FE0F","non_qualified":"1F473-1F3FC-200D-2642","image":"1f473-1f3fc-200d-2642-fe0f.png","sheet_x":24,"sheet_y":7,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F473-1F3FD-200D-2642-FE0F","non_qualified":"1F473-1F3FD-200D-2642","image":"1f473-1f3fd-200d-2642-fe0f.png","sheet_x":24,"sheet_y":8,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F473-1F3FE-200D-2642-FE0F","non_qualified":"1F473-1F3FE-200D-2642","image":"1f473-1f3fe-200d-2642-fe0f.png","sheet_x":24,"sheet_y":9,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F473-1F3FF-200D-2642-FE0F","non_qualified":"1F473-1F3FF-200D-2642","image":"1f473-1f3ff-200d-2642-fe0f.png","sheet_x":24,"sheet_y":10,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoletes":"1F473","a":"Man Wearing Turban","b":"1F473-200D-2642-FE0F","c":"1F473-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_wearing_turban","male","indian","hinduism","arabs"],"k":[24,5],"o":4},"woman-wearing-turban":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F473-1F3FB-200D-2640-FE0F","non_qualified":"1F473-1F3FB-200D-2640","image":"1f473-1f3fb-200d-2640-fe0f.png","sheet_x":24,"sheet_y":0,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F473-1F3FC-200D-2640-FE0F","non_qualified":"1F473-1F3FC-200D-2640","image":"1f473-1f3fc-200d-2640-fe0f.png","sheet_x":24,"sheet_y":1,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F473-1F3FD-200D-2640-FE0F","non_qualified":"1F473-1F3FD-200D-2640","image":"1f473-1f3fd-200d-2640-fe0f.png","sheet_x":24,"sheet_y":2,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F473-1F3FE-200D-2640-FE0F","non_qualified":"1F473-1F3FE-200D-2640","image":"1f473-1f3fe-200d-2640-fe0f.png","sheet_x":24,"sheet_y":3,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F473-1F3FF-200D-2640-FE0F","non_qualified":"1F473-1F3FF-200D-2640","image":"1f473-1f3ff-200d-2640-fe0f.png","sheet_x":24,"sheet_y":4,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Wearing Turban","b":"1F473-200D-2640-FE0F","c":"1F473-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_wearing_turban","female","indian","hinduism","arabs","woman"],"k":[23,60],"o":4},"man_with_gua_pi_mao":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F472-1F3FB","non_qualified":null,"image":"1f472-1f3fb.png","sheet_x":23,"sheet_y":55,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F472-1F3FC","non_qualified":null,"image":"1f472-1f3fc.png","sheet_x":23,"sheet_y":56,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F472-1F3FD","non_qualified":null,"image":"1f472-1f3fd.png","sheet_x":23,"sheet_y":57,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F472-1F3FE","non_qualified":null,"image":"1f472-1f3fe.png","sheet_x":23,"sheet_y":58,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F472-1F3FF","non_qualified":null,"image":"1f472-1f3ff.png","sheet_x":23,"sheet_y":59,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man with Gua Pi Mao","b":"1F472","d":true,"e":true,"f":true,"h":true,"j":["man_with_skullcap","male","boy","chinese"],"k":[23,54],"o":0},"person_with_headscarf":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F9D5-1F3FB","non_qualified":null,"image":"1f9d5-1f3fb.png","sheet_x":50,"sheet_y":44,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D5-1F3FC","non_qualified":null,"image":"1f9d5-1f3fc.png","sheet_x":50,"sheet_y":45,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D5-1F3FD","non_qualified":null,"image":"1f9d5-1f3fd.png","sheet_x":50,"sheet_y":46,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D5-1F3FE","non_qualified":null,"image":"1f9d5-1f3fe.png","sheet_x":50,"sheet_y":47,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D5-1F3FF","non_qualified":null,"image":"1f9d5-1f3ff.png","sheet_x":50,"sheet_y":48,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Person with Headscarf","b":"1F9D5","d":true,"e":true,"f":true,"h":true,"j":["woman_with_headscarf","female","hijab","mantilla","tichel"],"k":[50,43],"o":5},"person_in_tuxedo":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F935-1F3FB","non_qualified":null,"image":"1f935-1f3fb.png","sheet_x":41,"sheet_y":29,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F935-1F3FC","non_qualified":null,"image":"1f935-1f3fc.png","sheet_x":41,"sheet_y":30,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F935-1F3FD","non_qualified":null,"image":"1f935-1f3fd.png","sheet_x":41,"sheet_y":31,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F935-1F3FE","non_qualified":null,"image":"1f935-1f3fe.png","sheet_x":41,"sheet_y":32,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F935-1F3FF","non_qualified":null,"image":"1f935-1f3ff.png","sheet_x":41,"sheet_y":33,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man in Tuxedo","b":"1F935","d":true,"e":true,"f":true,"h":true,"j":["man_in_tuxedo","couple","marriage","wedding","groom"],"k":[41,28],"o":3},"man_in_tuxedo":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F935-1F3FB-200D-2642-FE0F","non_qualified":"1F935-1F3FB-200D-2642","image":"1f935-1f3fb-200d-2642-fe0f.png","sheet_x":41,"sheet_y":23,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F935-1F3FC-200D-2642-FE0F","non_qualified":"1F935-1F3FC-200D-2642","image":"1f935-1f3fc-200d-2642-fe0f.png","sheet_x":41,"sheet_y":24,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F935-1F3FD-200D-2642-FE0F","non_qualified":"1F935-1F3FD-200D-2642","image":"1f935-1f3fd-200d-2642-fe0f.png","sheet_x":41,"sheet_y":25,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F935-1F3FE-200D-2642-FE0F","non_qualified":"1F935-1F3FE-200D-2642","image":"1f935-1f3fe-200d-2642-fe0f.png","sheet_x":41,"sheet_y":26,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F935-1F3FF-200D-2642-FE0F","non_qualified":"1F935-1F3FF-200D-2642","image":"1f935-1f3ff-200d-2642-fe0f.png","sheet_x":41,"sheet_y":27,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man in Tuxedo","b":"1F935-200D-2642-FE0F","c":"1F935-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man in tuxedo","formal","fashion"],"k":[41,22],"o":13},"woman_in_tuxedo":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F935-1F3FB-200D-2640-FE0F","non_qualified":"1F935-1F3FB-200D-2640","image":"1f935-1f3fb-200d-2640-fe0f.png","sheet_x":41,"sheet_y":17,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F935-1F3FC-200D-2640-FE0F","non_qualified":"1F935-1F3FC-200D-2640","image":"1f935-1f3fc-200d-2640-fe0f.png","sheet_x":41,"sheet_y":18,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F935-1F3FD-200D-2640-FE0F","non_qualified":"1F935-1F3FD-200D-2640","image":"1f935-1f3fd-200d-2640-fe0f.png","sheet_x":41,"sheet_y":19,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F935-1F3FE-200D-2640-FE0F","non_qualified":"1F935-1F3FE-200D-2640","image":"1f935-1f3fe-200d-2640-fe0f.png","sheet_x":41,"sheet_y":20,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F935-1F3FF-200D-2640-FE0F","non_qualified":"1F935-1F3FF-200D-2640","image":"1f935-1f3ff-200d-2640-fe0f.png","sheet_x":41,"sheet_y":21,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman in Tuxedo","b":"1F935-200D-2640-FE0F","c":"1F935-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman in tuxedo","formal","fashion"],"k":[41,16],"o":13},"bride_with_veil":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F470-1F3FB","non_qualified":null,"image":"1f470-1f3fb.png","sheet_x":23,"sheet_y":31,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F470-1F3FC","non_qualified":null,"image":"1f470-1f3fc.png","sheet_x":23,"sheet_y":32,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F470-1F3FD","non_qualified":null,"image":"1f470-1f3fd.png","sheet_x":23,"sheet_y":33,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F470-1F3FE","non_qualified":null,"image":"1f470-1f3fe.png","sheet_x":23,"sheet_y":34,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F470-1F3FF","non_qualified":null,"image":"1f470-1f3ff.png","sheet_x":23,"sheet_y":35,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Bride with Veil","b":"1F470","d":true,"e":true,"f":true,"h":true,"j":["bride_with_veil","couple","marriage","wedding","woman","bride"],"k":[23,30],"o":0},"man_with_veil":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F470-1F3FB-200D-2642-FE0F","non_qualified":"1F470-1F3FB-200D-2642","image":"1f470-1f3fb-200d-2642-fe0f.png","sheet_x":23,"sheet_y":25,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F470-1F3FC-200D-2642-FE0F","non_qualified":"1F470-1F3FC-200D-2642","image":"1f470-1f3fc-200d-2642-fe0f.png","sheet_x":23,"sheet_y":26,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F470-1F3FD-200D-2642-FE0F","non_qualified":"1F470-1F3FD-200D-2642","image":"1f470-1f3fd-200d-2642-fe0f.png","sheet_x":23,"sheet_y":27,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F470-1F3FE-200D-2642-FE0F","non_qualified":"1F470-1F3FE-200D-2642","image":"1f470-1f3fe-200d-2642-fe0f.png","sheet_x":23,"sheet_y":28,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F470-1F3FF-200D-2642-FE0F","non_qualified":"1F470-1F3FF-200D-2642","image":"1f470-1f3ff-200d-2642-fe0f.png","sheet_x":23,"sheet_y":29,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man with Veil","b":"1F470-200D-2642-FE0F","c":"1F470-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man with veil","wedding","marriage"],"k":[23,24],"o":13},"woman_with_veil":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F470-1F3FB-200D-2640-FE0F","non_qualified":"1F470-1F3FB-200D-2640","image":"1f470-1f3fb-200d-2640-fe0f.png","sheet_x":23,"sheet_y":19,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F470-1F3FC-200D-2640-FE0F","non_qualified":"1F470-1F3FC-200D-2640","image":"1f470-1f3fc-200d-2640-fe0f.png","sheet_x":23,"sheet_y":20,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F470-1F3FD-200D-2640-FE0F","non_qualified":"1F470-1F3FD-200D-2640","image":"1f470-1f3fd-200d-2640-fe0f.png","sheet_x":23,"sheet_y":21,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F470-1F3FE-200D-2640-FE0F","non_qualified":"1F470-1F3FE-200D-2640","image":"1f470-1f3fe-200d-2640-fe0f.png","sheet_x":23,"sheet_y":22,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F470-1F3FF-200D-2640-FE0F","non_qualified":"1F470-1F3FF-200D-2640","image":"1f470-1f3ff-200d-2640-fe0f.png","sheet_x":23,"sheet_y":23,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman with Veil","b":"1F470-200D-2640-FE0F","c":"1F470-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman with veil","wedding","marriage"],"k":[23,18],"o":13},"pregnant_woman":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F930-1F3FB","non_qualified":null,"image":"1f930-1f3fb.png","sheet_x":40,"sheet_y":48,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F930-1F3FC","non_qualified":null,"image":"1f930-1f3fc.png","sheet_x":40,"sheet_y":49,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F930-1F3FD","non_qualified":null,"image":"1f930-1f3fd.png","sheet_x":40,"sheet_y":50,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F930-1F3FE","non_qualified":null,"image":"1f930-1f3fe.png","sheet_x":40,"sheet_y":51,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F930-1F3FF","non_qualified":null,"image":"1f930-1f3ff.png","sheet_x":40,"sheet_y":52,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Pregnant Woman","b":"1F930","d":true,"e":true,"f":true,"h":true,"j":["pregnant_woman","baby"],"k":[40,47],"o":3},"pregnant_man":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1FAC3-1F3FB","non_qualified":null,"image":"1fac3-1f3fb.png","sheet_x":54,"sheet_y":60,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1FAC3-1F3FC","non_qualified":null,"image":"1fac3-1f3fc.png","sheet_x":55,"sheet_y":0,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1FAC3-1F3FD","non_qualified":null,"image":"1fac3-1f3fd.png","sheet_x":55,"sheet_y":1,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1FAC3-1F3FE","non_qualified":null,"image":"1fac3-1f3fe.png","sheet_x":55,"sheet_y":2,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1FAC3-1F3FF","non_qualified":null,"image":"1fac3-1f3ff.png","sheet_x":55,"sheet_y":3,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Pregnant Man","b":"1FAC3","d":true,"e":true,"f":true,"h":true,"j":["pregnant man","baby","belly"],"k":[54,59],"o":14},"pregnant_person":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1FAC4-1F3FB","non_qualified":null,"image":"1fac4-1f3fb.png","sheet_x":55,"sheet_y":5,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1FAC4-1F3FC","non_qualified":null,"image":"1fac4-1f3fc.png","sheet_x":55,"sheet_y":6,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1FAC4-1F3FD","non_qualified":null,"image":"1fac4-1f3fd.png","sheet_x":55,"sheet_y":7,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1FAC4-1F3FE","non_qualified":null,"image":"1fac4-1f3fe.png","sheet_x":55,"sheet_y":8,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1FAC4-1F3FF","non_qualified":null,"image":"1fac4-1f3ff.png","sheet_x":55,"sheet_y":9,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Pregnant Person","b":"1FAC4","d":true,"e":true,"f":true,"h":true,"j":["pregnant person","baby","belly"],"k":[55,4],"o":14},"breast-feeding":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F931-1F3FB","non_qualified":null,"image":"1f931-1f3fb.png","sheet_x":40,"sheet_y":54,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F931-1F3FC","non_qualified":null,"image":"1f931-1f3fc.png","sheet_x":40,"sheet_y":55,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F931-1F3FD","non_qualified":null,"image":"1f931-1f3fd.png","sheet_x":40,"sheet_y":56,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F931-1F3FE","non_qualified":null,"image":"1f931-1f3fe.png","sheet_x":40,"sheet_y":57,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F931-1F3FF","non_qualified":null,"image":"1f931-1f3ff.png","sheet_x":40,"sheet_y":58,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Breast-Feeding","b":"1F931","d":true,"e":true,"f":true,"h":true,"j":["breast_feeding","nursing","baby"],"k":[40,53],"o":5},"woman_feeding_baby":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F469-1F3FB-200D-1F37C","non_qualified":null,"image":"1f469-1f3fb-200d-1f37c.png","sheet_x":17,"sheet_y":33,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F469-1F3FC-200D-1F37C","non_qualified":null,"image":"1f469-1f3fc-200d-1f37c.png","sheet_x":17,"sheet_y":34,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F469-1F3FD-200D-1F37C","non_qualified":null,"image":"1f469-1f3fd-200d-1f37c.png","sheet_x":17,"sheet_y":35,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F469-1F3FE-200D-1F37C","non_qualified":null,"image":"1f469-1f3fe-200d-1f37c.png","sheet_x":17,"sheet_y":36,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F469-1F3FF-200D-1F37C","non_qualified":null,"image":"1f469-1f3ff-200d-1f37c.png","sheet_x":17,"sheet_y":37,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Feeding Baby","b":"1F469-200D-1F37C","d":true,"e":true,"f":true,"h":true,"j":["woman feeding baby","birth","food"],"k":[17,32],"o":13},"man_feeding_baby":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F468-1F3FB-200D-1F37C","non_qualified":null,"image":"1f468-1f3fb-200d-1f37c.png","sheet_x":13,"sheet_y":60,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F468-1F3FC-200D-1F37C","non_qualified":null,"image":"1f468-1f3fc-200d-1f37c.png","sheet_x":14,"sheet_y":0,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F468-1F3FD-200D-1F37C","non_qualified":null,"image":"1f468-1f3fd-200d-1f37c.png","sheet_x":14,"sheet_y":1,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F468-1F3FE-200D-1F37C","non_qualified":null,"image":"1f468-1f3fe-200d-1f37c.png","sheet_x":14,"sheet_y":2,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F468-1F3FF-200D-1F37C","non_qualified":null,"image":"1f468-1f3ff-200d-1f37c.png","sheet_x":14,"sheet_y":3,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Feeding Baby","b":"1F468-200D-1F37C","d":true,"e":true,"f":true,"h":true,"j":["man feeding baby","birth","food"],"k":[13,59],"o":13},"person_feeding_baby":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F9D1-1F3FB-200D-1F37C","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f37c.png","sheet_x":47,"sheet_y":27,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D1-1F3FC-200D-1F37C","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f37c.png","sheet_x":47,"sheet_y":28,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D1-1F3FD-200D-1F37C","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f37c.png","sheet_x":47,"sheet_y":29,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D1-1F3FE-200D-1F37C","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f37c.png","sheet_x":47,"sheet_y":30,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D1-1F3FF-200D-1F37C","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f37c.png","sheet_x":47,"sheet_y":31,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Person Feeding Baby","b":"1F9D1-200D-1F37C","d":true,"e":true,"f":true,"h":true,"j":["person feeding baby","birth","food"],"k":[47,26],"o":13},"angel":{"subcategory":"person-fantasy","skin_variations":{"1F3FB":{"unified":"1F47C-1F3FB","non_qualified":null,"image":"1f47c-1f3fb.png","sheet_x":25,"sheet_y":2,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F47C-1F3FC","non_qualified":null,"image":"1f47c-1f3fc.png","sheet_x":25,"sheet_y":3,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F47C-1F3FD","non_qualified":null,"image":"1f47c-1f3fd.png","sheet_x":25,"sheet_y":4,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F47C-1F3FE","non_qualified":null,"image":"1f47c-1f3fe.png","sheet_x":25,"sheet_y":5,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F47C-1F3FF","non_qualified":null,"image":"1f47c-1f3ff.png","sheet_x":25,"sheet_y":6,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Baby Angel","b":"1F47C","d":true,"e":true,"f":true,"h":true,"j":["baby_angel","heaven","wings","halo"],"k":[25,1],"o":0},"santa":{"subcategory":"person-fantasy","skin_variations":{"1F3FB":{"unified":"1F385-1F3FB","non_qualified":null,"image":"1f385-1f3fb.png","sheet_x":7,"sheet_y":9,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F385-1F3FC","non_qualified":null,"image":"1f385-1f3fc.png","sheet_x":7,"sheet_y":10,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F385-1F3FD","non_qualified":null,"image":"1f385-1f3fd.png","sheet_x":7,"sheet_y":11,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F385-1F3FE","non_qualified":null,"image":"1f385-1f3fe.png","sheet_x":7,"sheet_y":12,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F385-1F3FF","non_qualified":null,"image":"1f385-1f3ff.png","sheet_x":7,"sheet_y":13,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Father Christmas","b":"1F385","d":true,"e":true,"f":true,"h":true,"j":["santa_claus","festival","man","male","xmas","father christmas"],"k":[7,8],"o":0},"mrs_claus":{"subcategory":"person-fantasy","skin_variations":{"1F3FB":{"unified":"1F936-1F3FB","non_qualified":null,"image":"1f936-1f3fb.png","sheet_x":41,"sheet_y":35,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F936-1F3FC","non_qualified":null,"image":"1f936-1f3fc.png","sheet_x":41,"sheet_y":36,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F936-1F3FD","non_qualified":null,"image":"1f936-1f3fd.png","sheet_x":41,"sheet_y":37,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F936-1F3FE","non_qualified":null,"image":"1f936-1f3fe.png","sheet_x":41,"sheet_y":38,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F936-1F3FF","non_qualified":null,"image":"1f936-1f3ff.png","sheet_x":41,"sheet_y":39,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Mother Christmas","b":"1F936","d":true,"e":true,"f":true,"h":true,"j":["mrs_claus","woman","female","xmas","mother christmas"],"k":[41,34],"n":["mother_christmas"],"o":3},"mx_claus":{"subcategory":"person-fantasy","skin_variations":{"1F3FB":{"unified":"1F9D1-1F3FB-200D-1F384","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f384.png","sheet_x":47,"sheet_y":33,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D1-1F3FC-200D-1F384","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f384.png","sheet_x":47,"sheet_y":34,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D1-1F3FD-200D-1F384","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f384.png","sheet_x":47,"sheet_y":35,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D1-1F3FE-200D-1F384","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f384.png","sheet_x":47,"sheet_y":36,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D1-1F3FF-200D-1F384","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f384.png","sheet_x":47,"sheet_y":37,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Mx Claus","b":"1F9D1-200D-1F384","d":true,"e":true,"f":true,"h":true,"j":["mx claus","christmas"],"k":[47,32],"o":13},"superhero":{"subcategory":"person-fantasy","skin_variations":{"1F3FB":{"unified":"1F9B8-1F3FB","non_qualified":null,"image":"1f9b8-1f3fb.png","sheet_x":45,"sheet_y":34,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9B8-1F3FC","non_qualified":null,"image":"1f9b8-1f3fc.png","sheet_x":45,"sheet_y":35,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9B8-1F3FD","non_qualified":null,"image":"1f9b8-1f3fd.png","sheet_x":45,"sheet_y":36,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9B8-1F3FE","non_qualified":null,"image":"1f9b8-1f3fe.png","sheet_x":45,"sheet_y":37,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9B8-1F3FF","non_qualified":null,"image":"1f9b8-1f3ff.png","sheet_x":45,"sheet_y":38,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Superhero","b":"1F9B8","d":true,"e":true,"f":true,"h":true,"j":["superhero","marvel"],"k":[45,33],"o":11},"male_superhero":{"subcategory":"person-fantasy","skin_variations":{"1F3FB":{"unified":"1F9B8-1F3FB-200D-2642-FE0F","non_qualified":"1F9B8-1F3FB-200D-2642","image":"1f9b8-1f3fb-200d-2642-fe0f.png","sheet_x":45,"sheet_y":28,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9B8-1F3FC-200D-2642-FE0F","non_qualified":"1F9B8-1F3FC-200D-2642","image":"1f9b8-1f3fc-200d-2642-fe0f.png","sheet_x":45,"sheet_y":29,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9B8-1F3FD-200D-2642-FE0F","non_qualified":"1F9B8-1F3FD-200D-2642","image":"1f9b8-1f3fd-200d-2642-fe0f.png","sheet_x":45,"sheet_y":30,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9B8-1F3FE-200D-2642-FE0F","non_qualified":"1F9B8-1F3FE-200D-2642","image":"1f9b8-1f3fe-200d-2642-fe0f.png","sheet_x":45,"sheet_y":31,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9B8-1F3FF-200D-2642-FE0F","non_qualified":"1F9B8-1F3FF-200D-2642","image":"1f9b8-1f3ff-200d-2642-fe0f.png","sheet_x":45,"sheet_y":32,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Superhero","b":"1F9B8-200D-2642-FE0F","c":"1F9B8-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_superhero","man","male","good","hero","superpowers"],"k":[45,27],"o":11},"female_superhero":{"subcategory":"person-fantasy","skin_variations":{"1F3FB":{"unified":"1F9B8-1F3FB-200D-2640-FE0F","non_qualified":"1F9B8-1F3FB-200D-2640","image":"1f9b8-1f3fb-200d-2640-fe0f.png","sheet_x":45,"sheet_y":22,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9B8-1F3FC-200D-2640-FE0F","non_qualified":"1F9B8-1F3FC-200D-2640","image":"1f9b8-1f3fc-200d-2640-fe0f.png","sheet_x":45,"sheet_y":23,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9B8-1F3FD-200D-2640-FE0F","non_qualified":"1F9B8-1F3FD-200D-2640","image":"1f9b8-1f3fd-200d-2640-fe0f.png","sheet_x":45,"sheet_y":24,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9B8-1F3FE-200D-2640-FE0F","non_qualified":"1F9B8-1F3FE-200D-2640","image":"1f9b8-1f3fe-200d-2640-fe0f.png","sheet_x":45,"sheet_y":25,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9B8-1F3FF-200D-2640-FE0F","non_qualified":"1F9B8-1F3FF-200D-2640","image":"1f9b8-1f3ff-200d-2640-fe0f.png","sheet_x":45,"sheet_y":26,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Superhero","b":"1F9B8-200D-2640-FE0F","c":"1F9B8-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_superhero","woman","female","good","heroine","superpowers"],"k":[45,21],"o":11},"supervillain":{"subcategory":"person-fantasy","skin_variations":{"1F3FB":{"unified":"1F9B9-1F3FB","non_qualified":null,"image":"1f9b9-1f3fb.png","sheet_x":45,"sheet_y":52,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9B9-1F3FC","non_qualified":null,"image":"1f9b9-1f3fc.png","sheet_x":45,"sheet_y":53,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9B9-1F3FD","non_qualified":null,"image":"1f9b9-1f3fd.png","sheet_x":45,"sheet_y":54,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9B9-1F3FE","non_qualified":null,"image":"1f9b9-1f3fe.png","sheet_x":45,"sheet_y":55,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9B9-1F3FF","non_qualified":null,"image":"1f9b9-1f3ff.png","sheet_x":45,"sheet_y":56,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Supervillain","b":"1F9B9","d":true,"e":true,"f":true,"h":true,"j":["supervillain","marvel"],"k":[45,51],"o":11},"male_supervillain":{"subcategory":"person-fantasy","skin_variations":{"1F3FB":{"unified":"1F9B9-1F3FB-200D-2642-FE0F","non_qualified":"1F9B9-1F3FB-200D-2642","image":"1f9b9-1f3fb-200d-2642-fe0f.png","sheet_x":45,"sheet_y":46,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9B9-1F3FC-200D-2642-FE0F","non_qualified":"1F9B9-1F3FC-200D-2642","image":"1f9b9-1f3fc-200d-2642-fe0f.png","sheet_x":45,"sheet_y":47,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9B9-1F3FD-200D-2642-FE0F","non_qualified":"1F9B9-1F3FD-200D-2642","image":"1f9b9-1f3fd-200d-2642-fe0f.png","sheet_x":45,"sheet_y":48,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9B9-1F3FE-200D-2642-FE0F","non_qualified":"1F9B9-1F3FE-200D-2642","image":"1f9b9-1f3fe-200d-2642-fe0f.png","sheet_x":45,"sheet_y":49,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9B9-1F3FF-200D-2642-FE0F","non_qualified":"1F9B9-1F3FF-200D-2642","image":"1f9b9-1f3ff-200d-2642-fe0f.png","sheet_x":45,"sheet_y":50,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Supervillain","b":"1F9B9-200D-2642-FE0F","c":"1F9B9-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_supervillain","man","male","evil","bad","criminal","hero","superpowers"],"k":[45,45],"o":11},"female_supervillain":{"subcategory":"person-fantasy","skin_variations":{"1F3FB":{"unified":"1F9B9-1F3FB-200D-2640-FE0F","non_qualified":"1F9B9-1F3FB-200D-2640","image":"1f9b9-1f3fb-200d-2640-fe0f.png","sheet_x":45,"sheet_y":40,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9B9-1F3FC-200D-2640-FE0F","non_qualified":"1F9B9-1F3FC-200D-2640","image":"1f9b9-1f3fc-200d-2640-fe0f.png","sheet_x":45,"sheet_y":41,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9B9-1F3FD-200D-2640-FE0F","non_qualified":"1F9B9-1F3FD-200D-2640","image":"1f9b9-1f3fd-200d-2640-fe0f.png","sheet_x":45,"sheet_y":42,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9B9-1F3FE-200D-2640-FE0F","non_qualified":"1F9B9-1F3FE-200D-2640","image":"1f9b9-1f3fe-200d-2640-fe0f.png","sheet_x":45,"sheet_y":43,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9B9-1F3FF-200D-2640-FE0F","non_qualified":"1F9B9-1F3FF-200D-2640","image":"1f9b9-1f3ff-200d-2640-fe0f.png","sheet_x":45,"sheet_y":44,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Supervillain","b":"1F9B9-200D-2640-FE0F","c":"1F9B9-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_supervillain","woman","female","evil","bad","criminal","heroine","superpowers"],"k":[45,39],"o":11},"mage":{"subcategory":"person-fantasy","skin_variations":{"1F3FB":{"unified":"1F9D9-1F3FB","non_qualified":null,"image":"1f9d9-1f3fb.png","sheet_x":51,"sheet_y":55,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9D9-1F3FB-200D-2640-FE0F"},"1F3FC":{"unified":"1F9D9-1F3FC","non_qualified":null,"image":"1f9d9-1f3fc.png","sheet_x":51,"sheet_y":56,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9D9-1F3FC-200D-2640-FE0F"},"1F3FD":{"unified":"1F9D9-1F3FD","non_qualified":null,"image":"1f9d9-1f3fd.png","sheet_x":51,"sheet_y":57,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9D9-1F3FD-200D-2640-FE0F"},"1F3FE":{"unified":"1F9D9-1F3FE","non_qualified":null,"image":"1f9d9-1f3fe.png","sheet_x":51,"sheet_y":58,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9D9-1F3FE-200D-2640-FE0F"},"1F3FF":{"unified":"1F9D9-1F3FF","non_qualified":null,"image":"1f9d9-1f3ff.png","sheet_x":51,"sheet_y":59,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9D9-1F3FF-200D-2640-FE0F"}},"obsoleted_by":"1F9D9-200D-2640-FE0F","a":"Mage","b":"1F9D9","d":true,"e":true,"f":true,"h":true,"j":["mage","magic"],"k":[51,54],"o":5},"male_mage":{"subcategory":"person-fantasy","skin_variations":{"1F3FB":{"unified":"1F9D9-1F3FB-200D-2642-FE0F","non_qualified":"1F9D9-1F3FB-200D-2642","image":"1f9d9-1f3fb-200d-2642-fe0f.png","sheet_x":51,"sheet_y":49,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D9-1F3FC-200D-2642-FE0F","non_qualified":"1F9D9-1F3FC-200D-2642","image":"1f9d9-1f3fc-200d-2642-fe0f.png","sheet_x":51,"sheet_y":50,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D9-1F3FD-200D-2642-FE0F","non_qualified":"1F9D9-1F3FD-200D-2642","image":"1f9d9-1f3fd-200d-2642-fe0f.png","sheet_x":51,"sheet_y":51,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D9-1F3FE-200D-2642-FE0F","non_qualified":"1F9D9-1F3FE-200D-2642","image":"1f9d9-1f3fe-200d-2642-fe0f.png","sheet_x":51,"sheet_y":52,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D9-1F3FF-200D-2642-FE0F","non_qualified":"1F9D9-1F3FF-200D-2642","image":"1f9d9-1f3ff-200d-2642-fe0f.png","sheet_x":51,"sheet_y":53,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Mage","b":"1F9D9-200D-2642-FE0F","c":"1F9D9-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_mage","man","male","mage","sorcerer"],"k":[51,48],"o":5},"female_mage":{"subcategory":"person-fantasy","skin_variations":{"1F3FB":{"unified":"1F9D9-1F3FB-200D-2640-FE0F","non_qualified":"1F9D9-1F3FB-200D-2640","image":"1f9d9-1f3fb-200d-2640-fe0f.png","sheet_x":51,"sheet_y":43,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9D9-1F3FB"},"1F3FC":{"unified":"1F9D9-1F3FC-200D-2640-FE0F","non_qualified":"1F9D9-1F3FC-200D-2640","image":"1f9d9-1f3fc-200d-2640-fe0f.png","sheet_x":51,"sheet_y":44,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9D9-1F3FC"},"1F3FD":{"unified":"1F9D9-1F3FD-200D-2640-FE0F","non_qualified":"1F9D9-1F3FD-200D-2640","image":"1f9d9-1f3fd-200d-2640-fe0f.png","sheet_x":51,"sheet_y":45,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9D9-1F3FD"},"1F3FE":{"unified":"1F9D9-1F3FE-200D-2640-FE0F","non_qualified":"1F9D9-1F3FE-200D-2640","image":"1f9d9-1f3fe-200d-2640-fe0f.png","sheet_x":51,"sheet_y":46,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9D9-1F3FE"},"1F3FF":{"unified":"1F9D9-1F3FF-200D-2640-FE0F","non_qualified":"1F9D9-1F3FF-200D-2640","image":"1f9d9-1f3ff-200d-2640-fe0f.png","sheet_x":51,"sheet_y":47,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9D9-1F3FF"}},"obsoletes":"1F9D9","a":"Woman Mage","b":"1F9D9-200D-2640-FE0F","c":"1F9D9-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_mage","woman","female","mage","witch"],"k":[51,42],"o":5},"fairy":{"subcategory":"person-fantasy","skin_variations":{"1F3FB":{"unified":"1F9DA-1F3FB","non_qualified":null,"image":"1f9da-1f3fb.png","sheet_x":52,"sheet_y":12,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9DA-1F3FB-200D-2640-FE0F"},"1F3FC":{"unified":"1F9DA-1F3FC","non_qualified":null,"image":"1f9da-1f3fc.png","sheet_x":52,"sheet_y":13,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9DA-1F3FC-200D-2640-FE0F"},"1F3FD":{"unified":"1F9DA-1F3FD","non_qualified":null,"image":"1f9da-1f3fd.png","sheet_x":52,"sheet_y":14,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9DA-1F3FD-200D-2640-FE0F"},"1F3FE":{"unified":"1F9DA-1F3FE","non_qualified":null,"image":"1f9da-1f3fe.png","sheet_x":52,"sheet_y":15,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9DA-1F3FE-200D-2640-FE0F"},"1F3FF":{"unified":"1F9DA-1F3FF","non_qualified":null,"image":"1f9da-1f3ff.png","sheet_x":52,"sheet_y":16,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9DA-1F3FF-200D-2640-FE0F"}},"obsoleted_by":"1F9DA-200D-2640-FE0F","a":"Fairy","b":"1F9DA","d":true,"e":true,"f":true,"h":true,"j":["fairy","wings","magical"],"k":[52,11],"o":5},"male_fairy":{"subcategory":"person-fantasy","skin_variations":{"1F3FB":{"unified":"1F9DA-1F3FB-200D-2642-FE0F","non_qualified":"1F9DA-1F3FB-200D-2642","image":"1f9da-1f3fb-200d-2642-fe0f.png","sheet_x":52,"sheet_y":6,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9DA-1F3FC-200D-2642-FE0F","non_qualified":"1F9DA-1F3FC-200D-2642","image":"1f9da-1f3fc-200d-2642-fe0f.png","sheet_x":52,"sheet_y":7,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9DA-1F3FD-200D-2642-FE0F","non_qualified":"1F9DA-1F3FD-200D-2642","image":"1f9da-1f3fd-200d-2642-fe0f.png","sheet_x":52,"sheet_y":8,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9DA-1F3FE-200D-2642-FE0F","non_qualified":"1F9DA-1F3FE-200D-2642","image":"1f9da-1f3fe-200d-2642-fe0f.png","sheet_x":52,"sheet_y":9,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9DA-1F3FF-200D-2642-FE0F","non_qualified":"1F9DA-1F3FF-200D-2642","image":"1f9da-1f3ff-200d-2642-fe0f.png","sheet_x":52,"sheet_y":10,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Fairy","b":"1F9DA-200D-2642-FE0F","c":"1F9DA-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_fairy","man","male"],"k":[52,5],"o":5},"female_fairy":{"subcategory":"person-fantasy","skin_variations":{"1F3FB":{"unified":"1F9DA-1F3FB-200D-2640-FE0F","non_qualified":"1F9DA-1F3FB-200D-2640","image":"1f9da-1f3fb-200d-2640-fe0f.png","sheet_x":52,"sheet_y":0,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9DA-1F3FB"},"1F3FC":{"unified":"1F9DA-1F3FC-200D-2640-FE0F","non_qualified":"1F9DA-1F3FC-200D-2640","image":"1f9da-1f3fc-200d-2640-fe0f.png","sheet_x":52,"sheet_y":1,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9DA-1F3FC"},"1F3FD":{"unified":"1F9DA-1F3FD-200D-2640-FE0F","non_qualified":"1F9DA-1F3FD-200D-2640","image":"1f9da-1f3fd-200d-2640-fe0f.png","sheet_x":52,"sheet_y":2,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9DA-1F3FD"},"1F3FE":{"unified":"1F9DA-1F3FE-200D-2640-FE0F","non_qualified":"1F9DA-1F3FE-200D-2640","image":"1f9da-1f3fe-200d-2640-fe0f.png","sheet_x":52,"sheet_y":3,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9DA-1F3FE"},"1F3FF":{"unified":"1F9DA-1F3FF-200D-2640-FE0F","non_qualified":"1F9DA-1F3FF-200D-2640","image":"1f9da-1f3ff-200d-2640-fe0f.png","sheet_x":52,"sheet_y":4,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9DA-1F3FF"}},"obsoletes":"1F9DA","a":"Woman Fairy","b":"1F9DA-200D-2640-FE0F","c":"1F9DA-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_fairy","woman","female"],"k":[51,60],"o":5},"vampire":{"subcategory":"person-fantasy","skin_variations":{"1F3FB":{"unified":"1F9DB-1F3FB","non_qualified":null,"image":"1f9db-1f3fb.png","sheet_x":52,"sheet_y":30,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9DB-1F3FB-200D-2640-FE0F"},"1F3FC":{"unified":"1F9DB-1F3FC","non_qualified":null,"image":"1f9db-1f3fc.png","sheet_x":52,"sheet_y":31,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9DB-1F3FC-200D-2640-FE0F"},"1F3FD":{"unified":"1F9DB-1F3FD","non_qualified":null,"image":"1f9db-1f3fd.png","sheet_x":52,"sheet_y":32,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9DB-1F3FD-200D-2640-FE0F"},"1F3FE":{"unified":"1F9DB-1F3FE","non_qualified":null,"image":"1f9db-1f3fe.png","sheet_x":52,"sheet_y":33,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9DB-1F3FE-200D-2640-FE0F"},"1F3FF":{"unified":"1F9DB-1F3FF","non_qualified":null,"image":"1f9db-1f3ff.png","sheet_x":52,"sheet_y":34,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9DB-1F3FF-200D-2640-FE0F"}},"obsoleted_by":"1F9DB-200D-2640-FE0F","a":"Vampire","b":"1F9DB","d":true,"e":true,"f":true,"h":true,"j":["vampire","blood","twilight"],"k":[52,29],"o":5},"male_vampire":{"subcategory":"person-fantasy","skin_variations":{"1F3FB":{"unified":"1F9DB-1F3FB-200D-2642-FE0F","non_qualified":"1F9DB-1F3FB-200D-2642","image":"1f9db-1f3fb-200d-2642-fe0f.png","sheet_x":52,"sheet_y":24,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9DB-1F3FC-200D-2642-FE0F","non_qualified":"1F9DB-1F3FC-200D-2642","image":"1f9db-1f3fc-200d-2642-fe0f.png","sheet_x":52,"sheet_y":25,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9DB-1F3FD-200D-2642-FE0F","non_qualified":"1F9DB-1F3FD-200D-2642","image":"1f9db-1f3fd-200d-2642-fe0f.png","sheet_x":52,"sheet_y":26,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9DB-1F3FE-200D-2642-FE0F","non_qualified":"1F9DB-1F3FE-200D-2642","image":"1f9db-1f3fe-200d-2642-fe0f.png","sheet_x":52,"sheet_y":27,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9DB-1F3FF-200D-2642-FE0F","non_qualified":"1F9DB-1F3FF-200D-2642","image":"1f9db-1f3ff-200d-2642-fe0f.png","sheet_x":52,"sheet_y":28,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Vampire","b":"1F9DB-200D-2642-FE0F","c":"1F9DB-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_vampire","man","male","dracula"],"k":[52,23],"o":5},"female_vampire":{"subcategory":"person-fantasy","skin_variations":{"1F3FB":{"unified":"1F9DB-1F3FB-200D-2640-FE0F","non_qualified":"1F9DB-1F3FB-200D-2640","image":"1f9db-1f3fb-200d-2640-fe0f.png","sheet_x":52,"sheet_y":18,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9DB-1F3FB"},"1F3FC":{"unified":"1F9DB-1F3FC-200D-2640-FE0F","non_qualified":"1F9DB-1F3FC-200D-2640","image":"1f9db-1f3fc-200d-2640-fe0f.png","sheet_x":52,"sheet_y":19,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9DB-1F3FC"},"1F3FD":{"unified":"1F9DB-1F3FD-200D-2640-FE0F","non_qualified":"1F9DB-1F3FD-200D-2640","image":"1f9db-1f3fd-200d-2640-fe0f.png","sheet_x":52,"sheet_y":20,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9DB-1F3FD"},"1F3FE":{"unified":"1F9DB-1F3FE-200D-2640-FE0F","non_qualified":"1F9DB-1F3FE-200D-2640","image":"1f9db-1f3fe-200d-2640-fe0f.png","sheet_x":52,"sheet_y":21,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9DB-1F3FE"},"1F3FF":{"unified":"1F9DB-1F3FF-200D-2640-FE0F","non_qualified":"1F9DB-1F3FF-200D-2640","image":"1f9db-1f3ff-200d-2640-fe0f.png","sheet_x":52,"sheet_y":22,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9DB-1F3FF"}},"obsoletes":"1F9DB","a":"Woman Vampire","b":"1F9DB-200D-2640-FE0F","c":"1F9DB-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_vampire","woman","female"],"k":[52,17],"o":5},"merperson":{"subcategory":"person-fantasy","skin_variations":{"1F3FB":{"unified":"1F9DC-1F3FB","non_qualified":null,"image":"1f9dc-1f3fb.png","sheet_x":52,"sheet_y":48,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9DC-1F3FB-200D-2642-FE0F"},"1F3FC":{"unified":"1F9DC-1F3FC","non_qualified":null,"image":"1f9dc-1f3fc.png","sheet_x":52,"sheet_y":49,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9DC-1F3FC-200D-2642-FE0F"},"1F3FD":{"unified":"1F9DC-1F3FD","non_qualified":null,"image":"1f9dc-1f3fd.png","sheet_x":52,"sheet_y":50,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9DC-1F3FD-200D-2642-FE0F"},"1F3FE":{"unified":"1F9DC-1F3FE","non_qualified":null,"image":"1f9dc-1f3fe.png","sheet_x":52,"sheet_y":51,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9DC-1F3FE-200D-2642-FE0F"},"1F3FF":{"unified":"1F9DC-1F3FF","non_qualified":null,"image":"1f9dc-1f3ff.png","sheet_x":52,"sheet_y":52,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9DC-1F3FF-200D-2642-FE0F"}},"obsoleted_by":"1F9DC-200D-2642-FE0F","a":"Merperson","b":"1F9DC","d":true,"e":true,"f":true,"h":true,"j":["merperson","sea"],"k":[52,47],"o":5},"merman":{"subcategory":"person-fantasy","skin_variations":{"1F3FB":{"unified":"1F9DC-1F3FB-200D-2642-FE0F","non_qualified":"1F9DC-1F3FB-200D-2642","image":"1f9dc-1f3fb-200d-2642-fe0f.png","sheet_x":52,"sheet_y":42,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9DC-1F3FB"},"1F3FC":{"unified":"1F9DC-1F3FC-200D-2642-FE0F","non_qualified":"1F9DC-1F3FC-200D-2642","image":"1f9dc-1f3fc-200d-2642-fe0f.png","sheet_x":52,"sheet_y":43,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9DC-1F3FC"},"1F3FD":{"unified":"1F9DC-1F3FD-200D-2642-FE0F","non_qualified":"1F9DC-1F3FD-200D-2642","image":"1f9dc-1f3fd-200d-2642-fe0f.png","sheet_x":52,"sheet_y":44,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9DC-1F3FD"},"1F3FE":{"unified":"1F9DC-1F3FE-200D-2642-FE0F","non_qualified":"1F9DC-1F3FE-200D-2642","image":"1f9dc-1f3fe-200d-2642-fe0f.png","sheet_x":52,"sheet_y":45,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9DC-1F3FE"},"1F3FF":{"unified":"1F9DC-1F3FF-200D-2642-FE0F","non_qualified":"1F9DC-1F3FF-200D-2642","image":"1f9dc-1f3ff-200d-2642-fe0f.png","sheet_x":52,"sheet_y":46,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9DC-1F3FF"}},"obsoletes":"1F9DC","a":"Merman","b":"1F9DC-200D-2642-FE0F","c":"1F9DC-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["merman","man","male","triton"],"k":[52,41],"o":5},"mermaid":{"subcategory":"person-fantasy","skin_variations":{"1F3FB":{"unified":"1F9DC-1F3FB-200D-2640-FE0F","non_qualified":"1F9DC-1F3FB-200D-2640","image":"1f9dc-1f3fb-200d-2640-fe0f.png","sheet_x":52,"sheet_y":36,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9DC-1F3FC-200D-2640-FE0F","non_qualified":"1F9DC-1F3FC-200D-2640","image":"1f9dc-1f3fc-200d-2640-fe0f.png","sheet_x":52,"sheet_y":37,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9DC-1F3FD-200D-2640-FE0F","non_qualified":"1F9DC-1F3FD-200D-2640","image":"1f9dc-1f3fd-200d-2640-fe0f.png","sheet_x":52,"sheet_y":38,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9DC-1F3FE-200D-2640-FE0F","non_qualified":"1F9DC-1F3FE-200D-2640","image":"1f9dc-1f3fe-200d-2640-fe0f.png","sheet_x":52,"sheet_y":39,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9DC-1F3FF-200D-2640-FE0F","non_qualified":"1F9DC-1F3FF-200D-2640","image":"1f9dc-1f3ff-200d-2640-fe0f.png","sheet_x":52,"sheet_y":40,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Mermaid","b":"1F9DC-200D-2640-FE0F","c":"1F9DC-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["mermaid","woman","female","merwoman","ariel"],"k":[52,35],"o":5},"elf":{"subcategory":"person-fantasy","skin_variations":{"1F3FB":{"unified":"1F9DD-1F3FB","non_qualified":null,"image":"1f9dd-1f3fb.png","sheet_x":53,"sheet_y":5,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9DD-1F3FB-200D-2642-FE0F"},"1F3FC":{"unified":"1F9DD-1F3FC","non_qualified":null,"image":"1f9dd-1f3fc.png","sheet_x":53,"sheet_y":6,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9DD-1F3FC-200D-2642-FE0F"},"1F3FD":{"unified":"1F9DD-1F3FD","non_qualified":null,"image":"1f9dd-1f3fd.png","sheet_x":53,"sheet_y":7,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9DD-1F3FD-200D-2642-FE0F"},"1F3FE":{"unified":"1F9DD-1F3FE","non_qualified":null,"image":"1f9dd-1f3fe.png","sheet_x":53,"sheet_y":8,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9DD-1F3FE-200D-2642-FE0F"},"1F3FF":{"unified":"1F9DD-1F3FF","non_qualified":null,"image":"1f9dd-1f3ff.png","sheet_x":53,"sheet_y":9,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9DD-1F3FF-200D-2642-FE0F"}},"obsoleted_by":"1F9DD-200D-2642-FE0F","a":"Elf","b":"1F9DD","d":true,"e":true,"f":true,"h":true,"j":["elf","magical"],"k":[53,4],"o":5},"male_elf":{"subcategory":"person-fantasy","skin_variations":{"1F3FB":{"unified":"1F9DD-1F3FB-200D-2642-FE0F","non_qualified":"1F9DD-1F3FB-200D-2642","image":"1f9dd-1f3fb-200d-2642-fe0f.png","sheet_x":52,"sheet_y":60,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9DD-1F3FB"},"1F3FC":{"unified":"1F9DD-1F3FC-200D-2642-FE0F","non_qualified":"1F9DD-1F3FC-200D-2642","image":"1f9dd-1f3fc-200d-2642-fe0f.png","sheet_x":53,"sheet_y":0,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9DD-1F3FC"},"1F3FD":{"unified":"1F9DD-1F3FD-200D-2642-FE0F","non_qualified":"1F9DD-1F3FD-200D-2642","image":"1f9dd-1f3fd-200d-2642-fe0f.png","sheet_x":53,"sheet_y":1,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9DD-1F3FD"},"1F3FE":{"unified":"1F9DD-1F3FE-200D-2642-FE0F","non_qualified":"1F9DD-1F3FE-200D-2642","image":"1f9dd-1f3fe-200d-2642-fe0f.png","sheet_x":53,"sheet_y":2,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9DD-1F3FE"},"1F3FF":{"unified":"1F9DD-1F3FF-200D-2642-FE0F","non_qualified":"1F9DD-1F3FF-200D-2642","image":"1f9dd-1f3ff-200d-2642-fe0f.png","sheet_x":53,"sheet_y":3,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9DD-1F3FF"}},"obsoletes":"1F9DD","a":"Man Elf","b":"1F9DD-200D-2642-FE0F","c":"1F9DD-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_elf","man","male"],"k":[52,59],"o":5},"female_elf":{"subcategory":"person-fantasy","skin_variations":{"1F3FB":{"unified":"1F9DD-1F3FB-200D-2640-FE0F","non_qualified":"1F9DD-1F3FB-200D-2640","image":"1f9dd-1f3fb-200d-2640-fe0f.png","sheet_x":52,"sheet_y":54,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9DD-1F3FC-200D-2640-FE0F","non_qualified":"1F9DD-1F3FC-200D-2640","image":"1f9dd-1f3fc-200d-2640-fe0f.png","sheet_x":52,"sheet_y":55,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9DD-1F3FD-200D-2640-FE0F","non_qualified":"1F9DD-1F3FD-200D-2640","image":"1f9dd-1f3fd-200d-2640-fe0f.png","sheet_x":52,"sheet_y":56,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9DD-1F3FE-200D-2640-FE0F","non_qualified":"1F9DD-1F3FE-200D-2640","image":"1f9dd-1f3fe-200d-2640-fe0f.png","sheet_x":52,"sheet_y":57,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9DD-1F3FF-200D-2640-FE0F","non_qualified":"1F9DD-1F3FF-200D-2640","image":"1f9dd-1f3ff-200d-2640-fe0f.png","sheet_x":52,"sheet_y":58,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Elf","b":"1F9DD-200D-2640-FE0F","c":"1F9DD-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_elf","woman","female"],"k":[52,53],"o":5},"genie":{"subcategory":"person-fantasy","obsoleted_by":"1F9DE-200D-2642-FE0F","a":"Genie","b":"1F9DE","d":true,"e":true,"f":true,"h":true,"j":["genie","magical","wishes"],"k":[53,12],"o":5},"male_genie":{"subcategory":"person-fantasy","obsoletes":"1F9DE","a":"Man Genie","b":"1F9DE-200D-2642-FE0F","c":"1F9DE-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_genie","man","male"],"k":[53,11],"o":5},"female_genie":{"subcategory":"person-fantasy","a":"Woman Genie","b":"1F9DE-200D-2640-FE0F","c":"1F9DE-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_genie","woman","female"],"k":[53,10],"o":5},"zombie":{"subcategory":"person-fantasy","obsoleted_by":"1F9DF-200D-2642-FE0F","a":"Zombie","b":"1F9DF","d":true,"e":true,"f":true,"h":true,"j":["zombie","dead"],"k":[53,15],"o":5},"male_zombie":{"subcategory":"person-fantasy","obsoletes":"1F9DF","a":"Man Zombie","b":"1F9DF-200D-2642-FE0F","c":"1F9DF-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_zombie","man","male","dracula","undead","walking dead"],"k":[53,14],"o":5},"female_zombie":{"subcategory":"person-fantasy","a":"Woman Zombie","b":"1F9DF-200D-2640-FE0F","c":"1F9DF-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_zombie","woman","female","undead","walking dead"],"k":[53,13],"o":5},"troll":{"subcategory":"person-fantasy","a":"Troll","b":"1F9CC","d":true,"e":true,"f":true,"h":true,"j":["troll","mystical","monster"],"k":[46,19],"o":14},"massage":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F486-1F3FB","non_qualified":null,"image":"1f486-1f3fb.png","sheet_x":26,"sheet_y":12,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F486-1F3FC","non_qualified":null,"image":"1f486-1f3fc.png","sheet_x":26,"sheet_y":13,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F486-1F3FD","non_qualified":null,"image":"1f486-1f3fd.png","sheet_x":26,"sheet_y":14,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F486-1F3FE","non_qualified":null,"image":"1f486-1f3fe.png","sheet_x":26,"sheet_y":15,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F486-1F3FF","non_qualified":null,"image":"1f486-1f3ff.png","sheet_x":26,"sheet_y":16,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoleted_by":"1F486-200D-2640-FE0F","a":"Face Massage","b":"1F486","d":true,"e":true,"f":true,"h":true,"j":["person_getting_massage","relax"],"k":[26,11],"o":0},"man-getting-massage":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F486-1F3FB-200D-2642-FE0F","non_qualified":"1F486-1F3FB-200D-2642","image":"1f486-1f3fb-200d-2642-fe0f.png","sheet_x":26,"sheet_y":6,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F486-1F3FC-200D-2642-FE0F","non_qualified":"1F486-1F3FC-200D-2642","image":"1f486-1f3fc-200d-2642-fe0f.png","sheet_x":26,"sheet_y":7,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F486-1F3FD-200D-2642-FE0F","non_qualified":"1F486-1F3FD-200D-2642","image":"1f486-1f3fd-200d-2642-fe0f.png","sheet_x":26,"sheet_y":8,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F486-1F3FE-200D-2642-FE0F","non_qualified":"1F486-1F3FE-200D-2642","image":"1f486-1f3fe-200d-2642-fe0f.png","sheet_x":26,"sheet_y":9,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F486-1F3FF-200D-2642-FE0F","non_qualified":"1F486-1F3FF-200D-2642","image":"1f486-1f3ff-200d-2642-fe0f.png","sheet_x":26,"sheet_y":10,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Getting Massage","b":"1F486-200D-2642-FE0F","c":"1F486-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_getting_massage","male","boy","man","head"],"k":[26,5],"o":4},"woman-getting-massage":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F486-1F3FB-200D-2640-FE0F","non_qualified":"1F486-1F3FB-200D-2640","image":"1f486-1f3fb-200d-2640-fe0f.png","sheet_x":26,"sheet_y":0,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F486-1F3FC-200D-2640-FE0F","non_qualified":"1F486-1F3FC-200D-2640","image":"1f486-1f3fc-200d-2640-fe0f.png","sheet_x":26,"sheet_y":1,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F486-1F3FD-200D-2640-FE0F","non_qualified":"1F486-1F3FD-200D-2640","image":"1f486-1f3fd-200d-2640-fe0f.png","sheet_x":26,"sheet_y":2,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F486-1F3FE-200D-2640-FE0F","non_qualified":"1F486-1F3FE-200D-2640","image":"1f486-1f3fe-200d-2640-fe0f.png","sheet_x":26,"sheet_y":3,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F486-1F3FF-200D-2640-FE0F","non_qualified":"1F486-1F3FF-200D-2640","image":"1f486-1f3ff-200d-2640-fe0f.png","sheet_x":26,"sheet_y":4,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoletes":"1F486","a":"Woman Getting Massage","b":"1F486-200D-2640-FE0F","c":"1F486-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_getting_massage","female","girl","woman","head"],"k":[25,60],"o":4},"haircut":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F487-1F3FB","non_qualified":null,"image":"1f487-1f3fb.png","sheet_x":26,"sheet_y":30,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F487-1F3FC","non_qualified":null,"image":"1f487-1f3fc.png","sheet_x":26,"sheet_y":31,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F487-1F3FD","non_qualified":null,"image":"1f487-1f3fd.png","sheet_x":26,"sheet_y":32,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F487-1F3FE","non_qualified":null,"image":"1f487-1f3fe.png","sheet_x":26,"sheet_y":33,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F487-1F3FF","non_qualified":null,"image":"1f487-1f3ff.png","sheet_x":26,"sheet_y":34,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoleted_by":"1F487-200D-2640-FE0F","a":"Haircut","b":"1F487","d":true,"e":true,"f":true,"h":true,"j":["person_getting_haircut","hairstyle"],"k":[26,29],"o":0},"man-getting-haircut":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F487-1F3FB-200D-2642-FE0F","non_qualified":"1F487-1F3FB-200D-2642","image":"1f487-1f3fb-200d-2642-fe0f.png","sheet_x":26,"sheet_y":24,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F487-1F3FC-200D-2642-FE0F","non_qualified":"1F487-1F3FC-200D-2642","image":"1f487-1f3fc-200d-2642-fe0f.png","sheet_x":26,"sheet_y":25,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F487-1F3FD-200D-2642-FE0F","non_qualified":"1F487-1F3FD-200D-2642","image":"1f487-1f3fd-200d-2642-fe0f.png","sheet_x":26,"sheet_y":26,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F487-1F3FE-200D-2642-FE0F","non_qualified":"1F487-1F3FE-200D-2642","image":"1f487-1f3fe-200d-2642-fe0f.png","sheet_x":26,"sheet_y":27,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F487-1F3FF-200D-2642-FE0F","non_qualified":"1F487-1F3FF-200D-2642","image":"1f487-1f3ff-200d-2642-fe0f.png","sheet_x":26,"sheet_y":28,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Getting Haircut","b":"1F487-200D-2642-FE0F","c":"1F487-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_getting_haircut","male","boy","man"],"k":[26,23],"o":4},"woman-getting-haircut":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F487-1F3FB-200D-2640-FE0F","non_qualified":"1F487-1F3FB-200D-2640","image":"1f487-1f3fb-200d-2640-fe0f.png","sheet_x":26,"sheet_y":18,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F487-1F3FC-200D-2640-FE0F","non_qualified":"1F487-1F3FC-200D-2640","image":"1f487-1f3fc-200d-2640-fe0f.png","sheet_x":26,"sheet_y":19,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F487-1F3FD-200D-2640-FE0F","non_qualified":"1F487-1F3FD-200D-2640","image":"1f487-1f3fd-200d-2640-fe0f.png","sheet_x":26,"sheet_y":20,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F487-1F3FE-200D-2640-FE0F","non_qualified":"1F487-1F3FE-200D-2640","image":"1f487-1f3fe-200d-2640-fe0f.png","sheet_x":26,"sheet_y":21,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F487-1F3FF-200D-2640-FE0F","non_qualified":"1F487-1F3FF-200D-2640","image":"1f487-1f3ff-200d-2640-fe0f.png","sheet_x":26,"sheet_y":22,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoletes":"1F487","a":"Woman Getting Haircut","b":"1F487-200D-2640-FE0F","c":"1F487-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_getting_haircut","female","girl","woman"],"k":[26,17],"o":4},"walking":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F6B6-1F3FB","non_qualified":null,"image":"1f6b6-1f3fb.png","sheet_x":37,"sheet_y":29,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F6B6-1F3FC","non_qualified":null,"image":"1f6b6-1f3fc.png","sheet_x":37,"sheet_y":30,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F6B6-1F3FD","non_qualified":null,"image":"1f6b6-1f3fd.png","sheet_x":37,"sheet_y":31,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F6B6-1F3FE","non_qualified":null,"image":"1f6b6-1f3fe.png","sheet_x":37,"sheet_y":32,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F6B6-1F3FF","non_qualified":null,"image":"1f6b6-1f3ff.png","sheet_x":37,"sheet_y":33,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoleted_by":"1F6B6-200D-2642-FE0F","a":"Pedestrian","b":"1F6B6","d":true,"e":true,"f":true,"h":true,"j":["person_walking","move"],"k":[37,28],"o":0},"man-walking":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F6B6-1F3FB-200D-2642-FE0F","non_qualified":"1F6B6-1F3FB-200D-2642","image":"1f6b6-1f3fb-200d-2642-fe0f.png","sheet_x":37,"sheet_y":23,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F6B6-1F3FC-200D-2642-FE0F","non_qualified":"1F6B6-1F3FC-200D-2642","image":"1f6b6-1f3fc-200d-2642-fe0f.png","sheet_x":37,"sheet_y":24,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F6B6-1F3FD-200D-2642-FE0F","non_qualified":"1F6B6-1F3FD-200D-2642","image":"1f6b6-1f3fd-200d-2642-fe0f.png","sheet_x":37,"sheet_y":25,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F6B6-1F3FE-200D-2642-FE0F","non_qualified":"1F6B6-1F3FE-200D-2642","image":"1f6b6-1f3fe-200d-2642-fe0f.png","sheet_x":37,"sheet_y":26,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F6B6-1F3FF-200D-2642-FE0F","non_qualified":"1F6B6-1F3FF-200D-2642","image":"1f6b6-1f3ff-200d-2642-fe0f.png","sheet_x":37,"sheet_y":27,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoletes":"1F6B6","a":"Man Walking","b":"1F6B6-200D-2642-FE0F","c":"1F6B6-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_walking","human","feet","steps"],"k":[37,22],"o":4},"woman-walking":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F6B6-1F3FB-200D-2640-FE0F","non_qualified":"1F6B6-1F3FB-200D-2640","image":"1f6b6-1f3fb-200d-2640-fe0f.png","sheet_x":37,"sheet_y":17,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F6B6-1F3FC-200D-2640-FE0F","non_qualified":"1F6B6-1F3FC-200D-2640","image":"1f6b6-1f3fc-200d-2640-fe0f.png","sheet_x":37,"sheet_y":18,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F6B6-1F3FD-200D-2640-FE0F","non_qualified":"1F6B6-1F3FD-200D-2640","image":"1f6b6-1f3fd-200d-2640-fe0f.png","sheet_x":37,"sheet_y":19,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F6B6-1F3FE-200D-2640-FE0F","non_qualified":"1F6B6-1F3FE-200D-2640","image":"1f6b6-1f3fe-200d-2640-fe0f.png","sheet_x":37,"sheet_y":20,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F6B6-1F3FF-200D-2640-FE0F","non_qualified":"1F6B6-1F3FF-200D-2640","image":"1f6b6-1f3ff-200d-2640-fe0f.png","sheet_x":37,"sheet_y":21,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Walking","b":"1F6B6-200D-2640-FE0F","c":"1F6B6-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_walking","human","feet","steps","woman","female"],"k":[37,16],"o":4},"standing_person":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F9CD-1F3FB","non_qualified":null,"image":"1f9cd-1f3fb.png","sheet_x":46,"sheet_y":33,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9CD-1F3FC","non_qualified":null,"image":"1f9cd-1f3fc.png","sheet_x":46,"sheet_y":34,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9CD-1F3FD","non_qualified":null,"image":"1f9cd-1f3fd.png","sheet_x":46,"sheet_y":35,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9CD-1F3FE","non_qualified":null,"image":"1f9cd-1f3fe.png","sheet_x":46,"sheet_y":36,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9CD-1F3FF","non_qualified":null,"image":"1f9cd-1f3ff.png","sheet_x":46,"sheet_y":37,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Standing Person","b":"1F9CD","d":true,"e":true,"f":true,"h":true,"j":["person_standing","still"],"k":[46,32],"o":12},"man_standing":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F9CD-1F3FB-200D-2642-FE0F","non_qualified":"1F9CD-1F3FB-200D-2642","image":"1f9cd-1f3fb-200d-2642-fe0f.png","sheet_x":46,"sheet_y":27,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9CD-1F3FC-200D-2642-FE0F","non_qualified":"1F9CD-1F3FC-200D-2642","image":"1f9cd-1f3fc-200d-2642-fe0f.png","sheet_x":46,"sheet_y":28,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9CD-1F3FD-200D-2642-FE0F","non_qualified":"1F9CD-1F3FD-200D-2642","image":"1f9cd-1f3fd-200d-2642-fe0f.png","sheet_x":46,"sheet_y":29,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9CD-1F3FE-200D-2642-FE0F","non_qualified":"1F9CD-1F3FE-200D-2642","image":"1f9cd-1f3fe-200d-2642-fe0f.png","sheet_x":46,"sheet_y":30,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9CD-1F3FF-200D-2642-FE0F","non_qualified":"1F9CD-1F3FF-200D-2642","image":"1f9cd-1f3ff-200d-2642-fe0f.png","sheet_x":46,"sheet_y":31,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Standing","b":"1F9CD-200D-2642-FE0F","c":"1F9CD-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_standing","still"],"k":[46,26],"o":12},"woman_standing":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F9CD-1F3FB-200D-2640-FE0F","non_qualified":"1F9CD-1F3FB-200D-2640","image":"1f9cd-1f3fb-200d-2640-fe0f.png","sheet_x":46,"sheet_y":21,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9CD-1F3FC-200D-2640-FE0F","non_qualified":"1F9CD-1F3FC-200D-2640","image":"1f9cd-1f3fc-200d-2640-fe0f.png","sheet_x":46,"sheet_y":22,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9CD-1F3FD-200D-2640-FE0F","non_qualified":"1F9CD-1F3FD-200D-2640","image":"1f9cd-1f3fd-200d-2640-fe0f.png","sheet_x":46,"sheet_y":23,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9CD-1F3FE-200D-2640-FE0F","non_qualified":"1F9CD-1F3FE-200D-2640","image":"1f9cd-1f3fe-200d-2640-fe0f.png","sheet_x":46,"sheet_y":24,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9CD-1F3FF-200D-2640-FE0F","non_qualified":"1F9CD-1F3FF-200D-2640","image":"1f9cd-1f3ff-200d-2640-fe0f.png","sheet_x":46,"sheet_y":25,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Standing","b":"1F9CD-200D-2640-FE0F","c":"1F9CD-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_standing","still"],"k":[46,20],"o":12},"kneeling_person":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F9CE-1F3FB","non_qualified":null,"image":"1f9ce-1f3fb.png","sheet_x":46,"sheet_y":51,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9CE-1F3FC","non_qualified":null,"image":"1f9ce-1f3fc.png","sheet_x":46,"sheet_y":52,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9CE-1F3FD","non_qualified":null,"image":"1f9ce-1f3fd.png","sheet_x":46,"sheet_y":53,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9CE-1F3FE","non_qualified":null,"image":"1f9ce-1f3fe.png","sheet_x":46,"sheet_y":54,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9CE-1F3FF","non_qualified":null,"image":"1f9ce-1f3ff.png","sheet_x":46,"sheet_y":55,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Kneeling Person","b":"1F9CE","d":true,"e":true,"f":true,"h":true,"j":["person_kneeling","pray","respectful"],"k":[46,50],"o":12},"man_kneeling":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F9CE-1F3FB-200D-2642-FE0F","non_qualified":"1F9CE-1F3FB-200D-2642","image":"1f9ce-1f3fb-200d-2642-fe0f.png","sheet_x":46,"sheet_y":45,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9CE-1F3FC-200D-2642-FE0F","non_qualified":"1F9CE-1F3FC-200D-2642","image":"1f9ce-1f3fc-200d-2642-fe0f.png","sheet_x":46,"sheet_y":46,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9CE-1F3FD-200D-2642-FE0F","non_qualified":"1F9CE-1F3FD-200D-2642","image":"1f9ce-1f3fd-200d-2642-fe0f.png","sheet_x":46,"sheet_y":47,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9CE-1F3FE-200D-2642-FE0F","non_qualified":"1F9CE-1F3FE-200D-2642","image":"1f9ce-1f3fe-200d-2642-fe0f.png","sheet_x":46,"sheet_y":48,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9CE-1F3FF-200D-2642-FE0F","non_qualified":"1F9CE-1F3FF-200D-2642","image":"1f9ce-1f3ff-200d-2642-fe0f.png","sheet_x":46,"sheet_y":49,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Kneeling","b":"1F9CE-200D-2642-FE0F","c":"1F9CE-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_kneeling","pray","respectful"],"k":[46,44],"o":12},"woman_kneeling":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F9CE-1F3FB-200D-2640-FE0F","non_qualified":"1F9CE-1F3FB-200D-2640","image":"1f9ce-1f3fb-200d-2640-fe0f.png","sheet_x":46,"sheet_y":39,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9CE-1F3FC-200D-2640-FE0F","non_qualified":"1F9CE-1F3FC-200D-2640","image":"1f9ce-1f3fc-200d-2640-fe0f.png","sheet_x":46,"sheet_y":40,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9CE-1F3FD-200D-2640-FE0F","non_qualified":"1F9CE-1F3FD-200D-2640","image":"1f9ce-1f3fd-200d-2640-fe0f.png","sheet_x":46,"sheet_y":41,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9CE-1F3FE-200D-2640-FE0F","non_qualified":"1F9CE-1F3FE-200D-2640","image":"1f9ce-1f3fe-200d-2640-fe0f.png","sheet_x":46,"sheet_y":42,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9CE-1F3FF-200D-2640-FE0F","non_qualified":"1F9CE-1F3FF-200D-2640","image":"1f9ce-1f3ff-200d-2640-fe0f.png","sheet_x":46,"sheet_y":43,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Kneeling","b":"1F9CE-200D-2640-FE0F","c":"1F9CE-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_kneeling","respectful","pray"],"k":[46,38],"o":12},"person_with_probing_cane":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F9D1-1F3FB-200D-1F9AF","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f9af.png","sheet_x":49,"sheet_y":9,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D1-1F3FC-200D-1F9AF","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f9af.png","sheet_x":49,"sheet_y":10,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D1-1F3FD-200D-1F9AF","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f9af.png","sheet_x":49,"sheet_y":11,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D1-1F3FE-200D-1F9AF","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f9af.png","sheet_x":49,"sheet_y":12,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D1-1F3FF-200D-1F9AF","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f9af.png","sheet_x":49,"sheet_y":13,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Person with White Cane","b":"1F9D1-200D-1F9AF","d":true,"e":true,"f":true,"h":true,"j":["person_with_probing_cane","blind"],"k":[49,8],"o":12},"man_with_probing_cane":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F468-1F3FB-200D-1F9AF","non_qualified":null,"image":"1f468-1f3fb-200d-1f9af.png","sheet_x":15,"sheet_y":25,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F468-1F3FC-200D-1F9AF","non_qualified":null,"image":"1f468-1f3fc-200d-1f9af.png","sheet_x":15,"sheet_y":26,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F468-1F3FD-200D-1F9AF","non_qualified":null,"image":"1f468-1f3fd-200d-1f9af.png","sheet_x":15,"sheet_y":27,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F468-1F3FE-200D-1F9AF","non_qualified":null,"image":"1f468-1f3fe-200d-1f9af.png","sheet_x":15,"sheet_y":28,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F468-1F3FF-200D-1F9AF","non_qualified":null,"image":"1f468-1f3ff-200d-1f9af.png","sheet_x":15,"sheet_y":29,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man with White Cane","b":"1F468-200D-1F9AF","d":true,"e":true,"f":true,"h":true,"j":["man_with_probing_cane","blind"],"k":[15,24],"o":12},"woman_with_probing_cane":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F469-1F3FB-200D-1F9AF","non_qualified":null,"image":"1f469-1f3fb-200d-1f9af.png","sheet_x":18,"sheet_y":54,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F469-1F3FC-200D-1F9AF","non_qualified":null,"image":"1f469-1f3fc-200d-1f9af.png","sheet_x":18,"sheet_y":55,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F469-1F3FD-200D-1F9AF","non_qualified":null,"image":"1f469-1f3fd-200d-1f9af.png","sheet_x":18,"sheet_y":56,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F469-1F3FE-200D-1F9AF","non_qualified":null,"image":"1f469-1f3fe-200d-1f9af.png","sheet_x":18,"sheet_y":57,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F469-1F3FF-200D-1F9AF","non_qualified":null,"image":"1f469-1f3ff-200d-1f9af.png","sheet_x":18,"sheet_y":58,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman with White Cane","b":"1F469-200D-1F9AF","d":true,"e":true,"f":true,"h":true,"j":["woman_with_probing_cane","blind"],"k":[18,53],"o":12},"person_in_motorized_wheelchair":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F9D1-1F3FB-200D-1F9BC","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f9bc.png","sheet_x":49,"sheet_y":39,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D1-1F3FC-200D-1F9BC","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f9bc.png","sheet_x":49,"sheet_y":40,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D1-1F3FD-200D-1F9BC","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f9bc.png","sheet_x":49,"sheet_y":41,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D1-1F3FE-200D-1F9BC","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f9bc.png","sheet_x":49,"sheet_y":42,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D1-1F3FF-200D-1F9BC","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f9bc.png","sheet_x":49,"sheet_y":43,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Person in Motorized Wheelchair","b":"1F9D1-200D-1F9BC","d":true,"e":true,"f":true,"h":true,"j":["person_in_motorized_wheelchair","disability","accessibility"],"k":[49,38],"o":12},"man_in_motorized_wheelchair":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F468-1F3FB-200D-1F9BC","non_qualified":null,"image":"1f468-1f3fb-200d-1f9bc.png","sheet_x":15,"sheet_y":55,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F468-1F3FC-200D-1F9BC","non_qualified":null,"image":"1f468-1f3fc-200d-1f9bc.png","sheet_x":15,"sheet_y":56,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F468-1F3FD-200D-1F9BC","non_qualified":null,"image":"1f468-1f3fd-200d-1f9bc.png","sheet_x":15,"sheet_y":57,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F468-1F3FE-200D-1F9BC","non_qualified":null,"image":"1f468-1f3fe-200d-1f9bc.png","sheet_x":15,"sheet_y":58,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F468-1F3FF-200D-1F9BC","non_qualified":null,"image":"1f468-1f3ff-200d-1f9bc.png","sheet_x":15,"sheet_y":59,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man in Motorized Wheelchair","b":"1F468-200D-1F9BC","d":true,"e":true,"f":true,"h":true,"j":["man_in_motorized_wheelchair","disability","accessibility"],"k":[15,54],"o":12},"woman_in_motorized_wheelchair":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F469-1F3FB-200D-1F9BC","non_qualified":null,"image":"1f469-1f3fb-200d-1f9bc.png","sheet_x":19,"sheet_y":23,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F469-1F3FC-200D-1F9BC","non_qualified":null,"image":"1f469-1f3fc-200d-1f9bc.png","sheet_x":19,"sheet_y":24,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F469-1F3FD-200D-1F9BC","non_qualified":null,"image":"1f469-1f3fd-200d-1f9bc.png","sheet_x":19,"sheet_y":25,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F469-1F3FE-200D-1F9BC","non_qualified":null,"image":"1f469-1f3fe-200d-1f9bc.png","sheet_x":19,"sheet_y":26,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F469-1F3FF-200D-1F9BC","non_qualified":null,"image":"1f469-1f3ff-200d-1f9bc.png","sheet_x":19,"sheet_y":27,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman in Motorized Wheelchair","b":"1F469-200D-1F9BC","d":true,"e":true,"f":true,"h":true,"j":["woman_in_motorized_wheelchair","disability","accessibility"],"k":[19,22],"o":12},"person_in_manual_wheelchair":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F9D1-1F3FB-200D-1F9BD","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f9bd.png","sheet_x":49,"sheet_y":45,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D1-1F3FC-200D-1F9BD","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f9bd.png","sheet_x":49,"sheet_y":46,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D1-1F3FD-200D-1F9BD","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f9bd.png","sheet_x":49,"sheet_y":47,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D1-1F3FE-200D-1F9BD","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f9bd.png","sheet_x":49,"sheet_y":48,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D1-1F3FF-200D-1F9BD","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f9bd.png","sheet_x":49,"sheet_y":49,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Person in Manual Wheelchair","b":"1F9D1-200D-1F9BD","d":true,"e":true,"f":true,"h":true,"j":["person_in_manual_wheelchair","disability","accessibility"],"k":[49,44],"o":12},"man_in_manual_wheelchair":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F468-1F3FB-200D-1F9BD","non_qualified":null,"image":"1f468-1f3fb-200d-1f9bd.png","sheet_x":16,"sheet_y":0,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F468-1F3FC-200D-1F9BD","non_qualified":null,"image":"1f468-1f3fc-200d-1f9bd.png","sheet_x":16,"sheet_y":1,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F468-1F3FD-200D-1F9BD","non_qualified":null,"image":"1f468-1f3fd-200d-1f9bd.png","sheet_x":16,"sheet_y":2,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F468-1F3FE-200D-1F9BD","non_qualified":null,"image":"1f468-1f3fe-200d-1f9bd.png","sheet_x":16,"sheet_y":3,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F468-1F3FF-200D-1F9BD","non_qualified":null,"image":"1f468-1f3ff-200d-1f9bd.png","sheet_x":16,"sheet_y":4,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man in Manual Wheelchair","b":"1F468-200D-1F9BD","d":true,"e":true,"f":true,"h":true,"j":["man_in_manual_wheelchair","disability","accessibility"],"k":[15,60],"o":12},"woman_in_manual_wheelchair":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F469-1F3FB-200D-1F9BD","non_qualified":null,"image":"1f469-1f3fb-200d-1f9bd.png","sheet_x":19,"sheet_y":29,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F469-1F3FC-200D-1F9BD","non_qualified":null,"image":"1f469-1f3fc-200d-1f9bd.png","sheet_x":19,"sheet_y":30,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F469-1F3FD-200D-1F9BD","non_qualified":null,"image":"1f469-1f3fd-200d-1f9bd.png","sheet_x":19,"sheet_y":31,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F469-1F3FE-200D-1F9BD","non_qualified":null,"image":"1f469-1f3fe-200d-1f9bd.png","sheet_x":19,"sheet_y":32,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F469-1F3FF-200D-1F9BD","non_qualified":null,"image":"1f469-1f3ff-200d-1f9bd.png","sheet_x":19,"sheet_y":33,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman in Manual Wheelchair","b":"1F469-200D-1F9BD","d":true,"e":true,"f":true,"h":true,"j":["woman_in_manual_wheelchair","disability","accessibility"],"k":[19,28],"o":12},"runner":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F3C3-1F3FB","non_qualified":null,"image":"1f3c3-1f3fb.png","sheet_x":8,"sheet_y":27,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F3C3-1F3FC","non_qualified":null,"image":"1f3c3-1f3fc.png","sheet_x":8,"sheet_y":28,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F3C3-1F3FD","non_qualified":null,"image":"1f3c3-1f3fd.png","sheet_x":8,"sheet_y":29,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F3C3-1F3FE","non_qualified":null,"image":"1f3c3-1f3fe.png","sheet_x":8,"sheet_y":30,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F3C3-1F3FF","non_qualified":null,"image":"1f3c3-1f3ff.png","sheet_x":8,"sheet_y":31,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoleted_by":"1F3C3-200D-2642-FE0F","a":"Runner","b":"1F3C3","d":true,"e":true,"f":true,"h":true,"j":["person_running","move"],"k":[8,26],"n":["running"],"o":0},"man-running":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F3C3-1F3FB-200D-2642-FE0F","non_qualified":"1F3C3-1F3FB-200D-2642","image":"1f3c3-1f3fb-200d-2642-fe0f.png","sheet_x":8,"sheet_y":21,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F3C3-1F3FC-200D-2642-FE0F","non_qualified":"1F3C3-1F3FC-200D-2642","image":"1f3c3-1f3fc-200d-2642-fe0f.png","sheet_x":8,"sheet_y":22,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F3C3-1F3FD-200D-2642-FE0F","non_qualified":"1F3C3-1F3FD-200D-2642","image":"1f3c3-1f3fd-200d-2642-fe0f.png","sheet_x":8,"sheet_y":23,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F3C3-1F3FE-200D-2642-FE0F","non_qualified":"1F3C3-1F3FE-200D-2642","image":"1f3c3-1f3fe-200d-2642-fe0f.png","sheet_x":8,"sheet_y":24,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F3C3-1F3FF-200D-2642-FE0F","non_qualified":"1F3C3-1F3FF-200D-2642","image":"1f3c3-1f3ff-200d-2642-fe0f.png","sheet_x":8,"sheet_y":25,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoletes":"1F3C3","a":"Man Running","b":"1F3C3-200D-2642-FE0F","c":"1F3C3-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_running","man","walking","exercise","race","running"],"k":[8,20],"o":4},"woman-running":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F3C3-1F3FB-200D-2640-FE0F","non_qualified":"1F3C3-1F3FB-200D-2640","image":"1f3c3-1f3fb-200d-2640-fe0f.png","sheet_x":8,"sheet_y":15,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F3C3-1F3FC-200D-2640-FE0F","non_qualified":"1F3C3-1F3FC-200D-2640","image":"1f3c3-1f3fc-200d-2640-fe0f.png","sheet_x":8,"sheet_y":16,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F3C3-1F3FD-200D-2640-FE0F","non_qualified":"1F3C3-1F3FD-200D-2640","image":"1f3c3-1f3fd-200d-2640-fe0f.png","sheet_x":8,"sheet_y":17,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F3C3-1F3FE-200D-2640-FE0F","non_qualified":"1F3C3-1F3FE-200D-2640","image":"1f3c3-1f3fe-200d-2640-fe0f.png","sheet_x":8,"sheet_y":18,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F3C3-1F3FF-200D-2640-FE0F","non_qualified":"1F3C3-1F3FF-200D-2640","image":"1f3c3-1f3ff-200d-2640-fe0f.png","sheet_x":8,"sheet_y":19,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Running","b":"1F3C3-200D-2640-FE0F","c":"1F3C3-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_running","woman","walking","exercise","race","running","female"],"k":[8,14],"o":4},"dancer":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F483-1F3FB","non_qualified":null,"image":"1f483-1f3fb.png","sheet_x":25,"sheet_y":48,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F483-1F3FC","non_qualified":null,"image":"1f483-1f3fc.png","sheet_x":25,"sheet_y":49,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F483-1F3FD","non_qualified":null,"image":"1f483-1f3fd.png","sheet_x":25,"sheet_y":50,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F483-1F3FE","non_qualified":null,"image":"1f483-1f3fe.png","sheet_x":25,"sheet_y":51,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F483-1F3FF","non_qualified":null,"image":"1f483-1f3ff.png","sheet_x":25,"sheet_y":52,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Dancer","b":"1F483","d":true,"e":true,"f":true,"h":true,"j":["woman_dancing","female","girl","woman","fun"],"k":[25,47],"o":0},"man_dancing":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F57A-1F3FB","non_qualified":null,"image":"1f57a-1f3fb.png","sheet_x":31,"sheet_y":28,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F57A-1F3FC","non_qualified":null,"image":"1f57a-1f3fc.png","sheet_x":31,"sheet_y":29,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F57A-1F3FD","non_qualified":null,"image":"1f57a-1f3fd.png","sheet_x":31,"sheet_y":30,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F57A-1F3FE","non_qualified":null,"image":"1f57a-1f3fe.png","sheet_x":31,"sheet_y":31,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F57A-1F3FF","non_qualified":null,"image":"1f57a-1f3ff.png","sheet_x":31,"sheet_y":32,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Dancing","b":"1F57A","d":true,"e":true,"f":true,"h":true,"j":["man_dancing","male","boy","fun","dancer"],"k":[31,27],"o":3},"man_in_business_suit_levitating":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F574-1F3FB","non_qualified":null,"image":"1f574-1f3fb.png","sheet_x":31,"sheet_y":0,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F574-1F3FC","non_qualified":null,"image":"1f574-1f3fc.png","sheet_x":31,"sheet_y":1,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F574-1F3FD","non_qualified":null,"image":"1f574-1f3fd.png","sheet_x":31,"sheet_y":2,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F574-1F3FE","non_qualified":null,"image":"1f574-1f3fe.png","sheet_x":31,"sheet_y":3,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F574-1F3FF","non_qualified":null,"image":"1f574-1f3ff.png","sheet_x":31,"sheet_y":4,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Person in Suit Levitating","b":"1F574-FE0F","c":"1F574","d":true,"e":true,"f":true,"h":true,"j":["man_in_suit_levitating","suit","business","levitate","hover","jump"],"k":[30,60],"o":0},"dancers":{"subcategory":"person-activity","obsoleted_by":"1F46F-200D-2640-FE0F","a":"Woman with Bunny Ears","b":"1F46F","d":true,"e":true,"f":true,"h":true,"j":["people_with_bunny_ears","perform","costume"],"k":[23,17],"o":0},"men-with-bunny-ears-partying":{"subcategory":"person-activity","a":"Men with Bunny Ears","b":"1F46F-200D-2642-FE0F","c":"1F46F-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["men_with_bunny_ears","male","bunny","men","boys"],"k":[23,16],"n":["man-with-bunny-ears-partying"],"o":4},"women-with-bunny-ears-partying":{"subcategory":"person-activity","obsoletes":"1F46F","a":"Women with Bunny Ears","b":"1F46F-200D-2640-FE0F","c":"1F46F-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["women_with_bunny_ears","female","bunny","women","girls"],"k":[23,15],"n":["woman-with-bunny-ears-partying"],"o":4},"person_in_steamy_room":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F9D6-1F3FB","non_qualified":null,"image":"1f9d6-1f3fb.png","sheet_x":51,"sheet_y":1,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9D6-1F3FB-200D-2642-FE0F"},"1F3FC":{"unified":"1F9D6-1F3FC","non_qualified":null,"image":"1f9d6-1f3fc.png","sheet_x":51,"sheet_y":2,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9D6-1F3FC-200D-2642-FE0F"},"1F3FD":{"unified":"1F9D6-1F3FD","non_qualified":null,"image":"1f9d6-1f3fd.png","sheet_x":51,"sheet_y":3,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9D6-1F3FD-200D-2642-FE0F"},"1F3FE":{"unified":"1F9D6-1F3FE","non_qualified":null,"image":"1f9d6-1f3fe.png","sheet_x":51,"sheet_y":4,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9D6-1F3FE-200D-2642-FE0F"},"1F3FF":{"unified":"1F9D6-1F3FF","non_qualified":null,"image":"1f9d6-1f3ff.png","sheet_x":51,"sheet_y":5,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9D6-1F3FF-200D-2642-FE0F"}},"obsoleted_by":"1F9D6-200D-2642-FE0F","a":"Person in Steamy Room","b":"1F9D6","d":true,"e":true,"f":true,"h":true,"j":["person_in_steamy_room","relax","spa"],"k":[51,0],"o":5},"man_in_steamy_room":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F9D6-1F3FB-200D-2642-FE0F","non_qualified":"1F9D6-1F3FB-200D-2642","image":"1f9d6-1f3fb-200d-2642-fe0f.png","sheet_x":50,"sheet_y":56,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9D6-1F3FB"},"1F3FC":{"unified":"1F9D6-1F3FC-200D-2642-FE0F","non_qualified":"1F9D6-1F3FC-200D-2642","image":"1f9d6-1f3fc-200d-2642-fe0f.png","sheet_x":50,"sheet_y":57,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9D6-1F3FC"},"1F3FD":{"unified":"1F9D6-1F3FD-200D-2642-FE0F","non_qualified":"1F9D6-1F3FD-200D-2642","image":"1f9d6-1f3fd-200d-2642-fe0f.png","sheet_x":50,"sheet_y":58,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9D6-1F3FD"},"1F3FE":{"unified":"1F9D6-1F3FE-200D-2642-FE0F","non_qualified":"1F9D6-1F3FE-200D-2642","image":"1f9d6-1f3fe-200d-2642-fe0f.png","sheet_x":50,"sheet_y":59,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9D6-1F3FE"},"1F3FF":{"unified":"1F9D6-1F3FF-200D-2642-FE0F","non_qualified":"1F9D6-1F3FF-200D-2642","image":"1f9d6-1f3ff-200d-2642-fe0f.png","sheet_x":50,"sheet_y":60,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9D6-1F3FF"}},"obsoletes":"1F9D6","a":"Man in Steamy Room","b":"1F9D6-200D-2642-FE0F","c":"1F9D6-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_in_steamy_room","male","man","spa","steamroom","sauna"],"k":[50,55],"o":5},"woman_in_steamy_room":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F9D6-1F3FB-200D-2640-FE0F","non_qualified":"1F9D6-1F3FB-200D-2640","image":"1f9d6-1f3fb-200d-2640-fe0f.png","sheet_x":50,"sheet_y":50,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D6-1F3FC-200D-2640-FE0F","non_qualified":"1F9D6-1F3FC-200D-2640","image":"1f9d6-1f3fc-200d-2640-fe0f.png","sheet_x":50,"sheet_y":51,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D6-1F3FD-200D-2640-FE0F","non_qualified":"1F9D6-1F3FD-200D-2640","image":"1f9d6-1f3fd-200d-2640-fe0f.png","sheet_x":50,"sheet_y":52,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D6-1F3FE-200D-2640-FE0F","non_qualified":"1F9D6-1F3FE-200D-2640","image":"1f9d6-1f3fe-200d-2640-fe0f.png","sheet_x":50,"sheet_y":53,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D6-1F3FF-200D-2640-FE0F","non_qualified":"1F9D6-1F3FF-200D-2640","image":"1f9d6-1f3ff-200d-2640-fe0f.png","sheet_x":50,"sheet_y":54,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman in Steamy Room","b":"1F9D6-200D-2640-FE0F","c":"1F9D6-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_in_steamy_room","female","woman","spa","steamroom","sauna"],"k":[50,49],"o":5},"person_climbing":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F9D7-1F3FB","non_qualified":null,"image":"1f9d7-1f3fb.png","sheet_x":51,"sheet_y":19,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9D7-1F3FB-200D-2640-FE0F"},"1F3FC":{"unified":"1F9D7-1F3FC","non_qualified":null,"image":"1f9d7-1f3fc.png","sheet_x":51,"sheet_y":20,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9D7-1F3FC-200D-2640-FE0F"},"1F3FD":{"unified":"1F9D7-1F3FD","non_qualified":null,"image":"1f9d7-1f3fd.png","sheet_x":51,"sheet_y":21,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9D7-1F3FD-200D-2640-FE0F"},"1F3FE":{"unified":"1F9D7-1F3FE","non_qualified":null,"image":"1f9d7-1f3fe.png","sheet_x":51,"sheet_y":22,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9D7-1F3FE-200D-2640-FE0F"},"1F3FF":{"unified":"1F9D7-1F3FF","non_qualified":null,"image":"1f9d7-1f3ff.png","sheet_x":51,"sheet_y":23,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9D7-1F3FF-200D-2640-FE0F"}},"obsoleted_by":"1F9D7-200D-2640-FE0F","a":"Person Climbing","b":"1F9D7","d":true,"e":true,"f":true,"h":true,"j":["person_climbing","sport"],"k":[51,18],"o":5},"man_climbing":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F9D7-1F3FB-200D-2642-FE0F","non_qualified":"1F9D7-1F3FB-200D-2642","image":"1f9d7-1f3fb-200d-2642-fe0f.png","sheet_x":51,"sheet_y":13,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D7-1F3FC-200D-2642-FE0F","non_qualified":"1F9D7-1F3FC-200D-2642","image":"1f9d7-1f3fc-200d-2642-fe0f.png","sheet_x":51,"sheet_y":14,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D7-1F3FD-200D-2642-FE0F","non_qualified":"1F9D7-1F3FD-200D-2642","image":"1f9d7-1f3fd-200d-2642-fe0f.png","sheet_x":51,"sheet_y":15,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D7-1F3FE-200D-2642-FE0F","non_qualified":"1F9D7-1F3FE-200D-2642","image":"1f9d7-1f3fe-200d-2642-fe0f.png","sheet_x":51,"sheet_y":16,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D7-1F3FF-200D-2642-FE0F","non_qualified":"1F9D7-1F3FF-200D-2642","image":"1f9d7-1f3ff-200d-2642-fe0f.png","sheet_x":51,"sheet_y":17,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Climbing","b":"1F9D7-200D-2642-FE0F","c":"1F9D7-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_climbing","sports","hobby","man","male","rock"],"k":[51,12],"o":5},"woman_climbing":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F9D7-1F3FB-200D-2640-FE0F","non_qualified":"1F9D7-1F3FB-200D-2640","image":"1f9d7-1f3fb-200d-2640-fe0f.png","sheet_x":51,"sheet_y":7,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9D7-1F3FB"},"1F3FC":{"unified":"1F9D7-1F3FC-200D-2640-FE0F","non_qualified":"1F9D7-1F3FC-200D-2640","image":"1f9d7-1f3fc-200d-2640-fe0f.png","sheet_x":51,"sheet_y":8,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9D7-1F3FC"},"1F3FD":{"unified":"1F9D7-1F3FD-200D-2640-FE0F","non_qualified":"1F9D7-1F3FD-200D-2640","image":"1f9d7-1f3fd-200d-2640-fe0f.png","sheet_x":51,"sheet_y":9,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9D7-1F3FD"},"1F3FE":{"unified":"1F9D7-1F3FE-200D-2640-FE0F","non_qualified":"1F9D7-1F3FE-200D-2640","image":"1f9d7-1f3fe-200d-2640-fe0f.png","sheet_x":51,"sheet_y":10,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9D7-1F3FE"},"1F3FF":{"unified":"1F9D7-1F3FF-200D-2640-FE0F","non_qualified":"1F9D7-1F3FF-200D-2640","image":"1f9d7-1f3ff-200d-2640-fe0f.png","sheet_x":51,"sheet_y":11,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9D7-1F3FF"}},"obsoletes":"1F9D7","a":"Woman Climbing","b":"1F9D7-200D-2640-FE0F","c":"1F9D7-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_climbing","sports","hobby","woman","female","rock"],"k":[51,6],"o":5},"fencer":{"subcategory":"person-sport","a":"Fencer","b":"1F93A","d":true,"e":true,"f":true,"h":true,"j":["person_fencing","sports","fencing","sword"],"k":[42,33],"o":3},"horse_racing":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F3C7-1F3FB","non_qualified":null,"image":"1f3c7-1f3fb.png","sheet_x":8,"sheet_y":53,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F3C7-1F3FC","non_qualified":null,"image":"1f3c7-1f3fc.png","sheet_x":8,"sheet_y":54,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F3C7-1F3FD","non_qualified":null,"image":"1f3c7-1f3fd.png","sheet_x":8,"sheet_y":55,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F3C7-1F3FE","non_qualified":null,"image":"1f3c7-1f3fe.png","sheet_x":8,"sheet_y":56,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F3C7-1F3FF","non_qualified":null,"image":"1f3c7-1f3ff.png","sheet_x":8,"sheet_y":57,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Horse Racing","b":"1F3C7","d":true,"e":true,"f":true,"h":true,"j":["horse_racing","animal","betting","competition","gambling","luck"],"k":[8,52],"o":1},"skier":{"subcategory":"person-sport","a":"Skier","b":"26F7-FE0F","c":"26F7","d":true,"e":true,"f":true,"h":true,"j":["skier","sports","winter","snow"],"k":[58,32],"o":0},"snowboarder":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F3C2-1F3FB","non_qualified":null,"image":"1f3c2-1f3fb.png","sheet_x":8,"sheet_y":9,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F3C2-1F3FC","non_qualified":null,"image":"1f3c2-1f3fc.png","sheet_x":8,"sheet_y":10,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F3C2-1F3FD","non_qualified":null,"image":"1f3c2-1f3fd.png","sheet_x":8,"sheet_y":11,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F3C2-1F3FE","non_qualified":null,"image":"1f3c2-1f3fe.png","sheet_x":8,"sheet_y":12,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F3C2-1F3FF","non_qualified":null,"image":"1f3c2-1f3ff.png","sheet_x":8,"sheet_y":13,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Snowboarder","b":"1F3C2","d":true,"e":true,"f":true,"h":true,"j":["snowboarder","sports","winter"],"k":[8,8],"o":0},"golfer":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F3CC-1F3FB","non_qualified":null,"image":"1f3cc-1f3fb.png","sheet_x":9,"sheet_y":48,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F3CC-1F3FC","non_qualified":null,"image":"1f3cc-1f3fc.png","sheet_x":9,"sheet_y":49,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F3CC-1F3FD","non_qualified":null,"image":"1f3cc-1f3fd.png","sheet_x":9,"sheet_y":50,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F3CC-1F3FE","non_qualified":null,"image":"1f3cc-1f3fe.png","sheet_x":9,"sheet_y":51,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F3CC-1F3FF","non_qualified":null,"image":"1f3cc-1f3ff.png","sheet_x":9,"sheet_y":52,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoleted_by":"1F3CC-FE0F-200D-2642-FE0F","a":"Person Golfing","b":"1F3CC-FE0F","c":"1F3CC","d":true,"e":true,"f":true,"h":true,"j":["person_golfing","sports","business"],"k":[9,47],"o":0},"man-golfing":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F3CC-1F3FB-200D-2642-FE0F","non_qualified":"1F3CC-1F3FB-200D-2642","image":"1f3cc-1f3fb-200d-2642-fe0f.png","sheet_x":9,"sheet_y":42,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F3CC-1F3FC-200D-2642-FE0F","non_qualified":"1F3CC-1F3FC-200D-2642","image":"1f3cc-1f3fc-200d-2642-fe0f.png","sheet_x":9,"sheet_y":43,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F3CC-1F3FD-200D-2642-FE0F","non_qualified":"1F3CC-1F3FD-200D-2642","image":"1f3cc-1f3fd-200d-2642-fe0f.png","sheet_x":9,"sheet_y":44,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F3CC-1F3FE-200D-2642-FE0F","non_qualified":"1F3CC-1F3FE-200D-2642","image":"1f3cc-1f3fe-200d-2642-fe0f.png","sheet_x":9,"sheet_y":45,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F3CC-1F3FF-200D-2642-FE0F","non_qualified":"1F3CC-1F3FF-200D-2642","image":"1f3cc-1f3ff-200d-2642-fe0f.png","sheet_x":9,"sheet_y":46,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoletes":"1F3CC-FE0F","a":"Man Golfing","b":"1F3CC-FE0F-200D-2642-FE0F","d":true,"e":true,"f":true,"h":false,"j":["man_golfing","sport"],"k":[9,41],"o":4},"woman-golfing":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F3CC-1F3FB-200D-2640-FE0F","non_qualified":"1F3CC-1F3FB-200D-2640","image":"1f3cc-1f3fb-200d-2640-fe0f.png","sheet_x":9,"sheet_y":36,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F3CC-1F3FC-200D-2640-FE0F","non_qualified":"1F3CC-1F3FC-200D-2640","image":"1f3cc-1f3fc-200d-2640-fe0f.png","sheet_x":9,"sheet_y":37,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F3CC-1F3FD-200D-2640-FE0F","non_qualified":"1F3CC-1F3FD-200D-2640","image":"1f3cc-1f3fd-200d-2640-fe0f.png","sheet_x":9,"sheet_y":38,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F3CC-1F3FE-200D-2640-FE0F","non_qualified":"1F3CC-1F3FE-200D-2640","image":"1f3cc-1f3fe-200d-2640-fe0f.png","sheet_x":9,"sheet_y":39,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F3CC-1F3FF-200D-2640-FE0F","non_qualified":"1F3CC-1F3FF-200D-2640","image":"1f3cc-1f3ff-200d-2640-fe0f.png","sheet_x":9,"sheet_y":40,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Golfing","b":"1F3CC-FE0F-200D-2640-FE0F","d":true,"e":true,"f":true,"h":false,"j":["woman_golfing","sports","business","woman","female"],"k":[9,35],"o":4},"surfer":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F3C4-1F3FB","non_qualified":null,"image":"1f3c4-1f3fb.png","sheet_x":8,"sheet_y":45,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F3C4-1F3FC","non_qualified":null,"image":"1f3c4-1f3fc.png","sheet_x":8,"sheet_y":46,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F3C4-1F3FD","non_qualified":null,"image":"1f3c4-1f3fd.png","sheet_x":8,"sheet_y":47,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F3C4-1F3FE","non_qualified":null,"image":"1f3c4-1f3fe.png","sheet_x":8,"sheet_y":48,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F3C4-1F3FF","non_qualified":null,"image":"1f3c4-1f3ff.png","sheet_x":8,"sheet_y":49,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoleted_by":"1F3C4-200D-2642-FE0F","a":"Surfer","b":"1F3C4","d":true,"e":true,"f":true,"h":true,"j":["person_surfing","sport","sea"],"k":[8,44],"o":0},"man-surfing":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F3C4-1F3FB-200D-2642-FE0F","non_qualified":"1F3C4-1F3FB-200D-2642","image":"1f3c4-1f3fb-200d-2642-fe0f.png","sheet_x":8,"sheet_y":39,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F3C4-1F3FC-200D-2642-FE0F","non_qualified":"1F3C4-1F3FC-200D-2642","image":"1f3c4-1f3fc-200d-2642-fe0f.png","sheet_x":8,"sheet_y":40,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F3C4-1F3FD-200D-2642-FE0F","non_qualified":"1F3C4-1F3FD-200D-2642","image":"1f3c4-1f3fd-200d-2642-fe0f.png","sheet_x":8,"sheet_y":41,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F3C4-1F3FE-200D-2642-FE0F","non_qualified":"1F3C4-1F3FE-200D-2642","image":"1f3c4-1f3fe-200d-2642-fe0f.png","sheet_x":8,"sheet_y":42,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F3C4-1F3FF-200D-2642-FE0F","non_qualified":"1F3C4-1F3FF-200D-2642","image":"1f3c4-1f3ff-200d-2642-fe0f.png","sheet_x":8,"sheet_y":43,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoletes":"1F3C4","a":"Man Surfing","b":"1F3C4-200D-2642-FE0F","c":"1F3C4-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_surfing","sports","ocean","sea","summer","beach"],"k":[8,38],"o":4},"woman-surfing":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F3C4-1F3FB-200D-2640-FE0F","non_qualified":"1F3C4-1F3FB-200D-2640","image":"1f3c4-1f3fb-200d-2640-fe0f.png","sheet_x":8,"sheet_y":33,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F3C4-1F3FC-200D-2640-FE0F","non_qualified":"1F3C4-1F3FC-200D-2640","image":"1f3c4-1f3fc-200d-2640-fe0f.png","sheet_x":8,"sheet_y":34,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F3C4-1F3FD-200D-2640-FE0F","non_qualified":"1F3C4-1F3FD-200D-2640","image":"1f3c4-1f3fd-200d-2640-fe0f.png","sheet_x":8,"sheet_y":35,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F3C4-1F3FE-200D-2640-FE0F","non_qualified":"1F3C4-1F3FE-200D-2640","image":"1f3c4-1f3fe-200d-2640-fe0f.png","sheet_x":8,"sheet_y":36,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F3C4-1F3FF-200D-2640-FE0F","non_qualified":"1F3C4-1F3FF-200D-2640","image":"1f3c4-1f3ff-200d-2640-fe0f.png","sheet_x":8,"sheet_y":37,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Surfing","b":"1F3C4-200D-2640-FE0F","c":"1F3C4-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_surfing","sports","ocean","sea","summer","beach","woman","female"],"k":[8,32],"o":4},"rowboat":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F6A3-1F3FB","non_qualified":null,"image":"1f6a3-1f3fb.png","sheet_x":36,"sheet_y":20,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F6A3-1F3FC","non_qualified":null,"image":"1f6a3-1f3fc.png","sheet_x":36,"sheet_y":21,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F6A3-1F3FD","non_qualified":null,"image":"1f6a3-1f3fd.png","sheet_x":36,"sheet_y":22,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F6A3-1F3FE","non_qualified":null,"image":"1f6a3-1f3fe.png","sheet_x":36,"sheet_y":23,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F6A3-1F3FF","non_qualified":null,"image":"1f6a3-1f3ff.png","sheet_x":36,"sheet_y":24,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoleted_by":"1F6A3-200D-2642-FE0F","a":"Rowboat","b":"1F6A3","d":true,"e":true,"f":true,"h":true,"j":["person_rowing_boat","sport","move"],"k":[36,19],"o":1},"man-rowing-boat":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F6A3-1F3FB-200D-2642-FE0F","non_qualified":"1F6A3-1F3FB-200D-2642","image":"1f6a3-1f3fb-200d-2642-fe0f.png","sheet_x":36,"sheet_y":14,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F6A3-1F3FC-200D-2642-FE0F","non_qualified":"1F6A3-1F3FC-200D-2642","image":"1f6a3-1f3fc-200d-2642-fe0f.png","sheet_x":36,"sheet_y":15,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F6A3-1F3FD-200D-2642-FE0F","non_qualified":"1F6A3-1F3FD-200D-2642","image":"1f6a3-1f3fd-200d-2642-fe0f.png","sheet_x":36,"sheet_y":16,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F6A3-1F3FE-200D-2642-FE0F","non_qualified":"1F6A3-1F3FE-200D-2642","image":"1f6a3-1f3fe-200d-2642-fe0f.png","sheet_x":36,"sheet_y":17,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F6A3-1F3FF-200D-2642-FE0F","non_qualified":"1F6A3-1F3FF-200D-2642","image":"1f6a3-1f3ff-200d-2642-fe0f.png","sheet_x":36,"sheet_y":18,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoletes":"1F6A3","a":"Man Rowing Boat","b":"1F6A3-200D-2642-FE0F","c":"1F6A3-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_rowing_boat","sports","hobby","water","ship"],"k":[36,13],"o":4},"woman-rowing-boat":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F6A3-1F3FB-200D-2640-FE0F","non_qualified":"1F6A3-1F3FB-200D-2640","image":"1f6a3-1f3fb-200d-2640-fe0f.png","sheet_x":36,"sheet_y":8,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F6A3-1F3FC-200D-2640-FE0F","non_qualified":"1F6A3-1F3FC-200D-2640","image":"1f6a3-1f3fc-200d-2640-fe0f.png","sheet_x":36,"sheet_y":9,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F6A3-1F3FD-200D-2640-FE0F","non_qualified":"1F6A3-1F3FD-200D-2640","image":"1f6a3-1f3fd-200d-2640-fe0f.png","sheet_x":36,"sheet_y":10,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F6A3-1F3FE-200D-2640-FE0F","non_qualified":"1F6A3-1F3FE-200D-2640","image":"1f6a3-1f3fe-200d-2640-fe0f.png","sheet_x":36,"sheet_y":11,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F6A3-1F3FF-200D-2640-FE0F","non_qualified":"1F6A3-1F3FF-200D-2640","image":"1f6a3-1f3ff-200d-2640-fe0f.png","sheet_x":36,"sheet_y":12,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Rowing Boat","b":"1F6A3-200D-2640-FE0F","c":"1F6A3-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_rowing_boat","sports","hobby","water","ship","woman","female"],"k":[36,7],"o":4},"swimmer":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F3CA-1F3FB","non_qualified":null,"image":"1f3ca-1f3fb.png","sheet_x":9,"sheet_y":12,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F3CA-1F3FC","non_qualified":null,"image":"1f3ca-1f3fc.png","sheet_x":9,"sheet_y":13,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F3CA-1F3FD","non_qualified":null,"image":"1f3ca-1f3fd.png","sheet_x":9,"sheet_y":14,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F3CA-1F3FE","non_qualified":null,"image":"1f3ca-1f3fe.png","sheet_x":9,"sheet_y":15,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F3CA-1F3FF","non_qualified":null,"image":"1f3ca-1f3ff.png","sheet_x":9,"sheet_y":16,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoleted_by":"1F3CA-200D-2642-FE0F","a":"Swimmer","b":"1F3CA","d":true,"e":true,"f":true,"h":true,"j":["person_swimming","sport","pool"],"k":[9,11],"o":0},"man-swimming":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F3CA-1F3FB-200D-2642-FE0F","non_qualified":"1F3CA-1F3FB-200D-2642","image":"1f3ca-1f3fb-200d-2642-fe0f.png","sheet_x":9,"sheet_y":6,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F3CA-1F3FC-200D-2642-FE0F","non_qualified":"1F3CA-1F3FC-200D-2642","image":"1f3ca-1f3fc-200d-2642-fe0f.png","sheet_x":9,"sheet_y":7,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F3CA-1F3FD-200D-2642-FE0F","non_qualified":"1F3CA-1F3FD-200D-2642","image":"1f3ca-1f3fd-200d-2642-fe0f.png","sheet_x":9,"sheet_y":8,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F3CA-1F3FE-200D-2642-FE0F","non_qualified":"1F3CA-1F3FE-200D-2642","image":"1f3ca-1f3fe-200d-2642-fe0f.png","sheet_x":9,"sheet_y":9,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F3CA-1F3FF-200D-2642-FE0F","non_qualified":"1F3CA-1F3FF-200D-2642","image":"1f3ca-1f3ff-200d-2642-fe0f.png","sheet_x":9,"sheet_y":10,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoletes":"1F3CA","a":"Man Swimming","b":"1F3CA-200D-2642-FE0F","c":"1F3CA-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_swimming","sports","exercise","human","athlete","water","summer"],"k":[9,5],"o":4},"woman-swimming":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F3CA-1F3FB-200D-2640-FE0F","non_qualified":"1F3CA-1F3FB-200D-2640","image":"1f3ca-1f3fb-200d-2640-fe0f.png","sheet_x":9,"sheet_y":0,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F3CA-1F3FC-200D-2640-FE0F","non_qualified":"1F3CA-1F3FC-200D-2640","image":"1f3ca-1f3fc-200d-2640-fe0f.png","sheet_x":9,"sheet_y":1,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F3CA-1F3FD-200D-2640-FE0F","non_qualified":"1F3CA-1F3FD-200D-2640","image":"1f3ca-1f3fd-200d-2640-fe0f.png","sheet_x":9,"sheet_y":2,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F3CA-1F3FE-200D-2640-FE0F","non_qualified":"1F3CA-1F3FE-200D-2640","image":"1f3ca-1f3fe-200d-2640-fe0f.png","sheet_x":9,"sheet_y":3,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F3CA-1F3FF-200D-2640-FE0F","non_qualified":"1F3CA-1F3FF-200D-2640","image":"1f3ca-1f3ff-200d-2640-fe0f.png","sheet_x":9,"sheet_y":4,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Swimming","b":"1F3CA-200D-2640-FE0F","c":"1F3CA-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_swimming","sports","exercise","human","athlete","water","summer","woman","female"],"k":[8,60],"o":4},"person_with_ball":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"26F9-1F3FB","non_qualified":null,"image":"26f9-1f3fb.png","sheet_x":58,"sheet_y":47,"added_in":"2.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"26F9-1F3FC","non_qualified":null,"image":"26f9-1f3fc.png","sheet_x":58,"sheet_y":48,"added_in":"2.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"26F9-1F3FD","non_qualified":null,"image":"26f9-1f3fd.png","sheet_x":58,"sheet_y":49,"added_in":"2.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"26F9-1F3FE","non_qualified":null,"image":"26f9-1f3fe.png","sheet_x":58,"sheet_y":50,"added_in":"2.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"26F9-1F3FF","non_qualified":null,"image":"26f9-1f3ff.png","sheet_x":58,"sheet_y":51,"added_in":"2.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoleted_by":"26F9-FE0F-200D-2642-FE0F","a":"Person Bouncing Ball","b":"26F9-FE0F","c":"26F9","d":true,"e":true,"f":true,"h":true,"j":["person_bouncing_ball","sports","human"],"k":[58,46],"o":0},"man-bouncing-ball":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"26F9-1F3FB-200D-2642-FE0F","non_qualified":"26F9-1F3FB-200D-2642","image":"26f9-1f3fb-200d-2642-fe0f.png","sheet_x":58,"sheet_y":41,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"26F9-1F3FC-200D-2642-FE0F","non_qualified":"26F9-1F3FC-200D-2642","image":"26f9-1f3fc-200d-2642-fe0f.png","sheet_x":58,"sheet_y":42,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"26F9-1F3FD-200D-2642-FE0F","non_qualified":"26F9-1F3FD-200D-2642","image":"26f9-1f3fd-200d-2642-fe0f.png","sheet_x":58,"sheet_y":43,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"26F9-1F3FE-200D-2642-FE0F","non_qualified":"26F9-1F3FE-200D-2642","image":"26f9-1f3fe-200d-2642-fe0f.png","sheet_x":58,"sheet_y":44,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"26F9-1F3FF-200D-2642-FE0F","non_qualified":"26F9-1F3FF-200D-2642","image":"26f9-1f3ff-200d-2642-fe0f.png","sheet_x":58,"sheet_y":45,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoletes":"26F9-FE0F","a":"Man Bouncing Ball","b":"26F9-FE0F-200D-2642-FE0F","d":true,"e":true,"f":true,"h":false,"j":["man_bouncing_ball","sport"],"k":[58,40],"o":4},"woman-bouncing-ball":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"26F9-1F3FB-200D-2640-FE0F","non_qualified":"26F9-1F3FB-200D-2640","image":"26f9-1f3fb-200d-2640-fe0f.png","sheet_x":58,"sheet_y":35,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"26F9-1F3FC-200D-2640-FE0F","non_qualified":"26F9-1F3FC-200D-2640","image":"26f9-1f3fc-200d-2640-fe0f.png","sheet_x":58,"sheet_y":36,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"26F9-1F3FD-200D-2640-FE0F","non_qualified":"26F9-1F3FD-200D-2640","image":"26f9-1f3fd-200d-2640-fe0f.png","sheet_x":58,"sheet_y":37,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"26F9-1F3FE-200D-2640-FE0F","non_qualified":"26F9-1F3FE-200D-2640","image":"26f9-1f3fe-200d-2640-fe0f.png","sheet_x":58,"sheet_y":38,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"26F9-1F3FF-200D-2640-FE0F","non_qualified":"26F9-1F3FF-200D-2640","image":"26f9-1f3ff-200d-2640-fe0f.png","sheet_x":58,"sheet_y":39,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Bouncing Ball","b":"26F9-FE0F-200D-2640-FE0F","d":true,"e":true,"f":true,"h":false,"j":["woman_bouncing_ball","sports","human","woman","female"],"k":[58,34],"o":4},"weight_lifter":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F3CB-1F3FB","non_qualified":null,"image":"1f3cb-1f3fb.png","sheet_x":9,"sheet_y":30,"added_in":"2.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F3CB-1F3FC","non_qualified":null,"image":"1f3cb-1f3fc.png","sheet_x":9,"sheet_y":31,"added_in":"2.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F3CB-1F3FD","non_qualified":null,"image":"1f3cb-1f3fd.png","sheet_x":9,"sheet_y":32,"added_in":"2.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F3CB-1F3FE","non_qualified":null,"image":"1f3cb-1f3fe.png","sheet_x":9,"sheet_y":33,"added_in":"2.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F3CB-1F3FF","non_qualified":null,"image":"1f3cb-1f3ff.png","sheet_x":9,"sheet_y":34,"added_in":"2.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoleted_by":"1F3CB-FE0F-200D-2642-FE0F","a":"Person Lifting Weights","b":"1F3CB-FE0F","c":"1F3CB","d":true,"e":true,"f":true,"h":true,"j":["person_lifting_weights","sports","training","exercise"],"k":[9,29],"o":0},"man-lifting-weights":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F3CB-1F3FB-200D-2642-FE0F","non_qualified":"1F3CB-1F3FB-200D-2642","image":"1f3cb-1f3fb-200d-2642-fe0f.png","sheet_x":9,"sheet_y":24,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F3CB-1F3FC-200D-2642-FE0F","non_qualified":"1F3CB-1F3FC-200D-2642","image":"1f3cb-1f3fc-200d-2642-fe0f.png","sheet_x":9,"sheet_y":25,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F3CB-1F3FD-200D-2642-FE0F","non_qualified":"1F3CB-1F3FD-200D-2642","image":"1f3cb-1f3fd-200d-2642-fe0f.png","sheet_x":9,"sheet_y":26,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F3CB-1F3FE-200D-2642-FE0F","non_qualified":"1F3CB-1F3FE-200D-2642","image":"1f3cb-1f3fe-200d-2642-fe0f.png","sheet_x":9,"sheet_y":27,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F3CB-1F3FF-200D-2642-FE0F","non_qualified":"1F3CB-1F3FF-200D-2642","image":"1f3cb-1f3ff-200d-2642-fe0f.png","sheet_x":9,"sheet_y":28,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoletes":"1F3CB-FE0F","a":"Man Lifting Weights","b":"1F3CB-FE0F-200D-2642-FE0F","d":true,"e":true,"f":true,"h":false,"j":["man_lifting_weights","sport"],"k":[9,23],"o":4},"woman-lifting-weights":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F3CB-1F3FB-200D-2640-FE0F","non_qualified":"1F3CB-1F3FB-200D-2640","image":"1f3cb-1f3fb-200d-2640-fe0f.png","sheet_x":9,"sheet_y":18,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F3CB-1F3FC-200D-2640-FE0F","non_qualified":"1F3CB-1F3FC-200D-2640","image":"1f3cb-1f3fc-200d-2640-fe0f.png","sheet_x":9,"sheet_y":19,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F3CB-1F3FD-200D-2640-FE0F","non_qualified":"1F3CB-1F3FD-200D-2640","image":"1f3cb-1f3fd-200d-2640-fe0f.png","sheet_x":9,"sheet_y":20,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F3CB-1F3FE-200D-2640-FE0F","non_qualified":"1F3CB-1F3FE-200D-2640","image":"1f3cb-1f3fe-200d-2640-fe0f.png","sheet_x":9,"sheet_y":21,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F3CB-1F3FF-200D-2640-FE0F","non_qualified":"1F3CB-1F3FF-200D-2640","image":"1f3cb-1f3ff-200d-2640-fe0f.png","sheet_x":9,"sheet_y":22,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Lifting Weights","b":"1F3CB-FE0F-200D-2640-FE0F","d":true,"e":true,"f":true,"h":false,"j":["woman_lifting_weights","sports","training","exercise","woman","female"],"k":[9,17],"o":4},"bicyclist":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F6B4-1F3FB","non_qualified":null,"image":"1f6b4-1f3fb.png","sheet_x":36,"sheet_y":54,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F6B4-1F3FC","non_qualified":null,"image":"1f6b4-1f3fc.png","sheet_x":36,"sheet_y":55,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F6B4-1F3FD","non_qualified":null,"image":"1f6b4-1f3fd.png","sheet_x":36,"sheet_y":56,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F6B4-1F3FE","non_qualified":null,"image":"1f6b4-1f3fe.png","sheet_x":36,"sheet_y":57,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F6B4-1F3FF","non_qualified":null,"image":"1f6b4-1f3ff.png","sheet_x":36,"sheet_y":58,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoleted_by":"1F6B4-200D-2642-FE0F","a":"Bicyclist","b":"1F6B4","d":true,"e":true,"f":true,"h":true,"j":["person_biking","bicycle","bike","cyclist","sport","move"],"k":[36,53],"o":1},"man-biking":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F6B4-1F3FB-200D-2642-FE0F","non_qualified":"1F6B4-1F3FB-200D-2642","image":"1f6b4-1f3fb-200d-2642-fe0f.png","sheet_x":36,"sheet_y":48,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F6B4-1F3FC-200D-2642-FE0F","non_qualified":"1F6B4-1F3FC-200D-2642","image":"1f6b4-1f3fc-200d-2642-fe0f.png","sheet_x":36,"sheet_y":49,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F6B4-1F3FD-200D-2642-FE0F","non_qualified":"1F6B4-1F3FD-200D-2642","image":"1f6b4-1f3fd-200d-2642-fe0f.png","sheet_x":36,"sheet_y":50,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F6B4-1F3FE-200D-2642-FE0F","non_qualified":"1F6B4-1F3FE-200D-2642","image":"1f6b4-1f3fe-200d-2642-fe0f.png","sheet_x":36,"sheet_y":51,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F6B4-1F3FF-200D-2642-FE0F","non_qualified":"1F6B4-1F3FF-200D-2642","image":"1f6b4-1f3ff-200d-2642-fe0f.png","sheet_x":36,"sheet_y":52,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoletes":"1F6B4","a":"Man Biking","b":"1F6B4-200D-2642-FE0F","c":"1F6B4-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_biking","bicycle","bike","cyclist","sports","exercise","hipster"],"k":[36,47],"o":4},"woman-biking":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F6B4-1F3FB-200D-2640-FE0F","non_qualified":"1F6B4-1F3FB-200D-2640","image":"1f6b4-1f3fb-200d-2640-fe0f.png","sheet_x":36,"sheet_y":42,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F6B4-1F3FC-200D-2640-FE0F","non_qualified":"1F6B4-1F3FC-200D-2640","image":"1f6b4-1f3fc-200d-2640-fe0f.png","sheet_x":36,"sheet_y":43,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F6B4-1F3FD-200D-2640-FE0F","non_qualified":"1F6B4-1F3FD-200D-2640","image":"1f6b4-1f3fd-200d-2640-fe0f.png","sheet_x":36,"sheet_y":44,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F6B4-1F3FE-200D-2640-FE0F","non_qualified":"1F6B4-1F3FE-200D-2640","image":"1f6b4-1f3fe-200d-2640-fe0f.png","sheet_x":36,"sheet_y":45,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F6B4-1F3FF-200D-2640-FE0F","non_qualified":"1F6B4-1F3FF-200D-2640","image":"1f6b4-1f3ff-200d-2640-fe0f.png","sheet_x":36,"sheet_y":46,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Biking","b":"1F6B4-200D-2640-FE0F","c":"1F6B4-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_biking","bicycle","bike","cyclist","sports","exercise","hipster","woman","female"],"k":[36,41],"o":4},"mountain_bicyclist":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F6B5-1F3FB","non_qualified":null,"image":"1f6b5-1f3fb.png","sheet_x":37,"sheet_y":11,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F6B5-1F3FC","non_qualified":null,"image":"1f6b5-1f3fc.png","sheet_x":37,"sheet_y":12,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F6B5-1F3FD","non_qualified":null,"image":"1f6b5-1f3fd.png","sheet_x":37,"sheet_y":13,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F6B5-1F3FE","non_qualified":null,"image":"1f6b5-1f3fe.png","sheet_x":37,"sheet_y":14,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F6B5-1F3FF","non_qualified":null,"image":"1f6b5-1f3ff.png","sheet_x":37,"sheet_y":15,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoleted_by":"1F6B5-200D-2642-FE0F","a":"Mountain Bicyclist","b":"1F6B5","d":true,"e":true,"f":true,"h":true,"j":["person_mountain_biking","bicycle","bike","cyclist","sport","move"],"k":[37,10],"o":1},"man-mountain-biking":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F6B5-1F3FB-200D-2642-FE0F","non_qualified":"1F6B5-1F3FB-200D-2642","image":"1f6b5-1f3fb-200d-2642-fe0f.png","sheet_x":37,"sheet_y":5,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F6B5-1F3FC-200D-2642-FE0F","non_qualified":"1F6B5-1F3FC-200D-2642","image":"1f6b5-1f3fc-200d-2642-fe0f.png","sheet_x":37,"sheet_y":6,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F6B5-1F3FD-200D-2642-FE0F","non_qualified":"1F6B5-1F3FD-200D-2642","image":"1f6b5-1f3fd-200d-2642-fe0f.png","sheet_x":37,"sheet_y":7,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F6B5-1F3FE-200D-2642-FE0F","non_qualified":"1F6B5-1F3FE-200D-2642","image":"1f6b5-1f3fe-200d-2642-fe0f.png","sheet_x":37,"sheet_y":8,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F6B5-1F3FF-200D-2642-FE0F","non_qualified":"1F6B5-1F3FF-200D-2642","image":"1f6b5-1f3ff-200d-2642-fe0f.png","sheet_x":37,"sheet_y":9,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoletes":"1F6B5","a":"Man Mountain Biking","b":"1F6B5-200D-2642-FE0F","c":"1F6B5-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_mountain_biking","bicycle","bike","cyclist","transportation","sports","human","race"],"k":[37,4],"o":4},"woman-mountain-biking":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F6B5-1F3FB-200D-2640-FE0F","non_qualified":"1F6B5-1F3FB-200D-2640","image":"1f6b5-1f3fb-200d-2640-fe0f.png","sheet_x":36,"sheet_y":60,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F6B5-1F3FC-200D-2640-FE0F","non_qualified":"1F6B5-1F3FC-200D-2640","image":"1f6b5-1f3fc-200d-2640-fe0f.png","sheet_x":37,"sheet_y":0,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F6B5-1F3FD-200D-2640-FE0F","non_qualified":"1F6B5-1F3FD-200D-2640","image":"1f6b5-1f3fd-200d-2640-fe0f.png","sheet_x":37,"sheet_y":1,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F6B5-1F3FE-200D-2640-FE0F","non_qualified":"1F6B5-1F3FE-200D-2640","image":"1f6b5-1f3fe-200d-2640-fe0f.png","sheet_x":37,"sheet_y":2,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F6B5-1F3FF-200D-2640-FE0F","non_qualified":"1F6B5-1F3FF-200D-2640","image":"1f6b5-1f3ff-200d-2640-fe0f.png","sheet_x":37,"sheet_y":3,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Mountain Biking","b":"1F6B5-200D-2640-FE0F","c":"1F6B5-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_mountain_biking","bicycle","bike","cyclist","transportation","sports","human","race","woman","female"],"k":[36,59],"o":4},"person_doing_cartwheel":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F938-1F3FB","non_qualified":null,"image":"1f938-1f3fb.png","sheet_x":42,"sheet_y":10,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F938-1F3FC","non_qualified":null,"image":"1f938-1f3fc.png","sheet_x":42,"sheet_y":11,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F938-1F3FD","non_qualified":null,"image":"1f938-1f3fd.png","sheet_x":42,"sheet_y":12,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F938-1F3FE","non_qualified":null,"image":"1f938-1f3fe.png","sheet_x":42,"sheet_y":13,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F938-1F3FF","non_qualified":null,"image":"1f938-1f3ff.png","sheet_x":42,"sheet_y":14,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Person Doing Cartwheel","b":"1F938","d":true,"e":true,"f":true,"h":true,"j":["person_cartwheeling","sport","gymnastic"],"k":[42,9],"o":3},"man-cartwheeling":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F938-1F3FB-200D-2642-FE0F","non_qualified":"1F938-1F3FB-200D-2642","image":"1f938-1f3fb-200d-2642-fe0f.png","sheet_x":42,"sheet_y":4,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F938-1F3FC-200D-2642-FE0F","non_qualified":"1F938-1F3FC-200D-2642","image":"1f938-1f3fc-200d-2642-fe0f.png","sheet_x":42,"sheet_y":5,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F938-1F3FD-200D-2642-FE0F","non_qualified":"1F938-1F3FD-200D-2642","image":"1f938-1f3fd-200d-2642-fe0f.png","sheet_x":42,"sheet_y":6,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F938-1F3FE-200D-2642-FE0F","non_qualified":"1F938-1F3FE-200D-2642","image":"1f938-1f3fe-200d-2642-fe0f.png","sheet_x":42,"sheet_y":7,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F938-1F3FF-200D-2642-FE0F","non_qualified":"1F938-1F3FF-200D-2642","image":"1f938-1f3ff-200d-2642-fe0f.png","sheet_x":42,"sheet_y":8,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Cartwheeling","b":"1F938-200D-2642-FE0F","c":"1F938-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_cartwheeling","gymnastics"],"k":[42,3],"o":4},"woman-cartwheeling":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F938-1F3FB-200D-2640-FE0F","non_qualified":"1F938-1F3FB-200D-2640","image":"1f938-1f3fb-200d-2640-fe0f.png","sheet_x":41,"sheet_y":59,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F938-1F3FC-200D-2640-FE0F","non_qualified":"1F938-1F3FC-200D-2640","image":"1f938-1f3fc-200d-2640-fe0f.png","sheet_x":41,"sheet_y":60,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F938-1F3FD-200D-2640-FE0F","non_qualified":"1F938-1F3FD-200D-2640","image":"1f938-1f3fd-200d-2640-fe0f.png","sheet_x":42,"sheet_y":0,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F938-1F3FE-200D-2640-FE0F","non_qualified":"1F938-1F3FE-200D-2640","image":"1f938-1f3fe-200d-2640-fe0f.png","sheet_x":42,"sheet_y":1,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F938-1F3FF-200D-2640-FE0F","non_qualified":"1F938-1F3FF-200D-2640","image":"1f938-1f3ff-200d-2640-fe0f.png","sheet_x":42,"sheet_y":2,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Cartwheeling","b":"1F938-200D-2640-FE0F","c":"1F938-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_cartwheeling","gymnastics"],"k":[41,58],"o":4},"wrestlers":{"subcategory":"person-sport","a":"Wrestlers","b":"1F93C","d":true,"e":true,"f":true,"h":true,"j":["people_wrestling","sport"],"k":[42,36],"o":3},"man-wrestling":{"subcategory":"person-sport","a":"Men Wrestling","b":"1F93C-200D-2642-FE0F","c":"1F93C-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["men_wrestling","sports","wrestlers"],"k":[42,35],"o":4},"woman-wrestling":{"subcategory":"person-sport","a":"Women Wrestling","b":"1F93C-200D-2640-FE0F","c":"1F93C-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["women_wrestling","sports","wrestlers"],"k":[42,34],"o":4},"water_polo":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F93D-1F3FB","non_qualified":null,"image":"1f93d-1f3fb.png","sheet_x":42,"sheet_y":50,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F93D-1F3FC","non_qualified":null,"image":"1f93d-1f3fc.png","sheet_x":42,"sheet_y":51,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F93D-1F3FD","non_qualified":null,"image":"1f93d-1f3fd.png","sheet_x":42,"sheet_y":52,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F93D-1F3FE","non_qualified":null,"image":"1f93d-1f3fe.png","sheet_x":42,"sheet_y":53,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F93D-1F3FF","non_qualified":null,"image":"1f93d-1f3ff.png","sheet_x":42,"sheet_y":54,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Water Polo","b":"1F93D","d":true,"e":true,"f":true,"h":true,"j":["person_playing_water_polo","sport"],"k":[42,49],"o":3},"man-playing-water-polo":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F93D-1F3FB-200D-2642-FE0F","non_qualified":"1F93D-1F3FB-200D-2642","image":"1f93d-1f3fb-200d-2642-fe0f.png","sheet_x":42,"sheet_y":44,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F93D-1F3FC-200D-2642-FE0F","non_qualified":"1F93D-1F3FC-200D-2642","image":"1f93d-1f3fc-200d-2642-fe0f.png","sheet_x":42,"sheet_y":45,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F93D-1F3FD-200D-2642-FE0F","non_qualified":"1F93D-1F3FD-200D-2642","image":"1f93d-1f3fd-200d-2642-fe0f.png","sheet_x":42,"sheet_y":46,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F93D-1F3FE-200D-2642-FE0F","non_qualified":"1F93D-1F3FE-200D-2642","image":"1f93d-1f3fe-200d-2642-fe0f.png","sheet_x":42,"sheet_y":47,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F93D-1F3FF-200D-2642-FE0F","non_qualified":"1F93D-1F3FF-200D-2642","image":"1f93d-1f3ff-200d-2642-fe0f.png","sheet_x":42,"sheet_y":48,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Playing Water Polo","b":"1F93D-200D-2642-FE0F","c":"1F93D-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_playing_water_polo","sports","pool"],"k":[42,43],"o":4},"woman-playing-water-polo":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F93D-1F3FB-200D-2640-FE0F","non_qualified":"1F93D-1F3FB-200D-2640","image":"1f93d-1f3fb-200d-2640-fe0f.png","sheet_x":42,"sheet_y":38,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F93D-1F3FC-200D-2640-FE0F","non_qualified":"1F93D-1F3FC-200D-2640","image":"1f93d-1f3fc-200d-2640-fe0f.png","sheet_x":42,"sheet_y":39,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F93D-1F3FD-200D-2640-FE0F","non_qualified":"1F93D-1F3FD-200D-2640","image":"1f93d-1f3fd-200d-2640-fe0f.png","sheet_x":42,"sheet_y":40,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F93D-1F3FE-200D-2640-FE0F","non_qualified":"1F93D-1F3FE-200D-2640","image":"1f93d-1f3fe-200d-2640-fe0f.png","sheet_x":42,"sheet_y":41,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F93D-1F3FF-200D-2640-FE0F","non_qualified":"1F93D-1F3FF-200D-2640","image":"1f93d-1f3ff-200d-2640-fe0f.png","sheet_x":42,"sheet_y":42,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Playing Water Polo","b":"1F93D-200D-2640-FE0F","c":"1F93D-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_playing_water_polo","sports","pool"],"k":[42,37],"o":4},"handball":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F93E-1F3FB","non_qualified":null,"image":"1f93e-1f3fb.png","sheet_x":43,"sheet_y":7,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F93E-1F3FC","non_qualified":null,"image":"1f93e-1f3fc.png","sheet_x":43,"sheet_y":8,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F93E-1F3FD","non_qualified":null,"image":"1f93e-1f3fd.png","sheet_x":43,"sheet_y":9,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F93E-1F3FE","non_qualified":null,"image":"1f93e-1f3fe.png","sheet_x":43,"sheet_y":10,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F93E-1F3FF","non_qualified":null,"image":"1f93e-1f3ff.png","sheet_x":43,"sheet_y":11,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Handball","b":"1F93E","d":true,"e":true,"f":true,"h":true,"j":["person_playing_handball","sport"],"k":[43,6],"o":3},"man-playing-handball":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F93E-1F3FB-200D-2642-FE0F","non_qualified":"1F93E-1F3FB-200D-2642","image":"1f93e-1f3fb-200d-2642-fe0f.png","sheet_x":43,"sheet_y":1,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F93E-1F3FC-200D-2642-FE0F","non_qualified":"1F93E-1F3FC-200D-2642","image":"1f93e-1f3fc-200d-2642-fe0f.png","sheet_x":43,"sheet_y":2,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F93E-1F3FD-200D-2642-FE0F","non_qualified":"1F93E-1F3FD-200D-2642","image":"1f93e-1f3fd-200d-2642-fe0f.png","sheet_x":43,"sheet_y":3,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F93E-1F3FE-200D-2642-FE0F","non_qualified":"1F93E-1F3FE-200D-2642","image":"1f93e-1f3fe-200d-2642-fe0f.png","sheet_x":43,"sheet_y":4,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F93E-1F3FF-200D-2642-FE0F","non_qualified":"1F93E-1F3FF-200D-2642","image":"1f93e-1f3ff-200d-2642-fe0f.png","sheet_x":43,"sheet_y":5,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Playing Handball","b":"1F93E-200D-2642-FE0F","c":"1F93E-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_playing_handball","sports"],"k":[43,0],"o":4},"woman-playing-handball":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F93E-1F3FB-200D-2640-FE0F","non_qualified":"1F93E-1F3FB-200D-2640","image":"1f93e-1f3fb-200d-2640-fe0f.png","sheet_x":42,"sheet_y":56,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F93E-1F3FC-200D-2640-FE0F","non_qualified":"1F93E-1F3FC-200D-2640","image":"1f93e-1f3fc-200d-2640-fe0f.png","sheet_x":42,"sheet_y":57,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F93E-1F3FD-200D-2640-FE0F","non_qualified":"1F93E-1F3FD-200D-2640","image":"1f93e-1f3fd-200d-2640-fe0f.png","sheet_x":42,"sheet_y":58,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F93E-1F3FE-200D-2640-FE0F","non_qualified":"1F93E-1F3FE-200D-2640","image":"1f93e-1f3fe-200d-2640-fe0f.png","sheet_x":42,"sheet_y":59,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F93E-1F3FF-200D-2640-FE0F","non_qualified":"1F93E-1F3FF-200D-2640","image":"1f93e-1f3ff-200d-2640-fe0f.png","sheet_x":42,"sheet_y":60,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Playing Handball","b":"1F93E-200D-2640-FE0F","c":"1F93E-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_playing_handball","sports"],"k":[42,55],"o":4},"juggling":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F939-1F3FB","non_qualified":null,"image":"1f939-1f3fb.png","sheet_x":42,"sheet_y":28,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F939-1F3FC","non_qualified":null,"image":"1f939-1f3fc.png","sheet_x":42,"sheet_y":29,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F939-1F3FD","non_qualified":null,"image":"1f939-1f3fd.png","sheet_x":42,"sheet_y":30,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F939-1F3FE","non_qualified":null,"image":"1f939-1f3fe.png","sheet_x":42,"sheet_y":31,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F939-1F3FF","non_qualified":null,"image":"1f939-1f3ff.png","sheet_x":42,"sheet_y":32,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Juggling","b":"1F939","d":true,"e":true,"f":true,"h":true,"j":["person_juggling","performance","balance"],"k":[42,27],"o":3},"man-juggling":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F939-1F3FB-200D-2642-FE0F","non_qualified":"1F939-1F3FB-200D-2642","image":"1f939-1f3fb-200d-2642-fe0f.png","sheet_x":42,"sheet_y":22,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F939-1F3FC-200D-2642-FE0F","non_qualified":"1F939-1F3FC-200D-2642","image":"1f939-1f3fc-200d-2642-fe0f.png","sheet_x":42,"sheet_y":23,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F939-1F3FD-200D-2642-FE0F","non_qualified":"1F939-1F3FD-200D-2642","image":"1f939-1f3fd-200d-2642-fe0f.png","sheet_x":42,"sheet_y":24,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F939-1F3FE-200D-2642-FE0F","non_qualified":"1F939-1F3FE-200D-2642","image":"1f939-1f3fe-200d-2642-fe0f.png","sheet_x":42,"sheet_y":25,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F939-1F3FF-200D-2642-FE0F","non_qualified":"1F939-1F3FF-200D-2642","image":"1f939-1f3ff-200d-2642-fe0f.png","sheet_x":42,"sheet_y":26,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Juggling","b":"1F939-200D-2642-FE0F","c":"1F939-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_juggling","juggle","balance","skill","multitask"],"k":[42,21],"o":4},"woman-juggling":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F939-1F3FB-200D-2640-FE0F","non_qualified":"1F939-1F3FB-200D-2640","image":"1f939-1f3fb-200d-2640-fe0f.png","sheet_x":42,"sheet_y":16,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F939-1F3FC-200D-2640-FE0F","non_qualified":"1F939-1F3FC-200D-2640","image":"1f939-1f3fc-200d-2640-fe0f.png","sheet_x":42,"sheet_y":17,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F939-1F3FD-200D-2640-FE0F","non_qualified":"1F939-1F3FD-200D-2640","image":"1f939-1f3fd-200d-2640-fe0f.png","sheet_x":42,"sheet_y":18,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F939-1F3FE-200D-2640-FE0F","non_qualified":"1F939-1F3FE-200D-2640","image":"1f939-1f3fe-200d-2640-fe0f.png","sheet_x":42,"sheet_y":19,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F939-1F3FF-200D-2640-FE0F","non_qualified":"1F939-1F3FF-200D-2640","image":"1f939-1f3ff-200d-2640-fe0f.png","sheet_x":42,"sheet_y":20,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Juggling","b":"1F939-200D-2640-FE0F","c":"1F939-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_juggling","juggle","balance","skill","multitask"],"k":[42,15],"o":4},"person_in_lotus_position":{"subcategory":"person-resting","skin_variations":{"1F3FB":{"unified":"1F9D8-1F3FB","non_qualified":null,"image":"1f9d8-1f3fb.png","sheet_x":51,"sheet_y":37,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9D8-1F3FB-200D-2640-FE0F"},"1F3FC":{"unified":"1F9D8-1F3FC","non_qualified":null,"image":"1f9d8-1f3fc.png","sheet_x":51,"sheet_y":38,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9D8-1F3FC-200D-2640-FE0F"},"1F3FD":{"unified":"1F9D8-1F3FD","non_qualified":null,"image":"1f9d8-1f3fd.png","sheet_x":51,"sheet_y":39,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9D8-1F3FD-200D-2640-FE0F"},"1F3FE":{"unified":"1F9D8-1F3FE","non_qualified":null,"image":"1f9d8-1f3fe.png","sheet_x":51,"sheet_y":40,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9D8-1F3FE-200D-2640-FE0F"},"1F3FF":{"unified":"1F9D8-1F3FF","non_qualified":null,"image":"1f9d8-1f3ff.png","sheet_x":51,"sheet_y":41,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9D8-1F3FF-200D-2640-FE0F"}},"obsoleted_by":"1F9D8-200D-2640-FE0F","a":"Person in Lotus Position","b":"1F9D8","d":true,"e":true,"f":true,"h":true,"j":["person_in_lotus_position","meditate"],"k":[51,36],"o":5},"man_in_lotus_position":{"subcategory":"person-resting","skin_variations":{"1F3FB":{"unified":"1F9D8-1F3FB-200D-2642-FE0F","non_qualified":"1F9D8-1F3FB-200D-2642","image":"1f9d8-1f3fb-200d-2642-fe0f.png","sheet_x":51,"sheet_y":31,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D8-1F3FC-200D-2642-FE0F","non_qualified":"1F9D8-1F3FC-200D-2642","image":"1f9d8-1f3fc-200d-2642-fe0f.png","sheet_x":51,"sheet_y":32,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D8-1F3FD-200D-2642-FE0F","non_qualified":"1F9D8-1F3FD-200D-2642","image":"1f9d8-1f3fd-200d-2642-fe0f.png","sheet_x":51,"sheet_y":33,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D8-1F3FE-200D-2642-FE0F","non_qualified":"1F9D8-1F3FE-200D-2642","image":"1f9d8-1f3fe-200d-2642-fe0f.png","sheet_x":51,"sheet_y":34,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D8-1F3FF-200D-2642-FE0F","non_qualified":"1F9D8-1F3FF-200D-2642","image":"1f9d8-1f3ff-200d-2642-fe0f.png","sheet_x":51,"sheet_y":35,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man in Lotus Position","b":"1F9D8-200D-2642-FE0F","c":"1F9D8-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_in_lotus_position","man","male","meditation","yoga","serenity","zen","mindfulness"],"k":[51,30],"o":5},"woman_in_lotus_position":{"subcategory":"person-resting","skin_variations":{"1F3FB":{"unified":"1F9D8-1F3FB-200D-2640-FE0F","non_qualified":"1F9D8-1F3FB-200D-2640","image":"1f9d8-1f3fb-200d-2640-fe0f.png","sheet_x":51,"sheet_y":25,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9D8-1F3FB"},"1F3FC":{"unified":"1F9D8-1F3FC-200D-2640-FE0F","non_qualified":"1F9D8-1F3FC-200D-2640","image":"1f9d8-1f3fc-200d-2640-fe0f.png","sheet_x":51,"sheet_y":26,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9D8-1F3FC"},"1F3FD":{"unified":"1F9D8-1F3FD-200D-2640-FE0F","non_qualified":"1F9D8-1F3FD-200D-2640","image":"1f9d8-1f3fd-200d-2640-fe0f.png","sheet_x":51,"sheet_y":27,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9D8-1F3FD"},"1F3FE":{"unified":"1F9D8-1F3FE-200D-2640-FE0F","non_qualified":"1F9D8-1F3FE-200D-2640","image":"1f9d8-1f3fe-200d-2640-fe0f.png","sheet_x":51,"sheet_y":28,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9D8-1F3FE"},"1F3FF":{"unified":"1F9D8-1F3FF-200D-2640-FE0F","non_qualified":"1F9D8-1F3FF-200D-2640","image":"1f9d8-1f3ff-200d-2640-fe0f.png","sheet_x":51,"sheet_y":29,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9D8-1F3FF"}},"obsoletes":"1F9D8","a":"Woman in Lotus Position","b":"1F9D8-200D-2640-FE0F","c":"1F9D8-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_in_lotus_position","woman","female","meditation","yoga","serenity","zen","mindfulness"],"k":[51,24],"o":5},"bath":{"subcategory":"person-resting","skin_variations":{"1F3FB":{"unified":"1F6C0-1F3FB","non_qualified":null,"image":"1f6c0-1f3fb.png","sheet_x":37,"sheet_y":44,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F6C0-1F3FC","non_qualified":null,"image":"1f6c0-1f3fc.png","sheet_x":37,"sheet_y":45,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F6C0-1F3FD","non_qualified":null,"image":"1f6c0-1f3fd.png","sheet_x":37,"sheet_y":46,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F6C0-1F3FE","non_qualified":null,"image":"1f6c0-1f3fe.png","sheet_x":37,"sheet_y":47,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F6C0-1F3FF","non_qualified":null,"image":"1f6c0-1f3ff.png","sheet_x":37,"sheet_y":48,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Bath","b":"1F6C0","d":true,"e":true,"f":true,"h":true,"j":["person_taking_bath","clean","shower","bathroom"],"k":[37,43],"o":0},"sleeping_accommodation":{"subcategory":"person-resting","skin_variations":{"1F3FB":{"unified":"1F6CC-1F3FB","non_qualified":null,"image":"1f6cc-1f3fb.png","sheet_x":37,"sheet_y":56,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F6CC-1F3FC","non_qualified":null,"image":"1f6cc-1f3fc.png","sheet_x":37,"sheet_y":57,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F6CC-1F3FD","non_qualified":null,"image":"1f6cc-1f3fd.png","sheet_x":37,"sheet_y":58,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F6CC-1F3FE","non_qualified":null,"image":"1f6cc-1f3fe.png","sheet_x":37,"sheet_y":59,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F6CC-1F3FF","non_qualified":null,"image":"1f6cc-1f3ff.png","sheet_x":37,"sheet_y":60,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Sleeping Accommodation","b":"1F6CC","d":true,"e":true,"f":true,"h":true,"j":["person_in_bed","bed","rest"],"k":[37,55],"o":1},"people_holding_hands":{"subcategory":"family","skin_variations":{"1F3FB-1F3FB":{"unified":"1F9D1-1F3FB-200D-1F91D-200D-1F9D1-1F3FB","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3fb.png","sheet_x":48,"sheet_y":44,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FC":{"unified":"1F9D1-1F3FB-200D-1F91D-200D-1F9D1-1F3FC","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3fc.png","sheet_x":48,"sheet_y":45,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FD":{"unified":"1F9D1-1F3FB-200D-1F91D-200D-1F9D1-1F3FD","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3fd.png","sheet_x":48,"sheet_y":46,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FE":{"unified":"1F9D1-1F3FB-200D-1F91D-200D-1F9D1-1F3FE","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3fe.png","sheet_x":48,"sheet_y":47,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FF":{"unified":"1F9D1-1F3FB-200D-1F91D-200D-1F9D1-1F3FF","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3ff.png","sheet_x":48,"sheet_y":48,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FB":{"unified":"1F9D1-1F3FC-200D-1F91D-200D-1F9D1-1F3FB","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fb.png","sheet_x":48,"sheet_y":49,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FC":{"unified":"1F9D1-1F3FC-200D-1F91D-200D-1F9D1-1F3FC","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fc.png","sheet_x":48,"sheet_y":50,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FD":{"unified":"1F9D1-1F3FC-200D-1F91D-200D-1F9D1-1F3FD","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fd.png","sheet_x":48,"sheet_y":51,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FE":{"unified":"1F9D1-1F3FC-200D-1F91D-200D-1F9D1-1F3FE","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fe.png","sheet_x":48,"sheet_y":52,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FF":{"unified":"1F9D1-1F3FC-200D-1F91D-200D-1F9D1-1F3FF","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3ff.png","sheet_x":48,"sheet_y":53,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FB":{"unified":"1F9D1-1F3FD-200D-1F91D-200D-1F9D1-1F3FB","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fb.png","sheet_x":48,"sheet_y":54,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FC":{"unified":"1F9D1-1F3FD-200D-1F91D-200D-1F9D1-1F3FC","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fc.png","sheet_x":48,"sheet_y":55,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FD":{"unified":"1F9D1-1F3FD-200D-1F91D-200D-1F9D1-1F3FD","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fd.png","sheet_x":48,"sheet_y":56,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FE":{"unified":"1F9D1-1F3FD-200D-1F91D-200D-1F9D1-1F3FE","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fe.png","sheet_x":48,"sheet_y":57,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FF":{"unified":"1F9D1-1F3FD-200D-1F91D-200D-1F9D1-1F3FF","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3ff.png","sheet_x":48,"sheet_y":58,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FB":{"unified":"1F9D1-1F3FE-200D-1F91D-200D-1F9D1-1F3FB","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fb.png","sheet_x":48,"sheet_y":59,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FC":{"unified":"1F9D1-1F3FE-200D-1F91D-200D-1F9D1-1F3FC","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fc.png","sheet_x":48,"sheet_y":60,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FD":{"unified":"1F9D1-1F3FE-200D-1F91D-200D-1F9D1-1F3FD","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fd.png","sheet_x":49,"sheet_y":0,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FE":{"unified":"1F9D1-1F3FE-200D-1F91D-200D-1F9D1-1F3FE","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fe.png","sheet_x":49,"sheet_y":1,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FF":{"unified":"1F9D1-1F3FE-200D-1F91D-200D-1F9D1-1F3FF","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3ff.png","sheet_x":49,"sheet_y":2,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FB":{"unified":"1F9D1-1F3FF-200D-1F91D-200D-1F9D1-1F3FB","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fb.png","sheet_x":49,"sheet_y":3,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FC":{"unified":"1F9D1-1F3FF-200D-1F91D-200D-1F9D1-1F3FC","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fc.png","sheet_x":49,"sheet_y":4,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FD":{"unified":"1F9D1-1F3FF-200D-1F91D-200D-1F9D1-1F3FD","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fd.png","sheet_x":49,"sheet_y":5,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FE":{"unified":"1F9D1-1F3FF-200D-1F91D-200D-1F9D1-1F3FE","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fe.png","sheet_x":49,"sheet_y":6,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FF":{"unified":"1F9D1-1F3FF-200D-1F91D-200D-1F9D1-1F3FF","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3ff.png","sheet_x":49,"sheet_y":7,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"People Holding Hands","b":"1F9D1-200D-1F91D-200D-1F9D1","d":true,"e":true,"f":true,"h":true,"j":["people_holding_hands","friendship"],"k":[48,43],"o":12},"two_women_holding_hands":{"subcategory":"family","skin_variations":{"1F3FB":{"unified":"1F46D-1F3FB","non_qualified":null,"image":"1f46d-1f3fb.png","sheet_x":22,"sheet_y":33,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F46D-1F3FC","non_qualified":null,"image":"1f46d-1f3fc.png","sheet_x":22,"sheet_y":34,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F46D-1F3FD","non_qualified":null,"image":"1f46d-1f3fd.png","sheet_x":22,"sheet_y":35,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F46D-1F3FE","non_qualified":null,"image":"1f46d-1f3fe.png","sheet_x":22,"sheet_y":36,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F46D-1F3FF","non_qualified":null,"image":"1f46d-1f3ff.png","sheet_x":22,"sheet_y":37,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FC":{"unified":"1F469-1F3FB-200D-1F91D-200D-1F469-1F3FC","non_qualified":null,"image":"1f469-1f3fb-200d-1f91d-200d-1f469-1f3fc.png","sheet_x":22,"sheet_y":38,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FD":{"unified":"1F469-1F3FB-200D-1F91D-200D-1F469-1F3FD","non_qualified":null,"image":"1f469-1f3fb-200d-1f91d-200d-1f469-1f3fd.png","sheet_x":22,"sheet_y":39,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FE":{"unified":"1F469-1F3FB-200D-1F91D-200D-1F469-1F3FE","non_qualified":null,"image":"1f469-1f3fb-200d-1f91d-200d-1f469-1f3fe.png","sheet_x":22,"sheet_y":40,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FF":{"unified":"1F469-1F3FB-200D-1F91D-200D-1F469-1F3FF","non_qualified":null,"image":"1f469-1f3fb-200d-1f91d-200d-1f469-1f3ff.png","sheet_x":22,"sheet_y":41,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FB":{"unified":"1F469-1F3FC-200D-1F91D-200D-1F469-1F3FB","non_qualified":null,"image":"1f469-1f3fc-200d-1f91d-200d-1f469-1f3fb.png","sheet_x":22,"sheet_y":42,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FD":{"unified":"1F469-1F3FC-200D-1F91D-200D-1F469-1F3FD","non_qualified":null,"image":"1f469-1f3fc-200d-1f91d-200d-1f469-1f3fd.png","sheet_x":22,"sheet_y":43,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FE":{"unified":"1F469-1F3FC-200D-1F91D-200D-1F469-1F3FE","non_qualified":null,"image":"1f469-1f3fc-200d-1f91d-200d-1f469-1f3fe.png","sheet_x":22,"sheet_y":44,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FF":{"unified":"1F469-1F3FC-200D-1F91D-200D-1F469-1F3FF","non_qualified":null,"image":"1f469-1f3fc-200d-1f91d-200d-1f469-1f3ff.png","sheet_x":22,"sheet_y":45,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FB":{"unified":"1F469-1F3FD-200D-1F91D-200D-1F469-1F3FB","non_qualified":null,"image":"1f469-1f3fd-200d-1f91d-200d-1f469-1f3fb.png","sheet_x":22,"sheet_y":46,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FC":{"unified":"1F469-1F3FD-200D-1F91D-200D-1F469-1F3FC","non_qualified":null,"image":"1f469-1f3fd-200d-1f91d-200d-1f469-1f3fc.png","sheet_x":22,"sheet_y":47,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FE":{"unified":"1F469-1F3FD-200D-1F91D-200D-1F469-1F3FE","non_qualified":null,"image":"1f469-1f3fd-200d-1f91d-200d-1f469-1f3fe.png","sheet_x":22,"sheet_y":48,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FF":{"unified":"1F469-1F3FD-200D-1F91D-200D-1F469-1F3FF","non_qualified":null,"image":"1f469-1f3fd-200d-1f91d-200d-1f469-1f3ff.png","sheet_x":22,"sheet_y":49,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FB":{"unified":"1F469-1F3FE-200D-1F91D-200D-1F469-1F3FB","non_qualified":null,"image":"1f469-1f3fe-200d-1f91d-200d-1f469-1f3fb.png","sheet_x":22,"sheet_y":50,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FC":{"unified":"1F469-1F3FE-200D-1F91D-200D-1F469-1F3FC","non_qualified":null,"image":"1f469-1f3fe-200d-1f91d-200d-1f469-1f3fc.png","sheet_x":22,"sheet_y":51,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FD":{"unified":"1F469-1F3FE-200D-1F91D-200D-1F469-1F3FD","non_qualified":null,"image":"1f469-1f3fe-200d-1f91d-200d-1f469-1f3fd.png","sheet_x":22,"sheet_y":52,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FF":{"unified":"1F469-1F3FE-200D-1F91D-200D-1F469-1F3FF","non_qualified":null,"image":"1f469-1f3fe-200d-1f91d-200d-1f469-1f3ff.png","sheet_x":22,"sheet_y":53,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FB":{"unified":"1F469-1F3FF-200D-1F91D-200D-1F469-1F3FB","non_qualified":null,"image":"1f469-1f3ff-200d-1f91d-200d-1f469-1f3fb.png","sheet_x":22,"sheet_y":54,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FC":{"unified":"1F469-1F3FF-200D-1F91D-200D-1F469-1F3FC","non_qualified":null,"image":"1f469-1f3ff-200d-1f91d-200d-1f469-1f3fc.png","sheet_x":22,"sheet_y":55,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FD":{"unified":"1F469-1F3FF-200D-1F91D-200D-1F469-1F3FD","non_qualified":null,"image":"1f469-1f3ff-200d-1f91d-200d-1f469-1f3fd.png","sheet_x":22,"sheet_y":56,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FE":{"unified":"1F469-1F3FF-200D-1F91D-200D-1F469-1F3FE","non_qualified":null,"image":"1f469-1f3ff-200d-1f91d-200d-1f469-1f3fe.png","sheet_x":22,"sheet_y":57,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Two Women Holding Hands","b":"1F46D","d":true,"e":true,"f":true,"h":true,"j":["women_holding_hands","pair","friendship","couple","love","like","female","people","human"],"k":[22,32],"n":["women_holding_hands"],"o":1},"man_and_woman_holding_hands":{"subcategory":"family","skin_variations":{"1F3FB":{"unified":"1F46B-1F3FB","non_qualified":null,"image":"1f46b-1f3fb.png","sheet_x":21,"sheet_y":42,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F46B-1F3FC","non_qualified":null,"image":"1f46b-1f3fc.png","sheet_x":21,"sheet_y":43,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F46B-1F3FD","non_qualified":null,"image":"1f46b-1f3fd.png","sheet_x":21,"sheet_y":44,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F46B-1F3FE","non_qualified":null,"image":"1f46b-1f3fe.png","sheet_x":21,"sheet_y":45,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F46B-1F3FF","non_qualified":null,"image":"1f46b-1f3ff.png","sheet_x":21,"sheet_y":46,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FC":{"unified":"1F469-1F3FB-200D-1F91D-200D-1F468-1F3FC","non_qualified":null,"image":"1f469-1f3fb-200d-1f91d-200d-1f468-1f3fc.png","sheet_x":21,"sheet_y":47,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FD":{"unified":"1F469-1F3FB-200D-1F91D-200D-1F468-1F3FD","non_qualified":null,"image":"1f469-1f3fb-200d-1f91d-200d-1f468-1f3fd.png","sheet_x":21,"sheet_y":48,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FE":{"unified":"1F469-1F3FB-200D-1F91D-200D-1F468-1F3FE","non_qualified":null,"image":"1f469-1f3fb-200d-1f91d-200d-1f468-1f3fe.png","sheet_x":21,"sheet_y":49,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FF":{"unified":"1F469-1F3FB-200D-1F91D-200D-1F468-1F3FF","non_qualified":null,"image":"1f469-1f3fb-200d-1f91d-200d-1f468-1f3ff.png","sheet_x":21,"sheet_y":50,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FB":{"unified":"1F469-1F3FC-200D-1F91D-200D-1F468-1F3FB","non_qualified":null,"image":"1f469-1f3fc-200d-1f91d-200d-1f468-1f3fb.png","sheet_x":21,"sheet_y":51,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FD":{"unified":"1F469-1F3FC-200D-1F91D-200D-1F468-1F3FD","non_qualified":null,"image":"1f469-1f3fc-200d-1f91d-200d-1f468-1f3fd.png","sheet_x":21,"sheet_y":52,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FE":{"unified":"1F469-1F3FC-200D-1F91D-200D-1F468-1F3FE","non_qualified":null,"image":"1f469-1f3fc-200d-1f91d-200d-1f468-1f3fe.png","sheet_x":21,"sheet_y":53,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FF":{"unified":"1F469-1F3FC-200D-1F91D-200D-1F468-1F3FF","non_qualified":null,"image":"1f469-1f3fc-200d-1f91d-200d-1f468-1f3ff.png","sheet_x":21,"sheet_y":54,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FB":{"unified":"1F469-1F3FD-200D-1F91D-200D-1F468-1F3FB","non_qualified":null,"image":"1f469-1f3fd-200d-1f91d-200d-1f468-1f3fb.png","sheet_x":21,"sheet_y":55,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FC":{"unified":"1F469-1F3FD-200D-1F91D-200D-1F468-1F3FC","non_qualified":null,"image":"1f469-1f3fd-200d-1f91d-200d-1f468-1f3fc.png","sheet_x":21,"sheet_y":56,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FE":{"unified":"1F469-1F3FD-200D-1F91D-200D-1F468-1F3FE","non_qualified":null,"image":"1f469-1f3fd-200d-1f91d-200d-1f468-1f3fe.png","sheet_x":21,"sheet_y":57,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FF":{"unified":"1F469-1F3FD-200D-1F91D-200D-1F468-1F3FF","non_qualified":null,"image":"1f469-1f3fd-200d-1f91d-200d-1f468-1f3ff.png","sheet_x":21,"sheet_y":58,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FB":{"unified":"1F469-1F3FE-200D-1F91D-200D-1F468-1F3FB","non_qualified":null,"image":"1f469-1f3fe-200d-1f91d-200d-1f468-1f3fb.png","sheet_x":21,"sheet_y":59,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FC":{"unified":"1F469-1F3FE-200D-1F91D-200D-1F468-1F3FC","non_qualified":null,"image":"1f469-1f3fe-200d-1f91d-200d-1f468-1f3fc.png","sheet_x":21,"sheet_y":60,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FD":{"unified":"1F469-1F3FE-200D-1F91D-200D-1F468-1F3FD","non_qualified":null,"image":"1f469-1f3fe-200d-1f91d-200d-1f468-1f3fd.png","sheet_x":22,"sheet_y":0,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FF":{"unified":"1F469-1F3FE-200D-1F91D-200D-1F468-1F3FF","non_qualified":null,"image":"1f469-1f3fe-200d-1f91d-200d-1f468-1f3ff.png","sheet_x":22,"sheet_y":1,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FB":{"unified":"1F469-1F3FF-200D-1F91D-200D-1F468-1F3FB","non_qualified":null,"image":"1f469-1f3ff-200d-1f91d-200d-1f468-1f3fb.png","sheet_x":22,"sheet_y":2,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FC":{"unified":"1F469-1F3FF-200D-1F91D-200D-1F468-1F3FC","non_qualified":null,"image":"1f469-1f3ff-200d-1f91d-200d-1f468-1f3fc.png","sheet_x":22,"sheet_y":3,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FD":{"unified":"1F469-1F3FF-200D-1F91D-200D-1F468-1F3FD","non_qualified":null,"image":"1f469-1f3ff-200d-1f91d-200d-1f468-1f3fd.png","sheet_x":22,"sheet_y":4,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FE":{"unified":"1F469-1F3FF-200D-1F91D-200D-1F468-1F3FE","non_qualified":null,"image":"1f469-1f3ff-200d-1f91d-200d-1f468-1f3fe.png","sheet_x":22,"sheet_y":5,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man and Woman Holding Hands","b":"1F46B","d":true,"e":true,"f":true,"h":true,"j":["woman_and_man_holding_hands","pair","people","human","love","date","dating","like","affection","valentines","marriage"],"k":[21,41],"n":["woman_and_man_holding_hands","couple"],"o":0},"two_men_holding_hands":{"subcategory":"family","skin_variations":{"1F3FB":{"unified":"1F46C-1F3FB","non_qualified":null,"image":"1f46c-1f3fb.png","sheet_x":22,"sheet_y":7,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F46C-1F3FC","non_qualified":null,"image":"1f46c-1f3fc.png","sheet_x":22,"sheet_y":8,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F46C-1F3FD","non_qualified":null,"image":"1f46c-1f3fd.png","sheet_x":22,"sheet_y":9,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F46C-1F3FE","non_qualified":null,"image":"1f46c-1f3fe.png","sheet_x":22,"sheet_y":10,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F46C-1F3FF","non_qualified":null,"image":"1f46c-1f3ff.png","sheet_x":22,"sheet_y":11,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FC":{"unified":"1F468-1F3FB-200D-1F91D-200D-1F468-1F3FC","non_qualified":null,"image":"1f468-1f3fb-200d-1f91d-200d-1f468-1f3fc.png","sheet_x":22,"sheet_y":12,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FD":{"unified":"1F468-1F3FB-200D-1F91D-200D-1F468-1F3FD","non_qualified":null,"image":"1f468-1f3fb-200d-1f91d-200d-1f468-1f3fd.png","sheet_x":22,"sheet_y":13,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FE":{"unified":"1F468-1F3FB-200D-1F91D-200D-1F468-1F3FE","non_qualified":null,"image":"1f468-1f3fb-200d-1f91d-200d-1f468-1f3fe.png","sheet_x":22,"sheet_y":14,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FF":{"unified":"1F468-1F3FB-200D-1F91D-200D-1F468-1F3FF","non_qualified":null,"image":"1f468-1f3fb-200d-1f91d-200d-1f468-1f3ff.png","sheet_x":22,"sheet_y":15,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FB":{"unified":"1F468-1F3FC-200D-1F91D-200D-1F468-1F3FB","non_qualified":null,"image":"1f468-1f3fc-200d-1f91d-200d-1f468-1f3fb.png","sheet_x":22,"sheet_y":16,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FD":{"unified":"1F468-1F3FC-200D-1F91D-200D-1F468-1F3FD","non_qualified":null,"image":"1f468-1f3fc-200d-1f91d-200d-1f468-1f3fd.png","sheet_x":22,"sheet_y":17,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FE":{"unified":"1F468-1F3FC-200D-1F91D-200D-1F468-1F3FE","non_qualified":null,"image":"1f468-1f3fc-200d-1f91d-200d-1f468-1f3fe.png","sheet_x":22,"sheet_y":18,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FF":{"unified":"1F468-1F3FC-200D-1F91D-200D-1F468-1F3FF","non_qualified":null,"image":"1f468-1f3fc-200d-1f91d-200d-1f468-1f3ff.png","sheet_x":22,"sheet_y":19,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FB":{"unified":"1F468-1F3FD-200D-1F91D-200D-1F468-1F3FB","non_qualified":null,"image":"1f468-1f3fd-200d-1f91d-200d-1f468-1f3fb.png","sheet_x":22,"sheet_y":20,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FC":{"unified":"1F468-1F3FD-200D-1F91D-200D-1F468-1F3FC","non_qualified":null,"image":"1f468-1f3fd-200d-1f91d-200d-1f468-1f3fc.png","sheet_x":22,"sheet_y":21,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FE":{"unified":"1F468-1F3FD-200D-1F91D-200D-1F468-1F3FE","non_qualified":null,"image":"1f468-1f3fd-200d-1f91d-200d-1f468-1f3fe.png","sheet_x":22,"sheet_y":22,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FF":{"unified":"1F468-1F3FD-200D-1F91D-200D-1F468-1F3FF","non_qualified":null,"image":"1f468-1f3fd-200d-1f91d-200d-1f468-1f3ff.png","sheet_x":22,"sheet_y":23,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FB":{"unified":"1F468-1F3FE-200D-1F91D-200D-1F468-1F3FB","non_qualified":null,"image":"1f468-1f3fe-200d-1f91d-200d-1f468-1f3fb.png","sheet_x":22,"sheet_y":24,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FC":{"unified":"1F468-1F3FE-200D-1F91D-200D-1F468-1F3FC","non_qualified":null,"image":"1f468-1f3fe-200d-1f91d-200d-1f468-1f3fc.png","sheet_x":22,"sheet_y":25,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FD":{"unified":"1F468-1F3FE-200D-1F91D-200D-1F468-1F3FD","non_qualified":null,"image":"1f468-1f3fe-200d-1f91d-200d-1f468-1f3fd.png","sheet_x":22,"sheet_y":26,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FF":{"unified":"1F468-1F3FE-200D-1F91D-200D-1F468-1F3FF","non_qualified":null,"image":"1f468-1f3fe-200d-1f91d-200d-1f468-1f3ff.png","sheet_x":22,"sheet_y":27,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FB":{"unified":"1F468-1F3FF-200D-1F91D-200D-1F468-1F3FB","non_qualified":null,"image":"1f468-1f3ff-200d-1f91d-200d-1f468-1f3fb.png","sheet_x":22,"sheet_y":28,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FC":{"unified":"1F468-1F3FF-200D-1F91D-200D-1F468-1F3FC","non_qualified":null,"image":"1f468-1f3ff-200d-1f91d-200d-1f468-1f3fc.png","sheet_x":22,"sheet_y":29,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FD":{"unified":"1F468-1F3FF-200D-1F91D-200D-1F468-1F3FD","non_qualified":null,"image":"1f468-1f3ff-200d-1f91d-200d-1f468-1f3fd.png","sheet_x":22,"sheet_y":30,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FE":{"unified":"1F468-1F3FF-200D-1F91D-200D-1F468-1F3FE","non_qualified":null,"image":"1f468-1f3ff-200d-1f91d-200d-1f468-1f3fe.png","sheet_x":22,"sheet_y":31,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Two Men Holding Hands","b":"1F46C","d":true,"e":true,"f":true,"h":true,"j":["men_holding_hands","pair","couple","love","like","bromance","friendship","people","human"],"k":[22,6],"n":["men_holding_hands"],"o":1},"couplekiss":{"subcategory":"family","skin_variations":{"1F3FB":{"unified":"1F48F-1F3FB","non_qualified":null,"image":"1f48f-1f3fb.png","sheet_x":26,"sheet_y":43,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F48F-1F3FC","non_qualified":null,"image":"1f48f-1f3fc.png","sheet_x":26,"sheet_y":44,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F48F-1F3FD","non_qualified":null,"image":"1f48f-1f3fd.png","sheet_x":26,"sheet_y":45,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F48F-1F3FE","non_qualified":null,"image":"1f48f-1f3fe.png","sheet_x":26,"sheet_y":46,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F48F-1F3FF","non_qualified":null,"image":"1f48f-1f3ff.png","sheet_x":26,"sheet_y":47,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FC":{"unified":"1F9D1-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FC","non_qualified":"1F9D1-1F3FB-200D-2764-200D-1F48B-200D-1F9D1-1F3FC","image":"1f9d1-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fc.png","sheet_x":26,"sheet_y":48,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FD":{"unified":"1F9D1-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FD","non_qualified":"1F9D1-1F3FB-200D-2764-200D-1F48B-200D-1F9D1-1F3FD","image":"1f9d1-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fd.png","sheet_x":26,"sheet_y":49,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FE":{"unified":"1F9D1-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FE","non_qualified":"1F9D1-1F3FB-200D-2764-200D-1F48B-200D-1F9D1-1F3FE","image":"1f9d1-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fe.png","sheet_x":26,"sheet_y":50,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FF":{"unified":"1F9D1-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FF","non_qualified":"1F9D1-1F3FB-200D-2764-200D-1F48B-200D-1F9D1-1F3FF","image":"1f9d1-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3ff.png","sheet_x":26,"sheet_y":51,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FB":{"unified":"1F9D1-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FB","non_qualified":"1F9D1-1F3FC-200D-2764-200D-1F48B-200D-1F9D1-1F3FB","image":"1f9d1-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fb.png","sheet_x":26,"sheet_y":52,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FD":{"unified":"1F9D1-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FD","non_qualified":"1F9D1-1F3FC-200D-2764-200D-1F48B-200D-1F9D1-1F3FD","image":"1f9d1-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fd.png","sheet_x":26,"sheet_y":53,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FE":{"unified":"1F9D1-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FE","non_qualified":"1F9D1-1F3FC-200D-2764-200D-1F48B-200D-1F9D1-1F3FE","image":"1f9d1-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fe.png","sheet_x":26,"sheet_y":54,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FF":{"unified":"1F9D1-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FF","non_qualified":"1F9D1-1F3FC-200D-2764-200D-1F48B-200D-1F9D1-1F3FF","image":"1f9d1-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3ff.png","sheet_x":26,"sheet_y":55,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FB":{"unified":"1F9D1-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FB","non_qualified":"1F9D1-1F3FD-200D-2764-200D-1F48B-200D-1F9D1-1F3FB","image":"1f9d1-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fb.png","sheet_x":26,"sheet_y":56,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FC":{"unified":"1F9D1-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FC","non_qualified":"1F9D1-1F3FD-200D-2764-200D-1F48B-200D-1F9D1-1F3FC","image":"1f9d1-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fc.png","sheet_x":26,"sheet_y":57,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FE":{"unified":"1F9D1-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FE","non_qualified":"1F9D1-1F3FD-200D-2764-200D-1F48B-200D-1F9D1-1F3FE","image":"1f9d1-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fe.png","sheet_x":26,"sheet_y":58,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FF":{"unified":"1F9D1-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FF","non_qualified":"1F9D1-1F3FD-200D-2764-200D-1F48B-200D-1F9D1-1F3FF","image":"1f9d1-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3ff.png","sheet_x":26,"sheet_y":59,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FB":{"unified":"1F9D1-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FB","non_qualified":"1F9D1-1F3FE-200D-2764-200D-1F48B-200D-1F9D1-1F3FB","image":"1f9d1-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fb.png","sheet_x":26,"sheet_y":60,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FC":{"unified":"1F9D1-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FC","non_qualified":"1F9D1-1F3FE-200D-2764-200D-1F48B-200D-1F9D1-1F3FC","image":"1f9d1-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fc.png","sheet_x":27,"sheet_y":0,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FD":{"unified":"1F9D1-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FD","non_qualified":"1F9D1-1F3FE-200D-2764-200D-1F48B-200D-1F9D1-1F3FD","image":"1f9d1-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fd.png","sheet_x":27,"sheet_y":1,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FF":{"unified":"1F9D1-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FF","non_qualified":"1F9D1-1F3FE-200D-2764-200D-1F48B-200D-1F9D1-1F3FF","image":"1f9d1-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3ff.png","sheet_x":27,"sheet_y":2,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FB":{"unified":"1F9D1-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FB","non_qualified":"1F9D1-1F3FF-200D-2764-200D-1F48B-200D-1F9D1-1F3FB","image":"1f9d1-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fb.png","sheet_x":27,"sheet_y":3,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FC":{"unified":"1F9D1-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FC","non_qualified":"1F9D1-1F3FF-200D-2764-200D-1F48B-200D-1F9D1-1F3FC","image":"1f9d1-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fc.png","sheet_x":27,"sheet_y":4,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FD":{"unified":"1F9D1-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FD","non_qualified":"1F9D1-1F3FF-200D-2764-200D-1F48B-200D-1F9D1-1F3FD","image":"1f9d1-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fd.png","sheet_x":27,"sheet_y":5,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FE":{"unified":"1F9D1-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FE","non_qualified":"1F9D1-1F3FF-200D-2764-200D-1F48B-200D-1F9D1-1F3FE","image":"1f9d1-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fe.png","sheet_x":27,"sheet_y":6,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Kiss","b":"1F48F","d":true,"e":true,"f":true,"h":true,"j":["kiss","pair","valentines","love","like","dating","marriage"],"k":[26,42],"o":0},"woman-kiss-man":{"subcategory":"family","skin_variations":{"1F3FB-1F3FB":{"unified":"1F469-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FB","non_qualified":"1F469-1F3FB-200D-2764-200D-1F48B-200D-1F468-1F3FB","image":"1f469-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fb.png","sheet_x":20,"sheet_y":44,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FC":{"unified":"1F469-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FC","non_qualified":"1F469-1F3FB-200D-2764-200D-1F48B-200D-1F468-1F3FC","image":"1f469-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fc.png","sheet_x":20,"sheet_y":45,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FD":{"unified":"1F469-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FD","non_qualified":"1F469-1F3FB-200D-2764-200D-1F48B-200D-1F468-1F3FD","image":"1f469-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fd.png","sheet_x":20,"sheet_y":46,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FE":{"unified":"1F469-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FE","non_qualified":"1F469-1F3FB-200D-2764-200D-1F48B-200D-1F468-1F3FE","image":"1f469-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fe.png","sheet_x":20,"sheet_y":47,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FF":{"unified":"1F469-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FF","non_qualified":"1F469-1F3FB-200D-2764-200D-1F48B-200D-1F468-1F3FF","image":"1f469-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3ff.png","sheet_x":20,"sheet_y":48,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FB":{"unified":"1F469-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FB","non_qualified":"1F469-1F3FC-200D-2764-200D-1F48B-200D-1F468-1F3FB","image":"1f469-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fb.png","sheet_x":20,"sheet_y":49,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FC":{"unified":"1F469-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FC","non_qualified":"1F469-1F3FC-200D-2764-200D-1F48B-200D-1F468-1F3FC","image":"1f469-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fc.png","sheet_x":20,"sheet_y":50,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FD":{"unified":"1F469-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FD","non_qualified":"1F469-1F3FC-200D-2764-200D-1F48B-200D-1F468-1F3FD","image":"1f469-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fd.png","sheet_x":20,"sheet_y":51,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FE":{"unified":"1F469-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FE","non_qualified":"1F469-1F3FC-200D-2764-200D-1F48B-200D-1F468-1F3FE","image":"1f469-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fe.png","sheet_x":20,"sheet_y":52,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FF":{"unified":"1F469-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FF","non_qualified":"1F469-1F3FC-200D-2764-200D-1F48B-200D-1F468-1F3FF","image":"1f469-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3ff.png","sheet_x":20,"sheet_y":53,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FB":{"unified":"1F469-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FB","non_qualified":"1F469-1F3FD-200D-2764-200D-1F48B-200D-1F468-1F3FB","image":"1f469-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fb.png","sheet_x":20,"sheet_y":54,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FC":{"unified":"1F469-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FC","non_qualified":"1F469-1F3FD-200D-2764-200D-1F48B-200D-1F468-1F3FC","image":"1f469-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fc.png","sheet_x":20,"sheet_y":55,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FD":{"unified":"1F469-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FD","non_qualified":"1F469-1F3FD-200D-2764-200D-1F48B-200D-1F468-1F3FD","image":"1f469-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fd.png","sheet_x":20,"sheet_y":56,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FE":{"unified":"1F469-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FE","non_qualified":"1F469-1F3FD-200D-2764-200D-1F48B-200D-1F468-1F3FE","image":"1f469-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fe.png","sheet_x":20,"sheet_y":57,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FF":{"unified":"1F469-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FF","non_qualified":"1F469-1F3FD-200D-2764-200D-1F48B-200D-1F468-1F3FF","image":"1f469-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3ff.png","sheet_x":20,"sheet_y":58,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FB":{"unified":"1F469-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FB","non_qualified":"1F469-1F3FE-200D-2764-200D-1F48B-200D-1F468-1F3FB","image":"1f469-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fb.png","sheet_x":20,"sheet_y":59,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FC":{"unified":"1F469-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FC","non_qualified":"1F469-1F3FE-200D-2764-200D-1F48B-200D-1F468-1F3FC","image":"1f469-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fc.png","sheet_x":20,"sheet_y":60,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FD":{"unified":"1F469-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FD","non_qualified":"1F469-1F3FE-200D-2764-200D-1F48B-200D-1F468-1F3FD","image":"1f469-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fd.png","sheet_x":21,"sheet_y":0,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FE":{"unified":"1F469-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FE","non_qualified":"1F469-1F3FE-200D-2764-200D-1F48B-200D-1F468-1F3FE","image":"1f469-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fe.png","sheet_x":21,"sheet_y":1,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FF":{"unified":"1F469-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FF","non_qualified":"1F469-1F3FE-200D-2764-200D-1F48B-200D-1F468-1F3FF","image":"1f469-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3ff.png","sheet_x":21,"sheet_y":2,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FB":{"unified":"1F469-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FB","non_qualified":"1F469-1F3FF-200D-2764-200D-1F48B-200D-1F468-1F3FB","image":"1f469-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fb.png","sheet_x":21,"sheet_y":3,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FC":{"unified":"1F469-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FC","non_qualified":"1F469-1F3FF-200D-2764-200D-1F48B-200D-1F468-1F3FC","image":"1f469-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fc.png","sheet_x":21,"sheet_y":4,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FD":{"unified":"1F469-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FD","non_qualified":"1F469-1F3FF-200D-2764-200D-1F48B-200D-1F468-1F3FD","image":"1f469-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fd.png","sheet_x":21,"sheet_y":5,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FE":{"unified":"1F469-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FE","non_qualified":"1F469-1F3FF-200D-2764-200D-1F48B-200D-1F468-1F3FE","image":"1f469-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fe.png","sheet_x":21,"sheet_y":6,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FF":{"unified":"1F469-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FF","non_qualified":"1F469-1F3FF-200D-2764-200D-1F48B-200D-1F468-1F3FF","image":"1f469-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3ff.png","sheet_x":21,"sheet_y":7,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Kiss: Woman, Man","b":"1F469-200D-2764-FE0F-200D-1F48B-200D-1F468","c":"1F469-200D-2764-200D-1F48B-200D-1F468","d":true,"e":true,"f":true,"h":true,"j":["kiss_woman_man","love"],"k":[20,43],"o":2},"man-kiss-man":{"subcategory":"family","skin_variations":{"1F3FB-1F3FB":{"unified":"1F468-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FB","non_qualified":"1F468-1F3FB-200D-2764-200D-1F48B-200D-1F468-1F3FB","image":"1f468-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fb.png","sheet_x":16,"sheet_y":50,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FC":{"unified":"1F468-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FC","non_qualified":"1F468-1F3FB-200D-2764-200D-1F48B-200D-1F468-1F3FC","image":"1f468-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fc.png","sheet_x":16,"sheet_y":51,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FD":{"unified":"1F468-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FD","non_qualified":"1F468-1F3FB-200D-2764-200D-1F48B-200D-1F468-1F3FD","image":"1f468-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fd.png","sheet_x":16,"sheet_y":52,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FE":{"unified":"1F468-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FE","non_qualified":"1F468-1F3FB-200D-2764-200D-1F48B-200D-1F468-1F3FE","image":"1f468-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fe.png","sheet_x":16,"sheet_y":53,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FF":{"unified":"1F468-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FF","non_qualified":"1F468-1F3FB-200D-2764-200D-1F48B-200D-1F468-1F3FF","image":"1f468-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3ff.png","sheet_x":16,"sheet_y":54,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FB":{"unified":"1F468-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FB","non_qualified":"1F468-1F3FC-200D-2764-200D-1F48B-200D-1F468-1F3FB","image":"1f468-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fb.png","sheet_x":16,"sheet_y":55,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FC":{"unified":"1F468-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FC","non_qualified":"1F468-1F3FC-200D-2764-200D-1F48B-200D-1F468-1F3FC","image":"1f468-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fc.png","sheet_x":16,"sheet_y":56,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FD":{"unified":"1F468-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FD","non_qualified":"1F468-1F3FC-200D-2764-200D-1F48B-200D-1F468-1F3FD","image":"1f468-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fd.png","sheet_x":16,"sheet_y":57,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FE":{"unified":"1F468-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FE","non_qualified":"1F468-1F3FC-200D-2764-200D-1F48B-200D-1F468-1F3FE","image":"1f468-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fe.png","sheet_x":16,"sheet_y":58,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FF":{"unified":"1F468-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FF","non_qualified":"1F468-1F3FC-200D-2764-200D-1F48B-200D-1F468-1F3FF","image":"1f468-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3ff.png","sheet_x":16,"sheet_y":59,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FB":{"unified":"1F468-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FB","non_qualified":"1F468-1F3FD-200D-2764-200D-1F48B-200D-1F468-1F3FB","image":"1f468-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fb.png","sheet_x":16,"sheet_y":60,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FC":{"unified":"1F468-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FC","non_qualified":"1F468-1F3FD-200D-2764-200D-1F48B-200D-1F468-1F3FC","image":"1f468-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fc.png","sheet_x":17,"sheet_y":0,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FD":{"unified":"1F468-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FD","non_qualified":"1F468-1F3FD-200D-2764-200D-1F48B-200D-1F468-1F3FD","image":"1f468-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fd.png","sheet_x":17,"sheet_y":1,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FE":{"unified":"1F468-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FE","non_qualified":"1F468-1F3FD-200D-2764-200D-1F48B-200D-1F468-1F3FE","image":"1f468-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fe.png","sheet_x":17,"sheet_y":2,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FF":{"unified":"1F468-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FF","non_qualified":"1F468-1F3FD-200D-2764-200D-1F48B-200D-1F468-1F3FF","image":"1f468-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3ff.png","sheet_x":17,"sheet_y":3,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FB":{"unified":"1F468-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FB","non_qualified":"1F468-1F3FE-200D-2764-200D-1F48B-200D-1F468-1F3FB","image":"1f468-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fb.png","sheet_x":17,"sheet_y":4,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FC":{"unified":"1F468-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FC","non_qualified":"1F468-1F3FE-200D-2764-200D-1F48B-200D-1F468-1F3FC","image":"1f468-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fc.png","sheet_x":17,"sheet_y":5,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FD":{"unified":"1F468-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FD","non_qualified":"1F468-1F3FE-200D-2764-200D-1F48B-200D-1F468-1F3FD","image":"1f468-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fd.png","sheet_x":17,"sheet_y":6,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FE":{"unified":"1F468-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FE","non_qualified":"1F468-1F3FE-200D-2764-200D-1F48B-200D-1F468-1F3FE","image":"1f468-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fe.png","sheet_x":17,"sheet_y":7,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FF":{"unified":"1F468-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FF","non_qualified":"1F468-1F3FE-200D-2764-200D-1F48B-200D-1F468-1F3FF","image":"1f468-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3ff.png","sheet_x":17,"sheet_y":8,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FB":{"unified":"1F468-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FB","non_qualified":"1F468-1F3FF-200D-2764-200D-1F48B-200D-1F468-1F3FB","image":"1f468-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fb.png","sheet_x":17,"sheet_y":9,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FC":{"unified":"1F468-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FC","non_qualified":"1F468-1F3FF-200D-2764-200D-1F48B-200D-1F468-1F3FC","image":"1f468-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fc.png","sheet_x":17,"sheet_y":10,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FD":{"unified":"1F468-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FD","non_qualified":"1F468-1F3FF-200D-2764-200D-1F48B-200D-1F468-1F3FD","image":"1f468-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fd.png","sheet_x":17,"sheet_y":11,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FE":{"unified":"1F468-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FE","non_qualified":"1F468-1F3FF-200D-2764-200D-1F48B-200D-1F468-1F3FE","image":"1f468-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fe.png","sheet_x":17,"sheet_y":12,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FF":{"unified":"1F468-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FF","non_qualified":"1F468-1F3FF-200D-2764-200D-1F48B-200D-1F468-1F3FF","image":"1f468-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3ff.png","sheet_x":17,"sheet_y":13,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Kiss: Man, Man","b":"1F468-200D-2764-FE0F-200D-1F48B-200D-1F468","c":"1F468-200D-2764-200D-1F48B-200D-1F468","d":true,"e":true,"f":true,"h":true,"j":["kiss_man_man","pair","valentines","love","like","dating","marriage"],"k":[16,49],"o":2},"woman-kiss-woman":{"subcategory":"family","skin_variations":{"1F3FB-1F3FB":{"unified":"1F469-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FB","non_qualified":"1F469-1F3FB-200D-2764-200D-1F48B-200D-1F469-1F3FB","image":"1f469-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fb.png","sheet_x":21,"sheet_y":9,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FC":{"unified":"1F469-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FC","non_qualified":"1F469-1F3FB-200D-2764-200D-1F48B-200D-1F469-1F3FC","image":"1f469-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fc.png","sheet_x":21,"sheet_y":10,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FD":{"unified":"1F469-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FD","non_qualified":"1F469-1F3FB-200D-2764-200D-1F48B-200D-1F469-1F3FD","image":"1f469-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fd.png","sheet_x":21,"sheet_y":11,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FE":{"unified":"1F469-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FE","non_qualified":"1F469-1F3FB-200D-2764-200D-1F48B-200D-1F469-1F3FE","image":"1f469-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fe.png","sheet_x":21,"sheet_y":12,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FF":{"unified":"1F469-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FF","non_qualified":"1F469-1F3FB-200D-2764-200D-1F48B-200D-1F469-1F3FF","image":"1f469-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3ff.png","sheet_x":21,"sheet_y":13,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FB":{"unified":"1F469-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FB","non_qualified":"1F469-1F3FC-200D-2764-200D-1F48B-200D-1F469-1F3FB","image":"1f469-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fb.png","sheet_x":21,"sheet_y":14,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FC":{"unified":"1F469-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FC","non_qualified":"1F469-1F3FC-200D-2764-200D-1F48B-200D-1F469-1F3FC","image":"1f469-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fc.png","sheet_x":21,"sheet_y":15,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FD":{"unified":"1F469-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FD","non_qualified":"1F469-1F3FC-200D-2764-200D-1F48B-200D-1F469-1F3FD","image":"1f469-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fd.png","sheet_x":21,"sheet_y":16,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FE":{"unified":"1F469-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FE","non_qualified":"1F469-1F3FC-200D-2764-200D-1F48B-200D-1F469-1F3FE","image":"1f469-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fe.png","sheet_x":21,"sheet_y":17,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FF":{"unified":"1F469-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FF","non_qualified":"1F469-1F3FC-200D-2764-200D-1F48B-200D-1F469-1F3FF","image":"1f469-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3ff.png","sheet_x":21,"sheet_y":18,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FB":{"unified":"1F469-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FB","non_qualified":"1F469-1F3FD-200D-2764-200D-1F48B-200D-1F469-1F3FB","image":"1f469-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fb.png","sheet_x":21,"sheet_y":19,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FC":{"unified":"1F469-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FC","non_qualified":"1F469-1F3FD-200D-2764-200D-1F48B-200D-1F469-1F3FC","image":"1f469-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fc.png","sheet_x":21,"sheet_y":20,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FD":{"unified":"1F469-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FD","non_qualified":"1F469-1F3FD-200D-2764-200D-1F48B-200D-1F469-1F3FD","image":"1f469-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fd.png","sheet_x":21,"sheet_y":21,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FE":{"unified":"1F469-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FE","non_qualified":"1F469-1F3FD-200D-2764-200D-1F48B-200D-1F469-1F3FE","image":"1f469-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fe.png","sheet_x":21,"sheet_y":22,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FF":{"unified":"1F469-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FF","non_qualified":"1F469-1F3FD-200D-2764-200D-1F48B-200D-1F469-1F3FF","image":"1f469-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3ff.png","sheet_x":21,"sheet_y":23,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FB":{"unified":"1F469-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FB","non_qualified":"1F469-1F3FE-200D-2764-200D-1F48B-200D-1F469-1F3FB","image":"1f469-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fb.png","sheet_x":21,"sheet_y":24,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FC":{"unified":"1F469-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FC","non_qualified":"1F469-1F3FE-200D-2764-200D-1F48B-200D-1F469-1F3FC","image":"1f469-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fc.png","sheet_x":21,"sheet_y":25,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FD":{"unified":"1F469-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FD","non_qualified":"1F469-1F3FE-200D-2764-200D-1F48B-200D-1F469-1F3FD","image":"1f469-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fd.png","sheet_x":21,"sheet_y":26,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FE":{"unified":"1F469-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FE","non_qualified":"1F469-1F3FE-200D-2764-200D-1F48B-200D-1F469-1F3FE","image":"1f469-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fe.png","sheet_x":21,"sheet_y":27,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FF":{"unified":"1F469-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FF","non_qualified":"1F469-1F3FE-200D-2764-200D-1F48B-200D-1F469-1F3FF","image":"1f469-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3ff.png","sheet_x":21,"sheet_y":28,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FB":{"unified":"1F469-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FB","non_qualified":"1F469-1F3FF-200D-2764-200D-1F48B-200D-1F469-1F3FB","image":"1f469-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fb.png","sheet_x":21,"sheet_y":29,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FC":{"unified":"1F469-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FC","non_qualified":"1F469-1F3FF-200D-2764-200D-1F48B-200D-1F469-1F3FC","image":"1f469-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fc.png","sheet_x":21,"sheet_y":30,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FD":{"unified":"1F469-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FD","non_qualified":"1F469-1F3FF-200D-2764-200D-1F48B-200D-1F469-1F3FD","image":"1f469-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fd.png","sheet_x":21,"sheet_y":31,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FE":{"unified":"1F469-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FE","non_qualified":"1F469-1F3FF-200D-2764-200D-1F48B-200D-1F469-1F3FE","image":"1f469-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fe.png","sheet_x":21,"sheet_y":32,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FF":{"unified":"1F469-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FF","non_qualified":"1F469-1F3FF-200D-2764-200D-1F48B-200D-1F469-1F3FF","image":"1f469-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3ff.png","sheet_x":21,"sheet_y":33,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Kiss: Woman, Woman","b":"1F469-200D-2764-FE0F-200D-1F48B-200D-1F469","c":"1F469-200D-2764-200D-1F48B-200D-1F469","d":true,"e":true,"f":true,"h":true,"j":["kiss_woman_woman","pair","valentines","love","like","dating","marriage"],"k":[21,8],"o":2},"couple_with_heart":{"subcategory":"family","skin_variations":{"1F3FB":{"unified":"1F491-1F3FB","non_qualified":null,"image":"1f491-1f3fb.png","sheet_x":27,"sheet_y":9,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F491-1F3FC","non_qualified":null,"image":"1f491-1f3fc.png","sheet_x":27,"sheet_y":10,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F491-1F3FD","non_qualified":null,"image":"1f491-1f3fd.png","sheet_x":27,"sheet_y":11,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F491-1F3FE","non_qualified":null,"image":"1f491-1f3fe.png","sheet_x":27,"sheet_y":12,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F491-1F3FF","non_qualified":null,"image":"1f491-1f3ff.png","sheet_x":27,"sheet_y":13,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FC":{"unified":"1F9D1-1F3FB-200D-2764-FE0F-200D-1F9D1-1F3FC","non_qualified":"1F9D1-1F3FB-200D-2764-200D-1F9D1-1F3FC","image":"1f9d1-1f3fb-200d-2764-fe0f-200d-1f9d1-1f3fc.png","sheet_x":27,"sheet_y":14,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FD":{"unified":"1F9D1-1F3FB-200D-2764-FE0F-200D-1F9D1-1F3FD","non_qualified":"1F9D1-1F3FB-200D-2764-200D-1F9D1-1F3FD","image":"1f9d1-1f3fb-200d-2764-fe0f-200d-1f9d1-1f3fd.png","sheet_x":27,"sheet_y":15,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FE":{"unified":"1F9D1-1F3FB-200D-2764-FE0F-200D-1F9D1-1F3FE","non_qualified":"1F9D1-1F3FB-200D-2764-200D-1F9D1-1F3FE","image":"1f9d1-1f3fb-200d-2764-fe0f-200d-1f9d1-1f3fe.png","sheet_x":27,"sheet_y":16,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FF":{"unified":"1F9D1-1F3FB-200D-2764-FE0F-200D-1F9D1-1F3FF","non_qualified":"1F9D1-1F3FB-200D-2764-200D-1F9D1-1F3FF","image":"1f9d1-1f3fb-200d-2764-fe0f-200d-1f9d1-1f3ff.png","sheet_x":27,"sheet_y":17,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FB":{"unified":"1F9D1-1F3FC-200D-2764-FE0F-200D-1F9D1-1F3FB","non_qualified":"1F9D1-1F3FC-200D-2764-200D-1F9D1-1F3FB","image":"1f9d1-1f3fc-200d-2764-fe0f-200d-1f9d1-1f3fb.png","sheet_x":27,"sheet_y":18,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FD":{"unified":"1F9D1-1F3FC-200D-2764-FE0F-200D-1F9D1-1F3FD","non_qualified":"1F9D1-1F3FC-200D-2764-200D-1F9D1-1F3FD","image":"1f9d1-1f3fc-200d-2764-fe0f-200d-1f9d1-1f3fd.png","sheet_x":27,"sheet_y":19,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FE":{"unified":"1F9D1-1F3FC-200D-2764-FE0F-200D-1F9D1-1F3FE","non_qualified":"1F9D1-1F3FC-200D-2764-200D-1F9D1-1F3FE","image":"1f9d1-1f3fc-200d-2764-fe0f-200d-1f9d1-1f3fe.png","sheet_x":27,"sheet_y":20,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FF":{"unified":"1F9D1-1F3FC-200D-2764-FE0F-200D-1F9D1-1F3FF","non_qualified":"1F9D1-1F3FC-200D-2764-200D-1F9D1-1F3FF","image":"1f9d1-1f3fc-200d-2764-fe0f-200d-1f9d1-1f3ff.png","sheet_x":27,"sheet_y":21,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FB":{"unified":"1F9D1-1F3FD-200D-2764-FE0F-200D-1F9D1-1F3FB","non_qualified":"1F9D1-1F3FD-200D-2764-200D-1F9D1-1F3FB","image":"1f9d1-1f3fd-200d-2764-fe0f-200d-1f9d1-1f3fb.png","sheet_x":27,"sheet_y":22,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FC":{"unified":"1F9D1-1F3FD-200D-2764-FE0F-200D-1F9D1-1F3FC","non_qualified":"1F9D1-1F3FD-200D-2764-200D-1F9D1-1F3FC","image":"1f9d1-1f3fd-200d-2764-fe0f-200d-1f9d1-1f3fc.png","sheet_x":27,"sheet_y":23,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FE":{"unified":"1F9D1-1F3FD-200D-2764-FE0F-200D-1F9D1-1F3FE","non_qualified":"1F9D1-1F3FD-200D-2764-200D-1F9D1-1F3FE","image":"1f9d1-1f3fd-200d-2764-fe0f-200d-1f9d1-1f3fe.png","sheet_x":27,"sheet_y":24,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FF":{"unified":"1F9D1-1F3FD-200D-2764-FE0F-200D-1F9D1-1F3FF","non_qualified":"1F9D1-1F3FD-200D-2764-200D-1F9D1-1F3FF","image":"1f9d1-1f3fd-200d-2764-fe0f-200d-1f9d1-1f3ff.png","sheet_x":27,"sheet_y":25,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FB":{"unified":"1F9D1-1F3FE-200D-2764-FE0F-200D-1F9D1-1F3FB","non_qualified":"1F9D1-1F3FE-200D-2764-200D-1F9D1-1F3FB","image":"1f9d1-1f3fe-200d-2764-fe0f-200d-1f9d1-1f3fb.png","sheet_x":27,"sheet_y":26,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FC":{"unified":"1F9D1-1F3FE-200D-2764-FE0F-200D-1F9D1-1F3FC","non_qualified":"1F9D1-1F3FE-200D-2764-200D-1F9D1-1F3FC","image":"1f9d1-1f3fe-200d-2764-fe0f-200d-1f9d1-1f3fc.png","sheet_x":27,"sheet_y":27,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FD":{"unified":"1F9D1-1F3FE-200D-2764-FE0F-200D-1F9D1-1F3FD","non_qualified":"1F9D1-1F3FE-200D-2764-200D-1F9D1-1F3FD","image":"1f9d1-1f3fe-200d-2764-fe0f-200d-1f9d1-1f3fd.png","sheet_x":27,"sheet_y":28,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FF":{"unified":"1F9D1-1F3FE-200D-2764-FE0F-200D-1F9D1-1F3FF","non_qualified":"1F9D1-1F3FE-200D-2764-200D-1F9D1-1F3FF","image":"1f9d1-1f3fe-200d-2764-fe0f-200d-1f9d1-1f3ff.png","sheet_x":27,"sheet_y":29,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FB":{"unified":"1F9D1-1F3FF-200D-2764-FE0F-200D-1F9D1-1F3FB","non_qualified":"1F9D1-1F3FF-200D-2764-200D-1F9D1-1F3FB","image":"1f9d1-1f3ff-200d-2764-fe0f-200d-1f9d1-1f3fb.png","sheet_x":27,"sheet_y":30,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FC":{"unified":"1F9D1-1F3FF-200D-2764-FE0F-200D-1F9D1-1F3FC","non_qualified":"1F9D1-1F3FF-200D-2764-200D-1F9D1-1F3FC","image":"1f9d1-1f3ff-200d-2764-fe0f-200d-1f9d1-1f3fc.png","sheet_x":27,"sheet_y":31,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FD":{"unified":"1F9D1-1F3FF-200D-2764-FE0F-200D-1F9D1-1F3FD","non_qualified":"1F9D1-1F3FF-200D-2764-200D-1F9D1-1F3FD","image":"1f9d1-1f3ff-200d-2764-fe0f-200d-1f9d1-1f3fd.png","sheet_x":27,"sheet_y":32,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FE":{"unified":"1F9D1-1F3FF-200D-2764-FE0F-200D-1F9D1-1F3FE","non_qualified":"1F9D1-1F3FF-200D-2764-200D-1F9D1-1F3FE","image":"1f9d1-1f3ff-200d-2764-fe0f-200d-1f9d1-1f3fe.png","sheet_x":27,"sheet_y":33,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Couple with Heart","b":"1F491","d":true,"e":true,"f":true,"h":true,"j":["couple_with_heart","pair","love","like","affection","human","dating","valentines","marriage"],"k":[27,8],"o":0},"woman-heart-man":{"subcategory":"family","skin_variations":{"1F3FB-1F3FB":{"unified":"1F469-1F3FB-200D-2764-FE0F-200D-1F468-1F3FB","non_qualified":"1F469-1F3FB-200D-2764-200D-1F468-1F3FB","image":"1f469-1f3fb-200d-2764-fe0f-200d-1f468-1f3fb.png","sheet_x":19,"sheet_y":53,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FC":{"unified":"1F469-1F3FB-200D-2764-FE0F-200D-1F468-1F3FC","non_qualified":"1F469-1F3FB-200D-2764-200D-1F468-1F3FC","image":"1f469-1f3fb-200d-2764-fe0f-200d-1f468-1f3fc.png","sheet_x":19,"sheet_y":54,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FD":{"unified":"1F469-1F3FB-200D-2764-FE0F-200D-1F468-1F3FD","non_qualified":"1F469-1F3FB-200D-2764-200D-1F468-1F3FD","image":"1f469-1f3fb-200d-2764-fe0f-200d-1f468-1f3fd.png","sheet_x":19,"sheet_y":55,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FE":{"unified":"1F469-1F3FB-200D-2764-FE0F-200D-1F468-1F3FE","non_qualified":"1F469-1F3FB-200D-2764-200D-1F468-1F3FE","image":"1f469-1f3fb-200d-2764-fe0f-200d-1f468-1f3fe.png","sheet_x":19,"sheet_y":56,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FF":{"unified":"1F469-1F3FB-200D-2764-FE0F-200D-1F468-1F3FF","non_qualified":"1F469-1F3FB-200D-2764-200D-1F468-1F3FF","image":"1f469-1f3fb-200d-2764-fe0f-200d-1f468-1f3ff.png","sheet_x":19,"sheet_y":57,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FB":{"unified":"1F469-1F3FC-200D-2764-FE0F-200D-1F468-1F3FB","non_qualified":"1F469-1F3FC-200D-2764-200D-1F468-1F3FB","image":"1f469-1f3fc-200d-2764-fe0f-200d-1f468-1f3fb.png","sheet_x":19,"sheet_y":58,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FC":{"unified":"1F469-1F3FC-200D-2764-FE0F-200D-1F468-1F3FC","non_qualified":"1F469-1F3FC-200D-2764-200D-1F468-1F3FC","image":"1f469-1f3fc-200d-2764-fe0f-200d-1f468-1f3fc.png","sheet_x":19,"sheet_y":59,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FD":{"unified":"1F469-1F3FC-200D-2764-FE0F-200D-1F468-1F3FD","non_qualified":"1F469-1F3FC-200D-2764-200D-1F468-1F3FD","image":"1f469-1f3fc-200d-2764-fe0f-200d-1f468-1f3fd.png","sheet_x":19,"sheet_y":60,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FE":{"unified":"1F469-1F3FC-200D-2764-FE0F-200D-1F468-1F3FE","non_qualified":"1F469-1F3FC-200D-2764-200D-1F468-1F3FE","image":"1f469-1f3fc-200d-2764-fe0f-200d-1f468-1f3fe.png","sheet_x":20,"sheet_y":0,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FF":{"unified":"1F469-1F3FC-200D-2764-FE0F-200D-1F468-1F3FF","non_qualified":"1F469-1F3FC-200D-2764-200D-1F468-1F3FF","image":"1f469-1f3fc-200d-2764-fe0f-200d-1f468-1f3ff.png","sheet_x":20,"sheet_y":1,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FB":{"unified":"1F469-1F3FD-200D-2764-FE0F-200D-1F468-1F3FB","non_qualified":"1F469-1F3FD-200D-2764-200D-1F468-1F3FB","image":"1f469-1f3fd-200d-2764-fe0f-200d-1f468-1f3fb.png","sheet_x":20,"sheet_y":2,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FC":{"unified":"1F469-1F3FD-200D-2764-FE0F-200D-1F468-1F3FC","non_qualified":"1F469-1F3FD-200D-2764-200D-1F468-1F3FC","image":"1f469-1f3fd-200d-2764-fe0f-200d-1f468-1f3fc.png","sheet_x":20,"sheet_y":3,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FD":{"unified":"1F469-1F3FD-200D-2764-FE0F-200D-1F468-1F3FD","non_qualified":"1F469-1F3FD-200D-2764-200D-1F468-1F3FD","image":"1f469-1f3fd-200d-2764-fe0f-200d-1f468-1f3fd.png","sheet_x":20,"sheet_y":4,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FE":{"unified":"1F469-1F3FD-200D-2764-FE0F-200D-1F468-1F3FE","non_qualified":"1F469-1F3FD-200D-2764-200D-1F468-1F3FE","image":"1f469-1f3fd-200d-2764-fe0f-200d-1f468-1f3fe.png","sheet_x":20,"sheet_y":5,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FF":{"unified":"1F469-1F3FD-200D-2764-FE0F-200D-1F468-1F3FF","non_qualified":"1F469-1F3FD-200D-2764-200D-1F468-1F3FF","image":"1f469-1f3fd-200d-2764-fe0f-200d-1f468-1f3ff.png","sheet_x":20,"sheet_y":6,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FB":{"unified":"1F469-1F3FE-200D-2764-FE0F-200D-1F468-1F3FB","non_qualified":"1F469-1F3FE-200D-2764-200D-1F468-1F3FB","image":"1f469-1f3fe-200d-2764-fe0f-200d-1f468-1f3fb.png","sheet_x":20,"sheet_y":7,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FC":{"unified":"1F469-1F3FE-200D-2764-FE0F-200D-1F468-1F3FC","non_qualified":"1F469-1F3FE-200D-2764-200D-1F468-1F3FC","image":"1f469-1f3fe-200d-2764-fe0f-200d-1f468-1f3fc.png","sheet_x":20,"sheet_y":8,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FD":{"unified":"1F469-1F3FE-200D-2764-FE0F-200D-1F468-1F3FD","non_qualified":"1F469-1F3FE-200D-2764-200D-1F468-1F3FD","image":"1f469-1f3fe-200d-2764-fe0f-200d-1f468-1f3fd.png","sheet_x":20,"sheet_y":9,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FE":{"unified":"1F469-1F3FE-200D-2764-FE0F-200D-1F468-1F3FE","non_qualified":"1F469-1F3FE-200D-2764-200D-1F468-1F3FE","image":"1f469-1f3fe-200d-2764-fe0f-200d-1f468-1f3fe.png","sheet_x":20,"sheet_y":10,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FF":{"unified":"1F469-1F3FE-200D-2764-FE0F-200D-1F468-1F3FF","non_qualified":"1F469-1F3FE-200D-2764-200D-1F468-1F3FF","image":"1f469-1f3fe-200d-2764-fe0f-200d-1f468-1f3ff.png","sheet_x":20,"sheet_y":11,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FB":{"unified":"1F469-1F3FF-200D-2764-FE0F-200D-1F468-1F3FB","non_qualified":"1F469-1F3FF-200D-2764-200D-1F468-1F3FB","image":"1f469-1f3ff-200d-2764-fe0f-200d-1f468-1f3fb.png","sheet_x":20,"sheet_y":12,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FC":{"unified":"1F469-1F3FF-200D-2764-FE0F-200D-1F468-1F3FC","non_qualified":"1F469-1F3FF-200D-2764-200D-1F468-1F3FC","image":"1f469-1f3ff-200d-2764-fe0f-200d-1f468-1f3fc.png","sheet_x":20,"sheet_y":13,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FD":{"unified":"1F469-1F3FF-200D-2764-FE0F-200D-1F468-1F3FD","non_qualified":"1F469-1F3FF-200D-2764-200D-1F468-1F3FD","image":"1f469-1f3ff-200d-2764-fe0f-200d-1f468-1f3fd.png","sheet_x":20,"sheet_y":14,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FE":{"unified":"1F469-1F3FF-200D-2764-FE0F-200D-1F468-1F3FE","non_qualified":"1F469-1F3FF-200D-2764-200D-1F468-1F3FE","image":"1f469-1f3ff-200d-2764-fe0f-200d-1f468-1f3fe.png","sheet_x":20,"sheet_y":15,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FF":{"unified":"1F469-1F3FF-200D-2764-FE0F-200D-1F468-1F3FF","non_qualified":"1F469-1F3FF-200D-2764-200D-1F468-1F3FF","image":"1f469-1f3ff-200d-2764-fe0f-200d-1f468-1f3ff.png","sheet_x":20,"sheet_y":16,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Couple with Heart: Woman, Man","b":"1F469-200D-2764-FE0F-200D-1F468","c":"1F469-200D-2764-200D-1F468","d":true,"e":true,"f":true,"h":true,"j":["couple_with_heart_woman_man","love"],"k":[19,52],"o":2},"man-heart-man":{"subcategory":"family","skin_variations":{"1F3FB-1F3FB":{"unified":"1F468-1F3FB-200D-2764-FE0F-200D-1F468-1F3FB","non_qualified":"1F468-1F3FB-200D-2764-200D-1F468-1F3FB","image":"1f468-1f3fb-200d-2764-fe0f-200d-1f468-1f3fb.png","sheet_x":16,"sheet_y":24,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FC":{"unified":"1F468-1F3FB-200D-2764-FE0F-200D-1F468-1F3FC","non_qualified":"1F468-1F3FB-200D-2764-200D-1F468-1F3FC","image":"1f468-1f3fb-200d-2764-fe0f-200d-1f468-1f3fc.png","sheet_x":16,"sheet_y":25,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FD":{"unified":"1F468-1F3FB-200D-2764-FE0F-200D-1F468-1F3FD","non_qualified":"1F468-1F3FB-200D-2764-200D-1F468-1F3FD","image":"1f468-1f3fb-200d-2764-fe0f-200d-1f468-1f3fd.png","sheet_x":16,"sheet_y":26,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FE":{"unified":"1F468-1F3FB-200D-2764-FE0F-200D-1F468-1F3FE","non_qualified":"1F468-1F3FB-200D-2764-200D-1F468-1F3FE","image":"1f468-1f3fb-200d-2764-fe0f-200d-1f468-1f3fe.png","sheet_x":16,"sheet_y":27,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FF":{"unified":"1F468-1F3FB-200D-2764-FE0F-200D-1F468-1F3FF","non_qualified":"1F468-1F3FB-200D-2764-200D-1F468-1F3FF","image":"1f468-1f3fb-200d-2764-fe0f-200d-1f468-1f3ff.png","sheet_x":16,"sheet_y":28,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FB":{"unified":"1F468-1F3FC-200D-2764-FE0F-200D-1F468-1F3FB","non_qualified":"1F468-1F3FC-200D-2764-200D-1F468-1F3FB","image":"1f468-1f3fc-200d-2764-fe0f-200d-1f468-1f3fb.png","sheet_x":16,"sheet_y":29,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FC":{"unified":"1F468-1F3FC-200D-2764-FE0F-200D-1F468-1F3FC","non_qualified":"1F468-1F3FC-200D-2764-200D-1F468-1F3FC","image":"1f468-1f3fc-200d-2764-fe0f-200d-1f468-1f3fc.png","sheet_x":16,"sheet_y":30,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FD":{"unified":"1F468-1F3FC-200D-2764-FE0F-200D-1F468-1F3FD","non_qualified":"1F468-1F3FC-200D-2764-200D-1F468-1F3FD","image":"1f468-1f3fc-200d-2764-fe0f-200d-1f468-1f3fd.png","sheet_x":16,"sheet_y":31,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FE":{"unified":"1F468-1F3FC-200D-2764-FE0F-200D-1F468-1F3FE","non_qualified":"1F468-1F3FC-200D-2764-200D-1F468-1F3FE","image":"1f468-1f3fc-200d-2764-fe0f-200d-1f468-1f3fe.png","sheet_x":16,"sheet_y":32,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FF":{"unified":"1F468-1F3FC-200D-2764-FE0F-200D-1F468-1F3FF","non_qualified":"1F468-1F3FC-200D-2764-200D-1F468-1F3FF","image":"1f468-1f3fc-200d-2764-fe0f-200d-1f468-1f3ff.png","sheet_x":16,"sheet_y":33,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FB":{"unified":"1F468-1F3FD-200D-2764-FE0F-200D-1F468-1F3FB","non_qualified":"1F468-1F3FD-200D-2764-200D-1F468-1F3FB","image":"1f468-1f3fd-200d-2764-fe0f-200d-1f468-1f3fb.png","sheet_x":16,"sheet_y":34,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FC":{"unified":"1F468-1F3FD-200D-2764-FE0F-200D-1F468-1F3FC","non_qualified":"1F468-1F3FD-200D-2764-200D-1F468-1F3FC","image":"1f468-1f3fd-200d-2764-fe0f-200d-1f468-1f3fc.png","sheet_x":16,"sheet_y":35,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FD":{"unified":"1F468-1F3FD-200D-2764-FE0F-200D-1F468-1F3FD","non_qualified":"1F468-1F3FD-200D-2764-200D-1F468-1F3FD","image":"1f468-1f3fd-200d-2764-fe0f-200d-1f468-1f3fd.png","sheet_x":16,"sheet_y":36,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FE":{"unified":"1F468-1F3FD-200D-2764-FE0F-200D-1F468-1F3FE","non_qualified":"1F468-1F3FD-200D-2764-200D-1F468-1F3FE","image":"1f468-1f3fd-200d-2764-fe0f-200d-1f468-1f3fe.png","sheet_x":16,"sheet_y":37,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FF":{"unified":"1F468-1F3FD-200D-2764-FE0F-200D-1F468-1F3FF","non_qualified":"1F468-1F3FD-200D-2764-200D-1F468-1F3FF","image":"1f468-1f3fd-200d-2764-fe0f-200d-1f468-1f3ff.png","sheet_x":16,"sheet_y":38,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FB":{"unified":"1F468-1F3FE-200D-2764-FE0F-200D-1F468-1F3FB","non_qualified":"1F468-1F3FE-200D-2764-200D-1F468-1F3FB","image":"1f468-1f3fe-200d-2764-fe0f-200d-1f468-1f3fb.png","sheet_x":16,"sheet_y":39,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FC":{"unified":"1F468-1F3FE-200D-2764-FE0F-200D-1F468-1F3FC","non_qualified":"1F468-1F3FE-200D-2764-200D-1F468-1F3FC","image":"1f468-1f3fe-200d-2764-fe0f-200d-1f468-1f3fc.png","sheet_x":16,"sheet_y":40,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FD":{"unified":"1F468-1F3FE-200D-2764-FE0F-200D-1F468-1F3FD","non_qualified":"1F468-1F3FE-200D-2764-200D-1F468-1F3FD","image":"1f468-1f3fe-200d-2764-fe0f-200d-1f468-1f3fd.png","sheet_x":16,"sheet_y":41,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FE":{"unified":"1F468-1F3FE-200D-2764-FE0F-200D-1F468-1F3FE","non_qualified":"1F468-1F3FE-200D-2764-200D-1F468-1F3FE","image":"1f468-1f3fe-200d-2764-fe0f-200d-1f468-1f3fe.png","sheet_x":16,"sheet_y":42,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FF":{"unified":"1F468-1F3FE-200D-2764-FE0F-200D-1F468-1F3FF","non_qualified":"1F468-1F3FE-200D-2764-200D-1F468-1F3FF","image":"1f468-1f3fe-200d-2764-fe0f-200d-1f468-1f3ff.png","sheet_x":16,"sheet_y":43,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FB":{"unified":"1F468-1F3FF-200D-2764-FE0F-200D-1F468-1F3FB","non_qualified":"1F468-1F3FF-200D-2764-200D-1F468-1F3FB","image":"1f468-1f3ff-200d-2764-fe0f-200d-1f468-1f3fb.png","sheet_x":16,"sheet_y":44,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FC":{"unified":"1F468-1F3FF-200D-2764-FE0F-200D-1F468-1F3FC","non_qualified":"1F468-1F3FF-200D-2764-200D-1F468-1F3FC","image":"1f468-1f3ff-200d-2764-fe0f-200d-1f468-1f3fc.png","sheet_x":16,"sheet_y":45,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FD":{"unified":"1F468-1F3FF-200D-2764-FE0F-200D-1F468-1F3FD","non_qualified":"1F468-1F3FF-200D-2764-200D-1F468-1F3FD","image":"1f468-1f3ff-200d-2764-fe0f-200d-1f468-1f3fd.png","sheet_x":16,"sheet_y":46,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FE":{"unified":"1F468-1F3FF-200D-2764-FE0F-200D-1F468-1F3FE","non_qualified":"1F468-1F3FF-200D-2764-200D-1F468-1F3FE","image":"1f468-1f3ff-200d-2764-fe0f-200d-1f468-1f3fe.png","sheet_x":16,"sheet_y":47,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FF":{"unified":"1F468-1F3FF-200D-2764-FE0F-200D-1F468-1F3FF","non_qualified":"1F468-1F3FF-200D-2764-200D-1F468-1F3FF","image":"1f468-1f3ff-200d-2764-fe0f-200d-1f468-1f3ff.png","sheet_x":16,"sheet_y":48,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Couple with Heart: Man, Man","b":"1F468-200D-2764-FE0F-200D-1F468","c":"1F468-200D-2764-200D-1F468","d":true,"e":true,"f":true,"h":true,"j":["couple_with_heart_man_man","pair","love","like","affection","human","dating","valentines","marriage"],"k":[16,23],"o":2},"woman-heart-woman":{"subcategory":"family","skin_variations":{"1F3FB-1F3FB":{"unified":"1F469-1F3FB-200D-2764-FE0F-200D-1F469-1F3FB","non_qualified":"1F469-1F3FB-200D-2764-200D-1F469-1F3FB","image":"1f469-1f3fb-200d-2764-fe0f-200d-1f469-1f3fb.png","sheet_x":20,"sheet_y":18,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FC":{"unified":"1F469-1F3FB-200D-2764-FE0F-200D-1F469-1F3FC","non_qualified":"1F469-1F3FB-200D-2764-200D-1F469-1F3FC","image":"1f469-1f3fb-200d-2764-fe0f-200d-1f469-1f3fc.png","sheet_x":20,"sheet_y":19,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FD":{"unified":"1F469-1F3FB-200D-2764-FE0F-200D-1F469-1F3FD","non_qualified":"1F469-1F3FB-200D-2764-200D-1F469-1F3FD","image":"1f469-1f3fb-200d-2764-fe0f-200d-1f469-1f3fd.png","sheet_x":20,"sheet_y":20,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FE":{"unified":"1F469-1F3FB-200D-2764-FE0F-200D-1F469-1F3FE","non_qualified":"1F469-1F3FB-200D-2764-200D-1F469-1F3FE","image":"1f469-1f3fb-200d-2764-fe0f-200d-1f469-1f3fe.png","sheet_x":20,"sheet_y":21,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FF":{"unified":"1F469-1F3FB-200D-2764-FE0F-200D-1F469-1F3FF","non_qualified":"1F469-1F3FB-200D-2764-200D-1F469-1F3FF","image":"1f469-1f3fb-200d-2764-fe0f-200d-1f469-1f3ff.png","sheet_x":20,"sheet_y":22,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FB":{"unified":"1F469-1F3FC-200D-2764-FE0F-200D-1F469-1F3FB","non_qualified":"1F469-1F3FC-200D-2764-200D-1F469-1F3FB","image":"1f469-1f3fc-200d-2764-fe0f-200d-1f469-1f3fb.png","sheet_x":20,"sheet_y":23,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FC":{"unified":"1F469-1F3FC-200D-2764-FE0F-200D-1F469-1F3FC","non_qualified":"1F469-1F3FC-200D-2764-200D-1F469-1F3FC","image":"1f469-1f3fc-200d-2764-fe0f-200d-1f469-1f3fc.png","sheet_x":20,"sheet_y":24,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FD":{"unified":"1F469-1F3FC-200D-2764-FE0F-200D-1F469-1F3FD","non_qualified":"1F469-1F3FC-200D-2764-200D-1F469-1F3FD","image":"1f469-1f3fc-200d-2764-fe0f-200d-1f469-1f3fd.png","sheet_x":20,"sheet_y":25,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FE":{"unified":"1F469-1F3FC-200D-2764-FE0F-200D-1F469-1F3FE","non_qualified":"1F469-1F3FC-200D-2764-200D-1F469-1F3FE","image":"1f469-1f3fc-200d-2764-fe0f-200d-1f469-1f3fe.png","sheet_x":20,"sheet_y":26,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FF":{"unified":"1F469-1F3FC-200D-2764-FE0F-200D-1F469-1F3FF","non_qualified":"1F469-1F3FC-200D-2764-200D-1F469-1F3FF","image":"1f469-1f3fc-200d-2764-fe0f-200d-1f469-1f3ff.png","sheet_x":20,"sheet_y":27,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FB":{"unified":"1F469-1F3FD-200D-2764-FE0F-200D-1F469-1F3FB","non_qualified":"1F469-1F3FD-200D-2764-200D-1F469-1F3FB","image":"1f469-1f3fd-200d-2764-fe0f-200d-1f469-1f3fb.png","sheet_x":20,"sheet_y":28,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FC":{"unified":"1F469-1F3FD-200D-2764-FE0F-200D-1F469-1F3FC","non_qualified":"1F469-1F3FD-200D-2764-200D-1F469-1F3FC","image":"1f469-1f3fd-200d-2764-fe0f-200d-1f469-1f3fc.png","sheet_x":20,"sheet_y":29,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FD":{"unified":"1F469-1F3FD-200D-2764-FE0F-200D-1F469-1F3FD","non_qualified":"1F469-1F3FD-200D-2764-200D-1F469-1F3FD","image":"1f469-1f3fd-200d-2764-fe0f-200d-1f469-1f3fd.png","sheet_x":20,"sheet_y":30,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FE":{"unified":"1F469-1F3FD-200D-2764-FE0F-200D-1F469-1F3FE","non_qualified":"1F469-1F3FD-200D-2764-200D-1F469-1F3FE","image":"1f469-1f3fd-200d-2764-fe0f-200d-1f469-1f3fe.png","sheet_x":20,"sheet_y":31,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FF":{"unified":"1F469-1F3FD-200D-2764-FE0F-200D-1F469-1F3FF","non_qualified":"1F469-1F3FD-200D-2764-200D-1F469-1F3FF","image":"1f469-1f3fd-200d-2764-fe0f-200d-1f469-1f3ff.png","sheet_x":20,"sheet_y":32,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FB":{"unified":"1F469-1F3FE-200D-2764-FE0F-200D-1F469-1F3FB","non_qualified":"1F469-1F3FE-200D-2764-200D-1F469-1F3FB","image":"1f469-1f3fe-200d-2764-fe0f-200d-1f469-1f3fb.png","sheet_x":20,"sheet_y":33,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FC":{"unified":"1F469-1F3FE-200D-2764-FE0F-200D-1F469-1F3FC","non_qualified":"1F469-1F3FE-200D-2764-200D-1F469-1F3FC","image":"1f469-1f3fe-200d-2764-fe0f-200d-1f469-1f3fc.png","sheet_x":20,"sheet_y":34,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FD":{"unified":"1F469-1F3FE-200D-2764-FE0F-200D-1F469-1F3FD","non_qualified":"1F469-1F3FE-200D-2764-200D-1F469-1F3FD","image":"1f469-1f3fe-200d-2764-fe0f-200d-1f469-1f3fd.png","sheet_x":20,"sheet_y":35,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FE":{"unified":"1F469-1F3FE-200D-2764-FE0F-200D-1F469-1F3FE","non_qualified":"1F469-1F3FE-200D-2764-200D-1F469-1F3FE","image":"1f469-1f3fe-200d-2764-fe0f-200d-1f469-1f3fe.png","sheet_x":20,"sheet_y":36,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FF":{"unified":"1F469-1F3FE-200D-2764-FE0F-200D-1F469-1F3FF","non_qualified":"1F469-1F3FE-200D-2764-200D-1F469-1F3FF","image":"1f469-1f3fe-200d-2764-fe0f-200d-1f469-1f3ff.png","sheet_x":20,"sheet_y":37,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FB":{"unified":"1F469-1F3FF-200D-2764-FE0F-200D-1F469-1F3FB","non_qualified":"1F469-1F3FF-200D-2764-200D-1F469-1F3FB","image":"1f469-1f3ff-200d-2764-fe0f-200d-1f469-1f3fb.png","sheet_x":20,"sheet_y":38,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FC":{"unified":"1F469-1F3FF-200D-2764-FE0F-200D-1F469-1F3FC","non_qualified":"1F469-1F3FF-200D-2764-200D-1F469-1F3FC","image":"1f469-1f3ff-200d-2764-fe0f-200d-1f469-1f3fc.png","sheet_x":20,"sheet_y":39,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FD":{"unified":"1F469-1F3FF-200D-2764-FE0F-200D-1F469-1F3FD","non_qualified":"1F469-1F3FF-200D-2764-200D-1F469-1F3FD","image":"1f469-1f3ff-200d-2764-fe0f-200d-1f469-1f3fd.png","sheet_x":20,"sheet_y":40,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FE":{"unified":"1F469-1F3FF-200D-2764-FE0F-200D-1F469-1F3FE","non_qualified":"1F469-1F3FF-200D-2764-200D-1F469-1F3FE","image":"1f469-1f3ff-200d-2764-fe0f-200d-1f469-1f3fe.png","sheet_x":20,"sheet_y":41,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FF":{"unified":"1F469-1F3FF-200D-2764-FE0F-200D-1F469-1F3FF","non_qualified":"1F469-1F3FF-200D-2764-200D-1F469-1F3FF","image":"1f469-1f3ff-200d-2764-fe0f-200d-1f469-1f3ff.png","sheet_x":20,"sheet_y":42,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Couple with Heart: Woman, Woman","b":"1F469-200D-2764-FE0F-200D-1F469","c":"1F469-200D-2764-200D-1F469","d":true,"e":true,"f":true,"h":true,"j":["couple_with_heart_woman_woman","pair","love","like","affection","human","dating","valentines","marriage"],"k":[20,17],"o":2},"family":{"subcategory":"family","obsoleted_by":"1F468-200D-1F469-200D-1F466","a":"Family","b":"1F46A","d":true,"e":true,"f":true,"h":true,"j":["family","home","parents","child","mom","dad","father","mother","people","human"],"k":[21,40],"o":0},"man-woman-boy":{"subcategory":"family","obsoletes":"1F46A","a":"Family: Man, Woman, Boy","b":"1F468-200D-1F469-200D-1F466","d":true,"e":true,"f":true,"h":true,"j":["family_man_woman_boy","love"],"k":[14,44],"o":2},"man-woman-girl":{"subcategory":"family","a":"Family: Man, Woman, Girl","b":"1F468-200D-1F469-200D-1F467","d":true,"e":true,"f":true,"h":true,"j":["family_man_woman_girl","home","parents","people","human","child"],"k":[14,46],"o":2},"man-woman-girl-boy":{"subcategory":"family","a":"Family: Man, Woman, Girl, Boy","b":"1F468-200D-1F469-200D-1F467-200D-1F466","d":true,"e":true,"f":true,"h":true,"j":["family_man_woman_girl_boy","home","parents","people","human","children"],"k":[14,47],"o":2},"man-woman-boy-boy":{"subcategory":"family","a":"Family: Man, Woman, Boy, Boy","b":"1F468-200D-1F469-200D-1F466-200D-1F466","d":true,"e":true,"f":true,"h":true,"j":["family_man_woman_boy_boy","home","parents","people","human","children"],"k":[14,45],"o":2},"man-woman-girl-girl":{"subcategory":"family","a":"Family: Man, Woman, Girl, Girl","b":"1F468-200D-1F469-200D-1F467-200D-1F467","d":true,"e":true,"f":true,"h":true,"j":["family_man_woman_girl_girl","home","parents","people","human","children"],"k":[14,48],"o":2},"man-man-boy":{"subcategory":"family","a":"Family: Man, Man, Boy","b":"1F468-200D-1F468-200D-1F466","d":true,"e":true,"f":true,"h":true,"j":["family_man_man_boy","home","parents","people","human","children"],"k":[14,39],"o":2},"man-man-girl":{"subcategory":"family","a":"Family: Man, Man, Girl","b":"1F468-200D-1F468-200D-1F467","d":true,"e":true,"f":true,"h":true,"j":["family_man_man_girl","home","parents","people","human","children"],"k":[14,41],"o":2},"man-man-girl-boy":{"subcategory":"family","a":"Family: Man, Man, Girl, Boy","b":"1F468-200D-1F468-200D-1F467-200D-1F466","d":true,"e":true,"f":true,"h":true,"j":["family_man_man_girl_boy","home","parents","people","human","children"],"k":[14,42],"o":2},"man-man-boy-boy":{"subcategory":"family","a":"Family: Man, Man, Boy, Boy","b":"1F468-200D-1F468-200D-1F466-200D-1F466","d":true,"e":true,"f":true,"h":true,"j":["family_man_man_boy_boy","home","parents","people","human","children"],"k":[14,40],"o":2},"man-man-girl-girl":{"subcategory":"family","a":"Family: Man, Man, Girl, Girl","b":"1F468-200D-1F468-200D-1F467-200D-1F467","d":true,"e":true,"f":true,"h":true,"j":["family_man_man_girl_girl","home","parents","people","human","children"],"k":[14,43],"o":2},"woman-woman-boy":{"subcategory":"family","a":"Family: Woman, Woman, Boy","b":"1F469-200D-1F469-200D-1F466","d":true,"e":true,"f":true,"h":true,"j":["family_woman_woman_boy","home","parents","people","human","children"],"k":[18,12],"o":2},"woman-woman-girl":{"subcategory":"family","a":"Family: Woman, Woman, Girl","b":"1F469-200D-1F469-200D-1F467","d":true,"e":true,"f":true,"h":true,"j":["family_woman_woman_girl","home","parents","people","human","children"],"k":[18,14],"o":2},"woman-woman-girl-boy":{"subcategory":"family","a":"Family: Woman, Woman, Girl, Boy","b":"1F469-200D-1F469-200D-1F467-200D-1F466","d":true,"e":true,"f":true,"h":true,"j":["family_woman_woman_girl_boy","home","parents","people","human","children"],"k":[18,15],"o":2},"woman-woman-boy-boy":{"subcategory":"family","a":"Family: Woman, Woman, Boy, Boy","b":"1F469-200D-1F469-200D-1F466-200D-1F466","d":true,"e":true,"f":true,"h":true,"j":["family_woman_woman_boy_boy","home","parents","people","human","children"],"k":[18,13],"o":2},"woman-woman-girl-girl":{"subcategory":"family","a":"Family: Woman, Woman, Girl, Girl","b":"1F469-200D-1F469-200D-1F467-200D-1F467","d":true,"e":true,"f":true,"h":true,"j":["family_woman_woman_girl_girl","home","parents","people","human","children"],"k":[18,16],"o":2},"man-boy":{"subcategory":"family","a":"Family: Man, Boy","b":"1F468-200D-1F466","d":true,"e":true,"f":true,"h":true,"j":["family_man_boy","home","parent","people","human","child"],"k":[14,35],"o":4},"man-boy-boy":{"subcategory":"family","a":"Family: Man, Boy, Boy","b":"1F468-200D-1F466-200D-1F466","d":true,"e":true,"f":true,"h":true,"j":["family_man_boy_boy","home","parent","people","human","children"],"k":[14,34],"o":4},"man-girl":{"subcategory":"family","a":"Family: Man, Girl","b":"1F468-200D-1F467","d":true,"e":true,"f":true,"h":true,"j":["family_man_girl","home","parent","people","human","child"],"k":[14,38],"o":4},"man-girl-boy":{"subcategory":"family","a":"Family: Man, Girl, Boy","b":"1F468-200D-1F467-200D-1F466","d":true,"e":true,"f":true,"h":true,"j":["family_man_girl_boy","home","parent","people","human","children"],"k":[14,36],"o":4},"man-girl-girl":{"subcategory":"family","a":"Family: Man, Girl, Girl","b":"1F468-200D-1F467-200D-1F467","d":true,"e":true,"f":true,"h":true,"j":["family_man_girl_girl","home","parent","people","human","children"],"k":[14,37],"o":4},"woman-boy":{"subcategory":"family","a":"Family: Woman, Boy","b":"1F469-200D-1F466","d":true,"e":true,"f":true,"h":true,"j":["family_woman_boy","home","parent","people","human","child"],"k":[18,8],"o":4},"woman-boy-boy":{"subcategory":"family","a":"Family: Woman, Boy, Boy","b":"1F469-200D-1F466-200D-1F466","d":true,"e":true,"f":true,"h":true,"j":["family_woman_boy_boy","home","parent","people","human","children"],"k":[18,7],"o":4},"woman-girl":{"subcategory":"family","a":"Family: Woman, Girl","b":"1F469-200D-1F467","d":true,"e":true,"f":true,"h":true,"j":["family_woman_girl","home","parent","people","human","child"],"k":[18,11],"o":4},"woman-girl-boy":{"subcategory":"family","a":"Family: Woman, Girl, Boy","b":"1F469-200D-1F467-200D-1F466","d":true,"e":true,"f":true,"h":true,"j":["family_woman_girl_boy","home","parent","people","human","children"],"k":[18,9],"o":4},"woman-girl-girl":{"subcategory":"family","a":"Family: Woman, Girl, Girl","b":"1F469-200D-1F467-200D-1F467","d":true,"e":true,"f":true,"h":true,"j":["family_woman_girl_girl","home","parent","people","human","children"],"k":[18,10],"o":4},"speaking_head_in_silhouette":{"subcategory":"person-symbol","a":"Speaking Head","b":"1F5E3-FE0F","c":"1F5E3","d":true,"e":true,"f":true,"h":true,"j":["speaking_head","user","person","human","sing","say","talk"],"k":[32,11],"o":0},"bust_in_silhouette":{"subcategory":"person-symbol","a":"Bust in Silhouette","b":"1F464","d":true,"e":true,"f":true,"h":true,"j":["bust_in_silhouette","user","person","human"],"k":[13,33],"o":0},"busts_in_silhouette":{"subcategory":"person-symbol","a":"Busts in Silhouette","b":"1F465","d":true,"e":true,"f":true,"h":true,"j":["busts_in_silhouette","user","person","human","group","team"],"k":[13,34],"o":1},"people_hugging":{"subcategory":"person-symbol","a":"People Hugging","b":"1FAC2","d":true,"e":true,"f":true,"h":true,"j":["people hugging","care"],"k":[54,58],"o":13},"footprints":{"subcategory":"person-symbol","a":"Footprints","b":"1F463","d":true,"e":true,"f":true,"h":true,"j":["footprints","feet","tracking","walking","beach"],"k":[13,32],"o":0},"monkey_face":{"subcategory":"animal-mammal","a":"Monkey Face","b":"1F435","d":true,"e":true,"f":true,"h":true,"j":["monkey_face","animal","nature","circus"],"k":[11,41],"l":[":o)"],"o":0},"monkey":{"subcategory":"animal-mammal","a":"Monkey","b":"1F412","d":true,"e":true,"f":true,"h":true,"j":["monkey","animal","nature","banana","circus"],"k":[11,4],"o":0},"gorilla":{"subcategory":"animal-mammal","a":"Gorilla","b":"1F98D","d":true,"e":true,"f":true,"h":true,"j":["gorilla","animal","nature","circus"],"k":[44,33],"o":3},"orangutan":{"subcategory":"animal-mammal","a":"Orangutan","b":"1F9A7","d":true,"e":true,"f":true,"h":true,"j":["orangutan","animal"],"k":[44,59],"o":12},"dog":{"subcategory":"animal-mammal","a":"Dog Face","b":"1F436","d":true,"e":true,"f":true,"h":true,"j":["dog_face","animal","friend","nature","woof","puppy","pet","faithful"],"k":[11,42],"o":0},"dog2":{"subcategory":"animal-mammal","a":"Dog","b":"1F415","d":true,"e":true,"f":true,"h":true,"j":["dog","animal","nature","friend","doge","pet","faithful"],"k":[11,8],"o":0},"guide_dog":{"subcategory":"animal-mammal","a":"Guide Dog","b":"1F9AE","d":true,"e":true,"f":true,"h":true,"j":["guide_dog","animal","blind"],"k":[45,5],"o":12},"service_dog":{"subcategory":"animal-mammal","a":"Service Dog","b":"1F415-200D-1F9BA","d":true,"e":true,"f":true,"h":true,"j":["service_dog","blind","animal"],"k":[11,7],"o":12},"poodle":{"subcategory":"animal-mammal","a":"Poodle","b":"1F429","d":true,"e":true,"f":true,"h":true,"j":["poodle","dog","animal","101","nature","pet"],"k":[11,29],"o":0},"wolf":{"subcategory":"animal-mammal","a":"Wolf Face","b":"1F43A","d":true,"e":true,"f":true,"h":true,"j":["wolf","animal","nature","wild"],"k":[11,46],"o":0},"fox_face":{"subcategory":"animal-mammal","a":"Fox Face","b":"1F98A","d":true,"e":true,"f":true,"h":true,"j":["fox","animal","nature","face"],"k":[44,30],"o":3},"raccoon":{"subcategory":"animal-mammal","a":"Raccoon","b":"1F99D","d":true,"e":true,"f":true,"h":true,"j":["raccoon","animal","nature"],"k":[44,49],"o":11},"cat":{"subcategory":"animal-mammal","a":"Cat Face","b":"1F431","d":true,"e":true,"f":true,"h":true,"j":["cat_face","animal","meow","nature","pet","kitten"],"k":[11,37],"o":0},"cat2":{"subcategory":"animal-mammal","a":"Cat","b":"1F408","d":true,"e":true,"f":true,"h":true,"j":["cat","animal","meow","pet","cats"],"k":[10,55],"o":0},"black_cat":{"subcategory":"animal-mammal","a":"Black Cat","b":"1F408-200D-2B1B","d":true,"e":true,"f":true,"h":true,"j":["black cat","superstition","luck"],"k":[10,54],"o":13},"lion_face":{"subcategory":"animal-mammal","a":"Lion Face","b":"1F981","d":true,"e":true,"f":true,"h":true,"j":["lion","animal","nature"],"k":[44,21],"o":1},"tiger":{"subcategory":"animal-mammal","a":"Tiger Face","b":"1F42F","d":true,"e":true,"f":true,"h":true,"j":["tiger_face","animal","cat","danger","wild","nature","roar"],"k":[11,35],"o":0},"tiger2":{"subcategory":"animal-mammal","a":"Tiger","b":"1F405","d":true,"e":true,"f":true,"h":true,"j":["tiger","animal","nature","roar"],"k":[10,51],"o":1},"leopard":{"subcategory":"animal-mammal","a":"Leopard","b":"1F406","d":true,"e":true,"f":true,"h":true,"j":["leopard","animal","nature"],"k":[10,52],"o":1},"horse":{"subcategory":"animal-mammal","a":"Horse Face","b":"1F434","d":true,"e":true,"f":true,"h":true,"j":["horse_face","animal","brown","nature"],"k":[11,40],"o":0},"moose":{"subcategory":"animal-mammal","a":"Moose","b":"1FACE","d":true,"e":true,"f":false,"h":false,"j":["moose","shrek","canada","sweden","sven","cool"],"k":[55,16],"o":15},"donkey":{"subcategory":"animal-mammal","a":"Donkey","b":"1FACF","d":true,"e":true,"f":false,"h":false,"j":["donkey","eeyore","mule"],"k":[55,17],"o":15},"racehorse":{"subcategory":"animal-mammal","a":"Horse","b":"1F40E","d":true,"e":true,"f":true,"h":true,"j":["horse","animal","gamble","luck"],"k":[11,0],"o":0},"unicorn_face":{"subcategory":"animal-mammal","a":"Unicorn Face","b":"1F984","d":true,"e":true,"f":true,"h":true,"j":["unicorn","animal","nature","mystical"],"k":[44,24],"o":1},"zebra_face":{"subcategory":"animal-mammal","a":"Zebra Face","b":"1F993","d":true,"e":true,"f":true,"h":true,"j":["zebra","animal","nature","stripes","safari"],"k":[44,39],"o":5},"deer":{"subcategory":"animal-mammal","a":"Deer","b":"1F98C","d":true,"e":true,"f":true,"h":true,"j":["deer","animal","nature","horns","venison"],"k":[44,32],"o":3},"bison":{"subcategory":"animal-mammal","a":"Bison","b":"1F9AC","d":true,"e":true,"f":true,"h":true,"j":["bison","ox"],"k":[45,3],"o":13},"cow":{"subcategory":"animal-mammal","a":"Cow Face","b":"1F42E","d":true,"e":true,"f":true,"h":true,"j":["cow_face","beef","ox","animal","nature","moo","milk"],"k":[11,34],"o":0},"ox":{"subcategory":"animal-mammal","a":"Ox","b":"1F402","d":true,"e":true,"f":true,"h":true,"j":["ox","animal","cow","beef"],"k":[10,48],"o":1},"water_buffalo":{"subcategory":"animal-mammal","a":"Water Buffalo","b":"1F403","d":true,"e":true,"f":true,"h":true,"j":["water_buffalo","animal","nature","ox","cow"],"k":[10,49],"o":1},"cow2":{"subcategory":"animal-mammal","a":"Cow","b":"1F404","d":true,"e":true,"f":true,"h":true,"j":["cow","beef","ox","animal","nature","moo","milk"],"k":[10,50],"o":1},"pig":{"subcategory":"animal-mammal","a":"Pig Face","b":"1F437","d":true,"e":true,"f":true,"h":true,"j":["pig_face","animal","oink","nature"],"k":[11,43],"o":0},"pig2":{"subcategory":"animal-mammal","a":"Pig","b":"1F416","d":true,"e":true,"f":true,"h":true,"j":["pig","animal","nature"],"k":[11,9],"o":1},"boar":{"subcategory":"animal-mammal","a":"Boar","b":"1F417","d":true,"e":true,"f":true,"h":true,"j":["boar","animal","nature"],"k":[11,10],"o":0},"pig_nose":{"subcategory":"animal-mammal","a":"Pig Nose","b":"1F43D","d":true,"e":true,"f":true,"h":true,"j":["pig_nose","animal","oink"],"k":[11,50],"o":0},"ram":{"subcategory":"animal-mammal","a":"Ram","b":"1F40F","d":true,"e":true,"f":true,"h":true,"j":["ram","animal","sheep","nature"],"k":[11,1],"o":1},"sheep":{"subcategory":"animal-mammal","a":"Sheep","b":"1F411","d":true,"e":true,"f":true,"h":true,"j":["ewe","animal","nature","wool","shipit"],"k":[11,3],"o":0},"goat":{"subcategory":"animal-mammal","a":"Goat","b":"1F410","d":true,"e":true,"f":true,"h":true,"j":["goat","animal","nature"],"k":[11,2],"o":1},"dromedary_camel":{"subcategory":"animal-mammal","a":"Dromedary Camel","b":"1F42A","d":true,"e":true,"f":true,"h":true,"j":["camel","animal","hot","desert","hump"],"k":[11,30],"o":1},"camel":{"subcategory":"animal-mammal","a":"Bactrian Camel","b":"1F42B","d":true,"e":true,"f":true,"h":true,"j":["two_hump_camel","animal","nature","hot","desert","hump"],"k":[11,31],"o":0},"llama":{"subcategory":"animal-mammal","a":"Llama","b":"1F999","d":true,"e":true,"f":true,"h":true,"j":["llama","animal","nature","alpaca"],"k":[44,45],"o":11},"giraffe_face":{"subcategory":"animal-mammal","a":"Giraffe Face","b":"1F992","d":true,"e":true,"f":true,"h":true,"j":["giraffe","animal","nature","spots","safari"],"k":[44,38],"o":5},"elephant":{"subcategory":"animal-mammal","a":"Elephant","b":"1F418","d":true,"e":true,"f":true,"h":true,"j":["elephant","animal","nature","nose","th","circus"],"k":[11,11],"o":0},"mammoth":{"subcategory":"animal-mammal","a":"Mammoth","b":"1F9A3","d":true,"e":true,"f":true,"h":true,"j":["mammoth","elephant","tusks"],"k":[44,55],"o":13},"rhinoceros":{"subcategory":"animal-mammal","a":"Rhinoceros","b":"1F98F","d":true,"e":true,"f":true,"h":true,"j":["rhinoceros","animal","nature","horn"],"k":[44,35],"o":3},"hippopotamus":{"subcategory":"animal-mammal","a":"Hippopotamus","b":"1F99B","d":true,"e":true,"f":true,"h":true,"j":["hippopotamus","animal","nature"],"k":[44,47],"o":11},"mouse":{"subcategory":"animal-mammal","a":"Mouse Face","b":"1F42D","d":true,"e":true,"f":true,"h":true,"j":["mouse_face","animal","nature","cheese_wedge","rodent"],"k":[11,33],"o":0},"mouse2":{"subcategory":"animal-mammal","a":"Mouse","b":"1F401","d":true,"e":true,"f":true,"h":true,"j":["mouse","animal","nature","rodent"],"k":[10,47],"o":1},"rat":{"subcategory":"animal-mammal","a":"Rat","b":"1F400","d":true,"e":true,"f":true,"h":true,"j":["rat","animal","mouse","rodent"],"k":[10,46],"o":1},"hamster":{"subcategory":"animal-mammal","a":"Hamster Face","b":"1F439","d":true,"e":true,"f":true,"h":true,"j":["hamster","animal","nature"],"k":[11,45],"o":0},"rabbit":{"subcategory":"animal-mammal","a":"Rabbit Face","b":"1F430","d":true,"e":true,"f":true,"h":true,"j":["rabbit_face","animal","nature","pet","spring","magic","bunny"],"k":[11,36],"o":0},"rabbit2":{"subcategory":"animal-mammal","a":"Rabbit","b":"1F407","d":true,"e":true,"f":true,"h":true,"j":["rabbit","animal","nature","pet","magic","spring"],"k":[10,53],"o":1},"chipmunk":{"subcategory":"animal-mammal","a":"Chipmunk","b":"1F43F-FE0F","c":"1F43F","d":true,"e":true,"f":true,"h":true,"j":["chipmunk","animal","nature","rodent","squirrel"],"k":[11,52],"o":0},"beaver":{"subcategory":"animal-mammal","a":"Beaver","b":"1F9AB","d":true,"e":true,"f":true,"h":true,"j":["beaver","animal","rodent"],"k":[45,2],"o":13},"hedgehog":{"subcategory":"animal-mammal","a":"Hedgehog","b":"1F994","d":true,"e":true,"f":true,"h":true,"j":["hedgehog","animal","nature","spiny"],"k":[44,40],"o":5},"bat":{"subcategory":"animal-mammal","a":"Bat","b":"1F987","d":true,"e":true,"f":true,"h":true,"j":["bat","animal","nature","blind","vampire"],"k":[44,27],"o":3},"bear":{"subcategory":"animal-mammal","a":"Bear Face","b":"1F43B","d":true,"e":true,"f":true,"h":true,"j":["bear","animal","nature","wild"],"k":[11,48],"o":0},"polar_bear":{"subcategory":"animal-mammal","a":"Polar Bear","b":"1F43B-200D-2744-FE0F","c":"1F43B-200D-2744","d":true,"e":true,"f":true,"h":true,"j":["polar bear","animal","arctic"],"k":[11,47],"o":13},"koala":{"subcategory":"animal-mammal","a":"Koala","b":"1F428","d":true,"e":true,"f":true,"h":true,"j":["koala","animal","nature"],"k":[11,28],"o":0},"panda_face":{"subcategory":"animal-mammal","a":"Panda Face","b":"1F43C","d":true,"e":true,"f":true,"h":true,"j":["panda","animal","nature"],"k":[11,49],"o":0},"sloth":{"subcategory":"animal-mammal","a":"Sloth","b":"1F9A5","d":true,"e":true,"f":true,"h":true,"j":["sloth","animal"],"k":[44,57],"o":12},"otter":{"subcategory":"animal-mammal","a":"Otter","b":"1F9A6","d":true,"e":true,"f":true,"h":true,"j":["otter","animal"],"k":[44,58],"o":12},"skunk":{"subcategory":"animal-mammal","a":"Skunk","b":"1F9A8","d":true,"e":true,"f":true,"h":true,"j":["skunk","animal"],"k":[44,60],"o":12},"kangaroo":{"subcategory":"animal-mammal","a":"Kangaroo","b":"1F998","d":true,"e":true,"f":true,"h":true,"j":["kangaroo","animal","nature","australia","joey","hop","marsupial"],"k":[44,44],"o":11},"badger":{"subcategory":"animal-mammal","a":"Badger","b":"1F9A1","d":true,"e":true,"f":true,"h":true,"j":["badger","animal","nature","honey"],"k":[44,53],"o":11},"feet":{"subcategory":"animal-mammal","a":"Paw Prints","b":"1F43E","d":true,"e":true,"f":true,"h":true,"j":["paw_prints","animal","tracking","footprints","dog","cat","pet","feet"],"k":[11,51],"n":["paw_prints"],"o":0},"turkey":{"subcategory":"animal-bird","a":"Turkey","b":"1F983","d":true,"e":true,"f":true,"h":true,"j":["turkey","animal","bird"],"k":[44,23],"o":1},"chicken":{"subcategory":"animal-bird","a":"Chicken","b":"1F414","d":true,"e":true,"f":true,"h":true,"j":["chicken","animal","cluck","nature","bird"],"k":[11,6],"o":0},"rooster":{"subcategory":"animal-bird","a":"Rooster","b":"1F413","d":true,"e":true,"f":true,"h":true,"j":["rooster","animal","nature","chicken"],"k":[11,5],"o":1},"hatching_chick":{"subcategory":"animal-bird","a":"Hatching Chick","b":"1F423","d":true,"e":true,"f":true,"h":true,"j":["hatching_chick","animal","chicken","egg","born","baby","bird"],"k":[11,22],"o":0},"baby_chick":{"subcategory":"animal-bird","a":"Baby Chick","b":"1F424","d":true,"e":true,"f":true,"h":true,"j":["baby_chick","animal","chicken","bird"],"k":[11,23],"o":0},"hatched_chick":{"subcategory":"animal-bird","a":"Front-Facing Baby Chick","b":"1F425","d":true,"e":true,"f":true,"h":true,"j":["front_facing_baby_chick","animal","chicken","baby","bird"],"k":[11,24],"o":0},"bird":{"subcategory":"animal-bird","a":"Bird","b":"1F426","d":true,"e":true,"f":true,"h":true,"j":["bird","animal","nature","fly","tweet","spring"],"k":[11,26],"o":0},"penguin":{"subcategory":"animal-bird","a":"Penguin","b":"1F427","d":true,"e":true,"f":true,"h":true,"j":["penguin","animal","nature"],"k":[11,27],"o":0},"dove_of_peace":{"subcategory":"animal-bird","a":"Dove","b":"1F54A-FE0F","c":"1F54A","d":true,"e":true,"f":true,"h":true,"j":["dove","animal","bird"],"k":[30,28],"o":0},"eagle":{"subcategory":"animal-bird","a":"Eagle","b":"1F985","d":true,"e":true,"f":true,"h":true,"j":["eagle","animal","nature","bird"],"k":[44,25],"o":3},"duck":{"subcategory":"animal-bird","a":"Duck","b":"1F986","d":true,"e":true,"f":true,"h":true,"j":["duck","animal","nature","bird","mallard"],"k":[44,26],"o":3},"swan":{"subcategory":"animal-bird","a":"Swan","b":"1F9A2","d":true,"e":true,"f":true,"h":true,"j":["swan","animal","nature","bird"],"k":[44,54],"o":11},"owl":{"subcategory":"animal-bird","a":"Owl","b":"1F989","d":true,"e":true,"f":true,"h":true,"j":["owl","animal","nature","bird","hoot"],"k":[44,29],"o":3},"dodo":{"subcategory":"animal-bird","a":"Dodo","b":"1F9A4","d":true,"e":true,"f":true,"h":true,"j":["dodo","animal","bird"],"k":[44,56],"o":13},"feather":{"subcategory":"animal-bird","a":"Feather","b":"1FAB6","d":true,"e":true,"f":true,"h":true,"j":["feather","bird","fly"],"k":[54,47],"o":13},"flamingo":{"subcategory":"animal-bird","a":"Flamingo","b":"1F9A9","d":true,"e":true,"f":true,"h":true,"j":["flamingo","animal"],"k":[45,0],"o":12},"peacock":{"subcategory":"animal-bird","a":"Peacock","b":"1F99A","d":true,"e":true,"f":true,"h":true,"j":["peacock","animal","nature","peahen","bird"],"k":[44,46],"o":11},"parrot":{"subcategory":"animal-bird","a":"Parrot","b":"1F99C","d":true,"e":true,"f":true,"h":true,"j":["parrot","animal","nature","bird","pirate","talk"],"k":[44,48],"o":11},"wing":{"subcategory":"animal-bird","a":"Wing","b":"1FABD","d":true,"e":true,"f":false,"h":false,"j":["wing","angel","birds","flying"],"k":[54,54],"o":15},"black_bird":{"subcategory":"animal-bird","a":"Black Bird","b":"1F426-200D-2B1B","d":true,"e":true,"f":false,"h":false,"j":["black bird","crow"],"k":[11,25],"o":15},"goose":{"subcategory":"animal-bird","a":"Goose","b":"1FABF","d":true,"e":true,"f":false,"h":false,"j":["goose","silly","jemima","goosebumps"],"k":[54,55],"o":15},"frog":{"subcategory":"animal-amphibian","a":"Frog Face","b":"1F438","d":true,"e":true,"f":true,"h":true,"j":["frog","animal","nature","croak","toad"],"k":[11,44],"o":0},"crocodile":{"subcategory":"animal-reptile","a":"Crocodile","b":"1F40A","d":true,"e":true,"f":true,"h":true,"j":["crocodile","animal","nature","reptile","lizard","alligator"],"k":[10,57],"o":1},"turtle":{"subcategory":"animal-reptile","a":"Turtle","b":"1F422","d":true,"e":true,"f":true,"h":true,"j":["turtle","animal","slow","nature","tortoise"],"k":[11,21],"o":0},"lizard":{"subcategory":"animal-reptile","a":"Lizard","b":"1F98E","d":true,"e":true,"f":true,"h":true,"j":["lizard","animal","nature","reptile"],"k":[44,34],"o":3},"snake":{"subcategory":"animal-reptile","a":"Snake","b":"1F40D","d":true,"e":true,"f":true,"h":true,"j":["snake","animal","evil","nature","hiss","python"],"k":[10,60],"o":0},"dragon_face":{"subcategory":"animal-reptile","a":"Dragon Face","b":"1F432","d":true,"e":true,"f":true,"h":true,"j":["dragon_face","animal","myth","nature","chinese","green"],"k":[11,38],"o":0},"dragon":{"subcategory":"animal-reptile","a":"Dragon","b":"1F409","d":true,"e":true,"f":true,"h":true,"j":["dragon","animal","myth","nature","chinese","green"],"k":[10,56],"o":1},"sauropod":{"subcategory":"animal-reptile","a":"Sauropod","b":"1F995","d":true,"e":true,"f":true,"h":true,"j":["sauropod","animal","nature","dinosaur","brachiosaurus","brontosaurus","diplodocus","extinct"],"k":[44,41],"o":5},"t-rex":{"subcategory":"animal-reptile","a":"T-Rex","b":"1F996","d":true,"e":true,"f":true,"h":true,"j":["t_rex","animal","nature","dinosaur","tyrannosaurus","extinct"],"k":[44,42],"o":5},"whale":{"subcategory":"animal-marine","a":"Spouting Whale","b":"1F433","d":true,"e":true,"f":true,"h":true,"j":["spouting_whale","animal","nature","sea","ocean"],"k":[11,39],"o":0},"whale2":{"subcategory":"animal-marine","a":"Whale","b":"1F40B","d":true,"e":true,"f":true,"h":true,"j":["whale","animal","nature","sea","ocean"],"k":[10,58],"o":1},"dolphin":{"subcategory":"animal-marine","a":"Dolphin","b":"1F42C","d":true,"e":true,"f":true,"h":true,"j":["dolphin","animal","nature","fish","sea","ocean","flipper","fins","beach"],"k":[11,32],"n":["flipper"],"o":0},"seal":{"subcategory":"animal-marine","a":"Seal","b":"1F9AD","d":true,"e":true,"f":true,"h":true,"j":["seal","animal","creature","sea"],"k":[45,4],"o":13},"fish":{"subcategory":"animal-marine","a":"Fish","b":"1F41F","d":true,"e":true,"f":true,"h":true,"j":["fish","animal","food","nature"],"k":[11,18],"o":0},"tropical_fish":{"subcategory":"animal-marine","a":"Tropical Fish","b":"1F420","d":true,"e":true,"f":true,"h":true,"j":["tropical_fish","animal","swim","ocean","beach","nemo"],"k":[11,19],"o":0},"blowfish":{"subcategory":"animal-marine","a":"Blowfish","b":"1F421","d":true,"e":true,"f":true,"h":true,"j":["blowfish","animal","nature","food","sea","ocean"],"k":[11,20],"o":0},"shark":{"subcategory":"animal-marine","a":"Shark","b":"1F988","d":true,"e":true,"f":true,"h":true,"j":["shark","animal","nature","fish","sea","ocean","jaws","fins","beach"],"k":[44,28],"o":3},"octopus":{"subcategory":"animal-marine","a":"Octopus","b":"1F419","d":true,"e":true,"f":true,"h":true,"j":["octopus","animal","creature","ocean","sea","nature","beach"],"k":[11,12],"o":0},"shell":{"subcategory":"animal-marine","a":"Spiral Shell","b":"1F41A","d":true,"e":true,"f":true,"h":true,"j":["spiral_shell","nature","sea","beach"],"k":[11,13],"o":0},"coral":{"subcategory":"animal-marine","a":"Coral","b":"1FAB8","d":true,"e":true,"f":true,"h":true,"j":["coral","ocean","sea","reef"],"k":[54,49],"o":14},"jellyfish":{"subcategory":"animal-marine","a":"Jellyfish","b":"1FABC","d":true,"e":true,"f":false,"h":false,"j":["jellyfish","sting","tentacles"],"k":[54,53],"o":15},"snail":{"subcategory":"animal-bug","a":"Snail","b":"1F40C","d":true,"e":true,"f":true,"h":true,"j":["snail","slow","animal","shell"],"k":[10,59],"o":0},"butterfly":{"subcategory":"animal-bug","a":"Butterfly","b":"1F98B","d":true,"e":true,"f":true,"h":true,"j":["butterfly","animal","insect","nature","caterpillar"],"k":[44,31],"o":3},"bug":{"subcategory":"animal-bug","a":"Bug","b":"1F41B","d":true,"e":true,"f":true,"h":true,"j":["bug","animal","insect","nature","worm"],"k":[11,14],"o":0},"ant":{"subcategory":"animal-bug","a":"Ant","b":"1F41C","d":true,"e":true,"f":true,"h":true,"j":["ant","animal","insect","nature","bug"],"k":[11,15],"o":0},"bee":{"subcategory":"animal-bug","a":"Honeybee","b":"1F41D","d":true,"e":true,"f":true,"h":true,"j":["honeybee","animal","insect","nature","bug","spring","honey"],"k":[11,16],"n":["honeybee"],"o":0},"beetle":{"subcategory":"animal-bug","a":"Beetle","b":"1FAB2","d":true,"e":true,"f":true,"h":true,"j":["beetle","insect"],"k":[54,43],"o":13},"ladybug":{"subcategory":"animal-bug","a":"Lady Beetle","b":"1F41E","d":true,"e":true,"f":true,"h":true,"j":["lady_beetle","animal","insect","nature","ladybug"],"k":[11,17],"n":["lady_beetle"],"o":0},"cricket":{"subcategory":"animal-bug","a":"Cricket","b":"1F997","d":true,"e":true,"f":true,"h":true,"j":["cricket","animal","chirp"],"k":[44,43],"o":5},"cockroach":{"subcategory":"animal-bug","a":"Cockroach","b":"1FAB3","d":true,"e":true,"f":true,"h":true,"j":["cockroach","insect","pests"],"k":[54,44],"o":13},"spider":{"subcategory":"animal-bug","a":"Spider","b":"1F577-FE0F","c":"1F577","d":true,"e":true,"f":true,"h":true,"j":["spider","animal","arachnid"],"k":[31,24],"o":0},"spider_web":{"subcategory":"animal-bug","a":"Spider Web","b":"1F578-FE0F","c":"1F578","d":true,"e":true,"f":true,"h":true,"j":["spider_web","animal","insect","arachnid","silk"],"k":[31,25],"o":0},"scorpion":{"subcategory":"animal-bug","a":"Scorpion","b":"1F982","d":true,"e":true,"f":true,"h":true,"j":["scorpion","animal","arachnid"],"k":[44,22],"o":1},"mosquito":{"subcategory":"animal-bug","a":"Mosquito","b":"1F99F","d":true,"e":true,"f":true,"h":true,"j":["mosquito","animal","nature","insect","malaria"],"k":[44,51],"o":11},"fly":{"subcategory":"animal-bug","a":"Fly","b":"1FAB0","d":true,"e":true,"f":true,"h":true,"j":["fly","insect"],"k":[54,41],"o":13},"worm":{"subcategory":"animal-bug","a":"Worm","b":"1FAB1","d":true,"e":true,"f":true,"h":true,"j":["worm","animal"],"k":[54,42],"o":13},"microbe":{"subcategory":"animal-bug","a":"Microbe","b":"1F9A0","d":true,"e":true,"f":true,"h":true,"j":["microbe","amoeba","bacteria","germs","virus","covid"],"k":[44,52],"o":11},"bouquet":{"subcategory":"plant-flower","a":"Bouquet","b":"1F490","d":true,"e":true,"f":true,"h":true,"j":["bouquet","flowers","nature","spring"],"k":[27,7],"o":0},"cherry_blossom":{"subcategory":"plant-flower","a":"Cherry Blossom","b":"1F338","d":true,"e":true,"f":true,"h":true,"j":["cherry_blossom","nature","plant","spring","flower"],"k":[5,53],"o":0},"white_flower":{"subcategory":"plant-flower","a":"White Flower","b":"1F4AE","d":true,"e":true,"f":true,"h":true,"j":["white_flower","japanese","spring"],"k":[28,6],"o":0},"lotus":{"subcategory":"plant-flower","a":"Lotus","b":"1FAB7","d":true,"e":true,"f":true,"h":true,"j":["lotus","flower","calm","meditation"],"k":[54,48],"o":14},"rosette":{"subcategory":"plant-flower","a":"Rosette","b":"1F3F5-FE0F","c":"1F3F5","d":true,"e":true,"f":true,"h":true,"j":["rosette","flower","decoration","military"],"k":[10,36],"o":0},"rose":{"subcategory":"plant-flower","a":"Rose","b":"1F339","d":true,"e":true,"f":true,"h":true,"j":["rose","flowers","valentines","love","spring"],"k":[5,54],"o":0},"wilted_flower":{"subcategory":"plant-flower","a":"Wilted Flower","b":"1F940","d":true,"e":true,"f":true,"h":true,"j":["wilted_flower","plant","nature","flower","rose"],"k":[43,13],"o":3},"hibiscus":{"subcategory":"plant-flower","a":"Hibiscus","b":"1F33A","d":true,"e":true,"f":true,"h":true,"j":["hibiscus","plant","vegetable","flowers","beach"],"k":[5,55],"o":0},"sunflower":{"subcategory":"plant-flower","a":"Sunflower","b":"1F33B","d":true,"e":true,"f":true,"h":true,"j":["sunflower","nature","plant","fall"],"k":[5,56],"o":0},"blossom":{"subcategory":"plant-flower","a":"Blossom","b":"1F33C","d":true,"e":true,"f":true,"h":true,"j":["blossom","nature","flowers","yellow"],"k":[5,57],"o":0},"tulip":{"subcategory":"plant-flower","a":"Tulip","b":"1F337","d":true,"e":true,"f":true,"h":true,"j":["tulip","flowers","plant","nature","summer","spring"],"k":[5,52],"o":0},"hyacinth":{"subcategory":"plant-flower","a":"Hyacinth","b":"1FABB","d":true,"e":true,"f":false,"h":false,"j":["hyacinth","flower","lavender"],"k":[54,52],"o":15},"seedling":{"subcategory":"plant-other","a":"Seedling","b":"1F331","d":true,"e":true,"f":true,"h":true,"j":["seedling","plant","nature","grass","lawn","spring"],"k":[5,46],"o":0},"potted_plant":{"subcategory":"plant-other","a":"Potted Plant","b":"1FAB4","d":true,"e":true,"f":true,"h":true,"j":["potted plant","greenery","house"],"k":[54,45],"o":13},"evergreen_tree":{"subcategory":"plant-other","a":"Evergreen Tree","b":"1F332","d":true,"e":true,"f":true,"h":true,"j":["evergreen_tree","plant","nature"],"k":[5,47],"o":1},"deciduous_tree":{"subcategory":"plant-other","a":"Deciduous Tree","b":"1F333","d":true,"e":true,"f":true,"h":true,"j":["deciduous_tree","plant","nature"],"k":[5,48],"o":1},"palm_tree":{"subcategory":"plant-other","a":"Palm Tree","b":"1F334","d":true,"e":true,"f":true,"h":true,"j":["palm_tree","plant","vegetable","nature","summer","beach","mojito","tropical"],"k":[5,49],"o":0},"cactus":{"subcategory":"plant-other","a":"Cactus","b":"1F335","d":true,"e":true,"f":true,"h":true,"j":["cactus","vegetable","plant","nature"],"k":[5,50],"o":0},"ear_of_rice":{"subcategory":"plant-other","a":"Ear of Rice","b":"1F33E","d":true,"e":true,"f":true,"h":true,"j":["sheaf_of_rice","nature","plant"],"k":[5,59],"o":0},"herb":{"subcategory":"plant-other","a":"Herb","b":"1F33F","d":true,"e":true,"f":true,"h":true,"j":["herb","vegetable","plant","medicine","weed","grass","lawn"],"k":[5,60],"o":0},"shamrock":{"subcategory":"plant-other","a":"Shamrock","b":"2618-FE0F","c":"2618","d":true,"e":true,"f":true,"h":true,"j":["shamrock","vegetable","plant","nature","irish","clover"],"k":[57,19],"o":1},"four_leaf_clover":{"subcategory":"plant-other","a":"Four Leaf Clover","b":"1F340","d":true,"e":true,"f":true,"h":true,"j":["four_leaf_clover","vegetable","plant","nature","lucky","irish"],"k":[6,0],"o":0},"maple_leaf":{"subcategory":"plant-other","a":"Maple Leaf","b":"1F341","d":true,"e":true,"f":true,"h":true,"j":["maple_leaf","nature","plant","vegetable","ca","fall"],"k":[6,1],"o":0},"fallen_leaf":{"subcategory":"plant-other","a":"Fallen Leaf","b":"1F342","d":true,"e":true,"f":true,"h":true,"j":["fallen_leaf","nature","plant","vegetable","leaves"],"k":[6,2],"o":0},"leaves":{"subcategory":"plant-other","a":"Leaf Fluttering in Wind","b":"1F343","d":true,"e":true,"f":true,"h":true,"j":["leaf_fluttering_in_wind","nature","plant","tree","vegetable","grass","lawn","spring"],"k":[6,3],"o":0},"empty_nest":{"subcategory":"plant-other","a":"Empty Nest","b":"1FAB9","d":true,"e":true,"f":true,"h":true,"j":["empty nest","bird"],"k":[54,50],"o":14},"nest_with_eggs":{"subcategory":"plant-other","a":"Nest with Eggs","b":"1FABA","d":true,"e":true,"f":true,"h":true,"j":["nest with eggs","bird"],"k":[54,51],"o":14},"mushroom":{"subcategory":"plant-other","a":"Mushroom","b":"1F344","d":true,"e":true,"f":true,"h":true,"j":["mushroom","plant","vegetable"],"k":[6,4],"o":0},"grapes":{"subcategory":"food-fruit","a":"Grapes","b":"1F347","d":true,"e":true,"f":true,"h":true,"j":["grapes","fruit","food","wine"],"k":[6,7],"o":0},"melon":{"subcategory":"food-fruit","a":"Melon","b":"1F348","d":true,"e":true,"f":true,"h":true,"j":["melon","fruit","nature","food"],"k":[6,8],"o":0},"watermelon":{"subcategory":"food-fruit","a":"Watermelon","b":"1F349","d":true,"e":true,"f":true,"h":true,"j":["watermelon","fruit","food","picnic","summer"],"k":[6,9],"o":0},"tangerine":{"subcategory":"food-fruit","a":"Tangerine","b":"1F34A","d":true,"e":true,"f":true,"h":true,"j":["tangerine","food","fruit","nature","orange"],"k":[6,10],"o":0},"lemon":{"subcategory":"food-fruit","a":"Lemon","b":"1F34B","d":true,"e":true,"f":true,"h":true,"j":["lemon","fruit","nature"],"k":[6,11],"o":1},"banana":{"subcategory":"food-fruit","a":"Banana","b":"1F34C","d":true,"e":true,"f":true,"h":true,"j":["banana","fruit","food","monkey"],"k":[6,12],"o":0},"pineapple":{"subcategory":"food-fruit","a":"Pineapple","b":"1F34D","d":true,"e":true,"f":true,"h":true,"j":["pineapple","fruit","nature","food"],"k":[6,13],"o":0},"mango":{"subcategory":"food-fruit","a":"Mango","b":"1F96D","d":true,"e":true,"f":true,"h":true,"j":["mango","fruit","food","tropical"],"k":[43,57],"o":11},"apple":{"subcategory":"food-fruit","a":"Red Apple","b":"1F34E","d":true,"e":true,"f":true,"h":true,"j":["red_apple","fruit","mac","school"],"k":[6,14],"o":0},"green_apple":{"subcategory":"food-fruit","a":"Green Apple","b":"1F34F","d":true,"e":true,"f":true,"h":true,"j":["green_apple","fruit","nature"],"k":[6,15],"o":0},"pear":{"subcategory":"food-fruit","a":"Pear","b":"1F350","d":true,"e":true,"f":true,"h":true,"j":["pear","fruit","nature","food"],"k":[6,16],"o":1},"peach":{"subcategory":"food-fruit","a":"Peach","b":"1F351","d":true,"e":true,"f":true,"h":true,"j":["peach","fruit","nature","food"],"k":[6,17],"o":0},"cherries":{"subcategory":"food-fruit","a":"Cherries","b":"1F352","d":true,"e":true,"f":true,"h":true,"j":["cherries","food","fruit"],"k":[6,18],"o":0},"strawberry":{"subcategory":"food-fruit","a":"Strawberry","b":"1F353","d":true,"e":true,"f":true,"h":true,"j":["strawberry","fruit","food","nature"],"k":[6,19],"o":0},"blueberries":{"subcategory":"food-fruit","a":"Blueberries","b":"1FAD0","d":true,"e":true,"f":true,"h":true,"j":["blueberries","fruit"],"k":[55,18],"o":13},"kiwifruit":{"subcategory":"food-fruit","a":"Kiwifruit","b":"1F95D","d":true,"e":true,"f":true,"h":true,"j":["kiwi_fruit","fruit","food"],"k":[43,41],"o":3},"tomato":{"subcategory":"food-fruit","a":"Tomato","b":"1F345","d":true,"e":true,"f":true,"h":true,"j":["tomato","fruit","vegetable","nature","food"],"k":[6,5],"o":0},"olive":{"subcategory":"food-fruit","a":"Olive","b":"1FAD2","d":true,"e":true,"f":true,"h":true,"j":["olive","fruit"],"k":[55,20],"o":13},"coconut":{"subcategory":"food-fruit","a":"Coconut","b":"1F965","d":true,"e":true,"f":true,"h":true,"j":["coconut","fruit","nature","food","palm"],"k":[43,49],"o":5},"avocado":{"subcategory":"food-vegetable","a":"Avocado","b":"1F951","d":true,"e":true,"f":true,"h":true,"j":["avocado","fruit","food"],"k":[43,29],"o":3},"eggplant":{"subcategory":"food-vegetable","a":"Aubergine","b":"1F346","d":true,"e":true,"f":true,"h":true,"j":["eggplant","vegetable","nature","food","aubergine"],"k":[6,6],"o":0},"potato":{"subcategory":"food-vegetable","a":"Potato","b":"1F954","d":true,"e":true,"f":true,"h":true,"j":["potato","food","tuber","vegatable","starch"],"k":[43,32],"o":3},"carrot":{"subcategory":"food-vegetable","a":"Carrot","b":"1F955","d":true,"e":true,"f":true,"h":true,"j":["carrot","vegetable","food","orange"],"k":[43,33],"o":3},"corn":{"subcategory":"food-vegetable","a":"Ear of Maize","b":"1F33D","d":true,"e":true,"f":true,"h":true,"j":["ear_of_corn","food","vegetable","plant"],"k":[5,58],"o":0},"hot_pepper":{"subcategory":"food-vegetable","a":"Hot Pepper","b":"1F336-FE0F","c":"1F336","d":true,"e":true,"f":true,"h":true,"j":["hot_pepper","food","spicy","chilli","chili"],"k":[5,51],"o":0},"bell_pepper":{"subcategory":"food-vegetable","a":"Bell Pepper","b":"1FAD1","d":true,"e":true,"f":true,"h":true,"j":["bell pepper","fruit","plant"],"k":[55,19],"o":13},"cucumber":{"subcategory":"food-vegetable","a":"Cucumber","b":"1F952","d":true,"e":true,"f":true,"h":true,"j":["cucumber","fruit","food","pickle"],"k":[43,30],"o":3},"leafy_green":{"subcategory":"food-vegetable","a":"Leafy Green","b":"1F96C","d":true,"e":true,"f":true,"h":true,"j":["leafy_green","food","vegetable","plant","bok choy","cabbage","kale","lettuce"],"k":[43,56],"o":11},"broccoli":{"subcategory":"food-vegetable","a":"Broccoli","b":"1F966","d":true,"e":true,"f":true,"h":true,"j":["broccoli","fruit","food","vegetable"],"k":[43,50],"o":5},"garlic":{"subcategory":"food-vegetable","a":"Garlic","b":"1F9C4","d":true,"e":true,"f":true,"h":true,"j":["garlic","food","spice","cook"],"k":[46,11],"o":12},"onion":{"subcategory":"food-vegetable","a":"Onion","b":"1F9C5","d":true,"e":true,"f":true,"h":true,"j":["onion","cook","food","spice"],"k":[46,12],"o":12},"peanuts":{"subcategory":"food-vegetable","a":"Peanuts","b":"1F95C","d":true,"e":true,"f":true,"h":true,"j":["peanuts","food","nut"],"k":[43,40],"o":3},"beans":{"subcategory":"food-vegetable","a":"Beans","b":"1FAD8","d":true,"e":true,"f":true,"h":true,"j":["beans","food"],"k":[55,26],"o":14},"chestnut":{"subcategory":"food-vegetable","a":"Chestnut","b":"1F330","d":true,"e":true,"f":true,"h":true,"j":["chestnut","food","squirrel"],"k":[5,45],"o":0},"ginger_root":{"subcategory":"food-vegetable","a":"Ginger Root","b":"1FADA","d":true,"e":true,"f":false,"h":false,"j":["ginger root","spice","yellow","cooking","gingerbread"],"k":[55,28],"o":15},"pea_pod":{"subcategory":"food-vegetable","a":"Pea Pod","b":"1FADB","d":true,"e":true,"f":false,"h":false,"j":["pea pod","cozy","green"],"k":[55,29],"o":15},"bread":{"subcategory":"food-prepared","a":"Bread","b":"1F35E","d":true,"e":true,"f":true,"h":true,"j":["bread","food","wheat","breakfast","toast"],"k":[6,30],"o":0},"croissant":{"subcategory":"food-prepared","a":"Croissant","b":"1F950","d":true,"e":true,"f":true,"h":true,"j":["croissant","food","bread","french"],"k":[43,28],"o":3},"baguette_bread":{"subcategory":"food-prepared","a":"Baguette Bread","b":"1F956","d":true,"e":true,"f":true,"h":true,"j":["baguette_bread","food","bread","french","france","bakery"],"k":[43,34],"o":3},"flatbread":{"subcategory":"food-prepared","a":"Flatbread","b":"1FAD3","d":true,"e":true,"f":true,"h":true,"j":["flatbread","flour","food","bakery"],"k":[55,21],"o":13},"pretzel":{"subcategory":"food-prepared","a":"Pretzel","b":"1F968","d":true,"e":true,"f":true,"h":true,"j":["pretzel","food","bread","twisted","germany","bakery"],"k":[43,52],"o":5},"bagel":{"subcategory":"food-prepared","a":"Bagel","b":"1F96F","d":true,"e":true,"f":true,"h":true,"j":["bagel","food","bread","bakery","schmear","jewish_bakery"],"k":[43,59],"o":11},"pancakes":{"subcategory":"food-prepared","a":"Pancakes","b":"1F95E","d":true,"e":true,"f":true,"h":true,"j":["pancakes","food","breakfast","flapjacks","hotcakes","brunch"],"k":[43,42],"o":3},"waffle":{"subcategory":"food-prepared","a":"Waffle","b":"1F9C7","d":true,"e":true,"f":true,"h":true,"j":["waffle","food","breakfast","brunch"],"k":[46,14],"o":12},"cheese_wedge":{"subcategory":"food-prepared","a":"Cheese Wedge","b":"1F9C0","d":true,"e":true,"f":true,"h":true,"j":["cheese_wedge","food","chadder","swiss"],"k":[46,7],"o":1},"meat_on_bone":{"subcategory":"food-prepared","a":"Meat on Bone","b":"1F356","d":true,"e":true,"f":true,"h":true,"j":["meat_on_bone","good","food","drumstick"],"k":[6,22],"o":0},"poultry_leg":{"subcategory":"food-prepared","a":"Poultry Leg","b":"1F357","d":true,"e":true,"f":true,"h":true,"j":["poultry_leg","food","meat","drumstick","bird","chicken","turkey"],"k":[6,23],"o":0},"cut_of_meat":{"subcategory":"food-prepared","a":"Cut of Meat","b":"1F969","d":true,"e":true,"f":true,"h":true,"j":["cut_of_meat","food","cow","meat","cut","chop","lambchop","porkchop"],"k":[43,53],"o":5},"bacon":{"subcategory":"food-prepared","a":"Bacon","b":"1F953","d":true,"e":true,"f":true,"h":true,"j":["bacon","food","breakfast","pork","pig","meat","brunch"],"k":[43,31],"o":3},"hamburger":{"subcategory":"food-prepared","a":"Hamburger","b":"1F354","d":true,"e":true,"f":true,"h":true,"j":["hamburger","meat","fast food","beef","cheeseburger","mcdonalds","burger king"],"k":[6,20],"o":0},"fries":{"subcategory":"food-prepared","a":"French Fries","b":"1F35F","d":true,"e":true,"f":true,"h":true,"j":["french_fries","chips","snack","fast food","potato"],"k":[6,31],"o":0},"pizza":{"subcategory":"food-prepared","a":"Slice of Pizza","b":"1F355","d":true,"e":true,"f":true,"h":true,"j":["pizza","food","party","italy"],"k":[6,21],"o":0},"hotdog":{"subcategory":"food-prepared","a":"Hot Dog","b":"1F32D","d":true,"e":true,"f":true,"h":true,"j":["hot_dog","food","frankfurter","america"],"k":[5,42],"o":1},"sandwich":{"subcategory":"food-prepared","a":"Sandwich","b":"1F96A","d":true,"e":true,"f":true,"h":true,"j":["sandwich","food","lunch","bread","toast","bakery"],"k":[43,54],"o":5},"taco":{"subcategory":"food-prepared","a":"Taco","b":"1F32E","d":true,"e":true,"f":true,"h":true,"j":["taco","food","mexican"],"k":[5,43],"o":1},"burrito":{"subcategory":"food-prepared","a":"Burrito","b":"1F32F","d":true,"e":true,"f":true,"h":true,"j":["burrito","food","mexican"],"k":[5,44],"o":1},"tamale":{"subcategory":"food-prepared","a":"Tamale","b":"1FAD4","d":true,"e":true,"f":true,"h":true,"j":["tamale","food","masa"],"k":[55,22],"o":13},"stuffed_flatbread":{"subcategory":"food-prepared","a":"Stuffed Flatbread","b":"1F959","d":true,"e":true,"f":true,"h":true,"j":["stuffed_flatbread","food","flatbread","stuffed","gyro","mediterranean"],"k":[43,37],"o":3},"falafel":{"subcategory":"food-prepared","a":"Falafel","b":"1F9C6","d":true,"e":true,"f":true,"h":true,"j":["falafel","food","mediterranean"],"k":[46,13],"o":12},"egg":{"subcategory":"food-prepared","a":"Egg","b":"1F95A","d":true,"e":true,"f":true,"h":true,"j":["egg","food","chicken","breakfast"],"k":[43,38],"o":3},"fried_egg":{"subcategory":"food-prepared","a":"Cooking","b":"1F373","d":true,"e":true,"f":true,"h":true,"j":["cooking","food","breakfast","kitchen","egg","skillet"],"k":[6,51],"n":["cooking"],"o":0},"shallow_pan_of_food":{"subcategory":"food-prepared","a":"Shallow Pan of Food","b":"1F958","d":true,"e":true,"f":true,"h":true,"j":["shallow_pan_of_food","food","cooking","casserole","paella","skillet"],"k":[43,36],"o":3},"stew":{"subcategory":"food-prepared","a":"Pot of Food","b":"1F372","d":true,"e":true,"f":true,"h":true,"j":["pot_of_food","food","meat","soup","hot pot"],"k":[6,50],"o":0},"fondue":{"subcategory":"food-prepared","a":"Fondue","b":"1FAD5","d":true,"e":true,"f":true,"h":true,"j":["fondue","cheese","pot","food"],"k":[55,23],"o":13},"bowl_with_spoon":{"subcategory":"food-prepared","a":"Bowl with Spoon","b":"1F963","d":true,"e":true,"f":true,"h":true,"j":["bowl_with_spoon","food","breakfast","cereal","oatmeal","porridge"],"k":[43,47],"o":5},"green_salad":{"subcategory":"food-prepared","a":"Green Salad","b":"1F957","d":true,"e":true,"f":true,"h":true,"j":["green_salad","food","healthy","lettuce","vegetable"],"k":[43,35],"o":3},"popcorn":{"subcategory":"food-prepared","a":"Popcorn","b":"1F37F","d":true,"e":true,"f":true,"h":true,"j":["popcorn","food","movie theater","films","snack","drama"],"k":[7,2],"o":1},"butter":{"subcategory":"food-prepared","a":"Butter","b":"1F9C8","d":true,"e":true,"f":true,"h":true,"j":["butter","food","cook"],"k":[46,15],"o":12},"salt":{"subcategory":"food-prepared","a":"Salt Shaker","b":"1F9C2","d":true,"e":true,"f":true,"h":true,"j":["salt","condiment","shaker"],"k":[46,9],"o":11},"canned_food":{"subcategory":"food-prepared","a":"Canned Food","b":"1F96B","d":true,"e":true,"f":true,"h":true,"j":["canned_food","food","soup","tomatoes"],"k":[43,55],"o":5},"bento":{"subcategory":"food-asian","a":"Bento Box","b":"1F371","d":true,"e":true,"f":true,"h":true,"j":["bento_box","food","japanese","box","lunch"],"k":[6,49],"o":0},"rice_cracker":{"subcategory":"food-asian","a":"Rice Cracker","b":"1F358","d":true,"e":true,"f":true,"h":true,"j":["rice_cracker","food","japanese","snack","senbei"],"k":[6,24],"o":0},"rice_ball":{"subcategory":"food-asian","a":"Rice Ball","b":"1F359","d":true,"e":true,"f":true,"h":true,"j":["rice_ball","food","japanese","onigiri","omusubi"],"k":[6,25],"o":0},"rice":{"subcategory":"food-asian","a":"Cooked Rice","b":"1F35A","d":true,"e":true,"f":true,"h":true,"j":["cooked_rice","food","asian"],"k":[6,26],"o":0},"curry":{"subcategory":"food-asian","a":"Curry and Rice","b":"1F35B","d":true,"e":true,"f":true,"h":true,"j":["curry_rice","food","spicy","hot","indian"],"k":[6,27],"o":0},"ramen":{"subcategory":"food-asian","a":"Steaming Bowl","b":"1F35C","d":true,"e":true,"f":true,"h":true,"j":["steaming_bowl","food","japanese","noodle","chopsticks","ramen"],"k":[6,28],"o":0},"spaghetti":{"subcategory":"food-asian","a":"Spaghetti","b":"1F35D","d":true,"e":true,"f":true,"h":true,"j":["spaghetti","food","italian","pasta","noodle"],"k":[6,29],"o":0},"sweet_potato":{"subcategory":"food-asian","a":"Roasted Sweet Potato","b":"1F360","d":true,"e":true,"f":true,"h":true,"j":["roasted_sweet_potato","food","nature","plant"],"k":[6,32],"o":0},"oden":{"subcategory":"food-asian","a":"Oden","b":"1F362","d":true,"e":true,"f":true,"h":true,"j":["oden","skewer","food","japanese"],"k":[6,34],"o":0},"sushi":{"subcategory":"food-asian","a":"Sushi","b":"1F363","d":true,"e":true,"f":true,"h":true,"j":["sushi","food","fish","japanese","rice"],"k":[6,35],"o":0},"fried_shrimp":{"subcategory":"food-asian","a":"Fried Shrimp","b":"1F364","d":true,"e":true,"f":true,"h":true,"j":["fried_shrimp","food","animal","appetizer","summer"],"k":[6,36],"o":0},"fish_cake":{"subcategory":"food-asian","a":"Fish Cake with Swirl Design","b":"1F365","d":true,"e":true,"f":true,"h":true,"j":["fish_cake_with_swirl","food","japan","sea","beach","narutomaki","pink","swirl","kamaboko","surimi","ramen"],"k":[6,37],"o":0},"moon_cake":{"subcategory":"food-asian","a":"Moon Cake","b":"1F96E","d":true,"e":true,"f":true,"h":true,"j":["moon_cake","food","autumn","dessert"],"k":[43,58],"o":11},"dango":{"subcategory":"food-asian","a":"Dango","b":"1F361","d":true,"e":true,"f":true,"h":true,"j":["dango","food","dessert","sweet","japanese","barbecue","meat"],"k":[6,33],"o":0},"dumpling":{"subcategory":"food-asian","a":"Dumpling","b":"1F95F","d":true,"e":true,"f":true,"h":true,"j":["dumpling","food","empanada","pierogi","potsticker","gyoza"],"k":[43,43],"o":5},"fortune_cookie":{"subcategory":"food-asian","a":"Fortune Cookie","b":"1F960","d":true,"e":true,"f":true,"h":true,"j":["fortune_cookie","food","prophecy","dessert"],"k":[43,44],"o":5},"takeout_box":{"subcategory":"food-asian","a":"Takeout Box","b":"1F961","d":true,"e":true,"f":true,"h":true,"j":["takeout_box","food","leftovers"],"k":[43,45],"o":5},"crab":{"subcategory":"food-marine","a":"Crab","b":"1F980","d":true,"e":true,"f":true,"h":true,"j":["crab","animal","crustacean"],"k":[44,20],"o":1},"lobster":{"subcategory":"food-marine","a":"Lobster","b":"1F99E","d":true,"e":true,"f":true,"h":true,"j":["lobster","animal","nature","bisque","claws","seafood"],"k":[44,50],"o":11},"shrimp":{"subcategory":"food-marine","a":"Shrimp","b":"1F990","d":true,"e":true,"f":true,"h":true,"j":["shrimp","animal","ocean","nature","seafood"],"k":[44,36],"o":3},"squid":{"subcategory":"food-marine","a":"Squid","b":"1F991","d":true,"e":true,"f":true,"h":true,"j":["squid","animal","nature","ocean","sea"],"k":[44,37],"o":3},"oyster":{"subcategory":"food-marine","a":"Oyster","b":"1F9AA","d":true,"e":true,"f":true,"h":true,"j":["oyster","food"],"k":[45,1],"o":12},"icecream":{"subcategory":"food-sweet","a":"Soft Ice Cream","b":"1F366","d":true,"e":true,"f":true,"h":true,"j":["soft_ice_cream","food","hot","dessert","summer"],"k":[6,38],"o":0},"shaved_ice":{"subcategory":"food-sweet","a":"Shaved Ice","b":"1F367","d":true,"e":true,"f":true,"h":true,"j":["shaved_ice","hot","dessert","summer"],"k":[6,39],"o":0},"ice_cream":{"subcategory":"food-sweet","a":"Ice Cream","b":"1F368","d":true,"e":true,"f":true,"h":true,"j":["ice_cream","food","hot","dessert"],"k":[6,40],"o":0},"doughnut":{"subcategory":"food-sweet","a":"Doughnut","b":"1F369","d":true,"e":true,"f":true,"h":true,"j":["doughnut","food","dessert","snack","sweet","donut"],"k":[6,41],"o":0},"cookie":{"subcategory":"food-sweet","a":"Cookie","b":"1F36A","d":true,"e":true,"f":true,"h":true,"j":["cookie","food","snack","oreo","chocolate","sweet","dessert"],"k":[6,42],"o":0},"birthday":{"subcategory":"food-sweet","a":"Birthday Cake","b":"1F382","d":true,"e":true,"f":true,"h":true,"j":["birthday_cake","food","dessert","cake"],"k":[7,5],"o":0},"cake":{"subcategory":"food-sweet","a":"Shortcake","b":"1F370","d":true,"e":true,"f":true,"h":true,"j":["shortcake","food","dessert"],"k":[6,48],"o":0},"cupcake":{"subcategory":"food-sweet","a":"Cupcake","b":"1F9C1","d":true,"e":true,"f":true,"h":true,"j":["cupcake","food","dessert","bakery","sweet"],"k":[46,8],"o":11},"pie":{"subcategory":"food-sweet","a":"Pie","b":"1F967","d":true,"e":true,"f":true,"h":true,"j":["pie","food","dessert","pastry"],"k":[43,51],"o":5},"chocolate_bar":{"subcategory":"food-sweet","a":"Chocolate Bar","b":"1F36B","d":true,"e":true,"f":true,"h":true,"j":["chocolate_bar","food","snack","dessert","sweet"],"k":[6,43],"o":0},"candy":{"subcategory":"food-sweet","a":"Candy","b":"1F36C","d":true,"e":true,"f":true,"h":true,"j":["candy","snack","dessert","sweet","lolly"],"k":[6,44],"o":0},"lollipop":{"subcategory":"food-sweet","a":"Lollipop","b":"1F36D","d":true,"e":true,"f":true,"h":true,"j":["lollipop","food","snack","candy","sweet"],"k":[6,45],"o":0},"custard":{"subcategory":"food-sweet","a":"Custard","b":"1F36E","d":true,"e":true,"f":true,"h":true,"j":["custard","dessert","food","pudding","flan"],"k":[6,46],"o":0},"honey_pot":{"subcategory":"food-sweet","a":"Honey Pot","b":"1F36F","d":true,"e":true,"f":true,"h":true,"j":["honey_pot","bees","sweet","kitchen"],"k":[6,47],"o":0},"baby_bottle":{"subcategory":"drink","a":"Baby Bottle","b":"1F37C","d":true,"e":true,"f":true,"h":true,"j":["baby_bottle","food","container","milk"],"k":[6,60],"o":1},"glass_of_milk":{"subcategory":"drink","a":"Glass of Milk","b":"1F95B","d":true,"e":true,"f":true,"h":true,"j":["glass_of_milk","beverage","drink","cow"],"k":[43,39],"o":3},"coffee":{"subcategory":"drink","a":"Hot Beverage","b":"2615","d":true,"e":true,"f":true,"h":true,"j":["hot_beverage","beverage","caffeine","latte","espresso","coffee","mug"],"k":[57,18],"o":0},"teapot":{"subcategory":"drink","a":"Teapot","b":"1FAD6","d":true,"e":true,"f":true,"h":true,"j":["teapot","drink","hot"],"k":[55,24],"o":13},"tea":{"subcategory":"drink","a":"Teacup Without Handle","b":"1F375","d":true,"e":true,"f":true,"h":true,"j":["teacup_without_handle","drink","bowl","breakfast","green","british"],"k":[6,53],"o":0},"sake":{"subcategory":"drink","a":"Sake Bottle and Cup","b":"1F376","d":true,"e":true,"f":true,"h":true,"j":["sake","wine","drink","drunk","beverage","japanese","alcohol","booze"],"k":[6,54],"o":0},"champagne":{"subcategory":"drink","a":"Bottle with Popping Cork","b":"1F37E","d":true,"e":true,"f":true,"h":true,"j":["bottle_with_popping_cork","drink","wine","bottle","celebration"],"k":[7,1],"o":1},"wine_glass":{"subcategory":"drink","a":"Wine Glass","b":"1F377","d":true,"e":true,"f":true,"h":true,"j":["wine_glass","drink","beverage","drunk","alcohol","booze"],"k":[6,55],"o":0},"cocktail":{"subcategory":"drink","a":"Cocktail Glass","b":"1F378","d":true,"e":true,"f":true,"h":true,"j":["cocktail_glass","drink","drunk","alcohol","beverage","booze","mojito"],"k":[6,56],"o":0},"tropical_drink":{"subcategory":"drink","a":"Tropical Drink","b":"1F379","d":true,"e":true,"f":true,"h":true,"j":["tropical_drink","beverage","cocktail","summer","beach","alcohol","booze","mojito"],"k":[6,57],"o":0},"beer":{"subcategory":"drink","a":"Beer Mug","b":"1F37A","d":true,"e":true,"f":true,"h":true,"j":["beer_mug","relax","beverage","drink","drunk","party","pub","summer","alcohol","booze"],"k":[6,58],"o":0},"beers":{"subcategory":"drink","a":"Clinking Beer Mugs","b":"1F37B","d":true,"e":true,"f":true,"h":true,"j":["clinking_beer_mugs","relax","beverage","drink","drunk","party","pub","summer","alcohol","booze"],"k":[6,59],"o":0},"clinking_glasses":{"subcategory":"drink","a":"Clinking Glasses","b":"1F942","d":true,"e":true,"f":true,"h":true,"j":["clinking_glasses","beverage","drink","party","alcohol","celebrate","cheers","wine","champagne","toast"],"k":[43,15],"o":3},"tumbler_glass":{"subcategory":"drink","a":"Tumbler Glass","b":"1F943","d":true,"e":true,"f":true,"h":true,"j":["tumbler_glass","drink","beverage","drunk","alcohol","liquor","booze","bourbon","scotch","whisky","glass","shot"],"k":[43,16],"o":3},"pouring_liquid":{"subcategory":"drink","a":"Pouring Liquid","b":"1FAD7","d":true,"e":true,"f":true,"h":true,"j":["pouring liquid","cup","water"],"k":[55,25],"o":14},"cup_with_straw":{"subcategory":"drink","a":"Cup with Straw","b":"1F964","d":true,"e":true,"f":true,"h":true,"j":["cup_with_straw","drink","soda"],"k":[43,48],"o":5},"bubble_tea":{"subcategory":"drink","a":"Bubble Tea","b":"1F9CB","d":true,"e":true,"f":true,"h":true,"j":["bubble tea","taiwan","boba","milk tea","straw"],"k":[46,18],"o":13},"beverage_box":{"subcategory":"drink","a":"Beverage Box","b":"1F9C3","d":true,"e":true,"f":true,"h":true,"j":["beverage_box","drink"],"k":[46,10],"o":12},"mate_drink":{"subcategory":"drink","a":"Mate Drink","b":"1F9C9","d":true,"e":true,"f":true,"h":true,"j":["mate","drink","tea","beverage"],"k":[46,16],"o":12},"ice_cube":{"subcategory":"drink","a":"Ice Cube","b":"1F9CA","d":true,"e":true,"f":true,"h":true,"j":["ice","water","cold"],"k":[46,17],"o":12},"chopsticks":{"subcategory":"dishware","a":"Chopsticks","b":"1F962","d":true,"e":true,"f":true,"h":true,"j":["chopsticks","food"],"k":[43,46],"o":5},"knife_fork_plate":{"subcategory":"dishware","a":"Fork and Knife with Plate","b":"1F37D-FE0F","c":"1F37D","d":true,"e":true,"f":true,"h":true,"j":["fork_and_knife_with_plate","food","eat","meal","lunch","dinner","restaurant"],"k":[7,0],"o":0},"fork_and_knife":{"subcategory":"dishware","a":"Fork and Knife","b":"1F374","d":true,"e":true,"f":true,"h":true,"j":["fork_and_knife","cutlery","kitchen"],"k":[6,52],"o":0},"spoon":{"subcategory":"dishware","a":"Spoon","b":"1F944","d":true,"e":true,"f":true,"h":true,"j":["spoon","cutlery","kitchen","tableware"],"k":[43,17],"o":3},"hocho":{"subcategory":"dishware","a":"Hocho","b":"1F52A","d":true,"e":true,"f":true,"h":true,"j":["kitchen_knife","knife","blade","cutlery","kitchen","weapon"],"k":[30,7],"n":["knife"],"o":0},"jar":{"subcategory":"dishware","a":"Jar","b":"1FAD9","d":true,"e":true,"f":true,"h":true,"j":["jar","container","sauce"],"k":[55,27],"o":14},"amphora":{"subcategory":"dishware","a":"Amphora","b":"1F3FA","d":true,"e":true,"f":true,"h":true,"j":["amphora","vase","jar"],"k":[10,40],"o":1},"earth_africa":{"subcategory":"place-map","a":"Earth Globe Europe-Africa","b":"1F30D","d":true,"e":true,"f":true,"h":true,"j":["globe_showing_europe_africa","globe","world","earth","international"],"k":[5,12],"o":0},"earth_americas":{"subcategory":"place-map","a":"Earth Globe Americas","b":"1F30E","d":true,"e":true,"f":true,"h":true,"j":["globe_showing_americas","globe","world","USA","earth","international"],"k":[5,13],"o":0},"earth_asia":{"subcategory":"place-map","a":"Earth Globe Asia-Australia","b":"1F30F","d":true,"e":true,"f":true,"h":true,"j":["globe_showing_asia_australia","globe","world","east","earth","international"],"k":[5,14],"o":0},"globe_with_meridians":{"subcategory":"place-map","a":"Globe with Meridians","b":"1F310","d":true,"e":true,"f":true,"h":true,"j":["globe_with_meridians","earth","international","world","internet","interweb","i18n"],"k":[5,15],"o":1},"world_map":{"subcategory":"place-map","a":"World Map","b":"1F5FA-FE0F","c":"1F5FA","d":true,"e":true,"f":true,"h":true,"j":["world_map","location","direction"],"k":[32,15],"o":0},"japan":{"subcategory":"place-map","a":"Silhouette of Japan","b":"1F5FE","d":true,"e":true,"f":true,"h":true,"j":["map_of_japan","nation","country","japanese","asia"],"k":[32,19],"o":0},"compass":{"subcategory":"place-map","a":"Compass","b":"1F9ED","d":true,"e":true,"f":true,"h":true,"j":["compass","magnetic","navigation","orienteering"],"k":[53,29],"o":11},"snow_capped_mountain":{"subcategory":"place-geographic","a":"Snow-Capped Mountain","b":"1F3D4-FE0F","c":"1F3D4","d":true,"e":true,"f":true,"h":true,"j":["snow_capped_mountain","photo","nature","environment","winter","cold"],"k":[9,60],"o":0},"mountain":{"subcategory":"place-geographic","a":"Mountain","b":"26F0-FE0F","c":"26F0","d":true,"e":true,"f":true,"h":true,"j":["mountain","photo","nature","environment"],"k":[58,26],"o":0},"volcano":{"subcategory":"place-geographic","a":"Volcano","b":"1F30B","d":true,"e":true,"f":true,"h":true,"j":["volcano","photo","nature","disaster"],"k":[5,10],"o":0},"mount_fuji":{"subcategory":"place-geographic","a":"Mount Fuji","b":"1F5FB","d":true,"e":true,"f":true,"h":true,"j":["mount_fuji","photo","mountain","nature","japanese"],"k":[32,16],"o":0},"camping":{"subcategory":"place-geographic","a":"Camping","b":"1F3D5-FE0F","c":"1F3D5","d":true,"e":true,"f":true,"h":true,"j":["camping","photo","outdoors","tent"],"k":[10,0],"o":0},"beach_with_umbrella":{"subcategory":"place-geographic","a":"Beach with Umbrella","b":"1F3D6-FE0F","c":"1F3D6","d":true,"e":true,"f":true,"h":true,"j":["beach_with_umbrella","weather","summer","sunny","sand","mojito"],"k":[10,1],"o":0},"desert":{"subcategory":"place-geographic","a":"Desert","b":"1F3DC-FE0F","c":"1F3DC","d":true,"e":true,"f":true,"h":true,"j":["desert","photo","warm","saharah"],"k":[10,7],"o":0},"desert_island":{"subcategory":"place-geographic","a":"Desert Island","b":"1F3DD-FE0F","c":"1F3DD","d":true,"e":true,"f":true,"h":true,"j":["desert_island","photo","tropical","mojito"],"k":[10,8],"o":0},"national_park":{"subcategory":"place-geographic","a":"National Park","b":"1F3DE-FE0F","c":"1F3DE","d":true,"e":true,"f":true,"h":true,"j":["national_park","photo","environment","nature"],"k":[10,9],"o":0},"stadium":{"subcategory":"place-building","a":"Stadium","b":"1F3DF-FE0F","c":"1F3DF","d":true,"e":true,"f":true,"h":true,"j":["stadium","photo","place","sports","concert","venue"],"k":[10,10],"o":0},"classical_building":{"subcategory":"place-building","a":"Classical Building","b":"1F3DB-FE0F","c":"1F3DB","d":true,"e":true,"f":true,"h":true,"j":["classical_building","art","culture","history"],"k":[10,6],"o":0},"building_construction":{"subcategory":"place-building","a":"Building Construction","b":"1F3D7-FE0F","c":"1F3D7","d":true,"e":true,"f":true,"h":true,"j":["building_construction","wip","working","progress"],"k":[10,2],"o":0},"bricks":{"subcategory":"place-building","a":"Brick","b":"1F9F1","d":true,"e":true,"f":true,"h":true,"j":["brick","bricks"],"k":[53,33],"o":11},"rock":{"subcategory":"place-building","a":"Rock","b":"1FAA8","d":true,"e":true,"f":true,"h":true,"j":["rock","stone"],"k":[54,33],"o":13},"wood":{"subcategory":"place-building","a":"Wood","b":"1FAB5","d":true,"e":true,"f":true,"h":true,"j":["wood","nature","timber","trunk"],"k":[54,46],"o":13},"hut":{"subcategory":"place-building","a":"Hut","b":"1F6D6","d":true,"e":true,"f":true,"h":true,"j":["hut","house","structure"],"k":[38,7],"o":13},"house_buildings":{"subcategory":"place-building","a":"Houses","b":"1F3D8-FE0F","c":"1F3D8","d":true,"e":true,"f":true,"h":true,"j":["houses","buildings","photo"],"k":[10,3],"o":0},"derelict_house_building":{"subcategory":"place-building","a":"Derelict House","b":"1F3DA-FE0F","c":"1F3DA","d":true,"e":true,"f":true,"h":true,"j":["derelict_house","abandon","evict","broken","building"],"k":[10,5],"o":0},"house":{"subcategory":"place-building","a":"House Building","b":"1F3E0","d":true,"e":true,"f":true,"h":true,"j":["house","building","home"],"k":[10,11],"o":0},"house_with_garden":{"subcategory":"place-building","a":"House with Garden","b":"1F3E1","d":true,"e":true,"f":true,"h":true,"j":["house_with_garden","home","plant","nature"],"k":[10,12],"o":0},"office":{"subcategory":"place-building","a":"Office Building","b":"1F3E2","d":true,"e":true,"f":true,"h":true,"j":["office_building","building","bureau","work"],"k":[10,13],"o":0},"post_office":{"subcategory":"place-building","a":"Japanese Post Office","b":"1F3E3","d":true,"e":true,"f":true,"h":true,"j":["japanese_post_office","building","envelope","communication"],"k":[10,14],"o":0},"european_post_office":{"subcategory":"place-building","a":"European Post Office","b":"1F3E4","d":true,"e":true,"f":true,"h":true,"j":["post_office","building","email"],"k":[10,15],"o":1},"hospital":{"subcategory":"place-building","a":"Hospital","b":"1F3E5","d":true,"e":true,"f":true,"h":true,"j":["hospital","building","health","surgery","doctor"],"k":[10,16],"o":0},"bank":{"subcategory":"place-building","a":"Bank","b":"1F3E6","d":true,"e":true,"f":true,"h":true,"j":["bank","building","money","sales","cash","business","enterprise"],"k":[10,17],"o":0},"hotel":{"subcategory":"place-building","a":"Hotel","b":"1F3E8","d":true,"e":true,"f":true,"h":true,"j":["hotel","building","accomodation","checkin"],"k":[10,19],"o":0},"love_hotel":{"subcategory":"place-building","a":"Love Hotel","b":"1F3E9","d":true,"e":true,"f":true,"h":true,"j":["love_hotel","like","affection","dating"],"k":[10,20],"o":0},"convenience_store":{"subcategory":"place-building","a":"Convenience Store","b":"1F3EA","d":true,"e":true,"f":true,"h":true,"j":["convenience_store","building","shopping","groceries"],"k":[10,21],"o":0},"school":{"subcategory":"place-building","a":"School","b":"1F3EB","d":true,"e":true,"f":true,"h":true,"j":["school","building","student","education","learn","teach"],"k":[10,22],"o":0},"department_store":{"subcategory":"place-building","a":"Department Store","b":"1F3EC","d":true,"e":true,"f":true,"h":true,"j":["department_store","building","shopping","mall"],"k":[10,23],"o":0},"factory":{"subcategory":"place-building","a":"Factory","b":"1F3ED","d":true,"e":true,"f":true,"h":true,"j":["factory","building","industry","pollution","smoke"],"k":[10,24],"o":0},"japanese_castle":{"subcategory":"place-building","a":"Japanese Castle","b":"1F3EF","d":true,"e":true,"f":true,"h":true,"j":["japanese_castle","photo","building"],"k":[10,26],"o":0},"european_castle":{"subcategory":"place-building","a":"European Castle","b":"1F3F0","d":true,"e":true,"f":true,"h":true,"j":["castle","building","royalty","history"],"k":[10,27],"o":0},"wedding":{"subcategory":"place-building","a":"Wedding","b":"1F492","d":true,"e":true,"f":true,"h":true,"j":["wedding","love","like","affection","couple","marriage","bride","groom"],"k":[27,34],"o":0},"tokyo_tower":{"subcategory":"place-building","a":"Tokyo Tower","b":"1F5FC","d":true,"e":true,"f":true,"h":true,"j":["tokyo_tower","photo","japanese"],"k":[32,17],"o":0},"statue_of_liberty":{"subcategory":"place-building","a":"Statue of Liberty","b":"1F5FD","d":true,"e":true,"f":true,"h":true,"j":["statue_of_liberty","american","newyork"],"k":[32,18],"o":0},"church":{"subcategory":"place-religious","a":"Church","b":"26EA","d":true,"e":true,"f":true,"h":true,"j":["church","building","religion","christ"],"k":[58,25],"o":0},"mosque":{"subcategory":"place-religious","a":"Mosque","b":"1F54C","d":true,"e":true,"f":true,"h":true,"j":["mosque","islam","worship","minaret"],"k":[30,30],"o":1},"hindu_temple":{"subcategory":"place-religious","a":"Hindu Temple","b":"1F6D5","d":true,"e":true,"f":true,"h":true,"j":["hindu_temple","religion"],"k":[38,6],"o":12},"synagogue":{"subcategory":"place-religious","a":"Synagogue","b":"1F54D","d":true,"e":true,"f":true,"h":true,"j":["synagogue","judaism","worship","temple","jewish"],"k":[30,31],"o":1},"shinto_shrine":{"subcategory":"place-religious","a":"Shinto Shrine","b":"26E9-FE0F","c":"26E9","d":true,"e":true,"f":true,"h":true,"j":["shinto_shrine","temple","japan","kyoto"],"k":[58,24],"o":0},"kaaba":{"subcategory":"place-religious","a":"Kaaba","b":"1F54B","d":true,"e":true,"f":true,"h":true,"j":["kaaba","mecca","mosque","islam"],"k":[30,29],"o":1},"fountain":{"subcategory":"place-other","a":"Fountain","b":"26F2","d":true,"e":true,"f":true,"h":true,"j":["fountain","photo","summer","water","fresh"],"k":[58,28],"o":0},"tent":{"subcategory":"place-other","a":"Tent","b":"26FA","d":true,"e":true,"f":true,"h":true,"j":["tent","photo","camping","outdoors"],"k":[58,52],"o":0},"foggy":{"subcategory":"place-other","a":"Foggy","b":"1F301","d":true,"e":true,"f":true,"h":true,"j":["foggy","photo","mountain"],"k":[5,0],"o":0},"night_with_stars":{"subcategory":"place-other","a":"Night with Stars","b":"1F303","d":true,"e":true,"f":true,"h":true,"j":["night_with_stars","evening","city","downtown"],"k":[5,2],"o":0},"cityscape":{"subcategory":"place-other","a":"Cityscape","b":"1F3D9-FE0F","c":"1F3D9","d":true,"e":true,"f":true,"h":true,"j":["cityscape","photo","night life","urban"],"k":[10,4],"o":0},"sunrise_over_mountains":{"subcategory":"place-other","a":"Sunrise over Mountains","b":"1F304","d":true,"e":true,"f":true,"h":true,"j":["sunrise_over_mountains","view","vacation","photo"],"k":[5,3],"o":0},"sunrise":{"subcategory":"place-other","a":"Sunrise","b":"1F305","d":true,"e":true,"f":true,"h":true,"j":["sunrise","morning","view","vacation","photo"],"k":[5,4],"o":0},"city_sunset":{"subcategory":"place-other","a":"Cityscape at Dusk","b":"1F306","d":true,"e":true,"f":true,"h":true,"j":["cityscape_at_dusk","photo","evening","sky","buildings"],"k":[5,5],"o":0},"city_sunrise":{"subcategory":"place-other","a":"Sunset over Buildings","b":"1F307","d":true,"e":true,"f":true,"h":true,"j":["sunset","photo","good morning","dawn"],"k":[5,6],"o":0},"bridge_at_night":{"subcategory":"place-other","a":"Bridge at Night","b":"1F309","d":true,"e":true,"f":true,"h":true,"j":["bridge_at_night","photo","sanfrancisco"],"k":[5,8],"o":0},"hotsprings":{"subcategory":"place-other","a":"Hot Springs","b":"2668-FE0F","c":"2668","d":true,"e":true,"f":true,"h":true,"j":["hot_springs","bath","warm","relax"],"k":[57,55],"o":0},"carousel_horse":{"subcategory":"place-other","a":"Carousel Horse","b":"1F3A0","d":true,"e":true,"f":true,"h":true,"j":["carousel_horse","photo","carnival"],"k":[7,35],"o":0},"playground_slide":{"subcategory":"place-other","a":"Playground Slide","b":"1F6DD","d":true,"e":true,"f":true,"h":true,"j":["playground slide","fun","park"],"k":[38,10],"o":14},"ferris_wheel":{"subcategory":"place-other","a":"Ferris Wheel","b":"1F3A1","d":true,"e":true,"f":true,"h":true,"j":["ferris_wheel","photo","carnival","londoneye"],"k":[7,36],"o":0},"roller_coaster":{"subcategory":"place-other","a":"Roller Coaster","b":"1F3A2","d":true,"e":true,"f":true,"h":true,"j":["roller_coaster","carnival","playground","photo","fun"],"k":[7,37],"o":0},"barber":{"subcategory":"place-other","a":"Barber Pole","b":"1F488","d":true,"e":true,"f":true,"h":true,"j":["barber_pole","hair","salon","style"],"k":[26,35],"o":0},"circus_tent":{"subcategory":"place-other","a":"Circus Tent","b":"1F3AA","d":true,"e":true,"f":true,"h":true,"j":["circus_tent","festival","carnival","party"],"k":[7,45],"o":0},"steam_locomotive":{"subcategory":"transport-ground","a":"Steam Locomotive","b":"1F682","d":true,"e":true,"f":true,"h":true,"j":["locomotive","transportation","vehicle","train"],"k":[35,35],"o":1},"railway_car":{"subcategory":"transport-ground","a":"Railway Car","b":"1F683","d":true,"e":true,"f":true,"h":true,"j":["railway_car","transportation","vehicle"],"k":[35,36],"o":0},"bullettrain_side":{"subcategory":"transport-ground","a":"High-Speed Train","b":"1F684","d":true,"e":true,"f":true,"h":true,"j":["high_speed_train","transportation","vehicle"],"k":[35,37],"o":0},"bullettrain_front":{"subcategory":"transport-ground","a":"High-Speed Train with Bullet Nose","b":"1F685","d":true,"e":true,"f":true,"h":true,"j":["bullet_train","transportation","vehicle","speed","fast","public","travel"],"k":[35,38],"o":0},"train2":{"subcategory":"transport-ground","a":"Train","b":"1F686","d":true,"e":true,"f":true,"h":true,"j":["train","transportation","vehicle"],"k":[35,39],"o":1},"metro":{"subcategory":"transport-ground","a":"Metro","b":"1F687","d":true,"e":true,"f":true,"h":true,"j":["metro","transportation","blue-square","mrt","underground","tube"],"k":[35,40],"o":0},"light_rail":{"subcategory":"transport-ground","a":"Light Rail","b":"1F688","d":true,"e":true,"f":true,"h":true,"j":["light_rail","transportation","vehicle"],"k":[35,41],"o":1},"station":{"subcategory":"transport-ground","a":"Station","b":"1F689","d":true,"e":true,"f":true,"h":true,"j":["station","transportation","vehicle","public"],"k":[35,42],"o":0},"tram":{"subcategory":"transport-ground","a":"Tram","b":"1F68A","d":true,"e":true,"f":true,"h":true,"j":["tram","transportation","vehicle"],"k":[35,43],"o":1},"monorail":{"subcategory":"transport-ground","a":"Monorail","b":"1F69D","d":true,"e":true,"f":true,"h":true,"j":["monorail","transportation","vehicle"],"k":[36,1],"o":1},"mountain_railway":{"subcategory":"transport-ground","a":"Mountain Railway","b":"1F69E","d":true,"e":true,"f":true,"h":true,"j":["mountain_railway","transportation","vehicle"],"k":[36,2],"o":1},"train":{"subcategory":"transport-ground","a":"Tram Car","b":"1F68B","d":true,"e":true,"f":true,"h":true,"j":["tram_car","transportation","vehicle","carriage","public","travel"],"k":[35,44],"o":1},"bus":{"subcategory":"transport-ground","a":"Bus","b":"1F68C","d":true,"e":true,"f":true,"h":true,"j":["bus","car","vehicle","transportation"],"k":[35,45],"o":0},"oncoming_bus":{"subcategory":"transport-ground","a":"Oncoming Bus","b":"1F68D","d":true,"e":true,"f":true,"h":true,"j":["oncoming_bus","vehicle","transportation"],"k":[35,46],"o":0},"trolleybus":{"subcategory":"transport-ground","a":"Trolleybus","b":"1F68E","d":true,"e":true,"f":true,"h":true,"j":["trolleybus","bart","transportation","vehicle"],"k":[35,47],"o":1},"minibus":{"subcategory":"transport-ground","a":"Minibus","b":"1F690","d":true,"e":true,"f":true,"h":true,"j":["minibus","vehicle","car","transportation"],"k":[35,49],"o":1},"ambulance":{"subcategory":"transport-ground","a":"Ambulance","b":"1F691","d":true,"e":true,"f":true,"h":true,"j":["ambulance","health","911","hospital"],"k":[35,50],"o":0},"fire_engine":{"subcategory":"transport-ground","a":"Fire Engine","b":"1F692","d":true,"e":true,"f":true,"h":true,"j":["fire_engine","transportation","cars","vehicle"],"k":[35,51],"o":0},"police_car":{"subcategory":"transport-ground","a":"Police Car","b":"1F693","d":true,"e":true,"f":true,"h":true,"j":["police_car","vehicle","cars","transportation","law","legal","enforcement"],"k":[35,52],"o":0},"oncoming_police_car":{"subcategory":"transport-ground","a":"Oncoming Police Car","b":"1F694","d":true,"e":true,"f":true,"h":true,"j":["oncoming_police_car","vehicle","law","legal","enforcement","911"],"k":[35,53],"o":0},"taxi":{"subcategory":"transport-ground","a":"Taxi","b":"1F695","d":true,"e":true,"f":true,"h":true,"j":["taxi","uber","vehicle","cars","transportation"],"k":[35,54],"o":0},"oncoming_taxi":{"subcategory":"transport-ground","a":"Oncoming Taxi","b":"1F696","d":true,"e":true,"f":true,"h":true,"j":["oncoming_taxi","vehicle","cars","uber"],"k":[35,55],"o":1},"car":{"subcategory":"transport-ground","a":"Automobile","b":"1F697","d":true,"e":true,"f":true,"h":true,"j":["automobile","red","transportation","vehicle"],"k":[35,56],"n":["red_car"],"o":0},"oncoming_automobile":{"subcategory":"transport-ground","a":"Oncoming Automobile","b":"1F698","d":true,"e":true,"f":true,"h":true,"j":["oncoming_automobile","car","vehicle","transportation"],"k":[35,57],"o":0},"blue_car":{"subcategory":"transport-ground","a":"Recreational Vehicle","b":"1F699","d":true,"e":true,"f":true,"h":true,"j":["sport_utility_vehicle","transportation","vehicle"],"k":[35,58],"o":0},"pickup_truck":{"subcategory":"transport-ground","a":"Pickup Truck","b":"1F6FB","d":true,"e":true,"f":true,"h":true,"j":["pickup truck","car","transportation"],"k":[38,31],"o":13},"truck":{"subcategory":"transport-ground","a":"Delivery Truck","b":"1F69A","d":true,"e":true,"f":true,"h":true,"j":["delivery_truck","cars","transportation"],"k":[35,59],"o":0},"articulated_lorry":{"subcategory":"transport-ground","a":"Articulated Lorry","b":"1F69B","d":true,"e":true,"f":true,"h":true,"j":["articulated_lorry","vehicle","cars","transportation","express"],"k":[35,60],"o":1},"tractor":{"subcategory":"transport-ground","a":"Tractor","b":"1F69C","d":true,"e":true,"f":true,"h":true,"j":["tractor","vehicle","car","farming","agriculture"],"k":[36,0],"o":1},"racing_car":{"subcategory":"transport-ground","a":"Racing Car","b":"1F3CE-FE0F","c":"1F3CE","d":true,"e":true,"f":true,"h":true,"j":["racing_car","sports","race","fast","formula","f1"],"k":[9,54],"o":0},"racing_motorcycle":{"subcategory":"transport-ground","a":"Motorcycle","b":"1F3CD-FE0F","c":"1F3CD","d":true,"e":true,"f":true,"h":true,"j":["motorcycle","race","sports","fast"],"k":[9,53],"o":0},"motor_scooter":{"subcategory":"transport-ground","a":"Motor Scooter","b":"1F6F5","d":true,"e":true,"f":true,"h":true,"j":["motor_scooter","vehicle","vespa","sasha"],"k":[38,25],"o":3},"manual_wheelchair":{"subcategory":"transport-ground","a":"Manual Wheelchair","b":"1F9BD","d":true,"e":true,"f":true,"h":true,"j":["manual_wheelchair","accessibility"],"k":[46,4],"o":12},"motorized_wheelchair":{"subcategory":"transport-ground","a":"Motorized Wheelchair","b":"1F9BC","d":true,"e":true,"f":true,"h":true,"j":["motorized_wheelchair","accessibility"],"k":[46,3],"o":12},"auto_rickshaw":{"subcategory":"transport-ground","a":"Auto Rickshaw","b":"1F6FA","d":true,"e":true,"f":true,"h":true,"j":["auto_rickshaw","move","transportation"],"k":[38,30],"o":12},"bike":{"subcategory":"transport-ground","a":"Bicycle","b":"1F6B2","d":true,"e":true,"f":true,"h":true,"j":["bicycle","bike","sports","exercise","hipster"],"k":[36,39],"o":0},"scooter":{"subcategory":"transport-ground","a":"Scooter","b":"1F6F4","d":true,"e":true,"f":true,"h":true,"j":["kick_scooter","vehicle","kick","razor"],"k":[38,24],"o":3},"skateboard":{"subcategory":"transport-ground","a":"Skateboard","b":"1F6F9","d":true,"e":true,"f":true,"h":true,"j":["skateboard","board"],"k":[38,29],"o":11},"roller_skate":{"subcategory":"transport-ground","a":"Roller Skate","b":"1F6FC","d":true,"e":true,"f":true,"h":true,"j":["roller skate","footwear","sports"],"k":[38,32],"o":13},"busstop":{"subcategory":"transport-ground","a":"Bus Stop","b":"1F68F","d":true,"e":true,"f":true,"h":true,"j":["bus_stop","transportation","wait"],"k":[35,48],"o":0},"motorway":{"subcategory":"transport-ground","a":"Motorway","b":"1F6E3-FE0F","c":"1F6E3","d":true,"e":true,"f":true,"h":true,"j":["motorway","road","cupertino","interstate","highway"],"k":[38,16],"o":0},"railway_track":{"subcategory":"transport-ground","a":"Railway Track","b":"1F6E4-FE0F","c":"1F6E4","d":true,"e":true,"f":true,"h":true,"j":["railway_track","train","transportation"],"k":[38,17],"o":0},"oil_drum":{"subcategory":"transport-ground","a":"Oil Drum","b":"1F6E2-FE0F","c":"1F6E2","d":true,"e":true,"f":true,"h":true,"j":["oil_drum","barrell"],"k":[38,15],"o":0},"fuelpump":{"subcategory":"transport-ground","a":"Fuel Pump","b":"26FD","d":true,"e":true,"f":true,"h":true,"j":["fuel_pump","gas station","petroleum"],"k":[58,53],"o":0},"wheel":{"subcategory":"transport-ground","a":"Wheel","b":"1F6DE","d":true,"e":true,"f":true,"h":true,"j":["wheel","car","transport"],"k":[38,11],"o":14},"rotating_light":{"subcategory":"transport-ground","a":"Police Cars Revolving Light","b":"1F6A8","d":true,"e":true,"f":true,"h":true,"j":["police_car_light","police","ambulance","911","emergency","alert","error","pinged","law","legal"],"k":[36,29],"o":0},"traffic_light":{"subcategory":"transport-ground","a":"Horizontal Traffic Light","b":"1F6A5","d":true,"e":true,"f":true,"h":true,"j":["horizontal_traffic_light","transportation","signal"],"k":[36,26],"o":0},"vertical_traffic_light":{"subcategory":"transport-ground","a":"Vertical Traffic Light","b":"1F6A6","d":true,"e":true,"f":true,"h":true,"j":["vertical_traffic_light","transportation","driving"],"k":[36,27],"o":1},"octagonal_sign":{"subcategory":"transport-ground","a":"Octagonal Sign","b":"1F6D1","d":true,"e":true,"f":true,"h":true,"j":["stop_sign","stop"],"k":[38,4],"o":3},"construction":{"subcategory":"transport-ground","a":"Construction Sign","b":"1F6A7","d":true,"e":true,"f":true,"h":true,"j":["construction","wip","progress","caution","warning"],"k":[36,28],"o":0},"anchor":{"subcategory":"transport-water","a":"Anchor","b":"2693","d":true,"e":true,"f":true,"h":true,"j":["anchor","ship","ferry","sea","boat"],"k":[57,60],"o":0},"ring_buoy":{"subcategory":"transport-water","a":"Ring Buoy","b":"1F6DF","d":true,"e":true,"f":true,"h":true,"j":["ring buoy","life saver","life preserver"],"k":[38,12],"o":14},"boat":{"subcategory":"transport-water","a":"Sailboat","b":"26F5","d":true,"e":true,"f":true,"h":true,"j":["sailboat","ship","summer","transportation","water","sailing"],"k":[58,31],"n":["sailboat"],"o":0},"canoe":{"subcategory":"transport-water","a":"Canoe","b":"1F6F6","d":true,"e":true,"f":true,"h":true,"j":["canoe","boat","paddle","water","ship"],"k":[38,26],"o":3},"speedboat":{"subcategory":"transport-water","a":"Speedboat","b":"1F6A4","d":true,"e":true,"f":true,"h":true,"j":["speedboat","ship","transportation","vehicle","summer"],"k":[36,25],"o":0},"passenger_ship":{"subcategory":"transport-water","a":"Passenger Ship","b":"1F6F3-FE0F","c":"1F6F3","d":true,"e":true,"f":true,"h":true,"j":["passenger_ship","yacht","cruise","ferry"],"k":[38,23],"o":0},"ferry":{"subcategory":"transport-water","a":"Ferry","b":"26F4-FE0F","c":"26F4","d":true,"e":true,"f":true,"h":true,"j":["ferry","boat","ship","yacht"],"k":[58,30],"o":0},"motor_boat":{"subcategory":"transport-water","a":"Motor Boat","b":"1F6E5-FE0F","c":"1F6E5","d":true,"e":true,"f":true,"h":true,"j":["motor_boat","ship"],"k":[38,18],"o":0},"ship":{"subcategory":"transport-water","a":"Ship","b":"1F6A2","d":true,"e":true,"f":true,"h":true,"j":["ship","transportation","titanic","deploy"],"k":[36,6],"o":0},"airplane":{"subcategory":"transport-air","a":"Airplane","b":"2708-FE0F","c":"2708","d":true,"e":true,"f":true,"h":true,"j":["airplane","vehicle","transportation","flight","fly"],"k":[58,56],"o":0},"small_airplane":{"subcategory":"transport-air","a":"Small Airplane","b":"1F6E9-FE0F","c":"1F6E9","d":true,"e":true,"f":true,"h":true,"j":["small_airplane","flight","transportation","fly","vehicle"],"k":[38,19],"o":0},"airplane_departure":{"subcategory":"transport-air","a":"Airplane Departure","b":"1F6EB","d":true,"e":true,"f":true,"h":true,"j":["airplane_departure","airport","flight","landing"],"k":[38,20],"o":1},"airplane_arriving":{"subcategory":"transport-air","a":"Airplane Arriving","b":"1F6EC","d":true,"e":true,"f":true,"h":true,"j":["airplane_arrival","airport","flight","boarding"],"k":[38,21],"o":1},"parachute":{"subcategory":"transport-air","a":"Parachute","b":"1FA82","d":true,"e":true,"f":true,"h":true,"j":["parachute","fly","glide"],"k":[54,2],"o":12},"seat":{"subcategory":"transport-air","a":"Seat","b":"1F4BA","d":true,"e":true,"f":true,"h":true,"j":["seat","sit","airplane","transport","bus","flight","fly"],"k":[28,18],"o":0},"helicopter":{"subcategory":"transport-air","a":"Helicopter","b":"1F681","d":true,"e":true,"f":true,"h":true,"j":["helicopter","transportation","vehicle","fly"],"k":[35,34],"o":1},"suspension_railway":{"subcategory":"transport-air","a":"Suspension Railway","b":"1F69F","d":true,"e":true,"f":true,"h":true,"j":["suspension_railway","vehicle","transportation"],"k":[36,3],"o":1},"mountain_cableway":{"subcategory":"transport-air","a":"Mountain Cableway","b":"1F6A0","d":true,"e":true,"f":true,"h":true,"j":["mountain_cableway","transportation","vehicle","ski"],"k":[36,4],"o":1},"aerial_tramway":{"subcategory":"transport-air","a":"Aerial Tramway","b":"1F6A1","d":true,"e":true,"f":true,"h":true,"j":["aerial_tramway","transportation","vehicle","ski"],"k":[36,5],"o":1},"satellite":{"subcategory":"transport-air","a":"Satellite","b":"1F6F0-FE0F","c":"1F6F0","d":true,"e":true,"f":true,"h":true,"j":["satellite","communication","gps","orbit","spaceflight","NASA","ISS"],"k":[38,22],"o":0},"rocket":{"subcategory":"transport-air","a":"Rocket","b":"1F680","d":true,"e":true,"f":true,"h":true,"j":["rocket","launch","ship","staffmode","NASA","outer space","outer_space","fly"],"k":[35,33],"o":0},"flying_saucer":{"subcategory":"transport-air","a":"Flying Saucer","b":"1F6F8","d":true,"e":true,"f":true,"h":true,"j":["flying_saucer","transportation","vehicle","ufo"],"k":[38,28],"o":5},"bellhop_bell":{"subcategory":"hotel","a":"Bellhop Bell","b":"1F6CE-FE0F","c":"1F6CE","d":true,"e":true,"f":true,"h":true,"j":["bellhop_bell","service"],"k":[38,1],"o":0},"luggage":{"subcategory":"hotel","a":"Luggage","b":"1F9F3","d":true,"e":true,"f":true,"h":true,"j":["luggage","packing","travel"],"k":[53,35],"o":11},"hourglass":{"subcategory":"time","a":"Hourglass","b":"231B","d":true,"e":true,"f":true,"h":true,"j":["hourglass_done","time","clock","oldschool","limit","exam","quiz","test"],"k":[56,45],"o":0},"hourglass_flowing_sand":{"subcategory":"time","a":"Hourglass with Flowing Sand","b":"23F3","d":true,"e":true,"f":true,"h":true,"j":["hourglass_not_done","oldschool","time","countdown"],"k":[56,58],"o":0},"watch":{"subcategory":"time","a":"Watch","b":"231A","d":true,"e":true,"f":true,"h":true,"j":["watch","time","accessories"],"k":[56,44],"o":0},"alarm_clock":{"subcategory":"time","a":"Alarm Clock","b":"23F0","d":true,"e":true,"f":true,"h":true,"j":["alarm_clock","time","wake"],"k":[56,55],"o":0},"stopwatch":{"subcategory":"time","a":"Stopwatch","b":"23F1-FE0F","c":"23F1","d":true,"e":true,"f":true,"h":true,"j":["stopwatch","time","deadline"],"k":[56,56],"o":1},"timer_clock":{"subcategory":"time","a":"Timer Clock","b":"23F2-FE0F","c":"23F2","d":true,"e":true,"f":true,"h":true,"j":["timer_clock","alarm"],"k":[56,57],"o":1},"mantelpiece_clock":{"subcategory":"time","a":"Mantelpiece Clock","b":"1F570-FE0F","c":"1F570","d":true,"e":true,"f":true,"h":true,"j":["mantelpiece_clock","time"],"k":[30,58],"o":0},"clock12":{"subcategory":"time","a":"Clock Face Twelve Oclock","b":"1F55B","d":true,"e":true,"f":true,"h":true,"j":["twelve_o_clock","12","00:00","0000","12:00","1200","time","noon","midnight","midday","late","early","schedule"],"k":[30,44],"o":0},"clock1230":{"subcategory":"time","a":"Clock Face Twelve-Thirty","b":"1F567","d":true,"e":true,"f":true,"h":true,"j":["twelve_thirty","00:30","0030","12:30","1230","time","late","early","schedule"],"k":[30,56],"o":0},"clock1":{"subcategory":"time","a":"Clock Face One Oclock","b":"1F550","d":true,"e":true,"f":true,"h":true,"j":["one_o_clock","1","1:00","100","13:00","1300","time","late","early","schedule"],"k":[30,33],"o":0},"clock130":{"subcategory":"time","a":"Clock Face One-Thirty","b":"1F55C","d":true,"e":true,"f":true,"h":true,"j":["one_thirty","1:30","130","13:30","1330","time","late","early","schedule"],"k":[30,45],"o":0},"clock2":{"subcategory":"time","a":"Clock Face Two Oclock","b":"1F551","d":true,"e":true,"f":true,"h":true,"j":["two_o_clock","2","2:00","200","14:00","1400","time","late","early","schedule"],"k":[30,34],"o":0},"clock230":{"subcategory":"time","a":"Clock Face Two-Thirty","b":"1F55D","d":true,"e":true,"f":true,"h":true,"j":["two_thirty","2:30","230","14:30","1430","time","late","early","schedule"],"k":[30,46],"o":0},"clock3":{"subcategory":"time","a":"Clock Face Three Oclock","b":"1F552","d":true,"e":true,"f":true,"h":true,"j":["three_o_clock","3","3:00","300","15:00","1500","time","late","early","schedule"],"k":[30,35],"o":0},"clock330":{"subcategory":"time","a":"Clock Face Three-Thirty","b":"1F55E","d":true,"e":true,"f":true,"h":true,"j":["three_thirty","3:30","330","15:30","1530","time","late","early","schedule"],"k":[30,47],"o":0},"clock4":{"subcategory":"time","a":"Clock Face Four Oclock","b":"1F553","d":true,"e":true,"f":true,"h":true,"j":["four_o_clock","4","4:00","400","16:00","1600","time","late","early","schedule"],"k":[30,36],"o":0},"clock430":{"subcategory":"time","a":"Clock Face Four-Thirty","b":"1F55F","d":true,"e":true,"f":true,"h":true,"j":["four_thirty","4:30","430","16:30","1630","time","late","early","schedule"],"k":[30,48],"o":0},"clock5":{"subcategory":"time","a":"Clock Face Five Oclock","b":"1F554","d":true,"e":true,"f":true,"h":true,"j":["five_o_clock","5","5:00","500","17:00","1700","time","late","early","schedule"],"k":[30,37],"o":0},"clock530":{"subcategory":"time","a":"Clock Face Five-Thirty","b":"1F560","d":true,"e":true,"f":true,"h":true,"j":["five_thirty","5:30","530","17:30","1730","time","late","early","schedule"],"k":[30,49],"o":0},"clock6":{"subcategory":"time","a":"Clock Face Six Oclock","b":"1F555","d":true,"e":true,"f":true,"h":true,"j":["six_o_clock","6","6:00","600","18:00","1800","time","late","early","schedule","dawn","dusk"],"k":[30,38],"o":0},"clock630":{"subcategory":"time","a":"Clock Face Six-Thirty","b":"1F561","d":true,"e":true,"f":true,"h":true,"j":["six_thirty","6:30","630","18:30","1830","time","late","early","schedule"],"k":[30,50],"o":0},"clock7":{"subcategory":"time","a":"Clock Face Seven Oclock","b":"1F556","d":true,"e":true,"f":true,"h":true,"j":["seven_o_clock","7","7:00","700","19:00","1900","time","late","early","schedule"],"k":[30,39],"o":0},"clock730":{"subcategory":"time","a":"Clock Face Seven-Thirty","b":"1F562","d":true,"e":true,"f":true,"h":true,"j":["seven_thirty","7:30","730","19:30","1930","time","late","early","schedule"],"k":[30,51],"o":0},"clock8":{"subcategory":"time","a":"Clock Face Eight Oclock","b":"1F557","d":true,"e":true,"f":true,"h":true,"j":["eight_o_clock","8","8:00","800","20:00","2000","time","late","early","schedule"],"k":[30,40],"o":0},"clock830":{"subcategory":"time","a":"Clock Face Eight-Thirty","b":"1F563","d":true,"e":true,"f":true,"h":true,"j":["eight_thirty","8:30","830","20:30","2030","time","late","early","schedule"],"k":[30,52],"o":0},"clock9":{"subcategory":"time","a":"Clock Face Nine Oclock","b":"1F558","d":true,"e":true,"f":true,"h":true,"j":["nine_o_clock","9","9:00","900","21:00","2100","time","late","early","schedule"],"k":[30,41],"o":0},"clock930":{"subcategory":"time","a":"Clock Face Nine-Thirty","b":"1F564","d":true,"e":true,"f":true,"h":true,"j":["nine_thirty","9:30","930","21:30","2130","time","late","early","schedule"],"k":[30,53],"o":0},"clock10":{"subcategory":"time","a":"Clock Face Ten Oclock","b":"1F559","d":true,"e":true,"f":true,"h":true,"j":["ten_o_clock","10","10:00","1000","22:00","2200","time","late","early","schedule"],"k":[30,42],"o":0},"clock1030":{"subcategory":"time","a":"Clock Face Ten-Thirty","b":"1F565","d":true,"e":true,"f":true,"h":true,"j":["ten_thirty","10:30","1030","22:30","2230","time","late","early","schedule"],"k":[30,54],"o":0},"clock11":{"subcategory":"time","a":"Clock Face Eleven Oclock","b":"1F55A","d":true,"e":true,"f":true,"h":true,"j":["eleven_o_clock","11","11:00","1100","23:00","2300","time","late","early","schedule"],"k":[30,43],"o":0},"clock1130":{"subcategory":"time","a":"Clock Face Eleven-Thirty","b":"1F566","d":true,"e":true,"f":true,"h":true,"j":["eleven_thirty","11:30","1130","23:30","2330","time","late","early","schedule"],"k":[30,55],"o":0},"new_moon":{"subcategory":"sky & weather","a":"New Moon Symbol","b":"1F311","d":true,"e":true,"f":true,"h":true,"j":["new_moon","nature","twilight","planet","space","night","evening","sleep"],"k":[5,16],"o":0},"waxing_crescent_moon":{"subcategory":"sky & weather","a":"Waxing Crescent Moon Symbol","b":"1F312","d":true,"e":true,"f":true,"h":true,"j":["waxing_crescent_moon","nature","twilight","planet","space","night","evening","sleep"],"k":[5,17],"o":1},"first_quarter_moon":{"subcategory":"sky & weather","a":"First Quarter Moon Symbol","b":"1F313","d":true,"e":true,"f":true,"h":true,"j":["first_quarter_moon","nature","twilight","planet","space","night","evening","sleep"],"k":[5,18],"o":0},"moon":{"subcategory":"sky & weather","a":"Waxing Gibbous Moon Symbol","b":"1F314","d":true,"e":true,"f":true,"h":true,"j":["waxing_gibbous_moon","nature","night","sky","gray","twilight","planet","space","evening","sleep"],"k":[5,19],"n":["waxing_gibbous_moon"],"o":0},"full_moon":{"subcategory":"sky & weather","a":"Full Moon Symbol","b":"1F315","d":true,"e":true,"f":true,"h":true,"j":["full_moon","nature","yellow","twilight","planet","space","night","evening","sleep"],"k":[5,20],"o":0},"waning_gibbous_moon":{"subcategory":"sky & weather","a":"Waning Gibbous Moon Symbol","b":"1F316","d":true,"e":true,"f":true,"h":true,"j":["waning_gibbous_moon","nature","twilight","planet","space","night","evening","sleep","waxing_gibbous_moon"],"k":[5,21],"o":1},"last_quarter_moon":{"subcategory":"sky & weather","a":"Last Quarter Moon Symbol","b":"1F317","d":true,"e":true,"f":true,"h":true,"j":["last_quarter_moon","nature","twilight","planet","space","night","evening","sleep"],"k":[5,22],"o":1},"waning_crescent_moon":{"subcategory":"sky & weather","a":"Waning Crescent Moon Symbol","b":"1F318","d":true,"e":true,"f":true,"h":true,"j":["waning_crescent_moon","nature","twilight","planet","space","night","evening","sleep"],"k":[5,23],"o":1},"crescent_moon":{"subcategory":"sky & weather","a":"Crescent Moon","b":"1F319","d":true,"e":true,"f":true,"h":true,"j":["crescent_moon","night","sleep","sky","evening","magic"],"k":[5,24],"o":0},"new_moon_with_face":{"subcategory":"sky & weather","a":"New Moon with Face","b":"1F31A","d":true,"e":true,"f":true,"h":true,"j":["new_moon_face","nature","twilight","planet","space","night","evening","sleep"],"k":[5,25],"o":1},"first_quarter_moon_with_face":{"subcategory":"sky & weather","a":"First Quarter Moon with Face","b":"1F31B","d":true,"e":true,"f":true,"h":true,"j":["first_quarter_moon_face","nature","twilight","planet","space","night","evening","sleep"],"k":[5,26],"o":0},"last_quarter_moon_with_face":{"subcategory":"sky & weather","a":"Last Quarter Moon with Face","b":"1F31C","d":true,"e":true,"f":true,"h":true,"j":["last_quarter_moon_face","nature","twilight","planet","space","night","evening","sleep"],"k":[5,27],"o":0},"thermometer":{"subcategory":"sky & weather","a":"Thermometer","b":"1F321-FE0F","c":"1F321","d":true,"e":true,"f":true,"h":true,"j":["thermometer","weather","temperature","hot","cold"],"k":[5,32],"o":0},"sunny":{"subcategory":"sky & weather","a":"Black Sun with Rays","b":"2600-FE0F","c":"2600","d":true,"e":true,"f":true,"h":true,"j":["sun","weather","nature","brightness","summer","beach","spring"],"k":[57,10],"o":0},"full_moon_with_face":{"subcategory":"sky & weather","a":"Full Moon with Face","b":"1F31D","d":true,"e":true,"f":true,"h":true,"j":["full_moon_face","nature","twilight","planet","space","night","evening","sleep"],"k":[5,28],"o":1},"sun_with_face":{"subcategory":"sky & weather","a":"Sun with Face","b":"1F31E","d":true,"e":true,"f":true,"h":true,"j":["sun_with_face","nature","morning","sky"],"k":[5,29],"o":1},"ringed_planet":{"subcategory":"sky & weather","a":"Ringed Planet","b":"1FA90","d":true,"e":true,"f":true,"h":true,"j":["ringed_planet","outerspace"],"k":[54,9],"o":12},"star":{"subcategory":"sky & weather","a":"White Medium Star","b":"2B50","d":true,"e":true,"f":true,"h":true,"j":["star","night","yellow"],"k":[59,55],"o":0},"star2":{"subcategory":"sky & weather","a":"Glowing Star","b":"1F31F","d":true,"e":true,"f":true,"h":true,"j":["glowing_star","night","sparkle","awesome","good","magic"],"k":[5,30],"o":0},"stars":{"subcategory":"sky & weather","a":"Shooting Star","b":"1F320","d":true,"e":true,"f":true,"h":true,"j":["shooting_star","night","photo"],"k":[5,31],"o":0},"milky_way":{"subcategory":"sky & weather","a":"Milky Way","b":"1F30C","d":true,"e":true,"f":true,"h":true,"j":["milky_way","photo","space","stars"],"k":[5,11],"o":0},"cloud":{"subcategory":"sky & weather","a":"Cloud","b":"2601-FE0F","c":"2601","d":true,"e":true,"f":true,"h":true,"j":["cloud","weather","sky"],"k":[57,11],"o":0},"partly_sunny":{"subcategory":"sky & weather","a":"Sun Behind Cloud","b":"26C5","d":true,"e":true,"f":true,"h":true,"j":["sun_behind_cloud","weather","nature","cloudy","morning","fall","spring"],"k":[58,17],"o":0},"thunder_cloud_and_rain":{"subcategory":"sky & weather","a":"Cloud with Lightning and Rain","b":"26C8-FE0F","c":"26C8","d":true,"e":true,"f":true,"h":true,"j":["cloud_with_lightning_and_rain","weather","lightning"],"k":[58,18],"o":0},"mostly_sunny":{"subcategory":"sky & weather","a":"Sun Behind Small Cloud","b":"1F324-FE0F","c":"1F324","d":true,"e":true,"f":true,"h":true,"j":["sun_behind_small_cloud","weather"],"k":[5,33],"n":["sun_small_cloud"],"o":0},"barely_sunny":{"subcategory":"sky & weather","a":"Sun Behind Large Cloud","b":"1F325-FE0F","c":"1F325","d":true,"e":true,"f":true,"h":true,"j":["sun_behind_large_cloud","weather"],"k":[5,34],"n":["sun_behind_cloud"],"o":0},"partly_sunny_rain":{"subcategory":"sky & weather","a":"Sun Behind Rain Cloud","b":"1F326-FE0F","c":"1F326","d":true,"e":true,"f":true,"h":true,"j":["sun_behind_rain_cloud","weather"],"k":[5,35],"n":["sun_behind_rain_cloud"],"o":0},"rain_cloud":{"subcategory":"sky & weather","a":"Cloud with Rain","b":"1F327-FE0F","c":"1F327","d":true,"e":true,"f":true,"h":true,"j":["cloud_with_rain","weather"],"k":[5,36],"o":0},"snow_cloud":{"subcategory":"sky & weather","a":"Cloud with Snow","b":"1F328-FE0F","c":"1F328","d":true,"e":true,"f":true,"h":true,"j":["cloud_with_snow","weather"],"k":[5,37],"o":0},"lightning":{"subcategory":"sky & weather","a":"Cloud with Lightning","b":"1F329-FE0F","c":"1F329","d":true,"e":true,"f":true,"h":true,"j":["cloud_with_lightning","weather","thunder"],"k":[5,38],"n":["lightning_cloud"],"o":0},"tornado":{"subcategory":"sky & weather","a":"Tornado","b":"1F32A-FE0F","c":"1F32A","d":true,"e":true,"f":true,"h":true,"j":["tornado","weather","cyclone","twister"],"k":[5,39],"n":["tornado_cloud"],"o":0},"fog":{"subcategory":"sky & weather","a":"Fog","b":"1F32B-FE0F","c":"1F32B","d":true,"e":true,"f":true,"h":true,"j":["fog","weather"],"k":[5,40],"o":0},"wind_blowing_face":{"subcategory":"sky & weather","a":"Wind Face","b":"1F32C-FE0F","c":"1F32C","d":true,"e":true,"f":true,"h":true,"j":["wind_face","gust","air"],"k":[5,41],"o":0},"cyclone":{"subcategory":"sky & weather","a":"Cyclone","b":"1F300","d":true,"e":true,"f":true,"h":true,"j":["cyclone","weather","swirl","blue","cloud","vortex","spiral","whirlpool","spin","tornado","hurricane","typhoon"],"k":[4,60],"o":0},"rainbow":{"subcategory":"sky & weather","a":"Rainbow","b":"1F308","d":true,"e":true,"f":true,"h":true,"j":["rainbow","nature","happy","unicorn_face","photo","sky","spring"],"k":[5,7],"o":0},"closed_umbrella":{"subcategory":"sky & weather","a":"Closed Umbrella","b":"1F302","d":true,"e":true,"f":true,"h":true,"j":["closed_umbrella","weather","rain","drizzle"],"k":[5,1],"o":0},"umbrella":{"subcategory":"sky & weather","a":"Umbrella","b":"2602-FE0F","c":"2602","d":true,"e":true,"f":true,"h":true,"j":["umbrella","weather","spring"],"k":[57,12],"o":0},"umbrella_with_rain_drops":{"subcategory":"sky & weather","a":"Umbrella with Rain Drops","b":"2614","d":true,"e":true,"f":true,"h":true,"j":["umbrella_with_rain_drops","rainy","weather","spring"],"k":[57,17],"o":0},"umbrella_on_ground":{"subcategory":"sky & weather","a":"Umbrella on Ground","b":"26F1-FE0F","c":"26F1","d":true,"e":true,"f":true,"h":true,"j":["umbrella_on_ground","weather","summer"],"k":[58,27],"o":0},"zap":{"subcategory":"sky & weather","a":"High Voltage Sign","b":"26A1","d":true,"e":true,"f":true,"h":true,"j":["high_voltage","thunder","weather","lightning bolt","fast","zap"],"k":[58,8],"o":0},"snowflake":{"subcategory":"sky & weather","a":"Snowflake","b":"2744-FE0F","c":"2744","d":true,"e":true,"f":true,"h":true,"j":["snowflake","winter","season","cold","weather","christmas","xmas"],"k":[59,30],"o":0},"snowman":{"subcategory":"sky & weather","a":"Snowman","b":"2603-FE0F","c":"2603","d":true,"e":true,"f":true,"h":true,"j":["snowman","winter","season","cold","weather","christmas","xmas","frozen"],"k":[57,13],"o":0},"snowman_without_snow":{"subcategory":"sky & weather","a":"Snowman Without Snow","b":"26C4","d":true,"e":true,"f":true,"h":true,"j":["snowman_without_snow","winter","season","cold","weather","christmas","xmas","frozen","without_snow"],"k":[58,16],"o":0},"comet":{"subcategory":"sky & weather","a":"Comet","b":"2604-FE0F","c":"2604","d":true,"e":true,"f":true,"h":true,"j":["comet","space"],"k":[57,14],"o":1},"fire":{"subcategory":"sky & weather","a":"Fire","b":"1F525","d":true,"e":true,"f":true,"h":true,"j":["fire","hot","cook","flame"],"k":[30,2],"o":0},"droplet":{"subcategory":"sky & weather","a":"Droplet","b":"1F4A7","d":true,"e":true,"f":true,"h":true,"j":["droplet","water","drip","faucet","spring"],"k":[27,55],"o":0},"ocean":{"subcategory":"sky & weather","a":"Water Wave","b":"1F30A","d":true,"e":true,"f":true,"h":true,"j":["water_wave","sea","water","wave","nature","tsunami","disaster"],"k":[5,9],"o":0},"jack_o_lantern":{"subcategory":"event","a":"Jack-O-Lantern","b":"1F383","d":true,"e":true,"f":true,"h":true,"j":["jack_o_lantern","halloween","light","pumpkin","creepy","fall"],"k":[7,6],"o":0},"christmas_tree":{"subcategory":"event","a":"Christmas Tree","b":"1F384","d":true,"e":true,"f":true,"h":true,"j":["christmas_tree","festival","vacation","december","xmas","celebration"],"k":[7,7],"o":0},"fireworks":{"subcategory":"event","a":"Fireworks","b":"1F386","d":true,"e":true,"f":true,"h":true,"j":["fireworks","photo","festival","carnival","congratulations"],"k":[7,14],"o":0},"sparkler":{"subcategory":"event","a":"Firework Sparkler","b":"1F387","d":true,"e":true,"f":true,"h":true,"j":["sparkler","stars","night","shine"],"k":[7,15],"o":0},"firecracker":{"subcategory":"event","a":"Firecracker","b":"1F9E8","d":true,"e":true,"f":true,"h":true,"j":["firecracker","dynamite","boom","explode","explosion","explosive"],"k":[53,24],"o":11},"sparkles":{"subcategory":"event","a":"Sparkles","b":"2728","d":true,"e":true,"f":true,"h":true,"j":["sparkles","stars","shine","shiny","cool","awesome","good","magic"],"k":[59,27],"o":0},"balloon":{"subcategory":"event","a":"Balloon","b":"1F388","d":true,"e":true,"f":true,"h":true,"j":["balloon","party","celebration","birthday","circus"],"k":[7,16],"o":0},"tada":{"subcategory":"event","a":"Party Popper","b":"1F389","d":true,"e":true,"f":true,"h":true,"j":["party_popper","party","congratulations","birthday","magic","circus","celebration","tada"],"k":[7,17],"o":0},"confetti_ball":{"subcategory":"event","a":"Confetti Ball","b":"1F38A","d":true,"e":true,"f":true,"h":true,"j":["confetti_ball","festival","party","birthday","circus"],"k":[7,18],"o":0},"tanabata_tree":{"subcategory":"event","a":"Tanabata Tree","b":"1F38B","d":true,"e":true,"f":true,"h":true,"j":["tanabata_tree","plant","nature","branch","summer","bamboo","wish","star_festival","tanzaku"],"k":[7,19],"o":0},"bamboo":{"subcategory":"event","a":"Pine Decoration","b":"1F38D","d":true,"e":true,"f":true,"h":true,"j":["pine_decoration","japanese","plant","nature","vegetable","panda","new_years","bamboo"],"k":[7,21],"o":0},"dolls":{"subcategory":"event","a":"Japanese Dolls","b":"1F38E","d":true,"e":true,"f":true,"h":true,"j":["japanese_dolls","japanese","toy","kimono"],"k":[7,22],"o":0},"flags":{"subcategory":"event","a":"Carp Streamer","b":"1F38F","d":true,"e":true,"f":true,"h":true,"j":["carp_streamer","fish","japanese","koinobori","carp","banner"],"k":[7,23],"o":0},"wind_chime":{"subcategory":"event","a":"Wind Chime","b":"1F390","d":true,"e":true,"f":true,"h":true,"j":["wind_chime","nature","ding","spring","bell"],"k":[7,24],"o":0},"rice_scene":{"subcategory":"event","a":"Moon Viewing Ceremony","b":"1F391","d":true,"e":true,"f":true,"h":true,"j":["moon_viewing_ceremony","photo","japan","asia","tsukimi"],"k":[7,25],"o":0},"red_envelope":{"subcategory":"event","a":"Red Gift Envelope","b":"1F9E7","d":true,"e":true,"f":true,"h":true,"j":["red_envelope","gift"],"k":[53,23],"o":11},"ribbon":{"subcategory":"event","a":"Ribbon","b":"1F380","d":true,"e":true,"f":true,"h":true,"j":["ribbon","decoration","pink","girl","bowtie"],"k":[7,3],"o":0},"gift":{"subcategory":"event","a":"Wrapped Present","b":"1F381","d":true,"e":true,"f":true,"h":true,"j":["wrapped_gift","present","birthday","christmas","xmas"],"k":[7,4],"o":0},"reminder_ribbon":{"subcategory":"event","a":"Reminder Ribbon","b":"1F397-FE0F","c":"1F397","d":true,"e":true,"f":true,"h":true,"j":["reminder_ribbon","sports","cause","support","awareness"],"k":[7,29],"o":0},"admission_tickets":{"subcategory":"event","a":"Admission Tickets","b":"1F39F-FE0F","c":"1F39F","d":true,"e":true,"f":true,"h":true,"j":["admission_tickets","sports","concert","entrance"],"k":[7,34],"o":0},"ticket":{"subcategory":"event","a":"Ticket","b":"1F3AB","d":true,"e":true,"f":true,"h":true,"j":["ticket","event","concert","pass"],"k":[7,46],"o":0},"medal":{"subcategory":"award-medal","a":"Military Medal","b":"1F396-FE0F","c":"1F396","d":true,"e":true,"f":true,"h":true,"j":["military_medal","award","winning","army"],"k":[7,28],"o":0},"trophy":{"subcategory":"award-medal","a":"Trophy","b":"1F3C6","d":true,"e":true,"f":true,"h":true,"j":["trophy","win","award","contest","place","ftw","ceremony"],"k":[8,51],"o":0},"sports_medal":{"subcategory":"award-medal","a":"Sports Medal","b":"1F3C5","d":true,"e":true,"f":true,"h":true,"j":["sports_medal","award","winning"],"k":[8,50],"o":1},"first_place_medal":{"subcategory":"award-medal","a":"First Place Medal","b":"1F947","d":true,"e":true,"f":true,"h":true,"j":["1st_place_medal","award","winning","first"],"k":[43,19],"o":3},"second_place_medal":{"subcategory":"award-medal","a":"Second Place Medal","b":"1F948","d":true,"e":true,"f":true,"h":true,"j":["2nd_place_medal","award","second"],"k":[43,20],"o":3},"third_place_medal":{"subcategory":"award-medal","a":"Third Place Medal","b":"1F949","d":true,"e":true,"f":true,"h":true,"j":["3rd_place_medal","award","third"],"k":[43,21],"o":3},"soccer":{"subcategory":"sport","a":"Soccer Ball","b":"26BD","d":true,"e":true,"f":true,"h":true,"j":["soccer_ball","sports","football"],"k":[58,14],"o":0},"baseball":{"subcategory":"sport","a":"Baseball","b":"26BE","d":true,"e":true,"f":true,"h":true,"j":["baseball","sports","balls"],"k":[58,15],"o":0},"softball":{"subcategory":"sport","a":"Softball","b":"1F94E","d":true,"e":true,"f":true,"h":true,"j":["softball","sports","balls"],"k":[43,26],"o":11},"basketball":{"subcategory":"sport","a":"Basketball and Hoop","b":"1F3C0","d":true,"e":true,"f":true,"h":true,"j":["basketball","sports","balls","NBA"],"k":[8,6],"o":0},"volleyball":{"subcategory":"sport","a":"Volleyball","b":"1F3D0","d":true,"e":true,"f":true,"h":true,"j":["volleyball","sports","balls"],"k":[9,56],"o":1},"football":{"subcategory":"sport","a":"American Football","b":"1F3C8","d":true,"e":true,"f":true,"h":true,"j":["american_football","sports","balls","NFL"],"k":[8,58],"o":0},"rugby_football":{"subcategory":"sport","a":"Rugby Football","b":"1F3C9","d":true,"e":true,"f":true,"h":true,"j":["rugby_football","sports","team"],"k":[8,59],"o":1},"tennis":{"subcategory":"sport","a":"Tennis Racquet and Ball","b":"1F3BE","d":true,"e":true,"f":true,"h":true,"j":["tennis","sports","balls","green"],"k":[8,4],"o":0},"flying_disc":{"subcategory":"sport","a":"Flying Disc","b":"1F94F","d":true,"e":true,"f":true,"h":true,"j":["flying_disc","sports","frisbee","ultimate"],"k":[43,27],"o":11},"bowling":{"subcategory":"sport","a":"Bowling","b":"1F3B3","d":true,"e":true,"f":true,"h":true,"j":["bowling","sports","fun","play"],"k":[7,54],"o":0},"cricket_bat_and_ball":{"subcategory":"sport","a":"Cricket Bat and Ball","b":"1F3CF","d":true,"e":true,"f":true,"h":true,"j":["cricket_game","sports"],"k":[9,55],"o":1},"field_hockey_stick_and_ball":{"subcategory":"sport","a":"Field Hockey Stick and Ball","b":"1F3D1","d":true,"e":true,"f":true,"h":true,"j":["field_hockey","sports"],"k":[9,57],"o":1},"ice_hockey_stick_and_puck":{"subcategory":"sport","a":"Ice Hockey Stick and Puck","b":"1F3D2","d":true,"e":true,"f":true,"h":true,"j":["ice_hockey","sports"],"k":[9,58],"o":1},"lacrosse":{"subcategory":"sport","a":"Lacrosse Stick and Ball","b":"1F94D","d":true,"e":true,"f":true,"h":true,"j":["lacrosse","sports","ball","stick"],"k":[43,25],"o":11},"table_tennis_paddle_and_ball":{"subcategory":"sport","a":"Table Tennis Paddle and Ball","b":"1F3D3","d":true,"e":true,"f":true,"h":true,"j":["ping_pong","sports","pingpong"],"k":[9,59],"o":1},"badminton_racquet_and_shuttlecock":{"subcategory":"sport","a":"Badminton Racquet and Shuttlecock","b":"1F3F8","d":true,"e":true,"f":true,"h":true,"j":["badminton","sports"],"k":[10,38],"o":1},"boxing_glove":{"subcategory":"sport","a":"Boxing Glove","b":"1F94A","d":true,"e":true,"f":true,"h":true,"j":["boxing_glove","sports","fighting"],"k":[43,22],"o":3},"martial_arts_uniform":{"subcategory":"sport","a":"Martial Arts Uniform","b":"1F94B","d":true,"e":true,"f":true,"h":true,"j":["martial_arts_uniform","judo","karate","taekwondo"],"k":[43,23],"o":3},"goal_net":{"subcategory":"sport","a":"Goal Net","b":"1F945","d":true,"e":true,"f":true,"h":true,"j":["goal_net","sports"],"k":[43,18],"o":3},"golf":{"subcategory":"sport","a":"Flag in Hole","b":"26F3","d":true,"e":true,"f":true,"h":true,"j":["flag_in_hole","sports","business","flag","hole","summer"],"k":[58,29],"o":0},"ice_skate":{"subcategory":"sport","a":"Ice Skate","b":"26F8-FE0F","c":"26F8","d":true,"e":true,"f":true,"h":true,"j":["ice_skate","sports"],"k":[58,33],"o":0},"fishing_pole_and_fish":{"subcategory":"sport","a":"Fishing Pole and Fish","b":"1F3A3","d":true,"e":true,"f":true,"h":true,"j":["fishing_pole","food","hobby","summer"],"k":[7,38],"o":0},"diving_mask":{"subcategory":"sport","a":"Diving Mask","b":"1F93F","d":true,"e":true,"f":true,"h":true,"j":["diving_mask","sport","ocean"],"k":[43,12],"o":12},"running_shirt_with_sash":{"subcategory":"sport","a":"Running Shirt with Sash","b":"1F3BD","d":true,"e":true,"f":true,"h":true,"j":["running_shirt","play","pageant"],"k":[8,3],"o":0},"ski":{"subcategory":"sport","a":"Ski and Ski Boot","b":"1F3BF","d":true,"e":true,"f":true,"h":true,"j":["skis","sports","winter","cold","snow"],"k":[8,5],"o":0},"sled":{"subcategory":"sport","a":"Sled","b":"1F6F7","d":true,"e":true,"f":true,"h":true,"j":["sled","sleigh","luge","toboggan"],"k":[38,27],"o":5},"curling_stone":{"subcategory":"sport","a":"Curling Stone","b":"1F94C","d":true,"e":true,"f":true,"h":true,"j":["curling_stone","sports"],"k":[43,24],"o":5},"dart":{"subcategory":"game","a":"Direct Hit","b":"1F3AF","d":true,"e":true,"f":true,"h":true,"j":["direct_hit","game","play","bar","target","bullseye"],"k":[7,50],"o":0},"yo-yo":{"subcategory":"game","a":"Yo-Yo","b":"1FA80","d":true,"e":true,"f":true,"h":true,"j":["yo_yo","toy"],"k":[54,0],"o":12},"kite":{"subcategory":"game","a":"Kite","b":"1FA81","d":true,"e":true,"f":true,"h":true,"j":["kite","wind","fly"],"k":[54,1],"o":12},"gun":{"subcategory":"game","a":"Pistol","b":"1F52B","d":true,"e":true,"f":true,"h":true,"j":["pistol","violence","weapon","revolver"],"k":[30,8],"o":0},"8ball":{"subcategory":"game","a":"Billiards","b":"1F3B1","d":true,"e":true,"f":true,"h":true,"j":["pool_8_ball","pool","hobby","game","luck","magic"],"k":[7,52],"o":0},"crystal_ball":{"subcategory":"game","a":"Crystal Ball","b":"1F52E","d":true,"e":true,"f":true,"h":true,"j":["crystal_ball","disco","party","magic","circus","fortune_teller"],"k":[30,11],"o":0},"magic_wand":{"subcategory":"game","a":"Magic Wand","b":"1FA84","d":true,"e":true,"f":true,"h":true,"j":["magic wand","supernature","power"],"k":[54,4],"o":13},"video_game":{"subcategory":"game","a":"Video Game","b":"1F3AE","d":true,"e":true,"f":true,"h":true,"j":["video_game","play","console","PS4","controller"],"k":[7,49],"o":0},"joystick":{"subcategory":"game","a":"Joystick","b":"1F579-FE0F","c":"1F579","d":true,"e":true,"f":true,"h":true,"j":["joystick","game","play"],"k":[31,26],"o":0},"slot_machine":{"subcategory":"game","a":"Slot Machine","b":"1F3B0","d":true,"e":true,"f":true,"h":true,"j":["slot_machine","bet","gamble","vegas","fruit machine","luck","casino"],"k":[7,51],"o":0},"game_die":{"subcategory":"game","a":"Game Die","b":"1F3B2","d":true,"e":true,"f":true,"h":true,"j":["game_die","dice","random","tabletop","play","luck"],"k":[7,53],"o":0},"jigsaw":{"subcategory":"game","a":"Jigsaw Puzzle Piece","b":"1F9E9","d":true,"e":true,"f":true,"h":true,"j":["puzzle_piece","interlocking","puzzle","piece"],"k":[53,25],"o":11},"teddy_bear":{"subcategory":"game","a":"Teddy Bear","b":"1F9F8","d":true,"e":true,"f":true,"h":true,"j":["teddy_bear","plush","stuffed"],"k":[53,40],"o":11},"pinata":{"subcategory":"game","a":"Pinata","b":"1FA85","d":true,"e":true,"f":true,"h":true,"j":["pinata","mexico","candy","celebration"],"k":[54,5],"o":13},"mirror_ball":{"subcategory":"game","a":"Mirror Ball","b":"1FAA9","d":true,"e":true,"f":true,"h":true,"j":["mirror ball","disco","dance","party"],"k":[54,34],"o":14},"nesting_dolls":{"subcategory":"game","a":"Nesting Dolls","b":"1FA86","d":true,"e":true,"f":true,"h":true,"j":["nesting dolls","matryoshka","toy"],"k":[54,6],"o":13},"spades":{"subcategory":"game","a":"Black Spade Suit","b":"2660-FE0F","c":"2660","d":true,"e":true,"f":true,"h":true,"j":["spade_suit","poker","cards","suits","magic"],"k":[57,51],"o":0},"hearts":{"subcategory":"game","a":"Black Heart Suit","b":"2665-FE0F","c":"2665","d":true,"e":true,"f":true,"h":true,"j":["heart_suit","poker","cards","magic","suits"],"k":[57,53],"o":0},"diamonds":{"subcategory":"game","a":"Black Diamond Suit","b":"2666-FE0F","c":"2666","d":true,"e":true,"f":true,"h":true,"j":["diamond_suit","poker","cards","magic","suits"],"k":[57,54],"o":0},"clubs":{"subcategory":"game","a":"Black Club Suit","b":"2663-FE0F","c":"2663","d":true,"e":true,"f":true,"h":true,"j":["club_suit","poker","cards","magic","suits"],"k":[57,52],"o":0},"chess_pawn":{"subcategory":"game","a":"Chess Pawn","b":"265F-FE0F","c":"265F","d":true,"e":true,"f":true,"h":true,"j":["chess_pawn","expendable"],"k":[57,50],"o":11},"black_joker":{"subcategory":"game","a":"Playing Card Black Joker","b":"1F0CF","d":true,"e":true,"f":true,"h":true,"j":["joker","poker","cards","game","play","magic"],"k":[0,15],"o":0},"mahjong":{"subcategory":"game","a":"Mahjong Tile Red Dragon","b":"1F004","d":true,"e":true,"f":true,"h":true,"j":["mahjong_red_dragon","game","play","chinese","kanji"],"k":[0,14],"o":0},"flower_playing_cards":{"subcategory":"game","a":"Flower Playing Cards","b":"1F3B4","d":true,"e":true,"f":true,"h":true,"j":["flower_playing_cards","game","sunset","red"],"k":[7,55],"o":0},"performing_arts":{"subcategory":"arts & crafts","a":"Performing Arts","b":"1F3AD","d":true,"e":true,"f":true,"h":true,"j":["performing_arts","acting","theater","drama"],"k":[7,48],"o":0},"frame_with_picture":{"subcategory":"arts & crafts","a":"Framed Picture","b":"1F5BC-FE0F","c":"1F5BC","d":true,"e":true,"f":true,"h":true,"j":["framed_picture","photography"],"k":[32,0],"o":0},"art":{"subcategory":"arts & crafts","a":"Artist Palette","b":"1F3A8","d":true,"e":true,"f":true,"h":true,"j":["artist_palette","design","paint","draw","colors"],"k":[7,43],"o":0},"thread":{"subcategory":"arts & crafts","a":"Spool of Thread","b":"1F9F5","d":true,"e":true,"f":true,"h":true,"j":["thread","needle","sewing","spool","string"],"k":[53,37],"o":11},"sewing_needle":{"subcategory":"arts & crafts","a":"Sewing Needle","b":"1FAA1","d":true,"e":true,"f":true,"h":true,"j":["sewing needle","stitches"],"k":[54,26],"o":13},"yarn":{"subcategory":"arts & crafts","a":"Ball of Yarn","b":"1F9F6","d":true,"e":true,"f":true,"h":true,"j":["yarn","ball","crochet","knit"],"k":[53,38],"o":11},"knot":{"subcategory":"arts & crafts","a":"Knot","b":"1FAA2","d":true,"e":true,"f":true,"h":true,"j":["knot","rope","scout"],"k":[54,27],"o":13},"eyeglasses":{"subcategory":"clothing","a":"Eyeglasses","b":"1F453","d":true,"e":true,"f":true,"h":true,"j":["glasses","fashion","accessories","eyesight","nerdy","dork","geek"],"k":[13,16],"o":0},"dark_sunglasses":{"subcategory":"clothing","a":"Sunglasses","b":"1F576-FE0F","c":"1F576","d":true,"e":true,"f":true,"h":true,"j":["sunglasses","face","cool","accessories"],"k":[31,23],"o":0},"goggles":{"subcategory":"clothing","a":"Goggles","b":"1F97D","d":true,"e":true,"f":true,"h":true,"j":["goggles","eyes","protection","safety"],"k":[44,17],"o":11},"lab_coat":{"subcategory":"clothing","a":"Lab Coat","b":"1F97C","d":true,"e":true,"f":true,"h":true,"j":["lab_coat","doctor","experiment","scientist","chemist"],"k":[44,16],"o":11},"safety_vest":{"subcategory":"clothing","a":"Safety Vest","b":"1F9BA","d":true,"e":true,"f":true,"h":true,"j":["safety_vest","protection"],"k":[45,57],"o":12},"necktie":{"subcategory":"clothing","a":"Necktie","b":"1F454","d":true,"e":true,"f":true,"h":true,"j":["necktie","shirt","suitup","formal","fashion","cloth","business"],"k":[13,17],"o":0},"shirt":{"subcategory":"clothing","a":"T-Shirt","b":"1F455","d":true,"e":true,"f":true,"h":true,"j":["t_shirt","fashion","cloth","casual","shirt","tee"],"k":[13,18],"n":["tshirt"],"o":0},"jeans":{"subcategory":"clothing","a":"Jeans","b":"1F456","d":true,"e":true,"f":true,"h":true,"j":["jeans","fashion","shopping"],"k":[13,19],"o":0},"scarf":{"subcategory":"clothing","a":"Scarf","b":"1F9E3","d":true,"e":true,"f":true,"h":true,"j":["scarf","neck","winter","clothes"],"k":[53,19],"o":5},"gloves":{"subcategory":"clothing","a":"Gloves","b":"1F9E4","d":true,"e":true,"f":true,"h":true,"j":["gloves","hands","winter","clothes"],"k":[53,20],"o":5},"coat":{"subcategory":"clothing","a":"Coat","b":"1F9E5","d":true,"e":true,"f":true,"h":true,"j":["coat","jacket"],"k":[53,21],"o":5},"socks":{"subcategory":"clothing","a":"Socks","b":"1F9E6","d":true,"e":true,"f":true,"h":true,"j":["socks","stockings","clothes"],"k":[53,22],"o":5},"dress":{"subcategory":"clothing","a":"Dress","b":"1F457","d":true,"e":true,"f":true,"h":true,"j":["dress","clothes","fashion","shopping"],"k":[13,20],"o":0},"kimono":{"subcategory":"clothing","a":"Kimono","b":"1F458","d":true,"e":true,"f":true,"h":true,"j":["kimono","dress","fashion","women","female","japanese"],"k":[13,21],"o":0},"sari":{"subcategory":"clothing","a":"Sari","b":"1F97B","d":true,"e":true,"f":true,"h":true,"j":["sari","dress"],"k":[44,15],"o":12},"one-piece_swimsuit":{"subcategory":"clothing","a":"One-Piece Swimsuit","b":"1FA71","d":true,"e":true,"f":true,"h":true,"j":["one_piece_swimsuit","fashion"],"k":[53,49],"o":12},"briefs":{"subcategory":"clothing","a":"Briefs","b":"1FA72","d":true,"e":true,"f":true,"h":true,"j":["briefs","clothing"],"k":[53,50],"o":12},"shorts":{"subcategory":"clothing","a":"Shorts","b":"1FA73","d":true,"e":true,"f":true,"h":true,"j":["shorts","clothing"],"k":[53,51],"o":12},"bikini":{"subcategory":"clothing","a":"Bikini","b":"1F459","d":true,"e":true,"f":true,"h":true,"j":["bikini","swimming","female","woman","girl","fashion","beach","summer"],"k":[13,22],"o":0},"womans_clothes":{"subcategory":"clothing","a":"Womans Clothes","b":"1F45A","d":true,"e":true,"f":true,"h":true,"j":["woman_s_clothes","fashion","shopping_bags","female"],"k":[13,23],"o":0},"folding_hand_fan":{"subcategory":"clothing","a":"Folding Hand Fan","b":"1FAAD","d":true,"e":true,"f":false,"h":false,"j":["folding hand fan","flamenco","hot"],"k":[54,38],"o":15},"purse":{"subcategory":"clothing","a":"Purse","b":"1F45B","d":true,"e":true,"f":true,"h":true,"j":["purse","fashion","accessories","money","sales","shopping"],"k":[13,24],"o":0},"handbag":{"subcategory":"clothing","a":"Handbag","b":"1F45C","d":true,"e":true,"f":true,"h":true,"j":["handbag","fashion","accessory","accessories","shopping"],"k":[13,25],"o":0},"pouch":{"subcategory":"clothing","a":"Pouch","b":"1F45D","d":true,"e":true,"f":true,"h":true,"j":["clutch_bag","bag","accessories","shopping"],"k":[13,26],"o":0},"shopping_bags":{"subcategory":"clothing","a":"Shopping Bags","b":"1F6CD-FE0F","c":"1F6CD","d":true,"e":true,"f":true,"h":true,"j":["shopping_bags","mall","buy","purchase"],"k":[38,0],"o":0},"school_satchel":{"subcategory":"clothing","a":"School Satchel","b":"1F392","d":true,"e":true,"f":true,"h":true,"j":["backpack","student","education","bag"],"k":[7,26],"o":0},"thong_sandal":{"subcategory":"clothing","a":"Thong Sandal","b":"1FA74","d":true,"e":true,"f":true,"h":true,"j":["thong sandal","footwear","summer"],"k":[53,52],"o":13},"mans_shoe":{"subcategory":"clothing","a":"Mans Shoe","b":"1F45E","d":true,"e":true,"f":true,"h":true,"j":["man_s_shoe","fashion","male"],"k":[13,27],"n":["shoe"],"o":0},"athletic_shoe":{"subcategory":"clothing","a":"Athletic Shoe","b":"1F45F","d":true,"e":true,"f":true,"h":true,"j":["running_shoe","shoes","sports","sneakers"],"k":[13,28],"o":0},"hiking_boot":{"subcategory":"clothing","a":"Hiking Boot","b":"1F97E","d":true,"e":true,"f":true,"h":true,"j":["hiking_boot","backpacking","camping","hiking"],"k":[44,18],"o":11},"womans_flat_shoe":{"subcategory":"clothing","a":"Flat Shoe","b":"1F97F","d":true,"e":true,"f":true,"h":true,"j":["flat_shoe","ballet","slip-on","slipper"],"k":[44,19],"o":11},"high_heel":{"subcategory":"clothing","a":"High-Heeled Shoe","b":"1F460","d":true,"e":true,"f":true,"h":true,"j":["high_heeled_shoe","fashion","shoes","female","pumps","stiletto"],"k":[13,29],"o":0},"sandal":{"subcategory":"clothing","a":"Womans Sandal","b":"1F461","d":true,"e":true,"f":true,"h":true,"j":["woman_s_sandal","shoes","fashion","flip flops"],"k":[13,30],"o":0},"ballet_shoes":{"subcategory":"clothing","a":"Ballet Shoes","b":"1FA70","d":true,"e":true,"f":true,"h":true,"j":["ballet_shoes","dance"],"k":[53,48],"o":12},"boot":{"subcategory":"clothing","a":"Womans Boots","b":"1F462","d":true,"e":true,"f":true,"h":true,"j":["woman_s_boot","shoes","fashion"],"k":[13,31],"o":0},"hair_pick":{"subcategory":"clothing","a":"Hair Pick","b":"1FAAE","d":true,"e":true,"f":false,"h":false,"j":["hair pick","afro","comb"],"k":[54,39],"o":15},"crown":{"subcategory":"clothing","a":"Crown","b":"1F451","d":true,"e":true,"f":true,"h":true,"j":["crown","king","kod","leader","royalty","lord"],"k":[13,14],"o":0},"womans_hat":{"subcategory":"clothing","a":"Womans Hat","b":"1F452","d":true,"e":true,"f":true,"h":true,"j":["woman_s_hat","fashion","accessories","female","lady","spring"],"k":[13,15],"o":0},"tophat":{"subcategory":"clothing","a":"Top Hat","b":"1F3A9","d":true,"e":true,"f":true,"h":true,"j":["top_hat","magic","gentleman","classy","circus"],"k":[7,44],"o":0},"mortar_board":{"subcategory":"clothing","a":"Graduation Cap","b":"1F393","d":true,"e":true,"f":true,"h":true,"j":["graduation_cap","school","college","degree","university","graduation","cap","hat","legal","learn","education"],"k":[7,27],"o":0},"billed_cap":{"subcategory":"clothing","a":"Billed Cap","b":"1F9E2","d":true,"e":true,"f":true,"h":true,"j":["billed_cap","cap","baseball"],"k":[53,18],"o":5},"military_helmet":{"subcategory":"clothing","a":"Military Helmet","b":"1FA96","d":true,"e":true,"f":true,"h":true,"j":["military helmet","army","protection"],"k":[54,15],"o":13},"helmet_with_white_cross":{"subcategory":"clothing","a":"Rescue Worker’s Helmet","b":"26D1-FE0F","c":"26D1","d":true,"e":true,"f":true,"h":true,"j":["rescue_worker_s_helmet","construction","build"],"k":[58,21],"o":0},"prayer_beads":{"subcategory":"clothing","a":"Prayer Beads","b":"1F4FF","d":true,"e":true,"f":true,"h":true,"j":["prayer_beads","dhikr","religious"],"k":[29,25],"o":1},"lipstick":{"subcategory":"clothing","a":"Lipstick","b":"1F484","d":true,"e":true,"f":true,"h":true,"j":["lipstick","female","girl","fashion","woman"],"k":[25,53],"o":0},"ring":{"subcategory":"clothing","a":"Ring","b":"1F48D","d":true,"e":true,"f":true,"h":true,"j":["ring","wedding","propose","marriage","valentines","diamond","fashion","jewelry","gem","engagement"],"k":[26,40],"o":0},"gem":{"subcategory":"clothing","a":"Gem Stone","b":"1F48E","d":true,"e":true,"f":true,"h":true,"j":["gem_stone","blue","ruby","diamond","jewelry"],"k":[26,41],"o":0},"mute":{"subcategory":"sound","a":"Speaker with Cancellation Stroke","b":"1F507","d":true,"e":true,"f":true,"h":true,"j":["muted_speaker","sound","volume","silence","quiet"],"k":[29,33],"o":1},"speaker":{"subcategory":"sound","a":"Speaker","b":"1F508","d":true,"e":true,"f":true,"h":true,"j":["speaker_low_volume","sound","volume","silence","broadcast"],"k":[29,34],"o":0},"sound":{"subcategory":"sound","a":"Speaker with One Sound Wave","b":"1F509","d":true,"e":true,"f":true,"h":true,"j":["speaker_medium_volume","volume","speaker","broadcast"],"k":[29,35],"o":1},"loud_sound":{"subcategory":"sound","a":"Speaker with Three Sound Waves","b":"1F50A","d":true,"e":true,"f":true,"h":true,"j":["speaker_high_volume","volume","noise","noisy","speaker","broadcast"],"k":[29,36],"o":0},"loudspeaker":{"subcategory":"sound","a":"Public Address Loudspeaker","b":"1F4E2","d":true,"e":true,"f":true,"h":true,"j":["loudspeaker","volume","sound"],"k":[28,58],"o":0},"mega":{"subcategory":"sound","a":"Cheering Megaphone","b":"1F4E3","d":true,"e":true,"f":true,"h":true,"j":["megaphone","sound","speaker","volume"],"k":[28,59],"o":0},"postal_horn":{"subcategory":"sound","a":"Postal Horn","b":"1F4EF","d":true,"e":true,"f":true,"h":true,"j":["postal_horn","instrument","music"],"k":[29,10],"o":1},"bell":{"subcategory":"sound","a":"Bell","b":"1F514","d":true,"e":true,"f":true,"h":true,"j":["bell","sound","notification","christmas","xmas","chime"],"k":[29,46],"o":0},"no_bell":{"subcategory":"sound","a":"Bell with Cancellation Stroke","b":"1F515","d":true,"e":true,"f":true,"h":true,"j":["bell_with_slash","sound","volume","mute","quiet","silent"],"k":[29,47],"o":1},"musical_score":{"subcategory":"music","a":"Musical Score","b":"1F3BC","d":true,"e":true,"f":true,"h":true,"j":["musical_score","treble","clef","compose"],"k":[8,2],"o":0},"musical_note":{"subcategory":"music","a":"Musical Note","b":"1F3B5","d":true,"e":true,"f":true,"h":true,"j":["musical_note","score","tone","sound"],"k":[7,56],"o":0},"notes":{"subcategory":"music","a":"Multiple Musical Notes","b":"1F3B6","d":true,"e":true,"f":true,"h":true,"j":["musical_notes","music","score"],"k":[7,57],"o":0},"studio_microphone":{"subcategory":"music","a":"Studio Microphone","b":"1F399-FE0F","c":"1F399","d":true,"e":true,"f":true,"h":true,"j":["studio_microphone","sing","recording","artist","talkshow"],"k":[7,30],"o":0},"level_slider":{"subcategory":"music","a":"Level Slider","b":"1F39A-FE0F","c":"1F39A","d":true,"e":true,"f":true,"h":true,"j":["level_slider","scale"],"k":[7,31],"o":0},"control_knobs":{"subcategory":"music","a":"Control Knobs","b":"1F39B-FE0F","c":"1F39B","d":true,"e":true,"f":true,"h":true,"j":["control_knobs","dial"],"k":[7,32],"o":0},"microphone":{"subcategory":"music","a":"Microphone","b":"1F3A4","d":true,"e":true,"f":true,"h":true,"j":["microphone","sound","music","PA","sing","talkshow"],"k":[7,39],"o":0},"headphones":{"subcategory":"music","a":"Headphone","b":"1F3A7","d":true,"e":true,"f":true,"h":true,"j":["headphone","music","score","gadgets"],"k":[7,42],"o":0},"radio":{"subcategory":"music","a":"Radio","b":"1F4FB","d":true,"e":true,"f":true,"h":true,"j":["radio","communication","music","podcast","program"],"k":[29,22],"o":0},"saxophone":{"subcategory":"musical-instrument","a":"Saxophone","b":"1F3B7","d":true,"e":true,"f":true,"h":true,"j":["saxophone","music","instrument","jazz","blues"],"k":[7,58],"o":0},"accordion":{"subcategory":"musical-instrument","a":"Accordion","b":"1FA97","d":true,"e":true,"f":true,"h":true,"j":["accordion","music"],"k":[54,16],"o":13},"guitar":{"subcategory":"musical-instrument","a":"Guitar","b":"1F3B8","d":true,"e":true,"f":true,"h":true,"j":["guitar","music","instrument"],"k":[7,59],"o":0},"musical_keyboard":{"subcategory":"musical-instrument","a":"Musical Keyboard","b":"1F3B9","d":true,"e":true,"f":true,"h":true,"j":["musical_keyboard","piano","instrument","compose"],"k":[7,60],"o":0},"trumpet":{"subcategory":"musical-instrument","a":"Trumpet","b":"1F3BA","d":true,"e":true,"f":true,"h":true,"j":["trumpet","music","brass"],"k":[8,0],"o":0},"violin":{"subcategory":"musical-instrument","a":"Violin","b":"1F3BB","d":true,"e":true,"f":true,"h":true,"j":["violin","music","instrument","orchestra","symphony"],"k":[8,1],"o":0},"banjo":{"subcategory":"musical-instrument","a":"Banjo","b":"1FA95","d":true,"e":true,"f":true,"h":true,"j":["banjo","music","instructment"],"k":[54,14],"o":12},"drum_with_drumsticks":{"subcategory":"musical-instrument","a":"Drum with Drumsticks","b":"1F941","d":true,"e":true,"f":true,"h":true,"j":["drum","music","instrument","drumsticks","snare"],"k":[43,14],"o":3},"long_drum":{"subcategory":"musical-instrument","a":"Long Drum","b":"1FA98","d":true,"e":true,"f":true,"h":true,"j":["long drum","music"],"k":[54,17],"o":13},"maracas":{"subcategory":"musical-instrument","a":"Maracas","b":"1FA87","d":true,"e":true,"f":false,"h":false,"j":["maracas","music","instrument","percussion"],"k":[54,7],"o":15},"flute":{"subcategory":"musical-instrument","a":"Flute","b":"1FA88","d":true,"e":true,"f":false,"h":false,"j":["flute","bamboo","music","instrument","pied piper"],"k":[54,8],"o":15},"iphone":{"subcategory":"phone","a":"Mobile Phone","b":"1F4F1","d":true,"e":true,"f":true,"h":true,"j":["mobile_phone","technology","apple","gadgets","dial"],"k":[29,12],"o":0},"calling":{"subcategory":"phone","a":"Mobile Phone with Rightwards Arrow at Left","b":"1F4F2","d":true,"e":true,"f":true,"h":true,"j":["mobile_phone_with_arrow","iphone","incoming"],"k":[29,13],"o":0},"phone":{"subcategory":"phone","a":"Black Telephone","b":"260E-FE0F","c":"260E","d":true,"e":true,"f":true,"h":true,"j":["telephone","technology","communication","dial"],"k":[57,15],"n":["telephone"],"o":0},"telephone_receiver":{"subcategory":"phone","a":"Telephone Receiver","b":"1F4DE","d":true,"e":true,"f":true,"h":true,"j":["telephone_receiver","technology","communication","dial"],"k":[28,54],"o":0},"pager":{"subcategory":"phone","a":"Pager","b":"1F4DF","d":true,"e":true,"f":true,"h":true,"j":["pager","bbcall","oldschool","90s"],"k":[28,55],"o":0},"fax":{"subcategory":"phone","a":"Fax Machine","b":"1F4E0","d":true,"e":true,"f":true,"h":true,"j":["fax_machine","communication","technology"],"k":[28,56],"o":0},"battery":{"subcategory":"computer","a":"Battery","b":"1F50B","d":true,"e":true,"f":true,"h":true,"j":["battery","power","energy","sustain"],"k":[29,37],"o":0},"low_battery":{"subcategory":"computer","a":"Low Battery","b":"1FAAB","d":true,"e":true,"f":true,"h":true,"j":["low battery","drained","dead"],"k":[54,36],"o":14},"electric_plug":{"subcategory":"computer","a":"Electric Plug","b":"1F50C","d":true,"e":true,"f":true,"h":true,"j":["electric_plug","charger","power"],"k":[29,38],"o":0},"computer":{"subcategory":"computer","a":"Personal Computer","b":"1F4BB","d":true,"e":true,"f":true,"h":true,"j":["laptop","technology","screen","display","monitor"],"k":[28,19],"o":0},"desktop_computer":{"subcategory":"computer","a":"Desktop Computer","b":"1F5A5-FE0F","c":"1F5A5","d":true,"e":true,"f":true,"h":true,"j":["desktop_computer","technology","computing","screen"],"k":[31,57],"o":0},"printer":{"subcategory":"computer","a":"Printer","b":"1F5A8-FE0F","c":"1F5A8","d":true,"e":true,"f":true,"h":true,"j":["printer","paper","ink"],"k":[31,58],"o":0},"keyboard":{"subcategory":"computer","a":"Keyboard","b":"2328-FE0F","c":"2328","d":true,"e":true,"f":true,"h":true,"j":["keyboard","technology","computer","type","input","text"],"k":[56,46],"o":1},"three_button_mouse":{"subcategory":"computer","a":"Computer Mouse","b":"1F5B1-FE0F","c":"1F5B1","d":true,"e":true,"f":true,"h":true,"j":["computer_mouse","click"],"k":[31,59],"o":0},"trackball":{"subcategory":"computer","a":"Trackball","b":"1F5B2-FE0F","c":"1F5B2","d":true,"e":true,"f":true,"h":true,"j":["trackball","technology","trackpad"],"k":[31,60],"o":0},"minidisc":{"subcategory":"computer","a":"Minidisc","b":"1F4BD","d":true,"e":true,"f":true,"h":true,"j":["computer_disk","technology","record","data","disk","90s"],"k":[28,21],"o":0},"floppy_disk":{"subcategory":"computer","a":"Floppy Disk","b":"1F4BE","d":true,"e":true,"f":true,"h":true,"j":["floppy_disk","oldschool","technology","save","90s","80s"],"k":[28,22],"o":0},"cd":{"subcategory":"computer","a":"Optical Disc","b":"1F4BF","d":true,"e":true,"f":true,"h":true,"j":["optical_disk","technology","dvd","disk","disc","90s"],"k":[28,23],"o":0},"dvd":{"subcategory":"computer","a":"Dvd","b":"1F4C0","d":true,"e":true,"f":true,"h":true,"j":["dvd","cd","disk","disc"],"k":[28,24],"o":0},"abacus":{"subcategory":"computer","a":"Abacus","b":"1F9EE","d":true,"e":true,"f":true,"h":true,"j":["abacus","calculation"],"k":[53,30],"o":11},"movie_camera":{"subcategory":"light & video","a":"Movie Camera","b":"1F3A5","d":true,"e":true,"f":true,"h":true,"j":["movie_camera","film","record"],"k":[7,40],"o":0},"film_frames":{"subcategory":"light & video","a":"Film Frames","b":"1F39E-FE0F","c":"1F39E","d":true,"e":true,"f":true,"h":true,"j":["film_frames","movie"],"k":[7,33],"o":0},"film_projector":{"subcategory":"light & video","a":"Film Projector","b":"1F4FD-FE0F","c":"1F4FD","d":true,"e":true,"f":true,"h":true,"j":["film_projector","video","tape","record","movie"],"k":[29,24],"o":0},"clapper":{"subcategory":"light & video","a":"Clapper Board","b":"1F3AC","d":true,"e":true,"f":true,"h":true,"j":["clapper_board","movie","film","record"],"k":[7,47],"o":0},"tv":{"subcategory":"light & video","a":"Television","b":"1F4FA","d":true,"e":true,"f":true,"h":true,"j":["television","technology","program","oldschool","show"],"k":[29,21],"o":0},"camera":{"subcategory":"light & video","a":"Camera","b":"1F4F7","d":true,"e":true,"f":true,"h":true,"j":["camera","gadgets","photography"],"k":[29,18],"o":0},"camera_with_flash":{"subcategory":"light & video","a":"Camera with Flash","b":"1F4F8","d":true,"e":true,"f":true,"h":true,"j":["camera_with_flash","photography","gadgets"],"k":[29,19],"o":1},"video_camera":{"subcategory":"light & video","a":"Video Camera","b":"1F4F9","d":true,"e":true,"f":true,"h":true,"j":["video_camera","film","record"],"k":[29,20],"o":0},"vhs":{"subcategory":"light & video","a":"Videocassette","b":"1F4FC","d":true,"e":true,"f":true,"h":true,"j":["videocassette","record","video","oldschool","90s","80s"],"k":[29,23],"o":0},"mag":{"subcategory":"light & video","a":"Left-Pointing Magnifying Glass","b":"1F50D","d":true,"e":true,"f":true,"h":true,"j":["magnifying_glass_tilted_left","search","zoom","find","detective"],"k":[29,39],"o":0},"mag_right":{"subcategory":"light & video","a":"Right-Pointing Magnifying Glass","b":"1F50E","d":true,"e":true,"f":true,"h":true,"j":["magnifying_glass_tilted_right","search","zoom","find","detective"],"k":[29,40],"o":0},"candle":{"subcategory":"light & video","a":"Candle","b":"1F56F-FE0F","c":"1F56F","d":true,"e":true,"f":true,"h":true,"j":["candle","fire","wax"],"k":[30,57],"o":0},"bulb":{"subcategory":"light & video","a":"Electric Light Bulb","b":"1F4A1","d":true,"e":true,"f":true,"h":true,"j":["light_bulb","light","electricity","idea"],"k":[27,49],"o":0},"flashlight":{"subcategory":"light & video","a":"Electric Torch","b":"1F526","d":true,"e":true,"f":true,"h":true,"j":["flashlight","dark","camping","sight","night"],"k":[30,3],"o":0},"izakaya_lantern":{"subcategory":"light & video","a":"Izakaya Lantern","b":"1F3EE","d":true,"e":true,"f":true,"h":true,"j":["red_paper_lantern","light","paper","halloween","spooky"],"k":[10,25],"n":["lantern"],"o":0},"diya_lamp":{"subcategory":"light & video","a":"Diya Lamp","b":"1FA94","d":true,"e":true,"f":true,"h":true,"j":["diya_lamp","lighting"],"k":[54,13],"o":12},"notebook_with_decorative_cover":{"subcategory":"book-paper","a":"Notebook with Decorative Cover","b":"1F4D4","d":true,"e":true,"f":true,"h":true,"j":["notebook_with_decorative_cover","classroom","notes","record","paper","study"],"k":[28,44],"o":0},"closed_book":{"subcategory":"book-paper","a":"Closed Book","b":"1F4D5","d":true,"e":true,"f":true,"h":true,"j":["closed_book","read","library","knowledge","textbook","learn"],"k":[28,45],"o":0},"book":{"subcategory":"book-paper","a":"Open Book","b":"1F4D6","d":true,"e":true,"f":true,"h":true,"j":["open_book","book","read","library","knowledge","literature","learn","study"],"k":[28,46],"n":["open_book"],"o":0},"green_book":{"subcategory":"book-paper","a":"Green Book","b":"1F4D7","d":true,"e":true,"f":true,"h":true,"j":["green_book","read","library","knowledge","study"],"k":[28,47],"o":0},"blue_book":{"subcategory":"book-paper","a":"Blue Book","b":"1F4D8","d":true,"e":true,"f":true,"h":true,"j":["blue_book","read","library","knowledge","learn","study"],"k":[28,48],"o":0},"orange_book":{"subcategory":"book-paper","a":"Orange Book","b":"1F4D9","d":true,"e":true,"f":true,"h":true,"j":["orange_book","read","library","knowledge","textbook","study"],"k":[28,49],"o":0},"books":{"subcategory":"book-paper","a":"Books","b":"1F4DA","d":true,"e":true,"f":true,"h":true,"j":["books","literature","library","study"],"k":[28,50],"o":0},"notebook":{"subcategory":"book-paper","a":"Notebook","b":"1F4D3","d":true,"e":true,"f":true,"h":true,"j":["notebook","stationery","record","notes","paper","study"],"k":[28,43],"o":0},"ledger":{"subcategory":"book-paper","a":"Ledger","b":"1F4D2","d":true,"e":true,"f":true,"h":true,"j":["ledger","notes","paper"],"k":[28,42],"o":0},"page_with_curl":{"subcategory":"book-paper","a":"Page with Curl","b":"1F4C3","d":true,"e":true,"f":true,"h":true,"j":["page_with_curl","documents","office","paper"],"k":[28,27],"o":0},"scroll":{"subcategory":"book-paper","a":"Scroll","b":"1F4DC","d":true,"e":true,"f":true,"h":true,"j":["scroll","documents","ancient","history","paper"],"k":[28,52],"o":0},"page_facing_up":{"subcategory":"book-paper","a":"Page Facing Up","b":"1F4C4","d":true,"e":true,"f":true,"h":true,"j":["page_facing_up","documents","office","paper","information"],"k":[28,28],"o":0},"newspaper":{"subcategory":"book-paper","a":"Newspaper","b":"1F4F0","d":true,"e":true,"f":true,"h":true,"j":["newspaper","press","headline"],"k":[29,11],"o":0},"rolled_up_newspaper":{"subcategory":"book-paper","a":"Rolled-Up Newspaper","b":"1F5DE-FE0F","c":"1F5DE","d":true,"e":true,"f":true,"h":true,"j":["rolled_up_newspaper","press","headline"],"k":[32,9],"o":0},"bookmark_tabs":{"subcategory":"book-paper","a":"Bookmark Tabs","b":"1F4D1","d":true,"e":true,"f":true,"h":true,"j":["bookmark_tabs","favorite","save","order","tidy"],"k":[28,41],"o":0},"bookmark":{"subcategory":"book-paper","a":"Bookmark","b":"1F516","d":true,"e":true,"f":true,"h":true,"j":["bookmark","favorite","label","save"],"k":[29,48],"o":0},"label":{"subcategory":"book-paper","a":"Label","b":"1F3F7-FE0F","c":"1F3F7","d":true,"e":true,"f":true,"h":true,"j":["label","sale","tag"],"k":[10,37],"o":0},"moneybag":{"subcategory":"money","a":"Money Bag","b":"1F4B0","d":true,"e":true,"f":true,"h":true,"j":["money_bag","dollar","payment","coins","sale"],"k":[28,8],"o":0},"coin":{"subcategory":"money","a":"Coin","b":"1FA99","d":true,"e":true,"f":true,"h":true,"j":["coin","money","currency"],"k":[54,18],"o":13},"yen":{"subcategory":"money","a":"Banknote with Yen Sign","b":"1F4B4","d":true,"e":true,"f":true,"h":true,"j":["yen_banknote","money","sales","japanese","dollar","currency"],"k":[28,12],"o":0},"dollar":{"subcategory":"money","a":"Banknote with Dollar Sign","b":"1F4B5","d":true,"e":true,"f":true,"h":true,"j":["dollar_banknote","money","sales","bill","currency"],"k":[28,13],"o":0},"euro":{"subcategory":"money","a":"Banknote with Euro Sign","b":"1F4B6","d":true,"e":true,"f":true,"h":true,"j":["euro_banknote","money","sales","dollar","currency"],"k":[28,14],"o":1},"pound":{"subcategory":"money","a":"Banknote with Pound Sign","b":"1F4B7","d":true,"e":true,"f":true,"h":true,"j":["pound_banknote","british","sterling","money","sales","bills","uk","england","currency"],"k":[28,15],"o":1},"money_with_wings":{"subcategory":"money","a":"Money with Wings","b":"1F4B8","d":true,"e":true,"f":true,"h":true,"j":["money_with_wings","dollar","bills","payment","sale"],"k":[28,16],"o":0},"credit_card":{"subcategory":"money","a":"Credit Card","b":"1F4B3","d":true,"e":true,"f":true,"h":true,"j":["credit_card","money","sales","dollar","bill","payment","shopping"],"k":[28,11],"o":0},"receipt":{"subcategory":"money","a":"Receipt","b":"1F9FE","d":true,"e":true,"f":true,"h":true,"j":["receipt","accounting","expenses"],"k":[53,46],"o":11},"chart":{"subcategory":"money","a":"Chart with Upwards Trend and Yen Sign","b":"1F4B9","d":true,"e":true,"f":true,"h":true,"j":["chart_increasing_with_yen","green-square","graph","presentation","stats"],"k":[28,17],"o":0},"email":{"subcategory":"mail","a":"Envelope","b":"2709-FE0F","c":"2709","d":true,"e":true,"f":true,"h":true,"j":["envelope","letter","postal","inbox","communication"],"k":[58,57],"n":["envelope"],"o":0},"e-mail":{"subcategory":"mail","a":"E-Mail Symbol","b":"1F4E7","d":true,"e":true,"f":true,"h":true,"j":["e_mail","communication","inbox"],"k":[29,2],"o":0},"incoming_envelope":{"subcategory":"mail","a":"Incoming Envelope","b":"1F4E8","d":true,"e":true,"f":true,"h":true,"j":["incoming_envelope","email","inbox"],"k":[29,3],"o":0},"envelope_with_arrow":{"subcategory":"mail","a":"Envelope with Downwards Arrow Above","b":"1F4E9","d":true,"e":true,"f":true,"h":true,"j":["envelope_with_arrow","email","communication"],"k":[29,4],"o":0},"outbox_tray":{"subcategory":"mail","a":"Outbox Tray","b":"1F4E4","d":true,"e":true,"f":true,"h":true,"j":["outbox_tray","inbox","email"],"k":[28,60],"o":0},"inbox_tray":{"subcategory":"mail","a":"Inbox Tray","b":"1F4E5","d":true,"e":true,"f":true,"h":true,"j":["inbox_tray","email","documents"],"k":[29,0],"o":0},"package":{"subcategory":"mail","a":"Package","b":"1F4E6","d":true,"e":true,"f":true,"h":true,"j":["package","mail","gift","cardboard","box","moving"],"k":[29,1],"o":0},"mailbox":{"subcategory":"mail","a":"Closed Mailbox with Raised Flag","b":"1F4EB","d":true,"e":true,"f":true,"h":true,"j":["closed_mailbox_with_raised_flag","email","inbox","communication"],"k":[29,6],"o":0},"mailbox_closed":{"subcategory":"mail","a":"Closed Mailbox with Lowered Flag","b":"1F4EA","d":true,"e":true,"f":true,"h":true,"j":["closed_mailbox_with_lowered_flag","email","communication","inbox"],"k":[29,5],"o":0},"mailbox_with_mail":{"subcategory":"mail","a":"Open Mailbox with Raised Flag","b":"1F4EC","d":true,"e":true,"f":true,"h":true,"j":["open_mailbox_with_raised_flag","email","inbox","communication"],"k":[29,7],"o":0},"mailbox_with_no_mail":{"subcategory":"mail","a":"Open Mailbox with Lowered Flag","b":"1F4ED","d":true,"e":true,"f":true,"h":true,"j":["open_mailbox_with_lowered_flag","email","inbox"],"k":[29,8],"o":0},"postbox":{"subcategory":"mail","a":"Postbox","b":"1F4EE","d":true,"e":true,"f":true,"h":true,"j":["postbox","email","letter","envelope"],"k":[29,9],"o":0},"ballot_box_with_ballot":{"subcategory":"mail","a":"Ballot Box with Ballot","b":"1F5F3-FE0F","c":"1F5F3","d":true,"e":true,"f":true,"h":true,"j":["ballot_box_with_ballot","election","vote"],"k":[32,14],"o":0},"pencil2":{"subcategory":"writing","a":"Pencil","b":"270F-FE0F","c":"270F","d":true,"e":true,"f":true,"h":true,"j":["pencil","stationery","write","paper","writing","school","study"],"k":[59,21],"o":0},"black_nib":{"subcategory":"writing","a":"Black Nib","b":"2712-FE0F","c":"2712","d":true,"e":true,"f":true,"h":true,"j":["black_nib","pen","stationery","writing","write"],"k":[59,22],"o":0},"lower_left_fountain_pen":{"subcategory":"writing","a":"Fountain Pen","b":"1F58B-FE0F","c":"1F58B","d":true,"e":true,"f":true,"h":true,"j":["fountain_pen","stationery","writing","write"],"k":[31,35],"o":0},"lower_left_ballpoint_pen":{"subcategory":"writing","a":"Pen","b":"1F58A-FE0F","c":"1F58A","d":true,"e":true,"f":true,"h":true,"j":["pen","stationery","writing","write"],"k":[31,34],"o":0},"lower_left_paintbrush":{"subcategory":"writing","a":"Paintbrush","b":"1F58C-FE0F","c":"1F58C","d":true,"e":true,"f":true,"h":true,"j":["paintbrush","drawing","creativity","art"],"k":[31,36],"o":0},"lower_left_crayon":{"subcategory":"writing","a":"Crayon","b":"1F58D-FE0F","c":"1F58D","d":true,"e":true,"f":true,"h":true,"j":["crayon","drawing","creativity"],"k":[31,37],"o":0},"memo":{"subcategory":"writing","a":"Memo","b":"1F4DD","d":true,"e":true,"f":true,"h":true,"j":["memo","write","documents","stationery","pencil","paper","writing","legal","exam","quiz","test","study","compose"],"k":[28,53],"n":["pencil"],"o":0},"briefcase":{"subcategory":"office","a":"Briefcase","b":"1F4BC","d":true,"e":true,"f":true,"h":true,"j":["briefcase","business","documents","work","law","legal","job","career"],"k":[28,20],"o":0},"file_folder":{"subcategory":"office","a":"File Folder","b":"1F4C1","d":true,"e":true,"f":true,"h":true,"j":["file_folder","documents","business","office"],"k":[28,25],"o":0},"open_file_folder":{"subcategory":"office","a":"Open File Folder","b":"1F4C2","d":true,"e":true,"f":true,"h":true,"j":["open_file_folder","documents","load"],"k":[28,26],"o":0},"card_index_dividers":{"subcategory":"office","a":"Card Index Dividers","b":"1F5C2-FE0F","c":"1F5C2","d":true,"e":true,"f":true,"h":true,"j":["card_index_dividers","organizing","business","stationery"],"k":[32,1],"o":0},"date":{"subcategory":"office","a":"Calendar","b":"1F4C5","d":true,"e":true,"f":true,"h":true,"j":["calendar","schedule"],"k":[28,29],"o":0},"calendar":{"subcategory":"office","a":"Tear-off Calendar","b":"1F4C6","d":true,"e":true,"f":true,"h":true,"j":["tear_off_calendar","schedule","date","planning"],"k":[28,30],"o":0},"spiral_note_pad":{"subcategory":"office","a":"Spiral Notepad","b":"1F5D2-FE0F","c":"1F5D2","d":true,"e":true,"f":true,"h":true,"j":["spiral_notepad","memo","stationery"],"k":[32,5],"o":0},"spiral_calendar_pad":{"subcategory":"office","a":"Spiral Calendar","b":"1F5D3-FE0F","c":"1F5D3","d":true,"e":true,"f":true,"h":true,"j":["spiral_calendar","date","schedule","planning"],"k":[32,6],"o":0},"card_index":{"subcategory":"office","a":"Card Index","b":"1F4C7","d":true,"e":true,"f":true,"h":true,"j":["card_index","business","stationery"],"k":[28,31],"o":0},"chart_with_upwards_trend":{"subcategory":"office","a":"Chart with Upwards Trend","b":"1F4C8","d":true,"e":true,"f":true,"h":true,"j":["chart_increasing","graph","presentation","stats","recovery","business","economics","money","sales","good","success"],"k":[28,32],"o":0},"chart_with_downwards_trend":{"subcategory":"office","a":"Chart with Downwards Trend","b":"1F4C9","d":true,"e":true,"f":true,"h":true,"j":["chart_decreasing","graph","presentation","stats","recession","business","economics","money","sales","bad","failure"],"k":[28,33],"o":0},"bar_chart":{"subcategory":"office","a":"Bar Chart","b":"1F4CA","d":true,"e":true,"f":true,"h":true,"j":["bar_chart","graph","presentation","stats"],"k":[28,34],"o":0},"clipboard":{"subcategory":"office","a":"Clipboard","b":"1F4CB","d":true,"e":true,"f":true,"h":true,"j":["clipboard","stationery","documents"],"k":[28,35],"o":0},"pushpin":{"subcategory":"office","a":"Pushpin","b":"1F4CC","d":true,"e":true,"f":true,"h":true,"j":["pushpin","stationery","mark","here"],"k":[28,36],"o":0},"round_pushpin":{"subcategory":"office","a":"Round Pushpin","b":"1F4CD","d":true,"e":true,"f":true,"h":true,"j":["round_pushpin","stationery","location","map","here"],"k":[28,37],"o":0},"paperclip":{"subcategory":"office","a":"Paperclip","b":"1F4CE","d":true,"e":true,"f":true,"h":true,"j":["paperclip","documents","stationery"],"k":[28,38],"o":0},"linked_paperclips":{"subcategory":"office","a":"Linked Paperclips","b":"1F587-FE0F","c":"1F587","d":true,"e":true,"f":true,"h":true,"j":["linked_paperclips","documents","stationery"],"k":[31,33],"o":0},"straight_ruler":{"subcategory":"office","a":"Straight Ruler","b":"1F4CF","d":true,"e":true,"f":true,"h":true,"j":["straight_ruler","stationery","calculate","length","math","school","drawing","architect","sketch"],"k":[28,39],"o":0},"triangular_ruler":{"subcategory":"office","a":"Triangular Ruler","b":"1F4D0","d":true,"e":true,"f":true,"h":true,"j":["triangular_ruler","stationery","math","architect","sketch"],"k":[28,40],"o":0},"scissors":{"subcategory":"office","a":"Black Scissors","b":"2702-FE0F","c":"2702","d":true,"e":true,"f":true,"h":true,"j":["scissors","stationery","cut"],"k":[58,54],"o":0},"card_file_box":{"subcategory":"office","a":"Card File Box","b":"1F5C3-FE0F","c":"1F5C3","d":true,"e":true,"f":true,"h":true,"j":["card_file_box","business","stationery"],"k":[32,2],"o":0},"file_cabinet":{"subcategory":"office","a":"File Cabinet","b":"1F5C4-FE0F","c":"1F5C4","d":true,"e":true,"f":true,"h":true,"j":["file_cabinet","filing","organizing"],"k":[32,3],"o":0},"wastebasket":{"subcategory":"office","a":"Wastebasket","b":"1F5D1-FE0F","c":"1F5D1","d":true,"e":true,"f":true,"h":true,"j":["wastebasket","bin","trash","rubbish","garbage","toss"],"k":[32,4],"o":0},"lock":{"subcategory":"lock","a":"Lock","b":"1F512","d":true,"e":true,"f":true,"h":true,"j":["locked","security","password","padlock"],"k":[29,44],"o":0},"unlock":{"subcategory":"lock","a":"Open Lock","b":"1F513","d":true,"e":true,"f":true,"h":true,"j":["unlocked","privacy","security"],"k":[29,45],"o":0},"lock_with_ink_pen":{"subcategory":"lock","a":"Lock with Ink Pen","b":"1F50F","d":true,"e":true,"f":true,"h":true,"j":["locked_with_pen","security","secret"],"k":[29,41],"o":0},"closed_lock_with_key":{"subcategory":"lock","a":"Closed Lock with Key","b":"1F510","d":true,"e":true,"f":true,"h":true,"j":["locked_with_key","security","privacy"],"k":[29,42],"o":0},"key":{"subcategory":"lock","a":"Key","b":"1F511","d":true,"e":true,"f":true,"h":true,"j":["key","lock","door","password"],"k":[29,43],"o":0},"old_key":{"subcategory":"lock","a":"Old Key","b":"1F5DD-FE0F","c":"1F5DD","d":true,"e":true,"f":true,"h":true,"j":["old_key","lock","door","password"],"k":[32,8],"o":0},"hammer":{"subcategory":"tool","a":"Hammer","b":"1F528","d":true,"e":true,"f":true,"h":true,"j":["hammer","tools","build","create"],"k":[30,5],"o":0},"axe":{"subcategory":"tool","a":"Axe","b":"1FA93","d":true,"e":true,"f":true,"h":true,"j":["axe","tool","chop","cut"],"k":[54,12],"o":12},"pick":{"subcategory":"tool","a":"Pick","b":"26CF-FE0F","c":"26CF","d":true,"e":true,"f":true,"h":true,"j":["pick","tools","dig"],"k":[58,20],"o":0},"hammer_and_pick":{"subcategory":"tool","a":"Hammer and Pick","b":"2692-FE0F","c":"2692","d":true,"e":true,"f":true,"h":true,"j":["hammer_and_pick","tools","build","create"],"k":[57,59],"o":1},"hammer_and_wrench":{"subcategory":"tool","a":"Hammer and Wrench","b":"1F6E0-FE0F","c":"1F6E0","d":true,"e":true,"f":true,"h":true,"j":["hammer_and_wrench","tools","build","create"],"k":[38,13],"o":0},"dagger_knife":{"subcategory":"tool","a":"Dagger","b":"1F5E1-FE0F","c":"1F5E1","d":true,"e":true,"f":true,"h":true,"j":["dagger","weapon"],"k":[32,10],"o":0},"crossed_swords":{"subcategory":"tool","a":"Crossed Swords","b":"2694-FE0F","c":"2694","d":true,"e":true,"f":true,"h":true,"j":["crossed_swords","weapon"],"k":[58,0],"o":1},"bomb":{"subcategory":"tool","a":"Bomb","b":"1F4A3","d":true,"e":true,"f":true,"h":true,"j":["bomb","boom","explode","explosion","terrorism"],"k":[27,51],"o":0},"boomerang":{"subcategory":"tool","a":"Boomerang","b":"1FA83","d":true,"e":true,"f":true,"h":true,"j":["boomerang","weapon"],"k":[54,3],"o":13},"bow_and_arrow":{"subcategory":"tool","a":"Bow and Arrow","b":"1F3F9","d":true,"e":true,"f":true,"h":true,"j":["bow_and_arrow","sports"],"k":[10,39],"o":1},"shield":{"subcategory":"tool","a":"Shield","b":"1F6E1-FE0F","c":"1F6E1","d":true,"e":true,"f":true,"h":true,"j":["shield","protection","security"],"k":[38,14],"o":0},"carpentry_saw":{"subcategory":"tool","a":"Carpentry Saw","b":"1FA9A","d":true,"e":true,"f":true,"h":true,"j":["carpentry saw","cut","chop"],"k":[54,19],"o":13},"wrench":{"subcategory":"tool","a":"Wrench","b":"1F527","d":true,"e":true,"f":true,"h":true,"j":["wrench","tools","diy","ikea","fix","maintainer"],"k":[30,4],"o":0},"screwdriver":{"subcategory":"tool","a":"Screwdriver","b":"1FA9B","d":true,"e":true,"f":true,"h":true,"j":["screwdriver","tools"],"k":[54,20],"o":13},"nut_and_bolt":{"subcategory":"tool","a":"Nut and Bolt","b":"1F529","d":true,"e":true,"f":true,"h":true,"j":["nut_and_bolt","handy","tools","fix"],"k":[30,6],"o":0},"gear":{"subcategory":"tool","a":"Gear","b":"2699-FE0F","c":"2699","d":true,"e":true,"f":true,"h":true,"j":["gear","cog"],"k":[58,4],"o":1},"compression":{"subcategory":"tool","a":"Clamp","b":"1F5DC-FE0F","c":"1F5DC","d":true,"e":true,"f":true,"h":true,"j":["clamp","tool"],"k":[32,7],"o":0},"scales":{"subcategory":"tool","a":"Balance Scale","b":"2696-FE0F","c":"2696","d":true,"e":true,"f":true,"h":true,"j":["balance_scale","law","fairness","weight"],"k":[58,2],"o":1},"probing_cane":{"subcategory":"tool","a":"Probing Cane","b":"1F9AF","d":true,"e":true,"f":true,"h":true,"j":["probing_cane","accessibility"],"k":[45,6],"o":12},"link":{"subcategory":"tool","a":"Link Symbol","b":"1F517","d":true,"e":true,"f":true,"h":true,"j":["link","rings","url"],"k":[29,49],"o":0},"chains":{"subcategory":"tool","a":"Chains","b":"26D3-FE0F","c":"26D3","d":true,"e":true,"f":true,"h":true,"j":["chains","lock","arrest"],"k":[58,22],"o":0},"hook":{"subcategory":"tool","a":"Hook","b":"1FA9D","d":true,"e":true,"f":true,"h":true,"j":["hook","tools"],"k":[54,22],"o":13},"toolbox":{"subcategory":"tool","a":"Toolbox","b":"1F9F0","d":true,"e":true,"f":true,"h":true,"j":["toolbox","tools","diy","fix","maintainer","mechanic"],"k":[53,32],"o":11},"magnet":{"subcategory":"tool","a":"Magnet","b":"1F9F2","d":true,"e":true,"f":true,"h":true,"j":["magnet","attraction","magnetic"],"k":[53,34],"o":11},"ladder":{"subcategory":"tool","a":"Ladder","b":"1FA9C","d":true,"e":true,"f":true,"h":true,"j":["ladder","tools"],"k":[54,21],"o":13},"alembic":{"subcategory":"science","a":"Alembic","b":"2697-FE0F","c":"2697","d":true,"e":true,"f":true,"h":true,"j":["alembic","distilling","science","experiment","chemistry"],"k":[58,3],"o":1},"test_tube":{"subcategory":"science","a":"Test Tube","b":"1F9EA","d":true,"e":true,"f":true,"h":true,"j":["test_tube","chemistry","experiment","lab","science"],"k":[53,26],"o":11},"petri_dish":{"subcategory":"science","a":"Petri Dish","b":"1F9EB","d":true,"e":true,"f":true,"h":true,"j":["petri_dish","bacteria","biology","culture","lab"],"k":[53,27],"o":11},"dna":{"subcategory":"science","a":"Dna Double Helix","b":"1F9EC","d":true,"e":true,"f":true,"h":true,"j":["dna","biologist","genetics","life"],"k":[53,28],"o":11},"microscope":{"subcategory":"science","a":"Microscope","b":"1F52C","d":true,"e":true,"f":true,"h":true,"j":["microscope","laboratory","experiment","zoomin","science","study"],"k":[30,9],"o":1},"telescope":{"subcategory":"science","a":"Telescope","b":"1F52D","d":true,"e":true,"f":true,"h":true,"j":["telescope","stars","space","zoom","science","astronomy"],"k":[30,10],"o":1},"satellite_antenna":{"subcategory":"science","a":"Satellite Antenna","b":"1F4E1","d":true,"e":true,"f":true,"h":true,"j":["satellite_antenna","communication","future","radio","space"],"k":[28,57],"o":0},"syringe":{"subcategory":"medical","a":"Syringe","b":"1F489","d":true,"e":true,"f":true,"h":true,"j":["syringe","health","hospital","drugs","blood","medicine","needle","doctor","nurse"],"k":[26,36],"o":0},"drop_of_blood":{"subcategory":"medical","a":"Drop of Blood","b":"1FA78","d":true,"e":true,"f":true,"h":true,"j":["drop_of_blood","period","hurt","harm","wound"],"k":[53,56],"o":12},"pill":{"subcategory":"medical","a":"Pill","b":"1F48A","d":true,"e":true,"f":true,"h":true,"j":["pill","health","medicine","doctor","pharmacy","drug"],"k":[26,37],"o":0},"adhesive_bandage":{"subcategory":"medical","a":"Adhesive Bandage","b":"1FA79","d":true,"e":true,"f":true,"h":true,"j":["adhesive_bandage","heal"],"k":[53,57],"o":12},"crutch":{"subcategory":"medical","a":"Crutch","b":"1FA7C","d":true,"e":true,"f":true,"h":true,"j":["crutch","accessibility","assist"],"k":[53,60],"o":14},"stethoscope":{"subcategory":"medical","a":"Stethoscope","b":"1FA7A","d":true,"e":true,"f":true,"h":true,"j":["stethoscope","health"],"k":[53,58],"o":12},"x-ray":{"subcategory":"medical","a":"X-Ray","b":"1FA7B","d":true,"e":true,"f":true,"h":true,"j":["x-ray","skeleton","medicine"],"k":[53,59],"o":14},"door":{"subcategory":"household","a":"Door","b":"1F6AA","d":true,"e":true,"f":true,"h":true,"j":["door","house","entry","exit"],"k":[36,31],"o":0},"elevator":{"subcategory":"household","a":"Elevator","b":"1F6D7","d":true,"e":true,"f":true,"h":true,"j":["elevator","lift"],"k":[38,8],"o":13},"mirror":{"subcategory":"household","a":"Mirror","b":"1FA9E","d":true,"e":true,"f":true,"h":true,"j":["mirror","reflection"],"k":[54,23],"o":13},"window":{"subcategory":"household","a":"Window","b":"1FA9F","d":true,"e":true,"f":true,"h":true,"j":["window","scenery"],"k":[54,24],"o":13},"bed":{"subcategory":"household","a":"Bed","b":"1F6CF-FE0F","c":"1F6CF","d":true,"e":true,"f":true,"h":true,"j":["bed","sleep","rest"],"k":[38,2],"o":0},"couch_and_lamp":{"subcategory":"household","a":"Couch and Lamp","b":"1F6CB-FE0F","c":"1F6CB","d":true,"e":true,"f":true,"h":true,"j":["couch_and_lamp","read","chill"],"k":[37,54],"o":0},"chair":{"subcategory":"household","a":"Chair","b":"1FA91","d":true,"e":true,"f":true,"h":true,"j":["chair","sit","furniture"],"k":[54,10],"o":12},"toilet":{"subcategory":"household","a":"Toilet","b":"1F6BD","d":true,"e":true,"f":true,"h":true,"j":["toilet","restroom","wc","washroom","bathroom","potty"],"k":[37,40],"o":0},"plunger":{"subcategory":"household","a":"Plunger","b":"1FAA0","d":true,"e":true,"f":true,"h":true,"j":["plunger","toilet"],"k":[54,25],"o":13},"shower":{"subcategory":"household","a":"Shower","b":"1F6BF","d":true,"e":true,"f":true,"h":true,"j":["shower","clean","water","bathroom"],"k":[37,42],"o":1},"bathtub":{"subcategory":"household","a":"Bathtub","b":"1F6C1","d":true,"e":true,"f":true,"h":true,"j":["bathtub","clean","shower","bathroom"],"k":[37,49],"o":1},"mouse_trap":{"subcategory":"household","a":"Mouse Trap","b":"1FAA4","d":true,"e":true,"f":true,"h":true,"j":["mouse trap","cheese"],"k":[54,29],"o":13},"razor":{"subcategory":"household","a":"Razor","b":"1FA92","d":true,"e":true,"f":true,"h":true,"j":["razor","cut"],"k":[54,11],"o":12},"lotion_bottle":{"subcategory":"household","a":"Lotion Bottle","b":"1F9F4","d":true,"e":true,"f":true,"h":true,"j":["lotion_bottle","moisturizer","sunscreen"],"k":[53,36],"o":11},"safety_pin":{"subcategory":"household","a":"Safety Pin","b":"1F9F7","d":true,"e":true,"f":true,"h":true,"j":["safety_pin","diaper"],"k":[53,39],"o":11},"broom":{"subcategory":"household","a":"Broom","b":"1F9F9","d":true,"e":true,"f":true,"h":true,"j":["broom","cleaning","sweeping","witch"],"k":[53,41],"o":11},"basket":{"subcategory":"household","a":"Basket","b":"1F9FA","d":true,"e":true,"f":true,"h":true,"j":["basket","laundry"],"k":[53,42],"o":11},"roll_of_paper":{"subcategory":"household","a":"Roll of Paper","b":"1F9FB","d":true,"e":true,"f":true,"h":true,"j":["roll_of_paper","roll"],"k":[53,43],"o":11},"bucket":{"subcategory":"household","a":"Bucket","b":"1FAA3","d":true,"e":true,"f":true,"h":true,"j":["bucket","water","container"],"k":[54,28],"o":13},"soap":{"subcategory":"household","a":"Bar of Soap","b":"1F9FC","d":true,"e":true,"f":true,"h":true,"j":["soap","bar","bathing","cleaning","lather"],"k":[53,44],"o":11},"bubbles":{"subcategory":"household","a":"Bubbles","b":"1FAE7","d":true,"e":true,"f":true,"h":true,"j":["bubbles","soap","fun","carbonation","sparkling"],"k":[55,37],"o":14},"toothbrush":{"subcategory":"household","a":"Toothbrush","b":"1FAA5","d":true,"e":true,"f":true,"h":true,"j":["toothbrush","hygiene","dental"],"k":[54,30],"o":13},"sponge":{"subcategory":"household","a":"Sponge","b":"1F9FD","d":true,"e":true,"f":true,"h":true,"j":["sponge","absorbing","cleaning","porous"],"k":[53,45],"o":11},"fire_extinguisher":{"subcategory":"household","a":"Fire Extinguisher","b":"1F9EF","d":true,"e":true,"f":true,"h":true,"j":["fire_extinguisher","quench"],"k":[53,31],"o":11},"shopping_trolley":{"subcategory":"household","a":"Shopping Trolley","b":"1F6D2","d":true,"e":true,"f":true,"h":true,"j":["shopping_cart","trolley"],"k":[38,5],"o":3},"smoking":{"subcategory":"other-object","a":"Smoking Symbol","b":"1F6AC","d":true,"e":true,"f":true,"h":true,"j":["cigarette","kills","tobacco","joint","smoke"],"k":[36,33],"o":0},"coffin":{"subcategory":"other-object","a":"Coffin","b":"26B0-FE0F","c":"26B0","d":true,"e":true,"f":true,"h":true,"j":["coffin","vampire","dead","die","death","rip","graveyard","cemetery","casket","funeral","box"],"k":[58,12],"o":1},"headstone":{"subcategory":"other-object","a":"Headstone","b":"1FAA6","d":true,"e":true,"f":true,"h":true,"j":["headstone","death","rip","grave"],"k":[54,31],"o":13},"funeral_urn":{"subcategory":"other-object","a":"Funeral Urn","b":"26B1-FE0F","c":"26B1","d":true,"e":true,"f":true,"h":true,"j":["funeral_urn","dead","die","death","rip","ashes"],"k":[58,13],"o":1},"nazar_amulet":{"subcategory":"other-object","a":"Nazar Amulet","b":"1F9FF","d":true,"e":true,"f":true,"h":true,"j":["nazar_amulet","bead","charm"],"k":[53,47],"o":11},"hamsa":{"subcategory":"other-object","a":"Hamsa","b":"1FAAC","d":true,"e":true,"f":true,"h":true,"j":["hamsa","religion","protection"],"k":[54,37],"o":14},"moyai":{"subcategory":"other-object","a":"Moyai","b":"1F5FF","d":true,"e":true,"f":true,"h":true,"j":["moai","rock","easter island"],"k":[32,20],"o":0},"placard":{"subcategory":"other-object","a":"Placard","b":"1FAA7","d":true,"e":true,"f":true,"h":true,"j":["placard","announcement"],"k":[54,32],"o":13},"identification_card":{"subcategory":"other-object","a":"Identification Card","b":"1FAAA","d":true,"e":true,"f":true,"h":true,"j":["identification card","document"],"k":[54,35],"o":14},"atm":{"subcategory":"transport-sign","a":"Automated Teller Machine","b":"1F3E7","d":true,"e":true,"f":true,"h":true,"j":["atm_sign","money","sales","cash","blue-square","payment","bank"],"k":[10,18],"o":0},"put_litter_in_its_place":{"subcategory":"transport-sign","a":"Put Litter in Its Place Symbol","b":"1F6AE","d":true,"e":true,"f":true,"h":true,"j":["litter_in_bin_sign","blue-square","sign","human","info"],"k":[36,35],"o":1},"potable_water":{"subcategory":"transport-sign","a":"Potable Water Symbol","b":"1F6B0","d":true,"e":true,"f":true,"h":true,"j":["potable_water","blue-square","liquid","restroom","cleaning","faucet"],"k":[36,37],"o":1},"wheelchair":{"subcategory":"transport-sign","a":"Wheelchair Symbol","b":"267F","d":true,"e":true,"f":true,"h":true,"j":["wheelchair_symbol","blue-square","disabled","accessibility"],"k":[57,58],"o":0},"mens":{"subcategory":"transport-sign","a":"Mens Symbol","b":"1F6B9","d":true,"e":true,"f":true,"h":true,"j":["men_s_room","toilet","restroom","wc","blue-square","gender","male"],"k":[37,36],"o":0},"womens":{"subcategory":"transport-sign","a":"Womens Symbol","b":"1F6BA","d":true,"e":true,"f":true,"h":true,"j":["women_s_room","purple-square","woman","female","toilet","loo","restroom","gender"],"k":[37,37],"o":0},"restroom":{"subcategory":"transport-sign","a":"Restroom","b":"1F6BB","d":true,"e":true,"f":true,"h":true,"j":["restroom","blue-square","toilet","refresh","wc","gender"],"k":[37,38],"o":0},"baby_symbol":{"subcategory":"transport-sign","a":"Baby Symbol","b":"1F6BC","d":true,"e":true,"f":true,"h":true,"j":["baby_symbol","orange-square","child"],"k":[37,39],"o":0},"wc":{"subcategory":"transport-sign","a":"Water Closet","b":"1F6BE","d":true,"e":true,"f":true,"h":true,"j":["water_closet","toilet","restroom","blue-square"],"k":[37,41],"o":0},"passport_control":{"subcategory":"transport-sign","a":"Passport Control","b":"1F6C2","d":true,"e":true,"f":true,"h":true,"j":["passport_control","custom","blue-square"],"k":[37,50],"o":1},"customs":{"subcategory":"transport-sign","a":"Customs","b":"1F6C3","d":true,"e":true,"f":true,"h":true,"j":["customs","passport","border","blue-square"],"k":[37,51],"o":1},"baggage_claim":{"subcategory":"transport-sign","a":"Baggage Claim","b":"1F6C4","d":true,"e":true,"f":true,"h":true,"j":["baggage_claim","blue-square","airport","transport"],"k":[37,52],"o":1},"left_luggage":{"subcategory":"transport-sign","a":"Left Luggage","b":"1F6C5","d":true,"e":true,"f":true,"h":true,"j":["left_luggage","blue-square","travel"],"k":[37,53],"o":1},"warning":{"subcategory":"warning","a":"Warning Sign","b":"26A0-FE0F","c":"26A0","d":true,"e":true,"f":true,"h":true,"j":["warning","exclamation","wip","alert","error","problem","issue"],"k":[58,7],"o":0},"children_crossing":{"subcategory":"warning","a":"Children Crossing","b":"1F6B8","d":true,"e":true,"f":true,"h":true,"j":["children_crossing","school","warning","danger","sign","driving","yellow-diamond"],"k":[37,35],"o":1},"no_entry":{"subcategory":"warning","a":"No Entry","b":"26D4","d":true,"e":true,"f":true,"h":true,"j":["no_entry","limit","security","privacy","bad","denied","stop","circle"],"k":[58,23],"o":0},"no_entry_sign":{"subcategory":"warning","a":"No Entry Sign","b":"1F6AB","d":true,"e":true,"f":true,"h":true,"j":["prohibited","forbid","stop","limit","denied","disallow","circle"],"k":[36,32],"o":0},"no_bicycles":{"subcategory":"warning","a":"No Bicycles","b":"1F6B3","d":true,"e":true,"f":true,"h":true,"j":["no_bicycles","no_bikes","bicycle","bike","cyclist","prohibited","circle"],"k":[36,40],"o":1},"no_smoking":{"subcategory":"warning","a":"No Smoking Symbol","b":"1F6AD","d":true,"e":true,"f":true,"h":true,"j":["no_smoking","cigarette","blue-square","smell","smoke"],"k":[36,34],"o":0},"do_not_litter":{"subcategory":"warning","a":"Do Not Litter Symbol","b":"1F6AF","d":true,"e":true,"f":true,"h":true,"j":["no_littering","trash","bin","garbage","circle"],"k":[36,36],"o":1},"non-potable_water":{"subcategory":"warning","a":"Non-Potable Water Symbol","b":"1F6B1","d":true,"e":true,"f":true,"h":true,"j":["non_potable_water","drink","faucet","tap","circle"],"k":[36,38],"o":1},"no_pedestrians":{"subcategory":"warning","a":"No Pedestrians","b":"1F6B7","d":true,"e":true,"f":true,"h":true,"j":["no_pedestrians","rules","crossing","walking","circle"],"k":[37,34],"o":1},"no_mobile_phones":{"subcategory":"warning","a":"No Mobile Phones","b":"1F4F5","d":true,"e":true,"f":true,"h":true,"j":["no_mobile_phones","iphone","mute","circle"],"k":[29,16],"o":1},"underage":{"subcategory":"warning","a":"No One Under Eighteen Symbol","b":"1F51E","d":true,"e":true,"f":true,"h":true,"j":["no_one_under_eighteen","18","drink","pub","night","minor","circle"],"k":[29,56],"o":0},"radioactive_sign":{"subcategory":"warning","a":"Radioactive","b":"2622-FE0F","c":"2622","d":true,"e":true,"f":true,"h":true,"j":["radioactive","nuclear","danger"],"k":[57,27],"o":1},"biohazard_sign":{"subcategory":"warning","a":"Biohazard","b":"2623-FE0F","c":"2623","d":true,"e":true,"f":true,"h":true,"j":["biohazard","danger"],"k":[57,28],"o":1},"arrow_up":{"subcategory":"arrow","a":"Upwards Black Arrow","b":"2B06-FE0F","c":"2B06","d":true,"e":true,"f":true,"h":true,"j":["up_arrow","blue-square","continue","top","direction"],"k":[59,51],"o":0},"arrow_upper_right":{"subcategory":"arrow","a":"North East Arrow","b":"2197-FE0F","c":"2197","d":true,"e":true,"f":true,"h":true,"j":["up_right_arrow","blue-square","point","direction","diagonal","northeast"],"k":[56,39],"o":0},"arrow_right":{"subcategory":"arrow","a":"Black Rightwards Arrow","b":"27A1-FE0F","c":"27A1","d":true,"e":true,"f":true,"h":true,"j":["right_arrow","blue-square","next"],"k":[59,45],"o":0},"arrow_lower_right":{"subcategory":"arrow","a":"South East Arrow","b":"2198-FE0F","c":"2198","d":true,"e":true,"f":true,"h":true,"j":["down_right_arrow","blue-square","direction","diagonal","southeast"],"k":[56,40],"o":0},"arrow_down":{"subcategory":"arrow","a":"Downwards Black Arrow","b":"2B07-FE0F","c":"2B07","d":true,"e":true,"f":true,"h":true,"j":["down_arrow","blue-square","direction","bottom"],"k":[59,52],"o":0},"arrow_lower_left":{"subcategory":"arrow","a":"South West Arrow","b":"2199-FE0F","c":"2199","d":true,"e":true,"f":true,"h":true,"j":["down_left_arrow","blue-square","direction","diagonal","southwest"],"k":[56,41],"o":0},"arrow_left":{"subcategory":"arrow","a":"Leftwards Black Arrow","b":"2B05-FE0F","c":"2B05","d":true,"e":true,"f":true,"h":true,"j":["left_arrow","blue-square","previous","back"],"k":[59,50],"o":0},"arrow_upper_left":{"subcategory":"arrow","a":"North West Arrow","b":"2196-FE0F","c":"2196","d":true,"e":true,"f":true,"h":true,"j":["up_left_arrow","blue-square","point","direction","diagonal","northwest"],"k":[56,38],"o":0},"arrow_up_down":{"subcategory":"arrow","a":"Up Down Arrow","b":"2195-FE0F","c":"2195","d":true,"e":true,"f":true,"h":true,"j":["up_down_arrow","blue-square","direction","way","vertical"],"k":[56,37],"o":0},"left_right_arrow":{"subcategory":"arrow","a":"Left Right Arrow","b":"2194-FE0F","c":"2194","d":true,"e":true,"f":true,"h":true,"j":["left_right_arrow","shape","direction","horizontal","sideways"],"k":[56,36],"o":0},"leftwards_arrow_with_hook":{"subcategory":"arrow","a":"Leftwards Arrow with Hook","b":"21A9-FE0F","c":"21A9","d":true,"e":true,"f":true,"h":true,"j":["right_arrow_curving_left","back","return","blue-square","undo","enter"],"k":[56,42],"o":0},"arrow_right_hook":{"subcategory":"arrow","a":"Rightwards Arrow with Hook","b":"21AA-FE0F","c":"21AA","d":true,"e":true,"f":true,"h":true,"j":["left_arrow_curving_right","blue-square","return","rotate","direction"],"k":[56,43],"o":0},"arrow_heading_up":{"subcategory":"arrow","a":"Arrow Pointing Rightwards Then Curving Upwards","b":"2934-FE0F","c":"2934","d":true,"e":true,"f":true,"h":true,"j":["right_arrow_curving_up","blue-square","direction","top"],"k":[59,48],"o":0},"arrow_heading_down":{"subcategory":"arrow","a":"Arrow Pointing Rightwards Then Curving Downwards","b":"2935-FE0F","c":"2935","d":true,"e":true,"f":true,"h":true,"j":["right_arrow_curving_down","blue-square","direction","bottom"],"k":[59,49],"o":0},"arrows_clockwise":{"subcategory":"arrow","a":"Clockwise Downwards and Upwards Open Circle Arrows","b":"1F503","d":true,"e":true,"f":true,"h":true,"j":["clockwise_vertical_arrows","sync","cycle","round","repeat"],"k":[29,29],"o":0},"arrows_counterclockwise":{"subcategory":"arrow","a":"Anticlockwise Downwards and Upwards Open Circle Arrows","b":"1F504","d":true,"e":true,"f":true,"h":true,"j":["counterclockwise_arrows_button","blue-square","sync","cycle"],"k":[29,30],"o":1},"back":{"subcategory":"arrow","a":"Back with Leftwards Arrow Above","b":"1F519","d":true,"e":true,"f":true,"h":true,"j":["back_arrow","arrow","words","return"],"k":[29,51],"o":0},"end":{"subcategory":"arrow","a":"End with Leftwards Arrow Above","b":"1F51A","d":true,"e":true,"f":true,"h":true,"j":["end_arrow","words","arrow"],"k":[29,52],"o":0},"on":{"subcategory":"arrow","a":"On with Exclamation Mark with Left Right Arrow Above","b":"1F51B","d":true,"e":true,"f":true,"h":true,"j":["on_arrow","arrow","words"],"k":[29,53],"o":0},"soon":{"subcategory":"arrow","a":"Soon with Rightwards Arrow Above","b":"1F51C","d":true,"e":true,"f":true,"h":true,"j":["soon_arrow","arrow","words"],"k":[29,54],"o":0},"top":{"subcategory":"arrow","a":"Top with Upwards Arrow Above","b":"1F51D","d":true,"e":true,"f":true,"h":true,"j":["top_arrow","words","blue-square"],"k":[29,55],"o":0},"place_of_worship":{"subcategory":"religion","a":"Place of Worship","b":"1F6D0","d":true,"e":true,"f":true,"h":true,"j":["place_of_worship","religion","church","temple","prayer"],"k":[38,3],"o":1},"atom_symbol":{"subcategory":"religion","a":"Atom Symbol","b":"269B-FE0F","c":"269B","d":true,"e":true,"f":true,"h":true,"j":["atom_symbol","science","physics","chemistry"],"k":[58,5],"o":1},"om_symbol":{"subcategory":"religion","a":"Om","b":"1F549-FE0F","c":"1F549","d":true,"e":true,"f":true,"h":true,"j":["om","hinduism","buddhism","sikhism","jainism"],"k":[30,27],"o":0},"star_of_david":{"subcategory":"religion","a":"Star of David","b":"2721-FE0F","c":"2721","d":true,"e":true,"f":true,"h":true,"j":["star_of_david","judaism"],"k":[59,26],"o":0},"wheel_of_dharma":{"subcategory":"religion","a":"Wheel of Dharma","b":"2638-FE0F","c":"2638","d":true,"e":true,"f":true,"h":true,"j":["wheel_of_dharma","hinduism","buddhism","sikhism","jainism"],"k":[57,33],"o":0},"yin_yang":{"subcategory":"religion","a":"Yin Yang","b":"262F-FE0F","c":"262F","d":true,"e":true,"f":true,"h":true,"j":["yin_yang","balance"],"k":[57,32],"o":0},"latin_cross":{"subcategory":"religion","a":"Latin Cross","b":"271D-FE0F","c":"271D","d":true,"e":true,"f":true,"h":true,"j":["latin_cross","christianity"],"k":[59,25],"o":0},"orthodox_cross":{"subcategory":"religion","a":"Orthodox Cross","b":"2626-FE0F","c":"2626","d":true,"e":true,"f":true,"h":true,"j":["orthodox_cross","suppedaneum","religion"],"k":[57,29],"o":1},"star_and_crescent":{"subcategory":"religion","a":"Star and Crescent","b":"262A-FE0F","c":"262A","d":true,"e":true,"f":true,"h":true,"j":["star_and_crescent","islam"],"k":[57,30],"o":0},"peace_symbol":{"subcategory":"religion","a":"Peace Symbol","b":"262E-FE0F","c":"262E","d":true,"e":true,"f":true,"h":true,"j":["peace_symbol","hippie"],"k":[57,31],"o":1},"menorah_with_nine_branches":{"subcategory":"religion","a":"Menorah with Nine Branches","b":"1F54E","d":true,"e":true,"f":true,"h":true,"j":["menorah","hanukkah","candles","jewish"],"k":[30,32],"o":1},"six_pointed_star":{"subcategory":"religion","a":"Six Pointed Star with Middle Dot","b":"1F52F","d":true,"e":true,"f":true,"h":true,"j":["dotted_six_pointed_star","purple-square","religion","jewish","hexagram"],"k":[30,12],"o":0},"khanda":{"subcategory":"religion","a":"Khanda","b":"1FAAF","d":true,"e":true,"f":false,"h":false,"j":["khanda","Sikhism","religion"],"k":[54,40],"o":15},"aries":{"subcategory":"zodiac","a":"Aries","b":"2648","d":true,"e":true,"f":true,"h":true,"j":["aries","sign","purple-square","zodiac","astrology"],"k":[57,38],"o":0},"taurus":{"subcategory":"zodiac","a":"Taurus","b":"2649","d":true,"e":true,"f":true,"h":true,"j":["taurus","purple-square","sign","zodiac","astrology"],"k":[57,39],"o":0},"gemini":{"subcategory":"zodiac","a":"Gemini","b":"264A","d":true,"e":true,"f":true,"h":true,"j":["gemini","sign","zodiac","purple-square","astrology"],"k":[57,40],"o":0},"cancer":{"subcategory":"zodiac","a":"Cancer","b":"264B","d":true,"e":true,"f":true,"h":true,"j":["cancer","sign","zodiac","purple-square","astrology"],"k":[57,41],"o":0},"leo":{"subcategory":"zodiac","a":"Leo","b":"264C","d":true,"e":true,"f":true,"h":true,"j":["leo","sign","purple-square","zodiac","astrology"],"k":[57,42],"o":0},"virgo":{"subcategory":"zodiac","a":"Virgo","b":"264D","d":true,"e":true,"f":true,"h":true,"j":["virgo","sign","zodiac","purple-square","astrology"],"k":[57,43],"o":0},"libra":{"subcategory":"zodiac","a":"Libra","b":"264E","d":true,"e":true,"f":true,"h":true,"j":["libra","sign","purple-square","zodiac","astrology"],"k":[57,44],"o":0},"scorpius":{"subcategory":"zodiac","a":"Scorpius","b":"264F","d":true,"e":true,"f":true,"h":true,"j":["scorpio","sign","zodiac","purple-square","astrology"],"k":[57,45],"o":0},"sagittarius":{"subcategory":"zodiac","a":"Sagittarius","b":"2650","d":true,"e":true,"f":true,"h":true,"j":["sagittarius","sign","zodiac","purple-square","astrology"],"k":[57,46],"o":0},"capricorn":{"subcategory":"zodiac","a":"Capricorn","b":"2651","d":true,"e":true,"f":true,"h":true,"j":["capricorn","sign","zodiac","purple-square","astrology"],"k":[57,47],"o":0},"aquarius":{"subcategory":"zodiac","a":"Aquarius","b":"2652","d":true,"e":true,"f":true,"h":true,"j":["aquarius","sign","purple-square","zodiac","astrology"],"k":[57,48],"o":0},"pisces":{"subcategory":"zodiac","a":"Pisces","b":"2653","d":true,"e":true,"f":true,"h":true,"j":["pisces","purple-square","sign","zodiac","astrology"],"k":[57,49],"o":0},"ophiuchus":{"subcategory":"zodiac","a":"Ophiuchus","b":"26CE","d":true,"e":true,"f":true,"h":true,"j":["ophiuchus","sign","purple-square","constellation","astrology"],"k":[58,19],"o":0},"twisted_rightwards_arrows":{"subcategory":"av-symbol","a":"Twisted Rightwards Arrows","b":"1F500","d":true,"e":true,"f":true,"h":true,"j":["shuffle_tracks_button","blue-square","shuffle","music","random"],"k":[29,26],"o":1},"repeat":{"subcategory":"av-symbol","a":"Clockwise Rightwards and Leftwards Open Circle Arrows","b":"1F501","d":true,"e":true,"f":true,"h":true,"j":["repeat_button","loop","record"],"k":[29,27],"o":1},"repeat_one":{"subcategory":"av-symbol","a":"Clockwise Rightwards and Leftwards Open Circle Arrows with Circled One Overlay","b":"1F502","d":true,"e":true,"f":true,"h":true,"j":["repeat_single_button","blue-square","loop"],"k":[29,28],"o":1},"arrow_forward":{"subcategory":"av-symbol","a":"Black Right-Pointing Triangle","b":"25B6-FE0F","c":"25B6","d":true,"e":true,"f":true,"h":true,"j":["play_button","blue-square","right","direction","play"],"k":[57,4],"o":0},"fast_forward":{"subcategory":"av-symbol","a":"Black Right-Pointing Double Triangle","b":"23E9","d":true,"e":true,"f":true,"h":true,"j":["fast_forward_button","blue-square","play","speed","continue"],"k":[56,48],"o":0},"black_right_pointing_double_triangle_with_vertical_bar":{"subcategory":"av-symbol","a":"Next Track Button","b":"23ED-FE0F","c":"23ED","d":true,"e":true,"f":true,"h":true,"j":["next_track_button","forward","next","blue-square"],"k":[56,52],"o":0},"black_right_pointing_triangle_with_double_vertical_bar":{"subcategory":"av-symbol","a":"Play or Pause Button","b":"23EF-FE0F","c":"23EF","d":true,"e":true,"f":true,"h":true,"j":["play_or_pause_button","blue-square","play","pause"],"k":[56,54],"o":1},"arrow_backward":{"subcategory":"av-symbol","a":"Black Left-Pointing Triangle","b":"25C0-FE0F","c":"25C0","d":true,"e":true,"f":true,"h":true,"j":["reverse_button","blue-square","left","direction"],"k":[57,5],"o":0},"rewind":{"subcategory":"av-symbol","a":"Black Left-Pointing Double Triangle","b":"23EA","d":true,"e":true,"f":true,"h":true,"j":["fast_reverse_button","play","blue-square"],"k":[56,49],"o":0},"black_left_pointing_double_triangle_with_vertical_bar":{"subcategory":"av-symbol","a":"Last Track Button","b":"23EE-FE0F","c":"23EE","d":true,"e":true,"f":true,"h":true,"j":["last_track_button","backward"],"k":[56,53],"o":0},"arrow_up_small":{"subcategory":"av-symbol","a":"Up-Pointing Small Red Triangle","b":"1F53C","d":true,"e":true,"f":true,"h":true,"j":["upwards_button","blue-square","triangle","direction","point","forward","top"],"k":[30,25],"o":0},"arrow_double_up":{"subcategory":"av-symbol","a":"Black Up-Pointing Double Triangle","b":"23EB","d":true,"e":true,"f":true,"h":true,"j":["fast_up_button","blue-square","direction","top"],"k":[56,50],"o":0},"arrow_down_small":{"subcategory":"av-symbol","a":"Down-Pointing Small Red Triangle","b":"1F53D","d":true,"e":true,"f":true,"h":true,"j":["downwards_button","blue-square","direction","bottom"],"k":[30,26],"o":0},"arrow_double_down":{"subcategory":"av-symbol","a":"Black Down-Pointing Double Triangle","b":"23EC","d":true,"e":true,"f":true,"h":true,"j":["fast_down_button","blue-square","direction","bottom"],"k":[56,51],"o":0},"double_vertical_bar":{"subcategory":"av-symbol","a":"Pause Button","b":"23F8-FE0F","c":"23F8","d":true,"e":true,"f":true,"h":true,"j":["pause_button","pause","blue-square"],"k":[56,59],"o":0},"black_square_for_stop":{"subcategory":"av-symbol","a":"Stop Button","b":"23F9-FE0F","c":"23F9","d":true,"e":true,"f":true,"h":true,"j":["stop_button","blue-square"],"k":[56,60],"o":0},"black_circle_for_record":{"subcategory":"av-symbol","a":"Record Button","b":"23FA-FE0F","c":"23FA","d":true,"e":true,"f":true,"h":true,"j":["record_button","blue-square"],"k":[57,0],"o":0},"eject":{"subcategory":"av-symbol","a":"Eject Button","b":"23CF-FE0F","c":"23CF","d":true,"e":true,"f":true,"h":true,"j":["eject_button","blue-square"],"k":[56,47],"o":1},"cinema":{"subcategory":"av-symbol","a":"Cinema","b":"1F3A6","d":true,"e":true,"f":true,"h":true,"j":["cinema","blue-square","record","film","movie","curtain","stage","theater"],"k":[7,41],"o":0},"low_brightness":{"subcategory":"av-symbol","a":"Low Brightness Symbol","b":"1F505","d":true,"e":true,"f":true,"h":true,"j":["dim_button","sun","afternoon","warm","summer"],"k":[29,31],"o":1},"high_brightness":{"subcategory":"av-symbol","a":"High Brightness Symbol","b":"1F506","d":true,"e":true,"f":true,"h":true,"j":["bright_button","sun","light"],"k":[29,32],"o":1},"signal_strength":{"subcategory":"av-symbol","a":"Antenna with Bars","b":"1F4F6","d":true,"e":true,"f":true,"h":true,"j":["antenna_bars","blue-square","reception","phone","internet","connection","wifi","bluetooth","bars"],"k":[29,17],"o":0},"wireless":{"subcategory":"av-symbol","a":"Wireless","b":"1F6DC","d":true,"e":true,"f":false,"h":false,"j":["wireless","wifi","internet","contactless","signal"],"k":[38,9],"o":15},"vibration_mode":{"subcategory":"av-symbol","a":"Vibration Mode","b":"1F4F3","d":true,"e":true,"f":true,"h":true,"j":["vibration_mode","orange-square","phone"],"k":[29,14],"o":0},"mobile_phone_off":{"subcategory":"av-symbol","a":"Mobile Phone off","b":"1F4F4","d":true,"e":true,"f":true,"h":true,"j":["mobile_phone_off","mute","orange-square","silence","quiet"],"k":[29,15],"o":0},"female_sign":{"subcategory":"gender","a":"Female Sign","b":"2640-FE0F","c":"2640","d":false,"e":true,"f":true,"h":true,"j":["female_sign","woman","women","lady","girl"],"k":[57,36],"o":4},"male_sign":{"subcategory":"gender","a":"Male Sign","b":"2642-FE0F","c":"2642","d":false,"e":true,"f":true,"h":true,"j":["male_sign","man","boy","men"],"k":[57,37],"o":4},"transgender_symbol":{"subcategory":"gender","a":"Transgender Symbol","b":"26A7-FE0F","c":"26A7","d":true,"e":true,"f":true,"h":true,"j":["transgender symbol","transgender","lgbtq"],"k":[58,9],"o":13},"heavy_multiplication_x":{"subcategory":"math","a":"Heavy Multiplication X","b":"2716-FE0F","c":"2716","d":true,"e":true,"f":true,"h":true,"j":["multiplication_sign","math","calculation"],"k":[59,24],"o":0},"heavy_plus_sign":{"subcategory":"math","a":"Heavy Plus Sign","b":"2795","d":true,"e":true,"f":true,"h":true,"j":["plus_sign","math","calculation","addition","more","increase"],"k":[59,42],"o":0},"heavy_minus_sign":{"subcategory":"math","a":"Heavy Minus Sign","b":"2796","d":true,"e":true,"f":true,"h":true,"j":["minus_sign","math","calculation","subtract","less"],"k":[59,43],"o":0},"heavy_division_sign":{"subcategory":"math","a":"Heavy Division Sign","b":"2797","d":true,"e":true,"f":true,"h":true,"j":["division_sign","divide","math","calculation"],"k":[59,44],"o":0},"heavy_equals_sign":{"subcategory":"math","a":"Heavy Equals Sign","b":"1F7F0","d":true,"e":true,"f":true,"h":true,"j":["heavy equals sign","math"],"k":[38,45],"o":14},"infinity":{"subcategory":"math","a":"Infinity","b":"267E-FE0F","c":"267E","d":true,"e":true,"f":true,"h":true,"j":["infinity","forever"],"k":[57,57],"o":11},"bangbang":{"subcategory":"punctuation","a":"Double Exclamation Mark","b":"203C-FE0F","c":"203C","d":true,"e":true,"f":true,"h":true,"j":["double_exclamation_mark","exclamation","surprise"],"k":[56,32],"o":0},"interrobang":{"subcategory":"punctuation","a":"Exclamation Question Mark","b":"2049-FE0F","c":"2049","d":true,"e":true,"f":true,"h":true,"j":["exclamation_question_mark","wat","punctuation","surprise"],"k":[56,33],"o":0},"question":{"subcategory":"punctuation","a":"Black Question Mark Ornament","b":"2753","d":true,"e":true,"f":true,"h":true,"j":["question_mark","doubt","confused"],"k":[59,34],"o":0},"grey_question":{"subcategory":"punctuation","a":"White Question Mark Ornament","b":"2754","d":true,"e":true,"f":true,"h":true,"j":["white_question_mark","doubts","gray","huh","confused"],"k":[59,35],"o":0},"grey_exclamation":{"subcategory":"punctuation","a":"White Exclamation Mark Ornament","b":"2755","d":true,"e":true,"f":true,"h":true,"j":["white_exclamation_mark","surprise","punctuation","gray","wow","warning"],"k":[59,36],"o":0},"exclamation":{"subcategory":"punctuation","a":"Heavy Exclamation Mark Symbol","b":"2757","d":true,"e":true,"f":true,"h":true,"j":["exclamation_mark","heavy_exclamation_mark","danger","surprise","punctuation","wow","warning"],"k":[59,37],"n":["heavy_exclamation_mark"],"o":0},"wavy_dash":{"subcategory":"punctuation","a":"Wavy Dash","b":"3030-FE0F","c":"3030","d":true,"e":true,"f":true,"h":true,"j":["wavy_dash","draw","line","moustache","mustache","squiggle","scribble"],"k":[59,57],"o":0},"currency_exchange":{"subcategory":"currency","a":"Currency Exchange","b":"1F4B1","d":true,"e":true,"f":true,"h":true,"j":["currency_exchange","money","sales","dollar","travel"],"k":[28,9],"o":0},"heavy_dollar_sign":{"subcategory":"currency","a":"Heavy Dollar Sign","b":"1F4B2","d":true,"e":true,"f":true,"h":true,"j":["heavy_dollar_sign","money","sales","payment","currency","buck"],"k":[28,10],"o":0},"medical_symbol":{"subcategory":"other-symbol","a":"Medical Symbol","b":"2695-FE0F","c":"2695","d":false,"e":true,"f":true,"h":true,"j":["medical_symbol","health","hospital"],"k":[58,1],"n":["staff_of_aesculapius"],"o":4},"recycle":{"subcategory":"other-symbol","a":"Black Universal Recycling Symbol","b":"267B-FE0F","c":"267B","d":true,"e":true,"f":true,"h":true,"j":["recycling_symbol","arrow","environment","garbage","trash"],"k":[57,56],"o":0},"fleur_de_lis":{"subcategory":"other-symbol","a":"Fleur-De-Lis","b":"269C-FE0F","c":"269C","d":true,"e":true,"f":true,"h":true,"j":["fleur_de_lis","decorative","scout"],"k":[58,6],"o":1},"trident":{"subcategory":"other-symbol","a":"Trident Emblem","b":"1F531","d":true,"e":true,"f":true,"h":true,"j":["trident_emblem","weapon","spear"],"k":[30,14],"o":0},"name_badge":{"subcategory":"other-symbol","a":"Name Badge","b":"1F4DB","d":true,"e":true,"f":true,"h":true,"j":["name_badge","fire","forbid"],"k":[28,51],"o":0},"beginner":{"subcategory":"other-symbol","a":"Japanese Symbol for Beginner","b":"1F530","d":true,"e":true,"f":true,"h":true,"j":["japanese_symbol_for_beginner","badge","shield"],"k":[30,13],"o":0},"o":{"subcategory":"other-symbol","a":"Heavy Large Circle","b":"2B55","d":true,"e":true,"f":true,"h":true,"j":["hollow_red_circle","circle","round"],"k":[59,56],"o":0},"white_check_mark":{"subcategory":"other-symbol","a":"White Heavy Check Mark","b":"2705","d":true,"e":true,"f":true,"h":true,"j":["check_mark_button","green-square","ok","agree","vote","election","answer","tick"],"k":[58,55],"o":0},"ballot_box_with_check":{"subcategory":"other-symbol","a":"Ballot Box with Check","b":"2611-FE0F","c":"2611","d":true,"e":true,"f":true,"h":true,"j":["check_box_with_check","ok","agree","confirm","black-square","vote","election","yes","tick"],"k":[57,16],"o":0},"heavy_check_mark":{"subcategory":"other-symbol","a":"Heavy Check Mark","b":"2714-FE0F","c":"2714","d":true,"e":true,"f":true,"h":true,"j":["check_mark","ok","nike","answer","yes","tick"],"k":[59,23],"o":0},"x":{"subcategory":"other-symbol","a":"Cross Mark","b":"274C","d":true,"e":true,"f":true,"h":true,"j":["cross_mark","no","delete","remove","cancel","red"],"k":[59,32],"o":0},"negative_squared_cross_mark":{"subcategory":"other-symbol","a":"Negative Squared Cross Mark","b":"274E","d":true,"e":true,"f":true,"h":true,"j":["cross_mark_button","x","green-square","no","deny"],"k":[59,33],"o":0},"curly_loop":{"subcategory":"other-symbol","a":"Curly Loop","b":"27B0","d":true,"e":true,"f":true,"h":true,"j":["curly_loop","scribble","draw","shape","squiggle"],"k":[59,46],"o":0},"loop":{"subcategory":"other-symbol","a":"Double Curly Loop","b":"27BF","d":true,"e":true,"f":true,"h":true,"j":["double_curly_loop","tape","cassette"],"k":[59,47],"o":1},"part_alternation_mark":{"subcategory":"other-symbol","a":"Part Alternation Mark","b":"303D-FE0F","c":"303D","d":true,"e":true,"f":true,"h":true,"j":["part_alternation_mark","graph","presentation","stats","business","economics","bad"],"k":[59,58],"o":0},"eight_spoked_asterisk":{"subcategory":"other-symbol","a":"Eight Spoked Asterisk","b":"2733-FE0F","c":"2733","d":true,"e":true,"f":true,"h":true,"j":["eight_spoked_asterisk","star","sparkle","green-square"],"k":[59,28],"o":0},"eight_pointed_black_star":{"subcategory":"other-symbol","a":"Eight Pointed Black Star","b":"2734-FE0F","c":"2734","d":true,"e":true,"f":true,"h":true,"j":["eight_pointed_star","orange-square","shape","polygon"],"k":[59,29],"o":0},"sparkle":{"subcategory":"other-symbol","a":"Sparkle","b":"2747-FE0F","c":"2747","d":true,"e":true,"f":true,"h":true,"j":["sparkle","stars","green-square","awesome","good","fireworks"],"k":[59,31],"o":0},"copyright":{"subcategory":"other-symbol","a":"Copyright Sign","b":"00A9-FE0F","c":"00A9","d":true,"e":true,"f":true,"h":false,"j":["copyright","ip","license","circle","law","legal"],"k":[0,12],"o":0},"registered":{"subcategory":"other-symbol","a":"Registered Sign","b":"00AE-FE0F","c":"00AE","d":true,"e":true,"f":true,"h":false,"j":["registered","alphabet","circle"],"k":[0,13],"o":0},"tm":{"subcategory":"other-symbol","a":"Trade Mark Sign","b":"2122-FE0F","c":"2122","d":true,"e":true,"f":true,"h":true,"j":["trade_mark","trademark","brand","law","legal"],"k":[56,34],"o":0},"hash":{"subcategory":"keycap","a":"Hash Key","b":"0023-FE0F-20E3","c":"0023-20E3","d":true,"e":true,"f":true,"h":false,"j":["keycap_","symbol","blue-square","twitter"],"k":[0,0],"o":0},"keycap_star":{"subcategory":"keycap","a":"Keycap: *","b":"002A-FE0F-20E3","c":"002A-20E3","d":true,"e":true,"f":true,"h":false,"j":["keycap_","star","keycap"],"k":[0,1],"o":2},"zero":{"subcategory":"keycap","a":"Keycap 0","b":"0030-FE0F-20E3","c":"0030-20E3","d":true,"e":true,"f":true,"h":false,"j":["keycap_0","0","numbers","blue-square","null","zero"],"k":[0,2],"o":0},"one":{"subcategory":"keycap","a":"Keycap 1","b":"0031-FE0F-20E3","c":"0031-20E3","d":true,"e":true,"f":true,"h":false,"j":["keycap_1","blue-square","numbers","1","one"],"k":[0,3],"o":0},"two":{"subcategory":"keycap","a":"Keycap 2","b":"0032-FE0F-20E3","c":"0032-20E3","d":true,"e":true,"f":true,"h":false,"j":["keycap_2","numbers","2","prime","blue-square","two"],"k":[0,4],"o":0},"three":{"subcategory":"keycap","a":"Keycap 3","b":"0033-FE0F-20E3","c":"0033-20E3","d":true,"e":true,"f":true,"h":false,"j":["keycap_3","3","numbers","prime","blue-square","three"],"k":[0,5],"o":0},"four":{"subcategory":"keycap","a":"Keycap 4","b":"0034-FE0F-20E3","c":"0034-20E3","d":true,"e":true,"f":true,"h":false,"j":["keycap_4","4","numbers","blue-square","four"],"k":[0,6],"o":0},"five":{"subcategory":"keycap","a":"Keycap 5","b":"0035-FE0F-20E3","c":"0035-20E3","d":true,"e":true,"f":true,"h":false,"j":["keycap_5","5","numbers","blue-square","prime","five"],"k":[0,7],"o":0},"six":{"subcategory":"keycap","a":"Keycap 6","b":"0036-FE0F-20E3","c":"0036-20E3","d":true,"e":true,"f":true,"h":false,"j":["keycap_6","6","numbers","blue-square","six"],"k":[0,8],"o":0},"seven":{"subcategory":"keycap","a":"Keycap 7","b":"0037-FE0F-20E3","c":"0037-20E3","d":true,"e":true,"f":true,"h":false,"j":["keycap_7","7","numbers","blue-square","prime","seven"],"k":[0,9],"o":0},"eight":{"subcategory":"keycap","a":"Keycap 8","b":"0038-FE0F-20E3","c":"0038-20E3","d":true,"e":true,"f":true,"h":false,"j":["keycap_8","8","blue-square","numbers","eight"],"k":[0,10],"o":0},"nine":{"subcategory":"keycap","a":"Keycap 9","b":"0039-FE0F-20E3","c":"0039-20E3","d":true,"e":true,"f":true,"h":false,"j":["keycap_9","blue-square","numbers","9","nine"],"k":[0,11],"o":0},"keycap_ten":{"subcategory":"keycap","a":"Keycap Ten","b":"1F51F","d":true,"e":true,"f":true,"h":true,"j":["keycap_10","numbers","10","blue-square","ten"],"k":[29,57],"o":0},"capital_abcd":{"subcategory":"alphanum","a":"Input Symbol for Latin Capital Letters","b":"1F520","d":true,"e":true,"f":true,"h":true,"j":["input_latin_uppercase","alphabet","words","letters","uppercase","blue-square"],"k":[29,58],"o":0},"abcd":{"subcategory":"alphanum","a":"Input Symbol for Latin Small Letters","b":"1F521","d":true,"e":true,"f":true,"h":true,"j":["input_latin_lowercase","blue-square","letters","lowercase","alphabet"],"k":[29,59],"o":0},"symbols":{"subcategory":"alphanum","a":"Input Symbol for Symbols","b":"1F523","d":true,"e":true,"f":true,"h":true,"j":["input_symbols","blue-square","music","note","ampersand","percent","glyphs","characters"],"k":[30,0],"o":0},"abc":{"subcategory":"alphanum","a":"Input Symbol for Latin Letters","b":"1F524","d":true,"e":true,"f":true,"h":true,"j":["input_latin_letters","blue-square","alphabet"],"k":[30,1],"o":0},"a":{"subcategory":"alphanum","a":"Negative Squared Latin Capital Letter a","b":"1F170-FE0F","c":"1F170","d":true,"e":true,"f":true,"h":true,"j":["a_button","red-square","alphabet","letter"],"k":[0,16],"o":0},"ab":{"subcategory":"alphanum","a":"Negative Squared Ab","b":"1F18E","d":true,"e":true,"f":true,"h":true,"j":["ab_button","red-square","alphabet"],"k":[0,20],"o":0},"b":{"subcategory":"alphanum","a":"Negative Squared Latin Capital Letter B","b":"1F171-FE0F","c":"1F171","d":true,"e":true,"f":true,"h":true,"j":["b_button","red-square","alphabet","letter"],"k":[0,17],"o":0},"cl":{"subcategory":"alphanum","a":"Squared Cl","b":"1F191","d":true,"e":true,"f":true,"h":true,"j":["cl_button","alphabet","words","red-square"],"k":[0,21],"o":0},"cool":{"subcategory":"alphanum","a":"Squared Cool","b":"1F192","d":true,"e":true,"f":true,"h":true,"j":["cool_button","words","blue-square"],"k":[0,22],"o":0},"free":{"subcategory":"alphanum","a":"Squared Free","b":"1F193","d":true,"e":true,"f":true,"h":true,"j":["free_button","blue-square","words"],"k":[0,23],"o":0},"information_source":{"subcategory":"alphanum","a":"Information Source","b":"2139-FE0F","c":"2139","d":true,"e":true,"f":true,"h":true,"j":["information","blue-square","alphabet","letter"],"k":[56,35],"o":0},"id":{"subcategory":"alphanum","a":"Squared Id","b":"1F194","d":true,"e":true,"f":true,"h":true,"j":["id_button","purple-square","words"],"k":[0,24],"o":0},"m":{"subcategory":"alphanum","a":"Circled Latin Capital Letter M","b":"24C2-FE0F","c":"24C2","d":true,"e":true,"f":true,"h":true,"j":["circled_m","alphabet","blue-circle","letter"],"k":[57,1],"o":0},"new":{"subcategory":"alphanum","a":"Squared New","b":"1F195","d":true,"e":true,"f":true,"h":true,"j":["new_button","blue-square","words","start"],"k":[0,25],"o":0},"ng":{"subcategory":"alphanum","a":"Squared Ng","b":"1F196","d":true,"e":true,"f":true,"h":true,"j":["ng_button","blue-square","words","shape","icon"],"k":[0,26],"o":0},"o2":{"subcategory":"alphanum","a":"Negative Squared Latin Capital Letter O","b":"1F17E-FE0F","c":"1F17E","d":true,"e":true,"f":true,"h":true,"j":["o_button","alphabet","red-square","letter"],"k":[0,18],"o":0},"ok":{"subcategory":"alphanum","a":"Squared Ok","b":"1F197","d":true,"e":true,"f":true,"h":true,"j":["ok_button","good","agree","yes","blue-square"],"k":[0,27],"o":0},"parking":{"subcategory":"alphanum","a":"Negative Squared Latin Capital Letter P","b":"1F17F-FE0F","c":"1F17F","d":true,"e":true,"f":true,"h":true,"j":["p_button","cars","blue-square","alphabet","letter"],"k":[0,19],"o":0},"sos":{"subcategory":"alphanum","a":"Squared Sos","b":"1F198","d":true,"e":true,"f":true,"h":true,"j":["sos_button","help","red-square","words","emergency","911"],"k":[0,28],"o":0},"up":{"subcategory":"alphanum","a":"Squared Up with Exclamation Mark","b":"1F199","d":true,"e":true,"f":true,"h":true,"j":["up_button","blue-square","above","high"],"k":[0,29],"o":0},"vs":{"subcategory":"alphanum","a":"Squared Vs","b":"1F19A","d":true,"e":true,"f":true,"h":true,"j":["vs_button","words","orange-square"],"k":[0,30],"o":0},"koko":{"subcategory":"alphanum","a":"Squared Katakana Koko","b":"1F201","d":true,"e":true,"f":true,"h":true,"j":["japanese_here_button","blue-square","here","katakana","japanese","destination"],"k":[4,45],"o":0},"sa":{"subcategory":"alphanum","a":"Squared Katakana Sa","b":"1F202-FE0F","c":"1F202","d":true,"e":true,"f":true,"h":true,"j":["japanese_service_charge_button","japanese","blue-square","katakana"],"k":[4,46],"o":0},"u6708":{"subcategory":"alphanum","a":"Squared Cjk Unified Ideograph-6708","b":"1F237-FE0F","c":"1F237","d":true,"e":true,"f":true,"h":true,"j":["japanese_monthly_amount_button","chinese","month","moon","japanese","orange-square","kanji"],"k":[4,54],"o":0},"u6709":{"subcategory":"alphanum","a":"Squared Cjk Unified Ideograph-6709","b":"1F236","d":true,"e":true,"f":true,"h":true,"j":["japanese_not_free_of_charge_button","orange-square","chinese","have","kanji"],"k":[4,53],"o":0},"u6307":{"subcategory":"alphanum","a":"Squared Cjk Unified Ideograph-6307","b":"1F22F","d":true,"e":true,"f":true,"h":true,"j":["japanese_reserved_button","chinese","point","green-square","kanji"],"k":[4,48],"o":0},"ideograph_advantage":{"subcategory":"alphanum","a":"Circled Ideograph Advantage","b":"1F250","d":true,"e":true,"f":true,"h":true,"j":["japanese_bargain_button","chinese","kanji","obtain","get","circle"],"k":[4,58],"o":0},"u5272":{"subcategory":"alphanum","a":"Squared Cjk Unified Ideograph-5272","b":"1F239","d":true,"e":true,"f":true,"h":true,"j":["japanese_discount_button","cut","divide","chinese","kanji","pink-square"],"k":[4,56],"o":0},"u7121":{"subcategory":"alphanum","a":"Squared Cjk Unified Ideograph-7121","b":"1F21A","d":true,"e":true,"f":true,"h":true,"j":["japanese_free_of_charge_button","nothing","chinese","kanji","japanese","orange-square"],"k":[4,47],"o":0},"u7981":{"subcategory":"alphanum","a":"Squared Cjk Unified Ideograph-7981","b":"1F232","d":true,"e":true,"f":true,"h":true,"j":["japanese_prohibited_button","kanji","japanese","chinese","forbidden","limit","restricted","red-square"],"k":[4,49],"o":0},"accept":{"subcategory":"alphanum","a":"Circled Ideograph Accept","b":"1F251","d":true,"e":true,"f":true,"h":true,"j":["japanese_acceptable_button","ok","good","chinese","kanji","agree","yes","orange-circle"],"k":[4,59],"o":0},"u7533":{"subcategory":"alphanum","a":"Squared Cjk Unified Ideograph-7533","b":"1F238","d":true,"e":true,"f":true,"h":true,"j":["japanese_application_button","chinese","japanese","kanji","orange-square"],"k":[4,55],"o":0},"u5408":{"subcategory":"alphanum","a":"Squared Cjk Unified Ideograph-5408","b":"1F234","d":true,"e":true,"f":true,"h":true,"j":["japanese_passing_grade_button","japanese","chinese","join","kanji","red-square"],"k":[4,51],"o":0},"u7a7a":{"subcategory":"alphanum","a":"Squared Cjk Unified Ideograph-7a7a","b":"1F233","d":true,"e":true,"f":true,"h":true,"j":["japanese_vacancy_button","kanji","japanese","chinese","empty","sky","blue-square"],"k":[4,50],"o":0},"congratulations":{"subcategory":"alphanum","a":"Circled Ideograph Congratulation","b":"3297-FE0F","c":"3297","d":true,"e":true,"f":true,"h":true,"j":["japanese_congratulations_button","chinese","kanji","japanese","red-circle"],"k":[59,59],"o":0},"secret":{"subcategory":"alphanum","a":"Circled Ideograph Secret","b":"3299-FE0F","c":"3299","d":true,"e":true,"f":true,"h":true,"j":["japanese_secret_button","privacy","chinese","sshh","kanji","red-circle"],"k":[59,60],"o":0},"u55b6":{"subcategory":"alphanum","a":"Squared Cjk Unified Ideograph-55b6","b":"1F23A","d":true,"e":true,"f":true,"h":true,"j":["japanese_open_for_business_button","japanese","opening hours","orange-square"],"k":[4,57],"o":0},"u6e80":{"subcategory":"alphanum","a":"Squared Cjk Unified Ideograph-6e80","b":"1F235","d":true,"e":true,"f":true,"h":true,"j":["japanese_no_vacancy_button","full","chinese","japanese","red-square","kanji"],"k":[4,52],"o":0},"red_circle":{"subcategory":"geometric","a":"Large Red Circle","b":"1F534","d":true,"e":true,"f":true,"h":true,"j":["red_circle","shape","error","danger"],"k":[30,17],"o":0},"large_orange_circle":{"subcategory":"geometric","a":"Large Orange Circle","b":"1F7E0","d":true,"e":true,"f":true,"h":true,"j":["orange_circle","round"],"k":[38,33],"o":12},"large_yellow_circle":{"subcategory":"geometric","a":"Large Yellow Circle","b":"1F7E1","d":true,"e":true,"f":true,"h":true,"j":["yellow_circle","round"],"k":[38,34],"o":12},"large_green_circle":{"subcategory":"geometric","a":"Large Green Circle","b":"1F7E2","d":true,"e":true,"f":true,"h":true,"j":["green_circle","round"],"k":[38,35],"o":12},"large_blue_circle":{"subcategory":"geometric","a":"Large Blue Circle","b":"1F535","d":true,"e":true,"f":true,"h":true,"j":["blue_circle","shape","icon","button"],"k":[30,18],"o":0},"large_purple_circle":{"subcategory":"geometric","a":"Large Purple Circle","b":"1F7E3","d":true,"e":true,"f":true,"h":true,"j":["purple_circle","round"],"k":[38,36],"o":12},"large_brown_circle":{"subcategory":"geometric","a":"Large Brown Circle","b":"1F7E4","d":true,"e":true,"f":true,"h":true,"j":["brown_circle","round"],"k":[38,37],"o":12},"black_circle":{"subcategory":"geometric","a":"Medium Black Circle","b":"26AB","d":true,"e":true,"f":true,"h":true,"j":["black_circle","shape","button","round"],"k":[58,11],"o":0},"white_circle":{"subcategory":"geometric","a":"Medium White Circle","b":"26AA","d":true,"e":true,"f":true,"h":true,"j":["white_circle","shape","round"],"k":[58,10],"o":0},"large_red_square":{"subcategory":"geometric","a":"Large Red Square","b":"1F7E5","d":true,"e":true,"f":true,"h":true,"j":["red_square"],"k":[38,38],"o":12},"large_orange_square":{"subcategory":"geometric","a":"Large Orange Square","b":"1F7E7","d":true,"e":true,"f":true,"h":true,"j":["orange_square"],"k":[38,40],"o":12},"large_yellow_square":{"subcategory":"geometric","a":"Large Yellow Square","b":"1F7E8","d":true,"e":true,"f":true,"h":true,"j":["yellow_square"],"k":[38,41],"o":12},"large_green_square":{"subcategory":"geometric","a":"Large Green Square","b":"1F7E9","d":true,"e":true,"f":true,"h":true,"j":["green_square"],"k":[38,42],"o":12},"large_blue_square":{"subcategory":"geometric","a":"Large Blue Square","b":"1F7E6","d":true,"e":true,"f":true,"h":true,"j":["blue_square"],"k":[38,39],"o":12},"large_purple_square":{"subcategory":"geometric","a":"Large Purple Square","b":"1F7EA","d":true,"e":true,"f":true,"h":true,"j":["purple_square"],"k":[38,43],"o":12},"large_brown_square":{"subcategory":"geometric","a":"Large Brown Square","b":"1F7EB","d":true,"e":true,"f":true,"h":true,"j":["brown_square"],"k":[38,44],"o":12},"black_large_square":{"subcategory":"geometric","a":"Black Large Square","b":"2B1B","d":true,"e":true,"f":true,"h":true,"j":["black_large_square","shape","icon","button"],"k":[59,53],"o":0},"white_large_square":{"subcategory":"geometric","a":"White Large Square","b":"2B1C","d":true,"e":true,"f":true,"h":true,"j":["white_large_square","shape","icon","stone","button"],"k":[59,54],"o":0},"black_medium_square":{"subcategory":"geometric","a":"Black Medium Square","b":"25FC-FE0F","c":"25FC","d":true,"e":true,"f":true,"h":true,"j":["black_medium_square","shape","button","icon"],"k":[57,7],"o":0},"white_medium_square":{"subcategory":"geometric","a":"White Medium Square","b":"25FB-FE0F","c":"25FB","d":true,"e":true,"f":true,"h":true,"j":["white_medium_square","shape","stone","icon"],"k":[57,6],"o":0},"black_medium_small_square":{"subcategory":"geometric","a":"Black Medium Small Square","b":"25FE","d":true,"e":true,"f":true,"h":true,"j":["black_medium_small_square","icon","shape","button"],"k":[57,9],"o":0},"white_medium_small_square":{"subcategory":"geometric","a":"White Medium Small Square","b":"25FD","d":true,"e":true,"f":true,"h":true,"j":["white_medium_small_square","shape","stone","icon","button"],"k":[57,8],"o":0},"black_small_square":{"subcategory":"geometric","a":"Black Small Square","b":"25AA-FE0F","c":"25AA","d":true,"e":true,"f":true,"h":true,"j":["black_small_square","shape","icon"],"k":[57,2],"o":0},"white_small_square":{"subcategory":"geometric","a":"White Small Square","b":"25AB-FE0F","c":"25AB","d":true,"e":true,"f":true,"h":true,"j":["white_small_square","shape","icon"],"k":[57,3],"o":0},"large_orange_diamond":{"subcategory":"geometric","a":"Large Orange Diamond","b":"1F536","d":true,"e":true,"f":true,"h":true,"j":["large_orange_diamond","shape","jewel","gem"],"k":[30,19],"o":0},"large_blue_diamond":{"subcategory":"geometric","a":"Large Blue Diamond","b":"1F537","d":true,"e":true,"f":true,"h":true,"j":["large_blue_diamond","shape","jewel","gem"],"k":[30,20],"o":0},"small_orange_diamond":{"subcategory":"geometric","a":"Small Orange Diamond","b":"1F538","d":true,"e":true,"f":true,"h":true,"j":["small_orange_diamond","shape","jewel","gem"],"k":[30,21],"o":0},"small_blue_diamond":{"subcategory":"geometric","a":"Small Blue Diamond","b":"1F539","d":true,"e":true,"f":true,"h":true,"j":["small_blue_diamond","shape","jewel","gem"],"k":[30,22],"o":0},"small_red_triangle":{"subcategory":"geometric","a":"Up-Pointing Red Triangle","b":"1F53A","d":true,"e":true,"f":true,"h":true,"j":["red_triangle_pointed_up","shape","direction","up","top"],"k":[30,23],"o":0},"small_red_triangle_down":{"subcategory":"geometric","a":"Down-Pointing Red Triangle","b":"1F53B","d":true,"e":true,"f":true,"h":true,"j":["red_triangle_pointed_down","shape","direction","bottom"],"k":[30,24],"o":0},"diamond_shape_with_a_dot_inside":{"subcategory":"geometric","a":"Diamond Shape with a Dot Inside","b":"1F4A0","d":true,"e":true,"f":true,"h":true,"j":["diamond_with_a_dot","jewel","blue","gem","crystal","fancy"],"k":[27,48],"o":0},"radio_button":{"subcategory":"geometric","a":"Radio Button","b":"1F518","d":true,"e":true,"f":true,"h":true,"j":["radio_button","input","old","music","circle"],"k":[29,50],"o":0},"white_square_button":{"subcategory":"geometric","a":"White Square Button","b":"1F533","d":true,"e":true,"f":true,"h":true,"j":["white_square_button","shape","input"],"k":[30,16],"o":0},"black_square_button":{"subcategory":"geometric","a":"Black Square Button","b":"1F532","d":true,"e":true,"f":true,"h":true,"j":["black_square_button","shape","input","frame"],"k":[30,15],"o":0},"checkered_flag":{"subcategory":"flag","a":"Chequered Flag","b":"1F3C1","d":true,"e":true,"f":true,"h":true,"j":["chequered_flag","contest","finishline","race","gokart"],"k":[8,7],"o":0},"triangular_flag_on_post":{"subcategory":"flag","a":"Triangular Flag on Post","b":"1F6A9","d":true,"e":true,"f":true,"h":true,"j":["triangular_flag","mark","milestone","place"],"k":[36,30],"o":0},"crossed_flags":{"subcategory":"flag","a":"Crossed Flags","b":"1F38C","d":true,"e":true,"f":true,"h":true,"j":["crossed_flags","japanese","nation","country","border"],"k":[7,20],"o":0},"waving_black_flag":{"subcategory":"flag","a":"Waving Black Flag","b":"1F3F4","d":true,"e":true,"f":true,"h":true,"j":["black_flag","pirate"],"k":[10,35],"o":1},"waving_white_flag":{"subcategory":"flag","a":"White Flag","b":"1F3F3-FE0F","c":"1F3F3","d":true,"e":true,"f":true,"h":true,"j":["white_flag","losing","loser","lost","surrender","give up","fail"],"k":[10,30],"o":0},"rainbow-flag":{"subcategory":"flag","a":"Rainbow Flag","b":"1F3F3-FE0F-200D-1F308","c":"1F3F3-200D-1F308","d":true,"e":true,"f":true,"h":true,"j":["rainbow_flag","flag","rainbow","pride","gay","lgbt","queer","homosexual","lesbian","bisexual"],"k":[10,28],"o":4},"transgender_flag":{"subcategory":"flag","a":"Transgender Flag","b":"1F3F3-FE0F-200D-26A7-FE0F","d":true,"e":true,"f":true,"h":false,"j":["transgender flag","transgender","flag","pride","lgbtq"],"k":[10,29],"o":13},"pirate_flag":{"subcategory":"flag","a":"Pirate Flag","b":"1F3F4-200D-2620-FE0F","c":"1F3F4-200D-2620","d":true,"e":true,"f":true,"h":true,"j":["pirate_flag","skull","crossbones","flag","banner"],"k":[10,31],"o":11},"flag-ac":{"subcategory":"country-flag","a":"Ascension Island Flag","b":"1F1E6-1F1E8","d":true,"e":true,"f":true,"h":true,"j":["flag_ascension_island"],"k":[0,31],"o":2},"flag-ad":{"subcategory":"country-flag","a":"Andorra Flag","b":"1F1E6-1F1E9","d":true,"e":true,"f":true,"h":true,"j":["flag_andorra","ad","flag","nation","country","banner","andorra"],"k":[0,32],"o":2},"flag-ae":{"subcategory":"country-flag","a":"United Arab Emirates Flag","b":"1F1E6-1F1EA","d":true,"e":true,"f":true,"h":true,"j":["flag_united_arab_emirates","united","arab","emirates","flag","nation","country","banner","united_arab_emirates"],"k":[0,33],"o":2},"flag-af":{"subcategory":"country-flag","a":"Afghanistan Flag","b":"1F1E6-1F1EB","d":true,"e":true,"f":true,"h":true,"j":["flag_afghanistan","af","flag","nation","country","banner","afghanistan"],"k":[0,34],"o":2},"flag-ag":{"subcategory":"country-flag","a":"Antigua & Barbuda Flag","b":"1F1E6-1F1EC","d":true,"e":true,"f":true,"h":true,"j":["flag_antigua_barbuda","antigua","barbuda","flag","nation","country","banner","antigua_barbuda"],"k":[0,35],"o":2},"flag-ai":{"subcategory":"country-flag","a":"Anguilla Flag","b":"1F1E6-1F1EE","d":true,"e":true,"f":true,"h":true,"j":["flag_anguilla","ai","flag","nation","country","banner","anguilla"],"k":[0,36],"o":2},"flag-al":{"subcategory":"country-flag","a":"Albania Flag","b":"1F1E6-1F1F1","d":true,"e":true,"f":true,"h":true,"j":["flag_albania","al","flag","nation","country","banner","albania"],"k":[0,37],"o":2},"flag-am":{"subcategory":"country-flag","a":"Armenia Flag","b":"1F1E6-1F1F2","d":true,"e":true,"f":true,"h":true,"j":["flag_armenia","am","flag","nation","country","banner","armenia"],"k":[0,38],"o":2},"flag-ao":{"subcategory":"country-flag","a":"Angola Flag","b":"1F1E6-1F1F4","d":true,"e":true,"f":true,"h":true,"j":["flag_angola","ao","flag","nation","country","banner","angola"],"k":[0,39],"o":2},"flag-aq":{"subcategory":"country-flag","a":"Antarctica Flag","b":"1F1E6-1F1F6","d":true,"e":true,"f":true,"h":true,"j":["flag_antarctica","aq","flag","nation","country","banner","antarctica"],"k":[0,40],"o":2},"flag-ar":{"subcategory":"country-flag","a":"Argentina Flag","b":"1F1E6-1F1F7","d":true,"e":true,"f":true,"h":true,"j":["flag_argentina","ar","flag","nation","country","banner","argentina"],"k":[0,41],"o":2},"flag-as":{"subcategory":"country-flag","a":"American Samoa Flag","b":"1F1E6-1F1F8","d":true,"e":true,"f":true,"h":true,"j":["flag_american_samoa","american","ws","flag","nation","country","banner","american_samoa"],"k":[0,42],"o":2},"flag-at":{"subcategory":"country-flag","a":"Austria Flag","b":"1F1E6-1F1F9","d":true,"e":true,"f":true,"h":true,"j":["flag_austria","at","flag","nation","country","banner","austria"],"k":[0,43],"o":2},"flag-au":{"subcategory":"country-flag","a":"Australia Flag","b":"1F1E6-1F1FA","d":true,"e":true,"f":true,"h":true,"j":["flag_australia","au","flag","nation","country","banner","australia"],"k":[0,44],"o":2},"flag-aw":{"subcategory":"country-flag","a":"Aruba Flag","b":"1F1E6-1F1FC","d":true,"e":true,"f":true,"h":true,"j":["flag_aruba","aw","flag","nation","country","banner","aruba"],"k":[0,45],"o":2},"flag-ax":{"subcategory":"country-flag","a":"Åland Islands Flag","b":"1F1E6-1F1FD","d":true,"e":true,"f":true,"h":true,"j":["flag_aland_islands","Åland","islands","flag","nation","country","banner","aland_islands"],"k":[0,46],"o":2},"flag-az":{"subcategory":"country-flag","a":"Azerbaijan Flag","b":"1F1E6-1F1FF","d":true,"e":true,"f":true,"h":true,"j":["flag_azerbaijan","az","flag","nation","country","banner","azerbaijan"],"k":[0,47],"o":2},"flag-ba":{"subcategory":"country-flag","a":"Bosnia & Herzegovina Flag","b":"1F1E7-1F1E6","d":true,"e":true,"f":true,"h":true,"j":["flag_bosnia_herzegovina","bosnia","herzegovina","flag","nation","country","banner","bosnia_herzegovina"],"k":[0,48],"o":2},"flag-bb":{"subcategory":"country-flag","a":"Barbados Flag","b":"1F1E7-1F1E7","d":true,"e":true,"f":true,"h":true,"j":["flag_barbados","bb","flag","nation","country","banner","barbados"],"k":[0,49],"o":2},"flag-bd":{"subcategory":"country-flag","a":"Bangladesh Flag","b":"1F1E7-1F1E9","d":true,"e":true,"f":true,"h":true,"j":["flag_bangladesh","bd","flag","nation","country","banner","bangladesh"],"k":[0,50],"o":2},"flag-be":{"subcategory":"country-flag","a":"Belgium Flag","b":"1F1E7-1F1EA","d":true,"e":true,"f":true,"h":true,"j":["flag_belgium","be","flag","nation","country","banner","belgium"],"k":[0,51],"o":2},"flag-bf":{"subcategory":"country-flag","a":"Burkina Faso Flag","b":"1F1E7-1F1EB","d":true,"e":true,"f":true,"h":true,"j":["flag_burkina_faso","burkina","faso","flag","nation","country","banner","burkina_faso"],"k":[0,52],"o":2},"flag-bg":{"subcategory":"country-flag","a":"Bulgaria Flag","b":"1F1E7-1F1EC","d":true,"e":true,"f":true,"h":true,"j":["flag_bulgaria","bg","flag","nation","country","banner","bulgaria"],"k":[0,53],"o":2},"flag-bh":{"subcategory":"country-flag","a":"Bahrain Flag","b":"1F1E7-1F1ED","d":true,"e":true,"f":true,"h":true,"j":["flag_bahrain","bh","flag","nation","country","banner","bahrain"],"k":[0,54],"o":2},"flag-bi":{"subcategory":"country-flag","a":"Burundi Flag","b":"1F1E7-1F1EE","d":true,"e":true,"f":true,"h":true,"j":["flag_burundi","bi","flag","nation","country","banner","burundi"],"k":[0,55],"o":2},"flag-bj":{"subcategory":"country-flag","a":"Benin Flag","b":"1F1E7-1F1EF","d":true,"e":true,"f":true,"h":true,"j":["flag_benin","bj","flag","nation","country","banner","benin"],"k":[0,56],"o":2},"flag-bl":{"subcategory":"country-flag","a":"St. Barthélemy Flag","b":"1F1E7-1F1F1","d":true,"e":true,"f":true,"h":true,"j":["flag_st_barthelemy","saint","barthélemy","flag","nation","country","banner","st_barthelemy"],"k":[0,57],"o":2},"flag-bm":{"subcategory":"country-flag","a":"Bermuda Flag","b":"1F1E7-1F1F2","d":true,"e":true,"f":true,"h":true,"j":["flag_bermuda","bm","flag","nation","country","banner","bermuda"],"k":[0,58],"o":2},"flag-bn":{"subcategory":"country-flag","a":"Brunei Flag","b":"1F1E7-1F1F3","d":true,"e":true,"f":true,"h":true,"j":["flag_brunei","bn","darussalam","flag","nation","country","banner","brunei"],"k":[0,59],"o":2},"flag-bo":{"subcategory":"country-flag","a":"Bolivia Flag","b":"1F1E7-1F1F4","d":true,"e":true,"f":true,"h":true,"j":["flag_bolivia","bo","flag","nation","country","banner","bolivia"],"k":[0,60],"o":2},"flag-bq":{"subcategory":"country-flag","a":"Caribbean Netherlands Flag","b":"1F1E7-1F1F6","d":true,"e":true,"f":true,"h":true,"j":["flag_caribbean_netherlands","bonaire","flag","nation","country","banner","caribbean_netherlands"],"k":[1,0],"o":2},"flag-br":{"subcategory":"country-flag","a":"Brazil Flag","b":"1F1E7-1F1F7","d":true,"e":true,"f":true,"h":true,"j":["flag_brazil","br","flag","nation","country","banner","brazil"],"k":[1,1],"o":2},"flag-bs":{"subcategory":"country-flag","a":"Bahamas Flag","b":"1F1E7-1F1F8","d":true,"e":true,"f":true,"h":true,"j":["flag_bahamas","bs","flag","nation","country","banner","bahamas"],"k":[1,2],"o":2},"flag-bt":{"subcategory":"country-flag","a":"Bhutan Flag","b":"1F1E7-1F1F9","d":true,"e":true,"f":true,"h":true,"j":["flag_bhutan","bt","flag","nation","country","banner","bhutan"],"k":[1,3],"o":2},"flag-bv":{"subcategory":"country-flag","a":"Bouvet Island Flag","b":"1F1E7-1F1FB","d":true,"e":true,"f":true,"h":true,"j":["flag_bouvet_island","norway"],"k":[1,4],"o":2},"flag-bw":{"subcategory":"country-flag","a":"Botswana Flag","b":"1F1E7-1F1FC","d":true,"e":true,"f":true,"h":true,"j":["flag_botswana","bw","flag","nation","country","banner","botswana"],"k":[1,5],"o":2},"flag-by":{"subcategory":"country-flag","a":"Belarus Flag","b":"1F1E7-1F1FE","d":true,"e":true,"f":true,"h":true,"j":["flag_belarus","by","flag","nation","country","banner","belarus"],"k":[1,6],"o":2},"flag-bz":{"subcategory":"country-flag","a":"Belize Flag","b":"1F1E7-1F1FF","d":true,"e":true,"f":true,"h":true,"j":["flag_belize","bz","flag","nation","country","banner","belize"],"k":[1,7],"o":2},"flag-ca":{"subcategory":"country-flag","a":"Canada Flag","b":"1F1E8-1F1E6","d":true,"e":true,"f":true,"h":true,"j":["flag_canada","ca","flag","nation","country","banner","canada"],"k":[1,8],"o":2},"flag-cc":{"subcategory":"country-flag","a":"Cocos (keeling) Islands Flag","b":"1F1E8-1F1E8","d":true,"e":true,"f":true,"h":true,"j":["flag_cocos_islands","cocos","keeling","islands","flag","nation","country","banner","cocos_islands"],"k":[1,9],"o":2},"flag-cd":{"subcategory":"country-flag","a":"Congo - Kinshasa Flag","b":"1F1E8-1F1E9","d":true,"e":true,"f":true,"h":true,"j":["flag_congo_kinshasa","congo","democratic","republic","flag","nation","country","banner","congo_kinshasa"],"k":[1,10],"o":2},"flag-cf":{"subcategory":"country-flag","a":"Central African Republic Flag","b":"1F1E8-1F1EB","d":true,"e":true,"f":true,"h":true,"j":["flag_central_african_republic","central","african","republic","flag","nation","country","banner","central_african_republic"],"k":[1,11],"o":2},"flag-cg":{"subcategory":"country-flag","a":"Congo - Brazzaville Flag","b":"1F1E8-1F1EC","d":true,"e":true,"f":true,"h":true,"j":["flag_congo_brazzaville","congo","flag","nation","country","banner","congo_brazzaville"],"k":[1,12],"o":2},"flag-ch":{"subcategory":"country-flag","a":"Switzerland Flag","b":"1F1E8-1F1ED","d":true,"e":true,"f":true,"h":true,"j":["flag_switzerland","ch","flag","nation","country","banner","switzerland"],"k":[1,13],"o":2},"flag-ci":{"subcategory":"country-flag","a":"Côte D’ivoire Flag","b":"1F1E8-1F1EE","d":true,"e":true,"f":true,"h":true,"j":["flag_cote_d_ivoire","ivory","coast","flag","nation","country","banner","cote_d_ivoire"],"k":[1,14],"o":2},"flag-ck":{"subcategory":"country-flag","a":"Cook Islands Flag","b":"1F1E8-1F1F0","d":true,"e":true,"f":true,"h":true,"j":["flag_cook_islands","cook","islands","flag","nation","country","banner","cook_islands"],"k":[1,15],"o":2},"flag-cl":{"subcategory":"country-flag","a":"Chile Flag","b":"1F1E8-1F1F1","d":true,"e":true,"f":true,"h":true,"j":["flag_chile","flag","nation","country","banner","chile"],"k":[1,16],"o":2},"flag-cm":{"subcategory":"country-flag","a":"Cameroon Flag","b":"1F1E8-1F1F2","d":true,"e":true,"f":true,"h":true,"j":["flag_cameroon","cm","flag","nation","country","banner","cameroon"],"k":[1,17],"o":2},"cn":{"subcategory":"country-flag","a":"China Flag","b":"1F1E8-1F1F3","d":true,"e":true,"f":true,"h":true,"j":["flag_china","china","chinese","prc","flag","country","nation","banner"],"k":[1,18],"n":["flag-cn"],"o":0},"flag-co":{"subcategory":"country-flag","a":"Colombia Flag","b":"1F1E8-1F1F4","d":true,"e":true,"f":true,"h":true,"j":["flag_colombia","co","flag","nation","country","banner","colombia"],"k":[1,19],"o":2},"flag-cp":{"subcategory":"country-flag","a":"Clipperton Island Flag","b":"1F1E8-1F1F5","d":true,"e":true,"f":true,"h":true,"j":["flag_clipperton_island"],"k":[1,20],"o":2},"flag-cr":{"subcategory":"country-flag","a":"Costa Rica Flag","b":"1F1E8-1F1F7","d":true,"e":true,"f":true,"h":true,"j":["flag_costa_rica","costa","rica","flag","nation","country","banner","costa_rica"],"k":[1,21],"o":2},"flag-cu":{"subcategory":"country-flag","a":"Cuba Flag","b":"1F1E8-1F1FA","d":true,"e":true,"f":true,"h":true,"j":["flag_cuba","cu","flag","nation","country","banner","cuba"],"k":[1,22],"o":2},"flag-cv":{"subcategory":"country-flag","a":"Cape Verde Flag","b":"1F1E8-1F1FB","d":true,"e":true,"f":true,"h":true,"j":["flag_cape_verde","cabo","verde","flag","nation","country","banner","cape_verde"],"k":[1,23],"o":2},"flag-cw":{"subcategory":"country-flag","a":"Curaçao Flag","b":"1F1E8-1F1FC","d":true,"e":true,"f":true,"h":true,"j":["flag_curacao","curaçao","flag","nation","country","banner","curacao"],"k":[1,24],"o":2},"flag-cx":{"subcategory":"country-flag","a":"Christmas Island Flag","b":"1F1E8-1F1FD","d":true,"e":true,"f":true,"h":true,"j":["flag_christmas_island","christmas","island","flag","nation","country","banner","christmas_island"],"k":[1,25],"o":2},"flag-cy":{"subcategory":"country-flag","a":"Cyprus Flag","b":"1F1E8-1F1FE","d":true,"e":true,"f":true,"h":true,"j":["flag_cyprus","cy","flag","nation","country","banner","cyprus"],"k":[1,26],"o":2},"flag-cz":{"subcategory":"country-flag","a":"Czechia Flag","b":"1F1E8-1F1FF","d":true,"e":true,"f":true,"h":true,"j":["flag_czechia","cz","flag","nation","country","banner","czechia"],"k":[1,27],"o":2},"de":{"subcategory":"country-flag","a":"Germany Flag","b":"1F1E9-1F1EA","d":true,"e":true,"f":true,"h":true,"j":["flag_germany","german","nation","flag","country","banner","germany"],"k":[1,28],"n":["flag-de"],"o":0},"flag-dg":{"subcategory":"country-flag","a":"Diego Garcia Flag","b":"1F1E9-1F1EC","d":true,"e":true,"f":true,"h":true,"j":["flag_diego_garcia"],"k":[1,29],"o":2},"flag-dj":{"subcategory":"country-flag","a":"Djibouti Flag","b":"1F1E9-1F1EF","d":true,"e":true,"f":true,"h":true,"j":["flag_djibouti","dj","flag","nation","country","banner","djibouti"],"k":[1,30],"o":2},"flag-dk":{"subcategory":"country-flag","a":"Denmark Flag","b":"1F1E9-1F1F0","d":true,"e":true,"f":true,"h":true,"j":["flag_denmark","dk","flag","nation","country","banner","denmark"],"k":[1,31],"o":2},"flag-dm":{"subcategory":"country-flag","a":"Dominica Flag","b":"1F1E9-1F1F2","d":true,"e":true,"f":true,"h":true,"j":["flag_dominica","dm","flag","nation","country","banner","dominica"],"k":[1,32],"o":2},"flag-do":{"subcategory":"country-flag","a":"Dominican Republic Flag","b":"1F1E9-1F1F4","d":true,"e":true,"f":true,"h":true,"j":["flag_dominican_republic","dominican","republic","flag","nation","country","banner","dominican_republic"],"k":[1,33],"o":2},"flag-dz":{"subcategory":"country-flag","a":"Algeria Flag","b":"1F1E9-1F1FF","d":true,"e":true,"f":true,"h":true,"j":["flag_algeria","dz","flag","nation","country","banner","algeria"],"k":[1,34],"o":2},"flag-ea":{"subcategory":"country-flag","a":"Ceuta & Melilla Flag","b":"1F1EA-1F1E6","d":true,"e":true,"f":true,"h":true,"j":["flag_ceuta_melilla"],"k":[1,35],"o":2},"flag-ec":{"subcategory":"country-flag","a":"Ecuador Flag","b":"1F1EA-1F1E8","d":true,"e":true,"f":true,"h":true,"j":["flag_ecuador","ec","flag","nation","country","banner","ecuador"],"k":[1,36],"o":2},"flag-ee":{"subcategory":"country-flag","a":"Estonia Flag","b":"1F1EA-1F1EA","d":true,"e":true,"f":true,"h":true,"j":["flag_estonia","ee","flag","nation","country","banner","estonia"],"k":[1,37],"o":2},"flag-eg":{"subcategory":"country-flag","a":"Egypt Flag","b":"1F1EA-1F1EC","d":true,"e":true,"f":true,"h":true,"j":["flag_egypt","eg","flag","nation","country","banner","egypt"],"k":[1,38],"o":2},"flag-eh":{"subcategory":"country-flag","a":"Western Sahara Flag","b":"1F1EA-1F1ED","d":true,"e":true,"f":true,"h":true,"j":["flag_western_sahara","western","sahara","flag","nation","country","banner","western_sahara"],"k":[1,39],"o":2},"flag-er":{"subcategory":"country-flag","a":"Eritrea Flag","b":"1F1EA-1F1F7","d":true,"e":true,"f":true,"h":true,"j":["flag_eritrea","er","flag","nation","country","banner","eritrea"],"k":[1,40],"o":2},"es":{"subcategory":"country-flag","a":"Spain Flag","b":"1F1EA-1F1F8","d":true,"e":true,"f":true,"h":true,"j":["flag_spain","spain","flag","nation","country","banner"],"k":[1,41],"n":["flag-es"],"o":0},"flag-et":{"subcategory":"country-flag","a":"Ethiopia Flag","b":"1F1EA-1F1F9","d":true,"e":true,"f":true,"h":true,"j":["flag_ethiopia","et","flag","nation","country","banner","ethiopia"],"k":[1,42],"o":2},"flag-eu":{"subcategory":"country-flag","a":"European Union Flag","b":"1F1EA-1F1FA","d":true,"e":true,"f":true,"h":true,"j":["flag_european_union","european","union","flag","banner"],"k":[1,43],"o":2},"flag-fi":{"subcategory":"country-flag","a":"Finland Flag","b":"1F1EB-1F1EE","d":true,"e":true,"f":true,"h":true,"j":["flag_finland","fi","flag","nation","country","banner","finland"],"k":[1,44],"o":2},"flag-fj":{"subcategory":"country-flag","a":"Fiji Flag","b":"1F1EB-1F1EF","d":true,"e":true,"f":true,"h":true,"j":["flag_fiji","fj","flag","nation","country","banner","fiji"],"k":[1,45],"o":2},"flag-fk":{"subcategory":"country-flag","a":"Falkland Islands Flag","b":"1F1EB-1F1F0","d":true,"e":true,"f":true,"h":true,"j":["flag_falkland_islands","falkland","islands","malvinas","flag","nation","country","banner","falkland_islands"],"k":[1,46],"o":2},"flag-fm":{"subcategory":"country-flag","a":"Micronesia Flag","b":"1F1EB-1F1F2","d":true,"e":true,"f":true,"h":true,"j":["flag_micronesia","micronesia","federated","states","flag","nation","country","banner"],"k":[1,47],"o":2},"flag-fo":{"subcategory":"country-flag","a":"Faroe Islands Flag","b":"1F1EB-1F1F4","d":true,"e":true,"f":true,"h":true,"j":["flag_faroe_islands","faroe","islands","flag","nation","country","banner","faroe_islands"],"k":[1,48],"o":2},"fr":{"subcategory":"country-flag","a":"France Flag","b":"1F1EB-1F1F7","d":true,"e":true,"f":true,"h":true,"j":["flag_france","banner","flag","nation","france","french","country"],"k":[1,49],"n":["flag-fr"],"o":0},"flag-ga":{"subcategory":"country-flag","a":"Gabon Flag","b":"1F1EC-1F1E6","d":true,"e":true,"f":true,"h":true,"j":["flag_gabon","ga","flag","nation","country","banner","gabon"],"k":[1,50],"o":2},"gb":{"subcategory":"country-flag","a":"United Kingdom Flag","b":"1F1EC-1F1E7","d":true,"e":true,"f":true,"h":true,"j":["flag_united_kingdom","united","kingdom","great","britain","northern","ireland","flag","nation","country","banner","british","UK","english","england","union jack","united_kingdom"],"k":[1,51],"n":["uk","flag-gb"],"o":0},"flag-gd":{"subcategory":"country-flag","a":"Grenada Flag","b":"1F1EC-1F1E9","d":true,"e":true,"f":true,"h":true,"j":["flag_grenada","gd","flag","nation","country","banner","grenada"],"k":[1,52],"o":2},"flag-ge":{"subcategory":"country-flag","a":"Georgia Flag","b":"1F1EC-1F1EA","d":true,"e":true,"f":true,"h":true,"j":["flag_georgia","ge","flag","nation","country","banner","georgia"],"k":[1,53],"o":2},"flag-gf":{"subcategory":"country-flag","a":"French Guiana Flag","b":"1F1EC-1F1EB","d":true,"e":true,"f":true,"h":true,"j":["flag_french_guiana","french","guiana","flag","nation","country","banner","french_guiana"],"k":[1,54],"o":2},"flag-gg":{"subcategory":"country-flag","a":"Guernsey Flag","b":"1F1EC-1F1EC","d":true,"e":true,"f":true,"h":true,"j":["flag_guernsey","gg","flag","nation","country","banner","guernsey"],"k":[1,55],"o":2},"flag-gh":{"subcategory":"country-flag","a":"Ghana Flag","b":"1F1EC-1F1ED","d":true,"e":true,"f":true,"h":true,"j":["flag_ghana","gh","flag","nation","country","banner","ghana"],"k":[1,56],"o":2},"flag-gi":{"subcategory":"country-flag","a":"Gibraltar Flag","b":"1F1EC-1F1EE","d":true,"e":true,"f":true,"h":true,"j":["flag_gibraltar","gi","flag","nation","country","banner","gibraltar"],"k":[1,57],"o":2},"flag-gl":{"subcategory":"country-flag","a":"Greenland Flag","b":"1F1EC-1F1F1","d":true,"e":true,"f":true,"h":true,"j":["flag_greenland","gl","flag","nation","country","banner","greenland"],"k":[1,58],"o":2},"flag-gm":{"subcategory":"country-flag","a":"Gambia Flag","b":"1F1EC-1F1F2","d":true,"e":true,"f":true,"h":true,"j":["flag_gambia","gm","flag","nation","country","banner","gambia"],"k":[1,59],"o":2},"flag-gn":{"subcategory":"country-flag","a":"Guinea Flag","b":"1F1EC-1F1F3","d":true,"e":true,"f":true,"h":true,"j":["flag_guinea","gn","flag","nation","country","banner","guinea"],"k":[1,60],"o":2},"flag-gp":{"subcategory":"country-flag","a":"Guadeloupe Flag","b":"1F1EC-1F1F5","d":true,"e":true,"f":true,"h":true,"j":["flag_guadeloupe","gp","flag","nation","country","banner","guadeloupe"],"k":[2,0],"o":2},"flag-gq":{"subcategory":"country-flag","a":"Equatorial Guinea Flag","b":"1F1EC-1F1F6","d":true,"e":true,"f":true,"h":true,"j":["flag_equatorial_guinea","equatorial","gn","flag","nation","country","banner","equatorial_guinea"],"k":[2,1],"o":2},"flag-gr":{"subcategory":"country-flag","a":"Greece Flag","b":"1F1EC-1F1F7","d":true,"e":true,"f":true,"h":true,"j":["flag_greece","gr","flag","nation","country","banner","greece"],"k":[2,2],"o":2},"flag-gs":{"subcategory":"country-flag","a":"South Georgia & South Sandwich Islands Flag","b":"1F1EC-1F1F8","d":true,"e":true,"f":true,"h":true,"j":["flag_south_georgia_south_sandwich_islands","south","georgia","sandwich","islands","flag","nation","country","banner","south_georgia_south_sandwich_islands"],"k":[2,3],"o":2},"flag-gt":{"subcategory":"country-flag","a":"Guatemala Flag","b":"1F1EC-1F1F9","d":true,"e":true,"f":true,"h":true,"j":["flag_guatemala","gt","flag","nation","country","banner","guatemala"],"k":[2,4],"o":2},"flag-gu":{"subcategory":"country-flag","a":"Guam Flag","b":"1F1EC-1F1FA","d":true,"e":true,"f":true,"h":true,"j":["flag_guam","gu","flag","nation","country","banner","guam"],"k":[2,5],"o":2},"flag-gw":{"subcategory":"country-flag","a":"Guinea-Bissau Flag","b":"1F1EC-1F1FC","d":true,"e":true,"f":true,"h":true,"j":["flag_guinea_bissau","gw","bissau","flag","nation","country","banner","guinea_bissau"],"k":[2,6],"o":2},"flag-gy":{"subcategory":"country-flag","a":"Guyana Flag","b":"1F1EC-1F1FE","d":true,"e":true,"f":true,"h":true,"j":["flag_guyana","gy","flag","nation","country","banner","guyana"],"k":[2,7],"o":2},"flag-hk":{"subcategory":"country-flag","a":"Hong Kong Sar China Flag","b":"1F1ED-1F1F0","d":true,"e":true,"f":true,"h":true,"j":["flag_hong_kong_sar_china","hong","kong","flag","nation","country","banner","hong_kong_sar_china"],"k":[2,8],"o":2},"flag-hm":{"subcategory":"country-flag","a":"Heard & Mcdonald Islands Flag","b":"1F1ED-1F1F2","d":true,"e":true,"f":true,"h":true,"j":["flag_heard_mcdonald_islands"],"k":[2,9],"o":2},"flag-hn":{"subcategory":"country-flag","a":"Honduras Flag","b":"1F1ED-1F1F3","d":true,"e":true,"f":true,"h":true,"j":["flag_honduras","hn","flag","nation","country","banner","honduras"],"k":[2,10],"o":2},"flag-hr":{"subcategory":"country-flag","a":"Croatia Flag","b":"1F1ED-1F1F7","d":true,"e":true,"f":true,"h":true,"j":["flag_croatia","hr","flag","nation","country","banner","croatia"],"k":[2,11],"o":2},"flag-ht":{"subcategory":"country-flag","a":"Haiti Flag","b":"1F1ED-1F1F9","d":true,"e":true,"f":true,"h":true,"j":["flag_haiti","ht","flag","nation","country","banner","haiti"],"k":[2,12],"o":2},"flag-hu":{"subcategory":"country-flag","a":"Hungary Flag","b":"1F1ED-1F1FA","d":true,"e":true,"f":true,"h":true,"j":["flag_hungary","hu","flag","nation","country","banner","hungary"],"k":[2,13],"o":2},"flag-ic":{"subcategory":"country-flag","a":"Canary Islands Flag","b":"1F1EE-1F1E8","d":true,"e":true,"f":true,"h":true,"j":["flag_canary_islands","canary","islands","flag","nation","country","banner","canary_islands"],"k":[2,14],"o":2},"flag-id":{"subcategory":"country-flag","a":"Indonesia Flag","b":"1F1EE-1F1E9","d":true,"e":true,"f":true,"h":true,"j":["flag_indonesia","flag","nation","country","banner","indonesia"],"k":[2,15],"o":2},"flag-ie":{"subcategory":"country-flag","a":"Ireland Flag","b":"1F1EE-1F1EA","d":true,"e":true,"f":true,"h":true,"j":["flag_ireland","ie","flag","nation","country","banner","ireland"],"k":[2,16],"o":2},"flag-il":{"subcategory":"country-flag","a":"Israel Flag","b":"1F1EE-1F1F1","d":true,"e":true,"f":true,"h":true,"j":["flag_israel","il","flag","nation","country","banner","israel"],"k":[2,17],"o":2},"flag-im":{"subcategory":"country-flag","a":"Isle of Man Flag","b":"1F1EE-1F1F2","d":true,"e":true,"f":true,"h":true,"j":["flag_isle_of_man","isle","man","flag","nation","country","banner","isle_of_man"],"k":[2,18],"o":2},"flag-in":{"subcategory":"country-flag","a":"India Flag","b":"1F1EE-1F1F3","d":true,"e":true,"f":true,"h":true,"j":["flag_india","in","flag","nation","country","banner","india"],"k":[2,19],"o":2},"flag-io":{"subcategory":"country-flag","a":"British Indian Ocean Territory Flag","b":"1F1EE-1F1F4","d":true,"e":true,"f":true,"h":true,"j":["flag_british_indian_ocean_territory","british","indian","ocean","territory","flag","nation","country","banner","british_indian_ocean_territory"],"k":[2,20],"o":2},"flag-iq":{"subcategory":"country-flag","a":"Iraq Flag","b":"1F1EE-1F1F6","d":true,"e":true,"f":true,"h":true,"j":["flag_iraq","iq","flag","nation","country","banner","iraq"],"k":[2,21],"o":2},"flag-ir":{"subcategory":"country-flag","a":"Iran Flag","b":"1F1EE-1F1F7","d":true,"e":true,"f":true,"h":true,"j":["flag_iran","iran","islamic","republic","flag","nation","country","banner"],"k":[2,22],"o":2},"flag-is":{"subcategory":"country-flag","a":"Iceland Flag","b":"1F1EE-1F1F8","d":true,"e":true,"f":true,"h":true,"j":["flag_iceland","is","flag","nation","country","banner","iceland"],"k":[2,23],"o":2},"it":{"subcategory":"country-flag","a":"Italy Flag","b":"1F1EE-1F1F9","d":true,"e":true,"f":true,"h":true,"j":["flag_italy","italy","flag","nation","country","banner"],"k":[2,24],"n":["flag-it"],"o":0},"flag-je":{"subcategory":"country-flag","a":"Jersey Flag","b":"1F1EF-1F1EA","d":true,"e":true,"f":true,"h":true,"j":["flag_jersey","je","flag","nation","country","banner","jersey"],"k":[2,25],"o":2},"flag-jm":{"subcategory":"country-flag","a":"Jamaica Flag","b":"1F1EF-1F1F2","d":true,"e":true,"f":true,"h":true,"j":["flag_jamaica","jm","flag","nation","country","banner","jamaica"],"k":[2,26],"o":2},"flag-jo":{"subcategory":"country-flag","a":"Jordan Flag","b":"1F1EF-1F1F4","d":true,"e":true,"f":true,"h":true,"j":["flag_jordan","jo","flag","nation","country","banner","jordan"],"k":[2,27],"o":2},"jp":{"subcategory":"country-flag","a":"Japan Flag","b":"1F1EF-1F1F5","d":true,"e":true,"f":true,"h":true,"j":["flag_japan","japanese","nation","flag","country","banner","japan","jp","ja"],"k":[2,28],"n":["flag-jp"],"o":0},"flag-ke":{"subcategory":"country-flag","a":"Kenya Flag","b":"1F1F0-1F1EA","d":true,"e":true,"f":true,"h":true,"j":["flag_kenya","ke","flag","nation","country","banner","kenya"],"k":[2,29],"o":2},"flag-kg":{"subcategory":"country-flag","a":"Kyrgyzstan Flag","b":"1F1F0-1F1EC","d":true,"e":true,"f":true,"h":true,"j":["flag_kyrgyzstan","kg","flag","nation","country","banner","kyrgyzstan"],"k":[2,30],"o":2},"flag-kh":{"subcategory":"country-flag","a":"Cambodia Flag","b":"1F1F0-1F1ED","d":true,"e":true,"f":true,"h":true,"j":["flag_cambodia","kh","flag","nation","country","banner","cambodia"],"k":[2,31],"o":2},"flag-ki":{"subcategory":"country-flag","a":"Kiribati Flag","b":"1F1F0-1F1EE","d":true,"e":true,"f":true,"h":true,"j":["flag_kiribati","ki","flag","nation","country","banner","kiribati"],"k":[2,32],"o":2},"flag-km":{"subcategory":"country-flag","a":"Comoros Flag","b":"1F1F0-1F1F2","d":true,"e":true,"f":true,"h":true,"j":["flag_comoros","km","flag","nation","country","banner","comoros"],"k":[2,33],"o":2},"flag-kn":{"subcategory":"country-flag","a":"St. Kitts & Nevis Flag","b":"1F1F0-1F1F3","d":true,"e":true,"f":true,"h":true,"j":["flag_st_kitts_nevis","saint","kitts","nevis","flag","nation","country","banner","st_kitts_nevis"],"k":[2,34],"o":2},"flag-kp":{"subcategory":"country-flag","a":"North Korea Flag","b":"1F1F0-1F1F5","d":true,"e":true,"f":true,"h":true,"j":["flag_north_korea","north","korea","nation","flag","country","banner","north_korea"],"k":[2,35],"o":2},"kr":{"subcategory":"country-flag","a":"South Korea Flag","b":"1F1F0-1F1F7","d":true,"e":true,"f":true,"h":true,"j":["flag_south_korea","south","korea","nation","flag","country","banner","south_korea"],"k":[2,36],"n":["flag-kr"],"o":0},"flag-kw":{"subcategory":"country-flag","a":"Kuwait Flag","b":"1F1F0-1F1FC","d":true,"e":true,"f":true,"h":true,"j":["flag_kuwait","kw","flag","nation","country","banner","kuwait"],"k":[2,37],"o":2},"flag-ky":{"subcategory":"country-flag","a":"Cayman Islands Flag","b":"1F1F0-1F1FE","d":true,"e":true,"f":true,"h":true,"j":["flag_cayman_islands","cayman","islands","flag","nation","country","banner","cayman_islands"],"k":[2,38],"o":2},"flag-kz":{"subcategory":"country-flag","a":"Kazakhstan Flag","b":"1F1F0-1F1FF","d":true,"e":true,"f":true,"h":true,"j":["flag_kazakhstan","kz","flag","nation","country","banner","kazakhstan"],"k":[2,39],"o":2},"flag-la":{"subcategory":"country-flag","a":"Laos Flag","b":"1F1F1-1F1E6","d":true,"e":true,"f":true,"h":true,"j":["flag_laos","lao","democratic","republic","flag","nation","country","banner","laos"],"k":[2,40],"o":2},"flag-lb":{"subcategory":"country-flag","a":"Lebanon Flag","b":"1F1F1-1F1E7","d":true,"e":true,"f":true,"h":true,"j":["flag_lebanon","lb","flag","nation","country","banner","lebanon"],"k":[2,41],"o":2},"flag-lc":{"subcategory":"country-flag","a":"St. Lucia Flag","b":"1F1F1-1F1E8","d":true,"e":true,"f":true,"h":true,"j":["flag_st_lucia","saint","lucia","flag","nation","country","banner","st_lucia"],"k":[2,42],"o":2},"flag-li":{"subcategory":"country-flag","a":"Liechtenstein Flag","b":"1F1F1-1F1EE","d":true,"e":true,"f":true,"h":true,"j":["flag_liechtenstein","li","flag","nation","country","banner","liechtenstein"],"k":[2,43],"o":2},"flag-lk":{"subcategory":"country-flag","a":"Sri Lanka Flag","b":"1F1F1-1F1F0","d":true,"e":true,"f":true,"h":true,"j":["flag_sri_lanka","sri","lanka","flag","nation","country","banner","sri_lanka"],"k":[2,44],"o":2},"flag-lr":{"subcategory":"country-flag","a":"Liberia Flag","b":"1F1F1-1F1F7","d":true,"e":true,"f":true,"h":true,"j":["flag_liberia","lr","flag","nation","country","banner","liberia"],"k":[2,45],"o":2},"flag-ls":{"subcategory":"country-flag","a":"Lesotho Flag","b":"1F1F1-1F1F8","d":true,"e":true,"f":true,"h":true,"j":["flag_lesotho","ls","flag","nation","country","banner","lesotho"],"k":[2,46],"o":2},"flag-lt":{"subcategory":"country-flag","a":"Lithuania Flag","b":"1F1F1-1F1F9","d":true,"e":true,"f":true,"h":true,"j":["flag_lithuania","lt","flag","nation","country","banner","lithuania"],"k":[2,47],"o":2},"flag-lu":{"subcategory":"country-flag","a":"Luxembourg Flag","b":"1F1F1-1F1FA","d":true,"e":true,"f":true,"h":true,"j":["flag_luxembourg","lu","flag","nation","country","banner","luxembourg"],"k":[2,48],"o":2},"flag-lv":{"subcategory":"country-flag","a":"Latvia Flag","b":"1F1F1-1F1FB","d":true,"e":true,"f":true,"h":true,"j":["flag_latvia","lv","flag","nation","country","banner","latvia"],"k":[2,49],"o":2},"flag-ly":{"subcategory":"country-flag","a":"Libya Flag","b":"1F1F1-1F1FE","d":true,"e":true,"f":true,"h":true,"j":["flag_libya","ly","flag","nation","country","banner","libya"],"k":[2,50],"o":2},"flag-ma":{"subcategory":"country-flag","a":"Morocco Flag","b":"1F1F2-1F1E6","d":true,"e":true,"f":true,"h":true,"j":["flag_morocco","ma","flag","nation","country","banner","morocco"],"k":[2,51],"o":2},"flag-mc":{"subcategory":"country-flag","a":"Monaco Flag","b":"1F1F2-1F1E8","d":true,"e":true,"f":true,"h":true,"j":["flag_monaco","mc","flag","nation","country","banner","monaco"],"k":[2,52],"o":2},"flag-md":{"subcategory":"country-flag","a":"Moldova Flag","b":"1F1F2-1F1E9","d":true,"e":true,"f":true,"h":true,"j":["flag_moldova","moldova","republic","flag","nation","country","banner"],"k":[2,53],"o":2},"flag-me":{"subcategory":"country-flag","a":"Montenegro Flag","b":"1F1F2-1F1EA","d":true,"e":true,"f":true,"h":true,"j":["flag_montenegro","me","flag","nation","country","banner","montenegro"],"k":[2,54],"o":2},"flag-mf":{"subcategory":"country-flag","a":"St. Martin Flag","b":"1F1F2-1F1EB","d":true,"e":true,"f":true,"h":true,"j":["flag_st_martin"],"k":[2,55],"o":2},"flag-mg":{"subcategory":"country-flag","a":"Madagascar Flag","b":"1F1F2-1F1EC","d":true,"e":true,"f":true,"h":true,"j":["flag_madagascar","mg","flag","nation","country","banner","madagascar"],"k":[2,56],"o":2},"flag-mh":{"subcategory":"country-flag","a":"Marshall Islands Flag","b":"1F1F2-1F1ED","d":true,"e":true,"f":true,"h":true,"j":["flag_marshall_islands","marshall","islands","flag","nation","country","banner","marshall_islands"],"k":[2,57],"o":2},"flag-mk":{"subcategory":"country-flag","a":"North Macedonia Flag","b":"1F1F2-1F1F0","d":true,"e":true,"f":true,"h":true,"j":["flag_north_macedonia","macedonia","flag","nation","country","banner","north_macedonia"],"k":[2,58],"o":2},"flag-ml":{"subcategory":"country-flag","a":"Mali Flag","b":"1F1F2-1F1F1","d":true,"e":true,"f":true,"h":true,"j":["flag_mali","ml","flag","nation","country","banner","mali"],"k":[2,59],"o":2},"flag-mm":{"subcategory":"country-flag","a":"Myanmar (burma) Flag","b":"1F1F2-1F1F2","d":true,"e":true,"f":true,"h":true,"j":["flag_myanmar","mm","flag","nation","country","banner","myanmar"],"k":[2,60],"o":2},"flag-mn":{"subcategory":"country-flag","a":"Mongolia Flag","b":"1F1F2-1F1F3","d":true,"e":true,"f":true,"h":true,"j":["flag_mongolia","mn","flag","nation","country","banner","mongolia"],"k":[3,0],"o":2},"flag-mo":{"subcategory":"country-flag","a":"Macao Sar China Flag","b":"1F1F2-1F1F4","d":true,"e":true,"f":true,"h":true,"j":["flag_macao_sar_china","macao","flag","nation","country","banner","macao_sar_china"],"k":[3,1],"o":2},"flag-mp":{"subcategory":"country-flag","a":"Northern Mariana Islands Flag","b":"1F1F2-1F1F5","d":true,"e":true,"f":true,"h":true,"j":["flag_northern_mariana_islands","northern","mariana","islands","flag","nation","country","banner","northern_mariana_islands"],"k":[3,2],"o":2},"flag-mq":{"subcategory":"country-flag","a":"Martinique Flag","b":"1F1F2-1F1F6","d":true,"e":true,"f":true,"h":true,"j":["flag_martinique","mq","flag","nation","country","banner","martinique"],"k":[3,3],"o":2},"flag-mr":{"subcategory":"country-flag","a":"Mauritania Flag","b":"1F1F2-1F1F7","d":true,"e":true,"f":true,"h":true,"j":["flag_mauritania","mr","flag","nation","country","banner","mauritania"],"k":[3,4],"o":2},"flag-ms":{"subcategory":"country-flag","a":"Montserrat Flag","b":"1F1F2-1F1F8","d":true,"e":true,"f":true,"h":true,"j":["flag_montserrat","ms","flag","nation","country","banner","montserrat"],"k":[3,5],"o":2},"flag-mt":{"subcategory":"country-flag","a":"Malta Flag","b":"1F1F2-1F1F9","d":true,"e":true,"f":true,"h":true,"j":["flag_malta","mt","flag","nation","country","banner","malta"],"k":[3,6],"o":2},"flag-mu":{"subcategory":"country-flag","a":"Mauritius Flag","b":"1F1F2-1F1FA","d":true,"e":true,"f":true,"h":true,"j":["flag_mauritius","mu","flag","nation","country","banner","mauritius"],"k":[3,7],"o":2},"flag-mv":{"subcategory":"country-flag","a":"Maldives Flag","b":"1F1F2-1F1FB","d":true,"e":true,"f":true,"h":true,"j":["flag_maldives","mv","flag","nation","country","banner","maldives"],"k":[3,8],"o":2},"flag-mw":{"subcategory":"country-flag","a":"Malawi Flag","b":"1F1F2-1F1FC","d":true,"e":true,"f":true,"h":true,"j":["flag_malawi","mw","flag","nation","country","banner","malawi"],"k":[3,9],"o":2},"flag-mx":{"subcategory":"country-flag","a":"Mexico Flag","b":"1F1F2-1F1FD","d":true,"e":true,"f":true,"h":true,"j":["flag_mexico","mx","flag","nation","country","banner","mexico"],"k":[3,10],"o":2},"flag-my":{"subcategory":"country-flag","a":"Malaysia Flag","b":"1F1F2-1F1FE","d":true,"e":true,"f":true,"h":true,"j":["flag_malaysia","my","flag","nation","country","banner","malaysia"],"k":[3,11],"o":2},"flag-mz":{"subcategory":"country-flag","a":"Mozambique Flag","b":"1F1F2-1F1FF","d":true,"e":true,"f":true,"h":true,"j":["flag_mozambique","mz","flag","nation","country","banner","mozambique"],"k":[3,12],"o":2},"flag-na":{"subcategory":"country-flag","a":"Namibia Flag","b":"1F1F3-1F1E6","d":true,"e":true,"f":true,"h":true,"j":["flag_namibia","na","flag","nation","country","banner","namibia"],"k":[3,13],"o":2},"flag-nc":{"subcategory":"country-flag","a":"New Caledonia Flag","b":"1F1F3-1F1E8","d":true,"e":true,"f":true,"h":true,"j":["flag_new_caledonia","new","caledonia","flag","nation","country","banner","new_caledonia"],"k":[3,14],"o":2},"flag-ne":{"subcategory":"country-flag","a":"Niger Flag","b":"1F1F3-1F1EA","d":true,"e":true,"f":true,"h":true,"j":["flag_niger","ne","flag","nation","country","banner","niger"],"k":[3,15],"o":2},"flag-nf":{"subcategory":"country-flag","a":"Norfolk Island Flag","b":"1F1F3-1F1EB","d":true,"e":true,"f":true,"h":true,"j":["flag_norfolk_island","norfolk","island","flag","nation","country","banner","norfolk_island"],"k":[3,16],"o":2},"flag-ng":{"subcategory":"country-flag","a":"Nigeria Flag","b":"1F1F3-1F1EC","d":true,"e":true,"f":true,"h":true,"j":["flag_nigeria","flag","nation","country","banner","nigeria"],"k":[3,17],"o":2},"flag-ni":{"subcategory":"country-flag","a":"Nicaragua Flag","b":"1F1F3-1F1EE","d":true,"e":true,"f":true,"h":true,"j":["flag_nicaragua","ni","flag","nation","country","banner","nicaragua"],"k":[3,18],"o":2},"flag-nl":{"subcategory":"country-flag","a":"Netherlands Flag","b":"1F1F3-1F1F1","d":true,"e":true,"f":true,"h":true,"j":["flag_netherlands","nl","flag","nation","country","banner","netherlands"],"k":[3,19],"o":2},"flag-no":{"subcategory":"country-flag","a":"Norway Flag","b":"1F1F3-1F1F4","d":true,"e":true,"f":true,"h":true,"j":["flag_norway","no","flag","nation","country","banner","norway"],"k":[3,20],"o":2},"flag-np":{"subcategory":"country-flag","a":"Nepal Flag","b":"1F1F3-1F1F5","d":true,"e":true,"f":true,"h":true,"j":["flag_nepal","np","flag","nation","country","banner","nepal"],"k":[3,21],"o":2},"flag-nr":{"subcategory":"country-flag","a":"Nauru Flag","b":"1F1F3-1F1F7","d":true,"e":true,"f":true,"h":true,"j":["flag_nauru","nr","flag","nation","country","banner","nauru"],"k":[3,22],"o":2},"flag-nu":{"subcategory":"country-flag","a":"Niue Flag","b":"1F1F3-1F1FA","d":true,"e":true,"f":true,"h":true,"j":["flag_niue","nu","flag","nation","country","banner","niue"],"k":[3,23],"o":2},"flag-nz":{"subcategory":"country-flag","a":"New Zealand Flag","b":"1F1F3-1F1FF","d":true,"e":true,"f":true,"h":true,"j":["flag_new_zealand","new","zealand","flag","nation","country","banner","new_zealand"],"k":[3,24],"o":2},"flag-om":{"subcategory":"country-flag","a":"Oman Flag","b":"1F1F4-1F1F2","d":true,"e":true,"f":true,"h":true,"j":["flag_oman","om_symbol","flag","nation","country","banner","oman"],"k":[3,25],"o":2},"flag-pa":{"subcategory":"country-flag","a":"Panama Flag","b":"1F1F5-1F1E6","d":true,"e":true,"f":true,"h":true,"j":["flag_panama","pa","flag","nation","country","banner","panama"],"k":[3,26],"o":2},"flag-pe":{"subcategory":"country-flag","a":"Peru Flag","b":"1F1F5-1F1EA","d":true,"e":true,"f":true,"h":true,"j":["flag_peru","pe","flag","nation","country","banner","peru"],"k":[3,27],"o":2},"flag-pf":{"subcategory":"country-flag","a":"French Polynesia Flag","b":"1F1F5-1F1EB","d":true,"e":true,"f":true,"h":true,"j":["flag_french_polynesia","french","polynesia","flag","nation","country","banner","french_polynesia"],"k":[3,28],"o":2},"flag-pg":{"subcategory":"country-flag","a":"Papua New Guinea Flag","b":"1F1F5-1F1EC","d":true,"e":true,"f":true,"h":true,"j":["flag_papua_new_guinea","papua","new","guinea","flag","nation","country","banner","papua_new_guinea"],"k":[3,29],"o":2},"flag-ph":{"subcategory":"country-flag","a":"Philippines Flag","b":"1F1F5-1F1ED","d":true,"e":true,"f":true,"h":true,"j":["flag_philippines","ph","flag","nation","country","banner","philippines"],"k":[3,30],"o":2},"flag-pk":{"subcategory":"country-flag","a":"Pakistan Flag","b":"1F1F5-1F1F0","d":true,"e":true,"f":true,"h":true,"j":["flag_pakistan","pk","flag","nation","country","banner","pakistan"],"k":[3,31],"o":2},"flag-pl":{"subcategory":"country-flag","a":"Poland Flag","b":"1F1F5-1F1F1","d":true,"e":true,"f":true,"h":true,"j":["flag_poland","pl","flag","nation","country","banner","poland"],"k":[3,32],"o":2},"flag-pm":{"subcategory":"country-flag","a":"St. Pierre & Miquelon Flag","b":"1F1F5-1F1F2","d":true,"e":true,"f":true,"h":true,"j":["flag_st_pierre_miquelon","saint","pierre","miquelon","flag","nation","country","banner","st_pierre_miquelon"],"k":[3,33],"o":2},"flag-pn":{"subcategory":"country-flag","a":"Pitcairn Islands Flag","b":"1F1F5-1F1F3","d":true,"e":true,"f":true,"h":true,"j":["flag_pitcairn_islands","pitcairn","flag","nation","country","banner","pitcairn_islands"],"k":[3,34],"o":2},"flag-pr":{"subcategory":"country-flag","a":"Puerto Rico Flag","b":"1F1F5-1F1F7","d":true,"e":true,"f":true,"h":true,"j":["flag_puerto_rico","puerto","rico","flag","nation","country","banner","puerto_rico"],"k":[3,35],"o":2},"flag-ps":{"subcategory":"country-flag","a":"Palestinian Territories Flag","b":"1F1F5-1F1F8","d":true,"e":true,"f":true,"h":true,"j":["flag_palestinian_territories","palestine","palestinian","territories","flag","nation","country","banner","palestinian_territories"],"k":[3,36],"o":2},"flag-pt":{"subcategory":"country-flag","a":"Portugal Flag","b":"1F1F5-1F1F9","d":true,"e":true,"f":true,"h":true,"j":["flag_portugal","pt","flag","nation","country","banner","portugal"],"k":[3,37],"o":2},"flag-pw":{"subcategory":"country-flag","a":"Palau Flag","b":"1F1F5-1F1FC","d":true,"e":true,"f":true,"h":true,"j":["flag_palau","pw","flag","nation","country","banner","palau"],"k":[3,38],"o":2},"flag-py":{"subcategory":"country-flag","a":"Paraguay Flag","b":"1F1F5-1F1FE","d":true,"e":true,"f":true,"h":true,"j":["flag_paraguay","py","flag","nation","country","banner","paraguay"],"k":[3,39],"o":2},"flag-qa":{"subcategory":"country-flag","a":"Qatar Flag","b":"1F1F6-1F1E6","d":true,"e":true,"f":true,"h":true,"j":["flag_qatar","qa","flag","nation","country","banner","qatar"],"k":[3,40],"o":2},"flag-re":{"subcategory":"country-flag","a":"Réunion Flag","b":"1F1F7-1F1EA","d":true,"e":true,"f":true,"h":true,"j":["flag_reunion","réunion","flag","nation","country","banner","reunion"],"k":[3,41],"o":2},"flag-ro":{"subcategory":"country-flag","a":"Romania Flag","b":"1F1F7-1F1F4","d":true,"e":true,"f":true,"h":true,"j":["flag_romania","ro","flag","nation","country","banner","romania"],"k":[3,42],"o":2},"flag-rs":{"subcategory":"country-flag","a":"Serbia Flag","b":"1F1F7-1F1F8","d":true,"e":true,"f":true,"h":true,"j":["flag_serbia","rs","flag","nation","country","banner","serbia"],"k":[3,43],"o":2},"ru":{"subcategory":"country-flag","a":"Russia Flag","b":"1F1F7-1F1FA","d":true,"e":true,"f":true,"h":true,"j":["flag_russia","russian","federation","flag","nation","country","banner","russia"],"k":[3,44],"n":["flag-ru"],"o":0},"flag-rw":{"subcategory":"country-flag","a":"Rwanda Flag","b":"1F1F7-1F1FC","d":true,"e":true,"f":true,"h":true,"j":["flag_rwanda","rw","flag","nation","country","banner","rwanda"],"k":[3,45],"o":2},"flag-sa":{"subcategory":"country-flag","a":"Saudi Arabia Flag","b":"1F1F8-1F1E6","d":true,"e":true,"f":true,"h":true,"j":["flag_saudi_arabia","flag","nation","country","banner","saudi_arabia"],"k":[3,46],"o":2},"flag-sb":{"subcategory":"country-flag","a":"Solomon Islands Flag","b":"1F1F8-1F1E7","d":true,"e":true,"f":true,"h":true,"j":["flag_solomon_islands","solomon","islands","flag","nation","country","banner","solomon_islands"],"k":[3,47],"o":2},"flag-sc":{"subcategory":"country-flag","a":"Seychelles Flag","b":"1F1F8-1F1E8","d":true,"e":true,"f":true,"h":true,"j":["flag_seychelles","sc","flag","nation","country","banner","seychelles"],"k":[3,48],"o":2},"flag-sd":{"subcategory":"country-flag","a":"Sudan Flag","b":"1F1F8-1F1E9","d":true,"e":true,"f":true,"h":true,"j":["flag_sudan","sd","flag","nation","country","banner","sudan"],"k":[3,49],"o":2},"flag-se":{"subcategory":"country-flag","a":"Sweden Flag","b":"1F1F8-1F1EA","d":true,"e":true,"f":true,"h":true,"j":["flag_sweden","se","flag","nation","country","banner","sweden"],"k":[3,50],"o":2},"flag-sg":{"subcategory":"country-flag","a":"Singapore Flag","b":"1F1F8-1F1EC","d":true,"e":true,"f":true,"h":true,"j":["flag_singapore","sg","flag","nation","country","banner","singapore"],"k":[3,51],"o":2},"flag-sh":{"subcategory":"country-flag","a":"St. Helena Flag","b":"1F1F8-1F1ED","d":true,"e":true,"f":true,"h":true,"j":["flag_st_helena","saint","helena","ascension","tristan","cunha","flag","nation","country","banner","st_helena"],"k":[3,52],"o":2},"flag-si":{"subcategory":"country-flag","a":"Slovenia Flag","b":"1F1F8-1F1EE","d":true,"e":true,"f":true,"h":true,"j":["flag_slovenia","si","flag","nation","country","banner","slovenia"],"k":[3,53],"o":2},"flag-sj":{"subcategory":"country-flag","a":"Svalbard & Jan Mayen Flag","b":"1F1F8-1F1EF","d":true,"e":true,"f":true,"h":true,"j":["flag_svalbard_jan_mayen"],"k":[3,54],"o":2},"flag-sk":{"subcategory":"country-flag","a":"Slovakia Flag","b":"1F1F8-1F1F0","d":true,"e":true,"f":true,"h":true,"j":["flag_slovakia","sk","flag","nation","country","banner","slovakia"],"k":[3,55],"o":2},"flag-sl":{"subcategory":"country-flag","a":"Sierra Leone Flag","b":"1F1F8-1F1F1","d":true,"e":true,"f":true,"h":true,"j":["flag_sierra_leone","sierra","leone","flag","nation","country","banner","sierra_leone"],"k":[3,56],"o":2},"flag-sm":{"subcategory":"country-flag","a":"San Marino Flag","b":"1F1F8-1F1F2","d":true,"e":true,"f":true,"h":true,"j":["flag_san_marino","san","marino","flag","nation","country","banner","san_marino"],"k":[3,57],"o":2},"flag-sn":{"subcategory":"country-flag","a":"Senegal Flag","b":"1F1F8-1F1F3","d":true,"e":true,"f":true,"h":true,"j":["flag_senegal","sn","flag","nation","country","banner","senegal"],"k":[3,58],"o":2},"flag-so":{"subcategory":"country-flag","a":"Somalia Flag","b":"1F1F8-1F1F4","d":true,"e":true,"f":true,"h":true,"j":["flag_somalia","so","flag","nation","country","banner","somalia"],"k":[3,59],"o":2},"flag-sr":{"subcategory":"country-flag","a":"Suriname Flag","b":"1F1F8-1F1F7","d":true,"e":true,"f":true,"h":true,"j":["flag_suriname","sr","flag","nation","country","banner","suriname"],"k":[3,60],"o":2},"flag-ss":{"subcategory":"country-flag","a":"South Sudan Flag","b":"1F1F8-1F1F8","d":true,"e":true,"f":true,"h":true,"j":["flag_south_sudan","south","sd","flag","nation","country","banner","south_sudan"],"k":[4,0],"o":2},"flag-st":{"subcategory":"country-flag","a":"São Tomé & Príncipe Flag","b":"1F1F8-1F1F9","d":true,"e":true,"f":true,"h":true,"j":["flag_sao_tome_principe","sao","tome","principe","flag","nation","country","banner","sao_tome_principe"],"k":[4,1],"o":2},"flag-sv":{"subcategory":"country-flag","a":"El Salvador Flag","b":"1F1F8-1F1FB","d":true,"e":true,"f":true,"h":true,"j":["flag_el_salvador","el","salvador","flag","nation","country","banner","el_salvador"],"k":[4,2],"o":2},"flag-sx":{"subcategory":"country-flag","a":"Sint Maarten Flag","b":"1F1F8-1F1FD","d":true,"e":true,"f":true,"h":true,"j":["flag_sint_maarten","sint","maarten","dutch","flag","nation","country","banner","sint_maarten"],"k":[4,3],"o":2},"flag-sy":{"subcategory":"country-flag","a":"Syria Flag","b":"1F1F8-1F1FE","d":true,"e":true,"f":true,"h":true,"j":["flag_syria","syrian","arab","republic","flag","nation","country","banner","syria"],"k":[4,4],"o":2},"flag-sz":{"subcategory":"country-flag","a":"Eswatini Flag","b":"1F1F8-1F1FF","d":true,"e":true,"f":true,"h":true,"j":["flag_eswatini","sz","flag","nation","country","banner","eswatini"],"k":[4,5],"o":2},"flag-ta":{"subcategory":"country-flag","a":"Tristan Da Cunha Flag","b":"1F1F9-1F1E6","d":true,"e":true,"f":true,"h":true,"j":["flag_tristan_da_cunha"],"k":[4,6],"o":2},"flag-tc":{"subcategory":"country-flag","a":"Turks & Caicos Islands Flag","b":"1F1F9-1F1E8","d":true,"e":true,"f":true,"h":true,"j":["flag_turks_caicos_islands","turks","caicos","islands","flag","nation","country","banner","turks_caicos_islands"],"k":[4,7],"o":2},"flag-td":{"subcategory":"country-flag","a":"Chad Flag","b":"1F1F9-1F1E9","d":true,"e":true,"f":true,"h":true,"j":["flag_chad","td","flag","nation","country","banner","chad"],"k":[4,8],"o":2},"flag-tf":{"subcategory":"country-flag","a":"French Southern Territories Flag","b":"1F1F9-1F1EB","d":true,"e":true,"f":true,"h":true,"j":["flag_french_southern_territories","french","southern","territories","flag","nation","country","banner","french_southern_territories"],"k":[4,9],"o":2},"flag-tg":{"subcategory":"country-flag","a":"Togo Flag","b":"1F1F9-1F1EC","d":true,"e":true,"f":true,"h":true,"j":["flag_togo","tg","flag","nation","country","banner","togo"],"k":[4,10],"o":2},"flag-th":{"subcategory":"country-flag","a":"Thailand Flag","b":"1F1F9-1F1ED","d":true,"e":true,"f":true,"h":true,"j":["flag_thailand","th","flag","nation","country","banner","thailand"],"k":[4,11],"o":2},"flag-tj":{"subcategory":"country-flag","a":"Tajikistan Flag","b":"1F1F9-1F1EF","d":true,"e":true,"f":true,"h":true,"j":["flag_tajikistan","tj","flag","nation","country","banner","tajikistan"],"k":[4,12],"o":2},"flag-tk":{"subcategory":"country-flag","a":"Tokelau Flag","b":"1F1F9-1F1F0","d":true,"e":true,"f":true,"h":true,"j":["flag_tokelau","tk","flag","nation","country","banner","tokelau"],"k":[4,13],"o":2},"flag-tl":{"subcategory":"country-flag","a":"Timor-Leste Flag","b":"1F1F9-1F1F1","d":true,"e":true,"f":true,"h":true,"j":["flag_timor_leste","timor","leste","flag","nation","country","banner","timor_leste"],"k":[4,14],"o":2},"flag-tm":{"subcategory":"country-flag","a":"Turkmenistan Flag","b":"1F1F9-1F1F2","d":true,"e":true,"f":true,"h":true,"j":["flag_turkmenistan","flag","nation","country","banner","turkmenistan"],"k":[4,15],"o":2},"flag-tn":{"subcategory":"country-flag","a":"Tunisia Flag","b":"1F1F9-1F1F3","d":true,"e":true,"f":true,"h":true,"j":["flag_tunisia","tn","flag","nation","country","banner","tunisia"],"k":[4,16],"o":2},"flag-to":{"subcategory":"country-flag","a":"Tonga Flag","b":"1F1F9-1F1F4","d":true,"e":true,"f":true,"h":true,"j":["flag_tonga","to","flag","nation","country","banner","tonga"],"k":[4,17],"o":2},"flag-tr":{"subcategory":"country-flag","a":"Turkey Flag","b":"1F1F9-1F1F7","d":true,"e":true,"f":true,"h":true,"j":["flag_turkey","turkey","flag","nation","country","banner"],"k":[4,18],"o":2},"flag-tt":{"subcategory":"country-flag","a":"Trinidad & Tobago Flag","b":"1F1F9-1F1F9","d":true,"e":true,"f":true,"h":true,"j":["flag_trinidad_tobago","trinidad","tobago","flag","nation","country","banner","trinidad_tobago"],"k":[4,19],"o":2},"flag-tv":{"subcategory":"country-flag","a":"Tuvalu Flag","b":"1F1F9-1F1FB","d":true,"e":true,"f":true,"h":true,"j":["flag_tuvalu","flag","nation","country","banner","tuvalu"],"k":[4,20],"o":2},"flag-tw":{"subcategory":"country-flag","a":"Taiwan Flag","b":"1F1F9-1F1FC","d":true,"e":true,"f":true,"h":true,"j":["flag_taiwan","tw","flag","nation","country","banner","taiwan"],"k":[4,21],"o":2},"flag-tz":{"subcategory":"country-flag","a":"Tanzania Flag","b":"1F1F9-1F1FF","d":true,"e":true,"f":true,"h":true,"j":["flag_tanzania","tanzania","united","republic","flag","nation","country","banner"],"k":[4,22],"o":2},"flag-ua":{"subcategory":"country-flag","a":"Ukraine Flag","b":"1F1FA-1F1E6","d":true,"e":true,"f":true,"h":true,"j":["flag_ukraine","ua","flag","nation","country","banner","ukraine"],"k":[4,23],"o":2},"flag-ug":{"subcategory":"country-flag","a":"Uganda Flag","b":"1F1FA-1F1EC","d":true,"e":true,"f":true,"h":true,"j":["flag_uganda","ug","flag","nation","country","banner","uganda"],"k":[4,24],"o":2},"flag-um":{"subcategory":"country-flag","a":"U.s. Outlying Islands Flag","b":"1F1FA-1F1F2","d":true,"e":true,"f":true,"h":true,"j":["flag_u_s_outlying_islands"],"k":[4,25],"o":2},"flag-un":{"subcategory":"country-flag","a":"United Nations Flag","b":"1F1FA-1F1F3","d":true,"e":true,"f":true,"h":true,"j":["flag_united_nations","un","flag","banner"],"k":[4,26],"o":4},"us":{"subcategory":"country-flag","a":"United States Flag","b":"1F1FA-1F1F8","d":true,"e":true,"f":true,"h":true,"j":["flag_united_states","united","states","america","flag","nation","country","banner","united_states"],"k":[4,27],"n":["flag-us"],"o":0},"flag-uy":{"subcategory":"country-flag","a":"Uruguay Flag","b":"1F1FA-1F1FE","d":true,"e":true,"f":true,"h":true,"j":["flag_uruguay","uy","flag","nation","country","banner","uruguay"],"k":[4,28],"o":2},"flag-uz":{"subcategory":"country-flag","a":"Uzbekistan Flag","b":"1F1FA-1F1FF","d":true,"e":true,"f":true,"h":true,"j":["flag_uzbekistan","uz","flag","nation","country","banner","uzbekistan"],"k":[4,29],"o":2},"flag-va":{"subcategory":"country-flag","a":"Vatican City Flag","b":"1F1FB-1F1E6","d":true,"e":true,"f":true,"h":true,"j":["flag_vatican_city","vatican","city","flag","nation","country","banner","vatican_city"],"k":[4,30],"o":2},"flag-vc":{"subcategory":"country-flag","a":"St. Vincent & Grenadines Flag","b":"1F1FB-1F1E8","d":true,"e":true,"f":true,"h":true,"j":["flag_st_vincent_grenadines","saint","vincent","grenadines","flag","nation","country","banner","st_vincent_grenadines"],"k":[4,31],"o":2},"flag-ve":{"subcategory":"country-flag","a":"Venezuela Flag","b":"1F1FB-1F1EA","d":true,"e":true,"f":true,"h":true,"j":["flag_venezuela","ve","bolivarian","republic","flag","nation","country","banner","venezuela"],"k":[4,32],"o":2},"flag-vg":{"subcategory":"country-flag","a":"British Virgin Islands Flag","b":"1F1FB-1F1EC","d":true,"e":true,"f":true,"h":true,"j":["flag_british_virgin_islands","british","virgin","islands","bvi","flag","nation","country","banner","british_virgin_islands"],"k":[4,33],"o":2},"flag-vi":{"subcategory":"country-flag","a":"U.s. Virgin Islands Flag","b":"1F1FB-1F1EE","d":true,"e":true,"f":true,"h":true,"j":["flag_u_s_virgin_islands","virgin","islands","us","flag","nation","country","banner","u_s_virgin_islands"],"k":[4,34],"o":2},"flag-vn":{"subcategory":"country-flag","a":"Vietnam Flag","b":"1F1FB-1F1F3","d":true,"e":true,"f":true,"h":true,"j":["flag_vietnam","viet","nam","flag","nation","country","banner","vietnam"],"k":[4,35],"o":2},"flag-vu":{"subcategory":"country-flag","a":"Vanuatu Flag","b":"1F1FB-1F1FA","d":true,"e":true,"f":true,"h":true,"j":["flag_vanuatu","vu","flag","nation","country","banner","vanuatu"],"k":[4,36],"o":2},"flag-wf":{"subcategory":"country-flag","a":"Wallis & Futuna Flag","b":"1F1FC-1F1EB","d":true,"e":true,"f":true,"h":true,"j":["flag_wallis_futuna","wallis","futuna","flag","nation","country","banner","wallis_futuna"],"k":[4,37],"o":2},"flag-ws":{"subcategory":"country-flag","a":"Samoa Flag","b":"1F1FC-1F1F8","d":true,"e":true,"f":true,"h":true,"j":["flag_samoa","ws","flag","nation","country","banner","samoa"],"k":[4,38],"o":2},"flag-xk":{"subcategory":"country-flag","a":"Kosovo Flag","b":"1F1FD-1F1F0","d":true,"e":true,"f":true,"h":true,"j":["flag_kosovo","xk","flag","nation","country","banner","kosovo"],"k":[4,39],"o":2},"flag-ye":{"subcategory":"country-flag","a":"Yemen Flag","b":"1F1FE-1F1EA","d":true,"e":true,"f":true,"h":true,"j":["flag_yemen","ye","flag","nation","country","banner","yemen"],"k":[4,40],"o":2},"flag-yt":{"subcategory":"country-flag","a":"Mayotte Flag","b":"1F1FE-1F1F9","d":true,"e":true,"f":true,"h":true,"j":["flag_mayotte","yt","flag","nation","country","banner","mayotte"],"k":[4,41],"o":2},"flag-za":{"subcategory":"country-flag","a":"South Africa Flag","b":"1F1FF-1F1E6","d":true,"e":true,"f":true,"h":true,"j":["flag_south_africa","south","africa","flag","nation","country","banner","south_africa"],"k":[4,42],"o":2},"flag-zm":{"subcategory":"country-flag","a":"Zambia Flag","b":"1F1FF-1F1F2","d":true,"e":true,"f":true,"h":true,"j":["flag_zambia","zm","flag","nation","country","banner","zambia"],"k":[4,43],"o":2},"flag-zw":{"subcategory":"country-flag","a":"Zimbabwe Flag","b":"1F1FF-1F1FC","d":true,"e":true,"f":true,"h":true,"j":["flag_zimbabwe","zw","flag","nation","country","banner","zimbabwe"],"k":[4,44],"o":2},"flag-england":{"subcategory":"subdivision-flag","a":"England Flag","b":"1F3F4-E0067-E0062-E0065-E006E-E0067-E007F","d":true,"e":true,"f":true,"h":true,"j":["flag_england","flag","english"],"k":[10,32],"o":5},"flag-scotland":{"subcategory":"subdivision-flag","a":"Scotland Flag","b":"1F3F4-E0067-E0062-E0073-E0063-E0074-E007F","d":true,"e":true,"f":true,"h":true,"j":["flag_scotland","flag","scottish"],"k":[10,33],"o":5},"flag-wales":{"subcategory":"subdivision-flag","a":"Wales Flag","b":"1F3F4-E0067-E0062-E0077-E006C-E0073-E007F","d":true,"e":true,"f":true,"h":true,"j":["flag_wales","flag","welsh"],"k":[10,34],"o":5}}`),Vt={satisfied:"laughing",grinning_face_with_star_eyes:"star-struck",grinning_face_with_one_large_and_one_small_eye:"zany_face",smiling_face_with_smiling_eyes_and_hand_covering_mouth:"face_with_hand_over_mouth",face_with_finger_covering_closed_lips:"shushing_face",face_with_one_eyebrow_raised:"face_with_raised_eyebrow",face_with_open_mouth_vomiting:"face_vomiting",shocked_face_with_exploding_head:"exploding_head",serious_face_with_symbols_covering_mouth:"face_with_symbols_on_mouth",poop:"hankey",shit:"hankey",collision:"boom",raised_hand:"hand",hand_with_index_and_middle_fingers_crossed:"crossed_fingers",sign_of_the_horns:"the_horns",reversed_hand_with_middle_finger_extended:"middle_finger",thumbsup:"+1",thumbsdown:"-1",punch:"facepunch",mother_christmas:"mrs_claus",running:"runner","man-with-bunny-ears-partying":"men-with-bunny-ears-partying","woman-with-bunny-ears-partying":"women-with-bunny-ears-partying",women_holding_hands:"two_women_holding_hands",woman_and_man_holding_hands:"man_and_woman_holding_hands",couple:"man_and_woman_holding_hands",men_holding_hands:"two_men_holding_hands",paw_prints:"feet",flipper:"dolphin",honeybee:"bee",lady_beetle:"ladybug",cooking:"fried_egg",knife:"hocho",red_car:"car",sailboat:"boat",waxing_gibbous_moon:"moon",sun_small_cloud:"mostly_sunny",sun_behind_cloud:"barely_sunny",sun_behind_rain_cloud:"partly_sunny_rain",lightning_cloud:"lightning",tornado_cloud:"tornado",tshirt:"shirt",shoe:"mans_shoe",telephone:"phone",lantern:"izakaya_lantern",open_book:"book",envelope:"email",pencil:"memo",heavy_exclamation_mark:"exclamation",staff_of_aesculapius:"medical_symbol","flag-cn":"cn","flag-de":"de","flag-es":"es","flag-fr":"fr",uk:"gb","flag-gb":"gb","flag-it":"it","flag-jp":"jp","flag-kr":"kr","flag-ru":"ru","flag-us":"us"},Jt={compressed:Ut,categories:$t,emojis:Kt,aliases:Vt};var De="emoji-mart";const Yt=JSON;var Xe=typeof window<"u"&&"localStorage"in window;let ce,pe;function Zt(_){_||(_={}),ce=_.getter,pe=_.setter}function Qt(_){De=_}function Xt(_){for(let a in _){let r=_[a];et(a,r)}}function et(_,a){if(pe)pe(_,a);else{if(!Xe)return;try{window.localStorage[`${De}.${_}`]=Yt.stringify(a)}catch{}}}function ea(_){if(ce)return ce(_);if(Xe){try{var a=window.localStorage[`${De}.${_}`]}catch{return}if(a)return JSON.parse(a)}}const Q={update:Xt,set:et,get:ea,setNamespace:Qt,setHandlers:Zt},he={name:"a",unified:"b",non_qualified:"c",has_img_apple:"d",has_img_google:"e",has_img_twitter:"f",has_img_facebook:"h",keywords:"j",sheet:"k",emoticons:"l",text:"m",short_names:"n",added_in:"o"},tt=_=>{const a=[];var r=(n,s)=>{n&&(Array.isArray(n)?n:[n]).forEach(u=>{(s?u.split(/[-|_|\s]+/):[u]).forEach(g=>{g=g.toLowerCase(),a.indexOf(g)==-1&&a.push(g)})})};return r(_.short_names,!0),r(_.name,!0),r(_.keywords,!1),r(_.emoticons,!1),a.join(",")};function at(_){var a=Object.getOwnPropertyNames(_);for(let r of a){let n=_[r];_[r]=n&&typeof n=="object"?at(n):n}return Object.freeze(_)}const ta=_=>{if(!_.compressed)return _;_.compressed=!1;for(let a in _.emojis){let r=_.emojis[a];for(let n in he)r[n]=r[he[n]],delete r[he[n]];r.short_names||(r.short_names=[]),r.short_names.unshift(a),r.sheet_x=r.sheet[0],r.sheet_y=r.sheet[1],delete r.sheet,r.text||(r.text=""),r.added_in||(r.added_in=6),r.added_in=r.added_in.toFixed(1),r.search=tt(r)}return _=at(_),_},le=["+1","grinning","kissing_heart","heart_eyes","laughing","stuck_out_tongue_winking_eye","sweat_smile","joy","scream","disappointed","unamused","weary","sob","sunglasses","heart","hankey"];let P,we,be={};function it(){we=!0,P=Q.get("frequently")}function aa(_){we||it();var{id:a}=_;P||(P=be),P[a]||(P[a]=0),P[a]+=1,Q.set("last",a),Q.set("frequently",P)}function ia(_){if(we||it(),!P){be={};const u=[];let g=Math.min(_,le.length);for(let d=0;d<g;d++)be[le[d]]=parseInt((g-d)/4,10)+1,u.push(le[d]);return u}const a=_,r=[];for(let u in P)P.hasOwnProperty(u)&&r.push(u);const n=r.sort((u,g)=>P[u]-P[g]).reverse().slice(0,a),s=Q.get("last");return s&&n.indexOf(s)==-1&&(n.pop(),n.push(s)),n}const ye={add:aa,get:ia},ra={activity:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M12 0C5.373 0 0 5.372 0 12c0 6.627 5.373 12 12 12 6.628 0 12-5.373 12-12 0-6.628-5.372-12-12-12m9.949 11H17.05c.224-2.527 1.232-4.773 1.968-6.113A9.966 9.966 0 0 1 21.949 11M13 11V2.051a9.945 9.945 0 0 1 4.432 1.564c-.858 1.491-2.156 4.22-2.392 7.385H13zm-2 0H8.961c-.238-3.165-1.536-5.894-2.393-7.385A9.95 9.95 0 0 1 11 2.051V11zm0 2v8.949a9.937 9.937 0 0 1-4.432-1.564c.857-1.492 2.155-4.221 2.393-7.385H11zm4.04 0c.236 3.164 1.534 5.893 2.392 7.385A9.92 9.92 0 0 1 13 21.949V13h2.04zM4.982 4.887C5.718 6.227 6.726 8.473 6.951 11h-4.9a9.977 9.977 0 0 1 2.931-6.113M2.051 13h4.9c-.226 2.527-1.233 4.771-1.969 6.113A9.972 9.972 0 0 1 2.051 13m16.967 6.113c-.735-1.342-1.744-3.586-1.968-6.113h4.899a9.961 9.961 0 0 1-2.931 6.113"/></svg>',custom:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><g transform="translate(2.000000, 1.000000)"><rect id="Rectangle" x="8" y="0" width="3" height="21" rx="1.5"></rect><rect id="Rectangle" transform="translate(9.843, 10.549) rotate(60) translate(-9.843, -10.549) " x="8.343" y="0.049" width="3" height="21" rx="1.5"></rect><rect id="Rectangle" transform="translate(9.843, 10.549) rotate(-60) translate(-9.843, -10.549) " x="8.343" y="0.049" width="3" height="21" rx="1.5"></rect></g></svg>',flags:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M0 0l6.084 24H8L1.916 0zM21 5h-4l-1-4H4l3 12h3l1 4h13L21 5zM6.563 3h7.875l2 8H8.563l-2-8zm8.832 10l-2.856 1.904L12.063 13h3.332zM19 13l-1.5-6h1.938l2 8H16l3-2z"/></svg>',foods:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M17 4.978c-1.838 0-2.876.396-3.68.934.513-1.172 1.768-2.934 4.68-2.934a1 1 0 0 0 0-2c-2.921 0-4.629 1.365-5.547 2.512-.064.078-.119.162-.18.244C11.73 1.838 10.798.023 9.207.023 8.579.022 7.85.306 7 .978 5.027 2.54 5.329 3.902 6.492 4.999 3.609 5.222 0 7.352 0 12.969c0 4.582 4.961 11.009 9 11.009 1.975 0 2.371-.486 3-1 .629.514 1.025 1 3 1 4.039 0 9-6.418 9-11 0-5.953-4.055-8-7-8M8.242 2.546c.641-.508.943-.523.965-.523.426.169.975 1.405 1.357 3.055-1.527-.629-2.741-1.352-2.98-1.846.059-.112.241-.356.658-.686M15 21.978c-1.08 0-1.21-.109-1.559-.402l-.176-.146c-.367-.302-.816-.452-1.266-.452s-.898.15-1.266.452l-.176.146c-.347.292-.477.402-1.557.402-2.813 0-7-5.389-7-9.009 0-5.823 4.488-5.991 5-5.991 1.939 0 2.484.471 3.387 1.251l.323.276a1.995 1.995 0 0 0 2.58 0l.323-.276c.902-.78 1.447-1.251 3.387-1.251.512 0 5 .168 5 6 0 3.617-4.187 9-7 9"/></svg>',nature:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M15.5 8a1.5 1.5 0 1 0 .001 3.001A1.5 1.5 0 0 0 15.5 8M8.5 8a1.5 1.5 0 1 0 .001 3.001A1.5 1.5 0 0 0 8.5 8"/><path d="M18.933 0h-.027c-.97 0-2.138.787-3.018 1.497-1.274-.374-2.612-.51-3.887-.51-1.285 0-2.616.133-3.874.517C7.245.79 6.069 0 5.093 0h-.027C3.352 0 .07 2.67.002 7.026c-.039 2.479.276 4.238 1.04 5.013.254.258.882.677 1.295.882.191 3.177.922 5.238 2.536 6.38.897.637 2.187.949 3.2 1.102C8.04 20.6 8 20.795 8 21c0 1.773 2.35 3 4 3 1.648 0 4-1.227 4-3 0-.201-.038-.393-.072-.586 2.573-.385 5.435-1.877 5.925-7.587.396-.22.887-.568 1.104-.788.763-.774 1.079-2.534 1.04-5.013C23.929 2.67 20.646 0 18.933 0M3.223 9.135c-.237.281-.837 1.155-.884 1.238-.15-.41-.368-1.349-.337-3.291.051-3.281 2.478-4.972 3.091-5.031.256.015.731.27 1.265.646-1.11 1.171-2.275 2.915-2.352 5.125-.133.546-.398.858-.783 1.313M12 22c-.901 0-1.954-.693-2-1 0-.654.475-1.236 1-1.602V20a1 1 0 1 0 2 0v-.602c.524.365 1 .947 1 1.602-.046.307-1.099 1-2 1m3-3.48v.02a4.752 4.752 0 0 0-1.262-1.02c1.092-.516 2.239-1.334 2.239-2.217 0-1.842-1.781-2.195-3.977-2.195-2.196 0-3.978.354-3.978 2.195 0 .883 1.148 1.701 2.238 2.217A4.8 4.8 0 0 0 9 18.539v-.025c-1-.076-2.182-.281-2.973-.842-1.301-.92-1.838-3.045-1.853-6.478l.023-.041c.496-.826 1.49-1.45 1.804-3.102 0-2.047 1.357-3.631 2.362-4.522C9.37 3.178 10.555 3 11.948 3c1.447 0 2.685.192 3.733.57 1 .9 2.316 2.465 2.316 4.48.313 1.651 1.307 2.275 1.803 3.102.035.058.068.117.102.178-.059 5.967-1.949 7.01-4.902 7.19m6.628-8.202c-.037-.065-.074-.13-.113-.195a7.587 7.587 0 0 0-.739-.987c-.385-.455-.648-.768-.782-1.313-.076-2.209-1.241-3.954-2.353-5.124.531-.376 1.004-.63 1.261-.647.636.071 3.044 1.764 3.096 5.031.027 1.81-.347 3.218-.37 3.235"/></svg>',objects:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M12 0a9 9 0 0 0-5 16.482V21s2.035 3 5 3 5-3 5-3v-4.518A9 9 0 0 0 12 0zm0 2c3.86 0 7 3.141 7 7s-3.14 7-7 7-7-3.141-7-7 3.14-7 7-7zM9 17.477c.94.332 1.946.523 3 .523s2.06-.19 3-.523v.834c-.91.436-1.925.689-3 .689a6.924 6.924 0 0 1-3-.69v-.833zm.236 3.07A8.854 8.854 0 0 0 12 21c.965 0 1.888-.167 2.758-.451C14.155 21.173 13.153 22 12 22c-1.102 0-2.117-.789-2.764-1.453z"/><path d="M14.745 12.449h-.004c-.852-.024-1.188-.858-1.577-1.824-.421-1.061-.703-1.561-1.182-1.566h-.009c-.481 0-.783.497-1.235 1.537-.436.982-.801 1.811-1.636 1.791l-.276-.043c-.565-.171-.853-.691-1.284-1.794-.125-.313-.202-.632-.27-.913-.051-.213-.127-.53-.195-.634C7.067 9.004 7.039 9 6.99 9A1 1 0 0 1 7 7h.01c1.662.017 2.015 1.373 2.198 2.134.486-.981 1.304-2.058 2.797-2.075 1.531.018 2.28 1.153 2.731 2.141l.002-.008C14.944 8.424 15.327 7 16.979 7h.032A1 1 0 1 1 17 9h-.011c-.149.076-.256.474-.319.709a6.484 6.484 0 0 1-.311.951c-.429.973-.79 1.789-1.614 1.789"/></svg>',smileys:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0m0 22C6.486 22 2 17.514 2 12S6.486 2 12 2s10 4.486 10 10-4.486 10-10 10"/><path d="M8 7a2 2 0 1 0-.001 3.999A2 2 0 0 0 8 7M16 7a2 2 0 1 0-.001 3.999A2 2 0 0 0 16 7M15.232 15c-.693 1.195-1.87 2-3.349 2-1.477 0-2.655-.805-3.347-2H15m3-2H6a6 6 0 1 0 12 0"/></svg>',people:'<svg xmlns:svg="http://www.w3.org/2000/svg" height="24" width="24" viewBox="0 0 24 24"> <path id="path3814" d="m 3.3591089,21.17726 c 0.172036,0.09385 4.265994,2.29837 8.8144451,2.29837 4.927767,0 8.670894,-2.211883 8.82782,-2.306019 0.113079,-0.06785 0.182268,-0.190051 0.182267,-0.321923 0,-3.03119 -0.929494,-5.804936 -2.617196,-7.810712 -1.180603,-1.403134 -2.661918,-2.359516 -4.295699,-2.799791 4.699118,-2.236258 3.102306,-9.28617162 -2.097191,-9.28617162 -5.1994978,0 -6.7963103,7.04991362 -2.097192,9.28617162 -1.6337821,0.440275 -3.1150971,1.396798 -4.2956991,2.799791 -1.687703,2.005776 -2.617196,4.779522 -2.617196,7.810712 1.2e-6,0.137378 0.075039,0.263785 0.195641,0.329572 z M 8.0439319,5.8308783 C 8.0439309,2.151521 12.492107,0.30955811 15.093491,2.9109411 17.694874,5.5123241 15.852911,9.9605006 12.173554,9.9605 9.8938991,9.9579135 8.0465186,8.1105332 8.0439319,5.8308783 Z m -1.688782,7.6894977 c 1.524535,-1.811449 3.5906601,-2.809035 5.8184041,-2.809035 2.227744,0 4.293869,0.997586 5.818404,2.809035 1.533639,1.822571 2.395932,4.339858 2.439152,7.108301 -0.803352,0.434877 -4.141636,2.096112 -8.257556,2.096112 -3.8062921,0 -7.3910861,-1.671043 -8.2573681,-2.104981 0.04505,-2.765017 0.906968,-5.278785 2.438964,-7.099432 z" /> <path id="path3816" d="M 12.173828 0.38867188 C 9.3198513 0.38867187 7.3770988 2.3672285 6.8652344 4.6308594 C 6.4218608 6.5916015 7.1153562 8.7676117 8.9648438 10.126953 C 7.6141249 10.677376 6.3550511 11.480944 5.3496094 12.675781 C 3.5629317 14.799185 2.6015625 17.701475 2.6015625 20.847656 C 2.6015654 21.189861 2.7894276 21.508002 3.0898438 21.671875 C 3.3044068 21.788925 7.4436239 24.039062 12.173828 24.039062 C 17.269918 24.039062 21.083568 21.776786 21.291016 21.652344 C 21.57281 21.483266 21.746097 21.176282 21.746094 20.847656 C 21.746094 17.701475 20.78277 14.799185 18.996094 12.675781 C 17.990455 11.480591 16.733818 10.675362 15.382812 10.125 C 17.231132 8.7655552 17.925675 6.5910701 17.482422 4.6308594 C 16.970557 2.3672285 15.027805 0.38867188 12.173828 0.38867188 z M 12.792969 2.3007812 C 13.466253 2.4161792 14.125113 2.7383941 14.695312 3.3085938 C 15.835712 4.4489931 15.985604 5.9473549 15.46875 7.1953125 C 14.951896 8.4432701 13.786828 9.3984378 12.173828 9.3984375 C 10.197719 9.3961954 8.607711 7.806187 8.6054688 5.8300781 C 8.6054683 4.2170785 9.5606362 3.0520102 10.808594 2.5351562 C 11.432573 2.2767293 12.119685 2.1853833 12.792969 2.3007812 z M 12.173828 11.273438 C 14.233647 11.273438 16.133674 12.185084 17.5625 13.882812 C 18.93069 15.508765 19.698347 17.776969 19.808594 20.283203 C 18.807395 20.800235 15.886157 22.162109 12.173828 22.162109 C 8.7614632 22.162109 5.6245754 20.787069 4.5390625 20.265625 C 4.6525896 17.766717 5.4203315 15.504791 6.7851562 13.882812 C 8.2139827 12.185084 10.11401 11.273438 12.173828 11.273438 z " /> </svg>',places:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M6.5 12C5.122 12 4 13.121 4 14.5S5.122 17 6.5 17 9 15.879 9 14.5 7.878 12 6.5 12m0 3c-.275 0-.5-.225-.5-.5s.225-.5.5-.5.5.225.5.5-.225.5-.5.5M17.5 12c-1.378 0-2.5 1.121-2.5 2.5s1.122 2.5 2.5 2.5 2.5-1.121 2.5-2.5-1.122-2.5-2.5-2.5m0 3c-.275 0-.5-.225-.5-.5s.225-.5.5-.5.5.225.5.5-.225.5-.5.5"/><path d="M22.482 9.494l-1.039-.346L21.4 9h.6c.552 0 1-.439 1-.992 0-.006-.003-.008-.003-.008H23c0-1-.889-2-1.984-2h-.642l-.731-1.717C19.262 3.012 18.091 2 16.764 2H7.236C5.909 2 4.738 3.012 4.357 4.283L3.626 6h-.642C1.889 6 1 7 1 8h.003S1 8.002 1 8.008C1 8.561 1.448 9 2 9h.6l-.043.148-1.039.346a2.001 2.001 0 0 0-1.359 2.097l.751 7.508a1 1 0 0 0 .994.901H3v1c0 1.103.896 2 2 2h2c1.104 0 2-.897 2-2v-1h6v1c0 1.103.896 2 2 2h2c1.104 0 2-.897 2-2v-1h1.096a.999.999 0 0 0 .994-.901l.751-7.508a2.001 2.001 0 0 0-1.359-2.097M6.273 4.857C6.402 4.43 6.788 4 7.236 4h9.527c.448 0 .834.43.963.857L19.313 9H4.688l1.585-4.143zM7 21H5v-1h2v1zm12 0h-2v-1h2v1zm2.189-3H2.811l-.662-6.607L3 11h18l.852.393L21.189 18z"/></svg>',recent:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M13 4h-2l-.001 7H9v2h2v2h2v-2h4v-2h-4z"/><path d="M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0m0 22C6.486 22 2 17.514 2 12S6.486 2 12 2s10 4.486 10 10-4.486 10-10 10"/></svg>',symbols:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M0 0h11v2H0zM4 11h3V6h4V4H0v2h4zM15.5 17c1.381 0 2.5-1.116 2.5-2.493s-1.119-2.493-2.5-2.493S13 13.13 13 14.507 14.119 17 15.5 17m0-2.986c.276 0 .5.222.5.493 0 .272-.224.493-.5.493s-.5-.221-.5-.493.224-.493.5-.493M21.5 19.014c-1.381 0-2.5 1.116-2.5 2.493S20.119 24 21.5 24s2.5-1.116 2.5-2.493-1.119-2.493-2.5-2.493m0 2.986a.497.497 0 0 1-.5-.493c0-.271.224-.493.5-.493s.5.222.5.493a.497.497 0 0 1-.5.493M22 13l-9 9 1.513 1.5 8.99-9.009zM17 11c2.209 0 4-1.119 4-2.5V2s.985-.161 1.498.949C23.01 4.055 23 6 23 6s1-1.119 1-3.135C24-.02 21 0 21 0h-2v6.347A5.853 5.853 0 0 0 17 6c-2.209 0-4 1.119-4 2.5s1.791 2.5 4 2.5M10.297 20.482l-1.475-1.585a47.54 47.54 0 0 1-1.442 1.129c-.307-.288-.989-1.016-2.045-2.183.902-.836 1.479-1.466 1.729-1.892s.376-.871.376-1.336c0-.592-.273-1.178-.818-1.759-.546-.581-1.329-.871-2.349-.871-1.008 0-1.79.293-2.344.879-.556.587-.832 1.181-.832 1.784 0 .813.419 1.748 1.256 2.805-.847.614-1.444 1.208-1.794 1.784a3.465 3.465 0 0 0-.523 1.833c0 .857.308 1.56.924 2.107.616.549 1.423.823 2.42.823 1.173 0 2.444-.379 3.813-1.137L8.235 24h2.819l-2.09-2.383 1.333-1.135zm-6.736-6.389a1.02 1.02 0 0 1 .73-.286c.31 0 .559.085.747.254a.849.849 0 0 1 .283.659c0 .518-.419 1.112-1.257 1.784-.536-.651-.805-1.231-.805-1.742a.901.901 0 0 1 .302-.669M3.74 22c-.427 0-.778-.116-1.057-.349-.279-.232-.418-.487-.418-.766 0-.594.509-1.288 1.527-2.083.968 1.134 1.717 1.946 2.248 2.438-.921.507-1.686.76-2.3.76"/></svg>'},_a={props:{i18n:{type:Object,required:!0},color:{type:String},categories:{type:Array,required:!0},activeCategory:{type:Object,default(){return{}}}},emits:["click"],created(){this.svgs=ra}},ua={role:"tablist",class:"emoji-mart-anchors"},oa=["aria-label","aria-selected","data-title","onClick"],na=["innerHTML"];function sa(_,a,r,n,s,u){return p(),b("div",ua,[(p(!0),b(H,null,Y(r.categories,g=>(p(),b("button",{role:"tab",type:"button","aria-label":g.name,"aria-selected":g.id==r.activeCategory.id,key:g.id,class:W({"emoji-mart-anchor":!0,"emoji-mart-anchor-selected":g.id==r.activeCategory.id}),style:Z({color:g.id==r.activeCategory.id?r.color:""}),"data-title":r.i18n.categories[g.id],onClick:d=>_.$emit("click",g)},[y("div",{"aria-hidden":"true",innerHTML:_.svgs[g.id]},null,8,na),y("span",{"aria-hidden":"true",class:"emoji-mart-anchor-bar",style:Z({backgroundColor:r.color})},null,4)],14,oa))),128))])}const ga=$(_a,[["render",sa]]),Fa=String,fa=Fa.fromCodePoint||function(){var _=16384,a=[],r,n,s=-1,u=arguments.length;if(!u)return"";for(var g="";++s<u;){var d=Number(arguments[s]);if(!isFinite(d)||d<0||d>1114111||Math.floor(d)!=d)throw RangeError("Invalid code point: "+d);d<=65535?a.push(d):(d-=65536,r=(d>>10)+55296,n=d%1024+56320,a.push(r,n)),(s+1===u||a.length>_)&&(g+=String.fromCharCode.apply(null,a),a.length=0)}return g};function da(_){var a=_.split("-"),r=a.map(n=>`0x${n}`);return fa.apply(null,r)}function $e(_){return _.reduce((a,r)=>(a.indexOf(r)===-1&&a.push(r),a),[])}function ha(_,a){const r=$e(_),n=$e(a);return r.filter(s=>n.indexOf(s)>=0)}function rt(_,a){var r={};for(let n in _){let s=_[n],u=s;Object.prototype.hasOwnProperty.call(a,n)&&(u=a[n]),typeof u=="object"&&(u=rt(s,u)),r[n]=u}return r}function la(){if(typeof document>"u")return 0;const _=document.createElement("div");_.style.width="100px",_.style.height="100px",_.style.overflow="scroll",_.style.position="absolute",_.style.top="-9999px",document.body.appendChild(_);const a=_.offsetWidth-_.clientWidth;return document.body.removeChild(_),a}const ma=61,ca=/^(?:\:([^\:]+)\:)(?:\:skin-tone-(\d)\:)?$/,Ke=["1F3FA","1F3FB","1F3FC","1F3FD","1F3FE","1F3FF"];class pa{constructor(a,{emojisToShowFilter:r,include:n,exclude:s,custom:u,recent:g,recentLength:d=20}={}){this._data=ta(a),this._emojisFilter=r||null,this._include=n||null,this._exclude=s||null,this._custom=u||[],this._recent=g||ye.get(d),this._emojis={},this._nativeEmojis={},this._emoticons={},this._categories=[],this._recentCategory={id:"recent",name:"Recent",emojis:[]},this._customCategory={id:"custom",name:"Custom",emojis:[]},this._searchIndex={},this.buildIndex(),Object.freeze(this)}buildIndex(){let a=this._data.categories;if(this._include&&(a=a.filter(r=>this._include.includes(r.id)),a=a.sort((r,n)=>{const s=this._include.indexOf(r.id),u=this._include.indexOf(n.id);return s<u?-1:s>u?1:0})),a.forEach(r=>{if(!this.isCategoryNeeded(r.id))return;let n={id:r.id,name:r.name,emojis:[]};r.emojis.forEach(s=>{let u=this.addEmoji(s);u&&n.emojis.push(u)}),n.emojis.length&&this._categories.push(n)}),this.isCategoryNeeded("custom")){if(this._custom.length>0)for(let r of this._custom)this.addCustomEmoji(r);this._customCategory.emojis.length&&this._categories.push(this._customCategory)}this.isCategoryNeeded("recent")&&(this._recent.length&&this._recent.map(r=>{for(let n of this._customCategory.emojis)if(n.id===r){this._recentCategory.emojis.push(n);return}this.hasEmoji(r)&&this._recentCategory.emojis.push(this.emoji(r))}),this._recentCategory.emojis.length&&this._categories.unshift(this._recentCategory))}findEmoji(a,r){let n=a.match(ca);if(n&&(a=n[1],n[2]&&(r=parseInt(n[2],10))),this._data.aliases.hasOwnProperty(a)&&(a=this._data.aliases[a]),this._emojis.hasOwnProperty(a)){let s=this._emojis[a];return r?s.getSkin(r):s}return this._nativeEmojis.hasOwnProperty(a)?this._nativeEmojis[a]:null}categories(){return this._categories}emoji(a){this._data.aliases.hasOwnProperty(a)&&(a=this._data.aliases[a]);let r=this._emojis[a];if(!r)throw new Error("Can not find emoji by id: "+a);return r}firstEmoji(){let a=this._emojis[Object.keys(this._emojis)[0]];if(!a)throw new Error("Can not get first emoji");return a}hasEmoji(a){return this._data.aliases.hasOwnProperty(a)&&(a=this._data.aliases[a]),!!this._emojis[a]}nativeEmoji(a){return this._nativeEmojis.hasOwnProperty(a)?this._nativeEmojis[a]:null}search(a,r){if(r||(r=75),!a.length)return null;if(a=="-"||a=="-1")return[this.emoji("-1")];let n=a.toLowerCase().split(/[\s|,|\-|_]+/),s=[];n.length>2&&(n=[n[0],n[1]]),s=n.map(g=>{let d=this._emojis,l=this._searchIndex,C=0;for(let w=0;w<g.length;w++){const A=g[w];if(C++,l[A]||(l[A]={}),l=l[A],!l.results){let B={};l.results=[],l.emojis={};for(let k in d){let E=d[k],I=E._data.search,R=g.substr(0,C),X=I.indexOf(R);if(X!=-1){let v=X+1;R==k&&(v=0),l.results.push(E),l.emojis[k]=E,B[k]=v}}l.results.sort((k,E)=>{var I=B[k.id],R=B[E.id];return I-R})}d=l.emojis}return l.results}).filter(g=>g);var u=null;return s.length>1?u=ha.apply(null,s):s.length?u=s[0]:u=[],u&&u.length>r&&(u=u.slice(0,r)),u}addCustomEmoji(a){let r=Object.assign({},a,{id:a.short_names[0],custom:!0});r.search||(r.search=tt(r));let n=new _e(r);return this._emojis[n.id]=n,this._customCategory.emojis.push(n),n}addEmoji(a){let r=this._data.emojis[a];if(!this.isEmojiNeeded(r))return!1;let n=new _e(r);if(this._emojis[a]=n,n.native&&(this._nativeEmojis[n.native]=n),n._skins)for(let s in n._skins){let u=n._skins[s];u.native&&(this._nativeEmojis[u.native]=u)}return n.emoticons&&n.emoticons.forEach(s=>{this._emoticons[s]||(this._emoticons[s]=a)}),n}isCategoryNeeded(a){let r=this._include&&this._include.length?this._include.indexOf(a)>-1:!0,n=this._exclude&&this._exclude.length?this._exclude.indexOf(a)>-1:!1;return!(!r||n)}isEmojiNeeded(a){return this._emojisFilter?this._emojisFilter(a):!0}}class _e{constructor(a){if(this._data=Object.assign({},a),this._skins=null,this._data.skin_variations){this._skins=[];for(var r in Ke){let n=Ke[r],s=this._data.skin_variations[n],u=Object.assign({},a);for(let g in s)u[g]=s[g];delete u.skin_variations,u.skin_tone=parseInt(r)+1,this._skins.push(new _e(u))}}this._sanitized=ba(this._data);for(let n in this._sanitized)this[n]=this._sanitized[n];this.short_names=this._data.short_names,this.short_name=this._data.short_names[0],Object.freeze(this)}getSkin(a){return a&&a!="native"&&this._skins?this._skins[a-1]:this}getPosition(){let a=ma-1,r=+(100/a*this._data.sheet_x).toFixed(2),n=+(100/a*this._data.sheet_y).toFixed(2);return`${r}% ${n}%`}ariaLabel(){return[this.native].concat(this.short_names).filter(Boolean).join(", ")}}class _t{constructor(a,r,n,s,u,g,d){this._emoji=a,this._native=s,this._skin=r,this._set=n,this._fallback=u,this.canRender=this._canRender(),this.cssClass=this._cssClass(),this.cssStyle=this._cssStyle(d),this.content=this._content(),this.title=g===!0?a.short_name:null,this.ariaLabel=a.ariaLabel(),Object.freeze(this)}getEmoji(){return this._emoji.getSkin(this._skin)}_canRender(){return this._isCustom()||this._isNative()||this._hasEmoji()||this._fallback}_cssClass(){return["emoji-set-"+this._set,"emoji-type-"+this._emojiType()]}_cssStyle(a){let r={};return this._isCustom()?r={backgroundImage:"url("+this.getEmoji()._data.imageUrl+")",backgroundSize:"100%",width:a+"px",height:a+"px"}:this._hasEmoji()&&!this._isNative()&&(r={backgroundPosition:this.getEmoji().getPosition()}),a&&(this._isNative()?r=Object.assign(r,{fontSize:Math.round(a*.95*10)/10+"px"}):r=Object.assign(r,{width:a+"px",height:a+"px"})),r}_content(){return this._isCustom()?"":this._isNative()?this.getEmoji().native:this._hasEmoji()?"":this._fallback?this._fallback(this.getEmoji()):null}_isNative(){return this._native}_isCustom(){return this.getEmoji().custom}_hasEmoji(){if(!this.getEmoji()._data)return!1;const a=this.getEmoji()._data["has_img_"+this._set];return a===void 0?!0:a}_emojiType(){return this._isCustom()?"custom":this._isNative()?"native":this._hasEmoji()?"image":"fallback"}}function ba(_){var{name:a,short_names:r,skin_tone:n,skin_variations:s,emoticons:u,unified:g,custom:d,imageUrl:l}=_,C=_.id||r[0],w=`:${C}:`;return d?{id:C,name:a,colons:w,emoticons:u,custom:d,imageUrl:l}:(n&&(w+=`:skin-tone-${n}:`),{id:C,name:a,colons:w,emoticons:u,unified:g.toLowerCase(),skin:n||(s?1:null),native:da(g)})}const ya={native:{type:Boolean,default:!1},tooltip:{type:Boolean,default:!1},fallback:{type:Function},skin:{type:Number,default:1},set:{type:String,default:"apple"},emoji:{type:[String,Object],required:!0},size:{type:Number,default:null},tag:{type:String,default:"span"}},ka={perLine:{type:Number,default:9},maxSearchResults:{type:Number,default:75},emojiSize:{type:Number,default:24},title:{type:String,default:"Emoji Mart™"},emoji:{type:String,default:"department_store"},color:{type:String,default:"#ae65c5"},set:{type:String,default:"apple"},skin:{type:Number,default:null},defaultSkin:{type:Number,default:1},native:{type:Boolean,default:!1},emojiTooltip:{type:Boolean,default:!1},autoFocus:{type:Boolean,default:!1},i18n:{type:Object,default(){return{}}},showPreview:{type:Boolean,default:!0},showSearch:{type:Boolean,default:!0},showCategories:{type:Boolean,default:!0},showSkinTones:{type:Boolean,default:!0},infiniteScroll:{type:Boolean,default:!0},pickerStyles:{type:Object,default(){return{}}}},Da={props:{...ya,data:{type:Object,required:!0}},emits:["click","mouseenter","mouseleave"],computed:{view(){return new _t(this.emojiObject,this.skin,this.set,this.native,this.fallback,this.tooltip,this.size)},sanitizedData(){return this.emojiObject._sanitized},title(){return this.tooltip?this.emojiObject.short_name:null},emojiObject(){return typeof this.emoji=="string"?this.data.findEmoji(this.emoji):this.emoji}},created(){},methods:{onClick(){this.$emit("click",this.emojiObject)},onMouseEnter(){this.$emit("mouseenter",this.emojiObject)},onMouseLeave(){this.$emit("mouseleave",this.emojiObject)}}};function wa(_,a,r,n,s,u){return u.view.canRender?(p(),re(Ct(_.tag),{key:0,title:u.view.title,"aria-label":u.view.ariaLabel,"data-title":u.title,class:"emoji-mart-emoji",onMouseenter:u.onMouseEnter,onMouseleave:u.onMouseLeave,onClick:u.onClick},{default:U(()=>[y("span",{class:W(u.view.cssClass),style:Z(u.view.cssStyle)},T(u.view.content),7)]),_:1},40,["title","aria-label","data-title","onMouseenter","onMouseleave","onClick"])):L("",!0)}const Ee=$(Da,[["render",wa]]),Ea={props:{data:{type:Object,required:!0},i18n:{type:Object,required:!0},id:{type:String,required:!0},name:{type:String,required:!0},emojis:{type:Array},emojiProps:{type:Object,required:!0}},methods:{activeClass:function(_){return!this.emojiProps.selectedEmoji||!this.emojiProps.selectedEmojiCategory?"":this.emojiProps.selectedEmoji.id==_.id&&this.emojiProps.selectedEmojiCategory.id==this.id?"emoji-mart-emoji-selected":""}},computed:{isVisible(){return!!this.emojis},isSearch(){return this.name=="Search"},hasResults(){return this.emojis.length>0},emojiObjects(){return this.emojis.map(_=>{let a=_,r=new _t(_,this.emojiProps.skin,this.emojiProps.set,this.emojiProps.native,this.emojiProps.fallback,this.emojiProps.emojiTooltip,this.emojiProps.emojiSize);return{emojiObject:a,emojiView:r}})}},components:{Emoji:Ee}},ja=["aria-label"],Ca={class:"emoji-mart-category-label"},xa={class:"emoji-mart-category-label"},Ba=["aria-label","data-title","title","onMouseenter","onMouseleave","onClick"],qa={key:0},va={class:"emoji-mart-no-results-label"};function Aa(_,a,r,n,s,u){const g=S("emoji");return u.isVisible&&(u.isSearch||u.hasResults)?(p(),b("section",{key:0,class:W({"emoji-mart-category":!0,"emoji-mart-no-results":!u.hasResults}),"aria-label":r.i18n.categories[r.id]},[y("div",Ca,[y("h3",xa,T(r.i18n.categories[r.id]),1)]),(p(!0),b(H,null,Y(u.emojiObjects,({emojiObject:d,emojiView:l})=>(p(),b(H,null,[l.canRender?(p(),b("button",{"aria-label":l.ariaLabel,role:"option","aria-selected":"false","aria-posinset":"1","aria-setsize":"1812",type:"button","data-title":d.short_name,key:d.id,title:l.title,class:W(["emoji-mart-emoji",u.activeClass(d)]),onMouseenter:C=>r.emojiProps.onEnter(l.getEmoji()),onMouseleave:C=>r.emojiProps.onLeave(l.getEmoji()),onClick:C=>r.emojiProps.onClick(l.getEmoji())},[y("span",{class:W(l.cssClass),style:Z(l.cssStyle)},T(l.content),7)],42,Ba)):L("",!0)],64))),256)),u.hasResults?L("",!0):(p(),b("div",qa,[M(g,{data:r.data,emoji:"sleuth_or_spy",native:r.emojiProps.native,skin:r.emojiProps.skin,set:r.emojiProps.set},null,8,["data","native","skin","set"]),y("div",va,T(r.i18n.notfound),1)]))],10,ja)):L("",!0)}const Sa=$(Ea,[["render",Aa]]),Ma={props:{skin:{type:Number,required:!0}},emits:["change"],data(){return{opened:!1}},methods:{onClick(_){this.opened&&_!=this.skin&&this.$emit("change",_),this.opened=!this.opened}}},Pa=["onClick"];function za(_,a,r,n,s,u){return p(),b("div",{class:W({"emoji-mart-skin-swatches":!0,"emoji-mart-skin-swatches-opened":s.opened})},[(p(),b(H,null,Y(6,g=>y("span",{key:g,class:W({"emoji-mart-skin-swatch":!0,"emoji-mart-skin-swatch-selected":r.skin==g})},[y("span",{class:W("emoji-mart-skin emoji-mart-skin-tone-"+g),onClick:d=>u.onClick(g)},null,10,Pa)],2)),64))],2)}const Oa=$(Ma,[["render",za]]),Ta={props:{data:{type:Object,required:!0},title:{type:String,required:!0},emoji:{type:[String,Object]},idleEmoji:{type:[String,Object],required:!0},showSkinTones:{type:Boolean,default:!0},emojiProps:{type:Object,required:!0},skinProps:{type:Object,required:!0},onSkinChange:{type:Function,required:!0}},computed:{emojiData(){return this.emoji?this.emoji:{}},emojiShortNames(){return this.emojiData.short_names},emojiEmoticons(){return this.emojiData.emoticons}},components:{Emoji:Ee,Skins:Oa}},Ha={class:"emoji-mart-preview"},La={class:"emoji-mart-preview-emoji"},Wa={class:"emoji-mart-preview-data"},Ia={class:"emoji-mart-preview-name"},Ra={class:"emoji-mart-preview-shortnames"},Na={class:"emoji-mart-preview-emoticons"},Ga={class:"emoji-mart-preview-emoji"},Ua={class:"emoji-mart-preview-data"},$a={class:"emoji-mart-title-label"},Ka={key:0,class:"emoji-mart-preview-skins"};function Va(_,a,r,n,s,u){const g=S("emoji"),d=S("skins");return p(),b("div",Ha,[r.emoji?(p(),b(H,{key:0},[y("div",La,[M(g,{data:r.data,emoji:r.emoji,native:r.emojiProps.native,skin:r.emojiProps.skin,set:r.emojiProps.set},null,8,["data","emoji","native","skin","set"])]),y("div",Wa,[y("div",Ia,T(r.emoji.name),1),y("div",Ra,[(p(!0),b(H,null,Y(u.emojiShortNames,l=>(p(),b("span",{key:l,class:"emoji-mart-preview-shortname"},":"+T(l)+":",1))),128))]),y("div",Na,[(p(!0),b(H,null,Y(u.emojiEmoticons,l=>(p(),b("span",{key:l,class:"emoji-mart-preview-emoticon"},T(l),1))),128))])])],64)):(p(),b(H,{key:1},[y("div",Ga,[M(g,{data:r.data,emoji:r.idleEmoji,native:r.emojiProps.native,skin:r.emojiProps.skin,set:r.emojiProps.set},null,8,["data","emoji","native","skin","set"])]),y("div",Ua,[y("span",$a,T(r.title),1)]),r.showSkinTones?(p(),b("div",Ka,[M(d,{skin:r.skinProps.skin,onChange:a[0]||(a[0]=l=>r.onSkinChange(l))},null,8,["skin"])])):L("",!0)],64))])}const Ja=$(Ta,[["render",Va]]),Ya={props:{data:{type:Object,required:!0},i18n:{type:Object,required:!0},autoFocus:{type:Boolean,default:!1},onSearch:{type:Function,required:!0},onArrowLeft:{type:Function,required:!1},onArrowRight:{type:Function,required:!1},onArrowDown:{type:Function,required:!1},onArrowUp:{type:Function,required:!1},onEnter:{type:Function,required:!1}},emits:["search","enter","arrowUp","arrowDown","arrowRight","arrowLeft"],data(){return{value:""}},computed:{emojiIndex(){return this.data}},watch:{value(){this.$emit("search",this.value)}},methods:{clear(){this.value=""}},mounted(){let _=this.$el.querySelector("input");this.autoFocus&&_.focus()}},Za={class:"emoji-mart-search"},Qa=["placeholder"];function Xa(_,a,r,n,s,u){return p(),b("div",Za,[Ye(y("input",{type:"text",placeholder:r.i18n.search,role:"textbox","aria-autocomplete":"list","aria-owns":"emoji-mart-list","aria-label":"Search for an emoji","aria-describedby":"emoji-mart-search-description",onKeydown:[a[0]||(a[0]=z(g=>_.$emit("arrowLeft",g),["left"])),a[1]||(a[1]=z(()=>_.$emit("arrowRight"),["right"])),a[2]||(a[2]=z(()=>_.$emit("arrowDown"),["down"])),a[3]||(a[3]=z(g=>_.$emit("arrowUp",g),["up"])),a[4]||(a[4]=z(()=>_.$emit("enter"),["enter"]))],"onUpdate:modelValue":a[5]||(a[5]=g=>s.value=g)},null,40,Qa),[[xt,s.value]]),a[6]||(a[6]=y("span",{class:"hidden",id:"emoji-picker-search-description"},"Use the left, right, up and down arrow keys to navigate the emoji search results.",-1))])}const ei=$(Ya,[["render",Xa]]);var ti=typeof window<"u";ti&&(function(){for(var _=0,a=["ms","moz","webkit","o"],r=0;r<a.length&&!window.requestAnimationFrame;++r)window.requestAnimationFrame=window[a[r]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[a[r]+"CancelAnimationFrame"]||window[a[r]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(n,s){var u=new Date().getTime(),g=Math.max(0,16-(u-_)),d=window.setTimeout(function(){n(u+g)},g);return _=u+g,d}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(n){clearTimeout(n)})})();class ai{constructor(a){this._vm=a,this._data=a.data,this._perLine=a.perLine,this._categories=[],this._categories.push(...this._data.categories()),this._categories=this._categories.filter(r=>r.emojis.length>0),this._categories[0].first=!0,Object.freeze(this._categories),this.activeCategory=this._categories[0],this.searchEmojis=null,this.previewEmoji=null,this.previewEmojiCategoryIdx=0,this.previewEmojiIdx=-1}onScroll(){const a=this._vm.$refs.scroll;if(!a)return;const r=a.scrollTop;let n=this.filteredCategories[0];for(let s=0,u=this.filteredCategories.length;s<u;s++){let g=this.filteredCategories[s],d=this._vm.getCategoryComponent(s);if(d&&d.$el.offsetTop-50>r)break;n=g}this.activeCategory=n}get allCategories(){return this._categories}get filteredCategories(){return this.searchEmojis?[{id:"search",name:"Search",emojis:this.searchEmojis}]:this._categories.filter(a=>a.emojis.length>0)}get previewEmojiCategory(){return this.previewEmojiCategoryIdx>=0?this.filteredCategories[this.previewEmojiCategoryIdx]:null}onAnchorClick(a){if(this.searchEmojis)return;let r=this.filteredCategories.indexOf(a),n=this._vm.getCategoryComponent(r),s=()=>{if(n){let u=n.$el.offsetTop;a.first&&(u=0),this._vm.$refs.scroll.scrollTop=u}};this._vm.infiniteScroll?s():this.activeCategory=this.filteredCategories[r]}onSearch(a){let r=this._data.search(a,this.maxSearchResults);this.searchEmojis=r,this.previewEmojiCategoryIdx=0,this.previewEmojiIdx=0,this.updatePreviewEmoji()}onEmojiEnter(a){this.previewEmoji=a,this.previewEmojiIdx=-1,this.previewEmojiCategoryIdx=-1}onEmojiLeave(a){this.previewEmoji=null}onArrowLeft(){this.previewEmojiIdx>0?this.previewEmojiIdx-=1:(this.previewEmojiCategoryIdx-=1,this.previewEmojiCategoryIdx<0?this.previewEmojiCategoryIdx=0:this.previewEmojiIdx=this.filteredCategories[this.previewEmojiCategoryIdx].emojis.length-1),this.updatePreviewEmoji()}onArrowRight(){this.previewEmojiIdx<this.emojisLength(this.previewEmojiCategoryIdx)-1?this.previewEmojiIdx+=1:(this.previewEmojiCategoryIdx+=1,this.previewEmojiCategoryIdx>=this.filteredCategories.length?this.previewEmojiCategoryIdx=this.filteredCategories.length-1:this.previewEmojiIdx=0),this.updatePreviewEmoji()}onArrowDown(){if(this.previewEmojiIdx==-1)return this.onArrowRight();const a=this.filteredCategories[this.previewEmojiCategoryIdx].emojis.length;let r=this._perLine;this.previewEmojiIdx+r>a&&(r=a%this._perLine);for(let n=0;n<r;n++)this.onArrowRight();this.updatePreviewEmoji()}onArrowUp(){let a=this._perLine;this.previewEmojiIdx-a<0&&(this.previewEmojiCategoryIdx>0?a=this.filteredCategories[this.previewEmojiCategoryIdx-1].emojis.length%this._perLine:a=0);for(let r=0;r<a;r++)this.onArrowLeft();this.updatePreviewEmoji()}updatePreviewEmoji(){this.previewEmoji=this.filteredCategories[this.previewEmojiCategoryIdx].emojis[this.previewEmojiIdx],this._vm.$nextTick(()=>{const a=this._vm.$refs.scroll,r=a.querySelector(".emoji-mart-emoji-selected"),n=a.offsetTop-a.offsetHeight;r&&r.offsetTop+r.offsetHeight>n+a.scrollTop&&(a.scrollTop+=r.offsetHeight),r&&r.offsetTop<a.scrollTop&&(a.scrollTop-=r.offsetHeight)})}emojisLength(a){return a==-1?0:this.filteredCategories[a].emojis.length}}const ii={search:"Search",notfound:"No Emoji Found",categories:{search:"Search Results",recent:"Frequently Used",smileys:"Smileys & Emotion",people:"People & Body",nature:"Animals & Nature",foods:"Food & Drink",activity:"Activity",places:"Travel & Places",objects:"Objects",symbols:"Symbols",flags:"Flags",custom:"Custom"}},ri={props:{...ka,data:{type:Object,required:!0}},emits:["select","skin-change"],data(){return{activeSkin:this.skin||Q.get("skin")||this.defaultSkin,view:new ai(this)}},computed:{customStyles(){return{width:this.calculateWidth+"px",...this.pickerStyles}},emojiProps(){return{native:this.native,skin:this.activeSkin,set:this.set,emojiTooltip:this.emojiTooltip,emojiSize:this.emojiSize,selectedEmoji:this.view.previewEmoji,selectedEmojiCategory:this.view.previewEmojiCategory,onEnter:this.onEmojiEnter.bind(this),onLeave:this.onEmojiLeave.bind(this),onClick:this.onEmojiClick.bind(this)}},skinProps(){return{skin:this.activeSkin}},calculateWidth(){return this.perLine*(this.emojiSize+12)+12+2+la()},filteredCategories(){return this.view.filteredCategories},mergedI18n(){return Object.freeze(rt(ii,this.i18n))},idleEmoji(){try{return this.data.emoji(this.emoji)}catch(_){return console.error("Default preview emoji `"+this.emoji+"` is not available, check the Picker `emoji` property"),console.error(_),this.data.firstEmoji()}},isSearching(){return this.view.searchEmojis!=null}},watch:{skin(){this.onSkinChange(this.skin)}},methods:{onScroll(){this.infiniteScroll&&!this.waitingForPaint&&(this.waitingForPaint=!0,window.requestAnimationFrame(this.onScrollPaint.bind(this)))},onScrollPaint(){this.waitingForPaint=!1,this.view.onScroll()},onAnchorClick(_){this.view.onAnchorClick(_)},onSearch(_){this.view.onSearch(_)},onEmojiEnter(_){this.view.onEmojiEnter(_)},onEmojiLeave(_){this.view.onEmojiLeave(_)},onArrowLeft(_){const a=this.view.previewEmojiIdx;this.view.onArrowLeft(),_&&this.view.previewEmojiIdx!==a&&_.preventDefault()},onArrowRight(){this.view.onArrowRight()},onArrowDown(){this.view.onArrowDown()},onArrowUp(_){this.view.onArrowUp(),_.preventDefault()},onEnter(){this.view.previewEmoji&&(this.$emit("select",this.view.previewEmoji),ye.add(this.view.previewEmoji))},onEmojiClick(_){this.$emit("select",_),ye.add(_)},onTextSelect(_){_.stopPropagation()},onSkinChange(_){this.activeSkin=_,Q.update({skin:_}),this.$emit("skin-change",_)},getCategoryComponent(_){let a=this.$refs["categories_"+_];return a&&"0"in a?a[0]:a}},components:{Anchors:ga,Category:Sa,Preview:Ja,Search:ei}},_i={key:0,class:"emoji-mart-bar emoji-mart-bar-anchors"},ui={id:"emoji-mart-list",ref:"scrollContent",role:"listbox","aria-expanded":"true"},oi={key:0,class:"emoji-mart-bar emoji-mart-bar-preview"};function ni(_,a,r,n,s,u){const g=S("anchors"),d=S("search"),l=S("category"),C=S("preview");return p(),b("section",{class:"emoji-mart emoji-mart-static",style:Z(u.customStyles)},[_.showCategories?(p(),b("div",_i,[M(g,{data:r.data,i18n:u.mergedI18n,color:_.color,categories:s.view.allCategories,"active-category":s.view.activeCategory,onClick:u.onAnchorClick},null,8,["data","i18n","color","categories","active-category","onClick"])])):L("",!0),ie(_.$slots,"searchTemplate",{data:r.data,i18n:_.i18n,autoFocus:_.autoFocus,onSearch:u.onSearch},()=>[_.showSearch?(p(),re(d,{key:0,ref:"search",data:r.data,i18n:u.mergedI18n,"auto-focus":_.autoFocus,"on-search":u.onSearch,onSearch:u.onSearch,onArrowLeft:u.onArrowLeft,onArrowRight:u.onArrowRight,onArrowDown:u.onArrowDown,onArrowUp:u.onArrowUp,onEnter:u.onEnter,onSelect:u.onTextSelect},null,8,["data","i18n","auto-focus","on-search","onSearch","onArrowLeft","onArrowRight","onArrowDown","onArrowUp","onEnter","onSelect"])):L("",!0)]),y("div",{role:"tabpanel",class:"emoji-mart-scroll",ref:"scroll",onScroll:a[0]||(a[0]=(...w)=>u.onScroll&&u.onScroll(...w))},[y("div",ui,[ie(_.$slots,"customCategory"),(p(!0),b(H,null,Y(s.view.filteredCategories,(w,A)=>Ye((p(),re(l,{ref_for:!0,ref:"categories_"+A,key:w.id,data:r.data,i18n:u.mergedI18n,id:w.id,name:w.name,emojis:w.emojis,"emoji-props":u.emojiProps},null,8,["data","i18n","id","name","emojis","emoji-props"])),[[Bt,_.infiniteScroll||w==s.view.activeCategory||u.isSearching]])),128))],512)],544),ie(_.$slots,"previewTemplate",{data:r.data,title:_.title,emoji:s.view.previewEmoji,idleEmoji:u.idleEmoji,showSkinTones:_.showSkinTones,emojiProps:u.emojiProps,skinProps:u.skinProps,onSkinChange:u.onSkinChange},()=>[_.showPreview?(p(),b("div",oi,[M(C,{data:r.data,title:_.title,emoji:s.view.previewEmoji,"idle-emoji":u.idleEmoji,"show-skin-tones":_.showSkinTones,"emoji-props":u.emojiProps,"skin-props":u.skinProps,"on-skin-change":u.onSkinChange},null,8,["data","title","emoji","idle-emoji","show-skin-tones","emoji-props","skin-props","on-skin-change"])])):L("",!0)])],4)}const si=$(ri,[["render",ni]]);var ke={exports:{}},gi=ke.exports,Ve;function Fi(){return Ve||(Ve=1,(function(_,a){(function(r,n){_.exports=n()})(typeof self<"u"?self:gi,(function(){return(function(){var r={537:function(){typeof window<"u"&&(function(){for(var g=0,d=["ms","moz","webkit","o"],l=0;l<d.length&&!window.requestAnimationFrame;++l)window.requestAnimationFrame=window[d[l]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[d[l]+"CancelAnimationFrame"]||window[d[l]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(C,w){var A=new Date().getTime(),B=Math.max(0,16-(A-g)),k=window.setTimeout((function(){C(A+B)}),B);return g=A+B,k}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(C){clearTimeout(C)})})()}},n={};function s(g){var d=n[g];if(d!==void 0)return d.exports;var l=n[g]={exports:{}};return r[g](l,l.exports,s),l.exports}s.d=function(g,d){for(var l in d)s.o(d,l)&&!s.o(g,l)&&Object.defineProperty(g,l,{enumerable:!0,get:d[l]})},s.o=function(g,d){return Object.prototype.hasOwnProperty.call(g,d)},s.r=function(g){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(g,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(g,"__esModule",{value:!0})};var u={};return(function(){s.r(u),s.d(u,{Anchors:function(){return xe},Category:function(){return He},Emoji:function(){return Fe},EmojiData:function(){return se},EmojiIndex:function(){return ht},EmojiView:function(){return ge},Picker:function(){return Dt},Preview:function(){return We},Search:function(){return Ie},Skins:function(){return Le},frequently:function(){return ee},sanitize:function(){return Pe},store:function(){return B},uncompress:function(){return je}});var g,d,l="emoji-mart",C=JSON,w=typeof window<"u"&&"localStorage"in window;function A(e,t){if(d)d(e,t);else{if(!w)return;try{window.localStorage["".concat(l,".").concat(e)]=C.stringify(t)}catch{}}}var B={update:function(e){for(var t in e)A(t,e[t])},set:A,get:function(e){if(g)return g(e);if(w){try{var t=window.localStorage["".concat(l,".").concat(e)]}catch{return}return t?JSON.parse(t):void 0}},setNamespace:function(e){l=e},setHandlers:function(e){e||(e={}),g=e.getter,d=e.setter}};function k(e){return k=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},k(e)}function E(e,t){(t==null||t>e.length)&&(t=e.length);for(var i=0,o=new Array(t);i<t;i++)o[i]=e[i];return o}var I={name:"a",unified:"b",non_qualified:"c",has_img_apple:"d",has_img_google:"e",has_img_twitter:"f",has_img_facebook:"h",keywords:"j",sheet:"k",emoticons:"l",text:"m",short_names:"n",added_in:"o"},R=function(e){var t=[],i=function(o,F){o&&(Array.isArray(o)?o:[o]).forEach((function(f){(F?f.split(/[-|_|\s]+/):[f]).forEach((function(h){h=h.toLowerCase(),t.indexOf(h)==-1&&t.push(h)}))}))};return i(e.short_names,!0),i(e.name,!0),i(e.keywords,!1),i(e.emoticons,!1),t.join(",")};function X(e){var t,i=(function(f,h){var c=typeof Symbol<"u"&&f[Symbol.iterator]||f["@@iterator"];if(!c){if(Array.isArray(f)||(c=(function(x,G){if(x){if(typeof x=="string")return E(x,G);var O=Object.prototype.toString.call(x).slice(8,-1);return O==="Object"&&x.constructor&&(O=x.constructor.name),O==="Map"||O==="Set"?Array.from(x):O==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(O)?E(x,G):void 0}})(f))||h){c&&(f=c);var m=0,D=function(){};return{s:D,n:function(){return m>=f.length?{done:!0}:{done:!1,value:f[m++]}},e:function(x){throw x},f:D}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var q,K=!0,V=!1;return{s:function(){c=c.call(f)},n:function(){var x=c.next();return K=x.done,x},e:function(x){V=!0,q=x},f:function(){try{K||c.return==null||c.return()}finally{if(V)throw q}}}})(Object.getOwnPropertyNames(e));try{for(i.s();!(t=i.n()).done;){var o=t.value,F=e[o];e[o]=F&&k(F)==="object"?X(F):F}}catch(f){i.e(f)}finally{i.f()}return Object.freeze(e)}var v,ue,je=function(e){if(!e.compressed)return e;for(var t in e.compressed=!1,e.emojis){var i=e.emojis[t];for(var o in I)i[o]=i[I[o]],delete i[I[o]];i.short_names||(i.short_names=[]),i.short_names.unshift(t),i.sheet_x=i.sheet[0],i.sheet_y=i.sheet[1],delete i.sheet,i.text||(i.text=""),i.added_in||(i.added_in=6),i.added_in=i.added_in.toFixed(1),i.search=R(i)}return X(e)},oe=["+1","grinning","kissing_heart","heart_eyes","laughing","stuck_out_tongue_winking_eye","sweat_smile","joy","scream","disappointed","unamused","weary","sob","sunglasses","heart","hankey"],ne={};function Ce(){ue=!0,v=B.get("frequently")}var ee={add:function(e){ue||Ce();var t=e.id;v||(v=ne),v[t]||(v[t]=0),v[t]+=1,B.set("last",t),B.set("frequently",v)},get:function(e){if(ue||Ce(),!v){ne={};for(var t=[],i=Math.min(e,oe.length),o=0;o<i;o++)ne[oe[o]]=parseInt((i-o)/4,10)+1,t.push(oe[o]);return t}var F=e,f=[];for(var h in v)v.hasOwnProperty(h)&&f.push(h);var c=f.sort((function(D,q){return v[D]-v[q]})).reverse().slice(0,F),m=B.get("last");return m&&c.indexOf(m)==-1&&(c.pop(),c.push(m)),c}},ot={activity:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M12 0C5.373 0 0 5.372 0 12c0 6.627 5.373 12 12 12 6.628 0 12-5.373 12-12 0-6.628-5.372-12-12-12m9.949 11H17.05c.224-2.527 1.232-4.773 1.968-6.113A9.966 9.966 0 0 1 21.949 11M13 11V2.051a9.945 9.945 0 0 1 4.432 1.564c-.858 1.491-2.156 4.22-2.392 7.385H13zm-2 0H8.961c-.238-3.165-1.536-5.894-2.393-7.385A9.95 9.95 0 0 1 11 2.051V11zm0 2v8.949a9.937 9.937 0 0 1-4.432-1.564c.857-1.492 2.155-4.221 2.393-7.385H11zm4.04 0c.236 3.164 1.534 5.893 2.392 7.385A9.92 9.92 0 0 1 13 21.949V13h2.04zM4.982 4.887C5.718 6.227 6.726 8.473 6.951 11h-4.9a9.977 9.977 0 0 1 2.931-6.113M2.051 13h4.9c-.226 2.527-1.233 4.771-1.969 6.113A9.972 9.972 0 0 1 2.051 13m16.967 6.113c-.735-1.342-1.744-3.586-1.968-6.113h4.899a9.961 9.961 0 0 1-2.931 6.113"/></svg>',custom:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><g transform="translate(2.000000, 1.000000)"><rect id="Rectangle" x="8" y="0" width="3" height="21" rx="1.5"></rect><rect id="Rectangle" transform="translate(9.843, 10.549) rotate(60) translate(-9.843, -10.549) " x="8.343" y="0.049" width="3" height="21" rx="1.5"></rect><rect id="Rectangle" transform="translate(9.843, 10.549) rotate(-60) translate(-9.843, -10.549) " x="8.343" y="0.049" width="3" height="21" rx="1.5"></rect></g></svg>',flags:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M0 0l6.084 24H8L1.916 0zM21 5h-4l-1-4H4l3 12h3l1 4h13L21 5zM6.563 3h7.875l2 8H8.563l-2-8zm8.832 10l-2.856 1.904L12.063 13h3.332zM19 13l-1.5-6h1.938l2 8H16l3-2z"/></svg>',foods:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M17 4.978c-1.838 0-2.876.396-3.68.934.513-1.172 1.768-2.934 4.68-2.934a1 1 0 0 0 0-2c-2.921 0-4.629 1.365-5.547 2.512-.064.078-.119.162-.18.244C11.73 1.838 10.798.023 9.207.023 8.579.022 7.85.306 7 .978 5.027 2.54 5.329 3.902 6.492 4.999 3.609 5.222 0 7.352 0 12.969c0 4.582 4.961 11.009 9 11.009 1.975 0 2.371-.486 3-1 .629.514 1.025 1 3 1 4.039 0 9-6.418 9-11 0-5.953-4.055-8-7-8M8.242 2.546c.641-.508.943-.523.965-.523.426.169.975 1.405 1.357 3.055-1.527-.629-2.741-1.352-2.98-1.846.059-.112.241-.356.658-.686M15 21.978c-1.08 0-1.21-.109-1.559-.402l-.176-.146c-.367-.302-.816-.452-1.266-.452s-.898.15-1.266.452l-.176.146c-.347.292-.477.402-1.557.402-2.813 0-7-5.389-7-9.009 0-5.823 4.488-5.991 5-5.991 1.939 0 2.484.471 3.387 1.251l.323.276a1.995 1.995 0 0 0 2.58 0l.323-.276c.902-.78 1.447-1.251 3.387-1.251.512 0 5 .168 5 6 0 3.617-4.187 9-7 9"/></svg>',nature:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M15.5 8a1.5 1.5 0 1 0 .001 3.001A1.5 1.5 0 0 0 15.5 8M8.5 8a1.5 1.5 0 1 0 .001 3.001A1.5 1.5 0 0 0 8.5 8"/><path d="M18.933 0h-.027c-.97 0-2.138.787-3.018 1.497-1.274-.374-2.612-.51-3.887-.51-1.285 0-2.616.133-3.874.517C7.245.79 6.069 0 5.093 0h-.027C3.352 0 .07 2.67.002 7.026c-.039 2.479.276 4.238 1.04 5.013.254.258.882.677 1.295.882.191 3.177.922 5.238 2.536 6.38.897.637 2.187.949 3.2 1.102C8.04 20.6 8 20.795 8 21c0 1.773 2.35 3 4 3 1.648 0 4-1.227 4-3 0-.201-.038-.393-.072-.586 2.573-.385 5.435-1.877 5.925-7.587.396-.22.887-.568 1.104-.788.763-.774 1.079-2.534 1.04-5.013C23.929 2.67 20.646 0 18.933 0M3.223 9.135c-.237.281-.837 1.155-.884 1.238-.15-.41-.368-1.349-.337-3.291.051-3.281 2.478-4.972 3.091-5.031.256.015.731.27 1.265.646-1.11 1.171-2.275 2.915-2.352 5.125-.133.546-.398.858-.783 1.313M12 22c-.901 0-1.954-.693-2-1 0-.654.475-1.236 1-1.602V20a1 1 0 1 0 2 0v-.602c.524.365 1 .947 1 1.602-.046.307-1.099 1-2 1m3-3.48v.02a4.752 4.752 0 0 0-1.262-1.02c1.092-.516 2.239-1.334 2.239-2.217 0-1.842-1.781-2.195-3.977-2.195-2.196 0-3.978.354-3.978 2.195 0 .883 1.148 1.701 2.238 2.217A4.8 4.8 0 0 0 9 18.539v-.025c-1-.076-2.182-.281-2.973-.842-1.301-.92-1.838-3.045-1.853-6.478l.023-.041c.496-.826 1.49-1.45 1.804-3.102 0-2.047 1.357-3.631 2.362-4.522C9.37 3.178 10.555 3 11.948 3c1.447 0 2.685.192 3.733.57 1 .9 2.316 2.465 2.316 4.48.313 1.651 1.307 2.275 1.803 3.102.035.058.068.117.102.178-.059 5.967-1.949 7.01-4.902 7.19m6.628-8.202c-.037-.065-.074-.13-.113-.195a7.587 7.587 0 0 0-.739-.987c-.385-.455-.648-.768-.782-1.313-.076-2.209-1.241-3.954-2.353-5.124.531-.376 1.004-.63 1.261-.647.636.071 3.044 1.764 3.096 5.031.027 1.81-.347 3.218-.37 3.235"/></svg>',objects:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M12 0a9 9 0 0 0-5 16.482V21s2.035 3 5 3 5-3 5-3v-4.518A9 9 0 0 0 12 0zm0 2c3.86 0 7 3.141 7 7s-3.14 7-7 7-7-3.141-7-7 3.14-7 7-7zM9 17.477c.94.332 1.946.523 3 .523s2.06-.19 3-.523v.834c-.91.436-1.925.689-3 .689a6.924 6.924 0 0 1-3-.69v-.833zm.236 3.07A8.854 8.854 0 0 0 12 21c.965 0 1.888-.167 2.758-.451C14.155 21.173 13.153 22 12 22c-1.102 0-2.117-.789-2.764-1.453z"/><path d="M14.745 12.449h-.004c-.852-.024-1.188-.858-1.577-1.824-.421-1.061-.703-1.561-1.182-1.566h-.009c-.481 0-.783.497-1.235 1.537-.436.982-.801 1.811-1.636 1.791l-.276-.043c-.565-.171-.853-.691-1.284-1.794-.125-.313-.202-.632-.27-.913-.051-.213-.127-.53-.195-.634C7.067 9.004 7.039 9 6.99 9A1 1 0 0 1 7 7h.01c1.662.017 2.015 1.373 2.198 2.134.486-.981 1.304-2.058 2.797-2.075 1.531.018 2.28 1.153 2.731 2.141l.002-.008C14.944 8.424 15.327 7 16.979 7h.032A1 1 0 1 1 17 9h-.011c-.149.076-.256.474-.319.709a6.484 6.484 0 0 1-.311.951c-.429.973-.79 1.789-1.614 1.789"/></svg>',smileys:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0m0 22C6.486 22 2 17.514 2 12S6.486 2 12 2s10 4.486 10 10-4.486 10-10 10"/><path d="M8 7a2 2 0 1 0-.001 3.999A2 2 0 0 0 8 7M16 7a2 2 0 1 0-.001 3.999A2 2 0 0 0 16 7M15.232 15c-.693 1.195-1.87 2-3.349 2-1.477 0-2.655-.805-3.347-2H15m3-2H6a6 6 0 1 0 12 0"/></svg>',people:'<svg xmlns:svg="http://www.w3.org/2000/svg" height="24" width="24" viewBox="0 0 24 24"> <path id="path3814" d="m 3.3591089,21.17726 c 0.172036,0.09385 4.265994,2.29837 8.8144451,2.29837 4.927767,0 8.670894,-2.211883 8.82782,-2.306019 0.113079,-0.06785 0.182268,-0.190051 0.182267,-0.321923 0,-3.03119 -0.929494,-5.804936 -2.617196,-7.810712 -1.180603,-1.403134 -2.661918,-2.359516 -4.295699,-2.799791 4.699118,-2.236258 3.102306,-9.28617162 -2.097191,-9.28617162 -5.1994978,0 -6.7963103,7.04991362 -2.097192,9.28617162 -1.6337821,0.440275 -3.1150971,1.396798 -4.2956991,2.799791 -1.687703,2.005776 -2.617196,4.779522 -2.617196,7.810712 1.2e-6,0.137378 0.075039,0.263785 0.195641,0.329572 z M 8.0439319,5.8308783 C 8.0439309,2.151521 12.492107,0.30955811 15.093491,2.9109411 17.694874,5.5123241 15.852911,9.9605006 12.173554,9.9605 9.8938991,9.9579135 8.0465186,8.1105332 8.0439319,5.8308783 Z m -1.688782,7.6894977 c 1.524535,-1.811449 3.5906601,-2.809035 5.8184041,-2.809035 2.227744,0 4.293869,0.997586 5.818404,2.809035 1.533639,1.822571 2.395932,4.339858 2.439152,7.108301 -0.803352,0.434877 -4.141636,2.096112 -8.257556,2.096112 -3.8062921,0 -7.3910861,-1.671043 -8.2573681,-2.104981 0.04505,-2.765017 0.906968,-5.278785 2.438964,-7.099432 z" /> <path id="path3816" d="M 12.173828 0.38867188 C 9.3198513 0.38867187 7.3770988 2.3672285 6.8652344 4.6308594 C 6.4218608 6.5916015 7.1153562 8.7676117 8.9648438 10.126953 C 7.6141249 10.677376 6.3550511 11.480944 5.3496094 12.675781 C 3.5629317 14.799185 2.6015625 17.701475 2.6015625 20.847656 C 2.6015654 21.189861 2.7894276 21.508002 3.0898438 21.671875 C 3.3044068 21.788925 7.4436239 24.039062 12.173828 24.039062 C 17.269918 24.039062 21.083568 21.776786 21.291016 21.652344 C 21.57281 21.483266 21.746097 21.176282 21.746094 20.847656 C 21.746094 17.701475 20.78277 14.799185 18.996094 12.675781 C 17.990455 11.480591 16.733818 10.675362 15.382812 10.125 C 17.231132 8.7655552 17.925675 6.5910701 17.482422 4.6308594 C 16.970557 2.3672285 15.027805 0.38867188 12.173828 0.38867188 z M 12.792969 2.3007812 C 13.466253 2.4161792 14.125113 2.7383941 14.695312 3.3085938 C 15.835712 4.4489931 15.985604 5.9473549 15.46875 7.1953125 C 14.951896 8.4432701 13.786828 9.3984378 12.173828 9.3984375 C 10.197719 9.3961954 8.607711 7.806187 8.6054688 5.8300781 C 8.6054683 4.2170785 9.5606362 3.0520102 10.808594 2.5351562 C 11.432573 2.2767293 12.119685 2.1853833 12.792969 2.3007812 z M 12.173828 11.273438 C 14.233647 11.273438 16.133674 12.185084 17.5625 13.882812 C 18.93069 15.508765 19.698347 17.776969 19.808594 20.283203 C 18.807395 20.800235 15.886157 22.162109 12.173828 22.162109 C 8.7614632 22.162109 5.6245754 20.787069 4.5390625 20.265625 C 4.6525896 17.766717 5.4203315 15.504791 6.7851562 13.882812 C 8.2139827 12.185084 10.11401 11.273438 12.173828 11.273438 z " /> </svg>',places:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M6.5 12C5.122 12 4 13.121 4 14.5S5.122 17 6.5 17 9 15.879 9 14.5 7.878 12 6.5 12m0 3c-.275 0-.5-.225-.5-.5s.225-.5.5-.5.5.225.5.5-.225.5-.5.5M17.5 12c-1.378 0-2.5 1.121-2.5 2.5s1.122 2.5 2.5 2.5 2.5-1.121 2.5-2.5-1.122-2.5-2.5-2.5m0 3c-.275 0-.5-.225-.5-.5s.225-.5.5-.5.5.225.5.5-.225.5-.5.5"/><path d="M22.482 9.494l-1.039-.346L21.4 9h.6c.552 0 1-.439 1-.992 0-.006-.003-.008-.003-.008H23c0-1-.889-2-1.984-2h-.642l-.731-1.717C19.262 3.012 18.091 2 16.764 2H7.236C5.909 2 4.738 3.012 4.357 4.283L3.626 6h-.642C1.889 6 1 7 1 8h.003S1 8.002 1 8.008C1 8.561 1.448 9 2 9h.6l-.043.148-1.039.346a2.001 2.001 0 0 0-1.359 2.097l.751 7.508a1 1 0 0 0 .994.901H3v1c0 1.103.896 2 2 2h2c1.104 0 2-.897 2-2v-1h6v1c0 1.103.896 2 2 2h2c1.104 0 2-.897 2-2v-1h1.096a.999.999 0 0 0 .994-.901l.751-7.508a2.001 2.001 0 0 0-1.359-2.097M6.273 4.857C6.402 4.43 6.788 4 7.236 4h9.527c.448 0 .834.43.963.857L19.313 9H4.688l1.585-4.143zM7 21H5v-1h2v1zm12 0h-2v-1h2v1zm2.189-3H2.811l-.662-6.607L3 11h18l.852.393L21.189 18z"/></svg>',recent:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M13 4h-2l-.001 7H9v2h2v2h2v-2h4v-2h-4z"/><path d="M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0m0 22C6.486 22 2 17.514 2 12S6.486 2 12 2s10 4.486 10 10-4.486 10-10 10"/></svg>',symbols:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M0 0h11v2H0zM4 11h3V6h4V4H0v2h4zM15.5 17c1.381 0 2.5-1.116 2.5-2.493s-1.119-2.493-2.5-2.493S13 13.13 13 14.507 14.119 17 15.5 17m0-2.986c.276 0 .5.222.5.493 0 .272-.224.493-.5.493s-.5-.221-.5-.493.224-.493.5-.493M21.5 19.014c-1.381 0-2.5 1.116-2.5 2.493S20.119 24 21.5 24s2.5-1.116 2.5-2.493-1.119-2.493-2.5-2.493m0 2.986a.497.497 0 0 1-.5-.493c0-.271.224-.493.5-.493s.5.222.5.493a.497.497 0 0 1-.5.493M22 13l-9 9 1.513 1.5 8.99-9.009zM17 11c2.209 0 4-1.119 4-2.5V2s.985-.161 1.498.949C23.01 4.055 23 6 23 6s1-1.119 1-3.135C24-.02 21 0 21 0h-2v6.347A5.853 5.853 0 0 0 17 6c-2.209 0-4 1.119-4 2.5s1.791 2.5 4 2.5M10.297 20.482l-1.475-1.585a47.54 47.54 0 0 1-1.442 1.129c-.307-.288-.989-1.016-2.045-2.183.902-.836 1.479-1.466 1.729-1.892s.376-.871.376-1.336c0-.592-.273-1.178-.818-1.759-.546-.581-1.329-.871-2.349-.871-1.008 0-1.79.293-2.344.879-.556.587-.832 1.181-.832 1.784 0 .813.419 1.748 1.256 2.805-.847.614-1.444 1.208-1.794 1.784a3.465 3.465 0 0 0-.523 1.833c0 .857.308 1.56.924 2.107.616.549 1.423.823 2.42.823 1.173 0 2.444-.379 3.813-1.137L8.235 24h2.819l-2.09-2.383 1.333-1.135zm-6.736-6.389a1.02 1.02 0 0 1 .73-.286c.31 0 .559.085.747.254a.849.849 0 0 1 .283.659c0 .518-.419 1.112-1.257 1.784-.536-.651-.805-1.231-.805-1.742a.901.901 0 0 1 .302-.669M3.74 22c-.427 0-.778-.116-1.057-.349-.279-.232-.418-.487-.418-.766 0-.594.509-1.288 1.527-2.083.968 1.134 1.717 1.946 2.248 2.438-.921.507-1.686.76-2.3.76"/></svg>'};function N(e,t,i,o,F,f,h,c){var m,D=typeof e=="function"?e.options:e;return t&&(D.render=t,D.staticRenderFns=i,D._compiled=!0),{exports:e,options:D}}var nt=N({props:{i18n:{type:Object,required:!0},color:{type:String},categories:{type:Array,required:!0},activeCategory:{type:Object,default:function(){return{}}}},emits:["click"],created:function(){this.svgs=ot}},(function(){var e=this,t=e._self._c;return t("div",{staticClass:"emoji-mart-anchors",attrs:{role:"tablist"}},e._l(e.categories,(function(i){return t("button",{key:i.id,class:{"emoji-mart-anchor":!0,"emoji-mart-anchor-selected":i.id==e.activeCategory.id},style:{color:i.id==e.activeCategory.id?e.color:""},attrs:{role:"tab",type:"button","aria-label":i.name,"aria-selected":i.id==e.activeCategory.id,"data-title":e.i18n.categories[i.id]},on:{click:function(o){return e.$emit("click",i)}}},[t("div",{attrs:{"aria-hidden":"true"},domProps:{innerHTML:e._s(e.svgs[i.id])}}),e._v(" "),t("span",{staticClass:"emoji-mart-anchor-bar",style:{backgroundColor:e.color},attrs:{"aria-hidden":"true"}})])})),0)}),[]),xe=nt.exports;function te(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Be(e){var t=(function(i,o){if(k(i)!="object"||!i)return i;var F=i[Symbol.toPrimitive];if(F!==void 0){var f=F.call(i,"string");if(k(f)!="object")return f;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(i)})(e);return k(t)=="symbol"?t:t+""}function st(e,t){for(var i=0;i<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,Be(o.key),o)}}function ae(e,t,i){return t&&st(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}var gt=String.fromCodePoint||function(){var e,t,i=[],o=-1,F=arguments.length;if(!F)return"";for(var f="";++o<F;){var h=Number(arguments[o]);if(!isFinite(h)||h<0||h>1114111||Math.floor(h)!=h)throw RangeError("Invalid code point: "+h);h<=65535?i.push(h):(e=55296+((h-=65536)>>10),t=h%1024+56320,i.push(e,t)),(o+1===F||i.length>16384)&&(f+=String.fromCharCode.apply(null,i),i.length=0)}return f};function Ft(e){var t=e.split("-").map((function(i){return"0x".concat(i)}));return gt.apply(null,t)}function qe(e){return e.reduce((function(t,i){return t.indexOf(i)===-1&&t.push(i),t}),[])}function ft(e,t){var i=qe(e),o=qe(t);return i.filter((function(F){return o.indexOf(F)>=0}))}function ve(e,t){var i={};for(var o in e){var F=e[o],f=F;Object.prototype.hasOwnProperty.call(t,o)&&(f=t[o]),k(f)==="object"&&(f=ve(F,f)),i[o]=f}return i}function Ae(e,t){var i=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!i){if(Array.isArray(e)||(i=(function(m,D){if(m){if(typeof m=="string")return Se(m,D);var q=Object.prototype.toString.call(m).slice(8,-1);return q==="Object"&&m.constructor&&(q=m.constructor.name),q==="Map"||q==="Set"?Array.from(m):q==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(q)?Se(m,D):void 0}})(e))||t){i&&(e=i);var o=0,F=function(){};return{s:F,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(m){throw m},f:F}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var f,h=!0,c=!1;return{s:function(){i=i.call(e)},n:function(){var m=i.next();return h=m.done,m},e:function(m){c=!0,f=m},f:function(){try{h||i.return==null||i.return()}finally{if(c)throw f}}}}function Se(e,t){(t==null||t>e.length)&&(t=e.length);for(var i=0,o=new Array(t);i<t;i++)o[i]=e[i];return o}var dt=/^(?:\:([^\:]+)\:)(?:\:skin-tone-(\d)\:)?$/,Me=["1F3FA","1F3FB","1F3FC","1F3FD","1F3FE","1F3FF"],ht=(function(){return ae((function e(t){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=i.emojisToShowFilter,F=i.include,f=i.exclude,h=i.custom,c=i.recent,m=i.recentLength,D=m===void 0?20:m;te(this,e),this._data=je(t),this._emojisFilter=o||null,this._include=F||null,this._exclude=f||null,this._custom=h||[],this._recent=c||ee.get(D),this._emojis={},this._nativeEmojis={},this._emoticons={},this._categories=[],this._recentCategory={id:"recent",name:"Recent",emojis:[]},this._customCategory={id:"custom",name:"Custom",emojis:[]},this._searchIndex={},this.buildIndex(),Object.freeze(this)}),[{key:"buildIndex",value:function(){var e=this,t=this._data.categories;if(this._include&&(t=(t=t.filter((function(f){return e._include.includes(f.id)}))).sort((function(f,h){var c=e._include.indexOf(f.id),m=e._include.indexOf(h.id);return c<m?-1:c>m?1:0}))),t.forEach((function(f){if(e.isCategoryNeeded(f.id)){var h={id:f.id,name:f.name,emojis:[]};f.emojis.forEach((function(c){var m=e.addEmoji(c);m&&h.emojis.push(m)})),h.emojis.length&&e._categories.push(h)}})),this.isCategoryNeeded("custom")){if(this._custom.length>0){var i,o=Ae(this._custom);try{for(o.s();!(i=o.n()).done;){var F=i.value;this.addCustomEmoji(F)}}catch(f){o.e(f)}finally{o.f()}}this._customCategory.emojis.length&&this._categories.push(this._customCategory)}this.isCategoryNeeded("recent")&&(this._recent.length&&this._recent.map((function(f){var h,c=Ae(e._customCategory.emojis);try{for(c.s();!(h=c.n()).done;){var m=h.value;if(m.id===f)return void e._recentCategory.emojis.push(m)}}catch(D){c.e(D)}finally{c.f()}e.hasEmoji(f)&&e._recentCategory.emojis.push(e.emoji(f))})),this._recentCategory.emojis.length&&this._categories.unshift(this._recentCategory))}},{key:"findEmoji",value:function(e,t){var i=e.match(dt);if(i&&(e=i[1],i[2]&&(t=parseInt(i[2],10))),this._data.aliases.hasOwnProperty(e)&&(e=this._data.aliases[e]),this._emojis.hasOwnProperty(e)){var o=this._emojis[e];return t?o.getSkin(t):o}return this._nativeEmojis.hasOwnProperty(e)?this._nativeEmojis[e]:null}},{key:"categories",value:function(){return this._categories}},{key:"emoji",value:function(e){this._data.aliases.hasOwnProperty(e)&&(e=this._data.aliases[e]);var t=this._emojis[e];if(!t)throw new Error("Can not find emoji by id: "+e);return t}},{key:"firstEmoji",value:function(){var e=this._emojis[Object.keys(this._emojis)[0]];if(!e)throw new Error("Can not get first emoji");return e}},{key:"hasEmoji",value:function(e){return this._data.aliases.hasOwnProperty(e)&&(e=this._data.aliases[e]),!!this._emojis[e]}},{key:"nativeEmoji",value:function(e){return this._nativeEmojis.hasOwnProperty(e)?this._nativeEmojis[e]:null}},{key:"search",value:function(e,t){var i=this;if(t||(t=75),!e.length)return null;if(e=="-"||e=="-1")return[this.emoji("-1")];var o,F=e.toLowerCase().split(/[\s|,|\-|_]+/);F.length>2&&(F=[F[0],F[1]]),o=F.map((function(h){for(var c=i._emojis,m=i._searchIndex,D=0,q=function(){var V=h[K];if(D++,m[V]||(m[V]={}),!(m=m[V]).results){var x={};for(var G in m.results=[],m.emojis={},c){var O=c[G],wt=O._data.search,Ne=h.substr(0,D),Ge=wt.indexOf(Ne);if(Ge!=-1){var Ue=Ge+1;Ne==G&&(Ue=0),m.results.push(O),m.emojis[G]=O,x[G]=Ue}}m.results.sort((function(Et,jt){return x[Et.id]-x[jt.id]}))}c=m.emojis},K=0;K<h.length;K++)q();return m.results})).filter((function(h){return h}));var f=null;return(f=o.length>1?ft.apply(null,o):o.length?o[0]:[])&&f.length>t&&(f=f.slice(0,t)),f}},{key:"addCustomEmoji",value:function(e){var t=Object.assign({},e,{id:e.short_names[0],custom:!0});t.search||(t.search=R(t));var i=new se(t);return this._emojis[i.id]=i,this._customCategory.emojis.push(i),i}},{key:"addEmoji",value:function(e){var t=this,i=this._data.emojis[e];if(!this.isEmojiNeeded(i))return!1;var o=new se(i);if(this._emojis[e]=o,o.native&&(this._nativeEmojis[o.native]=o),o._skins)for(var F in o._skins){var f=o._skins[F];f.native&&(this._nativeEmojis[f.native]=f)}return o.emoticons&&o.emoticons.forEach((function(h){t._emoticons[h]||(t._emoticons[h]=e)})),o}},{key:"isCategoryNeeded",value:function(e){var t=!this._include||!this._include.length||this._include.indexOf(e)>-1,i=!(!this._exclude||!this._exclude.length)&&this._exclude.indexOf(e)>-1;return!(!t||i)}},{key:"isEmojiNeeded",value:function(e){return!this._emojisFilter||this._emojisFilter(e)}}])})(),se=(function(){return ae((function e(t){if(te(this,e),this._data=Object.assign({},t),this._skins=null,this._data.skin_variations)for(var i in this._skins=[],Me){var o=Me[i],F=this._data.skin_variations[o],f=Object.assign({},t);for(var h in F)f[h]=F[h];delete f.skin_variations,f.skin_tone=parseInt(i)+1,this._skins.push(new e(f))}for(var c in this._sanitized=Pe(this._data),this._sanitized)this[c]=this._sanitized[c];this.short_names=this._data.short_names,this.short_name=this._data.short_names[0],Object.freeze(this)}),[{key:"getSkin",value:function(e){return e&&e!="native"&&this._skins?this._skins[e-1]:this}},{key:"getPosition",value:function(){var e=+(1.6666666666666667*this._data.sheet_x).toFixed(2),t=+(100/60*this._data.sheet_y).toFixed(2);return"".concat(e,"% ").concat(t,"%")}},{key:"ariaLabel",value:function(){return[this.native].concat(this.short_names).filter(Boolean).join(", ")}}])})(),ge=(function(){return ae((function e(t,i,o,F,f,h,c){te(this,e),this._emoji=t,this._native=F,this._skin=i,this._set=o,this._fallback=f,this.canRender=this._canRender(),this.cssClass=this._cssClass(),this.cssStyle=this._cssStyle(c),this.content=this._content(),this.title=h===!0?t.short_name:null,this.ariaLabel=t.ariaLabel(),Object.freeze(this)}),[{key:"getEmoji",value:function(){return this._emoji.getSkin(this._skin)}},{key:"_canRender",value:function(){return this._isCustom()||this._isNative()||this._hasEmoji()||this._fallback}},{key:"_cssClass",value:function(){return["emoji-set-"+this._set,"emoji-type-"+this._emojiType()]}},{key:"_cssStyle",value:function(e){var t={};return this._isCustom()?t={backgroundImage:"url("+this.getEmoji()._data.imageUrl+")",backgroundSize:"100%",width:e+"px",height:e+"px"}:this._hasEmoji()&&!this._isNative()&&(t={backgroundPosition:this.getEmoji().getPosition()}),e&&(t=this._isNative()?Object.assign(t,{fontSize:Math.round(.95*e*10)/10+"px"}):Object.assign(t,{width:e+"px",height:e+"px"})),t}},{key:"_content",value:function(){return this._isCustom()?"":this._isNative()?this.getEmoji().native:this._hasEmoji()?"":this._fallback?this._fallback(this.getEmoji()):null}},{key:"_isNative",value:function(){return this._native}},{key:"_isCustom",value:function(){return this.getEmoji().custom}},{key:"_hasEmoji",value:function(){if(!this.getEmoji()._data)return!1;var e=this.getEmoji()._data["has_img_"+this._set];return e===void 0||e}},{key:"_emojiType",value:function(){return this._isCustom()?"custom":this._isNative()?"native":this._hasEmoji()?"image":"fallback"}}])})();function Pe(e){var t=e.name,i=e.short_names,o=e.skin_tone,F=e.skin_variations,f=e.emoticons,h=e.unified,c=e.custom,m=e.imageUrl,D=e.id||i[0],q=":".concat(D,":");return c?{id:D,name:t,colons:q,emoticons:f,custom:c,imageUrl:m}:(o&&(q+=":skin-tone-".concat(o,":")),{id:D,name:t,colons:q,emoticons:f,unified:h.toLowerCase(),skin:o||(F?1:null),native:Ft(h)})}function ze(e,t,i){return(t=Be(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}var lt={native:{type:Boolean,default:!1},tooltip:{type:Boolean,default:!1},fallback:{type:Function},skin:{type:Number,default:1},set:{type:String,default:"apple"},emoji:{type:[String,Object],required:!0},size:{type:Number,default:null},tag:{type:String,default:"span"}},mt={perLine:{type:Number,default:9},maxSearchResults:{type:Number,default:75},emojiSize:{type:Number,default:24},title:{type:String,default:"Emoji Mart™"},emoji:{type:String,default:"department_store"},color:{type:String,default:"#ae65c5"},set:{type:String,default:"apple"},skin:{type:Number,default:null},defaultSkin:{type:Number,default:1},native:{type:Boolean,default:!1},emojiTooltip:{type:Boolean,default:!1},autoFocus:{type:Boolean,default:!1},i18n:{type:Object,default:function(){return{}}},showPreview:{type:Boolean,default:!0},showSearch:{type:Boolean,default:!0},showCategories:{type:Boolean,default:!0},showSkinTones:{type:Boolean,default:!0},infiniteScroll:{type:Boolean,default:!0},pickerStyles:{type:Object,default:function(){return{}}}};function Oe(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(F){return Object.getOwnPropertyDescriptor(e,F).enumerable}))),i.push.apply(i,o)}return i}function Te(e){for(var t=1;t<arguments.length;t++){var i=arguments[t]!=null?arguments[t]:{};t%2?Oe(Object(i),!0).forEach((function(o){ze(e,o,i[o])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):Oe(Object(i)).forEach((function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(i,o))}))}return e}var Fe=N({props:Te(Te({},lt),{},{data:{type:Object,required:!0}}),emits:["click","mouseenter","mouseleave"],computed:{view:function(){return new ge(this.emojiObject,this.skin,this.set,this.native,this.fallback,this.tooltip,this.size)},sanitizedData:function(){return this.emojiObject._sanitized},title:function(){return this.tooltip?this.emojiObject.short_name:null},emojiObject:function(){return typeof this.emoji=="string"?this.data.findEmoji(this.emoji):this.emoji}},created:function(){},methods:{onClick:function(){this.$emit("click",this.emojiObject)},onMouseEnter:function(){this.$emit("mouseenter",this.emojiObject)},onMouseLeave:function(){this.$emit("mouseleave",this.emojiObject)}}},(function(){var e=this,t=e._self._c;return e.view.canRender?t(e.tag,{tag:"component",staticClass:"emoji-mart-emoji",attrs:{title:e.view.title,"aria-label":e.view.ariaLabel,"data-title":e.title},on:{mouseenter:e.onMouseEnter,mouseleave:e.onMouseLeave,click:e.onClick}},[t("span",{class:e.view.cssClass,style:e.view.cssStyle},[e._v(e._s(e.view.content))])]):e._e()}),[]).exports,He=N({props:{data:{type:Object,required:!0},i18n:{type:Object,required:!0},id:{type:String,required:!0},name:{type:String,required:!0},emojis:{type:Array},emojiProps:{type:Object,required:!0}},methods:{activeClass:function(e){return this.emojiProps.selectedEmoji&&this.emojiProps.selectedEmojiCategory&&this.emojiProps.selectedEmoji.id==e.id&&this.emojiProps.selectedEmojiCategory.id==this.id?"emoji-mart-emoji-selected":""}},computed:{isVisible:function(){return!!this.emojis},isSearch:function(){return this.name=="Search"},hasResults:function(){return this.emojis.length>0},emojiObjects:function(){var e=this;return this.emojis.map((function(t){return{emojiObject:t,emojiView:new ge(t,e.emojiProps.skin,e.emojiProps.set,e.emojiProps.native,e.emojiProps.fallback,e.emojiProps.emojiTooltip,e.emojiProps.emojiSize)}}))}},components:{Emoji:Fe}},(function(){var e=this,t=e._self._c;return e.isVisible&&(e.isSearch||e.hasResults)?t("section",{class:{"emoji-mart-category":!0,"emoji-mart-no-results":!e.hasResults},attrs:{"aria-label":e.i18n.categories[e.id]}},[t("div",{staticClass:"emoji-mart-category-label"},[t("h3",{staticClass:"emoji-mart-category-label"},[e._v(e._s(e.i18n.categories[e.id]))])]),e._v(" "),e._l(e.emojiObjects,(function(i){var o=i.emojiObject,F=i.emojiView;return[F.canRender?t("button",{key:o.id,staticClass:"emoji-mart-emoji",class:e.activeClass(o),attrs:{"aria-label":F.ariaLabel,role:"option","aria-selected":"false","aria-posinset":"1","aria-setsize":"1812",type:"button","data-title":o.short_name,title:F.title},on:{mouseenter:function(f){e.emojiProps.onEnter(F.getEmoji())},mouseleave:function(f){e.emojiProps.onLeave(F.getEmoji())},click:function(f){e.emojiProps.onClick(F.getEmoji())}}},[t("span",{class:F.cssClass,style:F.cssStyle},[e._v(e._s(F.content))])]):e._e()]})),e._v(" "),e.hasResults?e._e():t("div",[t("emoji",{attrs:{data:e.data,emoji:"sleuth_or_spy",native:e.emojiProps.native,skin:e.emojiProps.skin,set:e.emojiProps.set}}),e._v(" "),t("div",{staticClass:"emoji-mart-no-results-label"},[e._v(e._s(e.i18n.notfound))])],1)],2):e._e()}),[]).exports,Le=N({props:{skin:{type:Number,required:!0}},emits:["change"],data:function(){return{opened:!1}},methods:{onClick:function(e){this.opened&&e!=this.skin&&this.$emit("change",e),this.opened=!this.opened}}},(function(){var e=this,t=e._self._c;return t("div",{class:{"emoji-mart-skin-swatches":!0,"emoji-mart-skin-swatches-opened":e.opened}},e._l(6,(function(i){return t("span",{key:i,class:{"emoji-mart-skin-swatch":!0,"emoji-mart-skin-swatch-selected":e.skin==i}},[t("span",{class:"emoji-mart-skin emoji-mart-skin-tone-"+i,on:{click:function(o){return e.onClick(i)}}})])})),0)}),[]).exports,We=N({props:{data:{type:Object,required:!0},title:{type:String,required:!0},emoji:{type:[String,Object]},idleEmoji:{type:[String,Object],required:!0},showSkinTones:{type:Boolean,default:!0},emojiProps:{type:Object,required:!0},skinProps:{type:Object,required:!0},onSkinChange:{type:Function,required:!0}},computed:{emojiData:function(){return this.emoji?this.emoji:{}},emojiShortNames:function(){return this.emojiData.short_names},emojiEmoticons:function(){return this.emojiData.emoticons}},components:{Emoji:Fe,Skins:Le}},(function(){var e=this,t=e._self._c;return t("div",{staticClass:"emoji-mart-preview"},[e.emoji?[t("div",{staticClass:"emoji-mart-preview-emoji"},[t("emoji",{attrs:{data:e.data,emoji:e.emoji,native:e.emojiProps.native,skin:e.emojiProps.skin,set:e.emojiProps.set}})],1),e._v(" "),t("div",{staticClass:"emoji-mart-preview-data"},[t("div",{staticClass:"emoji-mart-preview-name"},[e._v(e._s(e.emoji.name))]),e._v(" "),t("div",{staticClass:"emoji-mart-preview-shortnames"},e._l(e.emojiShortNames,(function(i){return t("span",{key:i,staticClass:"emoji-mart-preview-shortname"},[e._v(":"+e._s(i)+":")])})),0),e._v(" "),t("div",{staticClass:"emoji-mart-preview-emoticons"},e._l(e.emojiEmoticons,(function(i){return t("span",{key:i,staticClass:"emoji-mart-preview-emoticon"},[e._v(e._s(i))])})),0)])]:[t("div",{staticClass:"emoji-mart-preview-emoji"},[t("emoji",{attrs:{data:e.data,emoji:e.idleEmoji,native:e.emojiProps.native,skin:e.emojiProps.skin,set:e.emojiProps.set}})],1),e._v(" "),t("div",{staticClass:"emoji-mart-preview-data"},[t("span",{staticClass:"emoji-mart-title-label"},[e._v(e._s(e.title))])]),e._v(" "),e.showSkinTones?t("div",{staticClass:"emoji-mart-preview-skins"},[t("skins",{attrs:{skin:e.skinProps.skin},on:{change:function(i){return e.onSkinChange(i)}}})],1):e._e()]],2)}),[]).exports,ct=N({props:{data:{type:Object,required:!0},i18n:{type:Object,required:!0},autoFocus:{type:Boolean,default:!1},onSearch:{type:Function,required:!0},onArrowLeft:{type:Function,required:!1},onArrowRight:{type:Function,required:!1},onArrowDown:{type:Function,required:!1},onArrowUp:{type:Function,required:!1},onEnter:{type:Function,required:!1}},emits:["search","enter","arrowUp","arrowDown","arrowRight","arrowLeft"],data:function(){return{value:""}},computed:{emojiIndex:function(){return this.data}},watch:{value:function(){this.$emit("search",this.value)}},methods:{clear:function(){this.value=""}},mounted:function(){var e=this.$el.querySelector("input");this.autoFocus&&e.focus()}},(function(){var e=this,t=e._self._c;return t("div",{staticClass:"emoji-mart-search"},[t("input",{directives:[{name:"model",rawName:"v-model",value:e.value,expression:"value"}],attrs:{type:"text",placeholder:e.i18n.search,role:"textbox","aria-autocomplete":"list","aria-owns":"emoji-mart-list","aria-label":"Search for an emoji","aria-describedby":"emoji-mart-search-description"},domProps:{value:e.value},on:{keydown:[function(i){return!i.type.indexOf("key")&&e._k(i.keyCode,"left",37,i.key,["Left","ArrowLeft"])||"button"in i&&i.button!==0?null:function(o){return e.$emit("arrowLeft",o)}.apply(null,arguments)},function(i){return!i.type.indexOf("key")&&e._k(i.keyCode,"right",39,i.key,["Right","ArrowRight"])||"button"in i&&i.button!==2?null:function(){return e.$emit("arrowRight")}.apply(null,arguments)},function(i){return!i.type.indexOf("key")&&e._k(i.keyCode,"down",40,i.key,["Down","ArrowDown"])?null:function(){return e.$emit("arrowDown")}.apply(null,arguments)},function(i){return!i.type.indexOf("key")&&e._k(i.keyCode,"up",38,i.key,["Up","ArrowUp"])?null:function(o){return e.$emit("arrowUp",o)}.apply(null,arguments)},function(i){return!i.type.indexOf("key")&&e._k(i.keyCode,"enter",13,i.key,"Enter")?null:function(){return e.$emit("enter")}.apply(null,arguments)}],input:function(i){i.target.composing||(e.value=i.target.value)}}}),e._v(" "),t("span",{staticClass:"hidden",attrs:{id:"emoji-picker-search-description"}},[e._v(`Use the left, right, up and down arrow keys to navigate the emoji search + results.`)])])}),[]),Ie=ct.exports;function fe(e,t){(t==null||t>e.length)&&(t=e.length);for(var i=0,o=new Array(t);i<t;i++)o[i]=e[i];return o}s(537);var pt=(function(){return ae((function e(t){var i,o;te(this,e),this._vm=t,this._data=t.data,this._perLine=t.perLine,this._categories=[],(i=this._categories).push.apply(i,(function(F){if(Array.isArray(F))return fe(F)})(o=this._data.categories())||(function(F){if(typeof Symbol<"u"&&F[Symbol.iterator]!=null||F["@@iterator"]!=null)return Array.from(F)})(o)||(function(F,f){if(F){if(typeof F=="string")return fe(F,f);var h=Object.prototype.toString.call(F).slice(8,-1);return h==="Object"&&F.constructor&&(h=F.constructor.name),h==="Map"||h==="Set"?Array.from(F):h==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(h)?fe(F,f):void 0}})(o)||(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.`)})()),this._categories=this._categories.filter((function(F){return F.emojis.length>0})),this._categories[0].first=!0,Object.freeze(this._categories),this.activeCategory=this._categories[0],this.searchEmojis=null,this.previewEmoji=null,this.previewEmojiCategoryIdx=0,this.previewEmojiIdx=-1}),[{key:"onScroll",value:function(){var e=this._vm.$refs.scroll;if(e){for(var t=e.scrollTop,i=this.filteredCategories[0],o=0,F=this.filteredCategories.length;o<F;o++){var f=this.filteredCategories[o],h=this._vm.getCategoryComponent(o);if(h&&h.$el.offsetTop-50>t)break;i=f}this.activeCategory=i}}},{key:"allCategories",get:function(){return this._categories}},{key:"filteredCategories",get:function(){return this.searchEmojis?[{id:"search",name:"Search",emojis:this.searchEmojis}]:this._categories.filter((function(e){return e.emojis.length>0}))}},{key:"previewEmojiCategory",get:function(){return this.previewEmojiCategoryIdx>=0?this.filteredCategories[this.previewEmojiCategoryIdx]:null}},{key:"onAnchorClick",value:function(e){var t=this;if(!this.searchEmojis){var i=this.filteredCategories.indexOf(e),o=this._vm.getCategoryComponent(i);this._vm.infiniteScroll?(function(){if(o){var F=o.$el.offsetTop;e.first&&(F=0),t._vm.$refs.scroll.scrollTop=F}})():this.activeCategory=this.filteredCategories[i]}}},{key:"onSearch",value:function(e){var t=this._data.search(e,this.maxSearchResults);this.searchEmojis=t,this.previewEmojiCategoryIdx=0,this.previewEmojiIdx=0,this.updatePreviewEmoji()}},{key:"onEmojiEnter",value:function(e){this.previewEmoji=e,this.previewEmojiIdx=-1,this.previewEmojiCategoryIdx=-1}},{key:"onEmojiLeave",value:function(e){this.previewEmoji=null}},{key:"onArrowLeft",value:function(){this.previewEmojiIdx>0?this.previewEmojiIdx-=1:(this.previewEmojiCategoryIdx-=1,this.previewEmojiCategoryIdx<0?this.previewEmojiCategoryIdx=0:this.previewEmojiIdx=this.filteredCategories[this.previewEmojiCategoryIdx].emojis.length-1),this.updatePreviewEmoji()}},{key:"onArrowRight",value:function(){this.previewEmojiIdx<this.emojisLength(this.previewEmojiCategoryIdx)-1?this.previewEmojiIdx+=1:(this.previewEmojiCategoryIdx+=1,this.previewEmojiCategoryIdx>=this.filteredCategories.length?this.previewEmojiCategoryIdx=this.filteredCategories.length-1:this.previewEmojiIdx=0),this.updatePreviewEmoji()}},{key:"onArrowDown",value:function(){if(this.previewEmojiIdx==-1)return this.onArrowRight();var e=this.filteredCategories[this.previewEmojiCategoryIdx].emojis.length,t=this._perLine;this.previewEmojiIdx+t>e&&(t=e%this._perLine);for(var i=0;i<t;i++)this.onArrowRight();this.updatePreviewEmoji()}},{key:"onArrowUp",value:function(){var e=this._perLine;this.previewEmojiIdx-e<0&&(e=this.previewEmojiCategoryIdx>0?this.filteredCategories[this.previewEmojiCategoryIdx-1].emojis.length%this._perLine:0);for(var t=0;t<e;t++)this.onArrowLeft();this.updatePreviewEmoji()}},{key:"updatePreviewEmoji",value:function(){var e=this;this.previewEmoji=this.filteredCategories[this.previewEmojiCategoryIdx].emojis[this.previewEmojiIdx],this._vm.$nextTick((function(){var t=e._vm.$refs.scroll,i=t.querySelector(".emoji-mart-emoji-selected"),o=t.offsetTop-t.offsetHeight;i&&i.offsetTop+i.offsetHeight>o+t.scrollTop&&(t.scrollTop+=i.offsetHeight),i&&i.offsetTop<t.scrollTop&&(t.scrollTop-=i.offsetHeight)}))}},{key:"emojisLength",value:function(e){return e==-1?0:this.filteredCategories[e].emojis.length}}])})();function Re(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(F){return Object.getOwnPropertyDescriptor(e,F).enumerable}))),i.push.apply(i,o)}return i}function de(e){for(var t=1;t<arguments.length;t++){var i=arguments[t]!=null?arguments[t]:{};t%2?Re(Object(i),!0).forEach((function(o){ze(e,o,i[o])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):Re(Object(i)).forEach((function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(i,o))}))}return e}var bt={search:"Search",notfound:"No Emoji Found",categories:{search:"Search Results",recent:"Frequently Used",smileys:"Smileys & Emotion",people:"People & Body",nature:"Animals & Nature",foods:"Food & Drink",activity:"Activity",places:"Travel & Places",objects:"Objects",symbols:"Symbols",flags:"Flags",custom:"Custom"}},yt={props:de(de({},mt),{},{data:{type:Object,required:!0}}),emits:["select","skin-change"],data:function(){return{activeSkin:this.skin||B.get("skin")||this.defaultSkin,view:new pt(this)}},computed:{customStyles:function(){return de({width:this.calculateWidth+"px"},this.pickerStyles)},emojiProps:function(){return{native:this.native,skin:this.activeSkin,set:this.set,emojiTooltip:this.emojiTooltip,emojiSize:this.emojiSize,selectedEmoji:this.view.previewEmoji,selectedEmojiCategory:this.view.previewEmojiCategory,onEnter:this.onEmojiEnter.bind(this),onLeave:this.onEmojiLeave.bind(this),onClick:this.onEmojiClick.bind(this)}},skinProps:function(){return{skin:this.activeSkin}},calculateWidth:function(){return this.perLine*(this.emojiSize+12)+12+2+(function(){if(typeof document>"u")return 0;var e=document.createElement("div");e.style.width="100px",e.style.height="100px",e.style.overflow="scroll",e.style.position="absolute",e.style.top="-9999px",document.body.appendChild(e);var t=e.offsetWidth-e.clientWidth;return document.body.removeChild(e),t})()},filteredCategories:function(){return this.view.filteredCategories},mergedI18n:function(){return Object.freeze(ve(bt,this.i18n))},idleEmoji:function(){try{return this.data.emoji(this.emoji)}catch(e){return console.error("Default preview emoji `"+this.emoji+"` is not available, check the Picker `emoji` property"),console.error(e),this.data.firstEmoji()}},isSearching:function(){return this.view.searchEmojis!=null}},watch:{skin:function(){this.onSkinChange(this.skin)}},methods:{onScroll:function(){this.infiniteScroll&&!this.waitingForPaint&&(this.waitingForPaint=!0,window.requestAnimationFrame(this.onScrollPaint.bind(this)))},onScrollPaint:function(){this.waitingForPaint=!1,this.view.onScroll()},onAnchorClick:function(e){this.view.onAnchorClick(e)},onSearch:function(e){this.view.onSearch(e)},onEmojiEnter:function(e){this.view.onEmojiEnter(e)},onEmojiLeave:function(e){this.view.onEmojiLeave(e)},onArrowLeft:function(e){var t=this.view.previewEmojiIdx;this.view.onArrowLeft(),e&&this.view.previewEmojiIdx!==t&&e.preventDefault()},onArrowRight:function(){this.view.onArrowRight()},onArrowDown:function(){this.view.onArrowDown()},onArrowUp:function(e){this.view.onArrowUp(),e.preventDefault()},onEnter:function(){this.view.previewEmoji&&(this.$emit("select",this.view.previewEmoji),ee.add(this.view.previewEmoji))},onEmojiClick:function(e){this.$emit("select",e),ee.add(e)},onTextSelect:function(e){e.stopPropagation()},onSkinChange:function(e){this.activeSkin=e,B.update({skin:e}),this.$emit("skin-change",e)},getCategoryComponent:function(e){var t=this.$refs["categories_"+e];return t&&"0"in t?t[0]:t}},components:{Anchors:xe,Category:He,Preview:We,Search:Ie}},kt=N(yt,(function(){var e=this,t=e._self._c;return t("section",{staticClass:"emoji-mart emoji-mart-static",style:e.customStyles},[e.showCategories?t("div",{staticClass:"emoji-mart-bar emoji-mart-bar-anchors"},[t("anchors",{attrs:{data:e.data,i18n:e.mergedI18n,color:e.color,categories:e.view.allCategories,"active-category":e.view.activeCategory},on:{click:e.onAnchorClick}})],1):e._e(),e._v(" "),e._t("searchTemplate",(function(){return[e.showSearch?t("search",{ref:"search",attrs:{data:e.data,i18n:e.mergedI18n,"auto-focus":e.autoFocus,"on-search":e.onSearch},on:{search:e.onSearch,arrowLeft:e.onArrowLeft,arrowRight:e.onArrowRight,arrowDown:e.onArrowDown,arrowUp:e.onArrowUp,enter:e.onEnter,select:e.onTextSelect}}):e._e()]}),{data:e.data,i18n:e.i18n,autoFocus:e.autoFocus,onSearch:e.onSearch}),e._v(" "),t("div",{ref:"scroll",staticClass:"emoji-mart-scroll",attrs:{role:"tabpanel"},on:{scroll:e.onScroll}},[t("div",{ref:"scrollContent",attrs:{id:"emoji-mart-list",role:"listbox","aria-expanded":"true"}},[e._t("customCategory"),e._v(" "),e._l(e.view.filteredCategories,(function(i,o){return t("category",{directives:[{name:"show",rawName:"v-show",value:e.infiniteScroll||i==e.view.activeCategory||e.isSearching,expression:"infiniteScroll || category == view.activeCategory || isSearching"}],key:i.id,ref:"categories_"+o,refInFor:!0,attrs:{data:e.data,i18n:e.mergedI18n,id:i.id,name:i.name,emojis:i.emojis,"emoji-props":e.emojiProps}})}))],2)]),e._v(" "),e._t("previewTemplate",(function(){return[e.showPreview?t("div",{staticClass:"emoji-mart-bar emoji-mart-bar-preview"},[t("preview",{attrs:{data:e.data,title:e.title,emoji:e.view.previewEmoji,"idle-emoji":e.idleEmoji,"show-skin-tones":e.showSkinTones,"emoji-props":e.emojiProps,"skin-props":e.skinProps,"on-skin-change":e.onSkinChange}})],1):e._e()]}),{data:e.data,title:e.title,emoji:e.view.previewEmoji,idleEmoji:e.idleEmoji,showSkinTones:e.showSkinTones,emojiProps:e.emojiProps,skinProps:e.skinProps,onSkinChange:e.onSkinChange})],2)}),[]),Dt=kt.exports})(),u})()}))})(ke)),ke.exports}Fi();const ut=Rt("nextcloud-vue").persist(!0).build();function fi(){const _=Number.parseInt(ut.getItem("NcEmojiPicker::currentSkinTone")??"1");return Math.min(Math.max(_,1),6)}function di(_){_=Math.min(Math.max(_,1),6),ut.setItem("NcEmojiPicker::currentSkinTone",_.toString())}const hi={name:"CircleIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},li=["aria-hidden","aria-label"],mi=["fill","width","height"],ci={d:"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z"},pi={key:0};function bi(_,a,r,n,s,u){return p(),b("span",Ze(_.$attrs,{"aria-hidden":r.title?null:"true","aria-label":r.title,class:"material-design-icon circle-icon",role:"img",onClick:a[0]||(a[0]=g=>_.$emit("click",g))}),[(p(),b("svg",{fill:r.fillColor,class:"material-design-icon__svg",width:r.size,height:r.size,viewBox:"0 0 24 24"},[y("path",ci,[r.title?(p(),b("title",pi,T(r.title),1)):L("",!0)])],8,mi))],16,li)}const yi=Qe(hi,[["render",bi]]);Ot(Wt,Lt,Ht,Tt);let me;const ki={search:j("Search emoji"),notfound:j("No emoji found"),categories:{search:j("Search results"),recent:j("Frequently used"),smileys:j("Smileys & Emotion"),people:j("People & Body"),nature:j("Animals & Nature"),foods:j("Food & Drink"),activity:j("Activities"),places:j("Travel & Places"),objects:j("Objects"),symbols:j("Symbols"),flags:j("Flags"),custom:j("Custom")}},Je=[new J(255,222,52,j("Neutral skin color")),new J(228,205,166,j("Light skin tone")),new J(250,221,192,j("Medium light skin tone")),new J(174,129,87,j("Medium skin tone")),new J(158,113,88,j("Medium dark skin tone")),new J(96,79,69,j("Dark skin tone"))],Di={name:"NcEmojiPicker",components:{IconCircle:yi,NcButton:Nt,NcColorPicker:It,NcPopover:Mt,NcTextField:Gt,Emoji:Ee,Picker:si},props:{activeSet:{type:String,default:"native"},showPreview:{type:Boolean,default:!1},allowUnselect:{type:Boolean,default:!1},selectedEmoji:{type:String,default:""},previewFallbackEmoji:{type:String,default:"grinning"},previewFallbackName:{type:String,default:j("Pick an emoji")},closeOnSelect:{type:Boolean,default:!0},container:{type:[Boolean,String,Object,Element],default:"body"}},emits:["select","selectData","unselect"],setup(){return me||(me=new pa(Jt)),{emojiIndex:me,skinTonePalette:Je,i18n:ki}},data(){const _=fi();return{currentColor:Je[_-1],currentSkinTone:_,search:"",open:!1}},computed:{native(){return this.activeSet==="native"}},created(){zt(()=>this.open)},methods:{t:j,clearSearch(){this.search="",this.$refs.search.focus()},onChangeSkinTone(_){const a=this.skinTonePalette.findIndex(r=>r.color.toLowerCase()===_.toLowerCase());a>-1&&(this.currentSkinTone=a+1,this.currentColor=this.skinTonePalette[a],di(this.currentSkinTone))},select(_){this.$emit("select",_.native),this.$emit("selectData",_),this.closeOnSelect&&(this.open=!1)},unselect(){this.$emit("unselect")},afterShow(){this.$refs.search.focus()},afterHide(){(!document.activeElement||this.$refs.picker.$el.contains(document.activeElement)||!Pt(document.activeElement))&&this.$refs.popover.$el.querySelector('button, [role="button"]')?.focus()},handleTabNavigationSkippingEmojis(_){const a=_.target,r=Array.from(this.$refs.picker.$el.querySelectorAll("button:not(.emoji-mart-emoji), input"));_.shiftKey?(r.findLast(n=>a.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_PRECEDING)||r.at(-1)).focus():(r.find(n=>a.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_FOLLOWING)||r[0]).focus()},async callPickerArrowHandlerWithScrollFix(_,a){this.$refs.picker[_](a),await this.$nextTick(),this.$refs.picker.$el.querySelector(".emoji-mart-emoji-selected")?.scrollIntoView({block:"center",inline:"center"})}}},wi={class:"nc-emoji-picker-container"},Ei={class:"search__wrapper"},ji={class:"emoji-mart-category-label"},Ci={class:"emoji-mart-category-label"};function xi(_,a,r,n,s,u){const g=S("NcTextField"),d=S("IconCircle"),l=S("NcButton"),C=S("NcColorPicker"),w=S("Emoji"),A=S("Picker"),B=S("NcPopover");return p(),re(B,{ref:"popover",shown:s.open,"onUpdate:shown":a[6]||(a[6]=k=>s.open=k),container:r.container,"popup-role":"dialog","no-focus-trap":!0,onAfterShow:u.afterShow,onAfterHide:u.afterHide},{trigger:U(k=>[ie(_.$slots,"default",At(St(k)),void 0,!0)]),default:U(()=>[y("div",wi,[M(A,Ze({ref:"picker",color:"var(--color-primary-element)",data:n.emojiIndex,emoji:r.previewFallbackEmoji,i18n:n.i18n,native:u.native,"emoji-size":20,"per-line":8,"picker-styles":{width:"320px"},"show-preview":r.showPreview,skin:s.currentSkinTone,"show-skin-tones":!1,title:r.previewFallbackName,role:"dialog","aria-modal":"true","aria-label":u.t("Emoji picker")},_.$attrs,{onKeydown:z(qt(u.handleTabNavigationSkippingEmojis,["prevent"]),["tab"]),onSelect:u.select}),vt({searchTemplate:U(({onSearch:k})=>[y("div",Ei,[M(g,{ref:"search",modelValue:s.search,"onUpdate:modelValue":[a[0]||(a[0]=E=>s.search=E),E=>k(s.search)],class:"search",label:u.t("Search"),"label-visible":!0,placeholder:n.i18n.search,"trailing-button-icon":"close","trailing-button-label":u.t("Clear search"),"show-trailing-button":s.search!=="",onKeydown:[a[1]||(a[1]=z(E=>u.callPickerArrowHandlerWithScrollFix("onArrowLeft",E),["left"])),a[2]||(a[2]=z(E=>u.callPickerArrowHandlerWithScrollFix("onArrowRight",E),["right"])),a[3]||(a[3]=z(E=>u.callPickerArrowHandlerWithScrollFix("onArrowDown",E),["down"])),a[4]||(a[4]=z(E=>u.callPickerArrowHandlerWithScrollFix("onArrowUp",E),["up"])),a[5]||(a[5]=z(E=>_.$refs.picker.onEnter(E),["enter"]))],onTrailingButtonClick:E=>{u.clearSearch(),k("")}},null,8,["modelValue","label","placeholder","trailing-button-label","show-trailing-button","onTrailingButtonClick","onUpdate:modelValue"]),M(C,{"palette-only":"",container:r.container,palette:n.skinTonePalette,"model-value":s.currentColor.color,"onUpdate:modelValue":u.onChangeSkinTone},{default:U(()=>[M(l,{"aria-label":u.t("Skin tone"),variant:"tertiary-no-background"},{icon:U(()=>[M(d,{style:Z({color:s.currentColor.color}),title:s.currentColor.name,size:20},null,8,["style","title"])]),_:1},8,["aria-label"])]),_:1},8,["container","palette","model-value","onUpdate:modelValue"])])]),_:2},[r.allowUnselect&&r.selectedEmoji?{name:"customCategory",fn:U(()=>[y("div",ji,[y("h3",Ci,T(u.t("Selected")),1)]),M(w,{class:"emoji-selected",data:n.emojiIndex,emoji:r.selectedEmoji,native:"",size:32,onClick:u.unselect},null,8,["data","emoji","onClick"]),M(w,{class:"emoji-delete",data:n.emojiIndex,emoji:":x:",native:"",size:10,onClick:u.unselect},null,8,["data","onClick"])]),key:"0"}:void 0]),1040,["data","emoji","i18n","native","show-preview","skin","title","aria-label","onKeydown","onSelect"])])]),_:3},8,["shown","container","onAfterShow","onAfterHide"])}const Ti=Qe(Di,[["render",xi],["__scopeId","data-v-f2f99131"]]);export{Ti as N}; +//# sourceMappingURL=NcEmojiPicker-pM4Pg2yq-CYkSkF_Y.chunk.mjs.map diff --git a/dist/NcEmojiPicker-pM4Pg2yq-C_Dpe77I.chunk.mjs.license b/dist/NcEmojiPicker-pM4Pg2yq-CYkSkF_Y.chunk.mjs.license similarity index 100% rename from dist/NcEmojiPicker-pM4Pg2yq-C_Dpe77I.chunk.mjs.license rename to dist/NcEmojiPicker-pM4Pg2yq-CYkSkF_Y.chunk.mjs.license diff --git a/dist/NcEmojiPicker-pM4Pg2yq-C_Dpe77I.chunk.mjs.map b/dist/NcEmojiPicker-pM4Pg2yq-CYkSkF_Y.chunk.mjs.map similarity index 99% rename from dist/NcEmojiPicker-pM4Pg2yq-C_Dpe77I.chunk.mjs.map rename to dist/NcEmojiPicker-pM4Pg2yq-CYkSkF_Y.chunk.mjs.map index ba49910cde3ef..c29a757338cbe 100644 --- a/dist/NcEmojiPicker-pM4Pg2yq-C_Dpe77I.chunk.mjs.map +++ b/dist/NcEmojiPicker-pM4Pg2yq-CYkSkF_Y.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"NcEmojiPicker-pM4Pg2yq-C_Dpe77I.chunk.mjs","sources":["../node_modules/emoji-mart-vue-fast/src/utils/store.js","../node_modules/emoji-mart-vue-fast/src/utils/data.js","../node_modules/emoji-mart-vue-fast/src/utils/frequently.js","../node_modules/emoji-mart-vue-fast/src/svgs/index.js","../node_modules/emoji-mart-vue-fast/src/components/anchors.vue","../node_modules/emoji-mart-vue-fast/src/polyfills/stringFromCodePoint.js","../node_modules/emoji-mart-vue-fast/src/utils/index.js","../node_modules/emoji-mart-vue-fast/src/utils/emoji-data.js","../node_modules/emoji-mart-vue-fast/src/utils/shared-props.js","../node_modules/emoji-mart-vue-fast/src/components/Emoji.vue","../node_modules/emoji-mart-vue-fast/src/components/category.vue","../node_modules/emoji-mart-vue-fast/src/components/skins.vue","../node_modules/emoji-mart-vue-fast/src/components/preview.vue","../node_modules/emoji-mart-vue-fast/src/components/search.vue","../node_modules/emoji-mart-vue-fast/src/vendor/raf-polyfill.js","../node_modules/emoji-mart-vue-fast/src/utils/picker.js","../node_modules/emoji-mart-vue-fast/src/components/Picker.vue","../node_modules/emoji-mart-vue-fast/dist/emoji-mart.js","../node_modules/@nextcloud/vue/dist/chunks/emoji-BY_D0V5K.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcEmojiPicker-pM4Pg2yq.mjs"],"sourcesContent":["var NAMESPACE = 'emoji-mart'\n\nconst _JSON = JSON\n\nvar isLocalStorageSupported =\n typeof window !== 'undefined' && 'localStorage' in window\n\nlet getter\nlet setter\n\nfunction setHandlers(handlers) {\n handlers || (handlers = {})\n\n getter = handlers.getter\n setter = handlers.setter\n}\n\nfunction setNamespace(namespace) {\n NAMESPACE = namespace\n}\n\nfunction update(state) {\n for (let key in state) {\n let value = state[key]\n set(key, value)\n }\n}\n\nfunction set(key, value) {\n if (setter) {\n setter(key, value)\n } else {\n if (!isLocalStorageSupported) return\n try {\n window.localStorage[`${NAMESPACE}.${key}`] = _JSON.stringify(value)\n } catch (e) {}\n }\n}\n\nfunction get(key) {\n if (getter) {\n return getter(key)\n } else {\n if (!isLocalStorageSupported) return\n try {\n var value = window.localStorage[`${NAMESPACE}.${key}`]\n } catch (e) {\n return\n }\n\n if (value) {\n return JSON.parse(value)\n }\n }\n}\n\nexport default { update, set, get, setNamespace, setHandlers }\n","const mapping = {\n name: 'a',\n unified: 'b',\n non_qualified: 'c',\n has_img_apple: 'd',\n has_img_google: 'e',\n has_img_twitter: 'f',\n has_img_facebook: 'h',\n keywords: 'j',\n sheet: 'k',\n emoticons: 'l',\n text: 'm',\n short_names: 'n',\n added_in: 'o',\n}\n\nconst buildSearch = (emoji) => {\n const search = []\n\n var addToSearch = (strings, split) => {\n if (!strings) {\n return\n }\n\n ;(Array.isArray(strings) ? strings : [strings]).forEach((string) => {\n ;(split ? string.split(/[-|_|\\s]+/) : [string]).forEach((s) => {\n s = s.toLowerCase()\n\n if (search.indexOf(s) == -1) {\n search.push(s)\n }\n })\n })\n }\n\n addToSearch(emoji.short_names, true)\n addToSearch(emoji.name, true)\n addToSearch(emoji.keywords, false)\n addToSearch(emoji.emoticons, false)\n\n return search.join(',')\n}\n\nfunction deepFreeze(object) {\n // Retrieve the property names defined on object\n var propNames = Object.getOwnPropertyNames(object)\n\n // Freeze properties before freezing self\n for (let name of propNames) {\n let value = object[name]\n object[name] =\n value && typeof value === 'object' ? deepFreeze(value) : value\n }\n return Object.freeze(object)\n}\n\nconst uncompress = (data) => {\n if (!data.compressed) {\n return data\n }\n data.compressed = false\n\n for (let id in data.emojis) {\n let emoji = data.emojis[id]\n\n for (let key in mapping) {\n emoji[key] = emoji[mapping[key]]\n delete emoji[mapping[key]]\n }\n\n if (!emoji.short_names) emoji.short_names = []\n emoji.short_names.unshift(id)\n\n emoji.sheet_x = emoji.sheet[0]\n emoji.sheet_y = emoji.sheet[1]\n delete emoji.sheet\n\n if (!emoji.text) emoji.text = ''\n\n if (!emoji.added_in) emoji.added_in = 6\n emoji.added_in = emoji.added_in.toFixed(1)\n\n emoji.search = buildSearch(emoji)\n }\n data = deepFreeze(data)\n return data\n}\n\nexport { buildSearch, uncompress }\n","import store from './store'\n\nconst DEFAULTS = [\n '+1',\n 'grinning',\n 'kissing_heart',\n 'heart_eyes',\n 'laughing',\n 'stuck_out_tongue_winking_eye',\n 'sweat_smile',\n 'joy',\n 'scream',\n 'disappointed',\n 'unamused',\n 'weary',\n 'sob',\n 'sunglasses',\n 'heart',\n 'hankey',\n]\n\nlet frequently, initialized\nlet defaults = {}\n\nfunction init() {\n initialized = true\n frequently = store.get('frequently')\n}\n\nfunction add(emoji) {\n if (!initialized) init()\n var { id } = emoji\n\n frequently || (frequently = defaults)\n frequently[id] || (frequently[id] = 0)\n frequently[id] += 1\n\n store.set('last', id)\n store.set('frequently', frequently)\n}\n\nfunction get(maxNumber) {\n if (!initialized) init()\n if (!frequently) {\n defaults = {}\n\n const result = []\n\n let defaultLength = Math.min(maxNumber, DEFAULTS.length)\n for (let i = 0; i < defaultLength; i++) {\n defaults[DEFAULTS[i]] = parseInt((defaultLength - i) / 4, 10) + 1\n result.push(DEFAULTS[i])\n }\n\n return result\n }\n\n const quantity = maxNumber\n const frequentlyKeys = []\n\n for (let key in frequently) {\n if (frequently.hasOwnProperty(key)) {\n frequentlyKeys.push(key)\n }\n }\n\n const sorted = frequentlyKeys\n .sort((a, b) => frequently[a] - frequently[b])\n .reverse()\n const sliced = sorted.slice(0, quantity)\n\n const last = store.get('last')\n\n if (last && sliced.indexOf(last) == -1) {\n sliced.pop()\n sliced.push(last)\n }\n\n return sliced\n}\n\nexport default { add, get }\n","const SVGs = {\n activity: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M12 0C5.373 0 0 5.372 0 12c0 6.627 5.373 12 12 12 6.628 0 12-5.373 12-12 0-6.628-5.372-12-12-12m9.949 11H17.05c.224-2.527 1.232-4.773 1.968-6.113A9.966 9.966 0 0 1 21.949 11M13 11V2.051a9.945 9.945 0 0 1 4.432 1.564c-.858 1.491-2.156 4.22-2.392 7.385H13zm-2 0H8.961c-.238-3.165-1.536-5.894-2.393-7.385A9.95 9.95 0 0 1 11 2.051V11zm0 2v8.949a9.937 9.937 0 0 1-4.432-1.564c.857-1.492 2.155-4.221 2.393-7.385H11zm4.04 0c.236 3.164 1.534 5.893 2.392 7.385A9.92 9.92 0 0 1 13 21.949V13h2.04zM4.982 4.887C5.718 6.227 6.726 8.473 6.951 11h-4.9a9.977 9.977 0 0 1 2.931-6.113M2.051 13h4.9c-.226 2.527-1.233 4.771-1.969 6.113A9.972 9.972 0 0 1 2.051 13m16.967 6.113c-.735-1.342-1.744-3.586-1.968-6.113h4.899a9.961 9.961 0 0 1-2.931 6.113\"/></svg>`,\n\n custom: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><g transform=\"translate(2.000000, 1.000000)\"><rect id=\"Rectangle\" x=\"8\" y=\"0\" width=\"3\" height=\"21\" rx=\"1.5\"></rect><rect id=\"Rectangle\" transform=\"translate(9.843, 10.549) rotate(60) translate(-9.843, -10.549) \" x=\"8.343\" y=\"0.049\" width=\"3\" height=\"21\" rx=\"1.5\"></rect><rect id=\"Rectangle\" transform=\"translate(9.843, 10.549) rotate(-60) translate(-9.843, -10.549) \" x=\"8.343\" y=\"0.049\" width=\"3\" height=\"21\" rx=\"1.5\"></rect></g></svg>`,\n\n flags: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M0 0l6.084 24H8L1.916 0zM21 5h-4l-1-4H4l3 12h3l1 4h13L21 5zM6.563 3h7.875l2 8H8.563l-2-8zm8.832 10l-2.856 1.904L12.063 13h3.332zM19 13l-1.5-6h1.938l2 8H16l3-2z\"/></svg>`,\n\n foods: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M17 4.978c-1.838 0-2.876.396-3.68.934.513-1.172 1.768-2.934 4.68-2.934a1 1 0 0 0 0-2c-2.921 0-4.629 1.365-5.547 2.512-.064.078-.119.162-.18.244C11.73 1.838 10.798.023 9.207.023 8.579.022 7.85.306 7 .978 5.027 2.54 5.329 3.902 6.492 4.999 3.609 5.222 0 7.352 0 12.969c0 4.582 4.961 11.009 9 11.009 1.975 0 2.371-.486 3-1 .629.514 1.025 1 3 1 4.039 0 9-6.418 9-11 0-5.953-4.055-8-7-8M8.242 2.546c.641-.508.943-.523.965-.523.426.169.975 1.405 1.357 3.055-1.527-.629-2.741-1.352-2.98-1.846.059-.112.241-.356.658-.686M15 21.978c-1.08 0-1.21-.109-1.559-.402l-.176-.146c-.367-.302-.816-.452-1.266-.452s-.898.15-1.266.452l-.176.146c-.347.292-.477.402-1.557.402-2.813 0-7-5.389-7-9.009 0-5.823 4.488-5.991 5-5.991 1.939 0 2.484.471 3.387 1.251l.323.276a1.995 1.995 0 0 0 2.58 0l.323-.276c.902-.78 1.447-1.251 3.387-1.251.512 0 5 .168 5 6 0 3.617-4.187 9-7 9\"/></svg>`,\n\n nature: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M15.5 8a1.5 1.5 0 1 0 .001 3.001A1.5 1.5 0 0 0 15.5 8M8.5 8a1.5 1.5 0 1 0 .001 3.001A1.5 1.5 0 0 0 8.5 8\"/><path d=\"M18.933 0h-.027c-.97 0-2.138.787-3.018 1.497-1.274-.374-2.612-.51-3.887-.51-1.285 0-2.616.133-3.874.517C7.245.79 6.069 0 5.093 0h-.027C3.352 0 .07 2.67.002 7.026c-.039 2.479.276 4.238 1.04 5.013.254.258.882.677 1.295.882.191 3.177.922 5.238 2.536 6.38.897.637 2.187.949 3.2 1.102C8.04 20.6 8 20.795 8 21c0 1.773 2.35 3 4 3 1.648 0 4-1.227 4-3 0-.201-.038-.393-.072-.586 2.573-.385 5.435-1.877 5.925-7.587.396-.22.887-.568 1.104-.788.763-.774 1.079-2.534 1.04-5.013C23.929 2.67 20.646 0 18.933 0M3.223 9.135c-.237.281-.837 1.155-.884 1.238-.15-.41-.368-1.349-.337-3.291.051-3.281 2.478-4.972 3.091-5.031.256.015.731.27 1.265.646-1.11 1.171-2.275 2.915-2.352 5.125-.133.546-.398.858-.783 1.313M12 22c-.901 0-1.954-.693-2-1 0-.654.475-1.236 1-1.602V20a1 1 0 1 0 2 0v-.602c.524.365 1 .947 1 1.602-.046.307-1.099 1-2 1m3-3.48v.02a4.752 4.752 0 0 0-1.262-1.02c1.092-.516 2.239-1.334 2.239-2.217 0-1.842-1.781-2.195-3.977-2.195-2.196 0-3.978.354-3.978 2.195 0 .883 1.148 1.701 2.238 2.217A4.8 4.8 0 0 0 9 18.539v-.025c-1-.076-2.182-.281-2.973-.842-1.301-.92-1.838-3.045-1.853-6.478l.023-.041c.496-.826 1.49-1.45 1.804-3.102 0-2.047 1.357-3.631 2.362-4.522C9.37 3.178 10.555 3 11.948 3c1.447 0 2.685.192 3.733.57 1 .9 2.316 2.465 2.316 4.48.313 1.651 1.307 2.275 1.803 3.102.035.058.068.117.102.178-.059 5.967-1.949 7.01-4.902 7.19m6.628-8.202c-.037-.065-.074-.13-.113-.195a7.587 7.587 0 0 0-.739-.987c-.385-.455-.648-.768-.782-1.313-.076-2.209-1.241-3.954-2.353-5.124.531-.376 1.004-.63 1.261-.647.636.071 3.044 1.764 3.096 5.031.027 1.81-.347 3.218-.37 3.235\"/></svg>`,\n\n objects: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M12 0a9 9 0 0 0-5 16.482V21s2.035 3 5 3 5-3 5-3v-4.518A9 9 0 0 0 12 0zm0 2c3.86 0 7 3.141 7 7s-3.14 7-7 7-7-3.141-7-7 3.14-7 7-7zM9 17.477c.94.332 1.946.523 3 .523s2.06-.19 3-.523v.834c-.91.436-1.925.689-3 .689a6.924 6.924 0 0 1-3-.69v-.833zm.236 3.07A8.854 8.854 0 0 0 12 21c.965 0 1.888-.167 2.758-.451C14.155 21.173 13.153 22 12 22c-1.102 0-2.117-.789-2.764-1.453z\"/><path d=\"M14.745 12.449h-.004c-.852-.024-1.188-.858-1.577-1.824-.421-1.061-.703-1.561-1.182-1.566h-.009c-.481 0-.783.497-1.235 1.537-.436.982-.801 1.811-1.636 1.791l-.276-.043c-.565-.171-.853-.691-1.284-1.794-.125-.313-.202-.632-.27-.913-.051-.213-.127-.53-.195-.634C7.067 9.004 7.039 9 6.99 9A1 1 0 0 1 7 7h.01c1.662.017 2.015 1.373 2.198 2.134.486-.981 1.304-2.058 2.797-2.075 1.531.018 2.28 1.153 2.731 2.141l.002-.008C14.944 8.424 15.327 7 16.979 7h.032A1 1 0 1 1 17 9h-.011c-.149.076-.256.474-.319.709a6.484 6.484 0 0 1-.311.951c-.429.973-.79 1.789-1.614 1.789\"/></svg>`,\n\n smileys: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0m0 22C6.486 22 2 17.514 2 12S6.486 2 12 2s10 4.486 10 10-4.486 10-10 10\"/><path d=\"M8 7a2 2 0 1 0-.001 3.999A2 2 0 0 0 8 7M16 7a2 2 0 1 0-.001 3.999A2 2 0 0 0 16 7M15.232 15c-.693 1.195-1.87 2-3.349 2-1.477 0-2.655-.805-3.347-2H15m3-2H6a6 6 0 1 0 12 0\"/></svg>`,\n\n people: `<svg xmlns:svg=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" viewBox=\"0 0 24 24\"> <path id=\"path3814\" d=\"m 3.3591089,21.17726 c 0.172036,0.09385 4.265994,2.29837 8.8144451,2.29837 4.927767,0 8.670894,-2.211883 8.82782,-2.306019 0.113079,-0.06785 0.182268,-0.190051 0.182267,-0.321923 0,-3.03119 -0.929494,-5.804936 -2.617196,-7.810712 -1.180603,-1.403134 -2.661918,-2.359516 -4.295699,-2.799791 4.699118,-2.236258 3.102306,-9.28617162 -2.097191,-9.28617162 -5.1994978,0 -6.7963103,7.04991362 -2.097192,9.28617162 -1.6337821,0.440275 -3.1150971,1.396798 -4.2956991,2.799791 -1.687703,2.005776 -2.617196,4.779522 -2.617196,7.810712 1.2e-6,0.137378 0.075039,0.263785 0.195641,0.329572 z M 8.0439319,5.8308783 C 8.0439309,2.151521 12.492107,0.30955811 15.093491,2.9109411 17.694874,5.5123241 15.852911,9.9605006 12.173554,9.9605 9.8938991,9.9579135 8.0465186,8.1105332 8.0439319,5.8308783 Z m -1.688782,7.6894977 c 1.524535,-1.811449 3.5906601,-2.809035 5.8184041,-2.809035 2.227744,0 4.293869,0.997586 5.818404,2.809035 1.533639,1.822571 2.395932,4.339858 2.439152,7.108301 -0.803352,0.434877 -4.141636,2.096112 -8.257556,2.096112 -3.8062921,0 -7.3910861,-1.671043 -8.2573681,-2.104981 0.04505,-2.765017 0.906968,-5.278785 2.438964,-7.099432 z\" /> <path id=\"path3816\" d=\"M 12.173828 0.38867188 C 9.3198513 0.38867187 7.3770988 2.3672285 6.8652344 4.6308594 C 6.4218608 6.5916015 7.1153562 8.7676117 8.9648438 10.126953 C 7.6141249 10.677376 6.3550511 11.480944 5.3496094 12.675781 C 3.5629317 14.799185 2.6015625 17.701475 2.6015625 20.847656 C 2.6015654 21.189861 2.7894276 21.508002 3.0898438 21.671875 C 3.3044068 21.788925 7.4436239 24.039062 12.173828 24.039062 C 17.269918 24.039062 21.083568 21.776786 21.291016 21.652344 C 21.57281 21.483266 21.746097 21.176282 21.746094 20.847656 C 21.746094 17.701475 20.78277 14.799185 18.996094 12.675781 C 17.990455 11.480591 16.733818 10.675362 15.382812 10.125 C 17.231132 8.7655552 17.925675 6.5910701 17.482422 4.6308594 C 16.970557 2.3672285 15.027805 0.38867188 12.173828 0.38867188 z M 12.792969 2.3007812 C 13.466253 2.4161792 14.125113 2.7383941 14.695312 3.3085938 C 15.835712 4.4489931 15.985604 5.9473549 15.46875 7.1953125 C 14.951896 8.4432701 13.786828 9.3984378 12.173828 9.3984375 C 10.197719 9.3961954 8.607711 7.806187 8.6054688 5.8300781 C 8.6054683 4.2170785 9.5606362 3.0520102 10.808594 2.5351562 C 11.432573 2.2767293 12.119685 2.1853833 12.792969 2.3007812 z M 12.173828 11.273438 C 14.233647 11.273438 16.133674 12.185084 17.5625 13.882812 C 18.93069 15.508765 19.698347 17.776969 19.808594 20.283203 C 18.807395 20.800235 15.886157 22.162109 12.173828 22.162109 C 8.7614632 22.162109 5.6245754 20.787069 4.5390625 20.265625 C 4.6525896 17.766717 5.4203315 15.504791 6.7851562 13.882812 C 8.2139827 12.185084 10.11401 11.273438 12.173828 11.273438 z \" /> </svg>`,\n\n places: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M6.5 12C5.122 12 4 13.121 4 14.5S5.122 17 6.5 17 9 15.879 9 14.5 7.878 12 6.5 12m0 3c-.275 0-.5-.225-.5-.5s.225-.5.5-.5.5.225.5.5-.225.5-.5.5M17.5 12c-1.378 0-2.5 1.121-2.5 2.5s1.122 2.5 2.5 2.5 2.5-1.121 2.5-2.5-1.122-2.5-2.5-2.5m0 3c-.275 0-.5-.225-.5-.5s.225-.5.5-.5.5.225.5.5-.225.5-.5.5\"/><path d=\"M22.482 9.494l-1.039-.346L21.4 9h.6c.552 0 1-.439 1-.992 0-.006-.003-.008-.003-.008H23c0-1-.889-2-1.984-2h-.642l-.731-1.717C19.262 3.012 18.091 2 16.764 2H7.236C5.909 2 4.738 3.012 4.357 4.283L3.626 6h-.642C1.889 6 1 7 1 8h.003S1 8.002 1 8.008C1 8.561 1.448 9 2 9h.6l-.043.148-1.039.346a2.001 2.001 0 0 0-1.359 2.097l.751 7.508a1 1 0 0 0 .994.901H3v1c0 1.103.896 2 2 2h2c1.104 0 2-.897 2-2v-1h6v1c0 1.103.896 2 2 2h2c1.104 0 2-.897 2-2v-1h1.096a.999.999 0 0 0 .994-.901l.751-7.508a2.001 2.001 0 0 0-1.359-2.097M6.273 4.857C6.402 4.43 6.788 4 7.236 4h9.527c.448 0 .834.43.963.857L19.313 9H4.688l1.585-4.143zM7 21H5v-1h2v1zm12 0h-2v-1h2v1zm2.189-3H2.811l-.662-6.607L3 11h18l.852.393L21.189 18z\"/></svg>`,\n\n recent: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M13 4h-2l-.001 7H9v2h2v2h2v-2h4v-2h-4z\"/><path d=\"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0m0 22C6.486 22 2 17.514 2 12S6.486 2 12 2s10 4.486 10 10-4.486 10-10 10\"/></svg>`,\n\n symbols: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M0 0h11v2H0zM4 11h3V6h4V4H0v2h4zM15.5 17c1.381 0 2.5-1.116 2.5-2.493s-1.119-2.493-2.5-2.493S13 13.13 13 14.507 14.119 17 15.5 17m0-2.986c.276 0 .5.222.5.493 0 .272-.224.493-.5.493s-.5-.221-.5-.493.224-.493.5-.493M21.5 19.014c-1.381 0-2.5 1.116-2.5 2.493S20.119 24 21.5 24s2.5-1.116 2.5-2.493-1.119-2.493-2.5-2.493m0 2.986a.497.497 0 0 1-.5-.493c0-.271.224-.493.5-.493s.5.222.5.493a.497.497 0 0 1-.5.493M22 13l-9 9 1.513 1.5 8.99-9.009zM17 11c2.209 0 4-1.119 4-2.5V2s.985-.161 1.498.949C23.01 4.055 23 6 23 6s1-1.119 1-3.135C24-.02 21 0 21 0h-2v6.347A5.853 5.853 0 0 0 17 6c-2.209 0-4 1.119-4 2.5s1.791 2.5 4 2.5M10.297 20.482l-1.475-1.585a47.54 47.54 0 0 1-1.442 1.129c-.307-.288-.989-1.016-2.045-2.183.902-.836 1.479-1.466 1.729-1.892s.376-.871.376-1.336c0-.592-.273-1.178-.818-1.759-.546-.581-1.329-.871-2.349-.871-1.008 0-1.79.293-2.344.879-.556.587-.832 1.181-.832 1.784 0 .813.419 1.748 1.256 2.805-.847.614-1.444 1.208-1.794 1.784a3.465 3.465 0 0 0-.523 1.833c0 .857.308 1.56.924 2.107.616.549 1.423.823 2.42.823 1.173 0 2.444-.379 3.813-1.137L8.235 24h2.819l-2.09-2.383 1.333-1.135zm-6.736-6.389a1.02 1.02 0 0 1 .73-.286c.31 0 .559.085.747.254a.849.849 0 0 1 .283.659c0 .518-.419 1.112-1.257 1.784-.536-.651-.805-1.231-.805-1.742a.901.901 0 0 1 .302-.669M3.74 22c-.427 0-.778-.116-1.057-.349-.279-.232-.418-.487-.418-.766 0-.594.509-1.288 1.527-2.083.968 1.134 1.717 1.946 2.248 2.438-.921.507-1.686.76-2.3.76\"/></svg>`,\n}\n\nexport default SVGs\n","<template>\n <div role=\"tablist\" class=\"emoji-mart-anchors\">\n <button\n v-for=\"category in categories\"\n role=\"tab\"\n type=\"button\"\n :aria-label=\"category.name\"\n :aria-selected=\"category.id == activeCategory.id\"\n :key=\"category.id\"\n :class=\"{\n 'emoji-mart-anchor': true,\n 'emoji-mart-anchor-selected': category.id == activeCategory.id,\n }\"\n :style=\"{ color: category.id == activeCategory.id ? color : '' }\"\n :data-title=\"i18n.categories[category.id]\"\n @click=\"$emit('click', category)\"\n >\n <div aria-hidden=\"true\" v-html=\"svgs[category.id]\" />\n <span\n aria-hidden=\"true\"\n class=\"emoji-mart-anchor-bar\"\n :style=\"{ backgroundColor: color }\"\n ></span>\n </button>\n </div>\n</template>\n\n<script>\nimport svgs from '../svgs'\n\nexport default {\n props: {\n i18n: {\n type: Object,\n required: true,\n },\n color: {\n type: String,\n },\n categories: {\n type: Array,\n required: true,\n },\n activeCategory: {\n type: Object,\n default() {\n return {}\n },\n },\n },\n emits: ['click'],\n created() {\n this.svgs = svgs\n },\n}\n</script>\n","const _String = String\n\nexport default _String.fromCodePoint ||\n function stringFromCodePoint() {\n var MAX_SIZE = 0x4000\n var codeUnits = []\n var highSurrogate\n var lowSurrogate\n var index = -1\n var length = arguments.length\n if (!length) {\n return ''\n }\n var result = ''\n while (++index < length) {\n var codePoint = Number(arguments[index])\n if (\n !isFinite(codePoint) || // `NaN`, `+Infinity`, or `-Infinity`\n codePoint < 0 || // not a valid Unicode code point\n codePoint > 0x10ffff || // not a valid Unicode code point\n Math.floor(codePoint) != codePoint // not an integer\n ) {\n throw RangeError('Invalid code point: ' + codePoint)\n }\n if (codePoint <= 0xffff) {\n // BMP code point\n codeUnits.push(codePoint)\n } else {\n // Astral code point; split in surrogate halves\n // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n codePoint -= 0x10000\n highSurrogate = (codePoint >> 10) + 0xd800\n lowSurrogate = (codePoint % 0x400) + 0xdc00\n codeUnits.push(highSurrogate, lowSurrogate)\n }\n if (index + 1 === length || codeUnits.length > MAX_SIZE) {\n result += String.fromCharCode.apply(null, codeUnits)\n codeUnits.length = 0\n }\n }\n return result\n }\n","import stringFromCodePoint from '../polyfills/stringFromCodePoint'\n\nfunction unifiedToNative(unified) {\n var unicodes = unified.split('-'),\n codePoints = unicodes.map((u) => `0x${u}`)\n\n return stringFromCodePoint.apply(null, codePoints)\n}\n\nfunction uniq(arr) {\n return arr.reduce((acc, item) => {\n if (acc.indexOf(item) === -1) {\n acc.push(item)\n }\n return acc\n }, [])\n}\n\nfunction intersect(a, b) {\n const uniqA = uniq(a)\n const uniqB = uniq(b)\n\n return uniqA.filter((item) => uniqB.indexOf(item) >= 0)\n}\n\nfunction deepMerge(a, b) {\n var o = {}\n\n for (let key in a) {\n let originalValue = a[key],\n value = originalValue\n\n if (Object.prototype.hasOwnProperty.call(b, key)) {\n value = b[key]\n }\n\n if (typeof value === 'object') {\n value = deepMerge(originalValue, value)\n }\n\n o[key] = value\n }\n\n return o\n}\n\n// https://github.com/sonicdoe/measure-scrollbar\nfunction measureScrollbar() {\n if (typeof document == 'undefined') return 0\n const div = document.createElement('div')\n\n div.style.width = '100px'\n div.style.height = '100px'\n div.style.overflow = 'scroll'\n div.style.position = 'absolute'\n div.style.top = '-9999px'\n\n document.body.appendChild(div)\n const scrollbarWidth = div.offsetWidth - div.clientWidth\n document.body.removeChild(div)\n\n return scrollbarWidth\n}\n\nexport { uniq, intersect, deepMerge, unifiedToNative, measureScrollbar }\n","import { intersect, unifiedToNative } from './index'\nimport { uncompress, buildSearch } from './data'\nimport frequently from './frequently'\n\nconst SHEET_COLUMNS = 61\nconst COLONS_REGEX = /^(?:\\:([^\\:]+)\\:)(?:\\:skin-tone-(\\d)\\:)?$/\n// Skin tones\nconst SKINS = ['1F3FA', '1F3FB', '1F3FC', '1F3FD', '1F3FE', '1F3FF']\n\n/**\n * Emoji data structure:\n * {\n * \"compressed\": false,\n * \"aliases\": {\n * collision: \"boom\"\n * cooking: \"fried_egg\"\n * envelope: \"email\"\n * face_with_finger_covering_closed_lips: \"shushing_face\"\n * ...\n * },\n * \"categories\": [ {\n * id: \"people\",\n * name: \"Smileys & Emotion\",\n * emojis: [ \"grinning\", \"grin\", \"joy\", ... ]\n * }, {\n * id: \"nature\",\n * name: \"Animals & Nature\",\n * emojis: [ \"monkey_face\", \"money\", \"gorilla\", ... ]\n * },\n * ...\n * ],\n * \"emojis\": [\n * smiley: {\n * added_in: \"6.0\",\n * emoticons: [\"=)\", \"=-)\"],\n * has_img_apple: true,\n * has_img_facebook: true,\n * has_img_google: true,\n * has_img_twitter: true,\n * keywords: [\"face\", \"happy\", \"joy\", \"haha\", \":D\", \":)\", \"smile\", \"funny\"],\n * name: \"Smiling Face with Open Mouth\",\n * non_qualified: undefined,\n * search: \"smiley,smiling,face,with,open,mouth,happy,joy,haha,:d,:),smile,funny,=),=-)\",\n * sheet_x: 30,\n * sheet_y: 27,\n * short_names: [\"smiley\"],\n * text: \":)\",\n * unified: \"1F603\",\n * }, {\n * +1: { // emoji with skin_variations\n * ..., // all the regular fields are present\n * name: \"Thumbs Up Sign\",\n * short_names: (2) [\"+1\", \"thumbsup\"],\n * skin_variations: {\n * 1F3FB: // each variation has additional set of fields:\n * added_in: \"8.0\",\n * has_img_apple: true,\n * has_img_facebook: true,\n * has_img_google: true,\n * has_img_twitter: true,\n * image: \"1f44d-1f3fb.png\",\n * non_qualified: null,\n * sheet_x: 14,\n * sheet_y: 50,\n * unified: \"1F44D-1F3FB\",\n * 1F3FB: {…},\n * 1F3FC: {…},\n * 1F3FD: {…},\n * 1F3FE: {…},\n * 1F3FF: {…}\n * },\n * ...\n * },\n * a: { // emoji with non_qualified field set\n * added_in: \"6.0\",\n * emoticons: undefined,\n * has_img_apple: true,\n * ...\n * non_qualified: \"1F170\",\n * unified: \"1F170-FE0F\",\n * },\n * ...\n * ]\n * }\n */\n\n/**\n * Wraps raw jason emoji data, serves as data source for\n * emoji picker components.\n *\n * Usage:\n *\n * import data from '../data/all.json'\n * let index = new EmojiIndex(data)\n *\n */\nexport class EmojiIndex {\n /**\n * Constructor.\n *\n * @param {object} data - Raw json data, see the structure above.\n * @param {object} options - additional options, as an object:\n * @param {Function} emojisToShowFilter - optional, function to filter out\n * some emojis, function(emoji) { return true|false }\n * where `emoji` is an raw emoji object, see data.emojis above.\n * @param {Array} include - optional, a list of category ids to include.\n * @param {Array} exclude - optional, a list of category ids to exclude.\n * @param {Array} custom - optional, a list custom emojis, each emoji is\n * an object, see data.emojis above for examples.\n */\n constructor(\n data,\n {\n emojisToShowFilter,\n include,\n exclude,\n custom,\n recent,\n recentLength = 20,\n } = {},\n ) {\n this._data = uncompress(data)\n // Callback to exclude specific emojis\n this._emojisFilter = emojisToShowFilter || null\n // Categories to include / exclude\n this._include = include || null\n this._exclude = exclude || null\n // Custom emojis\n this._custom = custom || []\n // Recent emojis\n // TODO: make parameter configurable\n this._recent = recent || frequently.get(recentLength)\n\n this._emojis = {}\n this._nativeEmojis = {}\n this._emoticons = {}\n\n this._categories = []\n this._recentCategory = { id: 'recent', name: 'Recent', emojis: [] }\n this._customCategory = { id: 'custom', name: 'Custom', emojis: [] }\n this._searchIndex = {}\n this.buildIndex()\n Object.freeze(this)\n }\n\n buildIndex() {\n let allCategories = this._data.categories\n\n if (this._include) {\n // Remove categories that are not in the include list.\n allCategories = allCategories.filter((item) => {\n return this._include.includes(item.id)\n })\n // Sort categories according to the include list.\n allCategories = allCategories.sort((a, b) => {\n const indexA = this._include.indexOf(a.id)\n const indexB = this._include.indexOf(b.id)\n if (indexA < indexB) {\n return -1\n }\n if (indexA > indexB) {\n return 1\n }\n return 0\n })\n }\n\n allCategories.forEach((categoryData) => {\n if (!this.isCategoryNeeded(categoryData.id)) {\n return\n }\n let category = {\n id: categoryData.id,\n name: categoryData.name,\n emojis: [],\n }\n categoryData.emojis.forEach((emojiId) => {\n let emoji = this.addEmoji(emojiId)\n if (emoji) {\n category.emojis.push(emoji)\n }\n })\n if (category.emojis.length) {\n this._categories.push(category)\n }\n })\n\n if (this.isCategoryNeeded('custom')) {\n if (this._custom.length > 0) {\n for (let customEmoji of this._custom) {\n this.addCustomEmoji(customEmoji)\n }\n }\n if (this._customCategory.emojis.length) {\n this._categories.push(this._customCategory)\n }\n }\n\n if (this.isCategoryNeeded('recent')) {\n if (this._recent.length) {\n this._recent.map((id) => {\n for (let customEmoji of this._customCategory.emojis) {\n if (customEmoji.id === id) {\n this._recentCategory.emojis.push(customEmoji)\n return\n }\n }\n if (this.hasEmoji(id)) {\n this._recentCategory.emojis.push(this.emoji(id))\n }\n return\n })\n }\n // Add recent category to the top\n if (this._recentCategory.emojis.length) {\n this._categories.unshift(this._recentCategory)\n }\n }\n }\n\n /**\n * Find the emoji from the string\n */\n findEmoji(emoji, skin) {\n // 1. Parse as :emoji_name:skin-tone-xx:\n let matches = emoji.match(COLONS_REGEX)\n\n if (matches) {\n emoji = matches[1]\n if (matches[2]) {\n skin = parseInt(matches[2], 10)\n }\n }\n\n // 2. Check if the specified emoji is an alias\n if (this._data.aliases.hasOwnProperty(emoji)) {\n emoji = this._data.aliases[emoji]\n }\n\n // 3. Check if we have the specified emoji\n if (this._emojis.hasOwnProperty(emoji)) {\n let emojiObject = this._emojis[emoji]\n if (skin) {\n return emojiObject.getSkin(skin)\n }\n return emojiObject\n }\n\n // 4. Check if we have the specified native emoji\n if (this._nativeEmojis.hasOwnProperty(emoji)) {\n return this._nativeEmojis[emoji]\n }\n return null\n }\n\n categories() {\n return this._categories\n }\n\n emoji(emojiId) {\n if (this._data.aliases.hasOwnProperty(emojiId)) {\n emojiId = this._data.aliases[emojiId]\n }\n let emoji = this._emojis[emojiId]\n if (!emoji) {\n throw new Error('Can not find emoji by id: ' + emojiId)\n }\n return emoji\n }\n\n firstEmoji() {\n let emoji = this._emojis[Object.keys(this._emojis)[0]]\n if (!emoji) {\n throw new Error('Can not get first emoji')\n }\n return emoji\n }\n\n hasEmoji(emojiId) {\n if (this._data.aliases.hasOwnProperty(emojiId)) {\n emojiId = this._data.aliases[emojiId]\n }\n if (this._emojis[emojiId]) {\n return true\n }\n return false\n }\n\n nativeEmoji(unicodeEmoji) {\n if (this._nativeEmojis.hasOwnProperty(unicodeEmoji)) {\n return this._nativeEmojis[unicodeEmoji]\n }\n return null\n }\n\n search(value, maxResults) {\n maxResults || (maxResults = 75)\n if (!value.length) {\n return null\n }\n if (value == '-' || value == '-1') {\n return [this.emoji('-1')]\n }\n\n let values = value.toLowerCase().split(/[\\s|,|\\-|_]+/)\n let allResults = []\n\n if (values.length > 2) {\n values = [values[0], values[1]]\n }\n\n allResults = values\n .map((value) => {\n // Start searchin in the global list of emojis\n let emojis = this._emojis\n let currentIndex = this._searchIndex\n let length = 0\n\n for (let charIndex = 0; charIndex < value.length; charIndex++) {\n const char = value[charIndex]\n length++\n\n currentIndex[char] || (currentIndex[char] = {})\n currentIndex = currentIndex[char]\n\n if (!currentIndex.results) {\n let scores = {}\n currentIndex.results = []\n currentIndex.emojis = {}\n\n for (let emojiId in emojis) {\n let emoji = emojis[emojiId]\n // search is a comma-separated string with words, related\n // to the emoji, for example:\n // search: \"smiley,smiling,face,joy,haha,:d,:),smile,funny,=),=-)\",\n let search = emoji._data.search\n let sub = value.substr(0, length)\n let subIndex = search.indexOf(sub)\n if (subIndex != -1) {\n let score = subIndex + 1\n if (sub == emojiId) score = 0\n\n currentIndex.results.push(emoji)\n currentIndex.emojis[emojiId] = emoji\n\n scores[emojiId] = score\n }\n }\n currentIndex.results.sort((a, b) => {\n var aScore = scores[a.id],\n bScore = scores[b.id]\n return aScore - bScore\n })\n }\n\n // continue search in the reduced set of emojis\n emojis = currentIndex.emojis\n }\n return currentIndex.results\n // The \"filter\" call removes undefined values from allResults\n // array, for example, if we have \"test \" (with trailing space),\n // we will get \"[Array, undefined]\" for allResults and after\n // the \"filter\" call it will turn into \"[Array]\"\n })\n .filter((a) => a)\n\n var results = null\n if (allResults.length > 1) {\n results = intersect.apply(null, allResults)\n } else if (allResults.length) {\n results = allResults[0]\n } else {\n results = []\n }\n if (results && results.length > maxResults) {\n results = results.slice(0, maxResults)\n }\n return results\n }\n\n addCustomEmoji(customEmoji) {\n let emojiData = Object.assign({}, customEmoji, {\n id: customEmoji.short_names[0],\n custom: true,\n })\n if (!emojiData.search) {\n emojiData.search = buildSearch(emojiData)\n }\n let emoji = new EmojiData(emojiData)\n this._emojis[emoji.id] = emoji\n this._customCategory.emojis.push(emoji)\n return emoji\n }\n\n addEmoji(emojiId) {\n // We expect the correct emoji id that is present in the emojis data.\n let data = this._data.emojis[emojiId]\n\n if (!this.isEmojiNeeded(data)) {\n return false\n }\n\n let emoji = new EmojiData(data)\n this._emojis[emojiId] = emoji\n if (emoji.native) {\n this._nativeEmojis[emoji.native] = emoji\n }\n if (emoji._skins) {\n for (let idx in emoji._skins) {\n let skin = emoji._skins[idx]\n if (skin.native) {\n this._nativeEmojis[skin.native] = skin\n }\n }\n }\n\n if (emoji.emoticons) {\n emoji.emoticons.forEach((emoticon) => {\n if (this._emoticons[emoticon]) {\n return\n }\n this._emoticons[emoticon] = emojiId\n })\n }\n return emoji\n }\n\n /**\n * Check if we need to include given category.\n *\n * @param {string} category_id - The category id.\n * @return {boolean} - Whether to include the emoji.\n */\n isCategoryNeeded(category_id) {\n let isIncluded =\n this._include && this._include.length\n ? this._include.indexOf(category_id) > -1\n : true\n let isExcluded =\n this._exclude && this._exclude.length\n ? this._exclude.indexOf(category_id) > -1\n : false\n if (!isIncluded || isExcluded) {\n return false\n }\n return true\n }\n\n /**\n * Check if we need to include given emoji.\n *\n * @param {object} emoji - The raw emoji object.\n * @return {boolean} - Whether to include the emoji.\n */\n isEmojiNeeded(emoji) {\n if (this._emojisFilter) {\n return this._emojisFilter(emoji)\n }\n return true\n }\n}\n\nexport class EmojiData {\n constructor(data) {\n this._data = Object.assign({}, data)\n this._skins = null\n if (this._data.skin_variations) {\n this._skins = []\n for (var skinIdx in SKINS) {\n let skinKey = SKINS[skinIdx]\n let variationData = this._data.skin_variations[skinKey]\n let skinData = Object.assign({}, data)\n for (let k in variationData) {\n skinData[k] = variationData[k]\n }\n delete skinData.skin_variations\n skinData['skin_tone'] = parseInt(skinIdx) + 1\n this._skins.push(new EmojiData(skinData))\n }\n }\n this._sanitized = sanitize(this._data)\n for (let key in this._sanitized) {\n this[key] = this._sanitized[key]\n }\n this.short_names = this._data.short_names\n this.short_name = this._data.short_names[0]\n Object.freeze(this)\n }\n\n getSkin(skinIdx) {\n if (skinIdx && skinIdx != 'native' && this._skins) {\n return this._skins[skinIdx - 1]\n }\n return this\n }\n\n getPosition() {\n let adjustedColumns = SHEET_COLUMNS - 1,\n x = +((100 / adjustedColumns) * this._data.sheet_x).toFixed(2),\n y = +((100 / adjustedColumns) * this._data.sheet_y).toFixed(2)\n return `${x}% ${y}%`\n }\n\n ariaLabel() {\n return [this.native].concat(this.short_names).filter(Boolean).join(', ')\n }\n}\n\nexport class EmojiView {\n /**\n * emoji - Emoji to display\n * set - string, emoji set name\n * native - boolean, whether to render native emoji\n * fallback - fallback function to render missing emoji, optional\n * emojiTooltip - wether we need to show the emoji tooltip, optional\n * emojiSize - emoji size in pixels, optional\n */\n constructor(emoji, skin, set, native, fallback, emojiTooltip, emojiSize) {\n this._emoji = emoji\n this._native = native\n this._skin = skin\n this._set = set\n this._fallback = fallback\n\n this.canRender = this._canRender()\n this.cssClass = this._cssClass()\n this.cssStyle = this._cssStyle(emojiSize)\n this.content = this._content()\n this.title = emojiTooltip === true ? emoji.short_name : null\n this.ariaLabel = emoji.ariaLabel()\n\n Object.freeze(this)\n }\n\n getEmoji() {\n return this._emoji.getSkin(this._skin)\n }\n\n _canRender() {\n return (\n this._isCustom() || this._isNative() || this._hasEmoji() || this._fallback\n )\n }\n\n _cssClass() {\n return ['emoji-set-' + this._set, 'emoji-type-' + this._emojiType()]\n }\n\n _cssStyle(emojiSize) {\n let cssStyle = {}\n if (this._isCustom()) {\n cssStyle = {\n backgroundImage: 'url(' + this.getEmoji()._data.imageUrl + ')',\n backgroundSize: '100%',\n width: emojiSize + 'px',\n height: emojiSize + 'px',\n }\n } else if (this._hasEmoji() && !this._isNative()) {\n cssStyle = {\n backgroundPosition: this.getEmoji().getPosition(),\n }\n }\n if (emojiSize) {\n if (this._isNative()) {\n // Set font-size for native emoji.\n cssStyle = Object.assign(cssStyle, {\n // font-size is used for native emoji which we need\n // to scale with 0.95 factor to have them look approximately\n // the same size as image-based emoji.\n fontSize: Math.round(emojiSize * 0.95 * 10) / 10 + 'px',\n })\n } else {\n // Set width/height for image emoji.\n cssStyle = Object.assign(cssStyle, {\n width: emojiSize + 'px',\n height: emojiSize + 'px',\n })\n }\n }\n return cssStyle\n }\n\n _content() {\n if (this._isCustom()) {\n return ''\n }\n if (this._isNative()) {\n return this.getEmoji().native\n }\n if (this._hasEmoji()) {\n return ''\n }\n return this._fallback ? this._fallback(this.getEmoji()) : null\n }\n\n _isNative() {\n return this._native\n }\n\n _isCustom() {\n return this.getEmoji().custom\n }\n\n _hasEmoji() {\n if (!this.getEmoji()._data) {\n // Return false if we have no data.\n return false\n }\n const hasImage = this.getEmoji()._data['has_img_' + this._set]\n if (hasImage === undefined) {\n // If there is no has_img_xxx in the data, we are working with\n // specific data file, like facebook.json, so we assume all\n // emojis are available (the :set setting for picker should\n // match the data file).\n return true\n }\n // Otherwise, we are using all.json and can switch between different\n // sets - in this case the `has_img_{set_name}` is a boolean that\n // indicates if there is such image or not for a given set.\n return hasImage\n }\n\n _emojiType() {\n if (this._isCustom()) {\n return 'custom'\n }\n if (this._isNative()) {\n return 'native'\n }\n if (this._hasEmoji()) {\n return 'image'\n }\n return 'fallback'\n }\n}\n\nexport function sanitize(emoji) {\n var {\n name,\n short_names,\n skin_tone,\n skin_variations,\n emoticons,\n unified,\n custom,\n imageUrl,\n } = emoji,\n id = emoji.id || short_names[0],\n colons = `:${id}:`\n\n if (custom) {\n return {\n id,\n name,\n colons,\n emoticons,\n custom,\n imageUrl,\n }\n }\n\n if (skin_tone) {\n colons += `:skin-tone-${skin_tone}:`\n }\n\n return {\n id,\n name,\n colons,\n emoticons,\n unified: unified.toLowerCase(),\n skin: skin_tone || (skin_variations ? 1 : null),\n native: unifiedToNative(unified),\n }\n}\n","const EmojiProps = {\n native: {\n type: Boolean,\n default: false,\n },\n tooltip: {\n type: Boolean,\n default: false,\n },\n fallback: {\n type: Function,\n },\n skin: {\n type: Number,\n default: 1,\n },\n set: {\n type: String,\n default: 'apple',\n },\n emoji: {\n type: [String, Object],\n required: true,\n },\n size: {\n type: Number,\n default: null,\n },\n tag: {\n type: String,\n default: 'span',\n },\n}\n\nconst PickerProps = {\n perLine: {\n type: Number,\n default: 9,\n },\n maxSearchResults: {\n type: Number,\n default: 75,\n },\n emojiSize: {\n type: Number,\n default: 24,\n },\n title: {\n type: String,\n default: 'Emoji Mart™',\n },\n emoji: {\n type: String,\n default: 'department_store',\n },\n color: {\n type: String,\n default: '#ae65c5',\n },\n set: {\n type: String,\n default: 'apple',\n },\n skin: {\n type: Number,\n default: null,\n },\n defaultSkin: {\n type: Number,\n default: 1,\n },\n native: {\n type: Boolean,\n default: false,\n },\n emojiTooltip: {\n type: Boolean,\n default: false,\n },\n autoFocus: {\n type: Boolean,\n default: false,\n },\n i18n: {\n type: Object,\n default() {\n return {}\n },\n },\n showPreview: {\n type: Boolean,\n default: true,\n },\n showSearch: {\n type: Boolean,\n default: true,\n },\n showCategories: {\n type: Boolean,\n default: true,\n },\n showSkinTones: {\n type: Boolean,\n default: true,\n },\n infiniteScroll: {\n type: Boolean,\n default: true,\n },\n pickerStyles: {\n type: Object,\n default() {\n return {}\n },\n },\n}\n\nexport { EmojiProps, PickerProps }\n","<template>\n <component\n :is=\"tag\"\n v-if=\"view.canRender\"\n :title=\"view.title\"\n :aria-label=\"view.ariaLabel\"\n :data-title=\"title\"\n class=\"emoji-mart-emoji\"\n @mouseenter=\"onMouseEnter\"\n @mouseleave=\"onMouseLeave\"\n @click=\"onClick\"\n >\n <span :class=\"view.cssClass\" :style=\"view.cssStyle\">{{\n view.content\n }}</span>\n </component>\n</template>\n\n<script>\nimport { EmojiProps } from '../utils/shared-props'\nimport { EmojiView } from '../utils/emoji-data'\n\nexport default {\n props: {\n ...EmojiProps,\n data: {\n type: Object,\n required: true,\n },\n },\n emits: [\"click\", \"mouseenter\", \"mouseleave\"],\n computed: {\n view() {\n return new EmojiView(\n this.emojiObject,\n this.skin,\n this.set,\n this.native,\n this.fallback,\n this.tooltip,\n this.size,\n )\n },\n sanitizedData() {\n return this.emojiObject._sanitized\n },\n title() {\n return this.tooltip ? this.emojiObject.short_name : null\n },\n emojiObject() {\n if (typeof this.emoji == 'string') {\n return this.data.findEmoji(this.emoji)\n } else {\n return this.emoji\n }\n },\n },\n created() {},\n methods: {\n onClick() {\n this.$emit('click', this.emojiObject)\n },\n onMouseEnter() {\n this.$emit('mouseenter', this.emojiObject)\n },\n onMouseLeave() {\n this.$emit('mouseleave', this.emojiObject)\n },\n },\n}\n</script>\n","<template>\n <section\n :class=\"{\n 'emoji-mart-category': true,\n 'emoji-mart-no-results': !hasResults,\n }\"\n :aria-label=\"i18n.categories[id]\"\n v-if=\"isVisible && (isSearch || hasResults)\"\n >\n <div class=\"emoji-mart-category-label\">\n <h3 class=\"emoji-mart-category-label\">{{ i18n.categories[id] }}</h3>\n </div>\n\n <template v-for=\"{ emojiObject, emojiView } in emojiObjects\">\n <button\n v-if=\"emojiView.canRender\"\n :aria-label=\"emojiView.ariaLabel\"\n role=\"option\"\n aria-selected=\"false\"\n aria-posinset=\"1\"\n aria-setsize=\"1812\"\n type=\"button\"\n :data-title=\"emojiObject.short_name\"\n :key=\"emojiObject.id\"\n :title=\"emojiView.title\"\n class=\"emoji-mart-emoji\"\n :class=\"activeClass(emojiObject)\"\n @mouseenter=\"emojiProps.onEnter(emojiView.getEmoji())\"\n @mouseleave=\"emojiProps.onLeave(emojiView.getEmoji())\"\n @click=\"emojiProps.onClick(emojiView.getEmoji())\"\n >\n <span :class=\"emojiView.cssClass\" :style=\"emojiView.cssStyle\">{{\n emojiView.content\n }}</span>\n </button>\n </template>\n\n <div v-if=\"!hasResults\">\n <emoji\n :data=\"data\"\n emoji=\"sleuth_or_spy\"\n :native=\"emojiProps.native\"\n :skin=\"emojiProps.skin\"\n :set=\"emojiProps.set\"\n />\n <div class=\"emoji-mart-no-results-label\">{{ i18n.notfound }}</div>\n </div>\n </section>\n</template>\n\n<script>\nimport { EmojiView } from '../utils/emoji-data'\nimport Emoji from './Emoji.vue'\n\nexport default {\n props: {\n data: {\n type: Object,\n required: true,\n },\n i18n: {\n type: Object,\n required: true,\n },\n id: {\n type: String,\n required: true,\n },\n name: {\n type: String,\n required: true,\n },\n emojis: {\n type: Array,\n },\n emojiProps: {\n type: Object,\n required: true,\n },\n },\n methods: {\n activeClass: function(emojiObject) {\n if (!this.emojiProps.selectedEmoji) {\n return ''\n }\n if (!this.emojiProps.selectedEmojiCategory) {\n return ''\n }\n if (\n this.emojiProps.selectedEmoji.id == emojiObject.id &&\n this.emojiProps.selectedEmojiCategory.id == this.id\n ) {\n return 'emoji-mart-emoji-selected'\n }\n return ''\n },\n },\n computed: {\n isVisible() {\n return !!this.emojis\n },\n isSearch() {\n return this.name == 'Search'\n },\n hasResults() {\n return this.emojis.length > 0\n },\n emojiObjects() {\n return this.emojis.map((emoji) => {\n let emojiObject = emoji\n let emojiView = new EmojiView(\n emoji,\n this.emojiProps.skin,\n this.emojiProps.set,\n this.emojiProps.native,\n this.emojiProps.fallback,\n this.emojiProps.emojiTooltip,\n this.emojiProps.emojiSize,\n )\n return { emojiObject, emojiView }\n })\n },\n },\n components: {\n Emoji,\n },\n}\n</script>\n","<template>\n\n<div :class=\"{ 'emoji-mart-skin-swatches': true, 'emoji-mart-skin-swatches-opened': opened }\">\n <span v-for=\"skinTone in 6\" :key=\"skinTone\" :class=\"{ 'emoji-mart-skin-swatch': true, 'emoji-mart-skin-swatch-selected': skin == skinTone }\">\n <span :class=\"'emoji-mart-skin emoji-mart-skin-tone-' + skinTone\" @click=\"onClick(skinTone)\"></span>\n </span>\n</div>\n\n</template>\n\n<script>\n\nexport default {\n props: {\n skin: {\n type: Number,\n required: true\n }\n },\n emits: ['change'],\n data() {\n return {\n opened: false\n }\n },\n methods: {\n onClick(skinTone) {\n if (this.opened) {\n if (skinTone != this.skin) {\n this.$emit('change', skinTone)\n }\n }\n\n this.opened = !this.opened\n }\n }\n}\n\n</script>\n","<template>\n\n<div class=\"emoji-mart-preview\">\n <template v-if=\"emoji\">\n <div class=\"emoji-mart-preview-emoji\">\n <emoji\n :data=\"data\"\n :emoji=\"emoji\"\n :native=\"emojiProps.native\"\n :skin=\"emojiProps.skin\"\n :set=\"emojiProps.set\"\n />\n </div>\n\n <div class=\"emoji-mart-preview-data\">\n <div class=\"emoji-mart-preview-name\">{{ emoji.name }}</div>\n <div class=\"emoji-mart-preview-shortnames\">\n <span v-for=\"shortName in emojiShortNames\" :key=\"shortName\" class=\"emoji-mart-preview-shortname\">:{{ shortName }}:</span>\n </div>\n <div class=\"emoji-mart-preview-emoticons\">\n <span v-for=\"emoticon in emojiEmoticons\" :key=\"emoticon\" class=\"emoji-mart-preview-emoticon\">{{ emoticon }}</span>\n </div>\n </div>\n </template>\n\n <template v-else>\n <div class=\"emoji-mart-preview-emoji\">\n <emoji\n :data=\"data\"\n :emoji=\"idleEmoji\"\n :native=\"emojiProps.native\"\n :skin=\"emojiProps.skin\"\n :set=\"emojiProps.set\"\n />\n </div>\n\n <div class=\"emoji-mart-preview-data\">\n <span class=\"emoji-mart-title-label\">{{ title }}</span>\n </div>\n\n <div v-if=\"showSkinTones\" class=\"emoji-mart-preview-skins\">\n <skins :skin=\"skinProps.skin\" @change=\"onSkinChange($event)\" />\n </div>\n </template>\n</div>\n\n</template>\n\n<script>\n\nimport Emoji from './Emoji.vue'\nimport Skins from './skins.vue'\n\nexport default {\n props: {\n data: {\n type: Object,\n required: true\n },\n title: {\n type: String,\n required: true\n },\n emoji: {\n type: [String, Object]\n },\n idleEmoji: {\n type: [String, Object],\n required: true\n },\n showSkinTones: {\n type: Boolean,\n default: true\n },\n emojiProps: {\n type: Object,\n required: true\n },\n skinProps: {\n type: Object,\n required: true\n },\n onSkinChange: {\n type: Function,\n required: true\n }\n },\n computed: {\n emojiData() {\n if (this.emoji) {\n return this.emoji\n } else {\n return {}\n }\n },\n emojiShortNames() {\n return this.emojiData.short_names\n },\n emojiEmoticons() {\n return this.emojiData.emoticons\n }\n },\n components: {\n Emoji,\n Skins\n }\n}\n\n</script>\n","<template>\n <div class=\"emoji-mart-search\">\n <input\n type=\"text\"\n :placeholder=\"i18n.search\"\n role=\"textbox\"\n aria-autocomplete=\"list\"\n aria-owns=\"emoji-mart-list\"\n aria-label=\"Search for an emoji\"\n aria-describedby=\"emoji-mart-search-description\"\n @keydown.left=\"($event) => $emit('arrowLeft', $event)\"\n @keydown.right=\"() => $emit('arrowRight')\"\n @keydown.down=\"() => $emit('arrowDown')\"\n @keydown.up=\"($event) => $emit('arrowUp', $event)\"\n @keydown.enter=\"() => $emit('enter')\"\n v-model=\"value\"\n />\n <span class=\"hidden\" id=\"emoji-picker-search-description\"\n >Use the left, right, up and down arrow keys to navigate the emoji search\n results.</span\n >\n </div>\n</template>\n\n<script>\nexport default {\n props: {\n data: {\n type: Object,\n required: true,\n },\n i18n: {\n type: Object,\n required: true,\n },\n autoFocus: {\n type: Boolean,\n default: false,\n },\n onSearch: {\n type: Function,\n required: true,\n },\n onArrowLeft: {\n type: Function,\n required: false,\n },\n onArrowRight: {\n type: Function,\n required: false,\n },\n onArrowDown: {\n type: Function,\n required: false,\n },\n onArrowUp: {\n type: Function,\n required: false,\n },\n onEnter: {\n type: Function,\n required: false,\n },\n },\n emits: ['search', 'enter', 'arrowUp', 'arrowDown', 'arrowRight', 'arrowLeft'],\n data() {\n return {\n value: '',\n }\n },\n computed: {\n emojiIndex() {\n return this.data\n },\n },\n watch: {\n value() {\n this.$emit('search', this.value)\n },\n },\n methods: {\n clear() {\n this.value = ''\n },\n },\n mounted() {\n let $input = this.$el.querySelector('input')\n\n if (this.autoFocus) {\n $input.focus()\n }\n },\n}\n</script>\n","// http://paulirish.com/2011/requestanimationframe-for-smart-animating/\n// http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating\n\n// requestAnimationFrame polyfill by Erik Möller. fixes from Paul Irish and Tino Zijdel\n\n// MIT license\n\nvar isWindowAvailable = typeof window !== 'undefined'\n\nisWindowAvailable &&\n (function () {\n var lastTime = 0\n var vendors = ['ms', 'moz', 'webkit', 'o']\n\n for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {\n window.requestAnimationFrame =\n window[vendors[x] + 'RequestAnimationFrame']\n window.cancelAnimationFrame =\n window[vendors[x] + 'CancelAnimationFrame'] ||\n window[vendors[x] + 'CancelRequestAnimationFrame']\n }\n\n if (!window.requestAnimationFrame)\n window.requestAnimationFrame = function (callback, element) {\n var currTime = new Date().getTime()\n var timeToCall = Math.max(0, 16 - (currTime - lastTime))\n var id = window.setTimeout(function () {\n callback(currTime + timeToCall)\n }, timeToCall)\n\n lastTime = currTime + timeToCall\n return id\n }\n\n if (!window.cancelAnimationFrame)\n window.cancelAnimationFrame = function (id) {\n clearTimeout(id)\n }\n })()\n","export class PickerView {\n constructor(pickerComponent) {\n this._vm = pickerComponent\n this._data = pickerComponent.data\n this._perLine = pickerComponent.perLine\n\n this._categories = []\n this._categories.push(...this._data.categories())\n this._categories = this._categories.filter((category) => {\n return category.emojis.length > 0\n })\n\n this._categories[0].first = true\n Object.freeze(this._categories)\n\n this.activeCategory = this._categories[0]\n this.searchEmojis = null\n\n // Preview emoji, shown on mouse over or when we move\n // with arrow keys.\n this.previewEmoji = null\n // Indexes are used to keep the position when moving\n // with arrows: current category and current emoji\n // inside the category.\n this.previewEmojiCategoryIdx = 0\n this.previewEmojiIdx = -1\n }\n\n onScroll() {\n const scrollElement = this._vm.$refs.scroll\n\n if (!scrollElement) {\n // Reported in https://github.com/serebrov/emoji-mart-vue/issues/305\n // Would be good to understand how it can happen, but at least\n // exiting early we prevent the error.\n return\n }\n\n const scrollTop = scrollElement.scrollTop\n\n let activeCategory = this.filteredCategories[0]\n for (let i = 0, l = this.filteredCategories.length; i < l; i++) {\n let category = this.filteredCategories[i]\n let component = this._vm.getCategoryComponent(i)\n // The `-50` offset switches active category (selected in the\n // anchors bar) a bit eariler, before it actually reaches the top.\n if (component && component.$el.offsetTop - 50 > scrollTop) {\n break\n }\n activeCategory = category\n }\n this.activeCategory = activeCategory\n }\n\n get allCategories() {\n return this._categories\n }\n\n get filteredCategories() {\n if (this.searchEmojis) {\n return [\n {\n id: 'search',\n name: 'Search',\n emojis: this.searchEmojis,\n },\n ]\n }\n return this._categories.filter((category) => {\n let hasEmojis = category.emojis.length > 0\n return hasEmojis\n })\n }\n\n get previewEmojiCategory() {\n if (this.previewEmojiCategoryIdx >= 0) {\n return this.filteredCategories[this.previewEmojiCategoryIdx]\n }\n return null\n }\n\n onAnchorClick(category) {\n if (this.searchEmojis) {\n // No categories are shown when search is active.\n return\n }\n let i = this.filteredCategories.indexOf(category)\n let component = this._vm.getCategoryComponent(i)\n let scrollToComponent = () => {\n if (component) {\n let top = component.$el.offsetTop\n if (category.first) {\n top = 0\n }\n this._vm.$refs.scroll.scrollTop = top\n }\n }\n if (this._vm.infiniteScroll) {\n scrollToComponent()\n } else {\n this.activeCategory = this.filteredCategories[i]\n }\n }\n\n onSearch(value) {\n let emojis = this._data.search(value, this.maxSearchResults)\n this.searchEmojis = emojis\n\n this.previewEmojiCategoryIdx = 0\n this.previewEmojiIdx = 0\n this.updatePreviewEmoji()\n }\n\n onEmojiEnter(emoji) {\n this.previewEmoji = emoji\n this.previewEmojiIdx = -1\n this.previewEmojiCategoryIdx = -1\n }\n\n onEmojiLeave(emoji) {\n this.previewEmoji = null\n }\n\n onArrowLeft() {\n // Moving left, decrease emoji index.\n if (this.previewEmojiIdx > 0) {\n this.previewEmojiIdx -= 1\n } else {\n // If emoji index is zero, go to the previous category.\n this.previewEmojiCategoryIdx -= 1\n if (this.previewEmojiCategoryIdx < 0) {\n // If we reached first category, keep it.\n this.previewEmojiCategoryIdx = 0\n } else {\n // Update emoji index - we moved to the previous category,\n // get the last emoji in it.\n this.previewEmojiIdx =\n this.filteredCategories[this.previewEmojiCategoryIdx].emojis.length -\n 1\n }\n }\n this.updatePreviewEmoji()\n }\n\n onArrowRight() {\n if (\n this.previewEmojiIdx <\n this.emojisLength(this.previewEmojiCategoryIdx) - 1\n ) {\n // Moving right within category, increase emoji index.\n this.previewEmojiIdx += 1\n } else {\n // Go to the next category.\n this.previewEmojiCategoryIdx += 1\n if (this.previewEmojiCategoryIdx >= this.filteredCategories.length) {\n // If we reached the last category - keep it.\n this.previewEmojiCategoryIdx = this.filteredCategories.length - 1\n } else {\n // If we moved to the next category, update emoji index to the\n // first emoji in the new category.\n this.previewEmojiIdx = 0\n }\n }\n this.updatePreviewEmoji()\n }\n\n onArrowDown() {\n // If we are out of the emoji control (index is -1), select the first\n // emoji in the first category by calling `onArrowRight`.\n if (this.previewEmojiIdx == -1) {\n return this.onArrowRight()\n }\n\n const categoryLength =\n this.filteredCategories[this.previewEmojiCategoryIdx].emojis.length\n\n // When moving down, we can move `_perLine` icons right to\n // jump to the same position in the next row.\n let diff = this._perLine\n\n // TODO: previewCategory should match activeCategory\n // (so it would be both highlighted in UI and used\n // when we start moving with arrows after clicking\n // the category).\n\n // Note: probably we can alwasy take current row length\n // as a `diff` - it will fit both case of any row and\n // special case of the last row.\n // Note: it can be also easier to update indexes\n // directly here instead of calling onArrowRight.\n // Same is true for `onArrowUp`.\n\n // Unless if we are on the last row of the category and\n // there are less then `_perLine` emojis in it.\n // In this case we use the last row length as diff\n // so we go straight down, for example:\n //\n // 1 2 3 4 5 6\n // 7 8 9\n // A B C D E F\n //\n // If we go down from `8`, we need to move 3 emojis right\n // to lend at `B` (and 3 is the length of the last row of\n // this category).\n // And if we used 6 instead (row length, `_perLine`), we would\n // lend up at `E`.\n if (this.previewEmojiIdx + diff > categoryLength) {\n // Calculate the last row length.\n diff = categoryLength % this._perLine\n }\n for (let i = 0; i < diff; i++) {\n this.onArrowRight()\n }\n this.updatePreviewEmoji()\n }\n\n onArrowUp() {\n // Similar to `onArrowDown`, to move up we can move left\n // by `_perLine` number of emojis.\n let diff = this._perLine\n\n if (this.previewEmojiIdx - diff < 0) {\n if (this.previewEmojiCategoryIdx > 0) {\n // Unless if we are on the first line of the category and\n // the last line in the previous category is shorter than\n // `_perLine`.\n // In this case we use the last row length as diff, so\n // we go straight up, for example:\n //\n // 1 2 3 4 5\n // 6 7 8\n // 9 A B C D\n //\n // If we go up from `A`, we need to move 3 emojis left to get\n // to `7` (and 3 is the length of the last row of the previous\n // category).\n const prevCategoryLastRowLength =\n this.filteredCategories[this.previewEmojiCategoryIdx - 1].emojis\n .length % this._perLine\n // diff = this.previewEmojiIdx + prevCategoryLastRowLength\n diff = prevCategoryLastRowLength\n } else {\n diff = 0\n }\n }\n for (let i = 0; i < diff; i++) {\n this.onArrowLeft()\n }\n this.updatePreviewEmoji()\n }\n\n updatePreviewEmoji() {\n this.previewEmoji =\n this.filteredCategories[this.previewEmojiCategoryIdx].emojis[\n this.previewEmojiIdx\n ]\n\n this._vm.$nextTick(() => {\n // Scroll the view if the `previewEmoji` goes out of the visible area.\n const scrollEl = this._vm.$refs.scroll\n\n // Note: it would be more Vue-ish to mark all emojis with `ref`s\n // and then do something similar here to what we do in the\n // `getCategories` instead of using `querySelector` directly,\n // but I am not sure if having many refs would affect the performance\n // (it might, so I use `querySelector` for now).\n const emojiEl = scrollEl.querySelector('.emoji-mart-emoji-selected')\n\n const scrollHeight = scrollEl.offsetTop - scrollEl.offsetHeight\n if (\n emojiEl &&\n emojiEl.offsetTop + emojiEl.offsetHeight >\n scrollHeight + scrollEl.scrollTop\n ) {\n scrollEl.scrollTop += emojiEl.offsetHeight\n }\n if (emojiEl && emojiEl.offsetTop < scrollEl.scrollTop) {\n scrollEl.scrollTop -= emojiEl.offsetHeight\n }\n })\n }\n\n emojisLength(categoryIdx) {\n if (categoryIdx == -1) {\n return 0\n }\n return this.filteredCategories[categoryIdx].emojis.length\n }\n}\n","<template>\n <section class=\"emoji-mart emoji-mart-static\" :style=\"customStyles\">\n <div class=\"emoji-mart-bar emoji-mart-bar-anchors\" v-if=\"showCategories\">\n <anchors\n :data=\"data\"\n :i18n=\"mergedI18n\"\n :color=\"color\"\n :categories=\"view.allCategories\"\n :active-category=\"view.activeCategory\"\n @click=\"onAnchorClick\"\n />\n </div>\n\n <slot\n name=\"searchTemplate\"\n :data=\"data\"\n :i18n=\"i18n\"\n :auto-focus=\"autoFocus\"\n :on-search=\"onSearch\"\n >\n <search\n v-if=\"showSearch\"\n ref=\"search\"\n :data=\"data\"\n :i18n=\"mergedI18n\"\n :auto-focus=\"autoFocus\"\n :on-search=\"onSearch\"\n @search=\"onSearch\"\n @arrowLeft=\"onArrowLeft\"\n @arrowRight=\"onArrowRight\"\n @arrowDown=\"onArrowDown\"\n @arrowUp=\"onArrowUp\"\n @enter=\"onEnter\"\n @select=\"onTextSelect\"\n />\n </slot>\n\n <div\n role=\"tabpanel\"\n class=\"emoji-mart-scroll\"\n ref=\"scroll\"\n @scroll=\"onScroll\"\n >\n <div\n id=\"emoji-mart-list\"\n ref=\"scrollContent\"\n role=\"listbox\"\n aria-expanded=\"true\"\n >\n <slot name=\"customCategory\"> </slot>\n\n <category\n v-for=\"(category, idx) in view.filteredCategories\"\n v-show=\"infiniteScroll || category == view.activeCategory || isSearching\"\n :ref=\"'categories_' + idx\"\n :key=\"category.id\"\n :data=\"data\"\n :i18n=\"mergedI18n\"\n :id=\"category.id\"\n :name=\"category.name\"\n :emojis=\"category.emojis\"\n :emoji-props=\"emojiProps\"\n />\n </div>\n </div>\n\n <slot\n name=\"previewTemplate\"\n :data=\"data\"\n :title=\"title\"\n :emoji=\"view.previewEmoji\"\n :idle-emoji=\"idleEmoji\"\n :show-skin-tones=\"showSkinTones\"\n :emoji-props=\"emojiProps\"\n :skin-props=\"skinProps\"\n :on-skin-change=\"onSkinChange\"\n >\n <div class=\"emoji-mart-bar emoji-mart-bar-preview\" v-if=\"showPreview\">\n <preview\n :data=\"data\"\n :title=\"title\"\n :emoji=\"view.previewEmoji\"\n :idle-emoji=\"idleEmoji\"\n :show-skin-tones=\"showSkinTones\"\n :emoji-props=\"emojiProps\"\n :skin-props=\"skinProps\"\n :on-skin-change=\"onSkinChange\"\n />\n </div>\n </slot>\n </section>\n</template>\n\n<script>\nimport '../vendor/raf-polyfill'\nimport store from '../utils/store'\nimport frequently from '../utils/frequently'\nimport { deepMerge, measureScrollbar } from '../utils'\nimport { PickerProps } from '../utils/shared-props'\nimport { PickerView } from '../utils/picker'\nimport Anchors from './anchors.vue'\nimport Category from './category.vue'\nimport Preview from './preview.vue'\nimport Search from './search.vue'\n\nconst I18N = {\n search: 'Search',\n notfound: 'No Emoji Found',\n categories: {\n search: 'Search Results',\n recent: 'Frequently Used',\n smileys: 'Smileys & Emotion',\n people: 'People & Body',\n nature: 'Animals & Nature',\n foods: 'Food & Drink',\n activity: 'Activity',\n places: 'Travel & Places',\n objects: 'Objects',\n symbols: 'Symbols',\n flags: 'Flags',\n custom: 'Custom',\n },\n}\n\nexport default {\n props: {\n ...PickerProps,\n data: {\n type: Object,\n required: true,\n },\n },\n emits: ['select', 'skin-change'],\n data() {\n return {\n activeSkin: this.skin || store.get('skin') || this.defaultSkin,\n view: new PickerView(this),\n }\n },\n computed: {\n customStyles() {\n return {\n width: this.calculateWidth + 'px',\n ...this.pickerStyles,\n }\n },\n emojiProps() {\n return {\n native: this.native,\n skin: this.activeSkin,\n set: this.set,\n emojiTooltip: this.emojiTooltip,\n emojiSize: this.emojiSize,\n selectedEmoji: this.view.previewEmoji,\n selectedEmojiCategory: this.view.previewEmojiCategory,\n onEnter: this.onEmojiEnter.bind(this),\n onLeave: this.onEmojiLeave.bind(this),\n onClick: this.onEmojiClick.bind(this),\n }\n },\n skinProps() {\n return {\n skin: this.activeSkin,\n }\n },\n calculateWidth() {\n return this.perLine * (this.emojiSize + 12) + 12 + 2 + measureScrollbar()\n },\n // emojisPerRow() {\n // const listEl = this.$refs.scrollContent\n // const emojiEl = listEl.querySelector('.emoji-mart-emoji')\n // return Math.floor(listEl.offsetWidth / emojiEl.offsetWidth)\n // },\n filteredCategories() {\n return this.view.filteredCategories\n },\n mergedI18n() {\n return Object.freeze(deepMerge(I18N, this.i18n))\n },\n idleEmoji() {\n try {\n return this.data.emoji(this.emoji)\n } catch (e) {\n console.error(\n 'Default preview emoji `' +\n this.emoji +\n '` is not available, check the Picker `emoji` property',\n )\n console.error(e)\n return this.data.firstEmoji()\n }\n },\n isSearching() {\n return this.view.searchEmojis != null;\n },\n },\n watch: {\n skin() {\n this.onSkinChange(this.skin)\n },\n },\n methods: {\n onScroll() {\n if (this.infiniteScroll && !this.waitingForPaint) {\n this.waitingForPaint = true\n window.requestAnimationFrame(this.onScrollPaint.bind(this))\n }\n },\n onScrollPaint() {\n this.waitingForPaint = false\n this.view.onScroll()\n },\n onAnchorClick(category) {\n this.view.onAnchorClick(category)\n },\n onSearch(value) {\n this.view.onSearch(value)\n },\n onEmojiEnter(emoji) {\n this.view.onEmojiEnter(emoji)\n },\n onEmojiLeave(emoji) {\n this.view.onEmojiLeave(emoji)\n },\n onArrowLeft($event) {\n const oldIdx = this.view.previewEmojiIdx\n this.view.onArrowLeft()\n if ($event && this.view.previewEmojiIdx !== oldIdx) {\n // Prevent cursor movement inside the input\n $event.preventDefault()\n }\n },\n onArrowRight() {\n this.view.onArrowRight()\n },\n onArrowDown() {\n this.view.onArrowDown()\n },\n onArrowUp($event) {\n this.view.onArrowUp()\n // Prevent cursor movement inside the input\n $event.preventDefault()\n },\n onEnter() {\n if (!this.view.previewEmoji) {\n // We may press \"Enter\" when nothing is selected,\n // for example, if we search for \"asdf\".\n return\n }\n this.$emit('select', this.view.previewEmoji)\n frequently.add(this.view.previewEmoji)\n },\n onEmojiClick(emoji) {\n this.$emit('select', emoji)\n frequently.add(emoji)\n },\n onTextSelect($event) {\n // Prevent default text select event.\n // In Vue 3 it goes through the component and triggers the `select`\n // event that is supposed to be emmited only with emoji.\n // (there is no such problem in Vue 2).\n $event.stopPropagation()\n },\n onSkinChange(skin) {\n this.activeSkin = skin\n store.update({ skin })\n\n this.$emit('skin-change', skin)\n },\n getCategoryComponent(index) {\n let component = this.$refs['categories_' + index]\n if (component && '0' in component) {\n // Vue 2 has $refs under v-for as an array.\n return component['0']\n }\n // Vue 3 does not support $refs as array.\n return component\n },\n },\n components: {\n Anchors,\n Category,\n Preview,\n Search,\n },\n}\n</script>\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.EmojiMart=t():e.EmojiMart=t()}(\"undefined\"!=typeof self?self:this,(function(){return function(){var e={537:function(){\"undefined\"!=typeof window&&function(){for(var e=0,t=[\"ms\",\"moz\",\"webkit\",\"o\"],i=0;i<t.length&&!window.requestAnimationFrame;++i)window.requestAnimationFrame=window[t[i]+\"RequestAnimationFrame\"],window.cancelAnimationFrame=window[t[i]+\"CancelAnimationFrame\"]||window[t[i]+\"CancelRequestAnimationFrame\"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t,i){var n=(new Date).getTime(),r=Math.max(0,16-(n-e)),o=window.setTimeout((function(){t(n+r)}),r);return e=n+r,o}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(e){clearTimeout(e)})}()}},t={};function i(n){var r=t[n];if(void 0!==r)return r.exports;var o=t[n]={exports:{}};return e[n](o,o.exports,i),o.exports}i.d=function(e,t){for(var n in t)i.o(t,n)&&!i.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})};var n={};return function(){\"use strict\";i.r(n),i.d(n,{Anchors:function(){return k},Category:function(){return X},Emoji:function(){return J},EmojiData:function(){return N},EmojiIndex:function(){return R},EmojiView:function(){return $},Picker:function(){return se},Preview:function(){return G},Search:function(){return Q},Skins:function(){return Z},frequently:function(){return w},sanitize:function(){return D},store:function(){return c},uncompress:function(){return p}});var e,t,r=\"emoji-mart\",o=JSON,s=\"undefined\"!=typeof window&&\"localStorage\"in window;function a(e,i){if(t)t(e,i);else{if(!s)return;try{window.localStorage[\"\".concat(r,\".\").concat(e)]=o.stringify(i)}catch(e){}}}var c={update:function(e){for(var t in e)a(t,e[t])},set:a,get:function(t){if(e)return e(t);if(s){try{var i=window.localStorage[\"\".concat(r,\".\").concat(t)]}catch(e){return}return i?JSON.parse(i):void 0}},setNamespace:function(e){r=e},setHandlers:function(i){i||(i={}),e=i.getter,t=i.setter}};function u(e){return u=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},u(e)}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,n=new Array(t);i<t;i++)n[i]=e[i];return n}var h={name:\"a\",unified:\"b\",non_qualified:\"c\",has_img_apple:\"d\",has_img_google:\"e\",has_img_twitter:\"f\",has_img_facebook:\"h\",keywords:\"j\",sheet:\"k\",emoticons:\"l\",text:\"m\",short_names:\"n\",added_in:\"o\"},m=function(e){var t=[],i=function(e,i){e&&(Array.isArray(e)?e:[e]).forEach((function(e){(i?e.split(/[-|_|\\s]+/):[e]).forEach((function(e){e=e.toLowerCase(),-1==t.indexOf(e)&&t.push(e)}))}))};return i(e.short_names,!0),i(e.name,!0),i(e.keywords,!1),i(e.emoticons,!1),t.join(\",\")};function d(e){var t,i=function(e,t){var i=\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(!i){if(Array.isArray(e)||(i=function(e,t){if(e){if(\"string\"==typeof e)return l(e,t);var i=Object.prototype.toString.call(e).slice(8,-1);return\"Object\"===i&&e.constructor&&(i=e.constructor.name),\"Map\"===i||\"Set\"===i?Array.from(e):\"Arguments\"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?l(e,t):void 0}}(e))||t&&e&&\"number\"==typeof e.length){i&&(e=i);var n=0,r=function(){};return{s:r,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:r}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var o,s=!0,a=!1;return{s:function(){i=i.call(e)},n:function(){var e=i.next();return s=e.done,e},e:function(e){a=!0,o=e},f:function(){try{s||null==i.return||i.return()}finally{if(a)throw o}}}}(Object.getOwnPropertyNames(e));try{for(i.s();!(t=i.n()).done;){var n=t.value,r=e[n];e[n]=r&&\"object\"===u(r)?d(r):r}}catch(e){i.e(e)}finally{i.f()}return Object.freeze(e)}var f,v,p=function(e){if(!e.compressed)return e;for(var t in e.compressed=!1,e.emojis){var i=e.emojis[t];for(var n in h)i[n]=i[h[n]],delete i[h[n]];i.short_names||(i.short_names=[]),i.short_names.unshift(t),i.sheet_x=i.sheet[0],i.sheet_y=i.sheet[1],delete i.sheet,i.text||(i.text=\"\"),i.added_in||(i.added_in=6),i.added_in=i.added_in.toFixed(1),i.search=m(i)}return d(e)},j=[\"+1\",\"grinning\",\"kissing_heart\",\"heart_eyes\",\"laughing\",\"stuck_out_tongue_winking_eye\",\"sweat_smile\",\"joy\",\"scream\",\"disappointed\",\"unamused\",\"weary\",\"sob\",\"sunglasses\",\"heart\",\"hankey\"],g={};function y(){v=!0,f=c.get(\"frequently\")}var w={add:function(e){v||y();var t=e.id;f||(f=g),f[t]||(f[t]=0),f[t]+=1,c.set(\"last\",t),c.set(\"frequently\",f)},get:function(e){if(v||y(),!f){g={};for(var t=[],i=Math.min(e,j.length),n=0;n<i;n++)g[j[n]]=parseInt((i-n)/4,10)+1,t.push(j[n]);return t}var r=e,o=[];for(var s in f)f.hasOwnProperty(s)&&o.push(s);var a=o.sort((function(e,t){return f[e]-f[t]})).reverse().slice(0,r),u=c.get(\"last\");return u&&-1==a.indexOf(u)&&(a.pop(),a.push(u)),a}},_={activity:'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M12 0C5.373 0 0 5.372 0 12c0 6.627 5.373 12 12 12 6.628 0 12-5.373 12-12 0-6.628-5.372-12-12-12m9.949 11H17.05c.224-2.527 1.232-4.773 1.968-6.113A9.966 9.966 0 0 1 21.949 11M13 11V2.051a9.945 9.945 0 0 1 4.432 1.564c-.858 1.491-2.156 4.22-2.392 7.385H13zm-2 0H8.961c-.238-3.165-1.536-5.894-2.393-7.385A9.95 9.95 0 0 1 11 2.051V11zm0 2v8.949a9.937 9.937 0 0 1-4.432-1.564c.857-1.492 2.155-4.221 2.393-7.385H11zm4.04 0c.236 3.164 1.534 5.893 2.392 7.385A9.92 9.92 0 0 1 13 21.949V13h2.04zM4.982 4.887C5.718 6.227 6.726 8.473 6.951 11h-4.9a9.977 9.977 0 0 1 2.931-6.113M2.051 13h4.9c-.226 2.527-1.233 4.771-1.969 6.113A9.972 9.972 0 0 1 2.051 13m16.967 6.113c-.735-1.342-1.744-3.586-1.968-6.113h4.899a9.961 9.961 0 0 1-2.931 6.113\"/></svg>',custom:'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><g transform=\"translate(2.000000, 1.000000)\"><rect id=\"Rectangle\" x=\"8\" y=\"0\" width=\"3\" height=\"21\" rx=\"1.5\"></rect><rect id=\"Rectangle\" transform=\"translate(9.843, 10.549) rotate(60) translate(-9.843, -10.549) \" x=\"8.343\" y=\"0.049\" width=\"3\" height=\"21\" rx=\"1.5\"></rect><rect id=\"Rectangle\" transform=\"translate(9.843, 10.549) rotate(-60) translate(-9.843, -10.549) \" x=\"8.343\" y=\"0.049\" width=\"3\" height=\"21\" rx=\"1.5\"></rect></g></svg>',flags:'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M0 0l6.084 24H8L1.916 0zM21 5h-4l-1-4H4l3 12h3l1 4h13L21 5zM6.563 3h7.875l2 8H8.563l-2-8zm8.832 10l-2.856 1.904L12.063 13h3.332zM19 13l-1.5-6h1.938l2 8H16l3-2z\"/></svg>',foods:'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M17 4.978c-1.838 0-2.876.396-3.68.934.513-1.172 1.768-2.934 4.68-2.934a1 1 0 0 0 0-2c-2.921 0-4.629 1.365-5.547 2.512-.064.078-.119.162-.18.244C11.73 1.838 10.798.023 9.207.023 8.579.022 7.85.306 7 .978 5.027 2.54 5.329 3.902 6.492 4.999 3.609 5.222 0 7.352 0 12.969c0 4.582 4.961 11.009 9 11.009 1.975 0 2.371-.486 3-1 .629.514 1.025 1 3 1 4.039 0 9-6.418 9-11 0-5.953-4.055-8-7-8M8.242 2.546c.641-.508.943-.523.965-.523.426.169.975 1.405 1.357 3.055-1.527-.629-2.741-1.352-2.98-1.846.059-.112.241-.356.658-.686M15 21.978c-1.08 0-1.21-.109-1.559-.402l-.176-.146c-.367-.302-.816-.452-1.266-.452s-.898.15-1.266.452l-.176.146c-.347.292-.477.402-1.557.402-2.813 0-7-5.389-7-9.009 0-5.823 4.488-5.991 5-5.991 1.939 0 2.484.471 3.387 1.251l.323.276a1.995 1.995 0 0 0 2.58 0l.323-.276c.902-.78 1.447-1.251 3.387-1.251.512 0 5 .168 5 6 0 3.617-4.187 9-7 9\"/></svg>',nature:'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M15.5 8a1.5 1.5 0 1 0 .001 3.001A1.5 1.5 0 0 0 15.5 8M8.5 8a1.5 1.5 0 1 0 .001 3.001A1.5 1.5 0 0 0 8.5 8\"/><path d=\"M18.933 0h-.027c-.97 0-2.138.787-3.018 1.497-1.274-.374-2.612-.51-3.887-.51-1.285 0-2.616.133-3.874.517C7.245.79 6.069 0 5.093 0h-.027C3.352 0 .07 2.67.002 7.026c-.039 2.479.276 4.238 1.04 5.013.254.258.882.677 1.295.882.191 3.177.922 5.238 2.536 6.38.897.637 2.187.949 3.2 1.102C8.04 20.6 8 20.795 8 21c0 1.773 2.35 3 4 3 1.648 0 4-1.227 4-3 0-.201-.038-.393-.072-.586 2.573-.385 5.435-1.877 5.925-7.587.396-.22.887-.568 1.104-.788.763-.774 1.079-2.534 1.04-5.013C23.929 2.67 20.646 0 18.933 0M3.223 9.135c-.237.281-.837 1.155-.884 1.238-.15-.41-.368-1.349-.337-3.291.051-3.281 2.478-4.972 3.091-5.031.256.015.731.27 1.265.646-1.11 1.171-2.275 2.915-2.352 5.125-.133.546-.398.858-.783 1.313M12 22c-.901 0-1.954-.693-2-1 0-.654.475-1.236 1-1.602V20a1 1 0 1 0 2 0v-.602c.524.365 1 .947 1 1.602-.046.307-1.099 1-2 1m3-3.48v.02a4.752 4.752 0 0 0-1.262-1.02c1.092-.516 2.239-1.334 2.239-2.217 0-1.842-1.781-2.195-3.977-2.195-2.196 0-3.978.354-3.978 2.195 0 .883 1.148 1.701 2.238 2.217A4.8 4.8 0 0 0 9 18.539v-.025c-1-.076-2.182-.281-2.973-.842-1.301-.92-1.838-3.045-1.853-6.478l.023-.041c.496-.826 1.49-1.45 1.804-3.102 0-2.047 1.357-3.631 2.362-4.522C9.37 3.178 10.555 3 11.948 3c1.447 0 2.685.192 3.733.57 1 .9 2.316 2.465 2.316 4.48.313 1.651 1.307 2.275 1.803 3.102.035.058.068.117.102.178-.059 5.967-1.949 7.01-4.902 7.19m6.628-8.202c-.037-.065-.074-.13-.113-.195a7.587 7.587 0 0 0-.739-.987c-.385-.455-.648-.768-.782-1.313-.076-2.209-1.241-3.954-2.353-5.124.531-.376 1.004-.63 1.261-.647.636.071 3.044 1.764 3.096 5.031.027 1.81-.347 3.218-.37 3.235\"/></svg>',objects:'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M12 0a9 9 0 0 0-5 16.482V21s2.035 3 5 3 5-3 5-3v-4.518A9 9 0 0 0 12 0zm0 2c3.86 0 7 3.141 7 7s-3.14 7-7 7-7-3.141-7-7 3.14-7 7-7zM9 17.477c.94.332 1.946.523 3 .523s2.06-.19 3-.523v.834c-.91.436-1.925.689-3 .689a6.924 6.924 0 0 1-3-.69v-.833zm.236 3.07A8.854 8.854 0 0 0 12 21c.965 0 1.888-.167 2.758-.451C14.155 21.173 13.153 22 12 22c-1.102 0-2.117-.789-2.764-1.453z\"/><path d=\"M14.745 12.449h-.004c-.852-.024-1.188-.858-1.577-1.824-.421-1.061-.703-1.561-1.182-1.566h-.009c-.481 0-.783.497-1.235 1.537-.436.982-.801 1.811-1.636 1.791l-.276-.043c-.565-.171-.853-.691-1.284-1.794-.125-.313-.202-.632-.27-.913-.051-.213-.127-.53-.195-.634C7.067 9.004 7.039 9 6.99 9A1 1 0 0 1 7 7h.01c1.662.017 2.015 1.373 2.198 2.134.486-.981 1.304-2.058 2.797-2.075 1.531.018 2.28 1.153 2.731 2.141l.002-.008C14.944 8.424 15.327 7 16.979 7h.032A1 1 0 1 1 17 9h-.011c-.149.076-.256.474-.319.709a6.484 6.484 0 0 1-.311.951c-.429.973-.79 1.789-1.614 1.789\"/></svg>',smileys:'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0m0 22C6.486 22 2 17.514 2 12S6.486 2 12 2s10 4.486 10 10-4.486 10-10 10\"/><path d=\"M8 7a2 2 0 1 0-.001 3.999A2 2 0 0 0 8 7M16 7a2 2 0 1 0-.001 3.999A2 2 0 0 0 16 7M15.232 15c-.693 1.195-1.87 2-3.349 2-1.477 0-2.655-.805-3.347-2H15m3-2H6a6 6 0 1 0 12 0\"/></svg>',people:'<svg xmlns:svg=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" viewBox=\"0 0 24 24\"> <path id=\"path3814\" d=\"m 3.3591089,21.17726 c 0.172036,0.09385 4.265994,2.29837 8.8144451,2.29837 4.927767,0 8.670894,-2.211883 8.82782,-2.306019 0.113079,-0.06785 0.182268,-0.190051 0.182267,-0.321923 0,-3.03119 -0.929494,-5.804936 -2.617196,-7.810712 -1.180603,-1.403134 -2.661918,-2.359516 -4.295699,-2.799791 4.699118,-2.236258 3.102306,-9.28617162 -2.097191,-9.28617162 -5.1994978,0 -6.7963103,7.04991362 -2.097192,9.28617162 -1.6337821,0.440275 -3.1150971,1.396798 -4.2956991,2.799791 -1.687703,2.005776 -2.617196,4.779522 -2.617196,7.810712 1.2e-6,0.137378 0.075039,0.263785 0.195641,0.329572 z M 8.0439319,5.8308783 C 8.0439309,2.151521 12.492107,0.30955811 15.093491,2.9109411 17.694874,5.5123241 15.852911,9.9605006 12.173554,9.9605 9.8938991,9.9579135 8.0465186,8.1105332 8.0439319,5.8308783 Z m -1.688782,7.6894977 c 1.524535,-1.811449 3.5906601,-2.809035 5.8184041,-2.809035 2.227744,0 4.293869,0.997586 5.818404,2.809035 1.533639,1.822571 2.395932,4.339858 2.439152,7.108301 -0.803352,0.434877 -4.141636,2.096112 -8.257556,2.096112 -3.8062921,0 -7.3910861,-1.671043 -8.2573681,-2.104981 0.04505,-2.765017 0.906968,-5.278785 2.438964,-7.099432 z\" /> <path id=\"path3816\" d=\"M 12.173828 0.38867188 C 9.3198513 0.38867187 7.3770988 2.3672285 6.8652344 4.6308594 C 6.4218608 6.5916015 7.1153562 8.7676117 8.9648438 10.126953 C 7.6141249 10.677376 6.3550511 11.480944 5.3496094 12.675781 C 3.5629317 14.799185 2.6015625 17.701475 2.6015625 20.847656 C 2.6015654 21.189861 2.7894276 21.508002 3.0898438 21.671875 C 3.3044068 21.788925 7.4436239 24.039062 12.173828 24.039062 C 17.269918 24.039062 21.083568 21.776786 21.291016 21.652344 C 21.57281 21.483266 21.746097 21.176282 21.746094 20.847656 C 21.746094 17.701475 20.78277 14.799185 18.996094 12.675781 C 17.990455 11.480591 16.733818 10.675362 15.382812 10.125 C 17.231132 8.7655552 17.925675 6.5910701 17.482422 4.6308594 C 16.970557 2.3672285 15.027805 0.38867188 12.173828 0.38867188 z M 12.792969 2.3007812 C 13.466253 2.4161792 14.125113 2.7383941 14.695312 3.3085938 C 15.835712 4.4489931 15.985604 5.9473549 15.46875 7.1953125 C 14.951896 8.4432701 13.786828 9.3984378 12.173828 9.3984375 C 10.197719 9.3961954 8.607711 7.806187 8.6054688 5.8300781 C 8.6054683 4.2170785 9.5606362 3.0520102 10.808594 2.5351562 C 11.432573 2.2767293 12.119685 2.1853833 12.792969 2.3007812 z M 12.173828 11.273438 C 14.233647 11.273438 16.133674 12.185084 17.5625 13.882812 C 18.93069 15.508765 19.698347 17.776969 19.808594 20.283203 C 18.807395 20.800235 15.886157 22.162109 12.173828 22.162109 C 8.7614632 22.162109 5.6245754 20.787069 4.5390625 20.265625 C 4.6525896 17.766717 5.4203315 15.504791 6.7851562 13.882812 C 8.2139827 12.185084 10.11401 11.273438 12.173828 11.273438 z \" /> </svg>',places:'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M6.5 12C5.122 12 4 13.121 4 14.5S5.122 17 6.5 17 9 15.879 9 14.5 7.878 12 6.5 12m0 3c-.275 0-.5-.225-.5-.5s.225-.5.5-.5.5.225.5.5-.225.5-.5.5M17.5 12c-1.378 0-2.5 1.121-2.5 2.5s1.122 2.5 2.5 2.5 2.5-1.121 2.5-2.5-1.122-2.5-2.5-2.5m0 3c-.275 0-.5-.225-.5-.5s.225-.5.5-.5.5.225.5.5-.225.5-.5.5\"/><path d=\"M22.482 9.494l-1.039-.346L21.4 9h.6c.552 0 1-.439 1-.992 0-.006-.003-.008-.003-.008H23c0-1-.889-2-1.984-2h-.642l-.731-1.717C19.262 3.012 18.091 2 16.764 2H7.236C5.909 2 4.738 3.012 4.357 4.283L3.626 6h-.642C1.889 6 1 7 1 8h.003S1 8.002 1 8.008C1 8.561 1.448 9 2 9h.6l-.043.148-1.039.346a2.001 2.001 0 0 0-1.359 2.097l.751 7.508a1 1 0 0 0 .994.901H3v1c0 1.103.896 2 2 2h2c1.104 0 2-.897 2-2v-1h6v1c0 1.103.896 2 2 2h2c1.104 0 2-.897 2-2v-1h1.096a.999.999 0 0 0 .994-.901l.751-7.508a2.001 2.001 0 0 0-1.359-2.097M6.273 4.857C6.402 4.43 6.788 4 7.236 4h9.527c.448 0 .834.43.963.857L19.313 9H4.688l1.585-4.143zM7 21H5v-1h2v1zm12 0h-2v-1h2v1zm2.189-3H2.811l-.662-6.607L3 11h18l.852.393L21.189 18z\"/></svg>',recent:'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M13 4h-2l-.001 7H9v2h2v2h2v-2h4v-2h-4z\"/><path d=\"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0m0 22C6.486 22 2 17.514 2 12S6.486 2 12 2s10 4.486 10 10-4.486 10-10 10\"/></svg>',symbols:'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M0 0h11v2H0zM4 11h3V6h4V4H0v2h4zM15.5 17c1.381 0 2.5-1.116 2.5-2.493s-1.119-2.493-2.5-2.493S13 13.13 13 14.507 14.119 17 15.5 17m0-2.986c.276 0 .5.222.5.493 0 .272-.224.493-.5.493s-.5-.221-.5-.493.224-.493.5-.493M21.5 19.014c-1.381 0-2.5 1.116-2.5 2.493S20.119 24 21.5 24s2.5-1.116 2.5-2.493-1.119-2.493-2.5-2.493m0 2.986a.497.497 0 0 1-.5-.493c0-.271.224-.493.5-.493s.5.222.5.493a.497.497 0 0 1-.5.493M22 13l-9 9 1.513 1.5 8.99-9.009zM17 11c2.209 0 4-1.119 4-2.5V2s.985-.161 1.498.949C23.01 4.055 23 6 23 6s1-1.119 1-3.135C24-.02 21 0 21 0h-2v6.347A5.853 5.853 0 0 0 17 6c-2.209 0-4 1.119-4 2.5s1.791 2.5 4 2.5M10.297 20.482l-1.475-1.585a47.54 47.54 0 0 1-1.442 1.129c-.307-.288-.989-1.016-2.045-2.183.902-.836 1.479-1.466 1.729-1.892s.376-.871.376-1.336c0-.592-.273-1.178-.818-1.759-.546-.581-1.329-.871-2.349-.871-1.008 0-1.79.293-2.344.879-.556.587-.832 1.181-.832 1.784 0 .813.419 1.748 1.256 2.805-.847.614-1.444 1.208-1.794 1.784a3.465 3.465 0 0 0-.523 1.833c0 .857.308 1.56.924 2.107.616.549 1.423.823 2.42.823 1.173 0 2.444-.379 3.813-1.137L8.235 24h2.819l-2.09-2.383 1.333-1.135zm-6.736-6.389a1.02 1.02 0 0 1 .73-.286c.31 0 .559.085.747.254a.849.849 0 0 1 .283.659c0 .518-.419 1.112-1.257 1.784-.536-.651-.805-1.231-.805-1.742a.901.901 0 0 1 .302-.669M3.74 22c-.427 0-.778-.116-1.057-.349-.279-.232-.418-.487-.418-.766 0-.594.509-1.288 1.527-2.083.968 1.134 1.717 1.946 2.248 2.438-.921.507-1.686.76-2.3.76\"/></svg>'};function b(e,t,i,n,r,o,s,a){var c,u=\"function\"==typeof e?e.options:e;if(t&&(u.render=t,u.staticRenderFns=i,u._compiled=!0),n&&(u.functional=!0),o&&(u._scopeId=\"data-v-\"+o),s?(c=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||\"undefined\"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),r&&r.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(s)},u._ssrRegister=c):r&&(c=a?function(){r.call(this,(u.functional?this.parent:this).$root.$options.shadowRoot)}:r),c)if(u.functional){u._injectStyles=c;var l=u.render;u.render=function(e,t){return c.call(t),l(e,t)}}else{var h=u.beforeCreate;u.beforeCreate=h?[].concat(h,c):[c]}return{exports:e,options:u}}var C=b({props:{i18n:{type:Object,required:!0},color:{type:String},categories:{type:Array,required:!0},activeCategory:{type:Object,default:function(){return{}}}},emits:[\"click\"],created:function(){this.svgs=_}},(function(){var e=this,t=e._self._c;return t(\"div\",{staticClass:\"emoji-mart-anchors\",attrs:{role:\"tablist\"}},e._l(e.categories,(function(i){return t(\"button\",{key:i.id,class:{\"emoji-mart-anchor\":!0,\"emoji-mart-anchor-selected\":i.id==e.activeCategory.id},style:{color:i.id==e.activeCategory.id?e.color:\"\"},attrs:{role:\"tab\",type:\"button\",\"aria-label\":i.name,\"aria-selected\":i.id==e.activeCategory.id,\"data-title\":e.i18n.categories[i.id]},on:{click:function(t){return e.$emit(\"click\",i)}}},[t(\"div\",{attrs:{\"aria-hidden\":\"true\"},domProps:{innerHTML:e._s(e.svgs[i.id])}}),e._v(\" \"),t(\"span\",{staticClass:\"emoji-mart-anchor-bar\",style:{backgroundColor:e.color},attrs:{\"aria-hidden\":\"true\"}})])})),0)}),[],!1,null,null,null),k=C.exports;function E(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function S(e){var t=function(e,t){if(\"object\"!=u(e)||!e)return e;var i=e[Symbol.toPrimitive];if(void 0!==i){var n=i.call(e,\"string\");if(\"object\"!=u(n))return n;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return String(e)}(e);return\"symbol\"==u(t)?t:t+\"\"}function x(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(e,S(n.key),n)}}function O(e,t,i){return t&&x(e.prototype,t),i&&x(e,i),Object.defineProperty(e,\"prototype\",{writable:!1}),e}var P=String.fromCodePoint||function(){var e,t,i=[],n=-1,r=arguments.length;if(!r)return\"\";for(var o=\"\";++n<r;){var s=Number(arguments[n]);if(!isFinite(s)||s<0||s>1114111||Math.floor(s)!=s)throw RangeError(\"Invalid code point: \"+s);s<=65535?i.push(s):(e=55296+((s-=65536)>>10),t=s%1024+56320,i.push(e,t)),(n+1===r||i.length>16384)&&(o+=String.fromCharCode.apply(null,i),i.length=0)}return o};function A(e){var t=e.split(\"-\").map((function(e){return\"0x\".concat(e)}));return P.apply(null,t)}function M(e){return e.reduce((function(e,t){return-1===e.indexOf(t)&&e.push(t),e}),[])}function I(e,t){var i=M(e),n=M(t);return i.filter((function(e){return n.indexOf(e)>=0}))}function F(e,t){var i={};for(var n in e){var r=e[n],o=r;Object.prototype.hasOwnProperty.call(t,n)&&(o=t[n]),\"object\"===u(o)&&(o=F(r,o)),i[n]=o}return i}function z(e,t){var i=\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(!i){if(Array.isArray(e)||(i=function(e,t){if(e){if(\"string\"==typeof e)return L(e,t);var i=Object.prototype.toString.call(e).slice(8,-1);return\"Object\"===i&&e.constructor&&(i=e.constructor.name),\"Map\"===i||\"Set\"===i?Array.from(e):\"Arguments\"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?L(e,t):void 0}}(e))||t&&e&&\"number\"==typeof e.length){i&&(e=i);var n=0,r=function(){};return{s:r,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:r}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var o,s=!0,a=!1;return{s:function(){i=i.call(e)},n:function(){var e=i.next();return s=e.done,e},e:function(e){a=!0,o=e},f:function(){try{s||null==i.return||i.return()}finally{if(a)throw o}}}}function L(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,n=new Array(t);i<t;i++)n[i]=e[i];return n}var T=/^(?:\\:([^\\:]+)\\:)(?:\\:skin-tone-(\\d)\\:)?$/,q=[\"1F3FA\",\"1F3FB\",\"1F3FC\",\"1F3FD\",\"1F3FE\",\"1F3FF\"],R=function(){return O((function e(t){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=i.emojisToShowFilter,r=i.include,o=i.exclude,s=i.custom,a=i.recent,c=i.recentLength,u=void 0===c?20:c;E(this,e),this._data=p(t),this._emojisFilter=n||null,this._include=r||null,this._exclude=o||null,this._custom=s||[],this._recent=a||w.get(u),this._emojis={},this._nativeEmojis={},this._emoticons={},this._categories=[],this._recentCategory={id:\"recent\",name:\"Recent\",emojis:[]},this._customCategory={id:\"custom\",name:\"Custom\",emojis:[]},this._searchIndex={},this.buildIndex(),Object.freeze(this)}),[{key:\"buildIndex\",value:function(){var e=this,t=this._data.categories;if(this._include&&(t=(t=t.filter((function(t){return e._include.includes(t.id)}))).sort((function(t,i){var n=e._include.indexOf(t.id),r=e._include.indexOf(i.id);return n<r?-1:n>r?1:0}))),t.forEach((function(t){if(e.isCategoryNeeded(t.id)){var i={id:t.id,name:t.name,emojis:[]};t.emojis.forEach((function(t){var n=e.addEmoji(t);n&&i.emojis.push(n)})),i.emojis.length&&e._categories.push(i)}})),this.isCategoryNeeded(\"custom\")){if(this._custom.length>0){var i,n=z(this._custom);try{for(n.s();!(i=n.n()).done;){var r=i.value;this.addCustomEmoji(r)}}catch(e){n.e(e)}finally{n.f()}}this._customCategory.emojis.length&&this._categories.push(this._customCategory)}this.isCategoryNeeded(\"recent\")&&(this._recent.length&&this._recent.map((function(t){var i,n=z(e._customCategory.emojis);try{for(n.s();!(i=n.n()).done;){var r=i.value;if(r.id===t)return void e._recentCategory.emojis.push(r)}}catch(e){n.e(e)}finally{n.f()}e.hasEmoji(t)&&e._recentCategory.emojis.push(e.emoji(t))})),this._recentCategory.emojis.length&&this._categories.unshift(this._recentCategory))}},{key:\"findEmoji\",value:function(e,t){var i=e.match(T);if(i&&(e=i[1],i[2]&&(t=parseInt(i[2],10))),this._data.aliases.hasOwnProperty(e)&&(e=this._data.aliases[e]),this._emojis.hasOwnProperty(e)){var n=this._emojis[e];return t?n.getSkin(t):n}return this._nativeEmojis.hasOwnProperty(e)?this._nativeEmojis[e]:null}},{key:\"categories\",value:function(){return this._categories}},{key:\"emoji\",value:function(e){this._data.aliases.hasOwnProperty(e)&&(e=this._data.aliases[e]);var t=this._emojis[e];if(!t)throw new Error(\"Can not find emoji by id: \"+e);return t}},{key:\"firstEmoji\",value:function(){var e=this._emojis[Object.keys(this._emojis)[0]];if(!e)throw new Error(\"Can not get first emoji\");return e}},{key:\"hasEmoji\",value:function(e){return this._data.aliases.hasOwnProperty(e)&&(e=this._data.aliases[e]),!!this._emojis[e]}},{key:\"nativeEmoji\",value:function(e){return this._nativeEmojis.hasOwnProperty(e)?this._nativeEmojis[e]:null}},{key:\"search\",value:function(e,t){var i=this;if(t||(t=75),!e.length)return null;if(\"-\"==e||\"-1\"==e)return[this.emoji(\"-1\")];var n,r=e.toLowerCase().split(/[\\s|,|\\-|_]+/);r.length>2&&(r=[r[0],r[1]]),n=r.map((function(e){for(var t=i._emojis,n=i._searchIndex,r=0,o=function(){var i=e[s];if(r++,n[i]||(n[i]={}),!(n=n[i]).results){var o={};for(var a in n.results=[],n.emojis={},t){var c=t[a],u=c._data.search,l=e.substr(0,r),h=u.indexOf(l);if(-1!=h){var m=h+1;l==a&&(m=0),n.results.push(c),n.emojis[a]=c,o[a]=m}}n.results.sort((function(e,t){return o[e.id]-o[t.id]}))}t=n.emojis},s=0;s<e.length;s++)o();return n.results})).filter((function(e){return e}));var o=null;return(o=n.length>1?I.apply(null,n):n.length?n[0]:[])&&o.length>t&&(o=o.slice(0,t)),o}},{key:\"addCustomEmoji\",value:function(e){var t=Object.assign({},e,{id:e.short_names[0],custom:!0});t.search||(t.search=m(t));var i=new N(t);return this._emojis[i.id]=i,this._customCategory.emojis.push(i),i}},{key:\"addEmoji\",value:function(e){var t=this,i=this._data.emojis[e];if(!this.isEmojiNeeded(i))return!1;var n=new N(i);if(this._emojis[e]=n,n.native&&(this._nativeEmojis[n.native]=n),n._skins)for(var r in n._skins){var o=n._skins[r];o.native&&(this._nativeEmojis[o.native]=o)}return n.emoticons&&n.emoticons.forEach((function(i){t._emoticons[i]||(t._emoticons[i]=e)})),n}},{key:\"isCategoryNeeded\",value:function(e){var t=!this._include||!this._include.length||this._include.indexOf(e)>-1,i=!(!this._exclude||!this._exclude.length)&&this._exclude.indexOf(e)>-1;return!(!t||i)}},{key:\"isEmojiNeeded\",value:function(e){return!this._emojisFilter||this._emojisFilter(e)}}])}(),N=function(){return O((function e(t){if(E(this,e),this._data=Object.assign({},t),this._skins=null,this._data.skin_variations)for(var i in this._skins=[],q){var n=q[i],r=this._data.skin_variations[n],o=Object.assign({},t);for(var s in r)o[s]=r[s];delete o.skin_variations,o.skin_tone=parseInt(i)+1,this._skins.push(new e(o))}for(var a in this._sanitized=D(this._data),this._sanitized)this[a]=this._sanitized[a];this.short_names=this._data.short_names,this.short_name=this._data.short_names[0],Object.freeze(this)}),[{key:\"getSkin\",value:function(e){return e&&\"native\"!=e&&this._skins?this._skins[e-1]:this}},{key:\"getPosition\",value:function(){var e=+(100/60*this._data.sheet_x).toFixed(2),t=+(100/60*this._data.sheet_y).toFixed(2);return\"\".concat(e,\"% \").concat(t,\"%\")}},{key:\"ariaLabel\",value:function(){return[this.native].concat(this.short_names).filter(Boolean).join(\", \")}}])}(),$=function(){return O((function e(t,i,n,r,o,s,a){E(this,e),this._emoji=t,this._native=r,this._skin=i,this._set=n,this._fallback=o,this.canRender=this._canRender(),this.cssClass=this._cssClass(),this.cssStyle=this._cssStyle(a),this.content=this._content(),this.title=!0===s?t.short_name:null,this.ariaLabel=t.ariaLabel(),Object.freeze(this)}),[{key:\"getEmoji\",value:function(){return this._emoji.getSkin(this._skin)}},{key:\"_canRender\",value:function(){return this._isCustom()||this._isNative()||this._hasEmoji()||this._fallback}},{key:\"_cssClass\",value:function(){return[\"emoji-set-\"+this._set,\"emoji-type-\"+this._emojiType()]}},{key:\"_cssStyle\",value:function(e){var t={};return this._isCustom()?t={backgroundImage:\"url(\"+this.getEmoji()._data.imageUrl+\")\",backgroundSize:\"100%\",width:e+\"px\",height:e+\"px\"}:this._hasEmoji()&&!this._isNative()&&(t={backgroundPosition:this.getEmoji().getPosition()}),e&&(t=this._isNative()?Object.assign(t,{fontSize:Math.round(.95*e*10)/10+\"px\"}):Object.assign(t,{width:e+\"px\",height:e+\"px\"})),t}},{key:\"_content\",value:function(){return this._isCustom()?\"\":this._isNative()?this.getEmoji().native:this._hasEmoji()?\"\":this._fallback?this._fallback(this.getEmoji()):null}},{key:\"_isNative\",value:function(){return this._native}},{key:\"_isCustom\",value:function(){return this.getEmoji().custom}},{key:\"_hasEmoji\",value:function(){if(!this.getEmoji()._data)return!1;var e=this.getEmoji()._data[\"has_img_\"+this._set];return void 0===e||e}},{key:\"_emojiType\",value:function(){return this._isCustom()?\"custom\":this._isNative()?\"native\":this._hasEmoji()?\"image\":\"fallback\"}}])}();function D(e){var t=e.name,i=e.short_names,n=e.skin_tone,r=e.skin_variations,o=e.emoticons,s=e.unified,a=e.custom,c=e.imageUrl,u=e.id||i[0],l=\":\".concat(u,\":\");return a?{id:u,name:t,colons:l,emoticons:o,custom:a,imageUrl:c}:(n&&(l+=\":skin-tone-\".concat(n,\":\")),{id:u,name:t,colons:l,emoticons:o,unified:s.toLowerCase(),skin:n||(r?1:null),native:A(s)})}function B(e,t,i){return(t=S(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}var H={native:{type:Boolean,default:!1},tooltip:{type:Boolean,default:!1},fallback:{type:Function},skin:{type:Number,default:1},set:{type:String,default:\"apple\"},emoji:{type:[String,Object],required:!0},size:{type:Number,default:null},tag:{type:String,default:\"span\"}},U={perLine:{type:Number,default:9},maxSearchResults:{type:Number,default:75},emojiSize:{type:Number,default:24},title:{type:String,default:\"Emoji Mart™\"},emoji:{type:String,default:\"department_store\"},color:{type:String,default:\"#ae65c5\"},set:{type:String,default:\"apple\"},skin:{type:Number,default:null},defaultSkin:{type:Number,default:1},native:{type:Boolean,default:!1},emojiTooltip:{type:Boolean,default:!1},autoFocus:{type:Boolean,default:!1},i18n:{type:Object,default:function(){return{}}},showPreview:{type:Boolean,default:!0},showSearch:{type:Boolean,default:!0},showCategories:{type:Boolean,default:!0},showSkinTones:{type:Boolean,default:!0},infiniteScroll:{type:Boolean,default:!0},pickerStyles:{type:Object,default:function(){return{}}}};function V(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function W(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?V(Object(i),!0).forEach((function(t){B(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):V(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}var J=b({props:W(W({},H),{},{data:{type:Object,required:!0}}),emits:[\"click\",\"mouseenter\",\"mouseleave\"],computed:{view:function(){return new $(this.emojiObject,this.skin,this.set,this.native,this.fallback,this.tooltip,this.size)},sanitizedData:function(){return this.emojiObject._sanitized},title:function(){return this.tooltip?this.emojiObject.short_name:null},emojiObject:function(){return\"string\"==typeof this.emoji?this.data.findEmoji(this.emoji):this.emoji}},created:function(){},methods:{onClick:function(){this.$emit(\"click\",this.emojiObject)},onMouseEnter:function(){this.$emit(\"mouseenter\",this.emojiObject)},onMouseLeave:function(){this.$emit(\"mouseleave\",this.emojiObject)}}},(function(){var e=this,t=e._self._c;return e.view.canRender?t(e.tag,{tag:\"component\",staticClass:\"emoji-mart-emoji\",attrs:{title:e.view.title,\"aria-label\":e.view.ariaLabel,\"data-title\":e.title},on:{mouseenter:e.onMouseEnter,mouseleave:e.onMouseLeave,click:e.onClick}},[t(\"span\",{class:e.view.cssClass,style:e.view.cssStyle},[e._v(e._s(e.view.content))])]):e._e()}),[],!1,null,null,null).exports,X=b({props:{data:{type:Object,required:!0},i18n:{type:Object,required:!0},id:{type:String,required:!0},name:{type:String,required:!0},emojis:{type:Array},emojiProps:{type:Object,required:!0}},methods:{activeClass:function(e){return this.emojiProps.selectedEmoji&&this.emojiProps.selectedEmojiCategory&&this.emojiProps.selectedEmoji.id==e.id&&this.emojiProps.selectedEmojiCategory.id==this.id?\"emoji-mart-emoji-selected\":\"\"}},computed:{isVisible:function(){return!!this.emojis},isSearch:function(){return\"Search\"==this.name},hasResults:function(){return this.emojis.length>0},emojiObjects:function(){var e=this;return this.emojis.map((function(t){return{emojiObject:t,emojiView:new $(t,e.emojiProps.skin,e.emojiProps.set,e.emojiProps.native,e.emojiProps.fallback,e.emojiProps.emojiTooltip,e.emojiProps.emojiSize)}}))}},components:{Emoji:J}},(function(){var e=this,t=e._self._c;return e.isVisible&&(e.isSearch||e.hasResults)?t(\"section\",{class:{\"emoji-mart-category\":!0,\"emoji-mart-no-results\":!e.hasResults},attrs:{\"aria-label\":e.i18n.categories[e.id]}},[t(\"div\",{staticClass:\"emoji-mart-category-label\"},[t(\"h3\",{staticClass:\"emoji-mart-category-label\"},[e._v(e._s(e.i18n.categories[e.id]))])]),e._v(\" \"),e._l(e.emojiObjects,(function(i){var n=i.emojiObject,r=i.emojiView;return[r.canRender?t(\"button\",{key:n.id,staticClass:\"emoji-mart-emoji\",class:e.activeClass(n),attrs:{\"aria-label\":r.ariaLabel,role:\"option\",\"aria-selected\":\"false\",\"aria-posinset\":\"1\",\"aria-setsize\":\"1812\",type:\"button\",\"data-title\":n.short_name,title:r.title},on:{mouseenter:function(t){e.emojiProps.onEnter(r.getEmoji())},mouseleave:function(t){e.emojiProps.onLeave(r.getEmoji())},click:function(t){e.emojiProps.onClick(r.getEmoji())}}},[t(\"span\",{class:r.cssClass,style:r.cssStyle},[e._v(e._s(r.content))])]):e._e()]})),e._v(\" \"),e.hasResults?e._e():t(\"div\",[t(\"emoji\",{attrs:{data:e.data,emoji:\"sleuth_or_spy\",native:e.emojiProps.native,skin:e.emojiProps.skin,set:e.emojiProps.set}}),e._v(\" \"),t(\"div\",{staticClass:\"emoji-mart-no-results-label\"},[e._v(e._s(e.i18n.notfound))])],1)],2):e._e()}),[],!1,null,null,null).exports,Z=b({props:{skin:{type:Number,required:!0}},emits:[\"change\"],data:function(){return{opened:!1}},methods:{onClick:function(e){this.opened&&e!=this.skin&&this.$emit(\"change\",e),this.opened=!this.opened}}},(function(){var e=this,t=e._self._c;return t(\"div\",{class:{\"emoji-mart-skin-swatches\":!0,\"emoji-mart-skin-swatches-opened\":e.opened}},e._l(6,(function(i){return t(\"span\",{key:i,class:{\"emoji-mart-skin-swatch\":!0,\"emoji-mart-skin-swatch-selected\":e.skin==i}},[t(\"span\",{class:\"emoji-mart-skin emoji-mart-skin-tone-\"+i,on:{click:function(t){return e.onClick(i)}}})])})),0)}),[],!1,null,null,null).exports,G=b({props:{data:{type:Object,required:!0},title:{type:String,required:!0},emoji:{type:[String,Object]},idleEmoji:{type:[String,Object],required:!0},showSkinTones:{type:Boolean,default:!0},emojiProps:{type:Object,required:!0},skinProps:{type:Object,required:!0},onSkinChange:{type:Function,required:!0}},computed:{emojiData:function(){return this.emoji?this.emoji:{}},emojiShortNames:function(){return this.emojiData.short_names},emojiEmoticons:function(){return this.emojiData.emoticons}},components:{Emoji:J,Skins:Z}},(function(){var e=this,t=e._self._c;return t(\"div\",{staticClass:\"emoji-mart-preview\"},[e.emoji?[t(\"div\",{staticClass:\"emoji-mart-preview-emoji\"},[t(\"emoji\",{attrs:{data:e.data,emoji:e.emoji,native:e.emojiProps.native,skin:e.emojiProps.skin,set:e.emojiProps.set}})],1),e._v(\" \"),t(\"div\",{staticClass:\"emoji-mart-preview-data\"},[t(\"div\",{staticClass:\"emoji-mart-preview-name\"},[e._v(e._s(e.emoji.name))]),e._v(\" \"),t(\"div\",{staticClass:\"emoji-mart-preview-shortnames\"},e._l(e.emojiShortNames,(function(i){return t(\"span\",{key:i,staticClass:\"emoji-mart-preview-shortname\"},[e._v(\":\"+e._s(i)+\":\")])})),0),e._v(\" \"),t(\"div\",{staticClass:\"emoji-mart-preview-emoticons\"},e._l(e.emojiEmoticons,(function(i){return t(\"span\",{key:i,staticClass:\"emoji-mart-preview-emoticon\"},[e._v(e._s(i))])})),0)])]:[t(\"div\",{staticClass:\"emoji-mart-preview-emoji\"},[t(\"emoji\",{attrs:{data:e.data,emoji:e.idleEmoji,native:e.emojiProps.native,skin:e.emojiProps.skin,set:e.emojiProps.set}})],1),e._v(\" \"),t(\"div\",{staticClass:\"emoji-mart-preview-data\"},[t(\"span\",{staticClass:\"emoji-mart-title-label\"},[e._v(e._s(e.title))])]),e._v(\" \"),e.showSkinTones?t(\"div\",{staticClass:\"emoji-mart-preview-skins\"},[t(\"skins\",{attrs:{skin:e.skinProps.skin},on:{change:function(t){return e.onSkinChange(t)}}})],1):e._e()]],2)}),[],!1,null,null,null).exports,K=b({props:{data:{type:Object,required:!0},i18n:{type:Object,required:!0},autoFocus:{type:Boolean,default:!1},onSearch:{type:Function,required:!0},onArrowLeft:{type:Function,required:!1},onArrowRight:{type:Function,required:!1},onArrowDown:{type:Function,required:!1},onArrowUp:{type:Function,required:!1},onEnter:{type:Function,required:!1}},emits:[\"search\",\"enter\",\"arrowUp\",\"arrowDown\",\"arrowRight\",\"arrowLeft\"],data:function(){return{value:\"\"}},computed:{emojiIndex:function(){return this.data}},watch:{value:function(){this.$emit(\"search\",this.value)}},methods:{clear:function(){this.value=\"\"}},mounted:function(){var e=this.$el.querySelector(\"input\");this.autoFocus&&e.focus()}},(function(){var e=this,t=e._self._c;return t(\"div\",{staticClass:\"emoji-mart-search\"},[t(\"input\",{directives:[{name:\"model\",rawName:\"v-model\",value:e.value,expression:\"value\"}],attrs:{type:\"text\",placeholder:e.i18n.search,role:\"textbox\",\"aria-autocomplete\":\"list\",\"aria-owns\":\"emoji-mart-list\",\"aria-label\":\"Search for an emoji\",\"aria-describedby\":\"emoji-mart-search-description\"},domProps:{value:e.value},on:{keydown:[function(t){return!t.type.indexOf(\"key\")&&e._k(t.keyCode,\"left\",37,t.key,[\"Left\",\"ArrowLeft\"])||\"button\"in t&&0!==t.button?null:function(t){return e.$emit(\"arrowLeft\",t)}.apply(null,arguments)},function(t){return!t.type.indexOf(\"key\")&&e._k(t.keyCode,\"right\",39,t.key,[\"Right\",\"ArrowRight\"])||\"button\"in t&&2!==t.button?null:function(){return e.$emit(\"arrowRight\")}.apply(null,arguments)},function(t){return!t.type.indexOf(\"key\")&&e._k(t.keyCode,\"down\",40,t.key,[\"Down\",\"ArrowDown\"])?null:function(){return e.$emit(\"arrowDown\")}.apply(null,arguments)},function(t){return!t.type.indexOf(\"key\")&&e._k(t.keyCode,\"up\",38,t.key,[\"Up\",\"ArrowUp\"])?null:function(t){return e.$emit(\"arrowUp\",t)}.apply(null,arguments)},function(t){return!t.type.indexOf(\"key\")&&e._k(t.keyCode,\"enter\",13,t.key,\"Enter\")?null:function(){return e.$emit(\"enter\")}.apply(null,arguments)}],input:function(t){t.target.composing||(e.value=t.target.value)}}}),e._v(\" \"),t(\"span\",{staticClass:\"hidden\",attrs:{id:\"emoji-picker-search-description\"}},[e._v(\"Use the left, right, up and down arrow keys to navigate the emoji search\\n results.\")])])}),[],!1,null,null,null),Q=K.exports;function Y(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,n=new Array(t);i<t;i++)n[i]=e[i];return n}i(537);var ee=function(){return O((function e(t){var i,n;E(this,e),this._vm=t,this._data=t.data,this._perLine=t.perLine,this._categories=[],(i=this._categories).push.apply(i,function(e){if(Array.isArray(e))return Y(e)}(n=this._data.categories())||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(n)||function(e,t){if(e){if(\"string\"==typeof e)return Y(e,t);var i=Object.prototype.toString.call(e).slice(8,-1);return\"Object\"===i&&e.constructor&&(i=e.constructor.name),\"Map\"===i||\"Set\"===i?Array.from(e):\"Arguments\"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?Y(e,t):void 0}}(n)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),this._categories=this._categories.filter((function(e){return e.emojis.length>0})),this._categories[0].first=!0,Object.freeze(this._categories),this.activeCategory=this._categories[0],this.searchEmojis=null,this.previewEmoji=null,this.previewEmojiCategoryIdx=0,this.previewEmojiIdx=-1}),[{key:\"onScroll\",value:function(){var e=this._vm.$refs.scroll;if(e){for(var t=e.scrollTop,i=this.filteredCategories[0],n=0,r=this.filteredCategories.length;n<r;n++){var o=this.filteredCategories[n],s=this._vm.getCategoryComponent(n);if(s&&s.$el.offsetTop-50>t)break;i=o}this.activeCategory=i}}},{key:\"allCategories\",get:function(){return this._categories}},{key:\"filteredCategories\",get:function(){return this.searchEmojis?[{id:\"search\",name:\"Search\",emojis:this.searchEmojis}]:this._categories.filter((function(e){return e.emojis.length>0}))}},{key:\"previewEmojiCategory\",get:function(){return this.previewEmojiCategoryIdx>=0?this.filteredCategories[this.previewEmojiCategoryIdx]:null}},{key:\"onAnchorClick\",value:function(e){var t=this;if(!this.searchEmojis){var i=this.filteredCategories.indexOf(e),n=this._vm.getCategoryComponent(i);this._vm.infiniteScroll?function(){if(n){var i=n.$el.offsetTop;e.first&&(i=0),t._vm.$refs.scroll.scrollTop=i}}():this.activeCategory=this.filteredCategories[i]}}},{key:\"onSearch\",value:function(e){var t=this._data.search(e,this.maxSearchResults);this.searchEmojis=t,this.previewEmojiCategoryIdx=0,this.previewEmojiIdx=0,this.updatePreviewEmoji()}},{key:\"onEmojiEnter\",value:function(e){this.previewEmoji=e,this.previewEmojiIdx=-1,this.previewEmojiCategoryIdx=-1}},{key:\"onEmojiLeave\",value:function(e){this.previewEmoji=null}},{key:\"onArrowLeft\",value:function(){this.previewEmojiIdx>0?this.previewEmojiIdx-=1:(this.previewEmojiCategoryIdx-=1,this.previewEmojiCategoryIdx<0?this.previewEmojiCategoryIdx=0:this.previewEmojiIdx=this.filteredCategories[this.previewEmojiCategoryIdx].emojis.length-1),this.updatePreviewEmoji()}},{key:\"onArrowRight\",value:function(){this.previewEmojiIdx<this.emojisLength(this.previewEmojiCategoryIdx)-1?this.previewEmojiIdx+=1:(this.previewEmojiCategoryIdx+=1,this.previewEmojiCategoryIdx>=this.filteredCategories.length?this.previewEmojiCategoryIdx=this.filteredCategories.length-1:this.previewEmojiIdx=0),this.updatePreviewEmoji()}},{key:\"onArrowDown\",value:function(){if(-1==this.previewEmojiIdx)return this.onArrowRight();var e=this.filteredCategories[this.previewEmojiCategoryIdx].emojis.length,t=this._perLine;this.previewEmojiIdx+t>e&&(t=e%this._perLine);for(var i=0;i<t;i++)this.onArrowRight();this.updatePreviewEmoji()}},{key:\"onArrowUp\",value:function(){var e=this._perLine;this.previewEmojiIdx-e<0&&(e=this.previewEmojiCategoryIdx>0?this.filteredCategories[this.previewEmojiCategoryIdx-1].emojis.length%this._perLine:0);for(var t=0;t<e;t++)this.onArrowLeft();this.updatePreviewEmoji()}},{key:\"updatePreviewEmoji\",value:function(){var e=this;this.previewEmoji=this.filteredCategories[this.previewEmojiCategoryIdx].emojis[this.previewEmojiIdx],this._vm.$nextTick((function(){var t=e._vm.$refs.scroll,i=t.querySelector(\".emoji-mart-emoji-selected\"),n=t.offsetTop-t.offsetHeight;i&&i.offsetTop+i.offsetHeight>n+t.scrollTop&&(t.scrollTop+=i.offsetHeight),i&&i.offsetTop<t.scrollTop&&(t.scrollTop-=i.offsetHeight)}))}},{key:\"emojisLength\",value:function(e){return-1==e?0:this.filteredCategories[e].emojis.length}}])}();function te(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function ie(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?te(Object(i),!0).forEach((function(t){B(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):te(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}var ne={search:\"Search\",notfound:\"No Emoji Found\",categories:{search:\"Search Results\",recent:\"Frequently Used\",smileys:\"Smileys & Emotion\",people:\"People & Body\",nature:\"Animals & Nature\",foods:\"Food & Drink\",activity:\"Activity\",places:\"Travel & Places\",objects:\"Objects\",symbols:\"Symbols\",flags:\"Flags\",custom:\"Custom\"}},re={props:ie(ie({},U),{},{data:{type:Object,required:!0}}),emits:[\"select\",\"skin-change\"],data:function(){return{activeSkin:this.skin||c.get(\"skin\")||this.defaultSkin,view:new ee(this)}},computed:{customStyles:function(){return ie({width:this.calculateWidth+\"px\"},this.pickerStyles)},emojiProps:function(){return{native:this.native,skin:this.activeSkin,set:this.set,emojiTooltip:this.emojiTooltip,emojiSize:this.emojiSize,selectedEmoji:this.view.previewEmoji,selectedEmojiCategory:this.view.previewEmojiCategory,onEnter:this.onEmojiEnter.bind(this),onLeave:this.onEmojiLeave.bind(this),onClick:this.onEmojiClick.bind(this)}},skinProps:function(){return{skin:this.activeSkin}},calculateWidth:function(){return this.perLine*(this.emojiSize+12)+12+2+function(){if(\"undefined\"==typeof document)return 0;var e=document.createElement(\"div\");e.style.width=\"100px\",e.style.height=\"100px\",e.style.overflow=\"scroll\",e.style.position=\"absolute\",e.style.top=\"-9999px\",document.body.appendChild(e);var t=e.offsetWidth-e.clientWidth;return document.body.removeChild(e),t}()},filteredCategories:function(){return this.view.filteredCategories},mergedI18n:function(){return Object.freeze(F(ne,this.i18n))},idleEmoji:function(){try{return this.data.emoji(this.emoji)}catch(e){return console.error(\"Default preview emoji `\"+this.emoji+\"` is not available, check the Picker `emoji` property\"),console.error(e),this.data.firstEmoji()}},isSearching:function(){return null!=this.view.searchEmojis}},watch:{skin:function(){this.onSkinChange(this.skin)}},methods:{onScroll:function(){this.infiniteScroll&&!this.waitingForPaint&&(this.waitingForPaint=!0,window.requestAnimationFrame(this.onScrollPaint.bind(this)))},onScrollPaint:function(){this.waitingForPaint=!1,this.view.onScroll()},onAnchorClick:function(e){this.view.onAnchorClick(e)},onSearch:function(e){this.view.onSearch(e)},onEmojiEnter:function(e){this.view.onEmojiEnter(e)},onEmojiLeave:function(e){this.view.onEmojiLeave(e)},onArrowLeft:function(e){var t=this.view.previewEmojiIdx;this.view.onArrowLeft(),e&&this.view.previewEmojiIdx!==t&&e.preventDefault()},onArrowRight:function(){this.view.onArrowRight()},onArrowDown:function(){this.view.onArrowDown()},onArrowUp:function(e){this.view.onArrowUp(),e.preventDefault()},onEnter:function(){this.view.previewEmoji&&(this.$emit(\"select\",this.view.previewEmoji),w.add(this.view.previewEmoji))},onEmojiClick:function(e){this.$emit(\"select\",e),w.add(e)},onTextSelect:function(e){e.stopPropagation()},onSkinChange:function(e){this.activeSkin=e,c.update({skin:e}),this.$emit(\"skin-change\",e)},getCategoryComponent:function(e){var t=this.$refs[\"categories_\"+e];return t&&\"0\"in t?t[0]:t}},components:{Anchors:k,Category:X,Preview:G,Search:Q}},oe=b(re,(function(){var e=this,t=e._self._c;return t(\"section\",{staticClass:\"emoji-mart emoji-mart-static\",style:e.customStyles},[e.showCategories?t(\"div\",{staticClass:\"emoji-mart-bar emoji-mart-bar-anchors\"},[t(\"anchors\",{attrs:{data:e.data,i18n:e.mergedI18n,color:e.color,categories:e.view.allCategories,\"active-category\":e.view.activeCategory},on:{click:e.onAnchorClick}})],1):e._e(),e._v(\" \"),e._t(\"searchTemplate\",(function(){return[e.showSearch?t(\"search\",{ref:\"search\",attrs:{data:e.data,i18n:e.mergedI18n,\"auto-focus\":e.autoFocus,\"on-search\":e.onSearch},on:{search:e.onSearch,arrowLeft:e.onArrowLeft,arrowRight:e.onArrowRight,arrowDown:e.onArrowDown,arrowUp:e.onArrowUp,enter:e.onEnter,select:e.onTextSelect}}):e._e()]}),{data:e.data,i18n:e.i18n,autoFocus:e.autoFocus,onSearch:e.onSearch}),e._v(\" \"),t(\"div\",{ref:\"scroll\",staticClass:\"emoji-mart-scroll\",attrs:{role:\"tabpanel\"},on:{scroll:e.onScroll}},[t(\"div\",{ref:\"scrollContent\",attrs:{id:\"emoji-mart-list\",role:\"listbox\",\"aria-expanded\":\"true\"}},[e._t(\"customCategory\"),e._v(\" \"),e._l(e.view.filteredCategories,(function(i,n){return t(\"category\",{directives:[{name:\"show\",rawName:\"v-show\",value:e.infiniteScroll||i==e.view.activeCategory||e.isSearching,expression:\"infiniteScroll || category == view.activeCategory || isSearching\"}],key:i.id,ref:\"categories_\"+n,refInFor:!0,attrs:{data:e.data,i18n:e.mergedI18n,id:i.id,name:i.name,emojis:i.emojis,\"emoji-props\":e.emojiProps}})}))],2)]),e._v(\" \"),e._t(\"previewTemplate\",(function(){return[e.showPreview?t(\"div\",{staticClass:\"emoji-mart-bar emoji-mart-bar-preview\"},[t(\"preview\",{attrs:{data:e.data,title:e.title,emoji:e.view.previewEmoji,\"idle-emoji\":e.idleEmoji,\"show-skin-tones\":e.showSkinTones,\"emoji-props\":e.emojiProps,\"skin-props\":e.skinProps,\"on-skin-change\":e.onSkinChange}})],1):e._e()]}),{data:e.data,title:e.title,emoji:e.view.previewEmoji,idleEmoji:e.idleEmoji,showSkinTones:e.showSkinTones,emojiProps:e.emojiProps,skinProps:e.skinProps,onSkinChange:e.onSkinChange})],2)}),[],!1,null,null,null),se=oe.exports}(),n}()}));","import { getBuilder } from \"@nextcloud/browser-storage\";\nimport { EmojiIndex, frequently } from \"emoji-mart-vue-fast\";\nimport data from \"emoji-mart-vue-fast/data/all.json\";\nconst storage = getBuilder(\"nextcloud-vue\").persist(true).build();\nlet emojiIndex;\nvar EmojiSkinTone = /* @__PURE__ */ ((EmojiSkinTone2) => {\n EmojiSkinTone2[EmojiSkinTone2[\"Neutral\"] = 1] = \"Neutral\";\n EmojiSkinTone2[EmojiSkinTone2[\"Light\"] = 2] = \"Light\";\n EmojiSkinTone2[EmojiSkinTone2[\"MediumLight\"] = 3] = \"MediumLight\";\n EmojiSkinTone2[EmojiSkinTone2[\"Medium\"] = 4] = \"Medium\";\n EmojiSkinTone2[EmojiSkinTone2[\"MediumDark\"] = 5] = \"MediumDark\";\n EmojiSkinTone2[EmojiSkinTone2[\"Dark\"] = 6] = \"Dark\";\n return EmojiSkinTone2;\n})(EmojiSkinTone || {});\nfunction emojiSearch(query, maxResults = 10) {\n if (!emojiIndex) {\n emojiIndex = new EmojiIndex(data);\n }\n const currentSkinTone = getCurrentSkinTone();\n let results;\n if (query) {\n results = emojiIndex.search(`:${query}`, maxResults);\n if (results.length < maxResults) {\n results = results.concat(emojiIndex.search(query, maxResults - results.length));\n }\n } else {\n results = frequently.get(maxResults).map((id) => emojiIndex.emoji(id)) || [];\n }\n return results.map((emoji) => emoji.getSkin(currentSkinTone));\n}\nfunction emojiAddRecent(emojiData) {\n frequently.add(emojiData);\n}\nfunction getCurrentSkinTone() {\n const skinTone = Number.parseInt(storage.getItem(\"NcEmojiPicker::currentSkinTone\") ?? \"1\");\n return Math.min(\n Math.max(\n skinTone,\n 1\n /* Neutral */\n ),\n 6\n /* Dark */\n );\n}\nfunction setCurrentSkinTone(skinTone) {\n skinTone = Math.min(\n Math.max(\n skinTone,\n 1\n /* Neutral */\n ),\n 6\n /* Dark */\n );\n storage.setItem(\"NcEmojiPicker::currentSkinTone\", skinTone.toString());\n}\nexport {\n EmojiSkinTone as E,\n emojiAddRecent as a,\n emojiSearch as e,\n getCurrentSkinTone as g,\n setCurrentSkinTone as s\n};\n//# sourceMappingURL=emoji-BY_D0V5K.mjs.map\n","import '../assets/NcEmojiPicker-B7xDz_8U.css';\nimport data from \"emoji-mart-vue-fast/data/all.json\";\nimport { Picker, Emoji, EmojiIndex } from \"emoji-mart-vue-fast/src/index.js\";\nimport { isFocusable } from \"tabbable\";\nimport { createElementBlock, openBlock, mergeProps, createElementVNode, createCommentVNode, toDisplayString, resolveComponent, createBlock, withCtx, createVNode, withKeys, withModifiers, createSlots, normalizeStyle, renderSlot, normalizeProps, guardReactiveProps } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { N as NcColorPicker } from \"./NcColorPicker-Kc0JqRtp.mjs\";\nimport { u as useTrapStackControl } from \"./useTrapStackControl-B6cEicto.mjs\";\nimport { s as setCurrentSkinTone, g as getCurrentSkinTone } from \"./emoji-BY_D0V5K.mjs\";\nimport { r as register, j as t42, k as t37, l as t16, m as t5, a as t } from \"./_l10n-DrTiip5c.mjs\";\nimport { C as Color } from \"./colors-Go3zmZRD.mjs\";\nimport { N as NcButton } from \"./NcButton-Dc8V4Urj.mjs\";\nimport { N as NcPopover } from \"./NcPopover-C-MTaPCs.mjs\";\nimport { _ as _sfc_main$2 } from \"./NcTextField.vue_vue_type_script_setup_true_lang-D1y_LfGJ.mjs\";\nconst _sfc_main$1 = {\n name: \"CircleIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$1 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$1 = { d: \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\" };\nconst _hoisted_4$1 = { key: 0 };\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon circle-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$1, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$1, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$1))\n ], 16, _hoisted_1$1);\n}\nconst IconCircle = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1]]);\nregister(t5, t16, t37, t42);\nlet emojiIndex;\nconst i18n = {\n search: t(\"Search emoji\"),\n notfound: t(\"No emoji found\"),\n categories: {\n search: t(\"Search results\"),\n recent: t(\"Frequently used\"),\n smileys: t(\"Smileys & Emotion\"),\n people: t(\"People & Body\"),\n nature: t(\"Animals & Nature\"),\n foods: t(\"Food & Drink\"),\n activity: t(\"Activities\"),\n places: t(\"Travel & Places\"),\n objects: t(\"Objects\"),\n symbols: t(\"Symbols\"),\n flags: t(\"Flags\"),\n custom: t(\"Custom\")\n }\n};\nconst skinTonePalette = [\n new Color(255, 222, 52, t(\"Neutral skin color\")),\n new Color(228, 205, 166, t(\"Light skin tone\")),\n new Color(250, 221, 192, t(\"Medium light skin tone\")),\n new Color(174, 129, 87, t(\"Medium skin tone\")),\n new Color(158, 113, 88, t(\"Medium dark skin tone\")),\n new Color(96, 79, 69, t(\"Dark skin tone\"))\n];\nconst _sfc_main = {\n name: \"NcEmojiPicker\",\n components: {\n IconCircle,\n NcButton,\n NcColorPicker,\n NcPopover,\n NcTextField: _sfc_main$2,\n Emoji,\n Picker\n },\n props: {\n /**\n * The emoji-set\n */\n activeSet: {\n type: String,\n default: \"native\"\n },\n /**\n * Show preview section when hovering emoji\n */\n showPreview: {\n type: Boolean,\n default: false\n },\n /**\n * Allow unselecting the selected emoji\n */\n allowUnselect: {\n type: Boolean,\n default: false\n },\n /**\n * Selected emoji to allow unselecting\n */\n selectedEmoji: {\n type: String,\n default: \"\"\n },\n /**\n * The fallback emoji in the preview section\n */\n previewFallbackEmoji: {\n type: String,\n default: \"grinning\"\n },\n /**\n * The fallback text in the preview section\n */\n previewFallbackName: {\n type: String,\n default: t(\"Pick an emoji\")\n },\n /**\n * Whether to close the emoji picker after picking one\n */\n closeOnSelect: {\n type: Boolean,\n default: true\n },\n /**\n * Selector for the popover container\n */\n container: {\n type: [Boolean, String, Object, Element],\n default: \"body\"\n }\n },\n emits: [\n \"select\",\n \"selectData\",\n \"unselect\"\n ],\n setup() {\n if (!emojiIndex) {\n emojiIndex = new EmojiIndex(data);\n }\n return {\n // Non-reactive constants\n emojiIndex,\n skinTonePalette,\n i18n\n };\n },\n data() {\n const currentSkinTone = getCurrentSkinTone();\n return {\n /**\n * The current active color from the skin tone palette\n */\n currentColor: skinTonePalette[currentSkinTone - 1],\n /**\n * The current active skin tone\n *\n * @type {1|2|3|4|5|6}\n */\n currentSkinTone,\n search: \"\",\n open: false\n };\n },\n computed: {\n native() {\n return this.activeSet === \"native\";\n }\n },\n created() {\n useTrapStackControl(() => this.open);\n },\n methods: {\n t,\n clearSearch() {\n this.search = \"\";\n this.$refs.search.focus();\n },\n /**\n * Update the current skin tone by the result of the color picker\n *\n * @param {string} color Color set\n */\n onChangeSkinTone(color) {\n const index = this.skinTonePalette.findIndex((tone) => tone.color.toLowerCase() === color.toLowerCase());\n if (index > -1) {\n this.currentSkinTone = index + 1;\n this.currentColor = this.skinTonePalette[index];\n setCurrentSkinTone(this.currentSkinTone);\n }\n },\n select(emojiObject) {\n this.$emit(\"select\", emojiObject.native);\n this.$emit(\"selectData\", emojiObject);\n if (this.closeOnSelect) {\n this.open = false;\n }\n },\n unselect() {\n this.$emit(\"unselect\");\n },\n afterShow() {\n this.$refs.search.focus();\n },\n afterHide() {\n if (!document.activeElement || this.$refs.picker.$el.contains(document.activeElement) || !isFocusable(document.activeElement)) {\n this.$refs.popover.$el.querySelector('button, [role=\"button\"]')?.focus();\n }\n },\n /**\n * Manually handle Tab navigation skipping emoji buttons.\n * Navigation over emojis is handled by Arrow keys.\n *\n * @param {KeyboardEvent} event - Keyboard event\n */\n handleTabNavigationSkippingEmojis(event) {\n const current = event.target;\n const focusable = Array.from(this.$refs.picker.$el.querySelectorAll(\"button:not(.emoji-mart-emoji), input\"));\n if (!event.shiftKey) {\n const nextNode = focusable.find((node) => current.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_FOLLOWING) || focusable[0];\n nextNode.focus();\n } else {\n const prevNode = focusable.findLast((node) => current.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_PRECEDING) || focusable.at(-1);\n prevNode.focus();\n }\n },\n /**\n * Handle arrow navigation via <Picker>'s handlers with scroll bug fix\n *\n * @param {'onArrowLeft' | 'onArrowRight' | 'onArrowDown' | 'onArrowUp'} originalHandlerName - Picker's arrow keydown handler name\n * @param {KeyboardEvent} event - Keyboard event\n */\n async callPickerArrowHandlerWithScrollFix(originalHandlerName, event) {\n this.$refs.picker[originalHandlerName](event);\n await this.$nextTick();\n const selectedEmoji = this.$refs.picker.$el.querySelector(\".emoji-mart-emoji-selected\");\n selectedEmoji?.scrollIntoView({\n block: \"center\",\n inline: \"center\"\n });\n }\n }\n};\nconst _hoisted_1 = { class: \"nc-emoji-picker-container\" };\nconst _hoisted_2 = { class: \"search__wrapper\" };\nconst _hoisted_3 = { class: \"emoji-mart-category-label\" };\nconst _hoisted_4 = { class: \"emoji-mart-category-label\" };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcTextField = resolveComponent(\"NcTextField\");\n const _component_IconCircle = resolveComponent(\"IconCircle\");\n const _component_NcButton = resolveComponent(\"NcButton\");\n const _component_NcColorPicker = resolveComponent(\"NcColorPicker\");\n const _component_Emoji = resolveComponent(\"Emoji\");\n const _component_Picker = resolveComponent(\"Picker\");\n const _component_NcPopover = resolveComponent(\"NcPopover\");\n return openBlock(), createBlock(_component_NcPopover, {\n ref: \"popover\",\n shown: $data.open,\n \"onUpdate:shown\": _cache[6] || (_cache[6] = ($event) => $data.open = $event),\n container: $props.container,\n \"popup-role\": \"dialog\",\n \"no-focus-trap\": true,\n onAfterShow: $options.afterShow,\n onAfterHide: $options.afterHide\n }, {\n trigger: withCtx((slotProps) => [\n renderSlot(_ctx.$slots, \"default\", normalizeProps(guardReactiveProps(slotProps)), void 0, true)\n ]),\n default: withCtx(() => [\n createElementVNode(\"div\", _hoisted_1, [\n createVNode(_component_Picker, mergeProps({\n ref: \"picker\",\n color: \"var(--color-primary-element)\",\n data: $setup.emojiIndex,\n emoji: $props.previewFallbackEmoji,\n i18n: $setup.i18n,\n native: $options.native,\n \"emoji-size\": 20,\n \"per-line\": 8,\n \"picker-styles\": { width: \"320px\" },\n \"show-preview\": $props.showPreview,\n skin: $data.currentSkinTone,\n \"show-skin-tones\": false,\n title: $props.previewFallbackName,\n role: \"dialog\",\n \"aria-modal\": \"true\",\n \"aria-label\": $options.t(\"Emoji picker\")\n }, _ctx.$attrs, {\n onKeydown: withKeys(withModifiers($options.handleTabNavigationSkippingEmojis, [\"prevent\"]), [\"tab\"]),\n onSelect: $options.select\n }), createSlots({\n searchTemplate: withCtx(({ onSearch }) => [\n createElementVNode(\"div\", _hoisted_2, [\n createVNode(_component_NcTextField, {\n ref: \"search\",\n modelValue: $data.search,\n \"onUpdate:modelValue\": [\n _cache[0] || (_cache[0] = ($event) => $data.search = $event),\n ($event) => onSearch($data.search)\n ],\n class: \"search\",\n label: $options.t(\"Search\"),\n \"label-visible\": true,\n placeholder: $setup.i18n.search,\n \"trailing-button-icon\": \"close\",\n \"trailing-button-label\": $options.t(\"Clear search\"),\n \"show-trailing-button\": $data.search !== \"\",\n onKeydown: [\n _cache[1] || (_cache[1] = withKeys(($event) => $options.callPickerArrowHandlerWithScrollFix(\"onArrowLeft\", $event), [\"left\"])),\n _cache[2] || (_cache[2] = withKeys(($event) => $options.callPickerArrowHandlerWithScrollFix(\"onArrowRight\", $event), [\"right\"])),\n _cache[3] || (_cache[3] = withKeys(($event) => $options.callPickerArrowHandlerWithScrollFix(\"onArrowDown\", $event), [\"down\"])),\n _cache[4] || (_cache[4] = withKeys(($event) => $options.callPickerArrowHandlerWithScrollFix(\"onArrowUp\", $event), [\"up\"])),\n _cache[5] || (_cache[5] = withKeys(($event) => _ctx.$refs.picker.onEnter($event), [\"enter\"]))\n ],\n onTrailingButtonClick: ($event) => {\n $options.clearSearch();\n onSearch(\"\");\n }\n }, null, 8, [\"modelValue\", \"label\", \"placeholder\", \"trailing-button-label\", \"show-trailing-button\", \"onTrailingButtonClick\", \"onUpdate:modelValue\"]),\n createVNode(_component_NcColorPicker, {\n \"palette-only\": \"\",\n container: $props.container,\n palette: $setup.skinTonePalette,\n \"model-value\": $data.currentColor.color,\n \"onUpdate:modelValue\": $options.onChangeSkinTone\n }, {\n default: withCtx(() => [\n createVNode(_component_NcButton, {\n \"aria-label\": $options.t(\"Skin tone\"),\n variant: \"tertiary-no-background\"\n }, {\n icon: withCtx(() => [\n createVNode(_component_IconCircle, {\n style: normalizeStyle({ color: $data.currentColor.color }),\n title: $data.currentColor.name,\n size: 20\n }, null, 8, [\"style\", \"title\"])\n ]),\n _: 1\n }, 8, [\"aria-label\"])\n ]),\n _: 1\n }, 8, [\"container\", \"palette\", \"model-value\", \"onUpdate:modelValue\"])\n ])\n ]),\n _: 2\n }, [\n $props.allowUnselect && $props.selectedEmoji ? {\n name: \"customCategory\",\n fn: withCtx(() => [\n createElementVNode(\"div\", _hoisted_3, [\n createElementVNode(\"h3\", _hoisted_4, toDisplayString($options.t(\"Selected\")), 1)\n ]),\n createVNode(_component_Emoji, {\n class: \"emoji-selected\",\n data: $setup.emojiIndex,\n emoji: $props.selectedEmoji,\n native: \"\",\n size: 32,\n onClick: $options.unselect\n }, null, 8, [\"data\", \"emoji\", \"onClick\"]),\n createVNode(_component_Emoji, {\n class: \"emoji-delete\",\n data: $setup.emojiIndex,\n emoji: \":x:\",\n native: \"\",\n size: 10,\n onClick: $options.unselect\n }, null, 8, [\"data\", \"onClick\"])\n ]),\n key: \"0\"\n } : void 0\n ]), 1040, [\"data\", \"emoji\", \"i18n\", \"native\", \"show-preview\", \"skin\", \"title\", \"aria-label\", \"onKeydown\", \"onSelect\"])\n ])\n ]),\n _: 3\n }, 8, [\"shown\", \"container\", \"onAfterShow\", \"onAfterHide\"]);\n}\nconst NcEmojiPicker = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-f2f99131\"]]);\nexport {\n NcEmojiPicker as N\n};\n//# sourceMappingURL=NcEmojiPicker-pM4Pg2yq.mjs.map\n"],"names":["NAMESPACE","_JSON","isLocalStorageSupported","getter","setter","setHandlers","handlers","setNamespace","namespace","update","state","key","value","set","get","store","mapping","buildSearch","emoji","search","addToSearch","strings","split","string","s","deepFreeze","object","propNames","name","uncompress","data","id","DEFAULTS","frequently","initialized","defaults","init","add","maxNumber","result","defaultLength","i","quantity","frequentlyKeys","sliced","a","b","last","frequently$1","SVGs","_sfc_main","svgs","_openBlock","_createElementBlock","_hoisted_1","_Fragment","_renderList","$props","category","_normalizeClass","_normalizeStyle","$event","_ctx","_createElementVNode","_String","stringFromCodePoint","MAX_SIZE","codeUnits","highSurrogate","lowSurrogate","index","length","codePoint","unifiedToNative","unified","unicodes","codePoints","u","uniq","arr","acc","item","intersect","uniqA","uniqB","deepMerge","o","originalValue","measureScrollbar","div","scrollbarWidth","SHEET_COLUMNS","COLONS_REGEX","SKINS","EmojiIndex","emojisToShowFilter","include","exclude","custom","recent","recentLength","allCategories","indexA","indexB","categoryData","emojiId","customEmoji","skin","matches","emojiObject","unicodeEmoji","maxResults","values","allResults","emojis","currentIndex","charIndex","char","scores","sub","subIndex","score","aScore","bScore","results","emojiData","EmojiData","idx","emoticon","category_id","isIncluded","isExcluded","skinIdx","skinKey","variationData","skinData","k","sanitize","adjustedColumns","x","y","EmojiView","native","fallback","emojiTooltip","emojiSize","cssStyle","hasImage","short_names","skin_tone","skin_variations","emoticons","imageUrl","colons","EmojiProps","PickerProps","$options","_createBlock","_resolveDynamicComponent","_toDisplayString","emojiView","Emoji","_hoisted_2","_hoisted_3","_hoisted_6","_hoisted_5","_createVNode","_component_emoji","skinTone","$data","Skins","_hoisted_4","_hoisted_7","_hoisted_8","_hoisted_9","shortName","_hoisted_10","_component_skins","_cache","$input","isWindowAvailable","lastTime","vendors","callback","element","currTime","timeToCall","PickerView","pickerComponent","scrollElement","scrollTop","activeCategory","l","component","scrollToComponent","top","categoryLength","diff","scrollEl","emojiEl","scrollHeight","categoryIdx","I18N","e","oldIdx","Anchors","Category","Preview","Search","_component_anchors","_renderSlot","_component_search","args","_component_category","_vShow","_component_preview","t","module","this","n","r","X","J","N","R","$","se","G","Q","Z","w","D","c","p","h","m","d","f","v","j","g","_","C","E","S","O","P","A","M","I","F","z","L","T","q","B","H","U","V","W","K","Y","ee","te","ie","ne","re","oe","storage","getBuilder","getCurrentSkinTone","setCurrentSkinTone","_sfc_main$1","_hoisted_1$1","_hoisted_2$1","_hoisted_3$1","_hoisted_4$1","_sfc_render$1","$setup","openBlock","createElementBlock","mergeProps","createElementVNode","toDisplayString","createCommentVNode","IconCircle","_export_sfc","register","t5","t16","t37","t42","emojiIndex","i18n","skinTonePalette","Color","NcButton","NcColorPicker","NcPopover","_sfc_main$2","Picker","currentSkinTone","useTrapStackControl","color","tone","isFocusable","event","current","focusable","node","originalHandlerName","_sfc_render","_component_NcTextField","resolveComponent","_component_IconCircle","_component_NcButton","_component_NcColorPicker","_component_Emoji","_component_Picker","_component_NcPopover","createBlock","withCtx","slotProps","renderSlot","normalizeProps","guardReactiveProps","createVNode","withKeys","withModifiers","createSlots","onSearch","normalizeStyle","NcEmojiPicker"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]} \ No newline at end of file +{"version":3,"file":"NcEmojiPicker-pM4Pg2yq-CYkSkF_Y.chunk.mjs","sources":["../node_modules/emoji-mart-vue-fast/src/utils/store.js","../node_modules/emoji-mart-vue-fast/src/utils/data.js","../node_modules/emoji-mart-vue-fast/src/utils/frequently.js","../node_modules/emoji-mart-vue-fast/src/svgs/index.js","../node_modules/emoji-mart-vue-fast/src/components/anchors.vue","../node_modules/emoji-mart-vue-fast/src/polyfills/stringFromCodePoint.js","../node_modules/emoji-mart-vue-fast/src/utils/index.js","../node_modules/emoji-mart-vue-fast/src/utils/emoji-data.js","../node_modules/emoji-mart-vue-fast/src/utils/shared-props.js","../node_modules/emoji-mart-vue-fast/src/components/Emoji.vue","../node_modules/emoji-mart-vue-fast/src/components/category.vue","../node_modules/emoji-mart-vue-fast/src/components/skins.vue","../node_modules/emoji-mart-vue-fast/src/components/preview.vue","../node_modules/emoji-mart-vue-fast/src/components/search.vue","../node_modules/emoji-mart-vue-fast/src/vendor/raf-polyfill.js","../node_modules/emoji-mart-vue-fast/src/utils/picker.js","../node_modules/emoji-mart-vue-fast/src/components/Picker.vue","../node_modules/emoji-mart-vue-fast/dist/emoji-mart.js","../node_modules/@nextcloud/vue/dist/chunks/emoji-BY_D0V5K.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcEmojiPicker-pM4Pg2yq.mjs"],"sourcesContent":["var NAMESPACE = 'emoji-mart'\n\nconst _JSON = JSON\n\nvar isLocalStorageSupported =\n typeof window !== 'undefined' && 'localStorage' in window\n\nlet getter\nlet setter\n\nfunction setHandlers(handlers) {\n handlers || (handlers = {})\n\n getter = handlers.getter\n setter = handlers.setter\n}\n\nfunction setNamespace(namespace) {\n NAMESPACE = namespace\n}\n\nfunction update(state) {\n for (let key in state) {\n let value = state[key]\n set(key, value)\n }\n}\n\nfunction set(key, value) {\n if (setter) {\n setter(key, value)\n } else {\n if (!isLocalStorageSupported) return\n try {\n window.localStorage[`${NAMESPACE}.${key}`] = _JSON.stringify(value)\n } catch (e) {}\n }\n}\n\nfunction get(key) {\n if (getter) {\n return getter(key)\n } else {\n if (!isLocalStorageSupported) return\n try {\n var value = window.localStorage[`${NAMESPACE}.${key}`]\n } catch (e) {\n return\n }\n\n if (value) {\n return JSON.parse(value)\n }\n }\n}\n\nexport default { update, set, get, setNamespace, setHandlers }\n","const mapping = {\n name: 'a',\n unified: 'b',\n non_qualified: 'c',\n has_img_apple: 'd',\n has_img_google: 'e',\n has_img_twitter: 'f',\n has_img_facebook: 'h',\n keywords: 'j',\n sheet: 'k',\n emoticons: 'l',\n text: 'm',\n short_names: 'n',\n added_in: 'o',\n}\n\nconst buildSearch = (emoji) => {\n const search = []\n\n var addToSearch = (strings, split) => {\n if (!strings) {\n return\n }\n\n ;(Array.isArray(strings) ? strings : [strings]).forEach((string) => {\n ;(split ? string.split(/[-|_|\\s]+/) : [string]).forEach((s) => {\n s = s.toLowerCase()\n\n if (search.indexOf(s) == -1) {\n search.push(s)\n }\n })\n })\n }\n\n addToSearch(emoji.short_names, true)\n addToSearch(emoji.name, true)\n addToSearch(emoji.keywords, false)\n addToSearch(emoji.emoticons, false)\n\n return search.join(',')\n}\n\nfunction deepFreeze(object) {\n // Retrieve the property names defined on object\n var propNames = Object.getOwnPropertyNames(object)\n\n // Freeze properties before freezing self\n for (let name of propNames) {\n let value = object[name]\n object[name] =\n value && typeof value === 'object' ? deepFreeze(value) : value\n }\n return Object.freeze(object)\n}\n\nconst uncompress = (data) => {\n if (!data.compressed) {\n return data\n }\n data.compressed = false\n\n for (let id in data.emojis) {\n let emoji = data.emojis[id]\n\n for (let key in mapping) {\n emoji[key] = emoji[mapping[key]]\n delete emoji[mapping[key]]\n }\n\n if (!emoji.short_names) emoji.short_names = []\n emoji.short_names.unshift(id)\n\n emoji.sheet_x = emoji.sheet[0]\n emoji.sheet_y = emoji.sheet[1]\n delete emoji.sheet\n\n if (!emoji.text) emoji.text = ''\n\n if (!emoji.added_in) emoji.added_in = 6\n emoji.added_in = emoji.added_in.toFixed(1)\n\n emoji.search = buildSearch(emoji)\n }\n data = deepFreeze(data)\n return data\n}\n\nexport { buildSearch, uncompress }\n","import store from './store'\n\nconst DEFAULTS = [\n '+1',\n 'grinning',\n 'kissing_heart',\n 'heart_eyes',\n 'laughing',\n 'stuck_out_tongue_winking_eye',\n 'sweat_smile',\n 'joy',\n 'scream',\n 'disappointed',\n 'unamused',\n 'weary',\n 'sob',\n 'sunglasses',\n 'heart',\n 'hankey',\n]\n\nlet frequently, initialized\nlet defaults = {}\n\nfunction init() {\n initialized = true\n frequently = store.get('frequently')\n}\n\nfunction add(emoji) {\n if (!initialized) init()\n var { id } = emoji\n\n frequently || (frequently = defaults)\n frequently[id] || (frequently[id] = 0)\n frequently[id] += 1\n\n store.set('last', id)\n store.set('frequently', frequently)\n}\n\nfunction get(maxNumber) {\n if (!initialized) init()\n if (!frequently) {\n defaults = {}\n\n const result = []\n\n let defaultLength = Math.min(maxNumber, DEFAULTS.length)\n for (let i = 0; i < defaultLength; i++) {\n defaults[DEFAULTS[i]] = parseInt((defaultLength - i) / 4, 10) + 1\n result.push(DEFAULTS[i])\n }\n\n return result\n }\n\n const quantity = maxNumber\n const frequentlyKeys = []\n\n for (let key in frequently) {\n if (frequently.hasOwnProperty(key)) {\n frequentlyKeys.push(key)\n }\n }\n\n const sorted = frequentlyKeys\n .sort((a, b) => frequently[a] - frequently[b])\n .reverse()\n const sliced = sorted.slice(0, quantity)\n\n const last = store.get('last')\n\n if (last && sliced.indexOf(last) == -1) {\n sliced.pop()\n sliced.push(last)\n }\n\n return sliced\n}\n\nexport default { add, get }\n","const SVGs = {\n activity: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M12 0C5.373 0 0 5.372 0 12c0 6.627 5.373 12 12 12 6.628 0 12-5.373 12-12 0-6.628-5.372-12-12-12m9.949 11H17.05c.224-2.527 1.232-4.773 1.968-6.113A9.966 9.966 0 0 1 21.949 11M13 11V2.051a9.945 9.945 0 0 1 4.432 1.564c-.858 1.491-2.156 4.22-2.392 7.385H13zm-2 0H8.961c-.238-3.165-1.536-5.894-2.393-7.385A9.95 9.95 0 0 1 11 2.051V11zm0 2v8.949a9.937 9.937 0 0 1-4.432-1.564c.857-1.492 2.155-4.221 2.393-7.385H11zm4.04 0c.236 3.164 1.534 5.893 2.392 7.385A9.92 9.92 0 0 1 13 21.949V13h2.04zM4.982 4.887C5.718 6.227 6.726 8.473 6.951 11h-4.9a9.977 9.977 0 0 1 2.931-6.113M2.051 13h4.9c-.226 2.527-1.233 4.771-1.969 6.113A9.972 9.972 0 0 1 2.051 13m16.967 6.113c-.735-1.342-1.744-3.586-1.968-6.113h4.899a9.961 9.961 0 0 1-2.931 6.113\"/></svg>`,\n\n custom: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><g transform=\"translate(2.000000, 1.000000)\"><rect id=\"Rectangle\" x=\"8\" y=\"0\" width=\"3\" height=\"21\" rx=\"1.5\"></rect><rect id=\"Rectangle\" transform=\"translate(9.843, 10.549) rotate(60) translate(-9.843, -10.549) \" x=\"8.343\" y=\"0.049\" width=\"3\" height=\"21\" rx=\"1.5\"></rect><rect id=\"Rectangle\" transform=\"translate(9.843, 10.549) rotate(-60) translate(-9.843, -10.549) \" x=\"8.343\" y=\"0.049\" width=\"3\" height=\"21\" rx=\"1.5\"></rect></g></svg>`,\n\n flags: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M0 0l6.084 24H8L1.916 0zM21 5h-4l-1-4H4l3 12h3l1 4h13L21 5zM6.563 3h7.875l2 8H8.563l-2-8zm8.832 10l-2.856 1.904L12.063 13h3.332zM19 13l-1.5-6h1.938l2 8H16l3-2z\"/></svg>`,\n\n foods: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M17 4.978c-1.838 0-2.876.396-3.68.934.513-1.172 1.768-2.934 4.68-2.934a1 1 0 0 0 0-2c-2.921 0-4.629 1.365-5.547 2.512-.064.078-.119.162-.18.244C11.73 1.838 10.798.023 9.207.023 8.579.022 7.85.306 7 .978 5.027 2.54 5.329 3.902 6.492 4.999 3.609 5.222 0 7.352 0 12.969c0 4.582 4.961 11.009 9 11.009 1.975 0 2.371-.486 3-1 .629.514 1.025 1 3 1 4.039 0 9-6.418 9-11 0-5.953-4.055-8-7-8M8.242 2.546c.641-.508.943-.523.965-.523.426.169.975 1.405 1.357 3.055-1.527-.629-2.741-1.352-2.98-1.846.059-.112.241-.356.658-.686M15 21.978c-1.08 0-1.21-.109-1.559-.402l-.176-.146c-.367-.302-.816-.452-1.266-.452s-.898.15-1.266.452l-.176.146c-.347.292-.477.402-1.557.402-2.813 0-7-5.389-7-9.009 0-5.823 4.488-5.991 5-5.991 1.939 0 2.484.471 3.387 1.251l.323.276a1.995 1.995 0 0 0 2.58 0l.323-.276c.902-.78 1.447-1.251 3.387-1.251.512 0 5 .168 5 6 0 3.617-4.187 9-7 9\"/></svg>`,\n\n nature: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M15.5 8a1.5 1.5 0 1 0 .001 3.001A1.5 1.5 0 0 0 15.5 8M8.5 8a1.5 1.5 0 1 0 .001 3.001A1.5 1.5 0 0 0 8.5 8\"/><path d=\"M18.933 0h-.027c-.97 0-2.138.787-3.018 1.497-1.274-.374-2.612-.51-3.887-.51-1.285 0-2.616.133-3.874.517C7.245.79 6.069 0 5.093 0h-.027C3.352 0 .07 2.67.002 7.026c-.039 2.479.276 4.238 1.04 5.013.254.258.882.677 1.295.882.191 3.177.922 5.238 2.536 6.38.897.637 2.187.949 3.2 1.102C8.04 20.6 8 20.795 8 21c0 1.773 2.35 3 4 3 1.648 0 4-1.227 4-3 0-.201-.038-.393-.072-.586 2.573-.385 5.435-1.877 5.925-7.587.396-.22.887-.568 1.104-.788.763-.774 1.079-2.534 1.04-5.013C23.929 2.67 20.646 0 18.933 0M3.223 9.135c-.237.281-.837 1.155-.884 1.238-.15-.41-.368-1.349-.337-3.291.051-3.281 2.478-4.972 3.091-5.031.256.015.731.27 1.265.646-1.11 1.171-2.275 2.915-2.352 5.125-.133.546-.398.858-.783 1.313M12 22c-.901 0-1.954-.693-2-1 0-.654.475-1.236 1-1.602V20a1 1 0 1 0 2 0v-.602c.524.365 1 .947 1 1.602-.046.307-1.099 1-2 1m3-3.48v.02a4.752 4.752 0 0 0-1.262-1.02c1.092-.516 2.239-1.334 2.239-2.217 0-1.842-1.781-2.195-3.977-2.195-2.196 0-3.978.354-3.978 2.195 0 .883 1.148 1.701 2.238 2.217A4.8 4.8 0 0 0 9 18.539v-.025c-1-.076-2.182-.281-2.973-.842-1.301-.92-1.838-3.045-1.853-6.478l.023-.041c.496-.826 1.49-1.45 1.804-3.102 0-2.047 1.357-3.631 2.362-4.522C9.37 3.178 10.555 3 11.948 3c1.447 0 2.685.192 3.733.57 1 .9 2.316 2.465 2.316 4.48.313 1.651 1.307 2.275 1.803 3.102.035.058.068.117.102.178-.059 5.967-1.949 7.01-4.902 7.19m6.628-8.202c-.037-.065-.074-.13-.113-.195a7.587 7.587 0 0 0-.739-.987c-.385-.455-.648-.768-.782-1.313-.076-2.209-1.241-3.954-2.353-5.124.531-.376 1.004-.63 1.261-.647.636.071 3.044 1.764 3.096 5.031.027 1.81-.347 3.218-.37 3.235\"/></svg>`,\n\n objects: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M12 0a9 9 0 0 0-5 16.482V21s2.035 3 5 3 5-3 5-3v-4.518A9 9 0 0 0 12 0zm0 2c3.86 0 7 3.141 7 7s-3.14 7-7 7-7-3.141-7-7 3.14-7 7-7zM9 17.477c.94.332 1.946.523 3 .523s2.06-.19 3-.523v.834c-.91.436-1.925.689-3 .689a6.924 6.924 0 0 1-3-.69v-.833zm.236 3.07A8.854 8.854 0 0 0 12 21c.965 0 1.888-.167 2.758-.451C14.155 21.173 13.153 22 12 22c-1.102 0-2.117-.789-2.764-1.453z\"/><path d=\"M14.745 12.449h-.004c-.852-.024-1.188-.858-1.577-1.824-.421-1.061-.703-1.561-1.182-1.566h-.009c-.481 0-.783.497-1.235 1.537-.436.982-.801 1.811-1.636 1.791l-.276-.043c-.565-.171-.853-.691-1.284-1.794-.125-.313-.202-.632-.27-.913-.051-.213-.127-.53-.195-.634C7.067 9.004 7.039 9 6.99 9A1 1 0 0 1 7 7h.01c1.662.017 2.015 1.373 2.198 2.134.486-.981 1.304-2.058 2.797-2.075 1.531.018 2.28 1.153 2.731 2.141l.002-.008C14.944 8.424 15.327 7 16.979 7h.032A1 1 0 1 1 17 9h-.011c-.149.076-.256.474-.319.709a6.484 6.484 0 0 1-.311.951c-.429.973-.79 1.789-1.614 1.789\"/></svg>`,\n\n smileys: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0m0 22C6.486 22 2 17.514 2 12S6.486 2 12 2s10 4.486 10 10-4.486 10-10 10\"/><path d=\"M8 7a2 2 0 1 0-.001 3.999A2 2 0 0 0 8 7M16 7a2 2 0 1 0-.001 3.999A2 2 0 0 0 16 7M15.232 15c-.693 1.195-1.87 2-3.349 2-1.477 0-2.655-.805-3.347-2H15m3-2H6a6 6 0 1 0 12 0\"/></svg>`,\n\n people: `<svg xmlns:svg=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" viewBox=\"0 0 24 24\"> <path id=\"path3814\" d=\"m 3.3591089,21.17726 c 0.172036,0.09385 4.265994,2.29837 8.8144451,2.29837 4.927767,0 8.670894,-2.211883 8.82782,-2.306019 0.113079,-0.06785 0.182268,-0.190051 0.182267,-0.321923 0,-3.03119 -0.929494,-5.804936 -2.617196,-7.810712 -1.180603,-1.403134 -2.661918,-2.359516 -4.295699,-2.799791 4.699118,-2.236258 3.102306,-9.28617162 -2.097191,-9.28617162 -5.1994978,0 -6.7963103,7.04991362 -2.097192,9.28617162 -1.6337821,0.440275 -3.1150971,1.396798 -4.2956991,2.799791 -1.687703,2.005776 -2.617196,4.779522 -2.617196,7.810712 1.2e-6,0.137378 0.075039,0.263785 0.195641,0.329572 z M 8.0439319,5.8308783 C 8.0439309,2.151521 12.492107,0.30955811 15.093491,2.9109411 17.694874,5.5123241 15.852911,9.9605006 12.173554,9.9605 9.8938991,9.9579135 8.0465186,8.1105332 8.0439319,5.8308783 Z m -1.688782,7.6894977 c 1.524535,-1.811449 3.5906601,-2.809035 5.8184041,-2.809035 2.227744,0 4.293869,0.997586 5.818404,2.809035 1.533639,1.822571 2.395932,4.339858 2.439152,7.108301 -0.803352,0.434877 -4.141636,2.096112 -8.257556,2.096112 -3.8062921,0 -7.3910861,-1.671043 -8.2573681,-2.104981 0.04505,-2.765017 0.906968,-5.278785 2.438964,-7.099432 z\" /> <path id=\"path3816\" d=\"M 12.173828 0.38867188 C 9.3198513 0.38867187 7.3770988 2.3672285 6.8652344 4.6308594 C 6.4218608 6.5916015 7.1153562 8.7676117 8.9648438 10.126953 C 7.6141249 10.677376 6.3550511 11.480944 5.3496094 12.675781 C 3.5629317 14.799185 2.6015625 17.701475 2.6015625 20.847656 C 2.6015654 21.189861 2.7894276 21.508002 3.0898438 21.671875 C 3.3044068 21.788925 7.4436239 24.039062 12.173828 24.039062 C 17.269918 24.039062 21.083568 21.776786 21.291016 21.652344 C 21.57281 21.483266 21.746097 21.176282 21.746094 20.847656 C 21.746094 17.701475 20.78277 14.799185 18.996094 12.675781 C 17.990455 11.480591 16.733818 10.675362 15.382812 10.125 C 17.231132 8.7655552 17.925675 6.5910701 17.482422 4.6308594 C 16.970557 2.3672285 15.027805 0.38867188 12.173828 0.38867188 z M 12.792969 2.3007812 C 13.466253 2.4161792 14.125113 2.7383941 14.695312 3.3085938 C 15.835712 4.4489931 15.985604 5.9473549 15.46875 7.1953125 C 14.951896 8.4432701 13.786828 9.3984378 12.173828 9.3984375 C 10.197719 9.3961954 8.607711 7.806187 8.6054688 5.8300781 C 8.6054683 4.2170785 9.5606362 3.0520102 10.808594 2.5351562 C 11.432573 2.2767293 12.119685 2.1853833 12.792969 2.3007812 z M 12.173828 11.273438 C 14.233647 11.273438 16.133674 12.185084 17.5625 13.882812 C 18.93069 15.508765 19.698347 17.776969 19.808594 20.283203 C 18.807395 20.800235 15.886157 22.162109 12.173828 22.162109 C 8.7614632 22.162109 5.6245754 20.787069 4.5390625 20.265625 C 4.6525896 17.766717 5.4203315 15.504791 6.7851562 13.882812 C 8.2139827 12.185084 10.11401 11.273438 12.173828 11.273438 z \" /> </svg>`,\n\n places: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M6.5 12C5.122 12 4 13.121 4 14.5S5.122 17 6.5 17 9 15.879 9 14.5 7.878 12 6.5 12m0 3c-.275 0-.5-.225-.5-.5s.225-.5.5-.5.5.225.5.5-.225.5-.5.5M17.5 12c-1.378 0-2.5 1.121-2.5 2.5s1.122 2.5 2.5 2.5 2.5-1.121 2.5-2.5-1.122-2.5-2.5-2.5m0 3c-.275 0-.5-.225-.5-.5s.225-.5.5-.5.5.225.5.5-.225.5-.5.5\"/><path d=\"M22.482 9.494l-1.039-.346L21.4 9h.6c.552 0 1-.439 1-.992 0-.006-.003-.008-.003-.008H23c0-1-.889-2-1.984-2h-.642l-.731-1.717C19.262 3.012 18.091 2 16.764 2H7.236C5.909 2 4.738 3.012 4.357 4.283L3.626 6h-.642C1.889 6 1 7 1 8h.003S1 8.002 1 8.008C1 8.561 1.448 9 2 9h.6l-.043.148-1.039.346a2.001 2.001 0 0 0-1.359 2.097l.751 7.508a1 1 0 0 0 .994.901H3v1c0 1.103.896 2 2 2h2c1.104 0 2-.897 2-2v-1h6v1c0 1.103.896 2 2 2h2c1.104 0 2-.897 2-2v-1h1.096a.999.999 0 0 0 .994-.901l.751-7.508a2.001 2.001 0 0 0-1.359-2.097M6.273 4.857C6.402 4.43 6.788 4 7.236 4h9.527c.448 0 .834.43.963.857L19.313 9H4.688l1.585-4.143zM7 21H5v-1h2v1zm12 0h-2v-1h2v1zm2.189-3H2.811l-.662-6.607L3 11h18l.852.393L21.189 18z\"/></svg>`,\n\n recent: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M13 4h-2l-.001 7H9v2h2v2h2v-2h4v-2h-4z\"/><path d=\"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0m0 22C6.486 22 2 17.514 2 12S6.486 2 12 2s10 4.486 10 10-4.486 10-10 10\"/></svg>`,\n\n symbols: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M0 0h11v2H0zM4 11h3V6h4V4H0v2h4zM15.5 17c1.381 0 2.5-1.116 2.5-2.493s-1.119-2.493-2.5-2.493S13 13.13 13 14.507 14.119 17 15.5 17m0-2.986c.276 0 .5.222.5.493 0 .272-.224.493-.5.493s-.5-.221-.5-.493.224-.493.5-.493M21.5 19.014c-1.381 0-2.5 1.116-2.5 2.493S20.119 24 21.5 24s2.5-1.116 2.5-2.493-1.119-2.493-2.5-2.493m0 2.986a.497.497 0 0 1-.5-.493c0-.271.224-.493.5-.493s.5.222.5.493a.497.497 0 0 1-.5.493M22 13l-9 9 1.513 1.5 8.99-9.009zM17 11c2.209 0 4-1.119 4-2.5V2s.985-.161 1.498.949C23.01 4.055 23 6 23 6s1-1.119 1-3.135C24-.02 21 0 21 0h-2v6.347A5.853 5.853 0 0 0 17 6c-2.209 0-4 1.119-4 2.5s1.791 2.5 4 2.5M10.297 20.482l-1.475-1.585a47.54 47.54 0 0 1-1.442 1.129c-.307-.288-.989-1.016-2.045-2.183.902-.836 1.479-1.466 1.729-1.892s.376-.871.376-1.336c0-.592-.273-1.178-.818-1.759-.546-.581-1.329-.871-2.349-.871-1.008 0-1.79.293-2.344.879-.556.587-.832 1.181-.832 1.784 0 .813.419 1.748 1.256 2.805-.847.614-1.444 1.208-1.794 1.784a3.465 3.465 0 0 0-.523 1.833c0 .857.308 1.56.924 2.107.616.549 1.423.823 2.42.823 1.173 0 2.444-.379 3.813-1.137L8.235 24h2.819l-2.09-2.383 1.333-1.135zm-6.736-6.389a1.02 1.02 0 0 1 .73-.286c.31 0 .559.085.747.254a.849.849 0 0 1 .283.659c0 .518-.419 1.112-1.257 1.784-.536-.651-.805-1.231-.805-1.742a.901.901 0 0 1 .302-.669M3.74 22c-.427 0-.778-.116-1.057-.349-.279-.232-.418-.487-.418-.766 0-.594.509-1.288 1.527-2.083.968 1.134 1.717 1.946 2.248 2.438-.921.507-1.686.76-2.3.76\"/></svg>`,\n}\n\nexport default SVGs\n","<template>\n <div role=\"tablist\" class=\"emoji-mart-anchors\">\n <button\n v-for=\"category in categories\"\n role=\"tab\"\n type=\"button\"\n :aria-label=\"category.name\"\n :aria-selected=\"category.id == activeCategory.id\"\n :key=\"category.id\"\n :class=\"{\n 'emoji-mart-anchor': true,\n 'emoji-mart-anchor-selected': category.id == activeCategory.id,\n }\"\n :style=\"{ color: category.id == activeCategory.id ? color : '' }\"\n :data-title=\"i18n.categories[category.id]\"\n @click=\"$emit('click', category)\"\n >\n <div aria-hidden=\"true\" v-html=\"svgs[category.id]\" />\n <span\n aria-hidden=\"true\"\n class=\"emoji-mart-anchor-bar\"\n :style=\"{ backgroundColor: color }\"\n ></span>\n </button>\n </div>\n</template>\n\n<script>\nimport svgs from '../svgs'\n\nexport default {\n props: {\n i18n: {\n type: Object,\n required: true,\n },\n color: {\n type: String,\n },\n categories: {\n type: Array,\n required: true,\n },\n activeCategory: {\n type: Object,\n default() {\n return {}\n },\n },\n },\n emits: ['click'],\n created() {\n this.svgs = svgs\n },\n}\n</script>\n","const _String = String\n\nexport default _String.fromCodePoint ||\n function stringFromCodePoint() {\n var MAX_SIZE = 0x4000\n var codeUnits = []\n var highSurrogate\n var lowSurrogate\n var index = -1\n var length = arguments.length\n if (!length) {\n return ''\n }\n var result = ''\n while (++index < length) {\n var codePoint = Number(arguments[index])\n if (\n !isFinite(codePoint) || // `NaN`, `+Infinity`, or `-Infinity`\n codePoint < 0 || // not a valid Unicode code point\n codePoint > 0x10ffff || // not a valid Unicode code point\n Math.floor(codePoint) != codePoint // not an integer\n ) {\n throw RangeError('Invalid code point: ' + codePoint)\n }\n if (codePoint <= 0xffff) {\n // BMP code point\n codeUnits.push(codePoint)\n } else {\n // Astral code point; split in surrogate halves\n // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n codePoint -= 0x10000\n highSurrogate = (codePoint >> 10) + 0xd800\n lowSurrogate = (codePoint % 0x400) + 0xdc00\n codeUnits.push(highSurrogate, lowSurrogate)\n }\n if (index + 1 === length || codeUnits.length > MAX_SIZE) {\n result += String.fromCharCode.apply(null, codeUnits)\n codeUnits.length = 0\n }\n }\n return result\n }\n","import stringFromCodePoint from '../polyfills/stringFromCodePoint'\n\nfunction unifiedToNative(unified) {\n var unicodes = unified.split('-'),\n codePoints = unicodes.map((u) => `0x${u}`)\n\n return stringFromCodePoint.apply(null, codePoints)\n}\n\nfunction uniq(arr) {\n return arr.reduce((acc, item) => {\n if (acc.indexOf(item) === -1) {\n acc.push(item)\n }\n return acc\n }, [])\n}\n\nfunction intersect(a, b) {\n const uniqA = uniq(a)\n const uniqB = uniq(b)\n\n return uniqA.filter((item) => uniqB.indexOf(item) >= 0)\n}\n\nfunction deepMerge(a, b) {\n var o = {}\n\n for (let key in a) {\n let originalValue = a[key],\n value = originalValue\n\n if (Object.prototype.hasOwnProperty.call(b, key)) {\n value = b[key]\n }\n\n if (typeof value === 'object') {\n value = deepMerge(originalValue, value)\n }\n\n o[key] = value\n }\n\n return o\n}\n\n// https://github.com/sonicdoe/measure-scrollbar\nfunction measureScrollbar() {\n if (typeof document == 'undefined') return 0\n const div = document.createElement('div')\n\n div.style.width = '100px'\n div.style.height = '100px'\n div.style.overflow = 'scroll'\n div.style.position = 'absolute'\n div.style.top = '-9999px'\n\n document.body.appendChild(div)\n const scrollbarWidth = div.offsetWidth - div.clientWidth\n document.body.removeChild(div)\n\n return scrollbarWidth\n}\n\nexport { uniq, intersect, deepMerge, unifiedToNative, measureScrollbar }\n","import { intersect, unifiedToNative } from './index'\nimport { uncompress, buildSearch } from './data'\nimport frequently from './frequently'\n\nconst SHEET_COLUMNS = 61\nconst COLONS_REGEX = /^(?:\\:([^\\:]+)\\:)(?:\\:skin-tone-(\\d)\\:)?$/\n// Skin tones\nconst SKINS = ['1F3FA', '1F3FB', '1F3FC', '1F3FD', '1F3FE', '1F3FF']\n\n/**\n * Emoji data structure:\n * {\n * \"compressed\": false,\n * \"aliases\": {\n * collision: \"boom\"\n * cooking: \"fried_egg\"\n * envelope: \"email\"\n * face_with_finger_covering_closed_lips: \"shushing_face\"\n * ...\n * },\n * \"categories\": [ {\n * id: \"people\",\n * name: \"Smileys & Emotion\",\n * emojis: [ \"grinning\", \"grin\", \"joy\", ... ]\n * }, {\n * id: \"nature\",\n * name: \"Animals & Nature\",\n * emojis: [ \"monkey_face\", \"money\", \"gorilla\", ... ]\n * },\n * ...\n * ],\n * \"emojis\": [\n * smiley: {\n * added_in: \"6.0\",\n * emoticons: [\"=)\", \"=-)\"],\n * has_img_apple: true,\n * has_img_facebook: true,\n * has_img_google: true,\n * has_img_twitter: true,\n * keywords: [\"face\", \"happy\", \"joy\", \"haha\", \":D\", \":)\", \"smile\", \"funny\"],\n * name: \"Smiling Face with Open Mouth\",\n * non_qualified: undefined,\n * search: \"smiley,smiling,face,with,open,mouth,happy,joy,haha,:d,:),smile,funny,=),=-)\",\n * sheet_x: 30,\n * sheet_y: 27,\n * short_names: [\"smiley\"],\n * text: \":)\",\n * unified: \"1F603\",\n * }, {\n * +1: { // emoji with skin_variations\n * ..., // all the regular fields are present\n * name: \"Thumbs Up Sign\",\n * short_names: (2) [\"+1\", \"thumbsup\"],\n * skin_variations: {\n * 1F3FB: // each variation has additional set of fields:\n * added_in: \"8.0\",\n * has_img_apple: true,\n * has_img_facebook: true,\n * has_img_google: true,\n * has_img_twitter: true,\n * image: \"1f44d-1f3fb.png\",\n * non_qualified: null,\n * sheet_x: 14,\n * sheet_y: 50,\n * unified: \"1F44D-1F3FB\",\n * 1F3FB: {…},\n * 1F3FC: {…},\n * 1F3FD: {…},\n * 1F3FE: {…},\n * 1F3FF: {…}\n * },\n * ...\n * },\n * a: { // emoji with non_qualified field set\n * added_in: \"6.0\",\n * emoticons: undefined,\n * has_img_apple: true,\n * ...\n * non_qualified: \"1F170\",\n * unified: \"1F170-FE0F\",\n * },\n * ...\n * ]\n * }\n */\n\n/**\n * Wraps raw jason emoji data, serves as data source for\n * emoji picker components.\n *\n * Usage:\n *\n * import data from '../data/all.json'\n * let index = new EmojiIndex(data)\n *\n */\nexport class EmojiIndex {\n /**\n * Constructor.\n *\n * @param {object} data - Raw json data, see the structure above.\n * @param {object} options - additional options, as an object:\n * @param {Function} emojisToShowFilter - optional, function to filter out\n * some emojis, function(emoji) { return true|false }\n * where `emoji` is an raw emoji object, see data.emojis above.\n * @param {Array} include - optional, a list of category ids to include.\n * @param {Array} exclude - optional, a list of category ids to exclude.\n * @param {Array} custom - optional, a list custom emojis, each emoji is\n * an object, see data.emojis above for examples.\n */\n constructor(\n data,\n {\n emojisToShowFilter,\n include,\n exclude,\n custom,\n recent,\n recentLength = 20,\n } = {},\n ) {\n this._data = uncompress(data)\n // Callback to exclude specific emojis\n this._emojisFilter = emojisToShowFilter || null\n // Categories to include / exclude\n this._include = include || null\n this._exclude = exclude || null\n // Custom emojis\n this._custom = custom || []\n // Recent emojis\n // TODO: make parameter configurable\n this._recent = recent || frequently.get(recentLength)\n\n this._emojis = {}\n this._nativeEmojis = {}\n this._emoticons = {}\n\n this._categories = []\n this._recentCategory = { id: 'recent', name: 'Recent', emojis: [] }\n this._customCategory = { id: 'custom', name: 'Custom', emojis: [] }\n this._searchIndex = {}\n this.buildIndex()\n Object.freeze(this)\n }\n\n buildIndex() {\n let allCategories = this._data.categories\n\n if (this._include) {\n // Remove categories that are not in the include list.\n allCategories = allCategories.filter((item) => {\n return this._include.includes(item.id)\n })\n // Sort categories according to the include list.\n allCategories = allCategories.sort((a, b) => {\n const indexA = this._include.indexOf(a.id)\n const indexB = this._include.indexOf(b.id)\n if (indexA < indexB) {\n return -1\n }\n if (indexA > indexB) {\n return 1\n }\n return 0\n })\n }\n\n allCategories.forEach((categoryData) => {\n if (!this.isCategoryNeeded(categoryData.id)) {\n return\n }\n let category = {\n id: categoryData.id,\n name: categoryData.name,\n emojis: [],\n }\n categoryData.emojis.forEach((emojiId) => {\n let emoji = this.addEmoji(emojiId)\n if (emoji) {\n category.emojis.push(emoji)\n }\n })\n if (category.emojis.length) {\n this._categories.push(category)\n }\n })\n\n if (this.isCategoryNeeded('custom')) {\n if (this._custom.length > 0) {\n for (let customEmoji of this._custom) {\n this.addCustomEmoji(customEmoji)\n }\n }\n if (this._customCategory.emojis.length) {\n this._categories.push(this._customCategory)\n }\n }\n\n if (this.isCategoryNeeded('recent')) {\n if (this._recent.length) {\n this._recent.map((id) => {\n for (let customEmoji of this._customCategory.emojis) {\n if (customEmoji.id === id) {\n this._recentCategory.emojis.push(customEmoji)\n return\n }\n }\n if (this.hasEmoji(id)) {\n this._recentCategory.emojis.push(this.emoji(id))\n }\n return\n })\n }\n // Add recent category to the top\n if (this._recentCategory.emojis.length) {\n this._categories.unshift(this._recentCategory)\n }\n }\n }\n\n /**\n * Find the emoji from the string\n */\n findEmoji(emoji, skin) {\n // 1. Parse as :emoji_name:skin-tone-xx:\n let matches = emoji.match(COLONS_REGEX)\n\n if (matches) {\n emoji = matches[1]\n if (matches[2]) {\n skin = parseInt(matches[2], 10)\n }\n }\n\n // 2. Check if the specified emoji is an alias\n if (this._data.aliases.hasOwnProperty(emoji)) {\n emoji = this._data.aliases[emoji]\n }\n\n // 3. Check if we have the specified emoji\n if (this._emojis.hasOwnProperty(emoji)) {\n let emojiObject = this._emojis[emoji]\n if (skin) {\n return emojiObject.getSkin(skin)\n }\n return emojiObject\n }\n\n // 4. Check if we have the specified native emoji\n if (this._nativeEmojis.hasOwnProperty(emoji)) {\n return this._nativeEmojis[emoji]\n }\n return null\n }\n\n categories() {\n return this._categories\n }\n\n emoji(emojiId) {\n if (this._data.aliases.hasOwnProperty(emojiId)) {\n emojiId = this._data.aliases[emojiId]\n }\n let emoji = this._emojis[emojiId]\n if (!emoji) {\n throw new Error('Can not find emoji by id: ' + emojiId)\n }\n return emoji\n }\n\n firstEmoji() {\n let emoji = this._emojis[Object.keys(this._emojis)[0]]\n if (!emoji) {\n throw new Error('Can not get first emoji')\n }\n return emoji\n }\n\n hasEmoji(emojiId) {\n if (this._data.aliases.hasOwnProperty(emojiId)) {\n emojiId = this._data.aliases[emojiId]\n }\n if (this._emojis[emojiId]) {\n return true\n }\n return false\n }\n\n nativeEmoji(unicodeEmoji) {\n if (this._nativeEmojis.hasOwnProperty(unicodeEmoji)) {\n return this._nativeEmojis[unicodeEmoji]\n }\n return null\n }\n\n search(value, maxResults) {\n maxResults || (maxResults = 75)\n if (!value.length) {\n return null\n }\n if (value == '-' || value == '-1') {\n return [this.emoji('-1')]\n }\n\n let values = value.toLowerCase().split(/[\\s|,|\\-|_]+/)\n let allResults = []\n\n if (values.length > 2) {\n values = [values[0], values[1]]\n }\n\n allResults = values\n .map((value) => {\n // Start searchin in the global list of emojis\n let emojis = this._emojis\n let currentIndex = this._searchIndex\n let length = 0\n\n for (let charIndex = 0; charIndex < value.length; charIndex++) {\n const char = value[charIndex]\n length++\n\n currentIndex[char] || (currentIndex[char] = {})\n currentIndex = currentIndex[char]\n\n if (!currentIndex.results) {\n let scores = {}\n currentIndex.results = []\n currentIndex.emojis = {}\n\n for (let emojiId in emojis) {\n let emoji = emojis[emojiId]\n // search is a comma-separated string with words, related\n // to the emoji, for example:\n // search: \"smiley,smiling,face,joy,haha,:d,:),smile,funny,=),=-)\",\n let search = emoji._data.search\n let sub = value.substr(0, length)\n let subIndex = search.indexOf(sub)\n if (subIndex != -1) {\n let score = subIndex + 1\n if (sub == emojiId) score = 0\n\n currentIndex.results.push(emoji)\n currentIndex.emojis[emojiId] = emoji\n\n scores[emojiId] = score\n }\n }\n currentIndex.results.sort((a, b) => {\n var aScore = scores[a.id],\n bScore = scores[b.id]\n return aScore - bScore\n })\n }\n\n // continue search in the reduced set of emojis\n emojis = currentIndex.emojis\n }\n return currentIndex.results\n // The \"filter\" call removes undefined values from allResults\n // array, for example, if we have \"test \" (with trailing space),\n // we will get \"[Array, undefined]\" for allResults and after\n // the \"filter\" call it will turn into \"[Array]\"\n })\n .filter((a) => a)\n\n var results = null\n if (allResults.length > 1) {\n results = intersect.apply(null, allResults)\n } else if (allResults.length) {\n results = allResults[0]\n } else {\n results = []\n }\n if (results && results.length > maxResults) {\n results = results.slice(0, maxResults)\n }\n return results\n }\n\n addCustomEmoji(customEmoji) {\n let emojiData = Object.assign({}, customEmoji, {\n id: customEmoji.short_names[0],\n custom: true,\n })\n if (!emojiData.search) {\n emojiData.search = buildSearch(emojiData)\n }\n let emoji = new EmojiData(emojiData)\n this._emojis[emoji.id] = emoji\n this._customCategory.emojis.push(emoji)\n return emoji\n }\n\n addEmoji(emojiId) {\n // We expect the correct emoji id that is present in the emojis data.\n let data = this._data.emojis[emojiId]\n\n if (!this.isEmojiNeeded(data)) {\n return false\n }\n\n let emoji = new EmojiData(data)\n this._emojis[emojiId] = emoji\n if (emoji.native) {\n this._nativeEmojis[emoji.native] = emoji\n }\n if (emoji._skins) {\n for (let idx in emoji._skins) {\n let skin = emoji._skins[idx]\n if (skin.native) {\n this._nativeEmojis[skin.native] = skin\n }\n }\n }\n\n if (emoji.emoticons) {\n emoji.emoticons.forEach((emoticon) => {\n if (this._emoticons[emoticon]) {\n return\n }\n this._emoticons[emoticon] = emojiId\n })\n }\n return emoji\n }\n\n /**\n * Check if we need to include given category.\n *\n * @param {string} category_id - The category id.\n * @return {boolean} - Whether to include the emoji.\n */\n isCategoryNeeded(category_id) {\n let isIncluded =\n this._include && this._include.length\n ? this._include.indexOf(category_id) > -1\n : true\n let isExcluded =\n this._exclude && this._exclude.length\n ? this._exclude.indexOf(category_id) > -1\n : false\n if (!isIncluded || isExcluded) {\n return false\n }\n return true\n }\n\n /**\n * Check if we need to include given emoji.\n *\n * @param {object} emoji - The raw emoji object.\n * @return {boolean} - Whether to include the emoji.\n */\n isEmojiNeeded(emoji) {\n if (this._emojisFilter) {\n return this._emojisFilter(emoji)\n }\n return true\n }\n}\n\nexport class EmojiData {\n constructor(data) {\n this._data = Object.assign({}, data)\n this._skins = null\n if (this._data.skin_variations) {\n this._skins = []\n for (var skinIdx in SKINS) {\n let skinKey = SKINS[skinIdx]\n let variationData = this._data.skin_variations[skinKey]\n let skinData = Object.assign({}, data)\n for (let k in variationData) {\n skinData[k] = variationData[k]\n }\n delete skinData.skin_variations\n skinData['skin_tone'] = parseInt(skinIdx) + 1\n this._skins.push(new EmojiData(skinData))\n }\n }\n this._sanitized = sanitize(this._data)\n for (let key in this._sanitized) {\n this[key] = this._sanitized[key]\n }\n this.short_names = this._data.short_names\n this.short_name = this._data.short_names[0]\n Object.freeze(this)\n }\n\n getSkin(skinIdx) {\n if (skinIdx && skinIdx != 'native' && this._skins) {\n return this._skins[skinIdx - 1]\n }\n return this\n }\n\n getPosition() {\n let adjustedColumns = SHEET_COLUMNS - 1,\n x = +((100 / adjustedColumns) * this._data.sheet_x).toFixed(2),\n y = +((100 / adjustedColumns) * this._data.sheet_y).toFixed(2)\n return `${x}% ${y}%`\n }\n\n ariaLabel() {\n return [this.native].concat(this.short_names).filter(Boolean).join(', ')\n }\n}\n\nexport class EmojiView {\n /**\n * emoji - Emoji to display\n * set - string, emoji set name\n * native - boolean, whether to render native emoji\n * fallback - fallback function to render missing emoji, optional\n * emojiTooltip - wether we need to show the emoji tooltip, optional\n * emojiSize - emoji size in pixels, optional\n */\n constructor(emoji, skin, set, native, fallback, emojiTooltip, emojiSize) {\n this._emoji = emoji\n this._native = native\n this._skin = skin\n this._set = set\n this._fallback = fallback\n\n this.canRender = this._canRender()\n this.cssClass = this._cssClass()\n this.cssStyle = this._cssStyle(emojiSize)\n this.content = this._content()\n this.title = emojiTooltip === true ? emoji.short_name : null\n this.ariaLabel = emoji.ariaLabel()\n\n Object.freeze(this)\n }\n\n getEmoji() {\n return this._emoji.getSkin(this._skin)\n }\n\n _canRender() {\n return (\n this._isCustom() || this._isNative() || this._hasEmoji() || this._fallback\n )\n }\n\n _cssClass() {\n return ['emoji-set-' + this._set, 'emoji-type-' + this._emojiType()]\n }\n\n _cssStyle(emojiSize) {\n let cssStyle = {}\n if (this._isCustom()) {\n cssStyle = {\n backgroundImage: 'url(' + this.getEmoji()._data.imageUrl + ')',\n backgroundSize: '100%',\n width: emojiSize + 'px',\n height: emojiSize + 'px',\n }\n } else if (this._hasEmoji() && !this._isNative()) {\n cssStyle = {\n backgroundPosition: this.getEmoji().getPosition(),\n }\n }\n if (emojiSize) {\n if (this._isNative()) {\n // Set font-size for native emoji.\n cssStyle = Object.assign(cssStyle, {\n // font-size is used for native emoji which we need\n // to scale with 0.95 factor to have them look approximately\n // the same size as image-based emoji.\n fontSize: Math.round(emojiSize * 0.95 * 10) / 10 + 'px',\n })\n } else {\n // Set width/height for image emoji.\n cssStyle = Object.assign(cssStyle, {\n width: emojiSize + 'px',\n height: emojiSize + 'px',\n })\n }\n }\n return cssStyle\n }\n\n _content() {\n if (this._isCustom()) {\n return ''\n }\n if (this._isNative()) {\n return this.getEmoji().native\n }\n if (this._hasEmoji()) {\n return ''\n }\n return this._fallback ? this._fallback(this.getEmoji()) : null\n }\n\n _isNative() {\n return this._native\n }\n\n _isCustom() {\n return this.getEmoji().custom\n }\n\n _hasEmoji() {\n if (!this.getEmoji()._data) {\n // Return false if we have no data.\n return false\n }\n const hasImage = this.getEmoji()._data['has_img_' + this._set]\n if (hasImage === undefined) {\n // If there is no has_img_xxx in the data, we are working with\n // specific data file, like facebook.json, so we assume all\n // emojis are available (the :set setting for picker should\n // match the data file).\n return true\n }\n // Otherwise, we are using all.json and can switch between different\n // sets - in this case the `has_img_{set_name}` is a boolean that\n // indicates if there is such image or not for a given set.\n return hasImage\n }\n\n _emojiType() {\n if (this._isCustom()) {\n return 'custom'\n }\n if (this._isNative()) {\n return 'native'\n }\n if (this._hasEmoji()) {\n return 'image'\n }\n return 'fallback'\n }\n}\n\nexport function sanitize(emoji) {\n var {\n name,\n short_names,\n skin_tone,\n skin_variations,\n emoticons,\n unified,\n custom,\n imageUrl,\n } = emoji,\n id = emoji.id || short_names[0],\n colons = `:${id}:`\n\n if (custom) {\n return {\n id,\n name,\n colons,\n emoticons,\n custom,\n imageUrl,\n }\n }\n\n if (skin_tone) {\n colons += `:skin-tone-${skin_tone}:`\n }\n\n return {\n id,\n name,\n colons,\n emoticons,\n unified: unified.toLowerCase(),\n skin: skin_tone || (skin_variations ? 1 : null),\n native: unifiedToNative(unified),\n }\n}\n","const EmojiProps = {\n native: {\n type: Boolean,\n default: false,\n },\n tooltip: {\n type: Boolean,\n default: false,\n },\n fallback: {\n type: Function,\n },\n skin: {\n type: Number,\n default: 1,\n },\n set: {\n type: String,\n default: 'apple',\n },\n emoji: {\n type: [String, Object],\n required: true,\n },\n size: {\n type: Number,\n default: null,\n },\n tag: {\n type: String,\n default: 'span',\n },\n}\n\nconst PickerProps = {\n perLine: {\n type: Number,\n default: 9,\n },\n maxSearchResults: {\n type: Number,\n default: 75,\n },\n emojiSize: {\n type: Number,\n default: 24,\n },\n title: {\n type: String,\n default: 'Emoji Mart™',\n },\n emoji: {\n type: String,\n default: 'department_store',\n },\n color: {\n type: String,\n default: '#ae65c5',\n },\n set: {\n type: String,\n default: 'apple',\n },\n skin: {\n type: Number,\n default: null,\n },\n defaultSkin: {\n type: Number,\n default: 1,\n },\n native: {\n type: Boolean,\n default: false,\n },\n emojiTooltip: {\n type: Boolean,\n default: false,\n },\n autoFocus: {\n type: Boolean,\n default: false,\n },\n i18n: {\n type: Object,\n default() {\n return {}\n },\n },\n showPreview: {\n type: Boolean,\n default: true,\n },\n showSearch: {\n type: Boolean,\n default: true,\n },\n showCategories: {\n type: Boolean,\n default: true,\n },\n showSkinTones: {\n type: Boolean,\n default: true,\n },\n infiniteScroll: {\n type: Boolean,\n default: true,\n },\n pickerStyles: {\n type: Object,\n default() {\n return {}\n },\n },\n}\n\nexport { EmojiProps, PickerProps }\n","<template>\n <component\n :is=\"tag\"\n v-if=\"view.canRender\"\n :title=\"view.title\"\n :aria-label=\"view.ariaLabel\"\n :data-title=\"title\"\n class=\"emoji-mart-emoji\"\n @mouseenter=\"onMouseEnter\"\n @mouseleave=\"onMouseLeave\"\n @click=\"onClick\"\n >\n <span :class=\"view.cssClass\" :style=\"view.cssStyle\">{{\n view.content\n }}</span>\n </component>\n</template>\n\n<script>\nimport { EmojiProps } from '../utils/shared-props'\nimport { EmojiView } from '../utils/emoji-data'\n\nexport default {\n props: {\n ...EmojiProps,\n data: {\n type: Object,\n required: true,\n },\n },\n emits: [\"click\", \"mouseenter\", \"mouseleave\"],\n computed: {\n view() {\n return new EmojiView(\n this.emojiObject,\n this.skin,\n this.set,\n this.native,\n this.fallback,\n this.tooltip,\n this.size,\n )\n },\n sanitizedData() {\n return this.emojiObject._sanitized\n },\n title() {\n return this.tooltip ? this.emojiObject.short_name : null\n },\n emojiObject() {\n if (typeof this.emoji == 'string') {\n return this.data.findEmoji(this.emoji)\n } else {\n return this.emoji\n }\n },\n },\n created() {},\n methods: {\n onClick() {\n this.$emit('click', this.emojiObject)\n },\n onMouseEnter() {\n this.$emit('mouseenter', this.emojiObject)\n },\n onMouseLeave() {\n this.$emit('mouseleave', this.emojiObject)\n },\n },\n}\n</script>\n","<template>\n <section\n :class=\"{\n 'emoji-mart-category': true,\n 'emoji-mart-no-results': !hasResults,\n }\"\n :aria-label=\"i18n.categories[id]\"\n v-if=\"isVisible && (isSearch || hasResults)\"\n >\n <div class=\"emoji-mart-category-label\">\n <h3 class=\"emoji-mart-category-label\">{{ i18n.categories[id] }}</h3>\n </div>\n\n <template v-for=\"{ emojiObject, emojiView } in emojiObjects\">\n <button\n v-if=\"emojiView.canRender\"\n :aria-label=\"emojiView.ariaLabel\"\n role=\"option\"\n aria-selected=\"false\"\n aria-posinset=\"1\"\n aria-setsize=\"1812\"\n type=\"button\"\n :data-title=\"emojiObject.short_name\"\n :key=\"emojiObject.id\"\n :title=\"emojiView.title\"\n class=\"emoji-mart-emoji\"\n :class=\"activeClass(emojiObject)\"\n @mouseenter=\"emojiProps.onEnter(emojiView.getEmoji())\"\n @mouseleave=\"emojiProps.onLeave(emojiView.getEmoji())\"\n @click=\"emojiProps.onClick(emojiView.getEmoji())\"\n >\n <span :class=\"emojiView.cssClass\" :style=\"emojiView.cssStyle\">{{\n emojiView.content\n }}</span>\n </button>\n </template>\n\n <div v-if=\"!hasResults\">\n <emoji\n :data=\"data\"\n emoji=\"sleuth_or_spy\"\n :native=\"emojiProps.native\"\n :skin=\"emojiProps.skin\"\n :set=\"emojiProps.set\"\n />\n <div class=\"emoji-mart-no-results-label\">{{ i18n.notfound }}</div>\n </div>\n </section>\n</template>\n\n<script>\nimport { EmojiView } from '../utils/emoji-data'\nimport Emoji from './Emoji.vue'\n\nexport default {\n props: {\n data: {\n type: Object,\n required: true,\n },\n i18n: {\n type: Object,\n required: true,\n },\n id: {\n type: String,\n required: true,\n },\n name: {\n type: String,\n required: true,\n },\n emojis: {\n type: Array,\n },\n emojiProps: {\n type: Object,\n required: true,\n },\n },\n methods: {\n activeClass: function(emojiObject) {\n if (!this.emojiProps.selectedEmoji) {\n return ''\n }\n if (!this.emojiProps.selectedEmojiCategory) {\n return ''\n }\n if (\n this.emojiProps.selectedEmoji.id == emojiObject.id &&\n this.emojiProps.selectedEmojiCategory.id == this.id\n ) {\n return 'emoji-mart-emoji-selected'\n }\n return ''\n },\n },\n computed: {\n isVisible() {\n return !!this.emojis\n },\n isSearch() {\n return this.name == 'Search'\n },\n hasResults() {\n return this.emojis.length > 0\n },\n emojiObjects() {\n return this.emojis.map((emoji) => {\n let emojiObject = emoji\n let emojiView = new EmojiView(\n emoji,\n this.emojiProps.skin,\n this.emojiProps.set,\n this.emojiProps.native,\n this.emojiProps.fallback,\n this.emojiProps.emojiTooltip,\n this.emojiProps.emojiSize,\n )\n return { emojiObject, emojiView }\n })\n },\n },\n components: {\n Emoji,\n },\n}\n</script>\n","<template>\n\n<div :class=\"{ 'emoji-mart-skin-swatches': true, 'emoji-mart-skin-swatches-opened': opened }\">\n <span v-for=\"skinTone in 6\" :key=\"skinTone\" :class=\"{ 'emoji-mart-skin-swatch': true, 'emoji-mart-skin-swatch-selected': skin == skinTone }\">\n <span :class=\"'emoji-mart-skin emoji-mart-skin-tone-' + skinTone\" @click=\"onClick(skinTone)\"></span>\n </span>\n</div>\n\n</template>\n\n<script>\n\nexport default {\n props: {\n skin: {\n type: Number,\n required: true\n }\n },\n emits: ['change'],\n data() {\n return {\n opened: false\n }\n },\n methods: {\n onClick(skinTone) {\n if (this.opened) {\n if (skinTone != this.skin) {\n this.$emit('change', skinTone)\n }\n }\n\n this.opened = !this.opened\n }\n }\n}\n\n</script>\n","<template>\n\n<div class=\"emoji-mart-preview\">\n <template v-if=\"emoji\">\n <div class=\"emoji-mart-preview-emoji\">\n <emoji\n :data=\"data\"\n :emoji=\"emoji\"\n :native=\"emojiProps.native\"\n :skin=\"emojiProps.skin\"\n :set=\"emojiProps.set\"\n />\n </div>\n\n <div class=\"emoji-mart-preview-data\">\n <div class=\"emoji-mart-preview-name\">{{ emoji.name }}</div>\n <div class=\"emoji-mart-preview-shortnames\">\n <span v-for=\"shortName in emojiShortNames\" :key=\"shortName\" class=\"emoji-mart-preview-shortname\">:{{ shortName }}:</span>\n </div>\n <div class=\"emoji-mart-preview-emoticons\">\n <span v-for=\"emoticon in emojiEmoticons\" :key=\"emoticon\" class=\"emoji-mart-preview-emoticon\">{{ emoticon }}</span>\n </div>\n </div>\n </template>\n\n <template v-else>\n <div class=\"emoji-mart-preview-emoji\">\n <emoji\n :data=\"data\"\n :emoji=\"idleEmoji\"\n :native=\"emojiProps.native\"\n :skin=\"emojiProps.skin\"\n :set=\"emojiProps.set\"\n />\n </div>\n\n <div class=\"emoji-mart-preview-data\">\n <span class=\"emoji-mart-title-label\">{{ title }}</span>\n </div>\n\n <div v-if=\"showSkinTones\" class=\"emoji-mart-preview-skins\">\n <skins :skin=\"skinProps.skin\" @change=\"onSkinChange($event)\" />\n </div>\n </template>\n</div>\n\n</template>\n\n<script>\n\nimport Emoji from './Emoji.vue'\nimport Skins from './skins.vue'\n\nexport default {\n props: {\n data: {\n type: Object,\n required: true\n },\n title: {\n type: String,\n required: true\n },\n emoji: {\n type: [String, Object]\n },\n idleEmoji: {\n type: [String, Object],\n required: true\n },\n showSkinTones: {\n type: Boolean,\n default: true\n },\n emojiProps: {\n type: Object,\n required: true\n },\n skinProps: {\n type: Object,\n required: true\n },\n onSkinChange: {\n type: Function,\n required: true\n }\n },\n computed: {\n emojiData() {\n if (this.emoji) {\n return this.emoji\n } else {\n return {}\n }\n },\n emojiShortNames() {\n return this.emojiData.short_names\n },\n emojiEmoticons() {\n return this.emojiData.emoticons\n }\n },\n components: {\n Emoji,\n Skins\n }\n}\n\n</script>\n","<template>\n <div class=\"emoji-mart-search\">\n <input\n type=\"text\"\n :placeholder=\"i18n.search\"\n role=\"textbox\"\n aria-autocomplete=\"list\"\n aria-owns=\"emoji-mart-list\"\n aria-label=\"Search for an emoji\"\n aria-describedby=\"emoji-mart-search-description\"\n @keydown.left=\"($event) => $emit('arrowLeft', $event)\"\n @keydown.right=\"() => $emit('arrowRight')\"\n @keydown.down=\"() => $emit('arrowDown')\"\n @keydown.up=\"($event) => $emit('arrowUp', $event)\"\n @keydown.enter=\"() => $emit('enter')\"\n v-model=\"value\"\n />\n <span class=\"hidden\" id=\"emoji-picker-search-description\"\n >Use the left, right, up and down arrow keys to navigate the emoji search\n results.</span\n >\n </div>\n</template>\n\n<script>\nexport default {\n props: {\n data: {\n type: Object,\n required: true,\n },\n i18n: {\n type: Object,\n required: true,\n },\n autoFocus: {\n type: Boolean,\n default: false,\n },\n onSearch: {\n type: Function,\n required: true,\n },\n onArrowLeft: {\n type: Function,\n required: false,\n },\n onArrowRight: {\n type: Function,\n required: false,\n },\n onArrowDown: {\n type: Function,\n required: false,\n },\n onArrowUp: {\n type: Function,\n required: false,\n },\n onEnter: {\n type: Function,\n required: false,\n },\n },\n emits: ['search', 'enter', 'arrowUp', 'arrowDown', 'arrowRight', 'arrowLeft'],\n data() {\n return {\n value: '',\n }\n },\n computed: {\n emojiIndex() {\n return this.data\n },\n },\n watch: {\n value() {\n this.$emit('search', this.value)\n },\n },\n methods: {\n clear() {\n this.value = ''\n },\n },\n mounted() {\n let $input = this.$el.querySelector('input')\n\n if (this.autoFocus) {\n $input.focus()\n }\n },\n}\n</script>\n","// http://paulirish.com/2011/requestanimationframe-for-smart-animating/\n// http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating\n\n// requestAnimationFrame polyfill by Erik Möller. fixes from Paul Irish and Tino Zijdel\n\n// MIT license\n\nvar isWindowAvailable = typeof window !== 'undefined'\n\nisWindowAvailable &&\n (function () {\n var lastTime = 0\n var vendors = ['ms', 'moz', 'webkit', 'o']\n\n for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {\n window.requestAnimationFrame =\n window[vendors[x] + 'RequestAnimationFrame']\n window.cancelAnimationFrame =\n window[vendors[x] + 'CancelAnimationFrame'] ||\n window[vendors[x] + 'CancelRequestAnimationFrame']\n }\n\n if (!window.requestAnimationFrame)\n window.requestAnimationFrame = function (callback, element) {\n var currTime = new Date().getTime()\n var timeToCall = Math.max(0, 16 - (currTime - lastTime))\n var id = window.setTimeout(function () {\n callback(currTime + timeToCall)\n }, timeToCall)\n\n lastTime = currTime + timeToCall\n return id\n }\n\n if (!window.cancelAnimationFrame)\n window.cancelAnimationFrame = function (id) {\n clearTimeout(id)\n }\n })()\n","export class PickerView {\n constructor(pickerComponent) {\n this._vm = pickerComponent\n this._data = pickerComponent.data\n this._perLine = pickerComponent.perLine\n\n this._categories = []\n this._categories.push(...this._data.categories())\n this._categories = this._categories.filter((category) => {\n return category.emojis.length > 0\n })\n\n this._categories[0].first = true\n Object.freeze(this._categories)\n\n this.activeCategory = this._categories[0]\n this.searchEmojis = null\n\n // Preview emoji, shown on mouse over or when we move\n // with arrow keys.\n this.previewEmoji = null\n // Indexes are used to keep the position when moving\n // with arrows: current category and current emoji\n // inside the category.\n this.previewEmojiCategoryIdx = 0\n this.previewEmojiIdx = -1\n }\n\n onScroll() {\n const scrollElement = this._vm.$refs.scroll\n\n if (!scrollElement) {\n // Reported in https://github.com/serebrov/emoji-mart-vue/issues/305\n // Would be good to understand how it can happen, but at least\n // exiting early we prevent the error.\n return\n }\n\n const scrollTop = scrollElement.scrollTop\n\n let activeCategory = this.filteredCategories[0]\n for (let i = 0, l = this.filteredCategories.length; i < l; i++) {\n let category = this.filteredCategories[i]\n let component = this._vm.getCategoryComponent(i)\n // The `-50` offset switches active category (selected in the\n // anchors bar) a bit eariler, before it actually reaches the top.\n if (component && component.$el.offsetTop - 50 > scrollTop) {\n break\n }\n activeCategory = category\n }\n this.activeCategory = activeCategory\n }\n\n get allCategories() {\n return this._categories\n }\n\n get filteredCategories() {\n if (this.searchEmojis) {\n return [\n {\n id: 'search',\n name: 'Search',\n emojis: this.searchEmojis,\n },\n ]\n }\n return this._categories.filter((category) => {\n let hasEmojis = category.emojis.length > 0\n return hasEmojis\n })\n }\n\n get previewEmojiCategory() {\n if (this.previewEmojiCategoryIdx >= 0) {\n return this.filteredCategories[this.previewEmojiCategoryIdx]\n }\n return null\n }\n\n onAnchorClick(category) {\n if (this.searchEmojis) {\n // No categories are shown when search is active.\n return\n }\n let i = this.filteredCategories.indexOf(category)\n let component = this._vm.getCategoryComponent(i)\n let scrollToComponent = () => {\n if (component) {\n let top = component.$el.offsetTop\n if (category.first) {\n top = 0\n }\n this._vm.$refs.scroll.scrollTop = top\n }\n }\n if (this._vm.infiniteScroll) {\n scrollToComponent()\n } else {\n this.activeCategory = this.filteredCategories[i]\n }\n }\n\n onSearch(value) {\n let emojis = this._data.search(value, this.maxSearchResults)\n this.searchEmojis = emojis\n\n this.previewEmojiCategoryIdx = 0\n this.previewEmojiIdx = 0\n this.updatePreviewEmoji()\n }\n\n onEmojiEnter(emoji) {\n this.previewEmoji = emoji\n this.previewEmojiIdx = -1\n this.previewEmojiCategoryIdx = -1\n }\n\n onEmojiLeave(emoji) {\n this.previewEmoji = null\n }\n\n onArrowLeft() {\n // Moving left, decrease emoji index.\n if (this.previewEmojiIdx > 0) {\n this.previewEmojiIdx -= 1\n } else {\n // If emoji index is zero, go to the previous category.\n this.previewEmojiCategoryIdx -= 1\n if (this.previewEmojiCategoryIdx < 0) {\n // If we reached first category, keep it.\n this.previewEmojiCategoryIdx = 0\n } else {\n // Update emoji index - we moved to the previous category,\n // get the last emoji in it.\n this.previewEmojiIdx =\n this.filteredCategories[this.previewEmojiCategoryIdx].emojis.length -\n 1\n }\n }\n this.updatePreviewEmoji()\n }\n\n onArrowRight() {\n if (\n this.previewEmojiIdx <\n this.emojisLength(this.previewEmojiCategoryIdx) - 1\n ) {\n // Moving right within category, increase emoji index.\n this.previewEmojiIdx += 1\n } else {\n // Go to the next category.\n this.previewEmojiCategoryIdx += 1\n if (this.previewEmojiCategoryIdx >= this.filteredCategories.length) {\n // If we reached the last category - keep it.\n this.previewEmojiCategoryIdx = this.filteredCategories.length - 1\n } else {\n // If we moved to the next category, update emoji index to the\n // first emoji in the new category.\n this.previewEmojiIdx = 0\n }\n }\n this.updatePreviewEmoji()\n }\n\n onArrowDown() {\n // If we are out of the emoji control (index is -1), select the first\n // emoji in the first category by calling `onArrowRight`.\n if (this.previewEmojiIdx == -1) {\n return this.onArrowRight()\n }\n\n const categoryLength =\n this.filteredCategories[this.previewEmojiCategoryIdx].emojis.length\n\n // When moving down, we can move `_perLine` icons right to\n // jump to the same position in the next row.\n let diff = this._perLine\n\n // TODO: previewCategory should match activeCategory\n // (so it would be both highlighted in UI and used\n // when we start moving with arrows after clicking\n // the category).\n\n // Note: probably we can alwasy take current row length\n // as a `diff` - it will fit both case of any row and\n // special case of the last row.\n // Note: it can be also easier to update indexes\n // directly here instead of calling onArrowRight.\n // Same is true for `onArrowUp`.\n\n // Unless if we are on the last row of the category and\n // there are less then `_perLine` emojis in it.\n // In this case we use the last row length as diff\n // so we go straight down, for example:\n //\n // 1 2 3 4 5 6\n // 7 8 9\n // A B C D E F\n //\n // If we go down from `8`, we need to move 3 emojis right\n // to lend at `B` (and 3 is the length of the last row of\n // this category).\n // And if we used 6 instead (row length, `_perLine`), we would\n // lend up at `E`.\n if (this.previewEmojiIdx + diff > categoryLength) {\n // Calculate the last row length.\n diff = categoryLength % this._perLine\n }\n for (let i = 0; i < diff; i++) {\n this.onArrowRight()\n }\n this.updatePreviewEmoji()\n }\n\n onArrowUp() {\n // Similar to `onArrowDown`, to move up we can move left\n // by `_perLine` number of emojis.\n let diff = this._perLine\n\n if (this.previewEmojiIdx - diff < 0) {\n if (this.previewEmojiCategoryIdx > 0) {\n // Unless if we are on the first line of the category and\n // the last line in the previous category is shorter than\n // `_perLine`.\n // In this case we use the last row length as diff, so\n // we go straight up, for example:\n //\n // 1 2 3 4 5\n // 6 7 8\n // 9 A B C D\n //\n // If we go up from `A`, we need to move 3 emojis left to get\n // to `7` (and 3 is the length of the last row of the previous\n // category).\n const prevCategoryLastRowLength =\n this.filteredCategories[this.previewEmojiCategoryIdx - 1].emojis\n .length % this._perLine\n // diff = this.previewEmojiIdx + prevCategoryLastRowLength\n diff = prevCategoryLastRowLength\n } else {\n diff = 0\n }\n }\n for (let i = 0; i < diff; i++) {\n this.onArrowLeft()\n }\n this.updatePreviewEmoji()\n }\n\n updatePreviewEmoji() {\n this.previewEmoji =\n this.filteredCategories[this.previewEmojiCategoryIdx].emojis[\n this.previewEmojiIdx\n ]\n\n this._vm.$nextTick(() => {\n // Scroll the view if the `previewEmoji` goes out of the visible area.\n const scrollEl = this._vm.$refs.scroll\n\n // Note: it would be more Vue-ish to mark all emojis with `ref`s\n // and then do something similar here to what we do in the\n // `getCategories` instead of using `querySelector` directly,\n // but I am not sure if having many refs would affect the performance\n // (it might, so I use `querySelector` for now).\n const emojiEl = scrollEl.querySelector('.emoji-mart-emoji-selected')\n\n const scrollHeight = scrollEl.offsetTop - scrollEl.offsetHeight\n if (\n emojiEl &&\n emojiEl.offsetTop + emojiEl.offsetHeight >\n scrollHeight + scrollEl.scrollTop\n ) {\n scrollEl.scrollTop += emojiEl.offsetHeight\n }\n if (emojiEl && emojiEl.offsetTop < scrollEl.scrollTop) {\n scrollEl.scrollTop -= emojiEl.offsetHeight\n }\n })\n }\n\n emojisLength(categoryIdx) {\n if (categoryIdx == -1) {\n return 0\n }\n return this.filteredCategories[categoryIdx].emojis.length\n }\n}\n","<template>\n <section class=\"emoji-mart emoji-mart-static\" :style=\"customStyles\">\n <div class=\"emoji-mart-bar emoji-mart-bar-anchors\" v-if=\"showCategories\">\n <anchors\n :data=\"data\"\n :i18n=\"mergedI18n\"\n :color=\"color\"\n :categories=\"view.allCategories\"\n :active-category=\"view.activeCategory\"\n @click=\"onAnchorClick\"\n />\n </div>\n\n <slot\n name=\"searchTemplate\"\n :data=\"data\"\n :i18n=\"i18n\"\n :auto-focus=\"autoFocus\"\n :on-search=\"onSearch\"\n >\n <search\n v-if=\"showSearch\"\n ref=\"search\"\n :data=\"data\"\n :i18n=\"mergedI18n\"\n :auto-focus=\"autoFocus\"\n :on-search=\"onSearch\"\n @search=\"onSearch\"\n @arrowLeft=\"onArrowLeft\"\n @arrowRight=\"onArrowRight\"\n @arrowDown=\"onArrowDown\"\n @arrowUp=\"onArrowUp\"\n @enter=\"onEnter\"\n @select=\"onTextSelect\"\n />\n </slot>\n\n <div\n role=\"tabpanel\"\n class=\"emoji-mart-scroll\"\n ref=\"scroll\"\n @scroll=\"onScroll\"\n >\n <div\n id=\"emoji-mart-list\"\n ref=\"scrollContent\"\n role=\"listbox\"\n aria-expanded=\"true\"\n >\n <slot name=\"customCategory\"> </slot>\n\n <category\n v-for=\"(category, idx) in view.filteredCategories\"\n v-show=\"infiniteScroll || category == view.activeCategory || isSearching\"\n :ref=\"'categories_' + idx\"\n :key=\"category.id\"\n :data=\"data\"\n :i18n=\"mergedI18n\"\n :id=\"category.id\"\n :name=\"category.name\"\n :emojis=\"category.emojis\"\n :emoji-props=\"emojiProps\"\n />\n </div>\n </div>\n\n <slot\n name=\"previewTemplate\"\n :data=\"data\"\n :title=\"title\"\n :emoji=\"view.previewEmoji\"\n :idle-emoji=\"idleEmoji\"\n :show-skin-tones=\"showSkinTones\"\n :emoji-props=\"emojiProps\"\n :skin-props=\"skinProps\"\n :on-skin-change=\"onSkinChange\"\n >\n <div class=\"emoji-mart-bar emoji-mart-bar-preview\" v-if=\"showPreview\">\n <preview\n :data=\"data\"\n :title=\"title\"\n :emoji=\"view.previewEmoji\"\n :idle-emoji=\"idleEmoji\"\n :show-skin-tones=\"showSkinTones\"\n :emoji-props=\"emojiProps\"\n :skin-props=\"skinProps\"\n :on-skin-change=\"onSkinChange\"\n />\n </div>\n </slot>\n </section>\n</template>\n\n<script>\nimport '../vendor/raf-polyfill'\nimport store from '../utils/store'\nimport frequently from '../utils/frequently'\nimport { deepMerge, measureScrollbar } from '../utils'\nimport { PickerProps } from '../utils/shared-props'\nimport { PickerView } from '../utils/picker'\nimport Anchors from './anchors.vue'\nimport Category from './category.vue'\nimport Preview from './preview.vue'\nimport Search from './search.vue'\n\nconst I18N = {\n search: 'Search',\n notfound: 'No Emoji Found',\n categories: {\n search: 'Search Results',\n recent: 'Frequently Used',\n smileys: 'Smileys & Emotion',\n people: 'People & Body',\n nature: 'Animals & Nature',\n foods: 'Food & Drink',\n activity: 'Activity',\n places: 'Travel & Places',\n objects: 'Objects',\n symbols: 'Symbols',\n flags: 'Flags',\n custom: 'Custom',\n },\n}\n\nexport default {\n props: {\n ...PickerProps,\n data: {\n type: Object,\n required: true,\n },\n },\n emits: ['select', 'skin-change'],\n data() {\n return {\n activeSkin: this.skin || store.get('skin') || this.defaultSkin,\n view: new PickerView(this),\n }\n },\n computed: {\n customStyles() {\n return {\n width: this.calculateWidth + 'px',\n ...this.pickerStyles,\n }\n },\n emojiProps() {\n return {\n native: this.native,\n skin: this.activeSkin,\n set: this.set,\n emojiTooltip: this.emojiTooltip,\n emojiSize: this.emojiSize,\n selectedEmoji: this.view.previewEmoji,\n selectedEmojiCategory: this.view.previewEmojiCategory,\n onEnter: this.onEmojiEnter.bind(this),\n onLeave: this.onEmojiLeave.bind(this),\n onClick: this.onEmojiClick.bind(this),\n }\n },\n skinProps() {\n return {\n skin: this.activeSkin,\n }\n },\n calculateWidth() {\n return this.perLine * (this.emojiSize + 12) + 12 + 2 + measureScrollbar()\n },\n // emojisPerRow() {\n // const listEl = this.$refs.scrollContent\n // const emojiEl = listEl.querySelector('.emoji-mart-emoji')\n // return Math.floor(listEl.offsetWidth / emojiEl.offsetWidth)\n // },\n filteredCategories() {\n return this.view.filteredCategories\n },\n mergedI18n() {\n return Object.freeze(deepMerge(I18N, this.i18n))\n },\n idleEmoji() {\n try {\n return this.data.emoji(this.emoji)\n } catch (e) {\n console.error(\n 'Default preview emoji `' +\n this.emoji +\n '` is not available, check the Picker `emoji` property',\n )\n console.error(e)\n return this.data.firstEmoji()\n }\n },\n isSearching() {\n return this.view.searchEmojis != null;\n },\n },\n watch: {\n skin() {\n this.onSkinChange(this.skin)\n },\n },\n methods: {\n onScroll() {\n if (this.infiniteScroll && !this.waitingForPaint) {\n this.waitingForPaint = true\n window.requestAnimationFrame(this.onScrollPaint.bind(this))\n }\n },\n onScrollPaint() {\n this.waitingForPaint = false\n this.view.onScroll()\n },\n onAnchorClick(category) {\n this.view.onAnchorClick(category)\n },\n onSearch(value) {\n this.view.onSearch(value)\n },\n onEmojiEnter(emoji) {\n this.view.onEmojiEnter(emoji)\n },\n onEmojiLeave(emoji) {\n this.view.onEmojiLeave(emoji)\n },\n onArrowLeft($event) {\n const oldIdx = this.view.previewEmojiIdx\n this.view.onArrowLeft()\n if ($event && this.view.previewEmojiIdx !== oldIdx) {\n // Prevent cursor movement inside the input\n $event.preventDefault()\n }\n },\n onArrowRight() {\n this.view.onArrowRight()\n },\n onArrowDown() {\n this.view.onArrowDown()\n },\n onArrowUp($event) {\n this.view.onArrowUp()\n // Prevent cursor movement inside the input\n $event.preventDefault()\n },\n onEnter() {\n if (!this.view.previewEmoji) {\n // We may press \"Enter\" when nothing is selected,\n // for example, if we search for \"asdf\".\n return\n }\n this.$emit('select', this.view.previewEmoji)\n frequently.add(this.view.previewEmoji)\n },\n onEmojiClick(emoji) {\n this.$emit('select', emoji)\n frequently.add(emoji)\n },\n onTextSelect($event) {\n // Prevent default text select event.\n // In Vue 3 it goes through the component and triggers the `select`\n // event that is supposed to be emmited only with emoji.\n // (there is no such problem in Vue 2).\n $event.stopPropagation()\n },\n onSkinChange(skin) {\n this.activeSkin = skin\n store.update({ skin })\n\n this.$emit('skin-change', skin)\n },\n getCategoryComponent(index) {\n let component = this.$refs['categories_' + index]\n if (component && '0' in component) {\n // Vue 2 has $refs under v-for as an array.\n return component['0']\n }\n // Vue 3 does not support $refs as array.\n return component\n },\n },\n components: {\n Anchors,\n Category,\n Preview,\n Search,\n },\n}\n</script>\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.EmojiMart=t():e.EmojiMart=t()}(\"undefined\"!=typeof self?self:this,(function(){return function(){var e={537:function(){\"undefined\"!=typeof window&&function(){for(var e=0,t=[\"ms\",\"moz\",\"webkit\",\"o\"],i=0;i<t.length&&!window.requestAnimationFrame;++i)window.requestAnimationFrame=window[t[i]+\"RequestAnimationFrame\"],window.cancelAnimationFrame=window[t[i]+\"CancelAnimationFrame\"]||window[t[i]+\"CancelRequestAnimationFrame\"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t,i){var n=(new Date).getTime(),r=Math.max(0,16-(n-e)),o=window.setTimeout((function(){t(n+r)}),r);return e=n+r,o}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(e){clearTimeout(e)})}()}},t={};function i(n){var r=t[n];if(void 0!==r)return r.exports;var o=t[n]={exports:{}};return e[n](o,o.exports,i),o.exports}i.d=function(e,t){for(var n in t)i.o(t,n)&&!i.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})};var n={};return function(){\"use strict\";i.r(n),i.d(n,{Anchors:function(){return k},Category:function(){return X},Emoji:function(){return J},EmojiData:function(){return N},EmojiIndex:function(){return R},EmojiView:function(){return $},Picker:function(){return se},Preview:function(){return G},Search:function(){return Q},Skins:function(){return Z},frequently:function(){return w},sanitize:function(){return D},store:function(){return c},uncompress:function(){return p}});var e,t,r=\"emoji-mart\",o=JSON,s=\"undefined\"!=typeof window&&\"localStorage\"in window;function a(e,i){if(t)t(e,i);else{if(!s)return;try{window.localStorage[\"\".concat(r,\".\").concat(e)]=o.stringify(i)}catch(e){}}}var c={update:function(e){for(var t in e)a(t,e[t])},set:a,get:function(t){if(e)return e(t);if(s){try{var i=window.localStorage[\"\".concat(r,\".\").concat(t)]}catch(e){return}return i?JSON.parse(i):void 0}},setNamespace:function(e){r=e},setHandlers:function(i){i||(i={}),e=i.getter,t=i.setter}};function u(e){return u=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},u(e)}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,n=new Array(t);i<t;i++)n[i]=e[i];return n}var h={name:\"a\",unified:\"b\",non_qualified:\"c\",has_img_apple:\"d\",has_img_google:\"e\",has_img_twitter:\"f\",has_img_facebook:\"h\",keywords:\"j\",sheet:\"k\",emoticons:\"l\",text:\"m\",short_names:\"n\",added_in:\"o\"},m=function(e){var t=[],i=function(e,i){e&&(Array.isArray(e)?e:[e]).forEach((function(e){(i?e.split(/[-|_|\\s]+/):[e]).forEach((function(e){e=e.toLowerCase(),-1==t.indexOf(e)&&t.push(e)}))}))};return i(e.short_names,!0),i(e.name,!0),i(e.keywords,!1),i(e.emoticons,!1),t.join(\",\")};function d(e){var t,i=function(e,t){var i=\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(!i){if(Array.isArray(e)||(i=function(e,t){if(e){if(\"string\"==typeof e)return l(e,t);var i=Object.prototype.toString.call(e).slice(8,-1);return\"Object\"===i&&e.constructor&&(i=e.constructor.name),\"Map\"===i||\"Set\"===i?Array.from(e):\"Arguments\"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?l(e,t):void 0}}(e))||t&&e&&\"number\"==typeof e.length){i&&(e=i);var n=0,r=function(){};return{s:r,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:r}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var o,s=!0,a=!1;return{s:function(){i=i.call(e)},n:function(){var e=i.next();return s=e.done,e},e:function(e){a=!0,o=e},f:function(){try{s||null==i.return||i.return()}finally{if(a)throw o}}}}(Object.getOwnPropertyNames(e));try{for(i.s();!(t=i.n()).done;){var n=t.value,r=e[n];e[n]=r&&\"object\"===u(r)?d(r):r}}catch(e){i.e(e)}finally{i.f()}return Object.freeze(e)}var f,v,p=function(e){if(!e.compressed)return e;for(var t in e.compressed=!1,e.emojis){var i=e.emojis[t];for(var n in h)i[n]=i[h[n]],delete i[h[n]];i.short_names||(i.short_names=[]),i.short_names.unshift(t),i.sheet_x=i.sheet[0],i.sheet_y=i.sheet[1],delete i.sheet,i.text||(i.text=\"\"),i.added_in||(i.added_in=6),i.added_in=i.added_in.toFixed(1),i.search=m(i)}return d(e)},j=[\"+1\",\"grinning\",\"kissing_heart\",\"heart_eyes\",\"laughing\",\"stuck_out_tongue_winking_eye\",\"sweat_smile\",\"joy\",\"scream\",\"disappointed\",\"unamused\",\"weary\",\"sob\",\"sunglasses\",\"heart\",\"hankey\"],g={};function y(){v=!0,f=c.get(\"frequently\")}var w={add:function(e){v||y();var t=e.id;f||(f=g),f[t]||(f[t]=0),f[t]+=1,c.set(\"last\",t),c.set(\"frequently\",f)},get:function(e){if(v||y(),!f){g={};for(var t=[],i=Math.min(e,j.length),n=0;n<i;n++)g[j[n]]=parseInt((i-n)/4,10)+1,t.push(j[n]);return t}var r=e,o=[];for(var s in f)f.hasOwnProperty(s)&&o.push(s);var a=o.sort((function(e,t){return f[e]-f[t]})).reverse().slice(0,r),u=c.get(\"last\");return u&&-1==a.indexOf(u)&&(a.pop(),a.push(u)),a}},_={activity:'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M12 0C5.373 0 0 5.372 0 12c0 6.627 5.373 12 12 12 6.628 0 12-5.373 12-12 0-6.628-5.372-12-12-12m9.949 11H17.05c.224-2.527 1.232-4.773 1.968-6.113A9.966 9.966 0 0 1 21.949 11M13 11V2.051a9.945 9.945 0 0 1 4.432 1.564c-.858 1.491-2.156 4.22-2.392 7.385H13zm-2 0H8.961c-.238-3.165-1.536-5.894-2.393-7.385A9.95 9.95 0 0 1 11 2.051V11zm0 2v8.949a9.937 9.937 0 0 1-4.432-1.564c.857-1.492 2.155-4.221 2.393-7.385H11zm4.04 0c.236 3.164 1.534 5.893 2.392 7.385A9.92 9.92 0 0 1 13 21.949V13h2.04zM4.982 4.887C5.718 6.227 6.726 8.473 6.951 11h-4.9a9.977 9.977 0 0 1 2.931-6.113M2.051 13h4.9c-.226 2.527-1.233 4.771-1.969 6.113A9.972 9.972 0 0 1 2.051 13m16.967 6.113c-.735-1.342-1.744-3.586-1.968-6.113h4.899a9.961 9.961 0 0 1-2.931 6.113\"/></svg>',custom:'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><g transform=\"translate(2.000000, 1.000000)\"><rect id=\"Rectangle\" x=\"8\" y=\"0\" width=\"3\" height=\"21\" rx=\"1.5\"></rect><rect id=\"Rectangle\" transform=\"translate(9.843, 10.549) rotate(60) translate(-9.843, -10.549) \" x=\"8.343\" y=\"0.049\" width=\"3\" height=\"21\" rx=\"1.5\"></rect><rect id=\"Rectangle\" transform=\"translate(9.843, 10.549) rotate(-60) translate(-9.843, -10.549) \" x=\"8.343\" y=\"0.049\" width=\"3\" height=\"21\" rx=\"1.5\"></rect></g></svg>',flags:'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M0 0l6.084 24H8L1.916 0zM21 5h-4l-1-4H4l3 12h3l1 4h13L21 5zM6.563 3h7.875l2 8H8.563l-2-8zm8.832 10l-2.856 1.904L12.063 13h3.332zM19 13l-1.5-6h1.938l2 8H16l3-2z\"/></svg>',foods:'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M17 4.978c-1.838 0-2.876.396-3.68.934.513-1.172 1.768-2.934 4.68-2.934a1 1 0 0 0 0-2c-2.921 0-4.629 1.365-5.547 2.512-.064.078-.119.162-.18.244C11.73 1.838 10.798.023 9.207.023 8.579.022 7.85.306 7 .978 5.027 2.54 5.329 3.902 6.492 4.999 3.609 5.222 0 7.352 0 12.969c0 4.582 4.961 11.009 9 11.009 1.975 0 2.371-.486 3-1 .629.514 1.025 1 3 1 4.039 0 9-6.418 9-11 0-5.953-4.055-8-7-8M8.242 2.546c.641-.508.943-.523.965-.523.426.169.975 1.405 1.357 3.055-1.527-.629-2.741-1.352-2.98-1.846.059-.112.241-.356.658-.686M15 21.978c-1.08 0-1.21-.109-1.559-.402l-.176-.146c-.367-.302-.816-.452-1.266-.452s-.898.15-1.266.452l-.176.146c-.347.292-.477.402-1.557.402-2.813 0-7-5.389-7-9.009 0-5.823 4.488-5.991 5-5.991 1.939 0 2.484.471 3.387 1.251l.323.276a1.995 1.995 0 0 0 2.58 0l.323-.276c.902-.78 1.447-1.251 3.387-1.251.512 0 5 .168 5 6 0 3.617-4.187 9-7 9\"/></svg>',nature:'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M15.5 8a1.5 1.5 0 1 0 .001 3.001A1.5 1.5 0 0 0 15.5 8M8.5 8a1.5 1.5 0 1 0 .001 3.001A1.5 1.5 0 0 0 8.5 8\"/><path d=\"M18.933 0h-.027c-.97 0-2.138.787-3.018 1.497-1.274-.374-2.612-.51-3.887-.51-1.285 0-2.616.133-3.874.517C7.245.79 6.069 0 5.093 0h-.027C3.352 0 .07 2.67.002 7.026c-.039 2.479.276 4.238 1.04 5.013.254.258.882.677 1.295.882.191 3.177.922 5.238 2.536 6.38.897.637 2.187.949 3.2 1.102C8.04 20.6 8 20.795 8 21c0 1.773 2.35 3 4 3 1.648 0 4-1.227 4-3 0-.201-.038-.393-.072-.586 2.573-.385 5.435-1.877 5.925-7.587.396-.22.887-.568 1.104-.788.763-.774 1.079-2.534 1.04-5.013C23.929 2.67 20.646 0 18.933 0M3.223 9.135c-.237.281-.837 1.155-.884 1.238-.15-.41-.368-1.349-.337-3.291.051-3.281 2.478-4.972 3.091-5.031.256.015.731.27 1.265.646-1.11 1.171-2.275 2.915-2.352 5.125-.133.546-.398.858-.783 1.313M12 22c-.901 0-1.954-.693-2-1 0-.654.475-1.236 1-1.602V20a1 1 0 1 0 2 0v-.602c.524.365 1 .947 1 1.602-.046.307-1.099 1-2 1m3-3.48v.02a4.752 4.752 0 0 0-1.262-1.02c1.092-.516 2.239-1.334 2.239-2.217 0-1.842-1.781-2.195-3.977-2.195-2.196 0-3.978.354-3.978 2.195 0 .883 1.148 1.701 2.238 2.217A4.8 4.8 0 0 0 9 18.539v-.025c-1-.076-2.182-.281-2.973-.842-1.301-.92-1.838-3.045-1.853-6.478l.023-.041c.496-.826 1.49-1.45 1.804-3.102 0-2.047 1.357-3.631 2.362-4.522C9.37 3.178 10.555 3 11.948 3c1.447 0 2.685.192 3.733.57 1 .9 2.316 2.465 2.316 4.48.313 1.651 1.307 2.275 1.803 3.102.035.058.068.117.102.178-.059 5.967-1.949 7.01-4.902 7.19m6.628-8.202c-.037-.065-.074-.13-.113-.195a7.587 7.587 0 0 0-.739-.987c-.385-.455-.648-.768-.782-1.313-.076-2.209-1.241-3.954-2.353-5.124.531-.376 1.004-.63 1.261-.647.636.071 3.044 1.764 3.096 5.031.027 1.81-.347 3.218-.37 3.235\"/></svg>',objects:'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M12 0a9 9 0 0 0-5 16.482V21s2.035 3 5 3 5-3 5-3v-4.518A9 9 0 0 0 12 0zm0 2c3.86 0 7 3.141 7 7s-3.14 7-7 7-7-3.141-7-7 3.14-7 7-7zM9 17.477c.94.332 1.946.523 3 .523s2.06-.19 3-.523v.834c-.91.436-1.925.689-3 .689a6.924 6.924 0 0 1-3-.69v-.833zm.236 3.07A8.854 8.854 0 0 0 12 21c.965 0 1.888-.167 2.758-.451C14.155 21.173 13.153 22 12 22c-1.102 0-2.117-.789-2.764-1.453z\"/><path d=\"M14.745 12.449h-.004c-.852-.024-1.188-.858-1.577-1.824-.421-1.061-.703-1.561-1.182-1.566h-.009c-.481 0-.783.497-1.235 1.537-.436.982-.801 1.811-1.636 1.791l-.276-.043c-.565-.171-.853-.691-1.284-1.794-.125-.313-.202-.632-.27-.913-.051-.213-.127-.53-.195-.634C7.067 9.004 7.039 9 6.99 9A1 1 0 0 1 7 7h.01c1.662.017 2.015 1.373 2.198 2.134.486-.981 1.304-2.058 2.797-2.075 1.531.018 2.28 1.153 2.731 2.141l.002-.008C14.944 8.424 15.327 7 16.979 7h.032A1 1 0 1 1 17 9h-.011c-.149.076-.256.474-.319.709a6.484 6.484 0 0 1-.311.951c-.429.973-.79 1.789-1.614 1.789\"/></svg>',smileys:'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0m0 22C6.486 22 2 17.514 2 12S6.486 2 12 2s10 4.486 10 10-4.486 10-10 10\"/><path d=\"M8 7a2 2 0 1 0-.001 3.999A2 2 0 0 0 8 7M16 7a2 2 0 1 0-.001 3.999A2 2 0 0 0 16 7M15.232 15c-.693 1.195-1.87 2-3.349 2-1.477 0-2.655-.805-3.347-2H15m3-2H6a6 6 0 1 0 12 0\"/></svg>',people:'<svg xmlns:svg=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" viewBox=\"0 0 24 24\"> <path id=\"path3814\" d=\"m 3.3591089,21.17726 c 0.172036,0.09385 4.265994,2.29837 8.8144451,2.29837 4.927767,0 8.670894,-2.211883 8.82782,-2.306019 0.113079,-0.06785 0.182268,-0.190051 0.182267,-0.321923 0,-3.03119 -0.929494,-5.804936 -2.617196,-7.810712 -1.180603,-1.403134 -2.661918,-2.359516 -4.295699,-2.799791 4.699118,-2.236258 3.102306,-9.28617162 -2.097191,-9.28617162 -5.1994978,0 -6.7963103,7.04991362 -2.097192,9.28617162 -1.6337821,0.440275 -3.1150971,1.396798 -4.2956991,2.799791 -1.687703,2.005776 -2.617196,4.779522 -2.617196,7.810712 1.2e-6,0.137378 0.075039,0.263785 0.195641,0.329572 z M 8.0439319,5.8308783 C 8.0439309,2.151521 12.492107,0.30955811 15.093491,2.9109411 17.694874,5.5123241 15.852911,9.9605006 12.173554,9.9605 9.8938991,9.9579135 8.0465186,8.1105332 8.0439319,5.8308783 Z m -1.688782,7.6894977 c 1.524535,-1.811449 3.5906601,-2.809035 5.8184041,-2.809035 2.227744,0 4.293869,0.997586 5.818404,2.809035 1.533639,1.822571 2.395932,4.339858 2.439152,7.108301 -0.803352,0.434877 -4.141636,2.096112 -8.257556,2.096112 -3.8062921,0 -7.3910861,-1.671043 -8.2573681,-2.104981 0.04505,-2.765017 0.906968,-5.278785 2.438964,-7.099432 z\" /> <path id=\"path3816\" d=\"M 12.173828 0.38867188 C 9.3198513 0.38867187 7.3770988 2.3672285 6.8652344 4.6308594 C 6.4218608 6.5916015 7.1153562 8.7676117 8.9648438 10.126953 C 7.6141249 10.677376 6.3550511 11.480944 5.3496094 12.675781 C 3.5629317 14.799185 2.6015625 17.701475 2.6015625 20.847656 C 2.6015654 21.189861 2.7894276 21.508002 3.0898438 21.671875 C 3.3044068 21.788925 7.4436239 24.039062 12.173828 24.039062 C 17.269918 24.039062 21.083568 21.776786 21.291016 21.652344 C 21.57281 21.483266 21.746097 21.176282 21.746094 20.847656 C 21.746094 17.701475 20.78277 14.799185 18.996094 12.675781 C 17.990455 11.480591 16.733818 10.675362 15.382812 10.125 C 17.231132 8.7655552 17.925675 6.5910701 17.482422 4.6308594 C 16.970557 2.3672285 15.027805 0.38867188 12.173828 0.38867188 z M 12.792969 2.3007812 C 13.466253 2.4161792 14.125113 2.7383941 14.695312 3.3085938 C 15.835712 4.4489931 15.985604 5.9473549 15.46875 7.1953125 C 14.951896 8.4432701 13.786828 9.3984378 12.173828 9.3984375 C 10.197719 9.3961954 8.607711 7.806187 8.6054688 5.8300781 C 8.6054683 4.2170785 9.5606362 3.0520102 10.808594 2.5351562 C 11.432573 2.2767293 12.119685 2.1853833 12.792969 2.3007812 z M 12.173828 11.273438 C 14.233647 11.273438 16.133674 12.185084 17.5625 13.882812 C 18.93069 15.508765 19.698347 17.776969 19.808594 20.283203 C 18.807395 20.800235 15.886157 22.162109 12.173828 22.162109 C 8.7614632 22.162109 5.6245754 20.787069 4.5390625 20.265625 C 4.6525896 17.766717 5.4203315 15.504791 6.7851562 13.882812 C 8.2139827 12.185084 10.11401 11.273438 12.173828 11.273438 z \" /> </svg>',places:'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M6.5 12C5.122 12 4 13.121 4 14.5S5.122 17 6.5 17 9 15.879 9 14.5 7.878 12 6.5 12m0 3c-.275 0-.5-.225-.5-.5s.225-.5.5-.5.5.225.5.5-.225.5-.5.5M17.5 12c-1.378 0-2.5 1.121-2.5 2.5s1.122 2.5 2.5 2.5 2.5-1.121 2.5-2.5-1.122-2.5-2.5-2.5m0 3c-.275 0-.5-.225-.5-.5s.225-.5.5-.5.5.225.5.5-.225.5-.5.5\"/><path d=\"M22.482 9.494l-1.039-.346L21.4 9h.6c.552 0 1-.439 1-.992 0-.006-.003-.008-.003-.008H23c0-1-.889-2-1.984-2h-.642l-.731-1.717C19.262 3.012 18.091 2 16.764 2H7.236C5.909 2 4.738 3.012 4.357 4.283L3.626 6h-.642C1.889 6 1 7 1 8h.003S1 8.002 1 8.008C1 8.561 1.448 9 2 9h.6l-.043.148-1.039.346a2.001 2.001 0 0 0-1.359 2.097l.751 7.508a1 1 0 0 0 .994.901H3v1c0 1.103.896 2 2 2h2c1.104 0 2-.897 2-2v-1h6v1c0 1.103.896 2 2 2h2c1.104 0 2-.897 2-2v-1h1.096a.999.999 0 0 0 .994-.901l.751-7.508a2.001 2.001 0 0 0-1.359-2.097M6.273 4.857C6.402 4.43 6.788 4 7.236 4h9.527c.448 0 .834.43.963.857L19.313 9H4.688l1.585-4.143zM7 21H5v-1h2v1zm12 0h-2v-1h2v1zm2.189-3H2.811l-.662-6.607L3 11h18l.852.393L21.189 18z\"/></svg>',recent:'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M13 4h-2l-.001 7H9v2h2v2h2v-2h4v-2h-4z\"/><path d=\"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0m0 22C6.486 22 2 17.514 2 12S6.486 2 12 2s10 4.486 10 10-4.486 10-10 10\"/></svg>',symbols:'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M0 0h11v2H0zM4 11h3V6h4V4H0v2h4zM15.5 17c1.381 0 2.5-1.116 2.5-2.493s-1.119-2.493-2.5-2.493S13 13.13 13 14.507 14.119 17 15.5 17m0-2.986c.276 0 .5.222.5.493 0 .272-.224.493-.5.493s-.5-.221-.5-.493.224-.493.5-.493M21.5 19.014c-1.381 0-2.5 1.116-2.5 2.493S20.119 24 21.5 24s2.5-1.116 2.5-2.493-1.119-2.493-2.5-2.493m0 2.986a.497.497 0 0 1-.5-.493c0-.271.224-.493.5-.493s.5.222.5.493a.497.497 0 0 1-.5.493M22 13l-9 9 1.513 1.5 8.99-9.009zM17 11c2.209 0 4-1.119 4-2.5V2s.985-.161 1.498.949C23.01 4.055 23 6 23 6s1-1.119 1-3.135C24-.02 21 0 21 0h-2v6.347A5.853 5.853 0 0 0 17 6c-2.209 0-4 1.119-4 2.5s1.791 2.5 4 2.5M10.297 20.482l-1.475-1.585a47.54 47.54 0 0 1-1.442 1.129c-.307-.288-.989-1.016-2.045-2.183.902-.836 1.479-1.466 1.729-1.892s.376-.871.376-1.336c0-.592-.273-1.178-.818-1.759-.546-.581-1.329-.871-2.349-.871-1.008 0-1.79.293-2.344.879-.556.587-.832 1.181-.832 1.784 0 .813.419 1.748 1.256 2.805-.847.614-1.444 1.208-1.794 1.784a3.465 3.465 0 0 0-.523 1.833c0 .857.308 1.56.924 2.107.616.549 1.423.823 2.42.823 1.173 0 2.444-.379 3.813-1.137L8.235 24h2.819l-2.09-2.383 1.333-1.135zm-6.736-6.389a1.02 1.02 0 0 1 .73-.286c.31 0 .559.085.747.254a.849.849 0 0 1 .283.659c0 .518-.419 1.112-1.257 1.784-.536-.651-.805-1.231-.805-1.742a.901.901 0 0 1 .302-.669M3.74 22c-.427 0-.778-.116-1.057-.349-.279-.232-.418-.487-.418-.766 0-.594.509-1.288 1.527-2.083.968 1.134 1.717 1.946 2.248 2.438-.921.507-1.686.76-2.3.76\"/></svg>'};function b(e,t,i,n,r,o,s,a){var c,u=\"function\"==typeof e?e.options:e;if(t&&(u.render=t,u.staticRenderFns=i,u._compiled=!0),n&&(u.functional=!0),o&&(u._scopeId=\"data-v-\"+o),s?(c=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||\"undefined\"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),r&&r.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(s)},u._ssrRegister=c):r&&(c=a?function(){r.call(this,(u.functional?this.parent:this).$root.$options.shadowRoot)}:r),c)if(u.functional){u._injectStyles=c;var l=u.render;u.render=function(e,t){return c.call(t),l(e,t)}}else{var h=u.beforeCreate;u.beforeCreate=h?[].concat(h,c):[c]}return{exports:e,options:u}}var C=b({props:{i18n:{type:Object,required:!0},color:{type:String},categories:{type:Array,required:!0},activeCategory:{type:Object,default:function(){return{}}}},emits:[\"click\"],created:function(){this.svgs=_}},(function(){var e=this,t=e._self._c;return t(\"div\",{staticClass:\"emoji-mart-anchors\",attrs:{role:\"tablist\"}},e._l(e.categories,(function(i){return t(\"button\",{key:i.id,class:{\"emoji-mart-anchor\":!0,\"emoji-mart-anchor-selected\":i.id==e.activeCategory.id},style:{color:i.id==e.activeCategory.id?e.color:\"\"},attrs:{role:\"tab\",type:\"button\",\"aria-label\":i.name,\"aria-selected\":i.id==e.activeCategory.id,\"data-title\":e.i18n.categories[i.id]},on:{click:function(t){return e.$emit(\"click\",i)}}},[t(\"div\",{attrs:{\"aria-hidden\":\"true\"},domProps:{innerHTML:e._s(e.svgs[i.id])}}),e._v(\" \"),t(\"span\",{staticClass:\"emoji-mart-anchor-bar\",style:{backgroundColor:e.color},attrs:{\"aria-hidden\":\"true\"}})])})),0)}),[],!1,null,null,null),k=C.exports;function E(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function S(e){var t=function(e,t){if(\"object\"!=u(e)||!e)return e;var i=e[Symbol.toPrimitive];if(void 0!==i){var n=i.call(e,\"string\");if(\"object\"!=u(n))return n;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return String(e)}(e);return\"symbol\"==u(t)?t:t+\"\"}function x(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(e,S(n.key),n)}}function O(e,t,i){return t&&x(e.prototype,t),i&&x(e,i),Object.defineProperty(e,\"prototype\",{writable:!1}),e}var P=String.fromCodePoint||function(){var e,t,i=[],n=-1,r=arguments.length;if(!r)return\"\";for(var o=\"\";++n<r;){var s=Number(arguments[n]);if(!isFinite(s)||s<0||s>1114111||Math.floor(s)!=s)throw RangeError(\"Invalid code point: \"+s);s<=65535?i.push(s):(e=55296+((s-=65536)>>10),t=s%1024+56320,i.push(e,t)),(n+1===r||i.length>16384)&&(o+=String.fromCharCode.apply(null,i),i.length=0)}return o};function A(e){var t=e.split(\"-\").map((function(e){return\"0x\".concat(e)}));return P.apply(null,t)}function M(e){return e.reduce((function(e,t){return-1===e.indexOf(t)&&e.push(t),e}),[])}function I(e,t){var i=M(e),n=M(t);return i.filter((function(e){return n.indexOf(e)>=0}))}function F(e,t){var i={};for(var n in e){var r=e[n],o=r;Object.prototype.hasOwnProperty.call(t,n)&&(o=t[n]),\"object\"===u(o)&&(o=F(r,o)),i[n]=o}return i}function z(e,t){var i=\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(!i){if(Array.isArray(e)||(i=function(e,t){if(e){if(\"string\"==typeof e)return L(e,t);var i=Object.prototype.toString.call(e).slice(8,-1);return\"Object\"===i&&e.constructor&&(i=e.constructor.name),\"Map\"===i||\"Set\"===i?Array.from(e):\"Arguments\"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?L(e,t):void 0}}(e))||t&&e&&\"number\"==typeof e.length){i&&(e=i);var n=0,r=function(){};return{s:r,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:r}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var o,s=!0,a=!1;return{s:function(){i=i.call(e)},n:function(){var e=i.next();return s=e.done,e},e:function(e){a=!0,o=e},f:function(){try{s||null==i.return||i.return()}finally{if(a)throw o}}}}function L(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,n=new Array(t);i<t;i++)n[i]=e[i];return n}var T=/^(?:\\:([^\\:]+)\\:)(?:\\:skin-tone-(\\d)\\:)?$/,q=[\"1F3FA\",\"1F3FB\",\"1F3FC\",\"1F3FD\",\"1F3FE\",\"1F3FF\"],R=function(){return O((function e(t){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=i.emojisToShowFilter,r=i.include,o=i.exclude,s=i.custom,a=i.recent,c=i.recentLength,u=void 0===c?20:c;E(this,e),this._data=p(t),this._emojisFilter=n||null,this._include=r||null,this._exclude=o||null,this._custom=s||[],this._recent=a||w.get(u),this._emojis={},this._nativeEmojis={},this._emoticons={},this._categories=[],this._recentCategory={id:\"recent\",name:\"Recent\",emojis:[]},this._customCategory={id:\"custom\",name:\"Custom\",emojis:[]},this._searchIndex={},this.buildIndex(),Object.freeze(this)}),[{key:\"buildIndex\",value:function(){var e=this,t=this._data.categories;if(this._include&&(t=(t=t.filter((function(t){return e._include.includes(t.id)}))).sort((function(t,i){var n=e._include.indexOf(t.id),r=e._include.indexOf(i.id);return n<r?-1:n>r?1:0}))),t.forEach((function(t){if(e.isCategoryNeeded(t.id)){var i={id:t.id,name:t.name,emojis:[]};t.emojis.forEach((function(t){var n=e.addEmoji(t);n&&i.emojis.push(n)})),i.emojis.length&&e._categories.push(i)}})),this.isCategoryNeeded(\"custom\")){if(this._custom.length>0){var i,n=z(this._custom);try{for(n.s();!(i=n.n()).done;){var r=i.value;this.addCustomEmoji(r)}}catch(e){n.e(e)}finally{n.f()}}this._customCategory.emojis.length&&this._categories.push(this._customCategory)}this.isCategoryNeeded(\"recent\")&&(this._recent.length&&this._recent.map((function(t){var i,n=z(e._customCategory.emojis);try{for(n.s();!(i=n.n()).done;){var r=i.value;if(r.id===t)return void e._recentCategory.emojis.push(r)}}catch(e){n.e(e)}finally{n.f()}e.hasEmoji(t)&&e._recentCategory.emojis.push(e.emoji(t))})),this._recentCategory.emojis.length&&this._categories.unshift(this._recentCategory))}},{key:\"findEmoji\",value:function(e,t){var i=e.match(T);if(i&&(e=i[1],i[2]&&(t=parseInt(i[2],10))),this._data.aliases.hasOwnProperty(e)&&(e=this._data.aliases[e]),this._emojis.hasOwnProperty(e)){var n=this._emojis[e];return t?n.getSkin(t):n}return this._nativeEmojis.hasOwnProperty(e)?this._nativeEmojis[e]:null}},{key:\"categories\",value:function(){return this._categories}},{key:\"emoji\",value:function(e){this._data.aliases.hasOwnProperty(e)&&(e=this._data.aliases[e]);var t=this._emojis[e];if(!t)throw new Error(\"Can not find emoji by id: \"+e);return t}},{key:\"firstEmoji\",value:function(){var e=this._emojis[Object.keys(this._emojis)[0]];if(!e)throw new Error(\"Can not get first emoji\");return e}},{key:\"hasEmoji\",value:function(e){return this._data.aliases.hasOwnProperty(e)&&(e=this._data.aliases[e]),!!this._emojis[e]}},{key:\"nativeEmoji\",value:function(e){return this._nativeEmojis.hasOwnProperty(e)?this._nativeEmojis[e]:null}},{key:\"search\",value:function(e,t){var i=this;if(t||(t=75),!e.length)return null;if(\"-\"==e||\"-1\"==e)return[this.emoji(\"-1\")];var n,r=e.toLowerCase().split(/[\\s|,|\\-|_]+/);r.length>2&&(r=[r[0],r[1]]),n=r.map((function(e){for(var t=i._emojis,n=i._searchIndex,r=0,o=function(){var i=e[s];if(r++,n[i]||(n[i]={}),!(n=n[i]).results){var o={};for(var a in n.results=[],n.emojis={},t){var c=t[a],u=c._data.search,l=e.substr(0,r),h=u.indexOf(l);if(-1!=h){var m=h+1;l==a&&(m=0),n.results.push(c),n.emojis[a]=c,o[a]=m}}n.results.sort((function(e,t){return o[e.id]-o[t.id]}))}t=n.emojis},s=0;s<e.length;s++)o();return n.results})).filter((function(e){return e}));var o=null;return(o=n.length>1?I.apply(null,n):n.length?n[0]:[])&&o.length>t&&(o=o.slice(0,t)),o}},{key:\"addCustomEmoji\",value:function(e){var t=Object.assign({},e,{id:e.short_names[0],custom:!0});t.search||(t.search=m(t));var i=new N(t);return this._emojis[i.id]=i,this._customCategory.emojis.push(i),i}},{key:\"addEmoji\",value:function(e){var t=this,i=this._data.emojis[e];if(!this.isEmojiNeeded(i))return!1;var n=new N(i);if(this._emojis[e]=n,n.native&&(this._nativeEmojis[n.native]=n),n._skins)for(var r in n._skins){var o=n._skins[r];o.native&&(this._nativeEmojis[o.native]=o)}return n.emoticons&&n.emoticons.forEach((function(i){t._emoticons[i]||(t._emoticons[i]=e)})),n}},{key:\"isCategoryNeeded\",value:function(e){var t=!this._include||!this._include.length||this._include.indexOf(e)>-1,i=!(!this._exclude||!this._exclude.length)&&this._exclude.indexOf(e)>-1;return!(!t||i)}},{key:\"isEmojiNeeded\",value:function(e){return!this._emojisFilter||this._emojisFilter(e)}}])}(),N=function(){return O((function e(t){if(E(this,e),this._data=Object.assign({},t),this._skins=null,this._data.skin_variations)for(var i in this._skins=[],q){var n=q[i],r=this._data.skin_variations[n],o=Object.assign({},t);for(var s in r)o[s]=r[s];delete o.skin_variations,o.skin_tone=parseInt(i)+1,this._skins.push(new e(o))}for(var a in this._sanitized=D(this._data),this._sanitized)this[a]=this._sanitized[a];this.short_names=this._data.short_names,this.short_name=this._data.short_names[0],Object.freeze(this)}),[{key:\"getSkin\",value:function(e){return e&&\"native\"!=e&&this._skins?this._skins[e-1]:this}},{key:\"getPosition\",value:function(){var e=+(100/60*this._data.sheet_x).toFixed(2),t=+(100/60*this._data.sheet_y).toFixed(2);return\"\".concat(e,\"% \").concat(t,\"%\")}},{key:\"ariaLabel\",value:function(){return[this.native].concat(this.short_names).filter(Boolean).join(\", \")}}])}(),$=function(){return O((function e(t,i,n,r,o,s,a){E(this,e),this._emoji=t,this._native=r,this._skin=i,this._set=n,this._fallback=o,this.canRender=this._canRender(),this.cssClass=this._cssClass(),this.cssStyle=this._cssStyle(a),this.content=this._content(),this.title=!0===s?t.short_name:null,this.ariaLabel=t.ariaLabel(),Object.freeze(this)}),[{key:\"getEmoji\",value:function(){return this._emoji.getSkin(this._skin)}},{key:\"_canRender\",value:function(){return this._isCustom()||this._isNative()||this._hasEmoji()||this._fallback}},{key:\"_cssClass\",value:function(){return[\"emoji-set-\"+this._set,\"emoji-type-\"+this._emojiType()]}},{key:\"_cssStyle\",value:function(e){var t={};return this._isCustom()?t={backgroundImage:\"url(\"+this.getEmoji()._data.imageUrl+\")\",backgroundSize:\"100%\",width:e+\"px\",height:e+\"px\"}:this._hasEmoji()&&!this._isNative()&&(t={backgroundPosition:this.getEmoji().getPosition()}),e&&(t=this._isNative()?Object.assign(t,{fontSize:Math.round(.95*e*10)/10+\"px\"}):Object.assign(t,{width:e+\"px\",height:e+\"px\"})),t}},{key:\"_content\",value:function(){return this._isCustom()?\"\":this._isNative()?this.getEmoji().native:this._hasEmoji()?\"\":this._fallback?this._fallback(this.getEmoji()):null}},{key:\"_isNative\",value:function(){return this._native}},{key:\"_isCustom\",value:function(){return this.getEmoji().custom}},{key:\"_hasEmoji\",value:function(){if(!this.getEmoji()._data)return!1;var e=this.getEmoji()._data[\"has_img_\"+this._set];return void 0===e||e}},{key:\"_emojiType\",value:function(){return this._isCustom()?\"custom\":this._isNative()?\"native\":this._hasEmoji()?\"image\":\"fallback\"}}])}();function D(e){var t=e.name,i=e.short_names,n=e.skin_tone,r=e.skin_variations,o=e.emoticons,s=e.unified,a=e.custom,c=e.imageUrl,u=e.id||i[0],l=\":\".concat(u,\":\");return a?{id:u,name:t,colons:l,emoticons:o,custom:a,imageUrl:c}:(n&&(l+=\":skin-tone-\".concat(n,\":\")),{id:u,name:t,colons:l,emoticons:o,unified:s.toLowerCase(),skin:n||(r?1:null),native:A(s)})}function B(e,t,i){return(t=S(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}var H={native:{type:Boolean,default:!1},tooltip:{type:Boolean,default:!1},fallback:{type:Function},skin:{type:Number,default:1},set:{type:String,default:\"apple\"},emoji:{type:[String,Object],required:!0},size:{type:Number,default:null},tag:{type:String,default:\"span\"}},U={perLine:{type:Number,default:9},maxSearchResults:{type:Number,default:75},emojiSize:{type:Number,default:24},title:{type:String,default:\"Emoji Mart™\"},emoji:{type:String,default:\"department_store\"},color:{type:String,default:\"#ae65c5\"},set:{type:String,default:\"apple\"},skin:{type:Number,default:null},defaultSkin:{type:Number,default:1},native:{type:Boolean,default:!1},emojiTooltip:{type:Boolean,default:!1},autoFocus:{type:Boolean,default:!1},i18n:{type:Object,default:function(){return{}}},showPreview:{type:Boolean,default:!0},showSearch:{type:Boolean,default:!0},showCategories:{type:Boolean,default:!0},showSkinTones:{type:Boolean,default:!0},infiniteScroll:{type:Boolean,default:!0},pickerStyles:{type:Object,default:function(){return{}}}};function V(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function W(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?V(Object(i),!0).forEach((function(t){B(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):V(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}var J=b({props:W(W({},H),{},{data:{type:Object,required:!0}}),emits:[\"click\",\"mouseenter\",\"mouseleave\"],computed:{view:function(){return new $(this.emojiObject,this.skin,this.set,this.native,this.fallback,this.tooltip,this.size)},sanitizedData:function(){return this.emojiObject._sanitized},title:function(){return this.tooltip?this.emojiObject.short_name:null},emojiObject:function(){return\"string\"==typeof this.emoji?this.data.findEmoji(this.emoji):this.emoji}},created:function(){},methods:{onClick:function(){this.$emit(\"click\",this.emojiObject)},onMouseEnter:function(){this.$emit(\"mouseenter\",this.emojiObject)},onMouseLeave:function(){this.$emit(\"mouseleave\",this.emojiObject)}}},(function(){var e=this,t=e._self._c;return e.view.canRender?t(e.tag,{tag:\"component\",staticClass:\"emoji-mart-emoji\",attrs:{title:e.view.title,\"aria-label\":e.view.ariaLabel,\"data-title\":e.title},on:{mouseenter:e.onMouseEnter,mouseleave:e.onMouseLeave,click:e.onClick}},[t(\"span\",{class:e.view.cssClass,style:e.view.cssStyle},[e._v(e._s(e.view.content))])]):e._e()}),[],!1,null,null,null).exports,X=b({props:{data:{type:Object,required:!0},i18n:{type:Object,required:!0},id:{type:String,required:!0},name:{type:String,required:!0},emojis:{type:Array},emojiProps:{type:Object,required:!0}},methods:{activeClass:function(e){return this.emojiProps.selectedEmoji&&this.emojiProps.selectedEmojiCategory&&this.emojiProps.selectedEmoji.id==e.id&&this.emojiProps.selectedEmojiCategory.id==this.id?\"emoji-mart-emoji-selected\":\"\"}},computed:{isVisible:function(){return!!this.emojis},isSearch:function(){return\"Search\"==this.name},hasResults:function(){return this.emojis.length>0},emojiObjects:function(){var e=this;return this.emojis.map((function(t){return{emojiObject:t,emojiView:new $(t,e.emojiProps.skin,e.emojiProps.set,e.emojiProps.native,e.emojiProps.fallback,e.emojiProps.emojiTooltip,e.emojiProps.emojiSize)}}))}},components:{Emoji:J}},(function(){var e=this,t=e._self._c;return e.isVisible&&(e.isSearch||e.hasResults)?t(\"section\",{class:{\"emoji-mart-category\":!0,\"emoji-mart-no-results\":!e.hasResults},attrs:{\"aria-label\":e.i18n.categories[e.id]}},[t(\"div\",{staticClass:\"emoji-mart-category-label\"},[t(\"h3\",{staticClass:\"emoji-mart-category-label\"},[e._v(e._s(e.i18n.categories[e.id]))])]),e._v(\" \"),e._l(e.emojiObjects,(function(i){var n=i.emojiObject,r=i.emojiView;return[r.canRender?t(\"button\",{key:n.id,staticClass:\"emoji-mart-emoji\",class:e.activeClass(n),attrs:{\"aria-label\":r.ariaLabel,role:\"option\",\"aria-selected\":\"false\",\"aria-posinset\":\"1\",\"aria-setsize\":\"1812\",type:\"button\",\"data-title\":n.short_name,title:r.title},on:{mouseenter:function(t){e.emojiProps.onEnter(r.getEmoji())},mouseleave:function(t){e.emojiProps.onLeave(r.getEmoji())},click:function(t){e.emojiProps.onClick(r.getEmoji())}}},[t(\"span\",{class:r.cssClass,style:r.cssStyle},[e._v(e._s(r.content))])]):e._e()]})),e._v(\" \"),e.hasResults?e._e():t(\"div\",[t(\"emoji\",{attrs:{data:e.data,emoji:\"sleuth_or_spy\",native:e.emojiProps.native,skin:e.emojiProps.skin,set:e.emojiProps.set}}),e._v(\" \"),t(\"div\",{staticClass:\"emoji-mart-no-results-label\"},[e._v(e._s(e.i18n.notfound))])],1)],2):e._e()}),[],!1,null,null,null).exports,Z=b({props:{skin:{type:Number,required:!0}},emits:[\"change\"],data:function(){return{opened:!1}},methods:{onClick:function(e){this.opened&&e!=this.skin&&this.$emit(\"change\",e),this.opened=!this.opened}}},(function(){var e=this,t=e._self._c;return t(\"div\",{class:{\"emoji-mart-skin-swatches\":!0,\"emoji-mart-skin-swatches-opened\":e.opened}},e._l(6,(function(i){return t(\"span\",{key:i,class:{\"emoji-mart-skin-swatch\":!0,\"emoji-mart-skin-swatch-selected\":e.skin==i}},[t(\"span\",{class:\"emoji-mart-skin emoji-mart-skin-tone-\"+i,on:{click:function(t){return e.onClick(i)}}})])})),0)}),[],!1,null,null,null).exports,G=b({props:{data:{type:Object,required:!0},title:{type:String,required:!0},emoji:{type:[String,Object]},idleEmoji:{type:[String,Object],required:!0},showSkinTones:{type:Boolean,default:!0},emojiProps:{type:Object,required:!0},skinProps:{type:Object,required:!0},onSkinChange:{type:Function,required:!0}},computed:{emojiData:function(){return this.emoji?this.emoji:{}},emojiShortNames:function(){return this.emojiData.short_names},emojiEmoticons:function(){return this.emojiData.emoticons}},components:{Emoji:J,Skins:Z}},(function(){var e=this,t=e._self._c;return t(\"div\",{staticClass:\"emoji-mart-preview\"},[e.emoji?[t(\"div\",{staticClass:\"emoji-mart-preview-emoji\"},[t(\"emoji\",{attrs:{data:e.data,emoji:e.emoji,native:e.emojiProps.native,skin:e.emojiProps.skin,set:e.emojiProps.set}})],1),e._v(\" \"),t(\"div\",{staticClass:\"emoji-mart-preview-data\"},[t(\"div\",{staticClass:\"emoji-mart-preview-name\"},[e._v(e._s(e.emoji.name))]),e._v(\" \"),t(\"div\",{staticClass:\"emoji-mart-preview-shortnames\"},e._l(e.emojiShortNames,(function(i){return t(\"span\",{key:i,staticClass:\"emoji-mart-preview-shortname\"},[e._v(\":\"+e._s(i)+\":\")])})),0),e._v(\" \"),t(\"div\",{staticClass:\"emoji-mart-preview-emoticons\"},e._l(e.emojiEmoticons,(function(i){return t(\"span\",{key:i,staticClass:\"emoji-mart-preview-emoticon\"},[e._v(e._s(i))])})),0)])]:[t(\"div\",{staticClass:\"emoji-mart-preview-emoji\"},[t(\"emoji\",{attrs:{data:e.data,emoji:e.idleEmoji,native:e.emojiProps.native,skin:e.emojiProps.skin,set:e.emojiProps.set}})],1),e._v(\" \"),t(\"div\",{staticClass:\"emoji-mart-preview-data\"},[t(\"span\",{staticClass:\"emoji-mart-title-label\"},[e._v(e._s(e.title))])]),e._v(\" \"),e.showSkinTones?t(\"div\",{staticClass:\"emoji-mart-preview-skins\"},[t(\"skins\",{attrs:{skin:e.skinProps.skin},on:{change:function(t){return e.onSkinChange(t)}}})],1):e._e()]],2)}),[],!1,null,null,null).exports,K=b({props:{data:{type:Object,required:!0},i18n:{type:Object,required:!0},autoFocus:{type:Boolean,default:!1},onSearch:{type:Function,required:!0},onArrowLeft:{type:Function,required:!1},onArrowRight:{type:Function,required:!1},onArrowDown:{type:Function,required:!1},onArrowUp:{type:Function,required:!1},onEnter:{type:Function,required:!1}},emits:[\"search\",\"enter\",\"arrowUp\",\"arrowDown\",\"arrowRight\",\"arrowLeft\"],data:function(){return{value:\"\"}},computed:{emojiIndex:function(){return this.data}},watch:{value:function(){this.$emit(\"search\",this.value)}},methods:{clear:function(){this.value=\"\"}},mounted:function(){var e=this.$el.querySelector(\"input\");this.autoFocus&&e.focus()}},(function(){var e=this,t=e._self._c;return t(\"div\",{staticClass:\"emoji-mart-search\"},[t(\"input\",{directives:[{name:\"model\",rawName:\"v-model\",value:e.value,expression:\"value\"}],attrs:{type:\"text\",placeholder:e.i18n.search,role:\"textbox\",\"aria-autocomplete\":\"list\",\"aria-owns\":\"emoji-mart-list\",\"aria-label\":\"Search for an emoji\",\"aria-describedby\":\"emoji-mart-search-description\"},domProps:{value:e.value},on:{keydown:[function(t){return!t.type.indexOf(\"key\")&&e._k(t.keyCode,\"left\",37,t.key,[\"Left\",\"ArrowLeft\"])||\"button\"in t&&0!==t.button?null:function(t){return e.$emit(\"arrowLeft\",t)}.apply(null,arguments)},function(t){return!t.type.indexOf(\"key\")&&e._k(t.keyCode,\"right\",39,t.key,[\"Right\",\"ArrowRight\"])||\"button\"in t&&2!==t.button?null:function(){return e.$emit(\"arrowRight\")}.apply(null,arguments)},function(t){return!t.type.indexOf(\"key\")&&e._k(t.keyCode,\"down\",40,t.key,[\"Down\",\"ArrowDown\"])?null:function(){return e.$emit(\"arrowDown\")}.apply(null,arguments)},function(t){return!t.type.indexOf(\"key\")&&e._k(t.keyCode,\"up\",38,t.key,[\"Up\",\"ArrowUp\"])?null:function(t){return e.$emit(\"arrowUp\",t)}.apply(null,arguments)},function(t){return!t.type.indexOf(\"key\")&&e._k(t.keyCode,\"enter\",13,t.key,\"Enter\")?null:function(){return e.$emit(\"enter\")}.apply(null,arguments)}],input:function(t){t.target.composing||(e.value=t.target.value)}}}),e._v(\" \"),t(\"span\",{staticClass:\"hidden\",attrs:{id:\"emoji-picker-search-description\"}},[e._v(\"Use the left, right, up and down arrow keys to navigate the emoji search\\n results.\")])])}),[],!1,null,null,null),Q=K.exports;function Y(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,n=new Array(t);i<t;i++)n[i]=e[i];return n}i(537);var ee=function(){return O((function e(t){var i,n;E(this,e),this._vm=t,this._data=t.data,this._perLine=t.perLine,this._categories=[],(i=this._categories).push.apply(i,function(e){if(Array.isArray(e))return Y(e)}(n=this._data.categories())||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(n)||function(e,t){if(e){if(\"string\"==typeof e)return Y(e,t);var i=Object.prototype.toString.call(e).slice(8,-1);return\"Object\"===i&&e.constructor&&(i=e.constructor.name),\"Map\"===i||\"Set\"===i?Array.from(e):\"Arguments\"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?Y(e,t):void 0}}(n)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),this._categories=this._categories.filter((function(e){return e.emojis.length>0})),this._categories[0].first=!0,Object.freeze(this._categories),this.activeCategory=this._categories[0],this.searchEmojis=null,this.previewEmoji=null,this.previewEmojiCategoryIdx=0,this.previewEmojiIdx=-1}),[{key:\"onScroll\",value:function(){var e=this._vm.$refs.scroll;if(e){for(var t=e.scrollTop,i=this.filteredCategories[0],n=0,r=this.filteredCategories.length;n<r;n++){var o=this.filteredCategories[n],s=this._vm.getCategoryComponent(n);if(s&&s.$el.offsetTop-50>t)break;i=o}this.activeCategory=i}}},{key:\"allCategories\",get:function(){return this._categories}},{key:\"filteredCategories\",get:function(){return this.searchEmojis?[{id:\"search\",name:\"Search\",emojis:this.searchEmojis}]:this._categories.filter((function(e){return e.emojis.length>0}))}},{key:\"previewEmojiCategory\",get:function(){return this.previewEmojiCategoryIdx>=0?this.filteredCategories[this.previewEmojiCategoryIdx]:null}},{key:\"onAnchorClick\",value:function(e){var t=this;if(!this.searchEmojis){var i=this.filteredCategories.indexOf(e),n=this._vm.getCategoryComponent(i);this._vm.infiniteScroll?function(){if(n){var i=n.$el.offsetTop;e.first&&(i=0),t._vm.$refs.scroll.scrollTop=i}}():this.activeCategory=this.filteredCategories[i]}}},{key:\"onSearch\",value:function(e){var t=this._data.search(e,this.maxSearchResults);this.searchEmojis=t,this.previewEmojiCategoryIdx=0,this.previewEmojiIdx=0,this.updatePreviewEmoji()}},{key:\"onEmojiEnter\",value:function(e){this.previewEmoji=e,this.previewEmojiIdx=-1,this.previewEmojiCategoryIdx=-1}},{key:\"onEmojiLeave\",value:function(e){this.previewEmoji=null}},{key:\"onArrowLeft\",value:function(){this.previewEmojiIdx>0?this.previewEmojiIdx-=1:(this.previewEmojiCategoryIdx-=1,this.previewEmojiCategoryIdx<0?this.previewEmojiCategoryIdx=0:this.previewEmojiIdx=this.filteredCategories[this.previewEmojiCategoryIdx].emojis.length-1),this.updatePreviewEmoji()}},{key:\"onArrowRight\",value:function(){this.previewEmojiIdx<this.emojisLength(this.previewEmojiCategoryIdx)-1?this.previewEmojiIdx+=1:(this.previewEmojiCategoryIdx+=1,this.previewEmojiCategoryIdx>=this.filteredCategories.length?this.previewEmojiCategoryIdx=this.filteredCategories.length-1:this.previewEmojiIdx=0),this.updatePreviewEmoji()}},{key:\"onArrowDown\",value:function(){if(-1==this.previewEmojiIdx)return this.onArrowRight();var e=this.filteredCategories[this.previewEmojiCategoryIdx].emojis.length,t=this._perLine;this.previewEmojiIdx+t>e&&(t=e%this._perLine);for(var i=0;i<t;i++)this.onArrowRight();this.updatePreviewEmoji()}},{key:\"onArrowUp\",value:function(){var e=this._perLine;this.previewEmojiIdx-e<0&&(e=this.previewEmojiCategoryIdx>0?this.filteredCategories[this.previewEmojiCategoryIdx-1].emojis.length%this._perLine:0);for(var t=0;t<e;t++)this.onArrowLeft();this.updatePreviewEmoji()}},{key:\"updatePreviewEmoji\",value:function(){var e=this;this.previewEmoji=this.filteredCategories[this.previewEmojiCategoryIdx].emojis[this.previewEmojiIdx],this._vm.$nextTick((function(){var t=e._vm.$refs.scroll,i=t.querySelector(\".emoji-mart-emoji-selected\"),n=t.offsetTop-t.offsetHeight;i&&i.offsetTop+i.offsetHeight>n+t.scrollTop&&(t.scrollTop+=i.offsetHeight),i&&i.offsetTop<t.scrollTop&&(t.scrollTop-=i.offsetHeight)}))}},{key:\"emojisLength\",value:function(e){return-1==e?0:this.filteredCategories[e].emojis.length}}])}();function te(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function ie(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?te(Object(i),!0).forEach((function(t){B(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):te(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}var ne={search:\"Search\",notfound:\"No Emoji Found\",categories:{search:\"Search Results\",recent:\"Frequently Used\",smileys:\"Smileys & Emotion\",people:\"People & Body\",nature:\"Animals & Nature\",foods:\"Food & Drink\",activity:\"Activity\",places:\"Travel & Places\",objects:\"Objects\",symbols:\"Symbols\",flags:\"Flags\",custom:\"Custom\"}},re={props:ie(ie({},U),{},{data:{type:Object,required:!0}}),emits:[\"select\",\"skin-change\"],data:function(){return{activeSkin:this.skin||c.get(\"skin\")||this.defaultSkin,view:new ee(this)}},computed:{customStyles:function(){return ie({width:this.calculateWidth+\"px\"},this.pickerStyles)},emojiProps:function(){return{native:this.native,skin:this.activeSkin,set:this.set,emojiTooltip:this.emojiTooltip,emojiSize:this.emojiSize,selectedEmoji:this.view.previewEmoji,selectedEmojiCategory:this.view.previewEmojiCategory,onEnter:this.onEmojiEnter.bind(this),onLeave:this.onEmojiLeave.bind(this),onClick:this.onEmojiClick.bind(this)}},skinProps:function(){return{skin:this.activeSkin}},calculateWidth:function(){return this.perLine*(this.emojiSize+12)+12+2+function(){if(\"undefined\"==typeof document)return 0;var e=document.createElement(\"div\");e.style.width=\"100px\",e.style.height=\"100px\",e.style.overflow=\"scroll\",e.style.position=\"absolute\",e.style.top=\"-9999px\",document.body.appendChild(e);var t=e.offsetWidth-e.clientWidth;return document.body.removeChild(e),t}()},filteredCategories:function(){return this.view.filteredCategories},mergedI18n:function(){return Object.freeze(F(ne,this.i18n))},idleEmoji:function(){try{return this.data.emoji(this.emoji)}catch(e){return console.error(\"Default preview emoji `\"+this.emoji+\"` is not available, check the Picker `emoji` property\"),console.error(e),this.data.firstEmoji()}},isSearching:function(){return null!=this.view.searchEmojis}},watch:{skin:function(){this.onSkinChange(this.skin)}},methods:{onScroll:function(){this.infiniteScroll&&!this.waitingForPaint&&(this.waitingForPaint=!0,window.requestAnimationFrame(this.onScrollPaint.bind(this)))},onScrollPaint:function(){this.waitingForPaint=!1,this.view.onScroll()},onAnchorClick:function(e){this.view.onAnchorClick(e)},onSearch:function(e){this.view.onSearch(e)},onEmojiEnter:function(e){this.view.onEmojiEnter(e)},onEmojiLeave:function(e){this.view.onEmojiLeave(e)},onArrowLeft:function(e){var t=this.view.previewEmojiIdx;this.view.onArrowLeft(),e&&this.view.previewEmojiIdx!==t&&e.preventDefault()},onArrowRight:function(){this.view.onArrowRight()},onArrowDown:function(){this.view.onArrowDown()},onArrowUp:function(e){this.view.onArrowUp(),e.preventDefault()},onEnter:function(){this.view.previewEmoji&&(this.$emit(\"select\",this.view.previewEmoji),w.add(this.view.previewEmoji))},onEmojiClick:function(e){this.$emit(\"select\",e),w.add(e)},onTextSelect:function(e){e.stopPropagation()},onSkinChange:function(e){this.activeSkin=e,c.update({skin:e}),this.$emit(\"skin-change\",e)},getCategoryComponent:function(e){var t=this.$refs[\"categories_\"+e];return t&&\"0\"in t?t[0]:t}},components:{Anchors:k,Category:X,Preview:G,Search:Q}},oe=b(re,(function(){var e=this,t=e._self._c;return t(\"section\",{staticClass:\"emoji-mart emoji-mart-static\",style:e.customStyles},[e.showCategories?t(\"div\",{staticClass:\"emoji-mart-bar emoji-mart-bar-anchors\"},[t(\"anchors\",{attrs:{data:e.data,i18n:e.mergedI18n,color:e.color,categories:e.view.allCategories,\"active-category\":e.view.activeCategory},on:{click:e.onAnchorClick}})],1):e._e(),e._v(\" \"),e._t(\"searchTemplate\",(function(){return[e.showSearch?t(\"search\",{ref:\"search\",attrs:{data:e.data,i18n:e.mergedI18n,\"auto-focus\":e.autoFocus,\"on-search\":e.onSearch},on:{search:e.onSearch,arrowLeft:e.onArrowLeft,arrowRight:e.onArrowRight,arrowDown:e.onArrowDown,arrowUp:e.onArrowUp,enter:e.onEnter,select:e.onTextSelect}}):e._e()]}),{data:e.data,i18n:e.i18n,autoFocus:e.autoFocus,onSearch:e.onSearch}),e._v(\" \"),t(\"div\",{ref:\"scroll\",staticClass:\"emoji-mart-scroll\",attrs:{role:\"tabpanel\"},on:{scroll:e.onScroll}},[t(\"div\",{ref:\"scrollContent\",attrs:{id:\"emoji-mart-list\",role:\"listbox\",\"aria-expanded\":\"true\"}},[e._t(\"customCategory\"),e._v(\" \"),e._l(e.view.filteredCategories,(function(i,n){return t(\"category\",{directives:[{name:\"show\",rawName:\"v-show\",value:e.infiniteScroll||i==e.view.activeCategory||e.isSearching,expression:\"infiniteScroll || category == view.activeCategory || isSearching\"}],key:i.id,ref:\"categories_\"+n,refInFor:!0,attrs:{data:e.data,i18n:e.mergedI18n,id:i.id,name:i.name,emojis:i.emojis,\"emoji-props\":e.emojiProps}})}))],2)]),e._v(\" \"),e._t(\"previewTemplate\",(function(){return[e.showPreview?t(\"div\",{staticClass:\"emoji-mart-bar emoji-mart-bar-preview\"},[t(\"preview\",{attrs:{data:e.data,title:e.title,emoji:e.view.previewEmoji,\"idle-emoji\":e.idleEmoji,\"show-skin-tones\":e.showSkinTones,\"emoji-props\":e.emojiProps,\"skin-props\":e.skinProps,\"on-skin-change\":e.onSkinChange}})],1):e._e()]}),{data:e.data,title:e.title,emoji:e.view.previewEmoji,idleEmoji:e.idleEmoji,showSkinTones:e.showSkinTones,emojiProps:e.emojiProps,skinProps:e.skinProps,onSkinChange:e.onSkinChange})],2)}),[],!1,null,null,null),se=oe.exports}(),n}()}));","import { getBuilder } from \"@nextcloud/browser-storage\";\nimport { EmojiIndex, frequently } from \"emoji-mart-vue-fast\";\nimport data from \"emoji-mart-vue-fast/data/all.json\";\nconst storage = getBuilder(\"nextcloud-vue\").persist(true).build();\nlet emojiIndex;\nvar EmojiSkinTone = /* @__PURE__ */ ((EmojiSkinTone2) => {\n EmojiSkinTone2[EmojiSkinTone2[\"Neutral\"] = 1] = \"Neutral\";\n EmojiSkinTone2[EmojiSkinTone2[\"Light\"] = 2] = \"Light\";\n EmojiSkinTone2[EmojiSkinTone2[\"MediumLight\"] = 3] = \"MediumLight\";\n EmojiSkinTone2[EmojiSkinTone2[\"Medium\"] = 4] = \"Medium\";\n EmojiSkinTone2[EmojiSkinTone2[\"MediumDark\"] = 5] = \"MediumDark\";\n EmojiSkinTone2[EmojiSkinTone2[\"Dark\"] = 6] = \"Dark\";\n return EmojiSkinTone2;\n})(EmojiSkinTone || {});\nfunction emojiSearch(query, maxResults = 10) {\n if (!emojiIndex) {\n emojiIndex = new EmojiIndex(data);\n }\n const currentSkinTone = getCurrentSkinTone();\n let results;\n if (query) {\n results = emojiIndex.search(`:${query}`, maxResults);\n if (results.length < maxResults) {\n results = results.concat(emojiIndex.search(query, maxResults - results.length));\n }\n } else {\n results = frequently.get(maxResults).map((id) => emojiIndex.emoji(id)) || [];\n }\n return results.map((emoji) => emoji.getSkin(currentSkinTone));\n}\nfunction emojiAddRecent(emojiData) {\n frequently.add(emojiData);\n}\nfunction getCurrentSkinTone() {\n const skinTone = Number.parseInt(storage.getItem(\"NcEmojiPicker::currentSkinTone\") ?? \"1\");\n return Math.min(\n Math.max(\n skinTone,\n 1\n /* Neutral */\n ),\n 6\n /* Dark */\n );\n}\nfunction setCurrentSkinTone(skinTone) {\n skinTone = Math.min(\n Math.max(\n skinTone,\n 1\n /* Neutral */\n ),\n 6\n /* Dark */\n );\n storage.setItem(\"NcEmojiPicker::currentSkinTone\", skinTone.toString());\n}\nexport {\n EmojiSkinTone as E,\n emojiAddRecent as a,\n emojiSearch as e,\n getCurrentSkinTone as g,\n setCurrentSkinTone as s\n};\n//# sourceMappingURL=emoji-BY_D0V5K.mjs.map\n","import '../assets/NcEmojiPicker-B7xDz_8U.css';\nimport data from \"emoji-mart-vue-fast/data/all.json\";\nimport { Picker, Emoji, EmojiIndex } from \"emoji-mart-vue-fast/src/index.js\";\nimport { isFocusable } from \"tabbable\";\nimport { createElementBlock, openBlock, mergeProps, createElementVNode, createCommentVNode, toDisplayString, resolveComponent, createBlock, withCtx, createVNode, withKeys, withModifiers, createSlots, normalizeStyle, renderSlot, normalizeProps, guardReactiveProps } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { N as NcColorPicker } from \"./NcColorPicker-Kc0JqRtp.mjs\";\nimport { u as useTrapStackControl } from \"./useTrapStackControl-B6cEicto.mjs\";\nimport { s as setCurrentSkinTone, g as getCurrentSkinTone } from \"./emoji-BY_D0V5K.mjs\";\nimport { r as register, j as t42, k as t37, l as t16, m as t5, a as t } from \"./_l10n-DrTiip5c.mjs\";\nimport { C as Color } from \"./colors-Go3zmZRD.mjs\";\nimport { N as NcButton } from \"./NcButton-Dc8V4Urj.mjs\";\nimport { N as NcPopover } from \"./NcPopover-C-MTaPCs.mjs\";\nimport { _ as _sfc_main$2 } from \"./NcTextField.vue_vue_type_script_setup_true_lang-D1y_LfGJ.mjs\";\nconst _sfc_main$1 = {\n name: \"CircleIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$1 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$1 = { d: \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\" };\nconst _hoisted_4$1 = { key: 0 };\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon circle-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$1, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$1, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$1))\n ], 16, _hoisted_1$1);\n}\nconst IconCircle = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1]]);\nregister(t5, t16, t37, t42);\nlet emojiIndex;\nconst i18n = {\n search: t(\"Search emoji\"),\n notfound: t(\"No emoji found\"),\n categories: {\n search: t(\"Search results\"),\n recent: t(\"Frequently used\"),\n smileys: t(\"Smileys & Emotion\"),\n people: t(\"People & Body\"),\n nature: t(\"Animals & Nature\"),\n foods: t(\"Food & Drink\"),\n activity: t(\"Activities\"),\n places: t(\"Travel & Places\"),\n objects: t(\"Objects\"),\n symbols: t(\"Symbols\"),\n flags: t(\"Flags\"),\n custom: t(\"Custom\")\n }\n};\nconst skinTonePalette = [\n new Color(255, 222, 52, t(\"Neutral skin color\")),\n new Color(228, 205, 166, t(\"Light skin tone\")),\n new Color(250, 221, 192, t(\"Medium light skin tone\")),\n new Color(174, 129, 87, t(\"Medium skin tone\")),\n new Color(158, 113, 88, t(\"Medium dark skin tone\")),\n new Color(96, 79, 69, t(\"Dark skin tone\"))\n];\nconst _sfc_main = {\n name: \"NcEmojiPicker\",\n components: {\n IconCircle,\n NcButton,\n NcColorPicker,\n NcPopover,\n NcTextField: _sfc_main$2,\n Emoji,\n Picker\n },\n props: {\n /**\n * The emoji-set\n */\n activeSet: {\n type: String,\n default: \"native\"\n },\n /**\n * Show preview section when hovering emoji\n */\n showPreview: {\n type: Boolean,\n default: false\n },\n /**\n * Allow unselecting the selected emoji\n */\n allowUnselect: {\n type: Boolean,\n default: false\n },\n /**\n * Selected emoji to allow unselecting\n */\n selectedEmoji: {\n type: String,\n default: \"\"\n },\n /**\n * The fallback emoji in the preview section\n */\n previewFallbackEmoji: {\n type: String,\n default: \"grinning\"\n },\n /**\n * The fallback text in the preview section\n */\n previewFallbackName: {\n type: String,\n default: t(\"Pick an emoji\")\n },\n /**\n * Whether to close the emoji picker after picking one\n */\n closeOnSelect: {\n type: Boolean,\n default: true\n },\n /**\n * Selector for the popover container\n */\n container: {\n type: [Boolean, String, Object, Element],\n default: \"body\"\n }\n },\n emits: [\n \"select\",\n \"selectData\",\n \"unselect\"\n ],\n setup() {\n if (!emojiIndex) {\n emojiIndex = new EmojiIndex(data);\n }\n return {\n // Non-reactive constants\n emojiIndex,\n skinTonePalette,\n i18n\n };\n },\n data() {\n const currentSkinTone = getCurrentSkinTone();\n return {\n /**\n * The current active color from the skin tone palette\n */\n currentColor: skinTonePalette[currentSkinTone - 1],\n /**\n * The current active skin tone\n *\n * @type {1|2|3|4|5|6}\n */\n currentSkinTone,\n search: \"\",\n open: false\n };\n },\n computed: {\n native() {\n return this.activeSet === \"native\";\n }\n },\n created() {\n useTrapStackControl(() => this.open);\n },\n methods: {\n t,\n clearSearch() {\n this.search = \"\";\n this.$refs.search.focus();\n },\n /**\n * Update the current skin tone by the result of the color picker\n *\n * @param {string} color Color set\n */\n onChangeSkinTone(color) {\n const index = this.skinTonePalette.findIndex((tone) => tone.color.toLowerCase() === color.toLowerCase());\n if (index > -1) {\n this.currentSkinTone = index + 1;\n this.currentColor = this.skinTonePalette[index];\n setCurrentSkinTone(this.currentSkinTone);\n }\n },\n select(emojiObject) {\n this.$emit(\"select\", emojiObject.native);\n this.$emit(\"selectData\", emojiObject);\n if (this.closeOnSelect) {\n this.open = false;\n }\n },\n unselect() {\n this.$emit(\"unselect\");\n },\n afterShow() {\n this.$refs.search.focus();\n },\n afterHide() {\n if (!document.activeElement || this.$refs.picker.$el.contains(document.activeElement) || !isFocusable(document.activeElement)) {\n this.$refs.popover.$el.querySelector('button, [role=\"button\"]')?.focus();\n }\n },\n /**\n * Manually handle Tab navigation skipping emoji buttons.\n * Navigation over emojis is handled by Arrow keys.\n *\n * @param {KeyboardEvent} event - Keyboard event\n */\n handleTabNavigationSkippingEmojis(event) {\n const current = event.target;\n const focusable = Array.from(this.$refs.picker.$el.querySelectorAll(\"button:not(.emoji-mart-emoji), input\"));\n if (!event.shiftKey) {\n const nextNode = focusable.find((node) => current.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_FOLLOWING) || focusable[0];\n nextNode.focus();\n } else {\n const prevNode = focusable.findLast((node) => current.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_PRECEDING) || focusable.at(-1);\n prevNode.focus();\n }\n },\n /**\n * Handle arrow navigation via <Picker>'s handlers with scroll bug fix\n *\n * @param {'onArrowLeft' | 'onArrowRight' | 'onArrowDown' | 'onArrowUp'} originalHandlerName - Picker's arrow keydown handler name\n * @param {KeyboardEvent} event - Keyboard event\n */\n async callPickerArrowHandlerWithScrollFix(originalHandlerName, event) {\n this.$refs.picker[originalHandlerName](event);\n await this.$nextTick();\n const selectedEmoji = this.$refs.picker.$el.querySelector(\".emoji-mart-emoji-selected\");\n selectedEmoji?.scrollIntoView({\n block: \"center\",\n inline: \"center\"\n });\n }\n }\n};\nconst _hoisted_1 = { class: \"nc-emoji-picker-container\" };\nconst _hoisted_2 = { class: \"search__wrapper\" };\nconst _hoisted_3 = { class: \"emoji-mart-category-label\" };\nconst _hoisted_4 = { class: \"emoji-mart-category-label\" };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcTextField = resolveComponent(\"NcTextField\");\n const _component_IconCircle = resolveComponent(\"IconCircle\");\n const _component_NcButton = resolveComponent(\"NcButton\");\n const _component_NcColorPicker = resolveComponent(\"NcColorPicker\");\n const _component_Emoji = resolveComponent(\"Emoji\");\n const _component_Picker = resolveComponent(\"Picker\");\n const _component_NcPopover = resolveComponent(\"NcPopover\");\n return openBlock(), createBlock(_component_NcPopover, {\n ref: \"popover\",\n shown: $data.open,\n \"onUpdate:shown\": _cache[6] || (_cache[6] = ($event) => $data.open = $event),\n container: $props.container,\n \"popup-role\": \"dialog\",\n \"no-focus-trap\": true,\n onAfterShow: $options.afterShow,\n onAfterHide: $options.afterHide\n }, {\n trigger: withCtx((slotProps) => [\n renderSlot(_ctx.$slots, \"default\", normalizeProps(guardReactiveProps(slotProps)), void 0, true)\n ]),\n default: withCtx(() => [\n createElementVNode(\"div\", _hoisted_1, [\n createVNode(_component_Picker, mergeProps({\n ref: \"picker\",\n color: \"var(--color-primary-element)\",\n data: $setup.emojiIndex,\n emoji: $props.previewFallbackEmoji,\n i18n: $setup.i18n,\n native: $options.native,\n \"emoji-size\": 20,\n \"per-line\": 8,\n \"picker-styles\": { width: \"320px\" },\n \"show-preview\": $props.showPreview,\n skin: $data.currentSkinTone,\n \"show-skin-tones\": false,\n title: $props.previewFallbackName,\n role: \"dialog\",\n \"aria-modal\": \"true\",\n \"aria-label\": $options.t(\"Emoji picker\")\n }, _ctx.$attrs, {\n onKeydown: withKeys(withModifiers($options.handleTabNavigationSkippingEmojis, [\"prevent\"]), [\"tab\"]),\n onSelect: $options.select\n }), createSlots({\n searchTemplate: withCtx(({ onSearch }) => [\n createElementVNode(\"div\", _hoisted_2, [\n createVNode(_component_NcTextField, {\n ref: \"search\",\n modelValue: $data.search,\n \"onUpdate:modelValue\": [\n _cache[0] || (_cache[0] = ($event) => $data.search = $event),\n ($event) => onSearch($data.search)\n ],\n class: \"search\",\n label: $options.t(\"Search\"),\n \"label-visible\": true,\n placeholder: $setup.i18n.search,\n \"trailing-button-icon\": \"close\",\n \"trailing-button-label\": $options.t(\"Clear search\"),\n \"show-trailing-button\": $data.search !== \"\",\n onKeydown: [\n _cache[1] || (_cache[1] = withKeys(($event) => $options.callPickerArrowHandlerWithScrollFix(\"onArrowLeft\", $event), [\"left\"])),\n _cache[2] || (_cache[2] = withKeys(($event) => $options.callPickerArrowHandlerWithScrollFix(\"onArrowRight\", $event), [\"right\"])),\n _cache[3] || (_cache[3] = withKeys(($event) => $options.callPickerArrowHandlerWithScrollFix(\"onArrowDown\", $event), [\"down\"])),\n _cache[4] || (_cache[4] = withKeys(($event) => $options.callPickerArrowHandlerWithScrollFix(\"onArrowUp\", $event), [\"up\"])),\n _cache[5] || (_cache[5] = withKeys(($event) => _ctx.$refs.picker.onEnter($event), [\"enter\"]))\n ],\n onTrailingButtonClick: ($event) => {\n $options.clearSearch();\n onSearch(\"\");\n }\n }, null, 8, [\"modelValue\", \"label\", \"placeholder\", \"trailing-button-label\", \"show-trailing-button\", \"onTrailingButtonClick\", \"onUpdate:modelValue\"]),\n createVNode(_component_NcColorPicker, {\n \"palette-only\": \"\",\n container: $props.container,\n palette: $setup.skinTonePalette,\n \"model-value\": $data.currentColor.color,\n \"onUpdate:modelValue\": $options.onChangeSkinTone\n }, {\n default: withCtx(() => [\n createVNode(_component_NcButton, {\n \"aria-label\": $options.t(\"Skin tone\"),\n variant: \"tertiary-no-background\"\n }, {\n icon: withCtx(() => [\n createVNode(_component_IconCircle, {\n style: normalizeStyle({ color: $data.currentColor.color }),\n title: $data.currentColor.name,\n size: 20\n }, null, 8, [\"style\", \"title\"])\n ]),\n _: 1\n }, 8, [\"aria-label\"])\n ]),\n _: 1\n }, 8, [\"container\", \"palette\", \"model-value\", \"onUpdate:modelValue\"])\n ])\n ]),\n _: 2\n }, [\n $props.allowUnselect && $props.selectedEmoji ? {\n name: \"customCategory\",\n fn: withCtx(() => [\n createElementVNode(\"div\", _hoisted_3, [\n createElementVNode(\"h3\", _hoisted_4, toDisplayString($options.t(\"Selected\")), 1)\n ]),\n createVNode(_component_Emoji, {\n class: \"emoji-selected\",\n data: $setup.emojiIndex,\n emoji: $props.selectedEmoji,\n native: \"\",\n size: 32,\n onClick: $options.unselect\n }, null, 8, [\"data\", \"emoji\", \"onClick\"]),\n createVNode(_component_Emoji, {\n class: \"emoji-delete\",\n data: $setup.emojiIndex,\n emoji: \":x:\",\n native: \"\",\n size: 10,\n onClick: $options.unselect\n }, null, 8, [\"data\", \"onClick\"])\n ]),\n key: \"0\"\n } : void 0\n ]), 1040, [\"data\", \"emoji\", \"i18n\", \"native\", \"show-preview\", \"skin\", \"title\", \"aria-label\", \"onKeydown\", \"onSelect\"])\n ])\n ]),\n _: 3\n }, 8, [\"shown\", \"container\", \"onAfterShow\", \"onAfterHide\"]);\n}\nconst NcEmojiPicker = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-f2f99131\"]]);\nexport {\n NcEmojiPicker as N\n};\n//# sourceMappingURL=NcEmojiPicker-pM4Pg2yq.mjs.map\n"],"names":["NAMESPACE","_JSON","isLocalStorageSupported","getter","setter","setHandlers","handlers","setNamespace","namespace","update","state","key","value","set","get","store","mapping","buildSearch","emoji","search","addToSearch","strings","split","string","s","deepFreeze","object","propNames","name","uncompress","data","id","DEFAULTS","frequently","initialized","defaults","init","add","maxNumber","result","defaultLength","i","quantity","frequentlyKeys","sliced","a","b","last","frequently$1","SVGs","_sfc_main","svgs","_openBlock","_createElementBlock","_hoisted_1","_Fragment","_renderList","$props","category","_normalizeClass","_normalizeStyle","$event","_ctx","_createElementVNode","_String","stringFromCodePoint","MAX_SIZE","codeUnits","highSurrogate","lowSurrogate","index","length","codePoint","unifiedToNative","unified","unicodes","codePoints","u","uniq","arr","acc","item","intersect","uniqA","uniqB","deepMerge","o","originalValue","measureScrollbar","div","scrollbarWidth","SHEET_COLUMNS","COLONS_REGEX","SKINS","EmojiIndex","emojisToShowFilter","include","exclude","custom","recent","recentLength","allCategories","indexA","indexB","categoryData","emojiId","customEmoji","skin","matches","emojiObject","unicodeEmoji","maxResults","values","allResults","emojis","currentIndex","charIndex","char","scores","sub","subIndex","score","aScore","bScore","results","emojiData","EmojiData","idx","emoticon","category_id","isIncluded","isExcluded","skinIdx","skinKey","variationData","skinData","k","sanitize","adjustedColumns","x","y","EmojiView","native","fallback","emojiTooltip","emojiSize","cssStyle","hasImage","short_names","skin_tone","skin_variations","emoticons","imageUrl","colons","EmojiProps","PickerProps","$options","_createBlock","_resolveDynamicComponent","_toDisplayString","emojiView","Emoji","_hoisted_2","_hoisted_3","_hoisted_6","_hoisted_5","_createVNode","_component_emoji","skinTone","$data","Skins","_hoisted_4","_hoisted_7","_hoisted_8","_hoisted_9","shortName","_hoisted_10","_component_skins","_cache","$input","isWindowAvailable","lastTime","vendors","callback","element","currTime","timeToCall","PickerView","pickerComponent","scrollElement","scrollTop","activeCategory","l","component","scrollToComponent","top","categoryLength","diff","scrollEl","emojiEl","scrollHeight","categoryIdx","I18N","e","oldIdx","Anchors","Category","Preview","Search","_component_anchors","_renderSlot","_component_search","args","_component_category","_vShow","_component_preview","t","module","this","n","r","X","J","N","R","$","se","G","Q","Z","w","D","c","p","h","m","d","f","v","j","g","_","C","E","S","O","P","A","M","I","F","z","L","T","q","B","H","U","V","W","K","Y","ee","te","ie","ne","re","oe","storage","getBuilder","getCurrentSkinTone","setCurrentSkinTone","_sfc_main$1","_hoisted_1$1","_hoisted_2$1","_hoisted_3$1","_hoisted_4$1","_sfc_render$1","$setup","openBlock","createElementBlock","mergeProps","createElementVNode","toDisplayString","createCommentVNode","IconCircle","_export_sfc","register","t5","t16","t37","t42","emojiIndex","i18n","skinTonePalette","Color","NcButton","NcColorPicker","NcPopover","_sfc_main$2","Picker","currentSkinTone","useTrapStackControl","color","tone","isFocusable","event","current","focusable","node","originalHandlerName","_sfc_render","_component_NcTextField","resolveComponent","_component_IconCircle","_component_NcButton","_component_NcColorPicker","_component_Emoji","_component_Picker","_component_NcPopover","createBlock","withCtx","slotProps","renderSlot","normalizeProps","guardReactiveProps","createVNode","withKeys","withModifiers","createSlots","onSearch","normalizeStyle","NcEmojiPicker"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]} \ No newline at end of file diff --git a/dist/NcEmojiPicker-pM4Pg2yq-C_Dpe77I.chunk.mjs.map.license b/dist/NcEmojiPicker-pM4Pg2yq-CYkSkF_Y.chunk.mjs.map.license similarity index 100% rename from dist/NcEmojiPicker-pM4Pg2yq-C_Dpe77I.chunk.mjs.map.license rename to dist/NcEmojiPicker-pM4Pg2yq-CYkSkF_Y.chunk.mjs.map.license diff --git a/dist/NcEmojiPicker-pM4Pg2yq-C_Dpe77I.chunk.mjs b/dist/NcEmojiPicker-pM4Pg2yq-C_Dpe77I.chunk.mjs deleted file mode 100644 index 5f4f42c191b36..0000000000000 --- a/dist/NcEmojiPicker-pM4Pg2yq-C_Dpe77I.chunk.mjs +++ /dev/null @@ -1,6 +0,0 @@ -import{j as b,o as p,F as H,C as Y,K as Z,n as W,k as y,c as re,l as L,w as U,t as T,N as Ct,f as S,e as M,E as Ye,ac as xt,$ as z,m as ie,G as Bt,z as Ze,H as qt,y as vt,a9 as At,aa as St}from"./runtime-dom.esm-bundler-BrYCUcZF.chunk.mjs";import{a as $}from"./index-xFugdZPW.chunk.mjs";import{H as Mt,Z as Pt,_ as zt}from"./index-JpgrUA2Z-BFiKKJ1W.chunk.mjs";import{r as Ot,y as Tt,C as Ht,D as Lt,E as Wt,t as j,_ as Qe}from"./createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs";import{N as It}from"./NcColorPicker-Kc0JqRtp-VtydDeG1.chunk.mjs";import{f as Rt}from"./index-6_gsQFyp.chunk.mjs";import{b as J}from"./colors-Go3zmZRD-DU6ImAGi.chunk.mjs";import{c as Nt}from"./NcNoteCard-CVhtNL04-hwuc093N.chunk.mjs";import{_ as Gt}from"./TrashCanOutline-CvWRJ8GE.chunk.mjs";const Ut=!0,$t=JSON.parse('[{"id":"smileys","name":"Smileys & Emotion","emojis":["grinning","smiley","smile","grin","laughing","sweat_smile","rolling_on_the_floor_laughing","joy","slightly_smiling_face","upside_down_face","melting_face","wink","blush","innocent","smiling_face_with_3_hearts","heart_eyes","star-struck","kissing_heart","kissing","relaxed","kissing_closed_eyes","kissing_smiling_eyes","smiling_face_with_tear","yum","stuck_out_tongue","stuck_out_tongue_winking_eye","zany_face","stuck_out_tongue_closed_eyes","money_mouth_face","hugging_face","face_with_hand_over_mouth","face_with_open_eyes_and_hand_over_mouth","face_with_peeking_eye","shushing_face","thinking_face","saluting_face","zipper_mouth_face","face_with_raised_eyebrow","neutral_face","expressionless","no_mouth","dotted_line_face","face_in_clouds","smirk","unamused","face_with_rolling_eyes","grimacing","face_exhaling","lying_face","shaking_face","relieved","pensive","sleepy","drooling_face","sleeping","mask","face_with_thermometer","face_with_head_bandage","nauseated_face","face_vomiting","sneezing_face","hot_face","cold_face","woozy_face","dizzy_face","face_with_spiral_eyes","exploding_head","face_with_cowboy_hat","partying_face","disguised_face","sunglasses","nerd_face","face_with_monocle","confused","face_with_diagonal_mouth","worried","slightly_frowning_face","white_frowning_face","open_mouth","hushed","astonished","flushed","pleading_face","face_holding_back_tears","frowning","anguished","fearful","cold_sweat","disappointed_relieved","cry","sob","scream","confounded","persevere","disappointed","sweat","weary","tired_face","yawning_face","triumph","rage","angry","face_with_symbols_on_mouth","smiling_imp","imp","skull","skull_and_crossbones","hankey","clown_face","japanese_ogre","japanese_goblin","ghost","alien","space_invader","robot_face","smiley_cat","smile_cat","joy_cat","heart_eyes_cat","smirk_cat","kissing_cat","scream_cat","crying_cat_face","pouting_cat","see_no_evil","hear_no_evil","speak_no_evil","love_letter","cupid","gift_heart","sparkling_heart","heartpulse","heartbeat","revolving_hearts","two_hearts","heart_decoration","heavy_heart_exclamation_mark_ornament","broken_heart","heart_on_fire","mending_heart","heart","pink_heart","orange_heart","yellow_heart","green_heart","blue_heart","light_blue_heart","purple_heart","brown_heart","black_heart","grey_heart","white_heart","kiss","100","anger","boom","dizzy","sweat_drops","dash","hole","speech_balloon","eye-in-speech-bubble","left_speech_bubble","right_anger_bubble","thought_balloon","zzz"]},{"id":"people","name":"People & Body","emojis":["wave","raised_back_of_hand","raised_hand_with_fingers_splayed","hand","spock-hand","rightwards_hand","leftwards_hand","palm_down_hand","palm_up_hand","leftwards_pushing_hand","rightwards_pushing_hand","ok_hand","pinched_fingers","pinching_hand","v","crossed_fingers","hand_with_index_finger_and_thumb_crossed","i_love_you_hand_sign","the_horns","call_me_hand","point_left","point_right","point_up_2","middle_finger","point_down","point_up","index_pointing_at_the_viewer","+1","-1","fist","facepunch","left-facing_fist","right-facing_fist","clap","raised_hands","heart_hands","open_hands","palms_up_together","handshake","pray","writing_hand","nail_care","selfie","muscle","mechanical_arm","mechanical_leg","leg","foot","ear","ear_with_hearing_aid","nose","brain","anatomical_heart","lungs","tooth","bone","eyes","eye","tongue","lips","biting_lip","baby","child","boy","girl","adult","person_with_blond_hair","man","bearded_person","man_with_beard","woman_with_beard","red_haired_man","curly_haired_man","white_haired_man","bald_man","woman","red_haired_woman","red_haired_person","curly_haired_woman","curly_haired_person","white_haired_woman","white_haired_person","bald_woman","bald_person","blond-haired-woman","blond-haired-man","older_adult","older_man","older_woman","person_frowning","man-frowning","woman-frowning","person_with_pouting_face","man-pouting","woman-pouting","no_good","man-gesturing-no","woman-gesturing-no","ok_woman","man-gesturing-ok","woman-gesturing-ok","information_desk_person","man-tipping-hand","woman-tipping-hand","raising_hand","man-raising-hand","woman-raising-hand","deaf_person","deaf_man","deaf_woman","bow","man-bowing","woman-bowing","face_palm","man-facepalming","woman-facepalming","shrug","man-shrugging","woman-shrugging","health_worker","male-doctor","female-doctor","student","male-student","female-student","teacher","male-teacher","female-teacher","judge","male-judge","female-judge","farmer","male-farmer","female-farmer","cook","male-cook","female-cook","mechanic","male-mechanic","female-mechanic","factory_worker","male-factory-worker","female-factory-worker","office_worker","male-office-worker","female-office-worker","scientist","male-scientist","female-scientist","technologist","male-technologist","female-technologist","singer","male-singer","female-singer","artist","male-artist","female-artist","pilot","male-pilot","female-pilot","astronaut","male-astronaut","female-astronaut","firefighter","male-firefighter","female-firefighter","cop","male-police-officer","female-police-officer","sleuth_or_spy","male-detective","female-detective","guardsman","male-guard","female-guard","ninja","construction_worker","male-construction-worker","female-construction-worker","person_with_crown","prince","princess","man_with_turban","man-wearing-turban","woman-wearing-turban","man_with_gua_pi_mao","person_with_headscarf","person_in_tuxedo","man_in_tuxedo","woman_in_tuxedo","bride_with_veil","man_with_veil","woman_with_veil","pregnant_woman","pregnant_man","pregnant_person","breast-feeding","woman_feeding_baby","man_feeding_baby","person_feeding_baby","angel","santa","mrs_claus","mx_claus","superhero","male_superhero","female_superhero","supervillain","male_supervillain","female_supervillain","mage","male_mage","female_mage","fairy","male_fairy","female_fairy","vampire","male_vampire","female_vampire","merperson","merman","mermaid","elf","male_elf","female_elf","genie","male_genie","female_genie","zombie","male_zombie","female_zombie","troll","massage","man-getting-massage","woman-getting-massage","haircut","man-getting-haircut","woman-getting-haircut","walking","man-walking","woman-walking","standing_person","man_standing","woman_standing","kneeling_person","man_kneeling","woman_kneeling","person_with_probing_cane","man_with_probing_cane","woman_with_probing_cane","person_in_motorized_wheelchair","man_in_motorized_wheelchair","woman_in_motorized_wheelchair","person_in_manual_wheelchair","man_in_manual_wheelchair","woman_in_manual_wheelchair","runner","man-running","woman-running","dancer","man_dancing","man_in_business_suit_levitating","dancers","men-with-bunny-ears-partying","women-with-bunny-ears-partying","person_in_steamy_room","man_in_steamy_room","woman_in_steamy_room","person_climbing","man_climbing","woman_climbing","fencer","horse_racing","skier","snowboarder","golfer","man-golfing","woman-golfing","surfer","man-surfing","woman-surfing","rowboat","man-rowing-boat","woman-rowing-boat","swimmer","man-swimming","woman-swimming","person_with_ball","man-bouncing-ball","woman-bouncing-ball","weight_lifter","man-lifting-weights","woman-lifting-weights","bicyclist","man-biking","woman-biking","mountain_bicyclist","man-mountain-biking","woman-mountain-biking","person_doing_cartwheel","man-cartwheeling","woman-cartwheeling","wrestlers","man-wrestling","woman-wrestling","water_polo","man-playing-water-polo","woman-playing-water-polo","handball","man-playing-handball","woman-playing-handball","juggling","man-juggling","woman-juggling","person_in_lotus_position","man_in_lotus_position","woman_in_lotus_position","bath","sleeping_accommodation","people_holding_hands","two_women_holding_hands","man_and_woman_holding_hands","two_men_holding_hands","couplekiss","woman-kiss-man","man-kiss-man","woman-kiss-woman","couple_with_heart","woman-heart-man","man-heart-man","woman-heart-woman","family","man-woman-boy","man-woman-girl","man-woman-girl-boy","man-woman-boy-boy","man-woman-girl-girl","man-man-boy","man-man-girl","man-man-girl-boy","man-man-boy-boy","man-man-girl-girl","woman-woman-boy","woman-woman-girl","woman-woman-girl-boy","woman-woman-boy-boy","woman-woman-girl-girl","man-boy","man-boy-boy","man-girl","man-girl-boy","man-girl-girl","woman-boy","woman-boy-boy","woman-girl","woman-girl-boy","woman-girl-girl","speaking_head_in_silhouette","bust_in_silhouette","busts_in_silhouette","people_hugging","footprints"]},{"id":"nature","name":"Animals & Nature","emojis":["monkey_face","monkey","gorilla","orangutan","dog","dog2","guide_dog","service_dog","poodle","wolf","fox_face","raccoon","cat","cat2","black_cat","lion_face","tiger","tiger2","leopard","horse","moose","donkey","racehorse","unicorn_face","zebra_face","deer","bison","cow","ox","water_buffalo","cow2","pig","pig2","boar","pig_nose","ram","sheep","goat","dromedary_camel","camel","llama","giraffe_face","elephant","mammoth","rhinoceros","hippopotamus","mouse","mouse2","rat","hamster","rabbit","rabbit2","chipmunk","beaver","hedgehog","bat","bear","polar_bear","koala","panda_face","sloth","otter","skunk","kangaroo","badger","feet","turkey","chicken","rooster","hatching_chick","baby_chick","hatched_chick","bird","penguin","dove_of_peace","eagle","duck","swan","owl","dodo","feather","flamingo","peacock","parrot","wing","black_bird","goose","frog","crocodile","turtle","lizard","snake","dragon_face","dragon","sauropod","t-rex","whale","whale2","dolphin","seal","fish","tropical_fish","blowfish","shark","octopus","shell","coral","jellyfish","snail","butterfly","bug","ant","bee","beetle","ladybug","cricket","cockroach","spider","spider_web","scorpion","mosquito","fly","worm","microbe","bouquet","cherry_blossom","white_flower","lotus","rosette","rose","wilted_flower","hibiscus","sunflower","blossom","tulip","hyacinth","seedling","potted_plant","evergreen_tree","deciduous_tree","palm_tree","cactus","ear_of_rice","herb","shamrock","four_leaf_clover","maple_leaf","fallen_leaf","leaves","empty_nest","nest_with_eggs","mushroom"]},{"id":"foods","name":"Food & Drink","emojis":["grapes","melon","watermelon","tangerine","lemon","banana","pineapple","mango","apple","green_apple","pear","peach","cherries","strawberry","blueberries","kiwifruit","tomato","olive","coconut","avocado","eggplant","potato","carrot","corn","hot_pepper","bell_pepper","cucumber","leafy_green","broccoli","garlic","onion","peanuts","beans","chestnut","ginger_root","pea_pod","bread","croissant","baguette_bread","flatbread","pretzel","bagel","pancakes","waffle","cheese_wedge","meat_on_bone","poultry_leg","cut_of_meat","bacon","hamburger","fries","pizza","hotdog","sandwich","taco","burrito","tamale","stuffed_flatbread","falafel","egg","fried_egg","shallow_pan_of_food","stew","fondue","bowl_with_spoon","green_salad","popcorn","butter","salt","canned_food","bento","rice_cracker","rice_ball","rice","curry","ramen","spaghetti","sweet_potato","oden","sushi","fried_shrimp","fish_cake","moon_cake","dango","dumpling","fortune_cookie","takeout_box","crab","lobster","shrimp","squid","oyster","icecream","shaved_ice","ice_cream","doughnut","cookie","birthday","cake","cupcake","pie","chocolate_bar","candy","lollipop","custard","honey_pot","baby_bottle","glass_of_milk","coffee","teapot","tea","sake","champagne","wine_glass","cocktail","tropical_drink","beer","beers","clinking_glasses","tumbler_glass","pouring_liquid","cup_with_straw","bubble_tea","beverage_box","mate_drink","ice_cube","chopsticks","knife_fork_plate","fork_and_knife","spoon","hocho","jar","amphora"]},{"id":"activity","name":"Activities","emojis":["jack_o_lantern","christmas_tree","fireworks","sparkler","firecracker","sparkles","balloon","tada","confetti_ball","tanabata_tree","bamboo","dolls","flags","wind_chime","rice_scene","red_envelope","ribbon","gift","reminder_ribbon","admission_tickets","ticket","medal","trophy","sports_medal","first_place_medal","second_place_medal","third_place_medal","soccer","baseball","softball","basketball","volleyball","football","rugby_football","tennis","flying_disc","bowling","cricket_bat_and_ball","field_hockey_stick_and_ball","ice_hockey_stick_and_puck","lacrosse","table_tennis_paddle_and_ball","badminton_racquet_and_shuttlecock","boxing_glove","martial_arts_uniform","goal_net","golf","ice_skate","fishing_pole_and_fish","diving_mask","running_shirt_with_sash","ski","sled","curling_stone","dart","yo-yo","kite","gun","8ball","crystal_ball","magic_wand","video_game","joystick","slot_machine","game_die","jigsaw","teddy_bear","pinata","mirror_ball","nesting_dolls","spades","hearts","diamonds","clubs","chess_pawn","black_joker","mahjong","flower_playing_cards","performing_arts","frame_with_picture","art","thread","sewing_needle","yarn","knot"]},{"id":"places","name":"Travel & Places","emojis":["earth_africa","earth_americas","earth_asia","globe_with_meridians","world_map","japan","compass","snow_capped_mountain","mountain","volcano","mount_fuji","camping","beach_with_umbrella","desert","desert_island","national_park","stadium","classical_building","building_construction","bricks","rock","wood","hut","house_buildings","derelict_house_building","house","house_with_garden","office","post_office","european_post_office","hospital","bank","hotel","love_hotel","convenience_store","school","department_store","factory","japanese_castle","european_castle","wedding","tokyo_tower","statue_of_liberty","church","mosque","hindu_temple","synagogue","shinto_shrine","kaaba","fountain","tent","foggy","night_with_stars","cityscape","sunrise_over_mountains","sunrise","city_sunset","city_sunrise","bridge_at_night","hotsprings","carousel_horse","playground_slide","ferris_wheel","roller_coaster","barber","circus_tent","steam_locomotive","railway_car","bullettrain_side","bullettrain_front","train2","metro","light_rail","station","tram","monorail","mountain_railway","train","bus","oncoming_bus","trolleybus","minibus","ambulance","fire_engine","police_car","oncoming_police_car","taxi","oncoming_taxi","car","oncoming_automobile","blue_car","pickup_truck","truck","articulated_lorry","tractor","racing_car","racing_motorcycle","motor_scooter","manual_wheelchair","motorized_wheelchair","auto_rickshaw","bike","scooter","skateboard","roller_skate","busstop","motorway","railway_track","oil_drum","fuelpump","wheel","rotating_light","traffic_light","vertical_traffic_light","octagonal_sign","construction","anchor","ring_buoy","boat","canoe","speedboat","passenger_ship","ferry","motor_boat","ship","airplane","small_airplane","airplane_departure","airplane_arriving","parachute","seat","helicopter","suspension_railway","mountain_cableway","aerial_tramway","satellite","rocket","flying_saucer","bellhop_bell","luggage","hourglass","hourglass_flowing_sand","watch","alarm_clock","stopwatch","timer_clock","mantelpiece_clock","clock12","clock1230","clock1","clock130","clock2","clock230","clock3","clock330","clock4","clock430","clock5","clock530","clock6","clock630","clock7","clock730","clock8","clock830","clock9","clock930","clock10","clock1030","clock11","clock1130","new_moon","waxing_crescent_moon","first_quarter_moon","moon","full_moon","waning_gibbous_moon","last_quarter_moon","waning_crescent_moon","crescent_moon","new_moon_with_face","first_quarter_moon_with_face","last_quarter_moon_with_face","thermometer","sunny","full_moon_with_face","sun_with_face","ringed_planet","star","star2","stars","milky_way","cloud","partly_sunny","thunder_cloud_and_rain","mostly_sunny","barely_sunny","partly_sunny_rain","rain_cloud","snow_cloud","lightning","tornado","fog","wind_blowing_face","cyclone","rainbow","closed_umbrella","umbrella","umbrella_with_rain_drops","umbrella_on_ground","zap","snowflake","snowman","snowman_without_snow","comet","fire","droplet","ocean"]},{"id":"objects","name":"Objects","emojis":["eyeglasses","dark_sunglasses","goggles","lab_coat","safety_vest","necktie","shirt","jeans","scarf","gloves","coat","socks","dress","kimono","sari","one-piece_swimsuit","briefs","shorts","bikini","womans_clothes","folding_hand_fan","purse","handbag","pouch","shopping_bags","school_satchel","thong_sandal","mans_shoe","athletic_shoe","hiking_boot","womans_flat_shoe","high_heel","sandal","ballet_shoes","boot","hair_pick","crown","womans_hat","tophat","mortar_board","billed_cap","military_helmet","helmet_with_white_cross","prayer_beads","lipstick","ring","gem","mute","speaker","sound","loud_sound","loudspeaker","mega","postal_horn","bell","no_bell","musical_score","musical_note","notes","studio_microphone","level_slider","control_knobs","microphone","headphones","radio","saxophone","accordion","guitar","musical_keyboard","trumpet","violin","banjo","drum_with_drumsticks","long_drum","maracas","flute","iphone","calling","phone","telephone_receiver","pager","fax","battery","low_battery","electric_plug","computer","desktop_computer","printer","keyboard","three_button_mouse","trackball","minidisc","floppy_disk","cd","dvd","abacus","movie_camera","film_frames","film_projector","clapper","tv","camera","camera_with_flash","video_camera","vhs","mag","mag_right","candle","bulb","flashlight","izakaya_lantern","diya_lamp","notebook_with_decorative_cover","closed_book","book","green_book","blue_book","orange_book","books","notebook","ledger","page_with_curl","scroll","page_facing_up","newspaper","rolled_up_newspaper","bookmark_tabs","bookmark","label","moneybag","coin","yen","dollar","euro","pound","money_with_wings","credit_card","receipt","chart","email","e-mail","incoming_envelope","envelope_with_arrow","outbox_tray","inbox_tray","package","mailbox","mailbox_closed","mailbox_with_mail","mailbox_with_no_mail","postbox","ballot_box_with_ballot","pencil2","black_nib","lower_left_fountain_pen","lower_left_ballpoint_pen","lower_left_paintbrush","lower_left_crayon","memo","briefcase","file_folder","open_file_folder","card_index_dividers","date","calendar","spiral_note_pad","spiral_calendar_pad","card_index","chart_with_upwards_trend","chart_with_downwards_trend","bar_chart","clipboard","pushpin","round_pushpin","paperclip","linked_paperclips","straight_ruler","triangular_ruler","scissors","card_file_box","file_cabinet","wastebasket","lock","unlock","lock_with_ink_pen","closed_lock_with_key","key","old_key","hammer","axe","pick","hammer_and_pick","hammer_and_wrench","dagger_knife","crossed_swords","bomb","boomerang","bow_and_arrow","shield","carpentry_saw","wrench","screwdriver","nut_and_bolt","gear","compression","scales","probing_cane","link","chains","hook","toolbox","magnet","ladder","alembic","test_tube","petri_dish","dna","microscope","telescope","satellite_antenna","syringe","drop_of_blood","pill","adhesive_bandage","crutch","stethoscope","x-ray","door","elevator","mirror","window","bed","couch_and_lamp","chair","toilet","plunger","shower","bathtub","mouse_trap","razor","lotion_bottle","safety_pin","broom","basket","roll_of_paper","bucket","soap","bubbles","toothbrush","sponge","fire_extinguisher","shopping_trolley","smoking","coffin","headstone","funeral_urn","nazar_amulet","hamsa","moyai","placard","identification_card"]},{"id":"symbols","name":"Symbols","emojis":["atm","put_litter_in_its_place","potable_water","wheelchair","mens","womens","restroom","baby_symbol","wc","passport_control","customs","baggage_claim","left_luggage","warning","children_crossing","no_entry","no_entry_sign","no_bicycles","no_smoking","do_not_litter","non-potable_water","no_pedestrians","no_mobile_phones","underage","radioactive_sign","biohazard_sign","arrow_up","arrow_upper_right","arrow_right","arrow_lower_right","arrow_down","arrow_lower_left","arrow_left","arrow_upper_left","arrow_up_down","left_right_arrow","leftwards_arrow_with_hook","arrow_right_hook","arrow_heading_up","arrow_heading_down","arrows_clockwise","arrows_counterclockwise","back","end","on","soon","top","place_of_worship","atom_symbol","om_symbol","star_of_david","wheel_of_dharma","yin_yang","latin_cross","orthodox_cross","star_and_crescent","peace_symbol","menorah_with_nine_branches","six_pointed_star","khanda","aries","taurus","gemini","cancer","leo","virgo","libra","scorpius","sagittarius","capricorn","aquarius","pisces","ophiuchus","twisted_rightwards_arrows","repeat","repeat_one","arrow_forward","fast_forward","black_right_pointing_double_triangle_with_vertical_bar","black_right_pointing_triangle_with_double_vertical_bar","arrow_backward","rewind","black_left_pointing_double_triangle_with_vertical_bar","arrow_up_small","arrow_double_up","arrow_down_small","arrow_double_down","double_vertical_bar","black_square_for_stop","black_circle_for_record","eject","cinema","low_brightness","high_brightness","signal_strength","wireless","vibration_mode","mobile_phone_off","female_sign","male_sign","transgender_symbol","heavy_multiplication_x","heavy_plus_sign","heavy_minus_sign","heavy_division_sign","heavy_equals_sign","infinity","bangbang","interrobang","question","grey_question","grey_exclamation","exclamation","wavy_dash","currency_exchange","heavy_dollar_sign","medical_symbol","recycle","fleur_de_lis","trident","name_badge","beginner","o","white_check_mark","ballot_box_with_check","heavy_check_mark","x","negative_squared_cross_mark","curly_loop","loop","part_alternation_mark","eight_spoked_asterisk","eight_pointed_black_star","sparkle","copyright","registered","tm","hash","keycap_star","zero","one","two","three","four","five","six","seven","eight","nine","keycap_ten","capital_abcd","abcd","1234","symbols","abc","a","ab","b","cl","cool","free","information_source","id","m","new","ng","o2","ok","parking","sos","up","vs","koko","sa","u6708","u6709","u6307","ideograph_advantage","u5272","u7121","u7981","accept","u7533","u5408","u7a7a","congratulations","secret","u55b6","u6e80","red_circle","large_orange_circle","large_yellow_circle","large_green_circle","large_blue_circle","large_purple_circle","large_brown_circle","black_circle","white_circle","large_red_square","large_orange_square","large_yellow_square","large_green_square","large_blue_square","large_purple_square","large_brown_square","black_large_square","white_large_square","black_medium_square","white_medium_square","black_medium_small_square","white_medium_small_square","black_small_square","white_small_square","large_orange_diamond","large_blue_diamond","small_orange_diamond","small_blue_diamond","small_red_triangle","small_red_triangle_down","diamond_shape_with_a_dot_inside","radio_button","white_square_button","black_square_button"]},{"id":"flags","name":"Flags","emojis":["checkered_flag","cn","crossed_flags","de","es","flag-ac","flag-ad","flag-ae","flag-af","flag-ag","flag-ai","flag-al","flag-am","flag-ao","flag-aq","flag-ar","flag-as","flag-at","flag-au","flag-aw","flag-ax","flag-az","flag-ba","flag-bb","flag-bd","flag-be","flag-bf","flag-bg","flag-bh","flag-bi","flag-bj","flag-bl","flag-bm","flag-bn","flag-bo","flag-bq","flag-br","flag-bs","flag-bt","flag-bv","flag-bw","flag-by","flag-bz","flag-ca","flag-cc","flag-cd","flag-cf","flag-cg","flag-ch","flag-ci","flag-ck","flag-cl","flag-cm","flag-co","flag-cp","flag-cr","flag-cu","flag-cv","flag-cw","flag-cx","flag-cy","flag-cz","flag-dg","flag-dj","flag-dk","flag-dm","flag-do","flag-dz","flag-ea","flag-ec","flag-ee","flag-eg","flag-eh","flag-england","flag-er","flag-et","flag-eu","flag-fi","flag-fj","flag-fk","flag-fm","flag-fo","flag-ga","flag-gd","flag-ge","flag-gf","flag-gg","flag-gh","flag-gi","flag-gl","flag-gm","flag-gn","flag-gp","flag-gq","flag-gr","flag-gs","flag-gt","flag-gu","flag-gw","flag-gy","flag-hk","flag-hm","flag-hn","flag-hr","flag-ht","flag-hu","flag-ic","flag-id","flag-ie","flag-il","flag-im","flag-in","flag-io","flag-iq","flag-ir","flag-is","flag-je","flag-jm","flag-jo","flag-ke","flag-kg","flag-kh","flag-ki","flag-km","flag-kn","flag-kp","flag-kw","flag-ky","flag-kz","flag-la","flag-lb","flag-lc","flag-li","flag-lk","flag-lr","flag-ls","flag-lt","flag-lu","flag-lv","flag-ly","flag-ma","flag-mc","flag-md","flag-me","flag-mf","flag-mg","flag-mh","flag-mk","flag-ml","flag-mm","flag-mn","flag-mo","flag-mp","flag-mq","flag-mr","flag-ms","flag-mt","flag-mu","flag-mv","flag-mw","flag-mx","flag-my","flag-mz","flag-na","flag-nc","flag-ne","flag-nf","flag-ng","flag-ni","flag-nl","flag-no","flag-np","flag-nr","flag-nu","flag-nz","flag-om","flag-pa","flag-pe","flag-pf","flag-pg","flag-ph","flag-pk","flag-pl","flag-pm","flag-pn","flag-pr","flag-ps","flag-pt","flag-pw","flag-py","flag-qa","flag-re","flag-ro","flag-rs","flag-rw","flag-sa","flag-sb","flag-sc","flag-scotland","flag-sd","flag-se","flag-sg","flag-sh","flag-si","flag-sj","flag-sk","flag-sl","flag-sm","flag-sn","flag-so","flag-sr","flag-ss","flag-st","flag-sv","flag-sx","flag-sy","flag-sz","flag-ta","flag-tc","flag-td","flag-tf","flag-tg","flag-th","flag-tj","flag-tk","flag-tl","flag-tm","flag-tn","flag-to","flag-tr","flag-tt","flag-tv","flag-tw","flag-tz","flag-ua","flag-ug","flag-um","flag-uy","flag-uz","flag-va","flag-vc","flag-ve","flag-vg","flag-vi","flag-vn","flag-vu","flag-wales","flag-wf","flag-ws","flag-xk","flag-ye","flag-yt","flag-za","flag-zm","flag-zw","fr","gb","it","jp","kr","pirate_flag","rainbow-flag","ru","transgender_flag","triangular_flag_on_post","us","waving_black_flag","waving_white_flag"]}]'),Kt=JSON.parse(`{"100":{"subcategory":"emotion","a":"Hundred Points Symbol","b":"1F4AF","d":true,"e":true,"f":true,"h":true,"j":["hundred_points","score","perfect","numbers","century","exam","quiz","test","pass","hundred","100"],"k":[28,7],"o":0},"1234":{"subcategory":"alphanum","a":"Input Symbol for Numbers","b":"1F522","d":true,"e":true,"f":true,"h":true,"j":["input_numbers","numbers","blue-square","1234","1","2","3","4"],"k":[29,60],"o":0},"grinning":{"subcategory":"face-smiling","a":"Grinning Face","b":"1F600","d":true,"e":true,"f":true,"h":true,"j":["grinning_face","face","smile","happy","joy",":D","grin"],"k":[32,21],"m":":D","o":1},"smiley":{"subcategory":"face-smiling","a":"Smiling Face with Open Mouth","b":"1F603","d":true,"e":true,"f":true,"h":true,"j":["grinning_face_with_big_eyes","face","happy","joy","haha",":D",":)","smile","funny"],"k":[32,24],"l":["=)","=-)"],"m":":)","o":0},"smile":{"subcategory":"face-smiling","a":"Smiling Face with Open Mouth and Smiling Eyes","b":"1F604","d":true,"e":true,"f":true,"h":true,"j":["grinning_face_with_smiling_eyes","face","happy","joy","funny","haha","laugh","like",":D",":)","smile"],"k":[32,25],"l":["C:","c:",":D",":-D"],"m":":)","o":0},"grin":{"subcategory":"face-smiling","a":"Grinning Face with Smiling Eyes","b":"1F601","d":true,"e":true,"f":true,"h":true,"j":["beaming_face_with_smiling_eyes","face","happy","smile","joy","kawaii"],"k":[32,22],"o":0},"laughing":{"subcategory":"face-smiling","a":"Smiling Face with Open Mouth and Tightly-Closed Eyes","b":"1F606","d":true,"e":true,"f":true,"h":true,"j":["grinning_squinting_face","happy","joy","lol","satisfied","haha","face","glad","XD","laugh"],"k":[32,27],"l":[":>",":->"],"n":["satisfied"],"o":0},"sweat_smile":{"subcategory":"face-smiling","a":"Smiling Face with Open Mouth and Cold Sweat","b":"1F605","d":true,"e":true,"f":true,"h":true,"j":["grinning_face_with_sweat","face","hot","happy","laugh","sweat","smile","relief"],"k":[32,26],"o":0},"rolling_on_the_floor_laughing":{"subcategory":"face-smiling","a":"Rolling on the Floor Laughing","b":"1F923","d":true,"e":true,"f":true,"h":true,"j":["rolling_on_the_floor_laughing","face","rolling","floor","laughing","lol","haha","rofl"],"k":[40,17],"o":3},"joy":{"subcategory":"face-smiling","a":"Face with Tears of Joy","b":"1F602","d":true,"e":true,"f":true,"h":true,"j":["face_with_tears_of_joy","face","cry","tears","weep","happy","happytears","haha"],"k":[32,23],"o":0},"slightly_smiling_face":{"subcategory":"face-smiling","a":"Slightly Smiling Face","b":"1F642","d":true,"e":true,"f":true,"h":true,"j":["slightly_smiling_face","face","smile"],"k":[33,29],"l":[":)","(:",":-)"],"o":1},"upside_down_face":{"subcategory":"face-smiling","a":"Upside-Down Face","b":"1F643","d":true,"e":true,"f":true,"h":true,"j":["upside_down_face","face","flipped","silly","smile"],"k":[33,30],"o":1},"melting_face":{"subcategory":"face-smiling","a":"Melting Face","b":"1FAE0","d":true,"e":true,"f":true,"h":true,"j":["melting face","hot","heat"],"k":[55,30],"o":14},"wink":{"subcategory":"face-smiling","a":"Winking Face","b":"1F609","d":true,"e":true,"f":true,"h":true,"j":["winking_face","face","happy","mischievous","secret",";)","smile","eye"],"k":[32,30],"l":[";)",";-)"],"m":";)","o":0},"blush":{"subcategory":"face-smiling","a":"Smiling Face with Smiling Eyes","b":"1F60A","d":true,"e":true,"f":true,"h":true,"j":["smiling_face_with_smiling_eyes","face","smile","happy","flushed","crush","embarrassed","shy","joy"],"k":[32,31],"m":":)","o":0},"innocent":{"subcategory":"face-smiling","a":"Smiling Face with Halo","b":"1F607","d":true,"e":true,"f":true,"h":true,"j":["smiling_face_with_halo","face","angel","heaven","halo","innocent"],"k":[32,28],"o":1},"smiling_face_with_3_hearts":{"subcategory":"face-affection","a":"Smiling Face with Smiling Eyes and Three Hearts","b":"1F970","d":true,"e":true,"f":true,"h":true,"j":["smiling_face_with_hearts","face","love","like","affection","valentines","infatuation","crush","hearts","adore"],"k":[43,60],"o":11},"heart_eyes":{"subcategory":"face-affection","a":"Smiling Face with Heart-Shaped Eyes","b":"1F60D","d":true,"e":true,"f":true,"h":true,"j":["smiling_face_with_heart_eyes","face","love","like","affection","valentines","infatuation","crush","heart"],"k":[32,34],"o":0},"star-struck":{"subcategory":"face-affection","a":"Grinning Face with Star Eyes","b":"1F929","d":true,"e":true,"f":true,"h":true,"j":["star_struck","face","smile","starry","eyes","grinning"],"k":[40,40],"n":["grinning_face_with_star_eyes"],"o":5},"kissing_heart":{"subcategory":"face-affection","a":"Face Throwing a Kiss","b":"1F618","d":true,"e":true,"f":true,"h":true,"j":["face_blowing_a_kiss","face","love","like","affection","valentines","infatuation","kiss"],"k":[32,45],"l":[":*",":-*"],"o":0},"kissing":{"subcategory":"face-affection","a":"Kissing Face","b":"1F617","d":true,"e":true,"f":true,"h":true,"j":["kissing_face","love","like","face","3","valentines","infatuation","kiss"],"k":[32,44],"o":1},"relaxed":{"subcategory":"face-affection","a":"White Smiling Face","b":"263A-FE0F","c":"263A","d":true,"e":true,"f":true,"h":true,"j":["smiling_face","face","blush","massage","happiness"],"k":[57,35],"o":0},"kissing_closed_eyes":{"subcategory":"face-affection","a":"Kissing Face with Closed Eyes","b":"1F61A","d":true,"e":true,"f":true,"h":true,"j":["kissing_face_with_closed_eyes","face","love","like","affection","valentines","infatuation","kiss"],"k":[32,47],"o":0},"kissing_smiling_eyes":{"subcategory":"face-affection","a":"Kissing Face with Smiling Eyes","b":"1F619","d":true,"e":true,"f":true,"h":true,"j":["kissing_face_with_smiling_eyes","face","affection","valentines","infatuation","kiss"],"k":[32,46],"o":1},"smiling_face_with_tear":{"subcategory":"face-affection","a":"Smiling Face with Tear","b":"1F972","d":true,"e":true,"f":true,"h":true,"j":["smiling face with tear","sad","cry","pretend"],"k":[44,1],"o":13},"yum":{"subcategory":"face-tongue","a":"Face Savouring Delicious Food","b":"1F60B","d":true,"e":true,"f":true,"h":true,"j":["face_savoring_food","happy","joy","tongue","smile","face","silly","yummy","nom","delicious","savouring"],"k":[32,32],"o":0},"stuck_out_tongue":{"subcategory":"face-tongue","a":"Face with Stuck-out Tongue","b":"1F61B","d":true,"e":true,"f":true,"h":true,"j":["face_with_tongue","face","prank","childish","playful","mischievous","smile","tongue"],"k":[32,48],"l":[":p",":-p",":P",":-P",":b",":-b"],"m":":p","o":1},"stuck_out_tongue_winking_eye":{"subcategory":"face-tongue","a":"Face with Stuck-out Tongue and Winking Eye","b":"1F61C","d":true,"e":true,"f":true,"h":true,"j":["winking_face_with_tongue","face","prank","childish","playful","mischievous","smile","wink","tongue"],"k":[32,49],"l":[";p",";-p",";b",";-b",";P",";-P"],"m":";p","o":0},"zany_face":{"subcategory":"face-tongue","a":"Grinning Face with One Large and One Small Eye","b":"1F92A","d":true,"e":true,"f":true,"h":true,"j":["zany_face","face","goofy","crazy"],"k":[40,41],"n":["grinning_face_with_one_large_and_one_small_eye"],"o":5},"stuck_out_tongue_closed_eyes":{"subcategory":"face-tongue","a":"Face with Stuck-out Tongue and Tightly-Closed Eyes","b":"1F61D","d":true,"e":true,"f":true,"h":true,"j":["squinting_face_with_tongue","face","prank","playful","mischievous","smile","tongue"],"k":[32,50],"o":0},"money_mouth_face":{"subcategory":"face-tongue","a":"Money-Mouth Face","b":"1F911","d":true,"e":true,"f":true,"h":true,"j":["money_mouth_face","face","rich","dollar","money"],"k":[39,0],"o":1},"hugging_face":{"subcategory":"face-hand","a":"Hugging Face","b":"1F917","d":true,"e":true,"f":true,"h":true,"j":["hugging_face","face","smile","hug"],"k":[39,6],"o":1},"face_with_hand_over_mouth":{"subcategory":"face-hand","a":"Smiling Face with Smiling Eyes and Hand Covering Mouth","b":"1F92D","d":true,"e":true,"f":true,"h":true,"j":["face_with_hand_over_mouth","face","whoops","shock","surprise"],"k":[40,44],"n":["smiling_face_with_smiling_eyes_and_hand_covering_mouth"],"o":5},"face_with_open_eyes_and_hand_over_mouth":{"subcategory":"face-hand","a":"Face with Open Eyes and Hand over Mouth","b":"1FAE2","d":true,"e":true,"f":true,"h":true,"j":["face with open eyes and hand over mouth","silence","secret","shock","surprise"],"k":[55,32],"o":14},"face_with_peeking_eye":{"subcategory":"face-hand","a":"Face with Peeking Eye","b":"1FAE3","d":true,"e":true,"f":true,"h":true,"j":["face with peeking eye","scared","frightening","embarrassing","shy"],"k":[55,33],"o":14},"shushing_face":{"subcategory":"face-hand","a":"Face with Finger Covering Closed Lips","b":"1F92B","d":true,"e":true,"f":true,"h":true,"j":["shushing_face","face","quiet","shhh"],"k":[40,42],"n":["face_with_finger_covering_closed_lips"],"o":5},"thinking_face":{"subcategory":"face-hand","a":"Thinking Face","b":"1F914","d":true,"e":true,"f":true,"h":true,"j":["thinking_face","face","hmmm","think","consider"],"k":[39,3],"o":1},"saluting_face":{"subcategory":"face-hand","a":"Saluting Face","b":"1FAE1","d":true,"e":true,"f":true,"h":true,"j":["saluting face","respect","salute"],"k":[55,31],"o":14},"zipper_mouth_face":{"subcategory":"face-neutral-skeptical","a":"Zipper-Mouth Face","b":"1F910","d":true,"e":true,"f":true,"h":true,"j":["zipper_mouth_face","face","sealed","zipper","secret"],"k":[38,60],"o":1},"face_with_raised_eyebrow":{"subcategory":"face-neutral-skeptical","a":"Face with One Eyebrow Raised","b":"1F928","d":true,"e":true,"f":true,"h":true,"j":["face_with_raised_eyebrow","face","distrust","scepticism","disapproval","disbelief","surprise","suspicious"],"k":[40,39],"n":["face_with_one_eyebrow_raised"],"o":5},"neutral_face":{"subcategory":"face-neutral-skeptical","a":"Neutral Face","b":"1F610","d":true,"e":true,"f":true,"h":true,"j":["neutral_face","indifference","meh",":|","neutral"],"k":[32,37],"l":[":|",":-|"],"o":0},"expressionless":{"subcategory":"face-neutral-skeptical","a":"Expressionless Face","b":"1F611","d":true,"e":true,"f":true,"h":true,"j":["expressionless_face","face","indifferent","-_-","meh","deadpan"],"k":[32,38],"o":1},"no_mouth":{"subcategory":"face-neutral-skeptical","a":"Face Without Mouth","b":"1F636","d":true,"e":true,"f":true,"h":true,"j":["face_without_mouth","face"],"k":[33,17],"o":1},"dotted_line_face":{"subcategory":"face-neutral-skeptical","a":"Dotted Line Face","b":"1FAE5","d":true,"e":true,"f":true,"h":true,"j":["dotted line face","invisible","lonely","isolation","depression"],"k":[55,35],"o":14},"face_in_clouds":{"subcategory":"face-neutral-skeptical","a":"Face in Clouds","b":"1F636-200D-1F32B-FE0F","c":"1F636-200D-1F32B","d":true,"e":true,"f":true,"h":true,"j":["face in clouds","shower","steam","dream"],"k":[33,16],"o":13},"smirk":{"subcategory":"face-neutral-skeptical","a":"Smirking Face","b":"1F60F","d":true,"e":true,"f":true,"h":true,"j":["smirking_face","face","smile","mean","prank","smug","sarcasm"],"k":[32,36],"o":0},"unamused":{"subcategory":"face-neutral-skeptical","a":"Unamused Face","b":"1F612","d":true,"e":true,"f":true,"h":true,"j":["unamused_face","indifference","bored","straight face","serious","sarcasm","unimpressed","skeptical","dubious","ugh","side_eye"],"k":[32,39],"m":":(","o":0},"face_with_rolling_eyes":{"subcategory":"face-neutral-skeptical","a":"Face with Rolling Eyes","b":"1F644","d":true,"e":true,"f":true,"h":true,"j":["face_with_rolling_eyes","face","eyeroll","frustrated"],"k":[33,31],"o":1},"grimacing":{"subcategory":"face-neutral-skeptical","a":"Grimacing Face","b":"1F62C","d":true,"e":true,"f":true,"h":true,"j":["grimacing_face","face","grimace","teeth"],"k":[33,4],"o":1},"face_exhaling":{"subcategory":"face-neutral-skeptical","a":"Face Exhaling","b":"1F62E-200D-1F4A8","d":true,"e":true,"f":true,"h":true,"j":["face exhaling","relieve","relief","tired","sigh"],"k":[33,6],"o":13},"lying_face":{"subcategory":"face-neutral-skeptical","a":"Lying Face","b":"1F925","d":true,"e":true,"f":true,"h":true,"j":["lying_face","face","lie","pinocchio"],"k":[40,19],"o":3},"shaking_face":{"subcategory":"face-neutral-skeptical","a":"Shaking Face","b":"1FAE8","d":true,"e":true,"f":false,"h":false,"j":["shaking face","dizzy","shock","blurry","earthquake"],"k":[55,38],"o":15},"relieved":{"subcategory":"face-sleepy","a":"Relieved Face","b":"1F60C","d":true,"e":true,"f":true,"h":true,"j":["relieved_face","face","relaxed","phew","massage","happiness"],"k":[32,33],"o":0},"pensive":{"subcategory":"face-sleepy","a":"Pensive Face","b":"1F614","d":true,"e":true,"f":true,"h":true,"j":["pensive_face","face","sad","depressed","upset"],"k":[32,41],"o":0},"sleepy":{"subcategory":"face-sleepy","a":"Sleepy Face","b":"1F62A","d":true,"e":true,"f":true,"h":true,"j":["sleepy_face","face","tired","rest","nap"],"k":[33,2],"o":0},"drooling_face":{"subcategory":"face-sleepy","a":"Drooling Face","b":"1F924","d":true,"e":true,"f":true,"h":true,"j":["drooling_face","face"],"k":[40,18],"o":3},"sleeping":{"subcategory":"face-sleepy","a":"Sleeping Face","b":"1F634","d":true,"e":true,"f":true,"h":true,"j":["sleeping_face","face","tired","sleepy","night","zzz"],"k":[33,13],"o":1},"mask":{"subcategory":"face-unwell","a":"Face with Medical Mask","b":"1F637","d":true,"e":true,"f":true,"h":true,"j":["face_with_medical_mask","face","sick","ill","disease","covid"],"k":[33,18],"o":0},"face_with_thermometer":{"subcategory":"face-unwell","a":"Face with Thermometer","b":"1F912","d":true,"e":true,"f":true,"h":true,"j":["face_with_thermometer","sick","temperature","thermometer","cold","fever","covid"],"k":[39,1],"o":1},"face_with_head_bandage":{"subcategory":"face-unwell","a":"Face with Head-Bandage","b":"1F915","d":true,"e":true,"f":true,"h":true,"j":["face_with_head_bandage","injured","clumsy","bandage","hurt"],"k":[39,4],"o":1},"nauseated_face":{"subcategory":"face-unwell","a":"Nauseated Face","b":"1F922","d":true,"e":true,"f":true,"h":true,"j":["nauseated_face","face","vomit","gross","green","sick","throw up","ill"],"k":[40,16],"o":3},"face_vomiting":{"subcategory":"face-unwell","a":"Face with Open Mouth Vomiting","b":"1F92E","d":true,"e":true,"f":true,"h":true,"j":["face_vomiting","face","sick"],"k":[40,45],"n":["face_with_open_mouth_vomiting"],"o":5},"sneezing_face":{"subcategory":"face-unwell","a":"Sneezing Face","b":"1F927","d":true,"e":true,"f":true,"h":true,"j":["sneezing_face","face","gesundheit","sneeze","sick","allergy"],"k":[40,38],"o":3},"hot_face":{"subcategory":"face-unwell","a":"Overheated Face","b":"1F975","d":true,"e":true,"f":true,"h":true,"j":["hot_face","face","feverish","heat","red","sweating"],"k":[44,4],"o":11},"cold_face":{"subcategory":"face-unwell","a":"Freezing Face","b":"1F976","d":true,"e":true,"f":true,"h":true,"j":["cold_face","face","blue","freezing","frozen","frostbite","icicles"],"k":[44,5],"o":11},"woozy_face":{"subcategory":"face-unwell","a":"Face with Uneven Eyes and Wavy Mouth","b":"1F974","d":true,"e":true,"f":true,"h":true,"j":["woozy_face","face","dizzy","intoxicated","tipsy","wavy"],"k":[44,3],"o":11},"dizzy_face":{"subcategory":"face-unwell","a":"Dizzy Face","b":"1F635","d":true,"e":true,"f":true,"h":true,"j":["dizzy_face","spent","unconscious","xox","dizzy"],"k":[33,15],"o":0},"face_with_spiral_eyes":{"subcategory":"face-unwell","a":"Face with Spiral Eyes","b":"1F635-200D-1F4AB","d":true,"e":true,"f":true,"h":true,"j":["face with spiral eyes","sick","ill","confused","nauseous","nausea"],"k":[33,14],"o":13},"exploding_head":{"subcategory":"face-unwell","a":"Shocked Face with Exploding Head","b":"1F92F","d":true,"e":true,"f":true,"h":true,"j":["exploding_head","face","shocked","mind","blown"],"k":[40,46],"n":["shocked_face_with_exploding_head"],"o":5},"face_with_cowboy_hat":{"subcategory":"face-hat","a":"Face with Cowboy Hat","b":"1F920","d":true,"e":true,"f":true,"h":true,"j":["cowboy_hat_face","face","cowgirl","hat"],"k":[40,14],"o":3},"partying_face":{"subcategory":"face-hat","a":"Face with Party Horn and Party Hat","b":"1F973","d":true,"e":true,"f":true,"h":true,"j":["partying_face","face","celebration","woohoo"],"k":[44,2],"o":11},"disguised_face":{"subcategory":"face-hat","a":"Disguised Face","b":"1F978","d":true,"e":true,"f":true,"h":true,"j":["disguised face","pretent","brows","glasses","moustache"],"k":[44,12],"o":13},"sunglasses":{"subcategory":"face-glasses","a":"Smiling Face with Sunglasses","b":"1F60E","d":true,"e":true,"f":true,"h":true,"j":["smiling_face_with_sunglasses","face","cool","smile","summer","beach","sunglass"],"k":[32,35],"l":["8)"],"o":1},"nerd_face":{"subcategory":"face-glasses","a":"Nerd Face","b":"1F913","d":true,"e":true,"f":true,"h":true,"j":["nerd_face","face","nerdy","geek","dork"],"k":[39,2],"o":1},"face_with_monocle":{"subcategory":"face-glasses","a":"Face with Monocle","b":"1F9D0","d":true,"e":true,"f":true,"h":true,"j":["face_with_monocle","face","stuffy","wealthy"],"k":[47,13],"o":5},"confused":{"subcategory":"face-concerned","a":"Confused Face","b":"1F615","d":true,"e":true,"f":true,"h":true,"j":["confused_face","face","indifference","huh","weird","hmmm",":/"],"k":[32,42],"l":[":\\\\",":-\\\\",":/",":-/"],"o":1},"face_with_diagonal_mouth":{"subcategory":"face-concerned","a":"Face with Diagonal Mouth","b":"1FAE4","d":true,"e":true,"f":true,"h":true,"j":["face with diagonal mouth","skeptic","confuse","frustrated","indifferent"],"k":[55,34],"o":14},"worried":{"subcategory":"face-concerned","a":"Worried Face","b":"1F61F","d":true,"e":true,"f":true,"h":true,"j":["worried_face","face","concern","nervous",":("],"k":[32,52],"o":1},"slightly_frowning_face":{"subcategory":"face-concerned","a":"Slightly Frowning Face","b":"1F641","d":true,"e":true,"f":true,"h":true,"j":["slightly_frowning_face","face","frowning","disappointed","sad","upset"],"k":[33,28],"o":1},"white_frowning_face":{"subcategory":"face-concerned","a":"Frowning Face","b":"2639-FE0F","c":"2639","d":true,"e":true,"f":true,"h":true,"j":["frowning_face","face","sad","upset","frown"],"k":[57,34],"o":0},"open_mouth":{"subcategory":"face-concerned","a":"Face with Open Mouth","b":"1F62E","d":true,"e":true,"f":true,"h":true,"j":["face_with_open_mouth","face","surprise","impressed","wow","whoa",":O"],"k":[33,7],"l":[":o",":-o",":O",":-O"],"o":1},"hushed":{"subcategory":"face-concerned","a":"Hushed Face","b":"1F62F","d":true,"e":true,"f":true,"h":true,"j":["hushed_face","face","woo","shh"],"k":[33,8],"o":1},"astonished":{"subcategory":"face-concerned","a":"Astonished Face","b":"1F632","d":true,"e":true,"f":true,"h":true,"j":["astonished_face","face","xox","surprised","poisoned"],"k":[33,11],"o":0},"flushed":{"subcategory":"face-concerned","a":"Flushed Face","b":"1F633","d":true,"e":true,"f":true,"h":true,"j":["flushed_face","face","blush","shy","flattered"],"k":[33,12],"o":0},"pleading_face":{"subcategory":"face-concerned","a":"Face with Pleading Eyes","b":"1F97A","d":true,"e":true,"f":true,"h":true,"j":["pleading_face","face","begging","mercy","cry","tears","sad","grievance"],"k":[44,14],"o":11},"face_holding_back_tears":{"subcategory":"face-concerned","a":"Face Holding Back Tears","b":"1F979","d":true,"e":true,"f":true,"h":true,"j":["face holding back tears","touched","gratitude","cry"],"k":[44,13],"o":14},"frowning":{"subcategory":"face-concerned","a":"Frowning Face with Open Mouth","b":"1F626","d":true,"e":true,"f":true,"h":true,"j":["frowning_face_with_open_mouth","face","aw","what"],"k":[32,59],"o":1},"anguished":{"subcategory":"face-concerned","a":"Anguished Face","b":"1F627","d":true,"e":true,"f":true,"h":true,"j":["anguished_face","face","stunned","nervous"],"k":[32,60],"l":["D:"],"o":1},"fearful":{"subcategory":"face-concerned","a":"Fearful Face","b":"1F628","d":true,"e":true,"f":true,"h":true,"j":["fearful_face","face","scared","terrified","nervous"],"k":[33,0],"o":0},"cold_sweat":{"subcategory":"face-concerned","a":"Face with Open Mouth and Cold Sweat","b":"1F630","d":true,"e":true,"f":true,"h":true,"j":["anxious_face_with_sweat","face","nervous","sweat"],"k":[33,9],"o":0},"disappointed_relieved":{"subcategory":"face-concerned","a":"Disappointed but Relieved Face","b":"1F625","d":true,"e":true,"f":true,"h":true,"j":["sad_but_relieved_face","face","phew","sweat","nervous"],"k":[32,58],"o":0},"cry":{"subcategory":"face-concerned","a":"Crying Face","b":"1F622","d":true,"e":true,"f":true,"h":true,"j":["crying_face","face","tears","sad","depressed","upset",":'("],"k":[32,55],"l":[":'("],"m":":'(","o":0},"sob":{"subcategory":"face-concerned","a":"Loudly Crying Face","b":"1F62D","d":true,"e":true,"f":true,"h":true,"j":["loudly_crying_face","sobbing","face","cry","tears","sad","upset","depressed"],"k":[33,5],"m":":'(","o":0},"scream":{"subcategory":"face-concerned","a":"Face Screaming in Fear","b":"1F631","d":true,"e":true,"f":true,"h":true,"j":["face_screaming_in_fear","face","munch","scared","omg"],"k":[33,10],"o":0},"confounded":{"subcategory":"face-concerned","a":"Confounded Face","b":"1F616","d":true,"e":true,"f":true,"h":true,"j":["confounded_face","face","confused","sick","unwell","oops",":S"],"k":[32,43],"o":0},"persevere":{"subcategory":"face-concerned","a":"Persevering Face","b":"1F623","d":true,"e":true,"f":true,"h":true,"j":["persevering_face","face","sick","no","upset","oops"],"k":[32,56],"o":0},"disappointed":{"subcategory":"face-concerned","a":"Disappointed Face","b":"1F61E","d":true,"e":true,"f":true,"h":true,"j":["disappointed_face","face","sad","upset","depressed",":("],"k":[32,51],"l":["):",":(",":-("],"m":":(","o":0},"sweat":{"subcategory":"face-concerned","a":"Face with Cold Sweat","b":"1F613","d":true,"e":true,"f":true,"h":true,"j":["downcast_face_with_sweat","face","hot","sad","tired","exercise"],"k":[32,40],"o":0},"weary":{"subcategory":"face-concerned","a":"Weary Face","b":"1F629","d":true,"e":true,"f":true,"h":true,"j":["weary_face","face","tired","sleepy","sad","frustrated","upset"],"k":[33,1],"o":0},"tired_face":{"subcategory":"face-concerned","a":"Tired Face","b":"1F62B","d":true,"e":true,"f":true,"h":true,"j":["tired_face","sick","whine","upset","frustrated"],"k":[33,3],"o":0},"yawning_face":{"subcategory":"face-concerned","a":"Yawning Face","b":"1F971","d":true,"e":true,"f":true,"h":true,"j":["yawning_face","tired","sleepy"],"k":[44,0],"o":12},"triumph":{"subcategory":"face-negative","a":"Face with Look of Triumph","b":"1F624","d":true,"e":true,"f":true,"h":true,"j":["face_with_steam_from_nose","face","gas","phew","proud","pride","triumph"],"k":[32,57],"o":0},"rage":{"subcategory":"face-negative","a":"Pouting Face","b":"1F621","d":true,"e":true,"f":true,"h":true,"j":["pouting_face","angry","mad","hate","despise"],"k":[32,54],"o":0},"angry":{"subcategory":"face-negative","a":"Angry Face","b":"1F620","d":true,"e":true,"f":true,"h":true,"j":["angry_face","mad","face","annoyed","frustrated"],"k":[32,53],"l":[">:(",">:-("],"o":0},"face_with_symbols_on_mouth":{"subcategory":"face-negative","a":"Serious Face with Symbols Covering Mouth","b":"1F92C","d":true,"e":true,"f":true,"h":true,"j":["face_with_symbols_on_mouth","face","swearing","cursing","cussing","profanity","expletive"],"k":[40,43],"n":["serious_face_with_symbols_covering_mouth"],"o":5},"smiling_imp":{"subcategory":"face-negative","a":"Smiling Face with Horns","b":"1F608","d":true,"e":true,"f":true,"h":true,"j":["smiling_face_with_horns","devil","horns"],"k":[32,29],"o":1},"imp":{"subcategory":"face-negative","a":"Imp","b":"1F47F","d":true,"e":true,"f":true,"h":true,"j":["angry_face_with_horns","devil","angry","horns"],"k":[25,9],"o":0},"skull":{"subcategory":"face-negative","a":"Skull","b":"1F480","d":true,"e":true,"f":true,"h":true,"j":["skull","dead","skeleton","creepy","death","dead"],"k":[25,10],"o":0},"skull_and_crossbones":{"subcategory":"face-negative","a":"Skull and Crossbones","b":"2620-FE0F","c":"2620","d":true,"e":true,"f":true,"h":true,"j":["skull_and_crossbones","poison","danger","deadly","scary","death","pirate","evil"],"k":[57,26],"o":1},"hankey":{"subcategory":"face-costume","a":"Pile of Poo","b":"1F4A9","d":true,"e":true,"f":true,"h":true,"j":["pile_of_poo","hankey","shitface","fail","turd","shit"],"k":[27,57],"n":["poop","shit"],"o":0},"clown_face":{"subcategory":"face-costume","a":"Clown Face","b":"1F921","d":true,"e":true,"f":true,"h":true,"j":["clown_face","face"],"k":[40,15],"o":3},"japanese_ogre":{"subcategory":"face-costume","a":"Japanese Ogre","b":"1F479","d":true,"e":true,"f":true,"h":true,"j":["ogre","monster","red","mask","halloween","scary","creepy","devil","demon","japanese_ogre"],"k":[24,59],"o":0},"japanese_goblin":{"subcategory":"face-costume","a":"Japanese Goblin","b":"1F47A","d":true,"e":true,"f":true,"h":true,"j":["goblin","red","evil","mask","monster","scary","creepy","japanese_goblin"],"k":[24,60],"o":0},"ghost":{"subcategory":"face-costume","a":"Ghost","b":"1F47B","d":true,"e":true,"f":true,"h":true,"j":["ghost","halloween","spooky","scary"],"k":[25,0],"o":0},"alien":{"subcategory":"face-costume","a":"Extraterrestrial Alien","b":"1F47D","d":true,"e":true,"f":true,"h":true,"j":["alien","UFO","paul","weird","outer_space"],"k":[25,7],"o":0},"space_invader":{"subcategory":"face-costume","a":"Alien Monster","b":"1F47E","d":true,"e":true,"f":true,"h":true,"j":["alien_monster","game","arcade","play"],"k":[25,8],"o":0},"robot_face":{"subcategory":"face-costume","a":"Robot Face","b":"1F916","d":true,"e":true,"f":true,"h":true,"j":["robot","computer","machine","bot"],"k":[39,5],"o":1},"smiley_cat":{"subcategory":"cat-face","a":"Smiling Cat Face with Open Mouth","b":"1F63A","d":true,"e":true,"f":true,"h":true,"j":["grinning_cat","animal","cats","happy","smile"],"k":[33,21],"o":0},"smile_cat":{"subcategory":"cat-face","a":"Grinning Cat Face with Smiling Eyes","b":"1F638","d":true,"e":true,"f":true,"h":true,"j":["grinning_cat_with_smiling_eyes","animal","cats","smile"],"k":[33,19],"o":0},"joy_cat":{"subcategory":"cat-face","a":"Cat Face with Tears of Joy","b":"1F639","d":true,"e":true,"f":true,"h":true,"j":["cat_with_tears_of_joy","animal","cats","haha","happy","tears"],"k":[33,20],"o":0},"heart_eyes_cat":{"subcategory":"cat-face","a":"Smiling Cat Face with Heart-Shaped Eyes","b":"1F63B","d":true,"e":true,"f":true,"h":true,"j":["smiling_cat_with_heart_eyes","animal","love","like","affection","cats","valentines","heart"],"k":[33,22],"o":0},"smirk_cat":{"subcategory":"cat-face","a":"Cat Face with Wry Smile","b":"1F63C","d":true,"e":true,"f":true,"h":true,"j":["cat_with_wry_smile","animal","cats","smirk"],"k":[33,23],"o":0},"kissing_cat":{"subcategory":"cat-face","a":"Kissing Cat Face with Closed Eyes","b":"1F63D","d":true,"e":true,"f":true,"h":true,"j":["kissing_cat","animal","cats","kiss"],"k":[33,24],"o":0},"scream_cat":{"subcategory":"cat-face","a":"Weary Cat Face","b":"1F640","d":true,"e":true,"f":true,"h":true,"j":["weary_cat","animal","cats","munch","scared","scream"],"k":[33,27],"o":0},"crying_cat_face":{"subcategory":"cat-face","a":"Crying Cat Face","b":"1F63F","d":true,"e":true,"f":true,"h":true,"j":["crying_cat","animal","tears","weep","sad","cats","upset","cry"],"k":[33,26],"o":0},"pouting_cat":{"subcategory":"cat-face","a":"Pouting Cat Face","b":"1F63E","d":true,"e":true,"f":true,"h":true,"j":["pouting_cat","animal","cats"],"k":[33,25],"o":0},"see_no_evil":{"subcategory":"monkey-face","a":"See-No-Evil Monkey","b":"1F648","d":true,"e":true,"f":true,"h":true,"j":["see_no_evil_monkey","monkey","animal","nature","haha"],"k":[34,25],"o":0},"hear_no_evil":{"subcategory":"monkey-face","a":"Hear-No-Evil Monkey","b":"1F649","d":true,"e":true,"f":true,"h":true,"j":["hear_no_evil_monkey","animal","monkey","nature"],"k":[34,26],"o":0},"speak_no_evil":{"subcategory":"monkey-face","a":"Speak-No-Evil Monkey","b":"1F64A","d":true,"e":true,"f":true,"h":true,"j":["speak_no_evil_monkey","monkey","animal","nature","omg"],"k":[34,27],"o":0},"love_letter":{"subcategory":"heart","a":"Love Letter","b":"1F48C","d":true,"e":true,"f":true,"h":true,"j":["love_letter","email","like","affection","envelope","valentines"],"k":[26,39],"o":0},"cupid":{"subcategory":"heart","a":"Heart with Arrow","b":"1F498","d":true,"e":true,"f":true,"h":true,"j":["heart_with_arrow","love","like","heart","affection","valentines"],"k":[27,40],"o":0},"gift_heart":{"subcategory":"heart","a":"Heart with Ribbon","b":"1F49D","d":true,"e":true,"f":true,"h":true,"j":["heart_with_ribbon","love","valentines"],"k":[27,45],"o":0},"sparkling_heart":{"subcategory":"heart","a":"Sparkling Heart","b":"1F496","d":true,"e":true,"f":true,"h":true,"j":["sparkling_heart","love","like","affection","valentines"],"k":[27,38],"o":0},"heartpulse":{"subcategory":"heart","a":"Growing Heart","b":"1F497","d":true,"e":true,"f":true,"h":true,"j":["growing_heart","like","love","affection","valentines","pink"],"k":[27,39],"o":0},"heartbeat":{"subcategory":"heart","a":"Beating Heart","b":"1F493","d":true,"e":true,"f":true,"h":true,"j":["beating_heart","love","like","affection","valentines","pink","heart"],"k":[27,35],"o":0},"revolving_hearts":{"subcategory":"heart","a":"Revolving Hearts","b":"1F49E","d":true,"e":true,"f":true,"h":true,"j":["revolving_hearts","love","like","affection","valentines"],"k":[27,46],"o":0},"two_hearts":{"subcategory":"heart","a":"Two Hearts","b":"1F495","d":true,"e":true,"f":true,"h":true,"j":["two_hearts","love","like","affection","valentines","heart"],"k":[27,37],"o":0},"heart_decoration":{"subcategory":"heart","a":"Heart Decoration","b":"1F49F","d":true,"e":true,"f":true,"h":true,"j":["heart_decoration","purple-square","love","like"],"k":[27,47],"o":0},"heavy_heart_exclamation_mark_ornament":{"subcategory":"heart","a":"Heart Exclamation","b":"2763-FE0F","c":"2763","d":true,"e":true,"f":true,"h":true,"j":["heart_exclamation","decoration","love"],"k":[59,38],"o":1},"broken_heart":{"subcategory":"heart","a":"Broken Heart","b":"1F494","d":true,"e":true,"f":true,"h":true,"j":["broken_heart","sad","sorry","break","heart","heartbreak"],"k":[27,36],"l":["</3"],"m":"</3","o":0},"heart_on_fire":{"subcategory":"heart","a":"Heart on Fire","b":"2764-FE0F-200D-1F525","c":"2764-200D-1F525","d":true,"e":true,"f":true,"h":true,"j":["heart on fire","passionate","enthusiastic"],"k":[59,39],"o":13},"mending_heart":{"subcategory":"heart","a":"Mending Heart","b":"2764-FE0F-200D-1FA79","c":"2764-200D-1FA79","d":true,"e":true,"f":true,"h":true,"j":["mending heart","broken heart","bandage","wounded"],"k":[59,40],"o":13},"heart":{"subcategory":"heart","a":"Heavy Black Heart","b":"2764-FE0F","c":"2764","d":true,"e":true,"f":true,"h":true,"j":["red_heart","love","like","valentines"],"k":[59,41],"l":["<3"],"m":"<3","o":0},"pink_heart":{"subcategory":"heart","a":"Pink Heart","b":"1FA77","d":true,"e":true,"f":false,"h":false,"j":["pink heart","valentines"],"k":[53,55],"o":15},"orange_heart":{"subcategory":"heart","a":"Orange Heart","b":"1F9E1","d":true,"e":true,"f":true,"h":true,"j":["orange_heart","love","like","affection","valentines"],"k":[53,17],"o":5},"yellow_heart":{"subcategory":"heart","a":"Yellow Heart","b":"1F49B","d":true,"e":true,"f":true,"h":true,"j":["yellow_heart","love","like","affection","valentines"],"k":[27,43],"m":"<3","o":0},"green_heart":{"subcategory":"heart","a":"Green Heart","b":"1F49A","d":true,"e":true,"f":true,"h":true,"j":["green_heart","love","like","affection","valentines"],"k":[27,42],"m":"<3","o":0},"blue_heart":{"subcategory":"heart","a":"Blue Heart","b":"1F499","d":true,"e":true,"f":true,"h":true,"j":["blue_heart","love","like","affection","valentines"],"k":[27,41],"m":"<3","o":0},"light_blue_heart":{"subcategory":"heart","a":"Light Blue Heart","b":"1FA75","d":true,"e":true,"f":false,"h":false,"j":["light blue heart","ice","baby blue"],"k":[53,53],"o":15},"purple_heart":{"subcategory":"heart","a":"Purple Heart","b":"1F49C","d":true,"e":true,"f":true,"h":true,"j":["purple_heart","love","like","affection","valentines"],"k":[27,44],"m":"<3","o":0},"brown_heart":{"subcategory":"heart","a":"Brown Heart","b":"1F90E","d":true,"e":true,"f":true,"h":true,"j":["brown_heart","coffee"],"k":[38,53],"o":12},"black_heart":{"subcategory":"heart","a":"Black Heart","b":"1F5A4","d":true,"e":true,"f":true,"h":true,"j":["black_heart","evil"],"k":[31,56],"o":3},"grey_heart":{"subcategory":"heart","a":"Grey Heart","b":"1FA76","d":true,"e":true,"f":false,"h":false,"j":["grey heart","silver","monochrome"],"k":[53,54],"o":15},"white_heart":{"subcategory":"heart","a":"White Heart","b":"1F90D","d":true,"e":true,"f":true,"h":true,"j":["white_heart","pure"],"k":[38,52],"o":12},"kiss":{"subcategory":"emotion","a":"Kiss Mark","b":"1F48B","d":true,"e":true,"f":true,"h":true,"j":["kiss_mark","face","lips","love","like","affection","valentines"],"k":[26,38],"o":0},"anger":{"subcategory":"emotion","a":"Anger Symbol","b":"1F4A2","d":true,"e":true,"f":true,"h":true,"j":["anger_symbol","angry","mad"],"k":[27,50],"o":0},"boom":{"subcategory":"emotion","a":"Collision Symbol","b":"1F4A5","d":true,"e":true,"f":true,"h":true,"j":["collision","bomb","explode","explosion","blown"],"k":[27,53],"n":["collision"],"o":0},"dizzy":{"subcategory":"emotion","a":"Dizzy Symbol","b":"1F4AB","d":true,"e":true,"f":true,"h":true,"j":["dizzy","star","sparkle","shoot","magic"],"k":[28,3],"o":0},"sweat_drops":{"subcategory":"emotion","a":"Splashing Sweat Symbol","b":"1F4A6","d":true,"e":true,"f":true,"h":true,"j":["sweat_droplets","water","drip","oops"],"k":[27,54],"o":0},"dash":{"subcategory":"emotion","a":"Dash Symbol","b":"1F4A8","d":true,"e":true,"f":true,"h":true,"j":["dashing_away","wind","air","fast","shoo","fart","smoke","puff"],"k":[27,56],"o":0},"hole":{"subcategory":"emotion","a":"Hole","b":"1F573-FE0F","c":"1F573","d":true,"e":true,"f":true,"h":true,"j":["hole","embarrassing"],"k":[30,59],"o":0},"speech_balloon":{"subcategory":"emotion","a":"Speech Balloon","b":"1F4AC","d":true,"e":true,"f":true,"h":true,"j":["speech_balloon","bubble","words","message","talk","chatting"],"k":[28,4],"o":0},"eye-in-speech-bubble":{"subcategory":"emotion","a":"Eye in Speech Bubble","b":"1F441-FE0F-200D-1F5E8-FE0F","d":true,"e":true,"f":true,"h":false,"j":["eye_in_speech_bubble","info"],"k":[11,54],"o":2},"left_speech_bubble":{"subcategory":"emotion","a":"Left Speech Bubble","b":"1F5E8-FE0F","c":"1F5E8","d":true,"e":true,"f":true,"h":true,"j":["left_speech_bubble","words","message","talk","chatting"],"k":[32,12],"o":2},"right_anger_bubble":{"subcategory":"emotion","a":"Right Anger Bubble","b":"1F5EF-FE0F","c":"1F5EF","d":true,"e":true,"f":true,"h":true,"j":["right_anger_bubble","caption","speech","thinking","mad"],"k":[32,13],"o":0},"thought_balloon":{"subcategory":"emotion","a":"Thought Balloon","b":"1F4AD","d":true,"e":true,"f":true,"h":true,"j":["thought_balloon","bubble","cloud","speech","thinking","dream"],"k":[28,5],"o":1},"zzz":{"subcategory":"emotion","a":"Sleeping Symbol","b":"1F4A4","d":true,"e":true,"f":true,"h":true,"j":["zzz","sleepy","tired","dream"],"k":[27,52],"o":0},"wave":{"subcategory":"hand-fingers-open","skin_variations":{"1F3FB":{"unified":"1F44B-1F3FB","non_qualified":null,"image":"1f44b-1f3fb.png","sheet_x":12,"sheet_y":40,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F44B-1F3FC","non_qualified":null,"image":"1f44b-1f3fc.png","sheet_x":12,"sheet_y":41,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F44B-1F3FD","non_qualified":null,"image":"1f44b-1f3fd.png","sheet_x":12,"sheet_y":42,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F44B-1F3FE","non_qualified":null,"image":"1f44b-1f3fe.png","sheet_x":12,"sheet_y":43,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F44B-1F3FF","non_qualified":null,"image":"1f44b-1f3ff.png","sheet_x":12,"sheet_y":44,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Waving Hand Sign","b":"1F44B","d":true,"e":true,"f":true,"h":true,"j":["waving_hand","wave","hands","gesture","goodbye","solong","farewell","hello","hi","palm"],"k":[12,39],"o":0},"raised_back_of_hand":{"subcategory":"hand-fingers-open","skin_variations":{"1F3FB":{"unified":"1F91A-1F3FB","non_qualified":null,"image":"1f91a-1f3fb.png","sheet_x":39,"sheet_y":20,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F91A-1F3FC","non_qualified":null,"image":"1f91a-1f3fc.png","sheet_x":39,"sheet_y":21,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F91A-1F3FD","non_qualified":null,"image":"1f91a-1f3fd.png","sheet_x":39,"sheet_y":22,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F91A-1F3FE","non_qualified":null,"image":"1f91a-1f3fe.png","sheet_x":39,"sheet_y":23,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F91A-1F3FF","non_qualified":null,"image":"1f91a-1f3ff.png","sheet_x":39,"sheet_y":24,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Raised Back of Hand","b":"1F91A","d":true,"e":true,"f":true,"h":true,"j":["raised_back_of_hand","fingers","raised","backhand"],"k":[39,19],"o":3},"raised_hand_with_fingers_splayed":{"subcategory":"hand-fingers-open","skin_variations":{"1F3FB":{"unified":"1F590-1F3FB","non_qualified":null,"image":"1f590-1f3fb.png","sheet_x":31,"sheet_y":39,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F590-1F3FC","non_qualified":null,"image":"1f590-1f3fc.png","sheet_x":31,"sheet_y":40,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F590-1F3FD","non_qualified":null,"image":"1f590-1f3fd.png","sheet_x":31,"sheet_y":41,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F590-1F3FE","non_qualified":null,"image":"1f590-1f3fe.png","sheet_x":31,"sheet_y":42,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F590-1F3FF","non_qualified":null,"image":"1f590-1f3ff.png","sheet_x":31,"sheet_y":43,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Hand with Fingers Splayed","b":"1F590-FE0F","c":"1F590","d":true,"e":true,"f":true,"h":true,"j":["hand_with_fingers_splayed","hand","fingers","palm"],"k":[31,38],"o":0},"hand":{"subcategory":"hand-fingers-open","skin_variations":{"1F3FB":{"unified":"270B-1F3FB","non_qualified":null,"image":"270b-1f3fb.png","sheet_x":59,"sheet_y":4,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"270B-1F3FC","non_qualified":null,"image":"270b-1f3fc.png","sheet_x":59,"sheet_y":5,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"270B-1F3FD","non_qualified":null,"image":"270b-1f3fd.png","sheet_x":59,"sheet_y":6,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"270B-1F3FE","non_qualified":null,"image":"270b-1f3fe.png","sheet_x":59,"sheet_y":7,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"270B-1F3FF","non_qualified":null,"image":"270b-1f3ff.png","sheet_x":59,"sheet_y":8,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Raised Hand","b":"270B","d":true,"e":true,"f":true,"h":true,"j":["raised_hand","fingers","stop","highfive","palm","ban"],"k":[59,3],"n":["raised_hand"],"o":0},"spock-hand":{"subcategory":"hand-fingers-open","skin_variations":{"1F3FB":{"unified":"1F596-1F3FB","non_qualified":null,"image":"1f596-1f3fb.png","sheet_x":31,"sheet_y":51,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F596-1F3FC","non_qualified":null,"image":"1f596-1f3fc.png","sheet_x":31,"sheet_y":52,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F596-1F3FD","non_qualified":null,"image":"1f596-1f3fd.png","sheet_x":31,"sheet_y":53,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F596-1F3FE","non_qualified":null,"image":"1f596-1f3fe.png","sheet_x":31,"sheet_y":54,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F596-1F3FF","non_qualified":null,"image":"1f596-1f3ff.png","sheet_x":31,"sheet_y":55,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Raised Hand with Part Between Middle and Ring Fingers","b":"1F596","d":true,"e":true,"f":true,"h":true,"j":["vulcan_salute","hand","fingers","spock","star trek"],"k":[31,50],"o":1},"rightwards_hand":{"subcategory":"hand-fingers-open","skin_variations":{"1F3FB":{"unified":"1FAF1-1F3FB","non_qualified":null,"image":"1faf1-1f3fb.png","sheet_x":55,"sheet_y":46,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1FAF1-1F3FC","non_qualified":null,"image":"1faf1-1f3fc.png","sheet_x":55,"sheet_y":47,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1FAF1-1F3FD","non_qualified":null,"image":"1faf1-1f3fd.png","sheet_x":55,"sheet_y":48,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1FAF1-1F3FE","non_qualified":null,"image":"1faf1-1f3fe.png","sheet_x":55,"sheet_y":49,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1FAF1-1F3FF","non_qualified":null,"image":"1faf1-1f3ff.png","sheet_x":55,"sheet_y":50,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Rightwards Hand","b":"1FAF1","d":true,"e":true,"f":true,"h":true,"j":["rightwards hand","palm","offer"],"k":[55,45],"o":14},"leftwards_hand":{"subcategory":"hand-fingers-open","skin_variations":{"1F3FB":{"unified":"1FAF2-1F3FB","non_qualified":null,"image":"1faf2-1f3fb.png","sheet_x":55,"sheet_y":52,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1FAF2-1F3FC","non_qualified":null,"image":"1faf2-1f3fc.png","sheet_x":55,"sheet_y":53,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1FAF2-1F3FD","non_qualified":null,"image":"1faf2-1f3fd.png","sheet_x":55,"sheet_y":54,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1FAF2-1F3FE","non_qualified":null,"image":"1faf2-1f3fe.png","sheet_x":55,"sheet_y":55,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1FAF2-1F3FF","non_qualified":null,"image":"1faf2-1f3ff.png","sheet_x":55,"sheet_y":56,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Leftwards Hand","b":"1FAF2","d":true,"e":true,"f":true,"h":true,"j":["leftwards hand","palm","offer"],"k":[55,51],"o":14},"palm_down_hand":{"subcategory":"hand-fingers-open","skin_variations":{"1F3FB":{"unified":"1FAF3-1F3FB","non_qualified":null,"image":"1faf3-1f3fb.png","sheet_x":55,"sheet_y":58,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1FAF3-1F3FC","non_qualified":null,"image":"1faf3-1f3fc.png","sheet_x":55,"sheet_y":59,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1FAF3-1F3FD","non_qualified":null,"image":"1faf3-1f3fd.png","sheet_x":55,"sheet_y":60,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1FAF3-1F3FE","non_qualified":null,"image":"1faf3-1f3fe.png","sheet_x":56,"sheet_y":0,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1FAF3-1F3FF","non_qualified":null,"image":"1faf3-1f3ff.png","sheet_x":56,"sheet_y":1,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Palm Down Hand","b":"1FAF3","d":true,"e":true,"f":true,"h":true,"j":["palm down hand","palm","drop"],"k":[55,57],"o":14},"palm_up_hand":{"subcategory":"hand-fingers-open","skin_variations":{"1F3FB":{"unified":"1FAF4-1F3FB","non_qualified":null,"image":"1faf4-1f3fb.png","sheet_x":56,"sheet_y":3,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1FAF4-1F3FC","non_qualified":null,"image":"1faf4-1f3fc.png","sheet_x":56,"sheet_y":4,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1FAF4-1F3FD","non_qualified":null,"image":"1faf4-1f3fd.png","sheet_x":56,"sheet_y":5,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1FAF4-1F3FE","non_qualified":null,"image":"1faf4-1f3fe.png","sheet_x":56,"sheet_y":6,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1FAF4-1F3FF","non_qualified":null,"image":"1faf4-1f3ff.png","sheet_x":56,"sheet_y":7,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Palm Up Hand","b":"1FAF4","d":true,"e":true,"f":true,"h":true,"j":["palm up hand","lift","offer","demand"],"k":[56,2],"o":14},"leftwards_pushing_hand":{"subcategory":"hand-fingers-open","skin_variations":{"1F3FB":{"unified":"1FAF7-1F3FB","non_qualified":null,"image":"1faf7-1f3fb.png","sheet_x":56,"sheet_y":21,"added_in":"15.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":false,"has_img_facebook":false},"1F3FC":{"unified":"1FAF7-1F3FC","non_qualified":null,"image":"1faf7-1f3fc.png","sheet_x":56,"sheet_y":22,"added_in":"15.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":false,"has_img_facebook":false},"1F3FD":{"unified":"1FAF7-1F3FD","non_qualified":null,"image":"1faf7-1f3fd.png","sheet_x":56,"sheet_y":23,"added_in":"15.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":false,"has_img_facebook":false},"1F3FE":{"unified":"1FAF7-1F3FE","non_qualified":null,"image":"1faf7-1f3fe.png","sheet_x":56,"sheet_y":24,"added_in":"15.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":false,"has_img_facebook":false},"1F3FF":{"unified":"1FAF7-1F3FF","non_qualified":null,"image":"1faf7-1f3ff.png","sheet_x":56,"sheet_y":25,"added_in":"15.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":false,"has_img_facebook":false}},"a":"Leftwards Pushing Hand","b":"1FAF7","d":true,"e":true,"f":false,"h":false,"j":["leftwards pushing hand","highfive","pressing","stop"],"k":[56,20],"o":15},"rightwards_pushing_hand":{"subcategory":"hand-fingers-open","skin_variations":{"1F3FB":{"unified":"1FAF8-1F3FB","non_qualified":null,"image":"1faf8-1f3fb.png","sheet_x":56,"sheet_y":27,"added_in":"15.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":false,"has_img_facebook":false},"1F3FC":{"unified":"1FAF8-1F3FC","non_qualified":null,"image":"1faf8-1f3fc.png","sheet_x":56,"sheet_y":28,"added_in":"15.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":false,"has_img_facebook":false},"1F3FD":{"unified":"1FAF8-1F3FD","non_qualified":null,"image":"1faf8-1f3fd.png","sheet_x":56,"sheet_y":29,"added_in":"15.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":false,"has_img_facebook":false},"1F3FE":{"unified":"1FAF8-1F3FE","non_qualified":null,"image":"1faf8-1f3fe.png","sheet_x":56,"sheet_y":30,"added_in":"15.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":false,"has_img_facebook":false},"1F3FF":{"unified":"1FAF8-1F3FF","non_qualified":null,"image":"1faf8-1f3ff.png","sheet_x":56,"sheet_y":31,"added_in":"15.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":false,"has_img_facebook":false}},"a":"Rightwards Pushing Hand","b":"1FAF8","d":true,"e":true,"f":false,"h":false,"j":["rightwards pushing hand","highfive","pressing","stop"],"k":[56,26],"o":15},"ok_hand":{"subcategory":"hand-fingers-partial","skin_variations":{"1F3FB":{"unified":"1F44C-1F3FB","non_qualified":null,"image":"1f44c-1f3fb.png","sheet_x":12,"sheet_y":46,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F44C-1F3FC","non_qualified":null,"image":"1f44c-1f3fc.png","sheet_x":12,"sheet_y":47,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F44C-1F3FD","non_qualified":null,"image":"1f44c-1f3fd.png","sheet_x":12,"sheet_y":48,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F44C-1F3FE","non_qualified":null,"image":"1f44c-1f3fe.png","sheet_x":12,"sheet_y":49,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F44C-1F3FF","non_qualified":null,"image":"1f44c-1f3ff.png","sheet_x":12,"sheet_y":50,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Ok Hand Sign","b":"1F44C","d":true,"e":true,"f":true,"h":true,"j":["ok_hand","fingers","limbs","perfect","ok","okay"],"k":[12,45],"o":0},"pinched_fingers":{"subcategory":"hand-fingers-partial","skin_variations":{"1F3FB":{"unified":"1F90C-1F3FB","non_qualified":null,"image":"1f90c-1f3fb.png","sheet_x":38,"sheet_y":47,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F90C-1F3FC","non_qualified":null,"image":"1f90c-1f3fc.png","sheet_x":38,"sheet_y":48,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F90C-1F3FD","non_qualified":null,"image":"1f90c-1f3fd.png","sheet_x":38,"sheet_y":49,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F90C-1F3FE","non_qualified":null,"image":"1f90c-1f3fe.png","sheet_x":38,"sheet_y":50,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F90C-1F3FF","non_qualified":null,"image":"1f90c-1f3ff.png","sheet_x":38,"sheet_y":51,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Pinched Fingers","b":"1F90C","d":true,"e":true,"f":true,"h":true,"j":["pinched fingers","size","tiny","small"],"k":[38,46],"o":13},"pinching_hand":{"subcategory":"hand-fingers-partial","skin_variations":{"1F3FB":{"unified":"1F90F-1F3FB","non_qualified":null,"image":"1f90f-1f3fb.png","sheet_x":38,"sheet_y":55,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F90F-1F3FC","non_qualified":null,"image":"1f90f-1f3fc.png","sheet_x":38,"sheet_y":56,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F90F-1F3FD","non_qualified":null,"image":"1f90f-1f3fd.png","sheet_x":38,"sheet_y":57,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F90F-1F3FE","non_qualified":null,"image":"1f90f-1f3fe.png","sheet_x":38,"sheet_y":58,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F90F-1F3FF","non_qualified":null,"image":"1f90f-1f3ff.png","sheet_x":38,"sheet_y":59,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Pinching Hand","b":"1F90F","d":true,"e":true,"f":true,"h":true,"j":["pinching_hand","tiny","small","size"],"k":[38,54],"o":12},"v":{"subcategory":"hand-fingers-partial","skin_variations":{"1F3FB":{"unified":"270C-1F3FB","non_qualified":null,"image":"270c-1f3fb.png","sheet_x":59,"sheet_y":10,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"270C-1F3FC","non_qualified":null,"image":"270c-1f3fc.png","sheet_x":59,"sheet_y":11,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"270C-1F3FD","non_qualified":null,"image":"270c-1f3fd.png","sheet_x":59,"sheet_y":12,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"270C-1F3FE","non_qualified":null,"image":"270c-1f3fe.png","sheet_x":59,"sheet_y":13,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"270C-1F3FF","non_qualified":null,"image":"270c-1f3ff.png","sheet_x":59,"sheet_y":14,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Victory Hand","b":"270C-FE0F","c":"270C","d":true,"e":true,"f":true,"h":true,"j":["victory_hand","fingers","ohyeah","hand","peace","victory","two"],"k":[59,9],"o":0},"crossed_fingers":{"subcategory":"hand-fingers-partial","skin_variations":{"1F3FB":{"unified":"1F91E-1F3FB","non_qualified":null,"image":"1f91e-1f3fb.png","sheet_x":40,"sheet_y":3,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F91E-1F3FC","non_qualified":null,"image":"1f91e-1f3fc.png","sheet_x":40,"sheet_y":4,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F91E-1F3FD","non_qualified":null,"image":"1f91e-1f3fd.png","sheet_x":40,"sheet_y":5,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F91E-1F3FE","non_qualified":null,"image":"1f91e-1f3fe.png","sheet_x":40,"sheet_y":6,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F91E-1F3FF","non_qualified":null,"image":"1f91e-1f3ff.png","sheet_x":40,"sheet_y":7,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Hand with Index and Middle Fingers Crossed","b":"1F91E","d":true,"e":true,"f":true,"h":true,"j":["crossed_fingers","good","lucky"],"k":[40,2],"n":["hand_with_index_and_middle_fingers_crossed"],"o":3},"hand_with_index_finger_and_thumb_crossed":{"subcategory":"hand-fingers-partial","skin_variations":{"1F3FB":{"unified":"1FAF0-1F3FB","non_qualified":null,"image":"1faf0-1f3fb.png","sheet_x":55,"sheet_y":40,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1FAF0-1F3FC","non_qualified":null,"image":"1faf0-1f3fc.png","sheet_x":55,"sheet_y":41,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1FAF0-1F3FD","non_qualified":null,"image":"1faf0-1f3fd.png","sheet_x":55,"sheet_y":42,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1FAF0-1F3FE","non_qualified":null,"image":"1faf0-1f3fe.png","sheet_x":55,"sheet_y":43,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1FAF0-1F3FF","non_qualified":null,"image":"1faf0-1f3ff.png","sheet_x":55,"sheet_y":44,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Hand with Index Finger and Thumb Crossed","b":"1FAF0","d":true,"e":true,"f":true,"h":true,"j":["hand with index finger and thumb crossed","heart","love","money","expensive"],"k":[55,39],"o":14},"i_love_you_hand_sign":{"subcategory":"hand-fingers-partial","skin_variations":{"1F3FB":{"unified":"1F91F-1F3FB","non_qualified":null,"image":"1f91f-1f3fb.png","sheet_x":40,"sheet_y":9,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F91F-1F3FC","non_qualified":null,"image":"1f91f-1f3fc.png","sheet_x":40,"sheet_y":10,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F91F-1F3FD","non_qualified":null,"image":"1f91f-1f3fd.png","sheet_x":40,"sheet_y":11,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F91F-1F3FE","non_qualified":null,"image":"1f91f-1f3fe.png","sheet_x":40,"sheet_y":12,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F91F-1F3FF","non_qualified":null,"image":"1f91f-1f3ff.png","sheet_x":40,"sheet_y":13,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"I Love You Hand Sign","b":"1F91F","d":true,"e":true,"f":true,"h":true,"j":["love_you_gesture","hand","fingers","gesture"],"k":[40,8],"o":5},"the_horns":{"subcategory":"hand-fingers-partial","skin_variations":{"1F3FB":{"unified":"1F918-1F3FB","non_qualified":null,"image":"1f918-1f3fb.png","sheet_x":39,"sheet_y":8,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F918-1F3FC","non_qualified":null,"image":"1f918-1f3fc.png","sheet_x":39,"sheet_y":9,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F918-1F3FD","non_qualified":null,"image":"1f918-1f3fd.png","sheet_x":39,"sheet_y":10,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F918-1F3FE","non_qualified":null,"image":"1f918-1f3fe.png","sheet_x":39,"sheet_y":11,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F918-1F3FF","non_qualified":null,"image":"1f918-1f3ff.png","sheet_x":39,"sheet_y":12,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Sign of the Horns","b":"1F918","d":true,"e":true,"f":true,"h":true,"j":["sign_of_the_horns","hand","fingers","evil_eye","sign_of_horns","rock_on"],"k":[39,7],"n":["sign_of_the_horns"],"o":1},"call_me_hand":{"subcategory":"hand-fingers-partial","skin_variations":{"1F3FB":{"unified":"1F919-1F3FB","non_qualified":null,"image":"1f919-1f3fb.png","sheet_x":39,"sheet_y":14,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F919-1F3FC","non_qualified":null,"image":"1f919-1f3fc.png","sheet_x":39,"sheet_y":15,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F919-1F3FD","non_qualified":null,"image":"1f919-1f3fd.png","sheet_x":39,"sheet_y":16,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F919-1F3FE","non_qualified":null,"image":"1f919-1f3fe.png","sheet_x":39,"sheet_y":17,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F919-1F3FF","non_qualified":null,"image":"1f919-1f3ff.png","sheet_x":39,"sheet_y":18,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Call Me Hand","b":"1F919","d":true,"e":true,"f":true,"h":true,"j":["call_me_hand","hands","gesture","shaka"],"k":[39,13],"o":3},"point_left":{"subcategory":"hand-single-finger","skin_variations":{"1F3FB":{"unified":"1F448-1F3FB","non_qualified":null,"image":"1f448-1f3fb.png","sheet_x":12,"sheet_y":22,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F448-1F3FC","non_qualified":null,"image":"1f448-1f3fc.png","sheet_x":12,"sheet_y":23,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F448-1F3FD","non_qualified":null,"image":"1f448-1f3fd.png","sheet_x":12,"sheet_y":24,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F448-1F3FE","non_qualified":null,"image":"1f448-1f3fe.png","sheet_x":12,"sheet_y":25,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F448-1F3FF","non_qualified":null,"image":"1f448-1f3ff.png","sheet_x":12,"sheet_y":26,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"White Left Pointing Backhand Index","b":"1F448","d":true,"e":true,"f":true,"h":true,"j":["backhand_index_pointing_left","direction","fingers","hand","left"],"k":[12,21],"o":0},"point_right":{"subcategory":"hand-single-finger","skin_variations":{"1F3FB":{"unified":"1F449-1F3FB","non_qualified":null,"image":"1f449-1f3fb.png","sheet_x":12,"sheet_y":28,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F449-1F3FC","non_qualified":null,"image":"1f449-1f3fc.png","sheet_x":12,"sheet_y":29,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F449-1F3FD","non_qualified":null,"image":"1f449-1f3fd.png","sheet_x":12,"sheet_y":30,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F449-1F3FE","non_qualified":null,"image":"1f449-1f3fe.png","sheet_x":12,"sheet_y":31,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F449-1F3FF","non_qualified":null,"image":"1f449-1f3ff.png","sheet_x":12,"sheet_y":32,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"White Right Pointing Backhand Index","b":"1F449","d":true,"e":true,"f":true,"h":true,"j":["backhand_index_pointing_right","fingers","hand","direction","right"],"k":[12,27],"o":0},"point_up_2":{"subcategory":"hand-single-finger","skin_variations":{"1F3FB":{"unified":"1F446-1F3FB","non_qualified":null,"image":"1f446-1f3fb.png","sheet_x":12,"sheet_y":10,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F446-1F3FC","non_qualified":null,"image":"1f446-1f3fc.png","sheet_x":12,"sheet_y":11,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F446-1F3FD","non_qualified":null,"image":"1f446-1f3fd.png","sheet_x":12,"sheet_y":12,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F446-1F3FE","non_qualified":null,"image":"1f446-1f3fe.png","sheet_x":12,"sheet_y":13,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F446-1F3FF","non_qualified":null,"image":"1f446-1f3ff.png","sheet_x":12,"sheet_y":14,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"White Up Pointing Backhand Index","b":"1F446","d":true,"e":true,"f":true,"h":true,"j":["backhand_index_pointing_up","fingers","hand","direction","up"],"k":[12,9],"o":0},"middle_finger":{"subcategory":"hand-single-finger","skin_variations":{"1F3FB":{"unified":"1F595-1F3FB","non_qualified":null,"image":"1f595-1f3fb.png","sheet_x":31,"sheet_y":45,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F595-1F3FC","non_qualified":null,"image":"1f595-1f3fc.png","sheet_x":31,"sheet_y":46,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F595-1F3FD","non_qualified":null,"image":"1f595-1f3fd.png","sheet_x":31,"sheet_y":47,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F595-1F3FE","non_qualified":null,"image":"1f595-1f3fe.png","sheet_x":31,"sheet_y":48,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F595-1F3FF","non_qualified":null,"image":"1f595-1f3ff.png","sheet_x":31,"sheet_y":49,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Reversed Hand with Middle Finger Extended","b":"1F595","d":true,"e":true,"f":true,"h":true,"j":["middle_finger","hand","fingers","rude","middle","flipping"],"k":[31,44],"n":["reversed_hand_with_middle_finger_extended"],"o":1},"point_down":{"subcategory":"hand-single-finger","skin_variations":{"1F3FB":{"unified":"1F447-1F3FB","non_qualified":null,"image":"1f447-1f3fb.png","sheet_x":12,"sheet_y":16,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F447-1F3FC","non_qualified":null,"image":"1f447-1f3fc.png","sheet_x":12,"sheet_y":17,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F447-1F3FD","non_qualified":null,"image":"1f447-1f3fd.png","sheet_x":12,"sheet_y":18,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F447-1F3FE","non_qualified":null,"image":"1f447-1f3fe.png","sheet_x":12,"sheet_y":19,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F447-1F3FF","non_qualified":null,"image":"1f447-1f3ff.png","sheet_x":12,"sheet_y":20,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"White Down Pointing Backhand Index","b":"1F447","d":true,"e":true,"f":true,"h":true,"j":["backhand_index_pointing_down","fingers","hand","direction","down"],"k":[12,15],"o":0},"point_up":{"subcategory":"hand-single-finger","skin_variations":{"1F3FB":{"unified":"261D-1F3FB","non_qualified":null,"image":"261d-1f3fb.png","sheet_x":57,"sheet_y":21,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"261D-1F3FC","non_qualified":null,"image":"261d-1f3fc.png","sheet_x":57,"sheet_y":22,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"261D-1F3FD","non_qualified":null,"image":"261d-1f3fd.png","sheet_x":57,"sheet_y":23,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"261D-1F3FE","non_qualified":null,"image":"261d-1f3fe.png","sheet_x":57,"sheet_y":24,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"261D-1F3FF","non_qualified":null,"image":"261d-1f3ff.png","sheet_x":57,"sheet_y":25,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"White Up Pointing Index","b":"261D-FE0F","c":"261D","d":true,"e":true,"f":true,"h":true,"j":["index_pointing_up","hand","fingers","direction","up"],"k":[57,20],"o":0},"index_pointing_at_the_viewer":{"subcategory":"hand-single-finger","skin_variations":{"1F3FB":{"unified":"1FAF5-1F3FB","non_qualified":null,"image":"1faf5-1f3fb.png","sheet_x":56,"sheet_y":9,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1FAF5-1F3FC","non_qualified":null,"image":"1faf5-1f3fc.png","sheet_x":56,"sheet_y":10,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1FAF5-1F3FD","non_qualified":null,"image":"1faf5-1f3fd.png","sheet_x":56,"sheet_y":11,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1FAF5-1F3FE","non_qualified":null,"image":"1faf5-1f3fe.png","sheet_x":56,"sheet_y":12,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1FAF5-1F3FF","non_qualified":null,"image":"1faf5-1f3ff.png","sheet_x":56,"sheet_y":13,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Index Pointing at the Viewer","b":"1FAF5","d":true,"e":true,"f":true,"h":true,"j":["index pointing at the viewer","you","recruit"],"k":[56,8],"o":14},"+1":{"subcategory":"hand-fingers-closed","skin_variations":{"1F3FB":{"unified":"1F44D-1F3FB","non_qualified":null,"image":"1f44d-1f3fb.png","sheet_x":12,"sheet_y":52,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F44D-1F3FC","non_qualified":null,"image":"1f44d-1f3fc.png","sheet_x":12,"sheet_y":53,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F44D-1F3FD","non_qualified":null,"image":"1f44d-1f3fd.png","sheet_x":12,"sheet_y":54,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F44D-1F3FE","non_qualified":null,"image":"1f44d-1f3fe.png","sheet_x":12,"sheet_y":55,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F44D-1F3FF","non_qualified":null,"image":"1f44d-1f3ff.png","sheet_x":12,"sheet_y":56,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Thumbs Up Sign","b":"1F44D","d":true,"e":true,"f":true,"h":true,"j":["thumbs_up","thumbsup","yes","awesome","good","agree","accept","cool","hand","like","+1"],"k":[12,51],"n":["thumbsup"],"o":0},"-1":{"subcategory":"hand-fingers-closed","skin_variations":{"1F3FB":{"unified":"1F44E-1F3FB","non_qualified":null,"image":"1f44e-1f3fb.png","sheet_x":12,"sheet_y":58,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F44E-1F3FC","non_qualified":null,"image":"1f44e-1f3fc.png","sheet_x":12,"sheet_y":59,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F44E-1F3FD","non_qualified":null,"image":"1f44e-1f3fd.png","sheet_x":12,"sheet_y":60,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F44E-1F3FE","non_qualified":null,"image":"1f44e-1f3fe.png","sheet_x":13,"sheet_y":0,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F44E-1F3FF","non_qualified":null,"image":"1f44e-1f3ff.png","sheet_x":13,"sheet_y":1,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Thumbs Down Sign","b":"1F44E","d":true,"e":true,"f":true,"h":true,"j":["thumbs_down","thumbsdown","no","dislike","hand","-1"],"k":[12,57],"n":["thumbsdown"],"o":0},"fist":{"subcategory":"hand-fingers-closed","skin_variations":{"1F3FB":{"unified":"270A-1F3FB","non_qualified":null,"image":"270a-1f3fb.png","sheet_x":58,"sheet_y":59,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"270A-1F3FC","non_qualified":null,"image":"270a-1f3fc.png","sheet_x":58,"sheet_y":60,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"270A-1F3FD","non_qualified":null,"image":"270a-1f3fd.png","sheet_x":59,"sheet_y":0,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"270A-1F3FE","non_qualified":null,"image":"270a-1f3fe.png","sheet_x":59,"sheet_y":1,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"270A-1F3FF","non_qualified":null,"image":"270a-1f3ff.png","sheet_x":59,"sheet_y":2,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Raised Fist","b":"270A","d":true,"e":true,"f":true,"h":true,"j":["raised_fist","fingers","hand","grasp"],"k":[58,58],"o":0},"facepunch":{"subcategory":"hand-fingers-closed","skin_variations":{"1F3FB":{"unified":"1F44A-1F3FB","non_qualified":null,"image":"1f44a-1f3fb.png","sheet_x":12,"sheet_y":34,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F44A-1F3FC","non_qualified":null,"image":"1f44a-1f3fc.png","sheet_x":12,"sheet_y":35,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F44A-1F3FD","non_qualified":null,"image":"1f44a-1f3fd.png","sheet_x":12,"sheet_y":36,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F44A-1F3FE","non_qualified":null,"image":"1f44a-1f3fe.png","sheet_x":12,"sheet_y":37,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F44A-1F3FF","non_qualified":null,"image":"1f44a-1f3ff.png","sheet_x":12,"sheet_y":38,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Fisted Hand Sign","b":"1F44A","d":true,"e":true,"f":true,"h":true,"j":["oncoming_fist","angry","violence","fist","hit","attack","hand"],"k":[12,33],"n":["punch"],"o":0},"left-facing_fist":{"subcategory":"hand-fingers-closed","skin_variations":{"1F3FB":{"unified":"1F91B-1F3FB","non_qualified":null,"image":"1f91b-1f3fb.png","sheet_x":39,"sheet_y":26,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F91B-1F3FC","non_qualified":null,"image":"1f91b-1f3fc.png","sheet_x":39,"sheet_y":27,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F91B-1F3FD","non_qualified":null,"image":"1f91b-1f3fd.png","sheet_x":39,"sheet_y":28,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F91B-1F3FE","non_qualified":null,"image":"1f91b-1f3fe.png","sheet_x":39,"sheet_y":29,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F91B-1F3FF","non_qualified":null,"image":"1f91b-1f3ff.png","sheet_x":39,"sheet_y":30,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Left-Facing Fist","b":"1F91B","d":true,"e":true,"f":true,"h":true,"j":["left_facing_fist","hand","fistbump"],"k":[39,25],"o":3},"right-facing_fist":{"subcategory":"hand-fingers-closed","skin_variations":{"1F3FB":{"unified":"1F91C-1F3FB","non_qualified":null,"image":"1f91c-1f3fb.png","sheet_x":39,"sheet_y":32,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F91C-1F3FC","non_qualified":null,"image":"1f91c-1f3fc.png","sheet_x":39,"sheet_y":33,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F91C-1F3FD","non_qualified":null,"image":"1f91c-1f3fd.png","sheet_x":39,"sheet_y":34,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F91C-1F3FE","non_qualified":null,"image":"1f91c-1f3fe.png","sheet_x":39,"sheet_y":35,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F91C-1F3FF","non_qualified":null,"image":"1f91c-1f3ff.png","sheet_x":39,"sheet_y":36,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Right-Facing Fist","b":"1F91C","d":true,"e":true,"f":true,"h":true,"j":["right_facing_fist","hand","fistbump"],"k":[39,31],"o":3},"clap":{"subcategory":"hands","skin_variations":{"1F3FB":{"unified":"1F44F-1F3FB","non_qualified":null,"image":"1f44f-1f3fb.png","sheet_x":13,"sheet_y":3,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F44F-1F3FC","non_qualified":null,"image":"1f44f-1f3fc.png","sheet_x":13,"sheet_y":4,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F44F-1F3FD","non_qualified":null,"image":"1f44f-1f3fd.png","sheet_x":13,"sheet_y":5,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F44F-1F3FE","non_qualified":null,"image":"1f44f-1f3fe.png","sheet_x":13,"sheet_y":6,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F44F-1F3FF","non_qualified":null,"image":"1f44f-1f3ff.png","sheet_x":13,"sheet_y":7,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Clapping Hands Sign","b":"1F44F","d":true,"e":true,"f":true,"h":true,"j":["clapping_hands","hands","praise","applause","congrats","yay"],"k":[13,2],"o":0},"raised_hands":{"subcategory":"hands","skin_variations":{"1F3FB":{"unified":"1F64C-1F3FB","non_qualified":null,"image":"1f64c-1f3fb.png","sheet_x":34,"sheet_y":47,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F64C-1F3FC","non_qualified":null,"image":"1f64c-1f3fc.png","sheet_x":34,"sheet_y":48,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F64C-1F3FD","non_qualified":null,"image":"1f64c-1f3fd.png","sheet_x":34,"sheet_y":49,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F64C-1F3FE","non_qualified":null,"image":"1f64c-1f3fe.png","sheet_x":34,"sheet_y":50,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F64C-1F3FF","non_qualified":null,"image":"1f64c-1f3ff.png","sheet_x":34,"sheet_y":51,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Person Raising Both Hands in Celebration","b":"1F64C","d":true,"e":true,"f":true,"h":true,"j":["raising_hands","gesture","hooray","yea","celebration","hands"],"k":[34,46],"o":0},"heart_hands":{"subcategory":"hands","skin_variations":{"1F3FB":{"unified":"1FAF6-1F3FB","non_qualified":null,"image":"1faf6-1f3fb.png","sheet_x":56,"sheet_y":15,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1FAF6-1F3FC","non_qualified":null,"image":"1faf6-1f3fc.png","sheet_x":56,"sheet_y":16,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1FAF6-1F3FD","non_qualified":null,"image":"1faf6-1f3fd.png","sheet_x":56,"sheet_y":17,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1FAF6-1F3FE","non_qualified":null,"image":"1faf6-1f3fe.png","sheet_x":56,"sheet_y":18,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1FAF6-1F3FF","non_qualified":null,"image":"1faf6-1f3ff.png","sheet_x":56,"sheet_y":19,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Heart Hands","b":"1FAF6","d":true,"e":true,"f":true,"h":true,"j":["heart hands","love","appreciation","support"],"k":[56,14],"o":14},"open_hands":{"subcategory":"hands","skin_variations":{"1F3FB":{"unified":"1F450-1F3FB","non_qualified":null,"image":"1f450-1f3fb.png","sheet_x":13,"sheet_y":9,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F450-1F3FC","non_qualified":null,"image":"1f450-1f3fc.png","sheet_x":13,"sheet_y":10,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F450-1F3FD","non_qualified":null,"image":"1f450-1f3fd.png","sheet_x":13,"sheet_y":11,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F450-1F3FE","non_qualified":null,"image":"1f450-1f3fe.png","sheet_x":13,"sheet_y":12,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F450-1F3FF","non_qualified":null,"image":"1f450-1f3ff.png","sheet_x":13,"sheet_y":13,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Open Hands Sign","b":"1F450","d":true,"e":true,"f":true,"h":true,"j":["open_hands","fingers","butterfly","hands","open"],"k":[13,8],"o":0},"palms_up_together":{"subcategory":"hands","skin_variations":{"1F3FB":{"unified":"1F932-1F3FB","non_qualified":null,"image":"1f932-1f3fb.png","sheet_x":40,"sheet_y":60,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F932-1F3FC","non_qualified":null,"image":"1f932-1f3fc.png","sheet_x":41,"sheet_y":0,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F932-1F3FD","non_qualified":null,"image":"1f932-1f3fd.png","sheet_x":41,"sheet_y":1,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F932-1F3FE","non_qualified":null,"image":"1f932-1f3fe.png","sheet_x":41,"sheet_y":2,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F932-1F3FF","non_qualified":null,"image":"1f932-1f3ff.png","sheet_x":41,"sheet_y":3,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Palms Up Together","b":"1F932","d":true,"e":true,"f":true,"h":true,"j":["palms_up_together","hands","gesture","cupped","prayer"],"k":[40,59],"o":5},"handshake":{"subcategory":"hands","skin_variations":{"1F3FB":{"unified":"1F91D-1F3FB","non_qualified":null,"image":"1f91d-1f3fb.png","sheet_x":39,"sheet_y":38,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F91D-1F3FC","non_qualified":null,"image":"1f91d-1f3fc.png","sheet_x":39,"sheet_y":39,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F91D-1F3FD","non_qualified":null,"image":"1f91d-1f3fd.png","sheet_x":39,"sheet_y":40,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F91D-1F3FE","non_qualified":null,"image":"1f91d-1f3fe.png","sheet_x":39,"sheet_y":41,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F91D-1F3FF","non_qualified":null,"image":"1f91d-1f3ff.png","sheet_x":39,"sheet_y":42,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FC":{"unified":"1FAF1-1F3FB-200D-1FAF2-1F3FC","non_qualified":null,"image":"1faf1-1f3fb-200d-1faf2-1f3fc.png","sheet_x":39,"sheet_y":43,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FD":{"unified":"1FAF1-1F3FB-200D-1FAF2-1F3FD","non_qualified":null,"image":"1faf1-1f3fb-200d-1faf2-1f3fd.png","sheet_x":39,"sheet_y":44,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FE":{"unified":"1FAF1-1F3FB-200D-1FAF2-1F3FE","non_qualified":null,"image":"1faf1-1f3fb-200d-1faf2-1f3fe.png","sheet_x":39,"sheet_y":45,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FF":{"unified":"1FAF1-1F3FB-200D-1FAF2-1F3FF","non_qualified":null,"image":"1faf1-1f3fb-200d-1faf2-1f3ff.png","sheet_x":39,"sheet_y":46,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FB":{"unified":"1FAF1-1F3FC-200D-1FAF2-1F3FB","non_qualified":null,"image":"1faf1-1f3fc-200d-1faf2-1f3fb.png","sheet_x":39,"sheet_y":47,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FD":{"unified":"1FAF1-1F3FC-200D-1FAF2-1F3FD","non_qualified":null,"image":"1faf1-1f3fc-200d-1faf2-1f3fd.png","sheet_x":39,"sheet_y":48,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FE":{"unified":"1FAF1-1F3FC-200D-1FAF2-1F3FE","non_qualified":null,"image":"1faf1-1f3fc-200d-1faf2-1f3fe.png","sheet_x":39,"sheet_y":49,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FF":{"unified":"1FAF1-1F3FC-200D-1FAF2-1F3FF","non_qualified":null,"image":"1faf1-1f3fc-200d-1faf2-1f3ff.png","sheet_x":39,"sheet_y":50,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FB":{"unified":"1FAF1-1F3FD-200D-1FAF2-1F3FB","non_qualified":null,"image":"1faf1-1f3fd-200d-1faf2-1f3fb.png","sheet_x":39,"sheet_y":51,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FC":{"unified":"1FAF1-1F3FD-200D-1FAF2-1F3FC","non_qualified":null,"image":"1faf1-1f3fd-200d-1faf2-1f3fc.png","sheet_x":39,"sheet_y":52,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FE":{"unified":"1FAF1-1F3FD-200D-1FAF2-1F3FE","non_qualified":null,"image":"1faf1-1f3fd-200d-1faf2-1f3fe.png","sheet_x":39,"sheet_y":53,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FF":{"unified":"1FAF1-1F3FD-200D-1FAF2-1F3FF","non_qualified":null,"image":"1faf1-1f3fd-200d-1faf2-1f3ff.png","sheet_x":39,"sheet_y":54,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FB":{"unified":"1FAF1-1F3FE-200D-1FAF2-1F3FB","non_qualified":null,"image":"1faf1-1f3fe-200d-1faf2-1f3fb.png","sheet_x":39,"sheet_y":55,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FC":{"unified":"1FAF1-1F3FE-200D-1FAF2-1F3FC","non_qualified":null,"image":"1faf1-1f3fe-200d-1faf2-1f3fc.png","sheet_x":39,"sheet_y":56,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FD":{"unified":"1FAF1-1F3FE-200D-1FAF2-1F3FD","non_qualified":null,"image":"1faf1-1f3fe-200d-1faf2-1f3fd.png","sheet_x":39,"sheet_y":57,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FF":{"unified":"1FAF1-1F3FE-200D-1FAF2-1F3FF","non_qualified":null,"image":"1faf1-1f3fe-200d-1faf2-1f3ff.png","sheet_x":39,"sheet_y":58,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FB":{"unified":"1FAF1-1F3FF-200D-1FAF2-1F3FB","non_qualified":null,"image":"1faf1-1f3ff-200d-1faf2-1f3fb.png","sheet_x":39,"sheet_y":59,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FC":{"unified":"1FAF1-1F3FF-200D-1FAF2-1F3FC","non_qualified":null,"image":"1faf1-1f3ff-200d-1faf2-1f3fc.png","sheet_x":39,"sheet_y":60,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FD":{"unified":"1FAF1-1F3FF-200D-1FAF2-1F3FD","non_qualified":null,"image":"1faf1-1f3ff-200d-1faf2-1f3fd.png","sheet_x":40,"sheet_y":0,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FE":{"unified":"1FAF1-1F3FF-200D-1FAF2-1F3FE","non_qualified":null,"image":"1faf1-1f3ff-200d-1faf2-1f3fe.png","sheet_x":40,"sheet_y":1,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Handshake","b":"1F91D","d":true,"e":true,"f":true,"h":true,"j":["handshake","agreement","shake"],"k":[39,37],"o":3},"pray":{"subcategory":"hands","skin_variations":{"1F3FB":{"unified":"1F64F-1F3FB","non_qualified":null,"image":"1f64f-1f3fb.png","sheet_x":35,"sheet_y":28,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F64F-1F3FC","non_qualified":null,"image":"1f64f-1f3fc.png","sheet_x":35,"sheet_y":29,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F64F-1F3FD","non_qualified":null,"image":"1f64f-1f3fd.png","sheet_x":35,"sheet_y":30,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F64F-1F3FE","non_qualified":null,"image":"1f64f-1f3fe.png","sheet_x":35,"sheet_y":31,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F64F-1F3FF","non_qualified":null,"image":"1f64f-1f3ff.png","sheet_x":35,"sheet_y":32,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Person with Folded Hands","b":"1F64F","d":true,"e":true,"f":true,"h":true,"j":["folded_hands","please","hope","wish","namaste","highfive","pray","thank you","thanks","appreciate"],"k":[35,27],"o":0},"writing_hand":{"subcategory":"hand-prop","skin_variations":{"1F3FB":{"unified":"270D-1F3FB","non_qualified":null,"image":"270d-1f3fb.png","sheet_x":59,"sheet_y":16,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"270D-1F3FC","non_qualified":null,"image":"270d-1f3fc.png","sheet_x":59,"sheet_y":17,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"270D-1F3FD","non_qualified":null,"image":"270d-1f3fd.png","sheet_x":59,"sheet_y":18,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"270D-1F3FE","non_qualified":null,"image":"270d-1f3fe.png","sheet_x":59,"sheet_y":19,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"270D-1F3FF","non_qualified":null,"image":"270d-1f3ff.png","sheet_x":59,"sheet_y":20,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Writing Hand","b":"270D-FE0F","c":"270D","d":true,"e":true,"f":true,"h":true,"j":["writing_hand","lower_left_ballpoint_pen","stationery","write","compose"],"k":[59,15],"o":0},"nail_care":{"subcategory":"hand-prop","skin_variations":{"1F3FB":{"unified":"1F485-1F3FB","non_qualified":null,"image":"1f485-1f3fb.png","sheet_x":25,"sheet_y":55,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F485-1F3FC","non_qualified":null,"image":"1f485-1f3fc.png","sheet_x":25,"sheet_y":56,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F485-1F3FD","non_qualified":null,"image":"1f485-1f3fd.png","sheet_x":25,"sheet_y":57,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F485-1F3FE","non_qualified":null,"image":"1f485-1f3fe.png","sheet_x":25,"sheet_y":58,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F485-1F3FF","non_qualified":null,"image":"1f485-1f3ff.png","sheet_x":25,"sheet_y":59,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Nail Polish","b":"1F485","d":true,"e":true,"f":true,"h":true,"j":["nail_polish","nail_care","beauty","manicure","finger","fashion","nail","slay"],"k":[25,54],"o":0},"selfie":{"subcategory":"hand-prop","skin_variations":{"1F3FB":{"unified":"1F933-1F3FB","non_qualified":null,"image":"1f933-1f3fb.png","sheet_x":41,"sheet_y":5,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F933-1F3FC","non_qualified":null,"image":"1f933-1f3fc.png","sheet_x":41,"sheet_y":6,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F933-1F3FD","non_qualified":null,"image":"1f933-1f3fd.png","sheet_x":41,"sheet_y":7,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F933-1F3FE","non_qualified":null,"image":"1f933-1f3fe.png","sheet_x":41,"sheet_y":8,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F933-1F3FF","non_qualified":null,"image":"1f933-1f3ff.png","sheet_x":41,"sheet_y":9,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Selfie","b":"1F933","d":true,"e":true,"f":true,"h":true,"j":["selfie","camera","phone"],"k":[41,4],"o":3},"muscle":{"subcategory":"body-parts","skin_variations":{"1F3FB":{"unified":"1F4AA-1F3FB","non_qualified":null,"image":"1f4aa-1f3fb.png","sheet_x":27,"sheet_y":59,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F4AA-1F3FC","non_qualified":null,"image":"1f4aa-1f3fc.png","sheet_x":27,"sheet_y":60,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F4AA-1F3FD","non_qualified":null,"image":"1f4aa-1f3fd.png","sheet_x":28,"sheet_y":0,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F4AA-1F3FE","non_qualified":null,"image":"1f4aa-1f3fe.png","sheet_x":28,"sheet_y":1,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F4AA-1F3FF","non_qualified":null,"image":"1f4aa-1f3ff.png","sheet_x":28,"sheet_y":2,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Flexed Biceps","b":"1F4AA","d":true,"e":true,"f":true,"h":true,"j":["flexed_biceps","arm","flex","hand","summer","strong","biceps"],"k":[27,58],"o":0},"mechanical_arm":{"subcategory":"body-parts","a":"Mechanical Arm","b":"1F9BE","d":true,"e":true,"f":true,"h":true,"j":["mechanical_arm","accessibility"],"k":[46,5],"o":12},"mechanical_leg":{"subcategory":"body-parts","a":"Mechanical Leg","b":"1F9BF","d":true,"e":true,"f":true,"h":true,"j":["mechanical_leg","accessibility"],"k":[46,6],"o":12},"leg":{"subcategory":"body-parts","skin_variations":{"1F3FB":{"unified":"1F9B5-1F3FB","non_qualified":null,"image":"1f9b5-1f3fb.png","sheet_x":45,"sheet_y":9,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9B5-1F3FC","non_qualified":null,"image":"1f9b5-1f3fc.png","sheet_x":45,"sheet_y":10,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9B5-1F3FD","non_qualified":null,"image":"1f9b5-1f3fd.png","sheet_x":45,"sheet_y":11,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9B5-1F3FE","non_qualified":null,"image":"1f9b5-1f3fe.png","sheet_x":45,"sheet_y":12,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9B5-1F3FF","non_qualified":null,"image":"1f9b5-1f3ff.png","sheet_x":45,"sheet_y":13,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Leg","b":"1F9B5","d":true,"e":true,"f":true,"h":true,"j":["leg","kick","limb"],"k":[45,8],"o":11},"foot":{"subcategory":"body-parts","skin_variations":{"1F3FB":{"unified":"1F9B6-1F3FB","non_qualified":null,"image":"1f9b6-1f3fb.png","sheet_x":45,"sheet_y":15,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9B6-1F3FC","non_qualified":null,"image":"1f9b6-1f3fc.png","sheet_x":45,"sheet_y":16,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9B6-1F3FD","non_qualified":null,"image":"1f9b6-1f3fd.png","sheet_x":45,"sheet_y":17,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9B6-1F3FE","non_qualified":null,"image":"1f9b6-1f3fe.png","sheet_x":45,"sheet_y":18,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9B6-1F3FF","non_qualified":null,"image":"1f9b6-1f3ff.png","sheet_x":45,"sheet_y":19,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Foot","b":"1F9B6","d":true,"e":true,"f":true,"h":true,"j":["foot","kick","stomp"],"k":[45,14],"o":11},"ear":{"subcategory":"body-parts","skin_variations":{"1F3FB":{"unified":"1F442-1F3FB","non_qualified":null,"image":"1f442-1f3fb.png","sheet_x":11,"sheet_y":57,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F442-1F3FC","non_qualified":null,"image":"1f442-1f3fc.png","sheet_x":11,"sheet_y":58,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F442-1F3FD","non_qualified":null,"image":"1f442-1f3fd.png","sheet_x":11,"sheet_y":59,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F442-1F3FE","non_qualified":null,"image":"1f442-1f3fe.png","sheet_x":11,"sheet_y":60,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F442-1F3FF","non_qualified":null,"image":"1f442-1f3ff.png","sheet_x":12,"sheet_y":0,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Ear","b":"1F442","d":true,"e":true,"f":true,"h":true,"j":["ear","face","hear","sound","listen"],"k":[11,56],"o":0},"ear_with_hearing_aid":{"subcategory":"body-parts","skin_variations":{"1F3FB":{"unified":"1F9BB-1F3FB","non_qualified":null,"image":"1f9bb-1f3fb.png","sheet_x":45,"sheet_y":59,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9BB-1F3FC","non_qualified":null,"image":"1f9bb-1f3fc.png","sheet_x":45,"sheet_y":60,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9BB-1F3FD","non_qualified":null,"image":"1f9bb-1f3fd.png","sheet_x":46,"sheet_y":0,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9BB-1F3FE","non_qualified":null,"image":"1f9bb-1f3fe.png","sheet_x":46,"sheet_y":1,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9BB-1F3FF","non_qualified":null,"image":"1f9bb-1f3ff.png","sheet_x":46,"sheet_y":2,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Ear with Hearing Aid","b":"1F9BB","d":true,"e":true,"f":true,"h":true,"j":["ear_with_hearing_aid","accessibility"],"k":[45,58],"o":12},"nose":{"subcategory":"body-parts","skin_variations":{"1F3FB":{"unified":"1F443-1F3FB","non_qualified":null,"image":"1f443-1f3fb.png","sheet_x":12,"sheet_y":2,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F443-1F3FC","non_qualified":null,"image":"1f443-1f3fc.png","sheet_x":12,"sheet_y":3,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F443-1F3FD","non_qualified":null,"image":"1f443-1f3fd.png","sheet_x":12,"sheet_y":4,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F443-1F3FE","non_qualified":null,"image":"1f443-1f3fe.png","sheet_x":12,"sheet_y":5,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F443-1F3FF","non_qualified":null,"image":"1f443-1f3ff.png","sheet_x":12,"sheet_y":6,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Nose","b":"1F443","d":true,"e":true,"f":true,"h":true,"j":["nose","smell","sniff"],"k":[12,1],"o":0},"brain":{"subcategory":"body-parts","a":"Brain","b":"1F9E0","d":true,"e":true,"f":true,"h":true,"j":["brain","smart","intelligent"],"k":[53,16],"o":5},"anatomical_heart":{"subcategory":"body-parts","a":"Anatomical Heart","b":"1FAC0","d":true,"e":true,"f":true,"h":true,"j":["anatomical heart","health","heartbeat"],"k":[54,56],"o":13},"lungs":{"subcategory":"body-parts","a":"Lungs","b":"1FAC1","d":true,"e":true,"f":true,"h":true,"j":["lungs","breathe"],"k":[54,57],"o":13},"tooth":{"subcategory":"body-parts","a":"Tooth","b":"1F9B7","d":true,"e":true,"f":true,"h":true,"j":["tooth","teeth","dentist"],"k":[45,20],"o":11},"bone":{"subcategory":"body-parts","a":"Bone","b":"1F9B4","d":true,"e":true,"f":true,"h":true,"j":["bone","skeleton"],"k":[45,7],"o":11},"eyes":{"subcategory":"body-parts","a":"Eyes","b":"1F440","d":true,"e":true,"f":true,"h":true,"j":["eyes","look","watch","stalk","peek","see"],"k":[11,53],"o":0},"eye":{"subcategory":"body-parts","a":"Eye","b":"1F441-FE0F","c":"1F441","d":true,"e":true,"f":true,"h":true,"j":["eye","face","look","see","watch","stare"],"k":[11,55],"o":0},"tongue":{"subcategory":"body-parts","a":"Tongue","b":"1F445","d":true,"e":true,"f":true,"h":true,"j":["tongue","mouth","playful"],"k":[12,8],"o":0},"lips":{"subcategory":"body-parts","a":"Mouth","b":"1F444","d":true,"e":true,"f":true,"h":true,"j":["mouth","kiss"],"k":[12,7],"o":0},"biting_lip":{"subcategory":"body-parts","a":"Biting Lip","b":"1FAE6","d":true,"e":true,"f":true,"h":true,"j":["biting lip","flirt","sexy","pain","worry"],"k":[55,36],"o":14},"baby":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F476-1F3FB","non_qualified":null,"image":"1f476-1f3fb.png","sheet_x":24,"sheet_y":30,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F476-1F3FC","non_qualified":null,"image":"1f476-1f3fc.png","sheet_x":24,"sheet_y":31,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F476-1F3FD","non_qualified":null,"image":"1f476-1f3fd.png","sheet_x":24,"sheet_y":32,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F476-1F3FE","non_qualified":null,"image":"1f476-1f3fe.png","sheet_x":24,"sheet_y":33,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F476-1F3FF","non_qualified":null,"image":"1f476-1f3ff.png","sheet_x":24,"sheet_y":34,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Baby","b":"1F476","d":true,"e":true,"f":true,"h":true,"j":["baby","child","boy","girl","toddler"],"k":[24,29],"o":0},"child":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F9D2-1F3FB","non_qualified":null,"image":"1f9d2-1f3fb.png","sheet_x":50,"sheet_y":14,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D2-1F3FC","non_qualified":null,"image":"1f9d2-1f3fc.png","sheet_x":50,"sheet_y":15,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D2-1F3FD","non_qualified":null,"image":"1f9d2-1f3fd.png","sheet_x":50,"sheet_y":16,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D2-1F3FE","non_qualified":null,"image":"1f9d2-1f3fe.png","sheet_x":50,"sheet_y":17,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D2-1F3FF","non_qualified":null,"image":"1f9d2-1f3ff.png","sheet_x":50,"sheet_y":18,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Child","b":"1F9D2","d":true,"e":true,"f":true,"h":true,"j":["child","gender-neutral","young"],"k":[50,13],"o":5},"boy":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F466-1F3FB","non_qualified":null,"image":"1f466-1f3fb.png","sheet_x":13,"sheet_y":36,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F466-1F3FC","non_qualified":null,"image":"1f466-1f3fc.png","sheet_x":13,"sheet_y":37,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F466-1F3FD","non_qualified":null,"image":"1f466-1f3fd.png","sheet_x":13,"sheet_y":38,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F466-1F3FE","non_qualified":null,"image":"1f466-1f3fe.png","sheet_x":13,"sheet_y":39,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F466-1F3FF","non_qualified":null,"image":"1f466-1f3ff.png","sheet_x":13,"sheet_y":40,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Boy","b":"1F466","d":true,"e":true,"f":true,"h":true,"j":["boy","man","male","guy","teenager"],"k":[13,35],"o":0},"girl":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F467-1F3FB","non_qualified":null,"image":"1f467-1f3fb.png","sheet_x":13,"sheet_y":42,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F467-1F3FC","non_qualified":null,"image":"1f467-1f3fc.png","sheet_x":13,"sheet_y":43,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F467-1F3FD","non_qualified":null,"image":"1f467-1f3fd.png","sheet_x":13,"sheet_y":44,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F467-1F3FE","non_qualified":null,"image":"1f467-1f3fe.png","sheet_x":13,"sheet_y":45,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F467-1F3FF","non_qualified":null,"image":"1f467-1f3ff.png","sheet_x":13,"sheet_y":46,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Girl","b":"1F467","d":true,"e":true,"f":true,"h":true,"j":["girl","female","woman","teenager"],"k":[13,41],"o":0},"adult":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F9D1-1F3FB","non_qualified":null,"image":"1f9d1-1f3fb.png","sheet_x":50,"sheet_y":8,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D1-1F3FC","non_qualified":null,"image":"1f9d1-1f3fc.png","sheet_x":50,"sheet_y":9,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D1-1F3FD","non_qualified":null,"image":"1f9d1-1f3fd.png","sheet_x":50,"sheet_y":10,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D1-1F3FE","non_qualified":null,"image":"1f9d1-1f3fe.png","sheet_x":50,"sheet_y":11,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D1-1F3FF","non_qualified":null,"image":"1f9d1-1f3ff.png","sheet_x":50,"sheet_y":12,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Adult","b":"1F9D1","d":true,"e":true,"f":true,"h":true,"j":["person","gender-neutral"],"k":[50,7],"o":5},"person_with_blond_hair":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F471-1F3FB","non_qualified":null,"image":"1f471-1f3fb.png","sheet_x":23,"sheet_y":49,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F471-1F3FC","non_qualified":null,"image":"1f471-1f3fc.png","sheet_x":23,"sheet_y":50,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F471-1F3FD","non_qualified":null,"image":"1f471-1f3fd.png","sheet_x":23,"sheet_y":51,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F471-1F3FE","non_qualified":null,"image":"1f471-1f3fe.png","sheet_x":23,"sheet_y":52,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F471-1F3FF","non_qualified":null,"image":"1f471-1f3ff.png","sheet_x":23,"sheet_y":53,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoleted_by":"1F471-200D-2642-FE0F","a":"Person with Blond Hair","b":"1F471","d":true,"e":true,"f":true,"h":true,"j":["person_blond_hair","hairstyle"],"k":[23,48],"o":0},"man":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F468-1F3FB","non_qualified":null,"image":"1f468-1f3fb.png","sheet_x":17,"sheet_y":15,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F468-1F3FC","non_qualified":null,"image":"1f468-1f3fc.png","sheet_x":17,"sheet_y":16,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F468-1F3FD","non_qualified":null,"image":"1f468-1f3fd.png","sheet_x":17,"sheet_y":17,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F468-1F3FE","non_qualified":null,"image":"1f468-1f3fe.png","sheet_x":17,"sheet_y":18,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F468-1F3FF","non_qualified":null,"image":"1f468-1f3ff.png","sheet_x":17,"sheet_y":19,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man","b":"1F468","d":true,"e":true,"f":true,"h":true,"j":["man","mustache","father","dad","guy","classy","sir","moustache"],"k":[17,14],"o":0},"bearded_person":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F9D4-1F3FB","non_qualified":null,"image":"1f9d4-1f3fb.png","sheet_x":50,"sheet_y":38,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D4-1F3FC","non_qualified":null,"image":"1f9d4-1f3fc.png","sheet_x":50,"sheet_y":39,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D4-1F3FD","non_qualified":null,"image":"1f9d4-1f3fd.png","sheet_x":50,"sheet_y":40,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D4-1F3FE","non_qualified":null,"image":"1f9d4-1f3fe.png","sheet_x":50,"sheet_y":41,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D4-1F3FF","non_qualified":null,"image":"1f9d4-1f3ff.png","sheet_x":50,"sheet_y":42,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Bearded Person","b":"1F9D4","d":true,"e":true,"f":true,"h":true,"j":["man_beard","person","bewhiskered"],"k":[50,37],"o":5},"man_with_beard":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F9D4-1F3FB-200D-2642-FE0F","non_qualified":"1F9D4-1F3FB-200D-2642","image":"1f9d4-1f3fb-200d-2642-fe0f.png","sheet_x":50,"sheet_y":32,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D4-1F3FC-200D-2642-FE0F","non_qualified":"1F9D4-1F3FC-200D-2642","image":"1f9d4-1f3fc-200d-2642-fe0f.png","sheet_x":50,"sheet_y":33,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D4-1F3FD-200D-2642-FE0F","non_qualified":"1F9D4-1F3FD-200D-2642","image":"1f9d4-1f3fd-200d-2642-fe0f.png","sheet_x":50,"sheet_y":34,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D4-1F3FE-200D-2642-FE0F","non_qualified":"1F9D4-1F3FE-200D-2642","image":"1f9d4-1f3fe-200d-2642-fe0f.png","sheet_x":50,"sheet_y":35,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D4-1F3FF-200D-2642-FE0F","non_qualified":"1F9D4-1F3FF-200D-2642","image":"1f9d4-1f3ff-200d-2642-fe0f.png","sheet_x":50,"sheet_y":36,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man: Beard","b":"1F9D4-200D-2642-FE0F","c":"1F9D4-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man beard","facial hair"],"k":[50,31],"o":13},"woman_with_beard":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F9D4-1F3FB-200D-2640-FE0F","non_qualified":"1F9D4-1F3FB-200D-2640","image":"1f9d4-1f3fb-200d-2640-fe0f.png","sheet_x":50,"sheet_y":26,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D4-1F3FC-200D-2640-FE0F","non_qualified":"1F9D4-1F3FC-200D-2640","image":"1f9d4-1f3fc-200d-2640-fe0f.png","sheet_x":50,"sheet_y":27,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D4-1F3FD-200D-2640-FE0F","non_qualified":"1F9D4-1F3FD-200D-2640","image":"1f9d4-1f3fd-200d-2640-fe0f.png","sheet_x":50,"sheet_y":28,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D4-1F3FE-200D-2640-FE0F","non_qualified":"1F9D4-1F3FE-200D-2640","image":"1f9d4-1f3fe-200d-2640-fe0f.png","sheet_x":50,"sheet_y":29,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D4-1F3FF-200D-2640-FE0F","non_qualified":"1F9D4-1F3FF-200D-2640","image":"1f9d4-1f3ff-200d-2640-fe0f.png","sheet_x":50,"sheet_y":30,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman: Beard","b":"1F9D4-200D-2640-FE0F","c":"1F9D4-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman beard","facial hair"],"k":[50,25],"o":13},"red_haired_man":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F468-1F3FB-200D-1F9B0","non_qualified":null,"image":"1f468-1f3fb-200d-1f9b0.png","sheet_x":15,"sheet_y":31,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F468-1F3FC-200D-1F9B0","non_qualified":null,"image":"1f468-1f3fc-200d-1f9b0.png","sheet_x":15,"sheet_y":32,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F468-1F3FD-200D-1F9B0","non_qualified":null,"image":"1f468-1f3fd-200d-1f9b0.png","sheet_x":15,"sheet_y":33,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F468-1F3FE-200D-1F9B0","non_qualified":null,"image":"1f468-1f3fe-200d-1f9b0.png","sheet_x":15,"sheet_y":34,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F468-1F3FF-200D-1F9B0","non_qualified":null,"image":"1f468-1f3ff-200d-1f9b0.png","sheet_x":15,"sheet_y":35,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man: Red Hair","b":"1F468-200D-1F9B0","d":true,"e":true,"f":true,"h":true,"j":["man_red_hair","hairstyle"],"k":[15,30],"o":11},"curly_haired_man":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F468-1F3FB-200D-1F9B1","non_qualified":null,"image":"1f468-1f3fb-200d-1f9b1.png","sheet_x":15,"sheet_y":37,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F468-1F3FC-200D-1F9B1","non_qualified":null,"image":"1f468-1f3fc-200d-1f9b1.png","sheet_x":15,"sheet_y":38,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F468-1F3FD-200D-1F9B1","non_qualified":null,"image":"1f468-1f3fd-200d-1f9b1.png","sheet_x":15,"sheet_y":39,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F468-1F3FE-200D-1F9B1","non_qualified":null,"image":"1f468-1f3fe-200d-1f9b1.png","sheet_x":15,"sheet_y":40,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F468-1F3FF-200D-1F9B1","non_qualified":null,"image":"1f468-1f3ff-200d-1f9b1.png","sheet_x":15,"sheet_y":41,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man: Curly Hair","b":"1F468-200D-1F9B1","d":true,"e":true,"f":true,"h":true,"j":["man_curly_hair","hairstyle"],"k":[15,36],"o":11},"white_haired_man":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F468-1F3FB-200D-1F9B3","non_qualified":null,"image":"1f468-1f3fb-200d-1f9b3.png","sheet_x":15,"sheet_y":49,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F468-1F3FC-200D-1F9B3","non_qualified":null,"image":"1f468-1f3fc-200d-1f9b3.png","sheet_x":15,"sheet_y":50,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F468-1F3FD-200D-1F9B3","non_qualified":null,"image":"1f468-1f3fd-200d-1f9b3.png","sheet_x":15,"sheet_y":51,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F468-1F3FE-200D-1F9B3","non_qualified":null,"image":"1f468-1f3fe-200d-1f9b3.png","sheet_x":15,"sheet_y":52,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F468-1F3FF-200D-1F9B3","non_qualified":null,"image":"1f468-1f3ff-200d-1f9b3.png","sheet_x":15,"sheet_y":53,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man: White Hair","b":"1F468-200D-1F9B3","d":true,"e":true,"f":true,"h":true,"j":["man_white_hair","old","elder"],"k":[15,48],"o":11},"bald_man":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F468-1F3FB-200D-1F9B2","non_qualified":null,"image":"1f468-1f3fb-200d-1f9b2.png","sheet_x":15,"sheet_y":43,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F468-1F3FC-200D-1F9B2","non_qualified":null,"image":"1f468-1f3fc-200d-1f9b2.png","sheet_x":15,"sheet_y":44,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F468-1F3FD-200D-1F9B2","non_qualified":null,"image":"1f468-1f3fd-200d-1f9b2.png","sheet_x":15,"sheet_y":45,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F468-1F3FE-200D-1F9B2","non_qualified":null,"image":"1f468-1f3fe-200d-1f9b2.png","sheet_x":15,"sheet_y":46,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F468-1F3FF-200D-1F9B2","non_qualified":null,"image":"1f468-1f3ff-200d-1f9b2.png","sheet_x":15,"sheet_y":47,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man: Bald","b":"1F468-200D-1F9B2","d":true,"e":true,"f":true,"h":true,"j":["man_bald","hairless"],"k":[15,42],"o":11},"woman":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F469-1F3FB","non_qualified":null,"image":"1f469-1f3fb.png","sheet_x":21,"sheet_y":35,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F469-1F3FC","non_qualified":null,"image":"1f469-1f3fc.png","sheet_x":21,"sheet_y":36,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F469-1F3FD","non_qualified":null,"image":"1f469-1f3fd.png","sheet_x":21,"sheet_y":37,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F469-1F3FE","non_qualified":null,"image":"1f469-1f3fe.png","sheet_x":21,"sheet_y":38,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F469-1F3FF","non_qualified":null,"image":"1f469-1f3ff.png","sheet_x":21,"sheet_y":39,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman","b":"1F469","d":true,"e":true,"f":true,"h":true,"j":["woman","female","girls","lady"],"k":[21,34],"o":0},"red_haired_woman":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F469-1F3FB-200D-1F9B0","non_qualified":null,"image":"1f469-1f3fb-200d-1f9b0.png","sheet_x":18,"sheet_y":60,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F469-1F3FC-200D-1F9B0","non_qualified":null,"image":"1f469-1f3fc-200d-1f9b0.png","sheet_x":19,"sheet_y":0,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F469-1F3FD-200D-1F9B0","non_qualified":null,"image":"1f469-1f3fd-200d-1f9b0.png","sheet_x":19,"sheet_y":1,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F469-1F3FE-200D-1F9B0","non_qualified":null,"image":"1f469-1f3fe-200d-1f9b0.png","sheet_x":19,"sheet_y":2,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F469-1F3FF-200D-1F9B0","non_qualified":null,"image":"1f469-1f3ff-200d-1f9b0.png","sheet_x":19,"sheet_y":3,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman: Red Hair","b":"1F469-200D-1F9B0","d":true,"e":true,"f":true,"h":true,"j":["woman_red_hair","hairstyle"],"k":[18,59],"o":11},"red_haired_person":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F9D1-1F3FB-200D-1F9B0","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f9b0.png","sheet_x":49,"sheet_y":15,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D1-1F3FC-200D-1F9B0","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f9b0.png","sheet_x":49,"sheet_y":16,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D1-1F3FD-200D-1F9B0","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f9b0.png","sheet_x":49,"sheet_y":17,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D1-1F3FE-200D-1F9B0","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f9b0.png","sheet_x":49,"sheet_y":18,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D1-1F3FF-200D-1F9B0","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f9b0.png","sheet_x":49,"sheet_y":19,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Person: Red Hair","b":"1F9D1-200D-1F9B0","d":true,"e":true,"f":true,"h":true,"j":["person_red_hair","hairstyle"],"k":[49,14],"o":12},"curly_haired_woman":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F469-1F3FB-200D-1F9B1","non_qualified":null,"image":"1f469-1f3fb-200d-1f9b1.png","sheet_x":19,"sheet_y":5,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F469-1F3FC-200D-1F9B1","non_qualified":null,"image":"1f469-1f3fc-200d-1f9b1.png","sheet_x":19,"sheet_y":6,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F469-1F3FD-200D-1F9B1","non_qualified":null,"image":"1f469-1f3fd-200d-1f9b1.png","sheet_x":19,"sheet_y":7,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F469-1F3FE-200D-1F9B1","non_qualified":null,"image":"1f469-1f3fe-200d-1f9b1.png","sheet_x":19,"sheet_y":8,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F469-1F3FF-200D-1F9B1","non_qualified":null,"image":"1f469-1f3ff-200d-1f9b1.png","sheet_x":19,"sheet_y":9,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman: Curly Hair","b":"1F469-200D-1F9B1","d":true,"e":true,"f":true,"h":true,"j":["woman_curly_hair","hairstyle"],"k":[19,4],"o":11},"curly_haired_person":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F9D1-1F3FB-200D-1F9B1","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f9b1.png","sheet_x":49,"sheet_y":21,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D1-1F3FC-200D-1F9B1","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f9b1.png","sheet_x":49,"sheet_y":22,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D1-1F3FD-200D-1F9B1","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f9b1.png","sheet_x":49,"sheet_y":23,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D1-1F3FE-200D-1F9B1","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f9b1.png","sheet_x":49,"sheet_y":24,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D1-1F3FF-200D-1F9B1","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f9b1.png","sheet_x":49,"sheet_y":25,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Person: Curly Hair","b":"1F9D1-200D-1F9B1","d":true,"e":true,"f":true,"h":true,"j":["person_curly_hair","hairstyle"],"k":[49,20],"o":12},"white_haired_woman":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F469-1F3FB-200D-1F9B3","non_qualified":null,"image":"1f469-1f3fb-200d-1f9b3.png","sheet_x":19,"sheet_y":17,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F469-1F3FC-200D-1F9B3","non_qualified":null,"image":"1f469-1f3fc-200d-1f9b3.png","sheet_x":19,"sheet_y":18,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F469-1F3FD-200D-1F9B3","non_qualified":null,"image":"1f469-1f3fd-200d-1f9b3.png","sheet_x":19,"sheet_y":19,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F469-1F3FE-200D-1F9B3","non_qualified":null,"image":"1f469-1f3fe-200d-1f9b3.png","sheet_x":19,"sheet_y":20,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F469-1F3FF-200D-1F9B3","non_qualified":null,"image":"1f469-1f3ff-200d-1f9b3.png","sheet_x":19,"sheet_y":21,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman: White Hair","b":"1F469-200D-1F9B3","d":true,"e":true,"f":true,"h":true,"j":["woman_white_hair","old","elder"],"k":[19,16],"o":11},"white_haired_person":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F9D1-1F3FB-200D-1F9B3","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f9b3.png","sheet_x":49,"sheet_y":33,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D1-1F3FC-200D-1F9B3","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f9b3.png","sheet_x":49,"sheet_y":34,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D1-1F3FD-200D-1F9B3","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f9b3.png","sheet_x":49,"sheet_y":35,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D1-1F3FE-200D-1F9B3","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f9b3.png","sheet_x":49,"sheet_y":36,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D1-1F3FF-200D-1F9B3","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f9b3.png","sheet_x":49,"sheet_y":37,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Person: White Hair","b":"1F9D1-200D-1F9B3","d":true,"e":true,"f":true,"h":true,"j":["person_white_hair","elder","old"],"k":[49,32],"o":12},"bald_woman":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F469-1F3FB-200D-1F9B2","non_qualified":null,"image":"1f469-1f3fb-200d-1f9b2.png","sheet_x":19,"sheet_y":11,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F469-1F3FC-200D-1F9B2","non_qualified":null,"image":"1f469-1f3fc-200d-1f9b2.png","sheet_x":19,"sheet_y":12,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F469-1F3FD-200D-1F9B2","non_qualified":null,"image":"1f469-1f3fd-200d-1f9b2.png","sheet_x":19,"sheet_y":13,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F469-1F3FE-200D-1F9B2","non_qualified":null,"image":"1f469-1f3fe-200d-1f9b2.png","sheet_x":19,"sheet_y":14,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F469-1F3FF-200D-1F9B2","non_qualified":null,"image":"1f469-1f3ff-200d-1f9b2.png","sheet_x":19,"sheet_y":15,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman: Bald","b":"1F469-200D-1F9B2","d":true,"e":true,"f":true,"h":true,"j":["woman_bald","hairless"],"k":[19,10],"o":11},"bald_person":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F9D1-1F3FB-200D-1F9B2","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f9b2.png","sheet_x":49,"sheet_y":27,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D1-1F3FC-200D-1F9B2","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f9b2.png","sheet_x":49,"sheet_y":28,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D1-1F3FD-200D-1F9B2","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f9b2.png","sheet_x":49,"sheet_y":29,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D1-1F3FE-200D-1F9B2","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f9b2.png","sheet_x":49,"sheet_y":30,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D1-1F3FF-200D-1F9B2","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f9b2.png","sheet_x":49,"sheet_y":31,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Person: Bald","b":"1F9D1-200D-1F9B2","d":true,"e":true,"f":true,"h":true,"j":["person_bald","hairless"],"k":[49,26],"o":12},"blond-haired-woman":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F471-1F3FB-200D-2640-FE0F","non_qualified":"1F471-1F3FB-200D-2640","image":"1f471-1f3fb-200d-2640-fe0f.png","sheet_x":23,"sheet_y":37,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F471-1F3FC-200D-2640-FE0F","non_qualified":"1F471-1F3FC-200D-2640","image":"1f471-1f3fc-200d-2640-fe0f.png","sheet_x":23,"sheet_y":38,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F471-1F3FD-200D-2640-FE0F","non_qualified":"1F471-1F3FD-200D-2640","image":"1f471-1f3fd-200d-2640-fe0f.png","sheet_x":23,"sheet_y":39,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F471-1F3FE-200D-2640-FE0F","non_qualified":"1F471-1F3FE-200D-2640","image":"1f471-1f3fe-200d-2640-fe0f.png","sheet_x":23,"sheet_y":40,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F471-1F3FF-200D-2640-FE0F","non_qualified":"1F471-1F3FF-200D-2640","image":"1f471-1f3ff-200d-2640-fe0f.png","sheet_x":23,"sheet_y":41,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman: Blond Hair","b":"1F471-200D-2640-FE0F","c":"1F471-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_blond_hair","woman","female","girl","blonde","person"],"k":[23,36],"o":4},"blond-haired-man":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F471-1F3FB-200D-2642-FE0F","non_qualified":"1F471-1F3FB-200D-2642","image":"1f471-1f3fb-200d-2642-fe0f.png","sheet_x":23,"sheet_y":43,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F471-1F3FC-200D-2642-FE0F","non_qualified":"1F471-1F3FC-200D-2642","image":"1f471-1f3fc-200d-2642-fe0f.png","sheet_x":23,"sheet_y":44,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F471-1F3FD-200D-2642-FE0F","non_qualified":"1F471-1F3FD-200D-2642","image":"1f471-1f3fd-200d-2642-fe0f.png","sheet_x":23,"sheet_y":45,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F471-1F3FE-200D-2642-FE0F","non_qualified":"1F471-1F3FE-200D-2642","image":"1f471-1f3fe-200d-2642-fe0f.png","sheet_x":23,"sheet_y":46,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F471-1F3FF-200D-2642-FE0F","non_qualified":"1F471-1F3FF-200D-2642","image":"1f471-1f3ff-200d-2642-fe0f.png","sheet_x":23,"sheet_y":47,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoletes":"1F471","a":"Man: Blond Hair","b":"1F471-200D-2642-FE0F","c":"1F471-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_blond_hair","man","male","boy","blonde","guy","person"],"k":[23,42],"o":4},"older_adult":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F9D3-1F3FB","non_qualified":null,"image":"1f9d3-1f3fb.png","sheet_x":50,"sheet_y":20,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D3-1F3FC","non_qualified":null,"image":"1f9d3-1f3fc.png","sheet_x":50,"sheet_y":21,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D3-1F3FD","non_qualified":null,"image":"1f9d3-1f3fd.png","sheet_x":50,"sheet_y":22,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D3-1F3FE","non_qualified":null,"image":"1f9d3-1f3fe.png","sheet_x":50,"sheet_y":23,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D3-1F3FF","non_qualified":null,"image":"1f9d3-1f3ff.png","sheet_x":50,"sheet_y":24,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Older Adult","b":"1F9D3","d":true,"e":true,"f":true,"h":true,"j":["older_person","human","elder","senior","gender-neutral"],"k":[50,19],"o":5},"older_man":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F474-1F3FB","non_qualified":null,"image":"1f474-1f3fb.png","sheet_x":24,"sheet_y":18,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F474-1F3FC","non_qualified":null,"image":"1f474-1f3fc.png","sheet_x":24,"sheet_y":19,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F474-1F3FD","non_qualified":null,"image":"1f474-1f3fd.png","sheet_x":24,"sheet_y":20,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F474-1F3FE","non_qualified":null,"image":"1f474-1f3fe.png","sheet_x":24,"sheet_y":21,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F474-1F3FF","non_qualified":null,"image":"1f474-1f3ff.png","sheet_x":24,"sheet_y":22,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Older Man","b":"1F474","d":true,"e":true,"f":true,"h":true,"j":["old_man","human","male","men","old","elder","senior"],"k":[24,17],"o":0},"older_woman":{"subcategory":"person","skin_variations":{"1F3FB":{"unified":"1F475-1F3FB","non_qualified":null,"image":"1f475-1f3fb.png","sheet_x":24,"sheet_y":24,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F475-1F3FC","non_qualified":null,"image":"1f475-1f3fc.png","sheet_x":24,"sheet_y":25,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F475-1F3FD","non_qualified":null,"image":"1f475-1f3fd.png","sheet_x":24,"sheet_y":26,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F475-1F3FE","non_qualified":null,"image":"1f475-1f3fe.png","sheet_x":24,"sheet_y":27,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F475-1F3FF","non_qualified":null,"image":"1f475-1f3ff.png","sheet_x":24,"sheet_y":28,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Older Woman","b":"1F475","d":true,"e":true,"f":true,"h":true,"j":["old_woman","human","female","women","lady","old","elder","senior"],"k":[24,23],"o":0},"person_frowning":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F64D-1F3FB","non_qualified":null,"image":"1f64d-1f3fb.png","sheet_x":35,"sheet_y":4,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F64D-1F3FC","non_qualified":null,"image":"1f64d-1f3fc.png","sheet_x":35,"sheet_y":5,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F64D-1F3FD","non_qualified":null,"image":"1f64d-1f3fd.png","sheet_x":35,"sheet_y":6,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F64D-1F3FE","non_qualified":null,"image":"1f64d-1f3fe.png","sheet_x":35,"sheet_y":7,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F64D-1F3FF","non_qualified":null,"image":"1f64d-1f3ff.png","sheet_x":35,"sheet_y":8,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoleted_by":"1F64D-200D-2640-FE0F","a":"Person Frowning","b":"1F64D","d":true,"e":true,"f":true,"h":true,"j":["person_frowning","worried"],"k":[35,3],"o":0},"man-frowning":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F64D-1F3FB-200D-2642-FE0F","non_qualified":"1F64D-1F3FB-200D-2642","image":"1f64d-1f3fb-200d-2642-fe0f.png","sheet_x":34,"sheet_y":59,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F64D-1F3FC-200D-2642-FE0F","non_qualified":"1F64D-1F3FC-200D-2642","image":"1f64d-1f3fc-200d-2642-fe0f.png","sheet_x":34,"sheet_y":60,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F64D-1F3FD-200D-2642-FE0F","non_qualified":"1F64D-1F3FD-200D-2642","image":"1f64d-1f3fd-200d-2642-fe0f.png","sheet_x":35,"sheet_y":0,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F64D-1F3FE-200D-2642-FE0F","non_qualified":"1F64D-1F3FE-200D-2642","image":"1f64d-1f3fe-200d-2642-fe0f.png","sheet_x":35,"sheet_y":1,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F64D-1F3FF-200D-2642-FE0F","non_qualified":"1F64D-1F3FF-200D-2642","image":"1f64d-1f3ff-200d-2642-fe0f.png","sheet_x":35,"sheet_y":2,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Frowning","b":"1F64D-200D-2642-FE0F","c":"1F64D-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_frowning","male","boy","man","sad","depressed","discouraged","unhappy"],"k":[34,58],"o":4},"woman-frowning":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F64D-1F3FB-200D-2640-FE0F","non_qualified":"1F64D-1F3FB-200D-2640","image":"1f64d-1f3fb-200d-2640-fe0f.png","sheet_x":34,"sheet_y":53,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F64D-1F3FC-200D-2640-FE0F","non_qualified":"1F64D-1F3FC-200D-2640","image":"1f64d-1f3fc-200d-2640-fe0f.png","sheet_x":34,"sheet_y":54,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F64D-1F3FD-200D-2640-FE0F","non_qualified":"1F64D-1F3FD-200D-2640","image":"1f64d-1f3fd-200d-2640-fe0f.png","sheet_x":34,"sheet_y":55,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F64D-1F3FE-200D-2640-FE0F","non_qualified":"1F64D-1F3FE-200D-2640","image":"1f64d-1f3fe-200d-2640-fe0f.png","sheet_x":34,"sheet_y":56,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F64D-1F3FF-200D-2640-FE0F","non_qualified":"1F64D-1F3FF-200D-2640","image":"1f64d-1f3ff-200d-2640-fe0f.png","sheet_x":34,"sheet_y":57,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoletes":"1F64D","a":"Woman Frowning","b":"1F64D-200D-2640-FE0F","c":"1F64D-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_frowning","female","girl","woman","sad","depressed","discouraged","unhappy"],"k":[34,52],"o":4},"person_with_pouting_face":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F64E-1F3FB","non_qualified":null,"image":"1f64e-1f3fb.png","sheet_x":35,"sheet_y":22,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F64E-1F3FC","non_qualified":null,"image":"1f64e-1f3fc.png","sheet_x":35,"sheet_y":23,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F64E-1F3FD","non_qualified":null,"image":"1f64e-1f3fd.png","sheet_x":35,"sheet_y":24,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F64E-1F3FE","non_qualified":null,"image":"1f64e-1f3fe.png","sheet_x":35,"sheet_y":25,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F64E-1F3FF","non_qualified":null,"image":"1f64e-1f3ff.png","sheet_x":35,"sheet_y":26,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoleted_by":"1F64E-200D-2640-FE0F","a":"Person with Pouting Face","b":"1F64E","d":true,"e":true,"f":true,"h":true,"j":["person_pouting","upset"],"k":[35,21],"o":0},"man-pouting":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F64E-1F3FB-200D-2642-FE0F","non_qualified":"1F64E-1F3FB-200D-2642","image":"1f64e-1f3fb-200d-2642-fe0f.png","sheet_x":35,"sheet_y":16,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F64E-1F3FC-200D-2642-FE0F","non_qualified":"1F64E-1F3FC-200D-2642","image":"1f64e-1f3fc-200d-2642-fe0f.png","sheet_x":35,"sheet_y":17,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F64E-1F3FD-200D-2642-FE0F","non_qualified":"1F64E-1F3FD-200D-2642","image":"1f64e-1f3fd-200d-2642-fe0f.png","sheet_x":35,"sheet_y":18,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F64E-1F3FE-200D-2642-FE0F","non_qualified":"1F64E-1F3FE-200D-2642","image":"1f64e-1f3fe-200d-2642-fe0f.png","sheet_x":35,"sheet_y":19,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F64E-1F3FF-200D-2642-FE0F","non_qualified":"1F64E-1F3FF-200D-2642","image":"1f64e-1f3ff-200d-2642-fe0f.png","sheet_x":35,"sheet_y":20,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Pouting","b":"1F64E-200D-2642-FE0F","c":"1F64E-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_pouting","male","boy","man"],"k":[35,15],"o":4},"woman-pouting":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F64E-1F3FB-200D-2640-FE0F","non_qualified":"1F64E-1F3FB-200D-2640","image":"1f64e-1f3fb-200d-2640-fe0f.png","sheet_x":35,"sheet_y":10,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F64E-1F3FC-200D-2640-FE0F","non_qualified":"1F64E-1F3FC-200D-2640","image":"1f64e-1f3fc-200d-2640-fe0f.png","sheet_x":35,"sheet_y":11,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F64E-1F3FD-200D-2640-FE0F","non_qualified":"1F64E-1F3FD-200D-2640","image":"1f64e-1f3fd-200d-2640-fe0f.png","sheet_x":35,"sheet_y":12,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F64E-1F3FE-200D-2640-FE0F","non_qualified":"1F64E-1F3FE-200D-2640","image":"1f64e-1f3fe-200d-2640-fe0f.png","sheet_x":35,"sheet_y":13,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F64E-1F3FF-200D-2640-FE0F","non_qualified":"1F64E-1F3FF-200D-2640","image":"1f64e-1f3ff-200d-2640-fe0f.png","sheet_x":35,"sheet_y":14,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoletes":"1F64E","a":"Woman Pouting","b":"1F64E-200D-2640-FE0F","c":"1F64E-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_pouting","female","girl","woman"],"k":[35,9],"o":4},"no_good":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F645-1F3FB","non_qualified":null,"image":"1f645-1f3fb.png","sheet_x":33,"sheet_y":45,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F645-1F3FC","non_qualified":null,"image":"1f645-1f3fc.png","sheet_x":33,"sheet_y":46,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F645-1F3FD","non_qualified":null,"image":"1f645-1f3fd.png","sheet_x":33,"sheet_y":47,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F645-1F3FE","non_qualified":null,"image":"1f645-1f3fe.png","sheet_x":33,"sheet_y":48,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F645-1F3FF","non_qualified":null,"image":"1f645-1f3ff.png","sheet_x":33,"sheet_y":49,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoleted_by":"1F645-200D-2640-FE0F","a":"Face with No Good Gesture","b":"1F645","d":true,"e":true,"f":true,"h":true,"j":["person_gesturing_no","decline"],"k":[33,44],"o":0},"man-gesturing-no":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F645-1F3FB-200D-2642-FE0F","non_qualified":"1F645-1F3FB-200D-2642","image":"1f645-1f3fb-200d-2642-fe0f.png","sheet_x":33,"sheet_y":39,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F645-1F3FC-200D-2642-FE0F","non_qualified":"1F645-1F3FC-200D-2642","image":"1f645-1f3fc-200d-2642-fe0f.png","sheet_x":33,"sheet_y":40,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F645-1F3FD-200D-2642-FE0F","non_qualified":"1F645-1F3FD-200D-2642","image":"1f645-1f3fd-200d-2642-fe0f.png","sheet_x":33,"sheet_y":41,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F645-1F3FE-200D-2642-FE0F","non_qualified":"1F645-1F3FE-200D-2642","image":"1f645-1f3fe-200d-2642-fe0f.png","sheet_x":33,"sheet_y":42,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F645-1F3FF-200D-2642-FE0F","non_qualified":"1F645-1F3FF-200D-2642","image":"1f645-1f3ff-200d-2642-fe0f.png","sheet_x":33,"sheet_y":43,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Gesturing No","b":"1F645-200D-2642-FE0F","c":"1F645-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_gesturing_no","male","boy","man","nope"],"k":[33,38],"o":4},"woman-gesturing-no":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F645-1F3FB-200D-2640-FE0F","non_qualified":"1F645-1F3FB-200D-2640","image":"1f645-1f3fb-200d-2640-fe0f.png","sheet_x":33,"sheet_y":33,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F645-1F3FC-200D-2640-FE0F","non_qualified":"1F645-1F3FC-200D-2640","image":"1f645-1f3fc-200d-2640-fe0f.png","sheet_x":33,"sheet_y":34,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F645-1F3FD-200D-2640-FE0F","non_qualified":"1F645-1F3FD-200D-2640","image":"1f645-1f3fd-200d-2640-fe0f.png","sheet_x":33,"sheet_y":35,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F645-1F3FE-200D-2640-FE0F","non_qualified":"1F645-1F3FE-200D-2640","image":"1f645-1f3fe-200d-2640-fe0f.png","sheet_x":33,"sheet_y":36,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F645-1F3FF-200D-2640-FE0F","non_qualified":"1F645-1F3FF-200D-2640","image":"1f645-1f3ff-200d-2640-fe0f.png","sheet_x":33,"sheet_y":37,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoletes":"1F645","a":"Woman Gesturing No","b":"1F645-200D-2640-FE0F","c":"1F645-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_gesturing_no","female","girl","woman","nope"],"k":[33,32],"o":4},"ok_woman":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F646-1F3FB","non_qualified":null,"image":"1f646-1f3fb.png","sheet_x":34,"sheet_y":2,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F646-1F3FC","non_qualified":null,"image":"1f646-1f3fc.png","sheet_x":34,"sheet_y":3,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F646-1F3FD","non_qualified":null,"image":"1f646-1f3fd.png","sheet_x":34,"sheet_y":4,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F646-1F3FE","non_qualified":null,"image":"1f646-1f3fe.png","sheet_x":34,"sheet_y":5,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F646-1F3FF","non_qualified":null,"image":"1f646-1f3ff.png","sheet_x":34,"sheet_y":6,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoleted_by":"1F646-200D-2640-FE0F","a":"Face with Ok Gesture","b":"1F646","d":true,"e":true,"f":true,"h":true,"j":["person_gesturing_ok","agree"],"k":[34,1],"o":0},"man-gesturing-ok":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F646-1F3FB-200D-2642-FE0F","non_qualified":"1F646-1F3FB-200D-2642","image":"1f646-1f3fb-200d-2642-fe0f.png","sheet_x":33,"sheet_y":57,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F646-1F3FC-200D-2642-FE0F","non_qualified":"1F646-1F3FC-200D-2642","image":"1f646-1f3fc-200d-2642-fe0f.png","sheet_x":33,"sheet_y":58,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F646-1F3FD-200D-2642-FE0F","non_qualified":"1F646-1F3FD-200D-2642","image":"1f646-1f3fd-200d-2642-fe0f.png","sheet_x":33,"sheet_y":59,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F646-1F3FE-200D-2642-FE0F","non_qualified":"1F646-1F3FE-200D-2642","image":"1f646-1f3fe-200d-2642-fe0f.png","sheet_x":33,"sheet_y":60,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F646-1F3FF-200D-2642-FE0F","non_qualified":"1F646-1F3FF-200D-2642","image":"1f646-1f3ff-200d-2642-fe0f.png","sheet_x":34,"sheet_y":0,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Gesturing Ok","b":"1F646-200D-2642-FE0F","c":"1F646-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_gesturing_ok","men","boy","male","blue","human","man"],"k":[33,56],"o":4},"woman-gesturing-ok":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F646-1F3FB-200D-2640-FE0F","non_qualified":"1F646-1F3FB-200D-2640","image":"1f646-1f3fb-200d-2640-fe0f.png","sheet_x":33,"sheet_y":51,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F646-1F3FC-200D-2640-FE0F","non_qualified":"1F646-1F3FC-200D-2640","image":"1f646-1f3fc-200d-2640-fe0f.png","sheet_x":33,"sheet_y":52,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F646-1F3FD-200D-2640-FE0F","non_qualified":"1F646-1F3FD-200D-2640","image":"1f646-1f3fd-200d-2640-fe0f.png","sheet_x":33,"sheet_y":53,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F646-1F3FE-200D-2640-FE0F","non_qualified":"1F646-1F3FE-200D-2640","image":"1f646-1f3fe-200d-2640-fe0f.png","sheet_x":33,"sheet_y":54,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F646-1F3FF-200D-2640-FE0F","non_qualified":"1F646-1F3FF-200D-2640","image":"1f646-1f3ff-200d-2640-fe0f.png","sheet_x":33,"sheet_y":55,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoletes":"1F646","a":"Woman Gesturing Ok","b":"1F646-200D-2640-FE0F","c":"1F646-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_gesturing_ok","women","girl","female","pink","human","woman"],"k":[33,50],"o":4},"information_desk_person":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F481-1F3FB","non_qualified":null,"image":"1f481-1f3fb.png","sheet_x":25,"sheet_y":24,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F481-1F3FC","non_qualified":null,"image":"1f481-1f3fc.png","sheet_x":25,"sheet_y":25,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F481-1F3FD","non_qualified":null,"image":"1f481-1f3fd.png","sheet_x":25,"sheet_y":26,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F481-1F3FE","non_qualified":null,"image":"1f481-1f3fe.png","sheet_x":25,"sheet_y":27,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F481-1F3FF","non_qualified":null,"image":"1f481-1f3ff.png","sheet_x":25,"sheet_y":28,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoleted_by":"1F481-200D-2640-FE0F","a":"Information Desk Person","b":"1F481","d":true,"e":true,"f":true,"h":true,"j":["person_tipping_hand","information"],"k":[25,23],"o":0},"man-tipping-hand":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F481-1F3FB-200D-2642-FE0F","non_qualified":"1F481-1F3FB-200D-2642","image":"1f481-1f3fb-200d-2642-fe0f.png","sheet_x":25,"sheet_y":18,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F481-1F3FC-200D-2642-FE0F","non_qualified":"1F481-1F3FC-200D-2642","image":"1f481-1f3fc-200d-2642-fe0f.png","sheet_x":25,"sheet_y":19,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F481-1F3FD-200D-2642-FE0F","non_qualified":"1F481-1F3FD-200D-2642","image":"1f481-1f3fd-200d-2642-fe0f.png","sheet_x":25,"sheet_y":20,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F481-1F3FE-200D-2642-FE0F","non_qualified":"1F481-1F3FE-200D-2642","image":"1f481-1f3fe-200d-2642-fe0f.png","sheet_x":25,"sheet_y":21,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F481-1F3FF-200D-2642-FE0F","non_qualified":"1F481-1F3FF-200D-2642","image":"1f481-1f3ff-200d-2642-fe0f.png","sheet_x":25,"sheet_y":22,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Tipping Hand","b":"1F481-200D-2642-FE0F","c":"1F481-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_tipping_hand","male","boy","man","human","information"],"k":[25,17],"o":4},"woman-tipping-hand":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F481-1F3FB-200D-2640-FE0F","non_qualified":"1F481-1F3FB-200D-2640","image":"1f481-1f3fb-200d-2640-fe0f.png","sheet_x":25,"sheet_y":12,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F481-1F3FC-200D-2640-FE0F","non_qualified":"1F481-1F3FC-200D-2640","image":"1f481-1f3fc-200d-2640-fe0f.png","sheet_x":25,"sheet_y":13,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F481-1F3FD-200D-2640-FE0F","non_qualified":"1F481-1F3FD-200D-2640","image":"1f481-1f3fd-200d-2640-fe0f.png","sheet_x":25,"sheet_y":14,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F481-1F3FE-200D-2640-FE0F","non_qualified":"1F481-1F3FE-200D-2640","image":"1f481-1f3fe-200d-2640-fe0f.png","sheet_x":25,"sheet_y":15,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F481-1F3FF-200D-2640-FE0F","non_qualified":"1F481-1F3FF-200D-2640","image":"1f481-1f3ff-200d-2640-fe0f.png","sheet_x":25,"sheet_y":16,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoletes":"1F481","a":"Woman Tipping Hand","b":"1F481-200D-2640-FE0F","c":"1F481-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_tipping_hand","female","girl","woman","human","information"],"k":[25,11],"o":4},"raising_hand":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F64B-1F3FB","non_qualified":null,"image":"1f64b-1f3fb.png","sheet_x":34,"sheet_y":41,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F64B-1F3FC","non_qualified":null,"image":"1f64b-1f3fc.png","sheet_x":34,"sheet_y":42,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F64B-1F3FD","non_qualified":null,"image":"1f64b-1f3fd.png","sheet_x":34,"sheet_y":43,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F64B-1F3FE","non_qualified":null,"image":"1f64b-1f3fe.png","sheet_x":34,"sheet_y":44,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F64B-1F3FF","non_qualified":null,"image":"1f64b-1f3ff.png","sheet_x":34,"sheet_y":45,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoleted_by":"1F64B-200D-2640-FE0F","a":"Happy Person Raising One Hand","b":"1F64B","d":true,"e":true,"f":true,"h":true,"j":["person_raising_hand","question"],"k":[34,40],"o":0},"man-raising-hand":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F64B-1F3FB-200D-2642-FE0F","non_qualified":"1F64B-1F3FB-200D-2642","image":"1f64b-1f3fb-200d-2642-fe0f.png","sheet_x":34,"sheet_y":35,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F64B-1F3FC-200D-2642-FE0F","non_qualified":"1F64B-1F3FC-200D-2642","image":"1f64b-1f3fc-200d-2642-fe0f.png","sheet_x":34,"sheet_y":36,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F64B-1F3FD-200D-2642-FE0F","non_qualified":"1F64B-1F3FD-200D-2642","image":"1f64b-1f3fd-200d-2642-fe0f.png","sheet_x":34,"sheet_y":37,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F64B-1F3FE-200D-2642-FE0F","non_qualified":"1F64B-1F3FE-200D-2642","image":"1f64b-1f3fe-200d-2642-fe0f.png","sheet_x":34,"sheet_y":38,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F64B-1F3FF-200D-2642-FE0F","non_qualified":"1F64B-1F3FF-200D-2642","image":"1f64b-1f3ff-200d-2642-fe0f.png","sheet_x":34,"sheet_y":39,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Raising Hand","b":"1F64B-200D-2642-FE0F","c":"1F64B-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_raising_hand","male","boy","man"],"k":[34,34],"o":4},"woman-raising-hand":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F64B-1F3FB-200D-2640-FE0F","non_qualified":"1F64B-1F3FB-200D-2640","image":"1f64b-1f3fb-200d-2640-fe0f.png","sheet_x":34,"sheet_y":29,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F64B-1F3FC-200D-2640-FE0F","non_qualified":"1F64B-1F3FC-200D-2640","image":"1f64b-1f3fc-200d-2640-fe0f.png","sheet_x":34,"sheet_y":30,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F64B-1F3FD-200D-2640-FE0F","non_qualified":"1F64B-1F3FD-200D-2640","image":"1f64b-1f3fd-200d-2640-fe0f.png","sheet_x":34,"sheet_y":31,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F64B-1F3FE-200D-2640-FE0F","non_qualified":"1F64B-1F3FE-200D-2640","image":"1f64b-1f3fe-200d-2640-fe0f.png","sheet_x":34,"sheet_y":32,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F64B-1F3FF-200D-2640-FE0F","non_qualified":"1F64B-1F3FF-200D-2640","image":"1f64b-1f3ff-200d-2640-fe0f.png","sheet_x":34,"sheet_y":33,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoletes":"1F64B","a":"Woman Raising Hand","b":"1F64B-200D-2640-FE0F","c":"1F64B-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_raising_hand","female","girl","woman"],"k":[34,28],"o":4},"deaf_person":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F9CF-1F3FB","non_qualified":null,"image":"1f9cf-1f3fb.png","sheet_x":47,"sheet_y":8,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9CF-1F3FC","non_qualified":null,"image":"1f9cf-1f3fc.png","sheet_x":47,"sheet_y":9,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9CF-1F3FD","non_qualified":null,"image":"1f9cf-1f3fd.png","sheet_x":47,"sheet_y":10,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9CF-1F3FE","non_qualified":null,"image":"1f9cf-1f3fe.png","sheet_x":47,"sheet_y":11,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9CF-1F3FF","non_qualified":null,"image":"1f9cf-1f3ff.png","sheet_x":47,"sheet_y":12,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Deaf Person","b":"1F9CF","d":true,"e":true,"f":true,"h":true,"j":["deaf_person","accessibility"],"k":[47,7],"o":12},"deaf_man":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F9CF-1F3FB-200D-2642-FE0F","non_qualified":"1F9CF-1F3FB-200D-2642","image":"1f9cf-1f3fb-200d-2642-fe0f.png","sheet_x":47,"sheet_y":2,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9CF-1F3FC-200D-2642-FE0F","non_qualified":"1F9CF-1F3FC-200D-2642","image":"1f9cf-1f3fc-200d-2642-fe0f.png","sheet_x":47,"sheet_y":3,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9CF-1F3FD-200D-2642-FE0F","non_qualified":"1F9CF-1F3FD-200D-2642","image":"1f9cf-1f3fd-200d-2642-fe0f.png","sheet_x":47,"sheet_y":4,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9CF-1F3FE-200D-2642-FE0F","non_qualified":"1F9CF-1F3FE-200D-2642","image":"1f9cf-1f3fe-200d-2642-fe0f.png","sheet_x":47,"sheet_y":5,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9CF-1F3FF-200D-2642-FE0F","non_qualified":"1F9CF-1F3FF-200D-2642","image":"1f9cf-1f3ff-200d-2642-fe0f.png","sheet_x":47,"sheet_y":6,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Deaf Man","b":"1F9CF-200D-2642-FE0F","c":"1F9CF-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["deaf_man","accessibility"],"k":[47,1],"o":12},"deaf_woman":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F9CF-1F3FB-200D-2640-FE0F","non_qualified":"1F9CF-1F3FB-200D-2640","image":"1f9cf-1f3fb-200d-2640-fe0f.png","sheet_x":46,"sheet_y":57,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9CF-1F3FC-200D-2640-FE0F","non_qualified":"1F9CF-1F3FC-200D-2640","image":"1f9cf-1f3fc-200d-2640-fe0f.png","sheet_x":46,"sheet_y":58,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9CF-1F3FD-200D-2640-FE0F","non_qualified":"1F9CF-1F3FD-200D-2640","image":"1f9cf-1f3fd-200d-2640-fe0f.png","sheet_x":46,"sheet_y":59,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9CF-1F3FE-200D-2640-FE0F","non_qualified":"1F9CF-1F3FE-200D-2640","image":"1f9cf-1f3fe-200d-2640-fe0f.png","sheet_x":46,"sheet_y":60,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9CF-1F3FF-200D-2640-FE0F","non_qualified":"1F9CF-1F3FF-200D-2640","image":"1f9cf-1f3ff-200d-2640-fe0f.png","sheet_x":47,"sheet_y":0,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Deaf Woman","b":"1F9CF-200D-2640-FE0F","c":"1F9CF-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["deaf_woman","accessibility"],"k":[46,56],"o":12},"bow":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F647-1F3FB","non_qualified":null,"image":"1f647-1f3fb.png","sheet_x":34,"sheet_y":20,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F647-1F3FC","non_qualified":null,"image":"1f647-1f3fc.png","sheet_x":34,"sheet_y":21,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F647-1F3FD","non_qualified":null,"image":"1f647-1f3fd.png","sheet_x":34,"sheet_y":22,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F647-1F3FE","non_qualified":null,"image":"1f647-1f3fe.png","sheet_x":34,"sheet_y":23,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F647-1F3FF","non_qualified":null,"image":"1f647-1f3ff.png","sheet_x":34,"sheet_y":24,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Person Bowing Deeply","b":"1F647","d":true,"e":true,"f":true,"h":true,"j":["person_bowing","respectiful"],"k":[34,19],"o":0},"man-bowing":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F647-1F3FB-200D-2642-FE0F","non_qualified":"1F647-1F3FB-200D-2642","image":"1f647-1f3fb-200d-2642-fe0f.png","sheet_x":34,"sheet_y":14,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F647-1F3FC-200D-2642-FE0F","non_qualified":"1F647-1F3FC-200D-2642","image":"1f647-1f3fc-200d-2642-fe0f.png","sheet_x":34,"sheet_y":15,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F647-1F3FD-200D-2642-FE0F","non_qualified":"1F647-1F3FD-200D-2642","image":"1f647-1f3fd-200d-2642-fe0f.png","sheet_x":34,"sheet_y":16,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F647-1F3FE-200D-2642-FE0F","non_qualified":"1F647-1F3FE-200D-2642","image":"1f647-1f3fe-200d-2642-fe0f.png","sheet_x":34,"sheet_y":17,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F647-1F3FF-200D-2642-FE0F","non_qualified":"1F647-1F3FF-200D-2642","image":"1f647-1f3ff-200d-2642-fe0f.png","sheet_x":34,"sheet_y":18,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Bowing","b":"1F647-200D-2642-FE0F","c":"1F647-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_bowing","man","male","boy"],"k":[34,13],"o":4},"woman-bowing":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F647-1F3FB-200D-2640-FE0F","non_qualified":"1F647-1F3FB-200D-2640","image":"1f647-1f3fb-200d-2640-fe0f.png","sheet_x":34,"sheet_y":8,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F647-1F3FC-200D-2640-FE0F","non_qualified":"1F647-1F3FC-200D-2640","image":"1f647-1f3fc-200d-2640-fe0f.png","sheet_x":34,"sheet_y":9,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F647-1F3FD-200D-2640-FE0F","non_qualified":"1F647-1F3FD-200D-2640","image":"1f647-1f3fd-200d-2640-fe0f.png","sheet_x":34,"sheet_y":10,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F647-1F3FE-200D-2640-FE0F","non_qualified":"1F647-1F3FE-200D-2640","image":"1f647-1f3fe-200d-2640-fe0f.png","sheet_x":34,"sheet_y":11,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F647-1F3FF-200D-2640-FE0F","non_qualified":"1F647-1F3FF-200D-2640","image":"1f647-1f3ff-200d-2640-fe0f.png","sheet_x":34,"sheet_y":12,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Bowing","b":"1F647-200D-2640-FE0F","c":"1F647-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_bowing","woman","female","girl"],"k":[34,7],"o":4},"face_palm":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F926-1F3FB","non_qualified":null,"image":"1f926-1f3fb.png","sheet_x":40,"sheet_y":33,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F926-1F3FC","non_qualified":null,"image":"1f926-1f3fc.png","sheet_x":40,"sheet_y":34,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F926-1F3FD","non_qualified":null,"image":"1f926-1f3fd.png","sheet_x":40,"sheet_y":35,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F926-1F3FE","non_qualified":null,"image":"1f926-1f3fe.png","sheet_x":40,"sheet_y":36,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F926-1F3FF","non_qualified":null,"image":"1f926-1f3ff.png","sheet_x":40,"sheet_y":37,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Face Palm","b":"1F926","d":true,"e":true,"f":true,"h":true,"j":["person_facepalming","disappointed"],"k":[40,32],"o":3},"man-facepalming":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F926-1F3FB-200D-2642-FE0F","non_qualified":"1F926-1F3FB-200D-2642","image":"1f926-1f3fb-200d-2642-fe0f.png","sheet_x":40,"sheet_y":27,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F926-1F3FC-200D-2642-FE0F","non_qualified":"1F926-1F3FC-200D-2642","image":"1f926-1f3fc-200d-2642-fe0f.png","sheet_x":40,"sheet_y":28,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F926-1F3FD-200D-2642-FE0F","non_qualified":"1F926-1F3FD-200D-2642","image":"1f926-1f3fd-200d-2642-fe0f.png","sheet_x":40,"sheet_y":29,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F926-1F3FE-200D-2642-FE0F","non_qualified":"1F926-1F3FE-200D-2642","image":"1f926-1f3fe-200d-2642-fe0f.png","sheet_x":40,"sheet_y":30,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F926-1F3FF-200D-2642-FE0F","non_qualified":"1F926-1F3FF-200D-2642","image":"1f926-1f3ff-200d-2642-fe0f.png","sheet_x":40,"sheet_y":31,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Facepalming","b":"1F926-200D-2642-FE0F","c":"1F926-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_facepalming","man","male","boy","disbelief"],"k":[40,26],"o":4},"woman-facepalming":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F926-1F3FB-200D-2640-FE0F","non_qualified":"1F926-1F3FB-200D-2640","image":"1f926-1f3fb-200d-2640-fe0f.png","sheet_x":40,"sheet_y":21,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F926-1F3FC-200D-2640-FE0F","non_qualified":"1F926-1F3FC-200D-2640","image":"1f926-1f3fc-200d-2640-fe0f.png","sheet_x":40,"sheet_y":22,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F926-1F3FD-200D-2640-FE0F","non_qualified":"1F926-1F3FD-200D-2640","image":"1f926-1f3fd-200d-2640-fe0f.png","sheet_x":40,"sheet_y":23,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F926-1F3FE-200D-2640-FE0F","non_qualified":"1F926-1F3FE-200D-2640","image":"1f926-1f3fe-200d-2640-fe0f.png","sheet_x":40,"sheet_y":24,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F926-1F3FF-200D-2640-FE0F","non_qualified":"1F926-1F3FF-200D-2640","image":"1f926-1f3ff-200d-2640-fe0f.png","sheet_x":40,"sheet_y":25,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Facepalming","b":"1F926-200D-2640-FE0F","c":"1F926-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_facepalming","woman","female","girl","disbelief"],"k":[40,20],"o":4},"shrug":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F937-1F3FB","non_qualified":null,"image":"1f937-1f3fb.png","sheet_x":41,"sheet_y":53,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F937-1F3FC","non_qualified":null,"image":"1f937-1f3fc.png","sheet_x":41,"sheet_y":54,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F937-1F3FD","non_qualified":null,"image":"1f937-1f3fd.png","sheet_x":41,"sheet_y":55,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F937-1F3FE","non_qualified":null,"image":"1f937-1f3fe.png","sheet_x":41,"sheet_y":56,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F937-1F3FF","non_qualified":null,"image":"1f937-1f3ff.png","sheet_x":41,"sheet_y":57,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Shrug","b":"1F937","d":true,"e":true,"f":true,"h":true,"j":["person_shrugging","regardless"],"k":[41,52],"o":3},"man-shrugging":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F937-1F3FB-200D-2642-FE0F","non_qualified":"1F937-1F3FB-200D-2642","image":"1f937-1f3fb-200d-2642-fe0f.png","sheet_x":41,"sheet_y":47,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F937-1F3FC-200D-2642-FE0F","non_qualified":"1F937-1F3FC-200D-2642","image":"1f937-1f3fc-200d-2642-fe0f.png","sheet_x":41,"sheet_y":48,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F937-1F3FD-200D-2642-FE0F","non_qualified":"1F937-1F3FD-200D-2642","image":"1f937-1f3fd-200d-2642-fe0f.png","sheet_x":41,"sheet_y":49,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F937-1F3FE-200D-2642-FE0F","non_qualified":"1F937-1F3FE-200D-2642","image":"1f937-1f3fe-200d-2642-fe0f.png","sheet_x":41,"sheet_y":50,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F937-1F3FF-200D-2642-FE0F","non_qualified":"1F937-1F3FF-200D-2642","image":"1f937-1f3ff-200d-2642-fe0f.png","sheet_x":41,"sheet_y":51,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Shrugging","b":"1F937-200D-2642-FE0F","c":"1F937-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_shrugging","man","male","boy","confused","indifferent","doubt"],"k":[41,46],"o":4},"woman-shrugging":{"subcategory":"person-gesture","skin_variations":{"1F3FB":{"unified":"1F937-1F3FB-200D-2640-FE0F","non_qualified":"1F937-1F3FB-200D-2640","image":"1f937-1f3fb-200d-2640-fe0f.png","sheet_x":41,"sheet_y":41,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F937-1F3FC-200D-2640-FE0F","non_qualified":"1F937-1F3FC-200D-2640","image":"1f937-1f3fc-200d-2640-fe0f.png","sheet_x":41,"sheet_y":42,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F937-1F3FD-200D-2640-FE0F","non_qualified":"1F937-1F3FD-200D-2640","image":"1f937-1f3fd-200d-2640-fe0f.png","sheet_x":41,"sheet_y":43,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F937-1F3FE-200D-2640-FE0F","non_qualified":"1F937-1F3FE-200D-2640","image":"1f937-1f3fe-200d-2640-fe0f.png","sheet_x":41,"sheet_y":44,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F937-1F3FF-200D-2640-FE0F","non_qualified":"1F937-1F3FF-200D-2640","image":"1f937-1f3ff-200d-2640-fe0f.png","sheet_x":41,"sheet_y":45,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Shrugging","b":"1F937-200D-2640-FE0F","c":"1F937-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_shrugging","woman","female","girl","confused","indifferent","doubt"],"k":[41,40],"o":4},"health_worker":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F9D1-1F3FB-200D-2695-FE0F","non_qualified":"1F9D1-1F3FB-200D-2695","image":"1f9d1-1f3fb-200d-2695-fe0f.png","sheet_x":49,"sheet_y":51,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D1-1F3FC-200D-2695-FE0F","non_qualified":"1F9D1-1F3FC-200D-2695","image":"1f9d1-1f3fc-200d-2695-fe0f.png","sheet_x":49,"sheet_y":52,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D1-1F3FD-200D-2695-FE0F","non_qualified":"1F9D1-1F3FD-200D-2695","image":"1f9d1-1f3fd-200d-2695-fe0f.png","sheet_x":49,"sheet_y":53,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D1-1F3FE-200D-2695-FE0F","non_qualified":"1F9D1-1F3FE-200D-2695","image":"1f9d1-1f3fe-200d-2695-fe0f.png","sheet_x":49,"sheet_y":54,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D1-1F3FF-200D-2695-FE0F","non_qualified":"1F9D1-1F3FF-200D-2695","image":"1f9d1-1f3ff-200d-2695-fe0f.png","sheet_x":49,"sheet_y":55,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Health Worker","b":"1F9D1-200D-2695-FE0F","c":"1F9D1-200D-2695","d":true,"e":true,"f":true,"h":true,"j":["health_worker","hospital"],"k":[49,50],"o":12},"male-doctor":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F468-1F3FB-200D-2695-FE0F","non_qualified":"1F468-1F3FB-200D-2695","image":"1f468-1f3fb-200d-2695-fe0f.png","sheet_x":16,"sheet_y":6,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F468-1F3FC-200D-2695-FE0F","non_qualified":"1F468-1F3FC-200D-2695","image":"1f468-1f3fc-200d-2695-fe0f.png","sheet_x":16,"sheet_y":7,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F468-1F3FD-200D-2695-FE0F","non_qualified":"1F468-1F3FD-200D-2695","image":"1f468-1f3fd-200d-2695-fe0f.png","sheet_x":16,"sheet_y":8,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F468-1F3FE-200D-2695-FE0F","non_qualified":"1F468-1F3FE-200D-2695","image":"1f468-1f3fe-200d-2695-fe0f.png","sheet_x":16,"sheet_y":9,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F468-1F3FF-200D-2695-FE0F","non_qualified":"1F468-1F3FF-200D-2695","image":"1f468-1f3ff-200d-2695-fe0f.png","sheet_x":16,"sheet_y":10,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Health Worker","b":"1F468-200D-2695-FE0F","c":"1F468-200D-2695","d":true,"e":true,"f":true,"h":true,"j":["man_health_worker","doctor","nurse","therapist","healthcare","man","human"],"k":[16,5],"o":4},"female-doctor":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F469-1F3FB-200D-2695-FE0F","non_qualified":"1F469-1F3FB-200D-2695","image":"1f469-1f3fb-200d-2695-fe0f.png","sheet_x":19,"sheet_y":35,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F469-1F3FC-200D-2695-FE0F","non_qualified":"1F469-1F3FC-200D-2695","image":"1f469-1f3fc-200d-2695-fe0f.png","sheet_x":19,"sheet_y":36,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F469-1F3FD-200D-2695-FE0F","non_qualified":"1F469-1F3FD-200D-2695","image":"1f469-1f3fd-200d-2695-fe0f.png","sheet_x":19,"sheet_y":37,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F469-1F3FE-200D-2695-FE0F","non_qualified":"1F469-1F3FE-200D-2695","image":"1f469-1f3fe-200d-2695-fe0f.png","sheet_x":19,"sheet_y":38,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F469-1F3FF-200D-2695-FE0F","non_qualified":"1F469-1F3FF-200D-2695","image":"1f469-1f3ff-200d-2695-fe0f.png","sheet_x":19,"sheet_y":39,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Health Worker","b":"1F469-200D-2695-FE0F","c":"1F469-200D-2695","d":true,"e":true,"f":true,"h":true,"j":["woman_health_worker","doctor","nurse","therapist","healthcare","woman","human"],"k":[19,34],"o":4},"student":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F9D1-1F3FB-200D-1F393","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f393.png","sheet_x":47,"sheet_y":39,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D1-1F3FC-200D-1F393","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f393.png","sheet_x":47,"sheet_y":40,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D1-1F3FD-200D-1F393","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f393.png","sheet_x":47,"sheet_y":41,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D1-1F3FE-200D-1F393","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f393.png","sheet_x":47,"sheet_y":42,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D1-1F3FF-200D-1F393","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f393.png","sheet_x":47,"sheet_y":43,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Student","b":"1F9D1-200D-1F393","d":true,"e":true,"f":true,"h":true,"j":["student","learn"],"k":[47,38],"o":12},"male-student":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F468-1F3FB-200D-1F393","non_qualified":null,"image":"1f468-1f3fb-200d-1f393.png","sheet_x":14,"sheet_y":5,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F468-1F3FC-200D-1F393","non_qualified":null,"image":"1f468-1f3fc-200d-1f393.png","sheet_x":14,"sheet_y":6,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F468-1F3FD-200D-1F393","non_qualified":null,"image":"1f468-1f3fd-200d-1f393.png","sheet_x":14,"sheet_y":7,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F468-1F3FE-200D-1F393","non_qualified":null,"image":"1f468-1f3fe-200d-1f393.png","sheet_x":14,"sheet_y":8,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F468-1F3FF-200D-1F393","non_qualified":null,"image":"1f468-1f3ff-200d-1f393.png","sheet_x":14,"sheet_y":9,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Student","b":"1F468-200D-1F393","d":true,"e":true,"f":true,"h":true,"j":["man_student","graduate","man","human"],"k":[14,4],"o":4},"female-student":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F469-1F3FB-200D-1F393","non_qualified":null,"image":"1f469-1f3fb-200d-1f393.png","sheet_x":17,"sheet_y":39,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F469-1F3FC-200D-1F393","non_qualified":null,"image":"1f469-1f3fc-200d-1f393.png","sheet_x":17,"sheet_y":40,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F469-1F3FD-200D-1F393","non_qualified":null,"image":"1f469-1f3fd-200d-1f393.png","sheet_x":17,"sheet_y":41,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F469-1F3FE-200D-1F393","non_qualified":null,"image":"1f469-1f3fe-200d-1f393.png","sheet_x":17,"sheet_y":42,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F469-1F3FF-200D-1F393","non_qualified":null,"image":"1f469-1f3ff-200d-1f393.png","sheet_x":17,"sheet_y":43,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Student","b":"1F469-200D-1F393","d":true,"e":true,"f":true,"h":true,"j":["woman_student","graduate","woman","human"],"k":[17,38],"o":4},"teacher":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F9D1-1F3FB-200D-1F3EB","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f3eb.png","sheet_x":47,"sheet_y":57,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D1-1F3FC-200D-1F3EB","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f3eb.png","sheet_x":47,"sheet_y":58,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D1-1F3FD-200D-1F3EB","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f3eb.png","sheet_x":47,"sheet_y":59,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D1-1F3FE-200D-1F3EB","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f3eb.png","sheet_x":47,"sheet_y":60,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D1-1F3FF-200D-1F3EB","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f3eb.png","sheet_x":48,"sheet_y":0,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Teacher","b":"1F9D1-200D-1F3EB","d":true,"e":true,"f":true,"h":true,"j":["teacher","professor"],"k":[47,56],"o":12},"male-teacher":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F468-1F3FB-200D-1F3EB","non_qualified":null,"image":"1f468-1f3fb-200d-1f3eb.png","sheet_x":14,"sheet_y":23,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F468-1F3FC-200D-1F3EB","non_qualified":null,"image":"1f468-1f3fc-200d-1f3eb.png","sheet_x":14,"sheet_y":24,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F468-1F3FD-200D-1F3EB","non_qualified":null,"image":"1f468-1f3fd-200d-1f3eb.png","sheet_x":14,"sheet_y":25,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F468-1F3FE-200D-1F3EB","non_qualified":null,"image":"1f468-1f3fe-200d-1f3eb.png","sheet_x":14,"sheet_y":26,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F468-1F3FF-200D-1F3EB","non_qualified":null,"image":"1f468-1f3ff-200d-1f3eb.png","sheet_x":14,"sheet_y":27,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Teacher","b":"1F468-200D-1F3EB","d":true,"e":true,"f":true,"h":true,"j":["man_teacher","instructor","professor","man","human"],"k":[14,22],"o":4},"female-teacher":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F469-1F3FB-200D-1F3EB","non_qualified":null,"image":"1f469-1f3fb-200d-1f3eb.png","sheet_x":17,"sheet_y":57,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F469-1F3FC-200D-1F3EB","non_qualified":null,"image":"1f469-1f3fc-200d-1f3eb.png","sheet_x":17,"sheet_y":58,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F469-1F3FD-200D-1F3EB","non_qualified":null,"image":"1f469-1f3fd-200d-1f3eb.png","sheet_x":17,"sheet_y":59,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F469-1F3FE-200D-1F3EB","non_qualified":null,"image":"1f469-1f3fe-200d-1f3eb.png","sheet_x":17,"sheet_y":60,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F469-1F3FF-200D-1F3EB","non_qualified":null,"image":"1f469-1f3ff-200d-1f3eb.png","sheet_x":18,"sheet_y":0,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Teacher","b":"1F469-200D-1F3EB","d":true,"e":true,"f":true,"h":true,"j":["woman_teacher","instructor","professor","woman","human"],"k":[17,56],"o":4},"judge":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F9D1-1F3FB-200D-2696-FE0F","non_qualified":"1F9D1-1F3FB-200D-2696","image":"1f9d1-1f3fb-200d-2696-fe0f.png","sheet_x":49,"sheet_y":57,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D1-1F3FC-200D-2696-FE0F","non_qualified":"1F9D1-1F3FC-200D-2696","image":"1f9d1-1f3fc-200d-2696-fe0f.png","sheet_x":49,"sheet_y":58,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D1-1F3FD-200D-2696-FE0F","non_qualified":"1F9D1-1F3FD-200D-2696","image":"1f9d1-1f3fd-200d-2696-fe0f.png","sheet_x":49,"sheet_y":59,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D1-1F3FE-200D-2696-FE0F","non_qualified":"1F9D1-1F3FE-200D-2696","image":"1f9d1-1f3fe-200d-2696-fe0f.png","sheet_x":49,"sheet_y":60,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D1-1F3FF-200D-2696-FE0F","non_qualified":"1F9D1-1F3FF-200D-2696","image":"1f9d1-1f3ff-200d-2696-fe0f.png","sheet_x":50,"sheet_y":0,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Judge","b":"1F9D1-200D-2696-FE0F","c":"1F9D1-200D-2696","d":true,"e":true,"f":true,"h":true,"j":["judge","law"],"k":[49,56],"o":12},"male-judge":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F468-1F3FB-200D-2696-FE0F","non_qualified":"1F468-1F3FB-200D-2696","image":"1f468-1f3fb-200d-2696-fe0f.png","sheet_x":16,"sheet_y":12,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F468-1F3FC-200D-2696-FE0F","non_qualified":"1F468-1F3FC-200D-2696","image":"1f468-1f3fc-200d-2696-fe0f.png","sheet_x":16,"sheet_y":13,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F468-1F3FD-200D-2696-FE0F","non_qualified":"1F468-1F3FD-200D-2696","image":"1f468-1f3fd-200d-2696-fe0f.png","sheet_x":16,"sheet_y":14,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F468-1F3FE-200D-2696-FE0F","non_qualified":"1F468-1F3FE-200D-2696","image":"1f468-1f3fe-200d-2696-fe0f.png","sheet_x":16,"sheet_y":15,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F468-1F3FF-200D-2696-FE0F","non_qualified":"1F468-1F3FF-200D-2696","image":"1f468-1f3ff-200d-2696-fe0f.png","sheet_x":16,"sheet_y":16,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Judge","b":"1F468-200D-2696-FE0F","c":"1F468-200D-2696","d":true,"e":true,"f":true,"h":true,"j":["man_judge","justice","court","man","human"],"k":[16,11],"o":4},"female-judge":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F469-1F3FB-200D-2696-FE0F","non_qualified":"1F469-1F3FB-200D-2696","image":"1f469-1f3fb-200d-2696-fe0f.png","sheet_x":19,"sheet_y":41,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F469-1F3FC-200D-2696-FE0F","non_qualified":"1F469-1F3FC-200D-2696","image":"1f469-1f3fc-200d-2696-fe0f.png","sheet_x":19,"sheet_y":42,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F469-1F3FD-200D-2696-FE0F","non_qualified":"1F469-1F3FD-200D-2696","image":"1f469-1f3fd-200d-2696-fe0f.png","sheet_x":19,"sheet_y":43,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F469-1F3FE-200D-2696-FE0F","non_qualified":"1F469-1F3FE-200D-2696","image":"1f469-1f3fe-200d-2696-fe0f.png","sheet_x":19,"sheet_y":44,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F469-1F3FF-200D-2696-FE0F","non_qualified":"1F469-1F3FF-200D-2696","image":"1f469-1f3ff-200d-2696-fe0f.png","sheet_x":19,"sheet_y":45,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Judge","b":"1F469-200D-2696-FE0F","c":"1F469-200D-2696","d":true,"e":true,"f":true,"h":true,"j":["woman_judge","justice","court","woman","human"],"k":[19,40],"o":4},"farmer":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F9D1-1F3FB-200D-1F33E","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f33e.png","sheet_x":47,"sheet_y":15,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D1-1F3FC-200D-1F33E","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f33e.png","sheet_x":47,"sheet_y":16,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D1-1F3FD-200D-1F33E","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f33e.png","sheet_x":47,"sheet_y":17,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D1-1F3FE-200D-1F33E","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f33e.png","sheet_x":47,"sheet_y":18,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D1-1F3FF-200D-1F33E","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f33e.png","sheet_x":47,"sheet_y":19,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Farmer","b":"1F9D1-200D-1F33E","d":true,"e":true,"f":true,"h":true,"j":["farmer","crops"],"k":[47,14],"o":12},"male-farmer":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F468-1F3FB-200D-1F33E","non_qualified":null,"image":"1f468-1f3fb-200d-1f33e.png","sheet_x":13,"sheet_y":48,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F468-1F3FC-200D-1F33E","non_qualified":null,"image":"1f468-1f3fc-200d-1f33e.png","sheet_x":13,"sheet_y":49,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F468-1F3FD-200D-1F33E","non_qualified":null,"image":"1f468-1f3fd-200d-1f33e.png","sheet_x":13,"sheet_y":50,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F468-1F3FE-200D-1F33E","non_qualified":null,"image":"1f468-1f3fe-200d-1f33e.png","sheet_x":13,"sheet_y":51,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F468-1F3FF-200D-1F33E","non_qualified":null,"image":"1f468-1f3ff-200d-1f33e.png","sheet_x":13,"sheet_y":52,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Farmer","b":"1F468-200D-1F33E","d":true,"e":true,"f":true,"h":true,"j":["man_farmer","rancher","gardener","man","human"],"k":[13,47],"o":4},"female-farmer":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F469-1F3FB-200D-1F33E","non_qualified":null,"image":"1f469-1f3fb-200d-1f33e.png","sheet_x":17,"sheet_y":21,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F469-1F3FC-200D-1F33E","non_qualified":null,"image":"1f469-1f3fc-200d-1f33e.png","sheet_x":17,"sheet_y":22,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F469-1F3FD-200D-1F33E","non_qualified":null,"image":"1f469-1f3fd-200d-1f33e.png","sheet_x":17,"sheet_y":23,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F469-1F3FE-200D-1F33E","non_qualified":null,"image":"1f469-1f3fe-200d-1f33e.png","sheet_x":17,"sheet_y":24,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F469-1F3FF-200D-1F33E","non_qualified":null,"image":"1f469-1f3ff-200d-1f33e.png","sheet_x":17,"sheet_y":25,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Farmer","b":"1F469-200D-1F33E","d":true,"e":true,"f":true,"h":true,"j":["woman_farmer","rancher","gardener","woman","human"],"k":[17,20],"o":4},"cook":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F9D1-1F3FB-200D-1F373","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f373.png","sheet_x":47,"sheet_y":21,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D1-1F3FC-200D-1F373","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f373.png","sheet_x":47,"sheet_y":22,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D1-1F3FD-200D-1F373","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f373.png","sheet_x":47,"sheet_y":23,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D1-1F3FE-200D-1F373","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f373.png","sheet_x":47,"sheet_y":24,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D1-1F3FF-200D-1F373","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f373.png","sheet_x":47,"sheet_y":25,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Cook","b":"1F9D1-200D-1F373","d":true,"e":true,"f":true,"h":true,"j":["cook","food","kitchen","culinary"],"k":[47,20],"o":12},"male-cook":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F468-1F3FB-200D-1F373","non_qualified":null,"image":"1f468-1f3fb-200d-1f373.png","sheet_x":13,"sheet_y":54,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F468-1F3FC-200D-1F373","non_qualified":null,"image":"1f468-1f3fc-200d-1f373.png","sheet_x":13,"sheet_y":55,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F468-1F3FD-200D-1F373","non_qualified":null,"image":"1f468-1f3fd-200d-1f373.png","sheet_x":13,"sheet_y":56,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F468-1F3FE-200D-1F373","non_qualified":null,"image":"1f468-1f3fe-200d-1f373.png","sheet_x":13,"sheet_y":57,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F468-1F3FF-200D-1F373","non_qualified":null,"image":"1f468-1f3ff-200d-1f373.png","sheet_x":13,"sheet_y":58,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Cook","b":"1F468-200D-1F373","d":true,"e":true,"f":true,"h":true,"j":["man_cook","chef","man","human"],"k":[13,53],"o":4},"female-cook":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F469-1F3FB-200D-1F373","non_qualified":null,"image":"1f469-1f3fb-200d-1f373.png","sheet_x":17,"sheet_y":27,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F469-1F3FC-200D-1F373","non_qualified":null,"image":"1f469-1f3fc-200d-1f373.png","sheet_x":17,"sheet_y":28,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F469-1F3FD-200D-1F373","non_qualified":null,"image":"1f469-1f3fd-200d-1f373.png","sheet_x":17,"sheet_y":29,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F469-1F3FE-200D-1F373","non_qualified":null,"image":"1f469-1f3fe-200d-1f373.png","sheet_x":17,"sheet_y":30,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F469-1F3FF-200D-1F373","non_qualified":null,"image":"1f469-1f3ff-200d-1f373.png","sheet_x":17,"sheet_y":31,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Cook","b":"1F469-200D-1F373","d":true,"e":true,"f":true,"h":true,"j":["woman_cook","chef","woman","human"],"k":[17,26],"o":4},"mechanic":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F9D1-1F3FB-200D-1F527","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f527.png","sheet_x":48,"sheet_y":20,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D1-1F3FC-200D-1F527","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f527.png","sheet_x":48,"sheet_y":21,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D1-1F3FD-200D-1F527","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f527.png","sheet_x":48,"sheet_y":22,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D1-1F3FE-200D-1F527","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f527.png","sheet_x":48,"sheet_y":23,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D1-1F3FF-200D-1F527","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f527.png","sheet_x":48,"sheet_y":24,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Mechanic","b":"1F9D1-200D-1F527","d":true,"e":true,"f":true,"h":true,"j":["mechanic","worker","technician"],"k":[48,19],"o":12},"male-mechanic":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F468-1F3FB-200D-1F527","non_qualified":null,"image":"1f468-1f3fb-200d-1f527.png","sheet_x":15,"sheet_y":1,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F468-1F3FC-200D-1F527","non_qualified":null,"image":"1f468-1f3fc-200d-1f527.png","sheet_x":15,"sheet_y":2,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F468-1F3FD-200D-1F527","non_qualified":null,"image":"1f468-1f3fd-200d-1f527.png","sheet_x":15,"sheet_y":3,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F468-1F3FE-200D-1F527","non_qualified":null,"image":"1f468-1f3fe-200d-1f527.png","sheet_x":15,"sheet_y":4,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F468-1F3FF-200D-1F527","non_qualified":null,"image":"1f468-1f3ff-200d-1f527.png","sheet_x":15,"sheet_y":5,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Mechanic","b":"1F468-200D-1F527","d":true,"e":true,"f":true,"h":true,"j":["man_mechanic","plumber","man","human","wrench"],"k":[15,0],"o":4},"female-mechanic":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F469-1F3FB-200D-1F527","non_qualified":null,"image":"1f469-1f3fb-200d-1f527.png","sheet_x":18,"sheet_y":30,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F469-1F3FC-200D-1F527","non_qualified":null,"image":"1f469-1f3fc-200d-1f527.png","sheet_x":18,"sheet_y":31,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F469-1F3FD-200D-1F527","non_qualified":null,"image":"1f469-1f3fd-200d-1f527.png","sheet_x":18,"sheet_y":32,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F469-1F3FE-200D-1F527","non_qualified":null,"image":"1f469-1f3fe-200d-1f527.png","sheet_x":18,"sheet_y":33,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F469-1F3FF-200D-1F527","non_qualified":null,"image":"1f469-1f3ff-200d-1f527.png","sheet_x":18,"sheet_y":34,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Mechanic","b":"1F469-200D-1F527","d":true,"e":true,"f":true,"h":true,"j":["woman_mechanic","plumber","woman","human","wrench"],"k":[18,29],"o":4},"factory_worker":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F9D1-1F3FB-200D-1F3ED","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f3ed.png","sheet_x":48,"sheet_y":2,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D1-1F3FC-200D-1F3ED","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f3ed.png","sheet_x":48,"sheet_y":3,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D1-1F3FD-200D-1F3ED","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f3ed.png","sheet_x":48,"sheet_y":4,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D1-1F3FE-200D-1F3ED","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f3ed.png","sheet_x":48,"sheet_y":5,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D1-1F3FF-200D-1F3ED","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f3ed.png","sheet_x":48,"sheet_y":6,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Factory Worker","b":"1F9D1-200D-1F3ED","d":true,"e":true,"f":true,"h":true,"j":["factory_worker","labor"],"k":[48,1],"o":12},"male-factory-worker":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F468-1F3FB-200D-1F3ED","non_qualified":null,"image":"1f468-1f3fb-200d-1f3ed.png","sheet_x":14,"sheet_y":29,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F468-1F3FC-200D-1F3ED","non_qualified":null,"image":"1f468-1f3fc-200d-1f3ed.png","sheet_x":14,"sheet_y":30,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F468-1F3FD-200D-1F3ED","non_qualified":null,"image":"1f468-1f3fd-200d-1f3ed.png","sheet_x":14,"sheet_y":31,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F468-1F3FE-200D-1F3ED","non_qualified":null,"image":"1f468-1f3fe-200d-1f3ed.png","sheet_x":14,"sheet_y":32,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F468-1F3FF-200D-1F3ED","non_qualified":null,"image":"1f468-1f3ff-200d-1f3ed.png","sheet_x":14,"sheet_y":33,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Factory Worker","b":"1F468-200D-1F3ED","d":true,"e":true,"f":true,"h":true,"j":["man_factory_worker","assembly","industrial","man","human"],"k":[14,28],"o":4},"female-factory-worker":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F469-1F3FB-200D-1F3ED","non_qualified":null,"image":"1f469-1f3fb-200d-1f3ed.png","sheet_x":18,"sheet_y":2,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F469-1F3FC-200D-1F3ED","non_qualified":null,"image":"1f469-1f3fc-200d-1f3ed.png","sheet_x":18,"sheet_y":3,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F469-1F3FD-200D-1F3ED","non_qualified":null,"image":"1f469-1f3fd-200d-1f3ed.png","sheet_x":18,"sheet_y":4,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F469-1F3FE-200D-1F3ED","non_qualified":null,"image":"1f469-1f3fe-200d-1f3ed.png","sheet_x":18,"sheet_y":5,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F469-1F3FF-200D-1F3ED","non_qualified":null,"image":"1f469-1f3ff-200d-1f3ed.png","sheet_x":18,"sheet_y":6,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Factory Worker","b":"1F469-200D-1F3ED","d":true,"e":true,"f":true,"h":true,"j":["woman_factory_worker","assembly","industrial","woman","human"],"k":[18,1],"o":4},"office_worker":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F9D1-1F3FB-200D-1F4BC","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f4bc.png","sheet_x":48,"sheet_y":14,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D1-1F3FC-200D-1F4BC","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f4bc.png","sheet_x":48,"sheet_y":15,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D1-1F3FD-200D-1F4BC","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f4bc.png","sheet_x":48,"sheet_y":16,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D1-1F3FE-200D-1F4BC","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f4bc.png","sheet_x":48,"sheet_y":17,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D1-1F3FF-200D-1F4BC","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f4bc.png","sheet_x":48,"sheet_y":18,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Office Worker","b":"1F9D1-200D-1F4BC","d":true,"e":true,"f":true,"h":true,"j":["office_worker","business"],"k":[48,13],"o":12},"male-office-worker":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F468-1F3FB-200D-1F4BC","non_qualified":null,"image":"1f468-1f3fb-200d-1f4bc.png","sheet_x":14,"sheet_y":56,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F468-1F3FC-200D-1F4BC","non_qualified":null,"image":"1f468-1f3fc-200d-1f4bc.png","sheet_x":14,"sheet_y":57,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F468-1F3FD-200D-1F4BC","non_qualified":null,"image":"1f468-1f3fd-200d-1f4bc.png","sheet_x":14,"sheet_y":58,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F468-1F3FE-200D-1F4BC","non_qualified":null,"image":"1f468-1f3fe-200d-1f4bc.png","sheet_x":14,"sheet_y":59,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F468-1F3FF-200D-1F4BC","non_qualified":null,"image":"1f468-1f3ff-200d-1f4bc.png","sheet_x":14,"sheet_y":60,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Office Worker","b":"1F468-200D-1F4BC","d":true,"e":true,"f":true,"h":true,"j":["man_office_worker","business","manager","man","human"],"k":[14,55],"o":4},"female-office-worker":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F469-1F3FB-200D-1F4BC","non_qualified":null,"image":"1f469-1f3fb-200d-1f4bc.png","sheet_x":18,"sheet_y":24,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F469-1F3FC-200D-1F4BC","non_qualified":null,"image":"1f469-1f3fc-200d-1f4bc.png","sheet_x":18,"sheet_y":25,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F469-1F3FD-200D-1F4BC","non_qualified":null,"image":"1f469-1f3fd-200d-1f4bc.png","sheet_x":18,"sheet_y":26,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F469-1F3FE-200D-1F4BC","non_qualified":null,"image":"1f469-1f3fe-200d-1f4bc.png","sheet_x":18,"sheet_y":27,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F469-1F3FF-200D-1F4BC","non_qualified":null,"image":"1f469-1f3ff-200d-1f4bc.png","sheet_x":18,"sheet_y":28,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Office Worker","b":"1F469-200D-1F4BC","d":true,"e":true,"f":true,"h":true,"j":["woman_office_worker","business","manager","woman","human"],"k":[18,23],"o":4},"scientist":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F9D1-1F3FB-200D-1F52C","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f52c.png","sheet_x":48,"sheet_y":26,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D1-1F3FC-200D-1F52C","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f52c.png","sheet_x":48,"sheet_y":27,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D1-1F3FD-200D-1F52C","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f52c.png","sheet_x":48,"sheet_y":28,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D1-1F3FE-200D-1F52C","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f52c.png","sheet_x":48,"sheet_y":29,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D1-1F3FF-200D-1F52C","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f52c.png","sheet_x":48,"sheet_y":30,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Scientist","b":"1F9D1-200D-1F52C","d":true,"e":true,"f":true,"h":true,"j":["scientist","chemistry"],"k":[48,25],"o":12},"male-scientist":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F468-1F3FB-200D-1F52C","non_qualified":null,"image":"1f468-1f3fb-200d-1f52c.png","sheet_x":15,"sheet_y":7,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F468-1F3FC-200D-1F52C","non_qualified":null,"image":"1f468-1f3fc-200d-1f52c.png","sheet_x":15,"sheet_y":8,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F468-1F3FD-200D-1F52C","non_qualified":null,"image":"1f468-1f3fd-200d-1f52c.png","sheet_x":15,"sheet_y":9,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F468-1F3FE-200D-1F52C","non_qualified":null,"image":"1f468-1f3fe-200d-1f52c.png","sheet_x":15,"sheet_y":10,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F468-1F3FF-200D-1F52C","non_qualified":null,"image":"1f468-1f3ff-200d-1f52c.png","sheet_x":15,"sheet_y":11,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Scientist","b":"1F468-200D-1F52C","d":true,"e":true,"f":true,"h":true,"j":["man_scientist","biologist","chemist","engineer","physicist","man","human"],"k":[15,6],"o":4},"female-scientist":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F469-1F3FB-200D-1F52C","non_qualified":null,"image":"1f469-1f3fb-200d-1f52c.png","sheet_x":18,"sheet_y":36,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F469-1F3FC-200D-1F52C","non_qualified":null,"image":"1f469-1f3fc-200d-1f52c.png","sheet_x":18,"sheet_y":37,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F469-1F3FD-200D-1F52C","non_qualified":null,"image":"1f469-1f3fd-200d-1f52c.png","sheet_x":18,"sheet_y":38,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F469-1F3FE-200D-1F52C","non_qualified":null,"image":"1f469-1f3fe-200d-1f52c.png","sheet_x":18,"sheet_y":39,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F469-1F3FF-200D-1F52C","non_qualified":null,"image":"1f469-1f3ff-200d-1f52c.png","sheet_x":18,"sheet_y":40,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Scientist","b":"1F469-200D-1F52C","d":true,"e":true,"f":true,"h":true,"j":["woman_scientist","biologist","chemist","engineer","physicist","woman","human"],"k":[18,35],"o":4},"technologist":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F9D1-1F3FB-200D-1F4BB","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f4bb.png","sheet_x":48,"sheet_y":8,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D1-1F3FC-200D-1F4BB","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f4bb.png","sheet_x":48,"sheet_y":9,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D1-1F3FD-200D-1F4BB","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f4bb.png","sheet_x":48,"sheet_y":10,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D1-1F3FE-200D-1F4BB","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f4bb.png","sheet_x":48,"sheet_y":11,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D1-1F3FF-200D-1F4BB","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f4bb.png","sheet_x":48,"sheet_y":12,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Technologist","b":"1F9D1-200D-1F4BB","d":true,"e":true,"f":true,"h":true,"j":["technologist","computer"],"k":[48,7],"o":12},"male-technologist":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F468-1F3FB-200D-1F4BB","non_qualified":null,"image":"1f468-1f3fb-200d-1f4bb.png","sheet_x":14,"sheet_y":50,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F468-1F3FC-200D-1F4BB","non_qualified":null,"image":"1f468-1f3fc-200d-1f4bb.png","sheet_x":14,"sheet_y":51,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F468-1F3FD-200D-1F4BB","non_qualified":null,"image":"1f468-1f3fd-200d-1f4bb.png","sheet_x":14,"sheet_y":52,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F468-1F3FE-200D-1F4BB","non_qualified":null,"image":"1f468-1f3fe-200d-1f4bb.png","sheet_x":14,"sheet_y":53,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F468-1F3FF-200D-1F4BB","non_qualified":null,"image":"1f468-1f3ff-200d-1f4bb.png","sheet_x":14,"sheet_y":54,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Technologist","b":"1F468-200D-1F4BB","d":true,"e":true,"f":true,"h":true,"j":["man_technologist","coder","developer","engineer","programmer","software","man","human","laptop","computer"],"k":[14,49],"o":4},"female-technologist":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F469-1F3FB-200D-1F4BB","non_qualified":null,"image":"1f469-1f3fb-200d-1f4bb.png","sheet_x":18,"sheet_y":18,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F469-1F3FC-200D-1F4BB","non_qualified":null,"image":"1f469-1f3fc-200d-1f4bb.png","sheet_x":18,"sheet_y":19,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F469-1F3FD-200D-1F4BB","non_qualified":null,"image":"1f469-1f3fd-200d-1f4bb.png","sheet_x":18,"sheet_y":20,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F469-1F3FE-200D-1F4BB","non_qualified":null,"image":"1f469-1f3fe-200d-1f4bb.png","sheet_x":18,"sheet_y":21,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F469-1F3FF-200D-1F4BB","non_qualified":null,"image":"1f469-1f3ff-200d-1f4bb.png","sheet_x":18,"sheet_y":22,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Technologist","b":"1F469-200D-1F4BB","d":true,"e":true,"f":true,"h":true,"j":["woman_technologist","coder","developer","engineer","programmer","software","woman","human","laptop","computer"],"k":[18,17],"o":4},"singer":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F9D1-1F3FB-200D-1F3A4","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f3a4.png","sheet_x":47,"sheet_y":45,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D1-1F3FC-200D-1F3A4","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f3a4.png","sheet_x":47,"sheet_y":46,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D1-1F3FD-200D-1F3A4","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f3a4.png","sheet_x":47,"sheet_y":47,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D1-1F3FE-200D-1F3A4","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f3a4.png","sheet_x":47,"sheet_y":48,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D1-1F3FF-200D-1F3A4","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f3a4.png","sheet_x":47,"sheet_y":49,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Singer","b":"1F9D1-200D-1F3A4","d":true,"e":true,"f":true,"h":true,"j":["singer","song","artist","performer"],"k":[47,44],"o":12},"male-singer":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F468-1F3FB-200D-1F3A4","non_qualified":null,"image":"1f468-1f3fb-200d-1f3a4.png","sheet_x":14,"sheet_y":11,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F468-1F3FC-200D-1F3A4","non_qualified":null,"image":"1f468-1f3fc-200d-1f3a4.png","sheet_x":14,"sheet_y":12,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F468-1F3FD-200D-1F3A4","non_qualified":null,"image":"1f468-1f3fd-200d-1f3a4.png","sheet_x":14,"sheet_y":13,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F468-1F3FE-200D-1F3A4","non_qualified":null,"image":"1f468-1f3fe-200d-1f3a4.png","sheet_x":14,"sheet_y":14,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F468-1F3FF-200D-1F3A4","non_qualified":null,"image":"1f468-1f3ff-200d-1f3a4.png","sheet_x":14,"sheet_y":15,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Singer","b":"1F468-200D-1F3A4","d":true,"e":true,"f":true,"h":true,"j":["man_singer","rockstar","entertainer","man","human"],"k":[14,10],"o":4},"female-singer":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F469-1F3FB-200D-1F3A4","non_qualified":null,"image":"1f469-1f3fb-200d-1f3a4.png","sheet_x":17,"sheet_y":45,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F469-1F3FC-200D-1F3A4","non_qualified":null,"image":"1f469-1f3fc-200d-1f3a4.png","sheet_x":17,"sheet_y":46,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F469-1F3FD-200D-1F3A4","non_qualified":null,"image":"1f469-1f3fd-200d-1f3a4.png","sheet_x":17,"sheet_y":47,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F469-1F3FE-200D-1F3A4","non_qualified":null,"image":"1f469-1f3fe-200d-1f3a4.png","sheet_x":17,"sheet_y":48,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F469-1F3FF-200D-1F3A4","non_qualified":null,"image":"1f469-1f3ff-200d-1f3a4.png","sheet_x":17,"sheet_y":49,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Singer","b":"1F469-200D-1F3A4","d":true,"e":true,"f":true,"h":true,"j":["woman_singer","rockstar","entertainer","woman","human"],"k":[17,44],"o":4},"artist":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F9D1-1F3FB-200D-1F3A8","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f3a8.png","sheet_x":47,"sheet_y":51,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D1-1F3FC-200D-1F3A8","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f3a8.png","sheet_x":47,"sheet_y":52,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D1-1F3FD-200D-1F3A8","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f3a8.png","sheet_x":47,"sheet_y":53,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D1-1F3FE-200D-1F3A8","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f3a8.png","sheet_x":47,"sheet_y":54,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D1-1F3FF-200D-1F3A8","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f3a8.png","sheet_x":47,"sheet_y":55,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Artist","b":"1F9D1-200D-1F3A8","d":true,"e":true,"f":true,"h":true,"j":["artist","painting","draw","creativity"],"k":[47,50],"o":12},"male-artist":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F468-1F3FB-200D-1F3A8","non_qualified":null,"image":"1f468-1f3fb-200d-1f3a8.png","sheet_x":14,"sheet_y":17,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F468-1F3FC-200D-1F3A8","non_qualified":null,"image":"1f468-1f3fc-200d-1f3a8.png","sheet_x":14,"sheet_y":18,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F468-1F3FD-200D-1F3A8","non_qualified":null,"image":"1f468-1f3fd-200d-1f3a8.png","sheet_x":14,"sheet_y":19,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F468-1F3FE-200D-1F3A8","non_qualified":null,"image":"1f468-1f3fe-200d-1f3a8.png","sheet_x":14,"sheet_y":20,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F468-1F3FF-200D-1F3A8","non_qualified":null,"image":"1f468-1f3ff-200d-1f3a8.png","sheet_x":14,"sheet_y":21,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Artist","b":"1F468-200D-1F3A8","d":true,"e":true,"f":true,"h":true,"j":["man_artist","painter","man","human"],"k":[14,16],"o":4},"female-artist":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F469-1F3FB-200D-1F3A8","non_qualified":null,"image":"1f469-1f3fb-200d-1f3a8.png","sheet_x":17,"sheet_y":51,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F469-1F3FC-200D-1F3A8","non_qualified":null,"image":"1f469-1f3fc-200d-1f3a8.png","sheet_x":17,"sheet_y":52,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F469-1F3FD-200D-1F3A8","non_qualified":null,"image":"1f469-1f3fd-200d-1f3a8.png","sheet_x":17,"sheet_y":53,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F469-1F3FE-200D-1F3A8","non_qualified":null,"image":"1f469-1f3fe-200d-1f3a8.png","sheet_x":17,"sheet_y":54,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F469-1F3FF-200D-1F3A8","non_qualified":null,"image":"1f469-1f3ff-200d-1f3a8.png","sheet_x":17,"sheet_y":55,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Artist","b":"1F469-200D-1F3A8","d":true,"e":true,"f":true,"h":true,"j":["woman_artist","painter","woman","human"],"k":[17,50],"o":4},"pilot":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F9D1-1F3FB-200D-2708-FE0F","non_qualified":"1F9D1-1F3FB-200D-2708","image":"1f9d1-1f3fb-200d-2708-fe0f.png","sheet_x":50,"sheet_y":2,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D1-1F3FC-200D-2708-FE0F","non_qualified":"1F9D1-1F3FC-200D-2708","image":"1f9d1-1f3fc-200d-2708-fe0f.png","sheet_x":50,"sheet_y":3,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D1-1F3FD-200D-2708-FE0F","non_qualified":"1F9D1-1F3FD-200D-2708","image":"1f9d1-1f3fd-200d-2708-fe0f.png","sheet_x":50,"sheet_y":4,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D1-1F3FE-200D-2708-FE0F","non_qualified":"1F9D1-1F3FE-200D-2708","image":"1f9d1-1f3fe-200d-2708-fe0f.png","sheet_x":50,"sheet_y":5,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D1-1F3FF-200D-2708-FE0F","non_qualified":"1F9D1-1F3FF-200D-2708","image":"1f9d1-1f3ff-200d-2708-fe0f.png","sheet_x":50,"sheet_y":6,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Pilot","b":"1F9D1-200D-2708-FE0F","c":"1F9D1-200D-2708","d":true,"e":true,"f":true,"h":true,"j":["pilot","fly","plane","airplane"],"k":[50,1],"o":12},"male-pilot":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F468-1F3FB-200D-2708-FE0F","non_qualified":"1F468-1F3FB-200D-2708","image":"1f468-1f3fb-200d-2708-fe0f.png","sheet_x":16,"sheet_y":18,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F468-1F3FC-200D-2708-FE0F","non_qualified":"1F468-1F3FC-200D-2708","image":"1f468-1f3fc-200d-2708-fe0f.png","sheet_x":16,"sheet_y":19,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F468-1F3FD-200D-2708-FE0F","non_qualified":"1F468-1F3FD-200D-2708","image":"1f468-1f3fd-200d-2708-fe0f.png","sheet_x":16,"sheet_y":20,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F468-1F3FE-200D-2708-FE0F","non_qualified":"1F468-1F3FE-200D-2708","image":"1f468-1f3fe-200d-2708-fe0f.png","sheet_x":16,"sheet_y":21,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F468-1F3FF-200D-2708-FE0F","non_qualified":"1F468-1F3FF-200D-2708","image":"1f468-1f3ff-200d-2708-fe0f.png","sheet_x":16,"sheet_y":22,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Pilot","b":"1F468-200D-2708-FE0F","c":"1F468-200D-2708","d":true,"e":true,"f":true,"h":true,"j":["man_pilot","aviator","plane","man","human"],"k":[16,17],"o":4},"female-pilot":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F469-1F3FB-200D-2708-FE0F","non_qualified":"1F469-1F3FB-200D-2708","image":"1f469-1f3fb-200d-2708-fe0f.png","sheet_x":19,"sheet_y":47,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F469-1F3FC-200D-2708-FE0F","non_qualified":"1F469-1F3FC-200D-2708","image":"1f469-1f3fc-200d-2708-fe0f.png","sheet_x":19,"sheet_y":48,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F469-1F3FD-200D-2708-FE0F","non_qualified":"1F469-1F3FD-200D-2708","image":"1f469-1f3fd-200d-2708-fe0f.png","sheet_x":19,"sheet_y":49,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F469-1F3FE-200D-2708-FE0F","non_qualified":"1F469-1F3FE-200D-2708","image":"1f469-1f3fe-200d-2708-fe0f.png","sheet_x":19,"sheet_y":50,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F469-1F3FF-200D-2708-FE0F","non_qualified":"1F469-1F3FF-200D-2708","image":"1f469-1f3ff-200d-2708-fe0f.png","sheet_x":19,"sheet_y":51,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Pilot","b":"1F469-200D-2708-FE0F","c":"1F469-200D-2708","d":true,"e":true,"f":true,"h":true,"j":["woman_pilot","aviator","plane","woman","human"],"k":[19,46],"o":4},"astronaut":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F9D1-1F3FB-200D-1F680","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f680.png","sheet_x":48,"sheet_y":32,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D1-1F3FC-200D-1F680","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f680.png","sheet_x":48,"sheet_y":33,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D1-1F3FD-200D-1F680","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f680.png","sheet_x":48,"sheet_y":34,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D1-1F3FE-200D-1F680","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f680.png","sheet_x":48,"sheet_y":35,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D1-1F3FF-200D-1F680","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f680.png","sheet_x":48,"sheet_y":36,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Astronaut","b":"1F9D1-200D-1F680","d":true,"e":true,"f":true,"h":true,"j":["astronaut","outerspace"],"k":[48,31],"o":12},"male-astronaut":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F468-1F3FB-200D-1F680","non_qualified":null,"image":"1f468-1f3fb-200d-1f680.png","sheet_x":15,"sheet_y":13,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F468-1F3FC-200D-1F680","non_qualified":null,"image":"1f468-1f3fc-200d-1f680.png","sheet_x":15,"sheet_y":14,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F468-1F3FD-200D-1F680","non_qualified":null,"image":"1f468-1f3fd-200d-1f680.png","sheet_x":15,"sheet_y":15,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F468-1F3FE-200D-1F680","non_qualified":null,"image":"1f468-1f3fe-200d-1f680.png","sheet_x":15,"sheet_y":16,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F468-1F3FF-200D-1F680","non_qualified":null,"image":"1f468-1f3ff-200d-1f680.png","sheet_x":15,"sheet_y":17,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Astronaut","b":"1F468-200D-1F680","d":true,"e":true,"f":true,"h":true,"j":["man_astronaut","space","rocket","man","human"],"k":[15,12],"o":4},"female-astronaut":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F469-1F3FB-200D-1F680","non_qualified":null,"image":"1f469-1f3fb-200d-1f680.png","sheet_x":18,"sheet_y":42,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F469-1F3FC-200D-1F680","non_qualified":null,"image":"1f469-1f3fc-200d-1f680.png","sheet_x":18,"sheet_y":43,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F469-1F3FD-200D-1F680","non_qualified":null,"image":"1f469-1f3fd-200d-1f680.png","sheet_x":18,"sheet_y":44,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F469-1F3FE-200D-1F680","non_qualified":null,"image":"1f469-1f3fe-200d-1f680.png","sheet_x":18,"sheet_y":45,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F469-1F3FF-200D-1F680","non_qualified":null,"image":"1f469-1f3ff-200d-1f680.png","sheet_x":18,"sheet_y":46,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Astronaut","b":"1F469-200D-1F680","d":true,"e":true,"f":true,"h":true,"j":["woman_astronaut","space","rocket","woman","human"],"k":[18,41],"o":4},"firefighter":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F9D1-1F3FB-200D-1F692","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f692.png","sheet_x":48,"sheet_y":38,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D1-1F3FC-200D-1F692","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f692.png","sheet_x":48,"sheet_y":39,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D1-1F3FD-200D-1F692","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f692.png","sheet_x":48,"sheet_y":40,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D1-1F3FE-200D-1F692","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f692.png","sheet_x":48,"sheet_y":41,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D1-1F3FF-200D-1F692","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f692.png","sheet_x":48,"sheet_y":42,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Firefighter","b":"1F9D1-200D-1F692","d":true,"e":true,"f":true,"h":true,"j":["firefighter","fire"],"k":[48,37],"o":12},"male-firefighter":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F468-1F3FB-200D-1F692","non_qualified":null,"image":"1f468-1f3fb-200d-1f692.png","sheet_x":15,"sheet_y":19,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F468-1F3FC-200D-1F692","non_qualified":null,"image":"1f468-1f3fc-200d-1f692.png","sheet_x":15,"sheet_y":20,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F468-1F3FD-200D-1F692","non_qualified":null,"image":"1f468-1f3fd-200d-1f692.png","sheet_x":15,"sheet_y":21,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F468-1F3FE-200D-1F692","non_qualified":null,"image":"1f468-1f3fe-200d-1f692.png","sheet_x":15,"sheet_y":22,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F468-1F3FF-200D-1F692","non_qualified":null,"image":"1f468-1f3ff-200d-1f692.png","sheet_x":15,"sheet_y":23,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Firefighter","b":"1F468-200D-1F692","d":true,"e":true,"f":true,"h":true,"j":["man_firefighter","fireman","man","human"],"k":[15,18],"o":4},"female-firefighter":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F469-1F3FB-200D-1F692","non_qualified":null,"image":"1f469-1f3fb-200d-1f692.png","sheet_x":18,"sheet_y":48,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F469-1F3FC-200D-1F692","non_qualified":null,"image":"1f469-1f3fc-200d-1f692.png","sheet_x":18,"sheet_y":49,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F469-1F3FD-200D-1F692","non_qualified":null,"image":"1f469-1f3fd-200d-1f692.png","sheet_x":18,"sheet_y":50,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F469-1F3FE-200D-1F692","non_qualified":null,"image":"1f469-1f3fe-200d-1f692.png","sheet_x":18,"sheet_y":51,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F469-1F3FF-200D-1F692","non_qualified":null,"image":"1f469-1f3ff-200d-1f692.png","sheet_x":18,"sheet_y":52,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Firefighter","b":"1F469-200D-1F692","d":true,"e":true,"f":true,"h":true,"j":["woman_firefighter","fireman","woman","human"],"k":[18,47],"o":4},"cop":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F46E-1F3FB","non_qualified":null,"image":"1f46e-1f3fb.png","sheet_x":23,"sheet_y":10,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F46E-1F3FC","non_qualified":null,"image":"1f46e-1f3fc.png","sheet_x":23,"sheet_y":11,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F46E-1F3FD","non_qualified":null,"image":"1f46e-1f3fd.png","sheet_x":23,"sheet_y":12,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F46E-1F3FE","non_qualified":null,"image":"1f46e-1f3fe.png","sheet_x":23,"sheet_y":13,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F46E-1F3FF","non_qualified":null,"image":"1f46e-1f3ff.png","sheet_x":23,"sheet_y":14,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoleted_by":"1F46E-200D-2642-FE0F","a":"Police Officer","b":"1F46E","d":true,"e":true,"f":true,"h":true,"j":["police_officer","cop"],"k":[23,9],"o":0},"male-police-officer":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F46E-1F3FB-200D-2642-FE0F","non_qualified":"1F46E-1F3FB-200D-2642","image":"1f46e-1f3fb-200d-2642-fe0f.png","sheet_x":23,"sheet_y":4,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F46E-1F3FC-200D-2642-FE0F","non_qualified":"1F46E-1F3FC-200D-2642","image":"1f46e-1f3fc-200d-2642-fe0f.png","sheet_x":23,"sheet_y":5,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F46E-1F3FD-200D-2642-FE0F","non_qualified":"1F46E-1F3FD-200D-2642","image":"1f46e-1f3fd-200d-2642-fe0f.png","sheet_x":23,"sheet_y":6,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F46E-1F3FE-200D-2642-FE0F","non_qualified":"1F46E-1F3FE-200D-2642","image":"1f46e-1f3fe-200d-2642-fe0f.png","sheet_x":23,"sheet_y":7,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F46E-1F3FF-200D-2642-FE0F","non_qualified":"1F46E-1F3FF-200D-2642","image":"1f46e-1f3ff-200d-2642-fe0f.png","sheet_x":23,"sheet_y":8,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoletes":"1F46E","a":"Man Police Officer","b":"1F46E-200D-2642-FE0F","c":"1F46E-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_police_officer","man","police","law","legal","enforcement","arrest","911"],"k":[23,3],"o":4},"female-police-officer":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F46E-1F3FB-200D-2640-FE0F","non_qualified":"1F46E-1F3FB-200D-2640","image":"1f46e-1f3fb-200d-2640-fe0f.png","sheet_x":22,"sheet_y":59,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F46E-1F3FC-200D-2640-FE0F","non_qualified":"1F46E-1F3FC-200D-2640","image":"1f46e-1f3fc-200d-2640-fe0f.png","sheet_x":22,"sheet_y":60,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F46E-1F3FD-200D-2640-FE0F","non_qualified":"1F46E-1F3FD-200D-2640","image":"1f46e-1f3fd-200d-2640-fe0f.png","sheet_x":23,"sheet_y":0,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F46E-1F3FE-200D-2640-FE0F","non_qualified":"1F46E-1F3FE-200D-2640","image":"1f46e-1f3fe-200d-2640-fe0f.png","sheet_x":23,"sheet_y":1,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F46E-1F3FF-200D-2640-FE0F","non_qualified":"1F46E-1F3FF-200D-2640","image":"1f46e-1f3ff-200d-2640-fe0f.png","sheet_x":23,"sheet_y":2,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Police Officer","b":"1F46E-200D-2640-FE0F","c":"1F46E-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_police_officer","woman","police","law","legal","enforcement","arrest","911","female"],"k":[22,58],"o":4},"sleuth_or_spy":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F575-1F3FB","non_qualified":null,"image":"1f575-1f3fb.png","sheet_x":31,"sheet_y":18,"added_in":"2.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F575-1F3FC","non_qualified":null,"image":"1f575-1f3fc.png","sheet_x":31,"sheet_y":19,"added_in":"2.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F575-1F3FD","non_qualified":null,"image":"1f575-1f3fd.png","sheet_x":31,"sheet_y":20,"added_in":"2.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F575-1F3FE","non_qualified":null,"image":"1f575-1f3fe.png","sheet_x":31,"sheet_y":21,"added_in":"2.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F575-1F3FF","non_qualified":null,"image":"1f575-1f3ff.png","sheet_x":31,"sheet_y":22,"added_in":"2.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoleted_by":"1F575-FE0F-200D-2642-FE0F","a":"Detective","b":"1F575-FE0F","c":"1F575","d":true,"e":true,"f":true,"h":true,"j":["detective","human","spy"],"k":[31,17],"o":0},"male-detective":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F575-1F3FB-200D-2642-FE0F","non_qualified":"1F575-1F3FB-200D-2642","image":"1f575-1f3fb-200d-2642-fe0f.png","sheet_x":31,"sheet_y":12,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F575-1F3FC-200D-2642-FE0F","non_qualified":"1F575-1F3FC-200D-2642","image":"1f575-1f3fc-200d-2642-fe0f.png","sheet_x":31,"sheet_y":13,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F575-1F3FD-200D-2642-FE0F","non_qualified":"1F575-1F3FD-200D-2642","image":"1f575-1f3fd-200d-2642-fe0f.png","sheet_x":31,"sheet_y":14,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F575-1F3FE-200D-2642-FE0F","non_qualified":"1F575-1F3FE-200D-2642","image":"1f575-1f3fe-200d-2642-fe0f.png","sheet_x":31,"sheet_y":15,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F575-1F3FF-200D-2642-FE0F","non_qualified":"1F575-1F3FF-200D-2642","image":"1f575-1f3ff-200d-2642-fe0f.png","sheet_x":31,"sheet_y":16,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoletes":"1F575-FE0F","a":"Man Detective","b":"1F575-FE0F-200D-2642-FE0F","d":true,"e":true,"f":true,"h":false,"j":["man_detective","crime"],"k":[31,11],"o":4},"female-detective":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F575-1F3FB-200D-2640-FE0F","non_qualified":"1F575-1F3FB-200D-2640","image":"1f575-1f3fb-200d-2640-fe0f.png","sheet_x":31,"sheet_y":6,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F575-1F3FC-200D-2640-FE0F","non_qualified":"1F575-1F3FC-200D-2640","image":"1f575-1f3fc-200d-2640-fe0f.png","sheet_x":31,"sheet_y":7,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F575-1F3FD-200D-2640-FE0F","non_qualified":"1F575-1F3FD-200D-2640","image":"1f575-1f3fd-200d-2640-fe0f.png","sheet_x":31,"sheet_y":8,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F575-1F3FE-200D-2640-FE0F","non_qualified":"1F575-1F3FE-200D-2640","image":"1f575-1f3fe-200d-2640-fe0f.png","sheet_x":31,"sheet_y":9,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F575-1F3FF-200D-2640-FE0F","non_qualified":"1F575-1F3FF-200D-2640","image":"1f575-1f3ff-200d-2640-fe0f.png","sheet_x":31,"sheet_y":10,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Detective","b":"1F575-FE0F-200D-2640-FE0F","d":true,"e":true,"f":true,"h":false,"j":["woman_detective","human","spy","detective","female","woman"],"k":[31,5],"o":4},"guardsman":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F482-1F3FB","non_qualified":null,"image":"1f482-1f3fb.png","sheet_x":25,"sheet_y":42,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F482-1F3FC","non_qualified":null,"image":"1f482-1f3fc.png","sheet_x":25,"sheet_y":43,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F482-1F3FD","non_qualified":null,"image":"1f482-1f3fd.png","sheet_x":25,"sheet_y":44,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F482-1F3FE","non_qualified":null,"image":"1f482-1f3fe.png","sheet_x":25,"sheet_y":45,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F482-1F3FF","non_qualified":null,"image":"1f482-1f3ff.png","sheet_x":25,"sheet_y":46,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoleted_by":"1F482-200D-2642-FE0F","a":"Guardsman","b":"1F482","d":true,"e":true,"f":true,"h":true,"j":["guard","protect"],"k":[25,41],"o":0},"male-guard":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F482-1F3FB-200D-2642-FE0F","non_qualified":"1F482-1F3FB-200D-2642","image":"1f482-1f3fb-200d-2642-fe0f.png","sheet_x":25,"sheet_y":36,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F482-1F3FC-200D-2642-FE0F","non_qualified":"1F482-1F3FC-200D-2642","image":"1f482-1f3fc-200d-2642-fe0f.png","sheet_x":25,"sheet_y":37,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F482-1F3FD-200D-2642-FE0F","non_qualified":"1F482-1F3FD-200D-2642","image":"1f482-1f3fd-200d-2642-fe0f.png","sheet_x":25,"sheet_y":38,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F482-1F3FE-200D-2642-FE0F","non_qualified":"1F482-1F3FE-200D-2642","image":"1f482-1f3fe-200d-2642-fe0f.png","sheet_x":25,"sheet_y":39,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F482-1F3FF-200D-2642-FE0F","non_qualified":"1F482-1F3FF-200D-2642","image":"1f482-1f3ff-200d-2642-fe0f.png","sheet_x":25,"sheet_y":40,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoletes":"1F482","a":"Man Guard","b":"1F482-200D-2642-FE0F","c":"1F482-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_guard","uk","gb","british","male","guy","royal"],"k":[25,35],"o":4},"female-guard":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F482-1F3FB-200D-2640-FE0F","non_qualified":"1F482-1F3FB-200D-2640","image":"1f482-1f3fb-200d-2640-fe0f.png","sheet_x":25,"sheet_y":30,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F482-1F3FC-200D-2640-FE0F","non_qualified":"1F482-1F3FC-200D-2640","image":"1f482-1f3fc-200d-2640-fe0f.png","sheet_x":25,"sheet_y":31,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F482-1F3FD-200D-2640-FE0F","non_qualified":"1F482-1F3FD-200D-2640","image":"1f482-1f3fd-200d-2640-fe0f.png","sheet_x":25,"sheet_y":32,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F482-1F3FE-200D-2640-FE0F","non_qualified":"1F482-1F3FE-200D-2640","image":"1f482-1f3fe-200d-2640-fe0f.png","sheet_x":25,"sheet_y":33,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F482-1F3FF-200D-2640-FE0F","non_qualified":"1F482-1F3FF-200D-2640","image":"1f482-1f3ff-200d-2640-fe0f.png","sheet_x":25,"sheet_y":34,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Guard","b":"1F482-200D-2640-FE0F","c":"1F482-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_guard","uk","gb","british","female","royal","woman"],"k":[25,29],"o":4},"ninja":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F977-1F3FB","non_qualified":null,"image":"1f977-1f3fb.png","sheet_x":44,"sheet_y":7,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F977-1F3FC","non_qualified":null,"image":"1f977-1f3fc.png","sheet_x":44,"sheet_y":8,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F977-1F3FD","non_qualified":null,"image":"1f977-1f3fd.png","sheet_x":44,"sheet_y":9,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F977-1F3FE","non_qualified":null,"image":"1f977-1f3fe.png","sheet_x":44,"sheet_y":10,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F977-1F3FF","non_qualified":null,"image":"1f977-1f3ff.png","sheet_x":44,"sheet_y":11,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Ninja","b":"1F977","d":true,"e":true,"f":true,"h":true,"j":["ninja","ninjutsu","skills","japanese"],"k":[44,6],"o":13},"construction_worker":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F477-1F3FB","non_qualified":null,"image":"1f477-1f3fb.png","sheet_x":24,"sheet_y":48,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F477-1F3FC","non_qualified":null,"image":"1f477-1f3fc.png","sheet_x":24,"sheet_y":49,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F477-1F3FD","non_qualified":null,"image":"1f477-1f3fd.png","sheet_x":24,"sheet_y":50,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F477-1F3FE","non_qualified":null,"image":"1f477-1f3fe.png","sheet_x":24,"sheet_y":51,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F477-1F3FF","non_qualified":null,"image":"1f477-1f3ff.png","sheet_x":24,"sheet_y":52,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoleted_by":"1F477-200D-2642-FE0F","a":"Construction Worker","b":"1F477","d":true,"e":true,"f":true,"h":true,"j":["construction_worker","labor","build"],"k":[24,47],"o":0},"male-construction-worker":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F477-1F3FB-200D-2642-FE0F","non_qualified":"1F477-1F3FB-200D-2642","image":"1f477-1f3fb-200d-2642-fe0f.png","sheet_x":24,"sheet_y":42,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F477-1F3FC-200D-2642-FE0F","non_qualified":"1F477-1F3FC-200D-2642","image":"1f477-1f3fc-200d-2642-fe0f.png","sheet_x":24,"sheet_y":43,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F477-1F3FD-200D-2642-FE0F","non_qualified":"1F477-1F3FD-200D-2642","image":"1f477-1f3fd-200d-2642-fe0f.png","sheet_x":24,"sheet_y":44,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F477-1F3FE-200D-2642-FE0F","non_qualified":"1F477-1F3FE-200D-2642","image":"1f477-1f3fe-200d-2642-fe0f.png","sheet_x":24,"sheet_y":45,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F477-1F3FF-200D-2642-FE0F","non_qualified":"1F477-1F3FF-200D-2642","image":"1f477-1f3ff-200d-2642-fe0f.png","sheet_x":24,"sheet_y":46,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoletes":"1F477","a":"Man Construction Worker","b":"1F477-200D-2642-FE0F","c":"1F477-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_construction_worker","male","human","wip","guy","build","construction","worker","labor"],"k":[24,41],"o":4},"female-construction-worker":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F477-1F3FB-200D-2640-FE0F","non_qualified":"1F477-1F3FB-200D-2640","image":"1f477-1f3fb-200d-2640-fe0f.png","sheet_x":24,"sheet_y":36,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F477-1F3FC-200D-2640-FE0F","non_qualified":"1F477-1F3FC-200D-2640","image":"1f477-1f3fc-200d-2640-fe0f.png","sheet_x":24,"sheet_y":37,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F477-1F3FD-200D-2640-FE0F","non_qualified":"1F477-1F3FD-200D-2640","image":"1f477-1f3fd-200d-2640-fe0f.png","sheet_x":24,"sheet_y":38,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F477-1F3FE-200D-2640-FE0F","non_qualified":"1F477-1F3FE-200D-2640","image":"1f477-1f3fe-200d-2640-fe0f.png","sheet_x":24,"sheet_y":39,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F477-1F3FF-200D-2640-FE0F","non_qualified":"1F477-1F3FF-200D-2640","image":"1f477-1f3ff-200d-2640-fe0f.png","sheet_x":24,"sheet_y":40,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Construction Worker","b":"1F477-200D-2640-FE0F","c":"1F477-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_construction_worker","female","human","wip","build","construction","worker","labor","woman"],"k":[24,35],"o":4},"person_with_crown":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1FAC5-1F3FB","non_qualified":null,"image":"1fac5-1f3fb.png","sheet_x":55,"sheet_y":11,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1FAC5-1F3FC","non_qualified":null,"image":"1fac5-1f3fc.png","sheet_x":55,"sheet_y":12,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1FAC5-1F3FD","non_qualified":null,"image":"1fac5-1f3fd.png","sheet_x":55,"sheet_y":13,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1FAC5-1F3FE","non_qualified":null,"image":"1fac5-1f3fe.png","sheet_x":55,"sheet_y":14,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1FAC5-1F3FF","non_qualified":null,"image":"1fac5-1f3ff.png","sheet_x":55,"sheet_y":15,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Person with Crown","b":"1FAC5","d":true,"e":true,"f":true,"h":true,"j":["person with crown","royalty","power"],"k":[55,10],"o":14},"prince":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F934-1F3FB","non_qualified":null,"image":"1f934-1f3fb.png","sheet_x":41,"sheet_y":11,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F934-1F3FC","non_qualified":null,"image":"1f934-1f3fc.png","sheet_x":41,"sheet_y":12,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F934-1F3FD","non_qualified":null,"image":"1f934-1f3fd.png","sheet_x":41,"sheet_y":13,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F934-1F3FE","non_qualified":null,"image":"1f934-1f3fe.png","sheet_x":41,"sheet_y":14,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F934-1F3FF","non_qualified":null,"image":"1f934-1f3ff.png","sheet_x":41,"sheet_y":15,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Prince","b":"1F934","d":true,"e":true,"f":true,"h":true,"j":["prince","boy","man","male","crown","royal","king"],"k":[41,10],"o":3},"princess":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F478-1F3FB","non_qualified":null,"image":"1f478-1f3fb.png","sheet_x":24,"sheet_y":54,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F478-1F3FC","non_qualified":null,"image":"1f478-1f3fc.png","sheet_x":24,"sheet_y":55,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F478-1F3FD","non_qualified":null,"image":"1f478-1f3fd.png","sheet_x":24,"sheet_y":56,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F478-1F3FE","non_qualified":null,"image":"1f478-1f3fe.png","sheet_x":24,"sheet_y":57,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F478-1F3FF","non_qualified":null,"image":"1f478-1f3ff.png","sheet_x":24,"sheet_y":58,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Princess","b":"1F478","d":true,"e":true,"f":true,"h":true,"j":["princess","girl","woman","female","blond","crown","royal","queen"],"k":[24,53],"o":0},"man_with_turban":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F473-1F3FB","non_qualified":null,"image":"1f473-1f3fb.png","sheet_x":24,"sheet_y":12,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F473-1F3FC","non_qualified":null,"image":"1f473-1f3fc.png","sheet_x":24,"sheet_y":13,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F473-1F3FD","non_qualified":null,"image":"1f473-1f3fd.png","sheet_x":24,"sheet_y":14,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F473-1F3FE","non_qualified":null,"image":"1f473-1f3fe.png","sheet_x":24,"sheet_y":15,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F473-1F3FF","non_qualified":null,"image":"1f473-1f3ff.png","sheet_x":24,"sheet_y":16,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoleted_by":"1F473-200D-2642-FE0F","a":"Man with Turban","b":"1F473","d":true,"e":true,"f":true,"h":true,"j":["person_wearing_turban","headdress"],"k":[24,11],"o":0},"man-wearing-turban":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F473-1F3FB-200D-2642-FE0F","non_qualified":"1F473-1F3FB-200D-2642","image":"1f473-1f3fb-200d-2642-fe0f.png","sheet_x":24,"sheet_y":6,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F473-1F3FC-200D-2642-FE0F","non_qualified":"1F473-1F3FC-200D-2642","image":"1f473-1f3fc-200d-2642-fe0f.png","sheet_x":24,"sheet_y":7,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F473-1F3FD-200D-2642-FE0F","non_qualified":"1F473-1F3FD-200D-2642","image":"1f473-1f3fd-200d-2642-fe0f.png","sheet_x":24,"sheet_y":8,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F473-1F3FE-200D-2642-FE0F","non_qualified":"1F473-1F3FE-200D-2642","image":"1f473-1f3fe-200d-2642-fe0f.png","sheet_x":24,"sheet_y":9,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F473-1F3FF-200D-2642-FE0F","non_qualified":"1F473-1F3FF-200D-2642","image":"1f473-1f3ff-200d-2642-fe0f.png","sheet_x":24,"sheet_y":10,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoletes":"1F473","a":"Man Wearing Turban","b":"1F473-200D-2642-FE0F","c":"1F473-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_wearing_turban","male","indian","hinduism","arabs"],"k":[24,5],"o":4},"woman-wearing-turban":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F473-1F3FB-200D-2640-FE0F","non_qualified":"1F473-1F3FB-200D-2640","image":"1f473-1f3fb-200d-2640-fe0f.png","sheet_x":24,"sheet_y":0,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F473-1F3FC-200D-2640-FE0F","non_qualified":"1F473-1F3FC-200D-2640","image":"1f473-1f3fc-200d-2640-fe0f.png","sheet_x":24,"sheet_y":1,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F473-1F3FD-200D-2640-FE0F","non_qualified":"1F473-1F3FD-200D-2640","image":"1f473-1f3fd-200d-2640-fe0f.png","sheet_x":24,"sheet_y":2,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F473-1F3FE-200D-2640-FE0F","non_qualified":"1F473-1F3FE-200D-2640","image":"1f473-1f3fe-200d-2640-fe0f.png","sheet_x":24,"sheet_y":3,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F473-1F3FF-200D-2640-FE0F","non_qualified":"1F473-1F3FF-200D-2640","image":"1f473-1f3ff-200d-2640-fe0f.png","sheet_x":24,"sheet_y":4,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Wearing Turban","b":"1F473-200D-2640-FE0F","c":"1F473-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_wearing_turban","female","indian","hinduism","arabs","woman"],"k":[23,60],"o":4},"man_with_gua_pi_mao":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F472-1F3FB","non_qualified":null,"image":"1f472-1f3fb.png","sheet_x":23,"sheet_y":55,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F472-1F3FC","non_qualified":null,"image":"1f472-1f3fc.png","sheet_x":23,"sheet_y":56,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F472-1F3FD","non_qualified":null,"image":"1f472-1f3fd.png","sheet_x":23,"sheet_y":57,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F472-1F3FE","non_qualified":null,"image":"1f472-1f3fe.png","sheet_x":23,"sheet_y":58,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F472-1F3FF","non_qualified":null,"image":"1f472-1f3ff.png","sheet_x":23,"sheet_y":59,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man with Gua Pi Mao","b":"1F472","d":true,"e":true,"f":true,"h":true,"j":["man_with_skullcap","male","boy","chinese"],"k":[23,54],"o":0},"person_with_headscarf":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F9D5-1F3FB","non_qualified":null,"image":"1f9d5-1f3fb.png","sheet_x":50,"sheet_y":44,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D5-1F3FC","non_qualified":null,"image":"1f9d5-1f3fc.png","sheet_x":50,"sheet_y":45,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D5-1F3FD","non_qualified":null,"image":"1f9d5-1f3fd.png","sheet_x":50,"sheet_y":46,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D5-1F3FE","non_qualified":null,"image":"1f9d5-1f3fe.png","sheet_x":50,"sheet_y":47,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D5-1F3FF","non_qualified":null,"image":"1f9d5-1f3ff.png","sheet_x":50,"sheet_y":48,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Person with Headscarf","b":"1F9D5","d":true,"e":true,"f":true,"h":true,"j":["woman_with_headscarf","female","hijab","mantilla","tichel"],"k":[50,43],"o":5},"person_in_tuxedo":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F935-1F3FB","non_qualified":null,"image":"1f935-1f3fb.png","sheet_x":41,"sheet_y":29,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F935-1F3FC","non_qualified":null,"image":"1f935-1f3fc.png","sheet_x":41,"sheet_y":30,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F935-1F3FD","non_qualified":null,"image":"1f935-1f3fd.png","sheet_x":41,"sheet_y":31,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F935-1F3FE","non_qualified":null,"image":"1f935-1f3fe.png","sheet_x":41,"sheet_y":32,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F935-1F3FF","non_qualified":null,"image":"1f935-1f3ff.png","sheet_x":41,"sheet_y":33,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man in Tuxedo","b":"1F935","d":true,"e":true,"f":true,"h":true,"j":["man_in_tuxedo","couple","marriage","wedding","groom"],"k":[41,28],"o":3},"man_in_tuxedo":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F935-1F3FB-200D-2642-FE0F","non_qualified":"1F935-1F3FB-200D-2642","image":"1f935-1f3fb-200d-2642-fe0f.png","sheet_x":41,"sheet_y":23,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F935-1F3FC-200D-2642-FE0F","non_qualified":"1F935-1F3FC-200D-2642","image":"1f935-1f3fc-200d-2642-fe0f.png","sheet_x":41,"sheet_y":24,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F935-1F3FD-200D-2642-FE0F","non_qualified":"1F935-1F3FD-200D-2642","image":"1f935-1f3fd-200d-2642-fe0f.png","sheet_x":41,"sheet_y":25,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F935-1F3FE-200D-2642-FE0F","non_qualified":"1F935-1F3FE-200D-2642","image":"1f935-1f3fe-200d-2642-fe0f.png","sheet_x":41,"sheet_y":26,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F935-1F3FF-200D-2642-FE0F","non_qualified":"1F935-1F3FF-200D-2642","image":"1f935-1f3ff-200d-2642-fe0f.png","sheet_x":41,"sheet_y":27,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man in Tuxedo","b":"1F935-200D-2642-FE0F","c":"1F935-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man in tuxedo","formal","fashion"],"k":[41,22],"o":13},"woman_in_tuxedo":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F935-1F3FB-200D-2640-FE0F","non_qualified":"1F935-1F3FB-200D-2640","image":"1f935-1f3fb-200d-2640-fe0f.png","sheet_x":41,"sheet_y":17,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F935-1F3FC-200D-2640-FE0F","non_qualified":"1F935-1F3FC-200D-2640","image":"1f935-1f3fc-200d-2640-fe0f.png","sheet_x":41,"sheet_y":18,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F935-1F3FD-200D-2640-FE0F","non_qualified":"1F935-1F3FD-200D-2640","image":"1f935-1f3fd-200d-2640-fe0f.png","sheet_x":41,"sheet_y":19,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F935-1F3FE-200D-2640-FE0F","non_qualified":"1F935-1F3FE-200D-2640","image":"1f935-1f3fe-200d-2640-fe0f.png","sheet_x":41,"sheet_y":20,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F935-1F3FF-200D-2640-FE0F","non_qualified":"1F935-1F3FF-200D-2640","image":"1f935-1f3ff-200d-2640-fe0f.png","sheet_x":41,"sheet_y":21,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman in Tuxedo","b":"1F935-200D-2640-FE0F","c":"1F935-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman in tuxedo","formal","fashion"],"k":[41,16],"o":13},"bride_with_veil":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F470-1F3FB","non_qualified":null,"image":"1f470-1f3fb.png","sheet_x":23,"sheet_y":31,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F470-1F3FC","non_qualified":null,"image":"1f470-1f3fc.png","sheet_x":23,"sheet_y":32,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F470-1F3FD","non_qualified":null,"image":"1f470-1f3fd.png","sheet_x":23,"sheet_y":33,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F470-1F3FE","non_qualified":null,"image":"1f470-1f3fe.png","sheet_x":23,"sheet_y":34,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F470-1F3FF","non_qualified":null,"image":"1f470-1f3ff.png","sheet_x":23,"sheet_y":35,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Bride with Veil","b":"1F470","d":true,"e":true,"f":true,"h":true,"j":["bride_with_veil","couple","marriage","wedding","woman","bride"],"k":[23,30],"o":0},"man_with_veil":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F470-1F3FB-200D-2642-FE0F","non_qualified":"1F470-1F3FB-200D-2642","image":"1f470-1f3fb-200d-2642-fe0f.png","sheet_x":23,"sheet_y":25,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F470-1F3FC-200D-2642-FE0F","non_qualified":"1F470-1F3FC-200D-2642","image":"1f470-1f3fc-200d-2642-fe0f.png","sheet_x":23,"sheet_y":26,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F470-1F3FD-200D-2642-FE0F","non_qualified":"1F470-1F3FD-200D-2642","image":"1f470-1f3fd-200d-2642-fe0f.png","sheet_x":23,"sheet_y":27,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F470-1F3FE-200D-2642-FE0F","non_qualified":"1F470-1F3FE-200D-2642","image":"1f470-1f3fe-200d-2642-fe0f.png","sheet_x":23,"sheet_y":28,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F470-1F3FF-200D-2642-FE0F","non_qualified":"1F470-1F3FF-200D-2642","image":"1f470-1f3ff-200d-2642-fe0f.png","sheet_x":23,"sheet_y":29,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man with Veil","b":"1F470-200D-2642-FE0F","c":"1F470-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man with veil","wedding","marriage"],"k":[23,24],"o":13},"woman_with_veil":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F470-1F3FB-200D-2640-FE0F","non_qualified":"1F470-1F3FB-200D-2640","image":"1f470-1f3fb-200d-2640-fe0f.png","sheet_x":23,"sheet_y":19,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F470-1F3FC-200D-2640-FE0F","non_qualified":"1F470-1F3FC-200D-2640","image":"1f470-1f3fc-200d-2640-fe0f.png","sheet_x":23,"sheet_y":20,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F470-1F3FD-200D-2640-FE0F","non_qualified":"1F470-1F3FD-200D-2640","image":"1f470-1f3fd-200d-2640-fe0f.png","sheet_x":23,"sheet_y":21,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F470-1F3FE-200D-2640-FE0F","non_qualified":"1F470-1F3FE-200D-2640","image":"1f470-1f3fe-200d-2640-fe0f.png","sheet_x":23,"sheet_y":22,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F470-1F3FF-200D-2640-FE0F","non_qualified":"1F470-1F3FF-200D-2640","image":"1f470-1f3ff-200d-2640-fe0f.png","sheet_x":23,"sheet_y":23,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman with Veil","b":"1F470-200D-2640-FE0F","c":"1F470-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman with veil","wedding","marriage"],"k":[23,18],"o":13},"pregnant_woman":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F930-1F3FB","non_qualified":null,"image":"1f930-1f3fb.png","sheet_x":40,"sheet_y":48,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F930-1F3FC","non_qualified":null,"image":"1f930-1f3fc.png","sheet_x":40,"sheet_y":49,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F930-1F3FD","non_qualified":null,"image":"1f930-1f3fd.png","sheet_x":40,"sheet_y":50,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F930-1F3FE","non_qualified":null,"image":"1f930-1f3fe.png","sheet_x":40,"sheet_y":51,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F930-1F3FF","non_qualified":null,"image":"1f930-1f3ff.png","sheet_x":40,"sheet_y":52,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Pregnant Woman","b":"1F930","d":true,"e":true,"f":true,"h":true,"j":["pregnant_woman","baby"],"k":[40,47],"o":3},"pregnant_man":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1FAC3-1F3FB","non_qualified":null,"image":"1fac3-1f3fb.png","sheet_x":54,"sheet_y":60,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1FAC3-1F3FC","non_qualified":null,"image":"1fac3-1f3fc.png","sheet_x":55,"sheet_y":0,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1FAC3-1F3FD","non_qualified":null,"image":"1fac3-1f3fd.png","sheet_x":55,"sheet_y":1,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1FAC3-1F3FE","non_qualified":null,"image":"1fac3-1f3fe.png","sheet_x":55,"sheet_y":2,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1FAC3-1F3FF","non_qualified":null,"image":"1fac3-1f3ff.png","sheet_x":55,"sheet_y":3,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Pregnant Man","b":"1FAC3","d":true,"e":true,"f":true,"h":true,"j":["pregnant man","baby","belly"],"k":[54,59],"o":14},"pregnant_person":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1FAC4-1F3FB","non_qualified":null,"image":"1fac4-1f3fb.png","sheet_x":55,"sheet_y":5,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1FAC4-1F3FC","non_qualified":null,"image":"1fac4-1f3fc.png","sheet_x":55,"sheet_y":6,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1FAC4-1F3FD","non_qualified":null,"image":"1fac4-1f3fd.png","sheet_x":55,"sheet_y":7,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1FAC4-1F3FE","non_qualified":null,"image":"1fac4-1f3fe.png","sheet_x":55,"sheet_y":8,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1FAC4-1F3FF","non_qualified":null,"image":"1fac4-1f3ff.png","sheet_x":55,"sheet_y":9,"added_in":"14.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Pregnant Person","b":"1FAC4","d":true,"e":true,"f":true,"h":true,"j":["pregnant person","baby","belly"],"k":[55,4],"o":14},"breast-feeding":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F931-1F3FB","non_qualified":null,"image":"1f931-1f3fb.png","sheet_x":40,"sheet_y":54,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F931-1F3FC","non_qualified":null,"image":"1f931-1f3fc.png","sheet_x":40,"sheet_y":55,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F931-1F3FD","non_qualified":null,"image":"1f931-1f3fd.png","sheet_x":40,"sheet_y":56,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F931-1F3FE","non_qualified":null,"image":"1f931-1f3fe.png","sheet_x":40,"sheet_y":57,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F931-1F3FF","non_qualified":null,"image":"1f931-1f3ff.png","sheet_x":40,"sheet_y":58,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Breast-Feeding","b":"1F931","d":true,"e":true,"f":true,"h":true,"j":["breast_feeding","nursing","baby"],"k":[40,53],"o":5},"woman_feeding_baby":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F469-1F3FB-200D-1F37C","non_qualified":null,"image":"1f469-1f3fb-200d-1f37c.png","sheet_x":17,"sheet_y":33,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F469-1F3FC-200D-1F37C","non_qualified":null,"image":"1f469-1f3fc-200d-1f37c.png","sheet_x":17,"sheet_y":34,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F469-1F3FD-200D-1F37C","non_qualified":null,"image":"1f469-1f3fd-200d-1f37c.png","sheet_x":17,"sheet_y":35,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F469-1F3FE-200D-1F37C","non_qualified":null,"image":"1f469-1f3fe-200d-1f37c.png","sheet_x":17,"sheet_y":36,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F469-1F3FF-200D-1F37C","non_qualified":null,"image":"1f469-1f3ff-200d-1f37c.png","sheet_x":17,"sheet_y":37,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Feeding Baby","b":"1F469-200D-1F37C","d":true,"e":true,"f":true,"h":true,"j":["woman feeding baby","birth","food"],"k":[17,32],"o":13},"man_feeding_baby":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F468-1F3FB-200D-1F37C","non_qualified":null,"image":"1f468-1f3fb-200d-1f37c.png","sheet_x":13,"sheet_y":60,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F468-1F3FC-200D-1F37C","non_qualified":null,"image":"1f468-1f3fc-200d-1f37c.png","sheet_x":14,"sheet_y":0,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F468-1F3FD-200D-1F37C","non_qualified":null,"image":"1f468-1f3fd-200d-1f37c.png","sheet_x":14,"sheet_y":1,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F468-1F3FE-200D-1F37C","non_qualified":null,"image":"1f468-1f3fe-200d-1f37c.png","sheet_x":14,"sheet_y":2,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F468-1F3FF-200D-1F37C","non_qualified":null,"image":"1f468-1f3ff-200d-1f37c.png","sheet_x":14,"sheet_y":3,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Feeding Baby","b":"1F468-200D-1F37C","d":true,"e":true,"f":true,"h":true,"j":["man feeding baby","birth","food"],"k":[13,59],"o":13},"person_feeding_baby":{"subcategory":"person-role","skin_variations":{"1F3FB":{"unified":"1F9D1-1F3FB-200D-1F37C","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f37c.png","sheet_x":47,"sheet_y":27,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D1-1F3FC-200D-1F37C","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f37c.png","sheet_x":47,"sheet_y":28,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D1-1F3FD-200D-1F37C","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f37c.png","sheet_x":47,"sheet_y":29,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D1-1F3FE-200D-1F37C","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f37c.png","sheet_x":47,"sheet_y":30,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D1-1F3FF-200D-1F37C","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f37c.png","sheet_x":47,"sheet_y":31,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Person Feeding Baby","b":"1F9D1-200D-1F37C","d":true,"e":true,"f":true,"h":true,"j":["person feeding baby","birth","food"],"k":[47,26],"o":13},"angel":{"subcategory":"person-fantasy","skin_variations":{"1F3FB":{"unified":"1F47C-1F3FB","non_qualified":null,"image":"1f47c-1f3fb.png","sheet_x":25,"sheet_y":2,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F47C-1F3FC","non_qualified":null,"image":"1f47c-1f3fc.png","sheet_x":25,"sheet_y":3,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F47C-1F3FD","non_qualified":null,"image":"1f47c-1f3fd.png","sheet_x":25,"sheet_y":4,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F47C-1F3FE","non_qualified":null,"image":"1f47c-1f3fe.png","sheet_x":25,"sheet_y":5,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F47C-1F3FF","non_qualified":null,"image":"1f47c-1f3ff.png","sheet_x":25,"sheet_y":6,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Baby Angel","b":"1F47C","d":true,"e":true,"f":true,"h":true,"j":["baby_angel","heaven","wings","halo"],"k":[25,1],"o":0},"santa":{"subcategory":"person-fantasy","skin_variations":{"1F3FB":{"unified":"1F385-1F3FB","non_qualified":null,"image":"1f385-1f3fb.png","sheet_x":7,"sheet_y":9,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F385-1F3FC","non_qualified":null,"image":"1f385-1f3fc.png","sheet_x":7,"sheet_y":10,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F385-1F3FD","non_qualified":null,"image":"1f385-1f3fd.png","sheet_x":7,"sheet_y":11,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F385-1F3FE","non_qualified":null,"image":"1f385-1f3fe.png","sheet_x":7,"sheet_y":12,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F385-1F3FF","non_qualified":null,"image":"1f385-1f3ff.png","sheet_x":7,"sheet_y":13,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Father Christmas","b":"1F385","d":true,"e":true,"f":true,"h":true,"j":["santa_claus","festival","man","male","xmas","father christmas"],"k":[7,8],"o":0},"mrs_claus":{"subcategory":"person-fantasy","skin_variations":{"1F3FB":{"unified":"1F936-1F3FB","non_qualified":null,"image":"1f936-1f3fb.png","sheet_x":41,"sheet_y":35,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F936-1F3FC","non_qualified":null,"image":"1f936-1f3fc.png","sheet_x":41,"sheet_y":36,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F936-1F3FD","non_qualified":null,"image":"1f936-1f3fd.png","sheet_x":41,"sheet_y":37,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F936-1F3FE","non_qualified":null,"image":"1f936-1f3fe.png","sheet_x":41,"sheet_y":38,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F936-1F3FF","non_qualified":null,"image":"1f936-1f3ff.png","sheet_x":41,"sheet_y":39,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Mother Christmas","b":"1F936","d":true,"e":true,"f":true,"h":true,"j":["mrs_claus","woman","female","xmas","mother christmas"],"k":[41,34],"n":["mother_christmas"],"o":3},"mx_claus":{"subcategory":"person-fantasy","skin_variations":{"1F3FB":{"unified":"1F9D1-1F3FB-200D-1F384","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f384.png","sheet_x":47,"sheet_y":33,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D1-1F3FC-200D-1F384","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f384.png","sheet_x":47,"sheet_y":34,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D1-1F3FD-200D-1F384","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f384.png","sheet_x":47,"sheet_y":35,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D1-1F3FE-200D-1F384","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f384.png","sheet_x":47,"sheet_y":36,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D1-1F3FF-200D-1F384","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f384.png","sheet_x":47,"sheet_y":37,"added_in":"13.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Mx Claus","b":"1F9D1-200D-1F384","d":true,"e":true,"f":true,"h":true,"j":["mx claus","christmas"],"k":[47,32],"o":13},"superhero":{"subcategory":"person-fantasy","skin_variations":{"1F3FB":{"unified":"1F9B8-1F3FB","non_qualified":null,"image":"1f9b8-1f3fb.png","sheet_x":45,"sheet_y":34,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9B8-1F3FC","non_qualified":null,"image":"1f9b8-1f3fc.png","sheet_x":45,"sheet_y":35,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9B8-1F3FD","non_qualified":null,"image":"1f9b8-1f3fd.png","sheet_x":45,"sheet_y":36,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9B8-1F3FE","non_qualified":null,"image":"1f9b8-1f3fe.png","sheet_x":45,"sheet_y":37,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9B8-1F3FF","non_qualified":null,"image":"1f9b8-1f3ff.png","sheet_x":45,"sheet_y":38,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Superhero","b":"1F9B8","d":true,"e":true,"f":true,"h":true,"j":["superhero","marvel"],"k":[45,33],"o":11},"male_superhero":{"subcategory":"person-fantasy","skin_variations":{"1F3FB":{"unified":"1F9B8-1F3FB-200D-2642-FE0F","non_qualified":"1F9B8-1F3FB-200D-2642","image":"1f9b8-1f3fb-200d-2642-fe0f.png","sheet_x":45,"sheet_y":28,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9B8-1F3FC-200D-2642-FE0F","non_qualified":"1F9B8-1F3FC-200D-2642","image":"1f9b8-1f3fc-200d-2642-fe0f.png","sheet_x":45,"sheet_y":29,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9B8-1F3FD-200D-2642-FE0F","non_qualified":"1F9B8-1F3FD-200D-2642","image":"1f9b8-1f3fd-200d-2642-fe0f.png","sheet_x":45,"sheet_y":30,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9B8-1F3FE-200D-2642-FE0F","non_qualified":"1F9B8-1F3FE-200D-2642","image":"1f9b8-1f3fe-200d-2642-fe0f.png","sheet_x":45,"sheet_y":31,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9B8-1F3FF-200D-2642-FE0F","non_qualified":"1F9B8-1F3FF-200D-2642","image":"1f9b8-1f3ff-200d-2642-fe0f.png","sheet_x":45,"sheet_y":32,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Superhero","b":"1F9B8-200D-2642-FE0F","c":"1F9B8-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_superhero","man","male","good","hero","superpowers"],"k":[45,27],"o":11},"female_superhero":{"subcategory":"person-fantasy","skin_variations":{"1F3FB":{"unified":"1F9B8-1F3FB-200D-2640-FE0F","non_qualified":"1F9B8-1F3FB-200D-2640","image":"1f9b8-1f3fb-200d-2640-fe0f.png","sheet_x":45,"sheet_y":22,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9B8-1F3FC-200D-2640-FE0F","non_qualified":"1F9B8-1F3FC-200D-2640","image":"1f9b8-1f3fc-200d-2640-fe0f.png","sheet_x":45,"sheet_y":23,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9B8-1F3FD-200D-2640-FE0F","non_qualified":"1F9B8-1F3FD-200D-2640","image":"1f9b8-1f3fd-200d-2640-fe0f.png","sheet_x":45,"sheet_y":24,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9B8-1F3FE-200D-2640-FE0F","non_qualified":"1F9B8-1F3FE-200D-2640","image":"1f9b8-1f3fe-200d-2640-fe0f.png","sheet_x":45,"sheet_y":25,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9B8-1F3FF-200D-2640-FE0F","non_qualified":"1F9B8-1F3FF-200D-2640","image":"1f9b8-1f3ff-200d-2640-fe0f.png","sheet_x":45,"sheet_y":26,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Superhero","b":"1F9B8-200D-2640-FE0F","c":"1F9B8-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_superhero","woman","female","good","heroine","superpowers"],"k":[45,21],"o":11},"supervillain":{"subcategory":"person-fantasy","skin_variations":{"1F3FB":{"unified":"1F9B9-1F3FB","non_qualified":null,"image":"1f9b9-1f3fb.png","sheet_x":45,"sheet_y":52,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9B9-1F3FC","non_qualified":null,"image":"1f9b9-1f3fc.png","sheet_x":45,"sheet_y":53,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9B9-1F3FD","non_qualified":null,"image":"1f9b9-1f3fd.png","sheet_x":45,"sheet_y":54,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9B9-1F3FE","non_qualified":null,"image":"1f9b9-1f3fe.png","sheet_x":45,"sheet_y":55,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9B9-1F3FF","non_qualified":null,"image":"1f9b9-1f3ff.png","sheet_x":45,"sheet_y":56,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Supervillain","b":"1F9B9","d":true,"e":true,"f":true,"h":true,"j":["supervillain","marvel"],"k":[45,51],"o":11},"male_supervillain":{"subcategory":"person-fantasy","skin_variations":{"1F3FB":{"unified":"1F9B9-1F3FB-200D-2642-FE0F","non_qualified":"1F9B9-1F3FB-200D-2642","image":"1f9b9-1f3fb-200d-2642-fe0f.png","sheet_x":45,"sheet_y":46,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9B9-1F3FC-200D-2642-FE0F","non_qualified":"1F9B9-1F3FC-200D-2642","image":"1f9b9-1f3fc-200d-2642-fe0f.png","sheet_x":45,"sheet_y":47,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9B9-1F3FD-200D-2642-FE0F","non_qualified":"1F9B9-1F3FD-200D-2642","image":"1f9b9-1f3fd-200d-2642-fe0f.png","sheet_x":45,"sheet_y":48,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9B9-1F3FE-200D-2642-FE0F","non_qualified":"1F9B9-1F3FE-200D-2642","image":"1f9b9-1f3fe-200d-2642-fe0f.png","sheet_x":45,"sheet_y":49,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9B9-1F3FF-200D-2642-FE0F","non_qualified":"1F9B9-1F3FF-200D-2642","image":"1f9b9-1f3ff-200d-2642-fe0f.png","sheet_x":45,"sheet_y":50,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Supervillain","b":"1F9B9-200D-2642-FE0F","c":"1F9B9-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_supervillain","man","male","evil","bad","criminal","hero","superpowers"],"k":[45,45],"o":11},"female_supervillain":{"subcategory":"person-fantasy","skin_variations":{"1F3FB":{"unified":"1F9B9-1F3FB-200D-2640-FE0F","non_qualified":"1F9B9-1F3FB-200D-2640","image":"1f9b9-1f3fb-200d-2640-fe0f.png","sheet_x":45,"sheet_y":40,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9B9-1F3FC-200D-2640-FE0F","non_qualified":"1F9B9-1F3FC-200D-2640","image":"1f9b9-1f3fc-200d-2640-fe0f.png","sheet_x":45,"sheet_y":41,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9B9-1F3FD-200D-2640-FE0F","non_qualified":"1F9B9-1F3FD-200D-2640","image":"1f9b9-1f3fd-200d-2640-fe0f.png","sheet_x":45,"sheet_y":42,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9B9-1F3FE-200D-2640-FE0F","non_qualified":"1F9B9-1F3FE-200D-2640","image":"1f9b9-1f3fe-200d-2640-fe0f.png","sheet_x":45,"sheet_y":43,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9B9-1F3FF-200D-2640-FE0F","non_qualified":"1F9B9-1F3FF-200D-2640","image":"1f9b9-1f3ff-200d-2640-fe0f.png","sheet_x":45,"sheet_y":44,"added_in":"11.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Supervillain","b":"1F9B9-200D-2640-FE0F","c":"1F9B9-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_supervillain","woman","female","evil","bad","criminal","heroine","superpowers"],"k":[45,39],"o":11},"mage":{"subcategory":"person-fantasy","skin_variations":{"1F3FB":{"unified":"1F9D9-1F3FB","non_qualified":null,"image":"1f9d9-1f3fb.png","sheet_x":51,"sheet_y":55,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9D9-1F3FB-200D-2640-FE0F"},"1F3FC":{"unified":"1F9D9-1F3FC","non_qualified":null,"image":"1f9d9-1f3fc.png","sheet_x":51,"sheet_y":56,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9D9-1F3FC-200D-2640-FE0F"},"1F3FD":{"unified":"1F9D9-1F3FD","non_qualified":null,"image":"1f9d9-1f3fd.png","sheet_x":51,"sheet_y":57,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9D9-1F3FD-200D-2640-FE0F"},"1F3FE":{"unified":"1F9D9-1F3FE","non_qualified":null,"image":"1f9d9-1f3fe.png","sheet_x":51,"sheet_y":58,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9D9-1F3FE-200D-2640-FE0F"},"1F3FF":{"unified":"1F9D9-1F3FF","non_qualified":null,"image":"1f9d9-1f3ff.png","sheet_x":51,"sheet_y":59,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9D9-1F3FF-200D-2640-FE0F"}},"obsoleted_by":"1F9D9-200D-2640-FE0F","a":"Mage","b":"1F9D9","d":true,"e":true,"f":true,"h":true,"j":["mage","magic"],"k":[51,54],"o":5},"male_mage":{"subcategory":"person-fantasy","skin_variations":{"1F3FB":{"unified":"1F9D9-1F3FB-200D-2642-FE0F","non_qualified":"1F9D9-1F3FB-200D-2642","image":"1f9d9-1f3fb-200d-2642-fe0f.png","sheet_x":51,"sheet_y":49,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D9-1F3FC-200D-2642-FE0F","non_qualified":"1F9D9-1F3FC-200D-2642","image":"1f9d9-1f3fc-200d-2642-fe0f.png","sheet_x":51,"sheet_y":50,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D9-1F3FD-200D-2642-FE0F","non_qualified":"1F9D9-1F3FD-200D-2642","image":"1f9d9-1f3fd-200d-2642-fe0f.png","sheet_x":51,"sheet_y":51,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D9-1F3FE-200D-2642-FE0F","non_qualified":"1F9D9-1F3FE-200D-2642","image":"1f9d9-1f3fe-200d-2642-fe0f.png","sheet_x":51,"sheet_y":52,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D9-1F3FF-200D-2642-FE0F","non_qualified":"1F9D9-1F3FF-200D-2642","image":"1f9d9-1f3ff-200d-2642-fe0f.png","sheet_x":51,"sheet_y":53,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Mage","b":"1F9D9-200D-2642-FE0F","c":"1F9D9-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_mage","man","male","mage","sorcerer"],"k":[51,48],"o":5},"female_mage":{"subcategory":"person-fantasy","skin_variations":{"1F3FB":{"unified":"1F9D9-1F3FB-200D-2640-FE0F","non_qualified":"1F9D9-1F3FB-200D-2640","image":"1f9d9-1f3fb-200d-2640-fe0f.png","sheet_x":51,"sheet_y":43,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9D9-1F3FB"},"1F3FC":{"unified":"1F9D9-1F3FC-200D-2640-FE0F","non_qualified":"1F9D9-1F3FC-200D-2640","image":"1f9d9-1f3fc-200d-2640-fe0f.png","sheet_x":51,"sheet_y":44,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9D9-1F3FC"},"1F3FD":{"unified":"1F9D9-1F3FD-200D-2640-FE0F","non_qualified":"1F9D9-1F3FD-200D-2640","image":"1f9d9-1f3fd-200d-2640-fe0f.png","sheet_x":51,"sheet_y":45,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9D9-1F3FD"},"1F3FE":{"unified":"1F9D9-1F3FE-200D-2640-FE0F","non_qualified":"1F9D9-1F3FE-200D-2640","image":"1f9d9-1f3fe-200d-2640-fe0f.png","sheet_x":51,"sheet_y":46,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9D9-1F3FE"},"1F3FF":{"unified":"1F9D9-1F3FF-200D-2640-FE0F","non_qualified":"1F9D9-1F3FF-200D-2640","image":"1f9d9-1f3ff-200d-2640-fe0f.png","sheet_x":51,"sheet_y":47,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9D9-1F3FF"}},"obsoletes":"1F9D9","a":"Woman Mage","b":"1F9D9-200D-2640-FE0F","c":"1F9D9-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_mage","woman","female","mage","witch"],"k":[51,42],"o":5},"fairy":{"subcategory":"person-fantasy","skin_variations":{"1F3FB":{"unified":"1F9DA-1F3FB","non_qualified":null,"image":"1f9da-1f3fb.png","sheet_x":52,"sheet_y":12,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9DA-1F3FB-200D-2640-FE0F"},"1F3FC":{"unified":"1F9DA-1F3FC","non_qualified":null,"image":"1f9da-1f3fc.png","sheet_x":52,"sheet_y":13,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9DA-1F3FC-200D-2640-FE0F"},"1F3FD":{"unified":"1F9DA-1F3FD","non_qualified":null,"image":"1f9da-1f3fd.png","sheet_x":52,"sheet_y":14,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9DA-1F3FD-200D-2640-FE0F"},"1F3FE":{"unified":"1F9DA-1F3FE","non_qualified":null,"image":"1f9da-1f3fe.png","sheet_x":52,"sheet_y":15,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9DA-1F3FE-200D-2640-FE0F"},"1F3FF":{"unified":"1F9DA-1F3FF","non_qualified":null,"image":"1f9da-1f3ff.png","sheet_x":52,"sheet_y":16,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9DA-1F3FF-200D-2640-FE0F"}},"obsoleted_by":"1F9DA-200D-2640-FE0F","a":"Fairy","b":"1F9DA","d":true,"e":true,"f":true,"h":true,"j":["fairy","wings","magical"],"k":[52,11],"o":5},"male_fairy":{"subcategory":"person-fantasy","skin_variations":{"1F3FB":{"unified":"1F9DA-1F3FB-200D-2642-FE0F","non_qualified":"1F9DA-1F3FB-200D-2642","image":"1f9da-1f3fb-200d-2642-fe0f.png","sheet_x":52,"sheet_y":6,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9DA-1F3FC-200D-2642-FE0F","non_qualified":"1F9DA-1F3FC-200D-2642","image":"1f9da-1f3fc-200d-2642-fe0f.png","sheet_x":52,"sheet_y":7,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9DA-1F3FD-200D-2642-FE0F","non_qualified":"1F9DA-1F3FD-200D-2642","image":"1f9da-1f3fd-200d-2642-fe0f.png","sheet_x":52,"sheet_y":8,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9DA-1F3FE-200D-2642-FE0F","non_qualified":"1F9DA-1F3FE-200D-2642","image":"1f9da-1f3fe-200d-2642-fe0f.png","sheet_x":52,"sheet_y":9,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9DA-1F3FF-200D-2642-FE0F","non_qualified":"1F9DA-1F3FF-200D-2642","image":"1f9da-1f3ff-200d-2642-fe0f.png","sheet_x":52,"sheet_y":10,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Fairy","b":"1F9DA-200D-2642-FE0F","c":"1F9DA-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_fairy","man","male"],"k":[52,5],"o":5},"female_fairy":{"subcategory":"person-fantasy","skin_variations":{"1F3FB":{"unified":"1F9DA-1F3FB-200D-2640-FE0F","non_qualified":"1F9DA-1F3FB-200D-2640","image":"1f9da-1f3fb-200d-2640-fe0f.png","sheet_x":52,"sheet_y":0,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9DA-1F3FB"},"1F3FC":{"unified":"1F9DA-1F3FC-200D-2640-FE0F","non_qualified":"1F9DA-1F3FC-200D-2640","image":"1f9da-1f3fc-200d-2640-fe0f.png","sheet_x":52,"sheet_y":1,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9DA-1F3FC"},"1F3FD":{"unified":"1F9DA-1F3FD-200D-2640-FE0F","non_qualified":"1F9DA-1F3FD-200D-2640","image":"1f9da-1f3fd-200d-2640-fe0f.png","sheet_x":52,"sheet_y":2,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9DA-1F3FD"},"1F3FE":{"unified":"1F9DA-1F3FE-200D-2640-FE0F","non_qualified":"1F9DA-1F3FE-200D-2640","image":"1f9da-1f3fe-200d-2640-fe0f.png","sheet_x":52,"sheet_y":3,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9DA-1F3FE"},"1F3FF":{"unified":"1F9DA-1F3FF-200D-2640-FE0F","non_qualified":"1F9DA-1F3FF-200D-2640","image":"1f9da-1f3ff-200d-2640-fe0f.png","sheet_x":52,"sheet_y":4,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9DA-1F3FF"}},"obsoletes":"1F9DA","a":"Woman Fairy","b":"1F9DA-200D-2640-FE0F","c":"1F9DA-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_fairy","woman","female"],"k":[51,60],"o":5},"vampire":{"subcategory":"person-fantasy","skin_variations":{"1F3FB":{"unified":"1F9DB-1F3FB","non_qualified":null,"image":"1f9db-1f3fb.png","sheet_x":52,"sheet_y":30,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9DB-1F3FB-200D-2640-FE0F"},"1F3FC":{"unified":"1F9DB-1F3FC","non_qualified":null,"image":"1f9db-1f3fc.png","sheet_x":52,"sheet_y":31,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9DB-1F3FC-200D-2640-FE0F"},"1F3FD":{"unified":"1F9DB-1F3FD","non_qualified":null,"image":"1f9db-1f3fd.png","sheet_x":52,"sheet_y":32,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9DB-1F3FD-200D-2640-FE0F"},"1F3FE":{"unified":"1F9DB-1F3FE","non_qualified":null,"image":"1f9db-1f3fe.png","sheet_x":52,"sheet_y":33,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9DB-1F3FE-200D-2640-FE0F"},"1F3FF":{"unified":"1F9DB-1F3FF","non_qualified":null,"image":"1f9db-1f3ff.png","sheet_x":52,"sheet_y":34,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9DB-1F3FF-200D-2640-FE0F"}},"obsoleted_by":"1F9DB-200D-2640-FE0F","a":"Vampire","b":"1F9DB","d":true,"e":true,"f":true,"h":true,"j":["vampire","blood","twilight"],"k":[52,29],"o":5},"male_vampire":{"subcategory":"person-fantasy","skin_variations":{"1F3FB":{"unified":"1F9DB-1F3FB-200D-2642-FE0F","non_qualified":"1F9DB-1F3FB-200D-2642","image":"1f9db-1f3fb-200d-2642-fe0f.png","sheet_x":52,"sheet_y":24,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9DB-1F3FC-200D-2642-FE0F","non_qualified":"1F9DB-1F3FC-200D-2642","image":"1f9db-1f3fc-200d-2642-fe0f.png","sheet_x":52,"sheet_y":25,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9DB-1F3FD-200D-2642-FE0F","non_qualified":"1F9DB-1F3FD-200D-2642","image":"1f9db-1f3fd-200d-2642-fe0f.png","sheet_x":52,"sheet_y":26,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9DB-1F3FE-200D-2642-FE0F","non_qualified":"1F9DB-1F3FE-200D-2642","image":"1f9db-1f3fe-200d-2642-fe0f.png","sheet_x":52,"sheet_y":27,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9DB-1F3FF-200D-2642-FE0F","non_qualified":"1F9DB-1F3FF-200D-2642","image":"1f9db-1f3ff-200d-2642-fe0f.png","sheet_x":52,"sheet_y":28,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Vampire","b":"1F9DB-200D-2642-FE0F","c":"1F9DB-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_vampire","man","male","dracula"],"k":[52,23],"o":5},"female_vampire":{"subcategory":"person-fantasy","skin_variations":{"1F3FB":{"unified":"1F9DB-1F3FB-200D-2640-FE0F","non_qualified":"1F9DB-1F3FB-200D-2640","image":"1f9db-1f3fb-200d-2640-fe0f.png","sheet_x":52,"sheet_y":18,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9DB-1F3FB"},"1F3FC":{"unified":"1F9DB-1F3FC-200D-2640-FE0F","non_qualified":"1F9DB-1F3FC-200D-2640","image":"1f9db-1f3fc-200d-2640-fe0f.png","sheet_x":52,"sheet_y":19,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9DB-1F3FC"},"1F3FD":{"unified":"1F9DB-1F3FD-200D-2640-FE0F","non_qualified":"1F9DB-1F3FD-200D-2640","image":"1f9db-1f3fd-200d-2640-fe0f.png","sheet_x":52,"sheet_y":20,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9DB-1F3FD"},"1F3FE":{"unified":"1F9DB-1F3FE-200D-2640-FE0F","non_qualified":"1F9DB-1F3FE-200D-2640","image":"1f9db-1f3fe-200d-2640-fe0f.png","sheet_x":52,"sheet_y":21,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9DB-1F3FE"},"1F3FF":{"unified":"1F9DB-1F3FF-200D-2640-FE0F","non_qualified":"1F9DB-1F3FF-200D-2640","image":"1f9db-1f3ff-200d-2640-fe0f.png","sheet_x":52,"sheet_y":22,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9DB-1F3FF"}},"obsoletes":"1F9DB","a":"Woman Vampire","b":"1F9DB-200D-2640-FE0F","c":"1F9DB-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_vampire","woman","female"],"k":[52,17],"o":5},"merperson":{"subcategory":"person-fantasy","skin_variations":{"1F3FB":{"unified":"1F9DC-1F3FB","non_qualified":null,"image":"1f9dc-1f3fb.png","sheet_x":52,"sheet_y":48,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9DC-1F3FB-200D-2642-FE0F"},"1F3FC":{"unified":"1F9DC-1F3FC","non_qualified":null,"image":"1f9dc-1f3fc.png","sheet_x":52,"sheet_y":49,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9DC-1F3FC-200D-2642-FE0F"},"1F3FD":{"unified":"1F9DC-1F3FD","non_qualified":null,"image":"1f9dc-1f3fd.png","sheet_x":52,"sheet_y":50,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9DC-1F3FD-200D-2642-FE0F"},"1F3FE":{"unified":"1F9DC-1F3FE","non_qualified":null,"image":"1f9dc-1f3fe.png","sheet_x":52,"sheet_y":51,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9DC-1F3FE-200D-2642-FE0F"},"1F3FF":{"unified":"1F9DC-1F3FF","non_qualified":null,"image":"1f9dc-1f3ff.png","sheet_x":52,"sheet_y":52,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9DC-1F3FF-200D-2642-FE0F"}},"obsoleted_by":"1F9DC-200D-2642-FE0F","a":"Merperson","b":"1F9DC","d":true,"e":true,"f":true,"h":true,"j":["merperson","sea"],"k":[52,47],"o":5},"merman":{"subcategory":"person-fantasy","skin_variations":{"1F3FB":{"unified":"1F9DC-1F3FB-200D-2642-FE0F","non_qualified":"1F9DC-1F3FB-200D-2642","image":"1f9dc-1f3fb-200d-2642-fe0f.png","sheet_x":52,"sheet_y":42,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9DC-1F3FB"},"1F3FC":{"unified":"1F9DC-1F3FC-200D-2642-FE0F","non_qualified":"1F9DC-1F3FC-200D-2642","image":"1f9dc-1f3fc-200d-2642-fe0f.png","sheet_x":52,"sheet_y":43,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9DC-1F3FC"},"1F3FD":{"unified":"1F9DC-1F3FD-200D-2642-FE0F","non_qualified":"1F9DC-1F3FD-200D-2642","image":"1f9dc-1f3fd-200d-2642-fe0f.png","sheet_x":52,"sheet_y":44,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9DC-1F3FD"},"1F3FE":{"unified":"1F9DC-1F3FE-200D-2642-FE0F","non_qualified":"1F9DC-1F3FE-200D-2642","image":"1f9dc-1f3fe-200d-2642-fe0f.png","sheet_x":52,"sheet_y":45,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9DC-1F3FE"},"1F3FF":{"unified":"1F9DC-1F3FF-200D-2642-FE0F","non_qualified":"1F9DC-1F3FF-200D-2642","image":"1f9dc-1f3ff-200d-2642-fe0f.png","sheet_x":52,"sheet_y":46,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9DC-1F3FF"}},"obsoletes":"1F9DC","a":"Merman","b":"1F9DC-200D-2642-FE0F","c":"1F9DC-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["merman","man","male","triton"],"k":[52,41],"o":5},"mermaid":{"subcategory":"person-fantasy","skin_variations":{"1F3FB":{"unified":"1F9DC-1F3FB-200D-2640-FE0F","non_qualified":"1F9DC-1F3FB-200D-2640","image":"1f9dc-1f3fb-200d-2640-fe0f.png","sheet_x":52,"sheet_y":36,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9DC-1F3FC-200D-2640-FE0F","non_qualified":"1F9DC-1F3FC-200D-2640","image":"1f9dc-1f3fc-200d-2640-fe0f.png","sheet_x":52,"sheet_y":37,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9DC-1F3FD-200D-2640-FE0F","non_qualified":"1F9DC-1F3FD-200D-2640","image":"1f9dc-1f3fd-200d-2640-fe0f.png","sheet_x":52,"sheet_y":38,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9DC-1F3FE-200D-2640-FE0F","non_qualified":"1F9DC-1F3FE-200D-2640","image":"1f9dc-1f3fe-200d-2640-fe0f.png","sheet_x":52,"sheet_y":39,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9DC-1F3FF-200D-2640-FE0F","non_qualified":"1F9DC-1F3FF-200D-2640","image":"1f9dc-1f3ff-200d-2640-fe0f.png","sheet_x":52,"sheet_y":40,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Mermaid","b":"1F9DC-200D-2640-FE0F","c":"1F9DC-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["mermaid","woman","female","merwoman","ariel"],"k":[52,35],"o":5},"elf":{"subcategory":"person-fantasy","skin_variations":{"1F3FB":{"unified":"1F9DD-1F3FB","non_qualified":null,"image":"1f9dd-1f3fb.png","sheet_x":53,"sheet_y":5,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9DD-1F3FB-200D-2642-FE0F"},"1F3FC":{"unified":"1F9DD-1F3FC","non_qualified":null,"image":"1f9dd-1f3fc.png","sheet_x":53,"sheet_y":6,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9DD-1F3FC-200D-2642-FE0F"},"1F3FD":{"unified":"1F9DD-1F3FD","non_qualified":null,"image":"1f9dd-1f3fd.png","sheet_x":53,"sheet_y":7,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9DD-1F3FD-200D-2642-FE0F"},"1F3FE":{"unified":"1F9DD-1F3FE","non_qualified":null,"image":"1f9dd-1f3fe.png","sheet_x":53,"sheet_y":8,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9DD-1F3FE-200D-2642-FE0F"},"1F3FF":{"unified":"1F9DD-1F3FF","non_qualified":null,"image":"1f9dd-1f3ff.png","sheet_x":53,"sheet_y":9,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9DD-1F3FF-200D-2642-FE0F"}},"obsoleted_by":"1F9DD-200D-2642-FE0F","a":"Elf","b":"1F9DD","d":true,"e":true,"f":true,"h":true,"j":["elf","magical"],"k":[53,4],"o":5},"male_elf":{"subcategory":"person-fantasy","skin_variations":{"1F3FB":{"unified":"1F9DD-1F3FB-200D-2642-FE0F","non_qualified":"1F9DD-1F3FB-200D-2642","image":"1f9dd-1f3fb-200d-2642-fe0f.png","sheet_x":52,"sheet_y":60,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9DD-1F3FB"},"1F3FC":{"unified":"1F9DD-1F3FC-200D-2642-FE0F","non_qualified":"1F9DD-1F3FC-200D-2642","image":"1f9dd-1f3fc-200d-2642-fe0f.png","sheet_x":53,"sheet_y":0,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9DD-1F3FC"},"1F3FD":{"unified":"1F9DD-1F3FD-200D-2642-FE0F","non_qualified":"1F9DD-1F3FD-200D-2642","image":"1f9dd-1f3fd-200d-2642-fe0f.png","sheet_x":53,"sheet_y":1,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9DD-1F3FD"},"1F3FE":{"unified":"1F9DD-1F3FE-200D-2642-FE0F","non_qualified":"1F9DD-1F3FE-200D-2642","image":"1f9dd-1f3fe-200d-2642-fe0f.png","sheet_x":53,"sheet_y":2,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9DD-1F3FE"},"1F3FF":{"unified":"1F9DD-1F3FF-200D-2642-FE0F","non_qualified":"1F9DD-1F3FF-200D-2642","image":"1f9dd-1f3ff-200d-2642-fe0f.png","sheet_x":53,"sheet_y":3,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9DD-1F3FF"}},"obsoletes":"1F9DD","a":"Man Elf","b":"1F9DD-200D-2642-FE0F","c":"1F9DD-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_elf","man","male"],"k":[52,59],"o":5},"female_elf":{"subcategory":"person-fantasy","skin_variations":{"1F3FB":{"unified":"1F9DD-1F3FB-200D-2640-FE0F","non_qualified":"1F9DD-1F3FB-200D-2640","image":"1f9dd-1f3fb-200d-2640-fe0f.png","sheet_x":52,"sheet_y":54,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9DD-1F3FC-200D-2640-FE0F","non_qualified":"1F9DD-1F3FC-200D-2640","image":"1f9dd-1f3fc-200d-2640-fe0f.png","sheet_x":52,"sheet_y":55,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9DD-1F3FD-200D-2640-FE0F","non_qualified":"1F9DD-1F3FD-200D-2640","image":"1f9dd-1f3fd-200d-2640-fe0f.png","sheet_x":52,"sheet_y":56,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9DD-1F3FE-200D-2640-FE0F","non_qualified":"1F9DD-1F3FE-200D-2640","image":"1f9dd-1f3fe-200d-2640-fe0f.png","sheet_x":52,"sheet_y":57,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9DD-1F3FF-200D-2640-FE0F","non_qualified":"1F9DD-1F3FF-200D-2640","image":"1f9dd-1f3ff-200d-2640-fe0f.png","sheet_x":52,"sheet_y":58,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Elf","b":"1F9DD-200D-2640-FE0F","c":"1F9DD-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_elf","woman","female"],"k":[52,53],"o":5},"genie":{"subcategory":"person-fantasy","obsoleted_by":"1F9DE-200D-2642-FE0F","a":"Genie","b":"1F9DE","d":true,"e":true,"f":true,"h":true,"j":["genie","magical","wishes"],"k":[53,12],"o":5},"male_genie":{"subcategory":"person-fantasy","obsoletes":"1F9DE","a":"Man Genie","b":"1F9DE-200D-2642-FE0F","c":"1F9DE-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_genie","man","male"],"k":[53,11],"o":5},"female_genie":{"subcategory":"person-fantasy","a":"Woman Genie","b":"1F9DE-200D-2640-FE0F","c":"1F9DE-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_genie","woman","female"],"k":[53,10],"o":5},"zombie":{"subcategory":"person-fantasy","obsoleted_by":"1F9DF-200D-2642-FE0F","a":"Zombie","b":"1F9DF","d":true,"e":true,"f":true,"h":true,"j":["zombie","dead"],"k":[53,15],"o":5},"male_zombie":{"subcategory":"person-fantasy","obsoletes":"1F9DF","a":"Man Zombie","b":"1F9DF-200D-2642-FE0F","c":"1F9DF-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_zombie","man","male","dracula","undead","walking dead"],"k":[53,14],"o":5},"female_zombie":{"subcategory":"person-fantasy","a":"Woman Zombie","b":"1F9DF-200D-2640-FE0F","c":"1F9DF-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_zombie","woman","female","undead","walking dead"],"k":[53,13],"o":5},"troll":{"subcategory":"person-fantasy","a":"Troll","b":"1F9CC","d":true,"e":true,"f":true,"h":true,"j":["troll","mystical","monster"],"k":[46,19],"o":14},"massage":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F486-1F3FB","non_qualified":null,"image":"1f486-1f3fb.png","sheet_x":26,"sheet_y":12,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F486-1F3FC","non_qualified":null,"image":"1f486-1f3fc.png","sheet_x":26,"sheet_y":13,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F486-1F3FD","non_qualified":null,"image":"1f486-1f3fd.png","sheet_x":26,"sheet_y":14,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F486-1F3FE","non_qualified":null,"image":"1f486-1f3fe.png","sheet_x":26,"sheet_y":15,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F486-1F3FF","non_qualified":null,"image":"1f486-1f3ff.png","sheet_x":26,"sheet_y":16,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoleted_by":"1F486-200D-2640-FE0F","a":"Face Massage","b":"1F486","d":true,"e":true,"f":true,"h":true,"j":["person_getting_massage","relax"],"k":[26,11],"o":0},"man-getting-massage":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F486-1F3FB-200D-2642-FE0F","non_qualified":"1F486-1F3FB-200D-2642","image":"1f486-1f3fb-200d-2642-fe0f.png","sheet_x":26,"sheet_y":6,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F486-1F3FC-200D-2642-FE0F","non_qualified":"1F486-1F3FC-200D-2642","image":"1f486-1f3fc-200d-2642-fe0f.png","sheet_x":26,"sheet_y":7,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F486-1F3FD-200D-2642-FE0F","non_qualified":"1F486-1F3FD-200D-2642","image":"1f486-1f3fd-200d-2642-fe0f.png","sheet_x":26,"sheet_y":8,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F486-1F3FE-200D-2642-FE0F","non_qualified":"1F486-1F3FE-200D-2642","image":"1f486-1f3fe-200d-2642-fe0f.png","sheet_x":26,"sheet_y":9,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F486-1F3FF-200D-2642-FE0F","non_qualified":"1F486-1F3FF-200D-2642","image":"1f486-1f3ff-200d-2642-fe0f.png","sheet_x":26,"sheet_y":10,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Getting Massage","b":"1F486-200D-2642-FE0F","c":"1F486-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_getting_massage","male","boy","man","head"],"k":[26,5],"o":4},"woman-getting-massage":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F486-1F3FB-200D-2640-FE0F","non_qualified":"1F486-1F3FB-200D-2640","image":"1f486-1f3fb-200d-2640-fe0f.png","sheet_x":26,"sheet_y":0,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F486-1F3FC-200D-2640-FE0F","non_qualified":"1F486-1F3FC-200D-2640","image":"1f486-1f3fc-200d-2640-fe0f.png","sheet_x":26,"sheet_y":1,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F486-1F3FD-200D-2640-FE0F","non_qualified":"1F486-1F3FD-200D-2640","image":"1f486-1f3fd-200d-2640-fe0f.png","sheet_x":26,"sheet_y":2,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F486-1F3FE-200D-2640-FE0F","non_qualified":"1F486-1F3FE-200D-2640","image":"1f486-1f3fe-200d-2640-fe0f.png","sheet_x":26,"sheet_y":3,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F486-1F3FF-200D-2640-FE0F","non_qualified":"1F486-1F3FF-200D-2640","image":"1f486-1f3ff-200d-2640-fe0f.png","sheet_x":26,"sheet_y":4,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoletes":"1F486","a":"Woman Getting Massage","b":"1F486-200D-2640-FE0F","c":"1F486-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_getting_massage","female","girl","woman","head"],"k":[25,60],"o":4},"haircut":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F487-1F3FB","non_qualified":null,"image":"1f487-1f3fb.png","sheet_x":26,"sheet_y":30,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F487-1F3FC","non_qualified":null,"image":"1f487-1f3fc.png","sheet_x":26,"sheet_y":31,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F487-1F3FD","non_qualified":null,"image":"1f487-1f3fd.png","sheet_x":26,"sheet_y":32,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F487-1F3FE","non_qualified":null,"image":"1f487-1f3fe.png","sheet_x":26,"sheet_y":33,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F487-1F3FF","non_qualified":null,"image":"1f487-1f3ff.png","sheet_x":26,"sheet_y":34,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoleted_by":"1F487-200D-2640-FE0F","a":"Haircut","b":"1F487","d":true,"e":true,"f":true,"h":true,"j":["person_getting_haircut","hairstyle"],"k":[26,29],"o":0},"man-getting-haircut":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F487-1F3FB-200D-2642-FE0F","non_qualified":"1F487-1F3FB-200D-2642","image":"1f487-1f3fb-200d-2642-fe0f.png","sheet_x":26,"sheet_y":24,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F487-1F3FC-200D-2642-FE0F","non_qualified":"1F487-1F3FC-200D-2642","image":"1f487-1f3fc-200d-2642-fe0f.png","sheet_x":26,"sheet_y":25,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F487-1F3FD-200D-2642-FE0F","non_qualified":"1F487-1F3FD-200D-2642","image":"1f487-1f3fd-200d-2642-fe0f.png","sheet_x":26,"sheet_y":26,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F487-1F3FE-200D-2642-FE0F","non_qualified":"1F487-1F3FE-200D-2642","image":"1f487-1f3fe-200d-2642-fe0f.png","sheet_x":26,"sheet_y":27,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F487-1F3FF-200D-2642-FE0F","non_qualified":"1F487-1F3FF-200D-2642","image":"1f487-1f3ff-200d-2642-fe0f.png","sheet_x":26,"sheet_y":28,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Getting Haircut","b":"1F487-200D-2642-FE0F","c":"1F487-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_getting_haircut","male","boy","man"],"k":[26,23],"o":4},"woman-getting-haircut":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F487-1F3FB-200D-2640-FE0F","non_qualified":"1F487-1F3FB-200D-2640","image":"1f487-1f3fb-200d-2640-fe0f.png","sheet_x":26,"sheet_y":18,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F487-1F3FC-200D-2640-FE0F","non_qualified":"1F487-1F3FC-200D-2640","image":"1f487-1f3fc-200d-2640-fe0f.png","sheet_x":26,"sheet_y":19,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F487-1F3FD-200D-2640-FE0F","non_qualified":"1F487-1F3FD-200D-2640","image":"1f487-1f3fd-200d-2640-fe0f.png","sheet_x":26,"sheet_y":20,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F487-1F3FE-200D-2640-FE0F","non_qualified":"1F487-1F3FE-200D-2640","image":"1f487-1f3fe-200d-2640-fe0f.png","sheet_x":26,"sheet_y":21,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F487-1F3FF-200D-2640-FE0F","non_qualified":"1F487-1F3FF-200D-2640","image":"1f487-1f3ff-200d-2640-fe0f.png","sheet_x":26,"sheet_y":22,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoletes":"1F487","a":"Woman Getting Haircut","b":"1F487-200D-2640-FE0F","c":"1F487-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_getting_haircut","female","girl","woman"],"k":[26,17],"o":4},"walking":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F6B6-1F3FB","non_qualified":null,"image":"1f6b6-1f3fb.png","sheet_x":37,"sheet_y":29,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F6B6-1F3FC","non_qualified":null,"image":"1f6b6-1f3fc.png","sheet_x":37,"sheet_y":30,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F6B6-1F3FD","non_qualified":null,"image":"1f6b6-1f3fd.png","sheet_x":37,"sheet_y":31,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F6B6-1F3FE","non_qualified":null,"image":"1f6b6-1f3fe.png","sheet_x":37,"sheet_y":32,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F6B6-1F3FF","non_qualified":null,"image":"1f6b6-1f3ff.png","sheet_x":37,"sheet_y":33,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoleted_by":"1F6B6-200D-2642-FE0F","a":"Pedestrian","b":"1F6B6","d":true,"e":true,"f":true,"h":true,"j":["person_walking","move"],"k":[37,28],"o":0},"man-walking":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F6B6-1F3FB-200D-2642-FE0F","non_qualified":"1F6B6-1F3FB-200D-2642","image":"1f6b6-1f3fb-200d-2642-fe0f.png","sheet_x":37,"sheet_y":23,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F6B6-1F3FC-200D-2642-FE0F","non_qualified":"1F6B6-1F3FC-200D-2642","image":"1f6b6-1f3fc-200d-2642-fe0f.png","sheet_x":37,"sheet_y":24,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F6B6-1F3FD-200D-2642-FE0F","non_qualified":"1F6B6-1F3FD-200D-2642","image":"1f6b6-1f3fd-200d-2642-fe0f.png","sheet_x":37,"sheet_y":25,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F6B6-1F3FE-200D-2642-FE0F","non_qualified":"1F6B6-1F3FE-200D-2642","image":"1f6b6-1f3fe-200d-2642-fe0f.png","sheet_x":37,"sheet_y":26,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F6B6-1F3FF-200D-2642-FE0F","non_qualified":"1F6B6-1F3FF-200D-2642","image":"1f6b6-1f3ff-200d-2642-fe0f.png","sheet_x":37,"sheet_y":27,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoletes":"1F6B6","a":"Man Walking","b":"1F6B6-200D-2642-FE0F","c":"1F6B6-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_walking","human","feet","steps"],"k":[37,22],"o":4},"woman-walking":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F6B6-1F3FB-200D-2640-FE0F","non_qualified":"1F6B6-1F3FB-200D-2640","image":"1f6b6-1f3fb-200d-2640-fe0f.png","sheet_x":37,"sheet_y":17,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F6B6-1F3FC-200D-2640-FE0F","non_qualified":"1F6B6-1F3FC-200D-2640","image":"1f6b6-1f3fc-200d-2640-fe0f.png","sheet_x":37,"sheet_y":18,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F6B6-1F3FD-200D-2640-FE0F","non_qualified":"1F6B6-1F3FD-200D-2640","image":"1f6b6-1f3fd-200d-2640-fe0f.png","sheet_x":37,"sheet_y":19,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F6B6-1F3FE-200D-2640-FE0F","non_qualified":"1F6B6-1F3FE-200D-2640","image":"1f6b6-1f3fe-200d-2640-fe0f.png","sheet_x":37,"sheet_y":20,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F6B6-1F3FF-200D-2640-FE0F","non_qualified":"1F6B6-1F3FF-200D-2640","image":"1f6b6-1f3ff-200d-2640-fe0f.png","sheet_x":37,"sheet_y":21,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Walking","b":"1F6B6-200D-2640-FE0F","c":"1F6B6-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_walking","human","feet","steps","woman","female"],"k":[37,16],"o":4},"standing_person":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F9CD-1F3FB","non_qualified":null,"image":"1f9cd-1f3fb.png","sheet_x":46,"sheet_y":33,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9CD-1F3FC","non_qualified":null,"image":"1f9cd-1f3fc.png","sheet_x":46,"sheet_y":34,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9CD-1F3FD","non_qualified":null,"image":"1f9cd-1f3fd.png","sheet_x":46,"sheet_y":35,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9CD-1F3FE","non_qualified":null,"image":"1f9cd-1f3fe.png","sheet_x":46,"sheet_y":36,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9CD-1F3FF","non_qualified":null,"image":"1f9cd-1f3ff.png","sheet_x":46,"sheet_y":37,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Standing Person","b":"1F9CD","d":true,"e":true,"f":true,"h":true,"j":["person_standing","still"],"k":[46,32],"o":12},"man_standing":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F9CD-1F3FB-200D-2642-FE0F","non_qualified":"1F9CD-1F3FB-200D-2642","image":"1f9cd-1f3fb-200d-2642-fe0f.png","sheet_x":46,"sheet_y":27,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9CD-1F3FC-200D-2642-FE0F","non_qualified":"1F9CD-1F3FC-200D-2642","image":"1f9cd-1f3fc-200d-2642-fe0f.png","sheet_x":46,"sheet_y":28,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9CD-1F3FD-200D-2642-FE0F","non_qualified":"1F9CD-1F3FD-200D-2642","image":"1f9cd-1f3fd-200d-2642-fe0f.png","sheet_x":46,"sheet_y":29,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9CD-1F3FE-200D-2642-FE0F","non_qualified":"1F9CD-1F3FE-200D-2642","image":"1f9cd-1f3fe-200d-2642-fe0f.png","sheet_x":46,"sheet_y":30,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9CD-1F3FF-200D-2642-FE0F","non_qualified":"1F9CD-1F3FF-200D-2642","image":"1f9cd-1f3ff-200d-2642-fe0f.png","sheet_x":46,"sheet_y":31,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Standing","b":"1F9CD-200D-2642-FE0F","c":"1F9CD-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_standing","still"],"k":[46,26],"o":12},"woman_standing":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F9CD-1F3FB-200D-2640-FE0F","non_qualified":"1F9CD-1F3FB-200D-2640","image":"1f9cd-1f3fb-200d-2640-fe0f.png","sheet_x":46,"sheet_y":21,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9CD-1F3FC-200D-2640-FE0F","non_qualified":"1F9CD-1F3FC-200D-2640","image":"1f9cd-1f3fc-200d-2640-fe0f.png","sheet_x":46,"sheet_y":22,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9CD-1F3FD-200D-2640-FE0F","non_qualified":"1F9CD-1F3FD-200D-2640","image":"1f9cd-1f3fd-200d-2640-fe0f.png","sheet_x":46,"sheet_y":23,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9CD-1F3FE-200D-2640-FE0F","non_qualified":"1F9CD-1F3FE-200D-2640","image":"1f9cd-1f3fe-200d-2640-fe0f.png","sheet_x":46,"sheet_y":24,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9CD-1F3FF-200D-2640-FE0F","non_qualified":"1F9CD-1F3FF-200D-2640","image":"1f9cd-1f3ff-200d-2640-fe0f.png","sheet_x":46,"sheet_y":25,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Standing","b":"1F9CD-200D-2640-FE0F","c":"1F9CD-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_standing","still"],"k":[46,20],"o":12},"kneeling_person":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F9CE-1F3FB","non_qualified":null,"image":"1f9ce-1f3fb.png","sheet_x":46,"sheet_y":51,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9CE-1F3FC","non_qualified":null,"image":"1f9ce-1f3fc.png","sheet_x":46,"sheet_y":52,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9CE-1F3FD","non_qualified":null,"image":"1f9ce-1f3fd.png","sheet_x":46,"sheet_y":53,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9CE-1F3FE","non_qualified":null,"image":"1f9ce-1f3fe.png","sheet_x":46,"sheet_y":54,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9CE-1F3FF","non_qualified":null,"image":"1f9ce-1f3ff.png","sheet_x":46,"sheet_y":55,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Kneeling Person","b":"1F9CE","d":true,"e":true,"f":true,"h":true,"j":["person_kneeling","pray","respectful"],"k":[46,50],"o":12},"man_kneeling":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F9CE-1F3FB-200D-2642-FE0F","non_qualified":"1F9CE-1F3FB-200D-2642","image":"1f9ce-1f3fb-200d-2642-fe0f.png","sheet_x":46,"sheet_y":45,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9CE-1F3FC-200D-2642-FE0F","non_qualified":"1F9CE-1F3FC-200D-2642","image":"1f9ce-1f3fc-200d-2642-fe0f.png","sheet_x":46,"sheet_y":46,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9CE-1F3FD-200D-2642-FE0F","non_qualified":"1F9CE-1F3FD-200D-2642","image":"1f9ce-1f3fd-200d-2642-fe0f.png","sheet_x":46,"sheet_y":47,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9CE-1F3FE-200D-2642-FE0F","non_qualified":"1F9CE-1F3FE-200D-2642","image":"1f9ce-1f3fe-200d-2642-fe0f.png","sheet_x":46,"sheet_y":48,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9CE-1F3FF-200D-2642-FE0F","non_qualified":"1F9CE-1F3FF-200D-2642","image":"1f9ce-1f3ff-200d-2642-fe0f.png","sheet_x":46,"sheet_y":49,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Kneeling","b":"1F9CE-200D-2642-FE0F","c":"1F9CE-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_kneeling","pray","respectful"],"k":[46,44],"o":12},"woman_kneeling":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F9CE-1F3FB-200D-2640-FE0F","non_qualified":"1F9CE-1F3FB-200D-2640","image":"1f9ce-1f3fb-200d-2640-fe0f.png","sheet_x":46,"sheet_y":39,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9CE-1F3FC-200D-2640-FE0F","non_qualified":"1F9CE-1F3FC-200D-2640","image":"1f9ce-1f3fc-200d-2640-fe0f.png","sheet_x":46,"sheet_y":40,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9CE-1F3FD-200D-2640-FE0F","non_qualified":"1F9CE-1F3FD-200D-2640","image":"1f9ce-1f3fd-200d-2640-fe0f.png","sheet_x":46,"sheet_y":41,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9CE-1F3FE-200D-2640-FE0F","non_qualified":"1F9CE-1F3FE-200D-2640","image":"1f9ce-1f3fe-200d-2640-fe0f.png","sheet_x":46,"sheet_y":42,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9CE-1F3FF-200D-2640-FE0F","non_qualified":"1F9CE-1F3FF-200D-2640","image":"1f9ce-1f3ff-200d-2640-fe0f.png","sheet_x":46,"sheet_y":43,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Kneeling","b":"1F9CE-200D-2640-FE0F","c":"1F9CE-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_kneeling","respectful","pray"],"k":[46,38],"o":12},"person_with_probing_cane":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F9D1-1F3FB-200D-1F9AF","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f9af.png","sheet_x":49,"sheet_y":9,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D1-1F3FC-200D-1F9AF","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f9af.png","sheet_x":49,"sheet_y":10,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D1-1F3FD-200D-1F9AF","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f9af.png","sheet_x":49,"sheet_y":11,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D1-1F3FE-200D-1F9AF","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f9af.png","sheet_x":49,"sheet_y":12,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D1-1F3FF-200D-1F9AF","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f9af.png","sheet_x":49,"sheet_y":13,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Person with White Cane","b":"1F9D1-200D-1F9AF","d":true,"e":true,"f":true,"h":true,"j":["person_with_probing_cane","blind"],"k":[49,8],"o":12},"man_with_probing_cane":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F468-1F3FB-200D-1F9AF","non_qualified":null,"image":"1f468-1f3fb-200d-1f9af.png","sheet_x":15,"sheet_y":25,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F468-1F3FC-200D-1F9AF","non_qualified":null,"image":"1f468-1f3fc-200d-1f9af.png","sheet_x":15,"sheet_y":26,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F468-1F3FD-200D-1F9AF","non_qualified":null,"image":"1f468-1f3fd-200d-1f9af.png","sheet_x":15,"sheet_y":27,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F468-1F3FE-200D-1F9AF","non_qualified":null,"image":"1f468-1f3fe-200d-1f9af.png","sheet_x":15,"sheet_y":28,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F468-1F3FF-200D-1F9AF","non_qualified":null,"image":"1f468-1f3ff-200d-1f9af.png","sheet_x":15,"sheet_y":29,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man with White Cane","b":"1F468-200D-1F9AF","d":true,"e":true,"f":true,"h":true,"j":["man_with_probing_cane","blind"],"k":[15,24],"o":12},"woman_with_probing_cane":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F469-1F3FB-200D-1F9AF","non_qualified":null,"image":"1f469-1f3fb-200d-1f9af.png","sheet_x":18,"sheet_y":54,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F469-1F3FC-200D-1F9AF","non_qualified":null,"image":"1f469-1f3fc-200d-1f9af.png","sheet_x":18,"sheet_y":55,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F469-1F3FD-200D-1F9AF","non_qualified":null,"image":"1f469-1f3fd-200d-1f9af.png","sheet_x":18,"sheet_y":56,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F469-1F3FE-200D-1F9AF","non_qualified":null,"image":"1f469-1f3fe-200d-1f9af.png","sheet_x":18,"sheet_y":57,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F469-1F3FF-200D-1F9AF","non_qualified":null,"image":"1f469-1f3ff-200d-1f9af.png","sheet_x":18,"sheet_y":58,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman with White Cane","b":"1F469-200D-1F9AF","d":true,"e":true,"f":true,"h":true,"j":["woman_with_probing_cane","blind"],"k":[18,53],"o":12},"person_in_motorized_wheelchair":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F9D1-1F3FB-200D-1F9BC","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f9bc.png","sheet_x":49,"sheet_y":39,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D1-1F3FC-200D-1F9BC","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f9bc.png","sheet_x":49,"sheet_y":40,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D1-1F3FD-200D-1F9BC","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f9bc.png","sheet_x":49,"sheet_y":41,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D1-1F3FE-200D-1F9BC","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f9bc.png","sheet_x":49,"sheet_y":42,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D1-1F3FF-200D-1F9BC","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f9bc.png","sheet_x":49,"sheet_y":43,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Person in Motorized Wheelchair","b":"1F9D1-200D-1F9BC","d":true,"e":true,"f":true,"h":true,"j":["person_in_motorized_wheelchair","disability","accessibility"],"k":[49,38],"o":12},"man_in_motorized_wheelchair":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F468-1F3FB-200D-1F9BC","non_qualified":null,"image":"1f468-1f3fb-200d-1f9bc.png","sheet_x":15,"sheet_y":55,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F468-1F3FC-200D-1F9BC","non_qualified":null,"image":"1f468-1f3fc-200d-1f9bc.png","sheet_x":15,"sheet_y":56,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F468-1F3FD-200D-1F9BC","non_qualified":null,"image":"1f468-1f3fd-200d-1f9bc.png","sheet_x":15,"sheet_y":57,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F468-1F3FE-200D-1F9BC","non_qualified":null,"image":"1f468-1f3fe-200d-1f9bc.png","sheet_x":15,"sheet_y":58,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F468-1F3FF-200D-1F9BC","non_qualified":null,"image":"1f468-1f3ff-200d-1f9bc.png","sheet_x":15,"sheet_y":59,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man in Motorized Wheelchair","b":"1F468-200D-1F9BC","d":true,"e":true,"f":true,"h":true,"j":["man_in_motorized_wheelchair","disability","accessibility"],"k":[15,54],"o":12},"woman_in_motorized_wheelchair":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F469-1F3FB-200D-1F9BC","non_qualified":null,"image":"1f469-1f3fb-200d-1f9bc.png","sheet_x":19,"sheet_y":23,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F469-1F3FC-200D-1F9BC","non_qualified":null,"image":"1f469-1f3fc-200d-1f9bc.png","sheet_x":19,"sheet_y":24,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F469-1F3FD-200D-1F9BC","non_qualified":null,"image":"1f469-1f3fd-200d-1f9bc.png","sheet_x":19,"sheet_y":25,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F469-1F3FE-200D-1F9BC","non_qualified":null,"image":"1f469-1f3fe-200d-1f9bc.png","sheet_x":19,"sheet_y":26,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F469-1F3FF-200D-1F9BC","non_qualified":null,"image":"1f469-1f3ff-200d-1f9bc.png","sheet_x":19,"sheet_y":27,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman in Motorized Wheelchair","b":"1F469-200D-1F9BC","d":true,"e":true,"f":true,"h":true,"j":["woman_in_motorized_wheelchair","disability","accessibility"],"k":[19,22],"o":12},"person_in_manual_wheelchair":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F9D1-1F3FB-200D-1F9BD","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f9bd.png","sheet_x":49,"sheet_y":45,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D1-1F3FC-200D-1F9BD","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f9bd.png","sheet_x":49,"sheet_y":46,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D1-1F3FD-200D-1F9BD","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f9bd.png","sheet_x":49,"sheet_y":47,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D1-1F3FE-200D-1F9BD","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f9bd.png","sheet_x":49,"sheet_y":48,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D1-1F3FF-200D-1F9BD","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f9bd.png","sheet_x":49,"sheet_y":49,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Person in Manual Wheelchair","b":"1F9D1-200D-1F9BD","d":true,"e":true,"f":true,"h":true,"j":["person_in_manual_wheelchair","disability","accessibility"],"k":[49,44],"o":12},"man_in_manual_wheelchair":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F468-1F3FB-200D-1F9BD","non_qualified":null,"image":"1f468-1f3fb-200d-1f9bd.png","sheet_x":16,"sheet_y":0,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F468-1F3FC-200D-1F9BD","non_qualified":null,"image":"1f468-1f3fc-200d-1f9bd.png","sheet_x":16,"sheet_y":1,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F468-1F3FD-200D-1F9BD","non_qualified":null,"image":"1f468-1f3fd-200d-1f9bd.png","sheet_x":16,"sheet_y":2,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F468-1F3FE-200D-1F9BD","non_qualified":null,"image":"1f468-1f3fe-200d-1f9bd.png","sheet_x":16,"sheet_y":3,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F468-1F3FF-200D-1F9BD","non_qualified":null,"image":"1f468-1f3ff-200d-1f9bd.png","sheet_x":16,"sheet_y":4,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man in Manual Wheelchair","b":"1F468-200D-1F9BD","d":true,"e":true,"f":true,"h":true,"j":["man_in_manual_wheelchair","disability","accessibility"],"k":[15,60],"o":12},"woman_in_manual_wheelchair":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F469-1F3FB-200D-1F9BD","non_qualified":null,"image":"1f469-1f3fb-200d-1f9bd.png","sheet_x":19,"sheet_y":29,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F469-1F3FC-200D-1F9BD","non_qualified":null,"image":"1f469-1f3fc-200d-1f9bd.png","sheet_x":19,"sheet_y":30,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F469-1F3FD-200D-1F9BD","non_qualified":null,"image":"1f469-1f3fd-200d-1f9bd.png","sheet_x":19,"sheet_y":31,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F469-1F3FE-200D-1F9BD","non_qualified":null,"image":"1f469-1f3fe-200d-1f9bd.png","sheet_x":19,"sheet_y":32,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F469-1F3FF-200D-1F9BD","non_qualified":null,"image":"1f469-1f3ff-200d-1f9bd.png","sheet_x":19,"sheet_y":33,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman in Manual Wheelchair","b":"1F469-200D-1F9BD","d":true,"e":true,"f":true,"h":true,"j":["woman_in_manual_wheelchair","disability","accessibility"],"k":[19,28],"o":12},"runner":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F3C3-1F3FB","non_qualified":null,"image":"1f3c3-1f3fb.png","sheet_x":8,"sheet_y":27,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F3C3-1F3FC","non_qualified":null,"image":"1f3c3-1f3fc.png","sheet_x":8,"sheet_y":28,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F3C3-1F3FD","non_qualified":null,"image":"1f3c3-1f3fd.png","sheet_x":8,"sheet_y":29,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F3C3-1F3FE","non_qualified":null,"image":"1f3c3-1f3fe.png","sheet_x":8,"sheet_y":30,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F3C3-1F3FF","non_qualified":null,"image":"1f3c3-1f3ff.png","sheet_x":8,"sheet_y":31,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoleted_by":"1F3C3-200D-2642-FE0F","a":"Runner","b":"1F3C3","d":true,"e":true,"f":true,"h":true,"j":["person_running","move"],"k":[8,26],"n":["running"],"o":0},"man-running":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F3C3-1F3FB-200D-2642-FE0F","non_qualified":"1F3C3-1F3FB-200D-2642","image":"1f3c3-1f3fb-200d-2642-fe0f.png","sheet_x":8,"sheet_y":21,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F3C3-1F3FC-200D-2642-FE0F","non_qualified":"1F3C3-1F3FC-200D-2642","image":"1f3c3-1f3fc-200d-2642-fe0f.png","sheet_x":8,"sheet_y":22,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F3C3-1F3FD-200D-2642-FE0F","non_qualified":"1F3C3-1F3FD-200D-2642","image":"1f3c3-1f3fd-200d-2642-fe0f.png","sheet_x":8,"sheet_y":23,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F3C3-1F3FE-200D-2642-FE0F","non_qualified":"1F3C3-1F3FE-200D-2642","image":"1f3c3-1f3fe-200d-2642-fe0f.png","sheet_x":8,"sheet_y":24,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F3C3-1F3FF-200D-2642-FE0F","non_qualified":"1F3C3-1F3FF-200D-2642","image":"1f3c3-1f3ff-200d-2642-fe0f.png","sheet_x":8,"sheet_y":25,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoletes":"1F3C3","a":"Man Running","b":"1F3C3-200D-2642-FE0F","c":"1F3C3-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_running","man","walking","exercise","race","running"],"k":[8,20],"o":4},"woman-running":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F3C3-1F3FB-200D-2640-FE0F","non_qualified":"1F3C3-1F3FB-200D-2640","image":"1f3c3-1f3fb-200d-2640-fe0f.png","sheet_x":8,"sheet_y":15,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F3C3-1F3FC-200D-2640-FE0F","non_qualified":"1F3C3-1F3FC-200D-2640","image":"1f3c3-1f3fc-200d-2640-fe0f.png","sheet_x":8,"sheet_y":16,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F3C3-1F3FD-200D-2640-FE0F","non_qualified":"1F3C3-1F3FD-200D-2640","image":"1f3c3-1f3fd-200d-2640-fe0f.png","sheet_x":8,"sheet_y":17,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F3C3-1F3FE-200D-2640-FE0F","non_qualified":"1F3C3-1F3FE-200D-2640","image":"1f3c3-1f3fe-200d-2640-fe0f.png","sheet_x":8,"sheet_y":18,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F3C3-1F3FF-200D-2640-FE0F","non_qualified":"1F3C3-1F3FF-200D-2640","image":"1f3c3-1f3ff-200d-2640-fe0f.png","sheet_x":8,"sheet_y":19,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Running","b":"1F3C3-200D-2640-FE0F","c":"1F3C3-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_running","woman","walking","exercise","race","running","female"],"k":[8,14],"o":4},"dancer":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F483-1F3FB","non_qualified":null,"image":"1f483-1f3fb.png","sheet_x":25,"sheet_y":48,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F483-1F3FC","non_qualified":null,"image":"1f483-1f3fc.png","sheet_x":25,"sheet_y":49,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F483-1F3FD","non_qualified":null,"image":"1f483-1f3fd.png","sheet_x":25,"sheet_y":50,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F483-1F3FE","non_qualified":null,"image":"1f483-1f3fe.png","sheet_x":25,"sheet_y":51,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F483-1F3FF","non_qualified":null,"image":"1f483-1f3ff.png","sheet_x":25,"sheet_y":52,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Dancer","b":"1F483","d":true,"e":true,"f":true,"h":true,"j":["woman_dancing","female","girl","woman","fun"],"k":[25,47],"o":0},"man_dancing":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F57A-1F3FB","non_qualified":null,"image":"1f57a-1f3fb.png","sheet_x":31,"sheet_y":28,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F57A-1F3FC","non_qualified":null,"image":"1f57a-1f3fc.png","sheet_x":31,"sheet_y":29,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F57A-1F3FD","non_qualified":null,"image":"1f57a-1f3fd.png","sheet_x":31,"sheet_y":30,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F57A-1F3FE","non_qualified":null,"image":"1f57a-1f3fe.png","sheet_x":31,"sheet_y":31,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F57A-1F3FF","non_qualified":null,"image":"1f57a-1f3ff.png","sheet_x":31,"sheet_y":32,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Dancing","b":"1F57A","d":true,"e":true,"f":true,"h":true,"j":["man_dancing","male","boy","fun","dancer"],"k":[31,27],"o":3},"man_in_business_suit_levitating":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F574-1F3FB","non_qualified":null,"image":"1f574-1f3fb.png","sheet_x":31,"sheet_y":0,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F574-1F3FC","non_qualified":null,"image":"1f574-1f3fc.png","sheet_x":31,"sheet_y":1,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F574-1F3FD","non_qualified":null,"image":"1f574-1f3fd.png","sheet_x":31,"sheet_y":2,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F574-1F3FE","non_qualified":null,"image":"1f574-1f3fe.png","sheet_x":31,"sheet_y":3,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F574-1F3FF","non_qualified":null,"image":"1f574-1f3ff.png","sheet_x":31,"sheet_y":4,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Person in Suit Levitating","b":"1F574-FE0F","c":"1F574","d":true,"e":true,"f":true,"h":true,"j":["man_in_suit_levitating","suit","business","levitate","hover","jump"],"k":[30,60],"o":0},"dancers":{"subcategory":"person-activity","obsoleted_by":"1F46F-200D-2640-FE0F","a":"Woman with Bunny Ears","b":"1F46F","d":true,"e":true,"f":true,"h":true,"j":["people_with_bunny_ears","perform","costume"],"k":[23,17],"o":0},"men-with-bunny-ears-partying":{"subcategory":"person-activity","a":"Men with Bunny Ears","b":"1F46F-200D-2642-FE0F","c":"1F46F-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["men_with_bunny_ears","male","bunny","men","boys"],"k":[23,16],"n":["man-with-bunny-ears-partying"],"o":4},"women-with-bunny-ears-partying":{"subcategory":"person-activity","obsoletes":"1F46F","a":"Women with Bunny Ears","b":"1F46F-200D-2640-FE0F","c":"1F46F-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["women_with_bunny_ears","female","bunny","women","girls"],"k":[23,15],"n":["woman-with-bunny-ears-partying"],"o":4},"person_in_steamy_room":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F9D6-1F3FB","non_qualified":null,"image":"1f9d6-1f3fb.png","sheet_x":51,"sheet_y":1,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9D6-1F3FB-200D-2642-FE0F"},"1F3FC":{"unified":"1F9D6-1F3FC","non_qualified":null,"image":"1f9d6-1f3fc.png","sheet_x":51,"sheet_y":2,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9D6-1F3FC-200D-2642-FE0F"},"1F3FD":{"unified":"1F9D6-1F3FD","non_qualified":null,"image":"1f9d6-1f3fd.png","sheet_x":51,"sheet_y":3,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9D6-1F3FD-200D-2642-FE0F"},"1F3FE":{"unified":"1F9D6-1F3FE","non_qualified":null,"image":"1f9d6-1f3fe.png","sheet_x":51,"sheet_y":4,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9D6-1F3FE-200D-2642-FE0F"},"1F3FF":{"unified":"1F9D6-1F3FF","non_qualified":null,"image":"1f9d6-1f3ff.png","sheet_x":51,"sheet_y":5,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9D6-1F3FF-200D-2642-FE0F"}},"obsoleted_by":"1F9D6-200D-2642-FE0F","a":"Person in Steamy Room","b":"1F9D6","d":true,"e":true,"f":true,"h":true,"j":["person_in_steamy_room","relax","spa"],"k":[51,0],"o":5},"man_in_steamy_room":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F9D6-1F3FB-200D-2642-FE0F","non_qualified":"1F9D6-1F3FB-200D-2642","image":"1f9d6-1f3fb-200d-2642-fe0f.png","sheet_x":50,"sheet_y":56,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9D6-1F3FB"},"1F3FC":{"unified":"1F9D6-1F3FC-200D-2642-FE0F","non_qualified":"1F9D6-1F3FC-200D-2642","image":"1f9d6-1f3fc-200d-2642-fe0f.png","sheet_x":50,"sheet_y":57,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9D6-1F3FC"},"1F3FD":{"unified":"1F9D6-1F3FD-200D-2642-FE0F","non_qualified":"1F9D6-1F3FD-200D-2642","image":"1f9d6-1f3fd-200d-2642-fe0f.png","sheet_x":50,"sheet_y":58,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9D6-1F3FD"},"1F3FE":{"unified":"1F9D6-1F3FE-200D-2642-FE0F","non_qualified":"1F9D6-1F3FE-200D-2642","image":"1f9d6-1f3fe-200d-2642-fe0f.png","sheet_x":50,"sheet_y":59,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9D6-1F3FE"},"1F3FF":{"unified":"1F9D6-1F3FF-200D-2642-FE0F","non_qualified":"1F9D6-1F3FF-200D-2642","image":"1f9d6-1f3ff-200d-2642-fe0f.png","sheet_x":50,"sheet_y":60,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9D6-1F3FF"}},"obsoletes":"1F9D6","a":"Man in Steamy Room","b":"1F9D6-200D-2642-FE0F","c":"1F9D6-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_in_steamy_room","male","man","spa","steamroom","sauna"],"k":[50,55],"o":5},"woman_in_steamy_room":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F9D6-1F3FB-200D-2640-FE0F","non_qualified":"1F9D6-1F3FB-200D-2640","image":"1f9d6-1f3fb-200d-2640-fe0f.png","sheet_x":50,"sheet_y":50,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D6-1F3FC-200D-2640-FE0F","non_qualified":"1F9D6-1F3FC-200D-2640","image":"1f9d6-1f3fc-200d-2640-fe0f.png","sheet_x":50,"sheet_y":51,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D6-1F3FD-200D-2640-FE0F","non_qualified":"1F9D6-1F3FD-200D-2640","image":"1f9d6-1f3fd-200d-2640-fe0f.png","sheet_x":50,"sheet_y":52,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D6-1F3FE-200D-2640-FE0F","non_qualified":"1F9D6-1F3FE-200D-2640","image":"1f9d6-1f3fe-200d-2640-fe0f.png","sheet_x":50,"sheet_y":53,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D6-1F3FF-200D-2640-FE0F","non_qualified":"1F9D6-1F3FF-200D-2640","image":"1f9d6-1f3ff-200d-2640-fe0f.png","sheet_x":50,"sheet_y":54,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman in Steamy Room","b":"1F9D6-200D-2640-FE0F","c":"1F9D6-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_in_steamy_room","female","woman","spa","steamroom","sauna"],"k":[50,49],"o":5},"person_climbing":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F9D7-1F3FB","non_qualified":null,"image":"1f9d7-1f3fb.png","sheet_x":51,"sheet_y":19,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9D7-1F3FB-200D-2640-FE0F"},"1F3FC":{"unified":"1F9D7-1F3FC","non_qualified":null,"image":"1f9d7-1f3fc.png","sheet_x":51,"sheet_y":20,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9D7-1F3FC-200D-2640-FE0F"},"1F3FD":{"unified":"1F9D7-1F3FD","non_qualified":null,"image":"1f9d7-1f3fd.png","sheet_x":51,"sheet_y":21,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9D7-1F3FD-200D-2640-FE0F"},"1F3FE":{"unified":"1F9D7-1F3FE","non_qualified":null,"image":"1f9d7-1f3fe.png","sheet_x":51,"sheet_y":22,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9D7-1F3FE-200D-2640-FE0F"},"1F3FF":{"unified":"1F9D7-1F3FF","non_qualified":null,"image":"1f9d7-1f3ff.png","sheet_x":51,"sheet_y":23,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9D7-1F3FF-200D-2640-FE0F"}},"obsoleted_by":"1F9D7-200D-2640-FE0F","a":"Person Climbing","b":"1F9D7","d":true,"e":true,"f":true,"h":true,"j":["person_climbing","sport"],"k":[51,18],"o":5},"man_climbing":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F9D7-1F3FB-200D-2642-FE0F","non_qualified":"1F9D7-1F3FB-200D-2642","image":"1f9d7-1f3fb-200d-2642-fe0f.png","sheet_x":51,"sheet_y":13,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D7-1F3FC-200D-2642-FE0F","non_qualified":"1F9D7-1F3FC-200D-2642","image":"1f9d7-1f3fc-200d-2642-fe0f.png","sheet_x":51,"sheet_y":14,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D7-1F3FD-200D-2642-FE0F","non_qualified":"1F9D7-1F3FD-200D-2642","image":"1f9d7-1f3fd-200d-2642-fe0f.png","sheet_x":51,"sheet_y":15,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D7-1F3FE-200D-2642-FE0F","non_qualified":"1F9D7-1F3FE-200D-2642","image":"1f9d7-1f3fe-200d-2642-fe0f.png","sheet_x":51,"sheet_y":16,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D7-1F3FF-200D-2642-FE0F","non_qualified":"1F9D7-1F3FF-200D-2642","image":"1f9d7-1f3ff-200d-2642-fe0f.png","sheet_x":51,"sheet_y":17,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Climbing","b":"1F9D7-200D-2642-FE0F","c":"1F9D7-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_climbing","sports","hobby","man","male","rock"],"k":[51,12],"o":5},"woman_climbing":{"subcategory":"person-activity","skin_variations":{"1F3FB":{"unified":"1F9D7-1F3FB-200D-2640-FE0F","non_qualified":"1F9D7-1F3FB-200D-2640","image":"1f9d7-1f3fb-200d-2640-fe0f.png","sheet_x":51,"sheet_y":7,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9D7-1F3FB"},"1F3FC":{"unified":"1F9D7-1F3FC-200D-2640-FE0F","non_qualified":"1F9D7-1F3FC-200D-2640","image":"1f9d7-1f3fc-200d-2640-fe0f.png","sheet_x":51,"sheet_y":8,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9D7-1F3FC"},"1F3FD":{"unified":"1F9D7-1F3FD-200D-2640-FE0F","non_qualified":"1F9D7-1F3FD-200D-2640","image":"1f9d7-1f3fd-200d-2640-fe0f.png","sheet_x":51,"sheet_y":9,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9D7-1F3FD"},"1F3FE":{"unified":"1F9D7-1F3FE-200D-2640-FE0F","non_qualified":"1F9D7-1F3FE-200D-2640","image":"1f9d7-1f3fe-200d-2640-fe0f.png","sheet_x":51,"sheet_y":10,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9D7-1F3FE"},"1F3FF":{"unified":"1F9D7-1F3FF-200D-2640-FE0F","non_qualified":"1F9D7-1F3FF-200D-2640","image":"1f9d7-1f3ff-200d-2640-fe0f.png","sheet_x":51,"sheet_y":11,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9D7-1F3FF"}},"obsoletes":"1F9D7","a":"Woman Climbing","b":"1F9D7-200D-2640-FE0F","c":"1F9D7-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_climbing","sports","hobby","woman","female","rock"],"k":[51,6],"o":5},"fencer":{"subcategory":"person-sport","a":"Fencer","b":"1F93A","d":true,"e":true,"f":true,"h":true,"j":["person_fencing","sports","fencing","sword"],"k":[42,33],"o":3},"horse_racing":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F3C7-1F3FB","non_qualified":null,"image":"1f3c7-1f3fb.png","sheet_x":8,"sheet_y":53,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F3C7-1F3FC","non_qualified":null,"image":"1f3c7-1f3fc.png","sheet_x":8,"sheet_y":54,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F3C7-1F3FD","non_qualified":null,"image":"1f3c7-1f3fd.png","sheet_x":8,"sheet_y":55,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F3C7-1F3FE","non_qualified":null,"image":"1f3c7-1f3fe.png","sheet_x":8,"sheet_y":56,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F3C7-1F3FF","non_qualified":null,"image":"1f3c7-1f3ff.png","sheet_x":8,"sheet_y":57,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Horse Racing","b":"1F3C7","d":true,"e":true,"f":true,"h":true,"j":["horse_racing","animal","betting","competition","gambling","luck"],"k":[8,52],"o":1},"skier":{"subcategory":"person-sport","a":"Skier","b":"26F7-FE0F","c":"26F7","d":true,"e":true,"f":true,"h":true,"j":["skier","sports","winter","snow"],"k":[58,32],"o":0},"snowboarder":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F3C2-1F3FB","non_qualified":null,"image":"1f3c2-1f3fb.png","sheet_x":8,"sheet_y":9,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F3C2-1F3FC","non_qualified":null,"image":"1f3c2-1f3fc.png","sheet_x":8,"sheet_y":10,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F3C2-1F3FD","non_qualified":null,"image":"1f3c2-1f3fd.png","sheet_x":8,"sheet_y":11,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F3C2-1F3FE","non_qualified":null,"image":"1f3c2-1f3fe.png","sheet_x":8,"sheet_y":12,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F3C2-1F3FF","non_qualified":null,"image":"1f3c2-1f3ff.png","sheet_x":8,"sheet_y":13,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Snowboarder","b":"1F3C2","d":true,"e":true,"f":true,"h":true,"j":["snowboarder","sports","winter"],"k":[8,8],"o":0},"golfer":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F3CC-1F3FB","non_qualified":null,"image":"1f3cc-1f3fb.png","sheet_x":9,"sheet_y":48,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F3CC-1F3FC","non_qualified":null,"image":"1f3cc-1f3fc.png","sheet_x":9,"sheet_y":49,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F3CC-1F3FD","non_qualified":null,"image":"1f3cc-1f3fd.png","sheet_x":9,"sheet_y":50,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F3CC-1F3FE","non_qualified":null,"image":"1f3cc-1f3fe.png","sheet_x":9,"sheet_y":51,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F3CC-1F3FF","non_qualified":null,"image":"1f3cc-1f3ff.png","sheet_x":9,"sheet_y":52,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoleted_by":"1F3CC-FE0F-200D-2642-FE0F","a":"Person Golfing","b":"1F3CC-FE0F","c":"1F3CC","d":true,"e":true,"f":true,"h":true,"j":["person_golfing","sports","business"],"k":[9,47],"o":0},"man-golfing":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F3CC-1F3FB-200D-2642-FE0F","non_qualified":"1F3CC-1F3FB-200D-2642","image":"1f3cc-1f3fb-200d-2642-fe0f.png","sheet_x":9,"sheet_y":42,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F3CC-1F3FC-200D-2642-FE0F","non_qualified":"1F3CC-1F3FC-200D-2642","image":"1f3cc-1f3fc-200d-2642-fe0f.png","sheet_x":9,"sheet_y":43,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F3CC-1F3FD-200D-2642-FE0F","non_qualified":"1F3CC-1F3FD-200D-2642","image":"1f3cc-1f3fd-200d-2642-fe0f.png","sheet_x":9,"sheet_y":44,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F3CC-1F3FE-200D-2642-FE0F","non_qualified":"1F3CC-1F3FE-200D-2642","image":"1f3cc-1f3fe-200d-2642-fe0f.png","sheet_x":9,"sheet_y":45,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F3CC-1F3FF-200D-2642-FE0F","non_qualified":"1F3CC-1F3FF-200D-2642","image":"1f3cc-1f3ff-200d-2642-fe0f.png","sheet_x":9,"sheet_y":46,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoletes":"1F3CC-FE0F","a":"Man Golfing","b":"1F3CC-FE0F-200D-2642-FE0F","d":true,"e":true,"f":true,"h":false,"j":["man_golfing","sport"],"k":[9,41],"o":4},"woman-golfing":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F3CC-1F3FB-200D-2640-FE0F","non_qualified":"1F3CC-1F3FB-200D-2640","image":"1f3cc-1f3fb-200d-2640-fe0f.png","sheet_x":9,"sheet_y":36,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F3CC-1F3FC-200D-2640-FE0F","non_qualified":"1F3CC-1F3FC-200D-2640","image":"1f3cc-1f3fc-200d-2640-fe0f.png","sheet_x":9,"sheet_y":37,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F3CC-1F3FD-200D-2640-FE0F","non_qualified":"1F3CC-1F3FD-200D-2640","image":"1f3cc-1f3fd-200d-2640-fe0f.png","sheet_x":9,"sheet_y":38,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F3CC-1F3FE-200D-2640-FE0F","non_qualified":"1F3CC-1F3FE-200D-2640","image":"1f3cc-1f3fe-200d-2640-fe0f.png","sheet_x":9,"sheet_y":39,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F3CC-1F3FF-200D-2640-FE0F","non_qualified":"1F3CC-1F3FF-200D-2640","image":"1f3cc-1f3ff-200d-2640-fe0f.png","sheet_x":9,"sheet_y":40,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Golfing","b":"1F3CC-FE0F-200D-2640-FE0F","d":true,"e":true,"f":true,"h":false,"j":["woman_golfing","sports","business","woman","female"],"k":[9,35],"o":4},"surfer":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F3C4-1F3FB","non_qualified":null,"image":"1f3c4-1f3fb.png","sheet_x":8,"sheet_y":45,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F3C4-1F3FC","non_qualified":null,"image":"1f3c4-1f3fc.png","sheet_x":8,"sheet_y":46,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F3C4-1F3FD","non_qualified":null,"image":"1f3c4-1f3fd.png","sheet_x":8,"sheet_y":47,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F3C4-1F3FE","non_qualified":null,"image":"1f3c4-1f3fe.png","sheet_x":8,"sheet_y":48,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F3C4-1F3FF","non_qualified":null,"image":"1f3c4-1f3ff.png","sheet_x":8,"sheet_y":49,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoleted_by":"1F3C4-200D-2642-FE0F","a":"Surfer","b":"1F3C4","d":true,"e":true,"f":true,"h":true,"j":["person_surfing","sport","sea"],"k":[8,44],"o":0},"man-surfing":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F3C4-1F3FB-200D-2642-FE0F","non_qualified":"1F3C4-1F3FB-200D-2642","image":"1f3c4-1f3fb-200d-2642-fe0f.png","sheet_x":8,"sheet_y":39,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F3C4-1F3FC-200D-2642-FE0F","non_qualified":"1F3C4-1F3FC-200D-2642","image":"1f3c4-1f3fc-200d-2642-fe0f.png","sheet_x":8,"sheet_y":40,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F3C4-1F3FD-200D-2642-FE0F","non_qualified":"1F3C4-1F3FD-200D-2642","image":"1f3c4-1f3fd-200d-2642-fe0f.png","sheet_x":8,"sheet_y":41,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F3C4-1F3FE-200D-2642-FE0F","non_qualified":"1F3C4-1F3FE-200D-2642","image":"1f3c4-1f3fe-200d-2642-fe0f.png","sheet_x":8,"sheet_y":42,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F3C4-1F3FF-200D-2642-FE0F","non_qualified":"1F3C4-1F3FF-200D-2642","image":"1f3c4-1f3ff-200d-2642-fe0f.png","sheet_x":8,"sheet_y":43,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoletes":"1F3C4","a":"Man Surfing","b":"1F3C4-200D-2642-FE0F","c":"1F3C4-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_surfing","sports","ocean","sea","summer","beach"],"k":[8,38],"o":4},"woman-surfing":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F3C4-1F3FB-200D-2640-FE0F","non_qualified":"1F3C4-1F3FB-200D-2640","image":"1f3c4-1f3fb-200d-2640-fe0f.png","sheet_x":8,"sheet_y":33,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F3C4-1F3FC-200D-2640-FE0F","non_qualified":"1F3C4-1F3FC-200D-2640","image":"1f3c4-1f3fc-200d-2640-fe0f.png","sheet_x":8,"sheet_y":34,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F3C4-1F3FD-200D-2640-FE0F","non_qualified":"1F3C4-1F3FD-200D-2640","image":"1f3c4-1f3fd-200d-2640-fe0f.png","sheet_x":8,"sheet_y":35,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F3C4-1F3FE-200D-2640-FE0F","non_qualified":"1F3C4-1F3FE-200D-2640","image":"1f3c4-1f3fe-200d-2640-fe0f.png","sheet_x":8,"sheet_y":36,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F3C4-1F3FF-200D-2640-FE0F","non_qualified":"1F3C4-1F3FF-200D-2640","image":"1f3c4-1f3ff-200d-2640-fe0f.png","sheet_x":8,"sheet_y":37,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Surfing","b":"1F3C4-200D-2640-FE0F","c":"1F3C4-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_surfing","sports","ocean","sea","summer","beach","woman","female"],"k":[8,32],"o":4},"rowboat":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F6A3-1F3FB","non_qualified":null,"image":"1f6a3-1f3fb.png","sheet_x":36,"sheet_y":20,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F6A3-1F3FC","non_qualified":null,"image":"1f6a3-1f3fc.png","sheet_x":36,"sheet_y":21,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F6A3-1F3FD","non_qualified":null,"image":"1f6a3-1f3fd.png","sheet_x":36,"sheet_y":22,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F6A3-1F3FE","non_qualified":null,"image":"1f6a3-1f3fe.png","sheet_x":36,"sheet_y":23,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F6A3-1F3FF","non_qualified":null,"image":"1f6a3-1f3ff.png","sheet_x":36,"sheet_y":24,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoleted_by":"1F6A3-200D-2642-FE0F","a":"Rowboat","b":"1F6A3","d":true,"e":true,"f":true,"h":true,"j":["person_rowing_boat","sport","move"],"k":[36,19],"o":1},"man-rowing-boat":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F6A3-1F3FB-200D-2642-FE0F","non_qualified":"1F6A3-1F3FB-200D-2642","image":"1f6a3-1f3fb-200d-2642-fe0f.png","sheet_x":36,"sheet_y":14,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F6A3-1F3FC-200D-2642-FE0F","non_qualified":"1F6A3-1F3FC-200D-2642","image":"1f6a3-1f3fc-200d-2642-fe0f.png","sheet_x":36,"sheet_y":15,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F6A3-1F3FD-200D-2642-FE0F","non_qualified":"1F6A3-1F3FD-200D-2642","image":"1f6a3-1f3fd-200d-2642-fe0f.png","sheet_x":36,"sheet_y":16,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F6A3-1F3FE-200D-2642-FE0F","non_qualified":"1F6A3-1F3FE-200D-2642","image":"1f6a3-1f3fe-200d-2642-fe0f.png","sheet_x":36,"sheet_y":17,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F6A3-1F3FF-200D-2642-FE0F","non_qualified":"1F6A3-1F3FF-200D-2642","image":"1f6a3-1f3ff-200d-2642-fe0f.png","sheet_x":36,"sheet_y":18,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoletes":"1F6A3","a":"Man Rowing Boat","b":"1F6A3-200D-2642-FE0F","c":"1F6A3-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_rowing_boat","sports","hobby","water","ship"],"k":[36,13],"o":4},"woman-rowing-boat":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F6A3-1F3FB-200D-2640-FE0F","non_qualified":"1F6A3-1F3FB-200D-2640","image":"1f6a3-1f3fb-200d-2640-fe0f.png","sheet_x":36,"sheet_y":8,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F6A3-1F3FC-200D-2640-FE0F","non_qualified":"1F6A3-1F3FC-200D-2640","image":"1f6a3-1f3fc-200d-2640-fe0f.png","sheet_x":36,"sheet_y":9,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F6A3-1F3FD-200D-2640-FE0F","non_qualified":"1F6A3-1F3FD-200D-2640","image":"1f6a3-1f3fd-200d-2640-fe0f.png","sheet_x":36,"sheet_y":10,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F6A3-1F3FE-200D-2640-FE0F","non_qualified":"1F6A3-1F3FE-200D-2640","image":"1f6a3-1f3fe-200d-2640-fe0f.png","sheet_x":36,"sheet_y":11,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F6A3-1F3FF-200D-2640-FE0F","non_qualified":"1F6A3-1F3FF-200D-2640","image":"1f6a3-1f3ff-200d-2640-fe0f.png","sheet_x":36,"sheet_y":12,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Rowing Boat","b":"1F6A3-200D-2640-FE0F","c":"1F6A3-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_rowing_boat","sports","hobby","water","ship","woman","female"],"k":[36,7],"o":4},"swimmer":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F3CA-1F3FB","non_qualified":null,"image":"1f3ca-1f3fb.png","sheet_x":9,"sheet_y":12,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F3CA-1F3FC","non_qualified":null,"image":"1f3ca-1f3fc.png","sheet_x":9,"sheet_y":13,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F3CA-1F3FD","non_qualified":null,"image":"1f3ca-1f3fd.png","sheet_x":9,"sheet_y":14,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F3CA-1F3FE","non_qualified":null,"image":"1f3ca-1f3fe.png","sheet_x":9,"sheet_y":15,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F3CA-1F3FF","non_qualified":null,"image":"1f3ca-1f3ff.png","sheet_x":9,"sheet_y":16,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoleted_by":"1F3CA-200D-2642-FE0F","a":"Swimmer","b":"1F3CA","d":true,"e":true,"f":true,"h":true,"j":["person_swimming","sport","pool"],"k":[9,11],"o":0},"man-swimming":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F3CA-1F3FB-200D-2642-FE0F","non_qualified":"1F3CA-1F3FB-200D-2642","image":"1f3ca-1f3fb-200d-2642-fe0f.png","sheet_x":9,"sheet_y":6,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F3CA-1F3FC-200D-2642-FE0F","non_qualified":"1F3CA-1F3FC-200D-2642","image":"1f3ca-1f3fc-200d-2642-fe0f.png","sheet_x":9,"sheet_y":7,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F3CA-1F3FD-200D-2642-FE0F","non_qualified":"1F3CA-1F3FD-200D-2642","image":"1f3ca-1f3fd-200d-2642-fe0f.png","sheet_x":9,"sheet_y":8,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F3CA-1F3FE-200D-2642-FE0F","non_qualified":"1F3CA-1F3FE-200D-2642","image":"1f3ca-1f3fe-200d-2642-fe0f.png","sheet_x":9,"sheet_y":9,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F3CA-1F3FF-200D-2642-FE0F","non_qualified":"1F3CA-1F3FF-200D-2642","image":"1f3ca-1f3ff-200d-2642-fe0f.png","sheet_x":9,"sheet_y":10,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoletes":"1F3CA","a":"Man Swimming","b":"1F3CA-200D-2642-FE0F","c":"1F3CA-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_swimming","sports","exercise","human","athlete","water","summer"],"k":[9,5],"o":4},"woman-swimming":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F3CA-1F3FB-200D-2640-FE0F","non_qualified":"1F3CA-1F3FB-200D-2640","image":"1f3ca-1f3fb-200d-2640-fe0f.png","sheet_x":9,"sheet_y":0,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F3CA-1F3FC-200D-2640-FE0F","non_qualified":"1F3CA-1F3FC-200D-2640","image":"1f3ca-1f3fc-200d-2640-fe0f.png","sheet_x":9,"sheet_y":1,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F3CA-1F3FD-200D-2640-FE0F","non_qualified":"1F3CA-1F3FD-200D-2640","image":"1f3ca-1f3fd-200d-2640-fe0f.png","sheet_x":9,"sheet_y":2,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F3CA-1F3FE-200D-2640-FE0F","non_qualified":"1F3CA-1F3FE-200D-2640","image":"1f3ca-1f3fe-200d-2640-fe0f.png","sheet_x":9,"sheet_y":3,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F3CA-1F3FF-200D-2640-FE0F","non_qualified":"1F3CA-1F3FF-200D-2640","image":"1f3ca-1f3ff-200d-2640-fe0f.png","sheet_x":9,"sheet_y":4,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Swimming","b":"1F3CA-200D-2640-FE0F","c":"1F3CA-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_swimming","sports","exercise","human","athlete","water","summer","woman","female"],"k":[8,60],"o":4},"person_with_ball":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"26F9-1F3FB","non_qualified":null,"image":"26f9-1f3fb.png","sheet_x":58,"sheet_y":47,"added_in":"2.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"26F9-1F3FC","non_qualified":null,"image":"26f9-1f3fc.png","sheet_x":58,"sheet_y":48,"added_in":"2.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"26F9-1F3FD","non_qualified":null,"image":"26f9-1f3fd.png","sheet_x":58,"sheet_y":49,"added_in":"2.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"26F9-1F3FE","non_qualified":null,"image":"26f9-1f3fe.png","sheet_x":58,"sheet_y":50,"added_in":"2.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"26F9-1F3FF","non_qualified":null,"image":"26f9-1f3ff.png","sheet_x":58,"sheet_y":51,"added_in":"2.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoleted_by":"26F9-FE0F-200D-2642-FE0F","a":"Person Bouncing Ball","b":"26F9-FE0F","c":"26F9","d":true,"e":true,"f":true,"h":true,"j":["person_bouncing_ball","sports","human"],"k":[58,46],"o":0},"man-bouncing-ball":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"26F9-1F3FB-200D-2642-FE0F","non_qualified":"26F9-1F3FB-200D-2642","image":"26f9-1f3fb-200d-2642-fe0f.png","sheet_x":58,"sheet_y":41,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"26F9-1F3FC-200D-2642-FE0F","non_qualified":"26F9-1F3FC-200D-2642","image":"26f9-1f3fc-200d-2642-fe0f.png","sheet_x":58,"sheet_y":42,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"26F9-1F3FD-200D-2642-FE0F","non_qualified":"26F9-1F3FD-200D-2642","image":"26f9-1f3fd-200d-2642-fe0f.png","sheet_x":58,"sheet_y":43,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"26F9-1F3FE-200D-2642-FE0F","non_qualified":"26F9-1F3FE-200D-2642","image":"26f9-1f3fe-200d-2642-fe0f.png","sheet_x":58,"sheet_y":44,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"26F9-1F3FF-200D-2642-FE0F","non_qualified":"26F9-1F3FF-200D-2642","image":"26f9-1f3ff-200d-2642-fe0f.png","sheet_x":58,"sheet_y":45,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoletes":"26F9-FE0F","a":"Man Bouncing Ball","b":"26F9-FE0F-200D-2642-FE0F","d":true,"e":true,"f":true,"h":false,"j":["man_bouncing_ball","sport"],"k":[58,40],"o":4},"woman-bouncing-ball":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"26F9-1F3FB-200D-2640-FE0F","non_qualified":"26F9-1F3FB-200D-2640","image":"26f9-1f3fb-200d-2640-fe0f.png","sheet_x":58,"sheet_y":35,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"26F9-1F3FC-200D-2640-FE0F","non_qualified":"26F9-1F3FC-200D-2640","image":"26f9-1f3fc-200d-2640-fe0f.png","sheet_x":58,"sheet_y":36,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"26F9-1F3FD-200D-2640-FE0F","non_qualified":"26F9-1F3FD-200D-2640","image":"26f9-1f3fd-200d-2640-fe0f.png","sheet_x":58,"sheet_y":37,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"26F9-1F3FE-200D-2640-FE0F","non_qualified":"26F9-1F3FE-200D-2640","image":"26f9-1f3fe-200d-2640-fe0f.png","sheet_x":58,"sheet_y":38,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"26F9-1F3FF-200D-2640-FE0F","non_qualified":"26F9-1F3FF-200D-2640","image":"26f9-1f3ff-200d-2640-fe0f.png","sheet_x":58,"sheet_y":39,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Bouncing Ball","b":"26F9-FE0F-200D-2640-FE0F","d":true,"e":true,"f":true,"h":false,"j":["woman_bouncing_ball","sports","human","woman","female"],"k":[58,34],"o":4},"weight_lifter":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F3CB-1F3FB","non_qualified":null,"image":"1f3cb-1f3fb.png","sheet_x":9,"sheet_y":30,"added_in":"2.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F3CB-1F3FC","non_qualified":null,"image":"1f3cb-1f3fc.png","sheet_x":9,"sheet_y":31,"added_in":"2.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F3CB-1F3FD","non_qualified":null,"image":"1f3cb-1f3fd.png","sheet_x":9,"sheet_y":32,"added_in":"2.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F3CB-1F3FE","non_qualified":null,"image":"1f3cb-1f3fe.png","sheet_x":9,"sheet_y":33,"added_in":"2.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F3CB-1F3FF","non_qualified":null,"image":"1f3cb-1f3ff.png","sheet_x":9,"sheet_y":34,"added_in":"2.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoleted_by":"1F3CB-FE0F-200D-2642-FE0F","a":"Person Lifting Weights","b":"1F3CB-FE0F","c":"1F3CB","d":true,"e":true,"f":true,"h":true,"j":["person_lifting_weights","sports","training","exercise"],"k":[9,29],"o":0},"man-lifting-weights":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F3CB-1F3FB-200D-2642-FE0F","non_qualified":"1F3CB-1F3FB-200D-2642","image":"1f3cb-1f3fb-200d-2642-fe0f.png","sheet_x":9,"sheet_y":24,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F3CB-1F3FC-200D-2642-FE0F","non_qualified":"1F3CB-1F3FC-200D-2642","image":"1f3cb-1f3fc-200d-2642-fe0f.png","sheet_x":9,"sheet_y":25,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F3CB-1F3FD-200D-2642-FE0F","non_qualified":"1F3CB-1F3FD-200D-2642","image":"1f3cb-1f3fd-200d-2642-fe0f.png","sheet_x":9,"sheet_y":26,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F3CB-1F3FE-200D-2642-FE0F","non_qualified":"1F3CB-1F3FE-200D-2642","image":"1f3cb-1f3fe-200d-2642-fe0f.png","sheet_x":9,"sheet_y":27,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F3CB-1F3FF-200D-2642-FE0F","non_qualified":"1F3CB-1F3FF-200D-2642","image":"1f3cb-1f3ff-200d-2642-fe0f.png","sheet_x":9,"sheet_y":28,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoletes":"1F3CB-FE0F","a":"Man Lifting Weights","b":"1F3CB-FE0F-200D-2642-FE0F","d":true,"e":true,"f":true,"h":false,"j":["man_lifting_weights","sport"],"k":[9,23],"o":4},"woman-lifting-weights":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F3CB-1F3FB-200D-2640-FE0F","non_qualified":"1F3CB-1F3FB-200D-2640","image":"1f3cb-1f3fb-200d-2640-fe0f.png","sheet_x":9,"sheet_y":18,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F3CB-1F3FC-200D-2640-FE0F","non_qualified":"1F3CB-1F3FC-200D-2640","image":"1f3cb-1f3fc-200d-2640-fe0f.png","sheet_x":9,"sheet_y":19,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F3CB-1F3FD-200D-2640-FE0F","non_qualified":"1F3CB-1F3FD-200D-2640","image":"1f3cb-1f3fd-200d-2640-fe0f.png","sheet_x":9,"sheet_y":20,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F3CB-1F3FE-200D-2640-FE0F","non_qualified":"1F3CB-1F3FE-200D-2640","image":"1f3cb-1f3fe-200d-2640-fe0f.png","sheet_x":9,"sheet_y":21,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F3CB-1F3FF-200D-2640-FE0F","non_qualified":"1F3CB-1F3FF-200D-2640","image":"1f3cb-1f3ff-200d-2640-fe0f.png","sheet_x":9,"sheet_y":22,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Lifting Weights","b":"1F3CB-FE0F-200D-2640-FE0F","d":true,"e":true,"f":true,"h":false,"j":["woman_lifting_weights","sports","training","exercise","woman","female"],"k":[9,17],"o":4},"bicyclist":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F6B4-1F3FB","non_qualified":null,"image":"1f6b4-1f3fb.png","sheet_x":36,"sheet_y":54,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F6B4-1F3FC","non_qualified":null,"image":"1f6b4-1f3fc.png","sheet_x":36,"sheet_y":55,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F6B4-1F3FD","non_qualified":null,"image":"1f6b4-1f3fd.png","sheet_x":36,"sheet_y":56,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F6B4-1F3FE","non_qualified":null,"image":"1f6b4-1f3fe.png","sheet_x":36,"sheet_y":57,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F6B4-1F3FF","non_qualified":null,"image":"1f6b4-1f3ff.png","sheet_x":36,"sheet_y":58,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoleted_by":"1F6B4-200D-2642-FE0F","a":"Bicyclist","b":"1F6B4","d":true,"e":true,"f":true,"h":true,"j":["person_biking","bicycle","bike","cyclist","sport","move"],"k":[36,53],"o":1},"man-biking":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F6B4-1F3FB-200D-2642-FE0F","non_qualified":"1F6B4-1F3FB-200D-2642","image":"1f6b4-1f3fb-200d-2642-fe0f.png","sheet_x":36,"sheet_y":48,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F6B4-1F3FC-200D-2642-FE0F","non_qualified":"1F6B4-1F3FC-200D-2642","image":"1f6b4-1f3fc-200d-2642-fe0f.png","sheet_x":36,"sheet_y":49,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F6B4-1F3FD-200D-2642-FE0F","non_qualified":"1F6B4-1F3FD-200D-2642","image":"1f6b4-1f3fd-200d-2642-fe0f.png","sheet_x":36,"sheet_y":50,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F6B4-1F3FE-200D-2642-FE0F","non_qualified":"1F6B4-1F3FE-200D-2642","image":"1f6b4-1f3fe-200d-2642-fe0f.png","sheet_x":36,"sheet_y":51,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F6B4-1F3FF-200D-2642-FE0F","non_qualified":"1F6B4-1F3FF-200D-2642","image":"1f6b4-1f3ff-200d-2642-fe0f.png","sheet_x":36,"sheet_y":52,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoletes":"1F6B4","a":"Man Biking","b":"1F6B4-200D-2642-FE0F","c":"1F6B4-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_biking","bicycle","bike","cyclist","sports","exercise","hipster"],"k":[36,47],"o":4},"woman-biking":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F6B4-1F3FB-200D-2640-FE0F","non_qualified":"1F6B4-1F3FB-200D-2640","image":"1f6b4-1f3fb-200d-2640-fe0f.png","sheet_x":36,"sheet_y":42,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F6B4-1F3FC-200D-2640-FE0F","non_qualified":"1F6B4-1F3FC-200D-2640","image":"1f6b4-1f3fc-200d-2640-fe0f.png","sheet_x":36,"sheet_y":43,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F6B4-1F3FD-200D-2640-FE0F","non_qualified":"1F6B4-1F3FD-200D-2640","image":"1f6b4-1f3fd-200d-2640-fe0f.png","sheet_x":36,"sheet_y":44,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F6B4-1F3FE-200D-2640-FE0F","non_qualified":"1F6B4-1F3FE-200D-2640","image":"1f6b4-1f3fe-200d-2640-fe0f.png","sheet_x":36,"sheet_y":45,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F6B4-1F3FF-200D-2640-FE0F","non_qualified":"1F6B4-1F3FF-200D-2640","image":"1f6b4-1f3ff-200d-2640-fe0f.png","sheet_x":36,"sheet_y":46,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Biking","b":"1F6B4-200D-2640-FE0F","c":"1F6B4-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_biking","bicycle","bike","cyclist","sports","exercise","hipster","woman","female"],"k":[36,41],"o":4},"mountain_bicyclist":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F6B5-1F3FB","non_qualified":null,"image":"1f6b5-1f3fb.png","sheet_x":37,"sheet_y":11,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F6B5-1F3FC","non_qualified":null,"image":"1f6b5-1f3fc.png","sheet_x":37,"sheet_y":12,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F6B5-1F3FD","non_qualified":null,"image":"1f6b5-1f3fd.png","sheet_x":37,"sheet_y":13,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F6B5-1F3FE","non_qualified":null,"image":"1f6b5-1f3fe.png","sheet_x":37,"sheet_y":14,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F6B5-1F3FF","non_qualified":null,"image":"1f6b5-1f3ff.png","sheet_x":37,"sheet_y":15,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoleted_by":"1F6B5-200D-2642-FE0F","a":"Mountain Bicyclist","b":"1F6B5","d":true,"e":true,"f":true,"h":true,"j":["person_mountain_biking","bicycle","bike","cyclist","sport","move"],"k":[37,10],"o":1},"man-mountain-biking":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F6B5-1F3FB-200D-2642-FE0F","non_qualified":"1F6B5-1F3FB-200D-2642","image":"1f6b5-1f3fb-200d-2642-fe0f.png","sheet_x":37,"sheet_y":5,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F6B5-1F3FC-200D-2642-FE0F","non_qualified":"1F6B5-1F3FC-200D-2642","image":"1f6b5-1f3fc-200d-2642-fe0f.png","sheet_x":37,"sheet_y":6,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F6B5-1F3FD-200D-2642-FE0F","non_qualified":"1F6B5-1F3FD-200D-2642","image":"1f6b5-1f3fd-200d-2642-fe0f.png","sheet_x":37,"sheet_y":7,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F6B5-1F3FE-200D-2642-FE0F","non_qualified":"1F6B5-1F3FE-200D-2642","image":"1f6b5-1f3fe-200d-2642-fe0f.png","sheet_x":37,"sheet_y":8,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F6B5-1F3FF-200D-2642-FE0F","non_qualified":"1F6B5-1F3FF-200D-2642","image":"1f6b5-1f3ff-200d-2642-fe0f.png","sheet_x":37,"sheet_y":9,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"obsoletes":"1F6B5","a":"Man Mountain Biking","b":"1F6B5-200D-2642-FE0F","c":"1F6B5-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_mountain_biking","bicycle","bike","cyclist","transportation","sports","human","race"],"k":[37,4],"o":4},"woman-mountain-biking":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F6B5-1F3FB-200D-2640-FE0F","non_qualified":"1F6B5-1F3FB-200D-2640","image":"1f6b5-1f3fb-200d-2640-fe0f.png","sheet_x":36,"sheet_y":60,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F6B5-1F3FC-200D-2640-FE0F","non_qualified":"1F6B5-1F3FC-200D-2640","image":"1f6b5-1f3fc-200d-2640-fe0f.png","sheet_x":37,"sheet_y":0,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F6B5-1F3FD-200D-2640-FE0F","non_qualified":"1F6B5-1F3FD-200D-2640","image":"1f6b5-1f3fd-200d-2640-fe0f.png","sheet_x":37,"sheet_y":1,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F6B5-1F3FE-200D-2640-FE0F","non_qualified":"1F6B5-1F3FE-200D-2640","image":"1f6b5-1f3fe-200d-2640-fe0f.png","sheet_x":37,"sheet_y":2,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F6B5-1F3FF-200D-2640-FE0F","non_qualified":"1F6B5-1F3FF-200D-2640","image":"1f6b5-1f3ff-200d-2640-fe0f.png","sheet_x":37,"sheet_y":3,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Mountain Biking","b":"1F6B5-200D-2640-FE0F","c":"1F6B5-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_mountain_biking","bicycle","bike","cyclist","transportation","sports","human","race","woman","female"],"k":[36,59],"o":4},"person_doing_cartwheel":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F938-1F3FB","non_qualified":null,"image":"1f938-1f3fb.png","sheet_x":42,"sheet_y":10,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F938-1F3FC","non_qualified":null,"image":"1f938-1f3fc.png","sheet_x":42,"sheet_y":11,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F938-1F3FD","non_qualified":null,"image":"1f938-1f3fd.png","sheet_x":42,"sheet_y":12,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F938-1F3FE","non_qualified":null,"image":"1f938-1f3fe.png","sheet_x":42,"sheet_y":13,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F938-1F3FF","non_qualified":null,"image":"1f938-1f3ff.png","sheet_x":42,"sheet_y":14,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Person Doing Cartwheel","b":"1F938","d":true,"e":true,"f":true,"h":true,"j":["person_cartwheeling","sport","gymnastic"],"k":[42,9],"o":3},"man-cartwheeling":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F938-1F3FB-200D-2642-FE0F","non_qualified":"1F938-1F3FB-200D-2642","image":"1f938-1f3fb-200d-2642-fe0f.png","sheet_x":42,"sheet_y":4,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F938-1F3FC-200D-2642-FE0F","non_qualified":"1F938-1F3FC-200D-2642","image":"1f938-1f3fc-200d-2642-fe0f.png","sheet_x":42,"sheet_y":5,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F938-1F3FD-200D-2642-FE0F","non_qualified":"1F938-1F3FD-200D-2642","image":"1f938-1f3fd-200d-2642-fe0f.png","sheet_x":42,"sheet_y":6,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F938-1F3FE-200D-2642-FE0F","non_qualified":"1F938-1F3FE-200D-2642","image":"1f938-1f3fe-200d-2642-fe0f.png","sheet_x":42,"sheet_y":7,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F938-1F3FF-200D-2642-FE0F","non_qualified":"1F938-1F3FF-200D-2642","image":"1f938-1f3ff-200d-2642-fe0f.png","sheet_x":42,"sheet_y":8,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Cartwheeling","b":"1F938-200D-2642-FE0F","c":"1F938-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_cartwheeling","gymnastics"],"k":[42,3],"o":4},"woman-cartwheeling":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F938-1F3FB-200D-2640-FE0F","non_qualified":"1F938-1F3FB-200D-2640","image":"1f938-1f3fb-200d-2640-fe0f.png","sheet_x":41,"sheet_y":59,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F938-1F3FC-200D-2640-FE0F","non_qualified":"1F938-1F3FC-200D-2640","image":"1f938-1f3fc-200d-2640-fe0f.png","sheet_x":41,"sheet_y":60,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F938-1F3FD-200D-2640-FE0F","non_qualified":"1F938-1F3FD-200D-2640","image":"1f938-1f3fd-200d-2640-fe0f.png","sheet_x":42,"sheet_y":0,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F938-1F3FE-200D-2640-FE0F","non_qualified":"1F938-1F3FE-200D-2640","image":"1f938-1f3fe-200d-2640-fe0f.png","sheet_x":42,"sheet_y":1,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F938-1F3FF-200D-2640-FE0F","non_qualified":"1F938-1F3FF-200D-2640","image":"1f938-1f3ff-200d-2640-fe0f.png","sheet_x":42,"sheet_y":2,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Cartwheeling","b":"1F938-200D-2640-FE0F","c":"1F938-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_cartwheeling","gymnastics"],"k":[41,58],"o":4},"wrestlers":{"subcategory":"person-sport","a":"Wrestlers","b":"1F93C","d":true,"e":true,"f":true,"h":true,"j":["people_wrestling","sport"],"k":[42,36],"o":3},"man-wrestling":{"subcategory":"person-sport","a":"Men Wrestling","b":"1F93C-200D-2642-FE0F","c":"1F93C-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["men_wrestling","sports","wrestlers"],"k":[42,35],"o":4},"woman-wrestling":{"subcategory":"person-sport","a":"Women Wrestling","b":"1F93C-200D-2640-FE0F","c":"1F93C-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["women_wrestling","sports","wrestlers"],"k":[42,34],"o":4},"water_polo":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F93D-1F3FB","non_qualified":null,"image":"1f93d-1f3fb.png","sheet_x":42,"sheet_y":50,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F93D-1F3FC","non_qualified":null,"image":"1f93d-1f3fc.png","sheet_x":42,"sheet_y":51,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F93D-1F3FD","non_qualified":null,"image":"1f93d-1f3fd.png","sheet_x":42,"sheet_y":52,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F93D-1F3FE","non_qualified":null,"image":"1f93d-1f3fe.png","sheet_x":42,"sheet_y":53,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F93D-1F3FF","non_qualified":null,"image":"1f93d-1f3ff.png","sheet_x":42,"sheet_y":54,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Water Polo","b":"1F93D","d":true,"e":true,"f":true,"h":true,"j":["person_playing_water_polo","sport"],"k":[42,49],"o":3},"man-playing-water-polo":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F93D-1F3FB-200D-2642-FE0F","non_qualified":"1F93D-1F3FB-200D-2642","image":"1f93d-1f3fb-200d-2642-fe0f.png","sheet_x":42,"sheet_y":44,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F93D-1F3FC-200D-2642-FE0F","non_qualified":"1F93D-1F3FC-200D-2642","image":"1f93d-1f3fc-200d-2642-fe0f.png","sheet_x":42,"sheet_y":45,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F93D-1F3FD-200D-2642-FE0F","non_qualified":"1F93D-1F3FD-200D-2642","image":"1f93d-1f3fd-200d-2642-fe0f.png","sheet_x":42,"sheet_y":46,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F93D-1F3FE-200D-2642-FE0F","non_qualified":"1F93D-1F3FE-200D-2642","image":"1f93d-1f3fe-200d-2642-fe0f.png","sheet_x":42,"sheet_y":47,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F93D-1F3FF-200D-2642-FE0F","non_qualified":"1F93D-1F3FF-200D-2642","image":"1f93d-1f3ff-200d-2642-fe0f.png","sheet_x":42,"sheet_y":48,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Playing Water Polo","b":"1F93D-200D-2642-FE0F","c":"1F93D-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_playing_water_polo","sports","pool"],"k":[42,43],"o":4},"woman-playing-water-polo":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F93D-1F3FB-200D-2640-FE0F","non_qualified":"1F93D-1F3FB-200D-2640","image":"1f93d-1f3fb-200d-2640-fe0f.png","sheet_x":42,"sheet_y":38,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F93D-1F3FC-200D-2640-FE0F","non_qualified":"1F93D-1F3FC-200D-2640","image":"1f93d-1f3fc-200d-2640-fe0f.png","sheet_x":42,"sheet_y":39,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F93D-1F3FD-200D-2640-FE0F","non_qualified":"1F93D-1F3FD-200D-2640","image":"1f93d-1f3fd-200d-2640-fe0f.png","sheet_x":42,"sheet_y":40,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F93D-1F3FE-200D-2640-FE0F","non_qualified":"1F93D-1F3FE-200D-2640","image":"1f93d-1f3fe-200d-2640-fe0f.png","sheet_x":42,"sheet_y":41,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F93D-1F3FF-200D-2640-FE0F","non_qualified":"1F93D-1F3FF-200D-2640","image":"1f93d-1f3ff-200d-2640-fe0f.png","sheet_x":42,"sheet_y":42,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Playing Water Polo","b":"1F93D-200D-2640-FE0F","c":"1F93D-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_playing_water_polo","sports","pool"],"k":[42,37],"o":4},"handball":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F93E-1F3FB","non_qualified":null,"image":"1f93e-1f3fb.png","sheet_x":43,"sheet_y":7,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F93E-1F3FC","non_qualified":null,"image":"1f93e-1f3fc.png","sheet_x":43,"sheet_y":8,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F93E-1F3FD","non_qualified":null,"image":"1f93e-1f3fd.png","sheet_x":43,"sheet_y":9,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F93E-1F3FE","non_qualified":null,"image":"1f93e-1f3fe.png","sheet_x":43,"sheet_y":10,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F93E-1F3FF","non_qualified":null,"image":"1f93e-1f3ff.png","sheet_x":43,"sheet_y":11,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Handball","b":"1F93E","d":true,"e":true,"f":true,"h":true,"j":["person_playing_handball","sport"],"k":[43,6],"o":3},"man-playing-handball":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F93E-1F3FB-200D-2642-FE0F","non_qualified":"1F93E-1F3FB-200D-2642","image":"1f93e-1f3fb-200d-2642-fe0f.png","sheet_x":43,"sheet_y":1,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F93E-1F3FC-200D-2642-FE0F","non_qualified":"1F93E-1F3FC-200D-2642","image":"1f93e-1f3fc-200d-2642-fe0f.png","sheet_x":43,"sheet_y":2,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F93E-1F3FD-200D-2642-FE0F","non_qualified":"1F93E-1F3FD-200D-2642","image":"1f93e-1f3fd-200d-2642-fe0f.png","sheet_x":43,"sheet_y":3,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F93E-1F3FE-200D-2642-FE0F","non_qualified":"1F93E-1F3FE-200D-2642","image":"1f93e-1f3fe-200d-2642-fe0f.png","sheet_x":43,"sheet_y":4,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F93E-1F3FF-200D-2642-FE0F","non_qualified":"1F93E-1F3FF-200D-2642","image":"1f93e-1f3ff-200d-2642-fe0f.png","sheet_x":43,"sheet_y":5,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Playing Handball","b":"1F93E-200D-2642-FE0F","c":"1F93E-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_playing_handball","sports"],"k":[43,0],"o":4},"woman-playing-handball":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F93E-1F3FB-200D-2640-FE0F","non_qualified":"1F93E-1F3FB-200D-2640","image":"1f93e-1f3fb-200d-2640-fe0f.png","sheet_x":42,"sheet_y":56,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F93E-1F3FC-200D-2640-FE0F","non_qualified":"1F93E-1F3FC-200D-2640","image":"1f93e-1f3fc-200d-2640-fe0f.png","sheet_x":42,"sheet_y":57,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F93E-1F3FD-200D-2640-FE0F","non_qualified":"1F93E-1F3FD-200D-2640","image":"1f93e-1f3fd-200d-2640-fe0f.png","sheet_x":42,"sheet_y":58,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F93E-1F3FE-200D-2640-FE0F","non_qualified":"1F93E-1F3FE-200D-2640","image":"1f93e-1f3fe-200d-2640-fe0f.png","sheet_x":42,"sheet_y":59,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F93E-1F3FF-200D-2640-FE0F","non_qualified":"1F93E-1F3FF-200D-2640","image":"1f93e-1f3ff-200d-2640-fe0f.png","sheet_x":42,"sheet_y":60,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Playing Handball","b":"1F93E-200D-2640-FE0F","c":"1F93E-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_playing_handball","sports"],"k":[42,55],"o":4},"juggling":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F939-1F3FB","non_qualified":null,"image":"1f939-1f3fb.png","sheet_x":42,"sheet_y":28,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F939-1F3FC","non_qualified":null,"image":"1f939-1f3fc.png","sheet_x":42,"sheet_y":29,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F939-1F3FD","non_qualified":null,"image":"1f939-1f3fd.png","sheet_x":42,"sheet_y":30,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F939-1F3FE","non_qualified":null,"image":"1f939-1f3fe.png","sheet_x":42,"sheet_y":31,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F939-1F3FF","non_qualified":null,"image":"1f939-1f3ff.png","sheet_x":42,"sheet_y":32,"added_in":"3.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Juggling","b":"1F939","d":true,"e":true,"f":true,"h":true,"j":["person_juggling","performance","balance"],"k":[42,27],"o":3},"man-juggling":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F939-1F3FB-200D-2642-FE0F","non_qualified":"1F939-1F3FB-200D-2642","image":"1f939-1f3fb-200d-2642-fe0f.png","sheet_x":42,"sheet_y":22,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F939-1F3FC-200D-2642-FE0F","non_qualified":"1F939-1F3FC-200D-2642","image":"1f939-1f3fc-200d-2642-fe0f.png","sheet_x":42,"sheet_y":23,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F939-1F3FD-200D-2642-FE0F","non_qualified":"1F939-1F3FD-200D-2642","image":"1f939-1f3fd-200d-2642-fe0f.png","sheet_x":42,"sheet_y":24,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F939-1F3FE-200D-2642-FE0F","non_qualified":"1F939-1F3FE-200D-2642","image":"1f939-1f3fe-200d-2642-fe0f.png","sheet_x":42,"sheet_y":25,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F939-1F3FF-200D-2642-FE0F","non_qualified":"1F939-1F3FF-200D-2642","image":"1f939-1f3ff-200d-2642-fe0f.png","sheet_x":42,"sheet_y":26,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man Juggling","b":"1F939-200D-2642-FE0F","c":"1F939-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_juggling","juggle","balance","skill","multitask"],"k":[42,21],"o":4},"woman-juggling":{"subcategory":"person-sport","skin_variations":{"1F3FB":{"unified":"1F939-1F3FB-200D-2640-FE0F","non_qualified":"1F939-1F3FB-200D-2640","image":"1f939-1f3fb-200d-2640-fe0f.png","sheet_x":42,"sheet_y":16,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F939-1F3FC-200D-2640-FE0F","non_qualified":"1F939-1F3FC-200D-2640","image":"1f939-1f3fc-200d-2640-fe0f.png","sheet_x":42,"sheet_y":17,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F939-1F3FD-200D-2640-FE0F","non_qualified":"1F939-1F3FD-200D-2640","image":"1f939-1f3fd-200d-2640-fe0f.png","sheet_x":42,"sheet_y":18,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F939-1F3FE-200D-2640-FE0F","non_qualified":"1F939-1F3FE-200D-2640","image":"1f939-1f3fe-200d-2640-fe0f.png","sheet_x":42,"sheet_y":19,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F939-1F3FF-200D-2640-FE0F","non_qualified":"1F939-1F3FF-200D-2640","image":"1f939-1f3ff-200d-2640-fe0f.png","sheet_x":42,"sheet_y":20,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Woman Juggling","b":"1F939-200D-2640-FE0F","c":"1F939-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_juggling","juggle","balance","skill","multitask"],"k":[42,15],"o":4},"person_in_lotus_position":{"subcategory":"person-resting","skin_variations":{"1F3FB":{"unified":"1F9D8-1F3FB","non_qualified":null,"image":"1f9d8-1f3fb.png","sheet_x":51,"sheet_y":37,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9D8-1F3FB-200D-2640-FE0F"},"1F3FC":{"unified":"1F9D8-1F3FC","non_qualified":null,"image":"1f9d8-1f3fc.png","sheet_x":51,"sheet_y":38,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9D8-1F3FC-200D-2640-FE0F"},"1F3FD":{"unified":"1F9D8-1F3FD","non_qualified":null,"image":"1f9d8-1f3fd.png","sheet_x":51,"sheet_y":39,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9D8-1F3FD-200D-2640-FE0F"},"1F3FE":{"unified":"1F9D8-1F3FE","non_qualified":null,"image":"1f9d8-1f3fe.png","sheet_x":51,"sheet_y":40,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9D8-1F3FE-200D-2640-FE0F"},"1F3FF":{"unified":"1F9D8-1F3FF","non_qualified":null,"image":"1f9d8-1f3ff.png","sheet_x":51,"sheet_y":41,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoleted_by":"1F9D8-1F3FF-200D-2640-FE0F"}},"obsoleted_by":"1F9D8-200D-2640-FE0F","a":"Person in Lotus Position","b":"1F9D8","d":true,"e":true,"f":true,"h":true,"j":["person_in_lotus_position","meditate"],"k":[51,36],"o":5},"man_in_lotus_position":{"subcategory":"person-resting","skin_variations":{"1F3FB":{"unified":"1F9D8-1F3FB-200D-2642-FE0F","non_qualified":"1F9D8-1F3FB-200D-2642","image":"1f9d8-1f3fb-200d-2642-fe0f.png","sheet_x":51,"sheet_y":31,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F9D8-1F3FC-200D-2642-FE0F","non_qualified":"1F9D8-1F3FC-200D-2642","image":"1f9d8-1f3fc-200d-2642-fe0f.png","sheet_x":51,"sheet_y":32,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F9D8-1F3FD-200D-2642-FE0F","non_qualified":"1F9D8-1F3FD-200D-2642","image":"1f9d8-1f3fd-200d-2642-fe0f.png","sheet_x":51,"sheet_y":33,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F9D8-1F3FE-200D-2642-FE0F","non_qualified":"1F9D8-1F3FE-200D-2642","image":"1f9d8-1f3fe-200d-2642-fe0f.png","sheet_x":51,"sheet_y":34,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F9D8-1F3FF-200D-2642-FE0F","non_qualified":"1F9D8-1F3FF-200D-2642","image":"1f9d8-1f3ff-200d-2642-fe0f.png","sheet_x":51,"sheet_y":35,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man in Lotus Position","b":"1F9D8-200D-2642-FE0F","c":"1F9D8-200D-2642","d":true,"e":true,"f":true,"h":true,"j":["man_in_lotus_position","man","male","meditation","yoga","serenity","zen","mindfulness"],"k":[51,30],"o":5},"woman_in_lotus_position":{"subcategory":"person-resting","skin_variations":{"1F3FB":{"unified":"1F9D8-1F3FB-200D-2640-FE0F","non_qualified":"1F9D8-1F3FB-200D-2640","image":"1f9d8-1f3fb-200d-2640-fe0f.png","sheet_x":51,"sheet_y":25,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9D8-1F3FB"},"1F3FC":{"unified":"1F9D8-1F3FC-200D-2640-FE0F","non_qualified":"1F9D8-1F3FC-200D-2640","image":"1f9d8-1f3fc-200d-2640-fe0f.png","sheet_x":51,"sheet_y":26,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9D8-1F3FC"},"1F3FD":{"unified":"1F9D8-1F3FD-200D-2640-FE0F","non_qualified":"1F9D8-1F3FD-200D-2640","image":"1f9d8-1f3fd-200d-2640-fe0f.png","sheet_x":51,"sheet_y":27,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9D8-1F3FD"},"1F3FE":{"unified":"1F9D8-1F3FE-200D-2640-FE0F","non_qualified":"1F9D8-1F3FE-200D-2640","image":"1f9d8-1f3fe-200d-2640-fe0f.png","sheet_x":51,"sheet_y":28,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9D8-1F3FE"},"1F3FF":{"unified":"1F9D8-1F3FF-200D-2640-FE0F","non_qualified":"1F9D8-1F3FF-200D-2640","image":"1f9d8-1f3ff-200d-2640-fe0f.png","sheet_x":51,"sheet_y":29,"added_in":"5.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true,"obsoletes":"1F9D8-1F3FF"}},"obsoletes":"1F9D8","a":"Woman in Lotus Position","b":"1F9D8-200D-2640-FE0F","c":"1F9D8-200D-2640","d":true,"e":true,"f":true,"h":true,"j":["woman_in_lotus_position","woman","female","meditation","yoga","serenity","zen","mindfulness"],"k":[51,24],"o":5},"bath":{"subcategory":"person-resting","skin_variations":{"1F3FB":{"unified":"1F6C0-1F3FB","non_qualified":null,"image":"1f6c0-1f3fb.png","sheet_x":37,"sheet_y":44,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F6C0-1F3FC","non_qualified":null,"image":"1f6c0-1f3fc.png","sheet_x":37,"sheet_y":45,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F6C0-1F3FD","non_qualified":null,"image":"1f6c0-1f3fd.png","sheet_x":37,"sheet_y":46,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F6C0-1F3FE","non_qualified":null,"image":"1f6c0-1f3fe.png","sheet_x":37,"sheet_y":47,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F6C0-1F3FF","non_qualified":null,"image":"1f6c0-1f3ff.png","sheet_x":37,"sheet_y":48,"added_in":"1.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Bath","b":"1F6C0","d":true,"e":true,"f":true,"h":true,"j":["person_taking_bath","clean","shower","bathroom"],"k":[37,43],"o":0},"sleeping_accommodation":{"subcategory":"person-resting","skin_variations":{"1F3FB":{"unified":"1F6CC-1F3FB","non_qualified":null,"image":"1f6cc-1f3fb.png","sheet_x":37,"sheet_y":56,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F6CC-1F3FC","non_qualified":null,"image":"1f6cc-1f3fc.png","sheet_x":37,"sheet_y":57,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F6CC-1F3FD","non_qualified":null,"image":"1f6cc-1f3fd.png","sheet_x":37,"sheet_y":58,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F6CC-1F3FE","non_qualified":null,"image":"1f6cc-1f3fe.png","sheet_x":37,"sheet_y":59,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F6CC-1F3FF","non_qualified":null,"image":"1f6cc-1f3ff.png","sheet_x":37,"sheet_y":60,"added_in":"4.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Sleeping Accommodation","b":"1F6CC","d":true,"e":true,"f":true,"h":true,"j":["person_in_bed","bed","rest"],"k":[37,55],"o":1},"people_holding_hands":{"subcategory":"family","skin_variations":{"1F3FB-1F3FB":{"unified":"1F9D1-1F3FB-200D-1F91D-200D-1F9D1-1F3FB","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3fb.png","sheet_x":48,"sheet_y":44,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FC":{"unified":"1F9D1-1F3FB-200D-1F91D-200D-1F9D1-1F3FC","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3fc.png","sheet_x":48,"sheet_y":45,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FD":{"unified":"1F9D1-1F3FB-200D-1F91D-200D-1F9D1-1F3FD","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3fd.png","sheet_x":48,"sheet_y":46,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FE":{"unified":"1F9D1-1F3FB-200D-1F91D-200D-1F9D1-1F3FE","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3fe.png","sheet_x":48,"sheet_y":47,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FF":{"unified":"1F9D1-1F3FB-200D-1F91D-200D-1F9D1-1F3FF","non_qualified":null,"image":"1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3ff.png","sheet_x":48,"sheet_y":48,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FB":{"unified":"1F9D1-1F3FC-200D-1F91D-200D-1F9D1-1F3FB","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fb.png","sheet_x":48,"sheet_y":49,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FC":{"unified":"1F9D1-1F3FC-200D-1F91D-200D-1F9D1-1F3FC","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fc.png","sheet_x":48,"sheet_y":50,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FD":{"unified":"1F9D1-1F3FC-200D-1F91D-200D-1F9D1-1F3FD","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fd.png","sheet_x":48,"sheet_y":51,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FE":{"unified":"1F9D1-1F3FC-200D-1F91D-200D-1F9D1-1F3FE","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fe.png","sheet_x":48,"sheet_y":52,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FF":{"unified":"1F9D1-1F3FC-200D-1F91D-200D-1F9D1-1F3FF","non_qualified":null,"image":"1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3ff.png","sheet_x":48,"sheet_y":53,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FB":{"unified":"1F9D1-1F3FD-200D-1F91D-200D-1F9D1-1F3FB","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fb.png","sheet_x":48,"sheet_y":54,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FC":{"unified":"1F9D1-1F3FD-200D-1F91D-200D-1F9D1-1F3FC","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fc.png","sheet_x":48,"sheet_y":55,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FD":{"unified":"1F9D1-1F3FD-200D-1F91D-200D-1F9D1-1F3FD","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fd.png","sheet_x":48,"sheet_y":56,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FE":{"unified":"1F9D1-1F3FD-200D-1F91D-200D-1F9D1-1F3FE","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fe.png","sheet_x":48,"sheet_y":57,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FF":{"unified":"1F9D1-1F3FD-200D-1F91D-200D-1F9D1-1F3FF","non_qualified":null,"image":"1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3ff.png","sheet_x":48,"sheet_y":58,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FB":{"unified":"1F9D1-1F3FE-200D-1F91D-200D-1F9D1-1F3FB","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fb.png","sheet_x":48,"sheet_y":59,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FC":{"unified":"1F9D1-1F3FE-200D-1F91D-200D-1F9D1-1F3FC","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fc.png","sheet_x":48,"sheet_y":60,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FD":{"unified":"1F9D1-1F3FE-200D-1F91D-200D-1F9D1-1F3FD","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fd.png","sheet_x":49,"sheet_y":0,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FE":{"unified":"1F9D1-1F3FE-200D-1F91D-200D-1F9D1-1F3FE","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fe.png","sheet_x":49,"sheet_y":1,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FF":{"unified":"1F9D1-1F3FE-200D-1F91D-200D-1F9D1-1F3FF","non_qualified":null,"image":"1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3ff.png","sheet_x":49,"sheet_y":2,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FB":{"unified":"1F9D1-1F3FF-200D-1F91D-200D-1F9D1-1F3FB","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fb.png","sheet_x":49,"sheet_y":3,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FC":{"unified":"1F9D1-1F3FF-200D-1F91D-200D-1F9D1-1F3FC","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fc.png","sheet_x":49,"sheet_y":4,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FD":{"unified":"1F9D1-1F3FF-200D-1F91D-200D-1F9D1-1F3FD","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fd.png","sheet_x":49,"sheet_y":5,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FE":{"unified":"1F9D1-1F3FF-200D-1F91D-200D-1F9D1-1F3FE","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fe.png","sheet_x":49,"sheet_y":6,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FF":{"unified":"1F9D1-1F3FF-200D-1F91D-200D-1F9D1-1F3FF","non_qualified":null,"image":"1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3ff.png","sheet_x":49,"sheet_y":7,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"People Holding Hands","b":"1F9D1-200D-1F91D-200D-1F9D1","d":true,"e":true,"f":true,"h":true,"j":["people_holding_hands","friendship"],"k":[48,43],"o":12},"two_women_holding_hands":{"subcategory":"family","skin_variations":{"1F3FB":{"unified":"1F46D-1F3FB","non_qualified":null,"image":"1f46d-1f3fb.png","sheet_x":22,"sheet_y":33,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F46D-1F3FC","non_qualified":null,"image":"1f46d-1f3fc.png","sheet_x":22,"sheet_y":34,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F46D-1F3FD","non_qualified":null,"image":"1f46d-1f3fd.png","sheet_x":22,"sheet_y":35,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F46D-1F3FE","non_qualified":null,"image":"1f46d-1f3fe.png","sheet_x":22,"sheet_y":36,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F46D-1F3FF","non_qualified":null,"image":"1f46d-1f3ff.png","sheet_x":22,"sheet_y":37,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FC":{"unified":"1F469-1F3FB-200D-1F91D-200D-1F469-1F3FC","non_qualified":null,"image":"1f469-1f3fb-200d-1f91d-200d-1f469-1f3fc.png","sheet_x":22,"sheet_y":38,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FD":{"unified":"1F469-1F3FB-200D-1F91D-200D-1F469-1F3FD","non_qualified":null,"image":"1f469-1f3fb-200d-1f91d-200d-1f469-1f3fd.png","sheet_x":22,"sheet_y":39,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FE":{"unified":"1F469-1F3FB-200D-1F91D-200D-1F469-1F3FE","non_qualified":null,"image":"1f469-1f3fb-200d-1f91d-200d-1f469-1f3fe.png","sheet_x":22,"sheet_y":40,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FF":{"unified":"1F469-1F3FB-200D-1F91D-200D-1F469-1F3FF","non_qualified":null,"image":"1f469-1f3fb-200d-1f91d-200d-1f469-1f3ff.png","sheet_x":22,"sheet_y":41,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FB":{"unified":"1F469-1F3FC-200D-1F91D-200D-1F469-1F3FB","non_qualified":null,"image":"1f469-1f3fc-200d-1f91d-200d-1f469-1f3fb.png","sheet_x":22,"sheet_y":42,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FD":{"unified":"1F469-1F3FC-200D-1F91D-200D-1F469-1F3FD","non_qualified":null,"image":"1f469-1f3fc-200d-1f91d-200d-1f469-1f3fd.png","sheet_x":22,"sheet_y":43,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FE":{"unified":"1F469-1F3FC-200D-1F91D-200D-1F469-1F3FE","non_qualified":null,"image":"1f469-1f3fc-200d-1f91d-200d-1f469-1f3fe.png","sheet_x":22,"sheet_y":44,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FF":{"unified":"1F469-1F3FC-200D-1F91D-200D-1F469-1F3FF","non_qualified":null,"image":"1f469-1f3fc-200d-1f91d-200d-1f469-1f3ff.png","sheet_x":22,"sheet_y":45,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FB":{"unified":"1F469-1F3FD-200D-1F91D-200D-1F469-1F3FB","non_qualified":null,"image":"1f469-1f3fd-200d-1f91d-200d-1f469-1f3fb.png","sheet_x":22,"sheet_y":46,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FC":{"unified":"1F469-1F3FD-200D-1F91D-200D-1F469-1F3FC","non_qualified":null,"image":"1f469-1f3fd-200d-1f91d-200d-1f469-1f3fc.png","sheet_x":22,"sheet_y":47,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FE":{"unified":"1F469-1F3FD-200D-1F91D-200D-1F469-1F3FE","non_qualified":null,"image":"1f469-1f3fd-200d-1f91d-200d-1f469-1f3fe.png","sheet_x":22,"sheet_y":48,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FF":{"unified":"1F469-1F3FD-200D-1F91D-200D-1F469-1F3FF","non_qualified":null,"image":"1f469-1f3fd-200d-1f91d-200d-1f469-1f3ff.png","sheet_x":22,"sheet_y":49,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FB":{"unified":"1F469-1F3FE-200D-1F91D-200D-1F469-1F3FB","non_qualified":null,"image":"1f469-1f3fe-200d-1f91d-200d-1f469-1f3fb.png","sheet_x":22,"sheet_y":50,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FC":{"unified":"1F469-1F3FE-200D-1F91D-200D-1F469-1F3FC","non_qualified":null,"image":"1f469-1f3fe-200d-1f91d-200d-1f469-1f3fc.png","sheet_x":22,"sheet_y":51,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FD":{"unified":"1F469-1F3FE-200D-1F91D-200D-1F469-1F3FD","non_qualified":null,"image":"1f469-1f3fe-200d-1f91d-200d-1f469-1f3fd.png","sheet_x":22,"sheet_y":52,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FF":{"unified":"1F469-1F3FE-200D-1F91D-200D-1F469-1F3FF","non_qualified":null,"image":"1f469-1f3fe-200d-1f91d-200d-1f469-1f3ff.png","sheet_x":22,"sheet_y":53,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FB":{"unified":"1F469-1F3FF-200D-1F91D-200D-1F469-1F3FB","non_qualified":null,"image":"1f469-1f3ff-200d-1f91d-200d-1f469-1f3fb.png","sheet_x":22,"sheet_y":54,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FC":{"unified":"1F469-1F3FF-200D-1F91D-200D-1F469-1F3FC","non_qualified":null,"image":"1f469-1f3ff-200d-1f91d-200d-1f469-1f3fc.png","sheet_x":22,"sheet_y":55,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FD":{"unified":"1F469-1F3FF-200D-1F91D-200D-1F469-1F3FD","non_qualified":null,"image":"1f469-1f3ff-200d-1f91d-200d-1f469-1f3fd.png","sheet_x":22,"sheet_y":56,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FE":{"unified":"1F469-1F3FF-200D-1F91D-200D-1F469-1F3FE","non_qualified":null,"image":"1f469-1f3ff-200d-1f91d-200d-1f469-1f3fe.png","sheet_x":22,"sheet_y":57,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Two Women Holding Hands","b":"1F46D","d":true,"e":true,"f":true,"h":true,"j":["women_holding_hands","pair","friendship","couple","love","like","female","people","human"],"k":[22,32],"n":["women_holding_hands"],"o":1},"man_and_woman_holding_hands":{"subcategory":"family","skin_variations":{"1F3FB":{"unified":"1F46B-1F3FB","non_qualified":null,"image":"1f46b-1f3fb.png","sheet_x":21,"sheet_y":42,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F46B-1F3FC","non_qualified":null,"image":"1f46b-1f3fc.png","sheet_x":21,"sheet_y":43,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F46B-1F3FD","non_qualified":null,"image":"1f46b-1f3fd.png","sheet_x":21,"sheet_y":44,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F46B-1F3FE","non_qualified":null,"image":"1f46b-1f3fe.png","sheet_x":21,"sheet_y":45,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F46B-1F3FF","non_qualified":null,"image":"1f46b-1f3ff.png","sheet_x":21,"sheet_y":46,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FC":{"unified":"1F469-1F3FB-200D-1F91D-200D-1F468-1F3FC","non_qualified":null,"image":"1f469-1f3fb-200d-1f91d-200d-1f468-1f3fc.png","sheet_x":21,"sheet_y":47,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FD":{"unified":"1F469-1F3FB-200D-1F91D-200D-1F468-1F3FD","non_qualified":null,"image":"1f469-1f3fb-200d-1f91d-200d-1f468-1f3fd.png","sheet_x":21,"sheet_y":48,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FE":{"unified":"1F469-1F3FB-200D-1F91D-200D-1F468-1F3FE","non_qualified":null,"image":"1f469-1f3fb-200d-1f91d-200d-1f468-1f3fe.png","sheet_x":21,"sheet_y":49,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FF":{"unified":"1F469-1F3FB-200D-1F91D-200D-1F468-1F3FF","non_qualified":null,"image":"1f469-1f3fb-200d-1f91d-200d-1f468-1f3ff.png","sheet_x":21,"sheet_y":50,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FB":{"unified":"1F469-1F3FC-200D-1F91D-200D-1F468-1F3FB","non_qualified":null,"image":"1f469-1f3fc-200d-1f91d-200d-1f468-1f3fb.png","sheet_x":21,"sheet_y":51,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FD":{"unified":"1F469-1F3FC-200D-1F91D-200D-1F468-1F3FD","non_qualified":null,"image":"1f469-1f3fc-200d-1f91d-200d-1f468-1f3fd.png","sheet_x":21,"sheet_y":52,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FE":{"unified":"1F469-1F3FC-200D-1F91D-200D-1F468-1F3FE","non_qualified":null,"image":"1f469-1f3fc-200d-1f91d-200d-1f468-1f3fe.png","sheet_x":21,"sheet_y":53,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FF":{"unified":"1F469-1F3FC-200D-1F91D-200D-1F468-1F3FF","non_qualified":null,"image":"1f469-1f3fc-200d-1f91d-200d-1f468-1f3ff.png","sheet_x":21,"sheet_y":54,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FB":{"unified":"1F469-1F3FD-200D-1F91D-200D-1F468-1F3FB","non_qualified":null,"image":"1f469-1f3fd-200d-1f91d-200d-1f468-1f3fb.png","sheet_x":21,"sheet_y":55,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FC":{"unified":"1F469-1F3FD-200D-1F91D-200D-1F468-1F3FC","non_qualified":null,"image":"1f469-1f3fd-200d-1f91d-200d-1f468-1f3fc.png","sheet_x":21,"sheet_y":56,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FE":{"unified":"1F469-1F3FD-200D-1F91D-200D-1F468-1F3FE","non_qualified":null,"image":"1f469-1f3fd-200d-1f91d-200d-1f468-1f3fe.png","sheet_x":21,"sheet_y":57,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FF":{"unified":"1F469-1F3FD-200D-1F91D-200D-1F468-1F3FF","non_qualified":null,"image":"1f469-1f3fd-200d-1f91d-200d-1f468-1f3ff.png","sheet_x":21,"sheet_y":58,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FB":{"unified":"1F469-1F3FE-200D-1F91D-200D-1F468-1F3FB","non_qualified":null,"image":"1f469-1f3fe-200d-1f91d-200d-1f468-1f3fb.png","sheet_x":21,"sheet_y":59,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FC":{"unified":"1F469-1F3FE-200D-1F91D-200D-1F468-1F3FC","non_qualified":null,"image":"1f469-1f3fe-200d-1f91d-200d-1f468-1f3fc.png","sheet_x":21,"sheet_y":60,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FD":{"unified":"1F469-1F3FE-200D-1F91D-200D-1F468-1F3FD","non_qualified":null,"image":"1f469-1f3fe-200d-1f91d-200d-1f468-1f3fd.png","sheet_x":22,"sheet_y":0,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FF":{"unified":"1F469-1F3FE-200D-1F91D-200D-1F468-1F3FF","non_qualified":null,"image":"1f469-1f3fe-200d-1f91d-200d-1f468-1f3ff.png","sheet_x":22,"sheet_y":1,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FB":{"unified":"1F469-1F3FF-200D-1F91D-200D-1F468-1F3FB","non_qualified":null,"image":"1f469-1f3ff-200d-1f91d-200d-1f468-1f3fb.png","sheet_x":22,"sheet_y":2,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FC":{"unified":"1F469-1F3FF-200D-1F91D-200D-1F468-1F3FC","non_qualified":null,"image":"1f469-1f3ff-200d-1f91d-200d-1f468-1f3fc.png","sheet_x":22,"sheet_y":3,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FD":{"unified":"1F469-1F3FF-200D-1F91D-200D-1F468-1F3FD","non_qualified":null,"image":"1f469-1f3ff-200d-1f91d-200d-1f468-1f3fd.png","sheet_x":22,"sheet_y":4,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FE":{"unified":"1F469-1F3FF-200D-1F91D-200D-1F468-1F3FE","non_qualified":null,"image":"1f469-1f3ff-200d-1f91d-200d-1f468-1f3fe.png","sheet_x":22,"sheet_y":5,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Man and Woman Holding Hands","b":"1F46B","d":true,"e":true,"f":true,"h":true,"j":["woman_and_man_holding_hands","pair","people","human","love","date","dating","like","affection","valentines","marriage"],"k":[21,41],"n":["woman_and_man_holding_hands","couple"],"o":0},"two_men_holding_hands":{"subcategory":"family","skin_variations":{"1F3FB":{"unified":"1F46C-1F3FB","non_qualified":null,"image":"1f46c-1f3fb.png","sheet_x":22,"sheet_y":7,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F46C-1F3FC","non_qualified":null,"image":"1f46c-1f3fc.png","sheet_x":22,"sheet_y":8,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F46C-1F3FD","non_qualified":null,"image":"1f46c-1f3fd.png","sheet_x":22,"sheet_y":9,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F46C-1F3FE","non_qualified":null,"image":"1f46c-1f3fe.png","sheet_x":22,"sheet_y":10,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F46C-1F3FF","non_qualified":null,"image":"1f46c-1f3ff.png","sheet_x":22,"sheet_y":11,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FC":{"unified":"1F468-1F3FB-200D-1F91D-200D-1F468-1F3FC","non_qualified":null,"image":"1f468-1f3fb-200d-1f91d-200d-1f468-1f3fc.png","sheet_x":22,"sheet_y":12,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FD":{"unified":"1F468-1F3FB-200D-1F91D-200D-1F468-1F3FD","non_qualified":null,"image":"1f468-1f3fb-200d-1f91d-200d-1f468-1f3fd.png","sheet_x":22,"sheet_y":13,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FE":{"unified":"1F468-1F3FB-200D-1F91D-200D-1F468-1F3FE","non_qualified":null,"image":"1f468-1f3fb-200d-1f91d-200d-1f468-1f3fe.png","sheet_x":22,"sheet_y":14,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FF":{"unified":"1F468-1F3FB-200D-1F91D-200D-1F468-1F3FF","non_qualified":null,"image":"1f468-1f3fb-200d-1f91d-200d-1f468-1f3ff.png","sheet_x":22,"sheet_y":15,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FB":{"unified":"1F468-1F3FC-200D-1F91D-200D-1F468-1F3FB","non_qualified":null,"image":"1f468-1f3fc-200d-1f91d-200d-1f468-1f3fb.png","sheet_x":22,"sheet_y":16,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FD":{"unified":"1F468-1F3FC-200D-1F91D-200D-1F468-1F3FD","non_qualified":null,"image":"1f468-1f3fc-200d-1f91d-200d-1f468-1f3fd.png","sheet_x":22,"sheet_y":17,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FE":{"unified":"1F468-1F3FC-200D-1F91D-200D-1F468-1F3FE","non_qualified":null,"image":"1f468-1f3fc-200d-1f91d-200d-1f468-1f3fe.png","sheet_x":22,"sheet_y":18,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FF":{"unified":"1F468-1F3FC-200D-1F91D-200D-1F468-1F3FF","non_qualified":null,"image":"1f468-1f3fc-200d-1f91d-200d-1f468-1f3ff.png","sheet_x":22,"sheet_y":19,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FB":{"unified":"1F468-1F3FD-200D-1F91D-200D-1F468-1F3FB","non_qualified":null,"image":"1f468-1f3fd-200d-1f91d-200d-1f468-1f3fb.png","sheet_x":22,"sheet_y":20,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FC":{"unified":"1F468-1F3FD-200D-1F91D-200D-1F468-1F3FC","non_qualified":null,"image":"1f468-1f3fd-200d-1f91d-200d-1f468-1f3fc.png","sheet_x":22,"sheet_y":21,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FE":{"unified":"1F468-1F3FD-200D-1F91D-200D-1F468-1F3FE","non_qualified":null,"image":"1f468-1f3fd-200d-1f91d-200d-1f468-1f3fe.png","sheet_x":22,"sheet_y":22,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FF":{"unified":"1F468-1F3FD-200D-1F91D-200D-1F468-1F3FF","non_qualified":null,"image":"1f468-1f3fd-200d-1f91d-200d-1f468-1f3ff.png","sheet_x":22,"sheet_y":23,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FB":{"unified":"1F468-1F3FE-200D-1F91D-200D-1F468-1F3FB","non_qualified":null,"image":"1f468-1f3fe-200d-1f91d-200d-1f468-1f3fb.png","sheet_x":22,"sheet_y":24,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FC":{"unified":"1F468-1F3FE-200D-1F91D-200D-1F468-1F3FC","non_qualified":null,"image":"1f468-1f3fe-200d-1f91d-200d-1f468-1f3fc.png","sheet_x":22,"sheet_y":25,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FD":{"unified":"1F468-1F3FE-200D-1F91D-200D-1F468-1F3FD","non_qualified":null,"image":"1f468-1f3fe-200d-1f91d-200d-1f468-1f3fd.png","sheet_x":22,"sheet_y":26,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FF":{"unified":"1F468-1F3FE-200D-1F91D-200D-1F468-1F3FF","non_qualified":null,"image":"1f468-1f3fe-200d-1f91d-200d-1f468-1f3ff.png","sheet_x":22,"sheet_y":27,"added_in":"12.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FB":{"unified":"1F468-1F3FF-200D-1F91D-200D-1F468-1F3FB","non_qualified":null,"image":"1f468-1f3ff-200d-1f91d-200d-1f468-1f3fb.png","sheet_x":22,"sheet_y":28,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FC":{"unified":"1F468-1F3FF-200D-1F91D-200D-1F468-1F3FC","non_qualified":null,"image":"1f468-1f3ff-200d-1f91d-200d-1f468-1f3fc.png","sheet_x":22,"sheet_y":29,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FD":{"unified":"1F468-1F3FF-200D-1F91D-200D-1F468-1F3FD","non_qualified":null,"image":"1f468-1f3ff-200d-1f91d-200d-1f468-1f3fd.png","sheet_x":22,"sheet_y":30,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FE":{"unified":"1F468-1F3FF-200D-1F91D-200D-1F468-1F3FE","non_qualified":null,"image":"1f468-1f3ff-200d-1f91d-200d-1f468-1f3fe.png","sheet_x":22,"sheet_y":31,"added_in":"12.0","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Two Men Holding Hands","b":"1F46C","d":true,"e":true,"f":true,"h":true,"j":["men_holding_hands","pair","couple","love","like","bromance","friendship","people","human"],"k":[22,6],"n":["men_holding_hands"],"o":1},"couplekiss":{"subcategory":"family","skin_variations":{"1F3FB":{"unified":"1F48F-1F3FB","non_qualified":null,"image":"1f48f-1f3fb.png","sheet_x":26,"sheet_y":43,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F48F-1F3FC","non_qualified":null,"image":"1f48f-1f3fc.png","sheet_x":26,"sheet_y":44,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F48F-1F3FD","non_qualified":null,"image":"1f48f-1f3fd.png","sheet_x":26,"sheet_y":45,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F48F-1F3FE","non_qualified":null,"image":"1f48f-1f3fe.png","sheet_x":26,"sheet_y":46,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F48F-1F3FF","non_qualified":null,"image":"1f48f-1f3ff.png","sheet_x":26,"sheet_y":47,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FC":{"unified":"1F9D1-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FC","non_qualified":"1F9D1-1F3FB-200D-2764-200D-1F48B-200D-1F9D1-1F3FC","image":"1f9d1-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fc.png","sheet_x":26,"sheet_y":48,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FD":{"unified":"1F9D1-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FD","non_qualified":"1F9D1-1F3FB-200D-2764-200D-1F48B-200D-1F9D1-1F3FD","image":"1f9d1-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fd.png","sheet_x":26,"sheet_y":49,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FE":{"unified":"1F9D1-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FE","non_qualified":"1F9D1-1F3FB-200D-2764-200D-1F48B-200D-1F9D1-1F3FE","image":"1f9d1-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fe.png","sheet_x":26,"sheet_y":50,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FF":{"unified":"1F9D1-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FF","non_qualified":"1F9D1-1F3FB-200D-2764-200D-1F48B-200D-1F9D1-1F3FF","image":"1f9d1-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3ff.png","sheet_x":26,"sheet_y":51,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FB":{"unified":"1F9D1-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FB","non_qualified":"1F9D1-1F3FC-200D-2764-200D-1F48B-200D-1F9D1-1F3FB","image":"1f9d1-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fb.png","sheet_x":26,"sheet_y":52,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FD":{"unified":"1F9D1-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FD","non_qualified":"1F9D1-1F3FC-200D-2764-200D-1F48B-200D-1F9D1-1F3FD","image":"1f9d1-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fd.png","sheet_x":26,"sheet_y":53,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FE":{"unified":"1F9D1-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FE","non_qualified":"1F9D1-1F3FC-200D-2764-200D-1F48B-200D-1F9D1-1F3FE","image":"1f9d1-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fe.png","sheet_x":26,"sheet_y":54,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FF":{"unified":"1F9D1-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FF","non_qualified":"1F9D1-1F3FC-200D-2764-200D-1F48B-200D-1F9D1-1F3FF","image":"1f9d1-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3ff.png","sheet_x":26,"sheet_y":55,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FB":{"unified":"1F9D1-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FB","non_qualified":"1F9D1-1F3FD-200D-2764-200D-1F48B-200D-1F9D1-1F3FB","image":"1f9d1-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fb.png","sheet_x":26,"sheet_y":56,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FC":{"unified":"1F9D1-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FC","non_qualified":"1F9D1-1F3FD-200D-2764-200D-1F48B-200D-1F9D1-1F3FC","image":"1f9d1-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fc.png","sheet_x":26,"sheet_y":57,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FE":{"unified":"1F9D1-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FE","non_qualified":"1F9D1-1F3FD-200D-2764-200D-1F48B-200D-1F9D1-1F3FE","image":"1f9d1-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fe.png","sheet_x":26,"sheet_y":58,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FF":{"unified":"1F9D1-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FF","non_qualified":"1F9D1-1F3FD-200D-2764-200D-1F48B-200D-1F9D1-1F3FF","image":"1f9d1-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3ff.png","sheet_x":26,"sheet_y":59,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FB":{"unified":"1F9D1-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FB","non_qualified":"1F9D1-1F3FE-200D-2764-200D-1F48B-200D-1F9D1-1F3FB","image":"1f9d1-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fb.png","sheet_x":26,"sheet_y":60,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FC":{"unified":"1F9D1-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FC","non_qualified":"1F9D1-1F3FE-200D-2764-200D-1F48B-200D-1F9D1-1F3FC","image":"1f9d1-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fc.png","sheet_x":27,"sheet_y":0,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FD":{"unified":"1F9D1-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FD","non_qualified":"1F9D1-1F3FE-200D-2764-200D-1F48B-200D-1F9D1-1F3FD","image":"1f9d1-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fd.png","sheet_x":27,"sheet_y":1,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FF":{"unified":"1F9D1-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FF","non_qualified":"1F9D1-1F3FE-200D-2764-200D-1F48B-200D-1F9D1-1F3FF","image":"1f9d1-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3ff.png","sheet_x":27,"sheet_y":2,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FB":{"unified":"1F9D1-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FB","non_qualified":"1F9D1-1F3FF-200D-2764-200D-1F48B-200D-1F9D1-1F3FB","image":"1f9d1-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fb.png","sheet_x":27,"sheet_y":3,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FC":{"unified":"1F9D1-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FC","non_qualified":"1F9D1-1F3FF-200D-2764-200D-1F48B-200D-1F9D1-1F3FC","image":"1f9d1-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fc.png","sheet_x":27,"sheet_y":4,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FD":{"unified":"1F9D1-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FD","non_qualified":"1F9D1-1F3FF-200D-2764-200D-1F48B-200D-1F9D1-1F3FD","image":"1f9d1-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fd.png","sheet_x":27,"sheet_y":5,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FE":{"unified":"1F9D1-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FE","non_qualified":"1F9D1-1F3FF-200D-2764-200D-1F48B-200D-1F9D1-1F3FE","image":"1f9d1-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fe.png","sheet_x":27,"sheet_y":6,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Kiss","b":"1F48F","d":true,"e":true,"f":true,"h":true,"j":["kiss","pair","valentines","love","like","dating","marriage"],"k":[26,42],"o":0},"woman-kiss-man":{"subcategory":"family","skin_variations":{"1F3FB-1F3FB":{"unified":"1F469-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FB","non_qualified":"1F469-1F3FB-200D-2764-200D-1F48B-200D-1F468-1F3FB","image":"1f469-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fb.png","sheet_x":20,"sheet_y":44,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FC":{"unified":"1F469-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FC","non_qualified":"1F469-1F3FB-200D-2764-200D-1F48B-200D-1F468-1F3FC","image":"1f469-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fc.png","sheet_x":20,"sheet_y":45,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FD":{"unified":"1F469-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FD","non_qualified":"1F469-1F3FB-200D-2764-200D-1F48B-200D-1F468-1F3FD","image":"1f469-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fd.png","sheet_x":20,"sheet_y":46,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FE":{"unified":"1F469-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FE","non_qualified":"1F469-1F3FB-200D-2764-200D-1F48B-200D-1F468-1F3FE","image":"1f469-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fe.png","sheet_x":20,"sheet_y":47,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FF":{"unified":"1F469-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FF","non_qualified":"1F469-1F3FB-200D-2764-200D-1F48B-200D-1F468-1F3FF","image":"1f469-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3ff.png","sheet_x":20,"sheet_y":48,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FB":{"unified":"1F469-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FB","non_qualified":"1F469-1F3FC-200D-2764-200D-1F48B-200D-1F468-1F3FB","image":"1f469-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fb.png","sheet_x":20,"sheet_y":49,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FC":{"unified":"1F469-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FC","non_qualified":"1F469-1F3FC-200D-2764-200D-1F48B-200D-1F468-1F3FC","image":"1f469-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fc.png","sheet_x":20,"sheet_y":50,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FD":{"unified":"1F469-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FD","non_qualified":"1F469-1F3FC-200D-2764-200D-1F48B-200D-1F468-1F3FD","image":"1f469-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fd.png","sheet_x":20,"sheet_y":51,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FE":{"unified":"1F469-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FE","non_qualified":"1F469-1F3FC-200D-2764-200D-1F48B-200D-1F468-1F3FE","image":"1f469-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fe.png","sheet_x":20,"sheet_y":52,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FF":{"unified":"1F469-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FF","non_qualified":"1F469-1F3FC-200D-2764-200D-1F48B-200D-1F468-1F3FF","image":"1f469-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3ff.png","sheet_x":20,"sheet_y":53,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FB":{"unified":"1F469-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FB","non_qualified":"1F469-1F3FD-200D-2764-200D-1F48B-200D-1F468-1F3FB","image":"1f469-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fb.png","sheet_x":20,"sheet_y":54,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FC":{"unified":"1F469-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FC","non_qualified":"1F469-1F3FD-200D-2764-200D-1F48B-200D-1F468-1F3FC","image":"1f469-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fc.png","sheet_x":20,"sheet_y":55,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FD":{"unified":"1F469-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FD","non_qualified":"1F469-1F3FD-200D-2764-200D-1F48B-200D-1F468-1F3FD","image":"1f469-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fd.png","sheet_x":20,"sheet_y":56,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FE":{"unified":"1F469-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FE","non_qualified":"1F469-1F3FD-200D-2764-200D-1F48B-200D-1F468-1F3FE","image":"1f469-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fe.png","sheet_x":20,"sheet_y":57,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FF":{"unified":"1F469-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FF","non_qualified":"1F469-1F3FD-200D-2764-200D-1F48B-200D-1F468-1F3FF","image":"1f469-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3ff.png","sheet_x":20,"sheet_y":58,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FB":{"unified":"1F469-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FB","non_qualified":"1F469-1F3FE-200D-2764-200D-1F48B-200D-1F468-1F3FB","image":"1f469-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fb.png","sheet_x":20,"sheet_y":59,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FC":{"unified":"1F469-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FC","non_qualified":"1F469-1F3FE-200D-2764-200D-1F48B-200D-1F468-1F3FC","image":"1f469-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fc.png","sheet_x":20,"sheet_y":60,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FD":{"unified":"1F469-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FD","non_qualified":"1F469-1F3FE-200D-2764-200D-1F48B-200D-1F468-1F3FD","image":"1f469-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fd.png","sheet_x":21,"sheet_y":0,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FE":{"unified":"1F469-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FE","non_qualified":"1F469-1F3FE-200D-2764-200D-1F48B-200D-1F468-1F3FE","image":"1f469-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fe.png","sheet_x":21,"sheet_y":1,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FF":{"unified":"1F469-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FF","non_qualified":"1F469-1F3FE-200D-2764-200D-1F48B-200D-1F468-1F3FF","image":"1f469-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3ff.png","sheet_x":21,"sheet_y":2,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FB":{"unified":"1F469-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FB","non_qualified":"1F469-1F3FF-200D-2764-200D-1F48B-200D-1F468-1F3FB","image":"1f469-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fb.png","sheet_x":21,"sheet_y":3,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FC":{"unified":"1F469-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FC","non_qualified":"1F469-1F3FF-200D-2764-200D-1F48B-200D-1F468-1F3FC","image":"1f469-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fc.png","sheet_x":21,"sheet_y":4,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FD":{"unified":"1F469-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FD","non_qualified":"1F469-1F3FF-200D-2764-200D-1F48B-200D-1F468-1F3FD","image":"1f469-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fd.png","sheet_x":21,"sheet_y":5,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FE":{"unified":"1F469-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FE","non_qualified":"1F469-1F3FF-200D-2764-200D-1F48B-200D-1F468-1F3FE","image":"1f469-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fe.png","sheet_x":21,"sheet_y":6,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FF":{"unified":"1F469-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FF","non_qualified":"1F469-1F3FF-200D-2764-200D-1F48B-200D-1F468-1F3FF","image":"1f469-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3ff.png","sheet_x":21,"sheet_y":7,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Kiss: Woman, Man","b":"1F469-200D-2764-FE0F-200D-1F48B-200D-1F468","c":"1F469-200D-2764-200D-1F48B-200D-1F468","d":true,"e":true,"f":true,"h":true,"j":["kiss_woman_man","love"],"k":[20,43],"o":2},"man-kiss-man":{"subcategory":"family","skin_variations":{"1F3FB-1F3FB":{"unified":"1F468-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FB","non_qualified":"1F468-1F3FB-200D-2764-200D-1F48B-200D-1F468-1F3FB","image":"1f468-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fb.png","sheet_x":16,"sheet_y":50,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FC":{"unified":"1F468-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FC","non_qualified":"1F468-1F3FB-200D-2764-200D-1F48B-200D-1F468-1F3FC","image":"1f468-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fc.png","sheet_x":16,"sheet_y":51,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FD":{"unified":"1F468-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FD","non_qualified":"1F468-1F3FB-200D-2764-200D-1F48B-200D-1F468-1F3FD","image":"1f468-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fd.png","sheet_x":16,"sheet_y":52,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FE":{"unified":"1F468-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FE","non_qualified":"1F468-1F3FB-200D-2764-200D-1F48B-200D-1F468-1F3FE","image":"1f468-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fe.png","sheet_x":16,"sheet_y":53,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FF":{"unified":"1F468-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FF","non_qualified":"1F468-1F3FB-200D-2764-200D-1F48B-200D-1F468-1F3FF","image":"1f468-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3ff.png","sheet_x":16,"sheet_y":54,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FB":{"unified":"1F468-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FB","non_qualified":"1F468-1F3FC-200D-2764-200D-1F48B-200D-1F468-1F3FB","image":"1f468-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fb.png","sheet_x":16,"sheet_y":55,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FC":{"unified":"1F468-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FC","non_qualified":"1F468-1F3FC-200D-2764-200D-1F48B-200D-1F468-1F3FC","image":"1f468-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fc.png","sheet_x":16,"sheet_y":56,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FD":{"unified":"1F468-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FD","non_qualified":"1F468-1F3FC-200D-2764-200D-1F48B-200D-1F468-1F3FD","image":"1f468-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fd.png","sheet_x":16,"sheet_y":57,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FE":{"unified":"1F468-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FE","non_qualified":"1F468-1F3FC-200D-2764-200D-1F48B-200D-1F468-1F3FE","image":"1f468-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fe.png","sheet_x":16,"sheet_y":58,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FF":{"unified":"1F468-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FF","non_qualified":"1F468-1F3FC-200D-2764-200D-1F48B-200D-1F468-1F3FF","image":"1f468-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3ff.png","sheet_x":16,"sheet_y":59,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FB":{"unified":"1F468-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FB","non_qualified":"1F468-1F3FD-200D-2764-200D-1F48B-200D-1F468-1F3FB","image":"1f468-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fb.png","sheet_x":16,"sheet_y":60,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FC":{"unified":"1F468-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FC","non_qualified":"1F468-1F3FD-200D-2764-200D-1F48B-200D-1F468-1F3FC","image":"1f468-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fc.png","sheet_x":17,"sheet_y":0,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FD":{"unified":"1F468-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FD","non_qualified":"1F468-1F3FD-200D-2764-200D-1F48B-200D-1F468-1F3FD","image":"1f468-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fd.png","sheet_x":17,"sheet_y":1,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FE":{"unified":"1F468-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FE","non_qualified":"1F468-1F3FD-200D-2764-200D-1F48B-200D-1F468-1F3FE","image":"1f468-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fe.png","sheet_x":17,"sheet_y":2,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FF":{"unified":"1F468-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FF","non_qualified":"1F468-1F3FD-200D-2764-200D-1F48B-200D-1F468-1F3FF","image":"1f468-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3ff.png","sheet_x":17,"sheet_y":3,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FB":{"unified":"1F468-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FB","non_qualified":"1F468-1F3FE-200D-2764-200D-1F48B-200D-1F468-1F3FB","image":"1f468-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fb.png","sheet_x":17,"sheet_y":4,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FC":{"unified":"1F468-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FC","non_qualified":"1F468-1F3FE-200D-2764-200D-1F48B-200D-1F468-1F3FC","image":"1f468-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fc.png","sheet_x":17,"sheet_y":5,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FD":{"unified":"1F468-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FD","non_qualified":"1F468-1F3FE-200D-2764-200D-1F48B-200D-1F468-1F3FD","image":"1f468-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fd.png","sheet_x":17,"sheet_y":6,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FE":{"unified":"1F468-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FE","non_qualified":"1F468-1F3FE-200D-2764-200D-1F48B-200D-1F468-1F3FE","image":"1f468-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fe.png","sheet_x":17,"sheet_y":7,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FF":{"unified":"1F468-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FF","non_qualified":"1F468-1F3FE-200D-2764-200D-1F48B-200D-1F468-1F3FF","image":"1f468-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3ff.png","sheet_x":17,"sheet_y":8,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FB":{"unified":"1F468-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FB","non_qualified":"1F468-1F3FF-200D-2764-200D-1F48B-200D-1F468-1F3FB","image":"1f468-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fb.png","sheet_x":17,"sheet_y":9,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FC":{"unified":"1F468-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FC","non_qualified":"1F468-1F3FF-200D-2764-200D-1F48B-200D-1F468-1F3FC","image":"1f468-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fc.png","sheet_x":17,"sheet_y":10,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FD":{"unified":"1F468-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FD","non_qualified":"1F468-1F3FF-200D-2764-200D-1F48B-200D-1F468-1F3FD","image":"1f468-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fd.png","sheet_x":17,"sheet_y":11,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FE":{"unified":"1F468-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FE","non_qualified":"1F468-1F3FF-200D-2764-200D-1F48B-200D-1F468-1F3FE","image":"1f468-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fe.png","sheet_x":17,"sheet_y":12,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FF":{"unified":"1F468-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FF","non_qualified":"1F468-1F3FF-200D-2764-200D-1F48B-200D-1F468-1F3FF","image":"1f468-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3ff.png","sheet_x":17,"sheet_y":13,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Kiss: Man, Man","b":"1F468-200D-2764-FE0F-200D-1F48B-200D-1F468","c":"1F468-200D-2764-200D-1F48B-200D-1F468","d":true,"e":true,"f":true,"h":true,"j":["kiss_man_man","pair","valentines","love","like","dating","marriage"],"k":[16,49],"o":2},"woman-kiss-woman":{"subcategory":"family","skin_variations":{"1F3FB-1F3FB":{"unified":"1F469-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FB","non_qualified":"1F469-1F3FB-200D-2764-200D-1F48B-200D-1F469-1F3FB","image":"1f469-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fb.png","sheet_x":21,"sheet_y":9,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FC":{"unified":"1F469-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FC","non_qualified":"1F469-1F3FB-200D-2764-200D-1F48B-200D-1F469-1F3FC","image":"1f469-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fc.png","sheet_x":21,"sheet_y":10,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FD":{"unified":"1F469-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FD","non_qualified":"1F469-1F3FB-200D-2764-200D-1F48B-200D-1F469-1F3FD","image":"1f469-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fd.png","sheet_x":21,"sheet_y":11,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FE":{"unified":"1F469-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FE","non_qualified":"1F469-1F3FB-200D-2764-200D-1F48B-200D-1F469-1F3FE","image":"1f469-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fe.png","sheet_x":21,"sheet_y":12,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FF":{"unified":"1F469-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FF","non_qualified":"1F469-1F3FB-200D-2764-200D-1F48B-200D-1F469-1F3FF","image":"1f469-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3ff.png","sheet_x":21,"sheet_y":13,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FB":{"unified":"1F469-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FB","non_qualified":"1F469-1F3FC-200D-2764-200D-1F48B-200D-1F469-1F3FB","image":"1f469-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fb.png","sheet_x":21,"sheet_y":14,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FC":{"unified":"1F469-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FC","non_qualified":"1F469-1F3FC-200D-2764-200D-1F48B-200D-1F469-1F3FC","image":"1f469-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fc.png","sheet_x":21,"sheet_y":15,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FD":{"unified":"1F469-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FD","non_qualified":"1F469-1F3FC-200D-2764-200D-1F48B-200D-1F469-1F3FD","image":"1f469-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fd.png","sheet_x":21,"sheet_y":16,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FE":{"unified":"1F469-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FE","non_qualified":"1F469-1F3FC-200D-2764-200D-1F48B-200D-1F469-1F3FE","image":"1f469-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fe.png","sheet_x":21,"sheet_y":17,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FF":{"unified":"1F469-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FF","non_qualified":"1F469-1F3FC-200D-2764-200D-1F48B-200D-1F469-1F3FF","image":"1f469-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3ff.png","sheet_x":21,"sheet_y":18,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FB":{"unified":"1F469-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FB","non_qualified":"1F469-1F3FD-200D-2764-200D-1F48B-200D-1F469-1F3FB","image":"1f469-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fb.png","sheet_x":21,"sheet_y":19,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FC":{"unified":"1F469-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FC","non_qualified":"1F469-1F3FD-200D-2764-200D-1F48B-200D-1F469-1F3FC","image":"1f469-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fc.png","sheet_x":21,"sheet_y":20,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FD":{"unified":"1F469-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FD","non_qualified":"1F469-1F3FD-200D-2764-200D-1F48B-200D-1F469-1F3FD","image":"1f469-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fd.png","sheet_x":21,"sheet_y":21,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FE":{"unified":"1F469-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FE","non_qualified":"1F469-1F3FD-200D-2764-200D-1F48B-200D-1F469-1F3FE","image":"1f469-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fe.png","sheet_x":21,"sheet_y":22,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FF":{"unified":"1F469-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FF","non_qualified":"1F469-1F3FD-200D-2764-200D-1F48B-200D-1F469-1F3FF","image":"1f469-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3ff.png","sheet_x":21,"sheet_y":23,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FB":{"unified":"1F469-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FB","non_qualified":"1F469-1F3FE-200D-2764-200D-1F48B-200D-1F469-1F3FB","image":"1f469-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fb.png","sheet_x":21,"sheet_y":24,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FC":{"unified":"1F469-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FC","non_qualified":"1F469-1F3FE-200D-2764-200D-1F48B-200D-1F469-1F3FC","image":"1f469-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fc.png","sheet_x":21,"sheet_y":25,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FD":{"unified":"1F469-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FD","non_qualified":"1F469-1F3FE-200D-2764-200D-1F48B-200D-1F469-1F3FD","image":"1f469-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fd.png","sheet_x":21,"sheet_y":26,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FE":{"unified":"1F469-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FE","non_qualified":"1F469-1F3FE-200D-2764-200D-1F48B-200D-1F469-1F3FE","image":"1f469-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fe.png","sheet_x":21,"sheet_y":27,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FF":{"unified":"1F469-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FF","non_qualified":"1F469-1F3FE-200D-2764-200D-1F48B-200D-1F469-1F3FF","image":"1f469-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3ff.png","sheet_x":21,"sheet_y":28,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FB":{"unified":"1F469-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FB","non_qualified":"1F469-1F3FF-200D-2764-200D-1F48B-200D-1F469-1F3FB","image":"1f469-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fb.png","sheet_x":21,"sheet_y":29,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FC":{"unified":"1F469-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FC","non_qualified":"1F469-1F3FF-200D-2764-200D-1F48B-200D-1F469-1F3FC","image":"1f469-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fc.png","sheet_x":21,"sheet_y":30,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FD":{"unified":"1F469-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FD","non_qualified":"1F469-1F3FF-200D-2764-200D-1F48B-200D-1F469-1F3FD","image":"1f469-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fd.png","sheet_x":21,"sheet_y":31,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FE":{"unified":"1F469-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FE","non_qualified":"1F469-1F3FF-200D-2764-200D-1F48B-200D-1F469-1F3FE","image":"1f469-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fe.png","sheet_x":21,"sheet_y":32,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FF":{"unified":"1F469-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FF","non_qualified":"1F469-1F3FF-200D-2764-200D-1F48B-200D-1F469-1F3FF","image":"1f469-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3ff.png","sheet_x":21,"sheet_y":33,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Kiss: Woman, Woman","b":"1F469-200D-2764-FE0F-200D-1F48B-200D-1F469","c":"1F469-200D-2764-200D-1F48B-200D-1F469","d":true,"e":true,"f":true,"h":true,"j":["kiss_woman_woman","pair","valentines","love","like","dating","marriage"],"k":[21,8],"o":2},"couple_with_heart":{"subcategory":"family","skin_variations":{"1F3FB":{"unified":"1F491-1F3FB","non_qualified":null,"image":"1f491-1f3fb.png","sheet_x":27,"sheet_y":9,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC":{"unified":"1F491-1F3FC","non_qualified":null,"image":"1f491-1f3fc.png","sheet_x":27,"sheet_y":10,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD":{"unified":"1F491-1F3FD","non_qualified":null,"image":"1f491-1f3fd.png","sheet_x":27,"sheet_y":11,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE":{"unified":"1F491-1F3FE","non_qualified":null,"image":"1f491-1f3fe.png","sheet_x":27,"sheet_y":12,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF":{"unified":"1F491-1F3FF","non_qualified":null,"image":"1f491-1f3ff.png","sheet_x":27,"sheet_y":13,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FC":{"unified":"1F9D1-1F3FB-200D-2764-FE0F-200D-1F9D1-1F3FC","non_qualified":"1F9D1-1F3FB-200D-2764-200D-1F9D1-1F3FC","image":"1f9d1-1f3fb-200d-2764-fe0f-200d-1f9d1-1f3fc.png","sheet_x":27,"sheet_y":14,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FD":{"unified":"1F9D1-1F3FB-200D-2764-FE0F-200D-1F9D1-1F3FD","non_qualified":"1F9D1-1F3FB-200D-2764-200D-1F9D1-1F3FD","image":"1f9d1-1f3fb-200d-2764-fe0f-200d-1f9d1-1f3fd.png","sheet_x":27,"sheet_y":15,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FE":{"unified":"1F9D1-1F3FB-200D-2764-FE0F-200D-1F9D1-1F3FE","non_qualified":"1F9D1-1F3FB-200D-2764-200D-1F9D1-1F3FE","image":"1f9d1-1f3fb-200d-2764-fe0f-200d-1f9d1-1f3fe.png","sheet_x":27,"sheet_y":16,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FF":{"unified":"1F9D1-1F3FB-200D-2764-FE0F-200D-1F9D1-1F3FF","non_qualified":"1F9D1-1F3FB-200D-2764-200D-1F9D1-1F3FF","image":"1f9d1-1f3fb-200d-2764-fe0f-200d-1f9d1-1f3ff.png","sheet_x":27,"sheet_y":17,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FB":{"unified":"1F9D1-1F3FC-200D-2764-FE0F-200D-1F9D1-1F3FB","non_qualified":"1F9D1-1F3FC-200D-2764-200D-1F9D1-1F3FB","image":"1f9d1-1f3fc-200d-2764-fe0f-200d-1f9d1-1f3fb.png","sheet_x":27,"sheet_y":18,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FD":{"unified":"1F9D1-1F3FC-200D-2764-FE0F-200D-1F9D1-1F3FD","non_qualified":"1F9D1-1F3FC-200D-2764-200D-1F9D1-1F3FD","image":"1f9d1-1f3fc-200d-2764-fe0f-200d-1f9d1-1f3fd.png","sheet_x":27,"sheet_y":19,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FE":{"unified":"1F9D1-1F3FC-200D-2764-FE0F-200D-1F9D1-1F3FE","non_qualified":"1F9D1-1F3FC-200D-2764-200D-1F9D1-1F3FE","image":"1f9d1-1f3fc-200d-2764-fe0f-200d-1f9d1-1f3fe.png","sheet_x":27,"sheet_y":20,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FF":{"unified":"1F9D1-1F3FC-200D-2764-FE0F-200D-1F9D1-1F3FF","non_qualified":"1F9D1-1F3FC-200D-2764-200D-1F9D1-1F3FF","image":"1f9d1-1f3fc-200d-2764-fe0f-200d-1f9d1-1f3ff.png","sheet_x":27,"sheet_y":21,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FB":{"unified":"1F9D1-1F3FD-200D-2764-FE0F-200D-1F9D1-1F3FB","non_qualified":"1F9D1-1F3FD-200D-2764-200D-1F9D1-1F3FB","image":"1f9d1-1f3fd-200d-2764-fe0f-200d-1f9d1-1f3fb.png","sheet_x":27,"sheet_y":22,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FC":{"unified":"1F9D1-1F3FD-200D-2764-FE0F-200D-1F9D1-1F3FC","non_qualified":"1F9D1-1F3FD-200D-2764-200D-1F9D1-1F3FC","image":"1f9d1-1f3fd-200d-2764-fe0f-200d-1f9d1-1f3fc.png","sheet_x":27,"sheet_y":23,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FE":{"unified":"1F9D1-1F3FD-200D-2764-FE0F-200D-1F9D1-1F3FE","non_qualified":"1F9D1-1F3FD-200D-2764-200D-1F9D1-1F3FE","image":"1f9d1-1f3fd-200d-2764-fe0f-200d-1f9d1-1f3fe.png","sheet_x":27,"sheet_y":24,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FF":{"unified":"1F9D1-1F3FD-200D-2764-FE0F-200D-1F9D1-1F3FF","non_qualified":"1F9D1-1F3FD-200D-2764-200D-1F9D1-1F3FF","image":"1f9d1-1f3fd-200d-2764-fe0f-200d-1f9d1-1f3ff.png","sheet_x":27,"sheet_y":25,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FB":{"unified":"1F9D1-1F3FE-200D-2764-FE0F-200D-1F9D1-1F3FB","non_qualified":"1F9D1-1F3FE-200D-2764-200D-1F9D1-1F3FB","image":"1f9d1-1f3fe-200d-2764-fe0f-200d-1f9d1-1f3fb.png","sheet_x":27,"sheet_y":26,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FC":{"unified":"1F9D1-1F3FE-200D-2764-FE0F-200D-1F9D1-1F3FC","non_qualified":"1F9D1-1F3FE-200D-2764-200D-1F9D1-1F3FC","image":"1f9d1-1f3fe-200d-2764-fe0f-200d-1f9d1-1f3fc.png","sheet_x":27,"sheet_y":27,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FD":{"unified":"1F9D1-1F3FE-200D-2764-FE0F-200D-1F9D1-1F3FD","non_qualified":"1F9D1-1F3FE-200D-2764-200D-1F9D1-1F3FD","image":"1f9d1-1f3fe-200d-2764-fe0f-200d-1f9d1-1f3fd.png","sheet_x":27,"sheet_y":28,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FF":{"unified":"1F9D1-1F3FE-200D-2764-FE0F-200D-1F9D1-1F3FF","non_qualified":"1F9D1-1F3FE-200D-2764-200D-1F9D1-1F3FF","image":"1f9d1-1f3fe-200d-2764-fe0f-200d-1f9d1-1f3ff.png","sheet_x":27,"sheet_y":29,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FB":{"unified":"1F9D1-1F3FF-200D-2764-FE0F-200D-1F9D1-1F3FB","non_qualified":"1F9D1-1F3FF-200D-2764-200D-1F9D1-1F3FB","image":"1f9d1-1f3ff-200d-2764-fe0f-200d-1f9d1-1f3fb.png","sheet_x":27,"sheet_y":30,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FC":{"unified":"1F9D1-1F3FF-200D-2764-FE0F-200D-1F9D1-1F3FC","non_qualified":"1F9D1-1F3FF-200D-2764-200D-1F9D1-1F3FC","image":"1f9d1-1f3ff-200d-2764-fe0f-200d-1f9d1-1f3fc.png","sheet_x":27,"sheet_y":31,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FD":{"unified":"1F9D1-1F3FF-200D-2764-FE0F-200D-1F9D1-1F3FD","non_qualified":"1F9D1-1F3FF-200D-2764-200D-1F9D1-1F3FD","image":"1f9d1-1f3ff-200d-2764-fe0f-200d-1f9d1-1f3fd.png","sheet_x":27,"sheet_y":32,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FE":{"unified":"1F9D1-1F3FF-200D-2764-FE0F-200D-1F9D1-1F3FE","non_qualified":"1F9D1-1F3FF-200D-2764-200D-1F9D1-1F3FE","image":"1f9d1-1f3ff-200d-2764-fe0f-200d-1f9d1-1f3fe.png","sheet_x":27,"sheet_y":33,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Couple with Heart","b":"1F491","d":true,"e":true,"f":true,"h":true,"j":["couple_with_heart","pair","love","like","affection","human","dating","valentines","marriage"],"k":[27,8],"o":0},"woman-heart-man":{"subcategory":"family","skin_variations":{"1F3FB-1F3FB":{"unified":"1F469-1F3FB-200D-2764-FE0F-200D-1F468-1F3FB","non_qualified":"1F469-1F3FB-200D-2764-200D-1F468-1F3FB","image":"1f469-1f3fb-200d-2764-fe0f-200d-1f468-1f3fb.png","sheet_x":19,"sheet_y":53,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FC":{"unified":"1F469-1F3FB-200D-2764-FE0F-200D-1F468-1F3FC","non_qualified":"1F469-1F3FB-200D-2764-200D-1F468-1F3FC","image":"1f469-1f3fb-200d-2764-fe0f-200d-1f468-1f3fc.png","sheet_x":19,"sheet_y":54,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FD":{"unified":"1F469-1F3FB-200D-2764-FE0F-200D-1F468-1F3FD","non_qualified":"1F469-1F3FB-200D-2764-200D-1F468-1F3FD","image":"1f469-1f3fb-200d-2764-fe0f-200d-1f468-1f3fd.png","sheet_x":19,"sheet_y":55,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FE":{"unified":"1F469-1F3FB-200D-2764-FE0F-200D-1F468-1F3FE","non_qualified":"1F469-1F3FB-200D-2764-200D-1F468-1F3FE","image":"1f469-1f3fb-200d-2764-fe0f-200d-1f468-1f3fe.png","sheet_x":19,"sheet_y":56,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FF":{"unified":"1F469-1F3FB-200D-2764-FE0F-200D-1F468-1F3FF","non_qualified":"1F469-1F3FB-200D-2764-200D-1F468-1F3FF","image":"1f469-1f3fb-200d-2764-fe0f-200d-1f468-1f3ff.png","sheet_x":19,"sheet_y":57,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FB":{"unified":"1F469-1F3FC-200D-2764-FE0F-200D-1F468-1F3FB","non_qualified":"1F469-1F3FC-200D-2764-200D-1F468-1F3FB","image":"1f469-1f3fc-200d-2764-fe0f-200d-1f468-1f3fb.png","sheet_x":19,"sheet_y":58,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FC":{"unified":"1F469-1F3FC-200D-2764-FE0F-200D-1F468-1F3FC","non_qualified":"1F469-1F3FC-200D-2764-200D-1F468-1F3FC","image":"1f469-1f3fc-200d-2764-fe0f-200d-1f468-1f3fc.png","sheet_x":19,"sheet_y":59,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FD":{"unified":"1F469-1F3FC-200D-2764-FE0F-200D-1F468-1F3FD","non_qualified":"1F469-1F3FC-200D-2764-200D-1F468-1F3FD","image":"1f469-1f3fc-200d-2764-fe0f-200d-1f468-1f3fd.png","sheet_x":19,"sheet_y":60,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FE":{"unified":"1F469-1F3FC-200D-2764-FE0F-200D-1F468-1F3FE","non_qualified":"1F469-1F3FC-200D-2764-200D-1F468-1F3FE","image":"1f469-1f3fc-200d-2764-fe0f-200d-1f468-1f3fe.png","sheet_x":20,"sheet_y":0,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FF":{"unified":"1F469-1F3FC-200D-2764-FE0F-200D-1F468-1F3FF","non_qualified":"1F469-1F3FC-200D-2764-200D-1F468-1F3FF","image":"1f469-1f3fc-200d-2764-fe0f-200d-1f468-1f3ff.png","sheet_x":20,"sheet_y":1,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FB":{"unified":"1F469-1F3FD-200D-2764-FE0F-200D-1F468-1F3FB","non_qualified":"1F469-1F3FD-200D-2764-200D-1F468-1F3FB","image":"1f469-1f3fd-200d-2764-fe0f-200d-1f468-1f3fb.png","sheet_x":20,"sheet_y":2,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FC":{"unified":"1F469-1F3FD-200D-2764-FE0F-200D-1F468-1F3FC","non_qualified":"1F469-1F3FD-200D-2764-200D-1F468-1F3FC","image":"1f469-1f3fd-200d-2764-fe0f-200d-1f468-1f3fc.png","sheet_x":20,"sheet_y":3,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FD":{"unified":"1F469-1F3FD-200D-2764-FE0F-200D-1F468-1F3FD","non_qualified":"1F469-1F3FD-200D-2764-200D-1F468-1F3FD","image":"1f469-1f3fd-200d-2764-fe0f-200d-1f468-1f3fd.png","sheet_x":20,"sheet_y":4,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FE":{"unified":"1F469-1F3FD-200D-2764-FE0F-200D-1F468-1F3FE","non_qualified":"1F469-1F3FD-200D-2764-200D-1F468-1F3FE","image":"1f469-1f3fd-200d-2764-fe0f-200d-1f468-1f3fe.png","sheet_x":20,"sheet_y":5,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FF":{"unified":"1F469-1F3FD-200D-2764-FE0F-200D-1F468-1F3FF","non_qualified":"1F469-1F3FD-200D-2764-200D-1F468-1F3FF","image":"1f469-1f3fd-200d-2764-fe0f-200d-1f468-1f3ff.png","sheet_x":20,"sheet_y":6,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FB":{"unified":"1F469-1F3FE-200D-2764-FE0F-200D-1F468-1F3FB","non_qualified":"1F469-1F3FE-200D-2764-200D-1F468-1F3FB","image":"1f469-1f3fe-200d-2764-fe0f-200d-1f468-1f3fb.png","sheet_x":20,"sheet_y":7,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FC":{"unified":"1F469-1F3FE-200D-2764-FE0F-200D-1F468-1F3FC","non_qualified":"1F469-1F3FE-200D-2764-200D-1F468-1F3FC","image":"1f469-1f3fe-200d-2764-fe0f-200d-1f468-1f3fc.png","sheet_x":20,"sheet_y":8,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FD":{"unified":"1F469-1F3FE-200D-2764-FE0F-200D-1F468-1F3FD","non_qualified":"1F469-1F3FE-200D-2764-200D-1F468-1F3FD","image":"1f469-1f3fe-200d-2764-fe0f-200d-1f468-1f3fd.png","sheet_x":20,"sheet_y":9,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FE":{"unified":"1F469-1F3FE-200D-2764-FE0F-200D-1F468-1F3FE","non_qualified":"1F469-1F3FE-200D-2764-200D-1F468-1F3FE","image":"1f469-1f3fe-200d-2764-fe0f-200d-1f468-1f3fe.png","sheet_x":20,"sheet_y":10,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FF":{"unified":"1F469-1F3FE-200D-2764-FE0F-200D-1F468-1F3FF","non_qualified":"1F469-1F3FE-200D-2764-200D-1F468-1F3FF","image":"1f469-1f3fe-200d-2764-fe0f-200d-1f468-1f3ff.png","sheet_x":20,"sheet_y":11,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FB":{"unified":"1F469-1F3FF-200D-2764-FE0F-200D-1F468-1F3FB","non_qualified":"1F469-1F3FF-200D-2764-200D-1F468-1F3FB","image":"1f469-1f3ff-200d-2764-fe0f-200d-1f468-1f3fb.png","sheet_x":20,"sheet_y":12,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FC":{"unified":"1F469-1F3FF-200D-2764-FE0F-200D-1F468-1F3FC","non_qualified":"1F469-1F3FF-200D-2764-200D-1F468-1F3FC","image":"1f469-1f3ff-200d-2764-fe0f-200d-1f468-1f3fc.png","sheet_x":20,"sheet_y":13,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FD":{"unified":"1F469-1F3FF-200D-2764-FE0F-200D-1F468-1F3FD","non_qualified":"1F469-1F3FF-200D-2764-200D-1F468-1F3FD","image":"1f469-1f3ff-200d-2764-fe0f-200d-1f468-1f3fd.png","sheet_x":20,"sheet_y":14,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FE":{"unified":"1F469-1F3FF-200D-2764-FE0F-200D-1F468-1F3FE","non_qualified":"1F469-1F3FF-200D-2764-200D-1F468-1F3FE","image":"1f469-1f3ff-200d-2764-fe0f-200d-1f468-1f3fe.png","sheet_x":20,"sheet_y":15,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FF":{"unified":"1F469-1F3FF-200D-2764-FE0F-200D-1F468-1F3FF","non_qualified":"1F469-1F3FF-200D-2764-200D-1F468-1F3FF","image":"1f469-1f3ff-200d-2764-fe0f-200d-1f468-1f3ff.png","sheet_x":20,"sheet_y":16,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Couple with Heart: Woman, Man","b":"1F469-200D-2764-FE0F-200D-1F468","c":"1F469-200D-2764-200D-1F468","d":true,"e":true,"f":true,"h":true,"j":["couple_with_heart_woman_man","love"],"k":[19,52],"o":2},"man-heart-man":{"subcategory":"family","skin_variations":{"1F3FB-1F3FB":{"unified":"1F468-1F3FB-200D-2764-FE0F-200D-1F468-1F3FB","non_qualified":"1F468-1F3FB-200D-2764-200D-1F468-1F3FB","image":"1f468-1f3fb-200d-2764-fe0f-200d-1f468-1f3fb.png","sheet_x":16,"sheet_y":24,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FC":{"unified":"1F468-1F3FB-200D-2764-FE0F-200D-1F468-1F3FC","non_qualified":"1F468-1F3FB-200D-2764-200D-1F468-1F3FC","image":"1f468-1f3fb-200d-2764-fe0f-200d-1f468-1f3fc.png","sheet_x":16,"sheet_y":25,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FD":{"unified":"1F468-1F3FB-200D-2764-FE0F-200D-1F468-1F3FD","non_qualified":"1F468-1F3FB-200D-2764-200D-1F468-1F3FD","image":"1f468-1f3fb-200d-2764-fe0f-200d-1f468-1f3fd.png","sheet_x":16,"sheet_y":26,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FE":{"unified":"1F468-1F3FB-200D-2764-FE0F-200D-1F468-1F3FE","non_qualified":"1F468-1F3FB-200D-2764-200D-1F468-1F3FE","image":"1f468-1f3fb-200d-2764-fe0f-200d-1f468-1f3fe.png","sheet_x":16,"sheet_y":27,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FF":{"unified":"1F468-1F3FB-200D-2764-FE0F-200D-1F468-1F3FF","non_qualified":"1F468-1F3FB-200D-2764-200D-1F468-1F3FF","image":"1f468-1f3fb-200d-2764-fe0f-200d-1f468-1f3ff.png","sheet_x":16,"sheet_y":28,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FB":{"unified":"1F468-1F3FC-200D-2764-FE0F-200D-1F468-1F3FB","non_qualified":"1F468-1F3FC-200D-2764-200D-1F468-1F3FB","image":"1f468-1f3fc-200d-2764-fe0f-200d-1f468-1f3fb.png","sheet_x":16,"sheet_y":29,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FC":{"unified":"1F468-1F3FC-200D-2764-FE0F-200D-1F468-1F3FC","non_qualified":"1F468-1F3FC-200D-2764-200D-1F468-1F3FC","image":"1f468-1f3fc-200d-2764-fe0f-200d-1f468-1f3fc.png","sheet_x":16,"sheet_y":30,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FD":{"unified":"1F468-1F3FC-200D-2764-FE0F-200D-1F468-1F3FD","non_qualified":"1F468-1F3FC-200D-2764-200D-1F468-1F3FD","image":"1f468-1f3fc-200d-2764-fe0f-200d-1f468-1f3fd.png","sheet_x":16,"sheet_y":31,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FE":{"unified":"1F468-1F3FC-200D-2764-FE0F-200D-1F468-1F3FE","non_qualified":"1F468-1F3FC-200D-2764-200D-1F468-1F3FE","image":"1f468-1f3fc-200d-2764-fe0f-200d-1f468-1f3fe.png","sheet_x":16,"sheet_y":32,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FF":{"unified":"1F468-1F3FC-200D-2764-FE0F-200D-1F468-1F3FF","non_qualified":"1F468-1F3FC-200D-2764-200D-1F468-1F3FF","image":"1f468-1f3fc-200d-2764-fe0f-200d-1f468-1f3ff.png","sheet_x":16,"sheet_y":33,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FB":{"unified":"1F468-1F3FD-200D-2764-FE0F-200D-1F468-1F3FB","non_qualified":"1F468-1F3FD-200D-2764-200D-1F468-1F3FB","image":"1f468-1f3fd-200d-2764-fe0f-200d-1f468-1f3fb.png","sheet_x":16,"sheet_y":34,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FC":{"unified":"1F468-1F3FD-200D-2764-FE0F-200D-1F468-1F3FC","non_qualified":"1F468-1F3FD-200D-2764-200D-1F468-1F3FC","image":"1f468-1f3fd-200d-2764-fe0f-200d-1f468-1f3fc.png","sheet_x":16,"sheet_y":35,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FD":{"unified":"1F468-1F3FD-200D-2764-FE0F-200D-1F468-1F3FD","non_qualified":"1F468-1F3FD-200D-2764-200D-1F468-1F3FD","image":"1f468-1f3fd-200d-2764-fe0f-200d-1f468-1f3fd.png","sheet_x":16,"sheet_y":36,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FE":{"unified":"1F468-1F3FD-200D-2764-FE0F-200D-1F468-1F3FE","non_qualified":"1F468-1F3FD-200D-2764-200D-1F468-1F3FE","image":"1f468-1f3fd-200d-2764-fe0f-200d-1f468-1f3fe.png","sheet_x":16,"sheet_y":37,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FF":{"unified":"1F468-1F3FD-200D-2764-FE0F-200D-1F468-1F3FF","non_qualified":"1F468-1F3FD-200D-2764-200D-1F468-1F3FF","image":"1f468-1f3fd-200d-2764-fe0f-200d-1f468-1f3ff.png","sheet_x":16,"sheet_y":38,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FB":{"unified":"1F468-1F3FE-200D-2764-FE0F-200D-1F468-1F3FB","non_qualified":"1F468-1F3FE-200D-2764-200D-1F468-1F3FB","image":"1f468-1f3fe-200d-2764-fe0f-200d-1f468-1f3fb.png","sheet_x":16,"sheet_y":39,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FC":{"unified":"1F468-1F3FE-200D-2764-FE0F-200D-1F468-1F3FC","non_qualified":"1F468-1F3FE-200D-2764-200D-1F468-1F3FC","image":"1f468-1f3fe-200d-2764-fe0f-200d-1f468-1f3fc.png","sheet_x":16,"sheet_y":40,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FD":{"unified":"1F468-1F3FE-200D-2764-FE0F-200D-1F468-1F3FD","non_qualified":"1F468-1F3FE-200D-2764-200D-1F468-1F3FD","image":"1f468-1f3fe-200d-2764-fe0f-200d-1f468-1f3fd.png","sheet_x":16,"sheet_y":41,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FE":{"unified":"1F468-1F3FE-200D-2764-FE0F-200D-1F468-1F3FE","non_qualified":"1F468-1F3FE-200D-2764-200D-1F468-1F3FE","image":"1f468-1f3fe-200d-2764-fe0f-200d-1f468-1f3fe.png","sheet_x":16,"sheet_y":42,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FF":{"unified":"1F468-1F3FE-200D-2764-FE0F-200D-1F468-1F3FF","non_qualified":"1F468-1F3FE-200D-2764-200D-1F468-1F3FF","image":"1f468-1f3fe-200d-2764-fe0f-200d-1f468-1f3ff.png","sheet_x":16,"sheet_y":43,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FB":{"unified":"1F468-1F3FF-200D-2764-FE0F-200D-1F468-1F3FB","non_qualified":"1F468-1F3FF-200D-2764-200D-1F468-1F3FB","image":"1f468-1f3ff-200d-2764-fe0f-200d-1f468-1f3fb.png","sheet_x":16,"sheet_y":44,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FC":{"unified":"1F468-1F3FF-200D-2764-FE0F-200D-1F468-1F3FC","non_qualified":"1F468-1F3FF-200D-2764-200D-1F468-1F3FC","image":"1f468-1f3ff-200d-2764-fe0f-200d-1f468-1f3fc.png","sheet_x":16,"sheet_y":45,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FD":{"unified":"1F468-1F3FF-200D-2764-FE0F-200D-1F468-1F3FD","non_qualified":"1F468-1F3FF-200D-2764-200D-1F468-1F3FD","image":"1f468-1f3ff-200d-2764-fe0f-200d-1f468-1f3fd.png","sheet_x":16,"sheet_y":46,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FE":{"unified":"1F468-1F3FF-200D-2764-FE0F-200D-1F468-1F3FE","non_qualified":"1F468-1F3FF-200D-2764-200D-1F468-1F3FE","image":"1f468-1f3ff-200d-2764-fe0f-200d-1f468-1f3fe.png","sheet_x":16,"sheet_y":47,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FF":{"unified":"1F468-1F3FF-200D-2764-FE0F-200D-1F468-1F3FF","non_qualified":"1F468-1F3FF-200D-2764-200D-1F468-1F3FF","image":"1f468-1f3ff-200d-2764-fe0f-200d-1f468-1f3ff.png","sheet_x":16,"sheet_y":48,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Couple with Heart: Man, Man","b":"1F468-200D-2764-FE0F-200D-1F468","c":"1F468-200D-2764-200D-1F468","d":true,"e":true,"f":true,"h":true,"j":["couple_with_heart_man_man","pair","love","like","affection","human","dating","valentines","marriage"],"k":[16,23],"o":2},"woman-heart-woman":{"subcategory":"family","skin_variations":{"1F3FB-1F3FB":{"unified":"1F469-1F3FB-200D-2764-FE0F-200D-1F469-1F3FB","non_qualified":"1F469-1F3FB-200D-2764-200D-1F469-1F3FB","image":"1f469-1f3fb-200d-2764-fe0f-200d-1f469-1f3fb.png","sheet_x":20,"sheet_y":18,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FC":{"unified":"1F469-1F3FB-200D-2764-FE0F-200D-1F469-1F3FC","non_qualified":"1F469-1F3FB-200D-2764-200D-1F469-1F3FC","image":"1f469-1f3fb-200d-2764-fe0f-200d-1f469-1f3fc.png","sheet_x":20,"sheet_y":19,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FD":{"unified":"1F469-1F3FB-200D-2764-FE0F-200D-1F469-1F3FD","non_qualified":"1F469-1F3FB-200D-2764-200D-1F469-1F3FD","image":"1f469-1f3fb-200d-2764-fe0f-200d-1f469-1f3fd.png","sheet_x":20,"sheet_y":20,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FE":{"unified":"1F469-1F3FB-200D-2764-FE0F-200D-1F469-1F3FE","non_qualified":"1F469-1F3FB-200D-2764-200D-1F469-1F3FE","image":"1f469-1f3fb-200d-2764-fe0f-200d-1f469-1f3fe.png","sheet_x":20,"sheet_y":21,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FB-1F3FF":{"unified":"1F469-1F3FB-200D-2764-FE0F-200D-1F469-1F3FF","non_qualified":"1F469-1F3FB-200D-2764-200D-1F469-1F3FF","image":"1f469-1f3fb-200d-2764-fe0f-200d-1f469-1f3ff.png","sheet_x":20,"sheet_y":22,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FB":{"unified":"1F469-1F3FC-200D-2764-FE0F-200D-1F469-1F3FB","non_qualified":"1F469-1F3FC-200D-2764-200D-1F469-1F3FB","image":"1f469-1f3fc-200d-2764-fe0f-200d-1f469-1f3fb.png","sheet_x":20,"sheet_y":23,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FC":{"unified":"1F469-1F3FC-200D-2764-FE0F-200D-1F469-1F3FC","non_qualified":"1F469-1F3FC-200D-2764-200D-1F469-1F3FC","image":"1f469-1f3fc-200d-2764-fe0f-200d-1f469-1f3fc.png","sheet_x":20,"sheet_y":24,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FD":{"unified":"1F469-1F3FC-200D-2764-FE0F-200D-1F469-1F3FD","non_qualified":"1F469-1F3FC-200D-2764-200D-1F469-1F3FD","image":"1f469-1f3fc-200d-2764-fe0f-200d-1f469-1f3fd.png","sheet_x":20,"sheet_y":25,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FE":{"unified":"1F469-1F3FC-200D-2764-FE0F-200D-1F469-1F3FE","non_qualified":"1F469-1F3FC-200D-2764-200D-1F469-1F3FE","image":"1f469-1f3fc-200d-2764-fe0f-200d-1f469-1f3fe.png","sheet_x":20,"sheet_y":26,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FC-1F3FF":{"unified":"1F469-1F3FC-200D-2764-FE0F-200D-1F469-1F3FF","non_qualified":"1F469-1F3FC-200D-2764-200D-1F469-1F3FF","image":"1f469-1f3fc-200d-2764-fe0f-200d-1f469-1f3ff.png","sheet_x":20,"sheet_y":27,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FB":{"unified":"1F469-1F3FD-200D-2764-FE0F-200D-1F469-1F3FB","non_qualified":"1F469-1F3FD-200D-2764-200D-1F469-1F3FB","image":"1f469-1f3fd-200d-2764-fe0f-200d-1f469-1f3fb.png","sheet_x":20,"sheet_y":28,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FC":{"unified":"1F469-1F3FD-200D-2764-FE0F-200D-1F469-1F3FC","non_qualified":"1F469-1F3FD-200D-2764-200D-1F469-1F3FC","image":"1f469-1f3fd-200d-2764-fe0f-200d-1f469-1f3fc.png","sheet_x":20,"sheet_y":29,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FD":{"unified":"1F469-1F3FD-200D-2764-FE0F-200D-1F469-1F3FD","non_qualified":"1F469-1F3FD-200D-2764-200D-1F469-1F3FD","image":"1f469-1f3fd-200d-2764-fe0f-200d-1f469-1f3fd.png","sheet_x":20,"sheet_y":30,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FE":{"unified":"1F469-1F3FD-200D-2764-FE0F-200D-1F469-1F3FE","non_qualified":"1F469-1F3FD-200D-2764-200D-1F469-1F3FE","image":"1f469-1f3fd-200d-2764-fe0f-200d-1f469-1f3fe.png","sheet_x":20,"sheet_y":31,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FD-1F3FF":{"unified":"1F469-1F3FD-200D-2764-FE0F-200D-1F469-1F3FF","non_qualified":"1F469-1F3FD-200D-2764-200D-1F469-1F3FF","image":"1f469-1f3fd-200d-2764-fe0f-200d-1f469-1f3ff.png","sheet_x":20,"sheet_y":32,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FB":{"unified":"1F469-1F3FE-200D-2764-FE0F-200D-1F469-1F3FB","non_qualified":"1F469-1F3FE-200D-2764-200D-1F469-1F3FB","image":"1f469-1f3fe-200d-2764-fe0f-200d-1f469-1f3fb.png","sheet_x":20,"sheet_y":33,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FC":{"unified":"1F469-1F3FE-200D-2764-FE0F-200D-1F469-1F3FC","non_qualified":"1F469-1F3FE-200D-2764-200D-1F469-1F3FC","image":"1f469-1f3fe-200d-2764-fe0f-200d-1f469-1f3fc.png","sheet_x":20,"sheet_y":34,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FD":{"unified":"1F469-1F3FE-200D-2764-FE0F-200D-1F469-1F3FD","non_qualified":"1F469-1F3FE-200D-2764-200D-1F469-1F3FD","image":"1f469-1f3fe-200d-2764-fe0f-200d-1f469-1f3fd.png","sheet_x":20,"sheet_y":35,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FE":{"unified":"1F469-1F3FE-200D-2764-FE0F-200D-1F469-1F3FE","non_qualified":"1F469-1F3FE-200D-2764-200D-1F469-1F3FE","image":"1f469-1f3fe-200d-2764-fe0f-200d-1f469-1f3fe.png","sheet_x":20,"sheet_y":36,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FE-1F3FF":{"unified":"1F469-1F3FE-200D-2764-FE0F-200D-1F469-1F3FF","non_qualified":"1F469-1F3FE-200D-2764-200D-1F469-1F3FF","image":"1f469-1f3fe-200d-2764-fe0f-200d-1f469-1f3ff.png","sheet_x":20,"sheet_y":37,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FB":{"unified":"1F469-1F3FF-200D-2764-FE0F-200D-1F469-1F3FB","non_qualified":"1F469-1F3FF-200D-2764-200D-1F469-1F3FB","image":"1f469-1f3ff-200d-2764-fe0f-200d-1f469-1f3fb.png","sheet_x":20,"sheet_y":38,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FC":{"unified":"1F469-1F3FF-200D-2764-FE0F-200D-1F469-1F3FC","non_qualified":"1F469-1F3FF-200D-2764-200D-1F469-1F3FC","image":"1f469-1f3ff-200d-2764-fe0f-200d-1f469-1f3fc.png","sheet_x":20,"sheet_y":39,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FD":{"unified":"1F469-1F3FF-200D-2764-FE0F-200D-1F469-1F3FD","non_qualified":"1F469-1F3FF-200D-2764-200D-1F469-1F3FD","image":"1f469-1f3ff-200d-2764-fe0f-200d-1f469-1f3fd.png","sheet_x":20,"sheet_y":40,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FE":{"unified":"1F469-1F3FF-200D-2764-FE0F-200D-1F469-1F3FE","non_qualified":"1F469-1F3FF-200D-2764-200D-1F469-1F3FE","image":"1f469-1f3ff-200d-2764-fe0f-200d-1f469-1f3fe.png","sheet_x":20,"sheet_y":41,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true},"1F3FF-1F3FF":{"unified":"1F469-1F3FF-200D-2764-FE0F-200D-1F469-1F3FF","non_qualified":"1F469-1F3FF-200D-2764-200D-1F469-1F3FF","image":"1f469-1f3ff-200d-2764-fe0f-200d-1f469-1f3ff.png","sheet_x":20,"sheet_y":42,"added_in":"13.1","has_img_apple":true,"has_img_google":true,"has_img_twitter":true,"has_img_facebook":true}},"a":"Couple with Heart: Woman, Woman","b":"1F469-200D-2764-FE0F-200D-1F469","c":"1F469-200D-2764-200D-1F469","d":true,"e":true,"f":true,"h":true,"j":["couple_with_heart_woman_woman","pair","love","like","affection","human","dating","valentines","marriage"],"k":[20,17],"o":2},"family":{"subcategory":"family","obsoleted_by":"1F468-200D-1F469-200D-1F466","a":"Family","b":"1F46A","d":true,"e":true,"f":true,"h":true,"j":["family","home","parents","child","mom","dad","father","mother","people","human"],"k":[21,40],"o":0},"man-woman-boy":{"subcategory":"family","obsoletes":"1F46A","a":"Family: Man, Woman, Boy","b":"1F468-200D-1F469-200D-1F466","d":true,"e":true,"f":true,"h":true,"j":["family_man_woman_boy","love"],"k":[14,44],"o":2},"man-woman-girl":{"subcategory":"family","a":"Family: Man, Woman, Girl","b":"1F468-200D-1F469-200D-1F467","d":true,"e":true,"f":true,"h":true,"j":["family_man_woman_girl","home","parents","people","human","child"],"k":[14,46],"o":2},"man-woman-girl-boy":{"subcategory":"family","a":"Family: Man, Woman, Girl, Boy","b":"1F468-200D-1F469-200D-1F467-200D-1F466","d":true,"e":true,"f":true,"h":true,"j":["family_man_woman_girl_boy","home","parents","people","human","children"],"k":[14,47],"o":2},"man-woman-boy-boy":{"subcategory":"family","a":"Family: Man, Woman, Boy, Boy","b":"1F468-200D-1F469-200D-1F466-200D-1F466","d":true,"e":true,"f":true,"h":true,"j":["family_man_woman_boy_boy","home","parents","people","human","children"],"k":[14,45],"o":2},"man-woman-girl-girl":{"subcategory":"family","a":"Family: Man, Woman, Girl, Girl","b":"1F468-200D-1F469-200D-1F467-200D-1F467","d":true,"e":true,"f":true,"h":true,"j":["family_man_woman_girl_girl","home","parents","people","human","children"],"k":[14,48],"o":2},"man-man-boy":{"subcategory":"family","a":"Family: Man, Man, Boy","b":"1F468-200D-1F468-200D-1F466","d":true,"e":true,"f":true,"h":true,"j":["family_man_man_boy","home","parents","people","human","children"],"k":[14,39],"o":2},"man-man-girl":{"subcategory":"family","a":"Family: Man, Man, Girl","b":"1F468-200D-1F468-200D-1F467","d":true,"e":true,"f":true,"h":true,"j":["family_man_man_girl","home","parents","people","human","children"],"k":[14,41],"o":2},"man-man-girl-boy":{"subcategory":"family","a":"Family: Man, Man, Girl, Boy","b":"1F468-200D-1F468-200D-1F467-200D-1F466","d":true,"e":true,"f":true,"h":true,"j":["family_man_man_girl_boy","home","parents","people","human","children"],"k":[14,42],"o":2},"man-man-boy-boy":{"subcategory":"family","a":"Family: Man, Man, Boy, Boy","b":"1F468-200D-1F468-200D-1F466-200D-1F466","d":true,"e":true,"f":true,"h":true,"j":["family_man_man_boy_boy","home","parents","people","human","children"],"k":[14,40],"o":2},"man-man-girl-girl":{"subcategory":"family","a":"Family: Man, Man, Girl, Girl","b":"1F468-200D-1F468-200D-1F467-200D-1F467","d":true,"e":true,"f":true,"h":true,"j":["family_man_man_girl_girl","home","parents","people","human","children"],"k":[14,43],"o":2},"woman-woman-boy":{"subcategory":"family","a":"Family: Woman, Woman, Boy","b":"1F469-200D-1F469-200D-1F466","d":true,"e":true,"f":true,"h":true,"j":["family_woman_woman_boy","home","parents","people","human","children"],"k":[18,12],"o":2},"woman-woman-girl":{"subcategory":"family","a":"Family: Woman, Woman, Girl","b":"1F469-200D-1F469-200D-1F467","d":true,"e":true,"f":true,"h":true,"j":["family_woman_woman_girl","home","parents","people","human","children"],"k":[18,14],"o":2},"woman-woman-girl-boy":{"subcategory":"family","a":"Family: Woman, Woman, Girl, Boy","b":"1F469-200D-1F469-200D-1F467-200D-1F466","d":true,"e":true,"f":true,"h":true,"j":["family_woman_woman_girl_boy","home","parents","people","human","children"],"k":[18,15],"o":2},"woman-woman-boy-boy":{"subcategory":"family","a":"Family: Woman, Woman, Boy, Boy","b":"1F469-200D-1F469-200D-1F466-200D-1F466","d":true,"e":true,"f":true,"h":true,"j":["family_woman_woman_boy_boy","home","parents","people","human","children"],"k":[18,13],"o":2},"woman-woman-girl-girl":{"subcategory":"family","a":"Family: Woman, Woman, Girl, Girl","b":"1F469-200D-1F469-200D-1F467-200D-1F467","d":true,"e":true,"f":true,"h":true,"j":["family_woman_woman_girl_girl","home","parents","people","human","children"],"k":[18,16],"o":2},"man-boy":{"subcategory":"family","a":"Family: Man, Boy","b":"1F468-200D-1F466","d":true,"e":true,"f":true,"h":true,"j":["family_man_boy","home","parent","people","human","child"],"k":[14,35],"o":4},"man-boy-boy":{"subcategory":"family","a":"Family: Man, Boy, Boy","b":"1F468-200D-1F466-200D-1F466","d":true,"e":true,"f":true,"h":true,"j":["family_man_boy_boy","home","parent","people","human","children"],"k":[14,34],"o":4},"man-girl":{"subcategory":"family","a":"Family: Man, Girl","b":"1F468-200D-1F467","d":true,"e":true,"f":true,"h":true,"j":["family_man_girl","home","parent","people","human","child"],"k":[14,38],"o":4},"man-girl-boy":{"subcategory":"family","a":"Family: Man, Girl, Boy","b":"1F468-200D-1F467-200D-1F466","d":true,"e":true,"f":true,"h":true,"j":["family_man_girl_boy","home","parent","people","human","children"],"k":[14,36],"o":4},"man-girl-girl":{"subcategory":"family","a":"Family: Man, Girl, Girl","b":"1F468-200D-1F467-200D-1F467","d":true,"e":true,"f":true,"h":true,"j":["family_man_girl_girl","home","parent","people","human","children"],"k":[14,37],"o":4},"woman-boy":{"subcategory":"family","a":"Family: Woman, Boy","b":"1F469-200D-1F466","d":true,"e":true,"f":true,"h":true,"j":["family_woman_boy","home","parent","people","human","child"],"k":[18,8],"o":4},"woman-boy-boy":{"subcategory":"family","a":"Family: Woman, Boy, Boy","b":"1F469-200D-1F466-200D-1F466","d":true,"e":true,"f":true,"h":true,"j":["family_woman_boy_boy","home","parent","people","human","children"],"k":[18,7],"o":4},"woman-girl":{"subcategory":"family","a":"Family: Woman, Girl","b":"1F469-200D-1F467","d":true,"e":true,"f":true,"h":true,"j":["family_woman_girl","home","parent","people","human","child"],"k":[18,11],"o":4},"woman-girl-boy":{"subcategory":"family","a":"Family: Woman, Girl, Boy","b":"1F469-200D-1F467-200D-1F466","d":true,"e":true,"f":true,"h":true,"j":["family_woman_girl_boy","home","parent","people","human","children"],"k":[18,9],"o":4},"woman-girl-girl":{"subcategory":"family","a":"Family: Woman, Girl, Girl","b":"1F469-200D-1F467-200D-1F467","d":true,"e":true,"f":true,"h":true,"j":["family_woman_girl_girl","home","parent","people","human","children"],"k":[18,10],"o":4},"speaking_head_in_silhouette":{"subcategory":"person-symbol","a":"Speaking Head","b":"1F5E3-FE0F","c":"1F5E3","d":true,"e":true,"f":true,"h":true,"j":["speaking_head","user","person","human","sing","say","talk"],"k":[32,11],"o":0},"bust_in_silhouette":{"subcategory":"person-symbol","a":"Bust in Silhouette","b":"1F464","d":true,"e":true,"f":true,"h":true,"j":["bust_in_silhouette","user","person","human"],"k":[13,33],"o":0},"busts_in_silhouette":{"subcategory":"person-symbol","a":"Busts in Silhouette","b":"1F465","d":true,"e":true,"f":true,"h":true,"j":["busts_in_silhouette","user","person","human","group","team"],"k":[13,34],"o":1},"people_hugging":{"subcategory":"person-symbol","a":"People Hugging","b":"1FAC2","d":true,"e":true,"f":true,"h":true,"j":["people hugging","care"],"k":[54,58],"o":13},"footprints":{"subcategory":"person-symbol","a":"Footprints","b":"1F463","d":true,"e":true,"f":true,"h":true,"j":["footprints","feet","tracking","walking","beach"],"k":[13,32],"o":0},"monkey_face":{"subcategory":"animal-mammal","a":"Monkey Face","b":"1F435","d":true,"e":true,"f":true,"h":true,"j":["monkey_face","animal","nature","circus"],"k":[11,41],"l":[":o)"],"o":0},"monkey":{"subcategory":"animal-mammal","a":"Monkey","b":"1F412","d":true,"e":true,"f":true,"h":true,"j":["monkey","animal","nature","banana","circus"],"k":[11,4],"o":0},"gorilla":{"subcategory":"animal-mammal","a":"Gorilla","b":"1F98D","d":true,"e":true,"f":true,"h":true,"j":["gorilla","animal","nature","circus"],"k":[44,33],"o":3},"orangutan":{"subcategory":"animal-mammal","a":"Orangutan","b":"1F9A7","d":true,"e":true,"f":true,"h":true,"j":["orangutan","animal"],"k":[44,59],"o":12},"dog":{"subcategory":"animal-mammal","a":"Dog Face","b":"1F436","d":true,"e":true,"f":true,"h":true,"j":["dog_face","animal","friend","nature","woof","puppy","pet","faithful"],"k":[11,42],"o":0},"dog2":{"subcategory":"animal-mammal","a":"Dog","b":"1F415","d":true,"e":true,"f":true,"h":true,"j":["dog","animal","nature","friend","doge","pet","faithful"],"k":[11,8],"o":0},"guide_dog":{"subcategory":"animal-mammal","a":"Guide Dog","b":"1F9AE","d":true,"e":true,"f":true,"h":true,"j":["guide_dog","animal","blind"],"k":[45,5],"o":12},"service_dog":{"subcategory":"animal-mammal","a":"Service Dog","b":"1F415-200D-1F9BA","d":true,"e":true,"f":true,"h":true,"j":["service_dog","blind","animal"],"k":[11,7],"o":12},"poodle":{"subcategory":"animal-mammal","a":"Poodle","b":"1F429","d":true,"e":true,"f":true,"h":true,"j":["poodle","dog","animal","101","nature","pet"],"k":[11,29],"o":0},"wolf":{"subcategory":"animal-mammal","a":"Wolf Face","b":"1F43A","d":true,"e":true,"f":true,"h":true,"j":["wolf","animal","nature","wild"],"k":[11,46],"o":0},"fox_face":{"subcategory":"animal-mammal","a":"Fox Face","b":"1F98A","d":true,"e":true,"f":true,"h":true,"j":["fox","animal","nature","face"],"k":[44,30],"o":3},"raccoon":{"subcategory":"animal-mammal","a":"Raccoon","b":"1F99D","d":true,"e":true,"f":true,"h":true,"j":["raccoon","animal","nature"],"k":[44,49],"o":11},"cat":{"subcategory":"animal-mammal","a":"Cat Face","b":"1F431","d":true,"e":true,"f":true,"h":true,"j":["cat_face","animal","meow","nature","pet","kitten"],"k":[11,37],"o":0},"cat2":{"subcategory":"animal-mammal","a":"Cat","b":"1F408","d":true,"e":true,"f":true,"h":true,"j":["cat","animal","meow","pet","cats"],"k":[10,55],"o":0},"black_cat":{"subcategory":"animal-mammal","a":"Black Cat","b":"1F408-200D-2B1B","d":true,"e":true,"f":true,"h":true,"j":["black cat","superstition","luck"],"k":[10,54],"o":13},"lion_face":{"subcategory":"animal-mammal","a":"Lion Face","b":"1F981","d":true,"e":true,"f":true,"h":true,"j":["lion","animal","nature"],"k":[44,21],"o":1},"tiger":{"subcategory":"animal-mammal","a":"Tiger Face","b":"1F42F","d":true,"e":true,"f":true,"h":true,"j":["tiger_face","animal","cat","danger","wild","nature","roar"],"k":[11,35],"o":0},"tiger2":{"subcategory":"animal-mammal","a":"Tiger","b":"1F405","d":true,"e":true,"f":true,"h":true,"j":["tiger","animal","nature","roar"],"k":[10,51],"o":1},"leopard":{"subcategory":"animal-mammal","a":"Leopard","b":"1F406","d":true,"e":true,"f":true,"h":true,"j":["leopard","animal","nature"],"k":[10,52],"o":1},"horse":{"subcategory":"animal-mammal","a":"Horse Face","b":"1F434","d":true,"e":true,"f":true,"h":true,"j":["horse_face","animal","brown","nature"],"k":[11,40],"o":0},"moose":{"subcategory":"animal-mammal","a":"Moose","b":"1FACE","d":true,"e":true,"f":false,"h":false,"j":["moose","shrek","canada","sweden","sven","cool"],"k":[55,16],"o":15},"donkey":{"subcategory":"animal-mammal","a":"Donkey","b":"1FACF","d":true,"e":true,"f":false,"h":false,"j":["donkey","eeyore","mule"],"k":[55,17],"o":15},"racehorse":{"subcategory":"animal-mammal","a":"Horse","b":"1F40E","d":true,"e":true,"f":true,"h":true,"j":["horse","animal","gamble","luck"],"k":[11,0],"o":0},"unicorn_face":{"subcategory":"animal-mammal","a":"Unicorn Face","b":"1F984","d":true,"e":true,"f":true,"h":true,"j":["unicorn","animal","nature","mystical"],"k":[44,24],"o":1},"zebra_face":{"subcategory":"animal-mammal","a":"Zebra Face","b":"1F993","d":true,"e":true,"f":true,"h":true,"j":["zebra","animal","nature","stripes","safari"],"k":[44,39],"o":5},"deer":{"subcategory":"animal-mammal","a":"Deer","b":"1F98C","d":true,"e":true,"f":true,"h":true,"j":["deer","animal","nature","horns","venison"],"k":[44,32],"o":3},"bison":{"subcategory":"animal-mammal","a":"Bison","b":"1F9AC","d":true,"e":true,"f":true,"h":true,"j":["bison","ox"],"k":[45,3],"o":13},"cow":{"subcategory":"animal-mammal","a":"Cow Face","b":"1F42E","d":true,"e":true,"f":true,"h":true,"j":["cow_face","beef","ox","animal","nature","moo","milk"],"k":[11,34],"o":0},"ox":{"subcategory":"animal-mammal","a":"Ox","b":"1F402","d":true,"e":true,"f":true,"h":true,"j":["ox","animal","cow","beef"],"k":[10,48],"o":1},"water_buffalo":{"subcategory":"animal-mammal","a":"Water Buffalo","b":"1F403","d":true,"e":true,"f":true,"h":true,"j":["water_buffalo","animal","nature","ox","cow"],"k":[10,49],"o":1},"cow2":{"subcategory":"animal-mammal","a":"Cow","b":"1F404","d":true,"e":true,"f":true,"h":true,"j":["cow","beef","ox","animal","nature","moo","milk"],"k":[10,50],"o":1},"pig":{"subcategory":"animal-mammal","a":"Pig Face","b":"1F437","d":true,"e":true,"f":true,"h":true,"j":["pig_face","animal","oink","nature"],"k":[11,43],"o":0},"pig2":{"subcategory":"animal-mammal","a":"Pig","b":"1F416","d":true,"e":true,"f":true,"h":true,"j":["pig","animal","nature"],"k":[11,9],"o":1},"boar":{"subcategory":"animal-mammal","a":"Boar","b":"1F417","d":true,"e":true,"f":true,"h":true,"j":["boar","animal","nature"],"k":[11,10],"o":0},"pig_nose":{"subcategory":"animal-mammal","a":"Pig Nose","b":"1F43D","d":true,"e":true,"f":true,"h":true,"j":["pig_nose","animal","oink"],"k":[11,50],"o":0},"ram":{"subcategory":"animal-mammal","a":"Ram","b":"1F40F","d":true,"e":true,"f":true,"h":true,"j":["ram","animal","sheep","nature"],"k":[11,1],"o":1},"sheep":{"subcategory":"animal-mammal","a":"Sheep","b":"1F411","d":true,"e":true,"f":true,"h":true,"j":["ewe","animal","nature","wool","shipit"],"k":[11,3],"o":0},"goat":{"subcategory":"animal-mammal","a":"Goat","b":"1F410","d":true,"e":true,"f":true,"h":true,"j":["goat","animal","nature"],"k":[11,2],"o":1},"dromedary_camel":{"subcategory":"animal-mammal","a":"Dromedary Camel","b":"1F42A","d":true,"e":true,"f":true,"h":true,"j":["camel","animal","hot","desert","hump"],"k":[11,30],"o":1},"camel":{"subcategory":"animal-mammal","a":"Bactrian Camel","b":"1F42B","d":true,"e":true,"f":true,"h":true,"j":["two_hump_camel","animal","nature","hot","desert","hump"],"k":[11,31],"o":0},"llama":{"subcategory":"animal-mammal","a":"Llama","b":"1F999","d":true,"e":true,"f":true,"h":true,"j":["llama","animal","nature","alpaca"],"k":[44,45],"o":11},"giraffe_face":{"subcategory":"animal-mammal","a":"Giraffe Face","b":"1F992","d":true,"e":true,"f":true,"h":true,"j":["giraffe","animal","nature","spots","safari"],"k":[44,38],"o":5},"elephant":{"subcategory":"animal-mammal","a":"Elephant","b":"1F418","d":true,"e":true,"f":true,"h":true,"j":["elephant","animal","nature","nose","th","circus"],"k":[11,11],"o":0},"mammoth":{"subcategory":"animal-mammal","a":"Mammoth","b":"1F9A3","d":true,"e":true,"f":true,"h":true,"j":["mammoth","elephant","tusks"],"k":[44,55],"o":13},"rhinoceros":{"subcategory":"animal-mammal","a":"Rhinoceros","b":"1F98F","d":true,"e":true,"f":true,"h":true,"j":["rhinoceros","animal","nature","horn"],"k":[44,35],"o":3},"hippopotamus":{"subcategory":"animal-mammal","a":"Hippopotamus","b":"1F99B","d":true,"e":true,"f":true,"h":true,"j":["hippopotamus","animal","nature"],"k":[44,47],"o":11},"mouse":{"subcategory":"animal-mammal","a":"Mouse Face","b":"1F42D","d":true,"e":true,"f":true,"h":true,"j":["mouse_face","animal","nature","cheese_wedge","rodent"],"k":[11,33],"o":0},"mouse2":{"subcategory":"animal-mammal","a":"Mouse","b":"1F401","d":true,"e":true,"f":true,"h":true,"j":["mouse","animal","nature","rodent"],"k":[10,47],"o":1},"rat":{"subcategory":"animal-mammal","a":"Rat","b":"1F400","d":true,"e":true,"f":true,"h":true,"j":["rat","animal","mouse","rodent"],"k":[10,46],"o":1},"hamster":{"subcategory":"animal-mammal","a":"Hamster Face","b":"1F439","d":true,"e":true,"f":true,"h":true,"j":["hamster","animal","nature"],"k":[11,45],"o":0},"rabbit":{"subcategory":"animal-mammal","a":"Rabbit Face","b":"1F430","d":true,"e":true,"f":true,"h":true,"j":["rabbit_face","animal","nature","pet","spring","magic","bunny"],"k":[11,36],"o":0},"rabbit2":{"subcategory":"animal-mammal","a":"Rabbit","b":"1F407","d":true,"e":true,"f":true,"h":true,"j":["rabbit","animal","nature","pet","magic","spring"],"k":[10,53],"o":1},"chipmunk":{"subcategory":"animal-mammal","a":"Chipmunk","b":"1F43F-FE0F","c":"1F43F","d":true,"e":true,"f":true,"h":true,"j":["chipmunk","animal","nature","rodent","squirrel"],"k":[11,52],"o":0},"beaver":{"subcategory":"animal-mammal","a":"Beaver","b":"1F9AB","d":true,"e":true,"f":true,"h":true,"j":["beaver","animal","rodent"],"k":[45,2],"o":13},"hedgehog":{"subcategory":"animal-mammal","a":"Hedgehog","b":"1F994","d":true,"e":true,"f":true,"h":true,"j":["hedgehog","animal","nature","spiny"],"k":[44,40],"o":5},"bat":{"subcategory":"animal-mammal","a":"Bat","b":"1F987","d":true,"e":true,"f":true,"h":true,"j":["bat","animal","nature","blind","vampire"],"k":[44,27],"o":3},"bear":{"subcategory":"animal-mammal","a":"Bear Face","b":"1F43B","d":true,"e":true,"f":true,"h":true,"j":["bear","animal","nature","wild"],"k":[11,48],"o":0},"polar_bear":{"subcategory":"animal-mammal","a":"Polar Bear","b":"1F43B-200D-2744-FE0F","c":"1F43B-200D-2744","d":true,"e":true,"f":true,"h":true,"j":["polar bear","animal","arctic"],"k":[11,47],"o":13},"koala":{"subcategory":"animal-mammal","a":"Koala","b":"1F428","d":true,"e":true,"f":true,"h":true,"j":["koala","animal","nature"],"k":[11,28],"o":0},"panda_face":{"subcategory":"animal-mammal","a":"Panda Face","b":"1F43C","d":true,"e":true,"f":true,"h":true,"j":["panda","animal","nature"],"k":[11,49],"o":0},"sloth":{"subcategory":"animal-mammal","a":"Sloth","b":"1F9A5","d":true,"e":true,"f":true,"h":true,"j":["sloth","animal"],"k":[44,57],"o":12},"otter":{"subcategory":"animal-mammal","a":"Otter","b":"1F9A6","d":true,"e":true,"f":true,"h":true,"j":["otter","animal"],"k":[44,58],"o":12},"skunk":{"subcategory":"animal-mammal","a":"Skunk","b":"1F9A8","d":true,"e":true,"f":true,"h":true,"j":["skunk","animal"],"k":[44,60],"o":12},"kangaroo":{"subcategory":"animal-mammal","a":"Kangaroo","b":"1F998","d":true,"e":true,"f":true,"h":true,"j":["kangaroo","animal","nature","australia","joey","hop","marsupial"],"k":[44,44],"o":11},"badger":{"subcategory":"animal-mammal","a":"Badger","b":"1F9A1","d":true,"e":true,"f":true,"h":true,"j":["badger","animal","nature","honey"],"k":[44,53],"o":11},"feet":{"subcategory":"animal-mammal","a":"Paw Prints","b":"1F43E","d":true,"e":true,"f":true,"h":true,"j":["paw_prints","animal","tracking","footprints","dog","cat","pet","feet"],"k":[11,51],"n":["paw_prints"],"o":0},"turkey":{"subcategory":"animal-bird","a":"Turkey","b":"1F983","d":true,"e":true,"f":true,"h":true,"j":["turkey","animal","bird"],"k":[44,23],"o":1},"chicken":{"subcategory":"animal-bird","a":"Chicken","b":"1F414","d":true,"e":true,"f":true,"h":true,"j":["chicken","animal","cluck","nature","bird"],"k":[11,6],"o":0},"rooster":{"subcategory":"animal-bird","a":"Rooster","b":"1F413","d":true,"e":true,"f":true,"h":true,"j":["rooster","animal","nature","chicken"],"k":[11,5],"o":1},"hatching_chick":{"subcategory":"animal-bird","a":"Hatching Chick","b":"1F423","d":true,"e":true,"f":true,"h":true,"j":["hatching_chick","animal","chicken","egg","born","baby","bird"],"k":[11,22],"o":0},"baby_chick":{"subcategory":"animal-bird","a":"Baby Chick","b":"1F424","d":true,"e":true,"f":true,"h":true,"j":["baby_chick","animal","chicken","bird"],"k":[11,23],"o":0},"hatched_chick":{"subcategory":"animal-bird","a":"Front-Facing Baby Chick","b":"1F425","d":true,"e":true,"f":true,"h":true,"j":["front_facing_baby_chick","animal","chicken","baby","bird"],"k":[11,24],"o":0},"bird":{"subcategory":"animal-bird","a":"Bird","b":"1F426","d":true,"e":true,"f":true,"h":true,"j":["bird","animal","nature","fly","tweet","spring"],"k":[11,26],"o":0},"penguin":{"subcategory":"animal-bird","a":"Penguin","b":"1F427","d":true,"e":true,"f":true,"h":true,"j":["penguin","animal","nature"],"k":[11,27],"o":0},"dove_of_peace":{"subcategory":"animal-bird","a":"Dove","b":"1F54A-FE0F","c":"1F54A","d":true,"e":true,"f":true,"h":true,"j":["dove","animal","bird"],"k":[30,28],"o":0},"eagle":{"subcategory":"animal-bird","a":"Eagle","b":"1F985","d":true,"e":true,"f":true,"h":true,"j":["eagle","animal","nature","bird"],"k":[44,25],"o":3},"duck":{"subcategory":"animal-bird","a":"Duck","b":"1F986","d":true,"e":true,"f":true,"h":true,"j":["duck","animal","nature","bird","mallard"],"k":[44,26],"o":3},"swan":{"subcategory":"animal-bird","a":"Swan","b":"1F9A2","d":true,"e":true,"f":true,"h":true,"j":["swan","animal","nature","bird"],"k":[44,54],"o":11},"owl":{"subcategory":"animal-bird","a":"Owl","b":"1F989","d":true,"e":true,"f":true,"h":true,"j":["owl","animal","nature","bird","hoot"],"k":[44,29],"o":3},"dodo":{"subcategory":"animal-bird","a":"Dodo","b":"1F9A4","d":true,"e":true,"f":true,"h":true,"j":["dodo","animal","bird"],"k":[44,56],"o":13},"feather":{"subcategory":"animal-bird","a":"Feather","b":"1FAB6","d":true,"e":true,"f":true,"h":true,"j":["feather","bird","fly"],"k":[54,47],"o":13},"flamingo":{"subcategory":"animal-bird","a":"Flamingo","b":"1F9A9","d":true,"e":true,"f":true,"h":true,"j":["flamingo","animal"],"k":[45,0],"o":12},"peacock":{"subcategory":"animal-bird","a":"Peacock","b":"1F99A","d":true,"e":true,"f":true,"h":true,"j":["peacock","animal","nature","peahen","bird"],"k":[44,46],"o":11},"parrot":{"subcategory":"animal-bird","a":"Parrot","b":"1F99C","d":true,"e":true,"f":true,"h":true,"j":["parrot","animal","nature","bird","pirate","talk"],"k":[44,48],"o":11},"wing":{"subcategory":"animal-bird","a":"Wing","b":"1FABD","d":true,"e":true,"f":false,"h":false,"j":["wing","angel","birds","flying"],"k":[54,54],"o":15},"black_bird":{"subcategory":"animal-bird","a":"Black Bird","b":"1F426-200D-2B1B","d":true,"e":true,"f":false,"h":false,"j":["black bird","crow"],"k":[11,25],"o":15},"goose":{"subcategory":"animal-bird","a":"Goose","b":"1FABF","d":true,"e":true,"f":false,"h":false,"j":["goose","silly","jemima","goosebumps"],"k":[54,55],"o":15},"frog":{"subcategory":"animal-amphibian","a":"Frog Face","b":"1F438","d":true,"e":true,"f":true,"h":true,"j":["frog","animal","nature","croak","toad"],"k":[11,44],"o":0},"crocodile":{"subcategory":"animal-reptile","a":"Crocodile","b":"1F40A","d":true,"e":true,"f":true,"h":true,"j":["crocodile","animal","nature","reptile","lizard","alligator"],"k":[10,57],"o":1},"turtle":{"subcategory":"animal-reptile","a":"Turtle","b":"1F422","d":true,"e":true,"f":true,"h":true,"j":["turtle","animal","slow","nature","tortoise"],"k":[11,21],"o":0},"lizard":{"subcategory":"animal-reptile","a":"Lizard","b":"1F98E","d":true,"e":true,"f":true,"h":true,"j":["lizard","animal","nature","reptile"],"k":[44,34],"o":3},"snake":{"subcategory":"animal-reptile","a":"Snake","b":"1F40D","d":true,"e":true,"f":true,"h":true,"j":["snake","animal","evil","nature","hiss","python"],"k":[10,60],"o":0},"dragon_face":{"subcategory":"animal-reptile","a":"Dragon Face","b":"1F432","d":true,"e":true,"f":true,"h":true,"j":["dragon_face","animal","myth","nature","chinese","green"],"k":[11,38],"o":0},"dragon":{"subcategory":"animal-reptile","a":"Dragon","b":"1F409","d":true,"e":true,"f":true,"h":true,"j":["dragon","animal","myth","nature","chinese","green"],"k":[10,56],"o":1},"sauropod":{"subcategory":"animal-reptile","a":"Sauropod","b":"1F995","d":true,"e":true,"f":true,"h":true,"j":["sauropod","animal","nature","dinosaur","brachiosaurus","brontosaurus","diplodocus","extinct"],"k":[44,41],"o":5},"t-rex":{"subcategory":"animal-reptile","a":"T-Rex","b":"1F996","d":true,"e":true,"f":true,"h":true,"j":["t_rex","animal","nature","dinosaur","tyrannosaurus","extinct"],"k":[44,42],"o":5},"whale":{"subcategory":"animal-marine","a":"Spouting Whale","b":"1F433","d":true,"e":true,"f":true,"h":true,"j":["spouting_whale","animal","nature","sea","ocean"],"k":[11,39],"o":0},"whale2":{"subcategory":"animal-marine","a":"Whale","b":"1F40B","d":true,"e":true,"f":true,"h":true,"j":["whale","animal","nature","sea","ocean"],"k":[10,58],"o":1},"dolphin":{"subcategory":"animal-marine","a":"Dolphin","b":"1F42C","d":true,"e":true,"f":true,"h":true,"j":["dolphin","animal","nature","fish","sea","ocean","flipper","fins","beach"],"k":[11,32],"n":["flipper"],"o":0},"seal":{"subcategory":"animal-marine","a":"Seal","b":"1F9AD","d":true,"e":true,"f":true,"h":true,"j":["seal","animal","creature","sea"],"k":[45,4],"o":13},"fish":{"subcategory":"animal-marine","a":"Fish","b":"1F41F","d":true,"e":true,"f":true,"h":true,"j":["fish","animal","food","nature"],"k":[11,18],"o":0},"tropical_fish":{"subcategory":"animal-marine","a":"Tropical Fish","b":"1F420","d":true,"e":true,"f":true,"h":true,"j":["tropical_fish","animal","swim","ocean","beach","nemo"],"k":[11,19],"o":0},"blowfish":{"subcategory":"animal-marine","a":"Blowfish","b":"1F421","d":true,"e":true,"f":true,"h":true,"j":["blowfish","animal","nature","food","sea","ocean"],"k":[11,20],"o":0},"shark":{"subcategory":"animal-marine","a":"Shark","b":"1F988","d":true,"e":true,"f":true,"h":true,"j":["shark","animal","nature","fish","sea","ocean","jaws","fins","beach"],"k":[44,28],"o":3},"octopus":{"subcategory":"animal-marine","a":"Octopus","b":"1F419","d":true,"e":true,"f":true,"h":true,"j":["octopus","animal","creature","ocean","sea","nature","beach"],"k":[11,12],"o":0},"shell":{"subcategory":"animal-marine","a":"Spiral Shell","b":"1F41A","d":true,"e":true,"f":true,"h":true,"j":["spiral_shell","nature","sea","beach"],"k":[11,13],"o":0},"coral":{"subcategory":"animal-marine","a":"Coral","b":"1FAB8","d":true,"e":true,"f":true,"h":true,"j":["coral","ocean","sea","reef"],"k":[54,49],"o":14},"jellyfish":{"subcategory":"animal-marine","a":"Jellyfish","b":"1FABC","d":true,"e":true,"f":false,"h":false,"j":["jellyfish","sting","tentacles"],"k":[54,53],"o":15},"snail":{"subcategory":"animal-bug","a":"Snail","b":"1F40C","d":true,"e":true,"f":true,"h":true,"j":["snail","slow","animal","shell"],"k":[10,59],"o":0},"butterfly":{"subcategory":"animal-bug","a":"Butterfly","b":"1F98B","d":true,"e":true,"f":true,"h":true,"j":["butterfly","animal","insect","nature","caterpillar"],"k":[44,31],"o":3},"bug":{"subcategory":"animal-bug","a":"Bug","b":"1F41B","d":true,"e":true,"f":true,"h":true,"j":["bug","animal","insect","nature","worm"],"k":[11,14],"o":0},"ant":{"subcategory":"animal-bug","a":"Ant","b":"1F41C","d":true,"e":true,"f":true,"h":true,"j":["ant","animal","insect","nature","bug"],"k":[11,15],"o":0},"bee":{"subcategory":"animal-bug","a":"Honeybee","b":"1F41D","d":true,"e":true,"f":true,"h":true,"j":["honeybee","animal","insect","nature","bug","spring","honey"],"k":[11,16],"n":["honeybee"],"o":0},"beetle":{"subcategory":"animal-bug","a":"Beetle","b":"1FAB2","d":true,"e":true,"f":true,"h":true,"j":["beetle","insect"],"k":[54,43],"o":13},"ladybug":{"subcategory":"animal-bug","a":"Lady Beetle","b":"1F41E","d":true,"e":true,"f":true,"h":true,"j":["lady_beetle","animal","insect","nature","ladybug"],"k":[11,17],"n":["lady_beetle"],"o":0},"cricket":{"subcategory":"animal-bug","a":"Cricket","b":"1F997","d":true,"e":true,"f":true,"h":true,"j":["cricket","animal","chirp"],"k":[44,43],"o":5},"cockroach":{"subcategory":"animal-bug","a":"Cockroach","b":"1FAB3","d":true,"e":true,"f":true,"h":true,"j":["cockroach","insect","pests"],"k":[54,44],"o":13},"spider":{"subcategory":"animal-bug","a":"Spider","b":"1F577-FE0F","c":"1F577","d":true,"e":true,"f":true,"h":true,"j":["spider","animal","arachnid"],"k":[31,24],"o":0},"spider_web":{"subcategory":"animal-bug","a":"Spider Web","b":"1F578-FE0F","c":"1F578","d":true,"e":true,"f":true,"h":true,"j":["spider_web","animal","insect","arachnid","silk"],"k":[31,25],"o":0},"scorpion":{"subcategory":"animal-bug","a":"Scorpion","b":"1F982","d":true,"e":true,"f":true,"h":true,"j":["scorpion","animal","arachnid"],"k":[44,22],"o":1},"mosquito":{"subcategory":"animal-bug","a":"Mosquito","b":"1F99F","d":true,"e":true,"f":true,"h":true,"j":["mosquito","animal","nature","insect","malaria"],"k":[44,51],"o":11},"fly":{"subcategory":"animal-bug","a":"Fly","b":"1FAB0","d":true,"e":true,"f":true,"h":true,"j":["fly","insect"],"k":[54,41],"o":13},"worm":{"subcategory":"animal-bug","a":"Worm","b":"1FAB1","d":true,"e":true,"f":true,"h":true,"j":["worm","animal"],"k":[54,42],"o":13},"microbe":{"subcategory":"animal-bug","a":"Microbe","b":"1F9A0","d":true,"e":true,"f":true,"h":true,"j":["microbe","amoeba","bacteria","germs","virus","covid"],"k":[44,52],"o":11},"bouquet":{"subcategory":"plant-flower","a":"Bouquet","b":"1F490","d":true,"e":true,"f":true,"h":true,"j":["bouquet","flowers","nature","spring"],"k":[27,7],"o":0},"cherry_blossom":{"subcategory":"plant-flower","a":"Cherry Blossom","b":"1F338","d":true,"e":true,"f":true,"h":true,"j":["cherry_blossom","nature","plant","spring","flower"],"k":[5,53],"o":0},"white_flower":{"subcategory":"plant-flower","a":"White Flower","b":"1F4AE","d":true,"e":true,"f":true,"h":true,"j":["white_flower","japanese","spring"],"k":[28,6],"o":0},"lotus":{"subcategory":"plant-flower","a":"Lotus","b":"1FAB7","d":true,"e":true,"f":true,"h":true,"j":["lotus","flower","calm","meditation"],"k":[54,48],"o":14},"rosette":{"subcategory":"plant-flower","a":"Rosette","b":"1F3F5-FE0F","c":"1F3F5","d":true,"e":true,"f":true,"h":true,"j":["rosette","flower","decoration","military"],"k":[10,36],"o":0},"rose":{"subcategory":"plant-flower","a":"Rose","b":"1F339","d":true,"e":true,"f":true,"h":true,"j":["rose","flowers","valentines","love","spring"],"k":[5,54],"o":0},"wilted_flower":{"subcategory":"plant-flower","a":"Wilted Flower","b":"1F940","d":true,"e":true,"f":true,"h":true,"j":["wilted_flower","plant","nature","flower","rose"],"k":[43,13],"o":3},"hibiscus":{"subcategory":"plant-flower","a":"Hibiscus","b":"1F33A","d":true,"e":true,"f":true,"h":true,"j":["hibiscus","plant","vegetable","flowers","beach"],"k":[5,55],"o":0},"sunflower":{"subcategory":"plant-flower","a":"Sunflower","b":"1F33B","d":true,"e":true,"f":true,"h":true,"j":["sunflower","nature","plant","fall"],"k":[5,56],"o":0},"blossom":{"subcategory":"plant-flower","a":"Blossom","b":"1F33C","d":true,"e":true,"f":true,"h":true,"j":["blossom","nature","flowers","yellow"],"k":[5,57],"o":0},"tulip":{"subcategory":"plant-flower","a":"Tulip","b":"1F337","d":true,"e":true,"f":true,"h":true,"j":["tulip","flowers","plant","nature","summer","spring"],"k":[5,52],"o":0},"hyacinth":{"subcategory":"plant-flower","a":"Hyacinth","b":"1FABB","d":true,"e":true,"f":false,"h":false,"j":["hyacinth","flower","lavender"],"k":[54,52],"o":15},"seedling":{"subcategory":"plant-other","a":"Seedling","b":"1F331","d":true,"e":true,"f":true,"h":true,"j":["seedling","plant","nature","grass","lawn","spring"],"k":[5,46],"o":0},"potted_plant":{"subcategory":"plant-other","a":"Potted Plant","b":"1FAB4","d":true,"e":true,"f":true,"h":true,"j":["potted plant","greenery","house"],"k":[54,45],"o":13},"evergreen_tree":{"subcategory":"plant-other","a":"Evergreen Tree","b":"1F332","d":true,"e":true,"f":true,"h":true,"j":["evergreen_tree","plant","nature"],"k":[5,47],"o":1},"deciduous_tree":{"subcategory":"plant-other","a":"Deciduous Tree","b":"1F333","d":true,"e":true,"f":true,"h":true,"j":["deciduous_tree","plant","nature"],"k":[5,48],"o":1},"palm_tree":{"subcategory":"plant-other","a":"Palm Tree","b":"1F334","d":true,"e":true,"f":true,"h":true,"j":["palm_tree","plant","vegetable","nature","summer","beach","mojito","tropical"],"k":[5,49],"o":0},"cactus":{"subcategory":"plant-other","a":"Cactus","b":"1F335","d":true,"e":true,"f":true,"h":true,"j":["cactus","vegetable","plant","nature"],"k":[5,50],"o":0},"ear_of_rice":{"subcategory":"plant-other","a":"Ear of Rice","b":"1F33E","d":true,"e":true,"f":true,"h":true,"j":["sheaf_of_rice","nature","plant"],"k":[5,59],"o":0},"herb":{"subcategory":"plant-other","a":"Herb","b":"1F33F","d":true,"e":true,"f":true,"h":true,"j":["herb","vegetable","plant","medicine","weed","grass","lawn"],"k":[5,60],"o":0},"shamrock":{"subcategory":"plant-other","a":"Shamrock","b":"2618-FE0F","c":"2618","d":true,"e":true,"f":true,"h":true,"j":["shamrock","vegetable","plant","nature","irish","clover"],"k":[57,19],"o":1},"four_leaf_clover":{"subcategory":"plant-other","a":"Four Leaf Clover","b":"1F340","d":true,"e":true,"f":true,"h":true,"j":["four_leaf_clover","vegetable","plant","nature","lucky","irish"],"k":[6,0],"o":0},"maple_leaf":{"subcategory":"plant-other","a":"Maple Leaf","b":"1F341","d":true,"e":true,"f":true,"h":true,"j":["maple_leaf","nature","plant","vegetable","ca","fall"],"k":[6,1],"o":0},"fallen_leaf":{"subcategory":"plant-other","a":"Fallen Leaf","b":"1F342","d":true,"e":true,"f":true,"h":true,"j":["fallen_leaf","nature","plant","vegetable","leaves"],"k":[6,2],"o":0},"leaves":{"subcategory":"plant-other","a":"Leaf Fluttering in Wind","b":"1F343","d":true,"e":true,"f":true,"h":true,"j":["leaf_fluttering_in_wind","nature","plant","tree","vegetable","grass","lawn","spring"],"k":[6,3],"o":0},"empty_nest":{"subcategory":"plant-other","a":"Empty Nest","b":"1FAB9","d":true,"e":true,"f":true,"h":true,"j":["empty nest","bird"],"k":[54,50],"o":14},"nest_with_eggs":{"subcategory":"plant-other","a":"Nest with Eggs","b":"1FABA","d":true,"e":true,"f":true,"h":true,"j":["nest with eggs","bird"],"k":[54,51],"o":14},"mushroom":{"subcategory":"plant-other","a":"Mushroom","b":"1F344","d":true,"e":true,"f":true,"h":true,"j":["mushroom","plant","vegetable"],"k":[6,4],"o":0},"grapes":{"subcategory":"food-fruit","a":"Grapes","b":"1F347","d":true,"e":true,"f":true,"h":true,"j":["grapes","fruit","food","wine"],"k":[6,7],"o":0},"melon":{"subcategory":"food-fruit","a":"Melon","b":"1F348","d":true,"e":true,"f":true,"h":true,"j":["melon","fruit","nature","food"],"k":[6,8],"o":0},"watermelon":{"subcategory":"food-fruit","a":"Watermelon","b":"1F349","d":true,"e":true,"f":true,"h":true,"j":["watermelon","fruit","food","picnic","summer"],"k":[6,9],"o":0},"tangerine":{"subcategory":"food-fruit","a":"Tangerine","b":"1F34A","d":true,"e":true,"f":true,"h":true,"j":["tangerine","food","fruit","nature","orange"],"k":[6,10],"o":0},"lemon":{"subcategory":"food-fruit","a":"Lemon","b":"1F34B","d":true,"e":true,"f":true,"h":true,"j":["lemon","fruit","nature"],"k":[6,11],"o":1},"banana":{"subcategory":"food-fruit","a":"Banana","b":"1F34C","d":true,"e":true,"f":true,"h":true,"j":["banana","fruit","food","monkey"],"k":[6,12],"o":0},"pineapple":{"subcategory":"food-fruit","a":"Pineapple","b":"1F34D","d":true,"e":true,"f":true,"h":true,"j":["pineapple","fruit","nature","food"],"k":[6,13],"o":0},"mango":{"subcategory":"food-fruit","a":"Mango","b":"1F96D","d":true,"e":true,"f":true,"h":true,"j":["mango","fruit","food","tropical"],"k":[43,57],"o":11},"apple":{"subcategory":"food-fruit","a":"Red Apple","b":"1F34E","d":true,"e":true,"f":true,"h":true,"j":["red_apple","fruit","mac","school"],"k":[6,14],"o":0},"green_apple":{"subcategory":"food-fruit","a":"Green Apple","b":"1F34F","d":true,"e":true,"f":true,"h":true,"j":["green_apple","fruit","nature"],"k":[6,15],"o":0},"pear":{"subcategory":"food-fruit","a":"Pear","b":"1F350","d":true,"e":true,"f":true,"h":true,"j":["pear","fruit","nature","food"],"k":[6,16],"o":1},"peach":{"subcategory":"food-fruit","a":"Peach","b":"1F351","d":true,"e":true,"f":true,"h":true,"j":["peach","fruit","nature","food"],"k":[6,17],"o":0},"cherries":{"subcategory":"food-fruit","a":"Cherries","b":"1F352","d":true,"e":true,"f":true,"h":true,"j":["cherries","food","fruit"],"k":[6,18],"o":0},"strawberry":{"subcategory":"food-fruit","a":"Strawberry","b":"1F353","d":true,"e":true,"f":true,"h":true,"j":["strawberry","fruit","food","nature"],"k":[6,19],"o":0},"blueberries":{"subcategory":"food-fruit","a":"Blueberries","b":"1FAD0","d":true,"e":true,"f":true,"h":true,"j":["blueberries","fruit"],"k":[55,18],"o":13},"kiwifruit":{"subcategory":"food-fruit","a":"Kiwifruit","b":"1F95D","d":true,"e":true,"f":true,"h":true,"j":["kiwi_fruit","fruit","food"],"k":[43,41],"o":3},"tomato":{"subcategory":"food-fruit","a":"Tomato","b":"1F345","d":true,"e":true,"f":true,"h":true,"j":["tomato","fruit","vegetable","nature","food"],"k":[6,5],"o":0},"olive":{"subcategory":"food-fruit","a":"Olive","b":"1FAD2","d":true,"e":true,"f":true,"h":true,"j":["olive","fruit"],"k":[55,20],"o":13},"coconut":{"subcategory":"food-fruit","a":"Coconut","b":"1F965","d":true,"e":true,"f":true,"h":true,"j":["coconut","fruit","nature","food","palm"],"k":[43,49],"o":5},"avocado":{"subcategory":"food-vegetable","a":"Avocado","b":"1F951","d":true,"e":true,"f":true,"h":true,"j":["avocado","fruit","food"],"k":[43,29],"o":3},"eggplant":{"subcategory":"food-vegetable","a":"Aubergine","b":"1F346","d":true,"e":true,"f":true,"h":true,"j":["eggplant","vegetable","nature","food","aubergine"],"k":[6,6],"o":0},"potato":{"subcategory":"food-vegetable","a":"Potato","b":"1F954","d":true,"e":true,"f":true,"h":true,"j":["potato","food","tuber","vegatable","starch"],"k":[43,32],"o":3},"carrot":{"subcategory":"food-vegetable","a":"Carrot","b":"1F955","d":true,"e":true,"f":true,"h":true,"j":["carrot","vegetable","food","orange"],"k":[43,33],"o":3},"corn":{"subcategory":"food-vegetable","a":"Ear of Maize","b":"1F33D","d":true,"e":true,"f":true,"h":true,"j":["ear_of_corn","food","vegetable","plant"],"k":[5,58],"o":0},"hot_pepper":{"subcategory":"food-vegetable","a":"Hot Pepper","b":"1F336-FE0F","c":"1F336","d":true,"e":true,"f":true,"h":true,"j":["hot_pepper","food","spicy","chilli","chili"],"k":[5,51],"o":0},"bell_pepper":{"subcategory":"food-vegetable","a":"Bell Pepper","b":"1FAD1","d":true,"e":true,"f":true,"h":true,"j":["bell pepper","fruit","plant"],"k":[55,19],"o":13},"cucumber":{"subcategory":"food-vegetable","a":"Cucumber","b":"1F952","d":true,"e":true,"f":true,"h":true,"j":["cucumber","fruit","food","pickle"],"k":[43,30],"o":3},"leafy_green":{"subcategory":"food-vegetable","a":"Leafy Green","b":"1F96C","d":true,"e":true,"f":true,"h":true,"j":["leafy_green","food","vegetable","plant","bok choy","cabbage","kale","lettuce"],"k":[43,56],"o":11},"broccoli":{"subcategory":"food-vegetable","a":"Broccoli","b":"1F966","d":true,"e":true,"f":true,"h":true,"j":["broccoli","fruit","food","vegetable"],"k":[43,50],"o":5},"garlic":{"subcategory":"food-vegetable","a":"Garlic","b":"1F9C4","d":true,"e":true,"f":true,"h":true,"j":["garlic","food","spice","cook"],"k":[46,11],"o":12},"onion":{"subcategory":"food-vegetable","a":"Onion","b":"1F9C5","d":true,"e":true,"f":true,"h":true,"j":["onion","cook","food","spice"],"k":[46,12],"o":12},"peanuts":{"subcategory":"food-vegetable","a":"Peanuts","b":"1F95C","d":true,"e":true,"f":true,"h":true,"j":["peanuts","food","nut"],"k":[43,40],"o":3},"beans":{"subcategory":"food-vegetable","a":"Beans","b":"1FAD8","d":true,"e":true,"f":true,"h":true,"j":["beans","food"],"k":[55,26],"o":14},"chestnut":{"subcategory":"food-vegetable","a":"Chestnut","b":"1F330","d":true,"e":true,"f":true,"h":true,"j":["chestnut","food","squirrel"],"k":[5,45],"o":0},"ginger_root":{"subcategory":"food-vegetable","a":"Ginger Root","b":"1FADA","d":true,"e":true,"f":false,"h":false,"j":["ginger root","spice","yellow","cooking","gingerbread"],"k":[55,28],"o":15},"pea_pod":{"subcategory":"food-vegetable","a":"Pea Pod","b":"1FADB","d":true,"e":true,"f":false,"h":false,"j":["pea pod","cozy","green"],"k":[55,29],"o":15},"bread":{"subcategory":"food-prepared","a":"Bread","b":"1F35E","d":true,"e":true,"f":true,"h":true,"j":["bread","food","wheat","breakfast","toast"],"k":[6,30],"o":0},"croissant":{"subcategory":"food-prepared","a":"Croissant","b":"1F950","d":true,"e":true,"f":true,"h":true,"j":["croissant","food","bread","french"],"k":[43,28],"o":3},"baguette_bread":{"subcategory":"food-prepared","a":"Baguette Bread","b":"1F956","d":true,"e":true,"f":true,"h":true,"j":["baguette_bread","food","bread","french","france","bakery"],"k":[43,34],"o":3},"flatbread":{"subcategory":"food-prepared","a":"Flatbread","b":"1FAD3","d":true,"e":true,"f":true,"h":true,"j":["flatbread","flour","food","bakery"],"k":[55,21],"o":13},"pretzel":{"subcategory":"food-prepared","a":"Pretzel","b":"1F968","d":true,"e":true,"f":true,"h":true,"j":["pretzel","food","bread","twisted","germany","bakery"],"k":[43,52],"o":5},"bagel":{"subcategory":"food-prepared","a":"Bagel","b":"1F96F","d":true,"e":true,"f":true,"h":true,"j":["bagel","food","bread","bakery","schmear","jewish_bakery"],"k":[43,59],"o":11},"pancakes":{"subcategory":"food-prepared","a":"Pancakes","b":"1F95E","d":true,"e":true,"f":true,"h":true,"j":["pancakes","food","breakfast","flapjacks","hotcakes","brunch"],"k":[43,42],"o":3},"waffle":{"subcategory":"food-prepared","a":"Waffle","b":"1F9C7","d":true,"e":true,"f":true,"h":true,"j":["waffle","food","breakfast","brunch"],"k":[46,14],"o":12},"cheese_wedge":{"subcategory":"food-prepared","a":"Cheese Wedge","b":"1F9C0","d":true,"e":true,"f":true,"h":true,"j":["cheese_wedge","food","chadder","swiss"],"k":[46,7],"o":1},"meat_on_bone":{"subcategory":"food-prepared","a":"Meat on Bone","b":"1F356","d":true,"e":true,"f":true,"h":true,"j":["meat_on_bone","good","food","drumstick"],"k":[6,22],"o":0},"poultry_leg":{"subcategory":"food-prepared","a":"Poultry Leg","b":"1F357","d":true,"e":true,"f":true,"h":true,"j":["poultry_leg","food","meat","drumstick","bird","chicken","turkey"],"k":[6,23],"o":0},"cut_of_meat":{"subcategory":"food-prepared","a":"Cut of Meat","b":"1F969","d":true,"e":true,"f":true,"h":true,"j":["cut_of_meat","food","cow","meat","cut","chop","lambchop","porkchop"],"k":[43,53],"o":5},"bacon":{"subcategory":"food-prepared","a":"Bacon","b":"1F953","d":true,"e":true,"f":true,"h":true,"j":["bacon","food","breakfast","pork","pig","meat","brunch"],"k":[43,31],"o":3},"hamburger":{"subcategory":"food-prepared","a":"Hamburger","b":"1F354","d":true,"e":true,"f":true,"h":true,"j":["hamburger","meat","fast food","beef","cheeseburger","mcdonalds","burger king"],"k":[6,20],"o":0},"fries":{"subcategory":"food-prepared","a":"French Fries","b":"1F35F","d":true,"e":true,"f":true,"h":true,"j":["french_fries","chips","snack","fast food","potato"],"k":[6,31],"o":0},"pizza":{"subcategory":"food-prepared","a":"Slice of Pizza","b":"1F355","d":true,"e":true,"f":true,"h":true,"j":["pizza","food","party","italy"],"k":[6,21],"o":0},"hotdog":{"subcategory":"food-prepared","a":"Hot Dog","b":"1F32D","d":true,"e":true,"f":true,"h":true,"j":["hot_dog","food","frankfurter","america"],"k":[5,42],"o":1},"sandwich":{"subcategory":"food-prepared","a":"Sandwich","b":"1F96A","d":true,"e":true,"f":true,"h":true,"j":["sandwich","food","lunch","bread","toast","bakery"],"k":[43,54],"o":5},"taco":{"subcategory":"food-prepared","a":"Taco","b":"1F32E","d":true,"e":true,"f":true,"h":true,"j":["taco","food","mexican"],"k":[5,43],"o":1},"burrito":{"subcategory":"food-prepared","a":"Burrito","b":"1F32F","d":true,"e":true,"f":true,"h":true,"j":["burrito","food","mexican"],"k":[5,44],"o":1},"tamale":{"subcategory":"food-prepared","a":"Tamale","b":"1FAD4","d":true,"e":true,"f":true,"h":true,"j":["tamale","food","masa"],"k":[55,22],"o":13},"stuffed_flatbread":{"subcategory":"food-prepared","a":"Stuffed Flatbread","b":"1F959","d":true,"e":true,"f":true,"h":true,"j":["stuffed_flatbread","food","flatbread","stuffed","gyro","mediterranean"],"k":[43,37],"o":3},"falafel":{"subcategory":"food-prepared","a":"Falafel","b":"1F9C6","d":true,"e":true,"f":true,"h":true,"j":["falafel","food","mediterranean"],"k":[46,13],"o":12},"egg":{"subcategory":"food-prepared","a":"Egg","b":"1F95A","d":true,"e":true,"f":true,"h":true,"j":["egg","food","chicken","breakfast"],"k":[43,38],"o":3},"fried_egg":{"subcategory":"food-prepared","a":"Cooking","b":"1F373","d":true,"e":true,"f":true,"h":true,"j":["cooking","food","breakfast","kitchen","egg","skillet"],"k":[6,51],"n":["cooking"],"o":0},"shallow_pan_of_food":{"subcategory":"food-prepared","a":"Shallow Pan of Food","b":"1F958","d":true,"e":true,"f":true,"h":true,"j":["shallow_pan_of_food","food","cooking","casserole","paella","skillet"],"k":[43,36],"o":3},"stew":{"subcategory":"food-prepared","a":"Pot of Food","b":"1F372","d":true,"e":true,"f":true,"h":true,"j":["pot_of_food","food","meat","soup","hot pot"],"k":[6,50],"o":0},"fondue":{"subcategory":"food-prepared","a":"Fondue","b":"1FAD5","d":true,"e":true,"f":true,"h":true,"j":["fondue","cheese","pot","food"],"k":[55,23],"o":13},"bowl_with_spoon":{"subcategory":"food-prepared","a":"Bowl with Spoon","b":"1F963","d":true,"e":true,"f":true,"h":true,"j":["bowl_with_spoon","food","breakfast","cereal","oatmeal","porridge"],"k":[43,47],"o":5},"green_salad":{"subcategory":"food-prepared","a":"Green Salad","b":"1F957","d":true,"e":true,"f":true,"h":true,"j":["green_salad","food","healthy","lettuce","vegetable"],"k":[43,35],"o":3},"popcorn":{"subcategory":"food-prepared","a":"Popcorn","b":"1F37F","d":true,"e":true,"f":true,"h":true,"j":["popcorn","food","movie theater","films","snack","drama"],"k":[7,2],"o":1},"butter":{"subcategory":"food-prepared","a":"Butter","b":"1F9C8","d":true,"e":true,"f":true,"h":true,"j":["butter","food","cook"],"k":[46,15],"o":12},"salt":{"subcategory":"food-prepared","a":"Salt Shaker","b":"1F9C2","d":true,"e":true,"f":true,"h":true,"j":["salt","condiment","shaker"],"k":[46,9],"o":11},"canned_food":{"subcategory":"food-prepared","a":"Canned Food","b":"1F96B","d":true,"e":true,"f":true,"h":true,"j":["canned_food","food","soup","tomatoes"],"k":[43,55],"o":5},"bento":{"subcategory":"food-asian","a":"Bento Box","b":"1F371","d":true,"e":true,"f":true,"h":true,"j":["bento_box","food","japanese","box","lunch"],"k":[6,49],"o":0},"rice_cracker":{"subcategory":"food-asian","a":"Rice Cracker","b":"1F358","d":true,"e":true,"f":true,"h":true,"j":["rice_cracker","food","japanese","snack","senbei"],"k":[6,24],"o":0},"rice_ball":{"subcategory":"food-asian","a":"Rice Ball","b":"1F359","d":true,"e":true,"f":true,"h":true,"j":["rice_ball","food","japanese","onigiri","omusubi"],"k":[6,25],"o":0},"rice":{"subcategory":"food-asian","a":"Cooked Rice","b":"1F35A","d":true,"e":true,"f":true,"h":true,"j":["cooked_rice","food","asian"],"k":[6,26],"o":0},"curry":{"subcategory":"food-asian","a":"Curry and Rice","b":"1F35B","d":true,"e":true,"f":true,"h":true,"j":["curry_rice","food","spicy","hot","indian"],"k":[6,27],"o":0},"ramen":{"subcategory":"food-asian","a":"Steaming Bowl","b":"1F35C","d":true,"e":true,"f":true,"h":true,"j":["steaming_bowl","food","japanese","noodle","chopsticks","ramen"],"k":[6,28],"o":0},"spaghetti":{"subcategory":"food-asian","a":"Spaghetti","b":"1F35D","d":true,"e":true,"f":true,"h":true,"j":["spaghetti","food","italian","pasta","noodle"],"k":[6,29],"o":0},"sweet_potato":{"subcategory":"food-asian","a":"Roasted Sweet Potato","b":"1F360","d":true,"e":true,"f":true,"h":true,"j":["roasted_sweet_potato","food","nature","plant"],"k":[6,32],"o":0},"oden":{"subcategory":"food-asian","a":"Oden","b":"1F362","d":true,"e":true,"f":true,"h":true,"j":["oden","skewer","food","japanese"],"k":[6,34],"o":0},"sushi":{"subcategory":"food-asian","a":"Sushi","b":"1F363","d":true,"e":true,"f":true,"h":true,"j":["sushi","food","fish","japanese","rice"],"k":[6,35],"o":0},"fried_shrimp":{"subcategory":"food-asian","a":"Fried Shrimp","b":"1F364","d":true,"e":true,"f":true,"h":true,"j":["fried_shrimp","food","animal","appetizer","summer"],"k":[6,36],"o":0},"fish_cake":{"subcategory":"food-asian","a":"Fish Cake with Swirl Design","b":"1F365","d":true,"e":true,"f":true,"h":true,"j":["fish_cake_with_swirl","food","japan","sea","beach","narutomaki","pink","swirl","kamaboko","surimi","ramen"],"k":[6,37],"o":0},"moon_cake":{"subcategory":"food-asian","a":"Moon Cake","b":"1F96E","d":true,"e":true,"f":true,"h":true,"j":["moon_cake","food","autumn","dessert"],"k":[43,58],"o":11},"dango":{"subcategory":"food-asian","a":"Dango","b":"1F361","d":true,"e":true,"f":true,"h":true,"j":["dango","food","dessert","sweet","japanese","barbecue","meat"],"k":[6,33],"o":0},"dumpling":{"subcategory":"food-asian","a":"Dumpling","b":"1F95F","d":true,"e":true,"f":true,"h":true,"j":["dumpling","food","empanada","pierogi","potsticker","gyoza"],"k":[43,43],"o":5},"fortune_cookie":{"subcategory":"food-asian","a":"Fortune Cookie","b":"1F960","d":true,"e":true,"f":true,"h":true,"j":["fortune_cookie","food","prophecy","dessert"],"k":[43,44],"o":5},"takeout_box":{"subcategory":"food-asian","a":"Takeout Box","b":"1F961","d":true,"e":true,"f":true,"h":true,"j":["takeout_box","food","leftovers"],"k":[43,45],"o":5},"crab":{"subcategory":"food-marine","a":"Crab","b":"1F980","d":true,"e":true,"f":true,"h":true,"j":["crab","animal","crustacean"],"k":[44,20],"o":1},"lobster":{"subcategory":"food-marine","a":"Lobster","b":"1F99E","d":true,"e":true,"f":true,"h":true,"j":["lobster","animal","nature","bisque","claws","seafood"],"k":[44,50],"o":11},"shrimp":{"subcategory":"food-marine","a":"Shrimp","b":"1F990","d":true,"e":true,"f":true,"h":true,"j":["shrimp","animal","ocean","nature","seafood"],"k":[44,36],"o":3},"squid":{"subcategory":"food-marine","a":"Squid","b":"1F991","d":true,"e":true,"f":true,"h":true,"j":["squid","animal","nature","ocean","sea"],"k":[44,37],"o":3},"oyster":{"subcategory":"food-marine","a":"Oyster","b":"1F9AA","d":true,"e":true,"f":true,"h":true,"j":["oyster","food"],"k":[45,1],"o":12},"icecream":{"subcategory":"food-sweet","a":"Soft Ice Cream","b":"1F366","d":true,"e":true,"f":true,"h":true,"j":["soft_ice_cream","food","hot","dessert","summer"],"k":[6,38],"o":0},"shaved_ice":{"subcategory":"food-sweet","a":"Shaved Ice","b":"1F367","d":true,"e":true,"f":true,"h":true,"j":["shaved_ice","hot","dessert","summer"],"k":[6,39],"o":0},"ice_cream":{"subcategory":"food-sweet","a":"Ice Cream","b":"1F368","d":true,"e":true,"f":true,"h":true,"j":["ice_cream","food","hot","dessert"],"k":[6,40],"o":0},"doughnut":{"subcategory":"food-sweet","a":"Doughnut","b":"1F369","d":true,"e":true,"f":true,"h":true,"j":["doughnut","food","dessert","snack","sweet","donut"],"k":[6,41],"o":0},"cookie":{"subcategory":"food-sweet","a":"Cookie","b":"1F36A","d":true,"e":true,"f":true,"h":true,"j":["cookie","food","snack","oreo","chocolate","sweet","dessert"],"k":[6,42],"o":0},"birthday":{"subcategory":"food-sweet","a":"Birthday Cake","b":"1F382","d":true,"e":true,"f":true,"h":true,"j":["birthday_cake","food","dessert","cake"],"k":[7,5],"o":0},"cake":{"subcategory":"food-sweet","a":"Shortcake","b":"1F370","d":true,"e":true,"f":true,"h":true,"j":["shortcake","food","dessert"],"k":[6,48],"o":0},"cupcake":{"subcategory":"food-sweet","a":"Cupcake","b":"1F9C1","d":true,"e":true,"f":true,"h":true,"j":["cupcake","food","dessert","bakery","sweet"],"k":[46,8],"o":11},"pie":{"subcategory":"food-sweet","a":"Pie","b":"1F967","d":true,"e":true,"f":true,"h":true,"j":["pie","food","dessert","pastry"],"k":[43,51],"o":5},"chocolate_bar":{"subcategory":"food-sweet","a":"Chocolate Bar","b":"1F36B","d":true,"e":true,"f":true,"h":true,"j":["chocolate_bar","food","snack","dessert","sweet"],"k":[6,43],"o":0},"candy":{"subcategory":"food-sweet","a":"Candy","b":"1F36C","d":true,"e":true,"f":true,"h":true,"j":["candy","snack","dessert","sweet","lolly"],"k":[6,44],"o":0},"lollipop":{"subcategory":"food-sweet","a":"Lollipop","b":"1F36D","d":true,"e":true,"f":true,"h":true,"j":["lollipop","food","snack","candy","sweet"],"k":[6,45],"o":0},"custard":{"subcategory":"food-sweet","a":"Custard","b":"1F36E","d":true,"e":true,"f":true,"h":true,"j":["custard","dessert","food","pudding","flan"],"k":[6,46],"o":0},"honey_pot":{"subcategory":"food-sweet","a":"Honey Pot","b":"1F36F","d":true,"e":true,"f":true,"h":true,"j":["honey_pot","bees","sweet","kitchen"],"k":[6,47],"o":0},"baby_bottle":{"subcategory":"drink","a":"Baby Bottle","b":"1F37C","d":true,"e":true,"f":true,"h":true,"j":["baby_bottle","food","container","milk"],"k":[6,60],"o":1},"glass_of_milk":{"subcategory":"drink","a":"Glass of Milk","b":"1F95B","d":true,"e":true,"f":true,"h":true,"j":["glass_of_milk","beverage","drink","cow"],"k":[43,39],"o":3},"coffee":{"subcategory":"drink","a":"Hot Beverage","b":"2615","d":true,"e":true,"f":true,"h":true,"j":["hot_beverage","beverage","caffeine","latte","espresso","coffee","mug"],"k":[57,18],"o":0},"teapot":{"subcategory":"drink","a":"Teapot","b":"1FAD6","d":true,"e":true,"f":true,"h":true,"j":["teapot","drink","hot"],"k":[55,24],"o":13},"tea":{"subcategory":"drink","a":"Teacup Without Handle","b":"1F375","d":true,"e":true,"f":true,"h":true,"j":["teacup_without_handle","drink","bowl","breakfast","green","british"],"k":[6,53],"o":0},"sake":{"subcategory":"drink","a":"Sake Bottle and Cup","b":"1F376","d":true,"e":true,"f":true,"h":true,"j":["sake","wine","drink","drunk","beverage","japanese","alcohol","booze"],"k":[6,54],"o":0},"champagne":{"subcategory":"drink","a":"Bottle with Popping Cork","b":"1F37E","d":true,"e":true,"f":true,"h":true,"j":["bottle_with_popping_cork","drink","wine","bottle","celebration"],"k":[7,1],"o":1},"wine_glass":{"subcategory":"drink","a":"Wine Glass","b":"1F377","d":true,"e":true,"f":true,"h":true,"j":["wine_glass","drink","beverage","drunk","alcohol","booze"],"k":[6,55],"o":0},"cocktail":{"subcategory":"drink","a":"Cocktail Glass","b":"1F378","d":true,"e":true,"f":true,"h":true,"j":["cocktail_glass","drink","drunk","alcohol","beverage","booze","mojito"],"k":[6,56],"o":0},"tropical_drink":{"subcategory":"drink","a":"Tropical Drink","b":"1F379","d":true,"e":true,"f":true,"h":true,"j":["tropical_drink","beverage","cocktail","summer","beach","alcohol","booze","mojito"],"k":[6,57],"o":0},"beer":{"subcategory":"drink","a":"Beer Mug","b":"1F37A","d":true,"e":true,"f":true,"h":true,"j":["beer_mug","relax","beverage","drink","drunk","party","pub","summer","alcohol","booze"],"k":[6,58],"o":0},"beers":{"subcategory":"drink","a":"Clinking Beer Mugs","b":"1F37B","d":true,"e":true,"f":true,"h":true,"j":["clinking_beer_mugs","relax","beverage","drink","drunk","party","pub","summer","alcohol","booze"],"k":[6,59],"o":0},"clinking_glasses":{"subcategory":"drink","a":"Clinking Glasses","b":"1F942","d":true,"e":true,"f":true,"h":true,"j":["clinking_glasses","beverage","drink","party","alcohol","celebrate","cheers","wine","champagne","toast"],"k":[43,15],"o":3},"tumbler_glass":{"subcategory":"drink","a":"Tumbler Glass","b":"1F943","d":true,"e":true,"f":true,"h":true,"j":["tumbler_glass","drink","beverage","drunk","alcohol","liquor","booze","bourbon","scotch","whisky","glass","shot"],"k":[43,16],"o":3},"pouring_liquid":{"subcategory":"drink","a":"Pouring Liquid","b":"1FAD7","d":true,"e":true,"f":true,"h":true,"j":["pouring liquid","cup","water"],"k":[55,25],"o":14},"cup_with_straw":{"subcategory":"drink","a":"Cup with Straw","b":"1F964","d":true,"e":true,"f":true,"h":true,"j":["cup_with_straw","drink","soda"],"k":[43,48],"o":5},"bubble_tea":{"subcategory":"drink","a":"Bubble Tea","b":"1F9CB","d":true,"e":true,"f":true,"h":true,"j":["bubble tea","taiwan","boba","milk tea","straw"],"k":[46,18],"o":13},"beverage_box":{"subcategory":"drink","a":"Beverage Box","b":"1F9C3","d":true,"e":true,"f":true,"h":true,"j":["beverage_box","drink"],"k":[46,10],"o":12},"mate_drink":{"subcategory":"drink","a":"Mate Drink","b":"1F9C9","d":true,"e":true,"f":true,"h":true,"j":["mate","drink","tea","beverage"],"k":[46,16],"o":12},"ice_cube":{"subcategory":"drink","a":"Ice Cube","b":"1F9CA","d":true,"e":true,"f":true,"h":true,"j":["ice","water","cold"],"k":[46,17],"o":12},"chopsticks":{"subcategory":"dishware","a":"Chopsticks","b":"1F962","d":true,"e":true,"f":true,"h":true,"j":["chopsticks","food"],"k":[43,46],"o":5},"knife_fork_plate":{"subcategory":"dishware","a":"Fork and Knife with Plate","b":"1F37D-FE0F","c":"1F37D","d":true,"e":true,"f":true,"h":true,"j":["fork_and_knife_with_plate","food","eat","meal","lunch","dinner","restaurant"],"k":[7,0],"o":0},"fork_and_knife":{"subcategory":"dishware","a":"Fork and Knife","b":"1F374","d":true,"e":true,"f":true,"h":true,"j":["fork_and_knife","cutlery","kitchen"],"k":[6,52],"o":0},"spoon":{"subcategory":"dishware","a":"Spoon","b":"1F944","d":true,"e":true,"f":true,"h":true,"j":["spoon","cutlery","kitchen","tableware"],"k":[43,17],"o":3},"hocho":{"subcategory":"dishware","a":"Hocho","b":"1F52A","d":true,"e":true,"f":true,"h":true,"j":["kitchen_knife","knife","blade","cutlery","kitchen","weapon"],"k":[30,7],"n":["knife"],"o":0},"jar":{"subcategory":"dishware","a":"Jar","b":"1FAD9","d":true,"e":true,"f":true,"h":true,"j":["jar","container","sauce"],"k":[55,27],"o":14},"amphora":{"subcategory":"dishware","a":"Amphora","b":"1F3FA","d":true,"e":true,"f":true,"h":true,"j":["amphora","vase","jar"],"k":[10,40],"o":1},"earth_africa":{"subcategory":"place-map","a":"Earth Globe Europe-Africa","b":"1F30D","d":true,"e":true,"f":true,"h":true,"j":["globe_showing_europe_africa","globe","world","earth","international"],"k":[5,12],"o":0},"earth_americas":{"subcategory":"place-map","a":"Earth Globe Americas","b":"1F30E","d":true,"e":true,"f":true,"h":true,"j":["globe_showing_americas","globe","world","USA","earth","international"],"k":[5,13],"o":0},"earth_asia":{"subcategory":"place-map","a":"Earth Globe Asia-Australia","b":"1F30F","d":true,"e":true,"f":true,"h":true,"j":["globe_showing_asia_australia","globe","world","east","earth","international"],"k":[5,14],"o":0},"globe_with_meridians":{"subcategory":"place-map","a":"Globe with Meridians","b":"1F310","d":true,"e":true,"f":true,"h":true,"j":["globe_with_meridians","earth","international","world","internet","interweb","i18n"],"k":[5,15],"o":1},"world_map":{"subcategory":"place-map","a":"World Map","b":"1F5FA-FE0F","c":"1F5FA","d":true,"e":true,"f":true,"h":true,"j":["world_map","location","direction"],"k":[32,15],"o":0},"japan":{"subcategory":"place-map","a":"Silhouette of Japan","b":"1F5FE","d":true,"e":true,"f":true,"h":true,"j":["map_of_japan","nation","country","japanese","asia"],"k":[32,19],"o":0},"compass":{"subcategory":"place-map","a":"Compass","b":"1F9ED","d":true,"e":true,"f":true,"h":true,"j":["compass","magnetic","navigation","orienteering"],"k":[53,29],"o":11},"snow_capped_mountain":{"subcategory":"place-geographic","a":"Snow-Capped Mountain","b":"1F3D4-FE0F","c":"1F3D4","d":true,"e":true,"f":true,"h":true,"j":["snow_capped_mountain","photo","nature","environment","winter","cold"],"k":[9,60],"o":0},"mountain":{"subcategory":"place-geographic","a":"Mountain","b":"26F0-FE0F","c":"26F0","d":true,"e":true,"f":true,"h":true,"j":["mountain","photo","nature","environment"],"k":[58,26],"o":0},"volcano":{"subcategory":"place-geographic","a":"Volcano","b":"1F30B","d":true,"e":true,"f":true,"h":true,"j":["volcano","photo","nature","disaster"],"k":[5,10],"o":0},"mount_fuji":{"subcategory":"place-geographic","a":"Mount Fuji","b":"1F5FB","d":true,"e":true,"f":true,"h":true,"j":["mount_fuji","photo","mountain","nature","japanese"],"k":[32,16],"o":0},"camping":{"subcategory":"place-geographic","a":"Camping","b":"1F3D5-FE0F","c":"1F3D5","d":true,"e":true,"f":true,"h":true,"j":["camping","photo","outdoors","tent"],"k":[10,0],"o":0},"beach_with_umbrella":{"subcategory":"place-geographic","a":"Beach with Umbrella","b":"1F3D6-FE0F","c":"1F3D6","d":true,"e":true,"f":true,"h":true,"j":["beach_with_umbrella","weather","summer","sunny","sand","mojito"],"k":[10,1],"o":0},"desert":{"subcategory":"place-geographic","a":"Desert","b":"1F3DC-FE0F","c":"1F3DC","d":true,"e":true,"f":true,"h":true,"j":["desert","photo","warm","saharah"],"k":[10,7],"o":0},"desert_island":{"subcategory":"place-geographic","a":"Desert Island","b":"1F3DD-FE0F","c":"1F3DD","d":true,"e":true,"f":true,"h":true,"j":["desert_island","photo","tropical","mojito"],"k":[10,8],"o":0},"national_park":{"subcategory":"place-geographic","a":"National Park","b":"1F3DE-FE0F","c":"1F3DE","d":true,"e":true,"f":true,"h":true,"j":["national_park","photo","environment","nature"],"k":[10,9],"o":0},"stadium":{"subcategory":"place-building","a":"Stadium","b":"1F3DF-FE0F","c":"1F3DF","d":true,"e":true,"f":true,"h":true,"j":["stadium","photo","place","sports","concert","venue"],"k":[10,10],"o":0},"classical_building":{"subcategory":"place-building","a":"Classical Building","b":"1F3DB-FE0F","c":"1F3DB","d":true,"e":true,"f":true,"h":true,"j":["classical_building","art","culture","history"],"k":[10,6],"o":0},"building_construction":{"subcategory":"place-building","a":"Building Construction","b":"1F3D7-FE0F","c":"1F3D7","d":true,"e":true,"f":true,"h":true,"j":["building_construction","wip","working","progress"],"k":[10,2],"o":0},"bricks":{"subcategory":"place-building","a":"Brick","b":"1F9F1","d":true,"e":true,"f":true,"h":true,"j":["brick","bricks"],"k":[53,33],"o":11},"rock":{"subcategory":"place-building","a":"Rock","b":"1FAA8","d":true,"e":true,"f":true,"h":true,"j":["rock","stone"],"k":[54,33],"o":13},"wood":{"subcategory":"place-building","a":"Wood","b":"1FAB5","d":true,"e":true,"f":true,"h":true,"j":["wood","nature","timber","trunk"],"k":[54,46],"o":13},"hut":{"subcategory":"place-building","a":"Hut","b":"1F6D6","d":true,"e":true,"f":true,"h":true,"j":["hut","house","structure"],"k":[38,7],"o":13},"house_buildings":{"subcategory":"place-building","a":"Houses","b":"1F3D8-FE0F","c":"1F3D8","d":true,"e":true,"f":true,"h":true,"j":["houses","buildings","photo"],"k":[10,3],"o":0},"derelict_house_building":{"subcategory":"place-building","a":"Derelict House","b":"1F3DA-FE0F","c":"1F3DA","d":true,"e":true,"f":true,"h":true,"j":["derelict_house","abandon","evict","broken","building"],"k":[10,5],"o":0},"house":{"subcategory":"place-building","a":"House Building","b":"1F3E0","d":true,"e":true,"f":true,"h":true,"j":["house","building","home"],"k":[10,11],"o":0},"house_with_garden":{"subcategory":"place-building","a":"House with Garden","b":"1F3E1","d":true,"e":true,"f":true,"h":true,"j":["house_with_garden","home","plant","nature"],"k":[10,12],"o":0},"office":{"subcategory":"place-building","a":"Office Building","b":"1F3E2","d":true,"e":true,"f":true,"h":true,"j":["office_building","building","bureau","work"],"k":[10,13],"o":0},"post_office":{"subcategory":"place-building","a":"Japanese Post Office","b":"1F3E3","d":true,"e":true,"f":true,"h":true,"j":["japanese_post_office","building","envelope","communication"],"k":[10,14],"o":0},"european_post_office":{"subcategory":"place-building","a":"European Post Office","b":"1F3E4","d":true,"e":true,"f":true,"h":true,"j":["post_office","building","email"],"k":[10,15],"o":1},"hospital":{"subcategory":"place-building","a":"Hospital","b":"1F3E5","d":true,"e":true,"f":true,"h":true,"j":["hospital","building","health","surgery","doctor"],"k":[10,16],"o":0},"bank":{"subcategory":"place-building","a":"Bank","b":"1F3E6","d":true,"e":true,"f":true,"h":true,"j":["bank","building","money","sales","cash","business","enterprise"],"k":[10,17],"o":0},"hotel":{"subcategory":"place-building","a":"Hotel","b":"1F3E8","d":true,"e":true,"f":true,"h":true,"j":["hotel","building","accomodation","checkin"],"k":[10,19],"o":0},"love_hotel":{"subcategory":"place-building","a":"Love Hotel","b":"1F3E9","d":true,"e":true,"f":true,"h":true,"j":["love_hotel","like","affection","dating"],"k":[10,20],"o":0},"convenience_store":{"subcategory":"place-building","a":"Convenience Store","b":"1F3EA","d":true,"e":true,"f":true,"h":true,"j":["convenience_store","building","shopping","groceries"],"k":[10,21],"o":0},"school":{"subcategory":"place-building","a":"School","b":"1F3EB","d":true,"e":true,"f":true,"h":true,"j":["school","building","student","education","learn","teach"],"k":[10,22],"o":0},"department_store":{"subcategory":"place-building","a":"Department Store","b":"1F3EC","d":true,"e":true,"f":true,"h":true,"j":["department_store","building","shopping","mall"],"k":[10,23],"o":0},"factory":{"subcategory":"place-building","a":"Factory","b":"1F3ED","d":true,"e":true,"f":true,"h":true,"j":["factory","building","industry","pollution","smoke"],"k":[10,24],"o":0},"japanese_castle":{"subcategory":"place-building","a":"Japanese Castle","b":"1F3EF","d":true,"e":true,"f":true,"h":true,"j":["japanese_castle","photo","building"],"k":[10,26],"o":0},"european_castle":{"subcategory":"place-building","a":"European Castle","b":"1F3F0","d":true,"e":true,"f":true,"h":true,"j":["castle","building","royalty","history"],"k":[10,27],"o":0},"wedding":{"subcategory":"place-building","a":"Wedding","b":"1F492","d":true,"e":true,"f":true,"h":true,"j":["wedding","love","like","affection","couple","marriage","bride","groom"],"k":[27,34],"o":0},"tokyo_tower":{"subcategory":"place-building","a":"Tokyo Tower","b":"1F5FC","d":true,"e":true,"f":true,"h":true,"j":["tokyo_tower","photo","japanese"],"k":[32,17],"o":0},"statue_of_liberty":{"subcategory":"place-building","a":"Statue of Liberty","b":"1F5FD","d":true,"e":true,"f":true,"h":true,"j":["statue_of_liberty","american","newyork"],"k":[32,18],"o":0},"church":{"subcategory":"place-religious","a":"Church","b":"26EA","d":true,"e":true,"f":true,"h":true,"j":["church","building","religion","christ"],"k":[58,25],"o":0},"mosque":{"subcategory":"place-religious","a":"Mosque","b":"1F54C","d":true,"e":true,"f":true,"h":true,"j":["mosque","islam","worship","minaret"],"k":[30,30],"o":1},"hindu_temple":{"subcategory":"place-religious","a":"Hindu Temple","b":"1F6D5","d":true,"e":true,"f":true,"h":true,"j":["hindu_temple","religion"],"k":[38,6],"o":12},"synagogue":{"subcategory":"place-religious","a":"Synagogue","b":"1F54D","d":true,"e":true,"f":true,"h":true,"j":["synagogue","judaism","worship","temple","jewish"],"k":[30,31],"o":1},"shinto_shrine":{"subcategory":"place-religious","a":"Shinto Shrine","b":"26E9-FE0F","c":"26E9","d":true,"e":true,"f":true,"h":true,"j":["shinto_shrine","temple","japan","kyoto"],"k":[58,24],"o":0},"kaaba":{"subcategory":"place-religious","a":"Kaaba","b":"1F54B","d":true,"e":true,"f":true,"h":true,"j":["kaaba","mecca","mosque","islam"],"k":[30,29],"o":1},"fountain":{"subcategory":"place-other","a":"Fountain","b":"26F2","d":true,"e":true,"f":true,"h":true,"j":["fountain","photo","summer","water","fresh"],"k":[58,28],"o":0},"tent":{"subcategory":"place-other","a":"Tent","b":"26FA","d":true,"e":true,"f":true,"h":true,"j":["tent","photo","camping","outdoors"],"k":[58,52],"o":0},"foggy":{"subcategory":"place-other","a":"Foggy","b":"1F301","d":true,"e":true,"f":true,"h":true,"j":["foggy","photo","mountain"],"k":[5,0],"o":0},"night_with_stars":{"subcategory":"place-other","a":"Night with Stars","b":"1F303","d":true,"e":true,"f":true,"h":true,"j":["night_with_stars","evening","city","downtown"],"k":[5,2],"o":0},"cityscape":{"subcategory":"place-other","a":"Cityscape","b":"1F3D9-FE0F","c":"1F3D9","d":true,"e":true,"f":true,"h":true,"j":["cityscape","photo","night life","urban"],"k":[10,4],"o":0},"sunrise_over_mountains":{"subcategory":"place-other","a":"Sunrise over Mountains","b":"1F304","d":true,"e":true,"f":true,"h":true,"j":["sunrise_over_mountains","view","vacation","photo"],"k":[5,3],"o":0},"sunrise":{"subcategory":"place-other","a":"Sunrise","b":"1F305","d":true,"e":true,"f":true,"h":true,"j":["sunrise","morning","view","vacation","photo"],"k":[5,4],"o":0},"city_sunset":{"subcategory":"place-other","a":"Cityscape at Dusk","b":"1F306","d":true,"e":true,"f":true,"h":true,"j":["cityscape_at_dusk","photo","evening","sky","buildings"],"k":[5,5],"o":0},"city_sunrise":{"subcategory":"place-other","a":"Sunset over Buildings","b":"1F307","d":true,"e":true,"f":true,"h":true,"j":["sunset","photo","good morning","dawn"],"k":[5,6],"o":0},"bridge_at_night":{"subcategory":"place-other","a":"Bridge at Night","b":"1F309","d":true,"e":true,"f":true,"h":true,"j":["bridge_at_night","photo","sanfrancisco"],"k":[5,8],"o":0},"hotsprings":{"subcategory":"place-other","a":"Hot Springs","b":"2668-FE0F","c":"2668","d":true,"e":true,"f":true,"h":true,"j":["hot_springs","bath","warm","relax"],"k":[57,55],"o":0},"carousel_horse":{"subcategory":"place-other","a":"Carousel Horse","b":"1F3A0","d":true,"e":true,"f":true,"h":true,"j":["carousel_horse","photo","carnival"],"k":[7,35],"o":0},"playground_slide":{"subcategory":"place-other","a":"Playground Slide","b":"1F6DD","d":true,"e":true,"f":true,"h":true,"j":["playground slide","fun","park"],"k":[38,10],"o":14},"ferris_wheel":{"subcategory":"place-other","a":"Ferris Wheel","b":"1F3A1","d":true,"e":true,"f":true,"h":true,"j":["ferris_wheel","photo","carnival","londoneye"],"k":[7,36],"o":0},"roller_coaster":{"subcategory":"place-other","a":"Roller Coaster","b":"1F3A2","d":true,"e":true,"f":true,"h":true,"j":["roller_coaster","carnival","playground","photo","fun"],"k":[7,37],"o":0},"barber":{"subcategory":"place-other","a":"Barber Pole","b":"1F488","d":true,"e":true,"f":true,"h":true,"j":["barber_pole","hair","salon","style"],"k":[26,35],"o":0},"circus_tent":{"subcategory":"place-other","a":"Circus Tent","b":"1F3AA","d":true,"e":true,"f":true,"h":true,"j":["circus_tent","festival","carnival","party"],"k":[7,45],"o":0},"steam_locomotive":{"subcategory":"transport-ground","a":"Steam Locomotive","b":"1F682","d":true,"e":true,"f":true,"h":true,"j":["locomotive","transportation","vehicle","train"],"k":[35,35],"o":1},"railway_car":{"subcategory":"transport-ground","a":"Railway Car","b":"1F683","d":true,"e":true,"f":true,"h":true,"j":["railway_car","transportation","vehicle"],"k":[35,36],"o":0},"bullettrain_side":{"subcategory":"transport-ground","a":"High-Speed Train","b":"1F684","d":true,"e":true,"f":true,"h":true,"j":["high_speed_train","transportation","vehicle"],"k":[35,37],"o":0},"bullettrain_front":{"subcategory":"transport-ground","a":"High-Speed Train with Bullet Nose","b":"1F685","d":true,"e":true,"f":true,"h":true,"j":["bullet_train","transportation","vehicle","speed","fast","public","travel"],"k":[35,38],"o":0},"train2":{"subcategory":"transport-ground","a":"Train","b":"1F686","d":true,"e":true,"f":true,"h":true,"j":["train","transportation","vehicle"],"k":[35,39],"o":1},"metro":{"subcategory":"transport-ground","a":"Metro","b":"1F687","d":true,"e":true,"f":true,"h":true,"j":["metro","transportation","blue-square","mrt","underground","tube"],"k":[35,40],"o":0},"light_rail":{"subcategory":"transport-ground","a":"Light Rail","b":"1F688","d":true,"e":true,"f":true,"h":true,"j":["light_rail","transportation","vehicle"],"k":[35,41],"o":1},"station":{"subcategory":"transport-ground","a":"Station","b":"1F689","d":true,"e":true,"f":true,"h":true,"j":["station","transportation","vehicle","public"],"k":[35,42],"o":0},"tram":{"subcategory":"transport-ground","a":"Tram","b":"1F68A","d":true,"e":true,"f":true,"h":true,"j":["tram","transportation","vehicle"],"k":[35,43],"o":1},"monorail":{"subcategory":"transport-ground","a":"Monorail","b":"1F69D","d":true,"e":true,"f":true,"h":true,"j":["monorail","transportation","vehicle"],"k":[36,1],"o":1},"mountain_railway":{"subcategory":"transport-ground","a":"Mountain Railway","b":"1F69E","d":true,"e":true,"f":true,"h":true,"j":["mountain_railway","transportation","vehicle"],"k":[36,2],"o":1},"train":{"subcategory":"transport-ground","a":"Tram Car","b":"1F68B","d":true,"e":true,"f":true,"h":true,"j":["tram_car","transportation","vehicle","carriage","public","travel"],"k":[35,44],"o":1},"bus":{"subcategory":"transport-ground","a":"Bus","b":"1F68C","d":true,"e":true,"f":true,"h":true,"j":["bus","car","vehicle","transportation"],"k":[35,45],"o":0},"oncoming_bus":{"subcategory":"transport-ground","a":"Oncoming Bus","b":"1F68D","d":true,"e":true,"f":true,"h":true,"j":["oncoming_bus","vehicle","transportation"],"k":[35,46],"o":0},"trolleybus":{"subcategory":"transport-ground","a":"Trolleybus","b":"1F68E","d":true,"e":true,"f":true,"h":true,"j":["trolleybus","bart","transportation","vehicle"],"k":[35,47],"o":1},"minibus":{"subcategory":"transport-ground","a":"Minibus","b":"1F690","d":true,"e":true,"f":true,"h":true,"j":["minibus","vehicle","car","transportation"],"k":[35,49],"o":1},"ambulance":{"subcategory":"transport-ground","a":"Ambulance","b":"1F691","d":true,"e":true,"f":true,"h":true,"j":["ambulance","health","911","hospital"],"k":[35,50],"o":0},"fire_engine":{"subcategory":"transport-ground","a":"Fire Engine","b":"1F692","d":true,"e":true,"f":true,"h":true,"j":["fire_engine","transportation","cars","vehicle"],"k":[35,51],"o":0},"police_car":{"subcategory":"transport-ground","a":"Police Car","b":"1F693","d":true,"e":true,"f":true,"h":true,"j":["police_car","vehicle","cars","transportation","law","legal","enforcement"],"k":[35,52],"o":0},"oncoming_police_car":{"subcategory":"transport-ground","a":"Oncoming Police Car","b":"1F694","d":true,"e":true,"f":true,"h":true,"j":["oncoming_police_car","vehicle","law","legal","enforcement","911"],"k":[35,53],"o":0},"taxi":{"subcategory":"transport-ground","a":"Taxi","b":"1F695","d":true,"e":true,"f":true,"h":true,"j":["taxi","uber","vehicle","cars","transportation"],"k":[35,54],"o":0},"oncoming_taxi":{"subcategory":"transport-ground","a":"Oncoming Taxi","b":"1F696","d":true,"e":true,"f":true,"h":true,"j":["oncoming_taxi","vehicle","cars","uber"],"k":[35,55],"o":1},"car":{"subcategory":"transport-ground","a":"Automobile","b":"1F697","d":true,"e":true,"f":true,"h":true,"j":["automobile","red","transportation","vehicle"],"k":[35,56],"n":["red_car"],"o":0},"oncoming_automobile":{"subcategory":"transport-ground","a":"Oncoming Automobile","b":"1F698","d":true,"e":true,"f":true,"h":true,"j":["oncoming_automobile","car","vehicle","transportation"],"k":[35,57],"o":0},"blue_car":{"subcategory":"transport-ground","a":"Recreational Vehicle","b":"1F699","d":true,"e":true,"f":true,"h":true,"j":["sport_utility_vehicle","transportation","vehicle"],"k":[35,58],"o":0},"pickup_truck":{"subcategory":"transport-ground","a":"Pickup Truck","b":"1F6FB","d":true,"e":true,"f":true,"h":true,"j":["pickup truck","car","transportation"],"k":[38,31],"o":13},"truck":{"subcategory":"transport-ground","a":"Delivery Truck","b":"1F69A","d":true,"e":true,"f":true,"h":true,"j":["delivery_truck","cars","transportation"],"k":[35,59],"o":0},"articulated_lorry":{"subcategory":"transport-ground","a":"Articulated Lorry","b":"1F69B","d":true,"e":true,"f":true,"h":true,"j":["articulated_lorry","vehicle","cars","transportation","express"],"k":[35,60],"o":1},"tractor":{"subcategory":"transport-ground","a":"Tractor","b":"1F69C","d":true,"e":true,"f":true,"h":true,"j":["tractor","vehicle","car","farming","agriculture"],"k":[36,0],"o":1},"racing_car":{"subcategory":"transport-ground","a":"Racing Car","b":"1F3CE-FE0F","c":"1F3CE","d":true,"e":true,"f":true,"h":true,"j":["racing_car","sports","race","fast","formula","f1"],"k":[9,54],"o":0},"racing_motorcycle":{"subcategory":"transport-ground","a":"Motorcycle","b":"1F3CD-FE0F","c":"1F3CD","d":true,"e":true,"f":true,"h":true,"j":["motorcycle","race","sports","fast"],"k":[9,53],"o":0},"motor_scooter":{"subcategory":"transport-ground","a":"Motor Scooter","b":"1F6F5","d":true,"e":true,"f":true,"h":true,"j":["motor_scooter","vehicle","vespa","sasha"],"k":[38,25],"o":3},"manual_wheelchair":{"subcategory":"transport-ground","a":"Manual Wheelchair","b":"1F9BD","d":true,"e":true,"f":true,"h":true,"j":["manual_wheelchair","accessibility"],"k":[46,4],"o":12},"motorized_wheelchair":{"subcategory":"transport-ground","a":"Motorized Wheelchair","b":"1F9BC","d":true,"e":true,"f":true,"h":true,"j":["motorized_wheelchair","accessibility"],"k":[46,3],"o":12},"auto_rickshaw":{"subcategory":"transport-ground","a":"Auto Rickshaw","b":"1F6FA","d":true,"e":true,"f":true,"h":true,"j":["auto_rickshaw","move","transportation"],"k":[38,30],"o":12},"bike":{"subcategory":"transport-ground","a":"Bicycle","b":"1F6B2","d":true,"e":true,"f":true,"h":true,"j":["bicycle","bike","sports","exercise","hipster"],"k":[36,39],"o":0},"scooter":{"subcategory":"transport-ground","a":"Scooter","b":"1F6F4","d":true,"e":true,"f":true,"h":true,"j":["kick_scooter","vehicle","kick","razor"],"k":[38,24],"o":3},"skateboard":{"subcategory":"transport-ground","a":"Skateboard","b":"1F6F9","d":true,"e":true,"f":true,"h":true,"j":["skateboard","board"],"k":[38,29],"o":11},"roller_skate":{"subcategory":"transport-ground","a":"Roller Skate","b":"1F6FC","d":true,"e":true,"f":true,"h":true,"j":["roller skate","footwear","sports"],"k":[38,32],"o":13},"busstop":{"subcategory":"transport-ground","a":"Bus Stop","b":"1F68F","d":true,"e":true,"f":true,"h":true,"j":["bus_stop","transportation","wait"],"k":[35,48],"o":0},"motorway":{"subcategory":"transport-ground","a":"Motorway","b":"1F6E3-FE0F","c":"1F6E3","d":true,"e":true,"f":true,"h":true,"j":["motorway","road","cupertino","interstate","highway"],"k":[38,16],"o":0},"railway_track":{"subcategory":"transport-ground","a":"Railway Track","b":"1F6E4-FE0F","c":"1F6E4","d":true,"e":true,"f":true,"h":true,"j":["railway_track","train","transportation"],"k":[38,17],"o":0},"oil_drum":{"subcategory":"transport-ground","a":"Oil Drum","b":"1F6E2-FE0F","c":"1F6E2","d":true,"e":true,"f":true,"h":true,"j":["oil_drum","barrell"],"k":[38,15],"o":0},"fuelpump":{"subcategory":"transport-ground","a":"Fuel Pump","b":"26FD","d":true,"e":true,"f":true,"h":true,"j":["fuel_pump","gas station","petroleum"],"k":[58,53],"o":0},"wheel":{"subcategory":"transport-ground","a":"Wheel","b":"1F6DE","d":true,"e":true,"f":true,"h":true,"j":["wheel","car","transport"],"k":[38,11],"o":14},"rotating_light":{"subcategory":"transport-ground","a":"Police Cars Revolving Light","b":"1F6A8","d":true,"e":true,"f":true,"h":true,"j":["police_car_light","police","ambulance","911","emergency","alert","error","pinged","law","legal"],"k":[36,29],"o":0},"traffic_light":{"subcategory":"transport-ground","a":"Horizontal Traffic Light","b":"1F6A5","d":true,"e":true,"f":true,"h":true,"j":["horizontal_traffic_light","transportation","signal"],"k":[36,26],"o":0},"vertical_traffic_light":{"subcategory":"transport-ground","a":"Vertical Traffic Light","b":"1F6A6","d":true,"e":true,"f":true,"h":true,"j":["vertical_traffic_light","transportation","driving"],"k":[36,27],"o":1},"octagonal_sign":{"subcategory":"transport-ground","a":"Octagonal Sign","b":"1F6D1","d":true,"e":true,"f":true,"h":true,"j":["stop_sign","stop"],"k":[38,4],"o":3},"construction":{"subcategory":"transport-ground","a":"Construction Sign","b":"1F6A7","d":true,"e":true,"f":true,"h":true,"j":["construction","wip","progress","caution","warning"],"k":[36,28],"o":0},"anchor":{"subcategory":"transport-water","a":"Anchor","b":"2693","d":true,"e":true,"f":true,"h":true,"j":["anchor","ship","ferry","sea","boat"],"k":[57,60],"o":0},"ring_buoy":{"subcategory":"transport-water","a":"Ring Buoy","b":"1F6DF","d":true,"e":true,"f":true,"h":true,"j":["ring buoy","life saver","life preserver"],"k":[38,12],"o":14},"boat":{"subcategory":"transport-water","a":"Sailboat","b":"26F5","d":true,"e":true,"f":true,"h":true,"j":["sailboat","ship","summer","transportation","water","sailing"],"k":[58,31],"n":["sailboat"],"o":0},"canoe":{"subcategory":"transport-water","a":"Canoe","b":"1F6F6","d":true,"e":true,"f":true,"h":true,"j":["canoe","boat","paddle","water","ship"],"k":[38,26],"o":3},"speedboat":{"subcategory":"transport-water","a":"Speedboat","b":"1F6A4","d":true,"e":true,"f":true,"h":true,"j":["speedboat","ship","transportation","vehicle","summer"],"k":[36,25],"o":0},"passenger_ship":{"subcategory":"transport-water","a":"Passenger Ship","b":"1F6F3-FE0F","c":"1F6F3","d":true,"e":true,"f":true,"h":true,"j":["passenger_ship","yacht","cruise","ferry"],"k":[38,23],"o":0},"ferry":{"subcategory":"transport-water","a":"Ferry","b":"26F4-FE0F","c":"26F4","d":true,"e":true,"f":true,"h":true,"j":["ferry","boat","ship","yacht"],"k":[58,30],"o":0},"motor_boat":{"subcategory":"transport-water","a":"Motor Boat","b":"1F6E5-FE0F","c":"1F6E5","d":true,"e":true,"f":true,"h":true,"j":["motor_boat","ship"],"k":[38,18],"o":0},"ship":{"subcategory":"transport-water","a":"Ship","b":"1F6A2","d":true,"e":true,"f":true,"h":true,"j":["ship","transportation","titanic","deploy"],"k":[36,6],"o":0},"airplane":{"subcategory":"transport-air","a":"Airplane","b":"2708-FE0F","c":"2708","d":true,"e":true,"f":true,"h":true,"j":["airplane","vehicle","transportation","flight","fly"],"k":[58,56],"o":0},"small_airplane":{"subcategory":"transport-air","a":"Small Airplane","b":"1F6E9-FE0F","c":"1F6E9","d":true,"e":true,"f":true,"h":true,"j":["small_airplane","flight","transportation","fly","vehicle"],"k":[38,19],"o":0},"airplane_departure":{"subcategory":"transport-air","a":"Airplane Departure","b":"1F6EB","d":true,"e":true,"f":true,"h":true,"j":["airplane_departure","airport","flight","landing"],"k":[38,20],"o":1},"airplane_arriving":{"subcategory":"transport-air","a":"Airplane Arriving","b":"1F6EC","d":true,"e":true,"f":true,"h":true,"j":["airplane_arrival","airport","flight","boarding"],"k":[38,21],"o":1},"parachute":{"subcategory":"transport-air","a":"Parachute","b":"1FA82","d":true,"e":true,"f":true,"h":true,"j":["parachute","fly","glide"],"k":[54,2],"o":12},"seat":{"subcategory":"transport-air","a":"Seat","b":"1F4BA","d":true,"e":true,"f":true,"h":true,"j":["seat","sit","airplane","transport","bus","flight","fly"],"k":[28,18],"o":0},"helicopter":{"subcategory":"transport-air","a":"Helicopter","b":"1F681","d":true,"e":true,"f":true,"h":true,"j":["helicopter","transportation","vehicle","fly"],"k":[35,34],"o":1},"suspension_railway":{"subcategory":"transport-air","a":"Suspension Railway","b":"1F69F","d":true,"e":true,"f":true,"h":true,"j":["suspension_railway","vehicle","transportation"],"k":[36,3],"o":1},"mountain_cableway":{"subcategory":"transport-air","a":"Mountain Cableway","b":"1F6A0","d":true,"e":true,"f":true,"h":true,"j":["mountain_cableway","transportation","vehicle","ski"],"k":[36,4],"o":1},"aerial_tramway":{"subcategory":"transport-air","a":"Aerial Tramway","b":"1F6A1","d":true,"e":true,"f":true,"h":true,"j":["aerial_tramway","transportation","vehicle","ski"],"k":[36,5],"o":1},"satellite":{"subcategory":"transport-air","a":"Satellite","b":"1F6F0-FE0F","c":"1F6F0","d":true,"e":true,"f":true,"h":true,"j":["satellite","communication","gps","orbit","spaceflight","NASA","ISS"],"k":[38,22],"o":0},"rocket":{"subcategory":"transport-air","a":"Rocket","b":"1F680","d":true,"e":true,"f":true,"h":true,"j":["rocket","launch","ship","staffmode","NASA","outer space","outer_space","fly"],"k":[35,33],"o":0},"flying_saucer":{"subcategory":"transport-air","a":"Flying Saucer","b":"1F6F8","d":true,"e":true,"f":true,"h":true,"j":["flying_saucer","transportation","vehicle","ufo"],"k":[38,28],"o":5},"bellhop_bell":{"subcategory":"hotel","a":"Bellhop Bell","b":"1F6CE-FE0F","c":"1F6CE","d":true,"e":true,"f":true,"h":true,"j":["bellhop_bell","service"],"k":[38,1],"o":0},"luggage":{"subcategory":"hotel","a":"Luggage","b":"1F9F3","d":true,"e":true,"f":true,"h":true,"j":["luggage","packing","travel"],"k":[53,35],"o":11},"hourglass":{"subcategory":"time","a":"Hourglass","b":"231B","d":true,"e":true,"f":true,"h":true,"j":["hourglass_done","time","clock","oldschool","limit","exam","quiz","test"],"k":[56,45],"o":0},"hourglass_flowing_sand":{"subcategory":"time","a":"Hourglass with Flowing Sand","b":"23F3","d":true,"e":true,"f":true,"h":true,"j":["hourglass_not_done","oldschool","time","countdown"],"k":[56,58],"o":0},"watch":{"subcategory":"time","a":"Watch","b":"231A","d":true,"e":true,"f":true,"h":true,"j":["watch","time","accessories"],"k":[56,44],"o":0},"alarm_clock":{"subcategory":"time","a":"Alarm Clock","b":"23F0","d":true,"e":true,"f":true,"h":true,"j":["alarm_clock","time","wake"],"k":[56,55],"o":0},"stopwatch":{"subcategory":"time","a":"Stopwatch","b":"23F1-FE0F","c":"23F1","d":true,"e":true,"f":true,"h":true,"j":["stopwatch","time","deadline"],"k":[56,56],"o":1},"timer_clock":{"subcategory":"time","a":"Timer Clock","b":"23F2-FE0F","c":"23F2","d":true,"e":true,"f":true,"h":true,"j":["timer_clock","alarm"],"k":[56,57],"o":1},"mantelpiece_clock":{"subcategory":"time","a":"Mantelpiece Clock","b":"1F570-FE0F","c":"1F570","d":true,"e":true,"f":true,"h":true,"j":["mantelpiece_clock","time"],"k":[30,58],"o":0},"clock12":{"subcategory":"time","a":"Clock Face Twelve Oclock","b":"1F55B","d":true,"e":true,"f":true,"h":true,"j":["twelve_o_clock","12","00:00","0000","12:00","1200","time","noon","midnight","midday","late","early","schedule"],"k":[30,44],"o":0},"clock1230":{"subcategory":"time","a":"Clock Face Twelve-Thirty","b":"1F567","d":true,"e":true,"f":true,"h":true,"j":["twelve_thirty","00:30","0030","12:30","1230","time","late","early","schedule"],"k":[30,56],"o":0},"clock1":{"subcategory":"time","a":"Clock Face One Oclock","b":"1F550","d":true,"e":true,"f":true,"h":true,"j":["one_o_clock","1","1:00","100","13:00","1300","time","late","early","schedule"],"k":[30,33],"o":0},"clock130":{"subcategory":"time","a":"Clock Face One-Thirty","b":"1F55C","d":true,"e":true,"f":true,"h":true,"j":["one_thirty","1:30","130","13:30","1330","time","late","early","schedule"],"k":[30,45],"o":0},"clock2":{"subcategory":"time","a":"Clock Face Two Oclock","b":"1F551","d":true,"e":true,"f":true,"h":true,"j":["two_o_clock","2","2:00","200","14:00","1400","time","late","early","schedule"],"k":[30,34],"o":0},"clock230":{"subcategory":"time","a":"Clock Face Two-Thirty","b":"1F55D","d":true,"e":true,"f":true,"h":true,"j":["two_thirty","2:30","230","14:30","1430","time","late","early","schedule"],"k":[30,46],"o":0},"clock3":{"subcategory":"time","a":"Clock Face Three Oclock","b":"1F552","d":true,"e":true,"f":true,"h":true,"j":["three_o_clock","3","3:00","300","15:00","1500","time","late","early","schedule"],"k":[30,35],"o":0},"clock330":{"subcategory":"time","a":"Clock Face Three-Thirty","b":"1F55E","d":true,"e":true,"f":true,"h":true,"j":["three_thirty","3:30","330","15:30","1530","time","late","early","schedule"],"k":[30,47],"o":0},"clock4":{"subcategory":"time","a":"Clock Face Four Oclock","b":"1F553","d":true,"e":true,"f":true,"h":true,"j":["four_o_clock","4","4:00","400","16:00","1600","time","late","early","schedule"],"k":[30,36],"o":0},"clock430":{"subcategory":"time","a":"Clock Face Four-Thirty","b":"1F55F","d":true,"e":true,"f":true,"h":true,"j":["four_thirty","4:30","430","16:30","1630","time","late","early","schedule"],"k":[30,48],"o":0},"clock5":{"subcategory":"time","a":"Clock Face Five Oclock","b":"1F554","d":true,"e":true,"f":true,"h":true,"j":["five_o_clock","5","5:00","500","17:00","1700","time","late","early","schedule"],"k":[30,37],"o":0},"clock530":{"subcategory":"time","a":"Clock Face Five-Thirty","b":"1F560","d":true,"e":true,"f":true,"h":true,"j":["five_thirty","5:30","530","17:30","1730","time","late","early","schedule"],"k":[30,49],"o":0},"clock6":{"subcategory":"time","a":"Clock Face Six Oclock","b":"1F555","d":true,"e":true,"f":true,"h":true,"j":["six_o_clock","6","6:00","600","18:00","1800","time","late","early","schedule","dawn","dusk"],"k":[30,38],"o":0},"clock630":{"subcategory":"time","a":"Clock Face Six-Thirty","b":"1F561","d":true,"e":true,"f":true,"h":true,"j":["six_thirty","6:30","630","18:30","1830","time","late","early","schedule"],"k":[30,50],"o":0},"clock7":{"subcategory":"time","a":"Clock Face Seven Oclock","b":"1F556","d":true,"e":true,"f":true,"h":true,"j":["seven_o_clock","7","7:00","700","19:00","1900","time","late","early","schedule"],"k":[30,39],"o":0},"clock730":{"subcategory":"time","a":"Clock Face Seven-Thirty","b":"1F562","d":true,"e":true,"f":true,"h":true,"j":["seven_thirty","7:30","730","19:30","1930","time","late","early","schedule"],"k":[30,51],"o":0},"clock8":{"subcategory":"time","a":"Clock Face Eight Oclock","b":"1F557","d":true,"e":true,"f":true,"h":true,"j":["eight_o_clock","8","8:00","800","20:00","2000","time","late","early","schedule"],"k":[30,40],"o":0},"clock830":{"subcategory":"time","a":"Clock Face Eight-Thirty","b":"1F563","d":true,"e":true,"f":true,"h":true,"j":["eight_thirty","8:30","830","20:30","2030","time","late","early","schedule"],"k":[30,52],"o":0},"clock9":{"subcategory":"time","a":"Clock Face Nine Oclock","b":"1F558","d":true,"e":true,"f":true,"h":true,"j":["nine_o_clock","9","9:00","900","21:00","2100","time","late","early","schedule"],"k":[30,41],"o":0},"clock930":{"subcategory":"time","a":"Clock Face Nine-Thirty","b":"1F564","d":true,"e":true,"f":true,"h":true,"j":["nine_thirty","9:30","930","21:30","2130","time","late","early","schedule"],"k":[30,53],"o":0},"clock10":{"subcategory":"time","a":"Clock Face Ten Oclock","b":"1F559","d":true,"e":true,"f":true,"h":true,"j":["ten_o_clock","10","10:00","1000","22:00","2200","time","late","early","schedule"],"k":[30,42],"o":0},"clock1030":{"subcategory":"time","a":"Clock Face Ten-Thirty","b":"1F565","d":true,"e":true,"f":true,"h":true,"j":["ten_thirty","10:30","1030","22:30","2230","time","late","early","schedule"],"k":[30,54],"o":0},"clock11":{"subcategory":"time","a":"Clock Face Eleven Oclock","b":"1F55A","d":true,"e":true,"f":true,"h":true,"j":["eleven_o_clock","11","11:00","1100","23:00","2300","time","late","early","schedule"],"k":[30,43],"o":0},"clock1130":{"subcategory":"time","a":"Clock Face Eleven-Thirty","b":"1F566","d":true,"e":true,"f":true,"h":true,"j":["eleven_thirty","11:30","1130","23:30","2330","time","late","early","schedule"],"k":[30,55],"o":0},"new_moon":{"subcategory":"sky & weather","a":"New Moon Symbol","b":"1F311","d":true,"e":true,"f":true,"h":true,"j":["new_moon","nature","twilight","planet","space","night","evening","sleep"],"k":[5,16],"o":0},"waxing_crescent_moon":{"subcategory":"sky & weather","a":"Waxing Crescent Moon Symbol","b":"1F312","d":true,"e":true,"f":true,"h":true,"j":["waxing_crescent_moon","nature","twilight","planet","space","night","evening","sleep"],"k":[5,17],"o":1},"first_quarter_moon":{"subcategory":"sky & weather","a":"First Quarter Moon Symbol","b":"1F313","d":true,"e":true,"f":true,"h":true,"j":["first_quarter_moon","nature","twilight","planet","space","night","evening","sleep"],"k":[5,18],"o":0},"moon":{"subcategory":"sky & weather","a":"Waxing Gibbous Moon Symbol","b":"1F314","d":true,"e":true,"f":true,"h":true,"j":["waxing_gibbous_moon","nature","night","sky","gray","twilight","planet","space","evening","sleep"],"k":[5,19],"n":["waxing_gibbous_moon"],"o":0},"full_moon":{"subcategory":"sky & weather","a":"Full Moon Symbol","b":"1F315","d":true,"e":true,"f":true,"h":true,"j":["full_moon","nature","yellow","twilight","planet","space","night","evening","sleep"],"k":[5,20],"o":0},"waning_gibbous_moon":{"subcategory":"sky & weather","a":"Waning Gibbous Moon Symbol","b":"1F316","d":true,"e":true,"f":true,"h":true,"j":["waning_gibbous_moon","nature","twilight","planet","space","night","evening","sleep","waxing_gibbous_moon"],"k":[5,21],"o":1},"last_quarter_moon":{"subcategory":"sky & weather","a":"Last Quarter Moon Symbol","b":"1F317","d":true,"e":true,"f":true,"h":true,"j":["last_quarter_moon","nature","twilight","planet","space","night","evening","sleep"],"k":[5,22],"o":1},"waning_crescent_moon":{"subcategory":"sky & weather","a":"Waning Crescent Moon Symbol","b":"1F318","d":true,"e":true,"f":true,"h":true,"j":["waning_crescent_moon","nature","twilight","planet","space","night","evening","sleep"],"k":[5,23],"o":1},"crescent_moon":{"subcategory":"sky & weather","a":"Crescent Moon","b":"1F319","d":true,"e":true,"f":true,"h":true,"j":["crescent_moon","night","sleep","sky","evening","magic"],"k":[5,24],"o":0},"new_moon_with_face":{"subcategory":"sky & weather","a":"New Moon with Face","b":"1F31A","d":true,"e":true,"f":true,"h":true,"j":["new_moon_face","nature","twilight","planet","space","night","evening","sleep"],"k":[5,25],"o":1},"first_quarter_moon_with_face":{"subcategory":"sky & weather","a":"First Quarter Moon with Face","b":"1F31B","d":true,"e":true,"f":true,"h":true,"j":["first_quarter_moon_face","nature","twilight","planet","space","night","evening","sleep"],"k":[5,26],"o":0},"last_quarter_moon_with_face":{"subcategory":"sky & weather","a":"Last Quarter Moon with Face","b":"1F31C","d":true,"e":true,"f":true,"h":true,"j":["last_quarter_moon_face","nature","twilight","planet","space","night","evening","sleep"],"k":[5,27],"o":0},"thermometer":{"subcategory":"sky & weather","a":"Thermometer","b":"1F321-FE0F","c":"1F321","d":true,"e":true,"f":true,"h":true,"j":["thermometer","weather","temperature","hot","cold"],"k":[5,32],"o":0},"sunny":{"subcategory":"sky & weather","a":"Black Sun with Rays","b":"2600-FE0F","c":"2600","d":true,"e":true,"f":true,"h":true,"j":["sun","weather","nature","brightness","summer","beach","spring"],"k":[57,10],"o":0},"full_moon_with_face":{"subcategory":"sky & weather","a":"Full Moon with Face","b":"1F31D","d":true,"e":true,"f":true,"h":true,"j":["full_moon_face","nature","twilight","planet","space","night","evening","sleep"],"k":[5,28],"o":1},"sun_with_face":{"subcategory":"sky & weather","a":"Sun with Face","b":"1F31E","d":true,"e":true,"f":true,"h":true,"j":["sun_with_face","nature","morning","sky"],"k":[5,29],"o":1},"ringed_planet":{"subcategory":"sky & weather","a":"Ringed Planet","b":"1FA90","d":true,"e":true,"f":true,"h":true,"j":["ringed_planet","outerspace"],"k":[54,9],"o":12},"star":{"subcategory":"sky & weather","a":"White Medium Star","b":"2B50","d":true,"e":true,"f":true,"h":true,"j":["star","night","yellow"],"k":[59,55],"o":0},"star2":{"subcategory":"sky & weather","a":"Glowing Star","b":"1F31F","d":true,"e":true,"f":true,"h":true,"j":["glowing_star","night","sparkle","awesome","good","magic"],"k":[5,30],"o":0},"stars":{"subcategory":"sky & weather","a":"Shooting Star","b":"1F320","d":true,"e":true,"f":true,"h":true,"j":["shooting_star","night","photo"],"k":[5,31],"o":0},"milky_way":{"subcategory":"sky & weather","a":"Milky Way","b":"1F30C","d":true,"e":true,"f":true,"h":true,"j":["milky_way","photo","space","stars"],"k":[5,11],"o":0},"cloud":{"subcategory":"sky & weather","a":"Cloud","b":"2601-FE0F","c":"2601","d":true,"e":true,"f":true,"h":true,"j":["cloud","weather","sky"],"k":[57,11],"o":0},"partly_sunny":{"subcategory":"sky & weather","a":"Sun Behind Cloud","b":"26C5","d":true,"e":true,"f":true,"h":true,"j":["sun_behind_cloud","weather","nature","cloudy","morning","fall","spring"],"k":[58,17],"o":0},"thunder_cloud_and_rain":{"subcategory":"sky & weather","a":"Cloud with Lightning and Rain","b":"26C8-FE0F","c":"26C8","d":true,"e":true,"f":true,"h":true,"j":["cloud_with_lightning_and_rain","weather","lightning"],"k":[58,18],"o":0},"mostly_sunny":{"subcategory":"sky & weather","a":"Sun Behind Small Cloud","b":"1F324-FE0F","c":"1F324","d":true,"e":true,"f":true,"h":true,"j":["sun_behind_small_cloud","weather"],"k":[5,33],"n":["sun_small_cloud"],"o":0},"barely_sunny":{"subcategory":"sky & weather","a":"Sun Behind Large Cloud","b":"1F325-FE0F","c":"1F325","d":true,"e":true,"f":true,"h":true,"j":["sun_behind_large_cloud","weather"],"k":[5,34],"n":["sun_behind_cloud"],"o":0},"partly_sunny_rain":{"subcategory":"sky & weather","a":"Sun Behind Rain Cloud","b":"1F326-FE0F","c":"1F326","d":true,"e":true,"f":true,"h":true,"j":["sun_behind_rain_cloud","weather"],"k":[5,35],"n":["sun_behind_rain_cloud"],"o":0},"rain_cloud":{"subcategory":"sky & weather","a":"Cloud with Rain","b":"1F327-FE0F","c":"1F327","d":true,"e":true,"f":true,"h":true,"j":["cloud_with_rain","weather"],"k":[5,36],"o":0},"snow_cloud":{"subcategory":"sky & weather","a":"Cloud with Snow","b":"1F328-FE0F","c":"1F328","d":true,"e":true,"f":true,"h":true,"j":["cloud_with_snow","weather"],"k":[5,37],"o":0},"lightning":{"subcategory":"sky & weather","a":"Cloud with Lightning","b":"1F329-FE0F","c":"1F329","d":true,"e":true,"f":true,"h":true,"j":["cloud_with_lightning","weather","thunder"],"k":[5,38],"n":["lightning_cloud"],"o":0},"tornado":{"subcategory":"sky & weather","a":"Tornado","b":"1F32A-FE0F","c":"1F32A","d":true,"e":true,"f":true,"h":true,"j":["tornado","weather","cyclone","twister"],"k":[5,39],"n":["tornado_cloud"],"o":0},"fog":{"subcategory":"sky & weather","a":"Fog","b":"1F32B-FE0F","c":"1F32B","d":true,"e":true,"f":true,"h":true,"j":["fog","weather"],"k":[5,40],"o":0},"wind_blowing_face":{"subcategory":"sky & weather","a":"Wind Face","b":"1F32C-FE0F","c":"1F32C","d":true,"e":true,"f":true,"h":true,"j":["wind_face","gust","air"],"k":[5,41],"o":0},"cyclone":{"subcategory":"sky & weather","a":"Cyclone","b":"1F300","d":true,"e":true,"f":true,"h":true,"j":["cyclone","weather","swirl","blue","cloud","vortex","spiral","whirlpool","spin","tornado","hurricane","typhoon"],"k":[4,60],"o":0},"rainbow":{"subcategory":"sky & weather","a":"Rainbow","b":"1F308","d":true,"e":true,"f":true,"h":true,"j":["rainbow","nature","happy","unicorn_face","photo","sky","spring"],"k":[5,7],"o":0},"closed_umbrella":{"subcategory":"sky & weather","a":"Closed Umbrella","b":"1F302","d":true,"e":true,"f":true,"h":true,"j":["closed_umbrella","weather","rain","drizzle"],"k":[5,1],"o":0},"umbrella":{"subcategory":"sky & weather","a":"Umbrella","b":"2602-FE0F","c":"2602","d":true,"e":true,"f":true,"h":true,"j":["umbrella","weather","spring"],"k":[57,12],"o":0},"umbrella_with_rain_drops":{"subcategory":"sky & weather","a":"Umbrella with Rain Drops","b":"2614","d":true,"e":true,"f":true,"h":true,"j":["umbrella_with_rain_drops","rainy","weather","spring"],"k":[57,17],"o":0},"umbrella_on_ground":{"subcategory":"sky & weather","a":"Umbrella on Ground","b":"26F1-FE0F","c":"26F1","d":true,"e":true,"f":true,"h":true,"j":["umbrella_on_ground","weather","summer"],"k":[58,27],"o":0},"zap":{"subcategory":"sky & weather","a":"High Voltage Sign","b":"26A1","d":true,"e":true,"f":true,"h":true,"j":["high_voltage","thunder","weather","lightning bolt","fast","zap"],"k":[58,8],"o":0},"snowflake":{"subcategory":"sky & weather","a":"Snowflake","b":"2744-FE0F","c":"2744","d":true,"e":true,"f":true,"h":true,"j":["snowflake","winter","season","cold","weather","christmas","xmas"],"k":[59,30],"o":0},"snowman":{"subcategory":"sky & weather","a":"Snowman","b":"2603-FE0F","c":"2603","d":true,"e":true,"f":true,"h":true,"j":["snowman","winter","season","cold","weather","christmas","xmas","frozen"],"k":[57,13],"o":0},"snowman_without_snow":{"subcategory":"sky & weather","a":"Snowman Without Snow","b":"26C4","d":true,"e":true,"f":true,"h":true,"j":["snowman_without_snow","winter","season","cold","weather","christmas","xmas","frozen","without_snow"],"k":[58,16],"o":0},"comet":{"subcategory":"sky & weather","a":"Comet","b":"2604-FE0F","c":"2604","d":true,"e":true,"f":true,"h":true,"j":["comet","space"],"k":[57,14],"o":1},"fire":{"subcategory":"sky & weather","a":"Fire","b":"1F525","d":true,"e":true,"f":true,"h":true,"j":["fire","hot","cook","flame"],"k":[30,2],"o":0},"droplet":{"subcategory":"sky & weather","a":"Droplet","b":"1F4A7","d":true,"e":true,"f":true,"h":true,"j":["droplet","water","drip","faucet","spring"],"k":[27,55],"o":0},"ocean":{"subcategory":"sky & weather","a":"Water Wave","b":"1F30A","d":true,"e":true,"f":true,"h":true,"j":["water_wave","sea","water","wave","nature","tsunami","disaster"],"k":[5,9],"o":0},"jack_o_lantern":{"subcategory":"event","a":"Jack-O-Lantern","b":"1F383","d":true,"e":true,"f":true,"h":true,"j":["jack_o_lantern","halloween","light","pumpkin","creepy","fall"],"k":[7,6],"o":0},"christmas_tree":{"subcategory":"event","a":"Christmas Tree","b":"1F384","d":true,"e":true,"f":true,"h":true,"j":["christmas_tree","festival","vacation","december","xmas","celebration"],"k":[7,7],"o":0},"fireworks":{"subcategory":"event","a":"Fireworks","b":"1F386","d":true,"e":true,"f":true,"h":true,"j":["fireworks","photo","festival","carnival","congratulations"],"k":[7,14],"o":0},"sparkler":{"subcategory":"event","a":"Firework Sparkler","b":"1F387","d":true,"e":true,"f":true,"h":true,"j":["sparkler","stars","night","shine"],"k":[7,15],"o":0},"firecracker":{"subcategory":"event","a":"Firecracker","b":"1F9E8","d":true,"e":true,"f":true,"h":true,"j":["firecracker","dynamite","boom","explode","explosion","explosive"],"k":[53,24],"o":11},"sparkles":{"subcategory":"event","a":"Sparkles","b":"2728","d":true,"e":true,"f":true,"h":true,"j":["sparkles","stars","shine","shiny","cool","awesome","good","magic"],"k":[59,27],"o":0},"balloon":{"subcategory":"event","a":"Balloon","b":"1F388","d":true,"e":true,"f":true,"h":true,"j":["balloon","party","celebration","birthday","circus"],"k":[7,16],"o":0},"tada":{"subcategory":"event","a":"Party Popper","b":"1F389","d":true,"e":true,"f":true,"h":true,"j":["party_popper","party","congratulations","birthday","magic","circus","celebration","tada"],"k":[7,17],"o":0},"confetti_ball":{"subcategory":"event","a":"Confetti Ball","b":"1F38A","d":true,"e":true,"f":true,"h":true,"j":["confetti_ball","festival","party","birthday","circus"],"k":[7,18],"o":0},"tanabata_tree":{"subcategory":"event","a":"Tanabata Tree","b":"1F38B","d":true,"e":true,"f":true,"h":true,"j":["tanabata_tree","plant","nature","branch","summer","bamboo","wish","star_festival","tanzaku"],"k":[7,19],"o":0},"bamboo":{"subcategory":"event","a":"Pine Decoration","b":"1F38D","d":true,"e":true,"f":true,"h":true,"j":["pine_decoration","japanese","plant","nature","vegetable","panda","new_years","bamboo"],"k":[7,21],"o":0},"dolls":{"subcategory":"event","a":"Japanese Dolls","b":"1F38E","d":true,"e":true,"f":true,"h":true,"j":["japanese_dolls","japanese","toy","kimono"],"k":[7,22],"o":0},"flags":{"subcategory":"event","a":"Carp Streamer","b":"1F38F","d":true,"e":true,"f":true,"h":true,"j":["carp_streamer","fish","japanese","koinobori","carp","banner"],"k":[7,23],"o":0},"wind_chime":{"subcategory":"event","a":"Wind Chime","b":"1F390","d":true,"e":true,"f":true,"h":true,"j":["wind_chime","nature","ding","spring","bell"],"k":[7,24],"o":0},"rice_scene":{"subcategory":"event","a":"Moon Viewing Ceremony","b":"1F391","d":true,"e":true,"f":true,"h":true,"j":["moon_viewing_ceremony","photo","japan","asia","tsukimi"],"k":[7,25],"o":0},"red_envelope":{"subcategory":"event","a":"Red Gift Envelope","b":"1F9E7","d":true,"e":true,"f":true,"h":true,"j":["red_envelope","gift"],"k":[53,23],"o":11},"ribbon":{"subcategory":"event","a":"Ribbon","b":"1F380","d":true,"e":true,"f":true,"h":true,"j":["ribbon","decoration","pink","girl","bowtie"],"k":[7,3],"o":0},"gift":{"subcategory":"event","a":"Wrapped Present","b":"1F381","d":true,"e":true,"f":true,"h":true,"j":["wrapped_gift","present","birthday","christmas","xmas"],"k":[7,4],"o":0},"reminder_ribbon":{"subcategory":"event","a":"Reminder Ribbon","b":"1F397-FE0F","c":"1F397","d":true,"e":true,"f":true,"h":true,"j":["reminder_ribbon","sports","cause","support","awareness"],"k":[7,29],"o":0},"admission_tickets":{"subcategory":"event","a":"Admission Tickets","b":"1F39F-FE0F","c":"1F39F","d":true,"e":true,"f":true,"h":true,"j":["admission_tickets","sports","concert","entrance"],"k":[7,34],"o":0},"ticket":{"subcategory":"event","a":"Ticket","b":"1F3AB","d":true,"e":true,"f":true,"h":true,"j":["ticket","event","concert","pass"],"k":[7,46],"o":0},"medal":{"subcategory":"award-medal","a":"Military Medal","b":"1F396-FE0F","c":"1F396","d":true,"e":true,"f":true,"h":true,"j":["military_medal","award","winning","army"],"k":[7,28],"o":0},"trophy":{"subcategory":"award-medal","a":"Trophy","b":"1F3C6","d":true,"e":true,"f":true,"h":true,"j":["trophy","win","award","contest","place","ftw","ceremony"],"k":[8,51],"o":0},"sports_medal":{"subcategory":"award-medal","a":"Sports Medal","b":"1F3C5","d":true,"e":true,"f":true,"h":true,"j":["sports_medal","award","winning"],"k":[8,50],"o":1},"first_place_medal":{"subcategory":"award-medal","a":"First Place Medal","b":"1F947","d":true,"e":true,"f":true,"h":true,"j":["1st_place_medal","award","winning","first"],"k":[43,19],"o":3},"second_place_medal":{"subcategory":"award-medal","a":"Second Place Medal","b":"1F948","d":true,"e":true,"f":true,"h":true,"j":["2nd_place_medal","award","second"],"k":[43,20],"o":3},"third_place_medal":{"subcategory":"award-medal","a":"Third Place Medal","b":"1F949","d":true,"e":true,"f":true,"h":true,"j":["3rd_place_medal","award","third"],"k":[43,21],"o":3},"soccer":{"subcategory":"sport","a":"Soccer Ball","b":"26BD","d":true,"e":true,"f":true,"h":true,"j":["soccer_ball","sports","football"],"k":[58,14],"o":0},"baseball":{"subcategory":"sport","a":"Baseball","b":"26BE","d":true,"e":true,"f":true,"h":true,"j":["baseball","sports","balls"],"k":[58,15],"o":0},"softball":{"subcategory":"sport","a":"Softball","b":"1F94E","d":true,"e":true,"f":true,"h":true,"j":["softball","sports","balls"],"k":[43,26],"o":11},"basketball":{"subcategory":"sport","a":"Basketball and Hoop","b":"1F3C0","d":true,"e":true,"f":true,"h":true,"j":["basketball","sports","balls","NBA"],"k":[8,6],"o":0},"volleyball":{"subcategory":"sport","a":"Volleyball","b":"1F3D0","d":true,"e":true,"f":true,"h":true,"j":["volleyball","sports","balls"],"k":[9,56],"o":1},"football":{"subcategory":"sport","a":"American Football","b":"1F3C8","d":true,"e":true,"f":true,"h":true,"j":["american_football","sports","balls","NFL"],"k":[8,58],"o":0},"rugby_football":{"subcategory":"sport","a":"Rugby Football","b":"1F3C9","d":true,"e":true,"f":true,"h":true,"j":["rugby_football","sports","team"],"k":[8,59],"o":1},"tennis":{"subcategory":"sport","a":"Tennis Racquet and Ball","b":"1F3BE","d":true,"e":true,"f":true,"h":true,"j":["tennis","sports","balls","green"],"k":[8,4],"o":0},"flying_disc":{"subcategory":"sport","a":"Flying Disc","b":"1F94F","d":true,"e":true,"f":true,"h":true,"j":["flying_disc","sports","frisbee","ultimate"],"k":[43,27],"o":11},"bowling":{"subcategory":"sport","a":"Bowling","b":"1F3B3","d":true,"e":true,"f":true,"h":true,"j":["bowling","sports","fun","play"],"k":[7,54],"o":0},"cricket_bat_and_ball":{"subcategory":"sport","a":"Cricket Bat and Ball","b":"1F3CF","d":true,"e":true,"f":true,"h":true,"j":["cricket_game","sports"],"k":[9,55],"o":1},"field_hockey_stick_and_ball":{"subcategory":"sport","a":"Field Hockey Stick and Ball","b":"1F3D1","d":true,"e":true,"f":true,"h":true,"j":["field_hockey","sports"],"k":[9,57],"o":1},"ice_hockey_stick_and_puck":{"subcategory":"sport","a":"Ice Hockey Stick and Puck","b":"1F3D2","d":true,"e":true,"f":true,"h":true,"j":["ice_hockey","sports"],"k":[9,58],"o":1},"lacrosse":{"subcategory":"sport","a":"Lacrosse Stick and Ball","b":"1F94D","d":true,"e":true,"f":true,"h":true,"j":["lacrosse","sports","ball","stick"],"k":[43,25],"o":11},"table_tennis_paddle_and_ball":{"subcategory":"sport","a":"Table Tennis Paddle and Ball","b":"1F3D3","d":true,"e":true,"f":true,"h":true,"j":["ping_pong","sports","pingpong"],"k":[9,59],"o":1},"badminton_racquet_and_shuttlecock":{"subcategory":"sport","a":"Badminton Racquet and Shuttlecock","b":"1F3F8","d":true,"e":true,"f":true,"h":true,"j":["badminton","sports"],"k":[10,38],"o":1},"boxing_glove":{"subcategory":"sport","a":"Boxing Glove","b":"1F94A","d":true,"e":true,"f":true,"h":true,"j":["boxing_glove","sports","fighting"],"k":[43,22],"o":3},"martial_arts_uniform":{"subcategory":"sport","a":"Martial Arts Uniform","b":"1F94B","d":true,"e":true,"f":true,"h":true,"j":["martial_arts_uniform","judo","karate","taekwondo"],"k":[43,23],"o":3},"goal_net":{"subcategory":"sport","a":"Goal Net","b":"1F945","d":true,"e":true,"f":true,"h":true,"j":["goal_net","sports"],"k":[43,18],"o":3},"golf":{"subcategory":"sport","a":"Flag in Hole","b":"26F3","d":true,"e":true,"f":true,"h":true,"j":["flag_in_hole","sports","business","flag","hole","summer"],"k":[58,29],"o":0},"ice_skate":{"subcategory":"sport","a":"Ice Skate","b":"26F8-FE0F","c":"26F8","d":true,"e":true,"f":true,"h":true,"j":["ice_skate","sports"],"k":[58,33],"o":0},"fishing_pole_and_fish":{"subcategory":"sport","a":"Fishing Pole and Fish","b":"1F3A3","d":true,"e":true,"f":true,"h":true,"j":["fishing_pole","food","hobby","summer"],"k":[7,38],"o":0},"diving_mask":{"subcategory":"sport","a":"Diving Mask","b":"1F93F","d":true,"e":true,"f":true,"h":true,"j":["diving_mask","sport","ocean"],"k":[43,12],"o":12},"running_shirt_with_sash":{"subcategory":"sport","a":"Running Shirt with Sash","b":"1F3BD","d":true,"e":true,"f":true,"h":true,"j":["running_shirt","play","pageant"],"k":[8,3],"o":0},"ski":{"subcategory":"sport","a":"Ski and Ski Boot","b":"1F3BF","d":true,"e":true,"f":true,"h":true,"j":["skis","sports","winter","cold","snow"],"k":[8,5],"o":0},"sled":{"subcategory":"sport","a":"Sled","b":"1F6F7","d":true,"e":true,"f":true,"h":true,"j":["sled","sleigh","luge","toboggan"],"k":[38,27],"o":5},"curling_stone":{"subcategory":"sport","a":"Curling Stone","b":"1F94C","d":true,"e":true,"f":true,"h":true,"j":["curling_stone","sports"],"k":[43,24],"o":5},"dart":{"subcategory":"game","a":"Direct Hit","b":"1F3AF","d":true,"e":true,"f":true,"h":true,"j":["direct_hit","game","play","bar","target","bullseye"],"k":[7,50],"o":0},"yo-yo":{"subcategory":"game","a":"Yo-Yo","b":"1FA80","d":true,"e":true,"f":true,"h":true,"j":["yo_yo","toy"],"k":[54,0],"o":12},"kite":{"subcategory":"game","a":"Kite","b":"1FA81","d":true,"e":true,"f":true,"h":true,"j":["kite","wind","fly"],"k":[54,1],"o":12},"gun":{"subcategory":"game","a":"Pistol","b":"1F52B","d":true,"e":true,"f":true,"h":true,"j":["pistol","violence","weapon","revolver"],"k":[30,8],"o":0},"8ball":{"subcategory":"game","a":"Billiards","b":"1F3B1","d":true,"e":true,"f":true,"h":true,"j":["pool_8_ball","pool","hobby","game","luck","magic"],"k":[7,52],"o":0},"crystal_ball":{"subcategory":"game","a":"Crystal Ball","b":"1F52E","d":true,"e":true,"f":true,"h":true,"j":["crystal_ball","disco","party","magic","circus","fortune_teller"],"k":[30,11],"o":0},"magic_wand":{"subcategory":"game","a":"Magic Wand","b":"1FA84","d":true,"e":true,"f":true,"h":true,"j":["magic wand","supernature","power"],"k":[54,4],"o":13},"video_game":{"subcategory":"game","a":"Video Game","b":"1F3AE","d":true,"e":true,"f":true,"h":true,"j":["video_game","play","console","PS4","controller"],"k":[7,49],"o":0},"joystick":{"subcategory":"game","a":"Joystick","b":"1F579-FE0F","c":"1F579","d":true,"e":true,"f":true,"h":true,"j":["joystick","game","play"],"k":[31,26],"o":0},"slot_machine":{"subcategory":"game","a":"Slot Machine","b":"1F3B0","d":true,"e":true,"f":true,"h":true,"j":["slot_machine","bet","gamble","vegas","fruit machine","luck","casino"],"k":[7,51],"o":0},"game_die":{"subcategory":"game","a":"Game Die","b":"1F3B2","d":true,"e":true,"f":true,"h":true,"j":["game_die","dice","random","tabletop","play","luck"],"k":[7,53],"o":0},"jigsaw":{"subcategory":"game","a":"Jigsaw Puzzle Piece","b":"1F9E9","d":true,"e":true,"f":true,"h":true,"j":["puzzle_piece","interlocking","puzzle","piece"],"k":[53,25],"o":11},"teddy_bear":{"subcategory":"game","a":"Teddy Bear","b":"1F9F8","d":true,"e":true,"f":true,"h":true,"j":["teddy_bear","plush","stuffed"],"k":[53,40],"o":11},"pinata":{"subcategory":"game","a":"Pinata","b":"1FA85","d":true,"e":true,"f":true,"h":true,"j":["pinata","mexico","candy","celebration"],"k":[54,5],"o":13},"mirror_ball":{"subcategory":"game","a":"Mirror Ball","b":"1FAA9","d":true,"e":true,"f":true,"h":true,"j":["mirror ball","disco","dance","party"],"k":[54,34],"o":14},"nesting_dolls":{"subcategory":"game","a":"Nesting Dolls","b":"1FA86","d":true,"e":true,"f":true,"h":true,"j":["nesting dolls","matryoshka","toy"],"k":[54,6],"o":13},"spades":{"subcategory":"game","a":"Black Spade Suit","b":"2660-FE0F","c":"2660","d":true,"e":true,"f":true,"h":true,"j":["spade_suit","poker","cards","suits","magic"],"k":[57,51],"o":0},"hearts":{"subcategory":"game","a":"Black Heart Suit","b":"2665-FE0F","c":"2665","d":true,"e":true,"f":true,"h":true,"j":["heart_suit","poker","cards","magic","suits"],"k":[57,53],"o":0},"diamonds":{"subcategory":"game","a":"Black Diamond Suit","b":"2666-FE0F","c":"2666","d":true,"e":true,"f":true,"h":true,"j":["diamond_suit","poker","cards","magic","suits"],"k":[57,54],"o":0},"clubs":{"subcategory":"game","a":"Black Club Suit","b":"2663-FE0F","c":"2663","d":true,"e":true,"f":true,"h":true,"j":["club_suit","poker","cards","magic","suits"],"k":[57,52],"o":0},"chess_pawn":{"subcategory":"game","a":"Chess Pawn","b":"265F-FE0F","c":"265F","d":true,"e":true,"f":true,"h":true,"j":["chess_pawn","expendable"],"k":[57,50],"o":11},"black_joker":{"subcategory":"game","a":"Playing Card Black Joker","b":"1F0CF","d":true,"e":true,"f":true,"h":true,"j":["joker","poker","cards","game","play","magic"],"k":[0,15],"o":0},"mahjong":{"subcategory":"game","a":"Mahjong Tile Red Dragon","b":"1F004","d":true,"e":true,"f":true,"h":true,"j":["mahjong_red_dragon","game","play","chinese","kanji"],"k":[0,14],"o":0},"flower_playing_cards":{"subcategory":"game","a":"Flower Playing Cards","b":"1F3B4","d":true,"e":true,"f":true,"h":true,"j":["flower_playing_cards","game","sunset","red"],"k":[7,55],"o":0},"performing_arts":{"subcategory":"arts & crafts","a":"Performing Arts","b":"1F3AD","d":true,"e":true,"f":true,"h":true,"j":["performing_arts","acting","theater","drama"],"k":[7,48],"o":0},"frame_with_picture":{"subcategory":"arts & crafts","a":"Framed Picture","b":"1F5BC-FE0F","c":"1F5BC","d":true,"e":true,"f":true,"h":true,"j":["framed_picture","photography"],"k":[32,0],"o":0},"art":{"subcategory":"arts & crafts","a":"Artist Palette","b":"1F3A8","d":true,"e":true,"f":true,"h":true,"j":["artist_palette","design","paint","draw","colors"],"k":[7,43],"o":0},"thread":{"subcategory":"arts & crafts","a":"Spool of Thread","b":"1F9F5","d":true,"e":true,"f":true,"h":true,"j":["thread","needle","sewing","spool","string"],"k":[53,37],"o":11},"sewing_needle":{"subcategory":"arts & crafts","a":"Sewing Needle","b":"1FAA1","d":true,"e":true,"f":true,"h":true,"j":["sewing needle","stitches"],"k":[54,26],"o":13},"yarn":{"subcategory":"arts & crafts","a":"Ball of Yarn","b":"1F9F6","d":true,"e":true,"f":true,"h":true,"j":["yarn","ball","crochet","knit"],"k":[53,38],"o":11},"knot":{"subcategory":"arts & crafts","a":"Knot","b":"1FAA2","d":true,"e":true,"f":true,"h":true,"j":["knot","rope","scout"],"k":[54,27],"o":13},"eyeglasses":{"subcategory":"clothing","a":"Eyeglasses","b":"1F453","d":true,"e":true,"f":true,"h":true,"j":["glasses","fashion","accessories","eyesight","nerdy","dork","geek"],"k":[13,16],"o":0},"dark_sunglasses":{"subcategory":"clothing","a":"Sunglasses","b":"1F576-FE0F","c":"1F576","d":true,"e":true,"f":true,"h":true,"j":["sunglasses","face","cool","accessories"],"k":[31,23],"o":0},"goggles":{"subcategory":"clothing","a":"Goggles","b":"1F97D","d":true,"e":true,"f":true,"h":true,"j":["goggles","eyes","protection","safety"],"k":[44,17],"o":11},"lab_coat":{"subcategory":"clothing","a":"Lab Coat","b":"1F97C","d":true,"e":true,"f":true,"h":true,"j":["lab_coat","doctor","experiment","scientist","chemist"],"k":[44,16],"o":11},"safety_vest":{"subcategory":"clothing","a":"Safety Vest","b":"1F9BA","d":true,"e":true,"f":true,"h":true,"j":["safety_vest","protection"],"k":[45,57],"o":12},"necktie":{"subcategory":"clothing","a":"Necktie","b":"1F454","d":true,"e":true,"f":true,"h":true,"j":["necktie","shirt","suitup","formal","fashion","cloth","business"],"k":[13,17],"o":0},"shirt":{"subcategory":"clothing","a":"T-Shirt","b":"1F455","d":true,"e":true,"f":true,"h":true,"j":["t_shirt","fashion","cloth","casual","shirt","tee"],"k":[13,18],"n":["tshirt"],"o":0},"jeans":{"subcategory":"clothing","a":"Jeans","b":"1F456","d":true,"e":true,"f":true,"h":true,"j":["jeans","fashion","shopping"],"k":[13,19],"o":0},"scarf":{"subcategory":"clothing","a":"Scarf","b":"1F9E3","d":true,"e":true,"f":true,"h":true,"j":["scarf","neck","winter","clothes"],"k":[53,19],"o":5},"gloves":{"subcategory":"clothing","a":"Gloves","b":"1F9E4","d":true,"e":true,"f":true,"h":true,"j":["gloves","hands","winter","clothes"],"k":[53,20],"o":5},"coat":{"subcategory":"clothing","a":"Coat","b":"1F9E5","d":true,"e":true,"f":true,"h":true,"j":["coat","jacket"],"k":[53,21],"o":5},"socks":{"subcategory":"clothing","a":"Socks","b":"1F9E6","d":true,"e":true,"f":true,"h":true,"j":["socks","stockings","clothes"],"k":[53,22],"o":5},"dress":{"subcategory":"clothing","a":"Dress","b":"1F457","d":true,"e":true,"f":true,"h":true,"j":["dress","clothes","fashion","shopping"],"k":[13,20],"o":0},"kimono":{"subcategory":"clothing","a":"Kimono","b":"1F458","d":true,"e":true,"f":true,"h":true,"j":["kimono","dress","fashion","women","female","japanese"],"k":[13,21],"o":0},"sari":{"subcategory":"clothing","a":"Sari","b":"1F97B","d":true,"e":true,"f":true,"h":true,"j":["sari","dress"],"k":[44,15],"o":12},"one-piece_swimsuit":{"subcategory":"clothing","a":"One-Piece Swimsuit","b":"1FA71","d":true,"e":true,"f":true,"h":true,"j":["one_piece_swimsuit","fashion"],"k":[53,49],"o":12},"briefs":{"subcategory":"clothing","a":"Briefs","b":"1FA72","d":true,"e":true,"f":true,"h":true,"j":["briefs","clothing"],"k":[53,50],"o":12},"shorts":{"subcategory":"clothing","a":"Shorts","b":"1FA73","d":true,"e":true,"f":true,"h":true,"j":["shorts","clothing"],"k":[53,51],"o":12},"bikini":{"subcategory":"clothing","a":"Bikini","b":"1F459","d":true,"e":true,"f":true,"h":true,"j":["bikini","swimming","female","woman","girl","fashion","beach","summer"],"k":[13,22],"o":0},"womans_clothes":{"subcategory":"clothing","a":"Womans Clothes","b":"1F45A","d":true,"e":true,"f":true,"h":true,"j":["woman_s_clothes","fashion","shopping_bags","female"],"k":[13,23],"o":0},"folding_hand_fan":{"subcategory":"clothing","a":"Folding Hand Fan","b":"1FAAD","d":true,"e":true,"f":false,"h":false,"j":["folding hand fan","flamenco","hot"],"k":[54,38],"o":15},"purse":{"subcategory":"clothing","a":"Purse","b":"1F45B","d":true,"e":true,"f":true,"h":true,"j":["purse","fashion","accessories","money","sales","shopping"],"k":[13,24],"o":0},"handbag":{"subcategory":"clothing","a":"Handbag","b":"1F45C","d":true,"e":true,"f":true,"h":true,"j":["handbag","fashion","accessory","accessories","shopping"],"k":[13,25],"o":0},"pouch":{"subcategory":"clothing","a":"Pouch","b":"1F45D","d":true,"e":true,"f":true,"h":true,"j":["clutch_bag","bag","accessories","shopping"],"k":[13,26],"o":0},"shopping_bags":{"subcategory":"clothing","a":"Shopping Bags","b":"1F6CD-FE0F","c":"1F6CD","d":true,"e":true,"f":true,"h":true,"j":["shopping_bags","mall","buy","purchase"],"k":[38,0],"o":0},"school_satchel":{"subcategory":"clothing","a":"School Satchel","b":"1F392","d":true,"e":true,"f":true,"h":true,"j":["backpack","student","education","bag"],"k":[7,26],"o":0},"thong_sandal":{"subcategory":"clothing","a":"Thong Sandal","b":"1FA74","d":true,"e":true,"f":true,"h":true,"j":["thong sandal","footwear","summer"],"k":[53,52],"o":13},"mans_shoe":{"subcategory":"clothing","a":"Mans Shoe","b":"1F45E","d":true,"e":true,"f":true,"h":true,"j":["man_s_shoe","fashion","male"],"k":[13,27],"n":["shoe"],"o":0},"athletic_shoe":{"subcategory":"clothing","a":"Athletic Shoe","b":"1F45F","d":true,"e":true,"f":true,"h":true,"j":["running_shoe","shoes","sports","sneakers"],"k":[13,28],"o":0},"hiking_boot":{"subcategory":"clothing","a":"Hiking Boot","b":"1F97E","d":true,"e":true,"f":true,"h":true,"j":["hiking_boot","backpacking","camping","hiking"],"k":[44,18],"o":11},"womans_flat_shoe":{"subcategory":"clothing","a":"Flat Shoe","b":"1F97F","d":true,"e":true,"f":true,"h":true,"j":["flat_shoe","ballet","slip-on","slipper"],"k":[44,19],"o":11},"high_heel":{"subcategory":"clothing","a":"High-Heeled Shoe","b":"1F460","d":true,"e":true,"f":true,"h":true,"j":["high_heeled_shoe","fashion","shoes","female","pumps","stiletto"],"k":[13,29],"o":0},"sandal":{"subcategory":"clothing","a":"Womans Sandal","b":"1F461","d":true,"e":true,"f":true,"h":true,"j":["woman_s_sandal","shoes","fashion","flip flops"],"k":[13,30],"o":0},"ballet_shoes":{"subcategory":"clothing","a":"Ballet Shoes","b":"1FA70","d":true,"e":true,"f":true,"h":true,"j":["ballet_shoes","dance"],"k":[53,48],"o":12},"boot":{"subcategory":"clothing","a":"Womans Boots","b":"1F462","d":true,"e":true,"f":true,"h":true,"j":["woman_s_boot","shoes","fashion"],"k":[13,31],"o":0},"hair_pick":{"subcategory":"clothing","a":"Hair Pick","b":"1FAAE","d":true,"e":true,"f":false,"h":false,"j":["hair pick","afro","comb"],"k":[54,39],"o":15},"crown":{"subcategory":"clothing","a":"Crown","b":"1F451","d":true,"e":true,"f":true,"h":true,"j":["crown","king","kod","leader","royalty","lord"],"k":[13,14],"o":0},"womans_hat":{"subcategory":"clothing","a":"Womans Hat","b":"1F452","d":true,"e":true,"f":true,"h":true,"j":["woman_s_hat","fashion","accessories","female","lady","spring"],"k":[13,15],"o":0},"tophat":{"subcategory":"clothing","a":"Top Hat","b":"1F3A9","d":true,"e":true,"f":true,"h":true,"j":["top_hat","magic","gentleman","classy","circus"],"k":[7,44],"o":0},"mortar_board":{"subcategory":"clothing","a":"Graduation Cap","b":"1F393","d":true,"e":true,"f":true,"h":true,"j":["graduation_cap","school","college","degree","university","graduation","cap","hat","legal","learn","education"],"k":[7,27],"o":0},"billed_cap":{"subcategory":"clothing","a":"Billed Cap","b":"1F9E2","d":true,"e":true,"f":true,"h":true,"j":["billed_cap","cap","baseball"],"k":[53,18],"o":5},"military_helmet":{"subcategory":"clothing","a":"Military Helmet","b":"1FA96","d":true,"e":true,"f":true,"h":true,"j":["military helmet","army","protection"],"k":[54,15],"o":13},"helmet_with_white_cross":{"subcategory":"clothing","a":"Rescue Worker’s Helmet","b":"26D1-FE0F","c":"26D1","d":true,"e":true,"f":true,"h":true,"j":["rescue_worker_s_helmet","construction","build"],"k":[58,21],"o":0},"prayer_beads":{"subcategory":"clothing","a":"Prayer Beads","b":"1F4FF","d":true,"e":true,"f":true,"h":true,"j":["prayer_beads","dhikr","religious"],"k":[29,25],"o":1},"lipstick":{"subcategory":"clothing","a":"Lipstick","b":"1F484","d":true,"e":true,"f":true,"h":true,"j":["lipstick","female","girl","fashion","woman"],"k":[25,53],"o":0},"ring":{"subcategory":"clothing","a":"Ring","b":"1F48D","d":true,"e":true,"f":true,"h":true,"j":["ring","wedding","propose","marriage","valentines","diamond","fashion","jewelry","gem","engagement"],"k":[26,40],"o":0},"gem":{"subcategory":"clothing","a":"Gem Stone","b":"1F48E","d":true,"e":true,"f":true,"h":true,"j":["gem_stone","blue","ruby","diamond","jewelry"],"k":[26,41],"o":0},"mute":{"subcategory":"sound","a":"Speaker with Cancellation Stroke","b":"1F507","d":true,"e":true,"f":true,"h":true,"j":["muted_speaker","sound","volume","silence","quiet"],"k":[29,33],"o":1},"speaker":{"subcategory":"sound","a":"Speaker","b":"1F508","d":true,"e":true,"f":true,"h":true,"j":["speaker_low_volume","sound","volume","silence","broadcast"],"k":[29,34],"o":0},"sound":{"subcategory":"sound","a":"Speaker with One Sound Wave","b":"1F509","d":true,"e":true,"f":true,"h":true,"j":["speaker_medium_volume","volume","speaker","broadcast"],"k":[29,35],"o":1},"loud_sound":{"subcategory":"sound","a":"Speaker with Three Sound Waves","b":"1F50A","d":true,"e":true,"f":true,"h":true,"j":["speaker_high_volume","volume","noise","noisy","speaker","broadcast"],"k":[29,36],"o":0},"loudspeaker":{"subcategory":"sound","a":"Public Address Loudspeaker","b":"1F4E2","d":true,"e":true,"f":true,"h":true,"j":["loudspeaker","volume","sound"],"k":[28,58],"o":0},"mega":{"subcategory":"sound","a":"Cheering Megaphone","b":"1F4E3","d":true,"e":true,"f":true,"h":true,"j":["megaphone","sound","speaker","volume"],"k":[28,59],"o":0},"postal_horn":{"subcategory":"sound","a":"Postal Horn","b":"1F4EF","d":true,"e":true,"f":true,"h":true,"j":["postal_horn","instrument","music"],"k":[29,10],"o":1},"bell":{"subcategory":"sound","a":"Bell","b":"1F514","d":true,"e":true,"f":true,"h":true,"j":["bell","sound","notification","christmas","xmas","chime"],"k":[29,46],"o":0},"no_bell":{"subcategory":"sound","a":"Bell with Cancellation Stroke","b":"1F515","d":true,"e":true,"f":true,"h":true,"j":["bell_with_slash","sound","volume","mute","quiet","silent"],"k":[29,47],"o":1},"musical_score":{"subcategory":"music","a":"Musical Score","b":"1F3BC","d":true,"e":true,"f":true,"h":true,"j":["musical_score","treble","clef","compose"],"k":[8,2],"o":0},"musical_note":{"subcategory":"music","a":"Musical Note","b":"1F3B5","d":true,"e":true,"f":true,"h":true,"j":["musical_note","score","tone","sound"],"k":[7,56],"o":0},"notes":{"subcategory":"music","a":"Multiple Musical Notes","b":"1F3B6","d":true,"e":true,"f":true,"h":true,"j":["musical_notes","music","score"],"k":[7,57],"o":0},"studio_microphone":{"subcategory":"music","a":"Studio Microphone","b":"1F399-FE0F","c":"1F399","d":true,"e":true,"f":true,"h":true,"j":["studio_microphone","sing","recording","artist","talkshow"],"k":[7,30],"o":0},"level_slider":{"subcategory":"music","a":"Level Slider","b":"1F39A-FE0F","c":"1F39A","d":true,"e":true,"f":true,"h":true,"j":["level_slider","scale"],"k":[7,31],"o":0},"control_knobs":{"subcategory":"music","a":"Control Knobs","b":"1F39B-FE0F","c":"1F39B","d":true,"e":true,"f":true,"h":true,"j":["control_knobs","dial"],"k":[7,32],"o":0},"microphone":{"subcategory":"music","a":"Microphone","b":"1F3A4","d":true,"e":true,"f":true,"h":true,"j":["microphone","sound","music","PA","sing","talkshow"],"k":[7,39],"o":0},"headphones":{"subcategory":"music","a":"Headphone","b":"1F3A7","d":true,"e":true,"f":true,"h":true,"j":["headphone","music","score","gadgets"],"k":[7,42],"o":0},"radio":{"subcategory":"music","a":"Radio","b":"1F4FB","d":true,"e":true,"f":true,"h":true,"j":["radio","communication","music","podcast","program"],"k":[29,22],"o":0},"saxophone":{"subcategory":"musical-instrument","a":"Saxophone","b":"1F3B7","d":true,"e":true,"f":true,"h":true,"j":["saxophone","music","instrument","jazz","blues"],"k":[7,58],"o":0},"accordion":{"subcategory":"musical-instrument","a":"Accordion","b":"1FA97","d":true,"e":true,"f":true,"h":true,"j":["accordion","music"],"k":[54,16],"o":13},"guitar":{"subcategory":"musical-instrument","a":"Guitar","b":"1F3B8","d":true,"e":true,"f":true,"h":true,"j":["guitar","music","instrument"],"k":[7,59],"o":0},"musical_keyboard":{"subcategory":"musical-instrument","a":"Musical Keyboard","b":"1F3B9","d":true,"e":true,"f":true,"h":true,"j":["musical_keyboard","piano","instrument","compose"],"k":[7,60],"o":0},"trumpet":{"subcategory":"musical-instrument","a":"Trumpet","b":"1F3BA","d":true,"e":true,"f":true,"h":true,"j":["trumpet","music","brass"],"k":[8,0],"o":0},"violin":{"subcategory":"musical-instrument","a":"Violin","b":"1F3BB","d":true,"e":true,"f":true,"h":true,"j":["violin","music","instrument","orchestra","symphony"],"k":[8,1],"o":0},"banjo":{"subcategory":"musical-instrument","a":"Banjo","b":"1FA95","d":true,"e":true,"f":true,"h":true,"j":["banjo","music","instructment"],"k":[54,14],"o":12},"drum_with_drumsticks":{"subcategory":"musical-instrument","a":"Drum with Drumsticks","b":"1F941","d":true,"e":true,"f":true,"h":true,"j":["drum","music","instrument","drumsticks","snare"],"k":[43,14],"o":3},"long_drum":{"subcategory":"musical-instrument","a":"Long Drum","b":"1FA98","d":true,"e":true,"f":true,"h":true,"j":["long drum","music"],"k":[54,17],"o":13},"maracas":{"subcategory":"musical-instrument","a":"Maracas","b":"1FA87","d":true,"e":true,"f":false,"h":false,"j":["maracas","music","instrument","percussion"],"k":[54,7],"o":15},"flute":{"subcategory":"musical-instrument","a":"Flute","b":"1FA88","d":true,"e":true,"f":false,"h":false,"j":["flute","bamboo","music","instrument","pied piper"],"k":[54,8],"o":15},"iphone":{"subcategory":"phone","a":"Mobile Phone","b":"1F4F1","d":true,"e":true,"f":true,"h":true,"j":["mobile_phone","technology","apple","gadgets","dial"],"k":[29,12],"o":0},"calling":{"subcategory":"phone","a":"Mobile Phone with Rightwards Arrow at Left","b":"1F4F2","d":true,"e":true,"f":true,"h":true,"j":["mobile_phone_with_arrow","iphone","incoming"],"k":[29,13],"o":0},"phone":{"subcategory":"phone","a":"Black Telephone","b":"260E-FE0F","c":"260E","d":true,"e":true,"f":true,"h":true,"j":["telephone","technology","communication","dial"],"k":[57,15],"n":["telephone"],"o":0},"telephone_receiver":{"subcategory":"phone","a":"Telephone Receiver","b":"1F4DE","d":true,"e":true,"f":true,"h":true,"j":["telephone_receiver","technology","communication","dial"],"k":[28,54],"o":0},"pager":{"subcategory":"phone","a":"Pager","b":"1F4DF","d":true,"e":true,"f":true,"h":true,"j":["pager","bbcall","oldschool","90s"],"k":[28,55],"o":0},"fax":{"subcategory":"phone","a":"Fax Machine","b":"1F4E0","d":true,"e":true,"f":true,"h":true,"j":["fax_machine","communication","technology"],"k":[28,56],"o":0},"battery":{"subcategory":"computer","a":"Battery","b":"1F50B","d":true,"e":true,"f":true,"h":true,"j":["battery","power","energy","sustain"],"k":[29,37],"o":0},"low_battery":{"subcategory":"computer","a":"Low Battery","b":"1FAAB","d":true,"e":true,"f":true,"h":true,"j":["low battery","drained","dead"],"k":[54,36],"o":14},"electric_plug":{"subcategory":"computer","a":"Electric Plug","b":"1F50C","d":true,"e":true,"f":true,"h":true,"j":["electric_plug","charger","power"],"k":[29,38],"o":0},"computer":{"subcategory":"computer","a":"Personal Computer","b":"1F4BB","d":true,"e":true,"f":true,"h":true,"j":["laptop","technology","screen","display","monitor"],"k":[28,19],"o":0},"desktop_computer":{"subcategory":"computer","a":"Desktop Computer","b":"1F5A5-FE0F","c":"1F5A5","d":true,"e":true,"f":true,"h":true,"j":["desktop_computer","technology","computing","screen"],"k":[31,57],"o":0},"printer":{"subcategory":"computer","a":"Printer","b":"1F5A8-FE0F","c":"1F5A8","d":true,"e":true,"f":true,"h":true,"j":["printer","paper","ink"],"k":[31,58],"o":0},"keyboard":{"subcategory":"computer","a":"Keyboard","b":"2328-FE0F","c":"2328","d":true,"e":true,"f":true,"h":true,"j":["keyboard","technology","computer","type","input","text"],"k":[56,46],"o":1},"three_button_mouse":{"subcategory":"computer","a":"Computer Mouse","b":"1F5B1-FE0F","c":"1F5B1","d":true,"e":true,"f":true,"h":true,"j":["computer_mouse","click"],"k":[31,59],"o":0},"trackball":{"subcategory":"computer","a":"Trackball","b":"1F5B2-FE0F","c":"1F5B2","d":true,"e":true,"f":true,"h":true,"j":["trackball","technology","trackpad"],"k":[31,60],"o":0},"minidisc":{"subcategory":"computer","a":"Minidisc","b":"1F4BD","d":true,"e":true,"f":true,"h":true,"j":["computer_disk","technology","record","data","disk","90s"],"k":[28,21],"o":0},"floppy_disk":{"subcategory":"computer","a":"Floppy Disk","b":"1F4BE","d":true,"e":true,"f":true,"h":true,"j":["floppy_disk","oldschool","technology","save","90s","80s"],"k":[28,22],"o":0},"cd":{"subcategory":"computer","a":"Optical Disc","b":"1F4BF","d":true,"e":true,"f":true,"h":true,"j":["optical_disk","technology","dvd","disk","disc","90s"],"k":[28,23],"o":0},"dvd":{"subcategory":"computer","a":"Dvd","b":"1F4C0","d":true,"e":true,"f":true,"h":true,"j":["dvd","cd","disk","disc"],"k":[28,24],"o":0},"abacus":{"subcategory":"computer","a":"Abacus","b":"1F9EE","d":true,"e":true,"f":true,"h":true,"j":["abacus","calculation"],"k":[53,30],"o":11},"movie_camera":{"subcategory":"light & video","a":"Movie Camera","b":"1F3A5","d":true,"e":true,"f":true,"h":true,"j":["movie_camera","film","record"],"k":[7,40],"o":0},"film_frames":{"subcategory":"light & video","a":"Film Frames","b":"1F39E-FE0F","c":"1F39E","d":true,"e":true,"f":true,"h":true,"j":["film_frames","movie"],"k":[7,33],"o":0},"film_projector":{"subcategory":"light & video","a":"Film Projector","b":"1F4FD-FE0F","c":"1F4FD","d":true,"e":true,"f":true,"h":true,"j":["film_projector","video","tape","record","movie"],"k":[29,24],"o":0},"clapper":{"subcategory":"light & video","a":"Clapper Board","b":"1F3AC","d":true,"e":true,"f":true,"h":true,"j":["clapper_board","movie","film","record"],"k":[7,47],"o":0},"tv":{"subcategory":"light & video","a":"Television","b":"1F4FA","d":true,"e":true,"f":true,"h":true,"j":["television","technology","program","oldschool","show"],"k":[29,21],"o":0},"camera":{"subcategory":"light & video","a":"Camera","b":"1F4F7","d":true,"e":true,"f":true,"h":true,"j":["camera","gadgets","photography"],"k":[29,18],"o":0},"camera_with_flash":{"subcategory":"light & video","a":"Camera with Flash","b":"1F4F8","d":true,"e":true,"f":true,"h":true,"j":["camera_with_flash","photography","gadgets"],"k":[29,19],"o":1},"video_camera":{"subcategory":"light & video","a":"Video Camera","b":"1F4F9","d":true,"e":true,"f":true,"h":true,"j":["video_camera","film","record"],"k":[29,20],"o":0},"vhs":{"subcategory":"light & video","a":"Videocassette","b":"1F4FC","d":true,"e":true,"f":true,"h":true,"j":["videocassette","record","video","oldschool","90s","80s"],"k":[29,23],"o":0},"mag":{"subcategory":"light & video","a":"Left-Pointing Magnifying Glass","b":"1F50D","d":true,"e":true,"f":true,"h":true,"j":["magnifying_glass_tilted_left","search","zoom","find","detective"],"k":[29,39],"o":0},"mag_right":{"subcategory":"light & video","a":"Right-Pointing Magnifying Glass","b":"1F50E","d":true,"e":true,"f":true,"h":true,"j":["magnifying_glass_tilted_right","search","zoom","find","detective"],"k":[29,40],"o":0},"candle":{"subcategory":"light & video","a":"Candle","b":"1F56F-FE0F","c":"1F56F","d":true,"e":true,"f":true,"h":true,"j":["candle","fire","wax"],"k":[30,57],"o":0},"bulb":{"subcategory":"light & video","a":"Electric Light Bulb","b":"1F4A1","d":true,"e":true,"f":true,"h":true,"j":["light_bulb","light","electricity","idea"],"k":[27,49],"o":0},"flashlight":{"subcategory":"light & video","a":"Electric Torch","b":"1F526","d":true,"e":true,"f":true,"h":true,"j":["flashlight","dark","camping","sight","night"],"k":[30,3],"o":0},"izakaya_lantern":{"subcategory":"light & video","a":"Izakaya Lantern","b":"1F3EE","d":true,"e":true,"f":true,"h":true,"j":["red_paper_lantern","light","paper","halloween","spooky"],"k":[10,25],"n":["lantern"],"o":0},"diya_lamp":{"subcategory":"light & video","a":"Diya Lamp","b":"1FA94","d":true,"e":true,"f":true,"h":true,"j":["diya_lamp","lighting"],"k":[54,13],"o":12},"notebook_with_decorative_cover":{"subcategory":"book-paper","a":"Notebook with Decorative Cover","b":"1F4D4","d":true,"e":true,"f":true,"h":true,"j":["notebook_with_decorative_cover","classroom","notes","record","paper","study"],"k":[28,44],"o":0},"closed_book":{"subcategory":"book-paper","a":"Closed Book","b":"1F4D5","d":true,"e":true,"f":true,"h":true,"j":["closed_book","read","library","knowledge","textbook","learn"],"k":[28,45],"o":0},"book":{"subcategory":"book-paper","a":"Open Book","b":"1F4D6","d":true,"e":true,"f":true,"h":true,"j":["open_book","book","read","library","knowledge","literature","learn","study"],"k":[28,46],"n":["open_book"],"o":0},"green_book":{"subcategory":"book-paper","a":"Green Book","b":"1F4D7","d":true,"e":true,"f":true,"h":true,"j":["green_book","read","library","knowledge","study"],"k":[28,47],"o":0},"blue_book":{"subcategory":"book-paper","a":"Blue Book","b":"1F4D8","d":true,"e":true,"f":true,"h":true,"j":["blue_book","read","library","knowledge","learn","study"],"k":[28,48],"o":0},"orange_book":{"subcategory":"book-paper","a":"Orange Book","b":"1F4D9","d":true,"e":true,"f":true,"h":true,"j":["orange_book","read","library","knowledge","textbook","study"],"k":[28,49],"o":0},"books":{"subcategory":"book-paper","a":"Books","b":"1F4DA","d":true,"e":true,"f":true,"h":true,"j":["books","literature","library","study"],"k":[28,50],"o":0},"notebook":{"subcategory":"book-paper","a":"Notebook","b":"1F4D3","d":true,"e":true,"f":true,"h":true,"j":["notebook","stationery","record","notes","paper","study"],"k":[28,43],"o":0},"ledger":{"subcategory":"book-paper","a":"Ledger","b":"1F4D2","d":true,"e":true,"f":true,"h":true,"j":["ledger","notes","paper"],"k":[28,42],"o":0},"page_with_curl":{"subcategory":"book-paper","a":"Page with Curl","b":"1F4C3","d":true,"e":true,"f":true,"h":true,"j":["page_with_curl","documents","office","paper"],"k":[28,27],"o":0},"scroll":{"subcategory":"book-paper","a":"Scroll","b":"1F4DC","d":true,"e":true,"f":true,"h":true,"j":["scroll","documents","ancient","history","paper"],"k":[28,52],"o":0},"page_facing_up":{"subcategory":"book-paper","a":"Page Facing Up","b":"1F4C4","d":true,"e":true,"f":true,"h":true,"j":["page_facing_up","documents","office","paper","information"],"k":[28,28],"o":0},"newspaper":{"subcategory":"book-paper","a":"Newspaper","b":"1F4F0","d":true,"e":true,"f":true,"h":true,"j":["newspaper","press","headline"],"k":[29,11],"o":0},"rolled_up_newspaper":{"subcategory":"book-paper","a":"Rolled-Up Newspaper","b":"1F5DE-FE0F","c":"1F5DE","d":true,"e":true,"f":true,"h":true,"j":["rolled_up_newspaper","press","headline"],"k":[32,9],"o":0},"bookmark_tabs":{"subcategory":"book-paper","a":"Bookmark Tabs","b":"1F4D1","d":true,"e":true,"f":true,"h":true,"j":["bookmark_tabs","favorite","save","order","tidy"],"k":[28,41],"o":0},"bookmark":{"subcategory":"book-paper","a":"Bookmark","b":"1F516","d":true,"e":true,"f":true,"h":true,"j":["bookmark","favorite","label","save"],"k":[29,48],"o":0},"label":{"subcategory":"book-paper","a":"Label","b":"1F3F7-FE0F","c":"1F3F7","d":true,"e":true,"f":true,"h":true,"j":["label","sale","tag"],"k":[10,37],"o":0},"moneybag":{"subcategory":"money","a":"Money Bag","b":"1F4B0","d":true,"e":true,"f":true,"h":true,"j":["money_bag","dollar","payment","coins","sale"],"k":[28,8],"o":0},"coin":{"subcategory":"money","a":"Coin","b":"1FA99","d":true,"e":true,"f":true,"h":true,"j":["coin","money","currency"],"k":[54,18],"o":13},"yen":{"subcategory":"money","a":"Banknote with Yen Sign","b":"1F4B4","d":true,"e":true,"f":true,"h":true,"j":["yen_banknote","money","sales","japanese","dollar","currency"],"k":[28,12],"o":0},"dollar":{"subcategory":"money","a":"Banknote with Dollar Sign","b":"1F4B5","d":true,"e":true,"f":true,"h":true,"j":["dollar_banknote","money","sales","bill","currency"],"k":[28,13],"o":0},"euro":{"subcategory":"money","a":"Banknote with Euro Sign","b":"1F4B6","d":true,"e":true,"f":true,"h":true,"j":["euro_banknote","money","sales","dollar","currency"],"k":[28,14],"o":1},"pound":{"subcategory":"money","a":"Banknote with Pound Sign","b":"1F4B7","d":true,"e":true,"f":true,"h":true,"j":["pound_banknote","british","sterling","money","sales","bills","uk","england","currency"],"k":[28,15],"o":1},"money_with_wings":{"subcategory":"money","a":"Money with Wings","b":"1F4B8","d":true,"e":true,"f":true,"h":true,"j":["money_with_wings","dollar","bills","payment","sale"],"k":[28,16],"o":0},"credit_card":{"subcategory":"money","a":"Credit Card","b":"1F4B3","d":true,"e":true,"f":true,"h":true,"j":["credit_card","money","sales","dollar","bill","payment","shopping"],"k":[28,11],"o":0},"receipt":{"subcategory":"money","a":"Receipt","b":"1F9FE","d":true,"e":true,"f":true,"h":true,"j":["receipt","accounting","expenses"],"k":[53,46],"o":11},"chart":{"subcategory":"money","a":"Chart with Upwards Trend and Yen Sign","b":"1F4B9","d":true,"e":true,"f":true,"h":true,"j":["chart_increasing_with_yen","green-square","graph","presentation","stats"],"k":[28,17],"o":0},"email":{"subcategory":"mail","a":"Envelope","b":"2709-FE0F","c":"2709","d":true,"e":true,"f":true,"h":true,"j":["envelope","letter","postal","inbox","communication"],"k":[58,57],"n":["envelope"],"o":0},"e-mail":{"subcategory":"mail","a":"E-Mail Symbol","b":"1F4E7","d":true,"e":true,"f":true,"h":true,"j":["e_mail","communication","inbox"],"k":[29,2],"o":0},"incoming_envelope":{"subcategory":"mail","a":"Incoming Envelope","b":"1F4E8","d":true,"e":true,"f":true,"h":true,"j":["incoming_envelope","email","inbox"],"k":[29,3],"o":0},"envelope_with_arrow":{"subcategory":"mail","a":"Envelope with Downwards Arrow Above","b":"1F4E9","d":true,"e":true,"f":true,"h":true,"j":["envelope_with_arrow","email","communication"],"k":[29,4],"o":0},"outbox_tray":{"subcategory":"mail","a":"Outbox Tray","b":"1F4E4","d":true,"e":true,"f":true,"h":true,"j":["outbox_tray","inbox","email"],"k":[28,60],"o":0},"inbox_tray":{"subcategory":"mail","a":"Inbox Tray","b":"1F4E5","d":true,"e":true,"f":true,"h":true,"j":["inbox_tray","email","documents"],"k":[29,0],"o":0},"package":{"subcategory":"mail","a":"Package","b":"1F4E6","d":true,"e":true,"f":true,"h":true,"j":["package","mail","gift","cardboard","box","moving"],"k":[29,1],"o":0},"mailbox":{"subcategory":"mail","a":"Closed Mailbox with Raised Flag","b":"1F4EB","d":true,"e":true,"f":true,"h":true,"j":["closed_mailbox_with_raised_flag","email","inbox","communication"],"k":[29,6],"o":0},"mailbox_closed":{"subcategory":"mail","a":"Closed Mailbox with Lowered Flag","b":"1F4EA","d":true,"e":true,"f":true,"h":true,"j":["closed_mailbox_with_lowered_flag","email","communication","inbox"],"k":[29,5],"o":0},"mailbox_with_mail":{"subcategory":"mail","a":"Open Mailbox with Raised Flag","b":"1F4EC","d":true,"e":true,"f":true,"h":true,"j":["open_mailbox_with_raised_flag","email","inbox","communication"],"k":[29,7],"o":0},"mailbox_with_no_mail":{"subcategory":"mail","a":"Open Mailbox with Lowered Flag","b":"1F4ED","d":true,"e":true,"f":true,"h":true,"j":["open_mailbox_with_lowered_flag","email","inbox"],"k":[29,8],"o":0},"postbox":{"subcategory":"mail","a":"Postbox","b":"1F4EE","d":true,"e":true,"f":true,"h":true,"j":["postbox","email","letter","envelope"],"k":[29,9],"o":0},"ballot_box_with_ballot":{"subcategory":"mail","a":"Ballot Box with Ballot","b":"1F5F3-FE0F","c":"1F5F3","d":true,"e":true,"f":true,"h":true,"j":["ballot_box_with_ballot","election","vote"],"k":[32,14],"o":0},"pencil2":{"subcategory":"writing","a":"Pencil","b":"270F-FE0F","c":"270F","d":true,"e":true,"f":true,"h":true,"j":["pencil","stationery","write","paper","writing","school","study"],"k":[59,21],"o":0},"black_nib":{"subcategory":"writing","a":"Black Nib","b":"2712-FE0F","c":"2712","d":true,"e":true,"f":true,"h":true,"j":["black_nib","pen","stationery","writing","write"],"k":[59,22],"o":0},"lower_left_fountain_pen":{"subcategory":"writing","a":"Fountain Pen","b":"1F58B-FE0F","c":"1F58B","d":true,"e":true,"f":true,"h":true,"j":["fountain_pen","stationery","writing","write"],"k":[31,35],"o":0},"lower_left_ballpoint_pen":{"subcategory":"writing","a":"Pen","b":"1F58A-FE0F","c":"1F58A","d":true,"e":true,"f":true,"h":true,"j":["pen","stationery","writing","write"],"k":[31,34],"o":0},"lower_left_paintbrush":{"subcategory":"writing","a":"Paintbrush","b":"1F58C-FE0F","c":"1F58C","d":true,"e":true,"f":true,"h":true,"j":["paintbrush","drawing","creativity","art"],"k":[31,36],"o":0},"lower_left_crayon":{"subcategory":"writing","a":"Crayon","b":"1F58D-FE0F","c":"1F58D","d":true,"e":true,"f":true,"h":true,"j":["crayon","drawing","creativity"],"k":[31,37],"o":0},"memo":{"subcategory":"writing","a":"Memo","b":"1F4DD","d":true,"e":true,"f":true,"h":true,"j":["memo","write","documents","stationery","pencil","paper","writing","legal","exam","quiz","test","study","compose"],"k":[28,53],"n":["pencil"],"o":0},"briefcase":{"subcategory":"office","a":"Briefcase","b":"1F4BC","d":true,"e":true,"f":true,"h":true,"j":["briefcase","business","documents","work","law","legal","job","career"],"k":[28,20],"o":0},"file_folder":{"subcategory":"office","a":"File Folder","b":"1F4C1","d":true,"e":true,"f":true,"h":true,"j":["file_folder","documents","business","office"],"k":[28,25],"o":0},"open_file_folder":{"subcategory":"office","a":"Open File Folder","b":"1F4C2","d":true,"e":true,"f":true,"h":true,"j":["open_file_folder","documents","load"],"k":[28,26],"o":0},"card_index_dividers":{"subcategory":"office","a":"Card Index Dividers","b":"1F5C2-FE0F","c":"1F5C2","d":true,"e":true,"f":true,"h":true,"j":["card_index_dividers","organizing","business","stationery"],"k":[32,1],"o":0},"date":{"subcategory":"office","a":"Calendar","b":"1F4C5","d":true,"e":true,"f":true,"h":true,"j":["calendar","schedule"],"k":[28,29],"o":0},"calendar":{"subcategory":"office","a":"Tear-off Calendar","b":"1F4C6","d":true,"e":true,"f":true,"h":true,"j":["tear_off_calendar","schedule","date","planning"],"k":[28,30],"o":0},"spiral_note_pad":{"subcategory":"office","a":"Spiral Notepad","b":"1F5D2-FE0F","c":"1F5D2","d":true,"e":true,"f":true,"h":true,"j":["spiral_notepad","memo","stationery"],"k":[32,5],"o":0},"spiral_calendar_pad":{"subcategory":"office","a":"Spiral Calendar","b":"1F5D3-FE0F","c":"1F5D3","d":true,"e":true,"f":true,"h":true,"j":["spiral_calendar","date","schedule","planning"],"k":[32,6],"o":0},"card_index":{"subcategory":"office","a":"Card Index","b":"1F4C7","d":true,"e":true,"f":true,"h":true,"j":["card_index","business","stationery"],"k":[28,31],"o":0},"chart_with_upwards_trend":{"subcategory":"office","a":"Chart with Upwards Trend","b":"1F4C8","d":true,"e":true,"f":true,"h":true,"j":["chart_increasing","graph","presentation","stats","recovery","business","economics","money","sales","good","success"],"k":[28,32],"o":0},"chart_with_downwards_trend":{"subcategory":"office","a":"Chart with Downwards Trend","b":"1F4C9","d":true,"e":true,"f":true,"h":true,"j":["chart_decreasing","graph","presentation","stats","recession","business","economics","money","sales","bad","failure"],"k":[28,33],"o":0},"bar_chart":{"subcategory":"office","a":"Bar Chart","b":"1F4CA","d":true,"e":true,"f":true,"h":true,"j":["bar_chart","graph","presentation","stats"],"k":[28,34],"o":0},"clipboard":{"subcategory":"office","a":"Clipboard","b":"1F4CB","d":true,"e":true,"f":true,"h":true,"j":["clipboard","stationery","documents"],"k":[28,35],"o":0},"pushpin":{"subcategory":"office","a":"Pushpin","b":"1F4CC","d":true,"e":true,"f":true,"h":true,"j":["pushpin","stationery","mark","here"],"k":[28,36],"o":0},"round_pushpin":{"subcategory":"office","a":"Round Pushpin","b":"1F4CD","d":true,"e":true,"f":true,"h":true,"j":["round_pushpin","stationery","location","map","here"],"k":[28,37],"o":0},"paperclip":{"subcategory":"office","a":"Paperclip","b":"1F4CE","d":true,"e":true,"f":true,"h":true,"j":["paperclip","documents","stationery"],"k":[28,38],"o":0},"linked_paperclips":{"subcategory":"office","a":"Linked Paperclips","b":"1F587-FE0F","c":"1F587","d":true,"e":true,"f":true,"h":true,"j":["linked_paperclips","documents","stationery"],"k":[31,33],"o":0},"straight_ruler":{"subcategory":"office","a":"Straight Ruler","b":"1F4CF","d":true,"e":true,"f":true,"h":true,"j":["straight_ruler","stationery","calculate","length","math","school","drawing","architect","sketch"],"k":[28,39],"o":0},"triangular_ruler":{"subcategory":"office","a":"Triangular Ruler","b":"1F4D0","d":true,"e":true,"f":true,"h":true,"j":["triangular_ruler","stationery","math","architect","sketch"],"k":[28,40],"o":0},"scissors":{"subcategory":"office","a":"Black Scissors","b":"2702-FE0F","c":"2702","d":true,"e":true,"f":true,"h":true,"j":["scissors","stationery","cut"],"k":[58,54],"o":0},"card_file_box":{"subcategory":"office","a":"Card File Box","b":"1F5C3-FE0F","c":"1F5C3","d":true,"e":true,"f":true,"h":true,"j":["card_file_box","business","stationery"],"k":[32,2],"o":0},"file_cabinet":{"subcategory":"office","a":"File Cabinet","b":"1F5C4-FE0F","c":"1F5C4","d":true,"e":true,"f":true,"h":true,"j":["file_cabinet","filing","organizing"],"k":[32,3],"o":0},"wastebasket":{"subcategory":"office","a":"Wastebasket","b":"1F5D1-FE0F","c":"1F5D1","d":true,"e":true,"f":true,"h":true,"j":["wastebasket","bin","trash","rubbish","garbage","toss"],"k":[32,4],"o":0},"lock":{"subcategory":"lock","a":"Lock","b":"1F512","d":true,"e":true,"f":true,"h":true,"j":["locked","security","password","padlock"],"k":[29,44],"o":0},"unlock":{"subcategory":"lock","a":"Open Lock","b":"1F513","d":true,"e":true,"f":true,"h":true,"j":["unlocked","privacy","security"],"k":[29,45],"o":0},"lock_with_ink_pen":{"subcategory":"lock","a":"Lock with Ink Pen","b":"1F50F","d":true,"e":true,"f":true,"h":true,"j":["locked_with_pen","security","secret"],"k":[29,41],"o":0},"closed_lock_with_key":{"subcategory":"lock","a":"Closed Lock with Key","b":"1F510","d":true,"e":true,"f":true,"h":true,"j":["locked_with_key","security","privacy"],"k":[29,42],"o":0},"key":{"subcategory":"lock","a":"Key","b":"1F511","d":true,"e":true,"f":true,"h":true,"j":["key","lock","door","password"],"k":[29,43],"o":0},"old_key":{"subcategory":"lock","a":"Old Key","b":"1F5DD-FE0F","c":"1F5DD","d":true,"e":true,"f":true,"h":true,"j":["old_key","lock","door","password"],"k":[32,8],"o":0},"hammer":{"subcategory":"tool","a":"Hammer","b":"1F528","d":true,"e":true,"f":true,"h":true,"j":["hammer","tools","build","create"],"k":[30,5],"o":0},"axe":{"subcategory":"tool","a":"Axe","b":"1FA93","d":true,"e":true,"f":true,"h":true,"j":["axe","tool","chop","cut"],"k":[54,12],"o":12},"pick":{"subcategory":"tool","a":"Pick","b":"26CF-FE0F","c":"26CF","d":true,"e":true,"f":true,"h":true,"j":["pick","tools","dig"],"k":[58,20],"o":0},"hammer_and_pick":{"subcategory":"tool","a":"Hammer and Pick","b":"2692-FE0F","c":"2692","d":true,"e":true,"f":true,"h":true,"j":["hammer_and_pick","tools","build","create"],"k":[57,59],"o":1},"hammer_and_wrench":{"subcategory":"tool","a":"Hammer and Wrench","b":"1F6E0-FE0F","c":"1F6E0","d":true,"e":true,"f":true,"h":true,"j":["hammer_and_wrench","tools","build","create"],"k":[38,13],"o":0},"dagger_knife":{"subcategory":"tool","a":"Dagger","b":"1F5E1-FE0F","c":"1F5E1","d":true,"e":true,"f":true,"h":true,"j":["dagger","weapon"],"k":[32,10],"o":0},"crossed_swords":{"subcategory":"tool","a":"Crossed Swords","b":"2694-FE0F","c":"2694","d":true,"e":true,"f":true,"h":true,"j":["crossed_swords","weapon"],"k":[58,0],"o":1},"bomb":{"subcategory":"tool","a":"Bomb","b":"1F4A3","d":true,"e":true,"f":true,"h":true,"j":["bomb","boom","explode","explosion","terrorism"],"k":[27,51],"o":0},"boomerang":{"subcategory":"tool","a":"Boomerang","b":"1FA83","d":true,"e":true,"f":true,"h":true,"j":["boomerang","weapon"],"k":[54,3],"o":13},"bow_and_arrow":{"subcategory":"tool","a":"Bow and Arrow","b":"1F3F9","d":true,"e":true,"f":true,"h":true,"j":["bow_and_arrow","sports"],"k":[10,39],"o":1},"shield":{"subcategory":"tool","a":"Shield","b":"1F6E1-FE0F","c":"1F6E1","d":true,"e":true,"f":true,"h":true,"j":["shield","protection","security"],"k":[38,14],"o":0},"carpentry_saw":{"subcategory":"tool","a":"Carpentry Saw","b":"1FA9A","d":true,"e":true,"f":true,"h":true,"j":["carpentry saw","cut","chop"],"k":[54,19],"o":13},"wrench":{"subcategory":"tool","a":"Wrench","b":"1F527","d":true,"e":true,"f":true,"h":true,"j":["wrench","tools","diy","ikea","fix","maintainer"],"k":[30,4],"o":0},"screwdriver":{"subcategory":"tool","a":"Screwdriver","b":"1FA9B","d":true,"e":true,"f":true,"h":true,"j":["screwdriver","tools"],"k":[54,20],"o":13},"nut_and_bolt":{"subcategory":"tool","a":"Nut and Bolt","b":"1F529","d":true,"e":true,"f":true,"h":true,"j":["nut_and_bolt","handy","tools","fix"],"k":[30,6],"o":0},"gear":{"subcategory":"tool","a":"Gear","b":"2699-FE0F","c":"2699","d":true,"e":true,"f":true,"h":true,"j":["gear","cog"],"k":[58,4],"o":1},"compression":{"subcategory":"tool","a":"Clamp","b":"1F5DC-FE0F","c":"1F5DC","d":true,"e":true,"f":true,"h":true,"j":["clamp","tool"],"k":[32,7],"o":0},"scales":{"subcategory":"tool","a":"Balance Scale","b":"2696-FE0F","c":"2696","d":true,"e":true,"f":true,"h":true,"j":["balance_scale","law","fairness","weight"],"k":[58,2],"o":1},"probing_cane":{"subcategory":"tool","a":"Probing Cane","b":"1F9AF","d":true,"e":true,"f":true,"h":true,"j":["probing_cane","accessibility"],"k":[45,6],"o":12},"link":{"subcategory":"tool","a":"Link Symbol","b":"1F517","d":true,"e":true,"f":true,"h":true,"j":["link","rings","url"],"k":[29,49],"o":0},"chains":{"subcategory":"tool","a":"Chains","b":"26D3-FE0F","c":"26D3","d":true,"e":true,"f":true,"h":true,"j":["chains","lock","arrest"],"k":[58,22],"o":0},"hook":{"subcategory":"tool","a":"Hook","b":"1FA9D","d":true,"e":true,"f":true,"h":true,"j":["hook","tools"],"k":[54,22],"o":13},"toolbox":{"subcategory":"tool","a":"Toolbox","b":"1F9F0","d":true,"e":true,"f":true,"h":true,"j":["toolbox","tools","diy","fix","maintainer","mechanic"],"k":[53,32],"o":11},"magnet":{"subcategory":"tool","a":"Magnet","b":"1F9F2","d":true,"e":true,"f":true,"h":true,"j":["magnet","attraction","magnetic"],"k":[53,34],"o":11},"ladder":{"subcategory":"tool","a":"Ladder","b":"1FA9C","d":true,"e":true,"f":true,"h":true,"j":["ladder","tools"],"k":[54,21],"o":13},"alembic":{"subcategory":"science","a":"Alembic","b":"2697-FE0F","c":"2697","d":true,"e":true,"f":true,"h":true,"j":["alembic","distilling","science","experiment","chemistry"],"k":[58,3],"o":1},"test_tube":{"subcategory":"science","a":"Test Tube","b":"1F9EA","d":true,"e":true,"f":true,"h":true,"j":["test_tube","chemistry","experiment","lab","science"],"k":[53,26],"o":11},"petri_dish":{"subcategory":"science","a":"Petri Dish","b":"1F9EB","d":true,"e":true,"f":true,"h":true,"j":["petri_dish","bacteria","biology","culture","lab"],"k":[53,27],"o":11},"dna":{"subcategory":"science","a":"Dna Double Helix","b":"1F9EC","d":true,"e":true,"f":true,"h":true,"j":["dna","biologist","genetics","life"],"k":[53,28],"o":11},"microscope":{"subcategory":"science","a":"Microscope","b":"1F52C","d":true,"e":true,"f":true,"h":true,"j":["microscope","laboratory","experiment","zoomin","science","study"],"k":[30,9],"o":1},"telescope":{"subcategory":"science","a":"Telescope","b":"1F52D","d":true,"e":true,"f":true,"h":true,"j":["telescope","stars","space","zoom","science","astronomy"],"k":[30,10],"o":1},"satellite_antenna":{"subcategory":"science","a":"Satellite Antenna","b":"1F4E1","d":true,"e":true,"f":true,"h":true,"j":["satellite_antenna","communication","future","radio","space"],"k":[28,57],"o":0},"syringe":{"subcategory":"medical","a":"Syringe","b":"1F489","d":true,"e":true,"f":true,"h":true,"j":["syringe","health","hospital","drugs","blood","medicine","needle","doctor","nurse"],"k":[26,36],"o":0},"drop_of_blood":{"subcategory":"medical","a":"Drop of Blood","b":"1FA78","d":true,"e":true,"f":true,"h":true,"j":["drop_of_blood","period","hurt","harm","wound"],"k":[53,56],"o":12},"pill":{"subcategory":"medical","a":"Pill","b":"1F48A","d":true,"e":true,"f":true,"h":true,"j":["pill","health","medicine","doctor","pharmacy","drug"],"k":[26,37],"o":0},"adhesive_bandage":{"subcategory":"medical","a":"Adhesive Bandage","b":"1FA79","d":true,"e":true,"f":true,"h":true,"j":["adhesive_bandage","heal"],"k":[53,57],"o":12},"crutch":{"subcategory":"medical","a":"Crutch","b":"1FA7C","d":true,"e":true,"f":true,"h":true,"j":["crutch","accessibility","assist"],"k":[53,60],"o":14},"stethoscope":{"subcategory":"medical","a":"Stethoscope","b":"1FA7A","d":true,"e":true,"f":true,"h":true,"j":["stethoscope","health"],"k":[53,58],"o":12},"x-ray":{"subcategory":"medical","a":"X-Ray","b":"1FA7B","d":true,"e":true,"f":true,"h":true,"j":["x-ray","skeleton","medicine"],"k":[53,59],"o":14},"door":{"subcategory":"household","a":"Door","b":"1F6AA","d":true,"e":true,"f":true,"h":true,"j":["door","house","entry","exit"],"k":[36,31],"o":0},"elevator":{"subcategory":"household","a":"Elevator","b":"1F6D7","d":true,"e":true,"f":true,"h":true,"j":["elevator","lift"],"k":[38,8],"o":13},"mirror":{"subcategory":"household","a":"Mirror","b":"1FA9E","d":true,"e":true,"f":true,"h":true,"j":["mirror","reflection"],"k":[54,23],"o":13},"window":{"subcategory":"household","a":"Window","b":"1FA9F","d":true,"e":true,"f":true,"h":true,"j":["window","scenery"],"k":[54,24],"o":13},"bed":{"subcategory":"household","a":"Bed","b":"1F6CF-FE0F","c":"1F6CF","d":true,"e":true,"f":true,"h":true,"j":["bed","sleep","rest"],"k":[38,2],"o":0},"couch_and_lamp":{"subcategory":"household","a":"Couch and Lamp","b":"1F6CB-FE0F","c":"1F6CB","d":true,"e":true,"f":true,"h":true,"j":["couch_and_lamp","read","chill"],"k":[37,54],"o":0},"chair":{"subcategory":"household","a":"Chair","b":"1FA91","d":true,"e":true,"f":true,"h":true,"j":["chair","sit","furniture"],"k":[54,10],"o":12},"toilet":{"subcategory":"household","a":"Toilet","b":"1F6BD","d":true,"e":true,"f":true,"h":true,"j":["toilet","restroom","wc","washroom","bathroom","potty"],"k":[37,40],"o":0},"plunger":{"subcategory":"household","a":"Plunger","b":"1FAA0","d":true,"e":true,"f":true,"h":true,"j":["plunger","toilet"],"k":[54,25],"o":13},"shower":{"subcategory":"household","a":"Shower","b":"1F6BF","d":true,"e":true,"f":true,"h":true,"j":["shower","clean","water","bathroom"],"k":[37,42],"o":1},"bathtub":{"subcategory":"household","a":"Bathtub","b":"1F6C1","d":true,"e":true,"f":true,"h":true,"j":["bathtub","clean","shower","bathroom"],"k":[37,49],"o":1},"mouse_trap":{"subcategory":"household","a":"Mouse Trap","b":"1FAA4","d":true,"e":true,"f":true,"h":true,"j":["mouse trap","cheese"],"k":[54,29],"o":13},"razor":{"subcategory":"household","a":"Razor","b":"1FA92","d":true,"e":true,"f":true,"h":true,"j":["razor","cut"],"k":[54,11],"o":12},"lotion_bottle":{"subcategory":"household","a":"Lotion Bottle","b":"1F9F4","d":true,"e":true,"f":true,"h":true,"j":["lotion_bottle","moisturizer","sunscreen"],"k":[53,36],"o":11},"safety_pin":{"subcategory":"household","a":"Safety Pin","b":"1F9F7","d":true,"e":true,"f":true,"h":true,"j":["safety_pin","diaper"],"k":[53,39],"o":11},"broom":{"subcategory":"household","a":"Broom","b":"1F9F9","d":true,"e":true,"f":true,"h":true,"j":["broom","cleaning","sweeping","witch"],"k":[53,41],"o":11},"basket":{"subcategory":"household","a":"Basket","b":"1F9FA","d":true,"e":true,"f":true,"h":true,"j":["basket","laundry"],"k":[53,42],"o":11},"roll_of_paper":{"subcategory":"household","a":"Roll of Paper","b":"1F9FB","d":true,"e":true,"f":true,"h":true,"j":["roll_of_paper","roll"],"k":[53,43],"o":11},"bucket":{"subcategory":"household","a":"Bucket","b":"1FAA3","d":true,"e":true,"f":true,"h":true,"j":["bucket","water","container"],"k":[54,28],"o":13},"soap":{"subcategory":"household","a":"Bar of Soap","b":"1F9FC","d":true,"e":true,"f":true,"h":true,"j":["soap","bar","bathing","cleaning","lather"],"k":[53,44],"o":11},"bubbles":{"subcategory":"household","a":"Bubbles","b":"1FAE7","d":true,"e":true,"f":true,"h":true,"j":["bubbles","soap","fun","carbonation","sparkling"],"k":[55,37],"o":14},"toothbrush":{"subcategory":"household","a":"Toothbrush","b":"1FAA5","d":true,"e":true,"f":true,"h":true,"j":["toothbrush","hygiene","dental"],"k":[54,30],"o":13},"sponge":{"subcategory":"household","a":"Sponge","b":"1F9FD","d":true,"e":true,"f":true,"h":true,"j":["sponge","absorbing","cleaning","porous"],"k":[53,45],"o":11},"fire_extinguisher":{"subcategory":"household","a":"Fire Extinguisher","b":"1F9EF","d":true,"e":true,"f":true,"h":true,"j":["fire_extinguisher","quench"],"k":[53,31],"o":11},"shopping_trolley":{"subcategory":"household","a":"Shopping Trolley","b":"1F6D2","d":true,"e":true,"f":true,"h":true,"j":["shopping_cart","trolley"],"k":[38,5],"o":3},"smoking":{"subcategory":"other-object","a":"Smoking Symbol","b":"1F6AC","d":true,"e":true,"f":true,"h":true,"j":["cigarette","kills","tobacco","joint","smoke"],"k":[36,33],"o":0},"coffin":{"subcategory":"other-object","a":"Coffin","b":"26B0-FE0F","c":"26B0","d":true,"e":true,"f":true,"h":true,"j":["coffin","vampire","dead","die","death","rip","graveyard","cemetery","casket","funeral","box"],"k":[58,12],"o":1},"headstone":{"subcategory":"other-object","a":"Headstone","b":"1FAA6","d":true,"e":true,"f":true,"h":true,"j":["headstone","death","rip","grave"],"k":[54,31],"o":13},"funeral_urn":{"subcategory":"other-object","a":"Funeral Urn","b":"26B1-FE0F","c":"26B1","d":true,"e":true,"f":true,"h":true,"j":["funeral_urn","dead","die","death","rip","ashes"],"k":[58,13],"o":1},"nazar_amulet":{"subcategory":"other-object","a":"Nazar Amulet","b":"1F9FF","d":true,"e":true,"f":true,"h":true,"j":["nazar_amulet","bead","charm"],"k":[53,47],"o":11},"hamsa":{"subcategory":"other-object","a":"Hamsa","b":"1FAAC","d":true,"e":true,"f":true,"h":true,"j":["hamsa","religion","protection"],"k":[54,37],"o":14},"moyai":{"subcategory":"other-object","a":"Moyai","b":"1F5FF","d":true,"e":true,"f":true,"h":true,"j":["moai","rock","easter island"],"k":[32,20],"o":0},"placard":{"subcategory":"other-object","a":"Placard","b":"1FAA7","d":true,"e":true,"f":true,"h":true,"j":["placard","announcement"],"k":[54,32],"o":13},"identification_card":{"subcategory":"other-object","a":"Identification Card","b":"1FAAA","d":true,"e":true,"f":true,"h":true,"j":["identification card","document"],"k":[54,35],"o":14},"atm":{"subcategory":"transport-sign","a":"Automated Teller Machine","b":"1F3E7","d":true,"e":true,"f":true,"h":true,"j":["atm_sign","money","sales","cash","blue-square","payment","bank"],"k":[10,18],"o":0},"put_litter_in_its_place":{"subcategory":"transport-sign","a":"Put Litter in Its Place Symbol","b":"1F6AE","d":true,"e":true,"f":true,"h":true,"j":["litter_in_bin_sign","blue-square","sign","human","info"],"k":[36,35],"o":1},"potable_water":{"subcategory":"transport-sign","a":"Potable Water Symbol","b":"1F6B0","d":true,"e":true,"f":true,"h":true,"j":["potable_water","blue-square","liquid","restroom","cleaning","faucet"],"k":[36,37],"o":1},"wheelchair":{"subcategory":"transport-sign","a":"Wheelchair Symbol","b":"267F","d":true,"e":true,"f":true,"h":true,"j":["wheelchair_symbol","blue-square","disabled","accessibility"],"k":[57,58],"o":0},"mens":{"subcategory":"transport-sign","a":"Mens Symbol","b":"1F6B9","d":true,"e":true,"f":true,"h":true,"j":["men_s_room","toilet","restroom","wc","blue-square","gender","male"],"k":[37,36],"o":0},"womens":{"subcategory":"transport-sign","a":"Womens Symbol","b":"1F6BA","d":true,"e":true,"f":true,"h":true,"j":["women_s_room","purple-square","woman","female","toilet","loo","restroom","gender"],"k":[37,37],"o":0},"restroom":{"subcategory":"transport-sign","a":"Restroom","b":"1F6BB","d":true,"e":true,"f":true,"h":true,"j":["restroom","blue-square","toilet","refresh","wc","gender"],"k":[37,38],"o":0},"baby_symbol":{"subcategory":"transport-sign","a":"Baby Symbol","b":"1F6BC","d":true,"e":true,"f":true,"h":true,"j":["baby_symbol","orange-square","child"],"k":[37,39],"o":0},"wc":{"subcategory":"transport-sign","a":"Water Closet","b":"1F6BE","d":true,"e":true,"f":true,"h":true,"j":["water_closet","toilet","restroom","blue-square"],"k":[37,41],"o":0},"passport_control":{"subcategory":"transport-sign","a":"Passport Control","b":"1F6C2","d":true,"e":true,"f":true,"h":true,"j":["passport_control","custom","blue-square"],"k":[37,50],"o":1},"customs":{"subcategory":"transport-sign","a":"Customs","b":"1F6C3","d":true,"e":true,"f":true,"h":true,"j":["customs","passport","border","blue-square"],"k":[37,51],"o":1},"baggage_claim":{"subcategory":"transport-sign","a":"Baggage Claim","b":"1F6C4","d":true,"e":true,"f":true,"h":true,"j":["baggage_claim","blue-square","airport","transport"],"k":[37,52],"o":1},"left_luggage":{"subcategory":"transport-sign","a":"Left Luggage","b":"1F6C5","d":true,"e":true,"f":true,"h":true,"j":["left_luggage","blue-square","travel"],"k":[37,53],"o":1},"warning":{"subcategory":"warning","a":"Warning Sign","b":"26A0-FE0F","c":"26A0","d":true,"e":true,"f":true,"h":true,"j":["warning","exclamation","wip","alert","error","problem","issue"],"k":[58,7],"o":0},"children_crossing":{"subcategory":"warning","a":"Children Crossing","b":"1F6B8","d":true,"e":true,"f":true,"h":true,"j":["children_crossing","school","warning","danger","sign","driving","yellow-diamond"],"k":[37,35],"o":1},"no_entry":{"subcategory":"warning","a":"No Entry","b":"26D4","d":true,"e":true,"f":true,"h":true,"j":["no_entry","limit","security","privacy","bad","denied","stop","circle"],"k":[58,23],"o":0},"no_entry_sign":{"subcategory":"warning","a":"No Entry Sign","b":"1F6AB","d":true,"e":true,"f":true,"h":true,"j":["prohibited","forbid","stop","limit","denied","disallow","circle"],"k":[36,32],"o":0},"no_bicycles":{"subcategory":"warning","a":"No Bicycles","b":"1F6B3","d":true,"e":true,"f":true,"h":true,"j":["no_bicycles","no_bikes","bicycle","bike","cyclist","prohibited","circle"],"k":[36,40],"o":1},"no_smoking":{"subcategory":"warning","a":"No Smoking Symbol","b":"1F6AD","d":true,"e":true,"f":true,"h":true,"j":["no_smoking","cigarette","blue-square","smell","smoke"],"k":[36,34],"o":0},"do_not_litter":{"subcategory":"warning","a":"Do Not Litter Symbol","b":"1F6AF","d":true,"e":true,"f":true,"h":true,"j":["no_littering","trash","bin","garbage","circle"],"k":[36,36],"o":1},"non-potable_water":{"subcategory":"warning","a":"Non-Potable Water Symbol","b":"1F6B1","d":true,"e":true,"f":true,"h":true,"j":["non_potable_water","drink","faucet","tap","circle"],"k":[36,38],"o":1},"no_pedestrians":{"subcategory":"warning","a":"No Pedestrians","b":"1F6B7","d":true,"e":true,"f":true,"h":true,"j":["no_pedestrians","rules","crossing","walking","circle"],"k":[37,34],"o":1},"no_mobile_phones":{"subcategory":"warning","a":"No Mobile Phones","b":"1F4F5","d":true,"e":true,"f":true,"h":true,"j":["no_mobile_phones","iphone","mute","circle"],"k":[29,16],"o":1},"underage":{"subcategory":"warning","a":"No One Under Eighteen Symbol","b":"1F51E","d":true,"e":true,"f":true,"h":true,"j":["no_one_under_eighteen","18","drink","pub","night","minor","circle"],"k":[29,56],"o":0},"radioactive_sign":{"subcategory":"warning","a":"Radioactive","b":"2622-FE0F","c":"2622","d":true,"e":true,"f":true,"h":true,"j":["radioactive","nuclear","danger"],"k":[57,27],"o":1},"biohazard_sign":{"subcategory":"warning","a":"Biohazard","b":"2623-FE0F","c":"2623","d":true,"e":true,"f":true,"h":true,"j":["biohazard","danger"],"k":[57,28],"o":1},"arrow_up":{"subcategory":"arrow","a":"Upwards Black Arrow","b":"2B06-FE0F","c":"2B06","d":true,"e":true,"f":true,"h":true,"j":["up_arrow","blue-square","continue","top","direction"],"k":[59,51],"o":0},"arrow_upper_right":{"subcategory":"arrow","a":"North East Arrow","b":"2197-FE0F","c":"2197","d":true,"e":true,"f":true,"h":true,"j":["up_right_arrow","blue-square","point","direction","diagonal","northeast"],"k":[56,39],"o":0},"arrow_right":{"subcategory":"arrow","a":"Black Rightwards Arrow","b":"27A1-FE0F","c":"27A1","d":true,"e":true,"f":true,"h":true,"j":["right_arrow","blue-square","next"],"k":[59,45],"o":0},"arrow_lower_right":{"subcategory":"arrow","a":"South East Arrow","b":"2198-FE0F","c":"2198","d":true,"e":true,"f":true,"h":true,"j":["down_right_arrow","blue-square","direction","diagonal","southeast"],"k":[56,40],"o":0},"arrow_down":{"subcategory":"arrow","a":"Downwards Black Arrow","b":"2B07-FE0F","c":"2B07","d":true,"e":true,"f":true,"h":true,"j":["down_arrow","blue-square","direction","bottom"],"k":[59,52],"o":0},"arrow_lower_left":{"subcategory":"arrow","a":"South West Arrow","b":"2199-FE0F","c":"2199","d":true,"e":true,"f":true,"h":true,"j":["down_left_arrow","blue-square","direction","diagonal","southwest"],"k":[56,41],"o":0},"arrow_left":{"subcategory":"arrow","a":"Leftwards Black Arrow","b":"2B05-FE0F","c":"2B05","d":true,"e":true,"f":true,"h":true,"j":["left_arrow","blue-square","previous","back"],"k":[59,50],"o":0},"arrow_upper_left":{"subcategory":"arrow","a":"North West Arrow","b":"2196-FE0F","c":"2196","d":true,"e":true,"f":true,"h":true,"j":["up_left_arrow","blue-square","point","direction","diagonal","northwest"],"k":[56,38],"o":0},"arrow_up_down":{"subcategory":"arrow","a":"Up Down Arrow","b":"2195-FE0F","c":"2195","d":true,"e":true,"f":true,"h":true,"j":["up_down_arrow","blue-square","direction","way","vertical"],"k":[56,37],"o":0},"left_right_arrow":{"subcategory":"arrow","a":"Left Right Arrow","b":"2194-FE0F","c":"2194","d":true,"e":true,"f":true,"h":true,"j":["left_right_arrow","shape","direction","horizontal","sideways"],"k":[56,36],"o":0},"leftwards_arrow_with_hook":{"subcategory":"arrow","a":"Leftwards Arrow with Hook","b":"21A9-FE0F","c":"21A9","d":true,"e":true,"f":true,"h":true,"j":["right_arrow_curving_left","back","return","blue-square","undo","enter"],"k":[56,42],"o":0},"arrow_right_hook":{"subcategory":"arrow","a":"Rightwards Arrow with Hook","b":"21AA-FE0F","c":"21AA","d":true,"e":true,"f":true,"h":true,"j":["left_arrow_curving_right","blue-square","return","rotate","direction"],"k":[56,43],"o":0},"arrow_heading_up":{"subcategory":"arrow","a":"Arrow Pointing Rightwards Then Curving Upwards","b":"2934-FE0F","c":"2934","d":true,"e":true,"f":true,"h":true,"j":["right_arrow_curving_up","blue-square","direction","top"],"k":[59,48],"o":0},"arrow_heading_down":{"subcategory":"arrow","a":"Arrow Pointing Rightwards Then Curving Downwards","b":"2935-FE0F","c":"2935","d":true,"e":true,"f":true,"h":true,"j":["right_arrow_curving_down","blue-square","direction","bottom"],"k":[59,49],"o":0},"arrows_clockwise":{"subcategory":"arrow","a":"Clockwise Downwards and Upwards Open Circle Arrows","b":"1F503","d":true,"e":true,"f":true,"h":true,"j":["clockwise_vertical_arrows","sync","cycle","round","repeat"],"k":[29,29],"o":0},"arrows_counterclockwise":{"subcategory":"arrow","a":"Anticlockwise Downwards and Upwards Open Circle Arrows","b":"1F504","d":true,"e":true,"f":true,"h":true,"j":["counterclockwise_arrows_button","blue-square","sync","cycle"],"k":[29,30],"o":1},"back":{"subcategory":"arrow","a":"Back with Leftwards Arrow Above","b":"1F519","d":true,"e":true,"f":true,"h":true,"j":["back_arrow","arrow","words","return"],"k":[29,51],"o":0},"end":{"subcategory":"arrow","a":"End with Leftwards Arrow Above","b":"1F51A","d":true,"e":true,"f":true,"h":true,"j":["end_arrow","words","arrow"],"k":[29,52],"o":0},"on":{"subcategory":"arrow","a":"On with Exclamation Mark with Left Right Arrow Above","b":"1F51B","d":true,"e":true,"f":true,"h":true,"j":["on_arrow","arrow","words"],"k":[29,53],"o":0},"soon":{"subcategory":"arrow","a":"Soon with Rightwards Arrow Above","b":"1F51C","d":true,"e":true,"f":true,"h":true,"j":["soon_arrow","arrow","words"],"k":[29,54],"o":0},"top":{"subcategory":"arrow","a":"Top with Upwards Arrow Above","b":"1F51D","d":true,"e":true,"f":true,"h":true,"j":["top_arrow","words","blue-square"],"k":[29,55],"o":0},"place_of_worship":{"subcategory":"religion","a":"Place of Worship","b":"1F6D0","d":true,"e":true,"f":true,"h":true,"j":["place_of_worship","religion","church","temple","prayer"],"k":[38,3],"o":1},"atom_symbol":{"subcategory":"religion","a":"Atom Symbol","b":"269B-FE0F","c":"269B","d":true,"e":true,"f":true,"h":true,"j":["atom_symbol","science","physics","chemistry"],"k":[58,5],"o":1},"om_symbol":{"subcategory":"religion","a":"Om","b":"1F549-FE0F","c":"1F549","d":true,"e":true,"f":true,"h":true,"j":["om","hinduism","buddhism","sikhism","jainism"],"k":[30,27],"o":0},"star_of_david":{"subcategory":"religion","a":"Star of David","b":"2721-FE0F","c":"2721","d":true,"e":true,"f":true,"h":true,"j":["star_of_david","judaism"],"k":[59,26],"o":0},"wheel_of_dharma":{"subcategory":"religion","a":"Wheel of Dharma","b":"2638-FE0F","c":"2638","d":true,"e":true,"f":true,"h":true,"j":["wheel_of_dharma","hinduism","buddhism","sikhism","jainism"],"k":[57,33],"o":0},"yin_yang":{"subcategory":"religion","a":"Yin Yang","b":"262F-FE0F","c":"262F","d":true,"e":true,"f":true,"h":true,"j":["yin_yang","balance"],"k":[57,32],"o":0},"latin_cross":{"subcategory":"religion","a":"Latin Cross","b":"271D-FE0F","c":"271D","d":true,"e":true,"f":true,"h":true,"j":["latin_cross","christianity"],"k":[59,25],"o":0},"orthodox_cross":{"subcategory":"religion","a":"Orthodox Cross","b":"2626-FE0F","c":"2626","d":true,"e":true,"f":true,"h":true,"j":["orthodox_cross","suppedaneum","religion"],"k":[57,29],"o":1},"star_and_crescent":{"subcategory":"religion","a":"Star and Crescent","b":"262A-FE0F","c":"262A","d":true,"e":true,"f":true,"h":true,"j":["star_and_crescent","islam"],"k":[57,30],"o":0},"peace_symbol":{"subcategory":"religion","a":"Peace Symbol","b":"262E-FE0F","c":"262E","d":true,"e":true,"f":true,"h":true,"j":["peace_symbol","hippie"],"k":[57,31],"o":1},"menorah_with_nine_branches":{"subcategory":"religion","a":"Menorah with Nine Branches","b":"1F54E","d":true,"e":true,"f":true,"h":true,"j":["menorah","hanukkah","candles","jewish"],"k":[30,32],"o":1},"six_pointed_star":{"subcategory":"religion","a":"Six Pointed Star with Middle Dot","b":"1F52F","d":true,"e":true,"f":true,"h":true,"j":["dotted_six_pointed_star","purple-square","religion","jewish","hexagram"],"k":[30,12],"o":0},"khanda":{"subcategory":"religion","a":"Khanda","b":"1FAAF","d":true,"e":true,"f":false,"h":false,"j":["khanda","Sikhism","religion"],"k":[54,40],"o":15},"aries":{"subcategory":"zodiac","a":"Aries","b":"2648","d":true,"e":true,"f":true,"h":true,"j":["aries","sign","purple-square","zodiac","astrology"],"k":[57,38],"o":0},"taurus":{"subcategory":"zodiac","a":"Taurus","b":"2649","d":true,"e":true,"f":true,"h":true,"j":["taurus","purple-square","sign","zodiac","astrology"],"k":[57,39],"o":0},"gemini":{"subcategory":"zodiac","a":"Gemini","b":"264A","d":true,"e":true,"f":true,"h":true,"j":["gemini","sign","zodiac","purple-square","astrology"],"k":[57,40],"o":0},"cancer":{"subcategory":"zodiac","a":"Cancer","b":"264B","d":true,"e":true,"f":true,"h":true,"j":["cancer","sign","zodiac","purple-square","astrology"],"k":[57,41],"o":0},"leo":{"subcategory":"zodiac","a":"Leo","b":"264C","d":true,"e":true,"f":true,"h":true,"j":["leo","sign","purple-square","zodiac","astrology"],"k":[57,42],"o":0},"virgo":{"subcategory":"zodiac","a":"Virgo","b":"264D","d":true,"e":true,"f":true,"h":true,"j":["virgo","sign","zodiac","purple-square","astrology"],"k":[57,43],"o":0},"libra":{"subcategory":"zodiac","a":"Libra","b":"264E","d":true,"e":true,"f":true,"h":true,"j":["libra","sign","purple-square","zodiac","astrology"],"k":[57,44],"o":0},"scorpius":{"subcategory":"zodiac","a":"Scorpius","b":"264F","d":true,"e":true,"f":true,"h":true,"j":["scorpio","sign","zodiac","purple-square","astrology"],"k":[57,45],"o":0},"sagittarius":{"subcategory":"zodiac","a":"Sagittarius","b":"2650","d":true,"e":true,"f":true,"h":true,"j":["sagittarius","sign","zodiac","purple-square","astrology"],"k":[57,46],"o":0},"capricorn":{"subcategory":"zodiac","a":"Capricorn","b":"2651","d":true,"e":true,"f":true,"h":true,"j":["capricorn","sign","zodiac","purple-square","astrology"],"k":[57,47],"o":0},"aquarius":{"subcategory":"zodiac","a":"Aquarius","b":"2652","d":true,"e":true,"f":true,"h":true,"j":["aquarius","sign","purple-square","zodiac","astrology"],"k":[57,48],"o":0},"pisces":{"subcategory":"zodiac","a":"Pisces","b":"2653","d":true,"e":true,"f":true,"h":true,"j":["pisces","purple-square","sign","zodiac","astrology"],"k":[57,49],"o":0},"ophiuchus":{"subcategory":"zodiac","a":"Ophiuchus","b":"26CE","d":true,"e":true,"f":true,"h":true,"j":["ophiuchus","sign","purple-square","constellation","astrology"],"k":[58,19],"o":0},"twisted_rightwards_arrows":{"subcategory":"av-symbol","a":"Twisted Rightwards Arrows","b":"1F500","d":true,"e":true,"f":true,"h":true,"j":["shuffle_tracks_button","blue-square","shuffle","music","random"],"k":[29,26],"o":1},"repeat":{"subcategory":"av-symbol","a":"Clockwise Rightwards and Leftwards Open Circle Arrows","b":"1F501","d":true,"e":true,"f":true,"h":true,"j":["repeat_button","loop","record"],"k":[29,27],"o":1},"repeat_one":{"subcategory":"av-symbol","a":"Clockwise Rightwards and Leftwards Open Circle Arrows with Circled One Overlay","b":"1F502","d":true,"e":true,"f":true,"h":true,"j":["repeat_single_button","blue-square","loop"],"k":[29,28],"o":1},"arrow_forward":{"subcategory":"av-symbol","a":"Black Right-Pointing Triangle","b":"25B6-FE0F","c":"25B6","d":true,"e":true,"f":true,"h":true,"j":["play_button","blue-square","right","direction","play"],"k":[57,4],"o":0},"fast_forward":{"subcategory":"av-symbol","a":"Black Right-Pointing Double Triangle","b":"23E9","d":true,"e":true,"f":true,"h":true,"j":["fast_forward_button","blue-square","play","speed","continue"],"k":[56,48],"o":0},"black_right_pointing_double_triangle_with_vertical_bar":{"subcategory":"av-symbol","a":"Next Track Button","b":"23ED-FE0F","c":"23ED","d":true,"e":true,"f":true,"h":true,"j":["next_track_button","forward","next","blue-square"],"k":[56,52],"o":0},"black_right_pointing_triangle_with_double_vertical_bar":{"subcategory":"av-symbol","a":"Play or Pause Button","b":"23EF-FE0F","c":"23EF","d":true,"e":true,"f":true,"h":true,"j":["play_or_pause_button","blue-square","play","pause"],"k":[56,54],"o":1},"arrow_backward":{"subcategory":"av-symbol","a":"Black Left-Pointing Triangle","b":"25C0-FE0F","c":"25C0","d":true,"e":true,"f":true,"h":true,"j":["reverse_button","blue-square","left","direction"],"k":[57,5],"o":0},"rewind":{"subcategory":"av-symbol","a":"Black Left-Pointing Double Triangle","b":"23EA","d":true,"e":true,"f":true,"h":true,"j":["fast_reverse_button","play","blue-square"],"k":[56,49],"o":0},"black_left_pointing_double_triangle_with_vertical_bar":{"subcategory":"av-symbol","a":"Last Track Button","b":"23EE-FE0F","c":"23EE","d":true,"e":true,"f":true,"h":true,"j":["last_track_button","backward"],"k":[56,53],"o":0},"arrow_up_small":{"subcategory":"av-symbol","a":"Up-Pointing Small Red Triangle","b":"1F53C","d":true,"e":true,"f":true,"h":true,"j":["upwards_button","blue-square","triangle","direction","point","forward","top"],"k":[30,25],"o":0},"arrow_double_up":{"subcategory":"av-symbol","a":"Black Up-Pointing Double Triangle","b":"23EB","d":true,"e":true,"f":true,"h":true,"j":["fast_up_button","blue-square","direction","top"],"k":[56,50],"o":0},"arrow_down_small":{"subcategory":"av-symbol","a":"Down-Pointing Small Red Triangle","b":"1F53D","d":true,"e":true,"f":true,"h":true,"j":["downwards_button","blue-square","direction","bottom"],"k":[30,26],"o":0},"arrow_double_down":{"subcategory":"av-symbol","a":"Black Down-Pointing Double Triangle","b":"23EC","d":true,"e":true,"f":true,"h":true,"j":["fast_down_button","blue-square","direction","bottom"],"k":[56,51],"o":0},"double_vertical_bar":{"subcategory":"av-symbol","a":"Pause Button","b":"23F8-FE0F","c":"23F8","d":true,"e":true,"f":true,"h":true,"j":["pause_button","pause","blue-square"],"k":[56,59],"o":0},"black_square_for_stop":{"subcategory":"av-symbol","a":"Stop Button","b":"23F9-FE0F","c":"23F9","d":true,"e":true,"f":true,"h":true,"j":["stop_button","blue-square"],"k":[56,60],"o":0},"black_circle_for_record":{"subcategory":"av-symbol","a":"Record Button","b":"23FA-FE0F","c":"23FA","d":true,"e":true,"f":true,"h":true,"j":["record_button","blue-square"],"k":[57,0],"o":0},"eject":{"subcategory":"av-symbol","a":"Eject Button","b":"23CF-FE0F","c":"23CF","d":true,"e":true,"f":true,"h":true,"j":["eject_button","blue-square"],"k":[56,47],"o":1},"cinema":{"subcategory":"av-symbol","a":"Cinema","b":"1F3A6","d":true,"e":true,"f":true,"h":true,"j":["cinema","blue-square","record","film","movie","curtain","stage","theater"],"k":[7,41],"o":0},"low_brightness":{"subcategory":"av-symbol","a":"Low Brightness Symbol","b":"1F505","d":true,"e":true,"f":true,"h":true,"j":["dim_button","sun","afternoon","warm","summer"],"k":[29,31],"o":1},"high_brightness":{"subcategory":"av-symbol","a":"High Brightness Symbol","b":"1F506","d":true,"e":true,"f":true,"h":true,"j":["bright_button","sun","light"],"k":[29,32],"o":1},"signal_strength":{"subcategory":"av-symbol","a":"Antenna with Bars","b":"1F4F6","d":true,"e":true,"f":true,"h":true,"j":["antenna_bars","blue-square","reception","phone","internet","connection","wifi","bluetooth","bars"],"k":[29,17],"o":0},"wireless":{"subcategory":"av-symbol","a":"Wireless","b":"1F6DC","d":true,"e":true,"f":false,"h":false,"j":["wireless","wifi","internet","contactless","signal"],"k":[38,9],"o":15},"vibration_mode":{"subcategory":"av-symbol","a":"Vibration Mode","b":"1F4F3","d":true,"e":true,"f":true,"h":true,"j":["vibration_mode","orange-square","phone"],"k":[29,14],"o":0},"mobile_phone_off":{"subcategory":"av-symbol","a":"Mobile Phone off","b":"1F4F4","d":true,"e":true,"f":true,"h":true,"j":["mobile_phone_off","mute","orange-square","silence","quiet"],"k":[29,15],"o":0},"female_sign":{"subcategory":"gender","a":"Female Sign","b":"2640-FE0F","c":"2640","d":false,"e":true,"f":true,"h":true,"j":["female_sign","woman","women","lady","girl"],"k":[57,36],"o":4},"male_sign":{"subcategory":"gender","a":"Male Sign","b":"2642-FE0F","c":"2642","d":false,"e":true,"f":true,"h":true,"j":["male_sign","man","boy","men"],"k":[57,37],"o":4},"transgender_symbol":{"subcategory":"gender","a":"Transgender Symbol","b":"26A7-FE0F","c":"26A7","d":true,"e":true,"f":true,"h":true,"j":["transgender symbol","transgender","lgbtq"],"k":[58,9],"o":13},"heavy_multiplication_x":{"subcategory":"math","a":"Heavy Multiplication X","b":"2716-FE0F","c":"2716","d":true,"e":true,"f":true,"h":true,"j":["multiplication_sign","math","calculation"],"k":[59,24],"o":0},"heavy_plus_sign":{"subcategory":"math","a":"Heavy Plus Sign","b":"2795","d":true,"e":true,"f":true,"h":true,"j":["plus_sign","math","calculation","addition","more","increase"],"k":[59,42],"o":0},"heavy_minus_sign":{"subcategory":"math","a":"Heavy Minus Sign","b":"2796","d":true,"e":true,"f":true,"h":true,"j":["minus_sign","math","calculation","subtract","less"],"k":[59,43],"o":0},"heavy_division_sign":{"subcategory":"math","a":"Heavy Division Sign","b":"2797","d":true,"e":true,"f":true,"h":true,"j":["division_sign","divide","math","calculation"],"k":[59,44],"o":0},"heavy_equals_sign":{"subcategory":"math","a":"Heavy Equals Sign","b":"1F7F0","d":true,"e":true,"f":true,"h":true,"j":["heavy equals sign","math"],"k":[38,45],"o":14},"infinity":{"subcategory":"math","a":"Infinity","b":"267E-FE0F","c":"267E","d":true,"e":true,"f":true,"h":true,"j":["infinity","forever"],"k":[57,57],"o":11},"bangbang":{"subcategory":"punctuation","a":"Double Exclamation Mark","b":"203C-FE0F","c":"203C","d":true,"e":true,"f":true,"h":true,"j":["double_exclamation_mark","exclamation","surprise"],"k":[56,32],"o":0},"interrobang":{"subcategory":"punctuation","a":"Exclamation Question Mark","b":"2049-FE0F","c":"2049","d":true,"e":true,"f":true,"h":true,"j":["exclamation_question_mark","wat","punctuation","surprise"],"k":[56,33],"o":0},"question":{"subcategory":"punctuation","a":"Black Question Mark Ornament","b":"2753","d":true,"e":true,"f":true,"h":true,"j":["question_mark","doubt","confused"],"k":[59,34],"o":0},"grey_question":{"subcategory":"punctuation","a":"White Question Mark Ornament","b":"2754","d":true,"e":true,"f":true,"h":true,"j":["white_question_mark","doubts","gray","huh","confused"],"k":[59,35],"o":0},"grey_exclamation":{"subcategory":"punctuation","a":"White Exclamation Mark Ornament","b":"2755","d":true,"e":true,"f":true,"h":true,"j":["white_exclamation_mark","surprise","punctuation","gray","wow","warning"],"k":[59,36],"o":0},"exclamation":{"subcategory":"punctuation","a":"Heavy Exclamation Mark Symbol","b":"2757","d":true,"e":true,"f":true,"h":true,"j":["exclamation_mark","heavy_exclamation_mark","danger","surprise","punctuation","wow","warning"],"k":[59,37],"n":["heavy_exclamation_mark"],"o":0},"wavy_dash":{"subcategory":"punctuation","a":"Wavy Dash","b":"3030-FE0F","c":"3030","d":true,"e":true,"f":true,"h":true,"j":["wavy_dash","draw","line","moustache","mustache","squiggle","scribble"],"k":[59,57],"o":0},"currency_exchange":{"subcategory":"currency","a":"Currency Exchange","b":"1F4B1","d":true,"e":true,"f":true,"h":true,"j":["currency_exchange","money","sales","dollar","travel"],"k":[28,9],"o":0},"heavy_dollar_sign":{"subcategory":"currency","a":"Heavy Dollar Sign","b":"1F4B2","d":true,"e":true,"f":true,"h":true,"j":["heavy_dollar_sign","money","sales","payment","currency","buck"],"k":[28,10],"o":0},"medical_symbol":{"subcategory":"other-symbol","a":"Medical Symbol","b":"2695-FE0F","c":"2695","d":false,"e":true,"f":true,"h":true,"j":["medical_symbol","health","hospital"],"k":[58,1],"n":["staff_of_aesculapius"],"o":4},"recycle":{"subcategory":"other-symbol","a":"Black Universal Recycling Symbol","b":"267B-FE0F","c":"267B","d":true,"e":true,"f":true,"h":true,"j":["recycling_symbol","arrow","environment","garbage","trash"],"k":[57,56],"o":0},"fleur_de_lis":{"subcategory":"other-symbol","a":"Fleur-De-Lis","b":"269C-FE0F","c":"269C","d":true,"e":true,"f":true,"h":true,"j":["fleur_de_lis","decorative","scout"],"k":[58,6],"o":1},"trident":{"subcategory":"other-symbol","a":"Trident Emblem","b":"1F531","d":true,"e":true,"f":true,"h":true,"j":["trident_emblem","weapon","spear"],"k":[30,14],"o":0},"name_badge":{"subcategory":"other-symbol","a":"Name Badge","b":"1F4DB","d":true,"e":true,"f":true,"h":true,"j":["name_badge","fire","forbid"],"k":[28,51],"o":0},"beginner":{"subcategory":"other-symbol","a":"Japanese Symbol for Beginner","b":"1F530","d":true,"e":true,"f":true,"h":true,"j":["japanese_symbol_for_beginner","badge","shield"],"k":[30,13],"o":0},"o":{"subcategory":"other-symbol","a":"Heavy Large Circle","b":"2B55","d":true,"e":true,"f":true,"h":true,"j":["hollow_red_circle","circle","round"],"k":[59,56],"o":0},"white_check_mark":{"subcategory":"other-symbol","a":"White Heavy Check Mark","b":"2705","d":true,"e":true,"f":true,"h":true,"j":["check_mark_button","green-square","ok","agree","vote","election","answer","tick"],"k":[58,55],"o":0},"ballot_box_with_check":{"subcategory":"other-symbol","a":"Ballot Box with Check","b":"2611-FE0F","c":"2611","d":true,"e":true,"f":true,"h":true,"j":["check_box_with_check","ok","agree","confirm","black-square","vote","election","yes","tick"],"k":[57,16],"o":0},"heavy_check_mark":{"subcategory":"other-symbol","a":"Heavy Check Mark","b":"2714-FE0F","c":"2714","d":true,"e":true,"f":true,"h":true,"j":["check_mark","ok","nike","answer","yes","tick"],"k":[59,23],"o":0},"x":{"subcategory":"other-symbol","a":"Cross Mark","b":"274C","d":true,"e":true,"f":true,"h":true,"j":["cross_mark","no","delete","remove","cancel","red"],"k":[59,32],"o":0},"negative_squared_cross_mark":{"subcategory":"other-symbol","a":"Negative Squared Cross Mark","b":"274E","d":true,"e":true,"f":true,"h":true,"j":["cross_mark_button","x","green-square","no","deny"],"k":[59,33],"o":0},"curly_loop":{"subcategory":"other-symbol","a":"Curly Loop","b":"27B0","d":true,"e":true,"f":true,"h":true,"j":["curly_loop","scribble","draw","shape","squiggle"],"k":[59,46],"o":0},"loop":{"subcategory":"other-symbol","a":"Double Curly Loop","b":"27BF","d":true,"e":true,"f":true,"h":true,"j":["double_curly_loop","tape","cassette"],"k":[59,47],"o":1},"part_alternation_mark":{"subcategory":"other-symbol","a":"Part Alternation Mark","b":"303D-FE0F","c":"303D","d":true,"e":true,"f":true,"h":true,"j":["part_alternation_mark","graph","presentation","stats","business","economics","bad"],"k":[59,58],"o":0},"eight_spoked_asterisk":{"subcategory":"other-symbol","a":"Eight Spoked Asterisk","b":"2733-FE0F","c":"2733","d":true,"e":true,"f":true,"h":true,"j":["eight_spoked_asterisk","star","sparkle","green-square"],"k":[59,28],"o":0},"eight_pointed_black_star":{"subcategory":"other-symbol","a":"Eight Pointed Black Star","b":"2734-FE0F","c":"2734","d":true,"e":true,"f":true,"h":true,"j":["eight_pointed_star","orange-square","shape","polygon"],"k":[59,29],"o":0},"sparkle":{"subcategory":"other-symbol","a":"Sparkle","b":"2747-FE0F","c":"2747","d":true,"e":true,"f":true,"h":true,"j":["sparkle","stars","green-square","awesome","good","fireworks"],"k":[59,31],"o":0},"copyright":{"subcategory":"other-symbol","a":"Copyright Sign","b":"00A9-FE0F","c":"00A9","d":true,"e":true,"f":true,"h":false,"j":["copyright","ip","license","circle","law","legal"],"k":[0,12],"o":0},"registered":{"subcategory":"other-symbol","a":"Registered Sign","b":"00AE-FE0F","c":"00AE","d":true,"e":true,"f":true,"h":false,"j":["registered","alphabet","circle"],"k":[0,13],"o":0},"tm":{"subcategory":"other-symbol","a":"Trade Mark Sign","b":"2122-FE0F","c":"2122","d":true,"e":true,"f":true,"h":true,"j":["trade_mark","trademark","brand","law","legal"],"k":[56,34],"o":0},"hash":{"subcategory":"keycap","a":"Hash Key","b":"0023-FE0F-20E3","c":"0023-20E3","d":true,"e":true,"f":true,"h":false,"j":["keycap_","symbol","blue-square","twitter"],"k":[0,0],"o":0},"keycap_star":{"subcategory":"keycap","a":"Keycap: *","b":"002A-FE0F-20E3","c":"002A-20E3","d":true,"e":true,"f":true,"h":false,"j":["keycap_","star","keycap"],"k":[0,1],"o":2},"zero":{"subcategory":"keycap","a":"Keycap 0","b":"0030-FE0F-20E3","c":"0030-20E3","d":true,"e":true,"f":true,"h":false,"j":["keycap_0","0","numbers","blue-square","null","zero"],"k":[0,2],"o":0},"one":{"subcategory":"keycap","a":"Keycap 1","b":"0031-FE0F-20E3","c":"0031-20E3","d":true,"e":true,"f":true,"h":false,"j":["keycap_1","blue-square","numbers","1","one"],"k":[0,3],"o":0},"two":{"subcategory":"keycap","a":"Keycap 2","b":"0032-FE0F-20E3","c":"0032-20E3","d":true,"e":true,"f":true,"h":false,"j":["keycap_2","numbers","2","prime","blue-square","two"],"k":[0,4],"o":0},"three":{"subcategory":"keycap","a":"Keycap 3","b":"0033-FE0F-20E3","c":"0033-20E3","d":true,"e":true,"f":true,"h":false,"j":["keycap_3","3","numbers","prime","blue-square","three"],"k":[0,5],"o":0},"four":{"subcategory":"keycap","a":"Keycap 4","b":"0034-FE0F-20E3","c":"0034-20E3","d":true,"e":true,"f":true,"h":false,"j":["keycap_4","4","numbers","blue-square","four"],"k":[0,6],"o":0},"five":{"subcategory":"keycap","a":"Keycap 5","b":"0035-FE0F-20E3","c":"0035-20E3","d":true,"e":true,"f":true,"h":false,"j":["keycap_5","5","numbers","blue-square","prime","five"],"k":[0,7],"o":0},"six":{"subcategory":"keycap","a":"Keycap 6","b":"0036-FE0F-20E3","c":"0036-20E3","d":true,"e":true,"f":true,"h":false,"j":["keycap_6","6","numbers","blue-square","six"],"k":[0,8],"o":0},"seven":{"subcategory":"keycap","a":"Keycap 7","b":"0037-FE0F-20E3","c":"0037-20E3","d":true,"e":true,"f":true,"h":false,"j":["keycap_7","7","numbers","blue-square","prime","seven"],"k":[0,9],"o":0},"eight":{"subcategory":"keycap","a":"Keycap 8","b":"0038-FE0F-20E3","c":"0038-20E3","d":true,"e":true,"f":true,"h":false,"j":["keycap_8","8","blue-square","numbers","eight"],"k":[0,10],"o":0},"nine":{"subcategory":"keycap","a":"Keycap 9","b":"0039-FE0F-20E3","c":"0039-20E3","d":true,"e":true,"f":true,"h":false,"j":["keycap_9","blue-square","numbers","9","nine"],"k":[0,11],"o":0},"keycap_ten":{"subcategory":"keycap","a":"Keycap Ten","b":"1F51F","d":true,"e":true,"f":true,"h":true,"j":["keycap_10","numbers","10","blue-square","ten"],"k":[29,57],"o":0},"capital_abcd":{"subcategory":"alphanum","a":"Input Symbol for Latin Capital Letters","b":"1F520","d":true,"e":true,"f":true,"h":true,"j":["input_latin_uppercase","alphabet","words","letters","uppercase","blue-square"],"k":[29,58],"o":0},"abcd":{"subcategory":"alphanum","a":"Input Symbol for Latin Small Letters","b":"1F521","d":true,"e":true,"f":true,"h":true,"j":["input_latin_lowercase","blue-square","letters","lowercase","alphabet"],"k":[29,59],"o":0},"symbols":{"subcategory":"alphanum","a":"Input Symbol for Symbols","b":"1F523","d":true,"e":true,"f":true,"h":true,"j":["input_symbols","blue-square","music","note","ampersand","percent","glyphs","characters"],"k":[30,0],"o":0},"abc":{"subcategory":"alphanum","a":"Input Symbol for Latin Letters","b":"1F524","d":true,"e":true,"f":true,"h":true,"j":["input_latin_letters","blue-square","alphabet"],"k":[30,1],"o":0},"a":{"subcategory":"alphanum","a":"Negative Squared Latin Capital Letter a","b":"1F170-FE0F","c":"1F170","d":true,"e":true,"f":true,"h":true,"j":["a_button","red-square","alphabet","letter"],"k":[0,16],"o":0},"ab":{"subcategory":"alphanum","a":"Negative Squared Ab","b":"1F18E","d":true,"e":true,"f":true,"h":true,"j":["ab_button","red-square","alphabet"],"k":[0,20],"o":0},"b":{"subcategory":"alphanum","a":"Negative Squared Latin Capital Letter B","b":"1F171-FE0F","c":"1F171","d":true,"e":true,"f":true,"h":true,"j":["b_button","red-square","alphabet","letter"],"k":[0,17],"o":0},"cl":{"subcategory":"alphanum","a":"Squared Cl","b":"1F191","d":true,"e":true,"f":true,"h":true,"j":["cl_button","alphabet","words","red-square"],"k":[0,21],"o":0},"cool":{"subcategory":"alphanum","a":"Squared Cool","b":"1F192","d":true,"e":true,"f":true,"h":true,"j":["cool_button","words","blue-square"],"k":[0,22],"o":0},"free":{"subcategory":"alphanum","a":"Squared Free","b":"1F193","d":true,"e":true,"f":true,"h":true,"j":["free_button","blue-square","words"],"k":[0,23],"o":0},"information_source":{"subcategory":"alphanum","a":"Information Source","b":"2139-FE0F","c":"2139","d":true,"e":true,"f":true,"h":true,"j":["information","blue-square","alphabet","letter"],"k":[56,35],"o":0},"id":{"subcategory":"alphanum","a":"Squared Id","b":"1F194","d":true,"e":true,"f":true,"h":true,"j":["id_button","purple-square","words"],"k":[0,24],"o":0},"m":{"subcategory":"alphanum","a":"Circled Latin Capital Letter M","b":"24C2-FE0F","c":"24C2","d":true,"e":true,"f":true,"h":true,"j":["circled_m","alphabet","blue-circle","letter"],"k":[57,1],"o":0},"new":{"subcategory":"alphanum","a":"Squared New","b":"1F195","d":true,"e":true,"f":true,"h":true,"j":["new_button","blue-square","words","start"],"k":[0,25],"o":0},"ng":{"subcategory":"alphanum","a":"Squared Ng","b":"1F196","d":true,"e":true,"f":true,"h":true,"j":["ng_button","blue-square","words","shape","icon"],"k":[0,26],"o":0},"o2":{"subcategory":"alphanum","a":"Negative Squared Latin Capital Letter O","b":"1F17E-FE0F","c":"1F17E","d":true,"e":true,"f":true,"h":true,"j":["o_button","alphabet","red-square","letter"],"k":[0,18],"o":0},"ok":{"subcategory":"alphanum","a":"Squared Ok","b":"1F197","d":true,"e":true,"f":true,"h":true,"j":["ok_button","good","agree","yes","blue-square"],"k":[0,27],"o":0},"parking":{"subcategory":"alphanum","a":"Negative Squared Latin Capital Letter P","b":"1F17F-FE0F","c":"1F17F","d":true,"e":true,"f":true,"h":true,"j":["p_button","cars","blue-square","alphabet","letter"],"k":[0,19],"o":0},"sos":{"subcategory":"alphanum","a":"Squared Sos","b":"1F198","d":true,"e":true,"f":true,"h":true,"j":["sos_button","help","red-square","words","emergency","911"],"k":[0,28],"o":0},"up":{"subcategory":"alphanum","a":"Squared Up with Exclamation Mark","b":"1F199","d":true,"e":true,"f":true,"h":true,"j":["up_button","blue-square","above","high"],"k":[0,29],"o":0},"vs":{"subcategory":"alphanum","a":"Squared Vs","b":"1F19A","d":true,"e":true,"f":true,"h":true,"j":["vs_button","words","orange-square"],"k":[0,30],"o":0},"koko":{"subcategory":"alphanum","a":"Squared Katakana Koko","b":"1F201","d":true,"e":true,"f":true,"h":true,"j":["japanese_here_button","blue-square","here","katakana","japanese","destination"],"k":[4,45],"o":0},"sa":{"subcategory":"alphanum","a":"Squared Katakana Sa","b":"1F202-FE0F","c":"1F202","d":true,"e":true,"f":true,"h":true,"j":["japanese_service_charge_button","japanese","blue-square","katakana"],"k":[4,46],"o":0},"u6708":{"subcategory":"alphanum","a":"Squared Cjk Unified Ideograph-6708","b":"1F237-FE0F","c":"1F237","d":true,"e":true,"f":true,"h":true,"j":["japanese_monthly_amount_button","chinese","month","moon","japanese","orange-square","kanji"],"k":[4,54],"o":0},"u6709":{"subcategory":"alphanum","a":"Squared Cjk Unified Ideograph-6709","b":"1F236","d":true,"e":true,"f":true,"h":true,"j":["japanese_not_free_of_charge_button","orange-square","chinese","have","kanji"],"k":[4,53],"o":0},"u6307":{"subcategory":"alphanum","a":"Squared Cjk Unified Ideograph-6307","b":"1F22F","d":true,"e":true,"f":true,"h":true,"j":["japanese_reserved_button","chinese","point","green-square","kanji"],"k":[4,48],"o":0},"ideograph_advantage":{"subcategory":"alphanum","a":"Circled Ideograph Advantage","b":"1F250","d":true,"e":true,"f":true,"h":true,"j":["japanese_bargain_button","chinese","kanji","obtain","get","circle"],"k":[4,58],"o":0},"u5272":{"subcategory":"alphanum","a":"Squared Cjk Unified Ideograph-5272","b":"1F239","d":true,"e":true,"f":true,"h":true,"j":["japanese_discount_button","cut","divide","chinese","kanji","pink-square"],"k":[4,56],"o":0},"u7121":{"subcategory":"alphanum","a":"Squared Cjk Unified Ideograph-7121","b":"1F21A","d":true,"e":true,"f":true,"h":true,"j":["japanese_free_of_charge_button","nothing","chinese","kanji","japanese","orange-square"],"k":[4,47],"o":0},"u7981":{"subcategory":"alphanum","a":"Squared Cjk Unified Ideograph-7981","b":"1F232","d":true,"e":true,"f":true,"h":true,"j":["japanese_prohibited_button","kanji","japanese","chinese","forbidden","limit","restricted","red-square"],"k":[4,49],"o":0},"accept":{"subcategory":"alphanum","a":"Circled Ideograph Accept","b":"1F251","d":true,"e":true,"f":true,"h":true,"j":["japanese_acceptable_button","ok","good","chinese","kanji","agree","yes","orange-circle"],"k":[4,59],"o":0},"u7533":{"subcategory":"alphanum","a":"Squared Cjk Unified Ideograph-7533","b":"1F238","d":true,"e":true,"f":true,"h":true,"j":["japanese_application_button","chinese","japanese","kanji","orange-square"],"k":[4,55],"o":0},"u5408":{"subcategory":"alphanum","a":"Squared Cjk Unified Ideograph-5408","b":"1F234","d":true,"e":true,"f":true,"h":true,"j":["japanese_passing_grade_button","japanese","chinese","join","kanji","red-square"],"k":[4,51],"o":0},"u7a7a":{"subcategory":"alphanum","a":"Squared Cjk Unified Ideograph-7a7a","b":"1F233","d":true,"e":true,"f":true,"h":true,"j":["japanese_vacancy_button","kanji","japanese","chinese","empty","sky","blue-square"],"k":[4,50],"o":0},"congratulations":{"subcategory":"alphanum","a":"Circled Ideograph Congratulation","b":"3297-FE0F","c":"3297","d":true,"e":true,"f":true,"h":true,"j":["japanese_congratulations_button","chinese","kanji","japanese","red-circle"],"k":[59,59],"o":0},"secret":{"subcategory":"alphanum","a":"Circled Ideograph Secret","b":"3299-FE0F","c":"3299","d":true,"e":true,"f":true,"h":true,"j":["japanese_secret_button","privacy","chinese","sshh","kanji","red-circle"],"k":[59,60],"o":0},"u55b6":{"subcategory":"alphanum","a":"Squared Cjk Unified Ideograph-55b6","b":"1F23A","d":true,"e":true,"f":true,"h":true,"j":["japanese_open_for_business_button","japanese","opening hours","orange-square"],"k":[4,57],"o":0},"u6e80":{"subcategory":"alphanum","a":"Squared Cjk Unified Ideograph-6e80","b":"1F235","d":true,"e":true,"f":true,"h":true,"j":["japanese_no_vacancy_button","full","chinese","japanese","red-square","kanji"],"k":[4,52],"o":0},"red_circle":{"subcategory":"geometric","a":"Large Red Circle","b":"1F534","d":true,"e":true,"f":true,"h":true,"j":["red_circle","shape","error","danger"],"k":[30,17],"o":0},"large_orange_circle":{"subcategory":"geometric","a":"Large Orange Circle","b":"1F7E0","d":true,"e":true,"f":true,"h":true,"j":["orange_circle","round"],"k":[38,33],"o":12},"large_yellow_circle":{"subcategory":"geometric","a":"Large Yellow Circle","b":"1F7E1","d":true,"e":true,"f":true,"h":true,"j":["yellow_circle","round"],"k":[38,34],"o":12},"large_green_circle":{"subcategory":"geometric","a":"Large Green Circle","b":"1F7E2","d":true,"e":true,"f":true,"h":true,"j":["green_circle","round"],"k":[38,35],"o":12},"large_blue_circle":{"subcategory":"geometric","a":"Large Blue Circle","b":"1F535","d":true,"e":true,"f":true,"h":true,"j":["blue_circle","shape","icon","button"],"k":[30,18],"o":0},"large_purple_circle":{"subcategory":"geometric","a":"Large Purple Circle","b":"1F7E3","d":true,"e":true,"f":true,"h":true,"j":["purple_circle","round"],"k":[38,36],"o":12},"large_brown_circle":{"subcategory":"geometric","a":"Large Brown Circle","b":"1F7E4","d":true,"e":true,"f":true,"h":true,"j":["brown_circle","round"],"k":[38,37],"o":12},"black_circle":{"subcategory":"geometric","a":"Medium Black Circle","b":"26AB","d":true,"e":true,"f":true,"h":true,"j":["black_circle","shape","button","round"],"k":[58,11],"o":0},"white_circle":{"subcategory":"geometric","a":"Medium White Circle","b":"26AA","d":true,"e":true,"f":true,"h":true,"j":["white_circle","shape","round"],"k":[58,10],"o":0},"large_red_square":{"subcategory":"geometric","a":"Large Red Square","b":"1F7E5","d":true,"e":true,"f":true,"h":true,"j":["red_square"],"k":[38,38],"o":12},"large_orange_square":{"subcategory":"geometric","a":"Large Orange Square","b":"1F7E7","d":true,"e":true,"f":true,"h":true,"j":["orange_square"],"k":[38,40],"o":12},"large_yellow_square":{"subcategory":"geometric","a":"Large Yellow Square","b":"1F7E8","d":true,"e":true,"f":true,"h":true,"j":["yellow_square"],"k":[38,41],"o":12},"large_green_square":{"subcategory":"geometric","a":"Large Green Square","b":"1F7E9","d":true,"e":true,"f":true,"h":true,"j":["green_square"],"k":[38,42],"o":12},"large_blue_square":{"subcategory":"geometric","a":"Large Blue Square","b":"1F7E6","d":true,"e":true,"f":true,"h":true,"j":["blue_square"],"k":[38,39],"o":12},"large_purple_square":{"subcategory":"geometric","a":"Large Purple Square","b":"1F7EA","d":true,"e":true,"f":true,"h":true,"j":["purple_square"],"k":[38,43],"o":12},"large_brown_square":{"subcategory":"geometric","a":"Large Brown Square","b":"1F7EB","d":true,"e":true,"f":true,"h":true,"j":["brown_square"],"k":[38,44],"o":12},"black_large_square":{"subcategory":"geometric","a":"Black Large Square","b":"2B1B","d":true,"e":true,"f":true,"h":true,"j":["black_large_square","shape","icon","button"],"k":[59,53],"o":0},"white_large_square":{"subcategory":"geometric","a":"White Large Square","b":"2B1C","d":true,"e":true,"f":true,"h":true,"j":["white_large_square","shape","icon","stone","button"],"k":[59,54],"o":0},"black_medium_square":{"subcategory":"geometric","a":"Black Medium Square","b":"25FC-FE0F","c":"25FC","d":true,"e":true,"f":true,"h":true,"j":["black_medium_square","shape","button","icon"],"k":[57,7],"o":0},"white_medium_square":{"subcategory":"geometric","a":"White Medium Square","b":"25FB-FE0F","c":"25FB","d":true,"e":true,"f":true,"h":true,"j":["white_medium_square","shape","stone","icon"],"k":[57,6],"o":0},"black_medium_small_square":{"subcategory":"geometric","a":"Black Medium Small Square","b":"25FE","d":true,"e":true,"f":true,"h":true,"j":["black_medium_small_square","icon","shape","button"],"k":[57,9],"o":0},"white_medium_small_square":{"subcategory":"geometric","a":"White Medium Small Square","b":"25FD","d":true,"e":true,"f":true,"h":true,"j":["white_medium_small_square","shape","stone","icon","button"],"k":[57,8],"o":0},"black_small_square":{"subcategory":"geometric","a":"Black Small Square","b":"25AA-FE0F","c":"25AA","d":true,"e":true,"f":true,"h":true,"j":["black_small_square","shape","icon"],"k":[57,2],"o":0},"white_small_square":{"subcategory":"geometric","a":"White Small Square","b":"25AB-FE0F","c":"25AB","d":true,"e":true,"f":true,"h":true,"j":["white_small_square","shape","icon"],"k":[57,3],"o":0},"large_orange_diamond":{"subcategory":"geometric","a":"Large Orange Diamond","b":"1F536","d":true,"e":true,"f":true,"h":true,"j":["large_orange_diamond","shape","jewel","gem"],"k":[30,19],"o":0},"large_blue_diamond":{"subcategory":"geometric","a":"Large Blue Diamond","b":"1F537","d":true,"e":true,"f":true,"h":true,"j":["large_blue_diamond","shape","jewel","gem"],"k":[30,20],"o":0},"small_orange_diamond":{"subcategory":"geometric","a":"Small Orange Diamond","b":"1F538","d":true,"e":true,"f":true,"h":true,"j":["small_orange_diamond","shape","jewel","gem"],"k":[30,21],"o":0},"small_blue_diamond":{"subcategory":"geometric","a":"Small Blue Diamond","b":"1F539","d":true,"e":true,"f":true,"h":true,"j":["small_blue_diamond","shape","jewel","gem"],"k":[30,22],"o":0},"small_red_triangle":{"subcategory":"geometric","a":"Up-Pointing Red Triangle","b":"1F53A","d":true,"e":true,"f":true,"h":true,"j":["red_triangle_pointed_up","shape","direction","up","top"],"k":[30,23],"o":0},"small_red_triangle_down":{"subcategory":"geometric","a":"Down-Pointing Red Triangle","b":"1F53B","d":true,"e":true,"f":true,"h":true,"j":["red_triangle_pointed_down","shape","direction","bottom"],"k":[30,24],"o":0},"diamond_shape_with_a_dot_inside":{"subcategory":"geometric","a":"Diamond Shape with a Dot Inside","b":"1F4A0","d":true,"e":true,"f":true,"h":true,"j":["diamond_with_a_dot","jewel","blue","gem","crystal","fancy"],"k":[27,48],"o":0},"radio_button":{"subcategory":"geometric","a":"Radio Button","b":"1F518","d":true,"e":true,"f":true,"h":true,"j":["radio_button","input","old","music","circle"],"k":[29,50],"o":0},"white_square_button":{"subcategory":"geometric","a":"White Square Button","b":"1F533","d":true,"e":true,"f":true,"h":true,"j":["white_square_button","shape","input"],"k":[30,16],"o":0},"black_square_button":{"subcategory":"geometric","a":"Black Square Button","b":"1F532","d":true,"e":true,"f":true,"h":true,"j":["black_square_button","shape","input","frame"],"k":[30,15],"o":0},"checkered_flag":{"subcategory":"flag","a":"Chequered Flag","b":"1F3C1","d":true,"e":true,"f":true,"h":true,"j":["chequered_flag","contest","finishline","race","gokart"],"k":[8,7],"o":0},"triangular_flag_on_post":{"subcategory":"flag","a":"Triangular Flag on Post","b":"1F6A9","d":true,"e":true,"f":true,"h":true,"j":["triangular_flag","mark","milestone","place"],"k":[36,30],"o":0},"crossed_flags":{"subcategory":"flag","a":"Crossed Flags","b":"1F38C","d":true,"e":true,"f":true,"h":true,"j":["crossed_flags","japanese","nation","country","border"],"k":[7,20],"o":0},"waving_black_flag":{"subcategory":"flag","a":"Waving Black Flag","b":"1F3F4","d":true,"e":true,"f":true,"h":true,"j":["black_flag","pirate"],"k":[10,35],"o":1},"waving_white_flag":{"subcategory":"flag","a":"White Flag","b":"1F3F3-FE0F","c":"1F3F3","d":true,"e":true,"f":true,"h":true,"j":["white_flag","losing","loser","lost","surrender","give up","fail"],"k":[10,30],"o":0},"rainbow-flag":{"subcategory":"flag","a":"Rainbow Flag","b":"1F3F3-FE0F-200D-1F308","c":"1F3F3-200D-1F308","d":true,"e":true,"f":true,"h":true,"j":["rainbow_flag","flag","rainbow","pride","gay","lgbt","queer","homosexual","lesbian","bisexual"],"k":[10,28],"o":4},"transgender_flag":{"subcategory":"flag","a":"Transgender Flag","b":"1F3F3-FE0F-200D-26A7-FE0F","d":true,"e":true,"f":true,"h":false,"j":["transgender flag","transgender","flag","pride","lgbtq"],"k":[10,29],"o":13},"pirate_flag":{"subcategory":"flag","a":"Pirate Flag","b":"1F3F4-200D-2620-FE0F","c":"1F3F4-200D-2620","d":true,"e":true,"f":true,"h":true,"j":["pirate_flag","skull","crossbones","flag","banner"],"k":[10,31],"o":11},"flag-ac":{"subcategory":"country-flag","a":"Ascension Island Flag","b":"1F1E6-1F1E8","d":true,"e":true,"f":true,"h":true,"j":["flag_ascension_island"],"k":[0,31],"o":2},"flag-ad":{"subcategory":"country-flag","a":"Andorra Flag","b":"1F1E6-1F1E9","d":true,"e":true,"f":true,"h":true,"j":["flag_andorra","ad","flag","nation","country","banner","andorra"],"k":[0,32],"o":2},"flag-ae":{"subcategory":"country-flag","a":"United Arab Emirates Flag","b":"1F1E6-1F1EA","d":true,"e":true,"f":true,"h":true,"j":["flag_united_arab_emirates","united","arab","emirates","flag","nation","country","banner","united_arab_emirates"],"k":[0,33],"o":2},"flag-af":{"subcategory":"country-flag","a":"Afghanistan Flag","b":"1F1E6-1F1EB","d":true,"e":true,"f":true,"h":true,"j":["flag_afghanistan","af","flag","nation","country","banner","afghanistan"],"k":[0,34],"o":2},"flag-ag":{"subcategory":"country-flag","a":"Antigua & Barbuda Flag","b":"1F1E6-1F1EC","d":true,"e":true,"f":true,"h":true,"j":["flag_antigua_barbuda","antigua","barbuda","flag","nation","country","banner","antigua_barbuda"],"k":[0,35],"o":2},"flag-ai":{"subcategory":"country-flag","a":"Anguilla Flag","b":"1F1E6-1F1EE","d":true,"e":true,"f":true,"h":true,"j":["flag_anguilla","ai","flag","nation","country","banner","anguilla"],"k":[0,36],"o":2},"flag-al":{"subcategory":"country-flag","a":"Albania Flag","b":"1F1E6-1F1F1","d":true,"e":true,"f":true,"h":true,"j":["flag_albania","al","flag","nation","country","banner","albania"],"k":[0,37],"o":2},"flag-am":{"subcategory":"country-flag","a":"Armenia Flag","b":"1F1E6-1F1F2","d":true,"e":true,"f":true,"h":true,"j":["flag_armenia","am","flag","nation","country","banner","armenia"],"k":[0,38],"o":2},"flag-ao":{"subcategory":"country-flag","a":"Angola Flag","b":"1F1E6-1F1F4","d":true,"e":true,"f":true,"h":true,"j":["flag_angola","ao","flag","nation","country","banner","angola"],"k":[0,39],"o":2},"flag-aq":{"subcategory":"country-flag","a":"Antarctica Flag","b":"1F1E6-1F1F6","d":true,"e":true,"f":true,"h":true,"j":["flag_antarctica","aq","flag","nation","country","banner","antarctica"],"k":[0,40],"o":2},"flag-ar":{"subcategory":"country-flag","a":"Argentina Flag","b":"1F1E6-1F1F7","d":true,"e":true,"f":true,"h":true,"j":["flag_argentina","ar","flag","nation","country","banner","argentina"],"k":[0,41],"o":2},"flag-as":{"subcategory":"country-flag","a":"American Samoa Flag","b":"1F1E6-1F1F8","d":true,"e":true,"f":true,"h":true,"j":["flag_american_samoa","american","ws","flag","nation","country","banner","american_samoa"],"k":[0,42],"o":2},"flag-at":{"subcategory":"country-flag","a":"Austria Flag","b":"1F1E6-1F1F9","d":true,"e":true,"f":true,"h":true,"j":["flag_austria","at","flag","nation","country","banner","austria"],"k":[0,43],"o":2},"flag-au":{"subcategory":"country-flag","a":"Australia Flag","b":"1F1E6-1F1FA","d":true,"e":true,"f":true,"h":true,"j":["flag_australia","au","flag","nation","country","banner","australia"],"k":[0,44],"o":2},"flag-aw":{"subcategory":"country-flag","a":"Aruba Flag","b":"1F1E6-1F1FC","d":true,"e":true,"f":true,"h":true,"j":["flag_aruba","aw","flag","nation","country","banner","aruba"],"k":[0,45],"o":2},"flag-ax":{"subcategory":"country-flag","a":"Åland Islands Flag","b":"1F1E6-1F1FD","d":true,"e":true,"f":true,"h":true,"j":["flag_aland_islands","Åland","islands","flag","nation","country","banner","aland_islands"],"k":[0,46],"o":2},"flag-az":{"subcategory":"country-flag","a":"Azerbaijan Flag","b":"1F1E6-1F1FF","d":true,"e":true,"f":true,"h":true,"j":["flag_azerbaijan","az","flag","nation","country","banner","azerbaijan"],"k":[0,47],"o":2},"flag-ba":{"subcategory":"country-flag","a":"Bosnia & Herzegovina Flag","b":"1F1E7-1F1E6","d":true,"e":true,"f":true,"h":true,"j":["flag_bosnia_herzegovina","bosnia","herzegovina","flag","nation","country","banner","bosnia_herzegovina"],"k":[0,48],"o":2},"flag-bb":{"subcategory":"country-flag","a":"Barbados Flag","b":"1F1E7-1F1E7","d":true,"e":true,"f":true,"h":true,"j":["flag_barbados","bb","flag","nation","country","banner","barbados"],"k":[0,49],"o":2},"flag-bd":{"subcategory":"country-flag","a":"Bangladesh Flag","b":"1F1E7-1F1E9","d":true,"e":true,"f":true,"h":true,"j":["flag_bangladesh","bd","flag","nation","country","banner","bangladesh"],"k":[0,50],"o":2},"flag-be":{"subcategory":"country-flag","a":"Belgium Flag","b":"1F1E7-1F1EA","d":true,"e":true,"f":true,"h":true,"j":["flag_belgium","be","flag","nation","country","banner","belgium"],"k":[0,51],"o":2},"flag-bf":{"subcategory":"country-flag","a":"Burkina Faso Flag","b":"1F1E7-1F1EB","d":true,"e":true,"f":true,"h":true,"j":["flag_burkina_faso","burkina","faso","flag","nation","country","banner","burkina_faso"],"k":[0,52],"o":2},"flag-bg":{"subcategory":"country-flag","a":"Bulgaria Flag","b":"1F1E7-1F1EC","d":true,"e":true,"f":true,"h":true,"j":["flag_bulgaria","bg","flag","nation","country","banner","bulgaria"],"k":[0,53],"o":2},"flag-bh":{"subcategory":"country-flag","a":"Bahrain Flag","b":"1F1E7-1F1ED","d":true,"e":true,"f":true,"h":true,"j":["flag_bahrain","bh","flag","nation","country","banner","bahrain"],"k":[0,54],"o":2},"flag-bi":{"subcategory":"country-flag","a":"Burundi Flag","b":"1F1E7-1F1EE","d":true,"e":true,"f":true,"h":true,"j":["flag_burundi","bi","flag","nation","country","banner","burundi"],"k":[0,55],"o":2},"flag-bj":{"subcategory":"country-flag","a":"Benin Flag","b":"1F1E7-1F1EF","d":true,"e":true,"f":true,"h":true,"j":["flag_benin","bj","flag","nation","country","banner","benin"],"k":[0,56],"o":2},"flag-bl":{"subcategory":"country-flag","a":"St. Barthélemy Flag","b":"1F1E7-1F1F1","d":true,"e":true,"f":true,"h":true,"j":["flag_st_barthelemy","saint","barthélemy","flag","nation","country","banner","st_barthelemy"],"k":[0,57],"o":2},"flag-bm":{"subcategory":"country-flag","a":"Bermuda Flag","b":"1F1E7-1F1F2","d":true,"e":true,"f":true,"h":true,"j":["flag_bermuda","bm","flag","nation","country","banner","bermuda"],"k":[0,58],"o":2},"flag-bn":{"subcategory":"country-flag","a":"Brunei Flag","b":"1F1E7-1F1F3","d":true,"e":true,"f":true,"h":true,"j":["flag_brunei","bn","darussalam","flag","nation","country","banner","brunei"],"k":[0,59],"o":2},"flag-bo":{"subcategory":"country-flag","a":"Bolivia Flag","b":"1F1E7-1F1F4","d":true,"e":true,"f":true,"h":true,"j":["flag_bolivia","bo","flag","nation","country","banner","bolivia"],"k":[0,60],"o":2},"flag-bq":{"subcategory":"country-flag","a":"Caribbean Netherlands Flag","b":"1F1E7-1F1F6","d":true,"e":true,"f":true,"h":true,"j":["flag_caribbean_netherlands","bonaire","flag","nation","country","banner","caribbean_netherlands"],"k":[1,0],"o":2},"flag-br":{"subcategory":"country-flag","a":"Brazil Flag","b":"1F1E7-1F1F7","d":true,"e":true,"f":true,"h":true,"j":["flag_brazil","br","flag","nation","country","banner","brazil"],"k":[1,1],"o":2},"flag-bs":{"subcategory":"country-flag","a":"Bahamas Flag","b":"1F1E7-1F1F8","d":true,"e":true,"f":true,"h":true,"j":["flag_bahamas","bs","flag","nation","country","banner","bahamas"],"k":[1,2],"o":2},"flag-bt":{"subcategory":"country-flag","a":"Bhutan Flag","b":"1F1E7-1F1F9","d":true,"e":true,"f":true,"h":true,"j":["flag_bhutan","bt","flag","nation","country","banner","bhutan"],"k":[1,3],"o":2},"flag-bv":{"subcategory":"country-flag","a":"Bouvet Island Flag","b":"1F1E7-1F1FB","d":true,"e":true,"f":true,"h":true,"j":["flag_bouvet_island","norway"],"k":[1,4],"o":2},"flag-bw":{"subcategory":"country-flag","a":"Botswana Flag","b":"1F1E7-1F1FC","d":true,"e":true,"f":true,"h":true,"j":["flag_botswana","bw","flag","nation","country","banner","botswana"],"k":[1,5],"o":2},"flag-by":{"subcategory":"country-flag","a":"Belarus Flag","b":"1F1E7-1F1FE","d":true,"e":true,"f":true,"h":true,"j":["flag_belarus","by","flag","nation","country","banner","belarus"],"k":[1,6],"o":2},"flag-bz":{"subcategory":"country-flag","a":"Belize Flag","b":"1F1E7-1F1FF","d":true,"e":true,"f":true,"h":true,"j":["flag_belize","bz","flag","nation","country","banner","belize"],"k":[1,7],"o":2},"flag-ca":{"subcategory":"country-flag","a":"Canada Flag","b":"1F1E8-1F1E6","d":true,"e":true,"f":true,"h":true,"j":["flag_canada","ca","flag","nation","country","banner","canada"],"k":[1,8],"o":2},"flag-cc":{"subcategory":"country-flag","a":"Cocos (keeling) Islands Flag","b":"1F1E8-1F1E8","d":true,"e":true,"f":true,"h":true,"j":["flag_cocos_islands","cocos","keeling","islands","flag","nation","country","banner","cocos_islands"],"k":[1,9],"o":2},"flag-cd":{"subcategory":"country-flag","a":"Congo - Kinshasa Flag","b":"1F1E8-1F1E9","d":true,"e":true,"f":true,"h":true,"j":["flag_congo_kinshasa","congo","democratic","republic","flag","nation","country","banner","congo_kinshasa"],"k":[1,10],"o":2},"flag-cf":{"subcategory":"country-flag","a":"Central African Republic Flag","b":"1F1E8-1F1EB","d":true,"e":true,"f":true,"h":true,"j":["flag_central_african_republic","central","african","republic","flag","nation","country","banner","central_african_republic"],"k":[1,11],"o":2},"flag-cg":{"subcategory":"country-flag","a":"Congo - Brazzaville Flag","b":"1F1E8-1F1EC","d":true,"e":true,"f":true,"h":true,"j":["flag_congo_brazzaville","congo","flag","nation","country","banner","congo_brazzaville"],"k":[1,12],"o":2},"flag-ch":{"subcategory":"country-flag","a":"Switzerland Flag","b":"1F1E8-1F1ED","d":true,"e":true,"f":true,"h":true,"j":["flag_switzerland","ch","flag","nation","country","banner","switzerland"],"k":[1,13],"o":2},"flag-ci":{"subcategory":"country-flag","a":"Côte D’ivoire Flag","b":"1F1E8-1F1EE","d":true,"e":true,"f":true,"h":true,"j":["flag_cote_d_ivoire","ivory","coast","flag","nation","country","banner","cote_d_ivoire"],"k":[1,14],"o":2},"flag-ck":{"subcategory":"country-flag","a":"Cook Islands Flag","b":"1F1E8-1F1F0","d":true,"e":true,"f":true,"h":true,"j":["flag_cook_islands","cook","islands","flag","nation","country","banner","cook_islands"],"k":[1,15],"o":2},"flag-cl":{"subcategory":"country-flag","a":"Chile Flag","b":"1F1E8-1F1F1","d":true,"e":true,"f":true,"h":true,"j":["flag_chile","flag","nation","country","banner","chile"],"k":[1,16],"o":2},"flag-cm":{"subcategory":"country-flag","a":"Cameroon Flag","b":"1F1E8-1F1F2","d":true,"e":true,"f":true,"h":true,"j":["flag_cameroon","cm","flag","nation","country","banner","cameroon"],"k":[1,17],"o":2},"cn":{"subcategory":"country-flag","a":"China Flag","b":"1F1E8-1F1F3","d":true,"e":true,"f":true,"h":true,"j":["flag_china","china","chinese","prc","flag","country","nation","banner"],"k":[1,18],"n":["flag-cn"],"o":0},"flag-co":{"subcategory":"country-flag","a":"Colombia Flag","b":"1F1E8-1F1F4","d":true,"e":true,"f":true,"h":true,"j":["flag_colombia","co","flag","nation","country","banner","colombia"],"k":[1,19],"o":2},"flag-cp":{"subcategory":"country-flag","a":"Clipperton Island Flag","b":"1F1E8-1F1F5","d":true,"e":true,"f":true,"h":true,"j":["flag_clipperton_island"],"k":[1,20],"o":2},"flag-cr":{"subcategory":"country-flag","a":"Costa Rica Flag","b":"1F1E8-1F1F7","d":true,"e":true,"f":true,"h":true,"j":["flag_costa_rica","costa","rica","flag","nation","country","banner","costa_rica"],"k":[1,21],"o":2},"flag-cu":{"subcategory":"country-flag","a":"Cuba Flag","b":"1F1E8-1F1FA","d":true,"e":true,"f":true,"h":true,"j":["flag_cuba","cu","flag","nation","country","banner","cuba"],"k":[1,22],"o":2},"flag-cv":{"subcategory":"country-flag","a":"Cape Verde Flag","b":"1F1E8-1F1FB","d":true,"e":true,"f":true,"h":true,"j":["flag_cape_verde","cabo","verde","flag","nation","country","banner","cape_verde"],"k":[1,23],"o":2},"flag-cw":{"subcategory":"country-flag","a":"Curaçao Flag","b":"1F1E8-1F1FC","d":true,"e":true,"f":true,"h":true,"j":["flag_curacao","curaçao","flag","nation","country","banner","curacao"],"k":[1,24],"o":2},"flag-cx":{"subcategory":"country-flag","a":"Christmas Island Flag","b":"1F1E8-1F1FD","d":true,"e":true,"f":true,"h":true,"j":["flag_christmas_island","christmas","island","flag","nation","country","banner","christmas_island"],"k":[1,25],"o":2},"flag-cy":{"subcategory":"country-flag","a":"Cyprus Flag","b":"1F1E8-1F1FE","d":true,"e":true,"f":true,"h":true,"j":["flag_cyprus","cy","flag","nation","country","banner","cyprus"],"k":[1,26],"o":2},"flag-cz":{"subcategory":"country-flag","a":"Czechia Flag","b":"1F1E8-1F1FF","d":true,"e":true,"f":true,"h":true,"j":["flag_czechia","cz","flag","nation","country","banner","czechia"],"k":[1,27],"o":2},"de":{"subcategory":"country-flag","a":"Germany Flag","b":"1F1E9-1F1EA","d":true,"e":true,"f":true,"h":true,"j":["flag_germany","german","nation","flag","country","banner","germany"],"k":[1,28],"n":["flag-de"],"o":0},"flag-dg":{"subcategory":"country-flag","a":"Diego Garcia Flag","b":"1F1E9-1F1EC","d":true,"e":true,"f":true,"h":true,"j":["flag_diego_garcia"],"k":[1,29],"o":2},"flag-dj":{"subcategory":"country-flag","a":"Djibouti Flag","b":"1F1E9-1F1EF","d":true,"e":true,"f":true,"h":true,"j":["flag_djibouti","dj","flag","nation","country","banner","djibouti"],"k":[1,30],"o":2},"flag-dk":{"subcategory":"country-flag","a":"Denmark Flag","b":"1F1E9-1F1F0","d":true,"e":true,"f":true,"h":true,"j":["flag_denmark","dk","flag","nation","country","banner","denmark"],"k":[1,31],"o":2},"flag-dm":{"subcategory":"country-flag","a":"Dominica Flag","b":"1F1E9-1F1F2","d":true,"e":true,"f":true,"h":true,"j":["flag_dominica","dm","flag","nation","country","banner","dominica"],"k":[1,32],"o":2},"flag-do":{"subcategory":"country-flag","a":"Dominican Republic Flag","b":"1F1E9-1F1F4","d":true,"e":true,"f":true,"h":true,"j":["flag_dominican_republic","dominican","republic","flag","nation","country","banner","dominican_republic"],"k":[1,33],"o":2},"flag-dz":{"subcategory":"country-flag","a":"Algeria Flag","b":"1F1E9-1F1FF","d":true,"e":true,"f":true,"h":true,"j":["flag_algeria","dz","flag","nation","country","banner","algeria"],"k":[1,34],"o":2},"flag-ea":{"subcategory":"country-flag","a":"Ceuta & Melilla Flag","b":"1F1EA-1F1E6","d":true,"e":true,"f":true,"h":true,"j":["flag_ceuta_melilla"],"k":[1,35],"o":2},"flag-ec":{"subcategory":"country-flag","a":"Ecuador Flag","b":"1F1EA-1F1E8","d":true,"e":true,"f":true,"h":true,"j":["flag_ecuador","ec","flag","nation","country","banner","ecuador"],"k":[1,36],"o":2},"flag-ee":{"subcategory":"country-flag","a":"Estonia Flag","b":"1F1EA-1F1EA","d":true,"e":true,"f":true,"h":true,"j":["flag_estonia","ee","flag","nation","country","banner","estonia"],"k":[1,37],"o":2},"flag-eg":{"subcategory":"country-flag","a":"Egypt Flag","b":"1F1EA-1F1EC","d":true,"e":true,"f":true,"h":true,"j":["flag_egypt","eg","flag","nation","country","banner","egypt"],"k":[1,38],"o":2},"flag-eh":{"subcategory":"country-flag","a":"Western Sahara Flag","b":"1F1EA-1F1ED","d":true,"e":true,"f":true,"h":true,"j":["flag_western_sahara","western","sahara","flag","nation","country","banner","western_sahara"],"k":[1,39],"o":2},"flag-er":{"subcategory":"country-flag","a":"Eritrea Flag","b":"1F1EA-1F1F7","d":true,"e":true,"f":true,"h":true,"j":["flag_eritrea","er","flag","nation","country","banner","eritrea"],"k":[1,40],"o":2},"es":{"subcategory":"country-flag","a":"Spain Flag","b":"1F1EA-1F1F8","d":true,"e":true,"f":true,"h":true,"j":["flag_spain","spain","flag","nation","country","banner"],"k":[1,41],"n":["flag-es"],"o":0},"flag-et":{"subcategory":"country-flag","a":"Ethiopia Flag","b":"1F1EA-1F1F9","d":true,"e":true,"f":true,"h":true,"j":["flag_ethiopia","et","flag","nation","country","banner","ethiopia"],"k":[1,42],"o":2},"flag-eu":{"subcategory":"country-flag","a":"European Union Flag","b":"1F1EA-1F1FA","d":true,"e":true,"f":true,"h":true,"j":["flag_european_union","european","union","flag","banner"],"k":[1,43],"o":2},"flag-fi":{"subcategory":"country-flag","a":"Finland Flag","b":"1F1EB-1F1EE","d":true,"e":true,"f":true,"h":true,"j":["flag_finland","fi","flag","nation","country","banner","finland"],"k":[1,44],"o":2},"flag-fj":{"subcategory":"country-flag","a":"Fiji Flag","b":"1F1EB-1F1EF","d":true,"e":true,"f":true,"h":true,"j":["flag_fiji","fj","flag","nation","country","banner","fiji"],"k":[1,45],"o":2},"flag-fk":{"subcategory":"country-flag","a":"Falkland Islands Flag","b":"1F1EB-1F1F0","d":true,"e":true,"f":true,"h":true,"j":["flag_falkland_islands","falkland","islands","malvinas","flag","nation","country","banner","falkland_islands"],"k":[1,46],"o":2},"flag-fm":{"subcategory":"country-flag","a":"Micronesia Flag","b":"1F1EB-1F1F2","d":true,"e":true,"f":true,"h":true,"j":["flag_micronesia","micronesia","federated","states","flag","nation","country","banner"],"k":[1,47],"o":2},"flag-fo":{"subcategory":"country-flag","a":"Faroe Islands Flag","b":"1F1EB-1F1F4","d":true,"e":true,"f":true,"h":true,"j":["flag_faroe_islands","faroe","islands","flag","nation","country","banner","faroe_islands"],"k":[1,48],"o":2},"fr":{"subcategory":"country-flag","a":"France Flag","b":"1F1EB-1F1F7","d":true,"e":true,"f":true,"h":true,"j":["flag_france","banner","flag","nation","france","french","country"],"k":[1,49],"n":["flag-fr"],"o":0},"flag-ga":{"subcategory":"country-flag","a":"Gabon Flag","b":"1F1EC-1F1E6","d":true,"e":true,"f":true,"h":true,"j":["flag_gabon","ga","flag","nation","country","banner","gabon"],"k":[1,50],"o":2},"gb":{"subcategory":"country-flag","a":"United Kingdom Flag","b":"1F1EC-1F1E7","d":true,"e":true,"f":true,"h":true,"j":["flag_united_kingdom","united","kingdom","great","britain","northern","ireland","flag","nation","country","banner","british","UK","english","england","union jack","united_kingdom"],"k":[1,51],"n":["uk","flag-gb"],"o":0},"flag-gd":{"subcategory":"country-flag","a":"Grenada Flag","b":"1F1EC-1F1E9","d":true,"e":true,"f":true,"h":true,"j":["flag_grenada","gd","flag","nation","country","banner","grenada"],"k":[1,52],"o":2},"flag-ge":{"subcategory":"country-flag","a":"Georgia Flag","b":"1F1EC-1F1EA","d":true,"e":true,"f":true,"h":true,"j":["flag_georgia","ge","flag","nation","country","banner","georgia"],"k":[1,53],"o":2},"flag-gf":{"subcategory":"country-flag","a":"French Guiana Flag","b":"1F1EC-1F1EB","d":true,"e":true,"f":true,"h":true,"j":["flag_french_guiana","french","guiana","flag","nation","country","banner","french_guiana"],"k":[1,54],"o":2},"flag-gg":{"subcategory":"country-flag","a":"Guernsey Flag","b":"1F1EC-1F1EC","d":true,"e":true,"f":true,"h":true,"j":["flag_guernsey","gg","flag","nation","country","banner","guernsey"],"k":[1,55],"o":2},"flag-gh":{"subcategory":"country-flag","a":"Ghana Flag","b":"1F1EC-1F1ED","d":true,"e":true,"f":true,"h":true,"j":["flag_ghana","gh","flag","nation","country","banner","ghana"],"k":[1,56],"o":2},"flag-gi":{"subcategory":"country-flag","a":"Gibraltar Flag","b":"1F1EC-1F1EE","d":true,"e":true,"f":true,"h":true,"j":["flag_gibraltar","gi","flag","nation","country","banner","gibraltar"],"k":[1,57],"o":2},"flag-gl":{"subcategory":"country-flag","a":"Greenland Flag","b":"1F1EC-1F1F1","d":true,"e":true,"f":true,"h":true,"j":["flag_greenland","gl","flag","nation","country","banner","greenland"],"k":[1,58],"o":2},"flag-gm":{"subcategory":"country-flag","a":"Gambia Flag","b":"1F1EC-1F1F2","d":true,"e":true,"f":true,"h":true,"j":["flag_gambia","gm","flag","nation","country","banner","gambia"],"k":[1,59],"o":2},"flag-gn":{"subcategory":"country-flag","a":"Guinea Flag","b":"1F1EC-1F1F3","d":true,"e":true,"f":true,"h":true,"j":["flag_guinea","gn","flag","nation","country","banner","guinea"],"k":[1,60],"o":2},"flag-gp":{"subcategory":"country-flag","a":"Guadeloupe Flag","b":"1F1EC-1F1F5","d":true,"e":true,"f":true,"h":true,"j":["flag_guadeloupe","gp","flag","nation","country","banner","guadeloupe"],"k":[2,0],"o":2},"flag-gq":{"subcategory":"country-flag","a":"Equatorial Guinea Flag","b":"1F1EC-1F1F6","d":true,"e":true,"f":true,"h":true,"j":["flag_equatorial_guinea","equatorial","gn","flag","nation","country","banner","equatorial_guinea"],"k":[2,1],"o":2},"flag-gr":{"subcategory":"country-flag","a":"Greece Flag","b":"1F1EC-1F1F7","d":true,"e":true,"f":true,"h":true,"j":["flag_greece","gr","flag","nation","country","banner","greece"],"k":[2,2],"o":2},"flag-gs":{"subcategory":"country-flag","a":"South Georgia & South Sandwich Islands Flag","b":"1F1EC-1F1F8","d":true,"e":true,"f":true,"h":true,"j":["flag_south_georgia_south_sandwich_islands","south","georgia","sandwich","islands","flag","nation","country","banner","south_georgia_south_sandwich_islands"],"k":[2,3],"o":2},"flag-gt":{"subcategory":"country-flag","a":"Guatemala Flag","b":"1F1EC-1F1F9","d":true,"e":true,"f":true,"h":true,"j":["flag_guatemala","gt","flag","nation","country","banner","guatemala"],"k":[2,4],"o":2},"flag-gu":{"subcategory":"country-flag","a":"Guam Flag","b":"1F1EC-1F1FA","d":true,"e":true,"f":true,"h":true,"j":["flag_guam","gu","flag","nation","country","banner","guam"],"k":[2,5],"o":2},"flag-gw":{"subcategory":"country-flag","a":"Guinea-Bissau Flag","b":"1F1EC-1F1FC","d":true,"e":true,"f":true,"h":true,"j":["flag_guinea_bissau","gw","bissau","flag","nation","country","banner","guinea_bissau"],"k":[2,6],"o":2},"flag-gy":{"subcategory":"country-flag","a":"Guyana Flag","b":"1F1EC-1F1FE","d":true,"e":true,"f":true,"h":true,"j":["flag_guyana","gy","flag","nation","country","banner","guyana"],"k":[2,7],"o":2},"flag-hk":{"subcategory":"country-flag","a":"Hong Kong Sar China Flag","b":"1F1ED-1F1F0","d":true,"e":true,"f":true,"h":true,"j":["flag_hong_kong_sar_china","hong","kong","flag","nation","country","banner","hong_kong_sar_china"],"k":[2,8],"o":2},"flag-hm":{"subcategory":"country-flag","a":"Heard & Mcdonald Islands Flag","b":"1F1ED-1F1F2","d":true,"e":true,"f":true,"h":true,"j":["flag_heard_mcdonald_islands"],"k":[2,9],"o":2},"flag-hn":{"subcategory":"country-flag","a":"Honduras Flag","b":"1F1ED-1F1F3","d":true,"e":true,"f":true,"h":true,"j":["flag_honduras","hn","flag","nation","country","banner","honduras"],"k":[2,10],"o":2},"flag-hr":{"subcategory":"country-flag","a":"Croatia Flag","b":"1F1ED-1F1F7","d":true,"e":true,"f":true,"h":true,"j":["flag_croatia","hr","flag","nation","country","banner","croatia"],"k":[2,11],"o":2},"flag-ht":{"subcategory":"country-flag","a":"Haiti Flag","b":"1F1ED-1F1F9","d":true,"e":true,"f":true,"h":true,"j":["flag_haiti","ht","flag","nation","country","banner","haiti"],"k":[2,12],"o":2},"flag-hu":{"subcategory":"country-flag","a":"Hungary Flag","b":"1F1ED-1F1FA","d":true,"e":true,"f":true,"h":true,"j":["flag_hungary","hu","flag","nation","country","banner","hungary"],"k":[2,13],"o":2},"flag-ic":{"subcategory":"country-flag","a":"Canary Islands Flag","b":"1F1EE-1F1E8","d":true,"e":true,"f":true,"h":true,"j":["flag_canary_islands","canary","islands","flag","nation","country","banner","canary_islands"],"k":[2,14],"o":2},"flag-id":{"subcategory":"country-flag","a":"Indonesia Flag","b":"1F1EE-1F1E9","d":true,"e":true,"f":true,"h":true,"j":["flag_indonesia","flag","nation","country","banner","indonesia"],"k":[2,15],"o":2},"flag-ie":{"subcategory":"country-flag","a":"Ireland Flag","b":"1F1EE-1F1EA","d":true,"e":true,"f":true,"h":true,"j":["flag_ireland","ie","flag","nation","country","banner","ireland"],"k":[2,16],"o":2},"flag-il":{"subcategory":"country-flag","a":"Israel Flag","b":"1F1EE-1F1F1","d":true,"e":true,"f":true,"h":true,"j":["flag_israel","il","flag","nation","country","banner","israel"],"k":[2,17],"o":2},"flag-im":{"subcategory":"country-flag","a":"Isle of Man Flag","b":"1F1EE-1F1F2","d":true,"e":true,"f":true,"h":true,"j":["flag_isle_of_man","isle","man","flag","nation","country","banner","isle_of_man"],"k":[2,18],"o":2},"flag-in":{"subcategory":"country-flag","a":"India Flag","b":"1F1EE-1F1F3","d":true,"e":true,"f":true,"h":true,"j":["flag_india","in","flag","nation","country","banner","india"],"k":[2,19],"o":2},"flag-io":{"subcategory":"country-flag","a":"British Indian Ocean Territory Flag","b":"1F1EE-1F1F4","d":true,"e":true,"f":true,"h":true,"j":["flag_british_indian_ocean_territory","british","indian","ocean","territory","flag","nation","country","banner","british_indian_ocean_territory"],"k":[2,20],"o":2},"flag-iq":{"subcategory":"country-flag","a":"Iraq Flag","b":"1F1EE-1F1F6","d":true,"e":true,"f":true,"h":true,"j":["flag_iraq","iq","flag","nation","country","banner","iraq"],"k":[2,21],"o":2},"flag-ir":{"subcategory":"country-flag","a":"Iran Flag","b":"1F1EE-1F1F7","d":true,"e":true,"f":true,"h":true,"j":["flag_iran","iran","islamic","republic","flag","nation","country","banner"],"k":[2,22],"o":2},"flag-is":{"subcategory":"country-flag","a":"Iceland Flag","b":"1F1EE-1F1F8","d":true,"e":true,"f":true,"h":true,"j":["flag_iceland","is","flag","nation","country","banner","iceland"],"k":[2,23],"o":2},"it":{"subcategory":"country-flag","a":"Italy Flag","b":"1F1EE-1F1F9","d":true,"e":true,"f":true,"h":true,"j":["flag_italy","italy","flag","nation","country","banner"],"k":[2,24],"n":["flag-it"],"o":0},"flag-je":{"subcategory":"country-flag","a":"Jersey Flag","b":"1F1EF-1F1EA","d":true,"e":true,"f":true,"h":true,"j":["flag_jersey","je","flag","nation","country","banner","jersey"],"k":[2,25],"o":2},"flag-jm":{"subcategory":"country-flag","a":"Jamaica Flag","b":"1F1EF-1F1F2","d":true,"e":true,"f":true,"h":true,"j":["flag_jamaica","jm","flag","nation","country","banner","jamaica"],"k":[2,26],"o":2},"flag-jo":{"subcategory":"country-flag","a":"Jordan Flag","b":"1F1EF-1F1F4","d":true,"e":true,"f":true,"h":true,"j":["flag_jordan","jo","flag","nation","country","banner","jordan"],"k":[2,27],"o":2},"jp":{"subcategory":"country-flag","a":"Japan Flag","b":"1F1EF-1F1F5","d":true,"e":true,"f":true,"h":true,"j":["flag_japan","japanese","nation","flag","country","banner","japan","jp","ja"],"k":[2,28],"n":["flag-jp"],"o":0},"flag-ke":{"subcategory":"country-flag","a":"Kenya Flag","b":"1F1F0-1F1EA","d":true,"e":true,"f":true,"h":true,"j":["flag_kenya","ke","flag","nation","country","banner","kenya"],"k":[2,29],"o":2},"flag-kg":{"subcategory":"country-flag","a":"Kyrgyzstan Flag","b":"1F1F0-1F1EC","d":true,"e":true,"f":true,"h":true,"j":["flag_kyrgyzstan","kg","flag","nation","country","banner","kyrgyzstan"],"k":[2,30],"o":2},"flag-kh":{"subcategory":"country-flag","a":"Cambodia Flag","b":"1F1F0-1F1ED","d":true,"e":true,"f":true,"h":true,"j":["flag_cambodia","kh","flag","nation","country","banner","cambodia"],"k":[2,31],"o":2},"flag-ki":{"subcategory":"country-flag","a":"Kiribati Flag","b":"1F1F0-1F1EE","d":true,"e":true,"f":true,"h":true,"j":["flag_kiribati","ki","flag","nation","country","banner","kiribati"],"k":[2,32],"o":2},"flag-km":{"subcategory":"country-flag","a":"Comoros Flag","b":"1F1F0-1F1F2","d":true,"e":true,"f":true,"h":true,"j":["flag_comoros","km","flag","nation","country","banner","comoros"],"k":[2,33],"o":2},"flag-kn":{"subcategory":"country-flag","a":"St. Kitts & Nevis Flag","b":"1F1F0-1F1F3","d":true,"e":true,"f":true,"h":true,"j":["flag_st_kitts_nevis","saint","kitts","nevis","flag","nation","country","banner","st_kitts_nevis"],"k":[2,34],"o":2},"flag-kp":{"subcategory":"country-flag","a":"North Korea Flag","b":"1F1F0-1F1F5","d":true,"e":true,"f":true,"h":true,"j":["flag_north_korea","north","korea","nation","flag","country","banner","north_korea"],"k":[2,35],"o":2},"kr":{"subcategory":"country-flag","a":"South Korea Flag","b":"1F1F0-1F1F7","d":true,"e":true,"f":true,"h":true,"j":["flag_south_korea","south","korea","nation","flag","country","banner","south_korea"],"k":[2,36],"n":["flag-kr"],"o":0},"flag-kw":{"subcategory":"country-flag","a":"Kuwait Flag","b":"1F1F0-1F1FC","d":true,"e":true,"f":true,"h":true,"j":["flag_kuwait","kw","flag","nation","country","banner","kuwait"],"k":[2,37],"o":2},"flag-ky":{"subcategory":"country-flag","a":"Cayman Islands Flag","b":"1F1F0-1F1FE","d":true,"e":true,"f":true,"h":true,"j":["flag_cayman_islands","cayman","islands","flag","nation","country","banner","cayman_islands"],"k":[2,38],"o":2},"flag-kz":{"subcategory":"country-flag","a":"Kazakhstan Flag","b":"1F1F0-1F1FF","d":true,"e":true,"f":true,"h":true,"j":["flag_kazakhstan","kz","flag","nation","country","banner","kazakhstan"],"k":[2,39],"o":2},"flag-la":{"subcategory":"country-flag","a":"Laos Flag","b":"1F1F1-1F1E6","d":true,"e":true,"f":true,"h":true,"j":["flag_laos","lao","democratic","republic","flag","nation","country","banner","laos"],"k":[2,40],"o":2},"flag-lb":{"subcategory":"country-flag","a":"Lebanon Flag","b":"1F1F1-1F1E7","d":true,"e":true,"f":true,"h":true,"j":["flag_lebanon","lb","flag","nation","country","banner","lebanon"],"k":[2,41],"o":2},"flag-lc":{"subcategory":"country-flag","a":"St. Lucia Flag","b":"1F1F1-1F1E8","d":true,"e":true,"f":true,"h":true,"j":["flag_st_lucia","saint","lucia","flag","nation","country","banner","st_lucia"],"k":[2,42],"o":2},"flag-li":{"subcategory":"country-flag","a":"Liechtenstein Flag","b":"1F1F1-1F1EE","d":true,"e":true,"f":true,"h":true,"j":["flag_liechtenstein","li","flag","nation","country","banner","liechtenstein"],"k":[2,43],"o":2},"flag-lk":{"subcategory":"country-flag","a":"Sri Lanka Flag","b":"1F1F1-1F1F0","d":true,"e":true,"f":true,"h":true,"j":["flag_sri_lanka","sri","lanka","flag","nation","country","banner","sri_lanka"],"k":[2,44],"o":2},"flag-lr":{"subcategory":"country-flag","a":"Liberia Flag","b":"1F1F1-1F1F7","d":true,"e":true,"f":true,"h":true,"j":["flag_liberia","lr","flag","nation","country","banner","liberia"],"k":[2,45],"o":2},"flag-ls":{"subcategory":"country-flag","a":"Lesotho Flag","b":"1F1F1-1F1F8","d":true,"e":true,"f":true,"h":true,"j":["flag_lesotho","ls","flag","nation","country","banner","lesotho"],"k":[2,46],"o":2},"flag-lt":{"subcategory":"country-flag","a":"Lithuania Flag","b":"1F1F1-1F1F9","d":true,"e":true,"f":true,"h":true,"j":["flag_lithuania","lt","flag","nation","country","banner","lithuania"],"k":[2,47],"o":2},"flag-lu":{"subcategory":"country-flag","a":"Luxembourg Flag","b":"1F1F1-1F1FA","d":true,"e":true,"f":true,"h":true,"j":["flag_luxembourg","lu","flag","nation","country","banner","luxembourg"],"k":[2,48],"o":2},"flag-lv":{"subcategory":"country-flag","a":"Latvia Flag","b":"1F1F1-1F1FB","d":true,"e":true,"f":true,"h":true,"j":["flag_latvia","lv","flag","nation","country","banner","latvia"],"k":[2,49],"o":2},"flag-ly":{"subcategory":"country-flag","a":"Libya Flag","b":"1F1F1-1F1FE","d":true,"e":true,"f":true,"h":true,"j":["flag_libya","ly","flag","nation","country","banner","libya"],"k":[2,50],"o":2},"flag-ma":{"subcategory":"country-flag","a":"Morocco Flag","b":"1F1F2-1F1E6","d":true,"e":true,"f":true,"h":true,"j":["flag_morocco","ma","flag","nation","country","banner","morocco"],"k":[2,51],"o":2},"flag-mc":{"subcategory":"country-flag","a":"Monaco Flag","b":"1F1F2-1F1E8","d":true,"e":true,"f":true,"h":true,"j":["flag_monaco","mc","flag","nation","country","banner","monaco"],"k":[2,52],"o":2},"flag-md":{"subcategory":"country-flag","a":"Moldova Flag","b":"1F1F2-1F1E9","d":true,"e":true,"f":true,"h":true,"j":["flag_moldova","moldova","republic","flag","nation","country","banner"],"k":[2,53],"o":2},"flag-me":{"subcategory":"country-flag","a":"Montenegro Flag","b":"1F1F2-1F1EA","d":true,"e":true,"f":true,"h":true,"j":["flag_montenegro","me","flag","nation","country","banner","montenegro"],"k":[2,54],"o":2},"flag-mf":{"subcategory":"country-flag","a":"St. Martin Flag","b":"1F1F2-1F1EB","d":true,"e":true,"f":true,"h":true,"j":["flag_st_martin"],"k":[2,55],"o":2},"flag-mg":{"subcategory":"country-flag","a":"Madagascar Flag","b":"1F1F2-1F1EC","d":true,"e":true,"f":true,"h":true,"j":["flag_madagascar","mg","flag","nation","country","banner","madagascar"],"k":[2,56],"o":2},"flag-mh":{"subcategory":"country-flag","a":"Marshall Islands Flag","b":"1F1F2-1F1ED","d":true,"e":true,"f":true,"h":true,"j":["flag_marshall_islands","marshall","islands","flag","nation","country","banner","marshall_islands"],"k":[2,57],"o":2},"flag-mk":{"subcategory":"country-flag","a":"North Macedonia Flag","b":"1F1F2-1F1F0","d":true,"e":true,"f":true,"h":true,"j":["flag_north_macedonia","macedonia","flag","nation","country","banner","north_macedonia"],"k":[2,58],"o":2},"flag-ml":{"subcategory":"country-flag","a":"Mali Flag","b":"1F1F2-1F1F1","d":true,"e":true,"f":true,"h":true,"j":["flag_mali","ml","flag","nation","country","banner","mali"],"k":[2,59],"o":2},"flag-mm":{"subcategory":"country-flag","a":"Myanmar (burma) Flag","b":"1F1F2-1F1F2","d":true,"e":true,"f":true,"h":true,"j":["flag_myanmar","mm","flag","nation","country","banner","myanmar"],"k":[2,60],"o":2},"flag-mn":{"subcategory":"country-flag","a":"Mongolia Flag","b":"1F1F2-1F1F3","d":true,"e":true,"f":true,"h":true,"j":["flag_mongolia","mn","flag","nation","country","banner","mongolia"],"k":[3,0],"o":2},"flag-mo":{"subcategory":"country-flag","a":"Macao Sar China Flag","b":"1F1F2-1F1F4","d":true,"e":true,"f":true,"h":true,"j":["flag_macao_sar_china","macao","flag","nation","country","banner","macao_sar_china"],"k":[3,1],"o":2},"flag-mp":{"subcategory":"country-flag","a":"Northern Mariana Islands Flag","b":"1F1F2-1F1F5","d":true,"e":true,"f":true,"h":true,"j":["flag_northern_mariana_islands","northern","mariana","islands","flag","nation","country","banner","northern_mariana_islands"],"k":[3,2],"o":2},"flag-mq":{"subcategory":"country-flag","a":"Martinique Flag","b":"1F1F2-1F1F6","d":true,"e":true,"f":true,"h":true,"j":["flag_martinique","mq","flag","nation","country","banner","martinique"],"k":[3,3],"o":2},"flag-mr":{"subcategory":"country-flag","a":"Mauritania Flag","b":"1F1F2-1F1F7","d":true,"e":true,"f":true,"h":true,"j":["flag_mauritania","mr","flag","nation","country","banner","mauritania"],"k":[3,4],"o":2},"flag-ms":{"subcategory":"country-flag","a":"Montserrat Flag","b":"1F1F2-1F1F8","d":true,"e":true,"f":true,"h":true,"j":["flag_montserrat","ms","flag","nation","country","banner","montserrat"],"k":[3,5],"o":2},"flag-mt":{"subcategory":"country-flag","a":"Malta Flag","b":"1F1F2-1F1F9","d":true,"e":true,"f":true,"h":true,"j":["flag_malta","mt","flag","nation","country","banner","malta"],"k":[3,6],"o":2},"flag-mu":{"subcategory":"country-flag","a":"Mauritius Flag","b":"1F1F2-1F1FA","d":true,"e":true,"f":true,"h":true,"j":["flag_mauritius","mu","flag","nation","country","banner","mauritius"],"k":[3,7],"o":2},"flag-mv":{"subcategory":"country-flag","a":"Maldives Flag","b":"1F1F2-1F1FB","d":true,"e":true,"f":true,"h":true,"j":["flag_maldives","mv","flag","nation","country","banner","maldives"],"k":[3,8],"o":2},"flag-mw":{"subcategory":"country-flag","a":"Malawi Flag","b":"1F1F2-1F1FC","d":true,"e":true,"f":true,"h":true,"j":["flag_malawi","mw","flag","nation","country","banner","malawi"],"k":[3,9],"o":2},"flag-mx":{"subcategory":"country-flag","a":"Mexico Flag","b":"1F1F2-1F1FD","d":true,"e":true,"f":true,"h":true,"j":["flag_mexico","mx","flag","nation","country","banner","mexico"],"k":[3,10],"o":2},"flag-my":{"subcategory":"country-flag","a":"Malaysia Flag","b":"1F1F2-1F1FE","d":true,"e":true,"f":true,"h":true,"j":["flag_malaysia","my","flag","nation","country","banner","malaysia"],"k":[3,11],"o":2},"flag-mz":{"subcategory":"country-flag","a":"Mozambique Flag","b":"1F1F2-1F1FF","d":true,"e":true,"f":true,"h":true,"j":["flag_mozambique","mz","flag","nation","country","banner","mozambique"],"k":[3,12],"o":2},"flag-na":{"subcategory":"country-flag","a":"Namibia Flag","b":"1F1F3-1F1E6","d":true,"e":true,"f":true,"h":true,"j":["flag_namibia","na","flag","nation","country","banner","namibia"],"k":[3,13],"o":2},"flag-nc":{"subcategory":"country-flag","a":"New Caledonia Flag","b":"1F1F3-1F1E8","d":true,"e":true,"f":true,"h":true,"j":["flag_new_caledonia","new","caledonia","flag","nation","country","banner","new_caledonia"],"k":[3,14],"o":2},"flag-ne":{"subcategory":"country-flag","a":"Niger Flag","b":"1F1F3-1F1EA","d":true,"e":true,"f":true,"h":true,"j":["flag_niger","ne","flag","nation","country","banner","niger"],"k":[3,15],"o":2},"flag-nf":{"subcategory":"country-flag","a":"Norfolk Island Flag","b":"1F1F3-1F1EB","d":true,"e":true,"f":true,"h":true,"j":["flag_norfolk_island","norfolk","island","flag","nation","country","banner","norfolk_island"],"k":[3,16],"o":2},"flag-ng":{"subcategory":"country-flag","a":"Nigeria Flag","b":"1F1F3-1F1EC","d":true,"e":true,"f":true,"h":true,"j":["flag_nigeria","flag","nation","country","banner","nigeria"],"k":[3,17],"o":2},"flag-ni":{"subcategory":"country-flag","a":"Nicaragua Flag","b":"1F1F3-1F1EE","d":true,"e":true,"f":true,"h":true,"j":["flag_nicaragua","ni","flag","nation","country","banner","nicaragua"],"k":[3,18],"o":2},"flag-nl":{"subcategory":"country-flag","a":"Netherlands Flag","b":"1F1F3-1F1F1","d":true,"e":true,"f":true,"h":true,"j":["flag_netherlands","nl","flag","nation","country","banner","netherlands"],"k":[3,19],"o":2},"flag-no":{"subcategory":"country-flag","a":"Norway Flag","b":"1F1F3-1F1F4","d":true,"e":true,"f":true,"h":true,"j":["flag_norway","no","flag","nation","country","banner","norway"],"k":[3,20],"o":2},"flag-np":{"subcategory":"country-flag","a":"Nepal Flag","b":"1F1F3-1F1F5","d":true,"e":true,"f":true,"h":true,"j":["flag_nepal","np","flag","nation","country","banner","nepal"],"k":[3,21],"o":2},"flag-nr":{"subcategory":"country-flag","a":"Nauru Flag","b":"1F1F3-1F1F7","d":true,"e":true,"f":true,"h":true,"j":["flag_nauru","nr","flag","nation","country","banner","nauru"],"k":[3,22],"o":2},"flag-nu":{"subcategory":"country-flag","a":"Niue Flag","b":"1F1F3-1F1FA","d":true,"e":true,"f":true,"h":true,"j":["flag_niue","nu","flag","nation","country","banner","niue"],"k":[3,23],"o":2},"flag-nz":{"subcategory":"country-flag","a":"New Zealand Flag","b":"1F1F3-1F1FF","d":true,"e":true,"f":true,"h":true,"j":["flag_new_zealand","new","zealand","flag","nation","country","banner","new_zealand"],"k":[3,24],"o":2},"flag-om":{"subcategory":"country-flag","a":"Oman Flag","b":"1F1F4-1F1F2","d":true,"e":true,"f":true,"h":true,"j":["flag_oman","om_symbol","flag","nation","country","banner","oman"],"k":[3,25],"o":2},"flag-pa":{"subcategory":"country-flag","a":"Panama Flag","b":"1F1F5-1F1E6","d":true,"e":true,"f":true,"h":true,"j":["flag_panama","pa","flag","nation","country","banner","panama"],"k":[3,26],"o":2},"flag-pe":{"subcategory":"country-flag","a":"Peru Flag","b":"1F1F5-1F1EA","d":true,"e":true,"f":true,"h":true,"j":["flag_peru","pe","flag","nation","country","banner","peru"],"k":[3,27],"o":2},"flag-pf":{"subcategory":"country-flag","a":"French Polynesia Flag","b":"1F1F5-1F1EB","d":true,"e":true,"f":true,"h":true,"j":["flag_french_polynesia","french","polynesia","flag","nation","country","banner","french_polynesia"],"k":[3,28],"o":2},"flag-pg":{"subcategory":"country-flag","a":"Papua New Guinea Flag","b":"1F1F5-1F1EC","d":true,"e":true,"f":true,"h":true,"j":["flag_papua_new_guinea","papua","new","guinea","flag","nation","country","banner","papua_new_guinea"],"k":[3,29],"o":2},"flag-ph":{"subcategory":"country-flag","a":"Philippines Flag","b":"1F1F5-1F1ED","d":true,"e":true,"f":true,"h":true,"j":["flag_philippines","ph","flag","nation","country","banner","philippines"],"k":[3,30],"o":2},"flag-pk":{"subcategory":"country-flag","a":"Pakistan Flag","b":"1F1F5-1F1F0","d":true,"e":true,"f":true,"h":true,"j":["flag_pakistan","pk","flag","nation","country","banner","pakistan"],"k":[3,31],"o":2},"flag-pl":{"subcategory":"country-flag","a":"Poland Flag","b":"1F1F5-1F1F1","d":true,"e":true,"f":true,"h":true,"j":["flag_poland","pl","flag","nation","country","banner","poland"],"k":[3,32],"o":2},"flag-pm":{"subcategory":"country-flag","a":"St. Pierre & Miquelon Flag","b":"1F1F5-1F1F2","d":true,"e":true,"f":true,"h":true,"j":["flag_st_pierre_miquelon","saint","pierre","miquelon","flag","nation","country","banner","st_pierre_miquelon"],"k":[3,33],"o":2},"flag-pn":{"subcategory":"country-flag","a":"Pitcairn Islands Flag","b":"1F1F5-1F1F3","d":true,"e":true,"f":true,"h":true,"j":["flag_pitcairn_islands","pitcairn","flag","nation","country","banner","pitcairn_islands"],"k":[3,34],"o":2},"flag-pr":{"subcategory":"country-flag","a":"Puerto Rico Flag","b":"1F1F5-1F1F7","d":true,"e":true,"f":true,"h":true,"j":["flag_puerto_rico","puerto","rico","flag","nation","country","banner","puerto_rico"],"k":[3,35],"o":2},"flag-ps":{"subcategory":"country-flag","a":"Palestinian Territories Flag","b":"1F1F5-1F1F8","d":true,"e":true,"f":true,"h":true,"j":["flag_palestinian_territories","palestine","palestinian","territories","flag","nation","country","banner","palestinian_territories"],"k":[3,36],"o":2},"flag-pt":{"subcategory":"country-flag","a":"Portugal Flag","b":"1F1F5-1F1F9","d":true,"e":true,"f":true,"h":true,"j":["flag_portugal","pt","flag","nation","country","banner","portugal"],"k":[3,37],"o":2},"flag-pw":{"subcategory":"country-flag","a":"Palau Flag","b":"1F1F5-1F1FC","d":true,"e":true,"f":true,"h":true,"j":["flag_palau","pw","flag","nation","country","banner","palau"],"k":[3,38],"o":2},"flag-py":{"subcategory":"country-flag","a":"Paraguay Flag","b":"1F1F5-1F1FE","d":true,"e":true,"f":true,"h":true,"j":["flag_paraguay","py","flag","nation","country","banner","paraguay"],"k":[3,39],"o":2},"flag-qa":{"subcategory":"country-flag","a":"Qatar Flag","b":"1F1F6-1F1E6","d":true,"e":true,"f":true,"h":true,"j":["flag_qatar","qa","flag","nation","country","banner","qatar"],"k":[3,40],"o":2},"flag-re":{"subcategory":"country-flag","a":"Réunion Flag","b":"1F1F7-1F1EA","d":true,"e":true,"f":true,"h":true,"j":["flag_reunion","réunion","flag","nation","country","banner","reunion"],"k":[3,41],"o":2},"flag-ro":{"subcategory":"country-flag","a":"Romania Flag","b":"1F1F7-1F1F4","d":true,"e":true,"f":true,"h":true,"j":["flag_romania","ro","flag","nation","country","banner","romania"],"k":[3,42],"o":2},"flag-rs":{"subcategory":"country-flag","a":"Serbia Flag","b":"1F1F7-1F1F8","d":true,"e":true,"f":true,"h":true,"j":["flag_serbia","rs","flag","nation","country","banner","serbia"],"k":[3,43],"o":2},"ru":{"subcategory":"country-flag","a":"Russia Flag","b":"1F1F7-1F1FA","d":true,"e":true,"f":true,"h":true,"j":["flag_russia","russian","federation","flag","nation","country","banner","russia"],"k":[3,44],"n":["flag-ru"],"o":0},"flag-rw":{"subcategory":"country-flag","a":"Rwanda Flag","b":"1F1F7-1F1FC","d":true,"e":true,"f":true,"h":true,"j":["flag_rwanda","rw","flag","nation","country","banner","rwanda"],"k":[3,45],"o":2},"flag-sa":{"subcategory":"country-flag","a":"Saudi Arabia Flag","b":"1F1F8-1F1E6","d":true,"e":true,"f":true,"h":true,"j":["flag_saudi_arabia","flag","nation","country","banner","saudi_arabia"],"k":[3,46],"o":2},"flag-sb":{"subcategory":"country-flag","a":"Solomon Islands Flag","b":"1F1F8-1F1E7","d":true,"e":true,"f":true,"h":true,"j":["flag_solomon_islands","solomon","islands","flag","nation","country","banner","solomon_islands"],"k":[3,47],"o":2},"flag-sc":{"subcategory":"country-flag","a":"Seychelles Flag","b":"1F1F8-1F1E8","d":true,"e":true,"f":true,"h":true,"j":["flag_seychelles","sc","flag","nation","country","banner","seychelles"],"k":[3,48],"o":2},"flag-sd":{"subcategory":"country-flag","a":"Sudan Flag","b":"1F1F8-1F1E9","d":true,"e":true,"f":true,"h":true,"j":["flag_sudan","sd","flag","nation","country","banner","sudan"],"k":[3,49],"o":2},"flag-se":{"subcategory":"country-flag","a":"Sweden Flag","b":"1F1F8-1F1EA","d":true,"e":true,"f":true,"h":true,"j":["flag_sweden","se","flag","nation","country","banner","sweden"],"k":[3,50],"o":2},"flag-sg":{"subcategory":"country-flag","a":"Singapore Flag","b":"1F1F8-1F1EC","d":true,"e":true,"f":true,"h":true,"j":["flag_singapore","sg","flag","nation","country","banner","singapore"],"k":[3,51],"o":2},"flag-sh":{"subcategory":"country-flag","a":"St. Helena Flag","b":"1F1F8-1F1ED","d":true,"e":true,"f":true,"h":true,"j":["flag_st_helena","saint","helena","ascension","tristan","cunha","flag","nation","country","banner","st_helena"],"k":[3,52],"o":2},"flag-si":{"subcategory":"country-flag","a":"Slovenia Flag","b":"1F1F8-1F1EE","d":true,"e":true,"f":true,"h":true,"j":["flag_slovenia","si","flag","nation","country","banner","slovenia"],"k":[3,53],"o":2},"flag-sj":{"subcategory":"country-flag","a":"Svalbard & Jan Mayen Flag","b":"1F1F8-1F1EF","d":true,"e":true,"f":true,"h":true,"j":["flag_svalbard_jan_mayen"],"k":[3,54],"o":2},"flag-sk":{"subcategory":"country-flag","a":"Slovakia Flag","b":"1F1F8-1F1F0","d":true,"e":true,"f":true,"h":true,"j":["flag_slovakia","sk","flag","nation","country","banner","slovakia"],"k":[3,55],"o":2},"flag-sl":{"subcategory":"country-flag","a":"Sierra Leone Flag","b":"1F1F8-1F1F1","d":true,"e":true,"f":true,"h":true,"j":["flag_sierra_leone","sierra","leone","flag","nation","country","banner","sierra_leone"],"k":[3,56],"o":2},"flag-sm":{"subcategory":"country-flag","a":"San Marino Flag","b":"1F1F8-1F1F2","d":true,"e":true,"f":true,"h":true,"j":["flag_san_marino","san","marino","flag","nation","country","banner","san_marino"],"k":[3,57],"o":2},"flag-sn":{"subcategory":"country-flag","a":"Senegal Flag","b":"1F1F8-1F1F3","d":true,"e":true,"f":true,"h":true,"j":["flag_senegal","sn","flag","nation","country","banner","senegal"],"k":[3,58],"o":2},"flag-so":{"subcategory":"country-flag","a":"Somalia Flag","b":"1F1F8-1F1F4","d":true,"e":true,"f":true,"h":true,"j":["flag_somalia","so","flag","nation","country","banner","somalia"],"k":[3,59],"o":2},"flag-sr":{"subcategory":"country-flag","a":"Suriname Flag","b":"1F1F8-1F1F7","d":true,"e":true,"f":true,"h":true,"j":["flag_suriname","sr","flag","nation","country","banner","suriname"],"k":[3,60],"o":2},"flag-ss":{"subcategory":"country-flag","a":"South Sudan Flag","b":"1F1F8-1F1F8","d":true,"e":true,"f":true,"h":true,"j":["flag_south_sudan","south","sd","flag","nation","country","banner","south_sudan"],"k":[4,0],"o":2},"flag-st":{"subcategory":"country-flag","a":"São Tomé & Príncipe Flag","b":"1F1F8-1F1F9","d":true,"e":true,"f":true,"h":true,"j":["flag_sao_tome_principe","sao","tome","principe","flag","nation","country","banner","sao_tome_principe"],"k":[4,1],"o":2},"flag-sv":{"subcategory":"country-flag","a":"El Salvador Flag","b":"1F1F8-1F1FB","d":true,"e":true,"f":true,"h":true,"j":["flag_el_salvador","el","salvador","flag","nation","country","banner","el_salvador"],"k":[4,2],"o":2},"flag-sx":{"subcategory":"country-flag","a":"Sint Maarten Flag","b":"1F1F8-1F1FD","d":true,"e":true,"f":true,"h":true,"j":["flag_sint_maarten","sint","maarten","dutch","flag","nation","country","banner","sint_maarten"],"k":[4,3],"o":2},"flag-sy":{"subcategory":"country-flag","a":"Syria Flag","b":"1F1F8-1F1FE","d":true,"e":true,"f":true,"h":true,"j":["flag_syria","syrian","arab","republic","flag","nation","country","banner","syria"],"k":[4,4],"o":2},"flag-sz":{"subcategory":"country-flag","a":"Eswatini Flag","b":"1F1F8-1F1FF","d":true,"e":true,"f":true,"h":true,"j":["flag_eswatini","sz","flag","nation","country","banner","eswatini"],"k":[4,5],"o":2},"flag-ta":{"subcategory":"country-flag","a":"Tristan Da Cunha Flag","b":"1F1F9-1F1E6","d":true,"e":true,"f":true,"h":true,"j":["flag_tristan_da_cunha"],"k":[4,6],"o":2},"flag-tc":{"subcategory":"country-flag","a":"Turks & Caicos Islands Flag","b":"1F1F9-1F1E8","d":true,"e":true,"f":true,"h":true,"j":["flag_turks_caicos_islands","turks","caicos","islands","flag","nation","country","banner","turks_caicos_islands"],"k":[4,7],"o":2},"flag-td":{"subcategory":"country-flag","a":"Chad Flag","b":"1F1F9-1F1E9","d":true,"e":true,"f":true,"h":true,"j":["flag_chad","td","flag","nation","country","banner","chad"],"k":[4,8],"o":2},"flag-tf":{"subcategory":"country-flag","a":"French Southern Territories Flag","b":"1F1F9-1F1EB","d":true,"e":true,"f":true,"h":true,"j":["flag_french_southern_territories","french","southern","territories","flag","nation","country","banner","french_southern_territories"],"k":[4,9],"o":2},"flag-tg":{"subcategory":"country-flag","a":"Togo Flag","b":"1F1F9-1F1EC","d":true,"e":true,"f":true,"h":true,"j":["flag_togo","tg","flag","nation","country","banner","togo"],"k":[4,10],"o":2},"flag-th":{"subcategory":"country-flag","a":"Thailand Flag","b":"1F1F9-1F1ED","d":true,"e":true,"f":true,"h":true,"j":["flag_thailand","th","flag","nation","country","banner","thailand"],"k":[4,11],"o":2},"flag-tj":{"subcategory":"country-flag","a":"Tajikistan Flag","b":"1F1F9-1F1EF","d":true,"e":true,"f":true,"h":true,"j":["flag_tajikistan","tj","flag","nation","country","banner","tajikistan"],"k":[4,12],"o":2},"flag-tk":{"subcategory":"country-flag","a":"Tokelau Flag","b":"1F1F9-1F1F0","d":true,"e":true,"f":true,"h":true,"j":["flag_tokelau","tk","flag","nation","country","banner","tokelau"],"k":[4,13],"o":2},"flag-tl":{"subcategory":"country-flag","a":"Timor-Leste Flag","b":"1F1F9-1F1F1","d":true,"e":true,"f":true,"h":true,"j":["flag_timor_leste","timor","leste","flag","nation","country","banner","timor_leste"],"k":[4,14],"o":2},"flag-tm":{"subcategory":"country-flag","a":"Turkmenistan Flag","b":"1F1F9-1F1F2","d":true,"e":true,"f":true,"h":true,"j":["flag_turkmenistan","flag","nation","country","banner","turkmenistan"],"k":[4,15],"o":2},"flag-tn":{"subcategory":"country-flag","a":"Tunisia Flag","b":"1F1F9-1F1F3","d":true,"e":true,"f":true,"h":true,"j":["flag_tunisia","tn","flag","nation","country","banner","tunisia"],"k":[4,16],"o":2},"flag-to":{"subcategory":"country-flag","a":"Tonga Flag","b":"1F1F9-1F1F4","d":true,"e":true,"f":true,"h":true,"j":["flag_tonga","to","flag","nation","country","banner","tonga"],"k":[4,17],"o":2},"flag-tr":{"subcategory":"country-flag","a":"Turkey Flag","b":"1F1F9-1F1F7","d":true,"e":true,"f":true,"h":true,"j":["flag_turkey","turkey","flag","nation","country","banner"],"k":[4,18],"o":2},"flag-tt":{"subcategory":"country-flag","a":"Trinidad & Tobago Flag","b":"1F1F9-1F1F9","d":true,"e":true,"f":true,"h":true,"j":["flag_trinidad_tobago","trinidad","tobago","flag","nation","country","banner","trinidad_tobago"],"k":[4,19],"o":2},"flag-tv":{"subcategory":"country-flag","a":"Tuvalu Flag","b":"1F1F9-1F1FB","d":true,"e":true,"f":true,"h":true,"j":["flag_tuvalu","flag","nation","country","banner","tuvalu"],"k":[4,20],"o":2},"flag-tw":{"subcategory":"country-flag","a":"Taiwan Flag","b":"1F1F9-1F1FC","d":true,"e":true,"f":true,"h":true,"j":["flag_taiwan","tw","flag","nation","country","banner","taiwan"],"k":[4,21],"o":2},"flag-tz":{"subcategory":"country-flag","a":"Tanzania Flag","b":"1F1F9-1F1FF","d":true,"e":true,"f":true,"h":true,"j":["flag_tanzania","tanzania","united","republic","flag","nation","country","banner"],"k":[4,22],"o":2},"flag-ua":{"subcategory":"country-flag","a":"Ukraine Flag","b":"1F1FA-1F1E6","d":true,"e":true,"f":true,"h":true,"j":["flag_ukraine","ua","flag","nation","country","banner","ukraine"],"k":[4,23],"o":2},"flag-ug":{"subcategory":"country-flag","a":"Uganda Flag","b":"1F1FA-1F1EC","d":true,"e":true,"f":true,"h":true,"j":["flag_uganda","ug","flag","nation","country","banner","uganda"],"k":[4,24],"o":2},"flag-um":{"subcategory":"country-flag","a":"U.s. Outlying Islands Flag","b":"1F1FA-1F1F2","d":true,"e":true,"f":true,"h":true,"j":["flag_u_s_outlying_islands"],"k":[4,25],"o":2},"flag-un":{"subcategory":"country-flag","a":"United Nations Flag","b":"1F1FA-1F1F3","d":true,"e":true,"f":true,"h":true,"j":["flag_united_nations","un","flag","banner"],"k":[4,26],"o":4},"us":{"subcategory":"country-flag","a":"United States Flag","b":"1F1FA-1F1F8","d":true,"e":true,"f":true,"h":true,"j":["flag_united_states","united","states","america","flag","nation","country","banner","united_states"],"k":[4,27],"n":["flag-us"],"o":0},"flag-uy":{"subcategory":"country-flag","a":"Uruguay Flag","b":"1F1FA-1F1FE","d":true,"e":true,"f":true,"h":true,"j":["flag_uruguay","uy","flag","nation","country","banner","uruguay"],"k":[4,28],"o":2},"flag-uz":{"subcategory":"country-flag","a":"Uzbekistan Flag","b":"1F1FA-1F1FF","d":true,"e":true,"f":true,"h":true,"j":["flag_uzbekistan","uz","flag","nation","country","banner","uzbekistan"],"k":[4,29],"o":2},"flag-va":{"subcategory":"country-flag","a":"Vatican City Flag","b":"1F1FB-1F1E6","d":true,"e":true,"f":true,"h":true,"j":["flag_vatican_city","vatican","city","flag","nation","country","banner","vatican_city"],"k":[4,30],"o":2},"flag-vc":{"subcategory":"country-flag","a":"St. Vincent & Grenadines Flag","b":"1F1FB-1F1E8","d":true,"e":true,"f":true,"h":true,"j":["flag_st_vincent_grenadines","saint","vincent","grenadines","flag","nation","country","banner","st_vincent_grenadines"],"k":[4,31],"o":2},"flag-ve":{"subcategory":"country-flag","a":"Venezuela Flag","b":"1F1FB-1F1EA","d":true,"e":true,"f":true,"h":true,"j":["flag_venezuela","ve","bolivarian","republic","flag","nation","country","banner","venezuela"],"k":[4,32],"o":2},"flag-vg":{"subcategory":"country-flag","a":"British Virgin Islands Flag","b":"1F1FB-1F1EC","d":true,"e":true,"f":true,"h":true,"j":["flag_british_virgin_islands","british","virgin","islands","bvi","flag","nation","country","banner","british_virgin_islands"],"k":[4,33],"o":2},"flag-vi":{"subcategory":"country-flag","a":"U.s. Virgin Islands Flag","b":"1F1FB-1F1EE","d":true,"e":true,"f":true,"h":true,"j":["flag_u_s_virgin_islands","virgin","islands","us","flag","nation","country","banner","u_s_virgin_islands"],"k":[4,34],"o":2},"flag-vn":{"subcategory":"country-flag","a":"Vietnam Flag","b":"1F1FB-1F1F3","d":true,"e":true,"f":true,"h":true,"j":["flag_vietnam","viet","nam","flag","nation","country","banner","vietnam"],"k":[4,35],"o":2},"flag-vu":{"subcategory":"country-flag","a":"Vanuatu Flag","b":"1F1FB-1F1FA","d":true,"e":true,"f":true,"h":true,"j":["flag_vanuatu","vu","flag","nation","country","banner","vanuatu"],"k":[4,36],"o":2},"flag-wf":{"subcategory":"country-flag","a":"Wallis & Futuna Flag","b":"1F1FC-1F1EB","d":true,"e":true,"f":true,"h":true,"j":["flag_wallis_futuna","wallis","futuna","flag","nation","country","banner","wallis_futuna"],"k":[4,37],"o":2},"flag-ws":{"subcategory":"country-flag","a":"Samoa Flag","b":"1F1FC-1F1F8","d":true,"e":true,"f":true,"h":true,"j":["flag_samoa","ws","flag","nation","country","banner","samoa"],"k":[4,38],"o":2},"flag-xk":{"subcategory":"country-flag","a":"Kosovo Flag","b":"1F1FD-1F1F0","d":true,"e":true,"f":true,"h":true,"j":["flag_kosovo","xk","flag","nation","country","banner","kosovo"],"k":[4,39],"o":2},"flag-ye":{"subcategory":"country-flag","a":"Yemen Flag","b":"1F1FE-1F1EA","d":true,"e":true,"f":true,"h":true,"j":["flag_yemen","ye","flag","nation","country","banner","yemen"],"k":[4,40],"o":2},"flag-yt":{"subcategory":"country-flag","a":"Mayotte Flag","b":"1F1FE-1F1F9","d":true,"e":true,"f":true,"h":true,"j":["flag_mayotte","yt","flag","nation","country","banner","mayotte"],"k":[4,41],"o":2},"flag-za":{"subcategory":"country-flag","a":"South Africa Flag","b":"1F1FF-1F1E6","d":true,"e":true,"f":true,"h":true,"j":["flag_south_africa","south","africa","flag","nation","country","banner","south_africa"],"k":[4,42],"o":2},"flag-zm":{"subcategory":"country-flag","a":"Zambia Flag","b":"1F1FF-1F1F2","d":true,"e":true,"f":true,"h":true,"j":["flag_zambia","zm","flag","nation","country","banner","zambia"],"k":[4,43],"o":2},"flag-zw":{"subcategory":"country-flag","a":"Zimbabwe Flag","b":"1F1FF-1F1FC","d":true,"e":true,"f":true,"h":true,"j":["flag_zimbabwe","zw","flag","nation","country","banner","zimbabwe"],"k":[4,44],"o":2},"flag-england":{"subcategory":"subdivision-flag","a":"England Flag","b":"1F3F4-E0067-E0062-E0065-E006E-E0067-E007F","d":true,"e":true,"f":true,"h":true,"j":["flag_england","flag","english"],"k":[10,32],"o":5},"flag-scotland":{"subcategory":"subdivision-flag","a":"Scotland Flag","b":"1F3F4-E0067-E0062-E0073-E0063-E0074-E007F","d":true,"e":true,"f":true,"h":true,"j":["flag_scotland","flag","scottish"],"k":[10,33],"o":5},"flag-wales":{"subcategory":"subdivision-flag","a":"Wales Flag","b":"1F3F4-E0067-E0062-E0077-E006C-E0073-E007F","d":true,"e":true,"f":true,"h":true,"j":["flag_wales","flag","welsh"],"k":[10,34],"o":5}}`),Vt={satisfied:"laughing",grinning_face_with_star_eyes:"star-struck",grinning_face_with_one_large_and_one_small_eye:"zany_face",smiling_face_with_smiling_eyes_and_hand_covering_mouth:"face_with_hand_over_mouth",face_with_finger_covering_closed_lips:"shushing_face",face_with_one_eyebrow_raised:"face_with_raised_eyebrow",face_with_open_mouth_vomiting:"face_vomiting",shocked_face_with_exploding_head:"exploding_head",serious_face_with_symbols_covering_mouth:"face_with_symbols_on_mouth",poop:"hankey",shit:"hankey",collision:"boom",raised_hand:"hand",hand_with_index_and_middle_fingers_crossed:"crossed_fingers",sign_of_the_horns:"the_horns",reversed_hand_with_middle_finger_extended:"middle_finger",thumbsup:"+1",thumbsdown:"-1",punch:"facepunch",mother_christmas:"mrs_claus",running:"runner","man-with-bunny-ears-partying":"men-with-bunny-ears-partying","woman-with-bunny-ears-partying":"women-with-bunny-ears-partying",women_holding_hands:"two_women_holding_hands",woman_and_man_holding_hands:"man_and_woman_holding_hands",couple:"man_and_woman_holding_hands",men_holding_hands:"two_men_holding_hands",paw_prints:"feet",flipper:"dolphin",honeybee:"bee",lady_beetle:"ladybug",cooking:"fried_egg",knife:"hocho",red_car:"car",sailboat:"boat",waxing_gibbous_moon:"moon",sun_small_cloud:"mostly_sunny",sun_behind_cloud:"barely_sunny",sun_behind_rain_cloud:"partly_sunny_rain",lightning_cloud:"lightning",tornado_cloud:"tornado",tshirt:"shirt",shoe:"mans_shoe",telephone:"phone",lantern:"izakaya_lantern",open_book:"book",envelope:"email",pencil:"memo",heavy_exclamation_mark:"exclamation",staff_of_aesculapius:"medical_symbol","flag-cn":"cn","flag-de":"de","flag-es":"es","flag-fr":"fr",uk:"gb","flag-gb":"gb","flag-it":"it","flag-jp":"jp","flag-kr":"kr","flag-ru":"ru","flag-us":"us"},Jt={compressed:Ut,categories:$t,emojis:Kt,aliases:Vt};var De="emoji-mart";const Yt=JSON;var Xe=typeof window<"u"&&"localStorage"in window;let ce,pe;function Zt(_){_||(_={}),ce=_.getter,pe=_.setter}function Qt(_){De=_}function Xt(_){for(let a in _){let r=_[a];et(a,r)}}function et(_,a){if(pe)pe(_,a);else{if(!Xe)return;try{window.localStorage[`${De}.${_}`]=Yt.stringify(a)}catch{}}}function ea(_){if(ce)return ce(_);if(Xe){try{var a=window.localStorage[`${De}.${_}`]}catch{return}if(a)return JSON.parse(a)}}const Q={update:Xt,set:et,get:ea,setNamespace:Qt,setHandlers:Zt},he={name:"a",unified:"b",non_qualified:"c",has_img_apple:"d",has_img_google:"e",has_img_twitter:"f",has_img_facebook:"h",keywords:"j",sheet:"k",emoticons:"l",text:"m",short_names:"n",added_in:"o"},tt=_=>{const a=[];var r=(n,s)=>{n&&(Array.isArray(n)?n:[n]).forEach(u=>{(s?u.split(/[-|_|\s]+/):[u]).forEach(g=>{g=g.toLowerCase(),a.indexOf(g)==-1&&a.push(g)})})};return r(_.short_names,!0),r(_.name,!0),r(_.keywords,!1),r(_.emoticons,!1),a.join(",")};function at(_){var a=Object.getOwnPropertyNames(_);for(let r of a){let n=_[r];_[r]=n&&typeof n=="object"?at(n):n}return Object.freeze(_)}const ta=_=>{if(!_.compressed)return _;_.compressed=!1;for(let a in _.emojis){let r=_.emojis[a];for(let n in he)r[n]=r[he[n]],delete r[he[n]];r.short_names||(r.short_names=[]),r.short_names.unshift(a),r.sheet_x=r.sheet[0],r.sheet_y=r.sheet[1],delete r.sheet,r.text||(r.text=""),r.added_in||(r.added_in=6),r.added_in=r.added_in.toFixed(1),r.search=tt(r)}return _=at(_),_},le=["+1","grinning","kissing_heart","heart_eyes","laughing","stuck_out_tongue_winking_eye","sweat_smile","joy","scream","disappointed","unamused","weary","sob","sunglasses","heart","hankey"];let P,we,be={};function it(){we=!0,P=Q.get("frequently")}function aa(_){we||it();var{id:a}=_;P||(P=be),P[a]||(P[a]=0),P[a]+=1,Q.set("last",a),Q.set("frequently",P)}function ia(_){if(we||it(),!P){be={};const u=[];let g=Math.min(_,le.length);for(let d=0;d<g;d++)be[le[d]]=parseInt((g-d)/4,10)+1,u.push(le[d]);return u}const a=_,r=[];for(let u in P)P.hasOwnProperty(u)&&r.push(u);const n=r.sort((u,g)=>P[u]-P[g]).reverse().slice(0,a),s=Q.get("last");return s&&n.indexOf(s)==-1&&(n.pop(),n.push(s)),n}const ye={add:aa,get:ia},ra={activity:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M12 0C5.373 0 0 5.372 0 12c0 6.627 5.373 12 12 12 6.628 0 12-5.373 12-12 0-6.628-5.372-12-12-12m9.949 11H17.05c.224-2.527 1.232-4.773 1.968-6.113A9.966 9.966 0 0 1 21.949 11M13 11V2.051a9.945 9.945 0 0 1 4.432 1.564c-.858 1.491-2.156 4.22-2.392 7.385H13zm-2 0H8.961c-.238-3.165-1.536-5.894-2.393-7.385A9.95 9.95 0 0 1 11 2.051V11zm0 2v8.949a9.937 9.937 0 0 1-4.432-1.564c.857-1.492 2.155-4.221 2.393-7.385H11zm4.04 0c.236 3.164 1.534 5.893 2.392 7.385A9.92 9.92 0 0 1 13 21.949V13h2.04zM4.982 4.887C5.718 6.227 6.726 8.473 6.951 11h-4.9a9.977 9.977 0 0 1 2.931-6.113M2.051 13h4.9c-.226 2.527-1.233 4.771-1.969 6.113A9.972 9.972 0 0 1 2.051 13m16.967 6.113c-.735-1.342-1.744-3.586-1.968-6.113h4.899a9.961 9.961 0 0 1-2.931 6.113"/></svg>',custom:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><g transform="translate(2.000000, 1.000000)"><rect id="Rectangle" x="8" y="0" width="3" height="21" rx="1.5"></rect><rect id="Rectangle" transform="translate(9.843, 10.549) rotate(60) translate(-9.843, -10.549) " x="8.343" y="0.049" width="3" height="21" rx="1.5"></rect><rect id="Rectangle" transform="translate(9.843, 10.549) rotate(-60) translate(-9.843, -10.549) " x="8.343" y="0.049" width="3" height="21" rx="1.5"></rect></g></svg>',flags:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M0 0l6.084 24H8L1.916 0zM21 5h-4l-1-4H4l3 12h3l1 4h13L21 5zM6.563 3h7.875l2 8H8.563l-2-8zm8.832 10l-2.856 1.904L12.063 13h3.332zM19 13l-1.5-6h1.938l2 8H16l3-2z"/></svg>',foods:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M17 4.978c-1.838 0-2.876.396-3.68.934.513-1.172 1.768-2.934 4.68-2.934a1 1 0 0 0 0-2c-2.921 0-4.629 1.365-5.547 2.512-.064.078-.119.162-.18.244C11.73 1.838 10.798.023 9.207.023 8.579.022 7.85.306 7 .978 5.027 2.54 5.329 3.902 6.492 4.999 3.609 5.222 0 7.352 0 12.969c0 4.582 4.961 11.009 9 11.009 1.975 0 2.371-.486 3-1 .629.514 1.025 1 3 1 4.039 0 9-6.418 9-11 0-5.953-4.055-8-7-8M8.242 2.546c.641-.508.943-.523.965-.523.426.169.975 1.405 1.357 3.055-1.527-.629-2.741-1.352-2.98-1.846.059-.112.241-.356.658-.686M15 21.978c-1.08 0-1.21-.109-1.559-.402l-.176-.146c-.367-.302-.816-.452-1.266-.452s-.898.15-1.266.452l-.176.146c-.347.292-.477.402-1.557.402-2.813 0-7-5.389-7-9.009 0-5.823 4.488-5.991 5-5.991 1.939 0 2.484.471 3.387 1.251l.323.276a1.995 1.995 0 0 0 2.58 0l.323-.276c.902-.78 1.447-1.251 3.387-1.251.512 0 5 .168 5 6 0 3.617-4.187 9-7 9"/></svg>',nature:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M15.5 8a1.5 1.5 0 1 0 .001 3.001A1.5 1.5 0 0 0 15.5 8M8.5 8a1.5 1.5 0 1 0 .001 3.001A1.5 1.5 0 0 0 8.5 8"/><path d="M18.933 0h-.027c-.97 0-2.138.787-3.018 1.497-1.274-.374-2.612-.51-3.887-.51-1.285 0-2.616.133-3.874.517C7.245.79 6.069 0 5.093 0h-.027C3.352 0 .07 2.67.002 7.026c-.039 2.479.276 4.238 1.04 5.013.254.258.882.677 1.295.882.191 3.177.922 5.238 2.536 6.38.897.637 2.187.949 3.2 1.102C8.04 20.6 8 20.795 8 21c0 1.773 2.35 3 4 3 1.648 0 4-1.227 4-3 0-.201-.038-.393-.072-.586 2.573-.385 5.435-1.877 5.925-7.587.396-.22.887-.568 1.104-.788.763-.774 1.079-2.534 1.04-5.013C23.929 2.67 20.646 0 18.933 0M3.223 9.135c-.237.281-.837 1.155-.884 1.238-.15-.41-.368-1.349-.337-3.291.051-3.281 2.478-4.972 3.091-5.031.256.015.731.27 1.265.646-1.11 1.171-2.275 2.915-2.352 5.125-.133.546-.398.858-.783 1.313M12 22c-.901 0-1.954-.693-2-1 0-.654.475-1.236 1-1.602V20a1 1 0 1 0 2 0v-.602c.524.365 1 .947 1 1.602-.046.307-1.099 1-2 1m3-3.48v.02a4.752 4.752 0 0 0-1.262-1.02c1.092-.516 2.239-1.334 2.239-2.217 0-1.842-1.781-2.195-3.977-2.195-2.196 0-3.978.354-3.978 2.195 0 .883 1.148 1.701 2.238 2.217A4.8 4.8 0 0 0 9 18.539v-.025c-1-.076-2.182-.281-2.973-.842-1.301-.92-1.838-3.045-1.853-6.478l.023-.041c.496-.826 1.49-1.45 1.804-3.102 0-2.047 1.357-3.631 2.362-4.522C9.37 3.178 10.555 3 11.948 3c1.447 0 2.685.192 3.733.57 1 .9 2.316 2.465 2.316 4.48.313 1.651 1.307 2.275 1.803 3.102.035.058.068.117.102.178-.059 5.967-1.949 7.01-4.902 7.19m6.628-8.202c-.037-.065-.074-.13-.113-.195a7.587 7.587 0 0 0-.739-.987c-.385-.455-.648-.768-.782-1.313-.076-2.209-1.241-3.954-2.353-5.124.531-.376 1.004-.63 1.261-.647.636.071 3.044 1.764 3.096 5.031.027 1.81-.347 3.218-.37 3.235"/></svg>',objects:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M12 0a9 9 0 0 0-5 16.482V21s2.035 3 5 3 5-3 5-3v-4.518A9 9 0 0 0 12 0zm0 2c3.86 0 7 3.141 7 7s-3.14 7-7 7-7-3.141-7-7 3.14-7 7-7zM9 17.477c.94.332 1.946.523 3 .523s2.06-.19 3-.523v.834c-.91.436-1.925.689-3 .689a6.924 6.924 0 0 1-3-.69v-.833zm.236 3.07A8.854 8.854 0 0 0 12 21c.965 0 1.888-.167 2.758-.451C14.155 21.173 13.153 22 12 22c-1.102 0-2.117-.789-2.764-1.453z"/><path d="M14.745 12.449h-.004c-.852-.024-1.188-.858-1.577-1.824-.421-1.061-.703-1.561-1.182-1.566h-.009c-.481 0-.783.497-1.235 1.537-.436.982-.801 1.811-1.636 1.791l-.276-.043c-.565-.171-.853-.691-1.284-1.794-.125-.313-.202-.632-.27-.913-.051-.213-.127-.53-.195-.634C7.067 9.004 7.039 9 6.99 9A1 1 0 0 1 7 7h.01c1.662.017 2.015 1.373 2.198 2.134.486-.981 1.304-2.058 2.797-2.075 1.531.018 2.28 1.153 2.731 2.141l.002-.008C14.944 8.424 15.327 7 16.979 7h.032A1 1 0 1 1 17 9h-.011c-.149.076-.256.474-.319.709a6.484 6.484 0 0 1-.311.951c-.429.973-.79 1.789-1.614 1.789"/></svg>',smileys:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0m0 22C6.486 22 2 17.514 2 12S6.486 2 12 2s10 4.486 10 10-4.486 10-10 10"/><path d="M8 7a2 2 0 1 0-.001 3.999A2 2 0 0 0 8 7M16 7a2 2 0 1 0-.001 3.999A2 2 0 0 0 16 7M15.232 15c-.693 1.195-1.87 2-3.349 2-1.477 0-2.655-.805-3.347-2H15m3-2H6a6 6 0 1 0 12 0"/></svg>',people:'<svg xmlns:svg="http://www.w3.org/2000/svg" height="24" width="24" viewBox="0 0 24 24"> <path id="path3814" d="m 3.3591089,21.17726 c 0.172036,0.09385 4.265994,2.29837 8.8144451,2.29837 4.927767,0 8.670894,-2.211883 8.82782,-2.306019 0.113079,-0.06785 0.182268,-0.190051 0.182267,-0.321923 0,-3.03119 -0.929494,-5.804936 -2.617196,-7.810712 -1.180603,-1.403134 -2.661918,-2.359516 -4.295699,-2.799791 4.699118,-2.236258 3.102306,-9.28617162 -2.097191,-9.28617162 -5.1994978,0 -6.7963103,7.04991362 -2.097192,9.28617162 -1.6337821,0.440275 -3.1150971,1.396798 -4.2956991,2.799791 -1.687703,2.005776 -2.617196,4.779522 -2.617196,7.810712 1.2e-6,0.137378 0.075039,0.263785 0.195641,0.329572 z M 8.0439319,5.8308783 C 8.0439309,2.151521 12.492107,0.30955811 15.093491,2.9109411 17.694874,5.5123241 15.852911,9.9605006 12.173554,9.9605 9.8938991,9.9579135 8.0465186,8.1105332 8.0439319,5.8308783 Z m -1.688782,7.6894977 c 1.524535,-1.811449 3.5906601,-2.809035 5.8184041,-2.809035 2.227744,0 4.293869,0.997586 5.818404,2.809035 1.533639,1.822571 2.395932,4.339858 2.439152,7.108301 -0.803352,0.434877 -4.141636,2.096112 -8.257556,2.096112 -3.8062921,0 -7.3910861,-1.671043 -8.2573681,-2.104981 0.04505,-2.765017 0.906968,-5.278785 2.438964,-7.099432 z" /> <path id="path3816" d="M 12.173828 0.38867188 C 9.3198513 0.38867187 7.3770988 2.3672285 6.8652344 4.6308594 C 6.4218608 6.5916015 7.1153562 8.7676117 8.9648438 10.126953 C 7.6141249 10.677376 6.3550511 11.480944 5.3496094 12.675781 C 3.5629317 14.799185 2.6015625 17.701475 2.6015625 20.847656 C 2.6015654 21.189861 2.7894276 21.508002 3.0898438 21.671875 C 3.3044068 21.788925 7.4436239 24.039062 12.173828 24.039062 C 17.269918 24.039062 21.083568 21.776786 21.291016 21.652344 C 21.57281 21.483266 21.746097 21.176282 21.746094 20.847656 C 21.746094 17.701475 20.78277 14.799185 18.996094 12.675781 C 17.990455 11.480591 16.733818 10.675362 15.382812 10.125 C 17.231132 8.7655552 17.925675 6.5910701 17.482422 4.6308594 C 16.970557 2.3672285 15.027805 0.38867188 12.173828 0.38867188 z M 12.792969 2.3007812 C 13.466253 2.4161792 14.125113 2.7383941 14.695312 3.3085938 C 15.835712 4.4489931 15.985604 5.9473549 15.46875 7.1953125 C 14.951896 8.4432701 13.786828 9.3984378 12.173828 9.3984375 C 10.197719 9.3961954 8.607711 7.806187 8.6054688 5.8300781 C 8.6054683 4.2170785 9.5606362 3.0520102 10.808594 2.5351562 C 11.432573 2.2767293 12.119685 2.1853833 12.792969 2.3007812 z M 12.173828 11.273438 C 14.233647 11.273438 16.133674 12.185084 17.5625 13.882812 C 18.93069 15.508765 19.698347 17.776969 19.808594 20.283203 C 18.807395 20.800235 15.886157 22.162109 12.173828 22.162109 C 8.7614632 22.162109 5.6245754 20.787069 4.5390625 20.265625 C 4.6525896 17.766717 5.4203315 15.504791 6.7851562 13.882812 C 8.2139827 12.185084 10.11401 11.273438 12.173828 11.273438 z " /> </svg>',places:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M6.5 12C5.122 12 4 13.121 4 14.5S5.122 17 6.5 17 9 15.879 9 14.5 7.878 12 6.5 12m0 3c-.275 0-.5-.225-.5-.5s.225-.5.5-.5.5.225.5.5-.225.5-.5.5M17.5 12c-1.378 0-2.5 1.121-2.5 2.5s1.122 2.5 2.5 2.5 2.5-1.121 2.5-2.5-1.122-2.5-2.5-2.5m0 3c-.275 0-.5-.225-.5-.5s.225-.5.5-.5.5.225.5.5-.225.5-.5.5"/><path d="M22.482 9.494l-1.039-.346L21.4 9h.6c.552 0 1-.439 1-.992 0-.006-.003-.008-.003-.008H23c0-1-.889-2-1.984-2h-.642l-.731-1.717C19.262 3.012 18.091 2 16.764 2H7.236C5.909 2 4.738 3.012 4.357 4.283L3.626 6h-.642C1.889 6 1 7 1 8h.003S1 8.002 1 8.008C1 8.561 1.448 9 2 9h.6l-.043.148-1.039.346a2.001 2.001 0 0 0-1.359 2.097l.751 7.508a1 1 0 0 0 .994.901H3v1c0 1.103.896 2 2 2h2c1.104 0 2-.897 2-2v-1h6v1c0 1.103.896 2 2 2h2c1.104 0 2-.897 2-2v-1h1.096a.999.999 0 0 0 .994-.901l.751-7.508a2.001 2.001 0 0 0-1.359-2.097M6.273 4.857C6.402 4.43 6.788 4 7.236 4h9.527c.448 0 .834.43.963.857L19.313 9H4.688l1.585-4.143zM7 21H5v-1h2v1zm12 0h-2v-1h2v1zm2.189-3H2.811l-.662-6.607L3 11h18l.852.393L21.189 18z"/></svg>',recent:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M13 4h-2l-.001 7H9v2h2v2h2v-2h4v-2h-4z"/><path d="M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0m0 22C6.486 22 2 17.514 2 12S6.486 2 12 2s10 4.486 10 10-4.486 10-10 10"/></svg>',symbols:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M0 0h11v2H0zM4 11h3V6h4V4H0v2h4zM15.5 17c1.381 0 2.5-1.116 2.5-2.493s-1.119-2.493-2.5-2.493S13 13.13 13 14.507 14.119 17 15.5 17m0-2.986c.276 0 .5.222.5.493 0 .272-.224.493-.5.493s-.5-.221-.5-.493.224-.493.5-.493M21.5 19.014c-1.381 0-2.5 1.116-2.5 2.493S20.119 24 21.5 24s2.5-1.116 2.5-2.493-1.119-2.493-2.5-2.493m0 2.986a.497.497 0 0 1-.5-.493c0-.271.224-.493.5-.493s.5.222.5.493a.497.497 0 0 1-.5.493M22 13l-9 9 1.513 1.5 8.99-9.009zM17 11c2.209 0 4-1.119 4-2.5V2s.985-.161 1.498.949C23.01 4.055 23 6 23 6s1-1.119 1-3.135C24-.02 21 0 21 0h-2v6.347A5.853 5.853 0 0 0 17 6c-2.209 0-4 1.119-4 2.5s1.791 2.5 4 2.5M10.297 20.482l-1.475-1.585a47.54 47.54 0 0 1-1.442 1.129c-.307-.288-.989-1.016-2.045-2.183.902-.836 1.479-1.466 1.729-1.892s.376-.871.376-1.336c0-.592-.273-1.178-.818-1.759-.546-.581-1.329-.871-2.349-.871-1.008 0-1.79.293-2.344.879-.556.587-.832 1.181-.832 1.784 0 .813.419 1.748 1.256 2.805-.847.614-1.444 1.208-1.794 1.784a3.465 3.465 0 0 0-.523 1.833c0 .857.308 1.56.924 2.107.616.549 1.423.823 2.42.823 1.173 0 2.444-.379 3.813-1.137L8.235 24h2.819l-2.09-2.383 1.333-1.135zm-6.736-6.389a1.02 1.02 0 0 1 .73-.286c.31 0 .559.085.747.254a.849.849 0 0 1 .283.659c0 .518-.419 1.112-1.257 1.784-.536-.651-.805-1.231-.805-1.742a.901.901 0 0 1 .302-.669M3.74 22c-.427 0-.778-.116-1.057-.349-.279-.232-.418-.487-.418-.766 0-.594.509-1.288 1.527-2.083.968 1.134 1.717 1.946 2.248 2.438-.921.507-1.686.76-2.3.76"/></svg>'},_a={props:{i18n:{type:Object,required:!0},color:{type:String},categories:{type:Array,required:!0},activeCategory:{type:Object,default(){return{}}}},emits:["click"],created(){this.svgs=ra}},ua={role:"tablist",class:"emoji-mart-anchors"},oa=["aria-label","aria-selected","data-title","onClick"],na=["innerHTML"];function sa(_,a,r,n,s,u){return p(),b("div",ua,[(p(!0),b(H,null,Y(r.categories,g=>(p(),b("button",{role:"tab",type:"button","aria-label":g.name,"aria-selected":g.id==r.activeCategory.id,key:g.id,class:W({"emoji-mart-anchor":!0,"emoji-mart-anchor-selected":g.id==r.activeCategory.id}),style:Z({color:g.id==r.activeCategory.id?r.color:""}),"data-title":r.i18n.categories[g.id],onClick:d=>_.$emit("click",g)},[y("div",{"aria-hidden":"true",innerHTML:_.svgs[g.id]},null,8,na),y("span",{"aria-hidden":"true",class:"emoji-mart-anchor-bar",style:Z({backgroundColor:r.color})},null,4)],14,oa))),128))])}const ga=$(_a,[["render",sa]]),Fa=String,fa=Fa.fromCodePoint||function(){var _=16384,a=[],r,n,s=-1,u=arguments.length;if(!u)return"";for(var g="";++s<u;){var d=Number(arguments[s]);if(!isFinite(d)||d<0||d>1114111||Math.floor(d)!=d)throw RangeError("Invalid code point: "+d);d<=65535?a.push(d):(d-=65536,r=(d>>10)+55296,n=d%1024+56320,a.push(r,n)),(s+1===u||a.length>_)&&(g+=String.fromCharCode.apply(null,a),a.length=0)}return g};function da(_){var a=_.split("-"),r=a.map(n=>`0x${n}`);return fa.apply(null,r)}function $e(_){return _.reduce((a,r)=>(a.indexOf(r)===-1&&a.push(r),a),[])}function ha(_,a){const r=$e(_),n=$e(a);return r.filter(s=>n.indexOf(s)>=0)}function rt(_,a){var r={};for(let n in _){let s=_[n],u=s;Object.prototype.hasOwnProperty.call(a,n)&&(u=a[n]),typeof u=="object"&&(u=rt(s,u)),r[n]=u}return r}function la(){if(typeof document>"u")return 0;const _=document.createElement("div");_.style.width="100px",_.style.height="100px",_.style.overflow="scroll",_.style.position="absolute",_.style.top="-9999px",document.body.appendChild(_);const a=_.offsetWidth-_.clientWidth;return document.body.removeChild(_),a}const ma=61,ca=/^(?:\:([^\:]+)\:)(?:\:skin-tone-(\d)\:)?$/,Ke=["1F3FA","1F3FB","1F3FC","1F3FD","1F3FE","1F3FF"];class pa{constructor(a,{emojisToShowFilter:r,include:n,exclude:s,custom:u,recent:g,recentLength:d=20}={}){this._data=ta(a),this._emojisFilter=r||null,this._include=n||null,this._exclude=s||null,this._custom=u||[],this._recent=g||ye.get(d),this._emojis={},this._nativeEmojis={},this._emoticons={},this._categories=[],this._recentCategory={id:"recent",name:"Recent",emojis:[]},this._customCategory={id:"custom",name:"Custom",emojis:[]},this._searchIndex={},this.buildIndex(),Object.freeze(this)}buildIndex(){let a=this._data.categories;if(this._include&&(a=a.filter(r=>this._include.includes(r.id)),a=a.sort((r,n)=>{const s=this._include.indexOf(r.id),u=this._include.indexOf(n.id);return s<u?-1:s>u?1:0})),a.forEach(r=>{if(!this.isCategoryNeeded(r.id))return;let n={id:r.id,name:r.name,emojis:[]};r.emojis.forEach(s=>{let u=this.addEmoji(s);u&&n.emojis.push(u)}),n.emojis.length&&this._categories.push(n)}),this.isCategoryNeeded("custom")){if(this._custom.length>0)for(let r of this._custom)this.addCustomEmoji(r);this._customCategory.emojis.length&&this._categories.push(this._customCategory)}this.isCategoryNeeded("recent")&&(this._recent.length&&this._recent.map(r=>{for(let n of this._customCategory.emojis)if(n.id===r){this._recentCategory.emojis.push(n);return}this.hasEmoji(r)&&this._recentCategory.emojis.push(this.emoji(r))}),this._recentCategory.emojis.length&&this._categories.unshift(this._recentCategory))}findEmoji(a,r){let n=a.match(ca);if(n&&(a=n[1],n[2]&&(r=parseInt(n[2],10))),this._data.aliases.hasOwnProperty(a)&&(a=this._data.aliases[a]),this._emojis.hasOwnProperty(a)){let s=this._emojis[a];return r?s.getSkin(r):s}return this._nativeEmojis.hasOwnProperty(a)?this._nativeEmojis[a]:null}categories(){return this._categories}emoji(a){this._data.aliases.hasOwnProperty(a)&&(a=this._data.aliases[a]);let r=this._emojis[a];if(!r)throw new Error("Can not find emoji by id: "+a);return r}firstEmoji(){let a=this._emojis[Object.keys(this._emojis)[0]];if(!a)throw new Error("Can not get first emoji");return a}hasEmoji(a){return this._data.aliases.hasOwnProperty(a)&&(a=this._data.aliases[a]),!!this._emojis[a]}nativeEmoji(a){return this._nativeEmojis.hasOwnProperty(a)?this._nativeEmojis[a]:null}search(a,r){if(r||(r=75),!a.length)return null;if(a=="-"||a=="-1")return[this.emoji("-1")];let n=a.toLowerCase().split(/[\s|,|\-|_]+/),s=[];n.length>2&&(n=[n[0],n[1]]),s=n.map(g=>{let d=this._emojis,l=this._searchIndex,C=0;for(let w=0;w<g.length;w++){const A=g[w];if(C++,l[A]||(l[A]={}),l=l[A],!l.results){let B={};l.results=[],l.emojis={};for(let k in d){let E=d[k],I=E._data.search,R=g.substr(0,C),X=I.indexOf(R);if(X!=-1){let v=X+1;R==k&&(v=0),l.results.push(E),l.emojis[k]=E,B[k]=v}}l.results.sort((k,E)=>{var I=B[k.id],R=B[E.id];return I-R})}d=l.emojis}return l.results}).filter(g=>g);var u=null;return s.length>1?u=ha.apply(null,s):s.length?u=s[0]:u=[],u&&u.length>r&&(u=u.slice(0,r)),u}addCustomEmoji(a){let r=Object.assign({},a,{id:a.short_names[0],custom:!0});r.search||(r.search=tt(r));let n=new _e(r);return this._emojis[n.id]=n,this._customCategory.emojis.push(n),n}addEmoji(a){let r=this._data.emojis[a];if(!this.isEmojiNeeded(r))return!1;let n=new _e(r);if(this._emojis[a]=n,n.native&&(this._nativeEmojis[n.native]=n),n._skins)for(let s in n._skins){let u=n._skins[s];u.native&&(this._nativeEmojis[u.native]=u)}return n.emoticons&&n.emoticons.forEach(s=>{this._emoticons[s]||(this._emoticons[s]=a)}),n}isCategoryNeeded(a){let r=this._include&&this._include.length?this._include.indexOf(a)>-1:!0,n=this._exclude&&this._exclude.length?this._exclude.indexOf(a)>-1:!1;return!(!r||n)}isEmojiNeeded(a){return this._emojisFilter?this._emojisFilter(a):!0}}class _e{constructor(a){if(this._data=Object.assign({},a),this._skins=null,this._data.skin_variations){this._skins=[];for(var r in Ke){let n=Ke[r],s=this._data.skin_variations[n],u=Object.assign({},a);for(let g in s)u[g]=s[g];delete u.skin_variations,u.skin_tone=parseInt(r)+1,this._skins.push(new _e(u))}}this._sanitized=ba(this._data);for(let n in this._sanitized)this[n]=this._sanitized[n];this.short_names=this._data.short_names,this.short_name=this._data.short_names[0],Object.freeze(this)}getSkin(a){return a&&a!="native"&&this._skins?this._skins[a-1]:this}getPosition(){let a=ma-1,r=+(100/a*this._data.sheet_x).toFixed(2),n=+(100/a*this._data.sheet_y).toFixed(2);return`${r}% ${n}%`}ariaLabel(){return[this.native].concat(this.short_names).filter(Boolean).join(", ")}}class _t{constructor(a,r,n,s,u,g,d){this._emoji=a,this._native=s,this._skin=r,this._set=n,this._fallback=u,this.canRender=this._canRender(),this.cssClass=this._cssClass(),this.cssStyle=this._cssStyle(d),this.content=this._content(),this.title=g===!0?a.short_name:null,this.ariaLabel=a.ariaLabel(),Object.freeze(this)}getEmoji(){return this._emoji.getSkin(this._skin)}_canRender(){return this._isCustom()||this._isNative()||this._hasEmoji()||this._fallback}_cssClass(){return["emoji-set-"+this._set,"emoji-type-"+this._emojiType()]}_cssStyle(a){let r={};return this._isCustom()?r={backgroundImage:"url("+this.getEmoji()._data.imageUrl+")",backgroundSize:"100%",width:a+"px",height:a+"px"}:this._hasEmoji()&&!this._isNative()&&(r={backgroundPosition:this.getEmoji().getPosition()}),a&&(this._isNative()?r=Object.assign(r,{fontSize:Math.round(a*.95*10)/10+"px"}):r=Object.assign(r,{width:a+"px",height:a+"px"})),r}_content(){return this._isCustom()?"":this._isNative()?this.getEmoji().native:this._hasEmoji()?"":this._fallback?this._fallback(this.getEmoji()):null}_isNative(){return this._native}_isCustom(){return this.getEmoji().custom}_hasEmoji(){if(!this.getEmoji()._data)return!1;const a=this.getEmoji()._data["has_img_"+this._set];return a===void 0?!0:a}_emojiType(){return this._isCustom()?"custom":this._isNative()?"native":this._hasEmoji()?"image":"fallback"}}function ba(_){var{name:a,short_names:r,skin_tone:n,skin_variations:s,emoticons:u,unified:g,custom:d,imageUrl:l}=_,C=_.id||r[0],w=`:${C}:`;return d?{id:C,name:a,colons:w,emoticons:u,custom:d,imageUrl:l}:(n&&(w+=`:skin-tone-${n}:`),{id:C,name:a,colons:w,emoticons:u,unified:g.toLowerCase(),skin:n||(s?1:null),native:da(g)})}const ya={native:{type:Boolean,default:!1},tooltip:{type:Boolean,default:!1},fallback:{type:Function},skin:{type:Number,default:1},set:{type:String,default:"apple"},emoji:{type:[String,Object],required:!0},size:{type:Number,default:null},tag:{type:String,default:"span"}},ka={perLine:{type:Number,default:9},maxSearchResults:{type:Number,default:75},emojiSize:{type:Number,default:24},title:{type:String,default:"Emoji Mart™"},emoji:{type:String,default:"department_store"},color:{type:String,default:"#ae65c5"},set:{type:String,default:"apple"},skin:{type:Number,default:null},defaultSkin:{type:Number,default:1},native:{type:Boolean,default:!1},emojiTooltip:{type:Boolean,default:!1},autoFocus:{type:Boolean,default:!1},i18n:{type:Object,default(){return{}}},showPreview:{type:Boolean,default:!0},showSearch:{type:Boolean,default:!0},showCategories:{type:Boolean,default:!0},showSkinTones:{type:Boolean,default:!0},infiniteScroll:{type:Boolean,default:!0},pickerStyles:{type:Object,default(){return{}}}},Da={props:{...ya,data:{type:Object,required:!0}},emits:["click","mouseenter","mouseleave"],computed:{view(){return new _t(this.emojiObject,this.skin,this.set,this.native,this.fallback,this.tooltip,this.size)},sanitizedData(){return this.emojiObject._sanitized},title(){return this.tooltip?this.emojiObject.short_name:null},emojiObject(){return typeof this.emoji=="string"?this.data.findEmoji(this.emoji):this.emoji}},created(){},methods:{onClick(){this.$emit("click",this.emojiObject)},onMouseEnter(){this.$emit("mouseenter",this.emojiObject)},onMouseLeave(){this.$emit("mouseleave",this.emojiObject)}}};function wa(_,a,r,n,s,u){return u.view.canRender?(p(),re(Ct(_.tag),{key:0,title:u.view.title,"aria-label":u.view.ariaLabel,"data-title":u.title,class:"emoji-mart-emoji",onMouseenter:u.onMouseEnter,onMouseleave:u.onMouseLeave,onClick:u.onClick},{default:U(()=>[y("span",{class:W(u.view.cssClass),style:Z(u.view.cssStyle)},T(u.view.content),7)]),_:1},40,["title","aria-label","data-title","onMouseenter","onMouseleave","onClick"])):L("",!0)}const Ee=$(Da,[["render",wa]]),Ea={props:{data:{type:Object,required:!0},i18n:{type:Object,required:!0},id:{type:String,required:!0},name:{type:String,required:!0},emojis:{type:Array},emojiProps:{type:Object,required:!0}},methods:{activeClass:function(_){return!this.emojiProps.selectedEmoji||!this.emojiProps.selectedEmojiCategory?"":this.emojiProps.selectedEmoji.id==_.id&&this.emojiProps.selectedEmojiCategory.id==this.id?"emoji-mart-emoji-selected":""}},computed:{isVisible(){return!!this.emojis},isSearch(){return this.name=="Search"},hasResults(){return this.emojis.length>0},emojiObjects(){return this.emojis.map(_=>{let a=_,r=new _t(_,this.emojiProps.skin,this.emojiProps.set,this.emojiProps.native,this.emojiProps.fallback,this.emojiProps.emojiTooltip,this.emojiProps.emojiSize);return{emojiObject:a,emojiView:r}})}},components:{Emoji:Ee}},ja=["aria-label"],Ca={class:"emoji-mart-category-label"},xa={class:"emoji-mart-category-label"},Ba=["aria-label","data-title","title","onMouseenter","onMouseleave","onClick"],qa={key:0},va={class:"emoji-mart-no-results-label"};function Aa(_,a,r,n,s,u){const g=S("emoji");return u.isVisible&&(u.isSearch||u.hasResults)?(p(),b("section",{key:0,class:W({"emoji-mart-category":!0,"emoji-mart-no-results":!u.hasResults}),"aria-label":r.i18n.categories[r.id]},[y("div",Ca,[y("h3",xa,T(r.i18n.categories[r.id]),1)]),(p(!0),b(H,null,Y(u.emojiObjects,({emojiObject:d,emojiView:l})=>(p(),b(H,null,[l.canRender?(p(),b("button",{"aria-label":l.ariaLabel,role:"option","aria-selected":"false","aria-posinset":"1","aria-setsize":"1812",type:"button","data-title":d.short_name,key:d.id,title:l.title,class:W(["emoji-mart-emoji",u.activeClass(d)]),onMouseenter:C=>r.emojiProps.onEnter(l.getEmoji()),onMouseleave:C=>r.emojiProps.onLeave(l.getEmoji()),onClick:C=>r.emojiProps.onClick(l.getEmoji())},[y("span",{class:W(l.cssClass),style:Z(l.cssStyle)},T(l.content),7)],42,Ba)):L("",!0)],64))),256)),u.hasResults?L("",!0):(p(),b("div",qa,[M(g,{data:r.data,emoji:"sleuth_or_spy",native:r.emojiProps.native,skin:r.emojiProps.skin,set:r.emojiProps.set},null,8,["data","native","skin","set"]),y("div",va,T(r.i18n.notfound),1)]))],10,ja)):L("",!0)}const Sa=$(Ea,[["render",Aa]]),Ma={props:{skin:{type:Number,required:!0}},emits:["change"],data(){return{opened:!1}},methods:{onClick(_){this.opened&&_!=this.skin&&this.$emit("change",_),this.opened=!this.opened}}},Pa=["onClick"];function za(_,a,r,n,s,u){return p(),b("div",{class:W({"emoji-mart-skin-swatches":!0,"emoji-mart-skin-swatches-opened":s.opened})},[(p(),b(H,null,Y(6,g=>y("span",{key:g,class:W({"emoji-mart-skin-swatch":!0,"emoji-mart-skin-swatch-selected":r.skin==g})},[y("span",{class:W("emoji-mart-skin emoji-mart-skin-tone-"+g),onClick:d=>u.onClick(g)},null,10,Pa)],2)),64))],2)}const Oa=$(Ma,[["render",za]]),Ta={props:{data:{type:Object,required:!0},title:{type:String,required:!0},emoji:{type:[String,Object]},idleEmoji:{type:[String,Object],required:!0},showSkinTones:{type:Boolean,default:!0},emojiProps:{type:Object,required:!0},skinProps:{type:Object,required:!0},onSkinChange:{type:Function,required:!0}},computed:{emojiData(){return this.emoji?this.emoji:{}},emojiShortNames(){return this.emojiData.short_names},emojiEmoticons(){return this.emojiData.emoticons}},components:{Emoji:Ee,Skins:Oa}},Ha={class:"emoji-mart-preview"},La={class:"emoji-mart-preview-emoji"},Wa={class:"emoji-mart-preview-data"},Ia={class:"emoji-mart-preview-name"},Ra={class:"emoji-mart-preview-shortnames"},Na={class:"emoji-mart-preview-emoticons"},Ga={class:"emoji-mart-preview-emoji"},Ua={class:"emoji-mart-preview-data"},$a={class:"emoji-mart-title-label"},Ka={key:0,class:"emoji-mart-preview-skins"};function Va(_,a,r,n,s,u){const g=S("emoji"),d=S("skins");return p(),b("div",Ha,[r.emoji?(p(),b(H,{key:0},[y("div",La,[M(g,{data:r.data,emoji:r.emoji,native:r.emojiProps.native,skin:r.emojiProps.skin,set:r.emojiProps.set},null,8,["data","emoji","native","skin","set"])]),y("div",Wa,[y("div",Ia,T(r.emoji.name),1),y("div",Ra,[(p(!0),b(H,null,Y(u.emojiShortNames,l=>(p(),b("span",{key:l,class:"emoji-mart-preview-shortname"},":"+T(l)+":",1))),128))]),y("div",Na,[(p(!0),b(H,null,Y(u.emojiEmoticons,l=>(p(),b("span",{key:l,class:"emoji-mart-preview-emoticon"},T(l),1))),128))])])],64)):(p(),b(H,{key:1},[y("div",Ga,[M(g,{data:r.data,emoji:r.idleEmoji,native:r.emojiProps.native,skin:r.emojiProps.skin,set:r.emojiProps.set},null,8,["data","emoji","native","skin","set"])]),y("div",Ua,[y("span",$a,T(r.title),1)]),r.showSkinTones?(p(),b("div",Ka,[M(d,{skin:r.skinProps.skin,onChange:a[0]||(a[0]=l=>r.onSkinChange(l))},null,8,["skin"])])):L("",!0)],64))])}const Ja=$(Ta,[["render",Va]]),Ya={props:{data:{type:Object,required:!0},i18n:{type:Object,required:!0},autoFocus:{type:Boolean,default:!1},onSearch:{type:Function,required:!0},onArrowLeft:{type:Function,required:!1},onArrowRight:{type:Function,required:!1},onArrowDown:{type:Function,required:!1},onArrowUp:{type:Function,required:!1},onEnter:{type:Function,required:!1}},emits:["search","enter","arrowUp","arrowDown","arrowRight","arrowLeft"],data(){return{value:""}},computed:{emojiIndex(){return this.data}},watch:{value(){this.$emit("search",this.value)}},methods:{clear(){this.value=""}},mounted(){let _=this.$el.querySelector("input");this.autoFocus&&_.focus()}},Za={class:"emoji-mart-search"},Qa=["placeholder"];function Xa(_,a,r,n,s,u){return p(),b("div",Za,[Ye(y("input",{type:"text",placeholder:r.i18n.search,role:"textbox","aria-autocomplete":"list","aria-owns":"emoji-mart-list","aria-label":"Search for an emoji","aria-describedby":"emoji-mart-search-description",onKeydown:[a[0]||(a[0]=z(g=>_.$emit("arrowLeft",g),["left"])),a[1]||(a[1]=z(()=>_.$emit("arrowRight"),["right"])),a[2]||(a[2]=z(()=>_.$emit("arrowDown"),["down"])),a[3]||(a[3]=z(g=>_.$emit("arrowUp",g),["up"])),a[4]||(a[4]=z(()=>_.$emit("enter"),["enter"]))],"onUpdate:modelValue":a[5]||(a[5]=g=>s.value=g)},null,40,Qa),[[xt,s.value]]),a[6]||(a[6]=y("span",{class:"hidden",id:"emoji-picker-search-description"},"Use the left, right, up and down arrow keys to navigate the emoji search results.",-1))])}const ei=$(Ya,[["render",Xa]]);var ti=typeof window<"u";ti&&(function(){for(var _=0,a=["ms","moz","webkit","o"],r=0;r<a.length&&!window.requestAnimationFrame;++r)window.requestAnimationFrame=window[a[r]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[a[r]+"CancelAnimationFrame"]||window[a[r]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(n,s){var u=new Date().getTime(),g=Math.max(0,16-(u-_)),d=window.setTimeout(function(){n(u+g)},g);return _=u+g,d}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(n){clearTimeout(n)})})();class ai{constructor(a){this._vm=a,this._data=a.data,this._perLine=a.perLine,this._categories=[],this._categories.push(...this._data.categories()),this._categories=this._categories.filter(r=>r.emojis.length>0),this._categories[0].first=!0,Object.freeze(this._categories),this.activeCategory=this._categories[0],this.searchEmojis=null,this.previewEmoji=null,this.previewEmojiCategoryIdx=0,this.previewEmojiIdx=-1}onScroll(){const a=this._vm.$refs.scroll;if(!a)return;const r=a.scrollTop;let n=this.filteredCategories[0];for(let s=0,u=this.filteredCategories.length;s<u;s++){let g=this.filteredCategories[s],d=this._vm.getCategoryComponent(s);if(d&&d.$el.offsetTop-50>r)break;n=g}this.activeCategory=n}get allCategories(){return this._categories}get filteredCategories(){return this.searchEmojis?[{id:"search",name:"Search",emojis:this.searchEmojis}]:this._categories.filter(a=>a.emojis.length>0)}get previewEmojiCategory(){return this.previewEmojiCategoryIdx>=0?this.filteredCategories[this.previewEmojiCategoryIdx]:null}onAnchorClick(a){if(this.searchEmojis)return;let r=this.filteredCategories.indexOf(a),n=this._vm.getCategoryComponent(r),s=()=>{if(n){let u=n.$el.offsetTop;a.first&&(u=0),this._vm.$refs.scroll.scrollTop=u}};this._vm.infiniteScroll?s():this.activeCategory=this.filteredCategories[r]}onSearch(a){let r=this._data.search(a,this.maxSearchResults);this.searchEmojis=r,this.previewEmojiCategoryIdx=0,this.previewEmojiIdx=0,this.updatePreviewEmoji()}onEmojiEnter(a){this.previewEmoji=a,this.previewEmojiIdx=-1,this.previewEmojiCategoryIdx=-1}onEmojiLeave(a){this.previewEmoji=null}onArrowLeft(){this.previewEmojiIdx>0?this.previewEmojiIdx-=1:(this.previewEmojiCategoryIdx-=1,this.previewEmojiCategoryIdx<0?this.previewEmojiCategoryIdx=0:this.previewEmojiIdx=this.filteredCategories[this.previewEmojiCategoryIdx].emojis.length-1),this.updatePreviewEmoji()}onArrowRight(){this.previewEmojiIdx<this.emojisLength(this.previewEmojiCategoryIdx)-1?this.previewEmojiIdx+=1:(this.previewEmojiCategoryIdx+=1,this.previewEmojiCategoryIdx>=this.filteredCategories.length?this.previewEmojiCategoryIdx=this.filteredCategories.length-1:this.previewEmojiIdx=0),this.updatePreviewEmoji()}onArrowDown(){if(this.previewEmojiIdx==-1)return this.onArrowRight();const a=this.filteredCategories[this.previewEmojiCategoryIdx].emojis.length;let r=this._perLine;this.previewEmojiIdx+r>a&&(r=a%this._perLine);for(let n=0;n<r;n++)this.onArrowRight();this.updatePreviewEmoji()}onArrowUp(){let a=this._perLine;this.previewEmojiIdx-a<0&&(this.previewEmojiCategoryIdx>0?a=this.filteredCategories[this.previewEmojiCategoryIdx-1].emojis.length%this._perLine:a=0);for(let r=0;r<a;r++)this.onArrowLeft();this.updatePreviewEmoji()}updatePreviewEmoji(){this.previewEmoji=this.filteredCategories[this.previewEmojiCategoryIdx].emojis[this.previewEmojiIdx],this._vm.$nextTick(()=>{const a=this._vm.$refs.scroll,r=a.querySelector(".emoji-mart-emoji-selected"),n=a.offsetTop-a.offsetHeight;r&&r.offsetTop+r.offsetHeight>n+a.scrollTop&&(a.scrollTop+=r.offsetHeight),r&&r.offsetTop<a.scrollTop&&(a.scrollTop-=r.offsetHeight)})}emojisLength(a){return a==-1?0:this.filteredCategories[a].emojis.length}}const ii={search:"Search",notfound:"No Emoji Found",categories:{search:"Search Results",recent:"Frequently Used",smileys:"Smileys & Emotion",people:"People & Body",nature:"Animals & Nature",foods:"Food & Drink",activity:"Activity",places:"Travel & Places",objects:"Objects",symbols:"Symbols",flags:"Flags",custom:"Custom"}},ri={props:{...ka,data:{type:Object,required:!0}},emits:["select","skin-change"],data(){return{activeSkin:this.skin||Q.get("skin")||this.defaultSkin,view:new ai(this)}},computed:{customStyles(){return{width:this.calculateWidth+"px",...this.pickerStyles}},emojiProps(){return{native:this.native,skin:this.activeSkin,set:this.set,emojiTooltip:this.emojiTooltip,emojiSize:this.emojiSize,selectedEmoji:this.view.previewEmoji,selectedEmojiCategory:this.view.previewEmojiCategory,onEnter:this.onEmojiEnter.bind(this),onLeave:this.onEmojiLeave.bind(this),onClick:this.onEmojiClick.bind(this)}},skinProps(){return{skin:this.activeSkin}},calculateWidth(){return this.perLine*(this.emojiSize+12)+12+2+la()},filteredCategories(){return this.view.filteredCategories},mergedI18n(){return Object.freeze(rt(ii,this.i18n))},idleEmoji(){try{return this.data.emoji(this.emoji)}catch(_){return console.error("Default preview emoji `"+this.emoji+"` is not available, check the Picker `emoji` property"),console.error(_),this.data.firstEmoji()}},isSearching(){return this.view.searchEmojis!=null}},watch:{skin(){this.onSkinChange(this.skin)}},methods:{onScroll(){this.infiniteScroll&&!this.waitingForPaint&&(this.waitingForPaint=!0,window.requestAnimationFrame(this.onScrollPaint.bind(this)))},onScrollPaint(){this.waitingForPaint=!1,this.view.onScroll()},onAnchorClick(_){this.view.onAnchorClick(_)},onSearch(_){this.view.onSearch(_)},onEmojiEnter(_){this.view.onEmojiEnter(_)},onEmojiLeave(_){this.view.onEmojiLeave(_)},onArrowLeft(_){const a=this.view.previewEmojiIdx;this.view.onArrowLeft(),_&&this.view.previewEmojiIdx!==a&&_.preventDefault()},onArrowRight(){this.view.onArrowRight()},onArrowDown(){this.view.onArrowDown()},onArrowUp(_){this.view.onArrowUp(),_.preventDefault()},onEnter(){this.view.previewEmoji&&(this.$emit("select",this.view.previewEmoji),ye.add(this.view.previewEmoji))},onEmojiClick(_){this.$emit("select",_),ye.add(_)},onTextSelect(_){_.stopPropagation()},onSkinChange(_){this.activeSkin=_,Q.update({skin:_}),this.$emit("skin-change",_)},getCategoryComponent(_){let a=this.$refs["categories_"+_];return a&&"0"in a?a[0]:a}},components:{Anchors:ga,Category:Sa,Preview:Ja,Search:ei}},_i={key:0,class:"emoji-mart-bar emoji-mart-bar-anchors"},ui={id:"emoji-mart-list",ref:"scrollContent",role:"listbox","aria-expanded":"true"},oi={key:0,class:"emoji-mart-bar emoji-mart-bar-preview"};function ni(_,a,r,n,s,u){const g=S("anchors"),d=S("search"),l=S("category"),C=S("preview");return p(),b("section",{class:"emoji-mart emoji-mart-static",style:Z(u.customStyles)},[_.showCategories?(p(),b("div",_i,[M(g,{data:r.data,i18n:u.mergedI18n,color:_.color,categories:s.view.allCategories,"active-category":s.view.activeCategory,onClick:u.onAnchorClick},null,8,["data","i18n","color","categories","active-category","onClick"])])):L("",!0),ie(_.$slots,"searchTemplate",{data:r.data,i18n:_.i18n,autoFocus:_.autoFocus,onSearch:u.onSearch},()=>[_.showSearch?(p(),re(d,{key:0,ref:"search",data:r.data,i18n:u.mergedI18n,"auto-focus":_.autoFocus,"on-search":u.onSearch,onSearch:u.onSearch,onArrowLeft:u.onArrowLeft,onArrowRight:u.onArrowRight,onArrowDown:u.onArrowDown,onArrowUp:u.onArrowUp,onEnter:u.onEnter,onSelect:u.onTextSelect},null,8,["data","i18n","auto-focus","on-search","onSearch","onArrowLeft","onArrowRight","onArrowDown","onArrowUp","onEnter","onSelect"])):L("",!0)]),y("div",{role:"tabpanel",class:"emoji-mart-scroll",ref:"scroll",onScroll:a[0]||(a[0]=(...w)=>u.onScroll&&u.onScroll(...w))},[y("div",ui,[ie(_.$slots,"customCategory"),(p(!0),b(H,null,Y(s.view.filteredCategories,(w,A)=>Ye((p(),re(l,{ref_for:!0,ref:"categories_"+A,key:w.id,data:r.data,i18n:u.mergedI18n,id:w.id,name:w.name,emojis:w.emojis,"emoji-props":u.emojiProps},null,8,["data","i18n","id","name","emojis","emoji-props"])),[[Bt,_.infiniteScroll||w==s.view.activeCategory||u.isSearching]])),128))],512)],544),ie(_.$slots,"previewTemplate",{data:r.data,title:_.title,emoji:s.view.previewEmoji,idleEmoji:u.idleEmoji,showSkinTones:_.showSkinTones,emojiProps:u.emojiProps,skinProps:u.skinProps,onSkinChange:u.onSkinChange},()=>[_.showPreview?(p(),b("div",oi,[M(C,{data:r.data,title:_.title,emoji:s.view.previewEmoji,"idle-emoji":u.idleEmoji,"show-skin-tones":_.showSkinTones,"emoji-props":u.emojiProps,"skin-props":u.skinProps,"on-skin-change":u.onSkinChange},null,8,["data","title","emoji","idle-emoji","show-skin-tones","emoji-props","skin-props","on-skin-change"])])):L("",!0)])],4)}const si=$(ri,[["render",ni]]);var ke={exports:{}},gi=ke.exports,Ve;function Fi(){return Ve||(Ve=1,(function(_,a){(function(r,n){_.exports=n()})(typeof self<"u"?self:gi,(function(){return(function(){var r={537:function(){typeof window<"u"&&(function(){for(var g=0,d=["ms","moz","webkit","o"],l=0;l<d.length&&!window.requestAnimationFrame;++l)window.requestAnimationFrame=window[d[l]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[d[l]+"CancelAnimationFrame"]||window[d[l]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(C,w){var A=new Date().getTime(),B=Math.max(0,16-(A-g)),k=window.setTimeout((function(){C(A+B)}),B);return g=A+B,k}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(C){clearTimeout(C)})})()}},n={};function s(g){var d=n[g];if(d!==void 0)return d.exports;var l=n[g]={exports:{}};return r[g](l,l.exports,s),l.exports}s.d=function(g,d){for(var l in d)s.o(d,l)&&!s.o(g,l)&&Object.defineProperty(g,l,{enumerable:!0,get:d[l]})},s.o=function(g,d){return Object.prototype.hasOwnProperty.call(g,d)},s.r=function(g){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(g,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(g,"__esModule",{value:!0})};var u={};return(function(){s.r(u),s.d(u,{Anchors:function(){return xe},Category:function(){return He},Emoji:function(){return Fe},EmojiData:function(){return se},EmojiIndex:function(){return ht},EmojiView:function(){return ge},Picker:function(){return Dt},Preview:function(){return We},Search:function(){return Ie},Skins:function(){return Le},frequently:function(){return ee},sanitize:function(){return Pe},store:function(){return B},uncompress:function(){return je}});var g,d,l="emoji-mart",C=JSON,w=typeof window<"u"&&"localStorage"in window;function A(e,t){if(d)d(e,t);else{if(!w)return;try{window.localStorage["".concat(l,".").concat(e)]=C.stringify(t)}catch{}}}var B={update:function(e){for(var t in e)A(t,e[t])},set:A,get:function(e){if(g)return g(e);if(w){try{var t=window.localStorage["".concat(l,".").concat(e)]}catch{return}return t?JSON.parse(t):void 0}},setNamespace:function(e){l=e},setHandlers:function(e){e||(e={}),g=e.getter,d=e.setter}};function k(e){return k=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},k(e)}function E(e,t){(t==null||t>e.length)&&(t=e.length);for(var i=0,o=new Array(t);i<t;i++)o[i]=e[i];return o}var I={name:"a",unified:"b",non_qualified:"c",has_img_apple:"d",has_img_google:"e",has_img_twitter:"f",has_img_facebook:"h",keywords:"j",sheet:"k",emoticons:"l",text:"m",short_names:"n",added_in:"o"},R=function(e){var t=[],i=function(o,F){o&&(Array.isArray(o)?o:[o]).forEach((function(f){(F?f.split(/[-|_|\s]+/):[f]).forEach((function(h){h=h.toLowerCase(),t.indexOf(h)==-1&&t.push(h)}))}))};return i(e.short_names,!0),i(e.name,!0),i(e.keywords,!1),i(e.emoticons,!1),t.join(",")};function X(e){var t,i=(function(f,h){var c=typeof Symbol<"u"&&f[Symbol.iterator]||f["@@iterator"];if(!c){if(Array.isArray(f)||(c=(function(x,G){if(x){if(typeof x=="string")return E(x,G);var O=Object.prototype.toString.call(x).slice(8,-1);return O==="Object"&&x.constructor&&(O=x.constructor.name),O==="Map"||O==="Set"?Array.from(x):O==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(O)?E(x,G):void 0}})(f))||h){c&&(f=c);var m=0,D=function(){};return{s:D,n:function(){return m>=f.length?{done:!0}:{done:!1,value:f[m++]}},e:function(x){throw x},f:D}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var q,K=!0,V=!1;return{s:function(){c=c.call(f)},n:function(){var x=c.next();return K=x.done,x},e:function(x){V=!0,q=x},f:function(){try{K||c.return==null||c.return()}finally{if(V)throw q}}}})(Object.getOwnPropertyNames(e));try{for(i.s();!(t=i.n()).done;){var o=t.value,F=e[o];e[o]=F&&k(F)==="object"?X(F):F}}catch(f){i.e(f)}finally{i.f()}return Object.freeze(e)}var v,ue,je=function(e){if(!e.compressed)return e;for(var t in e.compressed=!1,e.emojis){var i=e.emojis[t];for(var o in I)i[o]=i[I[o]],delete i[I[o]];i.short_names||(i.short_names=[]),i.short_names.unshift(t),i.sheet_x=i.sheet[0],i.sheet_y=i.sheet[1],delete i.sheet,i.text||(i.text=""),i.added_in||(i.added_in=6),i.added_in=i.added_in.toFixed(1),i.search=R(i)}return X(e)},oe=["+1","grinning","kissing_heart","heart_eyes","laughing","stuck_out_tongue_winking_eye","sweat_smile","joy","scream","disappointed","unamused","weary","sob","sunglasses","heart","hankey"],ne={};function Ce(){ue=!0,v=B.get("frequently")}var ee={add:function(e){ue||Ce();var t=e.id;v||(v=ne),v[t]||(v[t]=0),v[t]+=1,B.set("last",t),B.set("frequently",v)},get:function(e){if(ue||Ce(),!v){ne={};for(var t=[],i=Math.min(e,oe.length),o=0;o<i;o++)ne[oe[o]]=parseInt((i-o)/4,10)+1,t.push(oe[o]);return t}var F=e,f=[];for(var h in v)v.hasOwnProperty(h)&&f.push(h);var c=f.sort((function(D,q){return v[D]-v[q]})).reverse().slice(0,F),m=B.get("last");return m&&c.indexOf(m)==-1&&(c.pop(),c.push(m)),c}},ot={activity:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M12 0C5.373 0 0 5.372 0 12c0 6.627 5.373 12 12 12 6.628 0 12-5.373 12-12 0-6.628-5.372-12-12-12m9.949 11H17.05c.224-2.527 1.232-4.773 1.968-6.113A9.966 9.966 0 0 1 21.949 11M13 11V2.051a9.945 9.945 0 0 1 4.432 1.564c-.858 1.491-2.156 4.22-2.392 7.385H13zm-2 0H8.961c-.238-3.165-1.536-5.894-2.393-7.385A9.95 9.95 0 0 1 11 2.051V11zm0 2v8.949a9.937 9.937 0 0 1-4.432-1.564c.857-1.492 2.155-4.221 2.393-7.385H11zm4.04 0c.236 3.164 1.534 5.893 2.392 7.385A9.92 9.92 0 0 1 13 21.949V13h2.04zM4.982 4.887C5.718 6.227 6.726 8.473 6.951 11h-4.9a9.977 9.977 0 0 1 2.931-6.113M2.051 13h4.9c-.226 2.527-1.233 4.771-1.969 6.113A9.972 9.972 0 0 1 2.051 13m16.967 6.113c-.735-1.342-1.744-3.586-1.968-6.113h4.899a9.961 9.961 0 0 1-2.931 6.113"/></svg>',custom:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><g transform="translate(2.000000, 1.000000)"><rect id="Rectangle" x="8" y="0" width="3" height="21" rx="1.5"></rect><rect id="Rectangle" transform="translate(9.843, 10.549) rotate(60) translate(-9.843, -10.549) " x="8.343" y="0.049" width="3" height="21" rx="1.5"></rect><rect id="Rectangle" transform="translate(9.843, 10.549) rotate(-60) translate(-9.843, -10.549) " x="8.343" y="0.049" width="3" height="21" rx="1.5"></rect></g></svg>',flags:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M0 0l6.084 24H8L1.916 0zM21 5h-4l-1-4H4l3 12h3l1 4h13L21 5zM6.563 3h7.875l2 8H8.563l-2-8zm8.832 10l-2.856 1.904L12.063 13h3.332zM19 13l-1.5-6h1.938l2 8H16l3-2z"/></svg>',foods:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M17 4.978c-1.838 0-2.876.396-3.68.934.513-1.172 1.768-2.934 4.68-2.934a1 1 0 0 0 0-2c-2.921 0-4.629 1.365-5.547 2.512-.064.078-.119.162-.18.244C11.73 1.838 10.798.023 9.207.023 8.579.022 7.85.306 7 .978 5.027 2.54 5.329 3.902 6.492 4.999 3.609 5.222 0 7.352 0 12.969c0 4.582 4.961 11.009 9 11.009 1.975 0 2.371-.486 3-1 .629.514 1.025 1 3 1 4.039 0 9-6.418 9-11 0-5.953-4.055-8-7-8M8.242 2.546c.641-.508.943-.523.965-.523.426.169.975 1.405 1.357 3.055-1.527-.629-2.741-1.352-2.98-1.846.059-.112.241-.356.658-.686M15 21.978c-1.08 0-1.21-.109-1.559-.402l-.176-.146c-.367-.302-.816-.452-1.266-.452s-.898.15-1.266.452l-.176.146c-.347.292-.477.402-1.557.402-2.813 0-7-5.389-7-9.009 0-5.823 4.488-5.991 5-5.991 1.939 0 2.484.471 3.387 1.251l.323.276a1.995 1.995 0 0 0 2.58 0l.323-.276c.902-.78 1.447-1.251 3.387-1.251.512 0 5 .168 5 6 0 3.617-4.187 9-7 9"/></svg>',nature:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M15.5 8a1.5 1.5 0 1 0 .001 3.001A1.5 1.5 0 0 0 15.5 8M8.5 8a1.5 1.5 0 1 0 .001 3.001A1.5 1.5 0 0 0 8.5 8"/><path d="M18.933 0h-.027c-.97 0-2.138.787-3.018 1.497-1.274-.374-2.612-.51-3.887-.51-1.285 0-2.616.133-3.874.517C7.245.79 6.069 0 5.093 0h-.027C3.352 0 .07 2.67.002 7.026c-.039 2.479.276 4.238 1.04 5.013.254.258.882.677 1.295.882.191 3.177.922 5.238 2.536 6.38.897.637 2.187.949 3.2 1.102C8.04 20.6 8 20.795 8 21c0 1.773 2.35 3 4 3 1.648 0 4-1.227 4-3 0-.201-.038-.393-.072-.586 2.573-.385 5.435-1.877 5.925-7.587.396-.22.887-.568 1.104-.788.763-.774 1.079-2.534 1.04-5.013C23.929 2.67 20.646 0 18.933 0M3.223 9.135c-.237.281-.837 1.155-.884 1.238-.15-.41-.368-1.349-.337-3.291.051-3.281 2.478-4.972 3.091-5.031.256.015.731.27 1.265.646-1.11 1.171-2.275 2.915-2.352 5.125-.133.546-.398.858-.783 1.313M12 22c-.901 0-1.954-.693-2-1 0-.654.475-1.236 1-1.602V20a1 1 0 1 0 2 0v-.602c.524.365 1 .947 1 1.602-.046.307-1.099 1-2 1m3-3.48v.02a4.752 4.752 0 0 0-1.262-1.02c1.092-.516 2.239-1.334 2.239-2.217 0-1.842-1.781-2.195-3.977-2.195-2.196 0-3.978.354-3.978 2.195 0 .883 1.148 1.701 2.238 2.217A4.8 4.8 0 0 0 9 18.539v-.025c-1-.076-2.182-.281-2.973-.842-1.301-.92-1.838-3.045-1.853-6.478l.023-.041c.496-.826 1.49-1.45 1.804-3.102 0-2.047 1.357-3.631 2.362-4.522C9.37 3.178 10.555 3 11.948 3c1.447 0 2.685.192 3.733.57 1 .9 2.316 2.465 2.316 4.48.313 1.651 1.307 2.275 1.803 3.102.035.058.068.117.102.178-.059 5.967-1.949 7.01-4.902 7.19m6.628-8.202c-.037-.065-.074-.13-.113-.195a7.587 7.587 0 0 0-.739-.987c-.385-.455-.648-.768-.782-1.313-.076-2.209-1.241-3.954-2.353-5.124.531-.376 1.004-.63 1.261-.647.636.071 3.044 1.764 3.096 5.031.027 1.81-.347 3.218-.37 3.235"/></svg>',objects:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M12 0a9 9 0 0 0-5 16.482V21s2.035 3 5 3 5-3 5-3v-4.518A9 9 0 0 0 12 0zm0 2c3.86 0 7 3.141 7 7s-3.14 7-7 7-7-3.141-7-7 3.14-7 7-7zM9 17.477c.94.332 1.946.523 3 .523s2.06-.19 3-.523v.834c-.91.436-1.925.689-3 .689a6.924 6.924 0 0 1-3-.69v-.833zm.236 3.07A8.854 8.854 0 0 0 12 21c.965 0 1.888-.167 2.758-.451C14.155 21.173 13.153 22 12 22c-1.102 0-2.117-.789-2.764-1.453z"/><path d="M14.745 12.449h-.004c-.852-.024-1.188-.858-1.577-1.824-.421-1.061-.703-1.561-1.182-1.566h-.009c-.481 0-.783.497-1.235 1.537-.436.982-.801 1.811-1.636 1.791l-.276-.043c-.565-.171-.853-.691-1.284-1.794-.125-.313-.202-.632-.27-.913-.051-.213-.127-.53-.195-.634C7.067 9.004 7.039 9 6.99 9A1 1 0 0 1 7 7h.01c1.662.017 2.015 1.373 2.198 2.134.486-.981 1.304-2.058 2.797-2.075 1.531.018 2.28 1.153 2.731 2.141l.002-.008C14.944 8.424 15.327 7 16.979 7h.032A1 1 0 1 1 17 9h-.011c-.149.076-.256.474-.319.709a6.484 6.484 0 0 1-.311.951c-.429.973-.79 1.789-1.614 1.789"/></svg>',smileys:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0m0 22C6.486 22 2 17.514 2 12S6.486 2 12 2s10 4.486 10 10-4.486 10-10 10"/><path d="M8 7a2 2 0 1 0-.001 3.999A2 2 0 0 0 8 7M16 7a2 2 0 1 0-.001 3.999A2 2 0 0 0 16 7M15.232 15c-.693 1.195-1.87 2-3.349 2-1.477 0-2.655-.805-3.347-2H15m3-2H6a6 6 0 1 0 12 0"/></svg>',people:'<svg xmlns:svg="http://www.w3.org/2000/svg" height="24" width="24" viewBox="0 0 24 24"> <path id="path3814" d="m 3.3591089,21.17726 c 0.172036,0.09385 4.265994,2.29837 8.8144451,2.29837 4.927767,0 8.670894,-2.211883 8.82782,-2.306019 0.113079,-0.06785 0.182268,-0.190051 0.182267,-0.321923 0,-3.03119 -0.929494,-5.804936 -2.617196,-7.810712 -1.180603,-1.403134 -2.661918,-2.359516 -4.295699,-2.799791 4.699118,-2.236258 3.102306,-9.28617162 -2.097191,-9.28617162 -5.1994978,0 -6.7963103,7.04991362 -2.097192,9.28617162 -1.6337821,0.440275 -3.1150971,1.396798 -4.2956991,2.799791 -1.687703,2.005776 -2.617196,4.779522 -2.617196,7.810712 1.2e-6,0.137378 0.075039,0.263785 0.195641,0.329572 z M 8.0439319,5.8308783 C 8.0439309,2.151521 12.492107,0.30955811 15.093491,2.9109411 17.694874,5.5123241 15.852911,9.9605006 12.173554,9.9605 9.8938991,9.9579135 8.0465186,8.1105332 8.0439319,5.8308783 Z m -1.688782,7.6894977 c 1.524535,-1.811449 3.5906601,-2.809035 5.8184041,-2.809035 2.227744,0 4.293869,0.997586 5.818404,2.809035 1.533639,1.822571 2.395932,4.339858 2.439152,7.108301 -0.803352,0.434877 -4.141636,2.096112 -8.257556,2.096112 -3.8062921,0 -7.3910861,-1.671043 -8.2573681,-2.104981 0.04505,-2.765017 0.906968,-5.278785 2.438964,-7.099432 z" /> <path id="path3816" d="M 12.173828 0.38867188 C 9.3198513 0.38867187 7.3770988 2.3672285 6.8652344 4.6308594 C 6.4218608 6.5916015 7.1153562 8.7676117 8.9648438 10.126953 C 7.6141249 10.677376 6.3550511 11.480944 5.3496094 12.675781 C 3.5629317 14.799185 2.6015625 17.701475 2.6015625 20.847656 C 2.6015654 21.189861 2.7894276 21.508002 3.0898438 21.671875 C 3.3044068 21.788925 7.4436239 24.039062 12.173828 24.039062 C 17.269918 24.039062 21.083568 21.776786 21.291016 21.652344 C 21.57281 21.483266 21.746097 21.176282 21.746094 20.847656 C 21.746094 17.701475 20.78277 14.799185 18.996094 12.675781 C 17.990455 11.480591 16.733818 10.675362 15.382812 10.125 C 17.231132 8.7655552 17.925675 6.5910701 17.482422 4.6308594 C 16.970557 2.3672285 15.027805 0.38867188 12.173828 0.38867188 z M 12.792969 2.3007812 C 13.466253 2.4161792 14.125113 2.7383941 14.695312 3.3085938 C 15.835712 4.4489931 15.985604 5.9473549 15.46875 7.1953125 C 14.951896 8.4432701 13.786828 9.3984378 12.173828 9.3984375 C 10.197719 9.3961954 8.607711 7.806187 8.6054688 5.8300781 C 8.6054683 4.2170785 9.5606362 3.0520102 10.808594 2.5351562 C 11.432573 2.2767293 12.119685 2.1853833 12.792969 2.3007812 z M 12.173828 11.273438 C 14.233647 11.273438 16.133674 12.185084 17.5625 13.882812 C 18.93069 15.508765 19.698347 17.776969 19.808594 20.283203 C 18.807395 20.800235 15.886157 22.162109 12.173828 22.162109 C 8.7614632 22.162109 5.6245754 20.787069 4.5390625 20.265625 C 4.6525896 17.766717 5.4203315 15.504791 6.7851562 13.882812 C 8.2139827 12.185084 10.11401 11.273438 12.173828 11.273438 z " /> </svg>',places:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M6.5 12C5.122 12 4 13.121 4 14.5S5.122 17 6.5 17 9 15.879 9 14.5 7.878 12 6.5 12m0 3c-.275 0-.5-.225-.5-.5s.225-.5.5-.5.5.225.5.5-.225.5-.5.5M17.5 12c-1.378 0-2.5 1.121-2.5 2.5s1.122 2.5 2.5 2.5 2.5-1.121 2.5-2.5-1.122-2.5-2.5-2.5m0 3c-.275 0-.5-.225-.5-.5s.225-.5.5-.5.5.225.5.5-.225.5-.5.5"/><path d="M22.482 9.494l-1.039-.346L21.4 9h.6c.552 0 1-.439 1-.992 0-.006-.003-.008-.003-.008H23c0-1-.889-2-1.984-2h-.642l-.731-1.717C19.262 3.012 18.091 2 16.764 2H7.236C5.909 2 4.738 3.012 4.357 4.283L3.626 6h-.642C1.889 6 1 7 1 8h.003S1 8.002 1 8.008C1 8.561 1.448 9 2 9h.6l-.043.148-1.039.346a2.001 2.001 0 0 0-1.359 2.097l.751 7.508a1 1 0 0 0 .994.901H3v1c0 1.103.896 2 2 2h2c1.104 0 2-.897 2-2v-1h6v1c0 1.103.896 2 2 2h2c1.104 0 2-.897 2-2v-1h1.096a.999.999 0 0 0 .994-.901l.751-7.508a2.001 2.001 0 0 0-1.359-2.097M6.273 4.857C6.402 4.43 6.788 4 7.236 4h9.527c.448 0 .834.43.963.857L19.313 9H4.688l1.585-4.143zM7 21H5v-1h2v1zm12 0h-2v-1h2v1zm2.189-3H2.811l-.662-6.607L3 11h18l.852.393L21.189 18z"/></svg>',recent:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M13 4h-2l-.001 7H9v2h2v2h2v-2h4v-2h-4z"/><path d="M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0m0 22C6.486 22 2 17.514 2 12S6.486 2 12 2s10 4.486 10 10-4.486 10-10 10"/></svg>',symbols:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M0 0h11v2H0zM4 11h3V6h4V4H0v2h4zM15.5 17c1.381 0 2.5-1.116 2.5-2.493s-1.119-2.493-2.5-2.493S13 13.13 13 14.507 14.119 17 15.5 17m0-2.986c.276 0 .5.222.5.493 0 .272-.224.493-.5.493s-.5-.221-.5-.493.224-.493.5-.493M21.5 19.014c-1.381 0-2.5 1.116-2.5 2.493S20.119 24 21.5 24s2.5-1.116 2.5-2.493-1.119-2.493-2.5-2.493m0 2.986a.497.497 0 0 1-.5-.493c0-.271.224-.493.5-.493s.5.222.5.493a.497.497 0 0 1-.5.493M22 13l-9 9 1.513 1.5 8.99-9.009zM17 11c2.209 0 4-1.119 4-2.5V2s.985-.161 1.498.949C23.01 4.055 23 6 23 6s1-1.119 1-3.135C24-.02 21 0 21 0h-2v6.347A5.853 5.853 0 0 0 17 6c-2.209 0-4 1.119-4 2.5s1.791 2.5 4 2.5M10.297 20.482l-1.475-1.585a47.54 47.54 0 0 1-1.442 1.129c-.307-.288-.989-1.016-2.045-2.183.902-.836 1.479-1.466 1.729-1.892s.376-.871.376-1.336c0-.592-.273-1.178-.818-1.759-.546-.581-1.329-.871-2.349-.871-1.008 0-1.79.293-2.344.879-.556.587-.832 1.181-.832 1.784 0 .813.419 1.748 1.256 2.805-.847.614-1.444 1.208-1.794 1.784a3.465 3.465 0 0 0-.523 1.833c0 .857.308 1.56.924 2.107.616.549 1.423.823 2.42.823 1.173 0 2.444-.379 3.813-1.137L8.235 24h2.819l-2.09-2.383 1.333-1.135zm-6.736-6.389a1.02 1.02 0 0 1 .73-.286c.31 0 .559.085.747.254a.849.849 0 0 1 .283.659c0 .518-.419 1.112-1.257 1.784-.536-.651-.805-1.231-.805-1.742a.901.901 0 0 1 .302-.669M3.74 22c-.427 0-.778-.116-1.057-.349-.279-.232-.418-.487-.418-.766 0-.594.509-1.288 1.527-2.083.968 1.134 1.717 1.946 2.248 2.438-.921.507-1.686.76-2.3.76"/></svg>'};function N(e,t,i,o,F,f,h,c){var m,D=typeof e=="function"?e.options:e;return t&&(D.render=t,D.staticRenderFns=i,D._compiled=!0),{exports:e,options:D}}var nt=N({props:{i18n:{type:Object,required:!0},color:{type:String},categories:{type:Array,required:!0},activeCategory:{type:Object,default:function(){return{}}}},emits:["click"],created:function(){this.svgs=ot}},(function(){var e=this,t=e._self._c;return t("div",{staticClass:"emoji-mart-anchors",attrs:{role:"tablist"}},e._l(e.categories,(function(i){return t("button",{key:i.id,class:{"emoji-mart-anchor":!0,"emoji-mart-anchor-selected":i.id==e.activeCategory.id},style:{color:i.id==e.activeCategory.id?e.color:""},attrs:{role:"tab",type:"button","aria-label":i.name,"aria-selected":i.id==e.activeCategory.id,"data-title":e.i18n.categories[i.id]},on:{click:function(o){return e.$emit("click",i)}}},[t("div",{attrs:{"aria-hidden":"true"},domProps:{innerHTML:e._s(e.svgs[i.id])}}),e._v(" "),t("span",{staticClass:"emoji-mart-anchor-bar",style:{backgroundColor:e.color},attrs:{"aria-hidden":"true"}})])})),0)}),[]),xe=nt.exports;function te(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Be(e){var t=(function(i,o){if(k(i)!="object"||!i)return i;var F=i[Symbol.toPrimitive];if(F!==void 0){var f=F.call(i,"string");if(k(f)!="object")return f;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(i)})(e);return k(t)=="symbol"?t:t+""}function st(e,t){for(var i=0;i<t.length;i++){var o=t[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,Be(o.key),o)}}function ae(e,t,i){return t&&st(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}var gt=String.fromCodePoint||function(){var e,t,i=[],o=-1,F=arguments.length;if(!F)return"";for(var f="";++o<F;){var h=Number(arguments[o]);if(!isFinite(h)||h<0||h>1114111||Math.floor(h)!=h)throw RangeError("Invalid code point: "+h);h<=65535?i.push(h):(e=55296+((h-=65536)>>10),t=h%1024+56320,i.push(e,t)),(o+1===F||i.length>16384)&&(f+=String.fromCharCode.apply(null,i),i.length=0)}return f};function Ft(e){var t=e.split("-").map((function(i){return"0x".concat(i)}));return gt.apply(null,t)}function qe(e){return e.reduce((function(t,i){return t.indexOf(i)===-1&&t.push(i),t}),[])}function ft(e,t){var i=qe(e),o=qe(t);return i.filter((function(F){return o.indexOf(F)>=0}))}function ve(e,t){var i={};for(var o in e){var F=e[o],f=F;Object.prototype.hasOwnProperty.call(t,o)&&(f=t[o]),k(f)==="object"&&(f=ve(F,f)),i[o]=f}return i}function Ae(e,t){var i=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!i){if(Array.isArray(e)||(i=(function(m,D){if(m){if(typeof m=="string")return Se(m,D);var q=Object.prototype.toString.call(m).slice(8,-1);return q==="Object"&&m.constructor&&(q=m.constructor.name),q==="Map"||q==="Set"?Array.from(m):q==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(q)?Se(m,D):void 0}})(e))||t){i&&(e=i);var o=0,F=function(){};return{s:F,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(m){throw m},f:F}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var f,h=!0,c=!1;return{s:function(){i=i.call(e)},n:function(){var m=i.next();return h=m.done,m},e:function(m){c=!0,f=m},f:function(){try{h||i.return==null||i.return()}finally{if(c)throw f}}}}function Se(e,t){(t==null||t>e.length)&&(t=e.length);for(var i=0,o=new Array(t);i<t;i++)o[i]=e[i];return o}var dt=/^(?:\:([^\:]+)\:)(?:\:skin-tone-(\d)\:)?$/,Me=["1F3FA","1F3FB","1F3FC","1F3FD","1F3FE","1F3FF"],ht=(function(){return ae((function e(t){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=i.emojisToShowFilter,F=i.include,f=i.exclude,h=i.custom,c=i.recent,m=i.recentLength,D=m===void 0?20:m;te(this,e),this._data=je(t),this._emojisFilter=o||null,this._include=F||null,this._exclude=f||null,this._custom=h||[],this._recent=c||ee.get(D),this._emojis={},this._nativeEmojis={},this._emoticons={},this._categories=[],this._recentCategory={id:"recent",name:"Recent",emojis:[]},this._customCategory={id:"custom",name:"Custom",emojis:[]},this._searchIndex={},this.buildIndex(),Object.freeze(this)}),[{key:"buildIndex",value:function(){var e=this,t=this._data.categories;if(this._include&&(t=(t=t.filter((function(f){return e._include.includes(f.id)}))).sort((function(f,h){var c=e._include.indexOf(f.id),m=e._include.indexOf(h.id);return c<m?-1:c>m?1:0}))),t.forEach((function(f){if(e.isCategoryNeeded(f.id)){var h={id:f.id,name:f.name,emojis:[]};f.emojis.forEach((function(c){var m=e.addEmoji(c);m&&h.emojis.push(m)})),h.emojis.length&&e._categories.push(h)}})),this.isCategoryNeeded("custom")){if(this._custom.length>0){var i,o=Ae(this._custom);try{for(o.s();!(i=o.n()).done;){var F=i.value;this.addCustomEmoji(F)}}catch(f){o.e(f)}finally{o.f()}}this._customCategory.emojis.length&&this._categories.push(this._customCategory)}this.isCategoryNeeded("recent")&&(this._recent.length&&this._recent.map((function(f){var h,c=Ae(e._customCategory.emojis);try{for(c.s();!(h=c.n()).done;){var m=h.value;if(m.id===f)return void e._recentCategory.emojis.push(m)}}catch(D){c.e(D)}finally{c.f()}e.hasEmoji(f)&&e._recentCategory.emojis.push(e.emoji(f))})),this._recentCategory.emojis.length&&this._categories.unshift(this._recentCategory))}},{key:"findEmoji",value:function(e,t){var i=e.match(dt);if(i&&(e=i[1],i[2]&&(t=parseInt(i[2],10))),this._data.aliases.hasOwnProperty(e)&&(e=this._data.aliases[e]),this._emojis.hasOwnProperty(e)){var o=this._emojis[e];return t?o.getSkin(t):o}return this._nativeEmojis.hasOwnProperty(e)?this._nativeEmojis[e]:null}},{key:"categories",value:function(){return this._categories}},{key:"emoji",value:function(e){this._data.aliases.hasOwnProperty(e)&&(e=this._data.aliases[e]);var t=this._emojis[e];if(!t)throw new Error("Can not find emoji by id: "+e);return t}},{key:"firstEmoji",value:function(){var e=this._emojis[Object.keys(this._emojis)[0]];if(!e)throw new Error("Can not get first emoji");return e}},{key:"hasEmoji",value:function(e){return this._data.aliases.hasOwnProperty(e)&&(e=this._data.aliases[e]),!!this._emojis[e]}},{key:"nativeEmoji",value:function(e){return this._nativeEmojis.hasOwnProperty(e)?this._nativeEmojis[e]:null}},{key:"search",value:function(e,t){var i=this;if(t||(t=75),!e.length)return null;if(e=="-"||e=="-1")return[this.emoji("-1")];var o,F=e.toLowerCase().split(/[\s|,|\-|_]+/);F.length>2&&(F=[F[0],F[1]]),o=F.map((function(h){for(var c=i._emojis,m=i._searchIndex,D=0,q=function(){var V=h[K];if(D++,m[V]||(m[V]={}),!(m=m[V]).results){var x={};for(var G in m.results=[],m.emojis={},c){var O=c[G],wt=O._data.search,Ne=h.substr(0,D),Ge=wt.indexOf(Ne);if(Ge!=-1){var Ue=Ge+1;Ne==G&&(Ue=0),m.results.push(O),m.emojis[G]=O,x[G]=Ue}}m.results.sort((function(Et,jt){return x[Et.id]-x[jt.id]}))}c=m.emojis},K=0;K<h.length;K++)q();return m.results})).filter((function(h){return h}));var f=null;return(f=o.length>1?ft.apply(null,o):o.length?o[0]:[])&&f.length>t&&(f=f.slice(0,t)),f}},{key:"addCustomEmoji",value:function(e){var t=Object.assign({},e,{id:e.short_names[0],custom:!0});t.search||(t.search=R(t));var i=new se(t);return this._emojis[i.id]=i,this._customCategory.emojis.push(i),i}},{key:"addEmoji",value:function(e){var t=this,i=this._data.emojis[e];if(!this.isEmojiNeeded(i))return!1;var o=new se(i);if(this._emojis[e]=o,o.native&&(this._nativeEmojis[o.native]=o),o._skins)for(var F in o._skins){var f=o._skins[F];f.native&&(this._nativeEmojis[f.native]=f)}return o.emoticons&&o.emoticons.forEach((function(h){t._emoticons[h]||(t._emoticons[h]=e)})),o}},{key:"isCategoryNeeded",value:function(e){var t=!this._include||!this._include.length||this._include.indexOf(e)>-1,i=!(!this._exclude||!this._exclude.length)&&this._exclude.indexOf(e)>-1;return!(!t||i)}},{key:"isEmojiNeeded",value:function(e){return!this._emojisFilter||this._emojisFilter(e)}}])})(),se=(function(){return ae((function e(t){if(te(this,e),this._data=Object.assign({},t),this._skins=null,this._data.skin_variations)for(var i in this._skins=[],Me){var o=Me[i],F=this._data.skin_variations[o],f=Object.assign({},t);for(var h in F)f[h]=F[h];delete f.skin_variations,f.skin_tone=parseInt(i)+1,this._skins.push(new e(f))}for(var c in this._sanitized=Pe(this._data),this._sanitized)this[c]=this._sanitized[c];this.short_names=this._data.short_names,this.short_name=this._data.short_names[0],Object.freeze(this)}),[{key:"getSkin",value:function(e){return e&&e!="native"&&this._skins?this._skins[e-1]:this}},{key:"getPosition",value:function(){var e=+(1.6666666666666667*this._data.sheet_x).toFixed(2),t=+(100/60*this._data.sheet_y).toFixed(2);return"".concat(e,"% ").concat(t,"%")}},{key:"ariaLabel",value:function(){return[this.native].concat(this.short_names).filter(Boolean).join(", ")}}])})(),ge=(function(){return ae((function e(t,i,o,F,f,h,c){te(this,e),this._emoji=t,this._native=F,this._skin=i,this._set=o,this._fallback=f,this.canRender=this._canRender(),this.cssClass=this._cssClass(),this.cssStyle=this._cssStyle(c),this.content=this._content(),this.title=h===!0?t.short_name:null,this.ariaLabel=t.ariaLabel(),Object.freeze(this)}),[{key:"getEmoji",value:function(){return this._emoji.getSkin(this._skin)}},{key:"_canRender",value:function(){return this._isCustom()||this._isNative()||this._hasEmoji()||this._fallback}},{key:"_cssClass",value:function(){return["emoji-set-"+this._set,"emoji-type-"+this._emojiType()]}},{key:"_cssStyle",value:function(e){var t={};return this._isCustom()?t={backgroundImage:"url("+this.getEmoji()._data.imageUrl+")",backgroundSize:"100%",width:e+"px",height:e+"px"}:this._hasEmoji()&&!this._isNative()&&(t={backgroundPosition:this.getEmoji().getPosition()}),e&&(t=this._isNative()?Object.assign(t,{fontSize:Math.round(.95*e*10)/10+"px"}):Object.assign(t,{width:e+"px",height:e+"px"})),t}},{key:"_content",value:function(){return this._isCustom()?"":this._isNative()?this.getEmoji().native:this._hasEmoji()?"":this._fallback?this._fallback(this.getEmoji()):null}},{key:"_isNative",value:function(){return this._native}},{key:"_isCustom",value:function(){return this.getEmoji().custom}},{key:"_hasEmoji",value:function(){if(!this.getEmoji()._data)return!1;var e=this.getEmoji()._data["has_img_"+this._set];return e===void 0||e}},{key:"_emojiType",value:function(){return this._isCustom()?"custom":this._isNative()?"native":this._hasEmoji()?"image":"fallback"}}])})();function Pe(e){var t=e.name,i=e.short_names,o=e.skin_tone,F=e.skin_variations,f=e.emoticons,h=e.unified,c=e.custom,m=e.imageUrl,D=e.id||i[0],q=":".concat(D,":");return c?{id:D,name:t,colons:q,emoticons:f,custom:c,imageUrl:m}:(o&&(q+=":skin-tone-".concat(o,":")),{id:D,name:t,colons:q,emoticons:f,unified:h.toLowerCase(),skin:o||(F?1:null),native:Ft(h)})}function ze(e,t,i){return(t=Be(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}var lt={native:{type:Boolean,default:!1},tooltip:{type:Boolean,default:!1},fallback:{type:Function},skin:{type:Number,default:1},set:{type:String,default:"apple"},emoji:{type:[String,Object],required:!0},size:{type:Number,default:null},tag:{type:String,default:"span"}},mt={perLine:{type:Number,default:9},maxSearchResults:{type:Number,default:75},emojiSize:{type:Number,default:24},title:{type:String,default:"Emoji Mart™"},emoji:{type:String,default:"department_store"},color:{type:String,default:"#ae65c5"},set:{type:String,default:"apple"},skin:{type:Number,default:null},defaultSkin:{type:Number,default:1},native:{type:Boolean,default:!1},emojiTooltip:{type:Boolean,default:!1},autoFocus:{type:Boolean,default:!1},i18n:{type:Object,default:function(){return{}}},showPreview:{type:Boolean,default:!0},showSearch:{type:Boolean,default:!0},showCategories:{type:Boolean,default:!0},showSkinTones:{type:Boolean,default:!0},infiniteScroll:{type:Boolean,default:!0},pickerStyles:{type:Object,default:function(){return{}}}};function Oe(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(F){return Object.getOwnPropertyDescriptor(e,F).enumerable}))),i.push.apply(i,o)}return i}function Te(e){for(var t=1;t<arguments.length;t++){var i=arguments[t]!=null?arguments[t]:{};t%2?Oe(Object(i),!0).forEach((function(o){ze(e,o,i[o])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):Oe(Object(i)).forEach((function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(i,o))}))}return e}var Fe=N({props:Te(Te({},lt),{},{data:{type:Object,required:!0}}),emits:["click","mouseenter","mouseleave"],computed:{view:function(){return new ge(this.emojiObject,this.skin,this.set,this.native,this.fallback,this.tooltip,this.size)},sanitizedData:function(){return this.emojiObject._sanitized},title:function(){return this.tooltip?this.emojiObject.short_name:null},emojiObject:function(){return typeof this.emoji=="string"?this.data.findEmoji(this.emoji):this.emoji}},created:function(){},methods:{onClick:function(){this.$emit("click",this.emojiObject)},onMouseEnter:function(){this.$emit("mouseenter",this.emojiObject)},onMouseLeave:function(){this.$emit("mouseleave",this.emojiObject)}}},(function(){var e=this,t=e._self._c;return e.view.canRender?t(e.tag,{tag:"component",staticClass:"emoji-mart-emoji",attrs:{title:e.view.title,"aria-label":e.view.ariaLabel,"data-title":e.title},on:{mouseenter:e.onMouseEnter,mouseleave:e.onMouseLeave,click:e.onClick}},[t("span",{class:e.view.cssClass,style:e.view.cssStyle},[e._v(e._s(e.view.content))])]):e._e()}),[]).exports,He=N({props:{data:{type:Object,required:!0},i18n:{type:Object,required:!0},id:{type:String,required:!0},name:{type:String,required:!0},emojis:{type:Array},emojiProps:{type:Object,required:!0}},methods:{activeClass:function(e){return this.emojiProps.selectedEmoji&&this.emojiProps.selectedEmojiCategory&&this.emojiProps.selectedEmoji.id==e.id&&this.emojiProps.selectedEmojiCategory.id==this.id?"emoji-mart-emoji-selected":""}},computed:{isVisible:function(){return!!this.emojis},isSearch:function(){return this.name=="Search"},hasResults:function(){return this.emojis.length>0},emojiObjects:function(){var e=this;return this.emojis.map((function(t){return{emojiObject:t,emojiView:new ge(t,e.emojiProps.skin,e.emojiProps.set,e.emojiProps.native,e.emojiProps.fallback,e.emojiProps.emojiTooltip,e.emojiProps.emojiSize)}}))}},components:{Emoji:Fe}},(function(){var e=this,t=e._self._c;return e.isVisible&&(e.isSearch||e.hasResults)?t("section",{class:{"emoji-mart-category":!0,"emoji-mart-no-results":!e.hasResults},attrs:{"aria-label":e.i18n.categories[e.id]}},[t("div",{staticClass:"emoji-mart-category-label"},[t("h3",{staticClass:"emoji-mart-category-label"},[e._v(e._s(e.i18n.categories[e.id]))])]),e._v(" "),e._l(e.emojiObjects,(function(i){var o=i.emojiObject,F=i.emojiView;return[F.canRender?t("button",{key:o.id,staticClass:"emoji-mart-emoji",class:e.activeClass(o),attrs:{"aria-label":F.ariaLabel,role:"option","aria-selected":"false","aria-posinset":"1","aria-setsize":"1812",type:"button","data-title":o.short_name,title:F.title},on:{mouseenter:function(f){e.emojiProps.onEnter(F.getEmoji())},mouseleave:function(f){e.emojiProps.onLeave(F.getEmoji())},click:function(f){e.emojiProps.onClick(F.getEmoji())}}},[t("span",{class:F.cssClass,style:F.cssStyle},[e._v(e._s(F.content))])]):e._e()]})),e._v(" "),e.hasResults?e._e():t("div",[t("emoji",{attrs:{data:e.data,emoji:"sleuth_or_spy",native:e.emojiProps.native,skin:e.emojiProps.skin,set:e.emojiProps.set}}),e._v(" "),t("div",{staticClass:"emoji-mart-no-results-label"},[e._v(e._s(e.i18n.notfound))])],1)],2):e._e()}),[]).exports,Le=N({props:{skin:{type:Number,required:!0}},emits:["change"],data:function(){return{opened:!1}},methods:{onClick:function(e){this.opened&&e!=this.skin&&this.$emit("change",e),this.opened=!this.opened}}},(function(){var e=this,t=e._self._c;return t("div",{class:{"emoji-mart-skin-swatches":!0,"emoji-mart-skin-swatches-opened":e.opened}},e._l(6,(function(i){return t("span",{key:i,class:{"emoji-mart-skin-swatch":!0,"emoji-mart-skin-swatch-selected":e.skin==i}},[t("span",{class:"emoji-mart-skin emoji-mart-skin-tone-"+i,on:{click:function(o){return e.onClick(i)}}})])})),0)}),[]).exports,We=N({props:{data:{type:Object,required:!0},title:{type:String,required:!0},emoji:{type:[String,Object]},idleEmoji:{type:[String,Object],required:!0},showSkinTones:{type:Boolean,default:!0},emojiProps:{type:Object,required:!0},skinProps:{type:Object,required:!0},onSkinChange:{type:Function,required:!0}},computed:{emojiData:function(){return this.emoji?this.emoji:{}},emojiShortNames:function(){return this.emojiData.short_names},emojiEmoticons:function(){return this.emojiData.emoticons}},components:{Emoji:Fe,Skins:Le}},(function(){var e=this,t=e._self._c;return t("div",{staticClass:"emoji-mart-preview"},[e.emoji?[t("div",{staticClass:"emoji-mart-preview-emoji"},[t("emoji",{attrs:{data:e.data,emoji:e.emoji,native:e.emojiProps.native,skin:e.emojiProps.skin,set:e.emojiProps.set}})],1),e._v(" "),t("div",{staticClass:"emoji-mart-preview-data"},[t("div",{staticClass:"emoji-mart-preview-name"},[e._v(e._s(e.emoji.name))]),e._v(" "),t("div",{staticClass:"emoji-mart-preview-shortnames"},e._l(e.emojiShortNames,(function(i){return t("span",{key:i,staticClass:"emoji-mart-preview-shortname"},[e._v(":"+e._s(i)+":")])})),0),e._v(" "),t("div",{staticClass:"emoji-mart-preview-emoticons"},e._l(e.emojiEmoticons,(function(i){return t("span",{key:i,staticClass:"emoji-mart-preview-emoticon"},[e._v(e._s(i))])})),0)])]:[t("div",{staticClass:"emoji-mart-preview-emoji"},[t("emoji",{attrs:{data:e.data,emoji:e.idleEmoji,native:e.emojiProps.native,skin:e.emojiProps.skin,set:e.emojiProps.set}})],1),e._v(" "),t("div",{staticClass:"emoji-mart-preview-data"},[t("span",{staticClass:"emoji-mart-title-label"},[e._v(e._s(e.title))])]),e._v(" "),e.showSkinTones?t("div",{staticClass:"emoji-mart-preview-skins"},[t("skins",{attrs:{skin:e.skinProps.skin},on:{change:function(i){return e.onSkinChange(i)}}})],1):e._e()]],2)}),[]).exports,ct=N({props:{data:{type:Object,required:!0},i18n:{type:Object,required:!0},autoFocus:{type:Boolean,default:!1},onSearch:{type:Function,required:!0},onArrowLeft:{type:Function,required:!1},onArrowRight:{type:Function,required:!1},onArrowDown:{type:Function,required:!1},onArrowUp:{type:Function,required:!1},onEnter:{type:Function,required:!1}},emits:["search","enter","arrowUp","arrowDown","arrowRight","arrowLeft"],data:function(){return{value:""}},computed:{emojiIndex:function(){return this.data}},watch:{value:function(){this.$emit("search",this.value)}},methods:{clear:function(){this.value=""}},mounted:function(){var e=this.$el.querySelector("input");this.autoFocus&&e.focus()}},(function(){var e=this,t=e._self._c;return t("div",{staticClass:"emoji-mart-search"},[t("input",{directives:[{name:"model",rawName:"v-model",value:e.value,expression:"value"}],attrs:{type:"text",placeholder:e.i18n.search,role:"textbox","aria-autocomplete":"list","aria-owns":"emoji-mart-list","aria-label":"Search for an emoji","aria-describedby":"emoji-mart-search-description"},domProps:{value:e.value},on:{keydown:[function(i){return!i.type.indexOf("key")&&e._k(i.keyCode,"left",37,i.key,["Left","ArrowLeft"])||"button"in i&&i.button!==0?null:function(o){return e.$emit("arrowLeft",o)}.apply(null,arguments)},function(i){return!i.type.indexOf("key")&&e._k(i.keyCode,"right",39,i.key,["Right","ArrowRight"])||"button"in i&&i.button!==2?null:function(){return e.$emit("arrowRight")}.apply(null,arguments)},function(i){return!i.type.indexOf("key")&&e._k(i.keyCode,"down",40,i.key,["Down","ArrowDown"])?null:function(){return e.$emit("arrowDown")}.apply(null,arguments)},function(i){return!i.type.indexOf("key")&&e._k(i.keyCode,"up",38,i.key,["Up","ArrowUp"])?null:function(o){return e.$emit("arrowUp",o)}.apply(null,arguments)},function(i){return!i.type.indexOf("key")&&e._k(i.keyCode,"enter",13,i.key,"Enter")?null:function(){return e.$emit("enter")}.apply(null,arguments)}],input:function(i){i.target.composing||(e.value=i.target.value)}}}),e._v(" "),t("span",{staticClass:"hidden",attrs:{id:"emoji-picker-search-description"}},[e._v(`Use the left, right, up and down arrow keys to navigate the emoji search - results.`)])])}),[]),Ie=ct.exports;function fe(e,t){(t==null||t>e.length)&&(t=e.length);for(var i=0,o=new Array(t);i<t;i++)o[i]=e[i];return o}s(537);var pt=(function(){return ae((function e(t){var i,o;te(this,e),this._vm=t,this._data=t.data,this._perLine=t.perLine,this._categories=[],(i=this._categories).push.apply(i,(function(F){if(Array.isArray(F))return fe(F)})(o=this._data.categories())||(function(F){if(typeof Symbol<"u"&&F[Symbol.iterator]!=null||F["@@iterator"]!=null)return Array.from(F)})(o)||(function(F,f){if(F){if(typeof F=="string")return fe(F,f);var h=Object.prototype.toString.call(F).slice(8,-1);return h==="Object"&&F.constructor&&(h=F.constructor.name),h==="Map"||h==="Set"?Array.from(F):h==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(h)?fe(F,f):void 0}})(o)||(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.`)})()),this._categories=this._categories.filter((function(F){return F.emojis.length>0})),this._categories[0].first=!0,Object.freeze(this._categories),this.activeCategory=this._categories[0],this.searchEmojis=null,this.previewEmoji=null,this.previewEmojiCategoryIdx=0,this.previewEmojiIdx=-1}),[{key:"onScroll",value:function(){var e=this._vm.$refs.scroll;if(e){for(var t=e.scrollTop,i=this.filteredCategories[0],o=0,F=this.filteredCategories.length;o<F;o++){var f=this.filteredCategories[o],h=this._vm.getCategoryComponent(o);if(h&&h.$el.offsetTop-50>t)break;i=f}this.activeCategory=i}}},{key:"allCategories",get:function(){return this._categories}},{key:"filteredCategories",get:function(){return this.searchEmojis?[{id:"search",name:"Search",emojis:this.searchEmojis}]:this._categories.filter((function(e){return e.emojis.length>0}))}},{key:"previewEmojiCategory",get:function(){return this.previewEmojiCategoryIdx>=0?this.filteredCategories[this.previewEmojiCategoryIdx]:null}},{key:"onAnchorClick",value:function(e){var t=this;if(!this.searchEmojis){var i=this.filteredCategories.indexOf(e),o=this._vm.getCategoryComponent(i);this._vm.infiniteScroll?(function(){if(o){var F=o.$el.offsetTop;e.first&&(F=0),t._vm.$refs.scroll.scrollTop=F}})():this.activeCategory=this.filteredCategories[i]}}},{key:"onSearch",value:function(e){var t=this._data.search(e,this.maxSearchResults);this.searchEmojis=t,this.previewEmojiCategoryIdx=0,this.previewEmojiIdx=0,this.updatePreviewEmoji()}},{key:"onEmojiEnter",value:function(e){this.previewEmoji=e,this.previewEmojiIdx=-1,this.previewEmojiCategoryIdx=-1}},{key:"onEmojiLeave",value:function(e){this.previewEmoji=null}},{key:"onArrowLeft",value:function(){this.previewEmojiIdx>0?this.previewEmojiIdx-=1:(this.previewEmojiCategoryIdx-=1,this.previewEmojiCategoryIdx<0?this.previewEmojiCategoryIdx=0:this.previewEmojiIdx=this.filteredCategories[this.previewEmojiCategoryIdx].emojis.length-1),this.updatePreviewEmoji()}},{key:"onArrowRight",value:function(){this.previewEmojiIdx<this.emojisLength(this.previewEmojiCategoryIdx)-1?this.previewEmojiIdx+=1:(this.previewEmojiCategoryIdx+=1,this.previewEmojiCategoryIdx>=this.filteredCategories.length?this.previewEmojiCategoryIdx=this.filteredCategories.length-1:this.previewEmojiIdx=0),this.updatePreviewEmoji()}},{key:"onArrowDown",value:function(){if(this.previewEmojiIdx==-1)return this.onArrowRight();var e=this.filteredCategories[this.previewEmojiCategoryIdx].emojis.length,t=this._perLine;this.previewEmojiIdx+t>e&&(t=e%this._perLine);for(var i=0;i<t;i++)this.onArrowRight();this.updatePreviewEmoji()}},{key:"onArrowUp",value:function(){var e=this._perLine;this.previewEmojiIdx-e<0&&(e=this.previewEmojiCategoryIdx>0?this.filteredCategories[this.previewEmojiCategoryIdx-1].emojis.length%this._perLine:0);for(var t=0;t<e;t++)this.onArrowLeft();this.updatePreviewEmoji()}},{key:"updatePreviewEmoji",value:function(){var e=this;this.previewEmoji=this.filteredCategories[this.previewEmojiCategoryIdx].emojis[this.previewEmojiIdx],this._vm.$nextTick((function(){var t=e._vm.$refs.scroll,i=t.querySelector(".emoji-mart-emoji-selected"),o=t.offsetTop-t.offsetHeight;i&&i.offsetTop+i.offsetHeight>o+t.scrollTop&&(t.scrollTop+=i.offsetHeight),i&&i.offsetTop<t.scrollTop&&(t.scrollTop-=i.offsetHeight)}))}},{key:"emojisLength",value:function(e){return e==-1?0:this.filteredCategories[e].emojis.length}}])})();function Re(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(F){return Object.getOwnPropertyDescriptor(e,F).enumerable}))),i.push.apply(i,o)}return i}function de(e){for(var t=1;t<arguments.length;t++){var i=arguments[t]!=null?arguments[t]:{};t%2?Re(Object(i),!0).forEach((function(o){ze(e,o,i[o])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):Re(Object(i)).forEach((function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(i,o))}))}return e}var bt={search:"Search",notfound:"No Emoji Found",categories:{search:"Search Results",recent:"Frequently Used",smileys:"Smileys & Emotion",people:"People & Body",nature:"Animals & Nature",foods:"Food & Drink",activity:"Activity",places:"Travel & Places",objects:"Objects",symbols:"Symbols",flags:"Flags",custom:"Custom"}},yt={props:de(de({},mt),{},{data:{type:Object,required:!0}}),emits:["select","skin-change"],data:function(){return{activeSkin:this.skin||B.get("skin")||this.defaultSkin,view:new pt(this)}},computed:{customStyles:function(){return de({width:this.calculateWidth+"px"},this.pickerStyles)},emojiProps:function(){return{native:this.native,skin:this.activeSkin,set:this.set,emojiTooltip:this.emojiTooltip,emojiSize:this.emojiSize,selectedEmoji:this.view.previewEmoji,selectedEmojiCategory:this.view.previewEmojiCategory,onEnter:this.onEmojiEnter.bind(this),onLeave:this.onEmojiLeave.bind(this),onClick:this.onEmojiClick.bind(this)}},skinProps:function(){return{skin:this.activeSkin}},calculateWidth:function(){return this.perLine*(this.emojiSize+12)+12+2+(function(){if(typeof document>"u")return 0;var e=document.createElement("div");e.style.width="100px",e.style.height="100px",e.style.overflow="scroll",e.style.position="absolute",e.style.top="-9999px",document.body.appendChild(e);var t=e.offsetWidth-e.clientWidth;return document.body.removeChild(e),t})()},filteredCategories:function(){return this.view.filteredCategories},mergedI18n:function(){return Object.freeze(ve(bt,this.i18n))},idleEmoji:function(){try{return this.data.emoji(this.emoji)}catch(e){return console.error("Default preview emoji `"+this.emoji+"` is not available, check the Picker `emoji` property"),console.error(e),this.data.firstEmoji()}},isSearching:function(){return this.view.searchEmojis!=null}},watch:{skin:function(){this.onSkinChange(this.skin)}},methods:{onScroll:function(){this.infiniteScroll&&!this.waitingForPaint&&(this.waitingForPaint=!0,window.requestAnimationFrame(this.onScrollPaint.bind(this)))},onScrollPaint:function(){this.waitingForPaint=!1,this.view.onScroll()},onAnchorClick:function(e){this.view.onAnchorClick(e)},onSearch:function(e){this.view.onSearch(e)},onEmojiEnter:function(e){this.view.onEmojiEnter(e)},onEmojiLeave:function(e){this.view.onEmojiLeave(e)},onArrowLeft:function(e){var t=this.view.previewEmojiIdx;this.view.onArrowLeft(),e&&this.view.previewEmojiIdx!==t&&e.preventDefault()},onArrowRight:function(){this.view.onArrowRight()},onArrowDown:function(){this.view.onArrowDown()},onArrowUp:function(e){this.view.onArrowUp(),e.preventDefault()},onEnter:function(){this.view.previewEmoji&&(this.$emit("select",this.view.previewEmoji),ee.add(this.view.previewEmoji))},onEmojiClick:function(e){this.$emit("select",e),ee.add(e)},onTextSelect:function(e){e.stopPropagation()},onSkinChange:function(e){this.activeSkin=e,B.update({skin:e}),this.$emit("skin-change",e)},getCategoryComponent:function(e){var t=this.$refs["categories_"+e];return t&&"0"in t?t[0]:t}},components:{Anchors:xe,Category:He,Preview:We,Search:Ie}},kt=N(yt,(function(){var e=this,t=e._self._c;return t("section",{staticClass:"emoji-mart emoji-mart-static",style:e.customStyles},[e.showCategories?t("div",{staticClass:"emoji-mart-bar emoji-mart-bar-anchors"},[t("anchors",{attrs:{data:e.data,i18n:e.mergedI18n,color:e.color,categories:e.view.allCategories,"active-category":e.view.activeCategory},on:{click:e.onAnchorClick}})],1):e._e(),e._v(" "),e._t("searchTemplate",(function(){return[e.showSearch?t("search",{ref:"search",attrs:{data:e.data,i18n:e.mergedI18n,"auto-focus":e.autoFocus,"on-search":e.onSearch},on:{search:e.onSearch,arrowLeft:e.onArrowLeft,arrowRight:e.onArrowRight,arrowDown:e.onArrowDown,arrowUp:e.onArrowUp,enter:e.onEnter,select:e.onTextSelect}}):e._e()]}),{data:e.data,i18n:e.i18n,autoFocus:e.autoFocus,onSearch:e.onSearch}),e._v(" "),t("div",{ref:"scroll",staticClass:"emoji-mart-scroll",attrs:{role:"tabpanel"},on:{scroll:e.onScroll}},[t("div",{ref:"scrollContent",attrs:{id:"emoji-mart-list",role:"listbox","aria-expanded":"true"}},[e._t("customCategory"),e._v(" "),e._l(e.view.filteredCategories,(function(i,o){return t("category",{directives:[{name:"show",rawName:"v-show",value:e.infiniteScroll||i==e.view.activeCategory||e.isSearching,expression:"infiniteScroll || category == view.activeCategory || isSearching"}],key:i.id,ref:"categories_"+o,refInFor:!0,attrs:{data:e.data,i18n:e.mergedI18n,id:i.id,name:i.name,emojis:i.emojis,"emoji-props":e.emojiProps}})}))],2)]),e._v(" "),e._t("previewTemplate",(function(){return[e.showPreview?t("div",{staticClass:"emoji-mart-bar emoji-mart-bar-preview"},[t("preview",{attrs:{data:e.data,title:e.title,emoji:e.view.previewEmoji,"idle-emoji":e.idleEmoji,"show-skin-tones":e.showSkinTones,"emoji-props":e.emojiProps,"skin-props":e.skinProps,"on-skin-change":e.onSkinChange}})],1):e._e()]}),{data:e.data,title:e.title,emoji:e.view.previewEmoji,idleEmoji:e.idleEmoji,showSkinTones:e.showSkinTones,emojiProps:e.emojiProps,skinProps:e.skinProps,onSkinChange:e.onSkinChange})],2)}),[]),Dt=kt.exports})(),u})()}))})(ke)),ke.exports}Fi();const ut=Rt("nextcloud-vue").persist(!0).build();function fi(){const _=Number.parseInt(ut.getItem("NcEmojiPicker::currentSkinTone")??"1");return Math.min(Math.max(_,1),6)}function di(_){_=Math.min(Math.max(_,1),6),ut.setItem("NcEmojiPicker::currentSkinTone",_.toString())}const hi={name:"CircleIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},li=["aria-hidden","aria-label"],mi=["fill","width","height"],ci={d:"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z"},pi={key:0};function bi(_,a,r,n,s,u){return p(),b("span",Ze(_.$attrs,{"aria-hidden":r.title?null:"true","aria-label":r.title,class:"material-design-icon circle-icon",role:"img",onClick:a[0]||(a[0]=g=>_.$emit("click",g))}),[(p(),b("svg",{fill:r.fillColor,class:"material-design-icon__svg",width:r.size,height:r.size,viewBox:"0 0 24 24"},[y("path",ci,[r.title?(p(),b("title",pi,T(r.title),1)):L("",!0)])],8,mi))],16,li)}const yi=Qe(hi,[["render",bi]]);Ot(Wt,Lt,Ht,Tt);let me;const ki={search:j("Search emoji"),notfound:j("No emoji found"),categories:{search:j("Search results"),recent:j("Frequently used"),smileys:j("Smileys & Emotion"),people:j("People & Body"),nature:j("Animals & Nature"),foods:j("Food & Drink"),activity:j("Activities"),places:j("Travel & Places"),objects:j("Objects"),symbols:j("Symbols"),flags:j("Flags"),custom:j("Custom")}},Je=[new J(255,222,52,j("Neutral skin color")),new J(228,205,166,j("Light skin tone")),new J(250,221,192,j("Medium light skin tone")),new J(174,129,87,j("Medium skin tone")),new J(158,113,88,j("Medium dark skin tone")),new J(96,79,69,j("Dark skin tone"))],Di={name:"NcEmojiPicker",components:{IconCircle:yi,NcButton:Nt,NcColorPicker:It,NcPopover:Mt,NcTextField:Gt,Emoji:Ee,Picker:si},props:{activeSet:{type:String,default:"native"},showPreview:{type:Boolean,default:!1},allowUnselect:{type:Boolean,default:!1},selectedEmoji:{type:String,default:""},previewFallbackEmoji:{type:String,default:"grinning"},previewFallbackName:{type:String,default:j("Pick an emoji")},closeOnSelect:{type:Boolean,default:!0},container:{type:[Boolean,String,Object,Element],default:"body"}},emits:["select","selectData","unselect"],setup(){return me||(me=new pa(Jt)),{emojiIndex:me,skinTonePalette:Je,i18n:ki}},data(){const _=fi();return{currentColor:Je[_-1],currentSkinTone:_,search:"",open:!1}},computed:{native(){return this.activeSet==="native"}},created(){zt(()=>this.open)},methods:{t:j,clearSearch(){this.search="",this.$refs.search.focus()},onChangeSkinTone(_){const a=this.skinTonePalette.findIndex(r=>r.color.toLowerCase()===_.toLowerCase());a>-1&&(this.currentSkinTone=a+1,this.currentColor=this.skinTonePalette[a],di(this.currentSkinTone))},select(_){this.$emit("select",_.native),this.$emit("selectData",_),this.closeOnSelect&&(this.open=!1)},unselect(){this.$emit("unselect")},afterShow(){this.$refs.search.focus()},afterHide(){(!document.activeElement||this.$refs.picker.$el.contains(document.activeElement)||!Pt(document.activeElement))&&this.$refs.popover.$el.querySelector('button, [role="button"]')?.focus()},handleTabNavigationSkippingEmojis(_){const a=_.target,r=Array.from(this.$refs.picker.$el.querySelectorAll("button:not(.emoji-mart-emoji), input"));_.shiftKey?(r.findLast(n=>a.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_PRECEDING)||r.at(-1)).focus():(r.find(n=>a.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_FOLLOWING)||r[0]).focus()},async callPickerArrowHandlerWithScrollFix(_,a){this.$refs.picker[_](a),await this.$nextTick(),this.$refs.picker.$el.querySelector(".emoji-mart-emoji-selected")?.scrollIntoView({block:"center",inline:"center"})}}},wi={class:"nc-emoji-picker-container"},Ei={class:"search__wrapper"},ji={class:"emoji-mart-category-label"},Ci={class:"emoji-mart-category-label"};function xi(_,a,r,n,s,u){const g=S("NcTextField"),d=S("IconCircle"),l=S("NcButton"),C=S("NcColorPicker"),w=S("Emoji"),A=S("Picker"),B=S("NcPopover");return p(),re(B,{ref:"popover",shown:s.open,"onUpdate:shown":a[6]||(a[6]=k=>s.open=k),container:r.container,"popup-role":"dialog","no-focus-trap":!0,onAfterShow:u.afterShow,onAfterHide:u.afterHide},{trigger:U(k=>[ie(_.$slots,"default",At(St(k)),void 0,!0)]),default:U(()=>[y("div",wi,[M(A,Ze({ref:"picker",color:"var(--color-primary-element)",data:n.emojiIndex,emoji:r.previewFallbackEmoji,i18n:n.i18n,native:u.native,"emoji-size":20,"per-line":8,"picker-styles":{width:"320px"},"show-preview":r.showPreview,skin:s.currentSkinTone,"show-skin-tones":!1,title:r.previewFallbackName,role:"dialog","aria-modal":"true","aria-label":u.t("Emoji picker")},_.$attrs,{onKeydown:z(qt(u.handleTabNavigationSkippingEmojis,["prevent"]),["tab"]),onSelect:u.select}),vt({searchTemplate:U(({onSearch:k})=>[y("div",Ei,[M(g,{ref:"search",modelValue:s.search,"onUpdate:modelValue":[a[0]||(a[0]=E=>s.search=E),E=>k(s.search)],class:"search",label:u.t("Search"),"label-visible":!0,placeholder:n.i18n.search,"trailing-button-icon":"close","trailing-button-label":u.t("Clear search"),"show-trailing-button":s.search!=="",onKeydown:[a[1]||(a[1]=z(E=>u.callPickerArrowHandlerWithScrollFix("onArrowLeft",E),["left"])),a[2]||(a[2]=z(E=>u.callPickerArrowHandlerWithScrollFix("onArrowRight",E),["right"])),a[3]||(a[3]=z(E=>u.callPickerArrowHandlerWithScrollFix("onArrowDown",E),["down"])),a[4]||(a[4]=z(E=>u.callPickerArrowHandlerWithScrollFix("onArrowUp",E),["up"])),a[5]||(a[5]=z(E=>_.$refs.picker.onEnter(E),["enter"]))],onTrailingButtonClick:E=>{u.clearSearch(),k("")}},null,8,["modelValue","label","placeholder","trailing-button-label","show-trailing-button","onTrailingButtonClick","onUpdate:modelValue"]),M(C,{"palette-only":"",container:r.container,palette:n.skinTonePalette,"model-value":s.currentColor.color,"onUpdate:modelValue":u.onChangeSkinTone},{default:U(()=>[M(l,{"aria-label":u.t("Skin tone"),variant:"tertiary-no-background"},{icon:U(()=>[M(d,{style:Z({color:s.currentColor.color}),title:s.currentColor.name,size:20},null,8,["style","title"])]),_:1},8,["aria-label"])]),_:1},8,["container","palette","model-value","onUpdate:modelValue"])])]),_:2},[r.allowUnselect&&r.selectedEmoji?{name:"customCategory",fn:U(()=>[y("div",ji,[y("h3",Ci,T(u.t("Selected")),1)]),M(w,{class:"emoji-selected",data:n.emojiIndex,emoji:r.selectedEmoji,native:"",size:32,onClick:u.unselect},null,8,["data","emoji","onClick"]),M(w,{class:"emoji-delete",data:n.emojiIndex,emoji:":x:",native:"",size:10,onClick:u.unselect},null,8,["data","onClick"])]),key:"0"}:void 0]),1040,["data","emoji","i18n","native","show-preview","skin","title","aria-label","onKeydown","onSelect"])])]),_:3},8,["shown","container","onAfterShow","onAfterHide"])}const Ti=Qe(Di,[["render",xi],["__scopeId","data-v-f2f99131"]]);export{Ti as N}; -//# sourceMappingURL=NcEmojiPicker-pM4Pg2yq-C_Dpe77I.chunk.mjs.map diff --git a/dist/NcInputField-Bwsh2aHY-CHbAfY0u.chunk.mjs b/dist/NcInputField-Bwsh2aHY-CHbAfY0u.chunk.mjs deleted file mode 100644 index c553d078d68e5..0000000000000 --- a/dist/NcInputField-Bwsh2aHY-CHbAfY0u.chunk.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import{b as q,p as h,q as F,D as L,v as N,x as n,j as u,o as i,k as p,l as d,E as z,c as t,z as A,t as v,G as D,m as y,w as E,u as s,g as G,n as M}from"./runtime-dom.esm-bundler-BrYCUcZF.chunk.mjs";import{i as g,c as S,d as m,a as o,e as x}from"./NcNoteCard-CVhtNL04-hwuc093N.chunk.mjs";import{_ as H,c as J}from"./createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs";const K={class:"input-field__main-wrapper"},P=["id","aria-describedby","disabled","placeholder","type","value"],Q=["for"],R={class:"input-field__icon input-field__icon--leading"},U={key:2,class:"input-field__icon input-field__icon--trailing"},W=["id"],X=q({inheritAttrs:!1,__name:"NcInputField",props:h({class:{default:""},inputClass:{default:""},id:{default:()=>J()},label:{default:void 0},labelOutside:{type:Boolean},type:{default:"text"},placeholder:{default:void 0},showTrailingButton:{type:Boolean},trailingButtonLabel:{default:void 0},success:{type:Boolean},error:{type:Boolean},helperText:{default:""},disabled:{type:Boolean},pill:{type:Boolean}},{modelValue:{required:!0},modelModifiers:{}}),emits:h(["trailingButtonClick"],["update:modelValue"]),setup(c,{expose:k,emit:B}){const r=F(c,"modelValue"),l=c,$=B;k({focus:O,select:I});const f=L(),b=N("input"),T=n(()=>l.showTrailingButton||l.success),w=n(()=>{if(l.placeholder)return l.placeholder;if(l.label)return g?l.label:""}),_=n(()=>l.label||l.labelOutside),C=n(()=>{const e=[];return l.helperText&&e.push(`${l.id}-helper-text`),f["aria-describedby"]&&e.push(String(f["aria-describedby"])),e.join(" ")||void 0});function O(e){b.value.focus(e)}function I(){b.value.select()}function V(e){const a=e.target;r.value=l.type==="number"&&typeof r.value=="number"?parseFloat(a.value):a.value}return(e,a)=>(i(),u("div",{class:M(["input-field",[{"input-field--disabled":e.disabled,"input-field--error":e.error,"input-field--label-outside":e.labelOutside||!_.value,"input-field--leading-icon":!!e.$slots.icon,"input-field--trailing-icon":T.value,"input-field--pill":e.pill,"input-field--success":e.success,"input-field--legacy":s(g)},e.$props.class]])},[p("div",K,[p("input",A(e.$attrs,{id:e.id,ref:"input","aria-describedby":C.value,"aria-live":"polite",class:["input-field__input",e.inputClass],disabled:e.disabled,placeholder:w.value,type:e.type,value:r.value.toString(),onInput:V}),null,16,P),!e.labelOutside&&_.value?(i(),u("label",{key:0,class:"input-field__label",for:e.id},v(e.label),9,Q)):d("",!0),z(p("div",R,[y(e.$slots,"icon",{},void 0,!0)],512),[[D,!!e.$slots.icon]]),e.showTrailingButton?(i(),t(S,{key:1,class:"input-field__trailing-button","aria-label":e.trailingButtonLabel,disabled:e.disabled,variant:"tertiary-no-background",onClick:a[0]||(a[0]=j=>$("trailingButtonClick",j))},{icon:E(()=>[y(e.$slots,"trailing-button-icon",{},void 0,!0)]),_:3},8,["aria-label","disabled"])):e.success||e.error?(i(),u("div",U,[e.success?(i(),t(o,{key:0,path:s(m)},null,8,["path"])):(i(),t(o,{key:1,path:s(x)},null,8,["path"]))])):d("",!0)]),e.helperText?(i(),u("p",{key:0,id:`${e.id}-helper-text`,class:"input-field__helper-text-message"},[e.success?(i(),t(o,{key:0,class:"input-field__helper-text-message__icon",path:s(m),inline:""},null,8,["path"])):e.error?(i(),t(o,{key:1,class:"input-field__helper-text-message__icon",path:s(x),inline:""},null,8,["path"])):d("",!0),G(" "+v(e.helperText),1)],8,W)):d("",!0)],2))}}),le=H(X,[["__scopeId","data-v-a0e80f48"]]);export{le as N}; -//# sourceMappingURL=NcInputField-Bwsh2aHY-CHbAfY0u.chunk.mjs.map diff --git a/dist/NcInputField-Bwsh2aHY-Cz27INBW.chunk.mjs b/dist/NcInputField-Bwsh2aHY-Cz27INBW.chunk.mjs new file mode 100644 index 0000000000000..ed7ec521e1035 --- /dev/null +++ b/dist/NcInputField-Bwsh2aHY-Cz27INBW.chunk.mjs @@ -0,0 +1,2 @@ +import{b as j,p as h,q,D as F,v as L,x as n,j as u,o as i,k as p,l as d,E as z,c as t,z as A,t as v,G as D,m as y,w as E,u as s,g as G,n as M}from"./runtime-dom.esm-bundler-DdtEg5E9.chunk.mjs";import{i as g,b as S,c as m,N as o,d as x}from"./AccountOutline-BlW-6JqD.chunk.mjs";import{_ as H,c as J}from"./createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs";const K={class:"input-field__main-wrapper"},P=["id","aria-describedby","disabled","placeholder","type","value"],Q=["for"],R={class:"input-field__icon input-field__icon--leading"},U={key:2,class:"input-field__icon input-field__icon--trailing"},W=["id"],X=j({inheritAttrs:!1,__name:"NcInputField",props:h({class:{default:""},inputClass:{default:""},id:{default:()=>J()},label:{default:void 0},labelOutside:{type:Boolean},type:{default:"text"},placeholder:{default:void 0},showTrailingButton:{type:Boolean},trailingButtonLabel:{default:void 0},success:{type:Boolean},error:{type:Boolean},helperText:{default:""},disabled:{type:Boolean},pill:{type:Boolean}},{modelValue:{required:!0},modelModifiers:{}}),emits:h(["trailingButtonClick"],["update:modelValue"]),setup(c,{expose:k,emit:B}){const r=q(c,"modelValue"),l=c,$=B;k({focus:O,select:I});const f=F(),b=L("input"),T=n(()=>l.showTrailingButton||l.success),w=n(()=>{if(l.placeholder)return l.placeholder;if(l.label)return g?l.label:""}),_=n(()=>l.label||l.labelOutside),C=n(()=>{const e=[];return l.helperText&&e.push(`${l.id}-helper-text`),f["aria-describedby"]&&e.push(String(f["aria-describedby"])),e.join(" ")||void 0});function O(e){b.value.focus(e)}function I(){b.value.select()}function N(e){const a=e.target;r.value=l.type==="number"&&typeof r.value=="number"?parseFloat(a.value):a.value}return(e,a)=>(i(),u("div",{class:M(["input-field",[{"input-field--disabled":e.disabled,"input-field--error":e.error,"input-field--label-outside":e.labelOutside||!_.value,"input-field--leading-icon":!!e.$slots.icon,"input-field--trailing-icon":T.value,"input-field--pill":e.pill,"input-field--success":e.success,"input-field--legacy":s(g)},e.$props.class]])},[p("div",K,[p("input",A(e.$attrs,{id:e.id,ref:"input","aria-describedby":C.value,"aria-live":"polite",class:["input-field__input",e.inputClass],disabled:e.disabled,placeholder:w.value,type:e.type,value:r.value.toString(),onInput:N}),null,16,P),!e.labelOutside&&_.value?(i(),u("label",{key:0,class:"input-field__label",for:e.id},v(e.label),9,Q)):d("",!0),z(p("div",R,[y(e.$slots,"icon",{},void 0,!0)],512),[[D,!!e.$slots.icon]]),e.showTrailingButton?(i(),t(S,{key:1,class:"input-field__trailing-button","aria-label":e.trailingButtonLabel,disabled:e.disabled,variant:"tertiary-no-background",onClick:a[0]||(a[0]=V=>$("trailingButtonClick",V))},{icon:E(()=>[y(e.$slots,"trailing-button-icon",{},void 0,!0)]),_:3},8,["aria-label","disabled"])):e.success||e.error?(i(),u("div",U,[e.success?(i(),t(o,{key:0,path:s(m)},null,8,["path"])):(i(),t(o,{key:1,path:s(x)},null,8,["path"]))])):d("",!0)]),e.helperText?(i(),u("p",{key:0,id:`${e.id}-helper-text`,class:"input-field__helper-text-message"},[e.success?(i(),t(o,{key:0,class:"input-field__helper-text-message__icon",path:s(m),inline:""},null,8,["path"])):e.error?(i(),t(o,{key:1,class:"input-field__helper-text-message__icon",path:s(x),inline:""},null,8,["path"])):d("",!0),G(" "+v(e.helperText),1)],8,W)):d("",!0)],2))}}),le=H(X,[["__scopeId","data-v-a0e80f48"]]);export{le as N}; +//# sourceMappingURL=NcInputField-Bwsh2aHY-Cz27INBW.chunk.mjs.map diff --git a/dist/NcInputField-Bwsh2aHY-CHbAfY0u.chunk.mjs.license b/dist/NcInputField-Bwsh2aHY-Cz27INBW.chunk.mjs.license similarity index 100% rename from dist/NcInputField-Bwsh2aHY-CHbAfY0u.chunk.mjs.license rename to dist/NcInputField-Bwsh2aHY-Cz27INBW.chunk.mjs.license diff --git a/dist/NcInputField-Bwsh2aHY-CHbAfY0u.chunk.mjs.map b/dist/NcInputField-Bwsh2aHY-Cz27INBW.chunk.mjs.map similarity index 98% rename from dist/NcInputField-Bwsh2aHY-CHbAfY0u.chunk.mjs.map rename to dist/NcInputField-Bwsh2aHY-Cz27INBW.chunk.mjs.map index d1b1e992ad826..51ee3077695b2 100644 --- a/dist/NcInputField-Bwsh2aHY-CHbAfY0u.chunk.mjs.map +++ b/dist/NcInputField-Bwsh2aHY-Cz27INBW.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"NcInputField-Bwsh2aHY-CHbAfY0u.chunk.mjs","sources":["../node_modules/@nextcloud/vue/dist/chunks/NcInputField-Bwsh2aHY.mjs"],"sourcesContent":["import '../assets/NcInputField-B9DSDOEd.css';\nimport { defineComponent, mergeModels, useModel, useAttrs, useTemplateRef, computed, warn, createElementBlock, openBlock, normalizeClass, unref, createElementVNode, createCommentVNode, withDirectives, createBlock, mergeProps, toDisplayString, renderSlot, vShow, withCtx, createTextVNode } from \"vue\";\nimport { d as mdiCheck, f as mdiAlertCircleOutline } from \"./mdi-XFJRiRqJ.mjs\";\nimport { N as NcButton } from \"./NcButton-Dc8V4Urj.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-BvLanNaW.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { i as isLegacy } from \"./legacy-DcjXBL_t.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = { class: \"input-field__main-wrapper\" };\nconst _hoisted_2 = [\"id\", \"aria-describedby\", \"disabled\", \"placeholder\", \"type\", \"value\"];\nconst _hoisted_3 = [\"for\"];\nconst _hoisted_4 = { class: \"input-field__icon input-field__icon--leading\" };\nconst _hoisted_5 = {\n key: 2,\n class: \"input-field__icon input-field__icon--trailing\"\n};\nconst _hoisted_6 = [\"id\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...{\n inheritAttrs: false\n },\n __name: \"NcInputField\",\n props: /* @__PURE__ */ mergeModels({\n class: { default: \"\" },\n inputClass: { default: \"\" },\n id: { default: () => createElementId() },\n label: { default: void 0 },\n labelOutside: { type: Boolean },\n type: { default: \"text\" },\n placeholder: { default: void 0 },\n showTrailingButton: { type: Boolean },\n trailingButtonLabel: { default: void 0 },\n success: { type: Boolean },\n error: { type: Boolean },\n helperText: { default: \"\" },\n disabled: { type: Boolean },\n pill: { type: Boolean }\n }, {\n \"modelValue\": { required: true },\n \"modelModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"trailingButtonClick\"], [\"update:modelValue\"]),\n setup(__props, { expose: __expose, emit: __emit }) {\n const modelValue = useModel(__props, \"modelValue\");\n const props = __props;\n const emit = __emit;\n __expose({\n focus,\n select\n });\n const attrs = useAttrs();\n const inputElement = useTemplateRef(\"input\");\n const hasTrailingIcon = computed(() => props.showTrailingButton || props.success);\n const internalPlaceholder = computed(() => {\n if (props.placeholder) {\n return props.placeholder;\n }\n if (props.label) {\n return isLegacy ? props.label : \"\";\n }\n return void 0;\n });\n const isValidLabel = computed(() => {\n const isValidLabel2 = props.label || props.labelOutside;\n if (!isValidLabel2) {\n warn(\"You need to add a label to the NcInputField component. Either use the prop label or use an external one, as per the example in the documentation.\");\n }\n return isValidLabel2;\n });\n const ariaDescribedby = computed(() => {\n const ariaDescribedby2 = [];\n if (props.helperText) {\n ariaDescribedby2.push(`${props.id}-helper-text`);\n }\n if (attrs[\"aria-describedby\"]) {\n ariaDescribedby2.push(String(attrs[\"aria-describedby\"]));\n }\n return ariaDescribedby2.join(\" \") || void 0;\n });\n function focus(options) {\n inputElement.value.focus(options);\n }\n function select() {\n inputElement.value.select();\n }\n function handleInput(event) {\n const target = event.target;\n modelValue.value = props.type === \"number\" && typeof modelValue.value === \"number\" ? parseFloat(target.value) : target.value;\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"input-field\", [{\n \"input-field--disabled\": _ctx.disabled,\n \"input-field--error\": _ctx.error,\n \"input-field--label-outside\": _ctx.labelOutside || !isValidLabel.value,\n \"input-field--leading-icon\": !!_ctx.$slots.icon,\n \"input-field--trailing-icon\": hasTrailingIcon.value,\n \"input-field--pill\": _ctx.pill,\n \"input-field--success\": _ctx.success,\n \"input-field--legacy\": unref(isLegacy)\n }, _ctx.$props.class]])\n }, [\n createElementVNode(\"div\", _hoisted_1, [\n createElementVNode(\"input\", mergeProps(_ctx.$attrs, {\n id: _ctx.id,\n ref: \"input\",\n \"aria-describedby\": ariaDescribedby.value,\n \"aria-live\": \"polite\",\n class: [\"input-field__input\", _ctx.inputClass],\n disabled: _ctx.disabled,\n placeholder: internalPlaceholder.value,\n type: _ctx.type,\n value: modelValue.value.toString(),\n onInput: handleInput\n }), null, 16, _hoisted_2),\n !_ctx.labelOutside && isValidLabel.value ? (openBlock(), createElementBlock(\"label\", {\n key: 0,\n class: \"input-field__label\",\n for: _ctx.id\n }, toDisplayString(_ctx.label), 9, _hoisted_3)) : createCommentVNode(\"\", true),\n withDirectives(createElementVNode(\"div\", _hoisted_4, [\n renderSlot(_ctx.$slots, \"icon\", {}, void 0, true)\n ], 512), [\n [vShow, !!_ctx.$slots.icon]\n ]),\n _ctx.showTrailingButton ? (openBlock(), createBlock(NcButton, {\n key: 1,\n class: \"input-field__trailing-button\",\n \"aria-label\": _ctx.trailingButtonLabel,\n disabled: _ctx.disabled,\n variant: \"tertiary-no-background\",\n onClick: _cache[0] || (_cache[0] = ($event) => emit(\"trailingButtonClick\", $event))\n }, {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"trailing-button-icon\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"aria-label\", \"disabled\"])) : _ctx.success || _ctx.error ? (openBlock(), createElementBlock(\"div\", _hoisted_5, [\n _ctx.success ? (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 0,\n path: unref(mdiCheck)\n }, null, 8, [\"path\"])) : (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 1,\n path: unref(mdiAlertCircleOutline)\n }, null, 8, [\"path\"]))\n ])) : createCommentVNode(\"\", true)\n ]),\n _ctx.helperText ? (openBlock(), createElementBlock(\"p\", {\n key: 0,\n id: `${_ctx.id}-helper-text`,\n class: \"input-field__helper-text-message\"\n }, [\n _ctx.success ? (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 0,\n class: \"input-field__helper-text-message__icon\",\n path: unref(mdiCheck),\n inline: \"\"\n }, null, 8, [\"path\"])) : _ctx.error ? (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 1,\n class: \"input-field__helper-text-message__icon\",\n path: unref(mdiAlertCircleOutline),\n inline: \"\"\n }, null, 8, [\"path\"])) : createCommentVNode(\"\", true),\n createTextVNode(\" \" + toDisplayString(_ctx.helperText), 1)\n ], 8, _hoisted_6)) : createCommentVNode(\"\", true)\n ], 2);\n };\n }\n});\nconst NcInputField = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-a0e80f48\"]]);\nexport {\n NcInputField as N\n};\n//# sourceMappingURL=NcInputField-Bwsh2aHY.mjs.map\n"],"names":["_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_sfc_main","defineComponent","mergeModels","createElementId","__props","__expose","__emit","modelValue","useModel","props","emit","focus","select","attrs","useAttrs","inputElement","useTemplateRef","hasTrailingIcon","computed","internalPlaceholder","isLegacy","isValidLabel","ariaDescribedby","ariaDescribedby2","options","handleInput","event","target","_ctx","_cache","openBlock","createElementBlock","normalizeClass","unref","createElementVNode","mergeProps","toDisplayString","createCommentVNode","withDirectives","renderSlot","vShow","createBlock","NcButton","$event","withCtx","NcIconSvgWrapper","mdiCheck","mdiAlertCircleOutline","createTextVNode","NcInputField","_export_sfc"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file +{"version":3,"file":"NcInputField-Bwsh2aHY-Cz27INBW.chunk.mjs","sources":["../node_modules/@nextcloud/vue/dist/chunks/NcInputField-Bwsh2aHY.mjs"],"sourcesContent":["import '../assets/NcInputField-B9DSDOEd.css';\nimport { defineComponent, mergeModels, useModel, useAttrs, useTemplateRef, computed, warn, createElementBlock, openBlock, normalizeClass, unref, createElementVNode, createCommentVNode, withDirectives, createBlock, mergeProps, toDisplayString, renderSlot, vShow, withCtx, createTextVNode } from \"vue\";\nimport { d as mdiCheck, f as mdiAlertCircleOutline } from \"./mdi-XFJRiRqJ.mjs\";\nimport { N as NcButton } from \"./NcButton-Dc8V4Urj.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-BvLanNaW.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { i as isLegacy } from \"./legacy-DcjXBL_t.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = { class: \"input-field__main-wrapper\" };\nconst _hoisted_2 = [\"id\", \"aria-describedby\", \"disabled\", \"placeholder\", \"type\", \"value\"];\nconst _hoisted_3 = [\"for\"];\nconst _hoisted_4 = { class: \"input-field__icon input-field__icon--leading\" };\nconst _hoisted_5 = {\n key: 2,\n class: \"input-field__icon input-field__icon--trailing\"\n};\nconst _hoisted_6 = [\"id\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...{\n inheritAttrs: false\n },\n __name: \"NcInputField\",\n props: /* @__PURE__ */ mergeModels({\n class: { default: \"\" },\n inputClass: { default: \"\" },\n id: { default: () => createElementId() },\n label: { default: void 0 },\n labelOutside: { type: Boolean },\n type: { default: \"text\" },\n placeholder: { default: void 0 },\n showTrailingButton: { type: Boolean },\n trailingButtonLabel: { default: void 0 },\n success: { type: Boolean },\n error: { type: Boolean },\n helperText: { default: \"\" },\n disabled: { type: Boolean },\n pill: { type: Boolean }\n }, {\n \"modelValue\": { required: true },\n \"modelModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"trailingButtonClick\"], [\"update:modelValue\"]),\n setup(__props, { expose: __expose, emit: __emit }) {\n const modelValue = useModel(__props, \"modelValue\");\n const props = __props;\n const emit = __emit;\n __expose({\n focus,\n select\n });\n const attrs = useAttrs();\n const inputElement = useTemplateRef(\"input\");\n const hasTrailingIcon = computed(() => props.showTrailingButton || props.success);\n const internalPlaceholder = computed(() => {\n if (props.placeholder) {\n return props.placeholder;\n }\n if (props.label) {\n return isLegacy ? props.label : \"\";\n }\n return void 0;\n });\n const isValidLabel = computed(() => {\n const isValidLabel2 = props.label || props.labelOutside;\n if (!isValidLabel2) {\n warn(\"You need to add a label to the NcInputField component. Either use the prop label or use an external one, as per the example in the documentation.\");\n }\n return isValidLabel2;\n });\n const ariaDescribedby = computed(() => {\n const ariaDescribedby2 = [];\n if (props.helperText) {\n ariaDescribedby2.push(`${props.id}-helper-text`);\n }\n if (attrs[\"aria-describedby\"]) {\n ariaDescribedby2.push(String(attrs[\"aria-describedby\"]));\n }\n return ariaDescribedby2.join(\" \") || void 0;\n });\n function focus(options) {\n inputElement.value.focus(options);\n }\n function select() {\n inputElement.value.select();\n }\n function handleInput(event) {\n const target = event.target;\n modelValue.value = props.type === \"number\" && typeof modelValue.value === \"number\" ? parseFloat(target.value) : target.value;\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"input-field\", [{\n \"input-field--disabled\": _ctx.disabled,\n \"input-field--error\": _ctx.error,\n \"input-field--label-outside\": _ctx.labelOutside || !isValidLabel.value,\n \"input-field--leading-icon\": !!_ctx.$slots.icon,\n \"input-field--trailing-icon\": hasTrailingIcon.value,\n \"input-field--pill\": _ctx.pill,\n \"input-field--success\": _ctx.success,\n \"input-field--legacy\": unref(isLegacy)\n }, _ctx.$props.class]])\n }, [\n createElementVNode(\"div\", _hoisted_1, [\n createElementVNode(\"input\", mergeProps(_ctx.$attrs, {\n id: _ctx.id,\n ref: \"input\",\n \"aria-describedby\": ariaDescribedby.value,\n \"aria-live\": \"polite\",\n class: [\"input-field__input\", _ctx.inputClass],\n disabled: _ctx.disabled,\n placeholder: internalPlaceholder.value,\n type: _ctx.type,\n value: modelValue.value.toString(),\n onInput: handleInput\n }), null, 16, _hoisted_2),\n !_ctx.labelOutside && isValidLabel.value ? (openBlock(), createElementBlock(\"label\", {\n key: 0,\n class: \"input-field__label\",\n for: _ctx.id\n }, toDisplayString(_ctx.label), 9, _hoisted_3)) : createCommentVNode(\"\", true),\n withDirectives(createElementVNode(\"div\", _hoisted_4, [\n renderSlot(_ctx.$slots, \"icon\", {}, void 0, true)\n ], 512), [\n [vShow, !!_ctx.$slots.icon]\n ]),\n _ctx.showTrailingButton ? (openBlock(), createBlock(NcButton, {\n key: 1,\n class: \"input-field__trailing-button\",\n \"aria-label\": _ctx.trailingButtonLabel,\n disabled: _ctx.disabled,\n variant: \"tertiary-no-background\",\n onClick: _cache[0] || (_cache[0] = ($event) => emit(\"trailingButtonClick\", $event))\n }, {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"trailing-button-icon\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"aria-label\", \"disabled\"])) : _ctx.success || _ctx.error ? (openBlock(), createElementBlock(\"div\", _hoisted_5, [\n _ctx.success ? (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 0,\n path: unref(mdiCheck)\n }, null, 8, [\"path\"])) : (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 1,\n path: unref(mdiAlertCircleOutline)\n }, null, 8, [\"path\"]))\n ])) : createCommentVNode(\"\", true)\n ]),\n _ctx.helperText ? (openBlock(), createElementBlock(\"p\", {\n key: 0,\n id: `${_ctx.id}-helper-text`,\n class: \"input-field__helper-text-message\"\n }, [\n _ctx.success ? (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 0,\n class: \"input-field__helper-text-message__icon\",\n path: unref(mdiCheck),\n inline: \"\"\n }, null, 8, [\"path\"])) : _ctx.error ? (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 1,\n class: \"input-field__helper-text-message__icon\",\n path: unref(mdiAlertCircleOutline),\n inline: \"\"\n }, null, 8, [\"path\"])) : createCommentVNode(\"\", true),\n createTextVNode(\" \" + toDisplayString(_ctx.helperText), 1)\n ], 8, _hoisted_6)) : createCommentVNode(\"\", true)\n ], 2);\n };\n }\n});\nconst NcInputField = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-a0e80f48\"]]);\nexport {\n NcInputField as N\n};\n//# sourceMappingURL=NcInputField-Bwsh2aHY.mjs.map\n"],"names":["_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_sfc_main","defineComponent","mergeModels","createElementId","__props","__expose","__emit","modelValue","useModel","props","emit","focus","select","attrs","useAttrs","inputElement","useTemplateRef","hasTrailingIcon","computed","internalPlaceholder","isLegacy","isValidLabel","ariaDescribedby","ariaDescribedby2","options","handleInput","event","target","_ctx","_cache","openBlock","createElementBlock","normalizeClass","unref","createElementVNode","mergeProps","toDisplayString","createCommentVNode","withDirectives","renderSlot","vShow","createBlock","NcButton","$event","withCtx","NcIconSvgWrapper","mdiCheck","mdiAlertCircleOutline","createTextVNode","NcInputField","_export_sfc"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/dist/NcInputField-Bwsh2aHY-CHbAfY0u.chunk.mjs.map.license b/dist/NcInputField-Bwsh2aHY-Cz27INBW.chunk.mjs.map.license similarity index 100% rename from dist/NcInputField-Bwsh2aHY-CHbAfY0u.chunk.mjs.map.license rename to dist/NcInputField-Bwsh2aHY-Cz27INBW.chunk.mjs.map.license diff --git a/dist/NcModal-MC_HktJd-DqeuH-fk.chunk.mjs b/dist/NcModal-MC_HktJd-DqeuH-fk.chunk.mjs new file mode 100644 index 0000000000000..cb6d42491e2c1 --- /dev/null +++ b/dist/NcModal-MC_HktJd-DqeuH-fk.chunk.mjs @@ -0,0 +1,3 @@ +import{s as ie,a0 as M,B as Qe,b as Ne,aH as wo,aG as yo,f as Le,j as se,o as H,k as G,l as de,F as jt,c as Se,m as me,I as xt,_ as bo,n as et,K as Wt,aR as To,w as W,e as j,z as pt,ac as Ct,ad as Ot,a7 as V,x as I,ao as So,aq as xo,t as Rn,W as Fn,X as $o,A as tt,a6 as ht,aa as U,S as Ao,a_ as _o,O as ko,R as Mn,Q as No,Z as Bn,a1 as Gt,r as xe,aU as Po,a9 as ft,J as Qt,u as L,p as en,a3 as Eo,q as Co,v as Oo,E as qe,ae as Ee,H as Do,G as Ke,a8 as Ro}from"./runtime-dom.esm-bundler-DdtEg5E9.chunk.mjs";import{l as Fo,b as Te,N as Ce,t as Mo,u as Bo,o as tn,v as Lo,k as Io}from"./AccountOutline-BlW-6JqD.chunk.mjs";import{_ as mt,r as Vt,p as zo,b as q,c as Ln,q as Ho}from"./createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs";import{a as gt,g as $t,i as jo}from"./string_decoder-vT-u9WbV.chunk.mjs";function xs(){if(typeof globalThis.firstDay<"u")return globalThis.firstDay;const e=new Intl.Locale(gt()),t=e.getWeekInfo?.()??e.weekInfo;return t?t.firstDay%7:1}function $s(){if(typeof globalThis.dayNames<"u")return globalThis.dayNames;const e=gt();return[new Date(1970,0,4).toLocaleDateString(e,{weekday:"long"}),new Date(1970,0,5).toLocaleDateString(e,{weekday:"long"}),new Date(1970,0,6).toLocaleDateString(e,{weekday:"long"}),new Date(1970,0,7).toLocaleDateString(e,{weekday:"long"}),new Date(1970,0,8).toLocaleDateString(e,{weekday:"long"}),new Date(1970,0,9).toLocaleDateString(e,{weekday:"long"}),new Date(1970,0,10).toLocaleDateString(e,{weekday:"long"})]}function As(){if(typeof globalThis.dayNamesMin<"u")return globalThis.dayNamesMin;const e=gt();return[new Date(1970,0,4).toLocaleDateString(e,{weekday:"narrow"}),new Date(1970,0,5).toLocaleDateString(e,{weekday:"narrow"}),new Date(1970,0,6).toLocaleDateString(e,{weekday:"narrow"}),new Date(1970,0,7).toLocaleDateString(e,{weekday:"narrow"}),new Date(1970,0,8).toLocaleDateString(e,{weekday:"narrow"}),new Date(1970,0,9).toLocaleDateString(e,{weekday:"narrow"}),new Date(1970,0,10).toLocaleDateString(e,{weekday:"narrow"})]}function Wo(e=Date.now(),t={}){const n={ignoreSeconds:!1,language:$t(),relativeTime:"long",...t},o=new Date(e),r=new Intl.RelativeTimeFormat([n.language,$t()],{numeric:"auto",style:n.relativeTime}),i=(o.getTime()-Date.now())/1e3;if(Math.abs(i)<59.5)return n.ignoreSeconds||r.format(Math.round(i),"second");const s=i/60;if(Math.abs(s)<=59)return r.format(Math.round(s),"minute");const a=s/60;if(Math.abs(a)<23.5)return r.format(Math.round(a),"hour");const l=a/24;if(Math.abs(l)<6.5)return r.format(Math.round(l),"day");if(Math.abs(l)<27.5){const c=l/7;return r.format(Math.round(c),"week")}const u=l/30,d=Math.abs(u)<11?{month:n.relativeTime,day:"numeric"}:{year:n.relativeTime==="narrow"?"2-digit":"numeric",month:n.relativeTime};return new Intl.DateTimeFormat([n.language,$t()],d).format(o)}const Go=Symbol.for("NcActions:isSemanticMenu"),Vo=Symbol.for("NcActions:closeMenu");function Ie(){return window._nc_focus_trap??=[],window._nc_focus_trap}function qo(){let e=[];return{pause(){e=[...Ie()];for(const t of e)t.pause()},unpause(){if(e.length===Ie().length)for(const t of e)t.unpause();e=[]}}}function Ko(e,t={}){const n=qo();ie(e,()=>{M(t.disabled)||(M(e)?n.pause():n.unpause())}),Qe(()=>{n.unpause()})}const Uo=["top","right","bottom","left"],nn=["start","end"],on=Uo.reduce((e,t)=>e.concat(t,t+"-"+nn[0],t+"-"+nn[1]),[]),ze=Math.min,ye=Math.max,_s=Math.round,ks=Math.floor,Ns=e=>({x:e,y:e}),Yo={left:"right",right:"left",bottom:"top",top:"bottom"},Xo={start:"end",end:"start"};function Dt(e,t,n){return ye(e,ze(t,n))}function ae(e,t){return typeof e=="function"?e(t):e}function Q(e){return e.split("-")[0]}function J(e){return e.split("-")[1]}function qt(e){return e==="x"?"y":"x"}function Kt(e){return e==="y"?"height":"width"}const Zo=new Set(["top","bottom"]);function te(e){return Zo.has(Q(e))?"y":"x"}function Ut(e){return qt(te(e))}function In(e,t,n){n===void 0&&(n=!1);const o=J(e),r=Ut(e),i=Kt(r);let s=r==="x"?o===(n?"end":"start")?"right":"left":o==="start"?"bottom":"top";return t.reference[i]>t.floating[i]&&(s=ot(s)),[s,ot(s)]}function Jo(e){const t=ot(e);return[nt(e),t,nt(t)]}function nt(e){return e.replace(/start|end/g,t=>Xo[t])}const rn=["left","right"],sn=["right","left"],Qo=["top","bottom"],ei=["bottom","top"];function ti(e,t,n){switch(e){case"top":case"bottom":return n?t?sn:rn:t?rn:sn;case"left":case"right":return t?Qo:ei;default:return[]}}function ni(e,t,n,o){const r=J(e);let i=ti(Q(e),n==="start",o);return r&&(i=i.map(s=>s+"-"+r),t&&(i=i.concat(i.map(nt)))),i}function ot(e){return e.replace(/left|right|bottom|top/g,t=>Yo[t])}function oi(e){return{top:0,right:0,bottom:0,left:0,...e}}function zn(e){return typeof e!="number"?oi(e):{top:e,right:e,bottom:e,left:e}}function De(e){const{x:t,y:n,width:o,height:r}=e;return{width:o,height:r,top:n,left:t,right:t+o,bottom:n+r,x:t,y:n}}function an(e,t,n){let{reference:o,floating:r}=e;const i=te(t),s=Ut(t),a=Kt(s),l=Q(t),u=i==="y",d=o.x+o.width/2-r.width/2,c=o.y+o.height/2-r.height/2,f=o[a]/2-r[a]/2;let p;switch(l){case"top":p={x:d,y:o.y-r.height};break;case"bottom":p={x:d,y:o.y+o.height};break;case"right":p={x:o.x+o.width,y:c};break;case"left":p={x:o.x-r.width,y:c};break;default:p={x:o.x,y:o.y}}switch(J(t)){case"start":p[s]-=f*(n&&u?-1:1);break;case"end":p[s]+=f*(n&&u?-1:1);break}return p}const ii=async(e,t,n)=>{const{placement:o="bottom",strategy:r="absolute",middleware:i=[],platform:s}=n,a=i.filter(Boolean),l=await(s.isRTL==null?void 0:s.isRTL(t));let u=await s.getElementRects({reference:e,floating:t,strategy:r}),{x:d,y:c}=an(u,o,l),f=o,p={},v=0;for(let y=0;y<a.length;y++){const{name:m,fn:w}=a[y],{x:T,y:S,data:A,reset:C}=await w({x:d,y:c,initialPlacement:o,placement:f,strategy:r,middlewareData:p,rects:u,platform:s,elements:{reference:e,floating:t}});d=T??d,c=S??c,p={...p,[m]:{...p[m],...A}},C&&v<=50&&(v++,typeof C=="object"&&(C.placement&&(f=C.placement),C.rects&&(u=C.rects===!0?await s.getElementRects({reference:e,floating:t,strategy:r}):C.rects),{x:d,y:c}=an(u,f,l)),y=-1)}return{x:d,y:c,placement:f,strategy:r,middlewareData:p}};async function vt(e,t){var n;t===void 0&&(t={});const{x:o,y:r,platform:i,rects:s,elements:a,strategy:l}=e,{boundary:u="clippingAncestors",rootBoundary:d="viewport",elementContext:c="floating",altBoundary:f=!1,padding:p=0}=ae(t,e),v=zn(p),y=a[f?c==="floating"?"reference":"floating":c],m=De(await i.getClippingRect({element:(n=await(i.isElement==null?void 0:i.isElement(y)))==null||n?y:y.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(a.floating)),boundary:u,rootBoundary:d,strategy:l})),w=c==="floating"?{x:o,y:r,width:s.floating.width,height:s.floating.height}:s.reference,T=await(i.getOffsetParent==null?void 0:i.getOffsetParent(a.floating)),S=await(i.isElement==null?void 0:i.isElement(T))?await(i.getScale==null?void 0:i.getScale(T))||{x:1,y:1}:{x:1,y:1},A=De(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:a,rect:w,offsetParent:T,strategy:l}):w);return{top:(m.top-A.top+v.top)/S.y,bottom:(A.bottom-m.bottom+v.bottom)/S.y,left:(m.left-A.left+v.left)/S.x,right:(A.right-m.right+v.right)/S.x}}const ri=e=>({name:"arrow",options:e,async fn(t){const{x:n,y:o,placement:r,rects:i,platform:s,elements:a,middlewareData:l}=t,{element:u,padding:d=0}=ae(e,t)||{};if(u==null)return{};const c=zn(d),f={x:n,y:o},p=Ut(r),v=Kt(p),y=await s.getDimensions(u),m=p==="y",w=m?"top":"left",T=m?"bottom":"right",S=m?"clientHeight":"clientWidth",A=i.reference[v]+i.reference[p]-f[p]-i.floating[v],C=f[p]-i.reference[p],k=await(s.getOffsetParent==null?void 0:s.getOffsetParent(u));let R=k?k[S]:0;(!R||!await(s.isElement==null?void 0:s.isElement(k)))&&(R=a.floating[S]||i.floating[v]);const b=A/2-C/2,P=R/2-y[v]/2-1,B=ze(c[w],P),h=ze(c[T],P),g=B,x=R-y[v]-h,_=R/2-y[v]/2+b,N=Dt(g,_,x),O=!l.arrow&&J(r)!=null&&_!==N&&i.reference[v]/2-(_<g?B:h)-y[v]/2<0,$=O?_<g?_-g:_-x:0;return{[p]:f[p]+$,data:{[p]:N,centerOffset:_-N-$,...O&&{alignmentOffset:$}},reset:O}}});function si(e,t,n){return(e?[...n.filter(o=>J(o)===e),...n.filter(o=>J(o)!==e)]:n.filter(o=>Q(o)===o)).filter(o=>e?J(o)===e||(t?nt(o)!==o:!1):!0)}const ai=function(e){return e===void 0&&(e={}),{name:"autoPlacement",options:e,async fn(t){var n,o,r;const{rects:i,middlewareData:s,placement:a,platform:l,elements:u}=t,{crossAxis:d=!1,alignment:c,allowedPlacements:f=on,autoAlignment:p=!0,...v}=ae(e,t),y=c!==void 0||f===on?si(c||null,p,f):f,m=await vt(t,v),w=((n=s.autoPlacement)==null?void 0:n.index)||0,T=y[w];if(T==null)return{};const S=In(T,i,await(l.isRTL==null?void 0:l.isRTL(u.floating)));if(a!==T)return{reset:{placement:y[0]}};const A=[m[Q(T)],m[S[0]],m[S[1]]],C=[...((o=s.autoPlacement)==null?void 0:o.overflows)||[],{placement:T,overflows:A}],k=y[w+1];if(k)return{data:{index:w+1,overflows:C},reset:{placement:k}};const R=C.map(P=>{const B=J(P.placement);return[P.placement,B&&d?P.overflows.slice(0,2).reduce((h,g)=>h+g,0):P.overflows[0],P.overflows]}).sort((P,B)=>P[1]-B[1]),b=((r=R.filter(P=>P[2].slice(0,J(P[0])?2:3).every(B=>B<=0))[0])==null?void 0:r[0])||R[0][0];return b!==a?{data:{index:w+1,overflows:C},reset:{placement:b}}:{}}}},li=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(t){var n,o;const{placement:r,middlewareData:i,rects:s,initialPlacement:a,platform:l,elements:u}=t,{mainAxis:d=!0,crossAxis:c=!0,fallbackPlacements:f,fallbackStrategy:p="bestFit",fallbackAxisSideDirection:v="none",flipAlignment:y=!0,...m}=ae(e,t);if((n=i.arrow)!=null&&n.alignmentOffset)return{};const w=Q(r),T=te(a),S=Q(a)===a,A=await(l.isRTL==null?void 0:l.isRTL(u.floating)),C=f||(S||!y?[ot(a)]:Jo(a)),k=v!=="none";!f&&k&&C.push(...ni(a,y,v,A));const R=[a,...C],b=await vt(t,m),P=[];let B=((o=i.flip)==null?void 0:o.overflows)||[];if(d&&P.push(b[w]),c){const _=In(r,s,A);P.push(b[_[0]],b[_[1]])}if(B=[...B,{placement:r,overflows:P}],!P.every(_=>_<=0)){var h,g;const _=(((h=i.flip)==null?void 0:h.index)||0)+1,N=R[_];if(N&&(!(c==="alignment"&&T!==te(N))||B.every($=>te($.placement)===T?$.overflows[0]>0:!0)))return{data:{index:_,overflows:B},reset:{placement:N}};let O=(g=B.filter($=>$.overflows[0]<=0).sort(($,F)=>$.overflows[1]-F.overflows[1])[0])==null?void 0:g.placement;if(!O)switch(p){case"bestFit":{var x;const $=(x=B.filter(F=>{if(k){const D=te(F.placement);return D===T||D==="y"}return!0}).map(F=>[F.placement,F.overflows.filter(D=>D>0).reduce((D,le)=>D+le,0)]).sort((F,D)=>F[1]-D[1])[0])==null?void 0:x[0];$&&(O=$);break}case"initialPlacement":O=a;break}if(r!==O)return{reset:{placement:O}}}return{}}}},Hn=new Set(["left","top"]);async function ui(e,t){const{placement:n,platform:o,elements:r}=e,i=await(o.isRTL==null?void 0:o.isRTL(r.floating)),s=Q(n),a=J(n),l=te(n)==="y",u=Hn.has(s)?-1:1,d=i&&l?-1:1,c=ae(t,e);let{mainAxis:f,crossAxis:p,alignmentAxis:v}=typeof c=="number"?{mainAxis:c,crossAxis:0,alignmentAxis:null}:{mainAxis:c.mainAxis||0,crossAxis:c.crossAxis||0,alignmentAxis:c.alignmentAxis};return a&&typeof v=="number"&&(p=a==="end"?v*-1:v),l?{x:p*d,y:f*u}:{x:f*u,y:p*d}}const ci=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,o;const{x:r,y:i,placement:s,middlewareData:a}=t,l=await ui(t,e);return s===((n=a.offset)==null?void 0:n.placement)&&(o=a.arrow)!=null&&o.alignmentOffset?{}:{x:r+l.x,y:i+l.y,data:{...l,placement:s}}}}},di=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:o,placement:r}=t,{mainAxis:i=!0,crossAxis:s=!1,limiter:a={fn:m=>{let{x:w,y:T}=m;return{x:w,y:T}}},...l}=ae(e,t),u={x:n,y:o},d=await vt(t,l),c=te(Q(r)),f=qt(c);let p=u[f],v=u[c];if(i){const m=f==="y"?"top":"left",w=f==="y"?"bottom":"right",T=p+d[m],S=p-d[w];p=Dt(T,p,S)}if(s){const m=c==="y"?"top":"left",w=c==="y"?"bottom":"right",T=v+d[m],S=v-d[w];v=Dt(T,v,S)}const y=a.fn({...t,[f]:p,[c]:v});return{...y,data:{x:y.x-n,y:y.y-o,enabled:{[f]:i,[c]:s}}}}}},Ps=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:n,y:o,placement:r,rects:i,middlewareData:s}=t,{offset:a=0,mainAxis:l=!0,crossAxis:u=!0}=ae(e,t),d={x:n,y:o},c=te(r),f=qt(c);let p=d[f],v=d[c];const y=ae(a,t),m=typeof y=="number"?{mainAxis:y,crossAxis:0}:{mainAxis:0,crossAxis:0,...y};if(l){const S=f==="y"?"height":"width",A=i.reference[f]-i.floating[S]+m.mainAxis,C=i.reference[f]+i.reference[S]-m.mainAxis;p<A?p=A:p>C&&(p=C)}if(u){var w,T;const S=f==="y"?"width":"height",A=Hn.has(Q(r)),C=i.reference[c]-i.floating[S]+(A&&((w=s.offset)==null?void 0:w[c])||0)+(A?0:m.crossAxis),k=i.reference[c]+i.reference[S]+(A?0:((T=s.offset)==null?void 0:T[c])||0)-(A?m.crossAxis:0);v<C?v=C:v>k&&(v=k)}return{[f]:p,[c]:v}}}},pi=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var n,o;const{placement:r,rects:i,platform:s,elements:a}=t,{apply:l=()=>{},...u}=ae(e,t),d=await vt(t,u),c=Q(r),f=J(r),p=te(r)==="y",{width:v,height:y}=i.floating;let m,w;c==="top"||c==="bottom"?(m=c,w=f===(await(s.isRTL==null?void 0:s.isRTL(a.floating))?"start":"end")?"left":"right"):(w=c,m=f==="end"?"top":"bottom");const T=y-d.top-d.bottom,S=v-d.left-d.right,A=ze(y-d[m],T),C=ze(v-d[w],S),k=!t.middlewareData.shift;let R=A,b=C;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(b=S),(o=t.middlewareData.shift)!=null&&o.enabled.y&&(R=T),k&&!f){const B=ye(d.left,0),h=ye(d.right,0),g=ye(d.top,0),x=ye(d.bottom,0);p?b=v-2*(B!==0||h!==0?B+h:ye(d.left,d.right)):R=y-2*(g!==0||x!==0?g+x:ye(d.top,d.bottom))}await l({...t,availableWidth:b,availableHeight:R});const P=await s.getDimensions(a.floating);return v!==P.width||y!==P.height?{reset:{rects:!0}}:{}}}};function K(e){var t;return((t=e.ownerDocument)==null?void 0:t.defaultView)||window}function ne(e){return K(e).getComputedStyle(e)}const ln=Math.min,Re=Math.max,it=Math.round;function jn(e){const t=ne(e);let n=parseFloat(t.width),o=parseFloat(t.height);const r=e.offsetWidth,i=e.offsetHeight,s=it(n)!==r||it(o)!==i;return s&&(n=r,o=i),{width:n,height:o,fallback:s}}function ge(e){return Gn(e)?(e.nodeName||"").toLowerCase():""}let Ue;function Wn(){if(Ue)return Ue;const e=navigator.userAgentData;return e&&Array.isArray(e.brands)?(Ue=e.brands.map((t=>t.brand+"/"+t.version)).join(" "),Ue):navigator.userAgent}function oe(e){return e instanceof K(e).HTMLElement}function pe(e){return e instanceof K(e).Element}function Gn(e){return e instanceof K(e).Node}function un(e){return typeof ShadowRoot>"u"?!1:e instanceof K(e).ShadowRoot||e instanceof ShadowRoot}function wt(e){const{overflow:t,overflowX:n,overflowY:o,display:r}=ne(e);return/auto|scroll|overlay|hidden|clip/.test(t+o+n)&&!["inline","contents"].includes(r)}function hi(e){return["table","td","th"].includes(ge(e))}function Rt(e){const t=/firefox/i.test(Wn()),n=ne(e),o=n.backdropFilter||n.WebkitBackdropFilter;return n.transform!=="none"||n.perspective!=="none"||!!o&&o!=="none"||t&&n.willChange==="filter"||t&&!!n.filter&&n.filter!=="none"||["transform","perspective"].some((r=>n.willChange.includes(r)))||["paint","layout","strict","content"].some((r=>{const i=n.contain;return i!=null&&i.includes(r)}))}function Vn(){return!/^((?!chrome|android).)*safari/i.test(Wn())}function Yt(e){return["html","body","#document"].includes(ge(e))}function qn(e){return pe(e)?e:e.contextElement}const Kn={x:1,y:1};function _e(e){const t=qn(e);if(!oe(t))return Kn;const n=t.getBoundingClientRect(),{width:o,height:r,fallback:i}=jn(t);let s=(i?it(n.width):n.width)/o,a=(i?it(n.height):n.height)/r;return s&&Number.isFinite(s)||(s=1),a&&Number.isFinite(a)||(a=1),{x:s,y:a}}function He(e,t,n,o){var r,i;t===void 0&&(t=!1),n===void 0&&(n=!1);const s=e.getBoundingClientRect(),a=qn(e);let l=Kn;t&&(o?pe(o)&&(l=_e(o)):l=_e(e));const u=a?K(a):window,d=!Vn()&&n;let c=(s.left+(d&&((r=u.visualViewport)==null?void 0:r.offsetLeft)||0))/l.x,f=(s.top+(d&&((i=u.visualViewport)==null?void 0:i.offsetTop)||0))/l.y,p=s.width/l.x,v=s.height/l.y;if(a){const y=K(a),m=o&&pe(o)?K(o):o;let w=y.frameElement;for(;w&&o&&m!==y;){const T=_e(w),S=w.getBoundingClientRect(),A=getComputedStyle(w);S.x+=(w.clientLeft+parseFloat(A.paddingLeft))*T.x,S.y+=(w.clientTop+parseFloat(A.paddingTop))*T.y,c*=T.x,f*=T.y,p*=T.x,v*=T.y,c+=S.x,f+=S.y,w=K(w).frameElement}}return{width:p,height:v,top:f,right:c+p,bottom:f+v,left:c,x:c,y:f}}function he(e){return((Gn(e)?e.ownerDocument:e.document)||window.document).documentElement}function yt(e){return pe(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function Un(e){return He(he(e)).left+yt(e).scrollLeft}function je(e){if(ge(e)==="html")return e;const t=e.assignedSlot||e.parentNode||un(e)&&e.host||he(e);return un(t)?t.host:t}function Yn(e){const t=je(e);return Yt(t)?t.ownerDocument.body:oe(t)&&wt(t)?t:Yn(t)}function rt(e,t){var n;t===void 0&&(t=[]);const o=Yn(e),r=o===((n=e.ownerDocument)==null?void 0:n.body),i=K(o);return r?t.concat(i,i.visualViewport||[],wt(o)?o:[]):t.concat(o,rt(o))}function cn(e,t,n){return t==="viewport"?De((function(o,r){const i=K(o),s=he(o),a=i.visualViewport;let l=s.clientWidth,u=s.clientHeight,d=0,c=0;if(a){l=a.width,u=a.height;const f=Vn();(f||!f&&r==="fixed")&&(d=a.offsetLeft,c=a.offsetTop)}return{width:l,height:u,x:d,y:c}})(e,n)):pe(t)?De((function(o,r){const i=He(o,!0,r==="fixed"),s=i.top+o.clientTop,a=i.left+o.clientLeft,l=oe(o)?_e(o):{x:1,y:1};return{width:o.clientWidth*l.x,height:o.clientHeight*l.y,x:a*l.x,y:s*l.y}})(t,n)):De((function(o){const r=he(o),i=yt(o),s=o.ownerDocument.body,a=Re(r.scrollWidth,r.clientWidth,s.scrollWidth,s.clientWidth),l=Re(r.scrollHeight,r.clientHeight,s.scrollHeight,s.clientHeight);let u=-i.scrollLeft+Un(o);const d=-i.scrollTop;return ne(s).direction==="rtl"&&(u+=Re(r.clientWidth,s.clientWidth)-a),{width:a,height:l,x:u,y:d}})(he(e)))}function dn(e){return oe(e)&&ne(e).position!=="fixed"?e.offsetParent:null}function pn(e){const t=K(e);let n=dn(e);for(;n&&hi(n)&&ne(n).position==="static";)n=dn(n);return n&&(ge(n)==="html"||ge(n)==="body"&&ne(n).position==="static"&&!Rt(n))?t:n||(function(o){let r=je(o);for(;oe(r)&&!Yt(r);){if(Rt(r))return r;r=je(r)}return null})(e)||t}function fi(e,t,n){const o=oe(t),r=he(t),i=He(e,!0,n==="fixed",t);let s={scrollLeft:0,scrollTop:0};const a={x:0,y:0};if(o||!o&&n!=="fixed")if((ge(t)!=="body"||wt(r))&&(s=yt(t)),oe(t)){const l=He(t,!0);a.x=l.x+t.clientLeft,a.y=l.y+t.clientTop}else r&&(a.x=Un(r));return{x:i.left+s.scrollLeft-a.x,y:i.top+s.scrollTop-a.y,width:i.width,height:i.height}}const mi={getClippingRect:function(e){let{element:t,boundary:n,rootBoundary:o,strategy:r}=e;const i=n==="clippingAncestors"?(function(u,d){const c=d.get(u);if(c)return c;let f=rt(u).filter((m=>pe(m)&&ge(m)!=="body")),p=null;const v=ne(u).position==="fixed";let y=v?je(u):u;for(;pe(y)&&!Yt(y);){const m=ne(y),w=Rt(y);(v?w||p:w||m.position!=="static"||!p||!["absolute","fixed"].includes(p.position))?p=m:f=f.filter((T=>T!==y)),y=je(y)}return d.set(u,f),f})(t,this._c):[].concat(n),s=[...i,o],a=s[0],l=s.reduce(((u,d)=>{const c=cn(t,d,r);return u.top=Re(c.top,u.top),u.right=ln(c.right,u.right),u.bottom=ln(c.bottom,u.bottom),u.left=Re(c.left,u.left),u}),cn(t,a,r));return{width:l.right-l.left,height:l.bottom-l.top,x:l.left,y:l.top}},convertOffsetParentRelativeRectToViewportRelativeRect:function(e){let{rect:t,offsetParent:n,strategy:o}=e;const r=oe(n),i=he(n);if(n===i)return t;let s={scrollLeft:0,scrollTop:0},a={x:1,y:1};const l={x:0,y:0};if((r||!r&&o!=="fixed")&&((ge(n)!=="body"||wt(i))&&(s=yt(n)),oe(n))){const u=He(n);a=_e(n),l.x=u.x+n.clientLeft,l.y=u.y+n.clientTop}return{width:t.width*a.x,height:t.height*a.y,x:t.x*a.x-s.scrollLeft*a.x+l.x,y:t.y*a.y-s.scrollTop*a.y+l.y}},isElement:pe,getDimensions:function(e){return oe(e)?jn(e):e.getBoundingClientRect()},getOffsetParent:pn,getDocumentElement:he,getScale:_e,async getElementRects(e){let{reference:t,floating:n,strategy:o}=e;const r=this.getOffsetParent||pn,i=this.getDimensions;return{reference:fi(t,await r(n),o),floating:{x:0,y:0,...await i(n)}}},getClientRects:e=>Array.from(e.getClientRects()),isRTL:e=>ne(e).direction==="rtl"},gi=(e,t,n)=>{const o=new Map,r={platform:mi,...n},i={...r.platform,_c:o};return ii(e,t,{...r,platform:i})},fe={disabled:!1,distance:5,skidding:0,container:"body",boundary:void 0,instantMove:!1,disposeTimeout:150,popperTriggers:[],strategy:"absolute",preventOverflow:!0,flip:!0,shift:!0,overflowPadding:0,arrowPadding:0,arrowOverflow:!0,autoHideOnMousedown:!1,themes:{tooltip:{placement:"top",triggers:["hover","focus","touch"],hideTriggers:e=>[...e,"click"],delay:{show:200,hide:0},handleResize:!1,html:!1,loadingContent:"..."},dropdown:{placement:"bottom",triggers:["click"],delay:0,handleResize:!0,autoHide:!0},menu:{$extend:"dropdown",triggers:["hover","focus"],popperTriggers:["hover"],delay:{show:0,hide:400}}}};function Ft(e,t){let n=fe.themes[e]||{},o;do o=n[t],typeof o>"u"?n.$extend?n=fe.themes[n.$extend]||{}:(n=null,o=fe[t]):n=null;while(n);return o}function vi(e){const t=[e];let n=fe.themes[e]||{};do n.$extend&&!n.$resetCss?(t.push(n.$extend),n=fe.themes[n.$extend]||{}):n=null;while(n);return t.map(o=>`v-popper--theme-${o}`)}function hn(e){const t=[e];let n=fe.themes[e]||{};do n.$extend?(t.push(n.$extend),n=fe.themes[n.$extend]||{}):n=null;while(n);return t}let We=!1;if(typeof window<"u"){We=!1;try{const e=Object.defineProperty({},"passive",{get(){We=!0}});window.addEventListener("test",null,e)}catch{}}let Xn=!1;typeof window<"u"&&typeof navigator<"u"&&(Xn=/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream);const wi=["auto","top","bottom","left","right"].reduce((e,t)=>e.concat([t,`${t}-start`,`${t}-end`]),[]),fn={hover:"mouseenter",focus:"focus",click:"click",touch:"touchstart",pointer:"pointerdown"},mn={hover:"mouseleave",focus:"blur",click:"click",touch:"touchend",pointer:"pointerup"};function gn(e,t){const n=e.indexOf(t);n!==-1&&e.splice(n,1)}function At(){return new Promise(e=>requestAnimationFrame(()=>{requestAnimationFrame(e)}))}const X=[];let we=null;const vn={};function wn(e){let t=vn[e];return t||(t=vn[e]=[]),t}let Mt=function(){};typeof window<"u"&&(Mt=window.Element);function E(e){return function(t){return Ft(t.theme,e)}}const _t="__floating-vue__popper",Zn=()=>Ne({name:"VPopper",provide(){return{[_t]:{parentPopper:this}}},inject:{[_t]:{default:null}},props:{theme:{type:String,required:!0},targetNodes:{type:Function,required:!0},referenceNode:{type:Function,default:null},popperNode:{type:Function,required:!0},shown:{type:Boolean,default:!1},showGroup:{type:String,default:null},ariaId:{default:null},disabled:{type:Boolean,default:E("disabled")},positioningDisabled:{type:Boolean,default:E("positioningDisabled")},placement:{type:String,default:E("placement"),validator:e=>wi.includes(e)},delay:{type:[String,Number,Object],default:E("delay")},distance:{type:[Number,String],default:E("distance")},skidding:{type:[Number,String],default:E("skidding")},triggers:{type:Array,default:E("triggers")},showTriggers:{type:[Array,Function],default:E("showTriggers")},hideTriggers:{type:[Array,Function],default:E("hideTriggers")},popperTriggers:{type:Array,default:E("popperTriggers")},popperShowTriggers:{type:[Array,Function],default:E("popperShowTriggers")},popperHideTriggers:{type:[Array,Function],default:E("popperHideTriggers")},container:{type:[String,Object,Mt,Boolean],default:E("container")},boundary:{type:[String,Mt],default:E("boundary")},strategy:{type:String,validator:e=>["absolute","fixed"].includes(e),default:E("strategy")},autoHide:{type:[Boolean,Function],default:E("autoHide")},handleResize:{type:Boolean,default:E("handleResize")},instantMove:{type:Boolean,default:E("instantMove")},eagerMount:{type:Boolean,default:E("eagerMount")},popperClass:{type:[String,Array,Object],default:E("popperClass")},computeTransformOrigin:{type:Boolean,default:E("computeTransformOrigin")},autoMinSize:{type:Boolean,default:E("autoMinSize")},autoSize:{type:[Boolean,String],default:E("autoSize")},autoMaxSize:{type:Boolean,default:E("autoMaxSize")},autoBoundaryMaxSize:{type:Boolean,default:E("autoBoundaryMaxSize")},preventOverflow:{type:Boolean,default:E("preventOverflow")},overflowPadding:{type:[Number,String],default:E("overflowPadding")},arrowPadding:{type:[Number,String],default:E("arrowPadding")},arrowOverflow:{type:Boolean,default:E("arrowOverflow")},flip:{type:Boolean,default:E("flip")},shift:{type:Boolean,default:E("shift")},shiftCrossAxis:{type:Boolean,default:E("shiftCrossAxis")},noAutoFocus:{type:Boolean,default:E("noAutoFocus")},disposeTimeout:{type:Number,default:E("disposeTimeout")}},emits:{show:()=>!0,hide:()=>!0,"update:shown":e=>!0,"apply-show":()=>!0,"apply-hide":()=>!0,"close-group":()=>!0,"close-directive":()=>!0,"auto-hide":()=>!0,resize:()=>!0},data(){return{isShown:!1,isMounted:!1,skipTransition:!1,classes:{showFrom:!1,showTo:!1,hideFrom:!1,hideTo:!0},result:{x:0,y:0,placement:"",strategy:this.strategy,arrow:{x:0,y:0,centerOffset:0},transformOrigin:null},randomId:`popper_${[Math.random(),Date.now()].map(e=>e.toString(36).substring(2,10)).join("_")}`,shownChildren:new Set,lastAutoHide:!0,pendingHide:!1,containsGlobalTarget:!1,isDisposed:!0,mouseDownContains:!1}},computed:{popperId(){return this.ariaId!=null?this.ariaId:this.randomId},shouldMountContent(){return this.eagerMount||this.isMounted},slotData(){return{popperId:this.popperId,isShown:this.isShown,shouldMountContent:this.shouldMountContent,skipTransition:this.skipTransition,autoHide:typeof this.autoHide=="function"?this.lastAutoHide:this.autoHide,show:this.show,hide:this.hide,handleResize:this.handleResize,onResize:this.onResize,classes:{...this.classes,popperClass:this.popperClass},result:this.positioningDisabled?null:this.result,attrs:this.$attrs}},parentPopper(){var e;return(e=this[_t])==null?void 0:e.parentPopper},hasPopperShowTriggerHover(){var e,t;return((e=this.popperTriggers)==null?void 0:e.includes("hover"))||((t=this.popperShowTriggers)==null?void 0:t.includes("hover"))}},watch:{shown:"$_autoShowHide",disabled(e){e?this.dispose():this.init()},async container(){this.isShown&&(this.$_ensureTeleport(),await this.$_computePosition())},triggers:{handler:"$_refreshListeners",deep:!0},positioningDisabled:"$_refreshListeners",...["placement","distance","skidding","boundary","strategy","overflowPadding","arrowPadding","preventOverflow","shift","shiftCrossAxis","flip"].reduce((e,t)=>(e[t]="$_computePosition",e),{})},created(){this.autoMinSize&&console.warn('[floating-vue] `autoMinSize` option is deprecated. Use `autoSize="min"` instead.'),this.autoMaxSize&&console.warn("[floating-vue] `autoMaxSize` option is deprecated. Use `autoBoundaryMaxSize` instead.")},mounted(){this.init(),this.$_detachPopperNode()},activated(){this.$_autoShowHide()},deactivated(){this.hide()},beforeUnmount(){this.dispose()},methods:{show({event:e=null,skipDelay:t=!1,force:n=!1}={}){var o,r;(o=this.parentPopper)!=null&&o.lockedChild&&this.parentPopper.lockedChild!==this||(this.pendingHide=!1,(n||!this.disabled)&&(((r=this.parentPopper)==null?void 0:r.lockedChild)===this&&(this.parentPopper.lockedChild=null),this.$_scheduleShow(e,t),this.$emit("show"),this.$_showFrameLocked=!0,requestAnimationFrame(()=>{this.$_showFrameLocked=!1})),this.$emit("update:shown",!0))},hide({event:e=null,skipDelay:t=!1}={}){var n;if(!this.$_hideInProgress){if(this.shownChildren.size>0){this.pendingHide=!0;return}if(this.hasPopperShowTriggerHover&&this.$_isAimingPopper()){this.parentPopper&&(this.parentPopper.lockedChild=this,clearTimeout(this.parentPopper.lockedChildTimer),this.parentPopper.lockedChildTimer=setTimeout(()=>{this.parentPopper.lockedChild===this&&(this.parentPopper.lockedChild.hide({skipDelay:t}),this.parentPopper.lockedChild=null)},1e3));return}((n=this.parentPopper)==null?void 0:n.lockedChild)===this&&(this.parentPopper.lockedChild=null),this.pendingHide=!1,this.$_scheduleHide(e,t),this.$emit("hide"),this.$emit("update:shown",!1)}},init(){var e;this.isDisposed&&(this.isDisposed=!1,this.isMounted=!1,this.$_events=[],this.$_preventShow=!1,this.$_referenceNode=((e=this.referenceNode)==null?void 0:e.call(this))??this.$el,this.$_targetNodes=this.targetNodes().filter(t=>t.nodeType===t.ELEMENT_NODE),this.$_popperNode=this.popperNode(),this.$_innerNode=this.$_popperNode.querySelector(".v-popper__inner"),this.$_arrowNode=this.$_popperNode.querySelector(".v-popper__arrow-container"),this.$_swapTargetAttrs("title","data-original-title"),this.$_detachPopperNode(),this.triggers.length&&this.$_addEventListeners(),this.shown&&this.show())},dispose(){this.isDisposed||(this.isDisposed=!0,this.$_removeEventListeners(),this.hide({skipDelay:!0}),this.$_detachPopperNode(),this.isMounted=!1,this.isShown=!1,this.$_updateParentShownChildren(!1),this.$_swapTargetAttrs("data-original-title","title"))},async onResize(){this.isShown&&(await this.$_computePosition(),this.$emit("resize"))},async $_computePosition(){if(this.isDisposed||this.positioningDisabled)return;const e={strategy:this.strategy,middleware:[]};(this.distance||this.skidding)&&e.middleware.push(ci({mainAxis:this.distance,crossAxis:this.skidding}));const t=this.placement.startsWith("auto");if(t?e.middleware.push(ai({alignment:this.placement.split("-")[1]??""})):e.placement=this.placement,this.preventOverflow&&(this.shift&&e.middleware.push(di({padding:this.overflowPadding,boundary:this.boundary,crossAxis:this.shiftCrossAxis})),!t&&this.flip&&e.middleware.push(li({padding:this.overflowPadding,boundary:this.boundary}))),e.middleware.push(ri({element:this.$_arrowNode,padding:this.arrowPadding})),this.arrowOverflow&&e.middleware.push({name:"arrowOverflow",fn:({placement:o,rects:r,middlewareData:i})=>{let s;const{centerOffset:a}=i.arrow;return o.startsWith("top")||o.startsWith("bottom")?s=Math.abs(a)>r.reference.width/2:s=Math.abs(a)>r.reference.height/2,{data:{overflow:s}}}}),this.autoMinSize||this.autoSize){const o=this.autoSize?this.autoSize:this.autoMinSize?"min":null;e.middleware.push({name:"autoSize",fn:({rects:r,placement:i,middlewareData:s})=>{var a;if((a=s.autoSize)!=null&&a.skip)return{};let l,u;return i.startsWith("top")||i.startsWith("bottom")?l=r.reference.width:u=r.reference.height,this.$_innerNode.style[o==="min"?"minWidth":o==="max"?"maxWidth":"width"]=l!=null?`${l}px`:null,this.$_innerNode.style[o==="min"?"minHeight":o==="max"?"maxHeight":"height"]=u!=null?`${u}px`:null,{data:{skip:!0},reset:{rects:!0}}}})}(this.autoMaxSize||this.autoBoundaryMaxSize)&&(this.$_innerNode.style.maxWidth=null,this.$_innerNode.style.maxHeight=null,e.middleware.push(pi({boundary:this.boundary,padding:this.overflowPadding,apply:({availableWidth:o,availableHeight:r})=>{this.$_innerNode.style.maxWidth=o!=null?`${o}px`:null,this.$_innerNode.style.maxHeight=r!=null?`${r}px`:null}})));const n=await gi(this.$_referenceNode,this.$_popperNode,e);Object.assign(this.result,{x:n.x,y:n.y,placement:n.placement,strategy:n.strategy,arrow:{...n.middlewareData.arrow,...n.middlewareData.arrowOverflow}})},$_scheduleShow(e,t=!1){if(this.$_updateParentShownChildren(!0),this.$_hideInProgress=!1,clearTimeout(this.$_scheduleTimer),we&&this.instantMove&&we.instantMove&&we!==this.parentPopper){we.$_applyHide(!0),this.$_applyShow(!0);return}t?this.$_applyShow():this.$_scheduleTimer=setTimeout(this.$_applyShow.bind(this),this.$_computeDelay("show"))},$_scheduleHide(e,t=!1){if(this.shownChildren.size>0){this.pendingHide=!0;return}this.$_updateParentShownChildren(!1),this.$_hideInProgress=!0,clearTimeout(this.$_scheduleTimer),this.isShown&&(we=this),t?this.$_applyHide():this.$_scheduleTimer=setTimeout(this.$_applyHide.bind(this),this.$_computeDelay("hide"))},$_computeDelay(e){const t=this.delay;return parseInt(t&&t[e]||t||0)},async $_applyShow(e=!1){clearTimeout(this.$_disposeTimer),clearTimeout(this.$_scheduleTimer),this.skipTransition=e,!this.isShown&&(this.$_ensureTeleport(),await At(),await this.$_computePosition(),await this.$_applyShowEffect(),this.positioningDisabled||this.$_registerEventListeners([...rt(this.$_referenceNode),...rt(this.$_popperNode)],"scroll",()=>{this.$_computePosition()}))},async $_applyShowEffect(){if(this.$_hideInProgress)return;if(this.computeTransformOrigin){const t=this.$_referenceNode.getBoundingClientRect(),n=this.$_popperNode.querySelector(".v-popper__wrapper"),o=n.parentNode.getBoundingClientRect(),r=t.x+t.width/2-(o.left+n.offsetLeft),i=t.y+t.height/2-(o.top+n.offsetTop);this.result.transformOrigin=`${r}px ${i}px`}this.isShown=!0,this.$_applyAttrsToTarget({"aria-describedby":this.popperId,"data-popper-shown":""});const e=this.showGroup;if(e){let t;for(let n=0;n<X.length;n++)t=X[n],t.showGroup!==e&&(t.hide(),t.$emit("close-group"))}X.push(this),document.body.classList.add("v-popper--some-open");for(const t of hn(this.theme))wn(t).push(this),document.body.classList.add(`v-popper--some-open--${t}`);this.$emit("apply-show"),this.classes.showFrom=!0,this.classes.showTo=!1,this.classes.hideFrom=!1,this.classes.hideTo=!1,await At(),this.classes.showFrom=!1,this.classes.showTo=!0,this.noAutoFocus||this.$_popperNode.focus()},async $_applyHide(e=!1){if(this.shownChildren.size>0){this.pendingHide=!0,this.$_hideInProgress=!1;return}if(clearTimeout(this.$_scheduleTimer),!this.isShown)return;this.skipTransition=e,gn(X,this),X.length===0&&document.body.classList.remove("v-popper--some-open");for(const n of hn(this.theme)){const o=wn(n);gn(o,this),o.length===0&&document.body.classList.remove(`v-popper--some-open--${n}`)}we===this&&(we=null),this.isShown=!1,this.$_applyAttrsToTarget({"aria-describedby":void 0,"data-popper-shown":void 0}),clearTimeout(this.$_disposeTimer);const t=this.disposeTimeout;t!==null&&(this.$_disposeTimer=setTimeout(()=>{this.$_popperNode&&(this.$_detachPopperNode(),this.isMounted=!1)},t)),this.$_removeEventListeners("scroll"),this.$emit("apply-hide"),this.classes.showFrom=!1,this.classes.showTo=!1,this.classes.hideFrom=!0,this.classes.hideTo=!1,await At(),this.classes.hideFrom=!1,this.classes.hideTo=!0},$_autoShowHide(){this.shown?this.show():this.hide()},$_ensureTeleport(){if(this.isDisposed)return;let e=this.container;if(typeof e=="string"?e=window.document.querySelector(e):e===!1&&(e=this.$_targetNodes[0].parentNode),!e)throw new Error("No container for popover: "+this.container);e.appendChild(this.$_popperNode),this.isMounted=!0},$_addEventListeners(){const e=n=>{this.isShown&&!this.$_hideInProgress||(n.usedByTooltip=!0,!this.$_preventShow&&this.show({event:n}))};this.$_registerTriggerListeners(this.$_targetNodes,fn,this.triggers,this.showTriggers,e),this.$_registerTriggerListeners([this.$_popperNode],fn,this.popperTriggers,this.popperShowTriggers,e);const t=n=>{n.usedByTooltip||this.hide({event:n})};this.$_registerTriggerListeners(this.$_targetNodes,mn,this.triggers,this.hideTriggers,t),this.$_registerTriggerListeners([this.$_popperNode],mn,this.popperTriggers,this.popperHideTriggers,t)},$_registerEventListeners(e,t,n){this.$_events.push({targetNodes:e,eventType:t,handler:n}),e.forEach(o=>o.addEventListener(t,n,We?{passive:!0}:void 0))},$_registerTriggerListeners(e,t,n,o,r){let i=n;o!=null&&(i=typeof o=="function"?o(i):o),i.forEach(s=>{const a=t[s];a&&this.$_registerEventListeners(e,a,r)})},$_removeEventListeners(e){const t=[];this.$_events.forEach(n=>{const{targetNodes:o,eventType:r,handler:i}=n;!e||e===r?o.forEach(s=>s.removeEventListener(r,i)):t.push(n)}),this.$_events=t},$_refreshListeners(){this.isDisposed||(this.$_removeEventListeners(),this.$_addEventListeners())},$_handleGlobalClose(e,t=!1){this.$_showFrameLocked||(this.hide({event:e}),e.closePopover?this.$emit("close-directive"):this.$emit("auto-hide"),t&&(this.$_preventShow=!0,setTimeout(()=>{this.$_preventShow=!1},300)))},$_detachPopperNode(){this.$_popperNode.parentNode&&this.$_popperNode.parentNode.removeChild(this.$_popperNode)},$_swapTargetAttrs(e,t){for(const n of this.$_targetNodes){const o=n.getAttribute(e);o&&(n.removeAttribute(e),n.setAttribute(t,o))}},$_applyAttrsToTarget(e){for(const t of this.$_targetNodes)for(const n in e){const o=e[n];o==null?t.removeAttribute(n):t.setAttribute(n,o)}},$_updateParentShownChildren(e){let t=this.parentPopper;for(;t;)e?t.shownChildren.add(this.randomId):(t.shownChildren.delete(this.randomId),t.pendingHide&&t.hide()),t=t.parentPopper},$_isAimingPopper(){const e=this.$_referenceNode.getBoundingClientRect();if(Fe>=e.left&&Fe<=e.right&&Me>=e.top&&Me<=e.bottom){const t=this.$_popperNode.getBoundingClientRect(),n=Fe-ue,o=Me-ce,r=t.left+t.width/2-ue+(t.top+t.height/2)-ce+t.width+t.height,i=ue+n*r,s=ce+o*r;return Ye(ue,ce,i,s,t.left,t.top,t.left,t.bottom)||Ye(ue,ce,i,s,t.left,t.top,t.right,t.top)||Ye(ue,ce,i,s,t.right,t.top,t.right,t.bottom)||Ye(ue,ce,i,s,t.left,t.bottom,t.right,t.bottom)}return!1}},render(){return this.$slots.default(this.slotData)}});if(typeof document<"u"&&typeof window<"u"){if(Xn){const e=We?{passive:!0,capture:!0}:!0;document.addEventListener("touchstart",t=>yn(t),e),document.addEventListener("touchend",t=>bn(t,!0),e)}else window.addEventListener("mousedown",e=>yn(e),!0),window.addEventListener("click",e=>bn(e,!1),!0);window.addEventListener("resize",Ti)}function yn(e,t){for(let n=0;n<X.length;n++){const o=X[n];try{o.mouseDownContains=o.popperNode().contains(e.target)}catch{}}}function bn(e,t){yi(e,t)}function yi(e,t){const n={};for(let o=X.length-1;o>=0;o--){const r=X[o];try{const i=r.containsGlobalTarget=r.mouseDownContains||r.popperNode().contains(e.target);r.pendingHide=!1,requestAnimationFrame(()=>{if(r.pendingHide=!1,!n[r.randomId]&&Tn(r,i,e)){if(r.$_handleGlobalClose(e,t),!e.closeAllPopover&&e.closePopover&&i){let a=r.parentPopper;for(;a;)n[a.randomId]=!0,a=a.parentPopper;return}let s=r.parentPopper;for(;s&&Tn(s,s.containsGlobalTarget,e);)s.$_handleGlobalClose(e,t),s=s.parentPopper}})}catch{}}}function Tn(e,t,n){return n.closeAllPopover||n.closePopover&&t||bi(e,n)&&!t}function bi(e,t){if(typeof e.autoHide=="function"){const n=e.autoHide(t);return e.lastAutoHide=n,n}return e.autoHide}function Ti(){for(let e=0;e<X.length;e++)X[e].$_computePosition()}let ue=0,ce=0,Fe=0,Me=0;typeof window<"u"&&window.addEventListener("mousemove",e=>{ue=Fe,ce=Me,Fe=e.clientX,Me=e.clientY},We?{passive:!0}:void 0);function Ye(e,t,n,o,r,i,s,a){const l=((s-r)*(t-i)-(a-i)*(e-r))/((a-i)*(n-e)-(s-r)*(o-t)),u=((n-e)*(t-i)-(o-t)*(e-r))/((a-i)*(n-e)-(s-r)*(o-t));return l>=0&&l<=1&&u>=0&&u<=1}const Si={extends:Zn()},Xt=(e,t)=>{const n=e.__vccOpts||e;for(const[o,r]of t)n[o]=r;return n};function xi(e,t,n,o,r,i){return H(),se("div",{ref:"reference",class:et(["v-popper",{"v-popper--shown":e.slotData.isShown}])},[me(e.$slots,"default",Ct(Ot(e.slotData)))],2)}const $i=Xt(Si,[["render",xi]]);function Ai(){var e=window.navigator.userAgent,t=e.indexOf("MSIE ");if(t>0)return parseInt(e.substring(t+5,e.indexOf(".",t)),10);var n=e.indexOf("Trident/");if(n>0){var o=e.indexOf("rv:");return parseInt(e.substring(o+3,e.indexOf(".",o)),10)}var r=e.indexOf("Edge/");return r>0?parseInt(e.substring(r+5,e.indexOf(".",r)),10):-1}let Ze;function Bt(){Bt.init||(Bt.init=!0,Ze=Ai()!==-1)}var Je={name:"ResizeObserver",props:{emitOnMount:{type:Boolean,default:!1},ignoreWidth:{type:Boolean,default:!1},ignoreHeight:{type:Boolean,default:!1}},emits:["notify"],mounted(){Bt(),Wt(()=>{this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitOnMount&&this.emitSize()});const e=document.createElement("object");this._resizeObject=e,e.setAttribute("aria-hidden","true"),e.setAttribute("tabindex",-1),e.onload=this.addResizeHandlers,e.type="text/html",Ze&&this.$el.appendChild(e),e.data="about:blank",Ze||this.$el.appendChild(e)},beforeUnmount(){this.removeResizeHandlers()},methods:{compareAndNotify(){(!this.ignoreWidth&&this._w!==this.$el.offsetWidth||!this.ignoreHeight&&this._h!==this.$el.offsetHeight)&&(this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitSize())},emitSize(){this.$emit("notify",{width:this._w,height:this._h})},addResizeHandlers(){this._resizeObject.contentDocument.defaultView.addEventListener("resize",this.compareAndNotify),this.compareAndNotify()},removeResizeHandlers(){this._resizeObject&&this._resizeObject.onload&&(!Ze&&this._resizeObject.contentDocument&&this._resizeObject.contentDocument.defaultView.removeEventListener("resize",this.compareAndNotify),this.$el.removeChild(this._resizeObject),this._resizeObject.onload=null,this._resizeObject=null)}}};const _i=To();wo("data-v-b329ee4c");const ki={class:"resize-observer",tabindex:"-1"};yo();const Ni=_i((e,t,n,o,r,i)=>(H(),Se("div",ki)));Je.render=Ni,Je.__scopeId="data-v-b329ee4c",Je.__file="src/components/ResizeObserver.vue";const Jn=(e="theme")=>({computed:{themeClass(){return vi(this[e])}}}),Pi=Ne({name:"VPopperContent",components:{ResizeObserver:Je},mixins:[Jn()],props:{popperId:String,theme:String,shown:Boolean,mounted:Boolean,skipTransition:Boolean,autoHide:Boolean,handleResize:Boolean,classes:Object,result:Object},emits:["hide","resize"],methods:{toPx(e){return e!=null&&!isNaN(e)?`${e}px`:null}}}),Ei=["id","aria-hidden","tabindex","data-popper-placement"],Ci={ref:"inner",class:"v-popper__inner"},Oi=G("div",{class:"v-popper__arrow-outer"},null,-1),Di=G("div",{class:"v-popper__arrow-inner"},null,-1),Ri=[Oi,Di];function Fi(e,t,n,o,r,i){const s=Le("ResizeObserver");return H(),se("div",{id:e.popperId,ref:"popover",class:et(["v-popper__popper",[e.themeClass,e.classes.popperClass,{"v-popper__popper--shown":e.shown,"v-popper__popper--hidden":!e.shown,"v-popper__popper--show-from":e.classes.showFrom,"v-popper__popper--show-to":e.classes.showTo,"v-popper__popper--hide-from":e.classes.hideFrom,"v-popper__popper--hide-to":e.classes.hideTo,"v-popper__popper--skip-transition":e.skipTransition,"v-popper__popper--arrow-overflow":e.result&&e.result.arrow.overflow,"v-popper__popper--no-positioning":!e.result}]]),style:xt(e.result?{position:e.result.strategy,transform:`translate3d(${Math.round(e.result.x)}px,${Math.round(e.result.y)}px,0)`}:void 0),"aria-hidden":e.shown?"false":"true",tabindex:e.autoHide?0:void 0,"data-popper-placement":e.result?e.result.placement:void 0,onKeyup:t[2]||(t[2]=bo(a=>e.autoHide&&e.$emit("hide"),["esc"]))},[G("div",{class:"v-popper__backdrop",onClick:t[0]||(t[0]=a=>e.autoHide&&e.$emit("hide"))}),G("div",{class:"v-popper__wrapper",style:xt(e.result?{transformOrigin:e.result.transformOrigin}:void 0)},[G("div",Ci,[e.mounted?(H(),se(jt,{key:0},[G("div",null,[me(e.$slots,"default")]),e.handleResize?(H(),Se(s,{key:0,onNotify:t[1]||(t[1]=a=>e.$emit("resize",a))})):de("",!0)],64)):de("",!0)],512),G("div",{ref:"arrow",class:"v-popper__arrow-container",style:xt(e.result?{left:e.toPx(e.result.arrow.x),top:e.toPx(e.result.arrow.y)}:void 0)},Ri,4)],4)],46,Ei)}const Qn=Xt(Pi,[["render",Fi]]),eo={methods:{show(...e){return this.$refs.popper.show(...e)},hide(...e){return this.$refs.popper.hide(...e)},dispose(...e){return this.$refs.popper.dispose(...e)},onResize(...e){return this.$refs.popper.onResize(...e)}}};let Lt=function(){};typeof window<"u"&&(Lt=window.Element);const Mi=Ne({name:"VPopperWrapper",components:{Popper:$i,PopperContent:Qn},mixins:[eo,Jn("finalTheme")],props:{theme:{type:String,default:null},referenceNode:{type:Function,default:null},shown:{type:Boolean,default:!1},showGroup:{type:String,default:null},ariaId:{default:null},disabled:{type:Boolean,default:void 0},positioningDisabled:{type:Boolean,default:void 0},placement:{type:String,default:void 0},delay:{type:[String,Number,Object],default:void 0},distance:{type:[Number,String],default:void 0},skidding:{type:[Number,String],default:void 0},triggers:{type:Array,default:void 0},showTriggers:{type:[Array,Function],default:void 0},hideTriggers:{type:[Array,Function],default:void 0},popperTriggers:{type:Array,default:void 0},popperShowTriggers:{type:[Array,Function],default:void 0},popperHideTriggers:{type:[Array,Function],default:void 0},container:{type:[String,Object,Lt,Boolean],default:void 0},boundary:{type:[String,Lt],default:void 0},strategy:{type:String,default:void 0},autoHide:{type:[Boolean,Function],default:void 0},handleResize:{type:Boolean,default:void 0},instantMove:{type:Boolean,default:void 0},eagerMount:{type:Boolean,default:void 0},popperClass:{type:[String,Array,Object],default:void 0},computeTransformOrigin:{type:Boolean,default:void 0},autoMinSize:{type:Boolean,default:void 0},autoSize:{type:[Boolean,String],default:void 0},autoMaxSize:{type:Boolean,default:void 0},autoBoundaryMaxSize:{type:Boolean,default:void 0},preventOverflow:{type:Boolean,default:void 0},overflowPadding:{type:[Number,String],default:void 0},arrowPadding:{type:[Number,String],default:void 0},arrowOverflow:{type:Boolean,default:void 0},flip:{type:Boolean,default:void 0},shift:{type:Boolean,default:void 0},shiftCrossAxis:{type:Boolean,default:void 0},noAutoFocus:{type:Boolean,default:void 0},disposeTimeout:{type:Number,default:void 0}},emits:{show:()=>!0,hide:()=>!0,"update:shown":e=>!0,"apply-show":()=>!0,"apply-hide":()=>!0,"close-group":()=>!0,"close-directive":()=>!0,"auto-hide":()=>!0,resize:()=>!0},computed:{finalTheme(){return this.theme??this.$options.vPopperTheme}},methods:{getTargetNodes(){return Array.from(this.$el.children).filter(e=>e!==this.$refs.popperContent.$el)}}});function Bi(e,t,n,o,r,i){const s=Le("PopperContent"),a=Le("Popper");return H(),Se(a,pt({ref:"popper"},e.$props,{theme:e.finalTheme,"target-nodes":e.getTargetNodes,"popper-node":()=>e.$refs.popperContent.$el,class:[e.themeClass],onShow:t[0]||(t[0]=()=>e.$emit("show")),onHide:t[1]||(t[1]=()=>e.$emit("hide")),"onUpdate:shown":t[2]||(t[2]=l=>e.$emit("update:shown",l)),onApplyShow:t[3]||(t[3]=()=>e.$emit("apply-show")),onApplyHide:t[4]||(t[4]=()=>e.$emit("apply-hide")),onCloseGroup:t[5]||(t[5]=()=>e.$emit("close-group")),onCloseDirective:t[6]||(t[6]=()=>e.$emit("close-directive")),onAutoHide:t[7]||(t[7]=()=>e.$emit("auto-hide")),onResize:t[8]||(t[8]=()=>e.$emit("resize"))}),{default:W(({popperId:l,isShown:u,shouldMountContent:d,skipTransition:c,autoHide:f,show:p,hide:v,handleResize:y,onResize:m,classes:w,result:T})=>[me(e.$slots,"default",{shown:u,show:p,hide:v}),j(s,{ref:"popperContent","popper-id":l,theme:e.finalTheme,shown:u,mounted:d,"skip-transition":c,"auto-hide":f,"handle-resize":y,classes:w,result:T,onHide:v,onResize:m},{default:W(()=>[me(e.$slots,"popper",{shown:u,hide:v})]),_:2},1032,["popper-id","theme","shown","mounted","skip-transition","auto-hide","handle-resize","classes","result","onHide","onResize"])]),_:3},16,["theme","target-nodes","popper-node","class"])}const It=Xt(Mi,[["render",Bi]]),Li={...It,name:"VDropdown",vPopperTheme:"dropdown"};({...It},{...It}),Ne({name:"VTooltipDirective",components:{Popper:Zn(),PopperContent:Qn},mixins:[eo],inheritAttrs:!1,props:{theme:{type:String,default:"tooltip"},html:{type:Boolean,default:e=>Ft(e.theme,"html")},content:{type:[String,Number,Function],default:null},loadingContent:{type:String,default:e=>Ft(e.theme,"loadingContent")},targetNodes:{type:Function,required:!0}},data(){return{asyncContent:null}},computed:{isContentAsync(){return typeof this.content=="function"},loading(){return this.isContentAsync&&this.asyncContent==null},finalContent(){return this.isContentAsync?this.loading?this.loadingContent:this.asyncContent:this.content}},watch:{content:{handler(){this.fetchContent(!0)},immediate:!0},async finalContent(){await this.$nextTick(),this.$refs.popper.onResize()}},created(){this.$_fetchId=0},methods:{fetchContent(e){if(typeof this.content=="function"&&this.$_isShown&&(e||!this.$_loading&&this.asyncContent==null)){this.asyncContent=null,this.$_loading=!0;const t=++this.$_fetchId,n=this.content(this);n.then?n.then(o=>this.onResult(t,o)):this.onResult(t,n)}},onResult(e,t){e===this.$_fetchId&&(this.$_loading=!1,this.asyncContent=t)},onShow(){this.$_isShown=!0,this.fetchContent()},onHide(){this.$_isShown=!1}}});const Sn=fe,Ii=Li;var to=["input:not([inert])","select:not([inert])","textarea:not([inert])","a[href]:not([inert])","button:not([inert])","[tabindex]:not(slot):not([inert])","audio[controls]:not([inert])","video[controls]:not([inert])",'[contenteditable]:not([contenteditable="false"]):not([inert])',"details>summary:first-of-type:not([inert])","details:not([inert])"],st=to.join(","),no=typeof Element>"u",$e=no?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,at=!no&&Element.prototype.getRootNode?function(e){var t;return e==null||(t=e.getRootNode)===null||t===void 0?void 0:t.call(e)}:function(e){return e?.ownerDocument},Ge=function(e,t){var n;t===void 0&&(t=!0);var o=e==null||(n=e.getAttribute)===null||n===void 0?void 0:n.call(e,"inert"),r=o===""||o==="true",i=r||t&&e&&Ge(e.parentNode);return i},zi=function(e){var t,n=e==null||(t=e.getAttribute)===null||t===void 0?void 0:t.call(e,"contenteditable");return n===""||n==="true"},oo=function(e,t,n){if(Ge(e))return[];var o=Array.prototype.slice.apply(e.querySelectorAll(st));return t&&$e.call(e,st)&&o.unshift(e),o=o.filter(n),o},lt=function(e,t,n){for(var o=[],r=Array.from(e);r.length;){var i=r.shift();if(!Ge(i,!1))if(i.tagName==="SLOT"){var s=i.assignedElements(),a=s.length?s:i.children,l=lt(a,!0,n);n.flatten?o.push.apply(o,l):o.push({scopeParent:i,candidates:l})}else{var u=$e.call(i,st);u&&n.filter(i)&&(t||!e.includes(i))&&o.push(i);var d=i.shadowRoot||typeof n.getShadowRoot=="function"&&n.getShadowRoot(i),c=!Ge(d,!1)&&(!n.shadowRootFilter||n.shadowRootFilter(i));if(d&&c){var f=lt(d===!0?i.children:d.children,!0,n);n.flatten?o.push.apply(o,f):o.push({scopeParent:i,candidates:f})}else r.unshift.apply(r,i.children)}}return o},io=function(e){return!isNaN(parseInt(e.getAttribute("tabindex"),10))},be=function(e){if(!e)throw new Error("No node provided");return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||zi(e))&&!io(e)?0:e.tabIndex},Hi=function(e,t){var n=be(e);return n<0&&t&&!io(e)?0:n},ji=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},ro=function(e){return e.tagName==="INPUT"},Wi=function(e){return ro(e)&&e.type==="hidden"},Gi=function(e){var t=e.tagName==="DETAILS"&&Array.prototype.slice.apply(e.children).some(function(n){return n.tagName==="SUMMARY"});return t},Vi=function(e,t){for(var n=0;n<e.length;n++)if(e[n].checked&&e[n].form===t)return e[n]},qi=function(e){if(!e.name)return!0;var t=e.form||at(e),n=function(i){return t.querySelectorAll('input[type="radio"][name="'+i+'"]')},o;if(typeof window<"u"&&typeof window.CSS<"u"&&typeof window.CSS.escape=="function")o=n(window.CSS.escape(e.name));else try{o=n(e.name)}catch(i){return console.error("Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s",i.message),!1}var r=Vi(o,e.form);return!r||r===e},Ki=function(e){return ro(e)&&e.type==="radio"},Ui=function(e){return Ki(e)&&!qi(e)},Yi=function(e){var t,n=e&&at(e),o=(t=n)===null||t===void 0?void 0:t.host,r=!1;if(n&&n!==e){var i,s,a;for(r=!!((i=o)!==null&&i!==void 0&&(s=i.ownerDocument)!==null&&s!==void 0&&s.contains(o)||e!=null&&(a=e.ownerDocument)!==null&&a!==void 0&&a.contains(e));!r&&o;){var l,u,d;n=at(o),o=(l=n)===null||l===void 0?void 0:l.host,r=!!((u=o)!==null&&u!==void 0&&(d=u.ownerDocument)!==null&&d!==void 0&&d.contains(o))}}return r},xn=function(e){var t=e.getBoundingClientRect(),n=t.width,o=t.height;return n===0&&o===0},Xi=function(e,t){var n=t.displayCheck,o=t.getShadowRoot;if(n==="full-native"&&"checkVisibility"in e){var r=e.checkVisibility({checkOpacity:!1,opacityProperty:!1,contentVisibilityAuto:!0,visibilityProperty:!0,checkVisibilityCSS:!0});return!r}if(getComputedStyle(e).visibility==="hidden")return!0;var i=$e.call(e,"details>summary:first-of-type"),s=i?e.parentElement:e;if($e.call(s,"details:not([open]) *"))return!0;if(!n||n==="full"||n==="full-native"||n==="legacy-full"){if(typeof o=="function"){for(var a=e;e;){var l=e.parentElement,u=at(e);if(l&&!l.shadowRoot&&o(l)===!0)return xn(e);e.assignedSlot?e=e.assignedSlot:!l&&u!==e.ownerDocument?e=u.host:e=l}e=a}if(Yi(e))return!e.getClientRects().length;if(n!=="legacy-full")return!0}else if(n==="non-zero-area")return xn(e);return!1},Zi=function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if(t.tagName==="FIELDSET"&&t.disabled){for(var n=0;n<t.children.length;n++){var o=t.children.item(n);if(o.tagName==="LEGEND")return $e.call(t,"fieldset[disabled] *")?!0:!o.contains(e)}return!0}t=t.parentElement}return!1},ut=function(e,t){return!(t.disabled||Ge(t)||Wi(t)||Xi(t,e)||Gi(t)||Zi(t))},zt=function(e,t){return!(Ui(t)||be(t)<0||!ut(e,t))},Ji=function(e){var t=parseInt(e.getAttribute("tabindex"),10);return!!(isNaN(t)||t>=0)},so=function(e){var t=[],n=[];return e.forEach(function(o,r){var i=!!o.scopeParent,s=i?o.scopeParent:o,a=Hi(s,i),l=i?so(o.candidates):s;a===0?i?t.push.apply(t,l):t.push(s):n.push({documentOrder:r,tabIndex:a,item:o,isScope:i,content:l})}),n.sort(ji).reduce(function(o,r){return r.isScope?o.push.apply(o,r.content):o.push(r.content),o},[]).concat(t)},Qi=function(e,t){t=t||{};var n;return t.getShadowRoot?n=lt([e],t.includeContainer,{filter:zt.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:Ji}):n=oo(e,t.includeContainer,zt.bind(null,t)),so(n)},er=function(e,t){t=t||{};var n;return t.getShadowRoot?n=lt([e],t.includeContainer,{filter:ut.bind(null,t),flatten:!0,getShadowRoot:t.getShadowRoot}):n=oo(e,t.includeContainer,ut.bind(null,t)),n},Ae=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return $e.call(e,st)===!1?!1:zt(t,e)},tr=to.concat("iframe").join(","),kt=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return $e.call(e,tr)===!1?!1:ut(t,e)};function Ht(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,o=Array(t);n<t;n++)o[n]=e[n];return o}function nr(e){if(Array.isArray(e))return Ht(e)}function or(e,t,n){return(t=lr(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ir(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function rr(){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 $n(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),n.push.apply(n,o)}return n}function An(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?$n(Object(n),!0).forEach(function(o){or(e,o,n[o])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):$n(Object(n)).forEach(function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(n,o))})}return e}function sr(e){return nr(e)||ir(e)||ur(e)||rr()}function ar(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var o=n.call(e,t);if(typeof o!="object")return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function lr(e){var t=ar(e,"string");return typeof t=="symbol"?t:t+""}function ur(e,t){if(e){if(typeof e=="string")return Ht(e,t);var n={}.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Ht(e,t):void 0}}var _n={activateTrap:function(e,t){if(e.length>0){var n=e[e.length-1];n!==t&&n._setPausedState(!0)}var o=e.indexOf(t);o===-1||e.splice(o,1),e.push(t)},deactivateTrap:function(e,t){var n=e.indexOf(t);n!==-1&&e.splice(n,1),e.length>0&&!e[e.length-1]._isManuallyPaused()&&e[e.length-1]._setPausedState(!1)}},cr=function(e){return e.tagName&&e.tagName.toLowerCase()==="input"&&typeof e.select=="function"},dr=function(e){return e?.key==="Escape"||e?.key==="Esc"||e?.keyCode===27},Be=function(e){return e?.key==="Tab"||e?.keyCode===9},pr=function(e){return Be(e)&&!e.shiftKey},hr=function(e){return Be(e)&&e.shiftKey},kn=function(e){return setTimeout(e,0)},Oe=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];return typeof e=="function"?e.apply(void 0,n):e},Xe=function(e){return e.target.shadowRoot&&typeof e.composedPath=="function"?e.composedPath()[0]:e.target},fr=[],ao=function(e,t){var n=t?.document||document,o=t?.trapStack||fr,r=An({returnFocusOnDeactivate:!0,escapeDeactivates:!0,delayInitialFocus:!0,isKeyForward:pr,isKeyBackward:hr},t),i={containers:[],containerGroups:[],tabbableGroups:[],nodeFocusedBeforeActivation:null,mostRecentlyFocusedNode:null,active:!1,paused:!1,manuallyPaused:!1,delayInitialFocusTimer:void 0,recentNavEvent:void 0},s,a=function(h,g,x){return h&&h[g]!==void 0?h[g]:r[x||g]},l=function(h,g){var x=typeof g?.composedPath=="function"?g.composedPath():void 0;return i.containerGroups.findIndex(function(_){var N=_.container,O=_.tabbableNodes;return N.contains(h)||x?.includes(N)||O.find(function($){return $===h})})},u=function(h){var g=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},x=g.hasFallback,_=x===void 0?!1:x,N=g.params,O=N===void 0?[]:N,$=r[h];if(typeof $=="function"&&($=$.apply(void 0,sr(O))),$===!0&&($=void 0),!$){if($===void 0||$===!1)return $;throw new Error("`".concat(h,"` was specified but was not a node, or did not return a node"))}var F=$;if(typeof $=="string"){try{F=n.querySelector($)}catch(D){throw new Error("`".concat(h,'` appears to be an invalid selector; error="').concat(D.message,'"'))}if(!F&&!_)throw new Error("`".concat(h,"` as selector refers to no known node"))}return F},d=function(){var h=u("initialFocus",{hasFallback:!0});if(h===!1)return!1;if(h===void 0||h&&!kt(h,r.tabbableOptions))if(l(n.activeElement)>=0)h=n.activeElement;else{var g=i.tabbableGroups[0],x=g&&g.firstTabbableNode;h=x||u("fallbackFocus")}else h===null&&(h=u("fallbackFocus"));if(!h)throw new Error("Your focus-trap needs to have at least one focusable element");return h},c=function(){if(i.containerGroups=i.containers.map(function(h){var g=Qi(h,r.tabbableOptions),x=er(h,r.tabbableOptions),_=g.length>0?g[0]:void 0,N=g.length>0?g[g.length-1]:void 0,O=x.find(function(D){return Ae(D)}),$=x.slice().reverse().find(function(D){return Ae(D)}),F=!!g.find(function(D){return be(D)>0});return{container:h,tabbableNodes:g,focusableNodes:x,posTabIndexesFound:F,firstTabbableNode:_,lastTabbableNode:N,firstDomTabbableNode:O,lastDomTabbableNode:$,nextTabbableNode:function(D){var le=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,Pe=g.indexOf(D);return Pe<0?le?x.slice(x.indexOf(D)+1).find(function(re){return Ae(re)}):x.slice(0,x.indexOf(D)).reverse().find(function(re){return Ae(re)}):g[Pe+(le?1:-1)]}}}),i.tabbableGroups=i.containerGroups.filter(function(h){return h.tabbableNodes.length>0}),i.tabbableGroups.length<=0&&!u("fallbackFocus"))throw new Error("Your focus-trap must have at least one container with at least one tabbable node in it at all times");if(i.containerGroups.find(function(h){return h.posTabIndexesFound})&&i.containerGroups.length>1)throw new Error("At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.")},f=function(h){var g=h.activeElement;if(g)return g.shadowRoot&&g.shadowRoot.activeElement!==null?f(g.shadowRoot):g},p=function(h){if(h!==!1&&h!==f(document)){if(!h||!h.focus){p(d());return}h.focus({preventScroll:!!r.preventScroll}),i.mostRecentlyFocusedNode=h,cr(h)&&h.select()}},v=function(h){var g=u("setReturnFocus",{params:[h]});return g||(g===!1?!1:h)},y=function(h){var g=h.target,x=h.event,_=h.isBackward,N=_===void 0?!1:_;g=g||Xe(x),c();var O=null;if(i.tabbableGroups.length>0){var $=l(g,x),F=$>=0?i.containerGroups[$]:void 0;if($<0)N?O=i.tabbableGroups[i.tabbableGroups.length-1].lastTabbableNode:O=i.tabbableGroups[0].firstTabbableNode;else if(N){var D=i.tabbableGroups.findIndex(function(Tt){var St=Tt.firstTabbableNode;return g===St});if(D<0&&(F.container===g||kt(g,r.tabbableOptions)&&!Ae(g,r.tabbableOptions)&&!F.nextTabbableNode(g,!1))&&(D=$),D>=0){var le=D===0?i.tabbableGroups.length-1:D-1,Pe=i.tabbableGroups[le];O=be(g)>=0?Pe.lastTabbableNode:Pe.lastDomTabbableNode}else Be(x)||(O=F.nextTabbableNode(g,!1))}else{var re=i.tabbableGroups.findIndex(function(Tt){var St=Tt.lastTabbableNode;return g===St});if(re<0&&(F.container===g||kt(g,r.tabbableOptions)&&!Ae(g,r.tabbableOptions)&&!F.nextTabbableNode(g))&&(re=$),re>=0){var vo=re===i.tabbableGroups.length-1?0:re+1,Jt=i.tabbableGroups[vo];O=be(g)>=0?Jt.firstTabbableNode:Jt.firstDomTabbableNode}else Be(x)||(O=F.nextTabbableNode(g))}}else O=u("fallbackFocus");return O},m=function(h){var g=Xe(h);if(!(l(g,h)>=0)){if(Oe(r.clickOutsideDeactivates,h)){s.deactivate({returnFocus:r.returnFocusOnDeactivate});return}Oe(r.allowOutsideClick,h)||h.preventDefault()}},w=function(h){var g=Xe(h),x=l(g,h)>=0;if(x||g instanceof Document)x&&(i.mostRecentlyFocusedNode=g);else{h.stopImmediatePropagation();var _,N=!0;if(i.mostRecentlyFocusedNode)if(be(i.mostRecentlyFocusedNode)>0){var O=l(i.mostRecentlyFocusedNode),$=i.containerGroups[O].tabbableNodes;if($.length>0){var F=$.findIndex(function(D){return D===i.mostRecentlyFocusedNode});F>=0&&(r.isKeyForward(i.recentNavEvent)?F+1<$.length&&(_=$[F+1],N=!1):F-1>=0&&(_=$[F-1],N=!1))}}else i.containerGroups.some(function(D){return D.tabbableNodes.some(function(le){return be(le)>0})})||(N=!1);else N=!1;N&&(_=y({target:i.mostRecentlyFocusedNode,isBackward:r.isKeyBackward(i.recentNavEvent)})),p(_||i.mostRecentlyFocusedNode||d())}i.recentNavEvent=void 0},T=function(h){var g=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;i.recentNavEvent=h;var x=y({event:h,isBackward:g});x&&(Be(h)&&h.preventDefault(),p(x))},S=function(h){(r.isKeyForward(h)||r.isKeyBackward(h))&&T(h,r.isKeyBackward(h))},A=function(h){dr(h)&&Oe(r.escapeDeactivates,h)!==!1&&(h.preventDefault(),s.deactivate())},C=function(h){var g=Xe(h);l(g,h)>=0||Oe(r.clickOutsideDeactivates,h)||Oe(r.allowOutsideClick,h)||(h.preventDefault(),h.stopImmediatePropagation())},k=function(){if(i.active)return _n.activateTrap(o,s),i.delayInitialFocusTimer=r.delayInitialFocus?kn(function(){p(d())}):p(d()),n.addEventListener("focusin",w,!0),n.addEventListener("mousedown",m,{capture:!0,passive:!1}),n.addEventListener("touchstart",m,{capture:!0,passive:!1}),n.addEventListener("click",C,{capture:!0,passive:!1}),n.addEventListener("keydown",S,{capture:!0,passive:!1}),n.addEventListener("keydown",A),s},R=function(){if(i.active)return n.removeEventListener("focusin",w,!0),n.removeEventListener("mousedown",m,!0),n.removeEventListener("touchstart",m,!0),n.removeEventListener("click",C,!0),n.removeEventListener("keydown",S,!0),n.removeEventListener("keydown",A),s},b=function(h){var g=h.some(function(x){var _=Array.from(x.removedNodes);return _.some(function(N){return N===i.mostRecentlyFocusedNode})});g&&p(d())},P=typeof window<"u"&&"MutationObserver"in window?new MutationObserver(b):void 0,B=function(){P&&(P.disconnect(),i.active&&!i.paused&&i.containers.map(function(h){P.observe(h,{subtree:!0,childList:!0})}))};return s={get active(){return i.active},get paused(){return i.paused},activate:function(h){if(i.active)return this;var g=a(h,"onActivate"),x=a(h,"onPostActivate"),_=a(h,"checkCanFocusTrap");_||c(),i.active=!0,i.paused=!1,i.nodeFocusedBeforeActivation=f(n),g?.();var N=function(){_&&c(),k(),B(),x?.()};return _?(_(i.containers.concat()).then(N,N),this):(N(),this)},deactivate:function(h){if(!i.active)return this;var g=An({onDeactivate:r.onDeactivate,onPostDeactivate:r.onPostDeactivate,checkCanReturnFocus:r.checkCanReturnFocus},h);clearTimeout(i.delayInitialFocusTimer),i.delayInitialFocusTimer=void 0,R(),i.active=!1,i.paused=!1,B(),_n.deactivateTrap(o,s);var x=a(g,"onDeactivate"),_=a(g,"onPostDeactivate"),N=a(g,"checkCanReturnFocus"),O=a(g,"returnFocus","returnFocusOnDeactivate");x?.();var $=function(){kn(function(){O&&p(v(i.nodeFocusedBeforeActivation)),_?.()})};return O&&N?(N(v(i.nodeFocusedBeforeActivation)).then($,$),this):($(),this)},pause:function(h){return i.active?(i.manuallyPaused=!0,this._setPausedState(!0,h)):this},unpause:function(h){return i.active?(i.manuallyPaused=!1,o[o.length-1]!==this?this:this._setPausedState(!1,h)):this},updateContainerElements:function(h){var g=[].concat(h).filter(Boolean);return i.containers=g.map(function(x){return typeof x=="string"?n.querySelector(x):x}),i.active&&c(),B(),this}},Object.defineProperties(s,{_isManuallyPaused:{value:function(){return i.manuallyPaused}},_setPausedState:{value:function(h,g){if(i.paused===h)return this;if(i.paused=h,h){var x=a(g,"onPause"),_=a(g,"onPostPause");x?.(),R(),B(),_?.()}else{var N=a(g,"onUnpause"),O=a(g,"onPostUnpause");N?.(),c(),k(),B(),O?.()}return this}}}),s.updateContainerElements(e),s};const ct=jo(),mr=Ne({name:"NcPopoverTriggerProvider",provide(){return{"NcPopover:trigger:shown":()=>this.shown,"NcPopover:trigger:attrs":()=>this.triggerAttrs}},props:{shown:{type:Boolean,required:!0},popupRole:{type:String,default:void 0}},computed:{triggerAttrs(){return{"aria-haspopup":this.popupRole,"aria-expanded":this.shown.toString()}}},render(){return this.$slots.default?.({attrs:this.triggerAttrs})}}),gr="_ncPopover_wpltc_20",vr={"material-design-icon":"_material-design-icon_wpltc_12",ncPopover:gr},lo="nc-popover-9";Sn.themes[lo]=structuredClone(Sn.themes.dropdown);const wr={name:"NcPopover",components:{Dropdown:Ii,NcPopoverTriggerProvider:mr},props:{boundary:{type:[String,Object],default:""},closeOnClickOutside:{type:Boolean,default:!0},noCloseOnClickOutside:{type:Boolean,default:!1},container:{type:[Boolean,String],default:"body"},delay:{type:[Number,Object],default:0},noFocusTrap:{type:Boolean,default:!1},placement:{type:String,default:"bottom"},popoverBaseClass:{type:String,default:""},popoverTriggers:{type:[Array,Object],default:null},popupRole:{type:String,default:void 0,validator:e=>["menu","listbox","tree","grid","dialog","true"].includes(e)},setReturnFocus:{default:void 0,type:[Boolean,HTMLElement,SVGElement,String,Function]},shown:{type:Boolean,default:!1},triggers:{type:[Array,Object],default:()=>["click"]}},emits:["afterShow","afterHide","update:shown"],setup(){return{theme:lo}},data(){return{internalShown:this.shown}},computed:{popperTriggers(){if(this.popoverTriggers&&Array.isArray(this.popoverTriggers))return this.popoverTriggers},popperHideTriggers(){if(this.popoverTriggers&&typeof this.popoverTriggers=="object")return this.popoverTriggers.hide},popperShowTriggers(){if(this.popoverTriggers&&typeof this.popoverTriggers=="object")return this.popoverTriggers.show},internalTriggers(){if(this.triggers&&Array.isArray(this.triggers))return this.triggers},hideTriggers(){if(this.triggers&&typeof this.triggers=="object")return this.triggers.hide},showTriggers(){if(this.triggers&&typeof this.triggers=="object")return this.triggers.show},internalPlacement(){return this.placement==="start"?ct?"right":"left":this.placement==="end"?ct?"left":"right":this.placement}},watch:{shown(e){this.internalShown=e},internalShown(e){this.$emit("update:shown",e)}},mounted(){this.checkTriggerA11y()},beforeUnmount(){this.clearFocusTrap(),this.clearEscapeStopPropagation()},methods:{checkTriggerA11y(){window.OC?.debug&&this.getPopoverTriggerContainerElement().querySelector("[aria-expanded]")},removeFloatingVueAriaDescribedBy(){const e=this.getPopoverTriggerContainerElement().querySelectorAll("[data-popper-shown]");for(const t of e)t.removeAttribute("aria-describedby")},getPopoverContentElement(){return this.$refs.popover?.$refs.popperContent?.$el},getPopoverTriggerContainerElement(){return this.$refs.popover?.$refs.popper?.$refs.reference},async useFocusTrap(){if(await this.$nextTick(),this.noFocusTrap)return;const e=this.getPopoverContentElement();e.tabIndex=-1,e&&(this.$focusTrap=ao(e,{escapeDeactivates:!1,allowOutsideClick:!0,setReturnFocus:this.setReturnFocus,trapStack:Ie(),fallBackFocus:e}),this.$focusTrap.activate())},clearFocusTrap(e={}){try{this.$focusTrap?.deactivate(e),this.$focusTrap=null}catch(t){Fo.warn("[NcPopover] Failed to clear focus trap",{error:t})}},addEscapeStopPropagation(){this.getPopoverContentElement()?.addEventListener("keydown",this.stopKeydownEscapeHandler)},clearEscapeStopPropagation(){this.getPopoverContentElement()?.removeEventListener("keydown",this.stopKeydownEscapeHandler)},stopKeydownEscapeHandler(e){e.type==="keydown"&&e.key==="Escape"&&e.stopPropagation()},async afterShow(){this.getPopoverContentElement().addEventListener("transitionend",()=>{this.$emit("afterShow")},{once:!0,passive:!0}),this.removeFloatingVueAriaDescribedBy(),await this.$nextTick(),await this.useFocusTrap(),this.addEscapeStopPropagation()},afterHide(){this.getPopoverContentElement()?.addEventListener("transitionend",()=>{this.$emit("afterHide")},{once:!0,passive:!0}),this.clearFocusTrap(),this.clearEscapeStopPropagation()}}};function yr(e,t,n,o,r,i){const s=Le("NcPopoverTriggerProvider"),a=Le("Dropdown");return H(),Se(a,{ref:"popover",shown:r.internalShown,"onUpdate:shown":[t[0]||(t[0]=l=>r.internalShown=l),t[1]||(t[1]=l=>r.internalShown=l)],"arrow-padding":10,"auto-hide":!n.noCloseOnClickOutside&&n.closeOnClickOutside,boundary:n.boundary||void 0,container:n.container,delay:n.delay,distance:10,"handle-resize":"","no-auto-focus":!0,placement:i.internalPlacement,"popper-class":[e.$style.ncPopover,n.popoverBaseClass],"popper-triggers":i.popperTriggers,"popper-hide-triggers":i.popperHideTriggers,"popper-show-triggers":i.popperShowTriggers,theme:o.theme,triggers:i.internalTriggers,"hide-triggers":i.hideTriggers,"show-triggers":i.showTriggers,onApplyShow:i.afterShow,onApplyHide:i.afterHide},{popper:W(l=>[me(e.$slots,"default",Ct(Ot(l)))]),default:W(()=>[j(s,{shown:r.internalShown,"popup-role":n.popupRole},{default:W(l=>[me(e.$slots,"trigger",Ct(Ot(l)))]),_:3},8,["shown","popup-role"])]),_:3},8,["shown","auto-hide","boundary","container","delay","placement","popper-class","popper-triggers","popper-hide-triggers","popper-show-triggers","theme","triggers","hide-triggers","show-triggers","onApplyShow","onApplyHide"])}const br={$style:vr},Nn=mt(wr,[["render",yr],["__cssModules",br]]),Tr={name:"DotsHorizontalIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Sr=["aria-hidden","aria-label"],xr=["fill","width","height"],$r={d:"M16,12A2,2 0 0,1 18,10A2,2 0 0,1 20,12A2,2 0 0,1 18,14A2,2 0 0,1 16,12M10,12A2,2 0 0,1 12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12M4,12A2,2 0 0,1 6,10A2,2 0 0,1 8,12A2,2 0 0,1 6,14A2,2 0 0,1 4,12Z"},Ar={key:0};function _r(e,t,n,o,r,i){return H(),se("span",pt(e.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon dots-horizontal-icon",role:"img",onClick:t[0]||(t[0]=s=>e.$emit("click",s))}),[(H(),se("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[G("path",$r,[n.title?(H(),se("title",Ar,Rn(n.title),1)):de("",!0)])],8,xr))],16,Sr)}const kr=mt(Tr,[["render",_r]]);Vt(zo);function uo(e){return Array.isArray(e)&&e.some(t=>{if(t===null)return!1;if(typeof t=="object"){const n=t;if(n.type===So||n.type===jt&&!uo(n.children)||n.type===xo&&!n.children.trim())return!1}return!0})}const Nr=".focusable",Pr={name:"NcActions",components:{NcButton:Te,NcPopover:Nn},provide(){return{[Go]:I(()=>this.actionsMenuSemanticType==="menu"),[Vo]:this.closeMenu}},props:{open:{type:Boolean,default:!1},manualOpen:{type:Boolean,default:!1},forceMenu:{type:Boolean,default:!1},forceName:{type:Boolean,default:!1},menuName:{type:String,default:null},primary:{type:Boolean,default:!1},defaultIcon:{type:String,default:""},ariaLabel:{type:String,default:q("Actions")},placement:{type:String,default:"bottom"},boundariesElement:{type:Element,default:()=>document.getElementById("content-vue")??document.querySelector("body")},container:{type:[Boolean,String,Object,Element],default:"body"},disabled:{type:Boolean,default:!1},inline:{type:Number,default:0},variant:{type:String,validator(e){return["primary","secondary","tertiary","tertiary-no-background","tertiary-on-primary","error","warning","success"].includes(e)},default:null},size:{type:String,default:"normal",validator(e){return["small","normal","large"].includes(e)}}},emits:["click","blur","focus","close","closed","open","opened","update:open"],setup(){return{randomId:Ln()}},data(){return{opened:this.open,focusIndex:0,actionsMenuSemanticType:"unknown"}},computed:{triggerButtonVariant(){return this.variant||(this.primary?"primary":this.menuName?"secondary":"tertiary")},config(){return{menu:{popupRole:"menu",withArrowNavigation:!0,withTabNavigation:!1,withFocusTrap:!1},navigation:{popupRole:void 0,withArrowNavigation:!1,withTabNavigation:!0,withFocusTrap:!1},dialog:{popupRole:"dialog",withArrowNavigation:!1,withTabNavigation:!0,withFocusTrap:!0},tooltip:{popupRole:void 0,withArrowNavigation:!1,withTabNavigation:!1,withFocusTrap:!1},unknown:{popupRole:void 0,role:void 0,withArrowNavigation:!0,withTabNavigation:!1,withFocusTrap:!0}}[this.actionsMenuSemanticType]},withFocusTrap(){return this.config.withFocusTrap}},watch:{open(e){e!==this.opened&&(this.opened=e)},opened(){this.opened?document.body.addEventListener("keydown",this.handleEscapePressed):document.body.removeEventListener("keydown",this.handleEscapePressed)}},created(){Ko(()=>this.opened,{disabled:()=>this.config.withFocusTrap}),"ariaHidden"in this.$attrs},methods:{getActionName(e){return e?.type?.name},isValidSingleAction(e){return["NcActionButton","NcActionLink","NcActionRouter"].includes(this.getActionName(e))},isAction(e){return this.getActionName(e)?.startsWith?.("NcAction")},isIconUrl(e){try{return!!new URL(e,e.startsWith("/")?window.location.origin:void 0)}catch{return!1}},toggleMenu(e){e?this.openMenu():this.closeMenu()},openMenu(){this.opened||(this.opened=!0,this.$emit("update:open",!0),this.$emit("open"))},async closeMenu(e=!0){this.opened&&(await this.$nextTick(),this.opened=!1,this.$refs.popover?.clearFocusTrap({returnFocus:e}),this.$emit("update:open",!1),this.$emit("close"),this.focusIndex=0,e&&this.$refs.triggerButton?.$el.focus())},onOpened(){this.$nextTick(()=>{this.focusFirstAction(null),this.$emit("opened")})},onClosed(){this.$emit("closed")},getCurrentActiveMenuItemElement(){return this.$refs.menu.querySelector("li.active")},getFocusableMenuItemElements(){return this.$refs.menu.querySelectorAll(Nr)},onKeydown(e){if(e.key==="Tab"){if(this.config.withFocusTrap)return;if(!this.config.withTabNavigation){this.closeMenu(!0);return}e.preventDefault();const t=this.getFocusableMenuItemElements(),n=[...t].indexOf(document.activeElement);if(n===-1)return;const o=e.shiftKey?n-1:n+1;(o<0||o===t.length)&&this.closeMenu(!0),this.focusIndex=o,this.focusAction();return}this.config.withArrowNavigation&&(e.key==="ArrowUp"&&this.focusPreviousAction(e),e.key==="ArrowDown"&&this.focusNextAction(e),e.key==="PageUp"&&this.focusFirstAction(e),e.key==="PageDown"&&this.focusLastAction(e)),this.handleEscapePressed(e)},onTriggerKeydown(e){e.key==="Escape"&&this.actionsMenuSemanticType==="tooltip"&&this.closeMenu()},handleEscapePressed(e){e.key==="Escape"&&(this.closeMenu(),e.preventDefault())},removeCurrentActive(){const e=this.$refs.menu.querySelector("li.active");e&&e.classList.remove("active")},focusAction(){const e=this.getFocusableMenuItemElements()[this.focusIndex];if(e){this.removeCurrentActive();const t=e.closest("li.action");e.focus(),t&&t.classList.add("active")}},focusPreviousAction(e){this.opened&&(this.focusIndex===0?this.focusLastAction(e):(this.preventIfEvent(e),this.focusIndex=this.focusIndex-1),this.focusAction())},focusNextAction(e){if(this.opened){const t=this.getFocusableMenuItemElements().length-1;this.focusIndex===t?this.focusFirstAction(e):(this.preventIfEvent(e),this.focusIndex=this.focusIndex+1),this.focusAction()}},focusFirstAction(e){if(this.opened){this.preventIfEvent(e);const t=[...this.getFocusableMenuItemElements()].findIndex(n=>n.getAttribute("aria-checked")==="true"&&n.getAttribute("role")==="menuitemradio");this.focusIndex=t>-1?t:0,this.focusAction()}},focusLastAction(e){this.opened&&(this.preventIfEvent(e),this.focusIndex=this.getFocusableMenuItemElements().length-1,this.focusAction())},preventIfEvent(e){e&&(e.preventDefault(),e.stopPropagation())},onFocus(e){this.$emit("focus",e)},onBlur(e){this.$emit("blur",e),this.actionsMenuSemanticType==="tooltip"&&this.$refs.menu&&this.getFocusableMenuItemElements().length===0&&this.closeMenu(!1)},onClick(e){this.$emit("click",e)}},render(){const e=[],t=(p,v)=>{p.forEach(y=>{if(this.isAction(y)){v.push(y);return}y.type===jt&&t(y.children,v)})};if(t(this.$slots.default?.(),e),e.length===0)return;let n=e.filter(this.isValidSingleAction);this.forceMenu&&n.length>0&&this.inline>0&&(n=[]);const o=n.slice(0,this.inline),r=e.filter(p=>!o.includes(p)),i=["NcActionButton","NcActionButtonGroup","NcActionCheckbox","NcActionRadio"],s=["NcActionInput","NcActionTextEditable"],a=["NcActionLink","NcActionRouter"],l=r.some(p=>s.includes(this.getActionName(p))),u=r.some(p=>i.includes(this.getActionName(p))),d=r.some(p=>a.includes(this.getActionName(p)));l?this.actionsMenuSemanticType="dialog":u?this.actionsMenuSemanticType="menu":d?this.actionsMenuSemanticType="navigation":e.filter(p=>this.getActionName(p).startsWith("NcAction")).length===e.length?this.actionsMenuSemanticType="tooltip":this.actionsMenuSemanticType="unknown";const c=p=>{const v=p?.props?.icon,y=p?.children?.icon?.()?.[0]??(this.isIconUrl(v)?V("img",{class:"action-item__menutoggle__icon",src:v,alt:""}):V("span",{class:["icon",v]})),m=p?.children?.default?.()?.[0]?.children?.trim(),w=this.forceName?m:"";let T=p?.props?.title;this.forceName||T||(T=m);const S={...p?.props??{}},A=["submit","reset"].includes(S.type)?S.modelValue:"button";return delete S.modelValue,delete S.type,V(Te,pt(S,{class:"action-item action-item--single","aria-label":p?.props?.["aria-label"]||m,title:T,disabled:this.disabled||p?.props?.disabled,pressed:p?.props?.modelValue,size:this.size,type:A,variant:this.variant||(w?"secondary":"tertiary"),onFocus:this.onFocus,onBlur:this.onBlur,"onUpdate:pressed":p?.props?.["onUpdate:modelValue"]??(()=>{})}),{default:()=>w,icon:()=>y})},f=p=>{const v=uo(this.$slots.icon?.())?this.$slots.icon?.():this.defaultIcon?V("span",{class:["icon",this.defaultIcon]}):V(kr,{size:20}),y=`${this.randomId}-trigger`;return V(Nn,{ref:"popover",delay:0,shown:this.opened,placement:this.placement,boundary:this.boundariesElement,autoBoundaryMaxSize:!0,container:this.container,...this.manualOpen&&{triggers:[]},noCloseOnClickOutside:this.manualOpen,popoverBaseClass:"action-item__popper",popupRole:this.config.popupRole,setReturnFocus:this.config.withFocusTrap?this.$refs.triggerButton?.$el:void 0,noFocusTrap:!this.config.withFocusTrap,"onUpdate:shown":this.toggleMenu,onAfterShow:this.onOpened,onAfterClose:this.onClosed},{trigger:()=>V(Te,{id:y,class:"action-item__menutoggle",disabled:this.disabled,size:this.size,variant:this.triggerButtonVariant,ref:"triggerButton","aria-label":this.menuName?null:this.ariaLabel,"aria-controls":this.opened&&this.config.popupRole?this.randomId:null,onFocus:this.onFocus,onBlur:this.onBlur,onClick:this.onClick,onKeydown:this.onTriggerKeydown},{icon:()=>v,default:()=>this.menuName}),default:()=>V("div",{class:{open:this.opened},tabindex:"-1",onKeydown:this.onKeydown,ref:"menu"},[V("ul",{id:this.randomId,tabindex:"-1",ref:"menuList",role:this.config.popupRole,"aria-labelledby":y,"aria-modal":this.actionsMenuSemanticType==="dialog"?"true":void 0},[p])])})};return e.length===1&&n.length===1&&!this.forceMenu?c(e[0]):(this.$nextTick(()=>{this.opened&&this.$refs.menu&&(this.$refs.menu.querySelector("li.active")||[]).length===0&&this.focusFirstAction()}),o.length>0&&this.inline>0?V("div",{class:["action-items",`action-item--${this.triggerButtonVariant}`]},[...o.map(c),r.length>0?V("div",{class:["action-item",{"action-item--open":this.opened}]},[f(r)]):null]):V("div",{class:["action-item action-item--default-popover",`action-item--${this.triggerButtonVariant}`,{"action-item--open":this.opened}]},[f(e)]))}},Er=mt(Pr,[["__scopeId","data-v-5f7eed6b"]]);function ve(e,t){return Fn()?($o(e,t),!0):!1}const Nt=new WeakMap,Cr=(...e)=>{var t;const n=e[0],o=(t=ht())===null||t===void 0?void 0:t.proxy,r=o??Fn();if(r==null&&!Mn())throw new Error("injectLocal must be called in setup");return r&&Nt.has(r)&&n in Nt.get(r)?Nt.get(r)[n]:No(...e)},Ve=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const co=e=>e!=null,Or=Object.prototype.toString,Dr=e=>Or.call(e)==="[object Object]",Z=()=>{};function Rr(...e){if(e.length!==1)return Bn(...e);const t=e[0];return typeof t=="function"?Gt(Po(()=>({get:t,set:Z}))):xe(t)}function po(e,t){function n(...o){return new Promise((r,i)=>{Promise.resolve(e(()=>t.apply(this,o),{fn:t,thisArg:this,args:o})).then(r).catch(i)})}return n}const Fr=e=>e();function ho(e,t={}){let n,o,r=Z;const i=a=>{clearTimeout(a),r(),r=Z};let s;return a=>{const l=M(e),u=M(t.maxWait);return n&&i(n),l<=0||u!==void 0&&u<=0?(o&&(i(o),o=void 0),Promise.resolve(a())):new Promise((d,c)=>{r=t.rejectOnCancel?c:d,s=a,u&&!o&&(o=setTimeout(()=>{n&&i(n),o=void 0,d(s())},u)),n=setTimeout(()=>{o&&i(o),o=void 0,d(a())},l)})}}function Pn(e){return e.endsWith("rem")?Number.parseFloat(e)*16:Number.parseFloat(e)}function ke(e){return Array.isArray(e)?e:[e]}function Mr(e){return ht()}function Es(e){if(!Ve)return e;let t=0,n,o;const r=()=>{t-=1,o&&t<=0&&(o.stop(),n=void 0,o=void 0)};return((...i)=>(t+=1,o||(o=ko(!0),n=o.run(()=>e(...i))),ve(r),n))}function Cs(e,t=200,n={}){return po(ho(t,n),e)}function Br(e,t,n={}){const{eventFilter:o=Fr,...r}=n;return ie(e,po(o,t),r)}function Lr(e,t=!0,n){Mr()?tt(e,n):t?e():Wt(e)}function Ir(e,t=1e3,n={}){const{immediate:o=!0,immediateCallback:r=!1}=n;let i=null;const s=U(!1);function a(){i&&(clearInterval(i),i=null)}function l(){s.value=!1,a()}function u(){const d=M(t);d<=0||(s.value=!0,r&&e(),a(),s.value&&(i=setInterval(e,d)))}return o&&Ve&&u(),(Ao(t)||typeof t=="function")&&ve(ie(t,()=>{s.value&&Ve&&u()})),ve(l),{isActive:_o(s),pause:l,resume:u}}function Os(e,t,n={}){const{debounce:o=0,maxWait:r=void 0,...i}=n;return Br(e,t,{...i,eventFilter:ho(o,{maxWait:r})})}function zr(e,t,n){return ie(e,t,{...n,immediate:!0})}const ee=Ve?window:void 0,Ds=Ve?window.document:void 0;function z(e){var t;const n=M(e);return(t=n?.$el)!==null&&t!==void 0?t:n}function Y(...e){const t=(o,r,i,s)=>(o.addEventListener(r,i,s),()=>o.removeEventListener(r,i,s)),n=I(()=>{const o=ke(M(e[0])).filter(r=>r!=null);return o.every(r=>typeof r!="string")?o:void 0});return zr(()=>{var o,r;return[(o=(r=n.value)===null||r===void 0?void 0:r.map(i=>z(i)))!==null&&o!==void 0?o:[ee].filter(i=>i!=null),ke(M(n.value?e[1]:e[0])),ke(L(n.value?e[2]:e[1])),M(n.value?e[3]:e[2])]},([o,r,i,s],a,l)=>{if(!o?.length||!r?.length||!i?.length)return;const u=Dr(s)?{...s}:s,d=o.flatMap(c=>r.flatMap(f=>i.map(p=>t(c,f,p,u))));l(()=>{d.forEach(c=>c())})},{flush:"post"})}function Rs(e,t,n={}){const{window:o=ee,ignore:r=[],capture:i=!0,detectIframe:s=!1,controls:a=!1}=n;if(!o)return a?{stop:Z,cancel:Z,trigger:Z}:Z;let l=!0;const u=m=>M(r).some(w=>{if(typeof w=="string")return Array.from(o.document.querySelectorAll(w)).some(T=>T===m.target||m.composedPath().includes(T));{const T=z(w);return T&&(m.target===T||m.composedPath().includes(T))}});function d(m){const w=M(m);return w&&w.$.subTree.shapeFlag===16}function c(m,w){const T=M(m),S=T.$.subTree&&T.$.subTree.children;return S==null||!Array.isArray(S)?!1:S.some(A=>A.el===w.target||w.composedPath().includes(A.el))}const f=m=>{const w=z(e);if(m.target!=null&&!(!(w instanceof Element)&&d(e)&&c(e,m))&&!(!w||w===m.target||m.composedPath().includes(w))){if("detail"in m&&m.detail===0&&(l=!u(m)),!l){l=!0;return}t(m)}};let p=!1;const v=[Y(o,"click",m=>{p||(p=!0,setTimeout(()=>{p=!1},0),f(m))},{passive:!0,capture:i}),Y(o,"pointerdown",m=>{const w=z(e);l=!u(m)&&!!(w&&!m.composedPath().includes(w))},{passive:!0}),s&&Y(o,"blur",m=>{setTimeout(()=>{var w;const T=z(e);((w=o.document.activeElement)===null||w===void 0?void 0:w.tagName)==="IFRAME"&&!T?.contains(o.document.activeElement)&&t(m)},0)},{passive:!0})].filter(Boolean),y=()=>v.forEach(m=>m());return a?{stop:y,cancel:()=>{l=!1},trigger:m=>{l=!0,f(m),l=!1}}:y}function Hr(){const e=U(!1),t=ht();return t&&tt(()=>{e.value=!0},t),e}function bt(e){const t=Hr();return I(()=>(t.value,!!e()))}function jr(e,t,n={}){const{window:o=ee,...r}=n;let i;const s=bt(()=>o&&"MutationObserver"in o),a=()=>{i&&(i.disconnect(),i=void 0)},l=ie(I(()=>{const c=ke(M(e)).map(z).filter(co);return new Set(c)}),c=>{a(),s.value&&c.size&&(i=new MutationObserver(t),c.forEach(f=>i.observe(f,r)))},{immediate:!0,flush:"post"}),u=()=>i?.takeRecords(),d=()=>{l(),a()};return ve(d),{isSupported:s,stop:d,takeRecords:u}}function Wr(e,t,n={}){const{window:o=ee,document:r=o?.document,flush:i="sync"}=n;if(!o||!r)return Z;let s;const a=d=>{s?.(),s=d},l=ft(()=>{const d=z(e);if(d){const{stop:c}=jr(r,f=>{f.map(p=>[...p.removedNodes]).flat().some(p=>p===d||p.contains(d))&&t(f)},{window:o,childList:!0,subtree:!0});a(c)}},{flush:i}),u=()=>{l(),a()};return ve(u),u}function Gr(e){return typeof e=="function"?e:typeof e=="string"?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):()=>!0}function En(...e){let t,n,o={};e.length===3?(t=e[0],n=e[1],o=e[2]):e.length===2?typeof e[1]=="object"?(t=!0,n=e[0],o=e[1]):(t=e[0],n=e[1]):(t=!0,n=e[0]);const{target:r=ee,eventName:i="keydown",passive:s=!1,dedupe:a=!1}=o,l=Gr(t);return Y(r,i,u=>{u.repeat&&M(a)||l(u)&&n(u)},s)}function Vr(e={}){var t;const{window:n=ee,deep:o=!0,triggerOnRemoval:r=!1}=e,i=(t=e.document)!==null&&t!==void 0?t:n?.document,s=()=>{let u=i?.activeElement;if(o)for(var d;u?.shadowRoot;)u=u==null||(d=u.shadowRoot)===null||d===void 0?void 0:d.activeElement;return u},a=U(),l=()=>{a.value=s()};if(n){const u={capture:!0,passive:!0};Y(n,"blur",d=>{d.relatedTarget===null&&l()},u),Y(n,"focus",l,u)}return r&&Wr(a,l,{document:i}),l(),a}const qr=Symbol("vueuse-ssr-width");function Kr(){const e=Mn()?Cr(qr,null):null;return typeof e=="number"?e:void 0}function Ur(e,t={}){const{window:n=ee,ssrWidth:o=Kr()}=t,r=bt(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function"),i=U(typeof o=="number"),s=U(),a=U(!1),l=u=>{a.value=u.matches};return ft(()=>{if(i.value){i.value=!r.value,a.value=M(e).split(",").some(u=>{const d=u.includes("not all"),c=u.match(/\(\s*min-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/),f=u.match(/\(\s*max-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/);let p=!!(c||f);return c&&p&&(p=o>=Pn(c[1])),f&&p&&(p=o<=Pn(f[1])),d?!p:p});return}r.value&&(s.value=n.matchMedia(M(e)),a.value=s.value.matches)}),Y(s,"change",l,{passive:!0}),I(()=>a.value)}function Fs(e){return Ur("(prefers-color-scheme: dark)",e)}function Yr(e,t,n={}){const{window:o=ee,...r}=n;let i;const s=bt(()=>o&&"ResizeObserver"in o),a=()=>{i&&(i.disconnect(),i=void 0)},l=ie(I(()=>{const d=M(e);return Array.isArray(d)?d.map(c=>z(c)):[z(d)]}),d=>{if(a(),s.value&&o){i=new ResizeObserver(t);for(const c of d)c&&i.observe(c,r)}},{immediate:!0,flush:"post"}),u=()=>{a(),l()};return ve(u),{isSupported:s,stop:u}}function Ms(e,t={width:0,height:0},n={}){const{window:o=ee,box:r="content-box"}=n,i=I(()=>{var c;return(c=z(e))===null||c===void 0||(c=c.namespaceURI)===null||c===void 0?void 0:c.includes("svg")}),s=U(t.width),a=U(t.height),{stop:l}=Yr(e,([c])=>{const f=r==="border-box"?c.borderBoxSize:r==="content-box"?c.contentBoxSize:c.devicePixelContentBoxSize;if(o&&i.value){const p=z(e);if(p){const v=p.getBoundingClientRect();s.value=v.width,a.value=v.height}}else if(f){const p=ke(f);s.value=p.reduce((v,{inlineSize:y})=>v+y,0),a.value=p.reduce((v,{blockSize:y})=>v+y,0)}else s.value=c.contentRect.width,a.value=c.contentRect.height},n);Lr(()=>{const c=z(e);c&&(s.value="offsetWidth"in c?c.offsetWidth:t.width,a.value="offsetHeight"in c?c.offsetHeight:t.height)});const u=ie(()=>z(e),c=>{s.value=c?t.width:0,a.value=c?t.height:0});function d(){l(),u()}return{width:s,height:a,stop:d}}function Bs(e,t,n={}){const{root:o,rootMargin:r="0px",threshold:i=0,window:s=ee,immediate:a=!0}=n,l=bt(()=>s&&"IntersectionObserver"in s),u=I(()=>ke(M(e)).map(z).filter(co));let d=Z;const c=U(a),f=l.value?ie(()=>[u.value,z(o),c.value],([v,y])=>{if(d(),!c.value||!v.length)return;const m=new IntersectionObserver(t,{root:z(y),rootMargin:r,threshold:i});v.forEach(w=>w&&m.observe(w)),d=()=>{m.disconnect(),d=Z}},{immediate:a,flush:"post"}):Z,p=()=>{d(),f(),c.value=!1};return ve(p),{isSupported:l,isActive:c,pause(){d(),c.value=!1},resume(){c.value=!0},stop:p}}const Xr="focusin",Zr="focusout",Jr=":focus-within";function Ls(e,t={}){const{window:n=ee}=t,o=I(()=>z(e)),r=U(!1),i=I(()=>r.value);if(!n||!Vr(t).value)return{focused:i};const s={passive:!0};return Y(o,Xr,()=>r.value=!0,s),Y(o,Zr,()=>{var a,l,u;return r.value=(a=(l=o.value)===null||l===void 0||(u=l.matches)===null||u===void 0?void 0:u.call(l,Jr))!==null&&a!==void 0?a:!1},s),{focused:i}}function Pt(e){return typeof Window<"u"&&e instanceof Window?e.document.documentElement:typeof Document<"u"&&e instanceof Document?e.documentElement:e}const Et=new WeakMap;function Is(e,t=!1){const n=U(t);let o="";ie(Rr(e),s=>{const a=Pt(M(s));if(a){const l=a;if(Et.get(l)||Et.set(l,l.style.overflow),l.style.overflow!=="hidden"&&(o=l.style.overflow),l.style.overflow==="hidden")return n.value=!0;if(n.value)return l.style.overflow="hidden"}},{immediate:!0});const r=()=>{const s=Pt(M(e));!s||n.value||(s.style.overflow="hidden",n.value=!0)},i=()=>{const s=Pt(M(e));!s||!n.value||(s.style.overflow=o,Et.delete(s),n.value=!1)};return ve(i),I({get(){return n.value},set(s){s?r():i()}})}function Qr(e,t={}){const{threshold:n=50,onSwipe:o,onSwipeEnd:r,onSwipeStart:i,passive:s=!0}=t,a=Qt({x:0,y:0}),l=Qt({x:0,y:0}),u=I(()=>a.x-l.x),d=I(()=>a.y-l.y),{max:c,abs:f}=Math,p=I(()=>c(f(u.value),f(d.value))>=n),v=U(!1),y=I(()=>p.value?f(u.value)>f(d.value)?u.value>0?"left":"right":d.value>0?"up":"down":"none"),m=k=>[k.touches[0].clientX,k.touches[0].clientY],w=(k,R)=>{a.x=k,a.y=R},T=(k,R)=>{l.x=k,l.y=R},S={passive:s,capture:!s},A=k=>{v.value&&r?.(k,y.value),v.value=!1},C=[Y(e,"touchstart",k=>{if(k.touches.length!==1)return;const[R,b]=m(k);w(R,b),T(R,b),i?.(k)},S),Y(e,"touchmove",k=>{if(k.touches.length!==1)return;const[R,b]=m(k);T(R,b),S.capture&&!S.passive&&Math.abs(u.value)>Math.abs(d.value)&&k.preventDefault(),!v.value&&p.value&&(v.value=!0),v.value&&o?.(k)},S),Y(e,["touchend","touchcancel"],A,S)];return{isSwiping:v,direction:y,coordsStart:a,coordsEnd:l,lengthX:u,lengthY:d,stop:()=>C.forEach(k=>k())}}const Zt=1024,fo=Zt/2,dt=e=>document.documentElement.clientWidth<e,mo=xe(dt(Zt)),es=xe(dt(fo));window.addEventListener("resize",()=>{mo.value=dt(Zt),es.value=dt(fo)},{passive:!0});function zs(){return Gt(mo)}Vt(Ho);const ts={long:q("a few seconds ago"),short:q("seconds ago"),narrow:q("sec. ago")};function Hs(e=Date.now(),t={}){let n;const o=I(()=>new Date(M(e))),r=I(()=>{const{language:a,relativeTime:l,ignoreSeconds:u}=M(t);return{...a&&{language:a},...l&&{relativeTime:l},ignoreSeconds:u?ts[l||"long"]:!1}}),i=xe("");ft(()=>s());function s(){if(i.value=Wo(o.value,r.value),M(t).update!==!1){const a=Math.abs(Date.now()-new Date(M(e)).getTime()),l=a>12e4||r.value.ignoreSeconds?Math.min(a/60,18e5):1e3;n=window.setTimeout(s,l)}}return Qe(()=>n&&window.clearTimeout(n)),Gt(i)}function js(e,t){const n=I(()=>({locale:gt(),format:{dateStyle:"short",timeStyle:"medium"},...M(t)})),o=I(()=>new Intl.DateTimeFormat(n.value.locale,n.value.format));return I(()=>o.value.format(M(e)))}const ns=/mac|ipad|iphone|darwin/i.test(navigator.userAgent),os=window.OCP?.Accessibility?.disableKeyboardShortcuts?.(),is=/^[a-zA-Z0-9]$/,rs=/^[^\x20-\x7F]$/;function ss(e,t){return!(e.target instanceof HTMLElement)||e.target instanceof HTMLInputElement||e.target instanceof HTMLTextAreaElement||e.target instanceof HTMLSelectElement||e.target.isContentEditable?!0:t.allowInModal?!1:Array.from(document.getElementsByClassName("modal-mask")).filter(n=>n.checkVisibility()).length>0}function Cn(e,t){return n=>{if((ns?n.metaKey:n.ctrlKey)===!!t.ctrl){if(n.altKey!==!!t.alt||t.shift!==void 0&&n.shiftKey!==!!t.shift||ss(n,t))return;t.prevent&&n.preventDefault(),t.stop&&n.stopPropagation(),e(n)}}}function On(e,t=()=>{},n={}){if(os)return()=>{};const o=(a,l)=>{if(a.key===l)return!0;if(n.caseSensitive){const u=l===l.toLowerCase(),d=a.key===a.key.toLowerCase();if(u!==d)return!1}return is.test(l)&&rs.test(a.key)?a.code.replace(/^(?:Key|Digit|Numpad)/,"")===l.toUpperCase():a.key.toLowerCase()===l.toLowerCase()},r=a=>typeof e=="function"?e(a):typeof e=="string"?o(a,e):Array.isArray(e)?e.some(l=>o(a,l)):!0,i=En(r,Cn(t,n),{eventName:"keydown",dedupe:!0,passive:!n.prevent}),s=n.push?En(r,Cn(t,n),{eventName:"keyup",passive:!n.prevent}):()=>{};return()=>{i(),s()}}function as(e=document.body){const t=window.getComputedStyle(e).getPropertyValue("--background-invert-if-dark");return t!==void 0?t==="invert(100%)":!1}as();const ls=xe(go());window.addEventListener("resize",()=>{ls.value=go()});function go(){return window.outerHeight===window.screen.height}function Dn(e){return!e.parent||"vapor"in e||"vapor"in e.parent||e.parent.subTree!==e.vnode?null:e.parent}function us(e){const t=[e];let n=Dn(e);for(;n;)t.push(n),n=Dn(n);return t}function cs(){const e=ht();if(!e)throw new Error("useScopeId must be called within a setup context");const t=us(e).map(n=>n.vnode.scopeId).filter(Boolean);return Object.fromEntries(t.map(n=>[n,""]))}Vt();const ds=["aria-labelledby","aria-describedby"],ps=["data-theme-light","data-theme-dark"],hs=["id"],fs={class:"icons-menu"},ms=["title"],gs=["id"],vs={class:"modal-container__content"},ws=Ne({inheritAttrs:!1,__name:"NcModal",props:en({name:{default:""},hasPrevious:{type:Boolean},hasNext:{type:Boolean},outTransition:{type:Boolean},enableSlideshow:{type:Boolean},slideshowDelay:{default:5e3},slideshowPaused:{type:Boolean},disableSwipe:{type:Boolean},spreadNavigation:{type:Boolean},size:{default:"normal"},noClose:{type:Boolean},closeOnClickOutside:{type:Boolean},dark:{type:Boolean},lightBackdrop:{type:Boolean},container:{default:"body"},closeButtonOutside:{type:Boolean},additionalTrapElements:{default:()=>[]},inlineActions:{default:0},labelId:{default:""},setReturnFocus:{default:void 0}},{show:{type:Boolean,default:!0},showModifiers:{}}),emits:en(["next","previous","close","update:show"],["update:show"]),setup(e,{emit:t}){Eo(b=>({"3caa6a4b":v.value}));const n=Co(e,"show"),o=e,r=t,i=cs(),s=Ln(),a=Oo("mask");let l;tt(()=>k()),Qe(()=>R()),ie(()=>o.additionalTrapElements,b=>{l&&l.updateContainerElements([a.value,...b])});const{isActive:u,pause:d,resume:c}=Ir(m,Bn(()=>o.slideshowDelay),{immediate:!1}),f=xe(0),p=xe(!1);ft(()=>{p.value&&!o.slideshowPaused?c():u.value&&d()});const v=I(()=>`${o.slideshowDelay}ms`),{stop:y}=Qr(a,{onSwipeEnd:T});Qe(y),On("Escape",()=>{Ie().at(-1)===l&&A()},{allowInModal:!0}),On(["ArrowLeft","ArrowRight"],b=>{document.activeElement&&!a.value.contains(document.activeElement)||(b.key==="ArrowLeft"!==ct?w():m())},{allowInModal:!0}),tt(()=>{!o.name&&o.labelId});function m(b){if(!o.hasNext){p.value=!1;return}b&&u.value&&S(),r("next",b)}function w(b){o.hasPrevious&&(b&&u.value&&S(),r("previous",b))}function T(b,P){if(!o.disableSwipe){if(P!=="left"&&P!=="right")return;P==="left"!==ct?m(b):w(b)}}function S(){d(),c(),f.value++}function A(b){o.noClose||(n.value=!1,setTimeout(()=>{r("close",b)},300))}function C(b){o.closeOnClickOutside&&A(b)}async function k(){if(!n.value||l)return;await Wt();const b={allowOutsideClick:!0,fallbackFocus:a.value,trapStack:Ie(),escapeDeactivates:!1,setReturnFocus:o.setReturnFocus};l=ao([a.value,...o.additionalTrapElements],b),l.activate()}function R(){l&&(l?.deactivate(),l=void 0)}return(b,P)=>(H(),Se(Ro,{disabled:b.container===null,to:b.container},[j(Ee,{name:"fade",appear:"",onAfterEnter:k,onBeforeLeave:R},{default:W(()=>[qe(G("div",pt({...b.$attrs,...L(i)},{ref:"mask",class:["modal-mask",{"modal-mask--opaque":b.dark||b.closeButtonOutside||b.hasPrevious||b.hasNext,"modal-mask--light":b.lightBackdrop}],role:"dialog","aria-modal":"true","aria-labelledby":b.labelId||`modal-name-${L(s)}`,"aria-describedby":"modal-description-"+L(s),tabindex:"-1"}),[j(Ee,{name:"fade-visibility",appear:""},{default:W(()=>[G("div",{class:"modal-header","data-theme-light":b.lightBackdrop,"data-theme-dark":!b.lightBackdrop},[b.name.trim()!==""?(H(),se("h2",{key:0,id:"modal-name-"+L(s),class:"modal-header__name"},Rn(b.name),9,hs)):de("",!0),G("div",fs,[b.hasNext&&b.enableSlideshow?(H(),se("button",{key:0,class:et(["play-pause-icons",{"play-pause-icons--paused":b.slideshowPaused}]),title:L(u)?L(q)("Pause slideshow"):L(q)("Start slideshow"),type:"button",onClick:P[0]||(P[0]=B=>p.value=!p.value)},[j(Ce,{class:"play-pause-icons__icon",inline:"",name:L(u)?L(q)("Pause slideshow"):L(q)("Start slideshow"),path:L(u)?L(Mo):L(Bo)},null,8,["name","path"]),L(u)?(H(),se("svg",{key:`${L(s)}-animation-${f.value}`,class:"progress-ring",height:"50",width:"50"},[...P[1]||(P[1]=[G("circle",{class:"progress-ring__circle",stroke:"white","stroke-width":"2",fill:"transparent",r:"15",cx:"25",cy:"25"},null,-1)])])):de("",!0)],10,ms)):de("",!0),j(Er,{class:"header-actions",inline:b.inlineActions},{default:W(()=>[me(b.$slots,"actions",{},void 0,!0)]),_:3},8,["inline"]),!b.noClose&&b.closeButtonOutside?(H(),Se(Te,{key:1,"aria-label":L(q)("Close"),class:"header-close",variant:"tertiary",onClick:A},{icon:W(()=>[j(Ce,{path:L(tn)},null,8,["path"])]),_:1},8,["aria-label"])):de("",!0)])],8,ps)]),_:3}),j(Ee,{name:`modal-${b.outTransition?"out":"in"}`,appear:""},{default:W(()=>[qe(G("div",{class:et(["modal-wrapper",[`modal-wrapper--${b.size}`,{"modal-wrapper--spread-navigation":b.spreadNavigation}]]),onMousedown:Do(C,["self"])},[j(Ee,{name:"fade-visibility",appear:""},{default:W(()=>[qe(j(Te,{"aria-label":L(q)("Previous"),class:"prev",variant:"tertiary-no-background",onClick:w},{icon:W(()=>[j(Ce,{directional:"",path:L(Lo),size:40},null,8,["path"])]),_:1},8,["aria-label"]),[[Ke,b.hasPrevious]])]),_:1}),G("div",{id:"modal-description-"+L(s),class:"modal-container"},[G("div",vs,[me(b.$slots,"default",{},void 0,!0)]),!b.noClose&&!b.closeButtonOutside?(H(),Se(Te,{key:0,"aria-label":L(q)("Close"),class:"modal-container__close",variant:"tertiary",onClick:A},{icon:W(()=>[j(Ce,{path:L(tn)},null,8,["path"])]),_:1},8,["aria-label"])):de("",!0)],8,gs),j(Ee,{name:"fade-visibility",appear:""},{default:W(()=>[qe(j(Te,{"aria-label":L(q)("Next"),class:"next",variant:"tertiary-no-background",onClick:m},{icon:W(()=>[j(Ce,{directional:"",path:L(Io),size:40},null,8,["path"])]),_:1},8,["aria-label"]),[[Ke,b.hasNext]])]),_:1})],34),[[Ke,n.value]])]),_:3},8,["name"])],16,ds),[[Ke,n.value]])]),_:3})],8,["disabled","to"]))}}),Ws=mt(ws,[["__scopeId","data-v-1639aad0"]]);export{Vo as A,js as B,Hs as C,Ds as D,Lr as E,ve as F,z as G,uo as H,kr as I,Ms as J,xs as K,Bs as L,kt as M,Er as N,Ko as O,Ls as P,As as Q,$s as R,Ws as a,zs as b,Go as c,Es as d,as as e,Wo as f,jr as g,Fs as h,ct as i,Is as j,Cs as k,Ns as l,ci as m,li as n,Rs as o,Ps as p,ks as q,De as r,di as s,ye as t,Qr as u,_s as v,Os as w,ii as x,ze as y,Nn as z}; +//# sourceMappingURL=NcModal-MC_HktJd-DqeuH-fk.chunk.mjs.map diff --git a/dist/index-JpgrUA2Z-BFiKKJ1W.chunk.mjs.map.license b/dist/NcModal-MC_HktJd-DqeuH-fk.chunk.mjs.license similarity index 82% rename from dist/index-JpgrUA2Z-BFiKKJ1W.chunk.mjs.map.license rename to dist/NcModal-MC_HktJd-DqeuH-fk.chunk.mjs.license index 7082d6afa2579..cf2609099602c 100644 --- a/dist/index-JpgrUA2Z-BFiKKJ1W.chunk.mjs.map.license +++ b/dist/NcModal-MC_HktJd-DqeuH-fk.chunk.mjs.license @@ -1,12 +1,10 @@ SPDX-License-Identifier: AGPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: MIT -SPDX-FileCopyrightText: @nextcloud/dialogs developers SPDX-FileCopyrightText: Anthony Fu <https://github.com/antfu> SPDX-FileCopyrightText: David Clark SPDX-FileCopyrightText: Guillaume Chau <guillaume.b.chau@gmail.com> SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors -SPDX-FileCopyrightText: Varun A P SPDX-FileCopyrightText: atomiks This file is generated from multiple sources. Included packages: @@ -19,9 +17,6 @@ This file is generated from multiple sources. Included packages: - @floating-ui/utils - version: 0.2.10 - license: MIT -- @nextcloud/dialogs - - version: 7.2.0 - - license: AGPL-3.0-or-later - @nextcloud/l10n - version: 3.4.1 - license: GPL-3.0-or-later @@ -43,6 +38,3 @@ This file is generated from multiple sources. Included packages: - tabbable - version: 6.3.0 - license: MIT -- toastify-js - - version: 1.12.0 - - license: MIT diff --git a/dist/NcModal-MC_HktJd-DqeuH-fk.chunk.mjs.map b/dist/NcModal-MC_HktJd-DqeuH-fk.chunk.mjs.map new file mode 100644 index 0000000000000..650cc159a29f0 --- /dev/null +++ b/dist/NcModal-MC_HktJd-DqeuH-fk.chunk.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"NcModal-MC_HktJd-DqeuH-fk.chunk.mjs","sources":["../node_modules/@nextcloud/l10n/dist/index.mjs","../node_modules/@nextcloud/vue/dist/chunks/useNcActions-CiGWxAJE.mjs","../node_modules/@nextcloud/vue/dist/chunks/focusTrap-HJQ4pqHV.mjs","../node_modules/@nextcloud/vue/dist/chunks/useTrapStackControl-B6cEicto.mjs","../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../node_modules/floating-vue/node_modules/@floating-ui/dom/dist/floating-ui.dom.browser.min.mjs","../node_modules/floating-vue/dist/floating-vue.mjs","../node_modules/tabbable/dist/index.esm.js","../node_modules/focus-trap/dist/focus-trap.esm.js","../node_modules/@nextcloud/vue/dist/chunks/rtl-v0UOPAM7.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcPopover-C-MTaPCs.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcActions-DWmvh7-Y.mjs","../node_modules/@vueuse/shared/dist/index.js","../node_modules/@vueuse/core/dist/index.js","../node_modules/@nextcloud/vue/dist/composables/useIsMobile/index.mjs","../node_modules/@nextcloud/vue/dist/composables/useFormatDateTime/index.mjs","../node_modules/@nextcloud/vue/dist/chunks/platform-CC2ecGvV.mjs","../node_modules/@nextcloud/vue/dist/composables/useHotKey/index.mjs","../node_modules/@nextcloud/vue/dist/functions/isDarkTheme/index.mjs","../node_modules/@nextcloud/vue/dist/composables/useIsFullscreen/index.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcModal-MC_HktJd.mjs"],"sourcesContent":["import { g as getCanonicalLocale, a as getLanguage } from \"./chunks/translation-DoG5ZELJ.mjs\";\nimport { b, e, i, l, d, r, c, s, t, t as t2, d as d2, u } from \"./chunks/translation-DoG5ZELJ.mjs\";\n/*!\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nfunction getFirstDay() {\n if (typeof globalThis.firstDay !== \"undefined\") {\n return globalThis.firstDay;\n }\n const intl = new Intl.Locale(getCanonicalLocale());\n const weekInfo = intl.getWeekInfo?.() ?? intl.weekInfo;\n if (weekInfo) {\n return weekInfo.firstDay % 7;\n }\n return 1;\n}\nfunction getDayNames() {\n if (typeof globalThis.dayNames !== \"undefined\") {\n return globalThis.dayNames;\n }\n const locale = getCanonicalLocale();\n return [\n new Date(1970, 0, 4).toLocaleDateString(locale, { weekday: \"long\" }),\n new Date(1970, 0, 5).toLocaleDateString(locale, { weekday: \"long\" }),\n new Date(1970, 0, 6).toLocaleDateString(locale, { weekday: \"long\" }),\n new Date(1970, 0, 7).toLocaleDateString(locale, { weekday: \"long\" }),\n new Date(1970, 0, 8).toLocaleDateString(locale, { weekday: \"long\" }),\n new Date(1970, 0, 9).toLocaleDateString(locale, { weekday: \"long\" }),\n new Date(1970, 0, 10).toLocaleDateString(locale, { weekday: \"long\" })\n ];\n}\nfunction getDayNamesShort() {\n if (typeof globalThis.dayNamesShort !== \"undefined\") {\n return globalThis.dayNamesShort;\n }\n const locale = getCanonicalLocale();\n return [\n new Date(1970, 0, 4).toLocaleDateString(locale, { weekday: \"short\" }),\n new Date(1970, 0, 5).toLocaleDateString(locale, { weekday: \"short\" }),\n new Date(1970, 0, 6).toLocaleDateString(locale, { weekday: \"short\" }),\n new Date(1970, 0, 7).toLocaleDateString(locale, { weekday: \"short\" }),\n new Date(1970, 0, 8).toLocaleDateString(locale, { weekday: \"short\" }),\n new Date(1970, 0, 9).toLocaleDateString(locale, { weekday: \"short\" }),\n new Date(1970, 0, 10).toLocaleDateString(locale, { weekday: \"short\" })\n ];\n}\nfunction getDayNamesMin() {\n if (typeof globalThis.dayNamesMin !== \"undefined\") {\n return globalThis.dayNamesMin;\n }\n const locale = getCanonicalLocale();\n return [\n new Date(1970, 0, 4).toLocaleDateString(locale, { weekday: \"narrow\" }),\n new Date(1970, 0, 5).toLocaleDateString(locale, { weekday: \"narrow\" }),\n new Date(1970, 0, 6).toLocaleDateString(locale, { weekday: \"narrow\" }),\n new Date(1970, 0, 7).toLocaleDateString(locale, { weekday: \"narrow\" }),\n new Date(1970, 0, 8).toLocaleDateString(locale, { weekday: \"narrow\" }),\n new Date(1970, 0, 9).toLocaleDateString(locale, { weekday: \"narrow\" }),\n new Date(1970, 0, 10).toLocaleDateString(locale, { weekday: \"narrow\" })\n ];\n}\nfunction getMonthNames() {\n if (typeof globalThis.monthNames !== \"undefined\") {\n return globalThis.monthNames;\n }\n const locale = getCanonicalLocale();\n return [\n new Date(1970, 0).toLocaleDateString(locale, { month: \"long\" }),\n new Date(1970, 1).toLocaleDateString(locale, { month: \"long\" }),\n new Date(1970, 2).toLocaleDateString(locale, { month: \"long\" }),\n new Date(1970, 3).toLocaleDateString(locale, { month: \"long\" }),\n new Date(1970, 4).toLocaleDateString(locale, { month: \"long\" }),\n new Date(1970, 5).toLocaleDateString(locale, { month: \"long\" }),\n new Date(1970, 6).toLocaleDateString(locale, { month: \"long\" }),\n new Date(1970, 7).toLocaleDateString(locale, { month: \"long\" }),\n new Date(1970, 8).toLocaleDateString(locale, { month: \"long\" }),\n new Date(1970, 9).toLocaleDateString(locale, { month: \"long\" }),\n new Date(1970, 10).toLocaleDateString(locale, { month: \"long\" }),\n new Date(1970, 11).toLocaleDateString(locale, { month: \"long\" })\n ];\n}\nfunction getMonthNamesShort() {\n if (typeof globalThis.monthNamesShort !== \"undefined\") {\n return globalThis.monthNamesShort;\n }\n const locale = getCanonicalLocale();\n return [\n new Date(1970, 0).toLocaleDateString(locale, { month: \"short\" }),\n new Date(1970, 1).toLocaleDateString(locale, { month: \"short\" }),\n new Date(1970, 2).toLocaleDateString(locale, { month: \"short\" }),\n new Date(1970, 3).toLocaleDateString(locale, { month: \"short\" }),\n new Date(1970, 4).toLocaleDateString(locale, { month: \"short\" }),\n new Date(1970, 5).toLocaleDateString(locale, { month: \"short\" }),\n new Date(1970, 6).toLocaleDateString(locale, { month: \"short\" }),\n new Date(1970, 7).toLocaleDateString(locale, { month: \"short\" }),\n new Date(1970, 8).toLocaleDateString(locale, { month: \"short\" }),\n new Date(1970, 9).toLocaleDateString(locale, { month: \"short\" }),\n new Date(1970, 10).toLocaleDateString(locale, { month: \"short\" }),\n new Date(1970, 11).toLocaleDateString(locale, { month: \"short\" })\n ];\n}\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nfunction formatRelativeTime(timestamp = Date.now(), opts = {}) {\n const options = {\n ignoreSeconds: false,\n language: getLanguage(),\n relativeTime: \"long\",\n ...opts\n };\n const date = new Date(timestamp);\n const formatter = new Intl.RelativeTimeFormat([options.language, getLanguage()], { numeric: \"auto\", style: options.relativeTime });\n const diff = date.getTime() - Date.now();\n const seconds = diff / 1e3;\n if (Math.abs(seconds) < 59.5) {\n return options.ignoreSeconds || formatter.format(Math.round(seconds), \"second\");\n }\n const minutes = seconds / 60;\n if (Math.abs(minutes) <= 59) {\n return formatter.format(Math.round(minutes), \"minute\");\n }\n const hours = minutes / 60;\n if (Math.abs(hours) < 23.5) {\n return formatter.format(Math.round(hours), \"hour\");\n }\n const days = hours / 24;\n if (Math.abs(days) < 6.5) {\n return formatter.format(Math.round(days), \"day\");\n }\n if (Math.abs(days) < 27.5) {\n const weeks = days / 7;\n return formatter.format(Math.round(weeks), \"week\");\n }\n const months = days / 30;\n const format = Math.abs(months) < 11 ? { month: options.relativeTime, day: \"numeric\" } : { year: options.relativeTime === \"narrow\" ? \"2-digit\" : \"numeric\", month: options.relativeTime };\n const dateTimeFormatter = new Intl.DateTimeFormat([options.language, getLanguage()], format);\n return dateTimeFormatter.format(date);\n}\nexport {\n formatRelativeTime,\n getCanonicalLocale,\n getDayNames,\n getDayNamesMin,\n getDayNamesShort,\n getFirstDay,\n getLanguage,\n b as getLocale,\n getMonthNames,\n getMonthNamesShort,\n e as getPlural,\n i as isRTL,\n l as loadTranslations,\n d as n,\n r as register,\n c as setLanguage,\n s as setLocale,\n t,\n t2 as translate,\n d2 as translatePlural,\n u as unregister\n};\n//# sourceMappingURL=index.mjs.map\n","const NC_ACTIONS_IS_SEMANTIC_MENU = Symbol.for(\"NcActions:isSemanticMenu\");\nconst NC_ACTIONS_CLOSE_MENU = Symbol.for(\"NcActions:closeMenu\");\nexport {\n NC_ACTIONS_CLOSE_MENU as N,\n NC_ACTIONS_IS_SEMANTIC_MENU as a\n};\n//# sourceMappingURL=useNcActions-CiGWxAJE.mjs.map\n","function getTrapStack() {\n window._nc_focus_trap ??= [];\n return window._nc_focus_trap;\n}\nfunction createTrapStackController() {\n let pausedStack = [];\n return {\n /**\n * Pause the current focus-trap stack\n */\n pause() {\n pausedStack = [...getTrapStack()];\n for (const trap of pausedStack) {\n trap.pause();\n }\n },\n /**\n * Unpause the paused focus trap stack\n * If the actual stack is different from the paused one, ignore unpause.\n */\n unpause() {\n if (pausedStack.length === getTrapStack().length) {\n for (const trap of pausedStack) {\n trap.unpause();\n }\n }\n pausedStack = [];\n }\n };\n}\nexport {\n createTrapStackController as c,\n getTrapStack as g\n};\n//# sourceMappingURL=focusTrap-HJQ4pqHV.mjs.map\n","import { watch, toValue, onUnmounted } from \"vue\";\nimport { c as createTrapStackController } from \"./focusTrap-HJQ4pqHV.mjs\";\nfunction useTrapStackControl(shouldPause, options = {}) {\n const trapStackController = createTrapStackController();\n watch(shouldPause, () => {\n if (toValue(options.disabled)) {\n return;\n }\n if (toValue(shouldPause)) {\n trapStackController.pause();\n } else {\n trapStackController.unpause();\n }\n });\n onUnmounted(() => {\n trapStackController.unpause();\n });\n}\nexport {\n useTrapStackControl as u\n};\n//# sourceMappingURL=useTrapStackControl-B6cEicto.mjs.map\n","/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nconst yAxisSides = /*#__PURE__*/new Set(['top', 'bottom']);\nfunction getSideAxis(placement) {\n return yAxisSides.has(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nconst lrPlacement = ['left', 'right'];\nconst rlPlacement = ['right', 'left'];\nconst tbPlacement = ['top', 'bottom'];\nconst btPlacement = ['bottom', 'top'];\nfunction getSideList(side, isStart, rtl) {\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rlPlacement : lrPlacement;\n return isStart ? lrPlacement : rlPlacement;\n case 'left':\n case 'right':\n return isStart ? tbPlacement : btPlacement;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n x,\n y,\n width: rects.floating.width,\n height: rects.floating.height\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements,\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const initialSideAxis = getSideAxis(initialPlacement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n const ignoreCrossAxisOverflow = checkCrossAxis === 'alignment' ? initialSideAxis !== getSideAxis(nextPlacement) : false;\n if (!ignoreCrossAxisOverflow ||\n // We leave the current main axis only if every placement on that axis\n // overflows the main axis.\n overflowsData.every(d => getSideAxis(d.placement) === initialSideAxis ? d.overflows[0] > 0 : true)) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$filter2;\n const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n if (hasFallbackAxisSideDirection) {\n const currentSideAxis = getSideAxis(d.placement);\n return currentSideAxis === initialSideAxis ||\n // Create a bias to the `y` side axis due to horizontal\n // reading directions favoring greater width.\n currentSideAxis === 'y';\n }\n return true;\n }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\nconst originSides = /*#__PURE__*/new Set(['left', 'top']);\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = originSides.has(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: rawValue.mainAxis || 0,\n crossAxis: rawValue.crossAxis || 0,\n alignmentAxis: rawValue.alignmentAxis\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y,\n enabled: {\n [mainAxis]: checkMainAxis,\n [crossAxis]: checkCrossAxis\n }\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = originSides.has(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n var _state$middlewareData, _state$middlewareData2;\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n const maximumClippingWidth = width - overflow.left - overflow.right;\n const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);\n const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {\n availableWidth = maximumClippingWidth;\n }\n if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {\n availableHeight = maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","import{rectToClientRect as t,computePosition as e}from\"@floating-ui/core\";export{arrow,autoPlacement,detectOverflow,flip,hide,inline,limitShift,offset,shift,size}from\"@floating-ui/core\";function n(t){var e;return(null==(e=t.ownerDocument)?void 0:e.defaultView)||window}function o(t){return n(t).getComputedStyle(t)}const i=Math.min,r=Math.max,l=Math.round;function c(t){const e=o(t);let n=parseFloat(e.width),i=parseFloat(e.height);const r=t.offsetWidth,c=t.offsetHeight,s=l(n)!==r||l(i)!==c;return s&&(n=r,i=c),{width:n,height:i,fallback:s}}function s(t){return h(t)?(t.nodeName||\"\").toLowerCase():\"\"}let f;function u(){if(f)return f;const t=navigator.userAgentData;return t&&Array.isArray(t.brands)?(f=t.brands.map((t=>t.brand+\"/\"+t.version)).join(\" \"),f):navigator.userAgent}function a(t){return t instanceof n(t).HTMLElement}function d(t){return t instanceof n(t).Element}function h(t){return t instanceof n(t).Node}function p(t){if(\"undefined\"==typeof ShadowRoot)return!1;return t instanceof n(t).ShadowRoot||t instanceof ShadowRoot}function g(t){const{overflow:e,overflowX:n,overflowY:i,display:r}=o(t);return/auto|scroll|overlay|hidden|clip/.test(e+i+n)&&![\"inline\",\"contents\"].includes(r)}function m(t){return[\"table\",\"td\",\"th\"].includes(s(t))}function y(t){const e=/firefox/i.test(u()),n=o(t),i=n.backdropFilter||n.WebkitBackdropFilter;return\"none\"!==n.transform||\"none\"!==n.perspective||!!i&&\"none\"!==i||e&&\"filter\"===n.willChange||e&&!!n.filter&&\"none\"!==n.filter||[\"transform\",\"perspective\"].some((t=>n.willChange.includes(t)))||[\"paint\",\"layout\",\"strict\",\"content\"].some((t=>{const e=n.contain;return null!=e&&e.includes(t)}))}function x(){return!/^((?!chrome|android).)*safari/i.test(u())}function w(t){return[\"html\",\"body\",\"#document\"].includes(s(t))}function v(t){return d(t)?t:t.contextElement}const b={x:1,y:1};function L(t){const e=v(t);if(!a(e))return b;const n=e.getBoundingClientRect(),{width:o,height:i,fallback:r}=c(e);let s=(r?l(n.width):n.width)/o,f=(r?l(n.height):n.height)/i;return s&&Number.isFinite(s)||(s=1),f&&Number.isFinite(f)||(f=1),{x:s,y:f}}function E(t,e,o,i){var r,l;void 0===e&&(e=!1),void 0===o&&(o=!1);const c=t.getBoundingClientRect(),s=v(t);let f=b;e&&(i?d(i)&&(f=L(i)):f=L(t));const u=s?n(s):window,a=!x()&&o;let h=(c.left+(a&&(null==(r=u.visualViewport)?void 0:r.offsetLeft)||0))/f.x,p=(c.top+(a&&(null==(l=u.visualViewport)?void 0:l.offsetTop)||0))/f.y,g=c.width/f.x,m=c.height/f.y;if(s){const t=n(s),e=i&&d(i)?n(i):i;let o=t.frameElement;for(;o&&i&&e!==t;){const t=L(o),e=o.getBoundingClientRect(),i=getComputedStyle(o);e.x+=(o.clientLeft+parseFloat(i.paddingLeft))*t.x,e.y+=(o.clientTop+parseFloat(i.paddingTop))*t.y,h*=t.x,p*=t.y,g*=t.x,m*=t.y,h+=e.x,p+=e.y,o=n(o).frameElement}}return{width:g,height:m,top:p,right:h+g,bottom:p+m,left:h,x:h,y:p}}function R(t){return((h(t)?t.ownerDocument:t.document)||window.document).documentElement}function T(t){return d(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function C(t){return E(R(t)).left+T(t).scrollLeft}function F(t){if(\"html\"===s(t))return t;const e=t.assignedSlot||t.parentNode||p(t)&&t.host||R(t);return p(e)?e.host:e}function W(t){const e=F(t);return w(e)?e.ownerDocument.body:a(e)&&g(e)?e:W(e)}function D(t,e){var o;void 0===e&&(e=[]);const i=W(t),r=i===(null==(o=t.ownerDocument)?void 0:o.body),l=n(i);return r?e.concat(l,l.visualViewport||[],g(i)?i:[]):e.concat(i,D(i))}function S(e,i,l){return\"viewport\"===i?t(function(t,e){const o=n(t),i=R(t),r=o.visualViewport;let l=i.clientWidth,c=i.clientHeight,s=0,f=0;if(r){l=r.width,c=r.height;const t=x();(t||!t&&\"fixed\"===e)&&(s=r.offsetLeft,f=r.offsetTop)}return{width:l,height:c,x:s,y:f}}(e,l)):d(i)?t(function(t,e){const n=E(t,!0,\"fixed\"===e),o=n.top+t.clientTop,i=n.left+t.clientLeft,r=a(t)?L(t):{x:1,y:1};return{width:t.clientWidth*r.x,height:t.clientHeight*r.y,x:i*r.x,y:o*r.y}}(i,l)):t(function(t){const e=R(t),n=T(t),i=t.ownerDocument.body,l=r(e.scrollWidth,e.clientWidth,i.scrollWidth,i.clientWidth),c=r(e.scrollHeight,e.clientHeight,i.scrollHeight,i.clientHeight);let s=-n.scrollLeft+C(t);const f=-n.scrollTop;return\"rtl\"===o(i).direction&&(s+=r(e.clientWidth,i.clientWidth)-l),{width:l,height:c,x:s,y:f}}(R(e)))}function A(t){return a(t)&&\"fixed\"!==o(t).position?t.offsetParent:null}function H(t){const e=n(t);let i=A(t);for(;i&&m(i)&&\"static\"===o(i).position;)i=A(i);return i&&(\"html\"===s(i)||\"body\"===s(i)&&\"static\"===o(i).position&&!y(i))?e:i||function(t){let e=F(t);for(;a(e)&&!w(e);){if(y(e))return e;e=F(e)}return null}(t)||e}function O(t,e,n){const o=a(e),i=R(e),r=E(t,!0,\"fixed\"===n,e);let l={scrollLeft:0,scrollTop:0};const c={x:0,y:0};if(o||!o&&\"fixed\"!==n)if((\"body\"!==s(e)||g(i))&&(l=T(e)),a(e)){const t=E(e,!0);c.x=t.x+e.clientLeft,c.y=t.y+e.clientTop}else i&&(c.x=C(i));return{x:r.left+l.scrollLeft-c.x,y:r.top+l.scrollTop-c.y,width:r.width,height:r.height}}const P={getClippingRect:function(t){let{element:e,boundary:n,rootBoundary:l,strategy:c}=t;const f=\"clippingAncestors\"===n?function(t,e){const n=e.get(t);if(n)return n;let i=D(t).filter((t=>d(t)&&\"body\"!==s(t))),r=null;const l=\"fixed\"===o(t).position;let c=l?F(t):t;for(;d(c)&&!w(c);){const t=o(c),e=y(c);(l?e||r:e||\"static\"!==t.position||!r||![\"absolute\",\"fixed\"].includes(r.position))?r=t:i=i.filter((t=>t!==c)),c=F(c)}return e.set(t,i),i}(e,this._c):[].concat(n),u=[...f,l],a=u[0],h=u.reduce(((t,n)=>{const o=S(e,n,c);return t.top=r(o.top,t.top),t.right=i(o.right,t.right),t.bottom=i(o.bottom,t.bottom),t.left=r(o.left,t.left),t}),S(e,a,c));return{width:h.right-h.left,height:h.bottom-h.top,x:h.left,y:h.top}},convertOffsetParentRelativeRectToViewportRelativeRect:function(t){let{rect:e,offsetParent:n,strategy:o}=t;const i=a(n),r=R(n);if(n===r)return e;let l={scrollLeft:0,scrollTop:0},c={x:1,y:1};const f={x:0,y:0};if((i||!i&&\"fixed\"!==o)&&((\"body\"!==s(n)||g(r))&&(l=T(n)),a(n))){const t=E(n);c=L(n),f.x=t.x+n.clientLeft,f.y=t.y+n.clientTop}return{width:e.width*c.x,height:e.height*c.y,x:e.x*c.x-l.scrollLeft*c.x+f.x,y:e.y*c.y-l.scrollTop*c.y+f.y}},isElement:d,getDimensions:function(t){return a(t)?c(t):t.getBoundingClientRect()},getOffsetParent:H,getDocumentElement:R,getScale:L,async getElementRects(t){let{reference:e,floating:n,strategy:o}=t;const i=this.getOffsetParent||H,r=this.getDimensions;return{reference:O(e,await i(n),o),floating:{x:0,y:0,...await r(n)}}},getClientRects:t=>Array.from(t.getClientRects()),isRTL:t=>\"rtl\"===o(t).direction};function z(t,e,n,o){void 0===o&&(o={});const{ancestorScroll:i=!0,ancestorResize:r=!0,elementResize:l=!0,animationFrame:c=!1}=o,s=i&&!c,f=s||r?[...d(t)?D(t):t.contextElement?D(t.contextElement):[],...D(e)]:[];f.forEach((t=>{s&&t.addEventListener(\"scroll\",n,{passive:!0}),r&&t.addEventListener(\"resize\",n)}));let u,a=null;if(l){let o=!0;a=new ResizeObserver((()=>{o||n(),o=!1})),d(t)&&!c&&a.observe(t),d(t)||!t.contextElement||c||a.observe(t.contextElement),a.observe(e)}let h=c?E(t):null;return c&&function e(){const o=E(t);!h||o.x===h.x&&o.y===h.y&&o.width===h.width&&o.height===h.height||n();h=o,u=requestAnimationFrame(e)}(),n(),()=>{var t;f.forEach((t=>{s&&t.removeEventListener(\"scroll\",n),r&&t.removeEventListener(\"resize\",n)})),null==(t=a)||t.disconnect(),a=null,c&&cancelAnimationFrame(u)}}const B=(t,n,o)=>{const i=new Map,r={platform:P,...o},l={...r.platform,_c:i};return e(t,n,{...r,platform:l})};export{z as autoUpdate,B as computePosition,D as getOverflowAncestors,P as platform};\n","import { defineComponent as O, openBlock as f, createElementBlock as T, normalizeClass as J, renderSlot as A, normalizeProps as ke, guardReactiveProps as Le, pushScopeId as De, popScopeId as Ie, nextTick as Fe, createBlock as M, withScopeId as Re, resolveComponent as P, normalizeStyle as W, withKeys as je, createElementVNode as w, Fragment as Ve, createCommentVNode as se, mergeProps as $e, withCtx as N, createVNode as ve, toDisplayString as We, ref as U, createApp as Ge, h as qe } from \"vue\";\nimport { offset as xe, autoPlacement as Ue, shift as Ye, flip as Xe, arrow as Ke, size as Je, computePosition as Qe, getOverflowAncestors as ne } from \"@floating-ui/dom\";\nfunction ye(e, t) {\n for (const o in t)\n Object.prototype.hasOwnProperty.call(t, o) && (typeof t[o] == \"object\" && e[o] ? ye(e[o], t[o]) : e[o] = t[o]);\n}\nconst h = {\n // Disable popper components\n disabled: !1,\n // Default position offset along main axis (px)\n distance: 5,\n // Default position offset along cross axis (px)\n skidding: 0,\n // Default container where the tooltip will be appended\n container: \"body\",\n // Element used to compute position and size boundaries\n boundary: void 0,\n // Skip delay & CSS transitions when another popper is shown, so that the popper appear to instanly move to the new position.\n instantMove: !1,\n // Auto destroy tooltip DOM nodes (ms)\n disposeTimeout: 150,\n // Triggers on the popper itself\n popperTriggers: [],\n // Positioning strategy\n strategy: \"absolute\",\n // Prevent overflow\n preventOverflow: !0,\n // Flip to the opposite placement if needed\n flip: !0,\n // Shift on the cross axis to prevent the popper from overflowing\n shift: !0,\n // Overflow padding (px)\n overflowPadding: 0,\n // Arrow padding (px)\n arrowPadding: 0,\n // Compute arrow overflow (useful to hide it)\n arrowOverflow: !0,\n /**\n * By default, compute autohide on 'click'.\n */\n autoHideOnMousedown: !1,\n // Themes\n themes: {\n tooltip: {\n // Default tooltip placement relative to target element\n placement: \"top\",\n // Default events that trigger the tooltip\n triggers: [\"hover\", \"focus\", \"touch\"],\n // Close tooltip on click on tooltip target\n hideTriggers: (e) => [...e, \"click\"],\n // Delay (ms)\n delay: {\n show: 200,\n hide: 0\n },\n // Update popper on content resize\n handleResize: !1,\n // Enable HTML content in directive\n html: !1,\n // Displayed when tooltip content is loading\n loadingContent: \"...\"\n },\n dropdown: {\n // Default dropdown placement relative to target element\n placement: \"bottom\",\n // Default events that trigger the dropdown\n triggers: [\"click\"],\n // Delay (ms)\n delay: 0,\n // Update popper on content resize\n handleResize: !0,\n // Hide on clock outside\n autoHide: !0\n },\n menu: {\n $extend: \"dropdown\",\n triggers: [\"hover\", \"focus\"],\n popperTriggers: [\"hover\"],\n delay: {\n show: 0,\n hide: 400\n }\n }\n }\n};\nfunction S(e, t) {\n let o = h.themes[e] || {}, i;\n do\n i = o[t], typeof i > \"u\" ? o.$extend ? o = h.themes[o.$extend] || {} : (o = null, i = h[t]) : o = null;\n while (o);\n return i;\n}\nfunction Ze(e) {\n const t = [e];\n let o = h.themes[e] || {};\n do\n o.$extend && !o.$resetCss ? (t.push(o.$extend), o = h.themes[o.$extend] || {}) : o = null;\n while (o);\n return t.map((i) => `v-popper--theme-${i}`);\n}\nfunction re(e) {\n const t = [e];\n let o = h.themes[e] || {};\n do\n o.$extend ? (t.push(o.$extend), o = h.themes[o.$extend] || {}) : o = null;\n while (o);\n return t;\n}\nlet $ = !1;\nif (typeof window < \"u\") {\n $ = !1;\n try {\n const e = Object.defineProperty({}, \"passive\", {\n get() {\n $ = !0;\n }\n });\n window.addEventListener(\"test\", null, e);\n } catch {\n }\n}\nlet _e = !1;\ntypeof window < \"u\" && typeof navigator < \"u\" && (_e = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream);\nconst Te = [\"auto\", \"top\", \"bottom\", \"left\", \"right\"].reduce((e, t) => e.concat([\n t,\n `${t}-start`,\n `${t}-end`\n]), []), pe = {\n hover: \"mouseenter\",\n focus: \"focus\",\n click: \"click\",\n touch: \"touchstart\",\n pointer: \"pointerdown\"\n}, ae = {\n hover: \"mouseleave\",\n focus: \"blur\",\n click: \"click\",\n touch: \"touchend\",\n pointer: \"pointerup\"\n};\nfunction de(e, t) {\n const o = e.indexOf(t);\n o !== -1 && e.splice(o, 1);\n}\nfunction G() {\n return new Promise((e) => requestAnimationFrame(() => {\n requestAnimationFrame(e);\n }));\n}\nconst d = [];\nlet g = null;\nconst le = {};\nfunction he(e) {\n let t = le[e];\n return t || (t = le[e] = []), t;\n}\nlet Y = function() {\n};\ntypeof window < \"u\" && (Y = window.Element);\nfunction n(e) {\n return function(t) {\n return S(t.theme, e);\n };\n}\nconst q = \"__floating-vue__popper\", Q = () => O({\n name: \"VPopper\",\n provide() {\n return {\n [q]: {\n parentPopper: this\n }\n };\n },\n inject: {\n [q]: { default: null }\n },\n props: {\n theme: {\n type: String,\n required: !0\n },\n targetNodes: {\n type: Function,\n required: !0\n },\n referenceNode: {\n type: Function,\n default: null\n },\n popperNode: {\n type: Function,\n required: !0\n },\n shown: {\n type: Boolean,\n default: !1\n },\n showGroup: {\n type: String,\n default: null\n },\n // eslint-disable-next-line vue/require-prop-types\n ariaId: {\n default: null\n },\n disabled: {\n type: Boolean,\n default: n(\"disabled\")\n },\n positioningDisabled: {\n type: Boolean,\n default: n(\"positioningDisabled\")\n },\n placement: {\n type: String,\n default: n(\"placement\"),\n validator: (e) => Te.includes(e)\n },\n delay: {\n type: [String, Number, Object],\n default: n(\"delay\")\n },\n distance: {\n type: [Number, String],\n default: n(\"distance\")\n },\n skidding: {\n type: [Number, String],\n default: n(\"skidding\")\n },\n triggers: {\n type: Array,\n default: n(\"triggers\")\n },\n showTriggers: {\n type: [Array, Function],\n default: n(\"showTriggers\")\n },\n hideTriggers: {\n type: [Array, Function],\n default: n(\"hideTriggers\")\n },\n popperTriggers: {\n type: Array,\n default: n(\"popperTriggers\")\n },\n popperShowTriggers: {\n type: [Array, Function],\n default: n(\"popperShowTriggers\")\n },\n popperHideTriggers: {\n type: [Array, Function],\n default: n(\"popperHideTriggers\")\n },\n container: {\n type: [String, Object, Y, Boolean],\n default: n(\"container\")\n },\n boundary: {\n type: [String, Y],\n default: n(\"boundary\")\n },\n strategy: {\n type: String,\n validator: (e) => [\"absolute\", \"fixed\"].includes(e),\n default: n(\"strategy\")\n },\n autoHide: {\n type: [Boolean, Function],\n default: n(\"autoHide\")\n },\n handleResize: {\n type: Boolean,\n default: n(\"handleResize\")\n },\n instantMove: {\n type: Boolean,\n default: n(\"instantMove\")\n },\n eagerMount: {\n type: Boolean,\n default: n(\"eagerMount\")\n },\n popperClass: {\n type: [String, Array, Object],\n default: n(\"popperClass\")\n },\n computeTransformOrigin: {\n type: Boolean,\n default: n(\"computeTransformOrigin\")\n },\n /**\n * @deprecated\n */\n autoMinSize: {\n type: Boolean,\n default: n(\"autoMinSize\")\n },\n autoSize: {\n type: [Boolean, String],\n default: n(\"autoSize\")\n },\n /**\n * @deprecated\n */\n autoMaxSize: {\n type: Boolean,\n default: n(\"autoMaxSize\")\n },\n autoBoundaryMaxSize: {\n type: Boolean,\n default: n(\"autoBoundaryMaxSize\")\n },\n preventOverflow: {\n type: Boolean,\n default: n(\"preventOverflow\")\n },\n overflowPadding: {\n type: [Number, String],\n default: n(\"overflowPadding\")\n },\n arrowPadding: {\n type: [Number, String],\n default: n(\"arrowPadding\")\n },\n arrowOverflow: {\n type: Boolean,\n default: n(\"arrowOverflow\")\n },\n flip: {\n type: Boolean,\n default: n(\"flip\")\n },\n shift: {\n type: Boolean,\n default: n(\"shift\")\n },\n shiftCrossAxis: {\n type: Boolean,\n default: n(\"shiftCrossAxis\")\n },\n noAutoFocus: {\n type: Boolean,\n default: n(\"noAutoFocus\")\n },\n disposeTimeout: {\n type: Number,\n default: n(\"disposeTimeout\")\n }\n },\n emits: {\n show: () => !0,\n hide: () => !0,\n \"update:shown\": (e) => !0,\n \"apply-show\": () => !0,\n \"apply-hide\": () => !0,\n \"close-group\": () => !0,\n \"close-directive\": () => !0,\n \"auto-hide\": () => !0,\n resize: () => !0\n },\n data() {\n return {\n isShown: !1,\n isMounted: !1,\n skipTransition: !1,\n classes: {\n showFrom: !1,\n showTo: !1,\n hideFrom: !1,\n hideTo: !0\n },\n result: {\n x: 0,\n y: 0,\n placement: \"\",\n strategy: this.strategy,\n arrow: {\n x: 0,\n y: 0,\n centerOffset: 0\n },\n transformOrigin: null\n },\n randomId: `popper_${[Math.random(), Date.now()].map((e) => e.toString(36).substring(2, 10)).join(\"_\")}`,\n shownChildren: /* @__PURE__ */ new Set(),\n lastAutoHide: !0,\n pendingHide: !1,\n containsGlobalTarget: !1,\n isDisposed: !0,\n mouseDownContains: !1\n };\n },\n computed: {\n popperId() {\n return this.ariaId != null ? this.ariaId : this.randomId;\n },\n shouldMountContent() {\n return this.eagerMount || this.isMounted;\n },\n slotData() {\n return {\n popperId: this.popperId,\n isShown: this.isShown,\n shouldMountContent: this.shouldMountContent,\n skipTransition: this.skipTransition,\n autoHide: typeof this.autoHide == \"function\" ? this.lastAutoHide : this.autoHide,\n show: this.show,\n hide: this.hide,\n handleResize: this.handleResize,\n onResize: this.onResize,\n classes: {\n ...this.classes,\n popperClass: this.popperClass\n },\n result: this.positioningDisabled ? null : this.result,\n attrs: this.$attrs\n };\n },\n parentPopper() {\n var e;\n return (e = this[q]) == null ? void 0 : e.parentPopper;\n },\n hasPopperShowTriggerHover() {\n var e, t;\n return ((e = this.popperTriggers) == null ? void 0 : e.includes(\"hover\")) || ((t = this.popperShowTriggers) == null ? void 0 : t.includes(\"hover\"));\n }\n },\n watch: {\n shown: \"$_autoShowHide\",\n disabled(e) {\n e ? this.dispose() : this.init();\n },\n async container() {\n this.isShown && (this.$_ensureTeleport(), await this.$_computePosition());\n },\n triggers: {\n handler: \"$_refreshListeners\",\n deep: !0\n },\n positioningDisabled: \"$_refreshListeners\",\n ...[\n \"placement\",\n \"distance\",\n \"skidding\",\n \"boundary\",\n \"strategy\",\n \"overflowPadding\",\n \"arrowPadding\",\n \"preventOverflow\",\n \"shift\",\n \"shiftCrossAxis\",\n \"flip\"\n ].reduce((e, t) => (e[t] = \"$_computePosition\", e), {})\n },\n created() {\n this.autoMinSize && console.warn('[floating-vue] `autoMinSize` option is deprecated. Use `autoSize=\"min\"` instead.'), this.autoMaxSize && console.warn(\"[floating-vue] `autoMaxSize` option is deprecated. Use `autoBoundaryMaxSize` instead.\");\n },\n mounted() {\n this.init(), this.$_detachPopperNode();\n },\n activated() {\n this.$_autoShowHide();\n },\n deactivated() {\n this.hide();\n },\n beforeUnmount() {\n this.dispose();\n },\n methods: {\n show({ event: e = null, skipDelay: t = !1, force: o = !1 } = {}) {\n var i, s;\n (i = this.parentPopper) != null && i.lockedChild && this.parentPopper.lockedChild !== this || (this.pendingHide = !1, (o || !this.disabled) && (((s = this.parentPopper) == null ? void 0 : s.lockedChild) === this && (this.parentPopper.lockedChild = null), this.$_scheduleShow(e, t), this.$emit(\"show\"), this.$_showFrameLocked = !0, requestAnimationFrame(() => {\n this.$_showFrameLocked = !1;\n })), this.$emit(\"update:shown\", !0));\n },\n hide({ event: e = null, skipDelay: t = !1 } = {}) {\n var o;\n if (!this.$_hideInProgress) {\n if (this.shownChildren.size > 0) {\n this.pendingHide = !0;\n return;\n }\n if (this.hasPopperShowTriggerHover && this.$_isAimingPopper()) {\n this.parentPopper && (this.parentPopper.lockedChild = this, clearTimeout(this.parentPopper.lockedChildTimer), this.parentPopper.lockedChildTimer = setTimeout(() => {\n this.parentPopper.lockedChild === this && (this.parentPopper.lockedChild.hide({ skipDelay: t }), this.parentPopper.lockedChild = null);\n }, 1e3));\n return;\n }\n ((o = this.parentPopper) == null ? void 0 : o.lockedChild) === this && (this.parentPopper.lockedChild = null), this.pendingHide = !1, this.$_scheduleHide(e, t), this.$emit(\"hide\"), this.$emit(\"update:shown\", !1);\n }\n },\n init() {\n var e;\n this.isDisposed && (this.isDisposed = !1, this.isMounted = !1, this.$_events = [], this.$_preventShow = !1, this.$_referenceNode = ((e = this.referenceNode) == null ? void 0 : e.call(this)) ?? this.$el, this.$_targetNodes = this.targetNodes().filter((t) => t.nodeType === t.ELEMENT_NODE), this.$_popperNode = this.popperNode(), this.$_innerNode = this.$_popperNode.querySelector(\".v-popper__inner\"), this.$_arrowNode = this.$_popperNode.querySelector(\".v-popper__arrow-container\"), this.$_swapTargetAttrs(\"title\", \"data-original-title\"), this.$_detachPopperNode(), this.triggers.length && this.$_addEventListeners(), this.shown && this.show());\n },\n dispose() {\n this.isDisposed || (this.isDisposed = !0, this.$_removeEventListeners(), this.hide({ skipDelay: !0 }), this.$_detachPopperNode(), this.isMounted = !1, this.isShown = !1, this.$_updateParentShownChildren(!1), this.$_swapTargetAttrs(\"data-original-title\", \"title\"));\n },\n async onResize() {\n this.isShown && (await this.$_computePosition(), this.$emit(\"resize\"));\n },\n async $_computePosition() {\n if (this.isDisposed || this.positioningDisabled)\n return;\n const e = {\n strategy: this.strategy,\n middleware: []\n };\n (this.distance || this.skidding) && e.middleware.push(xe({\n mainAxis: this.distance,\n crossAxis: this.skidding\n }));\n const t = this.placement.startsWith(\"auto\");\n if (t ? e.middleware.push(Ue({\n alignment: this.placement.split(\"-\")[1] ?? \"\"\n })) : e.placement = this.placement, this.preventOverflow && (this.shift && e.middleware.push(Ye({\n padding: this.overflowPadding,\n boundary: this.boundary,\n crossAxis: this.shiftCrossAxis\n })), !t && this.flip && e.middleware.push(Xe({\n padding: this.overflowPadding,\n boundary: this.boundary\n }))), e.middleware.push(Ke({\n element: this.$_arrowNode,\n padding: this.arrowPadding\n })), this.arrowOverflow && e.middleware.push({\n name: \"arrowOverflow\",\n fn: ({ placement: i, rects: s, middlewareData: r }) => {\n let p;\n const { centerOffset: a } = r.arrow;\n return i.startsWith(\"top\") || i.startsWith(\"bottom\") ? p = Math.abs(a) > s.reference.width / 2 : p = Math.abs(a) > s.reference.height / 2, {\n data: {\n overflow: p\n }\n };\n }\n }), this.autoMinSize || this.autoSize) {\n const i = this.autoSize ? this.autoSize : this.autoMinSize ? \"min\" : null;\n e.middleware.push({\n name: \"autoSize\",\n fn: ({ rects: s, placement: r, middlewareData: p }) => {\n var u;\n if ((u = p.autoSize) != null && u.skip)\n return {};\n let a, l;\n return r.startsWith(\"top\") || r.startsWith(\"bottom\") ? a = s.reference.width : l = s.reference.height, this.$_innerNode.style[i === \"min\" ? \"minWidth\" : i === \"max\" ? \"maxWidth\" : \"width\"] = a != null ? `${a}px` : null, this.$_innerNode.style[i === \"min\" ? \"minHeight\" : i === \"max\" ? \"maxHeight\" : \"height\"] = l != null ? `${l}px` : null, {\n data: {\n skip: !0\n },\n reset: {\n rects: !0\n }\n };\n }\n });\n }\n (this.autoMaxSize || this.autoBoundaryMaxSize) && (this.$_innerNode.style.maxWidth = null, this.$_innerNode.style.maxHeight = null, e.middleware.push(Je({\n boundary: this.boundary,\n padding: this.overflowPadding,\n apply: ({ availableWidth: i, availableHeight: s }) => {\n this.$_innerNode.style.maxWidth = i != null ? `${i}px` : null, this.$_innerNode.style.maxHeight = s != null ? `${s}px` : null;\n }\n })));\n const o = await Qe(this.$_referenceNode, this.$_popperNode, e);\n Object.assign(this.result, {\n x: o.x,\n y: o.y,\n placement: o.placement,\n strategy: o.strategy,\n arrow: {\n ...o.middlewareData.arrow,\n ...o.middlewareData.arrowOverflow\n }\n });\n },\n $_scheduleShow(e, t = !1) {\n if (this.$_updateParentShownChildren(!0), this.$_hideInProgress = !1, clearTimeout(this.$_scheduleTimer), g && this.instantMove && g.instantMove && g !== this.parentPopper) {\n g.$_applyHide(!0), this.$_applyShow(!0);\n return;\n }\n t ? this.$_applyShow() : this.$_scheduleTimer = setTimeout(this.$_applyShow.bind(this), this.$_computeDelay(\"show\"));\n },\n $_scheduleHide(e, t = !1) {\n if (this.shownChildren.size > 0) {\n this.pendingHide = !0;\n return;\n }\n this.$_updateParentShownChildren(!1), this.$_hideInProgress = !0, clearTimeout(this.$_scheduleTimer), this.isShown && (g = this), t ? this.$_applyHide() : this.$_scheduleTimer = setTimeout(this.$_applyHide.bind(this), this.$_computeDelay(\"hide\"));\n },\n $_computeDelay(e) {\n const t = this.delay;\n return parseInt(t && t[e] || t || 0);\n },\n async $_applyShow(e = !1) {\n clearTimeout(this.$_disposeTimer), clearTimeout(this.$_scheduleTimer), this.skipTransition = e, !this.isShown && (this.$_ensureTeleport(), await G(), await this.$_computePosition(), await this.$_applyShowEffect(), this.positioningDisabled || this.$_registerEventListeners([\n ...ne(this.$_referenceNode),\n ...ne(this.$_popperNode)\n ], \"scroll\", () => {\n this.$_computePosition();\n }));\n },\n async $_applyShowEffect() {\n if (this.$_hideInProgress)\n return;\n if (this.computeTransformOrigin) {\n const t = this.$_referenceNode.getBoundingClientRect(), o = this.$_popperNode.querySelector(\".v-popper__wrapper\"), i = o.parentNode.getBoundingClientRect(), s = t.x + t.width / 2 - (i.left + o.offsetLeft), r = t.y + t.height / 2 - (i.top + o.offsetTop);\n this.result.transformOrigin = `${s}px ${r}px`;\n }\n this.isShown = !0, this.$_applyAttrsToTarget({\n \"aria-describedby\": this.popperId,\n \"data-popper-shown\": \"\"\n });\n const e = this.showGroup;\n if (e) {\n let t;\n for (let o = 0; o < d.length; o++)\n t = d[o], t.showGroup !== e && (t.hide(), t.$emit(\"close-group\"));\n }\n d.push(this), document.body.classList.add(\"v-popper--some-open\");\n for (const t of re(this.theme))\n he(t).push(this), document.body.classList.add(`v-popper--some-open--${t}`);\n this.$emit(\"apply-show\"), this.classes.showFrom = !0, this.classes.showTo = !1, this.classes.hideFrom = !1, this.classes.hideTo = !1, await G(), this.classes.showFrom = !1, this.classes.showTo = !0, this.noAutoFocus || this.$_popperNode.focus();\n },\n async $_applyHide(e = !1) {\n if (this.shownChildren.size > 0) {\n this.pendingHide = !0, this.$_hideInProgress = !1;\n return;\n }\n if (clearTimeout(this.$_scheduleTimer), !this.isShown)\n return;\n this.skipTransition = e, de(d, this), d.length === 0 && document.body.classList.remove(\"v-popper--some-open\");\n for (const o of re(this.theme)) {\n const i = he(o);\n de(i, this), i.length === 0 && document.body.classList.remove(`v-popper--some-open--${o}`);\n }\n g === this && (g = null), this.isShown = !1, this.$_applyAttrsToTarget({\n \"aria-describedby\": void 0,\n \"data-popper-shown\": void 0\n }), clearTimeout(this.$_disposeTimer);\n const t = this.disposeTimeout;\n t !== null && (this.$_disposeTimer = setTimeout(() => {\n this.$_popperNode && (this.$_detachPopperNode(), this.isMounted = !1);\n }, t)), this.$_removeEventListeners(\"scroll\"), this.$emit(\"apply-hide\"), this.classes.showFrom = !1, this.classes.showTo = !1, this.classes.hideFrom = !0, this.classes.hideTo = !1, await G(), this.classes.hideFrom = !1, this.classes.hideTo = !0;\n },\n $_autoShowHide() {\n this.shown ? this.show() : this.hide();\n },\n $_ensureTeleport() {\n if (this.isDisposed)\n return;\n let e = this.container;\n if (typeof e == \"string\" ? e = window.document.querySelector(e) : e === !1 && (e = this.$_targetNodes[0].parentNode), !e)\n throw new Error(\"No container for popover: \" + this.container);\n e.appendChild(this.$_popperNode), this.isMounted = !0;\n },\n $_addEventListeners() {\n const e = (o) => {\n this.isShown && !this.$_hideInProgress || (o.usedByTooltip = !0, !this.$_preventShow && this.show({ event: o }));\n };\n this.$_registerTriggerListeners(this.$_targetNodes, pe, this.triggers, this.showTriggers, e), this.$_registerTriggerListeners([this.$_popperNode], pe, this.popperTriggers, this.popperShowTriggers, e);\n const t = (o) => {\n o.usedByTooltip || this.hide({ event: o });\n };\n this.$_registerTriggerListeners(this.$_targetNodes, ae, this.triggers, this.hideTriggers, t), this.$_registerTriggerListeners([this.$_popperNode], ae, this.popperTriggers, this.popperHideTriggers, t);\n },\n $_registerEventListeners(e, t, o) {\n this.$_events.push({ targetNodes: e, eventType: t, handler: o }), e.forEach((i) => i.addEventListener(t, o, $ ? {\n passive: !0\n } : void 0));\n },\n $_registerTriggerListeners(e, t, o, i, s) {\n let r = o;\n i != null && (r = typeof i == \"function\" ? i(r) : i), r.forEach((p) => {\n const a = t[p];\n a && this.$_registerEventListeners(e, a, s);\n });\n },\n $_removeEventListeners(e) {\n const t = [];\n this.$_events.forEach((o) => {\n const { targetNodes: i, eventType: s, handler: r } = o;\n !e || e === s ? i.forEach((p) => p.removeEventListener(s, r)) : t.push(o);\n }), this.$_events = t;\n },\n $_refreshListeners() {\n this.isDisposed || (this.$_removeEventListeners(), this.$_addEventListeners());\n },\n $_handleGlobalClose(e, t = !1) {\n this.$_showFrameLocked || (this.hide({ event: e }), e.closePopover ? this.$emit(\"close-directive\") : this.$emit(\"auto-hide\"), t && (this.$_preventShow = !0, setTimeout(() => {\n this.$_preventShow = !1;\n }, 300)));\n },\n $_detachPopperNode() {\n this.$_popperNode.parentNode && this.$_popperNode.parentNode.removeChild(this.$_popperNode);\n },\n $_swapTargetAttrs(e, t) {\n for (const o of this.$_targetNodes) {\n const i = o.getAttribute(e);\n i && (o.removeAttribute(e), o.setAttribute(t, i));\n }\n },\n $_applyAttrsToTarget(e) {\n for (const t of this.$_targetNodes)\n for (const o in e) {\n const i = e[o];\n i == null ? t.removeAttribute(o) : t.setAttribute(o, i);\n }\n },\n $_updateParentShownChildren(e) {\n let t = this.parentPopper;\n for (; t; )\n e ? t.shownChildren.add(this.randomId) : (t.shownChildren.delete(this.randomId), t.pendingHide && t.hide()), t = t.parentPopper;\n },\n $_isAimingPopper() {\n const e = this.$_referenceNode.getBoundingClientRect();\n if (y >= e.left && y <= e.right && _ >= e.top && _ <= e.bottom) {\n const t = this.$_popperNode.getBoundingClientRect(), o = y - c, i = _ - m, r = t.left + t.width / 2 - c + (t.top + t.height / 2) - m + t.width + t.height, p = c + o * r, a = m + i * r;\n return C(c, m, p, a, t.left, t.top, t.left, t.bottom) || // Left edge\n C(c, m, p, a, t.left, t.top, t.right, t.top) || // Top edge\n C(c, m, p, a, t.right, t.top, t.right, t.bottom) || // Right edge\n C(c, m, p, a, t.left, t.bottom, t.right, t.bottom);\n }\n return !1;\n }\n },\n render() {\n return this.$slots.default(this.slotData);\n }\n});\nif (typeof document < \"u\" && typeof window < \"u\") {\n if (_e) {\n const e = $ ? {\n passive: !0,\n capture: !0\n } : !0;\n document.addEventListener(\"touchstart\", (t) => ue(t, !0), e), document.addEventListener(\"touchend\", (t) => fe(t, !0), e);\n } else\n window.addEventListener(\"mousedown\", (e) => ue(e, !1), !0), window.addEventListener(\"click\", (e) => fe(e, !1), !0);\n window.addEventListener(\"resize\", tt);\n}\nfunction ue(e, t) {\n if (h.autoHideOnMousedown)\n Pe(e, t);\n else\n for (let o = 0; o < d.length; o++) {\n const i = d[o];\n try {\n i.mouseDownContains = i.popperNode().contains(e.target);\n } catch {\n }\n }\n}\nfunction fe(e, t) {\n h.autoHideOnMousedown || Pe(e, t);\n}\nfunction Pe(e, t) {\n const o = {};\n for (let i = d.length - 1; i >= 0; i--) {\n const s = d[i];\n try {\n const r = s.containsGlobalTarget = s.mouseDownContains || s.popperNode().contains(e.target);\n s.pendingHide = !1, requestAnimationFrame(() => {\n if (s.pendingHide = !1, !o[s.randomId] && ce(s, r, e)) {\n if (s.$_handleGlobalClose(e, t), !e.closeAllPopover && e.closePopover && r) {\n let a = s.parentPopper;\n for (; a; )\n o[a.randomId] = !0, a = a.parentPopper;\n return;\n }\n let p = s.parentPopper;\n for (; p && ce(p, p.containsGlobalTarget, e); ) {\n p.$_handleGlobalClose(e, t);\n p = p.parentPopper;\n }\n }\n });\n } catch {\n }\n }\n}\nfunction ce(e, t, o) {\n return o.closeAllPopover || o.closePopover && t || et(e, o) && !t;\n}\nfunction et(e, t) {\n if (typeof e.autoHide == \"function\") {\n const o = e.autoHide(t);\n return e.lastAutoHide = o, o;\n }\n return e.autoHide;\n}\nfunction tt() {\n for (let e = 0; e < d.length; e++)\n d[e].$_computePosition();\n}\nfunction Nt() {\n for (let e = 0; e < d.length; e++)\n d[e].hide();\n}\nlet c = 0, m = 0, y = 0, _ = 0;\ntypeof window < \"u\" && window.addEventListener(\"mousemove\", (e) => {\n c = y, m = _, y = e.clientX, _ = e.clientY;\n}, $ ? {\n passive: !0\n} : void 0);\nfunction C(e, t, o, i, s, r, p, a) {\n const l = ((p - s) * (t - r) - (a - r) * (e - s)) / ((a - r) * (o - e) - (p - s) * (i - t)), u = ((o - e) * (t - r) - (i - t) * (e - s)) / ((a - r) * (o - e) - (p - s) * (i - t));\n return l >= 0 && l <= 1 && u >= 0 && u <= 1;\n}\nconst ot = {\n extends: Q()\n}, B = (e, t) => {\n const o = e.__vccOpts || e;\n for (const [i, s] of t)\n o[i] = s;\n return o;\n};\nfunction it(e, t, o, i, s, r) {\n return f(), T(\"div\", {\n ref: \"reference\",\n class: J([\"v-popper\", {\n \"v-popper--shown\": e.slotData.isShown\n }])\n }, [\n A(e.$slots, \"default\", ke(Le(e.slotData)))\n ], 2);\n}\nconst st = /* @__PURE__ */ B(ot, [[\"render\", it]]);\nfunction nt() {\n var e = window.navigator.userAgent, t = e.indexOf(\"MSIE \");\n if (t > 0)\n return parseInt(e.substring(t + 5, e.indexOf(\".\", t)), 10);\n var o = e.indexOf(\"Trident/\");\n if (o > 0) {\n var i = e.indexOf(\"rv:\");\n return parseInt(e.substring(i + 3, e.indexOf(\".\", i)), 10);\n }\n var s = e.indexOf(\"Edge/\");\n return s > 0 ? parseInt(e.substring(s + 5, e.indexOf(\".\", s)), 10) : -1;\n}\nlet z;\nfunction X() {\n X.init || (X.init = !0, z = nt() !== -1);\n}\nvar E = {\n name: \"ResizeObserver\",\n props: {\n emitOnMount: {\n type: Boolean,\n default: !1\n },\n ignoreWidth: {\n type: Boolean,\n default: !1\n },\n ignoreHeight: {\n type: Boolean,\n default: !1\n }\n },\n emits: [\n \"notify\"\n ],\n mounted() {\n X(), Fe(() => {\n this._w = this.$el.offsetWidth, this._h = this.$el.offsetHeight, this.emitOnMount && this.emitSize();\n });\n const e = document.createElement(\"object\");\n this._resizeObject = e, e.setAttribute(\"aria-hidden\", \"true\"), e.setAttribute(\"tabindex\", -1), e.onload = this.addResizeHandlers, e.type = \"text/html\", z && this.$el.appendChild(e), e.data = \"about:blank\", z || this.$el.appendChild(e);\n },\n beforeUnmount() {\n this.removeResizeHandlers();\n },\n methods: {\n compareAndNotify() {\n (!this.ignoreWidth && this._w !== this.$el.offsetWidth || !this.ignoreHeight && this._h !== this.$el.offsetHeight) && (this._w = this.$el.offsetWidth, this._h = this.$el.offsetHeight, this.emitSize());\n },\n emitSize() {\n this.$emit(\"notify\", {\n width: this._w,\n height: this._h\n });\n },\n addResizeHandlers() {\n this._resizeObject.contentDocument.defaultView.addEventListener(\"resize\", this.compareAndNotify), this.compareAndNotify();\n },\n removeResizeHandlers() {\n this._resizeObject && this._resizeObject.onload && (!z && this._resizeObject.contentDocument && this._resizeObject.contentDocument.defaultView.removeEventListener(\"resize\", this.compareAndNotify), this.$el.removeChild(this._resizeObject), this._resizeObject.onload = null, this._resizeObject = null);\n }\n }\n};\nconst rt = /* @__PURE__ */ Re(\"data-v-b329ee4c\");\nDe(\"data-v-b329ee4c\");\nconst pt = {\n class: \"resize-observer\",\n tabindex: \"-1\"\n};\nIe();\nconst at = /* @__PURE__ */ rt((e, t, o, i, s, r) => (f(), M(\"div\", pt)));\nE.render = at;\nE.__scopeId = \"data-v-b329ee4c\";\nE.__file = \"src/components/ResizeObserver.vue\";\nconst Z = (e = \"theme\") => ({\n computed: {\n themeClass() {\n return Ze(this[e]);\n }\n }\n}), dt = O({\n name: \"VPopperContent\",\n components: {\n ResizeObserver: E\n },\n mixins: [\n Z()\n ],\n props: {\n popperId: String,\n theme: String,\n shown: Boolean,\n mounted: Boolean,\n skipTransition: Boolean,\n autoHide: Boolean,\n handleResize: Boolean,\n classes: Object,\n result: Object\n },\n emits: [\n \"hide\",\n \"resize\"\n ],\n methods: {\n toPx(e) {\n return e != null && !isNaN(e) ? `${e}px` : null;\n }\n }\n}), lt = [\"id\", \"aria-hidden\", \"tabindex\", \"data-popper-placement\"], ht = {\n ref: \"inner\",\n class: \"v-popper__inner\"\n}, ut = /* @__PURE__ */ w(\"div\", { class: \"v-popper__arrow-outer\" }, null, -1), ft = /* @__PURE__ */ w(\"div\", { class: \"v-popper__arrow-inner\" }, null, -1), ct = [\n ut,\n ft\n];\nfunction mt(e, t, o, i, s, r) {\n const p = P(\"ResizeObserver\");\n return f(), T(\"div\", {\n id: e.popperId,\n ref: \"popover\",\n class: J([\"v-popper__popper\", [\n e.themeClass,\n e.classes.popperClass,\n {\n \"v-popper__popper--shown\": e.shown,\n \"v-popper__popper--hidden\": !e.shown,\n \"v-popper__popper--show-from\": e.classes.showFrom,\n \"v-popper__popper--show-to\": e.classes.showTo,\n \"v-popper__popper--hide-from\": e.classes.hideFrom,\n \"v-popper__popper--hide-to\": e.classes.hideTo,\n \"v-popper__popper--skip-transition\": e.skipTransition,\n \"v-popper__popper--arrow-overflow\": e.result && e.result.arrow.overflow,\n \"v-popper__popper--no-positioning\": !e.result\n }\n ]]),\n style: W(e.result ? {\n position: e.result.strategy,\n transform: `translate3d(${Math.round(e.result.x)}px,${Math.round(e.result.y)}px,0)`\n } : void 0),\n \"aria-hidden\": e.shown ? \"false\" : \"true\",\n tabindex: e.autoHide ? 0 : void 0,\n \"data-popper-placement\": e.result ? e.result.placement : void 0,\n onKeyup: t[2] || (t[2] = je((a) => e.autoHide && e.$emit(\"hide\"), [\"esc\"]))\n }, [\n w(\"div\", {\n class: \"v-popper__backdrop\",\n onClick: t[0] || (t[0] = (a) => e.autoHide && e.$emit(\"hide\"))\n }),\n w(\"div\", {\n class: \"v-popper__wrapper\",\n style: W(e.result ? {\n transformOrigin: e.result.transformOrigin\n } : void 0)\n }, [\n w(\"div\", ht, [\n e.mounted ? (f(), T(Ve, { key: 0 }, [\n w(\"div\", null, [\n A(e.$slots, \"default\")\n ]),\n e.handleResize ? (f(), M(p, {\n key: 0,\n onNotify: t[1] || (t[1] = (a) => e.$emit(\"resize\", a))\n })) : se(\"\", !0)\n ], 64)) : se(\"\", !0)\n ], 512),\n w(\"div\", {\n ref: \"arrow\",\n class: \"v-popper__arrow-container\",\n style: W(e.result ? {\n left: e.toPx(e.result.arrow.x),\n top: e.toPx(e.result.arrow.y)\n } : void 0)\n }, ct, 4)\n ], 4)\n ], 46, lt);\n}\nconst ee = /* @__PURE__ */ B(dt, [[\"render\", mt]]), te = {\n methods: {\n show(...e) {\n return this.$refs.popper.show(...e);\n },\n hide(...e) {\n return this.$refs.popper.hide(...e);\n },\n dispose(...e) {\n return this.$refs.popper.dispose(...e);\n },\n onResize(...e) {\n return this.$refs.popper.onResize(...e);\n }\n }\n};\nlet K = function() {\n};\ntypeof window < \"u\" && (K = window.Element);\nconst gt = O({\n name: \"VPopperWrapper\",\n components: {\n Popper: st,\n PopperContent: ee\n },\n mixins: [\n te,\n Z(\"finalTheme\")\n ],\n props: {\n theme: {\n type: String,\n default: null\n },\n referenceNode: {\n type: Function,\n default: null\n },\n shown: {\n type: Boolean,\n default: !1\n },\n showGroup: {\n type: String,\n default: null\n },\n // eslint-disable-next-line vue/require-prop-types\n ariaId: {\n default: null\n },\n disabled: {\n type: Boolean,\n default: void 0\n },\n positioningDisabled: {\n type: Boolean,\n default: void 0\n },\n placement: {\n type: String,\n default: void 0\n },\n delay: {\n type: [String, Number, Object],\n default: void 0\n },\n distance: {\n type: [Number, String],\n default: void 0\n },\n skidding: {\n type: [Number, String],\n default: void 0\n },\n triggers: {\n type: Array,\n default: void 0\n },\n showTriggers: {\n type: [Array, Function],\n default: void 0\n },\n hideTriggers: {\n type: [Array, Function],\n default: void 0\n },\n popperTriggers: {\n type: Array,\n default: void 0\n },\n popperShowTriggers: {\n type: [Array, Function],\n default: void 0\n },\n popperHideTriggers: {\n type: [Array, Function],\n default: void 0\n },\n container: {\n type: [String, Object, K, Boolean],\n default: void 0\n },\n boundary: {\n type: [String, K],\n default: void 0\n },\n strategy: {\n type: String,\n default: void 0\n },\n autoHide: {\n type: [Boolean, Function],\n default: void 0\n },\n handleResize: {\n type: Boolean,\n default: void 0\n },\n instantMove: {\n type: Boolean,\n default: void 0\n },\n eagerMount: {\n type: Boolean,\n default: void 0\n },\n popperClass: {\n type: [String, Array, Object],\n default: void 0\n },\n computeTransformOrigin: {\n type: Boolean,\n default: void 0\n },\n /**\n * @deprecated\n */\n autoMinSize: {\n type: Boolean,\n default: void 0\n },\n autoSize: {\n type: [Boolean, String],\n default: void 0\n },\n /**\n * @deprecated\n */\n autoMaxSize: {\n type: Boolean,\n default: void 0\n },\n autoBoundaryMaxSize: {\n type: Boolean,\n default: void 0\n },\n preventOverflow: {\n type: Boolean,\n default: void 0\n },\n overflowPadding: {\n type: [Number, String],\n default: void 0\n },\n arrowPadding: {\n type: [Number, String],\n default: void 0\n },\n arrowOverflow: {\n type: Boolean,\n default: void 0\n },\n flip: {\n type: Boolean,\n default: void 0\n },\n shift: {\n type: Boolean,\n default: void 0\n },\n shiftCrossAxis: {\n type: Boolean,\n default: void 0\n },\n noAutoFocus: {\n type: Boolean,\n default: void 0\n },\n disposeTimeout: {\n type: Number,\n default: void 0\n }\n },\n emits: {\n show: () => !0,\n hide: () => !0,\n \"update:shown\": (e) => !0,\n \"apply-show\": () => !0,\n \"apply-hide\": () => !0,\n \"close-group\": () => !0,\n \"close-directive\": () => !0,\n \"auto-hide\": () => !0,\n resize: () => !0\n },\n computed: {\n finalTheme() {\n return this.theme ?? this.$options.vPopperTheme;\n }\n },\n methods: {\n getTargetNodes() {\n return Array.from(this.$el.children).filter((e) => e !== this.$refs.popperContent.$el);\n }\n }\n});\nfunction wt(e, t, o, i, s, r) {\n const p = P(\"PopperContent\"), a = P(\"Popper\");\n return f(), M(a, $e({ ref: \"popper\" }, e.$props, {\n theme: e.finalTheme,\n \"target-nodes\": e.getTargetNodes,\n \"popper-node\": () => e.$refs.popperContent.$el,\n class: [\n e.themeClass\n ],\n onShow: t[0] || (t[0] = () => e.$emit(\"show\")),\n onHide: t[1] || (t[1] = () => e.$emit(\"hide\")),\n \"onUpdate:shown\": t[2] || (t[2] = (l) => e.$emit(\"update:shown\", l)),\n onApplyShow: t[3] || (t[3] = () => e.$emit(\"apply-show\")),\n onApplyHide: t[4] || (t[4] = () => e.$emit(\"apply-hide\")),\n onCloseGroup: t[5] || (t[5] = () => e.$emit(\"close-group\")),\n onCloseDirective: t[6] || (t[6] = () => e.$emit(\"close-directive\")),\n onAutoHide: t[7] || (t[7] = () => e.$emit(\"auto-hide\")),\n onResize: t[8] || (t[8] = () => e.$emit(\"resize\"))\n }), {\n default: N(({\n popperId: l,\n isShown: u,\n shouldMountContent: L,\n skipTransition: D,\n autoHide: I,\n show: F,\n hide: v,\n handleResize: R,\n onResize: j,\n classes: V,\n result: Ee\n }) => [\n A(e.$slots, \"default\", {\n shown: u,\n show: F,\n hide: v\n }),\n ve(p, {\n ref: \"popperContent\",\n \"popper-id\": l,\n theme: e.finalTheme,\n shown: u,\n mounted: L,\n \"skip-transition\": D,\n \"auto-hide\": I,\n \"handle-resize\": R,\n classes: V,\n result: Ee,\n onHide: v,\n onResize: j\n }, {\n default: N(() => [\n A(e.$slots, \"popper\", {\n shown: u,\n hide: v\n })\n ]),\n _: 2\n }, 1032, [\"popper-id\", \"theme\", \"shown\", \"mounted\", \"skip-transition\", \"auto-hide\", \"handle-resize\", \"classes\", \"result\", \"onHide\", \"onResize\"])\n ]),\n _: 3\n }, 16, [\"theme\", \"target-nodes\", \"popper-node\", \"class\"]);\n}\nconst k = /* @__PURE__ */ B(gt, [[\"render\", wt]]), Se = {\n ...k,\n name: \"VDropdown\",\n vPopperTheme: \"dropdown\"\n}, be = {\n ...k,\n name: \"VMenu\",\n vPopperTheme: \"menu\"\n}, Ce = {\n ...k,\n name: \"VTooltip\",\n vPopperTheme: \"tooltip\"\n}, $t = O({\n name: \"VTooltipDirective\",\n components: {\n Popper: Q(),\n PopperContent: ee\n },\n mixins: [\n te\n ],\n inheritAttrs: !1,\n props: {\n theme: {\n type: String,\n default: \"tooltip\"\n },\n html: {\n type: Boolean,\n default: (e) => S(e.theme, \"html\")\n },\n content: {\n type: [String, Number, Function],\n default: null\n },\n loadingContent: {\n type: String,\n default: (e) => S(e.theme, \"loadingContent\")\n },\n targetNodes: {\n type: Function,\n required: !0\n }\n },\n data() {\n return {\n asyncContent: null\n };\n },\n computed: {\n isContentAsync() {\n return typeof this.content == \"function\";\n },\n loading() {\n return this.isContentAsync && this.asyncContent == null;\n },\n finalContent() {\n return this.isContentAsync ? this.loading ? this.loadingContent : this.asyncContent : this.content;\n }\n },\n watch: {\n content: {\n handler() {\n this.fetchContent(!0);\n },\n immediate: !0\n },\n async finalContent() {\n await this.$nextTick(), this.$refs.popper.onResize();\n }\n },\n created() {\n this.$_fetchId = 0;\n },\n methods: {\n fetchContent(e) {\n if (typeof this.content == \"function\" && this.$_isShown && (e || !this.$_loading && this.asyncContent == null)) {\n this.asyncContent = null, this.$_loading = !0;\n const t = ++this.$_fetchId, o = this.content(this);\n o.then ? o.then((i) => this.onResult(t, i)) : this.onResult(t, o);\n }\n },\n onResult(e, t) {\n e === this.$_fetchId && (this.$_loading = !1, this.asyncContent = t);\n },\n onShow() {\n this.$_isShown = !0, this.fetchContent();\n },\n onHide() {\n this.$_isShown = !1;\n }\n }\n}), vt = [\"innerHTML\"], yt = [\"textContent\"];\nfunction _t(e, t, o, i, s, r) {\n const p = P(\"PopperContent\"), a = P(\"Popper\");\n return f(), M(a, $e({ ref: \"popper\" }, e.$attrs, {\n theme: e.theme,\n \"target-nodes\": e.targetNodes,\n \"popper-node\": () => e.$refs.popperContent.$el,\n onApplyShow: e.onShow,\n onApplyHide: e.onHide\n }), {\n default: N(({\n popperId: l,\n isShown: u,\n shouldMountContent: L,\n skipTransition: D,\n autoHide: I,\n hide: F,\n handleResize: v,\n onResize: R,\n classes: j,\n result: V\n }) => [\n ve(p, {\n ref: \"popperContent\",\n class: J({\n \"v-popper--tooltip-loading\": e.loading\n }),\n \"popper-id\": l,\n theme: e.theme,\n shown: u,\n mounted: L,\n \"skip-transition\": D,\n \"auto-hide\": I,\n \"handle-resize\": v,\n classes: j,\n result: V,\n onHide: F,\n onResize: R\n }, {\n default: N(() => [\n e.html ? (f(), T(\"div\", {\n key: 0,\n innerHTML: e.finalContent\n }, null, 8, vt)) : (f(), T(\"div\", {\n key: 1,\n textContent: We(e.finalContent)\n }, null, 8, yt))\n ]),\n _: 2\n }, 1032, [\"class\", \"popper-id\", \"theme\", \"shown\", \"mounted\", \"skip-transition\", \"auto-hide\", \"handle-resize\", \"classes\", \"result\", \"onHide\", \"onResize\"])\n ]),\n _: 1\n }, 16, [\"theme\", \"target-nodes\", \"popper-node\", \"onApplyShow\", \"onApplyHide\"]);\n}\nconst ze = /* @__PURE__ */ B($t, [[\"render\", _t]]), Ae = \"v-popper--has-tooltip\";\nfunction Tt(e, t) {\n let o = e.placement;\n if (!o && t)\n for (const i of Te)\n t[i] && (o = i);\n return o || (o = S(e.theme || \"tooltip\", \"placement\")), o;\n}\nfunction Ne(e, t, o) {\n let i;\n const s = typeof t;\n return s === \"string\" ? i = { content: t } : t && s === \"object\" ? i = t : i = { content: !1 }, i.placement = Tt(i, o), i.targetNodes = () => [e], i.referenceNode = () => e, i;\n}\nlet x, b, Pt = 0;\nfunction St() {\n if (x)\n return;\n b = U([]), x = Ge({\n name: \"VTooltipDirectiveApp\",\n setup() {\n return {\n directives: b\n };\n },\n render() {\n return this.directives.map((t) => qe(ze, {\n ...t.options,\n shown: t.shown || t.options.shown,\n key: t.id\n }));\n },\n devtools: {\n hide: !0\n }\n });\n const e = document.createElement(\"div\");\n document.body.appendChild(e), x.mount(e);\n}\nfunction bt(e, t, o) {\n St();\n const i = U(Ne(e, t, o)), s = U(!1), r = {\n id: Pt++,\n options: i,\n shown: s\n };\n return b.value.push(r), e.classList && e.classList.add(Ae), e.$_popper = {\n options: i,\n item: r,\n show() {\n s.value = !0;\n },\n hide() {\n s.value = !1;\n }\n };\n}\nfunction He(e) {\n if (e.$_popper) {\n const t = b.value.indexOf(e.$_popper.item);\n t !== -1 && b.value.splice(t, 1), delete e.$_popper, delete e.$_popperOldShown, delete e.$_popperMountTarget;\n }\n e.classList && e.classList.remove(Ae);\n}\nfunction me(e, { value: t, modifiers: o }) {\n const i = Ne(e, t, o);\n if (!i.content || S(i.theme || \"tooltip\", \"disabled\"))\n He(e);\n else {\n let s;\n e.$_popper ? (s = e.$_popper, s.options.value = i) : s = bt(e, t, o), typeof t.shown < \"u\" && t.shown !== e.$_popperOldShown && (e.$_popperOldShown = t.shown, t.shown ? s.show() : s.hide());\n }\n}\nconst oe = {\n beforeMount: me,\n updated: me,\n beforeUnmount(e) {\n He(e);\n }\n};\nfunction ge(e) {\n e.addEventListener(\"mousedown\", H), e.addEventListener(\"click\", H), e.addEventListener(\"touchstart\", Oe, $ ? {\n passive: !0\n } : !1);\n}\nfunction we(e) {\n e.removeEventListener(\"mousedown\", H), e.removeEventListener(\"click\", H), e.removeEventListener(\"touchstart\", Oe), e.removeEventListener(\"touchend\", Me), e.removeEventListener(\"touchcancel\", Be);\n}\nfunction H(e) {\n const t = e.currentTarget;\n e.closePopover = !t.$_vclosepopover_touch, e.closeAllPopover = t.$_closePopoverModifiers && !!t.$_closePopoverModifiers.all;\n}\nfunction Oe(e) {\n if (e.changedTouches.length === 1) {\n const t = e.currentTarget;\n t.$_vclosepopover_touch = !0;\n const o = e.changedTouches[0];\n t.$_vclosepopover_touchPoint = o, t.addEventListener(\"touchend\", Me), t.addEventListener(\"touchcancel\", Be);\n }\n}\nfunction Me(e) {\n const t = e.currentTarget;\n if (t.$_vclosepopover_touch = !1, e.changedTouches.length === 1) {\n const o = e.changedTouches[0], i = t.$_vclosepopover_touchPoint;\n e.closePopover = Math.abs(o.screenY - i.screenY) < 20 && Math.abs(o.screenX - i.screenX) < 20, e.closeAllPopover = t.$_closePopoverModifiers && !!t.$_closePopoverModifiers.all;\n }\n}\nfunction Be(e) {\n const t = e.currentTarget;\n t.$_vclosepopover_touch = !1;\n}\nconst ie = {\n beforeMount(e, { value: t, modifiers: o }) {\n e.$_closePopoverModifiers = o, (typeof t > \"u\" || t) && ge(e);\n },\n updated(e, { value: t, oldValue: o, modifiers: i }) {\n e.$_closePopoverModifiers = i, t !== o && (typeof t > \"u\" || t ? ge(e) : we(e));\n },\n beforeUnmount(e) {\n we(e);\n }\n}, Ht = h, Ot = oe, Mt = oe, Bt = ie, Et = ie, kt = Se, Lt = be, Dt = Q, It = ee, Ft = te, Rt = k, jt = Z, Vt = Ce, Wt = ze;\nfunction Ct(e, t = {}) {\n e.$_vTooltipInstalled || (e.$_vTooltipInstalled = !0, ye(h, t), e.directive(\"tooltip\", oe), e.directive(\"close-popper\", ie), e.component(\"VTooltip\", Ce), e.component(\"VDropdown\", Se), e.component(\"VMenu\", be));\n}\nconst Gt = {\n // eslint-disable-next-line no-undef\n version: \"5.2.2\",\n install: Ct,\n options: h\n};\nexport {\n kt as Dropdown,\n ae as HIDE_EVENT_MAP,\n Lt as Menu,\n Dt as Popper,\n It as PopperContent,\n Ft as PopperMethods,\n Rt as PopperWrapper,\n pe as SHOW_EVENT_MAP,\n jt as ThemeClass,\n Vt as Tooltip,\n Wt as TooltipDirective,\n Bt as VClosePopper,\n Ot as VTooltip,\n bt as createTooltip,\n Gt as default,\n He as destroyTooltip,\n Nt as hideAllPoppers,\n Ct as install,\n Ht as options,\n Te as placements,\n tt as recomputeAllPoppers,\n Et as vClosePopper,\n Mt as vTooltip\n};\n","/*!\n* tabbable 6.3.0\n* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE\n*/\n// NOTE: separate `:not()` selectors has broader browser support than the newer\n// `:not([inert], [inert] *)` (Feb 2023)\n// CAREFUL: JSDom does not support `:not([inert] *)` as a selector; using it causes\n// the entire query to fail, resulting in no nodes found, which will break a lot\n// of things... so we have to rely on JS to identify nodes inside an inert container\nvar candidateSelectors = ['input:not([inert])', 'select:not([inert])', 'textarea:not([inert])', 'a[href]:not([inert])', 'button:not([inert])', '[tabindex]:not(slot):not([inert])', 'audio[controls]:not([inert])', 'video[controls]:not([inert])', '[contenteditable]:not([contenteditable=\"false\"]):not([inert])', 'details>summary:first-of-type:not([inert])', 'details:not([inert])'];\nvar candidateSelector = /* #__PURE__ */candidateSelectors.join(',');\nvar NoElement = typeof Element === 'undefined';\nvar matches = NoElement ? function () {} : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\nvar getRootNode = !NoElement && Element.prototype.getRootNode ? function (element) {\n var _element$getRootNode;\n return element === null || element === void 0 ? void 0 : (_element$getRootNode = element.getRootNode) === null || _element$getRootNode === void 0 ? void 0 : _element$getRootNode.call(element);\n} : function (element) {\n return element === null || element === void 0 ? void 0 : element.ownerDocument;\n};\n\n/**\n * Determines if a node is inert or in an inert ancestor.\n * @param {Element} [node]\n * @param {boolean} [lookUp] If true and `node` is not inert, looks up at ancestors to\n * see if any of them are inert. If false, only `node` itself is considered.\n * @returns {boolean} True if inert itself or by way of being in an inert ancestor.\n * False if `node` is falsy.\n */\nvar _isInert = function isInert(node, lookUp) {\n var _node$getAttribute;\n if (lookUp === void 0) {\n lookUp = true;\n }\n // CAREFUL: JSDom does not support inert at all, so we can't use the `HTMLElement.inert`\n // JS API property; we have to check the attribute, which can either be empty or 'true';\n // if it's `null` (not specified) or 'false', it's an active element\n var inertAtt = node === null || node === void 0 ? void 0 : (_node$getAttribute = node.getAttribute) === null || _node$getAttribute === void 0 ? void 0 : _node$getAttribute.call(node, 'inert');\n var inert = inertAtt === '' || inertAtt === 'true';\n\n // NOTE: this could also be handled with `node.matches('[inert], :is([inert] *)')`\n // if it weren't for `matches()` not being a function on shadow roots; the following\n // code works for any kind of node\n // CAREFUL: JSDom does not appear to support certain selectors like `:not([inert] *)`\n // so it likely would not support `:is([inert] *)` either...\n var result = inert || lookUp && node && _isInert(node.parentNode); // recursive\n\n return result;\n};\n\n/**\n * Determines if a node's content is editable.\n * @param {Element} [node]\n * @returns True if it's content-editable; false if it's not or `node` is falsy.\n */\nvar isContentEditable = function isContentEditable(node) {\n var _node$getAttribute2;\n // CAREFUL: JSDom does not support the `HTMLElement.isContentEditable` API so we have\n // to use the attribute directly to check for this, which can either be empty or 'true';\n // if it's `null` (not specified) or 'false', it's a non-editable element\n var attValue = node === null || node === void 0 ? void 0 : (_node$getAttribute2 = node.getAttribute) === null || _node$getAttribute2 === void 0 ? void 0 : _node$getAttribute2.call(node, 'contenteditable');\n return attValue === '' || attValue === 'true';\n};\n\n/**\n * @param {Element} el container to check in\n * @param {boolean} includeContainer add container to check\n * @param {(node: Element) => boolean} filter filter candidates\n * @returns {Element[]}\n */\nvar getCandidates = function getCandidates(el, includeContainer, filter) {\n // even if `includeContainer=false`, we still have to check it for inertness because\n // if it's inert, all its children are inert\n if (_isInert(el)) {\n return [];\n }\n var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector));\n if (includeContainer && matches.call(el, candidateSelector)) {\n candidates.unshift(el);\n }\n candidates = candidates.filter(filter);\n return candidates;\n};\n\n/**\n * @callback GetShadowRoot\n * @param {Element} element to check for shadow root\n * @returns {ShadowRoot|boolean} ShadowRoot if available or boolean indicating if a shadowRoot is attached but not available.\n */\n\n/**\n * @callback ShadowRootFilter\n * @param {Element} shadowHostNode the element which contains shadow content\n * @returns {boolean} true if a shadow root could potentially contain valid candidates.\n */\n\n/**\n * @typedef {Object} CandidateScope\n * @property {Element} scopeParent contains inner candidates\n * @property {Element[]} candidates list of candidates found in the scope parent\n */\n\n/**\n * @typedef {Object} IterativeOptions\n * @property {GetShadowRoot|boolean} getShadowRoot true if shadow support is enabled; falsy if not;\n * if a function, implies shadow support is enabled and either returns the shadow root of an element\n * or a boolean stating if it has an undisclosed shadow root\n * @property {(node: Element) => boolean} filter filter candidates\n * @property {boolean} flatten if true then result will flatten any CandidateScope into the returned list\n * @property {ShadowRootFilter} shadowRootFilter filter shadow roots;\n */\n\n/**\n * @param {Element[]} elements list of element containers to match candidates from\n * @param {boolean} includeContainer add container list to check\n * @param {IterativeOptions} options\n * @returns {Array.<Element|CandidateScope>}\n */\nvar _getCandidatesIteratively = function getCandidatesIteratively(elements, includeContainer, options) {\n var candidates = [];\n var elementsToCheck = Array.from(elements);\n while (elementsToCheck.length) {\n var element = elementsToCheck.shift();\n if (_isInert(element, false)) {\n // no need to look up since we're drilling down\n // anything inside this container will also be inert\n continue;\n }\n if (element.tagName === 'SLOT') {\n // add shadow dom slot scope (slot itself cannot be focusable)\n var assigned = element.assignedElements();\n var content = assigned.length ? assigned : element.children;\n var nestedCandidates = _getCandidatesIteratively(content, true, options);\n if (options.flatten) {\n candidates.push.apply(candidates, nestedCandidates);\n } else {\n candidates.push({\n scopeParent: element,\n candidates: nestedCandidates\n });\n }\n } else {\n // check candidate element\n var validCandidate = matches.call(element, candidateSelector);\n if (validCandidate && options.filter(element) && (includeContainer || !elements.includes(element))) {\n candidates.push(element);\n }\n\n // iterate over shadow content if possible\n var shadowRoot = element.shadowRoot ||\n // check for an undisclosed shadow\n typeof options.getShadowRoot === 'function' && options.getShadowRoot(element);\n\n // no inert look up because we're already drilling down and checking for inertness\n // on the way down, so all containers to this root node should have already been\n // vetted as non-inert\n var validShadowRoot = !_isInert(shadowRoot, false) && (!options.shadowRootFilter || options.shadowRootFilter(element));\n if (shadowRoot && validShadowRoot) {\n // add shadow dom scope IIF a shadow root node was given; otherwise, an undisclosed\n // shadow exists, so look at light dom children as fallback BUT create a scope for any\n // child candidates found because they're likely slotted elements (elements that are\n // children of the web component element (which has the shadow), in the light dom, but\n // slotted somewhere _inside_ the undisclosed shadow) -- the scope is created below,\n // _after_ we return from this recursive call\n var _nestedCandidates = _getCandidatesIteratively(shadowRoot === true ? element.children : shadowRoot.children, true, options);\n if (options.flatten) {\n candidates.push.apply(candidates, _nestedCandidates);\n } else {\n candidates.push({\n scopeParent: element,\n candidates: _nestedCandidates\n });\n }\n } else {\n // there's not shadow so just dig into the element's (light dom) children\n // __without__ giving the element special scope treatment\n elementsToCheck.unshift.apply(elementsToCheck, element.children);\n }\n }\n }\n return candidates;\n};\n\n/**\n * @private\n * Determines if the node has an explicitly specified `tabindex` attribute.\n * @param {HTMLElement} node\n * @returns {boolean} True if so; false if not.\n */\nvar hasTabIndex = function hasTabIndex(node) {\n return !isNaN(parseInt(node.getAttribute('tabindex'), 10));\n};\n\n/**\n * Determine the tab index of a given node.\n * @param {HTMLElement} node\n * @returns {number} Tab order (negative, 0, or positive number).\n * @throws {Error} If `node` is falsy.\n */\nvar getTabIndex = function getTabIndex(node) {\n if (!node) {\n throw new Error('No node provided');\n }\n if (node.tabIndex < 0) {\n // in Chrome, <details/>, <audio controls/> and <video controls/> elements get a default\n // `tabIndex` of -1 when the 'tabindex' attribute isn't specified in the DOM,\n // yet they are still part of the regular tab order; in FF, they get a default\n // `tabIndex` of 0; since Chrome still puts those elements in the regular tab\n // order, consider their tab index to be 0.\n // Also browsers do not return `tabIndex` correctly for contentEditable nodes;\n // so if they don't have a tabindex attribute specifically set, assume it's 0.\n if ((/^(AUDIO|VIDEO|DETAILS)$/.test(node.tagName) || isContentEditable(node)) && !hasTabIndex(node)) {\n return 0;\n }\n }\n return node.tabIndex;\n};\n\n/**\n * Determine the tab index of a given node __for sort order purposes__.\n * @param {HTMLElement} node\n * @param {boolean} [isScope] True for a custom element with shadow root or slot that, by default,\n * has tabIndex -1, but needs to be sorted by document order in order for its content to be\n * inserted into the correct sort position.\n * @returns {number} Tab order (negative, 0, or positive number).\n */\nvar getSortOrderTabIndex = function getSortOrderTabIndex(node, isScope) {\n var tabIndex = getTabIndex(node);\n if (tabIndex < 0 && isScope && !hasTabIndex(node)) {\n return 0;\n }\n return tabIndex;\n};\nvar sortOrderedTabbables = function sortOrderedTabbables(a, b) {\n return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex;\n};\nvar isInput = function isInput(node) {\n return node.tagName === 'INPUT';\n};\nvar isHiddenInput = function isHiddenInput(node) {\n return isInput(node) && node.type === 'hidden';\n};\nvar isDetailsWithSummary = function isDetailsWithSummary(node) {\n var r = node.tagName === 'DETAILS' && Array.prototype.slice.apply(node.children).some(function (child) {\n return child.tagName === 'SUMMARY';\n });\n return r;\n};\nvar getCheckedRadio = function getCheckedRadio(nodes, form) {\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[i].checked && nodes[i].form === form) {\n return nodes[i];\n }\n }\n};\nvar isTabbableRadio = function isTabbableRadio(node) {\n if (!node.name) {\n return true;\n }\n var radioScope = node.form || getRootNode(node);\n var queryRadios = function queryRadios(name) {\n return radioScope.querySelectorAll('input[type=\"radio\"][name=\"' + name + '\"]');\n };\n var radioSet;\n if (typeof window !== 'undefined' && typeof window.CSS !== 'undefined' && typeof window.CSS.escape === 'function') {\n radioSet = queryRadios(window.CSS.escape(node.name));\n } else {\n try {\n radioSet = queryRadios(node.name);\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error('Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s', err.message);\n return false;\n }\n }\n var checked = getCheckedRadio(radioSet, node.form);\n return !checked || checked === node;\n};\nvar isRadio = function isRadio(node) {\n return isInput(node) && node.type === 'radio';\n};\nvar isNonTabbableRadio = function isNonTabbableRadio(node) {\n return isRadio(node) && !isTabbableRadio(node);\n};\n\n// determines if a node is ultimately attached to the window's document\nvar isNodeAttached = function isNodeAttached(node) {\n var _nodeRoot;\n // The root node is the shadow root if the node is in a shadow DOM; some document otherwise\n // (but NOT _the_ document; see second 'If' comment below for more).\n // If rootNode is shadow root, it'll have a host, which is the element to which the shadow\n // is attached, and the one we need to check if it's in the document or not (because the\n // shadow, and all nodes it contains, is never considered in the document since shadows\n // behave like self-contained DOMs; but if the shadow's HOST, which is part of the document,\n // is hidden, or is not in the document itself but is detached, it will affect the shadow's\n // visibility, including all the nodes it contains). The host could be any normal node,\n // or a custom element (i.e. web component). Either way, that's the one that is considered\n // part of the document, not the shadow root, nor any of its children (i.e. the node being\n // tested).\n // To further complicate things, we have to look all the way up until we find a shadow HOST\n // that is attached (or find none) because the node might be in nested shadows...\n // If rootNode is not a shadow root, it won't have a host, and so rootNode should be the\n // document (per the docs) and while it's a Document-type object, that document does not\n // appear to be the same as the node's `ownerDocument` for some reason, so it's safer\n // to ignore the rootNode at this point, and use `node.ownerDocument`. Otherwise,\n // using `rootNode.contains(node)` will _always_ be true we'll get false-positives when\n // node is actually detached.\n // NOTE: If `nodeRootHost` or `node` happens to be the `document` itself (which is possible\n // if a tabbable/focusable node was quickly added to the DOM, focused, and then removed\n // from the DOM as in https://github.com/focus-trap/focus-trap-react/issues/905), then\n // `ownerDocument` will be `null`, hence the optional chaining on it.\n var nodeRoot = node && getRootNode(node);\n var nodeRootHost = (_nodeRoot = nodeRoot) === null || _nodeRoot === void 0 ? void 0 : _nodeRoot.host;\n\n // in some cases, a detached node will return itself as the root instead of a document or\n // shadow root object, in which case, we shouldn't try to look further up the host chain\n var attached = false;\n if (nodeRoot && nodeRoot !== node) {\n var _nodeRootHost, _nodeRootHost$ownerDo, _node$ownerDocument;\n attached = !!((_nodeRootHost = nodeRootHost) !== null && _nodeRootHost !== void 0 && (_nodeRootHost$ownerDo = _nodeRootHost.ownerDocument) !== null && _nodeRootHost$ownerDo !== void 0 && _nodeRootHost$ownerDo.contains(nodeRootHost) || node !== null && node !== void 0 && (_node$ownerDocument = node.ownerDocument) !== null && _node$ownerDocument !== void 0 && _node$ownerDocument.contains(node));\n while (!attached && nodeRootHost) {\n var _nodeRoot2, _nodeRootHost2, _nodeRootHost2$ownerD;\n // since it's not attached and we have a root host, the node MUST be in a nested shadow DOM,\n // which means we need to get the host's host and check if that parent host is contained\n // in (i.e. attached to) the document\n nodeRoot = getRootNode(nodeRootHost);\n nodeRootHost = (_nodeRoot2 = nodeRoot) === null || _nodeRoot2 === void 0 ? void 0 : _nodeRoot2.host;\n attached = !!((_nodeRootHost2 = nodeRootHost) !== null && _nodeRootHost2 !== void 0 && (_nodeRootHost2$ownerD = _nodeRootHost2.ownerDocument) !== null && _nodeRootHost2$ownerD !== void 0 && _nodeRootHost2$ownerD.contains(nodeRootHost));\n }\n }\n return attached;\n};\nvar isZeroArea = function isZeroArea(node) {\n var _node$getBoundingClie = node.getBoundingClientRect(),\n width = _node$getBoundingClie.width,\n height = _node$getBoundingClie.height;\n return width === 0 && height === 0;\n};\nvar isHidden = function isHidden(node, _ref) {\n var displayCheck = _ref.displayCheck,\n getShadowRoot = _ref.getShadowRoot;\n if (displayCheck === 'full-native') {\n if ('checkVisibility' in node) {\n // Chrome >= 105, Edge >= 105, Firefox >= 106, Safari >= 17.4\n // @see https://developer.mozilla.org/en-US/docs/Web/API/Element/checkVisibility#browser_compatibility\n var visible = node.checkVisibility({\n // Checking opacity might be desirable for some use cases, but natively,\n // opacity zero elements _are_ focusable and tabbable.\n checkOpacity: false,\n opacityProperty: false,\n contentVisibilityAuto: true,\n visibilityProperty: true,\n // This is an alias for `visibilityProperty`. Contemporary browsers\n // support both. However, this alias has wider browser support (Chrome\n // >= 105 and Firefox >= 106, vs. Chrome >= 121 and Firefox >= 122), so\n // we include it anyway.\n checkVisibilityCSS: true\n });\n return !visible;\n }\n // Fall through to manual visibility checks\n }\n\n // NOTE: visibility will be `undefined` if node is detached from the document\n // (see notes about this further down), which means we will consider it visible\n // (this is legacy behavior from a very long way back)\n // NOTE: we check this regardless of `displayCheck=\"none\"` because this is a\n // _visibility_ check, not a _display_ check\n if (getComputedStyle(node).visibility === 'hidden') {\n return true;\n }\n var isDirectSummary = matches.call(node, 'details>summary:first-of-type');\n var nodeUnderDetails = isDirectSummary ? node.parentElement : node;\n if (matches.call(nodeUnderDetails, 'details:not([open]) *')) {\n return true;\n }\n if (!displayCheck || displayCheck === 'full' ||\n // full-native can run this branch when it falls through in case\n // Element#checkVisibility is unsupported\n displayCheck === 'full-native' || displayCheck === 'legacy-full') {\n if (typeof getShadowRoot === 'function') {\n // figure out if we should consider the node to be in an undisclosed shadow and use the\n // 'non-zero-area' fallback\n var originalNode = node;\n while (node) {\n var parentElement = node.parentElement;\n var rootNode = getRootNode(node);\n if (parentElement && !parentElement.shadowRoot && getShadowRoot(parentElement) === true // check if there's an undisclosed shadow\n ) {\n // node has an undisclosed shadow which means we can only treat it as a black box, so we\n // fall back to a non-zero-area test\n return isZeroArea(node);\n } else if (node.assignedSlot) {\n // iterate up slot\n node = node.assignedSlot;\n } else if (!parentElement && rootNode !== node.ownerDocument) {\n // cross shadow boundary\n node = rootNode.host;\n } else {\n // iterate up normal dom\n node = parentElement;\n }\n }\n node = originalNode;\n }\n // else, `getShadowRoot` might be true, but all that does is enable shadow DOM support\n // (i.e. it does not also presume that all nodes might have undisclosed shadows); or\n // it might be a falsy value, which means shadow DOM support is disabled\n\n // Since we didn't find it sitting in an undisclosed shadow (or shadows are disabled)\n // now we can just test to see if it would normally be visible or not, provided it's\n // attached to the main document.\n // NOTE: We must consider case where node is inside a shadow DOM and given directly to\n // `isTabbable()` or `isFocusable()` -- regardless of `getShadowRoot` option setting.\n\n if (isNodeAttached(node)) {\n // this works wherever the node is: if there's at least one client rect, it's\n // somehow displayed; it also covers the CSS 'display: contents' case where the\n // node itself is hidden in place of its contents; and there's no need to search\n // up the hierarchy either\n return !node.getClientRects().length;\n }\n\n // Else, the node isn't attached to the document, which means the `getClientRects()`\n // API will __always__ return zero rects (this can happen, for example, if React\n // is used to render nodes onto a detached tree, as confirmed in this thread:\n // https://github.com/facebook/react/issues/9117#issuecomment-284228870)\n //\n // It also means that even window.getComputedStyle(node).display will return `undefined`\n // because styles are only computed for nodes that are in the document.\n //\n // NOTE: THIS HAS BEEN THE CASE FOR YEARS. It is not new, nor is it caused by tabbable\n // somehow. Though it was never stated officially, anyone who has ever used tabbable\n // APIs on nodes in detached containers has actually implicitly used tabbable in what\n // was later (as of v5.2.0 on Apr 9, 2021) called `displayCheck=\"none\"` mode -- essentially\n // considering __everything__ to be visible because of the innability to determine styles.\n //\n // v6.0.0: As of this major release, the default 'full' option __no longer treats detached\n // nodes as visible with the 'none' fallback.__\n if (displayCheck !== 'legacy-full') {\n return true; // hidden\n }\n // else, fallback to 'none' mode and consider the node visible\n } else if (displayCheck === 'non-zero-area') {\n // NOTE: Even though this tests that the node's client rect is non-zero to determine\n // whether it's displayed, and that a detached node will __always__ have a zero-area\n // client rect, we don't special-case for whether the node is attached or not. In\n // this mode, we do want to consider nodes that have a zero area to be hidden at all\n // times, and that includes attached or not.\n return isZeroArea(node);\n }\n\n // visible, as far as we can tell, or per current `displayCheck=none` mode, we assume\n // it's visible\n return false;\n};\n\n// form fields (nested) inside a disabled fieldset are not focusable/tabbable\n// unless they are in the _first_ <legend> element of the top-most disabled\n// fieldset\nvar isDisabledFromFieldset = function isDisabledFromFieldset(node) {\n if (/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(node.tagName)) {\n var parentNode = node.parentElement;\n // check if `node` is contained in a disabled <fieldset>\n while (parentNode) {\n if (parentNode.tagName === 'FIELDSET' && parentNode.disabled) {\n // look for the first <legend> among the children of the disabled <fieldset>\n for (var i = 0; i < parentNode.children.length; i++) {\n var child = parentNode.children.item(i);\n // when the first <legend> (in document order) is found\n if (child.tagName === 'LEGEND') {\n // if its parent <fieldset> is not nested in another disabled <fieldset>,\n // return whether `node` is a descendant of its first <legend>\n return matches.call(parentNode, 'fieldset[disabled] *') ? true : !child.contains(node);\n }\n }\n // the disabled <fieldset> containing `node` has no <legend>\n return true;\n }\n parentNode = parentNode.parentElement;\n }\n }\n\n // else, node's tabbable/focusable state should not be affected by a fieldset's\n // enabled/disabled state\n return false;\n};\nvar isNodeMatchingSelectorFocusable = function isNodeMatchingSelectorFocusable(options, node) {\n if (node.disabled ||\n // we must do an inert look up to filter out any elements inside an inert ancestor\n // because we're limited in the type of selectors we can use in JSDom (see related\n // note related to `candidateSelectors`)\n _isInert(node) || isHiddenInput(node) || isHidden(node, options) ||\n // For a details element with a summary, the summary element gets the focus\n isDetailsWithSummary(node) || isDisabledFromFieldset(node)) {\n return false;\n }\n return true;\n};\nvar isNodeMatchingSelectorTabbable = function isNodeMatchingSelectorTabbable(options, node) {\n if (isNonTabbableRadio(node) || getTabIndex(node) < 0 || !isNodeMatchingSelectorFocusable(options, node)) {\n return false;\n }\n return true;\n};\nvar isShadowRootTabbable = function isShadowRootTabbable(shadowHostNode) {\n var tabIndex = parseInt(shadowHostNode.getAttribute('tabindex'), 10);\n if (isNaN(tabIndex) || tabIndex >= 0) {\n return true;\n }\n // If a custom element has an explicit negative tabindex,\n // browsers will not allow tab targeting said element's children.\n return false;\n};\n\n/**\n * @param {Array.<Element|CandidateScope>} candidates\n * @returns Element[]\n */\nvar _sortByOrder = function sortByOrder(candidates) {\n var regularTabbables = [];\n var orderedTabbables = [];\n candidates.forEach(function (item, i) {\n var isScope = !!item.scopeParent;\n var element = isScope ? item.scopeParent : item;\n var candidateTabindex = getSortOrderTabIndex(element, isScope);\n var elements = isScope ? _sortByOrder(item.candidates) : element;\n if (candidateTabindex === 0) {\n isScope ? regularTabbables.push.apply(regularTabbables, elements) : regularTabbables.push(element);\n } else {\n orderedTabbables.push({\n documentOrder: i,\n tabIndex: candidateTabindex,\n item: item,\n isScope: isScope,\n content: elements\n });\n }\n });\n return orderedTabbables.sort(sortOrderedTabbables).reduce(function (acc, sortable) {\n sortable.isScope ? acc.push.apply(acc, sortable.content) : acc.push(sortable.content);\n return acc;\n }, []).concat(regularTabbables);\n};\nvar tabbable = function tabbable(container, options) {\n options = options || {};\n var candidates;\n if (options.getShadowRoot) {\n candidates = _getCandidatesIteratively([container], options.includeContainer, {\n filter: isNodeMatchingSelectorTabbable.bind(null, options),\n flatten: false,\n getShadowRoot: options.getShadowRoot,\n shadowRootFilter: isShadowRootTabbable\n });\n } else {\n candidates = getCandidates(container, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options));\n }\n return _sortByOrder(candidates);\n};\nvar focusable = function focusable(container, options) {\n options = options || {};\n var candidates;\n if (options.getShadowRoot) {\n candidates = _getCandidatesIteratively([container], options.includeContainer, {\n filter: isNodeMatchingSelectorFocusable.bind(null, options),\n flatten: true,\n getShadowRoot: options.getShadowRoot\n });\n } else {\n candidates = getCandidates(container, options.includeContainer, isNodeMatchingSelectorFocusable.bind(null, options));\n }\n return candidates;\n};\nvar isTabbable = function isTabbable(node, options) {\n options = options || {};\n if (!node) {\n throw new Error('No node provided');\n }\n if (matches.call(node, candidateSelector) === false) {\n return false;\n }\n return isNodeMatchingSelectorTabbable(options, node);\n};\nvar focusableCandidateSelector = /* #__PURE__ */candidateSelectors.concat('iframe').join(',');\nvar isFocusable = function isFocusable(node, options) {\n options = options || {};\n if (!node) {\n throw new Error('No node provided');\n }\n if (matches.call(node, focusableCandidateSelector) === false) {\n return false;\n }\n return isNodeMatchingSelectorFocusable(options, node);\n};\n\nexport { focusable, getTabIndex, isFocusable, isTabbable, tabbable };\n//# sourceMappingURL=index.esm.js.map\n","/*!\n* focus-trap 7.6.6\n* @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE\n*/\nimport { tabbable, focusable, isTabbable, getTabIndex, isFocusable } from 'tabbable';\n\nfunction _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return _arrayLikeToArray(r);\n}\nfunction _defineProperty(e, r, t) {\n return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: true,\n configurable: true,\n writable: true\n }) : e[r] = t, e;\n}\nfunction _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), true).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nfunction _toConsumableArray(r) {\n return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();\n}\nfunction _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r);\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nfunction _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n}\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n }\n}\n\nvar activeFocusTraps = {\n activateTrap: function activateTrap(trapStack, trap) {\n if (trapStack.length > 0) {\n var activeTrap = trapStack[trapStack.length - 1];\n if (activeTrap !== trap) {\n activeTrap._setPausedState(true);\n }\n }\n var trapIndex = trapStack.indexOf(trap);\n if (trapIndex === -1) {\n trapStack.push(trap);\n } else {\n // move this existing trap to the front of the queue\n trapStack.splice(trapIndex, 1);\n trapStack.push(trap);\n }\n },\n deactivateTrap: function deactivateTrap(trapStack, trap) {\n var trapIndex = trapStack.indexOf(trap);\n if (trapIndex !== -1) {\n trapStack.splice(trapIndex, 1);\n }\n if (trapStack.length > 0 && !trapStack[trapStack.length - 1]._isManuallyPaused()) {\n trapStack[trapStack.length - 1]._setPausedState(false);\n }\n }\n};\nvar isSelectableInput = function isSelectableInput(node) {\n return node.tagName && node.tagName.toLowerCase() === 'input' && typeof node.select === 'function';\n};\nvar isEscapeEvent = function isEscapeEvent(e) {\n return (e === null || e === void 0 ? void 0 : e.key) === 'Escape' || (e === null || e === void 0 ? void 0 : e.key) === 'Esc' || (e === null || e === void 0 ? void 0 : e.keyCode) === 27;\n};\nvar isTabEvent = function isTabEvent(e) {\n return (e === null || e === void 0 ? void 0 : e.key) === 'Tab' || (e === null || e === void 0 ? void 0 : e.keyCode) === 9;\n};\n\n// checks for TAB by default\nvar isKeyForward = function isKeyForward(e) {\n return isTabEvent(e) && !e.shiftKey;\n};\n\n// checks for SHIFT+TAB by default\nvar isKeyBackward = function isKeyBackward(e) {\n return isTabEvent(e) && e.shiftKey;\n};\nvar delay = function delay(fn) {\n return setTimeout(fn, 0);\n};\n\n/**\n * Get an option's value when it could be a plain value, or a handler that provides\n * the value.\n * @param {*} value Option's value to check.\n * @param {...*} [params] Any parameters to pass to the handler, if `value` is a function.\n * @returns {*} The `value`, or the handler's returned value.\n */\nvar valueOrHandler = function valueOrHandler(value) {\n for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n params[_key - 1] = arguments[_key];\n }\n return typeof value === 'function' ? value.apply(void 0, params) : value;\n};\nvar getActualTarget = function getActualTarget(event) {\n // NOTE: If the trap is _inside_ a shadow DOM, event.target will always be the\n // shadow host. However, event.target.composedPath() will be an array of\n // nodes \"clicked\" from inner-most (the actual element inside the shadow) to\n // outer-most (the host HTML document). If we have access to composedPath(),\n // then use its first element; otherwise, fall back to event.target (and\n // this only works for an _open_ shadow DOM; otherwise,\n // composedPath()[0] === event.target always).\n return event.target.shadowRoot && typeof event.composedPath === 'function' ? event.composedPath()[0] : event.target;\n};\n\n// NOTE: this must be _outside_ `createFocusTrap()` to make sure all traps in this\n// current instance use the same stack if `userOptions.trapStack` isn't specified\nvar internalTrapStack = [];\nvar createFocusTrap = function createFocusTrap(elements, userOptions) {\n // SSR: a live trap shouldn't be created in this type of environment so this\n // should be safe code to execute if the `document` option isn't specified\n var doc = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.document) || document;\n var trapStack = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.trapStack) || internalTrapStack;\n var config = _objectSpread2({\n returnFocusOnDeactivate: true,\n escapeDeactivates: true,\n delayInitialFocus: true,\n isKeyForward: isKeyForward,\n isKeyBackward: isKeyBackward\n }, userOptions);\n var state = {\n // containers given to createFocusTrap()\n // @type {Array<HTMLElement>}\n containers: [],\n // list of objects identifying tabbable nodes in `containers` in the trap\n // NOTE: it's possible that a group has no tabbable nodes if nodes get removed while the trap\n // is active, but the trap should never get to a state where there isn't at least one group\n // with at least one tabbable node in it (that would lead to an error condition that would\n // result in an error being thrown)\n // @type {Array<{\n // container: HTMLElement,\n // tabbableNodes: Array<HTMLElement>, // empty if none\n // focusableNodes: Array<HTMLElement>, // empty if none\n // posTabIndexesFound: boolean,\n // firstTabbableNode: HTMLElement|undefined,\n // lastTabbableNode: HTMLElement|undefined,\n // firstDomTabbableNode: HTMLElement|undefined,\n // lastDomTabbableNode: HTMLElement|undefined,\n // nextTabbableNode: (node: HTMLElement, forward: boolean) => HTMLElement|undefined\n // }>}\n containerGroups: [],\n // same order/length as `containers` list\n\n // references to objects in `containerGroups`, but only those that actually have\n // tabbable nodes in them\n // NOTE: same order as `containers` and `containerGroups`, but __not necessarily__\n // the same length\n tabbableGroups: [],\n nodeFocusedBeforeActivation: null,\n mostRecentlyFocusedNode: null,\n active: false,\n paused: false,\n manuallyPaused: false,\n // timer ID for when delayInitialFocus is true and initial focus in this trap\n // has been delayed during activation\n delayInitialFocusTimer: undefined,\n // the most recent KeyboardEvent for the configured nav key (typically [SHIFT+]TAB), if any\n recentNavEvent: undefined\n };\n var trap; // eslint-disable-line prefer-const -- some private functions reference it, and its methods reference private functions, so we must declare here and define later\n\n /**\n * Gets a configuration option value.\n * @param {Object|undefined} configOverrideOptions If true, and option is defined in this set,\n * value will be taken from this object. Otherwise, value will be taken from base configuration.\n * @param {string} optionName Name of the option whose value is sought.\n * @param {string|undefined} [configOptionName] Name of option to use __instead of__ `optionName`\n * IIF `configOverrideOptions` is not defined. Otherwise, `optionName` is used.\n */\n var getOption = function getOption(configOverrideOptions, optionName, configOptionName) {\n return configOverrideOptions && configOverrideOptions[optionName] !== undefined ? configOverrideOptions[optionName] : config[configOptionName || optionName];\n };\n\n /**\n * Finds the index of the container that contains the element.\n * @param {HTMLElement} element\n * @param {Event} [event] If available, and `element` isn't directly found in any container,\n * the event's composed path is used to see if includes any known trap containers in the\n * case where the element is inside a Shadow DOM.\n * @returns {number} Index of the container in either `state.containers` or\n * `state.containerGroups` (the order/length of these lists are the same); -1\n * if the element isn't found.\n */\n var findContainerIndex = function findContainerIndex(element, event) {\n var composedPath = typeof (event === null || event === void 0 ? void 0 : event.composedPath) === 'function' ? event.composedPath() : undefined;\n // NOTE: search `containerGroups` because it's possible a group contains no tabbable\n // nodes, but still contains focusable nodes (e.g. if they all have `tabindex=-1`)\n // and we still need to find the element in there\n return state.containerGroups.findIndex(function (_ref) {\n var container = _ref.container,\n tabbableNodes = _ref.tabbableNodes;\n return container.contains(element) || (// fall back to explicit tabbable search which will take into consideration any\n // web components if the `tabbableOptions.getShadowRoot` option was used for\n // the trap, enabling shadow DOM support in tabbable (`Node.contains()` doesn't\n // look inside web components even if open)\n composedPath === null || composedPath === void 0 ? void 0 : composedPath.includes(container)) || tabbableNodes.find(function (node) {\n return node === element;\n });\n });\n };\n\n /**\n * Gets the node for the given option, which is expected to be an option that\n * can be either a DOM node, a string that is a selector to get a node, `false`\n * (if a node is explicitly NOT given), or a function that returns any of these\n * values.\n * @param {string} optionName\n * @param {Object} options\n * @param {boolean} [options.hasFallback] True if the option could be a selector string\n * and the option allows for a fallback scenario in the case where the selector is\n * valid but does not match a node (i.e. the queried node doesn't exist in the DOM).\n * @param {Array} [options.params] Params to pass to the option if it's a function.\n * @returns {undefined | null | false | HTMLElement | SVGElement} Returns\n * `undefined` if the option is not specified; `null` if the option didn't resolve\n * to a node but `options.hasFallback=true`, `false` if the option resolved to `false`\n * (node explicitly not given); otherwise, the resolved DOM node.\n * @throws {Error} If the option is set, not `false`, and is not, or does not\n * resolve to a node, unless the option is a selector string and `options.hasFallback=true`.\n */\n var getNodeForOption = function getNodeForOption(optionName) {\n var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref2$hasFallback = _ref2.hasFallback,\n hasFallback = _ref2$hasFallback === void 0 ? false : _ref2$hasFallback,\n _ref2$params = _ref2.params,\n params = _ref2$params === void 0 ? [] : _ref2$params;\n var optionValue = config[optionName];\n if (typeof optionValue === 'function') {\n optionValue = optionValue.apply(void 0, _toConsumableArray(params));\n }\n if (optionValue === true) {\n optionValue = undefined; // use default value\n }\n if (!optionValue) {\n if (optionValue === undefined || optionValue === false) {\n return optionValue;\n }\n // else, empty string (invalid), null (invalid), 0 (invalid)\n\n throw new Error(\"`\".concat(optionName, \"` was specified but was not a node, or did not return a node\"));\n }\n var node = optionValue; // could be HTMLElement, SVGElement, or non-empty string at this point\n\n if (typeof optionValue === 'string') {\n try {\n node = doc.querySelector(optionValue); // resolve to node, or null if fails\n } catch (err) {\n throw new Error(\"`\".concat(optionName, \"` appears to be an invalid selector; error=\\\"\").concat(err.message, \"\\\"\"));\n }\n if (!node) {\n if (!hasFallback) {\n throw new Error(\"`\".concat(optionName, \"` as selector refers to no known node\"));\n }\n // else, `node` MUST be `null` because that's what `Document.querySelector()` returns\n // if the selector is valid but doesn't match anything\n }\n }\n return node;\n };\n var getInitialFocusNode = function getInitialFocusNode() {\n var node = getNodeForOption('initialFocus', {\n hasFallback: true\n });\n\n // false explicitly indicates we want no initialFocus at all\n if (node === false) {\n return false;\n }\n if (node === undefined || node && !isFocusable(node, config.tabbableOptions)) {\n // option not specified nor focusable: use fallback options\n if (findContainerIndex(doc.activeElement) >= 0) {\n node = doc.activeElement;\n } else {\n var firstTabbableGroup = state.tabbableGroups[0];\n var firstTabbableNode = firstTabbableGroup && firstTabbableGroup.firstTabbableNode;\n\n // NOTE: `fallbackFocus` option function cannot return `false` (not supported)\n node = firstTabbableNode || getNodeForOption('fallbackFocus');\n }\n } else if (node === null) {\n // option is a VALID selector string that doesn't yield a node: use the `fallbackFocus`\n // option instead of the default behavior when the option isn't specified at all\n node = getNodeForOption('fallbackFocus');\n }\n if (!node) {\n throw new Error('Your focus-trap needs to have at least one focusable element');\n }\n return node;\n };\n var updateTabbableNodes = function updateTabbableNodes() {\n state.containerGroups = state.containers.map(function (container) {\n var tabbableNodes = tabbable(container, config.tabbableOptions);\n\n // NOTE: if we have tabbable nodes, we must have focusable nodes; focusable nodes\n // are a superset of tabbable nodes since nodes with negative `tabindex` attributes\n // are focusable but not tabbable\n var focusableNodes = focusable(container, config.tabbableOptions);\n var firstTabbableNode = tabbableNodes.length > 0 ? tabbableNodes[0] : undefined;\n var lastTabbableNode = tabbableNodes.length > 0 ? tabbableNodes[tabbableNodes.length - 1] : undefined;\n var firstDomTabbableNode = focusableNodes.find(function (node) {\n return isTabbable(node);\n });\n var lastDomTabbableNode = focusableNodes.slice().reverse().find(function (node) {\n return isTabbable(node);\n });\n var posTabIndexesFound = !!tabbableNodes.find(function (node) {\n return getTabIndex(node) > 0;\n });\n return {\n container: container,\n tabbableNodes: tabbableNodes,\n focusableNodes: focusableNodes,\n /** True if at least one node with positive `tabindex` was found in this container. */\n posTabIndexesFound: posTabIndexesFound,\n /** First tabbable node in container, __tabindex__ order; `undefined` if none. */\n firstTabbableNode: firstTabbableNode,\n /** Last tabbable node in container, __tabindex__ order; `undefined` if none. */\n lastTabbableNode: lastTabbableNode,\n // NOTE: DOM order is NOT NECESSARILY \"document position\" order, but figuring that out\n // would require more than just https://developer.mozilla.org/en-US/docs/Web/API/Node/compareDocumentPosition\n // because that API doesn't work with Shadow DOM as well as it should (@see\n // https://github.com/whatwg/dom/issues/320) and since this first/last is only needed, so far,\n // to address an edge case related to positive tabindex support, this seems like a much easier,\n // \"close enough most of the time\" alternative for positive tabindexes which should generally\n // be avoided anyway...\n /** First tabbable node in container, __DOM__ order; `undefined` if none. */\n firstDomTabbableNode: firstDomTabbableNode,\n /** Last tabbable node in container, __DOM__ order; `undefined` if none. */\n lastDomTabbableNode: lastDomTabbableNode,\n /**\n * Finds the __tabbable__ node that follows the given node in the specified direction,\n * in this container, if any.\n * @param {HTMLElement} node\n * @param {boolean} [forward] True if going in forward tab order; false if going\n * in reverse.\n * @returns {HTMLElement|undefined} The next tabbable node, if any.\n */\n nextTabbableNode: function nextTabbableNode(node) {\n var forward = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var nodeIdx = tabbableNodes.indexOf(node);\n if (nodeIdx < 0) {\n // either not tabbable nor focusable, or was focused but not tabbable (negative tabindex):\n // since `node` should at least have been focusable, we assume that's the case and mimic\n // what browsers do, which is set focus to the next node in __document position order__,\n // regardless of positive tabindexes, if any -- and for reasons explained in the NOTE\n // above related to `firstDomTabbable` and `lastDomTabbable` properties, we fall back to\n // basic DOM order\n if (forward) {\n return focusableNodes.slice(focusableNodes.indexOf(node) + 1).find(function (el) {\n return isTabbable(el);\n });\n }\n return focusableNodes.slice(0, focusableNodes.indexOf(node)).reverse().find(function (el) {\n return isTabbable(el);\n });\n }\n return tabbableNodes[nodeIdx + (forward ? 1 : -1)];\n }\n };\n });\n state.tabbableGroups = state.containerGroups.filter(function (group) {\n return group.tabbableNodes.length > 0;\n });\n\n // throw if no groups have tabbable nodes and we don't have a fallback focus node either\n if (state.tabbableGroups.length <= 0 && !getNodeForOption('fallbackFocus') // returning false not supported for this option\n ) {\n throw new Error('Your focus-trap must have at least one container with at least one tabbable node in it at all times');\n }\n\n // NOTE: Positive tabindexes are only properly supported in single-container traps because\n // doing it across multiple containers where tabindexes could be all over the place\n // would require Tabbable to support multiple containers, would require additional\n // specialized Shadow DOM support, and would require Tabbable's multi-container support\n // to look at those containers in document position order rather than user-provided\n // order (as they are treated in Focus-trap, for legacy reasons). See discussion on\n // https://github.com/focus-trap/focus-trap/issues/375 for more details.\n if (state.containerGroups.find(function (g) {\n return g.posTabIndexesFound;\n }) && state.containerGroups.length > 1) {\n throw new Error(\"At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.\");\n }\n };\n\n /**\n * Gets the current activeElement. If it's a web-component and has open shadow-root\n * it will recursively search inside shadow roots for the \"true\" activeElement.\n *\n * @param {Document | ShadowRoot} el\n *\n * @returns {HTMLElement} The element that currently has the focus\n **/\n var _getActiveElement = function getActiveElement(el) {\n var activeElement = el.activeElement;\n if (!activeElement) {\n return;\n }\n if (activeElement.shadowRoot && activeElement.shadowRoot.activeElement !== null) {\n return _getActiveElement(activeElement.shadowRoot);\n }\n return activeElement;\n };\n var _tryFocus = function tryFocus(node) {\n if (node === false) {\n return;\n }\n if (node === _getActiveElement(document)) {\n return;\n }\n if (!node || !node.focus) {\n _tryFocus(getInitialFocusNode());\n return;\n }\n node.focus({\n preventScroll: !!config.preventScroll\n });\n // NOTE: focus() API does not trigger focusIn event so set MRU node manually\n state.mostRecentlyFocusedNode = node;\n if (isSelectableInput(node)) {\n node.select();\n }\n };\n var getReturnFocusNode = function getReturnFocusNode(previousActiveElement) {\n var node = getNodeForOption('setReturnFocus', {\n params: [previousActiveElement]\n });\n return node ? node : node === false ? false : previousActiveElement;\n };\n\n /**\n * Finds the next node (in either direction) where focus should move according to a\n * keyboard focus-in event.\n * @param {Object} params\n * @param {Node} [params.target] Known target __from which__ to navigate, if any.\n * @param {KeyboardEvent|FocusEvent} [params.event] Event to use if `target` isn't known (event\n * will be used to determine the `target`). Ignored if `target` is specified.\n * @param {boolean} [params.isBackward] True if focus should move backward.\n * @returns {Node|undefined} The next node, or `undefined` if a next node couldn't be\n * determined given the current state of the trap.\n */\n var findNextNavNode = function findNextNavNode(_ref3) {\n var target = _ref3.target,\n event = _ref3.event,\n _ref3$isBackward = _ref3.isBackward,\n isBackward = _ref3$isBackward === void 0 ? false : _ref3$isBackward;\n target = target || getActualTarget(event);\n updateTabbableNodes();\n var destinationNode = null;\n if (state.tabbableGroups.length > 0) {\n // make sure the target is actually contained in a group\n // NOTE: the target may also be the container itself if it's focusable\n // with tabIndex='-1' and was given initial focus\n var containerIndex = findContainerIndex(target, event);\n var containerGroup = containerIndex >= 0 ? state.containerGroups[containerIndex] : undefined;\n if (containerIndex < 0) {\n // target not found in any group: quite possible focus has escaped the trap,\n // so bring it back into...\n if (isBackward) {\n // ...the last node in the last group\n destinationNode = state.tabbableGroups[state.tabbableGroups.length - 1].lastTabbableNode;\n } else {\n // ...the first node in the first group\n destinationNode = state.tabbableGroups[0].firstTabbableNode;\n }\n } else if (isBackward) {\n // REVERSE\n\n // is the target the first tabbable node in a group?\n var startOfGroupIndex = state.tabbableGroups.findIndex(function (_ref4) {\n var firstTabbableNode = _ref4.firstTabbableNode;\n return target === firstTabbableNode;\n });\n if (startOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target, false))) {\n // an exception case where the target is either the container itself, or\n // a non-tabbable node that was given focus (i.e. tabindex is negative\n // and user clicked on it or node was programmatically given focus)\n // and is not followed by any other tabbable node, in which\n // case, we should handle shift+tab as if focus were on the container's\n // first tabbable node, and go to the last tabbable node of the LAST group\n startOfGroupIndex = containerIndex;\n }\n if (startOfGroupIndex >= 0) {\n // YES: then shift+tab should go to the last tabbable node in the\n // previous group (and wrap around to the last tabbable node of\n // the LAST group if it's the first tabbable node of the FIRST group)\n var destinationGroupIndex = startOfGroupIndex === 0 ? state.tabbableGroups.length - 1 : startOfGroupIndex - 1;\n var destinationGroup = state.tabbableGroups[destinationGroupIndex];\n destinationNode = getTabIndex(target) >= 0 ? destinationGroup.lastTabbableNode : destinationGroup.lastDomTabbableNode;\n } else if (!isTabEvent(event)) {\n // user must have customized the nav keys so we have to move focus manually _within_\n // the active group: do this based on the order determined by tabbable()\n destinationNode = containerGroup.nextTabbableNode(target, false);\n }\n } else {\n // FORWARD\n\n // is the target the last tabbable node in a group?\n var lastOfGroupIndex = state.tabbableGroups.findIndex(function (_ref5) {\n var lastTabbableNode = _ref5.lastTabbableNode;\n return target === lastTabbableNode;\n });\n if (lastOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target))) {\n // an exception case where the target is the container itself, or\n // a non-tabbable node that was given focus (i.e. tabindex is negative\n // and user clicked on it or node was programmatically given focus)\n // and is not followed by any other tabbable node, in which\n // case, we should handle tab as if focus were on the container's\n // last tabbable node, and go to the first tabbable node of the FIRST group\n lastOfGroupIndex = containerIndex;\n }\n if (lastOfGroupIndex >= 0) {\n // YES: then tab should go to the first tabbable node in the next\n // group (and wrap around to the first tabbable node of the FIRST\n // group if it's the last tabbable node of the LAST group)\n var _destinationGroupIndex = lastOfGroupIndex === state.tabbableGroups.length - 1 ? 0 : lastOfGroupIndex + 1;\n var _destinationGroup = state.tabbableGroups[_destinationGroupIndex];\n destinationNode = getTabIndex(target) >= 0 ? _destinationGroup.firstTabbableNode : _destinationGroup.firstDomTabbableNode;\n } else if (!isTabEvent(event)) {\n // user must have customized the nav keys so we have to move focus manually _within_\n // the active group: do this based on the order determined by tabbable()\n destinationNode = containerGroup.nextTabbableNode(target);\n }\n }\n } else {\n // no groups available\n // NOTE: the fallbackFocus option does not support returning false to opt-out\n destinationNode = getNodeForOption('fallbackFocus');\n }\n return destinationNode;\n };\n\n // This needs to be done on mousedown and touchstart instead of click\n // so that it precedes the focus event.\n var checkPointerDown = function checkPointerDown(e) {\n var target = getActualTarget(e);\n if (findContainerIndex(target, e) >= 0) {\n // allow the click since it ocurred inside the trap\n return;\n }\n if (valueOrHandler(config.clickOutsideDeactivates, e)) {\n // immediately deactivate the trap\n trap.deactivate({\n // NOTE: by setting `returnFocus: false`, deactivate() will do nothing,\n // which will result in the outside click setting focus to the node\n // that was clicked (and if not focusable, to \"nothing\"); by setting\n // `returnFocus: true`, we'll attempt to re-focus the node originally-focused\n // on activation (or the configured `setReturnFocus` node), whether the\n // outside click was on a focusable node or not\n returnFocus: config.returnFocusOnDeactivate\n });\n return;\n }\n\n // This is needed for mobile devices.\n // (If we'll only let `click` events through,\n // then on mobile they will be blocked anyways if `touchstart` is blocked.)\n if (valueOrHandler(config.allowOutsideClick, e)) {\n // allow the click outside the trap to take place\n return;\n }\n\n // otherwise, prevent the click\n e.preventDefault();\n };\n\n // In case focus escapes the trap for some strange reason, pull it back in.\n // NOTE: the focusIn event is NOT cancelable, so if focus escapes, it may cause unexpected\n // scrolling if the node that got focused was out of view; there's nothing we can do to\n // prevent that from happening by the time we discover that focus escaped\n var checkFocusIn = function checkFocusIn(event) {\n var target = getActualTarget(event);\n var targetContained = findContainerIndex(target, event) >= 0;\n\n // In Firefox when you Tab out of an iframe the Document is briefly focused.\n if (targetContained || target instanceof Document) {\n if (targetContained) {\n state.mostRecentlyFocusedNode = target;\n }\n } else {\n // escaped! pull it back in to where it just left\n event.stopImmediatePropagation();\n\n // focus will escape if the MRU node had a positive tab index and user tried to nav forward;\n // it will also escape if the MRU node had a 0 tab index and user tried to nav backward\n // toward a node with a positive tab index\n var nextNode; // next node to focus, if we find one\n var navAcrossContainers = true;\n if (state.mostRecentlyFocusedNode) {\n if (getTabIndex(state.mostRecentlyFocusedNode) > 0) {\n // MRU container index must be >=0 otherwise we wouldn't have it as an MRU node...\n var mruContainerIdx = findContainerIndex(state.mostRecentlyFocusedNode);\n // there MAY not be any tabbable nodes in the container if there are at least 2 containers\n // and the MRU node is focusable but not tabbable (focus-trap requires at least 1 container\n // with at least one tabbable node in order to function, so this could be the other container\n // with nothing tabbable in it)\n var tabbableNodes = state.containerGroups[mruContainerIdx].tabbableNodes;\n if (tabbableNodes.length > 0) {\n // MRU tab index MAY not be found if the MRU node is focusable but not tabbable\n var mruTabIdx = tabbableNodes.findIndex(function (node) {\n return node === state.mostRecentlyFocusedNode;\n });\n if (mruTabIdx >= 0) {\n if (config.isKeyForward(state.recentNavEvent)) {\n if (mruTabIdx + 1 < tabbableNodes.length) {\n nextNode = tabbableNodes[mruTabIdx + 1];\n navAcrossContainers = false;\n }\n // else, don't wrap within the container as focus should move to next/previous\n // container\n } else {\n if (mruTabIdx - 1 >= 0) {\n nextNode = tabbableNodes[mruTabIdx - 1];\n navAcrossContainers = false;\n }\n // else, don't wrap within the container as focus should move to next/previous\n // container\n }\n // else, don't find in container order without considering direction too\n }\n }\n // else, no tabbable nodes in that container (which means we must have at least one other\n // container with at least one tabbable node in it, otherwise focus-trap would've thrown\n // an error the last time updateTabbableNodes() was run): find next node among all known\n // containers\n } else {\n // check to see if there's at least one tabbable node with a positive tab index inside\n // the trap because focus seems to escape when navigating backward from a tabbable node\n // with tabindex=0 when this is the case (instead of wrapping to the tabbable node with\n // the greatest positive tab index like it should)\n if (!state.containerGroups.some(function (g) {\n return g.tabbableNodes.some(function (n) {\n return getTabIndex(n) > 0;\n });\n })) {\n // no containers with tabbable nodes with positive tab indexes which means the focus\n // escaped for some other reason and we should just execute the fallback to the\n // MRU node or initial focus node, if any\n navAcrossContainers = false;\n }\n }\n } else {\n // no MRU node means we're likely in some initial condition when the trap has just\n // been activated and initial focus hasn't been given yet, in which case we should\n // fall through to trying to focus the initial focus node, which is what should\n // happen below at this point in the logic\n navAcrossContainers = false;\n }\n if (navAcrossContainers) {\n nextNode = findNextNavNode({\n // move FROM the MRU node, not event-related node (which will be the node that is\n // outside the trap causing the focus escape we're trying to fix)\n target: state.mostRecentlyFocusedNode,\n isBackward: config.isKeyBackward(state.recentNavEvent)\n });\n }\n if (nextNode) {\n _tryFocus(nextNode);\n } else {\n _tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode());\n }\n }\n state.recentNavEvent = undefined; // clear\n };\n\n // Hijack key nav events on the first and last focusable nodes of the trap,\n // in order to prevent focus from escaping. If it escapes for even a\n // moment it can end up scrolling the page and causing confusion so we\n // kind of need to capture the action at the keydown phase.\n var checkKeyNav = function checkKeyNav(event) {\n var isBackward = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n state.recentNavEvent = event;\n var destinationNode = findNextNavNode({\n event: event,\n isBackward: isBackward\n });\n if (destinationNode) {\n if (isTabEvent(event)) {\n // since tab natively moves focus, we wouldn't have a destination node unless we\n // were on the edge of a container and had to move to the next/previous edge, in\n // which case we want to prevent default to keep the browser from moving focus\n // to where it normally would\n event.preventDefault();\n }\n _tryFocus(destinationNode);\n }\n // else, let the browser take care of [shift+]tab and move the focus\n };\n var checkTabKey = function checkTabKey(event) {\n if (config.isKeyForward(event) || config.isKeyBackward(event)) {\n checkKeyNav(event, config.isKeyBackward(event));\n }\n };\n\n // we use a different event phase for the Escape key to allow canceling the event and checking for this in escapeDeactivates\n var checkEscapeKey = function checkEscapeKey(event) {\n if (isEscapeEvent(event) && valueOrHandler(config.escapeDeactivates, event) !== false) {\n event.preventDefault();\n trap.deactivate();\n }\n };\n var checkClick = function checkClick(e) {\n var target = getActualTarget(e);\n if (findContainerIndex(target, e) >= 0) {\n return;\n }\n if (valueOrHandler(config.clickOutsideDeactivates, e)) {\n return;\n }\n if (valueOrHandler(config.allowOutsideClick, e)) {\n return;\n }\n e.preventDefault();\n e.stopImmediatePropagation();\n };\n\n //\n // EVENT LISTENERS\n //\n\n var addListeners = function addListeners() {\n if (!state.active) {\n return;\n }\n\n // There can be only one listening focus trap at a time\n activeFocusTraps.activateTrap(trapStack, trap);\n\n // Delay ensures that the focused element doesn't capture the event\n // that caused the focus trap activation.\n state.delayInitialFocusTimer = config.delayInitialFocus ? delay(function () {\n _tryFocus(getInitialFocusNode());\n }) : _tryFocus(getInitialFocusNode());\n doc.addEventListener('focusin', checkFocusIn, true);\n doc.addEventListener('mousedown', checkPointerDown, {\n capture: true,\n passive: false\n });\n doc.addEventListener('touchstart', checkPointerDown, {\n capture: true,\n passive: false\n });\n doc.addEventListener('click', checkClick, {\n capture: true,\n passive: false\n });\n doc.addEventListener('keydown', checkTabKey, {\n capture: true,\n passive: false\n });\n doc.addEventListener('keydown', checkEscapeKey);\n return trap;\n };\n var removeListeners = function removeListeners() {\n if (!state.active) {\n return;\n }\n doc.removeEventListener('focusin', checkFocusIn, true);\n doc.removeEventListener('mousedown', checkPointerDown, true);\n doc.removeEventListener('touchstart', checkPointerDown, true);\n doc.removeEventListener('click', checkClick, true);\n doc.removeEventListener('keydown', checkTabKey, true);\n doc.removeEventListener('keydown', checkEscapeKey);\n return trap;\n };\n\n //\n // MUTATION OBSERVER\n //\n\n var checkDomRemoval = function checkDomRemoval(mutations) {\n var isFocusedNodeRemoved = mutations.some(function (mutation) {\n var removedNodes = Array.from(mutation.removedNodes);\n return removedNodes.some(function (node) {\n return node === state.mostRecentlyFocusedNode;\n });\n });\n\n // If the currently focused is removed then browsers will move focus to the\n // <body> element. If this happens, try to move focus back into the trap.\n if (isFocusedNodeRemoved) {\n _tryFocus(getInitialFocusNode());\n }\n };\n\n // Use MutationObserver - if supported - to detect if focused node is removed\n // from the DOM.\n var mutationObserver = typeof window !== 'undefined' && 'MutationObserver' in window ? new MutationObserver(checkDomRemoval) : undefined;\n var updateObservedNodes = function updateObservedNodes() {\n if (!mutationObserver) {\n return;\n }\n mutationObserver.disconnect();\n if (state.active && !state.paused) {\n state.containers.map(function (container) {\n mutationObserver.observe(container, {\n subtree: true,\n childList: true\n });\n });\n }\n };\n\n //\n // TRAP DEFINITION\n //\n\n trap = {\n get active() {\n return state.active;\n },\n get paused() {\n return state.paused;\n },\n activate: function activate(activateOptions) {\n if (state.active) {\n return this;\n }\n var onActivate = getOption(activateOptions, 'onActivate');\n var onPostActivate = getOption(activateOptions, 'onPostActivate');\n var checkCanFocusTrap = getOption(activateOptions, 'checkCanFocusTrap');\n if (!checkCanFocusTrap) {\n updateTabbableNodes();\n }\n state.active = true;\n state.paused = false;\n state.nodeFocusedBeforeActivation = _getActiveElement(doc);\n onActivate === null || onActivate === void 0 || onActivate();\n var finishActivation = function finishActivation() {\n if (checkCanFocusTrap) {\n updateTabbableNodes();\n }\n addListeners();\n updateObservedNodes();\n onPostActivate === null || onPostActivate === void 0 || onPostActivate();\n };\n if (checkCanFocusTrap) {\n checkCanFocusTrap(state.containers.concat()).then(finishActivation, finishActivation);\n return this;\n }\n finishActivation();\n return this;\n },\n deactivate: function deactivate(deactivateOptions) {\n if (!state.active) {\n return this;\n }\n var options = _objectSpread2({\n onDeactivate: config.onDeactivate,\n onPostDeactivate: config.onPostDeactivate,\n checkCanReturnFocus: config.checkCanReturnFocus\n }, deactivateOptions);\n clearTimeout(state.delayInitialFocusTimer); // noop if undefined\n state.delayInitialFocusTimer = undefined;\n removeListeners();\n state.active = false;\n state.paused = false;\n updateObservedNodes();\n activeFocusTraps.deactivateTrap(trapStack, trap);\n var onDeactivate = getOption(options, 'onDeactivate');\n var onPostDeactivate = getOption(options, 'onPostDeactivate');\n var checkCanReturnFocus = getOption(options, 'checkCanReturnFocus');\n var returnFocus = getOption(options, 'returnFocus', 'returnFocusOnDeactivate');\n onDeactivate === null || onDeactivate === void 0 || onDeactivate();\n var finishDeactivation = function finishDeactivation() {\n delay(function () {\n if (returnFocus) {\n _tryFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation));\n }\n onPostDeactivate === null || onPostDeactivate === void 0 || onPostDeactivate();\n });\n };\n if (returnFocus && checkCanReturnFocus) {\n checkCanReturnFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation)).then(finishDeactivation, finishDeactivation);\n return this;\n }\n finishDeactivation();\n return this;\n },\n pause: function pause(pauseOptions) {\n if (!state.active) {\n return this;\n }\n state.manuallyPaused = true;\n return this._setPausedState(true, pauseOptions);\n },\n unpause: function unpause(unpauseOptions) {\n if (!state.active) {\n return this;\n }\n state.manuallyPaused = false;\n if (trapStack[trapStack.length - 1] !== this) {\n return this;\n }\n return this._setPausedState(false, unpauseOptions);\n },\n updateContainerElements: function updateContainerElements(containerElements) {\n var elementsAsArray = [].concat(containerElements).filter(Boolean);\n state.containers = elementsAsArray.map(function (element) {\n return typeof element === 'string' ? doc.querySelector(element) : element;\n });\n if (state.active) {\n updateTabbableNodes();\n }\n updateObservedNodes();\n return this;\n }\n };\n Object.defineProperties(trap, {\n _isManuallyPaused: {\n value: function value() {\n return state.manuallyPaused;\n }\n },\n _setPausedState: {\n value: function value(paused, options) {\n if (state.paused === paused) {\n return this;\n }\n state.paused = paused;\n if (paused) {\n var onPause = getOption(options, 'onPause');\n var onPostPause = getOption(options, 'onPostPause');\n onPause === null || onPause === void 0 || onPause();\n removeListeners();\n updateObservedNodes();\n onPostPause === null || onPostPause === void 0 || onPostPause();\n } else {\n var onUnpause = getOption(options, 'onUnpause');\n var onPostUnpause = getOption(options, 'onPostUnpause');\n onUnpause === null || onUnpause === void 0 || onUnpause();\n updateTabbableNodes();\n addListeners();\n updateObservedNodes();\n onPostUnpause === null || onPostUnpause === void 0 || onPostUnpause();\n }\n return this;\n }\n }\n });\n\n // initialize container elements\n trap.updateContainerElements(elements);\n return trap;\n};\n\nexport { createFocusTrap };\n//# sourceMappingURL=focus-trap.esm.js.map\n","import { isRTL } from \"@nextcloud/l10n\";\nconst isRtl = isRTL();\nexport {\n isRtl as i\n};\n//# sourceMappingURL=rtl-v0UOPAM7.mjs.map\n","import '../assets/NcPopover-CZ3pMU6Y.css';\nimport { options, Dropdown } from \"floating-vue\";\nimport { createFocusTrap } from \"focus-trap\";\nimport { defineComponent, warn, resolveComponent, createBlock, openBlock, withCtx, createVNode, renderSlot, normalizeProps, guardReactiveProps } from \"vue\";\nimport { g as getTrapStack } from \"./focusTrap-HJQ4pqHV.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { i as isRtl } from \"./rtl-v0UOPAM7.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main$1 = defineComponent({\n name: \"NcPopoverTriggerProvider\",\n provide() {\n return {\n \"NcPopover:trigger:shown\": () => this.shown,\n \"NcPopover:trigger:attrs\": () => this.triggerAttrs\n };\n },\n props: {\n /**\n * Is the popover currently shown\n */\n shown: {\n type: Boolean,\n required: true\n },\n /**\n * ARIA Role of the popup\n */\n popupRole: {\n type: String,\n default: void 0\n }\n },\n computed: {\n triggerAttrs() {\n return {\n \"aria-haspopup\": this.popupRole,\n \"aria-expanded\": this.shown.toString()\n };\n }\n },\n render() {\n return this.$slots.default?.({\n attrs: this.triggerAttrs\n });\n }\n});\nconst ncPopover = \"_ncPopover_wpltc_20\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_wpltc_12\",\n ncPopover\n};\nconst theme = \"nc-popover-9\";\noptions.themes[theme] = structuredClone(options.themes.dropdown);\nconst _sfc_main = {\n name: \"NcPopover\",\n components: {\n Dropdown,\n NcPopoverTriggerProvider: _sfc_main$1\n },\n props: {\n /**\n * Element to use for calculating the popper boundary (size and position).\n * Either a query string or the actual HTMLElement.\n */\n boundary: {\n type: [String, Object],\n default: \"\"\n },\n /**\n * Automatically hide the popover on click outside.\n *\n * @deprecated Use `no-close-on-click-outside` instead (inverted value)\n */\n closeOnClickOutside: {\n type: Boolean,\n // eslint-disable-next-line vue/no-boolean-default\n default: true\n },\n /**\n * Disable the automatic popover hide on click outside.\n */\n noCloseOnClickOutside: {\n type: Boolean,\n default: false\n },\n /**\n * Container where to mount the popover.\n * Either a select query or `false` to mount to the parent node.\n */\n container: {\n type: [Boolean, String],\n default: \"body\"\n },\n /**\n * Delay for showing or hiding the popover.\n *\n * Can either be a number or an object to configure different delays (`{ show: number, hide: number }`).\n */\n delay: {\n type: [Number, Object],\n default: 0\n },\n /**\n * Disable the popover focus trap.\n */\n noFocusTrap: {\n type: Boolean,\n default: false\n },\n /**\n * Where to place the popover.\n *\n * This consists of the vertical placement and the horizontal placement.\n * E.g. `bottom` will place the popover on the bottom of the trigger (horizontally centered),\n * while `buttom-start` will horizontally align the popover on the logical start (e.g. for LTR layout on the left.).\n * The `start` or `end` placement will align the popover on the left or right side or the trigger element.\n *\n * @type {'auto'|'auto-start'|'auto-end'|'top'|'top-start'|'top-end'|'bottom'|'bottom-start'|'bottom-end'|'start'|'end'}\n */\n placement: {\n type: String,\n default: \"bottom\"\n },\n /**\n * Class to be applied to the popover base\n */\n popoverBaseClass: {\n type: String,\n default: \"\"\n },\n /**\n * Events that trigger the popover on the popover container itself.\n * This is useful if you set `triggers` to `hover` and also want the popover to stay open while hovering the popover itself.\n *\n * It is possible to also pass an object to define different triggers for hide and show `{ show: ['hover'], hide: ['click'] }`.\n */\n popoverTriggers: {\n type: [Array, Object],\n default: null\n },\n /**\n * Popup role\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-haspopup#values\n */\n popupRole: {\n type: String,\n default: void 0,\n validator: (value) => [\"menu\", \"listbox\", \"tree\", \"grid\", \"dialog\", \"true\"].includes(value)\n },\n /**\n * Set element to return focus to after focus trap deactivation\n *\n * @type {SetReturnFocus}\n */\n setReturnFocus: {\n default: void 0,\n type: [Boolean, HTMLElement, SVGElement, String, Function]\n },\n /**\n * Show or hide the popper\n */\n shown: {\n type: Boolean,\n default: false\n },\n /**\n * Events that trigger the popover.\n *\n * If you pass an empty array then only the `shown` prop can control the popover state.\n * Following events are available:\n * - `'hover'`\n * - `'click'`\n * - `'focus'`\n * - `'touch'`\n *\n * It is also possible to pass an object to have different events for show and hide:\n * `{ hide: ['click'], show: ['click', 'hover'] }`\n */\n triggers: {\n type: [Array, Object],\n default: () => [\"click\"]\n }\n },\n emits: [\n \"afterShow\",\n \"afterHide\",\n \"update:shown\"\n ],\n setup() {\n return {\n theme\n };\n },\n data() {\n return {\n internalShown: this.shown\n };\n },\n computed: {\n popperTriggers() {\n if (this.popoverTriggers && Array.isArray(this.popoverTriggers)) {\n return this.popoverTriggers;\n }\n return void 0;\n },\n popperHideTriggers() {\n if (this.popoverTriggers && typeof this.popoverTriggers === \"object\") {\n return this.popoverTriggers.hide;\n }\n return void 0;\n },\n popperShowTriggers() {\n if (this.popoverTriggers && typeof this.popoverTriggers === \"object\") {\n return this.popoverTriggers.show;\n }\n return void 0;\n },\n internalTriggers() {\n if (this.triggers && Array.isArray(this.triggers)) {\n return this.triggers;\n }\n return void 0;\n },\n hideTriggers() {\n if (this.triggers && typeof this.triggers === \"object\") {\n return this.triggers.hide;\n }\n return void 0;\n },\n showTriggers() {\n if (this.triggers && typeof this.triggers === \"object\") {\n return this.triggers.show;\n }\n return void 0;\n },\n internalPlacement() {\n if (this.placement === \"start\") {\n return isRtl ? \"right\" : \"left\";\n } else if (this.placement === \"end\") {\n return isRtl ? \"left\" : \"right\";\n }\n return this.placement;\n }\n },\n watch: {\n shown(value) {\n this.internalShown = value;\n },\n internalShown(value) {\n this.$emit(\"update:shown\", value);\n }\n },\n mounted() {\n this.checkTriggerA11y();\n },\n beforeUnmount() {\n this.clearFocusTrap();\n this.clearEscapeStopPropagation();\n },\n methods: {\n /**\n * Check if the trigger has all required a11y attributes.\n * Important to check custom trigger button.\n */\n checkTriggerA11y() {\n if (window.OC?.debug) {\n const triggerContainer = this.getPopoverTriggerContainerElement();\n const requiredTriggerButton = triggerContainer.querySelector(\"[aria-expanded]\");\n if (!requiredTriggerButton) {\n warn(\"It looks like you are using a custom button as a <NcPopover> or other popover #trigger. If you are not using <NcButton> as a trigger, you need to bind attrs from the #trigger slot props to your custom button. See <NcPopover> docs for an example.\");\n }\n }\n },\n /**\n * Remove incorrect aria-describedby attribute from the trigger.\n *\n * @see https://github.com/Akryum/floating-vue/blob/8d4f7125aae0e3ea00ba4093d6d2001ab15058f1/packages/floating-vue/src/components/Popper.ts#L734\n */\n removeFloatingVueAriaDescribedBy() {\n const triggerContainer = this.getPopoverTriggerContainerElement();\n const triggerElements = triggerContainer.querySelectorAll(\"[data-popper-shown]\");\n for (const el of triggerElements) {\n el.removeAttribute(\"aria-describedby\");\n }\n },\n /**\n * @return {HTMLElement|undefined}\n */\n getPopoverContentElement() {\n return this.$refs.popover?.$refs.popperContent?.$el;\n },\n /**\n * @return {HTMLElement|undefined}\n */\n getPopoverTriggerContainerElement() {\n return this.$refs.popover?.$refs.popper?.$refs.reference;\n },\n /**\n * Add focus trap for accessibility.\n */\n async useFocusTrap() {\n await this.$nextTick();\n if (this.noFocusTrap) {\n return;\n }\n const el = this.getPopoverContentElement();\n el.tabIndex = -1;\n if (!el) {\n return;\n }\n this.$focusTrap = createFocusTrap(el, {\n // Prevents to lose focus using esc key\n // Focus will be release when popover be hide\n escapeDeactivates: false,\n allowOutsideClick: true,\n setReturnFocus: this.setReturnFocus,\n trapStack: getTrapStack(),\n fallBackFocus: el\n });\n this.$focusTrap.activate();\n },\n /**\n * Remove focus trap\n *\n * @param {object} options The configuration options for focusTrap\n */\n clearFocusTrap(options2 = {}) {\n try {\n this.$focusTrap?.deactivate(options2);\n this.$focusTrap = null;\n } catch (error) {\n logger.warn(\"[NcPopover] Failed to clear focus trap\", { error });\n }\n },\n /**\n * Add stopPropagation for Escape.\n * It prevents global Escape handling after closing popover.\n *\n * Manual event handling is used here instead of v-on because there is no direct access to the node.\n * Alternative - wrap <template #popover> in a div wrapper.\n */\n addEscapeStopPropagation() {\n const el = this.getPopoverContentElement();\n el?.addEventListener(\"keydown\", this.stopKeydownEscapeHandler);\n },\n /**\n * Remove stop Escape handler\n */\n clearEscapeStopPropagation() {\n const el = this.getPopoverContentElement();\n el?.removeEventListener(\"keydown\", this.stopKeydownEscapeHandler);\n },\n /**\n * @param {KeyboardEvent} event - native keydown event\n */\n stopKeydownEscapeHandler(event) {\n if (event.type === \"keydown\" && event.key === \"Escape\") {\n event.stopPropagation();\n }\n },\n async afterShow() {\n this.getPopoverContentElement().addEventListener(\"transitionend\", () => {\n this.$emit(\"afterShow\");\n }, { once: true, passive: true });\n this.removeFloatingVueAriaDescribedBy();\n await this.$nextTick();\n await this.useFocusTrap();\n this.addEscapeStopPropagation();\n },\n afterHide() {\n this.getPopoverContentElement()?.addEventListener(\"transitionend\", () => {\n this.$emit(\"afterHide\");\n }, { once: true, passive: true });\n this.clearFocusTrap();\n this.clearEscapeStopPropagation();\n }\n }\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcPopoverTriggerProvider = resolveComponent(\"NcPopoverTriggerProvider\");\n const _component_Dropdown = resolveComponent(\"Dropdown\");\n return openBlock(), createBlock(_component_Dropdown, {\n ref: \"popover\",\n shown: $data.internalShown,\n \"onUpdate:shown\": [\n _cache[0] || (_cache[0] = ($event) => $data.internalShown = $event),\n _cache[1] || (_cache[1] = ($event) => $data.internalShown = $event)\n ],\n \"arrow-padding\": 10,\n \"auto-hide\": !$props.noCloseOnClickOutside && $props.closeOnClickOutside,\n boundary: $props.boundary || void 0,\n container: $props.container,\n delay: $props.delay,\n distance: 10,\n \"handle-resize\": \"\",\n \"no-auto-focus\": true,\n placement: $options.internalPlacement,\n \"popper-class\": [_ctx.$style.ncPopover, $props.popoverBaseClass],\n \"popper-triggers\": $options.popperTriggers,\n \"popper-hide-triggers\": $options.popperHideTriggers,\n \"popper-show-triggers\": $options.popperShowTriggers,\n theme: $setup.theme,\n triggers: $options.internalTriggers,\n \"hide-triggers\": $options.hideTriggers,\n \"show-triggers\": $options.showTriggers,\n onApplyShow: $options.afterShow,\n onApplyHide: $options.afterHide\n }, {\n popper: withCtx((slotProps) => [\n renderSlot(_ctx.$slots, \"default\", normalizeProps(guardReactiveProps(slotProps)))\n ]),\n default: withCtx(() => [\n createVNode(_component_NcPopoverTriggerProvider, {\n shown: $data.internalShown,\n \"popup-role\": $props.popupRole\n }, {\n default: withCtx((slotProps) => [\n renderSlot(_ctx.$slots, \"trigger\", normalizeProps(guardReactiveProps(slotProps)))\n ]),\n _: 3\n }, 8, [\"shown\", \"popup-role\"])\n ]),\n _: 3\n }, 8, [\"shown\", \"auto-hide\", \"boundary\", \"container\", \"delay\", \"placement\", \"popper-class\", \"popper-triggers\", \"popper-hide-triggers\", \"popper-show-triggers\", \"theme\", \"triggers\", \"hide-triggers\", \"show-triggers\", \"onApplyShow\", \"onApplyHide\"]);\n}\nconst cssModules = {\n \"$style\": style0\n};\nconst NcPopover = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__cssModules\", cssModules]]);\nexport {\n NcPopover as N\n};\n//# sourceMappingURL=NcPopover-C-MTaPCs.mjs.map\n","import '../assets/NcActions-DOI7rRa0.css';\nimport { createElementBlock, openBlock, mergeProps, createElementVNode, createCommentVNode, toDisplayString, Comment, Fragment, Text, warn, h, computed } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { u as useTrapStackControl } from \"./useTrapStackControl-B6cEicto.mjs\";\nimport { r as register, o as t4, a as t } from \"./_l10n-DrTiip5c.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { N as NcButton } from \"./NcButton-Dc8V4Urj.mjs\";\nimport { N as NcPopover } from \"./NcPopover-C-MTaPCs.mjs\";\nimport { N as NC_ACTIONS_CLOSE_MENU, a as NC_ACTIONS_IS_SEMANTIC_MENU } from \"./useNcActions-CiGWxAJE.mjs\";\nconst _sfc_main$1 = {\n name: \"DotsHorizontalIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3 = { d: \"M16,12A2,2 0 0,1 18,10A2,2 0 0,1 20,12A2,2 0 0,1 18,14A2,2 0 0,1 16,12M10,12A2,2 0 0,1 12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12M4,12A2,2 0 0,1 6,10A2,2 0 0,1 8,12A2,2 0 0,1 6,14A2,2 0 0,1 4,12Z\" };\nconst _hoisted_4 = { key: 0 };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon dots-horizontal-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2))\n ], 16, _hoisted_1);\n}\nconst IconDotsHorizontal = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render]]);\nregister(t4);\nfunction isSlotPopulated(vnodes) {\n return Array.isArray(vnodes) && vnodes.some((node) => {\n if (node === null) {\n return false;\n } else if (typeof node === \"object\") {\n const vnode = node;\n if (vnode.type === Comment) {\n return false;\n } else if (vnode.type === Fragment && !isSlotPopulated(vnode.children)) {\n return false;\n } else if (vnode.type === Text && !vnode.children.trim()) {\n return false;\n }\n }\n return true;\n });\n}\nconst focusableSelector = \".focusable\";\nconst _sfc_main = {\n name: \"NcActions\",\n components: {\n NcButton,\n NcPopover\n },\n provide() {\n return {\n /**\n * NcActions can be used as:\n * - Application menu (has menu role)\n * - Navigation (has no specific role, should be used an element with navigation role)\n * - Popover with plain text or text inputs (has no specific role)\n * Depending on the usage (used items), the menu and its items should have different roles for a11y.\n * Provide the role for NcAction* components in the NcActions content.\n *\n * @type {import('vue').ComputedRef<boolean>}\n */\n [NC_ACTIONS_IS_SEMANTIC_MENU]: computed(() => this.actionsMenuSemanticType === \"menu\"),\n [NC_ACTIONS_CLOSE_MENU]: this.closeMenu\n };\n },\n props: {\n /**\n * Specify the open state of the popover menu\n */\n open: {\n type: Boolean,\n default: false\n },\n /**\n * This disables the internal open management,\n * so the actions menu only respects the `open` prop.\n * This is e.g. necessary for the NcAvatar component\n * to only open the actions menu after loading it's entries has finished.\n */\n manualOpen: {\n type: Boolean,\n default: false\n },\n /**\n * Force the actions to display in a three dot menu\n */\n forceMenu: {\n type: Boolean,\n default: false\n },\n /**\n * Force the name to show for single actions\n */\n forceName: {\n type: Boolean,\n default: false\n },\n /**\n * Specify the menu name\n */\n menuName: {\n type: String,\n default: null\n },\n /**\n * Apply primary styling for this menu\n */\n primary: {\n type: Boolean,\n default: false\n },\n /**\n * Icon to show for the toggle menu button\n * when more than one action is inside the actions component.\n * Only replace the default three-dot icon if really necessary.\n */\n defaultIcon: {\n type: String,\n default: \"\"\n },\n /**\n * Aria label for the actions menu.\n *\n * If `menuName` is defined this will not be used to prevent\n * any accessible name conflicts. This ensures that the\n * element can be activated via voice input.\n */\n ariaLabel: {\n type: String,\n default: t(\"Actions\")\n },\n /**\n * Wanted direction of the menu\n */\n placement: {\n type: String,\n default: \"bottom\"\n },\n /**\n * DOM element for the actions' popover boundaries\n */\n boundariesElement: {\n type: Element,\n default: () => document.getElementById(\"content-vue\") ?? document.querySelector(\"body\")\n },\n /**\n * Selector for the actions' popover container\n */\n container: {\n type: [Boolean, String, Object, Element],\n default: \"body\"\n },\n /**\n * Disabled state of the main button (single action or menu toggle)\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * Display x items inline out of the dropdown menu\n * Will be ignored if `forceMenu` is set\n */\n inline: {\n type: Number,\n default: 0\n },\n /**\n * Specifies the button variant used for trigger and single actions buttons.\n *\n * If left empty, the default button style will be applied.\n *\n * @since 8.23.0\n */\n variant: {\n type: String,\n validator(value) {\n return [\"primary\", \"secondary\", \"tertiary\", \"tertiary-no-background\", \"tertiary-on-primary\", \"error\", \"warning\", \"success\"].includes(value);\n },\n default: null\n },\n /**\n * Specify the size used for trigger and single actions buttons.\n *\n * If left empty, the default button size will be applied.\n */\n size: {\n type: String,\n default: \"normal\",\n validator(value) {\n return [\"small\", \"normal\", \"large\"].includes(value);\n }\n }\n },\n emits: [\n \"click\",\n \"blur\",\n \"focus\",\n \"close\",\n \"closed\",\n \"open\",\n \"opened\",\n \"update:open\"\n ],\n setup() {\n const randomId = createElementId();\n return {\n randomId\n };\n },\n data() {\n return {\n opened: this.open,\n focusIndex: 0,\n /**\n * @type {'menu'|'navigation'|'dialog'|'tooltip'|'unknown'}\n */\n actionsMenuSemanticType: \"unknown\"\n };\n },\n computed: {\n triggerButtonVariant() {\n return this.variant || (this.primary ? \"primary\" : this.menuName ? \"secondary\" : \"tertiary\");\n },\n /**\n * A11y roles and keyboard navigation configuration depending on the semantic type\n */\n config() {\n const configs = {\n menu: {\n popupRole: \"menu\",\n withArrowNavigation: true,\n withTabNavigation: false,\n withFocusTrap: false\n },\n navigation: {\n popupRole: void 0,\n withArrowNavigation: false,\n withTabNavigation: true,\n withFocusTrap: false\n },\n dialog: {\n popupRole: \"dialog\",\n withArrowNavigation: false,\n withTabNavigation: true,\n withFocusTrap: true\n },\n tooltip: {\n popupRole: void 0,\n withArrowNavigation: false,\n withTabNavigation: false,\n withFocusTrap: false\n },\n // Due to Vue limitations, we sometimes cannot determine the true type\n // As a fallback use both arrow navigation and focus trap\n unknown: {\n popupRole: void 0,\n role: void 0,\n withArrowNavigation: true,\n withTabNavigation: false,\n withFocusTrap: true\n }\n };\n return configs[this.actionsMenuSemanticType];\n },\n withFocusTrap() {\n return this.config.withFocusTrap;\n }\n },\n watch: {\n // Watch parent prop\n open(state) {\n if (state === this.opened) {\n return;\n }\n this.opened = state;\n },\n opened() {\n if (this.opened) {\n document.body.addEventListener(\"keydown\", this.handleEscapePressed);\n } else {\n document.body.removeEventListener(\"keydown\", this.handleEscapePressed);\n }\n }\n },\n created() {\n useTrapStackControl(() => this.opened, {\n disabled: () => this.config.withFocusTrap\n });\n if (\"ariaHidden\" in this.$attrs) {\n warn(\"[NcActions]: Do not set the ariaHidden attribute as the root element will inherit the incorrect aria-hidden.\");\n }\n },\n methods: {\n /**\n * Get the name of the action component\n *\n * @param {import('vue').VNode} action - a vnode with a NcAction* component instance\n * @return {string} the name of the action component\n */\n getActionName(action) {\n return action?.type?.name;\n },\n /**\n * Do we have exactly one Action and\n * is it allowed as a standalone element?\n *\n * @param {import('vue').VNode} action The action to check\n * @return {boolean}\n */\n isValidSingleAction(action) {\n return [\"NcActionButton\", \"NcActionLink\", \"NcActionRouter\"].includes(this.getActionName(action));\n },\n isAction(action) {\n return this.getActionName(action)?.startsWith?.(\"NcAction\");\n },\n /**\n * Check whether a icon prop value is an URL or not\n *\n * @param {string} url The icon prop value\n */\n isIconUrl(url) {\n try {\n return !!new URL(url, url.startsWith(\"/\") ? window.location.origin : void 0);\n } catch {\n return false;\n }\n },\n // MENU STATE MANAGEMENT\n toggleMenu(state) {\n if (state) {\n this.openMenu();\n } else {\n this.closeMenu();\n }\n },\n openMenu() {\n if (this.opened) {\n return;\n }\n this.opened = true;\n this.$emit(\"update:open\", true);\n this.$emit(\"open\");\n },\n async closeMenu(returnFocus = true) {\n if (!this.opened) {\n return;\n }\n await this.$nextTick();\n this.opened = false;\n this.$refs.popover?.clearFocusTrap({ returnFocus });\n this.$emit(\"update:open\", false);\n this.$emit(\"close\");\n this.focusIndex = 0;\n if (returnFocus) {\n this.$refs.triggerButton?.$el.focus();\n }\n },\n /**\n * Called when popover is shown after the show delay\n */\n onOpened() {\n this.$nextTick(() => {\n this.focusFirstAction(null);\n this.$emit(\"opened\");\n });\n },\n onClosed() {\n this.$emit(\"closed\");\n },\n // MENU KEYS & FOCUS MANAGEMENT\n /**\n * @return {HTMLElement|null}\n */\n getCurrentActiveMenuItemElement() {\n return this.$refs.menu.querySelector(\"li.active\");\n },\n /**\n * @return {NodeList<HTMLElement>}\n */\n getFocusableMenuItemElements() {\n return this.$refs.menu.querySelectorAll(focusableSelector);\n },\n /**\n * Dispatches the keydown listener to different handlers\n *\n * @param {object} event The keydown event\n */\n onKeydown(event) {\n if (event.key === \"Tab\") {\n if (this.config.withFocusTrap) {\n return;\n }\n if (!this.config.withTabNavigation) {\n this.closeMenu(true);\n return;\n }\n event.preventDefault();\n const focusList = this.getFocusableMenuItemElements();\n const focusIndex = [...focusList].indexOf(document.activeElement);\n if (focusIndex === -1) {\n return;\n }\n const newFocusIndex = event.shiftKey ? focusIndex - 1 : focusIndex + 1;\n if (newFocusIndex < 0 || newFocusIndex === focusList.length) {\n this.closeMenu(true);\n }\n this.focusIndex = newFocusIndex;\n this.focusAction();\n return;\n }\n if (this.config.withArrowNavigation) {\n if (event.key === \"ArrowUp\") {\n this.focusPreviousAction(event);\n }\n if (event.key === \"ArrowDown\") {\n this.focusNextAction(event);\n }\n if (event.key === \"PageUp\") {\n this.focusFirstAction(event);\n }\n if (event.key === \"PageDown\") {\n this.focusLastAction(event);\n }\n }\n this.handleEscapePressed(event);\n },\n onTriggerKeydown(event) {\n if (event.key === \"Escape\") {\n if (this.actionsMenuSemanticType === \"tooltip\") {\n this.closeMenu();\n }\n }\n },\n handleEscapePressed(event) {\n if (event.key === \"Escape\") {\n this.closeMenu();\n event.preventDefault();\n }\n },\n removeCurrentActive() {\n const currentActiveElement = this.$refs.menu.querySelector(\"li.active\");\n if (currentActiveElement) {\n currentActiveElement.classList.remove(\"active\");\n }\n },\n focusAction() {\n const focusElement = this.getFocusableMenuItemElements()[this.focusIndex];\n if (focusElement) {\n this.removeCurrentActive();\n const liMenuParent = focusElement.closest(\"li.action\");\n focusElement.focus();\n if (liMenuParent) {\n liMenuParent.classList.add(\"active\");\n }\n }\n },\n focusPreviousAction(event) {\n if (this.opened) {\n if (this.focusIndex === 0) {\n this.focusLastAction(event);\n } else {\n this.preventIfEvent(event);\n this.focusIndex = this.focusIndex - 1;\n }\n this.focusAction();\n }\n },\n focusNextAction(event) {\n if (this.opened) {\n const indexLength = this.getFocusableMenuItemElements().length - 1;\n if (this.focusIndex === indexLength) {\n this.focusFirstAction(event);\n } else {\n this.preventIfEvent(event);\n this.focusIndex = this.focusIndex + 1;\n }\n this.focusAction();\n }\n },\n focusFirstAction(event) {\n if (this.opened) {\n this.preventIfEvent(event);\n const firstCheckedIndex = [...this.getFocusableMenuItemElements()].findIndex((button) => {\n return button.getAttribute(\"aria-checked\") === \"true\" && button.getAttribute(\"role\") === \"menuitemradio\";\n });\n this.focusIndex = firstCheckedIndex > -1 ? firstCheckedIndex : 0;\n this.focusAction();\n }\n },\n focusLastAction(event) {\n if (this.opened) {\n this.preventIfEvent(event);\n this.focusIndex = this.getFocusableMenuItemElements().length - 1;\n this.focusAction();\n }\n },\n preventIfEvent(event) {\n if (event) {\n event.preventDefault();\n event.stopPropagation();\n }\n },\n onFocus(event) {\n this.$emit(\"focus\", event);\n },\n onBlur(event) {\n this.$emit(\"blur\", event);\n if (this.actionsMenuSemanticType === \"tooltip\") {\n if (this.$refs.menu && this.getFocusableMenuItemElements().length === 0) {\n this.closeMenu(false);\n }\n }\n },\n onClick(event) {\n this.$emit(\"click\", event);\n }\n },\n /**\n * The render function to display the component\n *\n * @return {object|undefined} The created VNode\n */\n render() {\n const actions = [];\n const findActions = (vnodes, actions2) => {\n vnodes.forEach((vnode) => {\n if (this.isAction(vnode)) {\n actions2.push(vnode);\n return;\n }\n if (vnode.type === Fragment) {\n findActions(vnode.children, actions2);\n }\n });\n };\n findActions(this.$slots.default?.(), actions);\n if (actions.length === 0) {\n return;\n }\n let validInlineActions = actions.filter(this.isValidSingleAction);\n if (this.forceMenu && validInlineActions.length > 0 && this.inline > 0) {\n warn(\"Specifying forceMenu will ignore any inline actions rendering.\");\n validInlineActions = [];\n }\n const inlineActions = validInlineActions.slice(0, this.inline);\n const menuActions = actions.filter((action) => !inlineActions.includes(action));\n const menuItemsActions = [\"NcActionButton\", \"NcActionButtonGroup\", \"NcActionCheckbox\", \"NcActionRadio\"];\n const textInputActions = [\"NcActionInput\", \"NcActionTextEditable\"];\n const linkActions = [\"NcActionLink\", \"NcActionRouter\"];\n const hasTextInputAction = menuActions.some((action) => textInputActions.includes(this.getActionName(action)));\n const hasMenuItemAction = menuActions.some((action) => menuItemsActions.includes(this.getActionName(action)));\n const hasLinkAction = menuActions.some((action) => linkActions.includes(this.getActionName(action)));\n if (hasTextInputAction) {\n this.actionsMenuSemanticType = \"dialog\";\n } else if (hasMenuItemAction) {\n this.actionsMenuSemanticType = \"menu\";\n } else if (hasLinkAction) {\n this.actionsMenuSemanticType = \"navigation\";\n } else {\n const ncActions = actions.filter((action) => this.getActionName(action).startsWith(\"NcAction\"));\n if (ncActions.length === actions.length) {\n this.actionsMenuSemanticType = \"tooltip\";\n } else {\n this.actionsMenuSemanticType = \"unknown\";\n }\n }\n const renderInlineAction = (action) => {\n const iconProp = action?.props?.icon;\n const icon = action?.children?.icon?.()?.[0] ?? (this.isIconUrl(iconProp) ? h(\"img\", { class: \"action-item__menutoggle__icon\", src: iconProp, alt: \"\" }) : h(\"span\", { class: [\"icon\", iconProp] }));\n const text = action?.children?.default?.()?.[0]?.children?.trim();\n const buttonText = this.forceName ? text : \"\";\n let title = action?.props?.title;\n if (!(this.forceName || title)) {\n title = text;\n }\n const propsToForward = { ...action?.props ?? {} };\n const type = [\"submit\", \"reset\"].includes(propsToForward.type) ? propsToForward.modelValue : \"button\";\n delete propsToForward.modelValue;\n delete propsToForward.type;\n return h(\n NcButton,\n mergeProps(\n propsToForward,\n {\n class: \"action-item action-item--single\",\n \"aria-label\": action?.props?.[\"aria-label\"] || text,\n title,\n disabled: this.disabled || action?.props?.disabled,\n pressed: action?.props?.modelValue,\n size: this.size,\n type,\n // If it has a menuName, we use a secondary button\n variant: this.variant || (buttonText ? \"secondary\" : \"tertiary\"),\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n // forward any pressed state from NcButton just like NcActionButton does\n \"onUpdate:pressed\": action?.props?.[\"onUpdate:modelValue\"] ?? (() => {\n })\n }\n ),\n {\n default: () => buttonText,\n icon: () => icon\n }\n );\n };\n const renderActionsPopover = (actions2) => {\n const triggerIcon = isSlotPopulated(this.$slots.icon?.()) ? this.$slots.icon?.() : this.defaultIcon ? h(\"span\", { class: [\"icon\", this.defaultIcon] }) : h(IconDotsHorizontal, { size: 20 });\n const triggerRandomId = `${this.randomId}-trigger`;\n return h(\n NcPopover,\n {\n ref: \"popover\",\n delay: 0,\n shown: this.opened,\n placement: this.placement,\n boundary: this.boundariesElement,\n autoBoundaryMaxSize: true,\n container: this.container,\n ...this.manualOpen && {\n triggers: []\n },\n noCloseOnClickOutside: this.manualOpen,\n popoverBaseClass: \"action-item__popper\",\n popupRole: this.config.popupRole,\n setReturnFocus: this.config.withFocusTrap ? this.$refs.triggerButton?.$el : void 0,\n noFocusTrap: !this.config.withFocusTrap,\n \"onUpdate:shown\": this.toggleMenu,\n onAfterShow: this.onOpened,\n onAfterClose: this.onClosed\n },\n {\n trigger: () => h(NcButton, {\n id: triggerRandomId,\n class: \"action-item__menutoggle\",\n disabled: this.disabled,\n size: this.size,\n variant: this.triggerButtonVariant,\n ref: \"triggerButton\",\n \"aria-label\": this.menuName ? null : this.ariaLabel,\n // 'aria-controls' should only present together with a valid aria-haspopup\n \"aria-controls\": this.opened && this.config.popupRole ? this.randomId : null,\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n onClick: this.onClick,\n onKeydown: this.onTriggerKeydown\n }, {\n icon: () => triggerIcon,\n default: () => this.menuName\n }),\n default: () => h(\"div\", {\n class: {\n open: this.opened\n },\n tabindex: \"-1\",\n onKeydown: this.onKeydown,\n ref: \"menu\"\n }, [\n h(\"ul\", {\n id: this.randomId,\n tabindex: \"-1\",\n ref: \"menuList\",\n role: this.config.popupRole,\n // For most roles a label is required (dialog, menu), but also in general nothing speaks against labelling a list.\n // It is even recommended to do so.\n \"aria-labelledby\": triggerRandomId,\n \"aria-modal\": this.actionsMenuSemanticType === \"dialog\" ? \"true\" : void 0\n }, [\n actions2\n ])\n ])\n }\n );\n };\n if (actions.length === 1 && validInlineActions.length === 1 && !this.forceMenu) {\n return renderInlineAction(actions[0]);\n }\n this.$nextTick(() => {\n if (this.opened && this.$refs.menu) {\n const isAnyActive = this.$refs.menu.querySelector(\"li.active\") || [];\n if (isAnyActive.length === 0) {\n this.focusFirstAction();\n }\n }\n });\n if (inlineActions.length > 0 && this.inline > 0) {\n return h(\n \"div\",\n {\n class: [\n \"action-items\",\n `action-item--${this.triggerButtonVariant}`\n ]\n },\n [\n // Render inline actions\n ...inlineActions.map(renderInlineAction),\n // render the rest within the popover menu\n menuActions.length > 0 ? h(\n \"div\",\n {\n class: [\n \"action-item\",\n {\n \"action-item--open\": this.opened\n }\n ]\n },\n [renderActionsPopover(menuActions)]\n ) : null\n ]\n );\n }\n return h(\n \"div\",\n {\n class: [\n \"action-item action-item--default-popover\",\n `action-item--${this.triggerButtonVariant}`,\n {\n \"action-item--open\": this.opened\n }\n ]\n },\n [\n renderActionsPopover(actions)\n ]\n );\n }\n};\nconst NcActions = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-5f7eed6b\"]]);\nexport {\n IconDotsHorizontal as I,\n NcActions as N,\n isSlotPopulated as i\n};\n//# sourceMappingURL=NcActions-DWmvh7-Y.mjs.map\n","import { computed, customRef, effectScope, getCurrentInstance, getCurrentScope, hasInjectionContext, inject, isReactive, isRef, nextTick, onBeforeMount, onBeforeUnmount, onMounted, onScopeDispose, onUnmounted, provide, reactive, readonly, ref, shallowReadonly, shallowRef, toRef as toRef$1, toRefs as toRefs$1, toValue, unref, watch, watchEffect } from \"vue\";\n\n//#region computedEager/index.ts\n/**\n*\n* @deprecated This function will be removed in future version.\n*\n* Note: If you are using Vue 3.4+, you can straight use computed instead.\n* Because in Vue 3.4+, if computed new value does not change,\n* computed, effect, watch, watchEffect, render dependencies will not be triggered.\n* refer: https://github.com/vuejs/core/pull/5912\n*\n* @param fn effect function\n* @param options WatchOptionsBase\n* @returns readonly shallowRef\n*/\nfunction computedEager(fn, options) {\n\tvar _options$flush;\n\tconst result = shallowRef();\n\twatchEffect(() => {\n\t\tresult.value = fn();\n\t}, {\n\t\t...options,\n\t\tflush: (_options$flush = options === null || options === void 0 ? void 0 : options.flush) !== null && _options$flush !== void 0 ? _options$flush : \"sync\"\n\t});\n\treturn readonly(result);\n}\n/** @deprecated use `computedEager` instead */\nconst eagerComputed = computedEager;\n\n//#endregion\n//#region computedWithControl/index.ts\n/**\n* Explicitly define the deps of computed.\n*\n* @param source\n* @param fn\n*/\nfunction computedWithControl(source, fn, options = {}) {\n\tlet v = void 0;\n\tlet track;\n\tlet trigger;\n\tlet dirty = true;\n\tconst update = () => {\n\t\tdirty = true;\n\t\ttrigger();\n\t};\n\twatch(source, update, {\n\t\tflush: \"sync\",\n\t\t...options\n\t});\n\tconst get$1 = typeof fn === \"function\" ? fn : fn.get;\n\tconst set$1 = typeof fn === \"function\" ? void 0 : fn.set;\n\tconst result = customRef((_track, _trigger) => {\n\t\ttrack = _track;\n\t\ttrigger = _trigger;\n\t\treturn {\n\t\t\tget() {\n\t\t\t\tif (dirty) {\n\t\t\t\t\tv = get$1(v);\n\t\t\t\t\tdirty = false;\n\t\t\t\t}\n\t\t\t\ttrack();\n\t\t\t\treturn v;\n\t\t\t},\n\t\t\tset(v$1) {\n\t\t\t\tset$1 === null || set$1 === void 0 || set$1(v$1);\n\t\t\t}\n\t\t};\n\t});\n\tresult.trigger = update;\n\treturn result;\n}\n/** @deprecated use `computedWithControl` instead */\nconst controlledComputed = computedWithControl;\n\n//#endregion\n//#region tryOnScopeDispose/index.ts\n/**\n* Call onScopeDispose() if it's inside an effect scope lifecycle, if not, do nothing\n*\n* @param fn\n*/\nfunction tryOnScopeDispose(fn, failSilently) {\n\tif (getCurrentScope()) {\n\t\tonScopeDispose(fn, failSilently);\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n//#endregion\n//#region createEventHook/index.ts\n/**\n* Utility for creating event hooks\n*\n* @see https://vueuse.org/createEventHook\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createEventHook() {\n\tconst fns = /* @__PURE__ */ new Set();\n\tconst off = (fn) => {\n\t\tfns.delete(fn);\n\t};\n\tconst clear = () => {\n\t\tfns.clear();\n\t};\n\tconst on = (fn) => {\n\t\tfns.add(fn);\n\t\tconst offFn = () => off(fn);\n\t\ttryOnScopeDispose(offFn);\n\t\treturn { off: offFn };\n\t};\n\tconst trigger = (...args) => {\n\t\treturn Promise.all(Array.from(fns).map((fn) => fn(...args)));\n\t};\n\treturn {\n\t\ton,\n\t\toff,\n\t\ttrigger,\n\t\tclear\n\t};\n}\n\n//#endregion\n//#region createGlobalState/index.ts\n/**\n* Keep states in the global scope to be reusable across Vue instances.\n*\n* @see https://vueuse.org/createGlobalState\n* @param stateFactory A factory function to create the state\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createGlobalState(stateFactory) {\n\tlet initialized = false;\n\tlet state;\n\tconst scope = effectScope(true);\n\treturn ((...args) => {\n\t\tif (!initialized) {\n\t\t\tstate = scope.run(() => stateFactory(...args));\n\t\t\tinitialized = true;\n\t\t}\n\t\treturn state;\n\t});\n}\n\n//#endregion\n//#region provideLocal/map.ts\nconst localProvidedStateMap = /* @__PURE__ */ new WeakMap();\n\n//#endregion\n//#region injectLocal/index.ts\n/**\n* On the basis of `inject`, it is allowed to directly call inject to obtain the value after call provide in the same component.\n*\n* @example\n* ```ts\n* injectLocal('MyInjectionKey', 1)\n* const injectedValue = injectLocal('MyInjectionKey') // injectedValue === 1\n* ```\n*\n* @__NO_SIDE_EFFECTS__\n*/\nconst injectLocal = (...args) => {\n\tvar _getCurrentInstance;\n\tconst key = args[0];\n\tconst instance = (_getCurrentInstance = getCurrentInstance()) === null || _getCurrentInstance === void 0 ? void 0 : _getCurrentInstance.proxy;\n\tconst owner = instance !== null && instance !== void 0 ? instance : getCurrentScope();\n\tif (owner == null && !hasInjectionContext()) throw new Error(\"injectLocal must be called in setup\");\n\tif (owner && localProvidedStateMap.has(owner) && key in localProvidedStateMap.get(owner)) return localProvidedStateMap.get(owner)[key];\n\treturn inject(...args);\n};\n\n//#endregion\n//#region provideLocal/index.ts\n/**\n* On the basis of `provide`, it is allowed to directly call inject to obtain the value after call provide in the same component.\n*\n* @example\n* ```ts\n* provideLocal('MyInjectionKey', 1)\n* const injectedValue = injectLocal('MyInjectionKey') // injectedValue === 1\n* ```\n*/\nfunction provideLocal(key, value) {\n\tvar _getCurrentInstance;\n\tconst instance = (_getCurrentInstance = getCurrentInstance()) === null || _getCurrentInstance === void 0 ? void 0 : _getCurrentInstance.proxy;\n\tconst owner = instance !== null && instance !== void 0 ? instance : getCurrentScope();\n\tif (owner == null) throw new Error(\"provideLocal must be called in setup\");\n\tif (!localProvidedStateMap.has(owner)) localProvidedStateMap.set(owner, Object.create(null));\n\tconst localProvidedState = localProvidedStateMap.get(owner);\n\tlocalProvidedState[key] = value;\n\treturn provide(key, value);\n}\n\n//#endregion\n//#region createInjectionState/index.ts\n/**\n* Create global state that can be injected into components.\n*\n* @see https://vueuse.org/createInjectionState\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createInjectionState(composable, options) {\n\tconst key = (options === null || options === void 0 ? void 0 : options.injectionKey) || Symbol(composable.name || \"InjectionState\");\n\tconst defaultValue = options === null || options === void 0 ? void 0 : options.defaultValue;\n\tconst useProvidingState = (...args) => {\n\t\tconst state = composable(...args);\n\t\tprovideLocal(key, state);\n\t\treturn state;\n\t};\n\tconst useInjectedState = () => injectLocal(key, defaultValue);\n\treturn [useProvidingState, useInjectedState];\n}\n\n//#endregion\n//#region createRef/index.ts\n/**\n* Returns a `deepRef` or `shallowRef` depending on the `deep` param.\n*\n* @example createRef(1) // ShallowRef<number>\n* @example createRef(1, false) // ShallowRef<number>\n* @example createRef(1, true) // Ref<number>\n* @example createRef(\"string\") // ShallowRef<string>\n* @example createRef<\"A\"|\"B\">(\"A\", true) // Ref<\"A\"|\"B\">\n*\n* @param value\n* @param deep\n* @returns the `deepRef` or `shallowRef`\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createRef(value, deep) {\n\tif (deep === true) return ref(value);\n\telse return shallowRef(value);\n}\n\n//#endregion\n//#region utils/is.ts\nconst isClient = typeof window !== \"undefined\" && typeof document !== \"undefined\";\nconst isWorker = typeof WorkerGlobalScope !== \"undefined\" && globalThis instanceof WorkerGlobalScope;\nconst isDef = (val) => typeof val !== \"undefined\";\nconst notNullish = (val) => val != null;\nconst assert = (condition, ...infos) => {\n\tif (!condition) console.warn(...infos);\n};\nconst toString = Object.prototype.toString;\nconst isObject = (val) => toString.call(val) === \"[object Object]\";\nconst now = () => Date.now();\nconst timestamp = () => +Date.now();\nconst clamp = (n, min, max) => Math.min(max, Math.max(min, n));\nconst noop = () => {};\nconst rand = (min, max) => {\n\tmin = Math.ceil(min);\n\tmax = Math.floor(max);\n\treturn Math.floor(Math.random() * (max - min + 1)) + min;\n};\nconst hasOwn = (val, key) => Object.prototype.hasOwnProperty.call(val, key);\nconst isIOS = /* @__PURE__ */ getIsIOS();\nfunction getIsIOS() {\n\tvar _window, _window2, _window3;\n\treturn isClient && !!((_window = window) === null || _window === void 0 || (_window = _window.navigator) === null || _window === void 0 ? void 0 : _window.userAgent) && (/iP(?:ad|hone|od)/.test(window.navigator.userAgent) || ((_window2 = window) === null || _window2 === void 0 || (_window2 = _window2.navigator) === null || _window2 === void 0 ? void 0 : _window2.maxTouchPoints) > 2 && /iPad|Macintosh/.test((_window3 = window) === null || _window3 === void 0 ? void 0 : _window3.navigator.userAgent));\n}\n\n//#endregion\n//#region toRef/index.ts\nfunction toRef(...args) {\n\tif (args.length !== 1) return toRef$1(...args);\n\tconst r = args[0];\n\treturn typeof r === \"function\" ? readonly(customRef(() => ({\n\t\tget: r,\n\t\tset: noop\n\t}))) : ref(r);\n}\n\n//#endregion\n//#region utils/filters.ts\n/**\n* @internal\n*/\nfunction createFilterWrapper(filter, fn) {\n\tfunction wrapper(...args) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tPromise.resolve(filter(() => fn.apply(this, args), {\n\t\t\t\tfn,\n\t\t\t\tthisArg: this,\n\t\t\t\targs\n\t\t\t})).then(resolve).catch(reject);\n\t\t});\n\t}\n\treturn wrapper;\n}\nconst bypassFilter = (invoke$1) => {\n\treturn invoke$1();\n};\n/**\n* Create an EventFilter that debounce the events\n*/\nfunction debounceFilter(ms, options = {}) {\n\tlet timer;\n\tlet maxTimer;\n\tlet lastRejector = noop;\n\tconst _clearTimeout = (timer$1) => {\n\t\tclearTimeout(timer$1);\n\t\tlastRejector();\n\t\tlastRejector = noop;\n\t};\n\tlet lastInvoker;\n\tconst filter = (invoke$1) => {\n\t\tconst duration = toValue(ms);\n\t\tconst maxDuration = toValue(options.maxWait);\n\t\tif (timer) _clearTimeout(timer);\n\t\tif (duration <= 0 || maxDuration !== void 0 && maxDuration <= 0) {\n\t\t\tif (maxTimer) {\n\t\t\t\t_clearTimeout(maxTimer);\n\t\t\t\tmaxTimer = void 0;\n\t\t\t}\n\t\t\treturn Promise.resolve(invoke$1());\n\t\t}\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tlastRejector = options.rejectOnCancel ? reject : resolve;\n\t\t\tlastInvoker = invoke$1;\n\t\t\tif (maxDuration && !maxTimer) maxTimer = setTimeout(() => {\n\t\t\t\tif (timer) _clearTimeout(timer);\n\t\t\t\tmaxTimer = void 0;\n\t\t\t\tresolve(lastInvoker());\n\t\t\t}, maxDuration);\n\t\t\ttimer = setTimeout(() => {\n\t\t\t\tif (maxTimer) _clearTimeout(maxTimer);\n\t\t\t\tmaxTimer = void 0;\n\t\t\t\tresolve(invoke$1());\n\t\t\t}, duration);\n\t\t});\n\t};\n\treturn filter;\n}\nfunction throttleFilter(...args) {\n\tlet lastExec = 0;\n\tlet timer;\n\tlet isLeading = true;\n\tlet lastRejector = noop;\n\tlet lastValue;\n\tlet ms;\n\tlet trailing;\n\tlet leading;\n\tlet rejectOnCancel;\n\tif (!isRef(args[0]) && typeof args[0] === \"object\") ({delay: ms, trailing = true, leading = true, rejectOnCancel = false} = args[0]);\n\telse [ms, trailing = true, leading = true, rejectOnCancel = false] = args;\n\tconst clear = () => {\n\t\tif (timer) {\n\t\t\tclearTimeout(timer);\n\t\t\ttimer = void 0;\n\t\t\tlastRejector();\n\t\t\tlastRejector = noop;\n\t\t}\n\t};\n\tconst filter = (_invoke) => {\n\t\tconst duration = toValue(ms);\n\t\tconst elapsed = Date.now() - lastExec;\n\t\tconst invoke$1 = () => {\n\t\t\treturn lastValue = _invoke();\n\t\t};\n\t\tclear();\n\t\tif (duration <= 0) {\n\t\t\tlastExec = Date.now();\n\t\t\treturn invoke$1();\n\t\t}\n\t\tif (elapsed > duration) {\n\t\t\tlastExec = Date.now();\n\t\t\tif (leading || !isLeading) invoke$1();\n\t\t} else if (trailing) lastValue = new Promise((resolve, reject) => {\n\t\t\tlastRejector = rejectOnCancel ? reject : resolve;\n\t\t\ttimer = setTimeout(() => {\n\t\t\t\tlastExec = Date.now();\n\t\t\t\tisLeading = true;\n\t\t\t\tresolve(invoke$1());\n\t\t\t\tclear();\n\t\t\t}, Math.max(0, duration - elapsed));\n\t\t});\n\t\tif (!leading && !timer) timer = setTimeout(() => isLeading = true, duration);\n\t\tisLeading = false;\n\t\treturn lastValue;\n\t};\n\treturn filter;\n}\n/**\n* EventFilter that gives extra controls to pause and resume the filter\n*\n* @param extendFilter Extra filter to apply when the PausableFilter is active, default to none\n* @param options Options to configure the filter\n*/\nfunction pausableFilter(extendFilter = bypassFilter, options = {}) {\n\tconst { initialState = \"active\" } = options;\n\tconst isActive = toRef(initialState === \"active\");\n\tfunction pause() {\n\t\tisActive.value = false;\n\t}\n\tfunction resume() {\n\t\tisActive.value = true;\n\t}\n\tconst eventFilter = (...args) => {\n\t\tif (isActive.value) extendFilter(...args);\n\t};\n\treturn {\n\t\tisActive: readonly(isActive),\n\t\tpause,\n\t\tresume,\n\t\teventFilter\n\t};\n}\n\n//#endregion\n//#region utils/general.ts\nfunction promiseTimeout(ms, throwOnTimeout = false, reason = \"Timeout\") {\n\treturn new Promise((resolve, reject) => {\n\t\tif (throwOnTimeout) setTimeout(() => reject(reason), ms);\n\t\telse setTimeout(resolve, ms);\n\t});\n}\nfunction identity(arg) {\n\treturn arg;\n}\n/**\n* Create singleton promise function\n*\n* @example\n* ```\n* const promise = createSingletonPromise(async () => { ... })\n*\n* await promise()\n* await promise() // all of them will be bind to a single promise instance\n* await promise() // and be resolved together\n* ```\n*/\nfunction createSingletonPromise(fn) {\n\tlet _promise;\n\tfunction wrapper() {\n\t\tif (!_promise) _promise = fn();\n\t\treturn _promise;\n\t}\n\twrapper.reset = async () => {\n\t\tconst _prev = _promise;\n\t\t_promise = void 0;\n\t\tif (_prev) await _prev;\n\t};\n\treturn wrapper;\n}\nfunction invoke(fn) {\n\treturn fn();\n}\nfunction containsProp(obj, ...props) {\n\treturn props.some((k) => k in obj);\n}\nfunction increaseWithUnit(target, delta) {\n\tvar _target$match;\n\tif (typeof target === \"number\") return target + delta;\n\tconst value = ((_target$match = target.match(/^-?\\d+\\.?\\d*/)) === null || _target$match === void 0 ? void 0 : _target$match[0]) || \"\";\n\tconst unit = target.slice(value.length);\n\tconst result = Number.parseFloat(value) + delta;\n\tif (Number.isNaN(result)) return target;\n\treturn result + unit;\n}\n/**\n* Get a px value for SSR use, do not rely on this method outside of SSR as REM unit is assumed at 16px, which might not be the case on the client\n*/\nfunction pxValue(px) {\n\treturn px.endsWith(\"rem\") ? Number.parseFloat(px) * 16 : Number.parseFloat(px);\n}\n/**\n* Create a new subset object by giving keys\n*/\nfunction objectPick(obj, keys, omitUndefined = false) {\n\treturn keys.reduce((n, k) => {\n\t\tif (k in obj) {\n\t\t\tif (!omitUndefined || obj[k] !== void 0) n[k] = obj[k];\n\t\t}\n\t\treturn n;\n\t}, {});\n}\n/**\n* Create a new subset object by omit giving keys\n*/\nfunction objectOmit(obj, keys, omitUndefined = false) {\n\treturn Object.fromEntries(Object.entries(obj).filter(([key, value]) => {\n\t\treturn (!omitUndefined || value !== void 0) && !keys.includes(key);\n\t}));\n}\nfunction objectEntries(obj) {\n\treturn Object.entries(obj);\n}\nfunction toArray(value) {\n\treturn Array.isArray(value) ? value : [value];\n}\n\n//#endregion\n//#region utils/port.ts\nfunction cacheStringFunction(fn) {\n\tconst cache = Object.create(null);\n\treturn ((str) => {\n\t\treturn cache[str] || (cache[str] = fn(str));\n\t});\n}\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, \"-$1\").toLowerCase());\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n\treturn str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\n\n//#endregion\n//#region utils/vue.ts\nfunction getLifeCycleTarget(target) {\n\treturn target || getCurrentInstance();\n}\n\n//#endregion\n//#region createSharedComposable/index.ts\n/**\n* Make a composable function usable with multiple Vue instances.\n*\n* @see https://vueuse.org/createSharedComposable\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createSharedComposable(composable) {\n\tif (!isClient) return composable;\n\tlet subscribers = 0;\n\tlet state;\n\tlet scope;\n\tconst dispose = () => {\n\t\tsubscribers -= 1;\n\t\tif (scope && subscribers <= 0) {\n\t\t\tscope.stop();\n\t\t\tstate = void 0;\n\t\t\tscope = void 0;\n\t\t}\n\t};\n\treturn ((...args) => {\n\t\tsubscribers += 1;\n\t\tif (!scope) {\n\t\t\tscope = effectScope(true);\n\t\t\tstate = scope.run(() => composable(...args));\n\t\t}\n\t\ttryOnScopeDispose(dispose);\n\t\treturn state;\n\t});\n}\n\n//#endregion\n//#region extendRef/index.ts\nfunction extendRef(ref$1, extend, { enumerable = false, unwrap = true } = {}) {\n\tfor (const [key, value] of Object.entries(extend)) {\n\t\tif (key === \"value\") continue;\n\t\tif (isRef(value) && unwrap) Object.defineProperty(ref$1, key, {\n\t\t\tget() {\n\t\t\t\treturn value.value;\n\t\t\t},\n\t\t\tset(v) {\n\t\t\t\tvalue.value = v;\n\t\t\t},\n\t\t\tenumerable\n\t\t});\n\t\telse Object.defineProperty(ref$1, key, {\n\t\t\tvalue,\n\t\t\tenumerable\n\t\t});\n\t}\n\treturn ref$1;\n}\n\n//#endregion\n//#region get/index.ts\nfunction get(obj, key) {\n\tif (key == null) return unref(obj);\n\treturn unref(obj)[key];\n}\n\n//#endregion\n//#region isDefined/index.ts\nfunction isDefined(v) {\n\treturn unref(v) != null;\n}\n\n//#endregion\n//#region makeDestructurable/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction makeDestructurable(obj, arr) {\n\tif (typeof Symbol !== \"undefined\") {\n\t\tconst clone = { ...obj };\n\t\tObject.defineProperty(clone, Symbol.iterator, {\n\t\t\tenumerable: false,\n\t\t\tvalue() {\n\t\t\t\tlet index = 0;\n\t\t\t\treturn { next: () => ({\n\t\t\t\t\tvalue: arr[index++],\n\t\t\t\t\tdone: index > arr.length\n\t\t\t\t}) };\n\t\t\t}\n\t\t});\n\t\treturn clone;\n\t} else return Object.assign([...arr], obj);\n}\n\n//#endregion\n//#region reactify/index.ts\n/**\n* Converts plain function into a reactive function.\n* The converted function accepts refs as it's arguments\n* and returns a ComputedRef, with proper typing.\n*\n* @param fn - Source function\n* @param options - Options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction reactify(fn, options) {\n\tconst unrefFn = (options === null || options === void 0 ? void 0 : options.computedGetter) === false ? unref : toValue;\n\treturn function(...args) {\n\t\treturn computed(() => fn.apply(this, args.map((i) => unrefFn(i))));\n\t};\n}\n/** @deprecated use `reactify` instead */\nconst createReactiveFn = reactify;\n\n//#endregion\n//#region reactifyObject/index.ts\n/**\n* Apply `reactify` to an object\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction reactifyObject(obj, optionsOrKeys = {}) {\n\tlet keys = [];\n\tlet options;\n\tif (Array.isArray(optionsOrKeys)) keys = optionsOrKeys;\n\telse {\n\t\toptions = optionsOrKeys;\n\t\tconst { includeOwnProperties = true } = optionsOrKeys;\n\t\tkeys.push(...Object.keys(obj));\n\t\tif (includeOwnProperties) keys.push(...Object.getOwnPropertyNames(obj));\n\t}\n\treturn Object.fromEntries(keys.map((key) => {\n\t\tconst value = obj[key];\n\t\treturn [key, typeof value === \"function\" ? reactify(value.bind(obj), options) : value];\n\t}));\n}\n\n//#endregion\n//#region toReactive/index.ts\n/**\n* Converts ref to reactive.\n*\n* @see https://vueuse.org/toReactive\n* @param objectRef A ref of object\n*/\nfunction toReactive(objectRef) {\n\tif (!isRef(objectRef)) return reactive(objectRef);\n\treturn reactive(new Proxy({}, {\n\t\tget(_, p, receiver) {\n\t\t\treturn unref(Reflect.get(objectRef.value, p, receiver));\n\t\t},\n\t\tset(_, p, value) {\n\t\t\tif (isRef(objectRef.value[p]) && !isRef(value)) objectRef.value[p].value = value;\n\t\t\telse objectRef.value[p] = value;\n\t\t\treturn true;\n\t\t},\n\t\tdeleteProperty(_, p) {\n\t\t\treturn Reflect.deleteProperty(objectRef.value, p);\n\t\t},\n\t\thas(_, p) {\n\t\t\treturn Reflect.has(objectRef.value, p);\n\t\t},\n\t\townKeys() {\n\t\t\treturn Object.keys(objectRef.value);\n\t\t},\n\t\tgetOwnPropertyDescriptor() {\n\t\t\treturn {\n\t\t\t\tenumerable: true,\n\t\t\t\tconfigurable: true\n\t\t\t};\n\t\t}\n\t}));\n}\n\n//#endregion\n//#region reactiveComputed/index.ts\n/**\n* Computed reactive object.\n*/\nfunction reactiveComputed(fn) {\n\treturn toReactive(computed(fn));\n}\n\n//#endregion\n//#region reactiveOmit/index.ts\n/**\n* Reactively omit fields from a reactive object\n*\n* @see https://vueuse.org/reactiveOmit\n*/\nfunction reactiveOmit(obj, ...keys) {\n\tconst flatKeys = keys.flat();\n\tconst predicate = flatKeys[0];\n\treturn reactiveComputed(() => typeof predicate === \"function\" ? Object.fromEntries(Object.entries(toRefs$1(obj)).filter(([k, v]) => !predicate(toValue(v), k))) : Object.fromEntries(Object.entries(toRefs$1(obj)).filter((e) => !flatKeys.includes(e[0]))));\n}\n\n//#endregion\n//#region reactivePick/index.ts\n/**\n* Reactively pick fields from a reactive object\n*\n* @see https://vueuse.org/reactivePick\n*/\nfunction reactivePick(obj, ...keys) {\n\tconst flatKeys = keys.flat();\n\tconst predicate = flatKeys[0];\n\treturn reactiveComputed(() => typeof predicate === \"function\" ? Object.fromEntries(Object.entries(toRefs$1(obj)).filter(([k, v]) => predicate(toValue(v), k))) : Object.fromEntries(flatKeys.map((k) => [k, toRef(obj, k)])));\n}\n\n//#endregion\n//#region refAutoReset/index.ts\n/**\n* Create a ref which will be reset to the default value after some time.\n*\n* @see https://vueuse.org/refAutoReset\n* @param defaultValue The value which will be set.\n* @param afterMs A zero-or-greater delay in milliseconds.\n*/\nfunction refAutoReset(defaultValue, afterMs = 1e4) {\n\treturn customRef((track, trigger) => {\n\t\tlet value = toValue(defaultValue);\n\t\tlet timer;\n\t\tconst resetAfter = () => setTimeout(() => {\n\t\t\tvalue = toValue(defaultValue);\n\t\t\ttrigger();\n\t\t}, toValue(afterMs));\n\t\ttryOnScopeDispose(() => {\n\t\t\tclearTimeout(timer);\n\t\t});\n\t\treturn {\n\t\t\tget() {\n\t\t\t\ttrack();\n\t\t\t\treturn value;\n\t\t\t},\n\t\t\tset(newValue) {\n\t\t\t\tvalue = newValue;\n\t\t\t\ttrigger();\n\t\t\t\tclearTimeout(timer);\n\t\t\t\ttimer = resetAfter();\n\t\t\t}\n\t\t};\n\t});\n}\n/** @deprecated use `refAutoReset` instead */\nconst autoResetRef = refAutoReset;\n\n//#endregion\n//#region useDebounceFn/index.ts\n/**\n* Debounce execution of a function.\n*\n* @see https://vueuse.org/useDebounceFn\n* @param fn A function to be executed after delay milliseconds debounced.\n* @param ms A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n* @param options Options\n*\n* @return A new, debounce, function.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useDebounceFn(fn, ms = 200, options = {}) {\n\treturn createFilterWrapper(debounceFilter(ms, options), fn);\n}\n\n//#endregion\n//#region refDebounced/index.ts\n/**\n* Debounce updates of a ref.\n*\n* @return A new debounced ref.\n*/\nfunction refDebounced(value, ms = 200, options = {}) {\n\tconst debounced = ref(toValue(value));\n\tconst updater = useDebounceFn(() => {\n\t\tdebounced.value = value.value;\n\t}, ms, options);\n\twatch(value, () => updater());\n\treturn shallowReadonly(debounced);\n}\n/** @deprecated use `refDebounced` instead */\nconst debouncedRef = refDebounced;\n/** @deprecated use `refDebounced` instead */\nconst useDebounce = refDebounced;\n\n//#endregion\n//#region refDefault/index.ts\n/**\n* Apply default value to a ref.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction refDefault(source, defaultValue) {\n\treturn computed({\n\t\tget() {\n\t\t\tvar _source$value;\n\t\t\treturn (_source$value = source.value) !== null && _source$value !== void 0 ? _source$value : defaultValue;\n\t\t},\n\t\tset(value) {\n\t\t\tsource.value = value;\n\t\t}\n\t});\n}\n\n//#endregion\n//#region refManualReset/index.ts\n/**\n* Create a ref with manual reset functionality.\n*\n* @see https://vueuse.org/refManualReset\n* @param defaultValue The value which will be set.\n*/\nfunction refManualReset(defaultValue) {\n\tlet value = toValue(defaultValue);\n\tlet trigger;\n\tconst reset = () => {\n\t\tvalue = toValue(defaultValue);\n\t\ttrigger();\n\t};\n\tconst refValue = customRef((track, _trigger) => {\n\t\ttrigger = _trigger;\n\t\treturn {\n\t\t\tget() {\n\t\t\t\ttrack();\n\t\t\t\treturn value;\n\t\t\t},\n\t\t\tset(newValue) {\n\t\t\t\tvalue = newValue;\n\t\t\t\ttrigger();\n\t\t\t}\n\t\t};\n\t});\n\trefValue.reset = reset;\n\treturn refValue;\n}\n\n//#endregion\n//#region useThrottleFn/index.ts\n/**\n* Throttle execution of a function. Especially useful for rate limiting\n* execution of handlers on events like resize and scroll.\n*\n* @param fn A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n* to `callback` when the throttled-function is executed.\n* @param ms A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n* (default value: 200)\n*\n* @param [trailing] if true, call fn again after the time is up (default value: false)\n*\n* @param [leading] if true, call fn on the leading edge of the ms timeout (default value: true)\n*\n* @param [rejectOnCancel] if true, reject the last call if it's been cancel (default value: false)\n*\n* @return A new, throttled, function.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useThrottleFn(fn, ms = 200, trailing = false, leading = true, rejectOnCancel = false) {\n\treturn createFilterWrapper(throttleFilter(ms, trailing, leading, rejectOnCancel), fn);\n}\n\n//#endregion\n//#region refThrottled/index.ts\n/**\n* Throttle execution of a function. Especially useful for rate limiting\n* execution of handlers on events like resize and scroll.\n*\n* @param value Ref value to be watched with throttle effect\n* @param delay A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n* @param trailing if true, update the value again after the delay time is up\n* @param leading if true, update the value on the leading edge of the ms timeout\n*/\nfunction refThrottled(value, delay = 200, trailing = true, leading = true) {\n\tif (delay <= 0) return value;\n\tconst throttled = ref(toValue(value));\n\tconst updater = useThrottleFn(() => {\n\t\tthrottled.value = value.value;\n\t}, delay, trailing, leading);\n\twatch(value, () => updater());\n\treturn throttled;\n}\n/** @deprecated use `refThrottled` instead */\nconst throttledRef = refThrottled;\n/** @deprecated use `refThrottled` instead */\nconst useThrottle = refThrottled;\n\n//#endregion\n//#region refWithControl/index.ts\n/**\n* Fine-grained controls over ref and its reactivity.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction refWithControl(initial, options = {}) {\n\tlet source = initial;\n\tlet track;\n\tlet trigger;\n\tconst ref$1 = customRef((_track, _trigger) => {\n\t\ttrack = _track;\n\t\ttrigger = _trigger;\n\t\treturn {\n\t\t\tget() {\n\t\t\t\treturn get$1();\n\t\t\t},\n\t\t\tset(v) {\n\t\t\t\tset$1(v);\n\t\t\t}\n\t\t};\n\t});\n\tfunction get$1(tracking = true) {\n\t\tif (tracking) track();\n\t\treturn source;\n\t}\n\tfunction set$1(value, triggering = true) {\n\t\tvar _options$onBeforeChan, _options$onChanged;\n\t\tif (value === source) return;\n\t\tconst old = source;\n\t\tif (((_options$onBeforeChan = options.onBeforeChange) === null || _options$onBeforeChan === void 0 ? void 0 : _options$onBeforeChan.call(options, value, old)) === false) return;\n\t\tsource = value;\n\t\t(_options$onChanged = options.onChanged) === null || _options$onChanged === void 0 || _options$onChanged.call(options, value, old);\n\t\tif (triggering) trigger();\n\t}\n\t/**\n\t* Get the value without tracked in the reactivity system\n\t*/\n\tconst untrackedGet = () => get$1(false);\n\t/**\n\t* Set the value without triggering the reactivity system\n\t*/\n\tconst silentSet = (v) => set$1(v, false);\n\t/**\n\t* Get the value without tracked in the reactivity system.\n\t*\n\t* Alias for `untrackedGet()`\n\t*/\n\tconst peek = () => get$1(false);\n\t/**\n\t* Set the value without triggering the reactivity system\n\t*\n\t* Alias for `silentSet(v)`\n\t*/\n\tconst lay = (v) => set$1(v, false);\n\treturn extendRef(ref$1, {\n\t\tget: get$1,\n\t\tset: set$1,\n\t\tuntrackedGet,\n\t\tsilentSet,\n\t\tpeek,\n\t\tlay\n\t}, { enumerable: true });\n}\n/** @deprecated use `refWithControl` instead */\nconst controlledRef = refWithControl;\n\n//#endregion\n//#region set/index.ts\n/**\n* Shorthand for `ref.value = x`\n*/\nfunction set(...args) {\n\tif (args.length === 2) {\n\t\tconst [ref$1, value] = args;\n\t\tref$1.value = value;\n\t}\n\tif (args.length === 3) {\n\t\tconst [target, key, value] = args;\n\t\ttarget[key] = value;\n\t}\n}\n\n//#endregion\n//#region watchWithFilter/index.ts\nfunction watchWithFilter(source, cb, options = {}) {\n\tconst { eventFilter = bypassFilter,...watchOptions } = options;\n\treturn watch(source, createFilterWrapper(eventFilter, cb), watchOptions);\n}\n\n//#endregion\n//#region watchPausable/index.ts\nfunction watchPausable(source, cb, options = {}) {\n\tconst { eventFilter: filter, initialState = \"active\",...watchOptions } = options;\n\tconst { eventFilter, pause, resume, isActive } = pausableFilter(filter, { initialState });\n\treturn {\n\t\tstop: watchWithFilter(source, cb, {\n\t\t\t...watchOptions,\n\t\t\teventFilter\n\t\t}),\n\t\tpause,\n\t\tresume,\n\t\tisActive\n\t};\n}\n/** @deprecated use `watchPausable` instead */\nconst pausableWatch = watchPausable;\n\n//#endregion\n//#region syncRef/index.ts\n/**\n* Two-way refs synchronization.\n* From the set theory perspective to restrict the option's type\n* Check in the following order:\n* 1. L = R\n* 2. L ∩ R ≠ ∅\n* 3. L ⊆ R\n* 4. L ∩ R = ∅\n*/\nfunction syncRef(left, right, ...[options]) {\n\tconst { flush = \"sync\", deep = false, immediate = true, direction = \"both\", transform = {} } = options || {};\n\tconst watchers = [];\n\tconst transformLTR = \"ltr\" in transform && transform.ltr || ((v) => v);\n\tconst transformRTL = \"rtl\" in transform && transform.rtl || ((v) => v);\n\tif (direction === \"both\" || direction === \"ltr\") watchers.push(pausableWatch(left, (newValue) => {\n\t\twatchers.forEach((w) => w.pause());\n\t\tright.value = transformLTR(newValue);\n\t\twatchers.forEach((w) => w.resume());\n\t}, {\n\t\tflush,\n\t\tdeep,\n\t\timmediate\n\t}));\n\tif (direction === \"both\" || direction === \"rtl\") watchers.push(pausableWatch(right, (newValue) => {\n\t\twatchers.forEach((w) => w.pause());\n\t\tleft.value = transformRTL(newValue);\n\t\twatchers.forEach((w) => w.resume());\n\t}, {\n\t\tflush,\n\t\tdeep,\n\t\timmediate\n\t}));\n\tconst stop = () => {\n\t\twatchers.forEach((w) => w.stop());\n\t};\n\treturn stop;\n}\n\n//#endregion\n//#region syncRefs/index.ts\n/**\n* Keep target ref(s) in sync with the source ref\n*\n* @param source source ref\n* @param targets\n*/\nfunction syncRefs(source, targets, options = {}) {\n\tconst { flush = \"sync\", deep = false, immediate = true } = options;\n\tconst targetsArray = toArray(targets);\n\treturn watch(source, (newValue) => targetsArray.forEach((target) => target.value = newValue), {\n\t\tflush,\n\t\tdeep,\n\t\timmediate\n\t});\n}\n\n//#endregion\n//#region toRefs/index.ts\n/**\n* Extended `toRefs` that also accepts refs of an object.\n*\n* @see https://vueuse.org/toRefs\n* @param objectRef A ref or normal object or array.\n* @param options Options\n*/\nfunction toRefs(objectRef, options = {}) {\n\tif (!isRef(objectRef)) return toRefs$1(objectRef);\n\tconst result = Array.isArray(objectRef.value) ? Array.from({ length: objectRef.value.length }) : {};\n\tfor (const key in objectRef.value) result[key] = customRef(() => ({\n\t\tget() {\n\t\t\treturn objectRef.value[key];\n\t\t},\n\t\tset(v) {\n\t\t\tvar _toValue;\n\t\t\tif ((_toValue = toValue(options.replaceRef)) !== null && _toValue !== void 0 ? _toValue : true) if (Array.isArray(objectRef.value)) {\n\t\t\t\tconst copy = [...objectRef.value];\n\t\t\t\tcopy[key] = v;\n\t\t\t\tobjectRef.value = copy;\n\t\t\t} else {\n\t\t\t\tconst newObject = {\n\t\t\t\t\t...objectRef.value,\n\t\t\t\t\t[key]: v\n\t\t\t\t};\n\t\t\t\tObject.setPrototypeOf(newObject, Object.getPrototypeOf(objectRef.value));\n\t\t\t\tobjectRef.value = newObject;\n\t\t\t}\n\t\t\telse objectRef.value[key] = v;\n\t\t}\n\t}));\n\treturn result;\n}\n\n//#endregion\n//#region tryOnBeforeMount/index.ts\n/**\n* Call onBeforeMount() if it's inside a component lifecycle, if not, just call the function\n*\n* @param fn\n* @param sync if set to false, it will run in the nextTick() of Vue\n* @param target\n*/\nfunction tryOnBeforeMount(fn, sync = true, target) {\n\tif (getLifeCycleTarget(target)) onBeforeMount(fn, target);\n\telse if (sync) fn();\n\telse nextTick(fn);\n}\n\n//#endregion\n//#region tryOnBeforeUnmount/index.ts\n/**\n* Call onBeforeUnmount() if it's inside a component lifecycle, if not, do nothing\n*\n* @param fn\n* @param target\n*/\nfunction tryOnBeforeUnmount(fn, target) {\n\tif (getLifeCycleTarget(target)) onBeforeUnmount(fn, target);\n}\n\n//#endregion\n//#region tryOnMounted/index.ts\n/**\n* Call onMounted() if it's inside a component lifecycle, if not, just call the function\n*\n* @param fn\n* @param sync if set to false, it will run in the nextTick() of Vue\n* @param target\n*/\nfunction tryOnMounted(fn, sync = true, target) {\n\tif (getLifeCycleTarget(target)) onMounted(fn, target);\n\telse if (sync) fn();\n\telse nextTick(fn);\n}\n\n//#endregion\n//#region tryOnUnmounted/index.ts\n/**\n* Call onUnmounted() if it's inside a component lifecycle, if not, do nothing\n*\n* @param fn\n* @param target\n*/\nfunction tryOnUnmounted(fn, target) {\n\tif (getLifeCycleTarget(target)) onUnmounted(fn, target);\n}\n\n//#endregion\n//#region until/index.ts\nfunction createUntil(r, isNot = false) {\n\tfunction toMatch(condition, { flush = \"sync\", deep = false, timeout, throwOnTimeout } = {}) {\n\t\tlet stop = null;\n\t\tconst promises = [new Promise((resolve) => {\n\t\t\tstop = watch(r, (v) => {\n\t\t\t\tif (condition(v) !== isNot) {\n\t\t\t\t\tif (stop) stop();\n\t\t\t\t\telse nextTick(() => stop === null || stop === void 0 ? void 0 : stop());\n\t\t\t\t\tresolve(v);\n\t\t\t\t}\n\t\t\t}, {\n\t\t\t\tflush,\n\t\t\t\tdeep,\n\t\t\t\timmediate: true\n\t\t\t});\n\t\t})];\n\t\tif (timeout != null) promises.push(promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => stop === null || stop === void 0 ? void 0 : stop()));\n\t\treturn Promise.race(promises);\n\t}\n\tfunction toBe(value, options) {\n\t\tif (!isRef(value)) return toMatch((v) => v === value, options);\n\t\tconst { flush = \"sync\", deep = false, timeout, throwOnTimeout } = options !== null && options !== void 0 ? options : {};\n\t\tlet stop = null;\n\t\tconst promises = [new Promise((resolve) => {\n\t\t\tstop = watch([r, value], ([v1, v2]) => {\n\t\t\t\tif (isNot !== (v1 === v2)) {\n\t\t\t\t\tif (stop) stop();\n\t\t\t\t\telse nextTick(() => stop === null || stop === void 0 ? void 0 : stop());\n\t\t\t\t\tresolve(v1);\n\t\t\t\t}\n\t\t\t}, {\n\t\t\t\tflush,\n\t\t\t\tdeep,\n\t\t\t\timmediate: true\n\t\t\t});\n\t\t})];\n\t\tif (timeout != null) promises.push(promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => {\n\t\t\tstop === null || stop === void 0 || stop();\n\t\t\treturn toValue(r);\n\t\t}));\n\t\treturn Promise.race(promises);\n\t}\n\tfunction toBeTruthy(options) {\n\t\treturn toMatch((v) => Boolean(v), options);\n\t}\n\tfunction toBeNull(options) {\n\t\treturn toBe(null, options);\n\t}\n\tfunction toBeUndefined(options) {\n\t\treturn toBe(void 0, options);\n\t}\n\tfunction toBeNaN(options) {\n\t\treturn toMatch(Number.isNaN, options);\n\t}\n\tfunction toContains(value, options) {\n\t\treturn toMatch((v) => {\n\t\t\tconst array = Array.from(v);\n\t\t\treturn array.includes(value) || array.includes(toValue(value));\n\t\t}, options);\n\t}\n\tfunction changed(options) {\n\t\treturn changedTimes(1, options);\n\t}\n\tfunction changedTimes(n = 1, options) {\n\t\tlet count = -1;\n\t\treturn toMatch(() => {\n\t\t\tcount += 1;\n\t\t\treturn count >= n;\n\t\t}, options);\n\t}\n\tif (Array.isArray(toValue(r))) return {\n\t\ttoMatch,\n\t\ttoContains,\n\t\tchanged,\n\t\tchangedTimes,\n\t\tget not() {\n\t\t\treturn createUntil(r, !isNot);\n\t\t}\n\t};\n\telse return {\n\t\ttoMatch,\n\t\ttoBe,\n\t\ttoBeTruthy,\n\t\ttoBeNull,\n\t\ttoBeNaN,\n\t\ttoBeUndefined,\n\t\tchanged,\n\t\tchangedTimes,\n\t\tget not() {\n\t\t\treturn createUntil(r, !isNot);\n\t\t}\n\t};\n}\nfunction until(r) {\n\treturn createUntil(r);\n}\n\n//#endregion\n//#region useArrayDifference/index.ts\nfunction defaultComparator(value, othVal) {\n\treturn value === othVal;\n}\n/**\n* Reactive get array difference of two array\n* @see https://vueuse.org/useArrayDifference\n* @returns - the difference of two array\n* @param args\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayDifference(...args) {\n\tvar _args$, _args$2;\n\tconst list = args[0];\n\tconst values = args[1];\n\tlet compareFn = (_args$ = args[2]) !== null && _args$ !== void 0 ? _args$ : defaultComparator;\n\tconst { symmetric = false } = (_args$2 = args[3]) !== null && _args$2 !== void 0 ? _args$2 : {};\n\tif (typeof compareFn === \"string\") {\n\t\tconst key = compareFn;\n\t\tcompareFn = (value, othVal) => value[key] === othVal[key];\n\t}\n\tconst diff1 = computed(() => toValue(list).filter((x) => toValue(values).findIndex((y) => compareFn(x, y)) === -1));\n\tif (symmetric) {\n\t\tconst diff2 = computed(() => toValue(values).filter((x) => toValue(list).findIndex((y) => compareFn(x, y)) === -1));\n\t\treturn computed(() => symmetric ? [...toValue(diff1), ...toValue(diff2)] : toValue(diff1));\n\t} else return diff1;\n}\n\n//#endregion\n//#region useArrayEvery/index.ts\n/**\n* Reactive `Array.every`\n*\n* @see https://vueuse.org/useArrayEvery\n* @param list - the array was called upon.\n* @param fn - a function to test each element.\n*\n* @returns **true** if the `fn` function returns a **truthy** value for every element from the array. Otherwise, **false**.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayEvery(list, fn) {\n\treturn computed(() => toValue(list).every((element, index, array) => fn(toValue(element), index, array)));\n}\n\n//#endregion\n//#region useArrayFilter/index.ts\n/**\n* Reactive `Array.filter`\n*\n* @see https://vueuse.org/useArrayFilter\n* @param list - the array was called upon.\n* @param fn - a function that is called for every element of the given `list`. Each time `fn` executes, the returned value is added to the new array.\n*\n* @returns a shallow copy of a portion of the given array, filtered down to just the elements from the given array that pass the test implemented by the provided function. If no elements pass the test, an empty array will be returned.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayFilter(list, fn) {\n\treturn computed(() => toValue(list).map((i) => toValue(i)).filter(fn));\n}\n\n//#endregion\n//#region useArrayFind/index.ts\n/**\n* Reactive `Array.find`\n*\n* @see https://vueuse.org/useArrayFind\n* @param list - the array was called upon.\n* @param fn - a function to test each element.\n*\n* @returns the first element in the array that satisfies the provided testing function. Otherwise, undefined is returned.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayFind(list, fn) {\n\treturn computed(() => toValue(toValue(list).find((element, index, array) => fn(toValue(element), index, array))));\n}\n\n//#endregion\n//#region useArrayFindIndex/index.ts\n/**\n* Reactive `Array.findIndex`\n*\n* @see https://vueuse.org/useArrayFindIndex\n* @param list - the array was called upon.\n* @param fn - a function to test each element.\n*\n* @returns the index of the first element in the array that passes the test. Otherwise, \"-1\".\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayFindIndex(list, fn) {\n\treturn computed(() => toValue(list).findIndex((element, index, array) => fn(toValue(element), index, array)));\n}\n\n//#endregion\n//#region useArrayFindLast/index.ts\nfunction findLast(arr, cb) {\n\tlet index = arr.length;\n\twhile (index-- > 0) if (cb(arr[index], index, arr)) return arr[index];\n}\n/**\n* Reactive `Array.findLast`\n*\n* @see https://vueuse.org/useArrayFindLast\n* @param list - the array was called upon.\n* @param fn - a function to test each element.\n*\n* @returns the last element in the array that satisfies the provided testing function. Otherwise, undefined is returned.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayFindLast(list, fn) {\n\treturn computed(() => toValue(!Array.prototype.findLast ? findLast(toValue(list), (element, index, array) => fn(toValue(element), index, array)) : toValue(list).findLast((element, index, array) => fn(toValue(element), index, array))));\n}\n\n//#endregion\n//#region useArrayIncludes/index.ts\nfunction isArrayIncludesOptions(obj) {\n\treturn isObject(obj) && containsProp(obj, \"formIndex\", \"comparator\");\n}\n/**\n* Reactive `Array.includes`\n*\n* @see https://vueuse.org/useArrayIncludes\n*\n* @returns true if the `value` is found in the array. Otherwise, false.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayIncludes(...args) {\n\tvar _comparator;\n\tconst list = args[0];\n\tconst value = args[1];\n\tlet comparator = args[2];\n\tlet formIndex = 0;\n\tif (isArrayIncludesOptions(comparator)) {\n\t\tvar _comparator$fromIndex;\n\t\tformIndex = (_comparator$fromIndex = comparator.fromIndex) !== null && _comparator$fromIndex !== void 0 ? _comparator$fromIndex : 0;\n\t\tcomparator = comparator.comparator;\n\t}\n\tif (typeof comparator === \"string\") {\n\t\tconst key = comparator;\n\t\tcomparator = (element, value$1) => element[key] === toValue(value$1);\n\t}\n\tcomparator = (_comparator = comparator) !== null && _comparator !== void 0 ? _comparator : ((element, value$1) => element === toValue(value$1));\n\treturn computed(() => toValue(list).slice(formIndex).some((element, index, array) => comparator(toValue(element), toValue(value), index, toValue(array))));\n}\n\n//#endregion\n//#region useArrayJoin/index.ts\n/**\n* Reactive `Array.join`\n*\n* @see https://vueuse.org/useArrayJoin\n* @param list - the array was called upon.\n* @param separator - a string to separate each pair of adjacent elements of the array. If omitted, the array elements are separated with a comma (\",\").\n*\n* @returns a string with all array elements joined. If arr.length is 0, the empty string is returned.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayJoin(list, separator) {\n\treturn computed(() => toValue(list).map((i) => toValue(i)).join(toValue(separator)));\n}\n\n//#endregion\n//#region useArrayMap/index.ts\n/**\n* Reactive `Array.map`\n*\n* @see https://vueuse.org/useArrayMap\n* @param list - the array was called upon.\n* @param fn - a function that is called for every element of the given `list`. Each time `fn` executes, the returned value is added to the new array.\n*\n* @returns a new array with each element being the result of the callback function.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayMap(list, fn) {\n\treturn computed(() => toValue(list).map((i) => toValue(i)).map(fn));\n}\n\n//#endregion\n//#region useArrayReduce/index.ts\n/**\n* Reactive `Array.reduce`\n*\n* @see https://vueuse.org/useArrayReduce\n* @param list - the array was called upon.\n* @param reducer - a \"reducer\" function.\n* @param args\n*\n* @returns the value that results from running the \"reducer\" callback function to completion over the entire array.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayReduce(list, reducer, ...args) {\n\tconst reduceCallback = (sum, value, index) => reducer(toValue(sum), toValue(value), index);\n\treturn computed(() => {\n\t\tconst resolved = toValue(list);\n\t\treturn args.length ? resolved.reduce(reduceCallback, typeof args[0] === \"function\" ? toValue(args[0]()) : toValue(args[0])) : resolved.reduce(reduceCallback);\n\t});\n}\n\n//#endregion\n//#region useArraySome/index.ts\n/**\n* Reactive `Array.some`\n*\n* @see https://vueuse.org/useArraySome\n* @param list - the array was called upon.\n* @param fn - a function to test each element.\n*\n* @returns **true** if the `fn` function returns a **truthy** value for any element from the array. Otherwise, **false**.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArraySome(list, fn) {\n\treturn computed(() => toValue(list).some((element, index, array) => fn(toValue(element), index, array)));\n}\n\n//#endregion\n//#region useArrayUnique/index.ts\nfunction uniq(array) {\n\treturn Array.from(new Set(array));\n}\nfunction uniqueElementsBy(array, fn) {\n\treturn array.reduce((acc, v) => {\n\t\tif (!acc.some((x) => fn(v, x, array))) acc.push(v);\n\t\treturn acc;\n\t}, []);\n}\n/**\n* reactive unique array\n* @see https://vueuse.org/useArrayUnique\n* @param list - the array was called upon.\n* @param compareFn\n* @returns A computed ref that returns a unique array of items.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayUnique(list, compareFn) {\n\treturn computed(() => {\n\t\tconst resolvedList = toValue(list).map((element) => toValue(element));\n\t\treturn compareFn ? uniqueElementsBy(resolvedList, compareFn) : uniq(resolvedList);\n\t});\n}\n\n//#endregion\n//#region useCounter/index.ts\n/**\n* Basic counter with utility functions.\n*\n* @see https://vueuse.org/useCounter\n* @param [initialValue]\n* @param options\n*/\nfunction useCounter(initialValue = 0, options = {}) {\n\tlet _initialValue = unref(initialValue);\n\tconst count = shallowRef(initialValue);\n\tconst { max = Number.POSITIVE_INFINITY, min = Number.NEGATIVE_INFINITY } = options;\n\tconst inc = (delta = 1) => count.value = Math.max(Math.min(max, count.value + delta), min);\n\tconst dec = (delta = 1) => count.value = Math.min(Math.max(min, count.value - delta), max);\n\tconst get$1 = () => count.value;\n\tconst set$1 = (val) => count.value = Math.max(min, Math.min(max, val));\n\tconst reset = (val = _initialValue) => {\n\t\t_initialValue = val;\n\t\treturn set$1(val);\n\t};\n\treturn {\n\t\tcount: shallowReadonly(count),\n\t\tinc,\n\t\tdec,\n\t\tget: get$1,\n\t\tset: set$1,\n\t\treset\n\t};\n}\n\n//#endregion\n//#region useDateFormat/index.ts\nconst REGEX_PARSE = /^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[T\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/i;\nconst REGEX_FORMAT = /[YMDHhms]o|\\[([^\\]]+)\\]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a{1,2}|A{1,2}|m{1,2}|s{1,2}|Z{1,2}|z{1,4}|SSS/g;\nfunction defaultMeridiem(hours, minutes, isLowercase, hasPeriod) {\n\tlet m = hours < 12 ? \"AM\" : \"PM\";\n\tif (hasPeriod) m = m.split(\"\").reduce((acc, curr) => acc += `${curr}.`, \"\");\n\treturn isLowercase ? m.toLowerCase() : m;\n}\nfunction formatOrdinal(num) {\n\tconst suffixes = [\n\t\t\"th\",\n\t\t\"st\",\n\t\t\"nd\",\n\t\t\"rd\"\n\t];\n\tconst v = num % 100;\n\treturn num + (suffixes[(v - 20) % 10] || suffixes[v] || suffixes[0]);\n}\nfunction formatDate(date, formatStr, options = {}) {\n\tvar _options$customMeridi;\n\tconst years = date.getFullYear();\n\tconst month = date.getMonth();\n\tconst days = date.getDate();\n\tconst hours = date.getHours();\n\tconst minutes = date.getMinutes();\n\tconst seconds = date.getSeconds();\n\tconst milliseconds = date.getMilliseconds();\n\tconst day = date.getDay();\n\tconst meridiem = (_options$customMeridi = options.customMeridiem) !== null && _options$customMeridi !== void 0 ? _options$customMeridi : defaultMeridiem;\n\tconst stripTimeZone = (dateString) => {\n\t\tvar _dateString$split$;\n\t\treturn (_dateString$split$ = dateString.split(\" \")[1]) !== null && _dateString$split$ !== void 0 ? _dateString$split$ : \"\";\n\t};\n\tconst matches = {\n\t\tYo: () => formatOrdinal(years),\n\t\tYY: () => String(years).slice(-2),\n\t\tYYYY: () => years,\n\t\tM: () => month + 1,\n\t\tMo: () => formatOrdinal(month + 1),\n\t\tMM: () => `${month + 1}`.padStart(2, \"0\"),\n\t\tMMM: () => date.toLocaleDateString(toValue(options.locales), { month: \"short\" }),\n\t\tMMMM: () => date.toLocaleDateString(toValue(options.locales), { month: \"long\" }),\n\t\tD: () => String(days),\n\t\tDo: () => formatOrdinal(days),\n\t\tDD: () => `${days}`.padStart(2, \"0\"),\n\t\tH: () => String(hours),\n\t\tHo: () => formatOrdinal(hours),\n\t\tHH: () => `${hours}`.padStart(2, \"0\"),\n\t\th: () => `${hours % 12 || 12}`.padStart(1, \"0\"),\n\t\tho: () => formatOrdinal(hours % 12 || 12),\n\t\thh: () => `${hours % 12 || 12}`.padStart(2, \"0\"),\n\t\tm: () => String(minutes),\n\t\tmo: () => formatOrdinal(minutes),\n\t\tmm: () => `${minutes}`.padStart(2, \"0\"),\n\t\ts: () => String(seconds),\n\t\tso: () => formatOrdinal(seconds),\n\t\tss: () => `${seconds}`.padStart(2, \"0\"),\n\t\tSSS: () => `${milliseconds}`.padStart(3, \"0\"),\n\t\td: () => day,\n\t\tdd: () => date.toLocaleDateString(toValue(options.locales), { weekday: \"narrow\" }),\n\t\tddd: () => date.toLocaleDateString(toValue(options.locales), { weekday: \"short\" }),\n\t\tdddd: () => date.toLocaleDateString(toValue(options.locales), { weekday: \"long\" }),\n\t\tA: () => meridiem(hours, minutes),\n\t\tAA: () => meridiem(hours, minutes, false, true),\n\t\ta: () => meridiem(hours, minutes, true),\n\t\taa: () => meridiem(hours, minutes, true, true),\n\t\tz: () => stripTimeZone(date.toLocaleDateString(toValue(options.locales), { timeZoneName: \"shortOffset\" })),\n\t\tzz: () => stripTimeZone(date.toLocaleDateString(toValue(options.locales), { timeZoneName: \"shortOffset\" })),\n\t\tzzz: () => stripTimeZone(date.toLocaleDateString(toValue(options.locales), { timeZoneName: \"shortOffset\" })),\n\t\tzzzz: () => stripTimeZone(date.toLocaleDateString(toValue(options.locales), { timeZoneName: \"longOffset\" }))\n\t};\n\treturn formatStr.replace(REGEX_FORMAT, (match, $1) => {\n\t\tvar _ref, _matches$match;\n\t\treturn (_ref = $1 !== null && $1 !== void 0 ? $1 : (_matches$match = matches[match]) === null || _matches$match === void 0 ? void 0 : _matches$match.call(matches)) !== null && _ref !== void 0 ? _ref : match;\n\t});\n}\nfunction normalizeDate(date) {\n\tif (date === null) return /* @__PURE__ */ new Date(NaN);\n\tif (date === void 0) return /* @__PURE__ */ new Date();\n\tif (date instanceof Date) return new Date(date);\n\tif (typeof date === \"string\" && !/Z$/i.test(date)) {\n\t\tconst d = date.match(REGEX_PARSE);\n\t\tif (d) {\n\t\t\tconst m = d[2] - 1 || 0;\n\t\t\tconst ms = (d[7] || \"0\").substring(0, 3);\n\t\t\treturn new Date(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms);\n\t\t}\n\t}\n\treturn new Date(date);\n}\n/**\n* Get the formatted date according to the string of tokens passed in.\n*\n* @see https://vueuse.org/useDateFormat\n* @param date - The date to format, can either be a `Date` object, a timestamp, or a string\n* @param formatStr - The combination of tokens to format the date\n* @param options - UseDateFormatOptions\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useDateFormat(date, formatStr = \"HH:mm:ss\", options = {}) {\n\treturn computed(() => formatDate(normalizeDate(toValue(date)), toValue(formatStr), options));\n}\n\n//#endregion\n//#region useIntervalFn/index.ts\n/**\n* Wrapper for `setInterval` with controls\n*\n* @see https://vueuse.org/useIntervalFn\n* @param cb\n* @param interval\n* @param options\n*/\nfunction useIntervalFn(cb, interval = 1e3, options = {}) {\n\tconst { immediate = true, immediateCallback = false } = options;\n\tlet timer = null;\n\tconst isActive = shallowRef(false);\n\tfunction clean() {\n\t\tif (timer) {\n\t\t\tclearInterval(timer);\n\t\t\ttimer = null;\n\t\t}\n\t}\n\tfunction pause() {\n\t\tisActive.value = false;\n\t\tclean();\n\t}\n\tfunction resume() {\n\t\tconst intervalValue = toValue(interval);\n\t\tif (intervalValue <= 0) return;\n\t\tisActive.value = true;\n\t\tif (immediateCallback) cb();\n\t\tclean();\n\t\tif (isActive.value) timer = setInterval(cb, intervalValue);\n\t}\n\tif (immediate && isClient) resume();\n\tif (isRef(interval) || typeof interval === \"function\") tryOnScopeDispose(watch(interval, () => {\n\t\tif (isActive.value && isClient) resume();\n\t}));\n\ttryOnScopeDispose(pause);\n\treturn {\n\t\tisActive: shallowReadonly(isActive),\n\t\tpause,\n\t\tresume\n\t};\n}\n\n//#endregion\n//#region useInterval/index.ts\nfunction useInterval(interval = 1e3, options = {}) {\n\tconst { controls: exposeControls = false, immediate = true, callback } = options;\n\tconst counter = shallowRef(0);\n\tconst update = () => counter.value += 1;\n\tconst reset = () => {\n\t\tcounter.value = 0;\n\t};\n\tconst controls = useIntervalFn(callback ? () => {\n\t\tupdate();\n\t\tcallback(counter.value);\n\t} : update, interval, { immediate });\n\tif (exposeControls) return {\n\t\tcounter: shallowReadonly(counter),\n\t\treset,\n\t\t...controls\n\t};\n\telse return shallowReadonly(counter);\n}\n\n//#endregion\n//#region useLastChanged/index.ts\nfunction useLastChanged(source, options = {}) {\n\tvar _options$initialValue;\n\tconst ms = shallowRef((_options$initialValue = options.initialValue) !== null && _options$initialValue !== void 0 ? _options$initialValue : null);\n\twatch(source, () => ms.value = timestamp(), options);\n\treturn shallowReadonly(ms);\n}\n\n//#endregion\n//#region useTimeoutFn/index.ts\n/**\n* Wrapper for `setTimeout` with controls.\n*\n* @param cb\n* @param interval\n* @param options\n*/\nfunction useTimeoutFn(cb, interval, options = {}) {\n\tconst { immediate = true, immediateCallback = false } = options;\n\tconst isPending = shallowRef(false);\n\tlet timer;\n\tfunction clear() {\n\t\tif (timer) {\n\t\t\tclearTimeout(timer);\n\t\t\ttimer = void 0;\n\t\t}\n\t}\n\tfunction stop() {\n\t\tisPending.value = false;\n\t\tclear();\n\t}\n\tfunction start(...args) {\n\t\tif (immediateCallback) cb();\n\t\tclear();\n\t\tisPending.value = true;\n\t\ttimer = setTimeout(() => {\n\t\t\tisPending.value = false;\n\t\t\ttimer = void 0;\n\t\t\tcb(...args);\n\t\t}, toValue(interval));\n\t}\n\tif (immediate) {\n\t\tisPending.value = true;\n\t\tif (isClient) start();\n\t}\n\ttryOnScopeDispose(stop);\n\treturn {\n\t\tisPending: shallowReadonly(isPending),\n\t\tstart,\n\t\tstop\n\t};\n}\n\n//#endregion\n//#region useTimeout/index.ts\nfunction useTimeout(interval = 1e3, options = {}) {\n\tconst { controls: exposeControls = false, callback } = options;\n\tconst controls = useTimeoutFn(callback !== null && callback !== void 0 ? callback : noop, interval, options);\n\tconst ready = computed(() => !controls.isPending.value);\n\tif (exposeControls) return {\n\t\tready,\n\t\t...controls\n\t};\n\telse return ready;\n}\n\n//#endregion\n//#region useToNumber/index.ts\n/**\n* Reactively convert a string ref to number.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useToNumber(value, options = {}) {\n\tconst { method = \"parseFloat\", radix, nanToZero } = options;\n\treturn computed(() => {\n\t\tlet resolved = toValue(value);\n\t\tif (typeof method === \"function\") resolved = method(resolved);\n\t\telse if (typeof resolved === \"string\") resolved = Number[method](resolved, radix);\n\t\tif (nanToZero && Number.isNaN(resolved)) resolved = 0;\n\t\treturn resolved;\n\t});\n}\n\n//#endregion\n//#region useToString/index.ts\n/**\n* Reactively convert a ref to string.\n*\n* @see https://vueuse.org/useToString\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useToString(value) {\n\treturn computed(() => `${toValue(value)}`);\n}\n\n//#endregion\n//#region useToggle/index.ts\n/**\n* A boolean ref with a toggler\n*\n* @see https://vueuse.org/useToggle\n* @param [initialValue]\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useToggle(initialValue = false, options = {}) {\n\tconst { truthyValue = true, falsyValue = false } = options;\n\tconst valueIsRef = isRef(initialValue);\n\tconst _value = shallowRef(initialValue);\n\tfunction toggle(value) {\n\t\tif (arguments.length) {\n\t\t\t_value.value = value;\n\t\t\treturn _value.value;\n\t\t} else {\n\t\t\tconst truthy = toValue(truthyValue);\n\t\t\t_value.value = _value.value === truthy ? toValue(falsyValue) : truthy;\n\t\t\treturn _value.value;\n\t\t}\n\t}\n\tif (valueIsRef) return toggle;\n\telse return [_value, toggle];\n}\n\n//#endregion\n//#region watchArray/index.ts\n/**\n* Watch for an array with additions and removals.\n*\n* @see https://vueuse.org/watchArray\n*/\nfunction watchArray(source, cb, options) {\n\tlet oldList = (options === null || options === void 0 ? void 0 : options.immediate) ? [] : [...typeof source === \"function\" ? source() : Array.isArray(source) ? source : toValue(source)];\n\treturn watch(source, (newList, _, onCleanup) => {\n\t\tconst oldListRemains = Array.from({ length: oldList.length });\n\t\tconst added = [];\n\t\tfor (const obj of newList) {\n\t\t\tlet found = false;\n\t\t\tfor (let i = 0; i < oldList.length; i++) if (!oldListRemains[i] && obj === oldList[i]) {\n\t\t\t\toldListRemains[i] = true;\n\t\t\t\tfound = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (!found) added.push(obj);\n\t\t}\n\t\tconst removed = oldList.filter((_$1, i) => !oldListRemains[i]);\n\t\tcb(newList, oldList, added, removed, onCleanup);\n\t\toldList = [...newList];\n\t}, options);\n}\n\n//#endregion\n//#region watchAtMost/index.ts\nfunction watchAtMost(source, cb, options) {\n\tconst { count,...watchOptions } = options;\n\tconst current = shallowRef(0);\n\tconst { stop, resume, pause } = watchWithFilter(source, (...args) => {\n\t\tcurrent.value += 1;\n\t\tif (current.value >= toValue(count)) nextTick(() => stop());\n\t\tcb(...args);\n\t}, watchOptions);\n\treturn {\n\t\tcount: current,\n\t\tstop,\n\t\tresume,\n\t\tpause\n\t};\n}\n\n//#endregion\n//#region watchDebounced/index.ts\nfunction watchDebounced(source, cb, options = {}) {\n\tconst { debounce = 0, maxWait = void 0,...watchOptions } = options;\n\treturn watchWithFilter(source, cb, {\n\t\t...watchOptions,\n\t\teventFilter: debounceFilter(debounce, { maxWait })\n\t});\n}\n/** @deprecated use `watchDebounced` instead */\nconst debouncedWatch = watchDebounced;\n\n//#endregion\n//#region watchDeep/index.ts\n/**\n* Shorthand for watching value with {deep: true}\n*\n* @see https://vueuse.org/watchDeep\n*/\nfunction watchDeep(source, cb, options) {\n\treturn watch(source, cb, {\n\t\t...options,\n\t\tdeep: true\n\t});\n}\n\n//#endregion\n//#region watchIgnorable/index.ts\nfunction watchIgnorable(source, cb, options = {}) {\n\tconst { eventFilter = bypassFilter,...watchOptions } = options;\n\tconst filteredCb = createFilterWrapper(eventFilter, cb);\n\tlet ignoreUpdates;\n\tlet ignorePrevAsyncUpdates;\n\tlet stop;\n\tif (watchOptions.flush === \"sync\") {\n\t\tlet ignore = false;\n\t\tignorePrevAsyncUpdates = () => {};\n\t\tignoreUpdates = (updater) => {\n\t\t\tignore = true;\n\t\t\tupdater();\n\t\t\tignore = false;\n\t\t};\n\t\tstop = watch(source, (...args) => {\n\t\t\tif (!ignore) filteredCb(...args);\n\t\t}, watchOptions);\n\t} else {\n\t\tconst disposables = [];\n\t\tlet ignoreCounter = 0;\n\t\tlet syncCounter = 0;\n\t\tignorePrevAsyncUpdates = () => {\n\t\t\tignoreCounter = syncCounter;\n\t\t};\n\t\tdisposables.push(watch(source, () => {\n\t\t\tsyncCounter++;\n\t\t}, {\n\t\t\t...watchOptions,\n\t\t\tflush: \"sync\"\n\t\t}));\n\t\tignoreUpdates = (updater) => {\n\t\t\tconst syncCounterPrev = syncCounter;\n\t\t\tupdater();\n\t\t\tignoreCounter += syncCounter - syncCounterPrev;\n\t\t};\n\t\tdisposables.push(watch(source, (...args) => {\n\t\t\tconst ignore = ignoreCounter > 0 && ignoreCounter === syncCounter;\n\t\t\tignoreCounter = 0;\n\t\t\tsyncCounter = 0;\n\t\t\tif (ignore) return;\n\t\t\tfilteredCb(...args);\n\t\t}, watchOptions));\n\t\tstop = () => {\n\t\t\tdisposables.forEach((fn) => fn());\n\t\t};\n\t}\n\treturn {\n\t\tstop,\n\t\tignoreUpdates,\n\t\tignorePrevAsyncUpdates\n\t};\n}\n/** @deprecated use `watchIgnorable` instead */\nconst ignorableWatch = watchIgnorable;\n\n//#endregion\n//#region watchImmediate/index.ts\n/**\n* Shorthand for watching value with {immediate: true}\n*\n* @see https://vueuse.org/watchImmediate\n*/\nfunction watchImmediate(source, cb, options) {\n\treturn watch(source, cb, {\n\t\t...options,\n\t\timmediate: true\n\t});\n}\n\n//#endregion\n//#region watchOnce/index.ts\n/**\n* Shorthand for watching value with { once: true }\n*\n* @see https://vueuse.org/watchOnce\n*/\nfunction watchOnce(source, cb, options) {\n\treturn watch(source, cb, {\n\t\t...options,\n\t\tonce: true\n\t});\n}\n\n//#endregion\n//#region watchThrottled/index.ts\nfunction watchThrottled(source, cb, options = {}) {\n\tconst { throttle = 0, trailing = true, leading = true,...watchOptions } = options;\n\treturn watchWithFilter(source, cb, {\n\t\t...watchOptions,\n\t\teventFilter: throttleFilter(throttle, trailing, leading)\n\t});\n}\n/** @deprecated use `watchThrottled` instead */\nconst throttledWatch = watchThrottled;\n\n//#endregion\n//#region watchTriggerable/index.ts\nfunction watchTriggerable(source, cb, options = {}) {\n\tlet cleanupFn;\n\tfunction onEffect() {\n\t\tif (!cleanupFn) return;\n\t\tconst fn = cleanupFn;\n\t\tcleanupFn = void 0;\n\t\tfn();\n\t}\n\t/** Register the function `cleanupFn` */\n\tfunction onCleanup(callback) {\n\t\tcleanupFn = callback;\n\t}\n\tconst _cb = (value, oldValue) => {\n\t\tonEffect();\n\t\treturn cb(value, oldValue, onCleanup);\n\t};\n\tconst res = watchIgnorable(source, _cb, options);\n\tconst { ignoreUpdates } = res;\n\tconst trigger = () => {\n\t\tlet res$1;\n\t\tignoreUpdates(() => {\n\t\t\tres$1 = _cb(getWatchSources(source), getOldValue(source));\n\t\t});\n\t\treturn res$1;\n\t};\n\treturn {\n\t\t...res,\n\t\ttrigger\n\t};\n}\nfunction getWatchSources(sources) {\n\tif (isReactive(sources)) return sources;\n\tif (Array.isArray(sources)) return sources.map((item) => toValue(item));\n\treturn toValue(sources);\n}\nfunction getOldValue(source) {\n\treturn Array.isArray(source) ? source.map(() => void 0) : void 0;\n}\n\n//#endregion\n//#region whenever/index.ts\n/**\n* Shorthand for watching value to be truthy\n*\n* @see https://vueuse.org/whenever\n*/\nfunction whenever(source, cb, options) {\n\tconst stop = watch(source, (v, ov, onInvalidate) => {\n\t\tif (v) {\n\t\t\tif (options === null || options === void 0 ? void 0 : options.once) nextTick(() => stop());\n\t\t\tcb(v, ov, onInvalidate);\n\t\t}\n\t}, {\n\t\t...options,\n\t\tonce: false\n\t});\n\treturn stop;\n}\n\n//#endregion\nexport { assert, autoResetRef, bypassFilter, camelize, clamp, computedEager, computedWithControl, containsProp, controlledComputed, controlledRef, createEventHook, createFilterWrapper, createGlobalState, createInjectionState, createReactiveFn, createRef, createSharedComposable, createSingletonPromise, debounceFilter, debouncedRef, debouncedWatch, eagerComputed, extendRef, formatDate, get, getLifeCycleTarget, hasOwn, hyphenate, identity, ignorableWatch, increaseWithUnit, injectLocal, invoke, isClient, isDef, isDefined, isIOS, isObject, isWorker, makeDestructurable, noop, normalizeDate, notNullish, now, objectEntries, objectOmit, objectPick, pausableFilter, pausableWatch, promiseTimeout, provideLocal, pxValue, rand, reactify, reactifyObject, reactiveComputed, reactiveOmit, reactivePick, refAutoReset, refDebounced, refDefault, refManualReset, refThrottled, refWithControl, set, syncRef, syncRefs, throttleFilter, throttledRef, throttledWatch, timestamp, toArray, toReactive, toRef, toRefs, tryOnBeforeMount, tryOnBeforeUnmount, tryOnMounted, tryOnScopeDispose, tryOnUnmounted, until, useArrayDifference, useArrayEvery, useArrayFilter, useArrayFind, useArrayFindIndex, useArrayFindLast, useArrayIncludes, useArrayJoin, useArrayMap, useArrayReduce, useArraySome, useArrayUnique, useCounter, useDateFormat, useDebounce, useDebounceFn, useInterval, useIntervalFn, useLastChanged, useThrottle, useThrottleFn, useTimeout, useTimeoutFn, useToNumber, useToString, useToggle, watchArray, watchAtMost, watchDebounced, watchDeep, watchIgnorable, watchImmediate, watchOnce, watchPausable, watchThrottled, watchTriggerable, watchWithFilter, whenever };","import { bypassFilter, camelize, clamp, computedWithControl, containsProp, createEventHook, createFilterWrapper, createRef, createSingletonPromise, debounceFilter, hasOwn, identity, increaseWithUnit, injectLocal, isClient, isDef, isIOS, isObject, isWorker, makeDestructurable, noop, notNullish, objectEntries, objectOmit, objectPick, pausableFilter, pausableWatch, promiseTimeout, provideLocal, pxValue, syncRef, throttleFilter, timestamp, toArray, toRef, toRefs, tryOnMounted, tryOnScopeDispose, tryOnUnmounted, until, useDebounceFn, useIntervalFn, useThrottleFn, useTimeoutFn, watchIgnorable, watchImmediate, watchOnce, watchWithFilter, whenever } from \"@vueuse/shared\";\nimport { Fragment, TransitionGroup, computed, customRef, defineComponent, getCurrentInstance, getCurrentScope, h, hasInjectionContext, inject, isReadonly, isRef, markRaw, nextTick, onBeforeUpdate, onMounted, onUpdated, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, toRaw, toValue, unref, watch, watchEffect } from \"vue\";\n\nexport * from \"@vueuse/shared\"\n\n//#region computedAsync/index.ts\nfunction computedAsync(evaluationCallback, initialState, optionsOrRef) {\n\tvar _globalThis$reportErr;\n\tlet options;\n\tif (isRef(optionsOrRef)) options = { evaluating: optionsOrRef };\n\telse options = optionsOrRef || {};\n\tconst { lazy = false, flush = \"sync\", evaluating = void 0, shallow = true, onError = (_globalThis$reportErr = globalThis.reportError) !== null && _globalThis$reportErr !== void 0 ? _globalThis$reportErr : noop } = options;\n\tconst started = shallowRef(!lazy);\n\tconst current = shallow ? shallowRef(initialState) : ref(initialState);\n\tlet counter = 0;\n\twatchEffect(async (onInvalidate) => {\n\t\tif (!started.value) return;\n\t\tcounter++;\n\t\tconst counterAtBeginning = counter;\n\t\tlet hasFinished = false;\n\t\tif (evaluating) Promise.resolve().then(() => {\n\t\t\tevaluating.value = true;\n\t\t});\n\t\ttry {\n\t\t\tconst result = await evaluationCallback((cancelCallback) => {\n\t\t\t\tonInvalidate(() => {\n\t\t\t\t\tif (evaluating) evaluating.value = false;\n\t\t\t\t\tif (!hasFinished) cancelCallback();\n\t\t\t\t});\n\t\t\t});\n\t\t\tif (counterAtBeginning === counter) current.value = result;\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t} finally {\n\t\t\tif (evaluating && counterAtBeginning === counter) evaluating.value = false;\n\t\t\thasFinished = true;\n\t\t}\n\t}, { flush });\n\tif (lazy) return computed(() => {\n\t\tstarted.value = true;\n\t\treturn current.value;\n\t});\n\telse return current;\n}\n/** @deprecated use `computedAsync` instead */\nconst asyncComputed = computedAsync;\n\n//#endregion\n//#region computedInject/index.ts\nfunction computedInject(key, options, defaultSource, treatDefaultAsFactory) {\n\tlet source = inject(key);\n\tif (defaultSource) source = inject(key, defaultSource);\n\tif (treatDefaultAsFactory) source = inject(key, defaultSource, treatDefaultAsFactory);\n\tif (typeof options === \"function\") return computed((oldValue) => options(source, oldValue));\n\telse return computed({\n\t\tget: (oldValue) => options.get(source, oldValue),\n\t\tset: options.set\n\t});\n}\n\n//#endregion\n//#region createReusableTemplate/index.ts\n/**\n* This function creates `define` and `reuse` components in pair,\n* It also allow to pass a generic to bind with type.\n*\n* @see https://vueuse.org/createReusableTemplate\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createReusableTemplate(options = {}) {\n\tconst { inheritAttrs = true } = options;\n\tconst render = shallowRef();\n\tconst define = defineComponent({ setup(_, { slots }) {\n\t\treturn () => {\n\t\t\trender.value = slots.default;\n\t\t};\n\t} });\n\tconst reuse = defineComponent({\n\t\tinheritAttrs,\n\t\tprops: options.props,\n\t\tsetup(props, { attrs, slots }) {\n\t\t\treturn () => {\n\t\t\t\tvar _render$value;\n\t\t\t\tif (!render.value && true) throw new Error(\"[VueUse] Failed to find the definition of reusable template\");\n\t\t\t\tconst vnode = (_render$value = render.value) === null || _render$value === void 0 ? void 0 : _render$value.call(render, {\n\t\t\t\t\t...options.props == null ? keysToCamelKebabCase(attrs) : props,\n\t\t\t\t\t$slots: slots\n\t\t\t\t});\n\t\t\t\treturn inheritAttrs && (vnode === null || vnode === void 0 ? void 0 : vnode.length) === 1 ? vnode[0] : vnode;\n\t\t\t};\n\t\t}\n\t});\n\treturn makeDestructurable({\n\t\tdefine,\n\t\treuse\n\t}, [define, reuse]);\n}\nfunction keysToCamelKebabCase(obj) {\n\tconst newObj = {};\n\tfor (const key in obj) newObj[camelize(key)] = obj[key];\n\treturn newObj;\n}\n\n//#endregion\n//#region createTemplatePromise/index.ts\n/**\n* Creates a template promise component.\n*\n* @see https://vueuse.org/createTemplatePromise\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createTemplatePromise(options = {}) {\n\tlet index = 0;\n\tconst instances = ref([]);\n\tfunction create(...args) {\n\t\tconst props = shallowReactive({\n\t\t\tkey: index++,\n\t\t\targs,\n\t\t\tpromise: void 0,\n\t\t\tresolve: () => {},\n\t\t\treject: () => {},\n\t\t\tisResolving: false,\n\t\t\toptions\n\t\t});\n\t\tinstances.value.push(props);\n\t\tprops.promise = new Promise((_resolve, _reject) => {\n\t\t\tprops.resolve = (v) => {\n\t\t\t\tprops.isResolving = true;\n\t\t\t\treturn _resolve(v);\n\t\t\t};\n\t\t\tprops.reject = _reject;\n\t\t}).finally(() => {\n\t\t\tprops.promise = void 0;\n\t\t\tconst index$1 = instances.value.indexOf(props);\n\t\t\tif (index$1 !== -1) instances.value.splice(index$1, 1);\n\t\t});\n\t\treturn props.promise;\n\t}\n\tfunction start(...args) {\n\t\tif (options.singleton && instances.value.length > 0) return instances.value[0].promise;\n\t\treturn create(...args);\n\t}\n\tconst component = defineComponent((_, { slots }) => {\n\t\tconst renderList = () => instances.value.map((props) => {\n\t\t\tvar _slots$default;\n\t\t\treturn h(Fragment, { key: props.key }, (_slots$default = slots.default) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots, props));\n\t\t});\n\t\tif (options.transition) return () => h(TransitionGroup, options.transition, renderList);\n\t\treturn renderList;\n\t});\n\tcomponent.start = start;\n\treturn component;\n}\n\n//#endregion\n//#region createUnrefFn/index.ts\n/**\n* Make a plain function accepting ref and raw values as arguments.\n* Returns the same value the unconverted function returns, with proper typing.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createUnrefFn(fn) {\n\treturn function(...args) {\n\t\treturn fn.apply(this, args.map((i) => toValue(i)));\n\t};\n}\n\n//#endregion\n//#region _configurable.ts\nconst defaultWindow = isClient ? window : void 0;\nconst defaultDocument = isClient ? window.document : void 0;\nconst defaultNavigator = isClient ? window.navigator : void 0;\nconst defaultLocation = isClient ? window.location : void 0;\n\n//#endregion\n//#region unrefElement/index.ts\n/**\n* Get the dom element of a ref of element or Vue component instance\n*\n* @param elRef\n*/\nfunction unrefElement(elRef) {\n\tvar _$el;\n\tconst plain = toValue(elRef);\n\treturn (_$el = plain === null || plain === void 0 ? void 0 : plain.$el) !== null && _$el !== void 0 ? _$el : plain;\n}\n\n//#endregion\n//#region useEventListener/index.ts\nfunction useEventListener(...args) {\n\tconst register = (el, event, listener, options) => {\n\t\tel.addEventListener(event, listener, options);\n\t\treturn () => el.removeEventListener(event, listener, options);\n\t};\n\tconst firstParamTargets = computed(() => {\n\t\tconst test = toArray(toValue(args[0])).filter((e) => e != null);\n\t\treturn test.every((e) => typeof e !== \"string\") ? test : void 0;\n\t});\n\treturn watchImmediate(() => {\n\t\tvar _firstParamTargets$va, _firstParamTargets$va2;\n\t\treturn [\n\t\t\t(_firstParamTargets$va = (_firstParamTargets$va2 = firstParamTargets.value) === null || _firstParamTargets$va2 === void 0 ? void 0 : _firstParamTargets$va2.map((e) => unrefElement(e))) !== null && _firstParamTargets$va !== void 0 ? _firstParamTargets$va : [defaultWindow].filter((e) => e != null),\n\t\t\ttoArray(toValue(firstParamTargets.value ? args[1] : args[0])),\n\t\t\ttoArray(unref(firstParamTargets.value ? args[2] : args[1])),\n\t\t\ttoValue(firstParamTargets.value ? args[3] : args[2])\n\t\t];\n\t}, ([raw_targets, raw_events, raw_listeners, raw_options], _, onCleanup) => {\n\t\tif (!(raw_targets === null || raw_targets === void 0 ? void 0 : raw_targets.length) || !(raw_events === null || raw_events === void 0 ? void 0 : raw_events.length) || !(raw_listeners === null || raw_listeners === void 0 ? void 0 : raw_listeners.length)) return;\n\t\tconst optionsClone = isObject(raw_options) ? { ...raw_options } : raw_options;\n\t\tconst cleanups = raw_targets.flatMap((el) => raw_events.flatMap((event) => raw_listeners.map((listener) => register(el, event, listener, optionsClone))));\n\t\tonCleanup(() => {\n\t\t\tcleanups.forEach((fn) => fn());\n\t\t});\n\t}, { flush: \"post\" });\n}\n\n//#endregion\n//#region onClickOutside/index.ts\nlet _iOSWorkaround = false;\nfunction onClickOutside(target, handler, options = {}) {\n\tconst { window: window$1 = defaultWindow, ignore = [], capture = true, detectIframe = false, controls = false } = options;\n\tif (!window$1) return controls ? {\n\t\tstop: noop,\n\t\tcancel: noop,\n\t\ttrigger: noop\n\t} : noop;\n\tif (isIOS && !_iOSWorkaround) {\n\t\t_iOSWorkaround = true;\n\t\tconst listenerOptions = { passive: true };\n\t\tArray.from(window$1.document.body.children).forEach((el) => el.addEventListener(\"click\", noop, listenerOptions));\n\t\twindow$1.document.documentElement.addEventListener(\"click\", noop, listenerOptions);\n\t}\n\tlet shouldListen = true;\n\tconst shouldIgnore = (event) => {\n\t\treturn toValue(ignore).some((target$1) => {\n\t\t\tif (typeof target$1 === \"string\") return Array.from(window$1.document.querySelectorAll(target$1)).some((el) => el === event.target || event.composedPath().includes(el));\n\t\t\telse {\n\t\t\t\tconst el = unrefElement(target$1);\n\t\t\t\treturn el && (event.target === el || event.composedPath().includes(el));\n\t\t\t}\n\t\t});\n\t};\n\t/**\n\t* Determines if the given target has multiple root elements.\n\t* Referenced from: https://github.com/vuejs/test-utils/blob/ccb460be55f9f6be05ab708500a41ec8adf6f4bc/src/vue-wrapper.ts#L21\n\t*/\n\tfunction hasMultipleRoots(target$1) {\n\t\tconst vm = toValue(target$1);\n\t\treturn vm && vm.$.subTree.shapeFlag === 16;\n\t}\n\tfunction checkMultipleRoots(target$1, event) {\n\t\tconst vm = toValue(target$1);\n\t\tconst children = vm.$.subTree && vm.$.subTree.children;\n\t\tif (children == null || !Array.isArray(children)) return false;\n\t\treturn children.some((child) => child.el === event.target || event.composedPath().includes(child.el));\n\t}\n\tconst listener = (event) => {\n\t\tconst el = unrefElement(target);\n\t\tif (event.target == null) return;\n\t\tif (!(el instanceof Element) && hasMultipleRoots(target) && checkMultipleRoots(target, event)) return;\n\t\tif (!el || el === event.target || event.composedPath().includes(el)) return;\n\t\tif (\"detail\" in event && event.detail === 0) shouldListen = !shouldIgnore(event);\n\t\tif (!shouldListen) {\n\t\t\tshouldListen = true;\n\t\t\treturn;\n\t\t}\n\t\thandler(event);\n\t};\n\tlet isProcessingClick = false;\n\tconst cleanup = [\n\t\tuseEventListener(window$1, \"click\", (event) => {\n\t\t\tif (!isProcessingClick) {\n\t\t\t\tisProcessingClick = true;\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tisProcessingClick = false;\n\t\t\t\t}, 0);\n\t\t\t\tlistener(event);\n\t\t\t}\n\t\t}, {\n\t\t\tpassive: true,\n\t\t\tcapture\n\t\t}),\n\t\tuseEventListener(window$1, \"pointerdown\", (e) => {\n\t\t\tconst el = unrefElement(target);\n\t\t\tshouldListen = !shouldIgnore(e) && !!(el && !e.composedPath().includes(el));\n\t\t}, { passive: true }),\n\t\tdetectIframe && useEventListener(window$1, \"blur\", (event) => {\n\t\t\tsetTimeout(() => {\n\t\t\t\tvar _window$document$acti;\n\t\t\t\tconst el = unrefElement(target);\n\t\t\t\tif (((_window$document$acti = window$1.document.activeElement) === null || _window$document$acti === void 0 ? void 0 : _window$document$acti.tagName) === \"IFRAME\" && !(el === null || el === void 0 ? void 0 : el.contains(window$1.document.activeElement))) handler(event);\n\t\t\t}, 0);\n\t\t}, { passive: true })\n\t].filter(Boolean);\n\tconst stop = () => cleanup.forEach((fn) => fn());\n\tif (controls) return {\n\t\tstop,\n\t\tcancel: () => {\n\t\t\tshouldListen = false;\n\t\t},\n\t\ttrigger: (event) => {\n\t\t\tshouldListen = true;\n\t\t\tlistener(event);\n\t\t\tshouldListen = false;\n\t\t}\n\t};\n\treturn stop;\n}\n\n//#endregion\n//#region useMounted/index.ts\n/**\n* Mounted state in ref.\n*\n* @see https://vueuse.org/useMounted\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useMounted() {\n\tconst isMounted = shallowRef(false);\n\tconst instance = getCurrentInstance();\n\tif (instance) onMounted(() => {\n\t\tisMounted.value = true;\n\t}, instance);\n\treturn isMounted;\n}\n\n//#endregion\n//#region useSupported/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction useSupported(callback) {\n\tconst isMounted = useMounted();\n\treturn computed(() => {\n\t\tisMounted.value;\n\t\treturn Boolean(callback());\n\t});\n}\n\n//#endregion\n//#region useMutationObserver/index.ts\n/**\n* Watch for changes being made to the DOM tree.\n*\n* @see https://vueuse.org/useMutationObserver\n* @see https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver MutationObserver MDN\n* @param target\n* @param callback\n* @param options\n*/\nfunction useMutationObserver(target, callback, options = {}) {\n\tconst { window: window$1 = defaultWindow,...mutationOptions } = options;\n\tlet observer;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window$1 && \"MutationObserver\" in window$1);\n\tconst cleanup = () => {\n\t\tif (observer) {\n\t\t\tobserver.disconnect();\n\t\t\tobserver = void 0;\n\t\t}\n\t};\n\tconst stopWatch = watch(computed(() => {\n\t\tconst items = toArray(toValue(target)).map(unrefElement).filter(notNullish);\n\t\treturn new Set(items);\n\t}), (newTargets) => {\n\t\tcleanup();\n\t\tif (isSupported.value && newTargets.size) {\n\t\t\tobserver = new MutationObserver(callback);\n\t\t\tnewTargets.forEach((el) => observer.observe(el, mutationOptions));\n\t\t}\n\t}, {\n\t\timmediate: true,\n\t\tflush: \"post\"\n\t});\n\tconst takeRecords = () => {\n\t\treturn observer === null || observer === void 0 ? void 0 : observer.takeRecords();\n\t};\n\tconst stop = () => {\n\t\tstopWatch();\n\t\tcleanup();\n\t};\n\ttryOnScopeDispose(stop);\n\treturn {\n\t\tisSupported,\n\t\tstop,\n\t\ttakeRecords\n\t};\n}\n\n//#endregion\n//#region onElementRemoval/index.ts\n/**\n* Fires when the element or any element containing it is removed.\n*\n* @param target\n* @param callback\n* @param options\n*/\nfunction onElementRemoval(target, callback, options = {}) {\n\tconst { window: window$1 = defaultWindow, document: document$1 = window$1 === null || window$1 === void 0 ? void 0 : window$1.document, flush = \"sync\" } = options;\n\tif (!window$1 || !document$1) return noop;\n\tlet stopFn;\n\tconst cleanupAndUpdate = (fn) => {\n\t\tstopFn === null || stopFn === void 0 || stopFn();\n\t\tstopFn = fn;\n\t};\n\tconst stopWatch = watchEffect(() => {\n\t\tconst el = unrefElement(target);\n\t\tif (el) {\n\t\t\tconst { stop } = useMutationObserver(document$1, (mutationsList) => {\n\t\t\t\tif (mutationsList.map((mutation) => [...mutation.removedNodes]).flat().some((node) => node === el || node.contains(el))) callback(mutationsList);\n\t\t\t}, {\n\t\t\t\twindow: window$1,\n\t\t\t\tchildList: true,\n\t\t\t\tsubtree: true\n\t\t\t});\n\t\t\tcleanupAndUpdate(stop);\n\t\t}\n\t}, { flush });\n\tconst stopHandle = () => {\n\t\tstopWatch();\n\t\tcleanupAndUpdate();\n\t};\n\ttryOnScopeDispose(stopHandle);\n\treturn stopHandle;\n}\n\n//#endregion\n//#region onKeyStroke/index.ts\nfunction createKeyPredicate(keyFilter) {\n\tif (typeof keyFilter === \"function\") return keyFilter;\n\telse if (typeof keyFilter === \"string\") return (event) => event.key === keyFilter;\n\telse if (Array.isArray(keyFilter)) return (event) => keyFilter.includes(event.key);\n\treturn () => true;\n}\nfunction onKeyStroke(...args) {\n\tlet key;\n\tlet handler;\n\tlet options = {};\n\tif (args.length === 3) {\n\t\tkey = args[0];\n\t\thandler = args[1];\n\t\toptions = args[2];\n\t} else if (args.length === 2) if (typeof args[1] === \"object\") {\n\t\tkey = true;\n\t\thandler = args[0];\n\t\toptions = args[1];\n\t} else {\n\t\tkey = args[0];\n\t\thandler = args[1];\n\t}\n\telse {\n\t\tkey = true;\n\t\thandler = args[0];\n\t}\n\tconst { target = defaultWindow, eventName = \"keydown\", passive = false, dedupe = false } = options;\n\tconst predicate = createKeyPredicate(key);\n\tconst listener = (e) => {\n\t\tif (e.repeat && toValue(dedupe)) return;\n\t\tif (predicate(e)) handler(e);\n\t};\n\treturn useEventListener(target, eventName, listener, passive);\n}\n/**\n* Listen to the keydown event of the given key.\n*\n* @see https://vueuse.org/onKeyStroke\n* @param key\n* @param handler\n* @param options\n*/\nfunction onKeyDown(key, handler, options = {}) {\n\treturn onKeyStroke(key, handler, {\n\t\t...options,\n\t\teventName: \"keydown\"\n\t});\n}\n/**\n* Listen to the keypress event of the given key.\n*\n* @see https://vueuse.org/onKeyStroke\n* @param key\n* @param handler\n* @param options\n*/\nfunction onKeyPressed(key, handler, options = {}) {\n\treturn onKeyStroke(key, handler, {\n\t\t...options,\n\t\teventName: \"keypress\"\n\t});\n}\n/**\n* Listen to the keyup event of the given key.\n*\n* @see https://vueuse.org/onKeyStroke\n* @param key\n* @param handler\n* @param options\n*/\nfunction onKeyUp(key, handler, options = {}) {\n\treturn onKeyStroke(key, handler, {\n\t\t...options,\n\t\teventName: \"keyup\"\n\t});\n}\n\n//#endregion\n//#region onLongPress/index.ts\nconst DEFAULT_DELAY = 500;\nconst DEFAULT_THRESHOLD = 10;\nfunction onLongPress(target, handler, options) {\n\tvar _options$modifiers10, _options$modifiers11;\n\tconst elementRef = computed(() => unrefElement(target));\n\tlet timeout;\n\tlet posStart;\n\tlet startTimestamp;\n\tlet hasLongPressed = false;\n\tfunction clear() {\n\t\tif (timeout) {\n\t\t\tclearTimeout(timeout);\n\t\t\ttimeout = void 0;\n\t\t}\n\t\tposStart = void 0;\n\t\tstartTimestamp = void 0;\n\t\thasLongPressed = false;\n\t}\n\tfunction getDelay(ev) {\n\t\tconst delay = options === null || options === void 0 ? void 0 : options.delay;\n\t\tif (typeof delay === \"function\") return delay(ev);\n\t\treturn delay !== null && delay !== void 0 ? delay : DEFAULT_DELAY;\n\t}\n\tfunction onRelease(ev) {\n\t\tvar _options$modifiers, _options$modifiers2, _options$modifiers3;\n\t\tconst [_startTimestamp, _posStart, _hasLongPressed] = [\n\t\t\tstartTimestamp,\n\t\t\tposStart,\n\t\t\thasLongPressed\n\t\t];\n\t\tclear();\n\t\tif (!(options === null || options === void 0 ? void 0 : options.onMouseUp) || !_posStart || !_startTimestamp) return;\n\t\tif ((options === null || options === void 0 || (_options$modifiers = options.modifiers) === null || _options$modifiers === void 0 ? void 0 : _options$modifiers.self) && ev.target !== elementRef.value) return;\n\t\tif (options === null || options === void 0 || (_options$modifiers2 = options.modifiers) === null || _options$modifiers2 === void 0 ? void 0 : _options$modifiers2.prevent) ev.preventDefault();\n\t\tif (options === null || options === void 0 || (_options$modifiers3 = options.modifiers) === null || _options$modifiers3 === void 0 ? void 0 : _options$modifiers3.stop) ev.stopPropagation();\n\t\tconst dx = ev.x - _posStart.x;\n\t\tconst dy = ev.y - _posStart.y;\n\t\tconst distance = Math.sqrt(dx * dx + dy * dy);\n\t\toptions.onMouseUp(ev.timeStamp - _startTimestamp, distance, _hasLongPressed);\n\t}\n\tfunction onDown(ev) {\n\t\tvar _options$modifiers4, _options$modifiers5, _options$modifiers6;\n\t\tif ((options === null || options === void 0 || (_options$modifiers4 = options.modifiers) === null || _options$modifiers4 === void 0 ? void 0 : _options$modifiers4.self) && ev.target !== elementRef.value) return;\n\t\tclear();\n\t\tif (options === null || options === void 0 || (_options$modifiers5 = options.modifiers) === null || _options$modifiers5 === void 0 ? void 0 : _options$modifiers5.prevent) ev.preventDefault();\n\t\tif (options === null || options === void 0 || (_options$modifiers6 = options.modifiers) === null || _options$modifiers6 === void 0 ? void 0 : _options$modifiers6.stop) ev.stopPropagation();\n\t\tposStart = {\n\t\t\tx: ev.x,\n\t\t\ty: ev.y\n\t\t};\n\t\tstartTimestamp = ev.timeStamp;\n\t\ttimeout = setTimeout(() => {\n\t\t\thasLongPressed = true;\n\t\t\thandler(ev);\n\t\t}, getDelay(ev));\n\t}\n\tfunction onMove(ev) {\n\t\tvar _options$modifiers7, _options$modifiers8, _options$modifiers9, _options$distanceThre;\n\t\tif ((options === null || options === void 0 || (_options$modifiers7 = options.modifiers) === null || _options$modifiers7 === void 0 ? void 0 : _options$modifiers7.self) && ev.target !== elementRef.value) return;\n\t\tif (!posStart || (options === null || options === void 0 ? void 0 : options.distanceThreshold) === false) return;\n\t\tif (options === null || options === void 0 || (_options$modifiers8 = options.modifiers) === null || _options$modifiers8 === void 0 ? void 0 : _options$modifiers8.prevent) ev.preventDefault();\n\t\tif (options === null || options === void 0 || (_options$modifiers9 = options.modifiers) === null || _options$modifiers9 === void 0 ? void 0 : _options$modifiers9.stop) ev.stopPropagation();\n\t\tconst dx = ev.x - posStart.x;\n\t\tconst dy = ev.y - posStart.y;\n\t\tif (Math.sqrt(dx * dx + dy * dy) >= ((_options$distanceThre = options === null || options === void 0 ? void 0 : options.distanceThreshold) !== null && _options$distanceThre !== void 0 ? _options$distanceThre : DEFAULT_THRESHOLD)) clear();\n\t}\n\tconst listenerOptions = {\n\t\tcapture: options === null || options === void 0 || (_options$modifiers10 = options.modifiers) === null || _options$modifiers10 === void 0 ? void 0 : _options$modifiers10.capture,\n\t\tonce: options === null || options === void 0 || (_options$modifiers11 = options.modifiers) === null || _options$modifiers11 === void 0 ? void 0 : _options$modifiers11.once\n\t};\n\tconst cleanup = [\n\t\tuseEventListener(elementRef, \"pointerdown\", onDown, listenerOptions),\n\t\tuseEventListener(elementRef, \"pointermove\", onMove, listenerOptions),\n\t\tuseEventListener(elementRef, [\"pointerup\", \"pointerleave\"], onRelease, listenerOptions)\n\t];\n\tconst stop = () => cleanup.forEach((fn) => fn());\n\treturn stop;\n}\n\n//#endregion\n//#region onStartTyping/index.ts\nfunction isFocusedElementEditable() {\n\tconst { activeElement, body } = document;\n\tif (!activeElement) return false;\n\tif (activeElement === body) return false;\n\tswitch (activeElement.tagName) {\n\t\tcase \"INPUT\":\n\t\tcase \"TEXTAREA\": return true;\n\t}\n\treturn activeElement.hasAttribute(\"contenteditable\");\n}\nfunction isTypedCharValid({ keyCode, metaKey, ctrlKey, altKey }) {\n\tif (metaKey || ctrlKey || altKey) return false;\n\tif (keyCode >= 48 && keyCode <= 57 || keyCode >= 96 && keyCode <= 105) return true;\n\tif (keyCode >= 65 && keyCode <= 90) return true;\n\treturn false;\n}\n/**\n* Fires when users start typing on non-editable elements.\n*\n* @see https://vueuse.org/onStartTyping\n* @param callback\n* @param options\n*/\nfunction onStartTyping(callback, options = {}) {\n\tconst { document: document$1 = defaultDocument } = options;\n\tconst keydown = (event) => {\n\t\tif (!isFocusedElementEditable() && isTypedCharValid(event)) callback(event);\n\t};\n\tif (document$1) useEventListener(document$1, \"keydown\", keydown, { passive: true });\n}\n\n//#endregion\n//#region templateRef/index.ts\n/**\n* @deprecated Use Vue's built-in `useTemplateRef` instead.\n*\n* Shorthand for binding ref to template element.\n*\n* @see https://vueuse.org/templateRef\n* @param key\n* @param initialValue\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction templateRef(key, initialValue = null) {\n\tconst instance = getCurrentInstance();\n\tlet _trigger = () => {};\n\tconst element = customRef((track, trigger) => {\n\t\t_trigger = trigger;\n\t\treturn {\n\t\t\tget() {\n\t\t\t\tvar _instance$proxy$$refs, _instance$proxy;\n\t\t\t\ttrack();\n\t\t\t\treturn (_instance$proxy$$refs = instance === null || instance === void 0 || (_instance$proxy = instance.proxy) === null || _instance$proxy === void 0 ? void 0 : _instance$proxy.$refs[key]) !== null && _instance$proxy$$refs !== void 0 ? _instance$proxy$$refs : initialValue;\n\t\t\t},\n\t\t\tset() {}\n\t\t};\n\t});\n\ttryOnMounted(_trigger);\n\tonUpdated(_trigger);\n\treturn element;\n}\n\n//#endregion\n//#region useActiveElement/index.ts\n/**\n* Reactive `document.activeElement`\n*\n* @see https://vueuse.org/useActiveElement\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useActiveElement(options = {}) {\n\tvar _options$document;\n\tconst { window: window$1 = defaultWindow, deep = true, triggerOnRemoval = false } = options;\n\tconst document$1 = (_options$document = options.document) !== null && _options$document !== void 0 ? _options$document : window$1 === null || window$1 === void 0 ? void 0 : window$1.document;\n\tconst getDeepActiveElement = () => {\n\t\tlet element = document$1 === null || document$1 === void 0 ? void 0 : document$1.activeElement;\n\t\tif (deep) {\n\t\t\tvar _element$shadowRoot;\n\t\t\twhile (element === null || element === void 0 ? void 0 : element.shadowRoot) element = element === null || element === void 0 || (_element$shadowRoot = element.shadowRoot) === null || _element$shadowRoot === void 0 ? void 0 : _element$shadowRoot.activeElement;\n\t\t}\n\t\treturn element;\n\t};\n\tconst activeElement = shallowRef();\n\tconst trigger = () => {\n\t\tactiveElement.value = getDeepActiveElement();\n\t};\n\tif (window$1) {\n\t\tconst listenerOptions = {\n\t\t\tcapture: true,\n\t\t\tpassive: true\n\t\t};\n\t\tuseEventListener(window$1, \"blur\", (event) => {\n\t\t\tif (event.relatedTarget !== null) return;\n\t\t\ttrigger();\n\t\t}, listenerOptions);\n\t\tuseEventListener(window$1, \"focus\", trigger, listenerOptions);\n\t}\n\tif (triggerOnRemoval) onElementRemoval(activeElement, trigger, { document: document$1 });\n\ttrigger();\n\treturn activeElement;\n}\n\n//#endregion\n//#region useRafFn/index.ts\n/**\n* Call function on every `requestAnimationFrame`. With controls of pausing and resuming.\n*\n* @see https://vueuse.org/useRafFn\n* @param fn\n* @param options\n*/\nfunction useRafFn(fn, options = {}) {\n\tconst { immediate = true, fpsLimit = void 0, window: window$1 = defaultWindow, once = false } = options;\n\tconst isActive = shallowRef(false);\n\tconst intervalLimit = computed(() => {\n\t\treturn fpsLimit ? 1e3 / toValue(fpsLimit) : null;\n\t});\n\tlet previousFrameTimestamp = 0;\n\tlet rafId = null;\n\tfunction loop(timestamp$1) {\n\t\tif (!isActive.value || !window$1) return;\n\t\tif (!previousFrameTimestamp) previousFrameTimestamp = timestamp$1;\n\t\tconst delta = timestamp$1 - previousFrameTimestamp;\n\t\tif (intervalLimit.value && delta < intervalLimit.value) {\n\t\t\trafId = window$1.requestAnimationFrame(loop);\n\t\t\treturn;\n\t\t}\n\t\tpreviousFrameTimestamp = timestamp$1;\n\t\tfn({\n\t\t\tdelta,\n\t\t\ttimestamp: timestamp$1\n\t\t});\n\t\tif (once) {\n\t\t\tisActive.value = false;\n\t\t\trafId = null;\n\t\t\treturn;\n\t\t}\n\t\trafId = window$1.requestAnimationFrame(loop);\n\t}\n\tfunction resume() {\n\t\tif (!isActive.value && window$1) {\n\t\t\tisActive.value = true;\n\t\t\tpreviousFrameTimestamp = 0;\n\t\t\trafId = window$1.requestAnimationFrame(loop);\n\t\t}\n\t}\n\tfunction pause() {\n\t\tisActive.value = false;\n\t\tif (rafId != null && window$1) {\n\t\t\twindow$1.cancelAnimationFrame(rafId);\n\t\t\trafId = null;\n\t\t}\n\t}\n\tif (immediate) resume();\n\ttryOnScopeDispose(pause);\n\treturn {\n\t\tisActive: readonly(isActive),\n\t\tpause,\n\t\tresume\n\t};\n}\n\n//#endregion\n//#region useAnimate/index.ts\n/**\n* Reactive Web Animations API\n*\n* @see https://vueuse.org/useAnimate\n* @param target\n* @param keyframes\n* @param options\n*/\nfunction useAnimate(target, keyframes, options) {\n\tlet config;\n\tlet animateOptions;\n\tif (isObject(options)) {\n\t\tconfig = options;\n\t\tanimateOptions = objectOmit(options, [\n\t\t\t\"window\",\n\t\t\t\"immediate\",\n\t\t\t\"commitStyles\",\n\t\t\t\"persist\",\n\t\t\t\"onReady\",\n\t\t\t\"onError\"\n\t\t]);\n\t} else {\n\t\tconfig = { duration: options };\n\t\tanimateOptions = options;\n\t}\n\tconst { window: window$1 = defaultWindow, immediate = true, commitStyles, persist, playbackRate: _playbackRate = 1, onReady, onError = (e) => {\n\t\tconsole.error(e);\n\t} } = config;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window$1 && HTMLElement && \"animate\" in HTMLElement.prototype);\n\tconst animate = shallowRef(void 0);\n\tconst store = shallowReactive({\n\t\tstartTime: null,\n\t\tcurrentTime: null,\n\t\ttimeline: null,\n\t\tplaybackRate: _playbackRate,\n\t\tpending: false,\n\t\tplayState: immediate ? \"idle\" : \"paused\",\n\t\treplaceState: \"active\"\n\t});\n\tconst pending = computed(() => store.pending);\n\tconst playState = computed(() => store.playState);\n\tconst replaceState = computed(() => store.replaceState);\n\tconst startTime = computed({\n\t\tget() {\n\t\t\treturn store.startTime;\n\t\t},\n\t\tset(value) {\n\t\t\tstore.startTime = value;\n\t\t\tif (animate.value) animate.value.startTime = value;\n\t\t}\n\t});\n\tconst currentTime = computed({\n\t\tget() {\n\t\t\treturn store.currentTime;\n\t\t},\n\t\tset(value) {\n\t\t\tstore.currentTime = value;\n\t\t\tif (animate.value) {\n\t\t\t\tanimate.value.currentTime = value;\n\t\t\t\tsyncResume();\n\t\t\t}\n\t\t}\n\t});\n\tconst timeline = computed({\n\t\tget() {\n\t\t\treturn store.timeline;\n\t\t},\n\t\tset(value) {\n\t\t\tstore.timeline = value;\n\t\t\tif (animate.value) animate.value.timeline = value;\n\t\t}\n\t});\n\tconst playbackRate = computed({\n\t\tget() {\n\t\t\treturn store.playbackRate;\n\t\t},\n\t\tset(value) {\n\t\t\tstore.playbackRate = value;\n\t\t\tif (animate.value) animate.value.playbackRate = value;\n\t\t}\n\t});\n\tconst play = () => {\n\t\tif (animate.value) try {\n\t\t\tanimate.value.play();\n\t\t\tsyncResume();\n\t\t} catch (e) {\n\t\t\tsyncPause();\n\t\t\tonError(e);\n\t\t}\n\t\telse update();\n\t};\n\tconst pause = () => {\n\t\ttry {\n\t\t\tvar _animate$value;\n\t\t\t(_animate$value = animate.value) === null || _animate$value === void 0 || _animate$value.pause();\n\t\t\tsyncPause();\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t}\n\t};\n\tconst reverse = () => {\n\t\tif (!animate.value) update();\n\t\ttry {\n\t\t\tvar _animate$value2;\n\t\t\t(_animate$value2 = animate.value) === null || _animate$value2 === void 0 || _animate$value2.reverse();\n\t\t\tsyncResume();\n\t\t} catch (e) {\n\t\t\tsyncPause();\n\t\t\tonError(e);\n\t\t}\n\t};\n\tconst finish = () => {\n\t\ttry {\n\t\t\tvar _animate$value3;\n\t\t\t(_animate$value3 = animate.value) === null || _animate$value3 === void 0 || _animate$value3.finish();\n\t\t\tsyncPause();\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t}\n\t};\n\tconst cancel = () => {\n\t\ttry {\n\t\t\tvar _animate$value4;\n\t\t\t(_animate$value4 = animate.value) === null || _animate$value4 === void 0 || _animate$value4.cancel();\n\t\t\tsyncPause();\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t}\n\t};\n\twatch(() => unrefElement(target), (el) => {\n\t\tif (el) update(true);\n\t\telse animate.value = void 0;\n\t});\n\twatch(() => keyframes, (value) => {\n\t\tif (animate.value) {\n\t\t\tupdate();\n\t\t\tconst targetEl = unrefElement(target);\n\t\t\tif (targetEl) animate.value.effect = new KeyframeEffect(targetEl, toValue(value), animateOptions);\n\t\t}\n\t}, { deep: true });\n\ttryOnMounted(() => update(true), false);\n\ttryOnScopeDispose(cancel);\n\tfunction update(init) {\n\t\tconst el = unrefElement(target);\n\t\tif (!isSupported.value || !el) return;\n\t\tif (!animate.value) animate.value = el.animate(toValue(keyframes), animateOptions);\n\t\tif (persist) animate.value.persist();\n\t\tif (_playbackRate !== 1) animate.value.playbackRate = _playbackRate;\n\t\tif (init && !immediate) animate.value.pause();\n\t\telse syncResume();\n\t\tonReady === null || onReady === void 0 || onReady(animate.value);\n\t}\n\tconst listenerOptions = { passive: true };\n\tuseEventListener(animate, [\n\t\t\"cancel\",\n\t\t\"finish\",\n\t\t\"remove\"\n\t], syncPause, listenerOptions);\n\tuseEventListener(animate, \"finish\", () => {\n\t\tvar _animate$value5;\n\t\tif (commitStyles) (_animate$value5 = animate.value) === null || _animate$value5 === void 0 || _animate$value5.commitStyles();\n\t}, listenerOptions);\n\tconst { resume: resumeRef, pause: pauseRef } = useRafFn(() => {\n\t\tif (!animate.value) return;\n\t\tstore.pending = animate.value.pending;\n\t\tstore.playState = animate.value.playState;\n\t\tstore.replaceState = animate.value.replaceState;\n\t\tstore.startTime = animate.value.startTime;\n\t\tstore.currentTime = animate.value.currentTime;\n\t\tstore.timeline = animate.value.timeline;\n\t\tstore.playbackRate = animate.value.playbackRate;\n\t}, { immediate: false });\n\tfunction syncResume() {\n\t\tif (isSupported.value) resumeRef();\n\t}\n\tfunction syncPause() {\n\t\tif (isSupported.value && window$1) window$1.requestAnimationFrame(pauseRef);\n\t}\n\treturn {\n\t\tisSupported,\n\t\tanimate,\n\t\tplay,\n\t\tpause,\n\t\treverse,\n\t\tfinish,\n\t\tcancel,\n\t\tpending,\n\t\tplayState,\n\t\treplaceState,\n\t\tstartTime,\n\t\tcurrentTime,\n\t\ttimeline,\n\t\tplaybackRate\n\t};\n}\n\n//#endregion\n//#region useAsyncQueue/index.ts\n/**\n* Asynchronous queue task controller.\n*\n* @see https://vueuse.org/useAsyncQueue\n* @param tasks\n* @param options\n*/\nfunction useAsyncQueue(tasks, options) {\n\tconst { interrupt = true, onError = noop, onFinished = noop, signal } = options || {};\n\tconst promiseState = {\n\t\taborted: \"aborted\",\n\t\tfulfilled: \"fulfilled\",\n\t\tpending: \"pending\",\n\t\trejected: \"rejected\"\n\t};\n\tconst result = reactive(Array.from(Array.from({ length: tasks.length }), () => ({\n\t\tstate: promiseState.pending,\n\t\tdata: null\n\t})));\n\tconst activeIndex = shallowRef(-1);\n\tif (!tasks || tasks.length === 0) {\n\t\tonFinished();\n\t\treturn {\n\t\t\tactiveIndex,\n\t\t\tresult\n\t\t};\n\t}\n\tfunction updateResult(state, res) {\n\t\tactiveIndex.value++;\n\t\tresult[activeIndex.value].data = res;\n\t\tresult[activeIndex.value].state = state;\n\t}\n\ttasks.reduce((prev, curr) => {\n\t\treturn prev.then((prevRes) => {\n\t\t\tvar _result$activeIndex$v;\n\t\t\tif (signal === null || signal === void 0 ? void 0 : signal.aborted) {\n\t\t\t\tupdateResult(promiseState.aborted, /* @__PURE__ */ new Error(\"aborted\"));\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (((_result$activeIndex$v = result[activeIndex.value]) === null || _result$activeIndex$v === void 0 ? void 0 : _result$activeIndex$v.state) === promiseState.rejected && interrupt) {\n\t\t\t\tonFinished();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst done = curr(prevRes).then((currentRes) => {\n\t\t\t\tupdateResult(promiseState.fulfilled, currentRes);\n\t\t\t\tif (activeIndex.value === tasks.length - 1) onFinished();\n\t\t\t\treturn currentRes;\n\t\t\t});\n\t\t\tif (!signal) return done;\n\t\t\treturn Promise.race([done, whenAborted(signal)]);\n\t\t}).catch((e) => {\n\t\t\tif (signal === null || signal === void 0 ? void 0 : signal.aborted) {\n\t\t\t\tupdateResult(promiseState.aborted, e);\n\t\t\t\treturn e;\n\t\t\t}\n\t\t\tupdateResult(promiseState.rejected, e);\n\t\t\tonError();\n\t\t\tif (activeIndex.value === tasks.length - 1) onFinished();\n\t\t\treturn e;\n\t\t});\n\t}, Promise.resolve());\n\treturn {\n\t\tactiveIndex,\n\t\tresult\n\t};\n}\nfunction whenAborted(signal) {\n\treturn new Promise((resolve, reject) => {\n\t\tconst error = /* @__PURE__ */ new Error(\"aborted\");\n\t\tif (signal.aborted) reject(error);\n\t\telse signal.addEventListener(\"abort\", () => reject(error), { once: true });\n\t});\n}\n\n//#endregion\n//#region useAsyncState/index.ts\n/**\n* Reactive async state. Will not block your setup function and will trigger changes once\n* the promise is ready.\n*\n* @see https://vueuse.org/useAsyncState\n* @param promise The promise / async function to be resolved\n* @param initialState The initial state, used until the first evaluation finishes\n* @param options\n*/\nfunction useAsyncState(promise, initialState, options) {\n\tvar _globalThis$reportErr;\n\tconst { immediate = true, delay = 0, onError = (_globalThis$reportErr = globalThis.reportError) !== null && _globalThis$reportErr !== void 0 ? _globalThis$reportErr : noop, onSuccess = noop, resetOnExecute = true, shallow = true, throwError } = options !== null && options !== void 0 ? options : {};\n\tconst state = shallow ? shallowRef(initialState) : ref(initialState);\n\tconst isReady = shallowRef(false);\n\tconst isLoading = shallowRef(false);\n\tconst error = shallowRef(void 0);\n\tlet executionsCount = 0;\n\tasync function execute(delay$1 = 0, ...args) {\n\t\tconst executionId = executionsCount += 1;\n\t\tif (resetOnExecute) state.value = toValue(initialState);\n\t\terror.value = void 0;\n\t\tisReady.value = false;\n\t\tisLoading.value = true;\n\t\tif (delay$1 > 0) await promiseTimeout(delay$1);\n\t\tconst _promise = typeof promise === \"function\" ? promise(...args) : promise;\n\t\ttry {\n\t\t\tconst data = await _promise;\n\t\t\tif (executionId === executionsCount) {\n\t\t\t\tstate.value = data;\n\t\t\t\tisReady.value = true;\n\t\t\t}\n\t\t\tonSuccess(data);\n\t\t} catch (e) {\n\t\t\tif (executionId === executionsCount) error.value = e;\n\t\t\tonError(e);\n\t\t\tif (throwError) throw e;\n\t\t} finally {\n\t\t\tif (executionId === executionsCount) isLoading.value = false;\n\t\t}\n\t\treturn state.value;\n\t}\n\tif (immediate) execute(delay);\n\tconst shell = {\n\t\tstate,\n\t\tisReady,\n\t\tisLoading,\n\t\terror,\n\t\texecute,\n\t\texecuteImmediate: (...args) => execute(0, ...args)\n\t};\n\tfunction waitUntilIsLoaded() {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tuntil(isLoading).toBe(false).then(() => resolve(shell)).catch(reject);\n\t\t});\n\t}\n\treturn {\n\t\t...shell,\n\t\tthen(onFulfilled, onRejected) {\n\t\t\treturn waitUntilIsLoaded().then(onFulfilled, onRejected);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region useBase64/serialization.ts\nconst defaults = {\n\tarray: (v) => JSON.stringify(v),\n\tobject: (v) => JSON.stringify(v),\n\tset: (v) => JSON.stringify(Array.from(v)),\n\tmap: (v) => JSON.stringify(Object.fromEntries(v)),\n\tnull: () => \"\"\n};\nfunction getDefaultSerialization(target) {\n\tif (!target) return defaults.null;\n\tif (target instanceof Map) return defaults.map;\n\telse if (target instanceof Set) return defaults.set;\n\telse if (Array.isArray(target)) return defaults.array;\n\telse return defaults.object;\n}\n\n//#endregion\n//#region useBase64/index.ts\nfunction useBase64(target, options) {\n\tconst base64 = shallowRef(\"\");\n\tconst promise = shallowRef();\n\tfunction execute() {\n\t\tif (!isClient) return;\n\t\tpromise.value = new Promise((resolve, reject) => {\n\t\t\ttry {\n\t\t\t\tconst _target = toValue(target);\n\t\t\t\tif (_target == null) resolve(\"\");\n\t\t\t\telse if (typeof _target === \"string\") resolve(blobToBase64(new Blob([_target], { type: \"text/plain\" })));\n\t\t\t\telse if (_target instanceof Blob) resolve(blobToBase64(_target));\n\t\t\t\telse if (_target instanceof ArrayBuffer) resolve(window.btoa(String.fromCharCode(...new Uint8Array(_target))));\n\t\t\t\telse if (_target instanceof HTMLCanvasElement) resolve(_target.toDataURL(options === null || options === void 0 ? void 0 : options.type, options === null || options === void 0 ? void 0 : options.quality));\n\t\t\t\telse if (_target instanceof HTMLImageElement) {\n\t\t\t\t\tconst img = _target.cloneNode(false);\n\t\t\t\t\timg.crossOrigin = \"Anonymous\";\n\t\t\t\t\timgLoaded(img).then(() => {\n\t\t\t\t\t\tconst canvas = document.createElement(\"canvas\");\n\t\t\t\t\t\tconst ctx = canvas.getContext(\"2d\");\n\t\t\t\t\t\tcanvas.width = img.width;\n\t\t\t\t\t\tcanvas.height = img.height;\n\t\t\t\t\t\tctx.drawImage(img, 0, 0, canvas.width, canvas.height);\n\t\t\t\t\t\tresolve(canvas.toDataURL(options === null || options === void 0 ? void 0 : options.type, options === null || options === void 0 ? void 0 : options.quality));\n\t\t\t\t\t}).catch(reject);\n\t\t\t\t} else if (typeof _target === \"object\") {\n\t\t\t\t\tconst serialized = ((options === null || options === void 0 ? void 0 : options.serializer) || getDefaultSerialization(_target))(_target);\n\t\t\t\t\treturn resolve(blobToBase64(new Blob([serialized], { type: \"application/json\" })));\n\t\t\t\t} else reject(/* @__PURE__ */ new Error(\"target is unsupported types\"));\n\t\t\t} catch (error) {\n\t\t\t\treject(error);\n\t\t\t}\n\t\t});\n\t\tpromise.value.then((res) => {\n\t\t\tbase64.value = (options === null || options === void 0 ? void 0 : options.dataUrl) === false ? res.replace(/^data:.*?;base64,/, \"\") : res;\n\t\t});\n\t\treturn promise.value;\n\t}\n\tif (isRef(target) || typeof target === \"function\") watch(target, execute, { immediate: true });\n\telse execute();\n\treturn {\n\t\tbase64,\n\t\tpromise,\n\t\texecute\n\t};\n}\nfunction imgLoaded(img) {\n\treturn new Promise((resolve, reject) => {\n\t\tif (!img.complete) {\n\t\t\timg.onload = () => {\n\t\t\t\tresolve();\n\t\t\t};\n\t\t\timg.onerror = reject;\n\t\t} else resolve();\n\t});\n}\nfunction blobToBase64(blob) {\n\treturn new Promise((resolve, reject) => {\n\t\tconst fr = new FileReader();\n\t\tfr.onload = (e) => {\n\t\t\tresolve(e.target.result);\n\t\t};\n\t\tfr.onerror = reject;\n\t\tfr.readAsDataURL(blob);\n\t});\n}\n\n//#endregion\n//#region useBattery/index.ts\n/**\n* Reactive Battery Status API.\n*\n* @see https://vueuse.org/useBattery\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useBattery(options = {}) {\n\tconst { navigator: navigator$1 = defaultNavigator } = options;\n\tconst events$1 = [\n\t\t\"chargingchange\",\n\t\t\"chargingtimechange\",\n\t\t\"dischargingtimechange\",\n\t\t\"levelchange\"\n\t];\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator$1 && \"getBattery\" in navigator$1 && typeof navigator$1.getBattery === \"function\");\n\tconst charging = shallowRef(false);\n\tconst chargingTime = shallowRef(0);\n\tconst dischargingTime = shallowRef(0);\n\tconst level = shallowRef(1);\n\tlet battery;\n\tfunction updateBatteryInfo() {\n\t\tcharging.value = this.charging;\n\t\tchargingTime.value = this.chargingTime || 0;\n\t\tdischargingTime.value = this.dischargingTime || 0;\n\t\tlevel.value = this.level;\n\t}\n\tif (isSupported.value) navigator$1.getBattery().then((_battery) => {\n\t\tbattery = _battery;\n\t\tupdateBatteryInfo.call(battery);\n\t\tuseEventListener(battery, events$1, updateBatteryInfo, { passive: true });\n\t});\n\treturn {\n\t\tisSupported,\n\t\tcharging,\n\t\tchargingTime,\n\t\tdischargingTime,\n\t\tlevel\n\t};\n}\n\n//#endregion\n//#region useBluetooth/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction useBluetooth(options) {\n\tlet { acceptAllDevices = false } = options || {};\n\tconst { filters = void 0, optionalServices = void 0, navigator: navigator$1 = defaultNavigator } = options || {};\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator$1 && \"bluetooth\" in navigator$1);\n\tconst device = shallowRef();\n\tconst error = shallowRef(null);\n\twatch(device, () => {\n\t\tconnectToBluetoothGATTServer();\n\t});\n\tasync function requestDevice() {\n\t\tif (!isSupported.value) return;\n\t\terror.value = null;\n\t\tif (filters && filters.length > 0) acceptAllDevices = false;\n\t\ttry {\n\t\t\tdevice.value = await (navigator$1 === null || navigator$1 === void 0 ? void 0 : navigator$1.bluetooth.requestDevice({\n\t\t\t\tacceptAllDevices,\n\t\t\t\tfilters,\n\t\t\t\toptionalServices\n\t\t\t}));\n\t\t} catch (err) {\n\t\t\terror.value = err;\n\t\t}\n\t}\n\tconst server = shallowRef();\n\tconst isConnected = shallowRef(false);\n\tfunction reset() {\n\t\tisConnected.value = false;\n\t\tdevice.value = void 0;\n\t\tserver.value = void 0;\n\t}\n\tasync function connectToBluetoothGATTServer() {\n\t\terror.value = null;\n\t\tif (device.value && device.value.gatt) {\n\t\t\tuseEventListener(device, \"gattserverdisconnected\", reset, { passive: true });\n\t\t\ttry {\n\t\t\t\tserver.value = await device.value.gatt.connect();\n\t\t\t\tisConnected.value = server.value.connected;\n\t\t\t} catch (err) {\n\t\t\t\terror.value = err;\n\t\t\t}\n\t\t}\n\t}\n\ttryOnMounted(() => {\n\t\tvar _device$value$gatt;\n\t\tif (device.value) (_device$value$gatt = device.value.gatt) === null || _device$value$gatt === void 0 || _device$value$gatt.connect();\n\t});\n\ttryOnScopeDispose(() => {\n\t\tvar _device$value$gatt2;\n\t\tif (device.value) (_device$value$gatt2 = device.value.gatt) === null || _device$value$gatt2 === void 0 || _device$value$gatt2.disconnect();\n\t});\n\treturn {\n\t\tisSupported,\n\t\tisConnected: readonly(isConnected),\n\t\tdevice,\n\t\trequestDevice,\n\t\tserver,\n\t\terror\n\t};\n}\n\n//#endregion\n//#region useSSRWidth/index.ts\nconst ssrWidthSymbol = Symbol(\"vueuse-ssr-width\");\n/* @__NO_SIDE_EFFECTS__ */\nfunction useSSRWidth() {\n\tconst ssrWidth = hasInjectionContext() ? injectLocal(ssrWidthSymbol, null) : null;\n\treturn typeof ssrWidth === \"number\" ? ssrWidth : void 0;\n}\nfunction provideSSRWidth(width, app) {\n\tif (app !== void 0) app.provide(ssrWidthSymbol, width);\n\telse provideLocal(ssrWidthSymbol, width);\n}\n\n//#endregion\n//#region useMediaQuery/index.ts\n/**\n* Reactive Media Query.\n*\n* @see https://vueuse.org/useMediaQuery\n* @param query\n* @param options\n*/\nfunction useMediaQuery(query, options = {}) {\n\tconst { window: window$1 = defaultWindow, ssrWidth = /* @__PURE__ */ useSSRWidth() } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window$1 && \"matchMedia\" in window$1 && typeof window$1.matchMedia === \"function\");\n\tconst ssrSupport = shallowRef(typeof ssrWidth === \"number\");\n\tconst mediaQuery = shallowRef();\n\tconst matches = shallowRef(false);\n\tconst handler = (event) => {\n\t\tmatches.value = event.matches;\n\t};\n\twatchEffect(() => {\n\t\tif (ssrSupport.value) {\n\t\t\tssrSupport.value = !isSupported.value;\n\t\t\tmatches.value = toValue(query).split(\",\").some((queryString) => {\n\t\t\t\tconst not = queryString.includes(\"not all\");\n\t\t\t\tconst minWidth = queryString.match(/\\(\\s*min-width:\\s*(-?\\d+(?:\\.\\d*)?[a-z]+\\s*)\\)/);\n\t\t\t\tconst maxWidth = queryString.match(/\\(\\s*max-width:\\s*(-?\\d+(?:\\.\\d*)?[a-z]+\\s*)\\)/);\n\t\t\t\tlet res = Boolean(minWidth || maxWidth);\n\t\t\t\tif (minWidth && res) res = ssrWidth >= pxValue(minWidth[1]);\n\t\t\t\tif (maxWidth && res) res = ssrWidth <= pxValue(maxWidth[1]);\n\t\t\t\treturn not ? !res : res;\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tif (!isSupported.value) return;\n\t\tmediaQuery.value = window$1.matchMedia(toValue(query));\n\t\tmatches.value = mediaQuery.value.matches;\n\t});\n\tuseEventListener(mediaQuery, \"change\", handler, { passive: true });\n\treturn computed(() => matches.value);\n}\n\n//#endregion\n//#region useBreakpoints/breakpoints.ts\n/**\n* Breakpoints from Tailwind V2\n*\n* @see https://tailwindcss.com/docs/breakpoints\n*/\nconst breakpointsTailwind = {\n\t\"sm\": 640,\n\t\"md\": 768,\n\t\"lg\": 1024,\n\t\"xl\": 1280,\n\t\"2xl\": 1536\n};\n/**\n* Breakpoints from Bootstrap V5\n*\n* @see https://getbootstrap.com/docs/5.0/layout/breakpoints\n*/\nconst breakpointsBootstrapV5 = {\n\txs: 0,\n\tsm: 576,\n\tmd: 768,\n\tlg: 992,\n\txl: 1200,\n\txxl: 1400\n};\n/**\n* Breakpoints from Vuetify V2\n*\n* @see https://v2.vuetifyjs.com/en/features/breakpoints/\n*/\nconst breakpointsVuetifyV2 = {\n\txs: 0,\n\tsm: 600,\n\tmd: 960,\n\tlg: 1264,\n\txl: 1904\n};\n/**\n* Breakpoints from Vuetify V3\n*\n* @see https://vuetifyjs.com/en/styles/float/#overview\n*/\nconst breakpointsVuetifyV3 = {\n\txs: 0,\n\tsm: 600,\n\tmd: 960,\n\tlg: 1280,\n\txl: 1920,\n\txxl: 2560\n};\n/**\n* Alias to `breakpointsVuetifyV2`\n*\n* @deprecated explictly use `breakpointsVuetifyV2` or `breakpointsVuetifyV3` instead\n*/\nconst breakpointsVuetify = breakpointsVuetifyV2;\n/**\n* Breakpoints from Ant Design\n*\n* @see https://ant.design/components/layout/#breakpoint-width\n*/\nconst breakpointsAntDesign = {\n\txs: 480,\n\tsm: 576,\n\tmd: 768,\n\tlg: 992,\n\txl: 1200,\n\txxl: 1600\n};\n/**\n* Breakpoints from Quasar V2\n*\n* @see https://quasar.dev/style/breakpoints\n*/\nconst breakpointsQuasar = {\n\txs: 0,\n\tsm: 600,\n\tmd: 1024,\n\tlg: 1440,\n\txl: 1920\n};\n/**\n* Sematic Breakpoints\n*/\nconst breakpointsSematic = {\n\tmobileS: 320,\n\tmobileM: 375,\n\tmobileL: 425,\n\ttablet: 768,\n\tlaptop: 1024,\n\tlaptopL: 1440,\n\tdesktop4K: 2560\n};\n/**\n* Breakpoints from Master CSS\n*\n* @see https://docs.master.co/css/breakpoints\n*/\nconst breakpointsMasterCss = {\n\t\"3xs\": 360,\n\t\"2xs\": 480,\n\t\"xs\": 600,\n\t\"sm\": 768,\n\t\"md\": 1024,\n\t\"lg\": 1280,\n\t\"xl\": 1440,\n\t\"2xl\": 1600,\n\t\"3xl\": 1920,\n\t\"4xl\": 2560\n};\n/**\n* Breakpoints from PrimeFlex\n*\n* @see https://primeflex.org/installation\n*/\nconst breakpointsPrimeFlex = {\n\tsm: 576,\n\tmd: 768,\n\tlg: 992,\n\txl: 1200\n};\n/**\n* Breakpoints from ElementUI/ElementPlus\n*\n* @see https://element.eleme.io/#/en-US/component/layout\n* @see https://element-plus.org/en-US/component/layout.html\n*/\nconst breakpointsElement = {\n\txs: 0,\n\tsm: 768,\n\tmd: 992,\n\tlg: 1200,\n\txl: 1920\n};\n\n//#endregion\n//#region useBreakpoints/index.ts\n/**\n* Reactively viewport breakpoints\n*\n* @see https://vueuse.org/useBreakpoints\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useBreakpoints(breakpoints, options = {}) {\n\tfunction getValue$1(k, delta) {\n\t\tlet v = toValue(breakpoints[toValue(k)]);\n\t\tif (delta != null) v = increaseWithUnit(v, delta);\n\t\tif (typeof v === \"number\") v = `${v}px`;\n\t\treturn v;\n\t}\n\tconst { window: window$1 = defaultWindow, strategy = \"min-width\", ssrWidth = /* @__PURE__ */ useSSRWidth() } = options;\n\tconst ssrSupport = typeof ssrWidth === \"number\";\n\tconst mounted = ssrSupport ? shallowRef(false) : { value: true };\n\tif (ssrSupport) tryOnMounted(() => mounted.value = !!window$1);\n\tfunction match(query, size) {\n\t\tif (!mounted.value && ssrSupport) return query === \"min\" ? ssrWidth >= pxValue(size) : ssrWidth <= pxValue(size);\n\t\tif (!window$1) return false;\n\t\treturn window$1.matchMedia(`(${query}-width: ${size})`).matches;\n\t}\n\tconst greaterOrEqual = (k) => {\n\t\treturn useMediaQuery(() => `(min-width: ${getValue$1(k)})`, options);\n\t};\n\tconst smallerOrEqual = (k) => {\n\t\treturn useMediaQuery(() => `(max-width: ${getValue$1(k)})`, options);\n\t};\n\tconst shortcutMethods = Object.keys(breakpoints).reduce((shortcuts, k) => {\n\t\tObject.defineProperty(shortcuts, k, {\n\t\t\tget: () => strategy === \"min-width\" ? greaterOrEqual(k) : smallerOrEqual(k),\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true\n\t\t});\n\t\treturn shortcuts;\n\t}, {});\n\tfunction current() {\n\t\tconst points = Object.keys(breakpoints).map((k) => [\n\t\t\tk,\n\t\t\tshortcutMethods[k],\n\t\t\tpxValue(getValue$1(k))\n\t\t]).sort((a, b) => a[2] - b[2]);\n\t\treturn computed(() => points.filter(([, v]) => v.value).map(([k]) => k));\n\t}\n\treturn Object.assign(shortcutMethods, {\n\t\tgreaterOrEqual,\n\t\tsmallerOrEqual,\n\t\tgreater(k) {\n\t\t\treturn useMediaQuery(() => `(min-width: ${getValue$1(k, .1)})`, options);\n\t\t},\n\t\tsmaller(k) {\n\t\t\treturn useMediaQuery(() => `(max-width: ${getValue$1(k, -.1)})`, options);\n\t\t},\n\t\tbetween(a, b) {\n\t\t\treturn useMediaQuery(() => `(min-width: ${getValue$1(a)}) and (max-width: ${getValue$1(b, -.1)})`, options);\n\t\t},\n\t\tisGreater(k) {\n\t\t\treturn match(\"min\", getValue$1(k, .1));\n\t\t},\n\t\tisGreaterOrEqual(k) {\n\t\t\treturn match(\"min\", getValue$1(k));\n\t\t},\n\t\tisSmaller(k) {\n\t\t\treturn match(\"max\", getValue$1(k, -.1));\n\t\t},\n\t\tisSmallerOrEqual(k) {\n\t\t\treturn match(\"max\", getValue$1(k));\n\t\t},\n\t\tisInBetween(a, b) {\n\t\t\treturn match(\"min\", getValue$1(a)) && match(\"max\", getValue$1(b, -.1));\n\t\t},\n\t\tcurrent,\n\t\tactive() {\n\t\t\tconst bps = current();\n\t\t\treturn computed(() => bps.value.length === 0 ? \"\" : bps.value.at(strategy === \"min-width\" ? -1 : 0));\n\t\t}\n\t});\n}\n\n//#endregion\n//#region useBroadcastChannel/index.ts\n/**\n* Reactive BroadcastChannel\n*\n* @see https://vueuse.org/useBroadcastChannel\n* @see https://developer.mozilla.org/en-US/docs/Web/API/BroadcastChannel\n* @param options\n*\n*/\nfunction useBroadcastChannel(options) {\n\tconst { name, window: window$1 = defaultWindow } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window$1 && \"BroadcastChannel\" in window$1);\n\tconst isClosed = shallowRef(false);\n\tconst channel = ref();\n\tconst data = ref();\n\tconst error = shallowRef(null);\n\tconst post = (data$1) => {\n\t\tif (channel.value) channel.value.postMessage(data$1);\n\t};\n\tconst close = () => {\n\t\tif (channel.value) channel.value.close();\n\t\tisClosed.value = true;\n\t};\n\tif (isSupported.value) tryOnMounted(() => {\n\t\terror.value = null;\n\t\tchannel.value = new BroadcastChannel(name);\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(channel, \"message\", (e) => {\n\t\t\tdata.value = e.data;\n\t\t}, listenerOptions);\n\t\tuseEventListener(channel, \"messageerror\", (e) => {\n\t\t\terror.value = e;\n\t\t}, listenerOptions);\n\t\tuseEventListener(channel, \"close\", () => {\n\t\t\tisClosed.value = true;\n\t\t}, listenerOptions);\n\t});\n\ttryOnScopeDispose(() => {\n\t\tclose();\n\t});\n\treturn {\n\t\tisSupported,\n\t\tchannel,\n\t\tdata,\n\t\tpost,\n\t\tclose,\n\t\terror,\n\t\tisClosed\n\t};\n}\n\n//#endregion\n//#region useBrowserLocation/index.ts\nconst WRITABLE_PROPERTIES = [\n\t\"hash\",\n\t\"host\",\n\t\"hostname\",\n\t\"href\",\n\t\"pathname\",\n\t\"port\",\n\t\"protocol\",\n\t\"search\"\n];\n/**\n* Reactive browser location.\n*\n* @see https://vueuse.org/useBrowserLocation\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useBrowserLocation(options = {}) {\n\tconst { window: window$1 = defaultWindow } = options;\n\tconst refs = Object.fromEntries(WRITABLE_PROPERTIES.map((key) => [key, ref()]));\n\tfor (const [key, ref$1] of objectEntries(refs)) watch(ref$1, (value) => {\n\t\tif (!(window$1 === null || window$1 === void 0 ? void 0 : window$1.location) || window$1.location[key] === value) return;\n\t\twindow$1.location[key] = value;\n\t});\n\tconst buildState = (trigger) => {\n\t\tvar _window$location;\n\t\tconst { state: state$1, length } = (window$1 === null || window$1 === void 0 ? void 0 : window$1.history) || {};\n\t\tconst { origin } = (window$1 === null || window$1 === void 0 ? void 0 : window$1.location) || {};\n\t\tfor (const key of WRITABLE_PROPERTIES) refs[key].value = window$1 === null || window$1 === void 0 || (_window$location = window$1.location) === null || _window$location === void 0 ? void 0 : _window$location[key];\n\t\treturn reactive({\n\t\t\ttrigger,\n\t\t\tstate: state$1,\n\t\t\tlength,\n\t\t\torigin,\n\t\t\t...refs\n\t\t});\n\t};\n\tconst state = ref(buildState(\"load\"));\n\tif (window$1) {\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(window$1, \"popstate\", () => state.value = buildState(\"popstate\"), listenerOptions);\n\t\tuseEventListener(window$1, \"hashchange\", () => state.value = buildState(\"hashchange\"), listenerOptions);\n\t}\n\treturn state;\n}\n\n//#endregion\n//#region useCached/index.ts\nfunction useCached(refValue, comparator = (a, b) => a === b, options) {\n\tconst { deepRefs = true,...watchOptions } = options || {};\n\tconst cachedValue = createRef(refValue.value, deepRefs);\n\twatch(() => refValue.value, (value) => {\n\t\tif (!comparator(value, cachedValue.value)) cachedValue.value = value;\n\t}, watchOptions);\n\treturn cachedValue;\n}\n\n//#endregion\n//#region usePermission/index.ts\n/**\n* Reactive Permissions API.\n*\n* @see https://vueuse.org/usePermission\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePermission(permissionDesc, options = {}) {\n\tconst { controls = false, navigator: navigator$1 = defaultNavigator } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator$1 && \"permissions\" in navigator$1);\n\tconst permissionStatus = shallowRef();\n\tconst desc = typeof permissionDesc === \"string\" ? { name: permissionDesc } : permissionDesc;\n\tconst state = shallowRef();\n\tconst update = () => {\n\t\tvar _permissionStatus$val, _permissionStatus$val2;\n\t\tstate.value = (_permissionStatus$val = (_permissionStatus$val2 = permissionStatus.value) === null || _permissionStatus$val2 === void 0 ? void 0 : _permissionStatus$val2.state) !== null && _permissionStatus$val !== void 0 ? _permissionStatus$val : \"prompt\";\n\t};\n\tuseEventListener(permissionStatus, \"change\", update, { passive: true });\n\tconst query = createSingletonPromise(async () => {\n\t\tif (!isSupported.value) return;\n\t\tif (!permissionStatus.value) try {\n\t\t\tpermissionStatus.value = await navigator$1.permissions.query(desc);\n\t\t} catch (_unused) {\n\t\t\tpermissionStatus.value = void 0;\n\t\t} finally {\n\t\t\tupdate();\n\t\t}\n\t\tif (controls) return toRaw(permissionStatus.value);\n\t});\n\tquery();\n\tif (controls) return {\n\t\tstate,\n\t\tisSupported,\n\t\tquery\n\t};\n\telse return state;\n}\n\n//#endregion\n//#region useClipboard/index.ts\nfunction useClipboard(options = {}) {\n\tconst { navigator: navigator$1 = defaultNavigator, read = false, source, copiedDuring = 1500, legacy = false } = options;\n\tconst isClipboardApiSupported = /* @__PURE__ */ useSupported(() => navigator$1 && \"clipboard\" in navigator$1);\n\tconst permissionRead = usePermission(\"clipboard-read\");\n\tconst permissionWrite = usePermission(\"clipboard-write\");\n\tconst isSupported = computed(() => isClipboardApiSupported.value || legacy);\n\tconst text = shallowRef(\"\");\n\tconst copied = shallowRef(false);\n\tconst timeout = useTimeoutFn(() => copied.value = false, copiedDuring, { immediate: false });\n\tasync function updateText() {\n\t\tlet useLegacy = !(isClipboardApiSupported.value && isAllowed(permissionRead.value));\n\t\tif (!useLegacy) try {\n\t\t\ttext.value = await navigator$1.clipboard.readText();\n\t\t} catch (_unused) {\n\t\t\tuseLegacy = true;\n\t\t}\n\t\tif (useLegacy) text.value = legacyRead();\n\t}\n\tif (isSupported.value && read) useEventListener([\"copy\", \"cut\"], updateText, { passive: true });\n\tasync function copy(value = toValue(source)) {\n\t\tif (isSupported.value && value != null) {\n\t\t\tlet useLegacy = !(isClipboardApiSupported.value && isAllowed(permissionWrite.value));\n\t\t\tif (!useLegacy) try {\n\t\t\t\tawait navigator$1.clipboard.writeText(value);\n\t\t\t} catch (_unused2) {\n\t\t\t\tuseLegacy = true;\n\t\t\t}\n\t\t\tif (useLegacy) legacyCopy(value);\n\t\t\ttext.value = value;\n\t\t\tcopied.value = true;\n\t\t\ttimeout.start();\n\t\t}\n\t}\n\tfunction legacyCopy(value) {\n\t\tconst ta = document.createElement(\"textarea\");\n\t\tta.value = value;\n\t\tta.style.position = \"absolute\";\n\t\tta.style.opacity = \"0\";\n\t\tta.setAttribute(\"readonly\", \"\");\n\t\tdocument.body.appendChild(ta);\n\t\tta.select();\n\t\tdocument.execCommand(\"copy\");\n\t\tta.remove();\n\t}\n\tfunction legacyRead() {\n\t\tvar _document$getSelectio, _document, _document$getSelectio2;\n\t\treturn (_document$getSelectio = (_document = document) === null || _document === void 0 || (_document$getSelectio2 = _document.getSelection) === null || _document$getSelectio2 === void 0 || (_document$getSelectio2 = _document$getSelectio2.call(_document)) === null || _document$getSelectio2 === void 0 ? void 0 : _document$getSelectio2.toString()) !== null && _document$getSelectio !== void 0 ? _document$getSelectio : \"\";\n\t}\n\tfunction isAllowed(status) {\n\t\treturn status === \"granted\" || status === \"prompt\";\n\t}\n\treturn {\n\t\tisSupported,\n\t\ttext: readonly(text),\n\t\tcopied: readonly(copied),\n\t\tcopy\n\t};\n}\n\n//#endregion\n//#region useClipboardItems/index.ts\nfunction useClipboardItems(options = {}) {\n\tconst { navigator: navigator$1 = defaultNavigator, read = false, source, copiedDuring = 1500 } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator$1 && \"clipboard\" in navigator$1);\n\tconst content = ref([]);\n\tconst copied = shallowRef(false);\n\tconst timeout = useTimeoutFn(() => copied.value = false, copiedDuring, { immediate: false });\n\tfunction updateContent() {\n\t\tif (isSupported.value) navigator$1.clipboard.read().then((items) => {\n\t\t\tcontent.value = items;\n\t\t});\n\t}\n\tif (isSupported.value && read) useEventListener([\"copy\", \"cut\"], updateContent, { passive: true });\n\tasync function copy(value = toValue(source)) {\n\t\tif (isSupported.value && value != null) {\n\t\t\tawait navigator$1.clipboard.write(value);\n\t\t\tcontent.value = value;\n\t\t\tcopied.value = true;\n\t\t\ttimeout.start();\n\t\t}\n\t}\n\treturn {\n\t\tisSupported,\n\t\tcontent: shallowReadonly(content),\n\t\tcopied: readonly(copied),\n\t\tcopy,\n\t\tread: updateContent\n\t};\n}\n\n//#endregion\n//#region useCloned/index.ts\nfunction cloneFnJSON(source) {\n\treturn JSON.parse(JSON.stringify(source));\n}\nfunction useCloned(source, options = {}) {\n\tconst cloned = ref({});\n\tconst isModified = shallowRef(false);\n\tlet _lastSync = false;\n\tconst { manual, clone = cloneFnJSON, deep = true, immediate = true } = options;\n\twatch(cloned, () => {\n\t\tif (_lastSync) {\n\t\t\t_lastSync = false;\n\t\t\treturn;\n\t\t}\n\t\tisModified.value = true;\n\t}, {\n\t\tdeep: true,\n\t\tflush: \"sync\"\n\t});\n\tfunction sync() {\n\t\t_lastSync = true;\n\t\tisModified.value = false;\n\t\tcloned.value = clone(toValue(source));\n\t}\n\tif (!manual && (isRef(source) || typeof source === \"function\")) watch(source, sync, {\n\t\t...options,\n\t\tdeep,\n\t\timmediate\n\t});\n\telse sync();\n\treturn {\n\t\tcloned,\n\t\tisModified,\n\t\tsync\n\t};\n}\n\n//#endregion\n//#region ssr-handlers.ts\nconst _global = typeof globalThis !== \"undefined\" ? globalThis : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : {};\nconst globalKey = \"__vueuse_ssr_handlers__\";\nconst handlers = /* @__PURE__ */ getHandlers();\nfunction getHandlers() {\n\tif (!(globalKey in _global)) _global[globalKey] = _global[globalKey] || {};\n\treturn _global[globalKey];\n}\nfunction getSSRHandler(key, fallback) {\n\treturn handlers[key] || fallback;\n}\nfunction setSSRHandler(key, fn) {\n\thandlers[key] = fn;\n}\n\n//#endregion\n//#region usePreferredDark/index.ts\n/**\n* Reactive dark theme preference.\n*\n* @see https://vueuse.org/usePreferredDark\n* @param [options]\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredDark(options) {\n\treturn useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n}\n\n//#endregion\n//#region useStorage/guess.ts\nfunction guessSerializerType(rawInit) {\n\treturn rawInit == null ? \"any\" : rawInit instanceof Set ? \"set\" : rawInit instanceof Map ? \"map\" : rawInit instanceof Date ? \"date\" : typeof rawInit === \"boolean\" ? \"boolean\" : typeof rawInit === \"string\" ? \"string\" : typeof rawInit === \"object\" ? \"object\" : !Number.isNaN(rawInit) ? \"number\" : \"any\";\n}\n\n//#endregion\n//#region useStorage/index.ts\nconst StorageSerializers = {\n\tboolean: {\n\t\tread: (v) => v === \"true\",\n\t\twrite: (v) => String(v)\n\t},\n\tobject: {\n\t\tread: (v) => JSON.parse(v),\n\t\twrite: (v) => JSON.stringify(v)\n\t},\n\tnumber: {\n\t\tread: (v) => Number.parseFloat(v),\n\t\twrite: (v) => String(v)\n\t},\n\tany: {\n\t\tread: (v) => v,\n\t\twrite: (v) => String(v)\n\t},\n\tstring: {\n\t\tread: (v) => v,\n\t\twrite: (v) => String(v)\n\t},\n\tmap: {\n\t\tread: (v) => new Map(JSON.parse(v)),\n\t\twrite: (v) => JSON.stringify(Array.from(v.entries()))\n\t},\n\tset: {\n\t\tread: (v) => new Set(JSON.parse(v)),\n\t\twrite: (v) => JSON.stringify(Array.from(v))\n\t},\n\tdate: {\n\t\tread: (v) => new Date(v),\n\t\twrite: (v) => v.toISOString()\n\t}\n};\nconst customStorageEventName = \"vueuse-storage\";\n/**\n* Reactive LocalStorage/SessionStorage.\n*\n* @see https://vueuse.org/useStorage\n*/\nfunction useStorage(key, defaults$1, storage, options = {}) {\n\tvar _options$serializer;\n\tconst { flush = \"pre\", deep = true, listenToStorageChanges = true, writeDefaults = true, mergeDefaults = false, shallow, window: window$1 = defaultWindow, eventFilter, onError = (e) => {\n\t\tconsole.error(e);\n\t}, initOnMounted } = options;\n\tconst data = (shallow ? shallowRef : ref)(typeof defaults$1 === \"function\" ? defaults$1() : defaults$1);\n\tconst keyComputed = computed(() => toValue(key));\n\tif (!storage) try {\n\t\tstorage = getSSRHandler(\"getDefaultStorage\", () => defaultWindow === null || defaultWindow === void 0 ? void 0 : defaultWindow.localStorage)();\n\t} catch (e) {\n\t\tonError(e);\n\t}\n\tif (!storage) return data;\n\tconst rawInit = toValue(defaults$1);\n\tconst type = guessSerializerType(rawInit);\n\tconst serializer = (_options$serializer = options.serializer) !== null && _options$serializer !== void 0 ? _options$serializer : StorageSerializers[type];\n\tconst { pause: pauseWatch, resume: resumeWatch } = pausableWatch(data, (newValue) => write(newValue), {\n\t\tflush,\n\t\tdeep,\n\t\teventFilter\n\t});\n\twatch(keyComputed, () => update(), { flush });\n\tlet firstMounted = false;\n\tconst onStorageEvent = (ev) => {\n\t\tif (initOnMounted && !firstMounted) return;\n\t\tupdate(ev);\n\t};\n\tconst onStorageCustomEvent = (ev) => {\n\t\tif (initOnMounted && !firstMounted) return;\n\t\tupdateFromCustomEvent(ev);\n\t};\n\t/**\n\t* The custom event is needed for same-document syncing when using custom\n\t* storage backends, but it doesn't work across different documents.\n\t*\n\t* TODO: Consider implementing a BroadcastChannel-based solution that fixes this.\n\t*/\n\tif (window$1 && listenToStorageChanges) if (storage instanceof Storage) useEventListener(window$1, \"storage\", onStorageEvent, { passive: true });\n\telse useEventListener(window$1, customStorageEventName, onStorageCustomEvent);\n\tif (initOnMounted) tryOnMounted(() => {\n\t\tfirstMounted = true;\n\t\tupdate();\n\t});\n\telse update();\n\tfunction dispatchWriteEvent(oldValue, newValue) {\n\t\tif (window$1) {\n\t\t\tconst payload = {\n\t\t\t\tkey: keyComputed.value,\n\t\t\t\toldValue,\n\t\t\t\tnewValue,\n\t\t\t\tstorageArea: storage\n\t\t\t};\n\t\t\twindow$1.dispatchEvent(storage instanceof Storage ? new StorageEvent(\"storage\", payload) : new CustomEvent(customStorageEventName, { detail: payload }));\n\t\t}\n\t}\n\tfunction write(v) {\n\t\ttry {\n\t\t\tconst oldValue = storage.getItem(keyComputed.value);\n\t\t\tif (v == null) {\n\t\t\t\tdispatchWriteEvent(oldValue, null);\n\t\t\t\tstorage.removeItem(keyComputed.value);\n\t\t\t} else {\n\t\t\t\tconst serialized = serializer.write(v);\n\t\t\t\tif (oldValue !== serialized) {\n\t\t\t\t\tstorage.setItem(keyComputed.value, serialized);\n\t\t\t\t\tdispatchWriteEvent(oldValue, serialized);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t}\n\t}\n\tfunction read(event) {\n\t\tconst rawValue = event ? event.newValue : storage.getItem(keyComputed.value);\n\t\tif (rawValue == null) {\n\t\t\tif (writeDefaults && rawInit != null) storage.setItem(keyComputed.value, serializer.write(rawInit));\n\t\t\treturn rawInit;\n\t\t} else if (!event && mergeDefaults) {\n\t\t\tconst value = serializer.read(rawValue);\n\t\t\tif (typeof mergeDefaults === \"function\") return mergeDefaults(value, rawInit);\n\t\t\telse if (type === \"object\" && !Array.isArray(value)) return {\n\t\t\t\t...rawInit,\n\t\t\t\t...value\n\t\t\t};\n\t\t\treturn value;\n\t\t} else if (typeof rawValue !== \"string\") return rawValue;\n\t\telse return serializer.read(rawValue);\n\t}\n\tfunction update(event) {\n\t\tif (event && event.storageArea !== storage) return;\n\t\tif (event && event.key == null) {\n\t\t\tdata.value = rawInit;\n\t\t\treturn;\n\t\t}\n\t\tif (event && event.key !== keyComputed.value) return;\n\t\tpauseWatch();\n\t\ttry {\n\t\t\tconst serializedData = serializer.write(data.value);\n\t\t\tif (event === void 0 || (event === null || event === void 0 ? void 0 : event.newValue) !== serializedData) data.value = read(event);\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t} finally {\n\t\t\tif (event) nextTick(resumeWatch);\n\t\t\telse resumeWatch();\n\t\t}\n\t}\n\tfunction updateFromCustomEvent(event) {\n\t\tupdate(event.detail);\n\t}\n\treturn data;\n}\n\n//#endregion\n//#region useColorMode/index.ts\nconst CSS_DISABLE_TRANS = \"*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}\";\n/**\n* Reactive color mode with auto data persistence.\n*\n* @see https://vueuse.org/useColorMode\n* @param options\n*/\nfunction useColorMode(options = {}) {\n\tconst { selector = \"html\", attribute = \"class\", initialValue = \"auto\", window: window$1 = defaultWindow, storage, storageKey = \"vueuse-color-scheme\", listenToStorageChanges = true, storageRef, emitAuto, disableTransition = true } = options;\n\tconst modes = {\n\t\tauto: \"\",\n\t\tlight: \"light\",\n\t\tdark: \"dark\",\n\t\t...options.modes || {}\n\t};\n\tconst preferredDark = usePreferredDark({ window: window$1 });\n\tconst system = computed(() => preferredDark.value ? \"dark\" : \"light\");\n\tconst store = storageRef || (storageKey == null ? toRef(initialValue) : useStorage(storageKey, initialValue, storage, {\n\t\twindow: window$1,\n\t\tlistenToStorageChanges\n\t}));\n\tconst state = computed(() => store.value === \"auto\" ? system.value : store.value);\n\tconst updateHTMLAttrs = getSSRHandler(\"updateHTMLAttrs\", (selector$1, attribute$1, value) => {\n\t\tconst el = typeof selector$1 === \"string\" ? window$1 === null || window$1 === void 0 ? void 0 : window$1.document.querySelector(selector$1) : unrefElement(selector$1);\n\t\tif (!el) return;\n\t\tconst classesToAdd = /* @__PURE__ */ new Set();\n\t\tconst classesToRemove = /* @__PURE__ */ new Set();\n\t\tlet attributeToChange = null;\n\t\tif (attribute$1 === \"class\") {\n\t\t\tconst current = value.split(/\\s/g);\n\t\t\tObject.values(modes).flatMap((i) => (i || \"\").split(/\\s/g)).filter(Boolean).forEach((v) => {\n\t\t\t\tif (current.includes(v)) classesToAdd.add(v);\n\t\t\t\telse classesToRemove.add(v);\n\t\t\t});\n\t\t} else attributeToChange = {\n\t\t\tkey: attribute$1,\n\t\t\tvalue\n\t\t};\n\t\tif (classesToAdd.size === 0 && classesToRemove.size === 0 && attributeToChange === null) return;\n\t\tlet style;\n\t\tif (disableTransition) {\n\t\t\tstyle = window$1.document.createElement(\"style\");\n\t\t\tstyle.appendChild(document.createTextNode(CSS_DISABLE_TRANS));\n\t\t\twindow$1.document.head.appendChild(style);\n\t\t}\n\t\tfor (const c of classesToAdd) el.classList.add(c);\n\t\tfor (const c of classesToRemove) el.classList.remove(c);\n\t\tif (attributeToChange) el.setAttribute(attributeToChange.key, attributeToChange.value);\n\t\tif (disableTransition) {\n\t\t\twindow$1.getComputedStyle(style).opacity;\n\t\t\tdocument.head.removeChild(style);\n\t\t}\n\t});\n\tfunction defaultOnChanged(mode) {\n\t\tvar _modes$mode;\n\t\tupdateHTMLAttrs(selector, attribute, (_modes$mode = modes[mode]) !== null && _modes$mode !== void 0 ? _modes$mode : mode);\n\t}\n\tfunction onChanged(mode) {\n\t\tif (options.onChanged) options.onChanged(mode, defaultOnChanged);\n\t\telse defaultOnChanged(mode);\n\t}\n\twatch(state, onChanged, {\n\t\tflush: \"post\",\n\t\timmediate: true\n\t});\n\ttryOnMounted(() => onChanged(state.value));\n\tconst auto = computed({\n\t\tget() {\n\t\t\treturn emitAuto ? store.value : state.value;\n\t\t},\n\t\tset(v) {\n\t\t\tstore.value = v;\n\t\t}\n\t});\n\treturn Object.assign(auto, {\n\t\tstore,\n\t\tsystem,\n\t\tstate\n\t});\n}\n\n//#endregion\n//#region useConfirmDialog/index.ts\n/**\n* Hooks for creating confirm dialogs. Useful for modal windows, popups and logins.\n*\n* @see https://vueuse.org/useConfirmDialog/\n* @param revealed `boolean` `ref` that handles a modal window\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useConfirmDialog(revealed = shallowRef(false)) {\n\tconst confirmHook = createEventHook();\n\tconst cancelHook = createEventHook();\n\tconst revealHook = createEventHook();\n\tlet _resolve = noop;\n\tconst reveal = (data) => {\n\t\trevealHook.trigger(data);\n\t\trevealed.value = true;\n\t\treturn new Promise((resolve) => {\n\t\t\t_resolve = resolve;\n\t\t});\n\t};\n\tconst confirm = (data) => {\n\t\trevealed.value = false;\n\t\tconfirmHook.trigger(data);\n\t\t_resolve({\n\t\t\tdata,\n\t\t\tisCanceled: false\n\t\t});\n\t};\n\tconst cancel = (data) => {\n\t\trevealed.value = false;\n\t\tcancelHook.trigger(data);\n\t\t_resolve({\n\t\t\tdata,\n\t\t\tisCanceled: true\n\t\t});\n\t};\n\treturn {\n\t\tisRevealed: computed(() => revealed.value),\n\t\treveal,\n\t\tconfirm,\n\t\tcancel,\n\t\tonReveal: revealHook.on,\n\t\tonConfirm: confirmHook.on,\n\t\tonCancel: cancelHook.on\n\t};\n}\n\n//#endregion\n//#region useCountdown/index.ts\n/**\n* Wrapper for `useIntervalFn` that provides a countdown timer in seconds.\n*\n* @param initialCountdown\n* @param options\n*\n* @see https://vueuse.org/useCountdown\n*/\nfunction useCountdown(initialCountdown, options) {\n\tvar _options$interval, _options$immediate;\n\tconst remaining = shallowRef(toValue(initialCountdown));\n\tconst intervalController = useIntervalFn(() => {\n\t\tvar _options$onTick;\n\t\tconst value = remaining.value - 1;\n\t\tremaining.value = value < 0 ? 0 : value;\n\t\toptions === null || options === void 0 || (_options$onTick = options.onTick) === null || _options$onTick === void 0 || _options$onTick.call(options);\n\t\tif (remaining.value <= 0) {\n\t\t\tvar _options$onComplete;\n\t\t\tintervalController.pause();\n\t\t\toptions === null || options === void 0 || (_options$onComplete = options.onComplete) === null || _options$onComplete === void 0 || _options$onComplete.call(options);\n\t\t}\n\t}, (_options$interval = options === null || options === void 0 ? void 0 : options.interval) !== null && _options$interval !== void 0 ? _options$interval : 1e3, { immediate: (_options$immediate = options === null || options === void 0 ? void 0 : options.immediate) !== null && _options$immediate !== void 0 ? _options$immediate : false });\n\tconst reset = (countdown) => {\n\t\tvar _toValue;\n\t\tremaining.value = (_toValue = toValue(countdown)) !== null && _toValue !== void 0 ? _toValue : toValue(initialCountdown);\n\t};\n\tconst stop = () => {\n\t\tintervalController.pause();\n\t\treset();\n\t};\n\tconst resume = () => {\n\t\tif (!intervalController.isActive.value) {\n\t\t\tif (remaining.value > 0) intervalController.resume();\n\t\t}\n\t};\n\tconst start = (countdown) => {\n\t\treset(countdown);\n\t\tintervalController.resume();\n\t};\n\treturn {\n\t\tremaining,\n\t\treset,\n\t\tstop,\n\t\tstart,\n\t\tpause: intervalController.pause,\n\t\tresume,\n\t\tisActive: intervalController.isActive\n\t};\n}\n\n//#endregion\n//#region useCssVar/index.ts\n/**\n* Manipulate CSS variables.\n*\n* @see https://vueuse.org/useCssVar\n* @param prop\n* @param target\n* @param options\n*/\nfunction useCssVar(prop, target, options = {}) {\n\tconst { window: window$1 = defaultWindow, initialValue, observe = false } = options;\n\tconst variable = shallowRef(initialValue);\n\tconst elRef = computed(() => {\n\t\tvar _window$document;\n\t\treturn unrefElement(target) || (window$1 === null || window$1 === void 0 || (_window$document = window$1.document) === null || _window$document === void 0 ? void 0 : _window$document.documentElement);\n\t});\n\tfunction updateCssVar() {\n\t\tconst key = toValue(prop);\n\t\tconst el = toValue(elRef);\n\t\tif (el && window$1 && key) {\n\t\t\tvar _window$getComputedSt;\n\t\t\tvariable.value = ((_window$getComputedSt = window$1.getComputedStyle(el).getPropertyValue(key)) === null || _window$getComputedSt === void 0 ? void 0 : _window$getComputedSt.trim()) || variable.value || initialValue;\n\t\t}\n\t}\n\tif (observe) useMutationObserver(elRef, updateCssVar, {\n\t\tattributeFilter: [\"style\", \"class\"],\n\t\twindow: window$1\n\t});\n\twatch([elRef, () => toValue(prop)], (_, old) => {\n\t\tif (old[0] && old[1]) old[0].style.removeProperty(old[1]);\n\t\tupdateCssVar();\n\t}, { immediate: true });\n\twatch([variable, elRef], ([val, el]) => {\n\t\tconst raw_prop = toValue(prop);\n\t\tif ((el === null || el === void 0 ? void 0 : el.style) && raw_prop) if (val == null) el.style.removeProperty(raw_prop);\n\t\telse el.style.setProperty(raw_prop, val);\n\t}, { immediate: true });\n\treturn variable;\n}\n\n//#endregion\n//#region useCurrentElement/index.ts\nfunction useCurrentElement(rootComponent) {\n\tconst vm = getCurrentInstance();\n\tconst currentElement = computedWithControl(() => null, () => rootComponent ? unrefElement(rootComponent) : vm.proxy.$el);\n\tonUpdated(currentElement.trigger);\n\tonMounted(currentElement.trigger);\n\treturn currentElement;\n}\n\n//#endregion\n//#region useCycleList/index.ts\n/**\n* Cycle through a list of items\n*\n* @see https://vueuse.org/useCycleList\n*/\nfunction useCycleList(list, options) {\n\tconst state = shallowRef(getInitialValue());\n\tconst listRef = toRef(list);\n\tconst index = computed({\n\t\tget() {\n\t\t\tvar _options$fallbackInde;\n\t\t\tconst targetList = listRef.value;\n\t\t\tlet index$1 = (options === null || options === void 0 ? void 0 : options.getIndexOf) ? options.getIndexOf(state.value, targetList) : targetList.indexOf(state.value);\n\t\t\tif (index$1 < 0) index$1 = (_options$fallbackInde = options === null || options === void 0 ? void 0 : options.fallbackIndex) !== null && _options$fallbackInde !== void 0 ? _options$fallbackInde : 0;\n\t\t\treturn index$1;\n\t\t},\n\t\tset(v) {\n\t\t\tset(v);\n\t\t}\n\t});\n\tfunction set(i) {\n\t\tconst targetList = listRef.value;\n\t\tconst length = targetList.length;\n\t\tconst value = targetList[(i % length + length) % length];\n\t\tstate.value = value;\n\t\treturn value;\n\t}\n\tfunction shift(delta = 1) {\n\t\treturn set(index.value + delta);\n\t}\n\tfunction next(n = 1) {\n\t\treturn shift(n);\n\t}\n\tfunction prev(n = 1) {\n\t\treturn shift(-n);\n\t}\n\tfunction getInitialValue() {\n\t\tvar _toValue, _options$initialValue;\n\t\treturn (_toValue = toValue((_options$initialValue = options === null || options === void 0 ? void 0 : options.initialValue) !== null && _options$initialValue !== void 0 ? _options$initialValue : toValue(list)[0])) !== null && _toValue !== void 0 ? _toValue : void 0;\n\t}\n\twatch(listRef, () => set(index.value));\n\treturn {\n\t\tstate,\n\t\tindex,\n\t\tnext,\n\t\tprev,\n\t\tgo: set\n\t};\n}\n\n//#endregion\n//#region useDark/index.ts\n/**\n* Reactive dark mode with auto data persistence.\n*\n* @see https://vueuse.org/useDark\n* @param options\n*/\nfunction useDark(options = {}) {\n\tconst { valueDark = \"dark\", valueLight = \"\" } = options;\n\tconst mode = useColorMode({\n\t\t...options,\n\t\tonChanged: (mode$1, defaultHandler) => {\n\t\t\tvar _options$onChanged;\n\t\t\tif (options.onChanged) (_options$onChanged = options.onChanged) === null || _options$onChanged === void 0 || _options$onChanged.call(options, mode$1 === \"dark\", defaultHandler, mode$1);\n\t\t\telse defaultHandler(mode$1);\n\t\t},\n\t\tmodes: {\n\t\t\tdark: valueDark,\n\t\t\tlight: valueLight\n\t\t}\n\t});\n\tconst system = computed(() => mode.system.value);\n\treturn computed({\n\t\tget() {\n\t\t\treturn mode.value === \"dark\";\n\t\t},\n\t\tset(v) {\n\t\t\tconst modeVal = v ? \"dark\" : \"light\";\n\t\t\tif (system.value === modeVal) mode.value = \"auto\";\n\t\t\telse mode.value = modeVal;\n\t\t}\n\t});\n}\n\n//#endregion\n//#region useManualRefHistory/index.ts\nfunction fnBypass(v) {\n\treturn v;\n}\nfunction fnSetSource(source, value) {\n\treturn source.value = value;\n}\nfunction defaultDump(clone) {\n\treturn clone ? typeof clone === \"function\" ? clone : cloneFnJSON : fnBypass;\n}\nfunction defaultParse(clone) {\n\treturn clone ? typeof clone === \"function\" ? clone : cloneFnJSON : fnBypass;\n}\n/**\n* Track the change history of a ref, also provides undo and redo functionality.\n*\n* @see https://vueuse.org/useManualRefHistory\n* @param source\n* @param options\n*/\nfunction useManualRefHistory(source, options = {}) {\n\tconst { clone = false, dump = defaultDump(clone), parse = defaultParse(clone), setSource = fnSetSource } = options;\n\tfunction _createHistoryRecord() {\n\t\treturn markRaw({\n\t\t\tsnapshot: dump(source.value),\n\t\t\ttimestamp: timestamp()\n\t\t});\n\t}\n\tconst last = ref(_createHistoryRecord());\n\tconst undoStack = ref([]);\n\tconst redoStack = ref([]);\n\tconst _setSource = (record) => {\n\t\tsetSource(source, parse(record.snapshot));\n\t\tlast.value = record;\n\t};\n\tconst commit = () => {\n\t\tundoStack.value.unshift(last.value);\n\t\tlast.value = _createHistoryRecord();\n\t\tif (options.capacity && undoStack.value.length > options.capacity) undoStack.value.splice(options.capacity, Number.POSITIVE_INFINITY);\n\t\tif (redoStack.value.length) redoStack.value.splice(0, redoStack.value.length);\n\t};\n\tconst clear = () => {\n\t\tundoStack.value.splice(0, undoStack.value.length);\n\t\tredoStack.value.splice(0, redoStack.value.length);\n\t};\n\tconst undo = () => {\n\t\tconst state = undoStack.value.shift();\n\t\tif (state) {\n\t\t\tredoStack.value.unshift(last.value);\n\t\t\t_setSource(state);\n\t\t}\n\t};\n\tconst redo = () => {\n\t\tconst state = redoStack.value.shift();\n\t\tif (state) {\n\t\t\tundoStack.value.unshift(last.value);\n\t\t\t_setSource(state);\n\t\t}\n\t};\n\tconst reset = () => {\n\t\t_setSource(last.value);\n\t};\n\treturn {\n\t\tsource,\n\t\tundoStack,\n\t\tredoStack,\n\t\tlast,\n\t\thistory: computed(() => [last.value, ...undoStack.value]),\n\t\tcanUndo: computed(() => undoStack.value.length > 0),\n\t\tcanRedo: computed(() => redoStack.value.length > 0),\n\t\tclear,\n\t\tcommit,\n\t\treset,\n\t\tundo,\n\t\tredo\n\t};\n}\n\n//#endregion\n//#region useRefHistory/index.ts\n/**\n* Track the change history of a ref, also provides undo and redo functionality.\n*\n* @see https://vueuse.org/useRefHistory\n* @param source\n* @param options\n*/\nfunction useRefHistory(source, options = {}) {\n\tconst { deep = false, flush = \"pre\", eventFilter, shouldCommit = () => true } = options;\n\tconst { eventFilter: composedFilter, pause, resume: resumeTracking, isActive: isTracking } = pausableFilter(eventFilter);\n\tlet lastRawValue = source.value;\n\tconst { ignoreUpdates, ignorePrevAsyncUpdates, stop } = watchIgnorable(source, commit, {\n\t\tdeep,\n\t\tflush,\n\t\teventFilter: composedFilter\n\t});\n\tfunction setSource(source$1, value) {\n\t\tignorePrevAsyncUpdates();\n\t\tignoreUpdates(() => {\n\t\t\tsource$1.value = value;\n\t\t\tlastRawValue = value;\n\t\t});\n\t}\n\tconst manualHistory = useManualRefHistory(source, {\n\t\t...options,\n\t\tclone: options.clone || deep,\n\t\tsetSource\n\t});\n\tconst { clear, commit: manualCommit } = manualHistory;\n\tfunction commit() {\n\t\tignorePrevAsyncUpdates();\n\t\tif (!shouldCommit(lastRawValue, source.value)) return;\n\t\tlastRawValue = source.value;\n\t\tmanualCommit();\n\t}\n\tfunction resume(commitNow) {\n\t\tresumeTracking();\n\t\tif (commitNow) commit();\n\t}\n\tfunction batch(fn) {\n\t\tlet canceled = false;\n\t\tconst cancel = () => canceled = true;\n\t\tignoreUpdates(() => {\n\t\t\tfn(cancel);\n\t\t});\n\t\tif (!canceled) commit();\n\t}\n\tfunction dispose() {\n\t\tstop();\n\t\tclear();\n\t}\n\treturn {\n\t\t...manualHistory,\n\t\tisTracking,\n\t\tpause,\n\t\tresume,\n\t\tcommit,\n\t\tbatch,\n\t\tdispose\n\t};\n}\n\n//#endregion\n//#region useDebouncedRefHistory/index.ts\n/**\n* Shorthand for [useRefHistory](https://vueuse.org/useRefHistory) with debounce filter.\n*\n* @see https://vueuse.org/useDebouncedRefHistory\n* @param source\n* @param options\n*/\nfunction useDebouncedRefHistory(source, options = {}) {\n\tconst filter = options.debounce ? debounceFilter(options.debounce) : void 0;\n\treturn { ...useRefHistory(source, {\n\t\t...options,\n\t\teventFilter: filter\n\t}) };\n}\n\n//#endregion\n//#region useDeviceMotion/index.ts\n/**\n* Reactive DeviceMotionEvent.\n*\n* @see https://vueuse.org/useDeviceMotion\n* @param options\n*/\nfunction useDeviceMotion(options = {}) {\n\tconst { window: window$1 = defaultWindow, requestPermissions = false, eventFilter = bypassFilter } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => typeof DeviceMotionEvent !== \"undefined\");\n\tconst requirePermissions = /* @__PURE__ */ useSupported(() => isSupported.value && \"requestPermission\" in DeviceMotionEvent && typeof DeviceMotionEvent.requestPermission === \"function\");\n\tconst permissionGranted = shallowRef(false);\n\tconst acceleration = ref({\n\t\tx: null,\n\t\ty: null,\n\t\tz: null\n\t});\n\tconst rotationRate = ref({\n\t\talpha: null,\n\t\tbeta: null,\n\t\tgamma: null\n\t});\n\tconst interval = shallowRef(0);\n\tconst accelerationIncludingGravity = ref({\n\t\tx: null,\n\t\ty: null,\n\t\tz: null\n\t});\n\tfunction init() {\n\t\tif (window$1) useEventListener(window$1, \"devicemotion\", createFilterWrapper(eventFilter, (event) => {\n\t\t\tvar _event$acceleration, _event$acceleration2, _event$acceleration3, _event$accelerationIn, _event$accelerationIn2, _event$accelerationIn3, _event$rotationRate, _event$rotationRate2, _event$rotationRate3;\n\t\t\tacceleration.value = {\n\t\t\t\tx: ((_event$acceleration = event.acceleration) === null || _event$acceleration === void 0 ? void 0 : _event$acceleration.x) || null,\n\t\t\t\ty: ((_event$acceleration2 = event.acceleration) === null || _event$acceleration2 === void 0 ? void 0 : _event$acceleration2.y) || null,\n\t\t\t\tz: ((_event$acceleration3 = event.acceleration) === null || _event$acceleration3 === void 0 ? void 0 : _event$acceleration3.z) || null\n\t\t\t};\n\t\t\taccelerationIncludingGravity.value = {\n\t\t\t\tx: ((_event$accelerationIn = event.accelerationIncludingGravity) === null || _event$accelerationIn === void 0 ? void 0 : _event$accelerationIn.x) || null,\n\t\t\t\ty: ((_event$accelerationIn2 = event.accelerationIncludingGravity) === null || _event$accelerationIn2 === void 0 ? void 0 : _event$accelerationIn2.y) || null,\n\t\t\t\tz: ((_event$accelerationIn3 = event.accelerationIncludingGravity) === null || _event$accelerationIn3 === void 0 ? void 0 : _event$accelerationIn3.z) || null\n\t\t\t};\n\t\t\trotationRate.value = {\n\t\t\t\talpha: ((_event$rotationRate = event.rotationRate) === null || _event$rotationRate === void 0 ? void 0 : _event$rotationRate.alpha) || null,\n\t\t\t\tbeta: ((_event$rotationRate2 = event.rotationRate) === null || _event$rotationRate2 === void 0 ? void 0 : _event$rotationRate2.beta) || null,\n\t\t\t\tgamma: ((_event$rotationRate3 = event.rotationRate) === null || _event$rotationRate3 === void 0 ? void 0 : _event$rotationRate3.gamma) || null\n\t\t\t};\n\t\t\tinterval.value = event.interval;\n\t\t}), { passive: true });\n\t}\n\tconst ensurePermissions = async () => {\n\t\tif (!requirePermissions.value) permissionGranted.value = true;\n\t\tif (permissionGranted.value) return;\n\t\tif (requirePermissions.value) {\n\t\t\tconst requestPermission = DeviceMotionEvent.requestPermission;\n\t\t\ttry {\n\t\t\t\tif (await requestPermission() === \"granted\") {\n\t\t\t\t\tpermissionGranted.value = true;\n\t\t\t\t\tinit();\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(error);\n\t\t\t}\n\t\t}\n\t};\n\tif (isSupported.value) if (requestPermissions && requirePermissions.value) ensurePermissions().then(() => init());\n\telse init();\n\treturn {\n\t\tacceleration,\n\t\taccelerationIncludingGravity,\n\t\trotationRate,\n\t\tinterval,\n\t\tisSupported,\n\t\trequirePermissions,\n\t\tensurePermissions,\n\t\tpermissionGranted\n\t};\n}\n\n//#endregion\n//#region useDeviceOrientation/index.ts\n/**\n* Reactive DeviceOrientationEvent.\n*\n* @see https://vueuse.org/useDeviceOrientation\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useDeviceOrientation(options = {}) {\n\tconst { window: window$1 = defaultWindow } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window$1 && \"DeviceOrientationEvent\" in window$1);\n\tconst isAbsolute = shallowRef(false);\n\tconst alpha = shallowRef(null);\n\tconst beta = shallowRef(null);\n\tconst gamma = shallowRef(null);\n\tif (window$1 && isSupported.value) useEventListener(window$1, \"deviceorientation\", (event) => {\n\t\tisAbsolute.value = event.absolute;\n\t\talpha.value = event.alpha;\n\t\tbeta.value = event.beta;\n\t\tgamma.value = event.gamma;\n\t}, { passive: true });\n\treturn {\n\t\tisSupported,\n\t\tisAbsolute,\n\t\talpha,\n\t\tbeta,\n\t\tgamma\n\t};\n}\n\n//#endregion\n//#region useDevicePixelRatio/index.ts\n/**\n* Reactively track `window.devicePixelRatio`.\n*\n* @see https://vueuse.org/useDevicePixelRatio\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useDevicePixelRatio(options = {}) {\n\tconst { window: window$1 = defaultWindow } = options;\n\tconst pixelRatio = shallowRef(1);\n\tconst query = useMediaQuery(() => `(resolution: ${pixelRatio.value}dppx)`, options);\n\tlet stop = noop;\n\tif (window$1) stop = watchImmediate(query, () => pixelRatio.value = window$1.devicePixelRatio);\n\treturn {\n\t\tpixelRatio: readonly(pixelRatio),\n\t\tstop\n\t};\n}\n\n//#endregion\n//#region useDevicesList/index.ts\n/**\n* Reactive `enumerateDevices` listing available input/output devices\n*\n* @see https://vueuse.org/useDevicesList\n* @param options\n*/\nfunction useDevicesList(options = {}) {\n\tconst { navigator: navigator$1 = defaultNavigator, requestPermissions = false, constraints = {\n\t\taudio: true,\n\t\tvideo: true\n\t}, onUpdated: onUpdated$1 } = options;\n\tconst devices = ref([]);\n\tconst videoInputs = computed(() => devices.value.filter((i) => i.kind === \"videoinput\"));\n\tconst audioInputs = computed(() => devices.value.filter((i) => i.kind === \"audioinput\"));\n\tconst audioOutputs = computed(() => devices.value.filter((i) => i.kind === \"audiooutput\"));\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator$1 && navigator$1.mediaDevices && navigator$1.mediaDevices.enumerateDevices);\n\tconst permissionGranted = shallowRef(false);\n\tlet stream;\n\tasync function update() {\n\t\tif (!isSupported.value) return;\n\t\tdevices.value = await navigator$1.mediaDevices.enumerateDevices();\n\t\tonUpdated$1 === null || onUpdated$1 === void 0 || onUpdated$1(devices.value);\n\t\tif (stream) {\n\t\t\tstream.getTracks().forEach((t) => t.stop());\n\t\t\tstream = null;\n\t\t}\n\t}\n\tasync function ensurePermissions() {\n\t\tconst deviceName = constraints.video ? \"camera\" : \"microphone\";\n\t\tif (!isSupported.value) return false;\n\t\tif (permissionGranted.value) return true;\n\t\tconst { state, query } = usePermission(deviceName, { controls: true });\n\t\tawait query();\n\t\tif (state.value !== \"granted\") {\n\t\t\tlet granted = true;\n\t\t\ttry {\n\t\t\t\tconst allDevices = await navigator$1.mediaDevices.enumerateDevices();\n\t\t\t\tconst hasCamera = allDevices.some((device) => device.kind === \"videoinput\");\n\t\t\t\tconst hasMicrophone = allDevices.some((device) => device.kind === \"audioinput\" || device.kind === \"audiooutput\");\n\t\t\t\tconstraints.video = hasCamera ? constraints.video : false;\n\t\t\t\tconstraints.audio = hasMicrophone ? constraints.audio : false;\n\t\t\t\tstream = await navigator$1.mediaDevices.getUserMedia(constraints);\n\t\t\t} catch (_unused) {\n\t\t\t\tstream = null;\n\t\t\t\tgranted = false;\n\t\t\t}\n\t\t\tupdate();\n\t\t\tpermissionGranted.value = granted;\n\t\t} else permissionGranted.value = true;\n\t\treturn permissionGranted.value;\n\t}\n\tif (isSupported.value) {\n\t\tif (requestPermissions) ensurePermissions();\n\t\tuseEventListener(navigator$1.mediaDevices, \"devicechange\", update, { passive: true });\n\t\tupdate();\n\t}\n\treturn {\n\t\tdevices,\n\t\tensurePermissions,\n\t\tpermissionGranted,\n\t\tvideoInputs,\n\t\taudioInputs,\n\t\taudioOutputs,\n\t\tisSupported\n\t};\n}\n\n//#endregion\n//#region useDisplayMedia/index.ts\n/**\n* Reactive `mediaDevices.getDisplayMedia` streaming\n*\n* @see https://vueuse.org/useDisplayMedia\n* @param options\n*/\nfunction useDisplayMedia(options = {}) {\n\tvar _options$enabled;\n\tconst enabled = shallowRef((_options$enabled = options.enabled) !== null && _options$enabled !== void 0 ? _options$enabled : false);\n\tconst video = options.video;\n\tconst audio = options.audio;\n\tconst { navigator: navigator$1 = defaultNavigator } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => {\n\t\tvar _navigator$mediaDevic;\n\t\treturn navigator$1 === null || navigator$1 === void 0 || (_navigator$mediaDevic = navigator$1.mediaDevices) === null || _navigator$mediaDevic === void 0 ? void 0 : _navigator$mediaDevic.getDisplayMedia;\n\t});\n\tconst constraint = {\n\t\taudio,\n\t\tvideo\n\t};\n\tconst stream = shallowRef();\n\tasync function _start() {\n\t\tvar _stream$value;\n\t\tif (!isSupported.value || stream.value) return;\n\t\tstream.value = await navigator$1.mediaDevices.getDisplayMedia(constraint);\n\t\t(_stream$value = stream.value) === null || _stream$value === void 0 || _stream$value.getTracks().forEach((t) => useEventListener(t, \"ended\", stop, { passive: true }));\n\t\treturn stream.value;\n\t}\n\tasync function _stop() {\n\t\tvar _stream$value2;\n\t\t(_stream$value2 = stream.value) === null || _stream$value2 === void 0 || _stream$value2.getTracks().forEach((t) => t.stop());\n\t\tstream.value = void 0;\n\t}\n\tfunction stop() {\n\t\t_stop();\n\t\tenabled.value = false;\n\t}\n\tasync function start() {\n\t\tawait _start();\n\t\tif (stream.value) enabled.value = true;\n\t\treturn stream.value;\n\t}\n\twatch(enabled, (v) => {\n\t\tif (v) _start();\n\t\telse _stop();\n\t}, { immediate: true });\n\treturn {\n\t\tisSupported,\n\t\tstream,\n\t\tstart,\n\t\tstop,\n\t\tenabled\n\t};\n}\n\n//#endregion\n//#region useDocumentVisibility/index.ts\n/**\n* Reactively track `document.visibilityState`.\n*\n* @see https://vueuse.org/useDocumentVisibility\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useDocumentVisibility(options = {}) {\n\tconst { document: document$1 = defaultDocument } = options;\n\tif (!document$1) return shallowRef(\"visible\");\n\tconst visibility = shallowRef(document$1.visibilityState);\n\tuseEventListener(document$1, \"visibilitychange\", () => {\n\t\tvisibility.value = document$1.visibilityState;\n\t}, { passive: true });\n\treturn visibility;\n}\n\n//#endregion\n//#region useDraggable/index.ts\n/**\n* Make elements draggable.\n*\n* @see https://vueuse.org/useDraggable\n* @param target\n* @param options\n*/\nfunction useDraggable(target, options = {}) {\n\tvar _toValue;\n\tconst { pointerTypes, preventDefault: preventDefault$1, stopPropagation, exact, onMove, onEnd, onStart, initialValue, axis = \"both\", draggingElement = defaultWindow, containerElement, handle: draggingHandle = target, buttons = [0] } = options;\n\tconst position = ref((_toValue = toValue(initialValue)) !== null && _toValue !== void 0 ? _toValue : {\n\t\tx: 0,\n\t\ty: 0\n\t});\n\tconst pressedDelta = ref();\n\tconst filterEvent = (e) => {\n\t\tif (pointerTypes) return pointerTypes.includes(e.pointerType);\n\t\treturn true;\n\t};\n\tconst handleEvent = (e) => {\n\t\tif (toValue(preventDefault$1)) e.preventDefault();\n\t\tif (toValue(stopPropagation)) e.stopPropagation();\n\t};\n\tconst start = (e) => {\n\t\tvar _container$getBoundin;\n\t\tif (!toValue(buttons).includes(e.button)) return;\n\t\tif (toValue(options.disabled) || !filterEvent(e)) return;\n\t\tif (toValue(exact) && e.target !== toValue(target)) return;\n\t\tconst container = toValue(containerElement);\n\t\tconst containerRect = container === null || container === void 0 || (_container$getBoundin = container.getBoundingClientRect) === null || _container$getBoundin === void 0 ? void 0 : _container$getBoundin.call(container);\n\t\tconst targetRect = toValue(target).getBoundingClientRect();\n\t\tconst pos = {\n\t\t\tx: e.clientX - (container ? targetRect.left - containerRect.left + container.scrollLeft : targetRect.left),\n\t\t\ty: e.clientY - (container ? targetRect.top - containerRect.top + container.scrollTop : targetRect.top)\n\t\t};\n\t\tif ((onStart === null || onStart === void 0 ? void 0 : onStart(pos, e)) === false) return;\n\t\tpressedDelta.value = pos;\n\t\thandleEvent(e);\n\t};\n\tconst move = (e) => {\n\t\tif (toValue(options.disabled) || !filterEvent(e)) return;\n\t\tif (!pressedDelta.value) return;\n\t\tconst container = toValue(containerElement);\n\t\tconst targetRect = toValue(target).getBoundingClientRect();\n\t\tlet { x, y } = position.value;\n\t\tif (axis === \"x\" || axis === \"both\") {\n\t\t\tx = e.clientX - pressedDelta.value.x;\n\t\t\tif (container) x = Math.min(Math.max(0, x), container.scrollWidth - targetRect.width);\n\t\t}\n\t\tif (axis === \"y\" || axis === \"both\") {\n\t\t\ty = e.clientY - pressedDelta.value.y;\n\t\t\tif (container) y = Math.min(Math.max(0, y), container.scrollHeight - targetRect.height);\n\t\t}\n\t\tposition.value = {\n\t\t\tx,\n\t\t\ty\n\t\t};\n\t\tonMove === null || onMove === void 0 || onMove(position.value, e);\n\t\thandleEvent(e);\n\t};\n\tconst end = (e) => {\n\t\tif (toValue(options.disabled) || !filterEvent(e)) return;\n\t\tif (!pressedDelta.value) return;\n\t\tpressedDelta.value = void 0;\n\t\tonEnd === null || onEnd === void 0 || onEnd(position.value, e);\n\t\thandleEvent(e);\n\t};\n\tif (isClient) {\n\t\tconst config = () => {\n\t\t\tvar _options$capture;\n\t\t\treturn {\n\t\t\t\tcapture: (_options$capture = options.capture) !== null && _options$capture !== void 0 ? _options$capture : true,\n\t\t\t\tpassive: !toValue(preventDefault$1)\n\t\t\t};\n\t\t};\n\t\tuseEventListener(draggingHandle, \"pointerdown\", start, config);\n\t\tuseEventListener(draggingElement, \"pointermove\", move, config);\n\t\tuseEventListener(draggingElement, \"pointerup\", end, config);\n\t}\n\treturn {\n\t\t...toRefs(position),\n\t\tposition,\n\t\tisDragging: computed(() => !!pressedDelta.value),\n\t\tstyle: computed(() => `left:${position.value.x}px;top:${position.value.y}px;`)\n\t};\n}\n\n//#endregion\n//#region useDropZone/index.ts\nfunction useDropZone(target, options = {}) {\n\tconst isOverDropZone = shallowRef(false);\n\tconst files = shallowRef(null);\n\tlet counter = 0;\n\tlet isValid = true;\n\tif (isClient) {\n\t\tvar _options$multiple, _options$preventDefau;\n\t\tconst _options = typeof options === \"function\" ? { onDrop: options } : options;\n\t\tconst multiple = (_options$multiple = _options.multiple) !== null && _options$multiple !== void 0 ? _options$multiple : true;\n\t\tconst preventDefaultForUnhandled = (_options$preventDefau = _options.preventDefaultForUnhandled) !== null && _options$preventDefau !== void 0 ? _options$preventDefau : false;\n\t\tconst getFiles = (event) => {\n\t\t\tvar _event$dataTransfer$f, _event$dataTransfer;\n\t\t\tconst list = Array.from((_event$dataTransfer$f = (_event$dataTransfer = event.dataTransfer) === null || _event$dataTransfer === void 0 ? void 0 : _event$dataTransfer.files) !== null && _event$dataTransfer$f !== void 0 ? _event$dataTransfer$f : []);\n\t\t\treturn list.length === 0 ? null : multiple ? list : [list[0]];\n\t\t};\n\t\tconst checkDataTypes = (types) => {\n\t\t\tconst dataTypes = unref(_options.dataTypes);\n\t\t\tif (typeof dataTypes === \"function\") return dataTypes(types);\n\t\t\tif (!(dataTypes === null || dataTypes === void 0 ? void 0 : dataTypes.length)) return true;\n\t\t\tif (types.length === 0) return false;\n\t\t\treturn types.every((type) => dataTypes.some((allowedType) => type.includes(allowedType)));\n\t\t};\n\t\tconst checkValidity = (items) => {\n\t\t\tif (_options.checkValidity) return _options.checkValidity(items);\n\t\t\tconst dataTypesValid = checkDataTypes(Array.from(items !== null && items !== void 0 ? items : []).map((item) => item.type));\n\t\t\tconst multipleFilesValid = multiple || items.length <= 1;\n\t\t\treturn dataTypesValid && multipleFilesValid;\n\t\t};\n\t\tconst isSafari = () => /^(?:(?!chrome|android).)*safari/i.test(navigator.userAgent) && !(\"chrome\" in window);\n\t\tconst handleDragEvent = (event, eventType) => {\n\t\t\tvar _event$dataTransfer2, _ref;\n\t\t\tconst dataTransferItemList = (_event$dataTransfer2 = event.dataTransfer) === null || _event$dataTransfer2 === void 0 ? void 0 : _event$dataTransfer2.items;\n\t\t\tisValid = (_ref = dataTransferItemList && checkValidity(dataTransferItemList)) !== null && _ref !== void 0 ? _ref : false;\n\t\t\tif (preventDefaultForUnhandled) event.preventDefault();\n\t\t\tif (!isSafari() && !isValid) {\n\t\t\t\tif (event.dataTransfer) event.dataTransfer.dropEffect = \"none\";\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tevent.preventDefault();\n\t\t\tif (event.dataTransfer) event.dataTransfer.dropEffect = \"copy\";\n\t\t\tconst currentFiles = getFiles(event);\n\t\t\tswitch (eventType) {\n\t\t\t\tcase \"enter\":\n\t\t\t\t\tvar _options$onEnter;\n\t\t\t\t\tcounter += 1;\n\t\t\t\t\tisOverDropZone.value = true;\n\t\t\t\t\t(_options$onEnter = _options.onEnter) === null || _options$onEnter === void 0 || _options$onEnter.call(_options, null, event);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"over\":\n\t\t\t\t\tvar _options$onOver;\n\t\t\t\t\t(_options$onOver = _options.onOver) === null || _options$onOver === void 0 || _options$onOver.call(_options, null, event);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"leave\":\n\t\t\t\t\tvar _options$onLeave;\n\t\t\t\t\tcounter -= 1;\n\t\t\t\t\tif (counter === 0) isOverDropZone.value = false;\n\t\t\t\t\t(_options$onLeave = _options.onLeave) === null || _options$onLeave === void 0 || _options$onLeave.call(_options, null, event);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"drop\":\n\t\t\t\t\tcounter = 0;\n\t\t\t\t\tisOverDropZone.value = false;\n\t\t\t\t\tif (isValid) {\n\t\t\t\t\t\tvar _options$onDrop;\n\t\t\t\t\t\tfiles.value = currentFiles;\n\t\t\t\t\t\t(_options$onDrop = _options.onDrop) === null || _options$onDrop === void 0 || _options$onDrop.call(_options, currentFiles, event);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t};\n\t\tuseEventListener(target, \"dragenter\", (event) => handleDragEvent(event, \"enter\"));\n\t\tuseEventListener(target, \"dragover\", (event) => handleDragEvent(event, \"over\"));\n\t\tuseEventListener(target, \"dragleave\", (event) => handleDragEvent(event, \"leave\"));\n\t\tuseEventListener(target, \"drop\", (event) => handleDragEvent(event, \"drop\"));\n\t}\n\treturn {\n\t\tfiles,\n\t\tisOverDropZone\n\t};\n}\n\n//#endregion\n//#region useResizeObserver/index.ts\n/**\n* Reports changes to the dimensions of an Element's content or the border-box\n*\n* @see https://vueuse.org/useResizeObserver\n* @param target\n* @param callback\n* @param options\n*/\nfunction useResizeObserver(target, callback, options = {}) {\n\tconst { window: window$1 = defaultWindow,...observerOptions } = options;\n\tlet observer;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window$1 && \"ResizeObserver\" in window$1);\n\tconst cleanup = () => {\n\t\tif (observer) {\n\t\t\tobserver.disconnect();\n\t\t\tobserver = void 0;\n\t\t}\n\t};\n\tconst stopWatch = watch(computed(() => {\n\t\tconst _targets = toValue(target);\n\t\treturn Array.isArray(_targets) ? _targets.map((el) => unrefElement(el)) : [unrefElement(_targets)];\n\t}), (els) => {\n\t\tcleanup();\n\t\tif (isSupported.value && window$1) {\n\t\t\tobserver = new ResizeObserver(callback);\n\t\t\tfor (const _el of els) if (_el) observer.observe(_el, observerOptions);\n\t\t}\n\t}, {\n\t\timmediate: true,\n\t\tflush: \"post\"\n\t});\n\tconst stop = () => {\n\t\tcleanup();\n\t\tstopWatch();\n\t};\n\ttryOnScopeDispose(stop);\n\treturn {\n\t\tisSupported,\n\t\tstop\n\t};\n}\n\n//#endregion\n//#region useElementBounding/index.ts\n/**\n* Reactive bounding box of an HTML element.\n*\n* @see https://vueuse.org/useElementBounding\n* @param target\n*/\nfunction useElementBounding(target, options = {}) {\n\tconst { reset = true, windowResize = true, windowScroll = true, immediate = true, updateTiming = \"sync\" } = options;\n\tconst height = shallowRef(0);\n\tconst bottom = shallowRef(0);\n\tconst left = shallowRef(0);\n\tconst right = shallowRef(0);\n\tconst top = shallowRef(0);\n\tconst width = shallowRef(0);\n\tconst x = shallowRef(0);\n\tconst y = shallowRef(0);\n\tfunction recalculate() {\n\t\tconst el = unrefElement(target);\n\t\tif (!el) {\n\t\t\tif (reset) {\n\t\t\t\theight.value = 0;\n\t\t\t\tbottom.value = 0;\n\t\t\t\tleft.value = 0;\n\t\t\t\tright.value = 0;\n\t\t\t\ttop.value = 0;\n\t\t\t\twidth.value = 0;\n\t\t\t\tx.value = 0;\n\t\t\t\ty.value = 0;\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tconst rect = el.getBoundingClientRect();\n\t\theight.value = rect.height;\n\t\tbottom.value = rect.bottom;\n\t\tleft.value = rect.left;\n\t\tright.value = rect.right;\n\t\ttop.value = rect.top;\n\t\twidth.value = rect.width;\n\t\tx.value = rect.x;\n\t\ty.value = rect.y;\n\t}\n\tfunction update() {\n\t\tif (updateTiming === \"sync\") recalculate();\n\t\telse if (updateTiming === \"next-frame\") requestAnimationFrame(() => recalculate());\n\t}\n\tuseResizeObserver(target, update);\n\twatch(() => unrefElement(target), (ele) => !ele && update());\n\tuseMutationObserver(target, update, { attributeFilter: [\"style\", \"class\"] });\n\tif (windowScroll) useEventListener(\"scroll\", update, {\n\t\tcapture: true,\n\t\tpassive: true\n\t});\n\tif (windowResize) useEventListener(\"resize\", update, { passive: true });\n\ttryOnMounted(() => {\n\t\tif (immediate) update();\n\t});\n\treturn {\n\t\theight,\n\t\tbottom,\n\t\tleft,\n\t\tright,\n\t\ttop,\n\t\twidth,\n\t\tx,\n\t\ty,\n\t\tupdate\n\t};\n}\n\n//#endregion\n//#region useElementByPoint/index.ts\n/**\n* Reactive element by point.\n*\n* @see https://vueuse.org/useElementByPoint\n* @param options - UseElementByPointOptions\n*/\nfunction useElementByPoint(options) {\n\tconst { x, y, document: document$1 = defaultDocument, multiple, interval = \"requestAnimationFrame\", immediate = true } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => {\n\t\tif (toValue(multiple)) return document$1 && \"elementsFromPoint\" in document$1;\n\t\treturn document$1 && \"elementFromPoint\" in document$1;\n\t});\n\tconst element = shallowRef(null);\n\tconst cb = () => {\n\t\tvar _document$elementsFro, _document$elementFrom;\n\t\telement.value = toValue(multiple) ? (_document$elementsFro = document$1 === null || document$1 === void 0 ? void 0 : document$1.elementsFromPoint(toValue(x), toValue(y))) !== null && _document$elementsFro !== void 0 ? _document$elementsFro : [] : (_document$elementFrom = document$1 === null || document$1 === void 0 ? void 0 : document$1.elementFromPoint(toValue(x), toValue(y))) !== null && _document$elementFrom !== void 0 ? _document$elementFrom : null;\n\t};\n\treturn {\n\t\tisSupported,\n\t\telement,\n\t\t...interval === \"requestAnimationFrame\" ? useRafFn(cb, { immediate }) : useIntervalFn(cb, interval, { immediate })\n\t};\n}\n\n//#endregion\n//#region useElementHover/index.ts\nfunction useElementHover(el, options = {}) {\n\tconst { delayEnter = 0, delayLeave = 0, triggerOnRemoval = false, window: window$1 = defaultWindow } = options;\n\tconst isHovered = shallowRef(false);\n\tlet timer;\n\tconst toggle = (entering) => {\n\t\tconst delay = entering ? delayEnter : delayLeave;\n\t\tif (timer) {\n\t\t\tclearTimeout(timer);\n\t\t\ttimer = void 0;\n\t\t}\n\t\tif (delay) timer = setTimeout(() => isHovered.value = entering, delay);\n\t\telse isHovered.value = entering;\n\t};\n\tif (!window$1) return isHovered;\n\tuseEventListener(el, \"mouseenter\", () => toggle(true), { passive: true });\n\tuseEventListener(el, \"mouseleave\", () => toggle(false), { passive: true });\n\tif (triggerOnRemoval) onElementRemoval(computed(() => unrefElement(el)), () => toggle(false));\n\treturn isHovered;\n}\n\n//#endregion\n//#region useElementSize/index.ts\n/**\n* Reactive size of an HTML element.\n*\n* @see https://vueuse.org/useElementSize\n*/\nfunction useElementSize(target, initialSize = {\n\twidth: 0,\n\theight: 0\n}, options = {}) {\n\tconst { window: window$1 = defaultWindow, box = \"content-box\" } = options;\n\tconst isSVG = computed(() => {\n\t\tvar _unrefElement;\n\t\treturn (_unrefElement = unrefElement(target)) === null || _unrefElement === void 0 || (_unrefElement = _unrefElement.namespaceURI) === null || _unrefElement === void 0 ? void 0 : _unrefElement.includes(\"svg\");\n\t});\n\tconst width = shallowRef(initialSize.width);\n\tconst height = shallowRef(initialSize.height);\n\tconst { stop: stop1 } = useResizeObserver(target, ([entry]) => {\n\t\tconst boxSize = box === \"border-box\" ? entry.borderBoxSize : box === \"content-box\" ? entry.contentBoxSize : entry.devicePixelContentBoxSize;\n\t\tif (window$1 && isSVG.value) {\n\t\t\tconst $elem = unrefElement(target);\n\t\t\tif ($elem) {\n\t\t\t\tconst rect = $elem.getBoundingClientRect();\n\t\t\t\twidth.value = rect.width;\n\t\t\t\theight.value = rect.height;\n\t\t\t}\n\t\t} else if (boxSize) {\n\t\t\tconst formatBoxSize = toArray(boxSize);\n\t\t\twidth.value = formatBoxSize.reduce((acc, { inlineSize }) => acc + inlineSize, 0);\n\t\t\theight.value = formatBoxSize.reduce((acc, { blockSize }) => acc + blockSize, 0);\n\t\t} else {\n\t\t\twidth.value = entry.contentRect.width;\n\t\t\theight.value = entry.contentRect.height;\n\t\t}\n\t}, options);\n\ttryOnMounted(() => {\n\t\tconst ele = unrefElement(target);\n\t\tif (ele) {\n\t\t\twidth.value = \"offsetWidth\" in ele ? ele.offsetWidth : initialSize.width;\n\t\t\theight.value = \"offsetHeight\" in ele ? ele.offsetHeight : initialSize.height;\n\t\t}\n\t});\n\tconst stop2 = watch(() => unrefElement(target), (ele) => {\n\t\twidth.value = ele ? initialSize.width : 0;\n\t\theight.value = ele ? initialSize.height : 0;\n\t});\n\tfunction stop() {\n\t\tstop1();\n\t\tstop2();\n\t}\n\treturn {\n\t\twidth,\n\t\theight,\n\t\tstop\n\t};\n}\n\n//#endregion\n//#region useIntersectionObserver/index.ts\n/**\n* Detects that a target element's visibility.\n*\n* @see https://vueuse.org/useIntersectionObserver\n* @param target\n* @param callback\n* @param options\n*/\nfunction useIntersectionObserver(target, callback, options = {}) {\n\tconst { root, rootMargin = \"0px\", threshold = 0, window: window$1 = defaultWindow, immediate = true } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window$1 && \"IntersectionObserver\" in window$1);\n\tconst targets = computed(() => {\n\t\treturn toArray(toValue(target)).map(unrefElement).filter(notNullish);\n\t});\n\tlet cleanup = noop;\n\tconst isActive = shallowRef(immediate);\n\tconst stopWatch = isSupported.value ? watch(() => [\n\t\ttargets.value,\n\t\tunrefElement(root),\n\t\tisActive.value\n\t], ([targets$1, root$1]) => {\n\t\tcleanup();\n\t\tif (!isActive.value) return;\n\t\tif (!targets$1.length) return;\n\t\tconst observer = new IntersectionObserver(callback, {\n\t\t\troot: unrefElement(root$1),\n\t\t\trootMargin,\n\t\t\tthreshold\n\t\t});\n\t\ttargets$1.forEach((el) => el && observer.observe(el));\n\t\tcleanup = () => {\n\t\t\tobserver.disconnect();\n\t\t\tcleanup = noop;\n\t\t};\n\t}, {\n\t\timmediate,\n\t\tflush: \"post\"\n\t}) : noop;\n\tconst stop = () => {\n\t\tcleanup();\n\t\tstopWatch();\n\t\tisActive.value = false;\n\t};\n\ttryOnScopeDispose(stop);\n\treturn {\n\t\tisSupported,\n\t\tisActive,\n\t\tpause() {\n\t\t\tcleanup();\n\t\t\tisActive.value = false;\n\t\t},\n\t\tresume() {\n\t\t\tisActive.value = true;\n\t\t},\n\t\tstop\n\t};\n}\n\n//#endregion\n//#region useElementVisibility/index.ts\n/**\n* Tracks the visibility of an element within the viewport.\n*\n* @see https://vueuse.org/useElementVisibility\n*/\nfunction useElementVisibility(element, options = {}) {\n\tconst { window: window$1 = defaultWindow, scrollTarget, threshold = 0, rootMargin, once = false, initialValue = false } = options;\n\tconst elementIsVisible = shallowRef(initialValue);\n\tconst { stop } = useIntersectionObserver(element, (intersectionObserverEntries) => {\n\t\tlet isIntersecting = elementIsVisible.value;\n\t\tlet latestTime = 0;\n\t\tfor (const entry of intersectionObserverEntries) if (entry.time >= latestTime) {\n\t\t\tlatestTime = entry.time;\n\t\t\tisIntersecting = entry.isIntersecting;\n\t\t}\n\t\telementIsVisible.value = isIntersecting;\n\t\tif (once) watchOnce(elementIsVisible, () => {\n\t\t\tstop();\n\t\t});\n\t}, {\n\t\troot: scrollTarget,\n\t\twindow: window$1,\n\t\tthreshold,\n\t\trootMargin: toValue(rootMargin)\n\t});\n\treturn elementIsVisible;\n}\n\n//#endregion\n//#region useEventBus/internal.ts\nconst events = /* @__PURE__ */ new Map();\n\n//#endregion\n//#region useEventBus/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction useEventBus(key) {\n\tconst scope = getCurrentScope();\n\tfunction on(listener) {\n\t\tvar _scope$cleanups;\n\t\tconst listeners = events.get(key) || /* @__PURE__ */ new Set();\n\t\tlisteners.add(listener);\n\t\tevents.set(key, listeners);\n\t\tconst _off = () => off(listener);\n\t\tscope === null || scope === void 0 || (_scope$cleanups = scope.cleanups) === null || _scope$cleanups === void 0 || _scope$cleanups.push(_off);\n\t\treturn _off;\n\t}\n\tfunction once(listener) {\n\t\tfunction _listener(...args) {\n\t\t\toff(_listener);\n\t\t\tlistener(...args);\n\t\t}\n\t\treturn on(_listener);\n\t}\n\tfunction off(listener) {\n\t\tconst listeners = events.get(key);\n\t\tif (!listeners) return;\n\t\tlisteners.delete(listener);\n\t\tif (!listeners.size) reset();\n\t}\n\tfunction reset() {\n\t\tevents.delete(key);\n\t}\n\tfunction emit(event, payload) {\n\t\tvar _events$get;\n\t\t(_events$get = events.get(key)) === null || _events$get === void 0 || _events$get.forEach((v) => v(event, payload));\n\t}\n\treturn {\n\t\ton,\n\t\tonce,\n\t\toff,\n\t\temit,\n\t\treset\n\t};\n}\n\n//#endregion\n//#region useEventSource/index.ts\nfunction resolveNestedOptions$1(options) {\n\tif (options === true) return {};\n\treturn options;\n}\n/**\n* Reactive wrapper for EventSource.\n*\n* @see https://vueuse.org/useEventSource\n* @see https://developer.mozilla.org/en-US/docs/Web/API/EventSource/EventSource EventSource\n* @param url\n* @param events\n* @param options\n*/\nfunction useEventSource(url, events$1 = [], options = {}) {\n\tconst event = shallowRef(null);\n\tconst data = shallowRef(null);\n\tconst status = shallowRef(\"CONNECTING\");\n\tconst eventSource = ref(null);\n\tconst error = shallowRef(null);\n\tconst urlRef = toRef(url);\n\tconst lastEventId = shallowRef(null);\n\tlet explicitlyClosed = false;\n\tlet retried = 0;\n\tconst { withCredentials = false, immediate = true, autoConnect = true, autoReconnect, serializer = { read: (v) => v } } = options;\n\tconst close = () => {\n\t\tif (isClient && eventSource.value) {\n\t\t\teventSource.value.close();\n\t\t\teventSource.value = null;\n\t\t\tstatus.value = \"CLOSED\";\n\t\t\texplicitlyClosed = true;\n\t\t}\n\t};\n\tconst _init = () => {\n\t\tif (explicitlyClosed || typeof urlRef.value === \"undefined\") return;\n\t\tconst es = new EventSource(urlRef.value, { withCredentials });\n\t\tstatus.value = \"CONNECTING\";\n\t\teventSource.value = es;\n\t\tes.onopen = () => {\n\t\t\tstatus.value = \"OPEN\";\n\t\t\terror.value = null;\n\t\t};\n\t\tes.onerror = (e) => {\n\t\t\tstatus.value = \"CLOSED\";\n\t\t\terror.value = e;\n\t\t\tif (es.readyState === 2 && !explicitlyClosed && autoReconnect) {\n\t\t\t\tes.close();\n\t\t\t\tconst { retries = -1, delay = 1e3, onFailed } = resolveNestedOptions$1(autoReconnect);\n\t\t\t\tretried += 1;\n\t\t\t\tif (typeof retries === \"number\" && (retries < 0 || retried < retries)) setTimeout(_init, delay);\n\t\t\t\telse if (typeof retries === \"function\" && retries()) setTimeout(_init, delay);\n\t\t\t\telse onFailed === null || onFailed === void 0 || onFailed();\n\t\t\t}\n\t\t};\n\t\tes.onmessage = (e) => {\n\t\t\tvar _serializer$read;\n\t\t\tevent.value = null;\n\t\t\tdata.value = (_serializer$read = serializer.read(e.data)) !== null && _serializer$read !== void 0 ? _serializer$read : null;\n\t\t\tlastEventId.value = e.lastEventId;\n\t\t};\n\t\tfor (const event_name of events$1) useEventListener(es, event_name, (e) => {\n\t\t\tvar _serializer$read2, _e$lastEventId;\n\t\t\tevent.value = event_name;\n\t\t\tdata.value = (_serializer$read2 = serializer.read(e.data)) !== null && _serializer$read2 !== void 0 ? _serializer$read2 : null;\n\t\t\tlastEventId.value = (_e$lastEventId = e.lastEventId) !== null && _e$lastEventId !== void 0 ? _e$lastEventId : null;\n\t\t}, { passive: true });\n\t};\n\tconst open = () => {\n\t\tif (!isClient) return;\n\t\tclose();\n\t\texplicitlyClosed = false;\n\t\tretried = 0;\n\t\t_init();\n\t};\n\tif (immediate) open();\n\tif (autoConnect) watch(urlRef, open);\n\ttryOnScopeDispose(close);\n\treturn {\n\t\teventSource,\n\t\tevent,\n\t\tdata,\n\t\tstatus,\n\t\terror,\n\t\topen,\n\t\tclose,\n\t\tlastEventId\n\t};\n}\n\n//#endregion\n//#region useEyeDropper/index.ts\n/**\n* Reactive [EyeDropper API](https://developer.mozilla.org/en-US/docs/Web/API/EyeDropper_API)\n*\n* @see https://vueuse.org/useEyeDropper\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useEyeDropper(options = {}) {\n\tconst { initialValue = \"\" } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => typeof window !== \"undefined\" && \"EyeDropper\" in window);\n\tconst sRGBHex = shallowRef(initialValue);\n\tasync function open(openOptions) {\n\t\tif (!isSupported.value) return;\n\t\tconst result = await new window.EyeDropper().open(openOptions);\n\t\tsRGBHex.value = result.sRGBHex;\n\t\treturn result;\n\t}\n\treturn {\n\t\tisSupported,\n\t\tsRGBHex,\n\t\topen\n\t};\n}\n\n//#endregion\n//#region useFavicon/index.ts\nfunction useFavicon(newIcon = null, options = {}) {\n\tconst { baseUrl = \"\", rel = \"icon\", document: document$1 = defaultDocument } = options;\n\tconst favicon = toRef(newIcon);\n\tconst applyIcon = (icon) => {\n\t\tconst elements = document$1 === null || document$1 === void 0 ? void 0 : document$1.head.querySelectorAll(`link[rel*=\"${rel}\"]`);\n\t\tif (!elements || elements.length === 0) {\n\t\t\tconst link = document$1 === null || document$1 === void 0 ? void 0 : document$1.createElement(\"link\");\n\t\t\tif (link) {\n\t\t\t\tlink.rel = rel;\n\t\t\t\tlink.href = `${baseUrl}${icon}`;\n\t\t\t\tlink.type = `image/${icon.split(\".\").pop()}`;\n\t\t\t\tdocument$1 === null || document$1 === void 0 || document$1.head.append(link);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\telements === null || elements === void 0 || elements.forEach((el) => el.href = `${baseUrl}${icon}`);\n\t};\n\twatch(favicon, (i, o) => {\n\t\tif (typeof i === \"string\" && i !== o) applyIcon(i);\n\t}, { immediate: true });\n\treturn favicon;\n}\n\n//#endregion\n//#region useFetch/index.ts\nconst payloadMapping = {\n\tjson: \"application/json\",\n\ttext: \"text/plain\"\n};\n/**\n* !!!IMPORTANT!!!\n*\n* If you update the UseFetchOptions interface, be sure to update this object\n* to include the new options\n*/\nfunction isFetchOptions(obj) {\n\treturn obj && containsProp(obj, \"immediate\", \"refetch\", \"initialData\", \"timeout\", \"beforeFetch\", \"afterFetch\", \"onFetchError\", \"fetch\", \"updateDataOnError\");\n}\nconst reAbsolute = /^(?:[a-z][a-z\\d+\\-.]*:)?\\/\\//i;\nfunction isAbsoluteURL(url) {\n\treturn reAbsolute.test(url);\n}\nfunction headersToObject(headers) {\n\tif (typeof Headers !== \"undefined\" && headers instanceof Headers) return Object.fromEntries(headers.entries());\n\treturn headers;\n}\nfunction combineCallbacks(combination, ...callbacks) {\n\tif (combination === \"overwrite\") return async (ctx) => {\n\t\tlet callback;\n\t\tfor (let i = callbacks.length - 1; i >= 0; i--) if (callbacks[i] != null) {\n\t\t\tcallback = callbacks[i];\n\t\t\tbreak;\n\t\t}\n\t\tif (callback) return {\n\t\t\t...ctx,\n\t\t\t...await callback(ctx)\n\t\t};\n\t\treturn ctx;\n\t};\n\telse return async (ctx) => {\n\t\tfor (const callback of callbacks) if (callback) ctx = {\n\t\t\t...ctx,\n\t\t\t...await callback(ctx)\n\t\t};\n\t\treturn ctx;\n\t};\n}\nfunction createFetch(config = {}) {\n\tconst _combination = config.combination || \"chain\";\n\tconst _options = config.options || {};\n\tconst _fetchOptions = config.fetchOptions || {};\n\tfunction useFactoryFetch(url, ...args) {\n\t\tconst computedUrl = computed(() => {\n\t\t\tconst baseUrl = toValue(config.baseUrl);\n\t\t\tconst targetUrl = toValue(url);\n\t\t\treturn baseUrl && !isAbsoluteURL(targetUrl) ? joinPaths(baseUrl, targetUrl) : targetUrl;\n\t\t});\n\t\tlet options = _options;\n\t\tlet fetchOptions = _fetchOptions;\n\t\tif (args.length > 0) if (isFetchOptions(args[0])) options = {\n\t\t\t...options,\n\t\t\t...args[0],\n\t\t\tbeforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[0].beforeFetch),\n\t\t\tafterFetch: combineCallbacks(_combination, _options.afterFetch, args[0].afterFetch),\n\t\t\tonFetchError: combineCallbacks(_combination, _options.onFetchError, args[0].onFetchError)\n\t\t};\n\t\telse fetchOptions = {\n\t\t\t...fetchOptions,\n\t\t\t...args[0],\n\t\t\theaders: {\n\t\t\t\t...headersToObject(fetchOptions.headers) || {},\n\t\t\t\t...headersToObject(args[0].headers) || {}\n\t\t\t}\n\t\t};\n\t\tif (args.length > 1 && isFetchOptions(args[1])) options = {\n\t\t\t...options,\n\t\t\t...args[1],\n\t\t\tbeforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[1].beforeFetch),\n\t\t\tafterFetch: combineCallbacks(_combination, _options.afterFetch, args[1].afterFetch),\n\t\t\tonFetchError: combineCallbacks(_combination, _options.onFetchError, args[1].onFetchError)\n\t\t};\n\t\treturn useFetch(computedUrl, fetchOptions, options);\n\t}\n\treturn useFactoryFetch;\n}\nfunction useFetch(url, ...args) {\n\tvar _defaultWindow$fetch, _globalThis;\n\tconst supportsAbort = typeof AbortController === \"function\";\n\tlet fetchOptions = {};\n\tlet options = {\n\t\timmediate: true,\n\t\trefetch: false,\n\t\ttimeout: 0,\n\t\tupdateDataOnError: false\n\t};\n\tconst config = {\n\t\tmethod: \"GET\",\n\t\ttype: \"text\",\n\t\tpayload: void 0\n\t};\n\tif (args.length > 0) if (isFetchOptions(args[0])) options = {\n\t\t...options,\n\t\t...args[0]\n\t};\n\telse fetchOptions = args[0];\n\tif (args.length > 1) {\n\t\tif (isFetchOptions(args[1])) options = {\n\t\t\t...options,\n\t\t\t...args[1]\n\t\t};\n\t}\n\tconst { fetch = (_defaultWindow$fetch = defaultWindow === null || defaultWindow === void 0 ? void 0 : defaultWindow.fetch) !== null && _defaultWindow$fetch !== void 0 ? _defaultWindow$fetch : (_globalThis = globalThis) === null || _globalThis === void 0 ? void 0 : _globalThis.fetch, initialData, timeout } = options;\n\tconst responseEvent = createEventHook();\n\tconst errorEvent = createEventHook();\n\tconst finallyEvent = createEventHook();\n\tconst isFinished = shallowRef(false);\n\tconst isFetching = shallowRef(false);\n\tconst aborted = shallowRef(false);\n\tconst statusCode = shallowRef(null);\n\tconst response = shallowRef(null);\n\tconst error = shallowRef(null);\n\tconst data = shallowRef(initialData || null);\n\tconst canAbort = computed(() => supportsAbort && isFetching.value);\n\tlet controller;\n\tlet timer;\n\tconst abort = (reason) => {\n\t\tif (supportsAbort) {\n\t\t\tcontroller === null || controller === void 0 || controller.abort(reason);\n\t\t\tcontroller = new AbortController();\n\t\t\tcontroller.signal.onabort = () => aborted.value = true;\n\t\t\tfetchOptions = {\n\t\t\t\t...fetchOptions,\n\t\t\t\tsignal: controller.signal\n\t\t\t};\n\t\t}\n\t};\n\tconst loading = (isLoading) => {\n\t\tisFetching.value = isLoading;\n\t\tisFinished.value = !isLoading;\n\t};\n\tif (timeout) timer = useTimeoutFn(abort, timeout, { immediate: false });\n\tlet executeCounter = 0;\n\tconst execute = async (throwOnFailed = false) => {\n\t\tvar _context$options;\n\t\tabort();\n\t\tloading(true);\n\t\terror.value = null;\n\t\tstatusCode.value = null;\n\t\taborted.value = false;\n\t\texecuteCounter += 1;\n\t\tconst currentExecuteCounter = executeCounter;\n\t\tconst defaultFetchOptions = {\n\t\t\tmethod: config.method,\n\t\t\theaders: {}\n\t\t};\n\t\tconst payload = toValue(config.payload);\n\t\tif (payload) {\n\t\t\tvar _payloadMapping$confi;\n\t\t\tconst headers = headersToObject(defaultFetchOptions.headers);\n\t\t\tconst proto = Object.getPrototypeOf(payload);\n\t\t\tif (!config.payloadType && payload && (proto === Object.prototype || Array.isArray(proto)) && !(payload instanceof FormData)) config.payloadType = \"json\";\n\t\t\tif (config.payloadType) headers[\"Content-Type\"] = (_payloadMapping$confi = payloadMapping[config.payloadType]) !== null && _payloadMapping$confi !== void 0 ? _payloadMapping$confi : config.payloadType;\n\t\t\tdefaultFetchOptions.body = config.payloadType === \"json\" ? JSON.stringify(payload) : payload;\n\t\t}\n\t\tlet isCanceled = false;\n\t\tconst context = {\n\t\t\turl: toValue(url),\n\t\t\toptions: {\n\t\t\t\t...defaultFetchOptions,\n\t\t\t\t...fetchOptions\n\t\t\t},\n\t\t\tcancel: () => {\n\t\t\t\tisCanceled = true;\n\t\t\t}\n\t\t};\n\t\tif (options.beforeFetch) Object.assign(context, await options.beforeFetch(context));\n\t\tif (isCanceled || !fetch) {\n\t\t\tloading(false);\n\t\t\treturn Promise.resolve(null);\n\t\t}\n\t\tlet responseData = null;\n\t\tif (timer) timer.start();\n\t\treturn fetch(context.url, {\n\t\t\t...defaultFetchOptions,\n\t\t\t...context.options,\n\t\t\theaders: {\n\t\t\t\t...headersToObject(defaultFetchOptions.headers),\n\t\t\t\t...headersToObject((_context$options = context.options) === null || _context$options === void 0 ? void 0 : _context$options.headers)\n\t\t\t}\n\t\t}).then(async (fetchResponse) => {\n\t\t\tresponse.value = fetchResponse;\n\t\t\tstatusCode.value = fetchResponse.status;\n\t\t\tresponseData = await fetchResponse.clone()[config.type]();\n\t\t\tif (!fetchResponse.ok) {\n\t\t\t\tdata.value = initialData || null;\n\t\t\t\tthrow new Error(fetchResponse.statusText);\n\t\t\t}\n\t\t\tif (options.afterFetch) ({data: responseData} = await options.afterFetch({\n\t\t\t\tdata: responseData,\n\t\t\t\tresponse: fetchResponse,\n\t\t\t\tcontext,\n\t\t\t\texecute\n\t\t\t}));\n\t\t\tdata.value = responseData;\n\t\t\tresponseEvent.trigger(fetchResponse);\n\t\t\treturn fetchResponse;\n\t\t}).catch(async (fetchError) => {\n\t\t\tlet errorData = fetchError.message || fetchError.name;\n\t\t\tif (options.onFetchError) ({error: errorData, data: responseData} = await options.onFetchError({\n\t\t\t\tdata: responseData,\n\t\t\t\terror: fetchError,\n\t\t\t\tresponse: response.value,\n\t\t\t\tcontext,\n\t\t\t\texecute\n\t\t\t}));\n\t\t\terror.value = errorData;\n\t\t\tif (options.updateDataOnError) data.value = responseData;\n\t\t\terrorEvent.trigger(fetchError);\n\t\t\tif (throwOnFailed) throw fetchError;\n\t\t\treturn null;\n\t\t}).finally(() => {\n\t\t\tif (currentExecuteCounter === executeCounter) loading(false);\n\t\t\tif (timer) timer.stop();\n\t\t\tfinallyEvent.trigger(null);\n\t\t});\n\t};\n\tconst refetch = toRef(options.refetch);\n\twatch([refetch, toRef(url)], ([refetch$1]) => refetch$1 && execute(), { deep: true });\n\tconst shell = {\n\t\tisFinished: readonly(isFinished),\n\t\tisFetching: readonly(isFetching),\n\t\tstatusCode,\n\t\tresponse,\n\t\terror,\n\t\tdata,\n\t\tcanAbort,\n\t\taborted,\n\t\tabort,\n\t\texecute,\n\t\tonFetchResponse: responseEvent.on,\n\t\tonFetchError: errorEvent.on,\n\t\tonFetchFinally: finallyEvent.on,\n\t\tget: setMethod(\"GET\"),\n\t\tput: setMethod(\"PUT\"),\n\t\tpost: setMethod(\"POST\"),\n\t\tdelete: setMethod(\"DELETE\"),\n\t\tpatch: setMethod(\"PATCH\"),\n\t\thead: setMethod(\"HEAD\"),\n\t\toptions: setMethod(\"OPTIONS\"),\n\t\tjson: setType(\"json\"),\n\t\ttext: setType(\"text\"),\n\t\tblob: setType(\"blob\"),\n\t\tarrayBuffer: setType(\"arrayBuffer\"),\n\t\tformData: setType(\"formData\")\n\t};\n\tfunction setMethod(method) {\n\t\treturn (payload, payloadType) => {\n\t\t\tif (!isFetching.value) {\n\t\t\t\tconfig.method = method;\n\t\t\t\tconfig.payload = payload;\n\t\t\t\tconfig.payloadType = payloadType;\n\t\t\t\tif (isRef(config.payload)) watch([refetch, toRef(config.payload)], ([refetch$1]) => refetch$1 && execute(), { deep: true });\n\t\t\t\treturn {\n\t\t\t\t\t...shell,\n\t\t\t\t\tthen(onFulfilled, onRejected) {\n\t\t\t\t\t\treturn waitUntilFinished().then(onFulfilled, onRejected);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\t\t};\n\t}\n\tfunction waitUntilFinished() {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tuntil(isFinished).toBe(true).then(() => resolve(shell)).catch(reject);\n\t\t});\n\t}\n\tfunction setType(type) {\n\t\treturn () => {\n\t\t\tif (!isFetching.value) {\n\t\t\t\tconfig.type = type;\n\t\t\t\treturn {\n\t\t\t\t\t...shell,\n\t\t\t\t\tthen(onFulfilled, onRejected) {\n\t\t\t\t\t\treturn waitUntilFinished().then(onFulfilled, onRejected);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\t\t};\n\t}\n\tif (options.immediate) Promise.resolve().then(() => execute());\n\treturn {\n\t\t...shell,\n\t\tthen(onFulfilled, onRejected) {\n\t\t\treturn waitUntilFinished().then(onFulfilled, onRejected);\n\t\t}\n\t};\n}\nfunction joinPaths(start, end) {\n\tif (!start.endsWith(\"/\") && !end.startsWith(\"/\")) return `${start}/${end}`;\n\tif (start.endsWith(\"/\") && end.startsWith(\"/\")) return `${start.slice(0, -1)}${end}`;\n\treturn `${start}${end}`;\n}\n\n//#endregion\n//#region useFileDialog/index.ts\nconst DEFAULT_OPTIONS = {\n\tmultiple: true,\n\taccept: \"*\",\n\treset: false,\n\tdirectory: false\n};\nfunction prepareInitialFiles(files) {\n\tif (!files) return null;\n\tif (files instanceof FileList) return files;\n\tconst dt = new DataTransfer();\n\tfor (const file of files) dt.items.add(file);\n\treturn dt.files;\n}\n/**\n* Open file dialog with ease.\n*\n* @see https://vueuse.org/useFileDialog\n* @param options\n*/\nfunction useFileDialog(options = {}) {\n\tconst { document: document$1 = defaultDocument } = options;\n\tconst files = ref(prepareInitialFiles(options.initialFiles));\n\tconst { on: onChange, trigger: changeTrigger } = createEventHook();\n\tconst { on: onCancel, trigger: cancelTrigger } = createEventHook();\n\tconst inputRef = computed(() => {\n\t\tvar _unrefElement;\n\t\tconst input = (_unrefElement = unrefElement(options.input)) !== null && _unrefElement !== void 0 ? _unrefElement : document$1 ? document$1.createElement(\"input\") : void 0;\n\t\tif (input) {\n\t\t\tinput.type = \"file\";\n\t\t\tinput.onchange = (event) => {\n\t\t\t\tfiles.value = event.target.files;\n\t\t\t\tchangeTrigger(files.value);\n\t\t\t};\n\t\t\tinput.oncancel = () => {\n\t\t\t\tcancelTrigger();\n\t\t\t};\n\t\t}\n\t\treturn input;\n\t});\n\tconst reset = () => {\n\t\tfiles.value = null;\n\t\tif (inputRef.value && inputRef.value.value) {\n\t\t\tinputRef.value.value = \"\";\n\t\t\tchangeTrigger(null);\n\t\t}\n\t};\n\tconst applyOptions = (options$1) => {\n\t\tconst el = inputRef.value;\n\t\tif (!el) return;\n\t\tel.multiple = toValue(options$1.multiple);\n\t\tel.accept = toValue(options$1.accept);\n\t\tel.webkitdirectory = toValue(options$1.directory);\n\t\tif (hasOwn(options$1, \"capture\")) el.capture = toValue(options$1.capture);\n\t};\n\tconst open = (localOptions) => {\n\t\tconst el = inputRef.value;\n\t\tif (!el) return;\n\t\tconst mergedOptions = {\n\t\t\t...DEFAULT_OPTIONS,\n\t\t\t...options,\n\t\t\t...localOptions\n\t\t};\n\t\tapplyOptions(mergedOptions);\n\t\tif (toValue(mergedOptions.reset)) reset();\n\t\tel.click();\n\t};\n\twatchEffect(() => {\n\t\tapplyOptions(options);\n\t});\n\treturn {\n\t\tfiles: readonly(files),\n\t\topen,\n\t\treset,\n\t\tonCancel,\n\t\tonChange\n\t};\n}\n\n//#endregion\n//#region useFileSystemAccess/index.ts\nfunction useFileSystemAccess(options = {}) {\n\tconst { window: _window = defaultWindow, dataType = \"Text\" } = options;\n\tconst window$1 = _window;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window$1 && \"showSaveFilePicker\" in window$1 && \"showOpenFilePicker\" in window$1);\n\tconst fileHandle = shallowRef();\n\tconst data = shallowRef();\n\tconst file = shallowRef();\n\tconst fileName = computed(() => {\n\t\tvar _file$value$name, _file$value;\n\t\treturn (_file$value$name = (_file$value = file.value) === null || _file$value === void 0 ? void 0 : _file$value.name) !== null && _file$value$name !== void 0 ? _file$value$name : \"\";\n\t});\n\tconst fileMIME = computed(() => {\n\t\tvar _file$value$type, _file$value2;\n\t\treturn (_file$value$type = (_file$value2 = file.value) === null || _file$value2 === void 0 ? void 0 : _file$value2.type) !== null && _file$value$type !== void 0 ? _file$value$type : \"\";\n\t});\n\tconst fileSize = computed(() => {\n\t\tvar _file$value$size, _file$value3;\n\t\treturn (_file$value$size = (_file$value3 = file.value) === null || _file$value3 === void 0 ? void 0 : _file$value3.size) !== null && _file$value$size !== void 0 ? _file$value$size : 0;\n\t});\n\tconst fileLastModified = computed(() => {\n\t\tvar _file$value$lastModif, _file$value4;\n\t\treturn (_file$value$lastModif = (_file$value4 = file.value) === null || _file$value4 === void 0 ? void 0 : _file$value4.lastModified) !== null && _file$value$lastModif !== void 0 ? _file$value$lastModif : 0;\n\t});\n\tasync function open(_options = {}) {\n\t\tif (!isSupported.value) return;\n\t\tconst [handle] = await window$1.showOpenFilePicker({\n\t\t\t...toValue(options),\n\t\t\t..._options\n\t\t});\n\t\tfileHandle.value = handle;\n\t\tawait updateData();\n\t}\n\tasync function create(_options = {}) {\n\t\tif (!isSupported.value) return;\n\t\tfileHandle.value = await window$1.showSaveFilePicker({\n\t\t\t...options,\n\t\t\t..._options\n\t\t});\n\t\tdata.value = void 0;\n\t\tawait updateData();\n\t}\n\tasync function save(_options = {}) {\n\t\tif (!isSupported.value) return;\n\t\tif (!fileHandle.value) return saveAs(_options);\n\t\tif (data.value) {\n\t\t\tconst writableStream = await fileHandle.value.createWritable();\n\t\t\tawait writableStream.write(data.value);\n\t\t\tawait writableStream.close();\n\t\t}\n\t\tawait updateFile();\n\t}\n\tasync function saveAs(_options = {}) {\n\t\tif (!isSupported.value) return;\n\t\tfileHandle.value = await window$1.showSaveFilePicker({\n\t\t\t...options,\n\t\t\t..._options\n\t\t});\n\t\tif (data.value) {\n\t\t\tconst writableStream = await fileHandle.value.createWritable();\n\t\t\tawait writableStream.write(data.value);\n\t\t\tawait writableStream.close();\n\t\t}\n\t\tawait updateFile();\n\t}\n\tasync function updateFile() {\n\t\tvar _fileHandle$value;\n\t\tfile.value = await ((_fileHandle$value = fileHandle.value) === null || _fileHandle$value === void 0 ? void 0 : _fileHandle$value.getFile());\n\t}\n\tasync function updateData() {\n\t\tvar _file$value5, _file$value6;\n\t\tawait updateFile();\n\t\tconst type = toValue(dataType);\n\t\tif (type === \"Text\") data.value = await ((_file$value5 = file.value) === null || _file$value5 === void 0 ? void 0 : _file$value5.text());\n\t\telse if (type === \"ArrayBuffer\") data.value = await ((_file$value6 = file.value) === null || _file$value6 === void 0 ? void 0 : _file$value6.arrayBuffer());\n\t\telse if (type === \"Blob\") data.value = file.value;\n\t}\n\twatch(() => toValue(dataType), updateData);\n\treturn {\n\t\tisSupported,\n\t\tdata,\n\t\tfile,\n\t\tfileName,\n\t\tfileMIME,\n\t\tfileSize,\n\t\tfileLastModified,\n\t\topen,\n\t\tcreate,\n\t\tsave,\n\t\tsaveAs,\n\t\tupdateData\n\t};\n}\n\n//#endregion\n//#region useFocus/index.ts\n/**\n* Track or set the focus state of a DOM element.\n*\n* @see https://vueuse.org/useFocus\n* @param target The target element for the focus and blur events.\n* @param options\n*/\nfunction useFocus(target, options = {}) {\n\tconst { initialValue = false, focusVisible = false, preventScroll = false } = options;\n\tconst innerFocused = shallowRef(false);\n\tconst targetElement = computed(() => unrefElement(target));\n\tconst listenerOptions = { passive: true };\n\tuseEventListener(targetElement, \"focus\", (event) => {\n\t\tvar _matches, _ref;\n\t\tif (!focusVisible || ((_matches = (_ref = event.target).matches) === null || _matches === void 0 ? void 0 : _matches.call(_ref, \":focus-visible\"))) innerFocused.value = true;\n\t}, listenerOptions);\n\tuseEventListener(targetElement, \"blur\", () => innerFocused.value = false, listenerOptions);\n\tconst focused = computed({\n\t\tget: () => innerFocused.value,\n\t\tset(value) {\n\t\t\tvar _targetElement$value, _targetElement$value2;\n\t\t\tif (!value && innerFocused.value) (_targetElement$value = targetElement.value) === null || _targetElement$value === void 0 || _targetElement$value.blur();\n\t\t\telse if (value && !innerFocused.value) (_targetElement$value2 = targetElement.value) === null || _targetElement$value2 === void 0 || _targetElement$value2.focus({ preventScroll });\n\t\t}\n\t});\n\twatch(targetElement, () => {\n\t\tfocused.value = initialValue;\n\t}, {\n\t\timmediate: true,\n\t\tflush: \"post\"\n\t});\n\treturn { focused };\n}\n\n//#endregion\n//#region useFocusWithin/index.ts\nconst EVENT_FOCUS_IN = \"focusin\";\nconst EVENT_FOCUS_OUT = \"focusout\";\nconst PSEUDO_CLASS_FOCUS_WITHIN = \":focus-within\";\n/**\n* Track if focus is contained within the target element\n*\n* @see https://vueuse.org/useFocusWithin\n* @param target The target element to track\n* @param options Focus within options\n*/\nfunction useFocusWithin(target, options = {}) {\n\tconst { window: window$1 = defaultWindow } = options;\n\tconst targetElement = computed(() => unrefElement(target));\n\tconst _focused = shallowRef(false);\n\tconst focused = computed(() => _focused.value);\n\tconst activeElement = useActiveElement(options);\n\tif (!window$1 || !activeElement.value) return { focused };\n\tconst listenerOptions = { passive: true };\n\tuseEventListener(targetElement, EVENT_FOCUS_IN, () => _focused.value = true, listenerOptions);\n\tuseEventListener(targetElement, EVENT_FOCUS_OUT, () => {\n\t\tvar _targetElement$value$, _targetElement$value, _targetElement$value$2;\n\t\treturn _focused.value = (_targetElement$value$ = (_targetElement$value = targetElement.value) === null || _targetElement$value === void 0 || (_targetElement$value$2 = _targetElement$value.matches) === null || _targetElement$value$2 === void 0 ? void 0 : _targetElement$value$2.call(_targetElement$value, PSEUDO_CLASS_FOCUS_WITHIN)) !== null && _targetElement$value$ !== void 0 ? _targetElement$value$ : false;\n\t}, listenerOptions);\n\treturn { focused };\n}\n\n//#endregion\n//#region useFps/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction useFps(options) {\n\tvar _options$every;\n\tconst fps = shallowRef(0);\n\tif (typeof performance === \"undefined\") return fps;\n\tconst every = (_options$every = options === null || options === void 0 ? void 0 : options.every) !== null && _options$every !== void 0 ? _options$every : 10;\n\tlet last = performance.now();\n\tlet ticks = 0;\n\tuseRafFn(() => {\n\t\tticks += 1;\n\t\tif (ticks >= every) {\n\t\t\tconst now = performance.now();\n\t\t\tconst diff = now - last;\n\t\t\tfps.value = Math.round(1e3 / (diff / ticks));\n\t\t\tlast = now;\n\t\t\tticks = 0;\n\t\t}\n\t});\n\treturn fps;\n}\n\n//#endregion\n//#region useFullscreen/index.ts\nconst eventHandlers = [\n\t\"fullscreenchange\",\n\t\"webkitfullscreenchange\",\n\t\"webkitendfullscreen\",\n\t\"mozfullscreenchange\",\n\t\"MSFullscreenChange\"\n];\n/**\n* Reactive Fullscreen API.\n*\n* @see https://vueuse.org/useFullscreen\n* @param target\n* @param options\n*/\nfunction useFullscreen(target, options = {}) {\n\tconst { document: document$1 = defaultDocument, autoExit = false } = options;\n\tconst targetRef = computed(() => {\n\t\tvar _unrefElement;\n\t\treturn (_unrefElement = unrefElement(target)) !== null && _unrefElement !== void 0 ? _unrefElement : document$1 === null || document$1 === void 0 ? void 0 : document$1.documentElement;\n\t});\n\tconst isFullscreen = shallowRef(false);\n\tconst requestMethod = computed(() => {\n\t\treturn [\n\t\t\t\"requestFullscreen\",\n\t\t\t\"webkitRequestFullscreen\",\n\t\t\t\"webkitEnterFullscreen\",\n\t\t\t\"webkitEnterFullScreen\",\n\t\t\t\"webkitRequestFullScreen\",\n\t\t\t\"mozRequestFullScreen\",\n\t\t\t\"msRequestFullscreen\"\n\t\t].find((m) => document$1 && m in document$1 || targetRef.value && m in targetRef.value);\n\t});\n\tconst exitMethod = computed(() => {\n\t\treturn [\n\t\t\t\"exitFullscreen\",\n\t\t\t\"webkitExitFullscreen\",\n\t\t\t\"webkitExitFullScreen\",\n\t\t\t\"webkitCancelFullScreen\",\n\t\t\t\"mozCancelFullScreen\",\n\t\t\t\"msExitFullscreen\"\n\t\t].find((m) => document$1 && m in document$1 || targetRef.value && m in targetRef.value);\n\t});\n\tconst fullscreenEnabled = computed(() => {\n\t\treturn [\n\t\t\t\"fullScreen\",\n\t\t\t\"webkitIsFullScreen\",\n\t\t\t\"webkitDisplayingFullscreen\",\n\t\t\t\"mozFullScreen\",\n\t\t\t\"msFullscreenElement\"\n\t\t].find((m) => document$1 && m in document$1 || targetRef.value && m in targetRef.value);\n\t});\n\tconst fullscreenElementMethod = [\n\t\t\"fullscreenElement\",\n\t\t\"webkitFullscreenElement\",\n\t\t\"mozFullScreenElement\",\n\t\t\"msFullscreenElement\"\n\t].find((m) => document$1 && m in document$1);\n\tconst isSupported = /* @__PURE__ */ useSupported(() => targetRef.value && document$1 && requestMethod.value !== void 0 && exitMethod.value !== void 0 && fullscreenEnabled.value !== void 0);\n\tconst isCurrentElementFullScreen = () => {\n\t\tif (fullscreenElementMethod) return (document$1 === null || document$1 === void 0 ? void 0 : document$1[fullscreenElementMethod]) === targetRef.value;\n\t\treturn false;\n\t};\n\tconst isElementFullScreen = () => {\n\t\tif (fullscreenEnabled.value) if (document$1 && document$1[fullscreenEnabled.value] != null) return document$1[fullscreenEnabled.value];\n\t\telse {\n\t\t\tconst target$1 = targetRef.value;\n\t\t\tif ((target$1 === null || target$1 === void 0 ? void 0 : target$1[fullscreenEnabled.value]) != null) return Boolean(target$1[fullscreenEnabled.value]);\n\t\t}\n\t\treturn false;\n\t};\n\tasync function exit() {\n\t\tif (!isSupported.value || !isFullscreen.value) return;\n\t\tif (exitMethod.value) if ((document$1 === null || document$1 === void 0 ? void 0 : document$1[exitMethod.value]) != null) await document$1[exitMethod.value]();\n\t\telse {\n\t\t\tconst target$1 = targetRef.value;\n\t\t\tif ((target$1 === null || target$1 === void 0 ? void 0 : target$1[exitMethod.value]) != null) await target$1[exitMethod.value]();\n\t\t}\n\t\tisFullscreen.value = false;\n\t}\n\tasync function enter() {\n\t\tif (!isSupported.value || isFullscreen.value) return;\n\t\tif (isElementFullScreen()) await exit();\n\t\tconst target$1 = targetRef.value;\n\t\tif (requestMethod.value && (target$1 === null || target$1 === void 0 ? void 0 : target$1[requestMethod.value]) != null) {\n\t\t\tawait target$1[requestMethod.value]();\n\t\t\tisFullscreen.value = true;\n\t\t}\n\t}\n\tasync function toggle() {\n\t\tawait (isFullscreen.value ? exit() : enter());\n\t}\n\tconst handlerCallback = () => {\n\t\tconst isElementFullScreenValue = isElementFullScreen();\n\t\tif (!isElementFullScreenValue || isElementFullScreenValue && isCurrentElementFullScreen()) isFullscreen.value = isElementFullScreenValue;\n\t};\n\tconst listenerOptions = {\n\t\tcapture: false,\n\t\tpassive: true\n\t};\n\tuseEventListener(document$1, eventHandlers, handlerCallback, listenerOptions);\n\tuseEventListener(() => unrefElement(targetRef), eventHandlers, handlerCallback, listenerOptions);\n\ttryOnMounted(handlerCallback, false);\n\tif (autoExit) tryOnScopeDispose(exit);\n\treturn {\n\t\tisSupported,\n\t\tisFullscreen,\n\t\tenter,\n\t\texit,\n\t\ttoggle\n\t};\n}\n\n//#endregion\n//#region useGamepad/index.ts\n/**\n* Maps a standard standard gamepad to an Xbox 360 Controller.\n*/\nfunction mapGamepadToXbox360Controller(gamepad) {\n\treturn computed(() => {\n\t\tif (gamepad.value) return {\n\t\t\tbuttons: {\n\t\t\t\ta: gamepad.value.buttons[0],\n\t\t\t\tb: gamepad.value.buttons[1],\n\t\t\t\tx: gamepad.value.buttons[2],\n\t\t\t\ty: gamepad.value.buttons[3]\n\t\t\t},\n\t\t\tbumper: {\n\t\t\t\tleft: gamepad.value.buttons[4],\n\t\t\t\tright: gamepad.value.buttons[5]\n\t\t\t},\n\t\t\ttriggers: {\n\t\t\t\tleft: gamepad.value.buttons[6],\n\t\t\t\tright: gamepad.value.buttons[7]\n\t\t\t},\n\t\t\tstick: {\n\t\t\t\tleft: {\n\t\t\t\t\thorizontal: gamepad.value.axes[0],\n\t\t\t\t\tvertical: gamepad.value.axes[1],\n\t\t\t\t\tbutton: gamepad.value.buttons[10]\n\t\t\t\t},\n\t\t\t\tright: {\n\t\t\t\t\thorizontal: gamepad.value.axes[2],\n\t\t\t\t\tvertical: gamepad.value.axes[3],\n\t\t\t\t\tbutton: gamepad.value.buttons[11]\n\t\t\t\t}\n\t\t\t},\n\t\t\tdpad: {\n\t\t\t\tup: gamepad.value.buttons[12],\n\t\t\t\tdown: gamepad.value.buttons[13],\n\t\t\t\tleft: gamepad.value.buttons[14],\n\t\t\t\tright: gamepad.value.buttons[15]\n\t\t\t},\n\t\t\tback: gamepad.value.buttons[8],\n\t\t\tstart: gamepad.value.buttons[9]\n\t\t};\n\t\treturn null;\n\t});\n}\n/* @__NO_SIDE_EFFECTS__ */\nfunction useGamepad(options = {}) {\n\tconst { navigator: navigator$1 = defaultNavigator } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator$1 && \"getGamepads\" in navigator$1);\n\tconst gamepads = ref([]);\n\tconst onConnectedHook = createEventHook();\n\tconst onDisconnectedHook = createEventHook();\n\tconst stateFromGamepad = (gamepad) => {\n\t\tconst hapticActuators = [];\n\t\tconst vibrationActuator = \"vibrationActuator\" in gamepad ? gamepad.vibrationActuator : null;\n\t\tif (vibrationActuator) hapticActuators.push(vibrationActuator);\n\t\tif (gamepad.hapticActuators) hapticActuators.push(...gamepad.hapticActuators);\n\t\treturn {\n\t\t\tid: gamepad.id,\n\t\t\tindex: gamepad.index,\n\t\t\tconnected: gamepad.connected,\n\t\t\tmapping: gamepad.mapping,\n\t\t\ttimestamp: gamepad.timestamp,\n\t\t\tvibrationActuator: gamepad.vibrationActuator,\n\t\t\thapticActuators,\n\t\t\taxes: gamepad.axes.map((axes) => axes),\n\t\t\tbuttons: gamepad.buttons.map((button) => ({\n\t\t\t\tpressed: button.pressed,\n\t\t\t\ttouched: button.touched,\n\t\t\t\tvalue: button.value\n\t\t\t}))\n\t\t};\n\t};\n\tconst updateGamepadState = () => {\n\t\tconst _gamepads = (navigator$1 === null || navigator$1 === void 0 ? void 0 : navigator$1.getGamepads()) || [];\n\t\tfor (const gamepad of _gamepads) if (gamepad && gamepads.value[gamepad.index]) gamepads.value[gamepad.index] = stateFromGamepad(gamepad);\n\t};\n\tconst { isActive, pause, resume } = useRafFn(updateGamepadState);\n\tconst onGamepadConnected = (gamepad) => {\n\t\tif (!gamepads.value.some(({ index }) => index === gamepad.index)) {\n\t\t\tgamepads.value.push(stateFromGamepad(gamepad));\n\t\t\tonConnectedHook.trigger(gamepad.index);\n\t\t}\n\t\tresume();\n\t};\n\tconst onGamepadDisconnected = (gamepad) => {\n\t\tgamepads.value = gamepads.value.filter((x) => x.index !== gamepad.index);\n\t\tonDisconnectedHook.trigger(gamepad.index);\n\t};\n\tconst listenerOptions = { passive: true };\n\tuseEventListener(\"gamepadconnected\", (e) => onGamepadConnected(e.gamepad), listenerOptions);\n\tuseEventListener(\"gamepaddisconnected\", (e) => onGamepadDisconnected(e.gamepad), listenerOptions);\n\ttryOnMounted(() => {\n\t\tconst _gamepads = (navigator$1 === null || navigator$1 === void 0 ? void 0 : navigator$1.getGamepads()) || [];\n\t\tfor (const gamepad of _gamepads) if (gamepad && gamepads.value[gamepad.index]) onGamepadConnected(gamepad);\n\t});\n\tpause();\n\treturn {\n\t\tisSupported,\n\t\tonConnected: onConnectedHook.on,\n\t\tonDisconnected: onDisconnectedHook.on,\n\t\tgamepads,\n\t\tpause,\n\t\tresume,\n\t\tisActive\n\t};\n}\n\n//#endregion\n//#region useGeolocation/index.ts\n/**\n* Reactive Geolocation API.\n*\n* @see https://vueuse.org/useGeolocation\n* @param options\n*/\nfunction useGeolocation(options = {}) {\n\tconst { enableHighAccuracy = true, maximumAge = 3e4, timeout = 27e3, navigator: navigator$1 = defaultNavigator, immediate = true } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator$1 && \"geolocation\" in navigator$1);\n\tconst locatedAt = shallowRef(null);\n\tconst error = shallowRef(null);\n\tconst coords = ref({\n\t\taccuracy: 0,\n\t\tlatitude: Number.POSITIVE_INFINITY,\n\t\tlongitude: Number.POSITIVE_INFINITY,\n\t\taltitude: null,\n\t\taltitudeAccuracy: null,\n\t\theading: null,\n\t\tspeed: null\n\t});\n\tfunction updatePosition(position) {\n\t\tlocatedAt.value = position.timestamp;\n\t\tcoords.value = position.coords;\n\t\terror.value = null;\n\t}\n\tlet watcher;\n\tfunction resume() {\n\t\tif (isSupported.value) watcher = navigator$1.geolocation.watchPosition(updatePosition, (err) => error.value = err, {\n\t\t\tenableHighAccuracy,\n\t\t\tmaximumAge,\n\t\t\ttimeout\n\t\t});\n\t}\n\tif (immediate) resume();\n\tfunction pause() {\n\t\tif (watcher && navigator$1) navigator$1.geolocation.clearWatch(watcher);\n\t}\n\ttryOnScopeDispose(() => {\n\t\tpause();\n\t});\n\treturn {\n\t\tisSupported,\n\t\tcoords,\n\t\tlocatedAt,\n\t\terror,\n\t\tresume,\n\t\tpause\n\t};\n}\n\n//#endregion\n//#region useIdle/index.ts\nconst defaultEvents$1 = [\n\t\"mousemove\",\n\t\"mousedown\",\n\t\"resize\",\n\t\"keydown\",\n\t\"touchstart\",\n\t\"wheel\"\n];\nconst oneMinute = 6e4;\n/**\n* Tracks whether the user is being inactive.\n*\n* @see https://vueuse.org/useIdle\n* @param timeout default to 1 minute\n* @param options IdleOptions\n*/\nfunction useIdle(timeout = oneMinute, options = {}) {\n\tconst { initialState = false, listenForVisibilityChange = true, events: events$1 = defaultEvents$1, window: window$1 = defaultWindow, eventFilter = throttleFilter(50) } = options;\n\tconst idle = shallowRef(initialState);\n\tconst lastActive = shallowRef(timestamp());\n\tconst isPending = shallowRef(false);\n\tlet timer;\n\tconst reset = () => {\n\t\tidle.value = false;\n\t\tclearTimeout(timer);\n\t\ttimer = setTimeout(() => idle.value = true, timeout);\n\t};\n\tconst onEvent = createFilterWrapper(eventFilter, () => {\n\t\tlastActive.value = timestamp();\n\t\treset();\n\t});\n\tif (window$1) {\n\t\tconst document$1 = window$1.document;\n\t\tconst listenerOptions = { passive: true };\n\t\tfor (const event of events$1) useEventListener(window$1, event, () => {\n\t\t\tif (!isPending.value) return;\n\t\t\tonEvent();\n\t\t}, listenerOptions);\n\t\tif (listenForVisibilityChange) useEventListener(document$1, \"visibilitychange\", () => {\n\t\t\tif (document$1.hidden || !isPending.value) return;\n\t\t\tonEvent();\n\t\t}, listenerOptions);\n\t\tstart();\n\t}\n\tfunction start() {\n\t\tif (isPending.value) return;\n\t\tisPending.value = true;\n\t\tif (!initialState) reset();\n\t}\n\tfunction stop() {\n\t\tidle.value = initialState;\n\t\tclearTimeout(timer);\n\t\tisPending.value = false;\n\t}\n\treturn {\n\t\tidle,\n\t\tlastActive,\n\t\treset,\n\t\tstop,\n\t\tstart,\n\t\tisPending: shallowReadonly(isPending)\n\t};\n}\n\n//#endregion\n//#region useImage/index.ts\nasync function loadImage(options) {\n\treturn new Promise((resolve, reject) => {\n\t\tconst img = new Image();\n\t\tconst { src, srcset, sizes, class: clazz, loading, crossorigin, referrerPolicy, width, height, decoding, fetchPriority, ismap, usemap } = options;\n\t\timg.src = src;\n\t\tif (srcset != null) img.srcset = srcset;\n\t\tif (sizes != null) img.sizes = sizes;\n\t\tif (clazz != null) img.className = clazz;\n\t\tif (loading != null) img.loading = loading;\n\t\tif (crossorigin != null) img.crossOrigin = crossorigin;\n\t\tif (referrerPolicy != null) img.referrerPolicy = referrerPolicy;\n\t\tif (width != null) img.width = width;\n\t\tif (height != null) img.height = height;\n\t\tif (decoding != null) img.decoding = decoding;\n\t\tif (fetchPriority != null) img.fetchPriority = fetchPriority;\n\t\tif (ismap != null) img.isMap = ismap;\n\t\tif (usemap != null) img.useMap = usemap;\n\t\timg.onload = () => resolve(img);\n\t\timg.onerror = reject;\n\t});\n}\n/**\n* Reactive load an image in the browser, you can wait the result to display it or show a fallback.\n*\n* @see https://vueuse.org/useImage\n* @param options Image attributes, as used in the <img> tag\n* @param asyncStateOptions\n*/\nfunction useImage(options, asyncStateOptions = {}) {\n\tconst state = useAsyncState(() => loadImage(toValue(options)), void 0, {\n\t\tresetOnExecute: true,\n\t\t...asyncStateOptions\n\t});\n\twatch(() => toValue(options), () => state.execute(asyncStateOptions.delay), { deep: true });\n\treturn state;\n}\n\n//#endregion\n//#region _resolve-element.ts\n/**\n* Resolves an element from a given element, window, or document.\n*\n* @internal\n*/\nfunction resolveElement(el) {\n\tif (typeof Window !== \"undefined\" && el instanceof Window) return el.document.documentElement;\n\tif (typeof Document !== \"undefined\" && el instanceof Document) return el.documentElement;\n\treturn el;\n}\n\n//#endregion\n//#region useScroll/index.ts\n/**\n* We have to check if the scroll amount is close enough to some threshold in order to\n* more accurately calculate arrivedState. This is because scrollTop/scrollLeft are non-rounded\n* numbers, while scrollHeight/scrollWidth and clientHeight/clientWidth are rounded.\n* https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight#determine_if_an_element_has_been_totally_scrolled\n*/\nconst ARRIVED_STATE_THRESHOLD_PIXELS = 1;\n/**\n* Reactive scroll.\n*\n* @see https://vueuse.org/useScroll\n* @param element\n* @param options\n*/\nfunction useScroll(element, options = {}) {\n\tconst { throttle = 0, idle = 200, onStop = noop, onScroll = noop, offset = {\n\t\tleft: 0,\n\t\tright: 0,\n\t\ttop: 0,\n\t\tbottom: 0\n\t}, observe: _observe = { mutation: false }, eventListenerOptions = {\n\t\tcapture: false,\n\t\tpassive: true\n\t}, behavior = \"auto\", window: window$1 = defaultWindow, onError = (e) => {\n\t\tconsole.error(e);\n\t} } = options;\n\tconst observe = typeof _observe === \"boolean\" ? { mutation: _observe } : _observe;\n\tconst internalX = shallowRef(0);\n\tconst internalY = shallowRef(0);\n\tconst x = computed({\n\t\tget() {\n\t\t\treturn internalX.value;\n\t\t},\n\t\tset(x$1) {\n\t\t\tscrollTo(x$1, void 0);\n\t\t}\n\t});\n\tconst y = computed({\n\t\tget() {\n\t\t\treturn internalY.value;\n\t\t},\n\t\tset(y$1) {\n\t\t\tscrollTo(void 0, y$1);\n\t\t}\n\t});\n\tfunction scrollTo(_x, _y) {\n\t\tvar _ref, _toValue, _toValue2, _document;\n\t\tif (!window$1) return;\n\t\tconst _element = toValue(element);\n\t\tif (!_element) return;\n\t\t(_ref = _element instanceof Document ? window$1.document.body : _element) === null || _ref === void 0 || _ref.scrollTo({\n\t\t\ttop: (_toValue = toValue(_y)) !== null && _toValue !== void 0 ? _toValue : y.value,\n\t\t\tleft: (_toValue2 = toValue(_x)) !== null && _toValue2 !== void 0 ? _toValue2 : x.value,\n\t\t\tbehavior: toValue(behavior)\n\t\t});\n\t\tconst scrollContainer = (_element === null || _element === void 0 || (_document = _element.document) === null || _document === void 0 ? void 0 : _document.documentElement) || (_element === null || _element === void 0 ? void 0 : _element.documentElement) || _element;\n\t\tif (x != null) internalX.value = scrollContainer.scrollLeft;\n\t\tif (y != null) internalY.value = scrollContainer.scrollTop;\n\t}\n\tconst isScrolling = shallowRef(false);\n\tconst arrivedState = reactive({\n\t\tleft: true,\n\t\tright: false,\n\t\ttop: true,\n\t\tbottom: false\n\t});\n\tconst directions = reactive({\n\t\tleft: false,\n\t\tright: false,\n\t\ttop: false,\n\t\tbottom: false\n\t});\n\tconst onScrollEnd = (e) => {\n\t\tif (!isScrolling.value) return;\n\t\tisScrolling.value = false;\n\t\tdirections.left = false;\n\t\tdirections.right = false;\n\t\tdirections.top = false;\n\t\tdirections.bottom = false;\n\t\tonStop(e);\n\t};\n\tconst onScrollEndDebounced = useDebounceFn(onScrollEnd, throttle + idle);\n\tconst setArrivedState = (target) => {\n\t\tvar _document2;\n\t\tif (!window$1) return;\n\t\tconst el = (target === null || target === void 0 || (_document2 = target.document) === null || _document2 === void 0 ? void 0 : _document2.documentElement) || (target === null || target === void 0 ? void 0 : target.documentElement) || unrefElement(target);\n\t\tconst { display, flexDirection, direction } = window$1.getComputedStyle(el);\n\t\tconst directionMultipler = direction === \"rtl\" ? -1 : 1;\n\t\tconst scrollLeft = el.scrollLeft;\n\t\tdirections.left = scrollLeft < internalX.value;\n\t\tdirections.right = scrollLeft > internalX.value;\n\t\tconst left = Math.abs(scrollLeft * directionMultipler) <= (offset.left || 0);\n\t\tconst right = Math.abs(scrollLeft * directionMultipler) + el.clientWidth >= el.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n\t\tif (display === \"flex\" && flexDirection === \"row-reverse\") {\n\t\t\tarrivedState.left = right;\n\t\t\tarrivedState.right = left;\n\t\t} else {\n\t\t\tarrivedState.left = left;\n\t\t\tarrivedState.right = right;\n\t\t}\n\t\tinternalX.value = scrollLeft;\n\t\tlet scrollTop = el.scrollTop;\n\t\tif (target === window$1.document && !scrollTop) scrollTop = window$1.document.body.scrollTop;\n\t\tdirections.top = scrollTop < internalY.value;\n\t\tdirections.bottom = scrollTop > internalY.value;\n\t\tconst top = Math.abs(scrollTop) <= (offset.top || 0);\n\t\tconst bottom = Math.abs(scrollTop) + el.clientHeight >= el.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n\t\t/**\n\t\t* reverse columns and rows behave exactly the other way around,\n\t\t* bottom is treated as top and top is treated as the negative version of bottom\n\t\t*/\n\t\tif (display === \"flex\" && flexDirection === \"column-reverse\") {\n\t\t\tarrivedState.top = bottom;\n\t\t\tarrivedState.bottom = top;\n\t\t} else {\n\t\t\tarrivedState.top = top;\n\t\t\tarrivedState.bottom = bottom;\n\t\t}\n\t\tinternalY.value = scrollTop;\n\t};\n\tconst onScrollHandler = (e) => {\n\t\tvar _documentElement;\n\t\tif (!window$1) return;\n\t\tsetArrivedState((_documentElement = e.target.documentElement) !== null && _documentElement !== void 0 ? _documentElement : e.target);\n\t\tisScrolling.value = true;\n\t\tonScrollEndDebounced(e);\n\t\tonScroll(e);\n\t};\n\tuseEventListener(element, \"scroll\", throttle ? useThrottleFn(onScrollHandler, throttle, true, false) : onScrollHandler, eventListenerOptions);\n\ttryOnMounted(() => {\n\t\ttry {\n\t\t\tconst _element = toValue(element);\n\t\t\tif (!_element) return;\n\t\t\tsetArrivedState(_element);\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t}\n\t});\n\tif ((observe === null || observe === void 0 ? void 0 : observe.mutation) && element != null && element !== window$1 && element !== document) useMutationObserver(element, () => {\n\t\tconst _element = toValue(element);\n\t\tif (!_element) return;\n\t\tsetArrivedState(_element);\n\t}, {\n\t\tattributes: true,\n\t\tchildList: true,\n\t\tsubtree: true\n\t});\n\tuseEventListener(element, \"scrollend\", onScrollEnd, eventListenerOptions);\n\treturn {\n\t\tx,\n\t\ty,\n\t\tisScrolling,\n\t\tarrivedState,\n\t\tdirections,\n\t\tmeasure() {\n\t\t\tconst _element = toValue(element);\n\t\t\tif (window$1 && _element) setArrivedState(_element);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region useInfiniteScroll/index.ts\n/**\n* Reactive infinite scroll.\n*\n* @see https://vueuse.org/useInfiniteScroll\n*/\nfunction useInfiniteScroll(element, onLoadMore, options = {}) {\n\tvar _options$distance;\n\tconst { direction = \"bottom\", interval = 100, canLoadMore = () => true } = options;\n\tconst state = reactive(useScroll(element, {\n\t\t...options,\n\t\toffset: {\n\t\t\t[direction]: (_options$distance = options.distance) !== null && _options$distance !== void 0 ? _options$distance : 0,\n\t\t\t...options.offset\n\t\t}\n\t}));\n\tconst promise = ref();\n\tconst isLoading = computed(() => !!promise.value);\n\tconst observedElement = computed(() => {\n\t\treturn resolveElement(toValue(element));\n\t});\n\tconst isElementVisible = useElementVisibility(observedElement);\n\tconst canLoad = computed(() => {\n\t\tif (!observedElement.value) return false;\n\t\treturn canLoadMore(observedElement.value);\n\t});\n\tfunction checkAndLoad() {\n\t\tstate.measure();\n\t\tif (!observedElement.value || !isElementVisible.value || !canLoad.value) return;\n\t\tconst { scrollHeight, clientHeight, scrollWidth, clientWidth } = observedElement.value;\n\t\tconst isNarrower = direction === \"bottom\" || direction === \"top\" ? scrollHeight <= clientHeight : scrollWidth <= clientWidth;\n\t\tif (state.arrivedState[direction] || isNarrower) {\n\t\t\tif (!promise.value) promise.value = Promise.all([onLoadMore(state), new Promise((resolve) => setTimeout(resolve, interval))]).finally(() => {\n\t\t\t\tpromise.value = null;\n\t\t\t\tnextTick(() => checkAndLoad());\n\t\t\t});\n\t\t}\n\t}\n\ttryOnUnmounted(watch(() => [\n\t\tstate.arrivedState[direction],\n\t\tisElementVisible.value,\n\t\tcanLoad.value\n\t], checkAndLoad, { immediate: true }));\n\treturn {\n\t\tisLoading,\n\t\treset() {\n\t\t\tnextTick(() => checkAndLoad());\n\t\t}\n\t};\n}\n\n//#endregion\n//#region useKeyModifier/index.ts\nconst defaultEvents = [\n\t\"mousedown\",\n\t\"mouseup\",\n\t\"keydown\",\n\t\"keyup\"\n];\n/* @__NO_SIDE_EFFECTS__ */\nfunction useKeyModifier(modifier, options = {}) {\n\tconst { events: events$1 = defaultEvents, document: document$1 = defaultDocument, initial = null } = options;\n\tconst state = shallowRef(initial);\n\tif (document$1) events$1.forEach((listenerEvent) => {\n\t\tuseEventListener(document$1, listenerEvent, (evt) => {\n\t\t\tif (typeof evt.getModifierState === \"function\") state.value = evt.getModifierState(modifier);\n\t\t}, { passive: true });\n\t});\n\treturn state;\n}\n\n//#endregion\n//#region useLocalStorage/index.ts\n/**\n* Reactive LocalStorage.\n*\n* @see https://vueuse.org/useLocalStorage\n* @param key\n* @param initialValue\n* @param options\n*/\nfunction useLocalStorage(key, initialValue, options = {}) {\n\tconst { window: window$1 = defaultWindow } = options;\n\treturn useStorage(key, initialValue, window$1 === null || window$1 === void 0 ? void 0 : window$1.localStorage, options);\n}\n\n//#endregion\n//#region useMagicKeys/aliasMap.ts\nconst DefaultMagicKeysAliasMap = {\n\tctrl: \"control\",\n\tcommand: \"meta\",\n\tcmd: \"meta\",\n\toption: \"alt\",\n\tup: \"arrowup\",\n\tdown: \"arrowdown\",\n\tleft: \"arrowleft\",\n\tright: \"arrowright\"\n};\n\n//#endregion\n//#region useMagicKeys/index.ts\n/**\n* Reactive keys pressed state, with magical keys combination support.\n*\n* @see https://vueuse.org/useMagicKeys\n*/\nfunction useMagicKeys(options = {}) {\n\tconst { reactive: useReactive = false, target = defaultWindow, aliasMap = DefaultMagicKeysAliasMap, passive = true, onEventFired = noop } = options;\n\tconst current = reactive(/* @__PURE__ */ new Set());\n\tconst obj = {\n\t\ttoJSON() {\n\t\t\treturn {};\n\t\t},\n\t\tcurrent\n\t};\n\tconst refs = useReactive ? reactive(obj) : obj;\n\tconst metaDeps = /* @__PURE__ */ new Set();\n\tconst depsMap = new Map([\n\t\t[\"Meta\", metaDeps],\n\t\t[\"Shift\", /* @__PURE__ */ new Set()],\n\t\t[\"Alt\", /* @__PURE__ */ new Set()]\n\t]);\n\tconst usedKeys = /* @__PURE__ */ new Set();\n\tfunction setRefs(key, value) {\n\t\tif (key in refs) if (useReactive) refs[key] = value;\n\t\telse refs[key].value = value;\n\t}\n\tfunction reset() {\n\t\tcurrent.clear();\n\t\tfor (const key of usedKeys) setRefs(key, false);\n\t}\n\tfunction updateDeps(value, e, keys$1) {\n\t\tif (!value || typeof e.getModifierState !== \"function\") return;\n\t\tfor (const [modifier, depsSet] of depsMap) if (e.getModifierState(modifier)) {\n\t\t\tkeys$1.forEach((key) => depsSet.add(key));\n\t\t\tbreak;\n\t\t}\n\t}\n\tfunction clearDeps(value, key) {\n\t\tif (value) return;\n\t\tconst depsMapKey = `${key[0].toUpperCase()}${key.slice(1)}`;\n\t\tconst deps = depsMap.get(depsMapKey);\n\t\tif (![\"shift\", \"alt\"].includes(key) || !deps) return;\n\t\tconst depsArray = Array.from(deps);\n\t\tconst depsIndex = depsArray.indexOf(key);\n\t\tdepsArray.forEach((key$1, index) => {\n\t\t\tif (index >= depsIndex) {\n\t\t\t\tcurrent.delete(key$1);\n\t\t\t\tsetRefs(key$1, false);\n\t\t\t}\n\t\t});\n\t\tdeps.clear();\n\t}\n\tfunction updateRefs(e, value) {\n\t\tvar _e$key, _e$code;\n\t\tconst key = (_e$key = e.key) === null || _e$key === void 0 ? void 0 : _e$key.toLowerCase();\n\t\tconst values = [(_e$code = e.code) === null || _e$code === void 0 ? void 0 : _e$code.toLowerCase(), key].filter(Boolean);\n\t\tif (key === \"\") return;\n\t\tif (key) if (value) current.add(key);\n\t\telse current.delete(key);\n\t\tfor (const key$1 of values) {\n\t\t\tusedKeys.add(key$1);\n\t\t\tsetRefs(key$1, value);\n\t\t}\n\t\tupdateDeps(value, e, [...current, ...values]);\n\t\tclearDeps(value, key);\n\t\tif (key === \"meta\" && !value) {\n\t\t\tmetaDeps.forEach((key$1) => {\n\t\t\t\tcurrent.delete(key$1);\n\t\t\t\tsetRefs(key$1, false);\n\t\t\t});\n\t\t\tmetaDeps.clear();\n\t\t}\n\t}\n\tuseEventListener(target, \"keydown\", (e) => {\n\t\tupdateRefs(e, true);\n\t\treturn onEventFired(e);\n\t}, { passive });\n\tuseEventListener(target, \"keyup\", (e) => {\n\t\tupdateRefs(e, false);\n\t\treturn onEventFired(e);\n\t}, { passive });\n\tuseEventListener(\"blur\", reset, { passive });\n\tuseEventListener(\"focus\", reset, { passive });\n\tconst proxy = new Proxy(refs, { get(target$1, prop, rec) {\n\t\tif (typeof prop !== \"string\") return Reflect.get(target$1, prop, rec);\n\t\tprop = prop.toLowerCase();\n\t\tif (prop in aliasMap) prop = aliasMap[prop];\n\t\tif (!(prop in refs)) if (/[+_-]/.test(prop)) {\n\t\t\tconst keys$1 = prop.split(/[+_-]/g).map((i) => i.trim());\n\t\t\trefs[prop] = computed(() => keys$1.map((key) => toValue(proxy[key])).every(Boolean));\n\t\t} else refs[prop] = shallowRef(false);\n\t\tconst r = Reflect.get(target$1, prop, rec);\n\t\treturn useReactive ? toValue(r) : r;\n\t} });\n\treturn proxy;\n}\n\n//#endregion\n//#region useMediaControls/index.ts\n/**\n* Automatically check if the ref exists and if it does run the cb fn\n*/\nfunction usingElRef(source, cb) {\n\tif (toValue(source)) cb(toValue(source));\n}\n/**\n* Converts a TimeRange object to an array\n*/\nfunction timeRangeToArray(timeRanges) {\n\tlet ranges = [];\n\tfor (let i = 0; i < timeRanges.length; ++i) ranges = [...ranges, [timeRanges.start(i), timeRanges.end(i)]];\n\treturn ranges;\n}\n/**\n* Converts a TextTrackList object to an array of `UseMediaTextTrack`\n*/\nfunction tracksToArray(tracks) {\n\treturn Array.from(tracks).map(({ label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }, id) => ({\n\t\tid,\n\t\tlabel,\n\t\tkind,\n\t\tlanguage,\n\t\tmode,\n\t\tactiveCues,\n\t\tcues,\n\t\tinBandMetadataTrackDispatchType\n\t}));\n}\nconst defaultOptions = {\n\tsrc: \"\",\n\ttracks: []\n};\nfunction useMediaControls(target, options = {}) {\n\ttarget = toRef(target);\n\toptions = {\n\t\t...defaultOptions,\n\t\t...options\n\t};\n\tconst { document: document$1 = defaultDocument } = options;\n\tconst listenerOptions = { passive: true };\n\tconst currentTime = shallowRef(0);\n\tconst duration = shallowRef(0);\n\tconst seeking = shallowRef(false);\n\tconst volume = shallowRef(1);\n\tconst waiting = shallowRef(false);\n\tconst ended = shallowRef(false);\n\tconst playing = shallowRef(false);\n\tconst rate = shallowRef(1);\n\tconst stalled = shallowRef(false);\n\tconst buffered = ref([]);\n\tconst tracks = ref([]);\n\tconst selectedTrack = shallowRef(-1);\n\tconst isPictureInPicture = shallowRef(false);\n\tconst muted = shallowRef(false);\n\tconst supportsPictureInPicture = document$1 && \"pictureInPictureEnabled\" in document$1;\n\tconst sourceErrorEvent = createEventHook();\n\tconst playbackErrorEvent = createEventHook();\n\t/**\n\t* Disables the specified track. If no track is specified then\n\t* all tracks will be disabled\n\t*\n\t* @param track The id of the track to disable\n\t*/\n\tconst disableTrack = (track) => {\n\t\tusingElRef(target, (el) => {\n\t\t\tif (track) {\n\t\t\t\tconst id = typeof track === \"number\" ? track : track.id;\n\t\t\t\tel.textTracks[id].mode = \"disabled\";\n\t\t\t} else for (let i = 0; i < el.textTracks.length; ++i) el.textTracks[i].mode = \"disabled\";\n\t\t\tselectedTrack.value = -1;\n\t\t});\n\t};\n\t/**\n\t* Enables the specified track and disables the\n\t* other tracks unless otherwise specified\n\t*\n\t* @param track The track of the id of the track to enable\n\t* @param disableTracks Disable all other tracks\n\t*/\n\tconst enableTrack = (track, disableTracks = true) => {\n\t\tusingElRef(target, (el) => {\n\t\t\tconst id = typeof track === \"number\" ? track : track.id;\n\t\t\tif (disableTracks) disableTrack();\n\t\t\tel.textTracks[id].mode = \"showing\";\n\t\t\tselectedTrack.value = id;\n\t\t});\n\t};\n\t/**\n\t* Toggle picture in picture mode for the player.\n\t*/\n\tconst togglePictureInPicture = () => {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tusingElRef(target, async (el) => {\n\t\t\t\tif (supportsPictureInPicture) if (!isPictureInPicture.value) el.requestPictureInPicture().then(resolve).catch(reject);\n\t\t\t\telse document$1.exitPictureInPicture().then(resolve).catch(reject);\n\t\t\t});\n\t\t});\n\t};\n\t/**\n\t* This will automatically inject sources to the media element. The sources will be\n\t* appended as children to the media element as `<source>` elements.\n\t*/\n\twatchEffect(() => {\n\t\tif (!document$1) return;\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tconst src = toValue(options.src);\n\t\tlet sources = [];\n\t\tif (!src) return;\n\t\tif (typeof src === \"string\") sources = [{ src }];\n\t\telse if (Array.isArray(src)) sources = src;\n\t\telse if (isObject(src)) sources = [src];\n\t\tel.querySelectorAll(\"source\").forEach((e) => {\n\t\t\te.remove();\n\t\t});\n\t\tsources.forEach(({ src: src$1, type, media }) => {\n\t\t\tconst source = document$1.createElement(\"source\");\n\t\t\tsource.setAttribute(\"src\", src$1);\n\t\t\tsource.setAttribute(\"type\", type || \"\");\n\t\t\tsource.setAttribute(\"media\", media || \"\");\n\t\t\tuseEventListener(source, \"error\", sourceErrorEvent.trigger, listenerOptions);\n\t\t\tel.appendChild(source);\n\t\t});\n\t\tel.load();\n\t});\n\t/**\n\t* Apply composable state to the element, also when element is changed\n\t*/\n\twatch([target, volume], () => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tel.volume = volume.value;\n\t});\n\twatch([target, muted], () => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tel.muted = muted.value;\n\t});\n\twatch([target, rate], () => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tel.playbackRate = rate.value;\n\t});\n\t/**\n\t* Load Tracks\n\t*/\n\twatchEffect(() => {\n\t\tif (!document$1) return;\n\t\tconst textTracks = toValue(options.tracks);\n\t\tconst el = toValue(target);\n\t\tif (!textTracks || !textTracks.length || !el) return;\n\t\t/**\n\t\t* The MediaAPI provides an API for adding text tracks, but they don't currently\n\t\t* have an API for removing text tracks, so instead we will just create and remove\n\t\t* the tracks manually using the HTML api.\n\t\t*/\n\t\tel.querySelectorAll(\"track\").forEach((e) => e.remove());\n\t\ttextTracks.forEach(({ default: isDefault, kind, label, src, srcLang }, i) => {\n\t\t\tconst track = document$1.createElement(\"track\");\n\t\t\ttrack.default = isDefault || false;\n\t\t\ttrack.kind = kind;\n\t\t\ttrack.label = label;\n\t\t\ttrack.src = src;\n\t\t\ttrack.srclang = srcLang;\n\t\t\tif (track.default) selectedTrack.value = i;\n\t\t\tel.appendChild(track);\n\t\t});\n\t});\n\t/**\n\t* This will allow us to update the current time from the timeupdate event\n\t* without setting the medias current position, but if the user changes the\n\t* current time via the ref, then the media will seek.\n\t*\n\t* If we did not use an ignorable watch, then the current time update from\n\t* the timeupdate event would cause the media to stutter.\n\t*/\n\tconst { ignoreUpdates: ignoreCurrentTimeUpdates } = watchIgnorable(currentTime, (time) => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tel.currentTime = time;\n\t});\n\t/**\n\t* Using an ignorable watch so we can control the play state using a ref and not\n\t* a function\n\t*/\n\tconst { ignoreUpdates: ignorePlayingUpdates } = watchIgnorable(playing, (isPlaying) => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tif (isPlaying) el.play().catch((e) => {\n\t\t\tplaybackErrorEvent.trigger(e);\n\t\t\tthrow e;\n\t\t});\n\t\telse el.pause();\n\t});\n\tuseEventListener(target, \"timeupdate\", () => ignoreCurrentTimeUpdates(() => currentTime.value = toValue(target).currentTime), listenerOptions);\n\tuseEventListener(target, \"durationchange\", () => duration.value = toValue(target).duration, listenerOptions);\n\tuseEventListener(target, \"progress\", () => buffered.value = timeRangeToArray(toValue(target).buffered), listenerOptions);\n\tuseEventListener(target, \"seeking\", () => seeking.value = true, listenerOptions);\n\tuseEventListener(target, \"seeked\", () => seeking.value = false, listenerOptions);\n\tuseEventListener(target, [\"waiting\", \"loadstart\"], () => {\n\t\twaiting.value = true;\n\t\tignorePlayingUpdates(() => playing.value = false);\n\t}, listenerOptions);\n\tuseEventListener(target, \"loadeddata\", () => waiting.value = false, listenerOptions);\n\tuseEventListener(target, \"playing\", () => {\n\t\twaiting.value = false;\n\t\tended.value = false;\n\t\tignorePlayingUpdates(() => playing.value = true);\n\t}, listenerOptions);\n\tuseEventListener(target, \"ratechange\", () => rate.value = toValue(target).playbackRate, listenerOptions);\n\tuseEventListener(target, \"stalled\", () => stalled.value = true, listenerOptions);\n\tuseEventListener(target, \"ended\", () => ended.value = true, listenerOptions);\n\tuseEventListener(target, \"pause\", () => ignorePlayingUpdates(() => playing.value = false), listenerOptions);\n\tuseEventListener(target, \"play\", () => ignorePlayingUpdates(() => playing.value = true), listenerOptions);\n\tuseEventListener(target, \"enterpictureinpicture\", () => isPictureInPicture.value = true, listenerOptions);\n\tuseEventListener(target, \"leavepictureinpicture\", () => isPictureInPicture.value = false, listenerOptions);\n\tuseEventListener(target, \"volumechange\", () => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tvolume.value = el.volume;\n\t\tmuted.value = el.muted;\n\t}, listenerOptions);\n\t/**\n\t* The following listeners need to listen to a nested\n\t* object on the target, so we will have to use a nested\n\t* watch and manually remove the listeners\n\t*/\n\tconst listeners = [];\n\tconst stop = watch([target], () => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tstop();\n\t\tlisteners[0] = useEventListener(el.textTracks, \"addtrack\", () => tracks.value = tracksToArray(el.textTracks), listenerOptions);\n\t\tlisteners[1] = useEventListener(el.textTracks, \"removetrack\", () => tracks.value = tracksToArray(el.textTracks), listenerOptions);\n\t\tlisteners[2] = useEventListener(el.textTracks, \"change\", () => tracks.value = tracksToArray(el.textTracks), listenerOptions);\n\t});\n\ttryOnScopeDispose(() => listeners.forEach((listener) => listener()));\n\treturn {\n\t\tcurrentTime,\n\t\tduration,\n\t\twaiting,\n\t\tseeking,\n\t\tended,\n\t\tstalled,\n\t\tbuffered,\n\t\tplaying,\n\t\trate,\n\t\tvolume,\n\t\tmuted,\n\t\ttracks,\n\t\tselectedTrack,\n\t\tenableTrack,\n\t\tdisableTrack,\n\t\tsupportsPictureInPicture,\n\t\ttogglePictureInPicture,\n\t\tisPictureInPicture,\n\t\tonSourceError: sourceErrorEvent.on,\n\t\tonPlaybackError: playbackErrorEvent.on\n\t};\n}\n\n//#endregion\n//#region useMemoize/index.ts\n/**\n* Reactive function result cache based on arguments\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useMemoize(resolver, options) {\n\tconst initCache = () => {\n\t\tif (options === null || options === void 0 ? void 0 : options.cache) return shallowReactive(options.cache);\n\t\treturn shallowReactive(/* @__PURE__ */ new Map());\n\t};\n\tconst cache = initCache();\n\t/**\n\t* Generate key from args\n\t*/\n\tconst generateKey = (...args) => (options === null || options === void 0 ? void 0 : options.getKey) ? options.getKey(...args) : JSON.stringify(args);\n\t/**\n\t* Load data and save in cache\n\t*/\n\tconst _loadData = (key, ...args) => {\n\t\tcache.set(key, resolver(...args));\n\t\treturn cache.get(key);\n\t};\n\tconst loadData = (...args) => _loadData(generateKey(...args), ...args);\n\t/**\n\t* Delete key from cache\n\t*/\n\tconst deleteData = (...args) => {\n\t\tcache.delete(generateKey(...args));\n\t};\n\t/**\n\t* Clear cached data\n\t*/\n\tconst clearData = () => {\n\t\tcache.clear();\n\t};\n\tconst memoized = (...args) => {\n\t\tconst key = generateKey(...args);\n\t\tif (cache.has(key)) return cache.get(key);\n\t\treturn _loadData(key, ...args);\n\t};\n\tmemoized.load = loadData;\n\tmemoized.delete = deleteData;\n\tmemoized.clear = clearData;\n\tmemoized.generateKey = generateKey;\n\tmemoized.cache = cache;\n\treturn memoized;\n}\n\n//#endregion\n//#region useMemory/index.ts\n/**\n* Reactive Memory Info.\n*\n* @see https://vueuse.org/useMemory\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useMemory(options = {}) {\n\tconst memory = ref();\n\tconst isSupported = /* @__PURE__ */ useSupported(() => typeof performance !== \"undefined\" && \"memory\" in performance);\n\tif (isSupported.value) {\n\t\tconst { interval = 1e3 } = options;\n\t\tuseIntervalFn(() => {\n\t\t\tmemory.value = performance.memory;\n\t\t}, interval, {\n\t\t\timmediate: options.immediate,\n\t\t\timmediateCallback: options.immediateCallback\n\t\t});\n\t}\n\treturn {\n\t\tisSupported,\n\t\tmemory\n\t};\n}\n\n//#endregion\n//#region useMouse/index.ts\nconst UseMouseBuiltinExtractors = {\n\tpage: (event) => [event.pageX, event.pageY],\n\tclient: (event) => [event.clientX, event.clientY],\n\tscreen: (event) => [event.screenX, event.screenY],\n\tmovement: (event) => event instanceof MouseEvent ? [event.movementX, event.movementY] : null\n};\n/**\n* Reactive mouse position.\n*\n* @see https://vueuse.org/useMouse\n* @param options\n*/\nfunction useMouse(options = {}) {\n\tconst { type = \"page\", touch = true, resetOnTouchEnds = false, initialValue = {\n\t\tx: 0,\n\t\ty: 0\n\t}, window: window$1 = defaultWindow, target = window$1, scroll = true, eventFilter } = options;\n\tlet _prevMouseEvent = null;\n\tlet _prevScrollX = 0;\n\tlet _prevScrollY = 0;\n\tconst x = shallowRef(initialValue.x);\n\tconst y = shallowRef(initialValue.y);\n\tconst sourceType = shallowRef(null);\n\tconst extractor = typeof type === \"function\" ? type : UseMouseBuiltinExtractors[type];\n\tconst mouseHandler = (event) => {\n\t\tconst result = extractor(event);\n\t\t_prevMouseEvent = event;\n\t\tif (result) {\n\t\t\t[x.value, y.value] = result;\n\t\t\tsourceType.value = \"mouse\";\n\t\t}\n\t\tif (window$1) {\n\t\t\t_prevScrollX = window$1.scrollX;\n\t\t\t_prevScrollY = window$1.scrollY;\n\t\t}\n\t};\n\tconst touchHandler = (event) => {\n\t\tif (event.touches.length > 0) {\n\t\t\tconst result = extractor(event.touches[0]);\n\t\t\tif (result) {\n\t\t\t\t[x.value, y.value] = result;\n\t\t\t\tsourceType.value = \"touch\";\n\t\t\t}\n\t\t}\n\t};\n\tconst scrollHandler = () => {\n\t\tif (!_prevMouseEvent || !window$1) return;\n\t\tconst pos = extractor(_prevMouseEvent);\n\t\tif (_prevMouseEvent instanceof MouseEvent && pos) {\n\t\t\tx.value = pos[0] + window$1.scrollX - _prevScrollX;\n\t\t\ty.value = pos[1] + window$1.scrollY - _prevScrollY;\n\t\t}\n\t};\n\tconst reset = () => {\n\t\tx.value = initialValue.x;\n\t\ty.value = initialValue.y;\n\t};\n\tconst mouseHandlerWrapper = eventFilter ? (event) => eventFilter(() => mouseHandler(event), {}) : (event) => mouseHandler(event);\n\tconst touchHandlerWrapper = eventFilter ? (event) => eventFilter(() => touchHandler(event), {}) : (event) => touchHandler(event);\n\tconst scrollHandlerWrapper = eventFilter ? () => eventFilter(() => scrollHandler(), {}) : () => scrollHandler();\n\tif (target) {\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(target, [\"mousemove\", \"dragover\"], mouseHandlerWrapper, listenerOptions);\n\t\tif (touch && type !== \"movement\") {\n\t\t\tuseEventListener(target, [\"touchstart\", \"touchmove\"], touchHandlerWrapper, listenerOptions);\n\t\t\tif (resetOnTouchEnds) useEventListener(target, \"touchend\", reset, listenerOptions);\n\t\t}\n\t\tif (scroll && type === \"page\") useEventListener(window$1, \"scroll\", scrollHandlerWrapper, listenerOptions);\n\t}\n\treturn {\n\t\tx,\n\t\ty,\n\t\tsourceType\n\t};\n}\n\n//#endregion\n//#region useMouseInElement/index.ts\n/**\n* Reactive mouse position related to an element.\n*\n* @see https://vueuse.org/useMouseInElement\n* @param target\n* @param options\n*/\nfunction useMouseInElement(target, options = {}) {\n\tconst { windowResize = true, windowScroll = true, handleOutside = true, window: window$1 = defaultWindow } = options;\n\tconst type = options.type || \"page\";\n\tconst { x, y, sourceType } = useMouse(options);\n\tconst targetRef = shallowRef(target !== null && target !== void 0 ? target : window$1 === null || window$1 === void 0 ? void 0 : window$1.document.body);\n\tconst elementX = shallowRef(0);\n\tconst elementY = shallowRef(0);\n\tconst elementPositionX = shallowRef(0);\n\tconst elementPositionY = shallowRef(0);\n\tconst elementHeight = shallowRef(0);\n\tconst elementWidth = shallowRef(0);\n\tconst isOutside = shallowRef(true);\n\tfunction update() {\n\t\tif (!window$1) return;\n\t\tconst el = unrefElement(targetRef);\n\t\tif (!el || !(el instanceof Element)) return;\n\t\tfor (const rect of el.getClientRects()) {\n\t\t\tconst { left, top, width, height } = rect;\n\t\t\telementPositionX.value = left + (type === \"page\" ? window$1.pageXOffset : 0);\n\t\t\telementPositionY.value = top + (type === \"page\" ? window$1.pageYOffset : 0);\n\t\t\telementHeight.value = height;\n\t\t\telementWidth.value = width;\n\t\t\tconst elX = x.value - elementPositionX.value;\n\t\t\tconst elY = y.value - elementPositionY.value;\n\t\t\tisOutside.value = width === 0 || height === 0 || elX < 0 || elY < 0 || elX > width || elY > height;\n\t\t\tif (handleOutside || !isOutside.value) {\n\t\t\t\telementX.value = elX;\n\t\t\t\telementY.value = elY;\n\t\t\t}\n\t\t\tif (!isOutside.value) break;\n\t\t}\n\t}\n\tconst stopFnList = [];\n\tfunction stop() {\n\t\tstopFnList.forEach((fn) => fn());\n\t\tstopFnList.length = 0;\n\t}\n\ttryOnMounted(() => {\n\t\tupdate();\n\t});\n\tif (window$1) {\n\t\tconst { stop: stopResizeObserver } = useResizeObserver(targetRef, update);\n\t\tconst { stop: stopMutationObserver } = useMutationObserver(targetRef, update, { attributeFilter: [\"style\", \"class\"] });\n\t\tconst stopWatch = watch([\n\t\t\ttargetRef,\n\t\t\tx,\n\t\t\ty\n\t\t], update);\n\t\tstopFnList.push(stopResizeObserver, stopMutationObserver, stopWatch);\n\t\tuseEventListener(document, \"mouseleave\", () => isOutside.value = true, { passive: true });\n\t\tif (windowScroll) stopFnList.push(useEventListener(\"scroll\", update, {\n\t\t\tcapture: true,\n\t\t\tpassive: true\n\t\t}));\n\t\tif (windowResize) stopFnList.push(useEventListener(\"resize\", update, { passive: true }));\n\t}\n\treturn {\n\t\tx,\n\t\ty,\n\t\tsourceType,\n\t\telementX,\n\t\telementY,\n\t\telementPositionX,\n\t\telementPositionY,\n\t\telementHeight,\n\t\telementWidth,\n\t\tisOutside,\n\t\tstop\n\t};\n}\n\n//#endregion\n//#region useMousePressed/index.ts\n/**\n* Reactive mouse pressing state.\n*\n* @see https://vueuse.org/useMousePressed\n* @param options\n*/\nfunction useMousePressed(options = {}) {\n\tconst { touch = true, drag = true, capture = false, initialValue = false, window: window$1 = defaultWindow } = options;\n\tconst pressed = shallowRef(initialValue);\n\tconst sourceType = shallowRef(null);\n\tif (!window$1) return {\n\t\tpressed,\n\t\tsourceType\n\t};\n\tconst onPressed = (srcType) => (event) => {\n\t\tvar _options$onPressed;\n\t\tpressed.value = true;\n\t\tsourceType.value = srcType;\n\t\t(_options$onPressed = options.onPressed) === null || _options$onPressed === void 0 || _options$onPressed.call(options, event);\n\t};\n\tconst onReleased = (event) => {\n\t\tvar _options$onReleased;\n\t\tpressed.value = false;\n\t\tsourceType.value = null;\n\t\t(_options$onReleased = options.onReleased) === null || _options$onReleased === void 0 || _options$onReleased.call(options, event);\n\t};\n\tconst target = computed(() => unrefElement(options.target) || window$1);\n\tconst listenerOptions = {\n\t\tpassive: true,\n\t\tcapture\n\t};\n\tuseEventListener(target, \"mousedown\", onPressed(\"mouse\"), listenerOptions);\n\tuseEventListener(window$1, \"mouseleave\", onReleased, listenerOptions);\n\tuseEventListener(window$1, \"mouseup\", onReleased, listenerOptions);\n\tif (drag) {\n\t\tuseEventListener(target, \"dragstart\", onPressed(\"mouse\"), listenerOptions);\n\t\tuseEventListener(window$1, \"drop\", onReleased, listenerOptions);\n\t\tuseEventListener(window$1, \"dragend\", onReleased, listenerOptions);\n\t}\n\tif (touch) {\n\t\tuseEventListener(target, \"touchstart\", onPressed(\"touch\"), listenerOptions);\n\t\tuseEventListener(window$1, \"touchend\", onReleased, listenerOptions);\n\t\tuseEventListener(window$1, \"touchcancel\", onReleased, listenerOptions);\n\t}\n\treturn {\n\t\tpressed,\n\t\tsourceType\n\t};\n}\n\n//#endregion\n//#region useNavigatorLanguage/index.ts\n/**\n*\n* Reactive useNavigatorLanguage\n*\n* Detects the currently selected user language and returns a reactive language\n* @see https://vueuse.org/useNavigatorLanguage\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useNavigatorLanguage(options = {}) {\n\tconst { window: window$1 = defaultWindow } = options;\n\tconst navigator$1 = window$1 === null || window$1 === void 0 ? void 0 : window$1.navigator;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator$1 && \"language\" in navigator$1);\n\tconst language = shallowRef(navigator$1 === null || navigator$1 === void 0 ? void 0 : navigator$1.language);\n\tuseEventListener(window$1, \"languagechange\", () => {\n\t\tif (navigator$1) language.value = navigator$1.language;\n\t}, { passive: true });\n\treturn {\n\t\tisSupported,\n\t\tlanguage\n\t};\n}\n\n//#endregion\n//#region useNetwork/index.ts\n/**\n* Reactive Network status.\n*\n* @see https://vueuse.org/useNetwork\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useNetwork(options = {}) {\n\tconst { window: window$1 = defaultWindow } = options;\n\tconst navigator$1 = window$1 === null || window$1 === void 0 ? void 0 : window$1.navigator;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator$1 && \"connection\" in navigator$1);\n\tconst isOnline = shallowRef(true);\n\tconst saveData = shallowRef(false);\n\tconst offlineAt = shallowRef(void 0);\n\tconst onlineAt = shallowRef(void 0);\n\tconst downlink = shallowRef(void 0);\n\tconst downlinkMax = shallowRef(void 0);\n\tconst rtt = shallowRef(void 0);\n\tconst effectiveType = shallowRef(void 0);\n\tconst type = shallowRef(\"unknown\");\n\tconst connection = isSupported.value && navigator$1.connection;\n\tfunction updateNetworkInformation() {\n\t\tif (!navigator$1) return;\n\t\tisOnline.value = navigator$1.onLine;\n\t\tofflineAt.value = isOnline.value ? void 0 : Date.now();\n\t\tonlineAt.value = isOnline.value ? Date.now() : void 0;\n\t\tif (connection) {\n\t\t\tdownlink.value = connection.downlink;\n\t\t\tdownlinkMax.value = connection.downlinkMax;\n\t\t\teffectiveType.value = connection.effectiveType;\n\t\t\trtt.value = connection.rtt;\n\t\t\tsaveData.value = connection.saveData;\n\t\t\ttype.value = connection.type;\n\t\t}\n\t}\n\tconst listenerOptions = { passive: true };\n\tif (window$1) {\n\t\tuseEventListener(window$1, \"offline\", () => {\n\t\t\tisOnline.value = false;\n\t\t\tofflineAt.value = Date.now();\n\t\t}, listenerOptions);\n\t\tuseEventListener(window$1, \"online\", () => {\n\t\t\tisOnline.value = true;\n\t\t\tonlineAt.value = Date.now();\n\t\t}, listenerOptions);\n\t}\n\tif (connection) useEventListener(connection, \"change\", updateNetworkInformation, listenerOptions);\n\tupdateNetworkInformation();\n\treturn {\n\t\tisSupported,\n\t\tisOnline: readonly(isOnline),\n\t\tsaveData: readonly(saveData),\n\t\tofflineAt: readonly(offlineAt),\n\t\tonlineAt: readonly(onlineAt),\n\t\tdownlink: readonly(downlink),\n\t\tdownlinkMax: readonly(downlinkMax),\n\t\teffectiveType: readonly(effectiveType),\n\t\trtt: readonly(rtt),\n\t\ttype: readonly(type)\n\t};\n}\n\n//#endregion\n//#region useNow/index.ts\n/**\n* Reactive current Date instance.\n*\n* @see https://vueuse.org/useNow\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useNow(options = {}) {\n\tconst { controls: exposeControls = false, interval = \"requestAnimationFrame\", immediate = true } = options;\n\tconst now = ref(/* @__PURE__ */ new Date());\n\tconst update = () => now.value = /* @__PURE__ */ new Date();\n\tconst controls = interval === \"requestAnimationFrame\" ? useRafFn(update, { immediate }) : useIntervalFn(update, interval, { immediate });\n\tif (exposeControls) return {\n\t\tnow,\n\t\t...controls\n\t};\n\telse return now;\n}\n\n//#endregion\n//#region useObjectUrl/index.ts\n/**\n* Reactive URL representing an object.\n*\n* @see https://vueuse.org/useObjectUrl\n* @param object\n*/\nfunction useObjectUrl(object) {\n\tconst url = shallowRef();\n\tconst release = () => {\n\t\tif (url.value) URL.revokeObjectURL(url.value);\n\t\turl.value = void 0;\n\t};\n\twatch(() => toValue(object), (newObject) => {\n\t\trelease();\n\t\tif (newObject) url.value = URL.createObjectURL(newObject);\n\t}, { immediate: true });\n\ttryOnScopeDispose(release);\n\treturn readonly(url);\n}\n\n//#endregion\n//#region ../math/useClamp/index.ts\n/**\n* Reactively clamp a value between two other values.\n*\n* @see https://vueuse.org/useClamp\n* @param value number\n* @param min\n* @param max\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useClamp(value, min, max) {\n\tif (typeof value === \"function\" || isReadonly(value)) return computed(() => clamp(toValue(value), toValue(min), toValue(max)));\n\tconst _value = ref(value);\n\treturn computed({\n\t\tget() {\n\t\t\treturn _value.value = clamp(_value.value, toValue(min), toValue(max));\n\t\t},\n\t\tset(value$1) {\n\t\t\t_value.value = clamp(value$1, toValue(min), toValue(max));\n\t\t}\n\t});\n}\n\n//#endregion\n//#region useOffsetPagination/index.ts\nfunction useOffsetPagination(options) {\n\tconst { total = Number.POSITIVE_INFINITY, pageSize = 10, page = 1, onPageChange = noop, onPageSizeChange = noop, onPageCountChange = noop } = options;\n\tconst currentPageSize = useClamp(pageSize, 1, Number.POSITIVE_INFINITY);\n\tconst pageCount = computed(() => Math.max(1, Math.ceil(toValue(total) / toValue(currentPageSize))));\n\tconst currentPage = useClamp(page, 1, pageCount);\n\tconst isFirstPage = computed(() => currentPage.value === 1);\n\tconst isLastPage = computed(() => currentPage.value === pageCount.value);\n\tif (isRef(page)) syncRef(page, currentPage, { direction: isReadonly(page) ? \"ltr\" : \"both\" });\n\tif (isRef(pageSize)) syncRef(pageSize, currentPageSize, { direction: isReadonly(pageSize) ? \"ltr\" : \"both\" });\n\tfunction prev() {\n\t\tcurrentPage.value--;\n\t}\n\tfunction next() {\n\t\tcurrentPage.value++;\n\t}\n\tconst returnValue = {\n\t\tcurrentPage,\n\t\tcurrentPageSize,\n\t\tpageCount,\n\t\tisFirstPage,\n\t\tisLastPage,\n\t\tprev,\n\t\tnext\n\t};\n\twatch(currentPage, () => {\n\t\tonPageChange(reactive(returnValue));\n\t});\n\twatch(currentPageSize, () => {\n\t\tonPageSizeChange(reactive(returnValue));\n\t});\n\twatch(pageCount, () => {\n\t\tonPageCountChange(reactive(returnValue));\n\t});\n\treturn returnValue;\n}\n\n//#endregion\n//#region useOnline/index.ts\n/**\n* Reactive online state.\n*\n* @see https://vueuse.org/useOnline\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useOnline(options = {}) {\n\tconst { isOnline } = useNetwork(options);\n\treturn isOnline;\n}\n\n//#endregion\n//#region usePageLeave/index.ts\n/**\n* Reactive state to show whether mouse leaves the page.\n*\n* @see https://vueuse.org/usePageLeave\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePageLeave(options = {}) {\n\tconst { window: window$1 = defaultWindow } = options;\n\tconst isLeft = shallowRef(false);\n\tconst handler = (event) => {\n\t\tif (!window$1) return;\n\t\tevent = event || window$1.event;\n\t\tisLeft.value = !(event.relatedTarget || event.toElement);\n\t};\n\tif (window$1) {\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(window$1, \"mouseout\", handler, listenerOptions);\n\t\tuseEventListener(window$1.document, \"mouseleave\", handler, listenerOptions);\n\t\tuseEventListener(window$1.document, \"mouseenter\", handler, listenerOptions);\n\t}\n\treturn isLeft;\n}\n\n//#endregion\n//#region useScreenOrientation/index.ts\n/**\n* Reactive screen orientation\n*\n* @see https://vueuse.org/useScreenOrientation\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useScreenOrientation(options = {}) {\n\tconst { window: window$1 = defaultWindow } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window$1 && \"screen\" in window$1 && \"orientation\" in window$1.screen);\n\tconst screenOrientation = isSupported.value ? window$1.screen.orientation : {};\n\tconst orientation = ref(screenOrientation.type);\n\tconst angle = shallowRef(screenOrientation.angle || 0);\n\tif (isSupported.value) useEventListener(window$1, \"orientationchange\", () => {\n\t\torientation.value = screenOrientation.type;\n\t\tangle.value = screenOrientation.angle;\n\t}, { passive: true });\n\tconst lockOrientation = (type) => {\n\t\tif (isSupported.value && typeof screenOrientation.lock === \"function\") return screenOrientation.lock(type);\n\t\treturn Promise.reject(/* @__PURE__ */ new Error(\"Not supported\"));\n\t};\n\tconst unlockOrientation = () => {\n\t\tif (isSupported.value && typeof screenOrientation.unlock === \"function\") screenOrientation.unlock();\n\t};\n\treturn {\n\t\tisSupported,\n\t\torientation,\n\t\tangle,\n\t\tlockOrientation,\n\t\tunlockOrientation\n\t};\n}\n\n//#endregion\n//#region useParallax/index.ts\n/**\n* Create parallax effect easily. It uses `useDeviceOrientation` and fallback to `useMouse`\n* if orientation is not supported.\n*\n* @param target\n* @param options\n*/\nfunction useParallax(target, options = {}) {\n\tconst { deviceOrientationTiltAdjust = (i) => i, deviceOrientationRollAdjust = (i) => i, mouseTiltAdjust = (i) => i, mouseRollAdjust = (i) => i, window: window$1 = defaultWindow } = options;\n\tconst orientation = reactive(useDeviceOrientation({ window: window$1 }));\n\tconst screenOrientation = reactive(useScreenOrientation({ window: window$1 }));\n\tconst { elementX: x, elementY: y, elementWidth: width, elementHeight: height } = useMouseInElement(target, {\n\t\thandleOutside: false,\n\t\twindow: window$1\n\t});\n\tconst source = computed(() => {\n\t\tif (orientation.isSupported && (orientation.alpha != null && orientation.alpha !== 0 || orientation.gamma != null && orientation.gamma !== 0)) return \"deviceOrientation\";\n\t\treturn \"mouse\";\n\t});\n\treturn {\n\t\troll: computed(() => {\n\t\t\tif (source.value === \"deviceOrientation\") {\n\t\t\t\tlet value;\n\t\t\t\tswitch (screenOrientation.orientation) {\n\t\t\t\t\tcase \"landscape-primary\":\n\t\t\t\t\t\tvalue = orientation.gamma / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"landscape-secondary\":\n\t\t\t\t\t\tvalue = -orientation.gamma / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"portrait-primary\":\n\t\t\t\t\t\tvalue = -orientation.beta / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"portrait-secondary\":\n\t\t\t\t\t\tvalue = orientation.beta / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault: value = -orientation.beta / 90;\n\t\t\t\t}\n\t\t\t\treturn deviceOrientationRollAdjust(value);\n\t\t\t} else return mouseRollAdjust(-(y.value - height.value / 2) / height.value);\n\t\t}),\n\t\ttilt: computed(() => {\n\t\t\tif (source.value === \"deviceOrientation\") {\n\t\t\t\tlet value;\n\t\t\t\tswitch (screenOrientation.orientation) {\n\t\t\t\t\tcase \"landscape-primary\":\n\t\t\t\t\t\tvalue = orientation.beta / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"landscape-secondary\":\n\t\t\t\t\t\tvalue = -orientation.beta / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"portrait-primary\":\n\t\t\t\t\t\tvalue = orientation.gamma / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"portrait-secondary\":\n\t\t\t\t\t\tvalue = -orientation.gamma / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault: value = orientation.gamma / 90;\n\t\t\t\t}\n\t\t\t\treturn deviceOrientationTiltAdjust(value);\n\t\t\t} else return mouseTiltAdjust((x.value - width.value / 2) / width.value);\n\t\t}),\n\t\tsource\n\t};\n}\n\n//#endregion\n//#region useParentElement/index.ts\nfunction useParentElement(element = useCurrentElement()) {\n\tconst parentElement = shallowRef();\n\tconst update = () => {\n\t\tconst el = unrefElement(element);\n\t\tif (el) parentElement.value = el.parentElement;\n\t};\n\ttryOnMounted(update);\n\twatch(() => toValue(element), update);\n\treturn parentElement;\n}\n\n//#endregion\n//#region usePerformanceObserver/index.ts\n/**\n* Observe performance metrics.\n*\n* @see https://vueuse.org/usePerformanceObserver\n* @param options\n*/\nfunction usePerformanceObserver(options, callback) {\n\tconst { window: window$1 = defaultWindow, immediate = true,...performanceOptions } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window$1 && \"PerformanceObserver\" in window$1);\n\tlet observer;\n\tconst stop = () => {\n\t\tobserver === null || observer === void 0 || observer.disconnect();\n\t};\n\tconst start = () => {\n\t\tif (isSupported.value) {\n\t\t\tstop();\n\t\t\tobserver = new PerformanceObserver(callback);\n\t\t\tobserver.observe(performanceOptions);\n\t\t}\n\t};\n\ttryOnScopeDispose(stop);\n\tif (immediate) start();\n\treturn {\n\t\tisSupported,\n\t\tstart,\n\t\tstop\n\t};\n}\n\n//#endregion\n//#region usePointer/index.ts\nconst defaultState = {\n\tx: 0,\n\ty: 0,\n\tpointerId: 0,\n\tpressure: 0,\n\ttiltX: 0,\n\ttiltY: 0,\n\twidth: 0,\n\theight: 0,\n\ttwist: 0,\n\tpointerType: null\n};\nconst keys = /* @__PURE__ */ Object.keys(defaultState);\n/**\n* Reactive pointer state.\n*\n* @see https://vueuse.org/usePointer\n* @param options\n*/\nfunction usePointer(options = {}) {\n\tconst { target = defaultWindow } = options;\n\tconst isInside = shallowRef(false);\n\tconst state = shallowRef(options.initialValue || {});\n\tObject.assign(state.value, defaultState, state.value);\n\tconst handler = (event) => {\n\t\tisInside.value = true;\n\t\tif (options.pointerTypes && !options.pointerTypes.includes(event.pointerType)) return;\n\t\tstate.value = objectPick(event, keys, false);\n\t};\n\tif (target) {\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(target, [\n\t\t\t\"pointerdown\",\n\t\t\t\"pointermove\",\n\t\t\t\"pointerup\"\n\t\t], handler, listenerOptions);\n\t\tuseEventListener(target, \"pointerleave\", () => isInside.value = false, listenerOptions);\n\t}\n\treturn {\n\t\t...toRefs(state),\n\t\tisInside\n\t};\n}\n\n//#endregion\n//#region usePointerLock/index.ts\n/**\n* Reactive pointer lock.\n*\n* @see https://vueuse.org/usePointerLock\n* @param target\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePointerLock(target, options = {}) {\n\tconst { document: document$1 = defaultDocument } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => document$1 && \"pointerLockElement\" in document$1);\n\tconst element = shallowRef();\n\tconst triggerElement = shallowRef();\n\tlet targetElement;\n\tif (isSupported.value) {\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(document$1, \"pointerlockchange\", () => {\n\t\t\tvar _pointerLockElement;\n\t\t\tconst currentElement = (_pointerLockElement = document$1.pointerLockElement) !== null && _pointerLockElement !== void 0 ? _pointerLockElement : element.value;\n\t\t\tif (targetElement && currentElement === targetElement) {\n\t\t\t\telement.value = document$1.pointerLockElement;\n\t\t\t\tif (!element.value) targetElement = triggerElement.value = null;\n\t\t\t}\n\t\t}, listenerOptions);\n\t\tuseEventListener(document$1, \"pointerlockerror\", () => {\n\t\t\tvar _pointerLockElement2;\n\t\t\tconst currentElement = (_pointerLockElement2 = document$1.pointerLockElement) !== null && _pointerLockElement2 !== void 0 ? _pointerLockElement2 : element.value;\n\t\t\tif (targetElement && currentElement === targetElement) {\n\t\t\t\tconst action = document$1.pointerLockElement ? \"release\" : \"acquire\";\n\t\t\t\tthrow new Error(`Failed to ${action} pointer lock.`);\n\t\t\t}\n\t\t}, listenerOptions);\n\t}\n\tasync function lock(e) {\n\t\tvar _unrefElement;\n\t\tif (!isSupported.value) throw new Error(\"Pointer Lock API is not supported by your browser.\");\n\t\ttriggerElement.value = e instanceof Event ? e.currentTarget : null;\n\t\ttargetElement = e instanceof Event ? (_unrefElement = unrefElement(target)) !== null && _unrefElement !== void 0 ? _unrefElement : triggerElement.value : unrefElement(e);\n\t\tif (!targetElement) throw new Error(\"Target element undefined.\");\n\t\ttargetElement.requestPointerLock();\n\t\treturn await until(element).toBe(targetElement);\n\t}\n\tasync function unlock() {\n\t\tif (!element.value) return false;\n\t\tdocument$1.exitPointerLock();\n\t\tawait until(element).toBeNull();\n\t\treturn true;\n\t}\n\treturn {\n\t\tisSupported,\n\t\telement,\n\t\ttriggerElement,\n\t\tlock,\n\t\tunlock\n\t};\n}\n\n//#endregion\n//#region usePointerSwipe/index.ts\n/**\n* Reactive swipe detection based on PointerEvents.\n*\n* @see https://vueuse.org/usePointerSwipe\n* @param target\n* @param options\n*/\nfunction usePointerSwipe(target, options = {}) {\n\tconst targetRef = toRef(target);\n\tconst { threshold = 50, onSwipe, onSwipeEnd, onSwipeStart, disableTextSelect = false } = options;\n\tconst posStart = reactive({\n\t\tx: 0,\n\t\ty: 0\n\t});\n\tconst updatePosStart = (x, y) => {\n\t\tposStart.x = x;\n\t\tposStart.y = y;\n\t};\n\tconst posEnd = reactive({\n\t\tx: 0,\n\t\ty: 0\n\t});\n\tconst updatePosEnd = (x, y) => {\n\t\tposEnd.x = x;\n\t\tposEnd.y = y;\n\t};\n\tconst distanceX = computed(() => posStart.x - posEnd.x);\n\tconst distanceY = computed(() => posStart.y - posEnd.y);\n\tconst { max, abs } = Math;\n\tconst isThresholdExceeded = computed(() => max(abs(distanceX.value), abs(distanceY.value)) >= threshold);\n\tconst isSwiping = shallowRef(false);\n\tconst isPointerDown = shallowRef(false);\n\tconst direction = computed(() => {\n\t\tif (!isThresholdExceeded.value) return \"none\";\n\t\tif (abs(distanceX.value) > abs(distanceY.value)) return distanceX.value > 0 ? \"left\" : \"right\";\n\t\telse return distanceY.value > 0 ? \"up\" : \"down\";\n\t});\n\tconst eventIsAllowed = (e) => {\n\t\tvar _ref, _options$pointerTypes, _options$pointerTypes2;\n\t\tconst isReleasingButton = e.buttons === 0;\n\t\tconst isPrimaryButton = e.buttons === 1;\n\t\treturn (_ref = (_options$pointerTypes = (_options$pointerTypes2 = options.pointerTypes) === null || _options$pointerTypes2 === void 0 ? void 0 : _options$pointerTypes2.includes(e.pointerType)) !== null && _options$pointerTypes !== void 0 ? _options$pointerTypes : isReleasingButton || isPrimaryButton) !== null && _ref !== void 0 ? _ref : true;\n\t};\n\tconst listenerOptions = { passive: true };\n\tconst stops = [\n\t\tuseEventListener(target, \"pointerdown\", (e) => {\n\t\t\tif (!eventIsAllowed(e)) return;\n\t\t\tisPointerDown.value = true;\n\t\t\tconst eventTarget = e.target;\n\t\t\teventTarget === null || eventTarget === void 0 || eventTarget.setPointerCapture(e.pointerId);\n\t\t\tconst { clientX: x, clientY: y } = e;\n\t\t\tupdatePosStart(x, y);\n\t\t\tupdatePosEnd(x, y);\n\t\t\tonSwipeStart === null || onSwipeStart === void 0 || onSwipeStart(e);\n\t\t}, listenerOptions),\n\t\tuseEventListener(target, \"pointermove\", (e) => {\n\t\t\tif (!eventIsAllowed(e)) return;\n\t\t\tif (!isPointerDown.value) return;\n\t\t\tconst { clientX: x, clientY: y } = e;\n\t\t\tupdatePosEnd(x, y);\n\t\t\tif (!isSwiping.value && isThresholdExceeded.value) isSwiping.value = true;\n\t\t\tif (isSwiping.value) onSwipe === null || onSwipe === void 0 || onSwipe(e);\n\t\t}, listenerOptions),\n\t\tuseEventListener(target, \"pointerup\", (e) => {\n\t\t\tif (!eventIsAllowed(e)) return;\n\t\t\tif (isSwiping.value) onSwipeEnd === null || onSwipeEnd === void 0 || onSwipeEnd(e, direction.value);\n\t\t\tisPointerDown.value = false;\n\t\t\tisSwiping.value = false;\n\t\t}, listenerOptions)\n\t];\n\ttryOnMounted(() => {\n\t\tvar _targetRef$value;\n\t\t(_targetRef$value = targetRef.value) === null || _targetRef$value === void 0 || (_targetRef$value = _targetRef$value.style) === null || _targetRef$value === void 0 || _targetRef$value.setProperty(\"touch-action\", \"pan-y\");\n\t\tif (disableTextSelect) {\n\t\t\tvar _targetRef$value2, _targetRef$value3, _targetRef$value4;\n\t\t\t(_targetRef$value2 = targetRef.value) === null || _targetRef$value2 === void 0 || (_targetRef$value2 = _targetRef$value2.style) === null || _targetRef$value2 === void 0 || _targetRef$value2.setProperty(\"-webkit-user-select\", \"none\");\n\t\t\t(_targetRef$value3 = targetRef.value) === null || _targetRef$value3 === void 0 || (_targetRef$value3 = _targetRef$value3.style) === null || _targetRef$value3 === void 0 || _targetRef$value3.setProperty(\"-ms-user-select\", \"none\");\n\t\t\t(_targetRef$value4 = targetRef.value) === null || _targetRef$value4 === void 0 || (_targetRef$value4 = _targetRef$value4.style) === null || _targetRef$value4 === void 0 || _targetRef$value4.setProperty(\"user-select\", \"none\");\n\t\t}\n\t});\n\tconst stop = () => stops.forEach((s) => s());\n\treturn {\n\t\tisSwiping: readonly(isSwiping),\n\t\tdirection: readonly(direction),\n\t\tposStart: readonly(posStart),\n\t\tposEnd: readonly(posEnd),\n\t\tdistanceX,\n\t\tdistanceY,\n\t\tstop\n\t};\n}\n\n//#endregion\n//#region usePreferredColorScheme/index.ts\n/**\n* Reactive prefers-color-scheme media query.\n*\n* @see https://vueuse.org/usePreferredColorScheme\n* @param [options]\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredColorScheme(options) {\n\tconst isLight = useMediaQuery(\"(prefers-color-scheme: light)\", options);\n\tconst isDark = useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n\treturn computed(() => {\n\t\tif (isDark.value) return \"dark\";\n\t\tif (isLight.value) return \"light\";\n\t\treturn \"no-preference\";\n\t});\n}\n\n//#endregion\n//#region usePreferredContrast/index.ts\n/**\n* Reactive prefers-contrast media query.\n*\n* @see https://vueuse.org/usePreferredContrast\n* @param [options]\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredContrast(options) {\n\tconst isMore = useMediaQuery(\"(prefers-contrast: more)\", options);\n\tconst isLess = useMediaQuery(\"(prefers-contrast: less)\", options);\n\tconst isCustom = useMediaQuery(\"(prefers-contrast: custom)\", options);\n\treturn computed(() => {\n\t\tif (isMore.value) return \"more\";\n\t\tif (isLess.value) return \"less\";\n\t\tif (isCustom.value) return \"custom\";\n\t\treturn \"no-preference\";\n\t});\n}\n\n//#endregion\n//#region usePreferredLanguages/index.ts\n/**\n* Reactive Navigator Languages.\n*\n* @see https://vueuse.org/usePreferredLanguages\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredLanguages(options = {}) {\n\tconst { window: window$1 = defaultWindow } = options;\n\tif (!window$1) return shallowRef([\"en\"]);\n\tconst navigator$1 = window$1.navigator;\n\tconst value = shallowRef(navigator$1.languages);\n\tuseEventListener(window$1, \"languagechange\", () => {\n\t\tvalue.value = navigator$1.languages;\n\t}, { passive: true });\n\treturn value;\n}\n\n//#endregion\n//#region usePreferredReducedMotion/index.ts\n/**\n* Reactive prefers-reduced-motion media query.\n*\n* @see https://vueuse.org/usePreferredReducedMotion\n* @param [options]\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredReducedMotion(options) {\n\tconst isReduced = useMediaQuery(\"(prefers-reduced-motion: reduce)\", options);\n\treturn computed(() => {\n\t\tif (isReduced.value) return \"reduce\";\n\t\treturn \"no-preference\";\n\t});\n}\n\n//#endregion\n//#region usePreferredReducedTransparency/index.ts\n/**\n* Reactive prefers-reduced-transparency media query.\n*\n* @see https://vueuse.org/usePreferredReducedTransparency\n* @param [options]\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredReducedTransparency(options) {\n\tconst isReduced = useMediaQuery(\"(prefers-reduced-transparency: reduce)\", options);\n\treturn computed(() => {\n\t\tif (isReduced.value) return \"reduce\";\n\t\treturn \"no-preference\";\n\t});\n}\n\n//#endregion\n//#region usePrevious/index.ts\nfunction usePrevious(value, initialValue) {\n\tconst previous = shallowRef(initialValue);\n\twatch(toRef(value), (_, oldValue) => {\n\t\tprevious.value = oldValue;\n\t}, { flush: \"sync\" });\n\treturn readonly(previous);\n}\n\n//#endregion\n//#region useScreenSafeArea/index.ts\nconst topVarName = \"--vueuse-safe-area-top\";\nconst rightVarName = \"--vueuse-safe-area-right\";\nconst bottomVarName = \"--vueuse-safe-area-bottom\";\nconst leftVarName = \"--vueuse-safe-area-left\";\n/**\n* Reactive `env(safe-area-inset-*)`\n*\n* @see https://vueuse.org/useScreenSafeArea\n*/\nfunction useScreenSafeArea() {\n\tconst top = shallowRef(\"\");\n\tconst right = shallowRef(\"\");\n\tconst bottom = shallowRef(\"\");\n\tconst left = shallowRef(\"\");\n\tif (isClient) {\n\t\tconst topCssVar = useCssVar(topVarName);\n\t\tconst rightCssVar = useCssVar(rightVarName);\n\t\tconst bottomCssVar = useCssVar(bottomVarName);\n\t\tconst leftCssVar = useCssVar(leftVarName);\n\t\ttopCssVar.value = \"env(safe-area-inset-top, 0px)\";\n\t\trightCssVar.value = \"env(safe-area-inset-right, 0px)\";\n\t\tbottomCssVar.value = \"env(safe-area-inset-bottom, 0px)\";\n\t\tleftCssVar.value = \"env(safe-area-inset-left, 0px)\";\n\t\ttryOnMounted(update);\n\t\tuseEventListener(\"resize\", useDebounceFn(update), { passive: true });\n\t}\n\tfunction update() {\n\t\ttop.value = getValue(topVarName);\n\t\tright.value = getValue(rightVarName);\n\t\tbottom.value = getValue(bottomVarName);\n\t\tleft.value = getValue(leftVarName);\n\t}\n\treturn {\n\t\ttop,\n\t\tright,\n\t\tbottom,\n\t\tleft,\n\t\tupdate\n\t};\n}\nfunction getValue(position) {\n\treturn getComputedStyle(document.documentElement).getPropertyValue(position);\n}\n\n//#endregion\n//#region useScriptTag/index.ts\n/**\n* Async script tag loading.\n*\n* @see https://vueuse.org/useScriptTag\n* @param src\n* @param onLoaded\n* @param options\n*/\nfunction useScriptTag(src, onLoaded = noop, options = {}) {\n\tconst { immediate = true, manual = false, type = \"text/javascript\", async = true, crossOrigin, referrerPolicy, noModule, defer, document: document$1 = defaultDocument, attrs = {}, nonce = void 0 } = options;\n\tconst scriptTag = shallowRef(null);\n\tlet _promise = null;\n\t/**\n\t* Load the script specified via `src`.\n\t*\n\t* @param waitForScriptLoad Whether if the Promise should resolve once the \"load\" event is emitted by the <script> attribute, or right after appending it to the DOM.\n\t* @returns Promise<HTMLScriptElement>\n\t*/\n\tconst loadScript = (waitForScriptLoad) => new Promise((resolve, reject) => {\n\t\tconst resolveWithElement = (el$1) => {\n\t\t\tscriptTag.value = el$1;\n\t\t\tresolve(el$1);\n\t\t\treturn el$1;\n\t\t};\n\t\tif (!document$1) {\n\t\t\tresolve(false);\n\t\t\treturn;\n\t\t}\n\t\tlet shouldAppend = false;\n\t\tlet el = document$1.querySelector(`script[src=\"${toValue(src)}\"]`);\n\t\tif (!el) {\n\t\t\tel = document$1.createElement(\"script\");\n\t\t\tel.type = type;\n\t\t\tel.async = async;\n\t\t\tel.src = toValue(src);\n\t\t\tif (defer) el.defer = defer;\n\t\t\tif (crossOrigin) el.crossOrigin = crossOrigin;\n\t\t\tif (noModule) el.noModule = noModule;\n\t\t\tif (referrerPolicy) el.referrerPolicy = referrerPolicy;\n\t\t\tif (nonce) el.nonce = nonce;\n\t\t\tObject.entries(attrs).forEach(([name, value]) => el === null || el === void 0 ? void 0 : el.setAttribute(name, value));\n\t\t\tshouldAppend = true;\n\t\t} else if (el.hasAttribute(\"data-loaded\")) resolveWithElement(el);\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(el, \"error\", (event) => reject(event), listenerOptions);\n\t\tuseEventListener(el, \"abort\", (event) => reject(event), listenerOptions);\n\t\tuseEventListener(el, \"load\", () => {\n\t\t\tel.setAttribute(\"data-loaded\", \"true\");\n\t\t\tonLoaded(el);\n\t\t\tresolveWithElement(el);\n\t\t}, listenerOptions);\n\t\tif (shouldAppend) el = document$1.head.appendChild(el);\n\t\tif (!waitForScriptLoad) resolveWithElement(el);\n\t});\n\t/**\n\t* Exposed singleton wrapper for `loadScript`, avoiding calling it twice.\n\t*\n\t* @param waitForScriptLoad Whether if the Promise should resolve once the \"load\" event is emitted by the <script> attribute, or right after appending it to the DOM.\n\t* @returns Promise<HTMLScriptElement>\n\t*/\n\tconst load = (waitForScriptLoad = true) => {\n\t\tif (!_promise) _promise = loadScript(waitForScriptLoad);\n\t\treturn _promise;\n\t};\n\t/**\n\t* Unload the script specified by `src`.\n\t*/\n\tconst unload = () => {\n\t\tif (!document$1) return;\n\t\t_promise = null;\n\t\tif (scriptTag.value) scriptTag.value = null;\n\t\tconst el = document$1.querySelector(`script[src=\"${toValue(src)}\"]`);\n\t\tif (el) document$1.head.removeChild(el);\n\t};\n\tif (immediate && !manual) tryOnMounted(load);\n\tif (!manual) tryOnUnmounted(unload);\n\treturn {\n\t\tscriptTag,\n\t\tload,\n\t\tunload\n\t};\n}\n\n//#endregion\n//#region useScrollLock/index.ts\nfunction checkOverflowScroll(ele) {\n\tconst style = window.getComputedStyle(ele);\n\tif (style.overflowX === \"scroll\" || style.overflowY === \"scroll\" || style.overflowX === \"auto\" && ele.clientWidth < ele.scrollWidth || style.overflowY === \"auto\" && ele.clientHeight < ele.scrollHeight) return true;\n\telse {\n\t\tconst parent = ele.parentNode;\n\t\tif (!parent || parent.tagName === \"BODY\") return false;\n\t\treturn checkOverflowScroll(parent);\n\t}\n}\nfunction preventDefault(rawEvent) {\n\tconst e = rawEvent || window.event;\n\tconst _target = e.target;\n\tif (checkOverflowScroll(_target)) return false;\n\tif (e.touches.length > 1) return true;\n\tif (e.preventDefault) e.preventDefault();\n\treturn false;\n}\nconst elInitialOverflow = /* @__PURE__ */ new WeakMap();\n/**\n* Lock scrolling of the element.\n*\n* @see https://vueuse.org/useScrollLock\n* @param element\n*/\nfunction useScrollLock(element, initialState = false) {\n\tconst isLocked = shallowRef(initialState);\n\tlet stopTouchMoveListener = null;\n\tlet initialOverflow = \"\";\n\twatch(toRef(element), (el) => {\n\t\tconst target = resolveElement(toValue(el));\n\t\tif (target) {\n\t\t\tconst ele = target;\n\t\t\tif (!elInitialOverflow.get(ele)) elInitialOverflow.set(ele, ele.style.overflow);\n\t\t\tif (ele.style.overflow !== \"hidden\") initialOverflow = ele.style.overflow;\n\t\t\tif (ele.style.overflow === \"hidden\") return isLocked.value = true;\n\t\t\tif (isLocked.value) return ele.style.overflow = \"hidden\";\n\t\t}\n\t}, { immediate: true });\n\tconst lock = () => {\n\t\tconst el = resolveElement(toValue(element));\n\t\tif (!el || isLocked.value) return;\n\t\tif (isIOS) stopTouchMoveListener = useEventListener(el, \"touchmove\", (e) => {\n\t\t\tpreventDefault(e);\n\t\t}, { passive: false });\n\t\tel.style.overflow = \"hidden\";\n\t\tisLocked.value = true;\n\t};\n\tconst unlock = () => {\n\t\tconst el = resolveElement(toValue(element));\n\t\tif (!el || !isLocked.value) return;\n\t\tif (isIOS) stopTouchMoveListener === null || stopTouchMoveListener === void 0 || stopTouchMoveListener();\n\t\tel.style.overflow = initialOverflow;\n\t\telInitialOverflow.delete(el);\n\t\tisLocked.value = false;\n\t};\n\ttryOnScopeDispose(unlock);\n\treturn computed({\n\t\tget() {\n\t\t\treturn isLocked.value;\n\t\t},\n\t\tset(v) {\n\t\t\tif (v) lock();\n\t\t\telse unlock();\n\t\t}\n\t});\n}\n\n//#endregion\n//#region useSessionStorage/index.ts\n/**\n* Reactive SessionStorage.\n*\n* @see https://vueuse.org/useSessionStorage\n* @param key\n* @param initialValue\n* @param options\n*/\nfunction useSessionStorage(key, initialValue, options = {}) {\n\tconst { window: window$1 = defaultWindow } = options;\n\treturn useStorage(key, initialValue, window$1 === null || window$1 === void 0 ? void 0 : window$1.sessionStorage, options);\n}\n\n//#endregion\n//#region useShare/index.ts\n/**\n* Reactive Web Share API.\n*\n* @see https://vueuse.org/useShare\n* @param shareOptions\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useShare(shareOptions = {}, options = {}) {\n\tconst { navigator: navigator$1 = defaultNavigator } = options;\n\tconst _navigator = navigator$1;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => _navigator && \"canShare\" in _navigator);\n\tconst share = async (overrideOptions = {}) => {\n\t\tif (isSupported.value) {\n\t\t\tconst data = {\n\t\t\t\t...toValue(shareOptions),\n\t\t\t\t...toValue(overrideOptions)\n\t\t\t};\n\t\t\tlet granted = false;\n\t\t\tif (_navigator.canShare) granted = _navigator.canShare(data);\n\t\t\tif (granted) return _navigator.share(data);\n\t\t}\n\t};\n\treturn {\n\t\tisSupported,\n\t\tshare\n\t};\n}\n\n//#endregion\n//#region useSorted/index.ts\nconst defaultSortFn = (source, compareFn) => source.sort(compareFn);\nconst defaultCompare = (a, b) => a - b;\nfunction useSorted(...args) {\n\tconst [source] = args;\n\tlet compareFn = defaultCompare;\n\tlet options = {};\n\tif (args.length === 2) if (typeof args[1] === \"object\") {\n\t\tvar _options$compareFn;\n\t\toptions = args[1];\n\t\tcompareFn = (_options$compareFn = options.compareFn) !== null && _options$compareFn !== void 0 ? _options$compareFn : defaultCompare;\n\t} else {\n\t\tvar _args$;\n\t\tcompareFn = (_args$ = args[1]) !== null && _args$ !== void 0 ? _args$ : defaultCompare;\n\t}\n\telse if (args.length > 2) {\n\t\tvar _args$2, _args$3;\n\t\tcompareFn = (_args$2 = args[1]) !== null && _args$2 !== void 0 ? _args$2 : defaultCompare;\n\t\toptions = (_args$3 = args[2]) !== null && _args$3 !== void 0 ? _args$3 : {};\n\t}\n\tconst { dirty = false, sortFn = defaultSortFn } = options;\n\tif (!dirty) return computed(() => sortFn([...toValue(source)], compareFn));\n\twatchEffect(() => {\n\t\tconst result = sortFn(toValue(source), compareFn);\n\t\tif (isRef(source)) source.value = result;\n\t\telse source.splice(0, source.length, ...result);\n\t});\n\treturn source;\n}\n\n//#endregion\n//#region useSpeechRecognition/index.ts\n/**\n* Reactive SpeechRecognition.\n*\n* @see https://vueuse.org/useSpeechRecognition\n* @see https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition SpeechRecognition\n* @param options\n*/\nfunction useSpeechRecognition(options = {}) {\n\tconst { interimResults = true, continuous = true, maxAlternatives = 1, window: window$1 = defaultWindow } = options;\n\tconst lang = toRef(options.lang || \"en-US\");\n\tconst isListening = shallowRef(false);\n\tconst isFinal = shallowRef(false);\n\tconst result = shallowRef(\"\");\n\tconst error = shallowRef(void 0);\n\tlet recognition;\n\tconst start = () => {\n\t\tisListening.value = true;\n\t};\n\tconst stop = () => {\n\t\tisListening.value = false;\n\t};\n\tconst toggle = (value = !isListening.value) => {\n\t\tif (value) start();\n\t\telse stop();\n\t};\n\tconst SpeechRecognition = window$1 && (window$1.SpeechRecognition || window$1.webkitSpeechRecognition);\n\tconst isSupported = /* @__PURE__ */ useSupported(() => SpeechRecognition);\n\tif (isSupported.value) {\n\t\trecognition = new SpeechRecognition();\n\t\trecognition.continuous = continuous;\n\t\trecognition.interimResults = interimResults;\n\t\trecognition.lang = toValue(lang);\n\t\trecognition.maxAlternatives = maxAlternatives;\n\t\trecognition.onstart = () => {\n\t\t\tisListening.value = true;\n\t\t\tisFinal.value = false;\n\t\t};\n\t\twatch(lang, (lang$1) => {\n\t\t\tif (recognition && !isListening.value) recognition.lang = lang$1;\n\t\t});\n\t\trecognition.onresult = (event) => {\n\t\t\tconst currentResult = event.results[event.resultIndex];\n\t\t\tconst { transcript } = currentResult[0];\n\t\t\tisFinal.value = currentResult.isFinal;\n\t\t\tresult.value = transcript;\n\t\t\terror.value = void 0;\n\t\t};\n\t\trecognition.onerror = (event) => {\n\t\t\terror.value = event;\n\t\t};\n\t\trecognition.onend = () => {\n\t\t\tisListening.value = false;\n\t\t\trecognition.lang = toValue(lang);\n\t\t};\n\t\twatch(isListening, (newValue, oldValue) => {\n\t\t\tif (newValue === oldValue) return;\n\t\t\ttry {\n\t\t\t\tif (newValue) recognition.start();\n\t\t\t\telse recognition.stop();\n\t\t\t} catch (err) {\n\t\t\t\terror.value = err;\n\t\t\t}\n\t\t});\n\t}\n\ttryOnScopeDispose(() => {\n\t\tstop();\n\t});\n\treturn {\n\t\tisSupported,\n\t\tisListening,\n\t\tisFinal,\n\t\trecognition,\n\t\tresult,\n\t\terror,\n\t\ttoggle,\n\t\tstart,\n\t\tstop\n\t};\n}\n\n//#endregion\n//#region useSpeechSynthesis/index.ts\n/**\n* Reactive SpeechSynthesis.\n*\n* @see https://vueuse.org/useSpeechSynthesis\n* @see https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis SpeechSynthesis\n*/\nfunction useSpeechSynthesis(text, options = {}) {\n\tconst { pitch = 1, rate = 1, volume = 1, window: window$1 = defaultWindow, onBoundary } = options;\n\tconst synth = window$1 && window$1.speechSynthesis;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => synth);\n\tconst isPlaying = shallowRef(false);\n\tconst status = shallowRef(\"init\");\n\tconst spokenText = toRef(text || \"\");\n\tconst lang = toRef(options.lang || \"en-US\");\n\tconst error = shallowRef(void 0);\n\tconst toggle = (value = !isPlaying.value) => {\n\t\tisPlaying.value = value;\n\t};\n\tconst bindEventsForUtterance = (utterance$1) => {\n\t\tutterance$1.lang = toValue(lang);\n\t\tutterance$1.voice = toValue(options.voice) || null;\n\t\tutterance$1.pitch = toValue(pitch);\n\t\tutterance$1.rate = toValue(rate);\n\t\tutterance$1.volume = toValue(volume);\n\t\tutterance$1.onstart = () => {\n\t\t\tisPlaying.value = true;\n\t\t\tstatus.value = \"play\";\n\t\t};\n\t\tutterance$1.onpause = () => {\n\t\t\tisPlaying.value = false;\n\t\t\tstatus.value = \"pause\";\n\t\t};\n\t\tutterance$1.onresume = () => {\n\t\t\tisPlaying.value = true;\n\t\t\tstatus.value = \"play\";\n\t\t};\n\t\tutterance$1.onend = () => {\n\t\t\tisPlaying.value = false;\n\t\t\tstatus.value = \"end\";\n\t\t};\n\t\tutterance$1.onerror = (event) => {\n\t\t\terror.value = event;\n\t\t};\n\t\tutterance$1.onboundary = (event) => {\n\t\t\tonBoundary === null || onBoundary === void 0 || onBoundary(event);\n\t\t};\n\t};\n\tconst utterance = computed(() => {\n\t\tisPlaying.value = false;\n\t\tstatus.value = \"init\";\n\t\tconst newUtterance = new SpeechSynthesisUtterance(spokenText.value);\n\t\tbindEventsForUtterance(newUtterance);\n\t\treturn newUtterance;\n\t});\n\tconst speak = () => {\n\t\tsynth.cancel();\n\t\tif (utterance) synth.speak(utterance.value);\n\t};\n\tconst stop = () => {\n\t\tsynth.cancel();\n\t\tisPlaying.value = false;\n\t};\n\tif (isSupported.value) {\n\t\tbindEventsForUtterance(utterance.value);\n\t\twatch(lang, (lang$1) => {\n\t\t\tif (utterance.value && !isPlaying.value) utterance.value.lang = lang$1;\n\t\t});\n\t\tif (options.voice) watch(options.voice, () => {\n\t\t\tsynth.cancel();\n\t\t});\n\t\twatch(isPlaying, () => {\n\t\t\tif (isPlaying.value) synth.resume();\n\t\t\telse synth.pause();\n\t\t});\n\t}\n\ttryOnScopeDispose(() => {\n\t\tisPlaying.value = false;\n\t});\n\treturn {\n\t\tisSupported,\n\t\tisPlaying,\n\t\tstatus,\n\t\tutterance,\n\t\terror,\n\t\tstop,\n\t\ttoggle,\n\t\tspeak\n\t};\n}\n\n//#endregion\n//#region useStepper/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction useStepper(steps, initialStep) {\n\tconst stepsRef = ref(steps);\n\tconst stepNames = computed(() => Array.isArray(stepsRef.value) ? stepsRef.value : Object.keys(stepsRef.value));\n\tconst index = ref(stepNames.value.indexOf(initialStep !== null && initialStep !== void 0 ? initialStep : stepNames.value[0]));\n\tconst current = computed(() => at(index.value));\n\tconst isFirst = computed(() => index.value === 0);\n\tconst isLast = computed(() => index.value === stepNames.value.length - 1);\n\tconst next = computed(() => stepNames.value[index.value + 1]);\n\tconst previous = computed(() => stepNames.value[index.value - 1]);\n\tfunction at(index$1) {\n\t\tif (Array.isArray(stepsRef.value)) return stepsRef.value[index$1];\n\t\treturn stepsRef.value[stepNames.value[index$1]];\n\t}\n\tfunction get(step) {\n\t\tif (!stepNames.value.includes(step)) return;\n\t\treturn at(stepNames.value.indexOf(step));\n\t}\n\tfunction goTo(step) {\n\t\tif (stepNames.value.includes(step)) index.value = stepNames.value.indexOf(step);\n\t}\n\tfunction goToNext() {\n\t\tif (isLast.value) return;\n\t\tindex.value++;\n\t}\n\tfunction goToPrevious() {\n\t\tif (isFirst.value) return;\n\t\tindex.value--;\n\t}\n\tfunction goBackTo(step) {\n\t\tif (isAfter(step)) goTo(step);\n\t}\n\tfunction isNext(step) {\n\t\treturn stepNames.value.indexOf(step) === index.value + 1;\n\t}\n\tfunction isPrevious(step) {\n\t\treturn stepNames.value.indexOf(step) === index.value - 1;\n\t}\n\tfunction isCurrent(step) {\n\t\treturn stepNames.value.indexOf(step) === index.value;\n\t}\n\tfunction isBefore(step) {\n\t\treturn index.value < stepNames.value.indexOf(step);\n\t}\n\tfunction isAfter(step) {\n\t\treturn index.value > stepNames.value.indexOf(step);\n\t}\n\treturn {\n\t\tsteps: stepsRef,\n\t\tstepNames,\n\t\tindex,\n\t\tcurrent,\n\t\tnext,\n\t\tprevious,\n\t\tisFirst,\n\t\tisLast,\n\t\tat,\n\t\tget,\n\t\tgoTo,\n\t\tgoToNext,\n\t\tgoToPrevious,\n\t\tgoBackTo,\n\t\tisNext,\n\t\tisPrevious,\n\t\tisCurrent,\n\t\tisBefore,\n\t\tisAfter\n\t};\n}\n\n//#endregion\n//#region useStorageAsync/index.ts\n/**\n* Reactive Storage in with async support.\n*\n* @see https://vueuse.org/useStorageAsync\n* @param key\n* @param initialValue\n* @param storage\n* @param options\n*/\nfunction useStorageAsync(key, initialValue, storage, options = {}) {\n\tvar _options$serializer;\n\tconst { flush = \"pre\", deep = true, listenToStorageChanges = true, writeDefaults = true, mergeDefaults = false, shallow, window: window$1 = defaultWindow, eventFilter, onError = (e) => {\n\t\tconsole.error(e);\n\t}, onReady } = options;\n\tconst rawInit = toValue(initialValue);\n\tconst type = guessSerializerType(rawInit);\n\tconst data = (shallow ? shallowRef : ref)(toValue(initialValue));\n\tconst serializer = (_options$serializer = options.serializer) !== null && _options$serializer !== void 0 ? _options$serializer : StorageSerializers[type];\n\tif (!storage) try {\n\t\tstorage = getSSRHandler(\"getDefaultStorageAsync\", () => defaultWindow === null || defaultWindow === void 0 ? void 0 : defaultWindow.localStorage)();\n\t} catch (e) {\n\t\tonError(e);\n\t}\n\tasync function read(event) {\n\t\tif (!storage || event && event.key !== key) return;\n\t\ttry {\n\t\t\tconst rawValue = event ? event.newValue : await storage.getItem(key);\n\t\t\tif (rawValue == null) {\n\t\t\t\tdata.value = rawInit;\n\t\t\t\tif (writeDefaults && rawInit !== null) await storage.setItem(key, await serializer.write(rawInit));\n\t\t\t} else if (mergeDefaults) {\n\t\t\t\tconst value = await serializer.read(rawValue);\n\t\t\t\tif (typeof mergeDefaults === \"function\") data.value = mergeDefaults(value, rawInit);\n\t\t\t\telse if (type === \"object\" && !Array.isArray(value)) data.value = {\n\t\t\t\t\t...rawInit,\n\t\t\t\t\t...value\n\t\t\t\t};\n\t\t\t\telse data.value = value;\n\t\t\t} else data.value = await serializer.read(rawValue);\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t}\n\t}\n\tconst promise = new Promise((resolve) => {\n\t\tread().then(() => {\n\t\t\tonReady === null || onReady === void 0 || onReady(data.value);\n\t\t\tresolve(data);\n\t\t});\n\t});\n\tif (window$1 && listenToStorageChanges) useEventListener(window$1, \"storage\", (e) => Promise.resolve().then(() => read(e)), { passive: true });\n\tif (storage) watchWithFilter(data, async () => {\n\t\ttry {\n\t\t\tif (data.value == null) await storage.removeItem(key);\n\t\t\telse await storage.setItem(key, await serializer.write(data.value));\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t}\n\t}, {\n\t\tflush,\n\t\tdeep,\n\t\teventFilter\n\t});\n\tObject.assign(data, {\n\t\tthen: promise.then.bind(promise),\n\t\tcatch: promise.catch.bind(promise)\n\t});\n\treturn data;\n}\n\n//#endregion\n//#region useStyleTag/index.ts\nlet _id = 0;\n/**\n* Inject <style> element in head.\n*\n* Overload: Omitted id\n*\n* @see https://vueuse.org/useStyleTag\n* @param css\n* @param options\n*/\nfunction useStyleTag(css, options = {}) {\n\tconst isLoaded = shallowRef(false);\n\tconst { document: document$1 = defaultDocument, immediate = true, manual = false, id = `vueuse_styletag_${++_id}` } = options;\n\tconst cssRef = shallowRef(css);\n\tlet stop = () => {};\n\tconst load = () => {\n\t\tif (!document$1) return;\n\t\tconst el = document$1.getElementById(id) || document$1.createElement(\"style\");\n\t\tif (!el.isConnected) {\n\t\t\tel.id = id;\n\t\t\tif (options.nonce) el.nonce = options.nonce;\n\t\t\tif (options.media) el.media = options.media;\n\t\t\tdocument$1.head.appendChild(el);\n\t\t}\n\t\tif (isLoaded.value) return;\n\t\tstop = watch(cssRef, (value) => {\n\t\t\tel.textContent = value;\n\t\t}, { immediate: true });\n\t\tisLoaded.value = true;\n\t};\n\tconst unload = () => {\n\t\tif (!document$1 || !isLoaded.value) return;\n\t\tstop();\n\t\tdocument$1.head.removeChild(document$1.getElementById(id));\n\t\tisLoaded.value = false;\n\t};\n\tif (immediate && !manual) tryOnMounted(load);\n\tif (!manual) tryOnScopeDispose(unload);\n\treturn {\n\t\tid,\n\t\tcss: cssRef,\n\t\tunload,\n\t\tload,\n\t\tisLoaded: readonly(isLoaded)\n\t};\n}\n\n//#endregion\n//#region useSwipe/index.ts\n/**\n* Reactive swipe detection.\n*\n* @see https://vueuse.org/useSwipe\n* @param target\n* @param options\n*/\nfunction useSwipe(target, options = {}) {\n\tconst { threshold = 50, onSwipe, onSwipeEnd, onSwipeStart, passive = true } = options;\n\tconst coordsStart = reactive({\n\t\tx: 0,\n\t\ty: 0\n\t});\n\tconst coordsEnd = reactive({\n\t\tx: 0,\n\t\ty: 0\n\t});\n\tconst diffX = computed(() => coordsStart.x - coordsEnd.x);\n\tconst diffY = computed(() => coordsStart.y - coordsEnd.y);\n\tconst { max, abs } = Math;\n\tconst isThresholdExceeded = computed(() => max(abs(diffX.value), abs(diffY.value)) >= threshold);\n\tconst isSwiping = shallowRef(false);\n\tconst direction = computed(() => {\n\t\tif (!isThresholdExceeded.value) return \"none\";\n\t\tif (abs(diffX.value) > abs(diffY.value)) return diffX.value > 0 ? \"left\" : \"right\";\n\t\telse return diffY.value > 0 ? \"up\" : \"down\";\n\t});\n\tconst getTouchEventCoords = (e) => [e.touches[0].clientX, e.touches[0].clientY];\n\tconst updateCoordsStart = (x, y) => {\n\t\tcoordsStart.x = x;\n\t\tcoordsStart.y = y;\n\t};\n\tconst updateCoordsEnd = (x, y) => {\n\t\tcoordsEnd.x = x;\n\t\tcoordsEnd.y = y;\n\t};\n\tconst listenerOptions = {\n\t\tpassive,\n\t\tcapture: !passive\n\t};\n\tconst onTouchEnd = (e) => {\n\t\tif (isSwiping.value) onSwipeEnd === null || onSwipeEnd === void 0 || onSwipeEnd(e, direction.value);\n\t\tisSwiping.value = false;\n\t};\n\tconst stops = [\n\t\tuseEventListener(target, \"touchstart\", (e) => {\n\t\t\tif (e.touches.length !== 1) return;\n\t\t\tconst [x, y] = getTouchEventCoords(e);\n\t\t\tupdateCoordsStart(x, y);\n\t\t\tupdateCoordsEnd(x, y);\n\t\t\tonSwipeStart === null || onSwipeStart === void 0 || onSwipeStart(e);\n\t\t}, listenerOptions),\n\t\tuseEventListener(target, \"touchmove\", (e) => {\n\t\t\tif (e.touches.length !== 1) return;\n\t\t\tconst [x, y] = getTouchEventCoords(e);\n\t\t\tupdateCoordsEnd(x, y);\n\t\t\tif (listenerOptions.capture && !listenerOptions.passive && Math.abs(diffX.value) > Math.abs(diffY.value)) e.preventDefault();\n\t\t\tif (!isSwiping.value && isThresholdExceeded.value) isSwiping.value = true;\n\t\t\tif (isSwiping.value) onSwipe === null || onSwipe === void 0 || onSwipe(e);\n\t\t}, listenerOptions),\n\t\tuseEventListener(target, [\"touchend\", \"touchcancel\"], onTouchEnd, listenerOptions)\n\t];\n\tconst stop = () => stops.forEach((s) => s());\n\treturn {\n\t\tisSwiping,\n\t\tdirection,\n\t\tcoordsStart,\n\t\tcoordsEnd,\n\t\tlengthX: diffX,\n\t\tlengthY: diffY,\n\t\tstop\n\t};\n}\n\n//#endregion\n//#region useTemplateRefsList/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction useTemplateRefsList() {\n\tconst refs = ref([]);\n\trefs.value.set = (el) => {\n\t\tif (el) refs.value.push(el);\n\t};\n\tonBeforeUpdate(() => {\n\t\trefs.value.length = 0;\n\t});\n\treturn refs;\n}\n\n//#endregion\n//#region useTextDirection/index.ts\n/**\n* Reactive dir of the element's text.\n*\n* @see https://vueuse.org/useTextDirection\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useTextDirection(options = {}) {\n\tconst { document: document$1 = defaultDocument, selector = \"html\", observe = false, initialValue = \"ltr\" } = options;\n\tfunction getValue$1() {\n\t\tvar _ref, _document$querySelect;\n\t\treturn (_ref = document$1 === null || document$1 === void 0 || (_document$querySelect = document$1.querySelector(selector)) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.getAttribute(\"dir\")) !== null && _ref !== void 0 ? _ref : initialValue;\n\t}\n\tconst dir = ref(getValue$1());\n\ttryOnMounted(() => dir.value = getValue$1());\n\tif (observe && document$1) useMutationObserver(document$1.querySelector(selector), () => dir.value = getValue$1(), { attributes: true });\n\treturn computed({\n\t\tget() {\n\t\t\treturn dir.value;\n\t\t},\n\t\tset(v) {\n\t\t\tvar _document$querySelect2, _document$querySelect3;\n\t\t\tdir.value = v;\n\t\t\tif (!document$1) return;\n\t\t\tif (dir.value) (_document$querySelect2 = document$1.querySelector(selector)) === null || _document$querySelect2 === void 0 || _document$querySelect2.setAttribute(\"dir\", dir.value);\n\t\t\telse (_document$querySelect3 = document$1.querySelector(selector)) === null || _document$querySelect3 === void 0 || _document$querySelect3.removeAttribute(\"dir\");\n\t\t}\n\t});\n}\n\n//#endregion\n//#region useTextSelection/index.ts\nfunction getRangesFromSelection(selection) {\n\tvar _selection$rangeCount;\n\tconst rangeCount = (_selection$rangeCount = selection.rangeCount) !== null && _selection$rangeCount !== void 0 ? _selection$rangeCount : 0;\n\treturn Array.from({ length: rangeCount }, (_, i) => selection.getRangeAt(i));\n}\n/**\n* Reactively track user text selection based on [`Window.getSelection`](https://developer.mozilla.org/en-US/docs/Web/API/Window/getSelection).\n*\n* @see https://vueuse.org/useTextSelection\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useTextSelection(options = {}) {\n\tvar _window$getSelection;\n\tconst { window: window$1 = defaultWindow } = options;\n\tconst selection = shallowRef((_window$getSelection = window$1 === null || window$1 === void 0 ? void 0 : window$1.getSelection()) !== null && _window$getSelection !== void 0 ? _window$getSelection : null);\n\tconst text = computed(() => {\n\t\tvar _selection$value$toSt, _selection$value;\n\t\treturn (_selection$value$toSt = (_selection$value = selection.value) === null || _selection$value === void 0 ? void 0 : _selection$value.toString()) !== null && _selection$value$toSt !== void 0 ? _selection$value$toSt : \"\";\n\t});\n\tconst ranges = computed(() => selection.value ? getRangesFromSelection(selection.value) : []);\n\tconst rects = computed(() => ranges.value.map((range) => range.getBoundingClientRect()));\n\tfunction onSelectionChange() {\n\t\tselection.value = null;\n\t\tif (window$1) selection.value = window$1.getSelection();\n\t}\n\tif (window$1) useEventListener(window$1.document, \"selectionchange\", onSelectionChange, { passive: true });\n\treturn {\n\t\ttext,\n\t\trects,\n\t\tranges,\n\t\tselection\n\t};\n}\n\n//#endregion\n//#region useTextareaAutosize/index.ts\n/**\n* Call window.requestAnimationFrame(), if not available, just call the function\n*\n* @param window\n* @param fn\n*/\nfunction tryRequestAnimationFrame(window$1 = defaultWindow, fn) {\n\tif (window$1 && typeof window$1.requestAnimationFrame === \"function\") window$1.requestAnimationFrame(fn);\n\telse fn();\n}\nfunction useTextareaAutosize(options = {}) {\n\tvar _options$input, _options$styleProp;\n\tconst { window: window$1 = defaultWindow } = options;\n\tconst textarea = toRef(options === null || options === void 0 ? void 0 : options.element);\n\tconst input = toRef((_options$input = options === null || options === void 0 ? void 0 : options.input) !== null && _options$input !== void 0 ? _options$input : \"\");\n\tconst styleProp = (_options$styleProp = options === null || options === void 0 ? void 0 : options.styleProp) !== null && _options$styleProp !== void 0 ? _options$styleProp : \"height\";\n\tconst textareaScrollHeight = shallowRef(1);\n\tconst textareaOldWidth = shallowRef(0);\n\tfunction triggerResize() {\n\t\tvar _textarea$value;\n\t\tif (!textarea.value) return;\n\t\tlet height = \"\";\n\t\ttextarea.value.style[styleProp] = \"1px\";\n\t\ttextareaScrollHeight.value = (_textarea$value = textarea.value) === null || _textarea$value === void 0 ? void 0 : _textarea$value.scrollHeight;\n\t\tconst _styleTarget = toValue(options === null || options === void 0 ? void 0 : options.styleTarget);\n\t\tif (_styleTarget) _styleTarget.style[styleProp] = `${textareaScrollHeight.value}px`;\n\t\telse height = `${textareaScrollHeight.value}px`;\n\t\ttextarea.value.style[styleProp] = height;\n\t}\n\twatch([input, textarea], () => nextTick(triggerResize), { immediate: true });\n\twatch(textareaScrollHeight, () => {\n\t\tvar _options$onResize;\n\t\treturn options === null || options === void 0 || (_options$onResize = options.onResize) === null || _options$onResize === void 0 ? void 0 : _options$onResize.call(options);\n\t});\n\tuseResizeObserver(textarea, ([{ contentRect }]) => {\n\t\tif (textareaOldWidth.value === contentRect.width) return;\n\t\ttryRequestAnimationFrame(window$1, () => {\n\t\t\ttextareaOldWidth.value = contentRect.width;\n\t\t\ttriggerResize();\n\t\t});\n\t});\n\tif (options === null || options === void 0 ? void 0 : options.watch) watch(options.watch, triggerResize, {\n\t\timmediate: true,\n\t\tdeep: true\n\t});\n\treturn {\n\t\ttextarea,\n\t\tinput,\n\t\ttriggerResize\n\t};\n}\n\n//#endregion\n//#region useThrottledRefHistory/index.ts\n/**\n* Shorthand for [useRefHistory](https://vueuse.org/useRefHistory) with throttled filter.\n*\n* @see https://vueuse.org/useThrottledRefHistory\n* @param source\n* @param options\n*/\nfunction useThrottledRefHistory(source, options = {}) {\n\tconst { throttle = 200, trailing = true } = options;\n\tconst filter = throttleFilter(throttle, trailing);\n\treturn { ...useRefHistory(source, {\n\t\t...options,\n\t\teventFilter: filter\n\t}) };\n}\n\n//#endregion\n//#region useTimeAgo/index.ts\nconst DEFAULT_UNITS = [\n\t{\n\t\tmax: 6e4,\n\t\tvalue: 1e3,\n\t\tname: \"second\"\n\t},\n\t{\n\t\tmax: 276e4,\n\t\tvalue: 6e4,\n\t\tname: \"minute\"\n\t},\n\t{\n\t\tmax: 72e6,\n\t\tvalue: 36e5,\n\t\tname: \"hour\"\n\t},\n\t{\n\t\tmax: 5184e5,\n\t\tvalue: 864e5,\n\t\tname: \"day\"\n\t},\n\t{\n\t\tmax: 24192e5,\n\t\tvalue: 6048e5,\n\t\tname: \"week\"\n\t},\n\t{\n\t\tmax: 28512e6,\n\t\tvalue: 2592e6,\n\t\tname: \"month\"\n\t},\n\t{\n\t\tmax: Number.POSITIVE_INFINITY,\n\t\tvalue: 31536e6,\n\t\tname: \"year\"\n\t}\n];\nconst DEFAULT_MESSAGES = {\n\tjustNow: \"just now\",\n\tpast: (n) => n.match(/\\d/) ? `${n} ago` : n,\n\tfuture: (n) => n.match(/\\d/) ? `in ${n}` : n,\n\tmonth: (n, past) => n === 1 ? past ? \"last month\" : \"next month\" : `${n} month${n > 1 ? \"s\" : \"\"}`,\n\tyear: (n, past) => n === 1 ? past ? \"last year\" : \"next year\" : `${n} year${n > 1 ? \"s\" : \"\"}`,\n\tday: (n, past) => n === 1 ? past ? \"yesterday\" : \"tomorrow\" : `${n} day${n > 1 ? \"s\" : \"\"}`,\n\tweek: (n, past) => n === 1 ? past ? \"last week\" : \"next week\" : `${n} week${n > 1 ? \"s\" : \"\"}`,\n\thour: (n) => `${n} hour${n > 1 ? \"s\" : \"\"}`,\n\tminute: (n) => `${n} minute${n > 1 ? \"s\" : \"\"}`,\n\tsecond: (n) => `${n} second${n > 1 ? \"s\" : \"\"}`,\n\tinvalid: \"\"\n};\nfunction DEFAULT_FORMATTER(date) {\n\treturn date.toISOString().slice(0, 10);\n}\n/**\n* Reactive time ago formatter.\n*\n* @see https://vueuse.org/useTimeAgo\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useTimeAgo(time, options = {}) {\n\tconst { controls: exposeControls = false, updateInterval = 3e4 } = options;\n\tconst { now,...controls } = useNow({\n\t\tinterval: updateInterval,\n\t\tcontrols: true\n\t});\n\tconst timeAgo = computed(() => formatTimeAgo(new Date(toValue(time)), options, toValue(now)));\n\tif (exposeControls) return {\n\t\ttimeAgo,\n\t\t...controls\n\t};\n\telse return timeAgo;\n}\nfunction formatTimeAgo(from, options = {}, now = Date.now()) {\n\tconst { max, messages = DEFAULT_MESSAGES, fullDateFormatter = DEFAULT_FORMATTER, units = DEFAULT_UNITS, showSecond = false, rounding = \"round\" } = options;\n\tconst roundFn = typeof rounding === \"number\" ? (n) => +n.toFixed(rounding) : Math[rounding];\n\tconst diff = +now - +from;\n\tconst absDiff = Math.abs(diff);\n\tfunction getValue$1(diff$1, unit) {\n\t\treturn roundFn(Math.abs(diff$1) / unit.value);\n\t}\n\tfunction format(diff$1, unit) {\n\t\tconst val = getValue$1(diff$1, unit);\n\t\tconst past = diff$1 > 0;\n\t\tconst str = applyFormat(unit.name, val, past);\n\t\treturn applyFormat(past ? \"past\" : \"future\", str, past);\n\t}\n\tfunction applyFormat(name, val, isPast) {\n\t\tconst formatter = messages[name];\n\t\tif (typeof formatter === \"function\") return formatter(val, isPast);\n\t\treturn formatter.replace(\"{0}\", val.toString());\n\t}\n\tif (absDiff < 6e4 && !showSecond) return messages.justNow;\n\tif (typeof max === \"number\" && absDiff > max) return fullDateFormatter(new Date(from));\n\tif (typeof max === \"string\") {\n\t\tvar _units$find;\n\t\tconst unitMax = (_units$find = units.find((i) => i.name === max)) === null || _units$find === void 0 ? void 0 : _units$find.max;\n\t\tif (unitMax && absDiff > unitMax) return fullDateFormatter(new Date(from));\n\t}\n\tfor (const [idx, unit] of units.entries()) {\n\t\tif (getValue$1(diff, unit) <= 0 && units[idx - 1]) return format(diff, units[idx - 1]);\n\t\tif (absDiff < unit.max) return format(diff, unit);\n\t}\n\treturn messages.invalid;\n}\n\n//#endregion\n//#region useTimeAgoIntl/index.ts\nconst UNITS = [\n\t{\n\t\tname: \"year\",\n\t\tms: 31536e6\n\t},\n\t{\n\t\tname: \"month\",\n\t\tms: 2592e6\n\t},\n\t{\n\t\tname: \"week\",\n\t\tms: 6048e5\n\t},\n\t{\n\t\tname: \"day\",\n\t\tms: 864e5\n\t},\n\t{\n\t\tname: \"hour\",\n\t\tms: 36e5\n\t},\n\t{\n\t\tname: \"minute\",\n\t\tms: 6e4\n\t},\n\t{\n\t\tname: \"second\",\n\t\tms: 1e3\n\t}\n];\nfunction useTimeAgoIntl(time, options = {}) {\n\tconst { controls: exposeControls = false, updateInterval = 3e4 } = options;\n\tconst { now,...controls } = useNow({\n\t\tinterval: updateInterval,\n\t\tcontrols: true\n\t});\n\tconst result = computed(() => getTimeAgoIntlResult(new Date(toValue(time)), options, toValue(now)));\n\tconst parts = computed(() => result.value.parts);\n\tconst timeAgoIntl = computed(() => formatTimeAgoIntlParts(parts.value, {\n\t\t...options,\n\t\tlocale: result.value.resolvedLocale\n\t}));\n\treturn exposeControls ? {\n\t\ttimeAgoIntl,\n\t\tparts,\n\t\t...controls\n\t} : timeAgoIntl;\n}\n/**\n* Non-reactive version of useTimeAgoIntl\n*/\nfunction formatTimeAgoIntl(from, options = {}, now = Date.now()) {\n\tconst { parts, resolvedLocale } = getTimeAgoIntlResult(from, options, now);\n\treturn formatTimeAgoIntlParts(parts, {\n\t\t...options,\n\t\tlocale: resolvedLocale\n\t});\n}\n/**\n* Get parts from `Intl.RelativeTimeFormat.formatToParts`.\n*/\nfunction getTimeAgoIntlResult(from, options = {}, now = Date.now()) {\n\tvar _options$units;\n\tconst { locale, relativeTimeFormatOptions = { numeric: \"auto\" } } = options;\n\tconst rtf = new Intl.RelativeTimeFormat(locale, relativeTimeFormatOptions);\n\tconst { locale: resolvedLocale } = rtf.resolvedOptions();\n\tconst diff = +from - +now;\n\tconst absDiff = Math.abs(diff);\n\tconst units = (_options$units = options.units) !== null && _options$units !== void 0 ? _options$units : UNITS;\n\tfor (const { name, ms } of units) if (absDiff >= ms) return {\n\t\tresolvedLocale,\n\t\tparts: rtf.formatToParts(Math.round(diff / ms), name)\n\t};\n\treturn {\n\t\tresolvedLocale,\n\t\tparts: rtf.formatToParts(0, units[units.length - 1].name)\n\t};\n}\n/**\n* Format parts into a string\n*/\nfunction formatTimeAgoIntlParts(parts, options = {}) {\n\tconst { insertSpace = true, joinParts, locale } = options;\n\tif (typeof joinParts === \"function\") return joinParts(parts, locale);\n\tif (!insertSpace) return parts.map((part) => part.value).join(\"\");\n\treturn parts.map((part) => part.value.trim()).join(\" \");\n}\n\n//#endregion\n//#region useTimeoutPoll/index.ts\nfunction useTimeoutPoll(fn, interval, options = {}) {\n\tconst { immediate = true, immediateCallback = false } = options;\n\tconst { start } = useTimeoutFn(loop, interval, { immediate });\n\tconst isActive = shallowRef(false);\n\tasync function loop() {\n\t\tif (!isActive.value) return;\n\t\tawait fn();\n\t\tstart();\n\t}\n\tfunction resume() {\n\t\tif (!isActive.value) {\n\t\t\tisActive.value = true;\n\t\t\tif (immediateCallback) fn();\n\t\t\tstart();\n\t\t}\n\t}\n\tfunction pause() {\n\t\tisActive.value = false;\n\t}\n\tif (immediate && isClient) resume();\n\ttryOnScopeDispose(pause);\n\treturn {\n\t\tisActive,\n\t\tpause,\n\t\tresume\n\t};\n}\n\n//#endregion\n//#region useTimestamp/index.ts\nfunction useTimestamp(options = {}) {\n\tconst { controls: exposeControls = false, offset = 0, immediate = true, interval = \"requestAnimationFrame\", callback } = options;\n\tconst ts = shallowRef(timestamp() + offset);\n\tconst update = () => ts.value = timestamp() + offset;\n\tconst cb = callback ? () => {\n\t\tupdate();\n\t\tcallback(ts.value);\n\t} : update;\n\tconst controls = interval === \"requestAnimationFrame\" ? useRafFn(cb, { immediate }) : useIntervalFn(cb, interval, { immediate });\n\tif (exposeControls) return {\n\t\ttimestamp: ts,\n\t\t...controls\n\t};\n\telse return ts;\n}\n\n//#endregion\n//#region useTitle/index.ts\nfunction useTitle(newTitle = null, options = {}) {\n\tvar _document$title, _ref;\n\tconst { document: document$1 = defaultDocument, restoreOnUnmount = (t) => t } = options;\n\tconst originalTitle = (_document$title = document$1 === null || document$1 === void 0 ? void 0 : document$1.title) !== null && _document$title !== void 0 ? _document$title : \"\";\n\tconst title = toRef((_ref = newTitle !== null && newTitle !== void 0 ? newTitle : document$1 === null || document$1 === void 0 ? void 0 : document$1.title) !== null && _ref !== void 0 ? _ref : null);\n\tconst isReadonly$1 = !!(newTitle && typeof newTitle === \"function\");\n\tfunction format(t) {\n\t\tif (!(\"titleTemplate\" in options)) return t;\n\t\tconst template = options.titleTemplate || \"%s\";\n\t\treturn typeof template === \"function\" ? template(t) : toValue(template).replace(/%s/g, t);\n\t}\n\twatch(title, (newValue, oldValue) => {\n\t\tif (newValue !== oldValue && document$1) document$1.title = format(newValue !== null && newValue !== void 0 ? newValue : \"\");\n\t}, { immediate: true });\n\tif (options.observe && !options.titleTemplate && document$1 && !isReadonly$1) {\n\t\tvar _document$head;\n\t\tuseMutationObserver((_document$head = document$1.head) === null || _document$head === void 0 ? void 0 : _document$head.querySelector(\"title\"), () => {\n\t\t\tif (document$1 && document$1.title !== title.value) title.value = format(document$1.title);\n\t\t}, { childList: true });\n\t}\n\ttryOnScopeDispose(() => {\n\t\tif (restoreOnUnmount) {\n\t\t\tconst restoredTitle = restoreOnUnmount(originalTitle, title.value || \"\");\n\t\t\tif (restoredTitle != null && document$1) document$1.title = restoredTitle;\n\t\t}\n\t});\n\treturn title;\n}\n\n//#endregion\n//#region useTransition/index.ts\nconst _TransitionPresets = {\n\teaseInSine: [\n\t\t.12,\n\t\t0,\n\t\t.39,\n\t\t0\n\t],\n\teaseOutSine: [\n\t\t.61,\n\t\t1,\n\t\t.88,\n\t\t1\n\t],\n\teaseInOutSine: [\n\t\t.37,\n\t\t0,\n\t\t.63,\n\t\t1\n\t],\n\teaseInQuad: [\n\t\t.11,\n\t\t0,\n\t\t.5,\n\t\t0\n\t],\n\teaseOutQuad: [\n\t\t.5,\n\t\t1,\n\t\t.89,\n\t\t1\n\t],\n\teaseInOutQuad: [\n\t\t.45,\n\t\t0,\n\t\t.55,\n\t\t1\n\t],\n\teaseInCubic: [\n\t\t.32,\n\t\t0,\n\t\t.67,\n\t\t0\n\t],\n\teaseOutCubic: [\n\t\t.33,\n\t\t1,\n\t\t.68,\n\t\t1\n\t],\n\teaseInOutCubic: [\n\t\t.65,\n\t\t0,\n\t\t.35,\n\t\t1\n\t],\n\teaseInQuart: [\n\t\t.5,\n\t\t0,\n\t\t.75,\n\t\t0\n\t],\n\teaseOutQuart: [\n\t\t.25,\n\t\t1,\n\t\t.5,\n\t\t1\n\t],\n\teaseInOutQuart: [\n\t\t.76,\n\t\t0,\n\t\t.24,\n\t\t1\n\t],\n\teaseInQuint: [\n\t\t.64,\n\t\t0,\n\t\t.78,\n\t\t0\n\t],\n\teaseOutQuint: [\n\t\t.22,\n\t\t1,\n\t\t.36,\n\t\t1\n\t],\n\teaseInOutQuint: [\n\t\t.83,\n\t\t0,\n\t\t.17,\n\t\t1\n\t],\n\teaseInExpo: [\n\t\t.7,\n\t\t0,\n\t\t.84,\n\t\t0\n\t],\n\teaseOutExpo: [\n\t\t.16,\n\t\t1,\n\t\t.3,\n\t\t1\n\t],\n\teaseInOutExpo: [\n\t\t.87,\n\t\t0,\n\t\t.13,\n\t\t1\n\t],\n\teaseInCirc: [\n\t\t.55,\n\t\t0,\n\t\t1,\n\t\t.45\n\t],\n\teaseOutCirc: [\n\t\t0,\n\t\t.55,\n\t\t.45,\n\t\t1\n\t],\n\teaseInOutCirc: [\n\t\t.85,\n\t\t0,\n\t\t.15,\n\t\t1\n\t],\n\teaseInBack: [\n\t\t.36,\n\t\t0,\n\t\t.66,\n\t\t-.56\n\t],\n\teaseOutBack: [\n\t\t.34,\n\t\t1.56,\n\t\t.64,\n\t\t1\n\t],\n\teaseInOutBack: [\n\t\t.68,\n\t\t-.6,\n\t\t.32,\n\t\t1.6\n\t]\n};\n/**\n* Common transitions\n*\n* @see https://easings.net\n*/\nconst TransitionPresets = /* @__PURE__ */ Object.assign({}, { linear: identity }, _TransitionPresets);\n/**\n* Create an easing function from cubic bezier points.\n*/\nfunction createEasingFunction([p0, p1, p2, p3]) {\n\tconst a = (a1, a2) => 1 - 3 * a2 + 3 * a1;\n\tconst b = (a1, a2) => 3 * a2 - 6 * a1;\n\tconst c = (a1) => 3 * a1;\n\tconst calcBezier = (t, a1, a2) => ((a(a1, a2) * t + b(a1, a2)) * t + c(a1)) * t;\n\tconst getSlope = (t, a1, a2) => 3 * a(a1, a2) * t * t + 2 * b(a1, a2) * t + c(a1);\n\tconst getTforX = (x) => {\n\t\tlet aGuessT = x;\n\t\tfor (let i = 0; i < 4; ++i) {\n\t\t\tconst currentSlope = getSlope(aGuessT, p0, p2);\n\t\t\tif (currentSlope === 0) return aGuessT;\n\t\t\tconst currentX = calcBezier(aGuessT, p0, p2) - x;\n\t\t\taGuessT -= currentX / currentSlope;\n\t\t}\n\t\treturn aGuessT;\n\t};\n\treturn (x) => p0 === p1 && p2 === p3 ? x : calcBezier(getTforX(x), p1, p3);\n}\nfunction lerp(a, b, alpha) {\n\treturn a + alpha * (b - a);\n}\nfunction defaultInterpolation(a, b, t) {\n\tconst aVal = toValue(a);\n\tconst bVal = toValue(b);\n\tif (typeof aVal === \"number\" && typeof bVal === \"number\") return lerp(aVal, bVal, t);\n\tif (Array.isArray(aVal) && Array.isArray(bVal)) return aVal.map((v, i) => lerp(v, toValue(bVal[i]), t));\n\tthrow new TypeError(\"Unknown transition type, specify an interpolation function.\");\n}\nfunction normalizeEasing(easing) {\n\tvar _toValue;\n\treturn typeof easing === \"function\" ? easing : (_toValue = toValue(easing)) !== null && _toValue !== void 0 ? _toValue : identity;\n}\n/**\n* Transition from one value to another.\n*\n* @param source\n* @param from\n* @param to\n* @param options\n*/\nfunction transition(source, from, to, options = {}) {\n\tvar _toValue2;\n\tconst { window: window$1 = defaultWindow } = options;\n\tconst fromVal = toValue(from);\n\tconst toVal = toValue(to);\n\tconst duration = (_toValue2 = toValue(options.duration)) !== null && _toValue2 !== void 0 ? _toValue2 : 1e3;\n\tconst startedAt = Date.now();\n\tconst endAt = Date.now() + duration;\n\tconst interpolation = typeof options.interpolation === \"function\" ? options.interpolation : defaultInterpolation;\n\tconst trans = typeof options.easing !== \"undefined\" ? normalizeEasing(options.easing) : normalizeEasing(options.transition);\n\tconst ease = typeof trans === \"function\" ? trans : createEasingFunction(trans);\n\treturn new Promise((resolve) => {\n\t\tsource.value = fromVal;\n\t\tconst tick = () => {\n\t\t\tvar _options$abort;\n\t\t\tif ((_options$abort = options.abort) === null || _options$abort === void 0 ? void 0 : _options$abort.call(options)) {\n\t\t\t\tresolve();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst now = Date.now();\n\t\t\tsource.value = interpolation(fromVal, toVal, ease((now - startedAt) / duration));\n\t\t\tif (now < endAt) window$1 === null || window$1 === void 0 || window$1.requestAnimationFrame(tick);\n\t\t\telse {\n\t\t\t\tsource.value = toVal;\n\t\t\t\tresolve();\n\t\t\t}\n\t\t};\n\t\ttick();\n\t});\n}\n/**\n* Transition from one value to another.\n* @deprecated The `executeTransition` function is deprecated, use `transition` instead.\n*\n* @param source\n* @param from\n* @param to\n* @param options\n*/\nfunction executeTransition(source, from, to, options = {}) {\n\treturn transition(source, from, to, options);\n}\n/**\n* Follow value with a transition.\n*\n* @see https://vueuse.org/useTransition\n* @param source\n* @param options\n*/\nfunction useTransition(source, options = {}) {\n\tlet currentId = 0;\n\tconst sourceVal = () => {\n\t\tconst v = toValue(source);\n\t\treturn typeof options.interpolation === \"undefined\" && Array.isArray(v) ? v.map(toValue) : v;\n\t};\n\tconst outputRef = shallowRef(sourceVal());\n\twatch(sourceVal, async (to) => {\n\t\tvar _options$onStarted, _options$onFinished;\n\t\tif (toValue(options.disabled)) return;\n\t\tconst id = ++currentId;\n\t\tif (options.delay) await promiseTimeout(toValue(options.delay));\n\t\tif (id !== currentId) return;\n\t\t(_options$onStarted = options.onStarted) === null || _options$onStarted === void 0 || _options$onStarted.call(options);\n\t\tawait transition(outputRef, outputRef.value, to, {\n\t\t\t...options,\n\t\t\tabort: () => {\n\t\t\t\tvar _options$abort2;\n\t\t\t\treturn id !== currentId || ((_options$abort2 = options.abort) === null || _options$abort2 === void 0 ? void 0 : _options$abort2.call(options));\n\t\t\t}\n\t\t});\n\t\t(_options$onFinished = options.onFinished) === null || _options$onFinished === void 0 || _options$onFinished.call(options);\n\t}, { deep: true });\n\twatch(() => toValue(options.disabled), (disabled) => {\n\t\tif (disabled) {\n\t\t\tcurrentId++;\n\t\t\toutputRef.value = sourceVal();\n\t\t}\n\t});\n\ttryOnScopeDispose(() => {\n\t\tcurrentId++;\n\t});\n\treturn computed(() => toValue(options.disabled) ? sourceVal() : outputRef.value);\n}\n\n//#endregion\n//#region useUrlSearchParams/index.ts\n/**\n* Reactive URLSearchParams\n*\n* @see https://vueuse.org/useUrlSearchParams\n* @param mode\n* @param options\n*/\nfunction useUrlSearchParams(mode = \"history\", options = {}) {\n\tconst { initialValue = {}, removeNullishValues = true, removeFalsyValues = false, write: enableWrite = true, writeMode = \"replace\", window: window$1 = defaultWindow, stringify = (params) => params.toString() } = options;\n\tif (!window$1) return reactive(initialValue);\n\tconst state = reactive({});\n\tfunction getRawParams() {\n\t\tif (mode === \"history\") return window$1.location.search || \"\";\n\t\telse if (mode === \"hash\") {\n\t\t\tconst hash = window$1.location.hash || \"\";\n\t\t\tconst index = hash.indexOf(\"?\");\n\t\t\treturn index > 0 ? hash.slice(index) : \"\";\n\t\t} else return (window$1.location.hash || \"\").replace(/^#/, \"\");\n\t}\n\tfunction constructQuery(params) {\n\t\tconst stringified = stringify(params);\n\t\tif (mode === \"history\") return `${stringified ? `?${stringified}` : \"\"}${window$1.location.hash || \"\"}`;\n\t\tif (mode === \"hash-params\") return `${window$1.location.search || \"\"}${stringified ? `#${stringified}` : \"\"}`;\n\t\tconst hash = window$1.location.hash || \"#\";\n\t\tconst index = hash.indexOf(\"?\");\n\t\tif (index > 0) return `${window$1.location.search || \"\"}${hash.slice(0, index)}${stringified ? `?${stringified}` : \"\"}`;\n\t\treturn `${window$1.location.search || \"\"}${hash}${stringified ? `?${stringified}` : \"\"}`;\n\t}\n\tfunction read() {\n\t\treturn new URLSearchParams(getRawParams());\n\t}\n\tfunction updateState(params) {\n\t\tconst unusedKeys = new Set(Object.keys(state));\n\t\tfor (const key of params.keys()) {\n\t\t\tconst paramsForKey = params.getAll(key);\n\t\t\tstate[key] = paramsForKey.length > 1 ? paramsForKey : params.get(key) || \"\";\n\t\t\tunusedKeys.delete(key);\n\t\t}\n\t\tArray.from(unusedKeys).forEach((key) => delete state[key]);\n\t}\n\tconst { pause, resume } = pausableWatch(state, () => {\n\t\tconst params = new URLSearchParams(\"\");\n\t\tObject.keys(state).forEach((key) => {\n\t\t\tconst mapEntry = state[key];\n\t\t\tif (Array.isArray(mapEntry)) mapEntry.forEach((value) => params.append(key, value));\n\t\t\telse if (removeNullishValues && mapEntry == null) params.delete(key);\n\t\t\telse if (removeFalsyValues && !mapEntry) params.delete(key);\n\t\t\telse params.set(key, mapEntry);\n\t\t});\n\t\twrite(params, false);\n\t}, { deep: true });\n\tfunction write(params, shouldUpdate, shouldWriteHistory = true) {\n\t\tpause();\n\t\tif (shouldUpdate) updateState(params);\n\t\tif (writeMode === \"replace\") window$1.history.replaceState(window$1.history.state, window$1.document.title, window$1.location.pathname + constructQuery(params));\n\t\telse if (shouldWriteHistory) window$1.history.pushState(window$1.history.state, window$1.document.title, window$1.location.pathname + constructQuery(params));\n\t\tnextTick(() => resume());\n\t}\n\tfunction onChanged() {\n\t\tif (!enableWrite) return;\n\t\twrite(read(), true, false);\n\t}\n\tconst listenerOptions = { passive: true };\n\tuseEventListener(window$1, \"popstate\", onChanged, listenerOptions);\n\tif (mode !== \"history\") useEventListener(window$1, \"hashchange\", onChanged, listenerOptions);\n\tconst initial = read();\n\tif (initial.keys().next().value) updateState(initial);\n\telse Object.assign(state, initialValue);\n\treturn state;\n}\n\n//#endregion\n//#region useUserMedia/index.ts\n/**\n* Reactive `mediaDevices.getUserMedia` streaming\n*\n* @see https://vueuse.org/useUserMedia\n* @param options\n*/\nfunction useUserMedia(options = {}) {\n\tvar _options$enabled, _options$autoSwitch;\n\tconst enabled = shallowRef((_options$enabled = options.enabled) !== null && _options$enabled !== void 0 ? _options$enabled : false);\n\tconst autoSwitch = shallowRef((_options$autoSwitch = options.autoSwitch) !== null && _options$autoSwitch !== void 0 ? _options$autoSwitch : true);\n\tconst constraints = ref(options.constraints);\n\tconst { navigator: navigator$1 = defaultNavigator } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => {\n\t\tvar _navigator$mediaDevic;\n\t\treturn navigator$1 === null || navigator$1 === void 0 || (_navigator$mediaDevic = navigator$1.mediaDevices) === null || _navigator$mediaDevic === void 0 ? void 0 : _navigator$mediaDevic.getUserMedia;\n\t});\n\tconst stream = shallowRef();\n\tfunction getDeviceOptions(type) {\n\t\tswitch (type) {\n\t\t\tcase \"video\":\n\t\t\t\tif (constraints.value) return constraints.value.video || false;\n\t\t\t\tbreak;\n\t\t\tcase \"audio\":\n\t\t\t\tif (constraints.value) return constraints.value.audio || false;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\tasync function _start() {\n\t\tif (!isSupported.value || stream.value) return;\n\t\tstream.value = await navigator$1.mediaDevices.getUserMedia({\n\t\t\tvideo: getDeviceOptions(\"video\"),\n\t\t\taudio: getDeviceOptions(\"audio\")\n\t\t});\n\t\treturn stream.value;\n\t}\n\tfunction _stop() {\n\t\tvar _stream$value;\n\t\t(_stream$value = stream.value) === null || _stream$value === void 0 || _stream$value.getTracks().forEach((t) => t.stop());\n\t\tstream.value = void 0;\n\t}\n\tfunction stop() {\n\t\t_stop();\n\t\tenabled.value = false;\n\t}\n\tasync function start() {\n\t\tawait _start();\n\t\tif (stream.value) enabled.value = true;\n\t\treturn stream.value;\n\t}\n\tasync function restart() {\n\t\t_stop();\n\t\treturn await start();\n\t}\n\twatch(enabled, (v) => {\n\t\tif (v) _start();\n\t\telse _stop();\n\t}, { immediate: true });\n\twatch(constraints, () => {\n\t\tif (autoSwitch.value && stream.value) restart();\n\t}, {\n\t\timmediate: true,\n\t\tdeep: true\n\t});\n\ttryOnScopeDispose(() => {\n\t\tstop();\n\t});\n\treturn {\n\t\tisSupported,\n\t\tstream,\n\t\tstart,\n\t\tstop,\n\t\trestart,\n\t\tconstraints,\n\t\tenabled,\n\t\tautoSwitch\n\t};\n}\n\n//#endregion\n//#region useVModel/index.ts\n/**\n* Shorthand for v-model binding, props + emit -> ref\n*\n* @see https://vueuse.org/useVModel\n* @param props\n* @param key (default 'modelValue')\n* @param emit\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useVModel(props, key, emit, options = {}) {\n\tvar _vm$$emit, _vm$proxy;\n\tconst { clone = false, passive = false, eventName, deep = false, defaultValue, shouldEmit } = options;\n\tconst vm = getCurrentInstance();\n\tconst _emit = emit || (vm === null || vm === void 0 ? void 0 : vm.emit) || (vm === null || vm === void 0 || (_vm$$emit = vm.$emit) === null || _vm$$emit === void 0 ? void 0 : _vm$$emit.bind(vm)) || (vm === null || vm === void 0 || (_vm$proxy = vm.proxy) === null || _vm$proxy === void 0 || (_vm$proxy = _vm$proxy.$emit) === null || _vm$proxy === void 0 ? void 0 : _vm$proxy.bind(vm === null || vm === void 0 ? void 0 : vm.proxy));\n\tlet event = eventName;\n\tif (!key) key = \"modelValue\";\n\tevent = event || `update:${key.toString()}`;\n\tconst cloneFn = (val) => !clone ? val : typeof clone === \"function\" ? clone(val) : cloneFnJSON(val);\n\tconst getValue$1 = () => isDef(props[key]) ? cloneFn(props[key]) : defaultValue;\n\tconst triggerEmit = (value) => {\n\t\tif (shouldEmit) {\n\t\t\tif (shouldEmit(value)) _emit(event, value);\n\t\t} else _emit(event, value);\n\t};\n\tif (passive) {\n\t\tconst proxy = ref(getValue$1());\n\t\tlet isUpdating = false;\n\t\twatch(() => props[key], (v) => {\n\t\t\tif (!isUpdating) {\n\t\t\t\tisUpdating = true;\n\t\t\t\tproxy.value = cloneFn(v);\n\t\t\t\tnextTick(() => isUpdating = false);\n\t\t\t}\n\t\t});\n\t\twatch(proxy, (v) => {\n\t\t\tif (!isUpdating && (v !== props[key] || deep)) triggerEmit(v);\n\t\t}, { deep });\n\t\treturn proxy;\n\t} else return computed({\n\t\tget() {\n\t\t\treturn getValue$1();\n\t\t},\n\t\tset(value) {\n\t\t\ttriggerEmit(value);\n\t\t}\n\t});\n}\n\n//#endregion\n//#region useVModels/index.ts\n/**\n* Shorthand for props v-model binding. Think like `toRefs(props)` but changes will also emit out.\n*\n* @see https://vueuse.org/useVModels\n* @param props\n* @param emit\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useVModels(props, emit, options = {}) {\n\tconst ret = {};\n\tfor (const key in props) ret[key] = useVModel(props, key, emit, options);\n\treturn ret;\n}\n\n//#endregion\n//#region useVibrate/index.ts\n/**\n* Reactive vibrate\n*\n* @see https://vueuse.org/useVibrate\n* @see https://developer.mozilla.org/en-US/docs/Web/API/Vibration_API\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useVibrate(options) {\n\tconst { pattern = [], interval = 0, navigator: navigator$1 = defaultNavigator } = options || {};\n\tconst isSupported = /* @__PURE__ */ useSupported(() => typeof navigator$1 !== \"undefined\" && \"vibrate\" in navigator$1);\n\tconst patternRef = toRef(pattern);\n\tlet intervalControls;\n\tconst vibrate = (pattern$1 = patternRef.value) => {\n\t\tif (isSupported.value) navigator$1.vibrate(pattern$1);\n\t};\n\tconst stop = () => {\n\t\tif (isSupported.value) navigator$1.vibrate(0);\n\t\tintervalControls === null || intervalControls === void 0 || intervalControls.pause();\n\t};\n\tif (interval > 0) intervalControls = useIntervalFn(vibrate, interval, {\n\t\timmediate: false,\n\t\timmediateCallback: false\n\t});\n\treturn {\n\t\tisSupported,\n\t\tpattern,\n\t\tintervalControls,\n\t\tvibrate,\n\t\tstop\n\t};\n}\n\n//#endregion\n//#region useVirtualList/index.ts\n/**\n* Please consider using [`vue-virtual-scroller`](https://github.com/Akryum/vue-virtual-scroller) if you are looking for more features.\n*/\nfunction useVirtualList(list, options) {\n\tconst { containerStyle, wrapperProps, scrollTo, calculateRange, currentList, containerRef } = \"itemHeight\" in options ? useVerticalVirtualList(options, list) : useHorizontalVirtualList(options, list);\n\treturn {\n\t\tlist: currentList,\n\t\tscrollTo,\n\t\tcontainerProps: {\n\t\t\tref: containerRef,\n\t\t\tonScroll: () => {\n\t\t\t\tcalculateRange();\n\t\t\t},\n\t\t\tstyle: containerStyle\n\t\t},\n\t\twrapperProps\n\t};\n}\nfunction useVirtualListResources(list) {\n\tconst containerRef = shallowRef(null);\n\tconst size = useElementSize(containerRef);\n\tconst currentList = ref([]);\n\tconst source = shallowRef(list);\n\treturn {\n\t\tstate: ref({\n\t\t\tstart: 0,\n\t\t\tend: 10\n\t\t}),\n\t\tsource,\n\t\tcurrentList,\n\t\tsize,\n\t\tcontainerRef\n\t};\n}\nfunction createGetViewCapacity(state, source, itemSize) {\n\treturn (containerSize) => {\n\t\tif (typeof itemSize === \"number\") return Math.ceil(containerSize / itemSize);\n\t\tconst { start = 0 } = state.value;\n\t\tlet sum = 0;\n\t\tlet capacity = 0;\n\t\tfor (let i = start; i < source.value.length; i++) {\n\t\t\tconst size = itemSize(i);\n\t\t\tsum += size;\n\t\t\tcapacity = i;\n\t\t\tif (sum > containerSize) break;\n\t\t}\n\t\treturn capacity - start;\n\t};\n}\nfunction createGetOffset(source, itemSize) {\n\treturn (scrollDirection) => {\n\t\tif (typeof itemSize === \"number\") return Math.floor(scrollDirection / itemSize) + 1;\n\t\tlet sum = 0;\n\t\tlet offset = 0;\n\t\tfor (let i = 0; i < source.value.length; i++) {\n\t\t\tconst size = itemSize(i);\n\t\t\tsum += size;\n\t\t\tif (sum >= scrollDirection) {\n\t\t\t\toffset = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\treturn offset + 1;\n\t};\n}\nfunction createCalculateRange(type, overscan, getOffset, getViewCapacity, { containerRef, state, currentList, source }) {\n\treturn () => {\n\t\tconst element = containerRef.value;\n\t\tif (element) {\n\t\t\tconst offset = getOffset(type === \"vertical\" ? element.scrollTop : element.scrollLeft);\n\t\t\tconst viewCapacity = getViewCapacity(type === \"vertical\" ? element.clientHeight : element.clientWidth);\n\t\t\tconst from = offset - overscan;\n\t\t\tconst to = offset + viewCapacity + overscan;\n\t\t\tstate.value = {\n\t\t\t\tstart: from < 0 ? 0 : from,\n\t\t\t\tend: to > source.value.length ? source.value.length : to\n\t\t\t};\n\t\t\tcurrentList.value = source.value.slice(state.value.start, state.value.end).map((ele, index) => ({\n\t\t\t\tdata: ele,\n\t\t\t\tindex: index + state.value.start\n\t\t\t}));\n\t\t}\n\t};\n}\nfunction createGetDistance(itemSize, source) {\n\treturn (index) => {\n\t\tif (typeof itemSize === \"number\") return index * itemSize;\n\t\treturn source.value.slice(0, index).reduce((sum, _, i) => sum + itemSize(i), 0);\n\t};\n}\nfunction useWatchForSizes(size, list, containerRef, calculateRange) {\n\twatch([\n\t\tsize.width,\n\t\tsize.height,\n\t\t() => toValue(list),\n\t\tcontainerRef\n\t], () => {\n\t\tcalculateRange();\n\t});\n}\nfunction createComputedTotalSize(itemSize, source) {\n\treturn computed(() => {\n\t\tif (typeof itemSize === \"number\") return source.value.length * itemSize;\n\t\treturn source.value.reduce((sum, _, index) => sum + itemSize(index), 0);\n\t});\n}\nconst scrollToDictionaryForElementScrollKey = {\n\thorizontal: \"scrollLeft\",\n\tvertical: \"scrollTop\"\n};\nfunction createScrollTo(type, calculateRange, getDistance, containerRef) {\n\treturn (index) => {\n\t\tif (containerRef.value) {\n\t\t\tcontainerRef.value[scrollToDictionaryForElementScrollKey[type]] = getDistance(index);\n\t\t\tcalculateRange();\n\t\t}\n\t};\n}\nfunction useHorizontalVirtualList(options, list) {\n\tconst resources = useVirtualListResources(list);\n\tconst { state, source, currentList, size, containerRef } = resources;\n\tconst containerStyle = { overflowX: \"auto\" };\n\tconst { itemWidth, overscan = 5 } = options;\n\tconst getViewCapacity = createGetViewCapacity(state, source, itemWidth);\n\tconst calculateRange = createCalculateRange(\"horizontal\", overscan, createGetOffset(source, itemWidth), getViewCapacity, resources);\n\tconst getDistanceLeft = createGetDistance(itemWidth, source);\n\tconst offsetLeft = computed(() => getDistanceLeft(state.value.start));\n\tconst totalWidth = createComputedTotalSize(itemWidth, source);\n\tuseWatchForSizes(size, list, containerRef, calculateRange);\n\treturn {\n\t\tscrollTo: createScrollTo(\"horizontal\", calculateRange, getDistanceLeft, containerRef),\n\t\tcalculateRange,\n\t\twrapperProps: computed(() => {\n\t\t\treturn { style: {\n\t\t\t\theight: \"100%\",\n\t\t\t\twidth: `${totalWidth.value - offsetLeft.value}px`,\n\t\t\t\tmarginLeft: `${offsetLeft.value}px`,\n\t\t\t\tdisplay: \"flex\"\n\t\t\t} };\n\t\t}),\n\t\tcontainerStyle,\n\t\tcurrentList,\n\t\tcontainerRef\n\t};\n}\nfunction useVerticalVirtualList(options, list) {\n\tconst resources = useVirtualListResources(list);\n\tconst { state, source, currentList, size, containerRef } = resources;\n\tconst containerStyle = { overflowY: \"auto\" };\n\tconst { itemHeight, overscan = 5 } = options;\n\tconst getViewCapacity = createGetViewCapacity(state, source, itemHeight);\n\tconst calculateRange = createCalculateRange(\"vertical\", overscan, createGetOffset(source, itemHeight), getViewCapacity, resources);\n\tconst getDistanceTop = createGetDistance(itemHeight, source);\n\tconst offsetTop = computed(() => getDistanceTop(state.value.start));\n\tconst totalHeight = createComputedTotalSize(itemHeight, source);\n\tuseWatchForSizes(size, list, containerRef, calculateRange);\n\treturn {\n\t\tcalculateRange,\n\t\tscrollTo: createScrollTo(\"vertical\", calculateRange, getDistanceTop, containerRef),\n\t\tcontainerStyle,\n\t\twrapperProps: computed(() => {\n\t\t\treturn { style: {\n\t\t\t\twidth: \"100%\",\n\t\t\t\theight: `${totalHeight.value - offsetTop.value}px`,\n\t\t\t\tmarginTop: `${offsetTop.value}px`\n\t\t\t} };\n\t\t}),\n\t\tcurrentList,\n\t\tcontainerRef\n\t};\n}\n\n//#endregion\n//#region useWakeLock/index.ts\n/**\n* Reactive Screen Wake Lock API.\n*\n* @see https://vueuse.org/useWakeLock\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useWakeLock(options = {}) {\n\tconst { navigator: navigator$1 = defaultNavigator, document: document$1 = defaultDocument } = options;\n\tconst requestedType = shallowRef(false);\n\tconst sentinel = shallowRef(null);\n\tconst documentVisibility = useDocumentVisibility({ document: document$1 });\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator$1 && \"wakeLock\" in navigator$1);\n\tconst isActive = computed(() => !!sentinel.value && documentVisibility.value === \"visible\");\n\tif (isSupported.value) {\n\t\tuseEventListener(sentinel, \"release\", () => {\n\t\t\tvar _sentinel$value$type, _sentinel$value;\n\t\t\trequestedType.value = (_sentinel$value$type = (_sentinel$value = sentinel.value) === null || _sentinel$value === void 0 ? void 0 : _sentinel$value.type) !== null && _sentinel$value$type !== void 0 ? _sentinel$value$type : false;\n\t\t}, { passive: true });\n\t\twhenever(() => documentVisibility.value === \"visible\" && (document$1 === null || document$1 === void 0 ? void 0 : document$1.visibilityState) === \"visible\" && requestedType.value, (type) => {\n\t\t\trequestedType.value = false;\n\t\t\tforceRequest(type);\n\t\t});\n\t}\n\tasync function forceRequest(type) {\n\t\tvar _sentinel$value2;\n\t\tawait ((_sentinel$value2 = sentinel.value) === null || _sentinel$value2 === void 0 ? void 0 : _sentinel$value2.release());\n\t\tsentinel.value = isSupported.value ? await navigator$1.wakeLock.request(type) : null;\n\t}\n\tasync function request(type) {\n\t\tif (documentVisibility.value === \"visible\") await forceRequest(type);\n\t\telse requestedType.value = type;\n\t}\n\tasync function release() {\n\t\trequestedType.value = false;\n\t\tconst s = sentinel.value;\n\t\tsentinel.value = null;\n\t\tawait (s === null || s === void 0 ? void 0 : s.release());\n\t}\n\treturn {\n\t\tsentinel,\n\t\tisSupported,\n\t\tisActive,\n\t\trequest,\n\t\tforceRequest,\n\t\trelease\n\t};\n}\n\n//#endregion\n//#region useWebNotification/index.ts\n/**\n* Reactive useWebNotification\n*\n* @see https://vueuse.org/useWebNotification\n* @see https://developer.mozilla.org/en-US/docs/Web/API/notification\n*/\nfunction useWebNotification(options = {}) {\n\tconst { window: window$1 = defaultWindow, requestPermissions: _requestForPermissions = true } = options;\n\tconst defaultWebNotificationOptions = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => {\n\t\tif (!window$1 || !(\"Notification\" in window$1)) return false;\n\t\tif (Notification.permission === \"granted\") return true;\n\t\ttry {\n\t\t\tconst notification$1 = new Notification(\"\");\n\t\t\tnotification$1.onshow = () => {\n\t\t\t\tnotification$1.close();\n\t\t\t};\n\t\t} catch (e) {\n\t\t\tif (e.name === \"TypeError\") return false;\n\t\t}\n\t\treturn true;\n\t});\n\tconst permissionGranted = shallowRef(isSupported.value && \"permission\" in Notification && Notification.permission === \"granted\");\n\tconst notification = ref(null);\n\tconst ensurePermissions = async () => {\n\t\tif (!isSupported.value) return;\n\t\tif (!permissionGranted.value && Notification.permission !== \"denied\") {\n\t\t\tif (await Notification.requestPermission() === \"granted\") permissionGranted.value = true;\n\t\t}\n\t\treturn permissionGranted.value;\n\t};\n\tconst { on: onClick, trigger: clickTrigger } = createEventHook();\n\tconst { on: onShow, trigger: showTrigger } = createEventHook();\n\tconst { on: onError, trigger: errorTrigger } = createEventHook();\n\tconst { on: onClose, trigger: closeTrigger } = createEventHook();\n\tconst show = async (overrides) => {\n\t\tif (!isSupported.value || !permissionGranted.value) return;\n\t\tconst options$1 = Object.assign({}, defaultWebNotificationOptions, overrides);\n\t\tnotification.value = new Notification(options$1.title || \"\", options$1);\n\t\tnotification.value.onclick = clickTrigger;\n\t\tnotification.value.onshow = showTrigger;\n\t\tnotification.value.onerror = errorTrigger;\n\t\tnotification.value.onclose = closeTrigger;\n\t\treturn notification.value;\n\t};\n\tconst close = () => {\n\t\tif (notification.value) notification.value.close();\n\t\tnotification.value = null;\n\t};\n\tif (_requestForPermissions) tryOnMounted(ensurePermissions);\n\ttryOnScopeDispose(close);\n\tif (isSupported.value && window$1) {\n\t\tconst document$1 = window$1.document;\n\t\tuseEventListener(document$1, \"visibilitychange\", (e) => {\n\t\t\te.preventDefault();\n\t\t\tif (document$1.visibilityState === \"visible\") close();\n\t\t});\n\t}\n\treturn {\n\t\tisSupported,\n\t\tnotification,\n\t\tensurePermissions,\n\t\tpermissionGranted,\n\t\tshow,\n\t\tclose,\n\t\tonClick,\n\t\tonShow,\n\t\tonError,\n\t\tonClose\n\t};\n}\n\n//#endregion\n//#region useWebSocket/index.ts\nconst DEFAULT_PING_MESSAGE = \"ping\";\nfunction resolveNestedOptions(options) {\n\tif (options === true) return {};\n\treturn options;\n}\n/**\n* Reactive WebSocket client.\n*\n* @see https://vueuse.org/useWebSocket\n* @param url\n*/\nfunction useWebSocket(url, options = {}) {\n\tconst { onConnected, onDisconnected, onError, onMessage, immediate = true, autoConnect = true, autoClose = true, protocols = [] } = options;\n\tconst data = ref(null);\n\tconst status = shallowRef(\"CLOSED\");\n\tconst wsRef = ref();\n\tconst urlRef = toRef(url);\n\tlet heartbeatPause;\n\tlet heartbeatResume;\n\tlet explicitlyClosed = false;\n\tlet retried = 0;\n\tlet bufferedData = [];\n\tlet retryTimeout;\n\tlet pongTimeoutWait;\n\tconst _sendBuffer = () => {\n\t\tif (bufferedData.length && wsRef.value && status.value === \"OPEN\") {\n\t\t\tfor (const buffer of bufferedData) wsRef.value.send(buffer);\n\t\t\tbufferedData = [];\n\t\t}\n\t};\n\tconst resetRetry = () => {\n\t\tif (retryTimeout != null) {\n\t\t\tclearTimeout(retryTimeout);\n\t\t\tretryTimeout = void 0;\n\t\t}\n\t};\n\tconst resetHeartbeat = () => {\n\t\tclearTimeout(pongTimeoutWait);\n\t\tpongTimeoutWait = void 0;\n\t};\n\tconst close = (code = 1e3, reason) => {\n\t\tresetRetry();\n\t\tif (!isClient && !isWorker || !wsRef.value) return;\n\t\texplicitlyClosed = true;\n\t\tresetHeartbeat();\n\t\theartbeatPause === null || heartbeatPause === void 0 || heartbeatPause();\n\t\twsRef.value.close(code, reason);\n\t\twsRef.value = void 0;\n\t};\n\tconst send = (data$1, useBuffer = true) => {\n\t\tif (!wsRef.value || status.value !== \"OPEN\") {\n\t\t\tif (useBuffer) bufferedData.push(data$1);\n\t\t\treturn false;\n\t\t}\n\t\t_sendBuffer();\n\t\twsRef.value.send(data$1);\n\t\treturn true;\n\t};\n\tconst _init = () => {\n\t\tif (explicitlyClosed || typeof urlRef.value === \"undefined\") return;\n\t\tconst ws = new WebSocket(urlRef.value, protocols);\n\t\twsRef.value = ws;\n\t\tstatus.value = \"CONNECTING\";\n\t\tws.onopen = () => {\n\t\t\tstatus.value = \"OPEN\";\n\t\t\tretried = 0;\n\t\t\tonConnected === null || onConnected === void 0 || onConnected(ws);\n\t\t\theartbeatResume === null || heartbeatResume === void 0 || heartbeatResume();\n\t\t\t_sendBuffer();\n\t\t};\n\t\tws.onclose = (ev) => {\n\t\t\tstatus.value = \"CLOSED\";\n\t\t\tresetHeartbeat();\n\t\t\theartbeatPause === null || heartbeatPause === void 0 || heartbeatPause();\n\t\t\tonDisconnected === null || onDisconnected === void 0 || onDisconnected(ws, ev);\n\t\t\tif (!explicitlyClosed && options.autoReconnect && (wsRef.value == null || ws === wsRef.value)) {\n\t\t\t\tconst { retries = -1, delay = 1e3, onFailed } = resolveNestedOptions(options.autoReconnect);\n\t\t\t\tif ((typeof retries === \"function\" ? retries : () => typeof retries === \"number\" && (retries < 0 || retried < retries))(retried)) {\n\t\t\t\t\tretried += 1;\n\t\t\t\t\tconst delayTime = typeof delay === \"function\" ? delay(retried) : delay;\n\t\t\t\t\tretryTimeout = setTimeout(_init, delayTime);\n\t\t\t\t} else onFailed === null || onFailed === void 0 || onFailed();\n\t\t\t}\n\t\t};\n\t\tws.onerror = (e) => {\n\t\t\tonError === null || onError === void 0 || onError(ws, e);\n\t\t};\n\t\tws.onmessage = (e) => {\n\t\t\tif (options.heartbeat) {\n\t\t\t\tresetHeartbeat();\n\t\t\t\tconst { message = DEFAULT_PING_MESSAGE, responseMessage = message } = resolveNestedOptions(options.heartbeat);\n\t\t\t\tif (e.data === toValue(responseMessage)) return;\n\t\t\t}\n\t\t\tdata.value = e.data;\n\t\t\tonMessage === null || onMessage === void 0 || onMessage(ws, e);\n\t\t};\n\t};\n\tif (options.heartbeat) {\n\t\tconst { message = DEFAULT_PING_MESSAGE, interval = 1e3, pongTimeout = 1e3 } = resolveNestedOptions(options.heartbeat);\n\t\tconst { pause, resume } = useIntervalFn(() => {\n\t\t\tsend(toValue(message), false);\n\t\t\tif (pongTimeoutWait != null) return;\n\t\t\tpongTimeoutWait = setTimeout(() => {\n\t\t\t\tclose();\n\t\t\t\texplicitlyClosed = false;\n\t\t\t}, pongTimeout);\n\t\t}, interval, { immediate: false });\n\t\theartbeatPause = pause;\n\t\theartbeatResume = resume;\n\t}\n\tif (autoClose) {\n\t\tif (isClient) useEventListener(\"beforeunload\", () => close(), { passive: true });\n\t\ttryOnScopeDispose(close);\n\t}\n\tconst open = () => {\n\t\tif (!isClient && !isWorker) return;\n\t\tclose();\n\t\texplicitlyClosed = false;\n\t\tretried = 0;\n\t\t_init();\n\t};\n\tif (immediate) open();\n\tif (autoConnect) watch(urlRef, open);\n\treturn {\n\t\tdata,\n\t\tstatus,\n\t\tclose,\n\t\tsend,\n\t\topen,\n\t\tws: wsRef\n\t};\n}\n\n//#endregion\n//#region useWebWorker/index.ts\nfunction useWebWorker(arg0, workerOptions, options) {\n\tconst { window: window$1 = defaultWindow } = options !== null && options !== void 0 ? options : {};\n\tconst data = ref(null);\n\tconst worker = shallowRef();\n\tconst post = (...args) => {\n\t\tif (!worker.value) return;\n\t\tworker.value.postMessage(...args);\n\t};\n\tconst terminate = function terminate$1() {\n\t\tif (!worker.value) return;\n\t\tworker.value.terminate();\n\t};\n\tif (window$1) {\n\t\tif (typeof arg0 === \"string\") worker.value = new Worker(arg0, workerOptions);\n\t\telse if (typeof arg0 === \"function\") worker.value = arg0();\n\t\telse worker.value = arg0;\n\t\tworker.value.onmessage = (e) => {\n\t\t\tdata.value = e.data;\n\t\t};\n\t\ttryOnScopeDispose(() => {\n\t\t\tif (worker.value) worker.value.terminate();\n\t\t});\n\t}\n\treturn {\n\t\tdata,\n\t\tpost,\n\t\tterminate,\n\t\tworker\n\t};\n}\n\n//#endregion\n//#region useWebWorkerFn/lib/depsParser.ts\n/**\n*\n* Concatenates the dependencies into a comma separated string.\n* this string will then be passed as an argument to the \"importScripts\" function\n*\n* @param deps array of string\n* @param localDeps array of function\n* @returns a string composed by the concatenation of the array\n* elements \"deps\" and \"importScripts\".\n*\n* @example\n* depsParser(['demo1', 'demo2']) // return importScripts('demo1', 'demo2')\n*/\nfunction depsParser(deps, localDeps) {\n\tif (deps.length === 0 && localDeps.length === 0) return \"\";\n\tconst depsString = deps.map((dep) => `'${dep}'`).toString();\n\tconst depsFunctionString = localDeps.filter((dep) => typeof dep === \"function\").map((fn) => {\n\t\tconst str = fn.toString();\n\t\tif (str.trim().startsWith(\"function\")) return str;\n\t\telse return `const ${fn.name} = ${str}`;\n\t}).join(\";\");\n\tconst importString = `importScripts(${depsString});`;\n\treturn `${depsString.trim() === \"\" ? \"\" : importString} ${depsFunctionString}`;\n}\nvar depsParser_default = depsParser;\n\n//#endregion\n//#region useWebWorkerFn/lib/jobRunner.ts\n/**\n* This function accepts as a parameter a function \"userFunc\"\n* And as a result returns an anonymous function.\n* This anonymous function, accepts as arguments,\n* the parameters to pass to the function \"useArgs\" and returns a Promise\n* This function can be used as a wrapper, only inside a Worker\n* because it depends by \"postMessage\".\n*\n* @param userFunc {Function} fn the function to run with web worker\n*\n* @returns returns a function that accepts the parameters\n* to be passed to the \"userFunc\" function\n*/\nfunction jobRunner(userFunc) {\n\treturn (e) => {\n\t\tconst userFuncArgs = e.data[0];\n\t\treturn Promise.resolve(userFunc.apply(void 0, userFuncArgs)).then((result) => {\n\t\t\tpostMessage([\"SUCCESS\", result]);\n\t\t}).catch((error) => {\n\t\t\tpostMessage([\"ERROR\", error]);\n\t\t});\n\t};\n}\nvar jobRunner_default = jobRunner;\n\n//#endregion\n//#region useWebWorkerFn/lib/createWorkerBlobUrl.ts\n/**\n* Converts the \"fn\" function into the syntax needed to be executed within a web worker\n*\n* @param fn the function to run with web worker\n* @param deps array of strings, imported into the worker through \"importScripts\"\n* @param localDeps array of function, local dependencies\n*\n* @returns a blob url, containing the code of \"fn\" as a string\n*\n* @example\n* createWorkerBlobUrl((a,b) => a+b, [])\n* // return \"onmessage=return Promise.resolve((a,b) => a + b)\n* .then(postMessage(['SUCCESS', result]))\n* .catch(postMessage(['ERROR', error])\"\n*/\nfunction createWorkerBlobUrl(fn, deps, localDeps) {\n\tconst blobCode = `${depsParser_default(deps, localDeps)}; onmessage=(${jobRunner_default})(${fn})`;\n\tconst blob = new Blob([blobCode], { type: \"text/javascript\" });\n\treturn URL.createObjectURL(blob);\n}\nvar createWorkerBlobUrl_default = createWorkerBlobUrl;\n\n//#endregion\n//#region useWebWorkerFn/index.ts\n/**\n* Run expensive function without blocking the UI, using a simple syntax that makes use of Promise.\n*\n* @see https://vueuse.org/useWebWorkerFn\n* @param fn\n* @param options\n*/\nfunction useWebWorkerFn(fn, options = {}) {\n\tconst { dependencies = [], localDependencies = [], timeout, window: window$1 = defaultWindow } = options;\n\tconst worker = ref();\n\tconst workerStatus = shallowRef(\"PENDING\");\n\tconst promise = ref({});\n\tconst timeoutId = shallowRef();\n\tconst workerTerminate = (status = \"PENDING\") => {\n\t\tif (worker.value && worker.value._url && window$1) {\n\t\t\tworker.value.terminate();\n\t\t\tURL.revokeObjectURL(worker.value._url);\n\t\t\tpromise.value = {};\n\t\t\tworker.value = void 0;\n\t\t\twindow$1.clearTimeout(timeoutId.value);\n\t\t\tworkerStatus.value = status;\n\t\t}\n\t};\n\tworkerTerminate();\n\ttryOnScopeDispose(workerTerminate);\n\tconst generateWorker = () => {\n\t\tconst blobUrl = createWorkerBlobUrl_default(fn, dependencies, localDependencies);\n\t\tconst newWorker = new Worker(blobUrl);\n\t\tnewWorker._url = blobUrl;\n\t\tnewWorker.onmessage = (e) => {\n\t\t\tconst { resolve = () => {}, reject = () => {} } = promise.value;\n\t\t\tconst [status, result] = e.data;\n\t\t\tswitch (status) {\n\t\t\t\tcase \"SUCCESS\":\n\t\t\t\t\tresolve(result);\n\t\t\t\t\tworkerTerminate(status);\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\treject(result);\n\t\t\t\t\tworkerTerminate(\"ERROR\");\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t};\n\t\tnewWorker.onerror = (e) => {\n\t\t\tconst { reject = () => {} } = promise.value;\n\t\t\te.preventDefault();\n\t\t\treject(e);\n\t\t\tworkerTerminate(\"ERROR\");\n\t\t};\n\t\tif (timeout) timeoutId.value = setTimeout(() => workerTerminate(\"TIMEOUT_EXPIRED\"), timeout);\n\t\treturn newWorker;\n\t};\n\tconst callWorker = (...fnArgs) => new Promise((resolve, reject) => {\n\t\tvar _worker$value;\n\t\tpromise.value = {\n\t\t\tresolve,\n\t\t\treject\n\t\t};\n\t\t(_worker$value = worker.value) === null || _worker$value === void 0 || _worker$value.postMessage([[...fnArgs]]);\n\t\tworkerStatus.value = \"RUNNING\";\n\t});\n\tconst workerFn = (...fnArgs) => {\n\t\tif (workerStatus.value === \"RUNNING\") {\n\t\t\tconsole.error(\"[useWebWorkerFn] You can only run one instance of the worker at a time.\");\n\t\t\treturn Promise.reject();\n\t\t}\n\t\tworker.value = generateWorker();\n\t\treturn callWorker(...fnArgs);\n\t};\n\treturn {\n\t\tworkerFn,\n\t\tworkerStatus,\n\t\tworkerTerminate\n\t};\n}\n\n//#endregion\n//#region useWindowFocus/index.ts\n/**\n* Reactively track window focus with `window.onfocus` and `window.onblur`.\n*\n* @see https://vueuse.org/useWindowFocus\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useWindowFocus(options = {}) {\n\tconst { window: window$1 = defaultWindow } = options;\n\tif (!window$1) return shallowRef(false);\n\tconst focused = shallowRef(window$1.document.hasFocus());\n\tconst listenerOptions = { passive: true };\n\tuseEventListener(window$1, \"blur\", () => {\n\t\tfocused.value = false;\n\t}, listenerOptions);\n\tuseEventListener(window$1, \"focus\", () => {\n\t\tfocused.value = true;\n\t}, listenerOptions);\n\treturn focused;\n}\n\n//#endregion\n//#region useWindowScroll/index.ts\n/**\n* Reactive window scroll.\n*\n* @see https://vueuse.org/useWindowScroll\n* @param options\n*/\nfunction useWindowScroll(options = {}) {\n\tconst { window: window$1 = defaultWindow,...rest } = options;\n\treturn useScroll(window$1, rest);\n}\n\n//#endregion\n//#region useWindowSize/index.ts\n/**\n* Reactive window size.\n*\n* @see https://vueuse.org/useWindowSize\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useWindowSize(options = {}) {\n\tconst { window: window$1 = defaultWindow, initialWidth = Number.POSITIVE_INFINITY, initialHeight = Number.POSITIVE_INFINITY, listenOrientation = true, includeScrollbar = true, type = \"inner\" } = options;\n\tconst width = shallowRef(initialWidth);\n\tconst height = shallowRef(initialHeight);\n\tconst update = () => {\n\t\tif (window$1) if (type === \"outer\") {\n\t\t\twidth.value = window$1.outerWidth;\n\t\t\theight.value = window$1.outerHeight;\n\t\t} else if (type === \"visual\" && window$1.visualViewport) {\n\t\t\tconst { width: visualViewportWidth, height: visualViewportHeight, scale } = window$1.visualViewport;\n\t\t\twidth.value = Math.round(visualViewportWidth * scale);\n\t\t\theight.value = Math.round(visualViewportHeight * scale);\n\t\t} else if (includeScrollbar) {\n\t\t\twidth.value = window$1.innerWidth;\n\t\t\theight.value = window$1.innerHeight;\n\t\t} else {\n\t\t\twidth.value = window$1.document.documentElement.clientWidth;\n\t\t\theight.value = window$1.document.documentElement.clientHeight;\n\t\t}\n\t};\n\tupdate();\n\ttryOnMounted(update);\n\tconst listenerOptions = { passive: true };\n\tuseEventListener(\"resize\", update, listenerOptions);\n\tif (window$1 && type === \"visual\" && window$1.visualViewport) useEventListener(window$1.visualViewport, \"resize\", update, listenerOptions);\n\tif (listenOrientation) watch(useMediaQuery(\"(orientation: portrait)\"), () => update());\n\treturn {\n\t\twidth,\n\t\theight\n\t};\n}\n\n//#endregion\nexport { DefaultMagicKeysAliasMap, StorageSerializers, TransitionPresets, asyncComputed, breakpointsAntDesign, breakpointsBootstrapV5, breakpointsElement, breakpointsMasterCss, breakpointsPrimeFlex, breakpointsQuasar, breakpointsSematic, breakpointsTailwind, breakpointsVuetify, breakpointsVuetifyV2, breakpointsVuetifyV3, cloneFnJSON, computedAsync, computedInject, createFetch, createReusableTemplate, createTemplatePromise, createUnrefFn, customStorageEventName, defaultDocument, defaultLocation, defaultNavigator, defaultWindow, executeTransition, formatTimeAgo, formatTimeAgoIntl, formatTimeAgoIntlParts, getSSRHandler, mapGamepadToXbox360Controller, onClickOutside, onElementRemoval, onKeyDown, onKeyPressed, onKeyStroke, onKeyUp, onLongPress, onStartTyping, provideSSRWidth, setSSRHandler, templateRef, transition, unrefElement, useActiveElement, useAnimate, useAsyncQueue, useAsyncState, useBase64, useBattery, useBluetooth, useBreakpoints, useBroadcastChannel, useBrowserLocation, useCached, useClipboard, useClipboardItems, useCloned, useColorMode, useConfirmDialog, useCountdown, useCssVar, useCurrentElement, useCycleList, useDark, useDebouncedRefHistory, useDeviceMotion, useDeviceOrientation, useDevicePixelRatio, useDevicesList, useDisplayMedia, useDocumentVisibility, useDraggable, useDropZone, useElementBounding, useElementByPoint, useElementHover, useElementSize, useElementVisibility, useEventBus, useEventListener, useEventSource, useEyeDropper, useFavicon, useFetch, useFileDialog, useFileSystemAccess, useFocus, useFocusWithin, useFps, useFullscreen, useGamepad, useGeolocation, useIdle, useImage, useInfiniteScroll, useIntersectionObserver, useKeyModifier, useLocalStorage, useMagicKeys, useManualRefHistory, useMediaControls, useMediaQuery, useMemoize, useMemory, useMounted, useMouse, useMouseInElement, useMousePressed, useMutationObserver, useNavigatorLanguage, useNetwork, useNow, useObjectUrl, useOffsetPagination, useOnline, usePageLeave, useParallax, useParentElement, usePerformanceObserver, usePermission, usePointer, usePointerLock, usePointerSwipe, usePreferredColorScheme, usePreferredContrast, usePreferredDark, usePreferredLanguages, usePreferredReducedMotion, usePreferredReducedTransparency, usePrevious, useRafFn, useRefHistory, useResizeObserver, useSSRWidth, useScreenOrientation, useScreenSafeArea, useScriptTag, useScroll, useScrollLock, useSessionStorage, useShare, useSorted, useSpeechRecognition, useSpeechSynthesis, useStepper, useStorage, useStorageAsync, useStyleTag, useSupported, useSwipe, useTemplateRefsList, useTextDirection, useTextSelection, useTextareaAutosize, useThrottledRefHistory, useTimeAgo, useTimeAgoIntl, useTimeoutPoll, useTimestamp, useTitle, useTransition, useUrlSearchParams, useUserMedia, useVModel, useVModels, useVibrate, useVirtualList, useWakeLock, useWebNotification, useWebSocket, useWebWorker, useWebWorkerFn, useWindowFocus, useWindowScroll, useWindowSize };","import { ref, readonly } from \"vue\";\nconst MOBILE_BREAKPOINT = 1024;\nconst MOBILE_SMALL_BREAKPOINT = MOBILE_BREAKPOINT / 2;\nconst isLessThanBreakpoint = (breakpoint) => document.documentElement.clientWidth < breakpoint;\nconst isMobile = ref(isLessThanBreakpoint(MOBILE_BREAKPOINT));\nconst isSmallMobile = ref(isLessThanBreakpoint(MOBILE_SMALL_BREAKPOINT));\nwindow.addEventListener(\"resize\", () => {\n isMobile.value = isLessThanBreakpoint(MOBILE_BREAKPOINT);\n isSmallMobile.value = isLessThanBreakpoint(MOBILE_SMALL_BREAKPOINT);\n}, { passive: true });\nfunction useIsMobile() {\n return readonly(isMobile);\n}\nfunction useIsSmallMobile() {\n return readonly(isSmallMobile);\n}\nexport {\n MOBILE_BREAKPOINT,\n MOBILE_SMALL_BREAKPOINT,\n useIsMobile,\n useIsSmallMobile\n};\n//# sourceMappingURL=index.mjs.map\n","import { formatRelativeTime, getCanonicalLocale } from \"@nextcloud/l10n\";\nimport { computed, toValue, ref, watchEffect, onUnmounted, readonly } from \"vue\";\nimport { r as register, b as t2, a as t } from \"../../chunks/_l10n-DrTiip5c.mjs\";\nregister(t2);\nconst FEW_SECONDS_AGO = {\n long: t(\"a few seconds ago\"),\n short: t(\"seconds ago\"),\n // FOR TRANSLATORS: Shorter version of 'a few seconds ago'\n narrow: t(\"sec. ago\")\n // FOR TRANSLATORS: If possible in your language an even shorter version of 'a few seconds ago'\n};\nfunction useFormatRelativeTime(timestamp = Date.now(), opts = {}) {\n let timeoutId;\n const date = computed(() => new Date(toValue(timestamp)));\n const options = computed(() => {\n const { language, relativeTime: relativeTime2, ignoreSeconds } = toValue(opts);\n return {\n ...language && { language },\n ...relativeTime2 && { relativeTime: relativeTime2 },\n ignoreSeconds: ignoreSeconds ? FEW_SECONDS_AGO[relativeTime2 || \"long\"] : false\n };\n });\n const relativeTime = ref(\"\");\n watchEffect(() => updateRelativeTime());\n function updateRelativeTime() {\n relativeTime.value = formatRelativeTime(date.value, options.value);\n if (toValue(opts).update !== false) {\n const diff = Math.abs(Date.now() - new Date(toValue(timestamp)).getTime());\n const interval = diff > 12e4 || options.value.ignoreSeconds ? Math.min(diff / 60, 18e5) : 1e3;\n timeoutId = window.setTimeout(updateRelativeTime, interval);\n }\n }\n onUnmounted(() => timeoutId && window.clearTimeout(timeoutId));\n return readonly(relativeTime);\n}\nfunction useFormatTime(timestamp, opts) {\n const options = computed(() => ({\n locale: getCanonicalLocale(),\n format: { dateStyle: \"short\", timeStyle: \"medium\" },\n ...toValue(opts)\n }));\n const formatter = computed(() => new Intl.DateTimeFormat(options.value.locale, options.value.format));\n return computed(() => formatter.value.format(toValue(timestamp)));\n}\nexport {\n useFormatRelativeTime,\n useFormatTime\n};\n//# sourceMappingURL=index.mjs.map\n","const isMac = /mac|ipad|iphone|darwin/i.test(navigator.userAgent);\nexport {\n isMac as i\n};\n//# sourceMappingURL=platform-CC2ecGvV.mjs.map\n","import { onKeyStroke } from \"@vueuse/core\";\nimport { i as isMac } from \"../../chunks/platform-CC2ecGvV.mjs\";\nconst disableKeyboardShortcuts = window.OCP?.Accessibility?.disableKeyboardShortcuts?.();\nconst derivedKeysRegex = /^[a-zA-Z0-9]$/;\nconst nonAsciiPrintableRegex = /^[^\\x20-\\x7F]$/;\nfunction shouldIgnoreEvent(event, options) {\n if (!(event.target instanceof HTMLElement) || event.target instanceof HTMLInputElement || event.target instanceof HTMLTextAreaElement || event.target instanceof HTMLSelectElement || event.target.isContentEditable) {\n return true;\n }\n if (options.allowInModal) {\n return false;\n }\n return Array.from(document.getElementsByClassName(\"modal-mask\")).filter((el) => el.checkVisibility()).length > 0;\n}\nfunction eventHandler(callback, options) {\n return (event) => {\n const ctrlKeyPressed = isMac ? event.metaKey : event.ctrlKey;\n if (ctrlKeyPressed !== Boolean(options.ctrl)) {\n return;\n } else if (event.altKey !== Boolean(options.alt)) {\n return;\n } else if (options.shift !== void 0 && event.shiftKey !== Boolean(options.shift)) {\n return;\n } else if (shouldIgnoreEvent(event, options)) {\n return;\n }\n if (options.prevent) {\n event.preventDefault();\n }\n if (options.stop) {\n event.stopPropagation();\n }\n callback(event);\n };\n}\nfunction useHotKey(keysOrFilter, callback = () => {\n}, options = {}) {\n if (disableKeyboardShortcuts) {\n return () => {\n };\n }\n const validateKeyEvent = (event, key) => {\n if (event.key === key) {\n return true;\n }\n if (options.caseSensitive) {\n const isKeyInLowerCase = key === key.toLowerCase();\n const isEventKeyInLowerCase = event.key === event.key.toLowerCase();\n if (isKeyInLowerCase !== isEventKeyInLowerCase) {\n return false;\n }\n }\n if (derivedKeysRegex.test(key) && nonAsciiPrintableRegex.test(event.key)) {\n return event.code.replace(/^(?:Key|Digit|Numpad)/, \"\") === key.toUpperCase();\n }\n return event.key.toLowerCase() === key.toLowerCase();\n };\n const keyFilter = (event) => {\n if (typeof keysOrFilter === \"function\") {\n return keysOrFilter(event);\n } else if (typeof keysOrFilter === \"string\") {\n return validateKeyEvent(event, keysOrFilter);\n } else if (Array.isArray(keysOrFilter)) {\n return keysOrFilter.some((key) => validateKeyEvent(event, key));\n } else {\n return true;\n }\n };\n const stopKeyDown = onKeyStroke(keyFilter, eventHandler(callback, options), {\n eventName: \"keydown\",\n dedupe: true,\n passive: !options.prevent\n });\n const stopKeyUp = options.push ? onKeyStroke(keyFilter, eventHandler(callback, options), {\n eventName: \"keyup\",\n passive: !options.prevent\n }) : () => {\n };\n return () => {\n stopKeyDown();\n stopKeyUp();\n };\n}\nexport {\n useHotKey\n};\n//# sourceMappingURL=index.mjs.map\n","function checkIfDarkTheme(el = document.body) {\n const backgroundInvertIfDark = window.getComputedStyle(el).getPropertyValue(\"--background-invert-if-dark\");\n if (backgroundInvertIfDark !== void 0) {\n return backgroundInvertIfDark === \"invert(100%)\";\n }\n return false;\n}\nconst isDarkTheme = checkIfDarkTheme();\nexport {\n checkIfDarkTheme,\n isDarkTheme\n};\n//# sourceMappingURL=index.mjs.map\n","import { ref, readonly } from \"vue\";\nconst isFullscreen = ref(checkIfIsFullscreen());\nwindow.addEventListener(\"resize\", () => {\n isFullscreen.value = checkIfIsFullscreen();\n});\nfunction checkIfIsFullscreen() {\n return window.outerHeight === window.screen.height;\n}\nfunction useIsFullscreen() {\n return readonly(isFullscreen);\n}\nexport {\n useIsFullscreen\n};\n//# sourceMappingURL=index.mjs.map\n","import '../assets/NcModal-DLWvQ8EA.css';\nimport { getCurrentInstance, warn, defineComponent, mergeModels, useCssVars, computed, useModel, useTemplateRef, onMounted, onUnmounted, watch, toRef, ref, watchEffect, nextTick, createBlock, openBlock, Teleport, createVNode, Transition, withCtx, withDirectives, createElementVNode, mergeProps, unref, createElementBlock, createCommentVNode, toDisplayString, normalizeClass, renderSlot, withModifiers, vShow } from \"vue\";\nimport { C as mdiPause, D as mdiPlay, b as mdiClose, x as mdiChevronLeft, c as mdiChevronRight } from \"./mdi-XFJRiRqJ.mjs\";\nimport { useIntervalFn, useSwipe } from \"@vueuse/core\";\nimport { createFocusTrap } from \"focus-trap\";\nimport { N as NcActions } from \"./NcActions-DWmvh7-Y.mjs\";\nimport { N as NcButton } from \"./NcButton-Dc8V4Urj.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-BvLanNaW.mjs\";\nimport \"../composables/useFormatDateTime/index.mjs\";\nimport { useHotKey } from \"../composables/useHotKey/index.mjs\";\nimport \"../composables/useIsDarkTheme/index.mjs\";\nimport \"../composables/useIsFullscreen/index.mjs\";\nimport \"../composables/useIsMobile/index.mjs\";\nimport { r as register, a as t } from \"./_l10n-DrTiip5c.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { g as getTrapStack } from \"./focusTrap-HJQ4pqHV.mjs\";\nimport { i as isRtl } from \"./rtl-v0UOPAM7.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction getSameNodeParent(instance) {\n if (!instance.parent) {\n return null;\n }\n if (\"vapor\" in instance || \"vapor\" in instance.parent) {\n warn(\"Vapor instances are not supported in useScopeIdAttrs :(\");\n return null;\n }\n if (instance.parent.subTree !== instance.vnode) {\n return null;\n }\n return instance.parent;\n}\nfunction getSameNodeAncestors(instance) {\n const ancestors = [instance];\n let parent = getSameNodeParent(instance);\n while (parent) {\n ancestors.push(parent);\n parent = getSameNodeParent(parent);\n }\n return ancestors;\n}\nfunction useScopeIdAttrs() {\n const instance = getCurrentInstance();\n if (!instance) {\n throw new Error(\"useScopeId must be called within a setup context\");\n }\n const sameNodeAncestors = getSameNodeAncestors(instance);\n const scopeIds = sameNodeAncestors.map((instance2) => instance2.vnode.scopeId).filter(Boolean);\n const scopeIdAttrs = Object.fromEntries(scopeIds.map((scopeId) => [scopeId, \"\"]));\n return scopeIdAttrs;\n}\nregister();\nconst _hoisted_1 = [\"aria-labelledby\", \"aria-describedby\"];\nconst _hoisted_2 = [\"data-theme-light\", \"data-theme-dark\"];\nconst _hoisted_3 = [\"id\"];\nconst _hoisted_4 = { class: \"icons-menu\" };\nconst _hoisted_5 = [\"title\"];\nconst _hoisted_6 = [\"id\"];\nconst _hoisted_7 = { class: \"modal-container__content\" };\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...{ inheritAttrs: false },\n __name: \"NcModal\",\n props: /* @__PURE__ */ mergeModels({\n name: { default: \"\" },\n hasPrevious: { type: Boolean },\n hasNext: { type: Boolean },\n outTransition: { type: Boolean },\n enableSlideshow: { type: Boolean },\n slideshowDelay: { default: 5e3 },\n slideshowPaused: { type: Boolean },\n disableSwipe: { type: Boolean },\n spreadNavigation: { type: Boolean },\n size: { default: \"normal\" },\n noClose: { type: Boolean },\n closeOnClickOutside: { type: Boolean },\n dark: { type: Boolean },\n lightBackdrop: { type: Boolean },\n container: { default: \"body\" },\n closeButtonOutside: { type: Boolean },\n additionalTrapElements: { default: () => [] },\n inlineActions: { default: 0 },\n labelId: { default: \"\" },\n setReturnFocus: { default: void 0 }\n }, {\n \"show\": { type: Boolean, ...{ default: true } },\n \"showModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"next\", \"previous\", \"close\", \"update:show\"], [\"update:show\"]),\n setup(__props, { emit: __emit }) {\n useCssVars((_ctx) => ({\n \"3caa6a4b\": cssSlideshowDelay.value\n }));\n const showModal = useModel(__props, \"show\");\n const props = __props;\n const emit = __emit;\n const scopeIdAttrs = useScopeIdAttrs();\n const modalId = createElementId();\n const maskElement = useTemplateRef(\"mask\");\n let focusTrap;\n onMounted(() => useFocusTrap());\n onUnmounted(() => clearFocusTrap());\n watch(() => props.additionalTrapElements, (elements) => {\n if (focusTrap) {\n focusTrap.updateContainerElements([maskElement.value, ...elements]);\n }\n });\n const {\n isActive: isPlaying,\n pause: stopSlideshow,\n resume: startSlideshow\n } = useIntervalFn(nextSlide, toRef(() => props.slideshowDelay), { immediate: false });\n const animationKey = ref(0);\n const runSlideshow = ref(false);\n watchEffect(() => {\n if (runSlideshow.value && !props.slideshowPaused) {\n startSlideshow();\n } else if (isPlaying.value) {\n stopSlideshow();\n }\n });\n const cssSlideshowDelay = computed(() => `${props.slideshowDelay}ms`);\n const { stop: stopSwipe } = useSwipe(maskElement, {\n onSwipeEnd: handleSwipe\n });\n onUnmounted(stopSwipe);\n useHotKey(\"Escape\", () => {\n const trapStack = getTrapStack();\n if (trapStack.at(-1) === focusTrap) {\n close();\n }\n }, { allowInModal: true });\n useHotKey([\"ArrowLeft\", \"ArrowRight\"], (event) => {\n if (document.activeElement && !maskElement.value.contains(document.activeElement)) {\n return;\n }\n if (event.key === \"ArrowLeft\" !== isRtl) {\n previousSlide();\n } else {\n nextSlide();\n }\n }, { allowInModal: true });\n onMounted(() => {\n if (!props.name && !props.labelId) {\n warn(\"[NcModal] You need either set the name or set a `labelId` for accessibility.\");\n }\n });\n function nextSlide(event) {\n if (!props.hasNext) {\n runSlideshow.value = false;\n return;\n }\n if (event && isPlaying.value) {\n restartSlideshow();\n }\n emit(\"next\", event);\n }\n function previousSlide(event) {\n if (!props.hasPrevious) {\n return;\n }\n if (event && isPlaying.value) {\n restartSlideshow();\n }\n emit(\"previous\", event);\n }\n function handleSwipe(e, direction) {\n if (!props.disableSwipe) {\n if (direction !== \"left\" && direction !== \"right\") {\n return;\n }\n if (direction === \"left\" !== isRtl) {\n nextSlide(e);\n } else {\n previousSlide(e);\n }\n }\n }\n function restartSlideshow() {\n stopSlideshow();\n startSlideshow();\n animationKey.value++;\n }\n function close(event) {\n if (props.noClose) {\n return;\n }\n showModal.value = false;\n setTimeout(() => {\n emit(\"close\", event);\n }, 300);\n }\n function handleClickModalWrapper(event) {\n if (props.closeOnClickOutside) {\n close(event);\n }\n }\n async function useFocusTrap() {\n if (!showModal.value || focusTrap) {\n return;\n }\n await nextTick();\n const options = {\n allowOutsideClick: true,\n fallbackFocus: maskElement.value,\n trapStack: getTrapStack(),\n // Esc can be used without stop in content or additionalTrapElements where it should not deactivate modal's focus trap.\n // Focus trap is deactivated on modal close anyway.\n escapeDeactivates: false,\n setReturnFocus: props.setReturnFocus\n };\n focusTrap = createFocusTrap([maskElement.value, ...props.additionalTrapElements], options);\n focusTrap.activate();\n }\n function clearFocusTrap() {\n if (!focusTrap) {\n return;\n }\n focusTrap?.deactivate();\n focusTrap = void 0;\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(Teleport, {\n disabled: _ctx.container === null,\n to: _ctx.container\n }, [\n createVNode(Transition, {\n name: \"fade\",\n appear: \"\",\n onAfterEnter: useFocusTrap,\n onBeforeLeave: clearFocusTrap\n }, {\n default: withCtx(() => [\n withDirectives(createElementVNode(\"div\", mergeProps({ ..._ctx.$attrs, ...unref(scopeIdAttrs) }, {\n ref: \"mask\",\n class: [\"modal-mask\", {\n \"modal-mask--opaque\": _ctx.dark || _ctx.closeButtonOutside || _ctx.hasPrevious || _ctx.hasNext,\n \"modal-mask--light\": _ctx.lightBackdrop\n }],\n role: \"dialog\",\n \"aria-modal\": \"true\",\n \"aria-labelledby\": _ctx.labelId || `modal-name-${unref(modalId)}`,\n \"aria-describedby\": \"modal-description-\" + unref(modalId),\n tabindex: \"-1\"\n }), [\n createVNode(Transition, {\n name: \"fade-visibility\",\n appear: \"\"\n }, {\n default: withCtx(() => [\n createElementVNode(\"div\", {\n class: \"modal-header\",\n \"data-theme-light\": _ctx.lightBackdrop,\n \"data-theme-dark\": !_ctx.lightBackdrop\n }, [\n _ctx.name.trim() !== \"\" ? (openBlock(), createElementBlock(\"h2\", {\n key: 0,\n id: \"modal-name-\" + unref(modalId),\n class: \"modal-header__name\"\n }, toDisplayString(_ctx.name), 9, _hoisted_3)) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", _hoisted_4, [\n _ctx.hasNext && _ctx.enableSlideshow ? (openBlock(), createElementBlock(\"button\", {\n key: 0,\n class: normalizeClass([\"play-pause-icons\", { \"play-pause-icons--paused\": _ctx.slideshowPaused }]),\n title: unref(isPlaying) ? unref(t)(\"Pause slideshow\") : unref(t)(\"Start slideshow\"),\n type: \"button\",\n onClick: _cache[0] || (_cache[0] = ($event) => runSlideshow.value = !runSlideshow.value)\n }, [\n createVNode(NcIconSvgWrapper, {\n class: \"play-pause-icons__icon\",\n inline: \"\",\n name: unref(isPlaying) ? unref(t)(\"Pause slideshow\") : unref(t)(\"Start slideshow\"),\n path: unref(isPlaying) ? unref(mdiPause) : unref(mdiPlay)\n }, null, 8, [\"name\", \"path\"]),\n unref(isPlaying) ? (openBlock(), createElementBlock(\"svg\", {\n key: `${unref(modalId)}-animation-${animationKey.value}`,\n class: \"progress-ring\",\n height: \"50\",\n width: \"50\"\n }, [..._cache[1] || (_cache[1] = [\n createElementVNode(\"circle\", {\n class: \"progress-ring__circle\",\n stroke: \"white\",\n \"stroke-width\": \"2\",\n fill: \"transparent\",\n r: \"15\",\n cx: \"25\",\n cy: \"25\"\n }, null, -1)\n ])])) : createCommentVNode(\"\", true)\n ], 10, _hoisted_5)) : createCommentVNode(\"\", true),\n createVNode(NcActions, {\n class: \"header-actions\",\n inline: _ctx.inlineActions\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"actions\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"inline\"]),\n !_ctx.noClose && _ctx.closeButtonOutside ? (openBlock(), createBlock(NcButton, {\n key: 1,\n \"aria-label\": unref(t)(\"Close\"),\n class: \"header-close\",\n variant: \"tertiary\",\n onClick: close\n }, {\n icon: withCtx(() => [\n createVNode(NcIconSvgWrapper, { path: unref(mdiClose) }, null, 8, [\"path\"])\n ]),\n _: 1\n }, 8, [\"aria-label\"])) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2)\n ]),\n _: 3\n }),\n createVNode(Transition, {\n name: `modal-${_ctx.outTransition ? \"out\" : \"in\"}`,\n appear: \"\"\n }, {\n default: withCtx(() => [\n withDirectives(createElementVNode(\"div\", {\n class: normalizeClass([\"modal-wrapper\", [\n `modal-wrapper--${_ctx.size}`,\n { \"modal-wrapper--spread-navigation\": _ctx.spreadNavigation }\n ]]),\n onMousedown: withModifiers(handleClickModalWrapper, [\"self\"])\n }, [\n createVNode(Transition, {\n name: \"fade-visibility\",\n appear: \"\"\n }, {\n default: withCtx(() => [\n withDirectives(createVNode(NcButton, {\n \"aria-label\": unref(t)(\"Previous\"),\n class: \"prev\",\n variant: \"tertiary-no-background\",\n onClick: previousSlide\n }, {\n icon: withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n directional: \"\",\n path: unref(mdiChevronLeft),\n size: 40\n }, null, 8, [\"path\"])\n ]),\n _: 1\n }, 8, [\"aria-label\"]), [\n [vShow, _ctx.hasPrevious]\n ])\n ]),\n _: 1\n }),\n createElementVNode(\"div\", {\n id: \"modal-description-\" + unref(modalId),\n class: \"modal-container\"\n }, [\n createElementVNode(\"div\", _hoisted_7, [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ]),\n !_ctx.noClose && !_ctx.closeButtonOutside ? (openBlock(), createBlock(NcButton, {\n key: 0,\n \"aria-label\": unref(t)(\"Close\"),\n class: \"modal-container__close\",\n variant: \"tertiary\",\n onClick: close\n }, {\n icon: withCtx(() => [\n createVNode(NcIconSvgWrapper, { path: unref(mdiClose) }, null, 8, [\"path\"])\n ]),\n _: 1\n }, 8, [\"aria-label\"])) : createCommentVNode(\"\", true)\n ], 8, _hoisted_6),\n createVNode(Transition, {\n name: \"fade-visibility\",\n appear: \"\"\n }, {\n default: withCtx(() => [\n withDirectives(createVNode(NcButton, {\n \"aria-label\": unref(t)(\"Next\"),\n class: \"next\",\n variant: \"tertiary-no-background\",\n onClick: nextSlide\n }, {\n icon: withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n directional: \"\",\n path: unref(mdiChevronRight),\n size: 40\n }, null, 8, [\"path\"])\n ]),\n _: 1\n }, 8, [\"aria-label\"]), [\n [vShow, _ctx.hasNext]\n ])\n ]),\n _: 1\n })\n ], 34), [\n [vShow, showModal.value]\n ])\n ]),\n _: 3\n }, 8, [\"name\"])\n ], 16, _hoisted_1), [\n [vShow, showModal.value]\n ])\n ]),\n _: 3\n })\n ], 8, [\"disabled\", \"to\"]);\n };\n }\n});\nconst NcModal = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-1639aad0\"]]);\nexport {\n NcModal as N\n};\n//# sourceMappingURL=NcModal-MC_HktJd.mjs.map\n"],"names":["getFirstDay","intl","getCanonicalLocale","weekInfo","getDayNames","locale","getDayNamesMin","formatRelativeTime","timestamp","opts","options","getLanguage","date","formatter","seconds","minutes","hours","days","weeks","months","format","NC_ACTIONS_IS_SEMANTIC_MENU","NC_ACTIONS_CLOSE_MENU","getTrapStack","createTrapStackController","pausedStack","trap","useTrapStackControl","shouldPause","trapStackController","watch","toValue","onUnmounted","sides","alignments","placements","acc","side","min","max","round","floor","createCoords","v","oppositeSideMap","oppositeAlignmentMap","clamp","start","value","end","evaluate","param","getSide","placement","getAlignment","getOppositeAxis","axis","getAxisLength","yAxisSides","getSideAxis","getAlignmentAxis","getAlignmentSides","rects","rtl","alignment","alignmentAxis","length","mainAlignmentSide","getOppositePlacement","getExpandedPlacements","oppositePlacement","getOppositeAlignmentPlacement","lrPlacement","rlPlacement","tbPlacement","btPlacement","getSideList","isStart","getOppositeAxisPlacements","flipAlignment","direction","list","expandPaddingObject","padding","getPaddingObject","rectToClientRect","rect","x","y","width","height","computeCoordsFromPlacement","_ref","reference","floating","sideAxis","alignLength","isVertical","commonX","commonY","commonAlign","coords","computePosition","config","strategy","middleware","platform","validMiddleware","statefulPlacement","middlewareData","resetCount","i","name","fn","nextX","nextY","data","reset","detectOverflow","state","_await$platform$isEle","elements","boundary","rootBoundary","elementContext","altBoundary","paddingObject","element","clippingClientRect","offsetParent","offsetScale","elementClientRect","arrow","arrowDimensions","isYAxis","minProp","maxProp","clientProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","largestPossiblePadding","minPadding","maxPadding","min$1","center","offset","shouldAddOffset","alignmentOffset","getPlacementList","autoAlignment","allowedPlacements","autoPlacement","_middlewareData$autoP","_middlewareData$autoP2","_placementsThatFitOnE","crossAxis","detectOverflowOptions","placements$1","overflow","currentIndex","currentPlacement","alignmentSides","currentOverflows","allOverflows","nextPlacement","placementsSortedByMostSpace","d","a","b","resetPlacement","flip","_middlewareData$arrow","_middlewareData$flip","initialPlacement","checkMainAxis","checkCrossAxis","specifiedFallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","initialSideAxis","isBasePlacement","fallbackPlacements","hasFallbackAxisSideDirection","overflows","overflowsData","_middlewareData$flip2","_overflowsData$filter","nextIndex","_overflowsData$filter2","currentSideAxis","originSides","convertValueToCoords","mainAxisMulti","crossAxisMulti","rawValue","mainAxis","_middlewareData$offse","diffCoords","shift","limiter","mainAxisCoord","crossAxisCoord","minSide","maxSide","limitedCoords","limitShift","rawOffset","computedOffset","len","limitMin","limitMax","_middlewareData$offse2","isOriginSide","size","_state$middlewareData","_state$middlewareData2","apply","heightSide","widthSide","maximumClippingHeight","maximumClippingWidth","overflowAvailableHeight","overflowAvailableWidth","noShift","availableHeight","availableWidth","xMin","xMax","yMin","yMax","nextDimensions","n","t","e","o","r","l","c","s","h","f","u","p","g","m","w","L","E","R","T","C","F","W","D","S","A","H","O","P","B","Ze","re","$","_e","Te","pe","ae","de","G","le","he","Y","q","Q","xe","Ue","Ye","Xe","Ke","Je","Qe","ne","_","ue","fe","tt","Pe","ce","et","ot","it","J","ke","Le","st","nt","z","X","Fe","rt","Re","De","pt","Ie","at","M","Z","dt","lt","ht","ut","ft","ct","mt","je","Ve","se","ee","te","K","gt","wt","$e","N","I","j","V","Ee","ve","k","Se","Ht","kt","candidateSelectors","candidateSelector","NoElement","matches","getRootNode","_element$getRootNode","_isInert","node","lookUp","_node$getAttribute","inertAtt","inert","result","isContentEditable","_node$getAttribute2","attValue","getCandidates","el","includeContainer","filter","candidates","_getCandidatesIteratively","elementsToCheck","assigned","content","nestedCandidates","validCandidate","shadowRoot","validShadowRoot","_nestedCandidates","hasTabIndex","getTabIndex","getSortOrderTabIndex","isScope","tabIndex","sortOrderedTabbables","isInput","isHiddenInput","isDetailsWithSummary","child","getCheckedRadio","nodes","form","isTabbableRadio","radioScope","queryRadios","radioSet","err","checked","isRadio","isNonTabbableRadio","isNodeAttached","_nodeRoot","nodeRoot","nodeRootHost","attached","_nodeRootHost","_nodeRootHost$ownerDo","_node$ownerDocument","_nodeRoot2","_nodeRootHost2","_nodeRootHost2$ownerD","isZeroArea","_node$getBoundingClie","isHidden","displayCheck","getShadowRoot","visible","isDirectSummary","nodeUnderDetails","originalNode","parentElement","rootNode","isDisabledFromFieldset","parentNode","isNodeMatchingSelectorFocusable","isNodeMatchingSelectorTabbable","isShadowRootTabbable","shadowHostNode","_sortByOrder","regularTabbables","orderedTabbables","item","candidateTabindex","sortable","tabbable","container","focusable","isTabbable","focusableCandidateSelector","isFocusable","_arrayLikeToArray","_arrayWithoutHoles","_defineProperty","_toPropertyKey","_iterableToArray","_nonIterableSpread","ownKeys","_objectSpread2","_toConsumableArray","_unsupportedIterableToArray","_toPrimitive","activeFocusTraps","trapStack","activeTrap","trapIndex","isSelectableInput","isEscapeEvent","isTabEvent","isKeyForward","isKeyBackward","delay","valueOrHandler","_len","params","_key","getActualTarget","event","internalTrapStack","createFocusTrap","userOptions","doc","getOption","configOverrideOptions","optionName","configOptionName","findContainerIndex","composedPath","tabbableNodes","getNodeForOption","_ref2","_ref2$hasFallback","hasFallback","_ref2$params","optionValue","getInitialFocusNode","firstTabbableGroup","firstTabbableNode","updateTabbableNodes","focusableNodes","lastTabbableNode","firstDomTabbableNode","lastDomTabbableNode","posTabIndexesFound","forward","nodeIdx","group","_getActiveElement","activeElement","_tryFocus","getReturnFocusNode","previousActiveElement","findNextNavNode","_ref3","target","_ref3$isBackward","isBackward","destinationNode","containerIndex","containerGroup","startOfGroupIndex","_ref4","destinationGroupIndex","destinationGroup","lastOfGroupIndex","_ref5","_destinationGroupIndex","_destinationGroup","checkPointerDown","checkFocusIn","targetContained","nextNode","navAcrossContainers","mruContainerIdx","mruTabIdx","checkKeyNav","checkTabKey","checkEscapeKey","checkClick","addListeners","removeListeners","checkDomRemoval","mutations","isFocusedNodeRemoved","mutation","removedNodes","mutationObserver","updateObservedNodes","activateOptions","onActivate","onPostActivate","checkCanFocusTrap","finishActivation","deactivateOptions","onDeactivate","onPostDeactivate","checkCanReturnFocus","returnFocus","finishDeactivation","pauseOptions","unpauseOptions","containerElements","elementsAsArray","paused","onPause","onPostPause","onUnpause","onPostUnpause","isRtl","isRTL","_sfc_main$1","defineComponent","ncPopover","style0","theme","_sfc_main","Dropdown","triggerElements","options2","error","logger","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","_component_NcPopoverTriggerProvider","resolveComponent","_component_Dropdown","openBlock","createBlock","$event","withCtx","slotProps","renderSlot","normalizeProps","guardReactiveProps","createVNode","cssModules","NcPopover","_export_sfc","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","createElementBlock","mergeProps","createElementVNode","toDisplayString","createCommentVNode","IconDotsHorizontal","register","t4","isSlotPopulated","vnodes","vnode","Comment","Fragment","Text","focusableSelector","NcButton","computed","createElementId","action","url","focusList","focusIndex","newFocusIndex","currentActiveElement","focusElement","liMenuParent","indexLength","firstCheckedIndex","button","actions","findActions","actions2","validInlineActions","inlineActions","menuActions","menuItemsActions","textInputActions","linkActions","hasTextInputAction","hasMenuItemAction","hasLinkAction","renderInlineAction","iconProp","icon","text","buttonText","title","propsToForward","type","renderActionsPopover","triggerIcon","triggerRandomId","NcActions","tryOnScopeDispose","failSilently","getCurrentScope","onScopeDispose","localProvidedStateMap","injectLocal","args","_getCurrentInstance","key","instance","getCurrentInstance","owner","hasInjectionContext","inject","isClient","notNullish","val","toString","isObject","noop","toRef","toRef$1","readonly","customRef","ref","createFilterWrapper","wrapper","resolve","reject","bypassFilter","invoke$1","debounceFilter","ms","timer","maxTimer","lastRejector","_clearTimeout","timer$1","lastInvoker","duration","maxDuration","pxValue","px","toArray","getLifeCycleTarget","createSharedComposable","composable","subscribers","scope","dispose","effectScope","useDebounceFn","watchWithFilter","source","cb","eventFilter","watchOptions","tryOnMounted","sync","onMounted","nextTick","useIntervalFn","interval","immediate","immediateCallback","isActive","shallowRef","clean","pause","resume","intervalValue","isRef","shallowReadonly","watchDebounced","debounce","maxWait","watchImmediate","defaultWindow","defaultDocument","unrefElement","elRef","_$el","plain","useEventListener","listener","firstParamTargets","test","_firstParamTargets$va","_firstParamTargets$va2","unref","raw_targets","raw_events","raw_listeners","raw_options","onCleanup","optionsClone","cleanups","onClickOutside","handler","window$1","ignore","capture","detectIframe","controls","shouldListen","shouldIgnore","target$1","hasMultipleRoots","vm","checkMultipleRoots","children","isProcessingClick","cleanup","_window$document$acti","stop","useMounted","isMounted","useSupported","callback","useMutationObserver","mutationOptions","observer","isSupported","stopWatch","items","newTargets","takeRecords","onElementRemoval","document$1","flush","stopFn","cleanupAndUpdate","watchEffect","mutationsList","stopHandle","createKeyPredicate","keyFilter","onKeyStroke","eventName","passive","dedupe","predicate","useActiveElement","_options$document","deep","triggerOnRemoval","getDeepActiveElement","_element$shadowRoot","trigger","listenerOptions","ssrWidthSymbol","useSSRWidth","ssrWidth","useMediaQuery","query","ssrSupport","mediaQuery","queryString","not","minWidth","maxWidth","res","usePreferredDark","useResizeObserver","observerOptions","_targets","els","_el","useElementSize","initialSize","box","isSVG","_unrefElement","stop1","entry","boxSize","$elem","formatBoxSize","inlineSize","blockSize","ele","stop2","useIntersectionObserver","root","rootMargin","threshold","targets","targets$1","root$1","EVENT_FOCUS_IN","EVENT_FOCUS_OUT","PSEUDO_CLASS_FOCUS_WITHIN","useFocusWithin","targetElement","_focused","focused","_targetElement$value$","_targetElement$value","_targetElement$value$2","resolveElement","elInitialOverflow","useScrollLock","initialState","isLocked","initialOverflow","lock","unlock","useSwipe","onSwipe","onSwipeEnd","onSwipeStart","coordsStart","reactive","coordsEnd","diffX","diffY","abs","isThresholdExceeded","isSwiping","getTouchEventCoords","updateCoordsStart","updateCoordsEnd","onTouchEnd","stops","MOBILE_BREAKPOINT","MOBILE_SMALL_BREAKPOINT","isLessThanBreakpoint","breakpoint","isMobile","isSmallMobile","useIsMobile","t2","FEW_SECONDS_AGO","useFormatRelativeTime","timeoutId","language","relativeTime2","ignoreSeconds","relativeTime","updateRelativeTime","diff","useFormatTime","isMac","disableKeyboardShortcuts","derivedKeysRegex","nonAsciiPrintableRegex","shouldIgnoreEvent","eventHandler","useHotKey","keysOrFilter","validateKeyEvent","isKeyInLowerCase","isEventKeyInLowerCase","stopKeyDown","stopKeyUp","checkIfDarkTheme","backgroundInvertIfDark","isFullscreen","checkIfIsFullscreen","getSameNodeParent","getSameNodeAncestors","ancestors","parent","useScopeIdAttrs","scopeIds","instance2","scopeId","_hoisted_5","_hoisted_6","_hoisted_7","mergeModels","__props","__emit","useCssVars","cssSlideshowDelay","showModal","useModel","props","emit","scopeIdAttrs","modalId","maskElement","useTemplateRef","focusTrap","useFocusTrap","clearFocusTrap","isPlaying","stopSlideshow","startSlideshow","nextSlide","animationKey","runSlideshow","stopSwipe","handleSwipe","close","previousSlide","restartSlideshow","handleClickModalWrapper","Teleport","Transition","withDirectives","normalizeClass","NcIconSvgWrapper","mdiPause","mdiPlay","mdiClose","withModifiers","mdiChevronLeft","vShow","mdiChevronRight","NcModal"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21]} \ No newline at end of file diff --git a/dist/index-JpgrUA2Z-BFiKKJ1W.chunk.mjs.license b/dist/NcModal-MC_HktJd-DqeuH-fk.chunk.mjs.map.license similarity index 82% rename from dist/index-JpgrUA2Z-BFiKKJ1W.chunk.mjs.license rename to dist/NcModal-MC_HktJd-DqeuH-fk.chunk.mjs.map.license index 7082d6afa2579..cf2609099602c 100644 --- a/dist/index-JpgrUA2Z-BFiKKJ1W.chunk.mjs.license +++ b/dist/NcModal-MC_HktJd-DqeuH-fk.chunk.mjs.map.license @@ -1,12 +1,10 @@ SPDX-License-Identifier: AGPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: MIT -SPDX-FileCopyrightText: @nextcloud/dialogs developers SPDX-FileCopyrightText: Anthony Fu <https://github.com/antfu> SPDX-FileCopyrightText: David Clark SPDX-FileCopyrightText: Guillaume Chau <guillaume.b.chau@gmail.com> SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors -SPDX-FileCopyrightText: Varun A P SPDX-FileCopyrightText: atomiks This file is generated from multiple sources. Included packages: @@ -19,9 +17,6 @@ This file is generated from multiple sources. Included packages: - @floating-ui/utils - version: 0.2.10 - license: MIT -- @nextcloud/dialogs - - version: 7.2.0 - - license: AGPL-3.0-or-later - @nextcloud/l10n - version: 3.4.1 - license: GPL-3.0-or-later @@ -43,6 +38,3 @@ This file is generated from multiple sources. Included packages: - tabbable - version: 6.3.0 - license: MIT -- toastify-js - - version: 1.12.0 - - license: MIT diff --git a/dist/NcModal-MC_HktJd-YC6kxNbR.chunk.css b/dist/NcModal-MC_HktJd-YC6kxNbR.chunk.css new file mode 100644 index 0000000000000..c6c135e038d21 --- /dev/null +++ b/dist/NcModal-MC_HktJd-YC6kxNbR.chunk.css @@ -0,0 +1 @@ +.material-design-icon[data-v-5f7eed6b]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.action-items[data-v-5f7eed6b]{display:flex;align-items:center;gap:calc((var(--default-clickable-area) - 16px) / 2 / 2)}.action-item[data-v-5f7eed6b]{--open-background-color: var(--color-background-hover, $action-background-hover);position:relative;display:inline-block}.action-item.action-item--primary[data-v-5f7eed6b]{--open-background-color: var(--color-primary-element-hover)}.action-item.action-item--secondary[data-v-5f7eed6b]{--open-background-color: var(--color-primary-element-light-hover)}.action-item.action-item--error[data-v-5f7eed6b]{--open-background-color: var(--color-error-hover)}.action-item.action-item--warning[data-v-5f7eed6b]{--open-background-color: var(--color-warning-hover)}.action-item.action-item--success[data-v-5f7eed6b]{--open-background-color: var(--color-success-hover)}.action-item.action-item--tertiary-no-background[data-v-5f7eed6b]{--open-background-color: transparent}.action-item.action-item--open .action-item__menutoggle[data-v-5f7eed6b]{background-color:var(--open-background-color)}.action-item__menutoggle__icon[data-v-5f7eed6b]{width:20px;height:20px;object-fit:contain}.material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.v-popper--theme-nc-popover-9.v-popper__popper.action-item__popper .v-popper__wrapper{border-radius:var(--border-radius-element)}.v-popper--theme-nc-popover-9.v-popper__popper.action-item__popper .v-popper__wrapper .v-popper__inner{border-radius:var(--border-radius-element);padding:4px;max-height:calc(100vh - var(--header-height));overflow:auto}._material-design-icon_wpltc_12{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._ncPopover_wpltc_20.v-popper--theme-nc-popover-9,._ncPopover_wpltc_20.v-popper--theme-nc-popover-9 *{box-sizing:border-box}._ncPopover_wpltc_20.v-popper--theme-nc-popover-9 .resize-observer{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:transparent;pointer-events:none;display:block;overflow:hidden;opacity:0}._ncPopover_wpltc_20.v-popper--theme-nc-popover-9 .resize-observer object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}._ncPopover_wpltc_20.v-popper--theme-nc-popover-9.v-popper__popper{z-index:100000;top:0;left:0;display:block!important}._ncPopover_wpltc_20.v-popper--theme-nc-popover-9.v-popper__popper .v-popper__wrapper{box-shadow:0 1px 10px var(--color-box-shadow);border-radius:var(--border-radius-element)}._ncPopover_wpltc_20.v-popper--theme-nc-popover-9.v-popper__popper .v-popper__inner{padding:0;color:var(--color-main-text);border-radius:var(--border-radius-element);overflow:hidden;background:var(--color-main-background)}._ncPopover_wpltc_20.v-popper--theme-nc-popover-9.v-popper__popper .v-popper__arrow-container{position:absolute;z-index:1;width:0;height:0;border-style:solid;border-color:transparent;border-width:10px}._ncPopover_wpltc_20.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-container{bottom:-9px;border-bottom-width:0;border-top-color:var(--color-main-background)}._ncPopover_wpltc_20.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-container{top:-9px;border-top-width:0;border-bottom-color:var(--color-main-background)}._ncPopover_wpltc_20.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-container{left:-9px;border-left-width:0;border-right-color:var(--color-main-background)}._ncPopover_wpltc_20.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-container{right:-9px;border-right-width:0;border-left-color:var(--color-main-background)}._ncPopover_wpltc_20.v-popper--theme-nc-popover-9.v-popper__popper[aria-hidden=true]{visibility:hidden;transition:opacity var(--animation-quick),visibility var(--animation-quick);opacity:0}._ncPopover_wpltc_20.v-popper--theme-nc-popover-9.v-popper__popper[aria-hidden=false]{visibility:visible;transition:opacity var(--animation-quick);opacity:1}.material-design-icon[data-v-1639aad0]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.modal-mask[data-v-1639aad0]{position:fixed;z-index:9998;top:0;inset-inline-start:0;display:block;width:100%;height:100%;--backdrop-color: 0, 0, 0;background-color:rgba(var(--backdrop-color),.5)}.modal-mask[data-v-1639aad0],.modal-mask[data-v-1639aad0] *{box-sizing:border-box}.modal-mask--opaque[data-v-1639aad0]{background-color:rgba(var(--backdrop-color),.92)}.modal-mask--light[data-v-1639aad0]{--backdrop-color: 255, 255, 255}.modal-header[data-v-1639aad0]{position:absolute;z-index:10001;top:0;inset-inline:0 0;display:flex!important;align-items:center;justify-content:center;width:100%;height:var(--header-height);overflow:hidden;transition:opacity .25s,visibility .25s}.modal-header__name[data-v-1639aad0]{overflow-x:hidden;width:100%;padding:0 calc(var(--default-clickable-area) * 3) 0 12px;transition:padding ease .1s;white-space:nowrap;text-overflow:ellipsis;font-size:16px;margin-block:0}@media only screen and (min-width:1024px){.modal-header__name[data-v-1639aad0]{padding-inline-start:calc(var(--default-clickable-area) * 3);text-align:center}}.modal-header .icons-menu[data-v-1639aad0]{position:absolute;inset-inline-end:0;display:flex;align-items:center;justify-content:flex-end}.modal-header .icons-menu .header-close[data-v-1639aad0]{display:flex;align-items:center;justify-content:center;margin:calc((var(--header-height) - var(--default-clickable-area)) / 2);padding:0}.modal-header .icons-menu .play-pause-icons[data-v-1639aad0]{position:relative;width:var(--header-height);height:var(--header-height);margin:0;padding:0;cursor:pointer;border:none;background-color:transparent}.modal-header .icons-menu .play-pause-icons:hover .play-pause-icons__icon[data-v-1639aad0],.modal-header .icons-menu .play-pause-icons:focus .play-pause-icons__icon[data-v-1639aad0]{opacity:1;border-radius:calc(var(--default-clickable-area) / 2);background-color:#7f7f7f40}.modal-header .icons-menu .play-pause-icons__icon[data-v-1639aad0]{width:var(--default-clickable-area);height:var(--default-clickable-area);margin:calc((var(--header-height) - var(--default-clickable-area)) / 2);cursor:pointer;opacity:.7}.modal-header .icons-menu[data-v-1639aad0] .action-item{margin:calc((var(--header-height) - var(--default-clickable-area)) / 2)}.modal-header .icons-menu[data-v-1639aad0] .action-item--single{width:var(--default-clickable-area);height:var(--default-clickable-area);cursor:pointer;background-position:center;background-size:22px}.modal-header .icons-menu .header-actions[data-v-1639aad0] button:focus-visible{box-shadow:none!important;outline:2px solid #fff!important}.modal-wrapper[data-v-1639aad0]{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.modal-wrapper .prev[data-v-1639aad0],.modal-wrapper .next[data-v-1639aad0]{z-index:10000;height:35vh;min-height:300px;position:absolute;transition:opacity .25s;color:#fff}.modal-wrapper .prev[data-v-1639aad0]:focus-visible,.modal-wrapper .next[data-v-1639aad0]:focus-visible{box-shadow:0 0 0 2px var(--color-primary-element-text);background-color:var(--color-box-shadow)}.modal-wrapper .prev[data-v-1639aad0]{inset-inline-start:2px}.modal-wrapper .next[data-v-1639aad0]{inset-inline-end:2px}.modal-wrapper .modal-container[data-v-1639aad0]{position:relative;display:flex;padding:0;transition:transform .3s ease;border-radius:var(--border-radius-container);background-color:var(--color-main-background);color:var(--color-main-text);box-shadow:0 0 40px #0003;overflow:auto}.modal-wrapper .modal-container__close[data-v-1639aad0]{z-index:1;position:absolute;top:4px;inset-inline-end:var(--default-grid-baseline)}.modal-wrapper .modal-container__content[data-v-1639aad0]{width:100%;min-height:52px;overflow:auto}.modal-wrapper--small>.modal-container[data-v-1639aad0]{width:400px;max-width:90%;max-height:min(90%,100% - 2 * var(--header-height))}.modal-wrapper--normal>.modal-container[data-v-1639aad0]{max-width:90%;width:600px;max-height:min(90%,100% - 2 * var(--header-height))}.modal-wrapper--large>.modal-container[data-v-1639aad0]{max-width:90%;width:900px;max-height:min(90%,100% - 2 * var(--header-height))}.modal-wrapper--full>.modal-container[data-v-1639aad0]{width:100%;height:calc(100% - var(--header-height));position:absolute;top:var(--header-height);border-radius:0}@media only screen and (max-width:512px)or (max-height:400px){.modal-wrapper .modal-container[data-v-1639aad0]{max-width:initial;width:100%;max-height:initial;height:calc(100% - var(--header-height));position:absolute;top:var(--header-height);border-radius:0}}.fade-enter-active[data-v-1639aad0],.fade-leave-active[data-v-1639aad0]{transition:opacity .25s}.fade-enter-from[data-v-1639aad0],.fade-leave-to[data-v-1639aad0]{opacity:0}.fade-visibility-enter-from[data-v-1639aad0],.fade-visibility-leave-to[data-v-1639aad0]{visibility:hidden;opacity:0}.modal-in-enter-active[data-v-1639aad0],.modal-in-leave-active[data-v-1639aad0],.modal-out-enter-active[data-v-1639aad0],.modal-out-leave-active[data-v-1639aad0]{transition:opacity .25s}.modal-in-enter-from[data-v-1639aad0],.modal-in-leave-to[data-v-1639aad0],.modal-out-enter-from[data-v-1639aad0],.modal-out-leave-to[data-v-1639aad0]{opacity:0}.modal-in-enter .modal-container[data-v-1639aad0],.modal-in-leave-to .modal-container[data-v-1639aad0]{transform:scale(.9)}.modal-out-enter .modal-container[data-v-1639aad0],.modal-out-leave-to .modal-container[data-v-1639aad0]{transform:scale(1.1)}.modal-mask .play-pause-icons .progress-ring[data-v-1639aad0]{position:absolute;top:0;inset-inline-start:0;transform:rotate(-90deg)}.modal-mask .play-pause-icons .progress-ring .progress-ring__circle[data-v-1639aad0]{transition:.1s stroke-dashoffset;transform-origin:50% 50%;animation:progressring-1639aad0 linear var(--3caa6a4b) infinite;stroke-linecap:round;stroke-dashoffset:94.2477796077;stroke-dasharray:94.2477796077}.modal-mask .play-pause-icons--paused .play-pause-icons__icon[data-v-1639aad0]{animation:breath-1639aad0 2s cubic-bezier(.4,0,.2,1) infinite}.modal-mask .play-pause-icons--paused .progress-ring__circle[data-v-1639aad0]{animation-play-state:paused!important}@keyframes progressring-1639aad0{0%{stroke-dashoffset:94.2477796077}to{stroke-dashoffset:0}}@keyframes breath-1639aad0{0%{opacity:1}50%{opacity:0}to{opacity:1}} diff --git a/dist/NcNoteCard-CVhtNL04-hwuc093N.chunk.mjs b/dist/NcNoteCard-CVhtNL04-hwuc093N.chunk.mjs deleted file mode 100644 index 69ab717cb9d0e..0000000000000 --- a/dist/NcNoteCard-CVhtNL04-hwuc093N.chunk.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import{b as H,L as k,x as n,j as d,o as i,k as u,n as f,M as A,c as z,w as N,m as c,g as $,t as M,z as I,u as p,N as S,e as O,l as j}from"./runtime-dom.esm-bundler-BrYCUcZF.chunk.mjs";import{_ as b}from"./createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs";import{g as E}from"./index-6_gsQFyp.chunk.mjs";import{p as F}from"./translation-DoG5ZELJ-gw0g4US-.chunk.mjs";var P="M13 14H11V9H13M13 18H11V16H13M1 21H23L12 2L1 21Z",f1="M11,15H13V17H11V15M11,7H13V13H11V7M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20Z",R="M23,12L20.56,9.22L20.9,5.54L17.29,4.72L15.4,1.54L12,3L8.6,1.54L6.71,4.72L3.1,5.53L3.44,9.21L1,12L3.44,14.78L3.1,18.47L6.71,19.29L8.6,22.47L12,21L15.4,22.46L17.29,19.28L20.9,18.46L20.56,14.78L23,12M13,17H11V15H13V17M13,13H11V7H13V13Z",A1="M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z",M1="M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z",m1="M19,19H5V8H19M16,1V3H8V1H6V3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3H18V1",H1="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z",T="M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z",b1="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z",C1="M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z",g1="M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z",y1="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z",V1="M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M16.2,16.2L11,13V7H12.5V12.2L17,14.9L16.2,16.2Z",h1="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z",_1="M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2C6.47,2 2,6.47 2,12C2,17.53 6.47,22 12,22C17.53,22 22,17.53 22,12C22,6.47 17.53,2 12,2M14.59,8L12,10.59L9.41,8L8,9.41L10.59,12L8,14.59L9.41,16L12,13.41L14.59,16L16,14.59L13.41,12L16,9.41L14.59,8Z",w1="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z",Z1="M16,12A2,2 0 0,1 18,10A2,2 0 0,1 20,12A2,2 0 0,1 18,14A2,2 0 0,1 16,12M10,12A2,2 0 0,1 12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12M4,12A2,2 0 0,1 6,10A2,2 0 0,1 8,12A2,2 0 0,1 6,14A2,2 0 0,1 4,12Z",x1="M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17M12,4.5C7,4.5 2.73,7.61 1,12C2.73,16.39 7,19.5 12,19.5C17,19.5 21.27,16.39 23,12C21.27,7.61 17,4.5 12,4.5Z",B1="M11.83,9L15,12.16C15,12.11 15,12.05 15,12A3,3 0 0,0 12,9C11.94,9 11.89,9 11.83,9M7.53,9.8L9.08,11.35C9.03,11.56 9,11.77 9,12A3,3 0 0,0 12,15C12.22,15 12.44,14.97 12.65,14.92L14.2,16.47C13.53,16.8 12.79,17 12,17A5,5 0 0,1 7,12C7,11.21 7.2,10.47 7.53,9.8M2,4.27L4.28,6.55L4.73,7C3.08,8.3 1.78,10 1,12C2.73,16.39 7,19.5 12,19.5C13.55,19.5 15.03,19.2 16.38,18.66L16.81,19.08L19.73,22L21,20.73L3.27,3M12,7A5,5 0 0,1 17,12C17,12.64 16.87,13.26 16.64,13.82L19.57,16.75C21.07,15.5 22.27,13.86 23,12C21.27,7.61 17,4.5 12,4.5C10.6,4.5 9.26,4.75 8,5.2L10.17,7.35C10.74,7.13 11.35,7 12,7Z",q="M13,9H11V7H13M13,17H11V11H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z",k1="M14,19H18V5H14M6,19H10V5H6V19Z",z1="M8,5.14V19.14L19,12.14L8,5.14Z",N1="M12.5,8C9.85,8 7.45,9 5.6,10.6L2,7V16H11L7.38,12.38C8.77,11.22 10.54,10.5 12.5,10.5C16.04,10.5 19.05,12.81 20.1,16L22.47,15.22C21.08,11.03 17.15,8 12.5,8Z";const W=["aria-hidden","aria-label"],D={key:0,viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},U=["d"],G=["innerHTML"],J=H({__name:"NcIconSvgWrapper",props:{directional:{type:Boolean},inline:{type:Boolean},svg:{default:""},name:{default:void 0},path:{default:""},size:{default:20}},setup(a){k(s=>({fb515064:t.value}));const e=a,t=n(()=>typeof e.size=="number"?`${e.size}px`:e.size),o=n(()=>{if(!e.svg||e.path)return;const s=F.sanitize(e.svg),r=new DOMParser().parseFromString(s,"image/svg+xml");return r.querySelector("parsererror")?"":(r.documentElement.id&&r.documentElement.removeAttribute("id"),r.documentElement.outerHTML)});return(s,r)=>(i(),d("span",{"aria-hidden":s.name?void 0:"true","aria-label":s.name||void 0,class:f(["icon-vue",{"icon-vue--directional":s.directional,"icon-vue--inline":s.inline}]),role:"img"},[o.value?(i(),d("span",{key:1,innerHTML:o.value},null,8,G)):(i(),d("svg",D,[u("path",{d:s.path},null,8,U)]))],10,W))}}),K=b(J,[["__scopeId","data-v-aaedb1c3"]]),$1=()=>{},m=Array.isArray;function I1(a,e){return(a.aliasOf||a)===(e.aliasOf||e)}function S1(a,e){if(Object.keys(a).length!==Object.keys(e).length)return!1;for(const t in a)if(!Q(a[t],e[t]))return!1;return!0}function Q(a,e){return m(a)?g(a,e):m(e)?g(e,a):a===e}function g(a,e){return m(e)?a.length===e.length&&a.every((t,o)=>t===e[o]):a.length===1&&a[0]===e}const X=Symbol(""),O1=Symbol(""),[Y]=window.OC?.config?.version?.split(".")??[],y=Number.parseInt(Y??"32")<32,e1=Symbol.for("NcFormBox:context");function t1(){return A(e1,{isInFormBox:!1,formBoxItemClass:void 0})}const a1={class:"button-vue__wrapper"},s1={class:"button-vue__icon"},n1={class:"button-vue__text"},o1=H({__name:"NcButton",props:{alignment:{default:"center"},ariaLabel:{default:void 0},disabled:{type:Boolean},download:{type:[String,Boolean],default:void 0},href:{default:void 0},pressed:{type:Boolean,default:void 0},size:{default:"normal"},target:{default:"_self"},text:{default:void 0},to:{default:void 0},type:{default:"button"},variant:{default:"secondary"},wide:{type:Boolean}},emits:["click","update:pressed"],setup(a,{emit:e}){const t=a,o=e,{formBoxItemClass:s}=t1(),r=A(X,null)!==null,L=n(()=>r&&t.to?"RouterLink":t.href?"a":"button"),V=n(()=>L.value==="button"&&typeof t.pressed=="boolean"),v=n(()=>t.pressed?"primary":t.pressed===!1&&t.variant==="primary"?"secondary":t.variant),h=n(()=>v.value.startsWith("tertiary")),C=n(()=>t.alignment.split("-")[0]),_=n(()=>t.alignment.includes("-")),w=A("NcPopover:trigger:attrs",()=>({}),!1),Z=n(()=>w()),x=n(()=>{if(L.value==="RouterLink")return{to:t.to,activeClass:"active"};if(L.value==="a")return{href:t.href||"#",target:t.target,rel:"nofollow noreferrer noopener",download:t.download||void 0};if(L.value==="button")return{...Z.value,"aria-pressed":t.pressed,type:t.type,disabled:t.disabled}});function B(l){V.value&&o("update:pressed",!t.pressed),o("click",l)}return(l,L1)=>(i(),z(S(L.value),I({class:["button-vue",[`button-vue--size-${l.size}`,{[`button-vue--${v.value}`]:v.value,"button-vue--tertiary":h.value,"button-vue--wide":l.wide,[`button-vue--${C.value}`]:C.value!=="center","button-vue--reverse":_.value,"button-vue--legacy":p(y)},p(s)]],"aria-label":l.ariaLabel},x.value,{onClick:B}),{default:N(()=>[u("span",a1,[u("span",s1,[c(l.$slots,"icon",{},void 0,!0)]),u("span",n1,[c(l.$slots,"default",{},()=>[$(M(l.text),1)],!0)])])]),_:3},16,["class","aria-label"]))}}),j1=b(o1,[["__scopeId","data-v-e3b1a10b"]]),E1=E().detectUser().setApp("@nextcloud/vue").build(),r1=["role"],l1={key:0,class:"notecard__heading"},i1={class:"notecard__text"},u1=H({__name:"NcNoteCard",props:{heading:{default:void 0},showAlert:{type:Boolean},text:{default:void 0},type:{default:"warning"}},setup(a){const e=a,t=n(()=>e.showAlert||e.type==="error"),o=n(()=>{switch(e.type){case"error":return R;case"success":return T;case"info":return q;default:return P}});return(s,r)=>(i(),d("div",{class:f(["notecard",{[`notecard--${s.type}`]:s.type,"notecard--legacy":p(y)}]),role:t.value?"alert":"note"},[c(s.$slots,"icon",{},()=>[O(p(K),{path:o.value,class:f(["notecard__icon",{"notecard__icon--heading":s.heading}]),inline:""},null,8,["path","class"])],!0),u("div",null,[s.heading?(i(),d("p",l1,M(s.heading),1)):j("",!0),c(s.$slots,"default",{},()=>[u("p",i1,M(s.text),1)],!0)])],10,r1))}}),F1=b(u1,[["__scopeId","data-v-7e4656f9"]]);export{b1 as A,V1 as B,m1 as C,F1 as N,K as a,x1 as b,j1 as c,H1 as d,f1 as e,_1 as f,A1 as g,Z1 as h,y as i,g1 as j,M1 as k,E1 as l,B1 as m,N1 as n,h1 as o,O1 as p,I1 as q,X as r,S1 as s,m as t,$1 as u,k1 as v,z1 as w,C1 as x,w1 as y,y1 as z}; -//# sourceMappingURL=NcNoteCard-CVhtNL04-hwuc093N.chunk.mjs.map diff --git a/dist/NcNoteCard-CVhtNL04-hwuc093N.chunk.mjs.map b/dist/NcNoteCard-CVhtNL04-hwuc093N.chunk.mjs.map deleted file mode 100644 index 121e8fa53536a..0000000000000 --- a/dist/NcNoteCard-CVhtNL04-hwuc093N.chunk.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"NcNoteCard-CVhtNL04-hwuc093N.chunk.mjs","sources":["../node_modules/@nextcloud/vue/dist/chunks/mdi-XFJRiRqJ.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcIconSvgWrapper-BvLanNaW.mjs","../node_modules/vue-router/dist/devtools-BLCumUwL.mjs","../node_modules/@nextcloud/vue/dist/chunks/legacy-DcjXBL_t.mjs","../node_modules/@nextcloud/vue/dist/chunks/useNcFormBox-DA9iwXWY.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcButton-Dc8V4Urj.mjs","../node_modules/@nextcloud/vue/dist/chunks/logger-D3RVzcfQ.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcNoteCard-CVhtNL04.mjs"],"sourcesContent":["var mdiAlert = \"M13 14H11V9H13M13 18H11V16H13M1 21H23L12 2L1 21Z\";\nvar mdiAlertCircleOutline = \"M11,15H13V17H11V15M11,7H13V13H11V7M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20Z\";\nvar mdiAlertDecagram = \"M23,12L20.56,9.22L20.9,5.54L17.29,4.72L15.4,1.54L12,3L8.6,1.54L6.71,4.72L3.1,5.53L3.44,9.21L1,12L3.44,14.78L3.1,18.47L6.71,19.29L8.6,22.47L12,21L15.4,22.46L17.29,19.28L20.9,18.46L20.56,14.78L23,12M13,17H11V15H13V17M13,13H11V7H13V13Z\";\nvar mdiArrowLeft = \"M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z\";\nvar mdiArrowRight = \"M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z\";\nvar mdiArrowTopRight = \"M5,17.59L15.59,7H9V5H19V15H17V8.41L6.41,19L5,17.59Z\";\nvar mdiCalendarBlank = \"M19,19H5V8H19M16,1V3H8V1H6V3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3H18V1\";\nvar mdiCheck = \"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z\";\nvar mdiCheckboxMarkedCircle = \"M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\";\nvar mdiChevronDown = \"M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z\";\nvar mdiChevronLeft = \"M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z\";\nvar mdiChevronRight = \"M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z\";\nvar mdiChevronUp = \"M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z\";\nvar mdiClock = \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M16.2,16.2L11,13V7H12.5V12.2L17,14.9L16.2,16.2Z\";\nvar mdiClose = \"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z\";\nvar mdiCloseCircleOutline = \"M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2C6.47,2 2,6.47 2,12C2,17.53 6.47,22 12,22C17.53,22 22,17.53 22,12C22,6.47 17.53,2 12,2M14.59,8L12,10.59L9.41,8L8,9.41L10.59,12L8,14.59L9.41,16L12,13.41L14.59,16L16,14.59L13.41,12L16,9.41L14.59,8Z\";\nvar mdiCog = \"M12,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z\";\nvar mdiCogOutline = \"M12,8A4,4 0 0,1 16,12A4,4 0 0,1 12,16A4,4 0 0,1 8,12A4,4 0 0,1 12,8M12,10A2,2 0 0,0 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12A2,2 0 0,0 12,10M10,22C9.75,22 9.54,21.82 9.5,21.58L9.13,18.93C8.5,18.68 7.96,18.34 7.44,17.94L4.95,18.95C4.73,19.03 4.46,18.95 4.34,18.73L2.34,15.27C2.21,15.05 2.27,14.78 2.46,14.63L4.57,12.97L4.5,12L4.57,11L2.46,9.37C2.27,9.22 2.21,8.95 2.34,8.73L4.34,5.27C4.46,5.05 4.73,4.96 4.95,5.05L7.44,6.05C7.96,5.66 8.5,5.32 9.13,5.07L9.5,2.42C9.54,2.18 9.75,2 10,2H14C14.25,2 14.46,2.18 14.5,2.42L14.87,5.07C15.5,5.32 16.04,5.66 16.56,6.05L19.05,5.05C19.27,4.96 19.54,5.05 19.66,5.27L21.66,8.73C21.79,8.95 21.73,9.22 21.54,9.37L19.43,11L19.5,12L19.43,13L21.54,14.63C21.73,14.78 21.79,15.05 21.66,15.27L19.66,18.73C19.54,18.95 19.27,19.04 19.05,18.95L16.56,17.95C16.04,18.34 15.5,18.68 14.87,18.93L14.5,21.58C14.46,21.82 14.25,22 14,22H10M11.25,4L10.88,6.61C9.68,6.86 8.62,7.5 7.85,8.39L5.44,7.35L4.69,8.65L6.8,10.2C6.4,11.37 6.4,12.64 6.8,13.8L4.68,15.36L5.43,16.66L7.86,15.62C8.63,16.5 9.68,17.14 10.87,17.38L11.24,20H12.76L13.13,17.39C14.32,17.14 15.37,16.5 16.14,15.62L18.57,16.66L19.32,15.36L17.2,13.81C17.6,12.64 17.6,11.37 17.2,10.2L19.31,8.65L18.56,7.35L16.15,8.39C15.38,7.5 14.32,6.86 13.12,6.62L12.75,4H11.25Z\";\nvar mdiContentCopy = \"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z\";\nvar mdiCreation = \"M19,1L17.74,3.75L15,5L17.74,6.26L19,9L20.25,6.26L23,5L20.25,3.75M9,4L6.5,9.5L1,12L6.5,14.5L9,20L11.5,14.5L17,12L11.5,9.5M19,15L17.74,17.74L15,19L17.74,20.25L19,23L20.25,20.25L23,19L20.25,17.74\";\nvar mdiDotsHorizontal = \"M16,12A2,2 0 0,1 18,10A2,2 0 0,1 20,12A2,2 0 0,1 18,14A2,2 0 0,1 16,12M10,12A2,2 0 0,1 12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12M4,12A2,2 0 0,1 6,10A2,2 0 0,1 8,12A2,2 0 0,1 6,14A2,2 0 0,1 4,12Z\";\nvar mdiEye = \"M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17M12,4.5C7,4.5 2.73,7.61 1,12C2.73,16.39 7,19.5 12,19.5C17,19.5 21.27,16.39 23,12C21.27,7.61 17,4.5 12,4.5Z\";\nvar mdiEyeOff = \"M11.83,9L15,12.16C15,12.11 15,12.05 15,12A3,3 0 0,0 12,9C11.94,9 11.89,9 11.83,9M7.53,9.8L9.08,11.35C9.03,11.56 9,11.77 9,12A3,3 0 0,0 12,15C12.22,15 12.44,14.97 12.65,14.92L14.2,16.47C13.53,16.8 12.79,17 12,17A5,5 0 0,1 7,12C7,11.21 7.2,10.47 7.53,9.8M2,4.27L4.28,6.55L4.73,7C3.08,8.3 1.78,10 1,12C2.73,16.39 7,19.5 12,19.5C13.55,19.5 15.03,19.2 16.38,18.66L16.81,19.08L19.73,22L21,20.73L3.27,3M12,7A5,5 0 0,1 17,12C17,12.64 16.87,13.26 16.64,13.82L19.57,16.75C21.07,15.5 22.27,13.86 23,12C21.27,7.61 17,4.5 12,4.5C10.6,4.5 9.26,4.75 8,5.2L10.17,7.35C10.74,7.13 11.35,7 12,7Z\";\nvar mdiInformation = \"M13,9H11V7H13M13,17H11V11H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\";\nvar mdiMenu = \"M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z\";\nvar mdiMenuOpen = \"M21,15.61L19.59,17L14.58,12L19.59,7L21,8.39L17.44,12L21,15.61M3,6H16V8H3V6M3,13V11H13V13H3M3,18V16H16V18H3Z\";\nvar mdiOpenInNew = \"M14,3V5H17.59L7.76,14.83L9.17,16.24L19,6.41V10H21V3M19,19H5V5H12V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V12H19V19Z\";\nvar mdiPause = \"M14,19H18V5H14M6,19H10V5H6V19Z\";\nvar mdiPlay = \"M8,5.14V19.14L19,12.14L8,5.14Z\";\nvar mdiToggleSwitch = \"M17,7H7A5,5 0 0,0 2,12A5,5 0 0,0 7,17H17A5,5 0 0,0 22,12A5,5 0 0,0 17,7M17,15A3,3 0 0,1 14,12A3,3 0 0,1 17,9A3,3 0 0,1 20,12A3,3 0 0,1 17,15Z\";\nvar mdiToggleSwitchOff = \"M17,7H7A5,5 0 0,0 2,12A5,5 0 0,0 7,17H17A5,5 0 0,0 22,12A5,5 0 0,0 17,7M7,15A3,3 0 0,1 4,12A3,3 0 0,1 7,9A3,3 0 0,1 10,12A3,3 0 0,1 7,15Z\";\nvar mdiUndo = \"M12.5,8C9.85,8 7.45,9 5.6,10.6L2,7V16H11L7.38,12.38C8.77,11.22 10.54,10.5 12.5,10.5C16.04,10.5 19.05,12.81 20.1,16L22.47,15.22C21.08,11.03 17.15,8 12.5,8Z\";\nexport {\n mdiCog as A,\n mdiCogOutline as B,\n mdiPause as C,\n mdiPlay as D,\n mdiMenuOpen as E,\n mdiMenu as F,\n mdiUndo as a,\n mdiClose as b,\n mdiChevronRight as c,\n mdiCheck as d,\n mdiContentCopy as e,\n mdiAlertCircleOutline as f,\n mdiAlert as g,\n mdiInformation as h,\n mdiCheckboxMarkedCircle as i,\n mdiAlertDecagram as j,\n mdiToggleSwitch as k,\n mdiToggleSwitchOff as l,\n mdiArrowRight as m,\n mdiCreation as n,\n mdiEyeOff as o,\n mdiEye as p,\n mdiOpenInNew as q,\n mdiArrowTopRight as r,\n mdiCloseCircleOutline as s,\n mdiArrowLeft as t,\n mdiDotsHorizontal as u,\n mdiChevronUp as v,\n mdiChevronDown as w,\n mdiChevronLeft as x,\n mdiClock as y,\n mdiCalendarBlank as z\n};\n//# sourceMappingURL=mdi-XFJRiRqJ.mjs.map\n","import '../assets/NcIconSvgWrapper-N3OwSN9O.css';\nimport { defineComponent, useCssVars, computed, warn, createElementBlock, openBlock, normalizeClass, createElementVNode } from \"vue\";\nimport DOMPurify from \"dompurify\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2 = {\n key: 0,\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\"\n};\nconst _hoisted_3 = [\"d\"];\nconst _hoisted_4 = [\"innerHTML\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcIconSvgWrapper\",\n props: {\n directional: { type: Boolean },\n inline: { type: Boolean },\n svg: { default: \"\" },\n name: { default: void 0 },\n path: { default: \"\" },\n size: { default: 20 }\n },\n setup(__props) {\n useCssVars((_ctx) => ({\n \"fb515064\": iconSize.value\n }));\n const props = __props;\n const iconSize = computed(() => typeof props.size === \"number\" ? `${props.size}px` : props.size);\n const cleanSvg = computed(() => {\n if (!props.svg || props.path) {\n return;\n }\n const svg = DOMPurify.sanitize(props.svg);\n const svgDocument = new DOMParser().parseFromString(svg, \"image/svg+xml\");\n if (svgDocument.querySelector(\"parsererror\")) {\n warn(\"SVG is not valid\");\n return \"\";\n }\n if (svgDocument.documentElement.id) {\n svgDocument.documentElement.removeAttribute(\"id\");\n }\n return svgDocument.documentElement.outerHTML;\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"span\", {\n \"aria-hidden\": _ctx.name ? void 0 : \"true\",\n \"aria-label\": _ctx.name || void 0,\n class: normalizeClass([\"icon-vue\", {\n \"icon-vue--directional\": _ctx.directional,\n \"icon-vue--inline\": _ctx.inline\n }]),\n role: \"img\"\n }, [\n !cleanSvg.value ? (openBlock(), createElementBlock(\"svg\", _hoisted_2, [\n createElementVNode(\"path\", { d: _ctx.path }, null, 8, _hoisted_3)\n ])) : (openBlock(), createElementBlock(\"span\", {\n key: 1,\n innerHTML: cleanSvg.value\n }, null, 8, _hoisted_4))\n ], 10, _hoisted_1);\n };\n }\n});\nconst NcIconSvgWrapper = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-aaedb1c3\"]]);\nexport {\n NcIconSvgWrapper as N\n};\n//# sourceMappingURL=NcIconSvgWrapper-BvLanNaW.mjs.map\n","/*!\n * vue-router v4.6.3\n * (c) 2025 Eduardo San Martin Morote\n * @license MIT\n */\nimport { getCurrentInstance, inject, onActivated, onDeactivated, onUnmounted, watch } from \"vue\";\nimport { setupDevtoolsPlugin } from \"@vue/devtools-api\";\n\n//#region src/utils/env.ts\nconst isBrowser = typeof document !== \"undefined\";\n\n//#endregion\n//#region src/utils/index.ts\n/**\n* Identity function that returns the value as is.\n*\n* @param v - the value to return\n*\n* @internal\n*/\nconst identityFn = (v) => v;\n/**\n* Allows differentiating lazy components from functional components and vue-class-component\n* @internal\n*\n* @param component\n*/\nfunction isRouteComponent(component) {\n\treturn typeof component === \"object\" || \"displayName\" in component || \"props\" in component || \"__vccOpts\" in component;\n}\nfunction isESModule(obj) {\n\treturn obj.__esModule || obj[Symbol.toStringTag] === \"Module\" || obj.default && isRouteComponent(obj.default);\n}\nconst assign = Object.assign;\nfunction applyToParams(fn, params) {\n\tconst newParams = {};\n\tfor (const key in params) {\n\t\tconst value = params[key];\n\t\tnewParams[key] = isArray(value) ? value.map(fn) : fn(value);\n\t}\n\treturn newParams;\n}\nconst noop = () => {};\n/**\n* Typesafe alternative to Array.isArray\n* https://github.com/microsoft/TypeScript/pull/48228\n*/\nconst isArray = Array.isArray;\nfunction mergeOptions(defaults, partialOptions) {\n\tconst options = {};\n\tfor (const key in defaults) options[key] = key in partialOptions ? partialOptions[key] : defaults[key];\n\treturn options;\n}\n\n//#endregion\n//#region src/warning.ts\nfunction warn$1(msg) {\n\tconst args = Array.from(arguments).slice(1);\n\tconsole.warn.apply(console, [\"[Vue Router warn]: \" + msg].concat(args));\n}\n\n//#endregion\n//#region src/encoding.ts\n/**\n* Encoding Rules (␣ = Space)\n* - Path: ␣ \" < > # ? { }\n* - Query: ␣ \" < > # & =\n* - Hash: ␣ \" < > `\n*\n* On top of that, the RFC3986 (https://tools.ietf.org/html/rfc3986#section-2.2)\n* defines some extra characters to be encoded. Most browsers do not encode them\n* in encodeURI https://github.com/whatwg/url/issues/369, so it may be safer to\n* also encode `!'()*`. Leaving un-encoded only ASCII alphanumeric(`a-zA-Z0-9`)\n* plus `-._~`. This extra safety should be applied to query by patching the\n* string returned by encodeURIComponent encodeURI also encodes `[\\]^`. `\\`\n* should be encoded to avoid ambiguity. Browsers (IE, FF, C) transform a `\\`\n* into a `/` if directly typed in. The _backtick_ (`````) should also be\n* encoded everywhere because some browsers like FF encode it when directly\n* written while others don't. Safari and IE don't encode ``\"<>{}``` in hash.\n*/\nconst HASH_RE = /#/g;\nconst AMPERSAND_RE = /&/g;\nconst SLASH_RE = /\\//g;\nconst EQUAL_RE = /=/g;\nconst IM_RE = /\\?/g;\nconst PLUS_RE = /\\+/g;\n/**\n* NOTE: It's not clear to me if we should encode the + symbol in queries, it\n* seems to be less flexible than not doing so and I can't find out the legacy\n* systems requiring this for regular requests like text/html. In the standard,\n* the encoding of the plus character is only mentioned for\n* application/x-www-form-urlencoded\n* (https://url.spec.whatwg.org/#urlencoded-parsing) and most browsers seems lo\n* leave the plus character as is in queries. To be more flexible, we allow the\n* plus character on the query, but it can also be manually encoded by the user.\n*\n* Resources:\n* - https://url.spec.whatwg.org/#urlencoded-parsing\n* - https://stackoverflow.com/questions/1634271/url-encoding-the-space-character-or-20\n*/\nconst ENC_BRACKET_OPEN_RE = /%5B/g;\nconst ENC_BRACKET_CLOSE_RE = /%5D/g;\nconst ENC_CARET_RE = /%5E/g;\nconst ENC_BACKTICK_RE = /%60/g;\nconst ENC_CURLY_OPEN_RE = /%7B/g;\nconst ENC_PIPE_RE = /%7C/g;\nconst ENC_CURLY_CLOSE_RE = /%7D/g;\nconst ENC_SPACE_RE = /%20/g;\n/**\n* Encode characters that need to be encoded on the path, search and hash\n* sections of the URL.\n*\n* @internal\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction commonEncode(text) {\n\treturn text == null ? \"\" : encodeURI(\"\" + text).replace(ENC_PIPE_RE, \"|\").replace(ENC_BRACKET_OPEN_RE, \"[\").replace(ENC_BRACKET_CLOSE_RE, \"]\");\n}\n/**\n* Encode characters that need to be encoded on the hash section of the URL.\n*\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction encodeHash(text) {\n\treturn commonEncode(text).replace(ENC_CURLY_OPEN_RE, \"{\").replace(ENC_CURLY_CLOSE_RE, \"}\").replace(ENC_CARET_RE, \"^\");\n}\n/**\n* Encode characters that need to be encoded query values on the query\n* section of the URL.\n*\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction encodeQueryValue(text) {\n\treturn commonEncode(text).replace(PLUS_RE, \"%2B\").replace(ENC_SPACE_RE, \"+\").replace(HASH_RE, \"%23\").replace(AMPERSAND_RE, \"%26\").replace(ENC_BACKTICK_RE, \"`\").replace(ENC_CURLY_OPEN_RE, \"{\").replace(ENC_CURLY_CLOSE_RE, \"}\").replace(ENC_CARET_RE, \"^\");\n}\n/**\n* Like `encodeQueryValue` but also encodes the `=` character.\n*\n* @param text - string to encode\n*/\nfunction encodeQueryKey(text) {\n\treturn encodeQueryValue(text).replace(EQUAL_RE, \"%3D\");\n}\n/**\n* Encode characters that need to be encoded on the path section of the URL.\n*\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction encodePath(text) {\n\treturn commonEncode(text).replace(HASH_RE, \"%23\").replace(IM_RE, \"%3F\");\n}\n/**\n* Encode characters that need to be encoded on the path section of the URL as a\n* param. This function encodes everything {@link encodePath} does plus the\n* slash (`/`) character. If `text` is `null` or `undefined`, returns an empty\n* string instead.\n*\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction encodeParam(text) {\n\treturn encodePath(text).replace(SLASH_RE, \"%2F\");\n}\nfunction decode(text) {\n\tif (text == null) return null;\n\ttry {\n\t\treturn decodeURIComponent(\"\" + text);\n\t} catch (err) {\n\t\tprocess.env.NODE_ENV !== \"production\" && warn$1(`Error decoding \"${text}\". Using original value`);\n\t}\n\treturn \"\" + text;\n}\n\n//#endregion\n//#region src/location.ts\nconst TRAILING_SLASH_RE = /\\/$/;\nconst removeTrailingSlash = (path) => path.replace(TRAILING_SLASH_RE, \"\");\n/**\n* Transforms a URI into a normalized history location\n*\n* @param parseQuery\n* @param location - URI to normalize\n* @param currentLocation - current absolute location. Allows resolving relative\n* paths. Must start with `/`. Defaults to `/`\n* @returns a normalized history location\n*/\nfunction parseURL(parseQuery$1, location, currentLocation = \"/\") {\n\tlet path, query = {}, searchString = \"\", hash = \"\";\n\tconst hashPos = location.indexOf(\"#\");\n\tlet searchPos = location.indexOf(\"?\");\n\tsearchPos = hashPos >= 0 && searchPos > hashPos ? -1 : searchPos;\n\tif (searchPos >= 0) {\n\t\tpath = location.slice(0, searchPos);\n\t\tsearchString = location.slice(searchPos, hashPos > 0 ? hashPos : location.length);\n\t\tquery = parseQuery$1(searchString.slice(1));\n\t}\n\tif (hashPos >= 0) {\n\t\tpath = path || location.slice(0, hashPos);\n\t\thash = location.slice(hashPos, location.length);\n\t}\n\tpath = resolveRelativePath(path != null ? path : location, currentLocation);\n\treturn {\n\t\tfullPath: path + searchString + hash,\n\t\tpath,\n\t\tquery,\n\t\thash: decode(hash)\n\t};\n}\nfunction NEW_stringifyURL(stringifyQuery$1, path, query, hash = \"\") {\n\tconst searchText = stringifyQuery$1(query);\n\treturn path + (searchText && \"?\") + searchText + encodeHash(hash);\n}\n/**\n* Stringifies a URL object\n*\n* @param stringifyQuery\n* @param location\n*/\nfunction stringifyURL(stringifyQuery$1, location) {\n\tconst query = location.query ? stringifyQuery$1(location.query) : \"\";\n\treturn location.path + (query && \"?\") + query + (location.hash || \"\");\n}\n/**\n* Strips off the base from the beginning of a location.pathname in a non-case-sensitive way.\n*\n* @param pathname - location.pathname\n* @param base - base to strip off\n*/\nfunction stripBase(pathname, base) {\n\tif (!base || !pathname.toLowerCase().startsWith(base.toLowerCase())) return pathname;\n\treturn pathname.slice(base.length) || \"/\";\n}\n/**\n* Checks if two RouteLocation are equal. This means that both locations are\n* pointing towards the same {@link RouteRecord} and that all `params`, `query`\n* parameters and `hash` are the same\n*\n* @param stringifyQuery - A function that takes a query object of type LocationQueryRaw and returns a string representation of it.\n* @param a - first {@link RouteLocation}\n* @param b - second {@link RouteLocation}\n*/\nfunction isSameRouteLocation(stringifyQuery$1, a, b) {\n\tconst aLastIndex = a.matched.length - 1;\n\tconst bLastIndex = b.matched.length - 1;\n\treturn aLastIndex > -1 && aLastIndex === bLastIndex && isSameRouteRecord(a.matched[aLastIndex], b.matched[bLastIndex]) && isSameRouteLocationParams(a.params, b.params) && stringifyQuery$1(a.query) === stringifyQuery$1(b.query) && a.hash === b.hash;\n}\n/**\n* Check if two `RouteRecords` are equal. Takes into account aliases: they are\n* considered equal to the `RouteRecord` they are aliasing.\n*\n* @param a - first {@link RouteRecord}\n* @param b - second {@link RouteRecord}\n*/\nfunction isSameRouteRecord(a, b) {\n\treturn (a.aliasOf || a) === (b.aliasOf || b);\n}\nfunction isSameRouteLocationParams(a, b) {\n\tif (Object.keys(a).length !== Object.keys(b).length) return false;\n\tfor (const key in a) if (!isSameRouteLocationParamsValue(a[key], b[key])) return false;\n\treturn true;\n}\nfunction isSameRouteLocationParamsValue(a, b) {\n\treturn isArray(a) ? isEquivalentArray(a, b) : isArray(b) ? isEquivalentArray(b, a) : a === b;\n}\n/**\n* Check if two arrays are the same or if an array with one single entry is the\n* same as another primitive value. Used to check query and parameters\n*\n* @param a - array of values\n* @param b - array of values or a single value\n*/\nfunction isEquivalentArray(a, b) {\n\treturn isArray(b) ? a.length === b.length && a.every((value, i) => value === b[i]) : a.length === 1 && a[0] === b;\n}\n/**\n* Resolves a relative path that starts with `.`.\n*\n* @param to - path location we are resolving\n* @param from - currentLocation.path, should start with `/`\n*/\nfunction resolveRelativePath(to, from) {\n\tif (to.startsWith(\"/\")) return to;\n\tif (process.env.NODE_ENV !== \"production\" && !from.startsWith(\"/\")) {\n\t\twarn$1(`Cannot resolve a relative location without an absolute path. Trying to resolve \"${to}\" from \"${from}\". It should look like \"/${from}\".`);\n\t\treturn to;\n\t}\n\tif (!to) return from;\n\tconst fromSegments = from.split(\"/\");\n\tconst toSegments = to.split(\"/\");\n\tconst lastToSegment = toSegments[toSegments.length - 1];\n\tif (lastToSegment === \"..\" || lastToSegment === \".\") toSegments.push(\"\");\n\tlet position = fromSegments.length - 1;\n\tlet toPosition;\n\tlet segment;\n\tfor (toPosition = 0; toPosition < toSegments.length; toPosition++) {\n\t\tsegment = toSegments[toPosition];\n\t\tif (segment === \".\") continue;\n\t\tif (segment === \"..\") {\n\t\t\tif (position > 1) position--;\n\t\t} else break;\n\t}\n\treturn fromSegments.slice(0, position).join(\"/\") + \"/\" + toSegments.slice(toPosition).join(\"/\");\n}\n/**\n* Initial route location where the router is. Can be used in navigation guards\n* to differentiate the initial navigation.\n*\n* @example\n* ```js\n* import { START_LOCATION } from 'vue-router'\n*\n* router.beforeEach((to, from) => {\n* if (from === START_LOCATION) {\n* // initial navigation\n* }\n* })\n* ```\n*/\nconst START_LOCATION_NORMALIZED = {\n\tpath: \"/\",\n\tname: void 0,\n\tparams: {},\n\tquery: {},\n\thash: \"\",\n\tfullPath: \"/\",\n\tmatched: [],\n\tmeta: {},\n\tredirectedFrom: void 0\n};\n\n//#endregion\n//#region src/history/common.ts\nlet NavigationType = /* @__PURE__ */ function(NavigationType$1) {\n\tNavigationType$1[\"pop\"] = \"pop\";\n\tNavigationType$1[\"push\"] = \"push\";\n\treturn NavigationType$1;\n}({});\nlet NavigationDirection = /* @__PURE__ */ function(NavigationDirection$1) {\n\tNavigationDirection$1[\"back\"] = \"back\";\n\tNavigationDirection$1[\"forward\"] = \"forward\";\n\tNavigationDirection$1[\"unknown\"] = \"\";\n\treturn NavigationDirection$1;\n}({});\n/**\n* Starting location for Histories\n*/\nconst START = \"\";\n/**\n* Normalizes a base by removing any trailing slash and reading the base tag if\n* present.\n*\n* @param base - base to normalize\n*/\nfunction normalizeBase(base) {\n\tif (!base) if (isBrowser) {\n\t\tconst baseEl = document.querySelector(\"base\");\n\t\tbase = baseEl && baseEl.getAttribute(\"href\") || \"/\";\n\t\tbase = base.replace(/^\\w+:\\/\\/[^\\/]+/, \"\");\n\t} else base = \"/\";\n\tif (base[0] !== \"/\" && base[0] !== \"#\") base = \"/\" + base;\n\treturn removeTrailingSlash(base);\n}\nconst BEFORE_HASH_RE = /^[^#]+#/;\nfunction createHref(base, location) {\n\treturn base.replace(BEFORE_HASH_RE, \"#\") + location;\n}\n\n//#endregion\n//#region src/scrollBehavior.ts\nfunction getElementPosition(el, offset) {\n\tconst docRect = document.documentElement.getBoundingClientRect();\n\tconst elRect = el.getBoundingClientRect();\n\treturn {\n\t\tbehavior: offset.behavior,\n\t\tleft: elRect.left - docRect.left - (offset.left || 0),\n\t\ttop: elRect.top - docRect.top - (offset.top || 0)\n\t};\n}\nconst computeScrollPosition = () => ({\n\tleft: window.scrollX,\n\ttop: window.scrollY\n});\nfunction scrollToPosition(position) {\n\tlet scrollToOptions;\n\tif (\"el\" in position) {\n\t\tconst positionEl = position.el;\n\t\tconst isIdSelector = typeof positionEl === \"string\" && positionEl.startsWith(\"#\");\n\t\t/**\n\t\t* `id`s can accept pretty much any characters, including CSS combinators\n\t\t* like `>` or `~`. It's still possible to retrieve elements using\n\t\t* `document.getElementById('~')` but it needs to be escaped when using\n\t\t* `document.querySelector('#\\\\~')` for it to be valid. The only\n\t\t* requirements for `id`s are them to be unique on the page and to not be\n\t\t* empty (`id=\"\"`). Because of that, when passing an id selector, it should\n\t\t* be properly escaped for it to work with `querySelector`. We could check\n\t\t* for the id selector to be simple (no CSS combinators `+ >~`) but that\n\t\t* would make things inconsistent since they are valid characters for an\n\t\t* `id` but would need to be escaped when using `querySelector`, breaking\n\t\t* their usage and ending up in no selector returned. Selectors need to be\n\t\t* escaped:\n\t\t*\n\t\t* - `#1-thing` becomes `#\\31 -thing`\n\t\t* - `#with~symbols` becomes `#with\\\\~symbols`\n\t\t*\n\t\t* - More information about the topic can be found at\n\t\t* https://mathiasbynens.be/notes/html5-id-class.\n\t\t* - Practical example: https://mathiasbynens.be/demo/html5-id\n\t\t*/\n\t\tif (process.env.NODE_ENV !== \"production\" && typeof position.el === \"string\") {\n\t\t\tif (!isIdSelector || !document.getElementById(position.el.slice(1))) try {\n\t\t\t\tconst foundEl = document.querySelector(position.el);\n\t\t\t\tif (isIdSelector && foundEl) {\n\t\t\t\t\twarn$1(`The selector \"${position.el}\" should be passed as \"el: document.querySelector('${position.el}')\" because it starts with \"#\".`);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} catch (err) {\n\t\t\t\twarn$1(`The selector \"${position.el}\" is invalid. If you are using an id selector, make sure to escape it. You can find more information about escaping characters in selectors at https://mathiasbynens.be/notes/css-escapes or use CSS.escape (https://developer.mozilla.org/en-US/docs/Web/API/CSS/escape).`);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tconst el = typeof positionEl === \"string\" ? isIdSelector ? document.getElementById(positionEl.slice(1)) : document.querySelector(positionEl) : positionEl;\n\t\tif (!el) {\n\t\t\tprocess.env.NODE_ENV !== \"production\" && warn$1(`Couldn't find element using selector \"${position.el}\" returned by scrollBehavior.`);\n\t\t\treturn;\n\t\t}\n\t\tscrollToOptions = getElementPosition(el, position);\n\t} else scrollToOptions = position;\n\tif (\"scrollBehavior\" in document.documentElement.style) window.scrollTo(scrollToOptions);\n\telse window.scrollTo(scrollToOptions.left != null ? scrollToOptions.left : window.scrollX, scrollToOptions.top != null ? scrollToOptions.top : window.scrollY);\n}\nfunction getScrollKey(path, delta) {\n\treturn (history.state ? history.state.position - delta : -1) + path;\n}\nconst scrollPositions = /* @__PURE__ */ new Map();\nfunction saveScrollPosition(key, scrollPosition) {\n\tscrollPositions.set(key, scrollPosition);\n}\nfunction getSavedScrollPosition(key) {\n\tconst scroll = scrollPositions.get(key);\n\tscrollPositions.delete(key);\n\treturn scroll;\n}\n/**\n* ScrollBehavior instance used by the router to compute and restore the scroll\n* position when navigating.\n*/\n\n//#endregion\n//#region src/types/typeGuards.ts\nfunction isRouteLocation(route) {\n\treturn typeof route === \"string\" || route && typeof route === \"object\";\n}\nfunction isRouteName(name) {\n\treturn typeof name === \"string\" || typeof name === \"symbol\";\n}\n\n//#endregion\n//#region src/errors.ts\n/**\n* Flags so we can combine them when checking for multiple errors. This is the internal version of\n* {@link NavigationFailureType}.\n*\n* @internal\n*/\nlet ErrorTypes = /* @__PURE__ */ function(ErrorTypes$1) {\n\tErrorTypes$1[ErrorTypes$1[\"MATCHER_NOT_FOUND\"] = 1] = \"MATCHER_NOT_FOUND\";\n\tErrorTypes$1[ErrorTypes$1[\"NAVIGATION_GUARD_REDIRECT\"] = 2] = \"NAVIGATION_GUARD_REDIRECT\";\n\tErrorTypes$1[ErrorTypes$1[\"NAVIGATION_ABORTED\"] = 4] = \"NAVIGATION_ABORTED\";\n\tErrorTypes$1[ErrorTypes$1[\"NAVIGATION_CANCELLED\"] = 8] = \"NAVIGATION_CANCELLED\";\n\tErrorTypes$1[ErrorTypes$1[\"NAVIGATION_DUPLICATED\"] = 16] = \"NAVIGATION_DUPLICATED\";\n\treturn ErrorTypes$1;\n}({});\nconst NavigationFailureSymbol = Symbol(process.env.NODE_ENV !== \"production\" ? \"navigation failure\" : \"\");\n/**\n* Enumeration with all possible types for navigation failures. Can be passed to\n* {@link isNavigationFailure} to check for specific failures.\n*/\nlet NavigationFailureType = /* @__PURE__ */ function(NavigationFailureType$1) {\n\t/**\n\t* An aborted navigation is a navigation that failed because a navigation\n\t* guard returned `false` or called `next(false)`\n\t*/\n\tNavigationFailureType$1[NavigationFailureType$1[\"aborted\"] = 4] = \"aborted\";\n\t/**\n\t* A cancelled navigation is a navigation that failed because a more recent\n\t* navigation finished started (not necessarily finished).\n\t*/\n\tNavigationFailureType$1[NavigationFailureType$1[\"cancelled\"] = 8] = \"cancelled\";\n\t/**\n\t* A duplicated navigation is a navigation that failed because it was\n\t* initiated while already being at the exact same location.\n\t*/\n\tNavigationFailureType$1[NavigationFailureType$1[\"duplicated\"] = 16] = \"duplicated\";\n\treturn NavigationFailureType$1;\n}({});\nconst ErrorTypeMessages = {\n\t[ErrorTypes.MATCHER_NOT_FOUND]({ location, currentLocation }) {\n\t\treturn `No match for\\n ${JSON.stringify(location)}${currentLocation ? \"\\nwhile being at\\n\" + JSON.stringify(currentLocation) : \"\"}`;\n\t},\n\t[ErrorTypes.NAVIGATION_GUARD_REDIRECT]({ from, to }) {\n\t\treturn `Redirected from \"${from.fullPath}\" to \"${stringifyRoute(to)}\" via a navigation guard.`;\n\t},\n\t[ErrorTypes.NAVIGATION_ABORTED]({ from, to }) {\n\t\treturn `Navigation aborted from \"${from.fullPath}\" to \"${to.fullPath}\" via a navigation guard.`;\n\t},\n\t[ErrorTypes.NAVIGATION_CANCELLED]({ from, to }) {\n\t\treturn `Navigation cancelled from \"${from.fullPath}\" to \"${to.fullPath}\" with a new navigation.`;\n\t},\n\t[ErrorTypes.NAVIGATION_DUPLICATED]({ from, to }) {\n\t\treturn `Avoided redundant navigation to current location: \"${from.fullPath}\".`;\n\t}\n};\n/**\n* Creates a typed NavigationFailure object.\n* @internal\n* @param type - NavigationFailureType\n* @param params - { from, to }\n*/\nfunction createRouterError(type, params) {\n\tif (process.env.NODE_ENV !== \"production\" || false) return assign(new Error(ErrorTypeMessages[type](params)), {\n\t\ttype,\n\t\t[NavigationFailureSymbol]: true\n\t}, params);\n\telse return assign(/* @__PURE__ */ new Error(), {\n\t\ttype,\n\t\t[NavigationFailureSymbol]: true\n\t}, params);\n}\nfunction isNavigationFailure(error, type) {\n\treturn error instanceof Error && NavigationFailureSymbol in error && (type == null || !!(error.type & type));\n}\nconst propertiesToLog = [\n\t\"params\",\n\t\"query\",\n\t\"hash\"\n];\nfunction stringifyRoute(to) {\n\tif (typeof to === \"string\") return to;\n\tif (to.path != null) return to.path;\n\tconst location = {};\n\tfor (const key of propertiesToLog) if (key in to) location[key] = to[key];\n\treturn JSON.stringify(location, null, 2);\n}\n\n//#endregion\n//#region src/query.ts\n/**\n* Transforms a queryString into a {@link LocationQuery} object. Accept both, a\n* version with the leading `?` and without Should work as URLSearchParams\n\n* @internal\n*\n* @param search - search string to parse\n* @returns a query object\n*/\nfunction parseQuery(search) {\n\tconst query = {};\n\tif (search === \"\" || search === \"?\") return query;\n\tconst searchParams = (search[0] === \"?\" ? search.slice(1) : search).split(\"&\");\n\tfor (let i = 0; i < searchParams.length; ++i) {\n\t\tconst searchParam = searchParams[i].replace(PLUS_RE, \" \");\n\t\tconst eqPos = searchParam.indexOf(\"=\");\n\t\tconst key = decode(eqPos < 0 ? searchParam : searchParam.slice(0, eqPos));\n\t\tconst value = eqPos < 0 ? null : decode(searchParam.slice(eqPos + 1));\n\t\tif (key in query) {\n\t\t\tlet currentValue = query[key];\n\t\t\tif (!isArray(currentValue)) currentValue = query[key] = [currentValue];\n\t\t\tcurrentValue.push(value);\n\t\t} else query[key] = value;\n\t}\n\treturn query;\n}\n/**\n* Stringifies a {@link LocationQueryRaw} object. Like `URLSearchParams`, it\n* doesn't prepend a `?`\n*\n* @internal\n*\n* @param query - query object to stringify\n* @returns string version of the query without the leading `?`\n*/\nfunction stringifyQuery(query) {\n\tlet search = \"\";\n\tfor (let key in query) {\n\t\tconst value = query[key];\n\t\tkey = encodeQueryKey(key);\n\t\tif (value == null) {\n\t\t\tif (value !== void 0) search += (search.length ? \"&\" : \"\") + key;\n\t\t\tcontinue;\n\t\t}\n\t\t(isArray(value) ? value.map((v) => v && encodeQueryValue(v)) : [value && encodeQueryValue(value)]).forEach((value$1) => {\n\t\t\tif (value$1 !== void 0) {\n\t\t\t\tsearch += (search.length ? \"&\" : \"\") + key;\n\t\t\t\tif (value$1 != null) search += \"=\" + value$1;\n\t\t\t}\n\t\t});\n\t}\n\treturn search;\n}\n/**\n* Transforms a {@link LocationQueryRaw} into a {@link LocationQuery} by casting\n* numbers into strings, removing keys with an undefined value and replacing\n* undefined with null in arrays\n*\n* @param query - query object to normalize\n* @returns a normalized query object\n*/\nfunction normalizeQuery(query) {\n\tconst normalizedQuery = {};\n\tfor (const key in query) {\n\t\tconst value = query[key];\n\t\tif (value !== void 0) normalizedQuery[key] = isArray(value) ? value.map((v) => v == null ? null : \"\" + v) : value == null ? value : \"\" + value;\n\t}\n\treturn normalizedQuery;\n}\n\n//#endregion\n//#region src/injectionSymbols.ts\n/**\n* RouteRecord being rendered by the closest ancestor Router View. Used for\n* `onBeforeRouteUpdate` and `onBeforeRouteLeave`. rvlm stands for Router View\n* Location Matched\n*\n* @internal\n*/\nconst matchedRouteKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"router view location matched\" : \"\");\n/**\n* Allows overriding the router view depth to control which component in\n* `matched` is rendered. rvd stands for Router View Depth\n*\n* @internal\n*/\nconst viewDepthKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"router view depth\" : \"\");\n/**\n* Allows overriding the router instance returned by `useRouter` in tests. r\n* stands for router\n*\n* @internal\n*/\nconst routerKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"router\" : \"\");\n/**\n* Allows overriding the current route returned by `useRoute` in tests. rl\n* stands for route location\n*\n* @internal\n*/\nconst routeLocationKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"route location\" : \"\");\n/**\n* Allows overriding the current route used by router-view. Internally this is\n* used when the `route` prop is passed.\n*\n* @internal\n*/\nconst routerViewLocationKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"router view location\" : \"\");\n\n//#endregion\n//#region src/utils/callbacks.ts\n/**\n* Create a list of callbacks that can be reset. Used to create before and after navigation guards list\n*/\nfunction useCallbacks() {\n\tlet handlers = [];\n\tfunction add(handler) {\n\t\thandlers.push(handler);\n\t\treturn () => {\n\t\t\tconst i = handlers.indexOf(handler);\n\t\t\tif (i > -1) handlers.splice(i, 1);\n\t\t};\n\t}\n\tfunction reset() {\n\t\thandlers = [];\n\t}\n\treturn {\n\t\tadd,\n\t\tlist: () => handlers.slice(),\n\t\treset\n\t};\n}\n\n//#endregion\n//#region src/navigationGuards.ts\nfunction registerGuard(record, name, guard) {\n\tconst removeFromList = () => {\n\t\trecord[name].delete(guard);\n\t};\n\tonUnmounted(removeFromList);\n\tonDeactivated(removeFromList);\n\tonActivated(() => {\n\t\trecord[name].add(guard);\n\t});\n\trecord[name].add(guard);\n}\n/**\n* Add a navigation guard that triggers whenever the component for the current\n* location is about to be left. Similar to {@link beforeRouteLeave} but can be\n* used in any component. The guard is removed when the component is unmounted.\n*\n* @param leaveGuard - {@link NavigationGuard}\n*/\nfunction onBeforeRouteLeave(leaveGuard) {\n\tif (process.env.NODE_ENV !== \"production\" && !getCurrentInstance()) {\n\t\twarn$1(\"getCurrentInstance() returned null. onBeforeRouteLeave() must be called at the top of a setup function\");\n\t\treturn;\n\t}\n\tconst activeRecord = inject(matchedRouteKey, {}).value;\n\tif (!activeRecord) {\n\t\tprocess.env.NODE_ENV !== \"production\" && warn$1(\"No active route record was found when calling `onBeforeRouteLeave()`. Make sure you call this function inside a component child of <router-view>. Maybe you called it inside of App.vue?\");\n\t\treturn;\n\t}\n\tregisterGuard(activeRecord, \"leaveGuards\", leaveGuard);\n}\n/**\n* Add a navigation guard that triggers whenever the current location is about\n* to be updated. Similar to {@link beforeRouteUpdate} but can be used in any\n* component. The guard is removed when the component is unmounted.\n*\n* @param updateGuard - {@link NavigationGuard}\n*/\nfunction onBeforeRouteUpdate(updateGuard) {\n\tif (process.env.NODE_ENV !== \"production\" && !getCurrentInstance()) {\n\t\twarn$1(\"getCurrentInstance() returned null. onBeforeRouteUpdate() must be called at the top of a setup function\");\n\t\treturn;\n\t}\n\tconst activeRecord = inject(matchedRouteKey, {}).value;\n\tif (!activeRecord) {\n\t\tprocess.env.NODE_ENV !== \"production\" && warn$1(\"No active route record was found when calling `onBeforeRouteUpdate()`. Make sure you call this function inside a component child of <router-view>. Maybe you called it inside of App.vue?\");\n\t\treturn;\n\t}\n\tregisterGuard(activeRecord, \"updateGuards\", updateGuard);\n}\nfunction guardToPromiseFn(guard, to, from, record, name, runWithContext = (fn) => fn()) {\n\tconst enterCallbackArray = record && (record.enterCallbacks[name] = record.enterCallbacks[name] || []);\n\treturn () => new Promise((resolve, reject) => {\n\t\tconst next = (valid) => {\n\t\t\tif (valid === false) reject(createRouterError(ErrorTypes.NAVIGATION_ABORTED, {\n\t\t\t\tfrom,\n\t\t\t\tto\n\t\t\t}));\n\t\t\telse if (valid instanceof Error) reject(valid);\n\t\t\telse if (isRouteLocation(valid)) reject(createRouterError(ErrorTypes.NAVIGATION_GUARD_REDIRECT, {\n\t\t\t\tfrom: to,\n\t\t\t\tto: valid\n\t\t\t}));\n\t\t\telse {\n\t\t\t\tif (enterCallbackArray && record.enterCallbacks[name] === enterCallbackArray && typeof valid === \"function\") enterCallbackArray.push(valid);\n\t\t\t\tresolve();\n\t\t\t}\n\t\t};\n\t\tconst guardReturn = runWithContext(() => guard.call(record && record.instances[name], to, from, process.env.NODE_ENV !== \"production\" ? canOnlyBeCalledOnce(next, to, from) : next));\n\t\tlet guardCall = Promise.resolve(guardReturn);\n\t\tif (guard.length < 3) guardCall = guardCall.then(next);\n\t\tif (process.env.NODE_ENV !== \"production\" && guard.length > 2) {\n\t\t\tconst message = `The \"next\" callback was never called inside of ${guard.name ? \"\\\"\" + guard.name + \"\\\"\" : \"\"}:\\n${guard.toString()}\\n. If you are returning a value instead of calling \"next\", make sure to remove the \"next\" parameter from your function.`;\n\t\t\tif (typeof guardReturn === \"object\" && \"then\" in guardReturn) guardCall = guardCall.then((resolvedValue) => {\n\t\t\t\tif (!next._called) {\n\t\t\t\t\twarn$1(message);\n\t\t\t\t\treturn Promise.reject(/* @__PURE__ */ new Error(\"Invalid navigation guard\"));\n\t\t\t\t}\n\t\t\t\treturn resolvedValue;\n\t\t\t});\n\t\t\telse if (guardReturn !== void 0) {\n\t\t\t\tif (!next._called) {\n\t\t\t\t\twarn$1(message);\n\t\t\t\t\treject(/* @__PURE__ */ new Error(\"Invalid navigation guard\"));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tguardCall.catch((err) => reject(err));\n\t});\n}\nfunction canOnlyBeCalledOnce(next, to, from) {\n\tlet called = 0;\n\treturn function() {\n\t\tif (called++ === 1) warn$1(`The \"next\" callback was called more than once in one navigation guard when going from \"${from.fullPath}\" to \"${to.fullPath}\". It should be called exactly one time in each navigation guard. This will fail in production.`);\n\t\tnext._called = true;\n\t\tif (called === 1) next.apply(null, arguments);\n\t};\n}\nfunction extractComponentsGuards(matched, guardType, to, from, runWithContext = (fn) => fn()) {\n\tconst guards = [];\n\tfor (const record of matched) {\n\t\tif (process.env.NODE_ENV !== \"production\" && !record.components && record.children && !record.children.length) warn$1(`Record with path \"${record.path}\" is either missing a \"component(s)\" or \"children\" property.`);\n\t\tfor (const name in record.components) {\n\t\t\tlet rawComponent = record.components[name];\n\t\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\t\tif (!rawComponent || typeof rawComponent !== \"object\" && typeof rawComponent !== \"function\") {\n\t\t\t\t\twarn$1(`Component \"${name}\" in record with path \"${record.path}\" is not a valid component. Received \"${String(rawComponent)}\".`);\n\t\t\t\t\tthrow new Error(\"Invalid route component\");\n\t\t\t\t} else if (\"then\" in rawComponent) {\n\t\t\t\t\twarn$1(`Component \"${name}\" in record with path \"${record.path}\" is a Promise instead of a function that returns a Promise. Did you write \"import('./MyPage.vue')\" instead of \"() => import('./MyPage.vue')\" ? This will break in production if not fixed.`);\n\t\t\t\t\tconst promise = rawComponent;\n\t\t\t\t\trawComponent = () => promise;\n\t\t\t\t} else if (rawComponent.__asyncLoader && !rawComponent.__warnedDefineAsync) {\n\t\t\t\t\trawComponent.__warnedDefineAsync = true;\n\t\t\t\t\twarn$1(`Component \"${name}\" in record with path \"${record.path}\" is defined using \"defineAsyncComponent()\". Write \"() => import('./MyPage.vue')\" instead of \"defineAsyncComponent(() => import('./MyPage.vue'))\".`);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (guardType !== \"beforeRouteEnter\" && !record.instances[name]) continue;\n\t\t\tif (isRouteComponent(rawComponent)) {\n\t\t\t\tconst guard = (rawComponent.__vccOpts || rawComponent)[guardType];\n\t\t\t\tguard && guards.push(guardToPromiseFn(guard, to, from, record, name, runWithContext));\n\t\t\t} else {\n\t\t\t\tlet componentPromise = rawComponent();\n\t\t\t\tif (process.env.NODE_ENV !== \"production\" && !(\"catch\" in componentPromise)) {\n\t\t\t\t\twarn$1(`Component \"${name}\" in record with path \"${record.path}\" is a function that does not return a Promise. If you were passing a functional component, make sure to add a \"displayName\" to the component. This will break in production if not fixed.`);\n\t\t\t\t\tcomponentPromise = Promise.resolve(componentPromise);\n\t\t\t\t}\n\t\t\t\tguards.push(() => componentPromise.then((resolved) => {\n\t\t\t\t\tif (!resolved) throw new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\"`);\n\t\t\t\t\tconst resolvedComponent = isESModule(resolved) ? resolved.default : resolved;\n\t\t\t\t\trecord.mods[name] = resolved;\n\t\t\t\t\trecord.components[name] = resolvedComponent;\n\t\t\t\t\tconst guard = (resolvedComponent.__vccOpts || resolvedComponent)[guardType];\n\t\t\t\t\treturn guard && guardToPromiseFn(guard, to, from, record, name, runWithContext)();\n\t\t\t\t}));\n\t\t\t}\n\t\t}\n\t}\n\treturn guards;\n}\n/**\n* Ensures a route is loaded, so it can be passed as o prop to `<RouterView>`.\n*\n* @param route - resolved route to load\n*/\nfunction loadRouteLocation(route) {\n\treturn route.matched.every((record) => record.redirect) ? Promise.reject(/* @__PURE__ */ new Error(\"Cannot load a route that redirects.\")) : Promise.all(route.matched.map((record) => record.components && Promise.all(Object.keys(record.components).reduce((promises, name) => {\n\t\tconst rawComponent = record.components[name];\n\t\tif (typeof rawComponent === \"function\" && !(\"displayName\" in rawComponent)) promises.push(rawComponent().then((resolved) => {\n\t\t\tif (!resolved) return Promise.reject(/* @__PURE__ */ new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\". Ensure you passed a function that returns a promise.`));\n\t\t\tconst resolvedComponent = isESModule(resolved) ? resolved.default : resolved;\n\t\t\trecord.mods[name] = resolved;\n\t\t\trecord.components[name] = resolvedComponent;\n\t\t}));\n\t\treturn promises;\n\t}, [])))).then(() => route);\n}\n/**\n* Split the leaving, updating, and entering records.\n* @internal\n*\n* @param to - Location we are navigating to\n* @param from - Location we are navigating from\n*/\nfunction extractChangingRecords(to, from) {\n\tconst leavingRecords = [];\n\tconst updatingRecords = [];\n\tconst enteringRecords = [];\n\tconst len = Math.max(from.matched.length, to.matched.length);\n\tfor (let i = 0; i < len; i++) {\n\t\tconst recordFrom = from.matched[i];\n\t\tif (recordFrom) if (to.matched.find((record) => isSameRouteRecord(record, recordFrom))) updatingRecords.push(recordFrom);\n\t\telse leavingRecords.push(recordFrom);\n\t\tconst recordTo = to.matched[i];\n\t\tif (recordTo) {\n\t\t\tif (!from.matched.find((record) => isSameRouteRecord(record, recordTo))) enteringRecords.push(recordTo);\n\t\t}\n\t}\n\treturn [\n\t\tleavingRecords,\n\t\tupdatingRecords,\n\t\tenteringRecords\n\t];\n}\n\n//#endregion\n//#region src/devtools.ts\n/**\n* Copies a route location and removes any problematic properties that cannot be shown in devtools (e.g. Vue instances).\n*\n* @param routeLocation - routeLocation to format\n* @param tooltip - optional tooltip\n* @returns a copy of the routeLocation\n*/\nfunction formatRouteLocation(routeLocation, tooltip) {\n\tconst copy = assign({}, routeLocation, { matched: routeLocation.matched.map((matched) => omit(matched, [\n\t\t\"instances\",\n\t\t\"children\",\n\t\t\"aliasOf\"\n\t])) });\n\treturn { _custom: {\n\t\ttype: null,\n\t\treadOnly: true,\n\t\tdisplay: routeLocation.fullPath,\n\t\ttooltip,\n\t\tvalue: copy\n\t} };\n}\nfunction formatDisplay(display) {\n\treturn { _custom: { display } };\n}\nlet routerId = 0;\nfunction addDevtools(app, router, matcher) {\n\tif (router.__hasDevtools) return;\n\trouter.__hasDevtools = true;\n\tconst id = routerId++;\n\tsetupDevtoolsPlugin({\n\t\tid: \"org.vuejs.router\" + (id ? \".\" + id : \"\"),\n\t\tlabel: \"Vue Router\",\n\t\tpackageName: \"vue-router\",\n\t\thomepage: \"https://router.vuejs.org\",\n\t\tlogo: \"https://router.vuejs.org/logo.png\",\n\t\tcomponentStateTypes: [\"Routing\"],\n\t\tapp\n\t}, (api) => {\n\t\tif (typeof api.now !== \"function\") warn$1(\"[Vue Router]: You seem to be using an outdated version of Vue Devtools. Are you still using the Beta release instead of the stable one? You can find the links at https://devtools.vuejs.org/guide/installation.html.\");\n\t\tapi.on.inspectComponent((payload, ctx) => {\n\t\t\tif (payload.instanceData) payload.instanceData.state.push({\n\t\t\t\ttype: \"Routing\",\n\t\t\t\tkey: \"$route\",\n\t\t\t\teditable: false,\n\t\t\t\tvalue: formatRouteLocation(router.currentRoute.value, \"Current Route\")\n\t\t\t});\n\t\t});\n\t\tapi.on.visitComponentTree(({ treeNode: node, componentInstance }) => {\n\t\t\tif (componentInstance.__vrv_devtools) {\n\t\t\t\tconst info = componentInstance.__vrv_devtools;\n\t\t\t\tnode.tags.push({\n\t\t\t\t\tlabel: (info.name ? `${info.name.toString()}: ` : \"\") + info.path,\n\t\t\t\t\ttextColor: 0,\n\t\t\t\t\ttooltip: \"This component is rendered by <router-view>\",\n\t\t\t\t\tbackgroundColor: PINK_500\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (isArray(componentInstance.__vrl_devtools)) {\n\t\t\t\tcomponentInstance.__devtoolsApi = api;\n\t\t\t\tcomponentInstance.__vrl_devtools.forEach((devtoolsData) => {\n\t\t\t\t\tlet label = devtoolsData.route.path;\n\t\t\t\t\tlet backgroundColor = ORANGE_400;\n\t\t\t\t\tlet tooltip = \"\";\n\t\t\t\t\tlet textColor = 0;\n\t\t\t\t\tif (devtoolsData.error) {\n\t\t\t\t\t\tlabel = devtoolsData.error;\n\t\t\t\t\t\tbackgroundColor = RED_100;\n\t\t\t\t\t\ttextColor = RED_700;\n\t\t\t\t\t} else if (devtoolsData.isExactActive) {\n\t\t\t\t\t\tbackgroundColor = LIME_500;\n\t\t\t\t\t\ttooltip = \"This is exactly active\";\n\t\t\t\t\t} else if (devtoolsData.isActive) {\n\t\t\t\t\t\tbackgroundColor = BLUE_600;\n\t\t\t\t\t\ttooltip = \"This link is active\";\n\t\t\t\t\t}\n\t\t\t\t\tnode.tags.push({\n\t\t\t\t\t\tlabel,\n\t\t\t\t\t\ttextColor,\n\t\t\t\t\t\ttooltip,\n\t\t\t\t\t\tbackgroundColor\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\twatch(router.currentRoute, () => {\n\t\t\trefreshRoutesView();\n\t\t\tapi.notifyComponentUpdate();\n\t\t\tapi.sendInspectorTree(routerInspectorId);\n\t\t\tapi.sendInspectorState(routerInspectorId);\n\t\t});\n\t\tconst navigationsLayerId = \"router:navigations:\" + id;\n\t\tapi.addTimelineLayer({\n\t\t\tid: navigationsLayerId,\n\t\t\tlabel: `Router${id ? \" \" + id : \"\"} Navigations`,\n\t\t\tcolor: 4237508\n\t\t});\n\t\trouter.onError((error, to) => {\n\t\t\tapi.addTimelineEvent({\n\t\t\t\tlayerId: navigationsLayerId,\n\t\t\t\tevent: {\n\t\t\t\t\ttitle: \"Error during Navigation\",\n\t\t\t\t\tsubtitle: to.fullPath,\n\t\t\t\t\tlogType: \"error\",\n\t\t\t\t\ttime: api.now(),\n\t\t\t\t\tdata: { error },\n\t\t\t\t\tgroupId: to.meta.__navigationId\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\tlet navigationId = 0;\n\t\trouter.beforeEach((to, from) => {\n\t\t\tconst data = {\n\t\t\t\tguard: formatDisplay(\"beforeEach\"),\n\t\t\t\tfrom: formatRouteLocation(from, \"Current Location during this navigation\"),\n\t\t\t\tto: formatRouteLocation(to, \"Target location\")\n\t\t\t};\n\t\t\tObject.defineProperty(to.meta, \"__navigationId\", { value: navigationId++ });\n\t\t\tapi.addTimelineEvent({\n\t\t\t\tlayerId: navigationsLayerId,\n\t\t\t\tevent: {\n\t\t\t\t\ttime: api.now(),\n\t\t\t\t\ttitle: \"Start of navigation\",\n\t\t\t\t\tsubtitle: to.fullPath,\n\t\t\t\t\tdata,\n\t\t\t\t\tgroupId: to.meta.__navigationId\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\trouter.afterEach((to, from, failure) => {\n\t\t\tconst data = { guard: formatDisplay(\"afterEach\") };\n\t\t\tif (failure) {\n\t\t\t\tdata.failure = { _custom: {\n\t\t\t\t\ttype: Error,\n\t\t\t\t\treadOnly: true,\n\t\t\t\t\tdisplay: failure ? failure.message : \"\",\n\t\t\t\t\ttooltip: \"Navigation Failure\",\n\t\t\t\t\tvalue: failure\n\t\t\t\t} };\n\t\t\t\tdata.status = formatDisplay(\"❌\");\n\t\t\t} else data.status = formatDisplay(\"✅\");\n\t\t\tdata.from = formatRouteLocation(from, \"Current Location during this navigation\");\n\t\t\tdata.to = formatRouteLocation(to, \"Target location\");\n\t\t\tapi.addTimelineEvent({\n\t\t\t\tlayerId: navigationsLayerId,\n\t\t\t\tevent: {\n\t\t\t\t\ttitle: \"End of navigation\",\n\t\t\t\t\tsubtitle: to.fullPath,\n\t\t\t\t\ttime: api.now(),\n\t\t\t\t\tdata,\n\t\t\t\t\tlogType: failure ? \"warning\" : \"default\",\n\t\t\t\t\tgroupId: to.meta.__navigationId\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\t/**\n\t\t* Inspector of Existing routes\n\t\t*/\n\t\tconst routerInspectorId = \"router-inspector:\" + id;\n\t\tapi.addInspector({\n\t\t\tid: routerInspectorId,\n\t\t\tlabel: \"Routes\" + (id ? \" \" + id : \"\"),\n\t\t\ticon: \"book\",\n\t\t\ttreeFilterPlaceholder: \"Search routes\"\n\t\t});\n\t\tfunction refreshRoutesView() {\n\t\t\tif (!activeRoutesPayload) return;\n\t\t\tconst payload = activeRoutesPayload;\n\t\t\tlet routes = matcher.getRoutes().filter((route) => !route.parent || !route.parent.record.components);\n\t\t\troutes.forEach(resetMatchStateOnRouteRecord);\n\t\t\tif (payload.filter) routes = routes.filter((route) => isRouteMatching(route, payload.filter.toLowerCase()));\n\t\t\troutes.forEach((route) => markRouteRecordActive(route, router.currentRoute.value));\n\t\t\tpayload.rootNodes = routes.map(formatRouteRecordForInspector);\n\t\t}\n\t\tlet activeRoutesPayload;\n\t\tapi.on.getInspectorTree((payload) => {\n\t\t\tactiveRoutesPayload = payload;\n\t\t\tif (payload.app === app && payload.inspectorId === routerInspectorId) refreshRoutesView();\n\t\t});\n\t\t/**\n\t\t* Display information about the currently selected route record\n\t\t*/\n\t\tapi.on.getInspectorState((payload) => {\n\t\t\tif (payload.app === app && payload.inspectorId === routerInspectorId) {\n\t\t\t\tconst route = matcher.getRoutes().find((route$1) => route$1.record.__vd_id === payload.nodeId);\n\t\t\t\tif (route) payload.state = { options: formatRouteRecordMatcherForStateInspector(route) };\n\t\t\t}\n\t\t});\n\t\tapi.sendInspectorTree(routerInspectorId);\n\t\tapi.sendInspectorState(routerInspectorId);\n\t});\n}\nfunction modifierForKey(key) {\n\tif (key.optional) return key.repeatable ? \"*\" : \"?\";\n\telse return key.repeatable ? \"+\" : \"\";\n}\nfunction formatRouteRecordMatcherForStateInspector(route) {\n\tconst { record } = route;\n\tconst fields = [{\n\t\teditable: false,\n\t\tkey: \"path\",\n\t\tvalue: record.path\n\t}];\n\tif (record.name != null) fields.push({\n\t\teditable: false,\n\t\tkey: \"name\",\n\t\tvalue: record.name\n\t});\n\tfields.push({\n\t\teditable: false,\n\t\tkey: \"regexp\",\n\t\tvalue: route.re\n\t});\n\tif (route.keys.length) fields.push({\n\t\teditable: false,\n\t\tkey: \"keys\",\n\t\tvalue: { _custom: {\n\t\t\ttype: null,\n\t\t\treadOnly: true,\n\t\t\tdisplay: route.keys.map((key) => `${key.name}${modifierForKey(key)}`).join(\" \"),\n\t\t\ttooltip: \"Param keys\",\n\t\t\tvalue: route.keys\n\t\t} }\n\t});\n\tif (record.redirect != null) fields.push({\n\t\teditable: false,\n\t\tkey: \"redirect\",\n\t\tvalue: record.redirect\n\t});\n\tif (route.alias.length) fields.push({\n\t\teditable: false,\n\t\tkey: \"aliases\",\n\t\tvalue: route.alias.map((alias) => alias.record.path)\n\t});\n\tif (Object.keys(route.record.meta).length) fields.push({\n\t\teditable: false,\n\t\tkey: \"meta\",\n\t\tvalue: route.record.meta\n\t});\n\tfields.push({\n\t\tkey: \"score\",\n\t\teditable: false,\n\t\tvalue: { _custom: {\n\t\t\ttype: null,\n\t\t\treadOnly: true,\n\t\t\tdisplay: route.score.map((score) => score.join(\", \")).join(\" | \"),\n\t\t\ttooltip: \"Score used to sort routes\",\n\t\t\tvalue: route.score\n\t\t} }\n\t});\n\treturn fields;\n}\n/**\n* Extracted from tailwind palette\n*/\nconst PINK_500 = 15485081;\nconst BLUE_600 = 2450411;\nconst LIME_500 = 8702998;\nconst CYAN_400 = 2282478;\nconst ORANGE_400 = 16486972;\nconst DARK = 6710886;\nconst RED_100 = 16704226;\nconst RED_700 = 12131356;\nfunction formatRouteRecordForInspector(route) {\n\tconst tags = [];\n\tconst { record } = route;\n\tif (record.name != null) tags.push({\n\t\tlabel: String(record.name),\n\t\ttextColor: 0,\n\t\tbackgroundColor: CYAN_400\n\t});\n\tif (record.aliasOf) tags.push({\n\t\tlabel: \"alias\",\n\t\ttextColor: 0,\n\t\tbackgroundColor: ORANGE_400\n\t});\n\tif (route.__vd_match) tags.push({\n\t\tlabel: \"matches\",\n\t\ttextColor: 0,\n\t\tbackgroundColor: PINK_500\n\t});\n\tif (route.__vd_exactActive) tags.push({\n\t\tlabel: \"exact\",\n\t\ttextColor: 0,\n\t\tbackgroundColor: LIME_500\n\t});\n\tif (route.__vd_active) tags.push({\n\t\tlabel: \"active\",\n\t\ttextColor: 0,\n\t\tbackgroundColor: BLUE_600\n\t});\n\tif (record.redirect) tags.push({\n\t\tlabel: typeof record.redirect === \"string\" ? `redirect: ${record.redirect}` : \"redirects\",\n\t\ttextColor: 16777215,\n\t\tbackgroundColor: DARK\n\t});\n\tlet id = record.__vd_id;\n\tif (id == null) {\n\t\tid = String(routeRecordId++);\n\t\trecord.__vd_id = id;\n\t}\n\treturn {\n\t\tid,\n\t\tlabel: record.path,\n\t\ttags,\n\t\tchildren: route.children.map(formatRouteRecordForInspector)\n\t};\n}\nlet routeRecordId = 0;\nconst EXTRACT_REGEXP_RE = /^\\/(.*)\\/([a-z]*)$/;\nfunction markRouteRecordActive(route, currentRoute) {\n\tconst isExactActive = currentRoute.matched.length && isSameRouteRecord(currentRoute.matched[currentRoute.matched.length - 1], route.record);\n\troute.__vd_exactActive = route.__vd_active = isExactActive;\n\tif (!isExactActive) route.__vd_active = currentRoute.matched.some((match) => isSameRouteRecord(match, route.record));\n\troute.children.forEach((childRoute) => markRouteRecordActive(childRoute, currentRoute));\n}\nfunction resetMatchStateOnRouteRecord(route) {\n\troute.__vd_match = false;\n\troute.children.forEach(resetMatchStateOnRouteRecord);\n}\nfunction isRouteMatching(route, filter) {\n\tconst found = String(route.re).match(EXTRACT_REGEXP_RE);\n\troute.__vd_match = false;\n\tif (!found || found.length < 3) return false;\n\tif (new RegExp(found[1].replace(/\\$$/, \"\"), found[2]).test(filter)) {\n\t\troute.children.forEach((child) => isRouteMatching(child, filter));\n\t\tif (route.record.path !== \"/\" || filter === \"/\") {\n\t\t\troute.__vd_match = route.re.test(filter);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tconst path = route.record.path.toLowerCase();\n\tconst decodedPath = decode(path);\n\tif (!filter.startsWith(\"/\") && (decodedPath.includes(filter) || path.includes(filter))) return true;\n\tif (decodedPath.startsWith(filter) || path.startsWith(filter)) return true;\n\tif (route.record.name && String(route.record.name).includes(filter)) return true;\n\treturn route.children.some((child) => isRouteMatching(child, filter));\n}\nfunction omit(obj, keys) {\n\tconst ret = {};\n\tfor (const key in obj) if (!keys.includes(key)) ret[key] = obj[key];\n\treturn ret;\n}\n\n//#endregion\nexport { ErrorTypes, NEW_stringifyURL, NavigationDirection, NavigationFailureType, NavigationType, START, START_LOCATION_NORMALIZED, addDevtools, applyToParams, assign, computeScrollPosition, createHref, createRouterError, decode, encodeHash, encodeParam, encodePath, extractChangingRecords, extractComponentsGuards, getSavedScrollPosition, getScrollKey, guardToPromiseFn, identityFn, isArray, isBrowser, isNavigationFailure, isRouteLocation, isRouteName, isSameRouteLocation, isSameRouteLocationParams, isSameRouteRecord, loadRouteLocation, matchedRouteKey, mergeOptions, noop, normalizeBase, normalizeQuery, onBeforeRouteLeave, onBeforeRouteUpdate, parseQuery, parseURL, resolveRelativePath, routeLocationKey, routerKey, routerViewLocationKey, saveScrollPosition, scrollToPosition, stringifyQuery, stringifyURL, stripBase, useCallbacks, viewDepthKey, warn$1 as warn };","const [majorVersion] = window.OC?.config?.version?.split(\".\") ?? [];\nconst isLegacy = Number.parseInt(majorVersion ?? \"32\") < 32;\nexport {\n isLegacy as i\n};\n//# sourceMappingURL=legacy-DcjXBL_t.mjs.map\n","import { inject } from \"vue\";\nconst NC_FORM_BOX_CONTEXT_KEY = Symbol.for(\"NcFormBox:context\");\nfunction useNcFormBox() {\n return inject(NC_FORM_BOX_CONTEXT_KEY, {\n isInFormBox: false,\n formBoxItemClass: void 0\n });\n}\nexport {\n NC_FORM_BOX_CONTEXT_KEY as N,\n useNcFormBox as u\n};\n//# sourceMappingURL=useNcFormBox-DA9iwXWY.mjs.map\n","import '../assets/NcButton--Fj4gghF.css';\nimport { defineComponent, inject, computed, createBlock, openBlock, resolveDynamicComponent, mergeProps, unref, withCtx, createElementVNode, renderSlot, createTextVNode, toDisplayString } from \"vue\";\nimport { routerKey } from \"vue-router\";\nimport { i as isLegacy } from \"./legacy-DcjXBL_t.mjs\";\nimport { u as useNcFormBox } from \"./useNcFormBox-DA9iwXWY.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = { class: \"button-vue__wrapper\" };\nconst _hoisted_2 = { class: \"button-vue__icon\" };\nconst _hoisted_3 = { class: \"button-vue__text\" };\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcButton\",\n props: {\n alignment: { default: \"center\" },\n ariaLabel: { default: void 0 },\n disabled: { type: Boolean },\n download: { type: [String, Boolean], default: void 0 },\n href: { default: void 0 },\n pressed: { type: Boolean, default: void 0 },\n size: { default: \"normal\" },\n target: { default: \"_self\" },\n text: { default: void 0 },\n to: { default: void 0 },\n type: { default: \"button\" },\n variant: { default: \"secondary\" },\n wide: { type: Boolean }\n },\n emits: [\"click\", \"update:pressed\"],\n setup(__props, { emit: __emit }) {\n const props = __props;\n const emit = __emit;\n const { formBoxItemClass } = useNcFormBox();\n const hasVueRouterContext = inject(routerKey, null) !== null;\n const tag = computed(() => {\n if (hasVueRouterContext && props.to) {\n return \"RouterLink\";\n } else if (props.href) {\n return \"a\";\n } else {\n return \"button\";\n }\n });\n const hasPressedState = computed(() => tag.value === \"button\" && typeof props.pressed === \"boolean\");\n const variantWithPressed = computed(() => {\n if (props.pressed) {\n return \"primary\";\n }\n if (props.pressed === false && props.variant === \"primary\") {\n return \"secondary\";\n }\n return props.variant;\n });\n const isTertiaryVariant = computed(() => variantWithPressed.value.startsWith(\"tertiary\"));\n const flexAlignment = computed(() => props.alignment.split(\"-\")[0]);\n const isReverseAligned = computed(() => props.alignment.includes(\"-\"));\n const getNcPopoverTriggerAttrs = inject(\"NcPopover:trigger:attrs\", () => ({}), false);\n const ncPopoverTriggerAttrs = computed(() => getNcPopoverTriggerAttrs());\n const attrs = computed(() => {\n if (tag.value === \"RouterLink\") {\n return {\n to: props.to,\n activeClass: \"active\"\n };\n } else if (tag.value === \"a\") {\n return {\n href: props.href || \"#\",\n target: props.target,\n rel: \"nofollow noreferrer noopener\",\n download: props.download || void 0\n };\n } else if (tag.value === \"button\") {\n return {\n ...ncPopoverTriggerAttrs.value,\n \"aria-pressed\": props.pressed,\n type: props.type,\n disabled: props.disabled\n };\n }\n return void 0;\n });\n function onClick(event) {\n if (hasPressedState.value) {\n emit(\"update:pressed\", !props.pressed);\n }\n emit(\"click\", event);\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(resolveDynamicComponent(tag.value), mergeProps({\n class: [\"button-vue\", [\n `button-vue--size-${_ctx.size}`,\n {\n [`button-vue--${variantWithPressed.value}`]: variantWithPressed.value,\n \"button-vue--tertiary\": isTertiaryVariant.value,\n \"button-vue--wide\": _ctx.wide,\n [`button-vue--${flexAlignment.value}`]: flexAlignment.value !== \"center\",\n \"button-vue--reverse\": isReverseAligned.value,\n \"button-vue--legacy\": unref(isLegacy)\n },\n unref(formBoxItemClass)\n ]],\n \"aria-label\": _ctx.ariaLabel\n }, attrs.value, { onClick }), {\n default: withCtx(() => [\n createElementVNode(\"span\", _hoisted_1, [\n createElementVNode(\"span\", _hoisted_2, [\n renderSlot(_ctx.$slots, \"icon\", {}, void 0, true)\n ]),\n createElementVNode(\"span\", _hoisted_3, [\n renderSlot(_ctx.$slots, \"default\", {}, () => [\n createTextVNode(toDisplayString(_ctx.text), 1)\n ], true)\n ])\n ])\n ]),\n _: 3\n }, 16, [\"class\", \"aria-label\"]);\n };\n }\n});\nconst NcButton = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-e3b1a10b\"]]);\nexport {\n NcButton as N\n};\n//# sourceMappingURL=NcButton-Dc8V4Urj.mjs.map\n","import { getLoggerBuilder } from \"@nextcloud/logger\";\nconst logger = getLoggerBuilder().detectUser().setApp(\"@nextcloud/vue\").build();\nexport {\n logger as l\n};\n//# sourceMappingURL=logger-D3RVzcfQ.mjs.map\n","import '../assets/NcNoteCard-DZSuYX4-.css';\nimport { defineComponent, computed, createElementBlock, openBlock, normalizeClass, unref, renderSlot, createElementVNode, createVNode, createCommentVNode, toDisplayString } from \"vue\";\nimport { g as mdiAlert, h as mdiInformation, i as mdiCheckboxMarkedCircle, j as mdiAlertDecagram } from \"./mdi-XFJRiRqJ.mjs\";\nimport { i as isLegacy } from \"./legacy-DcjXBL_t.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-BvLanNaW.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = [\"role\"];\nconst _hoisted_2 = {\n key: 0,\n class: \"notecard__heading\"\n};\nconst _hoisted_3 = { class: \"notecard__text\" };\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcNoteCard\",\n props: {\n heading: { default: void 0 },\n showAlert: { type: Boolean },\n text: { default: void 0 },\n type: { default: \"warning\" }\n },\n setup(__props) {\n const props = __props;\n const shouldShowAlert = computed(() => props.showAlert || props.type === \"error\");\n const iconPath = computed(() => {\n switch (props.type) {\n case \"error\":\n return mdiAlertDecagram;\n case \"success\":\n return mdiCheckboxMarkedCircle;\n case \"info\":\n return mdiInformation;\n case \"warning\":\n default:\n return mdiAlert;\n }\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"notecard\", {\n [`notecard--${_ctx.type}`]: _ctx.type,\n \"notecard--legacy\": unref(isLegacy)\n }]),\n role: shouldShowAlert.value ? \"alert\" : \"note\"\n }, [\n renderSlot(_ctx.$slots, \"icon\", {}, () => [\n createVNode(unref(NcIconSvgWrapper), {\n path: iconPath.value,\n class: normalizeClass([\"notecard__icon\", { \"notecard__icon--heading\": _ctx.heading }]),\n inline: \"\"\n }, null, 8, [\"path\", \"class\"])\n ], true),\n createElementVNode(\"div\", null, [\n _ctx.heading ? (openBlock(), createElementBlock(\"p\", _hoisted_2, toDisplayString(_ctx.heading), 1)) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"default\", {}, () => [\n createElementVNode(\"p\", _hoisted_3, toDisplayString(_ctx.text), 1)\n ], true)\n ])\n ], 10, _hoisted_1);\n };\n }\n});\nconst NcNoteCard = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-7e4656f9\"]]);\nexport {\n NcNoteCard as N\n};\n//# sourceMappingURL=NcNoteCard-CVhtNL04.mjs.map\n"],"names":["mdiAlert","mdiAlertCircleOutline","mdiAlertDecagram","mdiArrowLeft","mdiArrowRight","mdiCalendarBlank","mdiCheck","mdiCheckboxMarkedCircle","mdiChevronDown","mdiChevronLeft","mdiChevronRight","mdiChevronUp","mdiClock","mdiClose","mdiCloseCircleOutline","mdiContentCopy","mdiDotsHorizontal","mdiEye","mdiEyeOff","mdiInformation","mdiPause","mdiPlay","mdiUndo","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_sfc_main","defineComponent","__props","useCssVars","_ctx","iconSize","props","computed","cleanSvg","svg","DOMPurify","svgDocument","_cache","openBlock","createElementBlock","normalizeClass","createElementVNode","NcIconSvgWrapper","_export_sfc","noop","isArray","isSameRouteRecord","b","isSameRouteLocationParams","key","isSameRouteLocationParamsValue","isEquivalentArray","value","i","routerKey","routeLocationKey","majorVersion","isLegacy","NC_FORM_BOX_CONTEXT_KEY","useNcFormBox","inject","__emit","emit","formBoxItemClass","hasVueRouterContext","tag","hasPressedState","variantWithPressed","isTertiaryVariant","flexAlignment","isReverseAligned","getNcPopoverTriggerAttrs","ncPopoverTriggerAttrs","attrs","onClick","event","createBlock","resolveDynamicComponent","mergeProps","unref","withCtx","renderSlot","createTextVNode","toDisplayString","NcButton","logger","getLoggerBuilder","shouldShowAlert","iconPath","createVNode","createCommentVNode","NcNoteCard"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7]} \ No newline at end of file diff --git a/dist/NcPasswordField-djttkA5Q-2g87vOpY.chunk.mjs b/dist/NcPasswordField-djttkA5Q-2g87vOpY.chunk.mjs deleted file mode 100644 index 878735a98d6d7..0000000000000 --- a/dist/NcPasswordField-djttkA5Q-2g87vOpY.chunk.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import{l as k,a as S,m as C,b as F}from"./NcNoteCard-CVhtNL04-hwuc093N.chunk.mjs";import{c as N}from"./index-BfylblLb.chunk.mjs";import{g as M}from"./index-xFugdZPW.chunk.mjs";import{r as $,_ as q,a as z,t as n}from"./createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs";import{d as H}from"./index-6_gsQFyp.chunk.mjs";import{N as I}from"./NcInputField-Bwsh2aHY-CHbAfY0u.chunk.mjs";import{b as L,p as c,q as v,s as O,v as U,r as m,x as f,c as j,o as A,y as D,w as h,m as E,e as G,u as o,z as J}from"./runtime-dom.esm-bundler-BrYCUcZF.chunk.mjs";$();const K=L({__name:"NcPasswordField",props:c({class:{},inputClass:{default:""},id:{},label:{},labelOutside:{type:Boolean},placeholder:{},showTrailingButton:{type:Boolean,default:!0},success:{type:Boolean},error:{type:Boolean},helperText:{},disabled:{type:Boolean},pill:{type:Boolean},checkPasswordStrength:{type:Boolean},minlength:{default:void 0},asText:{type:Boolean}},{modelValue:{default:""},modelModifiers:{},visible:{type:Boolean,default:!1},visibleModifiers:{}}),emits:c(["valid","invalid"],["update:modelValue","update:visible"]),setup(l,{expose:y,emit:w}){const s=v(l,"modelValue"),a=v(l,"visible"),t=l,d=w;O(s,H(B,500)),y({focus:T,select:P});const{password_policy:b}=M(),u=U("inputField"),r=m(""),i=m(),g=f(()=>{const e={...t};return delete e.checkPasswordStrength,delete e.minlength,delete e.asText,delete e.error,delete e.helperText,delete e.inputClass,delete e.success,e}),x=f(()=>t.minlength??(t.checkPasswordStrength?b?.minLength:void 0)??void 0);async function B(){if(t.checkPasswordStrength)try{const{data:e}=await N.post(z("apps/password_policy/api/v1/validate"),{password:s.value});if(i.value=e.ocs.data.passed,e.ocs.data.passed){r.value=n("Password is secure"),d("valid");return}r.value=e.ocs.data.reason,d("invalid")}catch(e){k.error("Password policy returned an error",{error:e})}}function _(){a.value=!a.value}function T(e){u.value.focus(e)}function P(){u.value.select()}return(e,p)=>(A(),j(I,J(g.value,{ref:"inputField",modelValue:s.value,"onUpdate:modelValue":p[0]||(p[0]=V=>s.value=V),error:e.error||i.value===!1,"helper-text":e.helperText||r.value,"input-class":[e.inputClass,{"password-field__input--secure-text":!a.value&&e.asText}],minlength:x.value,success:e.success||i.value===!0,"trailing-button-label":a.value?o(n)("Hide password"):o(n)("Show password"),type:a.value||e.asText?"text":"password",onTrailingButtonClick:_}),D({"trailing-button-icon":h(()=>[G(S,{path:a.value?o(C):o(F)},null,8,["path"])]),_:2},[e.$slots.icon?{name:"icon",fn:h(()=>[E(e.$slots,"icon",{},void 0,!0)]),key:"0"}:void 0]),1040,["modelValue","error","helper-text","input-class","minlength","success","trailing-button-label","type"]))}}),ae=q(K,[["__scopeId","data-v-b2684de6"]]);export{ae as N}; -//# sourceMappingURL=NcPasswordField-djttkA5Q-2g87vOpY.chunk.mjs.map diff --git a/dist/NcPasswordField-djttkA5Q-Dz7uhHFj.chunk.mjs b/dist/NcPasswordField-djttkA5Q-Dz7uhHFj.chunk.mjs new file mode 100644 index 0000000000000..42096a2736bce --- /dev/null +++ b/dist/NcPasswordField-djttkA5Q-Dz7uhHFj.chunk.mjs @@ -0,0 +1,2 @@ +import{l as k,N as S,m as C,a as N}from"./AccountOutline-BlW-6JqD.chunk.mjs";import{c as F}from"./index-DVH_Kr3Q.chunk.mjs";import{g as M}from"./index-DCpg1aui.chunk.mjs";import{r as $,_ as q,a as z,b as n}from"./createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs";import{d as H}from"./index-Bndk0DrU.chunk.mjs";import{N as I}from"./NcInputField-Bwsh2aHY-Cz27INBW.chunk.mjs";import{b as L,p as c,q as v,s as O,v as U,r as m,x as f,c as j,o as A,y as D,w as h,m as E,e as G,u as o,z as J}from"./runtime-dom.esm-bundler-DdtEg5E9.chunk.mjs";$();const K=L({__name:"NcPasswordField",props:c({class:{},inputClass:{default:""},id:{},label:{},labelOutside:{type:Boolean},placeholder:{},showTrailingButton:{type:Boolean,default:!0},success:{type:Boolean},error:{type:Boolean},helperText:{},disabled:{type:Boolean},pill:{type:Boolean},checkPasswordStrength:{type:Boolean},minlength:{default:void 0},asText:{type:Boolean}},{modelValue:{default:""},modelModifiers:{},visible:{type:Boolean,default:!1},visibleModifiers:{}}),emits:c(["valid","invalid"],["update:modelValue","update:visible"]),setup(l,{expose:y,emit:w}){const s=v(l,"modelValue"),a=v(l,"visible"),t=l,d=w;O(s,H(B,500)),y({focus:T,select:P});const{password_policy:b}=M(),u=U("inputField"),r=m(""),i=m(),g=f(()=>{const e={...t};return delete e.checkPasswordStrength,delete e.minlength,delete e.asText,delete e.error,delete e.helperText,delete e.inputClass,delete e.success,e}),x=f(()=>t.minlength??(t.checkPasswordStrength?b?.minLength:void 0)??void 0);async function B(){if(t.checkPasswordStrength)try{const{data:e}=await F.post(z("apps/password_policy/api/v1/validate"),{password:s.value});if(i.value=e.ocs.data.passed,e.ocs.data.passed){r.value=n("Password is secure"),d("valid");return}r.value=e.ocs.data.reason,d("invalid")}catch(e){k.error("Password policy returned an error",{error:e})}}function _(){a.value=!a.value}function T(e){u.value.focus(e)}function P(){u.value.select()}return(e,p)=>(A(),j(I,J(g.value,{ref:"inputField",modelValue:s.value,"onUpdate:modelValue":p[0]||(p[0]=V=>s.value=V),error:e.error||i.value===!1,"helper-text":e.helperText||r.value,"input-class":[e.inputClass,{"password-field__input--secure-text":!a.value&&e.asText}],minlength:x.value,success:e.success||i.value===!0,"trailing-button-label":a.value?o(n)("Hide password"):o(n)("Show password"),type:a.value||e.asText?"text":"password",onTrailingButtonClick:_}),D({"trailing-button-icon":h(()=>[G(S,{path:a.value?o(C):o(N)},null,8,["path"])]),_:2},[e.$slots.icon?{name:"icon",fn:h(()=>[E(e.$slots,"icon",{},void 0,!0)]),key:"0"}:void 0]),1040,["modelValue","error","helper-text","input-class","minlength","success","trailing-button-label","type"]))}}),ae=q(K,[["__scopeId","data-v-b2684de6"]]);export{ae as N}; +//# sourceMappingURL=NcPasswordField-djttkA5Q-Dz7uhHFj.chunk.mjs.map diff --git a/dist/NcPasswordField-djttkA5Q-2g87vOpY.chunk.mjs.license b/dist/NcPasswordField-djttkA5Q-Dz7uhHFj.chunk.mjs.license similarity index 100% rename from dist/NcPasswordField-djttkA5Q-2g87vOpY.chunk.mjs.license rename to dist/NcPasswordField-djttkA5Q-Dz7uhHFj.chunk.mjs.license diff --git a/dist/NcPasswordField-djttkA5Q-2g87vOpY.chunk.mjs.map b/dist/NcPasswordField-djttkA5Q-Dz7uhHFj.chunk.mjs.map similarity index 98% rename from dist/NcPasswordField-djttkA5Q-2g87vOpY.chunk.mjs.map rename to dist/NcPasswordField-djttkA5Q-Dz7uhHFj.chunk.mjs.map index 1c5f8a87592ee..fd411dbdea1fa 100644 --- a/dist/NcPasswordField-djttkA5Q-2g87vOpY.chunk.mjs.map +++ b/dist/NcPasswordField-djttkA5Q-Dz7uhHFj.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"NcPasswordField-djttkA5Q-2g87vOpY.chunk.mjs","sources":["../node_modules/@nextcloud/vue/dist/chunks/NcPasswordField-djttkA5Q.mjs"],"sourcesContent":["import '../assets/NcPasswordField-BCJ0LHSS.css';\nimport { defineComponent, mergeModels, useModel, watch, useTemplateRef, ref, computed, createBlock, openBlock, mergeProps, unref, createSlots, withCtx, createVNode, renderSlot } from \"vue\";\nimport { o as mdiEyeOff, p as mdiEye } from \"./mdi-XFJRiRqJ.mjs\";\nimport axios from \"@nextcloud/axios\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport { generateOcsUrl } from \"@nextcloud/router\";\nimport debounce from \"debounce\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-BvLanNaW.mjs\";\nimport { N as NcInputField } from \"./NcInputField-Bwsh2aHY.mjs\";\nimport { r as register, a as t } from \"./_l10n-DrTiip5c.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister();\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcPasswordField\",\n props: /* @__PURE__ */ mergeModels({\n class: {},\n inputClass: { default: \"\" },\n id: {},\n label: {},\n labelOutside: { type: Boolean },\n placeholder: {},\n showTrailingButton: { type: Boolean, default: true },\n success: { type: Boolean },\n error: { type: Boolean },\n helperText: {},\n disabled: { type: Boolean },\n pill: { type: Boolean },\n checkPasswordStrength: { type: Boolean },\n minlength: { default: void 0 },\n asText: { type: Boolean }\n }, {\n \"modelValue\": { default: \"\" },\n \"modelModifiers\": {},\n \"visible\": { type: Boolean, ...{ default: false } },\n \"visibleModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"valid\", \"invalid\"], [\"update:modelValue\", \"update:visible\"]),\n setup(__props, { expose: __expose, emit: __emit }) {\n const modelValue = useModel(__props, \"modelValue\");\n const visible = useModel(__props, \"visible\");\n const props = __props;\n const emit = __emit;\n watch(modelValue, debounce(checkPassword, 500));\n __expose({\n focus,\n select\n });\n const { password_policy: passwordPolicy } = getCapabilities();\n const inputFieldInstance = useTemplateRef(\"inputField\");\n const internalHelpMessage = ref(\"\");\n const isValid = ref();\n const propsToForward = computed(() => {\n const all = { ...props };\n delete all.checkPasswordStrength;\n delete all.minlength;\n delete all.asText;\n delete all.error;\n delete all.helperText;\n delete all.inputClass;\n delete all.success;\n return all;\n });\n const minLengthWithPolicy = computed(() => {\n return props.minlength ?? (props.checkPasswordStrength ? passwordPolicy?.minLength : void 0) ?? void 0;\n });\n async function checkPassword() {\n if (!props.checkPasswordStrength) {\n return;\n }\n try {\n const { data } = await axios.post(generateOcsUrl(\"apps/password_policy/api/v1/validate\"), { password: modelValue.value });\n isValid.value = data.ocs.data.passed;\n if (data.ocs.data.passed) {\n internalHelpMessage.value = t(\"Password is secure\");\n emit(\"valid\");\n return;\n }\n internalHelpMessage.value = data.ocs.data.reason;\n emit(\"invalid\");\n } catch (error) {\n logger.error(\"Password policy returned an error\", { error });\n }\n }\n function toggleVisibility() {\n visible.value = !visible.value;\n }\n function focus(options) {\n inputFieldInstance.value.focus(options);\n }\n function select() {\n inputFieldInstance.value.select();\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(NcInputField, mergeProps(propsToForward.value, {\n ref: \"inputField\",\n modelValue: modelValue.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event),\n error: _ctx.error || isValid.value === false,\n \"helper-text\": _ctx.helperText || internalHelpMessage.value,\n \"input-class\": [_ctx.inputClass, { \"password-field__input--secure-text\": !visible.value && _ctx.asText }],\n minlength: minLengthWithPolicy.value,\n success: _ctx.success || isValid.value === true,\n \"trailing-button-label\": visible.value ? unref(t)(\"Hide password\") : unref(t)(\"Show password\"),\n type: visible.value || _ctx.asText ? \"text\" : \"password\",\n onTrailingButtonClick: toggleVisibility\n }), createSlots({\n \"trailing-button-icon\": withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n path: visible.value ? unref(mdiEyeOff) : unref(mdiEye)\n }, null, 8, [\"path\"])\n ]),\n _: 2\n }, [\n !!_ctx.$slots.icon ? {\n name: \"icon\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"icon\", {}, void 0, true)\n ]),\n key: \"0\"\n } : void 0\n ]), 1040, [\"modelValue\", \"error\", \"helper-text\", \"input-class\", \"minlength\", \"success\", \"trailing-button-label\", \"type\"]);\n };\n }\n});\nconst NcPasswordField = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-b2684de6\"]]);\nexport {\n NcPasswordField as N\n};\n//# sourceMappingURL=NcPasswordField-djttkA5Q.mjs.map\n"],"names":["register","_sfc_main","defineComponent","mergeModels","__props","__expose","__emit","modelValue","useModel","visible","props","emit","watch","debounce","checkPassword","focus","select","passwordPolicy","getCapabilities","inputFieldInstance","useTemplateRef","internalHelpMessage","ref","isValid","propsToForward","computed","all","minLengthWithPolicy","data","axios","generateOcsUrl","t","error","logger","toggleVisibility","options","_ctx","_cache","openBlock","createBlock","NcInputField","mergeProps","$event","unref","createSlots","withCtx","createVNode","NcIconSvgWrapper","mdiEyeOff","mdiEye","renderSlot","NcPasswordField","_export_sfc"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file +{"version":3,"file":"NcPasswordField-djttkA5Q-Dz7uhHFj.chunk.mjs","sources":["../node_modules/@nextcloud/vue/dist/chunks/NcPasswordField-djttkA5Q.mjs"],"sourcesContent":["import '../assets/NcPasswordField-BCJ0LHSS.css';\nimport { defineComponent, mergeModels, useModel, watch, useTemplateRef, ref, computed, createBlock, openBlock, mergeProps, unref, createSlots, withCtx, createVNode, renderSlot } from \"vue\";\nimport { o as mdiEyeOff, p as mdiEye } from \"./mdi-XFJRiRqJ.mjs\";\nimport axios from \"@nextcloud/axios\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport { generateOcsUrl } from \"@nextcloud/router\";\nimport debounce from \"debounce\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-BvLanNaW.mjs\";\nimport { N as NcInputField } from \"./NcInputField-Bwsh2aHY.mjs\";\nimport { r as register, a as t } from \"./_l10n-DrTiip5c.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister();\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcPasswordField\",\n props: /* @__PURE__ */ mergeModels({\n class: {},\n inputClass: { default: \"\" },\n id: {},\n label: {},\n labelOutside: { type: Boolean },\n placeholder: {},\n showTrailingButton: { type: Boolean, default: true },\n success: { type: Boolean },\n error: { type: Boolean },\n helperText: {},\n disabled: { type: Boolean },\n pill: { type: Boolean },\n checkPasswordStrength: { type: Boolean },\n minlength: { default: void 0 },\n asText: { type: Boolean }\n }, {\n \"modelValue\": { default: \"\" },\n \"modelModifiers\": {},\n \"visible\": { type: Boolean, ...{ default: false } },\n \"visibleModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"valid\", \"invalid\"], [\"update:modelValue\", \"update:visible\"]),\n setup(__props, { expose: __expose, emit: __emit }) {\n const modelValue = useModel(__props, \"modelValue\");\n const visible = useModel(__props, \"visible\");\n const props = __props;\n const emit = __emit;\n watch(modelValue, debounce(checkPassword, 500));\n __expose({\n focus,\n select\n });\n const { password_policy: passwordPolicy } = getCapabilities();\n const inputFieldInstance = useTemplateRef(\"inputField\");\n const internalHelpMessage = ref(\"\");\n const isValid = ref();\n const propsToForward = computed(() => {\n const all = { ...props };\n delete all.checkPasswordStrength;\n delete all.minlength;\n delete all.asText;\n delete all.error;\n delete all.helperText;\n delete all.inputClass;\n delete all.success;\n return all;\n });\n const minLengthWithPolicy = computed(() => {\n return props.minlength ?? (props.checkPasswordStrength ? passwordPolicy?.minLength : void 0) ?? void 0;\n });\n async function checkPassword() {\n if (!props.checkPasswordStrength) {\n return;\n }\n try {\n const { data } = await axios.post(generateOcsUrl(\"apps/password_policy/api/v1/validate\"), { password: modelValue.value });\n isValid.value = data.ocs.data.passed;\n if (data.ocs.data.passed) {\n internalHelpMessage.value = t(\"Password is secure\");\n emit(\"valid\");\n return;\n }\n internalHelpMessage.value = data.ocs.data.reason;\n emit(\"invalid\");\n } catch (error) {\n logger.error(\"Password policy returned an error\", { error });\n }\n }\n function toggleVisibility() {\n visible.value = !visible.value;\n }\n function focus(options) {\n inputFieldInstance.value.focus(options);\n }\n function select() {\n inputFieldInstance.value.select();\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(NcInputField, mergeProps(propsToForward.value, {\n ref: \"inputField\",\n modelValue: modelValue.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event),\n error: _ctx.error || isValid.value === false,\n \"helper-text\": _ctx.helperText || internalHelpMessage.value,\n \"input-class\": [_ctx.inputClass, { \"password-field__input--secure-text\": !visible.value && _ctx.asText }],\n minlength: minLengthWithPolicy.value,\n success: _ctx.success || isValid.value === true,\n \"trailing-button-label\": visible.value ? unref(t)(\"Hide password\") : unref(t)(\"Show password\"),\n type: visible.value || _ctx.asText ? \"text\" : \"password\",\n onTrailingButtonClick: toggleVisibility\n }), createSlots({\n \"trailing-button-icon\": withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n path: visible.value ? unref(mdiEyeOff) : unref(mdiEye)\n }, null, 8, [\"path\"])\n ]),\n _: 2\n }, [\n !!_ctx.$slots.icon ? {\n name: \"icon\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"icon\", {}, void 0, true)\n ]),\n key: \"0\"\n } : void 0\n ]), 1040, [\"modelValue\", \"error\", \"helper-text\", \"input-class\", \"minlength\", \"success\", \"trailing-button-label\", \"type\"]);\n };\n }\n});\nconst NcPasswordField = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-b2684de6\"]]);\nexport {\n NcPasswordField as N\n};\n//# sourceMappingURL=NcPasswordField-djttkA5Q.mjs.map\n"],"names":["register","_sfc_main","defineComponent","mergeModels","__props","__expose","__emit","modelValue","useModel","visible","props","emit","watch","debounce","checkPassword","focus","select","passwordPolicy","getCapabilities","inputFieldInstance","useTemplateRef","internalHelpMessage","ref","isValid","propsToForward","computed","all","minLengthWithPolicy","data","axios","generateOcsUrl","t","error","logger","toggleVisibility","options","_ctx","_cache","openBlock","createBlock","NcInputField","mergeProps","$event","unref","createSlots","withCtx","createVNode","NcIconSvgWrapper","mdiEyeOff","mdiEye","renderSlot","NcPasswordField","_export_sfc"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/dist/NcPasswordField-djttkA5Q-2g87vOpY.chunk.mjs.map.license b/dist/NcPasswordField-djttkA5Q-Dz7uhHFj.chunk.mjs.map.license similarity index 100% rename from dist/NcPasswordField-djttkA5Q-2g87vOpY.chunk.mjs.map.license rename to dist/NcPasswordField-djttkA5Q-Dz7uhHFj.chunk.mjs.map.license diff --git a/dist/NcRichText-CBMtJzE_-BrKByk17.chunk.mjs b/dist/NcRichText-CBMtJzE_-BrKByk17.chunk.mjs new file mode 100644 index 0000000000000..aca95fc33adf9 --- /dev/null +++ b/dist/NcRichText-CBMtJzE_-BrKByk17.chunk.mjs @@ -0,0 +1,31 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=[window.OC.filePath('', '', 'dist/index-p1GDZDVZ.chunk.mjs'),window.OC.filePath('', '', 'dist/index-Bndk0DrU.chunk.mjs'),window.OC.filePath('', '', 'dist/AccountOutline-BlW-6JqD.chunk.mjs'),window.OC.filePath('', '', 'dist/runtime-dom.esm-bundler-DdtEg5E9.chunk.mjs'),window.OC.filePath('', '', 'dist/string_decoder-vT-u9WbV.chunk.mjs'),window.OC.filePath('', '', 'dist/createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs'),window.OC.filePath('', '', 'dist/index-DCpg1aui.chunk.mjs'),window.OC.filePath('', '', 'dist/AccountOutline-Bx-uhVVO.chunk.css'),window.OC.filePath('', '', 'dist/NcCheckboxRadioSwitch-BCSKF7Tk-B1Kcz6gU.chunk.mjs'),window.OC.filePath('', '', 'dist/Web-aYJacExm.chunk.mjs'),window.OC.filePath('', '', 'dist/Web-BYHcrfvW.chunk.css'),window.OC.filePath('', '', 'dist/NcCheckboxRadioSwitch-BCSKF7Tk-BgdwjgMO.chunk.css'),window.OC.filePath('', '', 'dist/index-DVH_Kr3Q.chunk.mjs'),window.OC.filePath('', '', 'dist/public-uQ6dl0vH.chunk.mjs'),window.OC.filePath('', '', 'dist/index-QzsMEHKe.chunk.mjs'),window.OC.filePath('', '', 'dist/NcSelect-Czzsi3P_-BKaYvmLF.chunk.mjs'),window.OC.filePath('', '', 'dist/NcModal-MC_HktJd-DqeuH-fk.chunk.mjs'),window.OC.filePath('', '', 'dist/NcModal-MC_HktJd-YC6kxNbR.chunk.css'),window.OC.filePath('', '', 'dist/NcSelect-Czzsi3P_-DxGOLvnt.chunk.css'),window.OC.filePath('', '', 'dist/index-DoZPzs7J.chunk.css'),window.OC.filePath('', '', 'dist/TrashCanOutline-DglPBhgI.chunk.mjs'),window.OC.filePath('', '', 'dist/NcInputField-Bwsh2aHY-Cz27INBW.chunk.mjs'),window.OC.filePath('', '', 'dist/NcInputField-Bwsh2aHY-_gyGHRGx.chunk.css')])))=>i.map(i=>d[i]); +import{l as jn,_ as no}from"./index-DCpg1aui.chunk.mjs";import{c as ro,y as io,l as Tt,z as oo,g as Nr,R as jr,b as Br,x as Se,w as lo,B as ao,C as so,D as co,N as uo,U as Bn,E as fo,F as Hn,S as po}from"./AccountOutline-BlW-6JqD.chunk.mjs";import{N as ho}from"./NcCheckboxRadioSwitch-BCSKF7Tk-B1Kcz6gU.chunk.mjs";import{f as Hr,a as mo}from"./index-Bndk0DrU.chunk.mjs";import{c as ft}from"./index-DVH_Kr3Q.chunk.mjs";import{r as Ae,s as go,b as wt,u as yo,i as vo,v as xo,w as Ur,x as ko,y as bo,z as wo,A as Co,B as So,_ as dn,c as zt,a as pt}from"./createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs";import{g as Un}from"./public-uQ6dl0vH.chunk.mjs";import"./index-QzsMEHKe.chunk.mjs";import"./NcSelect-Czzsi3P_-BKaYvmLF.chunk.mjs";import{J as Io,L as Eo}from"./NcModal-MC_HktJd-DqeuH-fk.chunk.mjs";import"./Web-aYJacExm.chunk.mjs";import"./TrashCanOutline-DglPBhgI.chunk.mjs";import{r as Je,x as re,a0 as To,b as Vr,Q as Ao,v as Vn,s as Po,N as _o,K as qn,j as et,o as xe,c as Ct,l as xt,n as Gt,w as Jt,k as ht,t as dt,I as Do,z as Lo,L as Oo,g as zo,u as Ge,a7 as $,f as en,F as qr,e as Mo,C as Fo}from"./runtime-dom.esm-bundler-DdtEg5E9.chunk.mjs";Ae(go);const Ro=2e3;function No(e){const t=Je(!1),n=re(()=>t.value?ro:io),r=re(()=>t.value?wt("Copied"):wt("Copy to clipboard"));async function i(){if(t.value)return;const o=To(e);try{await navigator.clipboard.writeText(o)}catch{prompt("",o)}t.value=!0,setTimeout(()=>{t.value=!1},Ro)}return{isCopied:t,copy:i,icon:n,altText:r}}window._vue_richtext_widgets??={},window._registerWidget??=(e,t,n,r)=>{jo(e,t,n,r)};function jo(e,t,n=()=>{},r){const i={hasInteractiveView:!0,fullWidth:!1,...r};if(window._vue_richtext_widgets[e]){Tt.error(`[ReferencePicker]: Widget for id ${e} already registered`);return}window._vue_richtext_widgets[e]={id:e,callback:t,onDestroy:n,...i}}function Bo(e,t){const{richObjectType:n,richObject:r,accessible:i,interactive:o}=t;if(n!=="open-graph"){if(!window._vue_richtext_widgets[n]){Tt.error("Widget for rich object type "+n+" not registered");return}window._vue_richtext_widgets[n].callback(e,{richObjectType:n,richObject:r,accessible:i,interactive:o})}}function Ho(e,t){e!=="open-graph"&&window._vue_richtext_widgets[e]&&window._vue_richtext_widgets[e].onDestroy(t)}function Uo(e){return!!window._vue_richtext_widgets[e]}function Vo(e){return!!window._vue_richtext_widgets[e]?.hasInteractiveView}function qo(e){return!!window._vue_richtext_widgets[e]?.fullWidth}window._vue_richtext_custom_picker_elements??={},window._registerCustomPickerElement??=$o;class Sh{element;object;constructor(t,n){this.element=t,this.object=n}}function $o(e,t,n=()=>{},r="large"){if(window._vue_richtext_custom_picker_elements[e]){Tt.error(`Custom reference picker element for id ${e} already registered`);return}window._vue_richtext_custom_picker_elements[e]={id:e,callback:t,onDestroy:n,size:r}}Ae(yo),wt("Any link"),vo("core","filetypes/link.svg"),window._vue_richtext_reference_providers??=jn("core","reference-provider-list",[]),window._vue_richtext_reference_provider_timestamps??=jn("core","reference-provider-timestamps",{}),Ae(Ur,xo),Ae();const Wo=["src"],Qo={class:"widget-default--details"},Ko={class:"widget-default--name"},Zo={class:"widget-default--link"},Xo=180*1e3,Yo=Vr({__name:"NcReferenceWidget",props:{reference:{},interactive:{type:Boolean,default:!0},interactiveOptIn:{type:Boolean,default:!1}},setup(e){const t=e,n=Ao(oo,null),r=Je(!1),i=Vn("customWidget"),o=Vn("widgetRoot"),{width:l}=Io(o);Eo(o,([P])=>{qn(()=>{r.value=P.isIntersecting})});const a=Je(!1),s=Je(!1);let c=null;const f=re(()=>!t.interactiveOptIn&&t.interactive||a.value),u=re(()=>qo(t.reference.richObjectType)),h=re(()=>Uo(t.reference.richObjectType)),p=re(()=>h.value&&Vo(t.reference.richObjectType)),g=re(()=>!t.reference.accessible),x=re(()=>[450,550,650,1/0].findIndex(P=>l.value<P)),w=re(()=>{if(x.value===0)return{display:"none"};const P=x.value;return{lineClamp:P,webkitLineClamp:P}}),y=re(()=>{const P=t.reference.openGraphObject.link;return P?P.startsWith("https://")?P.substring(8):P.startsWith("http://")?P.substring(7):P:""}),S=re(()=>Nr(n,t.reference.openGraphObject.link)),I=re(()=>S.value?jr:"a"),A=re(()=>S.value?{to:S.value}:{href:t.reference.openGraphObject.link,target:"_blank"});Po(r,P=>{if(!P){c=setTimeout(()=>{r.value||F()},Xo);return}c&&(clearTimeout(c),c=null),s.value||b()},{immediate:!0}),_o(()=>{F()});function R(){a.value=!0,b()}function b(){if(!i.value||t.reference.richObjectType==="open-graph")return;i.value.innerHTML="";const P=document.createElement("div");P.style.width="100%",i.value.appendChild(P),qn(()=>{Bo(P,{...t.reference,interactive:f.value}),s.value=!0})}function F(){s.value&&o.value&&(Ho(t.reference.richObjectType,o.value),s.value=!1)}return(P,j)=>(xe(),et("div",{ref_key:"widgetRoot",ref:o,class:Gt({"toggle-interactive":p.value&&!f.value})},[P.reference&&h.value?(xe(),et("div",{key:0,ref_key:"customWidget",ref:i,class:Gt(["widget-custom",{"full-width":u.value}])},null,2)):!g.value&&P.reference&&P.reference.openGraphObject&&!h.value?(xe(),Ct(Oo(I.value),Lo({key:1},A.value,{rel:"noopener noreferrer",class:"widget-default"}),{default:Jt(()=>[P.reference.openGraphObject.thumb?(xe(),et("img",{key:0,class:"widget-default--image",src:P.reference.openGraphObject.thumb},null,8,Wo)):xt("",!0),ht("div",Qo,[ht("p",Ko,dt(P.reference.openGraphObject.name),1),ht("p",{class:"widget-default--description",style:Do(w.value)},dt(P.reference.openGraphObject.description),5),ht("p",Zo,dt(y.value),1)])]),_:1},16)):xt("",!0),P.interactiveOptIn&&p.value&&!f.value?(xe(),Ct(Br,{key:2,class:"toggle-interactive--button",onClick:R},{default:Jt(()=>[zo(dt(Ge(wt)("Enable interactive view")),1)]),_:1})):xt("",!0)],2))}}),Go=dn(Yo,[["__scopeId","data-v-8ce33442"]]);Ae(ko),Ae(wo,Ur,bo),Ae(So,Co);const $r=-1,At=0,tt=1,St=2,mn=3,gn=4,yn=5,vn=6,Wr=7,Qr=8,$n=typeof self=="object"?self:globalThis,Jo=(e,t)=>{const n=(i,o)=>(e.set(o,i),i),r=i=>{if(e.has(i))return e.get(i);const[o,l]=t[i];switch(o){case At:case $r:return n(l,i);case tt:{const a=n([],i);for(const s of l)a.push(r(s));return a}case St:{const a=n({},i);for(const[s,c]of l)a[r(s)]=r(c);return a}case mn:return n(new Date(l),i);case gn:{const{source:a,flags:s}=l;return n(new RegExp(a,s),i)}case yn:{const a=n(new Map,i);for(const[s,c]of l)a.set(r(s),r(c));return a}case vn:{const a=n(new Set,i);for(const s of l)a.add(r(s));return a}case Wr:{const{name:a,message:s}=l;return n(new $n[a](s),i)}case Qr:return n(BigInt(l),i);case"BigInt":return n(Object(BigInt(l)),i);case"ArrayBuffer":return n(new Uint8Array(l).buffer,l);case"DataView":{const{buffer:a}=new Uint8Array(l);return n(new DataView(a),l)}}return n(new $n[o](l),i)};return r},Wn=e=>Jo(new Map,e)(0),Fe="",{toString:el}={},{keys:tl}=Object,Qe=e=>{const t=typeof e;if(t!=="object"||!e)return[At,t];const n=el.call(e).slice(8,-1);switch(n){case"Array":return[tt,Fe];case"Object":return[St,Fe];case"Date":return[mn,Fe];case"RegExp":return[gn,Fe];case"Map":return[yn,Fe];case"Set":return[vn,Fe];case"DataView":return[tt,n]}return n.includes("Array")?[tt,n]:n.includes("Error")?[Wr,n]:[St,n]},mt=([e,t])=>e===At&&(t==="function"||t==="symbol"),nl=(e,t,n,r)=>{const i=(l,a)=>{const s=r.push(l)-1;return n.set(a,s),s},o=l=>{if(n.has(l))return n.get(l);let[a,s]=Qe(l);switch(a){case At:{let f=l;switch(s){case"bigint":a=Qr,f=l.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+s);f=null;break;case"undefined":return i([$r],l)}return i([a,f],l)}case tt:{if(s){let h=l;return s==="DataView"?h=new Uint8Array(l.buffer):s==="ArrayBuffer"&&(h=new Uint8Array(l)),i([s,[...h]],l)}const f=[],u=i([a,f],l);for(const h of l)f.push(o(h));return u}case St:{if(s)switch(s){case"BigInt":return i([s,l.toString()],l);case"Boolean":case"Number":case"String":return i([s,l.valueOf()],l)}if(t&&"toJSON"in l)return o(l.toJSON());const f=[],u=i([a,f],l);for(const h of tl(l))(e||!mt(Qe(l[h])))&&f.push([o(h),o(l[h])]);return u}case mn:return i([a,l.toISOString()],l);case gn:{const{source:f,flags:u}=l;return i([a,{source:f,flags:u}],l)}case yn:{const f=[],u=i([a,f],l);for(const[h,p]of l)(e||!(mt(Qe(h))||mt(Qe(p))))&&f.push([o(h),o(p)]);return u}case vn:{const f=[],u=i([a,f],l);for(const h of l)(e||!mt(Qe(h)))&&f.push(o(h));return u}}const{message:c}=l;return i([a,{name:s,message:c}],l)};return o},Qn=(e,{json:t,lossy:n}={})=>{const r=[];return nl(!(t||n),!!t,new Map,r)(e),r},Pe=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?Wn(Qn(e,t)):structuredClone(e):(e,t)=>Wn(Qn(e,t)),Kr=(function(e){if(e==null)return ol;if(typeof e=="string")return il(e);if(typeof e=="object")return rl(e);if(typeof e=="function")return xn(e);throw new Error("Expected function, string, or array as `test`")});function rl(e){const t=[];let n=-1;for(;++n<e.length;)t[n]=Kr(e[n]);return xn(r);function r(...i){let o=-1;for(;++o<t.length;)if(t[o].apply(this,i))return!0;return!1}}function il(e){return xn(t);function t(n){return n.tagName===e}}function xn(e){return t;function t(n,r,i){return!!(ll(n)&&e.call(this,n,typeof r=="number"?r:void 0,i||void 0))}}function ol(e){return!!(e&&typeof e=="object"&&"type"in e&&e.type==="element"&&"tagName"in e&&typeof e.tagName=="string")}function ll(e){return e!==null&&typeof e=="object"&&"type"in e&&"tagName"in e}const al=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,sl=/^[a-zA-Z]:\\/;function cl(e){if(typeof e!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof e}\``);return sl.test(e)?!1:al.test(e)}function ul(e){const t=String(e||"").trim();return t?t.split(/[ \t\n\r\f]+/g):[]}function fl(e){return e.join(" ").trim()}const pl=["http","https"],hl=["nofollow"],dl={};function ml(e){const t=e||dl,n=t.protocols||pl,r=Kr(t.test);return function(i){Se(i,"element",function(o,l,a){if(o.tagName==="a"&&typeof o.properties.href=="string"&&r(o,l,a)){const s=o.properties.href;if(cl(s)?n.includes(s.slice(0,s.indexOf(":"))):s.startsWith("//")){const c=Ke(t.content,o),f=c&&!Array.isArray(c)?[c]:c,u=Ke(t.rel,o)||hl,h=typeof u=="string"?ul(u):u,p=Ke(t.target,o),g=Ke(t.properties,o);if(g&&Object.assign(o.properties,Pe(g)),h.length>0&&(o.properties.rel=[...h]),p&&(o.properties.target=p),f){const x=Ke(t.contentProperties,o)||{};o.children.push({type:"element",tagName:"span",properties:Pe(x),children:Pe(f)})}}}})}}function Ke(e,t){return typeof e=="function"?e(t):e}function gl(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const yl=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,vl=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,xl={};function Kn(e,t){return(xl.jsx?vl:yl).test(e)}const kl=/[ \t\n\f\r]/g;function bl(e){return typeof e=="object"?e.type==="text"?Zn(e.value):!1:Zn(e)}function Zn(e){return e.replace(kl,"")===""}class nt{constructor(t,n,r){this.normal=n,this.property=t,r&&(this.space=r)}}nt.prototype.normal={},nt.prototype.property={},nt.prototype.space=void 0;function Zr(e,t){const n={},r={};for(const i of e)Object.assign(n,i.property),Object.assign(r,i.normal);return new nt(n,r,t)}function tn(e){return e.toLowerCase()}class G{constructor(t,n){this.attribute=n,this.property=t}}G.prototype.attribute="",G.prototype.booleanish=!1,G.prototype.boolean=!1,G.prototype.commaOrSpaceSeparated=!1,G.prototype.commaSeparated=!1,G.prototype.defined=!1,G.prototype.mustUseProperty=!1,G.prototype.number=!1,G.prototype.overloadedBoolean=!1,G.prototype.property="",G.prototype.spaceSeparated=!1,G.prototype.space=void 0;let wl=0;const N=De(),W=De(),nn=De(),C=De(),U=De(),Be=De(),ne=De();function De(){return 2**++wl}const rn=Object.freeze(Object.defineProperty({__proto__:null,boolean:N,booleanish:W,commaOrSpaceSeparated:ne,commaSeparated:Be,number:C,overloadedBoolean:nn,spaceSeparated:U},Symbol.toStringTag,{value:"Module"})),Mt=Object.keys(rn);class kn extends G{constructor(t,n,r,i){let o=-1;if(super(t,n),Xn(this,"space",i),typeof r=="number")for(;++o<Mt.length;){const l=Mt[o];Xn(this,Mt[o],(r&rn[l])===rn[l])}}}kn.prototype.defined=!0;function Xn(e,t,n){n&&(e[t]=n)}function Ue(e){const t={},n={};for(const[r,i]of Object.entries(e.properties)){const o=new kn(r,e.transform(e.attributes||{},r),i,e.space);e.mustUseProperty&&e.mustUseProperty.includes(r)&&(o.mustUseProperty=!0),t[r]=o,n[tn(r)]=r,n[tn(o.attribute)]=r}return new nt(t,n,e.space)}const Xr=Ue({properties:{ariaActiveDescendant:null,ariaAtomic:W,ariaAutoComplete:null,ariaBusy:W,ariaChecked:W,ariaColCount:C,ariaColIndex:C,ariaColSpan:C,ariaControls:U,ariaCurrent:null,ariaDescribedBy:U,ariaDetails:null,ariaDisabled:W,ariaDropEffect:U,ariaErrorMessage:null,ariaExpanded:W,ariaFlowTo:U,ariaGrabbed:W,ariaHasPopup:null,ariaHidden:W,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:U,ariaLevel:C,ariaLive:null,ariaModal:W,ariaMultiLine:W,ariaMultiSelectable:W,ariaOrientation:null,ariaOwns:U,ariaPlaceholder:null,ariaPosInSet:C,ariaPressed:W,ariaReadOnly:W,ariaRelevant:null,ariaRequired:W,ariaRoleDescription:U,ariaRowCount:C,ariaRowIndex:C,ariaRowSpan:C,ariaSelected:W,ariaSetSize:C,ariaSort:null,ariaValueMax:C,ariaValueMin:C,ariaValueNow:C,ariaValueText:null,role:null},transform(e,t){return t==="role"?t:"aria-"+t.slice(4).toLowerCase()}});function Yr(e,t){return t in e?e[t]:t}function Gr(e,t){return Yr(e,t.toLowerCase())}const Cl=Ue({attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:Be,acceptCharset:U,accessKey:U,action:null,allow:null,allowFullScreen:N,allowPaymentRequest:N,allowUserMedia:N,alt:null,as:null,async:N,autoCapitalize:null,autoComplete:U,autoFocus:N,autoPlay:N,blocking:U,capture:null,charSet:null,checked:N,cite:null,className:U,cols:C,colSpan:null,content:null,contentEditable:W,controls:N,controlsList:U,coords:C|Be,crossOrigin:null,data:null,dateTime:null,decoding:null,default:N,defer:N,dir:null,dirName:null,disabled:N,download:nn,draggable:W,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:N,formTarget:null,headers:U,height:C,hidden:nn,high:C,href:null,hrefLang:null,htmlFor:U,httpEquiv:U,id:null,imageSizes:null,imageSrcSet:null,inert:N,inputMode:null,integrity:null,is:null,isMap:N,itemId:null,itemProp:U,itemRef:U,itemScope:N,itemType:U,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:N,low:C,manifest:null,max:null,maxLength:C,media:null,method:null,min:null,minLength:C,multiple:N,muted:N,name:null,nonce:null,noModule:N,noValidate:N,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeToggle:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onScrollEnd:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:N,optimum:C,pattern:null,ping:U,placeholder:null,playsInline:N,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:N,referrerPolicy:null,rel:U,required:N,reversed:N,rows:C,rowSpan:C,sandbox:U,scope:null,scoped:N,seamless:N,selected:N,shadowRootClonable:N,shadowRootDelegatesFocus:N,shadowRootMode:null,shape:null,size:C,sizes:null,slot:null,span:C,spellCheck:W,src:null,srcDoc:null,srcLang:null,srcSet:null,start:C,step:null,style:null,tabIndex:C,target:null,title:null,translate:null,type:null,typeMustMatch:N,useMap:null,value:W,width:C,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:U,axis:null,background:null,bgColor:null,border:C,borderColor:null,bottomMargin:C,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:N,declare:N,event:null,face:null,frame:null,frameBorder:null,hSpace:C,leftMargin:C,link:null,longDesc:null,lowSrc:null,marginHeight:C,marginWidth:C,noResize:N,noHref:N,noShade:N,noWrap:N,object:null,profile:null,prompt:null,rev:null,rightMargin:C,rules:null,scheme:null,scrolling:W,standby:null,summary:null,text:null,topMargin:C,valueType:null,version:null,vAlign:null,vLink:null,vSpace:C,allowTransparency:null,autoCorrect:null,autoSave:null,disablePictureInPicture:N,disableRemotePlayback:N,prefix:null,property:null,results:C,security:null,unselectable:null},space:"html",transform:Gr}),Sl=Ue({attributes:{accentHeight:"accent-height",alignmentBaseline:"alignment-baseline",arabicForm:"arabic-form",baselineShift:"baseline-shift",capHeight:"cap-height",className:"class",clipPath:"clip-path",clipRule:"clip-rule",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",crossOrigin:"crossorigin",dataType:"datatype",dominantBaseline:"dominant-baseline",enableBackground:"enable-background",fillOpacity:"fill-opacity",fillRule:"fill-rule",floodColor:"flood-color",floodOpacity:"flood-opacity",fontFamily:"font-family",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",glyphName:"glyph-name",glyphOrientationHorizontal:"glyph-orientation-horizontal",glyphOrientationVertical:"glyph-orientation-vertical",hrefLang:"hreflang",horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",horizOriginY:"horiz-origin-y",imageRendering:"image-rendering",letterSpacing:"letter-spacing",lightingColor:"lighting-color",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",navDown:"nav-down",navDownLeft:"nav-down-left",navDownRight:"nav-down-right",navLeft:"nav-left",navNext:"nav-next",navPrev:"nav-prev",navRight:"nav-right",navUp:"nav-up",navUpLeft:"nav-up-left",navUpRight:"nav-up-right",onAbort:"onabort",onActivate:"onactivate",onAfterPrint:"onafterprint",onBeforePrint:"onbeforeprint",onBegin:"onbegin",onCancel:"oncancel",onCanPlay:"oncanplay",onCanPlayThrough:"oncanplaythrough",onChange:"onchange",onClick:"onclick",onClose:"onclose",onCopy:"oncopy",onCueChange:"oncuechange",onCut:"oncut",onDblClick:"ondblclick",onDrag:"ondrag",onDragEnd:"ondragend",onDragEnter:"ondragenter",onDragExit:"ondragexit",onDragLeave:"ondragleave",onDragOver:"ondragover",onDragStart:"ondragstart",onDrop:"ondrop",onDurationChange:"ondurationchange",onEmptied:"onemptied",onEnd:"onend",onEnded:"onended",onError:"onerror",onFocus:"onfocus",onFocusIn:"onfocusin",onFocusOut:"onfocusout",onHashChange:"onhashchange",onInput:"oninput",onInvalid:"oninvalid",onKeyDown:"onkeydown",onKeyPress:"onkeypress",onKeyUp:"onkeyup",onLoad:"onload",onLoadedData:"onloadeddata",onLoadedMetadata:"onloadedmetadata",onLoadStart:"onloadstart",onMessage:"onmessage",onMouseDown:"onmousedown",onMouseEnter:"onmouseenter",onMouseLeave:"onmouseleave",onMouseMove:"onmousemove",onMouseOut:"onmouseout",onMouseOver:"onmouseover",onMouseUp:"onmouseup",onMouseWheel:"onmousewheel",onOffline:"onoffline",onOnline:"ononline",onPageHide:"onpagehide",onPageShow:"onpageshow",onPaste:"onpaste",onPause:"onpause",onPlay:"onplay",onPlaying:"onplaying",onPopState:"onpopstate",onProgress:"onprogress",onRateChange:"onratechange",onRepeat:"onrepeat",onReset:"onreset",onResize:"onresize",onScroll:"onscroll",onSeeked:"onseeked",onSeeking:"onseeking",onSelect:"onselect",onShow:"onshow",onStalled:"onstalled",onStorage:"onstorage",onSubmit:"onsubmit",onSuspend:"onsuspend",onTimeUpdate:"ontimeupdate",onToggle:"ontoggle",onUnload:"onunload",onVolumeChange:"onvolumechange",onWaiting:"onwaiting",onZoom:"onzoom",overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pointerEvents:"pointer-events",referrerPolicy:"referrerpolicy",renderingIntent:"rendering-intent",shapeRendering:"shape-rendering",stopColor:"stop-color",stopOpacity:"stop-opacity",strikethroughPosition:"strikethrough-position",strikethroughThickness:"strikethrough-thickness",strokeDashArray:"stroke-dasharray",strokeDashOffset:"stroke-dashoffset",strokeLineCap:"stroke-linecap",strokeLineJoin:"stroke-linejoin",strokeMiterLimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",tabIndex:"tabindex",textAnchor:"text-anchor",textDecoration:"text-decoration",textRendering:"text-rendering",transformOrigin:"transform-origin",typeOf:"typeof",underlinePosition:"underline-position",underlineThickness:"underline-thickness",unicodeBidi:"unicode-bidi",unicodeRange:"unicode-range",unitsPerEm:"units-per-em",vAlphabetic:"v-alphabetic",vHanging:"v-hanging",vIdeographic:"v-ideographic",vMathematical:"v-mathematical",vectorEffect:"vector-effect",vertAdvY:"vert-adv-y",vertOriginX:"vert-origin-x",vertOriginY:"vert-origin-y",wordSpacing:"word-spacing",writingMode:"writing-mode",xHeight:"x-height",playbackOrder:"playbackorder",timelineBegin:"timelinebegin"},properties:{about:ne,accentHeight:C,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:C,amplitude:C,arabicForm:null,ascent:C,attributeName:null,attributeType:null,azimuth:C,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:C,by:null,calcMode:null,capHeight:C,className:U,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:C,diffuseConstant:C,direction:null,display:null,dur:null,divisor:C,dominantBaseline:null,download:N,dx:null,dy:null,edgeMode:null,editable:null,elevation:C,enableBackground:null,end:null,event:null,exponent:C,externalResourcesRequired:null,fill:null,fillOpacity:C,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:Be,g2:Be,glyphName:Be,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:C,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:C,horizOriginX:C,horizOriginY:C,id:null,ideographic:C,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:C,k:C,k1:C,k2:C,k3:C,k4:C,kernelMatrix:ne,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:C,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:C,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,onZoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:C,overlineThickness:C,paintOrder:null,panose1:null,path:null,pathLength:C,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:U,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:C,pointsAtY:C,pointsAtZ:C,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:ne,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:ne,rev:ne,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:ne,requiredFeatures:ne,requiredFonts:ne,requiredFormats:ne,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:C,specularExponent:C,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:C,strikethroughThickness:C,string:null,stroke:null,strokeDashArray:ne,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:C,strokeOpacity:C,strokeWidth:null,style:null,surfaceScale:C,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:ne,tabIndex:C,tableValues:null,target:null,targetX:C,targetY:C,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:ne,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:C,underlineThickness:C,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:C,values:null,vAlphabetic:C,vMathematical:C,vectorEffect:null,vHanging:C,vIdeographic:C,version:null,vertAdvY:C,vertOriginX:C,vertOriginY:C,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:C,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null},space:"svg",transform:Yr}),Jr=Ue({properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null},space:"xlink",transform(e,t){return"xlink:"+t.slice(5).toLowerCase()}}),ei=Ue({attributes:{xmlnsxlink:"xmlns:xlink"},properties:{xmlnsXLink:null,xmlns:null},space:"xmlns",transform:Gr}),ti=Ue({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:"xml",transform(e,t){return"xml:"+t.slice(3).toLowerCase()}}),Il={classId:"classID",dataType:"datatype",itemId:"itemID",strokeDashArray:"strokeDasharray",strokeDashOffset:"strokeDashoffset",strokeLineCap:"strokeLinecap",strokeLineJoin:"strokeLinejoin",strokeMiterLimit:"strokeMiterlimit",typeOf:"typeof",xLinkActuate:"xlinkActuate",xLinkArcRole:"xlinkArcrole",xLinkHref:"xlinkHref",xLinkRole:"xlinkRole",xLinkShow:"xlinkShow",xLinkTitle:"xlinkTitle",xLinkType:"xlinkType",xmlnsXLink:"xmlnsXlink"},El=/[A-Z]/g,Yn=/-[a-z]/g,Tl=/^data[-\w.:]+$/i;function Al(e,t){const n=tn(t);let r=t,i=G;if(n in e.normal)return e.property[e.normal[n]];if(n.length>4&&n.slice(0,4)==="data"&&Tl.test(t)){if(t.charAt(4)==="-"){const o=t.slice(5).replace(Yn,_l);r="data"+o.charAt(0).toUpperCase()+o.slice(1)}else{const o=t.slice(4);if(!Yn.test(o)){let l=o.replace(El,Pl);l.charAt(0)!=="-"&&(l="-"+l),t="data"+l}}i=kn}return new i(r,t)}function Pl(e){return"-"+e.toLowerCase()}function _l(e){return e.charAt(1).toUpperCase()}const Dl=Zr([Xr,Cl,Jr,ei,ti],"html"),bn=Zr([Xr,Sl,Jr,ei,ti],"svg");var Re={},Ft,Gn;function Ll(){if(Gn)return Ft;Gn=1;var e=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,t=/\n/g,n=/^\s*/,r=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,i=/^:\s*/,o=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,l=/^[;\s]*/,a=/^\s+|\s+$/g,s=` +`,c="/",f="*",u="",h="comment",p="declaration";Ft=function(x,w){if(typeof x!="string")throw new TypeError("First argument must be a string");if(!x)return[];w=w||{};var y=1,S=1;function I(L){var T=L.match(t);T&&(y+=T.length);var M=L.lastIndexOf(s);S=~M?L.length-M:S+L.length}function A(){var L={line:y,column:S};return function(T){return T.position=new R(L),P(),T}}function R(L){this.start=L,this.end={line:y,column:S},this.source=w.source}R.prototype.content=x;function b(L){var T=new Error(w.source+":"+y+":"+S+": "+L);if(T.reason=L,T.filename=w.source,T.line=y,T.column=S,T.source=x,!w.silent)throw T}function F(L){var T=L.exec(x);if(T){var M=T[0];return I(M),x=x.slice(M.length),T}}function P(){F(n)}function j(L){var T;for(L=L||[];T=v();)T!==!1&&L.push(T);return L}function v(){var L=A();if(!(c!=x.charAt(0)||f!=x.charAt(1))){for(var T=2;u!=x.charAt(T)&&(f!=x.charAt(T)||c!=x.charAt(T+1));)++T;if(T+=2,u===x.charAt(T-1))return b("End of comment missing");var M=x.slice(2,T-2);return S+=2,I(M),x=x.slice(T),S+=2,L({type:h,comment:M})}}function _(){var L=A(),T=F(r);if(T){if(v(),!F(i))return b("property missing ':'");var M=F(o),Q=L({type:p,property:g(T[0].replace(e,u)),value:M?g(M[0].replace(e,u)):u});return F(l),Q}}function D(){var L=[];j(L);for(var T;T=_();)T!==!1&&(L.push(T),j(L));return L}return P(),D()};function g(x){return x?x.replace(a,u):u}return Ft}var Jn;function Ol(){if(Jn)return Re;Jn=1;var e=Re&&Re.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(Re,"__esModule",{value:!0}),Re.default=n;const t=e(Ll());function n(r,i){let o=null;if(!r||typeof r!="string")return o;const l=(0,t.default)(r),a=typeof i=="function";return l.forEach(s=>{if(s.type!=="declaration")return;const{property:c,value:f}=s;a?i(c,f,s):f&&(o=o||{},o[c]=f)}),o}return Re}var Ze={},er;function zl(){if(er)return Ze;er=1,Object.defineProperty(Ze,"__esModule",{value:!0}),Ze.camelCase=void 0;var e=/^--[a-zA-Z0-9_-]+$/,t=/-([a-z])/g,n=/^[^-]+$/,r=/^-(webkit|moz|ms|o|khtml)-/,i=/^-(ms)-/,o=function(c){return!c||n.test(c)||e.test(c)},l=function(c,f){return f.toUpperCase()},a=function(c,f){return"".concat(f,"-")},s=function(c,f){return f===void 0&&(f={}),o(c)?c:(c=c.toLowerCase(),f.reactCompat?c=c.replace(i,a):c=c.replace(r,a),c.replace(t,l))};return Ze.camelCase=s,Ze}var Xe,tr;function Ml(){if(tr)return Xe;tr=1;var e=Xe&&Xe.__importDefault||function(i){return i&&i.__esModule?i:{default:i}},t=e(Ol()),n=zl();function r(i,o){var l={};return!i||typeof i!="string"||(0,t.default)(i,function(a,s){a&&s&&(l[(0,n.camelCase)(a,o)]=s)}),l}return r.default=r,Xe=r,Xe}var Fl=Ml();const Rl=Hr(Fl),ni=ri("end"),wn=ri("start");function ri(e){return t;function t(n){const r=n&&n.position&&n.position[e]||{};if(typeof r.line=="number"&&r.line>0&&typeof r.column=="number"&&r.column>0)return{line:r.line,column:r.column,offset:typeof r.offset=="number"&&r.offset>-1?r.offset:void 0}}}function Nl(e){const t=wn(e),n=ni(e);if(t&&n)return{start:t,end:n}}function rt(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?nr(e.position):"start"in e||"end"in e?nr(e):"line"in e||"column"in e?on(e):""}function on(e){return rr(e&&e.line)+":"+rr(e&&e.column)}function nr(e){return on(e&&e.start)+"-"+on(e&&e.end)}function rr(e){return e&&typeof e=="number"?e:1}class X extends Error{constructor(t,n,r){super(),typeof n=="string"&&(r=n,n=void 0);let i="",o={},l=!1;if(n&&("line"in n&&"column"in n?o={place:n}:"start"in n&&"end"in n?o={place:n}:"type"in n?o={ancestors:[n],place:n.position}:o={...n}),typeof t=="string"?i=t:!o.cause&&t&&(l=!0,i=t.message,o.cause=t),!o.ruleId&&!o.source&&typeof r=="string"){const s=r.indexOf(":");s===-1?o.ruleId=r:(o.source=r.slice(0,s),o.ruleId=r.slice(s+1))}if(!o.place&&o.ancestors&&o.ancestors){const s=o.ancestors[o.ancestors.length-1];s&&(o.place=s.position)}const a=o.place&&"start"in o.place?o.place.start:o.place;this.ancestors=o.ancestors||void 0,this.cause=o.cause||void 0,this.column=a?a.column:void 0,this.fatal=void 0,this.file="",this.message=i,this.line=a?a.line:void 0,this.name=rt(o.place)||"1:1",this.place=o.place||void 0,this.reason=this.message,this.ruleId=o.ruleId||void 0,this.source=o.source||void 0,this.stack=l&&o.cause&&typeof o.cause.stack=="string"?o.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}X.prototype.file="",X.prototype.name="",X.prototype.reason="",X.prototype.message="",X.prototype.stack="",X.prototype.column=void 0,X.prototype.line=void 0,X.prototype.ancestors=void 0,X.prototype.cause=void 0,X.prototype.fatal=void 0,X.prototype.place=void 0,X.prototype.ruleId=void 0,X.prototype.source=void 0;const Cn={}.hasOwnProperty,jl=new Map,Bl=/[A-Z]/g,Hl=new Set(["table","tbody","thead","tfoot","tr"]),Ul=new Set(["td","th"]),ii="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function Vl(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let r;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");r=Yl(n,t.jsxDEV)}else{if(typeof t.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof t.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");r=Xl(n,t.jsx,t.jsxs)}const i={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?bn:Dl,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},o=oi(i,e,void 0);return o&&typeof o!="string"?o:i.create(e,i.Fragment,{children:o||void 0},void 0)}function oi(e,t,n){if(t.type==="element")return ql(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return $l(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return Ql(e,t,n);if(t.type==="mdxjsEsm")return Wl(e,t);if(t.type==="root")return Kl(e,t,n);if(t.type==="text")return Zl(e,t)}function ql(e,t,n){const r=e.schema;let i=r;t.tagName.toLowerCase()==="svg"&&r.space==="html"&&(i=bn,e.schema=i),e.ancestors.push(t);const o=ai(e,t.tagName,!1),l=Gl(e,t);let a=In(e,t);return Hl.has(t.tagName)&&(a=a.filter(function(s){return typeof s=="string"?!bl(s):!0})),li(e,l,o,t),Sn(l,a),e.ancestors.pop(),e.schema=r,e.create(t,o,l,n)}function $l(e,t){if(t.data&&t.data.estree&&e.evaluater){const n=t.data.estree.body[0];return n.type,e.evaluater.evaluateExpression(n.expression)}ot(e,t.position)}function Wl(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);ot(e,t.position)}function Ql(e,t,n){const r=e.schema;let i=r;t.name==="svg"&&r.space==="html"&&(i=bn,e.schema=i),e.ancestors.push(t);const o=t.name===null?e.Fragment:ai(e,t.name,!0),l=Jl(e,t),a=In(e,t);return li(e,l,o,t),Sn(l,a),e.ancestors.pop(),e.schema=r,e.create(t,o,l,n)}function Kl(e,t,n){const r={};return Sn(r,In(e,t)),e.create(t,e.Fragment,r,n)}function Zl(e,t){return t.value}function li(e,t,n,r){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=r)}function Sn(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function Xl(e,t,n){return r;function r(i,o,l,a){const s=Array.isArray(l.children)?n:t;return a?s(o,l,a):s(o,l)}}function Yl(e,t){return n;function n(r,i,o,l){const a=Array.isArray(o.children),s=wn(r);return t(i,o,l,a,{columnNumber:s?s.column-1:void 0,fileName:e,lineNumber:s?s.line:void 0},void 0)}}function Gl(e,t){const n={};let r,i;for(i in t.properties)if(i!=="children"&&Cn.call(t.properties,i)){const o=ea(e,i,t.properties[i]);if(o){const[l,a]=o;e.tableCellAlignToStyle&&l==="align"&&typeof a=="string"&&Ul.has(t.tagName)?r=a:n[l]=a}}if(r){const o=n.style||(n.style={});o[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=r}return n}function Jl(e,t){const n={};for(const r of t.attributes)if(r.type==="mdxJsxExpressionAttribute")if(r.data&&r.data.estree&&e.evaluater){const i=r.data.estree.body[0];i.type;const o=i.expression;o.type;const l=o.properties[0];l.type,Object.assign(n,e.evaluater.evaluateExpression(l.argument))}else ot(e,t.position);else{const i=r.name;let o;if(r.value&&typeof r.value=="object")if(r.value.data&&r.value.data.estree&&e.evaluater){const l=r.value.data.estree.body[0];l.type,o=e.evaluater.evaluateExpression(l.expression)}else ot(e,t.position);else o=r.value===null?!0:r.value;n[i]=o}return n}function In(e,t){const n=[];let r=-1;const i=e.passKeys?new Map:jl;for(;++r<t.children.length;){const o=t.children[r];let l;if(e.passKeys){const s=o.type==="element"?o.tagName:o.type==="mdxJsxFlowElement"||o.type==="mdxJsxTextElement"?o.name:void 0;if(s){const c=i.get(s)||0;l=s+"-"+c,i.set(s,c+1)}}const a=oi(e,o,l);a!==void 0&&n.push(a)}return n}function ea(e,t,n){const r=Al(e.schema,t);if(!(n==null||typeof n=="number"&&Number.isNaN(n))){if(Array.isArray(n)&&(n=r.commaSeparated?gl(n):fl(n)),r.property==="style"){let i=typeof n=="object"?n:ta(e,String(n));return e.stylePropertyNameCase==="css"&&(i=na(i)),["style",i]}return[e.elementAttributeNameCase==="react"&&r.space?Il[r.property]||r.property:r.attribute,n]}}function ta(e,t){try{return Rl(t,{reactCompat:!0})}catch(n){if(e.ignoreInvalidStyle)return{};const r=n,i=new X("Cannot parse `style` attribute",{ancestors:e.ancestors,cause:r,ruleId:"style",source:"hast-util-to-jsx-runtime"});throw i.file=e.filePath||void 0,i.url=ii+"#cannot-parse-style-attribute",i}}function ai(e,t,n){let r;if(!n)r={type:"Literal",value:t};else if(t.includes(".")){const i=t.split(".");let o=-1,l;for(;++o<i.length;){const a=Kn(i[o])?{type:"Identifier",name:i[o]}:{type:"Literal",value:i[o]};l=l?{type:"MemberExpression",object:l,property:a,computed:!!(o&&a.type==="Literal"),optional:!1}:a}r=l}else r=Kn(t)&&!/^[a-z]/.test(t)?{type:"Identifier",name:t}:{type:"Literal",value:t};if(r.type==="Literal"){const i=r.value;return Cn.call(e.components,i)?e.components[i]:i}if(e.evaluater)return e.evaluater.evaluateExpression(r);ot(e)}function ot(e,t){const n=new X("Cannot handle MDX estrees without `createEvaluater`",{ancestors:e.ancestors,place:t,ruleId:"mdx-estree",source:"hast-util-to-jsx-runtime"});throw n.file=e.filePath||void 0,n.url=ii+"#cannot-handle-mdx-estrees-without-createevaluater",n}function na(e){const t={};let n;for(n in e)Cn.call(e,n)&&(t[ra(n)]=e[n]);return t}function ra(e){let t=e.replace(Bl,ia);return t.slice(0,3)==="ms-"&&(t="-"+t),t}function ia(e){return"-"+e.toLowerCase()}function oa(e){const t=this;t.compiler=n;function n(r,i){return Vl(r,{filePath:i.path,...e})}}function la(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function aa(e,t,n){const r=lo({}.ignore||[]),i=sa(t);let o=-1;for(;++o<i.length;)ao(e,"text",l);function l(s,c){let f=-1,u;for(;++f<c.length;){const h=c[f],p=u?u.children:void 0;if(r(h,p?p.indexOf(h):void 0,u))return;u=h}if(u)return a(s,c)}function a(s,c){const f=c[c.length-1],u=i[o][0],h=i[o][1];let p=0;const g=f.children.indexOf(s);let x=!1,w=[];u.lastIndex=0;let y=u.exec(s.value);for(;y;){const S=y.index,I={index:y.index,input:y.input,stack:[...c,s]};let A=h(...y,I);if(typeof A=="string"&&(A=A.length>0?{type:"text",value:A}:void 0),A===!1?u.lastIndex=S+1:(p!==S&&w.push({type:"text",value:s.value.slice(p,S)}),Array.isArray(A)?w.push(...A):A&&w.push(A),p=S+y[0].length,x=!0),!u.global)break;y=u.exec(s.value)}return x?(p<s.value.length&&w.push({type:"text",value:s.value.slice(p)}),f.children.splice(g,1,...w)):w=[s],g+w.length}}function sa(e){const t=[];if(!Array.isArray(e))throw new TypeError("Expected find and replace tuple or list of tuples");const n=!e[0]||Array.isArray(e[0])?e:[e];let r=-1;for(;++r<n.length;){const i=n[r];t.push([ca(i[0]),ua(i[1])])}return t}function ca(e){return typeof e=="string"?new RegExp(la(e),"g"):e}function ua(e){return typeof e=="function"?e:function(){return e}}function fa(e){aa(e,[/\r?\n|\r/g,pa])}function pa(){return{type:"break"}}function ha(){return function(e){fa(e)}}const da={};function ma(e,t){const n=da,r=typeof n.includeImageAlt=="boolean"?n.includeImageAlt:!0,i=typeof n.includeHtml=="boolean"?n.includeHtml:!0;return si(e,r,i)}function si(e,t,n){if(ga(e)){if("value"in e)return e.type==="html"&&!n?"":e.value;if(t&&"alt"in e&&e.alt)return e.alt;if("children"in e)return ir(e.children,t,n)}return Array.isArray(e)?ir(e,t,n):""}function ir(e,t,n){const r=[];let i=-1;for(;++i<e.length;)r[i]=si(e[i],t,n);return r.join("")}function ga(e){return!!(e&&typeof e=="object")}const or=document.createElement("i");function En(e){const t="&"+e+";";or.innerHTML=t;const n=or.textContent;return n.charCodeAt(n.length-1)===59&&e!=="semi"||n===t?!1:n}function he(e,t,n,r){const i=e.length;let o=0,l;if(t<0?t=-t>i?0:i+t:t=t>i?i:t,n=n>0?n:0,r.length<1e4)l=Array.from(r),l.unshift(t,n),e.splice(...l);else for(n&&e.splice(t,n);o<r.length;)l=r.slice(o,o+1e4),l.unshift(t,0),e.splice(...l),o+=1e4,t+=1e4}function oe(e,t){return e.length>0?(he(e,e.length,0,t),e):t}const lr={}.hasOwnProperty;function ya(e){const t={};let n=-1;for(;++n<e.length;)va(t,e[n]);return t}function va(e,t){let n;for(n in t){const r=(lr.call(e,n)?e[n]:void 0)||(e[n]={}),i=t[n];let o;if(i)for(o in i){lr.call(r,o)||(r[o]=[]);const l=i[o];xa(r[o],Array.isArray(l)?l:l?[l]:[])}}}function xa(e,t){let n=-1;const r=[];for(;++n<t.length;)(t[n].add==="after"?e:r).push(t[n]);he(e,0,0,r)}function ci(e,t){const n=Number.parseInt(e,t);return n<9||n===11||n>13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)===65535||(n&65535)===65534||n>1114111?"�":String.fromCodePoint(n)}function He(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const pe=Ie(/[A-Za-z]/),ie=Ie(/[\dA-Za-z]/),ka=Ie(/[#-'*+\--9=?A-Z^-~]/);function ln(e){return e!==null&&(e<32||e===127)}const an=Ie(/\d/),ba=Ie(/[\dA-Fa-f]/),wa=Ie(/[!-/:-@[-`{-~]/);function O(e){return e!==null&&e<-2}function J(e){return e!==null&&(e<0||e===32)}function B(e){return e===-2||e===-1||e===32}const Ca=Ie(new RegExp("\\p{P}|\\p{S}","u")),Sa=Ie(/\s/);function Ie(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function Ve(e){const t=[];let n=-1,r=0,i=0;for(;++n<e.length;){const o=e.charCodeAt(n);let l="";if(o===37&&ie(e.charCodeAt(n+1))&&ie(e.charCodeAt(n+2)))i=2;else if(o<128)/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(o))||(l=String.fromCharCode(o));else if(o>55295&&o<57344){const a=e.charCodeAt(n+1);o<56320&&a>56319&&a<57344?(l=String.fromCharCode(o,a),i=1):l="�"}else l=String.fromCharCode(o);l&&(t.push(e.slice(r,n),encodeURIComponent(l)),r=n+i+1,l=""),i&&(n+=i,i=0)}return t.join("")+e.slice(r)}function V(e,t,n,r){const i=r?r-1:Number.POSITIVE_INFINITY;let o=0;return l;function l(s){return B(s)?(e.enter(n),a(s)):t(s)}function a(s){return B(s)&&o++<i?(e.consume(s),a):(e.exit(n),t(s))}}const Ia={tokenize:Ea};function Ea(e){const t=e.attempt(this.parser.constructs.contentInitial,r,i);let n;return t;function r(a){if(a===null){e.consume(a);return}return e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),V(e,t,"linePrefix")}function i(a){return e.enter("paragraph"),o(a)}function o(a){const s=e.enter("chunkText",{contentType:"text",previous:n});return n&&(n.next=s),n=s,l(a)}function l(a){if(a===null){e.exit("chunkText"),e.exit("paragraph"),e.consume(a);return}return O(a)?(e.consume(a),e.exit("chunkText"),o):(e.consume(a),l)}}const Ta={tokenize:Aa},ar={tokenize:Pa};function Aa(e){const t=this,n=[];let r=0,i,o,l;return a;function a(I){if(r<n.length){const A=n[r];return t.containerState=A[1],e.attempt(A[0].continuation,s,c)(I)}return c(I)}function s(I){if(r++,t.containerState._closeFlow){t.containerState._closeFlow=void 0,i&&S();const A=t.events.length;let R=A,b;for(;R--;)if(t.events[R][0]==="exit"&&t.events[R][1].type==="chunkFlow"){b=t.events[R][1].end;break}y(r);let F=A;for(;F<t.events.length;)t.events[F][1].end={...b},F++;return he(t.events,R+1,0,t.events.slice(A)),t.events.length=F,c(I)}return a(I)}function c(I){if(r===n.length){if(!i)return h(I);if(i.currentConstruct&&i.currentConstruct.concrete)return g(I);t.interrupt=!!(i.currentConstruct&&!i._gfmTableDynamicInterruptHack)}return t.containerState={},e.check(ar,f,u)(I)}function f(I){return i&&S(),y(r),h(I)}function u(I){return t.parser.lazy[t.now().line]=r!==n.length,l=t.now().offset,g(I)}function h(I){return t.containerState={},e.attempt(ar,p,g)(I)}function p(I){return r++,n.push([t.currentConstruct,t.containerState]),h(I)}function g(I){if(I===null){i&&S(),y(0),e.consume(I);return}return i=i||t.parser.flow(t.now()),e.enter("chunkFlow",{_tokenizer:i,contentType:"flow",previous:o}),x(I)}function x(I){if(I===null){w(e.exit("chunkFlow"),!0),y(0),e.consume(I);return}return O(I)?(e.consume(I),w(e.exit("chunkFlow")),r=0,t.interrupt=void 0,a):(e.consume(I),x)}function w(I,A){const R=t.sliceStream(I);if(A&&R.push(null),I.previous=o,o&&(o.next=I),o=I,i.defineSkip(I.start),i.write(R),t.parser.lazy[I.start.line]){let b=i.events.length;for(;b--;)if(i.events[b][1].start.offset<l&&(!i.events[b][1].end||i.events[b][1].end.offset>l))return;const F=t.events.length;let P=F,j,v;for(;P--;)if(t.events[P][0]==="exit"&&t.events[P][1].type==="chunkFlow"){if(j){v=t.events[P][1].end;break}j=!0}for(y(r),b=F;b<t.events.length;)t.events[b][1].end={...v},b++;he(t.events,P+1,0,t.events.slice(F)),t.events.length=b}}function y(I){let A=n.length;for(;A-- >I;){const R=n[A];t.containerState=R[1],R[0].exit.call(t,e)}n.length=I}function S(){i.write([null]),o=void 0,i=void 0,t.containerState._closeFlow=void 0}}function Pa(e,t,n){return V(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function sr(e){if(e===null||J(e)||Sa(e))return 1;if(Ca(e))return 2}function Tn(e,t,n){const r=[];let i=-1;for(;++i<e.length;){const o=e[i].resolveAll;o&&!r.includes(o)&&(t=o(t,n),r.push(o))}return t}const sn={name:"attention",resolveAll:_a,tokenize:Da};function _a(e,t){let n=-1,r,i,o,l,a,s,c,f;for(;++n<e.length;)if(e[n][0]==="enter"&&e[n][1].type==="attentionSequence"&&e[n][1]._close){for(r=n;r--;)if(e[r][0]==="exit"&&e[r][1].type==="attentionSequence"&&e[r][1]._open&&t.sliceSerialize(e[r][1]).charCodeAt(0)===t.sliceSerialize(e[n][1]).charCodeAt(0)){if((e[r][1]._close||e[n][1]._open)&&(e[n][1].end.offset-e[n][1].start.offset)%3&&!((e[r][1].end.offset-e[r][1].start.offset+e[n][1].end.offset-e[n][1].start.offset)%3))continue;s=e[r][1].end.offset-e[r][1].start.offset>1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const u={...e[r][1].end},h={...e[n][1].start};cr(u,-s),cr(h,s),l={type:s>1?"strongSequence":"emphasisSequence",start:u,end:{...e[r][1].end}},a={type:s>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:h},o={type:s>1?"strongText":"emphasisText",start:{...e[r][1].end},end:{...e[n][1].start}},i={type:s>1?"strong":"emphasis",start:{...l.start},end:{...a.end}},e[r][1].end={...l.start},e[n][1].start={...a.end},c=[],e[r][1].end.offset-e[r][1].start.offset&&(c=oe(c,[["enter",e[r][1],t],["exit",e[r][1],t]])),c=oe(c,[["enter",i,t],["enter",l,t],["exit",l,t],["enter",o,t]]),c=oe(c,Tn(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),c=oe(c,[["exit",o,t],["enter",a,t],["exit",a,t],["exit",i,t]]),e[n][1].end.offset-e[n][1].start.offset?(f=2,c=oe(c,[["enter",e[n][1],t],["exit",e[n][1],t]])):f=0,he(e,r-1,n-r+3,c),n=r+c.length-f-2;break}}for(n=-1;++n<e.length;)e[n][1].type==="attentionSequence"&&(e[n][1].type="data");return e}function Da(e,t){const n=this.parser.constructs.attentionMarkers.null,r=this.previous,i=sr(r);let o;return l;function l(s){return o=s,e.enter("attentionSequence"),a(s)}function a(s){if(s===o)return e.consume(s),a;const c=e.exit("attentionSequence"),f=sr(s),u=!f||f===2&&i||n.includes(s),h=!i||i===2&&f||n.includes(r);return c._open=!!(o===42?u:u&&(i||!h)),c._close=!!(o===42?h:h&&(f||!u)),t(s)}}function cr(e,t){e.column+=t,e.offset+=t,e._bufferIndex+=t}const La={name:"autolink",tokenize:Oa};function Oa(e,t,n){let r=0;return i;function i(p){return e.enter("autolink"),e.enter("autolinkMarker"),e.consume(p),e.exit("autolinkMarker"),e.enter("autolinkProtocol"),o}function o(p){return pe(p)?(e.consume(p),l):p===64?n(p):c(p)}function l(p){return p===43||p===45||p===46||ie(p)?(r=1,a(p)):c(p)}function a(p){return p===58?(e.consume(p),r=0,s):(p===43||p===45||p===46||ie(p))&&r++<32?(e.consume(p),a):(r=0,c(p))}function s(p){return p===62?(e.exit("autolinkProtocol"),e.enter("autolinkMarker"),e.consume(p),e.exit("autolinkMarker"),e.exit("autolink"),t):p===null||p===32||p===60||ln(p)?n(p):(e.consume(p),s)}function c(p){return p===64?(e.consume(p),f):ka(p)?(e.consume(p),c):n(p)}function f(p){return ie(p)?u(p):n(p)}function u(p){return p===46?(e.consume(p),r=0,f):p===62?(e.exit("autolinkProtocol").type="autolinkEmail",e.enter("autolinkMarker"),e.consume(p),e.exit("autolinkMarker"),e.exit("autolink"),t):h(p)}function h(p){if((p===45||ie(p))&&r++<63){const g=p===45?h:u;return e.consume(p),g}return n(p)}}const Pt={partial:!0,tokenize:za};function za(e,t,n){return r;function r(o){return B(o)?V(e,i,"linePrefix")(o):i(o)}function i(o){return o===null||O(o)?t(o):n(o)}}const ui={continuation:{tokenize:Fa},exit:Ra,name:"blockQuote",tokenize:Ma};function Ma(e,t,n){const r=this;return i;function i(l){if(l===62){const a=r.containerState;return a.open||(e.enter("blockQuote",{_container:!0}),a.open=!0),e.enter("blockQuotePrefix"),e.enter("blockQuoteMarker"),e.consume(l),e.exit("blockQuoteMarker"),o}return n(l)}function o(l){return B(l)?(e.enter("blockQuotePrefixWhitespace"),e.consume(l),e.exit("blockQuotePrefixWhitespace"),e.exit("blockQuotePrefix"),t):(e.exit("blockQuotePrefix"),t(l))}}function Fa(e,t,n){const r=this;return i;function i(l){return B(l)?V(e,o,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(l):o(l)}function o(l){return e.attempt(ui,t,n)(l)}}function Ra(e){e.exit("blockQuote")}const fi={name:"characterEscape",tokenize:Na};function Na(e,t,n){return r;function r(o){return e.enter("characterEscape"),e.enter("escapeMarker"),e.consume(o),e.exit("escapeMarker"),i}function i(o){return wa(o)?(e.enter("characterEscapeValue"),e.consume(o),e.exit("characterEscapeValue"),e.exit("characterEscape"),t):n(o)}}const pi={name:"characterReference",tokenize:ja};function ja(e,t,n){const r=this;let i=0,o,l;return a;function a(u){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(u),e.exit("characterReferenceMarker"),s}function s(u){return u===35?(e.enter("characterReferenceMarkerNumeric"),e.consume(u),e.exit("characterReferenceMarkerNumeric"),c):(e.enter("characterReferenceValue"),o=31,l=ie,f(u))}function c(u){return u===88||u===120?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(u),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),o=6,l=ba,f):(e.enter("characterReferenceValue"),o=7,l=an,f(u))}function f(u){if(u===59&&i){const h=e.exit("characterReferenceValue");return l===ie&&!En(r.sliceSerialize(h))?n(u):(e.enter("characterReferenceMarker"),e.consume(u),e.exit("characterReferenceMarker"),e.exit("characterReference"),t)}return l(u)&&i++<o?(e.consume(u),f):n(u)}}const ur={partial:!0,tokenize:Ha},fr={concrete:!0,name:"codeFenced",tokenize:Ba};function Ba(e,t,n){const r=this,i={partial:!0,tokenize:R};let o=0,l=0,a;return s;function s(b){return c(b)}function c(b){const F=r.events[r.events.length-1];return o=F&&F[1].type==="linePrefix"?F[2].sliceSerialize(F[1],!0).length:0,a=b,e.enter("codeFenced"),e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),f(b)}function f(b){return b===a?(l++,e.consume(b),f):l<3?n(b):(e.exit("codeFencedFenceSequence"),B(b)?V(e,u,"whitespace")(b):u(b))}function u(b){return b===null||O(b)?(e.exit("codeFencedFence"),r.interrupt?t(b):e.check(ur,x,A)(b)):(e.enter("codeFencedFenceInfo"),e.enter("chunkString",{contentType:"string"}),h(b))}function h(b){return b===null||O(b)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),u(b)):B(b)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),V(e,p,"whitespace")(b)):b===96&&b===a?n(b):(e.consume(b),h)}function p(b){return b===null||O(b)?u(b):(e.enter("codeFencedFenceMeta"),e.enter("chunkString",{contentType:"string"}),g(b))}function g(b){return b===null||O(b)?(e.exit("chunkString"),e.exit("codeFencedFenceMeta"),u(b)):b===96&&b===a?n(b):(e.consume(b),g)}function x(b){return e.attempt(i,A,w)(b)}function w(b){return e.enter("lineEnding"),e.consume(b),e.exit("lineEnding"),y}function y(b){return o>0&&B(b)?V(e,S,"linePrefix",o+1)(b):S(b)}function S(b){return b===null||O(b)?e.check(ur,x,A)(b):(e.enter("codeFlowValue"),I(b))}function I(b){return b===null||O(b)?(e.exit("codeFlowValue"),S(b)):(e.consume(b),I)}function A(b){return e.exit("codeFenced"),t(b)}function R(b,F,P){let j=0;return v;function v(M){return b.enter("lineEnding"),b.consume(M),b.exit("lineEnding"),_}function _(M){return b.enter("codeFencedFence"),B(M)?V(b,D,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(M):D(M)}function D(M){return M===a?(b.enter("codeFencedFenceSequence"),L(M)):P(M)}function L(M){return M===a?(j++,b.consume(M),L):j>=l?(b.exit("codeFencedFenceSequence"),B(M)?V(b,T,"whitespace")(M):T(M)):P(M)}function T(M){return M===null||O(M)?(b.exit("codeFencedFence"),F(M)):P(M)}}}function Ha(e,t,n){const r=this;return i;function i(l){return l===null?n(l):(e.enter("lineEnding"),e.consume(l),e.exit("lineEnding"),o)}function o(l){return r.parser.lazy[r.now().line]?n(l):t(l)}}const Rt={name:"codeIndented",tokenize:Va},Ua={partial:!0,tokenize:qa};function Va(e,t,n){const r=this;return i;function i(c){return e.enter("codeIndented"),V(e,o,"linePrefix",5)(c)}function o(c){const f=r.events[r.events.length-1];return f&&f[1].type==="linePrefix"&&f[2].sliceSerialize(f[1],!0).length>=4?l(c):n(c)}function l(c){return c===null?s(c):O(c)?e.attempt(Ua,l,s)(c):(e.enter("codeFlowValue"),a(c))}function a(c){return c===null||O(c)?(e.exit("codeFlowValue"),l(c)):(e.consume(c),a)}function s(c){return e.exit("codeIndented"),t(c)}}function qa(e,t,n){const r=this;return i;function i(l){return r.parser.lazy[r.now().line]?n(l):O(l)?(e.enter("lineEnding"),e.consume(l),e.exit("lineEnding"),i):V(e,o,"linePrefix",5)(l)}function o(l){const a=r.events[r.events.length-1];return a&&a[1].type==="linePrefix"&&a[2].sliceSerialize(a[1],!0).length>=4?t(l):O(l)?i(l):n(l)}}const $a={name:"codeText",previous:Qa,resolve:Wa,tokenize:Ka};function Wa(e){let t=e.length-4,n=3,r,i;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(r=n;++r<t;)if(e[r][1].type==="codeTextData"){e[n][1].type="codeTextPadding",e[t][1].type="codeTextPadding",n+=2,t-=2;break}}for(r=n-1,t++;++r<=t;)i===void 0?r!==t&&e[r][1].type!=="lineEnding"&&(i=r):(r===t||e[r][1].type==="lineEnding")&&(e[i][1].type="codeTextData",r!==i+2&&(e[i][1].end=e[r-1][1].end,e.splice(i+2,r-i-2),t-=r-i-2,r=i+2),i=void 0);return e}function Qa(e){return e!==96||this.events[this.events.length-1][1].type==="characterEscape"}function Ka(e,t,n){let r=0,i,o;return l;function l(u){return e.enter("codeText"),e.enter("codeTextSequence"),a(u)}function a(u){return u===96?(e.consume(u),r++,a):(e.exit("codeTextSequence"),s(u))}function s(u){return u===null?n(u):u===32?(e.enter("space"),e.consume(u),e.exit("space"),s):u===96?(o=e.enter("codeTextSequence"),i=0,f(u)):O(u)?(e.enter("lineEnding"),e.consume(u),e.exit("lineEnding"),s):(e.enter("codeTextData"),c(u))}function c(u){return u===null||u===32||u===96||O(u)?(e.exit("codeTextData"),s(u)):(e.consume(u),c)}function f(u){return u===96?(e.consume(u),i++,f):i===r?(e.exit("codeTextSequence"),e.exit("codeText"),t(u)):(o.type="codeTextData",c(u))}}class Za{constructor(t){this.left=t?[...t]:[],this.right=[]}get(t){if(t<0||t>=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return t<this.left.length?this.left[t]:this.right[this.right.length-t+this.left.length-1]}get length(){return this.left.length+this.right.length}shift(){return this.setCursor(0),this.right.pop()}slice(t,n){const r=n??Number.POSITIVE_INFINITY;return r<this.left.length?this.left.slice(t,r):t>this.left.length?this.right.slice(this.right.length-r+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-r+this.left.length).reverse())}splice(t,n,r){const i=n||0;this.setCursor(Math.trunc(t));const o=this.right.splice(this.right.length-i,Number.POSITIVE_INFINITY);return r&&Ye(this.left,r),o.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),Ye(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),Ye(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t<this.left.length){const n=this.left.splice(t,Number.POSITIVE_INFINITY);Ye(this.right,n.reverse())}else{const n=this.right.splice(this.left.length+this.right.length-t,Number.POSITIVE_INFINITY);Ye(this.left,n.reverse())}}}function Ye(e,t){let n=0;if(t.length<1e4)e.push(...t);else for(;n<t.length;)e.push(...t.slice(n,n+1e4)),n+=1e4}function hi(e){const t={};let n=-1,r,i,o,l,a,s,c;const f=new Za(e);for(;++n<f.length;){for(;n in t;)n=t[n];if(r=f.get(n),n&&r[1].type==="chunkFlow"&&f.get(n-1)[1].type==="listItemPrefix"&&(s=r[1]._tokenizer.events,o=0,o<s.length&&s[o][1].type==="lineEndingBlank"&&(o+=2),o<s.length&&s[o][1].type==="content"))for(;++o<s.length&&s[o][1].type!=="content";)s[o][1].type==="chunkText"&&(s[o][1]._isInFirstContentOfListItem=!0,o++);if(r[0]==="enter")r[1].contentType&&(Object.assign(t,Xa(f,n)),n=t[n],c=!0);else if(r[1]._container){for(o=n,i=void 0;o--;)if(l=f.get(o),l[1].type==="lineEnding"||l[1].type==="lineEndingBlank")l[0]==="enter"&&(i&&(f.get(i)[1].type="lineEndingBlank"),l[1].type="lineEnding",i=o);else if(!(l[1].type==="linePrefix"||l[1].type==="listItemIndent"))break;i&&(r[1].end={...f.get(i)[1].start},a=f.slice(i,n),a.unshift(r),f.splice(i,n-i+1,a))}}return he(e,0,Number.POSITIVE_INFINITY,f.slice(0)),!c}function Xa(e,t){const n=e.get(t)[1],r=e.get(t)[2];let i=t-1;const o=[];let l=n._tokenizer;l||(l=r.parser[n.contentType](n.start),n._contentTypeTextTrailing&&(l._contentTypeTextTrailing=!0));const a=l.events,s=[],c={};let f,u,h=-1,p=n,g=0,x=0;const w=[x];for(;p;){for(;e.get(++i)[1]!==p;);o.push(i),p._tokenizer||(f=r.sliceStream(p),p.next||f.push(null),u&&l.defineSkip(p.start),p._isInFirstContentOfListItem&&(l._gfmTasklistFirstContentOfListItem=!0),l.write(f),p._isInFirstContentOfListItem&&(l._gfmTasklistFirstContentOfListItem=void 0)),u=p,p=p.next}for(p=n;++h<a.length;)a[h][0]==="exit"&&a[h-1][0]==="enter"&&a[h][1].type===a[h-1][1].type&&a[h][1].start.line!==a[h][1].end.line&&(x=h+1,w.push(x),p._tokenizer=void 0,p.previous=void 0,p=p.next);for(l.events=[],p?(p._tokenizer=void 0,p.previous=void 0):w.pop(),h=w.length;h--;){const y=a.slice(w[h],w[h+1]),S=o.pop();s.push([S,S+y.length-1]),e.splice(S,2,y)}for(s.reverse(),h=-1;++h<s.length;)c[g+s[h][0]]=g+s[h][1],g+=s[h][1]-s[h][0]-1;return c}const Ya={resolve:Ja,tokenize:es},Ga={partial:!0,tokenize:ts};function Ja(e){return hi(e),e}function es(e,t){let n;return r;function r(a){return e.enter("content"),n=e.enter("chunkContent",{contentType:"content"}),i(a)}function i(a){return a===null?o(a):O(a)?e.check(Ga,l,o)(a):(e.consume(a),i)}function o(a){return e.exit("chunkContent"),e.exit("content"),t(a)}function l(a){return e.consume(a),e.exit("chunkContent"),n.next=e.enter("chunkContent",{contentType:"content",previous:n}),n=n.next,i}}function ts(e,t,n){const r=this;return i;function i(l){return e.exit("chunkContent"),e.enter("lineEnding"),e.consume(l),e.exit("lineEnding"),V(e,o,"linePrefix")}function o(l){if(l===null||O(l))return n(l);const a=r.events[r.events.length-1];return!r.parser.constructs.disable.null.includes("codeIndented")&&a&&a[1].type==="linePrefix"&&a[2].sliceSerialize(a[1],!0).length>=4?t(l):e.interrupt(r.parser.constructs.flow,n,t)(l)}}function di(e,t,n,r,i,o,l,a,s){const c=s||Number.POSITIVE_INFINITY;let f=0;return u;function u(y){return y===60?(e.enter(r),e.enter(i),e.enter(o),e.consume(y),e.exit(o),h):y===null||y===32||y===41||ln(y)?n(y):(e.enter(r),e.enter(l),e.enter(a),e.enter("chunkString",{contentType:"string"}),x(y))}function h(y){return y===62?(e.enter(o),e.consume(y),e.exit(o),e.exit(i),e.exit(r),t):(e.enter(a),e.enter("chunkString",{contentType:"string"}),p(y))}function p(y){return y===62?(e.exit("chunkString"),e.exit(a),h(y)):y===null||y===60||O(y)?n(y):(e.consume(y),y===92?g:p)}function g(y){return y===60||y===62||y===92?(e.consume(y),p):p(y)}function x(y){return!f&&(y===null||y===41||J(y))?(e.exit("chunkString"),e.exit(a),e.exit(l),e.exit(r),t(y)):f<c&&y===40?(e.consume(y),f++,x):y===41?(e.consume(y),f--,x):y===null||y===32||y===40||ln(y)?n(y):(e.consume(y),y===92?w:x)}function w(y){return y===40||y===41||y===92?(e.consume(y),x):x(y)}}function mi(e,t,n,r,i,o){const l=this;let a=0,s;return c;function c(p){return e.enter(r),e.enter(i),e.consume(p),e.exit(i),e.enter(o),f}function f(p){return a>999||p===null||p===91||p===93&&!s||p===94&&!a&&"_hiddenFootnoteSupport"in l.parser.constructs?n(p):p===93?(e.exit(o),e.enter(i),e.consume(p),e.exit(i),e.exit(r),t):O(p)?(e.enter("lineEnding"),e.consume(p),e.exit("lineEnding"),f):(e.enter("chunkString",{contentType:"string"}),u(p))}function u(p){return p===null||p===91||p===93||O(p)||a++>999?(e.exit("chunkString"),f(p)):(e.consume(p),s||(s=!B(p)),p===92?h:u)}function h(p){return p===91||p===92||p===93?(e.consume(p),a++,u):u(p)}}function gi(e,t,n,r,i,o){let l;return a;function a(h){return h===34||h===39||h===40?(e.enter(r),e.enter(i),e.consume(h),e.exit(i),l=h===40?41:h,s):n(h)}function s(h){return h===l?(e.enter(i),e.consume(h),e.exit(i),e.exit(r),t):(e.enter(o),c(h))}function c(h){return h===l?(e.exit(o),s(l)):h===null?n(h):O(h)?(e.enter("lineEnding"),e.consume(h),e.exit("lineEnding"),V(e,c,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),f(h))}function f(h){return h===l||h===null||O(h)?(e.exit("chunkString"),c(h)):(e.consume(h),h===92?u:f)}function u(h){return h===l||h===92?(e.consume(h),f):f(h)}}function it(e,t){let n;return r;function r(i){return O(i)?(e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),n=!0,r):B(i)?V(e,r,n?"linePrefix":"lineSuffix")(i):t(i)}}const ns={name:"definition",tokenize:is},rs={partial:!0,tokenize:os};function is(e,t,n){const r=this;let i;return o;function o(p){return e.enter("definition"),l(p)}function l(p){return mi.call(r,e,a,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(p)}function a(p){return i=He(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),p===58?(e.enter("definitionMarker"),e.consume(p),e.exit("definitionMarker"),s):n(p)}function s(p){return J(p)?it(e,c)(p):c(p)}function c(p){return di(e,f,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(p)}function f(p){return e.attempt(rs,u,u)(p)}function u(p){return B(p)?V(e,h,"whitespace")(p):h(p)}function h(p){return p===null||O(p)?(e.exit("definition"),r.parser.defined.push(i),t(p)):n(p)}}function os(e,t,n){return r;function r(a){return J(a)?it(e,i)(a):n(a)}function i(a){return gi(e,o,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(a)}function o(a){return B(a)?V(e,l,"whitespace")(a):l(a)}function l(a){return a===null||O(a)?t(a):n(a)}}const ls={name:"hardBreakEscape",tokenize:as};function as(e,t,n){return r;function r(o){return e.enter("hardBreakEscape"),e.consume(o),i}function i(o){return O(o)?(e.exit("hardBreakEscape"),t(o)):n(o)}}const ss={name:"headingAtx",resolve:cs,tokenize:us};function cs(e,t){let n=e.length-2,r=3,i,o;return e[r][1].type==="whitespace"&&(r+=2),n-2>r&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(r===n-1||n-4>r&&e[n-2][1].type==="whitespace")&&(n-=r+1===n?2:4),n>r&&(i={type:"atxHeadingText",start:e[r][1].start,end:e[n][1].end},o={type:"chunkText",start:e[r][1].start,end:e[n][1].end,contentType:"text"},he(e,r,n-r+1,[["enter",i,t],["enter",o,t],["exit",o,t],["exit",i,t]])),e}function us(e,t,n){let r=0;return i;function i(f){return e.enter("atxHeading"),o(f)}function o(f){return e.enter("atxHeadingSequence"),l(f)}function l(f){return f===35&&r++<6?(e.consume(f),l):f===null||J(f)?(e.exit("atxHeadingSequence"),a(f)):n(f)}function a(f){return f===35?(e.enter("atxHeadingSequence"),s(f)):f===null||O(f)?(e.exit("atxHeading"),t(f)):B(f)?V(e,a,"whitespace")(f):(e.enter("atxHeadingText"),c(f))}function s(f){return f===35?(e.consume(f),s):(e.exit("atxHeadingSequence"),a(f))}function c(f){return f===null||f===35||J(f)?(e.exit("atxHeadingText"),a(f)):(e.consume(f),c)}}const fs=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],pr=["pre","script","style","textarea"],ps={concrete:!0,name:"htmlFlow",resolveTo:ms,tokenize:gs},hs={partial:!0,tokenize:vs},ds={partial:!0,tokenize:ys};function ms(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function gs(e,t,n){const r=this;let i,o,l,a,s;return c;function c(m){return f(m)}function f(m){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(m),u}function u(m){return m===33?(e.consume(m),h):m===47?(e.consume(m),o=!0,x):m===63?(e.consume(m),i=3,r.interrupt?t:d):pe(m)?(e.consume(m),l=String.fromCharCode(m),w):n(m)}function h(m){return m===45?(e.consume(m),i=2,p):m===91?(e.consume(m),i=5,a=0,g):pe(m)?(e.consume(m),i=4,r.interrupt?t:d):n(m)}function p(m){return m===45?(e.consume(m),r.interrupt?t:d):n(m)}function g(m){const se="CDATA[";return m===se.charCodeAt(a++)?(e.consume(m),a===se.length?r.interrupt?t:D:g):n(m)}function x(m){return pe(m)?(e.consume(m),l=String.fromCharCode(m),w):n(m)}function w(m){if(m===null||m===47||m===62||J(m)){const se=m===47,Ee=l.toLowerCase();return!se&&!o&&pr.includes(Ee)?(i=1,r.interrupt?t(m):D(m)):fs.includes(l.toLowerCase())?(i=6,se?(e.consume(m),y):r.interrupt?t(m):D(m)):(i=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(m):o?S(m):I(m))}return m===45||ie(m)?(e.consume(m),l+=String.fromCharCode(m),w):n(m)}function y(m){return m===62?(e.consume(m),r.interrupt?t:D):n(m)}function S(m){return B(m)?(e.consume(m),S):v(m)}function I(m){return m===47?(e.consume(m),v):m===58||m===95||pe(m)?(e.consume(m),A):B(m)?(e.consume(m),I):v(m)}function A(m){return m===45||m===46||m===58||m===95||ie(m)?(e.consume(m),A):R(m)}function R(m){return m===61?(e.consume(m),b):B(m)?(e.consume(m),R):I(m)}function b(m){return m===null||m===60||m===61||m===62||m===96?n(m):m===34||m===39?(e.consume(m),s=m,F):B(m)?(e.consume(m),b):P(m)}function F(m){return m===s?(e.consume(m),s=null,j):m===null||O(m)?n(m):(e.consume(m),F)}function P(m){return m===null||m===34||m===39||m===47||m===60||m===61||m===62||m===96||J(m)?R(m):(e.consume(m),P)}function j(m){return m===47||m===62||B(m)?I(m):n(m)}function v(m){return m===62?(e.consume(m),_):n(m)}function _(m){return m===null||O(m)?D(m):B(m)?(e.consume(m),_):n(m)}function D(m){return m===45&&i===2?(e.consume(m),Q):m===60&&i===1?(e.consume(m),K):m===62&&i===4?(e.consume(m),ae):m===63&&i===3?(e.consume(m),d):m===93&&i===5?(e.consume(m),de):O(m)&&(i===6||i===7)?(e.exit("htmlFlowData"),e.check(hs,me,L)(m)):m===null||O(m)?(e.exit("htmlFlowData"),L(m)):(e.consume(m),D)}function L(m){return e.check(ds,T,me)(m)}function T(m){return e.enter("lineEnding"),e.consume(m),e.exit("lineEnding"),M}function M(m){return m===null||O(m)?L(m):(e.enter("htmlFlowData"),D(m))}function Q(m){return m===45?(e.consume(m),d):D(m)}function K(m){return m===47?(e.consume(m),l="",le):D(m)}function le(m){if(m===62){const se=l.toLowerCase();return pr.includes(se)?(e.consume(m),ae):D(m)}return pe(m)&&l.length<8?(e.consume(m),l+=String.fromCharCode(m),le):D(m)}function de(m){return m===93?(e.consume(m),d):D(m)}function d(m){return m===62?(e.consume(m),ae):m===45&&i===2?(e.consume(m),d):D(m)}function ae(m){return m===null||O(m)?(e.exit("htmlFlowData"),me(m)):(e.consume(m),ae)}function me(m){return e.exit("htmlFlow"),t(m)}}function ys(e,t,n){const r=this;return i;function i(l){return O(l)?(e.enter("lineEnding"),e.consume(l),e.exit("lineEnding"),o):n(l)}function o(l){return r.parser.lazy[r.now().line]?n(l):t(l)}}function vs(e,t,n){return r;function r(i){return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),e.attempt(Pt,t,n)}}const xs={name:"htmlText",tokenize:ks};function ks(e,t,n){const r=this;let i,o,l;return a;function a(d){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(d),s}function s(d){return d===33?(e.consume(d),c):d===47?(e.consume(d),R):d===63?(e.consume(d),I):pe(d)?(e.consume(d),P):n(d)}function c(d){return d===45?(e.consume(d),f):d===91?(e.consume(d),o=0,g):pe(d)?(e.consume(d),S):n(d)}function f(d){return d===45?(e.consume(d),p):n(d)}function u(d){return d===null?n(d):d===45?(e.consume(d),h):O(d)?(l=u,K(d)):(e.consume(d),u)}function h(d){return d===45?(e.consume(d),p):u(d)}function p(d){return d===62?Q(d):d===45?h(d):u(d)}function g(d){const ae="CDATA[";return d===ae.charCodeAt(o++)?(e.consume(d),o===ae.length?x:g):n(d)}function x(d){return d===null?n(d):d===93?(e.consume(d),w):O(d)?(l=x,K(d)):(e.consume(d),x)}function w(d){return d===93?(e.consume(d),y):x(d)}function y(d){return d===62?Q(d):d===93?(e.consume(d),y):x(d)}function S(d){return d===null||d===62?Q(d):O(d)?(l=S,K(d)):(e.consume(d),S)}function I(d){return d===null?n(d):d===63?(e.consume(d),A):O(d)?(l=I,K(d)):(e.consume(d),I)}function A(d){return d===62?Q(d):I(d)}function R(d){return pe(d)?(e.consume(d),b):n(d)}function b(d){return d===45||ie(d)?(e.consume(d),b):F(d)}function F(d){return O(d)?(l=F,K(d)):B(d)?(e.consume(d),F):Q(d)}function P(d){return d===45||ie(d)?(e.consume(d),P):d===47||d===62||J(d)?j(d):n(d)}function j(d){return d===47?(e.consume(d),Q):d===58||d===95||pe(d)?(e.consume(d),v):O(d)?(l=j,K(d)):B(d)?(e.consume(d),j):Q(d)}function v(d){return d===45||d===46||d===58||d===95||ie(d)?(e.consume(d),v):_(d)}function _(d){return d===61?(e.consume(d),D):O(d)?(l=_,K(d)):B(d)?(e.consume(d),_):j(d)}function D(d){return d===null||d===60||d===61||d===62||d===96?n(d):d===34||d===39?(e.consume(d),i=d,L):O(d)?(l=D,K(d)):B(d)?(e.consume(d),D):(e.consume(d),T)}function L(d){return d===i?(e.consume(d),i=void 0,M):d===null?n(d):O(d)?(l=L,K(d)):(e.consume(d),L)}function T(d){return d===null||d===34||d===39||d===60||d===61||d===96?n(d):d===47||d===62||J(d)?j(d):(e.consume(d),T)}function M(d){return d===47||d===62||J(d)?j(d):n(d)}function Q(d){return d===62?(e.consume(d),e.exit("htmlTextData"),e.exit("htmlText"),t):n(d)}function K(d){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(d),e.exit("lineEnding"),le}function le(d){return B(d)?V(e,de,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(d):de(d)}function de(d){return e.enter("htmlTextData"),l(d)}}const An={name:"labelEnd",resolveAll:Ss,resolveTo:Is,tokenize:Es},bs={tokenize:Ts},ws={tokenize:As},Cs={tokenize:Ps};function Ss(e){let t=-1;const n=[];for(;++t<e.length;){const r=e[t][1];if(n.push(e[t]),r.type==="labelImage"||r.type==="labelLink"||r.type==="labelEnd"){const i=r.type==="labelImage"?4:2;r.type="data",t+=i}}return e.length!==n.length&&he(e,0,e.length,n),e}function Is(e,t){let n=e.length,r=0,i,o,l,a;for(;n--;)if(i=e[n][1],o){if(i.type==="link"||i.type==="labelLink"&&i._inactive)break;e[n][0]==="enter"&&i.type==="labelLink"&&(i._inactive=!0)}else if(l){if(e[n][0]==="enter"&&(i.type==="labelImage"||i.type==="labelLink")&&!i._balanced&&(o=n,i.type!=="labelLink")){r=2;break}}else i.type==="labelEnd"&&(l=n);const s={type:e[o][1].type==="labelLink"?"link":"image",start:{...e[o][1].start},end:{...e[e.length-1][1].end}},c={type:"label",start:{...e[o][1].start},end:{...e[l][1].end}},f={type:"labelText",start:{...e[o+r+2][1].end},end:{...e[l-2][1].start}};return a=[["enter",s,t],["enter",c,t]],a=oe(a,e.slice(o+1,o+r+3)),a=oe(a,[["enter",f,t]]),a=oe(a,Tn(t.parser.constructs.insideSpan.null,e.slice(o+r+4,l-3),t)),a=oe(a,[["exit",f,t],e[l-2],e[l-1],["exit",c,t]]),a=oe(a,e.slice(l+1)),a=oe(a,[["exit",s,t]]),he(e,o,e.length,a),e}function Es(e,t,n){const r=this;let i=r.events.length,o,l;for(;i--;)if((r.events[i][1].type==="labelImage"||r.events[i][1].type==="labelLink")&&!r.events[i][1]._balanced){o=r.events[i][1];break}return a;function a(h){return o?o._inactive?u(h):(l=r.parser.defined.includes(He(r.sliceSerialize({start:o.end,end:r.now()}))),e.enter("labelEnd"),e.enter("labelMarker"),e.consume(h),e.exit("labelMarker"),e.exit("labelEnd"),s):n(h)}function s(h){return h===40?e.attempt(bs,f,l?f:u)(h):h===91?e.attempt(ws,f,l?c:u)(h):l?f(h):u(h)}function c(h){return e.attempt(Cs,f,u)(h)}function f(h){return t(h)}function u(h){return o._balanced=!0,n(h)}}function Ts(e,t,n){return r;function r(u){return e.enter("resource"),e.enter("resourceMarker"),e.consume(u),e.exit("resourceMarker"),i}function i(u){return J(u)?it(e,o)(u):o(u)}function o(u){return u===41?f(u):di(e,l,a,"resourceDestination","resourceDestinationLiteral","resourceDestinationLiteralMarker","resourceDestinationRaw","resourceDestinationString",32)(u)}function l(u){return J(u)?it(e,s)(u):f(u)}function a(u){return n(u)}function s(u){return u===34||u===39||u===40?gi(e,c,n,"resourceTitle","resourceTitleMarker","resourceTitleString")(u):f(u)}function c(u){return J(u)?it(e,f)(u):f(u)}function f(u){return u===41?(e.enter("resourceMarker"),e.consume(u),e.exit("resourceMarker"),e.exit("resource"),t):n(u)}}function As(e,t,n){const r=this;return i;function i(a){return mi.call(r,e,o,l,"reference","referenceMarker","referenceString")(a)}function o(a){return r.parser.defined.includes(He(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)))?t(a):n(a)}function l(a){return n(a)}}function Ps(e,t,n){return r;function r(o){return e.enter("reference"),e.enter("referenceMarker"),e.consume(o),e.exit("referenceMarker"),i}function i(o){return o===93?(e.enter("referenceMarker"),e.consume(o),e.exit("referenceMarker"),e.exit("reference"),t):n(o)}}const _s={name:"labelStartImage",resolveAll:An.resolveAll,tokenize:Ds};function Ds(e,t,n){const r=this;return i;function i(a){return e.enter("labelImage"),e.enter("labelImageMarker"),e.consume(a),e.exit("labelImageMarker"),o}function o(a){return a===91?(e.enter("labelMarker"),e.consume(a),e.exit("labelMarker"),e.exit("labelImage"),l):n(a)}function l(a){return a===94&&"_hiddenFootnoteSupport"in r.parser.constructs?n(a):t(a)}}const Ls={name:"labelStartLink",resolveAll:An.resolveAll,tokenize:Os};function Os(e,t,n){const r=this;return i;function i(l){return e.enter("labelLink"),e.enter("labelMarker"),e.consume(l),e.exit("labelMarker"),e.exit("labelLink"),o}function o(l){return l===94&&"_hiddenFootnoteSupport"in r.parser.constructs?n(l):t(l)}}const Nt={name:"lineEnding",tokenize:zs};function zs(e,t){return n;function n(r){return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),V(e,t,"linePrefix")}}const kt={name:"thematicBreak",tokenize:Ms};function Ms(e,t,n){let r=0,i;return o;function o(c){return e.enter("thematicBreak"),l(c)}function l(c){return i=c,a(c)}function a(c){return c===i?(e.enter("thematicBreakSequence"),s(c)):r>=3&&(c===null||O(c))?(e.exit("thematicBreak"),t(c)):n(c)}function s(c){return c===i?(e.consume(c),r++,s):(e.exit("thematicBreakSequence"),B(c)?V(e,a,"whitespace")(c):a(c))}}const Y={continuation:{tokenize:js},exit:Hs,name:"list",tokenize:Ns},Fs={partial:!0,tokenize:Us},Rs={partial:!0,tokenize:Bs};function Ns(e,t,n){const r=this,i=r.events[r.events.length-1];let o=i&&i[1].type==="linePrefix"?i[2].sliceSerialize(i[1],!0).length:0,l=0;return a;function a(p){const g=r.containerState.type||(p===42||p===43||p===45?"listUnordered":"listOrdered");if(g==="listUnordered"?!r.containerState.marker||p===r.containerState.marker:an(p)){if(r.containerState.type||(r.containerState.type=g,e.enter(g,{_container:!0})),g==="listUnordered")return e.enter("listItemPrefix"),p===42||p===45?e.check(kt,n,c)(p):c(p);if(!r.interrupt||p===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),s(p)}return n(p)}function s(p){return an(p)&&++l<10?(e.consume(p),s):(!r.interrupt||l<2)&&(r.containerState.marker?p===r.containerState.marker:p===41||p===46)?(e.exit("listItemValue"),c(p)):n(p)}function c(p){return e.enter("listItemMarker"),e.consume(p),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||p,e.check(Pt,r.interrupt?n:f,e.attempt(Fs,h,u))}function f(p){return r.containerState.initialBlankLine=!0,o++,h(p)}function u(p){return B(p)?(e.enter("listItemPrefixWhitespace"),e.consume(p),e.exit("listItemPrefixWhitespace"),h):n(p)}function h(p){return r.containerState.size=o+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(p)}}function js(e,t,n){const r=this;return r.containerState._closeFlow=void 0,e.check(Pt,i,o);function i(a){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,V(e,t,"listItemIndent",r.containerState.size+1)(a)}function o(a){return r.containerState.furtherBlankLines||!B(a)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,l(a)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(Rs,t,l)(a))}function l(a){return r.containerState._closeFlow=!0,r.interrupt=void 0,V(e,e.attempt(Y,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(a)}}function Bs(e,t,n){const r=this;return V(e,i,"listItemIndent",r.containerState.size+1);function i(o){const l=r.events[r.events.length-1];return l&&l[1].type==="listItemIndent"&&l[2].sliceSerialize(l[1],!0).length===r.containerState.size?t(o):n(o)}}function Hs(e){e.exit(this.containerState.type)}function Us(e,t,n){const r=this;return V(e,i,"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function i(o){const l=r.events[r.events.length-1];return!B(o)&&l&&l[1].type==="listItemPrefixWhitespace"?t(o):n(o)}}const hr={name:"setextUnderline",resolveTo:Vs,tokenize:qs};function Vs(e,t){let n=e.length,r,i,o;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){r=n;break}e[n][1].type==="paragraph"&&(i=n)}else e[n][1].type==="content"&&e.splice(n,1),!o&&e[n][1].type==="definition"&&(o=n);const l={type:"setextHeading",start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[i][1].type="setextHeadingText",o?(e.splice(i,0,["enter",l,t]),e.splice(o+1,0,["exit",e[r][1],t]),e[r][1].end={...e[o][1].end}):e[r][1]=l,e.push(["exit",l,t]),e}function qs(e,t,n){const r=this;let i;return o;function o(c){let f=r.events.length,u;for(;f--;)if(r.events[f][1].type!=="lineEnding"&&r.events[f][1].type!=="linePrefix"&&r.events[f][1].type!=="content"){u=r.events[f][1].type==="paragraph";break}return!r.parser.lazy[r.now().line]&&(r.interrupt||u)?(e.enter("setextHeadingLine"),i=c,l(c)):n(c)}function l(c){return e.enter("setextHeadingLineSequence"),a(c)}function a(c){return c===i?(e.consume(c),a):(e.exit("setextHeadingLineSequence"),B(c)?V(e,s,"lineSuffix")(c):s(c))}function s(c){return c===null||O(c)?(e.exit("setextHeadingLine"),t(c)):n(c)}}const $s={tokenize:Ws};function Ws(e){const t=this,n=e.attempt(Pt,r,e.attempt(this.parser.constructs.flowInitial,i,V(e,e.attempt(this.parser.constructs.flow,i,e.attempt(Ya,i)),"linePrefix")));return n;function r(o){if(o===null){e.consume(o);return}return e.enter("lineEndingBlank"),e.consume(o),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function i(o){if(o===null){e.consume(o);return}return e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const Qs={resolveAll:vi()},Ks=yi("string"),Zs=yi("text");function yi(e){return{resolveAll:vi(e==="text"?Xs:void 0),tokenize:t};function t(n){const r=this,i=this.parser.constructs[e],o=n.attempt(i,l,a);return l;function l(f){return c(f)?o(f):a(f)}function a(f){if(f===null){n.consume(f);return}return n.enter("data"),n.consume(f),s}function s(f){return c(f)?(n.exit("data"),o(f)):(n.consume(f),s)}function c(f){if(f===null)return!0;const u=i[f];let h=-1;if(u)for(;++h<u.length;){const p=u[h];if(!p.previous||p.previous.call(r,r.previous))return!0}return!1}}}function vi(e){return t;function t(n,r){let i=-1,o;for(;++i<=n.length;)o===void 0?n[i]&&n[i][1].type==="data"&&(o=i,i++):(!n[i]||n[i][1].type!=="data")&&(i!==o+2&&(n[o][1].end=n[i-1][1].end,n.splice(o+2,i-o-2),i=o+2),o=void 0);return e?e(n,r):n}}function Xs(e,t){let n=0;for(;++n<=e.length;)if((n===e.length||e[n][1].type==="lineEnding")&&e[n-1][1].type==="data"){const r=e[n-1][1],i=t.sliceStream(r);let o=i.length,l=-1,a=0,s;for(;o--;){const c=i[o];if(typeof c=="string"){for(l=c.length;c.charCodeAt(l-1)===32;)a++,l--;if(l)break;l=-1}else if(c===-2)s=!0,a++;else if(c!==-1){o++;break}}if(t._contentTypeTextTrailing&&n===e.length&&(a=0),a){const c={type:n===e.length||s||a<2?"lineSuffix":"hardBreakTrailing",start:{_bufferIndex:o?l:r.start._bufferIndex+l,_index:r.start._index+o,line:r.end.line,column:r.end.column-a,offset:r.end.offset-a},end:{...r.end}};r.end={...c.start},r.start.offset===r.end.offset?Object.assign(r,c):(e.splice(n,0,["enter",c,t],["exit",c,t]),n+=2)}n++}return e}const Ys={42:Y,43:Y,45:Y,48:Y,49:Y,50:Y,51:Y,52:Y,53:Y,54:Y,55:Y,56:Y,57:Y,62:ui},Gs={91:ns},Js={[-2]:Rt,[-1]:Rt,32:Rt},ec={35:ss,42:kt,45:[hr,kt],60:ps,61:hr,95:kt,96:fr,126:fr},tc={38:pi,92:fi},nc={[-5]:Nt,[-4]:Nt,[-3]:Nt,33:_s,38:pi,42:sn,60:[La,xs],91:Ls,92:[ls,fi],93:An,95:sn,96:$a},rc={null:[sn,Qs]},ic={null:[42,95]},oc={null:[]},lc=Object.freeze(Object.defineProperty({__proto__:null,attentionMarkers:ic,contentInitial:Gs,disable:oc,document:Ys,flow:ec,flowInitial:Js,insideSpan:rc,string:tc,text:nc},Symbol.toStringTag,{value:"Module"}));function ac(e,t,n){let r={_bufferIndex:-1,_index:0,line:n&&n.line||1,column:n&&n.column||1,offset:n&&n.offset||0};const i={},o=[];let l=[],a=[];const s={attempt:F(R),check:F(b),consume:S,enter:I,exit:A,interrupt:F(b,{interrupt:!0})},c={code:null,containerState:{},defineSkip:x,events:[],now:g,parser:e,previous:null,sliceSerialize:h,sliceStream:p,write:u};let f=t.tokenize.call(c,s);return t.resolveAll&&o.push(t),c;function u(_){return l=oe(l,_),w(),l[l.length-1]!==null?[]:(P(t,0),c.events=Tn(o,c.events,c),c.events)}function h(_,D){return cc(p(_),D)}function p(_){return sc(l,_)}function g(){const{_bufferIndex:_,_index:D,line:L,column:T,offset:M}=r;return{_bufferIndex:_,_index:D,line:L,column:T,offset:M}}function x(_){i[_.line]=_.column,v()}function w(){let _;for(;r._index<l.length;){const D=l[r._index];if(typeof D=="string")for(_=r._index,r._bufferIndex<0&&(r._bufferIndex=0);r._index===_&&r._bufferIndex<D.length;)y(D.charCodeAt(r._bufferIndex));else y(D)}}function y(_){f=f(_)}function S(_){O(_)?(r.line++,r.column=1,r.offset+=_===-3?2:1,v()):_!==-1&&(r.column++,r.offset++),r._bufferIndex<0?r._index++:(r._bufferIndex++,r._bufferIndex===l[r._index].length&&(r._bufferIndex=-1,r._index++)),c.previous=_}function I(_,D){const L=D||{};return L.type=_,L.start=g(),c.events.push(["enter",L,c]),a.push(L),L}function A(_){const D=a.pop();return D.end=g(),c.events.push(["exit",D,c]),D}function R(_,D){P(_,D.from)}function b(_,D){D.restore()}function F(_,D){return L;function L(T,M,Q){let K,le,de,d;return Array.isArray(T)?me(T):"tokenize"in T?me([T]):ae(T);function ae(Z){return qe;function qe(we){const Le=we!==null&&Z[we],Oe=we!==null&&Z.null,ut=[...Array.isArray(Le)?Le:Le?[Le]:[],...Array.isArray(Oe)?Oe:Oe?[Oe]:[]];return me(ut)(we)}}function me(Z){return K=Z,le=0,Z.length===0?Q:m(Z[le])}function m(Z){return qe;function qe(we){return d=j(),de=Z,Z.partial||(c.currentConstruct=Z),Z.name&&c.parser.constructs.disable.null.includes(Z.name)?Ee():Z.tokenize.call(D?Object.assign(Object.create(c),D):c,s,se,Ee)(we)}}function se(Z){return _(de,d),M}function Ee(Z){return d.restore(),++le<K.length?m(K[le]):Q}}}function P(_,D){_.resolveAll&&!o.includes(_)&&o.push(_),_.resolve&&he(c.events,D,c.events.length-D,_.resolve(c.events.slice(D),c)),_.resolveTo&&(c.events=_.resolveTo(c.events,c))}function j(){const _=g(),D=c.previous,L=c.currentConstruct,T=c.events.length,M=Array.from(a);return{from:T,restore:Q};function Q(){r=_,c.previous=D,c.currentConstruct=L,c.events.length=T,a=M,v()}}function v(){r.line in i&&r.column<2&&(r.column=i[r.line],r.offset+=i[r.line]-1)}}function sc(e,t){const n=t.start._index,r=t.start._bufferIndex,i=t.end._index,o=t.end._bufferIndex;let l;if(n===i)l=[e[n].slice(r,o)];else{if(l=e.slice(n,i),r>-1){const a=l[0];typeof a=="string"?l[0]=a.slice(r):l.shift()}o>0&&l.push(e[i].slice(0,o))}return l}function cc(e,t){let n=-1;const r=[];let i;for(;++n<e.length;){const o=e[n];let l;if(typeof o=="string")l=o;else switch(o){case-5:{l="\r";break}case-4:{l=` +`;break}case-3:{l=`\r +`;break}case-2:{l=t?" ":" ";break}case-1:{if(!t&&i)continue;l=" ";break}default:l=String.fromCharCode(o)}i=o===-2,r.push(l)}return r.join("")}function uc(e){const t={constructs:ya([lc,...(e||{}).extensions||[]]),content:n(Ia),defined:[],document:n(Ta),flow:n($s),lazy:{},string:n(Ks),text:n(Zs)};return t;function n(r){return i;function i(o){return ac(t,r,o)}}}function fc(e){for(;!hi(e););return e}const dr=/[\0\t\n\r]/g;function pc(){let e=1,t="",n=!0,r;return i;function i(o,l,a){const s=[];let c,f,u,h,p;for(o=t+(typeof o=="string"?o.toString():new TextDecoder(l||void 0).decode(o)),u=0,t="",n&&(o.charCodeAt(0)===65279&&u++,n=void 0);u<o.length;){if(dr.lastIndex=u,c=dr.exec(o),h=c&&c.index!==void 0?c.index:o.length,p=o.charCodeAt(h),!c){t=o.slice(u);break}if(p===10&&u===h&&r)s.push(-3),r=void 0;else switch(r&&(s.push(-5),r=void 0),u<h&&(s.push(o.slice(u,h)),e+=h-u),p){case 0:{s.push(65533),e++;break}case 9:{for(f=Math.ceil(e/4)*4,s.push(-2);e++<f;)s.push(-1);break}case 10:{s.push(-4),e=1;break}default:r=!0,e=1}u=h+1}return a&&(r&&s.push(-5),t&&s.push(t),s.push(null)),s}}const hc=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function dc(e){return e.replace(hc,mc)}function mc(e,t,n){if(t)return t;if(n.charCodeAt(0)===35){const r=n.charCodeAt(1),i=r===120||r===88;return ci(n.slice(i?2:1),i?16:10)}return En(n)||e}const xi={}.hasOwnProperty;function gc(e,t,n){return typeof t!="string"&&(n=t,t=void 0),yc(n)(fc(uc(n).document().write(pc()(e,t,!0))))}function yc(e){const t={transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:o(Rn),autolinkProtocol:j,autolinkEmail:j,atxHeading:o(zn),blockQuote:o(Oe),characterEscape:j,characterReference:j,codeFenced:o(ut),codeFencedFenceInfo:l,codeFencedFenceMeta:l,codeIndented:o(ut,l),codeText:o(Qi,l),codeTextData:j,data:j,codeFlowValue:j,definition:o(Ki),definitionDestinationString:l,definitionLabelString:l,definitionTitleString:l,emphasis:o(Zi),hardBreakEscape:o(Mn),hardBreakTrailing:o(Mn),htmlFlow:o(Fn,l),htmlFlowData:j,htmlText:o(Fn,l),htmlTextData:j,image:o(Xi),label:l,link:o(Rn),listItem:o(Yi),listItemValue:h,listOrdered:o(Nn,u),listUnordered:o(Nn),paragraph:o(Gi),reference:m,referenceString:l,resourceDestinationString:l,resourceTitleString:l,setextHeading:o(zn),strong:o(Ji),thematicBreak:o(to)},exit:{atxHeading:s(),atxHeadingSequence:R,autolink:s(),autolinkEmail:Le,autolinkProtocol:we,blockQuote:s(),characterEscapeValue:v,characterReferenceMarkerHexadecimal:Ee,characterReferenceMarkerNumeric:Ee,characterReferenceValue:Z,characterReference:qe,codeFenced:s(w),codeFencedFence:x,codeFencedFenceInfo:p,codeFencedFenceMeta:g,codeFlowValue:v,codeIndented:s(y),codeText:s(M),codeTextData:v,data:v,definition:s(),definitionDestinationString:A,definitionLabelString:S,definitionTitleString:I,emphasis:s(),hardBreakEscape:s(D),hardBreakTrailing:s(D),htmlFlow:s(L),htmlFlowData:v,htmlText:s(T),htmlTextData:v,image:s(K),label:de,labelText:le,lineEnding:_,link:s(Q),listItem:s(),listOrdered:s(),listUnordered:s(),paragraph:s(),referenceString:se,resourceDestinationString:d,resourceTitleString:ae,resource:me,setextHeading:s(P),setextHeadingLineSequence:F,setextHeadingText:b,strong:s(),thematicBreak:s()}};ki(t,(e||{}).mdastExtensions||[]);const n={};return r;function r(k){let E={type:"root",children:[]};const z={stack:[E],tokenStack:[],config:t,enter:a,exit:c,buffer:l,resume:f,data:n},H=[];let q=-1;for(;++q<k.length;)if(k[q][1].type==="listOrdered"||k[q][1].type==="listUnordered")if(k[q][0]==="enter")H.push(q);else{const ce=H.pop();q=i(k,ce,q)}for(q=-1;++q<k.length;){const ce=t[k[q][0]];xi.call(ce,k[q][1].type)&&ce[k[q][1].type].call(Object.assign({sliceSerialize:k[q][2].sliceSerialize},z),k[q][1])}if(z.tokenStack.length>0){const ce=z.tokenStack[z.tokenStack.length-1];(ce[1]||mr).call(z,void 0,ce[0])}for(E.position={start:Ce(k.length>0?k[0][1].start:{line:1,column:1,offset:0}),end:Ce(k.length>0?k[k.length-2][1].end:{line:1,column:1,offset:0})},q=-1;++q<t.transforms.length;)E=t.transforms[q](E)||E;return E}function i(k,E,z){let H=E-1,q=-1,ce=!1,ze,ge,$e,We;for(;++H<=z;){const te=k[H];switch(te[1].type){case"listUnordered":case"listOrdered":case"blockQuote":{te[0]==="enter"?q++:q--,We=void 0;break}case"lineEndingBlank":{te[0]==="enter"&&(ze&&!We&&!q&&!$e&&($e=H),We=void 0);break}case"linePrefix":case"listItemValue":case"listItemMarker":case"listItemPrefix":case"listItemPrefixWhitespace":break;default:We=void 0}if(!q&&te[0]==="enter"&&te[1].type==="listItemPrefix"||q===-1&&te[0]==="exit"&&(te[1].type==="listUnordered"||te[1].type==="listOrdered")){if(ze){let Me=H;for(ge=void 0;Me--;){const ye=k[Me];if(ye[1].type==="lineEnding"||ye[1].type==="lineEndingBlank"){if(ye[0]==="exit")continue;ge&&(k[ge][1].type="lineEndingBlank",ce=!0),ye[1].type="lineEnding",ge=Me}else if(!(ye[1].type==="linePrefix"||ye[1].type==="blockQuotePrefix"||ye[1].type==="blockQuotePrefixWhitespace"||ye[1].type==="blockQuoteMarker"||ye[1].type==="listItemIndent"))break}$e&&(!ge||$e<ge)&&(ze._spread=!0),ze.end=Object.assign({},ge?k[ge][1].start:te[1].end),k.splice(ge||H,0,["exit",ze,te[2]]),H++,z++}if(te[1].type==="listItemPrefix"){const Me={type:"listItem",_spread:!1,start:Object.assign({},te[1].start),end:void 0};ze=Me,k.splice(H,0,["enter",Me,te[2]]),H++,z++,$e=void 0,We=!0}}}return k[E][1]._spread=ce,z}function o(k,E){return z;function z(H){a.call(this,k(H),H),E&&E.call(this,H)}}function l(){this.stack.push({type:"fragment",children:[]})}function a(k,E,z){this.stack[this.stack.length-1].children.push(k),this.stack.push(k),this.tokenStack.push([E,z||void 0]),k.position={start:Ce(E.start),end:void 0}}function s(k){return E;function E(z){k&&k.call(this,z),c.call(this,z)}}function c(k,E){const z=this.stack.pop(),H=this.tokenStack.pop();if(H)H[0].type!==k.type&&(E?E.call(this,k,H[0]):(H[1]||mr).call(this,k,H[0]));else throw new Error("Cannot close `"+k.type+"` ("+rt({start:k.start,end:k.end})+"): it’s not open");z.position.end=Ce(k.end)}function f(){return ma(this.stack.pop())}function u(){this.data.expectingFirstListItemValue=!0}function h(k){if(this.data.expectingFirstListItemValue){const E=this.stack[this.stack.length-2];E.start=Number.parseInt(this.sliceSerialize(k),10),this.data.expectingFirstListItemValue=void 0}}function p(){const k=this.resume(),E=this.stack[this.stack.length-1];E.lang=k}function g(){const k=this.resume(),E=this.stack[this.stack.length-1];E.meta=k}function x(){this.data.flowCodeInside||(this.buffer(),this.data.flowCodeInside=!0)}function w(){const k=this.resume(),E=this.stack[this.stack.length-1];E.value=k.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g,""),this.data.flowCodeInside=void 0}function y(){const k=this.resume(),E=this.stack[this.stack.length-1];E.value=k.replace(/(\r?\n|\r)$/g,"")}function S(k){const E=this.resume(),z=this.stack[this.stack.length-1];z.label=E,z.identifier=He(this.sliceSerialize(k)).toLowerCase()}function I(){const k=this.resume(),E=this.stack[this.stack.length-1];E.title=k}function A(){const k=this.resume(),E=this.stack[this.stack.length-1];E.url=k}function R(k){const E=this.stack[this.stack.length-1];if(!E.depth){const z=this.sliceSerialize(k).length;E.depth=z}}function b(){this.data.setextHeadingSlurpLineEnding=!0}function F(k){const E=this.stack[this.stack.length-1];E.depth=this.sliceSerialize(k).codePointAt(0)===61?1:2}function P(){this.data.setextHeadingSlurpLineEnding=void 0}function j(k){const E=this.stack[this.stack.length-1].children;let z=E[E.length-1];(!z||z.type!=="text")&&(z=eo(),z.position={start:Ce(k.start),end:void 0},E.push(z)),this.stack.push(z)}function v(k){const E=this.stack.pop();E.value+=this.sliceSerialize(k),E.position.end=Ce(k.end)}function _(k){const E=this.stack[this.stack.length-1];if(this.data.atHardBreak){const z=E.children[E.children.length-1];z.position.end=Ce(k.end),this.data.atHardBreak=void 0;return}!this.data.setextHeadingSlurpLineEnding&&t.canContainEols.includes(E.type)&&(j.call(this,k),v.call(this,k))}function D(){this.data.atHardBreak=!0}function L(){const k=this.resume(),E=this.stack[this.stack.length-1];E.value=k}function T(){const k=this.resume(),E=this.stack[this.stack.length-1];E.value=k}function M(){const k=this.resume(),E=this.stack[this.stack.length-1];E.value=k}function Q(){const k=this.stack[this.stack.length-1];if(this.data.inReference){const E=this.data.referenceType||"shortcut";k.type+="Reference",k.referenceType=E,delete k.url,delete k.title}else delete k.identifier,delete k.label;this.data.referenceType=void 0}function K(){const k=this.stack[this.stack.length-1];if(this.data.inReference){const E=this.data.referenceType||"shortcut";k.type+="Reference",k.referenceType=E,delete k.url,delete k.title}else delete k.identifier,delete k.label;this.data.referenceType=void 0}function le(k){const E=this.sliceSerialize(k),z=this.stack[this.stack.length-2];z.label=dc(E),z.identifier=He(E).toLowerCase()}function de(){const k=this.stack[this.stack.length-1],E=this.resume(),z=this.stack[this.stack.length-1];if(this.data.inReference=!0,z.type==="link"){const H=k.children;z.children=H}else z.alt=E}function d(){const k=this.resume(),E=this.stack[this.stack.length-1];E.url=k}function ae(){const k=this.resume(),E=this.stack[this.stack.length-1];E.title=k}function me(){this.data.inReference=void 0}function m(){this.data.referenceType="collapsed"}function se(k){const E=this.resume(),z=this.stack[this.stack.length-1];z.label=E,z.identifier=He(this.sliceSerialize(k)).toLowerCase(),this.data.referenceType="full"}function Ee(k){this.data.characterReferenceType=k.type}function Z(k){const E=this.sliceSerialize(k),z=this.data.characterReferenceType;let H;z?(H=ci(E,z==="characterReferenceMarkerNumeric"?10:16),this.data.characterReferenceType=void 0):H=En(E);const q=this.stack[this.stack.length-1];q.value+=H}function qe(k){const E=this.stack.pop();E.position.end=Ce(k.end)}function we(k){v.call(this,k);const E=this.stack[this.stack.length-1];E.url=this.sliceSerialize(k)}function Le(k){v.call(this,k);const E=this.stack[this.stack.length-1];E.url="mailto:"+this.sliceSerialize(k)}function Oe(){return{type:"blockquote",children:[]}}function ut(){return{type:"code",lang:null,meta:null,value:""}}function Qi(){return{type:"inlineCode",value:""}}function Ki(){return{type:"definition",identifier:"",label:null,title:null,url:""}}function Zi(){return{type:"emphasis",children:[]}}function zn(){return{type:"heading",depth:0,children:[]}}function Mn(){return{type:"break"}}function Fn(){return{type:"html",value:""}}function Xi(){return{type:"image",title:null,url:"",alt:null}}function Rn(){return{type:"link",title:null,url:"",children:[]}}function Nn(k){return{type:"list",ordered:k.type==="listOrdered",start:null,spread:k._spread,children:[]}}function Yi(k){return{type:"listItem",spread:k._spread,checked:null,children:[]}}function Gi(){return{type:"paragraph",children:[]}}function Ji(){return{type:"strong",children:[]}}function eo(){return{type:"text",value:""}}function to(){return{type:"thematicBreak"}}}function Ce(e){return{line:e.line,column:e.column,offset:e.offset}}function ki(e,t){let n=-1;for(;++n<t.length;){const r=t[n];Array.isArray(r)?ki(e,r):vc(e,r)}}function vc(e,t){let n;for(n in t)if(xi.call(t,n))switch(n){case"canContainEols":{const r=t[n];r&&e[n].push(...r);break}case"transforms":{const r=t[n];r&&e[n].push(...r);break}case"enter":case"exit":{const r=t[n];r&&Object.assign(e[n],r);break}}}function mr(e,t){throw e?new Error("Cannot close `"+e.type+"` ("+rt({start:e.start,end:e.end})+"): a different token (`"+t.type+"`, "+rt({start:t.start,end:t.end})+") is open"):new Error("Cannot close document, a token (`"+t.type+"`, "+rt({start:t.start,end:t.end})+") is still open")}function xc(e){const t=this;t.parser=n;function n(r){return gc(r,{...t.data("settings"),...e,extensions:t.data("micromarkExtensions")||[],mdastExtensions:t.data("fromMarkdownExtensions")||[]})}}function kc(e,t){const n={type:"element",tagName:"blockquote",properties:{},children:e.wrap(e.all(t),!0)};return e.patch(t,n),e.applyData(t,n)}function bc(e,t){const n={type:"element",tagName:"br",properties:{},children:[]};return e.patch(t,n),[e.applyData(t,n),{type:"text",value:` +`}]}function wc(e,t){const n=t.value?t.value+` +`:"",r={},i=t.lang?t.lang.split(/\s+/):[];i.length>0&&(r.className=["language-"+i[0]]);let o={type:"element",tagName:"code",properties:r,children:[{type:"text",value:n}]};return t.meta&&(o.data={meta:t.meta}),e.patch(t,o),o=e.applyData(t,o),o={type:"element",tagName:"pre",properties:{},children:[o]},e.patch(t,o),o}function Cc(e,t){const n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function Sc(e,t){const n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function Ic(e,t){const n=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",r=String(t.identifier).toUpperCase(),i=Ve(r.toLowerCase()),o=e.footnoteOrder.indexOf(r);let l,a=e.footnoteCounts.get(r);a===void 0?(a=0,e.footnoteOrder.push(r),l=e.footnoteOrder.length):l=o+1,a+=1,e.footnoteCounts.set(r,a);const s={type:"element",tagName:"a",properties:{href:"#"+n+"fn-"+i,id:n+"fnref-"+i+(a>1?"-"+a:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(l)}]};e.patch(t,s);const c={type:"element",tagName:"sup",properties:{},children:[s]};return e.patch(t,c),e.applyData(t,c)}function Ec(e,t){const n={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function Tc(e,t){if(e.options.allowDangerousHtml){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}}function bi(e,t){const n=t.referenceType;let r="]";if(n==="collapsed"?r+="[]":n==="full"&&(r+="["+(t.label||t.identifier)+"]"),t.type==="imageReference")return[{type:"text",value:"!["+t.alt+r}];const i=e.all(t),o=i[0];o&&o.type==="text"?o.value="["+o.value:i.unshift({type:"text",value:"["});const l=i[i.length-1];return l&&l.type==="text"?l.value+=r:i.push({type:"text",value:r}),i}function Ac(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return bi(e,t);const i={src:Ve(r.url||""),alt:t.alt};r.title!==null&&r.title!==void 0&&(i.title=r.title);const o={type:"element",tagName:"img",properties:i,children:[]};return e.patch(t,o),e.applyData(t,o)}function Pc(e,t){const n={src:Ve(t.url)};t.alt!==null&&t.alt!==void 0&&(n.alt=t.alt),t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,r),e.applyData(t,r)}function _c(e,t){const n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);const r={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)}function Dc(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return bi(e,t);const i={href:Ve(r.url||"")};r.title!==null&&r.title!==void 0&&(i.title=r.title);const o={type:"element",tagName:"a",properties:i,children:e.all(t)};return e.patch(t,o),e.applyData(t,o)}function Lc(e,t){const n={href:Ve(t.url)};t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function Oc(e,t,n){const r=e.all(t),i=n?zc(n):wi(t),o={},l=[];if(typeof t.checked=="boolean"){const f=r[0];let u;f&&f.type==="element"&&f.tagName==="p"?u=f:(u={type:"element",tagName:"p",properties:{},children:[]},r.unshift(u)),u.children.length>0&&u.children.unshift({type:"text",value:" "}),u.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),o.className=["task-list-item"]}let a=-1;for(;++a<r.length;){const f=r[a];(i||a!==0||f.type!=="element"||f.tagName!=="p")&&l.push({type:"text",value:` +`}),f.type==="element"&&f.tagName==="p"&&!i?l.push(...f.children):l.push(f)}const s=r[r.length-1];s&&(i||s.type!=="element"||s.tagName!=="p")&&l.push({type:"text",value:` +`});const c={type:"element",tagName:"li",properties:o,children:l};return e.patch(t,c),e.applyData(t,c)}function zc(e){let t=!1;if(e.type==="list"){t=e.spread||!1;const n=e.children;let r=-1;for(;!t&&++r<n.length;)t=wi(n[r])}return t}function wi(e){return e.spread??e.children.length>1}function Mc(e,t){const n={},r=e.all(t);let i=-1;for(typeof t.start=="number"&&t.start!==1&&(n.start=t.start);++i<r.length;){const l=r[i];if(l.type==="element"&&l.tagName==="li"&&l.properties&&Array.isArray(l.properties.className)&&l.properties.className.includes("task-list-item")){n.className=["contains-task-list"];break}}const o={type:"element",tagName:t.ordered?"ol":"ul",properties:n,children:e.wrap(r,!0)};return e.patch(t,o),e.applyData(t,o)}function Fc(e,t){const n={type:"element",tagName:"p",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function Rc(e,t){const n={type:"root",children:e.wrap(e.all(t))};return e.patch(t,n),e.applyData(t,n)}function Nc(e,t){const n={type:"element",tagName:"strong",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function jc(e,t){const n=e.all(t),r=n.shift(),i=[];if(r){const l={type:"element",tagName:"thead",properties:{},children:e.wrap([r],!0)};e.patch(t.children[0],l),i.push(l)}if(n.length>0){const l={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},a=wn(t.children[1]),s=ni(t.children[t.children.length-1]);a&&s&&(l.position={start:a,end:s}),i.push(l)}const o={type:"element",tagName:"table",properties:{},children:e.wrap(i,!0)};return e.patch(t,o),e.applyData(t,o)}function Bc(e,t,n){const r=n?n.children:void 0,i=(r?r.indexOf(t):1)===0?"th":"td",o=n&&n.type==="table"?n.align:void 0,l=o?o.length:t.children.length;let a=-1;const s=[];for(;++a<l;){const f=t.children[a],u={},h=o?o[a]:void 0;h&&(u.align=h);let p={type:"element",tagName:i,properties:u,children:[]};f&&(p.children=e.all(f),e.patch(f,p),p=e.applyData(f,p)),s.push(p)}const c={type:"element",tagName:"tr",properties:{},children:e.wrap(s,!0)};return e.patch(t,c),e.applyData(t,c)}function Hc(e,t){const n={type:"element",tagName:"td",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}const gr=9,yr=32;function Uc(e){const t=String(e),n=/\r?\n|\r/g;let r=n.exec(t),i=0;const o=[];for(;r;)o.push(vr(t.slice(i,r.index),i>0,!0),r[0]),i=r.index+r[0].length,r=n.exec(t);return o.push(vr(t.slice(i),i>0,!1)),o.join("")}function vr(e,t,n){let r=0,i=e.length;if(t){let o=e.codePointAt(r);for(;o===gr||o===yr;)r++,o=e.codePointAt(r)}if(n){let o=e.codePointAt(i-1);for(;o===gr||o===yr;)i--,o=e.codePointAt(i-1)}return i>r?e.slice(r,i):""}function Vc(e,t){const n={type:"text",value:Uc(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function qc(e,t){const n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}const $c={blockquote:kc,break:bc,code:wc,delete:Cc,emphasis:Sc,footnoteReference:Ic,heading:Ec,html:Tc,imageReference:Ac,image:Pc,inlineCode:_c,linkReference:Dc,link:Lc,listItem:Oc,list:Mc,paragraph:Fc,root:Rc,strong:Nc,table:jc,tableCell:Hc,tableRow:Bc,text:Vc,thematicBreak:qc,toml:gt,yaml:gt,definition:gt,footnoteDefinition:gt};function gt(){}function Wc(e,t){const n=[{type:"text",value:"↩"}];return t>1&&n.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(t)}]}),n}function Qc(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}function Kc(e){const t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||Wc,r=e.options.footnoteBackLabel||Qc,i=e.options.footnoteLabel||"Footnotes",o=e.options.footnoteLabelTagName||"h2",l=e.options.footnoteLabelProperties||{className:["sr-only"]},a=[];let s=-1;for(;++s<e.footnoteOrder.length;){const c=e.footnoteById.get(e.footnoteOrder[s]);if(!c)continue;const f=e.all(c),u=String(c.identifier).toUpperCase(),h=Ve(u.toLowerCase());let p=0;const g=[],x=e.footnoteCounts.get(u);for(;x!==void 0&&++p<=x;){g.length>0&&g.push({type:"text",value:" "});let S=typeof n=="string"?n:n(s,p);typeof S=="string"&&(S={type:"text",value:S}),g.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+h+(p>1?"-"+p:""),dataFootnoteBackref:"",ariaLabel:typeof r=="string"?r:r(s,p),className:["data-footnote-backref"]},children:Array.isArray(S)?S:[S]})}const w=f[f.length-1];if(w&&w.type==="element"&&w.tagName==="p"){const S=w.children[w.children.length-1];S&&S.type==="text"?S.value+=" ":w.children.push({type:"text",value:" "}),w.children.push(...g)}else f.push(...g);const y={type:"element",tagName:"li",properties:{id:t+"fn-"+h},children:e.wrap(f,!0)};e.patch(c,y),a.push(y)}if(a.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:o,properties:{...Pe(l),id:"footnote-label"},children:[{type:"text",value:i}]},{type:"text",value:` +`},{type:"element",tagName:"ol",properties:{},children:e.wrap(a,!0)},{type:"text",value:` +`}]}}const cn={}.hasOwnProperty,Zc={};function Xc(e,t){const n=t||Zc,r=new Map,i=new Map,o=new Map,l={...$c,...n.handlers},a={all:c,applyData:Gc,definitionById:r,footnoteById:i,footnoteCounts:o,footnoteOrder:[],handlers:l,one:s,options:n,patch:Yc,wrap:eu};return Se(e,function(f){if(f.type==="definition"||f.type==="footnoteDefinition"){const u=f.type==="definition"?r:i,h=String(f.identifier).toUpperCase();u.has(h)||u.set(h,f)}}),a;function s(f,u){const h=f.type,p=a.handlers[h];if(cn.call(a.handlers,h)&&p)return p(a,f,u);if(a.options.passThrough&&a.options.passThrough.includes(h)){if("children"in f){const{children:g,...x}=f,w=Pe(x);return w.children=a.all(f),w}return Pe(f)}return(a.options.unknownHandler||Jc)(a,f,u)}function c(f){const u=[];if("children"in f){const h=f.children;let p=-1;for(;++p<h.length;){const g=a.one(h[p],f);if(g){if(p&&h[p-1].type==="break"&&(!Array.isArray(g)&&g.type==="text"&&(g.value=xr(g.value)),!Array.isArray(g)&&g.type==="element")){const x=g.children[0];x&&x.type==="text"&&(x.value=xr(x.value))}Array.isArray(g)?u.push(...g):u.push(g)}}}return u}}function Yc(e,t){e.position&&(t.position=Nl(e))}function Gc(e,t){let n=t;if(e&&e.data){const r=e.data.hName,i=e.data.hChildren,o=e.data.hProperties;if(typeof r=="string")if(n.type==="element")n.tagName=r;else{const l="children"in n?n.children:[n];n={type:"element",tagName:r,properties:{},children:l}}n.type==="element"&&o&&Object.assign(n.properties,Pe(o)),"children"in n&&n.children&&i!==null&&i!==void 0&&(n.children=i)}return n}function Jc(e,t){const n=t.data||{},r="value"in t&&!(cn.call(n,"hProperties")||cn.call(n,"hChildren"))?{type:"text",value:t.value}:{type:"element",tagName:"div",properties:{},children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function eu(e,t){const n=[];let r=-1;for(t&&n.push({type:"text",value:` +`});++r<e.length;)r&&n.push({type:"text",value:` +`}),n.push(e[r]);return t&&e.length>0&&n.push({type:"text",value:` +`}),n}function xr(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function kr(e,t){const n=Xc(e,t),r=n.one(e,void 0),i=Kc(n),o=Array.isArray(r)?{type:"root",children:r}:r||{type:"root",children:[]};return i&&o.children.push({type:"text",value:` +`},i),o}function tu(e,t){return e&&"run"in e?async function(n,r){const i=kr(n,{file:r,...t});await e.run(i,r)}:function(n,r){return kr(n,{file:r,...e||t})}}function nu(e){Se(e,function(t,n,r){if(n!==void 0&&r&&t.type==="paragraph"&&t.children.every(function(i){return i.type==="text"&&/^\s*$/.test(i.value)}))return r.children.splice(n,1),n})}function ru(e={except:["http","https"]}){return function(t){const n=new Map;Se(t,"definition",function(r,i,o){if(n.set(r.identifier,r.url),o&&typeof i=="number"){const l=r.url;if(l&&l.includes(":")&&!e.except.some(a=>l.startsWith(`${a}:`)))return o.children.splice(i,1),i}}),Se(t,function(r,i,o){if(o&&typeof i=="number"&&(r.type==="link"||r.type==="linkReference")){const l=r.type==="link"?r.url:n.get(r.identifier);if(l&&l.includes(":")&&!e.except.some(a=>l.startsWith(`${a}:`)))return o.children.splice(i,1,...r.children),i}}),nu(t)}}function br(e){if(e)throw e}var jt,wr;function iu(){if(wr)return jt;wr=1;var e=Object.prototype.hasOwnProperty,t=Object.prototype.toString,n=Object.defineProperty,r=Object.getOwnPropertyDescriptor,i=function(s){return typeof Array.isArray=="function"?Array.isArray(s):t.call(s)==="[object Array]"},o=function(s){if(!s||t.call(s)!=="[object Object]")return!1;var c=e.call(s,"constructor"),f=s.constructor&&s.constructor.prototype&&e.call(s.constructor.prototype,"isPrototypeOf");if(s.constructor&&!c&&!f)return!1;var u;for(u in s);return typeof u>"u"||e.call(s,u)},l=function(s,c){n&&c.name==="__proto__"?n(s,c.name,{enumerable:!0,configurable:!0,value:c.newValue,writable:!0}):s[c.name]=c.newValue},a=function(s,c){if(c==="__proto__")if(e.call(s,c)){if(r)return r(s,c).value}else return;return s[c]};return jt=function s(){var c,f,u,h,p,g,x=arguments[0],w=1,y=arguments.length,S=!1;for(typeof x=="boolean"&&(S=x,x=arguments[1]||{},w=2),(x==null||typeof x!="object"&&typeof x!="function")&&(x={});w<y;++w)if(c=arguments[w],c!=null)for(f in c)u=a(x,f),h=a(c,f),x!==h&&(S&&h&&(o(h)||(p=i(h)))?(p?(p=!1,g=u&&i(u)?u:[]):g=u&&o(u)?u:{},l(x,{name:f,newValue:s(S,g,h)})):typeof h<"u"&&l(x,{name:f,newValue:h}));return x},jt}var ou=iu();const Bt=Hr(ou);function un(e){if(typeof e!="object"||e===null)return!1;const t=Object.getPrototypeOf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}function lu(){const e=[],t={run:n,use:r};return t;function n(...i){let o=-1;const l=i.pop();if(typeof l!="function")throw new TypeError("Expected function as last argument, not "+l);a(null,...i);function a(s,...c){const f=e[++o];let u=-1;if(s){l(s);return}for(;++u<i.length;)(c[u]===null||c[u]===void 0)&&(c[u]=i[u]);i=c,f?au(f,a)(...c):l(null,...c)}}function r(i){if(typeof i!="function")throw new TypeError("Expected `middelware` to be a function, not "+i);return e.push(i),t}}function au(e,t){let n;return r;function r(...l){const a=e.length>l.length;let s;a&&l.push(i);try{s=e.apply(this,l)}catch(c){const f=c;if(a&&n)throw f;return i(f)}a||(s&&s.then&&typeof s.then=="function"?s.then(o,i):s instanceof Error?i(s):o(s))}function i(l,...a){n||(n=!0,t(l,...a))}function o(l){i(null,l)}}const ue={basename:su,dirname:cu,extname:uu,join:fu,sep:"/"};function su(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');st(e);let n=0,r=-1,i=e.length,o;if(t===void 0||t.length===0||t.length>e.length){for(;i--;)if(e.codePointAt(i)===47){if(o){n=i+1;break}}else r<0&&(o=!0,r=i+1);return r<0?"":e.slice(n,r)}if(t===e)return"";let l=-1,a=t.length-1;for(;i--;)if(e.codePointAt(i)===47){if(o){n=i+1;break}}else l<0&&(o=!0,l=i+1),a>-1&&(e.codePointAt(i)===t.codePointAt(a--)?a<0&&(r=i):(a=-1,r=l));return n===r?r=l:r<0&&(r=e.length),e.slice(n,r)}function cu(e){if(st(e),e.length===0)return".";let t=-1,n=e.length,r;for(;--n;)if(e.codePointAt(n)===47){if(r){t=n;break}}else r||(r=!0);return t<0?e.codePointAt(0)===47?"/":".":t===1&&e.codePointAt(0)===47?"//":e.slice(0,t)}function uu(e){st(e);let t=e.length,n=-1,r=0,i=-1,o=0,l;for(;t--;){const a=e.codePointAt(t);if(a===47){if(l){r=t+1;break}continue}n<0&&(l=!0,n=t+1),a===46?i<0?i=t:o!==1&&(o=1):i>-1&&(o=-1)}return i<0||n<0||o===0||o===1&&i===n-1&&i===r+1?"":e.slice(i,n)}function fu(...e){let t=-1,n;for(;++t<e.length;)st(e[t]),e[t]&&(n=n===void 0?e[t]:n+"/"+e[t]);return n===void 0?".":pu(n)}function pu(e){st(e);const t=e.codePointAt(0)===47;let n=hu(e,!t);return n.length===0&&!t&&(n="."),n.length>0&&e.codePointAt(e.length-1)===47&&(n+="/"),t?"/"+n:n}function hu(e,t){let n="",r=0,i=-1,o=0,l=-1,a,s;for(;++l<=e.length;){if(l<e.length)a=e.codePointAt(l);else{if(a===47)break;a=47}if(a===47){if(!(i===l-1||o===1))if(i!==l-1&&o===2){if(n.length<2||r!==2||n.codePointAt(n.length-1)!==46||n.codePointAt(n.length-2)!==46){if(n.length>2){if(s=n.lastIndexOf("/"),s!==n.length-1){s<0?(n="",r=0):(n=n.slice(0,s),r=n.length-1-n.lastIndexOf("/")),i=l,o=0;continue}}else if(n.length>0){n="",r=0,i=l,o=0;continue}}t&&(n=n.length>0?n+"/..":"..",r=2)}else n.length>0?n+="/"+e.slice(i+1,l):n=e.slice(i+1,l),r=l-i-1;i=l,o=0}else a===46&&o>-1?o++:o=-1}return n}function st(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const du={cwd:mu};function mu(){return"/"}function fn(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function gu(e){if(typeof e=="string")e=new URL(e);else if(!fn(e)){const t=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code="ERR_INVALID_ARG_TYPE",t}if(e.protocol!=="file:"){const t=new TypeError("The URL must be of scheme file");throw t.code="ERR_INVALID_URL_SCHEME",t}return yu(e)}function yu(e){if(e.hostname!==""){const r=new TypeError('File URL host must be "localhost" or empty on darwin');throw r.code="ERR_INVALID_FILE_URL_HOST",r}const t=e.pathname;let n=-1;for(;++n<t.length;)if(t.codePointAt(n)===37&&t.codePointAt(n+1)===50){const r=t.codePointAt(n+2);if(r===70||r===102){const i=new TypeError("File URL path must not include encoded / characters");throw i.code="ERR_INVALID_FILE_URL_PATH",i}}return decodeURIComponent(t)}const Ht=["history","path","basename","stem","extname","dirname"];class vu{constructor(t){let n;t?fn(t)?n={path:t}:typeof t=="string"||xu(t)?n={value:t}:n=t:n={},this.cwd="cwd"in n?"":du.cwd(),this.data={},this.history=[],this.messages=[],this.value,this.map,this.result,this.stored;let r=-1;for(;++r<Ht.length;){const o=Ht[r];o in n&&n[o]!==void 0&&n[o]!==null&&(this[o]=o==="history"?[...n[o]]:n[o])}let i;for(i in n)Ht.includes(i)||(this[i]=n[i])}get basename(){return typeof this.path=="string"?ue.basename(this.path):void 0}set basename(t){Vt(t,"basename"),Ut(t,"basename"),this.path=ue.join(this.dirname||"",t)}get dirname(){return typeof this.path=="string"?ue.dirname(this.path):void 0}set dirname(t){Cr(this.basename,"dirname"),this.path=ue.join(t||"",this.basename)}get extname(){return typeof this.path=="string"?ue.extname(this.path):void 0}set extname(t){if(Ut(t,"extname"),Cr(this.dirname,"extname"),t){if(t.codePointAt(0)!==46)throw new Error("`extname` must start with `.`");if(t.includes(".",1))throw new Error("`extname` cannot contain multiple dots")}this.path=ue.join(this.dirname,this.stem+(t||""))}get path(){return this.history[this.history.length-1]}set path(t){fn(t)&&(t=gu(t)),Vt(t,"path"),this.path!==t&&this.history.push(t)}get stem(){return typeof this.path=="string"?ue.basename(this.path,this.extname):void 0}set stem(t){Vt(t,"stem"),Ut(t,"stem"),this.path=ue.join(this.dirname||"",t+(this.extname||""))}fail(t,n,r){const i=this.message(t,n,r);throw i.fatal=!0,i}info(t,n,r){const i=this.message(t,n,r);return i.fatal=void 0,i}message(t,n,r){const i=new X(t,n,r);return this.path&&(i.name=this.path+":"+i.name,i.file=this.path),i.fatal=!1,this.messages.push(i),i}toString(t){return this.value===void 0?"":typeof this.value=="string"?this.value:new TextDecoder(t||void 0).decode(this.value)}}function Ut(e,t){if(e&&e.includes(ue.sep))throw new Error("`"+t+"` cannot be a path: did not expect `"+ue.sep+"`")}function Vt(e,t){if(!e)throw new Error("`"+t+"` cannot be empty")}function Cr(e,t){if(!e)throw new Error("Setting `"+t+"` requires `path` to be set too")}function xu(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const ku=(function(e){const t=this.constructor.prototype,n=t[e],r=function(){return n.apply(r,arguments)};return Object.setPrototypeOf(r,t),r}),bu={}.hasOwnProperty;class Pn extends ku{constructor(){super("copy"),this.Compiler=void 0,this.Parser=void 0,this.attachers=[],this.compiler=void 0,this.freezeIndex=-1,this.frozen=void 0,this.namespace={},this.parser=void 0,this.transformers=lu()}copy(){const t=new Pn;let n=-1;for(;++n<this.attachers.length;){const r=this.attachers[n];t.use(...r)}return t.data(Bt(!0,{},this.namespace)),t}data(t,n){return typeof t=="string"?arguments.length===2?(Wt("data",this.frozen),this.namespace[t]=n,this):bu.call(this.namespace,t)&&this.namespace[t]||void 0:t?(Wt("data",this.frozen),this.namespace=t,this):this.namespace}freeze(){if(this.frozen)return this;const t=this;for(;++this.freezeIndex<this.attachers.length;){const[n,...r]=this.attachers[this.freezeIndex];if(r[0]===!1)continue;r[0]===!0&&(r[0]=void 0);const i=n.call(t,...r);typeof i=="function"&&this.transformers.use(i)}return this.frozen=!0,this.freezeIndex=Number.POSITIVE_INFINITY,this}parse(t){this.freeze();const n=yt(t),r=this.parser||this.Parser;return qt("parse",r),r(String(n),n)}process(t,n){const r=this;return this.freeze(),qt("process",this.parser||this.Parser),$t("process",this.compiler||this.Compiler),n?i(void 0,n):new Promise(i);function i(o,l){const a=yt(t),s=r.parse(a);r.run(s,a,function(f,u,h){if(f||!u||!h)return c(f);const p=u,g=r.stringify(p,h);Su(g)?h.value=g:h.result=g,c(f,h)});function c(f,u){f||!u?l(f):o?o(u):n(void 0,u)}}}processSync(t){let n=!1,r;return this.freeze(),qt("processSync",this.parser||this.Parser),$t("processSync",this.compiler||this.Compiler),this.process(t,i),Ir("processSync","process",n),r;function i(o,l){n=!0,br(o),r=l}}run(t,n,r){Sr(t),this.freeze();const i=this.transformers;return!r&&typeof n=="function"&&(r=n,n=void 0),r?o(void 0,r):new Promise(o);function o(l,a){const s=yt(n);i.run(t,s,c);function c(f,u,h){const p=u||t;f?a(f):l?l(p):r(void 0,p,h)}}}runSync(t,n){let r=!1,i;return this.run(t,n,o),Ir("runSync","run",r),i;function o(l,a){br(l),i=a,r=!0}}stringify(t,n){this.freeze();const r=yt(n),i=this.compiler||this.Compiler;return $t("stringify",i),Sr(t),i(t,r)}use(t,...n){const r=this.attachers,i=this.namespace;if(Wt("use",this.frozen),t!=null)if(typeof t=="function")s(t,n);else if(typeof t=="object")Array.isArray(t)?a(t):l(t);else throw new TypeError("Expected usable value, not `"+t+"`");return this;function o(c){if(typeof c=="function")s(c,[]);else if(typeof c=="object")if(Array.isArray(c)){const[f,...u]=c;s(f,u)}else l(c);else throw new TypeError("Expected usable value, not `"+c+"`")}function l(c){if(!("plugins"in c)&&!("settings"in c))throw new Error("Expected usable value but received an empty preset, which is probably a mistake: presets typically come with `plugins` and sometimes with `settings`, but this has neither");a(c.plugins),c.settings&&(i.settings=Bt(!0,i.settings,c.settings))}function a(c){let f=-1;if(c!=null)if(Array.isArray(c))for(;++f<c.length;){const u=c[f];o(u)}else throw new TypeError("Expected a list of plugins, not `"+c+"`")}function s(c,f){let u=-1,h=-1;for(;++u<r.length;)if(r[u][0]===c){h=u;break}if(h===-1)r.push([c,...f]);else if(f.length>0){let[p,...g]=f;const x=r[h][1];un(x)&&un(p)&&(p=Bt(!0,x,p)),r[h]=[c,p,...g]}}}}const wu=new Pn().freeze();function qt(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function $t(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function Wt(e,t){if(t)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function Sr(e){if(!un(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function Ir(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function yt(e){return Cu(e)?e:new vu(e)}function Cu(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function Su(e){return typeof e=="string"||Iu(e)}function Iu(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const Eu={name:"NcReferenceList",components:{NcReferenceWidget:Go},props:{text:{type:String,default:""},referenceData:{type:Array,default:null},limit:{type:Number,default:1},displayFallback:{type:Boolean,default:!1},interactive:{type:Boolean,default:!0},interactiveOptIn:{type:Boolean,default:!1}},emits:["loaded"],data(){return{references:null,loading:!0}},computed:{isVisible(){return this.loading||this.displayedReferences.length!==0},values(){return this.referenceData?this.referenceData:this.displayFallback&&!this.loading&&!this.references?[this.fallbackReference]:this.references?Object.values(this.references):[]},firstReference(){return this.values[0]??null},displayedReferences(){return this.values.filter(Boolean).slice(0,this.limit)},fallbackReference(){return{accessible:!0,openGraphObject:{id:this.text,link:this.text,name:this.text},richObjectType:"open-graph"}}},watch:{text:"fetch"},mounted(){this.fetch()},methods:{fetch(){if(this.loading=!0,this.referenceData){this.references=null,this.loading=!1;return}if(!new RegExp(Bn).exec(this.text)){this.references=null,this.loading=!1;return}this.resolve().then(e=>{this.references=e.data.ocs.data.references,this.loading=!1,this.$emit("loaded")}).catch(e=>{Tt.error("[NcReferenceList] Failed to extract references",{error:e}),this.loading=!1,this.$emit("loaded")})},resolve(){const e=new RegExp(Bn).exec(this.text.trim()),t=mo()===null;return this.limit===1&&e?t?ft.get(pt("references/resolvePublic")+`?reference=${encodeURIComponent(e[0])}&sharingToken=${Un()}`):ft.get(pt("references/resolve")+`?reference=${encodeURIComponent(e[0])}`):t?ft.post(pt("references/extractPublic"),{text:this.text,resolve:!0,limit:this.limit,sharingToken:Un()}):ft.post(pt("references/extract"),{text:this.text,resolve:!0,limit:this.limit})}}};function Tu(e,t,n,r,i,o){const l=en("NcReferenceWidget");return o.isVisible?(xe(),et("div",{key:0,class:Gt(["widgets--list",{"icon-loading":i.loading}])},[(xe(!0),et(qr,null,Fo(o.displayedReferences,a=>(xe(),Ct(l,{key:a.openGraphObject?.id,reference:a,interactive:n.interactive,"interactive-opt-in":n.interactiveOptIn},null,8,["reference","interactive","interactive-opt-in"]))),128))],2)):xt("",!0)}const Qt=dn(Eu,[["render",Tu],["__scopeId","data-v-cd116174"]]);function Er(e,t){const n=String(e);if(typeof t!="string")throw new TypeError("Expected character");let r=0,i=n.indexOf(t);for(;i!==-1;)r++,i=n.indexOf(t,i+t.length);return r}const lt=Dt(/[A-Za-z]/),_n=Dt(/[\dA-Za-z]/);function Au(e){return e!==null&&(e<32||e===127)}function je(e){return e!==null&&e<-2}function ee(e){return e!==null&&(e<0||e===32)}function ke(e){return e===-2||e===-1||e===32}const _t=Dt(new RegExp("\\p{P}|\\p{S}","u")),_e=Dt(/\s/);function Dt(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function Pu(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}const Lt=(function(e){if(e==null)return Ou;if(typeof e=="function")return Ot(e);if(typeof e=="object")return Array.isArray(e)?_u(e):Du(e);if(typeof e=="string")return Lu(e);throw new Error("Expected function, string, or object as test")});function _u(e){const t=[];let n=-1;for(;++n<e.length;)t[n]=Lt(e[n]);return Ot(r);function r(...i){let o=-1;for(;++o<t.length;)if(t[o].apply(this,i))return!0;return!1}}function Du(e){const t=e;return Ot(n);function n(r){const i=r;let o;for(o in e)if(i[o]!==t[o])return!1;return!0}}function Lu(e){return Ot(t);function t(n){return n&&n.type===e}}function Ot(e){return t;function t(n,r,i){return!!(zu(n)&&e.call(this,n,typeof r=="number"?r:void 0,i||void 0))}}function Ou(){return!0}function zu(e){return e!==null&&typeof e=="object"&&"type"in e}const Ci=[],Mu=!0,Tr=!1,Fu="skip";function Ru(e,t,n,r){let i;i=t;const o=Lt(i),l=1;a(e,void 0,[])();function a(s,c,f){const u=s&&typeof s=="object"?s:{};if(typeof u.type=="string"){const p=typeof u.tagName=="string"?u.tagName:typeof u.name=="string"?u.name:void 0;Object.defineProperty(h,"name",{value:"node ("+(s.type+(p?"<"+p+">":""))+")"})}return h;function h(){let p=Ci,g,x,w;if(o(s,c,f[f.length-1]||void 0)&&(p=Nu(n(s,f)),p[0]===Tr))return p;if("children"in s&&s.children){const y=s;if(y.children&&p[0]!==Fu)for(x=-1+l,w=f.concat(y);x>-1&&x<y.children.length;){const S=y.children[x];if(g=a(S,x,w)(),g[0]===Tr)return g;x=typeof g[1]=="number"?g[1]:x+l}}return p}}}function Nu(e){return Array.isArray(e)?e:typeof e=="number"?[Mu,e]:e==null?Ci:[e]}function ju(e,t,n){const r=Lt((n||{}).ignore||[]),i=Bu(t);let o=-1;for(;++o<i.length;)Ru(e,"text",l);function l(s,c){let f=-1,u;for(;++f<c.length;){const h=c[f],p=u?u.children:void 0;if(r(h,p?p.indexOf(h):void 0,u))return;u=h}if(u)return a(s,c)}function a(s,c){const f=c[c.length-1],u=i[o][0],h=i[o][1];let p=0;const g=f.children.indexOf(s);let x=!1,w=[];u.lastIndex=0;let y=u.exec(s.value);for(;y;){const S=y.index,I={index:y.index,input:y.input,stack:[...c,s]};let A=h(...y,I);if(typeof A=="string"&&(A=A.length>0?{type:"text",value:A}:void 0),A===!1?u.lastIndex=S+1:(p!==S&&w.push({type:"text",value:s.value.slice(p,S)}),Array.isArray(A)?w.push(...A):A&&w.push(A),p=S+y[0].length,x=!0),!u.global)break;y=u.exec(s.value)}return x?(p<s.value.length&&w.push({type:"text",value:s.value.slice(p)}),f.children.splice(g,1,...w)):w=[s],g+w.length}}function Bu(e){const t=[];if(!Array.isArray(e))throw new TypeError("Expected find and replace tuple or list of tuples");const n=!e[0]||Array.isArray(e[0])?e:[e];let r=-1;for(;++r<n.length;){const i=n[r];t.push([Hu(i[0]),Uu(i[1])])}return t}function Hu(e){return typeof e=="string"?new RegExp(Pu(e),"g"):e}function Uu(e){return typeof e=="function"?e:function(){return e}}const Kt="phrasing",Zt=["autolink","link","image","label"];function Vu(){return{transforms:[Xu],enter:{literalAutolink:$u,literalAutolinkEmail:Xt,literalAutolinkHttp:Xt,literalAutolinkWww:Xt},exit:{literalAutolink:Zu,literalAutolinkEmail:Ku,literalAutolinkHttp:Wu,literalAutolinkWww:Qu}}}function qu(){return{unsafe:[{character:"@",before:"[+\\-.\\w]",after:"[\\-.\\w]",inConstruct:Kt,notInConstruct:Zt},{character:".",before:"[Ww]",after:"[\\-.\\w]",inConstruct:Kt,notInConstruct:Zt},{character:":",before:"[ps]",after:"\\/",inConstruct:Kt,notInConstruct:Zt}]}}function $u(e){this.enter({type:"link",title:null,url:"",children:[]},e)}function Xt(e){this.config.enter.autolinkProtocol.call(this,e)}function Wu(e){this.config.exit.autolinkProtocol.call(this,e)}function Qu(e){this.config.exit.data.call(this,e);const t=this.stack[this.stack.length-1];t.type,t.url="http://"+this.sliceSerialize(e)}function Ku(e){this.config.exit.autolinkEmail.call(this,e)}function Zu(e){this.exit(e)}function Xu(e){ju(e,[[/(https?:\/\/|www(?=\.))([-.\w]+)([^ \t\r\n]*)/gi,Yu],[/([-.\w+]+)@([-\w]+(?:\.[-\w]+)+)/g,Gu]],{ignore:["link","linkReference"]})}function Yu(e,t,n,r,i){let o="";if(!Si(i)||(/^w/i.test(t)&&(n=t+n,t="",o="http://"),!Ju(n)))return!1;const l=ef(n+r);if(!l[0])return!1;const a={type:"link",title:null,url:o+t+l[0],children:[{type:"text",value:t+l[0]}]};return l[1]?[a,{type:"text",value:l[1]}]:a}function Gu(e,t,n,r){return!Si(r,!0)||/[-\d_]$/.test(n)?!1:{type:"link",title:null,url:"mailto:"+t+"@"+n,children:[{type:"text",value:t+"@"+n}]}}function Ju(e){const t=e.split(".");return!(t.length<2||t[t.length-1]&&(/_/.test(t[t.length-1])||!/[a-zA-Z\d]/.test(t[t.length-1]))||t[t.length-2]&&(/_/.test(t[t.length-2])||!/[a-zA-Z\d]/.test(t[t.length-2])))}function ef(e){const t=/[!"&'),.:;<>?\]}]+$/.exec(e);if(!t)return[e,void 0];e=e.slice(0,t.index);let n=t[0],r=n.indexOf(")");const i=Er(e,"(");let o=Er(e,")");for(;r!==-1&&i>o;)e+=n.slice(0,r+1),n=n.slice(r+1),r=n.indexOf(")"),o++;return[e,n]}function Si(e,t){const n=e.input.charCodeAt(e.index-1);return(e.index===0||_e(n)||_t(n))&&(!t||n!==47)}function ct(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}Ii.peek=uf;function tf(){this.buffer()}function nf(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function rf(){this.buffer()}function of(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function lf(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=ct(this.sliceSerialize(e)).toLowerCase(),n.label=t}function af(e){this.exit(e)}function sf(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=ct(this.sliceSerialize(e)).toLowerCase(),n.label=t}function cf(e){this.exit(e)}function uf(){return"["}function Ii(e,t,n,r){const i=n.createTracker(r);let o=i.move("[^");const l=n.enter("footnoteReference"),a=n.enter("reference");return o+=i.move(n.safe(n.associationId(e),{after:"]",before:o})),a(),l(),o+=i.move("]"),o}function ff(){return{enter:{gfmFootnoteCallString:tf,gfmFootnoteCall:nf,gfmFootnoteDefinitionLabelString:rf,gfmFootnoteDefinition:of},exit:{gfmFootnoteCallString:lf,gfmFootnoteCall:af,gfmFootnoteDefinitionLabelString:sf,gfmFootnoteDefinition:cf}}}function pf(e){let t=!1;return e&&e.firstLineBlank&&(t=!0),{handlers:{footnoteDefinition:n,footnoteReference:Ii},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]};function n(r,i,o,l){const a=o.createTracker(l);let s=a.move("[^");const c=o.enter("footnoteDefinition"),f=o.enter("label");return s+=a.move(o.safe(o.associationId(r),{before:s,after:"]"})),f(),s+=a.move("]:"),r.children&&r.children.length>0&&(a.shift(4),s+=a.move((t?` +`:" ")+o.indentLines(o.containerFlow(r,a.current()),t?Ei:hf))),c(),s}}function hf(e,t,n){return t===0?e:Ei(e,t,n)}function Ei(e,t,n){return(n?"":" ")+e}const df=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];Ti.peek=xf;function mf(){return{canContainEols:["delete"],enter:{strikethrough:yf},exit:{strikethrough:vf}}}function gf(){return{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:df}],handlers:{delete:Ti}}}function yf(e){this.enter({type:"delete",children:[]},e)}function vf(e){this.exit(e)}function Ti(e,t,n,r){const i=n.createTracker(r),o=n.enter("strikethrough");let l=i.move("~~");return l+=n.containerPhrasing(e,{...i.current(),before:l,after:"~"}),l+=i.move("~~"),o(),l}function xf(){return"~"}function kf(e){return e.length}function bf(e,t){const n=t||{},r=(n.align||[]).concat(),i=n.stringLength||kf,o=[],l=[],a=[],s=[];let c=0,f=-1;for(;++f<e.length;){const x=[],w=[];let y=-1;for(e[f].length>c&&(c=e[f].length);++y<e[f].length;){const S=wf(e[f][y]);if(n.alignDelimiters!==!1){const I=i(S);w[y]=I,(s[y]===void 0||I>s[y])&&(s[y]=I)}x.push(S)}l[f]=x,a[f]=w}let u=-1;if(typeof r=="object"&&"length"in r)for(;++u<c;)o[u]=Ar(r[u]);else{const x=Ar(r);for(;++u<c;)o[u]=x}u=-1;const h=[],p=[];for(;++u<c;){const x=o[u];let w="",y="";x===99?(w=":",y=":"):x===108?w=":":x===114&&(y=":");let S=n.alignDelimiters===!1?1:Math.max(1,s[u]-w.length-y.length);const I=w+"-".repeat(S)+y;n.alignDelimiters!==!1&&(S=w.length+S+y.length,S>s[u]&&(s[u]=S),p[u]=S),h[u]=I}l.splice(1,0,h),a.splice(1,0,p),f=-1;const g=[];for(;++f<l.length;){const x=l[f],w=a[f];u=-1;const y=[];for(;++u<c;){const S=x[u]||"";let I="",A="";if(n.alignDelimiters!==!1){const R=s[u]-(w[u]||0),b=o[u];b===114?I=" ".repeat(R):b===99?R%2?(I=" ".repeat(R/2+.5),A=" ".repeat(R/2-.5)):(I=" ".repeat(R/2),A=I):A=" ".repeat(R)}n.delimiterStart!==!1&&!u&&y.push("|"),n.padding!==!1&&!(n.alignDelimiters===!1&&S==="")&&(n.delimiterStart!==!1||u)&&y.push(" "),n.alignDelimiters!==!1&&y.push(I),y.push(S),n.alignDelimiters!==!1&&y.push(A),n.padding!==!1&&y.push(" "),(n.delimiterEnd!==!1||u!==c-1)&&y.push("|")}g.push(n.delimiterEnd===!1?y.join("").replace(/ +$/,""):y.join(""))}return g.join(` +`)}function wf(e){return e==null?"":String(e)}function Ar(e){const t=typeof e=="string"?e.codePointAt(0):0;return t===67||t===99?99:t===76||t===108?108:t===82||t===114?114:0}function Cf(e,t,n,r){const i=n.enter("blockquote"),o=n.createTracker(r);o.move("> "),o.shift(2);const l=n.indentLines(n.containerFlow(e,o.current()),Sf);return i(),l}function Sf(e,t,n){return">"+(n?"":" ")+e}function If(e,t){return Pr(e,t.inConstruct,!0)&&!Pr(e,t.notInConstruct,!1)}function Pr(e,t,n){if(typeof t=="string"&&(t=[t]),!t||t.length===0)return n;let r=-1;for(;++r<t.length;)if(e.includes(t[r]))return!0;return!1}function _r(e,t,n,r){let i=-1;for(;++i<n.unsafe.length;)if(n.unsafe[i].character===` +`&&If(n.stack,n.unsafe[i]))return/[ \t]/.test(r.before)?"":" ";return`\\ +`}function Ef(e,t){const n=String(e);let r=n.indexOf(t),i=r,o=0,l=0;if(typeof t!="string")throw new TypeError("Expected substring");for(;r!==-1;)r===i?++o>l&&(l=o):o=1,i=r+t.length,r=n.indexOf(t,i);return l}function Tf(e,t){return!!(t.options.fences===!1&&e.value&&!e.lang&&/[^ \r\n]/.test(e.value)&&!/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(e.value))}function Af(e){const t=e.options.fence||"`";if(t!=="`"&&t!=="~")throw new Error("Cannot serialize code with `"+t+"` for `options.fence`, expected `` ` `` or `~`");return t}function Pf(e,t,n,r){const i=Af(n),o=e.value||"",l=i==="`"?"GraveAccent":"Tilde";if(Tf(e,n)){const u=n.enter("codeIndented"),h=n.indentLines(o,_f);return u(),h}const a=n.createTracker(r),s=i.repeat(Math.max(Ef(o,i)+1,3)),c=n.enter("codeFenced");let f=a.move(s);if(e.lang){const u=n.enter(`codeFencedLang${l}`);f+=a.move(n.safe(e.lang,{before:f,after:" ",encode:["`"],...a.current()})),u()}if(e.lang&&e.meta){const u=n.enter(`codeFencedMeta${l}`);f+=a.move(" "),f+=a.move(n.safe(e.meta,{before:f,after:` +`,encode:["`"],...a.current()})),u()}return f+=a.move(` +`),o&&(f+=a.move(o+` +`)),f+=a.move(s),c(),f}function _f(e,t,n){return(n?"":" ")+e}function Dn(e){const t=e.options.quote||'"';if(t!=='"'&&t!=="'")throw new Error("Cannot serialize title with `"+t+"` for `options.quote`, expected `\"`, or `'`");return t}function Df(e,t,n,r){const i=Dn(n),o=i==='"'?"Quote":"Apostrophe",l=n.enter("definition");let a=n.enter("label");const s=n.createTracker(r);let c=s.move("[");return c+=s.move(n.safe(n.associationId(e),{before:c,after:"]",...s.current()})),c+=s.move("]: "),a(),!e.url||/[\0- \u007F]/.test(e.url)?(a=n.enter("destinationLiteral"),c+=s.move("<"),c+=s.move(n.safe(e.url,{before:c,after:">",...s.current()})),c+=s.move(">")):(a=n.enter("destinationRaw"),c+=s.move(n.safe(e.url,{before:c,after:e.title?" ":` +`,...s.current()}))),a(),e.title&&(a=n.enter(`title${o}`),c+=s.move(" "+i),c+=s.move(n.safe(e.title,{before:c,after:i,...s.current()})),c+=s.move(i),a()),l(),c}function Lf(e){const t=e.options.emphasis||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize emphasis with `"+t+"` for `options.emphasis`, expected `*`, or `_`");return t}function at(e){return"&#x"+e.toString(16).toUpperCase()+";"}function It(e){if(e===null||ee(e)||_e(e))return 1;if(_t(e))return 2}function Et(e,t,n){const r=It(e),i=It(t);return r===void 0?i===void 0?n==="_"?{inside:!0,outside:!0}:{inside:!1,outside:!1}:i===1?{inside:!0,outside:!0}:{inside:!1,outside:!0}:r===1?i===void 0?{inside:!1,outside:!1}:i===1?{inside:!0,outside:!0}:{inside:!1,outside:!1}:i===void 0?{inside:!1,outside:!1}:i===1?{inside:!0,outside:!1}:{inside:!1,outside:!1}}Ai.peek=Of;function Ai(e,t,n,r){const i=Lf(n),o=n.enter("emphasis"),l=n.createTracker(r),a=l.move(i);let s=l.move(n.containerPhrasing(e,{after:i,before:a,...l.current()}));const c=s.charCodeAt(0),f=Et(r.before.charCodeAt(r.before.length-1),c,i);f.inside&&(s=at(c)+s.slice(1));const u=s.charCodeAt(s.length-1),h=Et(r.after.charCodeAt(0),u,i);h.inside&&(s=s.slice(0,-1)+at(u));const p=l.move(i);return o(),n.attentionEncodeSurroundingInfo={after:h.outside,before:f.outside},a+s+p}function Of(e,t,n){return n.options.emphasis||"*"}const zf={};function Pi(e,t){const n=zf,r=typeof n.includeImageAlt=="boolean"?n.includeImageAlt:!0,i=typeof n.includeHtml=="boolean"?n.includeHtml:!0;return _i(e,r,i)}function _i(e,t,n){if(Mf(e)){if("value"in e)return e.type==="html"&&!n?"":e.value;if(t&&"alt"in e&&e.alt)return e.alt;if("children"in e)return Dr(e.children,t,n)}return Array.isArray(e)?Dr(e,t,n):""}function Dr(e,t,n){const r=[];let i=-1;for(;++i<e.length;)r[i]=_i(e[i],t,n);return r.join("")}function Mf(e){return!!(e&&typeof e=="object")}function Ff(e,t){let n=!1;return Se(e,function(r){if("value"in r&&/\r?\n|\r/.test(r.value)||r.type==="break")return n=!0,fo}),!!((!e.depth||e.depth<3)&&Pi(e)&&(t.options.setext||n))}function Rf(e,t,n,r){const i=Math.max(Math.min(6,e.depth||1),1),o=n.createTracker(r);if(Ff(e,n)){const f=n.enter("headingSetext"),u=n.enter("phrasing"),h=n.containerPhrasing(e,{...o.current(),before:` +`,after:` +`});return u(),f(),h+` +`+(i===1?"=":"-").repeat(h.length-(Math.max(h.lastIndexOf("\r"),h.lastIndexOf(` +`))+1))}const l="#".repeat(i),a=n.enter("headingAtx"),s=n.enter("phrasing");o.move(l+" ");let c=n.containerPhrasing(e,{before:"# ",after:` +`,...o.current()});return/^[\t ]/.test(c)&&(c=at(c.charCodeAt(0))+c.slice(1)),c=c?l+" "+c:l,n.options.closeAtx&&(c+=" "+l),s(),a(),c}Di.peek=Nf;function Di(e){return e.value||""}function Nf(){return"<"}Li.peek=jf;function Li(e,t,n,r){const i=Dn(n),o=i==='"'?"Quote":"Apostrophe",l=n.enter("image");let a=n.enter("label");const s=n.createTracker(r);let c=s.move("![");return c+=s.move(n.safe(e.alt,{before:c,after:"]",...s.current()})),c+=s.move("]("),a(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(a=n.enter("destinationLiteral"),c+=s.move("<"),c+=s.move(n.safe(e.url,{before:c,after:">",...s.current()})),c+=s.move(">")):(a=n.enter("destinationRaw"),c+=s.move(n.safe(e.url,{before:c,after:e.title?" ":")",...s.current()}))),a(),e.title&&(a=n.enter(`title${o}`),c+=s.move(" "+i),c+=s.move(n.safe(e.title,{before:c,after:i,...s.current()})),c+=s.move(i),a()),c+=s.move(")"),l(),c}function jf(){return"!"}Oi.peek=Bf;function Oi(e,t,n,r){const i=e.referenceType,o=n.enter("imageReference");let l=n.enter("label");const a=n.createTracker(r);let s=a.move("![");const c=n.safe(e.alt,{before:s,after:"]",...a.current()});s+=a.move(c+"]["),l();const f=n.stack;n.stack=[],l=n.enter("reference");const u=n.safe(n.associationId(e),{before:s,after:"]",...a.current()});return l(),n.stack=f,o(),i==="full"||!c||c!==u?s+=a.move(u+"]"):i==="shortcut"?s=s.slice(0,-1):s+=a.move("]"),s}function Bf(){return"!"}zi.peek=Hf;function zi(e,t,n){let r=e.value||"",i="`",o=-1;for(;new RegExp("(^|[^`])"+i+"([^`]|$)").test(r);)i+="`";for(/[^ \r\n]/.test(r)&&(/^[ \r\n]/.test(r)&&/[ \r\n]$/.test(r)||/^`|`$/.test(r))&&(r=" "+r+" ");++o<n.unsafe.length;){const l=n.unsafe[o],a=n.compilePattern(l);let s;if(l.atBreak)for(;s=a.exec(r);){let c=s.index;r.charCodeAt(c)===10&&r.charCodeAt(c-1)===13&&c--,r=r.slice(0,c)+" "+r.slice(s.index+1)}}return i+r+i}function Hf(){return"`"}function Mi(e,t){const n=Pi(e);return!!(!t.options.resourceLink&&e.url&&!e.title&&e.children&&e.children.length===1&&e.children[0].type==="text"&&(n===e.url||"mailto:"+n===e.url)&&/^[a-z][a-z+.-]+:/i.test(e.url)&&!/[\0- <>\u007F]/.test(e.url))}Fi.peek=Uf;function Fi(e,t,n,r){const i=Dn(n),o=i==='"'?"Quote":"Apostrophe",l=n.createTracker(r);let a,s;if(Mi(e,n)){const f=n.stack;n.stack=[],a=n.enter("autolink");let u=l.move("<");return u+=l.move(n.containerPhrasing(e,{before:u,after:">",...l.current()})),u+=l.move(">"),a(),n.stack=f,u}a=n.enter("link"),s=n.enter("label");let c=l.move("[");return c+=l.move(n.containerPhrasing(e,{before:c,after:"](",...l.current()})),c+=l.move("]("),s(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(s=n.enter("destinationLiteral"),c+=l.move("<"),c+=l.move(n.safe(e.url,{before:c,after:">",...l.current()})),c+=l.move(">")):(s=n.enter("destinationRaw"),c+=l.move(n.safe(e.url,{before:c,after:e.title?" ":")",...l.current()}))),s(),e.title&&(s=n.enter(`title${o}`),c+=l.move(" "+i),c+=l.move(n.safe(e.title,{before:c,after:i,...l.current()})),c+=l.move(i),s()),c+=l.move(")"),a(),c}function Uf(e,t,n){return Mi(e,n)?"<":"["}Ri.peek=Vf;function Ri(e,t,n,r){const i=e.referenceType,o=n.enter("linkReference");let l=n.enter("label");const a=n.createTracker(r);let s=a.move("[");const c=n.containerPhrasing(e,{before:s,after:"]",...a.current()});s+=a.move(c+"]["),l();const f=n.stack;n.stack=[],l=n.enter("reference");const u=n.safe(n.associationId(e),{before:s,after:"]",...a.current()});return l(),n.stack=f,o(),i==="full"||!c||c!==u?s+=a.move(u+"]"):i==="shortcut"?s=s.slice(0,-1):s+=a.move("]"),s}function Vf(){return"["}function Ln(e){const t=e.options.bullet||"*";if(t!=="*"&&t!=="+"&&t!=="-")throw new Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function qf(e){const t=Ln(e),n=e.options.bulletOther;if(!n)return t==="*"?"-":"*";if(n!=="*"&&n!=="+"&&n!=="-")throw new Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw new Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}function $f(e){const t=e.options.bulletOrdered||".";if(t!=="."&&t!==")")throw new Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}function Ni(e){const t=e.options.rule||"*";if(t!=="*"&&t!=="-"&&t!=="_")throw new Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}function Wf(e,t,n,r){const i=n.enter("list"),o=n.bulletCurrent;let l=e.ordered?$f(n):Ln(n);const a=e.ordered?l==="."?")":".":qf(n);let s=t&&n.bulletLastUsed?l===n.bulletLastUsed:!1;if(!e.ordered){const f=e.children?e.children[0]:void 0;if((l==="*"||l==="-")&&f&&(!f.children||!f.children[0])&&n.stack[n.stack.length-1]==="list"&&n.stack[n.stack.length-2]==="listItem"&&n.stack[n.stack.length-3]==="list"&&n.stack[n.stack.length-4]==="listItem"&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(s=!0),Ni(n)===l&&f){let u=-1;for(;++u<e.children.length;){const h=e.children[u];if(h&&h.type==="listItem"&&h.children&&h.children[0]&&h.children[0].type==="thematicBreak"){s=!0;break}}}}s&&(l=a),n.bulletCurrent=l;const c=n.containerFlow(e,r);return n.bulletLastUsed=l,n.bulletCurrent=o,i(),c}function Qf(e){const t=e.options.listItemIndent||"one";if(t!=="tab"&&t!=="one"&&t!=="mixed")throw new Error("Cannot serialize items with `"+t+"` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`");return t}function Kf(e,t,n,r){const i=Qf(n);let o=n.bulletCurrent||Ln(n);t&&t.type==="list"&&t.ordered&&(o=(typeof t.start=="number"&&t.start>-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+o);let l=o.length+1;(i==="tab"||i==="mixed"&&(t&&t.type==="list"&&t.spread||e.spread))&&(l=Math.ceil(l/4)*4);const a=n.createTracker(r);a.move(o+" ".repeat(l-o.length)),a.shift(l);const s=n.enter("listItem"),c=n.indentLines(n.containerFlow(e,a.current()),f);return s(),c;function f(u,h,p){return h?(p?"":" ".repeat(l))+u:(p?o:o+" ".repeat(l-o.length))+u}}function Zf(e,t,n,r){const i=n.enter("paragraph"),o=n.enter("phrasing"),l=n.containerPhrasing(e,r);return o(),i(),l}const Xf=Lt(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function Yf(e,t,n,r){return(e.children.some(function(i){return Xf(i)})?n.containerPhrasing:n.containerFlow).call(n,e,r)}function Gf(e){const t=e.options.strong||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}ji.peek=Jf;function ji(e,t,n,r){const i=Gf(n),o=n.enter("strong"),l=n.createTracker(r),a=l.move(i+i);let s=l.move(n.containerPhrasing(e,{after:i,before:a,...l.current()}));const c=s.charCodeAt(0),f=Et(r.before.charCodeAt(r.before.length-1),c,i);f.inside&&(s=at(c)+s.slice(1));const u=s.charCodeAt(s.length-1),h=Et(r.after.charCodeAt(0),u,i);h.inside&&(s=s.slice(0,-1)+at(u));const p=l.move(i+i);return o(),n.attentionEncodeSurroundingInfo={after:h.outside,before:f.outside},a+s+p}function Jf(e,t,n){return n.options.strong||"*"}function ep(e,t,n,r){return n.safe(e.value,r)}function tp(e){const t=e.options.ruleRepetition||3;if(t<3)throw new Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}function np(e,t,n){const r=(Ni(n)+(n.options.ruleSpaces?" ":"")).repeat(tp(n));return n.options.ruleSpaces?r.slice(0,-1):r}const Bi={blockquote:Cf,break:_r,code:Pf,definition:Df,emphasis:Ai,hardBreak:_r,heading:Rf,html:Di,image:Li,imageReference:Oi,inlineCode:zi,link:Fi,linkReference:Ri,list:Wf,listItem:Kf,paragraph:Zf,root:Yf,strong:ji,text:ep,thematicBreak:np};function rp(){return{enter:{table:ip,tableData:Lr,tableHeader:Lr,tableRow:lp},exit:{codeText:ap,table:op,tableData:Yt,tableHeader:Yt,tableRow:Yt}}}function ip(e){const t=e._align;this.enter({type:"table",align:t.map(function(n){return n==="none"?null:n}),children:[]},e),this.data.inTable=!0}function op(e){this.exit(e),this.data.inTable=void 0}function lp(e){this.enter({type:"tableRow",children:[]},e)}function Yt(e){this.exit(e)}function Lr(e){this.enter({type:"tableCell",children:[]},e)}function ap(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,sp));const n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function sp(e,t){return t==="|"?t:e}function cp(e){const t=e||{},n=t.tableCellPadding,r=t.tablePipeAlign,i=t.stringLength,o=n?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:` +`,inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[ :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:h,table:l,tableCell:s,tableRow:a}};function l(p,g,x,w){return c(f(p,x,w),p.align)}function a(p,g,x,w){const y=u(p,x,w),S=c([y]);return S.slice(0,S.indexOf(` +`))}function s(p,g,x,w){const y=x.enter("tableCell"),S=x.enter("phrasing"),I=x.containerPhrasing(p,{...w,before:o,after:o});return S(),y(),I}function c(p,g){return bf(p,{align:g,alignDelimiters:r,padding:n,stringLength:i})}function f(p,g,x){const w=p.children;let y=-1;const S=[],I=g.enter("table");for(;++y<w.length;)S[y]=u(w[y],g,x);return I(),S}function u(p,g,x){const w=p.children;let y=-1;const S=[],I=g.enter("tableRow");for(;++y<w.length;)S[y]=s(w[y],p,g,x);return I(),S}function h(p,g,x){let w=Bi.inlineCode(p,g,x);return x.stack.includes("tableCell")&&(w=w.replace(/\|/g,"\\$&")),w}}function up(){return{exit:{taskListCheckValueChecked:Or,taskListCheckValueUnchecked:Or,paragraph:pp}}}function fp(){return{unsafe:[{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{listItem:hp}}}function Or(e){const t=this.stack[this.stack.length-2];t.type,t.checked=e.type==="taskListCheckValueChecked"}function pp(e){const t=this.stack[this.stack.length-2];if(t&&t.type==="listItem"&&typeof t.checked=="boolean"){const n=this.stack[this.stack.length-1];n.type;const r=n.children[0];if(r&&r.type==="text"){const i=t.children;let o=-1,l;for(;++o<i.length;){const a=i[o];if(a.type==="paragraph"){l=a;break}}l===n&&(r.value=r.value.slice(1),r.value.length===0?n.children.shift():n.position&&r.position&&typeof r.position.start.offset=="number"&&(r.position.start.column++,r.position.start.offset++,n.position.start=Object.assign({},r.position.start)))}}this.exit(e)}function hp(e,t,n,r){const i=e.children[0],o=typeof e.checked=="boolean"&&i&&i.type==="paragraph",l="["+(e.checked?"x":" ")+"] ",a=n.createTracker(r);o&&a.move(l);let s=Bi.listItem(e,t,n,{...r,...a.current()});return o&&(s=s.replace(/^(?:[*+-]|\d+\.)([\r\n]| {1,3})/,c)),s;function c(f){return f+l}}function dp(){return[Vu(),ff(),mf(),rp(),up()]}function mp(e){return{extensions:[qu(),pf(e),gf(),cp(e),fp()]}}function bt(e,t,n,r){const i=e.length;let o=0,l;if(t<0?t=-t>i?0:i+t:t=t>i?i:t,n=n>0?n:0,r.length<1e4)l=Array.from(r),l.unshift(t,n),e.splice(...l);else for(n&&e.splice(t,n);o<r.length;)l=r.slice(o,o+1e4),l.unshift(t,0),e.splice(...l),o+=1e4,t+=1e4}const zr={}.hasOwnProperty;function gp(e){const t={};let n=-1;for(;++n<e.length;)yp(t,e[n]);return t}function yp(e,t){let n;for(n in t){const r=(zr.call(e,n)?e[n]:void 0)||(e[n]={}),i=t[n];let o;if(i)for(o in i){zr.call(r,o)||(r[o]=[]);const l=i[o];vp(r[o],Array.isArray(l)?l:l?[l]:[])}}}function vp(e,t){let n=-1;const r=[];for(;++n<t.length;)(t[n].add==="after"?e:r).push(t[n]);bt(e,0,0,r)}const xp={tokenize:Ip,partial:!0},Hi={tokenize:Ep,partial:!0},Ui={tokenize:Tp,partial:!0},Vi={tokenize:Ap,partial:!0},kp={tokenize:Pp,partial:!0},Mr={name:"wwwAutolink",tokenize:Cp,previous:qi},Fr={name:"protocolAutolink",tokenize:Sp,previous:$i},ve={name:"emailAutolink",tokenize:wp,previous:Wi},fe={};function bp(){return{text:fe}}let Te=48;for(;Te<123;)fe[Te]=ve,Te++,Te===58?Te=65:Te===91&&(Te=97);fe[43]=ve,fe[45]=ve,fe[46]=ve,fe[95]=ve,fe[72]=[ve,Fr],fe[104]=[ve,Fr],fe[87]=[ve,Mr],fe[119]=[ve,Mr];function wp(e,t,n){const r=this;let i,o;return l;function l(u){return!pn(u)||!Wi.call(r,r.previous)||On(r.events)?n(u):(e.enter("literalAutolink"),e.enter("literalAutolinkEmail"),a(u))}function a(u){return pn(u)?(e.consume(u),a):u===64?(e.consume(u),s):n(u)}function s(u){return u===46?e.check(kp,f,c)(u):u===45||u===95||_n(u)?(o=!0,e.consume(u),s):f(u)}function c(u){return e.consume(u),i=!0,s}function f(u){return o&&i&<(r.previous)?(e.exit("literalAutolinkEmail"),e.exit("literalAutolink"),t(u)):n(u)}}function Cp(e,t,n){const r=this;return i;function i(l){return l!==87&&l!==119||!qi.call(r,r.previous)||On(r.events)?n(l):(e.enter("literalAutolink"),e.enter("literalAutolinkWww"),e.check(xp,e.attempt(Hi,e.attempt(Ui,o),n),n)(l))}function o(l){return e.exit("literalAutolinkWww"),e.exit("literalAutolink"),t(l)}}function Sp(e,t,n){const r=this;let i="",o=!1;return l;function l(u){return(u===72||u===104)&&$i.call(r,r.previous)&&!On(r.events)?(e.enter("literalAutolink"),e.enter("literalAutolinkHttp"),i+=String.fromCodePoint(u),e.consume(u),a):n(u)}function a(u){if(lt(u)&&i.length<5)return i+=String.fromCodePoint(u),e.consume(u),a;if(u===58){const h=i.toLowerCase();if(h==="http"||h==="https")return e.consume(u),s}return n(u)}function s(u){return u===47?(e.consume(u),o?c:(o=!0,s)):n(u)}function c(u){return u===null||Au(u)||ee(u)||_e(u)||_t(u)?n(u):e.attempt(Hi,e.attempt(Ui,f),n)(u)}function f(u){return e.exit("literalAutolinkHttp"),e.exit("literalAutolink"),t(u)}}function Ip(e,t,n){let r=0;return i;function i(l){return(l===87||l===119)&&r<3?(r++,e.consume(l),i):l===46&&r===3?(e.consume(l),o):n(l)}function o(l){return l===null?n(l):t(l)}}function Ep(e,t,n){let r,i,o;return l;function l(c){return c===46||c===95?e.check(Vi,s,a)(c):c===null||ee(c)||_e(c)||c!==45&&_t(c)?s(c):(o=!0,e.consume(c),l)}function a(c){return c===95?r=!0:(i=r,r=void 0),e.consume(c),l}function s(c){return i||r||!o?n(c):t(c)}}function Tp(e,t){let n=0,r=0;return i;function i(l){return l===40?(n++,e.consume(l),i):l===41&&r<n?o(l):l===33||l===34||l===38||l===39||l===41||l===42||l===44||l===46||l===58||l===59||l===60||l===63||l===93||l===95||l===126?e.check(Vi,t,o)(l):l===null||ee(l)||_e(l)?t(l):(e.consume(l),i)}function o(l){return l===41&&r++,e.consume(l),i}}function Ap(e,t,n){return r;function r(a){return a===33||a===34||a===39||a===41||a===42||a===44||a===46||a===58||a===59||a===63||a===95||a===126?(e.consume(a),r):a===38?(e.consume(a),o):a===93?(e.consume(a),i):a===60||a===null||ee(a)||_e(a)?t(a):n(a)}function i(a){return a===null||a===40||a===91||ee(a)||_e(a)?t(a):r(a)}function o(a){return lt(a)?l(a):n(a)}function l(a){return a===59?(e.consume(a),r):lt(a)?(e.consume(a),l):n(a)}}function Pp(e,t,n){return r;function r(o){return e.consume(o),i}function i(o){return _n(o)?n(o):t(o)}}function qi(e){return e===null||e===40||e===42||e===95||e===91||e===93||e===126||ee(e)}function $i(e){return!lt(e)}function Wi(e){return!(e===47||pn(e))}function pn(e){return e===43||e===45||e===46||e===95||_n(e)}function On(e){let t=e.length,n=!1;for(;t--;){const r=e[t][1];if((r.type==="labelLink"||r.type==="labelImage")&&!r._balanced){n=!0;break}if(r._gfmAutolinkLiteralWalkedInto){n=!1;break}}return e.length>0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}function _p(e,t,n){const r=[];let i=-1;for(;++i<e.length;){const o=e[i].resolveAll;o&&!r.includes(o)&&(t=o(t,n),r.push(o))}return t}function be(e,t,n,r){const i=r?r-1:Number.POSITIVE_INFINITY;let o=0;return l;function l(s){return ke(s)?(e.enter(n),a(s)):t(s)}function a(s){return ke(s)&&o++<i?(e.consume(s),a):(e.exit(n),t(s))}}const Dp={partial:!0,tokenize:Lp};function Lp(e,t,n){return r;function r(o){return ke(o)?be(e,i,"linePrefix")(o):i(o)}function i(o){return o===null||je(o)?t(o):n(o)}}const Op={tokenize:Hp,partial:!0};function zp(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:Np,continuation:{tokenize:jp},exit:Bp}},text:{91:{name:"gfmFootnoteCall",tokenize:Rp},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:Mp,resolveTo:Fp}}}}function Mp(e,t,n){const r=this;let i=r.events.length;const o=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let l;for(;i--;){const s=r.events[i][1];if(s.type==="labelImage"){l=s;break}if(s.type==="gfmFootnoteCall"||s.type==="labelLink"||s.type==="label"||s.type==="image"||s.type==="link")break}return a;function a(s){if(!l||!l._balanced)return n(s);const c=ct(r.sliceSerialize({start:l.end,end:r.now()}));return c.codePointAt(0)!==94||!o.includes(c.slice(1))?n(s):(e.enter("gfmFootnoteCallLabelMarker"),e.consume(s),e.exit("gfmFootnoteCallLabelMarker"),t(s))}}function Fp(e,t){let n=e.length;for(;n--;)if(e[n][1].type==="labelImage"&&e[n][0]==="enter"){e[n][1];break}e[n+1][1].type="data",e[n+3][1].type="gfmFootnoteCallLabelMarker";const r={type:"gfmFootnoteCall",start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},i={type:"gfmFootnoteCallMarker",start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};i.end.column++,i.end.offset++,i.end._bufferIndex++;const o={type:"gfmFootnoteCallString",start:Object.assign({},i.end),end:Object.assign({},e[e.length-1][1].start)},l={type:"chunkString",contentType:"string",start:Object.assign({},o.start),end:Object.assign({},o.end)},a=[e[n+1],e[n+2],["enter",r,t],e[n+3],e[n+4],["enter",i,t],["exit",i,t],["enter",o,t],["enter",l,t],["exit",l,t],["exit",o,t],e[e.length-2],e[e.length-1],["exit",r,t]];return e.splice(n,e.length-n+1,...a),e}function Rp(e,t,n){const r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let o=0,l;return a;function a(u){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(u),e.exit("gfmFootnoteCallLabelMarker"),s}function s(u){return u!==94?n(u):(e.enter("gfmFootnoteCallMarker"),e.consume(u),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",c)}function c(u){if(o>999||u===93&&!l||u===null||u===91||ee(u))return n(u);if(u===93){e.exit("chunkString");const h=e.exit("gfmFootnoteCallString");return i.includes(ct(r.sliceSerialize(h)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(u),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):n(u)}return ee(u)||(l=!0),o++,e.consume(u),u===92?f:c}function f(u){return u===91||u===92||u===93?(e.consume(u),o++,c):c(u)}}function Np(e,t,n){const r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let o,l=0,a;return s;function s(g){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),c}function c(g){return g===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",f):n(g)}function f(g){if(l>999||g===93&&!a||g===null||g===91||ee(g))return n(g);if(g===93){e.exit("chunkString");const x=e.exit("gfmFootnoteDefinitionLabelString");return o=ct(r.sliceSerialize(x)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),h}return ee(g)||(a=!0),l++,e.consume(g),g===92?u:f}function u(g){return g===91||g===92||g===93?(e.consume(g),l++,f):f(g)}function h(g){return g===58?(e.enter("definitionMarker"),e.consume(g),e.exit("definitionMarker"),i.includes(o)||i.push(o),be(e,p,"gfmFootnoteDefinitionWhitespace")):n(g)}function p(g){return t(g)}}function jp(e,t,n){return e.check(Dp,t,e.attempt(Op,t,n))}function Bp(e){e.exit("gfmFootnoteDefinition")}function Hp(e,t,n){const r=this;return be(e,i,"gfmFootnoteDefinitionIndent",5);function i(o){const l=r.events[r.events.length-1];return l&&l[1].type==="gfmFootnoteDefinitionIndent"&&l[2].sliceSerialize(l[1],!0).length===4?t(o):n(o)}}function Up(e){let t=(e||{}).singleTilde;const n={name:"strikethrough",tokenize:i,resolveAll:r};return t==null&&(t=!0),{text:{126:n},insideSpan:{null:[n]},attentionMarkers:{null:[126]}};function r(o,l){let a=-1;for(;++a<o.length;)if(o[a][0]==="enter"&&o[a][1].type==="strikethroughSequenceTemporary"&&o[a][1]._close){let s=a;for(;s--;)if(o[s][0]==="exit"&&o[s][1].type==="strikethroughSequenceTemporary"&&o[s][1]._open&&o[a][1].end.offset-o[a][1].start.offset===o[s][1].end.offset-o[s][1].start.offset){o[a][1].type="strikethroughSequence",o[s][1].type="strikethroughSequence";const c={type:"strikethrough",start:Object.assign({},o[s][1].start),end:Object.assign({},o[a][1].end)},f={type:"strikethroughText",start:Object.assign({},o[s][1].end),end:Object.assign({},o[a][1].start)},u=[["enter",c,l],["enter",o[s][1],l],["exit",o[s][1],l],["enter",f,l]],h=l.parser.constructs.insideSpan.null;h&&bt(u,u.length,0,_p(h,o.slice(s+1,a),l)),bt(u,u.length,0,[["exit",f,l],["enter",o[a][1],l],["exit",o[a][1],l],["exit",c,l]]),bt(o,s-1,a-s+3,u),a=s+u.length-2;break}}for(a=-1;++a<o.length;)o[a][1].type==="strikethroughSequenceTemporary"&&(o[a][1].type="data");return o}function i(o,l,a){const s=this.previous,c=this.events;let f=0;return u;function u(p){return s===126&&c[c.length-1][1].type!=="characterEscape"?a(p):(o.enter("strikethroughSequenceTemporary"),h(p))}function h(p){const g=It(s);if(p===126)return f>1?a(p):(o.consume(p),f++,h);if(f<2&&!t)return a(p);const x=o.exit("strikethroughSequenceTemporary"),w=It(p);return x._open=!w||w===2&&!!g,x._close=!g||g===2&&!!w,l(p)}}}class Vp{constructor(){this.map=[]}add(t,n,r){qp(this,t,n,r)}consume(t){if(this.map.sort(function(o,l){return o[0]-l[0]}),this.map.length===0)return;let n=this.map.length;const r=[];for(;n>0;)n-=1,r.push(t.slice(this.map[n][0]+this.map[n][1]),this.map[n][2]),t.length=this.map[n][0];r.push(t.slice()),t.length=0;let i=r.pop();for(;i;){for(const o of i)t.push(o);i=r.pop()}this.map.length=0}}function qp(e,t,n,r){let i=0;if(!(n===0&&r.length===0)){for(;i<e.map.length;){if(e.map[i][0]===t){e.map[i][1]+=n,e.map[i][2].push(...r);return}i+=1}e.map.push([t,n,r])}}function $p(e,t){let n=!1;const r=[];for(;t<e.length;){const i=e[t];if(n){if(i[0]==="enter")i[1].type==="tableContent"&&r.push(e[t+1][1].type==="tableDelimiterMarker"?"left":"none");else if(i[1].type==="tableContent"){if(e[t-1][1].type==="tableDelimiterMarker"){const o=r.length-1;r[o]=r[o]==="left"?"center":"right"}}else if(i[1].type==="tableDelimiterRow")break}else i[0]==="enter"&&i[1].type==="tableDelimiterRow"&&(n=!0);t+=1}return r}function Wp(){return{flow:{null:{name:"table",tokenize:Qp,resolveAll:Kp}}}}function Qp(e,t,n){const r=this;let i=0,o=0,l;return a;function a(v){let _=r.events.length-1;for(;_>-1;){const T=r.events[_][1].type;if(T==="lineEnding"||T==="linePrefix")_--;else break}const D=_>-1?r.events[_][1].type:null,L=D==="tableHead"||D==="tableRow"?b:s;return L===b&&r.parser.lazy[r.now().line]?n(v):L(v)}function s(v){return e.enter("tableHead"),e.enter("tableRow"),c(v)}function c(v){return v===124||(l=!0,o+=1),f(v)}function f(v){return v===null?n(v):je(v)?o>1?(o=0,r.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(v),e.exit("lineEnding"),p):n(v):ke(v)?be(e,f,"whitespace")(v):(o+=1,l&&(l=!1,i+=1),v===124?(e.enter("tableCellDivider"),e.consume(v),e.exit("tableCellDivider"),l=!0,f):(e.enter("data"),u(v)))}function u(v){return v===null||v===124||ee(v)?(e.exit("data"),f(v)):(e.consume(v),v===92?h:u)}function h(v){return v===92||v===124?(e.consume(v),u):u(v)}function p(v){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(v):(e.enter("tableDelimiterRow"),l=!1,ke(v)?be(e,g,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(v):g(v))}function g(v){return v===45||v===58?w(v):v===124?(l=!0,e.enter("tableCellDivider"),e.consume(v),e.exit("tableCellDivider"),x):R(v)}function x(v){return ke(v)?be(e,w,"whitespace")(v):w(v)}function w(v){return v===58?(o+=1,l=!0,e.enter("tableDelimiterMarker"),e.consume(v),e.exit("tableDelimiterMarker"),y):v===45?(o+=1,y(v)):v===null||je(v)?A(v):R(v)}function y(v){return v===45?(e.enter("tableDelimiterFiller"),S(v)):R(v)}function S(v){return v===45?(e.consume(v),S):v===58?(l=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(v),e.exit("tableDelimiterMarker"),I):(e.exit("tableDelimiterFiller"),I(v))}function I(v){return ke(v)?be(e,A,"whitespace")(v):A(v)}function A(v){return v===124?g(v):v===null||je(v)?!l||i!==o?R(v):(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(v)):R(v)}function R(v){return n(v)}function b(v){return e.enter("tableRow"),F(v)}function F(v){return v===124?(e.enter("tableCellDivider"),e.consume(v),e.exit("tableCellDivider"),F):v===null||je(v)?(e.exit("tableRow"),t(v)):ke(v)?be(e,F,"whitespace")(v):(e.enter("data"),P(v))}function P(v){return v===null||v===124||ee(v)?(e.exit("data"),F(v)):(e.consume(v),v===92?j:P)}function j(v){return v===92||v===124?(e.consume(v),P):P(v)}}function Kp(e,t){let n=-1,r=!0,i=0,o=[0,0,0,0],l=[0,0,0,0],a=!1,s=0,c,f,u;const h=new Vp;for(;++n<e.length;){const p=e[n],g=p[1];p[0]==="enter"?g.type==="tableHead"?(a=!1,s!==0&&(Rr(h,t,s,c,f),f=void 0,s=0),c={type:"table",start:Object.assign({},g.start),end:Object.assign({},g.end)},h.add(n,0,[["enter",c,t]])):g.type==="tableRow"||g.type==="tableDelimiterRow"?(r=!0,u=void 0,o=[0,0,0,0],l=[0,n+1,0,0],a&&(a=!1,f={type:"tableBody",start:Object.assign({},g.start),end:Object.assign({},g.end)},h.add(n,0,[["enter",f,t]])),i=g.type==="tableDelimiterRow"?2:f?3:1):i&&(g.type==="data"||g.type==="tableDelimiterMarker"||g.type==="tableDelimiterFiller")?(r=!1,l[2]===0&&(o[1]!==0&&(l[0]=l[1],u=vt(h,t,o,i,void 0,u),o=[0,0,0,0]),l[2]=n)):g.type==="tableCellDivider"&&(r?r=!1:(o[1]!==0&&(l[0]=l[1],u=vt(h,t,o,i,void 0,u)),o=l,l=[o[1],n,0,0])):g.type==="tableHead"?(a=!0,s=n):g.type==="tableRow"||g.type==="tableDelimiterRow"?(s=n,o[1]!==0?(l[0]=l[1],u=vt(h,t,o,i,n,u)):l[1]!==0&&(u=vt(h,t,l,i,n,u)),i=0):i&&(g.type==="data"||g.type==="tableDelimiterMarker"||g.type==="tableDelimiterFiller")&&(l[3]=n)}for(s!==0&&Rr(h,t,s,c,f),h.consume(t.events),n=-1;++n<t.events.length;){const p=t.events[n];p[0]==="enter"&&p[1].type==="table"&&(p[1]._align=$p(t.events,n))}return e}function vt(e,t,n,r,i,o){const l=r===1?"tableHeader":r===2?"tableDelimiter":"tableData",a="tableContent";n[0]!==0&&(o.end=Object.assign({},Ne(t.events,n[0])),e.add(n[0],0,[["exit",o,t]]));const s=Ne(t.events,n[1]);if(o={type:l,start:Object.assign({},s),end:Object.assign({},s)},e.add(n[1],0,[["enter",o,t]]),n[2]!==0){const c=Ne(t.events,n[2]),f=Ne(t.events,n[3]),u={type:a,start:Object.assign({},c),end:Object.assign({},f)};if(e.add(n[2],0,[["enter",u,t]]),r!==2){const h=t.events[n[2]],p=t.events[n[3]];if(h[1].end=Object.assign({},p[1].end),h[1].type="chunkText",h[1].contentType="text",n[3]>n[2]+1){const g=n[2]+1,x=n[3]-n[2]-1;e.add(g,x,[])}}e.add(n[3]+1,0,[["exit",u,t]])}return i!==void 0&&(o.end=Object.assign({},Ne(t.events,i)),e.add(i,0,[["exit",o,t]]),o=void 0),o}function Rr(e,t,n,r,i){const o=[],l=Ne(t.events,n);i&&(i.end=Object.assign({},l),o.push(["exit",i,t])),r.end=Object.assign({},l),o.push(["exit",r,t]),e.add(n+1,0,o)}function Ne(e,t){const n=e[t],r=n[0]==="enter"?"start":"end";return n[1][r]}const Zp={name:"tasklistCheck",tokenize:Yp};function Xp(){return{text:{91:Zp}}}function Yp(e,t,n){const r=this;return i;function i(s){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(s):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(s),e.exit("taskListCheckMarker"),o)}function o(s){return ee(s)?(e.enter("taskListCheckValueUnchecked"),e.consume(s),e.exit("taskListCheckValueUnchecked"),l):s===88||s===120?(e.enter("taskListCheckValueChecked"),e.consume(s),e.exit("taskListCheckValueChecked"),l):n(s)}function l(s){return s===93?(e.enter("taskListCheckMarker"),e.consume(s),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),a):n(s)}function a(s){return je(s)?t(s):ke(s)?e.check({tokenize:Gp},t,n)(s):n(s)}}function Gp(e,t,n){return be(e,r,"whitespace");function r(i){return i===null?n(i):t(i)}}function Jp(e){return gp([bp(),zp(),Up(e),Wp(),Xp()])}const eh={};function th(e){const t=this,n=e||eh,r=t.data(),i=r.micromarkExtensions||(r.micromarkExtensions=[]),o=r.fromMarkdownExtensions||(r.fromMarkdownExtensions=[]),l=r.toMarkdownExtensions||(r.toMarkdownExtensions=[]);i.push(Jp(n)),o.push(dp()),l.push(mp(n))}const nh=Vr({__name:"NcRichTextCopyButton",props:{contentId:{}},setup(e){const{copy:t,icon:n,altText:r}=No(()=>document.getElementById(e.contentId).textContent);return(i,o)=>(xe(),Ct(Br,{variant:"tertiary",size:"small","aria-label":Ge(r),title:Ge(r),onClick:Ge(t)},{icon:Jt(()=>[Mo(uo,{path:Ge(n),inline:""},null,8,["path"])]),_:1},8,["aria-label","title","onClick"]))}});function rh(e){return e.type==="text"}const ih=function(e){Se(e,rh,t);function t(n,r,i){const o=n.value.split(/(\{[a-z\-_.0-9]+\})/ig).map(l=>{const a=l.match(/^\{([a-z\-_.0-9]+)\}$/i);if(!a)return Hn("text",l);const[,s]=a;return Hn("element",{tagName:`#${s}`,children:[]})});i.children.splice(r,1,...o)}},oh=()=>ih;function lh(e){return["text","code","inlineCode"].includes(e.type)}const ah=function(){return function(e){Se(e,lh,(t,n,r)=>(r.children.splice(n,1,{...t,value:t.value.replace(/</gmi,"<").replace(/>/gmi,">")}),[po,n+1]))}},sh=["http","https","mailto","tel"],hn=Je(null);async function ch(){const e=await no(()=>import("./index-p1GDZDVZ.chunk.mjs"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]),import.meta.url);hn.value=e.default}const uh={name:"NcRichText",components:{NcReferenceList:Qt},props:{text:{type:String,default:""},arguments:{type:Object,default:()=>({})},referenceLimit:{type:Number,default:0},referenceInteractive:{type:Boolean,default:!0},referenceInteractiveOptIn:{type:Boolean,default:!1},references:{type:Array,default:null},useMarkdown:{type:Boolean,default:!1},useExtendedMarkdown:{type:Boolean,default:!1},interactive:{type:Boolean,default:!1},autolink:{type:Boolean,default:!0}},emits:["interactTodo"],data(){return{parentId:zt()}},methods:{renderPlaintext(){const e=this.text.split(/(\{[a-z\-_.0-9]+\})/ig).map(t=>{const n=t.match(/^\{([a-z\-_.0-9]+)\}$/i);if(!n)return this.prepareTextNode(t);const r=n[1],i=this.arguments[r];if(typeof i=="object"){const{component:o,props:l}=i;return $(typeof o=="string"?en(o):o,{...l,class:"rich-text--component"})}return i?$("span",{class:"rich-text--fallback"},i):t});return $("div",{class:"rich-text--wrapper"},[$("div",{},e.flat()),this.referenceLimit>0?$("div",{class:"rich-text--reference-widget"},[$(Qt,{text:this.text,referenceData:this.references,interactive:this.referenceInteractive,interactiveOptIn:this.referenceInteractiveOptIn})]):null])},renderMarkdown(){const e=wu().use(xc).use(co,{autolink:this.autolink,useMarkdown:this.useMarkdown,useExtendedMarkdown:this.useExtendedMarkdown}).use(ah).use(this.useExtendedMarkdown?th:void 0).use(ha).use(ru,{except:sh}).use(tu,{handlers:{component(t,n){return t(n,n.component,{value:n.value})}}}).use(this.useExtendedMarkdown?hn.value:void 0).use(oh).use(ml,{target:"_blank",rel:["noopener noreferrer"]}).use(oa,{Fragment:qr,jsx:this.createElement,jsxs:this.createElement,elementAttributeNameCase:"html",prefix:!1}).processSync(this.text.replace(/<[^>]+>/g,t=>t.replace(/</g,"<")).replace(/>/gmi,">")).result;return $("div",{class:"rich-text--wrapper rich-text--wrapper-markdown"},[e,this.referenceLimit>0?$("div",{class:"rich-text--reference-widget"},[$(Qt,{text:this.text,referenceData:this.references,interactive:this.referenceInteractive,interactiveOptIn:this.referenceInteractiveOptIn})]):null])},prepareTextNode(e){return this.autolink&&(e=so(e)),Array.isArray(e)?e.map(t=>{if(typeof t=="string")return t;const{component:n,props:r}=t,i=n.name==="NcLink"?void 0:"rich-text--component";return $(n,{...r,class:i})}):e},createElement(e,t,n){n&&(t.key=n);const r=t.children??[];if(delete t.children,!String(e).startsWith("#")){["h1","h2","h3","h4","h5","h6"].includes(String(e))&&(e=`h${Math.min(+String(e)[1]+3,6)}`);let o=null;if(this.useExtendedMarkdown){if(String(e)==="code"&&!hn.value&&t?.class?.includes("language")&&ch(),String(e)==="pre"&&r&&String(r.type)==="code"){const l=this.parentId+"-code-block-"+zt();return $("p",{class:"rich-text__code-block"},[$(e,{...t,id:l},r),$(nh,{class:"rich-text__code-block-button",contentId:l})])}if(String(e)==="li"&&Array.isArray(r)&&r.length!==0&&r[0].type==="input"&&r[0].props.type==="checkbox"){const[l,,...a]=r,s=a.findIndex(h=>["ul","ol","li","blockquote","pre"].includes(h.type));s!==-1&&(o=a[s],a.splice(s));const c=this.parentId+"-markdown-input-"+zt(),f={...l.props};delete f.checked;const u=$(ho,{...f,modelValue:l.props.checked,id:c,disabled:!this.interactive,"onUpdate:modelValue":()=>{this.$emit("interactTodo",c)}},{default:()=>a});return $(e,t,[u,o])}}if(String(e)==="a"){const l=Nr(this.$router,t.href);if(l)return delete t.href,delete t.target,$(jr,{...t,to:l},{default:()=>r})}return $(e,t,r)}const i=this.arguments[e.slice(1)];return i?i.component?$(typeof i.component=="string"?en(i.component):i.component,{...t,...i.props,class:"rich-text--component"},{default:()=>r}):$("span",{...t},[i]):$("span",{...t,class:"rich-text--fallback"},[`{${e.slice(1)}}`])}},render(){return this.useMarkdown||this.useExtendedMarkdown?this.renderMarkdown():this.renderPlaintext()}},Ih=dn(uh,[["__scopeId","data-v-a47e4ba7"]]);export{Sh as N,$o as a,Ih as b,Kr as c,jo as r}; +//# sourceMappingURL=NcRichText-CBMtJzE_-BrKByk17.chunk.mjs.map diff --git a/dist/NcRichText-CBMtJzE_-bvZFA37H.chunk.mjs.license b/dist/NcRichText-CBMtJzE_-BrKByk17.chunk.mjs.license similarity index 97% rename from dist/NcRichText-CBMtJzE_-bvZFA37H.chunk.mjs.license rename to dist/NcRichText-CBMtJzE_-BrKByk17.chunk.mjs.license index 23282dae40a13..ca4a5e7427793 100644 --- a/dist/NcRichText-CBMtJzE_-bvZFA37H.chunk.mjs.license +++ b/dist/NcRichText-CBMtJzE_-BrKByk17.chunk.mjs.license @@ -2,7 +2,6 @@ SPDX-License-Identifier: AGPL-3.0-or-later SPDX-License-Identifier: ISC SPDX-License-Identifier: MIT SPDX-FileCopyrightText: Andrea Giammarchi -SPDX-FileCopyrightText: Antoni Andre <antoniandre.web@gmail.com> SPDX-FileCopyrightText: Eugene Sharygin <eush77@gmail.com> SPDX-FileCopyrightText: Mark <mark@remarkablemark.org> SPDX-FileCopyrightText: Max <max@nextcloud.com> @@ -155,9 +154,6 @@ This file is generated from multiple sources. Included packages: - space-separated-tokens - version: 2.0.2 - license: MIT -- splitpanes - - version: 4.0.4 - - license: MIT - style-to-js - version: 1.1.18 - license: MIT diff --git a/dist/NcRichText-CBMtJzE_-BrKByk17.chunk.mjs.map b/dist/NcRichText-CBMtJzE_-BrKByk17.chunk.mjs.map new file mode 100644 index 0000000000000..d302ffc3bf2a6 --- /dev/null +++ b/dist/NcRichText-CBMtJzE_-BrKByk17.chunk.mjs.map @@ -0,0 +1 @@ +{"version":3,"mappings":"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","names":["register","t22","DELAY","useCopy","content","isCopied","ref","icon","computed","mdiCheck","mdiContentCopy","altText","t","copy","value","toValue","id","callback","onDestroy","props","registerWidget","propsWithDefaults","logger","renderWidget","el","options","richObjectType","richObject","accessible","interactive","destroyWidget","isWidgetRegistered","hasInteractiveView","hasFullWidth","registerCustomPickerElement","NcCustomPickerRenderResult","element","object","size","t8","imagePath","loadState","t40","t45","_hoisted_1$5","_hoisted_2$4","_hoisted_3$3","_hoisted_4$2","IDLE_TIMEOUT","_sfc_main$5","defineComponent","__props","router","inject","routerKey","isVisible","customWidget","useTemplateRef","widgetRoot","width","useElementSize","useIntersectionObserver","entry","nextTick","showInteractive","rendered","idleTimeout","isInteractive","referenceHasFullWidth","hasCustomWidget","referenceHasInteractiveView","noAccess","numberOfLines","max","descriptionStyle","lineClamp","compactLink","link","route","getRoute","referenceWidgetLinkComponent","RouterLink","referenceWidgetLinkProps","watch","val","destroyReferenceWidget","renderReferenceWidget","onBeforeUnmount","enableInteractive","widget","_ctx","_cache","openBlock","createElementBlock","normalizeClass","createBlock","resolveDynamicComponent","mergeProps","withCtx","createCommentVNode","createElementVNode","toDisplayString","normalizeStyle","NcButton","createTextVNode","unref","NcReferenceWidget","_export_sfc","t25","t32","t42","t12","t19","VOID","PRIMITIVE","ARRAY","OBJECT","DATE","REGEXP","MAP","SET","ERROR","BIGINT","env","deserializer","$","_","as","out","index","unpair","type","arr","key","source","flags","map","set","name","message","buffer","deserialize","serialized","EMPTY","toString","keys","typeOf","asString","shouldSkip","TYPE","serializer","strict","json","pair","spread","entries","serialize","lossy","structuredClone$1","any","convertElement","test","tagNameFactory","anyFactory","castFactory","tests","checks","parameters","check","tagName","testFunction","parent","looksLikeAnElement","ABSOLUTE_URL_REGEX","WINDOWS_PATH_REGEX","isAbsoluteUrl","url","parse","input","stringify","values","defaultProtocols","defaultRel","emptyOptions","rehypeExternalLinks","settings","protocols","is","tree","visit","node","contentRaw","createIfNeeded","relRaw","rel","target","properties","structuredClone","nameRe","nameReJsx","re","whitespace","thing","empty","Schema","property","normal","space","merge","definitions","definition","normalize","Info","attribute","powers","boolean","increment","booleanish","overloadedBoolean","number","spaceSeparated","commaSeparated","commaOrSpaceSeparated","types","DefinedInfo","mask","mark","create","normals","info","aria","caseSensitiveTransform","attributes","caseInsensitiveTransform","html","svg","xlink","xmlns","xml","hastToReact","cap","dash","valid","find","schema","Type","rest","camelcase","dashes","kebab","$0","htmlBase","svgBase","COMMENT_REGEX","NEWLINE_REGEX","WHITESPACE_REGEX","PROPERTY_REGEX","COLON_REGEX","VALUE_REGEX","SEMICOLON_REGEX","TRIM_REGEX","NEWLINE","FORWARD_SLASH","ASTERISK","EMPTY_STRING","TYPE_COMMENT","TYPE_DECLARATION","inlineStyleParser","style","lineno","column","updatePosition","str","lines","i","position","start","Position","error","msg","err","match","m","comments","rules","c","comment","pos","declaration","prop","ret","trim","declarations","decls","decl","__importDefault","this","mod","cjs","StyleToObject","inline_style_parser_1","require$$0","iterator","styleObject","hasIterator","utilities","CUSTOM_PROPERTY_REGEX","HYPHEN_REGEX","NO_HYPHEN_REGEX","VENDOR_PREFIX_REGEX","MS_VENDOR_PREFIX_REGEX","skipCamelCase","capitalize","character","trimHyphen","prefix","camelCase","style_to_object_1","utilities_1","require$$1","StyleToJS","output","pointEnd","point","pointStart","end","stringifyPosition","VFileMessage","causeOrReason","optionsOrParentOrPlace","origin","reason","legacyCause","own","emptyMap","tableElements","tableCellElement","docs","toJsxRuntime","filePath","developmentCreate","productionCreate","state","result","one","mdxExpression","mdxJsxElement","mdxEsm","root","text","parentSchema","findComponentFromName","createElementProps","children","createChildren","child","addNode","addChildren","expression","assert","crashEstree","createJsxElementProps","jsx","jsxs","fn","jsxDEV","isStaticChildren","alignValue","createProperty","objectExpression","countsByName","count","commas","spaces","parseStyle","transformStylesToCssCasing","styleToJs","cause","allowExpression","identifiers","isIdentifierName","place","domCasing","cssCasing","from","transformStyleToCssCasing","to","toDash","rehypeReact","self","compiler","file","escapeStringRegexp","string","findAndReplace","list","ignored","convert","pairs","toPairs","pairIndex","visitParents","visitor","parents","grandparent","siblings","handler","replace","change","nodes","matchObject","tupleOrList","tuple","toExpression","toFunction","escape","newlineToBreak","remarkBreaks","includeImageAlt","includeHtml","all","decodeNamedCharacterReference","characterReference","splice","remove","items","chunkStart","push","hasOwnProperty","combineExtensions","extensions","syntaxExtension","extension","hook","left","right","code","constructs","existing","before","decodeNumericCharacterReference","base","normalizeIdentifier","asciiAlpha","regexCheck","asciiAlphanumeric","asciiAtext","asciiControl","asciiDigit","asciiHexDigit","asciiPunctuation","markdownLineEnding","markdownLineEndingOrSpace","markdownSpace","unicodePunctuation","unicodeWhitespace","regex","normalizeUri","skip","next","factorySpace","effects","ok","limit","initializeContent","contentStart","afterContentStartConstruct","paragraphInitial","previous","lineStart","token","data","document","initializeDocument","containerConstruct","tokenizeContainer","stack","continued","childFlow","childToken","lineStartOffset","item","documentContinue","checkNewContainers","closeFlow","indexBeforeExits","indexBeforeFlow","exitContainers","documentContinued","flowStart","thereIsANewContainer","thereIsNoNewContainer","containerContinue","flowContinue","writeToChild","endOfFile","stream","seen","nok","classifyCharacter","resolveAll","events","context","called","resolve","attention","resolveAllAttention","tokenizeAttention","open","group","openingSequence","closingSequence","use","nextEvents","offset","movePoint","attentionMarkers","marker","inside","after","close","autolink","tokenizeAutolink","schemeOrEmailAtext","emailAtext","schemeInsideOrEmailAtext","urlInside","emailAtSignOrDot","emailLabel","emailValue","blankLine","tokenizeBlankLine","blockQuote","tokenizeBlockQuoteContinuation","exit","tokenizeBlockQuoteStart","contStart","contBefore","characterEscape","tokenizeCharacterEscape","tokenizeCharacterReference","numeric","nonLazyContinuation","tokenizeNonLazyContinuation","codeFenced","tokenizeCodeFenced","closeStart","tokenizeCloseStart","initialPrefix","sizeOpen","beforeSequenceOpen","tail","sequenceOpen","infoBefore","atNonLazyBreak","metaBefore","meta","contentBefore","beforeContentChunk","contentChunk","startBefore","beforeSequenceClose","sequenceClose","sequenceCloseAfter","codeIndented","tokenizeCodeIndented","furtherStart","tokenizeFurtherStart","afterPrefix","atBreak","codeText","resolveCodeText","tokenizeCodeText","tailExitIndex","headEnterIndex","enter","between","SpliceBuffer","initial","stop","deleteCount","removed","chunkedPush","n","subtokenize","eventsArray","jumps","event","lineIndex","otherIndex","otherEvent","subevents","more","subcontent","eventIndex","startPosition","startPositions","tokenizer","childEvents","gaps","current","adjust","breaks","slice","resolveContent","tokenizeContent","continuationConstruct","tokenizeContinuation","chunkInside","contentEnd","contentContinue","startLookahead","prefixed","factoryDestination","literalType","literalMarkerType","rawType","stringType","balance","enclosedBefore","raw","enclosed","enclosedEscape","rawEscape","factoryLabel","markerType","labelInside","labelEscape","factoryTitle","begin","factoryWhitespace","tokenizeDefinition","titleBefore","tokenizeTitleBefore","identifier","labelAfter","markerAfter","destinationBefore","destinationAfter","afterWhitespace","beforeMarker","titleAfter","titleAfterOptionalWhitespace","hardBreakEscape","tokenizeHardBreakEscape","headingAtx","resolveHeadingAtx","tokenizeHeadingAtx","sequenceFurther","htmlBlockNames","htmlRawNames","htmlFlow","resolveToHtmlFlow","tokenizeHtmlFlow","blankLineBefore","tokenizeBlankLineBefore","nonLazyContinuationStart","tokenizeNonLazyContinuationStart","closingTag","markerB","declarationOpen","tagCloseStart","continuationDeclarationInside","commentOpenInside","cdataOpenInside","continuation","slash","basicSelfClosing","completeClosingTagAfter","completeAttributeNameBefore","completeEnd","completeAttributeName","completeAttributeNameAfter","completeAttributeValueBefore","completeAttributeValueQuoted","completeAttributeValueUnquoted","completeAttributeValueQuotedAfter","completeAfter","continuationCommentInside","continuationRawTagOpen","continuationClose","continuationCdataInside","continuationAfter","continuationStart","continuationStartNonLazy","continuationBefore","continuationRawEndTag","htmlText","tokenizeHtmlText","returnState","instruction","tagOpen","commentEnd","commentClose","lineEndingBefore","cdata","cdataClose","cdataEnd","instructionClose","tagClose","tagCloseBetween","tagOpenBetween","tagOpenAttributeName","tagOpenAttributeNameAfter","tagOpenAttributeValueBefore","tagOpenAttributeValueQuoted","tagOpenAttributeValueUnquoted","tagOpenAttributeValueQuotedAfter","lineEndingAfter","lineEndingAfterPrefix","labelEnd","resolveAllLabelEnd","resolveToLabelEnd","tokenizeLabelEnd","resourceConstruct","tokenizeResource","referenceFullConstruct","tokenizeReferenceFull","referenceCollapsedConstruct","tokenizeReferenceCollapsed","newEvents","media","label","labelStart","defined","labelEndNok","labelEndOk","referenceNotFull","resourceStart","resourceBefore","resourceOpen","resourceEnd","resourceDestinationAfter","resourceDestinationMissing","resourceBetween","resourceTitleAfter","referenceFull","referenceFullAfter","referenceFullMissing","referenceCollapsedStart","referenceCollapsedOpen","labelStartImage","tokenizeLabelStartImage","labelStartLink","tokenizeLabelStartLink","lineEnding","tokenizeLineEnding","thematicBreak","tokenizeThematicBreak","sequence","tokenizeListContinuation","tokenizeListEnd","tokenizeListStart","listItemPrefixWhitespaceConstruct","tokenizeListItemPrefixWhitespace","indentConstruct","tokenizeIndent","initialSize","kind","atMarker","onBlank","endOfPrefix","otherPrefix","notBlank","notInCurrentItem","setextUnderline","resolveToSetextUnderline","tokenizeSetextUnderline","heading","paragraph","flow","initializeFlow","atBlankEnding","afterConstruct","resolver","createResolver","initializeFactory","field","resolveAllLineSuffixes","initializeText","notText","extraResolver","resolveAllText","chunks","bufferIndex","tabs","chunk","contentInitial","flowInitial","insideSpan","resolveText","disable","createTokenizer","parser","initialize","columnStart","resolveAllConstructs","constructFactory","onsuccessfulconstruct","onsuccessfulcheck","consume","defineSkip","now","sliceSerialize","sliceStream","write","main","addResult","expandTabs","serializeChunks","sliceChunks","_bufferIndex","_index","line","accountForPotentialSkip","chunkIndex","go","fields","construct","onreturn","bogusState","listOfConstructs","constructIndex","currentConstruct","handleListOfConstructs","handleMapOfConstructs","handleConstruct","store","startPoint","startPrevious","startCurrentConstruct","startEventsIndex","startStack","restore","startIndex","startBufferIndex","endIndex","endBufferIndex","view","head","atTab","defaultConstructs","creator","postprocess","search","preprocess","atCarriageReturn","preprocessor","encoding","endPosition","characterEscapeOrReference","decodeString","decode","$1","$2","hex","fromMarkdown","config","opener","onenterdata","codeFlow","emphasis","hardBreak","image","listItem","onenterlistitemvalue","onenterlistordered","onenterreference","strong","closer","onexitatxheadingsequence","onexitautolinkemail","onexitautolinkprotocol","onexitdata","onexitcharacterreferencemarker","onexitcharacterreferencevalue","onexitcharacterreference","onexitcodefenced","onexitcodefencedfence","onexitcodefencedfenceinfo","onexitcodefencedfencemeta","onexitcodeindented","onexitcodetext","onexitdefinitiondestinationstring","onexitdefinitionlabelstring","onexitdefinitiontitlestring","onexithardbreak","onexithtmlflow","onexithtmltext","onexitimage","onexitlabel","onexitlabeltext","onexitlineending","onexitlink","onexitreferencestring","onexitresourcedestinationstring","onexitresourcetitlestring","onexitresource","onexitsetextheading","onexitsetextheadinglinesequence","onexitsetextheadingtext","configure","compile","resume","listStack","prepareList","defaultOnError","length","containerBalance","listSpread","firstBlankLineIndex","tailIndex","tailEvent","and","errorHandler","onExitError","ancestor","depth","referenceType","fragment","d","combined","remarkParse","doc","blockquote","language","strikethrough","footnoteReference","clobberPrefix","safeId","counter","reuseCounter","sup","revert","subtype","suffix","contents","imageReference","inlineCode","linkReference","results","loose","listLoose","listItemLoose","table","rows","firstRow","tableContent","body","tableRow","align","cellIndex","cells","cell","tableCell","tab","trimLines","last","trimLine","handlers","ignore","defaultFootnoteBackContent","rereferenceIndex","defaultFootnoteBackLabel","referenceIndex","footer","footnoteBackContent","footnoteBackLabel","footnoteLabel","footnoteLabelTagName","footnoteLabelProperties","listItems","backReferences","counts","tailTail","createState","definitionById","footnoteById","footnoteCounts","defaultHandlers","applyData","patch","wrap","handle","shallow","defaultUnknownHandler","trimMarkdownSpaceStart","hName","hChildren","hProperties","toHast","foot","remarkRehype","destination","hastTree","squeezeParagraphs","remarkUnlinkProtocols","proto","bail","hasOwn","toStr","defineProperty","gOPD","isArray","isPlainObject","obj","hasOwnConstructor","hasIsPrototypeOf","setProperty","getProperty","extend","src","copyIsArray","clone","deep","prototype","trough","fns","pipeline","run","middlewareIndex","middelware","middleware","wrapped","fnExpectsCallback","done","exception","then","minpath","basename","dirname","extname","join","path","assertPath","seenNonSlash","firstNonSlashEnd","extnameIndex","unmatchedSlash","startPart","startDot","preDotState","segments","joined","absolute","normalizeString","allowAboveRoot","lastSegmentLength","lastSlash","dots","lastSlashIndex","minproc","cwd","isUrl","fileUrlOrPath","urlToPath","getPathFromURLPosix","pathname","third","order","VFile","isUint8Array","assertNonEmpty","assertPart","stem","part","CallableInstance","apply","Processor","attacher","assertUnfrozen","transformer","realFile","vfile","assertParser","assertCompiler","executor","reject","parseTree","realDone","compileTree","compileResult","looksLikeAValue","complete","assertDone","assertNode","transformers","outputTree","resultingTree","attachers","namespace","addPlugin","addList","addPreset","add","plugin","plugins","entryIndex","primary","currentPrimary","isPlainObj","unified","frozen","asyncName","looksLikeAVFile","_sfc_main$2","URL_PATTERN","response","isPublic","getCurrentUser","axios","generateOcsUrl","getSharingToken","_sfc_render","$props","$setup","$data","$options","_component_NcReferenceWidget","resolveComponent","Fragment","renderList","reference","NcReferenceList","ccount","code2","propsFactory","typeFactory","index2","checkAsRecord","all2","node2","nodeAsRecord","looksLikeANode","CONTINUE","EXIT","SKIP","reverse","step","factory","visit2","subresult","grandparents","toResult","nodeAsParent","list2","replace2","inConstruct","notInConstruct","gfmAutolinkLiteralFromMarkdown","transformGfmAutolinkLiterals","enterLiteralAutolink","enterLiteralAutolinkValue","exitLiteralAutolink","exitLiteralAutolinkEmail","exitLiteralAutolinkHttp","exitLiteralAutolinkWww","gfmAutolinkLiteralToMarkdown","findUrl","findEmail","protocol","domain2","path2","isCorrectDomain","parts","splitUrl","atext","trailExec","trail2","closingParenIndex","openingParens","closingParens","email","footnoteReferencePeek","enterFootnoteCallString","enterFootnoteCall","enterFootnoteDefinitionLabelString","enterFootnoteDefinition","exitFootnoteCallString","exitFootnoteCall","exitFootnoteDefinitionLabelString","exitFootnoteDefinition","tracker","exit2","subexit","gfmFootnoteFromMarkdown","gfmFootnoteToMarkdown","firstLineBlank","footnoteDefinition","mapAll","mapExceptFirst","blank","constructsWithoutStrikethrough","handleDelete","peekDelete","gfmStrikethroughFromMarkdown","enterStrikethrough","exitStrikethrough","gfmStrikethroughToMarkdown","defaultStringLength","markdownTable","stringLength","alignments","cellMatrix","sizeMatrix","longestCellByColumn","mostCellsPerRow","rowIndex","row2","sizes2","columnIndex2","columnIndex","toAlignment","row","sizes","map$1","patternInScope","pattern","listInScope","none","_1","longestStreak","substring","expected","formatCodeAsIndented","checkFence","code$1","exit3","value2","checkQuote","quote","checkEmphasis","encodeCharacterReference","encodeInfo","outside","outsideKind","insideKind","emphasisPeek","betweenHead","betweenTail","emptyOptions$1","formatHeadingAsSetext","literalWithBreak","node3","EXIT$1","rank","subexit2","htmlPeek","imagePeek","imageReferencePeek","alt","inlineCodePeek","formatLinkAsAutolink","linkPeek","linkReferencePeek","text2","checkBullet","checkBulletOther","bullet","bulletOther","checkBulletOrdered","checkRule","bulletCurrent","useDifferentMarker","firstListItem","checkListItemIndent","listItemIndent","map2","phrasing","checkStrong","strongPeek","text$1","checkRuleRepetition","repetition","gfmTableFromMarkdown","enterTable","enterCell","enterRow","exitCodeText","exitTable","gfmTableToMarkdown","padding","alignDelimiters","around","inlineCodeWithTable","handleTable","handleTableCell","handleTableRow","serializeData","handleTableAsData","handleTableRowAsData","matrix","gfmTaskListItemFromMarkdown","exitCheck","exitParagraphWithTaskListItem","gfmTaskListItemToMarkdown","listItemWithTaskListItem","firstParaghraph","sibling","checkable","checkbox","gfmFromMarkdown","gfmToMarkdown","wwwPrefix","tokenizeWwwPrefix","domain","tokenizeDomain","tokenizePath","trail","tokenizeTrail","emailDomainDotTrail","tokenizeEmailDomainDotTrail","wwwAutolink","tokenizeWwwAutolink","previousWww","protocolAutolink","tokenizeProtocolAutolink","previousProtocol","emailAutolink","tokenizeEmailAutolink","previousEmail","gfmAutolinkLiteral","ok2","dot","gfmAtext","previousUnbalanced","emailDomain","emailDomainAfter","emailDomainDot","wwwStart","wwwAfter","protocolStart","protocolPrefixInside","protocolSlashesInside","afterProtocol","protocolAfter","wwwPrefixInside","wwwPrefixAfter","underscoreInLastSegment","underscoreInLastLastSegment","domainInside","domainAfter","domainAtPunctuation","sizeClose","pathInside","pathAtPunctuation","trailCharacterReferenceStart","trailBracketAfter","trailCharacterReferenceInside","constructs2","indent","gfmFootnote","tokenizeDefinitionStart","tokenizeDefinitionContinuation","gfmFootnoteDefinitionEnd","tokenizeGfmFootnoteCall","tokenizePotentialGfmFootnoteCall","resolveToPotentialGfmFootnoteCall","call","replacement","callStart","callData","callEscape","labelAtMarker","whitespaceAfter","gfmStrikethrough","single","tokenizeStrikethrough","resolveAllStrikethrough","previous2","EditMap","addImplementation","a","b","vecs","editMap","at","gfmTableAlign","inDelimiterRow","alignIndex","gfmTable","tokenizeTable","resolveTable","sizeB","bodyRowStart","headRowBefore","headRowStart","headRowBreak","headDelimiterStart","headRowData","headRowEscape","headDelimiterBefore","headDelimiterValueBefore","headDelimiterCellBefore","headDelimiterNok","headDelimiterLeftAlignmentAfter","headDelimiterCellAfter","headDelimiterFiller","headDelimiterRightAlignmentAfter","bodyRowBreak","bodyRowData","bodyRowEscape","inFirstCellAwaitingPipe","rowKind","lastCell","afterHeadAwaitingFirstBodyRow","lastTableEnd","currentTable","currentBody","currentCell","flushTableEnd","flushCell","range","rowEnd","previousCell","groupName","valueName","getPoint","relatedStart","relatedEnd","valueToken","tableBody","exits","related","side","tasklistCheck","tokenizeTasklistCheck","gfmTaskListItem","spaceThenNonSpace","gfm","remarkGfm","micromarkExtensions","fromMarkdownExtensions","toMarkdownExtensions","_sfc_main$1","createVNode","NcIconSvgWrapper","isTextNode$1","transformPlaceholders","ast","placeholders","matches","u","component","remarkPlaceholder","isTextNode","remarkUnescape","SKIP$1","LINK_PROTOCOLS","rehypeHighlight","importRehypeHighlightLibrary","module","__vitePreload","_sfc_main","createElementId","argumentId","argument","h","renderedMarkdown","remarkAutolink","remark2rehype","rehype2react","parseUrl","componentClass","nestedNode","inputNode","labelParts","nestedNodeIndex","propsToForward","inputComponent","NcCheckboxRadioSwitch","placeholder","NcRichText"],"ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140],"sources":["../node_modules/@nextcloud/vue/dist/chunks/useCopy-7FVrniF_.mjs","../node_modules/@nextcloud/vue/dist/chunks/customPickerElements-4pQTZUnk.mjs","../node_modules/@nextcloud/vue/dist/chunks/referencePickerModal-DmD3-xYB.mjs","../node_modules/@ungap/structured-clone/esm/types.js","../node_modules/@ungap/structured-clone/esm/deserialize.js","../node_modules/@ungap/structured-clone/esm/serialize.js","../node_modules/@ungap/structured-clone/esm/index.js","../node_modules/hast-util-is-element/lib/index.js","../node_modules/is-absolute-url/index.js","../node_modules/space-separated-tokens/index.js","../node_modules/rehype-external-links/lib/index.js","../node_modules/comma-separated-tokens/index.js","../node_modules/estree-util-is-identifier-name/lib/index.js","../node_modules/hast-util-whitespace/lib/index.js","../node_modules/property-information/lib/util/schema.js","../node_modules/property-information/lib/util/merge.js","../node_modules/property-information/lib/normalize.js","../node_modules/property-information/lib/util/info.js","../node_modules/property-information/lib/util/types.js","../node_modules/property-information/lib/util/defined-info.js","../node_modules/property-information/lib/util/create.js","../node_modules/property-information/lib/aria.js","../node_modules/property-information/lib/util/case-sensitive-transform.js","../node_modules/property-information/lib/util/case-insensitive-transform.js","../node_modules/property-information/lib/html.js","../node_modules/property-information/lib/svg.js","../node_modules/property-information/lib/xlink.js","../node_modules/property-information/lib/xmlns.js","../node_modules/property-information/lib/xml.js","../node_modules/property-information/lib/hast-to-react.js","../node_modules/property-information/lib/find.js","../node_modules/property-information/index.js","../node_modules/inline-style-parser/index.js","../node_modules/style-to-object/cjs/index.js","../node_modules/style-to-js/cjs/utilities.js","../node_modules/style-to-js/cjs/index.js","../node_modules/unist-util-position/lib/index.js","../node_modules/unist-util-stringify-position/lib/index.js","../node_modules/vfile-message/lib/index.js","../node_modules/hast-util-to-jsx-runtime/lib/index.js","../node_modules/rehype-react/lib/index.js","../node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp/index.js","../node_modules/mdast-util-find-and-replace/lib/index.js","../node_modules/mdast-util-newline-to-break/lib/index.js","../node_modules/remark-breaks/lib/index.js","../node_modules/mdast-util-to-string/lib/index.js","../node_modules/decode-named-character-reference/index.dom.js","../node_modules/micromark-util-chunked/index.js","../node_modules/micromark-util-combine-extensions/index.js","../node_modules/micromark-util-decode-numeric-character-reference/index.js","../node_modules/micromark-util-normalize-identifier/index.js","../node_modules/micromark-util-character/index.js","../node_modules/micromark-util-sanitize-uri/index.js","../node_modules/micromark-factory-space/index.js","../node_modules/micromark/lib/initialize/content.js","../node_modules/micromark/lib/initialize/document.js","../node_modules/micromark-util-classify-character/index.js","../node_modules/micromark-util-resolve-all/index.js","../node_modules/micromark-core-commonmark/lib/attention.js","../node_modules/micromark-core-commonmark/lib/autolink.js","../node_modules/micromark-core-commonmark/lib/blank-line.js","../node_modules/micromark-core-commonmark/lib/block-quote.js","../node_modules/micromark-core-commonmark/lib/character-escape.js","../node_modules/micromark-core-commonmark/lib/character-reference.js","../node_modules/micromark-core-commonmark/lib/code-fenced.js","../node_modules/micromark-core-commonmark/lib/code-indented.js","../node_modules/micromark-core-commonmark/lib/code-text.js","../node_modules/micromark-util-subtokenize/lib/splice-buffer.js","../node_modules/micromark-util-subtokenize/index.js","../node_modules/micromark-core-commonmark/lib/content.js","../node_modules/micromark-factory-destination/index.js","../node_modules/micromark-factory-label/index.js","../node_modules/micromark-factory-title/index.js","../node_modules/micromark-factory-whitespace/index.js","../node_modules/micromark-core-commonmark/lib/definition.js","../node_modules/micromark-core-commonmark/lib/hard-break-escape.js","../node_modules/micromark-core-commonmark/lib/heading-atx.js","../node_modules/micromark-util-html-tag-name/index.js","../node_modules/micromark-core-commonmark/lib/html-flow.js","../node_modules/micromark-core-commonmark/lib/html-text.js","../node_modules/micromark-core-commonmark/lib/label-end.js","../node_modules/micromark-core-commonmark/lib/label-start-image.js","../node_modules/micromark-core-commonmark/lib/label-start-link.js","../node_modules/micromark-core-commonmark/lib/line-ending.js","../node_modules/micromark-core-commonmark/lib/thematic-break.js","../node_modules/micromark-core-commonmark/lib/list.js","../node_modules/micromark-core-commonmark/lib/setext-underline.js","../node_modules/micromark/lib/initialize/flow.js","../node_modules/micromark/lib/initialize/text.js","../node_modules/micromark/lib/constructs.js","../node_modules/micromark/lib/create-tokenizer.js","../node_modules/micromark/lib/parse.js","../node_modules/micromark/lib/postprocess.js","../node_modules/micromark/lib/preprocess.js","../node_modules/micromark-util-decode-string/index.js","../node_modules/mdast-util-from-markdown/lib/index.js","../node_modules/remark-parse/lib/index.js","../node_modules/mdast-util-to-hast/lib/handlers/blockquote.js","../node_modules/mdast-util-to-hast/lib/handlers/break.js","../node_modules/mdast-util-to-hast/lib/handlers/code.js","../node_modules/mdast-util-to-hast/lib/handlers/delete.js","../node_modules/mdast-util-to-hast/lib/handlers/emphasis.js","../node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/heading.js","../node_modules/mdast-util-to-hast/lib/handlers/html.js","../node_modules/mdast-util-to-hast/lib/revert.js","../node_modules/mdast-util-to-hast/lib/handlers/image-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/image.js","../node_modules/mdast-util-to-hast/lib/handlers/inline-code.js","../node_modules/mdast-util-to-hast/lib/handlers/link-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/link.js","../node_modules/mdast-util-to-hast/lib/handlers/list-item.js","../node_modules/mdast-util-to-hast/lib/handlers/list.js","../node_modules/mdast-util-to-hast/lib/handlers/paragraph.js","../node_modules/mdast-util-to-hast/lib/handlers/root.js","../node_modules/mdast-util-to-hast/lib/handlers/strong.js","../node_modules/mdast-util-to-hast/lib/handlers/table.js","../node_modules/mdast-util-to-hast/lib/handlers/table-row.js","../node_modules/mdast-util-to-hast/lib/handlers/table-cell.js","../node_modules/trim-lines/index.js","../node_modules/mdast-util-to-hast/lib/handlers/text.js","../node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","../node_modules/mdast-util-to-hast/lib/handlers/index.js","../node_modules/mdast-util-to-hast/lib/footer.js","../node_modules/mdast-util-to-hast/lib/state.js","../node_modules/mdast-util-to-hast/lib/index.js","../node_modules/remark-rehype/lib/index.js","../node_modules/mdast-squeeze-paragraphs/lib/index.js","../node_modules/remark-unlink-protocols/lib/index.js","../node_modules/bail/index.js","../node_modules/extend/index.js","../node_modules/is-plain-obj/index.js","../node_modules/trough/lib/index.js","../node_modules/vfile/lib/minpath.browser.js","../node_modules/vfile/lib/minproc.browser.js","../node_modules/vfile/lib/minurl.shared.js","../node_modules/vfile/lib/minurl.browser.js","../node_modules/vfile/lib/index.js","../node_modules/unified/lib/callable-instance.js","../node_modules/unified/lib/index.js","../node_modules/@nextcloud/vue/dist/chunks/NcRichText-CBMtJzE_.mjs"],"sourcesContent":["import { d as mdiCheck, e as mdiContentCopy } from \"./mdi-XFJRiRqJ.mjs\";\nimport { ref, computed, toValue } from \"vue\";\nimport { r as register, c as t22, a as t } from \"./_l10n-DrTiip5c.mjs\";\nregister(t22);\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst DELAY = 2e3;\nfunction useCopy(content) {\n const isCopied = ref(false);\n const icon = computed(() => isCopied.value ? mdiCheck : mdiContentCopy);\n const altText = computed(() => isCopied.value ? t(\"Copied\") : t(\"Copy to clipboard\"));\n async function copy() {\n if (isCopied.value) {\n return;\n }\n const value = toValue(content);\n try {\n await navigator.clipboard.writeText(value);\n } catch {\n prompt(\"\", value);\n }\n isCopied.value = true;\n setTimeout(() => {\n isCopied.value = false;\n }, DELAY);\n }\n return {\n isCopied,\n copy,\n icon,\n altText\n };\n}\nexport {\n useCopy as u\n};\n//# sourceMappingURL=useCopy-7FVrniF_.mjs.map\n","import { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nwindow._vue_richtext_widgets ??= {};\nwindow._registerWidget ??= (id, callback, onDestroy, props) => {\n registerWidget(id, callback, onDestroy, props);\n};\nfunction registerWidget(id, callback, onDestroy = () => {\n}, props) {\n const propsWithDefaults = {\n hasInteractiveView: true,\n fullWidth: false,\n ...props\n };\n if (window._vue_richtext_widgets[id]) {\n logger.error(`[ReferencePicker]: Widget for id ${id} already registered`);\n return;\n }\n window._vue_richtext_widgets[id] = {\n id,\n callback,\n onDestroy,\n ...propsWithDefaults\n };\n}\nfunction renderWidget(el, options) {\n const { richObjectType, richObject, accessible, interactive } = options;\n if (richObjectType === \"open-graph\") {\n return;\n }\n if (!window._vue_richtext_widgets[richObjectType]) {\n logger.error(\"Widget for rich object type \" + richObjectType + \" not registered\");\n return;\n }\n window._vue_richtext_widgets[richObjectType].callback(el, { richObjectType, richObject, accessible, interactive });\n}\nfunction destroyWidget(richObjectType, el) {\n if (richObjectType === \"open-graph\") {\n return;\n }\n if (!window._vue_richtext_widgets[richObjectType]) {\n return;\n }\n window._vue_richtext_widgets[richObjectType].onDestroy(el);\n}\nfunction isWidgetRegistered(id) {\n return !!window._vue_richtext_widgets[id];\n}\nfunction hasInteractiveView(id) {\n return !!window._vue_richtext_widgets[id]?.hasInteractiveView;\n}\nfunction hasFullWidth(id) {\n return !!window._vue_richtext_widgets[id]?.fullWidth;\n}\nwindow._vue_richtext_custom_picker_elements ??= {};\nwindow._registerCustomPickerElement ??= registerCustomPickerElement;\nclass NcCustomPickerRenderResult {\n element;\n object;\n /**\n * @param element - The HTML element\n * @param object - The object\n */\n constructor(element, object) {\n this.element = element;\n this.object = object;\n }\n}\nfunction isCustomPickerElementRegistered(id) {\n return !!window._vue_richtext_custom_picker_elements[id];\n}\nfunction getCustomPickerElementSize(id) {\n const size = window._vue_richtext_custom_picker_elements[id]?.size;\n if (size && [\"small\", \"normal\", \"large\", \"full\"].includes(size)) {\n return size;\n }\n return null;\n}\nfunction registerCustomPickerElement(id, callback, onDestroy = () => {\n}, size = \"large\") {\n if (window._vue_richtext_custom_picker_elements[id]) {\n logger.error(`Custom reference picker element for id ${id} already registered`);\n return;\n }\n window._vue_richtext_custom_picker_elements[id] = {\n id,\n callback,\n onDestroy,\n size\n };\n}\nfunction renderCustomPickerElement(el, options) {\n const { providerId, accessible } = options;\n if (!window._vue_richtext_custom_picker_elements[providerId]) {\n logger.error(`Custom reference picker element for reference provider ID ${providerId} not registered`);\n return;\n }\n return window._vue_richtext_custom_picker_elements[providerId].callback(el, { providerId, accessible });\n}\nfunction destroyCustomPickerElement(providerId, el, renderResult) {\n if (!window._vue_richtext_custom_picker_elements[providerId]) {\n return;\n }\n window._vue_richtext_custom_picker_elements[providerId].onDestroy(el, renderResult);\n}\nexport {\n NcCustomPickerRenderResult as N,\n renderWidget as a,\n destroyCustomPickerElement as b,\n isCustomPickerElementRegistered as c,\n destroyWidget as d,\n registerCustomPickerElement as e,\n renderCustomPickerElement as f,\n getCustomPickerElementSize as g,\n hasInteractiveView as h,\n isWidgetRegistered as i,\n hasFullWidth as j,\n registerWidget as r\n};\n//# sourceMappingURL=customPickerElements-4pQTZUnk.mjs.map\n","import '../assets/referencePickerModal-DWMAMaU3.css';\nimport { createElementBlock, openBlock, mergeProps, createElementVNode, createCommentVNode, toDisplayString, resolveComponent, createVNode, withCtx, defineComponent, inject, ref, useTemplateRef, nextTick, computed, watch, onBeforeUnmount, normalizeClass, createBlock, resolveDynamicComponent, normalizeStyle, createTextVNode, unref, withKeys, withModifiers, createApp } from \"vue\";\nimport { emit } from \"@nextcloud/event-bus\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { I as IconClose } from \"./Close-D6ngJ4t9.mjs\";\nimport { f as renderCustomPickerElement, b as destroyCustomPickerElement, c as isCustomPickerElementRegistered, j as hasFullWidth, i as isWidgetRegistered, h as hasInteractiveView, a as renderWidget, d as destroyWidget, g as getCustomPickerElementSize } from \"./customPickerElements-4pQTZUnk.mjs\";\nimport axios from \"@nextcloud/axios\";\nimport { loadState } from \"@nextcloud/initial-state\";\nimport { imagePath, generateOcsUrl } from \"@nextcloud/router\";\nimport { r as register, D as t8, a as t, E as t45, F as t40, G as t25, j as t42, H as t32, I as t19, J as t12 } from \"./_l10n-DrTiip5c.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { N as NcEmptyContent } from \"./NcEmptyContent-B8-90BSI.mjs\";\nimport { _ as _sfc_main$a } from \"./NcHighlight.vue_vue_type_script_lang-DnWQDM_2.mjs\";\nimport { N as NcSelect } from \"./NcSelect-Czzsi3P_.mjs\";\nimport debounce from \"debounce\";\nimport { useElementSize, useIntersectionObserver } from \"@vueuse/core\";\nimport { routerKey, RouterLink } from \"vue-router\";\nimport { N as NcButton } from \"./NcButton-Dc8V4Urj.mjs\";\nimport { g as getRoute } from \"./autolink-U5pBzLgI.mjs\";\nimport { N as NcLoadingIcon } from \"./NcLoadingIcon-b_ajZ_nQ.mjs\";\nimport { _ as _sfc_main$b } from \"./NcTextField.vue_vue_type_script_setup_true_lang-D1y_LfGJ.mjs\";\nimport { I as IconDotsHorizontal } from \"./NcActions-DWmvh7-Y.mjs\";\nimport { N as NcModal } from \"./NcModal-MC_HktJd.mjs\";\nconst _sfc_main$9 = {\n name: \"ArrowLeftIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$9 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$7 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$6 = { d: \"M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z\" };\nconst _hoisted_4$5 = { key: 0 };\nfunction _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon arrow-left-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$6, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$5, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$7))\n ], 16, _hoisted_1$9);\n}\nconst ArrowLeftIcon = /* @__PURE__ */ _export_sfc(_sfc_main$9, [[\"render\", _sfc_render$8]]);\nconst _sfc_main$8 = {\n name: \"NcCustomPickerElement\",\n props: {\n /**\n * The reference provider\n */\n provider: {\n type: Object,\n required: true\n }\n },\n emits: [\n \"cancel\",\n \"submit\"\n ],\n data() {\n return {\n isRegistered: isCustomPickerElementRegistered(this.provider.id),\n renderResult: null\n };\n },\n mounted() {\n if (this.isRegistered) {\n this.renderElement();\n }\n },\n beforeUnmount() {\n if (this.isRegistered) {\n destroyCustomPickerElement(this.provider.id, this.$el, this.renderResult);\n }\n },\n methods: {\n renderElement() {\n if (this.$refs.domElement) {\n this.$refs.domElement.innerHTML = \"\";\n }\n const renderFunctionResult = renderCustomPickerElement(this.$refs.domElement, { providerId: this.provider.id, accessible: false });\n Promise.resolve(renderFunctionResult).then((result) => {\n this.renderResult = result;\n if (this.renderResult.object?._isVue && this.renderResult.object?.$on) {\n this.renderResult.object.$on(\"submit\", this.onSubmit);\n this.renderResult.object.$on(\"cancel\", this.onCancel);\n }\n this.renderResult.element.addEventListener(\"submit\", (e) => {\n this.onSubmit(e.detail);\n });\n this.renderResult.element.addEventListener(\"cancel\", this.onCancel);\n });\n },\n onSubmit(value) {\n this.$emit(\"submit\", value);\n },\n onCancel() {\n this.$emit(\"cancel\");\n }\n }\n};\nconst _hoisted_1$8 = { ref: \"domElement\" };\nfunction _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", _hoisted_1$8, null, 512);\n}\nconst NcCustomPickerElement = /* @__PURE__ */ _export_sfc(_sfc_main$8, [[\"render\", _sfc_render$7], [\"__scopeId\", \"data-v-e408867a\"]]);\nconst _sfc_main$7 = {\n name: \"LinkVariantIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$7 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$6 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$5 = { d: \"M10.59,13.41C11,13.8 11,14.44 10.59,14.83C10.2,15.22 9.56,15.22 9.17,14.83C7.22,12.88 7.22,9.71 9.17,7.76V7.76L12.71,4.22C14.66,2.27 17.83,2.27 19.78,4.22C21.73,6.17 21.73,9.34 19.78,11.29L18.29,12.78C18.3,11.96 18.17,11.14 17.89,10.36L18.36,9.88C19.54,8.71 19.54,6.81 18.36,5.64C17.19,4.46 15.29,4.46 14.12,5.64L10.59,9.17C9.41,10.34 9.41,12.24 10.59,13.41M13.41,9.17C13.8,8.78 14.44,8.78 14.83,9.17C16.78,11.12 16.78,14.29 14.83,16.24V16.24L11.29,19.78C9.34,21.73 6.17,21.73 4.22,19.78C2.27,17.83 2.27,14.66 4.22,12.71L5.71,11.22C5.7,12.04 5.83,12.86 6.11,13.65L5.64,14.12C4.46,15.29 4.46,17.19 5.64,18.36C6.81,19.54 8.71,19.54 9.88,18.36L13.41,14.83C14.59,13.66 14.59,11.76 13.41,10.59C13,10.2 13,9.56 13.41,9.17Z\" };\nconst _hoisted_4$4 = { key: 0 };\nfunction _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon link-variant-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$5, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$6))\n ], 16, _hoisted_1$7);\n}\nconst LinkVariantIcon = /* @__PURE__ */ _export_sfc(_sfc_main$7, [[\"render\", _sfc_render$6]]);\nregister(t8);\nconst anyLinkProviderId = \"any-link\";\nconst anyLinkProvider = {\n id: anyLinkProviderId,\n title: t(\"Any link\"),\n order: 0,\n icon_url: imagePath(\"core\", \"filetypes/link.svg\")\n};\nwindow._vue_richtext_reference_providers ??= loadState(\"core\", \"reference-provider-list\", []);\nwindow._vue_richtext_reference_provider_timestamps ??= loadState(\"core\", \"reference-provider-timestamps\", {});\nfunction getProvider(providerId) {\n if (providerId === anyLinkProviderId) {\n return anyLinkProvider;\n }\n return getProviders().find((p) => p.id === providerId);\n}\nfunction getProviders() {\n return window._vue_richtext_reference_providers.filter((p) => {\n const keep = !!p.search_providers_ids && p.search_providers_ids.length > 0 || isCustomPickerElementRegistered(p.id);\n if (!keep) {\n logger.debug(`[smart picker] ${p.id} reference provider is discoverable but does not have any related search provider or custom picker component registered`);\n }\n return keep;\n });\n}\nfunction sortProviders(providerList) {\n const timestamps = window._vue_richtext_reference_provider_timestamps;\n return providerList.sort((a, b) => {\n return a.order === b.order ? 0 : a.order > b.order ? 1 : -1;\n }).sort((a, b) => {\n const ta = timestamps[a.id];\n const tb = timestamps[b.id];\n return ta === tb ? 0 : tb === void 0 ? -1 : ta === void 0 ? 1 : ta > tb ? -1 : 1;\n });\n}\nfunction searchProvider(query, limit) {\n const providers = getProviders();\n const escapedQuery = query.replace(/[/\\-\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\");\n const regexp = new RegExp(escapedQuery, \"i\");\n const sortedProviders = sortProviders(providers);\n const filteredSortedProviders = sortedProviders.filter((p) => {\n return p.title.match(regexp);\n });\n const searchResult = limit ? filteredSortedProviders.slice(0, limit) : filteredSortedProviders;\n if (query === \"\" || searchResult.length === 0) {\n searchResult.push(anyLinkProvider);\n }\n return searchResult;\n}\nasync function touchProvider(providerId) {\n const timestamp = Math.floor(Date.now() / 1e3);\n const url = generateOcsUrl(\"references/provider/{providerId}\", { providerId });\n await axios.put(url, { timestamp });\n window._vue_richtext_reference_provider_timestamps[providerId] = timestamp;\n}\nregister(t40, t45);\n/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction isUrl(str) {\n try {\n return Boolean(new URL(str));\n } catch {\n return false;\n }\n}\nconst _sfc_main$6 = {\n name: \"NcProviderList\",\n components: {\n NcSelect,\n NcHighlight: _sfc_main$a,\n NcEmptyContent,\n LinkVariantIcon\n },\n emits: [\n \"selectProvider\",\n \"submit\"\n ],\n data() {\n return {\n selectedProvider: null,\n query: \"\",\n multiselectPlaceholder: t(\"Select provider\"),\n providerIconAlt: t(\"Provider icon\")\n };\n },\n computed: {\n options() {\n const result = [];\n if (this.query !== \"\" && isUrl(this.query)) {\n result.push({\n id: this.query,\n title: this.query,\n isLink: true\n });\n }\n result.push(...searchProvider(this.query));\n return result;\n }\n },\n methods: {\n focus() {\n setTimeout(() => {\n this.$refs[\"provider-select\"]?.$el?.querySelector(\"#provider-select-input\")?.focus();\n }, 300);\n },\n onProviderSelected(p) {\n if (p !== null) {\n if (p.isLink) {\n this.$emit(\"submit\", p.title);\n } else {\n this.$emit(\"selectProvider\", p);\n }\n this.selectedProvider = null;\n }\n },\n onSearch(query) {\n this.query = query;\n }\n }\n};\nconst _hoisted_1$6 = { class: \"provider-list\" };\nconst _hoisted_2$5 = {\n key: 0,\n class: \"provider\"\n};\nconst _hoisted_3$4 = {\n key: 1,\n class: \"provider\"\n};\nconst _hoisted_4$3 = [\"src\", \"alt\"];\nfunction _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_LinkVariantIcon = resolveComponent(\"LinkVariantIcon\");\n const _component_NcHighlight = resolveComponent(\"NcHighlight\");\n const _component_NcSelect = resolveComponent(\"NcSelect\");\n const _component_NcEmptyContent = resolveComponent(\"NcEmptyContent\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$6, [\n createVNode(_component_NcSelect, {\n ref: \"provider-select\",\n modelValue: $data.selectedProvider,\n \"onUpdate:modelValue\": [\n _cache[0] || (_cache[0] = ($event) => $data.selectedProvider = $event),\n $options.onProviderSelected\n ],\n class: \"provider-list--select\",\n \"input-id\": \"provider-select-input\",\n label: \"title\",\n placeholder: $data.multiselectPlaceholder,\n options: $options.options,\n \"append-to-body\": false,\n \"clear-search-on-select\": true,\n \"clear-search-on-blur\": () => false,\n filterable: false,\n onSearch: $options.onSearch\n }, {\n option: withCtx((option) => [\n option.isLink ? (openBlock(), createElementBlock(\"div\", _hoisted_2$5, [\n createVNode(_component_LinkVariantIcon, {\n class: \"link-icon\",\n size: 20\n }),\n createElementVNode(\"span\", null, toDisplayString(option.title), 1)\n ])) : (openBlock(), createElementBlock(\"div\", _hoisted_3$4, [\n createElementVNode(\"img\", {\n class: \"provider-icon\",\n src: option.icon_url,\n alt: $data.providerIconAlt\n }, null, 8, _hoisted_4$3),\n createVNode(_component_NcHighlight, {\n class: \"option-text\",\n search: $data.query,\n text: option.title\n }, null, 8, [\"search\", \"text\"])\n ]))\n ]),\n _: 1\n }, 8, [\"modelValue\", \"placeholder\", \"options\", \"onSearch\", \"onUpdate:modelValue\"]),\n createVNode(_component_NcEmptyContent, { class: \"provider-list--empty-content\" }, {\n icon: withCtx(() => [\n createVNode(_component_LinkVariantIcon)\n ]),\n _: 1\n })\n ]);\n}\nconst NcProviderList = /* @__PURE__ */ _export_sfc(_sfc_main$6, [[\"render\", _sfc_render$5], [\"__scopeId\", \"data-v-90c6aa3b\"]]);\nregister();\nconst _hoisted_1$5 = [\"src\"];\nconst _hoisted_2$4 = { class: \"widget-default--details\" };\nconst _hoisted_3$3 = { class: \"widget-default--name\" };\nconst _hoisted_4$2 = { class: \"widget-default--link\" };\nconst IDLE_TIMEOUT = 3 * 60 * 1e3;\nconst _sfc_main$5 = /* @__PURE__ */ defineComponent({\n __name: \"NcReferenceWidget\",\n props: {\n reference: {},\n interactive: { type: Boolean, default: true },\n interactiveOptIn: { type: Boolean, default: false }\n },\n setup(__props) {\n const props = __props;\n const router = inject(routerKey, null);\n const isVisible = ref(false);\n const customWidget = useTemplateRef(\"customWidget\");\n const widgetRoot = useTemplateRef(\"widgetRoot\");\n const { width } = useElementSize(widgetRoot);\n useIntersectionObserver(widgetRoot, ([entry]) => {\n nextTick(() => {\n isVisible.value = entry.isIntersecting;\n });\n });\n const showInteractive = ref(false);\n const rendered = ref(false);\n let idleTimeout = null;\n const isInteractive = computed(() => {\n return !props.interactiveOptIn && props.interactive || showInteractive.value;\n });\n const referenceHasFullWidth = computed(() => {\n return hasFullWidth(props.reference.richObjectType);\n });\n const hasCustomWidget = computed(() => {\n return isWidgetRegistered(props.reference.richObjectType);\n });\n const referenceHasInteractiveView = computed(() => {\n return hasCustomWidget.value && hasInteractiveView(props.reference.richObjectType);\n });\n const noAccess = computed(() => {\n return !props.reference.accessible;\n });\n const numberOfLines = computed(() => {\n const lineCountOffsets = [450, 550, 650, Infinity];\n return lineCountOffsets.findIndex((max) => width.value < max);\n });\n const descriptionStyle = computed(() => {\n if (numberOfLines.value === 0) {\n return {\n display: \"none\"\n };\n }\n const lineClamp = numberOfLines.value;\n return {\n lineClamp,\n webkitLineClamp: lineClamp\n };\n });\n const compactLink = computed(() => {\n const link = props.reference.openGraphObject.link;\n if (!link) {\n return \"\";\n }\n if (link.startsWith(\"https://\")) {\n return link.substring(8);\n }\n if (link.startsWith(\"http://\")) {\n return link.substring(7);\n }\n return link;\n });\n const route = computed(() => {\n return getRoute(router, props.reference.openGraphObject.link);\n });\n const referenceWidgetLinkComponent = computed(() => {\n return route.value ? RouterLink : \"a\";\n });\n const referenceWidgetLinkProps = computed(() => {\n return route.value ? { to: route.value } : { href: props.reference.openGraphObject.link, target: \"_blank\" };\n });\n watch(isVisible, (val) => {\n if (!val) {\n idleTimeout = setTimeout(() => {\n if (!isVisible.value) {\n destroyReferenceWidget();\n }\n }, IDLE_TIMEOUT);\n return;\n }\n if (idleTimeout) {\n clearTimeout(idleTimeout);\n idleTimeout = null;\n }\n if (!rendered.value) {\n renderReferenceWidget();\n }\n }, { immediate: true });\n onBeforeUnmount(() => {\n destroyReferenceWidget();\n });\n function enableInteractive() {\n showInteractive.value = true;\n renderReferenceWidget();\n }\n function renderReferenceWidget() {\n if (!customWidget.value) {\n return;\n }\n if (props.reference.richObjectType === \"open-graph\") {\n return;\n }\n customWidget.value.innerHTML = \"\";\n const widget = document.createElement(\"div\");\n widget.style.width = \"100%\";\n customWidget.value.appendChild(widget);\n nextTick(() => {\n renderWidget(widget, {\n ...props.reference,\n interactive: isInteractive.value\n });\n rendered.value = true;\n });\n }\n function destroyReferenceWidget() {\n if (rendered.value && widgetRoot.value) {\n destroyWidget(props.reference.richObjectType, widgetRoot.value);\n rendered.value = false;\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n ref_key: \"widgetRoot\",\n ref: widgetRoot,\n class: normalizeClass({ \"toggle-interactive\": referenceHasInteractiveView.value && !isInteractive.value })\n }, [\n _ctx.reference && hasCustomWidget.value ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n ref_key: \"customWidget\",\n ref: customWidget,\n class: normalizeClass([\"widget-custom\", { \"full-width\": referenceHasFullWidth.value }])\n }, null, 2)) : !noAccess.value && _ctx.reference && _ctx.reference.openGraphObject && !hasCustomWidget.value ? (openBlock(), createBlock(resolveDynamicComponent(referenceWidgetLinkComponent.value), mergeProps({ key: 1 }, referenceWidgetLinkProps.value, {\n rel: \"noopener noreferrer\",\n class: \"widget-default\"\n }), {\n default: withCtx(() => [\n _ctx.reference.openGraphObject.thumb ? (openBlock(), createElementBlock(\"img\", {\n key: 0,\n class: \"widget-default--image\",\n src: _ctx.reference.openGraphObject.thumb\n }, null, 8, _hoisted_1$5)) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", _hoisted_2$4, [\n createElementVNode(\"p\", _hoisted_3$3, toDisplayString(_ctx.reference.openGraphObject.name), 1),\n createElementVNode(\"p\", {\n class: \"widget-default--description\",\n style: normalizeStyle(descriptionStyle.value)\n }, toDisplayString(_ctx.reference.openGraphObject.description), 5),\n createElementVNode(\"p\", _hoisted_4$2, toDisplayString(compactLink.value), 1)\n ])\n ]),\n _: 1\n }, 16)) : createCommentVNode(\"\", true),\n _ctx.interactiveOptIn && referenceHasInteractiveView.value && !isInteractive.value ? (openBlock(), createBlock(NcButton, {\n key: 2,\n class: \"toggle-interactive--button\",\n onClick: enableInteractive\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(unref(t)(\"Enable interactive view\")), 1)\n ]),\n _: 1\n })) : createCommentVNode(\"\", true)\n ], 2);\n };\n }\n});\nconst NcReferenceWidget = /* @__PURE__ */ _export_sfc(_sfc_main$5, [[\"__scopeId\", \"data-v-8ce33442\"]]);\nregister(t25);\nconst _sfc_main$4 = {\n name: \"NcRawLinkInput\",\n components: {\n LinkVariantIcon,\n NcEmptyContent,\n NcLoadingIcon,\n NcReferenceWidget,\n NcTextField: _sfc_main$b\n },\n props: {\n /**\n * The reference provider\n */\n provider: {\n type: Object,\n required: true\n }\n },\n emits: [\n \"submit\"\n ],\n data() {\n return {\n inputValue: \"\",\n loading: false,\n reference: null,\n abortController: null,\n inputPlaceholder: t(\"Enter link\")\n };\n },\n computed: {\n isLinkValid() {\n return isUrl(this.inputValue);\n },\n debouncedUpdateReference() {\n return debounce(this.updateReference, 500);\n }\n },\n methods: {\n focus() {\n this.$refs[\"url-input\"].$el.getElementsByTagName(\"input\")[0]?.focus();\n },\n onSubmit(e) {\n const value = e.target.value;\n if (this.isLinkValid) {\n this.$emit(\"submit\", value);\n }\n },\n onClear() {\n this.inputValue = \"\";\n this.reference = null;\n },\n onInput() {\n this.reference = null;\n if (this.abortController) {\n this.abortController.abort();\n }\n if (this.isLinkValid) {\n this.debouncedUpdateReference();\n }\n },\n updateReference() {\n this.loading = true;\n this.abortController = new AbortController();\n axios.get(generateOcsUrl(\"references/resolve\", 2) + \"?reference=\" + encodeURIComponent(this.inputValue), {\n signal: this.abortController.signal\n }).then((response) => {\n this.reference = response.data.ocs.data.references[this.inputValue];\n }).catch((error) => {\n logger.error(\"[NcRawLinkInput] Failed to update reference\", { error });\n }).then(() => {\n this.loading = false;\n });\n }\n }\n};\nconst _hoisted_1$4 = { class: \"raw-link\" };\nconst _hoisted_2$3 = { class: \"input-wrapper\" };\nconst _hoisted_3$2 = [\"src\"];\nfunction _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcLoadingIcon = resolveComponent(\"NcLoadingIcon\");\n const _component_LinkVariantIcon = resolveComponent(\"LinkVariantIcon\");\n const _component_NcTextField = resolveComponent(\"NcTextField\");\n const _component_NcReferenceWidget = resolveComponent(\"NcReferenceWidget\");\n const _component_NcEmptyContent = resolveComponent(\"NcEmptyContent\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$4, [\n createElementVNode(\"div\", _hoisted_2$3, [\n createVNode(_component_NcTextField, {\n ref: \"url-input\",\n modelValue: $data.inputValue,\n \"onUpdate:modelValue\": [\n _cache[0] || (_cache[0] = ($event) => $data.inputValue = $event),\n $options.onInput\n ],\n \"show-trailing-button\": $data.inputValue !== \"\",\n label: $data.inputPlaceholder,\n onTrailingButtonClick: $options.onClear,\n onKeyup: withKeys($options.onSubmit, [\"enter\"])\n }, {\n default: withCtx(() => [\n $data.loading ? (openBlock(), createBlock(_component_NcLoadingIcon, {\n key: 0,\n size: 16\n })) : (openBlock(), createBlock(_component_LinkVariantIcon, {\n key: 1,\n size: 16\n }))\n ]),\n _: 1\n }, 8, [\"modelValue\", \"show-trailing-button\", \"label\", \"onTrailingButtonClick\", \"onUpdate:modelValue\", \"onKeyup\"])\n ]),\n $data.reference !== null ? (openBlock(), createBlock(_component_NcReferenceWidget, {\n key: 0,\n class: \"reference-widget\",\n reference: $data.reference\n }, null, 8, [\"reference\"])) : (openBlock(), createBlock(_component_NcEmptyContent, {\n key: 1,\n class: \"raw-link--empty-content\"\n }, {\n icon: withCtx(() => [\n $props.provider.icon_url ? (openBlock(), createElementBlock(\"img\", {\n key: 0,\n class: \"provider-icon\",\n src: $props.provider.icon_url\n }, null, 8, _hoisted_3$2)) : (openBlock(), createBlock(_component_LinkVariantIcon, { key: 1 }))\n ]),\n _: 1\n }))\n ]);\n}\nconst NcRawLinkInput = /* @__PURE__ */ _export_sfc(_sfc_main$4, [[\"render\", _sfc_render$4], [\"__scopeId\", \"data-v-a0658f2a\"]]);\nconst _sfc_main$3 = {\n name: \"NcSearchResult\",\n components: {\n NcHighlight: _sfc_main$a\n },\n props: {\n /**\n * Unified search result entry\n */\n entry: {\n type: Object,\n required: true\n },\n /**\n * The query that led to getting this result\n * Used to highlight the entry text\n */\n query: {\n type: String,\n required: true\n }\n }\n};\nconst _hoisted_1$3 = { class: \"result\" };\nconst _hoisted_2$2 = [\"src\"];\nconst _hoisted_3$1 = { class: \"result--content\" };\nconst _hoisted_4$1 = { class: \"result--content--name\" };\nconst _hoisted_5$1 = { class: \"result--content--subline\" };\nfunction _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcHighlight = resolveComponent(\"NcHighlight\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$3, [\n $props.entry.icon ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([{ [$props.entry.icon]: true, rounded: $props.entry.rounded }, \"result--icon-class\"])\n }, null, 2)) : (openBlock(), createElementBlock(\"img\", {\n key: 1,\n class: normalizeClass([\"result--image\", { rounded: $props.entry.rounded }]),\n src: $props.entry.thumbnailUrl\n }, null, 10, _hoisted_2$2)),\n createElementVNode(\"div\", _hoisted_3$1, [\n createElementVNode(\"span\", _hoisted_4$1, [\n createVNode(_component_NcHighlight, {\n search: $props.query,\n text: $props.entry.title\n }, null, 8, [\"search\", \"text\"])\n ]),\n createElementVNode(\"span\", _hoisted_5$1, [\n createVNode(_component_NcHighlight, {\n search: $props.query,\n text: $props.entry.subline\n }, null, 8, [\"search\", \"text\"])\n ])\n ])\n ]);\n}\nconst NcSearchResult = /* @__PURE__ */ _export_sfc(_sfc_main$3, [[\"render\", _sfc_render$3], [\"__scopeId\", \"data-v-059edcfb\"]]);\nregister(t32, t40, t42);\nconst LIMIT = 5;\nconst _sfc_main$2 = {\n name: \"NcSearch\",\n components: {\n LinkVariantIcon,\n DotsHorizontalIcon: IconDotsHorizontal,\n NcEmptyContent,\n NcSelect,\n NcSearchResult\n },\n /* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n props: {\n /**\n * The selected reference provider\n */\n provider: {\n type: Object,\n required: true\n },\n showEmptyContent: {\n type: Boolean,\n default: true\n },\n /**\n * Placeholder of the search\n */\n searchPlaceholder: {\n type: String,\n default: null\n }\n },\n emits: [\n \"submit\"\n ],\n data() {\n return {\n searchQuery: \"\",\n selectedResult: null,\n resultsBySearchProvider: {},\n searching: false,\n searchingMoreOf: null,\n abortController: null,\n noOptionsText: t(\"Start typing to search\"),\n providerIconAlt: t(\"Provider icon\")\n };\n },\n computed: {\n mySearchPlaceholder() {\n return this.searchPlaceholder || t(\"Search\");\n },\n searchProviderIds() {\n return this.provider.search_providers_ids;\n },\n options() {\n if (this.searchQuery === \"\") {\n return [];\n }\n const options = [];\n if (isUrl(this.searchQuery)) {\n options.push(this.rawLinkEntry);\n }\n options.push(...this.formattedSearchResults);\n return options;\n },\n rawLinkEntry() {\n return {\n id: \"rawLinkEntry\",\n resourceUrl: this.searchQuery,\n isRawLink: true\n };\n },\n formattedSearchResults() {\n const results = [];\n this.searchProviderIds.forEach((pid) => {\n if (this.resultsBySearchProvider[pid].entries.length > 0) {\n if (this.searchProviderIds.length > 1 || this.resultsBySearchProvider[pid].entries.length > 1) {\n results.push({\n id: \"groupTitle-\" + pid,\n name: this.resultsBySearchProvider[pid].name,\n isCustomGroupTitle: true,\n providerId: pid\n });\n }\n const providerEntriesWithId = this.resultsBySearchProvider[pid].entries.map((entry, index) => {\n return {\n id: \"provider-\" + pid + \"-entry-\" + index,\n ...entry\n };\n });\n results.push(...providerEntriesWithId);\n if (this.resultsBySearchProvider[pid].isPaginated) {\n results.push({\n id: \"moreOf-\" + pid,\n name: this.resultsBySearchProvider[pid].name,\n isMore: true,\n providerId: pid,\n isLoading: this.searchingMoreOf === pid\n });\n }\n }\n });\n return results;\n },\n debouncedUpdateSearch() {\n return debounce(this.updateSearch, 500);\n }\n },\n mounted() {\n this.resetResults();\n },\n beforeUnmount() {\n this.cancelSearchRequests();\n },\n methods: {\n t,\n resetResults() {\n const resultsBySearchProvider = {};\n this.searchProviderIds.forEach((pid) => {\n resultsBySearchProvider[pid] = {\n entries: []\n };\n });\n this.resultsBySearchProvider = resultsBySearchProvider;\n },\n focus() {\n setTimeout(() => {\n this.$refs[\"search-select\"]?.$el?.querySelector(\"#search-select-input\")?.focus();\n }, 300);\n },\n cancelSearchRequests() {\n if (this.abortController) {\n this.abortController.abort();\n }\n },\n onSearchInput(query) {\n this.searchQuery = query;\n this.debouncedUpdateSearch();\n },\n onSelectResultSelected(item) {\n if (item !== null) {\n if (item.resourceUrl) {\n this.cancelSearchRequests();\n this.$emit(\"submit\", item.resourceUrl);\n } else if (item.isMore) {\n this.searchMoreOf(item.providerId).then(() => {\n this.selectedResult = null;\n });\n }\n }\n },\n searchMoreOf(searchProviderId) {\n this.searchingMoreOf = searchProviderId;\n this.cancelSearchRequests();\n return this.searchProviders(searchProviderId);\n },\n updateSearch() {\n this.cancelSearchRequests();\n this.resetResults();\n if (this.searchQuery === \"\") {\n this.searching = false;\n return;\n }\n return this.searchProviders();\n },\n searchProviders(searchProviderId = null) {\n this.abortController = new AbortController();\n this.searching = true;\n const searchPromises = searchProviderId === null ? [...this.searchProviderIds].map((pid) => {\n return this.searchOneProvider(pid);\n }) : [this.searchOneProvider(searchProviderId, this.resultsBySearchProvider[searchProviderId]?.cursor ?? null)];\n return Promise.allSettled(searchPromises).then((promises) => {\n const isOneCanceled = !!promises.find((p) => {\n return p.status === \"rejected\" && (p.reason.name === \"CanceledError\" || p.reason.code === \"ERR_CANCELED\");\n });\n if (!isOneCanceled) {\n this.searching = false;\n this.searchingMoreOf = null;\n }\n });\n },\n searchOneProvider(providerId, cursor = null) {\n const url = cursor === null ? generateOcsUrl(\"search/providers/{providerId}/search?term={term}&limit={limit}\", { providerId, term: this.searchQuery, limit: LIMIT }) : generateOcsUrl(\"search/providers/{providerId}/search?term={term}&limit={limit}&cursor={cursor}\", { providerId, term: this.searchQuery, limit: LIMIT, cursor });\n return axios.get(url, {\n signal: this.abortController.signal\n }).then((response) => {\n const data = response.data.ocs.data;\n this.resultsBySearchProvider[providerId].name = data.name;\n this.resultsBySearchProvider[providerId].cursor = data.cursor;\n this.resultsBySearchProvider[providerId].isPaginated = data.isPaginated;\n this.resultsBySearchProvider[providerId].entries.push(...data.entries);\n });\n }\n }\n};\nconst _hoisted_1$2 = {\n key: 0,\n class: \"custom-option\"\n};\nconst _hoisted_2$1 = { class: \"option-text\" };\nconst _hoisted_3 = {\n key: 2,\n class: \"custom-option group-name\"\n};\nconst _hoisted_4 = [\"src\"];\nconst _hoisted_5 = { class: \"option-text\" };\nconst _hoisted_6 = {\n key: 3,\n class: \"custom-option\"\n};\nconst _hoisted_7 = {\n key: 0,\n class: \"option-simple-icon icon-loading-small\"\n};\nconst _hoisted_8 = { class: \"option-text\" };\nconst _hoisted_9 = [\"alt\", \"src\"];\nfunction _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_LinkVariantIcon = resolveComponent(\"LinkVariantIcon\");\n const _component_NcSearchResult = resolveComponent(\"NcSearchResult\");\n const _component_DotsHorizontalIcon = resolveComponent(\"DotsHorizontalIcon\");\n const _component_NcSelect = resolveComponent(\"NcSelect\");\n const _component_NcEmptyContent = resolveComponent(\"NcEmptyContent\");\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"smart-picker-search\", { \"with-empty-content\": $props.showEmptyContent }])\n }, [\n createVNode(_component_NcSelect, {\n ref: \"search-select\",\n modelValue: $data.selectedResult,\n \"onUpdate:modelValue\": [\n _cache[0] || (_cache[0] = ($event) => $data.selectedResult = $event),\n $options.onSelectResultSelected\n ],\n class: \"smart-picker-search--select\",\n \"input-id\": \"search-select-input\",\n label: \"name\",\n placeholder: $options.mySearchPlaceholder,\n options: $options.options,\n \"append-to-body\": false,\n \"close-on-select\": false,\n \"clear-search-on-select\": false,\n \"clear-search-on-blur\": () => false,\n \"reset-focus-on-options-change\": false,\n filterable: false,\n autoscroll: true,\n \"reset-on-options-change\": false,\n loading: $data.searching,\n onSearch: $options.onSearchInput\n }, {\n option: withCtx((option) => [\n option.isRawLink ? (openBlock(), createElementBlock(\"div\", _hoisted_1$2, [\n createVNode(_component_LinkVariantIcon, {\n class: \"option-simple-icon\",\n size: 20\n }),\n createElementVNode(\"span\", _hoisted_2$1, toDisplayString($options.t(\"Raw link {options}\", { options: option.resourceUrl })), 1)\n ])) : option.resourceUrl ? (openBlock(), createBlock(_component_NcSearchResult, {\n key: 1,\n class: \"search-result\",\n entry: option,\n query: $data.searchQuery\n }, null, 8, [\"entry\", \"query\"])) : option.isCustomGroupTitle ? (openBlock(), createElementBlock(\"span\", _hoisted_3, [\n $props.provider.icon_url ? (openBlock(), createElementBlock(\"img\", {\n key: 0,\n class: \"provider-icon group-name-icon\",\n src: $props.provider.icon_url\n }, null, 8, _hoisted_4)) : createCommentVNode(\"\", true),\n createElementVNode(\"span\", _hoisted_5, [\n createElementVNode(\"strong\", null, toDisplayString(option.name), 1)\n ])\n ])) : option.isMore ? (openBlock(), createElementBlock(\"span\", _hoisted_6, [\n option.isLoading ? (openBlock(), createElementBlock(\"span\", _hoisted_7)) : (openBlock(), createBlock(_component_DotsHorizontalIcon, {\n key: 1,\n class: \"option-simple-icon\",\n size: 20\n })),\n createElementVNode(\"span\", _hoisted_8, toDisplayString($options.t('Load more \"{options}\"', { options: option.name })), 1)\n ])) : createCommentVNode(\"\", true)\n ]),\n \"no-options\": withCtx(() => [\n createTextVNode(toDisplayString($data.noOptionsText), 1)\n ]),\n _: 1\n }, 8, [\"modelValue\", \"placeholder\", \"options\", \"loading\", \"onSearch\", \"onUpdate:modelValue\"]),\n $props.showEmptyContent ? (openBlock(), createBlock(_component_NcEmptyContent, {\n key: 0,\n class: \"smart-picker-search--empty-content\"\n }, {\n icon: withCtx(() => [\n $props.provider.icon_url ? (openBlock(), createElementBlock(\"img\", {\n key: 0,\n class: \"provider-icon\",\n alt: $data.providerIconAlt,\n src: $props.provider.icon_url\n }, null, 8, _hoisted_9)) : (openBlock(), createBlock(_component_LinkVariantIcon, { key: 1 }))\n ]),\n _: 1\n })) : createCommentVNode(\"\", true)\n ], 2);\n}\nconst NcSearch = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"render\", _sfc_render$2], [\"__scopeId\", \"data-v-e8abf1d4\"]]);\nconst MODES = {\n providerList: 1,\n standardLinkInput: 2,\n searchInput: 3,\n customElement: 4\n};\nconst _sfc_main$1 = {\n name: \"NcReferencePicker\",\n components: {\n NcCustomPickerElement,\n NcProviderList,\n NcRawLinkInput,\n NcSearch\n },\n props: {\n /**\n * Provider to select on creation\n * Default: null. Show the provider list\n */\n initialProvider: {\n type: Object,\n default: () => null\n },\n /**\n * Optional width in pixels\n * Default: 100%\n */\n width: {\n type: Number,\n default: null\n },\n /**\n * Focus on the provider list select input on creation\n * Default: true\n */\n focusOnCreate: {\n type: Boolean,\n default: true\n }\n },\n emits: [\n \"cancel\",\n \"cancelRawLink\",\n \"cancelSearch\",\n \"providerSelected\",\n \"submit\"\n ],\n data() {\n return {\n MODES,\n selectedProvider: this.initialProvider\n };\n },\n computed: {\n mode() {\n return this.selectedProvider === null ? MODES.providerList : isCustomPickerElementRegistered(this.selectedProvider.id) ? MODES.customElement : this.selectedProvider.search_providers_ids ? MODES.searchInput : MODES.standardLinkInput;\n },\n pickerWrapperStyle() {\n return {\n width: this.width ? this.width + \"px\" : void 0\n };\n }\n },\n mounted() {\n if (this.focusOnCreate) {\n if (this.initialProvider) {\n setTimeout(() => {\n this.$refs[\"url-input\"]?.focus();\n }, 300);\n } else {\n this.$nextTick(() => {\n this.$refs[\"provider-list\"]?.focus();\n });\n }\n }\n },\n methods: {\n onEscapePressed() {\n if (this.selectedProvider !== null) {\n this.deselectProvider();\n } else {\n this.cancelProviderSelection();\n }\n },\n onProviderSelected(provider) {\n this.selectedProvider = provider;\n this.$emit(\"providerSelected\", provider);\n this.$nextTick(() => {\n this.$refs[\"url-input\"]?.focus();\n });\n },\n cancelCustomElement() {\n this.deselectProvider();\n },\n cancelSearch() {\n this.$emit(\"cancelSearch\", this.selectedProvider?.title);\n this.deselectProvider();\n },\n cancelRawLinkInput() {\n this.$emit(\"cancelRawLink\", this.selectedProvider?.title);\n this.deselectProvider();\n },\n cancelProviderSelection() {\n this.$emit(\"cancel\");\n },\n submitLink(link) {\n if (this.selectedProvider !== null) {\n touchProvider(this.selectedProvider.id);\n }\n this.$emit(\"submit\", link);\n this.deselectProvider();\n },\n deselectProvider() {\n this.selectedProvider = null;\n this.$emit(\"providerSelected\", null);\n setTimeout(() => {\n this.$refs[\"provider-list\"]?.focus();\n }, 300);\n }\n }\n};\nconst _hoisted_1$1 = {\n key: 3,\n class: \"custom-element-wrapper\"\n};\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcProviderList = resolveComponent(\"NcProviderList\");\n const _component_NcRawLinkInput = resolveComponent(\"NcRawLinkInput\");\n const _component_NcSearch = resolveComponent(\"NcSearch\");\n const _component_NcCustomPickerElement = resolveComponent(\"NcCustomPickerElement\");\n return openBlock(), createElementBlock(\"div\", {\n class: \"reference-picker\",\n style: normalizeStyle($options.pickerWrapperStyle),\n tabindex: \"-1\",\n onKeydown: _cache[0] || (_cache[0] = withKeys(withModifiers((...args) => $options.onEscapePressed && $options.onEscapePressed(...args), [\"stop\", \"prevent\"]), [\"esc\"]))\n }, [\n $options.mode === $data.MODES.providerList ? (openBlock(), createBlock(_component_NcProviderList, {\n key: 0,\n ref: \"provider-list\",\n onSelectProvider: $options.onProviderSelected,\n onSubmit: $options.submitLink,\n onCancel: $options.cancelProviderSelection\n }, null, 8, [\"onSelectProvider\", \"onSubmit\", \"onCancel\"])) : $options.mode === $data.MODES.standardLinkInput ? (openBlock(), createBlock(_component_NcRawLinkInput, {\n key: 1,\n ref: \"url-input\",\n provider: $data.selectedProvider,\n onSubmit: $options.submitLink,\n onCancel: $options.cancelRawLinkInput\n }, null, 8, [\"provider\", \"onSubmit\", \"onCancel\"])) : $options.mode === $data.MODES.searchInput ? (openBlock(), createBlock(_component_NcSearch, {\n key: 2,\n ref: \"url-input\",\n provider: $data.selectedProvider,\n onCancel: $options.cancelSearch,\n onSubmit: $options.submitLink\n }, null, 8, [\"provider\", \"onCancel\", \"onSubmit\"])) : $options.mode === $data.MODES.customElement ? (openBlock(), createElementBlock(\"div\", _hoisted_1$1, [\n createVNode(_component_NcCustomPickerElement, {\n provider: $data.selectedProvider,\n class: \"custom-element\",\n onSubmit: $options.submitLink,\n onCancel: $options.cancelCustomElement\n }, null, 8, [\"provider\", \"onSubmit\", \"onCancel\"])\n ])) : createCommentVNode(\"\", true)\n ], 36);\n}\nconst NcReferencePicker = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1], [\"__scopeId\", \"data-v-b193005a\"]]);\nregister(t12, t19);\nconst _sfc_main = {\n name: \"NcReferencePickerModal\",\n components: {\n NcReferencePicker,\n NcModal,\n NcButton,\n ArrowLeftIcon,\n CloseIcon: IconClose\n },\n props: {\n /**\n * Provider to select on creation\n * Show the provider list if no initial one is provided\n */\n initialProvider: {\n type: Object,\n default: () => null\n },\n /**\n * Focus on the input item on create\n */\n focusOnCreate: {\n type: Boolean,\n default: true\n },\n /**\n * If true, add the modal content to the Viewer trap elements via the event-bus\n */\n isInsideViewer: {\n type: Boolean,\n default: false\n }\n },\n emits: [\n \"cancel\",\n \"submit\"\n ],\n data() {\n return {\n show: true,\n selectedProvider: this.initialProvider,\n backButtonTitle: t(\"Back to provider selection\"),\n closeButtonTitle: t(\"Close\"),\n closeButtonLabel: t(\"Close Smart Picker\")\n };\n },\n computed: {\n isProviderSelected() {\n return this.selectedProvider !== null;\n },\n showBackButton() {\n return this.initialProvider === null && this.isProviderSelected;\n },\n modalSize() {\n return this.isProviderSelected && isCustomPickerElementRegistered(this.selectedProvider.id) ? getCustomPickerElementSize(this.selectedProvider.id) ?? \"large\" : \"normal\";\n },\n showModalName() {\n return !this.isProviderSelected || !isCustomPickerElementRegistered(this.selectedProvider.id);\n },\n modalName() {\n return this.isProviderSelected ? this.selectedProvider.title : t(\"Smart Picker\");\n }\n },\n mounted() {\n if (this.isInsideViewer) {\n const elem = this.$refs.modal_content;\n emit(\"viewer:trapElements:changed\", elem);\n }\n },\n methods: {\n onCancel() {\n this.show = false;\n this.$emit(\"cancel\");\n },\n onSubmit(value) {\n this.show = false;\n this.$emit(\"submit\", value);\n },\n onProviderSelect(provider) {\n this.selectedProvider = provider;\n if (provider === null && this.initialProvider !== null) {\n this.onCancel();\n }\n },\n onBackClicked() {\n this.$refs.referencePicker.deselectProvider();\n }\n }\n};\nconst _hoisted_1 = {\n ref: \"modal_content\",\n class: \"reference-picker-modal--content\"\n};\nconst _hoisted_2 = { key: 1 };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_ArrowLeftIcon = resolveComponent(\"ArrowLeftIcon\");\n const _component_NcButton = resolveComponent(\"NcButton\");\n const _component_CloseIcon = resolveComponent(\"CloseIcon\");\n const _component_NcReferencePicker = resolveComponent(\"NcReferencePicker\");\n const _component_NcModal = resolveComponent(\"NcModal\");\n return $data.show ? (openBlock(), createBlock(_component_NcModal, {\n key: 0,\n size: $options.modalSize,\n class: \"reference-picker-modal\",\n onClose: $options.onCancel\n }, {\n default: withCtx(() => [\n createElementVNode(\"div\", _hoisted_1, [\n $options.showBackButton ? (openBlock(), createBlock(_component_NcButton, {\n key: 0,\n \"aria-label\": $data.backButtonTitle,\n title: $data.backButtonTitle,\n class: \"back-button\",\n onClick: $options.onBackClicked\n }, {\n icon: withCtx(() => [\n createVNode(_component_ArrowLeftIcon)\n ]),\n _: 1\n }, 8, [\"aria-label\", \"title\", \"onClick\"])) : createCommentVNode(\"\", true),\n createVNode(_component_NcButton, {\n class: \"close-button\",\n \"aria-label\": $data.closeButtonLabel,\n title: $data.closeButtonTitle,\n variant: \"tertiary\",\n onClick: $options.onCancel\n }, {\n icon: withCtx(() => [\n createVNode(_component_CloseIcon)\n ]),\n _: 1\n }, 8, [\"aria-label\", \"title\", \"onClick\"]),\n $options.showModalName ? (openBlock(), createElementBlock(\"h2\", _hoisted_2, toDisplayString($options.modalName), 1)) : createCommentVNode(\"\", true),\n createVNode(_component_NcReferencePicker, {\n ref: \"referencePicker\",\n \"initial-provider\": $props.initialProvider,\n \"focus-on-create\": $props.focusOnCreate,\n onProviderSelected: $options.onProviderSelect,\n onSubmit: $options.onSubmit,\n onCancel: $options.onCancel\n }, null, 8, [\"initial-provider\", \"focus-on-create\", \"onProviderSelected\", \"onSubmit\", \"onCancel\"])\n ], 512)\n ]),\n _: 1\n }, 8, [\"size\", \"onClose\"])) : createCommentVNode(\"\", true);\n}\nconst NcReferencePickerModal = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-15018516\"]]);\nasync function getLinkWithPicker(providerId, isInsideViewer) {\n const modalId = \"referencePickerModal\";\n const modalElement = document.createElement(\"div\");\n modalElement.id = modalId;\n document.body.append(modalElement);\n const { promise, reject, resolve } = Promise.withResolvers();\n const initialProvider = providerId && getProvider(providerId) || null;\n const view = createApp(NcReferencePickerModal, {\n initialProvider,\n isInsideViewer,\n onCancel() {\n view.unmount();\n reject(new Error(\"User cancellation\"));\n },\n onSubmit(link) {\n view.unmount();\n resolve(link);\n }\n });\n view.mount(modalElement);\n return promise;\n}\nexport {\n NcReferencePicker as N,\n anyLinkProviderId as a,\n getProvider as b,\n getProviders as c,\n sortProviders as d,\n NcReferencePickerModal as e,\n NcReferenceWidget as f,\n getLinkWithPicker as g,\n NcSearch as h,\n searchProvider as s\n};\n//# sourceMappingURL=referencePickerModal-DmD3-xYB.mjs.map\n","export const VOID = -1;\nexport const PRIMITIVE = 0;\nexport const ARRAY = 1;\nexport const OBJECT = 2;\nexport const DATE = 3;\nexport const REGEXP = 4;\nexport const MAP = 5;\nexport const SET = 6;\nexport const ERROR = 7;\nexport const BIGINT = 8;\n// export const SYMBOL = 9;\n","import {\n VOID, PRIMITIVE,\n ARRAY, OBJECT,\n DATE, REGEXP, MAP, SET,\n ERROR, BIGINT\n} from './types.js';\n\nconst env = typeof self === 'object' ? self : globalThis;\n\nconst deserializer = ($, _) => {\n const as = (out, index) => {\n $.set(index, out);\n return out;\n };\n\n const unpair = index => {\n if ($.has(index))\n return $.get(index);\n\n const [type, value] = _[index];\n switch (type) {\n case PRIMITIVE:\n case VOID:\n return as(value, index);\n case ARRAY: {\n const arr = as([], index);\n for (const index of value)\n arr.push(unpair(index));\n return arr;\n }\n case OBJECT: {\n const object = as({}, index);\n for (const [key, index] of value)\n object[unpair(key)] = unpair(index);\n return object;\n }\n case DATE:\n return as(new Date(value), index);\n case REGEXP: {\n const {source, flags} = value;\n return as(new RegExp(source, flags), index);\n }\n case MAP: {\n const map = as(new Map, index);\n for (const [key, index] of value)\n map.set(unpair(key), unpair(index));\n return map;\n }\n case SET: {\n const set = as(new Set, index);\n for (const index of value)\n set.add(unpair(index));\n return set;\n }\n case ERROR: {\n const {name, message} = value;\n return as(new env[name](message), index);\n }\n case BIGINT:\n return as(BigInt(value), index);\n case 'BigInt':\n return as(Object(BigInt(value)), index);\n case 'ArrayBuffer':\n return as(new Uint8Array(value).buffer, value);\n case 'DataView': {\n const { buffer } = new Uint8Array(value);\n return as(new DataView(buffer), value);\n }\n }\n return as(new env[type](value), index);\n };\n\n return unpair;\n};\n\n/**\n * @typedef {Array<string,any>} Record a type representation\n */\n\n/**\n * Returns a deserialized value from a serialized array of Records.\n * @param {Record[]} serialized a previously serialized value.\n * @returns {any}\n */\nexport const deserialize = serialized => deserializer(new Map, serialized)(0);\n","import {\n VOID, PRIMITIVE,\n ARRAY, OBJECT,\n DATE, REGEXP, MAP, SET,\n ERROR, BIGINT\n} from './types.js';\n\nconst EMPTY = '';\n\nconst {toString} = {};\nconst {keys} = Object;\n\nconst typeOf = value => {\n const type = typeof value;\n if (type !== 'object' || !value)\n return [PRIMITIVE, type];\n\n const asString = toString.call(value).slice(8, -1);\n switch (asString) {\n case 'Array':\n return [ARRAY, EMPTY];\n case 'Object':\n return [OBJECT, EMPTY];\n case 'Date':\n return [DATE, EMPTY];\n case 'RegExp':\n return [REGEXP, EMPTY];\n case 'Map':\n return [MAP, EMPTY];\n case 'Set':\n return [SET, EMPTY];\n case 'DataView':\n return [ARRAY, asString];\n }\n\n if (asString.includes('Array'))\n return [ARRAY, asString];\n\n if (asString.includes('Error'))\n return [ERROR, asString];\n\n return [OBJECT, asString];\n};\n\nconst shouldSkip = ([TYPE, type]) => (\n TYPE === PRIMITIVE &&\n (type === 'function' || type === 'symbol')\n);\n\nconst serializer = (strict, json, $, _) => {\n\n const as = (out, value) => {\n const index = _.push(out) - 1;\n $.set(value, index);\n return index;\n };\n\n const pair = value => {\n if ($.has(value))\n return $.get(value);\n\n let [TYPE, type] = typeOf(value);\n switch (TYPE) {\n case PRIMITIVE: {\n let entry = value;\n switch (type) {\n case 'bigint':\n TYPE = BIGINT;\n entry = value.toString();\n break;\n case 'function':\n case 'symbol':\n if (strict)\n throw new TypeError('unable to serialize ' + type);\n entry = null;\n break;\n case 'undefined':\n return as([VOID], value);\n }\n return as([TYPE, entry], value);\n }\n case ARRAY: {\n if (type) {\n let spread = value;\n if (type === 'DataView') {\n spread = new Uint8Array(value.buffer);\n }\n else if (type === 'ArrayBuffer') {\n spread = new Uint8Array(value);\n }\n return as([type, [...spread]], value);\n }\n\n const arr = [];\n const index = as([TYPE, arr], value);\n for (const entry of value)\n arr.push(pair(entry));\n return index;\n }\n case OBJECT: {\n if (type) {\n switch (type) {\n case 'BigInt':\n return as([type, value.toString()], value);\n case 'Boolean':\n case 'Number':\n case 'String':\n return as([type, value.valueOf()], value);\n }\n }\n\n if (json && ('toJSON' in value))\n return pair(value.toJSON());\n\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const key of keys(value)) {\n if (strict || !shouldSkip(typeOf(value[key])))\n entries.push([pair(key), pair(value[key])]);\n }\n return index;\n }\n case DATE:\n return as([TYPE, value.toISOString()], value);\n case REGEXP: {\n const {source, flags} = value;\n return as([TYPE, {source, flags}], value);\n }\n case MAP: {\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const [key, entry] of value) {\n if (strict || !(shouldSkip(typeOf(key)) || shouldSkip(typeOf(entry))))\n entries.push([pair(key), pair(entry)]);\n }\n return index;\n }\n case SET: {\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const entry of value) {\n if (strict || !shouldSkip(typeOf(entry)))\n entries.push(pair(entry));\n }\n return index;\n }\n }\n\n const {message} = value;\n return as([TYPE, {name: type, message}], value);\n };\n\n return pair;\n};\n\n/**\n * @typedef {Array<string,any>} Record a type representation\n */\n\n/**\n * Returns an array of serialized Records.\n * @param {any} value a serializable value.\n * @param {{json?: boolean, lossy?: boolean}?} options an object with a `lossy` or `json` property that,\n * if `true`, will not throw errors on incompatible types, and behave more\n * like JSON stringify would behave. Symbol and Function will be discarded.\n * @returns {Record[]}\n */\n export const serialize = (value, {json, lossy} = {}) => {\n const _ = [];\n return serializer(!(json || lossy), !!json, new Map, _)(value), _;\n};\n","import {deserialize} from './deserialize.js';\nimport {serialize} from './serialize.js';\n\n/**\n * @typedef {Array<string,any>} Record a type representation\n */\n\n/**\n * Returns an array of serialized Records.\n * @param {any} any a serializable value.\n * @param {{transfer?: any[], json?: boolean, lossy?: boolean}?} options an object with\n * a transfer option (ignored when polyfilled) and/or non standard fields that\n * fallback to the polyfill if present.\n * @returns {Record[]}\n */\nexport default typeof structuredClone === \"function\" ?\n /* c8 ignore start */\n (any, options) => (\n options && ('json' in options || 'lossy' in options) ?\n deserialize(serialize(any, options)) : structuredClone(any)\n ) :\n (any, options) => deserialize(serialize(any, options));\n /* c8 ignore stop */\n\nexport {deserialize, serialize};\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Parents} Parents\n */\n\n/**\n * @template Fn\n * @template Fallback\n * @typedef {Fn extends (value: any) => value is infer Thing ? Thing : Fallback} Predicate\n */\n\n/**\n * @callback Check\n * Check that an arbitrary value is an element.\n * @param {unknown} this\n * Context object (`this`) to call `test` with\n * @param {unknown} [element]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * Position of `element` in its parent.\n * @param {Parents | null | undefined} [parent]\n * Parent of `element`.\n * @returns {boolean}\n * Whether this is an element and passes a test.\n *\n * @typedef {Array<TestFunction | string> | TestFunction | string | null | undefined} Test\n * Check for an arbitrary element.\n *\n * * when `string`, checks that the element has that tag name\n * * when `function`, see `TestFunction`\n * * when `Array`, checks if one of the subtests pass\n *\n * @callback TestFunction\n * Check if an element passes a test.\n * @param {unknown} this\n * The given context.\n * @param {Element} element\n * An element.\n * @param {number | undefined} [index]\n * Position of `element` in its parent.\n * @param {Parents | undefined} [parent]\n * Parent of `element`.\n * @returns {boolean | undefined | void}\n * Whether this element passes the test.\n *\n * Note: `void` is included until TS sees no return as `undefined`.\n */\n\n/**\n * Check if `element` is an `Element` and whether it passes the given test.\n *\n * @param element\n * Thing to check, typically `element`.\n * @param test\n * Check for a specific element.\n * @param index\n * Position of `element` in its parent.\n * @param parent\n * Parent of `element`.\n * @param context\n * Context object (`this`) to call `test` with.\n * @returns\n * Whether `element` is an `Element` and passes a test.\n * @throws\n * When an incorrect `test`, `index`, or `parent` is given; there is no error\n * thrown when `element` is not a node or not an element.\n */\nexport const isElement =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * (<Condition extends TestFunction>(element: unknown, test: Condition, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => element is Element & Predicate<Condition, Element>) &\n * (<Condition extends string>(element: unknown, test: Condition, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => element is Element & {tagName: Condition}) &\n * ((element?: null | undefined) => false) &\n * ((element: unknown, test?: null | undefined, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => element is Element) &\n * ((element: unknown, test?: Test, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * @param {unknown} [element]\n * @param {Test | undefined} [test]\n * @param {number | null | undefined} [index]\n * @param {Parents | null | undefined} [parent]\n * @param {unknown} [context]\n * @returns {boolean}\n */\n // eslint-disable-next-line max-params\n function (element, test, index, parent, context) {\n const check = convertElement(test)\n\n if (\n index !== null &&\n index !== undefined &&\n (typeof index !== 'number' ||\n index < 0 ||\n index === Number.POSITIVE_INFINITY)\n ) {\n throw new Error('Expected positive finite `index`')\n }\n\n if (\n parent !== null &&\n parent !== undefined &&\n (!parent.type || !parent.children)\n ) {\n throw new Error('Expected valid `parent`')\n }\n\n if (\n (index === null || index === undefined) !==\n (parent === null || parent === undefined)\n ) {\n throw new Error('Expected both `index` and `parent`')\n }\n\n return looksLikeAnElement(element)\n ? check.call(context, element, index, parent)\n : false\n }\n )\n\n/**\n * Generate a check from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * an `element`, `index`, and `parent`.\n *\n * @param test\n * A test for a specific element.\n * @returns\n * A check.\n */\nexport const convertElement =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * (<Condition extends TestFunction>(test: Condition) => (element: unknown, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => element is Element & Predicate<Condition, Element>) &\n * (<Condition extends string>(test: Condition) => (element: unknown, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => element is Element & {tagName: Condition}) &\n * ((test?: null | undefined) => (element?: unknown, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => element is Element) &\n * ((test?: Test) => Check)\n * )}\n */\n (\n /**\n * @param {Test | null | undefined} [test]\n * @returns {Check}\n */\n function (test) {\n if (test === null || test === undefined) {\n return element\n }\n\n if (typeof test === 'string') {\n return tagNameFactory(test)\n }\n\n // Assume array.\n if (typeof test === 'object') {\n return anyFactory(test)\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n throw new Error('Expected function, string, or array as `test`')\n }\n )\n\n/**\n * Handle multiple tests.\n *\n * @param {Array<TestFunction | string>} tests\n * @returns {Check}\n */\nfunction anyFactory(tests) {\n /** @type {Array<Check>} */\n const checks = []\n let index = -1\n\n while (++index < tests.length) {\n checks[index] = convertElement(tests[index])\n }\n\n return castFactory(any)\n\n /**\n * @this {unknown}\n * @type {TestFunction}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].apply(this, parameters)) return true\n }\n\n return false\n }\n}\n\n/**\n * Turn a string into a test for an element with a certain type.\n *\n * @param {string} check\n * @returns {Check}\n */\nfunction tagNameFactory(check) {\n return castFactory(tagName)\n\n /**\n * @param {Element} element\n * @returns {boolean}\n */\n function tagName(element) {\n return element.tagName === check\n }\n}\n\n/**\n * Turn a custom test into a test for an element that passes that test.\n *\n * @param {TestFunction} testFunction\n * @returns {Check}\n */\nfunction castFactory(testFunction) {\n return check\n\n /**\n * @this {unknown}\n * @type {Check}\n */\n function check(value, index, parent) {\n return Boolean(\n looksLikeAnElement(value) &&\n testFunction.call(\n this,\n value,\n typeof index === 'number' ? index : undefined,\n parent || undefined\n )\n )\n }\n}\n\n/**\n * Make sure something is an element.\n *\n * @param {unknown} element\n * @returns {element is Element}\n */\nfunction element(element) {\n return Boolean(\n element &&\n typeof element === 'object' &&\n 'type' in element &&\n element.type === 'element' &&\n 'tagName' in element &&\n typeof element.tagName === 'string'\n )\n}\n\n/**\n * @param {unknown} value\n * @returns {value is Element}\n */\nfunction looksLikeAnElement(value) {\n return (\n value !== null &&\n typeof value === 'object' &&\n 'type' in value &&\n 'tagName' in value\n )\n}\n","// Scheme: https://tools.ietf.org/html/rfc3986#section-3.1\n// Absolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\nconst ABSOLUTE_URL_REGEX = /^[a-zA-Z][a-zA-Z\\d+\\-.]*?:/;\n\n// Windows paths like `c:\\`\nconst WINDOWS_PATH_REGEX = /^[a-zA-Z]:\\\\/;\n\nexport default function isAbsoluteUrl(url) {\n\tif (typeof url !== 'string') {\n\t\tthrow new TypeError(`Expected a \\`string\\`, got \\`${typeof url}\\``);\n\t}\n\n\tif (WINDOWS_PATH_REGEX.test(url)) {\n\t\treturn false;\n\t}\n\n\treturn ABSOLUTE_URL_REGEX.test(url);\n}\n","/**\n * Parse space-separated tokens to an array of strings.\n *\n * @param {string} value\n * Space-separated tokens.\n * @returns {Array<string>}\n * List of tokens.\n */\nexport function parse(value) {\n const input = String(value || '').trim()\n return input ? input.split(/[ \\t\\n\\r\\f]+/g) : []\n}\n\n/**\n * Serialize an array of strings as space separated-tokens.\n *\n * @param {Array<string|number>} values\n * List of tokens.\n * @returns {string}\n * Space-separated tokens.\n */\nexport function stringify(values) {\n return values.join(' ').trim()\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast-util-is-element').Test} Test\n */\n\n/**\n * @callback CreateContent\n * Create a target for the element.\n * @param {Element} element\n * Element to check.\n * @returns {Array<ElementContent> | ElementContent | null | undefined}\n * Content to add.\n *\n * @callback CreateProperties\n * Create properties for an element.\n * @param {Element} element\n * Element to check.\n * @returns {Properties | null | undefined}\n * Properties to add.\n *\n * @callback CreateRel\n * Create a `rel` for the element.\n * @param {Element} element\n * Element to check.\n * @returns {Array<string> | string | null | undefined}\n * `rel` to use.\n *\n * @callback CreateTarget\n * Create a `target` for the element.\n * @param {Element} element\n * Element to check.\n * @returns {Target | null | undefined}\n * `target` to use.\n *\n * @typedef Options\n * Configuration.\n * @property {Array<ElementContent> | CreateContent | ElementContent | null | undefined} [content]\n * Content to insert at the end of external links (optional); will be\n * inserted in a `<span>` element; useful for improving accessibility by\n * giving users advanced warning when opening a new window.\n * @property {CreateProperties | Properties | null | undefined} [contentProperties]\n * Properties to add to the `span` wrapping `content` (optional).\n * @property {CreateProperties | Properties | null | undefined} [properties]\n * Properties to add to the link itself (optional).\n * @property {Array<string> | null | undefined} [protocols=['http', 'https']]\n * Protocols to check, such as `mailto` or `tel` (default: `['http',\n * 'https']`).\n * @property {Array<string> | CreateRel | string | null | undefined} [rel=['nofollow']]\n * Link types to hint about the referenced documents (default:\n * `['nofollow']`); pass an empty array (`[]`) to not set `rel`s on links;\n * when using a `target`, add `noopener` and `noreferrer` to avoid\n * exploitation of the `window.opener` API.\n * @property {CreateTarget | Target | null | undefined} [target]\n * How to display referenced documents; the default (nothing) is to not set\n * `target`s on links.\n * @property {Test | null | undefined} [test]\n * Extra test to define which external link elements are modified (optional);\n * any test that can be given to `hast-util-is-element` is supported.\n *\n * @typedef {'_blank' | '_parent' | '_self' | '_top'} Target\n * Target.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {convertElement} from 'hast-util-is-element'\nimport isAbsoluteUrl from 'is-absolute-url'\nimport {parse} from 'space-separated-tokens'\nimport {visit} from 'unist-util-visit'\n\nconst defaultProtocols = ['http', 'https']\nconst defaultRel = ['nofollow']\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Automatically add `rel` (and `target`?) to external links.\n *\n * ###### Notes\n *\n * You should [likely not configure `target`][css-tricks].\n *\n * You should at least set `rel` to `['nofollow']`.\n * When using a `target`, add `noopener` and `noreferrer` to avoid exploitation\n * of the `window.opener` API.\n *\n * When using a `target`, you should set `content` to adhere to accessibility\n * guidelines by giving users advanced warning when opening a new window.\n *\n * [css-tricks]: https://css-tricks.com/use-target_blank/\n *\n * @param {Readonly<Options> | null | undefined} [options]\n * Configuration (optional).\n * @returns\n * Transform.\n */\nexport default function rehypeExternalLinks(options) {\n const settings = options || emptyOptions\n const protocols = settings.protocols || defaultProtocols\n const is = convertElement(settings.test)\n\n /**\n * Transform.\n *\n * @param {Root} tree\n * Tree.\n * @returns {undefined}\n * Nothing.\n */\n return function (tree) {\n visit(tree, 'element', function (node, index, parent) {\n if (\n node.tagName === 'a' &&\n typeof node.properties.href === 'string' &&\n is(node, index, parent)\n ) {\n const url = node.properties.href\n\n if (\n isAbsoluteUrl(url)\n ? protocols.includes(url.slice(0, url.indexOf(':')))\n : url.startsWith('//')\n ) {\n const contentRaw = createIfNeeded(settings.content, node)\n const content =\n contentRaw && !Array.isArray(contentRaw) ? [contentRaw] : contentRaw\n const relRaw = createIfNeeded(settings.rel, node) || defaultRel\n const rel = typeof relRaw === 'string' ? parse(relRaw) : relRaw\n const target = createIfNeeded(settings.target, node)\n\n const properties = createIfNeeded(settings.properties, node)\n\n if (properties) {\n Object.assign(node.properties, structuredClone(properties))\n }\n\n if (rel.length > 0) {\n node.properties.rel = [...rel]\n }\n\n if (target) {\n node.properties.target = target\n }\n\n if (content) {\n const properties =\n createIfNeeded(settings.contentProperties, node) || {}\n\n node.children.push({\n type: 'element',\n tagName: 'span',\n properties: structuredClone(properties),\n children: structuredClone(content)\n })\n }\n }\n }\n })\n }\n}\n\n/**\n * Call a function to get a return value or use the value.\n *\n * @template T\n * Type of value.\n * @param {T} value\n * Value.\n * @param {Element} element\n * Element.\n * @returns {T extends Function ? ReturnType<T> : T}\n * Result.\n */\nfunction createIfNeeded(value, element) {\n return typeof value === 'function' ? value(element) : value\n}\n","/**\n * @typedef Options\n * Configuration for `stringify`.\n * @property {boolean} [padLeft=true]\n * Whether to pad a space before a token.\n * @property {boolean} [padRight=false]\n * Whether to pad a space after a token.\n */\n\n/**\n * @typedef {Options} StringifyOptions\n * Please use `StringifyOptions` instead.\n */\n\n/**\n * Parse comma-separated tokens to an array.\n *\n * @param {string} value\n * Comma-separated tokens.\n * @returns {Array<string>}\n * List of tokens.\n */\nexport function parse(value) {\n /** @type {Array<string>} */\n const tokens = []\n const input = String(value || '')\n let index = input.indexOf(',')\n let start = 0\n /** @type {boolean} */\n let end = false\n\n while (!end) {\n if (index === -1) {\n index = input.length\n end = true\n }\n\n const token = input.slice(start, index).trim()\n\n if (token || !end) {\n tokens.push(token)\n }\n\n start = index + 1\n index = input.indexOf(',', start)\n }\n\n return tokens\n}\n\n/**\n * Serialize an array of strings or numbers to comma-separated tokens.\n *\n * @param {Array<string|number>} values\n * List of tokens.\n * @param {Options} [options]\n * Configuration for `stringify` (optional).\n * @returns {string}\n * Comma-separated tokens.\n */\nexport function stringify(values, options) {\n const settings = options || {}\n\n // Ensure the last empty entry is seen.\n const input = values[values.length - 1] === '' ? [...values, ''] : values\n\n return input\n .join(\n (settings.padRight ? ' ' : '') +\n ',' +\n (settings.padLeft === false ? '' : ' ')\n )\n .trim()\n}\n","/**\n * @typedef Options\n * Configuration.\n * @property {boolean | null | undefined} [jsx=false]\n * Support JSX identifiers (default: `false`).\n */\n\nconst startRe = /[$_\\p{ID_Start}]/u\nconst contRe = /[$_\\u{200C}\\u{200D}\\p{ID_Continue}]/u\nconst contReJsx = /[-$_\\u{200C}\\u{200D}\\p{ID_Continue}]/u\nconst nameRe = /^[$_\\p{ID_Start}][$_\\u{200C}\\u{200D}\\p{ID_Continue}]*$/u\nconst nameReJsx = /^[$_\\p{ID_Start}][-$_\\u{200C}\\u{200D}\\p{ID_Continue}]*$/u\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Checks if the given code point can start an identifier.\n *\n * @param {number | undefined} code\n * Code point to check.\n * @returns {boolean}\n * Whether `code` can start an identifier.\n */\n// Note: `undefined` is supported so you can pass the result from `''.codePointAt`.\nexport function start(code) {\n return code ? startRe.test(String.fromCodePoint(code)) : false\n}\n\n/**\n * Checks if the given code point can continue an identifier.\n *\n * @param {number | undefined} code\n * Code point to check.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {boolean}\n * Whether `code` can continue an identifier.\n */\n// Note: `undefined` is supported so you can pass the result from `''.codePointAt`.\nexport function cont(code, options) {\n const settings = options || emptyOptions\n const re = settings.jsx ? contReJsx : contRe\n return code ? re.test(String.fromCodePoint(code)) : false\n}\n\n/**\n * Checks if the given value is a valid identifier name.\n *\n * @param {string} name\n * Identifier to check.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {boolean}\n * Whether `name` can be an identifier.\n */\nexport function name(name, options) {\n const settings = options || emptyOptions\n const re = settings.jsx ? nameReJsx : nameRe\n return re.test(name)\n}\n","/**\n * @typedef {import('hast').Nodes} Nodes\n */\n\n// HTML whitespace expression.\n// See <https://infra.spec.whatwg.org/#ascii-whitespace>.\nconst re = /[ \\t\\n\\f\\r]/g\n\n/**\n * Check if the given value is *inter-element whitespace*.\n *\n * @param {Nodes | string} thing\n * Thing to check (`Node` or `string`).\n * @returns {boolean}\n * Whether the `value` is inter-element whitespace (`boolean`): consisting of\n * zero or more of space, tab (`\\t`), line feed (`\\n`), carriage return\n * (`\\r`), or form feed (`\\f`); if a node is passed it must be a `Text` node,\n * whose `value` field is checked.\n */\nexport function whitespace(thing) {\n return typeof thing === 'object'\n ? thing.type === 'text'\n ? empty(thing.value)\n : false\n : empty(thing)\n}\n\n/**\n * @param {string} value\n * @returns {boolean}\n */\nfunction empty(value) {\n return value.replace(re, '') === ''\n}\n","/**\n * @import {Schema as SchemaType, Space} from 'property-information'\n */\n\n/** @type {SchemaType} */\nexport class Schema {\n /**\n * @param {SchemaType['property']} property\n * Property.\n * @param {SchemaType['normal']} normal\n * Normal.\n * @param {Space | undefined} [space]\n * Space.\n * @returns\n * Schema.\n */\n constructor(property, normal, space) {\n this.normal = normal\n this.property = property\n\n if (space) {\n this.space = space\n }\n }\n}\n\nSchema.prototype.normal = {}\nSchema.prototype.property = {}\nSchema.prototype.space = undefined\n","/**\n * @import {Info, Space} from 'property-information'\n */\n\nimport {Schema} from './schema.js'\n\n/**\n * @param {ReadonlyArray<Schema>} definitions\n * Definitions.\n * @param {Space | undefined} [space]\n * Space.\n * @returns {Schema}\n * Schema.\n */\nexport function merge(definitions, space) {\n /** @type {Record<string, Info>} */\n const property = {}\n /** @type {Record<string, string>} */\n const normal = {}\n\n for (const definition of definitions) {\n Object.assign(property, definition.property)\n Object.assign(normal, definition.normal)\n }\n\n return new Schema(property, normal, space)\n}\n","/**\n * Get the cleaned case insensitive form of an attribute or property.\n *\n * @param {string} value\n * An attribute-like or property-like name.\n * @returns {string}\n * Value that can be used to look up the properly cased property on a\n * `Schema`.\n */\nexport function normalize(value) {\n return value.toLowerCase()\n}\n","/**\n * @import {Info as InfoType} from 'property-information'\n */\n\n/** @type {InfoType} */\nexport class Info {\n /**\n * @param {string} property\n * Property.\n * @param {string} attribute\n * Attribute.\n * @returns\n * Info.\n */\n constructor(property, attribute) {\n this.attribute = attribute\n this.property = property\n }\n}\n\nInfo.prototype.attribute = ''\nInfo.prototype.booleanish = false\nInfo.prototype.boolean = false\nInfo.prototype.commaOrSpaceSeparated = false\nInfo.prototype.commaSeparated = false\nInfo.prototype.defined = false\nInfo.prototype.mustUseProperty = false\nInfo.prototype.number = false\nInfo.prototype.overloadedBoolean = false\nInfo.prototype.property = ''\nInfo.prototype.spaceSeparated = false\nInfo.prototype.space = undefined\n","let powers = 0\n\nexport const boolean = increment()\nexport const booleanish = increment()\nexport const overloadedBoolean = increment()\nexport const number = increment()\nexport const spaceSeparated = increment()\nexport const commaSeparated = increment()\nexport const commaOrSpaceSeparated = increment()\n\nfunction increment() {\n return 2 ** ++powers\n}\n","/**\n * @import {Space} from 'property-information'\n */\n\nimport {Info} from './info.js'\nimport * as types from './types.js'\n\nconst checks = /** @type {ReadonlyArray<keyof typeof types>} */ (\n Object.keys(types)\n)\n\nexport class DefinedInfo extends Info {\n /**\n * @constructor\n * @param {string} property\n * Property.\n * @param {string} attribute\n * Attribute.\n * @param {number | null | undefined} [mask]\n * Mask.\n * @param {Space | undefined} [space]\n * Space.\n * @returns\n * Info.\n */\n constructor(property, attribute, mask, space) {\n let index = -1\n\n super(property, attribute)\n\n mark(this, 'space', space)\n\n if (typeof mask === 'number') {\n while (++index < checks.length) {\n const check = checks[index]\n mark(this, checks[index], (mask & types[check]) === types[check])\n }\n }\n }\n}\n\nDefinedInfo.prototype.defined = true\n\n/**\n * @template {keyof DefinedInfo} Key\n * Key type.\n * @param {DefinedInfo} values\n * Info.\n * @param {Key} key\n * Key.\n * @param {DefinedInfo[Key]} value\n * Value.\n * @returns {undefined}\n * Nothing.\n */\nfunction mark(values, key, value) {\n if (value) {\n values[key] = value\n }\n}\n","/**\n * @import {Info, Space} from 'property-information'\n */\n\n/**\n * @typedef Definition\n * Definition of a schema.\n * @property {Record<string, string> | undefined} [attributes]\n * Normalzed names to special attribute case.\n * @property {ReadonlyArray<string> | undefined} [mustUseProperty]\n * Normalized names that must be set as properties.\n * @property {Record<string, number | null>} properties\n * Property names to their types.\n * @property {Space | undefined} [space]\n * Space.\n * @property {Transform} transform\n * Transform a property name.\n */\n\n/**\n * @callback Transform\n * Transform.\n * @param {Record<string, string>} attributes\n * Attributes.\n * @param {string} property\n * Property.\n * @returns {string}\n * Attribute.\n */\n\nimport {normalize} from '../normalize.js'\nimport {DefinedInfo} from './defined-info.js'\nimport {Schema} from './schema.js'\n\n/**\n * @param {Definition} definition\n * Definition.\n * @returns {Schema}\n * Schema.\n */\nexport function create(definition) {\n /** @type {Record<string, Info>} */\n const properties = {}\n /** @type {Record<string, string>} */\n const normals = {}\n\n for (const [property, value] of Object.entries(definition.properties)) {\n const info = new DefinedInfo(\n property,\n definition.transform(definition.attributes || {}, property),\n value,\n definition.space\n )\n\n if (\n definition.mustUseProperty &&\n definition.mustUseProperty.includes(property)\n ) {\n info.mustUseProperty = true\n }\n\n properties[property] = info\n\n normals[normalize(property)] = property\n normals[normalize(info.attribute)] = property\n }\n\n return new Schema(properties, normals, definition.space)\n}\n","import {create} from './util/create.js'\nimport {booleanish, number, spaceSeparated} from './util/types.js'\n\nexport const aria = create({\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish,\n ariaAutoComplete: null,\n ariaBusy: booleanish,\n ariaChecked: booleanish,\n ariaColCount: number,\n ariaColIndex: number,\n ariaColSpan: number,\n ariaControls: spaceSeparated,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated,\n ariaDetails: null,\n ariaDisabled: booleanish,\n ariaDropEffect: spaceSeparated,\n ariaErrorMessage: null,\n ariaExpanded: booleanish,\n ariaFlowTo: spaceSeparated,\n ariaGrabbed: booleanish,\n ariaHasPopup: null,\n ariaHidden: booleanish,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated,\n ariaLevel: number,\n ariaLive: null,\n ariaModal: booleanish,\n ariaMultiLine: booleanish,\n ariaMultiSelectable: booleanish,\n ariaOrientation: null,\n ariaOwns: spaceSeparated,\n ariaPlaceholder: null,\n ariaPosInSet: number,\n ariaPressed: booleanish,\n ariaReadOnly: booleanish,\n ariaRelevant: null,\n ariaRequired: booleanish,\n ariaRoleDescription: spaceSeparated,\n ariaRowCount: number,\n ariaRowIndex: number,\n ariaRowSpan: number,\n ariaSelected: booleanish,\n ariaSetSize: number,\n ariaSort: null,\n ariaValueMax: number,\n ariaValueMin: number,\n ariaValueNow: number,\n ariaValueText: null,\n role: null\n },\n transform(_, property) {\n return property === 'role'\n ? property\n : 'aria-' + property.slice(4).toLowerCase()\n }\n})\n","/**\n * @param {Record<string, string>} attributes\n * Attributes.\n * @param {string} attribute\n * Attribute.\n * @returns {string}\n * Transformed attribute.\n */\nexport function caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute\n}\n","import {caseSensitiveTransform} from './case-sensitive-transform.js'\n\n/**\n * @param {Record<string, string>} attributes\n * Attributes.\n * @param {string} property\n * Property.\n * @returns {string}\n * Transformed property.\n */\nexport function caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n","import {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\nimport {create} from './util/create.js'\nimport {\n booleanish,\n boolean,\n commaSeparated,\n number,\n overloadedBoolean,\n spaceSeparated\n} from './util/types.js'\n\nexport const html = create({\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: boolean,\n allowPaymentRequest: boolean,\n allowUserMedia: boolean,\n alt: null,\n as: null,\n async: boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: boolean,\n autoPlay: boolean,\n blocking: spaceSeparated,\n capture: null,\n charSet: null,\n checked: boolean,\n cite: null,\n className: spaceSeparated,\n cols: number,\n colSpan: null,\n content: null,\n contentEditable: booleanish,\n controls: boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: boolean,\n defer: boolean,\n dir: null,\n dirName: null,\n disabled: boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n fetchPriority: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: overloadedBoolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: null,\n inert: boolean,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: boolean,\n muted: boolean,\n name: null,\n nonce: null,\n noModule: boolean,\n noValidate: boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforeMatch: null,\n onBeforePrint: null,\n onBeforeToggle: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextLost: null,\n onContextMenu: null,\n onContextRestored: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onScrollEnd: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: boolean,\n popover: null,\n popoverTarget: null,\n popoverTargetAction: null,\n poster: null,\n preload: null,\n readOnly: boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: boolean,\n reversed: boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: boolean,\n seamless: boolean,\n selected: boolean,\n shadowRootClonable: boolean,\n shadowRootDelegatesFocus: boolean,\n shadowRootMode: null,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: null,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n writingSuggestions: null,\n\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null, // Several. Use CSS `text-align` instead,\n aLink: null, // `<body>`. Use CSS `a:active {color}` instead\n archive: spaceSeparated, // `<object>`. List of URIs to archives\n axis: null, // `<td>` and `<th>`. Use `scope` on `<th>`\n background: null, // `<body>`. Use CSS `background-image` instead\n bgColor: null, // `<body>` and table elements. Use CSS `background-color` instead\n border: number, // `<table>`. Use CSS `border-width` instead,\n borderColor: null, // `<table>`. Use CSS `border-color` instead,\n bottomMargin: number, // `<body>`\n cellPadding: null, // `<table>`\n cellSpacing: null, // `<table>`\n char: null, // Several table elements. When `align=char`, sets the character to align on\n charOff: null, // Several table elements. When `char`, offsets the alignment\n classId: null, // `<object>`\n clear: null, // `<br>`. Use CSS `clear` instead\n code: null, // `<object>`\n codeBase: null, // `<object>`\n codeType: null, // `<object>`\n color: null, // `<font>` and `<hr>`. Use CSS instead\n compact: boolean, // Lists. Use CSS to reduce space between items instead\n declare: boolean, // `<object>`\n event: null, // `<script>`\n face: null, // `<font>`. Use CSS instead\n frame: null, // `<table>`\n frameBorder: null, // `<iframe>`. Use CSS `border` instead\n hSpace: number, // `<img>` and `<object>`\n leftMargin: number, // `<body>`\n link: null, // `<body>`. Use CSS `a:link {color: *}` instead\n longDesc: null, // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`\n lowSrc: null, // `<img>`. Use a `<picture>`\n marginHeight: number, // `<body>`\n marginWidth: number, // `<body>`\n noResize: boolean, // `<frame>`\n noHref: boolean, // `<area>`. Use no href instead of an explicit `nohref`\n noShade: boolean, // `<hr>`. Use background-color and height instead of borders\n noWrap: boolean, // `<td>` and `<th>`\n object: null, // `<applet>`\n profile: null, // `<head>`\n prompt: null, // `<isindex>`\n rev: null, // `<link>`\n rightMargin: number, // `<body>`\n rules: null, // `<table>`\n scheme: null, // `<meta>`\n scrolling: booleanish, // `<frame>`. Use overflow in the child context\n standby: null, // `<object>`\n summary: null, // `<table>`\n text: null, // `<body>`. Use CSS `color` instead\n topMargin: number, // `<body>`\n valueType: null, // `<param>`\n version: null, // `<html>`. Use a doctype.\n vAlign: null, // Several. Use CSS `vertical-align` instead\n vLink: null, // `<body>`. Use CSS `a:visited {color}` instead\n vSpace: number, // `<img>` and `<object>`\n\n // Non-standard Properties.\n allowTransparency: null,\n autoCorrect: null,\n autoSave: null,\n disablePictureInPicture: boolean,\n disableRemotePlayback: boolean,\n prefix: null,\n property: null,\n results: number,\n security: null,\n unselectable: null\n },\n space: 'html',\n transform: caseInsensitiveTransform\n})\n","import {caseSensitiveTransform} from './util/case-sensitive-transform.js'\nimport {create} from './util/create.js'\nimport {\n boolean,\n commaOrSpaceSeparated,\n commaSeparated,\n number,\n spaceSeparated\n} from './util/types.js'\n\nexport const svg = create({\n attributes: {\n accentHeight: 'accent-height',\n alignmentBaseline: 'alignment-baseline',\n arabicForm: 'arabic-form',\n baselineShift: 'baseline-shift',\n capHeight: 'cap-height',\n className: 'class',\n clipPath: 'clip-path',\n clipRule: 'clip-rule',\n colorInterpolation: 'color-interpolation',\n colorInterpolationFilters: 'color-interpolation-filters',\n colorProfile: 'color-profile',\n colorRendering: 'color-rendering',\n crossOrigin: 'crossorigin',\n dataType: 'datatype',\n dominantBaseline: 'dominant-baseline',\n enableBackground: 'enable-background',\n fillOpacity: 'fill-opacity',\n fillRule: 'fill-rule',\n floodColor: 'flood-color',\n floodOpacity: 'flood-opacity',\n fontFamily: 'font-family',\n fontSize: 'font-size',\n fontSizeAdjust: 'font-size-adjust',\n fontStretch: 'font-stretch',\n fontStyle: 'font-style',\n fontVariant: 'font-variant',\n fontWeight: 'font-weight',\n glyphName: 'glyph-name',\n glyphOrientationHorizontal: 'glyph-orientation-horizontal',\n glyphOrientationVertical: 'glyph-orientation-vertical',\n hrefLang: 'hreflang',\n horizAdvX: 'horiz-adv-x',\n horizOriginX: 'horiz-origin-x',\n horizOriginY: 'horiz-origin-y',\n imageRendering: 'image-rendering',\n letterSpacing: 'letter-spacing',\n lightingColor: 'lighting-color',\n markerEnd: 'marker-end',\n markerMid: 'marker-mid',\n markerStart: 'marker-start',\n navDown: 'nav-down',\n navDownLeft: 'nav-down-left',\n navDownRight: 'nav-down-right',\n navLeft: 'nav-left',\n navNext: 'nav-next',\n navPrev: 'nav-prev',\n navRight: 'nav-right',\n navUp: 'nav-up',\n navUpLeft: 'nav-up-left',\n navUpRight: 'nav-up-right',\n onAbort: 'onabort',\n onActivate: 'onactivate',\n onAfterPrint: 'onafterprint',\n onBeforePrint: 'onbeforeprint',\n onBegin: 'onbegin',\n onCancel: 'oncancel',\n onCanPlay: 'oncanplay',\n onCanPlayThrough: 'oncanplaythrough',\n onChange: 'onchange',\n onClick: 'onclick',\n onClose: 'onclose',\n onCopy: 'oncopy',\n onCueChange: 'oncuechange',\n onCut: 'oncut',\n onDblClick: 'ondblclick',\n onDrag: 'ondrag',\n onDragEnd: 'ondragend',\n onDragEnter: 'ondragenter',\n onDragExit: 'ondragexit',\n onDragLeave: 'ondragleave',\n onDragOver: 'ondragover',\n onDragStart: 'ondragstart',\n onDrop: 'ondrop',\n onDurationChange: 'ondurationchange',\n onEmptied: 'onemptied',\n onEnd: 'onend',\n onEnded: 'onended',\n onError: 'onerror',\n onFocus: 'onfocus',\n onFocusIn: 'onfocusin',\n onFocusOut: 'onfocusout',\n onHashChange: 'onhashchange',\n onInput: 'oninput',\n onInvalid: 'oninvalid',\n onKeyDown: 'onkeydown',\n onKeyPress: 'onkeypress',\n onKeyUp: 'onkeyup',\n onLoad: 'onload',\n onLoadedData: 'onloadeddata',\n onLoadedMetadata: 'onloadedmetadata',\n onLoadStart: 'onloadstart',\n onMessage: 'onmessage',\n onMouseDown: 'onmousedown',\n onMouseEnter: 'onmouseenter',\n onMouseLeave: 'onmouseleave',\n onMouseMove: 'onmousemove',\n onMouseOut: 'onmouseout',\n onMouseOver: 'onmouseover',\n onMouseUp: 'onmouseup',\n onMouseWheel: 'onmousewheel',\n onOffline: 'onoffline',\n onOnline: 'ononline',\n onPageHide: 'onpagehide',\n onPageShow: 'onpageshow',\n onPaste: 'onpaste',\n onPause: 'onpause',\n onPlay: 'onplay',\n onPlaying: 'onplaying',\n onPopState: 'onpopstate',\n onProgress: 'onprogress',\n onRateChange: 'onratechange',\n onRepeat: 'onrepeat',\n onReset: 'onreset',\n onResize: 'onresize',\n onScroll: 'onscroll',\n onSeeked: 'onseeked',\n onSeeking: 'onseeking',\n onSelect: 'onselect',\n onShow: 'onshow',\n onStalled: 'onstalled',\n onStorage: 'onstorage',\n onSubmit: 'onsubmit',\n onSuspend: 'onsuspend',\n onTimeUpdate: 'ontimeupdate',\n onToggle: 'ontoggle',\n onUnload: 'onunload',\n onVolumeChange: 'onvolumechange',\n onWaiting: 'onwaiting',\n onZoom: 'onzoom',\n overlinePosition: 'overline-position',\n overlineThickness: 'overline-thickness',\n paintOrder: 'paint-order',\n panose1: 'panose-1',\n pointerEvents: 'pointer-events',\n referrerPolicy: 'referrerpolicy',\n renderingIntent: 'rendering-intent',\n shapeRendering: 'shape-rendering',\n stopColor: 'stop-color',\n stopOpacity: 'stop-opacity',\n strikethroughPosition: 'strikethrough-position',\n strikethroughThickness: 'strikethrough-thickness',\n strokeDashArray: 'stroke-dasharray',\n strokeDashOffset: 'stroke-dashoffset',\n strokeLineCap: 'stroke-linecap',\n strokeLineJoin: 'stroke-linejoin',\n strokeMiterLimit: 'stroke-miterlimit',\n strokeOpacity: 'stroke-opacity',\n strokeWidth: 'stroke-width',\n tabIndex: 'tabindex',\n textAnchor: 'text-anchor',\n textDecoration: 'text-decoration',\n textRendering: 'text-rendering',\n transformOrigin: 'transform-origin',\n typeOf: 'typeof',\n underlinePosition: 'underline-position',\n underlineThickness: 'underline-thickness',\n unicodeBidi: 'unicode-bidi',\n unicodeRange: 'unicode-range',\n unitsPerEm: 'units-per-em',\n vAlphabetic: 'v-alphabetic',\n vHanging: 'v-hanging',\n vIdeographic: 'v-ideographic',\n vMathematical: 'v-mathematical',\n vectorEffect: 'vector-effect',\n vertAdvY: 'vert-adv-y',\n vertOriginX: 'vert-origin-x',\n vertOriginY: 'vert-origin-y',\n wordSpacing: 'word-spacing',\n writingMode: 'writing-mode',\n xHeight: 'x-height',\n // These were camelcased in Tiny. Now lowercased in SVG 2\n playbackOrder: 'playbackorder',\n timelineBegin: 'timelinebegin'\n },\n properties: {\n about: commaOrSpaceSeparated,\n accentHeight: number,\n accumulate: null,\n additive: null,\n alignmentBaseline: null,\n alphabetic: number,\n amplitude: number,\n arabicForm: null,\n ascent: number,\n attributeName: null,\n attributeType: null,\n azimuth: number,\n bandwidth: null,\n baselineShift: null,\n baseFrequency: null,\n baseProfile: null,\n bbox: null,\n begin: null,\n bias: number,\n by: null,\n calcMode: null,\n capHeight: number,\n className: spaceSeparated,\n clip: null,\n clipPath: null,\n clipPathUnits: null,\n clipRule: null,\n color: null,\n colorInterpolation: null,\n colorInterpolationFilters: null,\n colorProfile: null,\n colorRendering: null,\n content: null,\n contentScriptType: null,\n contentStyleType: null,\n crossOrigin: null,\n cursor: null,\n cx: null,\n cy: null,\n d: null,\n dataType: null,\n defaultAction: null,\n descent: number,\n diffuseConstant: number,\n direction: null,\n display: null,\n dur: null,\n divisor: number,\n dominantBaseline: null,\n download: boolean,\n dx: null,\n dy: null,\n edgeMode: null,\n editable: null,\n elevation: number,\n enableBackground: null,\n end: null,\n event: null,\n exponent: number,\n externalResourcesRequired: null,\n fill: null,\n fillOpacity: number,\n fillRule: null,\n filter: null,\n filterRes: null,\n filterUnits: null,\n floodColor: null,\n floodOpacity: null,\n focusable: null,\n focusHighlight: null,\n fontFamily: null,\n fontSize: null,\n fontSizeAdjust: null,\n fontStretch: null,\n fontStyle: null,\n fontVariant: null,\n fontWeight: null,\n format: null,\n fr: null,\n from: null,\n fx: null,\n fy: null,\n g1: commaSeparated,\n g2: commaSeparated,\n glyphName: commaSeparated,\n glyphOrientationHorizontal: null,\n glyphOrientationVertical: null,\n glyphRef: null,\n gradientTransform: null,\n gradientUnits: null,\n handler: null,\n hanging: number,\n hatchContentUnits: null,\n hatchUnits: null,\n height: null,\n href: null,\n hrefLang: null,\n horizAdvX: number,\n horizOriginX: number,\n horizOriginY: number,\n id: null,\n ideographic: number,\n imageRendering: null,\n initialVisibility: null,\n in: null,\n in2: null,\n intercept: number,\n k: number,\n k1: number,\n k2: number,\n k3: number,\n k4: number,\n kernelMatrix: commaOrSpaceSeparated,\n kernelUnitLength: null,\n keyPoints: null, // SEMI_COLON_SEPARATED\n keySplines: null, // SEMI_COLON_SEPARATED\n keyTimes: null, // SEMI_COLON_SEPARATED\n kerning: null,\n lang: null,\n lengthAdjust: null,\n letterSpacing: null,\n lightingColor: null,\n limitingConeAngle: number,\n local: null,\n markerEnd: null,\n markerMid: null,\n markerStart: null,\n markerHeight: null,\n markerUnits: null,\n markerWidth: null,\n mask: null,\n maskContentUnits: null,\n maskUnits: null,\n mathematical: null,\n max: null,\n media: null,\n mediaCharacterEncoding: null,\n mediaContentEncodings: null,\n mediaSize: number,\n mediaTime: null,\n method: null,\n min: null,\n mode: null,\n name: null,\n navDown: null,\n navDownLeft: null,\n navDownRight: null,\n navLeft: null,\n navNext: null,\n navPrev: null,\n navRight: null,\n navUp: null,\n navUpLeft: null,\n navUpRight: null,\n numOctaves: null,\n observer: null,\n offset: null,\n onAbort: null,\n onActivate: null,\n onAfterPrint: null,\n onBeforePrint: null,\n onBegin: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnd: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFocusIn: null,\n onFocusOut: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadStart: null,\n onMessage: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onMouseWheel: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRepeat: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onShow: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onZoom: null,\n opacity: null,\n operator: null,\n order: null,\n orient: null,\n orientation: null,\n origin: null,\n overflow: null,\n overlay: null,\n overlinePosition: number,\n overlineThickness: number,\n paintOrder: null,\n panose1: null,\n path: null,\n pathLength: number,\n patternContentUnits: null,\n patternTransform: null,\n patternUnits: null,\n phase: null,\n ping: spaceSeparated,\n pitch: null,\n playbackOrder: null,\n pointerEvents: null,\n points: null,\n pointsAtX: number,\n pointsAtY: number,\n pointsAtZ: number,\n preserveAlpha: null,\n preserveAspectRatio: null,\n primitiveUnits: null,\n propagate: null,\n property: commaOrSpaceSeparated,\n r: null,\n radius: null,\n referrerPolicy: null,\n refX: null,\n refY: null,\n rel: commaOrSpaceSeparated,\n rev: commaOrSpaceSeparated,\n renderingIntent: null,\n repeatCount: null,\n repeatDur: null,\n requiredExtensions: commaOrSpaceSeparated,\n requiredFeatures: commaOrSpaceSeparated,\n requiredFonts: commaOrSpaceSeparated,\n requiredFormats: commaOrSpaceSeparated,\n resource: null,\n restart: null,\n result: null,\n rotate: null,\n rx: null,\n ry: null,\n scale: null,\n seed: null,\n shapeRendering: null,\n side: null,\n slope: null,\n snapshotTime: null,\n specularConstant: number,\n specularExponent: number,\n spreadMethod: null,\n spacing: null,\n startOffset: null,\n stdDeviation: null,\n stemh: null,\n stemv: null,\n stitchTiles: null,\n stopColor: null,\n stopOpacity: null,\n strikethroughPosition: number,\n strikethroughThickness: number,\n string: null,\n stroke: null,\n strokeDashArray: commaOrSpaceSeparated,\n strokeDashOffset: null,\n strokeLineCap: null,\n strokeLineJoin: null,\n strokeMiterLimit: number,\n strokeOpacity: number,\n strokeWidth: null,\n style: null,\n surfaceScale: number,\n syncBehavior: null,\n syncBehaviorDefault: null,\n syncMaster: null,\n syncTolerance: null,\n syncToleranceDefault: null,\n systemLanguage: commaOrSpaceSeparated,\n tabIndex: number,\n tableValues: null,\n target: null,\n targetX: number,\n targetY: number,\n textAnchor: null,\n textDecoration: null,\n textRendering: null,\n textLength: null,\n timelineBegin: null,\n title: null,\n transformBehavior: null,\n type: null,\n typeOf: commaOrSpaceSeparated,\n to: null,\n transform: null,\n transformOrigin: null,\n u1: null,\n u2: null,\n underlinePosition: number,\n underlineThickness: number,\n unicode: null,\n unicodeBidi: null,\n unicodeRange: null,\n unitsPerEm: number,\n values: null,\n vAlphabetic: number,\n vMathematical: number,\n vectorEffect: null,\n vHanging: number,\n vIdeographic: number,\n version: null,\n vertAdvY: number,\n vertOriginX: number,\n vertOriginY: number,\n viewBox: null,\n viewTarget: null,\n visibility: null,\n width: null,\n widths: null,\n wordSpacing: null,\n writingMode: null,\n x: null,\n x1: null,\n x2: null,\n xChannelSelector: null,\n xHeight: number,\n y: null,\n y1: null,\n y2: null,\n yChannelSelector: null,\n z: null,\n zoomAndPan: null\n },\n space: 'svg',\n transform: caseSensitiveTransform\n})\n","import {create} from './util/create.js'\n\nexport const xlink = create({\n properties: {\n xLinkActuate: null,\n xLinkArcRole: null,\n xLinkHref: null,\n xLinkRole: null,\n xLinkShow: null,\n xLinkTitle: null,\n xLinkType: null\n },\n space: 'xlink',\n transform(_, property) {\n return 'xlink:' + property.slice(5).toLowerCase()\n }\n})\n","import {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const xmlns = create({\n attributes: {xmlnsxlink: 'xmlns:xlink'},\n properties: {xmlnsXLink: null, xmlns: null},\n space: 'xmlns',\n transform: caseInsensitiveTransform\n})\n","import {create} from './util/create.js'\n\nexport const xml = create({\n properties: {xmlBase: null, xmlLang: null, xmlSpace: null},\n space: 'xml',\n transform(_, property) {\n return 'xml:' + property.slice(3).toLowerCase()\n }\n})\n","/**\n * Special cases for React (`Record<string, string>`).\n *\n * `hast` is close to `React` but differs in a couple of cases.\n * To get a React property from a hast property,\n * check if it is in `hastToReact`.\n * If it is, use the corresponding value;\n * otherwise, use the hast property.\n *\n * @type {Record<string, string>}\n */\nexport const hastToReact = {\n classId: 'classID',\n dataType: 'datatype',\n itemId: 'itemID',\n strokeDashArray: 'strokeDasharray',\n strokeDashOffset: 'strokeDashoffset',\n strokeLineCap: 'strokeLinecap',\n strokeLineJoin: 'strokeLinejoin',\n strokeMiterLimit: 'strokeMiterlimit',\n typeOf: 'typeof',\n xLinkActuate: 'xlinkActuate',\n xLinkArcRole: 'xlinkArcrole',\n xLinkHref: 'xlinkHref',\n xLinkRole: 'xlinkRole',\n xLinkShow: 'xlinkShow',\n xLinkTitle: 'xlinkTitle',\n xLinkType: 'xlinkType',\n xmlnsXLink: 'xmlnsXlink'\n}\n","/**\n * @import {Schema} from 'property-information'\n */\n\nimport {DefinedInfo} from './util/defined-info.js'\nimport {Info} from './util/info.js'\nimport {normalize} from './normalize.js'\n\nconst cap = /[A-Z]/g\nconst dash = /-[a-z]/g\nconst valid = /^data[-\\w.:]+$/i\n\n/**\n * Look up info on a property.\n *\n * In most cases the given `schema` contains info on the property.\n * All standard,\n * most legacy,\n * and some non-standard properties are supported.\n * For these cases,\n * the returned `Info` has hints about the value of the property.\n *\n * `name` can also be a valid data attribute or property,\n * in which case an `Info` object with the correctly cased `attribute` and\n * `property` is returned.\n *\n * `name` can be an unknown attribute,\n * in which case an `Info` object with `attribute` and `property` set to the\n * given name is returned.\n * It is not recommended to provide unsupported legacy or recently specced\n * properties.\n *\n *\n * @param {Schema} schema\n * Schema;\n * either the `html` or `svg` export.\n * @param {string} value\n * An attribute-like or property-like name;\n * it will be passed through `normalize` to hopefully find the correct info.\n * @returns {Info}\n * Info.\n */\nexport function find(schema, value) {\n const normal = normalize(value)\n let property = value\n let Type = Info\n\n if (normal in schema.normal) {\n return schema.property[schema.normal[normal]]\n }\n\n if (normal.length > 4 && normal.slice(0, 4) === 'data' && valid.test(value)) {\n // Attribute or property.\n if (value.charAt(4) === '-') {\n // Turn it into a property.\n const rest = value.slice(5).replace(dash, camelcase)\n property = 'data' + rest.charAt(0).toUpperCase() + rest.slice(1)\n } else {\n // Turn it into an attribute.\n const rest = value.slice(4)\n\n if (!dash.test(rest)) {\n let dashes = rest.replace(cap, kebab)\n\n if (dashes.charAt(0) !== '-') {\n dashes = '-' + dashes\n }\n\n value = 'data' + dashes\n }\n }\n\n Type = DefinedInfo\n }\n\n return new Type(property, value)\n}\n\n/**\n * @param {string} $0\n * Value.\n * @returns {string}\n * Kebab.\n */\nfunction kebab($0) {\n return '-' + $0.toLowerCase()\n}\n\n/**\n * @param {string} $0\n * Value.\n * @returns {string}\n * Camel.\n */\nfunction camelcase($0) {\n return $0.charAt(1).toUpperCase()\n}\n","// Note: types exposed from `index.d.ts`.\nimport {merge} from './lib/util/merge.js'\nimport {aria} from './lib/aria.js'\nimport {html as htmlBase} from './lib/html.js'\nimport {svg as svgBase} from './lib/svg.js'\nimport {xlink} from './lib/xlink.js'\nimport {xmlns} from './lib/xmlns.js'\nimport {xml} from './lib/xml.js'\n\nexport {hastToReact} from './lib/hast-to-react.js'\n\nexport const html = merge([aria, htmlBase, xlink, xmlns, xml], 'html')\n\nexport {find} from './lib/find.js'\nexport {normalize} from './lib/normalize.js'\n\nexport const svg = merge([aria, svgBase, xlink, xmlns, xml], 'svg')\n","// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nvar COMMENT_REGEX = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\n\nvar NEWLINE_REGEX = /\\n/g;\nvar WHITESPACE_REGEX = /^\\s*/;\n\n// declaration\nvar PROPERTY_REGEX = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/;\nvar COLON_REGEX = /^:\\s*/;\nvar VALUE_REGEX = /^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^)]*?\\)|[^};])+)/;\nvar SEMICOLON_REGEX = /^[;\\s]*/;\n\n// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill\nvar TRIM_REGEX = /^\\s+|\\s+$/g;\n\n// strings\nvar NEWLINE = '\\n';\nvar FORWARD_SLASH = '/';\nvar ASTERISK = '*';\nvar EMPTY_STRING = '';\n\n// types\nvar TYPE_COMMENT = 'comment';\nvar TYPE_DECLARATION = 'declaration';\n\n/**\n * @param {String} style\n * @param {Object} [options]\n * @return {Object[]}\n * @throws {TypeError}\n * @throws {Error}\n */\nmodule.exports = function (style, options) {\n if (typeof style !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n if (!style) return [];\n\n options = options || {};\n\n /**\n * Positional.\n */\n var lineno = 1;\n var column = 1;\n\n /**\n * Update lineno and column based on `str`.\n *\n * @param {String} str\n */\n function updatePosition(str) {\n var lines = str.match(NEWLINE_REGEX);\n if (lines) lineno += lines.length;\n var i = str.lastIndexOf(NEWLINE);\n column = ~i ? str.length - i : column + str.length;\n }\n\n /**\n * Mark position and patch `node.position`.\n *\n * @return {Function}\n */\n function position() {\n var start = { line: lineno, column: column };\n return function (node) {\n node.position = new Position(start);\n whitespace();\n return node;\n };\n }\n\n /**\n * Store position information for a node.\n *\n * @constructor\n * @property {Object} start\n * @property {Object} end\n * @property {undefined|String} source\n */\n function Position(start) {\n this.start = start;\n this.end = { line: lineno, column: column };\n this.source = options.source;\n }\n\n /**\n * Non-enumerable source string.\n */\n Position.prototype.content = style;\n\n var errorsList = [];\n\n /**\n * Error `msg`.\n *\n * @param {String} msg\n * @throws {Error}\n */\n function error(msg) {\n var err = new Error(\n options.source + ':' + lineno + ':' + column + ': ' + msg\n );\n err.reason = msg;\n err.filename = options.source;\n err.line = lineno;\n err.column = column;\n err.source = style;\n\n if (options.silent) {\n errorsList.push(err);\n } else {\n throw err;\n }\n }\n\n /**\n * Match `re` and return captures.\n *\n * @param {RegExp} re\n * @return {undefined|Array}\n */\n function match(re) {\n var m = re.exec(style);\n if (!m) return;\n var str = m[0];\n updatePosition(str);\n style = style.slice(str.length);\n return m;\n }\n\n /**\n * Parse whitespace.\n */\n function whitespace() {\n match(WHITESPACE_REGEX);\n }\n\n /**\n * Parse comments.\n *\n * @param {Object[]} [rules]\n * @return {Object[]}\n */\n function comments(rules) {\n var c;\n rules = rules || [];\n while ((c = comment())) {\n if (c !== false) {\n rules.push(c);\n }\n }\n return rules;\n }\n\n /**\n * Parse comment.\n *\n * @return {Object}\n * @throws {Error}\n */\n function comment() {\n var pos = position();\n if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;\n\n var i = 2;\n while (\n EMPTY_STRING != style.charAt(i) &&\n (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))\n ) {\n ++i;\n }\n i += 2;\n\n if (EMPTY_STRING === style.charAt(i - 1)) {\n return error('End of comment missing');\n }\n\n var str = style.slice(2, i - 2);\n column += 2;\n updatePosition(str);\n style = style.slice(i);\n column += 2;\n\n return pos({\n type: TYPE_COMMENT,\n comment: str\n });\n }\n\n /**\n * Parse declaration.\n *\n * @return {Object}\n * @throws {Error}\n */\n function declaration() {\n var pos = position();\n\n // prop\n var prop = match(PROPERTY_REGEX);\n if (!prop) return;\n comment();\n\n // :\n if (!match(COLON_REGEX)) return error(\"property missing ':'\");\n\n // val\n var val = match(VALUE_REGEX);\n\n var ret = pos({\n type: TYPE_DECLARATION,\n property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),\n value: val\n ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING))\n : EMPTY_STRING\n });\n\n // ;\n match(SEMICOLON_REGEX);\n\n return ret;\n }\n\n /**\n * Parse declarations.\n *\n * @return {Object[]}\n */\n function declarations() {\n var decls = [];\n\n comments(decls);\n\n // declarations\n var decl;\n while ((decl = declaration())) {\n if (decl !== false) {\n decls.push(decl);\n comments(decls);\n }\n }\n\n return decls;\n }\n\n whitespace();\n return declarations();\n};\n\n/**\n * Trim `str`.\n *\n * @param {String} str\n * @return {String}\n */\nfunction trim(str) {\n return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;\n}\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = StyleToObject;\nconst inline_style_parser_1 = __importDefault(require(\"inline-style-parser\"));\n/**\n * Parses inline style to object.\n *\n * @param style - Inline style.\n * @param iterator - Iterator.\n * @returns - Style object or null.\n *\n * @example Parsing inline style to object:\n *\n * ```js\n * import parse from 'style-to-object';\n * parse('line-height: 42;'); // { 'line-height': '42' }\n * ```\n */\nfunction StyleToObject(style, iterator) {\n let styleObject = null;\n if (!style || typeof style !== 'string') {\n return styleObject;\n }\n const declarations = (0, inline_style_parser_1.default)(style);\n const hasIterator = typeof iterator === 'function';\n declarations.forEach((declaration) => {\n if (declaration.type !== 'declaration') {\n return;\n }\n const { property, value } = declaration;\n if (hasIterator) {\n iterator(property, value, declaration);\n }\n else if (value) {\n styleObject = styleObject || {};\n styleObject[property] = value;\n }\n });\n return styleObject;\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.camelCase = void 0;\nvar CUSTOM_PROPERTY_REGEX = /^--[a-zA-Z0-9_-]+$/;\nvar HYPHEN_REGEX = /-([a-z])/g;\nvar NO_HYPHEN_REGEX = /^[^-]+$/;\nvar VENDOR_PREFIX_REGEX = /^-(webkit|moz|ms|o|khtml)-/;\nvar MS_VENDOR_PREFIX_REGEX = /^-(ms)-/;\n/**\n * Checks whether to skip camelCase.\n */\nvar skipCamelCase = function (property) {\n return !property ||\n NO_HYPHEN_REGEX.test(property) ||\n CUSTOM_PROPERTY_REGEX.test(property);\n};\n/**\n * Replacer that capitalizes first character.\n */\nvar capitalize = function (match, character) {\n return character.toUpperCase();\n};\n/**\n * Replacer that removes beginning hyphen of vendor prefix property.\n */\nvar trimHyphen = function (match, prefix) { return \"\".concat(prefix, \"-\"); };\n/**\n * CamelCases a CSS property.\n */\nvar camelCase = function (property, options) {\n if (options === void 0) { options = {}; }\n if (skipCamelCase(property)) {\n return property;\n }\n property = property.toLowerCase();\n if (options.reactCompat) {\n // `-ms` vendor prefix should not be capitalized\n property = property.replace(MS_VENDOR_PREFIX_REGEX, trimHyphen);\n }\n else {\n // for non-React, remove first hyphen so vendor prefix is not capitalized\n property = property.replace(VENDOR_PREFIX_REGEX, trimHyphen);\n }\n return property.replace(HYPHEN_REGEX, capitalize);\n};\nexports.camelCase = camelCase;\n//# sourceMappingURL=utilities.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar style_to_object_1 = __importDefault(require(\"style-to-object\"));\nvar utilities_1 = require(\"./utilities\");\n/**\n * Parses CSS inline style to JavaScript object (camelCased).\n */\nfunction StyleToJS(style, options) {\n var output = {};\n if (!style || typeof style !== 'string') {\n return output;\n }\n (0, style_to_object_1.default)(style, function (property, value) {\n // skip CSS comment\n if (property && value) {\n output[(0, utilities_1.camelCase)(property, options)] = value;\n }\n });\n return output;\n}\nStyleToJS.default = StyleToJS;\nmodule.exports = StyleToJS;\n//# sourceMappingURL=index.js.map","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n */\n\n/**\n * @typedef NodeLike\n * @property {string} type\n * @property {PositionLike | null | undefined} [position]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n */\n\n/**\n * Get the ending point of `node`.\n *\n * @param node\n * Node.\n * @returns\n * Point.\n */\nexport const pointEnd = point('end')\n\n/**\n * Get the starting point of `node`.\n *\n * @param node\n * Node.\n * @returns\n * Point.\n */\nexport const pointStart = point('start')\n\n/**\n * Get the positional info of `node`.\n *\n * @param {'end' | 'start'} type\n * Side.\n * @returns\n * Getter.\n */\nfunction point(type) {\n return point\n\n /**\n * Get the point info of `node` at a bound side.\n *\n * @param {Node | NodeLike | null | undefined} [node]\n * @returns {Point | undefined}\n */\n function point(node) {\n const point = (node && node.position && node.position[type]) || {}\n\n if (\n typeof point.line === 'number' &&\n point.line > 0 &&\n typeof point.column === 'number' &&\n point.column > 0\n ) {\n return {\n line: point.line,\n column: point.column,\n offset:\n typeof point.offset === 'number' && point.offset > -1\n ? point.offset\n : undefined\n }\n }\n }\n}\n\n/**\n * Get the positional info of `node`.\n *\n * @param {Node | NodeLike | null | undefined} [node]\n * Node.\n * @returns {Position | undefined}\n * Position.\n */\nexport function position(node) {\n const start = pointStart(node)\n const end = pointEnd(node)\n\n if (start && end) {\n return {start, end}\n }\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n */\n\n/**\n * @typedef NodeLike\n * @property {string} type\n * @property {PositionLike | null | undefined} [position]\n *\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n */\n\n/**\n * Serialize the positional info of a point, position (start and end points),\n * or node.\n *\n * @param {Node | NodeLike | Point | PointLike | Position | PositionLike | null | undefined} [value]\n * Node, position, or point.\n * @returns {string}\n * Pretty printed positional info of a node (`string`).\n *\n * In the format of a range `ls:cs-le:ce` (when given `node` or `position`)\n * or a point `l:c` (when given `point`), where `l` stands for line, `c` for\n * column, `s` for `start`, and `e` for end.\n * An empty string (`''`) is returned if the given value is neither `node`,\n * `position`, nor `point`.\n */\nexport function stringifyPosition(value) {\n // Nothing.\n if (!value || typeof value !== 'object') {\n return ''\n }\n\n // Node.\n if ('position' in value || 'type' in value) {\n return position(value.position)\n }\n\n // Position.\n if ('start' in value || 'end' in value) {\n return position(value)\n }\n\n // Point.\n if ('line' in value || 'column' in value) {\n return point(value)\n }\n\n // ?\n return ''\n}\n\n/**\n * @param {Point | PointLike | null | undefined} point\n * @returns {string}\n */\nfunction point(point) {\n return index(point && point.line) + ':' + index(point && point.column)\n}\n\n/**\n * @param {Position | PositionLike | null | undefined} pos\n * @returns {string}\n */\nfunction position(pos) {\n return point(pos && pos.start) + '-' + point(pos && pos.end)\n}\n\n/**\n * @param {number | null | undefined} value\n * @returns {number}\n */\nfunction index(value) {\n return value && typeof value === 'number' ? value : 1\n}\n","/**\n * @import {Node, Point, Position} from 'unist'\n */\n\n/**\n * @typedef {object & {type: string, position?: Position | undefined}} NodeLike\n *\n * @typedef Options\n * Configuration.\n * @property {Array<Node> | null | undefined} [ancestors]\n * Stack of (inclusive) ancestor nodes surrounding the message (optional).\n * @property {Error | null | undefined} [cause]\n * Original error cause of the message (optional).\n * @property {Point | Position | null | undefined} [place]\n * Place of message (optional).\n * @property {string | null | undefined} [ruleId]\n * Category of message (optional, example: `'my-rule'`).\n * @property {string | null | undefined} [source]\n * Namespace of who sent the message (optional, example: `'my-package'`).\n */\n\nimport {stringifyPosition} from 'unist-util-stringify-position'\n\n/**\n * Message.\n */\nexport class VFileMessage extends Error {\n /**\n * Create a message for `reason`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {Options | null | undefined} [options]\n * @returns\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | Options | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns\n * Instance of `VFileMessage`.\n */\n // eslint-disable-next-line complexity\n constructor(causeOrReason, optionsOrParentOrPlace, origin) {\n super()\n\n if (typeof optionsOrParentOrPlace === 'string') {\n origin = optionsOrParentOrPlace\n optionsOrParentOrPlace = undefined\n }\n\n /** @type {string} */\n let reason = ''\n /** @type {Options} */\n let options = {}\n let legacyCause = false\n\n if (optionsOrParentOrPlace) {\n // Point.\n if (\n 'line' in optionsOrParentOrPlace &&\n 'column' in optionsOrParentOrPlace\n ) {\n options = {place: optionsOrParentOrPlace}\n }\n // Position.\n else if (\n 'start' in optionsOrParentOrPlace &&\n 'end' in optionsOrParentOrPlace\n ) {\n options = {place: optionsOrParentOrPlace}\n }\n // Node.\n else if ('type' in optionsOrParentOrPlace) {\n options = {\n ancestors: [optionsOrParentOrPlace],\n place: optionsOrParentOrPlace.position\n }\n }\n // Options.\n else {\n options = {...optionsOrParentOrPlace}\n }\n }\n\n if (typeof causeOrReason === 'string') {\n reason = causeOrReason\n }\n // Error.\n else if (!options.cause && causeOrReason) {\n legacyCause = true\n reason = causeOrReason.message\n options.cause = causeOrReason\n }\n\n if (!options.ruleId && !options.source && typeof origin === 'string') {\n const index = origin.indexOf(':')\n\n if (index === -1) {\n options.ruleId = origin\n } else {\n options.source = origin.slice(0, index)\n options.ruleId = origin.slice(index + 1)\n }\n }\n\n if (!options.place && options.ancestors && options.ancestors) {\n const parent = options.ancestors[options.ancestors.length - 1]\n\n if (parent) {\n options.place = parent.position\n }\n }\n\n const start =\n options.place && 'start' in options.place\n ? options.place.start\n : options.place\n\n /**\n * Stack of ancestor nodes surrounding the message.\n *\n * @type {Array<Node> | undefined}\n */\n this.ancestors = options.ancestors || undefined\n\n /**\n * Original error cause of the message.\n *\n * @type {Error | undefined}\n */\n this.cause = options.cause || undefined\n\n /**\n * Starting column of message.\n *\n * @type {number | undefined}\n */\n this.column = start ? start.column : undefined\n\n /**\n * State of problem.\n *\n * * `true` — error, file not usable\n * * `false` — warning, change may be needed\n * * `undefined` — change likely not needed\n *\n * @type {boolean | null | undefined}\n */\n this.fatal = undefined\n\n /**\n * Path of a file (used throughout the `VFile` ecosystem).\n *\n * @type {string | undefined}\n */\n this.file = ''\n\n // Field from `Error`.\n /**\n * Reason for message.\n *\n * @type {string}\n */\n this.message = reason\n\n /**\n * Starting line of error.\n *\n * @type {number | undefined}\n */\n this.line = start ? start.line : undefined\n\n // Field from `Error`.\n /**\n * Serialized positional info of message.\n *\n * On normal errors, this would be something like `ParseError`, buit in\n * `VFile` messages we use this space to show where an error happened.\n */\n this.name = stringifyPosition(options.place) || '1:1'\n\n /**\n * Place of message.\n *\n * @type {Point | Position | undefined}\n */\n this.place = options.place || undefined\n\n /**\n * Reason for message, should use markdown.\n *\n * @type {string}\n */\n this.reason = this.message\n\n /**\n * Category of message (example: `'my-rule'`).\n *\n * @type {string | undefined}\n */\n this.ruleId = options.ruleId || undefined\n\n /**\n * Namespace of message (example: `'my-package'`).\n *\n * @type {string | undefined}\n */\n this.source = options.source || undefined\n\n // Field from `Error`.\n /**\n * Stack of message.\n *\n * This is used by normal errors to show where something happened in\n * programming code, irrelevant for `VFile` messages,\n *\n * @type {string}\n */\n this.stack =\n legacyCause && options.cause && typeof options.cause.stack === 'string'\n ? options.cause.stack\n : ''\n\n // The following fields are “well known”.\n // Not standard.\n // Feel free to add other non-standard fields to your messages.\n\n /**\n * Specify the source value that’s being reported, which is deemed\n * incorrect.\n *\n * @type {string | undefined}\n */\n this.actual = undefined\n\n /**\n * Suggest acceptable values that can be used instead of `actual`.\n *\n * @type {Array<string> | undefined}\n */\n this.expected = undefined\n\n /**\n * Long form description of the message (you should use markdown).\n *\n * @type {string | undefined}\n */\n this.note = undefined\n\n /**\n * Link to docs for the message.\n *\n * > 👉 **Note**: this must be an absolute URL that can be passed as `x`\n * > to `new URL(x)`.\n *\n * @type {string | undefined}\n */\n this.url = undefined\n }\n}\n\nVFileMessage.prototype.file = ''\nVFileMessage.prototype.name = ''\nVFileMessage.prototype.reason = ''\nVFileMessage.prototype.message = ''\nVFileMessage.prototype.stack = ''\nVFileMessage.prototype.column = undefined\nVFileMessage.prototype.line = undefined\nVFileMessage.prototype.ancestors = undefined\nVFileMessage.prototype.cause = undefined\nVFileMessage.prototype.fatal = undefined\nVFileMessage.prototype.place = undefined\nVFileMessage.prototype.ruleId = undefined\nVFileMessage.prototype.source = undefined\n","/**\n * @import {Identifier, Literal, MemberExpression} from 'estree'\n * @import {Jsx, JsxDev, Options, Props} from 'hast-util-to-jsx-runtime'\n * @import {Element, Nodes, Parents, Root, Text} from 'hast'\n * @import {MdxFlowExpressionHast, MdxTextExpressionHast} from 'mdast-util-mdx-expression'\n * @import {MdxJsxFlowElementHast, MdxJsxTextElementHast} from 'mdast-util-mdx-jsx'\n * @import {MdxjsEsmHast} from 'mdast-util-mdxjs-esm'\n * @import {Position} from 'unist'\n * @import {Child, Create, Field, JsxElement, State, Style} from './types.js'\n */\n\nimport {stringify as commas} from 'comma-separated-tokens'\nimport {ok as assert} from 'devlop'\nimport {name as isIdentifierName} from 'estree-util-is-identifier-name'\nimport {whitespace} from 'hast-util-whitespace'\nimport {find, hastToReact, html, svg} from 'property-information'\nimport {stringify as spaces} from 'space-separated-tokens'\nimport styleToJs from 'style-to-js'\nimport {pointStart} from 'unist-util-position'\nimport {VFileMessage} from 'vfile-message'\n\n// To do: next major: `Object.hasOwn`.\nconst own = {}.hasOwnProperty\n\n/** @type {Map<string, number>} */\nconst emptyMap = new Map()\n\nconst cap = /[A-Z]/g\n\n// `react-dom` triggers a warning for *any* white space in tables.\n// To follow GFM, `mdast-util-to-hast` injects line endings between elements.\n// Other tools might do so too, but they don’t do here, so we remove all of\n// that.\n\n// See: <https://github.com/facebook/react/pull/7081>.\n// See: <https://github.com/facebook/react/pull/7515>.\n// See: <https://github.com/remarkjs/remark-react/issues/64>.\n// See: <https://github.com/rehypejs/rehype-react/pull/29>.\n// See: <https://github.com/rehypejs/rehype-react/pull/32>.\n// See: <https://github.com/rehypejs/rehype-react/pull/45>.\nconst tableElements = new Set(['table', 'tbody', 'thead', 'tfoot', 'tr'])\n\nconst tableCellElement = new Set(['td', 'th'])\n\nconst docs = 'https://github.com/syntax-tree/hast-util-to-jsx-runtime'\n\n/**\n * Transform a hast tree to preact, react, solid, svelte, vue, etc.,\n * with an automatic JSX runtime.\n *\n * @param {Nodes} tree\n * Tree to transform.\n * @param {Options} options\n * Configuration (required).\n * @returns {JsxElement}\n * JSX element.\n */\n\nexport function toJsxRuntime(tree, options) {\n if (!options || options.Fragment === undefined) {\n throw new TypeError('Expected `Fragment` in options')\n }\n\n const filePath = options.filePath || undefined\n /** @type {Create} */\n let create\n\n if (options.development) {\n if (typeof options.jsxDEV !== 'function') {\n throw new TypeError(\n 'Expected `jsxDEV` in options when `development: true`'\n )\n }\n\n create = developmentCreate(filePath, options.jsxDEV)\n } else {\n if (typeof options.jsx !== 'function') {\n throw new TypeError('Expected `jsx` in production options')\n }\n\n if (typeof options.jsxs !== 'function') {\n throw new TypeError('Expected `jsxs` in production options')\n }\n\n create = productionCreate(filePath, options.jsx, options.jsxs)\n }\n\n /** @type {State} */\n const state = {\n Fragment: options.Fragment,\n ancestors: [],\n components: options.components || {},\n create,\n elementAttributeNameCase: options.elementAttributeNameCase || 'react',\n evaluater: options.createEvaluater ? options.createEvaluater() : undefined,\n filePath,\n ignoreInvalidStyle: options.ignoreInvalidStyle || false,\n passKeys: options.passKeys !== false,\n passNode: options.passNode || false,\n schema: options.space === 'svg' ? svg : html,\n stylePropertyNameCase: options.stylePropertyNameCase || 'dom',\n tableCellAlignToStyle: options.tableCellAlignToStyle !== false\n }\n\n const result = one(state, tree, undefined)\n\n // JSX element.\n if (result && typeof result !== 'string') {\n return result\n }\n\n // Text node or something that turned into nothing.\n return state.create(\n tree,\n state.Fragment,\n {children: result || undefined},\n undefined\n )\n}\n\n/**\n * Transform a node.\n *\n * @param {State} state\n * Info passed around.\n * @param {Nodes} node\n * Current node.\n * @param {string | undefined} key\n * Key.\n * @returns {Child | undefined}\n * Child, optional.\n */\nfunction one(state, node, key) {\n if (node.type === 'element') {\n return element(state, node, key)\n }\n\n if (node.type === 'mdxFlowExpression' || node.type === 'mdxTextExpression') {\n return mdxExpression(state, node)\n }\n\n if (node.type === 'mdxJsxFlowElement' || node.type === 'mdxJsxTextElement') {\n return mdxJsxElement(state, node, key)\n }\n\n if (node.type === 'mdxjsEsm') {\n return mdxEsm(state, node)\n }\n\n if (node.type === 'root') {\n return root(state, node, key)\n }\n\n if (node.type === 'text') {\n return text(state, node)\n }\n}\n\n/**\n * Handle element.\n *\n * @param {State} state\n * Info passed around.\n * @param {Element} node\n * Current node.\n * @param {string | undefined} key\n * Key.\n * @returns {Child | undefined}\n * Child, optional.\n */\nfunction element(state, node, key) {\n const parentSchema = state.schema\n let schema = parentSchema\n\n if (node.tagName.toLowerCase() === 'svg' && parentSchema.space === 'html') {\n schema = svg\n state.schema = schema\n }\n\n state.ancestors.push(node)\n\n const type = findComponentFromName(state, node.tagName, false)\n const props = createElementProps(state, node)\n let children = createChildren(state, node)\n\n if (tableElements.has(node.tagName)) {\n children = children.filter(function (child) {\n return typeof child === 'string' ? !whitespace(child) : true\n })\n }\n\n addNode(state, props, type, node)\n addChildren(props, children)\n\n // Restore.\n state.ancestors.pop()\n state.schema = parentSchema\n\n return state.create(node, type, props, key)\n}\n\n/**\n * Handle MDX expression.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdxFlowExpressionHast | MdxTextExpressionHast} node\n * Current node.\n * @returns {Child | undefined}\n * Child, optional.\n */\nfunction mdxExpression(state, node) {\n if (node.data && node.data.estree && state.evaluater) {\n const program = node.data.estree\n const expression = program.body[0]\n assert(expression.type === 'ExpressionStatement')\n\n // Assume result is a child.\n return /** @type {Child | undefined} */ (\n state.evaluater.evaluateExpression(expression.expression)\n )\n }\n\n crashEstree(state, node.position)\n}\n\n/**\n * Handle MDX ESM.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdxjsEsmHast} node\n * Current node.\n * @returns {Child | undefined}\n * Child, optional.\n */\nfunction mdxEsm(state, node) {\n if (node.data && node.data.estree && state.evaluater) {\n // Assume result is a child.\n return /** @type {Child | undefined} */ (\n state.evaluater.evaluateProgram(node.data.estree)\n )\n }\n\n crashEstree(state, node.position)\n}\n\n/**\n * Handle MDX JSX.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdxJsxFlowElementHast | MdxJsxTextElementHast} node\n * Current node.\n * @param {string | undefined} key\n * Key.\n * @returns {Child | undefined}\n * Child, optional.\n */\nfunction mdxJsxElement(state, node, key) {\n const parentSchema = state.schema\n let schema = parentSchema\n\n if (node.name === 'svg' && parentSchema.space === 'html') {\n schema = svg\n state.schema = schema\n }\n\n state.ancestors.push(node)\n\n const type =\n node.name === null\n ? state.Fragment\n : findComponentFromName(state, node.name, true)\n const props = createJsxElementProps(state, node)\n const children = createChildren(state, node)\n\n addNode(state, props, type, node)\n addChildren(props, children)\n\n // Restore.\n state.ancestors.pop()\n state.schema = parentSchema\n\n return state.create(node, type, props, key)\n}\n\n/**\n * Handle root.\n *\n * @param {State} state\n * Info passed around.\n * @param {Root} node\n * Current node.\n * @param {string | undefined} key\n * Key.\n * @returns {Child | undefined}\n * Child, optional.\n */\nfunction root(state, node, key) {\n /** @type {Props} */\n const props = {}\n\n addChildren(props, createChildren(state, node))\n\n return state.create(node, state.Fragment, props, key)\n}\n\n/**\n * Handle text.\n *\n * @param {State} _\n * Info passed around.\n * @param {Text} node\n * Current node.\n * @returns {Child | undefined}\n * Child, optional.\n */\nfunction text(_, node) {\n return node.value\n}\n\n/**\n * Add `node` to props.\n *\n * @param {State} state\n * Info passed around.\n * @param {Props} props\n * Props.\n * @param {unknown} type\n * Type.\n * @param {Element | MdxJsxFlowElementHast | MdxJsxTextElementHast} node\n * Node.\n * @returns {undefined}\n * Nothing.\n */\nfunction addNode(state, props, type, node) {\n // If this is swapped out for a component:\n if (typeof type !== 'string' && type !== state.Fragment && state.passNode) {\n props.node = node\n }\n}\n\n/**\n * Add children to props.\n *\n * @param {Props} props\n * Props.\n * @param {Array<Child>} children\n * Children.\n * @returns {undefined}\n * Nothing.\n */\nfunction addChildren(props, children) {\n if (children.length > 0) {\n const value = children.length > 1 ? children : children[0]\n\n if (value) {\n props.children = value\n }\n }\n}\n\n/**\n * @param {string | undefined} _\n * Path to file.\n * @param {Jsx} jsx\n * Dynamic.\n * @param {Jsx} jsxs\n * Static.\n * @returns {Create}\n * Create a production element.\n */\nfunction productionCreate(_, jsx, jsxs) {\n return create\n /** @type {Create} */\n function create(_, type, props, key) {\n // Only an array when there are 2 or more children.\n const isStaticChildren = Array.isArray(props.children)\n const fn = isStaticChildren ? jsxs : jsx\n return key ? fn(type, props, key) : fn(type, props)\n }\n}\n\n/**\n * @param {string | undefined} filePath\n * Path to file.\n * @param {JsxDev} jsxDEV\n * Development.\n * @returns {Create}\n * Create a development element.\n */\nfunction developmentCreate(filePath, jsxDEV) {\n return create\n /** @type {Create} */\n function create(node, type, props, key) {\n // Only an array when there are 2 or more children.\n const isStaticChildren = Array.isArray(props.children)\n const point = pointStart(node)\n return jsxDEV(\n type,\n props,\n key,\n isStaticChildren,\n {\n columnNumber: point ? point.column - 1 : undefined,\n fileName: filePath,\n lineNumber: point ? point.line : undefined\n },\n undefined\n )\n }\n}\n\n/**\n * Create props from an element.\n *\n * @param {State} state\n * Info passed around.\n * @param {Element} node\n * Current element.\n * @returns {Props}\n * Props.\n */\nfunction createElementProps(state, node) {\n /** @type {Props} */\n const props = {}\n /** @type {string | undefined} */\n let alignValue\n /** @type {string} */\n let prop\n\n for (prop in node.properties) {\n if (prop !== 'children' && own.call(node.properties, prop)) {\n const result = createProperty(state, prop, node.properties[prop])\n\n if (result) {\n const [key, value] = result\n\n if (\n state.tableCellAlignToStyle &&\n key === 'align' &&\n typeof value === 'string' &&\n tableCellElement.has(node.tagName)\n ) {\n alignValue = value\n } else {\n props[key] = value\n }\n }\n }\n }\n\n if (alignValue) {\n // Assume style is an object.\n const style = /** @type {Style} */ (props.style || (props.style = {}))\n style[state.stylePropertyNameCase === 'css' ? 'text-align' : 'textAlign'] =\n alignValue\n }\n\n return props\n}\n\n/**\n * Create props from a JSX element.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdxJsxFlowElementHast | MdxJsxTextElementHast} node\n * Current JSX element.\n * @returns {Props}\n * Props.\n */\nfunction createJsxElementProps(state, node) {\n /** @type {Props} */\n const props = {}\n\n for (const attribute of node.attributes) {\n if (attribute.type === 'mdxJsxExpressionAttribute') {\n if (attribute.data && attribute.data.estree && state.evaluater) {\n const program = attribute.data.estree\n const expression = program.body[0]\n assert(expression.type === 'ExpressionStatement')\n const objectExpression = expression.expression\n assert(objectExpression.type === 'ObjectExpression')\n const property = objectExpression.properties[0]\n assert(property.type === 'SpreadElement')\n\n Object.assign(\n props,\n state.evaluater.evaluateExpression(property.argument)\n )\n } else {\n crashEstree(state, node.position)\n }\n } else {\n // For JSX, the author is responsible of passing in the correct values.\n const name = attribute.name\n /** @type {unknown} */\n let value\n\n if (attribute.value && typeof attribute.value === 'object') {\n if (\n attribute.value.data &&\n attribute.value.data.estree &&\n state.evaluater\n ) {\n const program = attribute.value.data.estree\n const expression = program.body[0]\n assert(expression.type === 'ExpressionStatement')\n value = state.evaluater.evaluateExpression(expression.expression)\n } else {\n crashEstree(state, node.position)\n }\n } else {\n value = attribute.value === null ? true : attribute.value\n }\n\n // Assume a prop.\n props[name] = /** @type {Props[keyof Props]} */ (value)\n }\n }\n\n return props\n}\n\n/**\n * Create children.\n *\n * @param {State} state\n * Info passed around.\n * @param {Parents} node\n * Current element.\n * @returns {Array<Child>}\n * Children.\n */\nfunction createChildren(state, node) {\n /** @type {Array<Child>} */\n const children = []\n let index = -1\n /** @type {Map<string, number>} */\n // Note: test this when Solid doesn’t want to merge my upcoming PR.\n /* c8 ignore next */\n const countsByName = state.passKeys ? new Map() : emptyMap\n\n while (++index < node.children.length) {\n const child = node.children[index]\n /** @type {string | undefined} */\n let key\n\n if (state.passKeys) {\n const name =\n child.type === 'element'\n ? child.tagName\n : child.type === 'mdxJsxFlowElement' ||\n child.type === 'mdxJsxTextElement'\n ? child.name\n : undefined\n\n if (name) {\n const count = countsByName.get(name) || 0\n key = name + '-' + count\n countsByName.set(name, count + 1)\n }\n }\n\n const result = one(state, child, key)\n if (result !== undefined) children.push(result)\n }\n\n return children\n}\n\n/**\n * Handle a property.\n *\n * @param {State} state\n * Info passed around.\n * @param {string} prop\n * Key.\n * @param {Array<number | string> | boolean | number | string | null | undefined} value\n * hast property value.\n * @returns {Field | undefined}\n * Field for runtime, optional.\n */\nfunction createProperty(state, prop, value) {\n const info = find(state.schema, prop)\n\n // Ignore nullish and `NaN` values.\n if (\n value === null ||\n value === undefined ||\n (typeof value === 'number' && Number.isNaN(value))\n ) {\n return\n }\n\n if (Array.isArray(value)) {\n // Accept `array`.\n // Most props are space-separated.\n value = info.commaSeparated ? commas(value) : spaces(value)\n }\n\n // React only accepts `style` as object.\n if (info.property === 'style') {\n let styleObject =\n typeof value === 'object' ? value : parseStyle(state, String(value))\n\n if (state.stylePropertyNameCase === 'css') {\n styleObject = transformStylesToCssCasing(styleObject)\n }\n\n return ['style', styleObject]\n }\n\n return [\n state.elementAttributeNameCase === 'react' && info.space\n ? hastToReact[info.property] || info.property\n : info.attribute,\n value\n ]\n}\n\n/**\n * Parse a CSS declaration to an object.\n *\n * @param {State} state\n * Info passed around.\n * @param {string} value\n * CSS declarations.\n * @returns {Style}\n * Properties.\n * @throws\n * Throws `VFileMessage` when CSS cannot be parsed.\n */\nfunction parseStyle(state, value) {\n try {\n return styleToJs(value, {reactCompat: true})\n } catch (error) {\n if (state.ignoreInvalidStyle) {\n return {}\n }\n\n const cause = /** @type {Error} */ (error)\n const message = new VFileMessage('Cannot parse `style` attribute', {\n ancestors: state.ancestors,\n cause,\n ruleId: 'style',\n source: 'hast-util-to-jsx-runtime'\n })\n message.file = state.filePath || undefined\n message.url = docs + '#cannot-parse-style-attribute'\n\n throw message\n }\n}\n\n/**\n * Create a JSX name from a string.\n *\n * @param {State} state\n * To do.\n * @param {string} name\n * Name.\n * @param {boolean} allowExpression\n * Allow member expressions and identifiers.\n * @returns {unknown}\n * To do.\n */\nfunction findComponentFromName(state, name, allowExpression) {\n /** @type {Identifier | Literal | MemberExpression} */\n let result\n\n if (!allowExpression) {\n result = {type: 'Literal', value: name}\n } else if (name.includes('.')) {\n const identifiers = name.split('.')\n let index = -1\n /** @type {Identifier | Literal | MemberExpression | undefined} */\n let node\n\n while (++index < identifiers.length) {\n /** @type {Identifier | Literal} */\n const prop = isIdentifierName(identifiers[index])\n ? {type: 'Identifier', name: identifiers[index]}\n : {type: 'Literal', value: identifiers[index]}\n node = node\n ? {\n type: 'MemberExpression',\n object: node,\n property: prop,\n computed: Boolean(index && prop.type === 'Literal'),\n optional: false\n }\n : prop\n }\n\n assert(node, 'always a result')\n result = node\n } else {\n result =\n isIdentifierName(name) && !/^[a-z]/.test(name)\n ? {type: 'Identifier', name}\n : {type: 'Literal', value: name}\n }\n\n // Only literals can be passed in `components` currently.\n // No identifiers / member expressions.\n if (result.type === 'Literal') {\n const name = /** @type {string | number} */ (result.value)\n return own.call(state.components, name) ? state.components[name] : name\n }\n\n // Assume component.\n if (state.evaluater) {\n return state.evaluater.evaluateExpression(result)\n }\n\n crashEstree(state)\n}\n\n/**\n * @param {State} state\n * @param {Position | undefined} [place]\n * @returns {never}\n */\nfunction crashEstree(state, place) {\n const message = new VFileMessage(\n 'Cannot handle MDX estrees without `createEvaluater`',\n {\n ancestors: state.ancestors,\n place,\n ruleId: 'mdx-estree',\n source: 'hast-util-to-jsx-runtime'\n }\n )\n message.file = state.filePath || undefined\n message.url = docs + '#cannot-handle-mdx-estrees-without-createevaluater'\n\n throw message\n}\n\n/**\n * Transform a DOM casing style object to a CSS casing style object.\n *\n * @param {Style} domCasing\n * @returns {Style}\n */\nfunction transformStylesToCssCasing(domCasing) {\n /** @type {Style} */\n const cssCasing = {}\n /** @type {string} */\n let from\n\n for (from in domCasing) {\n if (own.call(domCasing, from)) {\n cssCasing[transformStyleToCssCasing(from)] = domCasing[from]\n }\n }\n\n return cssCasing\n}\n\n/**\n * Transform a DOM casing style field to a CSS casing style field.\n *\n * @param {string} from\n * @returns {string}\n */\nfunction transformStyleToCssCasing(from) {\n let to = from.replace(cap, toDash)\n // Handle `ms-xxx` -> `-ms-xxx`.\n if (to.slice(0, 3) === 'ms-') to = '-' + to\n return to\n}\n\n/**\n * Make `$0` dash cased.\n *\n * @param {string} $0\n * Capitalized ASCII leter.\n * @returns {string}\n * Dash and lower letter.\n */\nfunction toDash($0) {\n return '-' + $0.toLowerCase()\n}\n","/**\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast-util-to-jsx-runtime').Options} Options\n * @typedef {import('unified').Compiler<Root, JSX.Element>} Compiler\n * @typedef {import('unified').Processor<undefined, undefined, undefined, Root, JSX.Element>} Processor\n */\n\nimport {toJsxRuntime} from 'hast-util-to-jsx-runtime'\n\n/**\n * Turn HTML into preact, react, solid, svelte, vue, etc.\n *\n * @param {Options} options\n * Configuration (required).\n * @returns {undefined}\n * Nothing.\n */\nexport default function rehypeReact(options) {\n // @ts-expect-error: TypeScript doesn’t handle `this` well.\n // eslint-disable-next-line unicorn/no-this-assignment\n const self = /** @type {Processor} */ (this)\n\n self.compiler = compiler\n\n /** @type {Compiler} */\n function compiler(tree, file) {\n return toJsxRuntime(tree, {filePath: file.path, ...options})\n }\n}\n","export default function escapeStringRegexp(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when it’s always valid, and a `\\xnn` escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n}\n","/**\n * @import {Nodes, Parents, PhrasingContent, Root, Text} from 'mdast'\n * @import {BuildVisitor, Test, VisitorResult} from 'unist-util-visit-parents'\n */\n\n/**\n * @typedef RegExpMatchObject\n * Info on the match.\n * @property {number} index\n * The index of the search at which the result was found.\n * @property {string} input\n * A copy of the search string in the text node.\n * @property {[...Array<Parents>, Text]} stack\n * All ancestors of the text node, where the last node is the text itself.\n *\n * @typedef {RegExp | string} Find\n * Pattern to find.\n *\n * Strings are escaped and then turned into global expressions.\n *\n * @typedef {Array<FindAndReplaceTuple>} FindAndReplaceList\n * Several find and replaces, in array form.\n *\n * @typedef {[Find, Replace?]} FindAndReplaceTuple\n * Find and replace in tuple form.\n *\n * @typedef {ReplaceFunction | string | null | undefined} Replace\n * Thing to replace with.\n *\n * @callback ReplaceFunction\n * Callback called when a search matches.\n * @param {...any} parameters\n * The parameters are the result of corresponding search expression:\n *\n * * `value` (`string`) — whole match\n * * `...capture` (`Array<string>`) — matches from regex capture groups\n * * `match` (`RegExpMatchObject`) — info on the match\n * @returns {Array<PhrasingContent> | PhrasingContent | string | false | null | undefined}\n * Thing to replace with.\n *\n * * when `null`, `undefined`, `''`, remove the match\n * * …or when `false`, do not replace at all\n * * …or when `string`, replace with a text node of that value\n * * …or when `Node` or `Array<Node>`, replace with those nodes\n *\n * @typedef {[RegExp, ReplaceFunction]} Pair\n * Normalized find and replace.\n *\n * @typedef {Array<Pair>} Pairs\n * All find and replaced.\n *\n * @typedef Options\n * Configuration.\n * @property {Test | null | undefined} [ignore]\n * Test for which nodes to ignore (optional).\n */\n\nimport escape from 'escape-string-regexp'\nimport {visitParents} from 'unist-util-visit-parents'\nimport {convert} from 'unist-util-is'\n\n/**\n * Find patterns in a tree and replace them.\n *\n * The algorithm searches the tree in *preorder* for complete values in `Text`\n * nodes.\n * Partial matches are not supported.\n *\n * @param {Nodes} tree\n * Tree to change.\n * @param {FindAndReplaceList | FindAndReplaceTuple} list\n * Patterns to find.\n * @param {Options | null | undefined} [options]\n * Configuration (when `find` is not `Find`).\n * @returns {undefined}\n * Nothing.\n */\nexport function findAndReplace(tree, list, options) {\n const settings = options || {}\n const ignored = convert(settings.ignore || [])\n const pairs = toPairs(list)\n let pairIndex = -1\n\n while (++pairIndex < pairs.length) {\n visitParents(tree, 'text', visitor)\n }\n\n /** @type {BuildVisitor<Root, 'text'>} */\n function visitor(node, parents) {\n let index = -1\n /** @type {Parents | undefined} */\n let grandparent\n\n while (++index < parents.length) {\n const parent = parents[index]\n /** @type {Array<Nodes> | undefined} */\n const siblings = grandparent ? grandparent.children : undefined\n\n if (\n ignored(\n parent,\n siblings ? siblings.indexOf(parent) : undefined,\n grandparent\n )\n ) {\n return\n }\n\n grandparent = parent\n }\n\n if (grandparent) {\n return handler(node, parents)\n }\n }\n\n /**\n * Handle a text node which is not in an ignored parent.\n *\n * @param {Text} node\n * Text node.\n * @param {Array<Parents>} parents\n * Parents.\n * @returns {VisitorResult}\n * Result.\n */\n function handler(node, parents) {\n const parent = parents[parents.length - 1]\n const find = pairs[pairIndex][0]\n const replace = pairs[pairIndex][1]\n let start = 0\n /** @type {Array<Nodes>} */\n const siblings = parent.children\n const index = siblings.indexOf(node)\n let change = false\n /** @type {Array<PhrasingContent>} */\n let nodes = []\n\n find.lastIndex = 0\n\n let match = find.exec(node.value)\n\n while (match) {\n const position = match.index\n /** @type {RegExpMatchObject} */\n const matchObject = {\n index: match.index,\n input: match.input,\n stack: [...parents, node]\n }\n let value = replace(...match, matchObject)\n\n if (typeof value === 'string') {\n value = value.length > 0 ? {type: 'text', value} : undefined\n }\n\n // It wasn’t a match after all.\n if (value === false) {\n // False acts as if there was no match.\n // So we need to reset `lastIndex`, which currently being at the end of\n // the current match, to the beginning.\n find.lastIndex = position + 1\n } else {\n if (start !== position) {\n nodes.push({\n type: 'text',\n value: node.value.slice(start, position)\n })\n }\n\n if (Array.isArray(value)) {\n nodes.push(...value)\n } else if (value) {\n nodes.push(value)\n }\n\n start = position + match[0].length\n change = true\n }\n\n if (!find.global) {\n break\n }\n\n match = find.exec(node.value)\n }\n\n if (change) {\n if (start < node.value.length) {\n nodes.push({type: 'text', value: node.value.slice(start)})\n }\n\n parent.children.splice(index, 1, ...nodes)\n } else {\n nodes = [node]\n }\n\n return index + nodes.length\n }\n}\n\n/**\n * Turn a tuple or a list of tuples into pairs.\n *\n * @param {FindAndReplaceList | FindAndReplaceTuple} tupleOrList\n * Schema.\n * @returns {Pairs}\n * Clean pairs.\n */\nfunction toPairs(tupleOrList) {\n /** @type {Pairs} */\n const result = []\n\n if (!Array.isArray(tupleOrList)) {\n throw new TypeError('Expected find and replace tuple or list of tuples')\n }\n\n /** @type {FindAndReplaceList} */\n // @ts-expect-error: correct.\n const list =\n !tupleOrList[0] || Array.isArray(tupleOrList[0])\n ? tupleOrList\n : [tupleOrList]\n\n let index = -1\n\n while (++index < list.length) {\n const tuple = list[index]\n result.push([toExpression(tuple[0]), toFunction(tuple[1])])\n }\n\n return result\n}\n\n/**\n * Turn a find into an expression.\n *\n * @param {Find} find\n * Find.\n * @returns {RegExp}\n * Expression.\n */\nfunction toExpression(find) {\n return typeof find === 'string' ? new RegExp(escape(find), 'g') : find\n}\n\n/**\n * Turn a replace into a function.\n *\n * @param {Replace} replace\n * Replace.\n * @returns {ReplaceFunction}\n * Function.\n */\nfunction toFunction(replace) {\n return typeof replace === 'function'\n ? replace\n : function () {\n return replace\n }\n}\n","/**\n * @typedef {import('mdast').Nodes} Nodes\n * @typedef {import('mdast-util-find-and-replace').ReplaceFunction} ReplaceFunction\n */\n\nimport {findAndReplace} from 'mdast-util-find-and-replace'\n\n/**\n * Turn normal line endings into hard breaks.\n *\n * @param {Nodes} tree\n * Tree to change.\n * @returns {undefined}\n * Nothing.\n */\nexport function newlineToBreak(tree) {\n findAndReplace(tree, [/\\r?\\n|\\r/g, replace])\n}\n\n/**\n * Replace line endings.\n *\n * @type {ReplaceFunction}\n */\nfunction replace() {\n return {type: 'break'}\n}\n","/**\n * @typedef {import('mdast').Root} Root\n */\n\nimport {newlineToBreak} from 'mdast-util-newline-to-break'\n\n/**\n * Support hard breaks without needing spaces or escapes (turns enters into\n * `<br>`s).\n *\n * @returns\n * Transform.\n */\nexport default function remarkBreaks() {\n /**\n * Transform.\n *\n * @param {Root} tree\n * Tree.\n * @returns {undefined}\n * Nothing.\n */\n return function (tree) {\n newlineToBreak(tree)\n }\n}\n","/**\n * @typedef {import('mdast').Nodes} Nodes\n *\n * @typedef Options\n * Configuration (optional).\n * @property {boolean | null | undefined} [includeImageAlt=true]\n * Whether to use `alt` for `image`s (default: `true`).\n * @property {boolean | null | undefined} [includeHtml=true]\n * Whether to use `value` of HTML (default: `true`).\n */\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Get the text content of a node or list of nodes.\n *\n * Prefers the node’s plain-text fields, otherwise serializes its children,\n * and if the given value is an array, serialize the nodes in it.\n *\n * @param {unknown} [value]\n * Thing to serialize, typically `Node`.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {string}\n * Serialized `value`.\n */\nexport function toString(value, options) {\n const settings = options || emptyOptions\n const includeImageAlt =\n typeof settings.includeImageAlt === 'boolean'\n ? settings.includeImageAlt\n : true\n const includeHtml =\n typeof settings.includeHtml === 'boolean' ? settings.includeHtml : true\n\n return one(value, includeImageAlt, includeHtml)\n}\n\n/**\n * One node or several nodes.\n *\n * @param {unknown} value\n * Thing to serialize.\n * @param {boolean} includeImageAlt\n * Include image `alt`s.\n * @param {boolean} includeHtml\n * Include HTML.\n * @returns {string}\n * Serialized node.\n */\nfunction one(value, includeImageAlt, includeHtml) {\n if (node(value)) {\n if ('value' in value) {\n return value.type === 'html' && !includeHtml ? '' : value.value\n }\n\n if (includeImageAlt && 'alt' in value && value.alt) {\n return value.alt\n }\n\n if ('children' in value) {\n return all(value.children, includeImageAlt, includeHtml)\n }\n }\n\n if (Array.isArray(value)) {\n return all(value, includeImageAlt, includeHtml)\n }\n\n return ''\n}\n\n/**\n * Serialize a list of nodes.\n *\n * @param {Array<unknown>} values\n * Thing to serialize.\n * @param {boolean} includeImageAlt\n * Include image `alt`s.\n * @param {boolean} includeHtml\n * Include HTML.\n * @returns {string}\n * Serialized nodes.\n */\nfunction all(values, includeImageAlt, includeHtml) {\n /** @type {Array<string>} */\n const result = []\n let index = -1\n\n while (++index < values.length) {\n result[index] = one(values[index], includeImageAlt, includeHtml)\n }\n\n return result.join('')\n}\n\n/**\n * Check if `value` looks like a node.\n *\n * @param {unknown} value\n * Thing.\n * @returns {value is Nodes}\n * Whether `value` is a node.\n */\nfunction node(value) {\n return Boolean(value && typeof value === 'object')\n}\n","/// <reference lib=\"dom\" />\n\n/* global document */\n\nconst element = document.createElement('i')\n\n/**\n * @param {string} value\n * @returns {string | false}\n */\nexport function decodeNamedCharacterReference(value) {\n const characterReference = '&' + value + ';'\n element.innerHTML = characterReference\n const character = element.textContent\n\n // Some named character references do not require the closing semicolon\n // (`¬`, for instance), which leads to situations where parsing the assumed\n // named reference of `¬it;` will result in the string `¬it;`.\n // When we encounter a trailing semicolon after parsing, and the character\n // reference to decode was not a semicolon (`;`), we can assume that the\n // matching was not complete.\n if (\n // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n // yield `null`.\n character.charCodeAt(character.length - 1) === 59 /* `;` */ &&\n value !== 'semi'\n ) {\n return false\n }\n\n // If the decoded string is equal to the input, the character reference was\n // not valid.\n // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n // yield `null`.\n return character === characterReference ? false : character\n}\n","/**\n * Like `Array#splice`, but smarter for giant arrays.\n *\n * `Array#splice` takes all items to be inserted as individual argument which\n * causes a stack overflow in V8 when trying to insert 100k items for instance.\n *\n * Otherwise, this does not return the removed items, and takes `items` as an\n * array instead of rest parameters.\n *\n * @template {unknown} T\n * Item type.\n * @param {Array<T>} list\n * List to operate on.\n * @param {number} start\n * Index to remove/insert at (can be negative).\n * @param {number} remove\n * Number of items to remove.\n * @param {Array<T>} items\n * Items to inject into `list`.\n * @returns {undefined}\n * Nothing.\n */\nexport function splice(list, start, remove, items) {\n const end = list.length;\n let chunkStart = 0;\n /** @type {Array<unknown>} */\n let parameters;\n\n // Make start between zero and `end` (included).\n if (start < 0) {\n start = -start > end ? 0 : end + start;\n } else {\n start = start > end ? end : start;\n }\n remove = remove > 0 ? remove : 0;\n\n // No need to chunk the items if there’s only a couple (10k) items.\n if (items.length < 10000) {\n parameters = Array.from(items);\n parameters.unshift(start, remove);\n // @ts-expect-error Hush, it’s fine.\n list.splice(...parameters);\n } else {\n // Delete `remove` items starting from `start`\n if (remove) list.splice(start, remove);\n\n // Insert the items in chunks to not cause stack overflows.\n while (chunkStart < items.length) {\n parameters = items.slice(chunkStart, chunkStart + 10000);\n parameters.unshift(start, 0);\n // @ts-expect-error Hush, it’s fine.\n list.splice(...parameters);\n chunkStart += 10000;\n start += 10000;\n }\n }\n}\n\n/**\n * Append `items` (an array) at the end of `list` (another array).\n * When `list` was empty, returns `items` instead.\n *\n * This prevents a potentially expensive operation when `list` is empty,\n * and adds items in batches to prevent V8 from hanging.\n *\n * @template {unknown} T\n * Item type.\n * @param {Array<T>} list\n * List to operate on.\n * @param {Array<T>} items\n * Items to add to `list`.\n * @returns {Array<T>}\n * Either `list` or `items`.\n */\nexport function push(list, items) {\n if (list.length > 0) {\n splice(list, list.length, 0, items);\n return list;\n }\n return items;\n}","/**\n * @import {\n * Extension,\n * Handles,\n * HtmlExtension,\n * NormalizedExtension\n * } from 'micromark-util-types'\n */\n\nimport {splice} from 'micromark-util-chunked'\n\nconst hasOwnProperty = {}.hasOwnProperty\n\n/**\n * Combine multiple syntax extensions into one.\n *\n * @param {ReadonlyArray<Extension>} extensions\n * List of syntax extensions.\n * @returns {NormalizedExtension}\n * A single combined extension.\n */\nexport function combineExtensions(extensions) {\n /** @type {NormalizedExtension} */\n const all = {}\n let index = -1\n\n while (++index < extensions.length) {\n syntaxExtension(all, extensions[index])\n }\n\n return all\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {NormalizedExtension} all\n * Extension to merge into.\n * @param {Extension} extension\n * Extension to merge.\n * @returns {undefined}\n * Nothing.\n */\nfunction syntaxExtension(all, extension) {\n /** @type {keyof Extension} */\n let hook\n\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n /** @type {Record<string, unknown>} */\n const left = maybe || (all[hook] = {})\n /** @type {Record<string, unknown> | undefined} */\n const right = extension[hook]\n /** @type {string} */\n let code\n\n if (right) {\n for (code in right) {\n if (!hasOwnProperty.call(left, code)) left[code] = []\n const value = right[code]\n constructs(\n // @ts-expect-error Looks like a list.\n left[code],\n Array.isArray(value) ? value : value ? [value] : []\n )\n }\n }\n }\n}\n\n/**\n * Merge `list` into `existing` (both lists of constructs).\n * Mutates `existing`.\n *\n * @param {Array<unknown>} existing\n * List of constructs to merge into.\n * @param {Array<unknown>} list\n * List of constructs to merge.\n * @returns {undefined}\n * Nothing.\n */\nfunction constructs(existing, list) {\n let index = -1\n /** @type {Array<unknown>} */\n const before = []\n\n while (++index < list.length) {\n // @ts-expect-error Looks like an object.\n ;(list[index].add === 'after' ? existing : before).push(list[index])\n }\n\n splice(existing, 0, 0, before)\n}\n\n/**\n * Combine multiple HTML extensions into one.\n *\n * @param {ReadonlyArray<HtmlExtension>} htmlExtensions\n * List of HTML extensions.\n * @returns {HtmlExtension}\n * Single combined HTML extension.\n */\nexport function combineHtmlExtensions(htmlExtensions) {\n /** @type {HtmlExtension} */\n const handlers = {}\n let index = -1\n\n while (++index < htmlExtensions.length) {\n htmlExtension(handlers, htmlExtensions[index])\n }\n\n return handlers\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {HtmlExtension} all\n * Extension to merge into.\n * @param {HtmlExtension} extension\n * Extension to merge.\n * @returns {undefined}\n * Nothing.\n */\nfunction htmlExtension(all, extension) {\n /** @type {keyof HtmlExtension} */\n let hook\n\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n const left = maybe || (all[hook] = {})\n const right = extension[hook]\n /** @type {keyof Handles} */\n let type\n\n if (right) {\n for (type in right) {\n // @ts-expect-error assume document vs regular handler are managed correctly.\n left[type] = right[type]\n }\n }\n }\n}\n","/**\n * Turn the number (in string form as either hexa- or plain decimal) coming from\n * a numeric character reference into a character.\n *\n * Sort of like `String.fromCodePoint(Number.parseInt(value, base))`, but makes\n * non-characters and control characters safe.\n *\n * @param {string} value\n * Value to decode.\n * @param {number} base\n * Numeric base.\n * @returns {string}\n * Character.\n */\nexport function decodeNumericCharacterReference(value, base) {\n const code = Number.parseInt(value, base);\n if (\n // C0 except for HT, LF, FF, CR, space.\n code < 9 || code === 11 || code > 13 && code < 32 ||\n // Control character (DEL) of C0, and C1 controls.\n code > 126 && code < 160 ||\n // Lone high surrogates and low surrogates.\n code > 55_295 && code < 57_344 ||\n // Noncharacters.\n code > 64_975 && code < 65_008 || /* eslint-disable no-bitwise */\n (code & 65_535) === 65_535 || (code & 65_535) === 65_534 || /* eslint-enable no-bitwise */\n // Out of range\n code > 1_114_111) {\n return \"\\uFFFD\";\n }\n return String.fromCodePoint(code);\n}","/**\n * Normalize an identifier (as found in references, definitions).\n *\n * Collapses markdown whitespace, trim, and then lower- and uppercase.\n *\n * Some characters are considered “uppercase”, such as U+03F4 (`ϴ`), but if their\n * lowercase counterpart (U+03B8 (`θ`)) is uppercased will result in a different\n * uppercase character (U+0398 (`Θ`)).\n * So, to get a canonical form, we perform both lower- and uppercase.\n *\n * Using uppercase last makes sure keys will never interact with default\n * prototypal values (such as `constructor`): nothing in the prototype of\n * `Object` is uppercase.\n *\n * @param {string} value\n * Identifier to normalize.\n * @returns {string}\n * Normalized identifier.\n */\nexport function normalizeIdentifier(value) {\n return value\n // Collapse markdown whitespace.\n .replace(/[\\t\\n\\r ]+/g, \" \")\n // Trim.\n .replace(/^ | $/g, '')\n // Some characters are considered “uppercase”, but if their lowercase\n // counterpart is uppercased will result in a different uppercase\n // character.\n // Hence, to get that form, we perform both lower- and uppercase.\n // Upper case makes sure keys will not interact with default prototypal\n // methods: no method is uppercase.\n .toLowerCase().toUpperCase();\n}","/**\n * @import {Code} from 'micromark-util-types'\n */\n\n/**\n * Check whether the character code represents an ASCII alpha (`a` through `z`,\n * case insensitive).\n *\n * An **ASCII alpha** is an ASCII upper alpha or ASCII lower alpha.\n *\n * An **ASCII upper alpha** is a character in the inclusive range U+0041 (`A`)\n * to U+005A (`Z`).\n *\n * An **ASCII lower alpha** is a character in the inclusive range U+0061 (`a`)\n * to U+007A (`z`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiAlpha = regexCheck(/[A-Za-z]/);\n\n/**\n * Check whether the character code represents an ASCII alphanumeric (`a`\n * through `z`, case insensitive, or `0` through `9`).\n *\n * An **ASCII alphanumeric** is an ASCII digit (see `asciiDigit`) or ASCII alpha\n * (see `asciiAlpha`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/);\n\n/**\n * Check whether the character code represents an ASCII atext.\n *\n * atext is an ASCII alphanumeric (see `asciiAlphanumeric`), or a character in\n * the inclusive ranges U+0023 NUMBER SIGN (`#`) to U+0027 APOSTROPHE (`'`),\n * U+002A ASTERISK (`*`), U+002B PLUS SIGN (`+`), U+002D DASH (`-`), U+002F\n * SLASH (`/`), U+003D EQUALS TO (`=`), U+003F QUESTION MARK (`?`), U+005E\n * CARET (`^`) to U+0060 GRAVE ACCENT (`` ` ``), or U+007B LEFT CURLY BRACE\n * (`{`) to U+007E TILDE (`~`).\n *\n * See:\n * **\\[RFC5322]**:\n * [Internet Message Format](https://tools.ietf.org/html/rfc5322).\n * P. Resnick.\n * IETF.\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/);\n\n/**\n * Check whether a character code is an ASCII control character.\n *\n * An **ASCII control** is a character in the inclusive range U+0000 NULL (NUL)\n * to U+001F (US), or U+007F (DEL).\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function asciiControl(code) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code !== null && (code < 32 || code === 127)\n );\n}\n\n/**\n * Check whether the character code represents an ASCII digit (`0` through `9`).\n *\n * An **ASCII digit** is a character in the inclusive range U+0030 (`0`) to\n * U+0039 (`9`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiDigit = regexCheck(/\\d/);\n\n/**\n * Check whether the character code represents an ASCII hex digit (`a` through\n * `f`, case insensitive, or `0` through `9`).\n *\n * An **ASCII hex digit** is an ASCII digit (see `asciiDigit`), ASCII upper hex\n * digit, or an ASCII lower hex digit.\n *\n * An **ASCII upper hex digit** is a character in the inclusive range U+0041\n * (`A`) to U+0046 (`F`).\n *\n * An **ASCII lower hex digit** is a character in the inclusive range U+0061\n * (`a`) to U+0066 (`f`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiHexDigit = regexCheck(/[\\dA-Fa-f]/);\n\n/**\n * Check whether the character code represents ASCII punctuation.\n *\n * An **ASCII punctuation** is a character in the inclusive ranges U+0021\n * EXCLAMATION MARK (`!`) to U+002F SLASH (`/`), U+003A COLON (`:`) to U+0040 AT\n * SIGN (`@`), U+005B LEFT SQUARE BRACKET (`[`) to U+0060 GRAVE ACCENT\n * (`` ` ``), or U+007B LEFT CURLY BRACE (`{`) to U+007E TILDE (`~`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/);\n\n/**\n * Check whether a character code is a markdown line ending.\n *\n * A **markdown line ending** is the virtual characters M-0003 CARRIAGE RETURN\n * LINE FEED (CRLF), M-0004 LINE FEED (LF) and M-0005 CARRIAGE RETURN (CR).\n *\n * In micromark, the actual character U+000A LINE FEED (LF) and U+000D CARRIAGE\n * RETURN (CR) are replaced by these virtual characters depending on whether\n * they occurred together.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownLineEnding(code) {\n return code !== null && code < -2;\n}\n\n/**\n * Check whether a character code is a markdown line ending (see\n * `markdownLineEnding`) or markdown space (see `markdownSpace`).\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownLineEndingOrSpace(code) {\n return code !== null && (code < 0 || code === 32);\n}\n\n/**\n * Check whether a character code is a markdown space.\n *\n * A **markdown space** is the concrete character U+0020 SPACE (SP) and the\n * virtual characters M-0001 VIRTUAL SPACE (VS) and M-0002 HORIZONTAL TAB (HT).\n *\n * In micromark, the actual character U+0009 CHARACTER TABULATION (HT) is\n * replaced by one M-0002 HORIZONTAL TAB (HT) and between 0 and 3 M-0001 VIRTUAL\n * SPACE (VS) characters, depending on the column at which the tab occurred.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownSpace(code) {\n return code === -2 || code === -1 || code === 32;\n}\n\n// Size note: removing ASCII from the regex and using `asciiPunctuation` here\n// In fact adds to the bundle size.\n/**\n * Check whether the character code represents Unicode punctuation.\n *\n * A **Unicode punctuation** is a character in the Unicode `Pc` (Punctuation,\n * Connector), `Pd` (Punctuation, Dash), `Pe` (Punctuation, Close), `Pf`\n * (Punctuation, Final quote), `Pi` (Punctuation, Initial quote), `Po`\n * (Punctuation, Other), or `Ps` (Punctuation, Open) categories, or an ASCII\n * punctuation (see `asciiPunctuation`).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const unicodePunctuation = regexCheck(/\\p{P}|\\p{S}/u);\n\n/**\n * Check whether the character code represents Unicode whitespace.\n *\n * Note that this does handle micromark specific markdown whitespace characters.\n * See `markdownLineEndingOrSpace` to check that.\n *\n * A **Unicode whitespace** is a character in the Unicode `Zs` (Separator,\n * Space) category, or U+0009 CHARACTER TABULATION (HT), U+000A LINE FEED (LF),\n * U+000C (FF), or U+000D CARRIAGE RETURN (CR) (**\\[UNICODE]**).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const unicodeWhitespace = regexCheck(/\\s/);\n\n/**\n * Create a code check from a regex.\n *\n * @param {RegExp} regex\n * Expression.\n * @returns {(code: Code) => boolean}\n * Check.\n */\nfunction regexCheck(regex) {\n return check;\n\n /**\n * Check whether a code matches the bound regex.\n *\n * @param {Code} code\n * Character code.\n * @returns {boolean}\n * Whether the character code matches the bound regex.\n */\n function check(code) {\n return code !== null && code > -1 && regex.test(String.fromCharCode(code));\n }\n}","import { asciiAlphanumeric } from 'micromark-util-character';\nimport { encode } from 'micromark-util-encode';\n/**\n * Make a value safe for injection as a URL.\n *\n * This encodes unsafe characters with percent-encoding and skips already\n * encoded sequences (see `normalizeUri`).\n * Further unsafe characters are encoded as character references (see\n * `micromark-util-encode`).\n *\n * A regex of allowed protocols can be given, in which case the URL is\n * sanitized.\n * For example, `/^(https?|ircs?|mailto|xmpp)$/i` can be used for `a[href]`, or\n * `/^https?$/i` for `img[src]` (this is what `github.com` allows).\n * If the URL includes an unknown protocol (one not matched by `protocol`, such\n * as a dangerous example, `javascript:`), the value is ignored.\n *\n * @param {string | null | undefined} url\n * URI to sanitize.\n * @param {RegExp | null | undefined} [protocol]\n * Allowed protocols.\n * @returns {string}\n * Sanitized URI.\n */\nexport function sanitizeUri(url, protocol) {\n const value = encode(normalizeUri(url || ''));\n if (!protocol) {\n return value;\n }\n const colon = value.indexOf(':');\n const questionMark = value.indexOf('?');\n const numberSign = value.indexOf('#');\n const slash = value.indexOf('/');\n if (\n // If there is no protocol, it’s relative.\n colon < 0 ||\n // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.\n slash > -1 && colon > slash || questionMark > -1 && colon > questionMark || numberSign > -1 && colon > numberSign ||\n // It is a protocol, it should be allowed.\n protocol.test(value.slice(0, colon))) {\n return value;\n }\n return '';\n}\n\n/**\n * Normalize a URL.\n *\n * Encode unsafe characters with percent-encoding, skipping already encoded\n * sequences.\n *\n * @param {string} value\n * URI to normalize.\n * @returns {string}\n * Normalized URI.\n */\nexport function normalizeUri(value) {\n /** @type {Array<string>} */\n const result = [];\n let index = -1;\n let start = 0;\n let skip = 0;\n while (++index < value.length) {\n const code = value.charCodeAt(index);\n /** @type {string} */\n let replace = '';\n\n // A correct percent encoded value.\n if (code === 37 && asciiAlphanumeric(value.charCodeAt(index + 1)) && asciiAlphanumeric(value.charCodeAt(index + 2))) {\n skip = 2;\n }\n // ASCII.\n else if (code < 128) {\n if (!/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(code))) {\n replace = String.fromCharCode(code);\n }\n }\n // Astral.\n else if (code > 55_295 && code < 57_344) {\n const next = value.charCodeAt(index + 1);\n\n // A correct surrogate pair.\n if (code < 56_320 && next > 56_319 && next < 57_344) {\n replace = String.fromCharCode(code, next);\n skip = 1;\n }\n // Lone surrogate.\n else {\n replace = \"\\uFFFD\";\n }\n }\n // Unicode.\n else {\n replace = String.fromCharCode(code);\n }\n if (replace) {\n result.push(value.slice(start, index), encodeURIComponent(replace));\n start = index + skip + 1;\n replace = '';\n }\n if (skip) {\n index += skip;\n skip = 0;\n }\n }\n return result.join('') + value.slice(start);\n}","/**\n * @import {Effects, State, TokenType} from 'micromark-util-types'\n */\n\nimport { markdownSpace } from 'micromark-util-character';\n\n// To do: implement `spaceOrTab`, `spaceOrTabMinMax`, `spaceOrTabWithOptions`.\n\n/**\n * Parse spaces and tabs.\n *\n * There is no `nok` parameter:\n *\n * * spaces in markdown are often optional, in which case this factory can be\n * used and `ok` will be switched to whether spaces were found or not\n * * one line ending or space can be detected with `markdownSpace(code)` right\n * before using `factorySpace`\n *\n * ###### Examples\n *\n * Where `␉` represents a tab (plus how much it expands) and `␠` represents a\n * single space.\n *\n * ```markdown\n * ␉\n * ␠␠␠␠\n * ␉␠\n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {TokenType} type\n * Type (`' \\t'`).\n * @param {number | undefined} [max=Infinity]\n * Max (exclusive).\n * @returns {State}\n * Start state.\n */\nexport function factorySpace(effects, ok, type, max) {\n const limit = max ? max - 1 : Number.POSITIVE_INFINITY;\n let size = 0;\n return start;\n\n /** @type {State} */\n function start(code) {\n if (markdownSpace(code)) {\n effects.enter(type);\n return prefix(code);\n }\n return ok(code);\n }\n\n /** @type {State} */\n function prefix(code) {\n if (markdownSpace(code) && size++ < limit) {\n effects.consume(code);\n return prefix;\n }\n effects.exit(type);\n return ok(code);\n }\n}","/**\n * @import {\n * InitialConstruct,\n * Initializer,\n * State,\n * TokenizeContext,\n * Token\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {InitialConstruct} */\nexport const content = {\n tokenize: initializeContent\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Initializer}\n * Content.\n */\nfunction initializeContent(effects) {\n const contentStart = effects.attempt(this.parser.constructs.contentInitial, afterContentStartConstruct, paragraphInitial);\n /** @type {Token} */\n let previous;\n return contentStart;\n\n /** @type {State} */\n function afterContentStartConstruct(code) {\n if (code === null) {\n effects.consume(code);\n return;\n }\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return factorySpace(effects, contentStart, \"linePrefix\");\n }\n\n /** @type {State} */\n function paragraphInitial(code) {\n effects.enter(\"paragraph\");\n return lineStart(code);\n }\n\n /** @type {State} */\n function lineStart(code) {\n const token = effects.enter(\"chunkText\", {\n contentType: \"text\",\n previous\n });\n if (previous) {\n previous.next = token;\n }\n previous = token;\n return data(code);\n }\n\n /** @type {State} */\n function data(code) {\n if (code === null) {\n effects.exit(\"chunkText\");\n effects.exit(\"paragraph\");\n effects.consume(code);\n return;\n }\n if (markdownLineEnding(code)) {\n effects.consume(code);\n effects.exit(\"chunkText\");\n return lineStart;\n }\n\n // Data.\n effects.consume(code);\n return data;\n }\n}","/**\n * @import {\n * Construct,\n * ContainerState,\n * InitialConstruct,\n * Initializer,\n * Point,\n * State,\n * TokenizeContext,\n * Tokenizer,\n * Token\n * } from 'micromark-util-types'\n */\n\n/**\n * @typedef {[Construct, ContainerState]} StackItem\n * Construct and its state.\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\nimport { splice } from 'micromark-util-chunked';\n/** @type {InitialConstruct} */\nexport const document = {\n tokenize: initializeDocument\n};\n\n/** @type {Construct} */\nconst containerConstruct = {\n tokenize: tokenizeContainer\n};\n\n/**\n * @this {TokenizeContext}\n * Self.\n * @type {Initializer}\n * Initializer.\n */\nfunction initializeDocument(effects) {\n const self = this;\n /** @type {Array<StackItem>} */\n const stack = [];\n let continued = 0;\n /** @type {TokenizeContext | undefined} */\n let childFlow;\n /** @type {Token | undefined} */\n let childToken;\n /** @type {number} */\n let lineStartOffset;\n return start;\n\n /** @type {State} */\n function start(code) {\n // First we iterate through the open blocks, starting with the root\n // document, and descending through last children down to the last open\n // block.\n // Each block imposes a condition that the line must satisfy if the block is\n // to remain open.\n // For example, a block quote requires a `>` character.\n // A paragraph requires a non-blank line.\n // In this phase we may match all or just some of the open blocks.\n // But we cannot close unmatched blocks yet, because we may have a lazy\n // continuation line.\n if (continued < stack.length) {\n const item = stack[continued];\n self.containerState = item[1];\n return effects.attempt(item[0].continuation, documentContinue, checkNewContainers)(code);\n }\n\n // Done.\n return checkNewContainers(code);\n }\n\n /** @type {State} */\n function documentContinue(code) {\n continued++;\n\n // Note: this field is called `_closeFlow` but it also closes containers.\n // Perhaps a good idea to rename it but it’s already used in the wild by\n // extensions.\n if (self.containerState._closeFlow) {\n self.containerState._closeFlow = undefined;\n if (childFlow) {\n closeFlow();\n }\n\n // Note: this algorithm for moving events around is similar to the\n // algorithm when dealing with lazy lines in `writeToChild`.\n const indexBeforeExits = self.events.length;\n let indexBeforeFlow = indexBeforeExits;\n /** @type {Point | undefined} */\n let point;\n\n // Find the flow chunk.\n while (indexBeforeFlow--) {\n if (self.events[indexBeforeFlow][0] === 'exit' && self.events[indexBeforeFlow][1].type === \"chunkFlow\") {\n point = self.events[indexBeforeFlow][1].end;\n break;\n }\n }\n exitContainers(continued);\n\n // Fix positions.\n let index = indexBeforeExits;\n while (index < self.events.length) {\n self.events[index][1].end = {\n ...point\n };\n index++;\n }\n\n // Inject the exits earlier (they’re still also at the end).\n splice(self.events, indexBeforeFlow + 1, 0, self.events.slice(indexBeforeExits));\n\n // Discard the duplicate exits.\n self.events.length = index;\n return checkNewContainers(code);\n }\n return start(code);\n }\n\n /** @type {State} */\n function checkNewContainers(code) {\n // Next, after consuming the continuation markers for existing blocks, we\n // look for new block starts (e.g. `>` for a block quote).\n // If we encounter a new block start, we close any blocks unmatched in\n // step 1 before creating the new block as a child of the last matched\n // block.\n if (continued === stack.length) {\n // No need to `check` whether there’s a container, of `exitContainers`\n // would be moot.\n // We can instead immediately `attempt` to parse one.\n if (!childFlow) {\n return documentContinued(code);\n }\n\n // If we have concrete content, such as block HTML or fenced code,\n // we can’t have containers “pierce” into them, so we can immediately\n // start.\n if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) {\n return flowStart(code);\n }\n\n // If we do have flow, it could still be a blank line,\n // but we’d be interrupting it w/ a new container if there’s a current\n // construct.\n // To do: next major: remove `_gfmTableDynamicInterruptHack` (no longer\n // needed in micromark-extension-gfm-table@1.0.6).\n self.interrupt = Boolean(childFlow.currentConstruct && !childFlow._gfmTableDynamicInterruptHack);\n }\n\n // Check if there is a new container.\n self.containerState = {};\n return effects.check(containerConstruct, thereIsANewContainer, thereIsNoNewContainer)(code);\n }\n\n /** @type {State} */\n function thereIsANewContainer(code) {\n if (childFlow) closeFlow();\n exitContainers(continued);\n return documentContinued(code);\n }\n\n /** @type {State} */\n function thereIsNoNewContainer(code) {\n self.parser.lazy[self.now().line] = continued !== stack.length;\n lineStartOffset = self.now().offset;\n return flowStart(code);\n }\n\n /** @type {State} */\n function documentContinued(code) {\n // Try new containers.\n self.containerState = {};\n return effects.attempt(containerConstruct, containerContinue, flowStart)(code);\n }\n\n /** @type {State} */\n function containerContinue(code) {\n continued++;\n stack.push([self.currentConstruct, self.containerState]);\n // Try another.\n return documentContinued(code);\n }\n\n /** @type {State} */\n function flowStart(code) {\n if (code === null) {\n if (childFlow) closeFlow();\n exitContainers(0);\n effects.consume(code);\n return;\n }\n childFlow = childFlow || self.parser.flow(self.now());\n effects.enter(\"chunkFlow\", {\n _tokenizer: childFlow,\n contentType: \"flow\",\n previous: childToken\n });\n return flowContinue(code);\n }\n\n /** @type {State} */\n function flowContinue(code) {\n if (code === null) {\n writeToChild(effects.exit(\"chunkFlow\"), true);\n exitContainers(0);\n effects.consume(code);\n return;\n }\n if (markdownLineEnding(code)) {\n effects.consume(code);\n writeToChild(effects.exit(\"chunkFlow\"));\n // Get ready for the next line.\n continued = 0;\n self.interrupt = undefined;\n return start;\n }\n effects.consume(code);\n return flowContinue;\n }\n\n /**\n * @param {Token} token\n * Token.\n * @param {boolean | undefined} [endOfFile]\n * Whether the token is at the end of the file (default: `false`).\n * @returns {undefined}\n * Nothing.\n */\n function writeToChild(token, endOfFile) {\n const stream = self.sliceStream(token);\n if (endOfFile) stream.push(null);\n token.previous = childToken;\n if (childToken) childToken.next = token;\n childToken = token;\n childFlow.defineSkip(token.start);\n childFlow.write(stream);\n\n // Alright, so we just added a lazy line:\n //\n // ```markdown\n // > a\n // b.\n //\n // Or:\n //\n // > ~~~c\n // d\n //\n // Or:\n //\n // > | e |\n // f\n // ```\n //\n // The construct in the second example (fenced code) does not accept lazy\n // lines, so it marked itself as done at the end of its first line, and\n // then the content construct parses `d`.\n // Most constructs in markdown match on the first line: if the first line\n // forms a construct, a non-lazy line can’t “unmake” it.\n //\n // The construct in the third example is potentially a GFM table, and\n // those are *weird*.\n // It *could* be a table, from the first line, if the following line\n // matches a condition.\n // In this case, that second line is lazy, which “unmakes” the first line\n // and turns the whole into one content block.\n //\n // We’ve now parsed the non-lazy and the lazy line, and can figure out\n // whether the lazy line started a new flow block.\n // If it did, we exit the current containers between the two flow blocks.\n if (self.parser.lazy[token.start.line]) {\n let index = childFlow.events.length;\n while (index--) {\n if (\n // The token starts before the line ending…\n childFlow.events[index][1].start.offset < lineStartOffset && (\n // …and either is not ended yet…\n !childFlow.events[index][1].end ||\n // …or ends after it.\n childFlow.events[index][1].end.offset > lineStartOffset)) {\n // Exit: there’s still something open, which means it’s a lazy line\n // part of something.\n return;\n }\n }\n\n // Note: this algorithm for moving events around is similar to the\n // algorithm when closing flow in `documentContinue`.\n const indexBeforeExits = self.events.length;\n let indexBeforeFlow = indexBeforeExits;\n /** @type {boolean | undefined} */\n let seen;\n /** @type {Point | undefined} */\n let point;\n\n // Find the previous chunk (the one before the lazy line).\n while (indexBeforeFlow--) {\n if (self.events[indexBeforeFlow][0] === 'exit' && self.events[indexBeforeFlow][1].type === \"chunkFlow\") {\n if (seen) {\n point = self.events[indexBeforeFlow][1].end;\n break;\n }\n seen = true;\n }\n }\n exitContainers(continued);\n\n // Fix positions.\n index = indexBeforeExits;\n while (index < self.events.length) {\n self.events[index][1].end = {\n ...point\n };\n index++;\n }\n\n // Inject the exits earlier (they’re still also at the end).\n splice(self.events, indexBeforeFlow + 1, 0, self.events.slice(indexBeforeExits));\n\n // Discard the duplicate exits.\n self.events.length = index;\n }\n }\n\n /**\n * @param {number} size\n * Size.\n * @returns {undefined}\n * Nothing.\n */\n function exitContainers(size) {\n let index = stack.length;\n\n // Exit open containers.\n while (index-- > size) {\n const entry = stack[index];\n self.containerState = entry[1];\n entry[0].exit.call(self, effects);\n }\n stack.length = size;\n }\n function closeFlow() {\n childFlow.write([null]);\n childToken = undefined;\n childFlow = undefined;\n self.containerState._closeFlow = undefined;\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n * Tokenizer.\n */\nfunction tokenizeContainer(effects, ok, nok) {\n // Always populated by defaults.\n\n return factorySpace(effects, effects.attempt(this.parser.constructs.document, ok, nok), \"linePrefix\", this.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4);\n}","/**\n * @import {Code} from 'micromark-util-types'\n */\n\nimport { markdownLineEndingOrSpace, unicodePunctuation, unicodeWhitespace } from 'micromark-util-character';\n/**\n * Classify whether a code represents whitespace, punctuation, or something\n * else.\n *\n * Used for attention (emphasis, strong), whose sequences can open or close\n * based on the class of surrounding characters.\n *\n * > 👉 **Note**: eof (`null`) is seen as whitespace.\n *\n * @param {Code} code\n * Code.\n * @returns {typeof constants.characterGroupWhitespace | typeof constants.characterGroupPunctuation | undefined}\n * Group.\n */\nexport function classifyCharacter(code) {\n if (code === null || markdownLineEndingOrSpace(code) || unicodeWhitespace(code)) {\n return 1;\n }\n if (unicodePunctuation(code)) {\n return 2;\n }\n}","/**\n * @import {Event, Resolver, TokenizeContext} from 'micromark-util-types'\n */\n\n/**\n * Call all `resolveAll`s.\n *\n * @param {ReadonlyArray<{resolveAll?: Resolver | undefined}>} constructs\n * List of constructs, optionally with `resolveAll`s.\n * @param {Array<Event>} events\n * List of events.\n * @param {TokenizeContext} context\n * Context used by `tokenize`.\n * @returns {Array<Event>}\n * Changed events.\n */\nexport function resolveAll(constructs, events, context) {\n /** @type {Array<Resolver>} */\n const called = []\n let index = -1\n\n while (++index < constructs.length) {\n const resolve = constructs[index].resolveAll\n\n if (resolve && !called.includes(resolve)) {\n events = resolve(events, context)\n called.push(resolve)\n }\n }\n\n return events\n}\n","/**\n * @import {\n * Code,\n * Construct,\n * Event,\n * Point,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer,\n * Token\n * } from 'micromark-util-types'\n */\n\nimport { push, splice } from 'micromark-util-chunked';\nimport { classifyCharacter } from 'micromark-util-classify-character';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/** @type {Construct} */\nexport const attention = {\n name: 'attention',\n resolveAll: resolveAllAttention,\n tokenize: tokenizeAttention\n};\n\n/**\n * Take all events and resolve attention to emphasis or strong.\n *\n * @type {Resolver}\n */\n// eslint-disable-next-line complexity\nfunction resolveAllAttention(events, context) {\n let index = -1;\n /** @type {number} */\n let open;\n /** @type {Token} */\n let group;\n /** @type {Token} */\n let text;\n /** @type {Token} */\n let openingSequence;\n /** @type {Token} */\n let closingSequence;\n /** @type {number} */\n let use;\n /** @type {Array<Event>} */\n let nextEvents;\n /** @type {number} */\n let offset;\n\n // Walk through all events.\n //\n // Note: performance of this is fine on an mb of normal markdown, but it’s\n // a bottleneck for malicious stuff.\n while (++index < events.length) {\n // Find a token that can close.\n if (events[index][0] === 'enter' && events[index][1].type === 'attentionSequence' && events[index][1]._close) {\n open = index;\n\n // Now walk back to find an opener.\n while (open--) {\n // Find a token that can open the closer.\n if (events[open][0] === 'exit' && events[open][1].type === 'attentionSequence' && events[open][1]._open &&\n // If the markers are the same:\n context.sliceSerialize(events[open][1]).charCodeAt(0) === context.sliceSerialize(events[index][1]).charCodeAt(0)) {\n // If the opening can close or the closing can open,\n // and the close size *is not* a multiple of three,\n // but the sum of the opening and closing size *is* multiple of three,\n // then don’t match.\n if ((events[open][1]._close || events[index][1]._open) && (events[index][1].end.offset - events[index][1].start.offset) % 3 && !((events[open][1].end.offset - events[open][1].start.offset + events[index][1].end.offset - events[index][1].start.offset) % 3)) {\n continue;\n }\n\n // Number of markers to use from the sequence.\n use = events[open][1].end.offset - events[open][1].start.offset > 1 && events[index][1].end.offset - events[index][1].start.offset > 1 ? 2 : 1;\n const start = {\n ...events[open][1].end\n };\n const end = {\n ...events[index][1].start\n };\n movePoint(start, -use);\n movePoint(end, use);\n openingSequence = {\n type: use > 1 ? \"strongSequence\" : \"emphasisSequence\",\n start,\n end: {\n ...events[open][1].end\n }\n };\n closingSequence = {\n type: use > 1 ? \"strongSequence\" : \"emphasisSequence\",\n start: {\n ...events[index][1].start\n },\n end\n };\n text = {\n type: use > 1 ? \"strongText\" : \"emphasisText\",\n start: {\n ...events[open][1].end\n },\n end: {\n ...events[index][1].start\n }\n };\n group = {\n type: use > 1 ? \"strong\" : \"emphasis\",\n start: {\n ...openingSequence.start\n },\n end: {\n ...closingSequence.end\n }\n };\n events[open][1].end = {\n ...openingSequence.start\n };\n events[index][1].start = {\n ...closingSequence.end\n };\n nextEvents = [];\n\n // If there are more markers in the opening, add them before.\n if (events[open][1].end.offset - events[open][1].start.offset) {\n nextEvents = push(nextEvents, [['enter', events[open][1], context], ['exit', events[open][1], context]]);\n }\n\n // Opening.\n nextEvents = push(nextEvents, [['enter', group, context], ['enter', openingSequence, context], ['exit', openingSequence, context], ['enter', text, context]]);\n\n // Always populated by defaults.\n\n // Between.\n nextEvents = push(nextEvents, resolveAll(context.parser.constructs.insideSpan.null, events.slice(open + 1, index), context));\n\n // Closing.\n nextEvents = push(nextEvents, [['exit', text, context], ['enter', closingSequence, context], ['exit', closingSequence, context], ['exit', group, context]]);\n\n // If there are more markers in the closing, add them after.\n if (events[index][1].end.offset - events[index][1].start.offset) {\n offset = 2;\n nextEvents = push(nextEvents, [['enter', events[index][1], context], ['exit', events[index][1], context]]);\n } else {\n offset = 0;\n }\n splice(events, open - 1, index - open + 3, nextEvents);\n index = open + nextEvents.length - offset - 2;\n break;\n }\n }\n }\n }\n\n // Remove remaining sequences.\n index = -1;\n while (++index < events.length) {\n if (events[index][1].type === 'attentionSequence') {\n events[index][1].type = 'data';\n }\n }\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeAttention(effects, ok) {\n const attentionMarkers = this.parser.constructs.attentionMarkers.null;\n const previous = this.previous;\n const before = classifyCharacter(previous);\n\n /** @type {NonNullable<Code>} */\n let marker;\n return start;\n\n /**\n * Before a sequence.\n *\n * ```markdown\n * > | **\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n marker = code;\n effects.enter('attentionSequence');\n return inside(code);\n }\n\n /**\n * In a sequence.\n *\n * ```markdown\n * > | **\n * ^^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code);\n return inside;\n }\n const token = effects.exit('attentionSequence');\n\n // To do: next major: move this to resolver, just like `markdown-rs`.\n const after = classifyCharacter(code);\n\n // Always populated by defaults.\n\n const open = !after || after === 2 && before || attentionMarkers.includes(code);\n const close = !before || before === 2 && after || attentionMarkers.includes(previous);\n token._open = Boolean(marker === 42 ? open : open && (before || !close));\n token._close = Boolean(marker === 42 ? close : close && (after || !open));\n return ok(code);\n }\n}\n\n/**\n * Move a point a bit.\n *\n * Note: `move` only works inside lines! It’s not possible to move past other\n * chunks (replacement characters, tabs, or line endings).\n *\n * @param {Point} point\n * Point.\n * @param {number} offset\n * Amount to move.\n * @returns {undefined}\n * Nothing.\n */\nfunction movePoint(point, offset) {\n point.column += offset;\n point.offset += offset;\n point._bufferIndex += offset;\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { asciiAlphanumeric, asciiAlpha, asciiAtext, asciiControl } from 'micromark-util-character';\n/** @type {Construct} */\nexport const autolink = {\n name: 'autolink',\n tokenize: tokenizeAutolink\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeAutolink(effects, ok, nok) {\n let size = 0;\n return start;\n\n /**\n * Start of an autolink.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<user@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"autolink\");\n effects.enter(\"autolinkMarker\");\n effects.consume(code);\n effects.exit(\"autolinkMarker\");\n effects.enter(\"autolinkProtocol\");\n return open;\n }\n\n /**\n * After `<`, at protocol or atext.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<user@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (asciiAlpha(code)) {\n effects.consume(code);\n return schemeOrEmailAtext;\n }\n if (code === 64) {\n return nok(code);\n }\n return emailAtext(code);\n }\n\n /**\n * At second byte of protocol or atext.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<user@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeOrEmailAtext(code) {\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) {\n // Count the previous alphabetical from `open` too.\n size = 1;\n return schemeInsideOrEmailAtext(code);\n }\n return emailAtext(code);\n }\n\n /**\n * In ambiguous protocol or atext.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<user@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeInsideOrEmailAtext(code) {\n if (code === 58) {\n effects.consume(code);\n size = 0;\n return urlInside;\n }\n\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if ((code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) && size++ < 32) {\n effects.consume(code);\n return schemeInsideOrEmailAtext;\n }\n size = 0;\n return emailAtext(code);\n }\n\n /**\n * After protocol, in URL.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function urlInside(code) {\n if (code === 62) {\n effects.exit(\"autolinkProtocol\");\n effects.enter(\"autolinkMarker\");\n effects.consume(code);\n effects.exit(\"autolinkMarker\");\n effects.exit(\"autolink\");\n return ok;\n }\n\n // ASCII control, space, or `<`.\n if (code === null || code === 32 || code === 60 || asciiControl(code)) {\n return nok(code);\n }\n effects.consume(code);\n return urlInside;\n }\n\n /**\n * In email atext.\n *\n * ```markdown\n * > | a<user.name@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailAtext(code) {\n if (code === 64) {\n effects.consume(code);\n return emailAtSignOrDot;\n }\n if (asciiAtext(code)) {\n effects.consume(code);\n return emailAtext;\n }\n return nok(code);\n }\n\n /**\n * In label, after at-sign or dot.\n *\n * ```markdown\n * > | a<user.name@example.com>b\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function emailAtSignOrDot(code) {\n return asciiAlphanumeric(code) ? emailLabel(code) : nok(code);\n }\n\n /**\n * In label, where `.` and `>` are allowed.\n *\n * ```markdown\n * > | a<user.name@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailLabel(code) {\n if (code === 46) {\n effects.consume(code);\n size = 0;\n return emailAtSignOrDot;\n }\n if (code === 62) {\n // Exit, then change the token type.\n effects.exit(\"autolinkProtocol\").type = \"autolinkEmail\";\n effects.enter(\"autolinkMarker\");\n effects.consume(code);\n effects.exit(\"autolinkMarker\");\n effects.exit(\"autolink\");\n return ok;\n }\n return emailValue(code);\n }\n\n /**\n * In label, where `.` and `>` are *not* allowed.\n *\n * Though, this is also used in `emailLabel` to parse other values.\n *\n * ```markdown\n * > | a<user.name@ex-ample.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailValue(code) {\n // ASCII alphanumeric or `-`.\n if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {\n const next = code === 45 ? emailValue : emailLabel;\n effects.consume(code);\n return next;\n }\n return nok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const blankLine = {\n partial: true,\n tokenize: tokenizeBlankLine\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLine(effects, ok, nok) {\n return start;\n\n /**\n * Start of blank line.\n *\n * > 👉 **Note**: `␠` represents a space character.\n *\n * ```markdown\n * > | ␠␠␊\n * ^\n * > | ␊\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n return markdownSpace(code) ? factorySpace(effects, after, \"linePrefix\")(code) : after(code);\n }\n\n /**\n * At eof/eol, after optional whitespace.\n *\n * > 👉 **Note**: `␠` represents a space character.\n *\n * ```markdown\n * > | ␠␠␊\n * ^\n * > | ␊\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code);\n }\n}","/**\n * @import {\n * Construct,\n * Exiter,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const blockQuote = {\n continuation: {\n tokenize: tokenizeBlockQuoteContinuation\n },\n exit,\n name: 'blockQuote',\n tokenize: tokenizeBlockQuoteStart\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeBlockQuoteStart(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * Start of block quote.\n *\n * ```markdown\n * > | > a\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (code === 62) {\n const state = self.containerState;\n if (!state.open) {\n effects.enter(\"blockQuote\", {\n _container: true\n });\n state.open = true;\n }\n effects.enter(\"blockQuotePrefix\");\n effects.enter(\"blockQuoteMarker\");\n effects.consume(code);\n effects.exit(\"blockQuoteMarker\");\n return after;\n }\n return nok(code);\n }\n\n /**\n * After `>`, before optional whitespace.\n *\n * ```markdown\n * > | > a\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (markdownSpace(code)) {\n effects.enter(\"blockQuotePrefixWhitespace\");\n effects.consume(code);\n effects.exit(\"blockQuotePrefixWhitespace\");\n effects.exit(\"blockQuotePrefix\");\n return ok;\n }\n effects.exit(\"blockQuotePrefix\");\n return ok(code);\n }\n}\n\n/**\n * Start of block quote continuation.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeBlockQuoteContinuation(effects, ok, nok) {\n const self = this;\n return contStart;\n\n /**\n * Start of block quote continuation.\n *\n * Also used to parse the first block quote opening.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @type {State}\n */\n function contStart(code) {\n if (markdownSpace(code)) {\n // Always populated by defaults.\n\n return factorySpace(effects, contBefore, \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code);\n }\n return contBefore(code);\n }\n\n /**\n * At `>`, after optional whitespace.\n *\n * Also used to parse the first block quote opening.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @type {State}\n */\n function contBefore(code) {\n return effects.attempt(blockQuote, ok, nok)(code);\n }\n}\n\n/** @type {Exiter} */\nfunction exit(effects) {\n effects.exit(\"blockQuote\");\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { asciiPunctuation } from 'micromark-util-character';\n/** @type {Construct} */\nexport const characterEscape = {\n name: 'characterEscape',\n tokenize: tokenizeCharacterEscape\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n return start;\n\n /**\n * Start of character escape.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"characterEscape\");\n effects.enter(\"escapeMarker\");\n effects.consume(code);\n effects.exit(\"escapeMarker\");\n return inside;\n }\n\n /**\n * After `\\`, at punctuation.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n // ASCII punctuation.\n if (asciiPunctuation(code)) {\n effects.enter(\"characterEscapeValue\");\n effects.consume(code);\n effects.exit(\"characterEscapeValue\");\n effects.exit(\"characterEscape\");\n return ok;\n }\n return nok(code);\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { asciiAlphanumeric, asciiDigit, asciiHexDigit } from 'micromark-util-character';\n/** @type {Construct} */\nexport const characterReference = {\n name: 'characterReference',\n tokenize: tokenizeCharacterReference\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterReference(effects, ok, nok) {\n const self = this;\n let size = 0;\n /** @type {number} */\n let max;\n /** @type {(code: Code) => boolean} */\n let test;\n return start;\n\n /**\n * Start of character reference.\n *\n * ```markdown\n * > | a&b\n * ^\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"characterReference\");\n effects.enter(\"characterReferenceMarker\");\n effects.consume(code);\n effects.exit(\"characterReferenceMarker\");\n return open;\n }\n\n /**\n * After `&`, at `#` for numeric references or alphanumeric for named\n * references.\n *\n * ```markdown\n * > | a&b\n * ^\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 35) {\n effects.enter(\"characterReferenceMarkerNumeric\");\n effects.consume(code);\n effects.exit(\"characterReferenceMarkerNumeric\");\n return numeric;\n }\n effects.enter(\"characterReferenceValue\");\n max = 31;\n test = asciiAlphanumeric;\n return value(code);\n }\n\n /**\n * After `#`, at `x` for hexadecimals or digit for decimals.\n *\n * ```markdown\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function numeric(code) {\n if (code === 88 || code === 120) {\n effects.enter(\"characterReferenceMarkerHexadecimal\");\n effects.consume(code);\n effects.exit(\"characterReferenceMarkerHexadecimal\");\n effects.enter(\"characterReferenceValue\");\n max = 6;\n test = asciiHexDigit;\n return value;\n }\n effects.enter(\"characterReferenceValue\");\n max = 7;\n test = asciiDigit;\n return value(code);\n }\n\n /**\n * After markers (`&#x`, `&#`, or `&`), in value, before `;`.\n *\n * The character reference kind defines what and how many characters are\n * allowed.\n *\n * ```markdown\n * > | a&b\n * ^^^\n * > | a{b\n * ^^^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function value(code) {\n if (code === 59 && size) {\n const token = effects.exit(\"characterReferenceValue\");\n if (test === asciiAlphanumeric && !decodeNamedCharacterReference(self.sliceSerialize(token))) {\n return nok(code);\n }\n\n // To do: `markdown-rs` uses a different name:\n // `CharacterReferenceMarkerSemi`.\n effects.enter(\"characterReferenceMarker\");\n effects.consume(code);\n effects.exit(\"characterReferenceMarker\");\n effects.exit(\"characterReference\");\n return ok;\n }\n if (test(code) && size++ < max) {\n effects.consume(code);\n return value;\n }\n return nok(code);\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nconst nonLazyContinuation = {\n partial: true,\n tokenize: tokenizeNonLazyContinuation\n};\n\n/** @type {Construct} */\nexport const codeFenced = {\n concrete: true,\n name: 'codeFenced',\n tokenize: tokenizeCodeFenced\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeCodeFenced(effects, ok, nok) {\n const self = this;\n /** @type {Construct} */\n const closeStart = {\n partial: true,\n tokenize: tokenizeCloseStart\n };\n let initialPrefix = 0;\n let sizeOpen = 0;\n /** @type {NonNullable<Code>} */\n let marker;\n return start;\n\n /**\n * Start of code.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse whitespace like `markdown-rs`.\n return beforeSequenceOpen(code);\n }\n\n /**\n * In opening fence, after prefix, at sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeSequenceOpen(code) {\n const tail = self.events[self.events.length - 1];\n initialPrefix = tail && tail[1].type === \"linePrefix\" ? tail[2].sliceSerialize(tail[1], true).length : 0;\n marker = code;\n effects.enter(\"codeFenced\");\n effects.enter(\"codeFencedFence\");\n effects.enter(\"codeFencedFenceSequence\");\n return sequenceOpen(code);\n }\n\n /**\n * In opening fence sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === marker) {\n sizeOpen++;\n effects.consume(code);\n return sequenceOpen;\n }\n if (sizeOpen < 3) {\n return nok(code);\n }\n effects.exit(\"codeFencedFenceSequence\");\n return markdownSpace(code) ? factorySpace(effects, infoBefore, \"whitespace\")(code) : infoBefore(code);\n }\n\n /**\n * In opening fence, after the sequence (and optional whitespace), before info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function infoBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"codeFencedFence\");\n return self.interrupt ? ok(code) : effects.check(nonLazyContinuation, atNonLazyBreak, after)(code);\n }\n effects.enter(\"codeFencedFenceInfo\");\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return info(code);\n }\n\n /**\n * In info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function info(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"chunkString\");\n effects.exit(\"codeFencedFenceInfo\");\n return infoBefore(code);\n }\n if (markdownSpace(code)) {\n effects.exit(\"chunkString\");\n effects.exit(\"codeFencedFenceInfo\");\n return factorySpace(effects, metaBefore, \"whitespace\")(code);\n }\n if (code === 96 && code === marker) {\n return nok(code);\n }\n effects.consume(code);\n return info;\n }\n\n /**\n * In opening fence, after info and whitespace, before meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function metaBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n return infoBefore(code);\n }\n effects.enter(\"codeFencedFenceMeta\");\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return meta(code);\n }\n\n /**\n * In meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function meta(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"chunkString\");\n effects.exit(\"codeFencedFenceMeta\");\n return infoBefore(code);\n }\n if (code === 96 && code === marker) {\n return nok(code);\n }\n effects.consume(code);\n return meta;\n }\n\n /**\n * At eol/eof in code, before a non-lazy closing fence or content.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function atNonLazyBreak(code) {\n return effects.attempt(closeStart, after, contentBefore)(code);\n }\n\n /**\n * Before code content, not a closing fence, at eol.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentBefore(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return contentStart;\n }\n\n /**\n * Before code content, not a closing fence.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentStart(code) {\n return initialPrefix > 0 && markdownSpace(code) ? factorySpace(effects, beforeContentChunk, \"linePrefix\", initialPrefix + 1)(code) : beforeContentChunk(code);\n }\n\n /**\n * Before code content, after optional prefix.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeContentChunk(code) {\n if (code === null || markdownLineEnding(code)) {\n return effects.check(nonLazyContinuation, atNonLazyBreak, after)(code);\n }\n effects.enter(\"codeFlowValue\");\n return contentChunk(code);\n }\n\n /**\n * In code content.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^^^^^^^^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentChunk(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"codeFlowValue\");\n return beforeContentChunk(code);\n }\n effects.consume(code);\n return contentChunk;\n }\n\n /**\n * After code.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n effects.exit(\"codeFenced\");\n return ok(code);\n }\n\n /**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\n function tokenizeCloseStart(effects, ok, nok) {\n let size = 0;\n return startBefore;\n\n /**\n *\n *\n * @type {State}\n */\n function startBefore(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return start;\n }\n\n /**\n * Before closing fence, at optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Always populated by defaults.\n\n // To do: `enter` here or in next state?\n effects.enter(\"codeFencedFence\");\n return markdownSpace(code) ? factorySpace(effects, beforeSequenceClose, \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code) : beforeSequenceClose(code);\n }\n\n /**\n * In closing fence, after optional whitespace, at sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function beforeSequenceClose(code) {\n if (code === marker) {\n effects.enter(\"codeFencedFenceSequence\");\n return sequenceClose(code);\n }\n return nok(code);\n }\n\n /**\n * In closing fence sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n if (code === marker) {\n size++;\n effects.consume(code);\n return sequenceClose;\n }\n if (size >= sizeOpen) {\n effects.exit(\"codeFencedFenceSequence\");\n return markdownSpace(code) ? factorySpace(effects, sequenceCloseAfter, \"whitespace\")(code) : sequenceCloseAfter(code);\n }\n return nok(code);\n }\n\n /**\n * After closing fence sequence, after optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceCloseAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"codeFencedFence\");\n return ok(code);\n }\n return nok(code);\n }\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuation(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n *\n *\n * @type {State}\n */\n function start(code) {\n if (code === null) {\n return nok(code);\n }\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return lineStart;\n }\n\n /**\n *\n *\n * @type {State}\n */\n function lineStart(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const codeIndented = {\n name: 'codeIndented',\n tokenize: tokenizeCodeIndented\n};\n\n/** @type {Construct} */\nconst furtherStart = {\n partial: true,\n tokenize: tokenizeFurtherStart\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeCodeIndented(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * Start of code (indented).\n *\n * > **Parsing note**: it is not needed to check if this first line is a\n * > filled line (that it has a non-whitespace character), because blank lines\n * > are parsed already, so we never run into that.\n *\n * ```markdown\n * > | aaa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: manually check if interrupting like `markdown-rs`.\n\n effects.enter(\"codeIndented\");\n // To do: use an improved `space_or_tab` function like `markdown-rs`,\n // so that we can drop the next state.\n return factorySpace(effects, afterPrefix, \"linePrefix\", 4 + 1)(code);\n }\n\n /**\n * At start, after 1 or 4 spaces.\n *\n * ```markdown\n * > | aaa\n * ^\n * ```\n *\n * @type {State}\n */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1];\n return tail && tail[1].type === \"linePrefix\" && tail[2].sliceSerialize(tail[1], true).length >= 4 ? atBreak(code) : nok(code);\n }\n\n /**\n * At a break.\n *\n * ```markdown\n * > | aaa\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === null) {\n return after(code);\n }\n if (markdownLineEnding(code)) {\n return effects.attempt(furtherStart, atBreak, after)(code);\n }\n effects.enter(\"codeFlowValue\");\n return inside(code);\n }\n\n /**\n * In code content.\n *\n * ```markdown\n * > | aaa\n * ^^^^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"codeFlowValue\");\n return atBreak(code);\n }\n effects.consume(code);\n return inside;\n }\n\n /** @type {State} */\n function after(code) {\n effects.exit(\"codeIndented\");\n // To do: allow interrupting like `markdown-rs`.\n // Feel free to interrupt.\n // tokenizer.interrupt = false\n return ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeFurtherStart(effects, ok, nok) {\n const self = this;\n return furtherStart;\n\n /**\n * At eol, trying to parse another indent.\n *\n * ```markdown\n * > | aaa\n * ^\n * | bbb\n * ```\n *\n * @type {State}\n */\n function furtherStart(code) {\n // To do: improve `lazy` / `pierce` handling.\n // If this is a lazy line, it can’t be code.\n if (self.parser.lazy[self.now().line]) {\n return nok(code);\n }\n if (markdownLineEnding(code)) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return furtherStart;\n }\n\n // To do: the code here in `micromark-js` is a bit different from\n // `markdown-rs` because there it can attempt spaces.\n // We can’t yet.\n //\n // To do: use an improved `space_or_tab` function like `markdown-rs`,\n // so that we can drop the next state.\n return factorySpace(effects, afterPrefix, \"linePrefix\", 4 + 1)(code);\n }\n\n /**\n * At start, after 1 or 4 spaces.\n *\n * ```markdown\n * > | aaa\n * ^\n * ```\n *\n * @type {State}\n */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1];\n return tail && tail[1].type === \"linePrefix\" && tail[2].sliceSerialize(tail[1], true).length >= 4 ? ok(code) : markdownLineEnding(code) ? furtherStart(code) : nok(code);\n }\n}","/**\n * @import {\n * Construct,\n * Previous,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer,\n * Token\n * } from 'micromark-util-types'\n */\n\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const codeText = {\n name: 'codeText',\n previous,\n resolve: resolveCodeText,\n tokenize: tokenizeCodeText\n};\n\n// To do: next major: don’t resolve, like `markdown-rs`.\n/** @type {Resolver} */\nfunction resolveCodeText(events) {\n let tailExitIndex = events.length - 4;\n let headEnterIndex = 3;\n /** @type {number} */\n let index;\n /** @type {number | undefined} */\n let enter;\n\n // If we start and end with an EOL or a space.\n if ((events[headEnterIndex][1].type === \"lineEnding\" || events[headEnterIndex][1].type === 'space') && (events[tailExitIndex][1].type === \"lineEnding\" || events[tailExitIndex][1].type === 'space')) {\n index = headEnterIndex;\n\n // And we have data.\n while (++index < tailExitIndex) {\n if (events[index][1].type === \"codeTextData\") {\n // Then we have padding.\n events[headEnterIndex][1].type = \"codeTextPadding\";\n events[tailExitIndex][1].type = \"codeTextPadding\";\n headEnterIndex += 2;\n tailExitIndex -= 2;\n break;\n }\n }\n }\n\n // Merge adjacent spaces and data.\n index = headEnterIndex - 1;\n tailExitIndex++;\n while (++index <= tailExitIndex) {\n if (enter === undefined) {\n if (index !== tailExitIndex && events[index][1].type !== \"lineEnding\") {\n enter = index;\n }\n } else if (index === tailExitIndex || events[index][1].type === \"lineEnding\") {\n events[enter][1].type = \"codeTextData\";\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end;\n events.splice(enter + 2, index - enter - 2);\n tailExitIndex -= index - enter - 2;\n index = enter + 2;\n }\n enter = undefined;\n }\n }\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Previous}\n */\nfunction previous(code) {\n // If there is a previous code, there will always be a tail.\n return code !== 96 || this.events[this.events.length - 1][1].type === \"characterEscape\";\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeCodeText(effects, ok, nok) {\n const self = this;\n let sizeOpen = 0;\n /** @type {number} */\n let size;\n /** @type {Token} */\n let token;\n return start;\n\n /**\n * Start of code (text).\n *\n * ```markdown\n * > | `a`\n * ^\n * > | \\`a`\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"codeText\");\n effects.enter(\"codeTextSequence\");\n return sequenceOpen(code);\n }\n\n /**\n * In opening sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === 96) {\n effects.consume(code);\n sizeOpen++;\n return sequenceOpen;\n }\n effects.exit(\"codeTextSequence\");\n return between(code);\n }\n\n /**\n * Between something and something else.\n *\n * ```markdown\n * > | `a`\n * ^^\n * ```\n *\n * @type {State}\n */\n function between(code) {\n // EOF.\n if (code === null) {\n return nok(code);\n }\n\n // To do: next major: don’t do spaces in resolve, but when compiling,\n // like `markdown-rs`.\n // Tabs don’t work, and virtual spaces don’t make sense.\n if (code === 32) {\n effects.enter('space');\n effects.consume(code);\n effects.exit('space');\n return between;\n }\n\n // Closing fence? Could also be data.\n if (code === 96) {\n token = effects.enter(\"codeTextSequence\");\n size = 0;\n return sequenceClose(code);\n }\n if (markdownLineEnding(code)) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return between;\n }\n\n // Data.\n effects.enter(\"codeTextData\");\n return data(code);\n }\n\n /**\n * In data.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function data(code) {\n if (code === null || code === 32 || code === 96 || markdownLineEnding(code)) {\n effects.exit(\"codeTextData\");\n return between(code);\n }\n effects.consume(code);\n return data;\n }\n\n /**\n * In closing sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n // More.\n if (code === 96) {\n effects.consume(code);\n size++;\n return sequenceClose;\n }\n\n // Done!\n if (size === sizeOpen) {\n effects.exit(\"codeTextSequence\");\n effects.exit(\"codeText\");\n return ok(code);\n }\n\n // More or less accents: mark as data.\n token.type = \"codeTextData\";\n return data(code);\n }\n}","/**\n * Some of the internal operations of micromark do lots of editing\n * operations on very large arrays. This runs into problems with two\n * properties of most circa-2020 JavaScript interpreters:\n *\n * - Array-length modifications at the high end of an array (push/pop) are\n * expected to be common and are implemented in (amortized) time\n * proportional to the number of elements added or removed, whereas\n * other operations (shift/unshift and splice) are much less efficient.\n * - Function arguments are passed on the stack, so adding tens of thousands\n * of elements to an array with `arr.push(...newElements)` will frequently\n * cause stack overflows. (see <https://stackoverflow.com/questions/22123769/rangeerror-maximum-call-stack-size-exceeded-why>)\n *\n * SpliceBuffers are an implementation of gap buffers, which are a\n * generalization of the \"queue made of two stacks\" idea. The splice buffer\n * maintains a cursor, and moving the cursor has cost proportional to the\n * distance the cursor moves, but inserting, deleting, or splicing in\n * new information at the cursor is as efficient as the push/pop operation.\n * This allows for an efficient sequence of splices (or pushes, pops, shifts,\n * or unshifts) as long such edits happen at the same part of the array or\n * generally sweep through the array from the beginning to the end.\n *\n * The interface for splice buffers also supports large numbers of inputs by\n * passing a single array argument rather passing multiple arguments on the\n * function call stack.\n *\n * @template T\n * Item type.\n */\nexport class SpliceBuffer {\n /**\n * @param {ReadonlyArray<T> | null | undefined} [initial]\n * Initial items (optional).\n * @returns\n * Splice buffer.\n */\n constructor(initial) {\n /** @type {Array<T>} */\n this.left = initial ? [...initial] : [];\n /** @type {Array<T>} */\n this.right = [];\n }\n\n /**\n * Array access;\n * does not move the cursor.\n *\n * @param {number} index\n * Index.\n * @return {T}\n * Item.\n */\n get(index) {\n if (index < 0 || index >= this.left.length + this.right.length) {\n throw new RangeError('Cannot access index `' + index + '` in a splice buffer of size `' + (this.left.length + this.right.length) + '`');\n }\n if (index < this.left.length) return this.left[index];\n return this.right[this.right.length - index + this.left.length - 1];\n }\n\n /**\n * The length of the splice buffer, one greater than the largest index in the\n * array.\n */\n get length() {\n return this.left.length + this.right.length;\n }\n\n /**\n * Remove and return `list[0]`;\n * moves the cursor to `0`.\n *\n * @returns {T | undefined}\n * Item, optional.\n */\n shift() {\n this.setCursor(0);\n return this.right.pop();\n }\n\n /**\n * Slice the buffer to get an array;\n * does not move the cursor.\n *\n * @param {number} start\n * Start.\n * @param {number | null | undefined} [end]\n * End (optional).\n * @returns {Array<T>}\n * Array of items.\n */\n slice(start, end) {\n /** @type {number} */\n const stop = end === null || end === undefined ? Number.POSITIVE_INFINITY : end;\n if (stop < this.left.length) {\n return this.left.slice(start, stop);\n }\n if (start > this.left.length) {\n return this.right.slice(this.right.length - stop + this.left.length, this.right.length - start + this.left.length).reverse();\n }\n return this.left.slice(start).concat(this.right.slice(this.right.length - stop + this.left.length).reverse());\n }\n\n /**\n * Mimics the behavior of Array.prototype.splice() except for the change of\n * interface necessary to avoid segfaults when patching in very large arrays.\n *\n * This operation moves cursor is moved to `start` and results in the cursor\n * placed after any inserted items.\n *\n * @param {number} start\n * Start;\n * zero-based index at which to start changing the array;\n * negative numbers count backwards from the end of the array and values\n * that are out-of bounds are clamped to the appropriate end of the array.\n * @param {number | null | undefined} [deleteCount=0]\n * Delete count (default: `0`);\n * maximum number of elements to delete, starting from start.\n * @param {Array<T> | null | undefined} [items=[]]\n * Items to include in place of the deleted items (default: `[]`).\n * @return {Array<T>}\n * Any removed items.\n */\n splice(start, deleteCount, items) {\n /** @type {number} */\n const count = deleteCount || 0;\n this.setCursor(Math.trunc(start));\n const removed = this.right.splice(this.right.length - count, Number.POSITIVE_INFINITY);\n if (items) chunkedPush(this.left, items);\n return removed.reverse();\n }\n\n /**\n * Remove and return the highest-numbered item in the array, so\n * `list[list.length - 1]`;\n * Moves the cursor to `length`.\n *\n * @returns {T | undefined}\n * Item, optional.\n */\n pop() {\n this.setCursor(Number.POSITIVE_INFINITY);\n return this.left.pop();\n }\n\n /**\n * Inserts a single item to the high-numbered side of the array;\n * moves the cursor to `length`.\n *\n * @param {T} item\n * Item.\n * @returns {undefined}\n * Nothing.\n */\n push(item) {\n this.setCursor(Number.POSITIVE_INFINITY);\n this.left.push(item);\n }\n\n /**\n * Inserts many items to the high-numbered side of the array.\n * Moves the cursor to `length`.\n *\n * @param {Array<T>} items\n * Items.\n * @returns {undefined}\n * Nothing.\n */\n pushMany(items) {\n this.setCursor(Number.POSITIVE_INFINITY);\n chunkedPush(this.left, items);\n }\n\n /**\n * Inserts a single item to the low-numbered side of the array;\n * Moves the cursor to `0`.\n *\n * @param {T} item\n * Item.\n * @returns {undefined}\n * Nothing.\n */\n unshift(item) {\n this.setCursor(0);\n this.right.push(item);\n }\n\n /**\n * Inserts many items to the low-numbered side of the array;\n * moves the cursor to `0`.\n *\n * @param {Array<T>} items\n * Items.\n * @returns {undefined}\n * Nothing.\n */\n unshiftMany(items) {\n this.setCursor(0);\n chunkedPush(this.right, items.reverse());\n }\n\n /**\n * Move the cursor to a specific position in the array. Requires\n * time proportional to the distance moved.\n *\n * If `n < 0`, the cursor will end up at the beginning.\n * If `n > length`, the cursor will end up at the end.\n *\n * @param {number} n\n * Position.\n * @return {undefined}\n * Nothing.\n */\n setCursor(n) {\n if (n === this.left.length || n > this.left.length && this.right.length === 0 || n < 0 && this.left.length === 0) return;\n if (n < this.left.length) {\n // Move cursor to the this.left\n const removed = this.left.splice(n, Number.POSITIVE_INFINITY);\n chunkedPush(this.right, removed.reverse());\n } else {\n // Move cursor to the this.right\n const removed = this.right.splice(this.left.length + this.right.length - n, Number.POSITIVE_INFINITY);\n chunkedPush(this.left, removed.reverse());\n }\n }\n}\n\n/**\n * Avoid stack overflow by pushing items onto the stack in segments\n *\n * @template T\n * Item type.\n * @param {Array<T>} list\n * List to inject into.\n * @param {ReadonlyArray<T>} right\n * Items to inject.\n * @return {undefined}\n * Nothing.\n */\nfunction chunkedPush(list, right) {\n /** @type {number} */\n let chunkStart = 0;\n if (right.length < 10000) {\n list.push(...right);\n } else {\n while (chunkStart < right.length) {\n list.push(...right.slice(chunkStart, chunkStart + 10000));\n chunkStart += 10000;\n }\n }\n}","/**\n * @import {Chunk, Event, Token} from 'micromark-util-types'\n */\n\nimport { splice } from 'micromark-util-chunked';\nimport { SpliceBuffer } from './lib/splice-buffer.js';\n\n// Hidden API exposed for testing.\nexport { SpliceBuffer } from './lib/splice-buffer.js';\n\n/**\n * Tokenize subcontent.\n *\n * @param {Array<Event>} eventsArray\n * List of events.\n * @returns {boolean}\n * Whether subtokens were found.\n */\n// eslint-disable-next-line complexity\nexport function subtokenize(eventsArray) {\n /** @type {Record<string, number>} */\n const jumps = {};\n let index = -1;\n /** @type {Event} */\n let event;\n /** @type {number | undefined} */\n let lineIndex;\n /** @type {number} */\n let otherIndex;\n /** @type {Event} */\n let otherEvent;\n /** @type {Array<Event>} */\n let parameters;\n /** @type {Array<Event>} */\n let subevents;\n /** @type {boolean | undefined} */\n let more;\n const events = new SpliceBuffer(eventsArray);\n while (++index < events.length) {\n while (index in jumps) {\n index = jumps[index];\n }\n event = events.get(index);\n\n // Add a hook for the GFM tasklist extension, which needs to know if text\n // is in the first content of a list item.\n if (index && event[1].type === \"chunkFlow\" && events.get(index - 1)[1].type === \"listItemPrefix\") {\n subevents = event[1]._tokenizer.events;\n otherIndex = 0;\n if (otherIndex < subevents.length && subevents[otherIndex][1].type === \"lineEndingBlank\") {\n otherIndex += 2;\n }\n if (otherIndex < subevents.length && subevents[otherIndex][1].type === \"content\") {\n while (++otherIndex < subevents.length) {\n if (subevents[otherIndex][1].type === \"content\") {\n break;\n }\n if (subevents[otherIndex][1].type === \"chunkText\") {\n subevents[otherIndex][1]._isInFirstContentOfListItem = true;\n otherIndex++;\n }\n }\n }\n }\n\n // Enter.\n if (event[0] === 'enter') {\n if (event[1].contentType) {\n Object.assign(jumps, subcontent(events, index));\n index = jumps[index];\n more = true;\n }\n }\n // Exit.\n else if (event[1]._container) {\n otherIndex = index;\n lineIndex = undefined;\n while (otherIndex--) {\n otherEvent = events.get(otherIndex);\n if (otherEvent[1].type === \"lineEnding\" || otherEvent[1].type === \"lineEndingBlank\") {\n if (otherEvent[0] === 'enter') {\n if (lineIndex) {\n events.get(lineIndex)[1].type = \"lineEndingBlank\";\n }\n otherEvent[1].type = \"lineEnding\";\n lineIndex = otherIndex;\n }\n } else if (otherEvent[1].type === \"linePrefix\" || otherEvent[1].type === \"listItemIndent\") {\n // Move past.\n } else {\n break;\n }\n }\n if (lineIndex) {\n // Fix position.\n event[1].end = {\n ...events.get(lineIndex)[1].start\n };\n\n // Switch container exit w/ line endings.\n parameters = events.slice(lineIndex, index);\n parameters.unshift(event);\n events.splice(lineIndex, index - lineIndex + 1, parameters);\n }\n }\n }\n\n // The changes to the `events` buffer must be copied back into the eventsArray\n splice(eventsArray, 0, Number.POSITIVE_INFINITY, events.slice(0));\n return !more;\n}\n\n/**\n * Tokenize embedded tokens.\n *\n * @param {SpliceBuffer<Event>} events\n * Events.\n * @param {number} eventIndex\n * Index.\n * @returns {Record<string, number>}\n * Gaps.\n */\nfunction subcontent(events, eventIndex) {\n const token = events.get(eventIndex)[1];\n const context = events.get(eventIndex)[2];\n let startPosition = eventIndex - 1;\n /** @type {Array<number>} */\n const startPositions = [];\n let tokenizer = token._tokenizer;\n if (!tokenizer) {\n tokenizer = context.parser[token.contentType](token.start);\n if (token._contentTypeTextTrailing) {\n tokenizer._contentTypeTextTrailing = true;\n }\n }\n const childEvents = tokenizer.events;\n /** @type {Array<[number, number]>} */\n const jumps = [];\n /** @type {Record<string, number>} */\n const gaps = {};\n /** @type {Array<Chunk>} */\n let stream;\n /** @type {Token | undefined} */\n let previous;\n let index = -1;\n /** @type {Token | undefined} */\n let current = token;\n let adjust = 0;\n let start = 0;\n const breaks = [start];\n\n // Loop forward through the linked tokens to pass them in order to the\n // subtokenizer.\n while (current) {\n // Find the position of the event for this token.\n while (events.get(++startPosition)[1] !== current) {\n // Empty.\n }\n startPositions.push(startPosition);\n if (!current._tokenizer) {\n stream = context.sliceStream(current);\n if (!current.next) {\n stream.push(null);\n }\n if (previous) {\n tokenizer.defineSkip(current.start);\n }\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = true;\n }\n tokenizer.write(stream);\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = undefined;\n }\n }\n\n // Unravel the next token.\n previous = current;\n current = current.next;\n }\n\n // Now, loop back through all events (and linked tokens), to figure out which\n // parts belong where.\n current = token;\n while (++index < childEvents.length) {\n if (\n // Find a void token that includes a break.\n childEvents[index][0] === 'exit' && childEvents[index - 1][0] === 'enter' && childEvents[index][1].type === childEvents[index - 1][1].type && childEvents[index][1].start.line !== childEvents[index][1].end.line) {\n start = index + 1;\n breaks.push(start);\n // Help GC.\n current._tokenizer = undefined;\n current.previous = undefined;\n current = current.next;\n }\n }\n\n // Help GC.\n tokenizer.events = [];\n\n // If there’s one more token (which is the cases for lines that end in an\n // EOF), that’s perfect: the last point we found starts it.\n // If there isn’t then make sure any remaining content is added to it.\n if (current) {\n // Help GC.\n current._tokenizer = undefined;\n current.previous = undefined;\n } else {\n breaks.pop();\n }\n\n // Now splice the events from the subtokenizer into the current events,\n // moving back to front so that splice indices aren’t affected.\n index = breaks.length;\n while (index--) {\n const slice = childEvents.slice(breaks[index], breaks[index + 1]);\n const start = startPositions.pop();\n jumps.push([start, start + slice.length - 1]);\n events.splice(start, 2, slice);\n }\n jumps.reverse();\n index = -1;\n while (++index < jumps.length) {\n gaps[adjust + jumps[index][0]] = adjust + jumps[index][1];\n adjust += jumps[index][1] - jumps[index][0] - 1;\n }\n return gaps;\n}","/**\n * @import {\n * Construct,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer,\n * Token\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\nimport { subtokenize } from 'micromark-util-subtokenize';\n/**\n * No name because it must not be turned off.\n * @type {Construct}\n */\nexport const content = {\n resolve: resolveContent,\n tokenize: tokenizeContent\n};\n\n/** @type {Construct} */\nconst continuationConstruct = {\n partial: true,\n tokenize: tokenizeContinuation\n};\n\n/**\n * Content is transparent: it’s parsed right now. That way, definitions are also\n * parsed right now: before text in paragraphs (specifically, media) are parsed.\n *\n * @type {Resolver}\n */\nfunction resolveContent(events) {\n subtokenize(events);\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeContent(effects, ok) {\n /** @type {Token | undefined} */\n let previous;\n return chunkStart;\n\n /**\n * Before a content chunk.\n *\n * ```markdown\n * > | abc\n * ^\n * ```\n *\n * @type {State}\n */\n function chunkStart(code) {\n effects.enter(\"content\");\n previous = effects.enter(\"chunkContent\", {\n contentType: \"content\"\n });\n return chunkInside(code);\n }\n\n /**\n * In a content chunk.\n *\n * ```markdown\n * > | abc\n * ^^^\n * ```\n *\n * @type {State}\n */\n function chunkInside(code) {\n if (code === null) {\n return contentEnd(code);\n }\n\n // To do: in `markdown-rs`, each line is parsed on its own, and everything\n // is stitched together resolving.\n if (markdownLineEnding(code)) {\n return effects.check(continuationConstruct, contentContinue, contentEnd)(code);\n }\n\n // Data.\n effects.consume(code);\n return chunkInside;\n }\n\n /**\n *\n *\n * @type {State}\n */\n function contentEnd(code) {\n effects.exit(\"chunkContent\");\n effects.exit(\"content\");\n return ok(code);\n }\n\n /**\n *\n *\n * @type {State}\n */\n function contentContinue(code) {\n effects.consume(code);\n effects.exit(\"chunkContent\");\n previous.next = effects.enter(\"chunkContent\", {\n contentType: \"content\",\n previous\n });\n previous = previous.next;\n return chunkInside;\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeContinuation(effects, ok, nok) {\n const self = this;\n return startLookahead;\n\n /**\n *\n *\n * @type {State}\n */\n function startLookahead(code) {\n effects.exit(\"chunkContent\");\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return factorySpace(effects, prefixed, \"linePrefix\");\n }\n\n /**\n *\n *\n * @type {State}\n */\n function prefixed(code) {\n if (code === null || markdownLineEnding(code)) {\n return nok(code);\n }\n\n // Always populated by defaults.\n\n const tail = self.events[self.events.length - 1];\n if (!self.parser.constructs.disable.null.includes('codeIndented') && tail && tail[1].type === \"linePrefix\" && tail[2].sliceSerialize(tail[1], true).length >= 4) {\n return ok(code);\n }\n return effects.interrupt(self.parser.constructs.flow, nok, ok)(code);\n }\n}","/**\n * @import {Effects, State, TokenType} from 'micromark-util-types'\n */\n\nimport { asciiControl, markdownLineEndingOrSpace, markdownLineEnding } from 'micromark-util-character';\n/**\n * Parse destinations.\n *\n * ###### Examples\n *\n * ```markdown\n * <a>\n * <a\\>b>\n * <a b>\n * <a)>\n * a\n * a\\)b\n * a(b)c\n * a(b)\n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type for whole (`<a>` or `b`).\n * @param {TokenType} literalType\n * Type when enclosed (`<a>`).\n * @param {TokenType} literalMarkerType\n * Type for enclosing (`<` and `>`).\n * @param {TokenType} rawType\n * Type when not enclosed (`b`).\n * @param {TokenType} stringType\n * Type for the value (`a` or `b`).\n * @param {number | undefined} [max=Infinity]\n * Depth of nested parens (inclusive).\n * @returns {State}\n * Start state.\n */\nexport function factoryDestination(effects, ok, nok, type, literalType, literalMarkerType, rawType, stringType, max) {\n const limit = max || Number.POSITIVE_INFINITY;\n let balance = 0;\n return start;\n\n /**\n * Start of destination.\n *\n * ```markdown\n * > | <aa>\n * ^\n * > | aa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (code === 60) {\n effects.enter(type);\n effects.enter(literalType);\n effects.enter(literalMarkerType);\n effects.consume(code);\n effects.exit(literalMarkerType);\n return enclosedBefore;\n }\n\n // ASCII control, space, closing paren.\n if (code === null || code === 32 || code === 41 || asciiControl(code)) {\n return nok(code);\n }\n effects.enter(type);\n effects.enter(rawType);\n effects.enter(stringType);\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return raw(code);\n }\n\n /**\n * After `<`, at an enclosed destination.\n *\n * ```markdown\n * > | <aa>\n * ^\n * ```\n *\n * @type {State}\n */\n function enclosedBefore(code) {\n if (code === 62) {\n effects.enter(literalMarkerType);\n effects.consume(code);\n effects.exit(literalMarkerType);\n effects.exit(literalType);\n effects.exit(type);\n return ok;\n }\n effects.enter(stringType);\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return enclosed(code);\n }\n\n /**\n * In enclosed destination.\n *\n * ```markdown\n * > | <aa>\n * ^\n * ```\n *\n * @type {State}\n */\n function enclosed(code) {\n if (code === 62) {\n effects.exit(\"chunkString\");\n effects.exit(stringType);\n return enclosedBefore(code);\n }\n if (code === null || code === 60 || markdownLineEnding(code)) {\n return nok(code);\n }\n effects.consume(code);\n return code === 92 ? enclosedEscape : enclosed;\n }\n\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | <a\\*a>\n * ^\n * ```\n *\n * @type {State}\n */\n function enclosedEscape(code) {\n if (code === 60 || code === 62 || code === 92) {\n effects.consume(code);\n return enclosed;\n }\n return enclosed(code);\n }\n\n /**\n * In raw destination.\n *\n * ```markdown\n * > | aa\n * ^\n * ```\n *\n * @type {State}\n */\n function raw(code) {\n if (!balance && (code === null || code === 41 || markdownLineEndingOrSpace(code))) {\n effects.exit(\"chunkString\");\n effects.exit(stringType);\n effects.exit(rawType);\n effects.exit(type);\n return ok(code);\n }\n if (balance < limit && code === 40) {\n effects.consume(code);\n balance++;\n return raw;\n }\n if (code === 41) {\n effects.consume(code);\n balance--;\n return raw;\n }\n\n // ASCII control (but *not* `\\0`) and space and `(`.\n // Note: in `markdown-rs`, `\\0` exists in codes, in `micromark-js` it\n // doesn’t.\n if (code === null || code === 32 || code === 40 || asciiControl(code)) {\n return nok(code);\n }\n effects.consume(code);\n return code === 92 ? rawEscape : raw;\n }\n\n /**\n * After `\\`, at special character.\n *\n * ```markdown\n * > | a\\*a\n * ^\n * ```\n *\n * @type {State}\n */\n function rawEscape(code) {\n if (code === 40 || code === 41 || code === 92) {\n effects.consume(code);\n return raw;\n }\n return raw(code);\n }\n}","/**\n * @import {\n * Effects,\n * State,\n * TokenizeContext,\n * TokenType\n * } from 'micromark-util-types'\n */\n\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/**\n * Parse labels.\n *\n * > 👉 **Note**: labels in markdown are capped at 999 characters in the string.\n *\n * ###### Examples\n *\n * ```markdown\n * [a]\n * [a\n * b]\n * [a\\]b]\n * ```\n *\n * @this {TokenizeContext}\n * Tokenize context.\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type of the whole label (`[a]`).\n * @param {TokenType} markerType\n * Type for the markers (`[` and `]`).\n * @param {TokenType} stringType\n * Type for the identifier (`a`).\n * @returns {State}\n * Start state.\n */\nexport function factoryLabel(effects, ok, nok, type, markerType, stringType) {\n const self = this;\n let size = 0;\n /** @type {boolean} */\n let seen;\n return start;\n\n /**\n * Start of label.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(type);\n effects.enter(markerType);\n effects.consume(code);\n effects.exit(markerType);\n effects.enter(stringType);\n return atBreak;\n }\n\n /**\n * In label, at something, before something else.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (size > 999 || code === null || code === 91 || code === 93 && !seen ||\n // To do: remove in the future once we’ve switched from\n // `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n // which doesn’t need this.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n code === 94 && !size && '_hiddenFootnoteSupport' in self.parser.constructs) {\n return nok(code);\n }\n if (code === 93) {\n effects.exit(stringType);\n effects.enter(markerType);\n effects.consume(code);\n effects.exit(markerType);\n effects.exit(type);\n return ok;\n }\n\n // To do: indent? Link chunks and EOLs together?\n if (markdownLineEnding(code)) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return atBreak;\n }\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return labelInside(code);\n }\n\n /**\n * In label, in text.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */\n function labelInside(code) {\n if (code === null || code === 91 || code === 93 || markdownLineEnding(code) || size++ > 999) {\n effects.exit(\"chunkString\");\n return atBreak(code);\n }\n effects.consume(code);\n if (!seen) seen = !markdownSpace(code);\n return code === 92 ? labelEscape : labelInside;\n }\n\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | [a\\*a]\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code);\n size++;\n return labelInside;\n }\n return labelInside(code);\n }\n}","/**\n * @import {\n * Code,\n * Effects,\n * State,\n * TokenType\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\n/**\n * Parse titles.\n *\n * ###### Examples\n *\n * ```markdown\n * \"a\"\n * 'b'\n * (c)\n * \"a\n * b\"\n * 'a\n * b'\n * (a\\)b)\n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type of the whole title (`\"a\"`, `'b'`, `(c)`).\n * @param {TokenType} markerType\n * Type for the markers (`\"`, `'`, `(`, and `)`).\n * @param {TokenType} stringType\n * Type for the value (`a`).\n * @returns {State}\n * Start state.\n */\nexport function factoryTitle(effects, ok, nok, type, markerType, stringType) {\n /** @type {NonNullable<Code>} */\n let marker;\n return start;\n\n /**\n * Start of title.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (code === 34 || code === 39 || code === 40) {\n effects.enter(type);\n effects.enter(markerType);\n effects.consume(code);\n effects.exit(markerType);\n marker = code === 40 ? 41 : code;\n return begin;\n }\n return nok(code);\n }\n\n /**\n * After opening marker.\n *\n * This is also used at the closing marker.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */\n function begin(code) {\n if (code === marker) {\n effects.enter(markerType);\n effects.consume(code);\n effects.exit(markerType);\n effects.exit(type);\n return ok;\n }\n effects.enter(stringType);\n return atBreak(code);\n }\n\n /**\n * At something, before something else.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === marker) {\n effects.exit(stringType);\n return begin(marker);\n }\n if (code === null) {\n return nok(code);\n }\n\n // Note: blank lines can’t exist in content.\n if (markdownLineEnding(code)) {\n // To do: use `space_or_tab_eol_with_options`, connect.\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return factorySpace(effects, atBreak, \"linePrefix\");\n }\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return inside(code);\n }\n\n /**\n *\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker || code === null || markdownLineEnding(code)) {\n effects.exit(\"chunkString\");\n return atBreak(code);\n }\n effects.consume(code);\n return code === 92 ? escape : inside;\n }\n\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | \"a\\*b\"\n * ^\n * ```\n *\n * @type {State}\n */\n function escape(code) {\n if (code === marker || code === 92) {\n effects.consume(code);\n return inside;\n }\n return inside(code);\n }\n}","/**\n * @import {Effects, State} from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/**\n * Parse spaces and tabs.\n *\n * There is no `nok` parameter:\n *\n * * line endings or spaces in markdown are often optional, in which case this\n * factory can be used and `ok` will be switched to whether spaces were found\n * or not\n * * one line ending or space can be detected with\n * `markdownLineEndingOrSpace(code)` right before using `factoryWhitespace`\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @returns {State}\n * Start state.\n */\nexport function factoryWhitespace(effects, ok) {\n /** @type {boolean} */\n let seen;\n return start;\n\n /** @type {State} */\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n seen = true;\n return start;\n }\n if (markdownSpace(code)) {\n return factorySpace(effects, start, seen ? \"linePrefix\" : \"lineSuffix\")(code);\n }\n return ok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factoryDestination } from 'micromark-factory-destination';\nimport { factoryLabel } from 'micromark-factory-label';\nimport { factorySpace } from 'micromark-factory-space';\nimport { factoryTitle } from 'micromark-factory-title';\nimport { factoryWhitespace } from 'micromark-factory-whitespace';\nimport { markdownLineEndingOrSpace, markdownLineEnding, markdownSpace } from 'micromark-util-character';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\n/** @type {Construct} */\nexport const definition = {\n name: 'definition',\n tokenize: tokenizeDefinition\n};\n\n/** @type {Construct} */\nconst titleBefore = {\n partial: true,\n tokenize: tokenizeTitleBefore\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeDefinition(effects, ok, nok) {\n const self = this;\n /** @type {string} */\n let identifier;\n return start;\n\n /**\n * At start of a definition.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Do not interrupt paragraphs (but do follow definitions).\n // To do: do `interrupt` the way `markdown-rs` does.\n // To do: parse whitespace the way `markdown-rs` does.\n effects.enter(\"definition\");\n return before(code);\n }\n\n /**\n * After optional whitespace, at `[`.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n // To do: parse whitespace the way `markdown-rs` does.\n\n return factoryLabel.call(self, effects, labelAfter,\n // Note: we don’t need to reset the way `markdown-rs` does.\n nok, \"definitionLabel\", \"definitionLabelMarker\", \"definitionLabelString\")(code);\n }\n\n /**\n * After label.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function labelAfter(code) {\n identifier = normalizeIdentifier(self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1));\n if (code === 58) {\n effects.enter(\"definitionMarker\");\n effects.consume(code);\n effects.exit(\"definitionMarker\");\n return markerAfter;\n }\n return nok(code);\n }\n\n /**\n * After marker.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function markerAfter(code) {\n // Note: whitespace is optional.\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, destinationBefore)(code) : destinationBefore(code);\n }\n\n /**\n * Before destination.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function destinationBefore(code) {\n return factoryDestination(effects, destinationAfter,\n // Note: we don’t need to reset the way `markdown-rs` does.\n nok, \"definitionDestination\", \"definitionDestinationLiteral\", \"definitionDestinationLiteralMarker\", \"definitionDestinationRaw\", \"definitionDestinationString\")(code);\n }\n\n /**\n * After destination.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function destinationAfter(code) {\n return effects.attempt(titleBefore, after, after)(code);\n }\n\n /**\n * After definition.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return markdownSpace(code) ? factorySpace(effects, afterWhitespace, \"whitespace\")(code) : afterWhitespace(code);\n }\n\n /**\n * After definition, after optional whitespace.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function afterWhitespace(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"definition\");\n\n // Note: we don’t care about uniqueness.\n // It’s likely that that doesn’t happen very frequently.\n // It is more likely that it wastes precious time.\n self.parser.defined.push(identifier);\n\n // To do: `markdown-rs` interrupt.\n // // You’d be interrupting.\n // tokenizer.interrupt = true\n return ok(code);\n }\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeTitleBefore(effects, ok, nok) {\n return titleBefore;\n\n /**\n * After destination, at whitespace.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function titleBefore(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, beforeMarker)(code) : nok(code);\n }\n\n /**\n * At title.\n *\n * ```markdown\n * | [a]: b\n * > | \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function beforeMarker(code) {\n return factoryTitle(effects, titleAfter, nok, \"definitionTitle\", \"definitionTitleMarker\", \"definitionTitleString\")(code);\n }\n\n /**\n * After title.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function titleAfter(code) {\n return markdownSpace(code) ? factorySpace(effects, titleAfterOptionalWhitespace, \"whitespace\")(code) : titleAfterOptionalWhitespace(code);\n }\n\n /**\n * After title, after optional whitespace.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function titleAfterOptionalWhitespace(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const hardBreakEscape = {\n name: 'hardBreakEscape',\n tokenize: tokenizeHardBreakEscape\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n return start;\n\n /**\n * Start of a hard break (escape).\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"hardBreakEscape\");\n effects.consume(code);\n return after;\n }\n\n /**\n * After `\\`, at eol.\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (markdownLineEnding(code)) {\n effects.exit(\"hardBreakEscape\");\n return ok(code);\n }\n return nok(code);\n }\n}","/**\n * @import {\n * Construct,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer,\n * Token\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEndingOrSpace, markdownLineEnding, markdownSpace } from 'micromark-util-character';\nimport { splice } from 'micromark-util-chunked';\n/** @type {Construct} */\nexport const headingAtx = {\n name: 'headingAtx',\n resolve: resolveHeadingAtx,\n tokenize: tokenizeHeadingAtx\n};\n\n/** @type {Resolver} */\nfunction resolveHeadingAtx(events, context) {\n let contentEnd = events.length - 2;\n let contentStart = 3;\n /** @type {Token} */\n let content;\n /** @type {Token} */\n let text;\n\n // Prefix whitespace, part of the opening.\n if (events[contentStart][1].type === \"whitespace\") {\n contentStart += 2;\n }\n\n // Suffix whitespace, part of the closing.\n if (contentEnd - 2 > contentStart && events[contentEnd][1].type === \"whitespace\") {\n contentEnd -= 2;\n }\n if (events[contentEnd][1].type === \"atxHeadingSequence\" && (contentStart === contentEnd - 1 || contentEnd - 4 > contentStart && events[contentEnd - 2][1].type === \"whitespace\")) {\n contentEnd -= contentStart + 1 === contentEnd ? 2 : 4;\n }\n if (contentEnd > contentStart) {\n content = {\n type: \"atxHeadingText\",\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end\n };\n text = {\n type: \"chunkText\",\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end,\n contentType: \"text\"\n };\n splice(events, contentStart, contentEnd - contentStart + 1, [['enter', content, context], ['enter', text, context], ['exit', text, context], ['exit', content, context]]);\n }\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeHeadingAtx(effects, ok, nok) {\n let size = 0;\n return start;\n\n /**\n * Start of a heading (atx).\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse indent like `markdown-rs`.\n effects.enter(\"atxHeading\");\n return before(code);\n }\n\n /**\n * After optional whitespace, at `#`.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter(\"atxHeadingSequence\");\n return sequenceOpen(code);\n }\n\n /**\n * In opening sequence.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === 35 && size++ < 6) {\n effects.consume(code);\n return sequenceOpen;\n }\n\n // Always at least one `#`.\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit(\"atxHeadingSequence\");\n return atBreak(code);\n }\n return nok(code);\n }\n\n /**\n * After something, before something else.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === 35) {\n effects.enter(\"atxHeadingSequence\");\n return sequenceFurther(code);\n }\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"atxHeading\");\n // To do: interrupt like `markdown-rs`.\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n return ok(code);\n }\n if (markdownSpace(code)) {\n return factorySpace(effects, atBreak, \"whitespace\")(code);\n }\n\n // To do: generate `data` tokens, add the `text` token later.\n // Needs edit map, see: `markdown.rs`.\n effects.enter(\"atxHeadingText\");\n return data(code);\n }\n\n /**\n * In further sequence (after whitespace).\n *\n * Could be normal “visible” hashes in the heading or a final sequence.\n *\n * ```markdown\n * > | ## aa ##\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceFurther(code) {\n if (code === 35) {\n effects.consume(code);\n return sequenceFurther;\n }\n effects.exit(\"atxHeadingSequence\");\n return atBreak(code);\n }\n\n /**\n * In text.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function data(code) {\n if (code === null || code === 35 || markdownLineEndingOrSpace(code)) {\n effects.exit(\"atxHeadingText\");\n return atBreak(code);\n }\n effects.consume(code);\n return data;\n }\n}","/**\n * List of lowercase HTML “block” tag names.\n *\n * The list, when parsing HTML (flow), results in more relaxed rules (condition\n * 6).\n * Because they are known blocks, the HTML-like syntax doesn’t have to be\n * strictly parsed.\n * For tag names not in this list, a more strict algorithm (condition 7) is used\n * to detect whether the HTML-like syntax is seen as HTML (flow) or not.\n *\n * This is copied from:\n * <https://spec.commonmark.org/0.30/#html-blocks>.\n *\n * > 👉 **Note**: `search` was added in `CommonMark@0.31`.\n */\nexport const htmlBlockNames = [\n 'address',\n 'article',\n 'aside',\n 'base',\n 'basefont',\n 'blockquote',\n 'body',\n 'caption',\n 'center',\n 'col',\n 'colgroup',\n 'dd',\n 'details',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'frame',\n 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hr',\n 'html',\n 'iframe',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'menu',\n 'menuitem',\n 'nav',\n 'noframes',\n 'ol',\n 'optgroup',\n 'option',\n 'p',\n 'param',\n 'search',\n 'section',\n 'summary',\n 'table',\n 'tbody',\n 'td',\n 'tfoot',\n 'th',\n 'thead',\n 'title',\n 'tr',\n 'track',\n 'ul'\n]\n\n/**\n * List of lowercase HTML “raw” tag names.\n *\n * The list, when parsing HTML (flow), results in HTML that can include lines\n * without exiting, until a closing tag also in this list is found (condition\n * 1).\n *\n * This module is copied from:\n * <https://spec.commonmark.org/0.30/#html-blocks>.\n *\n * > 👉 **Note**: `textarea` was added in `CommonMark@0.30`.\n */\nexport const htmlRawNames = ['pre', 'script', 'style', 'textarea']\n","/**\n * @import {\n * Code,\n * Construct,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { asciiAlphanumeric, asciiAlpha, markdownLineEndingOrSpace, markdownLineEnding, markdownSpace } from 'micromark-util-character';\nimport { htmlBlockNames, htmlRawNames } from 'micromark-util-html-tag-name';\nimport { blankLine } from './blank-line.js';\n\n/** @type {Construct} */\nexport const htmlFlow = {\n concrete: true,\n name: 'htmlFlow',\n resolveTo: resolveToHtmlFlow,\n tokenize: tokenizeHtmlFlow\n};\n\n/** @type {Construct} */\nconst blankLineBefore = {\n partial: true,\n tokenize: tokenizeBlankLineBefore\n};\nconst nonLazyContinuationStart = {\n partial: true,\n tokenize: tokenizeNonLazyContinuationStart\n};\n\n/** @type {Resolver} */\nfunction resolveToHtmlFlow(events) {\n let index = events.length;\n while (index--) {\n if (events[index][0] === 'enter' && events[index][1].type === \"htmlFlow\") {\n break;\n }\n }\n if (index > 1 && events[index - 2][1].type === \"linePrefix\") {\n // Add the prefix start to the HTML token.\n events[index][1].start = events[index - 2][1].start;\n // Add the prefix start to the HTML line token.\n events[index + 1][1].start = events[index - 2][1].start;\n // Remove the line prefix.\n events.splice(index - 2, 2);\n }\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlFlow(effects, ok, nok) {\n const self = this;\n /** @type {number} */\n let marker;\n /** @type {boolean} */\n let closingTag;\n /** @type {string} */\n let buffer;\n /** @type {number} */\n let index;\n /** @type {Code} */\n let markerB;\n return start;\n\n /**\n * Start of HTML (flow).\n *\n * ```markdown\n * > | <x />\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse indent like `markdown-rs`.\n return before(code);\n }\n\n /**\n * At `<`, after optional whitespace.\n *\n * ```markdown\n * > | <x />\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter(\"htmlFlow\");\n effects.enter(\"htmlFlowData\");\n effects.consume(code);\n return open;\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | <x />\n * ^\n * > | <!doctype>\n * ^\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 33) {\n effects.consume(code);\n return declarationOpen;\n }\n if (code === 47) {\n effects.consume(code);\n closingTag = true;\n return tagCloseStart;\n }\n if (code === 63) {\n effects.consume(code);\n marker = 3;\n // To do:\n // tokenizer.concrete = true\n // To do: use `markdown-rs` style interrupt.\n // While we’re in an instruction instead of a declaration, we’re on a `?`\n // right now, so we do need to search for `>`, similar to declarations.\n return self.interrupt ? ok : continuationDeclarationInside;\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n // Always the case.\n effects.consume(code);\n buffer = String.fromCharCode(code);\n return tagName;\n }\n return nok(code);\n }\n\n /**\n * After `<!`, at declaration, comment, or CDATA.\n *\n * ```markdown\n * > | <!doctype>\n * ^\n * > | <!--xxx-->\n * ^\n * > | <![CDATA[>&<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code);\n marker = 2;\n return commentOpenInside;\n }\n if (code === 91) {\n effects.consume(code);\n marker = 5;\n index = 0;\n return cdataOpenInside;\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code);\n marker = 4;\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuationDeclarationInside;\n }\n return nok(code);\n }\n\n /**\n * After `<!-`, inside a comment, at another `-`.\n *\n * ```markdown\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code);\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuationDeclarationInside;\n }\n return nok(code);\n }\n\n /**\n * After `<![`, inside CDATA, expecting `CDATA[`.\n *\n * ```markdown\n * > | <![CDATA[>&<]]>\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = \"CDATA[\";\n if (code === value.charCodeAt(index++)) {\n effects.consume(code);\n if (index === value.length) {\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuation;\n }\n return cdataOpenInside;\n }\n return nok(code);\n }\n\n /**\n * After `</`, in closing tag, at tag name.\n *\n * ```markdown\n * > | </x>\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n // Always the case.\n effects.consume(code);\n buffer = String.fromCharCode(code);\n return tagName;\n }\n return nok(code);\n }\n\n /**\n * In tag name.\n *\n * ```markdown\n * > | <ab>\n * ^^\n * > | </ab>\n * ^^\n * ```\n *\n * @type {State}\n */\n function tagName(code) {\n if (code === null || code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n const slash = code === 47;\n const name = buffer.toLowerCase();\n if (!slash && !closingTag && htmlRawNames.includes(name)) {\n marker = 1;\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok(code) : continuation(code);\n }\n if (htmlBlockNames.includes(buffer.toLowerCase())) {\n marker = 6;\n if (slash) {\n effects.consume(code);\n return basicSelfClosing;\n }\n\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok(code) : continuation(code);\n }\n marker = 7;\n // Do not support complete HTML when interrupting.\n return self.interrupt && !self.parser.lazy[self.now().line] ? nok(code) : closingTag ? completeClosingTagAfter(code) : completeAttributeNameBefore(code);\n }\n\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code);\n buffer += String.fromCharCode(code);\n return tagName;\n }\n return nok(code);\n }\n\n /**\n * After closing slash of a basic tag name.\n *\n * ```markdown\n * > | <div/>\n * ^\n * ```\n *\n * @type {State}\n */\n function basicSelfClosing(code) {\n if (code === 62) {\n effects.consume(code);\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuation;\n }\n return nok(code);\n }\n\n /**\n * After closing slash of a complete tag name.\n *\n * ```markdown\n * > | <x/>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeClosingTagAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code);\n return completeClosingTagAfter;\n }\n return completeEnd(code);\n }\n\n /**\n * At an attribute name.\n *\n * At first, this state is used after a complete tag name, after whitespace,\n * where it expects optional attributes or the end of the tag.\n * It is also reused after attributes, when expecting more optional\n * attributes.\n *\n * ```markdown\n * > | <a />\n * ^\n * > | <a :b>\n * ^\n * > | <a _b>\n * ^\n * > | <a b>\n * ^\n * > | <a >\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeNameBefore(code) {\n if (code === 47) {\n effects.consume(code);\n return completeEnd;\n }\n\n // ASCII alphanumerical and `:` and `_`.\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code);\n return completeAttributeName;\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return completeAttributeNameBefore;\n }\n return completeEnd(code);\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | <a :b>\n * ^\n * > | <a _b>\n * ^\n * > | <a b>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeName(code) {\n // ASCII alphanumerical and `-`, `.`, `:`, and `_`.\n if (code === 45 || code === 46 || code === 58 || code === 95 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return completeAttributeName;\n }\n return completeAttributeNameAfter(code);\n }\n\n /**\n * After attribute name, at an optional initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | <a b>\n * ^\n * > | <a b=c>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code);\n return completeAttributeValueBefore;\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return completeAttributeNameAfter;\n }\n return completeAttributeNameBefore(code);\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | <a b=c>\n * ^\n * > | <a b=\"c\">\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueBefore(code) {\n if (code === null || code === 60 || code === 61 || code === 62 || code === 96) {\n return nok(code);\n }\n if (code === 34 || code === 39) {\n effects.consume(code);\n markerB = code;\n return completeAttributeValueQuoted;\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return completeAttributeValueBefore;\n }\n return completeAttributeValueUnquoted(code);\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | <a b=\"c\">\n * ^\n * > | <a b='c'>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueQuoted(code) {\n if (code === markerB) {\n effects.consume(code);\n markerB = null;\n return completeAttributeValueQuotedAfter;\n }\n if (code === null || markdownLineEnding(code)) {\n return nok(code);\n }\n effects.consume(code);\n return completeAttributeValueQuoted;\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | <a b=c>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueUnquoted(code) {\n if (code === null || code === 34 || code === 39 || code === 47 || code === 60 || code === 61 || code === 62 || code === 96 || markdownLineEndingOrSpace(code)) {\n return completeAttributeNameAfter(code);\n }\n effects.consume(code);\n return completeAttributeValueUnquoted;\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the\n * end of the tag.\n *\n * ```markdown\n * > | <a b=\"c\">\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownSpace(code)) {\n return completeAttributeNameBefore(code);\n }\n return nok(code);\n }\n\n /**\n * In certain circumstances of a complete tag where only an `>` is allowed.\n *\n * ```markdown\n * > | <a b=\"c\">\n * ^\n * ```\n *\n * @type {State}\n */\n function completeEnd(code) {\n if (code === 62) {\n effects.consume(code);\n return completeAfter;\n }\n return nok(code);\n }\n\n /**\n * After `>` in a complete tag.\n *\n * ```markdown\n * > | <x>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n // // Do not form containers.\n // tokenizer.concrete = true\n return continuation(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return completeAfter;\n }\n return nok(code);\n }\n\n /**\n * In continuation of any HTML kind.\n *\n * ```markdown\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */\n function continuation(code) {\n if (code === 45 && marker === 2) {\n effects.consume(code);\n return continuationCommentInside;\n }\n if (code === 60 && marker === 1) {\n effects.consume(code);\n return continuationRawTagOpen;\n }\n if (code === 62 && marker === 4) {\n effects.consume(code);\n return continuationClose;\n }\n if (code === 63 && marker === 3) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n if (code === 93 && marker === 5) {\n effects.consume(code);\n return continuationCdataInside;\n }\n if (markdownLineEnding(code) && (marker === 6 || marker === 7)) {\n effects.exit(\"htmlFlowData\");\n return effects.check(blankLineBefore, continuationAfter, continuationStart)(code);\n }\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"htmlFlowData\");\n return continuationStart(code);\n }\n effects.consume(code);\n return continuation;\n }\n\n /**\n * In continuation, at eol.\n *\n * ```markdown\n * > | <x>\n * ^\n * | asd\n * ```\n *\n * @type {State}\n */\n function continuationStart(code) {\n return effects.check(nonLazyContinuationStart, continuationStartNonLazy, continuationAfter)(code);\n }\n\n /**\n * In continuation, at eol, before non-lazy content.\n *\n * ```markdown\n * > | <x>\n * ^\n * | asd\n * ```\n *\n * @type {State}\n */\n function continuationStartNonLazy(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return continuationBefore;\n }\n\n /**\n * In continuation, before non-lazy content.\n *\n * ```markdown\n * | <x>\n * > | asd\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n return continuationStart(code);\n }\n effects.enter(\"htmlFlowData\");\n return continuation(code);\n }\n\n /**\n * In comment continuation, after one `-`, expecting another.\n *\n * ```markdown\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCommentInside(code) {\n if (code === 45) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n return continuation(code);\n }\n\n /**\n * In raw continuation, after `<`, at `/`.\n *\n * ```markdown\n * > | <script>console.log(1)</script>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code);\n buffer = '';\n return continuationRawEndTag;\n }\n return continuation(code);\n }\n\n /**\n * In raw continuation, after `</`, in a raw tag name.\n *\n * ```markdown\n * > | <script>console.log(1)</script>\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function continuationRawEndTag(code) {\n if (code === 62) {\n const name = buffer.toLowerCase();\n if (htmlRawNames.includes(name)) {\n effects.consume(code);\n return continuationClose;\n }\n return continuation(code);\n }\n if (asciiAlpha(code) && buffer.length < 8) {\n // Always the case.\n effects.consume(code);\n buffer += String.fromCharCode(code);\n return continuationRawEndTag;\n }\n return continuation(code);\n }\n\n /**\n * In cdata continuation, after `]`, expecting `]>`.\n *\n * ```markdown\n * > | <![CDATA[>&<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCdataInside(code) {\n if (code === 93) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n return continuation(code);\n }\n\n /**\n * In declaration or instruction continuation, at `>`.\n *\n * ```markdown\n * > | <!-->\n * ^\n * > | <?>\n * ^\n * > | <!q>\n * ^\n * > | <!--ab-->\n * ^\n * > | <![CDATA[>&<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code);\n return continuationClose;\n }\n\n // More dashes.\n if (code === 45 && marker === 2) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n return continuation(code);\n }\n\n /**\n * In closed continuation: everything we get until the eol/eof is part of it.\n *\n * ```markdown\n * > | <!doctype>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationClose(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"htmlFlowData\");\n return continuationAfter(code);\n }\n effects.consume(code);\n return continuationClose;\n }\n\n /**\n * Done.\n *\n * ```markdown\n * > | <!doctype>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationAfter(code) {\n effects.exit(\"htmlFlow\");\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n // // No longer concrete.\n // tokenizer.concrete = false\n return ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuationStart(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * At eol, before continuation.\n *\n * ```markdown\n * > | * ```js\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return after;\n }\n return nok(code);\n }\n\n /**\n * A continuation.\n *\n * ```markdown\n * | * ```js\n * > | b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLineBefore(effects, ok, nok) {\n return start;\n\n /**\n * Before eol, expecting blank line.\n *\n * ```markdown\n * > | <div>\n * ^\n * |\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return effects.attempt(blankLine, ok, nok);\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { asciiAlphanumeric, asciiAlpha, markdownLineEndingOrSpace, markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlText(effects, ok, nok) {\n const self = this;\n /** @type {NonNullable<Code> | undefined} */\n let marker;\n /** @type {number} */\n let index;\n /** @type {State} */\n let returnState;\n return start;\n\n /**\n * Start of HTML (text).\n *\n * ```markdown\n * > | a <b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"htmlText\");\n effects.enter(\"htmlTextData\");\n effects.consume(code);\n return open;\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | a <b> c\n * ^\n * > | a <!doctype> c\n * ^\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 33) {\n effects.consume(code);\n return declarationOpen;\n }\n if (code === 47) {\n effects.consume(code);\n return tagCloseStart;\n }\n if (code === 63) {\n effects.consume(code);\n return instruction;\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code);\n return tagOpen;\n }\n return nok(code);\n }\n\n /**\n * After `<!`, at declaration, comment, or CDATA.\n *\n * ```markdown\n * > | a <!doctype> c\n * ^\n * > | a <!--b--> c\n * ^\n * > | a <![CDATA[>&<]]> c\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code);\n return commentOpenInside;\n }\n if (code === 91) {\n effects.consume(code);\n index = 0;\n return cdataOpenInside;\n }\n if (asciiAlpha(code)) {\n effects.consume(code);\n return declaration;\n }\n return nok(code);\n }\n\n /**\n * In a comment, after `<!-`, at another `-`.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code);\n return commentEnd;\n }\n return nok(code);\n }\n\n /**\n * In comment.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function comment(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 45) {\n effects.consume(code);\n return commentClose;\n }\n if (markdownLineEnding(code)) {\n returnState = comment;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return comment;\n }\n\n /**\n * In comment, after `-`.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code);\n return commentEnd;\n }\n return comment(code);\n }\n\n /**\n * In comment, after `--`.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentEnd(code) {\n return code === 62 ? end(code) : code === 45 ? commentClose(code) : comment(code);\n }\n\n /**\n * After `<![`, in CDATA, expecting `CDATA[`.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = \"CDATA[\";\n if (code === value.charCodeAt(index++)) {\n effects.consume(code);\n return index === value.length ? cdata : cdataOpenInside;\n }\n return nok(code);\n }\n\n /**\n * In CDATA.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^^^\n * ```\n *\n * @type {State}\n */\n function cdata(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 93) {\n effects.consume(code);\n return cdataClose;\n }\n if (markdownLineEnding(code)) {\n returnState = cdata;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return cdata;\n }\n\n /**\n * In CDATA, after `]`, at another `]`.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code);\n return cdataEnd;\n }\n return cdata(code);\n }\n\n /**\n * In CDATA, after `]]`, at `>`.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataEnd(code) {\n if (code === 62) {\n return end(code);\n }\n if (code === 93) {\n effects.consume(code);\n return cdataEnd;\n }\n return cdata(code);\n }\n\n /**\n * In declaration.\n *\n * ```markdown\n * > | a <!b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code);\n }\n if (markdownLineEnding(code)) {\n returnState = declaration;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return declaration;\n }\n\n /**\n * In instruction.\n *\n * ```markdown\n * > | a <?b?> c\n * ^\n * ```\n *\n * @type {State}\n */\n function instruction(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 63) {\n effects.consume(code);\n return instructionClose;\n }\n if (markdownLineEnding(code)) {\n returnState = instruction;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return instruction;\n }\n\n /**\n * In instruction, after `?`, at `>`.\n *\n * ```markdown\n * > | a <?b?> c\n * ^\n * ```\n *\n * @type {State}\n */\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code);\n }\n\n /**\n * After `</`, in closing tag, at tag name.\n *\n * ```markdown\n * > | a </b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code);\n return tagClose;\n }\n return nok(code);\n }\n\n /**\n * After `</x`, in a tag name.\n *\n * ```markdown\n * > | a </b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagClose(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagClose;\n }\n return tagCloseBetween(code);\n }\n\n /**\n * In closing tag, after tag name.\n *\n * ```markdown\n * > | a </b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagCloseBetween;\n }\n return end(code);\n }\n\n /**\n * After `<x`, in opening tag name.\n *\n * ```markdown\n * > | a <b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpen(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagOpen;\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n return nok(code);\n }\n\n /**\n * In opening tag, after tag name.\n *\n * ```markdown\n * > | a <b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code);\n return end;\n }\n\n // ASCII alphabetical and `:` and `_`.\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code);\n return tagOpenAttributeName;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenBetween;\n }\n return end(code);\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | a <b c> d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeName(code) {\n // ASCII alphabetical and `-`, `.`, `:`, and `_`.\n if (code === 45 || code === 46 || code === 58 || code === 95 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagOpenAttributeName;\n }\n return tagOpenAttributeNameAfter(code);\n }\n\n /**\n * After attribute name, before initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | a <b c> d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code);\n return tagOpenAttributeValueBefore;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenAttributeNameAfter;\n }\n return tagOpenBetween(code);\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | a <b c=d> e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueBefore(code) {\n if (code === null || code === 60 || code === 61 || code === 62 || code === 96) {\n return nok(code);\n }\n if (code === 34 || code === 39) {\n effects.consume(code);\n marker = code;\n return tagOpenAttributeValueQuoted;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenAttributeValueBefore;\n }\n effects.consume(code);\n return tagOpenAttributeValueUnquoted;\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | a <b c=\"d\"> e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code);\n marker = undefined;\n return tagOpenAttributeValueQuotedAfter;\n }\n if (code === null) {\n return nok(code);\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return tagOpenAttributeValueQuoted;\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | a <b c=d> e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueUnquoted(code) {\n if (code === null || code === 34 || code === 39 || code === 60 || code === 61 || code === 96) {\n return nok(code);\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n effects.consume(code);\n return tagOpenAttributeValueUnquoted;\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the end\n * of the tag.\n *\n * ```markdown\n * > | a <b c=\"d\"> e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n return nok(code);\n }\n\n /**\n * In certain circumstances of a tag where only an `>` is allowed.\n *\n * ```markdown\n * > | a <b c=\"d\"> e\n * ^\n * ```\n *\n * @type {State}\n */\n function end(code) {\n if (code === 62) {\n effects.consume(code);\n effects.exit(\"htmlTextData\");\n effects.exit(\"htmlText\");\n return ok;\n }\n return nok(code);\n }\n\n /**\n * At eol.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * > | a <!--a\n * ^\n * | b-->\n * ```\n *\n * @type {State}\n */\n function lineEndingBefore(code) {\n effects.exit(\"htmlTextData\");\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return lineEndingAfter;\n }\n\n /**\n * After eol, at optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a <!--a\n * > | b-->\n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfter(code) {\n // Always populated by defaults.\n\n return markdownSpace(code) ? factorySpace(effects, lineEndingAfterPrefix, \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code) : lineEndingAfterPrefix(code);\n }\n\n /**\n * After eol, after optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a <!--a\n * > | b-->\n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfterPrefix(code) {\n effects.enter(\"htmlTextData\");\n return returnState(code);\n }\n}","/**\n * @import {\n * Construct,\n * Event,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer,\n * Token\n * } from 'micromark-util-types'\n */\n\nimport { factoryDestination } from 'micromark-factory-destination';\nimport { factoryLabel } from 'micromark-factory-label';\nimport { factoryTitle } from 'micromark-factory-title';\nimport { factoryWhitespace } from 'micromark-factory-whitespace';\nimport { markdownLineEndingOrSpace } from 'micromark-util-character';\nimport { push, splice } from 'micromark-util-chunked';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/** @type {Construct} */\nexport const labelEnd = {\n name: 'labelEnd',\n resolveAll: resolveAllLabelEnd,\n resolveTo: resolveToLabelEnd,\n tokenize: tokenizeLabelEnd\n};\n\n/** @type {Construct} */\nconst resourceConstruct = {\n tokenize: tokenizeResource\n};\n/** @type {Construct} */\nconst referenceFullConstruct = {\n tokenize: tokenizeReferenceFull\n};\n/** @type {Construct} */\nconst referenceCollapsedConstruct = {\n tokenize: tokenizeReferenceCollapsed\n};\n\n/** @type {Resolver} */\nfunction resolveAllLabelEnd(events) {\n let index = -1;\n /** @type {Array<Event>} */\n const newEvents = [];\n while (++index < events.length) {\n const token = events[index][1];\n newEvents.push(events[index]);\n if (token.type === \"labelImage\" || token.type === \"labelLink\" || token.type === \"labelEnd\") {\n // Remove the marker.\n const offset = token.type === \"labelImage\" ? 4 : 2;\n token.type = \"data\";\n index += offset;\n }\n }\n\n // If the events are equal, we don't have to copy newEvents to events\n if (events.length !== newEvents.length) {\n splice(events, 0, events.length, newEvents);\n }\n return events;\n}\n\n/** @type {Resolver} */\nfunction resolveToLabelEnd(events, context) {\n let index = events.length;\n let offset = 0;\n /** @type {Token} */\n let token;\n /** @type {number | undefined} */\n let open;\n /** @type {number | undefined} */\n let close;\n /** @type {Array<Event>} */\n let media;\n\n // Find an opening.\n while (index--) {\n token = events[index][1];\n if (open) {\n // If we see another link, or inactive link label, we’ve been here before.\n if (token.type === \"link\" || token.type === \"labelLink\" && token._inactive) {\n break;\n }\n\n // Mark other link openings as inactive, as we can’t have links in\n // links.\n if (events[index][0] === 'enter' && token.type === \"labelLink\") {\n token._inactive = true;\n }\n } else if (close) {\n if (events[index][0] === 'enter' && (token.type === \"labelImage\" || token.type === \"labelLink\") && !token._balanced) {\n open = index;\n if (token.type !== \"labelLink\") {\n offset = 2;\n break;\n }\n }\n } else if (token.type === \"labelEnd\") {\n close = index;\n }\n }\n const group = {\n type: events[open][1].type === \"labelLink\" ? \"link\" : \"image\",\n start: {\n ...events[open][1].start\n },\n end: {\n ...events[events.length - 1][1].end\n }\n };\n const label = {\n type: \"label\",\n start: {\n ...events[open][1].start\n },\n end: {\n ...events[close][1].end\n }\n };\n const text = {\n type: \"labelText\",\n start: {\n ...events[open + offset + 2][1].end\n },\n end: {\n ...events[close - 2][1].start\n }\n };\n media = [['enter', group, context], ['enter', label, context]];\n\n // Opening marker.\n media = push(media, events.slice(open + 1, open + offset + 3));\n\n // Text open.\n media = push(media, [['enter', text, context]]);\n\n // Always populated by defaults.\n\n // Between.\n media = push(media, resolveAll(context.parser.constructs.insideSpan.null, events.slice(open + offset + 4, close - 3), context));\n\n // Text close, marker close, label close.\n media = push(media, [['exit', text, context], events[close - 2], events[close - 1], ['exit', label, context]]);\n\n // Reference, resource, or so.\n media = push(media, events.slice(close + 1));\n\n // Media close.\n media = push(media, [['exit', group, context]]);\n splice(events, open, events.length, media);\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLabelEnd(effects, ok, nok) {\n const self = this;\n let index = self.events.length;\n /** @type {Token} */\n let labelStart;\n /** @type {boolean} */\n let defined;\n\n // Find an opening.\n while (index--) {\n if ((self.events[index][1].type === \"labelImage\" || self.events[index][1].type === \"labelLink\") && !self.events[index][1]._balanced) {\n labelStart = self.events[index][1];\n break;\n }\n }\n return start;\n\n /**\n * Start of label end.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // If there is not an okay opening.\n if (!labelStart) {\n return nok(code);\n }\n\n // If the corresponding label (link) start is marked as inactive,\n // it means we’d be wrapping a link, like this:\n //\n // ```markdown\n // > | a [b [c](d) e](f) g.\n // ^\n // ```\n //\n // We can’t have that, so it’s just balanced brackets.\n if (labelStart._inactive) {\n return labelEndNok(code);\n }\n defined = self.parser.defined.includes(normalizeIdentifier(self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })));\n effects.enter(\"labelEnd\");\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelEnd\");\n return after;\n }\n\n /**\n * After `]`.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // Note: `markdown-rs` also parses GFM footnotes here, which for us is in\n // an extension.\n\n // Resource (`[asd](fgh)`)?\n if (code === 40) {\n return effects.attempt(resourceConstruct, labelEndOk, defined ? labelEndOk : labelEndNok)(code);\n }\n\n // Full (`[asd][fgh]`) or collapsed (`[asd][]`) reference?\n if (code === 91) {\n return effects.attempt(referenceFullConstruct, labelEndOk, defined ? referenceNotFull : labelEndNok)(code);\n }\n\n // Shortcut (`[asd]`) reference?\n return defined ? labelEndOk(code) : labelEndNok(code);\n }\n\n /**\n * After `]`, at `[`, but not at a full reference.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceNotFull(code) {\n return effects.attempt(referenceCollapsedConstruct, labelEndOk, labelEndNok)(code);\n }\n\n /**\n * Done, we found something.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndOk(code) {\n // Note: `markdown-rs` does a bunch of stuff here.\n return ok(code);\n }\n\n /**\n * Done, it’s nothing.\n *\n * There was an okay opening, but we didn’t match anything.\n *\n * ```markdown\n * > | [a](b c\n * ^\n * > | [a][b c\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndNok(code) {\n labelStart._balanced = true;\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeResource(effects, ok, nok) {\n return resourceStart;\n\n /**\n * At a resource.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceStart(code) {\n effects.enter(\"resource\");\n effects.enter(\"resourceMarker\");\n effects.consume(code);\n effects.exit(\"resourceMarker\");\n return resourceBefore;\n }\n\n /**\n * In resource, after `(`, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBefore(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceOpen)(code) : resourceOpen(code);\n }\n\n /**\n * In resource, after optional whitespace, at `)` or a destination.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceOpen(code) {\n if (code === 41) {\n return resourceEnd(code);\n }\n return factoryDestination(effects, resourceDestinationAfter, resourceDestinationMissing, \"resourceDestination\", \"resourceDestinationLiteral\", \"resourceDestinationLiteralMarker\", \"resourceDestinationRaw\", \"resourceDestinationString\", 32)(code);\n }\n\n /**\n * In resource, after destination, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationAfter(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceBetween)(code) : resourceEnd(code);\n }\n\n /**\n * At invalid destination.\n *\n * ```markdown\n * > | [a](<<) b\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationMissing(code) {\n return nok(code);\n }\n\n /**\n * In resource, after destination and whitespace, at `(` or title.\n *\n * ```markdown\n * > | [a](b ) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBetween(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(effects, resourceTitleAfter, nok, \"resourceTitle\", \"resourceTitleMarker\", \"resourceTitleString\")(code);\n }\n return resourceEnd(code);\n }\n\n /**\n * In resource, after title, at optional whitespace.\n *\n * ```markdown\n * > | [a](b \"c\") d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceTitleAfter(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceEnd)(code) : resourceEnd(code);\n }\n\n /**\n * In resource, at `)`.\n *\n * ```markdown\n * > | [a](b) d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceEnd(code) {\n if (code === 41) {\n effects.enter(\"resourceMarker\");\n effects.consume(code);\n effects.exit(\"resourceMarker\");\n effects.exit(\"resource\");\n return ok;\n }\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceFull(effects, ok, nok) {\n const self = this;\n return referenceFull;\n\n /**\n * In a reference (full), at the `[`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFull(code) {\n return factoryLabel.call(self, effects, referenceFullAfter, referenceFullMissing, \"reference\", \"referenceMarker\", \"referenceString\")(code);\n }\n\n /**\n * In a reference (full), after `]`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullAfter(code) {\n return self.parser.defined.includes(normalizeIdentifier(self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1))) ? ok(code) : nok(code);\n }\n\n /**\n * In reference (full) that was missing.\n *\n * ```markdown\n * > | [a][b d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullMissing(code) {\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceCollapsed(effects, ok, nok) {\n return referenceCollapsedStart;\n\n /**\n * In reference (collapsed), at `[`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedStart(code) {\n // We only attempt a collapsed label if there’s a `[`.\n\n effects.enter(\"reference\");\n effects.enter(\"referenceMarker\");\n effects.consume(code);\n effects.exit(\"referenceMarker\");\n return referenceCollapsedOpen;\n }\n\n /**\n * In reference (collapsed), at `]`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedOpen(code) {\n if (code === 93) {\n effects.enter(\"referenceMarker\");\n effects.consume(code);\n effects.exit(\"referenceMarker\");\n effects.exit(\"reference\");\n return ok;\n }\n return nok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { labelEnd } from './label-end.js';\n\n/** @type {Construct} */\nexport const labelStartImage = {\n name: 'labelStartImage',\n resolveAll: labelEnd.resolveAll,\n tokenize: tokenizeLabelStartImage\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * Start of label (image) start.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"labelImage\");\n effects.enter(\"labelImageMarker\");\n effects.consume(code);\n effects.exit(\"labelImageMarker\");\n return open;\n }\n\n /**\n * After `!`, at `[`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 91) {\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelImage\");\n return after;\n }\n return nok(code);\n }\n\n /**\n * After `![`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * This is needed in because, when GFM footnotes are enabled, images never\n * form when started with a `^`.\n * Instead, links form:\n *\n * ```markdown\n * ![^a](b)\n *\n * ![^a][b]\n *\n * [b]: c\n * ```\n *\n * ```html\n * <p>!<a href=\\\"b\\\">^a</a></p>\n * <p>!<a href=\\\"c\\\">^a</a></p>\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // To do: use a new field to do this, this is still needed for\n // `micromark-extension-gfm-footnote`, but the `label-start-link`\n // behavior isn’t.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs ? nok(code) : ok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { labelEnd } from './label-end.js';\n\n/** @type {Construct} */\nexport const labelStartLink = {\n name: 'labelStartLink',\n resolveAll: labelEnd.resolveAll,\n tokenize: tokenizeLabelStartLink\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * Start of label (link) start.\n *\n * ```markdown\n * > | a [b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"labelLink\");\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelLink\");\n return after;\n }\n\n /** @type {State} */\n function after(code) {\n // To do: this isn’t needed in `micromark-extension-gfm-footnote`,\n // remove.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs ? nok(code) : ok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLineEnding(effects, ok) {\n return start;\n\n /** @type {State} */\n function start(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return factorySpace(effects, ok, \"linePrefix\");\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const thematicBreak = {\n name: 'thematicBreak',\n tokenize: tokenizeThematicBreak\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeThematicBreak(effects, ok, nok) {\n let size = 0;\n /** @type {NonNullable<Code>} */\n let marker;\n return start;\n\n /**\n * Start of thematic break.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"thematicBreak\");\n // To do: parse indent like `markdown-rs`.\n return before(code);\n }\n\n /**\n * After optional whitespace, at marker.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n marker = code;\n return atBreak(code);\n }\n\n /**\n * After something, before something else.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === marker) {\n effects.enter(\"thematicBreakSequence\");\n return sequence(code);\n }\n if (size >= 3 && (code === null || markdownLineEnding(code))) {\n effects.exit(\"thematicBreak\");\n return ok(code);\n }\n return nok(code);\n }\n\n /**\n * In sequence.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function sequence(code) {\n if (code === marker) {\n effects.consume(code);\n size++;\n return sequence;\n }\n effects.exit(\"thematicBreakSequence\");\n return markdownSpace(code) ? factorySpace(effects, atBreak, \"whitespace\")(code) : atBreak(code);\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * Exiter,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { asciiDigit, markdownSpace } from 'micromark-util-character';\nimport { blankLine } from './blank-line.js';\nimport { thematicBreak } from './thematic-break.js';\n\n/** @type {Construct} */\nexport const list = {\n continuation: {\n tokenize: tokenizeListContinuation\n },\n exit: tokenizeListEnd,\n name: 'list',\n tokenize: tokenizeListStart\n};\n\n/** @type {Construct} */\nconst listItemPrefixWhitespaceConstruct = {\n partial: true,\n tokenize: tokenizeListItemPrefixWhitespace\n};\n\n/** @type {Construct} */\nconst indentConstruct = {\n partial: true,\n tokenize: tokenizeIndent\n};\n\n// To do: `markdown-rs` parses list items on their own and later stitches them\n// together.\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeListStart(effects, ok, nok) {\n const self = this;\n const tail = self.events[self.events.length - 1];\n let initialSize = tail && tail[1].type === \"linePrefix\" ? tail[2].sliceSerialize(tail[1], true).length : 0;\n let size = 0;\n return start;\n\n /** @type {State} */\n function start(code) {\n const kind = self.containerState.type || (code === 42 || code === 43 || code === 45 ? \"listUnordered\" : \"listOrdered\");\n if (kind === \"listUnordered\" ? !self.containerState.marker || code === self.containerState.marker : asciiDigit(code)) {\n if (!self.containerState.type) {\n self.containerState.type = kind;\n effects.enter(kind, {\n _container: true\n });\n }\n if (kind === \"listUnordered\") {\n effects.enter(\"listItemPrefix\");\n return code === 42 || code === 45 ? effects.check(thematicBreak, nok, atMarker)(code) : atMarker(code);\n }\n if (!self.interrupt || code === 49) {\n effects.enter(\"listItemPrefix\");\n effects.enter(\"listItemValue\");\n return inside(code);\n }\n }\n return nok(code);\n }\n\n /** @type {State} */\n function inside(code) {\n if (asciiDigit(code) && ++size < 10) {\n effects.consume(code);\n return inside;\n }\n if ((!self.interrupt || size < 2) && (self.containerState.marker ? code === self.containerState.marker : code === 41 || code === 46)) {\n effects.exit(\"listItemValue\");\n return atMarker(code);\n }\n return nok(code);\n }\n\n /**\n * @type {State}\n **/\n function atMarker(code) {\n effects.enter(\"listItemMarker\");\n effects.consume(code);\n effects.exit(\"listItemMarker\");\n self.containerState.marker = self.containerState.marker || code;\n return effects.check(blankLine,\n // Can’t be empty when interrupting.\n self.interrupt ? nok : onBlank, effects.attempt(listItemPrefixWhitespaceConstruct, endOfPrefix, otherPrefix));\n }\n\n /** @type {State} */\n function onBlank(code) {\n self.containerState.initialBlankLine = true;\n initialSize++;\n return endOfPrefix(code);\n }\n\n /** @type {State} */\n function otherPrefix(code) {\n if (markdownSpace(code)) {\n effects.enter(\"listItemPrefixWhitespace\");\n effects.consume(code);\n effects.exit(\"listItemPrefixWhitespace\");\n return endOfPrefix;\n }\n return nok(code);\n }\n\n /** @type {State} */\n function endOfPrefix(code) {\n self.containerState.size = initialSize + self.sliceSerialize(effects.exit(\"listItemPrefix\"), true).length;\n return ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeListContinuation(effects, ok, nok) {\n const self = this;\n self.containerState._closeFlow = undefined;\n return effects.check(blankLine, onBlank, notBlank);\n\n /** @type {State} */\n function onBlank(code) {\n self.containerState.furtherBlankLines = self.containerState.furtherBlankLines || self.containerState.initialBlankLine;\n\n // We have a blank line.\n // Still, try to consume at most the items size.\n return factorySpace(effects, ok, \"listItemIndent\", self.containerState.size + 1)(code);\n }\n\n /** @type {State} */\n function notBlank(code) {\n if (self.containerState.furtherBlankLines || !markdownSpace(code)) {\n self.containerState.furtherBlankLines = undefined;\n self.containerState.initialBlankLine = undefined;\n return notInCurrentItem(code);\n }\n self.containerState.furtherBlankLines = undefined;\n self.containerState.initialBlankLine = undefined;\n return effects.attempt(indentConstruct, ok, notInCurrentItem)(code);\n }\n\n /** @type {State} */\n function notInCurrentItem(code) {\n // While we do continue, we signal that the flow should be closed.\n self.containerState._closeFlow = true;\n // As we’re closing flow, we’re no longer interrupting.\n self.interrupt = undefined;\n // Always populated by defaults.\n\n return factorySpace(effects, effects.attempt(list, ok, nok), \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeIndent(effects, ok, nok) {\n const self = this;\n return factorySpace(effects, afterPrefix, \"listItemIndent\", self.containerState.size + 1);\n\n /** @type {State} */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1];\n return tail && tail[1].type === \"listItemIndent\" && tail[2].sliceSerialize(tail[1], true).length === self.containerState.size ? ok(code) : nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Exiter}\n */\nfunction tokenizeListEnd(effects) {\n effects.exit(this.containerState.type);\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n const self = this;\n\n // Always populated by defaults.\n\n return factorySpace(effects, afterPrefix, \"listItemPrefixWhitespace\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4 + 1);\n\n /** @type {State} */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1];\n return !markdownSpace(code) && tail && tail[1].type === \"listItemPrefixWhitespace\" ? ok(code) : nok(code);\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const setextUnderline = {\n name: 'setextUnderline',\n resolveTo: resolveToSetextUnderline,\n tokenize: tokenizeSetextUnderline\n};\n\n/** @type {Resolver} */\nfunction resolveToSetextUnderline(events, context) {\n // To do: resolve like `markdown-rs`.\n let index = events.length;\n /** @type {number | undefined} */\n let content;\n /** @type {number | undefined} */\n let text;\n /** @type {number | undefined} */\n let definition;\n\n // Find the opening of the content.\n // It’ll always exist: we don’t tokenize if it isn’t there.\n while (index--) {\n if (events[index][0] === 'enter') {\n if (events[index][1].type === \"content\") {\n content = index;\n break;\n }\n if (events[index][1].type === \"paragraph\") {\n text = index;\n }\n }\n // Exit\n else {\n if (events[index][1].type === \"content\") {\n // Remove the content end (if needed we’ll add it later)\n events.splice(index, 1);\n }\n if (!definition && events[index][1].type === \"definition\") {\n definition = index;\n }\n }\n }\n const heading = {\n type: \"setextHeading\",\n start: {\n ...events[content][1].start\n },\n end: {\n ...events[events.length - 1][1].end\n }\n };\n\n // Change the paragraph to setext heading text.\n events[text][1].type = \"setextHeadingText\";\n\n // If we have definitions in the content, we’ll keep on having content,\n // but we need move it.\n if (definition) {\n events.splice(text, 0, ['enter', heading, context]);\n events.splice(definition + 1, 0, ['exit', events[content][1], context]);\n events[content][1].end = {\n ...events[definition][1].end\n };\n } else {\n events[content][1] = heading;\n }\n\n // Add the heading exit at the end.\n events.push(['exit', heading, context]);\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n const self = this;\n /** @type {NonNullable<Code>} */\n let marker;\n return start;\n\n /**\n * At start of heading (setext) underline.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n let index = self.events.length;\n /** @type {boolean | undefined} */\n let paragraph;\n // Find an opening.\n while (index--) {\n // Skip enter/exit of line ending, line prefix, and content.\n // We can now either have a definition or a paragraph.\n if (self.events[index][1].type !== \"lineEnding\" && self.events[index][1].type !== \"linePrefix\" && self.events[index][1].type !== \"content\") {\n paragraph = self.events[index][1].type === \"paragraph\";\n break;\n }\n }\n\n // To do: handle lazy/pierce like `markdown-rs`.\n // To do: parse indent like `markdown-rs`.\n if (!self.parser.lazy[self.now().line] && (self.interrupt || paragraph)) {\n effects.enter(\"setextHeadingLine\");\n marker = code;\n return before(code);\n }\n return nok(code);\n }\n\n /**\n * After optional whitespace, at `-` or `=`.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter(\"setextHeadingLineSequence\");\n return inside(code);\n }\n\n /**\n * In sequence.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code);\n return inside;\n }\n effects.exit(\"setextHeadingLineSequence\");\n return markdownSpace(code) ? factorySpace(effects, after, \"lineSuffix\")(code) : after(code);\n }\n\n /**\n * After sequence, after optional whitespace.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"setextHeadingLine\");\n return ok(code);\n }\n return nok(code);\n }\n}","/**\n * @import {\n * InitialConstruct,\n * Initializer,\n * State,\n * TokenizeContext\n * } from 'micromark-util-types'\n */\n\nimport { blankLine, content } from 'micromark-core-commonmark';\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {InitialConstruct} */\nexport const flow = {\n tokenize: initializeFlow\n};\n\n/**\n * @this {TokenizeContext}\n * Self.\n * @type {Initializer}\n * Initializer.\n */\nfunction initializeFlow(effects) {\n const self = this;\n const initial = effects.attempt(\n // Try to parse a blank line.\n blankLine, atBlankEnding,\n // Try to parse initial flow (essentially, only code).\n effects.attempt(this.parser.constructs.flowInitial, afterConstruct, factorySpace(effects, effects.attempt(this.parser.constructs.flow, afterConstruct, effects.attempt(content, afterConstruct)), \"linePrefix\")));\n return initial;\n\n /** @type {State} */\n function atBlankEnding(code) {\n if (code === null) {\n effects.consume(code);\n return;\n }\n effects.enter(\"lineEndingBlank\");\n effects.consume(code);\n effects.exit(\"lineEndingBlank\");\n self.currentConstruct = undefined;\n return initial;\n }\n\n /** @type {State} */\n function afterConstruct(code) {\n if (code === null) {\n effects.consume(code);\n return;\n }\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n self.currentConstruct = undefined;\n return initial;\n }\n}","/**\n * @import {\n * Code,\n * InitialConstruct,\n * Initializer,\n * Resolver,\n * State,\n * TokenizeContext\n * } from 'micromark-util-types'\n */\n\nexport const resolver = {\n resolveAll: createResolver()\n};\nexport const string = initializeFactory('string');\nexport const text = initializeFactory('text');\n\n/**\n * @param {'string' | 'text'} field\n * Field.\n * @returns {InitialConstruct}\n * Construct.\n */\nfunction initializeFactory(field) {\n return {\n resolveAll: createResolver(field === 'text' ? resolveAllLineSuffixes : undefined),\n tokenize: initializeText\n };\n\n /**\n * @this {TokenizeContext}\n * Context.\n * @type {Initializer}\n */\n function initializeText(effects) {\n const self = this;\n const constructs = this.parser.constructs[field];\n const text = effects.attempt(constructs, start, notText);\n return start;\n\n /** @type {State} */\n function start(code) {\n return atBreak(code) ? text(code) : notText(code);\n }\n\n /** @type {State} */\n function notText(code) {\n if (code === null) {\n effects.consume(code);\n return;\n }\n effects.enter(\"data\");\n effects.consume(code);\n return data;\n }\n\n /** @type {State} */\n function data(code) {\n if (atBreak(code)) {\n effects.exit(\"data\");\n return text(code);\n }\n\n // Data.\n effects.consume(code);\n return data;\n }\n\n /**\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether the code is a break.\n */\n function atBreak(code) {\n if (code === null) {\n return true;\n }\n const list = constructs[code];\n let index = -1;\n if (list) {\n // Always populated by defaults.\n\n while (++index < list.length) {\n const item = list[index];\n if (!item.previous || item.previous.call(self, self.previous)) {\n return true;\n }\n }\n }\n return false;\n }\n }\n}\n\n/**\n * @param {Resolver | undefined} [extraResolver]\n * Resolver.\n * @returns {Resolver}\n * Resolver.\n */\nfunction createResolver(extraResolver) {\n return resolveAllText;\n\n /** @type {Resolver} */\n function resolveAllText(events, context) {\n let index = -1;\n /** @type {number | undefined} */\n let enter;\n\n // A rather boring computation (to merge adjacent `data` events) which\n // improves mm performance by 29%.\n while (++index <= events.length) {\n if (enter === undefined) {\n if (events[index] && events[index][1].type === \"data\") {\n enter = index;\n index++;\n }\n } else if (!events[index] || events[index][1].type !== \"data\") {\n // Don’t do anything if there is one data token.\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end;\n events.splice(enter + 2, index - enter - 2);\n index = enter + 2;\n }\n enter = undefined;\n }\n }\n return extraResolver ? extraResolver(events, context) : events;\n }\n}\n\n/**\n * A rather ugly set of instructions which again looks at chunks in the input\n * stream.\n * The reason to do this here is that it is *much* faster to parse in reverse.\n * And that we can’t hook into `null` to split the line suffix before an EOF.\n * To do: figure out if we can make this into a clean utility, or even in core.\n * As it will be useful for GFMs literal autolink extension (and maybe even\n * tables?)\n *\n * @type {Resolver}\n */\nfunction resolveAllLineSuffixes(events, context) {\n let eventIndex = 0; // Skip first.\n\n while (++eventIndex <= events.length) {\n if ((eventIndex === events.length || events[eventIndex][1].type === \"lineEnding\") && events[eventIndex - 1][1].type === \"data\") {\n const data = events[eventIndex - 1][1];\n const chunks = context.sliceStream(data);\n let index = chunks.length;\n let bufferIndex = -1;\n let size = 0;\n /** @type {boolean | undefined} */\n let tabs;\n while (index--) {\n const chunk = chunks[index];\n if (typeof chunk === 'string') {\n bufferIndex = chunk.length;\n while (chunk.charCodeAt(bufferIndex - 1) === 32) {\n size++;\n bufferIndex--;\n }\n if (bufferIndex) break;\n bufferIndex = -1;\n }\n // Number\n else if (chunk === -2) {\n tabs = true;\n size++;\n } else if (chunk === -1) {\n // Empty\n } else {\n // Replacement character, exit.\n index++;\n break;\n }\n }\n\n // Allow final trailing whitespace.\n if (context._contentTypeTextTrailing && eventIndex === events.length) {\n size = 0;\n }\n if (size) {\n const token = {\n type: eventIndex === events.length || tabs || size < 2 ? \"lineSuffix\" : \"hardBreakTrailing\",\n start: {\n _bufferIndex: index ? bufferIndex : data.start._bufferIndex + bufferIndex,\n _index: data.start._index + index,\n line: data.end.line,\n column: data.end.column - size,\n offset: data.end.offset - size\n },\n end: {\n ...data.end\n }\n };\n data.end = {\n ...token.start\n };\n if (data.start.offset === data.end.offset) {\n Object.assign(data, token);\n } else {\n events.splice(eventIndex, 0, ['enter', token, context], ['exit', token, context]);\n eventIndex += 2;\n }\n }\n eventIndex++;\n }\n }\n return events;\n}","/**\n * @import {Extension} from 'micromark-util-types'\n */\n\nimport { attention, autolink, blockQuote, characterEscape, characterReference, codeFenced, codeIndented, codeText, definition, hardBreakEscape, headingAtx, htmlFlow, htmlText, labelEnd, labelStartImage, labelStartLink, lineEnding, list, setextUnderline, thematicBreak } from 'micromark-core-commonmark';\nimport { resolver as resolveText } from './initialize/text.js';\n\n/** @satisfies {Extension['document']} */\nexport const document = {\n [42]: list,\n [43]: list,\n [45]: list,\n [48]: list,\n [49]: list,\n [50]: list,\n [51]: list,\n [52]: list,\n [53]: list,\n [54]: list,\n [55]: list,\n [56]: list,\n [57]: list,\n [62]: blockQuote\n};\n\n/** @satisfies {Extension['contentInitial']} */\nexport const contentInitial = {\n [91]: definition\n};\n\n/** @satisfies {Extension['flowInitial']} */\nexport const flowInitial = {\n [-2]: codeIndented,\n [-1]: codeIndented,\n [32]: codeIndented\n};\n\n/** @satisfies {Extension['flow']} */\nexport const flow = {\n [35]: headingAtx,\n [42]: thematicBreak,\n [45]: [setextUnderline, thematicBreak],\n [60]: htmlFlow,\n [61]: setextUnderline,\n [95]: thematicBreak,\n [96]: codeFenced,\n [126]: codeFenced\n};\n\n/** @satisfies {Extension['string']} */\nexport const string = {\n [38]: characterReference,\n [92]: characterEscape\n};\n\n/** @satisfies {Extension['text']} */\nexport const text = {\n [-5]: lineEnding,\n [-4]: lineEnding,\n [-3]: lineEnding,\n [33]: labelStartImage,\n [38]: characterReference,\n [42]: attention,\n [60]: [autolink, htmlText],\n [91]: labelStartLink,\n [92]: [hardBreakEscape, characterEscape],\n [93]: labelEnd,\n [95]: attention,\n [96]: codeText\n};\n\n/** @satisfies {Extension['insideSpan']} */\nexport const insideSpan = {\n null: [attention, resolveText]\n};\n\n/** @satisfies {Extension['attentionMarkers']} */\nexport const attentionMarkers = {\n null: [42, 95]\n};\n\n/** @satisfies {Extension['disable']} */\nexport const disable = {\n null: []\n};","/**\n * @import {\n * Chunk,\n * Code,\n * ConstructRecord,\n * Construct,\n * Effects,\n * InitialConstruct,\n * ParseContext,\n * Point,\n * State,\n * TokenizeContext,\n * Token\n * } from 'micromark-util-types'\n */\n\n/**\n * @callback Restore\n * Restore the state.\n * @returns {undefined}\n * Nothing.\n *\n * @typedef Info\n * Info.\n * @property {Restore} restore\n * Restore.\n * @property {number} from\n * From.\n *\n * @callback ReturnHandle\n * Handle a successful run.\n * @param {Construct} construct\n * Construct.\n * @param {Info} info\n * Info.\n * @returns {undefined}\n * Nothing.\n */\n\nimport { markdownLineEnding } from 'micromark-util-character';\nimport { push, splice } from 'micromark-util-chunked';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/**\n * Create a tokenizer.\n * Tokenizers deal with one type of data (e.g., containers, flow, text).\n * The parser is the object dealing with it all.\n * `initialize` works like other constructs, except that only its `tokenize`\n * function is used, in which case it doesn’t receive an `ok` or `nok`.\n * `from` can be given to set the point before the first character, although\n * when further lines are indented, they must be set with `defineSkip`.\n *\n * @param {ParseContext} parser\n * Parser.\n * @param {InitialConstruct} initialize\n * Construct.\n * @param {Omit<Point, '_bufferIndex' | '_index'> | undefined} [from]\n * Point (optional).\n * @returns {TokenizeContext}\n * Context.\n */\nexport function createTokenizer(parser, initialize, from) {\n /** @type {Point} */\n let point = {\n _bufferIndex: -1,\n _index: 0,\n line: from && from.line || 1,\n column: from && from.column || 1,\n offset: from && from.offset || 0\n };\n /** @type {Record<string, number>} */\n const columnStart = {};\n /** @type {Array<Construct>} */\n const resolveAllConstructs = [];\n /** @type {Array<Chunk>} */\n let chunks = [];\n /** @type {Array<Token>} */\n let stack = [];\n /** @type {boolean | undefined} */\n let consumed = true;\n\n /**\n * Tools used for tokenizing.\n *\n * @type {Effects}\n */\n const effects = {\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n consume,\n enter,\n exit,\n interrupt: constructFactory(onsuccessfulcheck, {\n interrupt: true\n })\n };\n\n /**\n * State and tools for resolving and serializing.\n *\n * @type {TokenizeContext}\n */\n const context = {\n code: null,\n containerState: {},\n defineSkip,\n events: [],\n now,\n parser,\n previous: null,\n sliceSerialize,\n sliceStream,\n write\n };\n\n /**\n * The state function.\n *\n * @type {State | undefined}\n */\n let state = initialize.tokenize.call(context, effects);\n\n /**\n * Track which character we expect to be consumed, to catch bugs.\n *\n * @type {Code}\n */\n let expectedCode;\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize);\n }\n return context;\n\n /** @type {TokenizeContext['write']} */\n function write(slice) {\n chunks = push(chunks, slice);\n main();\n\n // Exit if we’re not done, resolve might change stuff.\n if (chunks[chunks.length - 1] !== null) {\n return [];\n }\n addResult(initialize, 0);\n\n // Otherwise, resolve, and exit.\n context.events = resolveAll(resolveAllConstructs, context.events, context);\n return context.events;\n }\n\n //\n // Tools.\n //\n\n /** @type {TokenizeContext['sliceSerialize']} */\n function sliceSerialize(token, expandTabs) {\n return serializeChunks(sliceStream(token), expandTabs);\n }\n\n /** @type {TokenizeContext['sliceStream']} */\n function sliceStream(token) {\n return sliceChunks(chunks, token);\n }\n\n /** @type {TokenizeContext['now']} */\n function now() {\n // This is a hot path, so we clone manually instead of `Object.assign({}, point)`\n const {\n _bufferIndex,\n _index,\n line,\n column,\n offset\n } = point;\n return {\n _bufferIndex,\n _index,\n line,\n column,\n offset\n };\n }\n\n /** @type {TokenizeContext['defineSkip']} */\n function defineSkip(value) {\n columnStart[value.line] = value.column;\n accountForPotentialSkip();\n }\n\n //\n // State management.\n //\n\n /**\n * Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n * `consume`).\n * Here is where we walk through the chunks, which either include strings of\n * several characters, or numerical character codes.\n * The reason to do this in a loop instead of a call is so the stack can\n * drain.\n *\n * @returns {undefined}\n * Nothing.\n */\n function main() {\n /** @type {number} */\n let chunkIndex;\n while (point._index < chunks.length) {\n const chunk = chunks[point._index];\n\n // If we’re in a buffer chunk, loop through it.\n if (typeof chunk === 'string') {\n chunkIndex = point._index;\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0;\n }\n while (point._index === chunkIndex && point._bufferIndex < chunk.length) {\n go(chunk.charCodeAt(point._bufferIndex));\n }\n } else {\n go(chunk);\n }\n }\n }\n\n /**\n * Deal with one code.\n *\n * @param {Code} code\n * Code.\n * @returns {undefined}\n * Nothing.\n */\n function go(code) {\n consumed = undefined;\n expectedCode = code;\n state = state(code);\n }\n\n /** @type {Effects['consume']} */\n function consume(code) {\n if (markdownLineEnding(code)) {\n point.line++;\n point.column = 1;\n point.offset += code === -3 ? 2 : 1;\n accountForPotentialSkip();\n } else if (code !== -1) {\n point.column++;\n point.offset++;\n }\n\n // Not in a string chunk.\n if (point._bufferIndex < 0) {\n point._index++;\n } else {\n point._bufferIndex++;\n\n // At end of string chunk.\n if (point._bufferIndex ===\n // Points w/ non-negative `_bufferIndex` reference\n // strings.\n /** @type {string} */\n chunks[point._index].length) {\n point._bufferIndex = -1;\n point._index++;\n }\n }\n\n // Expose the previous character.\n context.previous = code;\n\n // Mark as consumed.\n consumed = true;\n }\n\n /** @type {Effects['enter']} */\n function enter(type, fields) {\n /** @type {Token} */\n // @ts-expect-error Patch instead of assign required fields to help GC.\n const token = fields || {};\n token.type = type;\n token.start = now();\n context.events.push(['enter', token, context]);\n stack.push(token);\n return token;\n }\n\n /** @type {Effects['exit']} */\n function exit(type) {\n const token = stack.pop();\n token.end = now();\n context.events.push(['exit', token, context]);\n return token;\n }\n\n /**\n * Use results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from);\n }\n\n /**\n * Discard results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulcheck(_, info) {\n info.restore();\n }\n\n /**\n * Factory to attempt/check/interrupt.\n *\n * @param {ReturnHandle} onreturn\n * Callback.\n * @param {{interrupt?: boolean | undefined} | undefined} [fields]\n * Fields.\n */\n function constructFactory(onreturn, fields) {\n return hook;\n\n /**\n * Handle either an object mapping codes to constructs, a list of\n * constructs, or a single construct.\n *\n * @param {Array<Construct> | ConstructRecord | Construct} constructs\n * Constructs.\n * @param {State} returnState\n * State.\n * @param {State | undefined} [bogusState]\n * State.\n * @returns {State}\n * State.\n */\n function hook(constructs, returnState, bogusState) {\n /** @type {ReadonlyArray<Construct>} */\n let listOfConstructs;\n /** @type {number} */\n let constructIndex;\n /** @type {Construct} */\n let currentConstruct;\n /** @type {Info} */\n let info;\n return Array.isArray(constructs) ? /* c8 ignore next 1 */\n handleListOfConstructs(constructs) : 'tokenize' in constructs ?\n // Looks like a construct.\n handleListOfConstructs([(/** @type {Construct} */constructs)]) : handleMapOfConstructs(constructs);\n\n /**\n * Handle a list of construct.\n *\n * @param {ConstructRecord} map\n * Constructs.\n * @returns {State}\n * State.\n */\n function handleMapOfConstructs(map) {\n return start;\n\n /** @type {State} */\n function start(code) {\n const left = code !== null && map[code];\n const all = code !== null && map.null;\n const list = [\n // To do: add more extension tests.\n /* c8 ignore next 2 */\n ...(Array.isArray(left) ? left : left ? [left] : []), ...(Array.isArray(all) ? all : all ? [all] : [])];\n return handleListOfConstructs(list)(code);\n }\n }\n\n /**\n * Handle a list of construct.\n *\n * @param {ReadonlyArray<Construct>} list\n * Constructs.\n * @returns {State}\n * State.\n */\n function handleListOfConstructs(list) {\n listOfConstructs = list;\n constructIndex = 0;\n if (list.length === 0) {\n return bogusState;\n }\n return handleConstruct(list[constructIndex]);\n }\n\n /**\n * Handle a single construct.\n *\n * @param {Construct} construct\n * Construct.\n * @returns {State}\n * State.\n */\n function handleConstruct(construct) {\n return start;\n\n /** @type {State} */\n function start(code) {\n // To do: not needed to store if there is no bogus state, probably?\n // Currently doesn’t work because `inspect` in document does a check\n // w/o a bogus, which doesn’t make sense. But it does seem to help perf\n // by not storing.\n info = store();\n currentConstruct = construct;\n if (!construct.partial) {\n context.currentConstruct = construct;\n }\n\n // Always populated by defaults.\n\n if (construct.name && context.parser.constructs.disable.null.includes(construct.name)) {\n return nok(code);\n }\n return construct.tokenize.call(\n // If we do have fields, create an object w/ `context` as its\n // prototype.\n // This allows a “live binding”, which is needed for `interrupt`.\n fields ? Object.assign(Object.create(context), fields) : context, effects, ok, nok)(code);\n }\n }\n\n /** @type {State} */\n function ok(code) {\n consumed = true;\n onreturn(currentConstruct, info);\n return returnState;\n }\n\n /** @type {State} */\n function nok(code) {\n consumed = true;\n info.restore();\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex]);\n }\n return bogusState;\n }\n }\n }\n\n /**\n * @param {Construct} construct\n * Construct.\n * @param {number} from\n * From.\n * @returns {undefined}\n * Nothing.\n */\n function addResult(construct, from) {\n if (construct.resolveAll && !resolveAllConstructs.includes(construct)) {\n resolveAllConstructs.push(construct);\n }\n if (construct.resolve) {\n splice(context.events, from, context.events.length - from, construct.resolve(context.events.slice(from), context));\n }\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context);\n }\n }\n\n /**\n * Store state.\n *\n * @returns {Info}\n * Info.\n */\n function store() {\n const startPoint = now();\n const startPrevious = context.previous;\n const startCurrentConstruct = context.currentConstruct;\n const startEventsIndex = context.events.length;\n const startStack = Array.from(stack);\n return {\n from: startEventsIndex,\n restore\n };\n\n /**\n * Restore state.\n *\n * @returns {undefined}\n * Nothing.\n */\n function restore() {\n point = startPoint;\n context.previous = startPrevious;\n context.currentConstruct = startCurrentConstruct;\n context.events.length = startEventsIndex;\n stack = startStack;\n accountForPotentialSkip();\n }\n }\n\n /**\n * Move the current point a bit forward in the line when it’s on a column\n * skip.\n *\n * @returns {undefined}\n * Nothing.\n */\n function accountForPotentialSkip() {\n if (point.line in columnStart && point.column < 2) {\n point.column = columnStart[point.line];\n point.offset += columnStart[point.line] - 1;\n }\n }\n}\n\n/**\n * Get the chunks from a slice of chunks in the range of a token.\n *\n * @param {ReadonlyArray<Chunk>} chunks\n * Chunks.\n * @param {Pick<Token, 'end' | 'start'>} token\n * Token.\n * @returns {Array<Chunk>}\n * Chunks.\n */\nfunction sliceChunks(chunks, token) {\n const startIndex = token.start._index;\n const startBufferIndex = token.start._bufferIndex;\n const endIndex = token.end._index;\n const endBufferIndex = token.end._bufferIndex;\n /** @type {Array<Chunk>} */\n let view;\n if (startIndex === endIndex) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)];\n } else {\n view = chunks.slice(startIndex, endIndex);\n if (startBufferIndex > -1) {\n const head = view[0];\n if (typeof head === 'string') {\n view[0] = head.slice(startBufferIndex);\n /* c8 ignore next 4 -- used to be used, no longer */\n } else {\n view.shift();\n }\n }\n if (endBufferIndex > 0) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view.push(chunks[endIndex].slice(0, endBufferIndex));\n }\n }\n return view;\n}\n\n/**\n * Get the string value of a slice of chunks.\n *\n * @param {ReadonlyArray<Chunk>} chunks\n * Chunks.\n * @param {boolean | undefined} [expandTabs=false]\n * Whether to expand tabs (default: `false`).\n * @returns {string}\n * Result.\n */\nfunction serializeChunks(chunks, expandTabs) {\n let index = -1;\n /** @type {Array<string>} */\n const result = [];\n /** @type {boolean | undefined} */\n let atTab;\n while (++index < chunks.length) {\n const chunk = chunks[index];\n /** @type {string} */\n let value;\n if (typeof chunk === 'string') {\n value = chunk;\n } else switch (chunk) {\n case -5:\n {\n value = \"\\r\";\n break;\n }\n case -4:\n {\n value = \"\\n\";\n break;\n }\n case -3:\n {\n value = \"\\r\" + \"\\n\";\n break;\n }\n case -2:\n {\n value = expandTabs ? \" \" : \"\\t\";\n break;\n }\n case -1:\n {\n if (!expandTabs && atTab) continue;\n value = \" \";\n break;\n }\n default:\n {\n // Currently only replacement character.\n value = String.fromCharCode(chunk);\n }\n }\n atTab = chunk === -2;\n result.push(value);\n }\n return result.join('');\n}","/**\n * @import {\n * Create,\n * FullNormalizedExtension,\n * InitialConstruct,\n * ParseContext,\n * ParseOptions\n * } from 'micromark-util-types'\n */\n\nimport { combineExtensions } from 'micromark-util-combine-extensions';\nimport { content } from './initialize/content.js';\nimport { document } from './initialize/document.js';\nimport { flow } from './initialize/flow.js';\nimport { string, text } from './initialize/text.js';\nimport * as defaultConstructs from './constructs.js';\nimport { createTokenizer } from './create-tokenizer.js';\n\n/**\n * @param {ParseOptions | null | undefined} [options]\n * Configuration (optional).\n * @returns {ParseContext}\n * Parser.\n */\nexport function parse(options) {\n const settings = options || {};\n const constructs = /** @type {FullNormalizedExtension} */\n combineExtensions([defaultConstructs, ...(settings.extensions || [])]);\n\n /** @type {ParseContext} */\n const parser = {\n constructs,\n content: create(content),\n defined: [],\n document: create(document),\n flow: create(flow),\n lazy: {},\n string: create(string),\n text: create(text)\n };\n return parser;\n\n /**\n * @param {InitialConstruct} initial\n * Construct to start with.\n * @returns {Create}\n * Create a tokenizer.\n */\n function create(initial) {\n return creator;\n /** @type {Create} */\n function creator(from) {\n return createTokenizer(parser, initial, from);\n }\n }\n}","/**\n * @import {Event} from 'micromark-util-types'\n */\n\nimport { subtokenize } from 'micromark-util-subtokenize';\n\n/**\n * @param {Array<Event>} events\n * Events.\n * @returns {Array<Event>}\n * Events.\n */\nexport function postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n return events;\n}","/**\n * @import {Chunk, Code, Encoding, Value} from 'micromark-util-types'\n */\n\n/**\n * @callback Preprocessor\n * Preprocess a value.\n * @param {Value} value\n * Value.\n * @param {Encoding | null | undefined} [encoding]\n * Encoding when `value` is a typed array (optional).\n * @param {boolean | null | undefined} [end=false]\n * Whether this is the last chunk (default: `false`).\n * @returns {Array<Chunk>}\n * Chunks.\n */\n\nconst search = /[\\0\\t\\n\\r]/g;\n\n/**\n * @returns {Preprocessor}\n * Preprocess a value.\n */\nexport function preprocess() {\n let column = 1;\n let buffer = '';\n /** @type {boolean | undefined} */\n let start = true;\n /** @type {boolean | undefined} */\n let atCarriageReturn;\n return preprocessor;\n\n /** @type {Preprocessor} */\n // eslint-disable-next-line complexity\n function preprocessor(value, encoding, end) {\n /** @type {Array<Chunk>} */\n const chunks = [];\n /** @type {RegExpMatchArray | null} */\n let match;\n /** @type {number} */\n let next;\n /** @type {number} */\n let startPosition;\n /** @type {number} */\n let endPosition;\n /** @type {Code} */\n let code;\n value = buffer + (typeof value === 'string' ? value.toString() : new TextDecoder(encoding || undefined).decode(value));\n startPosition = 0;\n buffer = '';\n if (start) {\n // To do: `markdown-rs` actually parses BOMs (byte order mark).\n if (value.charCodeAt(0) === 65279) {\n startPosition++;\n }\n start = undefined;\n }\n while (startPosition < value.length) {\n search.lastIndex = startPosition;\n match = search.exec(value);\n endPosition = match && match.index !== undefined ? match.index : value.length;\n code = value.charCodeAt(endPosition);\n if (!match) {\n buffer = value.slice(startPosition);\n break;\n }\n if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n chunks.push(-3);\n atCarriageReturn = undefined;\n } else {\n if (atCarriageReturn) {\n chunks.push(-5);\n atCarriageReturn = undefined;\n }\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition));\n column += endPosition - startPosition;\n }\n switch (code) {\n case 0:\n {\n chunks.push(65533);\n column++;\n break;\n }\n case 9:\n {\n next = Math.ceil(column / 4) * 4;\n chunks.push(-2);\n while (column++ < next) chunks.push(-1);\n break;\n }\n case 10:\n {\n chunks.push(-4);\n column = 1;\n break;\n }\n default:\n {\n atCarriageReturn = true;\n column = 1;\n }\n }\n }\n startPosition = endPosition + 1;\n }\n if (end) {\n if (atCarriageReturn) chunks.push(-5);\n if (buffer) chunks.push(buffer);\n chunks.push(null);\n }\n return chunks;\n }\n}","import { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { decodeNumericCharacterReference } from 'micromark-util-decode-numeric-character-reference';\nconst characterEscapeOrReference = /\\\\([!-/:-@[-`{-~])|&(#(?:\\d{1,7}|x[\\da-f]{1,6})|[\\da-z]{1,31});/gi;\n\n/**\n * Decode markdown strings (which occur in places such as fenced code info\n * strings, destinations, labels, and titles).\n *\n * The “string” content type allows character escapes and -references.\n * This decodes those.\n *\n * @param {string} value\n * Value to decode.\n * @returns {string}\n * Decoded value.\n */\nexport function decodeString(value) {\n return value.replace(characterEscapeOrReference, decode);\n}\n\n/**\n * @param {string} $0\n * Match.\n * @param {string} $1\n * Character escape.\n * @param {string} $2\n * Character reference.\n * @returns {string}\n * Decoded value\n */\nfunction decode($0, $1, $2) {\n if ($1) {\n // Escape.\n return $1;\n }\n\n // Reference.\n const head = $2.charCodeAt(0);\n if (head === 35) {\n const head = $2.charCodeAt(1);\n const hex = head === 120 || head === 88;\n return decodeNumericCharacterReference($2.slice(hex ? 2 : 1), hex ? 16 : 10);\n }\n return decodeNamedCharacterReference($2) || $0;\n}","/**\n * @import {\n * Break,\n * Blockquote,\n * Code,\n * Definition,\n * Emphasis,\n * Heading,\n * Html,\n * Image,\n * InlineCode,\n * Link,\n * ListItem,\n * List,\n * Nodes,\n * Paragraph,\n * PhrasingContent,\n * ReferenceType,\n * Root,\n * Strong,\n * Text,\n * ThematicBreak\n * } from 'mdast'\n * @import {\n * Encoding,\n * Event,\n * Token,\n * Value\n * } from 'micromark-util-types'\n * @import {Point} from 'unist'\n * @import {\n * CompileContext,\n * CompileData,\n * Config,\n * Extension,\n * Handle,\n * OnEnterError,\n * Options\n * } from './types.js'\n */\n\nimport { toString } from 'mdast-util-to-string';\nimport { parse, postprocess, preprocess } from 'micromark';\nimport { decodeNumericCharacterReference } from 'micromark-util-decode-numeric-character-reference';\nimport { decodeString } from 'micromark-util-decode-string';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\nimport { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { stringifyPosition } from 'unist-util-stringify-position';\nconst own = {}.hasOwnProperty;\n\n/**\n * Turn markdown into a syntax tree.\n *\n * @overload\n * @param {Value} value\n * @param {Encoding | null | undefined} [encoding]\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @overload\n * @param {Value} value\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @param {Value} value\n * Markdown to parse.\n * @param {Encoding | Options | null | undefined} [encoding]\n * Character encoding for when `value` is `Buffer`.\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {Root}\n * mdast tree.\n */\nexport function fromMarkdown(value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding;\n encoding = undefined;\n }\n return compiler(options)(postprocess(parse(options).document().write(preprocess()(value, encoding, true))));\n}\n\n/**\n * Note this compiler only understand complete buffering, not streaming.\n *\n * @param {Options | null | undefined} [options]\n */\nfunction compiler(options) {\n /** @type {Config} */\n const config = {\n transforms: [],\n canContainEols: ['emphasis', 'fragment', 'heading', 'paragraph', 'strong'],\n enter: {\n autolink: opener(link),\n autolinkProtocol: onenterdata,\n autolinkEmail: onenterdata,\n atxHeading: opener(heading),\n blockQuote: opener(blockQuote),\n characterEscape: onenterdata,\n characterReference: onenterdata,\n codeFenced: opener(codeFlow),\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: opener(codeFlow, buffer),\n codeText: opener(codeText, buffer),\n codeTextData: onenterdata,\n data: onenterdata,\n codeFlowValue: onenterdata,\n definition: opener(definition),\n definitionDestinationString: buffer,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: opener(emphasis),\n hardBreakEscape: opener(hardBreak),\n hardBreakTrailing: opener(hardBreak),\n htmlFlow: opener(html, buffer),\n htmlFlowData: onenterdata,\n htmlText: opener(html, buffer),\n htmlTextData: onenterdata,\n image: opener(image),\n label: buffer,\n link: opener(link),\n listItem: opener(listItem),\n listItemValue: onenterlistitemvalue,\n listOrdered: opener(list, onenterlistordered),\n listUnordered: opener(list),\n paragraph: opener(paragraph),\n reference: onenterreference,\n referenceString: buffer,\n resourceDestinationString: buffer,\n resourceTitleString: buffer,\n setextHeading: opener(heading),\n strong: opener(strong),\n thematicBreak: opener(thematicBreak)\n },\n exit: {\n atxHeading: closer(),\n atxHeadingSequence: onexitatxheadingsequence,\n autolink: closer(),\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: closer(),\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n characterReference: onexitcharacterreference,\n codeFenced: closer(onexitcodefenced),\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: onexitcodefencedfencemeta,\n codeFlowValue: onexitdata,\n codeIndented: closer(onexitcodeindented),\n codeText: closer(onexitcodetext),\n codeTextData: onexitdata,\n data: onexitdata,\n definition: closer(),\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: closer(),\n hardBreakEscape: closer(onexithardbreak),\n hardBreakTrailing: closer(onexithardbreak),\n htmlFlow: closer(onexithtmlflow),\n htmlFlowData: onexitdata,\n htmlText: closer(onexithtmltext),\n htmlTextData: onexitdata,\n image: closer(onexitimage),\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: closer(onexitlink),\n listItem: closer(),\n listOrdered: closer(),\n listUnordered: closer(),\n paragraph: closer(),\n referenceString: onexitreferencestring,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n resource: onexitresource,\n setextHeading: closer(onexitsetextheading),\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: closer(),\n thematicBreak: closer()\n }\n };\n configure(config, (options || {}).mdastExtensions || []);\n\n /** @type {CompileData} */\n const data = {};\n return compile;\n\n /**\n * Turn micromark events into an mdast tree.\n *\n * @param {Array<Event>} events\n * Events.\n * @returns {Root}\n * mdast tree.\n */\n function compile(events) {\n /** @type {Root} */\n let tree = {\n type: 'root',\n children: []\n };\n /** @type {Omit<CompileContext, 'sliceSerialize'>} */\n const context = {\n stack: [tree],\n tokenStack: [],\n config,\n enter,\n exit,\n buffer,\n resume,\n data\n };\n /** @type {Array<number>} */\n const listStack = [];\n let index = -1;\n while (++index < events.length) {\n // We preprocess lists to add `listItem` tokens, and to infer whether\n // items the list itself are spread out.\n if (events[index][1].type === \"listOrdered\" || events[index][1].type === \"listUnordered\") {\n if (events[index][0] === 'enter') {\n listStack.push(index);\n } else {\n const tail = listStack.pop();\n index = prepareList(events, tail, index);\n }\n }\n }\n index = -1;\n while (++index < events.length) {\n const handler = config[events[index][0]];\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(Object.assign({\n sliceSerialize: events[index][2].sliceSerialize\n }, context), events[index][1]);\n }\n }\n\n // Handle tokens still being open.\n if (context.tokenStack.length > 0) {\n const tail = context.tokenStack[context.tokenStack.length - 1];\n const handler = tail[1] || defaultOnError;\n handler.call(context, undefined, tail[0]);\n }\n\n // Figure out `root` position.\n tree.position = {\n start: point(events.length > 0 ? events[0][1].start : {\n line: 1,\n column: 1,\n offset: 0\n }),\n end: point(events.length > 0 ? events[events.length - 2][1].end : {\n line: 1,\n column: 1,\n offset: 0\n })\n };\n\n // Call transforms.\n index = -1;\n while (++index < config.transforms.length) {\n tree = config.transforms[index](tree) || tree;\n }\n return tree;\n }\n\n /**\n * @param {Array<Event>} events\n * @param {number} start\n * @param {number} length\n * @returns {number}\n */\n function prepareList(events, start, length) {\n let index = start - 1;\n let containerBalance = -1;\n let listSpread = false;\n /** @type {Token | undefined} */\n let listItem;\n /** @type {number | undefined} */\n let lineIndex;\n /** @type {number | undefined} */\n let firstBlankLineIndex;\n /** @type {boolean | undefined} */\n let atMarker;\n while (++index <= length) {\n const event = events[index];\n switch (event[1].type) {\n case \"listUnordered\":\n case \"listOrdered\":\n case \"blockQuote\":\n {\n if (event[0] === 'enter') {\n containerBalance++;\n } else {\n containerBalance--;\n }\n atMarker = undefined;\n break;\n }\n case \"lineEndingBlank\":\n {\n if (event[0] === 'enter') {\n if (listItem && !atMarker && !containerBalance && !firstBlankLineIndex) {\n firstBlankLineIndex = index;\n }\n atMarker = undefined;\n }\n break;\n }\n case \"linePrefix\":\n case \"listItemValue\":\n case \"listItemMarker\":\n case \"listItemPrefix\":\n case \"listItemPrefixWhitespace\":\n {\n // Empty.\n\n break;\n }\n default:\n {\n atMarker = undefined;\n }\n }\n if (!containerBalance && event[0] === 'enter' && event[1].type === \"listItemPrefix\" || containerBalance === -1 && event[0] === 'exit' && (event[1].type === \"listUnordered\" || event[1].type === \"listOrdered\")) {\n if (listItem) {\n let tailIndex = index;\n lineIndex = undefined;\n while (tailIndex--) {\n const tailEvent = events[tailIndex];\n if (tailEvent[1].type === \"lineEnding\" || tailEvent[1].type === \"lineEndingBlank\") {\n if (tailEvent[0] === 'exit') continue;\n if (lineIndex) {\n events[lineIndex][1].type = \"lineEndingBlank\";\n listSpread = true;\n }\n tailEvent[1].type = \"lineEnding\";\n lineIndex = tailIndex;\n } else if (tailEvent[1].type === \"linePrefix\" || tailEvent[1].type === \"blockQuotePrefix\" || tailEvent[1].type === \"blockQuotePrefixWhitespace\" || tailEvent[1].type === \"blockQuoteMarker\" || tailEvent[1].type === \"listItemIndent\") {\n // Empty\n } else {\n break;\n }\n }\n if (firstBlankLineIndex && (!lineIndex || firstBlankLineIndex < lineIndex)) {\n listItem._spread = true;\n }\n\n // Fix position.\n listItem.end = Object.assign({}, lineIndex ? events[lineIndex][1].start : event[1].end);\n events.splice(lineIndex || index, 0, ['exit', listItem, event[2]]);\n index++;\n length++;\n }\n\n // Create a new list item.\n if (event[1].type === \"listItemPrefix\") {\n /** @type {Token} */\n const item = {\n type: 'listItem',\n _spread: false,\n start: Object.assign({}, event[1].start),\n // @ts-expect-error: we’ll add `end` in a second.\n end: undefined\n };\n listItem = item;\n events.splice(index, 0, ['enter', item, event[2]]);\n index++;\n length++;\n firstBlankLineIndex = undefined;\n atMarker = true;\n }\n }\n }\n events[start][1]._spread = listSpread;\n return length;\n }\n\n /**\n * Create an opener handle.\n *\n * @param {(token: Token) => Nodes} create\n * Create a node.\n * @param {Handle | undefined} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function opener(create, and) {\n return open;\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {undefined}\n */\n function open(token) {\n enter.call(this, create(token), token);\n if (and) and.call(this, token);\n }\n }\n\n /**\n * @type {CompileContext['buffer']}\n */\n function buffer() {\n this.stack.push({\n type: 'fragment',\n children: []\n });\n }\n\n /**\n * @type {CompileContext['enter']}\n */\n function enter(node, token, errorHandler) {\n const parent = this.stack[this.stack.length - 1];\n /** @type {Array<Nodes>} */\n const siblings = parent.children;\n siblings.push(node);\n this.stack.push(node);\n this.tokenStack.push([token, errorHandler || undefined]);\n node.position = {\n start: point(token.start),\n // @ts-expect-error: `end` will be patched later.\n end: undefined\n };\n }\n\n /**\n * Create a closer handle.\n *\n * @param {Handle | undefined} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function closer(and) {\n return close;\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {undefined}\n */\n function close(token) {\n if (and) and.call(this, token);\n exit.call(this, token);\n }\n }\n\n /**\n * @type {CompileContext['exit']}\n */\n function exit(token, onExitError) {\n const node = this.stack.pop();\n const open = this.tokenStack.pop();\n if (!open) {\n throw new Error('Cannot close `' + token.type + '` (' + stringifyPosition({\n start: token.start,\n end: token.end\n }) + '): it’s not open');\n } else if (open[0].type !== token.type) {\n if (onExitError) {\n onExitError.call(this, token, open[0]);\n } else {\n const handler = open[1] || defaultOnError;\n handler.call(this, token, open[0]);\n }\n }\n node.position.end = point(token.end);\n }\n\n /**\n * @type {CompileContext['resume']}\n */\n function resume() {\n return toString(this.stack.pop());\n }\n\n //\n // Handlers.\n //\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistordered() {\n this.data.expectingFirstListItemValue = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistitemvalue(token) {\n if (this.data.expectingFirstListItemValue) {\n const ancestor = this.stack[this.stack.length - 2];\n ancestor.start = Number.parseInt(this.sliceSerialize(token), 10);\n this.data.expectingFirstListItemValue = undefined;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfenceinfo() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.lang = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfencemeta() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.meta = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (this.data.flowCodeInside) return;\n this.buffer();\n this.data.flowCodeInside = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefenced() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, '');\n this.data.flowCodeInside = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodeindented() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data.replace(/(\\r?\\n|\\r)$/g, '');\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitionlabelstring(token) {\n const label = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.label = label;\n node.identifier = normalizeIdentifier(this.sliceSerialize(token)).toLowerCase();\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiontitlestring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.title = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiondestinationstring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.url = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitatxheadingsequence(token) {\n const node = this.stack[this.stack.length - 1];\n if (!node.depth) {\n const depth = this.sliceSerialize(token).length;\n node.depth = depth;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadingtext() {\n this.data.setextHeadingSlurpLineEnding = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadinglinesequence(token) {\n const node = this.stack[this.stack.length - 1];\n node.depth = this.sliceSerialize(token).codePointAt(0) === 61 ? 1 : 2;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheading() {\n this.data.setextHeadingSlurpLineEnding = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterdata(token) {\n const node = this.stack[this.stack.length - 1];\n /** @type {Array<Nodes>} */\n const siblings = node.children;\n let tail = siblings[siblings.length - 1];\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text();\n tail.position = {\n start: point(token.start),\n // @ts-expect-error: we’ll add `end` later.\n end: undefined\n };\n siblings.push(tail);\n }\n this.stack.push(tail);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitdata(token) {\n const tail = this.stack.pop();\n tail.value += this.sliceSerialize(token);\n tail.position.end = point(token.end);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlineending(token) {\n const context = this.stack[this.stack.length - 1];\n // If we’re at a hard break, include the line ending in there.\n if (this.data.atHardBreak) {\n const tail = context.children[context.children.length - 1];\n tail.position.end = point(token.end);\n this.data.atHardBreak = undefined;\n return;\n }\n if (!this.data.setextHeadingSlurpLineEnding && config.canContainEols.includes(context.type)) {\n onenterdata.call(this, token);\n onexitdata.call(this, token);\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithardbreak() {\n this.data.atHardBreak = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmlflow() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmltext() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcodetext() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlink() {\n const node = this.stack[this.stack.length - 1];\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n\n // To do: clean.\n if (this.data.inReference) {\n /** @type {ReferenceType} */\n const referenceType = this.data.referenceType || 'shortcut';\n node.type += 'Reference';\n // @ts-expect-error: mutate.\n node.referenceType = referenceType;\n // @ts-expect-error: mutate.\n delete node.url;\n delete node.title;\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier;\n // @ts-expect-error: mutate.\n delete node.label;\n }\n this.data.referenceType = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitimage() {\n const node = this.stack[this.stack.length - 1];\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n\n // To do: clean.\n if (this.data.inReference) {\n /** @type {ReferenceType} */\n const referenceType = this.data.referenceType || 'shortcut';\n node.type += 'Reference';\n // @ts-expect-error: mutate.\n node.referenceType = referenceType;\n // @ts-expect-error: mutate.\n delete node.url;\n delete node.title;\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier;\n // @ts-expect-error: mutate.\n delete node.label;\n }\n this.data.referenceType = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabeltext(token) {\n const string = this.sliceSerialize(token);\n const ancestor = this.stack[this.stack.length - 2];\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n ancestor.label = decodeString(string);\n // @ts-expect-error: same as above.\n ancestor.identifier = normalizeIdentifier(string).toLowerCase();\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabel() {\n const fragment = this.stack[this.stack.length - 1];\n const value = this.resume();\n const node = this.stack[this.stack.length - 1];\n // Assume a reference.\n this.data.inReference = true;\n if (node.type === 'link') {\n /** @type {Array<PhrasingContent>} */\n const children = fragment.children;\n node.children = children;\n } else {\n node.alt = value;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcedestinationstring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.url = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcetitlestring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.title = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresource() {\n this.data.inReference = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterreference() {\n this.data.referenceType = 'collapsed';\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitreferencestring(token) {\n const label = this.resume();\n const node = this.stack[this.stack.length - 1];\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n node.label = label;\n // @ts-expect-error: same as above.\n node.identifier = normalizeIdentifier(this.sliceSerialize(token)).toLowerCase();\n this.data.referenceType = 'full';\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcharacterreferencemarker(token) {\n this.data.characterReferenceType = token.type;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreferencevalue(token) {\n const data = this.sliceSerialize(token);\n const type = this.data.characterReferenceType;\n /** @type {string} */\n let value;\n if (type) {\n value = decodeNumericCharacterReference(data, type === \"characterReferenceMarkerNumeric\" ? 10 : 16);\n this.data.characterReferenceType = undefined;\n } else {\n const result = decodeNamedCharacterReference(data);\n value = result;\n }\n const tail = this.stack[this.stack.length - 1];\n tail.value += value;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreference(token) {\n const tail = this.stack.pop();\n tail.position.end = point(token.end);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token);\n const node = this.stack[this.stack.length - 1];\n node.url = this.sliceSerialize(token);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkemail(token) {\n onexitdata.call(this, token);\n const node = this.stack[this.stack.length - 1];\n node.url = 'mailto:' + this.sliceSerialize(token);\n }\n\n //\n // Creaters.\n //\n\n /** @returns {Blockquote} */\n function blockQuote() {\n return {\n type: 'blockquote',\n children: []\n };\n }\n\n /** @returns {Code} */\n function codeFlow() {\n return {\n type: 'code',\n lang: null,\n meta: null,\n value: ''\n };\n }\n\n /** @returns {InlineCode} */\n function codeText() {\n return {\n type: 'inlineCode',\n value: ''\n };\n }\n\n /** @returns {Definition} */\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n };\n }\n\n /** @returns {Emphasis} */\n function emphasis() {\n return {\n type: 'emphasis',\n children: []\n };\n }\n\n /** @returns {Heading} */\n function heading() {\n return {\n type: 'heading',\n // @ts-expect-error `depth` will be set later.\n depth: 0,\n children: []\n };\n }\n\n /** @returns {Break} */\n function hardBreak() {\n return {\n type: 'break'\n };\n }\n\n /** @returns {Html} */\n function html() {\n return {\n type: 'html',\n value: ''\n };\n }\n\n /** @returns {Image} */\n function image() {\n return {\n type: 'image',\n title: null,\n url: '',\n alt: null\n };\n }\n\n /** @returns {Link} */\n function link() {\n return {\n type: 'link',\n title: null,\n url: '',\n children: []\n };\n }\n\n /**\n * @param {Token} token\n * @returns {List}\n */\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n spread: token._spread,\n children: []\n };\n }\n\n /**\n * @param {Token} token\n * @returns {ListItem}\n */\n function listItem(token) {\n return {\n type: 'listItem',\n spread: token._spread,\n checked: null,\n children: []\n };\n }\n\n /** @returns {Paragraph} */\n function paragraph() {\n return {\n type: 'paragraph',\n children: []\n };\n }\n\n /** @returns {Strong} */\n function strong() {\n return {\n type: 'strong',\n children: []\n };\n }\n\n /** @returns {Text} */\n function text() {\n return {\n type: 'text',\n value: ''\n };\n }\n\n /** @returns {ThematicBreak} */\n function thematicBreak() {\n return {\n type: 'thematicBreak'\n };\n }\n}\n\n/**\n * Copy a point-like value.\n *\n * @param {Point} d\n * Point-like value.\n * @returns {Point}\n * unist point.\n */\nfunction point(d) {\n return {\n line: d.line,\n column: d.column,\n offset: d.offset\n };\n}\n\n/**\n * @param {Config} combined\n * @param {Array<Array<Extension> | Extension>} extensions\n * @returns {undefined}\n */\nfunction configure(combined, extensions) {\n let index = -1;\n while (++index < extensions.length) {\n const value = extensions[index];\n if (Array.isArray(value)) {\n configure(combined, value);\n } else {\n extension(combined, value);\n }\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Extension} extension\n * @returns {undefined}\n */\nfunction extension(combined, extension) {\n /** @type {keyof Extension} */\n let key;\n for (key in extension) {\n if (own.call(extension, key)) {\n switch (key) {\n case 'canContainEols':\n {\n const right = extension[key];\n if (right) {\n combined[key].push(...right);\n }\n break;\n }\n case 'transforms':\n {\n const right = extension[key];\n if (right) {\n combined[key].push(...right);\n }\n break;\n }\n case 'enter':\n case 'exit':\n {\n const right = extension[key];\n if (right) {\n Object.assign(combined[key], right);\n }\n break;\n }\n // No default\n }\n }\n }\n}\n\n/** @type {OnEnterError} */\nfunction defaultOnError(left, right) {\n if (left) {\n throw new Error('Cannot close `' + left.type + '` (' + stringifyPosition({\n start: left.start,\n end: left.end\n }) + '): a different token (`' + right.type + '`, ' + stringifyPosition({\n start: right.start,\n end: right.end\n }) + ') is open');\n } else {\n throw new Error('Cannot close document, a token (`' + right.type + '`, ' + stringifyPosition({\n start: right.start,\n end: right.end\n }) + ') is still open');\n }\n}","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-from-markdown').Options} FromMarkdownOptions\n * @typedef {import('unified').Parser<Root>} Parser\n * @typedef {import('unified').Processor<Root>} Processor\n */\n\n/**\n * @typedef {Omit<FromMarkdownOptions, 'extensions' | 'mdastExtensions'>} Options\n */\n\nimport {fromMarkdown} from 'mdast-util-from-markdown'\n\n/**\n * Aadd support for parsing from markdown.\n *\n * @param {Readonly<Options> | null | undefined} [options]\n * Configuration (optional).\n * @returns {undefined}\n * Nothing.\n */\nexport default function remarkParse(options) {\n /** @type {Processor} */\n // @ts-expect-error: TS in JSDoc generates wrong types if `this` is typed regularly.\n const self = this\n\n self.parser = parser\n\n /**\n * @type {Parser}\n */\n function parser(doc) {\n return fromMarkdown(doc, {\n ...self.data('settings'),\n ...options,\n // Note: these options are not in the readme.\n // The goal is for them to be set by plugins on `data` instead of being\n // passed by users.\n extensions: self.data('micromarkExtensions') || [],\n mdastExtensions: self.data('fromMarkdownExtensions') || []\n })\n }\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Blockquote} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `blockquote` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Blockquote} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function blockquote(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'blockquote',\n properties: {},\n children: state.wrap(state.all(node), true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {Element, Text} from 'hast'\n * @import {Break} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `break` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Break} node\n * mdast node.\n * @returns {Array<Element | Text>}\n * hast element content.\n */\nexport function hardBreak(state, node) {\n /** @type {Element} */\n const result = {type: 'element', tagName: 'br', properties: {}, children: []}\n state.patch(node, result)\n return [state.applyData(node, result), {type: 'text', value: '\\n'}]\n}\n","/**\n * @import {Element, Properties} from 'hast'\n * @import {Code} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `code` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Code} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function code(state, node) {\n const value = node.value ? node.value + '\\n' : ''\n /** @type {Properties} */\n const properties = {}\n // Someone can write `js python ruby`.\n const language = node.lang ? node.lang.split(/\\s+/) : []\n\n // GH/CM still drop the non-first languages.\n if (language.length > 0) {\n properties.className = ['language-' + language[0]]\n }\n\n // Create `<code>`.\n /** @type {Element} */\n let result = {\n type: 'element',\n tagName: 'code',\n properties,\n children: [{type: 'text', value}]\n }\n\n if (node.meta) {\n result.data = {meta: node.meta}\n }\n\n state.patch(node, result)\n result = state.applyData(node, result)\n\n // Create `<pre>`.\n result = {type: 'element', tagName: 'pre', properties: {}, children: [result]}\n state.patch(node, result)\n return result\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Delete} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `delete` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Delete} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function strikethrough(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'del',\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Emphasis} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `emphasis` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Emphasis} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function emphasis(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'em',\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {FootnoteReference} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `footnoteReference` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {FootnoteReference} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function footnoteReference(state, node) {\n const clobberPrefix =\n typeof state.options.clobberPrefix === 'string'\n ? state.options.clobberPrefix\n : 'user-content-'\n const id = String(node.identifier).toUpperCase()\n const safeId = normalizeUri(id.toLowerCase())\n const index = state.footnoteOrder.indexOf(id)\n /** @type {number} */\n let counter\n\n let reuseCounter = state.footnoteCounts.get(id)\n\n if (reuseCounter === undefined) {\n reuseCounter = 0\n state.footnoteOrder.push(id)\n counter = state.footnoteOrder.length\n } else {\n counter = index + 1\n }\n\n reuseCounter += 1\n state.footnoteCounts.set(id, reuseCounter)\n\n /** @type {Element} */\n const link = {\n type: 'element',\n tagName: 'a',\n properties: {\n href: '#' + clobberPrefix + 'fn-' + safeId,\n id:\n clobberPrefix +\n 'fnref-' +\n safeId +\n (reuseCounter > 1 ? '-' + reuseCounter : ''),\n dataFootnoteRef: true,\n ariaDescribedBy: ['footnote-label']\n },\n children: [{type: 'text', value: String(counter)}]\n }\n state.patch(node, link)\n\n /** @type {Element} */\n const sup = {\n type: 'element',\n tagName: 'sup',\n properties: {},\n children: [link]\n }\n state.patch(node, sup)\n return state.applyData(node, sup)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Heading} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `heading` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Heading} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function heading(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'h' + node.depth,\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Html} from 'mdast'\n * @import {State} from '../state.js'\n * @import {Raw} from '../../index.js'\n */\n\n/**\n * Turn an mdast `html` node into hast (`raw` node in dangerous mode, otherwise\n * nothing).\n *\n * @param {State} state\n * Info passed around.\n * @param {Html} node\n * mdast node.\n * @returns {Element | Raw | undefined}\n * hast node.\n */\nexport function html(state, node) {\n if (state.options.allowDangerousHtml) {\n /** @type {Raw} */\n const result = {type: 'raw', value: node.value}\n state.patch(node, result)\n return state.applyData(node, result)\n }\n\n return undefined\n}\n","/**\n * @import {ElementContent} from 'hast'\n * @import {Reference, Nodes} from 'mdast'\n * @import {State} from './state.js'\n */\n\n/**\n * Return the content of a reference without definition as plain text.\n *\n * @param {State} state\n * Info passed around.\n * @param {Extract<Nodes, Reference>} node\n * Reference node (image, link).\n * @returns {Array<ElementContent>}\n * hast content.\n */\nexport function revert(state, node) {\n const subtype = node.referenceType\n let suffix = ']'\n\n if (subtype === 'collapsed') {\n suffix += '[]'\n } else if (subtype === 'full') {\n suffix += '[' + (node.label || node.identifier) + ']'\n }\n\n if (node.type === 'imageReference') {\n return [{type: 'text', value: '![' + node.alt + suffix}]\n }\n\n const contents = state.all(node)\n const head = contents[0]\n\n if (head && head.type === 'text') {\n head.value = '[' + head.value\n } else {\n contents.unshift({type: 'text', value: '['})\n }\n\n const tail = contents[contents.length - 1]\n\n if (tail && tail.type === 'text') {\n tail.value += suffix\n } else {\n contents.push({type: 'text', value: suffix})\n }\n\n return contents\n}\n","/**\n * @import {ElementContent, Element, Properties} from 'hast'\n * @import {ImageReference} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `imageReference` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ImageReference} node\n * mdast node.\n * @returns {Array<ElementContent> | ElementContent}\n * hast node.\n */\nexport function imageReference(state, node) {\n const id = String(node.identifier).toUpperCase()\n const definition = state.definitionById.get(id)\n\n if (!definition) {\n return revert(state, node)\n }\n\n /** @type {Properties} */\n const properties = {src: normalizeUri(definition.url || ''), alt: node.alt}\n\n if (definition.title !== null && definition.title !== undefined) {\n properties.title = definition.title\n }\n\n /** @type {Element} */\n const result = {type: 'element', tagName: 'img', properties, children: []}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {Element, Properties} from 'hast'\n * @import {Image} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `image` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Image} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function image(state, node) {\n /** @type {Properties} */\n const properties = {src: normalizeUri(node.url)}\n\n if (node.alt !== null && node.alt !== undefined) {\n properties.alt = node.alt\n }\n\n if (node.title !== null && node.title !== undefined) {\n properties.title = node.title\n }\n\n /** @type {Element} */\n const result = {type: 'element', tagName: 'img', properties, children: []}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {Element, Text} from 'hast'\n * @import {InlineCode} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `inlineCode` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {InlineCode} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function inlineCode(state, node) {\n /** @type {Text} */\n const text = {type: 'text', value: node.value.replace(/\\r?\\n|\\r/g, ' ')}\n state.patch(node, text)\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'code',\n properties: {},\n children: [text]\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {ElementContent, Element, Properties} from 'hast'\n * @import {LinkReference} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `linkReference` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {LinkReference} node\n * mdast node.\n * @returns {Array<ElementContent> | ElementContent}\n * hast node.\n */\nexport function linkReference(state, node) {\n const id = String(node.identifier).toUpperCase()\n const definition = state.definitionById.get(id)\n\n if (!definition) {\n return revert(state, node)\n }\n\n /** @type {Properties} */\n const properties = {href: normalizeUri(definition.url || '')}\n\n if (definition.title !== null && definition.title !== undefined) {\n properties.title = definition.title\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'a',\n properties,\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {Element, Properties} from 'hast'\n * @import {Link} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `link` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Link} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function link(state, node) {\n /** @type {Properties} */\n const properties = {href: normalizeUri(node.url)}\n\n if (node.title !== null && node.title !== undefined) {\n properties.title = node.title\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'a',\n properties,\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {ElementContent, Element, Properties} from 'hast'\n * @import {ListItem, Parents} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `listItem` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ListItem} node\n * mdast node.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @returns {Element}\n * hast node.\n */\nexport function listItem(state, node, parent) {\n const results = state.all(node)\n const loose = parent ? listLoose(parent) : listItemLoose(node)\n /** @type {Properties} */\n const properties = {}\n /** @type {Array<ElementContent>} */\n const children = []\n\n if (typeof node.checked === 'boolean') {\n const head = results[0]\n /** @type {Element} */\n let paragraph\n\n if (head && head.type === 'element' && head.tagName === 'p') {\n paragraph = head\n } else {\n paragraph = {type: 'element', tagName: 'p', properties: {}, children: []}\n results.unshift(paragraph)\n }\n\n if (paragraph.children.length > 0) {\n paragraph.children.unshift({type: 'text', value: ' '})\n }\n\n paragraph.children.unshift({\n type: 'element',\n tagName: 'input',\n properties: {type: 'checkbox', checked: node.checked, disabled: true},\n children: []\n })\n\n // According to github-markdown-css, this class hides bullet.\n // See: <https://github.com/sindresorhus/github-markdown-css>.\n properties.className = ['task-list-item']\n }\n\n let index = -1\n\n while (++index < results.length) {\n const child = results[index]\n\n // Add eols before nodes, except if this is a loose, first paragraph.\n if (\n loose ||\n index !== 0 ||\n child.type !== 'element' ||\n child.tagName !== 'p'\n ) {\n children.push({type: 'text', value: '\\n'})\n }\n\n if (child.type === 'element' && child.tagName === 'p' && !loose) {\n children.push(...child.children)\n } else {\n children.push(child)\n }\n }\n\n const tail = results[results.length - 1]\n\n // Add a final eol.\n if (tail && (loose || tail.type !== 'element' || tail.tagName !== 'p')) {\n children.push({type: 'text', value: '\\n'})\n }\n\n /** @type {Element} */\n const result = {type: 'element', tagName: 'li', properties, children}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * @param {Parents} node\n * @return {Boolean}\n */\nfunction listLoose(node) {\n let loose = false\n if (node.type === 'list') {\n loose = node.spread || false\n const children = node.children\n let index = -1\n\n while (!loose && ++index < children.length) {\n loose = listItemLoose(children[index])\n }\n }\n\n return loose\n}\n\n/**\n * @param {ListItem} node\n * @return {Boolean}\n */\nfunction listItemLoose(node) {\n const spread = node.spread\n\n return spread === null || spread === undefined\n ? node.children.length > 1\n : spread\n}\n","/**\n * @import {Element, Properties} from 'hast'\n * @import {List} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `list` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {List} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function list(state, node) {\n /** @type {Properties} */\n const properties = {}\n const results = state.all(node)\n let index = -1\n\n if (typeof node.start === 'number' && node.start !== 1) {\n properties.start = node.start\n }\n\n // Like GitHub, add a class for custom styling.\n while (++index < results.length) {\n const child = results[index]\n\n if (\n child.type === 'element' &&\n child.tagName === 'li' &&\n child.properties &&\n Array.isArray(child.properties.className) &&\n child.properties.className.includes('task-list-item')\n ) {\n properties.className = ['contains-task-list']\n break\n }\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: node.ordered ? 'ol' : 'ul',\n properties,\n children: state.wrap(results, true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Paragraph} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `paragraph` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Paragraph} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function paragraph(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'p',\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {Parents as HastParents, Root as HastRoot} from 'hast'\n * @import {Root as MdastRoot} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `root` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastRoot} node\n * mdast node.\n * @returns {HastParents}\n * hast node.\n */\nexport function root(state, node) {\n /** @type {HastRoot} */\n const result = {type: 'root', children: state.wrap(state.all(node))}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Strong} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `strong` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Strong} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function strong(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'strong',\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {Table} from 'mdast'\n * @import {Element} from 'hast'\n * @import {State} from '../state.js'\n */\n\nimport {pointEnd, pointStart} from 'unist-util-position'\n\n/**\n * Turn an mdast `table` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Table} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function table(state, node) {\n const rows = state.all(node)\n const firstRow = rows.shift()\n /** @type {Array<Element>} */\n const tableContent = []\n\n if (firstRow) {\n /** @type {Element} */\n const head = {\n type: 'element',\n tagName: 'thead',\n properties: {},\n children: state.wrap([firstRow], true)\n }\n state.patch(node.children[0], head)\n tableContent.push(head)\n }\n\n if (rows.length > 0) {\n /** @type {Element} */\n const body = {\n type: 'element',\n tagName: 'tbody',\n properties: {},\n children: state.wrap(rows, true)\n }\n\n const start = pointStart(node.children[1])\n const end = pointEnd(node.children[node.children.length - 1])\n if (start && end) body.position = {start, end}\n tableContent.push(body)\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'table',\n properties: {},\n children: state.wrap(tableContent, true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {Element, ElementContent, Properties} from 'hast'\n * @import {Parents, TableRow} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `tableRow` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {TableRow} node\n * mdast node.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @returns {Element}\n * hast node.\n */\nexport function tableRow(state, node, parent) {\n const siblings = parent ? parent.children : undefined\n // Generate a body row when without parent.\n const rowIndex = siblings ? siblings.indexOf(node) : 1\n const tagName = rowIndex === 0 ? 'th' : 'td'\n // To do: option to use `style`?\n const align = parent && parent.type === 'table' ? parent.align : undefined\n const length = align ? align.length : node.children.length\n let cellIndex = -1\n /** @type {Array<ElementContent>} */\n const cells = []\n\n while (++cellIndex < length) {\n // Note: can also be undefined.\n const cell = node.children[cellIndex]\n /** @type {Properties} */\n const properties = {}\n const alignValue = align ? align[cellIndex] : undefined\n\n if (alignValue) {\n properties.align = alignValue\n }\n\n /** @type {Element} */\n let result = {type: 'element', tagName, properties, children: []}\n\n if (cell) {\n result.children = state.all(cell)\n state.patch(cell, result)\n result = state.applyData(cell, result)\n }\n\n cells.push(result)\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'tr',\n properties: {},\n children: state.wrap(cells, true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {TableCell} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `tableCell` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {TableCell} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function tableCell(state, node) {\n // Note: this function is normally not called: see `table-row` for how rows\n // and their cells are compiled.\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'td', // Assume body cell.\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","const tab = 9 /* `\\t` */\nconst space = 32 /* ` ` */\n\n/**\n * Remove initial and final spaces and tabs at the line breaks in `value`.\n * Does not trim initial and final spaces and tabs of the value itself.\n *\n * @param {string} value\n * Value to trim.\n * @returns {string}\n * Trimmed value.\n */\nexport function trimLines(value) {\n const source = String(value)\n const search = /\\r?\\n|\\r/g\n let match = search.exec(source)\n let last = 0\n /** @type {Array<string>} */\n const lines = []\n\n while (match) {\n lines.push(\n trimLine(source.slice(last, match.index), last > 0, true),\n match[0]\n )\n\n last = match.index + match[0].length\n match = search.exec(source)\n }\n\n lines.push(trimLine(source.slice(last), last > 0, false))\n\n return lines.join('')\n}\n\n/**\n * @param {string} value\n * Line to trim.\n * @param {boolean} start\n * Whether to trim the start of the line.\n * @param {boolean} end\n * Whether to trim the end of the line.\n * @returns {string}\n * Trimmed line.\n */\nfunction trimLine(value, start, end) {\n let startIndex = 0\n let endIndex = value.length\n\n if (start) {\n let code = value.codePointAt(startIndex)\n\n while (code === tab || code === space) {\n startIndex++\n code = value.codePointAt(startIndex)\n }\n }\n\n if (end) {\n let code = value.codePointAt(endIndex - 1)\n\n while (code === tab || code === space) {\n endIndex--\n code = value.codePointAt(endIndex - 1)\n }\n }\n\n return endIndex > startIndex ? value.slice(startIndex, endIndex) : ''\n}\n","/**\n * @import {Element as HastElement, Text as HastText} from 'hast'\n * @import {Text as MdastText} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {trimLines} from 'trim-lines'\n\n/**\n * Turn an mdast `text` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastText} node\n * mdast node.\n * @returns {HastElement | HastText}\n * hast node.\n */\nexport function text(state, node) {\n /** @type {HastText} */\n const result = {type: 'text', value: trimLines(String(node.value))}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {ThematicBreak} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `thematicBreak` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ThematicBreak} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function thematicBreak(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'hr',\n properties: {},\n children: []\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {Handlers} from '../state.js'\n */\n\nimport {blockquote} from './blockquote.js'\nimport {hardBreak} from './break.js'\nimport {code} from './code.js'\nimport {strikethrough} from './delete.js'\nimport {emphasis} from './emphasis.js'\nimport {footnoteReference} from './footnote-reference.js'\nimport {heading} from './heading.js'\nimport {html} from './html.js'\nimport {imageReference} from './image-reference.js'\nimport {image} from './image.js'\nimport {inlineCode} from './inline-code.js'\nimport {linkReference} from './link-reference.js'\nimport {link} from './link.js'\nimport {listItem} from './list-item.js'\nimport {list} from './list.js'\nimport {paragraph} from './paragraph.js'\nimport {root} from './root.js'\nimport {strong} from './strong.js'\nimport {table} from './table.js'\nimport {tableRow} from './table-row.js'\nimport {tableCell} from './table-cell.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/**\n * Default handlers for nodes.\n *\n * @satisfies {Handlers}\n */\nexport const handlers = {\n blockquote,\n break: hardBreak,\n code,\n delete: strikethrough,\n emphasis,\n footnoteReference,\n heading,\n html,\n imageReference,\n image,\n inlineCode,\n linkReference,\n link,\n listItem,\n list,\n paragraph,\n // @ts-expect-error: root is different, but hard to type.\n root,\n strong,\n table,\n tableCell,\n tableRow,\n text,\n thematicBreak,\n toml: ignore,\n yaml: ignore,\n definition: ignore,\n footnoteDefinition: ignore\n}\n\n// Return nothing for nodes that are ignored.\nfunction ignore() {\n return undefined\n}\n","/**\n * @import {ElementContent, Element} from 'hast'\n * @import {State} from './state.js'\n */\n\n/**\n * @callback FootnoteBackContentTemplate\n * Generate content for the backreference dynamically.\n *\n * For the following markdown:\n *\n * ```markdown\n * Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n * [^remark]: things about remark\n * [^micromark]: things about micromark\n * ```\n *\n * This function will be called with:\n *\n * * `0` and `0` for the backreference from `things about micromark` to\n * `alpha`, as it is the first used definition, and the first call to it\n * * `0` and `1` for the backreference from `things about micromark` to\n * `bravo`, as it is the first used definition, and the second call to it\n * * `1` and `0` for the backreference from `things about remark` to\n * `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {Array<ElementContent> | ElementContent | string}\n * Content for the backreference when linking back from definitions to their\n * reference.\n *\n * @callback FootnoteBackLabelTemplate\n * Generate a back label dynamically.\n *\n * For the following markdown:\n *\n * ```markdown\n * Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n * [^remark]: things about remark\n * [^micromark]: things about micromark\n * ```\n *\n * This function will be called with:\n *\n * * `0` and `0` for the backreference from `things about micromark` to\n * `alpha`, as it is the first used definition, and the first call to it\n * * `0` and `1` for the backreference from `things about micromark` to\n * `bravo`, as it is the first used definition, and the second call to it\n * * `1` and `0` for the backreference from `things about remark` to\n * `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {string}\n * Back label to use when linking back from definitions to their reference.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Generate the default content that GitHub uses on backreferences.\n *\n * @param {number} _\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {Array<ElementContent>}\n * Content.\n */\nexport function defaultFootnoteBackContent(_, rereferenceIndex) {\n /** @type {Array<ElementContent>} */\n const result = [{type: 'text', value: '↩'}]\n\n if (rereferenceIndex > 1) {\n result.push({\n type: 'element',\n tagName: 'sup',\n properties: {},\n children: [{type: 'text', value: String(rereferenceIndex)}]\n })\n }\n\n return result\n}\n\n/**\n * Generate the default label that GitHub uses on backreferences.\n *\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {string}\n * Label.\n */\nexport function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n return (\n 'Back to reference ' +\n (referenceIndex + 1) +\n (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n )\n}\n\n/**\n * Generate a hast footer for called footnote definitions.\n *\n * @param {State} state\n * Info passed around.\n * @returns {Element | undefined}\n * `section` element or `undefined`.\n */\n// eslint-disable-next-line complexity\nexport function footer(state) {\n const clobberPrefix =\n typeof state.options.clobberPrefix === 'string'\n ? state.options.clobberPrefix\n : 'user-content-'\n const footnoteBackContent =\n state.options.footnoteBackContent || defaultFootnoteBackContent\n const footnoteBackLabel =\n state.options.footnoteBackLabel || defaultFootnoteBackLabel\n const footnoteLabel = state.options.footnoteLabel || 'Footnotes'\n const footnoteLabelTagName = state.options.footnoteLabelTagName || 'h2'\n const footnoteLabelProperties = state.options.footnoteLabelProperties || {\n className: ['sr-only']\n }\n /** @type {Array<ElementContent>} */\n const listItems = []\n let referenceIndex = -1\n\n while (++referenceIndex < state.footnoteOrder.length) {\n const definition = state.footnoteById.get(\n state.footnoteOrder[referenceIndex]\n )\n\n if (!definition) {\n continue\n }\n\n const content = state.all(definition)\n const id = String(definition.identifier).toUpperCase()\n const safeId = normalizeUri(id.toLowerCase())\n let rereferenceIndex = 0\n /** @type {Array<ElementContent>} */\n const backReferences = []\n const counts = state.footnoteCounts.get(id)\n\n // eslint-disable-next-line no-unmodified-loop-condition\n while (counts !== undefined && ++rereferenceIndex <= counts) {\n if (backReferences.length > 0) {\n backReferences.push({type: 'text', value: ' '})\n }\n\n let children =\n typeof footnoteBackContent === 'string'\n ? footnoteBackContent\n : footnoteBackContent(referenceIndex, rereferenceIndex)\n\n if (typeof children === 'string') {\n children = {type: 'text', value: children}\n }\n\n backReferences.push({\n type: 'element',\n tagName: 'a',\n properties: {\n href:\n '#' +\n clobberPrefix +\n 'fnref-' +\n safeId +\n (rereferenceIndex > 1 ? '-' + rereferenceIndex : ''),\n dataFootnoteBackref: '',\n ariaLabel:\n typeof footnoteBackLabel === 'string'\n ? footnoteBackLabel\n : footnoteBackLabel(referenceIndex, rereferenceIndex),\n className: ['data-footnote-backref']\n },\n children: Array.isArray(children) ? children : [children]\n })\n }\n\n const tail = content[content.length - 1]\n\n if (tail && tail.type === 'element' && tail.tagName === 'p') {\n const tailTail = tail.children[tail.children.length - 1]\n if (tailTail && tailTail.type === 'text') {\n tailTail.value += ' '\n } else {\n tail.children.push({type: 'text', value: ' '})\n }\n\n tail.children.push(...backReferences)\n } else {\n content.push(...backReferences)\n }\n\n /** @type {Element} */\n const listItem = {\n type: 'element',\n tagName: 'li',\n properties: {id: clobberPrefix + 'fn-' + safeId},\n children: state.wrap(content, true)\n }\n\n state.patch(definition, listItem)\n\n listItems.push(listItem)\n }\n\n if (listItems.length === 0) {\n return\n }\n\n return {\n type: 'element',\n tagName: 'section',\n properties: {dataFootnotes: true, className: ['footnotes']},\n children: [\n {\n type: 'element',\n tagName: footnoteLabelTagName,\n properties: {\n ...structuredClone(footnoteLabelProperties),\n id: 'footnote-label'\n },\n children: [{type: 'text', value: footnoteLabel}]\n },\n {type: 'text', value: '\\n'},\n {\n type: 'element',\n tagName: 'ol',\n properties: {},\n children: state.wrap(listItems, true)\n },\n {type: 'text', value: '\\n'}\n ]\n }\n}\n","/**\n * @import {\n * ElementContent as HastElementContent,\n * Element as HastElement,\n * Nodes as HastNodes,\n * Properties as HastProperties,\n * RootContent as HastRootContent,\n * Text as HastText\n * } from 'hast'\n * @import {\n * Definition as MdastDefinition,\n * FootnoteDefinition as MdastFootnoteDefinition,\n * Nodes as MdastNodes,\n * Parents as MdastParents\n * } from 'mdast'\n * @import {VFile} from 'vfile'\n * @import {\n * FootnoteBackContentTemplate,\n * FootnoteBackLabelTemplate\n * } from './footer.js'\n */\n\n/**\n * @callback Handler\n * Handle a node.\n * @param {State} state\n * Info passed around.\n * @param {any} node\n * mdast node to handle.\n * @param {MdastParents | undefined} parent\n * Parent of `node`.\n * @returns {Array<HastElementContent> | HastElementContent | undefined}\n * hast node.\n *\n * @typedef {Partial<Record<MdastNodes['type'], Handler>>} Handlers\n * Handle nodes.\n *\n * @typedef Options\n * Configuration (optional).\n * @property {boolean | null | undefined} [allowDangerousHtml=false]\n * Whether to persist raw HTML in markdown in the hast tree (default:\n * `false`).\n * @property {string | null | undefined} [clobberPrefix='user-content-']\n * Prefix to use before the `id` property on footnotes to prevent them from\n * *clobbering* (default: `'user-content-'`).\n *\n * Pass `''` for trusted markdown and when you are careful with\n * polyfilling.\n * You could pass a different prefix.\n *\n * DOM clobbering is this:\n *\n * ```html\n * <p id=\"x\"></p>\n * <script>alert(x) // `x` now refers to the `p#x` DOM element</script>\n * ```\n *\n * The above example shows that elements are made available by browsers, by\n * their ID, on the `window` object.\n * This is a security risk because you might be expecting some other variable\n * at that place.\n * It can also break polyfills.\n * Using a prefix solves these problems.\n * @property {VFile | null | undefined} [file]\n * Corresponding virtual file representing the input document (optional).\n * @property {FootnoteBackContentTemplate | string | null | undefined} [footnoteBackContent]\n * Content of the backreference back to references (default: `defaultFootnoteBackContent`).\n *\n * The default value is:\n *\n * ```js\n * function defaultFootnoteBackContent(_, rereferenceIndex) {\n * const result = [{type: 'text', value: '↩'}]\n *\n * if (rereferenceIndex > 1) {\n * result.push({\n * type: 'element',\n * tagName: 'sup',\n * properties: {},\n * children: [{type: 'text', value: String(rereferenceIndex)}]\n * })\n * }\n *\n * return result\n * }\n * ```\n *\n * This content is used in the `a` element of each backreference (the `↩`\n * links).\n * @property {FootnoteBackLabelTemplate | string | null | undefined} [footnoteBackLabel]\n * Label to describe the backreference back to references (default:\n * `defaultFootnoteBackLabel`).\n *\n * The default value is:\n *\n * ```js\n * function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n * return (\n * 'Back to reference ' +\n * (referenceIndex + 1) +\n * (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n * )\n * }\n * ```\n *\n * Change it when the markdown is not in English.\n *\n * This label is used in the `ariaLabel` property on each backreference\n * (the `↩` links).\n * It affects users of assistive technology.\n * @property {string | null | undefined} [footnoteLabel='Footnotes']\n * Textual label to use for the footnotes section (default: `'Footnotes'`).\n *\n * Change it when the markdown is not in English.\n *\n * This label is typically hidden visually (assuming a `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass different properties with the `footnoteLabelProperties` option.\n * @property {HastProperties | null | undefined} [footnoteLabelProperties={className: ['sr-only']}]\n * Properties to use on the footnote label (default: `{className:\n * ['sr-only']}`).\n *\n * Change it to show the label and add other properties.\n *\n * This label is typically hidden visually (assuming an `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass an empty string.\n * You can also add different properties.\n *\n * > **Note**: `id: 'footnote-label'` is always added, because footnote\n * > calls use it with `aria-describedby` to provide an accessible label.\n * @property {string | null | undefined} [footnoteLabelTagName='h2']\n * HTML tag name to use for the footnote label element (default: `'h2'`).\n *\n * Change it to match your document structure.\n *\n * This label is typically hidden visually (assuming a `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass different properties with the `footnoteLabelProperties` option.\n * @property {Handlers | null | undefined} [handlers]\n * Extra handlers for nodes (optional).\n * @property {Array<MdastNodes['type']> | null | undefined} [passThrough]\n * List of custom mdast node types to pass through (keep) in hast (note that\n * the node itself is passed, but eventual children are transformed)\n * (optional).\n * @property {Handler | null | undefined} [unknownHandler]\n * Handler for all unknown nodes (optional).\n *\n * @typedef State\n * Info passed around.\n * @property {(node: MdastNodes) => Array<HastElementContent>} all\n * Transform the children of an mdast parent to hast.\n * @property {<Type extends HastNodes>(from: MdastNodes, to: Type) => HastElement | Type} applyData\n * Honor the `data` of `from`, and generate an element instead of `node`.\n * @property {Map<string, MdastDefinition>} definitionById\n * Definitions by their identifier.\n * @property {Map<string, MdastFootnoteDefinition>} footnoteById\n * Footnote definitions by their identifier.\n * @property {Map<string, number>} footnoteCounts\n * Counts for how often the same footnote was called.\n * @property {Array<string>} footnoteOrder\n * Identifiers of order when footnote calls first appear in tree order.\n * @property {Handlers} handlers\n * Applied handlers.\n * @property {(node: MdastNodes, parent: MdastParents | undefined) => Array<HastElementContent> | HastElementContent | undefined} one\n * Transform an mdast node to hast.\n * @property {Options} options\n * Configuration.\n * @property {(from: MdastNodes, node: HastNodes) => undefined} patch\n * Copy a node’s positional info.\n * @property {<Type extends HastRootContent>(nodes: Array<Type>, loose?: boolean | undefined) => Array<HastText | Type>} wrap\n * Wrap `nodes` with line endings between each node, adds initial/final line endings when `loose`.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {visit} from 'unist-util-visit'\nimport {position} from 'unist-util-position'\nimport {handlers as defaultHandlers} from './handlers/index.js'\n\nconst own = {}.hasOwnProperty\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Create `state` from an mdast tree.\n *\n * @param {MdastNodes} tree\n * mdast node to transform.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {State}\n * `state` function.\n */\nexport function createState(tree, options) {\n const settings = options || emptyOptions\n /** @type {Map<string, MdastDefinition>} */\n const definitionById = new Map()\n /** @type {Map<string, MdastFootnoteDefinition>} */\n const footnoteById = new Map()\n /** @type {Map<string, number>} */\n const footnoteCounts = new Map()\n /** @type {Handlers} */\n // @ts-expect-error: the root handler returns a root.\n // Hard to type.\n const handlers = {...defaultHandlers, ...settings.handlers}\n\n /** @type {State} */\n const state = {\n all,\n applyData,\n definitionById,\n footnoteById,\n footnoteCounts,\n footnoteOrder: [],\n handlers,\n one,\n options: settings,\n patch,\n wrap\n }\n\n visit(tree, function (node) {\n if (node.type === 'definition' || node.type === 'footnoteDefinition') {\n const map = node.type === 'definition' ? definitionById : footnoteById\n const id = String(node.identifier).toUpperCase()\n\n // Mimick CM behavior of link definitions.\n // See: <https://github.com/syntax-tree/mdast-util-definitions/blob/9032189/lib/index.js#L20-L21>.\n if (!map.has(id)) {\n // @ts-expect-error: node type matches map.\n map.set(id, node)\n }\n }\n })\n\n return state\n\n /**\n * Transform an mdast node into a hast node.\n *\n * @param {MdastNodes} node\n * mdast node.\n * @param {MdastParents | undefined} [parent]\n * Parent of `node`.\n * @returns {Array<HastElementContent> | HastElementContent | undefined}\n * Resulting hast node.\n */\n function one(node, parent) {\n const type = node.type\n const handle = state.handlers[type]\n\n if (own.call(state.handlers, type) && handle) {\n return handle(state, node, parent)\n }\n\n if (state.options.passThrough && state.options.passThrough.includes(type)) {\n if ('children' in node) {\n const {children, ...shallow} = node\n const result = structuredClone(shallow)\n // @ts-expect-error: TS doesn’t understand…\n result.children = state.all(node)\n // @ts-expect-error: TS doesn’t understand…\n return result\n }\n\n // @ts-expect-error: it’s custom.\n return structuredClone(node)\n }\n\n const unknown = state.options.unknownHandler || defaultUnknownHandler\n\n return unknown(state, node, parent)\n }\n\n /**\n * Transform the children of an mdast node into hast nodes.\n *\n * @param {MdastNodes} parent\n * mdast node to compile\n * @returns {Array<HastElementContent>}\n * Resulting hast nodes.\n */\n function all(parent) {\n /** @type {Array<HastElementContent>} */\n const values = []\n\n if ('children' in parent) {\n const nodes = parent.children\n let index = -1\n while (++index < nodes.length) {\n const result = state.one(nodes[index], parent)\n\n // To do: see if we van clean this? Can we merge texts?\n if (result) {\n if (index && nodes[index - 1].type === 'break') {\n if (!Array.isArray(result) && result.type === 'text') {\n result.value = trimMarkdownSpaceStart(result.value)\n }\n\n if (!Array.isArray(result) && result.type === 'element') {\n const head = result.children[0]\n\n if (head && head.type === 'text') {\n head.value = trimMarkdownSpaceStart(head.value)\n }\n }\n }\n\n if (Array.isArray(result)) {\n values.push(...result)\n } else {\n values.push(result)\n }\n }\n }\n }\n\n return values\n }\n}\n\n/**\n * Copy a node’s positional info.\n *\n * @param {MdastNodes} from\n * mdast node to copy from.\n * @param {HastNodes} to\n * hast node to copy into.\n * @returns {undefined}\n * Nothing.\n */\nfunction patch(from, to) {\n if (from.position) to.position = position(from)\n}\n\n/**\n * Honor the `data` of `from` and maybe generate an element instead of `to`.\n *\n * @template {HastNodes} Type\n * Node type.\n * @param {MdastNodes} from\n * mdast node to use data from.\n * @param {Type} to\n * hast node to change.\n * @returns {HastElement | Type}\n * Nothing.\n */\nfunction applyData(from, to) {\n /** @type {HastElement | Type} */\n let result = to\n\n // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n if (from && from.data) {\n const hName = from.data.hName\n const hChildren = from.data.hChildren\n const hProperties = from.data.hProperties\n\n if (typeof hName === 'string') {\n // Transforming the node resulted in an element with a different name\n // than wanted:\n if (result.type === 'element') {\n result.tagName = hName\n }\n // Transforming the node resulted in a non-element, which happens for\n // raw, text, and root nodes (unless custom handlers are passed).\n // The intent of `hName` is to create an element, but likely also to keep\n // the content around (otherwise: pass `hChildren`).\n else {\n /** @type {Array<HastElementContent>} */\n // @ts-expect-error: assume no doctypes in `root`.\n const children = 'children' in result ? result.children : [result]\n result = {type: 'element', tagName: hName, properties: {}, children}\n }\n }\n\n if (result.type === 'element' && hProperties) {\n Object.assign(result.properties, structuredClone(hProperties))\n }\n\n if (\n 'children' in result &&\n result.children &&\n hChildren !== null &&\n hChildren !== undefined\n ) {\n result.children = hChildren\n }\n }\n\n return result\n}\n\n/**\n * Transform an unknown node.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastNodes} node\n * Unknown mdast node.\n * @returns {HastElement | HastText}\n * Resulting hast node.\n */\nfunction defaultUnknownHandler(state, node) {\n const data = node.data || {}\n /** @type {HastElement | HastText} */\n const result =\n 'value' in node &&\n !(own.call(data, 'hProperties') || own.call(data, 'hChildren'))\n ? {type: 'text', value: node.value}\n : {\n type: 'element',\n tagName: 'div',\n properties: {},\n children: state.all(node)\n }\n\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * Wrap `nodes` with line endings between each node.\n *\n * @template {HastRootContent} Type\n * Node type.\n * @param {Array<Type>} nodes\n * List of nodes to wrap.\n * @param {boolean | undefined} [loose=false]\n * Whether to add line endings at start and end (default: `false`).\n * @returns {Array<HastText | Type>}\n * Wrapped nodes.\n */\nexport function wrap(nodes, loose) {\n /** @type {Array<HastText | Type>} */\n const result = []\n let index = -1\n\n if (loose) {\n result.push({type: 'text', value: '\\n'})\n }\n\n while (++index < nodes.length) {\n if (index) result.push({type: 'text', value: '\\n'})\n result.push(nodes[index])\n }\n\n if (loose && nodes.length > 0) {\n result.push({type: 'text', value: '\\n'})\n }\n\n return result\n}\n\n/**\n * Trim spaces and tabs at the start of `value`.\n *\n * @param {string} value\n * Value to trim.\n * @returns {string}\n * Result.\n */\nfunction trimMarkdownSpaceStart(value) {\n let index = 0\n let code = value.charCodeAt(index)\n\n while (code === 9 || code === 32) {\n index++\n code = value.charCodeAt(index)\n }\n\n return value.slice(index)\n}\n","/**\n * @import {Nodes as HastNodes} from 'hast'\n * @import {Nodes as MdastNodes} from 'mdast'\n * @import {Options} from './state.js'\n */\n\nimport {ok as assert} from 'devlop'\nimport {footer} from './footer.js'\nimport {createState} from './state.js'\n\n/**\n * Transform mdast to hast.\n *\n * ##### Notes\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most utilities ignore `raw` nodes but two notable ones don’t:\n *\n * * `hast-util-to-html` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful\n * if you completely trust authors\n * * `hast-util-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc).\n * This is a heavy task as it needs a full HTML parser, but it is the only\n * way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark, which we follow by default.\n * They are supported by GitHub, so footnotes can be enabled in markdown with\n * `mdast-util-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes, which is hidden for sighted users but shown to\n * assistive technology.\n * When your page is not in English, you must define translated values.\n *\n * Back references use ARIA attributes, but the section label itself uses a\n * heading that is hidden with an `sr-only` class.\n * To show it to sighted users, define different attributes in\n * `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem, as it links footnote calls to footnote\n * definitions on the page through `id` attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n * <p id=x></p>\n * <script>alert(x) // `x` now refers to the DOM `p#x` element</script>\n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * Example: headings (DOM clobbering) in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value` (and doesn’t have `data.hName`,\n * `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n * node\n * * otherwise, create a `<div>` element (which could be changed with\n * `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @param {MdastNodes} tree\n * mdast tree.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {HastNodes}\n * hast tree.\n */\nexport function toHast(tree, options) {\n const state = createState(tree, options)\n const node = state.one(tree, undefined)\n const foot = footer(state)\n /** @type {HastNodes} */\n const result = Array.isArray(node)\n ? {type: 'root', children: node}\n : node || {type: 'root', children: []}\n\n if (foot) {\n // If there’s a footer, there were definitions, meaning block\n // content.\n // So `result` is a parent node.\n assert('children' in result)\n result.children.push({type: 'text', value: '\\n'}, foot)\n }\n\n return result\n}\n","/**\n * @import {Root as HastRoot} from 'hast'\n * @import {Root as MdastRoot} from 'mdast'\n * @import {Options as ToHastOptions} from 'mdast-util-to-hast'\n * @import {Processor} from 'unified'\n * @import {VFile} from 'vfile'\n */\n\n/**\n * @typedef {Omit<ToHastOptions, 'file'>} Options\n *\n * @callback TransformBridge\n * Bridge-mode.\n *\n * Runs the destination with the new hast tree.\n * Discards result.\n * @param {MdastRoot} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {Promise<undefined>}\n * Nothing.\n *\n * @callback TransformMutate\n * Mutate-mode.\n *\n * Further transformers run on the hast tree.\n * @param {MdastRoot} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {HastRoot}\n * Tree (hast).\n */\n\nimport {toHast} from 'mdast-util-to-hast'\n\n/**\n * Turn markdown into HTML.\n *\n * ##### Notes\n *\n * ###### Signature\n *\n * * if a processor is given,\n * runs the (rehype) plugins used on it with a hast tree,\n * then discards the result (*bridge mode*)\n * * otherwise,\n * returns a hast tree,\n * the plugins used after `remarkRehype` are rehype plugins (*mutate mode*)\n *\n * > 👉 **Note**:\n * > It’s highly unlikely that you want to pass a `processor`.\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most plugins ignore `raw` nodes but two notable ones don’t:\n *\n * * `rehype-stringify` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful if\n * you completely trust authors\n * * `rehype-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc);\n * this is a heavy task as it needs a full HTML parser,\n * but it is the only way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark,\n * which we follow by default.\n * They are supported by GitHub,\n * so footnotes can be enabled in markdown with `remark-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes,\n * which is hidden for sighted users but shown to assistive technology.\n * When your page is not in English,\n * you must define translated values.\n *\n * Back references use ARIA attributes,\n * but the section label itself uses a heading that is hidden with an\n * `sr-only` class.\n * To show it to sighted users,\n * define different attributes in `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem,\n * as it links footnote calls to footnote definitions on the page through `id`\n * attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n * <p id=x></p>\n * <script>alert(x) // `x` now refers to the DOM `p#x` element</script>\n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * *Example: headings (DOM clobbering)* in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value`\n * (and doesn’t have `data.hName`, `data.hProperties`, or `data.hChildren`,\n * see later),\n * create a hast `text` node\n * * otherwise,\n * create a `<div>` element (which could be changed with `data.hName`),\n * with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @overload\n * @param {Processor} processor\n * @param {Readonly<Options> | null | undefined} [options]\n * @returns {TransformBridge}\n *\n * @overload\n * @param {Readonly<Options> | null | undefined} [options]\n * @returns {TransformMutate}\n *\n * @overload\n * @param {Readonly<Options> | Processor | null | undefined} [destination]\n * @param {Readonly<Options> | null | undefined} [options]\n * @returns {TransformBridge | TransformMutate}\n *\n * @param {Readonly<Options> | Processor | null | undefined} [destination]\n * Processor or configuration (optional).\n * @param {Readonly<Options> | null | undefined} [options]\n * When a processor was given,\n * configuration (optional).\n * @returns {TransformBridge | TransformMutate}\n * Transform.\n */\nexport default function remarkRehype(destination, options) {\n if (destination && 'run' in destination) {\n /**\n * @type {TransformBridge}\n */\n return async function (tree, file) {\n // Cast because root in -> root out.\n const hastTree = /** @type {HastRoot} */ (\n toHast(tree, {file, ...options})\n )\n await destination.run(hastTree, file)\n }\n }\n\n /**\n * @type {TransformMutate}\n */\n return function (tree, file) {\n // Cast because root in -> root out.\n // To do: in the future, disallow ` || options` fallback.\n // With `unified-engine`, `destination` can be `undefined` but\n // `options` will be the file set.\n // We should not pass that as `options`.\n return /** @type {HastRoot} */ (\n toHast(tree, {file, ...(destination || options)})\n )\n }\n}\n","/**\n * @typedef {import('mdast').Nodes} Nodes\n */\n\nimport {visit} from 'unist-util-visit'\n\n/**\n * Remove empty paragraphs in `tree`.\n *\n * @param {Nodes} tree\n * Tree to change.\n * @returns {undefined}\n * Nothing.\n */\nexport function squeezeParagraphs(tree) {\n visit(tree, function (node, index, parent) {\n if (\n index !== undefined &&\n parent &&\n node.type === 'paragraph' &&\n node.children.every(function (child) {\n return child.type === 'text' && /^\\s*$/.test(child.value)\n })\n ) {\n parent.children.splice(index, 1)\n return index\n }\n })\n}\n","/**\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: MIT\n */\n\n/**\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').Root} Root\n */\n\nimport {squeezeParagraphs} from 'mdast-squeeze-paragraphs'\nimport {visit} from 'unist-util-visit'\n\n/**\n * Only keep links with the given protocols.\n *\n * @param {object} options Options\n * @param {string[]} options.except - Protocols to exclude. Defauls to `['http', 'https']`.\n * @returns\n * Transform.\n */\nexport default function remarkUnlinkProtocols(\n options = {except: ['http', 'https']}\n) {\n /**\n * Transform.\n *\n * @param {Root} tree\n * Tree.\n * @returns {undefined}\n * Nothing.\n */\n return function (tree) {\n /** @type {Map<string, string>} */\n const definitions = new Map()\n\n // Find definitions to look up linkReferences.\n visit(tree, 'definition', function (node, index, parent) {\n definitions.set(node.identifier, node.url)\n if (parent && typeof index === 'number') {\n const url = node.url\n if (\n url &&\n url.includes(':') &&\n !options.except.some((proto) => url.startsWith(`${proto}:`))\n ) {\n parent.children.splice(index, 1)\n return index\n }\n }\n })\n\n visit(tree, function (node, index, parent) {\n if (\n parent &&\n typeof index === 'number' &&\n (node.type === 'link' || node.type === 'linkReference')\n ) {\n const url =\n node.type === 'link' ? node.url : definitions.get(node.identifier)\n if (\n url &&\n url.includes(':') &&\n !options.except.some((proto) => url.startsWith(`${proto}:`))\n ) {\n parent.children.splice(index, 1, ...node.children)\n return index\n }\n }\n })\n\n squeezeParagraphs(tree)\n }\n}\n","/**\n * Throw a given error.\n *\n * @param {Error|null|undefined} [error]\n * Maybe error.\n * @returns {asserts error is null|undefined}\n */\nexport function bail(error) {\n if (error) {\n throw error\n }\n}\n","'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n","export default function isPlainObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);\n}\n","// To do: remove `void`s\n// To do: remove `null` from output of our APIs, allow it as user APIs.\n\n/**\n * @typedef {(error?: Error | null | undefined, ...output: Array<any>) => void} Callback\n * Callback.\n *\n * @typedef {(...input: Array<any>) => any} Middleware\n * Ware.\n *\n * @typedef Pipeline\n * Pipeline.\n * @property {Run} run\n * Run the pipeline.\n * @property {Use} use\n * Add middleware.\n *\n * @typedef {(...input: Array<any>) => void} Run\n * Call all middleware.\n *\n * Calls `done` on completion with either an error or the output of the\n * last middleware.\n *\n * > 👉 **Note**: as the length of input defines whether async functions get a\n * > `next` function,\n * > it’s recommended to keep `input` at one value normally.\n\n *\n * @typedef {(fn: Middleware) => Pipeline} Use\n * Add middleware.\n */\n\n/**\n * Create new middleware.\n *\n * @returns {Pipeline}\n * Pipeline.\n */\nexport function trough() {\n /** @type {Array<Middleware>} */\n const fns = []\n /** @type {Pipeline} */\n const pipeline = {run, use}\n\n return pipeline\n\n /** @type {Run} */\n function run(...values) {\n let middlewareIndex = -1\n /** @type {Callback} */\n const callback = values.pop()\n\n if (typeof callback !== 'function') {\n throw new TypeError('Expected function as last argument, not ' + callback)\n }\n\n next(null, ...values)\n\n /**\n * Run the next `fn`, or we’re done.\n *\n * @param {Error | null | undefined} error\n * @param {Array<any>} output\n */\n function next(error, ...output) {\n const fn = fns[++middlewareIndex]\n let index = -1\n\n if (error) {\n callback(error)\n return\n }\n\n // Copy non-nullish input into values.\n while (++index < values.length) {\n if (output[index] === null || output[index] === undefined) {\n output[index] = values[index]\n }\n }\n\n // Save the newly created `output` for the next call.\n values = output\n\n // Next or done.\n if (fn) {\n wrap(fn, next)(...output)\n } else {\n callback(null, ...output)\n }\n }\n }\n\n /** @type {Use} */\n function use(middelware) {\n if (typeof middelware !== 'function') {\n throw new TypeError(\n 'Expected `middelware` to be a function, not ' + middelware\n )\n }\n\n fns.push(middelware)\n return pipeline\n }\n}\n\n/**\n * Wrap `middleware` into a uniform interface.\n *\n * You can pass all input to the resulting function.\n * `callback` is then called with the output of `middleware`.\n *\n * If `middleware` accepts more arguments than the later given in input,\n * an extra `done` function is passed to it after that input,\n * which must be called by `middleware`.\n *\n * The first value in `input` is the main input value.\n * All other input values are the rest input values.\n * The values given to `callback` are the input values,\n * merged with every non-nullish output value.\n *\n * * if `middleware` throws an error,\n * returns a promise that is rejected,\n * or calls the given `done` function with an error,\n * `callback` is called with that error\n * * if `middleware` returns a value or returns a promise that is resolved,\n * that value is the main output value\n * * if `middleware` calls `done`,\n * all non-nullish values except for the first one (the error) overwrite the\n * output values\n *\n * @param {Middleware} middleware\n * Function to wrap.\n * @param {Callback} callback\n * Callback called with the output of `middleware`.\n * @returns {Run}\n * Wrapped middleware.\n */\nexport function wrap(middleware, callback) {\n /** @type {boolean} */\n let called\n\n return wrapped\n\n /**\n * Call `middleware`.\n * @this {any}\n * @param {Array<any>} parameters\n * @returns {void}\n */\n function wrapped(...parameters) {\n const fnExpectsCallback = middleware.length > parameters.length\n /** @type {any} */\n let result\n\n if (fnExpectsCallback) {\n parameters.push(done)\n }\n\n try {\n result = middleware.apply(this, parameters)\n } catch (error) {\n const exception = /** @type {Error} */ (error)\n\n // Well, this is quite the pickle.\n // `middleware` received a callback and called it synchronously, but that\n // threw an error.\n // The only thing left to do is to throw the thing instead.\n if (fnExpectsCallback && called) {\n throw exception\n }\n\n return done(exception)\n }\n\n if (!fnExpectsCallback) {\n if (result && result.then && typeof result.then === 'function') {\n result.then(then, done)\n } else if (result instanceof Error) {\n done(result)\n } else {\n then(result)\n }\n }\n }\n\n /**\n * Call `callback`, only once.\n *\n * @type {Callback}\n */\n function done(error, ...output) {\n if (!called) {\n called = true\n callback(error, ...output)\n }\n }\n\n /**\n * Call `done` with one value.\n *\n * @param {any} [value]\n */\n function then(value) {\n done(null, value)\n }\n}\n","// A derivative work based on:\n// <https://github.com/browserify/path-browserify>.\n// Which is licensed:\n//\n// MIT License\n//\n// Copyright (c) 2013 James Halliday\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A derivative work based on:\n//\n// Parts of that are extracted from Node’s internal `path` module:\n// <https://github.com/nodejs/node/blob/master/lib/path.js>.\n// Which is licensed:\n//\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nexport const minpath = {basename, dirname, extname, join, sep: '/'}\n\n/* eslint-disable max-depth, complexity */\n\n/**\n * Get the basename from a path.\n *\n * @param {string} path\n * File path.\n * @param {string | null | undefined} [extname]\n * Extension to strip.\n * @returns {string}\n * Stem or basename.\n */\nfunction basename(path, extname) {\n if (extname !== undefined && typeof extname !== 'string') {\n throw new TypeError('\"ext\" argument must be a string')\n }\n\n assertPath(path)\n let start = 0\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let seenNonSlash\n\n if (\n extname === undefined ||\n extname.length === 0 ||\n extname.length > path.length\n ) {\n while (index--) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // path component.\n seenNonSlash = true\n end = index + 1\n }\n }\n\n return end < 0 ? '' : path.slice(start, end)\n }\n\n if (extname === path) {\n return ''\n }\n\n let firstNonSlashEnd = -1\n let extnameIndex = extname.length - 1\n\n while (index--) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else {\n if (firstNonSlashEnd < 0) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching.\n seenNonSlash = true\n firstNonSlashEnd = index + 1\n }\n\n if (extnameIndex > -1) {\n // Try to match the explicit extension.\n if (path.codePointAt(index) === extname.codePointAt(extnameIndex--)) {\n if (extnameIndex < 0) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = index\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extnameIndex = -1\n end = firstNonSlashEnd\n }\n }\n }\n }\n\n if (start === end) {\n end = firstNonSlashEnd\n } else if (end < 0) {\n end = path.length\n }\n\n return path.slice(start, end)\n}\n\n/**\n * Get the dirname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\nfunction dirname(path) {\n assertPath(path)\n\n if (path.length === 0) {\n return '.'\n }\n\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n // Prefix `--` is important to not run on `0`.\n while (--index) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n if (unmatchedSlash) {\n end = index\n break\n }\n } else if (!unmatchedSlash) {\n // We saw the first non-path separator\n unmatchedSlash = true\n }\n }\n\n return end < 0\n ? path.codePointAt(0) === 47 /* `/` */\n ? '/'\n : '.'\n : end === 1 && path.codePointAt(0) === 47 /* `/` */\n ? '//'\n : path.slice(0, end)\n}\n\n/**\n * Get an extname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * Extname.\n */\nfunction extname(path) {\n assertPath(path)\n\n let index = path.length\n\n let end = -1\n let startPart = 0\n let startDot = -1\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find.\n let preDotState = 0\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n while (index--) {\n const code = path.codePointAt(index)\n\n if (code === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (unmatchedSlash) {\n startPart = index + 1\n break\n }\n\n continue\n }\n\n if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // extension.\n unmatchedSlash = true\n end = index + 1\n }\n\n if (code === 46 /* `.` */) {\n // If this is our first dot, mark it as the start of our extension.\n if (startDot < 0) {\n startDot = index\n } else if (preDotState !== 1) {\n preDotState = 1\n }\n } else if (startDot > -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension.\n preDotState = -1\n }\n }\n\n if (\n startDot < 0 ||\n end < 0 ||\n // We saw a non-dot character immediately before the dot.\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly `..`.\n (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)\n ) {\n return ''\n }\n\n return path.slice(startDot, end)\n}\n\n/**\n * Join segments from a path.\n *\n * @param {Array<string>} segments\n * Path segments.\n * @returns {string}\n * File path.\n */\nfunction join(...segments) {\n let index = -1\n /** @type {string | undefined} */\n let joined\n\n while (++index < segments.length) {\n assertPath(segments[index])\n\n if (segments[index]) {\n joined =\n joined === undefined ? segments[index] : joined + '/' + segments[index]\n }\n }\n\n return joined === undefined ? '.' : normalize(joined)\n}\n\n/**\n * Normalize a basic file path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\n// Note: `normalize` is not exposed as `path.normalize`, so some code is\n// manually removed from it.\nfunction normalize(path) {\n assertPath(path)\n\n const absolute = path.codePointAt(0) === 47 /* `/` */\n\n // Normalize the path according to POSIX rules.\n let value = normalizeString(path, !absolute)\n\n if (value.length === 0 && !absolute) {\n value = '.'\n }\n\n if (value.length > 0 && path.codePointAt(path.length - 1) === 47 /* / */) {\n value += '/'\n }\n\n return absolute ? '/' + value : value\n}\n\n/**\n * Resolve `.` and `..` elements in a path with directory names.\n *\n * @param {string} path\n * File path.\n * @param {boolean} allowAboveRoot\n * Whether `..` can move above root.\n * @returns {string}\n * File path.\n */\nfunction normalizeString(path, allowAboveRoot) {\n let result = ''\n let lastSegmentLength = 0\n let lastSlash = -1\n let dots = 0\n let index = -1\n /** @type {number | undefined} */\n let code\n /** @type {number} */\n let lastSlashIndex\n\n while (++index <= path.length) {\n if (index < path.length) {\n code = path.codePointAt(index)\n } else if (code === 47 /* `/` */) {\n break\n } else {\n code = 47 /* `/` */\n }\n\n if (code === 47 /* `/` */) {\n if (lastSlash === index - 1 || dots === 1) {\n // Empty.\n } else if (lastSlash !== index - 1 && dots === 2) {\n if (\n result.length < 2 ||\n lastSegmentLength !== 2 ||\n result.codePointAt(result.length - 1) !== 46 /* `.` */ ||\n result.codePointAt(result.length - 2) !== 46 /* `.` */\n ) {\n if (result.length > 2) {\n lastSlashIndex = result.lastIndexOf('/')\n\n if (lastSlashIndex !== result.length - 1) {\n if (lastSlashIndex < 0) {\n result = ''\n lastSegmentLength = 0\n } else {\n result = result.slice(0, lastSlashIndex)\n lastSegmentLength = result.length - 1 - result.lastIndexOf('/')\n }\n\n lastSlash = index\n dots = 0\n continue\n }\n } else if (result.length > 0) {\n result = ''\n lastSegmentLength = 0\n lastSlash = index\n dots = 0\n continue\n }\n }\n\n if (allowAboveRoot) {\n result = result.length > 0 ? result + '/..' : '..'\n lastSegmentLength = 2\n }\n } else {\n if (result.length > 0) {\n result += '/' + path.slice(lastSlash + 1, index)\n } else {\n result = path.slice(lastSlash + 1, index)\n }\n\n lastSegmentLength = index - lastSlash - 1\n }\n\n lastSlash = index\n dots = 0\n } else if (code === 46 /* `.` */ && dots > -1) {\n dots++\n } else {\n dots = -1\n }\n }\n\n return result\n}\n\n/**\n * Make sure `path` is a string.\n *\n * @param {string} path\n * File path.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError(\n 'Path must be a string. Received ' + JSON.stringify(path)\n )\n }\n}\n\n/* eslint-enable max-depth, complexity */\n","// Somewhat based on:\n// <https://github.com/defunctzombie/node-process/blob/master/browser.js>.\n// But I don’t think one tiny line of code can be copyrighted. 😅\nexport const minproc = {cwd}\n\nfunction cwd() {\n return '/'\n}\n","/**\n * Checks if a value has the shape of a WHATWG URL object.\n *\n * Using a symbol or instanceof would not be able to recognize URL objects\n * coming from other implementations (e.g. in Electron), so instead we are\n * checking some well known properties for a lack of a better test.\n *\n * We use `href` and `protocol` as they are the only properties that are\n * easy to retrieve and calculate due to the lazy nature of the getters.\n *\n * We check for auth attribute to distinguish legacy url instance with\n * WHATWG URL instance.\n *\n * @param {unknown} fileUrlOrPath\n * File path or URL.\n * @returns {fileUrlOrPath is URL}\n * Whether it’s a URL.\n */\n// From: <https://github.com/nodejs/node/blob/6a3403c/lib/internal/url.js#L720>\nexport function isUrl(fileUrlOrPath) {\n return Boolean(\n fileUrlOrPath !== null &&\n typeof fileUrlOrPath === 'object' &&\n 'href' in fileUrlOrPath &&\n fileUrlOrPath.href &&\n 'protocol' in fileUrlOrPath &&\n fileUrlOrPath.protocol &&\n // @ts-expect-error: indexing is fine.\n fileUrlOrPath.auth === undefined\n )\n}\n","import {isUrl} from './minurl.shared.js'\n\nexport {isUrl} from './minurl.shared.js'\n\n// See: <https://github.com/nodejs/node/blob/6a3403c/lib/internal/url.js>\n\n/**\n * @param {URL | string} path\n * File URL.\n * @returns {string}\n * File URL.\n */\nexport function urlToPath(path) {\n if (typeof path === 'string') {\n path = new URL(path)\n } else if (!isUrl(path)) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'The \"path\" argument must be of type string or an instance of URL. Received `' +\n path +\n '`'\n )\n error.code = 'ERR_INVALID_ARG_TYPE'\n throw error\n }\n\n if (path.protocol !== 'file:') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError('The URL must be of scheme file')\n error.code = 'ERR_INVALID_URL_SCHEME'\n throw error\n }\n\n return getPathFromURLPosix(path)\n}\n\n/**\n * Get a path from a POSIX URL.\n *\n * @param {URL} url\n * URL.\n * @returns {string}\n * File path.\n */\nfunction getPathFromURLPosix(url) {\n if (url.hostname !== '') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL host must be \"localhost\" or empty on darwin'\n )\n error.code = 'ERR_INVALID_FILE_URL_HOST'\n throw error\n }\n\n const pathname = url.pathname\n let index = -1\n\n while (++index < pathname.length) {\n if (\n pathname.codePointAt(index) === 37 /* `%` */ &&\n pathname.codePointAt(index + 1) === 50 /* `2` */\n ) {\n const third = pathname.codePointAt(index + 2)\n if (third === 70 /* `F` */ || third === 102 /* `f` */) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL path must not include encoded / characters'\n )\n error.code = 'ERR_INVALID_FILE_URL_PATH'\n throw error\n }\n }\n }\n\n return decodeURIComponent(pathname)\n}\n","/**\n * @import {Node, Point, Position} from 'unist'\n * @import {Options as MessageOptions} from 'vfile-message'\n * @import {Compatible, Data, Map, Options, Value} from 'vfile'\n */\n\n/**\n * @typedef {object & {type: string, position?: Position | undefined}} NodeLike\n */\n\nimport {VFileMessage} from 'vfile-message'\nimport {minpath} from '#minpath'\nimport {minproc} from '#minproc'\nimport {urlToPath, isUrl} from '#minurl'\n\n/**\n * Order of setting (least specific to most), we need this because otherwise\n * `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n * stem can be set.\n */\nconst order = /** @type {const} */ ([\n 'history',\n 'path',\n 'basename',\n 'stem',\n 'extname',\n 'dirname'\n])\n\nexport class VFile {\n /**\n * Create a new virtual file.\n *\n * `options` is treated as:\n *\n * * `string` or `Uint8Array` — `{value: options}`\n * * `URL` — `{path: options}`\n * * `VFile` — shallow copies its data over to the new file\n * * `object` — all fields are shallow copied over to the new file\n *\n * Path related fields are set in the following order (least specific to\n * most specific): `history`, `path`, `basename`, `stem`, `extname`,\n * `dirname`.\n *\n * You cannot set `dirname` or `extname` without setting either `history`,\n * `path`, `basename`, or `stem` too.\n *\n * @param {Compatible | null | undefined} [value]\n * File value.\n * @returns\n * New instance.\n */\n constructor(value) {\n /** @type {Options | VFile} */\n let options\n\n if (!value) {\n options = {}\n } else if (isUrl(value)) {\n options = {path: value}\n } else if (typeof value === 'string' || isUint8Array(value)) {\n options = {value}\n } else {\n options = value\n }\n\n /* eslint-disable no-unused-expressions */\n\n /**\n * Base of `path` (default: `process.cwd()` or `'/'` in browsers).\n *\n * @type {string}\n */\n // Prevent calling `cwd` (which could be expensive) if it’s not needed;\n // the empty string will be overridden in the next block.\n this.cwd = 'cwd' in options ? '' : minproc.cwd()\n\n /**\n * Place to store custom info (default: `{}`).\n *\n * It’s OK to store custom data directly on the file but moving it to\n * `data` is recommended.\n *\n * @type {Data}\n */\n this.data = {}\n\n /**\n * List of file paths the file moved between.\n *\n * The first is the original path and the last is the current path.\n *\n * @type {Array<string>}\n */\n this.history = []\n\n /**\n * List of messages associated with the file.\n *\n * @type {Array<VFileMessage>}\n */\n this.messages = []\n\n /**\n * Raw value.\n *\n * @type {Value}\n */\n this.value\n\n // The below are non-standard, they are “well-known”.\n // As in, used in several tools.\n /**\n * Source map.\n *\n * This type is equivalent to the `RawSourceMap` type from the `source-map`\n * module.\n *\n * @type {Map | null | undefined}\n */\n this.map\n\n /**\n * Custom, non-string, compiled, representation.\n *\n * This is used by unified to store non-string results.\n * One example is when turning markdown into React nodes.\n *\n * @type {unknown}\n */\n this.result\n\n /**\n * Whether a file was saved to disk.\n *\n * This is used by vfile reporters.\n *\n * @type {boolean}\n */\n this.stored\n /* eslint-enable no-unused-expressions */\n\n // Set path related properties in the correct order.\n let index = -1\n\n while (++index < order.length) {\n const field = order[index]\n\n // Note: we specifically use `in` instead of `hasOwnProperty` to accept\n // `vfile`s too.\n if (\n field in options &&\n options[field] !== undefined &&\n options[field] !== null\n ) {\n // @ts-expect-error: TS doesn’t understand basic reality.\n this[field] = field === 'history' ? [...options[field]] : options[field]\n }\n }\n\n /** @type {string} */\n let field\n\n // Set non-path related properties.\n for (field in options) {\n // @ts-expect-error: fine to set other things.\n if (!order.includes(field)) {\n // @ts-expect-error: fine to set other things.\n this[field] = options[field]\n }\n }\n }\n\n /**\n * Get the basename (including extname) (example: `'index.min.js'`).\n *\n * @returns {string | undefined}\n * Basename.\n */\n get basename() {\n return typeof this.path === 'string'\n ? minpath.basename(this.path)\n : undefined\n }\n\n /**\n * Set basename (including extname) (`'index.min.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} basename\n * Basename.\n * @returns {undefined}\n * Nothing.\n */\n set basename(basename) {\n assertNonEmpty(basename, 'basename')\n assertPart(basename, 'basename')\n this.path = minpath.join(this.dirname || '', basename)\n }\n\n /**\n * Get the parent path (example: `'~'`).\n *\n * @returns {string | undefined}\n * Dirname.\n */\n get dirname() {\n return typeof this.path === 'string'\n ? minpath.dirname(this.path)\n : undefined\n }\n\n /**\n * Set the parent path (example: `'~'`).\n *\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} dirname\n * Dirname.\n * @returns {undefined}\n * Nothing.\n */\n set dirname(dirname) {\n assertPath(this.basename, 'dirname')\n this.path = minpath.join(dirname || '', this.basename)\n }\n\n /**\n * Get the extname (including dot) (example: `'.js'`).\n *\n * @returns {string | undefined}\n * Extname.\n */\n get extname() {\n return typeof this.path === 'string'\n ? minpath.extname(this.path)\n : undefined\n }\n\n /**\n * Set the extname (including dot) (example: `'.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} extname\n * Extname.\n * @returns {undefined}\n * Nothing.\n */\n set extname(extname) {\n assertPart(extname, 'extname')\n assertPath(this.dirname, 'extname')\n\n if (extname) {\n if (extname.codePointAt(0) !== 46 /* `.` */) {\n throw new Error('`extname` must start with `.`')\n }\n\n if (extname.includes('.', 1)) {\n throw new Error('`extname` cannot contain multiple dots')\n }\n }\n\n this.path = minpath.join(this.dirname, this.stem + (extname || ''))\n }\n\n /**\n * Get the full path (example: `'~/index.min.js'`).\n *\n * @returns {string}\n * Path.\n */\n get path() {\n return this.history[this.history.length - 1]\n }\n\n /**\n * Set the full path (example: `'~/index.min.js'`).\n *\n * Cannot be nullified.\n * You can set a file URL (a `URL` object with a `file:` protocol) which will\n * be turned into a path with `url.fileURLToPath`.\n *\n * @param {URL | string} path\n * Path.\n * @returns {undefined}\n * Nothing.\n */\n set path(path) {\n if (isUrl(path)) {\n path = urlToPath(path)\n }\n\n assertNonEmpty(path, 'path')\n\n if (this.path !== path) {\n this.history.push(path)\n }\n }\n\n /**\n * Get the stem (basename w/o extname) (example: `'index.min'`).\n *\n * @returns {string | undefined}\n * Stem.\n */\n get stem() {\n return typeof this.path === 'string'\n ? minpath.basename(this.path, this.extname)\n : undefined\n }\n\n /**\n * Set the stem (basename w/o extname) (example: `'index.min'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} stem\n * Stem.\n * @returns {undefined}\n * Nothing.\n */\n set stem(stem) {\n assertNonEmpty(stem, 'stem')\n assertPart(stem, 'stem')\n this.path = minpath.join(this.dirname || '', stem + (this.extname || ''))\n }\n\n // Normal prototypal methods.\n /**\n * Create a fatal message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `true` (error; file not usable)\n * and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {never}\n * Never.\n * @throws {VFileMessage}\n * Message.\n */\n fail(causeOrReason, optionsOrParentOrPlace, origin) {\n // @ts-expect-error: the overloads are fine.\n const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n message.fatal = true\n\n throw message\n }\n\n /**\n * Create an info message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `undefined` (info; change\n * likely not needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n info(causeOrReason, optionsOrParentOrPlace, origin) {\n // @ts-expect-error: the overloads are fine.\n const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n message.fatal = undefined\n\n return message\n }\n\n /**\n * Create a message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `false` (warning; change may be\n * needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n message(causeOrReason, optionsOrParentOrPlace, origin) {\n const message = new VFileMessage(\n // @ts-expect-error: the overloads are fine.\n causeOrReason,\n optionsOrParentOrPlace,\n origin\n )\n\n if (this.path) {\n message.name = this.path + ':' + message.name\n message.file = this.path\n }\n\n message.fatal = false\n\n this.messages.push(message)\n\n return message\n }\n\n /**\n * Serialize the file.\n *\n * > **Note**: which encodings are supported depends on the engine.\n * > For info on Node.js, see:\n * > <https://nodejs.org/api/util.html#whatwg-supported-encodings>.\n *\n * @param {string | null | undefined} [encoding='utf8']\n * Character encoding to understand `value` as when it’s a `Uint8Array`\n * (default: `'utf-8'`).\n * @returns {string}\n * Serialized file.\n */\n toString(encoding) {\n if (this.value === undefined) {\n return ''\n }\n\n if (typeof this.value === 'string') {\n return this.value\n }\n\n const decoder = new TextDecoder(encoding || undefined)\n return decoder.decode(this.value)\n }\n}\n\n/**\n * Assert that `part` is not a path (as in, does not contain `path.sep`).\n *\n * @param {string | null | undefined} part\n * File path part.\n * @param {string} name\n * Part name.\n * @returns {undefined}\n * Nothing.\n */\nfunction assertPart(part, name) {\n if (part && part.includes(minpath.sep)) {\n throw new Error(\n '`' + name + '` cannot be a path: did not expect `' + minpath.sep + '`'\n )\n }\n}\n\n/**\n * Assert that `part` is not empty.\n *\n * @param {string | undefined} part\n * Thing.\n * @param {string} name\n * Part name.\n * @returns {asserts part is string}\n * Nothing.\n */\nfunction assertNonEmpty(part, name) {\n if (!part) {\n throw new Error('`' + name + '` cannot be empty')\n }\n}\n\n/**\n * Assert `path` exists.\n *\n * @param {string | undefined} path\n * Path.\n * @param {string} name\n * Dependency name.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path, name) {\n if (!path) {\n throw new Error('Setting `' + name + '` requires `path` to be set too')\n }\n}\n\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Uint8Array}\n * Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'byteLength' in value &&\n 'byteOffset' in value\n )\n}\n","export const CallableInstance =\n /**\n * @type {new <Parameters extends Array<unknown>, Result>(property: string | symbol) => (...parameters: Parameters) => Result}\n */\n (\n /** @type {unknown} */\n (\n /**\n * @this {Function}\n * @param {string | symbol} property\n * @returns {(...parameters: Array<unknown>) => unknown}\n */\n function (property) {\n const self = this\n const constr = self.constructor\n const proto = /** @type {Record<string | symbol, Function>} */ (\n // Prototypes do exist.\n // type-coverage:ignore-next-line\n constr.prototype\n )\n const value = proto[property]\n /** @type {(...parameters: Array<unknown>) => unknown} */\n const apply = function () {\n return value.apply(apply, arguments)\n }\n\n Object.setPrototypeOf(apply, proto)\n\n // Not needed for us in `unified`: we only call this on the `copy`\n // function,\n // and we don't need to add its fields (`length`, `name`)\n // over.\n // See also: GH-246.\n // const names = Object.getOwnPropertyNames(value)\n //\n // for (const p of names) {\n // const descriptor = Object.getOwnPropertyDescriptor(value, p)\n // if (descriptor) Object.defineProperty(apply, p, descriptor)\n // }\n\n return apply\n }\n )\n )\n","/**\n * @typedef {import('trough').Pipeline} Pipeline\n *\n * @typedef {import('unist').Node} Node\n *\n * @typedef {import('vfile').Compatible} Compatible\n * @typedef {import('vfile').Value} Value\n *\n * @typedef {import('../index.js').CompileResultMap} CompileResultMap\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Settings} Settings\n */\n\n/**\n * @typedef {CompileResultMap[keyof CompileResultMap]} CompileResults\n * Acceptable results from compilers.\n *\n * To register custom results, add them to\n * {@linkcode CompileResultMap}.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The node that the compiler receives (default: `Node`).\n * @template {CompileResults} [Result=CompileResults]\n * The thing that the compiler yields (default: `CompileResults`).\n * @callback Compiler\n * A **compiler** handles the compiling of a syntax tree to something else\n * (in most cases, text) (TypeScript type).\n *\n * It is used in the stringify phase and called with a {@linkcode Node}\n * and {@linkcode VFile} representation of the document to compile.\n * It should return the textual representation of the given tree (typically\n * `string`).\n *\n * > **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n * @param {Tree} tree\n * Tree to compile.\n * @param {VFile} file\n * File associated with `tree`.\n * @returns {Result}\n * New content: compiled text (`string` or `Uint8Array`, for `file.value`) or\n * something else (for `file.result`).\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The node that the parser yields (default: `Node`)\n * @callback Parser\n * A **parser** handles the parsing of text to a syntax tree.\n *\n * It is used in the parse phase and is called with a `string` and\n * {@linkcode VFile} of the document to parse.\n * It must return the syntax tree representation of the given file\n * ({@linkcode Node}).\n * @param {string} document\n * Document to parse.\n * @param {VFile} file\n * File associated with `document`.\n * @returns {Tree}\n * Node representing the given file.\n */\n\n/**\n * @typedef {(\n * Plugin<Array<any>, any, any> |\n * PluginTuple<Array<any>, any, any> |\n * Preset\n * )} Pluggable\n * Union of the different ways to add plugins and settings.\n */\n\n/**\n * @typedef {Array<Pluggable>} PluggableList\n * List of plugins and presets.\n */\n\n// Note: we can’t use `callback` yet as it messes up `this`:\n// <https://github.com/microsoft/TypeScript/issues/55197>.\n/**\n * @template {Array<unknown>} [PluginParameters=[]]\n * Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=Node]\n * Value that is expected as input (default: `Node`).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node it expects.\n * * If the plugin sets a {@linkcode Parser}, this should be\n * `string`.\n * * If the plugin sets a {@linkcode Compiler}, this should be the\n * node it expects.\n * @template [Output=Input]\n * Value that is yielded as output (default: `Input`).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node that that yields.\n * * If the plugin sets a {@linkcode Parser}, this should be the\n * node that it yields.\n * * If the plugin sets a {@linkcode Compiler}, this should be\n * result it yields.\n * @typedef {(\n * (this: Processor, ...parameters: PluginParameters) =>\n * Input extends string ? // Parser.\n * Output extends Node | undefined ? undefined | void : never :\n * Output extends CompileResults ? // Compiler.\n * Input extends Node | undefined ? undefined | void : never :\n * Transformer<\n * Input extends Node ? Input : Node,\n * Output extends Node ? Output : Node\n * > | undefined | void\n * )} Plugin\n * Single plugin.\n *\n * Plugins configure the processors they are applied on in the following\n * ways:\n *\n * * they change the processor, such as the parser, the compiler, or by\n * configuring data\n * * they specify how to handle trees and files\n *\n * In practice, they are functions that can receive options and configure the\n * processor (`this`).\n *\n * > **Note**: plugins are called when the processor is *frozen*, not when\n * > they are applied.\n */\n\n/**\n * Tuple of a plugin and its configuration.\n *\n * The first item is a plugin, the rest are its parameters.\n *\n * @template {Array<unknown>} [TupleParameters=[]]\n * Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=undefined]\n * Value that is expected as input (optional).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node it expects.\n * * If the plugin sets a {@linkcode Parser}, this should be\n * `string`.\n * * If the plugin sets a {@linkcode Compiler}, this should be the\n * node it expects.\n * @template [Output=undefined] (optional).\n * Value that is yielded as output.\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node that that yields.\n * * If the plugin sets a {@linkcode Parser}, this should be the\n * node that it yields.\n * * If the plugin sets a {@linkcode Compiler}, this should be\n * result it yields.\n * @typedef {(\n * [\n * plugin: Plugin<TupleParameters, Input, Output>,\n * ...parameters: TupleParameters\n * ]\n * )} PluginTuple\n */\n\n/**\n * @typedef Preset\n * Sharable configuration.\n *\n * They can contain plugins and settings.\n * @property {PluggableList | undefined} [plugins]\n * List of plugins and presets (optional).\n * @property {Settings | undefined} [settings]\n * Shared settings for parsers and compilers (optional).\n */\n\n/**\n * @template {VFile} [File=VFile]\n * The file that the callback receives (default: `VFile`).\n * @callback ProcessCallback\n * Callback called when the process is done.\n *\n * Called with either an error or a result.\n * @param {Error | undefined} [error]\n * Fatal error (optional).\n * @param {File | undefined} [file]\n * Processed file (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The tree that the callback receives (default: `Node`).\n * @callback RunCallback\n * Callback called when transformers are done.\n *\n * Called with either an error or results.\n * @param {Error | undefined} [error]\n * Fatal error (optional).\n * @param {Tree | undefined} [tree]\n * Transformed tree (optional).\n * @param {VFile | undefined} [file]\n * File (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Output=Node]\n * Node type that the transformer yields (default: `Node`).\n * @callback TransformCallback\n * Callback passed to transforms.\n *\n * If the signature of a `transformer` accepts a third argument, the\n * transformer may perform asynchronous operations, and must call it.\n * @param {Error | undefined} [error]\n * Fatal error to stop the process (optional).\n * @param {Output | undefined} [tree]\n * New, changed, tree (optional).\n * @param {VFile | undefined} [file]\n * New, changed, file (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Input=Node]\n * Node type that the transformer expects (default: `Node`).\n * @template {Node} [Output=Input]\n * Node type that the transformer yields (default: `Input`).\n * @callback Transformer\n * Transformers handle syntax trees and files.\n *\n * They are functions that are called each time a syntax tree and file are\n * passed through the run phase.\n * When an error occurs in them (either because it’s thrown, returned,\n * rejected, or passed to `next`), the process stops.\n *\n * The run phase is handled by [`trough`][trough], see its documentation for\n * the exact semantics of these functions.\n *\n * > **Note**: you should likely ignore `next`: don’t accept it.\n * > it supports callback-style async work.\n * > But promises are likely easier to reason about.\n *\n * [trough]: https://github.com/wooorm/trough#function-fninput-next\n * @param {Input} tree\n * Tree to handle.\n * @param {VFile} file\n * File to handle.\n * @param {TransformCallback<Output>} next\n * Callback.\n * @returns {(\n * Promise<Output | undefined | void> |\n * Promise<never> | // For some reason this is needed separately.\n * Output |\n * Error |\n * undefined |\n * void\n * )}\n * If you accept `next`, nothing.\n * Otherwise:\n *\n * * `Error` — fatal error to stop the process\n * * `Promise<undefined>` or `undefined` — the next transformer keeps using\n * same tree\n * * `Promise<Node>` or `Node` — new, changed, tree\n */\n\n/**\n * @template {Node | undefined} ParseTree\n * Output of `parse`.\n * @template {Node | undefined} HeadTree\n * Input for `run`.\n * @template {Node | undefined} TailTree\n * Output for `run`.\n * @template {Node | undefined} CompileTree\n * Input of `stringify`.\n * @template {CompileResults | undefined} CompileResult\n * Output of `stringify`.\n * @template {Node | string | undefined} Input\n * Input of plugin.\n * @template Output\n * Output of plugin (optional).\n * @typedef {(\n * Input extends string\n * ? Output extends Node | undefined\n * ? // Parser.\n * Processor<\n * Output extends undefined ? ParseTree : Output,\n * HeadTree,\n * TailTree,\n * CompileTree,\n * CompileResult\n * >\n * : // Unknown.\n * Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>\n * : Output extends CompileResults\n * ? Input extends Node | undefined\n * ? // Compiler.\n * Processor<\n * ParseTree,\n * HeadTree,\n * TailTree,\n * Input extends undefined ? CompileTree : Input,\n * Output extends undefined ? CompileResult : Output\n * >\n * : // Unknown.\n * Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>\n * : Input extends Node | undefined\n * ? Output extends Node | undefined\n * ? // Transform.\n * Processor<\n * ParseTree,\n * HeadTree extends undefined ? Input : HeadTree,\n * Output extends undefined ? TailTree : Output,\n * CompileTree,\n * CompileResult\n * >\n * : // Unknown.\n * Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>\n * : // Unknown.\n * Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>\n * )} UsePlugin\n * Create a processor based on the input/output of a {@link Plugin plugin}.\n */\n\n/**\n * @template {CompileResults | undefined} Result\n * Node type that the transformer yields.\n * @typedef {(\n * Result extends Value | undefined ?\n * VFile :\n * VFile & {result: Result}\n * )} VFileWithOutput\n * Type to generate a {@linkcode VFile} corresponding to a compiler result.\n *\n * If a result that is not acceptable on a `VFile` is used, that will\n * be stored on the `result` field of {@linkcode VFile}.\n */\n\nimport {bail} from 'bail'\nimport extend from 'extend'\nimport {ok as assert} from 'devlop'\nimport isPlainObj from 'is-plain-obj'\nimport {trough} from 'trough'\nimport {VFile} from 'vfile'\nimport {CallableInstance} from './callable-instance.js'\n\n// To do: next major: drop `Compiler`, `Parser`: prefer lowercase.\n\n// To do: we could start yielding `never` in TS when a parser is missing and\n// `parse` is called.\n// Currently, we allow directly setting `processor.parser`, which is untyped.\n\nconst own = {}.hasOwnProperty\n\n/**\n * @template {Node | undefined} [ParseTree=undefined]\n * Output of `parse` (optional).\n * @template {Node | undefined} [HeadTree=undefined]\n * Input for `run` (optional).\n * @template {Node | undefined} [TailTree=undefined]\n * Output for `run` (optional).\n * @template {Node | undefined} [CompileTree=undefined]\n * Input of `stringify` (optional).\n * @template {CompileResults | undefined} [CompileResult=undefined]\n * Output of `stringify` (optional).\n * @extends {CallableInstance<[], Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>>}\n */\nexport class Processor extends CallableInstance {\n /**\n * Create a processor.\n */\n constructor() {\n // If `Processor()` is called (w/o new), `copy` is called instead.\n super('copy')\n\n /**\n * Compiler to use (deprecated).\n *\n * @deprecated\n * Use `compiler` instead.\n * @type {(\n * Compiler<\n * CompileTree extends undefined ? Node : CompileTree,\n * CompileResult extends undefined ? CompileResults : CompileResult\n * > |\n * undefined\n * )}\n */\n this.Compiler = undefined\n\n /**\n * Parser to use (deprecated).\n *\n * @deprecated\n * Use `parser` instead.\n * @type {(\n * Parser<ParseTree extends undefined ? Node : ParseTree> |\n * undefined\n * )}\n */\n this.Parser = undefined\n\n // Note: the following fields are considered private.\n // However, they are needed for tests, and TSC generates an untyped\n // `private freezeIndex` field for, which trips `type-coverage` up.\n // Instead, we use `@deprecated` to visualize that they shouldn’t be used.\n /**\n * Internal list of configured plugins.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Array<PluginTuple<Array<unknown>>>}\n */\n this.attachers = []\n\n /**\n * Compiler to use.\n *\n * @type {(\n * Compiler<\n * CompileTree extends undefined ? Node : CompileTree,\n * CompileResult extends undefined ? CompileResults : CompileResult\n * > |\n * undefined\n * )}\n */\n this.compiler = undefined\n\n /**\n * Internal state to track where we are while freezing.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {number}\n */\n this.freezeIndex = -1\n\n /**\n * Internal state to track whether we’re frozen.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {boolean | undefined}\n */\n this.frozen = undefined\n\n /**\n * Internal state.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Data}\n */\n this.namespace = {}\n\n /**\n * Parser to use.\n *\n * @type {(\n * Parser<ParseTree extends undefined ? Node : ParseTree> |\n * undefined\n * )}\n */\n this.parser = undefined\n\n /**\n * Internal list of configured transformers.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Pipeline}\n */\n this.transformers = trough()\n }\n\n /**\n * Copy a processor.\n *\n * @deprecated\n * This is a private internal method and should not be used.\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n * New *unfrozen* processor ({@linkcode Processor}) that is\n * configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */\n copy() {\n // Cast as the type parameters will be the same after attaching.\n const destination =\n /** @type {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>} */ (\n new Processor()\n )\n let index = -1\n\n while (++index < this.attachers.length) {\n const attacher = this.attachers[index]\n destination.use(...attacher)\n }\n\n destination.data(extend(true, {}, this.namespace))\n\n return destination\n }\n\n /**\n * Configure the processor with info available to all plugins.\n * Information is stored in an object.\n *\n * Typically, options can be given to a specific plugin, but sometimes it\n * makes sense to have information shared with several plugins.\n * For example, a list of HTML elements that are self-closing, which is\n * needed during all phases.\n *\n * > **Note**: setting information cannot occur on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * > **Note**: to register custom data in TypeScript, augment the\n * > {@linkcode Data} interface.\n *\n * @example\n * This example show how to get and set info:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * const processor = unified().data('alpha', 'bravo')\n *\n * processor.data('alpha') // => 'bravo'\n *\n * processor.data() // => {alpha: 'bravo'}\n *\n * processor.data({charlie: 'delta'})\n *\n * processor.data() // => {charlie: 'delta'}\n * ```\n *\n * @template {keyof Data} Key\n *\n * @overload\n * @returns {Data}\n *\n * @overload\n * @param {Data} dataset\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n *\n * @overload\n * @param {Key} key\n * @returns {Data[Key]}\n *\n * @overload\n * @param {Key} key\n * @param {Data[Key]} value\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n *\n * @param {Data | Key} [key]\n * Key to get or set, or entire dataset to set, or nothing to get the\n * entire dataset (optional).\n * @param {Data[Key]} [value]\n * Value to set (optional).\n * @returns {unknown}\n * The current processor when setting, the value at `key` when getting, or\n * the entire dataset when getting without key.\n */\n data(key, value) {\n if (typeof key === 'string') {\n // Set `key`.\n if (arguments.length === 2) {\n assertUnfrozen('data', this.frozen)\n this.namespace[key] = value\n return this\n }\n\n // Get `key`.\n return (own.call(this.namespace, key) && this.namespace[key]) || undefined\n }\n\n // Set space.\n if (key) {\n assertUnfrozen('data', this.frozen)\n this.namespace = key\n return this\n }\n\n // Get space.\n return this.namespace\n }\n\n /**\n * Freeze a processor.\n *\n * Frozen processors are meant to be extended and not to be configured\n * directly.\n *\n * When a processor is frozen it cannot be unfrozen.\n * New processors working the same way can be created by calling the\n * processor.\n *\n * It’s possible to freeze processors explicitly by calling `.freeze()`.\n * Processors freeze automatically when `.parse()`, `.run()`, `.runSync()`,\n * `.stringify()`, `.process()`, or `.processSync()` are called.\n *\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n * The current processor.\n */\n freeze() {\n if (this.frozen) {\n return this\n }\n\n // Cast so that we can type plugins easier.\n // Plugins are supposed to be usable on different processors, not just on\n // this exact processor.\n const self = /** @type {Processor} */ (/** @type {unknown} */ (this))\n\n while (++this.freezeIndex < this.attachers.length) {\n const [attacher, ...options] = this.attachers[this.freezeIndex]\n\n if (options[0] === false) {\n continue\n }\n\n if (options[0] === true) {\n options[0] = undefined\n }\n\n const transformer = attacher.call(self, ...options)\n\n if (typeof transformer === 'function') {\n this.transformers.use(transformer)\n }\n }\n\n this.frozen = true\n this.freezeIndex = Number.POSITIVE_INFINITY\n\n return this\n }\n\n /**\n * Parse text to a syntax tree.\n *\n * > **Note**: `parse` freezes the processor if not already *frozen*.\n *\n * > **Note**: `parse` performs the parse phase, not the run phase or other\n * > phases.\n *\n * @param {Compatible | undefined} [file]\n * file to parse (optional); typically `string` or `VFile`; any value\n * accepted as `x` in `new VFile(x)`.\n * @returns {ParseTree extends undefined ? Node : ParseTree}\n * Syntax tree representing `file`.\n */\n parse(file) {\n this.freeze()\n const realFile = vfile(file)\n const parser = this.parser || this.Parser\n assertParser('parse', parser)\n return parser(String(realFile), realFile)\n }\n\n /**\n * Process the given file as configured on the processor.\n *\n * > **Note**: `process` freezes the processor if not already *frozen*.\n *\n * > **Note**: `process` performs the parse, run, and stringify phases.\n *\n * @overload\n * @param {Compatible | undefined} file\n * @param {ProcessCallback<VFileWithOutput<CompileResult>>} done\n * @returns {undefined}\n *\n * @overload\n * @param {Compatible | undefined} [file]\n * @returns {Promise<VFileWithOutput<CompileResult>>}\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`]; any value accepted as\n * `x` in `new VFile(x)`.\n * @param {ProcessCallback<VFileWithOutput<CompileResult>> | undefined} [done]\n * Callback (optional).\n * @returns {Promise<VFile> | undefined}\n * Nothing if `done` is given.\n * Otherwise a promise, rejected with a fatal error or resolved with the\n * processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n process(file, done) {\n const self = this\n\n this.freeze()\n assertParser('process', this.parser || this.Parser)\n assertCompiler('process', this.compiler || this.Compiler)\n\n return done ? executor(undefined, done) : new Promise(executor)\n\n // Note: `void`s needed for TS.\n /**\n * @param {((file: VFileWithOutput<CompileResult>) => undefined | void) | undefined} resolve\n * @param {(error: Error | undefined) => undefined | void} reject\n * @returns {undefined}\n */\n function executor(resolve, reject) {\n const realFile = vfile(file)\n // Assume `ParseTree` (the result of the parser) matches `HeadTree` (the\n // input of the first transform).\n const parseTree =\n /** @type {HeadTree extends undefined ? Node : HeadTree} */ (\n /** @type {unknown} */ (self.parse(realFile))\n )\n\n self.run(parseTree, realFile, function (error, tree, file) {\n if (error || !tree || !file) {\n return realDone(error)\n }\n\n // Assume `TailTree` (the output of the last transform) matches\n // `CompileTree` (the input of the compiler).\n const compileTree =\n /** @type {CompileTree extends undefined ? Node : CompileTree} */ (\n /** @type {unknown} */ (tree)\n )\n\n const compileResult = self.stringify(compileTree, file)\n\n if (looksLikeAValue(compileResult)) {\n file.value = compileResult\n } else {\n file.result = compileResult\n }\n\n realDone(error, /** @type {VFileWithOutput<CompileResult>} */ (file))\n })\n\n /**\n * @param {Error | undefined} error\n * @param {VFileWithOutput<CompileResult> | undefined} [file]\n * @returns {undefined}\n */\n function realDone(error, file) {\n if (error || !file) {\n reject(error)\n } else if (resolve) {\n resolve(file)\n } else {\n assert(done, '`done` is defined if `resolve` is not')\n done(undefined, file)\n }\n }\n }\n }\n\n /**\n * Process the given file as configured on the processor.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > **Note**: `processSync` freezes the processor if not already *frozen*.\n *\n * > **Note**: `processSync` performs the parse, run, and stringify phases.\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`; any value accepted as\n * `x` in `new VFile(x)`.\n * @returns {VFileWithOutput<CompileResult>}\n * The processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n processSync(file) {\n /** @type {boolean} */\n let complete = false\n /** @type {VFileWithOutput<CompileResult> | undefined} */\n let result\n\n this.freeze()\n assertParser('processSync', this.parser || this.Parser)\n assertCompiler('processSync', this.compiler || this.Compiler)\n\n this.process(file, realDone)\n assertDone('processSync', 'process', complete)\n assert(result, 'we either bailed on an error or have a tree')\n\n return result\n\n /**\n * @type {ProcessCallback<VFileWithOutput<CompileResult>>}\n */\n function realDone(error, file) {\n complete = true\n bail(error)\n result = file\n }\n }\n\n /**\n * Run *transformers* on a syntax tree.\n *\n * > **Note**: `run` freezes the processor if not already *frozen*.\n *\n * > **Note**: `run` performs the run phase, not other phases.\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {RunCallback<TailTree extends undefined ? Node : TailTree>} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} file\n * @param {RunCallback<TailTree extends undefined ? Node : TailTree>} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} [file]\n * @returns {Promise<TailTree extends undefined ? Node : TailTree>}\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {(\n * RunCallback<TailTree extends undefined ? Node : TailTree> |\n * Compatible\n * )} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @param {RunCallback<TailTree extends undefined ? Node : TailTree>} [done]\n * Callback (optional).\n * @returns {Promise<TailTree extends undefined ? Node : TailTree> | undefined}\n * Nothing if `done` is given.\n * Otherwise, a promise rejected with a fatal error or resolved with the\n * transformed tree.\n */\n run(tree, file, done) {\n assertNode(tree)\n this.freeze()\n\n const transformers = this.transformers\n\n if (!done && typeof file === 'function') {\n done = file\n file = undefined\n }\n\n return done ? executor(undefined, done) : new Promise(executor)\n\n // Note: `void`s needed for TS.\n /**\n * @param {(\n * ((tree: TailTree extends undefined ? Node : TailTree) => undefined | void) |\n * undefined\n * )} resolve\n * @param {(error: Error) => undefined | void} reject\n * @returns {undefined}\n */\n function executor(resolve, reject) {\n assert(\n typeof file !== 'function',\n '`file` can’t be a `done` anymore, we checked'\n )\n const realFile = vfile(file)\n transformers.run(tree, realFile, realDone)\n\n /**\n * @param {Error | undefined} error\n * @param {Node} outputTree\n * @param {VFile} file\n * @returns {undefined}\n */\n function realDone(error, outputTree, file) {\n const resultingTree =\n /** @type {TailTree extends undefined ? Node : TailTree} */ (\n outputTree || tree\n )\n\n if (error) {\n reject(error)\n } else if (resolve) {\n resolve(resultingTree)\n } else {\n assert(done, '`done` is defined if `resolve` is not')\n done(undefined, resultingTree, file)\n }\n }\n }\n }\n\n /**\n * Run *transformers* on a syntax tree.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > **Note**: `runSync` freezes the processor if not already *frozen*.\n *\n * > **Note**: `runSync` performs the run phase, not other phases.\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {TailTree extends undefined ? Node : TailTree}\n * Transformed tree.\n */\n runSync(tree, file) {\n /** @type {boolean} */\n let complete = false\n /** @type {(TailTree extends undefined ? Node : TailTree) | undefined} */\n let result\n\n this.run(tree, file, realDone)\n\n assertDone('runSync', 'run', complete)\n assert(result, 'we either bailed on an error or have a tree')\n return result\n\n /**\n * @type {RunCallback<TailTree extends undefined ? Node : TailTree>}\n */\n function realDone(error, tree) {\n bail(error)\n result = tree\n complete = true\n }\n }\n\n /**\n * Compile a syntax tree.\n *\n * > **Note**: `stringify` freezes the processor if not already *frozen*.\n *\n * > **Note**: `stringify` performs the stringify phase, not the run phase\n * > or other phases.\n *\n * @param {CompileTree extends undefined ? Node : CompileTree} tree\n * Tree to compile.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {CompileResult extends undefined ? Value : CompileResult}\n * Textual representation of the tree (see note).\n *\n * > **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n stringify(tree, file) {\n this.freeze()\n const realFile = vfile(file)\n const compiler = this.compiler || this.Compiler\n assertCompiler('stringify', compiler)\n assertNode(tree)\n\n return compiler(tree, realFile)\n }\n\n /**\n * Configure the processor to use a plugin, a list of usable values, or a\n * preset.\n *\n * If the processor is already using a plugin, the previous plugin\n * configuration is changed based on the options that are passed in.\n * In other words, the plugin is not added a second time.\n *\n * > **Note**: `use` cannot be called on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * @example\n * There are many ways to pass plugins to `.use()`.\n * This example gives an overview:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * unified()\n * // Plugin with options:\n * .use(pluginA, {x: true, y: true})\n * // Passing the same plugin again merges configuration (to `{x: true, y: false, z: true}`):\n * .use(pluginA, {y: false, z: true})\n * // Plugins:\n * .use([pluginB, pluginC])\n * // Two plugins, the second with options:\n * .use([pluginD, [pluginE, {}]])\n * // Preset with plugins and settings:\n * .use({plugins: [pluginF, [pluginG, {}]], settings: {position: false}})\n * // Settings only:\n * .use({settings: {position: false}})\n * ```\n *\n * @template {Array<unknown>} [Parameters=[]]\n * @template {Node | string | undefined} [Input=undefined]\n * @template [Output=Input]\n *\n * @overload\n * @param {Preset | null | undefined} [preset]\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n *\n * @overload\n * @param {PluggableList} list\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n *\n * @overload\n * @param {Plugin<Parameters, Input, Output>} plugin\n * @param {...(Parameters | [boolean])} parameters\n * @returns {UsePlugin<ParseTree, HeadTree, TailTree, CompileTree, CompileResult, Input, Output>}\n *\n * @param {PluggableList | Plugin | Preset | null | undefined} value\n * Usable value.\n * @param {...unknown} parameters\n * Parameters, when a plugin is given as a usable value.\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n * Current processor.\n */\n use(value, ...parameters) {\n const attachers = this.attachers\n const namespace = this.namespace\n\n assertUnfrozen('use', this.frozen)\n\n if (value === null || value === undefined) {\n // Empty.\n } else if (typeof value === 'function') {\n addPlugin(value, parameters)\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n addList(value)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n\n return this\n\n /**\n * @param {Pluggable} value\n * @returns {undefined}\n */\n function add(value) {\n if (typeof value === 'function') {\n addPlugin(value, [])\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n const [plugin, ...parameters] =\n /** @type {PluginTuple<Array<unknown>>} */ (value)\n addPlugin(plugin, parameters)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n }\n\n /**\n * @param {Preset} result\n * @returns {undefined}\n */\n function addPreset(result) {\n if (!('plugins' in result) && !('settings' in result)) {\n throw new Error(\n 'Expected usable value but received an empty preset, which is probably a mistake: presets typically come with `plugins` and sometimes with `settings`, but this has neither'\n )\n }\n\n addList(result.plugins)\n\n if (result.settings) {\n namespace.settings = extend(true, namespace.settings, result.settings)\n }\n }\n\n /**\n * @param {PluggableList | null | undefined} plugins\n * @returns {undefined}\n */\n function addList(plugins) {\n let index = -1\n\n if (plugins === null || plugins === undefined) {\n // Empty.\n } else if (Array.isArray(plugins)) {\n while (++index < plugins.length) {\n const thing = plugins[index]\n add(thing)\n }\n } else {\n throw new TypeError('Expected a list of plugins, not `' + plugins + '`')\n }\n }\n\n /**\n * @param {Plugin} plugin\n * @param {Array<unknown>} parameters\n * @returns {undefined}\n */\n function addPlugin(plugin, parameters) {\n let index = -1\n let entryIndex = -1\n\n while (++index < attachers.length) {\n if (attachers[index][0] === plugin) {\n entryIndex = index\n break\n }\n }\n\n if (entryIndex === -1) {\n attachers.push([plugin, ...parameters])\n }\n // Only set if there was at least a `primary` value, otherwise we’d change\n // `arguments.length`.\n else if (parameters.length > 0) {\n let [primary, ...rest] = parameters\n const currentPrimary = attachers[entryIndex][1]\n if (isPlainObj(currentPrimary) && isPlainObj(primary)) {\n primary = extend(true, currentPrimary, primary)\n }\n\n attachers[entryIndex] = [plugin, primary, ...rest]\n }\n }\n }\n}\n\n// Note: this returns a *callable* instance.\n// That’s why it’s documented as a function.\n/**\n * Create a new processor.\n *\n * @example\n * This example shows how a new processor can be created (from `remark`) and linked\n * to **stdin**(4) and **stdout**(4).\n *\n * ```js\n * import process from 'node:process'\n * import concatStream from 'concat-stream'\n * import {remark} from 'remark'\n *\n * process.stdin.pipe(\n * concatStream(function (buf) {\n * process.stdout.write(String(remark().processSync(buf)))\n * })\n * )\n * ```\n *\n * @returns\n * New *unfrozen* processor (`processor`).\n *\n * This processor is configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */\nexport const unified = new Processor().freeze()\n\n/**\n * Assert a parser is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Parser}\n */\nfunction assertParser(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `parser`')\n }\n}\n\n/**\n * Assert a compiler is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Compiler}\n */\nfunction assertCompiler(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `compiler`')\n }\n}\n\n/**\n * Assert the processor is not frozen.\n *\n * @param {string} name\n * @param {unknown} frozen\n * @returns {asserts frozen is false}\n */\nfunction assertUnfrozen(name, frozen) {\n if (frozen) {\n throw new Error(\n 'Cannot call `' +\n name +\n '` on a frozen processor.\\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.'\n )\n }\n}\n\n/**\n * Assert `node` is a unist node.\n *\n * @param {unknown} node\n * @returns {asserts node is Node}\n */\nfunction assertNode(node) {\n // `isPlainObj` unfortunately uses `any` instead of `unknown`.\n // type-coverage:ignore-next-line\n if (!isPlainObj(node) || typeof node.type !== 'string') {\n throw new TypeError('Expected node, got `' + node + '`')\n // Fine.\n }\n}\n\n/**\n * Assert that `complete` is `true`.\n *\n * @param {string} name\n * @param {string} asyncName\n * @param {unknown} complete\n * @returns {asserts complete is true}\n */\nfunction assertDone(name, asyncName, complete) {\n if (!complete) {\n throw new Error(\n '`' + name + '` finished async. Use `' + asyncName + '` instead'\n )\n }\n}\n\n/**\n * @param {Compatible | undefined} [value]\n * @returns {VFile}\n */\nfunction vfile(value) {\n return looksLikeAVFile(value) ? value : new VFile(value)\n}\n\n/**\n * @param {Compatible | undefined} [value]\n * @returns {value is VFile}\n */\nfunction looksLikeAVFile(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'message' in value &&\n 'messages' in value\n )\n}\n\n/**\n * @param {unknown} [value]\n * @returns {value is Value}\n */\nfunction looksLikeAValue(value) {\n return typeof value === 'string' || isUint8Array(value)\n}\n\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Uint8Array}\n * Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'byteLength' in value &&\n 'byteOffset' in value\n )\n}\n","import '../assets/NcRichText-RvICaxkO.css';\nimport rehypeExternalLinks from \"rehype-external-links\";\nimport rehype2react from \"rehype-react\";\nimport breaks from \"remark-breaks\";\nimport remarkParse from \"remark-parse\";\nimport remark2rehype from \"remark-rehype\";\nimport remarkUnlinkProtocols from \"remark-unlink-protocols\";\nimport { unified } from \"unified\";\nimport { resolveComponent, createElementBlock, createCommentVNode, openBlock, normalizeClass, Fragment, renderList, createBlock, defineComponent, unref, withCtx, createVNode, ref, h } from \"vue\";\nimport { RouterLink } from \"vue-router\";\nimport { N as NcCheckboxRadioSwitch } from \"./NcCheckboxRadioSwitch-BCSKF7Tk.mjs\";\nimport { getCurrentUser } from \"@nextcloud/auth\";\nimport axios from \"@nextcloud/axios\";\nimport { generateOcsUrl } from \"@nextcloud/router\";\nimport { getSharingToken } from \"@nextcloud/sharing/public\";\nimport { f as NcReferenceWidget } from \"./referencePickerModal-DmD3-xYB.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { U as URL_PATTERN, g as getRoute, p as parseUrl, r as remarkAutolink } from \"./autolink-U5pBzLgI.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { N as NcButton } from \"./NcButton-Dc8V4Urj.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-BvLanNaW.mjs\";\nimport { u as useCopy } from \"./useCopy-7FVrniF_.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { u } from \"unist-builder\";\nimport { visit, EXIT as EXIT$1, SKIP as SKIP$1 } from \"unist-util-visit\";\nconst _sfc_main$2 = {\n name: \"NcReferenceList\",\n components: {\n NcReferenceWidget\n },\n /* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n props: {\n text: {\n type: String,\n default: \"\"\n },\n referenceData: {\n type: Array,\n default: null\n },\n limit: {\n type: Number,\n default: 1\n },\n displayFallback: {\n type: Boolean,\n default: false\n },\n interactive: {\n type: Boolean,\n default: true\n },\n interactiveOptIn: {\n type: Boolean,\n default: false\n }\n },\n emits: [\"loaded\"],\n data() {\n return {\n references: null,\n loading: true\n };\n },\n computed: {\n isVisible() {\n return this.loading || this.displayedReferences.length !== 0;\n },\n values() {\n if (this.referenceData) {\n return this.referenceData;\n }\n if (this.displayFallback && !this.loading && !this.references) {\n return [this.fallbackReference];\n }\n return this.references ? Object.values(this.references) : [];\n },\n firstReference() {\n return this.values[0] ?? null;\n },\n displayedReferences() {\n return this.values.filter(Boolean).slice(0, this.limit);\n },\n fallbackReference() {\n return {\n accessible: true,\n openGraphObject: {\n id: this.text,\n link: this.text,\n name: this.text\n },\n richObjectType: \"open-graph\"\n };\n }\n },\n watch: {\n text: \"fetch\"\n },\n mounted() {\n this.fetch();\n },\n methods: {\n fetch() {\n this.loading = true;\n if (this.referenceData) {\n this.references = null;\n this.loading = false;\n return;\n }\n if (!new RegExp(URL_PATTERN).exec(this.text)) {\n this.references = null;\n this.loading = false;\n return;\n }\n this.resolve().then((response) => {\n this.references = response.data.ocs.data.references;\n this.loading = false;\n this.$emit(\"loaded\");\n }).catch((error) => {\n logger.error(\"[NcReferenceList] Failed to extract references\", { error });\n this.loading = false;\n this.$emit(\"loaded\");\n });\n },\n resolve() {\n const match = new RegExp(URL_PATTERN).exec(this.text.trim());\n const isPublic = getCurrentUser() === null;\n if (this.limit === 1 && match) {\n return isPublic ? axios.get(generateOcsUrl(\"references/resolvePublic\") + `?reference=${encodeURIComponent(match[0])}&sharingToken=${getSharingToken()}`) : axios.get(generateOcsUrl(\"references/resolve\") + `?reference=${encodeURIComponent(match[0])}`);\n }\n return isPublic ? axios.post(generateOcsUrl(\"references/extractPublic\"), {\n text: this.text,\n resolve: true,\n limit: this.limit,\n sharingToken: getSharingToken()\n }) : axios.post(generateOcsUrl(\"references/extract\"), {\n text: this.text,\n resolve: true,\n limit: this.limit\n });\n }\n }\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcReferenceWidget = resolveComponent(\"NcReferenceWidget\");\n return $options.isVisible ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"widgets--list\", { \"icon-loading\": $data.loading }])\n }, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.displayedReferences, (reference) => {\n return openBlock(), createBlock(_component_NcReferenceWidget, {\n key: reference.openGraphObject?.id,\n reference,\n interactive: $props.interactive,\n \"interactive-opt-in\": $props.interactiveOptIn\n }, null, 8, [\"reference\", \"interactive\", \"interactive-opt-in\"]);\n }), 128))\n ], 2)) : createCommentVNode(\"\", true);\n}\nconst NcReferenceList = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-cd116174\"]]);\nfunction ccount(value, character) {\n const source = String(value);\n if (typeof character !== \"string\") {\n throw new TypeError(\"Expected character\");\n }\n let count = 0;\n let index = source.indexOf(character);\n while (index !== -1) {\n count++;\n index = source.indexOf(character, index + character.length);\n }\n return count;\n}\nfunction ok$1() {\n}\nconst asciiAlpha = regexCheck(/[A-Za-z]/);\nconst asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/);\nfunction asciiControl(code2) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code2 !== null && (code2 < 32 || code2 === 127)\n );\n}\nfunction markdownLineEnding(code2) {\n return code2 !== null && code2 < -2;\n}\nfunction markdownLineEndingOrSpace(code2) {\n return code2 !== null && (code2 < 0 || code2 === 32);\n}\nfunction markdownSpace(code2) {\n return code2 === -2 || code2 === -1 || code2 === 32;\n}\nconst unicodePunctuation = regexCheck(new RegExp(\"\\\\p{P}|\\\\p{S}\", \"u\"));\nconst unicodeWhitespace = regexCheck(/\\s/);\nfunction regexCheck(regex) {\n return check;\n function check(code2) {\n return code2 !== null && code2 > -1 && regex.test(String.fromCharCode(code2));\n }\n}\nfunction escapeStringRegexp(string) {\n if (typeof string !== \"string\") {\n throw new TypeError(\"Expected a string\");\n }\n return string.replace(/[|\\\\{}()[\\]^$+*?.]/g, \"\\\\$&\").replace(/-/g, \"\\\\x2d\");\n}\nconst convert = (\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * (<Condition extends string>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * (<Condition extends Props>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * (<Condition extends TestFunction>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate<Condition, Node>) &\n * ((test?: null | undefined) => (node?: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((test?: Test) => Check)\n * )}\n */\n /**\n * @param {Test} [test]\n * @returns {Check}\n */\n (function(test) {\n if (test === null || test === void 0) {\n return ok;\n }\n if (typeof test === \"function\") {\n return castFactory(test);\n }\n if (typeof test === \"object\") {\n return Array.isArray(test) ? anyFactory(test) : propsFactory(test);\n }\n if (typeof test === \"string\") {\n return typeFactory(test);\n }\n throw new Error(\"Expected function, string, or object as test\");\n })\n);\nfunction anyFactory(tests) {\n const checks = [];\n let index = -1;\n while (++index < tests.length) {\n checks[index] = convert(tests[index]);\n }\n return castFactory(any);\n function any(...parameters) {\n let index2 = -1;\n while (++index2 < checks.length) {\n if (checks[index2].apply(this, parameters)) return true;\n }\n return false;\n }\n}\nfunction propsFactory(check) {\n const checkAsRecord = (\n /** @type {Record<string, unknown>} */\n check\n );\n return castFactory(all2);\n function all2(node2) {\n const nodeAsRecord = (\n /** @type {Record<string, unknown>} */\n /** @type {unknown} */\n node2\n );\n let key;\n for (key in check) {\n if (nodeAsRecord[key] !== checkAsRecord[key]) return false;\n }\n return true;\n }\n}\nfunction typeFactory(check) {\n return castFactory(type);\n function type(node2) {\n return node2 && node2.type === check;\n }\n}\nfunction castFactory(testFunction) {\n return check;\n function check(value, index, parent) {\n return Boolean(\n looksLikeANode(value) && testFunction.call(\n this,\n value,\n typeof index === \"number\" ? index : void 0,\n parent || void 0\n )\n );\n }\n}\nfunction ok() {\n return true;\n}\nfunction looksLikeANode(value) {\n return value !== null && typeof value === \"object\" && \"type\" in value;\n}\nfunction color(d) {\n return d;\n}\nconst empty = [];\nconst CONTINUE = true;\nconst EXIT = false;\nconst SKIP = \"skip\";\nfunction visitParents(tree, test, visitor, reverse) {\n let check;\n {\n check = test;\n }\n const is = convert(check);\n const step = 1;\n factory(tree, void 0, [])();\n function factory(node2, index, parents) {\n const value = (\n /** @type {Record<string, unknown>} */\n node2 && typeof node2 === \"object\" ? node2 : {}\n );\n if (typeof value.type === \"string\") {\n const name = (\n // `hast`\n typeof value.tagName === \"string\" ? value.tagName : (\n // `xast`\n typeof value.name === \"string\" ? value.name : void 0\n )\n );\n Object.defineProperty(visit2, \"name\", {\n value: \"node (\" + color(node2.type + (name ? \"<\" + name + \">\" : \"\")) + \")\"\n });\n }\n return visit2;\n function visit2() {\n let result = empty;\n let subresult;\n let offset;\n let grandparents;\n if (is(node2, index, parents[parents.length - 1] || void 0)) {\n result = toResult(visitor(node2, parents));\n if (result[0] === EXIT) {\n return result;\n }\n }\n if (\"children\" in node2 && node2.children) {\n const nodeAsParent = (\n /** @type {UnistParent} */\n node2\n );\n if (nodeAsParent.children && result[0] !== SKIP) {\n offset = -1 + step;\n grandparents = parents.concat(nodeAsParent);\n while (offset > -1 && offset < nodeAsParent.children.length) {\n const child = nodeAsParent.children[offset];\n subresult = factory(child, offset, grandparents)();\n if (subresult[0] === EXIT) {\n return subresult;\n }\n offset = typeof subresult[1] === \"number\" ? subresult[1] : offset + step;\n }\n }\n }\n return result;\n }\n }\n}\nfunction toResult(value) {\n if (Array.isArray(value)) {\n return value;\n }\n if (typeof value === \"number\") {\n return [CONTINUE, value];\n }\n return value === null || value === void 0 ? empty : [value];\n}\nfunction findAndReplace(tree, list2, options) {\n const settings = options || {};\n const ignored = convert(settings.ignore || []);\n const pairs = toPairs(list2);\n let pairIndex = -1;\n while (++pairIndex < pairs.length) {\n visitParents(tree, \"text\", visitor);\n }\n function visitor(node2, parents) {\n let index = -1;\n let grandparent;\n while (++index < parents.length) {\n const parent = parents[index];\n const siblings = grandparent ? grandparent.children : void 0;\n if (ignored(\n parent,\n siblings ? siblings.indexOf(parent) : void 0,\n grandparent\n )) {\n return;\n }\n grandparent = parent;\n }\n if (grandparent) {\n return handler(node2, parents);\n }\n }\n function handler(node2, parents) {\n const parent = parents[parents.length - 1];\n const find = pairs[pairIndex][0];\n const replace2 = pairs[pairIndex][1];\n let start = 0;\n const siblings = parent.children;\n const index = siblings.indexOf(node2);\n let change = false;\n let nodes = [];\n find.lastIndex = 0;\n let match = find.exec(node2.value);\n while (match) {\n const position = match.index;\n const matchObject = {\n index: match.index,\n input: match.input,\n stack: [...parents, node2]\n };\n let value = replace2(...match, matchObject);\n if (typeof value === \"string\") {\n value = value.length > 0 ? { type: \"text\", value } : void 0;\n }\n if (value === false) {\n find.lastIndex = position + 1;\n } else {\n if (start !== position) {\n nodes.push({\n type: \"text\",\n value: node2.value.slice(start, position)\n });\n }\n if (Array.isArray(value)) {\n nodes.push(...value);\n } else if (value) {\n nodes.push(value);\n }\n start = position + match[0].length;\n change = true;\n }\n if (!find.global) {\n break;\n }\n match = find.exec(node2.value);\n }\n if (change) {\n if (start < node2.value.length) {\n nodes.push({ type: \"text\", value: node2.value.slice(start) });\n }\n parent.children.splice(index, 1, ...nodes);\n } else {\n nodes = [node2];\n }\n return index + nodes.length;\n }\n}\nfunction toPairs(tupleOrList) {\n const result = [];\n if (!Array.isArray(tupleOrList)) {\n throw new TypeError(\"Expected find and replace tuple or list of tuples\");\n }\n const list2 = !tupleOrList[0] || Array.isArray(tupleOrList[0]) ? tupleOrList : [tupleOrList];\n let index = -1;\n while (++index < list2.length) {\n const tuple = list2[index];\n result.push([toExpression(tuple[0]), toFunction(tuple[1])]);\n }\n return result;\n}\nfunction toExpression(find) {\n return typeof find === \"string\" ? new RegExp(escapeStringRegexp(find), \"g\") : find;\n}\nfunction toFunction(replace2) {\n return typeof replace2 === \"function\" ? replace2 : function() {\n return replace2;\n };\n}\nconst inConstruct = \"phrasing\";\nconst notInConstruct = [\"autolink\", \"link\", \"image\", \"label\"];\nfunction gfmAutolinkLiteralFromMarkdown() {\n return {\n transforms: [transformGfmAutolinkLiterals],\n enter: {\n literalAutolink: enterLiteralAutolink,\n literalAutolinkEmail: enterLiteralAutolinkValue,\n literalAutolinkHttp: enterLiteralAutolinkValue,\n literalAutolinkWww: enterLiteralAutolinkValue\n },\n exit: {\n literalAutolink: exitLiteralAutolink,\n literalAutolinkEmail: exitLiteralAutolinkEmail,\n literalAutolinkHttp: exitLiteralAutolinkHttp,\n literalAutolinkWww: exitLiteralAutolinkWww\n }\n };\n}\nfunction gfmAutolinkLiteralToMarkdown() {\n return {\n unsafe: [\n {\n character: \"@\",\n before: \"[+\\\\-.\\\\w]\",\n after: \"[\\\\-.\\\\w]\",\n inConstruct,\n notInConstruct\n },\n {\n character: \".\",\n before: \"[Ww]\",\n after: \"[\\\\-.\\\\w]\",\n inConstruct,\n notInConstruct\n },\n {\n character: \":\",\n before: \"[ps]\",\n after: \"\\\\/\",\n inConstruct,\n notInConstruct\n }\n ]\n };\n}\nfunction enterLiteralAutolink(token) {\n this.enter({ type: \"link\", title: null, url: \"\", children: [] }, token);\n}\nfunction enterLiteralAutolinkValue(token) {\n this.config.enter.autolinkProtocol.call(this, token);\n}\nfunction exitLiteralAutolinkHttp(token) {\n this.config.exit.autolinkProtocol.call(this, token);\n}\nfunction exitLiteralAutolinkWww(token) {\n this.config.exit.data.call(this, token);\n const node2 = this.stack[this.stack.length - 1];\n ok$1(node2.type === \"link\");\n node2.url = \"http://\" + this.sliceSerialize(token);\n}\nfunction exitLiteralAutolinkEmail(token) {\n this.config.exit.autolinkEmail.call(this, token);\n}\nfunction exitLiteralAutolink(token) {\n this.exit(token);\n}\nfunction transformGfmAutolinkLiterals(tree) {\n findAndReplace(\n tree,\n [\n [/(https?:\\/\\/|www(?=\\.))([-.\\w]+)([^ \\t\\r\\n]*)/gi, findUrl],\n [/([-.\\w+]+)@([-\\w]+(?:\\.[-\\w]+)+)/g, findEmail]\n ],\n { ignore: [\"link\", \"linkReference\"] }\n );\n}\nfunction findUrl(_, protocol, domain2, path2, match) {\n let prefix = \"\";\n if (!previous(match)) {\n return false;\n }\n if (/^w/i.test(protocol)) {\n domain2 = protocol + domain2;\n protocol = \"\";\n prefix = \"http://\";\n }\n if (!isCorrectDomain(domain2)) {\n return false;\n }\n const parts = splitUrl(domain2 + path2);\n if (!parts[0]) return false;\n const result = {\n type: \"link\",\n title: null,\n url: prefix + protocol + parts[0],\n children: [{ type: \"text\", value: protocol + parts[0] }]\n };\n if (parts[1]) {\n return [result, { type: \"text\", value: parts[1] }];\n }\n return result;\n}\nfunction findEmail(_, atext, label, match) {\n if (\n // Not an expected previous character.\n !previous(match, true) || // Label ends in not allowed character.\n /[-\\d_]$/.test(label)\n ) {\n return false;\n }\n return {\n type: \"link\",\n title: null,\n url: \"mailto:\" + atext + \"@\" + label,\n children: [{ type: \"text\", value: atext + \"@\" + label }]\n };\n}\nfunction isCorrectDomain(domain2) {\n const parts = domain2.split(\".\");\n if (parts.length < 2 || parts[parts.length - 1] && (/_/.test(parts[parts.length - 1]) || !/[a-zA-Z\\d]/.test(parts[parts.length - 1])) || parts[parts.length - 2] && (/_/.test(parts[parts.length - 2]) || !/[a-zA-Z\\d]/.test(parts[parts.length - 2]))) {\n return false;\n }\n return true;\n}\nfunction splitUrl(url) {\n const trailExec = /[!\"&'),.:;<>?\\]}]+$/.exec(url);\n if (!trailExec) {\n return [url, void 0];\n }\n url = url.slice(0, trailExec.index);\n let trail2 = trailExec[0];\n let closingParenIndex = trail2.indexOf(\")\");\n const openingParens = ccount(url, \"(\");\n let closingParens = ccount(url, \")\");\n while (closingParenIndex !== -1 && openingParens > closingParens) {\n url += trail2.slice(0, closingParenIndex + 1);\n trail2 = trail2.slice(closingParenIndex + 1);\n closingParenIndex = trail2.indexOf(\")\");\n closingParens++;\n }\n return [url, trail2];\n}\nfunction previous(match, email) {\n const code2 = match.input.charCodeAt(match.index - 1);\n return (match.index === 0 || unicodeWhitespace(code2) || unicodePunctuation(code2)) && (!email || code2 !== 47);\n}\nfunction normalizeIdentifier(value) {\n return value.replace(/[\\t\\n\\r ]+/g, \" \").replace(/^ | $/g, \"\").toLowerCase().toUpperCase();\n}\nfootnoteReference.peek = footnoteReferencePeek;\nfunction enterFootnoteCallString() {\n this.buffer();\n}\nfunction enterFootnoteCall(token) {\n this.enter({ type: \"footnoteReference\", identifier: \"\", label: \"\" }, token);\n}\nfunction enterFootnoteDefinitionLabelString() {\n this.buffer();\n}\nfunction enterFootnoteDefinition(token) {\n this.enter(\n { type: \"footnoteDefinition\", identifier: \"\", label: \"\", children: [] },\n token\n );\n}\nfunction exitFootnoteCallString(token) {\n const label = this.resume();\n const node2 = this.stack[this.stack.length - 1];\n ok$1(node2.type === \"footnoteReference\");\n node2.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase();\n node2.label = label;\n}\nfunction exitFootnoteCall(token) {\n this.exit(token);\n}\nfunction exitFootnoteDefinitionLabelString(token) {\n const label = this.resume();\n const node2 = this.stack[this.stack.length - 1];\n ok$1(node2.type === \"footnoteDefinition\");\n node2.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase();\n node2.label = label;\n}\nfunction exitFootnoteDefinition(token) {\n this.exit(token);\n}\nfunction footnoteReferencePeek() {\n return \"[\";\n}\nfunction footnoteReference(node2, _, state, info) {\n const tracker = state.createTracker(info);\n let value = tracker.move(\"[^\");\n const exit2 = state.enter(\"footnoteReference\");\n const subexit = state.enter(\"reference\");\n value += tracker.move(\n state.safe(state.associationId(node2), { after: \"]\", before: value })\n );\n subexit();\n exit2();\n value += tracker.move(\"]\");\n return value;\n}\nfunction gfmFootnoteFromMarkdown() {\n return {\n enter: {\n gfmFootnoteCallString: enterFootnoteCallString,\n gfmFootnoteCall: enterFootnoteCall,\n gfmFootnoteDefinitionLabelString: enterFootnoteDefinitionLabelString,\n gfmFootnoteDefinition: enterFootnoteDefinition\n },\n exit: {\n gfmFootnoteCallString: exitFootnoteCallString,\n gfmFootnoteCall: exitFootnoteCall,\n gfmFootnoteDefinitionLabelString: exitFootnoteDefinitionLabelString,\n gfmFootnoteDefinition: exitFootnoteDefinition\n }\n };\n}\nfunction gfmFootnoteToMarkdown(options) {\n let firstLineBlank = false;\n if (options && options.firstLineBlank) {\n firstLineBlank = true;\n }\n return {\n handlers: { footnoteDefinition, footnoteReference },\n // This is on by default already.\n unsafe: [{ character: \"[\", inConstruct: [\"label\", \"phrasing\", \"reference\"] }]\n };\n function footnoteDefinition(node2, _, state, info) {\n const tracker = state.createTracker(info);\n let value = tracker.move(\"[^\");\n const exit2 = state.enter(\"footnoteDefinition\");\n const subexit = state.enter(\"label\");\n value += tracker.move(\n state.safe(state.associationId(node2), { before: value, after: \"]\" })\n );\n subexit();\n value += tracker.move(\"]:\");\n if (node2.children && node2.children.length > 0) {\n tracker.shift(4);\n value += tracker.move(\n (firstLineBlank ? \"\\n\" : \" \") + state.indentLines(\n state.containerFlow(node2, tracker.current()),\n firstLineBlank ? mapAll : mapExceptFirst\n )\n );\n }\n exit2();\n return value;\n }\n}\nfunction mapExceptFirst(line, index, blank) {\n return index === 0 ? line : mapAll(line, index, blank);\n}\nfunction mapAll(line, index, blank) {\n return (blank ? \"\" : \" \") + line;\n}\nconst constructsWithoutStrikethrough = [\n \"autolink\",\n \"destinationLiteral\",\n \"destinationRaw\",\n \"reference\",\n \"titleQuote\",\n \"titleApostrophe\"\n];\nhandleDelete.peek = peekDelete;\nfunction gfmStrikethroughFromMarkdown() {\n return {\n canContainEols: [\"delete\"],\n enter: { strikethrough: enterStrikethrough },\n exit: { strikethrough: exitStrikethrough }\n };\n}\nfunction gfmStrikethroughToMarkdown() {\n return {\n unsafe: [\n {\n character: \"~\",\n inConstruct: \"phrasing\",\n notInConstruct: constructsWithoutStrikethrough\n }\n ],\n handlers: { delete: handleDelete }\n };\n}\nfunction enterStrikethrough(token) {\n this.enter({ type: \"delete\", children: [] }, token);\n}\nfunction exitStrikethrough(token) {\n this.exit(token);\n}\nfunction handleDelete(node2, _, state, info) {\n const tracker = state.createTracker(info);\n const exit2 = state.enter(\"strikethrough\");\n let value = tracker.move(\"~~\");\n value += state.containerPhrasing(node2, {\n ...tracker.current(),\n before: value,\n after: \"~\"\n });\n value += tracker.move(\"~~\");\n exit2();\n return value;\n}\nfunction peekDelete() {\n return \"~\";\n}\nfunction defaultStringLength(value) {\n return value.length;\n}\nfunction markdownTable(table, options) {\n const settings = options || {};\n const align = (settings.align || []).concat();\n const stringLength = settings.stringLength || defaultStringLength;\n const alignments = [];\n const cellMatrix = [];\n const sizeMatrix = [];\n const longestCellByColumn = [];\n let mostCellsPerRow = 0;\n let rowIndex = -1;\n while (++rowIndex < table.length) {\n const row2 = [];\n const sizes2 = [];\n let columnIndex2 = -1;\n if (table[rowIndex].length > mostCellsPerRow) {\n mostCellsPerRow = table[rowIndex].length;\n }\n while (++columnIndex2 < table[rowIndex].length) {\n const cell = serialize(table[rowIndex][columnIndex2]);\n if (settings.alignDelimiters !== false) {\n const size = stringLength(cell);\n sizes2[columnIndex2] = size;\n if (longestCellByColumn[columnIndex2] === void 0 || size > longestCellByColumn[columnIndex2]) {\n longestCellByColumn[columnIndex2] = size;\n }\n }\n row2.push(cell);\n }\n cellMatrix[rowIndex] = row2;\n sizeMatrix[rowIndex] = sizes2;\n }\n let columnIndex = -1;\n if (typeof align === \"object\" && \"length\" in align) {\n while (++columnIndex < mostCellsPerRow) {\n alignments[columnIndex] = toAlignment(align[columnIndex]);\n }\n } else {\n const code2 = toAlignment(align);\n while (++columnIndex < mostCellsPerRow) {\n alignments[columnIndex] = code2;\n }\n }\n columnIndex = -1;\n const row = [];\n const sizes = [];\n while (++columnIndex < mostCellsPerRow) {\n const code2 = alignments[columnIndex];\n let before = \"\";\n let after = \"\";\n if (code2 === 99) {\n before = \":\";\n after = \":\";\n } else if (code2 === 108) {\n before = \":\";\n } else if (code2 === 114) {\n after = \":\";\n }\n let size = settings.alignDelimiters === false ? 1 : Math.max(\n 1,\n longestCellByColumn[columnIndex] - before.length - after.length\n );\n const cell = before + \"-\".repeat(size) + after;\n if (settings.alignDelimiters !== false) {\n size = before.length + size + after.length;\n if (size > longestCellByColumn[columnIndex]) {\n longestCellByColumn[columnIndex] = size;\n }\n sizes[columnIndex] = size;\n }\n row[columnIndex] = cell;\n }\n cellMatrix.splice(1, 0, row);\n sizeMatrix.splice(1, 0, sizes);\n rowIndex = -1;\n const lines = [];\n while (++rowIndex < cellMatrix.length) {\n const row2 = cellMatrix[rowIndex];\n const sizes2 = sizeMatrix[rowIndex];\n columnIndex = -1;\n const line = [];\n while (++columnIndex < mostCellsPerRow) {\n const cell = row2[columnIndex] || \"\";\n let before = \"\";\n let after = \"\";\n if (settings.alignDelimiters !== false) {\n const size = longestCellByColumn[columnIndex] - (sizes2[columnIndex] || 0);\n const code2 = alignments[columnIndex];\n if (code2 === 114) {\n before = \" \".repeat(size);\n } else if (code2 === 99) {\n if (size % 2) {\n before = \" \".repeat(size / 2 + 0.5);\n after = \" \".repeat(size / 2 - 0.5);\n } else {\n before = \" \".repeat(size / 2);\n after = before;\n }\n } else {\n after = \" \".repeat(size);\n }\n }\n if (settings.delimiterStart !== false && !columnIndex) {\n line.push(\"|\");\n }\n if (settings.padding !== false && // Don’t add the opening space if we’re not aligning and the cell is\n // empty: there will be a closing space.\n !(settings.alignDelimiters === false && cell === \"\") && (settings.delimiterStart !== false || columnIndex)) {\n line.push(\" \");\n }\n if (settings.alignDelimiters !== false) {\n line.push(before);\n }\n line.push(cell);\n if (settings.alignDelimiters !== false) {\n line.push(after);\n }\n if (settings.padding !== false) {\n line.push(\" \");\n }\n if (settings.delimiterEnd !== false || columnIndex !== mostCellsPerRow - 1) {\n line.push(\"|\");\n }\n }\n lines.push(\n settings.delimiterEnd === false ? line.join(\"\").replace(/ +$/, \"\") : line.join(\"\")\n );\n }\n return lines.join(\"\\n\");\n}\nfunction serialize(value) {\n return value === null || value === void 0 ? \"\" : String(value);\n}\nfunction toAlignment(value) {\n const code2 = typeof value === \"string\" ? value.codePointAt(0) : 0;\n return code2 === 67 || code2 === 99 ? 99 : code2 === 76 || code2 === 108 ? 108 : code2 === 82 || code2 === 114 ? 114 : 0;\n}\nfunction blockquote(node2, _, state, info) {\n const exit2 = state.enter(\"blockquote\");\n const tracker = state.createTracker(info);\n tracker.move(\"> \");\n tracker.shift(2);\n const value = state.indentLines(\n state.containerFlow(node2, tracker.current()),\n map$1\n );\n exit2();\n return value;\n}\nfunction map$1(line, _, blank) {\n return \">\" + (blank ? \"\" : \" \") + line;\n}\nfunction patternInScope(stack, pattern) {\n return listInScope(stack, pattern.inConstruct, true) && !listInScope(stack, pattern.notInConstruct, false);\n}\nfunction listInScope(stack, list2, none) {\n if (typeof list2 === \"string\") {\n list2 = [list2];\n }\n if (!list2 || list2.length === 0) {\n return none;\n }\n let index = -1;\n while (++index < list2.length) {\n if (stack.includes(list2[index])) {\n return true;\n }\n }\n return false;\n}\nfunction hardBreak(_, _1, state, info) {\n let index = -1;\n while (++index < state.unsafe.length) {\n if (state.unsafe[index].character === \"\\n\" && patternInScope(state.stack, state.unsafe[index])) {\n return /[ \\t]/.test(info.before) ? \"\" : \" \";\n }\n }\n return \"\\\\\\n\";\n}\nfunction longestStreak(value, substring) {\n const source = String(value);\n let index = source.indexOf(substring);\n let expected = index;\n let count = 0;\n let max = 0;\n if (typeof substring !== \"string\") {\n throw new TypeError(\"Expected substring\");\n }\n while (index !== -1) {\n if (index === expected) {\n if (++count > max) {\n max = count;\n }\n } else {\n count = 1;\n }\n expected = index + substring.length;\n index = source.indexOf(substring, expected);\n }\n return max;\n}\nfunction formatCodeAsIndented(node2, state) {\n return Boolean(\n state.options.fences === false && node2.value && // If there’s no info…\n !node2.lang && // And there’s a non-whitespace character…\n /[^ \\r\\n]/.test(node2.value) && // And the value doesn’t start or end in a blank…\n !/^[\\t ]*(?:[\\r\\n]|$)|(?:^|[\\r\\n])[\\t ]*$/.test(node2.value)\n );\n}\nfunction checkFence(state) {\n const marker = state.options.fence || \"`\";\n if (marker !== \"`\" && marker !== \"~\") {\n throw new Error(\n \"Cannot serialize code with `\" + marker + \"` for `options.fence`, expected `` ` `` or `~`\"\n );\n }\n return marker;\n}\nfunction code$1(node2, _, state, info) {\n const marker = checkFence(state);\n const raw = node2.value || \"\";\n const suffix = marker === \"`\" ? \"GraveAccent\" : \"Tilde\";\n if (formatCodeAsIndented(node2, state)) {\n const exit3 = state.enter(\"codeIndented\");\n const value2 = state.indentLines(raw, map);\n exit3();\n return value2;\n }\n const tracker = state.createTracker(info);\n const sequence = marker.repeat(Math.max(longestStreak(raw, marker) + 1, 3));\n const exit2 = state.enter(\"codeFenced\");\n let value = tracker.move(sequence);\n if (node2.lang) {\n const subexit = state.enter(`codeFencedLang${suffix}`);\n value += tracker.move(\n state.safe(node2.lang, {\n before: value,\n after: \" \",\n encode: [\"`\"],\n ...tracker.current()\n })\n );\n subexit();\n }\n if (node2.lang && node2.meta) {\n const subexit = state.enter(`codeFencedMeta${suffix}`);\n value += tracker.move(\" \");\n value += tracker.move(\n state.safe(node2.meta, {\n before: value,\n after: \"\\n\",\n encode: [\"`\"],\n ...tracker.current()\n })\n );\n subexit();\n }\n value += tracker.move(\"\\n\");\n if (raw) {\n value += tracker.move(raw + \"\\n\");\n }\n value += tracker.move(sequence);\n exit2();\n return value;\n}\nfunction map(line, _, blank) {\n return (blank ? \"\" : \" \") + line;\n}\nfunction checkQuote(state) {\n const marker = state.options.quote || '\"';\n if (marker !== '\"' && marker !== \"'\") {\n throw new Error(\n \"Cannot serialize title with `\" + marker + \"` for `options.quote`, expected `\\\"`, or `'`\"\n );\n }\n return marker;\n}\nfunction definition(node2, _, state, info) {\n const quote = checkQuote(state);\n const suffix = quote === '\"' ? \"Quote\" : \"Apostrophe\";\n const exit2 = state.enter(\"definition\");\n let subexit = state.enter(\"label\");\n const tracker = state.createTracker(info);\n let value = tracker.move(\"[\");\n value += tracker.move(\n state.safe(state.associationId(node2), {\n before: value,\n after: \"]\",\n ...tracker.current()\n })\n );\n value += tracker.move(\"]: \");\n subexit();\n if (\n // If there’s no url, or…\n !node2.url || // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node2.url)\n ) {\n subexit = state.enter(\"destinationLiteral\");\n value += tracker.move(\"<\");\n value += tracker.move(\n state.safe(node2.url, { before: value, after: \">\", ...tracker.current() })\n );\n value += tracker.move(\">\");\n } else {\n subexit = state.enter(\"destinationRaw\");\n value += tracker.move(\n state.safe(node2.url, {\n before: value,\n after: node2.title ? \" \" : \"\\n\",\n ...tracker.current()\n })\n );\n }\n subexit();\n if (node2.title) {\n subexit = state.enter(`title${suffix}`);\n value += tracker.move(\" \" + quote);\n value += tracker.move(\n state.safe(node2.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n );\n value += tracker.move(quote);\n subexit();\n }\n exit2();\n return value;\n}\nfunction checkEmphasis(state) {\n const marker = state.options.emphasis || \"*\";\n if (marker !== \"*\" && marker !== \"_\") {\n throw new Error(\n \"Cannot serialize emphasis with `\" + marker + \"` for `options.emphasis`, expected `*`, or `_`\"\n );\n }\n return marker;\n}\nfunction encodeCharacterReference(code2) {\n return \"&#x\" + code2.toString(16).toUpperCase() + \";\";\n}\nfunction classifyCharacter(code2) {\n if (code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)) {\n return 1;\n }\n if (unicodePunctuation(code2)) {\n return 2;\n }\n}\nfunction encodeInfo(outside, inside, marker) {\n const outsideKind = classifyCharacter(outside);\n const insideKind = classifyCharacter(inside);\n if (outsideKind === void 0) {\n return insideKind === void 0 ? (\n // Letter inside:\n // we have to encode *both* letters for `_` as it is looser.\n // it already forms for `*` (and GFMs `~`).\n marker === \"_\" ? { inside: true, outside: true } : { inside: false, outside: false }\n ) : insideKind === 1 ? (\n // Whitespace inside: encode both (letter, whitespace).\n { inside: true, outside: true }\n ) : (\n // Punctuation inside: encode outer (letter)\n { inside: false, outside: true }\n );\n }\n if (outsideKind === 1) {\n return insideKind === void 0 ? (\n // Letter inside: already forms.\n { inside: false, outside: false }\n ) : insideKind === 1 ? (\n // Whitespace inside: encode both (whitespace).\n { inside: true, outside: true }\n ) : (\n // Punctuation inside: already forms.\n { inside: false, outside: false }\n );\n }\n return insideKind === void 0 ? (\n // Letter inside: already forms.\n { inside: false, outside: false }\n ) : insideKind === 1 ? (\n // Whitespace inside: encode inner (whitespace).\n { inside: true, outside: false }\n ) : (\n // Punctuation inside: already forms.\n { inside: false, outside: false }\n );\n}\nemphasis.peek = emphasisPeek;\nfunction emphasis(node2, _, state, info) {\n const marker = checkEmphasis(state);\n const exit2 = state.enter(\"emphasis\");\n const tracker = state.createTracker(info);\n const before = tracker.move(marker);\n let between = tracker.move(\n state.containerPhrasing(node2, {\n after: marker,\n before,\n ...tracker.current()\n })\n );\n const betweenHead = between.charCodeAt(0);\n const open = encodeInfo(\n info.before.charCodeAt(info.before.length - 1),\n betweenHead,\n marker\n );\n if (open.inside) {\n between = encodeCharacterReference(betweenHead) + between.slice(1);\n }\n const betweenTail = between.charCodeAt(between.length - 1);\n const close = encodeInfo(info.after.charCodeAt(0), betweenTail, marker);\n if (close.inside) {\n between = between.slice(0, -1) + encodeCharacterReference(betweenTail);\n }\n const after = tracker.move(marker);\n exit2();\n state.attentionEncodeSurroundingInfo = {\n after: close.outside,\n before: open.outside\n };\n return before + between + after;\n}\nfunction emphasisPeek(_, _1, state) {\n return state.options.emphasis || \"*\";\n}\nconst emptyOptions$1 = {};\nfunction toString(value, options) {\n const settings = emptyOptions$1;\n const includeImageAlt = typeof settings.includeImageAlt === \"boolean\" ? settings.includeImageAlt : true;\n const includeHtml = typeof settings.includeHtml === \"boolean\" ? settings.includeHtml : true;\n return one(value, includeImageAlt, includeHtml);\n}\nfunction one(value, includeImageAlt, includeHtml) {\n if (node(value)) {\n if (\"value\" in value) {\n return value.type === \"html\" && !includeHtml ? \"\" : value.value;\n }\n if (includeImageAlt && \"alt\" in value && value.alt) {\n return value.alt;\n }\n if (\"children\" in value) {\n return all(value.children, includeImageAlt, includeHtml);\n }\n }\n if (Array.isArray(value)) {\n return all(value, includeImageAlt, includeHtml);\n }\n return \"\";\n}\nfunction all(values, includeImageAlt, includeHtml) {\n const result = [];\n let index = -1;\n while (++index < values.length) {\n result[index] = one(values[index], includeImageAlt, includeHtml);\n }\n return result.join(\"\");\n}\nfunction node(value) {\n return Boolean(value && typeof value === \"object\");\n}\nfunction formatHeadingAsSetext(node2, state) {\n let literalWithBreak = false;\n visit(node2, function(node3) {\n if (\"value\" in node3 && /\\r?\\n|\\r/.test(node3.value) || node3.type === \"break\") {\n literalWithBreak = true;\n return EXIT$1;\n }\n });\n return Boolean(\n (!node2.depth || node2.depth < 3) && toString(node2) && (state.options.setext || literalWithBreak)\n );\n}\nfunction heading(node2, _, state, info) {\n const rank = Math.max(Math.min(6, node2.depth || 1), 1);\n const tracker = state.createTracker(info);\n if (formatHeadingAsSetext(node2, state)) {\n const exit3 = state.enter(\"headingSetext\");\n const subexit2 = state.enter(\"phrasing\");\n const value2 = state.containerPhrasing(node2, {\n ...tracker.current(),\n before: \"\\n\",\n after: \"\\n\"\n });\n subexit2();\n exit3();\n return value2 + \"\\n\" + (rank === 1 ? \"=\" : \"-\").repeat(\n // The whole size…\n value2.length - // Minus the position of the character after the last EOL (or\n // 0 if there is none)…\n (Math.max(value2.lastIndexOf(\"\\r\"), value2.lastIndexOf(\"\\n\")) + 1)\n );\n }\n const sequence = \"#\".repeat(rank);\n const exit2 = state.enter(\"headingAtx\");\n const subexit = state.enter(\"phrasing\");\n tracker.move(sequence + \" \");\n let value = state.containerPhrasing(node2, {\n before: \"# \",\n after: \"\\n\",\n ...tracker.current()\n });\n if (/^[\\t ]/.test(value)) {\n value = encodeCharacterReference(value.charCodeAt(0)) + value.slice(1);\n }\n value = value ? sequence + \" \" + value : sequence;\n if (state.options.closeAtx) {\n value += \" \" + sequence;\n }\n subexit();\n exit2();\n return value;\n}\nhtml.peek = htmlPeek;\nfunction html(node2) {\n return node2.value || \"\";\n}\nfunction htmlPeek() {\n return \"<\";\n}\nimage.peek = imagePeek;\nfunction image(node2, _, state, info) {\n const quote = checkQuote(state);\n const suffix = quote === '\"' ? \"Quote\" : \"Apostrophe\";\n const exit2 = state.enter(\"image\");\n let subexit = state.enter(\"label\");\n const tracker = state.createTracker(info);\n let value = tracker.move(\"![\");\n value += tracker.move(\n state.safe(node2.alt, { before: value, after: \"]\", ...tracker.current() })\n );\n value += tracker.move(\"](\");\n subexit();\n if (\n // If there’s no url but there is a title…\n !node2.url && node2.title || // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node2.url)\n ) {\n subexit = state.enter(\"destinationLiteral\");\n value += tracker.move(\"<\");\n value += tracker.move(\n state.safe(node2.url, { before: value, after: \">\", ...tracker.current() })\n );\n value += tracker.move(\">\");\n } else {\n subexit = state.enter(\"destinationRaw\");\n value += tracker.move(\n state.safe(node2.url, {\n before: value,\n after: node2.title ? \" \" : \")\",\n ...tracker.current()\n })\n );\n }\n subexit();\n if (node2.title) {\n subexit = state.enter(`title${suffix}`);\n value += tracker.move(\" \" + quote);\n value += tracker.move(\n state.safe(node2.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n );\n value += tracker.move(quote);\n subexit();\n }\n value += tracker.move(\")\");\n exit2();\n return value;\n}\nfunction imagePeek() {\n return \"!\";\n}\nimageReference.peek = imageReferencePeek;\nfunction imageReference(node2, _, state, info) {\n const type = node2.referenceType;\n const exit2 = state.enter(\"imageReference\");\n let subexit = state.enter(\"label\");\n const tracker = state.createTracker(info);\n let value = tracker.move(\"![\");\n const alt = state.safe(node2.alt, {\n before: value,\n after: \"]\",\n ...tracker.current()\n });\n value += tracker.move(alt + \"][\");\n subexit();\n const stack = state.stack;\n state.stack = [];\n subexit = state.enter(\"reference\");\n const reference = state.safe(state.associationId(node2), {\n before: value,\n after: \"]\",\n ...tracker.current()\n });\n subexit();\n state.stack = stack;\n exit2();\n if (type === \"full\" || !alt || alt !== reference) {\n value += tracker.move(reference + \"]\");\n } else if (type === \"shortcut\") {\n value = value.slice(0, -1);\n } else {\n value += tracker.move(\"]\");\n }\n return value;\n}\nfunction imageReferencePeek() {\n return \"!\";\n}\ninlineCode.peek = inlineCodePeek;\nfunction inlineCode(node2, _, state) {\n let value = node2.value || \"\";\n let sequence = \"`\";\n let index = -1;\n while (new RegExp(\"(^|[^`])\" + sequence + \"([^`]|$)\").test(value)) {\n sequence += \"`\";\n }\n if (/[^ \\r\\n]/.test(value) && (/^[ \\r\\n]/.test(value) && /[ \\r\\n]$/.test(value) || /^`|`$/.test(value))) {\n value = \" \" + value + \" \";\n }\n while (++index < state.unsafe.length) {\n const pattern = state.unsafe[index];\n const expression = state.compilePattern(pattern);\n let match;\n if (!pattern.atBreak) continue;\n while (match = expression.exec(value)) {\n let position = match.index;\n if (value.charCodeAt(position) === 10 && value.charCodeAt(position - 1) === 13) {\n position--;\n }\n value = value.slice(0, position) + \" \" + value.slice(match.index + 1);\n }\n }\n return sequence + value + sequence;\n}\nfunction inlineCodePeek() {\n return \"`\";\n}\nfunction formatLinkAsAutolink(node2, state) {\n const raw = toString(node2);\n return Boolean(\n !state.options.resourceLink && // If there’s a url…\n node2.url && // And there’s a no title…\n !node2.title && // And the content of `node` is a single text node…\n node2.children && node2.children.length === 1 && node2.children[0].type === \"text\" && // And if the url is the same as the content…\n (raw === node2.url || \"mailto:\" + raw === node2.url) && // And that starts w/ a protocol…\n /^[a-z][a-z+.-]+:/i.test(node2.url) && // And that doesn’t contain ASCII control codes (character escapes and\n // references don’t work), space, or angle brackets…\n !/[\\0- <>\\u007F]/.test(node2.url)\n );\n}\nlink.peek = linkPeek;\nfunction link(node2, _, state, info) {\n const quote = checkQuote(state);\n const suffix = quote === '\"' ? \"Quote\" : \"Apostrophe\";\n const tracker = state.createTracker(info);\n let exit2;\n let subexit;\n if (formatLinkAsAutolink(node2, state)) {\n const stack = state.stack;\n state.stack = [];\n exit2 = state.enter(\"autolink\");\n let value2 = tracker.move(\"<\");\n value2 += tracker.move(\n state.containerPhrasing(node2, {\n before: value2,\n after: \">\",\n ...tracker.current()\n })\n );\n value2 += tracker.move(\">\");\n exit2();\n state.stack = stack;\n return value2;\n }\n exit2 = state.enter(\"link\");\n subexit = state.enter(\"label\");\n let value = tracker.move(\"[\");\n value += tracker.move(\n state.containerPhrasing(node2, {\n before: value,\n after: \"](\",\n ...tracker.current()\n })\n );\n value += tracker.move(\"](\");\n subexit();\n if (\n // If there’s no url but there is a title…\n !node2.url && node2.title || // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node2.url)\n ) {\n subexit = state.enter(\"destinationLiteral\");\n value += tracker.move(\"<\");\n value += tracker.move(\n state.safe(node2.url, { before: value, after: \">\", ...tracker.current() })\n );\n value += tracker.move(\">\");\n } else {\n subexit = state.enter(\"destinationRaw\");\n value += tracker.move(\n state.safe(node2.url, {\n before: value,\n after: node2.title ? \" \" : \")\",\n ...tracker.current()\n })\n );\n }\n subexit();\n if (node2.title) {\n subexit = state.enter(`title${suffix}`);\n value += tracker.move(\" \" + quote);\n value += tracker.move(\n state.safe(node2.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n );\n value += tracker.move(quote);\n subexit();\n }\n value += tracker.move(\")\");\n exit2();\n return value;\n}\nfunction linkPeek(node2, _, state) {\n return formatLinkAsAutolink(node2, state) ? \"<\" : \"[\";\n}\nlinkReference.peek = linkReferencePeek;\nfunction linkReference(node2, _, state, info) {\n const type = node2.referenceType;\n const exit2 = state.enter(\"linkReference\");\n let subexit = state.enter(\"label\");\n const tracker = state.createTracker(info);\n let value = tracker.move(\"[\");\n const text2 = state.containerPhrasing(node2, {\n before: value,\n after: \"]\",\n ...tracker.current()\n });\n value += tracker.move(text2 + \"][\");\n subexit();\n const stack = state.stack;\n state.stack = [];\n subexit = state.enter(\"reference\");\n const reference = state.safe(state.associationId(node2), {\n before: value,\n after: \"]\",\n ...tracker.current()\n });\n subexit();\n state.stack = stack;\n exit2();\n if (type === \"full\" || !text2 || text2 !== reference) {\n value += tracker.move(reference + \"]\");\n } else if (type === \"shortcut\") {\n value = value.slice(0, -1);\n } else {\n value += tracker.move(\"]\");\n }\n return value;\n}\nfunction linkReferencePeek() {\n return \"[\";\n}\nfunction checkBullet(state) {\n const marker = state.options.bullet || \"*\";\n if (marker !== \"*\" && marker !== \"+\" && marker !== \"-\") {\n throw new Error(\n \"Cannot serialize items with `\" + marker + \"` for `options.bullet`, expected `*`, `+`, or `-`\"\n );\n }\n return marker;\n}\nfunction checkBulletOther(state) {\n const bullet = checkBullet(state);\n const bulletOther = state.options.bulletOther;\n if (!bulletOther) {\n return bullet === \"*\" ? \"-\" : \"*\";\n }\n if (bulletOther !== \"*\" && bulletOther !== \"+\" && bulletOther !== \"-\") {\n throw new Error(\n \"Cannot serialize items with `\" + bulletOther + \"` for `options.bulletOther`, expected `*`, `+`, or `-`\"\n );\n }\n if (bulletOther === bullet) {\n throw new Error(\n \"Expected `bullet` (`\" + bullet + \"`) and `bulletOther` (`\" + bulletOther + \"`) to be different\"\n );\n }\n return bulletOther;\n}\nfunction checkBulletOrdered(state) {\n const marker = state.options.bulletOrdered || \".\";\n if (marker !== \".\" && marker !== \")\") {\n throw new Error(\n \"Cannot serialize items with `\" + marker + \"` for `options.bulletOrdered`, expected `.` or `)`\"\n );\n }\n return marker;\n}\nfunction checkRule(state) {\n const marker = state.options.rule || \"*\";\n if (marker !== \"*\" && marker !== \"-\" && marker !== \"_\") {\n throw new Error(\n \"Cannot serialize rules with `\" + marker + \"` for `options.rule`, expected `*`, `-`, or `_`\"\n );\n }\n return marker;\n}\nfunction list(node2, parent, state, info) {\n const exit2 = state.enter(\"list\");\n const bulletCurrent = state.bulletCurrent;\n let bullet = node2.ordered ? checkBulletOrdered(state) : checkBullet(state);\n const bulletOther = node2.ordered ? bullet === \".\" ? \")\" : \".\" : checkBulletOther(state);\n let useDifferentMarker = parent && state.bulletLastUsed ? bullet === state.bulletLastUsed : false;\n if (!node2.ordered) {\n const firstListItem = node2.children ? node2.children[0] : void 0;\n if (\n // Bullet could be used as a thematic break marker:\n (bullet === \"*\" || bullet === \"-\") && // Empty first list item:\n firstListItem && (!firstListItem.children || !firstListItem.children[0]) && // Directly in two other list items:\n state.stack[state.stack.length - 1] === \"list\" && state.stack[state.stack.length - 2] === \"listItem\" && state.stack[state.stack.length - 3] === \"list\" && state.stack[state.stack.length - 4] === \"listItem\" && // That are each the first child.\n state.indexStack[state.indexStack.length - 1] === 0 && state.indexStack[state.indexStack.length - 2] === 0 && state.indexStack[state.indexStack.length - 3] === 0\n ) {\n useDifferentMarker = true;\n }\n if (checkRule(state) === bullet && firstListItem) {\n let index = -1;\n while (++index < node2.children.length) {\n const item = node2.children[index];\n if (item && item.type === \"listItem\" && item.children && item.children[0] && item.children[0].type === \"thematicBreak\") {\n useDifferentMarker = true;\n break;\n }\n }\n }\n }\n if (useDifferentMarker) {\n bullet = bulletOther;\n }\n state.bulletCurrent = bullet;\n const value = state.containerFlow(node2, info);\n state.bulletLastUsed = bullet;\n state.bulletCurrent = bulletCurrent;\n exit2();\n return value;\n}\nfunction checkListItemIndent(state) {\n const style = state.options.listItemIndent || \"one\";\n if (style !== \"tab\" && style !== \"one\" && style !== \"mixed\") {\n throw new Error(\n \"Cannot serialize items with `\" + style + \"` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`\"\n );\n }\n return style;\n}\nfunction listItem(node2, parent, state, info) {\n const listItemIndent = checkListItemIndent(state);\n let bullet = state.bulletCurrent || checkBullet(state);\n if (parent && parent.type === \"list\" && parent.ordered) {\n bullet = (typeof parent.start === \"number\" && parent.start > -1 ? parent.start : 1) + (state.options.incrementListMarker === false ? 0 : parent.children.indexOf(node2)) + bullet;\n }\n let size = bullet.length + 1;\n if (listItemIndent === \"tab\" || listItemIndent === \"mixed\" && (parent && parent.type === \"list\" && parent.spread || node2.spread)) {\n size = Math.ceil(size / 4) * 4;\n }\n const tracker = state.createTracker(info);\n tracker.move(bullet + \" \".repeat(size - bullet.length));\n tracker.shift(size);\n const exit2 = state.enter(\"listItem\");\n const value = state.indentLines(\n state.containerFlow(node2, tracker.current()),\n map2\n );\n exit2();\n return value;\n function map2(line, index, blank) {\n if (index) {\n return (blank ? \"\" : \" \".repeat(size)) + line;\n }\n return (blank ? bullet : bullet + \" \".repeat(size - bullet.length)) + line;\n }\n}\nfunction paragraph(node2, _, state, info) {\n const exit2 = state.enter(\"paragraph\");\n const subexit = state.enter(\"phrasing\");\n const value = state.containerPhrasing(node2, info);\n subexit();\n exit2();\n return value;\n}\nconst phrasing = (\n /** @type {(node?: unknown) => node is Exclude<PhrasingContent, Html>} */\n convert([\n \"break\",\n \"delete\",\n \"emphasis\",\n // To do: next major: removed since footnotes were added to GFM.\n \"footnote\",\n \"footnoteReference\",\n \"image\",\n \"imageReference\",\n \"inlineCode\",\n // Enabled by `mdast-util-math`:\n \"inlineMath\",\n \"link\",\n \"linkReference\",\n // Enabled by `mdast-util-mdx`:\n \"mdxJsxTextElement\",\n // Enabled by `mdast-util-mdx`:\n \"mdxTextExpression\",\n \"strong\",\n \"text\",\n // Enabled by `mdast-util-directive`:\n \"textDirective\"\n ])\n);\nfunction root(node2, _, state, info) {\n const hasPhrasing = node2.children.some(function(d) {\n return phrasing(d);\n });\n const container = hasPhrasing ? state.containerPhrasing : state.containerFlow;\n return container.call(state, node2, info);\n}\nfunction checkStrong(state) {\n const marker = state.options.strong || \"*\";\n if (marker !== \"*\" && marker !== \"_\") {\n throw new Error(\n \"Cannot serialize strong with `\" + marker + \"` for `options.strong`, expected `*`, or `_`\"\n );\n }\n return marker;\n}\nstrong.peek = strongPeek;\nfunction strong(node2, _, state, info) {\n const marker = checkStrong(state);\n const exit2 = state.enter(\"strong\");\n const tracker = state.createTracker(info);\n const before = tracker.move(marker + marker);\n let between = tracker.move(\n state.containerPhrasing(node2, {\n after: marker,\n before,\n ...tracker.current()\n })\n );\n const betweenHead = between.charCodeAt(0);\n const open = encodeInfo(\n info.before.charCodeAt(info.before.length - 1),\n betweenHead,\n marker\n );\n if (open.inside) {\n between = encodeCharacterReference(betweenHead) + between.slice(1);\n }\n const betweenTail = between.charCodeAt(between.length - 1);\n const close = encodeInfo(info.after.charCodeAt(0), betweenTail, marker);\n if (close.inside) {\n between = between.slice(0, -1) + encodeCharacterReference(betweenTail);\n }\n const after = tracker.move(marker + marker);\n exit2();\n state.attentionEncodeSurroundingInfo = {\n after: close.outside,\n before: open.outside\n };\n return before + between + after;\n}\nfunction strongPeek(_, _1, state) {\n return state.options.strong || \"*\";\n}\nfunction text$1(node2, _, state, info) {\n return state.safe(node2.value, info);\n}\nfunction checkRuleRepetition(state) {\n const repetition = state.options.ruleRepetition || 3;\n if (repetition < 3) {\n throw new Error(\n \"Cannot serialize rules with repetition `\" + repetition + \"` for `options.ruleRepetition`, expected `3` or more\"\n );\n }\n return repetition;\n}\nfunction thematicBreak(_, _1, state) {\n const value = (checkRule(state) + (state.options.ruleSpaces ? \" \" : \"\")).repeat(checkRuleRepetition(state));\n return state.options.ruleSpaces ? value.slice(0, -1) : value;\n}\nconst handle = {\n blockquote,\n break: hardBreak,\n code: code$1,\n definition,\n emphasis,\n hardBreak,\n heading,\n html,\n image,\n imageReference,\n inlineCode,\n link,\n linkReference,\n list,\n listItem,\n paragraph,\n root,\n strong,\n text: text$1,\n thematicBreak\n};\nfunction gfmTableFromMarkdown() {\n return {\n enter: {\n table: enterTable,\n tableData: enterCell,\n tableHeader: enterCell,\n tableRow: enterRow\n },\n exit: {\n codeText: exitCodeText,\n table: exitTable,\n tableData: exit,\n tableHeader: exit,\n tableRow: exit\n }\n };\n}\nfunction enterTable(token) {\n const align = token._align;\n this.enter(\n {\n type: \"table\",\n align: align.map(function(d) {\n return d === \"none\" ? null : d;\n }),\n children: []\n },\n token\n );\n this.data.inTable = true;\n}\nfunction exitTable(token) {\n this.exit(token);\n this.data.inTable = void 0;\n}\nfunction enterRow(token) {\n this.enter({ type: \"tableRow\", children: [] }, token);\n}\nfunction exit(token) {\n this.exit(token);\n}\nfunction enterCell(token) {\n this.enter({ type: \"tableCell\", children: [] }, token);\n}\nfunction exitCodeText(token) {\n let value = this.resume();\n if (this.data.inTable) {\n value = value.replace(/\\\\([\\\\|])/g, replace);\n }\n const node2 = this.stack[this.stack.length - 1];\n ok$1(node2.type === \"inlineCode\");\n node2.value = value;\n this.exit(token);\n}\nfunction replace($0, $1) {\n return $1 === \"|\" ? $1 : $0;\n}\nfunction gfmTableToMarkdown(options) {\n const settings = options || {};\n const padding = settings.tableCellPadding;\n const alignDelimiters = settings.tablePipeAlign;\n const stringLength = settings.stringLength;\n const around = padding ? \" \" : \"|\";\n return {\n unsafe: [\n { character: \"\\r\", inConstruct: \"tableCell\" },\n { character: \"\\n\", inConstruct: \"tableCell\" },\n // A pipe, when followed by a tab or space (padding), or a dash or colon\n // (unpadded delimiter row), could result in a table.\n { atBreak: true, character: \"|\", after: \"[\t :-]\" },\n // A pipe in a cell must be encoded.\n { character: \"|\", inConstruct: \"tableCell\" },\n // A colon must be followed by a dash, in which case it could start a\n // delimiter row.\n { atBreak: true, character: \":\", after: \"-\" },\n // A delimiter row can also start with a dash, when followed by more\n // dashes, a colon, or a pipe.\n // This is a stricter version than the built in check for lists, thematic\n // breaks, and setex heading underlines though:\n // <https://github.com/syntax-tree/mdast-util-to-markdown/blob/51a2038/lib/unsafe.js#L57>\n { atBreak: true, character: \"-\", after: \"[:|-]\" }\n ],\n handlers: {\n inlineCode: inlineCodeWithTable,\n table: handleTable,\n tableCell: handleTableCell,\n tableRow: handleTableRow\n }\n };\n function handleTable(node2, _, state, info) {\n return serializeData(handleTableAsData(node2, state, info), node2.align);\n }\n function handleTableRow(node2, _, state, info) {\n const row = handleTableRowAsData(node2, state, info);\n const value = serializeData([row]);\n return value.slice(0, value.indexOf(\"\\n\"));\n }\n function handleTableCell(node2, _, state, info) {\n const exit2 = state.enter(\"tableCell\");\n const subexit = state.enter(\"phrasing\");\n const value = state.containerPhrasing(node2, {\n ...info,\n before: around,\n after: around\n });\n subexit();\n exit2();\n return value;\n }\n function serializeData(matrix, align) {\n return markdownTable(matrix, {\n align,\n // @ts-expect-error: `markdown-table` types should support `null`.\n alignDelimiters,\n // @ts-expect-error: `markdown-table` types should support `null`.\n padding,\n // @ts-expect-error: `markdown-table` types should support `null`.\n stringLength\n });\n }\n function handleTableAsData(node2, state, info) {\n const children = node2.children;\n let index = -1;\n const result = [];\n const subexit = state.enter(\"table\");\n while (++index < children.length) {\n result[index] = handleTableRowAsData(children[index], state, info);\n }\n subexit();\n return result;\n }\n function handleTableRowAsData(node2, state, info) {\n const children = node2.children;\n let index = -1;\n const result = [];\n const subexit = state.enter(\"tableRow\");\n while (++index < children.length) {\n result[index] = handleTableCell(children[index], node2, state, info);\n }\n subexit();\n return result;\n }\n function inlineCodeWithTable(node2, parent, state) {\n let value = handle.inlineCode(node2, parent, state);\n if (state.stack.includes(\"tableCell\")) {\n value = value.replace(/\\|/g, \"\\\\$&\");\n }\n return value;\n }\n}\nfunction gfmTaskListItemFromMarkdown() {\n return {\n exit: {\n taskListCheckValueChecked: exitCheck,\n taskListCheckValueUnchecked: exitCheck,\n paragraph: exitParagraphWithTaskListItem\n }\n };\n}\nfunction gfmTaskListItemToMarkdown() {\n return {\n unsafe: [{ atBreak: true, character: \"-\", after: \"[:|-]\" }],\n handlers: { listItem: listItemWithTaskListItem }\n };\n}\nfunction exitCheck(token) {\n const node2 = this.stack[this.stack.length - 2];\n ok$1(node2.type === \"listItem\");\n node2.checked = token.type === \"taskListCheckValueChecked\";\n}\nfunction exitParagraphWithTaskListItem(token) {\n const parent = this.stack[this.stack.length - 2];\n if (parent && parent.type === \"listItem\" && typeof parent.checked === \"boolean\") {\n const node2 = this.stack[this.stack.length - 1];\n ok$1(node2.type === \"paragraph\");\n const head = node2.children[0];\n if (head && head.type === \"text\") {\n const siblings = parent.children;\n let index = -1;\n let firstParaghraph;\n while (++index < siblings.length) {\n const sibling = siblings[index];\n if (sibling.type === \"paragraph\") {\n firstParaghraph = sibling;\n break;\n }\n }\n if (firstParaghraph === node2) {\n head.value = head.value.slice(1);\n if (head.value.length === 0) {\n node2.children.shift();\n } else if (node2.position && head.position && typeof head.position.start.offset === \"number\") {\n head.position.start.column++;\n head.position.start.offset++;\n node2.position.start = Object.assign({}, head.position.start);\n }\n }\n }\n }\n this.exit(token);\n}\nfunction listItemWithTaskListItem(node2, parent, state, info) {\n const head = node2.children[0];\n const checkable = typeof node2.checked === \"boolean\" && head && head.type === \"paragraph\";\n const checkbox = \"[\" + (node2.checked ? \"x\" : \" \") + \"] \";\n const tracker = state.createTracker(info);\n if (checkable) {\n tracker.move(checkbox);\n }\n let value = handle.listItem(node2, parent, state, {\n ...info,\n ...tracker.current()\n });\n if (checkable) {\n value = value.replace(/^(?:[*+-]|\\d+\\.)([\\r\\n]| {1,3})/, check);\n }\n return value;\n function check($0) {\n return $0 + checkbox;\n }\n}\nfunction gfmFromMarkdown() {\n return [\n gfmAutolinkLiteralFromMarkdown(),\n gfmFootnoteFromMarkdown(),\n gfmStrikethroughFromMarkdown(),\n gfmTableFromMarkdown(),\n gfmTaskListItemFromMarkdown()\n ];\n}\nfunction gfmToMarkdown(options) {\n return {\n extensions: [\n gfmAutolinkLiteralToMarkdown(),\n gfmFootnoteToMarkdown(options),\n gfmStrikethroughToMarkdown(),\n gfmTableToMarkdown(options),\n gfmTaskListItemToMarkdown()\n ]\n };\n}\nfunction splice(list2, start, remove, items) {\n const end = list2.length;\n let chunkStart = 0;\n let parameters;\n if (start < 0) {\n start = -start > end ? 0 : end + start;\n } else {\n start = start > end ? end : start;\n }\n remove = remove > 0 ? remove : 0;\n if (items.length < 1e4) {\n parameters = Array.from(items);\n parameters.unshift(start, remove);\n list2.splice(...parameters);\n } else {\n if (remove) list2.splice(start, remove);\n while (chunkStart < items.length) {\n parameters = items.slice(chunkStart, chunkStart + 1e4);\n parameters.unshift(start, 0);\n list2.splice(...parameters);\n chunkStart += 1e4;\n start += 1e4;\n }\n }\n}\nconst hasOwnProperty = {}.hasOwnProperty;\nfunction combineExtensions(extensions) {\n const all2 = {};\n let index = -1;\n while (++index < extensions.length) {\n syntaxExtension(all2, extensions[index]);\n }\n return all2;\n}\nfunction syntaxExtension(all2, extension) {\n let hook;\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all2, hook) ? all2[hook] : void 0;\n const left = maybe || (all2[hook] = {});\n const right = extension[hook];\n let code2;\n if (right) {\n for (code2 in right) {\n if (!hasOwnProperty.call(left, code2)) left[code2] = [];\n const value = right[code2];\n constructs(\n // @ts-expect-error Looks like a list.\n left[code2],\n Array.isArray(value) ? value : value ? [value] : []\n );\n }\n }\n }\n}\nfunction constructs(existing, list2) {\n let index = -1;\n const before = [];\n while (++index < list2.length) {\n (list2[index].add === \"after\" ? existing : before).push(list2[index]);\n }\n splice(existing, 0, 0, before);\n}\nconst wwwPrefix = {\n tokenize: tokenizeWwwPrefix,\n partial: true\n};\nconst domain = {\n tokenize: tokenizeDomain,\n partial: true\n};\nconst path = {\n tokenize: tokenizePath,\n partial: true\n};\nconst trail = {\n tokenize: tokenizeTrail,\n partial: true\n};\nconst emailDomainDotTrail = {\n tokenize: tokenizeEmailDomainDotTrail,\n partial: true\n};\nconst wwwAutolink = {\n name: \"wwwAutolink\",\n tokenize: tokenizeWwwAutolink,\n previous: previousWww\n};\nconst protocolAutolink = {\n name: \"protocolAutolink\",\n tokenize: tokenizeProtocolAutolink,\n previous: previousProtocol\n};\nconst emailAutolink = {\n name: \"emailAutolink\",\n tokenize: tokenizeEmailAutolink,\n previous: previousEmail\n};\nconst text = {};\nfunction gfmAutolinkLiteral() {\n return {\n text\n };\n}\nlet code = 48;\nwhile (code < 123) {\n text[code] = emailAutolink;\n code++;\n if (code === 58) code = 65;\n else if (code === 91) code = 97;\n}\ntext[43] = emailAutolink;\ntext[45] = emailAutolink;\ntext[46] = emailAutolink;\ntext[95] = emailAutolink;\ntext[72] = [emailAutolink, protocolAutolink];\ntext[104] = [emailAutolink, protocolAutolink];\ntext[87] = [emailAutolink, wwwAutolink];\ntext[119] = [emailAutolink, wwwAutolink];\nfunction tokenizeEmailAutolink(effects, ok2, nok) {\n const self = this;\n let dot;\n let data;\n return start;\n function start(code2) {\n if (!gfmAtext(code2) || !previousEmail.call(self, self.previous) || previousUnbalanced(self.events)) {\n return nok(code2);\n }\n effects.enter(\"literalAutolink\");\n effects.enter(\"literalAutolinkEmail\");\n return atext(code2);\n }\n function atext(code2) {\n if (gfmAtext(code2)) {\n effects.consume(code2);\n return atext;\n }\n if (code2 === 64) {\n effects.consume(code2);\n return emailDomain;\n }\n return nok(code2);\n }\n function emailDomain(code2) {\n if (code2 === 46) {\n return effects.check(emailDomainDotTrail, emailDomainAfter, emailDomainDot)(code2);\n }\n if (code2 === 45 || code2 === 95 || asciiAlphanumeric(code2)) {\n data = true;\n effects.consume(code2);\n return emailDomain;\n }\n return emailDomainAfter(code2);\n }\n function emailDomainDot(code2) {\n effects.consume(code2);\n dot = true;\n return emailDomain;\n }\n function emailDomainAfter(code2) {\n if (data && dot && asciiAlpha(self.previous)) {\n effects.exit(\"literalAutolinkEmail\");\n effects.exit(\"literalAutolink\");\n return ok2(code2);\n }\n return nok(code2);\n }\n}\nfunction tokenizeWwwAutolink(effects, ok2, nok) {\n const self = this;\n return wwwStart;\n function wwwStart(code2) {\n if (code2 !== 87 && code2 !== 119 || !previousWww.call(self, self.previous) || previousUnbalanced(self.events)) {\n return nok(code2);\n }\n effects.enter(\"literalAutolink\");\n effects.enter(\"literalAutolinkWww\");\n return effects.check(wwwPrefix, effects.attempt(domain, effects.attempt(path, wwwAfter), nok), nok)(code2);\n }\n function wwwAfter(code2) {\n effects.exit(\"literalAutolinkWww\");\n effects.exit(\"literalAutolink\");\n return ok2(code2);\n }\n}\nfunction tokenizeProtocolAutolink(effects, ok2, nok) {\n const self = this;\n let buffer = \"\";\n let seen = false;\n return protocolStart;\n function protocolStart(code2) {\n if ((code2 === 72 || code2 === 104) && previousProtocol.call(self, self.previous) && !previousUnbalanced(self.events)) {\n effects.enter(\"literalAutolink\");\n effects.enter(\"literalAutolinkHttp\");\n buffer += String.fromCodePoint(code2);\n effects.consume(code2);\n return protocolPrefixInside;\n }\n return nok(code2);\n }\n function protocolPrefixInside(code2) {\n if (asciiAlpha(code2) && buffer.length < 5) {\n buffer += String.fromCodePoint(code2);\n effects.consume(code2);\n return protocolPrefixInside;\n }\n if (code2 === 58) {\n const protocol = buffer.toLowerCase();\n if (protocol === \"http\" || protocol === \"https\") {\n effects.consume(code2);\n return protocolSlashesInside;\n }\n }\n return nok(code2);\n }\n function protocolSlashesInside(code2) {\n if (code2 === 47) {\n effects.consume(code2);\n if (seen) {\n return afterProtocol;\n }\n seen = true;\n return protocolSlashesInside;\n }\n return nok(code2);\n }\n function afterProtocol(code2) {\n return code2 === null || asciiControl(code2) || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2) || unicodePunctuation(code2) ? nok(code2) : effects.attempt(domain, effects.attempt(path, protocolAfter), nok)(code2);\n }\n function protocolAfter(code2) {\n effects.exit(\"literalAutolinkHttp\");\n effects.exit(\"literalAutolink\");\n return ok2(code2);\n }\n}\nfunction tokenizeWwwPrefix(effects, ok2, nok) {\n let size = 0;\n return wwwPrefixInside;\n function wwwPrefixInside(code2) {\n if ((code2 === 87 || code2 === 119) && size < 3) {\n size++;\n effects.consume(code2);\n return wwwPrefixInside;\n }\n if (code2 === 46 && size === 3) {\n effects.consume(code2);\n return wwwPrefixAfter;\n }\n return nok(code2);\n }\n function wwwPrefixAfter(code2) {\n return code2 === null ? nok(code2) : ok2(code2);\n }\n}\nfunction tokenizeDomain(effects, ok2, nok) {\n let underscoreInLastSegment;\n let underscoreInLastLastSegment;\n let seen;\n return domainInside;\n function domainInside(code2) {\n if (code2 === 46 || code2 === 95) {\n return effects.check(trail, domainAfter, domainAtPunctuation)(code2);\n }\n if (code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2) || code2 !== 45 && unicodePunctuation(code2)) {\n return domainAfter(code2);\n }\n seen = true;\n effects.consume(code2);\n return domainInside;\n }\n function domainAtPunctuation(code2) {\n if (code2 === 95) {\n underscoreInLastSegment = true;\n } else {\n underscoreInLastLastSegment = underscoreInLastSegment;\n underscoreInLastSegment = void 0;\n }\n effects.consume(code2);\n return domainInside;\n }\n function domainAfter(code2) {\n if (underscoreInLastLastSegment || underscoreInLastSegment || !seen) {\n return nok(code2);\n }\n return ok2(code2);\n }\n}\nfunction tokenizePath(effects, ok2) {\n let sizeOpen = 0;\n let sizeClose = 0;\n return pathInside;\n function pathInside(code2) {\n if (code2 === 40) {\n sizeOpen++;\n effects.consume(code2);\n return pathInside;\n }\n if (code2 === 41 && sizeClose < sizeOpen) {\n return pathAtPunctuation(code2);\n }\n if (code2 === 33 || code2 === 34 || code2 === 38 || code2 === 39 || code2 === 41 || code2 === 42 || code2 === 44 || code2 === 46 || code2 === 58 || code2 === 59 || code2 === 60 || code2 === 63 || code2 === 93 || code2 === 95 || code2 === 126) {\n return effects.check(trail, ok2, pathAtPunctuation)(code2);\n }\n if (code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)) {\n return ok2(code2);\n }\n effects.consume(code2);\n return pathInside;\n }\n function pathAtPunctuation(code2) {\n if (code2 === 41) {\n sizeClose++;\n }\n effects.consume(code2);\n return pathInside;\n }\n}\nfunction tokenizeTrail(effects, ok2, nok) {\n return trail2;\n function trail2(code2) {\n if (code2 === 33 || code2 === 34 || code2 === 39 || code2 === 41 || code2 === 42 || code2 === 44 || code2 === 46 || code2 === 58 || code2 === 59 || code2 === 63 || code2 === 95 || code2 === 126) {\n effects.consume(code2);\n return trail2;\n }\n if (code2 === 38) {\n effects.consume(code2);\n return trailCharacterReferenceStart;\n }\n if (code2 === 93) {\n effects.consume(code2);\n return trailBracketAfter;\n }\n if (\n // `<` is an end.\n code2 === 60 || // So is whitespace.\n code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)\n ) {\n return ok2(code2);\n }\n return nok(code2);\n }\n function trailBracketAfter(code2) {\n if (code2 === null || code2 === 40 || code2 === 91 || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)) {\n return ok2(code2);\n }\n return trail2(code2);\n }\n function trailCharacterReferenceStart(code2) {\n return asciiAlpha(code2) ? trailCharacterReferenceInside(code2) : nok(code2);\n }\n function trailCharacterReferenceInside(code2) {\n if (code2 === 59) {\n effects.consume(code2);\n return trail2;\n }\n if (asciiAlpha(code2)) {\n effects.consume(code2);\n return trailCharacterReferenceInside;\n }\n return nok(code2);\n }\n}\nfunction tokenizeEmailDomainDotTrail(effects, ok2, nok) {\n return start;\n function start(code2) {\n effects.consume(code2);\n return after;\n }\n function after(code2) {\n return asciiAlphanumeric(code2) ? nok(code2) : ok2(code2);\n }\n}\nfunction previousWww(code2) {\n return code2 === null || code2 === 40 || code2 === 42 || code2 === 95 || code2 === 91 || code2 === 93 || code2 === 126 || markdownLineEndingOrSpace(code2);\n}\nfunction previousProtocol(code2) {\n return !asciiAlpha(code2);\n}\nfunction previousEmail(code2) {\n return !(code2 === 47 || gfmAtext(code2));\n}\nfunction gfmAtext(code2) {\n return code2 === 43 || code2 === 45 || code2 === 46 || code2 === 95 || asciiAlphanumeric(code2);\n}\nfunction previousUnbalanced(events) {\n let index = events.length;\n let result = false;\n while (index--) {\n const token = events[index][1];\n if ((token.type === \"labelLink\" || token.type === \"labelImage\") && !token._balanced) {\n result = true;\n break;\n }\n if (token._gfmAutolinkLiteralWalkedInto) {\n result = false;\n break;\n }\n }\n if (events.length > 0 && !result) {\n events[events.length - 1][1]._gfmAutolinkLiteralWalkedInto = true;\n }\n return result;\n}\nfunction resolveAll(constructs2, events, context) {\n const called = [];\n let index = -1;\n while (++index < constructs2.length) {\n const resolve = constructs2[index].resolveAll;\n if (resolve && !called.includes(resolve)) {\n events = resolve(events, context);\n called.push(resolve);\n }\n }\n return events;\n}\nfunction factorySpace(effects, ok2, type, max) {\n const limit = max ? max - 1 : Number.POSITIVE_INFINITY;\n let size = 0;\n return start;\n function start(code2) {\n if (markdownSpace(code2)) {\n effects.enter(type);\n return prefix(code2);\n }\n return ok2(code2);\n }\n function prefix(code2) {\n if (markdownSpace(code2) && size++ < limit) {\n effects.consume(code2);\n return prefix;\n }\n effects.exit(type);\n return ok2(code2);\n }\n}\nconst blankLine = {\n partial: true,\n tokenize: tokenizeBlankLine\n};\nfunction tokenizeBlankLine(effects, ok2, nok) {\n return start;\n function start(code2) {\n return markdownSpace(code2) ? factorySpace(effects, after, \"linePrefix\")(code2) : after(code2);\n }\n function after(code2) {\n return code2 === null || markdownLineEnding(code2) ? ok2(code2) : nok(code2);\n }\n}\nconst indent = {\n tokenize: tokenizeIndent,\n partial: true\n};\nfunction gfmFootnote() {\n return {\n document: {\n [91]: {\n name: \"gfmFootnoteDefinition\",\n tokenize: tokenizeDefinitionStart,\n continuation: {\n tokenize: tokenizeDefinitionContinuation\n },\n exit: gfmFootnoteDefinitionEnd\n }\n },\n text: {\n [91]: {\n name: \"gfmFootnoteCall\",\n tokenize: tokenizeGfmFootnoteCall\n },\n [93]: {\n name: \"gfmPotentialFootnoteCall\",\n add: \"after\",\n tokenize: tokenizePotentialGfmFootnoteCall,\n resolveTo: resolveToPotentialGfmFootnoteCall\n }\n }\n };\n}\nfunction tokenizePotentialGfmFootnoteCall(effects, ok2, nok) {\n const self = this;\n let index = self.events.length;\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n let labelStart;\n while (index--) {\n const token = self.events[index][1];\n if (token.type === \"labelImage\") {\n labelStart = token;\n break;\n }\n if (token.type === \"gfmFootnoteCall\" || token.type === \"labelLink\" || token.type === \"label\" || token.type === \"image\" || token.type === \"link\") {\n break;\n }\n }\n return start;\n function start(code2) {\n if (!labelStart || !labelStart._balanced) {\n return nok(code2);\n }\n const id = normalizeIdentifier(self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n }));\n if (id.codePointAt(0) !== 94 || !defined.includes(id.slice(1))) {\n return nok(code2);\n }\n effects.enter(\"gfmFootnoteCallLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteCallLabelMarker\");\n return ok2(code2);\n }\n}\nfunction resolveToPotentialGfmFootnoteCall(events, context) {\n let index = events.length;\n while (index--) {\n if (events[index][1].type === \"labelImage\" && events[index][0] === \"enter\") {\n events[index][1];\n break;\n }\n }\n events[index + 1][1].type = \"data\";\n events[index + 3][1].type = \"gfmFootnoteCallLabelMarker\";\n const call = {\n type: \"gfmFootnoteCall\",\n start: Object.assign({}, events[index + 3][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n };\n const marker = {\n type: \"gfmFootnoteCallMarker\",\n start: Object.assign({}, events[index + 3][1].end),\n end: Object.assign({}, events[index + 3][1].end)\n };\n marker.end.column++;\n marker.end.offset++;\n marker.end._bufferIndex++;\n const string = {\n type: \"gfmFootnoteCallString\",\n start: Object.assign({}, marker.end),\n end: Object.assign({}, events[events.length - 1][1].start)\n };\n const chunk = {\n type: \"chunkString\",\n contentType: \"string\",\n start: Object.assign({}, string.start),\n end: Object.assign({}, string.end)\n };\n const replacement = [\n // Take the `labelImageMarker` (now `data`, the `!`)\n events[index + 1],\n events[index + 2],\n [\"enter\", call, context],\n // The `[`\n events[index + 3],\n events[index + 4],\n // The `^`.\n [\"enter\", marker, context],\n [\"exit\", marker, context],\n // Everything in between.\n [\"enter\", string, context],\n [\"enter\", chunk, context],\n [\"exit\", chunk, context],\n [\"exit\", string, context],\n // The ending (`]`, properly parsed and labelled).\n events[events.length - 2],\n events[events.length - 1],\n [\"exit\", call, context]\n ];\n events.splice(index, events.length - index + 1, ...replacement);\n return events;\n}\nfunction tokenizeGfmFootnoteCall(effects, ok2, nok) {\n const self = this;\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n let size = 0;\n let data;\n return start;\n function start(code2) {\n effects.enter(\"gfmFootnoteCall\");\n effects.enter(\"gfmFootnoteCallLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteCallLabelMarker\");\n return callStart;\n }\n function callStart(code2) {\n if (code2 !== 94) return nok(code2);\n effects.enter(\"gfmFootnoteCallMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteCallMarker\");\n effects.enter(\"gfmFootnoteCallString\");\n effects.enter(\"chunkString\").contentType = \"string\";\n return callData;\n }\n function callData(code2) {\n if (\n // Too long.\n size > 999 || // Closing brace with nothing.\n code2 === 93 && !data || // Space or tab is not supported by GFM for some reason.\n // `\\n` and `[` not being supported makes sense.\n code2 === null || code2 === 91 || markdownLineEndingOrSpace(code2)\n ) {\n return nok(code2);\n }\n if (code2 === 93) {\n effects.exit(\"chunkString\");\n const token = effects.exit(\"gfmFootnoteCallString\");\n if (!defined.includes(normalizeIdentifier(self.sliceSerialize(token)))) {\n return nok(code2);\n }\n effects.enter(\"gfmFootnoteCallLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteCallLabelMarker\");\n effects.exit(\"gfmFootnoteCall\");\n return ok2;\n }\n if (!markdownLineEndingOrSpace(code2)) {\n data = true;\n }\n size++;\n effects.consume(code2);\n return code2 === 92 ? callEscape : callData;\n }\n function callEscape(code2) {\n if (code2 === 91 || code2 === 92 || code2 === 93) {\n effects.consume(code2);\n size++;\n return callData;\n }\n return callData(code2);\n }\n}\nfunction tokenizeDefinitionStart(effects, ok2, nok) {\n const self = this;\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n let identifier;\n let size = 0;\n let data;\n return start;\n function start(code2) {\n effects.enter(\"gfmFootnoteDefinition\")._container = true;\n effects.enter(\"gfmFootnoteDefinitionLabel\");\n effects.enter(\"gfmFootnoteDefinitionLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteDefinitionLabelMarker\");\n return labelAtMarker;\n }\n function labelAtMarker(code2) {\n if (code2 === 94) {\n effects.enter(\"gfmFootnoteDefinitionMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteDefinitionMarker\");\n effects.enter(\"gfmFootnoteDefinitionLabelString\");\n effects.enter(\"chunkString\").contentType = \"string\";\n return labelInside;\n }\n return nok(code2);\n }\n function labelInside(code2) {\n if (\n // Too long.\n size > 999 || // Closing brace with nothing.\n code2 === 93 && !data || // Space or tab is not supported by GFM for some reason.\n // `\\n` and `[` not being supported makes sense.\n code2 === null || code2 === 91 || markdownLineEndingOrSpace(code2)\n ) {\n return nok(code2);\n }\n if (code2 === 93) {\n effects.exit(\"chunkString\");\n const token = effects.exit(\"gfmFootnoteDefinitionLabelString\");\n identifier = normalizeIdentifier(self.sliceSerialize(token));\n effects.enter(\"gfmFootnoteDefinitionLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteDefinitionLabelMarker\");\n effects.exit(\"gfmFootnoteDefinitionLabel\");\n return labelAfter;\n }\n if (!markdownLineEndingOrSpace(code2)) {\n data = true;\n }\n size++;\n effects.consume(code2);\n return code2 === 92 ? labelEscape : labelInside;\n }\n function labelEscape(code2) {\n if (code2 === 91 || code2 === 92 || code2 === 93) {\n effects.consume(code2);\n size++;\n return labelInside;\n }\n return labelInside(code2);\n }\n function labelAfter(code2) {\n if (code2 === 58) {\n effects.enter(\"definitionMarker\");\n effects.consume(code2);\n effects.exit(\"definitionMarker\");\n if (!defined.includes(identifier)) {\n defined.push(identifier);\n }\n return factorySpace(effects, whitespaceAfter, \"gfmFootnoteDefinitionWhitespace\");\n }\n return nok(code2);\n }\n function whitespaceAfter(code2) {\n return ok2(code2);\n }\n}\nfunction tokenizeDefinitionContinuation(effects, ok2, nok) {\n return effects.check(blankLine, ok2, effects.attempt(indent, ok2, nok));\n}\nfunction gfmFootnoteDefinitionEnd(effects) {\n effects.exit(\"gfmFootnoteDefinition\");\n}\nfunction tokenizeIndent(effects, ok2, nok) {\n const self = this;\n return factorySpace(effects, afterPrefix, \"gfmFootnoteDefinitionIndent\", 4 + 1);\n function afterPrefix(code2) {\n const tail = self.events[self.events.length - 1];\n return tail && tail[1].type === \"gfmFootnoteDefinitionIndent\" && tail[2].sliceSerialize(tail[1], true).length === 4 ? ok2(code2) : nok(code2);\n }\n}\nfunction gfmStrikethrough(options) {\n const options_ = options || {};\n let single = options_.singleTilde;\n const tokenizer = {\n name: \"strikethrough\",\n tokenize: tokenizeStrikethrough,\n resolveAll: resolveAllStrikethrough\n };\n if (single === null || single === void 0) {\n single = true;\n }\n return {\n text: {\n [126]: tokenizer\n },\n insideSpan: {\n null: [tokenizer]\n },\n attentionMarkers: {\n null: [126]\n }\n };\n function resolveAllStrikethrough(events, context) {\n let index = -1;\n while (++index < events.length) {\n if (events[index][0] === \"enter\" && events[index][1].type === \"strikethroughSequenceTemporary\" && events[index][1]._close) {\n let open = index;\n while (open--) {\n if (events[open][0] === \"exit\" && events[open][1].type === \"strikethroughSequenceTemporary\" && events[open][1]._open && // If the sizes are the same:\n events[index][1].end.offset - events[index][1].start.offset === events[open][1].end.offset - events[open][1].start.offset) {\n events[index][1].type = \"strikethroughSequence\";\n events[open][1].type = \"strikethroughSequence\";\n const strikethrough = {\n type: \"strikethrough\",\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[index][1].end)\n };\n const text2 = {\n type: \"strikethroughText\",\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n };\n const nextEvents = [[\"enter\", strikethrough, context], [\"enter\", events[open][1], context], [\"exit\", events[open][1], context], [\"enter\", text2, context]];\n const insideSpan = context.parser.constructs.insideSpan.null;\n if (insideSpan) {\n splice(nextEvents, nextEvents.length, 0, resolveAll(insideSpan, events.slice(open + 1, index), context));\n }\n splice(nextEvents, nextEvents.length, 0, [[\"exit\", text2, context], [\"enter\", events[index][1], context], [\"exit\", events[index][1], context], [\"exit\", strikethrough, context]]);\n splice(events, open - 1, index - open + 3, nextEvents);\n index = open + nextEvents.length - 2;\n break;\n }\n }\n }\n }\n index = -1;\n while (++index < events.length) {\n if (events[index][1].type === \"strikethroughSequenceTemporary\") {\n events[index][1].type = \"data\";\n }\n }\n return events;\n }\n function tokenizeStrikethrough(effects, ok2, nok) {\n const previous2 = this.previous;\n const events = this.events;\n let size = 0;\n return start;\n function start(code2) {\n if (previous2 === 126 && events[events.length - 1][1].type !== \"characterEscape\") {\n return nok(code2);\n }\n effects.enter(\"strikethroughSequenceTemporary\");\n return more(code2);\n }\n function more(code2) {\n const before = classifyCharacter(previous2);\n if (code2 === 126) {\n if (size > 1) return nok(code2);\n effects.consume(code2);\n size++;\n return more;\n }\n if (size < 2 && !single) return nok(code2);\n const token = effects.exit(\"strikethroughSequenceTemporary\");\n const after = classifyCharacter(code2);\n token._open = !after || after === 2 && Boolean(before);\n token._close = !before || before === 2 && Boolean(after);\n return ok2(code2);\n }\n }\n}\nclass EditMap {\n /**\n * Create a new edit map.\n */\n constructor() {\n this.map = [];\n }\n /**\n * Create an edit: a remove and/or add at a certain place.\n *\n * @param {number} index\n * @param {number} remove\n * @param {Array<Event>} add\n * @returns {undefined}\n */\n add(index, remove, add) {\n addImplementation(this, index, remove, add);\n }\n // To do: add this when moving to `micromark`.\n // /**\n // * Create an edit: but insert `add` before existing additions.\n // *\n // * @param {number} index\n // * @param {number} remove\n // * @param {Array<Event>} add\n // * @returns {undefined}\n // */\n // addBefore(index, remove, add) {\n // addImplementation(this, index, remove, add, true)\n // }\n /**\n * Done, change the events.\n *\n * @param {Array<Event>} events\n * @returns {undefined}\n */\n consume(events) {\n this.map.sort(function(a, b) {\n return a[0] - b[0];\n });\n if (this.map.length === 0) {\n return;\n }\n let index = this.map.length;\n const vecs = [];\n while (index > 0) {\n index -= 1;\n vecs.push(events.slice(this.map[index][0] + this.map[index][1]), this.map[index][2]);\n events.length = this.map[index][0];\n }\n vecs.push(events.slice());\n events.length = 0;\n let slice = vecs.pop();\n while (slice) {\n for (const element of slice) {\n events.push(element);\n }\n slice = vecs.pop();\n }\n this.map.length = 0;\n }\n}\nfunction addImplementation(editMap, at, remove, add) {\n let index = 0;\n if (remove === 0 && add.length === 0) {\n return;\n }\n while (index < editMap.map.length) {\n if (editMap.map[index][0] === at) {\n editMap.map[index][1] += remove;\n editMap.map[index][2].push(...add);\n return;\n }\n index += 1;\n }\n editMap.map.push([at, remove, add]);\n}\nfunction gfmTableAlign(events, index) {\n let inDelimiterRow = false;\n const align = [];\n while (index < events.length) {\n const event = events[index];\n if (inDelimiterRow) {\n if (event[0] === \"enter\") {\n if (event[1].type === \"tableContent\") {\n align.push(events[index + 1][1].type === \"tableDelimiterMarker\" ? \"left\" : \"none\");\n }\n } else if (event[1].type === \"tableContent\") {\n if (events[index - 1][1].type === \"tableDelimiterMarker\") {\n const alignIndex = align.length - 1;\n align[alignIndex] = align[alignIndex] === \"left\" ? \"center\" : \"right\";\n }\n } else if (event[1].type === \"tableDelimiterRow\") {\n break;\n }\n } else if (event[0] === \"enter\" && event[1].type === \"tableDelimiterRow\") {\n inDelimiterRow = true;\n }\n index += 1;\n }\n return align;\n}\nfunction gfmTable() {\n return {\n flow: {\n null: {\n name: \"table\",\n tokenize: tokenizeTable,\n resolveAll: resolveTable\n }\n }\n };\n}\nfunction tokenizeTable(effects, ok2, nok) {\n const self = this;\n let size = 0;\n let sizeB = 0;\n let seen;\n return start;\n function start(code2) {\n let index = self.events.length - 1;\n while (index > -1) {\n const type = self.events[index][1].type;\n if (type === \"lineEnding\" || // Note: markdown-rs uses `whitespace` instead of `linePrefix`\n type === \"linePrefix\") index--;\n else break;\n }\n const tail = index > -1 ? self.events[index][1].type : null;\n const next = tail === \"tableHead\" || tail === \"tableRow\" ? bodyRowStart : headRowBefore;\n if (next === bodyRowStart && self.parser.lazy[self.now().line]) {\n return nok(code2);\n }\n return next(code2);\n }\n function headRowBefore(code2) {\n effects.enter(\"tableHead\");\n effects.enter(\"tableRow\");\n return headRowStart(code2);\n }\n function headRowStart(code2) {\n if (code2 === 124) {\n return headRowBreak(code2);\n }\n seen = true;\n sizeB += 1;\n return headRowBreak(code2);\n }\n function headRowBreak(code2) {\n if (code2 === null) {\n return nok(code2);\n }\n if (markdownLineEnding(code2)) {\n if (sizeB > 1) {\n sizeB = 0;\n self.interrupt = true;\n effects.exit(\"tableRow\");\n effects.enter(\"lineEnding\");\n effects.consume(code2);\n effects.exit(\"lineEnding\");\n return headDelimiterStart;\n }\n return nok(code2);\n }\n if (markdownSpace(code2)) {\n return factorySpace(effects, headRowBreak, \"whitespace\")(code2);\n }\n sizeB += 1;\n if (seen) {\n seen = false;\n size += 1;\n }\n if (code2 === 124) {\n effects.enter(\"tableCellDivider\");\n effects.consume(code2);\n effects.exit(\"tableCellDivider\");\n seen = true;\n return headRowBreak;\n }\n effects.enter(\"data\");\n return headRowData(code2);\n }\n function headRowData(code2) {\n if (code2 === null || code2 === 124 || markdownLineEndingOrSpace(code2)) {\n effects.exit(\"data\");\n return headRowBreak(code2);\n }\n effects.consume(code2);\n return code2 === 92 ? headRowEscape : headRowData;\n }\n function headRowEscape(code2) {\n if (code2 === 92 || code2 === 124) {\n effects.consume(code2);\n return headRowData;\n }\n return headRowData(code2);\n }\n function headDelimiterStart(code2) {\n self.interrupt = false;\n if (self.parser.lazy[self.now().line]) {\n return nok(code2);\n }\n effects.enter(\"tableDelimiterRow\");\n seen = false;\n if (markdownSpace(code2)) {\n return factorySpace(effects, headDelimiterBefore, \"linePrefix\", self.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 4)(code2);\n }\n return headDelimiterBefore(code2);\n }\n function headDelimiterBefore(code2) {\n if (code2 === 45 || code2 === 58) {\n return headDelimiterValueBefore(code2);\n }\n if (code2 === 124) {\n seen = true;\n effects.enter(\"tableCellDivider\");\n effects.consume(code2);\n effects.exit(\"tableCellDivider\");\n return headDelimiterCellBefore;\n }\n return headDelimiterNok(code2);\n }\n function headDelimiterCellBefore(code2) {\n if (markdownSpace(code2)) {\n return factorySpace(effects, headDelimiterValueBefore, \"whitespace\")(code2);\n }\n return headDelimiterValueBefore(code2);\n }\n function headDelimiterValueBefore(code2) {\n if (code2 === 58) {\n sizeB += 1;\n seen = true;\n effects.enter(\"tableDelimiterMarker\");\n effects.consume(code2);\n effects.exit(\"tableDelimiterMarker\");\n return headDelimiterLeftAlignmentAfter;\n }\n if (code2 === 45) {\n sizeB += 1;\n return headDelimiterLeftAlignmentAfter(code2);\n }\n if (code2 === null || markdownLineEnding(code2)) {\n return headDelimiterCellAfter(code2);\n }\n return headDelimiterNok(code2);\n }\n function headDelimiterLeftAlignmentAfter(code2) {\n if (code2 === 45) {\n effects.enter(\"tableDelimiterFiller\");\n return headDelimiterFiller(code2);\n }\n return headDelimiterNok(code2);\n }\n function headDelimiterFiller(code2) {\n if (code2 === 45) {\n effects.consume(code2);\n return headDelimiterFiller;\n }\n if (code2 === 58) {\n seen = true;\n effects.exit(\"tableDelimiterFiller\");\n effects.enter(\"tableDelimiterMarker\");\n effects.consume(code2);\n effects.exit(\"tableDelimiterMarker\");\n return headDelimiterRightAlignmentAfter;\n }\n effects.exit(\"tableDelimiterFiller\");\n return headDelimiterRightAlignmentAfter(code2);\n }\n function headDelimiterRightAlignmentAfter(code2) {\n if (markdownSpace(code2)) {\n return factorySpace(effects, headDelimiterCellAfter, \"whitespace\")(code2);\n }\n return headDelimiterCellAfter(code2);\n }\n function headDelimiterCellAfter(code2) {\n if (code2 === 124) {\n return headDelimiterBefore(code2);\n }\n if (code2 === null || markdownLineEnding(code2)) {\n if (!seen || size !== sizeB) {\n return headDelimiterNok(code2);\n }\n effects.exit(\"tableDelimiterRow\");\n effects.exit(\"tableHead\");\n return ok2(code2);\n }\n return headDelimiterNok(code2);\n }\n function headDelimiterNok(code2) {\n return nok(code2);\n }\n function bodyRowStart(code2) {\n effects.enter(\"tableRow\");\n return bodyRowBreak(code2);\n }\n function bodyRowBreak(code2) {\n if (code2 === 124) {\n effects.enter(\"tableCellDivider\");\n effects.consume(code2);\n effects.exit(\"tableCellDivider\");\n return bodyRowBreak;\n }\n if (code2 === null || markdownLineEnding(code2)) {\n effects.exit(\"tableRow\");\n return ok2(code2);\n }\n if (markdownSpace(code2)) {\n return factorySpace(effects, bodyRowBreak, \"whitespace\")(code2);\n }\n effects.enter(\"data\");\n return bodyRowData(code2);\n }\n function bodyRowData(code2) {\n if (code2 === null || code2 === 124 || markdownLineEndingOrSpace(code2)) {\n effects.exit(\"data\");\n return bodyRowBreak(code2);\n }\n effects.consume(code2);\n return code2 === 92 ? bodyRowEscape : bodyRowData;\n }\n function bodyRowEscape(code2) {\n if (code2 === 92 || code2 === 124) {\n effects.consume(code2);\n return bodyRowData;\n }\n return bodyRowData(code2);\n }\n}\nfunction resolveTable(events, context) {\n let index = -1;\n let inFirstCellAwaitingPipe = true;\n let rowKind = 0;\n let lastCell = [0, 0, 0, 0];\n let cell = [0, 0, 0, 0];\n let afterHeadAwaitingFirstBodyRow = false;\n let lastTableEnd = 0;\n let currentTable;\n let currentBody;\n let currentCell;\n const map2 = new EditMap();\n while (++index < events.length) {\n const event = events[index];\n const token = event[1];\n if (event[0] === \"enter\") {\n if (token.type === \"tableHead\") {\n afterHeadAwaitingFirstBodyRow = false;\n if (lastTableEnd !== 0) {\n flushTableEnd(map2, context, lastTableEnd, currentTable, currentBody);\n currentBody = void 0;\n lastTableEnd = 0;\n }\n currentTable = {\n type: \"table\",\n start: Object.assign({}, token.start),\n // Note: correct end is set later.\n end: Object.assign({}, token.end)\n };\n map2.add(index, 0, [[\"enter\", currentTable, context]]);\n } else if (token.type === \"tableRow\" || token.type === \"tableDelimiterRow\") {\n inFirstCellAwaitingPipe = true;\n currentCell = void 0;\n lastCell = [0, 0, 0, 0];\n cell = [0, index + 1, 0, 0];\n if (afterHeadAwaitingFirstBodyRow) {\n afterHeadAwaitingFirstBodyRow = false;\n currentBody = {\n type: \"tableBody\",\n start: Object.assign({}, token.start),\n // Note: correct end is set later.\n end: Object.assign({}, token.end)\n };\n map2.add(index, 0, [[\"enter\", currentBody, context]]);\n }\n rowKind = token.type === \"tableDelimiterRow\" ? 2 : currentBody ? 3 : 1;\n } else if (rowKind && (token.type === \"data\" || token.type === \"tableDelimiterMarker\" || token.type === \"tableDelimiterFiller\")) {\n inFirstCellAwaitingPipe = false;\n if (cell[2] === 0) {\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(map2, context, lastCell, rowKind, void 0, currentCell);\n lastCell = [0, 0, 0, 0];\n }\n cell[2] = index;\n }\n } else if (token.type === \"tableCellDivider\") {\n if (inFirstCellAwaitingPipe) {\n inFirstCellAwaitingPipe = false;\n } else {\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(map2, context, lastCell, rowKind, void 0, currentCell);\n }\n lastCell = cell;\n cell = [lastCell[1], index, 0, 0];\n }\n }\n } else if (token.type === \"tableHead\") {\n afterHeadAwaitingFirstBodyRow = true;\n lastTableEnd = index;\n } else if (token.type === \"tableRow\" || token.type === \"tableDelimiterRow\") {\n lastTableEnd = index;\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(map2, context, lastCell, rowKind, index, currentCell);\n } else if (cell[1] !== 0) {\n currentCell = flushCell(map2, context, cell, rowKind, index, currentCell);\n }\n rowKind = 0;\n } else if (rowKind && (token.type === \"data\" || token.type === \"tableDelimiterMarker\" || token.type === \"tableDelimiterFiller\")) {\n cell[3] = index;\n }\n }\n if (lastTableEnd !== 0) {\n flushTableEnd(map2, context, lastTableEnd, currentTable, currentBody);\n }\n map2.consume(context.events);\n index = -1;\n while (++index < context.events.length) {\n const event = context.events[index];\n if (event[0] === \"enter\" && event[1].type === \"table\") {\n event[1]._align = gfmTableAlign(context.events, index);\n }\n }\n return events;\n}\nfunction flushCell(map2, context, range, rowKind, rowEnd, previousCell) {\n const groupName = rowKind === 1 ? \"tableHeader\" : rowKind === 2 ? \"tableDelimiter\" : \"tableData\";\n const valueName = \"tableContent\";\n if (range[0] !== 0) {\n previousCell.end = Object.assign({}, getPoint(context.events, range[0]));\n map2.add(range[0], 0, [[\"exit\", previousCell, context]]);\n }\n const now = getPoint(context.events, range[1]);\n previousCell = {\n type: groupName,\n start: Object.assign({}, now),\n // Note: correct end is set later.\n end: Object.assign({}, now)\n };\n map2.add(range[1], 0, [[\"enter\", previousCell, context]]);\n if (range[2] !== 0) {\n const relatedStart = getPoint(context.events, range[2]);\n const relatedEnd = getPoint(context.events, range[3]);\n const valueToken = {\n type: valueName,\n start: Object.assign({}, relatedStart),\n end: Object.assign({}, relatedEnd)\n };\n map2.add(range[2], 0, [[\"enter\", valueToken, context]]);\n if (rowKind !== 2) {\n const start = context.events[range[2]];\n const end = context.events[range[3]];\n start[1].end = Object.assign({}, end[1].end);\n start[1].type = \"chunkText\";\n start[1].contentType = \"text\";\n if (range[3] > range[2] + 1) {\n const a = range[2] + 1;\n const b = range[3] - range[2] - 1;\n map2.add(a, b, []);\n }\n }\n map2.add(range[3] + 1, 0, [[\"exit\", valueToken, context]]);\n }\n if (rowEnd !== void 0) {\n previousCell.end = Object.assign({}, getPoint(context.events, rowEnd));\n map2.add(rowEnd, 0, [[\"exit\", previousCell, context]]);\n previousCell = void 0;\n }\n return previousCell;\n}\nfunction flushTableEnd(map2, context, index, table, tableBody) {\n const exits = [];\n const related = getPoint(context.events, index);\n if (tableBody) {\n tableBody.end = Object.assign({}, related);\n exits.push([\"exit\", tableBody, context]);\n }\n table.end = Object.assign({}, related);\n exits.push([\"exit\", table, context]);\n map2.add(index + 1, 0, exits);\n}\nfunction getPoint(events, index) {\n const event = events[index];\n const side = event[0] === \"enter\" ? \"start\" : \"end\";\n return event[1][side];\n}\nconst tasklistCheck = {\n name: \"tasklistCheck\",\n tokenize: tokenizeTasklistCheck\n};\nfunction gfmTaskListItem() {\n return {\n text: {\n [91]: tasklistCheck\n }\n };\n}\nfunction tokenizeTasklistCheck(effects, ok2, nok) {\n const self = this;\n return open;\n function open(code2) {\n if (\n // Exit if there’s stuff before.\n self.previous !== null || // Exit if not in the first content that is the first child of a list\n // item.\n !self._gfmTasklistFirstContentOfListItem\n ) {\n return nok(code2);\n }\n effects.enter(\"taskListCheck\");\n effects.enter(\"taskListCheckMarker\");\n effects.consume(code2);\n effects.exit(\"taskListCheckMarker\");\n return inside;\n }\n function inside(code2) {\n if (markdownLineEndingOrSpace(code2)) {\n effects.enter(\"taskListCheckValueUnchecked\");\n effects.consume(code2);\n effects.exit(\"taskListCheckValueUnchecked\");\n return close;\n }\n if (code2 === 88 || code2 === 120) {\n effects.enter(\"taskListCheckValueChecked\");\n effects.consume(code2);\n effects.exit(\"taskListCheckValueChecked\");\n return close;\n }\n return nok(code2);\n }\n function close(code2) {\n if (code2 === 93) {\n effects.enter(\"taskListCheckMarker\");\n effects.consume(code2);\n effects.exit(\"taskListCheckMarker\");\n effects.exit(\"taskListCheck\");\n return after;\n }\n return nok(code2);\n }\n function after(code2) {\n if (markdownLineEnding(code2)) {\n return ok2(code2);\n }\n if (markdownSpace(code2)) {\n return effects.check({\n tokenize: spaceThenNonSpace\n }, ok2, nok)(code2);\n }\n return nok(code2);\n }\n}\nfunction spaceThenNonSpace(effects, ok2, nok) {\n return factorySpace(effects, after, \"whitespace\");\n function after(code2) {\n return code2 === null ? nok(code2) : ok2(code2);\n }\n}\nfunction gfm(options) {\n return combineExtensions([\n gfmAutolinkLiteral(),\n gfmFootnote(),\n gfmStrikethrough(options),\n gfmTable(),\n gfmTaskListItem()\n ]);\n}\nconst emptyOptions = {};\nfunction remarkGfm(options) {\n const self = (\n /** @type {Processor<Root>} */\n this\n );\n const settings = options || emptyOptions;\n const data = self.data();\n const micromarkExtensions = data.micromarkExtensions || (data.micromarkExtensions = []);\n const fromMarkdownExtensions = data.fromMarkdownExtensions || (data.fromMarkdownExtensions = []);\n const toMarkdownExtensions = data.toMarkdownExtensions || (data.toMarkdownExtensions = []);\n micromarkExtensions.push(gfm(settings));\n fromMarkdownExtensions.push(gfmFromMarkdown());\n toMarkdownExtensions.push(gfmToMarkdown(settings));\n}\nconst _sfc_main$1 = /* @__PURE__ */ defineComponent({\n __name: \"NcRichTextCopyButton\",\n props: {\n contentId: {}\n },\n setup(__props) {\n const { copy, icon, altText } = useCopy(() => document.getElementById(__props.contentId).textContent);\n return (_ctx, _cache) => {\n return openBlock(), createBlock(NcButton, {\n variant: \"tertiary\",\n size: \"small\",\n \"aria-label\": unref(altText),\n title: unref(altText),\n onClick: unref(copy)\n }, {\n icon: withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n path: unref(icon),\n inline: \"\"\n }, null, 8, [\"path\"])\n ]),\n _: 1\n }, 8, [\"aria-label\", \"title\", \"onClick\"]);\n };\n }\n});\n/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction isTextNode$1(node2) {\n return node2.type === \"text\";\n}\nconst transformPlaceholders = function(ast) {\n visit(ast, isTextNode$1, visitor);\n function visitor(node2, index, parent) {\n const placeholders = node2.value.split(/(\\{[a-z\\-_.0-9]+\\})/ig).map((entry) => {\n const matches = entry.match(/^\\{([a-z\\-_.0-9]+)\\}$/i);\n if (!matches) {\n return u(\"text\", entry);\n }\n const [, component] = matches;\n return u(\"element\", {\n tagName: `#${component}`,\n children: []\n });\n });\n parent.children.splice(index, 1, ...placeholders);\n }\n};\nconst remarkPlaceholder = () => transformPlaceholders;\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction isTextNode(node2) {\n return [\"text\", \"code\", \"inlineCode\"].includes(node2.type);\n}\nconst remarkUnescape = function() {\n return function(tree) {\n visit(tree, isTextNode, (node2, index, parent) => {\n parent.children.splice(index, 1, {\n ...node2,\n value: node2.value.replace(/</gmi, \"<\").replace(/>/gmi, \">\")\n });\n return [SKIP$1, index + 1];\n });\n };\n};\nconst LINK_PROTOCOLS = [\"http\", \"https\", \"mailto\", \"tel\"];\nconst rehypeHighlight = ref(null);\nasync function importRehypeHighlightLibrary() {\n const module = await import(\"rehype-highlight\");\n rehypeHighlight.value = module.default;\n}\nconst _sfc_main = {\n name: \"NcRichText\",\n components: {\n NcReferenceList\n },\n /* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n props: {\n /**\n * The main text\n */\n text: {\n type: String,\n default: \"\"\n },\n arguments: {\n type: Object,\n default: () => {\n return {};\n }\n },\n referenceLimit: {\n type: Number,\n default: 0\n },\n referenceInteractive: {\n type: Boolean,\n default: true\n },\n referenceInteractiveOptIn: {\n type: Boolean,\n default: false\n },\n /** Provide data upfront to avoid extra http request */\n references: {\n type: Array,\n default: null\n },\n /** Provide basic Markdown syntax */\n useMarkdown: {\n type: Boolean,\n default: false\n },\n /** Provide GitHub Flavored Markdown syntax */\n useExtendedMarkdown: {\n type: Boolean,\n default: false\n },\n /** Provide event from rendered markdown inputs */\n interactive: {\n type: Boolean,\n default: false\n },\n /**\n * Automatically convert link-like text to markdown links\n */\n autolink: {\n type: Boolean,\n default: true\n }\n },\n emits: [\n \"interactTodo\"\n ],\n data() {\n return {\n parentId: createElementId()\n };\n },\n methods: {\n renderPlaintext() {\n const placeholders = this.text.split(/(\\{[a-z\\-_.0-9]+\\})/ig).map((entry) => {\n const matches = entry.match(/^\\{([a-z\\-_.0-9]+)\\}$/i);\n if (!matches) {\n return this.prepareTextNode(entry);\n }\n const argumentId = matches[1];\n const argument = this.arguments[argumentId];\n if (typeof argument === \"object\") {\n const { component, props } = argument;\n return h(typeof component === \"string\" ? resolveComponent(component) : component, {\n ...props,\n class: \"rich-text--component\"\n });\n }\n if (argument) {\n return h(\"span\", { class: \"rich-text--fallback\" }, argument);\n }\n return entry;\n });\n return h(\"div\", { class: \"rich-text--wrapper\" }, [\n h(\"div\", {}, placeholders.flat()),\n this.referenceLimit > 0 ? h(\"div\", { class: \"rich-text--reference-widget\" }, [\n h(NcReferenceList, {\n text: this.text,\n referenceData: this.references,\n interactive: this.referenceInteractive,\n interactiveOptIn: this.referenceInteractiveOptIn\n })\n ]) : null\n ]);\n },\n renderMarkdown() {\n const renderedMarkdown = unified().use(remarkParse).use(remarkAutolink, {\n autolink: this.autolink,\n useMarkdown: this.useMarkdown,\n useExtendedMarkdown: this.useExtendedMarkdown\n }).use(remarkUnescape).use(this.useExtendedMarkdown ? remarkGfm : void 0).use(breaks).use(remarkUnlinkProtocols, { except: LINK_PROTOCOLS }).use(remark2rehype, {\n handlers: {\n component(toHast, node2) {\n return toHast(node2, node2.component, { value: node2.value });\n }\n }\n }).use(this.useExtendedMarkdown ? rehypeHighlight.value : void 0).use(remarkPlaceholder).use(rehypeExternalLinks, {\n target: \"_blank\",\n rel: [\"noopener noreferrer\"]\n }).use(rehype2react, {\n Fragment,\n jsx: this.createElement,\n jsxs: this.createElement,\n elementAttributeNameCase: \"html\",\n prefix: false\n }).processSync(this.text.replace(/<[^>]+>/g, (match) => match.replace(/</g, \"<\")).replace(/>/gmi, \">\")).result;\n return h(\"div\", { class: \"rich-text--wrapper rich-text--wrapper-markdown\" }, [\n renderedMarkdown,\n this.referenceLimit > 0 ? h(\"div\", { class: \"rich-text--reference-widget\" }, [\n h(NcReferenceList, {\n text: this.text,\n referenceData: this.references,\n interactive: this.referenceInteractive,\n interactiveOptIn: this.referenceInteractiveOptIn\n })\n ]) : null\n ]);\n },\n /**\n * Render plain text nodes\n *\n * @param {string} text - Content of the node\n */\n prepareTextNode(text2) {\n if (this.autolink) {\n text2 = parseUrl(text2);\n }\n if (Array.isArray(text2)) {\n return text2.map((entry) => {\n if (typeof entry === \"string\") {\n return entry;\n }\n const { component, props } = entry;\n const componentClass = component.name === \"NcLink\" ? void 0 : \"rich-text--component\";\n return h(component, {\n ...props,\n class: componentClass\n });\n });\n }\n return text2;\n },\n createElement(type, props, key) {\n if (key) {\n props.key = key;\n }\n const children = props.children ?? [];\n delete props.children;\n if (!String(type).startsWith(\"#\")) {\n if ([\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"].includes(String(type))) {\n type = `h${Math.min(+String(type)[1] + 3, 6)}`;\n }\n let nestedNode = null;\n if (this.useExtendedMarkdown) {\n if (String(type) === \"code\" && !rehypeHighlight.value && props?.class?.includes(\"language\")) {\n importRehypeHighlightLibrary();\n }\n if (String(type) === \"pre\" && children && String(children.type) === \"code\") {\n const id = this.parentId + \"-code-block-\" + createElementId();\n return h(\"p\", { class: \"rich-text__code-block\" }, [\n h(type, { ...props, id }, children),\n h(_sfc_main$1, { class: \"rich-text__code-block-button\", contentId: id })\n ]);\n }\n if (String(type) === \"li\" && Array.isArray(children) && children.length !== 0 && children[0].type === \"input\" && children[0].props.type === \"checkbox\") {\n const [inputNode, , ...labelParts] = children;\n const nestedNodeIndex = labelParts.findIndex((child) => [\"ul\", \"ol\", \"li\", \"blockquote\", \"pre\"].includes(child.type));\n if (nestedNodeIndex !== -1) {\n nestedNode = labelParts[nestedNodeIndex];\n labelParts.splice(nestedNodeIndex);\n }\n const id = this.parentId + \"-markdown-input-\" + createElementId();\n const propsToForward = { ...inputNode.props };\n delete propsToForward.checked;\n const inputComponent = h(NcCheckboxRadioSwitch, {\n ...propsToForward,\n modelValue: inputNode.props.checked,\n id,\n disabled: !this.interactive,\n \"onUpdate:modelValue\": () => {\n this.$emit(\"interactTodo\", id);\n }\n }, { default: () => labelParts });\n return h(type, props, [inputComponent, nestedNode]);\n }\n }\n if (String(type) === \"a\") {\n const route = getRoute(this.$router, props.href);\n if (route) {\n delete props.href;\n delete props.target;\n return h(RouterLink, {\n ...props,\n to: route\n }, { default: () => children });\n }\n }\n return h(type, props, children);\n }\n const placeholder = this.arguments[type.slice(1)];\n if (!placeholder) {\n return h(\"span\", { ...props, class: \"rich-text--fallback\" }, [`{${type.slice(1)}}`]);\n }\n if (!placeholder.component) {\n return h(\"span\", { ...props }, [placeholder]);\n }\n return h(\n typeof placeholder.component === \"string\" ? resolveComponent(placeholder.component) : placeholder.component,\n {\n ...props,\n ...placeholder.props,\n class: \"rich-text--component\"\n },\n { default: () => children }\n );\n }\n },\n render() {\n return this.useMarkdown || this.useExtendedMarkdown ? this.renderMarkdown() : this.renderPlaintext();\n }\n};\nconst NcRichText = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-a47e4ba7\"]]);\nexport {\n NcRichText as N,\n NcReferenceList as a\n};\n//# sourceMappingURL=NcRichText-CBMtJzE_.mjs.map\n"],"file":"NcRichText-CBMtJzE_-BrKByk17.chunk.mjs"} \ No newline at end of file diff --git a/dist/NcRichText-CBMtJzE_-bvZFA37H.chunk.mjs.map.license b/dist/NcRichText-CBMtJzE_-BrKByk17.chunk.mjs.map.license similarity index 97% rename from dist/NcRichText-CBMtJzE_-bvZFA37H.chunk.mjs.map.license rename to dist/NcRichText-CBMtJzE_-BrKByk17.chunk.mjs.map.license index 23282dae40a13..ca4a5e7427793 100644 --- a/dist/NcRichText-CBMtJzE_-bvZFA37H.chunk.mjs.map.license +++ b/dist/NcRichText-CBMtJzE_-BrKByk17.chunk.mjs.map.license @@ -2,7 +2,6 @@ SPDX-License-Identifier: AGPL-3.0-or-later SPDX-License-Identifier: ISC SPDX-License-Identifier: MIT SPDX-FileCopyrightText: Andrea Giammarchi -SPDX-FileCopyrightText: Antoni Andre <antoniandre.web@gmail.com> SPDX-FileCopyrightText: Eugene Sharygin <eush77@gmail.com> SPDX-FileCopyrightText: Mark <mark@remarkablemark.org> SPDX-FileCopyrightText: Max <max@nextcloud.com> @@ -155,9 +154,6 @@ This file is generated from multiple sources. Included packages: - space-separated-tokens - version: 2.0.2 - license: MIT -- splitpanes - - version: 4.0.4 - - license: MIT - style-to-js - version: 1.1.18 - license: MIT diff --git a/dist/NcRichText-CBMtJzE_-Ctfl9_Xi.chunk.css b/dist/NcRichText-CBMtJzE_-Ctfl9_Xi.chunk.css deleted file mode 100644 index c333cc302b478..0000000000000 --- a/dist/NcRichText-CBMtJzE_-Ctfl9_Xi.chunk.css +++ /dev/null @@ -1 +0,0 @@ -@charset "UTF-8";.material-design-icon[data-v-a28923a1]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-details-toggle[data-v-a28923a1]{position:sticky;width:var(--default-clickable-area);height:var(--default-clickable-area);padding:calc((var(--default-clickable-area) - 16px) / 2);cursor:pointer;opacity:.6;transform:rotate(180deg);background-color:var(--color-main-background);z-index:2000;top:var(--app-navigation-padding);inset-inline-start:calc(var(--default-clickable-area) + var(--app-navigation-padding) * 2)}.app-details-toggle--mobile[data-v-a28923a1]{inset-inline-start:var(--app-navigation-padding)}.app-details-toggle[data-v-a28923a1]:active,.app-details-toggle[data-v-a28923a1]:hover,.app-details-toggle[data-v-a28923a1]:focus{opacity:1}.material-design-icon[data-v-a2641cc2]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-content[data-v-a2641cc2]{position:initial;z-index:1000;flex-basis:100vw;height:100%;margin:0!important;background-color:var(--color-main-background);min-width:0}.app-content[data-v-a2641cc2]:not(.app-content--has-list){overflow:auto}.app-content-wrapper[data-v-a2641cc2]{position:relative;width:100%;height:100%}.app-content-wrapper--no-split.app-content-wrapper--show-list[data-v-a2641cc2] .app-content-list{display:flex}.app-content-wrapper--no-split.app-content-wrapper--show-list[data-v-a2641cc2] .app-content-details,.app-content-wrapper--no-split.app-content-wrapper--show-details[data-v-a2641cc2] .app-content-list{display:none}.app-content-wrapper--no-split.app-content-wrapper--show-details[data-v-a2641cc2] .app-content-details{display:block}[data-v-a2641cc2] .splitpanes.default-theme .app-content-list{max-width:none;scrollbar-width:auto}[data-v-a2641cc2] .splitpanes.default-theme .splitpanes__pane{background-color:transparent;transition:none}[data-v-a2641cc2] .splitpanes.default-theme .splitpanes__pane-list{min-width:300px;position:sticky}@media only screen and (width<1024px){[data-v-a2641cc2] .splitpanes.default-theme .splitpanes__pane-list{display:none}}[data-v-a2641cc2] .splitpanes.default-theme .splitpanes__pane-details{overflow-y:auto}@media only screen and (width<1024px){[data-v-a2641cc2] .splitpanes.default-theme .splitpanes__pane-details{min-width:100%}}[data-v-a2641cc2] .splitpanes.default-theme .splitpanes__splitter{background-color:var(--color-main-background)}[data-v-a2641cc2] .splitpanes.default-theme .splitpanes__splitter:before,[data-v-a2641cc2] .splitpanes.default-theme .splitpanes__splitter:after{background-color:var(--color-border)}[data-v-a2641cc2] .splitpanes.default-theme.splitpanes--vertical .splitpanes__splitter{border-inline-start:1px solid var(--color-border)}[data-v-a2641cc2] .splitpanes.default-theme.splitpanes--horizontal .splitpanes__splitter{border-top:1px solid var(--color-border)}.app-content-wrapper--show-list[data-v-a2641cc2] .app-content-list{max-width:none}.splitpanes{display:flex;width:100%;height:100%}.splitpanes--vertical{flex-direction:row}.splitpanes--horizontal{flex-direction:column}.splitpanes--dragging .splitpanes__pane,*:has(.splitpanes--dragging){-webkit-user-select:none;user-select:none;pointer-events:none}.splitpanes__pane{width:100%;height:100%;overflow:hidden}.splitpanes--vertical .splitpanes__pane{transition:width .2s ease-out;will-change:width}.splitpanes--horizontal .splitpanes__pane{transition:height .2s ease-out;will-change:height}.splitpanes--dragging .splitpanes__pane{transition:none}.splitpanes__splitter{touch-action:none}.splitpanes--vertical>.splitpanes__splitter{min-width:1px;cursor:col-resize}.splitpanes--horizontal>.splitpanes__splitter{min-height:1px;cursor:row-resize}.default-theme.splitpanes .splitpanes__pane{background-color:#f2f2f2}.default-theme.splitpanes .splitpanes__splitter{background-color:#fff;box-sizing:border-box;position:relative;flex-shrink:0}.default-theme.splitpanes .splitpanes__splitter:before,.default-theme.splitpanes .splitpanes__splitter:after{content:"";position:absolute;top:50%;left:50%;background-color:#00000026;transition:background-color .3s}.default-theme.splitpanes .splitpanes__splitter:hover:before,.default-theme.splitpanes .splitpanes__splitter:hover:after{background-color:#00000040}.default-theme.splitpanes .splitpanes__splitter:first-child{cursor:auto}.default-theme.splitpanes .splitpanes .splitpanes__splitter{z-index:1}.default-theme.splitpanes--vertical>.splitpanes__splitter,.default-theme .splitpanes--vertical>.splitpanes__splitter{width:7px;border-left:1px solid #eee;margin-left:-1px}.default-theme.splitpanes--vertical>.splitpanes__splitter:before,.default-theme.splitpanes--vertical>.splitpanes__splitter:after,.default-theme .splitpanes--vertical>.splitpanes__splitter:before,.default-theme .splitpanes--vertical>.splitpanes__splitter:after{transform:translateY(-50%);width:1px;height:30px}.default-theme.splitpanes--vertical>.splitpanes__splitter:before,.default-theme .splitpanes--vertical>.splitpanes__splitter:before{margin-left:-2px}.default-theme.splitpanes--vertical>.splitpanes__splitter:after,.default-theme .splitpanes--vertical>.splitpanes__splitter:after{margin-left:1px}.default-theme.splitpanes--horizontal>.splitpanes__splitter,.default-theme .splitpanes--horizontal>.splitpanes__splitter{height:7px;border-top:1px solid #eee;margin-top:-1px}.default-theme.splitpanes--horizontal>.splitpanes__splitter:before,.default-theme.splitpanes--horizontal>.splitpanes__splitter:after,.default-theme .splitpanes--horizontal>.splitpanes__splitter:before,.default-theme .splitpanes--horizontal>.splitpanes__splitter:after{transform:translate(-50%);width:30px;height:1px}.default-theme.splitpanes--horizontal>.splitpanes__splitter:before,.default-theme .splitpanes--horizontal>.splitpanes__splitter:before{margin-top:-2px}.default-theme.splitpanes--horizontal>.splitpanes__splitter:after,.default-theme .splitpanes--horizontal>.splitpanes__splitter:after{margin-top:1px}.material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}#skip-actions.vue-skip-actions:focus-within{top:0!important;inset-inline-start:0!important;width:100vw;height:100vh;padding:var(--body-container-margin)!important;-webkit-backdrop-filter:brightness(50%);backdrop-filter:brightness(50%)}.material-design-icon[data-v-d9b0d7e8]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.vue-skip-actions__container[data-v-d9b0d7e8]{background-color:var(--color-main-background);border-radius:var(--border-radius-element);padding:22px}.vue-skip-actions__headline[data-v-d9b0d7e8]{font-weight:700;font-size:20px;line-height:30px;margin-bottom:12px}.vue-skip-actions__buttons[data-v-d9b0d7e8]{display:flex;flex-wrap:wrap;gap:12px}.vue-skip-actions__buttons[data-v-d9b0d7e8]>*{flex:1 0 fit-content}.vue-skip-actions__image[data-v-d9b0d7e8]{margin-top:12px}.vue-skip-actions__image[data-v-d9b0d7e8]:dir(rtl){transform:rotateY(180deg)}.content[data-v-d9b0d7e8]{display:flex;width:calc(100% - var(--body-container-margin) * 2);border-radius:var(--body-container-radius);height:var(--body-height);overflow:hidden;padding:0}.content[data-v-d9b0d7e8]:not(.with-sidebar--full){position:fixed}.content[data-v-d9b0d7e8],.content[data-v-d9b0d7e8] *{box-sizing:border-box}.material-design-icon[data-v-e408867a],.material-design-icon[data-v-90c6aa3b]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.provider-list[data-v-90c6aa3b]{width:100%;min-height:400px;padding:0 16px 16px;display:flex;flex-direction:column}.provider-list--select[data-v-90c6aa3b]{width:100%}.provider-list--select .provider[data-v-90c6aa3b]{display:flex;align-items:center;height:28px;overflow:hidden}.provider-list--select .provider .link-icon[data-v-90c6aa3b]{margin-inline-end:8px}.provider-list--select .provider .provider-icon[data-v-90c6aa3b]{width:20px;height:20px;object-fit:contain;margin-inline-end:8px;filter:var(--background-invert-if-dark)}.provider-list--select .provider .option-text[data-v-90c6aa3b]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.material-design-icon[data-v-8ce33442]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.widget-custom[data-v-8ce33442]{width:100%;margin:auto;margin-bottom:calc(var(--default-grid-baseline, 4px) * 3);margin-top:calc(var(--default-grid-baseline, 4px) * 3);overflow:hidden;border:2px solid var(--color-border);border-radius:var(--border-radius-container);background-color:transparent;display:flex}.widget-custom.full-width[data-v-8ce33442]{width:var(--widget-full-width, 100%)!important;inset-inline-start:calc((var(--widget-full-width, 100%) - 100%) / 2 * -1);position:relative}.widget-access[data-v-8ce33442]{width:100%;margin:auto;margin-bottom:calc(var(--default-grid-baseline, 4px) * 3);margin-top:calc(var(--default-grid-baseline, 4px) * 3);overflow:hidden;border:2px solid var(--color-border);border-radius:var(--border-radius-container);background-color:transparent;display:flex;padding:calc(var(--default-grid-baseline, 4px) * 3)}.widget-default[data-v-8ce33442]{width:100%;margin:auto;margin-bottom:calc(var(--default-grid-baseline, 4px) * 3);margin-top:calc(var(--default-grid-baseline, 4px) * 3);overflow:hidden;border:2px solid var(--color-border);border-radius:var(--border-radius-container);background-color:transparent;display:flex}.widget-default--compact[data-v-8ce33442]{flex-direction:column}.widget-default--compact .widget-default--image[data-v-8ce33442]{width:100%;height:150px}.widget-default--compact .widget-default--details[data-v-8ce33442]{width:100%;padding-top:calc(var(--default-grid-baseline, 4px) * 2);padding-bottom:calc(var(--default-grid-baseline, 4px) * 2)}.widget-default--compact .widget-default--description[data-v-8ce33442]{display:none}.widget-default--image[data-v-8ce33442]{width:40%;background-position:center;background-size:cover;background-repeat:no-repeat}.widget-default--name[data-v-8ce33442]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}.widget-default--details[data-v-8ce33442]{padding:calc(var(--default-grid-baseline, 4px) * 3);width:60%}.widget-default--details p[data-v-8ce33442]{margin:0;padding:0}.widget-default--description[data-v-8ce33442]{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical}.widget-default--link[data-v-8ce33442]{color:var(--color-text-maxcontrast);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toggle-interactive[data-v-8ce33442]{position:relative}.toggle-interactive .toggle-interactive--button[data-v-8ce33442]{position:absolute;bottom:var(--default-grid-baseline);inset-inline-end:var(--default-grid-baseline);z-index:10000}.material-design-icon[data-v-a0658f2a]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.raw-link[data-v-a0658f2a]{width:100%;min-height:350px;display:flex;flex-direction:column;overflow-y:auto;padding:0 16px 16px}.raw-link .input-wrapper[data-v-a0658f2a]{width:100%}.raw-link .reference-widget[data-v-a0658f2a]{display:flex}.raw-link--empty-content .provider-icon[data-v-a0658f2a]{width:150px;height:150px;object-fit:contain;filter:var(--background-invert-if-dark)}.raw-link--input[data-v-a0658f2a]{width:99%}.material-design-icon[data-v-059edcfb]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.result[data-v-059edcfb]{display:flex;align-items:center;height:var(--default-clickable-area);overflow:hidden}.result--icon-class[data-v-059edcfb],.result--image[data-v-059edcfb]{width:40px;min-width:40px;height:40px;object-fit:contain}.result--icon-class.rounded[data-v-059edcfb],.result--image.rounded[data-v-059edcfb]{border-radius:50%}.result--content[data-v-059edcfb]{display:flex;flex-direction:column;padding-inline-start:10px;overflow:hidden}.result--content--name[data-v-059edcfb],.result--content--subline[data-v-059edcfb]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.material-design-icon[data-v-e8abf1d4]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.smart-picker-search[data-v-e8abf1d4]{width:100%;display:flex;flex-direction:column;padding:0 16px 16px}.smart-picker-search.with-empty-content[data-v-e8abf1d4]{min-height:400px}.smart-picker-search .provider-icon[data-v-e8abf1d4]{width:150px;height:150px;object-fit:contain;filter:var(--background-invert-if-dark)}.smart-picker-search--select[data-v-e8abf1d4],.smart-picker-search--select .search-result[data-v-e8abf1d4]{width:100%}.smart-picker-search--select .group-name-icon[data-v-e8abf1d4],.smart-picker-search--select .option-simple-icon[data-v-e8abf1d4]{width:20px;height:20px;margin:0 20px 0 10px}.smart-picker-search--select .custom-option[data-v-e8abf1d4]{height:var(--default-clickable-area);display:flex;align-items:center;overflow:hidden}.smart-picker-search--select .option-text[data-v-e8abf1d4]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.material-design-icon[data-v-b193005a]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.reference-picker[data-v-b193005a],.reference-picker .custom-element-wrapper[data-v-b193005a],.reference-picker .custom-element-wrapper .custom-element[data-v-b193005a]{display:flex;overflow-y:auto;width:100%}.material-design-icon[data-v-15018516]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.reference-picker-modal[data-v-15018516] .modal-container{display:flex!important}.reference-picker-modal--content[data-v-15018516]{width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow-y:auto}.reference-picker-modal--content .close-button[data-v-15018516],.reference-picker-modal--content .back-button[data-v-15018516]{position:absolute;top:4px}.reference-picker-modal--content .back-button[data-v-15018516]{inset-inline-start:4px}.reference-picker-modal--content .close-button[data-v-15018516]{inset-inline-end:4px}.reference-picker-modal--content>h2[data-v-15018516]{display:flex;margin:12px 0 20px}.reference-picker-modal--content>h2 .icon[data-v-15018516]{margin-inline-end:8px}.material-design-icon[data-v-cd116174]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.widgets--list[data-v-cd116174]{width:100%;min-height:var(--default-clickable-area)}.material-design-icon[data-v-a47e4ba7]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.rich-text--wrapper[data-v-a47e4ba7]{overflow-wrap:break-word;line-height:1.5}.rich-text--wrapper .rich-text--fallback[data-v-a47e4ba7],.rich-text--wrapper .rich-text-component[data-v-a47e4ba7]{display:inline}.rich-text--wrapper .rich-text--external-link[data-v-a47e4ba7]{text-decoration:underline}.rich-text--wrapper .rich-text--external-link[data-v-a47e4ba7]:after{content:" ↗"}.rich-text--wrapper-markdown[data-v-a47e4ba7]{tab-size:4}.rich-text--wrapper-markdown[data-v-a47e4ba7]>:first-child,.rich-text--wrapper-markdown div[data-v-a47e4ba7]>:first-child,.rich-text--wrapper-markdown blockquote[data-v-a47e4ba7]>:first-child{margin-top:0!important}.rich-text--wrapper-markdown[data-v-a47e4ba7]>:last-child,.rich-text--wrapper-markdown[data-v-a47e4ba7]>*:has(+.rich-text--reference-widget),.rich-text--wrapper-markdown div[data-v-a47e4ba7]>:last-child,.rich-text--wrapper-markdown blockquote[data-v-a47e4ba7]>:last-child{margin-block-end:0!important}.rich-text--wrapper-markdown blockquote[data-v-a47e4ba7]{padding-inline-start:13px;border-inline-start:2px solid var(--color-border-dark);color:var(--color-text-maxcontrast)}.rich-text--wrapper-markdown h1[data-v-a47e4ba7],.rich-text--wrapper-markdown h2[data-v-a47e4ba7],.rich-text--wrapper-markdown h3[data-v-a47e4ba7],.rich-text--wrapper-markdown h4[data-v-a47e4ba7],.rich-text--wrapper-markdown h5[data-v-a47e4ba7],.rich-text--wrapper-markdown h6[data-v-a47e4ba7],.rich-text--wrapper-markdown p[data-v-a47e4ba7],.rich-text--wrapper-markdown ul[data-v-a47e4ba7],.rich-text--wrapper-markdown ol[data-v-a47e4ba7],.rich-text--wrapper-markdown blockquote[data-v-a47e4ba7],.rich-text--wrapper-markdown pre[data-v-a47e4ba7]{margin-top:0;margin-block-end:1em}.rich-text--wrapper-markdown h1[data-v-a47e4ba7],.rich-text--wrapper-markdown h2[data-v-a47e4ba7],.rich-text--wrapper-markdown h3[data-v-a47e4ba7],.rich-text--wrapper-markdown h4[data-v-a47e4ba7],.rich-text--wrapper-markdown h5[data-v-a47e4ba7],.rich-text--wrapper-markdown h6[data-v-a47e4ba7]{font-weight:700}.rich-text--wrapper-markdown h4[data-v-a47e4ba7]{font-size:20px}.rich-text--wrapper-markdown h5[data-v-a47e4ba7]{font-size:18px}.rich-text--wrapper-markdown h6[data-v-a47e4ba7]{font-size:15px}.rich-text--wrapper-markdown ul[data-v-a47e4ba7],.rich-text--wrapper-markdown ol[data-v-a47e4ba7]{padding-inline-start:4ch}.rich-text--wrapper-markdown ul[data-v-a47e4ba7]{list-style-type:disc}.rich-text--wrapper-markdown ul.contains-task-list[data-v-a47e4ba7]{list-style-type:none;padding:0}.rich-text--wrapper-markdown li.task-list-item>ul[data-v-a47e4ba7],.rich-text--wrapper-markdown li.task-list-item>ol[data-v-a47e4ba7],.rich-text--wrapper-markdown li.task-list-item>li[data-v-a47e4ba7],.rich-text--wrapper-markdown li.task-list-item>blockquote[data-v-a47e4ba7],.rich-text--wrapper-markdown li.task-list-item>pre[data-v-a47e4ba7]{margin-inline-start:15px;margin-block-end:0}.rich-text--wrapper-markdown pre[data-v-a47e4ba7]{direction:ltr}.rich-text--wrapper-markdown table[data-v-a47e4ba7]{border-collapse:collapse;border:2px solid var(--color-border-maxcontrast)}.rich-text--wrapper-markdown table th[data-v-a47e4ba7],.rich-text--wrapper-markdown table td[data-v-a47e4ba7]{padding:var(--default-grid-baseline);border:1px solid var(--color-border-maxcontrast)}.rich-text--wrapper-markdown table th[data-v-a47e4ba7]:first-child,.rich-text--wrapper-markdown table td[data-v-a47e4ba7]:first-child{border-inline-start:0}.rich-text--wrapper-markdown table th[data-v-a47e4ba7]:last-child,.rich-text--wrapper-markdown table td[data-v-a47e4ba7]:last-child{border-inline-end:0}.rich-text--wrapper-markdown table tr:first-child th[data-v-a47e4ba7]{border-top:0}.rich-text--wrapper-markdown table tr:last-child td[data-v-a47e4ba7]{border-block-end:0}.rich-text--wrapper-markdown .rich-text__code-block[data-v-a47e4ba7]:has(.hljs){color:var(--hljs-color);background:var(--hljs-background-color)}.rich-text--wrapper-markdown .hljs-doctag[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-keyword[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-meta .hljs-keyword[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-template-tag[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-template-variable[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-type[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-variable.language_[data-v-a47e4ba7]{color:var(--hljs-syntax-keyword-color)}.rich-text--wrapper-markdown .hljs-title[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-title.class_[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-title.class_.inherited__[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-title.function_[data-v-a47e4ba7]{color:var(--hljs-syntax-entity-color)}.rich-text--wrapper-markdown .hljs-attr[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-attribute[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-literal[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-meta[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-number[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-operator[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-variable[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-selector-attr[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-selector-class[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-selector-id[data-v-a47e4ba7]{color:var(--hljs-syntax-constant-color)}.rich-text--wrapper-markdown .hljs-regexp[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-string[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-meta .hljs-string[data-v-a47e4ba7]{color:var(--hljs-syntax-string-color)}.rich-text--wrapper-markdown .hljs-built_in[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-symbol[data-v-a47e4ba7]{color:var(--hljs-syntax-variable-color)}.rich-text--wrapper-markdown .hljs-comment[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-code[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-formula[data-v-a47e4ba7]{color:var(--hljs-syntax-comment-color)}.rich-text--wrapper-markdown .hljs-name[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-quote[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-selector-tag[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-selector-pseudo[data-v-a47e4ba7]{color:var(--hljs-syntax-entity-tag-color)}.rich-text--wrapper-markdown .hljs-subst[data-v-a47e4ba7]{color:var(--hljs-syntax-storage-modifier-import-color)}.rich-text--wrapper-markdown .hljs-section[data-v-a47e4ba7]{color:var(--hljs-syntax-markup-heading-color);font-weight:700}.rich-text--wrapper-markdown .hljs-bullet[data-v-a47e4ba7]{color:var(--hljs-syntax-markup-list-color)}.rich-text--wrapper-markdown .hljs-emphasis[data-v-a47e4ba7]{color:var(--hljs-syntax-markup-italic-color);font-style:italic}.rich-text--wrapper-markdown .hljs-strong[data-v-a47e4ba7]{color:var(--hljs-syntax-markup-bold-color);font-weight:700}.rich-text--wrapper-markdown .hljs-addition[data-v-a47e4ba7]{color:var(--hljs-syntax-markup-inserted-color);background-color:var(--hljs-syntax-markup-inserted-background-color)}.rich-text--wrapper-markdown .hljs-deletion[data-v-a47e4ba7]{color:var(--hljs-syntax-markup-deleted-color);background-color:var(--hljs-syntax-markup-deleted-background-color)}a[data-v-a47e4ba7]:not(.rich-text--component){text-decoration:underline}@media(prefers-color-scheme:light){.rich-text--wrapper-markdown[data-v-a47e4ba7]{--hljs-color: var(--color-main-text, #24292e);--hljs-background-color: var(--color-background-dark, #ffffff);--hljs-syntax-keyword-color: #d73a49;--hljs-syntax-entity-color: #6f42c1;--hljs-syntax-constant-color: #005cc5;--hljs-syntax-string-color: #032f62;--hljs-syntax-variable-color: #e36209;--hljs-syntax-comment-color: #6a737d;--hljs-syntax-entity-tag-color: #22863a;--hljs-syntax-storage-modifier-import-color: #24292e;--hljs-syntax-markup-heading-color: #005cc5;--hljs-syntax-markup-list-color: #735c0f;--hljs-syntax-markup-italic-color: #24292e;--hljs-syntax-markup-bold-color: #24292e;--hljs-syntax-markup-inserted-color: #22863a;--hljs-syntax-markup-inserted-background-color: #f0fff4;--hljs-syntax-markup-deleted-color: #b31d28;--hljs-syntax-markup-deleted-background-color: #ffeef0}[data-theme-dark] .rich-text--wrapper-markdown[data-v-a47e4ba7]{--hljs-color: var(--color-main-text, #c9d1d9);--hljs-background-color: var(--color-background-dark, #0d1117);--hljs-syntax-keyword-color: #ff7b72;--hljs-syntax-entity-color: #d2a8ff;--hljs-syntax-constant-color: #79c0ff;--hljs-syntax-string-color: #a5d6ff;--hljs-syntax-variable-color: #ffa657;--hljs-syntax-comment-color: #8b949e;--hljs-syntax-entity-tag-color: #7ee787;--hljs-syntax-storage-modifier-import-color: #c9d1d9;--hljs-syntax-markup-heading-color: #1f6feb;--hljs-syntax-markup-list-color: #f2cc60;--hljs-syntax-markup-italic-color: #c9d1d9;--hljs-syntax-markup-bold-color: #c9d1d9;--hljs-syntax-markup-inserted-color: #aff5b4;--hljs-syntax-markup-inserted-background-color: #033a16;--hljs-syntax-markup-deleted-color: #ffdcd7;--hljs-syntax-markup-deleted-background-color: #67060c}}@media(prefers-color-scheme:dark){.rich-text--wrapper-markdown[data-v-a47e4ba7]{--hljs-color: var(--color-main-text, #c9d1d9);--hljs-background-color: var(--color-background-dark, #0d1117);--hljs-syntax-keyword-color: #ff7b72;--hljs-syntax-entity-color: #d2a8ff;--hljs-syntax-constant-color: #79c0ff;--hljs-syntax-string-color: #a5d6ff;--hljs-syntax-variable-color: #ffa657;--hljs-syntax-comment-color: #8b949e;--hljs-syntax-entity-tag-color: #7ee787;--hljs-syntax-storage-modifier-import-color: #c9d1d9;--hljs-syntax-markup-heading-color: #1f6feb;--hljs-syntax-markup-list-color: #f2cc60;--hljs-syntax-markup-italic-color: #c9d1d9;--hljs-syntax-markup-bold-color: #c9d1d9;--hljs-syntax-markup-inserted-color: #aff5b4;--hljs-syntax-markup-inserted-background-color: #033a16;--hljs-syntax-markup-deleted-color: #ffdcd7;--hljs-syntax-markup-deleted-background-color: #67060c}[data-theme-light] .rich-text--wrapper-markdown[data-v-a47e4ba7]{--hljs-color: var(--color-main-text, #24292e);--hljs-background-color: var(--color-background-dark, #ffffff);--hljs-syntax-keyword-color: #d73a49;--hljs-syntax-entity-color: #6f42c1;--hljs-syntax-constant-color: #005cc5;--hljs-syntax-string-color: #032f62;--hljs-syntax-variable-color: #e36209;--hljs-syntax-comment-color: #6a737d;--hljs-syntax-entity-tag-color: #22863a;--hljs-syntax-storage-modifier-import-color: #24292e;--hljs-syntax-markup-heading-color: #005cc5;--hljs-syntax-markup-list-color: #735c0f;--hljs-syntax-markup-italic-color: #24292e;--hljs-syntax-markup-bold-color: #24292e;--hljs-syntax-markup-inserted-color: #22863a;--hljs-syntax-markup-inserted-background-color: #f0fff4;--hljs-syntax-markup-deleted-color: #b31d28;--hljs-syntax-markup-deleted-background-color: #ffeef0}}.rich-text__code-block[data-v-a47e4ba7]{position:relative;padding-inline-end:calc(var(--clickable-area-small) + var(--default-grid-baseline))}.rich-text__code-block pre[data-v-a47e4ba7]{width:100%;overflow-x:auto}.rich-text__code-block .rich-text__code-block-button[data-v-a47e4ba7]{position:absolute;top:var(--default-grid-baseline);inset-inline-end:var(--default-grid-baseline);opacity:0}.rich-text__code-block:hover .rich-text__code-block-button[data-v-a47e4ba7],.rich-text__code-block:focus-within .rich-text__code-block-button[data-v-a47e4ba7],.rich-text__code-block .rich-text__code-block-button[data-v-a47e4ba7]:focus{opacity:1} diff --git a/dist/NcRichText-CBMtJzE_-DAm7eJJb.chunk.css b/dist/NcRichText-CBMtJzE_-DAm7eJJb.chunk.css new file mode 100644 index 0000000000000..59c8c94fe5cb7 --- /dev/null +++ b/dist/NcRichText-CBMtJzE_-DAm7eJJb.chunk.css @@ -0,0 +1 @@ +@charset "UTF-8";.material-design-icon[data-v-e408867a],.material-design-icon[data-v-90c6aa3b]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.provider-list[data-v-90c6aa3b]{width:100%;min-height:400px;padding:0 16px 16px;display:flex;flex-direction:column}.provider-list--select[data-v-90c6aa3b]{width:100%}.provider-list--select .provider[data-v-90c6aa3b]{display:flex;align-items:center;height:28px;overflow:hidden}.provider-list--select .provider .link-icon[data-v-90c6aa3b]{margin-inline-end:8px}.provider-list--select .provider .provider-icon[data-v-90c6aa3b]{width:20px;height:20px;object-fit:contain;margin-inline-end:8px;filter:var(--background-invert-if-dark)}.provider-list--select .provider .option-text[data-v-90c6aa3b]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.material-design-icon[data-v-8ce33442]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.widget-custom[data-v-8ce33442]{width:100%;margin:auto;margin-bottom:calc(var(--default-grid-baseline, 4px) * 3);margin-top:calc(var(--default-grid-baseline, 4px) * 3);overflow:hidden;border:2px solid var(--color-border);border-radius:var(--border-radius-container);background-color:transparent;display:flex}.widget-custom.full-width[data-v-8ce33442]{width:var(--widget-full-width, 100%)!important;inset-inline-start:calc((var(--widget-full-width, 100%) - 100%) / 2 * -1);position:relative}.widget-access[data-v-8ce33442]{width:100%;margin:auto;margin-bottom:calc(var(--default-grid-baseline, 4px) * 3);margin-top:calc(var(--default-grid-baseline, 4px) * 3);overflow:hidden;border:2px solid var(--color-border);border-radius:var(--border-radius-container);background-color:transparent;display:flex;padding:calc(var(--default-grid-baseline, 4px) * 3)}.widget-default[data-v-8ce33442]{width:100%;margin:auto;margin-bottom:calc(var(--default-grid-baseline, 4px) * 3);margin-top:calc(var(--default-grid-baseline, 4px) * 3);overflow:hidden;border:2px solid var(--color-border);border-radius:var(--border-radius-container);background-color:transparent;display:flex}.widget-default--compact[data-v-8ce33442]{flex-direction:column}.widget-default--compact .widget-default--image[data-v-8ce33442]{width:100%;height:150px}.widget-default--compact .widget-default--details[data-v-8ce33442]{width:100%;padding-top:calc(var(--default-grid-baseline, 4px) * 2);padding-bottom:calc(var(--default-grid-baseline, 4px) * 2)}.widget-default--compact .widget-default--description[data-v-8ce33442]{display:none}.widget-default--image[data-v-8ce33442]{width:40%;background-position:center;background-size:cover;background-repeat:no-repeat}.widget-default--name[data-v-8ce33442]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}.widget-default--details[data-v-8ce33442]{padding:calc(var(--default-grid-baseline, 4px) * 3);width:60%}.widget-default--details p[data-v-8ce33442]{margin:0;padding:0}.widget-default--description[data-v-8ce33442]{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical}.widget-default--link[data-v-8ce33442]{color:var(--color-text-maxcontrast);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toggle-interactive[data-v-8ce33442]{position:relative}.toggle-interactive .toggle-interactive--button[data-v-8ce33442]{position:absolute;bottom:var(--default-grid-baseline);inset-inline-end:var(--default-grid-baseline);z-index:10000}.material-design-icon[data-v-a0658f2a]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.raw-link[data-v-a0658f2a]{width:100%;min-height:350px;display:flex;flex-direction:column;overflow-y:auto;padding:0 16px 16px}.raw-link .input-wrapper[data-v-a0658f2a]{width:100%}.raw-link .reference-widget[data-v-a0658f2a]{display:flex}.raw-link--empty-content .provider-icon[data-v-a0658f2a]{width:150px;height:150px;object-fit:contain;filter:var(--background-invert-if-dark)}.raw-link--input[data-v-a0658f2a]{width:99%}.material-design-icon[data-v-059edcfb]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.result[data-v-059edcfb]{display:flex;align-items:center;height:var(--default-clickable-area);overflow:hidden}.result--icon-class[data-v-059edcfb],.result--image[data-v-059edcfb]{width:40px;min-width:40px;height:40px;object-fit:contain}.result--icon-class.rounded[data-v-059edcfb],.result--image.rounded[data-v-059edcfb]{border-radius:50%}.result--content[data-v-059edcfb]{display:flex;flex-direction:column;padding-inline-start:10px;overflow:hidden}.result--content--name[data-v-059edcfb],.result--content--subline[data-v-059edcfb]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.material-design-icon[data-v-e8abf1d4]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.smart-picker-search[data-v-e8abf1d4]{width:100%;display:flex;flex-direction:column;padding:0 16px 16px}.smart-picker-search.with-empty-content[data-v-e8abf1d4]{min-height:400px}.smart-picker-search .provider-icon[data-v-e8abf1d4]{width:150px;height:150px;object-fit:contain;filter:var(--background-invert-if-dark)}.smart-picker-search--select[data-v-e8abf1d4],.smart-picker-search--select .search-result[data-v-e8abf1d4]{width:100%}.smart-picker-search--select .group-name-icon[data-v-e8abf1d4],.smart-picker-search--select .option-simple-icon[data-v-e8abf1d4]{width:20px;height:20px;margin:0 20px 0 10px}.smart-picker-search--select .custom-option[data-v-e8abf1d4]{height:var(--default-clickable-area);display:flex;align-items:center;overflow:hidden}.smart-picker-search--select .option-text[data-v-e8abf1d4]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.material-design-icon[data-v-b193005a]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.reference-picker[data-v-b193005a],.reference-picker .custom-element-wrapper[data-v-b193005a],.reference-picker .custom-element-wrapper .custom-element[data-v-b193005a]{display:flex;overflow-y:auto;width:100%}.material-design-icon[data-v-15018516]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.reference-picker-modal[data-v-15018516] .modal-container{display:flex!important}.reference-picker-modal--content[data-v-15018516]{width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow-y:auto}.reference-picker-modal--content .close-button[data-v-15018516],.reference-picker-modal--content .back-button[data-v-15018516]{position:absolute;top:4px}.reference-picker-modal--content .back-button[data-v-15018516]{inset-inline-start:4px}.reference-picker-modal--content .close-button[data-v-15018516]{inset-inline-end:4px}.reference-picker-modal--content>h2[data-v-15018516]{display:flex;margin:12px 0 20px}.reference-picker-modal--content>h2 .icon[data-v-15018516]{margin-inline-end:8px}.material-design-icon[data-v-cd116174]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.widgets--list[data-v-cd116174]{width:100%;min-height:var(--default-clickable-area)}.material-design-icon[data-v-a47e4ba7]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.rich-text--wrapper[data-v-a47e4ba7]{overflow-wrap:break-word;line-height:1.5}.rich-text--wrapper .rich-text--fallback[data-v-a47e4ba7],.rich-text--wrapper .rich-text-component[data-v-a47e4ba7]{display:inline}.rich-text--wrapper .rich-text--external-link[data-v-a47e4ba7]{text-decoration:underline}.rich-text--wrapper .rich-text--external-link[data-v-a47e4ba7]:after{content:" ↗"}.rich-text--wrapper-markdown[data-v-a47e4ba7]{tab-size:4}.rich-text--wrapper-markdown[data-v-a47e4ba7]>:first-child,.rich-text--wrapper-markdown div[data-v-a47e4ba7]>:first-child,.rich-text--wrapper-markdown blockquote[data-v-a47e4ba7]>:first-child{margin-top:0!important}.rich-text--wrapper-markdown[data-v-a47e4ba7]>:last-child,.rich-text--wrapper-markdown[data-v-a47e4ba7]>*:has(+.rich-text--reference-widget),.rich-text--wrapper-markdown div[data-v-a47e4ba7]>:last-child,.rich-text--wrapper-markdown blockquote[data-v-a47e4ba7]>:last-child{margin-block-end:0!important}.rich-text--wrapper-markdown blockquote[data-v-a47e4ba7]{padding-inline-start:13px;border-inline-start:2px solid var(--color-border-dark);color:var(--color-text-maxcontrast)}.rich-text--wrapper-markdown h1[data-v-a47e4ba7],.rich-text--wrapper-markdown h2[data-v-a47e4ba7],.rich-text--wrapper-markdown h3[data-v-a47e4ba7],.rich-text--wrapper-markdown h4[data-v-a47e4ba7],.rich-text--wrapper-markdown h5[data-v-a47e4ba7],.rich-text--wrapper-markdown h6[data-v-a47e4ba7],.rich-text--wrapper-markdown p[data-v-a47e4ba7],.rich-text--wrapper-markdown ul[data-v-a47e4ba7],.rich-text--wrapper-markdown ol[data-v-a47e4ba7],.rich-text--wrapper-markdown blockquote[data-v-a47e4ba7],.rich-text--wrapper-markdown pre[data-v-a47e4ba7]{margin-top:0;margin-block-end:1em}.rich-text--wrapper-markdown h1[data-v-a47e4ba7],.rich-text--wrapper-markdown h2[data-v-a47e4ba7],.rich-text--wrapper-markdown h3[data-v-a47e4ba7],.rich-text--wrapper-markdown h4[data-v-a47e4ba7],.rich-text--wrapper-markdown h5[data-v-a47e4ba7],.rich-text--wrapper-markdown h6[data-v-a47e4ba7]{font-weight:700}.rich-text--wrapper-markdown h4[data-v-a47e4ba7]{font-size:20px}.rich-text--wrapper-markdown h5[data-v-a47e4ba7]{font-size:18px}.rich-text--wrapper-markdown h6[data-v-a47e4ba7]{font-size:15px}.rich-text--wrapper-markdown ul[data-v-a47e4ba7],.rich-text--wrapper-markdown ol[data-v-a47e4ba7]{padding-inline-start:4ch}.rich-text--wrapper-markdown ul[data-v-a47e4ba7]{list-style-type:disc}.rich-text--wrapper-markdown ul.contains-task-list[data-v-a47e4ba7]{list-style-type:none;padding:0}.rich-text--wrapper-markdown li.task-list-item>ul[data-v-a47e4ba7],.rich-text--wrapper-markdown li.task-list-item>ol[data-v-a47e4ba7],.rich-text--wrapper-markdown li.task-list-item>li[data-v-a47e4ba7],.rich-text--wrapper-markdown li.task-list-item>blockquote[data-v-a47e4ba7],.rich-text--wrapper-markdown li.task-list-item>pre[data-v-a47e4ba7]{margin-inline-start:15px;margin-block-end:0}.rich-text--wrapper-markdown pre[data-v-a47e4ba7]{direction:ltr}.rich-text--wrapper-markdown table[data-v-a47e4ba7]{border-collapse:collapse;border:2px solid var(--color-border-maxcontrast)}.rich-text--wrapper-markdown table th[data-v-a47e4ba7],.rich-text--wrapper-markdown table td[data-v-a47e4ba7]{padding:var(--default-grid-baseline);border:1px solid var(--color-border-maxcontrast)}.rich-text--wrapper-markdown table th[data-v-a47e4ba7]:first-child,.rich-text--wrapper-markdown table td[data-v-a47e4ba7]:first-child{border-inline-start:0}.rich-text--wrapper-markdown table th[data-v-a47e4ba7]:last-child,.rich-text--wrapper-markdown table td[data-v-a47e4ba7]:last-child{border-inline-end:0}.rich-text--wrapper-markdown table tr:first-child th[data-v-a47e4ba7]{border-top:0}.rich-text--wrapper-markdown table tr:last-child td[data-v-a47e4ba7]{border-block-end:0}.rich-text--wrapper-markdown .rich-text__code-block[data-v-a47e4ba7]:has(.hljs){color:var(--hljs-color);background:var(--hljs-background-color)}.rich-text--wrapper-markdown .hljs-doctag[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-keyword[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-meta .hljs-keyword[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-template-tag[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-template-variable[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-type[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-variable.language_[data-v-a47e4ba7]{color:var(--hljs-syntax-keyword-color)}.rich-text--wrapper-markdown .hljs-title[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-title.class_[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-title.class_.inherited__[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-title.function_[data-v-a47e4ba7]{color:var(--hljs-syntax-entity-color)}.rich-text--wrapper-markdown .hljs-attr[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-attribute[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-literal[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-meta[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-number[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-operator[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-variable[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-selector-attr[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-selector-class[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-selector-id[data-v-a47e4ba7]{color:var(--hljs-syntax-constant-color)}.rich-text--wrapper-markdown .hljs-regexp[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-string[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-meta .hljs-string[data-v-a47e4ba7]{color:var(--hljs-syntax-string-color)}.rich-text--wrapper-markdown .hljs-built_in[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-symbol[data-v-a47e4ba7]{color:var(--hljs-syntax-variable-color)}.rich-text--wrapper-markdown .hljs-comment[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-code[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-formula[data-v-a47e4ba7]{color:var(--hljs-syntax-comment-color)}.rich-text--wrapper-markdown .hljs-name[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-quote[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-selector-tag[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-selector-pseudo[data-v-a47e4ba7]{color:var(--hljs-syntax-entity-tag-color)}.rich-text--wrapper-markdown .hljs-subst[data-v-a47e4ba7]{color:var(--hljs-syntax-storage-modifier-import-color)}.rich-text--wrapper-markdown .hljs-section[data-v-a47e4ba7]{color:var(--hljs-syntax-markup-heading-color);font-weight:700}.rich-text--wrapper-markdown .hljs-bullet[data-v-a47e4ba7]{color:var(--hljs-syntax-markup-list-color)}.rich-text--wrapper-markdown .hljs-emphasis[data-v-a47e4ba7]{color:var(--hljs-syntax-markup-italic-color);font-style:italic}.rich-text--wrapper-markdown .hljs-strong[data-v-a47e4ba7]{color:var(--hljs-syntax-markup-bold-color);font-weight:700}.rich-text--wrapper-markdown .hljs-addition[data-v-a47e4ba7]{color:var(--hljs-syntax-markup-inserted-color);background-color:var(--hljs-syntax-markup-inserted-background-color)}.rich-text--wrapper-markdown .hljs-deletion[data-v-a47e4ba7]{color:var(--hljs-syntax-markup-deleted-color);background-color:var(--hljs-syntax-markup-deleted-background-color)}a[data-v-a47e4ba7]:not(.rich-text--component){text-decoration:underline}@media(prefers-color-scheme:light){.rich-text--wrapper-markdown[data-v-a47e4ba7]{--hljs-color: var(--color-main-text, #24292e);--hljs-background-color: var(--color-background-dark, #ffffff);--hljs-syntax-keyword-color: #d73a49;--hljs-syntax-entity-color: #6f42c1;--hljs-syntax-constant-color: #005cc5;--hljs-syntax-string-color: #032f62;--hljs-syntax-variable-color: #e36209;--hljs-syntax-comment-color: #6a737d;--hljs-syntax-entity-tag-color: #22863a;--hljs-syntax-storage-modifier-import-color: #24292e;--hljs-syntax-markup-heading-color: #005cc5;--hljs-syntax-markup-list-color: #735c0f;--hljs-syntax-markup-italic-color: #24292e;--hljs-syntax-markup-bold-color: #24292e;--hljs-syntax-markup-inserted-color: #22863a;--hljs-syntax-markup-inserted-background-color: #f0fff4;--hljs-syntax-markup-deleted-color: #b31d28;--hljs-syntax-markup-deleted-background-color: #ffeef0}[data-theme-dark] .rich-text--wrapper-markdown[data-v-a47e4ba7]{--hljs-color: var(--color-main-text, #c9d1d9);--hljs-background-color: var(--color-background-dark, #0d1117);--hljs-syntax-keyword-color: #ff7b72;--hljs-syntax-entity-color: #d2a8ff;--hljs-syntax-constant-color: #79c0ff;--hljs-syntax-string-color: #a5d6ff;--hljs-syntax-variable-color: #ffa657;--hljs-syntax-comment-color: #8b949e;--hljs-syntax-entity-tag-color: #7ee787;--hljs-syntax-storage-modifier-import-color: #c9d1d9;--hljs-syntax-markup-heading-color: #1f6feb;--hljs-syntax-markup-list-color: #f2cc60;--hljs-syntax-markup-italic-color: #c9d1d9;--hljs-syntax-markup-bold-color: #c9d1d9;--hljs-syntax-markup-inserted-color: #aff5b4;--hljs-syntax-markup-inserted-background-color: #033a16;--hljs-syntax-markup-deleted-color: #ffdcd7;--hljs-syntax-markup-deleted-background-color: #67060c}}@media(prefers-color-scheme:dark){.rich-text--wrapper-markdown[data-v-a47e4ba7]{--hljs-color: var(--color-main-text, #c9d1d9);--hljs-background-color: var(--color-background-dark, #0d1117);--hljs-syntax-keyword-color: #ff7b72;--hljs-syntax-entity-color: #d2a8ff;--hljs-syntax-constant-color: #79c0ff;--hljs-syntax-string-color: #a5d6ff;--hljs-syntax-variable-color: #ffa657;--hljs-syntax-comment-color: #8b949e;--hljs-syntax-entity-tag-color: #7ee787;--hljs-syntax-storage-modifier-import-color: #c9d1d9;--hljs-syntax-markup-heading-color: #1f6feb;--hljs-syntax-markup-list-color: #f2cc60;--hljs-syntax-markup-italic-color: #c9d1d9;--hljs-syntax-markup-bold-color: #c9d1d9;--hljs-syntax-markup-inserted-color: #aff5b4;--hljs-syntax-markup-inserted-background-color: #033a16;--hljs-syntax-markup-deleted-color: #ffdcd7;--hljs-syntax-markup-deleted-background-color: #67060c}[data-theme-light] .rich-text--wrapper-markdown[data-v-a47e4ba7]{--hljs-color: var(--color-main-text, #24292e);--hljs-background-color: var(--color-background-dark, #ffffff);--hljs-syntax-keyword-color: #d73a49;--hljs-syntax-entity-color: #6f42c1;--hljs-syntax-constant-color: #005cc5;--hljs-syntax-string-color: #032f62;--hljs-syntax-variable-color: #e36209;--hljs-syntax-comment-color: #6a737d;--hljs-syntax-entity-tag-color: #22863a;--hljs-syntax-storage-modifier-import-color: #24292e;--hljs-syntax-markup-heading-color: #005cc5;--hljs-syntax-markup-list-color: #735c0f;--hljs-syntax-markup-italic-color: #24292e;--hljs-syntax-markup-bold-color: #24292e;--hljs-syntax-markup-inserted-color: #22863a;--hljs-syntax-markup-inserted-background-color: #f0fff4;--hljs-syntax-markup-deleted-color: #b31d28;--hljs-syntax-markup-deleted-background-color: #ffeef0}}.rich-text__code-block[data-v-a47e4ba7]{position:relative;padding-inline-end:calc(var(--clickable-area-small) + var(--default-grid-baseline))}.rich-text__code-block pre[data-v-a47e4ba7]{width:100%;overflow-x:auto}.rich-text__code-block .rich-text__code-block-button[data-v-a47e4ba7]{position:absolute;top:var(--default-grid-baseline);inset-inline-end:var(--default-grid-baseline);opacity:0}.rich-text__code-block:hover .rich-text__code-block-button[data-v-a47e4ba7],.rich-text__code-block:focus-within .rich-text__code-block-button[data-v-a47e4ba7],.rich-text__code-block .rich-text__code-block-button[data-v-a47e4ba7]:focus{opacity:1} diff --git a/dist/NcRichText-CBMtJzE_-bvZFA37H.chunk.mjs b/dist/NcRichText-CBMtJzE_-bvZFA37H.chunk.mjs deleted file mode 100644 index cb33fe4d542fd..0000000000000 --- a/dist/NcRichText-CBMtJzE_-bvZFA37H.chunk.mjs +++ /dev/null @@ -1,83 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=[window.OC.filePath('', '', 'dist/index-DcjMKczi.chunk.mjs'),window.OC.filePath('', '', 'dist/index-6_gsQFyp.chunk.mjs'),window.OC.filePath('', '', 'dist/NcAvatar-DmUGApWA-DBHt6M62.chunk.mjs'),window.OC.filePath('', '', 'dist/index-BfylblLb.chunk.mjs'),window.OC.filePath('', '', 'dist/runtime-dom.esm-bundler-BrYCUcZF.chunk.mjs'),window.OC.filePath('', '', 'dist/string_decoder-BO00msnV.chunk.mjs'),window.OC.filePath('', '', 'dist/createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs'),window.OC.filePath('', '', 'dist/translation-DoG5ZELJ-gw0g4US-.chunk.mjs'),window.OC.filePath('', '', 'dist/index-JpgrUA2Z-BFiKKJ1W.chunk.mjs'),window.OC.filePath('', '', 'dist/index-xFugdZPW.chunk.mjs'),window.OC.filePath('', '', 'dist/NcNoteCard-CVhtNL04-hwuc093N.chunk.mjs'),window.OC.filePath('', '', 'dist/NcNoteCard-CVhtNL04-DopLwvn9.chunk.css'),window.OC.filePath('', '', 'dist/mdi-D55n0uzy.chunk.mjs'),window.OC.filePath('', '', 'dist/mdi-BYHcrfvW.chunk.css'),window.OC.filePath('', '', 'dist/index-JpgrUA2Z-PxDoi4mB.chunk.css'),window.OC.filePath('', '', 'dist/colors-Go3zmZRD-DU6ImAGi.chunk.mjs'),window.OC.filePath('', '', 'dist/PencilOutline-DCq8EKwg.chunk.mjs'),window.OC.filePath('', '', 'dist/PencilOutline-Bq_6hmXG.chunk.css'),window.OC.filePath('', '', 'dist/NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-CAvY10OW.chunk.mjs'),window.OC.filePath('', '', 'dist/NcDateTime-DXOHXnuu.chunk.css'),window.OC.filePath('', '', 'dist/NcAvatar-DmUGApWA-B-07Svbi.chunk.css'),window.OC.filePath('', '', 'dist/NcCheckboxRadioSwitch-BCSKF7Tk-yPckcGKs.chunk.mjs'),window.OC.filePath('', '', 'dist/NcCheckboxRadioSwitch-BCSKF7Tk-BgdwjgMO.chunk.css'),window.OC.filePath('', '', 'dist/index-BZk0T9Q-.chunk.mjs'),window.OC.filePath('', '', 'dist/NcSelect-Czzsi3P_-DLFUGW7z.chunk.mjs'),window.OC.filePath('', '', 'dist/NcSelect-Czzsi3P_-DxGOLvnt.chunk.css'),window.OC.filePath('', '', 'dist/index-DoZPzs7J.chunk.css'),window.OC.filePath('', '', 'dist/TrashCanOutline-CvWRJ8GE.chunk.mjs'),window.OC.filePath('', '', 'dist/NcInputField-Bwsh2aHY-CHbAfY0u.chunk.mjs'),window.OC.filePath('', '', 'dist/NcInputField-Bwsh2aHY-_gyGHRGx.chunk.css')])))=>i.map(i=>d[i]); -import{f as So,e as Ut,c as li,a as Eo}from"./index-6_gsQFyp.chunk.mjs";import{l as qt,g as zo,_ as Po,b as sr}from"./index-xFugdZPW.chunk.mjs";import{V as Do,W as Io,u as Rn,X as _o,Y as Ao}from"./index-JpgrUA2Z-BFiKKJ1W.chunk.mjs";import{i as To,r as xe,x as Q,s as at,A as Nn,_ as Yt,c as We,aq as De,o as ne,N as ai,M as Ke,am as Mo,j as we,m as Xe,K as si,u as se,a7 as ee,J as st,f as ut,l as Ie,t as Ve,F as jn,n as qe,E as bn,H as ui,G as wn,k as Ue,e as $e,w as Re,b as Gt,Z as Oo,g as Cn,ap as Lo,a1 as Fo,v as ur,z as Ro,C as No}from"./runtime-dom.esm-bundler-BrYCUcZF.chunk.mjs";import{l as Ne,a as Bn,k as jo,c as Pt,d as Bo,y as Ho,r as Vo}from"./NcNoteCard-CVhtNL04-hwuc093N.chunk.mjs";import{r as je,_ as pt,t as Be,s as Uo,u as qo,i as $o,v as Wo,w as ci,x as Zo,y as Yo,z as Go,A as Ko,B as Xo,c as nn,a as Lt}from"./createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs";import{R as fi}from"./colors-Go3zmZRD-DU6ImAGi.chunk.mjs";import{N as Qo}from"./NcCheckboxRadioSwitch-BCSKF7Tk-yPckcGKs.chunk.mjs";import{c as Ft}from"./index-BfylblLb.chunk.mjs";import"./index-BZk0T9Q-.chunk.mjs";import"./NcSelect-Czzsi3P_-DLFUGW7z.chunk.mjs";import{g as pi,v as Ze,c as Jo,a as el,p as tl,r as nl,U as cr,E as rl,u as fr,S as il}from"./NcAvatar-DmUGApWA-DBHt6M62.chunk.mjs";import"./mdi-D55n0uzy.chunk.mjs";import"./TrashCanOutline-CvWRJ8GE.chunk.mjs";const wo="nextcloud-ui",Co="1.0.0",ol={__name:"splitpanes",props:{horizontal:{type:Boolean,default:!1},pushOtherPanes:{type:Boolean,default:!0},maximizePanes:{type:Boolean,default:!0},rtl:{type:Boolean,default:!1},firstSplitter:{type:Boolean,default:!1}},emits:["ready","resize","resized","pane-click","pane-maximize","pane-add","pane-remove","splitter-click","splitter-dblclick"],setup(e,{emit:t}){const n=t,r=e,o=To(),i=xe([]),l=Q(()=>i.value.reduce((w,E)=>(w[~~E.id]=E)&&w,{})),a=Q(()=>i.value.length),s=xe(null),u=xe(!1),f=xe({mouseDown:!1,dragging:!1,activeSplitter:null,cursorOffset:0}),c=xe({splitter:null,timeoutId:null}),h=Q(()=>({[`splitpanes splitpanes--${r.horizontal?"horizontal":"vertical"}`]:!0,"splitpanes--dragging":f.value.dragging})),p=()=>{document.addEventListener("mousemove",k,{passive:!1}),document.addEventListener("mouseup",v),"ontouchstart"in window&&(document.addEventListener("touchmove",k,{passive:!1}),document.addEventListener("touchend",v))},m=()=>{document.removeEventListener("mousemove",k,{passive:!1}),document.removeEventListener("mouseup",v),"ontouchstart"in window&&(document.removeEventListener("touchmove",k,{passive:!1}),document.removeEventListener("touchend",v))},x=(w,E)=>{const _=w.target.closest(".splitpanes__splitter");if(_){const{left:D,top:A}=_.getBoundingClientRect(),{clientX:N,clientY:W}="ontouchstart"in window&&w.touches?w.touches[0]:w;f.value.cursorOffset=r.horizontal?W-A:N-D}p(),f.value.mouseDown=!0,f.value.activeSplitter=E},k=w=>{f.value.mouseDown&&(w.preventDefault(),f.value.dragging=!0,requestAnimationFrame(()=>{V(U(w)),ie("resize",{event:w},!0)}))},v=w=>{f.value.dragging&&(window.getSelection().removeAllRanges(),ie("resized",{event:w},!0)),f.value.mouseDown=!1,f.value.activeSplitter=null,setTimeout(()=>{f.value.dragging=!1,m()},100)},S=(w,E)=>{"ontouchstart"in window&&(w.preventDefault(),c.value.splitter===E?(clearTimeout(c.value.timeoutId),c.value.timeoutId=null,P(w,E),c.value.splitter=null):(c.value.splitter=E,c.value.timeoutId=setTimeout(()=>c.value.splitter=null,500))),f.value.dragging||ie("splitter-click",{event:w,index:E},!0)},P=(w,E)=>{if(ie("splitter-dblclick",{event:w,index:E},!0),r.maximizePanes){let _=0;i.value=i.value.map((D,A)=>(D.size=A===E?D.max:D.min,A!==E&&(_+=D.min),D)),i.value[E].size-=_,ie("pane-maximize",{event:w,index:E,pane:i.value[E]}),ie("resized",{event:w,index:E},!0)}},M=(w,E)=>{ie("pane-click",{event:w,index:l.value[E].index,pane:l.value[E]})},U=w=>{const E=s.value.getBoundingClientRect(),{clientX:_,clientY:D}="ontouchstart"in window&&w.touches?w.touches[0]:w;return{x:_-(r.horizontal?0:f.value.cursorOffset)-E.left,y:D-(r.horizontal?f.value.cursorOffset:0)-E.top}},C=w=>{w=w[r.horizontal?"y":"x"];const E=s.value[r.horizontal?"clientHeight":"clientWidth"];return r.rtl&&!r.horizontal&&(w=E-w),w*100/E},V=w=>{const E=f.value.activeSplitter;let _={prevPanesSize:$(E),nextPanesSize:y(E),prevReachedMinPanes:0,nextReachedMinPanes:0};const D=0+(r.pushOtherPanes?0:_.prevPanesSize),A=100-(r.pushOtherPanes?0:_.nextPanesSize),N=Math.max(Math.min(C(w),A),D);let W=[E,E+1],le=i.value[W[0]]||null,ce=i.value[W[1]]||null;const gt=le.max<100&&N>=le.max+_.prevPanesSize,Mt=ce.max<100&&N<=100-(ce.max+y(E+1));if(gt||Mt){gt?(le.size=le.max,ce.size=Math.max(100-le.max-_.prevPanesSize-_.nextPanesSize,0)):(le.size=Math.max(100-ce.max-_.prevPanesSize-y(E+1),0),ce.size=ce.max);return}if(r.pushOtherPanes){const Ot=O(_,N);if(!Ot)return;({sums:_,panesToResize:W}=Ot),le=i.value[W[0]]||null,ce=i.value[W[1]]||null}le!==null&&(le.size=Math.min(Math.max(N-_.prevPanesSize-_.prevReachedMinPanes,le.min),le.max)),ce!==null&&(ce.size=Math.min(Math.max(100-N-_.nextPanesSize-_.nextReachedMinPanes,ce.min),ce.max))},O=(w,E)=>{const _=f.value.activeSplitter,D=[_,_+1];return E<w.prevPanesSize+i.value[D[0]].min&&(D[0]=L(_).index,w.prevReachedMinPanes=0,D[0]<_&&i.value.forEach((A,N)=>{N>D[0]&&N<=_&&(A.size=A.min,w.prevReachedMinPanes+=A.min)}),w.prevPanesSize=$(D[0]),D[0]===void 0)?(w.prevReachedMinPanes=0,i.value[0].size=i.value[0].min,i.value.forEach((A,N)=>{N>0&&N<=_&&(A.size=A.min,w.prevReachedMinPanes+=A.min)}),i.value[D[1]].size=100-w.prevReachedMinPanes-i.value[0].min-w.prevPanesSize-w.nextPanesSize,null):E>100-w.nextPanesSize-i.value[D[1]].min&&(D[1]=F(_).index,w.nextReachedMinPanes=0,D[1]>_+1&&i.value.forEach((A,N)=>{N>_&&N<D[1]&&(A.size=A.min,w.nextReachedMinPanes+=A.min)}),w.nextPanesSize=y(D[1]-1),D[1]===void 0)?(w.nextReachedMinPanes=0,i.value.forEach((A,N)=>{N<a.value-1&&N>=_+1&&(A.size=A.min,w.nextReachedMinPanes+=A.min)}),i.value[D[0]].size=100-w.prevPanesSize-y(D[0]-1),null):{sums:w,panesToResize:D}},$=w=>i.value.reduce((E,_,D)=>E+(D<w?_.size:0),0),y=w=>i.value.reduce((E,_,D)=>E+(D>w+1?_.size:0),0),L=w=>[...i.value].reverse().find(E=>E.index<w&&E.size>E.min)||{},F=w=>i.value.find(E=>E.index>w+1&&E.size>E.min)||{},R=()=>{var w;const E=Array.from(((w=s.value)==null?void 0:w.children)||[]);for(const _ of E){const D=_.classList.contains("splitpanes__pane"),A=_.classList.contains("splitpanes__splitter");!D&&!A&&(_.remove(),console.warn("Splitpanes: Only <pane> elements are allowed at the root of <splitpanes>. One of your DOM nodes was removed."))}},T=(w,E,_=!1)=>{const D=w-1,A=document.createElement("div");A.classList.add("splitpanes__splitter"),_||(A.onmousedown=N=>x(N,D),typeof window<"u"&&"ontouchstart"in window&&(A.ontouchstart=N=>x(N,D)),A.onclick=N=>S(N,D+1)),A.ondblclick=N=>P(N,D+1),E.parentNode.insertBefore(A,E)},j=w=>{w.onmousedown=void 0,w.onclick=void 0,w.ondblclick=void 0,w.remove()},J=()=>{var w;const E=Array.from(((w=s.value)==null?void 0:w.children)||[]);for(const D of E)D.className.includes("splitpanes__splitter")&&j(D);let _=0;for(const D of E)D.className.includes("splitpanes__pane")&&(!_&&r.firstSplitter?T(_,D,!0):_&&T(_,D),_++)},re=({uid:w,...E})=>{const _=l.value[w];for(const[D,A]of Object.entries(E))_[D]=A},ge=w=>{var E;let _=-1;Array.from(((E=s.value)==null?void 0:E.children)||[]).some(D=>(D.className.includes("splitpanes__pane")&&_++,D.isSameNode(w.el))),i.value.splice(_,0,{...w,index:_}),i.value.forEach((D,A)=>D.index=A),u.value&&st(()=>{J(),d({addedPane:i.value[_]}),ie("pane-add",{pane:i.value[_]})})},Ce=w=>{const E=i.value.findIndex(D=>D.id===w);i.value[E].el=null;const _=i.value.splice(E,1)[0];i.value.forEach((D,A)=>D.index=A),st(()=>{J(),ie("pane-remove",{pane:_}),d({removedPane:{..._}})})},d=(w={})=>{!w.addedPane&&!w.removedPane?Se():i.value.some(E=>E.givenSize!==null||E.min||E.max<100)?g(w):me(),u.value&&ie("resized")},me=()=>{const w=100/a.value;let E=0;const _=[],D=[];for(const A of i.value)A.size=Math.max(Math.min(w,A.max),A.min),E-=A.size,A.size>=A.max&&_.push(A.id),A.size<=A.min&&D.push(A.id);E>.1&&ue(E,_,D)},Se=()=>{let w=100;const E=[],_=[];let D=0;for(const N of i.value)w-=N.size,N.givenSize!==null&&D++,N.size>=N.max&&E.push(N.id),N.size<=N.min&&_.push(N.id);let A=100;if(w>.1){for(const N of i.value)N.givenSize===null&&(N.size=Math.max(Math.min(w/(a.value-D),N.max),N.min)),A-=N.size;A>.1&&ue(A,E,_)}},g=({addedPane:w,removedPane:E}={})=>{let _=100/a.value,D=0;const A=[],N=[];(w?.givenSize??null)!==null&&(_=(100-w.givenSize)/(a.value-1));for(const W of i.value)D-=W.size,W.size>=W.max&&A.push(W.id),W.size<=W.min&&N.push(W.id);if(!(Math.abs(D)<.1)){for(const W of i.value)w?.givenSize!==null&&w?.id===W.id||(W.size=Math.max(Math.min(_,W.max),W.min)),D-=W.size,W.size>=W.max&&A.push(W.id),W.size<=W.min&&N.push(W.id);D>.1&&ue(D,A,N)}},ue=(w,E,_)=>{let D;w>0?D=w/(a.value-E.length):D=w/(a.value-_.length),i.value.forEach((A,N)=>{if(w>0&&!E.includes(A.id)){const W=Math.max(Math.min(A.size+D,A.max),A.min),le=W-A.size;w-=le,A.size=W}else if(!_.includes(A.id)){const W=Math.max(Math.min(A.size+D,A.max),A.min),le=W-A.size;w-=le,A.size=W}}),Math.abs(w)>.1&&st(()=>{u.value&&console.warn("Splitpanes: Could not resize panes correctly due to their constraints.")})},ie=(w,E=void 0,_=!1)=>{const D=E?.index??f.value.activeSplitter??null;n(w,{...E,...D!==null&&{index:D},..._&&D!==null&&{prevPane:i.value[D-(r.firstSplitter?1:0)],nextPane:i.value[D+(r.firstSplitter?0:1)]},panes:i.value.map(A=>({min:A.min,max:A.max,size:A.size}))})};at(()=>r.firstSplitter,()=>J()),Nn(()=>{R(),J(),d(),ie("ready"),u.value=!0}),Yt(()=>u.value=!1);const oe=()=>{var w;return ee("div",{ref:s,class:h.value},(w=o.default)==null?void 0:w.call(o))};return De("panes",i),De("indexedPanes",l),De("horizontal",Q(()=>r.horizontal)),De("requestUpdate",re),De("onPaneAdd",ge),De("onPaneRemove",Ce),De("onPaneClick",M),(w,E)=>(ne(),We(ai(oe)))}},ll={__name:"pane",props:{size:{type:[Number,String]},minSize:{type:[Number,String],default:0},maxSize:{type:[Number,String],default:100}},setup(e){var t;const n=e,r=Ke("requestUpdate"),o=Ke("onPaneAdd"),i=Ke("horizontal"),l=Ke("onPaneRemove"),a=Ke("onPaneClick"),s=(t=Mo())==null?void 0:t.uid,u=Ke("indexedPanes"),f=Q(()=>u.value[s]),c=xe(null),h=Q(()=>{const k=isNaN(n.size)||n.size===void 0?0:parseFloat(n.size);return Math.max(Math.min(k,m.value),p.value)}),p=Q(()=>{const k=parseFloat(n.minSize);return isNaN(k)?0:k}),m=Q(()=>{const k=parseFloat(n.maxSize);return isNaN(k)?100:k}),x=Q(()=>{var k;return`${i.value?"height":"width"}: ${(k=f.value)==null?void 0:k.size}%`});return at(()=>h.value,k=>r({uid:s,size:k})),at(()=>p.value,k=>r({uid:s,min:k})),at(()=>m.value,k=>r({uid:s,max:k})),Nn(()=>{o({id:s,el:c.value,min:p.value,max:m.value,givenSize:n.size===void 0?null:h.value,size:h.value})}),Yt(()=>l(s)),(k,v)=>(ne(),we("div",{ref_key:"paneEl",ref:c,class:"splitpanes__pane",onClick:v[0]||(v[0]=S=>se(a)(S,k._.uid)),style:si(x.value)},[Xe(k.$slots,"default")],4))}};function al(e){let t=!1,n;return(...r)=>(t||(t=!0,n=e(...r)),n)}let hi="missing-app-name";try{hi=wo}catch{Ne.error("The `@nextcloud/vue` library was used without setting / replacing the `appName`.")}const Sn=hi;let sl="";try{sl=Co}catch{Ne.error("The `@nextcloud/vue` library was used without setting / replacing the `appVersion`.")}const ul=al(()=>{const e=qt("core","active-app",Sn);return qt("core","apps",[]).find(({id:t})=>t===e)?.name??Sn});je();const cl=Gt({__name:"NcAppContentDetailsToggle",setup(e){const t=Rn();at(t,n),Nn(()=>{n(t.value)}),Yt(()=>{t.value&&n(!1)});function n(r=!0){const o=document.querySelector(".app-navigation .app-navigation-toggle");o&&(o.style.display=r?"none":"",r===!0&&Ut("toggle-navigation",{open:!1}))}return(r,o)=>(ne(),We(se(Pt),{"aria-label":se(Be)("Go back to the list"),class:qe(["app-details-toggle",{"app-details-toggle--mobile":se(t)}]),title:se(Be)("Go back to the list"),variant:"tertiary"},{icon:Re(()=>[$e(se(Bn),{directional:"",path:se(jo)},null,8,["path"])]),_:1},8,["aria-label","class","title"]))}}),fl=pt(cl,[["__scopeId","data-v-a28923a1"]]),pr=So("nextcloud").persist().build(),pl=zo().theming?.name??"Nextcloud",hl={name:"NcAppContent",components:{NcAppContentDetailsToggle:fl,Pane:ll,Splitpanes:ol},props:{disableSwipe:{type:Boolean,default:!1},listSize:{type:Number,default:20},listMinWidth:{type:Number,default:15},listMaxWidth:{type:Number,default:40},paneConfigKey:{type:String,default:""},showDetails:{type:Boolean,default:!0},layout:{type:String,default:"vertical-split",validator(e){return["no-split","vertical-split","horizontal-split"].includes(e)}},pageHeading:{type:String,default:null},pageTitle:{type:String,default:null}},emits:["update:showDetails","resizeList"],setup(){return{isMobile:Rn(),isRtl:Io}},data(){return{contentHeight:0,swiping:{},listPaneSize:this.restorePaneConfig()}},computed:{paneConfigID(){if(this.paneConfigKey!=="")return`pane-list-size-${this.paneConfigKey}`;try{return`pane-list-size-${Sn}`}catch{return Ne.info("[NcAppContent]: falling back to global nextcloud pane config"),"pane-list-size-nextcloud"}},detailsPaneSize(){return this.listPaneSize?100-this.listPaneSize:this.paneDefaults.details.size},paneDefaults(){return{list:{size:this.listSize,min:this.listMinWidth,max:this.listMaxWidth},details:{size:100-this.listSize,min:100-this.listMaxWidth,max:100-this.listMinWidth}}},realPageTitle(){const e=new Set;if(this.pageTitle)for(const t of this.pageTitle.split(" - "))e.add(t);else if(this.pageHeading){for(const t of this.pageHeading.split(" - "))e.add(t);e.size>0&&e.add(ul())}else return null;return e.add(pl),[...e.values()].join(" - ")}},watch:{realPageTitle:{immediate:!0,handler(){this.realPageTitle!==null&&(document.title=this.realPageTitle)}},paneConfigKey:{immediate:!0,handler(){this.restorePaneConfig()}}},mounted(){this.disableSwipe||(this.swiping=Do(this.$el,{onSwipeEnd:this.handleSwipe})),this.restorePaneConfig()},methods:{handleSwipe(e,t){Math.abs(this.swiping.lengthX)>70&&(this.swiping.coordsStart.x<300/2&&t==="right"?Ut("toggle-navigation",{open:!0}):this.swiping.coordsStart.x<300*1.5&&t==="left"&&Ut("toggle-navigation",{open:!1}))},handlePaneResize(e){const t=parseInt(e.panes[0].size,10);pr.setItem(this.paneConfigID,JSON.stringify(t)),this.listPaneSize=t,this.$emit("resizeList",{size:t}),Ne.debug("[NcAppContent] pane config",{listPaneSize:t})},restorePaneConfig(){const e=parseInt(pr.getItem(this.paneConfigID),10);if(!isNaN(e)&&e!==this.listPaneSize)return Ne.debug("[NcAppContent] pane config",{listPaneSize:e}),this.listPaneSize=e,e},hideDetails(){this.$emit("update:showDetails",!1)}}},dl={key:0,class:"hidden-visually"},gl={key:1,class:"app-content-wrapper"};function ml(e,t,n,r,o,i){const l=ut("NcAppContentDetailsToggle"),a=ut("Pane"),s=ut("Splitpanes");return ne(),we("main",{id:"app-content-vue",class:qe(["app-content no-snapper",{"app-content--has-list":!!e.$slots.list}])},[n.pageHeading?(ne(),we("h1",dl,Ve(n.pageHeading),1)):Ie("",!0),e.$slots.list?(ne(),we(jn,{key:1},[r.isMobile||n.layout==="no-split"?(ne(),we("div",{key:0,class:qe(["app-content-wrapper app-content-wrapper--no-split",{"app-content-wrapper--show-details":n.showDetails,"app-content-wrapper--show-list":!n.showDetails,"app-content-wrapper--mobile":r.isMobile}])},[n.showDetails?(ne(),We(l,{key:0,onClick:ui(i.hideDetails,["stop","prevent"])},null,8,["onClick"])):Ie("",!0),bn(Ue("div",null,[Xe(e.$slots,"list",{},void 0,!0)],512),[[wn,!n.showDetails]]),n.showDetails?Xe(e.$slots,"default",{key:1},void 0,!0):Ie("",!0)],2)):n.layout==="vertical-split"||n.layout==="horizontal-split"?(ne(),we("div",gl,[$e(s,{horizontal:n.layout==="horizontal-split",class:qe(["default-theme",{"splitpanes--horizontal":n.layout==="horizontal-split","splitpanes--vertical":n.layout==="vertical-split"}]),rtl:r.isRtl,onResized:i.handlePaneResize},{default:Re(()=>[$e(a,{class:"splitpanes__pane-list",size:o.listPaneSize||i.paneDefaults.list.size,"min-size":i.paneDefaults.list.min,"max-size":i.paneDefaults.list.max},{default:Re(()=>[Xe(e.$slots,"list",{},void 0,!0)]),_:3},8,["size","min-size","max-size"]),$e(a,{class:"splitpanes__pane-details",size:i.detailsPaneSize,"min-size":i.paneDefaults.details.min,"max-size":i.paneDefaults.details.max},{default:Re(()=>[Xe(e.$slots,"default",{},void 0,!0)]),_:3},8,["size","min-size","max-size"])]),_:3},8,["horizontal","class","rtl","onResized"])])):Ie("",!0)],64)):Ie("",!0),e.$slots.list?Ie("",!0):Xe(e.$slots,"default",{key:2},void 0,!0)],2)}const hd=pt(hl,[["render",ml],["__scopeId","data-v-a2641cc2"]]),vl=Symbol.for("NcContent:setHasAppNavigation"),yl=Symbol.for("NcContent:selector");je();const xl=`<!-- - - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors - - SPDX-License-Identifier: AGPL-3.0-or-later ---> -<svg width="395" height="314" viewBox="0 0 395 314" fill="none" xmlns="http://www.w3.org/2000/svg"> -<rect width="395" height="314" rx="11" fill="#439DCD"/> -<rect x="13" y="51" width="366" height="248" rx="8" fill="white"/> -<rect x="22" y="111" width="92" height="12" rx="6" fill="#DEDEDE"/> -<rect x="22" y="127" width="92" height="12" rx="6" fill="#DEDEDE"/> -<rect x="22" y="63" width="92" height="12" rx="6" fill="#DEDEDE"/> -<rect x="22" y="191" width="92" height="12" rx="6" fill="#DEDEDE"/> -<rect x="22" y="143" width="92" height="12" rx="6" fill="#DEDEDE"/> -<rect x="22" y="79" width="92" height="12" rx="6" fill="#DEDEDE"/> -<rect x="22" y="159" width="92" height="12" rx="6" fill="#DEDEDE"/> -<rect x="22" y="95" width="92" height="12" rx="6" fill="#DEDEDE"/> -<rect x="22" y="175" width="92" height="12" rx="6" fill="#DEDEDE"/> -<path d="M288 145C277.56 147.8 265.32 149 254 149C242.68 149 230.44 147.8 220 145L218 153C225.44 155 234 156.32 242 157V209H250V185H258V209H266V157C274 156.32 282.56 155 290 153L288 145ZM254 145C258.4 145 262 141.4 262 137C262 132.6 258.4 129 254 129C249.6 129 246 132.6 246 137C246 141.4 249.6 145 254 145Z" fill="#DEDEDE"/> -<path d="M43.5358 13C38.6641 13 34.535 16.2415 33.2552 20.6333C32.143 18.3038 29.7327 16.6718 26.9564 16.6718C23.1385 16.6718 20 19.7521 20 23.4993C20 27.2465 23.1385 30.3282 26.9564 30.3282C29.7327 30.3282 32.1429 28.6952 33.2552 26.3653C34.535 30.7575 38.6641 34 43.5358 34C48.3715 34 52.4796 30.8064 53.7921 26.4637C54.9249 28.7407 57.3053 30.3282 60.0421 30.3282C63.8601 30.3282 67 27.2465 67 23.4993C67 19.7521 63.8601 16.6718 60.0421 16.6718C57.3053 16.6718 54.9249 18.2583 53.7921 20.5349C52.4796 16.1926 48.3715 13 43.5358 13ZM43.5358 17.0079C47.2134 17.0079 50.1512 19.8899 50.1512 23.4993C50.1512 27.1087 47.2134 29.9921 43.5358 29.9921C39.8583 29.9921 36.9218 27.1087 36.9218 23.4993C36.9218 19.8899 39.8583 17.0079 43.5358 17.0079ZM26.9564 20.6797C28.5677 20.6797 29.8307 21.9179 29.8307 23.4993C29.8307 25.0807 28.5677 26.3203 26.9564 26.3203C25.3452 26.3203 24.0836 25.0807 24.0836 23.4993C24.0836 21.9179 25.3452 20.6797 26.9564 20.6797ZM60.0421 20.6797C61.6534 20.6797 62.9164 21.9179 62.9164 23.4993C62.9164 25.0807 61.6534 26.3203 60.0421 26.3203C58.4309 26.3203 57.1693 25.0807 57.1693 23.4993C57.1693 21.9179 58.4309 20.6797 60.0421 20.6797Z" fill="white"/> -<rect x="79" y="20" width="8" height="8" rx="4" fill="white"/> -<rect x="99" y="20" width="8" height="8" rx="4" fill="white"/> -<rect x="119" y="20" width="8" height="8" rx="4" fill="white"/> -<rect x="139" y="20" width="8" height="8" rx="4" fill="white"/> -<rect x="159" y="20" width="8" height="8" rx="4" fill="white"/> -<rect x="179" y="20" width="8" height="8" rx="4" fill="white"/> -<path fill-rule="evenodd" clip-rule="evenodd" d="M12 0C5.37258 0 0 5.37259 0 12V302C0 308.627 5.37259 314 12 314H383C389.627 314 395 308.627 395 302V12C395 5.37258 389.627 0 383 0H12ZM140 44C132.268 44 126 50.268 126 58V292C126 299.732 132.268 306 140 306H372C379.732 306 386 299.732 386 292V58C386 50.268 379.732 44 372 44H140Z" fill="black" fill-opacity="0.35"/> -</svg> -`,kl=`<!-- - - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors - - SPDX-License-Identifier: AGPL-3.0-or-later ---> -<svg width="395" height="314" viewBox="0 0 395 314" fill="none" xmlns="http://www.w3.org/2000/svg"> -<rect width="395" height="314" rx="11" fill="#439DCD"/> -<rect x="13" y="51" width="366" height="248" rx="8" fill="white"/> -<rect x="22" y="111" width="92" height="12" rx="6" fill="#DEDEDE"/> -<rect x="22" y="127" width="92" height="12" rx="6" fill="#DEDEDE"/> -<rect x="22" y="63" width="92" height="12" rx="6" fill="#DEDEDE"/> -<rect x="22" y="191" width="92" height="12" rx="6" fill="#DEDEDE"/> -<rect x="22" y="143" width="92" height="12" rx="6" fill="#DEDEDE"/> -<rect x="22" y="79" width="92" height="12" rx="6" fill="#DEDEDE"/> -<rect x="22" y="159" width="92" height="12" rx="6" fill="#DEDEDE"/> -<rect x="22" y="95" width="92" height="12" rx="6" fill="#DEDEDE"/> -<rect x="22" y="175" width="92" height="12" rx="6" fill="#DEDEDE"/> -<path d="M288 145C277.56 147.8 265.32 149 254 149C242.68 149 230.44 147.8 220 145L218 153C225.44 155 234 156.32 242 157V209H250V185H258V209H266V157C274 156.32 282.56 155 290 153L288 145ZM254 145C258.4 145 262 141.4 262 137C262 132.6 258.4 129 254 129C249.6 129 246 132.6 246 137C246 141.4 249.6 145 254 145Z" fill="#DEDEDE"/> -<path d="M43.5358 13C38.6641 13 34.535 16.2415 33.2552 20.6333C32.143 18.3038 29.7327 16.6718 26.9564 16.6718C23.1385 16.6718 20 19.7521 20 23.4993C20 27.2465 23.1385 30.3282 26.9564 30.3282C29.7327 30.3282 32.1429 28.6952 33.2552 26.3653C34.535 30.7575 38.6641 34 43.5358 34C48.3715 34 52.4796 30.8064 53.7921 26.4637C54.9249 28.7407 57.3053 30.3282 60.0421 30.3282C63.8601 30.3282 67 27.2465 67 23.4993C67 19.7521 63.8601 16.6718 60.0421 16.6718C57.3053 16.6718 54.9249 18.2583 53.7921 20.5349C52.4796 16.1926 48.3715 13 43.5358 13ZM43.5358 17.0079C47.2134 17.0079 50.1512 19.8899 50.1512 23.4993C50.1512 27.1087 47.2134 29.9921 43.5358 29.9921C39.8583 29.9921 36.9218 27.1087 36.9218 23.4993C36.9218 19.8899 39.8583 17.0079 43.5358 17.0079ZM26.9564 20.6797C28.5677 20.6797 29.8307 21.9179 29.8307 23.4993C29.8307 25.0807 28.5677 26.3203 26.9564 26.3203C25.3452 26.3203 24.0836 25.0807 24.0836 23.4993C24.0836 21.9179 25.3452 20.6797 26.9564 20.6797ZM60.0421 20.6797C61.6534 20.6797 62.9164 21.9179 62.9164 23.4993C62.9164 25.0807 61.6534 26.3203 60.0421 26.3203C58.4309 26.3203 57.1693 25.0807 57.1693 23.4993C57.1693 21.9179 58.4309 20.6797 60.0421 20.6797Z" fill="white"/> -<rect x="79" y="20" width="8" height="8" rx="4" fill="white"/> -<rect x="99" y="20" width="8" height="8" rx="4" fill="white"/> -<rect x="119" y="20" width="8" height="8" rx="4" fill="white"/> -<rect x="139" y="20" width="8" height="8" rx="4" fill="white"/> -<rect x="159" y="20" width="8" height="8" rx="4" fill="white"/> -<rect x="179" y="20" width="8" height="8" rx="4" fill="white"/> -<path fill-rule="evenodd" clip-rule="evenodd" d="M12 0C5.37258 0 0 5.37259 0 12V302C0 308.627 5.37259 314 12 314H383C389.627 314 395 308.627 395 302V12C395 5.37258 389.627 0 383 0H12ZM112 44C119.732 44 126 50.268 126 58V292C126 299.732 119.732 306 112 306H20C12.268 306 6 299.732 6 292V58C6 50.268 12.268 44 20 44H112Z" fill="black" fill-opacity="0.35"/> -</svg> -`,bl={class:"vue-skip-actions__container"},wl={class:"vue-skip-actions__headline"},Cl={class:"vue-skip-actions__buttons"},Sl=Gt({__name:"NcContent",props:{appName:{}},setup(e){const t=e;De(vl,a),De(yl,"#content-vue"),De("appName",Q(()=>t.appName));const n=Rn(),r=xe(!1),o=xe(),i=Q(()=>o.value==="navigation"?kl:xl);Oo(()=>{const s=document.getElementById("skip-actions");s&&(s.innerHTML="",s.classList.add("vue-skip-actions"))});function l(){Ut("toggle-navigation",{open:!0}),st(()=>{window.location.hash="app-navigation-vue",document.getElementById("app-navigation-vue").focus()})}function a(s){r.value=s,o.value||(o.value="navigation")}return(s,u)=>(ne(),we("div",{id:"content-vue",class:qe(["content",`app-${s.appName.toLowerCase()}`])},[(ne(),We(Lo,{to:"#skip-actions"},[Ue("div",bl,[Ue("div",wl,Ve(se(Be)("Keyboard navigation help")),1),Ue("div",Cl,[bn($e(Pt,{href:"#app-navigation-vue",variant:"tertiary",onClick:ui(l,["prevent"]),onFocusin:u[0]||(u[0]=f=>o.value="navigation"),onMouseover:u[1]||(u[1]=f=>o.value="navigation")},{default:Re(()=>[Cn(Ve(se(Be)("Skip to app navigation")),1)]),_:1},512),[[wn,r.value]]),$e(Pt,{href:"#app-content-vue",variant:"tertiary",onFocusin:u[2]||(u[2]=f=>o.value="content"),onMouseover:u[3]||(u[3]=f=>o.value="content")},{default:Re(()=>[Cn(Ve(se(Be)("Skip to main content")),1)]),_:1})]),bn($e(Bn,{class:"vue-skip-actions__image",svg:i.value,size:"auto"},null,8,["svg"]),[[wn,!se(n)]])])])),Xe(s.$slots,"default",{},void 0,!0)],2))}}),dd=pt(Sl,[["__scopeId","data-v-d9b0d7e8"]]);je(Uo);const El=2e3;function zl(e){const t=xe(!1),n=Q(()=>t.value?Bo:Ho),r=Q(()=>t.value?Be("Copied"):Be("Copy to clipboard"));async function o(){if(t.value)return;const i=Fo(e);try{await navigator.clipboard.writeText(i)}catch{prompt("",i)}t.value=!0,setTimeout(()=>{t.value=!1},El)}return{isCopied:t,copy:o,icon:n,altText:r}}window._vue_richtext_widgets??={},window._registerWidget??=(e,t,n,r)=>{Pl(e,t,n,r)};function Pl(e,t,n=()=>{},r){const o={hasInteractiveView:!0,fullWidth:!1,...r};if(window._vue_richtext_widgets[e]){Ne.error(`[ReferencePicker]: Widget for id ${e} already registered`);return}window._vue_richtext_widgets[e]={id:e,callback:t,onDestroy:n,...o}}function Dl(e,t){const{richObjectType:n,richObject:r,accessible:o,interactive:i}=t;if(n!=="open-graph"){if(!window._vue_richtext_widgets[n]){Ne.error("Widget for rich object type "+n+" not registered");return}window._vue_richtext_widgets[n].callback(e,{richObjectType:n,richObject:r,accessible:o,interactive:i})}}function Il(e,t){e!=="open-graph"&&window._vue_richtext_widgets[e]&&window._vue_richtext_widgets[e].onDestroy(t)}function _l(e){return!!window._vue_richtext_widgets[e]}function Al(e){return!!window._vue_richtext_widgets[e]?.hasInteractiveView}function Tl(e){return!!window._vue_richtext_widgets[e]?.fullWidth}window._vue_richtext_custom_picker_elements??={},window._registerCustomPickerElement??=Ml;function Ml(e,t,n=()=>{},r="large"){if(window._vue_richtext_custom_picker_elements[e]){Ne.error(`Custom reference picker element for id ${e} already registered`);return}window._vue_richtext_custom_picker_elements[e]={id:e,callback:t,onDestroy:n,size:r}}je(qo),Be("Any link"),$o("core","filetypes/link.svg"),window._vue_richtext_reference_providers??=qt("core","reference-provider-list",[]),window._vue_richtext_reference_provider_timestamps??=qt("core","reference-provider-timestamps",{}),je(ci,Wo),je();const Ol=["src"],Ll={class:"widget-default--details"},Fl={class:"widget-default--name"},Rl={class:"widget-default--link"},Nl=180*1e3,jl=Gt({__name:"NcReferenceWidget",props:{reference:{},interactive:{type:Boolean,default:!0},interactiveOptIn:{type:Boolean,default:!1}},setup(e){const t=e,n=Ke(Vo,null),r=xe(!1),o=ur("customWidget"),i=ur("widgetRoot"),{width:l}=_o(i);Ao(i,([O])=>{st(()=>{r.value=O.isIntersecting})});const a=xe(!1),s=xe(!1);let u=null;const f=Q(()=>!t.interactiveOptIn&&t.interactive||a.value),c=Q(()=>Tl(t.reference.richObjectType)),h=Q(()=>_l(t.reference.richObjectType)),p=Q(()=>h.value&&Al(t.reference.richObjectType)),m=Q(()=>!t.reference.accessible),x=Q(()=>[450,550,650,1/0].findIndex(O=>l.value<O)),k=Q(()=>{if(x.value===0)return{display:"none"};const O=x.value;return{lineClamp:O,webkitLineClamp:O}}),v=Q(()=>{const O=t.reference.openGraphObject.link;return O?O.startsWith("https://")?O.substring(8):O.startsWith("http://")?O.substring(7):O:""}),S=Q(()=>pi(n,t.reference.openGraphObject.link)),P=Q(()=>S.value?fi:"a"),M=Q(()=>S.value?{to:S.value}:{href:t.reference.openGraphObject.link,target:"_blank"});at(r,O=>{if(!O){u=setTimeout(()=>{r.value||V()},Nl);return}u&&(clearTimeout(u),u=null),s.value||C()},{immediate:!0}),Yt(()=>{V()});function U(){a.value=!0,C()}function C(){if(!o.value||t.reference.richObjectType==="open-graph")return;o.value.innerHTML="";const O=document.createElement("div");O.style.width="100%",o.value.appendChild(O),st(()=>{Dl(O,{...t.reference,interactive:f.value}),s.value=!0})}function V(){s.value&&i.value&&(Il(t.reference.richObjectType,i.value),s.value=!1)}return(O,$)=>(ne(),we("div",{ref_key:"widgetRoot",ref:i,class:qe({"toggle-interactive":p.value&&!f.value})},[O.reference&&h.value?(ne(),we("div",{key:0,ref_key:"customWidget",ref:o,class:qe(["widget-custom",{"full-width":c.value}])},null,2)):!m.value&&O.reference&&O.reference.openGraphObject&&!h.value?(ne(),We(ai(P.value),Ro({key:1},M.value,{rel:"noopener noreferrer",class:"widget-default"}),{default:Re(()=>[O.reference.openGraphObject.thumb?(ne(),we("img",{key:0,class:"widget-default--image",src:O.reference.openGraphObject.thumb},null,8,Ol)):Ie("",!0),Ue("div",Ll,[Ue("p",Fl,Ve(O.reference.openGraphObject.name),1),Ue("p",{class:"widget-default--description",style:si(k.value)},Ve(O.reference.openGraphObject.description),5),Ue("p",Rl,Ve(v.value),1)])]),_:1},16)):Ie("",!0),O.interactiveOptIn&&p.value&&!f.value?(ne(),We(Pt,{key:2,class:"toggle-interactive--button",onClick:U},{default:Re(()=>[Cn(Ve(se(Be)("Enable interactive view")),1)]),_:1})):Ie("",!0)],2))}}),Bl=pt(jl,[["__scopeId","data-v-8ce33442"]]);je(Zo),je(Go,ci,Yo),je(Xo,Ko);const di=-1,Kt=0,Ct=1,$t=2,Hn=3,Vn=4,Un=5,qn=6,gi=7,mi=8,hr=typeof self=="object"?self:globalThis,Hl=(e,t)=>{const n=(o,i)=>(e.set(i,o),o),r=o=>{if(e.has(o))return e.get(o);const[i,l]=t[o];switch(i){case Kt:case di:return n(l,o);case Ct:{const a=n([],o);for(const s of l)a.push(r(s));return a}case $t:{const a=n({},o);for(const[s,u]of l)a[r(s)]=r(u);return a}case Hn:return n(new Date(l),o);case Vn:{const{source:a,flags:s}=l;return n(new RegExp(a,s),o)}case Un:{const a=n(new Map,o);for(const[s,u]of l)a.set(r(s),r(u));return a}case qn:{const a=n(new Set,o);for(const s of l)a.add(r(s));return a}case gi:{const{name:a,message:s}=l;return n(new hr[a](s),o)}case mi:return n(BigInt(l),o);case"BigInt":return n(Object(BigInt(l)),o);case"ArrayBuffer":return n(new Uint8Array(l).buffer,l);case"DataView":{const{buffer:a}=new Uint8Array(l);return n(new DataView(a),l)}}return n(new hr[i](l),o)};return r},dr=e=>Hl(new Map,e)(0),rt="",{toString:Vl}={},{keys:Ul}=Object,yt=e=>{const t=typeof e;if(t!=="object"||!e)return[Kt,t];const n=Vl.call(e).slice(8,-1);switch(n){case"Array":return[Ct,rt];case"Object":return[$t,rt];case"Date":return[Hn,rt];case"RegExp":return[Vn,rt];case"Map":return[Un,rt];case"Set":return[qn,rt];case"DataView":return[Ct,n]}return n.includes("Array")?[Ct,n]:n.includes("Error")?[gi,n]:[$t,n]},Rt=([e,t])=>e===Kt&&(t==="function"||t==="symbol"),ql=(e,t,n,r)=>{const o=(l,a)=>{const s=r.push(l)-1;return n.set(a,s),s},i=l=>{if(n.has(l))return n.get(l);let[a,s]=yt(l);switch(a){case Kt:{let f=l;switch(s){case"bigint":a=mi,f=l.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+s);f=null;break;case"undefined":return o([di],l)}return o([a,f],l)}case Ct:{if(s){let h=l;return s==="DataView"?h=new Uint8Array(l.buffer):s==="ArrayBuffer"&&(h=new Uint8Array(l)),o([s,[...h]],l)}const f=[],c=o([a,f],l);for(const h of l)f.push(i(h));return c}case $t:{if(s)switch(s){case"BigInt":return o([s,l.toString()],l);case"Boolean":case"Number":case"String":return o([s,l.valueOf()],l)}if(t&&"toJSON"in l)return i(l.toJSON());const f=[],c=o([a,f],l);for(const h of Ul(l))(e||!Rt(yt(l[h])))&&f.push([i(h),i(l[h])]);return c}case Hn:return o([a,l.toISOString()],l);case Vn:{const{source:f,flags:c}=l;return o([a,{source:f,flags:c}],l)}case Un:{const f=[],c=o([a,f],l);for(const[h,p]of l)(e||!(Rt(yt(h))||Rt(yt(p))))&&f.push([i(h),i(p)]);return c}case qn:{const f=[],c=o([a,f],l);for(const h of l)(e||!Rt(yt(h)))&&f.push(i(h));return c}}const{message:u}=l;return o([a,{name:s,message:u}],l)};return i},gr=(e,{json:t,lossy:n}={})=>{const r=[];return ql(!(t||n),!!t,new Map,r)(e),r},Qe=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?dr(gr(e,t)):structuredClone(e):(e,t)=>dr(gr(e,t)),vi=(function(e){if(e==null)return Zl;if(typeof e=="string")return Wl(e);if(typeof e=="object")return $l(e);if(typeof e=="function")return $n(e);throw new Error("Expected function, string, or array as `test`")});function $l(e){const t=[];let n=-1;for(;++n<e.length;)t[n]=vi(e[n]);return $n(r);function r(...o){let i=-1;for(;++i<t.length;)if(t[i].apply(this,o))return!0;return!1}}function Wl(e){return $n(t);function t(n){return n.tagName===e}}function $n(e){return t;function t(n,r,o){return!!(Yl(n)&&e.call(this,n,typeof r=="number"?r:void 0,o||void 0))}}function Zl(e){return!!(e&&typeof e=="object"&&"type"in e&&e.type==="element"&&"tagName"in e&&typeof e.tagName=="string")}function Yl(e){return e!==null&&typeof e=="object"&&"type"in e&&"tagName"in e}const Gl=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,Kl=/^[a-zA-Z]:\\/;function Xl(e){if(typeof e!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof e}\``);return Kl.test(e)?!1:Gl.test(e)}function Ql(e){const t=String(e||"").trim();return t?t.split(/[ \t\n\r\f]+/g):[]}function Jl(e){return e.join(" ").trim()}const ea=["http","https"],ta=["nofollow"],na={};function ra(e){const t=e||na,n=t.protocols||ea,r=vi(t.test);return function(o){Ze(o,"element",function(i,l,a){if(i.tagName==="a"&&typeof i.properties.href=="string"&&r(i,l,a)){const s=i.properties.href;if(Xl(s)?n.includes(s.slice(0,s.indexOf(":"))):s.startsWith("//")){const u=xt(t.content,i),f=u&&!Array.isArray(u)?[u]:u,c=xt(t.rel,i)||ta,h=typeof c=="string"?Ql(c):c,p=xt(t.target,i),m=xt(t.properties,i);if(m&&Object.assign(i.properties,Qe(m)),h.length>0&&(i.properties.rel=[...h]),p&&(i.properties.target=p),f){const x=xt(t.contentProperties,i)||{};i.children.push({type:"element",tagName:"span",properties:Qe(x),children:Qe(f)})}}}})}}function xt(e,t){return typeof e=="function"?e(t):e}function ia(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const oa=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,la=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,aa={};function mr(e,t){return(aa.jsx?la:oa).test(e)}const sa=/[ \t\n\f\r]/g;function ua(e){return typeof e=="object"?e.type==="text"?vr(e.value):!1:vr(e)}function vr(e){return e.replace(sa,"")===""}class St{constructor(t,n,r){this.normal=n,this.property=t,r&&(this.space=r)}}St.prototype.normal={},St.prototype.property={},St.prototype.space=void 0;function yi(e,t){const n={},r={};for(const o of e)Object.assign(n,o.property),Object.assign(r,o.normal);return new St(n,r,t)}function En(e){return e.toLowerCase()}class pe{constructor(t,n){this.attribute=n,this.property=t}}pe.prototype.attribute="",pe.prototype.booleanish=!1,pe.prototype.boolean=!1,pe.prototype.commaOrSpaceSeparated=!1,pe.prototype.commaSeparated=!1,pe.prototype.defined=!1,pe.prototype.mustUseProperty=!1,pe.prototype.number=!1,pe.prototype.overloadedBoolean=!1,pe.prototype.property="",pe.prototype.spaceSeparated=!1,pe.prototype.space=void 0;let ca=0;const q=et(),te=et(),zn=et(),z=et(),G=et(),ct=et(),ye=et();function et(){return 2**++ca}const Pn=Object.freeze(Object.defineProperty({__proto__:null,boolean:q,booleanish:te,commaOrSpaceSeparated:ye,commaSeparated:ct,number:z,overloadedBoolean:zn,spaceSeparated:G},Symbol.toStringTag,{value:"Module"})),rn=Object.keys(Pn);class Wn extends pe{constructor(t,n,r,o){let i=-1;if(super(t,n),yr(this,"space",o),typeof r=="number")for(;++i<rn.length;){const l=rn[i];yr(this,rn[i],(r&Pn[l])===Pn[l])}}}Wn.prototype.defined=!0;function yr(e,t,n){n&&(e[t]=n)}function ht(e){const t={},n={};for(const[r,o]of Object.entries(e.properties)){const i=new Wn(r,e.transform(e.attributes||{},r),o,e.space);e.mustUseProperty&&e.mustUseProperty.includes(r)&&(i.mustUseProperty=!0),t[r]=i,n[En(r)]=r,n[En(i.attribute)]=r}return new St(t,n,e.space)}const xi=ht({properties:{ariaActiveDescendant:null,ariaAtomic:te,ariaAutoComplete:null,ariaBusy:te,ariaChecked:te,ariaColCount:z,ariaColIndex:z,ariaColSpan:z,ariaControls:G,ariaCurrent:null,ariaDescribedBy:G,ariaDetails:null,ariaDisabled:te,ariaDropEffect:G,ariaErrorMessage:null,ariaExpanded:te,ariaFlowTo:G,ariaGrabbed:te,ariaHasPopup:null,ariaHidden:te,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:G,ariaLevel:z,ariaLive:null,ariaModal:te,ariaMultiLine:te,ariaMultiSelectable:te,ariaOrientation:null,ariaOwns:G,ariaPlaceholder:null,ariaPosInSet:z,ariaPressed:te,ariaReadOnly:te,ariaRelevant:null,ariaRequired:te,ariaRoleDescription:G,ariaRowCount:z,ariaRowIndex:z,ariaRowSpan:z,ariaSelected:te,ariaSetSize:z,ariaSort:null,ariaValueMax:z,ariaValueMin:z,ariaValueNow:z,ariaValueText:null,role:null},transform(e,t){return t==="role"?t:"aria-"+t.slice(4).toLowerCase()}});function ki(e,t){return t in e?e[t]:t}function bi(e,t){return ki(e,t.toLowerCase())}const fa=ht({attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:ct,acceptCharset:G,accessKey:G,action:null,allow:null,allowFullScreen:q,allowPaymentRequest:q,allowUserMedia:q,alt:null,as:null,async:q,autoCapitalize:null,autoComplete:G,autoFocus:q,autoPlay:q,blocking:G,capture:null,charSet:null,checked:q,cite:null,className:G,cols:z,colSpan:null,content:null,contentEditable:te,controls:q,controlsList:G,coords:z|ct,crossOrigin:null,data:null,dateTime:null,decoding:null,default:q,defer:q,dir:null,dirName:null,disabled:q,download:zn,draggable:te,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:q,formTarget:null,headers:G,height:z,hidden:zn,high:z,href:null,hrefLang:null,htmlFor:G,httpEquiv:G,id:null,imageSizes:null,imageSrcSet:null,inert:q,inputMode:null,integrity:null,is:null,isMap:q,itemId:null,itemProp:G,itemRef:G,itemScope:q,itemType:G,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:q,low:z,manifest:null,max:null,maxLength:z,media:null,method:null,min:null,minLength:z,multiple:q,muted:q,name:null,nonce:null,noModule:q,noValidate:q,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeToggle:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onScrollEnd:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:q,optimum:z,pattern:null,ping:G,placeholder:null,playsInline:q,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:q,referrerPolicy:null,rel:G,required:q,reversed:q,rows:z,rowSpan:z,sandbox:G,scope:null,scoped:q,seamless:q,selected:q,shadowRootClonable:q,shadowRootDelegatesFocus:q,shadowRootMode:null,shape:null,size:z,sizes:null,slot:null,span:z,spellCheck:te,src:null,srcDoc:null,srcLang:null,srcSet:null,start:z,step:null,style:null,tabIndex:z,target:null,title:null,translate:null,type:null,typeMustMatch:q,useMap:null,value:te,width:z,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:G,axis:null,background:null,bgColor:null,border:z,borderColor:null,bottomMargin:z,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:q,declare:q,event:null,face:null,frame:null,frameBorder:null,hSpace:z,leftMargin:z,link:null,longDesc:null,lowSrc:null,marginHeight:z,marginWidth:z,noResize:q,noHref:q,noShade:q,noWrap:q,object:null,profile:null,prompt:null,rev:null,rightMargin:z,rules:null,scheme:null,scrolling:te,standby:null,summary:null,text:null,topMargin:z,valueType:null,version:null,vAlign:null,vLink:null,vSpace:z,allowTransparency:null,autoCorrect:null,autoSave:null,disablePictureInPicture:q,disableRemotePlayback:q,prefix:null,property:null,results:z,security:null,unselectable:null},space:"html",transform:bi}),pa=ht({attributes:{accentHeight:"accent-height",alignmentBaseline:"alignment-baseline",arabicForm:"arabic-form",baselineShift:"baseline-shift",capHeight:"cap-height",className:"class",clipPath:"clip-path",clipRule:"clip-rule",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",crossOrigin:"crossorigin",dataType:"datatype",dominantBaseline:"dominant-baseline",enableBackground:"enable-background",fillOpacity:"fill-opacity",fillRule:"fill-rule",floodColor:"flood-color",floodOpacity:"flood-opacity",fontFamily:"font-family",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",glyphName:"glyph-name",glyphOrientationHorizontal:"glyph-orientation-horizontal",glyphOrientationVertical:"glyph-orientation-vertical",hrefLang:"hreflang",horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",horizOriginY:"horiz-origin-y",imageRendering:"image-rendering",letterSpacing:"letter-spacing",lightingColor:"lighting-color",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",navDown:"nav-down",navDownLeft:"nav-down-left",navDownRight:"nav-down-right",navLeft:"nav-left",navNext:"nav-next",navPrev:"nav-prev",navRight:"nav-right",navUp:"nav-up",navUpLeft:"nav-up-left",navUpRight:"nav-up-right",onAbort:"onabort",onActivate:"onactivate",onAfterPrint:"onafterprint",onBeforePrint:"onbeforeprint",onBegin:"onbegin",onCancel:"oncancel",onCanPlay:"oncanplay",onCanPlayThrough:"oncanplaythrough",onChange:"onchange",onClick:"onclick",onClose:"onclose",onCopy:"oncopy",onCueChange:"oncuechange",onCut:"oncut",onDblClick:"ondblclick",onDrag:"ondrag",onDragEnd:"ondragend",onDragEnter:"ondragenter",onDragExit:"ondragexit",onDragLeave:"ondragleave",onDragOver:"ondragover",onDragStart:"ondragstart",onDrop:"ondrop",onDurationChange:"ondurationchange",onEmptied:"onemptied",onEnd:"onend",onEnded:"onended",onError:"onerror",onFocus:"onfocus",onFocusIn:"onfocusin",onFocusOut:"onfocusout",onHashChange:"onhashchange",onInput:"oninput",onInvalid:"oninvalid",onKeyDown:"onkeydown",onKeyPress:"onkeypress",onKeyUp:"onkeyup",onLoad:"onload",onLoadedData:"onloadeddata",onLoadedMetadata:"onloadedmetadata",onLoadStart:"onloadstart",onMessage:"onmessage",onMouseDown:"onmousedown",onMouseEnter:"onmouseenter",onMouseLeave:"onmouseleave",onMouseMove:"onmousemove",onMouseOut:"onmouseout",onMouseOver:"onmouseover",onMouseUp:"onmouseup",onMouseWheel:"onmousewheel",onOffline:"onoffline",onOnline:"ononline",onPageHide:"onpagehide",onPageShow:"onpageshow",onPaste:"onpaste",onPause:"onpause",onPlay:"onplay",onPlaying:"onplaying",onPopState:"onpopstate",onProgress:"onprogress",onRateChange:"onratechange",onRepeat:"onrepeat",onReset:"onreset",onResize:"onresize",onScroll:"onscroll",onSeeked:"onseeked",onSeeking:"onseeking",onSelect:"onselect",onShow:"onshow",onStalled:"onstalled",onStorage:"onstorage",onSubmit:"onsubmit",onSuspend:"onsuspend",onTimeUpdate:"ontimeupdate",onToggle:"ontoggle",onUnload:"onunload",onVolumeChange:"onvolumechange",onWaiting:"onwaiting",onZoom:"onzoom",overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pointerEvents:"pointer-events",referrerPolicy:"referrerpolicy",renderingIntent:"rendering-intent",shapeRendering:"shape-rendering",stopColor:"stop-color",stopOpacity:"stop-opacity",strikethroughPosition:"strikethrough-position",strikethroughThickness:"strikethrough-thickness",strokeDashArray:"stroke-dasharray",strokeDashOffset:"stroke-dashoffset",strokeLineCap:"stroke-linecap",strokeLineJoin:"stroke-linejoin",strokeMiterLimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",tabIndex:"tabindex",textAnchor:"text-anchor",textDecoration:"text-decoration",textRendering:"text-rendering",transformOrigin:"transform-origin",typeOf:"typeof",underlinePosition:"underline-position",underlineThickness:"underline-thickness",unicodeBidi:"unicode-bidi",unicodeRange:"unicode-range",unitsPerEm:"units-per-em",vAlphabetic:"v-alphabetic",vHanging:"v-hanging",vIdeographic:"v-ideographic",vMathematical:"v-mathematical",vectorEffect:"vector-effect",vertAdvY:"vert-adv-y",vertOriginX:"vert-origin-x",vertOriginY:"vert-origin-y",wordSpacing:"word-spacing",writingMode:"writing-mode",xHeight:"x-height",playbackOrder:"playbackorder",timelineBegin:"timelinebegin"},properties:{about:ye,accentHeight:z,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:z,amplitude:z,arabicForm:null,ascent:z,attributeName:null,attributeType:null,azimuth:z,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:z,by:null,calcMode:null,capHeight:z,className:G,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:z,diffuseConstant:z,direction:null,display:null,dur:null,divisor:z,dominantBaseline:null,download:q,dx:null,dy:null,edgeMode:null,editable:null,elevation:z,enableBackground:null,end:null,event:null,exponent:z,externalResourcesRequired:null,fill:null,fillOpacity:z,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:ct,g2:ct,glyphName:ct,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:z,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:z,horizOriginX:z,horizOriginY:z,id:null,ideographic:z,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:z,k:z,k1:z,k2:z,k3:z,k4:z,kernelMatrix:ye,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:z,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:z,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,onZoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:z,overlineThickness:z,paintOrder:null,panose1:null,path:null,pathLength:z,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:G,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:z,pointsAtY:z,pointsAtZ:z,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:ye,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:ye,rev:ye,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:ye,requiredFeatures:ye,requiredFonts:ye,requiredFormats:ye,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:z,specularExponent:z,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:z,strikethroughThickness:z,string:null,stroke:null,strokeDashArray:ye,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:z,strokeOpacity:z,strokeWidth:null,style:null,surfaceScale:z,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:ye,tabIndex:z,tableValues:null,target:null,targetX:z,targetY:z,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:ye,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:z,underlineThickness:z,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:z,values:null,vAlphabetic:z,vMathematical:z,vectorEffect:null,vHanging:z,vIdeographic:z,version:null,vertAdvY:z,vertOriginX:z,vertOriginY:z,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:z,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null},space:"svg",transform:ki}),wi=ht({properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null},space:"xlink",transform(e,t){return"xlink:"+t.slice(5).toLowerCase()}}),Ci=ht({attributes:{xmlnsxlink:"xmlns:xlink"},properties:{xmlnsXLink:null,xmlns:null},space:"xmlns",transform:bi}),Si=ht({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:"xml",transform(e,t){return"xml:"+t.slice(3).toLowerCase()}}),ha={classId:"classID",dataType:"datatype",itemId:"itemID",strokeDashArray:"strokeDasharray",strokeDashOffset:"strokeDashoffset",strokeLineCap:"strokeLinecap",strokeLineJoin:"strokeLinejoin",strokeMiterLimit:"strokeMiterlimit",typeOf:"typeof",xLinkActuate:"xlinkActuate",xLinkArcRole:"xlinkArcrole",xLinkHref:"xlinkHref",xLinkRole:"xlinkRole",xLinkShow:"xlinkShow",xLinkTitle:"xlinkTitle",xLinkType:"xlinkType",xmlnsXLink:"xmlnsXlink"},da=/[A-Z]/g,xr=/-[a-z]/g,ga=/^data[-\w.:]+$/i;function ma(e,t){const n=En(t);let r=t,o=pe;if(n in e.normal)return e.property[e.normal[n]];if(n.length>4&&n.slice(0,4)==="data"&&ga.test(t)){if(t.charAt(4)==="-"){const i=t.slice(5).replace(xr,ya);r="data"+i.charAt(0).toUpperCase()+i.slice(1)}else{const i=t.slice(4);if(!xr.test(i)){let l=i.replace(da,va);l.charAt(0)!=="-"&&(l="-"+l),t="data"+l}}o=Wn}return new o(r,t)}function va(e){return"-"+e.toLowerCase()}function ya(e){return e.charAt(1).toUpperCase()}const xa=yi([xi,fa,wi,Ci,Si],"html"),Zn=yi([xi,pa,wi,Ci,Si],"svg");var it={},on,kr;function ka(){if(kr)return on;kr=1;var e=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,t=/\n/g,n=/^\s*/,r=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,o=/^:\s*/,i=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,l=/^[;\s]*/,a=/^\s+|\s+$/g,s=` -`,u="/",f="*",c="",h="comment",p="declaration";on=function(x,k){if(typeof x!="string")throw new TypeError("First argument must be a string");if(!x)return[];k=k||{};var v=1,S=1;function P(R){var T=R.match(t);T&&(v+=T.length);var j=R.lastIndexOf(s);S=~j?R.length-j:S+R.length}function M(){var R={line:v,column:S};return function(T){return T.position=new U(R),O(),T}}function U(R){this.start=R,this.end={line:v,column:S},this.source=k.source}U.prototype.content=x;function C(R){var T=new Error(k.source+":"+v+":"+S+": "+R);if(T.reason=R,T.filename=k.source,T.line=v,T.column=S,T.source=x,!k.silent)throw T}function V(R){var T=R.exec(x);if(T){var j=T[0];return P(j),x=x.slice(j.length),T}}function O(){V(n)}function $(R){var T;for(R=R||[];T=y();)T!==!1&&R.push(T);return R}function y(){var R=M();if(!(u!=x.charAt(0)||f!=x.charAt(1))){for(var T=2;c!=x.charAt(T)&&(f!=x.charAt(T)||u!=x.charAt(T+1));)++T;if(T+=2,c===x.charAt(T-1))return C("End of comment missing");var j=x.slice(2,T-2);return S+=2,P(j),x=x.slice(T),S+=2,R({type:h,comment:j})}}function L(){var R=M(),T=V(r);if(T){if(y(),!V(o))return C("property missing ':'");var j=V(i),J=R({type:p,property:m(T[0].replace(e,c)),value:j?m(j[0].replace(e,c)):c});return V(l),J}}function F(){var R=[];$(R);for(var T;T=L();)T!==!1&&(R.push(T),$(R));return R}return O(),F()};function m(x){return x?x.replace(a,c):c}return on}var br;function ba(){if(br)return it;br=1;var e=it&&it.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(it,"__esModule",{value:!0}),it.default=n;const t=e(ka());function n(r,o){let i=null;if(!r||typeof r!="string")return i;const l=(0,t.default)(r),a=typeof o=="function";return l.forEach(s=>{if(s.type!=="declaration")return;const{property:u,value:f}=s;a?o(u,f,s):f&&(i=i||{},i[u]=f)}),i}return it}var kt={},wr;function wa(){if(wr)return kt;wr=1,Object.defineProperty(kt,"__esModule",{value:!0}),kt.camelCase=void 0;var e=/^--[a-zA-Z0-9_-]+$/,t=/-([a-z])/g,n=/^[^-]+$/,r=/^-(webkit|moz|ms|o|khtml)-/,o=/^-(ms)-/,i=function(u){return!u||n.test(u)||e.test(u)},l=function(u,f){return f.toUpperCase()},a=function(u,f){return"".concat(f,"-")},s=function(u,f){return f===void 0&&(f={}),i(u)?u:(u=u.toLowerCase(),f.reactCompat?u=u.replace(o,a):u=u.replace(r,a),u.replace(t,l))};return kt.camelCase=s,kt}var bt,Cr;function Ca(){if(Cr)return bt;Cr=1;var e=bt&&bt.__importDefault||function(o){return o&&o.__esModule?o:{default:o}},t=e(ba()),n=wa();function r(o,i){var l={};return!o||typeof o!="string"||(0,t.default)(o,function(a,s){a&&s&&(l[(0,n.camelCase)(a,i)]=s)}),l}return r.default=r,bt=r,bt}var Sa=Ca();const Ea=li(Sa),Ei=zi("end"),Yn=zi("start");function zi(e){return t;function t(n){const r=n&&n.position&&n.position[e]||{};if(typeof r.line=="number"&&r.line>0&&typeof r.column=="number"&&r.column>0)return{line:r.line,column:r.column,offset:typeof r.offset=="number"&&r.offset>-1?r.offset:void 0}}}function za(e){const t=Yn(e),n=Ei(e);if(t&&n)return{start:t,end:n}}function Et(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?Sr(e.position):"start"in e||"end"in e?Sr(e):"line"in e||"column"in e?Dn(e):""}function Dn(e){return Er(e&&e.line)+":"+Er(e&&e.column)}function Sr(e){return Dn(e&&e.start)+"-"+Dn(e&&e.end)}function Er(e){return e&&typeof e=="number"?e:1}class ae extends Error{constructor(t,n,r){super(),typeof n=="string"&&(r=n,n=void 0);let o="",i={},l=!1;if(n&&("line"in n&&"column"in n?i={place:n}:"start"in n&&"end"in n?i={place:n}:"type"in n?i={ancestors:[n],place:n.position}:i={...n}),typeof t=="string"?o=t:!i.cause&&t&&(l=!0,o=t.message,i.cause=t),!i.ruleId&&!i.source&&typeof r=="string"){const s=r.indexOf(":");s===-1?i.ruleId=r:(i.source=r.slice(0,s),i.ruleId=r.slice(s+1))}if(!i.place&&i.ancestors&&i.ancestors){const s=i.ancestors[i.ancestors.length-1];s&&(i.place=s.position)}const a=i.place&&"start"in i.place?i.place.start:i.place;this.ancestors=i.ancestors||void 0,this.cause=i.cause||void 0,this.column=a?a.column:void 0,this.fatal=void 0,this.file="",this.message=o,this.line=a?a.line:void 0,this.name=Et(i.place)||"1:1",this.place=i.place||void 0,this.reason=this.message,this.ruleId=i.ruleId||void 0,this.source=i.source||void 0,this.stack=l&&i.cause&&typeof i.cause.stack=="string"?i.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}ae.prototype.file="",ae.prototype.name="",ae.prototype.reason="",ae.prototype.message="",ae.prototype.stack="",ae.prototype.column=void 0,ae.prototype.line=void 0,ae.prototype.ancestors=void 0,ae.prototype.cause=void 0,ae.prototype.fatal=void 0,ae.prototype.place=void 0,ae.prototype.ruleId=void 0,ae.prototype.source=void 0;const Gn={}.hasOwnProperty,Pa=new Map,Da=/[A-Z]/g,Ia=new Set(["table","tbody","thead","tfoot","tr"]),_a=new Set(["td","th"]),Pi="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function Aa(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let r;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");r=ja(n,t.jsxDEV)}else{if(typeof t.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof t.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");r=Na(n,t.jsx,t.jsxs)}const o={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?Zn:xa,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},i=Di(o,e,void 0);return i&&typeof i!="string"?i:o.create(e,o.Fragment,{children:i||void 0},void 0)}function Di(e,t,n){if(t.type==="element")return Ta(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return Ma(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return La(e,t,n);if(t.type==="mdxjsEsm")return Oa(e,t);if(t.type==="root")return Fa(e,t,n);if(t.type==="text")return Ra(e,t)}function Ta(e,t,n){const r=e.schema;let o=r;t.tagName.toLowerCase()==="svg"&&r.space==="html"&&(o=Zn,e.schema=o),e.ancestors.push(t);const i=_i(e,t.tagName,!1),l=Ba(e,t);let a=Xn(e,t);return Ia.has(t.tagName)&&(a=a.filter(function(s){return typeof s=="string"?!ua(s):!0})),Ii(e,l,i,t),Kn(l,a),e.ancestors.pop(),e.schema=r,e.create(t,i,l,n)}function Ma(e,t){if(t.data&&t.data.estree&&e.evaluater){const n=t.data.estree.body[0];return n.type,e.evaluater.evaluateExpression(n.expression)}Dt(e,t.position)}function Oa(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);Dt(e,t.position)}function La(e,t,n){const r=e.schema;let o=r;t.name==="svg"&&r.space==="html"&&(o=Zn,e.schema=o),e.ancestors.push(t);const i=t.name===null?e.Fragment:_i(e,t.name,!0),l=Ha(e,t),a=Xn(e,t);return Ii(e,l,i,t),Kn(l,a),e.ancestors.pop(),e.schema=r,e.create(t,i,l,n)}function Fa(e,t,n){const r={};return Kn(r,Xn(e,t)),e.create(t,e.Fragment,r,n)}function Ra(e,t){return t.value}function Ii(e,t,n,r){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=r)}function Kn(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function Na(e,t,n){return r;function r(o,i,l,a){const s=Array.isArray(l.children)?n:t;return a?s(i,l,a):s(i,l)}}function ja(e,t){return n;function n(r,o,i,l){const a=Array.isArray(i.children),s=Yn(r);return t(o,i,l,a,{columnNumber:s?s.column-1:void 0,fileName:e,lineNumber:s?s.line:void 0},void 0)}}function Ba(e,t){const n={};let r,o;for(o in t.properties)if(o!=="children"&&Gn.call(t.properties,o)){const i=Va(e,o,t.properties[o]);if(i){const[l,a]=i;e.tableCellAlignToStyle&&l==="align"&&typeof a=="string"&&_a.has(t.tagName)?r=a:n[l]=a}}if(r){const i=n.style||(n.style={});i[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=r}return n}function Ha(e,t){const n={};for(const r of t.attributes)if(r.type==="mdxJsxExpressionAttribute")if(r.data&&r.data.estree&&e.evaluater){const o=r.data.estree.body[0];o.type;const i=o.expression;i.type;const l=i.properties[0];l.type,Object.assign(n,e.evaluater.evaluateExpression(l.argument))}else Dt(e,t.position);else{const o=r.name;let i;if(r.value&&typeof r.value=="object")if(r.value.data&&r.value.data.estree&&e.evaluater){const l=r.value.data.estree.body[0];l.type,i=e.evaluater.evaluateExpression(l.expression)}else Dt(e,t.position);else i=r.value===null?!0:r.value;n[o]=i}return n}function Xn(e,t){const n=[];let r=-1;const o=e.passKeys?new Map:Pa;for(;++r<t.children.length;){const i=t.children[r];let l;if(e.passKeys){const s=i.type==="element"?i.tagName:i.type==="mdxJsxFlowElement"||i.type==="mdxJsxTextElement"?i.name:void 0;if(s){const u=o.get(s)||0;l=s+"-"+u,o.set(s,u+1)}}const a=Di(e,i,l);a!==void 0&&n.push(a)}return n}function Va(e,t,n){const r=ma(e.schema,t);if(!(n==null||typeof n=="number"&&Number.isNaN(n))){if(Array.isArray(n)&&(n=r.commaSeparated?ia(n):Jl(n)),r.property==="style"){let o=typeof n=="object"?n:Ua(e,String(n));return e.stylePropertyNameCase==="css"&&(o=qa(o)),["style",o]}return[e.elementAttributeNameCase==="react"&&r.space?ha[r.property]||r.property:r.attribute,n]}}function Ua(e,t){try{return Ea(t,{reactCompat:!0})}catch(n){if(e.ignoreInvalidStyle)return{};const r=n,o=new ae("Cannot parse `style` attribute",{ancestors:e.ancestors,cause:r,ruleId:"style",source:"hast-util-to-jsx-runtime"});throw o.file=e.filePath||void 0,o.url=Pi+"#cannot-parse-style-attribute",o}}function _i(e,t,n){let r;if(!n)r={type:"Literal",value:t};else if(t.includes(".")){const o=t.split(".");let i=-1,l;for(;++i<o.length;){const a=mr(o[i])?{type:"Identifier",name:o[i]}:{type:"Literal",value:o[i]};l=l?{type:"MemberExpression",object:l,property:a,computed:!!(i&&a.type==="Literal"),optional:!1}:a}r=l}else r=mr(t)&&!/^[a-z]/.test(t)?{type:"Identifier",name:t}:{type:"Literal",value:t};if(r.type==="Literal"){const o=r.value;return Gn.call(e.components,o)?e.components[o]:o}if(e.evaluater)return e.evaluater.evaluateExpression(r);Dt(e)}function Dt(e,t){const n=new ae("Cannot handle MDX estrees without `createEvaluater`",{ancestors:e.ancestors,place:t,ruleId:"mdx-estree",source:"hast-util-to-jsx-runtime"});throw n.file=e.filePath||void 0,n.url=Pi+"#cannot-handle-mdx-estrees-without-createevaluater",n}function qa(e){const t={};let n;for(n in e)Gn.call(e,n)&&(t[$a(n)]=e[n]);return t}function $a(e){let t=e.replace(Da,Wa);return t.slice(0,3)==="ms-"&&(t="-"+t),t}function Wa(e){return"-"+e.toLowerCase()}function Za(e){const t=this;t.compiler=n;function n(r,o){return Aa(r,{filePath:o.path,...e})}}function Ya(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function Ga(e,t,n){const r=Jo({}.ignore||[]),o=Ka(t);let i=-1;for(;++i<o.length;)el(e,"text",l);function l(s,u){let f=-1,c;for(;++f<u.length;){const h=u[f],p=c?c.children:void 0;if(r(h,p?p.indexOf(h):void 0,c))return;c=h}if(c)return a(s,u)}function a(s,u){const f=u[u.length-1],c=o[i][0],h=o[i][1];let p=0;const m=f.children.indexOf(s);let x=!1,k=[];c.lastIndex=0;let v=c.exec(s.value);for(;v;){const S=v.index,P={index:v.index,input:v.input,stack:[...u,s]};let M=h(...v,P);if(typeof M=="string"&&(M=M.length>0?{type:"text",value:M}:void 0),M===!1?c.lastIndex=S+1:(p!==S&&k.push({type:"text",value:s.value.slice(p,S)}),Array.isArray(M)?k.push(...M):M&&k.push(M),p=S+v[0].length,x=!0),!c.global)break;v=c.exec(s.value)}return x?(p<s.value.length&&k.push({type:"text",value:s.value.slice(p)}),f.children.splice(m,1,...k)):k=[s],m+k.length}}function Ka(e){const t=[];if(!Array.isArray(e))throw new TypeError("Expected find and replace tuple or list of tuples");const n=!e[0]||Array.isArray(e[0])?e:[e];let r=-1;for(;++r<n.length;){const o=n[r];t.push([Xa(o[0]),Qa(o[1])])}return t}function Xa(e){return typeof e=="string"?new RegExp(Ya(e),"g"):e}function Qa(e){return typeof e=="function"?e:function(){return e}}function Ja(e){Ga(e,[/\r?\n|\r/g,es])}function es(){return{type:"break"}}function ts(){return function(e){Ja(e)}}const ns={};function rs(e,t){const n=ns,r=typeof n.includeImageAlt=="boolean"?n.includeImageAlt:!0,o=typeof n.includeHtml=="boolean"?n.includeHtml:!0;return Ai(e,r,o)}function Ai(e,t,n){if(is(e)){if("value"in e)return e.type==="html"&&!n?"":e.value;if(t&&"alt"in e&&e.alt)return e.alt;if("children"in e)return zr(e.children,t,n)}return Array.isArray(e)?zr(e,t,n):""}function zr(e,t,n){const r=[];let o=-1;for(;++o<e.length;)r[o]=Ai(e[o],t,n);return r.join("")}function is(e){return!!(e&&typeof e=="object")}const Pr=document.createElement("i");function Qn(e){const t="&"+e+";";Pr.innerHTML=t;const n=Pr.textContent;return n.charCodeAt(n.length-1)===59&&e!=="semi"||n===t?!1:n}function Ae(e,t,n,r){const o=e.length;let i=0,l;if(t<0?t=-t>o?0:o+t:t=t>o?o:t,n=n>0?n:0,r.length<1e4)l=Array.from(r),l.unshift(t,n),e.splice(...l);else for(n&&e.splice(t,n);i<r.length;)l=r.slice(i,i+1e4),l.unshift(t,0),e.splice(...l),i+=1e4,t+=1e4}function be(e,t){return e.length>0?(Ae(e,e.length,0,t),e):t}const Dr={}.hasOwnProperty;function os(e){const t={};let n=-1;for(;++n<e.length;)ls(t,e[n]);return t}function ls(e,t){let n;for(n in t){const r=(Dr.call(e,n)?e[n]:void 0)||(e[n]={}),o=t[n];let i;if(o)for(i in o){Dr.call(r,i)||(r[i]=[]);const l=o[i];as(r[i],Array.isArray(l)?l:l?[l]:[])}}}function as(e,t){let n=-1;const r=[];for(;++n<t.length;)(t[n].add==="after"?e:r).push(t[n]);Ae(e,0,0,r)}function Ti(e,t){const n=Number.parseInt(e,t);return n<9||n===11||n>13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)===65535||(n&65535)===65534||n>1114111?"�":String.fromCodePoint(n)}function ft(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const _e=Ye(/[A-Za-z]/),ke=Ye(/[\dA-Za-z]/),ss=Ye(/[#-'*+\--9=?A-Z^-~]/);function In(e){return e!==null&&(e<32||e===127)}const _n=Ye(/\d/),us=Ye(/[\dA-Fa-f]/),cs=Ye(/[!-/:-@[-`{-~]/);function B(e){return e!==null&&e<-2}function he(e){return e!==null&&(e<0||e===32)}function Z(e){return e===-2||e===-1||e===32}const fs=Ye(new RegExp("\\p{P}|\\p{S}","u")),ps=Ye(/\s/);function Ye(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function dt(e){const t=[];let n=-1,r=0,o=0;for(;++n<e.length;){const i=e.charCodeAt(n);let l="";if(i===37&&ke(e.charCodeAt(n+1))&&ke(e.charCodeAt(n+2)))o=2;else if(i<128)/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(i))||(l=String.fromCharCode(i));else if(i>55295&&i<57344){const a=e.charCodeAt(n+1);i<56320&&a>56319&&a<57344?(l=String.fromCharCode(i,a),o=1):l="�"}else l=String.fromCharCode(i);l&&(t.push(e.slice(r,n),encodeURIComponent(l)),r=n+o+1,l=""),o&&(n+=o,o=0)}return t.join("")+e.slice(r)}function K(e,t,n,r){const o=r?r-1:Number.POSITIVE_INFINITY;let i=0;return l;function l(s){return Z(s)?(e.enter(n),a(s)):t(s)}function a(s){return Z(s)&&i++<o?(e.consume(s),a):(e.exit(n),t(s))}}const hs={tokenize:ds};function ds(e){const t=e.attempt(this.parser.constructs.contentInitial,r,o);let n;return t;function r(a){if(a===null){e.consume(a);return}return e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),K(e,t,"linePrefix")}function o(a){return e.enter("paragraph"),i(a)}function i(a){const s=e.enter("chunkText",{contentType:"text",previous:n});return n&&(n.next=s),n=s,l(a)}function l(a){if(a===null){e.exit("chunkText"),e.exit("paragraph"),e.consume(a);return}return B(a)?(e.consume(a),e.exit("chunkText"),i):(e.consume(a),l)}}const gs={tokenize:ms},Ir={tokenize:vs};function ms(e){const t=this,n=[];let r=0,o,i,l;return a;function a(P){if(r<n.length){const M=n[r];return t.containerState=M[1],e.attempt(M[0].continuation,s,u)(P)}return u(P)}function s(P){if(r++,t.containerState._closeFlow){t.containerState._closeFlow=void 0,o&&S();const M=t.events.length;let U=M,C;for(;U--;)if(t.events[U][0]==="exit"&&t.events[U][1].type==="chunkFlow"){C=t.events[U][1].end;break}v(r);let V=M;for(;V<t.events.length;)t.events[V][1].end={...C},V++;return Ae(t.events,U+1,0,t.events.slice(M)),t.events.length=V,u(P)}return a(P)}function u(P){if(r===n.length){if(!o)return h(P);if(o.currentConstruct&&o.currentConstruct.concrete)return m(P);t.interrupt=!!(o.currentConstruct&&!o._gfmTableDynamicInterruptHack)}return t.containerState={},e.check(Ir,f,c)(P)}function f(P){return o&&S(),v(r),h(P)}function c(P){return t.parser.lazy[t.now().line]=r!==n.length,l=t.now().offset,m(P)}function h(P){return t.containerState={},e.attempt(Ir,p,m)(P)}function p(P){return r++,n.push([t.currentConstruct,t.containerState]),h(P)}function m(P){if(P===null){o&&S(),v(0),e.consume(P);return}return o=o||t.parser.flow(t.now()),e.enter("chunkFlow",{_tokenizer:o,contentType:"flow",previous:i}),x(P)}function x(P){if(P===null){k(e.exit("chunkFlow"),!0),v(0),e.consume(P);return}return B(P)?(e.consume(P),k(e.exit("chunkFlow")),r=0,t.interrupt=void 0,a):(e.consume(P),x)}function k(P,M){const U=t.sliceStream(P);if(M&&U.push(null),P.previous=i,i&&(i.next=P),i=P,o.defineSkip(P.start),o.write(U),t.parser.lazy[P.start.line]){let C=o.events.length;for(;C--;)if(o.events[C][1].start.offset<l&&(!o.events[C][1].end||o.events[C][1].end.offset>l))return;const V=t.events.length;let O=V,$,y;for(;O--;)if(t.events[O][0]==="exit"&&t.events[O][1].type==="chunkFlow"){if($){y=t.events[O][1].end;break}$=!0}for(v(r),C=V;C<t.events.length;)t.events[C][1].end={...y},C++;Ae(t.events,O+1,0,t.events.slice(V)),t.events.length=C}}function v(P){let M=n.length;for(;M-- >P;){const U=n[M];t.containerState=U[1],U[0].exit.call(t,e)}n.length=P}function S(){o.write([null]),i=void 0,o=void 0,t.containerState._closeFlow=void 0}}function vs(e,t,n){return K(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function _r(e){if(e===null||he(e)||ps(e))return 1;if(fs(e))return 2}function Jn(e,t,n){const r=[];let o=-1;for(;++o<e.length;){const i=e[o].resolveAll;i&&!r.includes(i)&&(t=i(t,n),r.push(i))}return t}const An={name:"attention",resolveAll:ys,tokenize:xs};function ys(e,t){let n=-1,r,o,i,l,a,s,u,f;for(;++n<e.length;)if(e[n][0]==="enter"&&e[n][1].type==="attentionSequence"&&e[n][1]._close){for(r=n;r--;)if(e[r][0]==="exit"&&e[r][1].type==="attentionSequence"&&e[r][1]._open&&t.sliceSerialize(e[r][1]).charCodeAt(0)===t.sliceSerialize(e[n][1]).charCodeAt(0)){if((e[r][1]._close||e[n][1]._open)&&(e[n][1].end.offset-e[n][1].start.offset)%3&&!((e[r][1].end.offset-e[r][1].start.offset+e[n][1].end.offset-e[n][1].start.offset)%3))continue;s=e[r][1].end.offset-e[r][1].start.offset>1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const c={...e[r][1].end},h={...e[n][1].start};Ar(c,-s),Ar(h,s),l={type:s>1?"strongSequence":"emphasisSequence",start:c,end:{...e[r][1].end}},a={type:s>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:h},i={type:s>1?"strongText":"emphasisText",start:{...e[r][1].end},end:{...e[n][1].start}},o={type:s>1?"strong":"emphasis",start:{...l.start},end:{...a.end}},e[r][1].end={...l.start},e[n][1].start={...a.end},u=[],e[r][1].end.offset-e[r][1].start.offset&&(u=be(u,[["enter",e[r][1],t],["exit",e[r][1],t]])),u=be(u,[["enter",o,t],["enter",l,t],["exit",l,t],["enter",i,t]]),u=be(u,Jn(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),u=be(u,[["exit",i,t],["enter",a,t],["exit",a,t],["exit",o,t]]),e[n][1].end.offset-e[n][1].start.offset?(f=2,u=be(u,[["enter",e[n][1],t],["exit",e[n][1],t]])):f=0,Ae(e,r-1,n-r+3,u),n=r+u.length-f-2;break}}for(n=-1;++n<e.length;)e[n][1].type==="attentionSequence"&&(e[n][1].type="data");return e}function xs(e,t){const n=this.parser.constructs.attentionMarkers.null,r=this.previous,o=_r(r);let i;return l;function l(s){return i=s,e.enter("attentionSequence"),a(s)}function a(s){if(s===i)return e.consume(s),a;const u=e.exit("attentionSequence"),f=_r(s),c=!f||f===2&&o||n.includes(s),h=!o||o===2&&f||n.includes(r);return u._open=!!(i===42?c:c&&(o||!h)),u._close=!!(i===42?h:h&&(f||!c)),t(s)}}function Ar(e,t){e.column+=t,e.offset+=t,e._bufferIndex+=t}const ks={name:"autolink",tokenize:bs};function bs(e,t,n){let r=0;return o;function o(p){return e.enter("autolink"),e.enter("autolinkMarker"),e.consume(p),e.exit("autolinkMarker"),e.enter("autolinkProtocol"),i}function i(p){return _e(p)?(e.consume(p),l):p===64?n(p):u(p)}function l(p){return p===43||p===45||p===46||ke(p)?(r=1,a(p)):u(p)}function a(p){return p===58?(e.consume(p),r=0,s):(p===43||p===45||p===46||ke(p))&&r++<32?(e.consume(p),a):(r=0,u(p))}function s(p){return p===62?(e.exit("autolinkProtocol"),e.enter("autolinkMarker"),e.consume(p),e.exit("autolinkMarker"),e.exit("autolink"),t):p===null||p===32||p===60||In(p)?n(p):(e.consume(p),s)}function u(p){return p===64?(e.consume(p),f):ss(p)?(e.consume(p),u):n(p)}function f(p){return ke(p)?c(p):n(p)}function c(p){return p===46?(e.consume(p),r=0,f):p===62?(e.exit("autolinkProtocol").type="autolinkEmail",e.enter("autolinkMarker"),e.consume(p),e.exit("autolinkMarker"),e.exit("autolink"),t):h(p)}function h(p){if((p===45||ke(p))&&r++<63){const m=p===45?h:c;return e.consume(p),m}return n(p)}}const Xt={partial:!0,tokenize:ws};function ws(e,t,n){return r;function r(i){return Z(i)?K(e,o,"linePrefix")(i):o(i)}function o(i){return i===null||B(i)?t(i):n(i)}}const Mi={continuation:{tokenize:Ss},exit:Es,name:"blockQuote",tokenize:Cs};function Cs(e,t,n){const r=this;return o;function o(l){if(l===62){const a=r.containerState;return a.open||(e.enter("blockQuote",{_container:!0}),a.open=!0),e.enter("blockQuotePrefix"),e.enter("blockQuoteMarker"),e.consume(l),e.exit("blockQuoteMarker"),i}return n(l)}function i(l){return Z(l)?(e.enter("blockQuotePrefixWhitespace"),e.consume(l),e.exit("blockQuotePrefixWhitespace"),e.exit("blockQuotePrefix"),t):(e.exit("blockQuotePrefix"),t(l))}}function Ss(e,t,n){const r=this;return o;function o(l){return Z(l)?K(e,i,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(l):i(l)}function i(l){return e.attempt(Mi,t,n)(l)}}function Es(e){e.exit("blockQuote")}const Oi={name:"characterEscape",tokenize:zs};function zs(e,t,n){return r;function r(i){return e.enter("characterEscape"),e.enter("escapeMarker"),e.consume(i),e.exit("escapeMarker"),o}function o(i){return cs(i)?(e.enter("characterEscapeValue"),e.consume(i),e.exit("characterEscapeValue"),e.exit("characterEscape"),t):n(i)}}const Li={name:"characterReference",tokenize:Ps};function Ps(e,t,n){const r=this;let o=0,i,l;return a;function a(c){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(c),e.exit("characterReferenceMarker"),s}function s(c){return c===35?(e.enter("characterReferenceMarkerNumeric"),e.consume(c),e.exit("characterReferenceMarkerNumeric"),u):(e.enter("characterReferenceValue"),i=31,l=ke,f(c))}function u(c){return c===88||c===120?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(c),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),i=6,l=us,f):(e.enter("characterReferenceValue"),i=7,l=_n,f(c))}function f(c){if(c===59&&o){const h=e.exit("characterReferenceValue");return l===ke&&!Qn(r.sliceSerialize(h))?n(c):(e.enter("characterReferenceMarker"),e.consume(c),e.exit("characterReferenceMarker"),e.exit("characterReference"),t)}return l(c)&&o++<i?(e.consume(c),f):n(c)}}const Tr={partial:!0,tokenize:Is},Mr={concrete:!0,name:"codeFenced",tokenize:Ds};function Ds(e,t,n){const r=this,o={partial:!0,tokenize:U};let i=0,l=0,a;return s;function s(C){return u(C)}function u(C){const V=r.events[r.events.length-1];return i=V&&V[1].type==="linePrefix"?V[2].sliceSerialize(V[1],!0).length:0,a=C,e.enter("codeFenced"),e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),f(C)}function f(C){return C===a?(l++,e.consume(C),f):l<3?n(C):(e.exit("codeFencedFenceSequence"),Z(C)?K(e,c,"whitespace")(C):c(C))}function c(C){return C===null||B(C)?(e.exit("codeFencedFence"),r.interrupt?t(C):e.check(Tr,x,M)(C)):(e.enter("codeFencedFenceInfo"),e.enter("chunkString",{contentType:"string"}),h(C))}function h(C){return C===null||B(C)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),c(C)):Z(C)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),K(e,p,"whitespace")(C)):C===96&&C===a?n(C):(e.consume(C),h)}function p(C){return C===null||B(C)?c(C):(e.enter("codeFencedFenceMeta"),e.enter("chunkString",{contentType:"string"}),m(C))}function m(C){return C===null||B(C)?(e.exit("chunkString"),e.exit("codeFencedFenceMeta"),c(C)):C===96&&C===a?n(C):(e.consume(C),m)}function x(C){return e.attempt(o,M,k)(C)}function k(C){return e.enter("lineEnding"),e.consume(C),e.exit("lineEnding"),v}function v(C){return i>0&&Z(C)?K(e,S,"linePrefix",i+1)(C):S(C)}function S(C){return C===null||B(C)?e.check(Tr,x,M)(C):(e.enter("codeFlowValue"),P(C))}function P(C){return C===null||B(C)?(e.exit("codeFlowValue"),S(C)):(e.consume(C),P)}function M(C){return e.exit("codeFenced"),t(C)}function U(C,V,O){let $=0;return y;function y(j){return C.enter("lineEnding"),C.consume(j),C.exit("lineEnding"),L}function L(j){return C.enter("codeFencedFence"),Z(j)?K(C,F,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(j):F(j)}function F(j){return j===a?(C.enter("codeFencedFenceSequence"),R(j)):O(j)}function R(j){return j===a?($++,C.consume(j),R):$>=l?(C.exit("codeFencedFenceSequence"),Z(j)?K(C,T,"whitespace")(j):T(j)):O(j)}function T(j){return j===null||B(j)?(C.exit("codeFencedFence"),V(j)):O(j)}}}function Is(e,t,n){const r=this;return o;function o(l){return l===null?n(l):(e.enter("lineEnding"),e.consume(l),e.exit("lineEnding"),i)}function i(l){return r.parser.lazy[r.now().line]?n(l):t(l)}}const ln={name:"codeIndented",tokenize:As},_s={partial:!0,tokenize:Ts};function As(e,t,n){const r=this;return o;function o(u){return e.enter("codeIndented"),K(e,i,"linePrefix",5)(u)}function i(u){const f=r.events[r.events.length-1];return f&&f[1].type==="linePrefix"&&f[2].sliceSerialize(f[1],!0).length>=4?l(u):n(u)}function l(u){return u===null?s(u):B(u)?e.attempt(_s,l,s)(u):(e.enter("codeFlowValue"),a(u))}function a(u){return u===null||B(u)?(e.exit("codeFlowValue"),l(u)):(e.consume(u),a)}function s(u){return e.exit("codeIndented"),t(u)}}function Ts(e,t,n){const r=this;return o;function o(l){return r.parser.lazy[r.now().line]?n(l):B(l)?(e.enter("lineEnding"),e.consume(l),e.exit("lineEnding"),o):K(e,i,"linePrefix",5)(l)}function i(l){const a=r.events[r.events.length-1];return a&&a[1].type==="linePrefix"&&a[2].sliceSerialize(a[1],!0).length>=4?t(l):B(l)?o(l):n(l)}}const Ms={name:"codeText",previous:Ls,resolve:Os,tokenize:Fs};function Os(e){let t=e.length-4,n=3,r,o;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(r=n;++r<t;)if(e[r][1].type==="codeTextData"){e[n][1].type="codeTextPadding",e[t][1].type="codeTextPadding",n+=2,t-=2;break}}for(r=n-1,t++;++r<=t;)o===void 0?r!==t&&e[r][1].type!=="lineEnding"&&(o=r):(r===t||e[r][1].type==="lineEnding")&&(e[o][1].type="codeTextData",r!==o+2&&(e[o][1].end=e[r-1][1].end,e.splice(o+2,r-o-2),t-=r-o-2,r=o+2),o=void 0);return e}function Ls(e){return e!==96||this.events[this.events.length-1][1].type==="characterEscape"}function Fs(e,t,n){let r=0,o,i;return l;function l(c){return e.enter("codeText"),e.enter("codeTextSequence"),a(c)}function a(c){return c===96?(e.consume(c),r++,a):(e.exit("codeTextSequence"),s(c))}function s(c){return c===null?n(c):c===32?(e.enter("space"),e.consume(c),e.exit("space"),s):c===96?(i=e.enter("codeTextSequence"),o=0,f(c)):B(c)?(e.enter("lineEnding"),e.consume(c),e.exit("lineEnding"),s):(e.enter("codeTextData"),u(c))}function u(c){return c===null||c===32||c===96||B(c)?(e.exit("codeTextData"),s(c)):(e.consume(c),u)}function f(c){return c===96?(e.consume(c),o++,f):o===r?(e.exit("codeTextSequence"),e.exit("codeText"),t(c)):(i.type="codeTextData",u(c))}}class Rs{constructor(t){this.left=t?[...t]:[],this.right=[]}get(t){if(t<0||t>=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return t<this.left.length?this.left[t]:this.right[this.right.length-t+this.left.length-1]}get length(){return this.left.length+this.right.length}shift(){return this.setCursor(0),this.right.pop()}slice(t,n){const r=n??Number.POSITIVE_INFINITY;return r<this.left.length?this.left.slice(t,r):t>this.left.length?this.right.slice(this.right.length-r+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-r+this.left.length).reverse())}splice(t,n,r){const o=n||0;this.setCursor(Math.trunc(t));const i=this.right.splice(this.right.length-o,Number.POSITIVE_INFINITY);return r&&wt(this.left,r),i.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),wt(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),wt(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t<this.left.length){const n=this.left.splice(t,Number.POSITIVE_INFINITY);wt(this.right,n.reverse())}else{const n=this.right.splice(this.left.length+this.right.length-t,Number.POSITIVE_INFINITY);wt(this.left,n.reverse())}}}function wt(e,t){let n=0;if(t.length<1e4)e.push(...t);else for(;n<t.length;)e.push(...t.slice(n,n+1e4)),n+=1e4}function Fi(e){const t={};let n=-1,r,o,i,l,a,s,u;const f=new Rs(e);for(;++n<f.length;){for(;n in t;)n=t[n];if(r=f.get(n),n&&r[1].type==="chunkFlow"&&f.get(n-1)[1].type==="listItemPrefix"&&(s=r[1]._tokenizer.events,i=0,i<s.length&&s[i][1].type==="lineEndingBlank"&&(i+=2),i<s.length&&s[i][1].type==="content"))for(;++i<s.length&&s[i][1].type!=="content";)s[i][1].type==="chunkText"&&(s[i][1]._isInFirstContentOfListItem=!0,i++);if(r[0]==="enter")r[1].contentType&&(Object.assign(t,Ns(f,n)),n=t[n],u=!0);else if(r[1]._container){for(i=n,o=void 0;i--;)if(l=f.get(i),l[1].type==="lineEnding"||l[1].type==="lineEndingBlank")l[0]==="enter"&&(o&&(f.get(o)[1].type="lineEndingBlank"),l[1].type="lineEnding",o=i);else if(!(l[1].type==="linePrefix"||l[1].type==="listItemIndent"))break;o&&(r[1].end={...f.get(o)[1].start},a=f.slice(o,n),a.unshift(r),f.splice(o,n-o+1,a))}}return Ae(e,0,Number.POSITIVE_INFINITY,f.slice(0)),!u}function Ns(e,t){const n=e.get(t)[1],r=e.get(t)[2];let o=t-1;const i=[];let l=n._tokenizer;l||(l=r.parser[n.contentType](n.start),n._contentTypeTextTrailing&&(l._contentTypeTextTrailing=!0));const a=l.events,s=[],u={};let f,c,h=-1,p=n,m=0,x=0;const k=[x];for(;p;){for(;e.get(++o)[1]!==p;);i.push(o),p._tokenizer||(f=r.sliceStream(p),p.next||f.push(null),c&&l.defineSkip(p.start),p._isInFirstContentOfListItem&&(l._gfmTasklistFirstContentOfListItem=!0),l.write(f),p._isInFirstContentOfListItem&&(l._gfmTasklistFirstContentOfListItem=void 0)),c=p,p=p.next}for(p=n;++h<a.length;)a[h][0]==="exit"&&a[h-1][0]==="enter"&&a[h][1].type===a[h-1][1].type&&a[h][1].start.line!==a[h][1].end.line&&(x=h+1,k.push(x),p._tokenizer=void 0,p.previous=void 0,p=p.next);for(l.events=[],p?(p._tokenizer=void 0,p.previous=void 0):k.pop(),h=k.length;h--;){const v=a.slice(k[h],k[h+1]),S=i.pop();s.push([S,S+v.length-1]),e.splice(S,2,v)}for(s.reverse(),h=-1;++h<s.length;)u[m+s[h][0]]=m+s[h][1],m+=s[h][1]-s[h][0]-1;return u}const js={resolve:Hs,tokenize:Vs},Bs={partial:!0,tokenize:Us};function Hs(e){return Fi(e),e}function Vs(e,t){let n;return r;function r(a){return e.enter("content"),n=e.enter("chunkContent",{contentType:"content"}),o(a)}function o(a){return a===null?i(a):B(a)?e.check(Bs,l,i)(a):(e.consume(a),o)}function i(a){return e.exit("chunkContent"),e.exit("content"),t(a)}function l(a){return e.consume(a),e.exit("chunkContent"),n.next=e.enter("chunkContent",{contentType:"content",previous:n}),n=n.next,o}}function Us(e,t,n){const r=this;return o;function o(l){return e.exit("chunkContent"),e.enter("lineEnding"),e.consume(l),e.exit("lineEnding"),K(e,i,"linePrefix")}function i(l){if(l===null||B(l))return n(l);const a=r.events[r.events.length-1];return!r.parser.constructs.disable.null.includes("codeIndented")&&a&&a[1].type==="linePrefix"&&a[2].sliceSerialize(a[1],!0).length>=4?t(l):e.interrupt(r.parser.constructs.flow,n,t)(l)}}function Ri(e,t,n,r,o,i,l,a,s){const u=s||Number.POSITIVE_INFINITY;let f=0;return c;function c(v){return v===60?(e.enter(r),e.enter(o),e.enter(i),e.consume(v),e.exit(i),h):v===null||v===32||v===41||In(v)?n(v):(e.enter(r),e.enter(l),e.enter(a),e.enter("chunkString",{contentType:"string"}),x(v))}function h(v){return v===62?(e.enter(i),e.consume(v),e.exit(i),e.exit(o),e.exit(r),t):(e.enter(a),e.enter("chunkString",{contentType:"string"}),p(v))}function p(v){return v===62?(e.exit("chunkString"),e.exit(a),h(v)):v===null||v===60||B(v)?n(v):(e.consume(v),v===92?m:p)}function m(v){return v===60||v===62||v===92?(e.consume(v),p):p(v)}function x(v){return!f&&(v===null||v===41||he(v))?(e.exit("chunkString"),e.exit(a),e.exit(l),e.exit(r),t(v)):f<u&&v===40?(e.consume(v),f++,x):v===41?(e.consume(v),f--,x):v===null||v===32||v===40||In(v)?n(v):(e.consume(v),v===92?k:x)}function k(v){return v===40||v===41||v===92?(e.consume(v),x):x(v)}}function Ni(e,t,n,r,o,i){const l=this;let a=0,s;return u;function u(p){return e.enter(r),e.enter(o),e.consume(p),e.exit(o),e.enter(i),f}function f(p){return a>999||p===null||p===91||p===93&&!s||p===94&&!a&&"_hiddenFootnoteSupport"in l.parser.constructs?n(p):p===93?(e.exit(i),e.enter(o),e.consume(p),e.exit(o),e.exit(r),t):B(p)?(e.enter("lineEnding"),e.consume(p),e.exit("lineEnding"),f):(e.enter("chunkString",{contentType:"string"}),c(p))}function c(p){return p===null||p===91||p===93||B(p)||a++>999?(e.exit("chunkString"),f(p)):(e.consume(p),s||(s=!Z(p)),p===92?h:c)}function h(p){return p===91||p===92||p===93?(e.consume(p),a++,c):c(p)}}function ji(e,t,n,r,o,i){let l;return a;function a(h){return h===34||h===39||h===40?(e.enter(r),e.enter(o),e.consume(h),e.exit(o),l=h===40?41:h,s):n(h)}function s(h){return h===l?(e.enter(o),e.consume(h),e.exit(o),e.exit(r),t):(e.enter(i),u(h))}function u(h){return h===l?(e.exit(i),s(l)):h===null?n(h):B(h)?(e.enter("lineEnding"),e.consume(h),e.exit("lineEnding"),K(e,u,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),f(h))}function f(h){return h===l||h===null||B(h)?(e.exit("chunkString"),u(h)):(e.consume(h),h===92?c:f)}function c(h){return h===l||h===92?(e.consume(h),f):f(h)}}function zt(e,t){let n;return r;function r(o){return B(o)?(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),n=!0,r):Z(o)?K(e,r,n?"linePrefix":"lineSuffix")(o):t(o)}}const qs={name:"definition",tokenize:Ws},$s={partial:!0,tokenize:Zs};function Ws(e,t,n){const r=this;let o;return i;function i(p){return e.enter("definition"),l(p)}function l(p){return Ni.call(r,e,a,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(p)}function a(p){return o=ft(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),p===58?(e.enter("definitionMarker"),e.consume(p),e.exit("definitionMarker"),s):n(p)}function s(p){return he(p)?zt(e,u)(p):u(p)}function u(p){return Ri(e,f,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(p)}function f(p){return e.attempt($s,c,c)(p)}function c(p){return Z(p)?K(e,h,"whitespace")(p):h(p)}function h(p){return p===null||B(p)?(e.exit("definition"),r.parser.defined.push(o),t(p)):n(p)}}function Zs(e,t,n){return r;function r(a){return he(a)?zt(e,o)(a):n(a)}function o(a){return ji(e,i,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(a)}function i(a){return Z(a)?K(e,l,"whitespace")(a):l(a)}function l(a){return a===null||B(a)?t(a):n(a)}}const Ys={name:"hardBreakEscape",tokenize:Gs};function Gs(e,t,n){return r;function r(i){return e.enter("hardBreakEscape"),e.consume(i),o}function o(i){return B(i)?(e.exit("hardBreakEscape"),t(i)):n(i)}}const Ks={name:"headingAtx",resolve:Xs,tokenize:Qs};function Xs(e,t){let n=e.length-2,r=3,o,i;return e[r][1].type==="whitespace"&&(r+=2),n-2>r&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(r===n-1||n-4>r&&e[n-2][1].type==="whitespace")&&(n-=r+1===n?2:4),n>r&&(o={type:"atxHeadingText",start:e[r][1].start,end:e[n][1].end},i={type:"chunkText",start:e[r][1].start,end:e[n][1].end,contentType:"text"},Ae(e,r,n-r+1,[["enter",o,t],["enter",i,t],["exit",i,t],["exit",o,t]])),e}function Qs(e,t,n){let r=0;return o;function o(f){return e.enter("atxHeading"),i(f)}function i(f){return e.enter("atxHeadingSequence"),l(f)}function l(f){return f===35&&r++<6?(e.consume(f),l):f===null||he(f)?(e.exit("atxHeadingSequence"),a(f)):n(f)}function a(f){return f===35?(e.enter("atxHeadingSequence"),s(f)):f===null||B(f)?(e.exit("atxHeading"),t(f)):Z(f)?K(e,a,"whitespace")(f):(e.enter("atxHeadingText"),u(f))}function s(f){return f===35?(e.consume(f),s):(e.exit("atxHeadingSequence"),a(f))}function u(f){return f===null||f===35||he(f)?(e.exit("atxHeadingText"),a(f)):(e.consume(f),u)}}const Js=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Or=["pre","script","style","textarea"],eu={concrete:!0,name:"htmlFlow",resolveTo:ru,tokenize:iu},tu={partial:!0,tokenize:lu},nu={partial:!0,tokenize:ou};function ru(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function iu(e,t,n){const r=this;let o,i,l,a,s;return u;function u(g){return f(g)}function f(g){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(g),c}function c(g){return g===33?(e.consume(g),h):g===47?(e.consume(g),i=!0,x):g===63?(e.consume(g),o=3,r.interrupt?t:d):_e(g)?(e.consume(g),l=String.fromCharCode(g),k):n(g)}function h(g){return g===45?(e.consume(g),o=2,p):g===91?(e.consume(g),o=5,a=0,m):_e(g)?(e.consume(g),o=4,r.interrupt?t:d):n(g)}function p(g){return g===45?(e.consume(g),r.interrupt?t:d):n(g)}function m(g){const ue="CDATA[";return g===ue.charCodeAt(a++)?(e.consume(g),a===ue.length?r.interrupt?t:F:m):n(g)}function x(g){return _e(g)?(e.consume(g),l=String.fromCharCode(g),k):n(g)}function k(g){if(g===null||g===47||g===62||he(g)){const ue=g===47,ie=l.toLowerCase();return!ue&&!i&&Or.includes(ie)?(o=1,r.interrupt?t(g):F(g)):Js.includes(l.toLowerCase())?(o=6,ue?(e.consume(g),v):r.interrupt?t(g):F(g)):(o=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(g):i?S(g):P(g))}return g===45||ke(g)?(e.consume(g),l+=String.fromCharCode(g),k):n(g)}function v(g){return g===62?(e.consume(g),r.interrupt?t:F):n(g)}function S(g){return Z(g)?(e.consume(g),S):y(g)}function P(g){return g===47?(e.consume(g),y):g===58||g===95||_e(g)?(e.consume(g),M):Z(g)?(e.consume(g),P):y(g)}function M(g){return g===45||g===46||g===58||g===95||ke(g)?(e.consume(g),M):U(g)}function U(g){return g===61?(e.consume(g),C):Z(g)?(e.consume(g),U):P(g)}function C(g){return g===null||g===60||g===61||g===62||g===96?n(g):g===34||g===39?(e.consume(g),s=g,V):Z(g)?(e.consume(g),C):O(g)}function V(g){return g===s?(e.consume(g),s=null,$):g===null||B(g)?n(g):(e.consume(g),V)}function O(g){return g===null||g===34||g===39||g===47||g===60||g===61||g===62||g===96||he(g)?U(g):(e.consume(g),O)}function $(g){return g===47||g===62||Z(g)?P(g):n(g)}function y(g){return g===62?(e.consume(g),L):n(g)}function L(g){return g===null||B(g)?F(g):Z(g)?(e.consume(g),L):n(g)}function F(g){return g===45&&o===2?(e.consume(g),J):g===60&&o===1?(e.consume(g),re):g===62&&o===4?(e.consume(g),me):g===63&&o===3?(e.consume(g),d):g===93&&o===5?(e.consume(g),Ce):B(g)&&(o===6||o===7)?(e.exit("htmlFlowData"),e.check(tu,Se,R)(g)):g===null||B(g)?(e.exit("htmlFlowData"),R(g)):(e.consume(g),F)}function R(g){return e.check(nu,T,Se)(g)}function T(g){return e.enter("lineEnding"),e.consume(g),e.exit("lineEnding"),j}function j(g){return g===null||B(g)?R(g):(e.enter("htmlFlowData"),F(g))}function J(g){return g===45?(e.consume(g),d):F(g)}function re(g){return g===47?(e.consume(g),l="",ge):F(g)}function ge(g){if(g===62){const ue=l.toLowerCase();return Or.includes(ue)?(e.consume(g),me):F(g)}return _e(g)&&l.length<8?(e.consume(g),l+=String.fromCharCode(g),ge):F(g)}function Ce(g){return g===93?(e.consume(g),d):F(g)}function d(g){return g===62?(e.consume(g),me):g===45&&o===2?(e.consume(g),d):F(g)}function me(g){return g===null||B(g)?(e.exit("htmlFlowData"),Se(g)):(e.consume(g),me)}function Se(g){return e.exit("htmlFlow"),t(g)}}function ou(e,t,n){const r=this;return o;function o(l){return B(l)?(e.enter("lineEnding"),e.consume(l),e.exit("lineEnding"),i):n(l)}function i(l){return r.parser.lazy[r.now().line]?n(l):t(l)}}function lu(e,t,n){return r;function r(o){return e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),e.attempt(Xt,t,n)}}const au={name:"htmlText",tokenize:su};function su(e,t,n){const r=this;let o,i,l;return a;function a(d){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(d),s}function s(d){return d===33?(e.consume(d),u):d===47?(e.consume(d),U):d===63?(e.consume(d),P):_e(d)?(e.consume(d),O):n(d)}function u(d){return d===45?(e.consume(d),f):d===91?(e.consume(d),i=0,m):_e(d)?(e.consume(d),S):n(d)}function f(d){return d===45?(e.consume(d),p):n(d)}function c(d){return d===null?n(d):d===45?(e.consume(d),h):B(d)?(l=c,re(d)):(e.consume(d),c)}function h(d){return d===45?(e.consume(d),p):c(d)}function p(d){return d===62?J(d):d===45?h(d):c(d)}function m(d){const me="CDATA[";return d===me.charCodeAt(i++)?(e.consume(d),i===me.length?x:m):n(d)}function x(d){return d===null?n(d):d===93?(e.consume(d),k):B(d)?(l=x,re(d)):(e.consume(d),x)}function k(d){return d===93?(e.consume(d),v):x(d)}function v(d){return d===62?J(d):d===93?(e.consume(d),v):x(d)}function S(d){return d===null||d===62?J(d):B(d)?(l=S,re(d)):(e.consume(d),S)}function P(d){return d===null?n(d):d===63?(e.consume(d),M):B(d)?(l=P,re(d)):(e.consume(d),P)}function M(d){return d===62?J(d):P(d)}function U(d){return _e(d)?(e.consume(d),C):n(d)}function C(d){return d===45||ke(d)?(e.consume(d),C):V(d)}function V(d){return B(d)?(l=V,re(d)):Z(d)?(e.consume(d),V):J(d)}function O(d){return d===45||ke(d)?(e.consume(d),O):d===47||d===62||he(d)?$(d):n(d)}function $(d){return d===47?(e.consume(d),J):d===58||d===95||_e(d)?(e.consume(d),y):B(d)?(l=$,re(d)):Z(d)?(e.consume(d),$):J(d)}function y(d){return d===45||d===46||d===58||d===95||ke(d)?(e.consume(d),y):L(d)}function L(d){return d===61?(e.consume(d),F):B(d)?(l=L,re(d)):Z(d)?(e.consume(d),L):$(d)}function F(d){return d===null||d===60||d===61||d===62||d===96?n(d):d===34||d===39?(e.consume(d),o=d,R):B(d)?(l=F,re(d)):Z(d)?(e.consume(d),F):(e.consume(d),T)}function R(d){return d===o?(e.consume(d),o=void 0,j):d===null?n(d):B(d)?(l=R,re(d)):(e.consume(d),R)}function T(d){return d===null||d===34||d===39||d===60||d===61||d===96?n(d):d===47||d===62||he(d)?$(d):(e.consume(d),T)}function j(d){return d===47||d===62||he(d)?$(d):n(d)}function J(d){return d===62?(e.consume(d),e.exit("htmlTextData"),e.exit("htmlText"),t):n(d)}function re(d){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(d),e.exit("lineEnding"),ge}function ge(d){return Z(d)?K(e,Ce,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(d):Ce(d)}function Ce(d){return e.enter("htmlTextData"),l(d)}}const er={name:"labelEnd",resolveAll:pu,resolveTo:hu,tokenize:du},uu={tokenize:gu},cu={tokenize:mu},fu={tokenize:vu};function pu(e){let t=-1;const n=[];for(;++t<e.length;){const r=e[t][1];if(n.push(e[t]),r.type==="labelImage"||r.type==="labelLink"||r.type==="labelEnd"){const o=r.type==="labelImage"?4:2;r.type="data",t+=o}}return e.length!==n.length&&Ae(e,0,e.length,n),e}function hu(e,t){let n=e.length,r=0,o,i,l,a;for(;n--;)if(o=e[n][1],i){if(o.type==="link"||o.type==="labelLink"&&o._inactive)break;e[n][0]==="enter"&&o.type==="labelLink"&&(o._inactive=!0)}else if(l){if(e[n][0]==="enter"&&(o.type==="labelImage"||o.type==="labelLink")&&!o._balanced&&(i=n,o.type!=="labelLink")){r=2;break}}else o.type==="labelEnd"&&(l=n);const s={type:e[i][1].type==="labelLink"?"link":"image",start:{...e[i][1].start},end:{...e[e.length-1][1].end}},u={type:"label",start:{...e[i][1].start},end:{...e[l][1].end}},f={type:"labelText",start:{...e[i+r+2][1].end},end:{...e[l-2][1].start}};return a=[["enter",s,t],["enter",u,t]],a=be(a,e.slice(i+1,i+r+3)),a=be(a,[["enter",f,t]]),a=be(a,Jn(t.parser.constructs.insideSpan.null,e.slice(i+r+4,l-3),t)),a=be(a,[["exit",f,t],e[l-2],e[l-1],["exit",u,t]]),a=be(a,e.slice(l+1)),a=be(a,[["exit",s,t]]),Ae(e,i,e.length,a),e}function du(e,t,n){const r=this;let o=r.events.length,i,l;for(;o--;)if((r.events[o][1].type==="labelImage"||r.events[o][1].type==="labelLink")&&!r.events[o][1]._balanced){i=r.events[o][1];break}return a;function a(h){return i?i._inactive?c(h):(l=r.parser.defined.includes(ft(r.sliceSerialize({start:i.end,end:r.now()}))),e.enter("labelEnd"),e.enter("labelMarker"),e.consume(h),e.exit("labelMarker"),e.exit("labelEnd"),s):n(h)}function s(h){return h===40?e.attempt(uu,f,l?f:c)(h):h===91?e.attempt(cu,f,l?u:c)(h):l?f(h):c(h)}function u(h){return e.attempt(fu,f,c)(h)}function f(h){return t(h)}function c(h){return i._balanced=!0,n(h)}}function gu(e,t,n){return r;function r(c){return e.enter("resource"),e.enter("resourceMarker"),e.consume(c),e.exit("resourceMarker"),o}function o(c){return he(c)?zt(e,i)(c):i(c)}function i(c){return c===41?f(c):Ri(e,l,a,"resourceDestination","resourceDestinationLiteral","resourceDestinationLiteralMarker","resourceDestinationRaw","resourceDestinationString",32)(c)}function l(c){return he(c)?zt(e,s)(c):f(c)}function a(c){return n(c)}function s(c){return c===34||c===39||c===40?ji(e,u,n,"resourceTitle","resourceTitleMarker","resourceTitleString")(c):f(c)}function u(c){return he(c)?zt(e,f)(c):f(c)}function f(c){return c===41?(e.enter("resourceMarker"),e.consume(c),e.exit("resourceMarker"),e.exit("resource"),t):n(c)}}function mu(e,t,n){const r=this;return o;function o(a){return Ni.call(r,e,i,l,"reference","referenceMarker","referenceString")(a)}function i(a){return r.parser.defined.includes(ft(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)))?t(a):n(a)}function l(a){return n(a)}}function vu(e,t,n){return r;function r(i){return e.enter("reference"),e.enter("referenceMarker"),e.consume(i),e.exit("referenceMarker"),o}function o(i){return i===93?(e.enter("referenceMarker"),e.consume(i),e.exit("referenceMarker"),e.exit("reference"),t):n(i)}}const yu={name:"labelStartImage",resolveAll:er.resolveAll,tokenize:xu};function xu(e,t,n){const r=this;return o;function o(a){return e.enter("labelImage"),e.enter("labelImageMarker"),e.consume(a),e.exit("labelImageMarker"),i}function i(a){return a===91?(e.enter("labelMarker"),e.consume(a),e.exit("labelMarker"),e.exit("labelImage"),l):n(a)}function l(a){return a===94&&"_hiddenFootnoteSupport"in r.parser.constructs?n(a):t(a)}}const ku={name:"labelStartLink",resolveAll:er.resolveAll,tokenize:bu};function bu(e,t,n){const r=this;return o;function o(l){return e.enter("labelLink"),e.enter("labelMarker"),e.consume(l),e.exit("labelMarker"),e.exit("labelLink"),i}function i(l){return l===94&&"_hiddenFootnoteSupport"in r.parser.constructs?n(l):t(l)}}const an={name:"lineEnding",tokenize:wu};function wu(e,t){return n;function n(r){return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),K(e,t,"linePrefix")}}const Ht={name:"thematicBreak",tokenize:Cu};function Cu(e,t,n){let r=0,o;return i;function i(u){return e.enter("thematicBreak"),l(u)}function l(u){return o=u,a(u)}function a(u){return u===o?(e.enter("thematicBreakSequence"),s(u)):r>=3&&(u===null||B(u))?(e.exit("thematicBreak"),t(u)):n(u)}function s(u){return u===o?(e.consume(u),r++,s):(e.exit("thematicBreakSequence"),Z(u)?K(e,a,"whitespace")(u):a(u))}}const fe={continuation:{tokenize:Pu},exit:Iu,name:"list",tokenize:zu},Su={partial:!0,tokenize:_u},Eu={partial:!0,tokenize:Du};function zu(e,t,n){const r=this,o=r.events[r.events.length-1];let i=o&&o[1].type==="linePrefix"?o[2].sliceSerialize(o[1],!0).length:0,l=0;return a;function a(p){const m=r.containerState.type||(p===42||p===43||p===45?"listUnordered":"listOrdered");if(m==="listUnordered"?!r.containerState.marker||p===r.containerState.marker:_n(p)){if(r.containerState.type||(r.containerState.type=m,e.enter(m,{_container:!0})),m==="listUnordered")return e.enter("listItemPrefix"),p===42||p===45?e.check(Ht,n,u)(p):u(p);if(!r.interrupt||p===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),s(p)}return n(p)}function s(p){return _n(p)&&++l<10?(e.consume(p),s):(!r.interrupt||l<2)&&(r.containerState.marker?p===r.containerState.marker:p===41||p===46)?(e.exit("listItemValue"),u(p)):n(p)}function u(p){return e.enter("listItemMarker"),e.consume(p),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||p,e.check(Xt,r.interrupt?n:f,e.attempt(Su,h,c))}function f(p){return r.containerState.initialBlankLine=!0,i++,h(p)}function c(p){return Z(p)?(e.enter("listItemPrefixWhitespace"),e.consume(p),e.exit("listItemPrefixWhitespace"),h):n(p)}function h(p){return r.containerState.size=i+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(p)}}function Pu(e,t,n){const r=this;return r.containerState._closeFlow=void 0,e.check(Xt,o,i);function o(a){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,K(e,t,"listItemIndent",r.containerState.size+1)(a)}function i(a){return r.containerState.furtherBlankLines||!Z(a)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,l(a)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(Eu,t,l)(a))}function l(a){return r.containerState._closeFlow=!0,r.interrupt=void 0,K(e,e.attempt(fe,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(a)}}function Du(e,t,n){const r=this;return K(e,o,"listItemIndent",r.containerState.size+1);function o(i){const l=r.events[r.events.length-1];return l&&l[1].type==="listItemIndent"&&l[2].sliceSerialize(l[1],!0).length===r.containerState.size?t(i):n(i)}}function Iu(e){e.exit(this.containerState.type)}function _u(e,t,n){const r=this;return K(e,o,"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function o(i){const l=r.events[r.events.length-1];return!Z(i)&&l&&l[1].type==="listItemPrefixWhitespace"?t(i):n(i)}}const Lr={name:"setextUnderline",resolveTo:Au,tokenize:Tu};function Au(e,t){let n=e.length,r,o,i;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){r=n;break}e[n][1].type==="paragraph"&&(o=n)}else e[n][1].type==="content"&&e.splice(n,1),!i&&e[n][1].type==="definition"&&(i=n);const l={type:"setextHeading",start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[o][1].type="setextHeadingText",i?(e.splice(o,0,["enter",l,t]),e.splice(i+1,0,["exit",e[r][1],t]),e[r][1].end={...e[i][1].end}):e[r][1]=l,e.push(["exit",l,t]),e}function Tu(e,t,n){const r=this;let o;return i;function i(u){let f=r.events.length,c;for(;f--;)if(r.events[f][1].type!=="lineEnding"&&r.events[f][1].type!=="linePrefix"&&r.events[f][1].type!=="content"){c=r.events[f][1].type==="paragraph";break}return!r.parser.lazy[r.now().line]&&(r.interrupt||c)?(e.enter("setextHeadingLine"),o=u,l(u)):n(u)}function l(u){return e.enter("setextHeadingLineSequence"),a(u)}function a(u){return u===o?(e.consume(u),a):(e.exit("setextHeadingLineSequence"),Z(u)?K(e,s,"lineSuffix")(u):s(u))}function s(u){return u===null||B(u)?(e.exit("setextHeadingLine"),t(u)):n(u)}}const Mu={tokenize:Ou};function Ou(e){const t=this,n=e.attempt(Xt,r,e.attempt(this.parser.constructs.flowInitial,o,K(e,e.attempt(this.parser.constructs.flow,o,e.attempt(js,o)),"linePrefix")));return n;function r(i){if(i===null){e.consume(i);return}return e.enter("lineEndingBlank"),e.consume(i),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function o(i){if(i===null){e.consume(i);return}return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const Lu={resolveAll:Hi()},Fu=Bi("string"),Ru=Bi("text");function Bi(e){return{resolveAll:Hi(e==="text"?Nu:void 0),tokenize:t};function t(n){const r=this,o=this.parser.constructs[e],i=n.attempt(o,l,a);return l;function l(f){return u(f)?i(f):a(f)}function a(f){if(f===null){n.consume(f);return}return n.enter("data"),n.consume(f),s}function s(f){return u(f)?(n.exit("data"),i(f)):(n.consume(f),s)}function u(f){if(f===null)return!0;const c=o[f];let h=-1;if(c)for(;++h<c.length;){const p=c[h];if(!p.previous||p.previous.call(r,r.previous))return!0}return!1}}}function Hi(e){return t;function t(n,r){let o=-1,i;for(;++o<=n.length;)i===void 0?n[o]&&n[o][1].type==="data"&&(i=o,o++):(!n[o]||n[o][1].type!=="data")&&(o!==i+2&&(n[i][1].end=n[o-1][1].end,n.splice(i+2,o-i-2),o=i+2),i=void 0);return e?e(n,r):n}}function Nu(e,t){let n=0;for(;++n<=e.length;)if((n===e.length||e[n][1].type==="lineEnding")&&e[n-1][1].type==="data"){const r=e[n-1][1],o=t.sliceStream(r);let i=o.length,l=-1,a=0,s;for(;i--;){const u=o[i];if(typeof u=="string"){for(l=u.length;u.charCodeAt(l-1)===32;)a++,l--;if(l)break;l=-1}else if(u===-2)s=!0,a++;else if(u!==-1){i++;break}}if(t._contentTypeTextTrailing&&n===e.length&&(a=0),a){const u={type:n===e.length||s||a<2?"lineSuffix":"hardBreakTrailing",start:{_bufferIndex:i?l:r.start._bufferIndex+l,_index:r.start._index+i,line:r.end.line,column:r.end.column-a,offset:r.end.offset-a},end:{...r.end}};r.end={...u.start},r.start.offset===r.end.offset?Object.assign(r,u):(e.splice(n,0,["enter",u,t],["exit",u,t]),n+=2)}n++}return e}const ju={42:fe,43:fe,45:fe,48:fe,49:fe,50:fe,51:fe,52:fe,53:fe,54:fe,55:fe,56:fe,57:fe,62:Mi},Bu={91:qs},Hu={[-2]:ln,[-1]:ln,32:ln},Vu={35:Ks,42:Ht,45:[Lr,Ht],60:eu,61:Lr,95:Ht,96:Mr,126:Mr},Uu={38:Li,92:Oi},qu={[-5]:an,[-4]:an,[-3]:an,33:yu,38:Li,42:An,60:[ks,au],91:ku,92:[Ys,Oi],93:er,95:An,96:Ms},$u={null:[An,Lu]},Wu={null:[42,95]},Zu={null:[]},Yu=Object.freeze(Object.defineProperty({__proto__:null,attentionMarkers:Wu,contentInitial:Bu,disable:Zu,document:ju,flow:Vu,flowInitial:Hu,insideSpan:$u,string:Uu,text:qu},Symbol.toStringTag,{value:"Module"}));function Gu(e,t,n){let r={_bufferIndex:-1,_index:0,line:n&&n.line||1,column:n&&n.column||1,offset:n&&n.offset||0};const o={},i=[];let l=[],a=[];const s={attempt:V(U),check:V(C),consume:S,enter:P,exit:M,interrupt:V(C,{interrupt:!0})},u={code:null,containerState:{},defineSkip:x,events:[],now:m,parser:e,previous:null,sliceSerialize:h,sliceStream:p,write:c};let f=t.tokenize.call(u,s);return t.resolveAll&&i.push(t),u;function c(L){return l=be(l,L),k(),l[l.length-1]!==null?[]:(O(t,0),u.events=Jn(i,u.events,u),u.events)}function h(L,F){return Xu(p(L),F)}function p(L){return Ku(l,L)}function m(){const{_bufferIndex:L,_index:F,line:R,column:T,offset:j}=r;return{_bufferIndex:L,_index:F,line:R,column:T,offset:j}}function x(L){o[L.line]=L.column,y()}function k(){let L;for(;r._index<l.length;){const F=l[r._index];if(typeof F=="string")for(L=r._index,r._bufferIndex<0&&(r._bufferIndex=0);r._index===L&&r._bufferIndex<F.length;)v(F.charCodeAt(r._bufferIndex));else v(F)}}function v(L){f=f(L)}function S(L){B(L)?(r.line++,r.column=1,r.offset+=L===-3?2:1,y()):L!==-1&&(r.column++,r.offset++),r._bufferIndex<0?r._index++:(r._bufferIndex++,r._bufferIndex===l[r._index].length&&(r._bufferIndex=-1,r._index++)),u.previous=L}function P(L,F){const R=F||{};return R.type=L,R.start=m(),u.events.push(["enter",R,u]),a.push(R),R}function M(L){const F=a.pop();return F.end=m(),u.events.push(["exit",F,u]),F}function U(L,F){O(L,F.from)}function C(L,F){F.restore()}function V(L,F){return R;function R(T,j,J){let re,ge,Ce,d;return Array.isArray(T)?Se(T):"tokenize"in T?Se([T]):me(T);function me(oe){return w;function w(E){const _=E!==null&&oe[E],D=E!==null&&oe.null,A=[...Array.isArray(_)?_:_?[_]:[],...Array.isArray(D)?D:D?[D]:[]];return Se(A)(E)}}function Se(oe){return re=oe,ge=0,oe.length===0?J:g(oe[ge])}function g(oe){return w;function w(E){return d=$(),Ce=oe,oe.partial||(u.currentConstruct=oe),oe.name&&u.parser.constructs.disable.null.includes(oe.name)?ie():oe.tokenize.call(F?Object.assign(Object.create(u),F):u,s,ue,ie)(E)}}function ue(oe){return L(Ce,d),j}function ie(oe){return d.restore(),++ge<re.length?g(re[ge]):J}}}function O(L,F){L.resolveAll&&!i.includes(L)&&i.push(L),L.resolve&&Ae(u.events,F,u.events.length-F,L.resolve(u.events.slice(F),u)),L.resolveTo&&(u.events=L.resolveTo(u.events,u))}function $(){const L=m(),F=u.previous,R=u.currentConstruct,T=u.events.length,j=Array.from(a);return{from:T,restore:J};function J(){r=L,u.previous=F,u.currentConstruct=R,u.events.length=T,a=j,y()}}function y(){r.line in o&&r.column<2&&(r.column=o[r.line],r.offset+=o[r.line]-1)}}function Ku(e,t){const n=t.start._index,r=t.start._bufferIndex,o=t.end._index,i=t.end._bufferIndex;let l;if(n===o)l=[e[n].slice(r,i)];else{if(l=e.slice(n,o),r>-1){const a=l[0];typeof a=="string"?l[0]=a.slice(r):l.shift()}i>0&&l.push(e[o].slice(0,i))}return l}function Xu(e,t){let n=-1;const r=[];let o;for(;++n<e.length;){const i=e[n];let l;if(typeof i=="string")l=i;else switch(i){case-5:{l="\r";break}case-4:{l=` -`;break}case-3:{l=`\r -`;break}case-2:{l=t?" ":" ";break}case-1:{if(!t&&o)continue;l=" ";break}default:l=String.fromCharCode(i)}o=i===-2,r.push(l)}return r.join("")}function Qu(e){const t={constructs:os([Yu,...(e||{}).extensions||[]]),content:n(hs),defined:[],document:n(gs),flow:n(Mu),lazy:{},string:n(Fu),text:n(Ru)};return t;function n(r){return o;function o(i){return Gu(t,r,i)}}}function Ju(e){for(;!Fi(e););return e}const Fr=/[\0\t\n\r]/g;function ec(){let e=1,t="",n=!0,r;return o;function o(i,l,a){const s=[];let u,f,c,h,p;for(i=t+(typeof i=="string"?i.toString():new TextDecoder(l||void 0).decode(i)),c=0,t="",n&&(i.charCodeAt(0)===65279&&c++,n=void 0);c<i.length;){if(Fr.lastIndex=c,u=Fr.exec(i),h=u&&u.index!==void 0?u.index:i.length,p=i.charCodeAt(h),!u){t=i.slice(c);break}if(p===10&&c===h&&r)s.push(-3),r=void 0;else switch(r&&(s.push(-5),r=void 0),c<h&&(s.push(i.slice(c,h)),e+=h-c),p){case 0:{s.push(65533),e++;break}case 9:{for(f=Math.ceil(e/4)*4,s.push(-2);e++<f;)s.push(-1);break}case 10:{s.push(-4),e=1;break}default:r=!0,e=1}c=h+1}return a&&(r&&s.push(-5),t&&s.push(t),s.push(null)),s}}const tc=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function nc(e){return e.replace(tc,rc)}function rc(e,t,n){if(t)return t;if(n.charCodeAt(0)===35){const r=n.charCodeAt(1),o=r===120||r===88;return Ti(n.slice(o?2:1),o?16:10)}return Qn(n)||e}const Vi={}.hasOwnProperty;function ic(e,t,n){return typeof t!="string"&&(n=t,t=void 0),oc(n)(Ju(Qu(n).document().write(ec()(e,t,!0))))}function oc(e){const t={transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:i(lr),autolinkProtocol:$,autolinkEmail:$,atxHeading:i(ce),blockQuote:i(D),characterEscape:$,characterReference:$,codeFenced:i(A),codeFencedFenceInfo:l,codeFencedFenceMeta:l,codeIndented:i(A,l),codeText:i(N,l),codeTextData:$,data:$,codeFlowValue:$,definition:i(W),definitionDestinationString:l,definitionLabelString:l,definitionTitleString:l,emphasis:i(le),hardBreakEscape:i(gt),hardBreakTrailing:i(gt),htmlFlow:i(Mt,l),htmlFlowData:$,htmlText:i(Mt,l),htmlTextData:$,image:i(Ot),label:l,link:i(lr),listItem:i(vo),listItemValue:h,listOrdered:i(ar,c),listUnordered:i(ar),paragraph:i(yo),reference:g,referenceString:l,resourceDestinationString:l,resourceTitleString:l,setextHeading:i(ce),strong:i(xo),thematicBreak:i(bo)},exit:{atxHeading:s(),atxHeadingSequence:U,autolink:s(),autolinkEmail:_,autolinkProtocol:E,blockQuote:s(),characterEscapeValue:y,characterReferenceMarkerHexadecimal:ie,characterReferenceMarkerNumeric:ie,characterReferenceValue:oe,characterReference:w,codeFenced:s(k),codeFencedFence:x,codeFencedFenceInfo:p,codeFencedFenceMeta:m,codeFlowValue:y,codeIndented:s(v),codeText:s(j),codeTextData:y,data:y,definition:s(),definitionDestinationString:M,definitionLabelString:S,definitionTitleString:P,emphasis:s(),hardBreakEscape:s(F),hardBreakTrailing:s(F),htmlFlow:s(R),htmlFlowData:y,htmlText:s(T),htmlTextData:y,image:s(re),label:Ce,labelText:ge,lineEnding:L,link:s(J),listItem:s(),listOrdered:s(),listUnordered:s(),paragraph:s(),referenceString:ue,resourceDestinationString:d,resourceTitleString:me,resource:Se,setextHeading:s(O),setextHeadingLineSequence:V,setextHeadingText:C,strong:s(),thematicBreak:s()}};Ui(t,(e||{}).mdastExtensions||[]);const n={};return r;function r(b){let I={type:"root",children:[]};const H={stack:[I],tokenStack:[],config:t,enter:a,exit:u,buffer:l,resume:f,data:n},Y=[];let X=-1;for(;++X<b.length;)if(b[X][1].type==="listOrdered"||b[X][1].type==="listUnordered")if(b[X][0]==="enter")Y.push(X);else{const Ee=Y.pop();X=o(b,Ee,X)}for(X=-1;++X<b.length;){const Ee=t[b[X][0]];Vi.call(Ee,b[X][1].type)&&Ee[b[X][1].type].call(Object.assign({sliceSerialize:b[X][2].sliceSerialize},H),b[X][1])}if(H.tokenStack.length>0){const Ee=H.tokenStack[H.tokenStack.length-1];(Ee[1]||Rr).call(H,void 0,Ee[0])}for(I.position={start:He(b.length>0?b[0][1].start:{line:1,column:1,offset:0}),end:He(b.length>0?b[b.length-2][1].end:{line:1,column:1,offset:0})},X=-1;++X<t.transforms.length;)I=t.transforms[X](I)||I;return I}function o(b,I,H){let Y=I-1,X=-1,Ee=!1,tt,Te,mt,vt;for(;++Y<=H;){const ve=b[Y];switch(ve[1].type){case"listUnordered":case"listOrdered":case"blockQuote":{ve[0]==="enter"?X++:X--,vt=void 0;break}case"lineEndingBlank":{ve[0]==="enter"&&(tt&&!vt&&!X&&!mt&&(mt=Y),vt=void 0);break}case"linePrefix":case"listItemValue":case"listItemMarker":case"listItemPrefix":case"listItemPrefixWhitespace":break;default:vt=void 0}if(!X&&ve[0]==="enter"&&ve[1].type==="listItemPrefix"||X===-1&&ve[0]==="exit"&&(ve[1].type==="listUnordered"||ve[1].type==="listOrdered")){if(tt){let nt=Y;for(Te=void 0;nt--;){const Me=b[nt];if(Me[1].type==="lineEnding"||Me[1].type==="lineEndingBlank"){if(Me[0]==="exit")continue;Te&&(b[Te][1].type="lineEndingBlank",Ee=!0),Me[1].type="lineEnding",Te=nt}else if(!(Me[1].type==="linePrefix"||Me[1].type==="blockQuotePrefix"||Me[1].type==="blockQuotePrefixWhitespace"||Me[1].type==="blockQuoteMarker"||Me[1].type==="listItemIndent"))break}mt&&(!Te||mt<Te)&&(tt._spread=!0),tt.end=Object.assign({},Te?b[Te][1].start:ve[1].end),b.splice(Te||Y,0,["exit",tt,ve[2]]),Y++,H++}if(ve[1].type==="listItemPrefix"){const nt={type:"listItem",_spread:!1,start:Object.assign({},ve[1].start),end:void 0};tt=nt,b.splice(Y,0,["enter",nt,ve[2]]),Y++,H++,mt=void 0,vt=!0}}}return b[I][1]._spread=Ee,H}function i(b,I){return H;function H(Y){a.call(this,b(Y),Y),I&&I.call(this,Y)}}function l(){this.stack.push({type:"fragment",children:[]})}function a(b,I,H){this.stack[this.stack.length-1].children.push(b),this.stack.push(b),this.tokenStack.push([I,H||void 0]),b.position={start:He(I.start),end:void 0}}function s(b){return I;function I(H){b&&b.call(this,H),u.call(this,H)}}function u(b,I){const H=this.stack.pop(),Y=this.tokenStack.pop();if(Y)Y[0].type!==b.type&&(I?I.call(this,b,Y[0]):(Y[1]||Rr).call(this,b,Y[0]));else throw new Error("Cannot close `"+b.type+"` ("+Et({start:b.start,end:b.end})+"): it’s not open");H.position.end=He(b.end)}function f(){return rs(this.stack.pop())}function c(){this.data.expectingFirstListItemValue=!0}function h(b){if(this.data.expectingFirstListItemValue){const I=this.stack[this.stack.length-2];I.start=Number.parseInt(this.sliceSerialize(b),10),this.data.expectingFirstListItemValue=void 0}}function p(){const b=this.resume(),I=this.stack[this.stack.length-1];I.lang=b}function m(){const b=this.resume(),I=this.stack[this.stack.length-1];I.meta=b}function x(){this.data.flowCodeInside||(this.buffer(),this.data.flowCodeInside=!0)}function k(){const b=this.resume(),I=this.stack[this.stack.length-1];I.value=b.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g,""),this.data.flowCodeInside=void 0}function v(){const b=this.resume(),I=this.stack[this.stack.length-1];I.value=b.replace(/(\r?\n|\r)$/g,"")}function S(b){const I=this.resume(),H=this.stack[this.stack.length-1];H.label=I,H.identifier=ft(this.sliceSerialize(b)).toLowerCase()}function P(){const b=this.resume(),I=this.stack[this.stack.length-1];I.title=b}function M(){const b=this.resume(),I=this.stack[this.stack.length-1];I.url=b}function U(b){const I=this.stack[this.stack.length-1];if(!I.depth){const H=this.sliceSerialize(b).length;I.depth=H}}function C(){this.data.setextHeadingSlurpLineEnding=!0}function V(b){const I=this.stack[this.stack.length-1];I.depth=this.sliceSerialize(b).codePointAt(0)===61?1:2}function O(){this.data.setextHeadingSlurpLineEnding=void 0}function $(b){const I=this.stack[this.stack.length-1].children;let H=I[I.length-1];(!H||H.type!=="text")&&(H=ko(),H.position={start:He(b.start),end:void 0},I.push(H)),this.stack.push(H)}function y(b){const I=this.stack.pop();I.value+=this.sliceSerialize(b),I.position.end=He(b.end)}function L(b){const I=this.stack[this.stack.length-1];if(this.data.atHardBreak){const H=I.children[I.children.length-1];H.position.end=He(b.end),this.data.atHardBreak=void 0;return}!this.data.setextHeadingSlurpLineEnding&&t.canContainEols.includes(I.type)&&($.call(this,b),y.call(this,b))}function F(){this.data.atHardBreak=!0}function R(){const b=this.resume(),I=this.stack[this.stack.length-1];I.value=b}function T(){const b=this.resume(),I=this.stack[this.stack.length-1];I.value=b}function j(){const b=this.resume(),I=this.stack[this.stack.length-1];I.value=b}function J(){const b=this.stack[this.stack.length-1];if(this.data.inReference){const I=this.data.referenceType||"shortcut";b.type+="Reference",b.referenceType=I,delete b.url,delete b.title}else delete b.identifier,delete b.label;this.data.referenceType=void 0}function re(){const b=this.stack[this.stack.length-1];if(this.data.inReference){const I=this.data.referenceType||"shortcut";b.type+="Reference",b.referenceType=I,delete b.url,delete b.title}else delete b.identifier,delete b.label;this.data.referenceType=void 0}function ge(b){const I=this.sliceSerialize(b),H=this.stack[this.stack.length-2];H.label=nc(I),H.identifier=ft(I).toLowerCase()}function Ce(){const b=this.stack[this.stack.length-1],I=this.resume(),H=this.stack[this.stack.length-1];if(this.data.inReference=!0,H.type==="link"){const Y=b.children;H.children=Y}else H.alt=I}function d(){const b=this.resume(),I=this.stack[this.stack.length-1];I.url=b}function me(){const b=this.resume(),I=this.stack[this.stack.length-1];I.title=b}function Se(){this.data.inReference=void 0}function g(){this.data.referenceType="collapsed"}function ue(b){const I=this.resume(),H=this.stack[this.stack.length-1];H.label=I,H.identifier=ft(this.sliceSerialize(b)).toLowerCase(),this.data.referenceType="full"}function ie(b){this.data.characterReferenceType=b.type}function oe(b){const I=this.sliceSerialize(b),H=this.data.characterReferenceType;let Y;H?(Y=Ti(I,H==="characterReferenceMarkerNumeric"?10:16),this.data.characterReferenceType=void 0):Y=Qn(I);const X=this.stack[this.stack.length-1];X.value+=Y}function w(b){const I=this.stack.pop();I.position.end=He(b.end)}function E(b){y.call(this,b);const I=this.stack[this.stack.length-1];I.url=this.sliceSerialize(b)}function _(b){y.call(this,b);const I=this.stack[this.stack.length-1];I.url="mailto:"+this.sliceSerialize(b)}function D(){return{type:"blockquote",children:[]}}function A(){return{type:"code",lang:null,meta:null,value:""}}function N(){return{type:"inlineCode",value:""}}function W(){return{type:"definition",identifier:"",label:null,title:null,url:""}}function le(){return{type:"emphasis",children:[]}}function ce(){return{type:"heading",depth:0,children:[]}}function gt(){return{type:"break"}}function Mt(){return{type:"html",value:""}}function Ot(){return{type:"image",title:null,url:"",alt:null}}function lr(){return{type:"link",title:null,url:"",children:[]}}function ar(b){return{type:"list",ordered:b.type==="listOrdered",start:null,spread:b._spread,children:[]}}function vo(b){return{type:"listItem",spread:b._spread,checked:null,children:[]}}function yo(){return{type:"paragraph",children:[]}}function xo(){return{type:"strong",children:[]}}function ko(){return{type:"text",value:""}}function bo(){return{type:"thematicBreak"}}}function He(e){return{line:e.line,column:e.column,offset:e.offset}}function Ui(e,t){let n=-1;for(;++n<t.length;){const r=t[n];Array.isArray(r)?Ui(e,r):lc(e,r)}}function lc(e,t){let n;for(n in t)if(Vi.call(t,n))switch(n){case"canContainEols":{const r=t[n];r&&e[n].push(...r);break}case"transforms":{const r=t[n];r&&e[n].push(...r);break}case"enter":case"exit":{const r=t[n];r&&Object.assign(e[n],r);break}}}function Rr(e,t){throw e?new Error("Cannot close `"+e.type+"` ("+Et({start:e.start,end:e.end})+"): a different token (`"+t.type+"`, "+Et({start:t.start,end:t.end})+") is open"):new Error("Cannot close document, a token (`"+t.type+"`, "+Et({start:t.start,end:t.end})+") is still open")}function ac(e){const t=this;t.parser=n;function n(r){return ic(r,{...t.data("settings"),...e,extensions:t.data("micromarkExtensions")||[],mdastExtensions:t.data("fromMarkdownExtensions")||[]})}}function sc(e,t){const n={type:"element",tagName:"blockquote",properties:{},children:e.wrap(e.all(t),!0)};return e.patch(t,n),e.applyData(t,n)}function uc(e,t){const n={type:"element",tagName:"br",properties:{},children:[]};return e.patch(t,n),[e.applyData(t,n),{type:"text",value:` -`}]}function cc(e,t){const n=t.value?t.value+` -`:"",r={},o=t.lang?t.lang.split(/\s+/):[];o.length>0&&(r.className=["language-"+o[0]]);let i={type:"element",tagName:"code",properties:r,children:[{type:"text",value:n}]};return t.meta&&(i.data={meta:t.meta}),e.patch(t,i),i=e.applyData(t,i),i={type:"element",tagName:"pre",properties:{},children:[i]},e.patch(t,i),i}function fc(e,t){const n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function pc(e,t){const n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function hc(e,t){const n=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",r=String(t.identifier).toUpperCase(),o=dt(r.toLowerCase()),i=e.footnoteOrder.indexOf(r);let l,a=e.footnoteCounts.get(r);a===void 0?(a=0,e.footnoteOrder.push(r),l=e.footnoteOrder.length):l=i+1,a+=1,e.footnoteCounts.set(r,a);const s={type:"element",tagName:"a",properties:{href:"#"+n+"fn-"+o,id:n+"fnref-"+o+(a>1?"-"+a:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(l)}]};e.patch(t,s);const u={type:"element",tagName:"sup",properties:{},children:[s]};return e.patch(t,u),e.applyData(t,u)}function dc(e,t){const n={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function gc(e,t){if(e.options.allowDangerousHtml){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}}function qi(e,t){const n=t.referenceType;let r="]";if(n==="collapsed"?r+="[]":n==="full"&&(r+="["+(t.label||t.identifier)+"]"),t.type==="imageReference")return[{type:"text",value:"!["+t.alt+r}];const o=e.all(t),i=o[0];i&&i.type==="text"?i.value="["+i.value:o.unshift({type:"text",value:"["});const l=o[o.length-1];return l&&l.type==="text"?l.value+=r:o.push({type:"text",value:r}),o}function mc(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return qi(e,t);const o={src:dt(r.url||""),alt:t.alt};r.title!==null&&r.title!==void 0&&(o.title=r.title);const i={type:"element",tagName:"img",properties:o,children:[]};return e.patch(t,i),e.applyData(t,i)}function vc(e,t){const n={src:dt(t.url)};t.alt!==null&&t.alt!==void 0&&(n.alt=t.alt),t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,r),e.applyData(t,r)}function yc(e,t){const n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);const r={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)}function xc(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return qi(e,t);const o={href:dt(r.url||"")};r.title!==null&&r.title!==void 0&&(o.title=r.title);const i={type:"element",tagName:"a",properties:o,children:e.all(t)};return e.patch(t,i),e.applyData(t,i)}function kc(e,t){const n={href:dt(t.url)};t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function bc(e,t,n){const r=e.all(t),o=n?wc(n):$i(t),i={},l=[];if(typeof t.checked=="boolean"){const f=r[0];let c;f&&f.type==="element"&&f.tagName==="p"?c=f:(c={type:"element",tagName:"p",properties:{},children:[]},r.unshift(c)),c.children.length>0&&c.children.unshift({type:"text",value:" "}),c.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),i.className=["task-list-item"]}let a=-1;for(;++a<r.length;){const f=r[a];(o||a!==0||f.type!=="element"||f.tagName!=="p")&&l.push({type:"text",value:` -`}),f.type==="element"&&f.tagName==="p"&&!o?l.push(...f.children):l.push(f)}const s=r[r.length-1];s&&(o||s.type!=="element"||s.tagName!=="p")&&l.push({type:"text",value:` -`});const u={type:"element",tagName:"li",properties:i,children:l};return e.patch(t,u),e.applyData(t,u)}function wc(e){let t=!1;if(e.type==="list"){t=e.spread||!1;const n=e.children;let r=-1;for(;!t&&++r<n.length;)t=$i(n[r])}return t}function $i(e){return e.spread??e.children.length>1}function Cc(e,t){const n={},r=e.all(t);let o=-1;for(typeof t.start=="number"&&t.start!==1&&(n.start=t.start);++o<r.length;){const l=r[o];if(l.type==="element"&&l.tagName==="li"&&l.properties&&Array.isArray(l.properties.className)&&l.properties.className.includes("task-list-item")){n.className=["contains-task-list"];break}}const i={type:"element",tagName:t.ordered?"ol":"ul",properties:n,children:e.wrap(r,!0)};return e.patch(t,i),e.applyData(t,i)}function Sc(e,t){const n={type:"element",tagName:"p",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function Ec(e,t){const n={type:"root",children:e.wrap(e.all(t))};return e.patch(t,n),e.applyData(t,n)}function zc(e,t){const n={type:"element",tagName:"strong",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function Pc(e,t){const n=e.all(t),r=n.shift(),o=[];if(r){const l={type:"element",tagName:"thead",properties:{},children:e.wrap([r],!0)};e.patch(t.children[0],l),o.push(l)}if(n.length>0){const l={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},a=Yn(t.children[1]),s=Ei(t.children[t.children.length-1]);a&&s&&(l.position={start:a,end:s}),o.push(l)}const i={type:"element",tagName:"table",properties:{},children:e.wrap(o,!0)};return e.patch(t,i),e.applyData(t,i)}function Dc(e,t,n){const r=n?n.children:void 0,o=(r?r.indexOf(t):1)===0?"th":"td",i=n&&n.type==="table"?n.align:void 0,l=i?i.length:t.children.length;let a=-1;const s=[];for(;++a<l;){const f=t.children[a],c={},h=i?i[a]:void 0;h&&(c.align=h);let p={type:"element",tagName:o,properties:c,children:[]};f&&(p.children=e.all(f),e.patch(f,p),p=e.applyData(f,p)),s.push(p)}const u={type:"element",tagName:"tr",properties:{},children:e.wrap(s,!0)};return e.patch(t,u),e.applyData(t,u)}function Ic(e,t){const n={type:"element",tagName:"td",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}const Nr=9,jr=32;function _c(e){const t=String(e),n=/\r?\n|\r/g;let r=n.exec(t),o=0;const i=[];for(;r;)i.push(Br(t.slice(o,r.index),o>0,!0),r[0]),o=r.index+r[0].length,r=n.exec(t);return i.push(Br(t.slice(o),o>0,!1)),i.join("")}function Br(e,t,n){let r=0,o=e.length;if(t){let i=e.codePointAt(r);for(;i===Nr||i===jr;)r++,i=e.codePointAt(r)}if(n){let i=e.codePointAt(o-1);for(;i===Nr||i===jr;)o--,i=e.codePointAt(o-1)}return o>r?e.slice(r,o):""}function Ac(e,t){const n={type:"text",value:_c(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function Tc(e,t){const n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}const Mc={blockquote:sc,break:uc,code:cc,delete:fc,emphasis:pc,footnoteReference:hc,heading:dc,html:gc,imageReference:mc,image:vc,inlineCode:yc,linkReference:xc,link:kc,listItem:bc,list:Cc,paragraph:Sc,root:Ec,strong:zc,table:Pc,tableCell:Ic,tableRow:Dc,text:Ac,thematicBreak:Tc,toml:Nt,yaml:Nt,definition:Nt,footnoteDefinition:Nt};function Nt(){}function Oc(e,t){const n=[{type:"text",value:"↩"}];return t>1&&n.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(t)}]}),n}function Lc(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}function Fc(e){const t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||Oc,r=e.options.footnoteBackLabel||Lc,o=e.options.footnoteLabel||"Footnotes",i=e.options.footnoteLabelTagName||"h2",l=e.options.footnoteLabelProperties||{className:["sr-only"]},a=[];let s=-1;for(;++s<e.footnoteOrder.length;){const u=e.footnoteById.get(e.footnoteOrder[s]);if(!u)continue;const f=e.all(u),c=String(u.identifier).toUpperCase(),h=dt(c.toLowerCase());let p=0;const m=[],x=e.footnoteCounts.get(c);for(;x!==void 0&&++p<=x;){m.length>0&&m.push({type:"text",value:" "});let S=typeof n=="string"?n:n(s,p);typeof S=="string"&&(S={type:"text",value:S}),m.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+h+(p>1?"-"+p:""),dataFootnoteBackref:"",ariaLabel:typeof r=="string"?r:r(s,p),className:["data-footnote-backref"]},children:Array.isArray(S)?S:[S]})}const k=f[f.length-1];if(k&&k.type==="element"&&k.tagName==="p"){const S=k.children[k.children.length-1];S&&S.type==="text"?S.value+=" ":k.children.push({type:"text",value:" "}),k.children.push(...m)}else f.push(...m);const v={type:"element",tagName:"li",properties:{id:t+"fn-"+h},children:e.wrap(f,!0)};e.patch(u,v),a.push(v)}if(a.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:i,properties:{...Qe(l),id:"footnote-label"},children:[{type:"text",value:o}]},{type:"text",value:` -`},{type:"element",tagName:"ol",properties:{},children:e.wrap(a,!0)},{type:"text",value:` -`}]}}const Tn={}.hasOwnProperty,Rc={};function Nc(e,t){const n=t||Rc,r=new Map,o=new Map,i=new Map,l={...Mc,...n.handlers},a={all:u,applyData:Bc,definitionById:r,footnoteById:o,footnoteCounts:i,footnoteOrder:[],handlers:l,one:s,options:n,patch:jc,wrap:Vc};return Ze(e,function(f){if(f.type==="definition"||f.type==="footnoteDefinition"){const c=f.type==="definition"?r:o,h=String(f.identifier).toUpperCase();c.has(h)||c.set(h,f)}}),a;function s(f,c){const h=f.type,p=a.handlers[h];if(Tn.call(a.handlers,h)&&p)return p(a,f,c);if(a.options.passThrough&&a.options.passThrough.includes(h)){if("children"in f){const{children:m,...x}=f,k=Qe(x);return k.children=a.all(f),k}return Qe(f)}return(a.options.unknownHandler||Hc)(a,f,c)}function u(f){const c=[];if("children"in f){const h=f.children;let p=-1;for(;++p<h.length;){const m=a.one(h[p],f);if(m){if(p&&h[p-1].type==="break"&&(!Array.isArray(m)&&m.type==="text"&&(m.value=Hr(m.value)),!Array.isArray(m)&&m.type==="element")){const x=m.children[0];x&&x.type==="text"&&(x.value=Hr(x.value))}Array.isArray(m)?c.push(...m):c.push(m)}}}return c}}function jc(e,t){e.position&&(t.position=za(e))}function Bc(e,t){let n=t;if(e&&e.data){const r=e.data.hName,o=e.data.hChildren,i=e.data.hProperties;if(typeof r=="string")if(n.type==="element")n.tagName=r;else{const l="children"in n?n.children:[n];n={type:"element",tagName:r,properties:{},children:l}}n.type==="element"&&i&&Object.assign(n.properties,Qe(i)),"children"in n&&n.children&&o!==null&&o!==void 0&&(n.children=o)}return n}function Hc(e,t){const n=t.data||{},r="value"in t&&!(Tn.call(n,"hProperties")||Tn.call(n,"hChildren"))?{type:"text",value:t.value}:{type:"element",tagName:"div",properties:{},children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function Vc(e,t){const n=[];let r=-1;for(t&&n.push({type:"text",value:` -`});++r<e.length;)r&&n.push({type:"text",value:` -`}),n.push(e[r]);return t&&e.length>0&&n.push({type:"text",value:` -`}),n}function Hr(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function Vr(e,t){const n=Nc(e,t),r=n.one(e,void 0),o=Fc(n),i=Array.isArray(r)?{type:"root",children:r}:r||{type:"root",children:[]};return o&&i.children.push({type:"text",value:` -`},o),i}function Uc(e,t){return e&&"run"in e?async function(n,r){const o=Vr(n,{file:r,...t});await e.run(o,r)}:function(n,r){return Vr(n,{file:r,...e||t})}}function qc(e){Ze(e,function(t,n,r){if(n!==void 0&&r&&t.type==="paragraph"&&t.children.every(function(o){return o.type==="text"&&/^\s*$/.test(o.value)}))return r.children.splice(n,1),n})}function $c(e={except:["http","https"]}){return function(t){const n=new Map;Ze(t,"definition",function(r,o,i){if(n.set(r.identifier,r.url),i&&typeof o=="number"){const l=r.url;if(l&&l.includes(":")&&!e.except.some(a=>l.startsWith(`${a}:`)))return i.children.splice(o,1),o}}),Ze(t,function(r,o,i){if(i&&typeof o=="number"&&(r.type==="link"||r.type==="linkReference")){const l=r.type==="link"?r.url:n.get(r.identifier);if(l&&l.includes(":")&&!e.except.some(a=>l.startsWith(`${a}:`)))return i.children.splice(o,1,...r.children),o}}),qc(t)}}function Ur(e){if(e)throw e}var sn,qr;function Wc(){if(qr)return sn;qr=1;var e=Object.prototype.hasOwnProperty,t=Object.prototype.toString,n=Object.defineProperty,r=Object.getOwnPropertyDescriptor,o=function(s){return typeof Array.isArray=="function"?Array.isArray(s):t.call(s)==="[object Array]"},i=function(s){if(!s||t.call(s)!=="[object Object]")return!1;var u=e.call(s,"constructor"),f=s.constructor&&s.constructor.prototype&&e.call(s.constructor.prototype,"isPrototypeOf");if(s.constructor&&!u&&!f)return!1;var c;for(c in s);return typeof c>"u"||e.call(s,c)},l=function(s,u){n&&u.name==="__proto__"?n(s,u.name,{enumerable:!0,configurable:!0,value:u.newValue,writable:!0}):s[u.name]=u.newValue},a=function(s,u){if(u==="__proto__")if(e.call(s,u)){if(r)return r(s,u).value}else return;return s[u]};return sn=function s(){var u,f,c,h,p,m,x=arguments[0],k=1,v=arguments.length,S=!1;for(typeof x=="boolean"&&(S=x,x=arguments[1]||{},k=2),(x==null||typeof x!="object"&&typeof x!="function")&&(x={});k<v;++k)if(u=arguments[k],u!=null)for(f in u)c=a(x,f),h=a(u,f),x!==h&&(S&&h&&(i(h)||(p=o(h)))?(p?(p=!1,m=c&&o(c)?c:[]):m=c&&i(c)?c:{},l(x,{name:f,newValue:s(S,m,h)})):typeof h<"u"&&l(x,{name:f,newValue:h}));return x},sn}var Zc=Wc();const un=li(Zc);function Mn(e){if(typeof e!="object"||e===null)return!1;const t=Object.getPrototypeOf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}function Yc(){const e=[],t={run:n,use:r};return t;function n(...o){let i=-1;const l=o.pop();if(typeof l!="function")throw new TypeError("Expected function as last argument, not "+l);a(null,...o);function a(s,...u){const f=e[++i];let c=-1;if(s){l(s);return}for(;++c<o.length;)(u[c]===null||u[c]===void 0)&&(u[c]=o[c]);o=u,f?Gc(f,a)(...u):l(null,...u)}}function r(o){if(typeof o!="function")throw new TypeError("Expected `middelware` to be a function, not "+o);return e.push(o),t}}function Gc(e,t){let n;return r;function r(...l){const a=e.length>l.length;let s;a&&l.push(o);try{s=e.apply(this,l)}catch(u){const f=u;if(a&&n)throw f;return o(f)}a||(s&&s.then&&typeof s.then=="function"?s.then(i,o):s instanceof Error?o(s):i(s))}function o(l,...a){n||(n=!0,t(l,...a))}function i(l){o(null,l)}}const ze={basename:Kc,dirname:Xc,extname:Qc,join:Jc,sep:"/"};function Kc(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');At(e);let n=0,r=-1,o=e.length,i;if(t===void 0||t.length===0||t.length>e.length){for(;o--;)if(e.codePointAt(o)===47){if(i){n=o+1;break}}else r<0&&(i=!0,r=o+1);return r<0?"":e.slice(n,r)}if(t===e)return"";let l=-1,a=t.length-1;for(;o--;)if(e.codePointAt(o)===47){if(i){n=o+1;break}}else l<0&&(i=!0,l=o+1),a>-1&&(e.codePointAt(o)===t.codePointAt(a--)?a<0&&(r=o):(a=-1,r=l));return n===r?r=l:r<0&&(r=e.length),e.slice(n,r)}function Xc(e){if(At(e),e.length===0)return".";let t=-1,n=e.length,r;for(;--n;)if(e.codePointAt(n)===47){if(r){t=n;break}}else r||(r=!0);return t<0?e.codePointAt(0)===47?"/":".":t===1&&e.codePointAt(0)===47?"//":e.slice(0,t)}function Qc(e){At(e);let t=e.length,n=-1,r=0,o=-1,i=0,l;for(;t--;){const a=e.codePointAt(t);if(a===47){if(l){r=t+1;break}continue}n<0&&(l=!0,n=t+1),a===46?o<0?o=t:i!==1&&(i=1):o>-1&&(i=-1)}return o<0||n<0||i===0||i===1&&o===n-1&&o===r+1?"":e.slice(o,n)}function Jc(...e){let t=-1,n;for(;++t<e.length;)At(e[t]),e[t]&&(n=n===void 0?e[t]:n+"/"+e[t]);return n===void 0?".":ef(n)}function ef(e){At(e);const t=e.codePointAt(0)===47;let n=tf(e,!t);return n.length===0&&!t&&(n="."),n.length>0&&e.codePointAt(e.length-1)===47&&(n+="/"),t?"/"+n:n}function tf(e,t){let n="",r=0,o=-1,i=0,l=-1,a,s;for(;++l<=e.length;){if(l<e.length)a=e.codePointAt(l);else{if(a===47)break;a=47}if(a===47){if(!(o===l-1||i===1))if(o!==l-1&&i===2){if(n.length<2||r!==2||n.codePointAt(n.length-1)!==46||n.codePointAt(n.length-2)!==46){if(n.length>2){if(s=n.lastIndexOf("/"),s!==n.length-1){s<0?(n="",r=0):(n=n.slice(0,s),r=n.length-1-n.lastIndexOf("/")),o=l,i=0;continue}}else if(n.length>0){n="",r=0,o=l,i=0;continue}}t&&(n=n.length>0?n+"/..":"..",r=2)}else n.length>0?n+="/"+e.slice(o+1,l):n=e.slice(o+1,l),r=l-o-1;o=l,i=0}else a===46&&i>-1?i++:i=-1}return n}function At(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const nf={cwd:rf};function rf(){return"/"}function On(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function of(e){if(typeof e=="string")e=new URL(e);else if(!On(e)){const t=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code="ERR_INVALID_ARG_TYPE",t}if(e.protocol!=="file:"){const t=new TypeError("The URL must be of scheme file");throw t.code="ERR_INVALID_URL_SCHEME",t}return lf(e)}function lf(e){if(e.hostname!==""){const r=new TypeError('File URL host must be "localhost" or empty on darwin');throw r.code="ERR_INVALID_FILE_URL_HOST",r}const t=e.pathname;let n=-1;for(;++n<t.length;)if(t.codePointAt(n)===37&&t.codePointAt(n+1)===50){const r=t.codePointAt(n+2);if(r===70||r===102){const o=new TypeError("File URL path must not include encoded / characters");throw o.code="ERR_INVALID_FILE_URL_PATH",o}}return decodeURIComponent(t)}const cn=["history","path","basename","stem","extname","dirname"];class af{constructor(t){let n;t?On(t)?n={path:t}:typeof t=="string"||sf(t)?n={value:t}:n=t:n={},this.cwd="cwd"in n?"":nf.cwd(),this.data={},this.history=[],this.messages=[],this.value,this.map,this.result,this.stored;let r=-1;for(;++r<cn.length;){const i=cn[r];i in n&&n[i]!==void 0&&n[i]!==null&&(this[i]=i==="history"?[...n[i]]:n[i])}let o;for(o in n)cn.includes(o)||(this[o]=n[o])}get basename(){return typeof this.path=="string"?ze.basename(this.path):void 0}set basename(t){pn(t,"basename"),fn(t,"basename"),this.path=ze.join(this.dirname||"",t)}get dirname(){return typeof this.path=="string"?ze.dirname(this.path):void 0}set dirname(t){$r(this.basename,"dirname"),this.path=ze.join(t||"",this.basename)}get extname(){return typeof this.path=="string"?ze.extname(this.path):void 0}set extname(t){if(fn(t,"extname"),$r(this.dirname,"extname"),t){if(t.codePointAt(0)!==46)throw new Error("`extname` must start with `.`");if(t.includes(".",1))throw new Error("`extname` cannot contain multiple dots")}this.path=ze.join(this.dirname,this.stem+(t||""))}get path(){return this.history[this.history.length-1]}set path(t){On(t)&&(t=of(t)),pn(t,"path"),this.path!==t&&this.history.push(t)}get stem(){return typeof this.path=="string"?ze.basename(this.path,this.extname):void 0}set stem(t){pn(t,"stem"),fn(t,"stem"),this.path=ze.join(this.dirname||"",t+(this.extname||""))}fail(t,n,r){const o=this.message(t,n,r);throw o.fatal=!0,o}info(t,n,r){const o=this.message(t,n,r);return o.fatal=void 0,o}message(t,n,r){const o=new ae(t,n,r);return this.path&&(o.name=this.path+":"+o.name,o.file=this.path),o.fatal=!1,this.messages.push(o),o}toString(t){return this.value===void 0?"":typeof this.value=="string"?this.value:new TextDecoder(t||void 0).decode(this.value)}}function fn(e,t){if(e&&e.includes(ze.sep))throw new Error("`"+t+"` cannot be a path: did not expect `"+ze.sep+"`")}function pn(e,t){if(!e)throw new Error("`"+t+"` cannot be empty")}function $r(e,t){if(!e)throw new Error("Setting `"+t+"` requires `path` to be set too")}function sf(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const uf=(function(e){const t=this.constructor.prototype,n=t[e],r=function(){return n.apply(r,arguments)};return Object.setPrototypeOf(r,t),r}),cf={}.hasOwnProperty;class tr extends uf{constructor(){super("copy"),this.Compiler=void 0,this.Parser=void 0,this.attachers=[],this.compiler=void 0,this.freezeIndex=-1,this.frozen=void 0,this.namespace={},this.parser=void 0,this.transformers=Yc()}copy(){const t=new tr;let n=-1;for(;++n<this.attachers.length;){const r=this.attachers[n];t.use(...r)}return t.data(un(!0,{},this.namespace)),t}data(t,n){return typeof t=="string"?arguments.length===2?(gn("data",this.frozen),this.namespace[t]=n,this):cf.call(this.namespace,t)&&this.namespace[t]||void 0:t?(gn("data",this.frozen),this.namespace=t,this):this.namespace}freeze(){if(this.frozen)return this;const t=this;for(;++this.freezeIndex<this.attachers.length;){const[n,...r]=this.attachers[this.freezeIndex];if(r[0]===!1)continue;r[0]===!0&&(r[0]=void 0);const o=n.call(t,...r);typeof o=="function"&&this.transformers.use(o)}return this.frozen=!0,this.freezeIndex=Number.POSITIVE_INFINITY,this}parse(t){this.freeze();const n=jt(t),r=this.parser||this.Parser;return hn("parse",r),r(String(n),n)}process(t,n){const r=this;return this.freeze(),hn("process",this.parser||this.Parser),dn("process",this.compiler||this.Compiler),n?o(void 0,n):new Promise(o);function o(i,l){const a=jt(t),s=r.parse(a);r.run(s,a,function(f,c,h){if(f||!c||!h)return u(f);const p=c,m=r.stringify(p,h);hf(m)?h.value=m:h.result=m,u(f,h)});function u(f,c){f||!c?l(f):i?i(c):n(void 0,c)}}}processSync(t){let n=!1,r;return this.freeze(),hn("processSync",this.parser||this.Parser),dn("processSync",this.compiler||this.Compiler),this.process(t,o),Zr("processSync","process",n),r;function o(i,l){n=!0,Ur(i),r=l}}run(t,n,r){Wr(t),this.freeze();const o=this.transformers;return!r&&typeof n=="function"&&(r=n,n=void 0),r?i(void 0,r):new Promise(i);function i(l,a){const s=jt(n);o.run(t,s,u);function u(f,c,h){const p=c||t;f?a(f):l?l(p):r(void 0,p,h)}}}runSync(t,n){let r=!1,o;return this.run(t,n,i),Zr("runSync","run",r),o;function i(l,a){Ur(l),o=a,r=!0}}stringify(t,n){this.freeze();const r=jt(n),o=this.compiler||this.Compiler;return dn("stringify",o),Wr(t),o(t,r)}use(t,...n){const r=this.attachers,o=this.namespace;if(gn("use",this.frozen),t!=null)if(typeof t=="function")s(t,n);else if(typeof t=="object")Array.isArray(t)?a(t):l(t);else throw new TypeError("Expected usable value, not `"+t+"`");return this;function i(u){if(typeof u=="function")s(u,[]);else if(typeof u=="object")if(Array.isArray(u)){const[f,...c]=u;s(f,c)}else l(u);else throw new TypeError("Expected usable value, not `"+u+"`")}function l(u){if(!("plugins"in u)&&!("settings"in u))throw new Error("Expected usable value but received an empty preset, which is probably a mistake: presets typically come with `plugins` and sometimes with `settings`, but this has neither");a(u.plugins),u.settings&&(o.settings=un(!0,o.settings,u.settings))}function a(u){let f=-1;if(u!=null)if(Array.isArray(u))for(;++f<u.length;){const c=u[f];i(c)}else throw new TypeError("Expected a list of plugins, not `"+u+"`")}function s(u,f){let c=-1,h=-1;for(;++c<r.length;)if(r[c][0]===u){h=c;break}if(h===-1)r.push([u,...f]);else if(f.length>0){let[p,...m]=f;const x=r[h][1];Mn(x)&&Mn(p)&&(p=un(!0,x,p)),r[h]=[u,p,...m]}}}}const ff=new tr().freeze();function hn(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function dn(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function gn(e,t){if(t)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function Wr(e){if(!Mn(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function Zr(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function jt(e){return pf(e)?e:new af(e)}function pf(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function hf(e){return typeof e=="string"||df(e)}function df(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const gf={name:"NcReferenceList",components:{NcReferenceWidget:Bl},props:{text:{type:String,default:""},referenceData:{type:Array,default:null},limit:{type:Number,default:1},displayFallback:{type:Boolean,default:!1},interactive:{type:Boolean,default:!0},interactiveOptIn:{type:Boolean,default:!1}},emits:["loaded"],data(){return{references:null,loading:!0}},computed:{isVisible(){return this.loading||this.displayedReferences.length!==0},values(){return this.referenceData?this.referenceData:this.displayFallback&&!this.loading&&!this.references?[this.fallbackReference]:this.references?Object.values(this.references):[]},firstReference(){return this.values[0]??null},displayedReferences(){return this.values.filter(Boolean).slice(0,this.limit)},fallbackReference(){return{accessible:!0,openGraphObject:{id:this.text,link:this.text,name:this.text},richObjectType:"open-graph"}}},watch:{text:"fetch"},mounted(){this.fetch()},methods:{fetch(){if(this.loading=!0,this.referenceData){this.references=null,this.loading=!1;return}if(!new RegExp(cr).exec(this.text)){this.references=null,this.loading=!1;return}this.resolve().then(e=>{this.references=e.data.ocs.data.references,this.loading=!1,this.$emit("loaded")}).catch(e=>{Ne.error("[NcReferenceList] Failed to extract references",{error:e}),this.loading=!1,this.$emit("loaded")})},resolve(){const e=new RegExp(cr).exec(this.text.trim()),t=Eo()===null;return this.limit===1&&e?t?Ft.get(Lt("references/resolvePublic")+`?reference=${encodeURIComponent(e[0])}&sharingToken=${sr()}`):Ft.get(Lt("references/resolve")+`?reference=${encodeURIComponent(e[0])}`):t?Ft.post(Lt("references/extractPublic"),{text:this.text,resolve:!0,limit:this.limit,sharingToken:sr()}):Ft.post(Lt("references/extract"),{text:this.text,resolve:!0,limit:this.limit})}}};function mf(e,t,n,r,o,i){const l=ut("NcReferenceWidget");return i.isVisible?(ne(),we("div",{key:0,class:qe(["widgets--list",{"icon-loading":o.loading}])},[(ne(!0),we(jn,null,No(i.displayedReferences,a=>(ne(),We(l,{key:a.openGraphObject?.id,reference:a,interactive:n.interactive,"interactive-opt-in":n.interactiveOptIn},null,8,["reference","interactive","interactive-opt-in"]))),128))],2)):Ie("",!0)}const mn=pt(gf,[["render",mf],["__scopeId","data-v-cd116174"]]);function Yr(e,t){const n=String(e);if(typeof t!="string")throw new TypeError("Expected character");let r=0,o=n.indexOf(t);for(;o!==-1;)r++,o=n.indexOf(t,o+t.length);return r}const It=Jt(/[A-Za-z]/),nr=Jt(/[\dA-Za-z]/);function vf(e){return e!==null&&(e<32||e===127)}function lt(e){return e!==null&&e<-2}function de(e){return e!==null&&(e<0||e===32)}function Le(e){return e===-2||e===-1||e===32}const Qt=Jt(new RegExp("\\p{P}|\\p{S}","u")),Je=Jt(/\s/);function Jt(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function yf(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}const en=(function(e){if(e==null)return wf;if(typeof e=="function")return tn(e);if(typeof e=="object")return Array.isArray(e)?xf(e):kf(e);if(typeof e=="string")return bf(e);throw new Error("Expected function, string, or object as test")});function xf(e){const t=[];let n=-1;for(;++n<e.length;)t[n]=en(e[n]);return tn(r);function r(...o){let i=-1;for(;++i<t.length;)if(t[i].apply(this,o))return!0;return!1}}function kf(e){const t=e;return tn(n);function n(r){const o=r;let i;for(i in e)if(o[i]!==t[i])return!1;return!0}}function bf(e){return tn(t);function t(n){return n&&n.type===e}}function tn(e){return t;function t(n,r,o){return!!(Cf(n)&&e.call(this,n,typeof r=="number"?r:void 0,o||void 0))}}function wf(){return!0}function Cf(e){return e!==null&&typeof e=="object"&&"type"in e}const Wi=[],Sf=!0,Gr=!1,Ef="skip";function zf(e,t,n,r){let o;o=t;const i=en(o),l=1;a(e,void 0,[])();function a(s,u,f){const c=s&&typeof s=="object"?s:{};if(typeof c.type=="string"){const p=typeof c.tagName=="string"?c.tagName:typeof c.name=="string"?c.name:void 0;Object.defineProperty(h,"name",{value:"node ("+(s.type+(p?"<"+p+">":""))+")"})}return h;function h(){let p=Wi,m,x,k;if(i(s,u,f[f.length-1]||void 0)&&(p=Pf(n(s,f)),p[0]===Gr))return p;if("children"in s&&s.children){const v=s;if(v.children&&p[0]!==Ef)for(x=-1+l,k=f.concat(v);x>-1&&x<v.children.length;){const S=v.children[x];if(m=a(S,x,k)(),m[0]===Gr)return m;x=typeof m[1]=="number"?m[1]:x+l}}return p}}}function Pf(e){return Array.isArray(e)?e:typeof e=="number"?[Sf,e]:e==null?Wi:[e]}function Df(e,t,n){const r=en((n||{}).ignore||[]),o=If(t);let i=-1;for(;++i<o.length;)zf(e,"text",l);function l(s,u){let f=-1,c;for(;++f<u.length;){const h=u[f],p=c?c.children:void 0;if(r(h,p?p.indexOf(h):void 0,c))return;c=h}if(c)return a(s,u)}function a(s,u){const f=u[u.length-1],c=o[i][0],h=o[i][1];let p=0;const m=f.children.indexOf(s);let x=!1,k=[];c.lastIndex=0;let v=c.exec(s.value);for(;v;){const S=v.index,P={index:v.index,input:v.input,stack:[...u,s]};let M=h(...v,P);if(typeof M=="string"&&(M=M.length>0?{type:"text",value:M}:void 0),M===!1?c.lastIndex=S+1:(p!==S&&k.push({type:"text",value:s.value.slice(p,S)}),Array.isArray(M)?k.push(...M):M&&k.push(M),p=S+v[0].length,x=!0),!c.global)break;v=c.exec(s.value)}return x?(p<s.value.length&&k.push({type:"text",value:s.value.slice(p)}),f.children.splice(m,1,...k)):k=[s],m+k.length}}function If(e){const t=[];if(!Array.isArray(e))throw new TypeError("Expected find and replace tuple or list of tuples");const n=!e[0]||Array.isArray(e[0])?e:[e];let r=-1;for(;++r<n.length;){const o=n[r];t.push([_f(o[0]),Af(o[1])])}return t}function _f(e){return typeof e=="string"?new RegExp(yf(e),"g"):e}function Af(e){return typeof e=="function"?e:function(){return e}}const vn="phrasing",yn=["autolink","link","image","label"];function Tf(){return{transforms:[jf],enter:{literalAutolink:Of,literalAutolinkEmail:xn,literalAutolinkHttp:xn,literalAutolinkWww:xn},exit:{literalAutolink:Nf,literalAutolinkEmail:Rf,literalAutolinkHttp:Lf,literalAutolinkWww:Ff}}}function Mf(){return{unsafe:[{character:"@",before:"[+\\-.\\w]",after:"[\\-.\\w]",inConstruct:vn,notInConstruct:yn},{character:".",before:"[Ww]",after:"[\\-.\\w]",inConstruct:vn,notInConstruct:yn},{character:":",before:"[ps]",after:"\\/",inConstruct:vn,notInConstruct:yn}]}}function Of(e){this.enter({type:"link",title:null,url:"",children:[]},e)}function xn(e){this.config.enter.autolinkProtocol.call(this,e)}function Lf(e){this.config.exit.autolinkProtocol.call(this,e)}function Ff(e){this.config.exit.data.call(this,e);const t=this.stack[this.stack.length-1];t.type,t.url="http://"+this.sliceSerialize(e)}function Rf(e){this.config.exit.autolinkEmail.call(this,e)}function Nf(e){this.exit(e)}function jf(e){Df(e,[[/(https?:\/\/|www(?=\.))([-.\w]+)([^ \t\r\n]*)/gi,Bf],[/([-.\w+]+)@([-\w]+(?:\.[-\w]+)+)/g,Hf]],{ignore:["link","linkReference"]})}function Bf(e,t,n,r,o){let i="";if(!Zi(o)||(/^w/i.test(t)&&(n=t+n,t="",i="http://"),!Vf(n)))return!1;const l=Uf(n+r);if(!l[0])return!1;const a={type:"link",title:null,url:i+t+l[0],children:[{type:"text",value:t+l[0]}]};return l[1]?[a,{type:"text",value:l[1]}]:a}function Hf(e,t,n,r){return!Zi(r,!0)||/[-\d_]$/.test(n)?!1:{type:"link",title:null,url:"mailto:"+t+"@"+n,children:[{type:"text",value:t+"@"+n}]}}function Vf(e){const t=e.split(".");return!(t.length<2||t[t.length-1]&&(/_/.test(t[t.length-1])||!/[a-zA-Z\d]/.test(t[t.length-1]))||t[t.length-2]&&(/_/.test(t[t.length-2])||!/[a-zA-Z\d]/.test(t[t.length-2])))}function Uf(e){const t=/[!"&'),.:;<>?\]}]+$/.exec(e);if(!t)return[e,void 0];e=e.slice(0,t.index);let n=t[0],r=n.indexOf(")");const o=Yr(e,"(");let i=Yr(e,")");for(;r!==-1&&o>i;)e+=n.slice(0,r+1),n=n.slice(r+1),r=n.indexOf(")"),i++;return[e,n]}function Zi(e,t){const n=e.input.charCodeAt(e.index-1);return(e.index===0||Je(n)||Qt(n))&&(!t||n!==47)}function Tt(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}Yi.peek=Qf;function qf(){this.buffer()}function $f(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function Wf(){this.buffer()}function Zf(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function Yf(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Tt(this.sliceSerialize(e)).toLowerCase(),n.label=t}function Gf(e){this.exit(e)}function Kf(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Tt(this.sliceSerialize(e)).toLowerCase(),n.label=t}function Xf(e){this.exit(e)}function Qf(){return"["}function Yi(e,t,n,r){const o=n.createTracker(r);let i=o.move("[^");const l=n.enter("footnoteReference"),a=n.enter("reference");return i+=o.move(n.safe(n.associationId(e),{after:"]",before:i})),a(),l(),i+=o.move("]"),i}function Jf(){return{enter:{gfmFootnoteCallString:qf,gfmFootnoteCall:$f,gfmFootnoteDefinitionLabelString:Wf,gfmFootnoteDefinition:Zf},exit:{gfmFootnoteCallString:Yf,gfmFootnoteCall:Gf,gfmFootnoteDefinitionLabelString:Kf,gfmFootnoteDefinition:Xf}}}function ep(e){let t=!1;return e&&e.firstLineBlank&&(t=!0),{handlers:{footnoteDefinition:n,footnoteReference:Yi},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]};function n(r,o,i,l){const a=i.createTracker(l);let s=a.move("[^");const u=i.enter("footnoteDefinition"),f=i.enter("label");return s+=a.move(i.safe(i.associationId(r),{before:s,after:"]"})),f(),s+=a.move("]:"),r.children&&r.children.length>0&&(a.shift(4),s+=a.move((t?` -`:" ")+i.indentLines(i.containerFlow(r,a.current()),t?Gi:tp))),u(),s}}function tp(e,t,n){return t===0?e:Gi(e,t,n)}function Gi(e,t,n){return(n?"":" ")+e}const np=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];Ki.peek=ap;function rp(){return{canContainEols:["delete"],enter:{strikethrough:op},exit:{strikethrough:lp}}}function ip(){return{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:np}],handlers:{delete:Ki}}}function op(e){this.enter({type:"delete",children:[]},e)}function lp(e){this.exit(e)}function Ki(e,t,n,r){const o=n.createTracker(r),i=n.enter("strikethrough");let l=o.move("~~");return l+=n.containerPhrasing(e,{...o.current(),before:l,after:"~"}),l+=o.move("~~"),i(),l}function ap(){return"~"}function sp(e){return e.length}function up(e,t){const n=t||{},r=(n.align||[]).concat(),o=n.stringLength||sp,i=[],l=[],a=[],s=[];let u=0,f=-1;for(;++f<e.length;){const x=[],k=[];let v=-1;for(e[f].length>u&&(u=e[f].length);++v<e[f].length;){const S=cp(e[f][v]);if(n.alignDelimiters!==!1){const P=o(S);k[v]=P,(s[v]===void 0||P>s[v])&&(s[v]=P)}x.push(S)}l[f]=x,a[f]=k}let c=-1;if(typeof r=="object"&&"length"in r)for(;++c<u;)i[c]=Kr(r[c]);else{const x=Kr(r);for(;++c<u;)i[c]=x}c=-1;const h=[],p=[];for(;++c<u;){const x=i[c];let k="",v="";x===99?(k=":",v=":"):x===108?k=":":x===114&&(v=":");let S=n.alignDelimiters===!1?1:Math.max(1,s[c]-k.length-v.length);const P=k+"-".repeat(S)+v;n.alignDelimiters!==!1&&(S=k.length+S+v.length,S>s[c]&&(s[c]=S),p[c]=S),h[c]=P}l.splice(1,0,h),a.splice(1,0,p),f=-1;const m=[];for(;++f<l.length;){const x=l[f],k=a[f];c=-1;const v=[];for(;++c<u;){const S=x[c]||"";let P="",M="";if(n.alignDelimiters!==!1){const U=s[c]-(k[c]||0),C=i[c];C===114?P=" ".repeat(U):C===99?U%2?(P=" ".repeat(U/2+.5),M=" ".repeat(U/2-.5)):(P=" ".repeat(U/2),M=P):M=" ".repeat(U)}n.delimiterStart!==!1&&!c&&v.push("|"),n.padding!==!1&&!(n.alignDelimiters===!1&&S==="")&&(n.delimiterStart!==!1||c)&&v.push(" "),n.alignDelimiters!==!1&&v.push(P),v.push(S),n.alignDelimiters!==!1&&v.push(M),n.padding!==!1&&v.push(" "),(n.delimiterEnd!==!1||c!==u-1)&&v.push("|")}m.push(n.delimiterEnd===!1?v.join("").replace(/ +$/,""):v.join(""))}return m.join(` -`)}function cp(e){return e==null?"":String(e)}function Kr(e){const t=typeof e=="string"?e.codePointAt(0):0;return t===67||t===99?99:t===76||t===108?108:t===82||t===114?114:0}function fp(e,t,n,r){const o=n.enter("blockquote"),i=n.createTracker(r);i.move("> "),i.shift(2);const l=n.indentLines(n.containerFlow(e,i.current()),pp);return o(),l}function pp(e,t,n){return">"+(n?"":" ")+e}function hp(e,t){return Xr(e,t.inConstruct,!0)&&!Xr(e,t.notInConstruct,!1)}function Xr(e,t,n){if(typeof t=="string"&&(t=[t]),!t||t.length===0)return n;let r=-1;for(;++r<t.length;)if(e.includes(t[r]))return!0;return!1}function Qr(e,t,n,r){let o=-1;for(;++o<n.unsafe.length;)if(n.unsafe[o].character===` -`&&hp(n.stack,n.unsafe[o]))return/[ \t]/.test(r.before)?"":" ";return`\\ -`}function dp(e,t){const n=String(e);let r=n.indexOf(t),o=r,i=0,l=0;if(typeof t!="string")throw new TypeError("Expected substring");for(;r!==-1;)r===o?++i>l&&(l=i):i=1,o=r+t.length,r=n.indexOf(t,o);return l}function gp(e,t){return!!(t.options.fences===!1&&e.value&&!e.lang&&/[^ \r\n]/.test(e.value)&&!/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(e.value))}function mp(e){const t=e.options.fence||"`";if(t!=="`"&&t!=="~")throw new Error("Cannot serialize code with `"+t+"` for `options.fence`, expected `` ` `` or `~`");return t}function vp(e,t,n,r){const o=mp(n),i=e.value||"",l=o==="`"?"GraveAccent":"Tilde";if(gp(e,n)){const c=n.enter("codeIndented"),h=n.indentLines(i,yp);return c(),h}const a=n.createTracker(r),s=o.repeat(Math.max(dp(i,o)+1,3)),u=n.enter("codeFenced");let f=a.move(s);if(e.lang){const c=n.enter(`codeFencedLang${l}`);f+=a.move(n.safe(e.lang,{before:f,after:" ",encode:["`"],...a.current()})),c()}if(e.lang&&e.meta){const c=n.enter(`codeFencedMeta${l}`);f+=a.move(" "),f+=a.move(n.safe(e.meta,{before:f,after:` -`,encode:["`"],...a.current()})),c()}return f+=a.move(` -`),i&&(f+=a.move(i+` -`)),f+=a.move(s),u(),f}function yp(e,t,n){return(n?"":" ")+e}function rr(e){const t=e.options.quote||'"';if(t!=='"'&&t!=="'")throw new Error("Cannot serialize title with `"+t+"` for `options.quote`, expected `\"`, or `'`");return t}function xp(e,t,n,r){const o=rr(n),i=o==='"'?"Quote":"Apostrophe",l=n.enter("definition");let a=n.enter("label");const s=n.createTracker(r);let u=s.move("[");return u+=s.move(n.safe(n.associationId(e),{before:u,after:"]",...s.current()})),u+=s.move("]: "),a(),!e.url||/[\0- \u007F]/.test(e.url)?(a=n.enter("destinationLiteral"),u+=s.move("<"),u+=s.move(n.safe(e.url,{before:u,after:">",...s.current()})),u+=s.move(">")):(a=n.enter("destinationRaw"),u+=s.move(n.safe(e.url,{before:u,after:e.title?" ":` -`,...s.current()}))),a(),e.title&&(a=n.enter(`title${i}`),u+=s.move(" "+o),u+=s.move(n.safe(e.title,{before:u,after:o,...s.current()})),u+=s.move(o),a()),l(),u}function kp(e){const t=e.options.emphasis||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize emphasis with `"+t+"` for `options.emphasis`, expected `*`, or `_`");return t}function _t(e){return"&#x"+e.toString(16).toUpperCase()+";"}function Wt(e){if(e===null||de(e)||Je(e))return 1;if(Qt(e))return 2}function Zt(e,t,n){const r=Wt(e),o=Wt(t);return r===void 0?o===void 0?n==="_"?{inside:!0,outside:!0}:{inside:!1,outside:!1}:o===1?{inside:!0,outside:!0}:{inside:!1,outside:!0}:r===1?o===void 0?{inside:!1,outside:!1}:o===1?{inside:!0,outside:!0}:{inside:!1,outside:!1}:o===void 0?{inside:!1,outside:!1}:o===1?{inside:!0,outside:!1}:{inside:!1,outside:!1}}Xi.peek=bp;function Xi(e,t,n,r){const o=kp(n),i=n.enter("emphasis"),l=n.createTracker(r),a=l.move(o);let s=l.move(n.containerPhrasing(e,{after:o,before:a,...l.current()}));const u=s.charCodeAt(0),f=Zt(r.before.charCodeAt(r.before.length-1),u,o);f.inside&&(s=_t(u)+s.slice(1));const c=s.charCodeAt(s.length-1),h=Zt(r.after.charCodeAt(0),c,o);h.inside&&(s=s.slice(0,-1)+_t(c));const p=l.move(o);return i(),n.attentionEncodeSurroundingInfo={after:h.outside,before:f.outside},a+s+p}function bp(e,t,n){return n.options.emphasis||"*"}const wp={};function Qi(e,t){const n=wp,r=typeof n.includeImageAlt=="boolean"?n.includeImageAlt:!0,o=typeof n.includeHtml=="boolean"?n.includeHtml:!0;return Ji(e,r,o)}function Ji(e,t,n){if(Cp(e)){if("value"in e)return e.type==="html"&&!n?"":e.value;if(t&&"alt"in e&&e.alt)return e.alt;if("children"in e)return Jr(e.children,t,n)}return Array.isArray(e)?Jr(e,t,n):""}function Jr(e,t,n){const r=[];let o=-1;for(;++o<e.length;)r[o]=Ji(e[o],t,n);return r.join("")}function Cp(e){return!!(e&&typeof e=="object")}function Sp(e,t){let n=!1;return Ze(e,function(r){if("value"in r&&/\r?\n|\r/.test(r.value)||r.type==="break")return n=!0,rl}),!!((!e.depth||e.depth<3)&&Qi(e)&&(t.options.setext||n))}function Ep(e,t,n,r){const o=Math.max(Math.min(6,e.depth||1),1),i=n.createTracker(r);if(Sp(e,n)){const f=n.enter("headingSetext"),c=n.enter("phrasing"),h=n.containerPhrasing(e,{...i.current(),before:` -`,after:` -`});return c(),f(),h+` -`+(o===1?"=":"-").repeat(h.length-(Math.max(h.lastIndexOf("\r"),h.lastIndexOf(` -`))+1))}const l="#".repeat(o),a=n.enter("headingAtx"),s=n.enter("phrasing");i.move(l+" ");let u=n.containerPhrasing(e,{before:"# ",after:` -`,...i.current()});return/^[\t ]/.test(u)&&(u=_t(u.charCodeAt(0))+u.slice(1)),u=u?l+" "+u:l,n.options.closeAtx&&(u+=" "+l),s(),a(),u}eo.peek=zp;function eo(e){return e.value||""}function zp(){return"<"}to.peek=Pp;function to(e,t,n,r){const o=rr(n),i=o==='"'?"Quote":"Apostrophe",l=n.enter("image");let a=n.enter("label");const s=n.createTracker(r);let u=s.move("![");return u+=s.move(n.safe(e.alt,{before:u,after:"]",...s.current()})),u+=s.move("]("),a(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(a=n.enter("destinationLiteral"),u+=s.move("<"),u+=s.move(n.safe(e.url,{before:u,after:">",...s.current()})),u+=s.move(">")):(a=n.enter("destinationRaw"),u+=s.move(n.safe(e.url,{before:u,after:e.title?" ":")",...s.current()}))),a(),e.title&&(a=n.enter(`title${i}`),u+=s.move(" "+o),u+=s.move(n.safe(e.title,{before:u,after:o,...s.current()})),u+=s.move(o),a()),u+=s.move(")"),l(),u}function Pp(){return"!"}no.peek=Dp;function no(e,t,n,r){const o=e.referenceType,i=n.enter("imageReference");let l=n.enter("label");const a=n.createTracker(r);let s=a.move("![");const u=n.safe(e.alt,{before:s,after:"]",...a.current()});s+=a.move(u+"]["),l();const f=n.stack;n.stack=[],l=n.enter("reference");const c=n.safe(n.associationId(e),{before:s,after:"]",...a.current()});return l(),n.stack=f,i(),o==="full"||!u||u!==c?s+=a.move(c+"]"):o==="shortcut"?s=s.slice(0,-1):s+=a.move("]"),s}function Dp(){return"!"}ro.peek=Ip;function ro(e,t,n){let r=e.value||"",o="`",i=-1;for(;new RegExp("(^|[^`])"+o+"([^`]|$)").test(r);)o+="`";for(/[^ \r\n]/.test(r)&&(/^[ \r\n]/.test(r)&&/[ \r\n]$/.test(r)||/^`|`$/.test(r))&&(r=" "+r+" ");++i<n.unsafe.length;){const l=n.unsafe[i],a=n.compilePattern(l);let s;if(l.atBreak)for(;s=a.exec(r);){let u=s.index;r.charCodeAt(u)===10&&r.charCodeAt(u-1)===13&&u--,r=r.slice(0,u)+" "+r.slice(s.index+1)}}return o+r+o}function Ip(){return"`"}function io(e,t){const n=Qi(e);return!!(!t.options.resourceLink&&e.url&&!e.title&&e.children&&e.children.length===1&&e.children[0].type==="text"&&(n===e.url||"mailto:"+n===e.url)&&/^[a-z][a-z+.-]+:/i.test(e.url)&&!/[\0- <>\u007F]/.test(e.url))}oo.peek=_p;function oo(e,t,n,r){const o=rr(n),i=o==='"'?"Quote":"Apostrophe",l=n.createTracker(r);let a,s;if(io(e,n)){const f=n.stack;n.stack=[],a=n.enter("autolink");let c=l.move("<");return c+=l.move(n.containerPhrasing(e,{before:c,after:">",...l.current()})),c+=l.move(">"),a(),n.stack=f,c}a=n.enter("link"),s=n.enter("label");let u=l.move("[");return u+=l.move(n.containerPhrasing(e,{before:u,after:"](",...l.current()})),u+=l.move("]("),s(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(s=n.enter("destinationLiteral"),u+=l.move("<"),u+=l.move(n.safe(e.url,{before:u,after:">",...l.current()})),u+=l.move(">")):(s=n.enter("destinationRaw"),u+=l.move(n.safe(e.url,{before:u,after:e.title?" ":")",...l.current()}))),s(),e.title&&(s=n.enter(`title${i}`),u+=l.move(" "+o),u+=l.move(n.safe(e.title,{before:u,after:o,...l.current()})),u+=l.move(o),s()),u+=l.move(")"),a(),u}function _p(e,t,n){return io(e,n)?"<":"["}lo.peek=Ap;function lo(e,t,n,r){const o=e.referenceType,i=n.enter("linkReference");let l=n.enter("label");const a=n.createTracker(r);let s=a.move("[");const u=n.containerPhrasing(e,{before:s,after:"]",...a.current()});s+=a.move(u+"]["),l();const f=n.stack;n.stack=[],l=n.enter("reference");const c=n.safe(n.associationId(e),{before:s,after:"]",...a.current()});return l(),n.stack=f,i(),o==="full"||!u||u!==c?s+=a.move(c+"]"):o==="shortcut"?s=s.slice(0,-1):s+=a.move("]"),s}function Ap(){return"["}function ir(e){const t=e.options.bullet||"*";if(t!=="*"&&t!=="+"&&t!=="-")throw new Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function Tp(e){const t=ir(e),n=e.options.bulletOther;if(!n)return t==="*"?"-":"*";if(n!=="*"&&n!=="+"&&n!=="-")throw new Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw new Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}function Mp(e){const t=e.options.bulletOrdered||".";if(t!=="."&&t!==")")throw new Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}function ao(e){const t=e.options.rule||"*";if(t!=="*"&&t!=="-"&&t!=="_")throw new Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}function Op(e,t,n,r){const o=n.enter("list"),i=n.bulletCurrent;let l=e.ordered?Mp(n):ir(n);const a=e.ordered?l==="."?")":".":Tp(n);let s=t&&n.bulletLastUsed?l===n.bulletLastUsed:!1;if(!e.ordered){const f=e.children?e.children[0]:void 0;if((l==="*"||l==="-")&&f&&(!f.children||!f.children[0])&&n.stack[n.stack.length-1]==="list"&&n.stack[n.stack.length-2]==="listItem"&&n.stack[n.stack.length-3]==="list"&&n.stack[n.stack.length-4]==="listItem"&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(s=!0),ao(n)===l&&f){let c=-1;for(;++c<e.children.length;){const h=e.children[c];if(h&&h.type==="listItem"&&h.children&&h.children[0]&&h.children[0].type==="thematicBreak"){s=!0;break}}}}s&&(l=a),n.bulletCurrent=l;const u=n.containerFlow(e,r);return n.bulletLastUsed=l,n.bulletCurrent=i,o(),u}function Lp(e){const t=e.options.listItemIndent||"one";if(t!=="tab"&&t!=="one"&&t!=="mixed")throw new Error("Cannot serialize items with `"+t+"` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`");return t}function Fp(e,t,n,r){const o=Lp(n);let i=n.bulletCurrent||ir(n);t&&t.type==="list"&&t.ordered&&(i=(typeof t.start=="number"&&t.start>-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+i);let l=i.length+1;(o==="tab"||o==="mixed"&&(t&&t.type==="list"&&t.spread||e.spread))&&(l=Math.ceil(l/4)*4);const a=n.createTracker(r);a.move(i+" ".repeat(l-i.length)),a.shift(l);const s=n.enter("listItem"),u=n.indentLines(n.containerFlow(e,a.current()),f);return s(),u;function f(c,h,p){return h?(p?"":" ".repeat(l))+c:(p?i:i+" ".repeat(l-i.length))+c}}function Rp(e,t,n,r){const o=n.enter("paragraph"),i=n.enter("phrasing"),l=n.containerPhrasing(e,r);return i(),o(),l}const Np=en(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function jp(e,t,n,r){return(e.children.some(function(o){return Np(o)})?n.containerPhrasing:n.containerFlow).call(n,e,r)}function Bp(e){const t=e.options.strong||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}so.peek=Hp;function so(e,t,n,r){const o=Bp(n),i=n.enter("strong"),l=n.createTracker(r),a=l.move(o+o);let s=l.move(n.containerPhrasing(e,{after:o,before:a,...l.current()}));const u=s.charCodeAt(0),f=Zt(r.before.charCodeAt(r.before.length-1),u,o);f.inside&&(s=_t(u)+s.slice(1));const c=s.charCodeAt(s.length-1),h=Zt(r.after.charCodeAt(0),c,o);h.inside&&(s=s.slice(0,-1)+_t(c));const p=l.move(o+o);return i(),n.attentionEncodeSurroundingInfo={after:h.outside,before:f.outside},a+s+p}function Hp(e,t,n){return n.options.strong||"*"}function Vp(e,t,n,r){return n.safe(e.value,r)}function Up(e){const t=e.options.ruleRepetition||3;if(t<3)throw new Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}function qp(e,t,n){const r=(ao(n)+(n.options.ruleSpaces?" ":"")).repeat(Up(n));return n.options.ruleSpaces?r.slice(0,-1):r}const uo={blockquote:fp,break:Qr,code:vp,definition:xp,emphasis:Xi,hardBreak:Qr,heading:Ep,html:eo,image:to,imageReference:no,inlineCode:ro,link:oo,linkReference:lo,list:Op,listItem:Fp,paragraph:Rp,root:jp,strong:so,text:Vp,thematicBreak:qp};function $p(){return{enter:{table:Wp,tableData:ei,tableHeader:ei,tableRow:Yp},exit:{codeText:Gp,table:Zp,tableData:kn,tableHeader:kn,tableRow:kn}}}function Wp(e){const t=e._align;this.enter({type:"table",align:t.map(function(n){return n==="none"?null:n}),children:[]},e),this.data.inTable=!0}function Zp(e){this.exit(e),this.data.inTable=void 0}function Yp(e){this.enter({type:"tableRow",children:[]},e)}function kn(e){this.exit(e)}function ei(e){this.enter({type:"tableCell",children:[]},e)}function Gp(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,Kp));const n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function Kp(e,t){return t==="|"?t:e}function Xp(e){const t=e||{},n=t.tableCellPadding,r=t.tablePipeAlign,o=t.stringLength,i=n?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:` -`,inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[ :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:h,table:l,tableCell:s,tableRow:a}};function l(p,m,x,k){return u(f(p,x,k),p.align)}function a(p,m,x,k){const v=c(p,x,k),S=u([v]);return S.slice(0,S.indexOf(` -`))}function s(p,m,x,k){const v=x.enter("tableCell"),S=x.enter("phrasing"),P=x.containerPhrasing(p,{...k,before:i,after:i});return S(),v(),P}function u(p,m){return up(p,{align:m,alignDelimiters:r,padding:n,stringLength:o})}function f(p,m,x){const k=p.children;let v=-1;const S=[],P=m.enter("table");for(;++v<k.length;)S[v]=c(k[v],m,x);return P(),S}function c(p,m,x){const k=p.children;let v=-1;const S=[],P=m.enter("tableRow");for(;++v<k.length;)S[v]=s(k[v],p,m,x);return P(),S}function h(p,m,x){let k=uo.inlineCode(p,m,x);return x.stack.includes("tableCell")&&(k=k.replace(/\|/g,"\\$&")),k}}function Qp(){return{exit:{taskListCheckValueChecked:ti,taskListCheckValueUnchecked:ti,paragraph:eh}}}function Jp(){return{unsafe:[{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{listItem:th}}}function ti(e){const t=this.stack[this.stack.length-2];t.type,t.checked=e.type==="taskListCheckValueChecked"}function eh(e){const t=this.stack[this.stack.length-2];if(t&&t.type==="listItem"&&typeof t.checked=="boolean"){const n=this.stack[this.stack.length-1];n.type;const r=n.children[0];if(r&&r.type==="text"){const o=t.children;let i=-1,l;for(;++i<o.length;){const a=o[i];if(a.type==="paragraph"){l=a;break}}l===n&&(r.value=r.value.slice(1),r.value.length===0?n.children.shift():n.position&&r.position&&typeof r.position.start.offset=="number"&&(r.position.start.column++,r.position.start.offset++,n.position.start=Object.assign({},r.position.start)))}}this.exit(e)}function th(e,t,n,r){const o=e.children[0],i=typeof e.checked=="boolean"&&o&&o.type==="paragraph",l="["+(e.checked?"x":" ")+"] ",a=n.createTracker(r);i&&a.move(l);let s=uo.listItem(e,t,n,{...r,...a.current()});return i&&(s=s.replace(/^(?:[*+-]|\d+\.)([\r\n]| {1,3})/,u)),s;function u(f){return f+l}}function nh(){return[Tf(),Jf(),rp(),$p(),Qp()]}function rh(e){return{extensions:[Mf(),ep(e),ip(),Xp(e),Jp()]}}function Vt(e,t,n,r){const o=e.length;let i=0,l;if(t<0?t=-t>o?0:o+t:t=t>o?o:t,n=n>0?n:0,r.length<1e4)l=Array.from(r),l.unshift(t,n),e.splice(...l);else for(n&&e.splice(t,n);i<r.length;)l=r.slice(i,i+1e4),l.unshift(t,0),e.splice(...l),i+=1e4,t+=1e4}const ni={}.hasOwnProperty;function ih(e){const t={};let n=-1;for(;++n<e.length;)oh(t,e[n]);return t}function oh(e,t){let n;for(n in t){const r=(ni.call(e,n)?e[n]:void 0)||(e[n]={}),o=t[n];let i;if(o)for(i in o){ni.call(r,i)||(r[i]=[]);const l=o[i];lh(r[i],Array.isArray(l)?l:l?[l]:[])}}}function lh(e,t){let n=-1;const r=[];for(;++n<t.length;)(t[n].add==="after"?e:r).push(t[n]);Vt(e,0,0,r)}const ah={tokenize:hh,partial:!0},co={tokenize:dh,partial:!0},fo={tokenize:gh,partial:!0},po={tokenize:mh,partial:!0},sh={tokenize:vh,partial:!0},ri={name:"wwwAutolink",tokenize:fh,previous:ho},ii={name:"protocolAutolink",tokenize:ph,previous:go},Oe={name:"emailAutolink",tokenize:ch,previous:mo},Pe={};function uh(){return{text:Pe}}let Ge=48;for(;Ge<123;)Pe[Ge]=Oe,Ge++,Ge===58?Ge=65:Ge===91&&(Ge=97);Pe[43]=Oe,Pe[45]=Oe,Pe[46]=Oe,Pe[95]=Oe,Pe[72]=[Oe,ii],Pe[104]=[Oe,ii],Pe[87]=[Oe,ri],Pe[119]=[Oe,ri];function ch(e,t,n){const r=this;let o,i;return l;function l(c){return!Ln(c)||!mo.call(r,r.previous)||or(r.events)?n(c):(e.enter("literalAutolink"),e.enter("literalAutolinkEmail"),a(c))}function a(c){return Ln(c)?(e.consume(c),a):c===64?(e.consume(c),s):n(c)}function s(c){return c===46?e.check(sh,f,u)(c):c===45||c===95||nr(c)?(i=!0,e.consume(c),s):f(c)}function u(c){return e.consume(c),o=!0,s}function f(c){return i&&o&&It(r.previous)?(e.exit("literalAutolinkEmail"),e.exit("literalAutolink"),t(c)):n(c)}}function fh(e,t,n){const r=this;return o;function o(l){return l!==87&&l!==119||!ho.call(r,r.previous)||or(r.events)?n(l):(e.enter("literalAutolink"),e.enter("literalAutolinkWww"),e.check(ah,e.attempt(co,e.attempt(fo,i),n),n)(l))}function i(l){return e.exit("literalAutolinkWww"),e.exit("literalAutolink"),t(l)}}function ph(e,t,n){const r=this;let o="",i=!1;return l;function l(c){return(c===72||c===104)&&go.call(r,r.previous)&&!or(r.events)?(e.enter("literalAutolink"),e.enter("literalAutolinkHttp"),o+=String.fromCodePoint(c),e.consume(c),a):n(c)}function a(c){if(It(c)&&o.length<5)return o+=String.fromCodePoint(c),e.consume(c),a;if(c===58){const h=o.toLowerCase();if(h==="http"||h==="https")return e.consume(c),s}return n(c)}function s(c){return c===47?(e.consume(c),i?u:(i=!0,s)):n(c)}function u(c){return c===null||vf(c)||de(c)||Je(c)||Qt(c)?n(c):e.attempt(co,e.attempt(fo,f),n)(c)}function f(c){return e.exit("literalAutolinkHttp"),e.exit("literalAutolink"),t(c)}}function hh(e,t,n){let r=0;return o;function o(l){return(l===87||l===119)&&r<3?(r++,e.consume(l),o):l===46&&r===3?(e.consume(l),i):n(l)}function i(l){return l===null?n(l):t(l)}}function dh(e,t,n){let r,o,i;return l;function l(u){return u===46||u===95?e.check(po,s,a)(u):u===null||de(u)||Je(u)||u!==45&&Qt(u)?s(u):(i=!0,e.consume(u),l)}function a(u){return u===95?r=!0:(o=r,r=void 0),e.consume(u),l}function s(u){return o||r||!i?n(u):t(u)}}function gh(e,t){let n=0,r=0;return o;function o(l){return l===40?(n++,e.consume(l),o):l===41&&r<n?i(l):l===33||l===34||l===38||l===39||l===41||l===42||l===44||l===46||l===58||l===59||l===60||l===63||l===93||l===95||l===126?e.check(po,t,i)(l):l===null||de(l)||Je(l)?t(l):(e.consume(l),o)}function i(l){return l===41&&r++,e.consume(l),o}}function mh(e,t,n){return r;function r(a){return a===33||a===34||a===39||a===41||a===42||a===44||a===46||a===58||a===59||a===63||a===95||a===126?(e.consume(a),r):a===38?(e.consume(a),i):a===93?(e.consume(a),o):a===60||a===null||de(a)||Je(a)?t(a):n(a)}function o(a){return a===null||a===40||a===91||de(a)||Je(a)?t(a):r(a)}function i(a){return It(a)?l(a):n(a)}function l(a){return a===59?(e.consume(a),r):It(a)?(e.consume(a),l):n(a)}}function vh(e,t,n){return r;function r(i){return e.consume(i),o}function o(i){return nr(i)?n(i):t(i)}}function ho(e){return e===null||e===40||e===42||e===95||e===91||e===93||e===126||de(e)}function go(e){return!It(e)}function mo(e){return!(e===47||Ln(e))}function Ln(e){return e===43||e===45||e===46||e===95||nr(e)}function or(e){let t=e.length,n=!1;for(;t--;){const r=e[t][1];if((r.type==="labelLink"||r.type==="labelImage")&&!r._balanced){n=!0;break}if(r._gfmAutolinkLiteralWalkedInto){n=!1;break}}return e.length>0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}function yh(e,t,n){const r=[];let o=-1;for(;++o<e.length;){const i=e[o].resolveAll;i&&!r.includes(i)&&(t=i(t,n),r.push(i))}return t}function Fe(e,t,n,r){const o=r?r-1:Number.POSITIVE_INFINITY;let i=0;return l;function l(s){return Le(s)?(e.enter(n),a(s)):t(s)}function a(s){return Le(s)&&i++<o?(e.consume(s),a):(e.exit(n),t(s))}}const xh={partial:!0,tokenize:kh};function kh(e,t,n){return r;function r(i){return Le(i)?Fe(e,o,"linePrefix")(i):o(i)}function o(i){return i===null||lt(i)?t(i):n(i)}}const bh={tokenize:Ih,partial:!0};function wh(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:zh,continuation:{tokenize:Ph},exit:Dh}},text:{91:{name:"gfmFootnoteCall",tokenize:Eh},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:Ch,resolveTo:Sh}}}}function Ch(e,t,n){const r=this;let o=r.events.length;const i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let l;for(;o--;){const s=r.events[o][1];if(s.type==="labelImage"){l=s;break}if(s.type==="gfmFootnoteCall"||s.type==="labelLink"||s.type==="label"||s.type==="image"||s.type==="link")break}return a;function a(s){if(!l||!l._balanced)return n(s);const u=Tt(r.sliceSerialize({start:l.end,end:r.now()}));return u.codePointAt(0)!==94||!i.includes(u.slice(1))?n(s):(e.enter("gfmFootnoteCallLabelMarker"),e.consume(s),e.exit("gfmFootnoteCallLabelMarker"),t(s))}}function Sh(e,t){let n=e.length;for(;n--;)if(e[n][1].type==="labelImage"&&e[n][0]==="enter"){e[n][1];break}e[n+1][1].type="data",e[n+3][1].type="gfmFootnoteCallLabelMarker";const r={type:"gfmFootnoteCall",start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},o={type:"gfmFootnoteCallMarker",start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};o.end.column++,o.end.offset++,o.end._bufferIndex++;const i={type:"gfmFootnoteCallString",start:Object.assign({},o.end),end:Object.assign({},e[e.length-1][1].start)},l={type:"chunkString",contentType:"string",start:Object.assign({},i.start),end:Object.assign({},i.end)},a=[e[n+1],e[n+2],["enter",r,t],e[n+3],e[n+4],["enter",o,t],["exit",o,t],["enter",i,t],["enter",l,t],["exit",l,t],["exit",i,t],e[e.length-2],e[e.length-1],["exit",r,t]];return e.splice(n,e.length-n+1,...a),e}function Eh(e,t,n){const r=this,o=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let i=0,l;return a;function a(c){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(c),e.exit("gfmFootnoteCallLabelMarker"),s}function s(c){return c!==94?n(c):(e.enter("gfmFootnoteCallMarker"),e.consume(c),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",u)}function u(c){if(i>999||c===93&&!l||c===null||c===91||de(c))return n(c);if(c===93){e.exit("chunkString");const h=e.exit("gfmFootnoteCallString");return o.includes(Tt(r.sliceSerialize(h)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(c),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):n(c)}return de(c)||(l=!0),i++,e.consume(c),c===92?f:u}function f(c){return c===91||c===92||c===93?(e.consume(c),i++,u):u(c)}}function zh(e,t,n){const r=this,o=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let i,l=0,a;return s;function s(m){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(m),e.exit("gfmFootnoteDefinitionLabelMarker"),u}function u(m){return m===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(m),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",f):n(m)}function f(m){if(l>999||m===93&&!a||m===null||m===91||de(m))return n(m);if(m===93){e.exit("chunkString");const x=e.exit("gfmFootnoteDefinitionLabelString");return i=Tt(r.sliceSerialize(x)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(m),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),h}return de(m)||(a=!0),l++,e.consume(m),m===92?c:f}function c(m){return m===91||m===92||m===93?(e.consume(m),l++,f):f(m)}function h(m){return m===58?(e.enter("definitionMarker"),e.consume(m),e.exit("definitionMarker"),o.includes(i)||o.push(i),Fe(e,p,"gfmFootnoteDefinitionWhitespace")):n(m)}function p(m){return t(m)}}function Ph(e,t,n){return e.check(xh,t,e.attempt(bh,t,n))}function Dh(e){e.exit("gfmFootnoteDefinition")}function Ih(e,t,n){const r=this;return Fe(e,o,"gfmFootnoteDefinitionIndent",5);function o(i){const l=r.events[r.events.length-1];return l&&l[1].type==="gfmFootnoteDefinitionIndent"&&l[2].sliceSerialize(l[1],!0).length===4?t(i):n(i)}}function _h(e){let t=(e||{}).singleTilde;const n={name:"strikethrough",tokenize:o,resolveAll:r};return t==null&&(t=!0),{text:{126:n},insideSpan:{null:[n]},attentionMarkers:{null:[126]}};function r(i,l){let a=-1;for(;++a<i.length;)if(i[a][0]==="enter"&&i[a][1].type==="strikethroughSequenceTemporary"&&i[a][1]._close){let s=a;for(;s--;)if(i[s][0]==="exit"&&i[s][1].type==="strikethroughSequenceTemporary"&&i[s][1]._open&&i[a][1].end.offset-i[a][1].start.offset===i[s][1].end.offset-i[s][1].start.offset){i[a][1].type="strikethroughSequence",i[s][1].type="strikethroughSequence";const u={type:"strikethrough",start:Object.assign({},i[s][1].start),end:Object.assign({},i[a][1].end)},f={type:"strikethroughText",start:Object.assign({},i[s][1].end),end:Object.assign({},i[a][1].start)},c=[["enter",u,l],["enter",i[s][1],l],["exit",i[s][1],l],["enter",f,l]],h=l.parser.constructs.insideSpan.null;h&&Vt(c,c.length,0,yh(h,i.slice(s+1,a),l)),Vt(c,c.length,0,[["exit",f,l],["enter",i[a][1],l],["exit",i[a][1],l],["exit",u,l]]),Vt(i,s-1,a-s+3,c),a=s+c.length-2;break}}for(a=-1;++a<i.length;)i[a][1].type==="strikethroughSequenceTemporary"&&(i[a][1].type="data");return i}function o(i,l,a){const s=this.previous,u=this.events;let f=0;return c;function c(p){return s===126&&u[u.length-1][1].type!=="characterEscape"?a(p):(i.enter("strikethroughSequenceTemporary"),h(p))}function h(p){const m=Wt(s);if(p===126)return f>1?a(p):(i.consume(p),f++,h);if(f<2&&!t)return a(p);const x=i.exit("strikethroughSequenceTemporary"),k=Wt(p);return x._open=!k||k===2&&!!m,x._close=!m||m===2&&!!k,l(p)}}}class Ah{constructor(){this.map=[]}add(t,n,r){Th(this,t,n,r)}consume(t){if(this.map.sort(function(i,l){return i[0]-l[0]}),this.map.length===0)return;let n=this.map.length;const r=[];for(;n>0;)n-=1,r.push(t.slice(this.map[n][0]+this.map[n][1]),this.map[n][2]),t.length=this.map[n][0];r.push(t.slice()),t.length=0;let o=r.pop();for(;o;){for(const i of o)t.push(i);o=r.pop()}this.map.length=0}}function Th(e,t,n,r){let o=0;if(!(n===0&&r.length===0)){for(;o<e.map.length;){if(e.map[o][0]===t){e.map[o][1]+=n,e.map[o][2].push(...r);return}o+=1}e.map.push([t,n,r])}}function Mh(e,t){let n=!1;const r=[];for(;t<e.length;){const o=e[t];if(n){if(o[0]==="enter")o[1].type==="tableContent"&&r.push(e[t+1][1].type==="tableDelimiterMarker"?"left":"none");else if(o[1].type==="tableContent"){if(e[t-1][1].type==="tableDelimiterMarker"){const i=r.length-1;r[i]=r[i]==="left"?"center":"right"}}else if(o[1].type==="tableDelimiterRow")break}else o[0]==="enter"&&o[1].type==="tableDelimiterRow"&&(n=!0);t+=1}return r}function Oh(){return{flow:{null:{name:"table",tokenize:Lh,resolveAll:Fh}}}}function Lh(e,t,n){const r=this;let o=0,i=0,l;return a;function a(y){let L=r.events.length-1;for(;L>-1;){const T=r.events[L][1].type;if(T==="lineEnding"||T==="linePrefix")L--;else break}const F=L>-1?r.events[L][1].type:null,R=F==="tableHead"||F==="tableRow"?C:s;return R===C&&r.parser.lazy[r.now().line]?n(y):R(y)}function s(y){return e.enter("tableHead"),e.enter("tableRow"),u(y)}function u(y){return y===124||(l=!0,i+=1),f(y)}function f(y){return y===null?n(y):lt(y)?i>1?(i=0,r.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(y),e.exit("lineEnding"),p):n(y):Le(y)?Fe(e,f,"whitespace")(y):(i+=1,l&&(l=!1,o+=1),y===124?(e.enter("tableCellDivider"),e.consume(y),e.exit("tableCellDivider"),l=!0,f):(e.enter("data"),c(y)))}function c(y){return y===null||y===124||de(y)?(e.exit("data"),f(y)):(e.consume(y),y===92?h:c)}function h(y){return y===92||y===124?(e.consume(y),c):c(y)}function p(y){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(y):(e.enter("tableDelimiterRow"),l=!1,Le(y)?Fe(e,m,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(y):m(y))}function m(y){return y===45||y===58?k(y):y===124?(l=!0,e.enter("tableCellDivider"),e.consume(y),e.exit("tableCellDivider"),x):U(y)}function x(y){return Le(y)?Fe(e,k,"whitespace")(y):k(y)}function k(y){return y===58?(i+=1,l=!0,e.enter("tableDelimiterMarker"),e.consume(y),e.exit("tableDelimiterMarker"),v):y===45?(i+=1,v(y)):y===null||lt(y)?M(y):U(y)}function v(y){return y===45?(e.enter("tableDelimiterFiller"),S(y)):U(y)}function S(y){return y===45?(e.consume(y),S):y===58?(l=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(y),e.exit("tableDelimiterMarker"),P):(e.exit("tableDelimiterFiller"),P(y))}function P(y){return Le(y)?Fe(e,M,"whitespace")(y):M(y)}function M(y){return y===124?m(y):y===null||lt(y)?!l||o!==i?U(y):(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(y)):U(y)}function U(y){return n(y)}function C(y){return e.enter("tableRow"),V(y)}function V(y){return y===124?(e.enter("tableCellDivider"),e.consume(y),e.exit("tableCellDivider"),V):y===null||lt(y)?(e.exit("tableRow"),t(y)):Le(y)?Fe(e,V,"whitespace")(y):(e.enter("data"),O(y))}function O(y){return y===null||y===124||de(y)?(e.exit("data"),V(y)):(e.consume(y),y===92?$:O)}function $(y){return y===92||y===124?(e.consume(y),O):O(y)}}function Fh(e,t){let n=-1,r=!0,o=0,i=[0,0,0,0],l=[0,0,0,0],a=!1,s=0,u,f,c;const h=new Ah;for(;++n<e.length;){const p=e[n],m=p[1];p[0]==="enter"?m.type==="tableHead"?(a=!1,s!==0&&(oi(h,t,s,u,f),f=void 0,s=0),u={type:"table",start:Object.assign({},m.start),end:Object.assign({},m.end)},h.add(n,0,[["enter",u,t]])):m.type==="tableRow"||m.type==="tableDelimiterRow"?(r=!0,c=void 0,i=[0,0,0,0],l=[0,n+1,0,0],a&&(a=!1,f={type:"tableBody",start:Object.assign({},m.start),end:Object.assign({},m.end)},h.add(n,0,[["enter",f,t]])),o=m.type==="tableDelimiterRow"?2:f?3:1):o&&(m.type==="data"||m.type==="tableDelimiterMarker"||m.type==="tableDelimiterFiller")?(r=!1,l[2]===0&&(i[1]!==0&&(l[0]=l[1],c=Bt(h,t,i,o,void 0,c),i=[0,0,0,0]),l[2]=n)):m.type==="tableCellDivider"&&(r?r=!1:(i[1]!==0&&(l[0]=l[1],c=Bt(h,t,i,o,void 0,c)),i=l,l=[i[1],n,0,0])):m.type==="tableHead"?(a=!0,s=n):m.type==="tableRow"||m.type==="tableDelimiterRow"?(s=n,i[1]!==0?(l[0]=l[1],c=Bt(h,t,i,o,n,c)):l[1]!==0&&(c=Bt(h,t,l,o,n,c)),o=0):o&&(m.type==="data"||m.type==="tableDelimiterMarker"||m.type==="tableDelimiterFiller")&&(l[3]=n)}for(s!==0&&oi(h,t,s,u,f),h.consume(t.events),n=-1;++n<t.events.length;){const p=t.events[n];p[0]==="enter"&&p[1].type==="table"&&(p[1]._align=Mh(t.events,n))}return e}function Bt(e,t,n,r,o,i){const l=r===1?"tableHeader":r===2?"tableDelimiter":"tableData",a="tableContent";n[0]!==0&&(i.end=Object.assign({},ot(t.events,n[0])),e.add(n[0],0,[["exit",i,t]]));const s=ot(t.events,n[1]);if(i={type:l,start:Object.assign({},s),end:Object.assign({},s)},e.add(n[1],0,[["enter",i,t]]),n[2]!==0){const u=ot(t.events,n[2]),f=ot(t.events,n[3]),c={type:a,start:Object.assign({},u),end:Object.assign({},f)};if(e.add(n[2],0,[["enter",c,t]]),r!==2){const h=t.events[n[2]],p=t.events[n[3]];if(h[1].end=Object.assign({},p[1].end),h[1].type="chunkText",h[1].contentType="text",n[3]>n[2]+1){const m=n[2]+1,x=n[3]-n[2]-1;e.add(m,x,[])}}e.add(n[3]+1,0,[["exit",c,t]])}return o!==void 0&&(i.end=Object.assign({},ot(t.events,o)),e.add(o,0,[["exit",i,t]]),i=void 0),i}function oi(e,t,n,r,o){const i=[],l=ot(t.events,n);o&&(o.end=Object.assign({},l),i.push(["exit",o,t])),r.end=Object.assign({},l),i.push(["exit",r,t]),e.add(n+1,0,i)}function ot(e,t){const n=e[t],r=n[0]==="enter"?"start":"end";return n[1][r]}const Rh={name:"tasklistCheck",tokenize:jh};function Nh(){return{text:{91:Rh}}}function jh(e,t,n){const r=this;return o;function o(s){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(s):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(s),e.exit("taskListCheckMarker"),i)}function i(s){return de(s)?(e.enter("taskListCheckValueUnchecked"),e.consume(s),e.exit("taskListCheckValueUnchecked"),l):s===88||s===120?(e.enter("taskListCheckValueChecked"),e.consume(s),e.exit("taskListCheckValueChecked"),l):n(s)}function l(s){return s===93?(e.enter("taskListCheckMarker"),e.consume(s),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),a):n(s)}function a(s){return lt(s)?t(s):Le(s)?e.check({tokenize:Bh},t,n)(s):n(s)}}function Bh(e,t,n){return Fe(e,r,"whitespace");function r(o){return o===null?n(o):t(o)}}function Hh(e){return ih([uh(),wh(),_h(e),Oh(),Nh()])}const Vh={};function Uh(e){const t=this,n=e||Vh,r=t.data(),o=r.micromarkExtensions||(r.micromarkExtensions=[]),i=r.fromMarkdownExtensions||(r.fromMarkdownExtensions=[]),l=r.toMarkdownExtensions||(r.toMarkdownExtensions=[]);o.push(Hh(n)),i.push(nh()),l.push(rh(n))}const qh=Gt({__name:"NcRichTextCopyButton",props:{contentId:{}},setup(e){const{copy:t,icon:n,altText:r}=zl(()=>document.getElementById(e.contentId).textContent);return(o,i)=>(ne(),We(Pt,{variant:"tertiary",size:"small","aria-label":se(r),title:se(r),onClick:se(t)},{icon:Re(()=>[$e(Bn,{path:se(n),inline:""},null,8,["path"])]),_:1},8,["aria-label","title","onClick"]))}});function $h(e){return e.type==="text"}const Wh=function(e){Ze(e,$h,t);function t(n,r,o){const i=n.value.split(/(\{[a-z\-_.0-9]+\})/ig).map(l=>{const a=l.match(/^\{([a-z\-_.0-9]+)\}$/i);if(!a)return fr("text",l);const[,s]=a;return fr("element",{tagName:`#${s}`,children:[]})});o.children.splice(r,1,...i)}},Zh=()=>Wh;function Yh(e){return["text","code","inlineCode"].includes(e.type)}const Gh=function(){return function(e){Ze(e,Yh,(t,n,r)=>(r.children.splice(n,1,{...t,value:t.value.replace(/</gmi,"<").replace(/>/gmi,">")}),[il,n+1]))}},Kh=["http","https","mailto","tel"],Fn=xe(null);async function Xh(){const e=await Po(()=>import("./index-DcjMKczi.chunk.mjs"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29]),import.meta.url);Fn.value=e.default}const Qh={name:"NcRichText",components:{NcReferenceList:mn},props:{text:{type:String,default:""},arguments:{type:Object,default:()=>({})},referenceLimit:{type:Number,default:0},referenceInteractive:{type:Boolean,default:!0},referenceInteractiveOptIn:{type:Boolean,default:!1},references:{type:Array,default:null},useMarkdown:{type:Boolean,default:!1},useExtendedMarkdown:{type:Boolean,default:!1},interactive:{type:Boolean,default:!1},autolink:{type:Boolean,default:!0}},emits:["interactTodo"],data(){return{parentId:nn()}},methods:{renderPlaintext(){const e=this.text.split(/(\{[a-z\-_.0-9]+\})/ig).map(t=>{const n=t.match(/^\{([a-z\-_.0-9]+)\}$/i);if(!n)return this.prepareTextNode(t);const r=n[1],o=this.arguments[r];if(typeof o=="object"){const{component:i,props:l}=o;return ee(typeof i=="string"?ut(i):i,{...l,class:"rich-text--component"})}return o?ee("span",{class:"rich-text--fallback"},o):t});return ee("div",{class:"rich-text--wrapper"},[ee("div",{},e.flat()),this.referenceLimit>0?ee("div",{class:"rich-text--reference-widget"},[ee(mn,{text:this.text,referenceData:this.references,interactive:this.referenceInteractive,interactiveOptIn:this.referenceInteractiveOptIn})]):null])},renderMarkdown(){const e=ff().use(ac).use(nl,{autolink:this.autolink,useMarkdown:this.useMarkdown,useExtendedMarkdown:this.useExtendedMarkdown}).use(Gh).use(this.useExtendedMarkdown?Uh:void 0).use(ts).use($c,{except:Kh}).use(Uc,{handlers:{component(t,n){return t(n,n.component,{value:n.value})}}}).use(this.useExtendedMarkdown?Fn.value:void 0).use(Zh).use(ra,{target:"_blank",rel:["noopener noreferrer"]}).use(Za,{Fragment:jn,jsx:this.createElement,jsxs:this.createElement,elementAttributeNameCase:"html",prefix:!1}).processSync(this.text.replace(/<[^>]+>/g,t=>t.replace(/</g,"<")).replace(/>/gmi,">")).result;return ee("div",{class:"rich-text--wrapper rich-text--wrapper-markdown"},[e,this.referenceLimit>0?ee("div",{class:"rich-text--reference-widget"},[ee(mn,{text:this.text,referenceData:this.references,interactive:this.referenceInteractive,interactiveOptIn:this.referenceInteractiveOptIn})]):null])},prepareTextNode(e){return this.autolink&&(e=tl(e)),Array.isArray(e)?e.map(t=>{if(typeof t=="string")return t;const{component:n,props:r}=t,o=n.name==="NcLink"?void 0:"rich-text--component";return ee(n,{...r,class:o})}):e},createElement(e,t,n){n&&(t.key=n);const r=t.children??[];if(delete t.children,!String(e).startsWith("#")){["h1","h2","h3","h4","h5","h6"].includes(String(e))&&(e=`h${Math.min(+String(e)[1]+3,6)}`);let i=null;if(this.useExtendedMarkdown){if(String(e)==="code"&&!Fn.value&&t?.class?.includes("language")&&Xh(),String(e)==="pre"&&r&&String(r.type)==="code"){const l=this.parentId+"-code-block-"+nn();return ee("p",{class:"rich-text__code-block"},[ee(e,{...t,id:l},r),ee(qh,{class:"rich-text__code-block-button",contentId:l})])}if(String(e)==="li"&&Array.isArray(r)&&r.length!==0&&r[0].type==="input"&&r[0].props.type==="checkbox"){const[l,,...a]=r,s=a.findIndex(h=>["ul","ol","li","blockquote","pre"].includes(h.type));s!==-1&&(i=a[s],a.splice(s));const u=this.parentId+"-markdown-input-"+nn(),f={...l.props};delete f.checked;const c=ee(Qo,{...f,modelValue:l.props.checked,id:u,disabled:!this.interactive,"onUpdate:modelValue":()=>{this.$emit("interactTodo",u)}},{default:()=>a});return ee(e,t,[c,i])}}if(String(e)==="a"){const l=pi(this.$router,t.href);if(l)return delete t.href,delete t.target,ee(fi,{...t,to:l},{default:()=>r})}return ee(e,t,r)}const o=this.arguments[e.slice(1)];return o?o.component?ee(typeof o.component=="string"?ut(o.component):o.component,{...t,...o.props,class:"rich-text--component"},{default:()=>r}):ee("span",{...t},[o]):ee("span",{...t,class:"rich-text--fallback"},[`{${e.slice(1)}}`])}},render(){return this.useMarkdown||this.useExtendedMarkdown?this.renderMarkdown():this.renderPlaintext()}},gd=pt(Qh,[["__scopeId","data-v-a47e4ba7"]]);export{hd as N,gd as a,dd as b,vi as c}; -//# sourceMappingURL=NcRichText-CBMtJzE_-bvZFA37H.chunk.mjs.map diff --git a/dist/NcRichText-CBMtJzE_-bvZFA37H.chunk.mjs.map b/dist/NcRichText-CBMtJzE_-bvZFA37H.chunk.mjs.map deleted file mode 100644 index f355837feab5b..0000000000000 --- a/dist/NcRichText-CBMtJzE_-bvZFA37H.chunk.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"mappings":"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","names":["Pe","D","h","y","u","E","ce","l","k","M","z","e","n","m","x","S","c","f","_","R","r","P","O","b","t","i","a","s","o","K","I","d","A","U","W","J","$","N","v","p","H","ue","j","Q","V","Z","ee","F","ne","C","ie","te","T","L","ae","le","oe","se","q","B","G","X","re","fe","g","Y","ve","me","ge","w","de","pe","he","ze","xe","once","func","wasCalled","result","args","realAppName","appName","logger","APP_NAME","realAppVersion","appVersion","getLocalizedAppName","activeApp","loadState","id","register","_sfc_main$1","defineComponent","__props","isMobile","useIsMobile","watch","toggleAppNavigationButton","onMounted","onBeforeUnmount","hide","appNavigationToggle","emit","_ctx","_cache","openBlock","createBlock","unref","NcButton","normalizeClass","withCtx","createVNode","NcIconSvgWrapper","mdiArrowRight","NcAppContentDetailsToggle","_export_sfc","browserStorage","getBuilder","instanceName","getCapabilities","_sfc_main","Pane","Splitpanes","value","isRtl","entries","part","useSwipe","direction","event","listPaneSize","_hoisted_1","_hoisted_2","_sfc_render","$props","$setup","$data","$options","_component_NcAppContentDetailsToggle","resolveComponent","_component_Pane","_component_Splitpanes","createElementBlock","toDisplayString","createCommentVNode","Fragment","withModifiers","withDirectives","createElementVNode","renderSlot","vShow","NcAppContent","HAS_APP_NAVIGATION_KEY","CONTENT_SELECTOR_KEY","contentSvg","navigationSvg","_hoisted_3","props","provide","setAppNavigation","computed","hasAppNavigation","ref","currentFocus","currentImage","onBeforeMount","container","openAppNavigation","nextTick","Teleport","$event","createTextVNode","NcContent","t22","DELAY","useCopy","content","isCopied","icon","mdiCheck","mdiContentCopy","altText","copy","toValue","callback","onDestroy","registerWidget","propsWithDefaults","renderWidget","el","options","richObjectType","richObject","accessible","interactive","destroyWidget","isWidgetRegistered","hasInteractiveView","hasFullWidth","registerCustomPickerElement","size","t8","imagePath","t40","t45","_hoisted_1$5","_hoisted_2$4","_hoisted_3$3","_hoisted_4$2","IDLE_TIMEOUT","_sfc_main$5","router","inject","routerKey","isVisible","customWidget","useTemplateRef","widgetRoot","width","useElementSize","useIntersectionObserver","entry","showInteractive","rendered","idleTimeout","isInteractive","referenceHasFullWidth","hasCustomWidget","referenceHasInteractiveView","noAccess","numberOfLines","max","descriptionStyle","lineClamp","compactLink","link","route","getRoute","referenceWidgetLinkComponent","RouterLink","referenceWidgetLinkProps","val","destroyReferenceWidget","renderReferenceWidget","enableInteractive","widget","resolveDynamicComponent","mergeProps","normalizeStyle","NcReferenceWidget","t25","t32","t42","t12","t19","VOID","PRIMITIVE","ARRAY","OBJECT","DATE","REGEXP","MAP","SET","ERROR","BIGINT","env","deserializer","as","out","index","unpair","type","arr","object","key","source","flags","map","set","name","message","buffer","deserialize","serialized","EMPTY","toString","keys","typeOf","asString","shouldSkip","TYPE","serializer","strict","json","pair","spread","serialize","lossy","structuredClone$1","any","convertElement","test","element","tagNameFactory","anyFactory","castFactory","tests","checks","parameters","check","tagName","testFunction","parent","looksLikeAnElement","ABSOLUTE_URL_REGEX","WINDOWS_PATH_REGEX","isAbsoluteUrl","url","parse","input","stringify","values","defaultProtocols","defaultRel","emptyOptions","rehypeExternalLinks","settings","protocols","is","tree","visit","node","contentRaw","createIfNeeded","relRaw","rel","target","properties","structuredClone","nameRe","nameReJsx","whitespace","thing","empty","Schema","property","normal","space","merge","definitions","definition","normalize","Info","attribute","powers","boolean","increment","booleanish","overloadedBoolean","number","spaceSeparated","commaSeparated","commaOrSpaceSeparated","types","DefinedInfo","mask","mark","create","normals","info","aria","caseSensitiveTransform","attributes","caseInsensitiveTransform","html","svg","xlink","xmlns","xml","hastToReact","cap","dash","valid","find","schema","Type","rest","camelcase","dashes","kebab","$0","htmlBase","svgBase","COMMENT_REGEX","NEWLINE_REGEX","WHITESPACE_REGEX","PROPERTY_REGEX","COLON_REGEX","VALUE_REGEX","SEMICOLON_REGEX","TRIM_REGEX","NEWLINE","FORWARD_SLASH","ASTERISK","EMPTY_STRING","TYPE_COMMENT","TYPE_DECLARATION","inlineStyleParser","style","lineno","column","updatePosition","str","lines","position","start","Position","error","msg","err","match","comments","rules","comment","pos","declaration","prop","ret","trim","declarations","decls","decl","__importDefault","this","mod","cjs","StyleToObject","inline_style_parser_1","require$$0","iterator","styleObject","hasIterator","utilities","CUSTOM_PROPERTY_REGEX","HYPHEN_REGEX","NO_HYPHEN_REGEX","VENDOR_PREFIX_REGEX","MS_VENDOR_PREFIX_REGEX","skipCamelCase","capitalize","character","trimHyphen","prefix","camelCase","style_to_object_1","utilities_1","require$$1","StyleToJS","output","pointEnd","point","pointStart","end","stringifyPosition","VFileMessage","causeOrReason","optionsOrParentOrPlace","origin","reason","legacyCause","own","emptyMap","tableElements","tableCellElement","docs","toJsxRuntime","filePath","developmentCreate","productionCreate","state","one","mdxExpression","mdxJsxElement","mdxEsm","root","text","parentSchema","findComponentFromName","createElementProps","children","createChildren","child","addNode","addChildren","expression","assert","crashEstree","createJsxElementProps","jsx","jsxs","fn","jsxDEV","isStaticChildren","alignValue","createProperty","objectExpression","countsByName","count","commas","spaces","parseStyle","transformStylesToCssCasing","styleToJs","cause","allowExpression","identifiers","isIdentifierName","place","domCasing","cssCasing","from","transformStyleToCssCasing","to","toDash","rehypeReact","self","compiler","file","escapeStringRegexp","string","findAndReplace","list","ignored","convert","pairs","toPairs","pairIndex","visitParents","visitor","parents","grandparent","siblings","handler","replace","change","nodes","matchObject","tupleOrList","tuple","toExpression","toFunction","escape","newlineToBreak","remarkBreaks","includeImageAlt","includeHtml","all","decodeNamedCharacterReference","characterReference","splice","remove","items","chunkStart","push","hasOwnProperty","combineExtensions","extensions","syntaxExtension","extension","hook","left","right","code","constructs","existing","before","decodeNumericCharacterReference","base","normalizeIdentifier","asciiAlpha","regexCheck","asciiAlphanumeric","asciiAtext","asciiControl","asciiDigit","asciiHexDigit","asciiPunctuation","markdownLineEnding","markdownLineEndingOrSpace","markdownSpace","unicodePunctuation","unicodeWhitespace","regex","normalizeUri","skip","next","factorySpace","effects","ok","limit","initializeContent","contentStart","afterContentStartConstruct","paragraphInitial","previous","lineStart","token","data","document","initializeDocument","containerConstruct","tokenizeContainer","stack","continued","childFlow","childToken","lineStartOffset","item","documentContinue","checkNewContainers","closeFlow","indexBeforeExits","indexBeforeFlow","exitContainers","documentContinued","flowStart","thereIsANewContainer","thereIsNoNewContainer","containerContinue","flowContinue","writeToChild","endOfFile","stream","seen","nok","classifyCharacter","resolveAll","events","context","called","resolve","attention","resolveAllAttention","tokenizeAttention","open","group","openingSequence","closingSequence","use","nextEvents","offset","movePoint","attentionMarkers","marker","inside","after","close","autolink","tokenizeAutolink","schemeOrEmailAtext","emailAtext","schemeInsideOrEmailAtext","urlInside","emailAtSignOrDot","emailLabel","emailValue","blankLine","tokenizeBlankLine","blockQuote","tokenizeBlockQuoteContinuation","exit","tokenizeBlockQuoteStart","contStart","contBefore","characterEscape","tokenizeCharacterEscape","tokenizeCharacterReference","numeric","nonLazyContinuation","tokenizeNonLazyContinuation","codeFenced","tokenizeCodeFenced","closeStart","tokenizeCloseStart","initialPrefix","sizeOpen","beforeSequenceOpen","tail","sequenceOpen","infoBefore","atNonLazyBreak","metaBefore","meta","contentBefore","beforeContentChunk","contentChunk","startBefore","beforeSequenceClose","sequenceClose","sequenceCloseAfter","codeIndented","tokenizeCodeIndented","furtherStart","tokenizeFurtherStart","afterPrefix","atBreak","codeText","resolveCodeText","tokenizeCodeText","tailExitIndex","headEnterIndex","enter","between","SpliceBuffer","initial","stop","deleteCount","removed","chunkedPush","subtokenize","eventsArray","jumps","lineIndex","otherIndex","otherEvent","subevents","more","subcontent","eventIndex","startPosition","startPositions","tokenizer","childEvents","gaps","current","adjust","breaks","slice","resolveContent","tokenizeContent","continuationConstruct","tokenizeContinuation","chunkInside","contentEnd","contentContinue","startLookahead","prefixed","factoryDestination","literalType","literalMarkerType","rawType","stringType","balance","enclosedBefore","raw","enclosed","enclosedEscape","rawEscape","factoryLabel","markerType","labelInside","labelEscape","factoryTitle","begin","factoryWhitespace","tokenizeDefinition","titleBefore","tokenizeTitleBefore","identifier","labelAfter","markerAfter","destinationBefore","destinationAfter","afterWhitespace","beforeMarker","titleAfter","titleAfterOptionalWhitespace","hardBreakEscape","tokenizeHardBreakEscape","headingAtx","resolveHeadingAtx","tokenizeHeadingAtx","sequenceFurther","htmlBlockNames","htmlRawNames","htmlFlow","resolveToHtmlFlow","tokenizeHtmlFlow","blankLineBefore","tokenizeBlankLineBefore","nonLazyContinuationStart","tokenizeNonLazyContinuationStart","closingTag","markerB","declarationOpen","tagCloseStart","continuationDeclarationInside","commentOpenInside","cdataOpenInside","continuation","slash","basicSelfClosing","completeClosingTagAfter","completeAttributeNameBefore","completeEnd","completeAttributeName","completeAttributeNameAfter","completeAttributeValueBefore","completeAttributeValueQuoted","completeAttributeValueUnquoted","completeAttributeValueQuotedAfter","completeAfter","continuationCommentInside","continuationRawTagOpen","continuationClose","continuationCdataInside","continuationAfter","continuationStart","continuationStartNonLazy","continuationBefore","continuationRawEndTag","htmlText","tokenizeHtmlText","returnState","instruction","tagOpen","commentEnd","commentClose","lineEndingBefore","cdata","cdataClose","cdataEnd","instructionClose","tagClose","tagCloseBetween","tagOpenBetween","tagOpenAttributeName","tagOpenAttributeNameAfter","tagOpenAttributeValueBefore","tagOpenAttributeValueQuoted","tagOpenAttributeValueUnquoted","tagOpenAttributeValueQuotedAfter","lineEndingAfter","lineEndingAfterPrefix","labelEnd","resolveAllLabelEnd","resolveToLabelEnd","tokenizeLabelEnd","resourceConstruct","tokenizeResource","referenceFullConstruct","tokenizeReferenceFull","referenceCollapsedConstruct","tokenizeReferenceCollapsed","newEvents","media","label","labelStart","defined","labelEndNok","labelEndOk","referenceNotFull","resourceStart","resourceBefore","resourceOpen","resourceEnd","resourceDestinationAfter","resourceDestinationMissing","resourceBetween","resourceTitleAfter","referenceFull","referenceFullAfter","referenceFullMissing","referenceCollapsedStart","referenceCollapsedOpen","labelStartImage","tokenizeLabelStartImage","labelStartLink","tokenizeLabelStartLink","lineEnding","tokenizeLineEnding","thematicBreak","tokenizeThematicBreak","sequence","tokenizeListContinuation","tokenizeListEnd","tokenizeListStart","listItemPrefixWhitespaceConstruct","tokenizeListItemPrefixWhitespace","indentConstruct","tokenizeIndent","initialSize","kind","atMarker","onBlank","endOfPrefix","otherPrefix","notBlank","notInCurrentItem","setextUnderline","resolveToSetextUnderline","tokenizeSetextUnderline","heading","paragraph","flow","initializeFlow","atBlankEnding","afterConstruct","resolver","createResolver","initializeFactory","field","resolveAllLineSuffixes","initializeText","notText","extraResolver","resolveAllText","chunks","bufferIndex","tabs","chunk","contentInitial","flowInitial","insideSpan","resolveText","disable","createTokenizer","parser","initialize","columnStart","resolveAllConstructs","constructFactory","onsuccessfulconstruct","onsuccessfulcheck","consume","defineSkip","now","sliceSerialize","sliceStream","write","main","addResult","expandTabs","serializeChunks","sliceChunks","_bufferIndex","_index","line","accountForPotentialSkip","chunkIndex","go","fields","construct","onreturn","bogusState","listOfConstructs","constructIndex","currentConstruct","handleListOfConstructs","handleMapOfConstructs","handleConstruct","store","startPoint","startPrevious","startCurrentConstruct","startEventsIndex","startStack","restore","startIndex","startBufferIndex","endIndex","endBufferIndex","view","head","atTab","defaultConstructs","creator","postprocess","search","preprocess","atCarriageReturn","preprocessor","encoding","endPosition","characterEscapeOrReference","decodeString","decode","$1","$2","hex","fromMarkdown","config","opener","onenterdata","codeFlow","emphasis","hardBreak","image","listItem","onenterlistitemvalue","onenterlistordered","onenterreference","strong","closer","onexitatxheadingsequence","onexitautolinkemail","onexitautolinkprotocol","onexitdata","onexitcharacterreferencemarker","onexitcharacterreferencevalue","onexitcharacterreference","onexitcodefenced","onexitcodefencedfence","onexitcodefencedfenceinfo","onexitcodefencedfencemeta","onexitcodeindented","onexitcodetext","onexitdefinitiondestinationstring","onexitdefinitionlabelstring","onexitdefinitiontitlestring","onexithardbreak","onexithtmlflow","onexithtmltext","onexitimage","onexitlabel","onexitlabeltext","onexitlineending","onexitlink","onexitreferencestring","onexitresourcedestinationstring","onexitresourcetitlestring","onexitresource","onexitsetextheading","onexitsetextheadinglinesequence","onexitsetextheadingtext","configure","compile","resume","listStack","prepareList","defaultOnError","length","containerBalance","listSpread","firstBlankLineIndex","tailIndex","tailEvent","and","errorHandler","onExitError","ancestor","depth","referenceType","fragment","combined","remarkParse","doc","blockquote","language","strikethrough","footnoteReference","clobberPrefix","safeId","counter","reuseCounter","sup","revert","subtype","suffix","contents","imageReference","inlineCode","linkReference","results","loose","listLoose","listItemLoose","table","rows","firstRow","tableContent","body","tableRow","align","cellIndex","cells","cell","tableCell","tab","trimLines","last","trimLine","handlers","ignore","defaultFootnoteBackContent","rereferenceIndex","defaultFootnoteBackLabel","referenceIndex","footer","footnoteBackContent","footnoteBackLabel","footnoteLabel","footnoteLabelTagName","footnoteLabelProperties","listItems","backReferences","counts","tailTail","createState","definitionById","footnoteById","footnoteCounts","defaultHandlers","applyData","patch","wrap","handle","shallow","defaultUnknownHandler","trimMarkdownSpaceStart","hName","hChildren","hProperties","toHast","foot","remarkRehype","destination","hastTree","squeezeParagraphs","remarkUnlinkProtocols","proto","bail","hasOwn","toStr","defineProperty","gOPD","isArray","isPlainObject","obj","hasOwnConstructor","hasIsPrototypeOf","setProperty","getProperty","extend","src","copyIsArray","clone","deep","prototype","trough","fns","pipeline","run","middlewareIndex","middelware","middleware","wrapped","fnExpectsCallback","done","exception","then","minpath","basename","dirname","extname","join","path","assertPath","seenNonSlash","firstNonSlashEnd","extnameIndex","unmatchedSlash","startPart","startDot","preDotState","segments","joined","absolute","normalizeString","allowAboveRoot","lastSegmentLength","lastSlash","dots","lastSlashIndex","minproc","cwd","isUrl","fileUrlOrPath","urlToPath","getPathFromURLPosix","pathname","third","order","VFile","isUint8Array","assertNonEmpty","assertPart","stem","CallableInstance","apply","Processor","attacher","assertUnfrozen","transformer","realFile","vfile","assertParser","assertCompiler","executor","reject","parseTree","realDone","compileTree","compileResult","looksLikeAValue","complete","assertDone","assertNode","transformers","outputTree","resultingTree","attachers","namespace","addPlugin","addList","addPreset","add","plugin","plugins","entryIndex","primary","currentPrimary","isPlainObj","unified","frozen","asyncName","looksLikeAVFile","_sfc_main$2","URL_PATTERN","response","isPublic","getCurrentUser","axios","generateOcsUrl","getSharingToken","_component_NcReferenceWidget","renderList","reference","NcReferenceList","ccount","code2","propsFactory","typeFactory","index2","checkAsRecord","all2","node2","nodeAsRecord","looksLikeANode","CONTINUE","EXIT","SKIP","reverse","step","factory","visit2","subresult","grandparents","toResult","nodeAsParent","list2","replace2","inConstruct","notInConstruct","gfmAutolinkLiteralFromMarkdown","transformGfmAutolinkLiterals","enterLiteralAutolink","enterLiteralAutolinkValue","exitLiteralAutolink","exitLiteralAutolinkEmail","exitLiteralAutolinkHttp","exitLiteralAutolinkWww","gfmAutolinkLiteralToMarkdown","findUrl","findEmail","protocol","domain2","path2","isCorrectDomain","parts","splitUrl","atext","trailExec","trail2","closingParenIndex","openingParens","closingParens","email","footnoteReferencePeek","enterFootnoteCallString","enterFootnoteCall","enterFootnoteDefinitionLabelString","enterFootnoteDefinition","exitFootnoteCallString","exitFootnoteCall","exitFootnoteDefinitionLabelString","exitFootnoteDefinition","tracker","exit2","subexit","gfmFootnoteFromMarkdown","gfmFootnoteToMarkdown","firstLineBlank","footnoteDefinition","mapAll","mapExceptFirst","blank","constructsWithoutStrikethrough","handleDelete","peekDelete","gfmStrikethroughFromMarkdown","enterStrikethrough","exitStrikethrough","gfmStrikethroughToMarkdown","defaultStringLength","markdownTable","stringLength","alignments","cellMatrix","sizeMatrix","longestCellByColumn","mostCellsPerRow","rowIndex","row2","sizes2","columnIndex2","columnIndex","toAlignment","row","sizes","map$1","patternInScope","pattern","listInScope","none","_1","longestStreak","substring","expected","formatCodeAsIndented","checkFence","code$1","exit3","value2","checkQuote","quote","checkEmphasis","encodeCharacterReference","encodeInfo","outside","outsideKind","insideKind","emphasisPeek","betweenHead","betweenTail","emptyOptions$1","formatHeadingAsSetext","literalWithBreak","node3","EXIT$1","rank","subexit2","htmlPeek","imagePeek","imageReferencePeek","alt","inlineCodePeek","formatLinkAsAutolink","linkPeek","linkReferencePeek","text2","checkBullet","checkBulletOther","bullet","bulletOther","checkBulletOrdered","checkRule","bulletCurrent","useDifferentMarker","firstListItem","checkListItemIndent","listItemIndent","map2","phrasing","checkStrong","strongPeek","text$1","checkRuleRepetition","repetition","gfmTableFromMarkdown","enterTable","enterCell","enterRow","exitCodeText","exitTable","gfmTableToMarkdown","padding","alignDelimiters","around","inlineCodeWithTable","handleTable","handleTableCell","handleTableRow","serializeData","handleTableAsData","handleTableRowAsData","matrix","gfmTaskListItemFromMarkdown","exitCheck","exitParagraphWithTaskListItem","gfmTaskListItemToMarkdown","listItemWithTaskListItem","firstParaghraph","sibling","checkable","checkbox","gfmFromMarkdown","gfmToMarkdown","wwwPrefix","tokenizeWwwPrefix","domain","tokenizeDomain","tokenizePath","trail","tokenizeTrail","emailDomainDotTrail","tokenizeEmailDomainDotTrail","wwwAutolink","tokenizeWwwAutolink","previousWww","protocolAutolink","tokenizeProtocolAutolink","previousProtocol","emailAutolink","tokenizeEmailAutolink","previousEmail","gfmAutolinkLiteral","ok2","dot","gfmAtext","previousUnbalanced","emailDomain","emailDomainAfter","emailDomainDot","wwwStart","wwwAfter","protocolStart","protocolPrefixInside","protocolSlashesInside","afterProtocol","protocolAfter","wwwPrefixInside","wwwPrefixAfter","underscoreInLastSegment","underscoreInLastLastSegment","domainInside","domainAfter","domainAtPunctuation","sizeClose","pathInside","pathAtPunctuation","trailCharacterReferenceStart","trailBracketAfter","trailCharacterReferenceInside","constructs2","indent","gfmFootnote","tokenizeDefinitionStart","tokenizeDefinitionContinuation","gfmFootnoteDefinitionEnd","tokenizeGfmFootnoteCall","tokenizePotentialGfmFootnoteCall","resolveToPotentialGfmFootnoteCall","call","replacement","callStart","callData","callEscape","labelAtMarker","whitespaceAfter","gfmStrikethrough","single","tokenizeStrikethrough","resolveAllStrikethrough","previous2","EditMap","addImplementation","vecs","editMap","at","gfmTableAlign","inDelimiterRow","alignIndex","gfmTable","tokenizeTable","resolveTable","sizeB","bodyRowStart","headRowBefore","headRowStart","headRowBreak","headDelimiterStart","headRowData","headRowEscape","headDelimiterBefore","headDelimiterValueBefore","headDelimiterCellBefore","headDelimiterNok","headDelimiterLeftAlignmentAfter","headDelimiterCellAfter","headDelimiterFiller","headDelimiterRightAlignmentAfter","bodyRowBreak","bodyRowData","bodyRowEscape","inFirstCellAwaitingPipe","rowKind","lastCell","afterHeadAwaitingFirstBodyRow","lastTableEnd","currentTable","currentBody","currentCell","flushTableEnd","flushCell","range","rowEnd","previousCell","groupName","valueName","getPoint","relatedStart","relatedEnd","valueToken","tableBody","exits","related","side","tasklistCheck","tokenizeTasklistCheck","gfmTaskListItem","spaceThenNonSpace","gfm","remarkGfm","micromarkExtensions","fromMarkdownExtensions","toMarkdownExtensions","isTextNode$1","transformPlaceholders","ast","placeholders","matches","component","remarkPlaceholder","isTextNode","remarkUnescape","SKIP$1","LINK_PROTOCOLS","rehypeHighlight","importRehypeHighlightLibrary","module","__vitePreload","createElementId","argumentId","argument","renderedMarkdown","remarkAutolink","remark2rehype","rehype2react","parseUrl","componentClass","nestedNode","inputNode","labelParts","nestedNodeIndex","propsToForward","inputComponent","NcCheckboxRadioSwitch","placeholder","NcRichText"],"ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145],"sources":["../node_modules/splitpanes/dist/splitpanes.es.js","../node_modules/@nextcloud/vue/dist/chunks/appName-DtnLUijR.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppContent-CTpYDkuT.mjs","../node_modules/@nextcloud/vue/dist/chunks/constants-DrSznhwy.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcContent-BR_nMwKN.mjs","../node_modules/@nextcloud/vue/dist/chunks/useCopy-7FVrniF_.mjs","../node_modules/@nextcloud/vue/dist/chunks/customPickerElements-4pQTZUnk.mjs","../node_modules/@nextcloud/vue/dist/chunks/referencePickerModal-DmD3-xYB.mjs","../node_modules/@ungap/structured-clone/esm/types.js","../node_modules/@ungap/structured-clone/esm/deserialize.js","../node_modules/@ungap/structured-clone/esm/serialize.js","../node_modules/@ungap/structured-clone/esm/index.js","../node_modules/hast-util-is-element/lib/index.js","../node_modules/is-absolute-url/index.js","../node_modules/space-separated-tokens/index.js","../node_modules/rehype-external-links/lib/index.js","../node_modules/comma-separated-tokens/index.js","../node_modules/estree-util-is-identifier-name/lib/index.js","../node_modules/hast-util-whitespace/lib/index.js","../node_modules/property-information/lib/util/schema.js","../node_modules/property-information/lib/util/merge.js","../node_modules/property-information/lib/normalize.js","../node_modules/property-information/lib/util/info.js","../node_modules/property-information/lib/util/types.js","../node_modules/property-information/lib/util/defined-info.js","../node_modules/property-information/lib/util/create.js","../node_modules/property-information/lib/aria.js","../node_modules/property-information/lib/util/case-sensitive-transform.js","../node_modules/property-information/lib/util/case-insensitive-transform.js","../node_modules/property-information/lib/html.js","../node_modules/property-information/lib/svg.js","../node_modules/property-information/lib/xlink.js","../node_modules/property-information/lib/xmlns.js","../node_modules/property-information/lib/xml.js","../node_modules/property-information/lib/hast-to-react.js","../node_modules/property-information/lib/find.js","../node_modules/property-information/index.js","../node_modules/inline-style-parser/index.js","../node_modules/style-to-object/cjs/index.js","../node_modules/style-to-js/cjs/utilities.js","../node_modules/style-to-js/cjs/index.js","../node_modules/unist-util-position/lib/index.js","../node_modules/unist-util-stringify-position/lib/index.js","../node_modules/vfile-message/lib/index.js","../node_modules/hast-util-to-jsx-runtime/lib/index.js","../node_modules/rehype-react/lib/index.js","../node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp/index.js","../node_modules/mdast-util-find-and-replace/lib/index.js","../node_modules/mdast-util-newline-to-break/lib/index.js","../node_modules/remark-breaks/lib/index.js","../node_modules/mdast-util-to-string/lib/index.js","../node_modules/decode-named-character-reference/index.dom.js","../node_modules/micromark-util-chunked/index.js","../node_modules/micromark-util-combine-extensions/index.js","../node_modules/micromark-util-decode-numeric-character-reference/index.js","../node_modules/micromark-util-normalize-identifier/index.js","../node_modules/micromark-util-character/index.js","../node_modules/micromark-util-sanitize-uri/index.js","../node_modules/micromark-factory-space/index.js","../node_modules/micromark/lib/initialize/content.js","../node_modules/micromark/lib/initialize/document.js","../node_modules/micromark-util-classify-character/index.js","../node_modules/micromark-util-resolve-all/index.js","../node_modules/micromark-core-commonmark/lib/attention.js","../node_modules/micromark-core-commonmark/lib/autolink.js","../node_modules/micromark-core-commonmark/lib/blank-line.js","../node_modules/micromark-core-commonmark/lib/block-quote.js","../node_modules/micromark-core-commonmark/lib/character-escape.js","../node_modules/micromark-core-commonmark/lib/character-reference.js","../node_modules/micromark-core-commonmark/lib/code-fenced.js","../node_modules/micromark-core-commonmark/lib/code-indented.js","../node_modules/micromark-core-commonmark/lib/code-text.js","../node_modules/micromark-util-subtokenize/lib/splice-buffer.js","../node_modules/micromark-util-subtokenize/index.js","../node_modules/micromark-core-commonmark/lib/content.js","../node_modules/micromark-factory-destination/index.js","../node_modules/micromark-factory-label/index.js","../node_modules/micromark-factory-title/index.js","../node_modules/micromark-factory-whitespace/index.js","../node_modules/micromark-core-commonmark/lib/definition.js","../node_modules/micromark-core-commonmark/lib/hard-break-escape.js","../node_modules/micromark-core-commonmark/lib/heading-atx.js","../node_modules/micromark-util-html-tag-name/index.js","../node_modules/micromark-core-commonmark/lib/html-flow.js","../node_modules/micromark-core-commonmark/lib/html-text.js","../node_modules/micromark-core-commonmark/lib/label-end.js","../node_modules/micromark-core-commonmark/lib/label-start-image.js","../node_modules/micromark-core-commonmark/lib/label-start-link.js","../node_modules/micromark-core-commonmark/lib/line-ending.js","../node_modules/micromark-core-commonmark/lib/thematic-break.js","../node_modules/micromark-core-commonmark/lib/list.js","../node_modules/micromark-core-commonmark/lib/setext-underline.js","../node_modules/micromark/lib/initialize/flow.js","../node_modules/micromark/lib/initialize/text.js","../node_modules/micromark/lib/constructs.js","../node_modules/micromark/lib/create-tokenizer.js","../node_modules/micromark/lib/parse.js","../node_modules/micromark/lib/postprocess.js","../node_modules/micromark/lib/preprocess.js","../node_modules/micromark-util-decode-string/index.js","../node_modules/mdast-util-from-markdown/lib/index.js","../node_modules/remark-parse/lib/index.js","../node_modules/mdast-util-to-hast/lib/handlers/blockquote.js","../node_modules/mdast-util-to-hast/lib/handlers/break.js","../node_modules/mdast-util-to-hast/lib/handlers/code.js","../node_modules/mdast-util-to-hast/lib/handlers/delete.js","../node_modules/mdast-util-to-hast/lib/handlers/emphasis.js","../node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/heading.js","../node_modules/mdast-util-to-hast/lib/handlers/html.js","../node_modules/mdast-util-to-hast/lib/revert.js","../node_modules/mdast-util-to-hast/lib/handlers/image-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/image.js","../node_modules/mdast-util-to-hast/lib/handlers/inline-code.js","../node_modules/mdast-util-to-hast/lib/handlers/link-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/link.js","../node_modules/mdast-util-to-hast/lib/handlers/list-item.js","../node_modules/mdast-util-to-hast/lib/handlers/list.js","../node_modules/mdast-util-to-hast/lib/handlers/paragraph.js","../node_modules/mdast-util-to-hast/lib/handlers/root.js","../node_modules/mdast-util-to-hast/lib/handlers/strong.js","../node_modules/mdast-util-to-hast/lib/handlers/table.js","../node_modules/mdast-util-to-hast/lib/handlers/table-row.js","../node_modules/mdast-util-to-hast/lib/handlers/table-cell.js","../node_modules/trim-lines/index.js","../node_modules/mdast-util-to-hast/lib/handlers/text.js","../node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","../node_modules/mdast-util-to-hast/lib/handlers/index.js","../node_modules/mdast-util-to-hast/lib/footer.js","../node_modules/mdast-util-to-hast/lib/state.js","../node_modules/mdast-util-to-hast/lib/index.js","../node_modules/remark-rehype/lib/index.js","../node_modules/mdast-squeeze-paragraphs/lib/index.js","../node_modules/remark-unlink-protocols/lib/index.js","../node_modules/bail/index.js","../node_modules/extend/index.js","../node_modules/is-plain-obj/index.js","../node_modules/trough/lib/index.js","../node_modules/vfile/lib/minpath.browser.js","../node_modules/vfile/lib/minproc.browser.js","../node_modules/vfile/lib/minurl.shared.js","../node_modules/vfile/lib/minurl.browser.js","../node_modules/vfile/lib/index.js","../node_modules/unified/lib/callable-instance.js","../node_modules/unified/lib/index.js","../node_modules/@nextcloud/vue/dist/chunks/NcRichText-CBMtJzE_.mjs"],"sourcesContent":["import { useSlots as ce, ref as k, computed as z, watch as B, onMounted as G, onBeforeUnmount as X, provide as g, createBlock as ve, openBlock as Y, resolveDynamicComponent as me, nextTick as T, h as fe, inject as w, getCurrentInstance as de, createElementBlock as pe, normalizeStyle as ze, unref as he, renderSlot as xe } from \"vue\";\nconst Pe = {\n __name: \"splitpanes\",\n props: {\n horizontal: { type: Boolean, default: !1 },\n pushOtherPanes: { type: Boolean, default: !0 },\n maximizePanes: { type: Boolean, default: !0 },\n // Maximize pane on splitter double click/tap.\n rtl: { type: Boolean, default: !1 },\n // Right to left direction.\n firstSplitter: { type: Boolean, default: !1 }\n },\n emits: [\n \"ready\",\n \"resize\",\n \"resized\",\n \"pane-click\",\n \"pane-maximize\",\n \"pane-add\",\n \"pane-remove\",\n \"splitter-click\",\n \"splitter-dblclick\"\n ],\n setup(D, { emit: h }) {\n const y = h, u = D, E = ce(), l = k([]), M = z(() => l.value.reduce((e, n) => (e[~~n.id] = n) && e, {})), m = z(() => l.value.length), x = k(null), S = k(!1), c = k({\n mouseDown: !1,\n dragging: !1,\n activeSplitter: null,\n cursorOffset: 0\n // Cursor offset within the splitter.\n }), f = k({\n // Used to detect double click on touch devices.\n splitter: null,\n timeoutId: null\n }), _ = z(() => ({\n [`splitpanes splitpanes--${u.horizontal ? \"horizontal\" : \"vertical\"}`]: !0,\n \"splitpanes--dragging\": c.value.dragging\n })), R = () => {\n document.addEventListener(\"mousemove\", r, { passive: !1 }), document.addEventListener(\"mouseup\", P), \"ontouchstart\" in window && (document.addEventListener(\"touchmove\", r, { passive: !1 }), document.addEventListener(\"touchend\", P));\n }, O = () => {\n document.removeEventListener(\"mousemove\", r, { passive: !1 }), document.removeEventListener(\"mouseup\", P), \"ontouchstart\" in window && (document.removeEventListener(\"touchmove\", r, { passive: !1 }), document.removeEventListener(\"touchend\", P));\n }, b = (e, n) => {\n const t = e.target.closest(\".splitpanes__splitter\");\n if (t) {\n const { left: i, top: a } = t.getBoundingClientRect(), { clientX: s, clientY: o } = \"ontouchstart\" in window && e.touches ? e.touches[0] : e;\n c.value.cursorOffset = u.horizontal ? o - a : s - i;\n }\n R(), c.value.mouseDown = !0, c.value.activeSplitter = n;\n }, r = (e) => {\n c.value.mouseDown && (e.preventDefault(), c.value.dragging = !0, requestAnimationFrame(() => {\n K(I(e)), d(\"resize\", { event: e }, !0);\n }));\n }, P = (e) => {\n c.value.dragging && (window.getSelection().removeAllRanges(), d(\"resized\", { event: e }, !0)), c.value.mouseDown = !1, c.value.activeSplitter = null, setTimeout(() => {\n c.value.dragging = !1, O();\n }, 100);\n }, A = (e, n) => {\n \"ontouchstart\" in window && (e.preventDefault(), f.value.splitter === n ? (clearTimeout(f.value.timeoutId), f.value.timeoutId = null, U(e, n), f.value.splitter = null) : (f.value.splitter = n, f.value.timeoutId = setTimeout(() => f.value.splitter = null, 500))), c.value.dragging || d(\"splitter-click\", { event: e, index: n }, !0);\n }, U = (e, n) => {\n if (d(\"splitter-dblclick\", { event: e, index: n }, !0), u.maximizePanes) {\n let t = 0;\n l.value = l.value.map((i, a) => (i.size = a === n ? i.max : i.min, a !== n && (t += i.min), i)), l.value[n].size -= t, d(\"pane-maximize\", { event: e, index: n, pane: l.value[n] }), d(\"resized\", { event: e, index: n }, !0);\n }\n }, W = (e, n) => {\n d(\"pane-click\", {\n event: e,\n index: M.value[n].index,\n pane: M.value[n]\n });\n }, I = (e) => {\n const n = x.value.getBoundingClientRect(), { clientX: t, clientY: i } = \"ontouchstart\" in window && e.touches ? e.touches[0] : e;\n return {\n x: t - (u.horizontal ? 0 : c.value.cursorOffset) - n.left,\n y: i - (u.horizontal ? c.value.cursorOffset : 0) - n.top\n };\n }, J = (e) => {\n e = e[u.horizontal ? \"y\" : \"x\"];\n const n = x.value[u.horizontal ? \"clientHeight\" : \"clientWidth\"];\n return u.rtl && !u.horizontal && (e = n - e), e * 100 / n;\n }, K = (e) => {\n const n = c.value.activeSplitter;\n let t = {\n prevPanesSize: $(n),\n nextPanesSize: N(n),\n prevReachedMinPanes: 0,\n nextReachedMinPanes: 0\n };\n const i = 0 + (u.pushOtherPanes ? 0 : t.prevPanesSize), a = 100 - (u.pushOtherPanes ? 0 : t.nextPanesSize), s = Math.max(Math.min(J(e), a), i);\n let o = [n, n + 1], v = l.value[o[0]] || null, p = l.value[o[1]] || null;\n const H = v.max < 100 && s >= v.max + t.prevPanesSize, ue = p.max < 100 && s <= 100 - (p.max + N(n + 1));\n if (H || ue) {\n H ? (v.size = v.max, p.size = Math.max(100 - v.max - t.prevPanesSize - t.nextPanesSize, 0)) : (v.size = Math.max(100 - p.max - t.prevPanesSize - N(n + 1), 0), p.size = p.max);\n return;\n }\n if (u.pushOtherPanes) {\n const j = Q(t, s);\n if (!j) return;\n ({ sums: t, panesToResize: o } = j), v = l.value[o[0]] || null, p = l.value[o[1]] || null;\n }\n v !== null && (v.size = Math.min(Math.max(s - t.prevPanesSize - t.prevReachedMinPanes, v.min), v.max)), p !== null && (p.size = Math.min(Math.max(100 - s - t.nextPanesSize - t.nextReachedMinPanes, p.min), p.max));\n }, Q = (e, n) => {\n const t = c.value.activeSplitter, i = [t, t + 1];\n return n < e.prevPanesSize + l.value[i[0]].min && (i[0] = V(t).index, e.prevReachedMinPanes = 0, i[0] < t && l.value.forEach((a, s) => {\n s > i[0] && s <= t && (a.size = a.min, e.prevReachedMinPanes += a.min);\n }), e.prevPanesSize = $(i[0]), i[0] === void 0) ? (e.prevReachedMinPanes = 0, l.value[0].size = l.value[0].min, l.value.forEach((a, s) => {\n s > 0 && s <= t && (a.size = a.min, e.prevReachedMinPanes += a.min);\n }), l.value[i[1]].size = 100 - e.prevReachedMinPanes - l.value[0].min - e.prevPanesSize - e.nextPanesSize, null) : n > 100 - e.nextPanesSize - l.value[i[1]].min && (i[1] = Z(t).index, e.nextReachedMinPanes = 0, i[1] > t + 1 && l.value.forEach((a, s) => {\n s > t && s < i[1] && (a.size = a.min, e.nextReachedMinPanes += a.min);\n }), e.nextPanesSize = N(i[1] - 1), i[1] === void 0) ? (e.nextReachedMinPanes = 0, l.value.forEach((a, s) => {\n s < m.value - 1 && s >= t + 1 && (a.size = a.min, e.nextReachedMinPanes += a.min);\n }), l.value[i[0]].size = 100 - e.prevPanesSize - N(i[0] - 1), null) : { sums: e, panesToResize: i };\n }, $ = (e) => l.value.reduce((n, t, i) => n + (i < e ? t.size : 0), 0), N = (e) => l.value.reduce((n, t, i) => n + (i > e + 1 ? t.size : 0), 0), V = (e) => [...l.value].reverse().find((t) => t.index < e && t.size > t.min) || {}, Z = (e) => l.value.find((t) => t.index > e + 1 && t.size > t.min) || {}, ee = () => {\n var n;\n const e = Array.from(((n = x.value) == null ? void 0 : n.children) || []);\n for (const t of e) {\n const i = t.classList.contains(\"splitpanes__pane\"), a = t.classList.contains(\"splitpanes__splitter\");\n !i && !a && (t.remove(), console.warn(\"Splitpanes: Only <pane> elements are allowed at the root of <splitpanes>. One of your DOM nodes was removed.\"));\n }\n }, F = (e, n, t = !1) => {\n const i = e - 1, a = document.createElement(\"div\");\n a.classList.add(\"splitpanes__splitter\"), t || (a.onmousedown = (s) => b(s, i), typeof window < \"u\" && \"ontouchstart\" in window && (a.ontouchstart = (s) => b(s, i)), a.onclick = (s) => A(s, i + 1)), a.ondblclick = (s) => U(s, i + 1), n.parentNode.insertBefore(a, n);\n }, ne = (e) => {\n e.onmousedown = void 0, e.onclick = void 0, e.ondblclick = void 0, e.remove();\n }, C = () => {\n var t;\n const e = Array.from(((t = x.value) == null ? void 0 : t.children) || []);\n for (const i of e)\n i.className.includes(\"splitpanes__splitter\") && ne(i);\n let n = 0;\n for (const i of e)\n i.className.includes(\"splitpanes__pane\") && (!n && u.firstSplitter ? F(n, i, !0) : n && F(n, i), n++);\n }, ie = ({ uid: e, ...n }) => {\n const t = M.value[e];\n for (const [i, a] of Object.entries(n)) t[i] = a;\n }, te = (e) => {\n var t;\n let n = -1;\n Array.from(((t = x.value) == null ? void 0 : t.children) || []).some((i) => (i.className.includes(\"splitpanes__pane\") && n++, i.isSameNode(e.el))), l.value.splice(n, 0, { ...e, index: n }), l.value.forEach((i, a) => i.index = a), S.value && T(() => {\n C(), L({ addedPane: l.value[n] }), d(\"pane-add\", { pane: l.value[n] });\n });\n }, ae = (e) => {\n const n = l.value.findIndex((i) => i.id === e);\n l.value[n].el = null;\n const t = l.value.splice(n, 1)[0];\n l.value.forEach((i, a) => i.index = a), T(() => {\n C(), d(\"pane-remove\", { pane: t }), L({ removedPane: { ...t } });\n });\n }, L = (e = {}) => {\n !e.addedPane && !e.removedPane ? le() : l.value.some((n) => n.givenSize !== null || n.min || n.max < 100) ? oe(e) : se(), S.value && d(\"resized\");\n }, se = () => {\n const e = 100 / m.value;\n let n = 0;\n const t = [], i = [];\n for (const a of l.value)\n a.size = Math.max(Math.min(e, a.max), a.min), n -= a.size, a.size >= a.max && t.push(a.id), a.size <= a.min && i.push(a.id);\n n > 0.1 && q(n, t, i);\n }, le = () => {\n let e = 100;\n const n = [], t = [];\n let i = 0;\n for (const s of l.value)\n e -= s.size, s.givenSize !== null && i++, s.size >= s.max && n.push(s.id), s.size <= s.min && t.push(s.id);\n let a = 100;\n if (e > 0.1) {\n for (const s of l.value)\n s.givenSize === null && (s.size = Math.max(Math.min(e / (m.value - i), s.max), s.min)), a -= s.size;\n a > 0.1 && q(a, n, t);\n }\n }, oe = ({ addedPane: e, removedPane: n } = {}) => {\n let t = 100 / m.value, i = 0;\n const a = [], s = [];\n ((e == null ? void 0 : e.givenSize) ?? null) !== null && (t = (100 - e.givenSize) / (m.value - 1));\n for (const o of l.value)\n i -= o.size, o.size >= o.max && a.push(o.id), o.size <= o.min && s.push(o.id);\n if (!(Math.abs(i) < 0.1)) {\n for (const o of l.value)\n (e == null ? void 0 : e.givenSize) !== null && (e == null ? void 0 : e.id) === o.id || (o.size = Math.max(Math.min(t, o.max), o.min)), i -= o.size, o.size >= o.max && a.push(o.id), o.size <= o.min && s.push(o.id);\n i > 0.1 && q(i, a, s);\n }\n }, q = (e, n, t) => {\n let i;\n e > 0 ? i = e / (m.value - n.length) : i = e / (m.value - t.length), l.value.forEach((a, s) => {\n if (e > 0 && !n.includes(a.id)) {\n const o = Math.max(Math.min(a.size + i, a.max), a.min), v = o - a.size;\n e -= v, a.size = o;\n } else if (!t.includes(a.id)) {\n const o = Math.max(Math.min(a.size + i, a.max), a.min), v = o - a.size;\n e -= v, a.size = o;\n }\n }), Math.abs(e) > 0.1 && T(() => {\n S.value && console.warn(\"Splitpanes: Could not resize panes correctly due to their constraints.\");\n });\n }, d = (e, n = void 0, t = !1) => {\n const i = (n == null ? void 0 : n.index) ?? c.value.activeSplitter ?? null;\n y(e, {\n ...n,\n ...i !== null && { index: i },\n ...t && i !== null && {\n prevPane: l.value[i - (u.firstSplitter ? 1 : 0)],\n nextPane: l.value[i + (u.firstSplitter ? 0 : 1)]\n },\n panes: l.value.map((a) => ({ min: a.min, max: a.max, size: a.size }))\n });\n };\n B(() => u.firstSplitter, () => C()), G(() => {\n ee(), C(), L(), d(\"ready\"), S.value = !0;\n }), X(() => S.value = !1);\n const re = () => {\n var e;\n return fe(\n \"div\",\n { ref: x, class: _.value },\n (e = E.default) == null ? void 0 : e.call(E)\n );\n };\n return g(\"panes\", l), g(\"indexedPanes\", M), g(\"horizontal\", z(() => u.horizontal)), g(\"requestUpdate\", ie), g(\"onPaneAdd\", te), g(\"onPaneRemove\", ae), g(\"onPaneClick\", W), (e, n) => (Y(), ve(me(re)));\n }\n}, ge = {\n __name: \"pane\",\n props: {\n size: { type: [Number, String] },\n minSize: { type: [Number, String], default: 0 },\n maxSize: { type: [Number, String], default: 100 }\n },\n setup(D) {\n var b;\n const h = D, y = w(\"requestUpdate\"), u = w(\"onPaneAdd\"), E = w(\"horizontal\"), l = w(\"onPaneRemove\"), M = w(\"onPaneClick\"), m = (b = de()) == null ? void 0 : b.uid, x = w(\"indexedPanes\"), S = z(() => x.value[m]), c = k(null), f = z(() => {\n const r = isNaN(h.size) || h.size === void 0 ? 0 : parseFloat(h.size);\n return Math.max(Math.min(r, R.value), _.value);\n }), _ = z(() => {\n const r = parseFloat(h.minSize);\n return isNaN(r) ? 0 : r;\n }), R = z(() => {\n const r = parseFloat(h.maxSize);\n return isNaN(r) ? 100 : r;\n }), O = z(() => {\n var r;\n return `${E.value ? \"height\" : \"width\"}: ${(r = S.value) == null ? void 0 : r.size}%`;\n });\n return B(() => f.value, (r) => y({ uid: m, size: r })), B(() => _.value, (r) => y({ uid: m, min: r })), B(() => R.value, (r) => y({ uid: m, max: r })), G(() => {\n u({\n id: m,\n el: c.value,\n min: _.value,\n max: R.value,\n // The given size (useful to know the user intention).\n givenSize: h.size === void 0 ? null : f.value,\n size: f.value\n // The computed current size at any time.\n });\n }), X(() => l(m)), (r, P) => (Y(), pe(\"div\", {\n ref_key: \"paneEl\",\n ref: c,\n class: \"splitpanes__pane\",\n onClick: P[0] || (P[0] = (A) => he(M)(A, r._.uid)),\n style: ze(O.value)\n }, [\n xe(r.$slots, \"default\")\n ], 4));\n }\n};\nexport {\n ge as Pane,\n Pe as Splitpanes\n};\n","import { loadState } from \"@nextcloud/initial-state\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction once(func) {\n let wasCalled = false;\n let result;\n return (...args) => {\n if (!wasCalled) {\n wasCalled = true;\n result = func(...args);\n }\n return result;\n };\n}\nlet realAppName = \"missing-app-name\";\ntry {\n realAppName = appName;\n} catch {\n logger.error(\"The `@nextcloud/vue` library was used without setting / replacing the `appName`.\");\n}\nconst APP_NAME = realAppName;\nlet realAppVersion = \"\";\ntry {\n realAppVersion = appVersion;\n} catch {\n logger.error(\"The `@nextcloud/vue` library was used without setting / replacing the `appVersion`.\");\n}\nconst APP_VERSION = realAppVersion;\nconst getLocalizedAppName = once(() => {\n const activeApp = loadState(\"core\", \"active-app\", APP_NAME);\n return loadState(\"core\", \"apps\", []).find(({ id }) => id === activeApp)?.name ?? APP_NAME;\n});\nexport {\n APP_NAME as A,\n APP_VERSION as a,\n getLocalizedAppName as g\n};\n//# sourceMappingURL=appName-DtnLUijR.mjs.map\n","import '../assets/NcAppContent-HF21N7dO.css';\nimport { getBuilder } from \"@nextcloud/browser-storage\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport { emit } from \"@nextcloud/event-bus\";\nimport { useSwipe } from \"@vueuse/core\";\nimport { Splitpanes, Pane } from \"splitpanes\";\nimport { defineComponent, watch, onMounted, onBeforeUnmount, createBlock, openBlock, unref, normalizeClass, withCtx, createVNode, resolveComponent, createElementBlock, createCommentVNode, renderSlot, toDisplayString, Fragment, withDirectives, withModifiers, createElementVNode, vShow } from \"vue\";\nimport { m as mdiArrowRight } from \"./mdi-XFJRiRqJ.mjs\";\nimport { useIsMobile } from \"../composables/useIsMobile/index.mjs\";\nimport { r as register, a as t } from \"./_l10n-DrTiip5c.mjs\";\nimport { N as NcButton } from \"./NcButton-Dc8V4Urj.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-BvLanNaW.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { g as getLocalizedAppName, A as APP_NAME } from \"./appName-DtnLUijR.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { i as isRtl } from \"./rtl-v0UOPAM7.mjs\";\nimport \"splitpanes/dist/splitpanes.css\";\nregister();\nconst _sfc_main$1 = /* @__PURE__ */ defineComponent({\n __name: \"NcAppContentDetailsToggle\",\n setup(__props) {\n const isMobile = useIsMobile();\n watch(isMobile, toggleAppNavigationButton);\n onMounted(() => {\n toggleAppNavigationButton(isMobile.value);\n });\n onBeforeUnmount(() => {\n if (isMobile.value) {\n toggleAppNavigationButton(false);\n }\n });\n function toggleAppNavigationButton(hide = true) {\n const appNavigationToggle = document.querySelector(\".app-navigation .app-navigation-toggle\");\n if (appNavigationToggle) {\n appNavigationToggle.style.display = hide ? \"none\" : \"\";\n if (hide === true) {\n emit(\"toggle-navigation\", { open: false });\n }\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(NcButton), {\n \"aria-label\": unref(t)(\"Go back to the list\"),\n class: normalizeClass([\"app-details-toggle\", { \"app-details-toggle--mobile\": unref(isMobile) }]),\n title: unref(t)(\"Go back to the list\"),\n variant: \"tertiary\"\n }, {\n icon: withCtx(() => [\n createVNode(unref(NcIconSvgWrapper), {\n directional: \"\",\n path: unref(mdiArrowRight)\n }, null, 8, [\"path\"])\n ]),\n _: 1\n }, 8, [\"aria-label\", \"class\", \"title\"]);\n };\n }\n});\nconst NcAppContentDetailsToggle = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"__scopeId\", \"data-v-a28923a1\"]]);\nconst browserStorage = getBuilder(\"nextcloud\").persist().build();\nconst instanceName = getCapabilities().theming?.name ?? \"Nextcloud\";\nconst _sfc_main = {\n name: \"NcAppContent\",\n components: {\n NcAppContentDetailsToggle,\n Pane,\n Splitpanes\n },\n props: {\n /**\n * Allows to disable the control by swipe of the app navigation open state.\n */\n disableSwipe: {\n type: Boolean,\n default: false\n },\n /**\n * Allows you to set the default width of the resizable list in % on vertical-split\n * or respectively the default height on horizontal-split.\n *\n * Must be between `listMinWidth` and `listMaxWidth`.\n */\n listSize: {\n type: Number,\n default: 20\n },\n /**\n * Allows you to set the minimum width of the list column in % on vertical-split\n * or respectively the minimum height on horizontal-split.\n */\n listMinWidth: {\n type: Number,\n default: 15\n },\n /**\n * Allows you to set the maximum width of the list column in % on vertical-split\n * or respectively the maximum height on horizontal-split.\n */\n listMaxWidth: {\n type: Number,\n default: 40\n },\n /**\n * Specify the config key for the pane config sizes\n * Default is the global var appName if you use the webpack-vue-config\n */\n paneConfigKey: {\n type: String,\n default: \"\"\n },\n /**\n * When in mobile view, only the list or the details are shown.\n *\n * If you provide a list, you need to provide a variable\n * that will be set to true by the user when an element of\n * the list gets selected. The details will then show a back\n * arrow to return to the list that will update this prop to false.\n */\n showDetails: {\n type: Boolean,\n default: true\n },\n /**\n * Content layout used when there is a list together with content:\n * - `vertical-split` - a 2-column layout with list and default content separated vertically\n * - `no-split` - a single column layout; List is shown when `showDetails` is `false`, otherwise the default slot content is shown with a back button to return to the list.\n * - 'horizontal-split' - a 2-column layout with list and default content separated horizontally\n * On mobile screen `no-split` layout is forced.\n */\n layout: {\n type: String,\n default: \"vertical-split\",\n validator(value) {\n return [\"no-split\", \"vertical-split\", \"horizontal-split\"].includes(value);\n }\n },\n /**\n * Specify the `<h1>` page heading\n */\n pageHeading: {\n type: String,\n default: null\n },\n /**\n * Allow setting the page's `<title>`\n *\n * If a page heading is set it defaults to `{pageHeading} - {appName} - {instanceName}` e.g. `Favorites - Files - MyPersonalCloud`.\n * When the page heading and the app name is the same only one is used, e.g. `Files - Files - MyPersonalCloud` is shown as `Files - MyPersonalCloud`.\n * When setting the prop then the following format will be used: `{pageTitle} - {instanceName}`\n */\n pageTitle: {\n type: String,\n default: null\n }\n },\n emits: [\n \"update:showDetails\",\n \"resizeList\"\n ],\n setup() {\n return {\n isMobile: useIsMobile(),\n isRtl\n };\n },\n data() {\n return {\n contentHeight: 0,\n swiping: {},\n listPaneSize: this.restorePaneConfig()\n };\n },\n computed: {\n paneConfigID() {\n if (this.paneConfigKey !== \"\") {\n return `pane-list-size-${this.paneConfigKey}`;\n }\n try {\n return `pane-list-size-${APP_NAME}`;\n } catch {\n logger.info(\"[NcAppContent]: falling back to global nextcloud pane config\");\n return \"pane-list-size-nextcloud\";\n }\n },\n detailsPaneSize() {\n if (this.listPaneSize) {\n return 100 - this.listPaneSize;\n }\n return this.paneDefaults.details.size;\n },\n paneDefaults() {\n return {\n list: {\n size: this.listSize,\n min: this.listMinWidth,\n max: this.listMaxWidth\n },\n // set the inverse values of the details column\n // based on the provided (or default) values of the list column\n details: {\n size: 100 - this.listSize,\n min: 100 - this.listMaxWidth,\n max: 100 - this.listMinWidth\n }\n };\n },\n realPageTitle() {\n const entries = /* @__PURE__ */ new Set();\n if (this.pageTitle) {\n for (const part of this.pageTitle.split(\" - \")) {\n entries.add(part);\n }\n } else if (this.pageHeading) {\n for (const part of this.pageHeading.split(\" - \")) {\n entries.add(part);\n }\n if (entries.size > 0) {\n entries.add(getLocalizedAppName());\n }\n } else {\n return null;\n }\n entries.add(instanceName);\n return [...entries.values()].join(\" - \");\n }\n },\n watch: {\n realPageTitle: {\n immediate: true,\n handler() {\n if (this.realPageTitle !== null) {\n document.title = this.realPageTitle;\n }\n }\n },\n paneConfigKey: {\n immediate: true,\n handler() {\n this.restorePaneConfig();\n }\n }\n },\n mounted() {\n if (!this.disableSwipe) {\n this.swiping = useSwipe(this.$el, {\n onSwipeEnd: this.handleSwipe\n });\n }\n this.restorePaneConfig();\n },\n methods: {\n /**\n * handle the swipe event\n *\n * @param {TouchEvent} e The touch event\n * @param {import('@vueuse/core').SwipeDirection} direction The swipe direction of the event\n */\n handleSwipe(e, direction) {\n const minSwipeX = 70;\n const touchZone = 300;\n if (Math.abs(this.swiping.lengthX) > minSwipeX) {\n if (this.swiping.coordsStart.x < touchZone / 2 && direction === \"right\") {\n emit(\"toggle-navigation\", {\n open: true\n });\n } else if (this.swiping.coordsStart.x < touchZone * 1.5 && direction === \"left\") {\n emit(\"toggle-navigation\", {\n open: false\n });\n }\n }\n },\n handlePaneResize(event) {\n const listPaneSize = parseInt(event.panes[0].size, 10);\n browserStorage.setItem(this.paneConfigID, JSON.stringify(listPaneSize));\n this.listPaneSize = listPaneSize;\n this.$emit(\"resizeList\", { size: listPaneSize });\n logger.debug(\"[NcAppContent] pane config\", { listPaneSize });\n },\n // browserStorage is not reactive, we need to update this manually\n restorePaneConfig() {\n const listPaneSize = parseInt(browserStorage.getItem(this.paneConfigID), 10);\n if (!isNaN(listPaneSize) && listPaneSize !== this.listPaneSize) {\n logger.debug(\"[NcAppContent] pane config\", { listPaneSize });\n this.listPaneSize = listPaneSize;\n return listPaneSize;\n }\n },\n /**\n * The user clicked the back arrow from the details view\n */\n hideDetails() {\n this.$emit(\"update:showDetails\", false);\n }\n }\n};\nconst _hoisted_1 = {\n key: 0,\n class: \"hidden-visually\"\n};\nconst _hoisted_2 = {\n key: 1,\n class: \"app-content-wrapper\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcAppContentDetailsToggle = resolveComponent(\"NcAppContentDetailsToggle\");\n const _component_Pane = resolveComponent(\"Pane\");\n const _component_Splitpanes = resolveComponent(\"Splitpanes\");\n return openBlock(), createElementBlock(\"main\", {\n id: \"app-content-vue\",\n class: normalizeClass([\"app-content no-snapper\", { \"app-content--has-list\": !!_ctx.$slots.list }])\n }, [\n $props.pageHeading ? (openBlock(), createElementBlock(\"h1\", _hoisted_1, toDisplayString($props.pageHeading), 1)) : createCommentVNode(\"\", true),\n !!_ctx.$slots.list ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [\n $setup.isMobile || $props.layout === \"no-split\" ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"app-content-wrapper app-content-wrapper--no-split\", {\n \"app-content-wrapper--show-details\": $props.showDetails,\n \"app-content-wrapper--show-list\": !$props.showDetails,\n \"app-content-wrapper--mobile\": $setup.isMobile\n }])\n }, [\n $props.showDetails ? (openBlock(), createBlock(_component_NcAppContentDetailsToggle, {\n key: 0,\n onClick: withModifiers($options.hideDetails, [\"stop\", \"prevent\"])\n }, null, 8, [\"onClick\"])) : createCommentVNode(\"\", true),\n withDirectives(createElementVNode(\"div\", null, [\n renderSlot(_ctx.$slots, \"list\", {}, void 0, true)\n ], 512), [\n [vShow, !$props.showDetails]\n ]),\n $props.showDetails ? renderSlot(_ctx.$slots, \"default\", { key: 1 }, void 0, true) : createCommentVNode(\"\", true)\n ], 2)) : $props.layout === \"vertical-split\" || $props.layout === \"horizontal-split\" ? (openBlock(), createElementBlock(\"div\", _hoisted_2, [\n createVNode(_component_Splitpanes, {\n horizontal: $props.layout === \"horizontal-split\",\n class: normalizeClass([\"default-theme\", {\n \"splitpanes--horizontal\": $props.layout === \"horizontal-split\",\n \"splitpanes--vertical\": $props.layout === \"vertical-split\"\n }]),\n rtl: $setup.isRtl,\n onResized: $options.handlePaneResize\n }, {\n default: withCtx(() => [\n createVNode(_component_Pane, {\n class: \"splitpanes__pane-list\",\n size: $data.listPaneSize || $options.paneDefaults.list.size,\n \"min-size\": $options.paneDefaults.list.min,\n \"max-size\": $options.paneDefaults.list.max\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"list\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"size\", \"min-size\", \"max-size\"]),\n createVNode(_component_Pane, {\n class: \"splitpanes__pane-details\",\n size: $options.detailsPaneSize,\n \"min-size\": $options.paneDefaults.details.min,\n \"max-size\": $options.paneDefaults.details.max\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"size\", \"min-size\", \"max-size\"])\n ]),\n _: 3\n }, 8, [\"horizontal\", \"class\", \"rtl\", \"onResized\"])\n ])) : createCommentVNode(\"\", true)\n ], 64)) : createCommentVNode(\"\", true),\n !_ctx.$slots.list ? renderSlot(_ctx.$slots, \"default\", { key: 2 }, void 0, true) : createCommentVNode(\"\", true)\n ], 2);\n}\nconst NcAppContent = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-a2641cc2\"]]);\nexport {\n NcAppContent as N\n};\n//# sourceMappingURL=NcAppContent-CTpYDkuT.mjs.map\n","/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst HAS_APP_NAVIGATION_KEY = Symbol.for(\"NcContent:setHasAppNavigation\");\nconst CONTENT_SELECTOR_KEY = Symbol.for(\"NcContent:selector\");\nexport {\n CONTENT_SELECTOR_KEY as C,\n HAS_APP_NAVIGATION_KEY as H\n};\n//# sourceMappingURL=constants-DrSznhwy.mjs.map\n","import '../assets/NcContent-CVIwhwfc.css';\nimport { defineComponent, provide, computed, ref, onBeforeMount, createElementBlock, openBlock, normalizeClass, createBlock, renderSlot, Teleport, createElementVNode, withDirectives, toDisplayString, unref, createVNode, withModifiers, withCtx, createTextVNode, vShow, nextTick } from \"vue\";\nimport { emit } from \"@nextcloud/event-bus\";\nimport { N as NcButton } from \"./NcButton-Dc8V4Urj.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-BvLanNaW.mjs\";\nimport { useIsMobile } from \"../composables/useIsMobile/index.mjs\";\nimport { r as register, a as t } from \"./_l10n-DrTiip5c.mjs\";\nimport { H as HAS_APP_NAVIGATION_KEY, C as CONTENT_SELECTOR_KEY } from \"./constants-DrSznhwy.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister();\nconst contentSvg = '<!--\\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\\n - SPDX-License-Identifier: AGPL-3.0-or-later\\n-->\\n<svg width=\"395\" height=\"314\" viewBox=\"0 0 395 314\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\\n<rect width=\"395\" height=\"314\" rx=\"11\" fill=\"#439DCD\"/>\\n<rect x=\"13\" y=\"51\" width=\"366\" height=\"248\" rx=\"8\" fill=\"white\"/>\\n<rect x=\"22\" y=\"111\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"127\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"63\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"191\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"143\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"79\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"159\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"95\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"175\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<path d=\"M288 145C277.56 147.8 265.32 149 254 149C242.68 149 230.44 147.8 220 145L218 153C225.44 155 234 156.32 242 157V209H250V185H258V209H266V157C274 156.32 282.56 155 290 153L288 145ZM254 145C258.4 145 262 141.4 262 137C262 132.6 258.4 129 254 129C249.6 129 246 132.6 246 137C246 141.4 249.6 145 254 145Z\" fill=\"#DEDEDE\"/>\\n<path d=\"M43.5358 13C38.6641 13 34.535 16.2415 33.2552 20.6333C32.143 18.3038 29.7327 16.6718 26.9564 16.6718C23.1385 16.6718 20 19.7521 20 23.4993C20 27.2465 23.1385 30.3282 26.9564 30.3282C29.7327 30.3282 32.1429 28.6952 33.2552 26.3653C34.535 30.7575 38.6641 34 43.5358 34C48.3715 34 52.4796 30.8064 53.7921 26.4637C54.9249 28.7407 57.3053 30.3282 60.0421 30.3282C63.8601 30.3282 67 27.2465 67 23.4993C67 19.7521 63.8601 16.6718 60.0421 16.6718C57.3053 16.6718 54.9249 18.2583 53.7921 20.5349C52.4796 16.1926 48.3715 13 43.5358 13ZM43.5358 17.0079C47.2134 17.0079 50.1512 19.8899 50.1512 23.4993C50.1512 27.1087 47.2134 29.9921 43.5358 29.9921C39.8583 29.9921 36.9218 27.1087 36.9218 23.4993C36.9218 19.8899 39.8583 17.0079 43.5358 17.0079ZM26.9564 20.6797C28.5677 20.6797 29.8307 21.9179 29.8307 23.4993C29.8307 25.0807 28.5677 26.3203 26.9564 26.3203C25.3452 26.3203 24.0836 25.0807 24.0836 23.4993C24.0836 21.9179 25.3452 20.6797 26.9564 20.6797ZM60.0421 20.6797C61.6534 20.6797 62.9164 21.9179 62.9164 23.4993C62.9164 25.0807 61.6534 26.3203 60.0421 26.3203C58.4309 26.3203 57.1693 25.0807 57.1693 23.4993C57.1693 21.9179 58.4309 20.6797 60.0421 20.6797Z\" fill=\"white\"/>\\n<rect x=\"79\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"99\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"119\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"139\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"159\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"179\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 0C5.37258 0 0 5.37259 0 12V302C0 308.627 5.37259 314 12 314H383C389.627 314 395 308.627 395 302V12C395 5.37258 389.627 0 383 0H12ZM140 44C132.268 44 126 50.268 126 58V292C126 299.732 132.268 306 140 306H372C379.732 306 386 299.732 386 292V58C386 50.268 379.732 44 372 44H140Z\" fill=\"black\" fill-opacity=\"0.35\"/>\\n</svg>\\n';\nconst navigationSvg = '<!--\\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\\n - SPDX-License-Identifier: AGPL-3.0-or-later\\n-->\\n<svg width=\"395\" height=\"314\" viewBox=\"0 0 395 314\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\\n<rect width=\"395\" height=\"314\" rx=\"11\" fill=\"#439DCD\"/>\\n<rect x=\"13\" y=\"51\" width=\"366\" height=\"248\" rx=\"8\" fill=\"white\"/>\\n<rect x=\"22\" y=\"111\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"127\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"63\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"191\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"143\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"79\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"159\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"95\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"175\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<path d=\"M288 145C277.56 147.8 265.32 149 254 149C242.68 149 230.44 147.8 220 145L218 153C225.44 155 234 156.32 242 157V209H250V185H258V209H266V157C274 156.32 282.56 155 290 153L288 145ZM254 145C258.4 145 262 141.4 262 137C262 132.6 258.4 129 254 129C249.6 129 246 132.6 246 137C246 141.4 249.6 145 254 145Z\" fill=\"#DEDEDE\"/>\\n<path d=\"M43.5358 13C38.6641 13 34.535 16.2415 33.2552 20.6333C32.143 18.3038 29.7327 16.6718 26.9564 16.6718C23.1385 16.6718 20 19.7521 20 23.4993C20 27.2465 23.1385 30.3282 26.9564 30.3282C29.7327 30.3282 32.1429 28.6952 33.2552 26.3653C34.535 30.7575 38.6641 34 43.5358 34C48.3715 34 52.4796 30.8064 53.7921 26.4637C54.9249 28.7407 57.3053 30.3282 60.0421 30.3282C63.8601 30.3282 67 27.2465 67 23.4993C67 19.7521 63.8601 16.6718 60.0421 16.6718C57.3053 16.6718 54.9249 18.2583 53.7921 20.5349C52.4796 16.1926 48.3715 13 43.5358 13ZM43.5358 17.0079C47.2134 17.0079 50.1512 19.8899 50.1512 23.4993C50.1512 27.1087 47.2134 29.9921 43.5358 29.9921C39.8583 29.9921 36.9218 27.1087 36.9218 23.4993C36.9218 19.8899 39.8583 17.0079 43.5358 17.0079ZM26.9564 20.6797C28.5677 20.6797 29.8307 21.9179 29.8307 23.4993C29.8307 25.0807 28.5677 26.3203 26.9564 26.3203C25.3452 26.3203 24.0836 25.0807 24.0836 23.4993C24.0836 21.9179 25.3452 20.6797 26.9564 20.6797ZM60.0421 20.6797C61.6534 20.6797 62.9164 21.9179 62.9164 23.4993C62.9164 25.0807 61.6534 26.3203 60.0421 26.3203C58.4309 26.3203 57.1693 25.0807 57.1693 23.4993C57.1693 21.9179 58.4309 20.6797 60.0421 20.6797Z\" fill=\"white\"/>\\n<rect x=\"79\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"99\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"119\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"139\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"159\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"179\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 0C5.37258 0 0 5.37259 0 12V302C0 308.627 5.37259 314 12 314H383C389.627 314 395 308.627 395 302V12C395 5.37258 389.627 0 383 0H12ZM112 44C119.732 44 126 50.268 126 58V292C126 299.732 119.732 306 112 306H20C12.268 306 6 299.732 6 292V58C6 50.268 12.268 44 20 44H112Z\" fill=\"black\" fill-opacity=\"0.35\"/>\\n</svg>\\n';\nconst _hoisted_1 = { class: \"vue-skip-actions__container\" };\nconst _hoisted_2 = { class: \"vue-skip-actions__headline\" };\nconst _hoisted_3 = { class: \"vue-skip-actions__buttons\" };\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcContent\",\n props: {\n appName: {}\n },\n setup(__props) {\n const props = __props;\n provide(HAS_APP_NAVIGATION_KEY, setAppNavigation);\n provide(CONTENT_SELECTOR_KEY, \"#content-vue\");\n provide(\"appName\", computed(() => props.appName));\n const isMobile = useIsMobile();\n const hasAppNavigation = ref(false);\n const currentFocus = ref();\n const currentImage = computed(() => currentFocus.value === \"navigation\" ? navigationSvg : contentSvg);\n onBeforeMount(() => {\n const container = document.getElementById(\"skip-actions\");\n if (container) {\n container.innerHTML = \"\";\n container.classList.add(\"vue-skip-actions\");\n }\n });\n function openAppNavigation() {\n emit(\"toggle-navigation\", { open: true });\n nextTick(() => {\n window.location.hash = \"app-navigation-vue\";\n document.getElementById(\"app-navigation-vue\").focus();\n });\n }\n function setAppNavigation(value) {\n hasAppNavigation.value = value;\n if (!currentFocus.value) {\n currentFocus.value = \"navigation\";\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n id: \"content-vue\",\n class: normalizeClass([\"content\", `app-${_ctx.appName.toLowerCase()}`])\n }, [\n (openBlock(), createBlock(Teleport, { to: \"#skip-actions\" }, [\n createElementVNode(\"div\", _hoisted_1, [\n createElementVNode(\"div\", _hoisted_2, toDisplayString(unref(t)(\"Keyboard navigation help\")), 1),\n createElementVNode(\"div\", _hoisted_3, [\n withDirectives(createVNode(NcButton, {\n href: \"#app-navigation-vue\",\n variant: \"tertiary\",\n onClick: withModifiers(openAppNavigation, [\"prevent\"]),\n onFocusin: _cache[0] || (_cache[0] = ($event) => currentFocus.value = \"navigation\"),\n onMouseover: _cache[1] || (_cache[1] = ($event) => currentFocus.value = \"navigation\")\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(unref(t)(\"Skip to app navigation\")), 1)\n ]),\n _: 1\n }, 512), [\n [vShow, hasAppNavigation.value]\n ]),\n createVNode(NcButton, {\n href: \"#app-content-vue\",\n variant: \"tertiary\",\n onFocusin: _cache[2] || (_cache[2] = ($event) => currentFocus.value = \"content\"),\n onMouseover: _cache[3] || (_cache[3] = ($event) => currentFocus.value = \"content\")\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(unref(t)(\"Skip to main content\")), 1)\n ]),\n _: 1\n })\n ]),\n withDirectives(createVNode(NcIconSvgWrapper, {\n class: \"vue-skip-actions__image\",\n svg: currentImage.value,\n size: \"auto\"\n }, null, 8, [\"svg\"]), [\n [vShow, !unref(isMobile)]\n ])\n ])\n ])),\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ], 2);\n };\n }\n});\nconst NcContent = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-d9b0d7e8\"]]);\nexport {\n NcContent as N\n};\n//# sourceMappingURL=NcContent-BR_nMwKN.mjs.map\n","import { d as mdiCheck, e as mdiContentCopy } from \"./mdi-XFJRiRqJ.mjs\";\nimport { ref, computed, toValue } from \"vue\";\nimport { r as register, c as t22, a as t } from \"./_l10n-DrTiip5c.mjs\";\nregister(t22);\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst DELAY = 2e3;\nfunction useCopy(content) {\n const isCopied = ref(false);\n const icon = computed(() => isCopied.value ? mdiCheck : mdiContentCopy);\n const altText = computed(() => isCopied.value ? t(\"Copied\") : t(\"Copy to clipboard\"));\n async function copy() {\n if (isCopied.value) {\n return;\n }\n const value = toValue(content);\n try {\n await navigator.clipboard.writeText(value);\n } catch {\n prompt(\"\", value);\n }\n isCopied.value = true;\n setTimeout(() => {\n isCopied.value = false;\n }, DELAY);\n }\n return {\n isCopied,\n copy,\n icon,\n altText\n };\n}\nexport {\n useCopy as u\n};\n//# sourceMappingURL=useCopy-7FVrniF_.mjs.map\n","import { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nwindow._vue_richtext_widgets ??= {};\nwindow._registerWidget ??= (id, callback, onDestroy, props) => {\n registerWidget(id, callback, onDestroy, props);\n};\nfunction registerWidget(id, callback, onDestroy = () => {\n}, props) {\n const propsWithDefaults = {\n hasInteractiveView: true,\n fullWidth: false,\n ...props\n };\n if (window._vue_richtext_widgets[id]) {\n logger.error(`[ReferencePicker]: Widget for id ${id} already registered`);\n return;\n }\n window._vue_richtext_widgets[id] = {\n id,\n callback,\n onDestroy,\n ...propsWithDefaults\n };\n}\nfunction renderWidget(el, options) {\n const { richObjectType, richObject, accessible, interactive } = options;\n if (richObjectType === \"open-graph\") {\n return;\n }\n if (!window._vue_richtext_widgets[richObjectType]) {\n logger.error(\"Widget for rich object type \" + richObjectType + \" not registered\");\n return;\n }\n window._vue_richtext_widgets[richObjectType].callback(el, { richObjectType, richObject, accessible, interactive });\n}\nfunction destroyWidget(richObjectType, el) {\n if (richObjectType === \"open-graph\") {\n return;\n }\n if (!window._vue_richtext_widgets[richObjectType]) {\n return;\n }\n window._vue_richtext_widgets[richObjectType].onDestroy(el);\n}\nfunction isWidgetRegistered(id) {\n return !!window._vue_richtext_widgets[id];\n}\nfunction hasInteractiveView(id) {\n return !!window._vue_richtext_widgets[id]?.hasInteractiveView;\n}\nfunction hasFullWidth(id) {\n return !!window._vue_richtext_widgets[id]?.fullWidth;\n}\nwindow._vue_richtext_custom_picker_elements ??= {};\nwindow._registerCustomPickerElement ??= registerCustomPickerElement;\nclass NcCustomPickerRenderResult {\n element;\n object;\n /**\n * @param element - The HTML element\n * @param object - The object\n */\n constructor(element, object) {\n this.element = element;\n this.object = object;\n }\n}\nfunction isCustomPickerElementRegistered(id) {\n return !!window._vue_richtext_custom_picker_elements[id];\n}\nfunction getCustomPickerElementSize(id) {\n const size = window._vue_richtext_custom_picker_elements[id]?.size;\n if (size && [\"small\", \"normal\", \"large\", \"full\"].includes(size)) {\n return size;\n }\n return null;\n}\nfunction registerCustomPickerElement(id, callback, onDestroy = () => {\n}, size = \"large\") {\n if (window._vue_richtext_custom_picker_elements[id]) {\n logger.error(`Custom reference picker element for id ${id} already registered`);\n return;\n }\n window._vue_richtext_custom_picker_elements[id] = {\n id,\n callback,\n onDestroy,\n size\n };\n}\nfunction renderCustomPickerElement(el, options) {\n const { providerId, accessible } = options;\n if (!window._vue_richtext_custom_picker_elements[providerId]) {\n logger.error(`Custom reference picker element for reference provider ID ${providerId} not registered`);\n return;\n }\n return window._vue_richtext_custom_picker_elements[providerId].callback(el, { providerId, accessible });\n}\nfunction destroyCustomPickerElement(providerId, el, renderResult) {\n if (!window._vue_richtext_custom_picker_elements[providerId]) {\n return;\n }\n window._vue_richtext_custom_picker_elements[providerId].onDestroy(el, renderResult);\n}\nexport {\n NcCustomPickerRenderResult as N,\n renderWidget as a,\n destroyCustomPickerElement as b,\n isCustomPickerElementRegistered as c,\n destroyWidget as d,\n registerCustomPickerElement as e,\n renderCustomPickerElement as f,\n getCustomPickerElementSize as g,\n hasInteractiveView as h,\n isWidgetRegistered as i,\n hasFullWidth as j,\n registerWidget as r\n};\n//# sourceMappingURL=customPickerElements-4pQTZUnk.mjs.map\n","import '../assets/referencePickerModal-DWMAMaU3.css';\nimport { createElementBlock, openBlock, mergeProps, createElementVNode, createCommentVNode, toDisplayString, resolveComponent, createVNode, withCtx, defineComponent, inject, ref, useTemplateRef, nextTick, computed, watch, onBeforeUnmount, normalizeClass, createBlock, resolveDynamicComponent, normalizeStyle, createTextVNode, unref, withKeys, withModifiers, createApp } from \"vue\";\nimport { emit } from \"@nextcloud/event-bus\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { I as IconClose } from \"./Close-D6ngJ4t9.mjs\";\nimport { f as renderCustomPickerElement, b as destroyCustomPickerElement, c as isCustomPickerElementRegistered, j as hasFullWidth, i as isWidgetRegistered, h as hasInteractiveView, a as renderWidget, d as destroyWidget, g as getCustomPickerElementSize } from \"./customPickerElements-4pQTZUnk.mjs\";\nimport axios from \"@nextcloud/axios\";\nimport { loadState } from \"@nextcloud/initial-state\";\nimport { imagePath, generateOcsUrl } from \"@nextcloud/router\";\nimport { r as register, D as t8, a as t, E as t45, F as t40, G as t25, j as t42, H as t32, I as t19, J as t12 } from \"./_l10n-DrTiip5c.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { N as NcEmptyContent } from \"./NcEmptyContent-B8-90BSI.mjs\";\nimport { _ as _sfc_main$a } from \"./NcHighlight.vue_vue_type_script_lang-DnWQDM_2.mjs\";\nimport { N as NcSelect } from \"./NcSelect-Czzsi3P_.mjs\";\nimport debounce from \"debounce\";\nimport { useElementSize, useIntersectionObserver } from \"@vueuse/core\";\nimport { routerKey, RouterLink } from \"vue-router\";\nimport { N as NcButton } from \"./NcButton-Dc8V4Urj.mjs\";\nimport { g as getRoute } from \"./autolink-U5pBzLgI.mjs\";\nimport { N as NcLoadingIcon } from \"./NcLoadingIcon-b_ajZ_nQ.mjs\";\nimport { _ as _sfc_main$b } from \"./NcTextField.vue_vue_type_script_setup_true_lang-D1y_LfGJ.mjs\";\nimport { I as IconDotsHorizontal } from \"./NcActions-DWmvh7-Y.mjs\";\nimport { N as NcModal } from \"./NcModal-MC_HktJd.mjs\";\nconst _sfc_main$9 = {\n name: \"ArrowLeftIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$9 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$7 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$6 = { d: \"M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z\" };\nconst _hoisted_4$5 = { key: 0 };\nfunction _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon arrow-left-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$6, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$5, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$7))\n ], 16, _hoisted_1$9);\n}\nconst ArrowLeftIcon = /* @__PURE__ */ _export_sfc(_sfc_main$9, [[\"render\", _sfc_render$8]]);\nconst _sfc_main$8 = {\n name: \"NcCustomPickerElement\",\n props: {\n /**\n * The reference provider\n */\n provider: {\n type: Object,\n required: true\n }\n },\n emits: [\n \"cancel\",\n \"submit\"\n ],\n data() {\n return {\n isRegistered: isCustomPickerElementRegistered(this.provider.id),\n renderResult: null\n };\n },\n mounted() {\n if (this.isRegistered) {\n this.renderElement();\n }\n },\n beforeUnmount() {\n if (this.isRegistered) {\n destroyCustomPickerElement(this.provider.id, this.$el, this.renderResult);\n }\n },\n methods: {\n renderElement() {\n if (this.$refs.domElement) {\n this.$refs.domElement.innerHTML = \"\";\n }\n const renderFunctionResult = renderCustomPickerElement(this.$refs.domElement, { providerId: this.provider.id, accessible: false });\n Promise.resolve(renderFunctionResult).then((result) => {\n this.renderResult = result;\n if (this.renderResult.object?._isVue && this.renderResult.object?.$on) {\n this.renderResult.object.$on(\"submit\", this.onSubmit);\n this.renderResult.object.$on(\"cancel\", this.onCancel);\n }\n this.renderResult.element.addEventListener(\"submit\", (e) => {\n this.onSubmit(e.detail);\n });\n this.renderResult.element.addEventListener(\"cancel\", this.onCancel);\n });\n },\n onSubmit(value) {\n this.$emit(\"submit\", value);\n },\n onCancel() {\n this.$emit(\"cancel\");\n }\n }\n};\nconst _hoisted_1$8 = { ref: \"domElement\" };\nfunction _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", _hoisted_1$8, null, 512);\n}\nconst NcCustomPickerElement = /* @__PURE__ */ _export_sfc(_sfc_main$8, [[\"render\", _sfc_render$7], [\"__scopeId\", \"data-v-e408867a\"]]);\nconst _sfc_main$7 = {\n name: \"LinkVariantIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$7 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$6 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$5 = { d: \"M10.59,13.41C11,13.8 11,14.44 10.59,14.83C10.2,15.22 9.56,15.22 9.17,14.83C7.22,12.88 7.22,9.71 9.17,7.76V7.76L12.71,4.22C14.66,2.27 17.83,2.27 19.78,4.22C21.73,6.17 21.73,9.34 19.78,11.29L18.29,12.78C18.3,11.96 18.17,11.14 17.89,10.36L18.36,9.88C19.54,8.71 19.54,6.81 18.36,5.64C17.19,4.46 15.29,4.46 14.12,5.64L10.59,9.17C9.41,10.34 9.41,12.24 10.59,13.41M13.41,9.17C13.8,8.78 14.44,8.78 14.83,9.17C16.78,11.12 16.78,14.29 14.83,16.24V16.24L11.29,19.78C9.34,21.73 6.17,21.73 4.22,19.78C2.27,17.83 2.27,14.66 4.22,12.71L5.71,11.22C5.7,12.04 5.83,12.86 6.11,13.65L5.64,14.12C4.46,15.29 4.46,17.19 5.64,18.36C6.81,19.54 8.71,19.54 9.88,18.36L13.41,14.83C14.59,13.66 14.59,11.76 13.41,10.59C13,10.2 13,9.56 13.41,9.17Z\" };\nconst _hoisted_4$4 = { key: 0 };\nfunction _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon link-variant-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$5, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$6))\n ], 16, _hoisted_1$7);\n}\nconst LinkVariantIcon = /* @__PURE__ */ _export_sfc(_sfc_main$7, [[\"render\", _sfc_render$6]]);\nregister(t8);\nconst anyLinkProviderId = \"any-link\";\nconst anyLinkProvider = {\n id: anyLinkProviderId,\n title: t(\"Any link\"),\n order: 0,\n icon_url: imagePath(\"core\", \"filetypes/link.svg\")\n};\nwindow._vue_richtext_reference_providers ??= loadState(\"core\", \"reference-provider-list\", []);\nwindow._vue_richtext_reference_provider_timestamps ??= loadState(\"core\", \"reference-provider-timestamps\", {});\nfunction getProvider(providerId) {\n if (providerId === anyLinkProviderId) {\n return anyLinkProvider;\n }\n return getProviders().find((p) => p.id === providerId);\n}\nfunction getProviders() {\n return window._vue_richtext_reference_providers.filter((p) => {\n const keep = !!p.search_providers_ids && p.search_providers_ids.length > 0 || isCustomPickerElementRegistered(p.id);\n if (!keep) {\n logger.debug(`[smart picker] ${p.id} reference provider is discoverable but does not have any related search provider or custom picker component registered`);\n }\n return keep;\n });\n}\nfunction sortProviders(providerList) {\n const timestamps = window._vue_richtext_reference_provider_timestamps;\n return providerList.sort((a, b) => {\n return a.order === b.order ? 0 : a.order > b.order ? 1 : -1;\n }).sort((a, b) => {\n const ta = timestamps[a.id];\n const tb = timestamps[b.id];\n return ta === tb ? 0 : tb === void 0 ? -1 : ta === void 0 ? 1 : ta > tb ? -1 : 1;\n });\n}\nfunction searchProvider(query, limit) {\n const providers = getProviders();\n const escapedQuery = query.replace(/[/\\-\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\");\n const regexp = new RegExp(escapedQuery, \"i\");\n const sortedProviders = sortProviders(providers);\n const filteredSortedProviders = sortedProviders.filter((p) => {\n return p.title.match(regexp);\n });\n const searchResult = limit ? filteredSortedProviders.slice(0, limit) : filteredSortedProviders;\n if (query === \"\" || searchResult.length === 0) {\n searchResult.push(anyLinkProvider);\n }\n return searchResult;\n}\nasync function touchProvider(providerId) {\n const timestamp = Math.floor(Date.now() / 1e3);\n const url = generateOcsUrl(\"references/provider/{providerId}\", { providerId });\n await axios.put(url, { timestamp });\n window._vue_richtext_reference_provider_timestamps[providerId] = timestamp;\n}\nregister(t40, t45);\n/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction isUrl(str) {\n try {\n return Boolean(new URL(str));\n } catch {\n return false;\n }\n}\nconst _sfc_main$6 = {\n name: \"NcProviderList\",\n components: {\n NcSelect,\n NcHighlight: _sfc_main$a,\n NcEmptyContent,\n LinkVariantIcon\n },\n emits: [\n \"selectProvider\",\n \"submit\"\n ],\n data() {\n return {\n selectedProvider: null,\n query: \"\",\n multiselectPlaceholder: t(\"Select provider\"),\n providerIconAlt: t(\"Provider icon\")\n };\n },\n computed: {\n options() {\n const result = [];\n if (this.query !== \"\" && isUrl(this.query)) {\n result.push({\n id: this.query,\n title: this.query,\n isLink: true\n });\n }\n result.push(...searchProvider(this.query));\n return result;\n }\n },\n methods: {\n focus() {\n setTimeout(() => {\n this.$refs[\"provider-select\"]?.$el?.querySelector(\"#provider-select-input\")?.focus();\n }, 300);\n },\n onProviderSelected(p) {\n if (p !== null) {\n if (p.isLink) {\n this.$emit(\"submit\", p.title);\n } else {\n this.$emit(\"selectProvider\", p);\n }\n this.selectedProvider = null;\n }\n },\n onSearch(query) {\n this.query = query;\n }\n }\n};\nconst _hoisted_1$6 = { class: \"provider-list\" };\nconst _hoisted_2$5 = {\n key: 0,\n class: \"provider\"\n};\nconst _hoisted_3$4 = {\n key: 1,\n class: \"provider\"\n};\nconst _hoisted_4$3 = [\"src\", \"alt\"];\nfunction _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_LinkVariantIcon = resolveComponent(\"LinkVariantIcon\");\n const _component_NcHighlight = resolveComponent(\"NcHighlight\");\n const _component_NcSelect = resolveComponent(\"NcSelect\");\n const _component_NcEmptyContent = resolveComponent(\"NcEmptyContent\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$6, [\n createVNode(_component_NcSelect, {\n ref: \"provider-select\",\n modelValue: $data.selectedProvider,\n \"onUpdate:modelValue\": [\n _cache[0] || (_cache[0] = ($event) => $data.selectedProvider = $event),\n $options.onProviderSelected\n ],\n class: \"provider-list--select\",\n \"input-id\": \"provider-select-input\",\n label: \"title\",\n placeholder: $data.multiselectPlaceholder,\n options: $options.options,\n \"append-to-body\": false,\n \"clear-search-on-select\": true,\n \"clear-search-on-blur\": () => false,\n filterable: false,\n onSearch: $options.onSearch\n }, {\n option: withCtx((option) => [\n option.isLink ? (openBlock(), createElementBlock(\"div\", _hoisted_2$5, [\n createVNode(_component_LinkVariantIcon, {\n class: \"link-icon\",\n size: 20\n }),\n createElementVNode(\"span\", null, toDisplayString(option.title), 1)\n ])) : (openBlock(), createElementBlock(\"div\", _hoisted_3$4, [\n createElementVNode(\"img\", {\n class: \"provider-icon\",\n src: option.icon_url,\n alt: $data.providerIconAlt\n }, null, 8, _hoisted_4$3),\n createVNode(_component_NcHighlight, {\n class: \"option-text\",\n search: $data.query,\n text: option.title\n }, null, 8, [\"search\", \"text\"])\n ]))\n ]),\n _: 1\n }, 8, [\"modelValue\", \"placeholder\", \"options\", \"onSearch\", \"onUpdate:modelValue\"]),\n createVNode(_component_NcEmptyContent, { class: \"provider-list--empty-content\" }, {\n icon: withCtx(() => [\n createVNode(_component_LinkVariantIcon)\n ]),\n _: 1\n })\n ]);\n}\nconst NcProviderList = /* @__PURE__ */ _export_sfc(_sfc_main$6, [[\"render\", _sfc_render$5], [\"__scopeId\", \"data-v-90c6aa3b\"]]);\nregister();\nconst _hoisted_1$5 = [\"src\"];\nconst _hoisted_2$4 = { class: \"widget-default--details\" };\nconst _hoisted_3$3 = { class: \"widget-default--name\" };\nconst _hoisted_4$2 = { class: \"widget-default--link\" };\nconst IDLE_TIMEOUT = 3 * 60 * 1e3;\nconst _sfc_main$5 = /* @__PURE__ */ defineComponent({\n __name: \"NcReferenceWidget\",\n props: {\n reference: {},\n interactive: { type: Boolean, default: true },\n interactiveOptIn: { type: Boolean, default: false }\n },\n setup(__props) {\n const props = __props;\n const router = inject(routerKey, null);\n const isVisible = ref(false);\n const customWidget = useTemplateRef(\"customWidget\");\n const widgetRoot = useTemplateRef(\"widgetRoot\");\n const { width } = useElementSize(widgetRoot);\n useIntersectionObserver(widgetRoot, ([entry]) => {\n nextTick(() => {\n isVisible.value = entry.isIntersecting;\n });\n });\n const showInteractive = ref(false);\n const rendered = ref(false);\n let idleTimeout = null;\n const isInteractive = computed(() => {\n return !props.interactiveOptIn && props.interactive || showInteractive.value;\n });\n const referenceHasFullWidth = computed(() => {\n return hasFullWidth(props.reference.richObjectType);\n });\n const hasCustomWidget = computed(() => {\n return isWidgetRegistered(props.reference.richObjectType);\n });\n const referenceHasInteractiveView = computed(() => {\n return hasCustomWidget.value && hasInteractiveView(props.reference.richObjectType);\n });\n const noAccess = computed(() => {\n return !props.reference.accessible;\n });\n const numberOfLines = computed(() => {\n const lineCountOffsets = [450, 550, 650, Infinity];\n return lineCountOffsets.findIndex((max) => width.value < max);\n });\n const descriptionStyle = computed(() => {\n if (numberOfLines.value === 0) {\n return {\n display: \"none\"\n };\n }\n const lineClamp = numberOfLines.value;\n return {\n lineClamp,\n webkitLineClamp: lineClamp\n };\n });\n const compactLink = computed(() => {\n const link = props.reference.openGraphObject.link;\n if (!link) {\n return \"\";\n }\n if (link.startsWith(\"https://\")) {\n return link.substring(8);\n }\n if (link.startsWith(\"http://\")) {\n return link.substring(7);\n }\n return link;\n });\n const route = computed(() => {\n return getRoute(router, props.reference.openGraphObject.link);\n });\n const referenceWidgetLinkComponent = computed(() => {\n return route.value ? RouterLink : \"a\";\n });\n const referenceWidgetLinkProps = computed(() => {\n return route.value ? { to: route.value } : { href: props.reference.openGraphObject.link, target: \"_blank\" };\n });\n watch(isVisible, (val) => {\n if (!val) {\n idleTimeout = setTimeout(() => {\n if (!isVisible.value) {\n destroyReferenceWidget();\n }\n }, IDLE_TIMEOUT);\n return;\n }\n if (idleTimeout) {\n clearTimeout(idleTimeout);\n idleTimeout = null;\n }\n if (!rendered.value) {\n renderReferenceWidget();\n }\n }, { immediate: true });\n onBeforeUnmount(() => {\n destroyReferenceWidget();\n });\n function enableInteractive() {\n showInteractive.value = true;\n renderReferenceWidget();\n }\n function renderReferenceWidget() {\n if (!customWidget.value) {\n return;\n }\n if (props.reference.richObjectType === \"open-graph\") {\n return;\n }\n customWidget.value.innerHTML = \"\";\n const widget = document.createElement(\"div\");\n widget.style.width = \"100%\";\n customWidget.value.appendChild(widget);\n nextTick(() => {\n renderWidget(widget, {\n ...props.reference,\n interactive: isInteractive.value\n });\n rendered.value = true;\n });\n }\n function destroyReferenceWidget() {\n if (rendered.value && widgetRoot.value) {\n destroyWidget(props.reference.richObjectType, widgetRoot.value);\n rendered.value = false;\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n ref_key: \"widgetRoot\",\n ref: widgetRoot,\n class: normalizeClass({ \"toggle-interactive\": referenceHasInteractiveView.value && !isInteractive.value })\n }, [\n _ctx.reference && hasCustomWidget.value ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n ref_key: \"customWidget\",\n ref: customWidget,\n class: normalizeClass([\"widget-custom\", { \"full-width\": referenceHasFullWidth.value }])\n }, null, 2)) : !noAccess.value && _ctx.reference && _ctx.reference.openGraphObject && !hasCustomWidget.value ? (openBlock(), createBlock(resolveDynamicComponent(referenceWidgetLinkComponent.value), mergeProps({ key: 1 }, referenceWidgetLinkProps.value, {\n rel: \"noopener noreferrer\",\n class: \"widget-default\"\n }), {\n default: withCtx(() => [\n _ctx.reference.openGraphObject.thumb ? (openBlock(), createElementBlock(\"img\", {\n key: 0,\n class: \"widget-default--image\",\n src: _ctx.reference.openGraphObject.thumb\n }, null, 8, _hoisted_1$5)) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", _hoisted_2$4, [\n createElementVNode(\"p\", _hoisted_3$3, toDisplayString(_ctx.reference.openGraphObject.name), 1),\n createElementVNode(\"p\", {\n class: \"widget-default--description\",\n style: normalizeStyle(descriptionStyle.value)\n }, toDisplayString(_ctx.reference.openGraphObject.description), 5),\n createElementVNode(\"p\", _hoisted_4$2, toDisplayString(compactLink.value), 1)\n ])\n ]),\n _: 1\n }, 16)) : createCommentVNode(\"\", true),\n _ctx.interactiveOptIn && referenceHasInteractiveView.value && !isInteractive.value ? (openBlock(), createBlock(NcButton, {\n key: 2,\n class: \"toggle-interactive--button\",\n onClick: enableInteractive\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(unref(t)(\"Enable interactive view\")), 1)\n ]),\n _: 1\n })) : createCommentVNode(\"\", true)\n ], 2);\n };\n }\n});\nconst NcReferenceWidget = /* @__PURE__ */ _export_sfc(_sfc_main$5, [[\"__scopeId\", \"data-v-8ce33442\"]]);\nregister(t25);\nconst _sfc_main$4 = {\n name: \"NcRawLinkInput\",\n components: {\n LinkVariantIcon,\n NcEmptyContent,\n NcLoadingIcon,\n NcReferenceWidget,\n NcTextField: _sfc_main$b\n },\n props: {\n /**\n * The reference provider\n */\n provider: {\n type: Object,\n required: true\n }\n },\n emits: [\n \"submit\"\n ],\n data() {\n return {\n inputValue: \"\",\n loading: false,\n reference: null,\n abortController: null,\n inputPlaceholder: t(\"Enter link\")\n };\n },\n computed: {\n isLinkValid() {\n return isUrl(this.inputValue);\n },\n debouncedUpdateReference() {\n return debounce(this.updateReference, 500);\n }\n },\n methods: {\n focus() {\n this.$refs[\"url-input\"].$el.getElementsByTagName(\"input\")[0]?.focus();\n },\n onSubmit(e) {\n const value = e.target.value;\n if (this.isLinkValid) {\n this.$emit(\"submit\", value);\n }\n },\n onClear() {\n this.inputValue = \"\";\n this.reference = null;\n },\n onInput() {\n this.reference = null;\n if (this.abortController) {\n this.abortController.abort();\n }\n if (this.isLinkValid) {\n this.debouncedUpdateReference();\n }\n },\n updateReference() {\n this.loading = true;\n this.abortController = new AbortController();\n axios.get(generateOcsUrl(\"references/resolve\", 2) + \"?reference=\" + encodeURIComponent(this.inputValue), {\n signal: this.abortController.signal\n }).then((response) => {\n this.reference = response.data.ocs.data.references[this.inputValue];\n }).catch((error) => {\n logger.error(\"[NcRawLinkInput] Failed to update reference\", { error });\n }).then(() => {\n this.loading = false;\n });\n }\n }\n};\nconst _hoisted_1$4 = { class: \"raw-link\" };\nconst _hoisted_2$3 = { class: \"input-wrapper\" };\nconst _hoisted_3$2 = [\"src\"];\nfunction _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcLoadingIcon = resolveComponent(\"NcLoadingIcon\");\n const _component_LinkVariantIcon = resolveComponent(\"LinkVariantIcon\");\n const _component_NcTextField = resolveComponent(\"NcTextField\");\n const _component_NcReferenceWidget = resolveComponent(\"NcReferenceWidget\");\n const _component_NcEmptyContent = resolveComponent(\"NcEmptyContent\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$4, [\n createElementVNode(\"div\", _hoisted_2$3, [\n createVNode(_component_NcTextField, {\n ref: \"url-input\",\n modelValue: $data.inputValue,\n \"onUpdate:modelValue\": [\n _cache[0] || (_cache[0] = ($event) => $data.inputValue = $event),\n $options.onInput\n ],\n \"show-trailing-button\": $data.inputValue !== \"\",\n label: $data.inputPlaceholder,\n onTrailingButtonClick: $options.onClear,\n onKeyup: withKeys($options.onSubmit, [\"enter\"])\n }, {\n default: withCtx(() => [\n $data.loading ? (openBlock(), createBlock(_component_NcLoadingIcon, {\n key: 0,\n size: 16\n })) : (openBlock(), createBlock(_component_LinkVariantIcon, {\n key: 1,\n size: 16\n }))\n ]),\n _: 1\n }, 8, [\"modelValue\", \"show-trailing-button\", \"label\", \"onTrailingButtonClick\", \"onUpdate:modelValue\", \"onKeyup\"])\n ]),\n $data.reference !== null ? (openBlock(), createBlock(_component_NcReferenceWidget, {\n key: 0,\n class: \"reference-widget\",\n reference: $data.reference\n }, null, 8, [\"reference\"])) : (openBlock(), createBlock(_component_NcEmptyContent, {\n key: 1,\n class: \"raw-link--empty-content\"\n }, {\n icon: withCtx(() => [\n $props.provider.icon_url ? (openBlock(), createElementBlock(\"img\", {\n key: 0,\n class: \"provider-icon\",\n src: $props.provider.icon_url\n }, null, 8, _hoisted_3$2)) : (openBlock(), createBlock(_component_LinkVariantIcon, { key: 1 }))\n ]),\n _: 1\n }))\n ]);\n}\nconst NcRawLinkInput = /* @__PURE__ */ _export_sfc(_sfc_main$4, [[\"render\", _sfc_render$4], [\"__scopeId\", \"data-v-a0658f2a\"]]);\nconst _sfc_main$3 = {\n name: \"NcSearchResult\",\n components: {\n NcHighlight: _sfc_main$a\n },\n props: {\n /**\n * Unified search result entry\n */\n entry: {\n type: Object,\n required: true\n },\n /**\n * The query that led to getting this result\n * Used to highlight the entry text\n */\n query: {\n type: String,\n required: true\n }\n }\n};\nconst _hoisted_1$3 = { class: \"result\" };\nconst _hoisted_2$2 = [\"src\"];\nconst _hoisted_3$1 = { class: \"result--content\" };\nconst _hoisted_4$1 = { class: \"result--content--name\" };\nconst _hoisted_5$1 = { class: \"result--content--subline\" };\nfunction _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcHighlight = resolveComponent(\"NcHighlight\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$3, [\n $props.entry.icon ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([{ [$props.entry.icon]: true, rounded: $props.entry.rounded }, \"result--icon-class\"])\n }, null, 2)) : (openBlock(), createElementBlock(\"img\", {\n key: 1,\n class: normalizeClass([\"result--image\", { rounded: $props.entry.rounded }]),\n src: $props.entry.thumbnailUrl\n }, null, 10, _hoisted_2$2)),\n createElementVNode(\"div\", _hoisted_3$1, [\n createElementVNode(\"span\", _hoisted_4$1, [\n createVNode(_component_NcHighlight, {\n search: $props.query,\n text: $props.entry.title\n }, null, 8, [\"search\", \"text\"])\n ]),\n createElementVNode(\"span\", _hoisted_5$1, [\n createVNode(_component_NcHighlight, {\n search: $props.query,\n text: $props.entry.subline\n }, null, 8, [\"search\", \"text\"])\n ])\n ])\n ]);\n}\nconst NcSearchResult = /* @__PURE__ */ _export_sfc(_sfc_main$3, [[\"render\", _sfc_render$3], [\"__scopeId\", \"data-v-059edcfb\"]]);\nregister(t32, t40, t42);\nconst LIMIT = 5;\nconst _sfc_main$2 = {\n name: \"NcSearch\",\n components: {\n LinkVariantIcon,\n DotsHorizontalIcon: IconDotsHorizontal,\n NcEmptyContent,\n NcSelect,\n NcSearchResult\n },\n /* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n props: {\n /**\n * The selected reference provider\n */\n provider: {\n type: Object,\n required: true\n },\n showEmptyContent: {\n type: Boolean,\n default: true\n },\n /**\n * Placeholder of the search\n */\n searchPlaceholder: {\n type: String,\n default: null\n }\n },\n emits: [\n \"submit\"\n ],\n data() {\n return {\n searchQuery: \"\",\n selectedResult: null,\n resultsBySearchProvider: {},\n searching: false,\n searchingMoreOf: null,\n abortController: null,\n noOptionsText: t(\"Start typing to search\"),\n providerIconAlt: t(\"Provider icon\")\n };\n },\n computed: {\n mySearchPlaceholder() {\n return this.searchPlaceholder || t(\"Search\");\n },\n searchProviderIds() {\n return this.provider.search_providers_ids;\n },\n options() {\n if (this.searchQuery === \"\") {\n return [];\n }\n const options = [];\n if (isUrl(this.searchQuery)) {\n options.push(this.rawLinkEntry);\n }\n options.push(...this.formattedSearchResults);\n return options;\n },\n rawLinkEntry() {\n return {\n id: \"rawLinkEntry\",\n resourceUrl: this.searchQuery,\n isRawLink: true\n };\n },\n formattedSearchResults() {\n const results = [];\n this.searchProviderIds.forEach((pid) => {\n if (this.resultsBySearchProvider[pid].entries.length > 0) {\n if (this.searchProviderIds.length > 1 || this.resultsBySearchProvider[pid].entries.length > 1) {\n results.push({\n id: \"groupTitle-\" + pid,\n name: this.resultsBySearchProvider[pid].name,\n isCustomGroupTitle: true,\n providerId: pid\n });\n }\n const providerEntriesWithId = this.resultsBySearchProvider[pid].entries.map((entry, index) => {\n return {\n id: \"provider-\" + pid + \"-entry-\" + index,\n ...entry\n };\n });\n results.push(...providerEntriesWithId);\n if (this.resultsBySearchProvider[pid].isPaginated) {\n results.push({\n id: \"moreOf-\" + pid,\n name: this.resultsBySearchProvider[pid].name,\n isMore: true,\n providerId: pid,\n isLoading: this.searchingMoreOf === pid\n });\n }\n }\n });\n return results;\n },\n debouncedUpdateSearch() {\n return debounce(this.updateSearch, 500);\n }\n },\n mounted() {\n this.resetResults();\n },\n beforeUnmount() {\n this.cancelSearchRequests();\n },\n methods: {\n t,\n resetResults() {\n const resultsBySearchProvider = {};\n this.searchProviderIds.forEach((pid) => {\n resultsBySearchProvider[pid] = {\n entries: []\n };\n });\n this.resultsBySearchProvider = resultsBySearchProvider;\n },\n focus() {\n setTimeout(() => {\n this.$refs[\"search-select\"]?.$el?.querySelector(\"#search-select-input\")?.focus();\n }, 300);\n },\n cancelSearchRequests() {\n if (this.abortController) {\n this.abortController.abort();\n }\n },\n onSearchInput(query) {\n this.searchQuery = query;\n this.debouncedUpdateSearch();\n },\n onSelectResultSelected(item) {\n if (item !== null) {\n if (item.resourceUrl) {\n this.cancelSearchRequests();\n this.$emit(\"submit\", item.resourceUrl);\n } else if (item.isMore) {\n this.searchMoreOf(item.providerId).then(() => {\n this.selectedResult = null;\n });\n }\n }\n },\n searchMoreOf(searchProviderId) {\n this.searchingMoreOf = searchProviderId;\n this.cancelSearchRequests();\n return this.searchProviders(searchProviderId);\n },\n updateSearch() {\n this.cancelSearchRequests();\n this.resetResults();\n if (this.searchQuery === \"\") {\n this.searching = false;\n return;\n }\n return this.searchProviders();\n },\n searchProviders(searchProviderId = null) {\n this.abortController = new AbortController();\n this.searching = true;\n const searchPromises = searchProviderId === null ? [...this.searchProviderIds].map((pid) => {\n return this.searchOneProvider(pid);\n }) : [this.searchOneProvider(searchProviderId, this.resultsBySearchProvider[searchProviderId]?.cursor ?? null)];\n return Promise.allSettled(searchPromises).then((promises) => {\n const isOneCanceled = !!promises.find((p) => {\n return p.status === \"rejected\" && (p.reason.name === \"CanceledError\" || p.reason.code === \"ERR_CANCELED\");\n });\n if (!isOneCanceled) {\n this.searching = false;\n this.searchingMoreOf = null;\n }\n });\n },\n searchOneProvider(providerId, cursor = null) {\n const url = cursor === null ? generateOcsUrl(\"search/providers/{providerId}/search?term={term}&limit={limit}\", { providerId, term: this.searchQuery, limit: LIMIT }) : generateOcsUrl(\"search/providers/{providerId}/search?term={term}&limit={limit}&cursor={cursor}\", { providerId, term: this.searchQuery, limit: LIMIT, cursor });\n return axios.get(url, {\n signal: this.abortController.signal\n }).then((response) => {\n const data = response.data.ocs.data;\n this.resultsBySearchProvider[providerId].name = data.name;\n this.resultsBySearchProvider[providerId].cursor = data.cursor;\n this.resultsBySearchProvider[providerId].isPaginated = data.isPaginated;\n this.resultsBySearchProvider[providerId].entries.push(...data.entries);\n });\n }\n }\n};\nconst _hoisted_1$2 = {\n key: 0,\n class: \"custom-option\"\n};\nconst _hoisted_2$1 = { class: \"option-text\" };\nconst _hoisted_3 = {\n key: 2,\n class: \"custom-option group-name\"\n};\nconst _hoisted_4 = [\"src\"];\nconst _hoisted_5 = { class: \"option-text\" };\nconst _hoisted_6 = {\n key: 3,\n class: \"custom-option\"\n};\nconst _hoisted_7 = {\n key: 0,\n class: \"option-simple-icon icon-loading-small\"\n};\nconst _hoisted_8 = { class: \"option-text\" };\nconst _hoisted_9 = [\"alt\", \"src\"];\nfunction _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_LinkVariantIcon = resolveComponent(\"LinkVariantIcon\");\n const _component_NcSearchResult = resolveComponent(\"NcSearchResult\");\n const _component_DotsHorizontalIcon = resolveComponent(\"DotsHorizontalIcon\");\n const _component_NcSelect = resolveComponent(\"NcSelect\");\n const _component_NcEmptyContent = resolveComponent(\"NcEmptyContent\");\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"smart-picker-search\", { \"with-empty-content\": $props.showEmptyContent }])\n }, [\n createVNode(_component_NcSelect, {\n ref: \"search-select\",\n modelValue: $data.selectedResult,\n \"onUpdate:modelValue\": [\n _cache[0] || (_cache[0] = ($event) => $data.selectedResult = $event),\n $options.onSelectResultSelected\n ],\n class: \"smart-picker-search--select\",\n \"input-id\": \"search-select-input\",\n label: \"name\",\n placeholder: $options.mySearchPlaceholder,\n options: $options.options,\n \"append-to-body\": false,\n \"close-on-select\": false,\n \"clear-search-on-select\": false,\n \"clear-search-on-blur\": () => false,\n \"reset-focus-on-options-change\": false,\n filterable: false,\n autoscroll: true,\n \"reset-on-options-change\": false,\n loading: $data.searching,\n onSearch: $options.onSearchInput\n }, {\n option: withCtx((option) => [\n option.isRawLink ? (openBlock(), createElementBlock(\"div\", _hoisted_1$2, [\n createVNode(_component_LinkVariantIcon, {\n class: \"option-simple-icon\",\n size: 20\n }),\n createElementVNode(\"span\", _hoisted_2$1, toDisplayString($options.t(\"Raw link {options}\", { options: option.resourceUrl })), 1)\n ])) : option.resourceUrl ? (openBlock(), createBlock(_component_NcSearchResult, {\n key: 1,\n class: \"search-result\",\n entry: option,\n query: $data.searchQuery\n }, null, 8, [\"entry\", \"query\"])) : option.isCustomGroupTitle ? (openBlock(), createElementBlock(\"span\", _hoisted_3, [\n $props.provider.icon_url ? (openBlock(), createElementBlock(\"img\", {\n key: 0,\n class: \"provider-icon group-name-icon\",\n src: $props.provider.icon_url\n }, null, 8, _hoisted_4)) : createCommentVNode(\"\", true),\n createElementVNode(\"span\", _hoisted_5, [\n createElementVNode(\"strong\", null, toDisplayString(option.name), 1)\n ])\n ])) : option.isMore ? (openBlock(), createElementBlock(\"span\", _hoisted_6, [\n option.isLoading ? (openBlock(), createElementBlock(\"span\", _hoisted_7)) : (openBlock(), createBlock(_component_DotsHorizontalIcon, {\n key: 1,\n class: \"option-simple-icon\",\n size: 20\n })),\n createElementVNode(\"span\", _hoisted_8, toDisplayString($options.t('Load more \"{options}\"', { options: option.name })), 1)\n ])) : createCommentVNode(\"\", true)\n ]),\n \"no-options\": withCtx(() => [\n createTextVNode(toDisplayString($data.noOptionsText), 1)\n ]),\n _: 1\n }, 8, [\"modelValue\", \"placeholder\", \"options\", \"loading\", \"onSearch\", \"onUpdate:modelValue\"]),\n $props.showEmptyContent ? (openBlock(), createBlock(_component_NcEmptyContent, {\n key: 0,\n class: \"smart-picker-search--empty-content\"\n }, {\n icon: withCtx(() => [\n $props.provider.icon_url ? (openBlock(), createElementBlock(\"img\", {\n key: 0,\n class: \"provider-icon\",\n alt: $data.providerIconAlt,\n src: $props.provider.icon_url\n }, null, 8, _hoisted_9)) : (openBlock(), createBlock(_component_LinkVariantIcon, { key: 1 }))\n ]),\n _: 1\n })) : createCommentVNode(\"\", true)\n ], 2);\n}\nconst NcSearch = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"render\", _sfc_render$2], [\"__scopeId\", \"data-v-e8abf1d4\"]]);\nconst MODES = {\n providerList: 1,\n standardLinkInput: 2,\n searchInput: 3,\n customElement: 4\n};\nconst _sfc_main$1 = {\n name: \"NcReferencePicker\",\n components: {\n NcCustomPickerElement,\n NcProviderList,\n NcRawLinkInput,\n NcSearch\n },\n props: {\n /**\n * Provider to select on creation\n * Default: null. Show the provider list\n */\n initialProvider: {\n type: Object,\n default: () => null\n },\n /**\n * Optional width in pixels\n * Default: 100%\n */\n width: {\n type: Number,\n default: null\n },\n /**\n * Focus on the provider list select input on creation\n * Default: true\n */\n focusOnCreate: {\n type: Boolean,\n default: true\n }\n },\n emits: [\n \"cancel\",\n \"cancelRawLink\",\n \"cancelSearch\",\n \"providerSelected\",\n \"submit\"\n ],\n data() {\n return {\n MODES,\n selectedProvider: this.initialProvider\n };\n },\n computed: {\n mode() {\n return this.selectedProvider === null ? MODES.providerList : isCustomPickerElementRegistered(this.selectedProvider.id) ? MODES.customElement : this.selectedProvider.search_providers_ids ? MODES.searchInput : MODES.standardLinkInput;\n },\n pickerWrapperStyle() {\n return {\n width: this.width ? this.width + \"px\" : void 0\n };\n }\n },\n mounted() {\n if (this.focusOnCreate) {\n if (this.initialProvider) {\n setTimeout(() => {\n this.$refs[\"url-input\"]?.focus();\n }, 300);\n } else {\n this.$nextTick(() => {\n this.$refs[\"provider-list\"]?.focus();\n });\n }\n }\n },\n methods: {\n onEscapePressed() {\n if (this.selectedProvider !== null) {\n this.deselectProvider();\n } else {\n this.cancelProviderSelection();\n }\n },\n onProviderSelected(provider) {\n this.selectedProvider = provider;\n this.$emit(\"providerSelected\", provider);\n this.$nextTick(() => {\n this.$refs[\"url-input\"]?.focus();\n });\n },\n cancelCustomElement() {\n this.deselectProvider();\n },\n cancelSearch() {\n this.$emit(\"cancelSearch\", this.selectedProvider?.title);\n this.deselectProvider();\n },\n cancelRawLinkInput() {\n this.$emit(\"cancelRawLink\", this.selectedProvider?.title);\n this.deselectProvider();\n },\n cancelProviderSelection() {\n this.$emit(\"cancel\");\n },\n submitLink(link) {\n if (this.selectedProvider !== null) {\n touchProvider(this.selectedProvider.id);\n }\n this.$emit(\"submit\", link);\n this.deselectProvider();\n },\n deselectProvider() {\n this.selectedProvider = null;\n this.$emit(\"providerSelected\", null);\n setTimeout(() => {\n this.$refs[\"provider-list\"]?.focus();\n }, 300);\n }\n }\n};\nconst _hoisted_1$1 = {\n key: 3,\n class: \"custom-element-wrapper\"\n};\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcProviderList = resolveComponent(\"NcProviderList\");\n const _component_NcRawLinkInput = resolveComponent(\"NcRawLinkInput\");\n const _component_NcSearch = resolveComponent(\"NcSearch\");\n const _component_NcCustomPickerElement = resolveComponent(\"NcCustomPickerElement\");\n return openBlock(), createElementBlock(\"div\", {\n class: \"reference-picker\",\n style: normalizeStyle($options.pickerWrapperStyle),\n tabindex: \"-1\",\n onKeydown: _cache[0] || (_cache[0] = withKeys(withModifiers((...args) => $options.onEscapePressed && $options.onEscapePressed(...args), [\"stop\", \"prevent\"]), [\"esc\"]))\n }, [\n $options.mode === $data.MODES.providerList ? (openBlock(), createBlock(_component_NcProviderList, {\n key: 0,\n ref: \"provider-list\",\n onSelectProvider: $options.onProviderSelected,\n onSubmit: $options.submitLink,\n onCancel: $options.cancelProviderSelection\n }, null, 8, [\"onSelectProvider\", \"onSubmit\", \"onCancel\"])) : $options.mode === $data.MODES.standardLinkInput ? (openBlock(), createBlock(_component_NcRawLinkInput, {\n key: 1,\n ref: \"url-input\",\n provider: $data.selectedProvider,\n onSubmit: $options.submitLink,\n onCancel: $options.cancelRawLinkInput\n }, null, 8, [\"provider\", \"onSubmit\", \"onCancel\"])) : $options.mode === $data.MODES.searchInput ? (openBlock(), createBlock(_component_NcSearch, {\n key: 2,\n ref: \"url-input\",\n provider: $data.selectedProvider,\n onCancel: $options.cancelSearch,\n onSubmit: $options.submitLink\n }, null, 8, [\"provider\", \"onCancel\", \"onSubmit\"])) : $options.mode === $data.MODES.customElement ? (openBlock(), createElementBlock(\"div\", _hoisted_1$1, [\n createVNode(_component_NcCustomPickerElement, {\n provider: $data.selectedProvider,\n class: \"custom-element\",\n onSubmit: $options.submitLink,\n onCancel: $options.cancelCustomElement\n }, null, 8, [\"provider\", \"onSubmit\", \"onCancel\"])\n ])) : createCommentVNode(\"\", true)\n ], 36);\n}\nconst NcReferencePicker = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1], [\"__scopeId\", \"data-v-b193005a\"]]);\nregister(t12, t19);\nconst _sfc_main = {\n name: \"NcReferencePickerModal\",\n components: {\n NcReferencePicker,\n NcModal,\n NcButton,\n ArrowLeftIcon,\n CloseIcon: IconClose\n },\n props: {\n /**\n * Provider to select on creation\n * Show the provider list if no initial one is provided\n */\n initialProvider: {\n type: Object,\n default: () => null\n },\n /**\n * Focus on the input item on create\n */\n focusOnCreate: {\n type: Boolean,\n default: true\n },\n /**\n * If true, add the modal content to the Viewer trap elements via the event-bus\n */\n isInsideViewer: {\n type: Boolean,\n default: false\n }\n },\n emits: [\n \"cancel\",\n \"submit\"\n ],\n data() {\n return {\n show: true,\n selectedProvider: this.initialProvider,\n backButtonTitle: t(\"Back to provider selection\"),\n closeButtonTitle: t(\"Close\"),\n closeButtonLabel: t(\"Close Smart Picker\")\n };\n },\n computed: {\n isProviderSelected() {\n return this.selectedProvider !== null;\n },\n showBackButton() {\n return this.initialProvider === null && this.isProviderSelected;\n },\n modalSize() {\n return this.isProviderSelected && isCustomPickerElementRegistered(this.selectedProvider.id) ? getCustomPickerElementSize(this.selectedProvider.id) ?? \"large\" : \"normal\";\n },\n showModalName() {\n return !this.isProviderSelected || !isCustomPickerElementRegistered(this.selectedProvider.id);\n },\n modalName() {\n return this.isProviderSelected ? this.selectedProvider.title : t(\"Smart Picker\");\n }\n },\n mounted() {\n if (this.isInsideViewer) {\n const elem = this.$refs.modal_content;\n emit(\"viewer:trapElements:changed\", elem);\n }\n },\n methods: {\n onCancel() {\n this.show = false;\n this.$emit(\"cancel\");\n },\n onSubmit(value) {\n this.show = false;\n this.$emit(\"submit\", value);\n },\n onProviderSelect(provider) {\n this.selectedProvider = provider;\n if (provider === null && this.initialProvider !== null) {\n this.onCancel();\n }\n },\n onBackClicked() {\n this.$refs.referencePicker.deselectProvider();\n }\n }\n};\nconst _hoisted_1 = {\n ref: \"modal_content\",\n class: \"reference-picker-modal--content\"\n};\nconst _hoisted_2 = { key: 1 };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_ArrowLeftIcon = resolveComponent(\"ArrowLeftIcon\");\n const _component_NcButton = resolveComponent(\"NcButton\");\n const _component_CloseIcon = resolveComponent(\"CloseIcon\");\n const _component_NcReferencePicker = resolveComponent(\"NcReferencePicker\");\n const _component_NcModal = resolveComponent(\"NcModal\");\n return $data.show ? (openBlock(), createBlock(_component_NcModal, {\n key: 0,\n size: $options.modalSize,\n class: \"reference-picker-modal\",\n onClose: $options.onCancel\n }, {\n default: withCtx(() => [\n createElementVNode(\"div\", _hoisted_1, [\n $options.showBackButton ? (openBlock(), createBlock(_component_NcButton, {\n key: 0,\n \"aria-label\": $data.backButtonTitle,\n title: $data.backButtonTitle,\n class: \"back-button\",\n onClick: $options.onBackClicked\n }, {\n icon: withCtx(() => [\n createVNode(_component_ArrowLeftIcon)\n ]),\n _: 1\n }, 8, [\"aria-label\", \"title\", \"onClick\"])) : createCommentVNode(\"\", true),\n createVNode(_component_NcButton, {\n class: \"close-button\",\n \"aria-label\": $data.closeButtonLabel,\n title: $data.closeButtonTitle,\n variant: \"tertiary\",\n onClick: $options.onCancel\n }, {\n icon: withCtx(() => [\n createVNode(_component_CloseIcon)\n ]),\n _: 1\n }, 8, [\"aria-label\", \"title\", \"onClick\"]),\n $options.showModalName ? (openBlock(), createElementBlock(\"h2\", _hoisted_2, toDisplayString($options.modalName), 1)) : createCommentVNode(\"\", true),\n createVNode(_component_NcReferencePicker, {\n ref: \"referencePicker\",\n \"initial-provider\": $props.initialProvider,\n \"focus-on-create\": $props.focusOnCreate,\n onProviderSelected: $options.onProviderSelect,\n onSubmit: $options.onSubmit,\n onCancel: $options.onCancel\n }, null, 8, [\"initial-provider\", \"focus-on-create\", \"onProviderSelected\", \"onSubmit\", \"onCancel\"])\n ], 512)\n ]),\n _: 1\n }, 8, [\"size\", \"onClose\"])) : createCommentVNode(\"\", true);\n}\nconst NcReferencePickerModal = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-15018516\"]]);\nasync function getLinkWithPicker(providerId, isInsideViewer) {\n const modalId = \"referencePickerModal\";\n const modalElement = document.createElement(\"div\");\n modalElement.id = modalId;\n document.body.append(modalElement);\n const { promise, reject, resolve } = Promise.withResolvers();\n const initialProvider = providerId && getProvider(providerId) || null;\n const view = createApp(NcReferencePickerModal, {\n initialProvider,\n isInsideViewer,\n onCancel() {\n view.unmount();\n reject(new Error(\"User cancellation\"));\n },\n onSubmit(link) {\n view.unmount();\n resolve(link);\n }\n });\n view.mount(modalElement);\n return promise;\n}\nexport {\n NcReferencePicker as N,\n anyLinkProviderId as a,\n getProvider as b,\n getProviders as c,\n sortProviders as d,\n NcReferencePickerModal as e,\n NcReferenceWidget as f,\n getLinkWithPicker as g,\n NcSearch as h,\n searchProvider as s\n};\n//# sourceMappingURL=referencePickerModal-DmD3-xYB.mjs.map\n","export const VOID = -1;\nexport const PRIMITIVE = 0;\nexport const ARRAY = 1;\nexport const OBJECT = 2;\nexport const DATE = 3;\nexport const REGEXP = 4;\nexport const MAP = 5;\nexport const SET = 6;\nexport const ERROR = 7;\nexport const BIGINT = 8;\n// export const SYMBOL = 9;\n","import {\n VOID, PRIMITIVE,\n ARRAY, OBJECT,\n DATE, REGEXP, MAP, SET,\n ERROR, BIGINT\n} from './types.js';\n\nconst env = typeof self === 'object' ? self : globalThis;\n\nconst deserializer = ($, _) => {\n const as = (out, index) => {\n $.set(index, out);\n return out;\n };\n\n const unpair = index => {\n if ($.has(index))\n return $.get(index);\n\n const [type, value] = _[index];\n switch (type) {\n case PRIMITIVE:\n case VOID:\n return as(value, index);\n case ARRAY: {\n const arr = as([], index);\n for (const index of value)\n arr.push(unpair(index));\n return arr;\n }\n case OBJECT: {\n const object = as({}, index);\n for (const [key, index] of value)\n object[unpair(key)] = unpair(index);\n return object;\n }\n case DATE:\n return as(new Date(value), index);\n case REGEXP: {\n const {source, flags} = value;\n return as(new RegExp(source, flags), index);\n }\n case MAP: {\n const map = as(new Map, index);\n for (const [key, index] of value)\n map.set(unpair(key), unpair(index));\n return map;\n }\n case SET: {\n const set = as(new Set, index);\n for (const index of value)\n set.add(unpair(index));\n return set;\n }\n case ERROR: {\n const {name, message} = value;\n return as(new env[name](message), index);\n }\n case BIGINT:\n return as(BigInt(value), index);\n case 'BigInt':\n return as(Object(BigInt(value)), index);\n case 'ArrayBuffer':\n return as(new Uint8Array(value).buffer, value);\n case 'DataView': {\n const { buffer } = new Uint8Array(value);\n return as(new DataView(buffer), value);\n }\n }\n return as(new env[type](value), index);\n };\n\n return unpair;\n};\n\n/**\n * @typedef {Array<string,any>} Record a type representation\n */\n\n/**\n * Returns a deserialized value from a serialized array of Records.\n * @param {Record[]} serialized a previously serialized value.\n * @returns {any}\n */\nexport const deserialize = serialized => deserializer(new Map, serialized)(0);\n","import {\n VOID, PRIMITIVE,\n ARRAY, OBJECT,\n DATE, REGEXP, MAP, SET,\n ERROR, BIGINT\n} from './types.js';\n\nconst EMPTY = '';\n\nconst {toString} = {};\nconst {keys} = Object;\n\nconst typeOf = value => {\n const type = typeof value;\n if (type !== 'object' || !value)\n return [PRIMITIVE, type];\n\n const asString = toString.call(value).slice(8, -1);\n switch (asString) {\n case 'Array':\n return [ARRAY, EMPTY];\n case 'Object':\n return [OBJECT, EMPTY];\n case 'Date':\n return [DATE, EMPTY];\n case 'RegExp':\n return [REGEXP, EMPTY];\n case 'Map':\n return [MAP, EMPTY];\n case 'Set':\n return [SET, EMPTY];\n case 'DataView':\n return [ARRAY, asString];\n }\n\n if (asString.includes('Array'))\n return [ARRAY, asString];\n\n if (asString.includes('Error'))\n return [ERROR, asString];\n\n return [OBJECT, asString];\n};\n\nconst shouldSkip = ([TYPE, type]) => (\n TYPE === PRIMITIVE &&\n (type === 'function' || type === 'symbol')\n);\n\nconst serializer = (strict, json, $, _) => {\n\n const as = (out, value) => {\n const index = _.push(out) - 1;\n $.set(value, index);\n return index;\n };\n\n const pair = value => {\n if ($.has(value))\n return $.get(value);\n\n let [TYPE, type] = typeOf(value);\n switch (TYPE) {\n case PRIMITIVE: {\n let entry = value;\n switch (type) {\n case 'bigint':\n TYPE = BIGINT;\n entry = value.toString();\n break;\n case 'function':\n case 'symbol':\n if (strict)\n throw new TypeError('unable to serialize ' + type);\n entry = null;\n break;\n case 'undefined':\n return as([VOID], value);\n }\n return as([TYPE, entry], value);\n }\n case ARRAY: {\n if (type) {\n let spread = value;\n if (type === 'DataView') {\n spread = new Uint8Array(value.buffer);\n }\n else if (type === 'ArrayBuffer') {\n spread = new Uint8Array(value);\n }\n return as([type, [...spread]], value);\n }\n\n const arr = [];\n const index = as([TYPE, arr], value);\n for (const entry of value)\n arr.push(pair(entry));\n return index;\n }\n case OBJECT: {\n if (type) {\n switch (type) {\n case 'BigInt':\n return as([type, value.toString()], value);\n case 'Boolean':\n case 'Number':\n case 'String':\n return as([type, value.valueOf()], value);\n }\n }\n\n if (json && ('toJSON' in value))\n return pair(value.toJSON());\n\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const key of keys(value)) {\n if (strict || !shouldSkip(typeOf(value[key])))\n entries.push([pair(key), pair(value[key])]);\n }\n return index;\n }\n case DATE:\n return as([TYPE, value.toISOString()], value);\n case REGEXP: {\n const {source, flags} = value;\n return as([TYPE, {source, flags}], value);\n }\n case MAP: {\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const [key, entry] of value) {\n if (strict || !(shouldSkip(typeOf(key)) || shouldSkip(typeOf(entry))))\n entries.push([pair(key), pair(entry)]);\n }\n return index;\n }\n case SET: {\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const entry of value) {\n if (strict || !shouldSkip(typeOf(entry)))\n entries.push(pair(entry));\n }\n return index;\n }\n }\n\n const {message} = value;\n return as([TYPE, {name: type, message}], value);\n };\n\n return pair;\n};\n\n/**\n * @typedef {Array<string,any>} Record a type representation\n */\n\n/**\n * Returns an array of serialized Records.\n * @param {any} value a serializable value.\n * @param {{json?: boolean, lossy?: boolean}?} options an object with a `lossy` or `json` property that,\n * if `true`, will not throw errors on incompatible types, and behave more\n * like JSON stringify would behave. Symbol and Function will be discarded.\n * @returns {Record[]}\n */\n export const serialize = (value, {json, lossy} = {}) => {\n const _ = [];\n return serializer(!(json || lossy), !!json, new Map, _)(value), _;\n};\n","import {deserialize} from './deserialize.js';\nimport {serialize} from './serialize.js';\n\n/**\n * @typedef {Array<string,any>} Record a type representation\n */\n\n/**\n * Returns an array of serialized Records.\n * @param {any} any a serializable value.\n * @param {{transfer?: any[], json?: boolean, lossy?: boolean}?} options an object with\n * a transfer option (ignored when polyfilled) and/or non standard fields that\n * fallback to the polyfill if present.\n * @returns {Record[]}\n */\nexport default typeof structuredClone === \"function\" ?\n /* c8 ignore start */\n (any, options) => (\n options && ('json' in options || 'lossy' in options) ?\n deserialize(serialize(any, options)) : structuredClone(any)\n ) :\n (any, options) => deserialize(serialize(any, options));\n /* c8 ignore stop */\n\nexport {deserialize, serialize};\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Parents} Parents\n */\n\n/**\n * @template Fn\n * @template Fallback\n * @typedef {Fn extends (value: any) => value is infer Thing ? Thing : Fallback} Predicate\n */\n\n/**\n * @callback Check\n * Check that an arbitrary value is an element.\n * @param {unknown} this\n * Context object (`this`) to call `test` with\n * @param {unknown} [element]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * Position of `element` in its parent.\n * @param {Parents | null | undefined} [parent]\n * Parent of `element`.\n * @returns {boolean}\n * Whether this is an element and passes a test.\n *\n * @typedef {Array<TestFunction | string> | TestFunction | string | null | undefined} Test\n * Check for an arbitrary element.\n *\n * * when `string`, checks that the element has that tag name\n * * when `function`, see `TestFunction`\n * * when `Array`, checks if one of the subtests pass\n *\n * @callback TestFunction\n * Check if an element passes a test.\n * @param {unknown} this\n * The given context.\n * @param {Element} element\n * An element.\n * @param {number | undefined} [index]\n * Position of `element` in its parent.\n * @param {Parents | undefined} [parent]\n * Parent of `element`.\n * @returns {boolean | undefined | void}\n * Whether this element passes the test.\n *\n * Note: `void` is included until TS sees no return as `undefined`.\n */\n\n/**\n * Check if `element` is an `Element` and whether it passes the given test.\n *\n * @param element\n * Thing to check, typically `element`.\n * @param test\n * Check for a specific element.\n * @param index\n * Position of `element` in its parent.\n * @param parent\n * Parent of `element`.\n * @param context\n * Context object (`this`) to call `test` with.\n * @returns\n * Whether `element` is an `Element` and passes a test.\n * @throws\n * When an incorrect `test`, `index`, or `parent` is given; there is no error\n * thrown when `element` is not a node or not an element.\n */\nexport const isElement =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * (<Condition extends TestFunction>(element: unknown, test: Condition, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => element is Element & Predicate<Condition, Element>) &\n * (<Condition extends string>(element: unknown, test: Condition, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => element is Element & {tagName: Condition}) &\n * ((element?: null | undefined) => false) &\n * ((element: unknown, test?: null | undefined, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => element is Element) &\n * ((element: unknown, test?: Test, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * @param {unknown} [element]\n * @param {Test | undefined} [test]\n * @param {number | null | undefined} [index]\n * @param {Parents | null | undefined} [parent]\n * @param {unknown} [context]\n * @returns {boolean}\n */\n // eslint-disable-next-line max-params\n function (element, test, index, parent, context) {\n const check = convertElement(test)\n\n if (\n index !== null &&\n index !== undefined &&\n (typeof index !== 'number' ||\n index < 0 ||\n index === Number.POSITIVE_INFINITY)\n ) {\n throw new Error('Expected positive finite `index`')\n }\n\n if (\n parent !== null &&\n parent !== undefined &&\n (!parent.type || !parent.children)\n ) {\n throw new Error('Expected valid `parent`')\n }\n\n if (\n (index === null || index === undefined) !==\n (parent === null || parent === undefined)\n ) {\n throw new Error('Expected both `index` and `parent`')\n }\n\n return looksLikeAnElement(element)\n ? check.call(context, element, index, parent)\n : false\n }\n )\n\n/**\n * Generate a check from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * an `element`, `index`, and `parent`.\n *\n * @param test\n * A test for a specific element.\n * @returns\n * A check.\n */\nexport const convertElement =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * (<Condition extends TestFunction>(test: Condition) => (element: unknown, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => element is Element & Predicate<Condition, Element>) &\n * (<Condition extends string>(test: Condition) => (element: unknown, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => element is Element & {tagName: Condition}) &\n * ((test?: null | undefined) => (element?: unknown, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => element is Element) &\n * ((test?: Test) => Check)\n * )}\n */\n (\n /**\n * @param {Test | null | undefined} [test]\n * @returns {Check}\n */\n function (test) {\n if (test === null || test === undefined) {\n return element\n }\n\n if (typeof test === 'string') {\n return tagNameFactory(test)\n }\n\n // Assume array.\n if (typeof test === 'object') {\n return anyFactory(test)\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n throw new Error('Expected function, string, or array as `test`')\n }\n )\n\n/**\n * Handle multiple tests.\n *\n * @param {Array<TestFunction | string>} tests\n * @returns {Check}\n */\nfunction anyFactory(tests) {\n /** @type {Array<Check>} */\n const checks = []\n let index = -1\n\n while (++index < tests.length) {\n checks[index] = convertElement(tests[index])\n }\n\n return castFactory(any)\n\n /**\n * @this {unknown}\n * @type {TestFunction}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].apply(this, parameters)) return true\n }\n\n return false\n }\n}\n\n/**\n * Turn a string into a test for an element with a certain type.\n *\n * @param {string} check\n * @returns {Check}\n */\nfunction tagNameFactory(check) {\n return castFactory(tagName)\n\n /**\n * @param {Element} element\n * @returns {boolean}\n */\n function tagName(element) {\n return element.tagName === check\n }\n}\n\n/**\n * Turn a custom test into a test for an element that passes that test.\n *\n * @param {TestFunction} testFunction\n * @returns {Check}\n */\nfunction castFactory(testFunction) {\n return check\n\n /**\n * @this {unknown}\n * @type {Check}\n */\n function check(value, index, parent) {\n return Boolean(\n looksLikeAnElement(value) &&\n testFunction.call(\n this,\n value,\n typeof index === 'number' ? index : undefined,\n parent || undefined\n )\n )\n }\n}\n\n/**\n * Make sure something is an element.\n *\n * @param {unknown} element\n * @returns {element is Element}\n */\nfunction element(element) {\n return Boolean(\n element &&\n typeof element === 'object' &&\n 'type' in element &&\n element.type === 'element' &&\n 'tagName' in element &&\n typeof element.tagName === 'string'\n )\n}\n\n/**\n * @param {unknown} value\n * @returns {value is Element}\n */\nfunction looksLikeAnElement(value) {\n return (\n value !== null &&\n typeof value === 'object' &&\n 'type' in value &&\n 'tagName' in value\n )\n}\n","// Scheme: https://tools.ietf.org/html/rfc3986#section-3.1\n// Absolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\nconst ABSOLUTE_URL_REGEX = /^[a-zA-Z][a-zA-Z\\d+\\-.]*?:/;\n\n// Windows paths like `c:\\`\nconst WINDOWS_PATH_REGEX = /^[a-zA-Z]:\\\\/;\n\nexport default function isAbsoluteUrl(url) {\n\tif (typeof url !== 'string') {\n\t\tthrow new TypeError(`Expected a \\`string\\`, got \\`${typeof url}\\``);\n\t}\n\n\tif (WINDOWS_PATH_REGEX.test(url)) {\n\t\treturn false;\n\t}\n\n\treturn ABSOLUTE_URL_REGEX.test(url);\n}\n","/**\n * Parse space-separated tokens to an array of strings.\n *\n * @param {string} value\n * Space-separated tokens.\n * @returns {Array<string>}\n * List of tokens.\n */\nexport function parse(value) {\n const input = String(value || '').trim()\n return input ? input.split(/[ \\t\\n\\r\\f]+/g) : []\n}\n\n/**\n * Serialize an array of strings as space separated-tokens.\n *\n * @param {Array<string|number>} values\n * List of tokens.\n * @returns {string}\n * Space-separated tokens.\n */\nexport function stringify(values) {\n return values.join(' ').trim()\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast-util-is-element').Test} Test\n */\n\n/**\n * @callback CreateContent\n * Create a target for the element.\n * @param {Element} element\n * Element to check.\n * @returns {Array<ElementContent> | ElementContent | null | undefined}\n * Content to add.\n *\n * @callback CreateProperties\n * Create properties for an element.\n * @param {Element} element\n * Element to check.\n * @returns {Properties | null | undefined}\n * Properties to add.\n *\n * @callback CreateRel\n * Create a `rel` for the element.\n * @param {Element} element\n * Element to check.\n * @returns {Array<string> | string | null | undefined}\n * `rel` to use.\n *\n * @callback CreateTarget\n * Create a `target` for the element.\n * @param {Element} element\n * Element to check.\n * @returns {Target | null | undefined}\n * `target` to use.\n *\n * @typedef Options\n * Configuration.\n * @property {Array<ElementContent> | CreateContent | ElementContent | null | undefined} [content]\n * Content to insert at the end of external links (optional); will be\n * inserted in a `<span>` element; useful for improving accessibility by\n * giving users advanced warning when opening a new window.\n * @property {CreateProperties | Properties | null | undefined} [contentProperties]\n * Properties to add to the `span` wrapping `content` (optional).\n * @property {CreateProperties | Properties | null | undefined} [properties]\n * Properties to add to the link itself (optional).\n * @property {Array<string> | null | undefined} [protocols=['http', 'https']]\n * Protocols to check, such as `mailto` or `tel` (default: `['http',\n * 'https']`).\n * @property {Array<string> | CreateRel | string | null | undefined} [rel=['nofollow']]\n * Link types to hint about the referenced documents (default:\n * `['nofollow']`); pass an empty array (`[]`) to not set `rel`s on links;\n * when using a `target`, add `noopener` and `noreferrer` to avoid\n * exploitation of the `window.opener` API.\n * @property {CreateTarget | Target | null | undefined} [target]\n * How to display referenced documents; the default (nothing) is to not set\n * `target`s on links.\n * @property {Test | null | undefined} [test]\n * Extra test to define which external link elements are modified (optional);\n * any test that can be given to `hast-util-is-element` is supported.\n *\n * @typedef {'_blank' | '_parent' | '_self' | '_top'} Target\n * Target.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {convertElement} from 'hast-util-is-element'\nimport isAbsoluteUrl from 'is-absolute-url'\nimport {parse} from 'space-separated-tokens'\nimport {visit} from 'unist-util-visit'\n\nconst defaultProtocols = ['http', 'https']\nconst defaultRel = ['nofollow']\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Automatically add `rel` (and `target`?) to external links.\n *\n * ###### Notes\n *\n * You should [likely not configure `target`][css-tricks].\n *\n * You should at least set `rel` to `['nofollow']`.\n * When using a `target`, add `noopener` and `noreferrer` to avoid exploitation\n * of the `window.opener` API.\n *\n * When using a `target`, you should set `content` to adhere to accessibility\n * guidelines by giving users advanced warning when opening a new window.\n *\n * [css-tricks]: https://css-tricks.com/use-target_blank/\n *\n * @param {Readonly<Options> | null | undefined} [options]\n * Configuration (optional).\n * @returns\n * Transform.\n */\nexport default function rehypeExternalLinks(options) {\n const settings = options || emptyOptions\n const protocols = settings.protocols || defaultProtocols\n const is = convertElement(settings.test)\n\n /**\n * Transform.\n *\n * @param {Root} tree\n * Tree.\n * @returns {undefined}\n * Nothing.\n */\n return function (tree) {\n visit(tree, 'element', function (node, index, parent) {\n if (\n node.tagName === 'a' &&\n typeof node.properties.href === 'string' &&\n is(node, index, parent)\n ) {\n const url = node.properties.href\n\n if (\n isAbsoluteUrl(url)\n ? protocols.includes(url.slice(0, url.indexOf(':')))\n : url.startsWith('//')\n ) {\n const contentRaw = createIfNeeded(settings.content, node)\n const content =\n contentRaw && !Array.isArray(contentRaw) ? [contentRaw] : contentRaw\n const relRaw = createIfNeeded(settings.rel, node) || defaultRel\n const rel = typeof relRaw === 'string' ? parse(relRaw) : relRaw\n const target = createIfNeeded(settings.target, node)\n\n const properties = createIfNeeded(settings.properties, node)\n\n if (properties) {\n Object.assign(node.properties, structuredClone(properties))\n }\n\n if (rel.length > 0) {\n node.properties.rel = [...rel]\n }\n\n if (target) {\n node.properties.target = target\n }\n\n if (content) {\n const properties =\n createIfNeeded(settings.contentProperties, node) || {}\n\n node.children.push({\n type: 'element',\n tagName: 'span',\n properties: structuredClone(properties),\n children: structuredClone(content)\n })\n }\n }\n }\n })\n }\n}\n\n/**\n * Call a function to get a return value or use the value.\n *\n * @template T\n * Type of value.\n * @param {T} value\n * Value.\n * @param {Element} element\n * Element.\n * @returns {T extends Function ? ReturnType<T> : T}\n * Result.\n */\nfunction createIfNeeded(value, element) {\n return typeof value === 'function' ? value(element) : value\n}\n","/**\n * @typedef Options\n * Configuration for `stringify`.\n * @property {boolean} [padLeft=true]\n * Whether to pad a space before a token.\n * @property {boolean} [padRight=false]\n * Whether to pad a space after a token.\n */\n\n/**\n * @typedef {Options} StringifyOptions\n * Please use `StringifyOptions` instead.\n */\n\n/**\n * Parse comma-separated tokens to an array.\n *\n * @param {string} value\n * Comma-separated tokens.\n * @returns {Array<string>}\n * List of tokens.\n */\nexport function parse(value) {\n /** @type {Array<string>} */\n const tokens = []\n const input = String(value || '')\n let index = input.indexOf(',')\n let start = 0\n /** @type {boolean} */\n let end = false\n\n while (!end) {\n if (index === -1) {\n index = input.length\n end = true\n }\n\n const token = input.slice(start, index).trim()\n\n if (token || !end) {\n tokens.push(token)\n }\n\n start = index + 1\n index = input.indexOf(',', start)\n }\n\n return tokens\n}\n\n/**\n * Serialize an array of strings or numbers to comma-separated tokens.\n *\n * @param {Array<string|number>} values\n * List of tokens.\n * @param {Options} [options]\n * Configuration for `stringify` (optional).\n * @returns {string}\n * Comma-separated tokens.\n */\nexport function stringify(values, options) {\n const settings = options || {}\n\n // Ensure the last empty entry is seen.\n const input = values[values.length - 1] === '' ? [...values, ''] : values\n\n return input\n .join(\n (settings.padRight ? ' ' : '') +\n ',' +\n (settings.padLeft === false ? '' : ' ')\n )\n .trim()\n}\n","/**\n * @typedef Options\n * Configuration.\n * @property {boolean | null | undefined} [jsx=false]\n * Support JSX identifiers (default: `false`).\n */\n\nconst startRe = /[$_\\p{ID_Start}]/u\nconst contRe = /[$_\\u{200C}\\u{200D}\\p{ID_Continue}]/u\nconst contReJsx = /[-$_\\u{200C}\\u{200D}\\p{ID_Continue}]/u\nconst nameRe = /^[$_\\p{ID_Start}][$_\\u{200C}\\u{200D}\\p{ID_Continue}]*$/u\nconst nameReJsx = /^[$_\\p{ID_Start}][-$_\\u{200C}\\u{200D}\\p{ID_Continue}]*$/u\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Checks if the given code point can start an identifier.\n *\n * @param {number | undefined} code\n * Code point to check.\n * @returns {boolean}\n * Whether `code` can start an identifier.\n */\n// Note: `undefined` is supported so you can pass the result from `''.codePointAt`.\nexport function start(code) {\n return code ? startRe.test(String.fromCodePoint(code)) : false\n}\n\n/**\n * Checks if the given code point can continue an identifier.\n *\n * @param {number | undefined} code\n * Code point to check.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {boolean}\n * Whether `code` can continue an identifier.\n */\n// Note: `undefined` is supported so you can pass the result from `''.codePointAt`.\nexport function cont(code, options) {\n const settings = options || emptyOptions\n const re = settings.jsx ? contReJsx : contRe\n return code ? re.test(String.fromCodePoint(code)) : false\n}\n\n/**\n * Checks if the given value is a valid identifier name.\n *\n * @param {string} name\n * Identifier to check.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {boolean}\n * Whether `name` can be an identifier.\n */\nexport function name(name, options) {\n const settings = options || emptyOptions\n const re = settings.jsx ? nameReJsx : nameRe\n return re.test(name)\n}\n","/**\n * @typedef {import('hast').Nodes} Nodes\n */\n\n// HTML whitespace expression.\n// See <https://infra.spec.whatwg.org/#ascii-whitespace>.\nconst re = /[ \\t\\n\\f\\r]/g\n\n/**\n * Check if the given value is *inter-element whitespace*.\n *\n * @param {Nodes | string} thing\n * Thing to check (`Node` or `string`).\n * @returns {boolean}\n * Whether the `value` is inter-element whitespace (`boolean`): consisting of\n * zero or more of space, tab (`\\t`), line feed (`\\n`), carriage return\n * (`\\r`), or form feed (`\\f`); if a node is passed it must be a `Text` node,\n * whose `value` field is checked.\n */\nexport function whitespace(thing) {\n return typeof thing === 'object'\n ? thing.type === 'text'\n ? empty(thing.value)\n : false\n : empty(thing)\n}\n\n/**\n * @param {string} value\n * @returns {boolean}\n */\nfunction empty(value) {\n return value.replace(re, '') === ''\n}\n","/**\n * @import {Schema as SchemaType, Space} from 'property-information'\n */\n\n/** @type {SchemaType} */\nexport class Schema {\n /**\n * @param {SchemaType['property']} property\n * Property.\n * @param {SchemaType['normal']} normal\n * Normal.\n * @param {Space | undefined} [space]\n * Space.\n * @returns\n * Schema.\n */\n constructor(property, normal, space) {\n this.normal = normal\n this.property = property\n\n if (space) {\n this.space = space\n }\n }\n}\n\nSchema.prototype.normal = {}\nSchema.prototype.property = {}\nSchema.prototype.space = undefined\n","/**\n * @import {Info, Space} from 'property-information'\n */\n\nimport {Schema} from './schema.js'\n\n/**\n * @param {ReadonlyArray<Schema>} definitions\n * Definitions.\n * @param {Space | undefined} [space]\n * Space.\n * @returns {Schema}\n * Schema.\n */\nexport function merge(definitions, space) {\n /** @type {Record<string, Info>} */\n const property = {}\n /** @type {Record<string, string>} */\n const normal = {}\n\n for (const definition of definitions) {\n Object.assign(property, definition.property)\n Object.assign(normal, definition.normal)\n }\n\n return new Schema(property, normal, space)\n}\n","/**\n * Get the cleaned case insensitive form of an attribute or property.\n *\n * @param {string} value\n * An attribute-like or property-like name.\n * @returns {string}\n * Value that can be used to look up the properly cased property on a\n * `Schema`.\n */\nexport function normalize(value) {\n return value.toLowerCase()\n}\n","/**\n * @import {Info as InfoType} from 'property-information'\n */\n\n/** @type {InfoType} */\nexport class Info {\n /**\n * @param {string} property\n * Property.\n * @param {string} attribute\n * Attribute.\n * @returns\n * Info.\n */\n constructor(property, attribute) {\n this.attribute = attribute\n this.property = property\n }\n}\n\nInfo.prototype.attribute = ''\nInfo.prototype.booleanish = false\nInfo.prototype.boolean = false\nInfo.prototype.commaOrSpaceSeparated = false\nInfo.prototype.commaSeparated = false\nInfo.prototype.defined = false\nInfo.prototype.mustUseProperty = false\nInfo.prototype.number = false\nInfo.prototype.overloadedBoolean = false\nInfo.prototype.property = ''\nInfo.prototype.spaceSeparated = false\nInfo.prototype.space = undefined\n","let powers = 0\n\nexport const boolean = increment()\nexport const booleanish = increment()\nexport const overloadedBoolean = increment()\nexport const number = increment()\nexport const spaceSeparated = increment()\nexport const commaSeparated = increment()\nexport const commaOrSpaceSeparated = increment()\n\nfunction increment() {\n return 2 ** ++powers\n}\n","/**\n * @import {Space} from 'property-information'\n */\n\nimport {Info} from './info.js'\nimport * as types from './types.js'\n\nconst checks = /** @type {ReadonlyArray<keyof typeof types>} */ (\n Object.keys(types)\n)\n\nexport class DefinedInfo extends Info {\n /**\n * @constructor\n * @param {string} property\n * Property.\n * @param {string} attribute\n * Attribute.\n * @param {number | null | undefined} [mask]\n * Mask.\n * @param {Space | undefined} [space]\n * Space.\n * @returns\n * Info.\n */\n constructor(property, attribute, mask, space) {\n let index = -1\n\n super(property, attribute)\n\n mark(this, 'space', space)\n\n if (typeof mask === 'number') {\n while (++index < checks.length) {\n const check = checks[index]\n mark(this, checks[index], (mask & types[check]) === types[check])\n }\n }\n }\n}\n\nDefinedInfo.prototype.defined = true\n\n/**\n * @template {keyof DefinedInfo} Key\n * Key type.\n * @param {DefinedInfo} values\n * Info.\n * @param {Key} key\n * Key.\n * @param {DefinedInfo[Key]} value\n * Value.\n * @returns {undefined}\n * Nothing.\n */\nfunction mark(values, key, value) {\n if (value) {\n values[key] = value\n }\n}\n","/**\n * @import {Info, Space} from 'property-information'\n */\n\n/**\n * @typedef Definition\n * Definition of a schema.\n * @property {Record<string, string> | undefined} [attributes]\n * Normalzed names to special attribute case.\n * @property {ReadonlyArray<string> | undefined} [mustUseProperty]\n * Normalized names that must be set as properties.\n * @property {Record<string, number | null>} properties\n * Property names to their types.\n * @property {Space | undefined} [space]\n * Space.\n * @property {Transform} transform\n * Transform a property name.\n */\n\n/**\n * @callback Transform\n * Transform.\n * @param {Record<string, string>} attributes\n * Attributes.\n * @param {string} property\n * Property.\n * @returns {string}\n * Attribute.\n */\n\nimport {normalize} from '../normalize.js'\nimport {DefinedInfo} from './defined-info.js'\nimport {Schema} from './schema.js'\n\n/**\n * @param {Definition} definition\n * Definition.\n * @returns {Schema}\n * Schema.\n */\nexport function create(definition) {\n /** @type {Record<string, Info>} */\n const properties = {}\n /** @type {Record<string, string>} */\n const normals = {}\n\n for (const [property, value] of Object.entries(definition.properties)) {\n const info = new DefinedInfo(\n property,\n definition.transform(definition.attributes || {}, property),\n value,\n definition.space\n )\n\n if (\n definition.mustUseProperty &&\n definition.mustUseProperty.includes(property)\n ) {\n info.mustUseProperty = true\n }\n\n properties[property] = info\n\n normals[normalize(property)] = property\n normals[normalize(info.attribute)] = property\n }\n\n return new Schema(properties, normals, definition.space)\n}\n","import {create} from './util/create.js'\nimport {booleanish, number, spaceSeparated} from './util/types.js'\n\nexport const aria = create({\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish,\n ariaAutoComplete: null,\n ariaBusy: booleanish,\n ariaChecked: booleanish,\n ariaColCount: number,\n ariaColIndex: number,\n ariaColSpan: number,\n ariaControls: spaceSeparated,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated,\n ariaDetails: null,\n ariaDisabled: booleanish,\n ariaDropEffect: spaceSeparated,\n ariaErrorMessage: null,\n ariaExpanded: booleanish,\n ariaFlowTo: spaceSeparated,\n ariaGrabbed: booleanish,\n ariaHasPopup: null,\n ariaHidden: booleanish,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated,\n ariaLevel: number,\n ariaLive: null,\n ariaModal: booleanish,\n ariaMultiLine: booleanish,\n ariaMultiSelectable: booleanish,\n ariaOrientation: null,\n ariaOwns: spaceSeparated,\n ariaPlaceholder: null,\n ariaPosInSet: number,\n ariaPressed: booleanish,\n ariaReadOnly: booleanish,\n ariaRelevant: null,\n ariaRequired: booleanish,\n ariaRoleDescription: spaceSeparated,\n ariaRowCount: number,\n ariaRowIndex: number,\n ariaRowSpan: number,\n ariaSelected: booleanish,\n ariaSetSize: number,\n ariaSort: null,\n ariaValueMax: number,\n ariaValueMin: number,\n ariaValueNow: number,\n ariaValueText: null,\n role: null\n },\n transform(_, property) {\n return property === 'role'\n ? property\n : 'aria-' + property.slice(4).toLowerCase()\n }\n})\n","/**\n * @param {Record<string, string>} attributes\n * Attributes.\n * @param {string} attribute\n * Attribute.\n * @returns {string}\n * Transformed attribute.\n */\nexport function caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute\n}\n","import {caseSensitiveTransform} from './case-sensitive-transform.js'\n\n/**\n * @param {Record<string, string>} attributes\n * Attributes.\n * @param {string} property\n * Property.\n * @returns {string}\n * Transformed property.\n */\nexport function caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n","import {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\nimport {create} from './util/create.js'\nimport {\n booleanish,\n boolean,\n commaSeparated,\n number,\n overloadedBoolean,\n spaceSeparated\n} from './util/types.js'\n\nexport const html = create({\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: boolean,\n allowPaymentRequest: boolean,\n allowUserMedia: boolean,\n alt: null,\n as: null,\n async: boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: boolean,\n autoPlay: boolean,\n blocking: spaceSeparated,\n capture: null,\n charSet: null,\n checked: boolean,\n cite: null,\n className: spaceSeparated,\n cols: number,\n colSpan: null,\n content: null,\n contentEditable: booleanish,\n controls: boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: boolean,\n defer: boolean,\n dir: null,\n dirName: null,\n disabled: boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n fetchPriority: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: overloadedBoolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: null,\n inert: boolean,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: boolean,\n muted: boolean,\n name: null,\n nonce: null,\n noModule: boolean,\n noValidate: boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforeMatch: null,\n onBeforePrint: null,\n onBeforeToggle: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextLost: null,\n onContextMenu: null,\n onContextRestored: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onScrollEnd: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: boolean,\n popover: null,\n popoverTarget: null,\n popoverTargetAction: null,\n poster: null,\n preload: null,\n readOnly: boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: boolean,\n reversed: boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: boolean,\n seamless: boolean,\n selected: boolean,\n shadowRootClonable: boolean,\n shadowRootDelegatesFocus: boolean,\n shadowRootMode: null,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: null,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n writingSuggestions: null,\n\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null, // Several. Use CSS `text-align` instead,\n aLink: null, // `<body>`. Use CSS `a:active {color}` instead\n archive: spaceSeparated, // `<object>`. List of URIs to archives\n axis: null, // `<td>` and `<th>`. Use `scope` on `<th>`\n background: null, // `<body>`. Use CSS `background-image` instead\n bgColor: null, // `<body>` and table elements. Use CSS `background-color` instead\n border: number, // `<table>`. Use CSS `border-width` instead,\n borderColor: null, // `<table>`. Use CSS `border-color` instead,\n bottomMargin: number, // `<body>`\n cellPadding: null, // `<table>`\n cellSpacing: null, // `<table>`\n char: null, // Several table elements. When `align=char`, sets the character to align on\n charOff: null, // Several table elements. When `char`, offsets the alignment\n classId: null, // `<object>`\n clear: null, // `<br>`. Use CSS `clear` instead\n code: null, // `<object>`\n codeBase: null, // `<object>`\n codeType: null, // `<object>`\n color: null, // `<font>` and `<hr>`. Use CSS instead\n compact: boolean, // Lists. Use CSS to reduce space between items instead\n declare: boolean, // `<object>`\n event: null, // `<script>`\n face: null, // `<font>`. Use CSS instead\n frame: null, // `<table>`\n frameBorder: null, // `<iframe>`. Use CSS `border` instead\n hSpace: number, // `<img>` and `<object>`\n leftMargin: number, // `<body>`\n link: null, // `<body>`. Use CSS `a:link {color: *}` instead\n longDesc: null, // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`\n lowSrc: null, // `<img>`. Use a `<picture>`\n marginHeight: number, // `<body>`\n marginWidth: number, // `<body>`\n noResize: boolean, // `<frame>`\n noHref: boolean, // `<area>`. Use no href instead of an explicit `nohref`\n noShade: boolean, // `<hr>`. Use background-color and height instead of borders\n noWrap: boolean, // `<td>` and `<th>`\n object: null, // `<applet>`\n profile: null, // `<head>`\n prompt: null, // `<isindex>`\n rev: null, // `<link>`\n rightMargin: number, // `<body>`\n rules: null, // `<table>`\n scheme: null, // `<meta>`\n scrolling: booleanish, // `<frame>`. Use overflow in the child context\n standby: null, // `<object>`\n summary: null, // `<table>`\n text: null, // `<body>`. Use CSS `color` instead\n topMargin: number, // `<body>`\n valueType: null, // `<param>`\n version: null, // `<html>`. Use a doctype.\n vAlign: null, // Several. Use CSS `vertical-align` instead\n vLink: null, // `<body>`. Use CSS `a:visited {color}` instead\n vSpace: number, // `<img>` and `<object>`\n\n // Non-standard Properties.\n allowTransparency: null,\n autoCorrect: null,\n autoSave: null,\n disablePictureInPicture: boolean,\n disableRemotePlayback: boolean,\n prefix: null,\n property: null,\n results: number,\n security: null,\n unselectable: null\n },\n space: 'html',\n transform: caseInsensitiveTransform\n})\n","import {caseSensitiveTransform} from './util/case-sensitive-transform.js'\nimport {create} from './util/create.js'\nimport {\n boolean,\n commaOrSpaceSeparated,\n commaSeparated,\n number,\n spaceSeparated\n} from './util/types.js'\n\nexport const svg = create({\n attributes: {\n accentHeight: 'accent-height',\n alignmentBaseline: 'alignment-baseline',\n arabicForm: 'arabic-form',\n baselineShift: 'baseline-shift',\n capHeight: 'cap-height',\n className: 'class',\n clipPath: 'clip-path',\n clipRule: 'clip-rule',\n colorInterpolation: 'color-interpolation',\n colorInterpolationFilters: 'color-interpolation-filters',\n colorProfile: 'color-profile',\n colorRendering: 'color-rendering',\n crossOrigin: 'crossorigin',\n dataType: 'datatype',\n dominantBaseline: 'dominant-baseline',\n enableBackground: 'enable-background',\n fillOpacity: 'fill-opacity',\n fillRule: 'fill-rule',\n floodColor: 'flood-color',\n floodOpacity: 'flood-opacity',\n fontFamily: 'font-family',\n fontSize: 'font-size',\n fontSizeAdjust: 'font-size-adjust',\n fontStretch: 'font-stretch',\n fontStyle: 'font-style',\n fontVariant: 'font-variant',\n fontWeight: 'font-weight',\n glyphName: 'glyph-name',\n glyphOrientationHorizontal: 'glyph-orientation-horizontal',\n glyphOrientationVertical: 'glyph-orientation-vertical',\n hrefLang: 'hreflang',\n horizAdvX: 'horiz-adv-x',\n horizOriginX: 'horiz-origin-x',\n horizOriginY: 'horiz-origin-y',\n imageRendering: 'image-rendering',\n letterSpacing: 'letter-spacing',\n lightingColor: 'lighting-color',\n markerEnd: 'marker-end',\n markerMid: 'marker-mid',\n markerStart: 'marker-start',\n navDown: 'nav-down',\n navDownLeft: 'nav-down-left',\n navDownRight: 'nav-down-right',\n navLeft: 'nav-left',\n navNext: 'nav-next',\n navPrev: 'nav-prev',\n navRight: 'nav-right',\n navUp: 'nav-up',\n navUpLeft: 'nav-up-left',\n navUpRight: 'nav-up-right',\n onAbort: 'onabort',\n onActivate: 'onactivate',\n onAfterPrint: 'onafterprint',\n onBeforePrint: 'onbeforeprint',\n onBegin: 'onbegin',\n onCancel: 'oncancel',\n onCanPlay: 'oncanplay',\n onCanPlayThrough: 'oncanplaythrough',\n onChange: 'onchange',\n onClick: 'onclick',\n onClose: 'onclose',\n onCopy: 'oncopy',\n onCueChange: 'oncuechange',\n onCut: 'oncut',\n onDblClick: 'ondblclick',\n onDrag: 'ondrag',\n onDragEnd: 'ondragend',\n onDragEnter: 'ondragenter',\n onDragExit: 'ondragexit',\n onDragLeave: 'ondragleave',\n onDragOver: 'ondragover',\n onDragStart: 'ondragstart',\n onDrop: 'ondrop',\n onDurationChange: 'ondurationchange',\n onEmptied: 'onemptied',\n onEnd: 'onend',\n onEnded: 'onended',\n onError: 'onerror',\n onFocus: 'onfocus',\n onFocusIn: 'onfocusin',\n onFocusOut: 'onfocusout',\n onHashChange: 'onhashchange',\n onInput: 'oninput',\n onInvalid: 'oninvalid',\n onKeyDown: 'onkeydown',\n onKeyPress: 'onkeypress',\n onKeyUp: 'onkeyup',\n onLoad: 'onload',\n onLoadedData: 'onloadeddata',\n onLoadedMetadata: 'onloadedmetadata',\n onLoadStart: 'onloadstart',\n onMessage: 'onmessage',\n onMouseDown: 'onmousedown',\n onMouseEnter: 'onmouseenter',\n onMouseLeave: 'onmouseleave',\n onMouseMove: 'onmousemove',\n onMouseOut: 'onmouseout',\n onMouseOver: 'onmouseover',\n onMouseUp: 'onmouseup',\n onMouseWheel: 'onmousewheel',\n onOffline: 'onoffline',\n onOnline: 'ononline',\n onPageHide: 'onpagehide',\n onPageShow: 'onpageshow',\n onPaste: 'onpaste',\n onPause: 'onpause',\n onPlay: 'onplay',\n onPlaying: 'onplaying',\n onPopState: 'onpopstate',\n onProgress: 'onprogress',\n onRateChange: 'onratechange',\n onRepeat: 'onrepeat',\n onReset: 'onreset',\n onResize: 'onresize',\n onScroll: 'onscroll',\n onSeeked: 'onseeked',\n onSeeking: 'onseeking',\n onSelect: 'onselect',\n onShow: 'onshow',\n onStalled: 'onstalled',\n onStorage: 'onstorage',\n onSubmit: 'onsubmit',\n onSuspend: 'onsuspend',\n onTimeUpdate: 'ontimeupdate',\n onToggle: 'ontoggle',\n onUnload: 'onunload',\n onVolumeChange: 'onvolumechange',\n onWaiting: 'onwaiting',\n onZoom: 'onzoom',\n overlinePosition: 'overline-position',\n overlineThickness: 'overline-thickness',\n paintOrder: 'paint-order',\n panose1: 'panose-1',\n pointerEvents: 'pointer-events',\n referrerPolicy: 'referrerpolicy',\n renderingIntent: 'rendering-intent',\n shapeRendering: 'shape-rendering',\n stopColor: 'stop-color',\n stopOpacity: 'stop-opacity',\n strikethroughPosition: 'strikethrough-position',\n strikethroughThickness: 'strikethrough-thickness',\n strokeDashArray: 'stroke-dasharray',\n strokeDashOffset: 'stroke-dashoffset',\n strokeLineCap: 'stroke-linecap',\n strokeLineJoin: 'stroke-linejoin',\n strokeMiterLimit: 'stroke-miterlimit',\n strokeOpacity: 'stroke-opacity',\n strokeWidth: 'stroke-width',\n tabIndex: 'tabindex',\n textAnchor: 'text-anchor',\n textDecoration: 'text-decoration',\n textRendering: 'text-rendering',\n transformOrigin: 'transform-origin',\n typeOf: 'typeof',\n underlinePosition: 'underline-position',\n underlineThickness: 'underline-thickness',\n unicodeBidi: 'unicode-bidi',\n unicodeRange: 'unicode-range',\n unitsPerEm: 'units-per-em',\n vAlphabetic: 'v-alphabetic',\n vHanging: 'v-hanging',\n vIdeographic: 'v-ideographic',\n vMathematical: 'v-mathematical',\n vectorEffect: 'vector-effect',\n vertAdvY: 'vert-adv-y',\n vertOriginX: 'vert-origin-x',\n vertOriginY: 'vert-origin-y',\n wordSpacing: 'word-spacing',\n writingMode: 'writing-mode',\n xHeight: 'x-height',\n // These were camelcased in Tiny. Now lowercased in SVG 2\n playbackOrder: 'playbackorder',\n timelineBegin: 'timelinebegin'\n },\n properties: {\n about: commaOrSpaceSeparated,\n accentHeight: number,\n accumulate: null,\n additive: null,\n alignmentBaseline: null,\n alphabetic: number,\n amplitude: number,\n arabicForm: null,\n ascent: number,\n attributeName: null,\n attributeType: null,\n azimuth: number,\n bandwidth: null,\n baselineShift: null,\n baseFrequency: null,\n baseProfile: null,\n bbox: null,\n begin: null,\n bias: number,\n by: null,\n calcMode: null,\n capHeight: number,\n className: spaceSeparated,\n clip: null,\n clipPath: null,\n clipPathUnits: null,\n clipRule: null,\n color: null,\n colorInterpolation: null,\n colorInterpolationFilters: null,\n colorProfile: null,\n colorRendering: null,\n content: null,\n contentScriptType: null,\n contentStyleType: null,\n crossOrigin: null,\n cursor: null,\n cx: null,\n cy: null,\n d: null,\n dataType: null,\n defaultAction: null,\n descent: number,\n diffuseConstant: number,\n direction: null,\n display: null,\n dur: null,\n divisor: number,\n dominantBaseline: null,\n download: boolean,\n dx: null,\n dy: null,\n edgeMode: null,\n editable: null,\n elevation: number,\n enableBackground: null,\n end: null,\n event: null,\n exponent: number,\n externalResourcesRequired: null,\n fill: null,\n fillOpacity: number,\n fillRule: null,\n filter: null,\n filterRes: null,\n filterUnits: null,\n floodColor: null,\n floodOpacity: null,\n focusable: null,\n focusHighlight: null,\n fontFamily: null,\n fontSize: null,\n fontSizeAdjust: null,\n fontStretch: null,\n fontStyle: null,\n fontVariant: null,\n fontWeight: null,\n format: null,\n fr: null,\n from: null,\n fx: null,\n fy: null,\n g1: commaSeparated,\n g2: commaSeparated,\n glyphName: commaSeparated,\n glyphOrientationHorizontal: null,\n glyphOrientationVertical: null,\n glyphRef: null,\n gradientTransform: null,\n gradientUnits: null,\n handler: null,\n hanging: number,\n hatchContentUnits: null,\n hatchUnits: null,\n height: null,\n href: null,\n hrefLang: null,\n horizAdvX: number,\n horizOriginX: number,\n horizOriginY: number,\n id: null,\n ideographic: number,\n imageRendering: null,\n initialVisibility: null,\n in: null,\n in2: null,\n intercept: number,\n k: number,\n k1: number,\n k2: number,\n k3: number,\n k4: number,\n kernelMatrix: commaOrSpaceSeparated,\n kernelUnitLength: null,\n keyPoints: null, // SEMI_COLON_SEPARATED\n keySplines: null, // SEMI_COLON_SEPARATED\n keyTimes: null, // SEMI_COLON_SEPARATED\n kerning: null,\n lang: null,\n lengthAdjust: null,\n letterSpacing: null,\n lightingColor: null,\n limitingConeAngle: number,\n local: null,\n markerEnd: null,\n markerMid: null,\n markerStart: null,\n markerHeight: null,\n markerUnits: null,\n markerWidth: null,\n mask: null,\n maskContentUnits: null,\n maskUnits: null,\n mathematical: null,\n max: null,\n media: null,\n mediaCharacterEncoding: null,\n mediaContentEncodings: null,\n mediaSize: number,\n mediaTime: null,\n method: null,\n min: null,\n mode: null,\n name: null,\n navDown: null,\n navDownLeft: null,\n navDownRight: null,\n navLeft: null,\n navNext: null,\n navPrev: null,\n navRight: null,\n navUp: null,\n navUpLeft: null,\n navUpRight: null,\n numOctaves: null,\n observer: null,\n offset: null,\n onAbort: null,\n onActivate: null,\n onAfterPrint: null,\n onBeforePrint: null,\n onBegin: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnd: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFocusIn: null,\n onFocusOut: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadStart: null,\n onMessage: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onMouseWheel: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRepeat: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onShow: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onZoom: null,\n opacity: null,\n operator: null,\n order: null,\n orient: null,\n orientation: null,\n origin: null,\n overflow: null,\n overlay: null,\n overlinePosition: number,\n overlineThickness: number,\n paintOrder: null,\n panose1: null,\n path: null,\n pathLength: number,\n patternContentUnits: null,\n patternTransform: null,\n patternUnits: null,\n phase: null,\n ping: spaceSeparated,\n pitch: null,\n playbackOrder: null,\n pointerEvents: null,\n points: null,\n pointsAtX: number,\n pointsAtY: number,\n pointsAtZ: number,\n preserveAlpha: null,\n preserveAspectRatio: null,\n primitiveUnits: null,\n propagate: null,\n property: commaOrSpaceSeparated,\n r: null,\n radius: null,\n referrerPolicy: null,\n refX: null,\n refY: null,\n rel: commaOrSpaceSeparated,\n rev: commaOrSpaceSeparated,\n renderingIntent: null,\n repeatCount: null,\n repeatDur: null,\n requiredExtensions: commaOrSpaceSeparated,\n requiredFeatures: commaOrSpaceSeparated,\n requiredFonts: commaOrSpaceSeparated,\n requiredFormats: commaOrSpaceSeparated,\n resource: null,\n restart: null,\n result: null,\n rotate: null,\n rx: null,\n ry: null,\n scale: null,\n seed: null,\n shapeRendering: null,\n side: null,\n slope: null,\n snapshotTime: null,\n specularConstant: number,\n specularExponent: number,\n spreadMethod: null,\n spacing: null,\n startOffset: null,\n stdDeviation: null,\n stemh: null,\n stemv: null,\n stitchTiles: null,\n stopColor: null,\n stopOpacity: null,\n strikethroughPosition: number,\n strikethroughThickness: number,\n string: null,\n stroke: null,\n strokeDashArray: commaOrSpaceSeparated,\n strokeDashOffset: null,\n strokeLineCap: null,\n strokeLineJoin: null,\n strokeMiterLimit: number,\n strokeOpacity: number,\n strokeWidth: null,\n style: null,\n surfaceScale: number,\n syncBehavior: null,\n syncBehaviorDefault: null,\n syncMaster: null,\n syncTolerance: null,\n syncToleranceDefault: null,\n systemLanguage: commaOrSpaceSeparated,\n tabIndex: number,\n tableValues: null,\n target: null,\n targetX: number,\n targetY: number,\n textAnchor: null,\n textDecoration: null,\n textRendering: null,\n textLength: null,\n timelineBegin: null,\n title: null,\n transformBehavior: null,\n type: null,\n typeOf: commaOrSpaceSeparated,\n to: null,\n transform: null,\n transformOrigin: null,\n u1: null,\n u2: null,\n underlinePosition: number,\n underlineThickness: number,\n unicode: null,\n unicodeBidi: null,\n unicodeRange: null,\n unitsPerEm: number,\n values: null,\n vAlphabetic: number,\n vMathematical: number,\n vectorEffect: null,\n vHanging: number,\n vIdeographic: number,\n version: null,\n vertAdvY: number,\n vertOriginX: number,\n vertOriginY: number,\n viewBox: null,\n viewTarget: null,\n visibility: null,\n width: null,\n widths: null,\n wordSpacing: null,\n writingMode: null,\n x: null,\n x1: null,\n x2: null,\n xChannelSelector: null,\n xHeight: number,\n y: null,\n y1: null,\n y2: null,\n yChannelSelector: null,\n z: null,\n zoomAndPan: null\n },\n space: 'svg',\n transform: caseSensitiveTransform\n})\n","import {create} from './util/create.js'\n\nexport const xlink = create({\n properties: {\n xLinkActuate: null,\n xLinkArcRole: null,\n xLinkHref: null,\n xLinkRole: null,\n xLinkShow: null,\n xLinkTitle: null,\n xLinkType: null\n },\n space: 'xlink',\n transform(_, property) {\n return 'xlink:' + property.slice(5).toLowerCase()\n }\n})\n","import {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const xmlns = create({\n attributes: {xmlnsxlink: 'xmlns:xlink'},\n properties: {xmlnsXLink: null, xmlns: null},\n space: 'xmlns',\n transform: caseInsensitiveTransform\n})\n","import {create} from './util/create.js'\n\nexport const xml = create({\n properties: {xmlBase: null, xmlLang: null, xmlSpace: null},\n space: 'xml',\n transform(_, property) {\n return 'xml:' + property.slice(3).toLowerCase()\n }\n})\n","/**\n * Special cases for React (`Record<string, string>`).\n *\n * `hast` is close to `React` but differs in a couple of cases.\n * To get a React property from a hast property,\n * check if it is in `hastToReact`.\n * If it is, use the corresponding value;\n * otherwise, use the hast property.\n *\n * @type {Record<string, string>}\n */\nexport const hastToReact = {\n classId: 'classID',\n dataType: 'datatype',\n itemId: 'itemID',\n strokeDashArray: 'strokeDasharray',\n strokeDashOffset: 'strokeDashoffset',\n strokeLineCap: 'strokeLinecap',\n strokeLineJoin: 'strokeLinejoin',\n strokeMiterLimit: 'strokeMiterlimit',\n typeOf: 'typeof',\n xLinkActuate: 'xlinkActuate',\n xLinkArcRole: 'xlinkArcrole',\n xLinkHref: 'xlinkHref',\n xLinkRole: 'xlinkRole',\n xLinkShow: 'xlinkShow',\n xLinkTitle: 'xlinkTitle',\n xLinkType: 'xlinkType',\n xmlnsXLink: 'xmlnsXlink'\n}\n","/**\n * @import {Schema} from 'property-information'\n */\n\nimport {DefinedInfo} from './util/defined-info.js'\nimport {Info} from './util/info.js'\nimport {normalize} from './normalize.js'\n\nconst cap = /[A-Z]/g\nconst dash = /-[a-z]/g\nconst valid = /^data[-\\w.:]+$/i\n\n/**\n * Look up info on a property.\n *\n * In most cases the given `schema` contains info on the property.\n * All standard,\n * most legacy,\n * and some non-standard properties are supported.\n * For these cases,\n * the returned `Info` has hints about the value of the property.\n *\n * `name` can also be a valid data attribute or property,\n * in which case an `Info` object with the correctly cased `attribute` and\n * `property` is returned.\n *\n * `name` can be an unknown attribute,\n * in which case an `Info` object with `attribute` and `property` set to the\n * given name is returned.\n * It is not recommended to provide unsupported legacy or recently specced\n * properties.\n *\n *\n * @param {Schema} schema\n * Schema;\n * either the `html` or `svg` export.\n * @param {string} value\n * An attribute-like or property-like name;\n * it will be passed through `normalize` to hopefully find the correct info.\n * @returns {Info}\n * Info.\n */\nexport function find(schema, value) {\n const normal = normalize(value)\n let property = value\n let Type = Info\n\n if (normal in schema.normal) {\n return schema.property[schema.normal[normal]]\n }\n\n if (normal.length > 4 && normal.slice(0, 4) === 'data' && valid.test(value)) {\n // Attribute or property.\n if (value.charAt(4) === '-') {\n // Turn it into a property.\n const rest = value.slice(5).replace(dash, camelcase)\n property = 'data' + rest.charAt(0).toUpperCase() + rest.slice(1)\n } else {\n // Turn it into an attribute.\n const rest = value.slice(4)\n\n if (!dash.test(rest)) {\n let dashes = rest.replace(cap, kebab)\n\n if (dashes.charAt(0) !== '-') {\n dashes = '-' + dashes\n }\n\n value = 'data' + dashes\n }\n }\n\n Type = DefinedInfo\n }\n\n return new Type(property, value)\n}\n\n/**\n * @param {string} $0\n * Value.\n * @returns {string}\n * Kebab.\n */\nfunction kebab($0) {\n return '-' + $0.toLowerCase()\n}\n\n/**\n * @param {string} $0\n * Value.\n * @returns {string}\n * Camel.\n */\nfunction camelcase($0) {\n return $0.charAt(1).toUpperCase()\n}\n","// Note: types exposed from `index.d.ts`.\nimport {merge} from './lib/util/merge.js'\nimport {aria} from './lib/aria.js'\nimport {html as htmlBase} from './lib/html.js'\nimport {svg as svgBase} from './lib/svg.js'\nimport {xlink} from './lib/xlink.js'\nimport {xmlns} from './lib/xmlns.js'\nimport {xml} from './lib/xml.js'\n\nexport {hastToReact} from './lib/hast-to-react.js'\n\nexport const html = merge([aria, htmlBase, xlink, xmlns, xml], 'html')\n\nexport {find} from './lib/find.js'\nexport {normalize} from './lib/normalize.js'\n\nexport const svg = merge([aria, svgBase, xlink, xmlns, xml], 'svg')\n","// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nvar COMMENT_REGEX = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\n\nvar NEWLINE_REGEX = /\\n/g;\nvar WHITESPACE_REGEX = /^\\s*/;\n\n// declaration\nvar PROPERTY_REGEX = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/;\nvar COLON_REGEX = /^:\\s*/;\nvar VALUE_REGEX = /^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^)]*?\\)|[^};])+)/;\nvar SEMICOLON_REGEX = /^[;\\s]*/;\n\n// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill\nvar TRIM_REGEX = /^\\s+|\\s+$/g;\n\n// strings\nvar NEWLINE = '\\n';\nvar FORWARD_SLASH = '/';\nvar ASTERISK = '*';\nvar EMPTY_STRING = '';\n\n// types\nvar TYPE_COMMENT = 'comment';\nvar TYPE_DECLARATION = 'declaration';\n\n/**\n * @param {String} style\n * @param {Object} [options]\n * @return {Object[]}\n * @throws {TypeError}\n * @throws {Error}\n */\nmodule.exports = function (style, options) {\n if (typeof style !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n if (!style) return [];\n\n options = options || {};\n\n /**\n * Positional.\n */\n var lineno = 1;\n var column = 1;\n\n /**\n * Update lineno and column based on `str`.\n *\n * @param {String} str\n */\n function updatePosition(str) {\n var lines = str.match(NEWLINE_REGEX);\n if (lines) lineno += lines.length;\n var i = str.lastIndexOf(NEWLINE);\n column = ~i ? str.length - i : column + str.length;\n }\n\n /**\n * Mark position and patch `node.position`.\n *\n * @return {Function}\n */\n function position() {\n var start = { line: lineno, column: column };\n return function (node) {\n node.position = new Position(start);\n whitespace();\n return node;\n };\n }\n\n /**\n * Store position information for a node.\n *\n * @constructor\n * @property {Object} start\n * @property {Object} end\n * @property {undefined|String} source\n */\n function Position(start) {\n this.start = start;\n this.end = { line: lineno, column: column };\n this.source = options.source;\n }\n\n /**\n * Non-enumerable source string.\n */\n Position.prototype.content = style;\n\n var errorsList = [];\n\n /**\n * Error `msg`.\n *\n * @param {String} msg\n * @throws {Error}\n */\n function error(msg) {\n var err = new Error(\n options.source + ':' + lineno + ':' + column + ': ' + msg\n );\n err.reason = msg;\n err.filename = options.source;\n err.line = lineno;\n err.column = column;\n err.source = style;\n\n if (options.silent) {\n errorsList.push(err);\n } else {\n throw err;\n }\n }\n\n /**\n * Match `re` and return captures.\n *\n * @param {RegExp} re\n * @return {undefined|Array}\n */\n function match(re) {\n var m = re.exec(style);\n if (!m) return;\n var str = m[0];\n updatePosition(str);\n style = style.slice(str.length);\n return m;\n }\n\n /**\n * Parse whitespace.\n */\n function whitespace() {\n match(WHITESPACE_REGEX);\n }\n\n /**\n * Parse comments.\n *\n * @param {Object[]} [rules]\n * @return {Object[]}\n */\n function comments(rules) {\n var c;\n rules = rules || [];\n while ((c = comment())) {\n if (c !== false) {\n rules.push(c);\n }\n }\n return rules;\n }\n\n /**\n * Parse comment.\n *\n * @return {Object}\n * @throws {Error}\n */\n function comment() {\n var pos = position();\n if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;\n\n var i = 2;\n while (\n EMPTY_STRING != style.charAt(i) &&\n (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))\n ) {\n ++i;\n }\n i += 2;\n\n if (EMPTY_STRING === style.charAt(i - 1)) {\n return error('End of comment missing');\n }\n\n var str = style.slice(2, i - 2);\n column += 2;\n updatePosition(str);\n style = style.slice(i);\n column += 2;\n\n return pos({\n type: TYPE_COMMENT,\n comment: str\n });\n }\n\n /**\n * Parse declaration.\n *\n * @return {Object}\n * @throws {Error}\n */\n function declaration() {\n var pos = position();\n\n // prop\n var prop = match(PROPERTY_REGEX);\n if (!prop) return;\n comment();\n\n // :\n if (!match(COLON_REGEX)) return error(\"property missing ':'\");\n\n // val\n var val = match(VALUE_REGEX);\n\n var ret = pos({\n type: TYPE_DECLARATION,\n property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),\n value: val\n ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING))\n : EMPTY_STRING\n });\n\n // ;\n match(SEMICOLON_REGEX);\n\n return ret;\n }\n\n /**\n * Parse declarations.\n *\n * @return {Object[]}\n */\n function declarations() {\n var decls = [];\n\n comments(decls);\n\n // declarations\n var decl;\n while ((decl = declaration())) {\n if (decl !== false) {\n decls.push(decl);\n comments(decls);\n }\n }\n\n return decls;\n }\n\n whitespace();\n return declarations();\n};\n\n/**\n * Trim `str`.\n *\n * @param {String} str\n * @return {String}\n */\nfunction trim(str) {\n return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;\n}\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = StyleToObject;\nconst inline_style_parser_1 = __importDefault(require(\"inline-style-parser\"));\n/**\n * Parses inline style to object.\n *\n * @param style - Inline style.\n * @param iterator - Iterator.\n * @returns - Style object or null.\n *\n * @example Parsing inline style to object:\n *\n * ```js\n * import parse from 'style-to-object';\n * parse('line-height: 42;'); // { 'line-height': '42' }\n * ```\n */\nfunction StyleToObject(style, iterator) {\n let styleObject = null;\n if (!style || typeof style !== 'string') {\n return styleObject;\n }\n const declarations = (0, inline_style_parser_1.default)(style);\n const hasIterator = typeof iterator === 'function';\n declarations.forEach((declaration) => {\n if (declaration.type !== 'declaration') {\n return;\n }\n const { property, value } = declaration;\n if (hasIterator) {\n iterator(property, value, declaration);\n }\n else if (value) {\n styleObject = styleObject || {};\n styleObject[property] = value;\n }\n });\n return styleObject;\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.camelCase = void 0;\nvar CUSTOM_PROPERTY_REGEX = /^--[a-zA-Z0-9_-]+$/;\nvar HYPHEN_REGEX = /-([a-z])/g;\nvar NO_HYPHEN_REGEX = /^[^-]+$/;\nvar VENDOR_PREFIX_REGEX = /^-(webkit|moz|ms|o|khtml)-/;\nvar MS_VENDOR_PREFIX_REGEX = /^-(ms)-/;\n/**\n * Checks whether to skip camelCase.\n */\nvar skipCamelCase = function (property) {\n return !property ||\n NO_HYPHEN_REGEX.test(property) ||\n CUSTOM_PROPERTY_REGEX.test(property);\n};\n/**\n * Replacer that capitalizes first character.\n */\nvar capitalize = function (match, character) {\n return character.toUpperCase();\n};\n/**\n * Replacer that removes beginning hyphen of vendor prefix property.\n */\nvar trimHyphen = function (match, prefix) { return \"\".concat(prefix, \"-\"); };\n/**\n * CamelCases a CSS property.\n */\nvar camelCase = function (property, options) {\n if (options === void 0) { options = {}; }\n if (skipCamelCase(property)) {\n return property;\n }\n property = property.toLowerCase();\n if (options.reactCompat) {\n // `-ms` vendor prefix should not be capitalized\n property = property.replace(MS_VENDOR_PREFIX_REGEX, trimHyphen);\n }\n else {\n // for non-React, remove first hyphen so vendor prefix is not capitalized\n property = property.replace(VENDOR_PREFIX_REGEX, trimHyphen);\n }\n return property.replace(HYPHEN_REGEX, capitalize);\n};\nexports.camelCase = camelCase;\n//# sourceMappingURL=utilities.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar style_to_object_1 = __importDefault(require(\"style-to-object\"));\nvar utilities_1 = require(\"./utilities\");\n/**\n * Parses CSS inline style to JavaScript object (camelCased).\n */\nfunction StyleToJS(style, options) {\n var output = {};\n if (!style || typeof style !== 'string') {\n return output;\n }\n (0, style_to_object_1.default)(style, function (property, value) {\n // skip CSS comment\n if (property && value) {\n output[(0, utilities_1.camelCase)(property, options)] = value;\n }\n });\n return output;\n}\nStyleToJS.default = StyleToJS;\nmodule.exports = StyleToJS;\n//# sourceMappingURL=index.js.map","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n */\n\n/**\n * @typedef NodeLike\n * @property {string} type\n * @property {PositionLike | null | undefined} [position]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n */\n\n/**\n * Get the ending point of `node`.\n *\n * @param node\n * Node.\n * @returns\n * Point.\n */\nexport const pointEnd = point('end')\n\n/**\n * Get the starting point of `node`.\n *\n * @param node\n * Node.\n * @returns\n * Point.\n */\nexport const pointStart = point('start')\n\n/**\n * Get the positional info of `node`.\n *\n * @param {'end' | 'start'} type\n * Side.\n * @returns\n * Getter.\n */\nfunction point(type) {\n return point\n\n /**\n * Get the point info of `node` at a bound side.\n *\n * @param {Node | NodeLike | null | undefined} [node]\n * @returns {Point | undefined}\n */\n function point(node) {\n const point = (node && node.position && node.position[type]) || {}\n\n if (\n typeof point.line === 'number' &&\n point.line > 0 &&\n typeof point.column === 'number' &&\n point.column > 0\n ) {\n return {\n line: point.line,\n column: point.column,\n offset:\n typeof point.offset === 'number' && point.offset > -1\n ? point.offset\n : undefined\n }\n }\n }\n}\n\n/**\n * Get the positional info of `node`.\n *\n * @param {Node | NodeLike | null | undefined} [node]\n * Node.\n * @returns {Position | undefined}\n * Position.\n */\nexport function position(node) {\n const start = pointStart(node)\n const end = pointEnd(node)\n\n if (start && end) {\n return {start, end}\n }\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n */\n\n/**\n * @typedef NodeLike\n * @property {string} type\n * @property {PositionLike | null | undefined} [position]\n *\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n */\n\n/**\n * Serialize the positional info of a point, position (start and end points),\n * or node.\n *\n * @param {Node | NodeLike | Point | PointLike | Position | PositionLike | null | undefined} [value]\n * Node, position, or point.\n * @returns {string}\n * Pretty printed positional info of a node (`string`).\n *\n * In the format of a range `ls:cs-le:ce` (when given `node` or `position`)\n * or a point `l:c` (when given `point`), where `l` stands for line, `c` for\n * column, `s` for `start`, and `e` for end.\n * An empty string (`''`) is returned if the given value is neither `node`,\n * `position`, nor `point`.\n */\nexport function stringifyPosition(value) {\n // Nothing.\n if (!value || typeof value !== 'object') {\n return ''\n }\n\n // Node.\n if ('position' in value || 'type' in value) {\n return position(value.position)\n }\n\n // Position.\n if ('start' in value || 'end' in value) {\n return position(value)\n }\n\n // Point.\n if ('line' in value || 'column' in value) {\n return point(value)\n }\n\n // ?\n return ''\n}\n\n/**\n * @param {Point | PointLike | null | undefined} point\n * @returns {string}\n */\nfunction point(point) {\n return index(point && point.line) + ':' + index(point && point.column)\n}\n\n/**\n * @param {Position | PositionLike | null | undefined} pos\n * @returns {string}\n */\nfunction position(pos) {\n return point(pos && pos.start) + '-' + point(pos && pos.end)\n}\n\n/**\n * @param {number | null | undefined} value\n * @returns {number}\n */\nfunction index(value) {\n return value && typeof value === 'number' ? value : 1\n}\n","/**\n * @import {Node, Point, Position} from 'unist'\n */\n\n/**\n * @typedef {object & {type: string, position?: Position | undefined}} NodeLike\n *\n * @typedef Options\n * Configuration.\n * @property {Array<Node> | null | undefined} [ancestors]\n * Stack of (inclusive) ancestor nodes surrounding the message (optional).\n * @property {Error | null | undefined} [cause]\n * Original error cause of the message (optional).\n * @property {Point | Position | null | undefined} [place]\n * Place of message (optional).\n * @property {string | null | undefined} [ruleId]\n * Category of message (optional, example: `'my-rule'`).\n * @property {string | null | undefined} [source]\n * Namespace of who sent the message (optional, example: `'my-package'`).\n */\n\nimport {stringifyPosition} from 'unist-util-stringify-position'\n\n/**\n * Message.\n */\nexport class VFileMessage extends Error {\n /**\n * Create a message for `reason`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {Options | null | undefined} [options]\n * @returns\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | Options | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns\n * Instance of `VFileMessage`.\n */\n // eslint-disable-next-line complexity\n constructor(causeOrReason, optionsOrParentOrPlace, origin) {\n super()\n\n if (typeof optionsOrParentOrPlace === 'string') {\n origin = optionsOrParentOrPlace\n optionsOrParentOrPlace = undefined\n }\n\n /** @type {string} */\n let reason = ''\n /** @type {Options} */\n let options = {}\n let legacyCause = false\n\n if (optionsOrParentOrPlace) {\n // Point.\n if (\n 'line' in optionsOrParentOrPlace &&\n 'column' in optionsOrParentOrPlace\n ) {\n options = {place: optionsOrParentOrPlace}\n }\n // Position.\n else if (\n 'start' in optionsOrParentOrPlace &&\n 'end' in optionsOrParentOrPlace\n ) {\n options = {place: optionsOrParentOrPlace}\n }\n // Node.\n else if ('type' in optionsOrParentOrPlace) {\n options = {\n ancestors: [optionsOrParentOrPlace],\n place: optionsOrParentOrPlace.position\n }\n }\n // Options.\n else {\n options = {...optionsOrParentOrPlace}\n }\n }\n\n if (typeof causeOrReason === 'string') {\n reason = causeOrReason\n }\n // Error.\n else if (!options.cause && causeOrReason) {\n legacyCause = true\n reason = causeOrReason.message\n options.cause = causeOrReason\n }\n\n if (!options.ruleId && !options.source && typeof origin === 'string') {\n const index = origin.indexOf(':')\n\n if (index === -1) {\n options.ruleId = origin\n } else {\n options.source = origin.slice(0, index)\n options.ruleId = origin.slice(index + 1)\n }\n }\n\n if (!options.place && options.ancestors && options.ancestors) {\n const parent = options.ancestors[options.ancestors.length - 1]\n\n if (parent) {\n options.place = parent.position\n }\n }\n\n const start =\n options.place && 'start' in options.place\n ? options.place.start\n : options.place\n\n /**\n * Stack of ancestor nodes surrounding the message.\n *\n * @type {Array<Node> | undefined}\n */\n this.ancestors = options.ancestors || undefined\n\n /**\n * Original error cause of the message.\n *\n * @type {Error | undefined}\n */\n this.cause = options.cause || undefined\n\n /**\n * Starting column of message.\n *\n * @type {number | undefined}\n */\n this.column = start ? start.column : undefined\n\n /**\n * State of problem.\n *\n * * `true` — error, file not usable\n * * `false` — warning, change may be needed\n * * `undefined` — change likely not needed\n *\n * @type {boolean | null | undefined}\n */\n this.fatal = undefined\n\n /**\n * Path of a file (used throughout the `VFile` ecosystem).\n *\n * @type {string | undefined}\n */\n this.file = ''\n\n // Field from `Error`.\n /**\n * Reason for message.\n *\n * @type {string}\n */\n this.message = reason\n\n /**\n * Starting line of error.\n *\n * @type {number | undefined}\n */\n this.line = start ? start.line : undefined\n\n // Field from `Error`.\n /**\n * Serialized positional info of message.\n *\n * On normal errors, this would be something like `ParseError`, buit in\n * `VFile` messages we use this space to show where an error happened.\n */\n this.name = stringifyPosition(options.place) || '1:1'\n\n /**\n * Place of message.\n *\n * @type {Point | Position | undefined}\n */\n this.place = options.place || undefined\n\n /**\n * Reason for message, should use markdown.\n *\n * @type {string}\n */\n this.reason = this.message\n\n /**\n * Category of message (example: `'my-rule'`).\n *\n * @type {string | undefined}\n */\n this.ruleId = options.ruleId || undefined\n\n /**\n * Namespace of message (example: `'my-package'`).\n *\n * @type {string | undefined}\n */\n this.source = options.source || undefined\n\n // Field from `Error`.\n /**\n * Stack of message.\n *\n * This is used by normal errors to show where something happened in\n * programming code, irrelevant for `VFile` messages,\n *\n * @type {string}\n */\n this.stack =\n legacyCause && options.cause && typeof options.cause.stack === 'string'\n ? options.cause.stack\n : ''\n\n // The following fields are “well known”.\n // Not standard.\n // Feel free to add other non-standard fields to your messages.\n\n /**\n * Specify the source value that’s being reported, which is deemed\n * incorrect.\n *\n * @type {string | undefined}\n */\n this.actual = undefined\n\n /**\n * Suggest acceptable values that can be used instead of `actual`.\n *\n * @type {Array<string> | undefined}\n */\n this.expected = undefined\n\n /**\n * Long form description of the message (you should use markdown).\n *\n * @type {string | undefined}\n */\n this.note = undefined\n\n /**\n * Link to docs for the message.\n *\n * > 👉 **Note**: this must be an absolute URL that can be passed as `x`\n * > to `new URL(x)`.\n *\n * @type {string | undefined}\n */\n this.url = undefined\n }\n}\n\nVFileMessage.prototype.file = ''\nVFileMessage.prototype.name = ''\nVFileMessage.prototype.reason = ''\nVFileMessage.prototype.message = ''\nVFileMessage.prototype.stack = ''\nVFileMessage.prototype.column = undefined\nVFileMessage.prototype.line = undefined\nVFileMessage.prototype.ancestors = undefined\nVFileMessage.prototype.cause = undefined\nVFileMessage.prototype.fatal = undefined\nVFileMessage.prototype.place = undefined\nVFileMessage.prototype.ruleId = undefined\nVFileMessage.prototype.source = undefined\n","/**\n * @import {Identifier, Literal, MemberExpression} from 'estree'\n * @import {Jsx, JsxDev, Options, Props} from 'hast-util-to-jsx-runtime'\n * @import {Element, Nodes, Parents, Root, Text} from 'hast'\n * @import {MdxFlowExpressionHast, MdxTextExpressionHast} from 'mdast-util-mdx-expression'\n * @import {MdxJsxFlowElementHast, MdxJsxTextElementHast} from 'mdast-util-mdx-jsx'\n * @import {MdxjsEsmHast} from 'mdast-util-mdxjs-esm'\n * @import {Position} from 'unist'\n * @import {Child, Create, Field, JsxElement, State, Style} from './types.js'\n */\n\nimport {stringify as commas} from 'comma-separated-tokens'\nimport {ok as assert} from 'devlop'\nimport {name as isIdentifierName} from 'estree-util-is-identifier-name'\nimport {whitespace} from 'hast-util-whitespace'\nimport {find, hastToReact, html, svg} from 'property-information'\nimport {stringify as spaces} from 'space-separated-tokens'\nimport styleToJs from 'style-to-js'\nimport {pointStart} from 'unist-util-position'\nimport {VFileMessage} from 'vfile-message'\n\n// To do: next major: `Object.hasOwn`.\nconst own = {}.hasOwnProperty\n\n/** @type {Map<string, number>} */\nconst emptyMap = new Map()\n\nconst cap = /[A-Z]/g\n\n// `react-dom` triggers a warning for *any* white space in tables.\n// To follow GFM, `mdast-util-to-hast` injects line endings between elements.\n// Other tools might do so too, but they don’t do here, so we remove all of\n// that.\n\n// See: <https://github.com/facebook/react/pull/7081>.\n// See: <https://github.com/facebook/react/pull/7515>.\n// See: <https://github.com/remarkjs/remark-react/issues/64>.\n// See: <https://github.com/rehypejs/rehype-react/pull/29>.\n// See: <https://github.com/rehypejs/rehype-react/pull/32>.\n// See: <https://github.com/rehypejs/rehype-react/pull/45>.\nconst tableElements = new Set(['table', 'tbody', 'thead', 'tfoot', 'tr'])\n\nconst tableCellElement = new Set(['td', 'th'])\n\nconst docs = 'https://github.com/syntax-tree/hast-util-to-jsx-runtime'\n\n/**\n * Transform a hast tree to preact, react, solid, svelte, vue, etc.,\n * with an automatic JSX runtime.\n *\n * @param {Nodes} tree\n * Tree to transform.\n * @param {Options} options\n * Configuration (required).\n * @returns {JsxElement}\n * JSX element.\n */\n\nexport function toJsxRuntime(tree, options) {\n if (!options || options.Fragment === undefined) {\n throw new TypeError('Expected `Fragment` in options')\n }\n\n const filePath = options.filePath || undefined\n /** @type {Create} */\n let create\n\n if (options.development) {\n if (typeof options.jsxDEV !== 'function') {\n throw new TypeError(\n 'Expected `jsxDEV` in options when `development: true`'\n )\n }\n\n create = developmentCreate(filePath, options.jsxDEV)\n } else {\n if (typeof options.jsx !== 'function') {\n throw new TypeError('Expected `jsx` in production options')\n }\n\n if (typeof options.jsxs !== 'function') {\n throw new TypeError('Expected `jsxs` in production options')\n }\n\n create = productionCreate(filePath, options.jsx, options.jsxs)\n }\n\n /** @type {State} */\n const state = {\n Fragment: options.Fragment,\n ancestors: [],\n components: options.components || {},\n create,\n elementAttributeNameCase: options.elementAttributeNameCase || 'react',\n evaluater: options.createEvaluater ? options.createEvaluater() : undefined,\n filePath,\n ignoreInvalidStyle: options.ignoreInvalidStyle || false,\n passKeys: options.passKeys !== false,\n passNode: options.passNode || false,\n schema: options.space === 'svg' ? svg : html,\n stylePropertyNameCase: options.stylePropertyNameCase || 'dom',\n tableCellAlignToStyle: options.tableCellAlignToStyle !== false\n }\n\n const result = one(state, tree, undefined)\n\n // JSX element.\n if (result && typeof result !== 'string') {\n return result\n }\n\n // Text node or something that turned into nothing.\n return state.create(\n tree,\n state.Fragment,\n {children: result || undefined},\n undefined\n )\n}\n\n/**\n * Transform a node.\n *\n * @param {State} state\n * Info passed around.\n * @param {Nodes} node\n * Current node.\n * @param {string | undefined} key\n * Key.\n * @returns {Child | undefined}\n * Child, optional.\n */\nfunction one(state, node, key) {\n if (node.type === 'element') {\n return element(state, node, key)\n }\n\n if (node.type === 'mdxFlowExpression' || node.type === 'mdxTextExpression') {\n return mdxExpression(state, node)\n }\n\n if (node.type === 'mdxJsxFlowElement' || node.type === 'mdxJsxTextElement') {\n return mdxJsxElement(state, node, key)\n }\n\n if (node.type === 'mdxjsEsm') {\n return mdxEsm(state, node)\n }\n\n if (node.type === 'root') {\n return root(state, node, key)\n }\n\n if (node.type === 'text') {\n return text(state, node)\n }\n}\n\n/**\n * Handle element.\n *\n * @param {State} state\n * Info passed around.\n * @param {Element} node\n * Current node.\n * @param {string | undefined} key\n * Key.\n * @returns {Child | undefined}\n * Child, optional.\n */\nfunction element(state, node, key) {\n const parentSchema = state.schema\n let schema = parentSchema\n\n if (node.tagName.toLowerCase() === 'svg' && parentSchema.space === 'html') {\n schema = svg\n state.schema = schema\n }\n\n state.ancestors.push(node)\n\n const type = findComponentFromName(state, node.tagName, false)\n const props = createElementProps(state, node)\n let children = createChildren(state, node)\n\n if (tableElements.has(node.tagName)) {\n children = children.filter(function (child) {\n return typeof child === 'string' ? !whitespace(child) : true\n })\n }\n\n addNode(state, props, type, node)\n addChildren(props, children)\n\n // Restore.\n state.ancestors.pop()\n state.schema = parentSchema\n\n return state.create(node, type, props, key)\n}\n\n/**\n * Handle MDX expression.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdxFlowExpressionHast | MdxTextExpressionHast} node\n * Current node.\n * @returns {Child | undefined}\n * Child, optional.\n */\nfunction mdxExpression(state, node) {\n if (node.data && node.data.estree && state.evaluater) {\n const program = node.data.estree\n const expression = program.body[0]\n assert(expression.type === 'ExpressionStatement')\n\n // Assume result is a child.\n return /** @type {Child | undefined} */ (\n state.evaluater.evaluateExpression(expression.expression)\n )\n }\n\n crashEstree(state, node.position)\n}\n\n/**\n * Handle MDX ESM.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdxjsEsmHast} node\n * Current node.\n * @returns {Child | undefined}\n * Child, optional.\n */\nfunction mdxEsm(state, node) {\n if (node.data && node.data.estree && state.evaluater) {\n // Assume result is a child.\n return /** @type {Child | undefined} */ (\n state.evaluater.evaluateProgram(node.data.estree)\n )\n }\n\n crashEstree(state, node.position)\n}\n\n/**\n * Handle MDX JSX.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdxJsxFlowElementHast | MdxJsxTextElementHast} node\n * Current node.\n * @param {string | undefined} key\n * Key.\n * @returns {Child | undefined}\n * Child, optional.\n */\nfunction mdxJsxElement(state, node, key) {\n const parentSchema = state.schema\n let schema = parentSchema\n\n if (node.name === 'svg' && parentSchema.space === 'html') {\n schema = svg\n state.schema = schema\n }\n\n state.ancestors.push(node)\n\n const type =\n node.name === null\n ? state.Fragment\n : findComponentFromName(state, node.name, true)\n const props = createJsxElementProps(state, node)\n const children = createChildren(state, node)\n\n addNode(state, props, type, node)\n addChildren(props, children)\n\n // Restore.\n state.ancestors.pop()\n state.schema = parentSchema\n\n return state.create(node, type, props, key)\n}\n\n/**\n * Handle root.\n *\n * @param {State} state\n * Info passed around.\n * @param {Root} node\n * Current node.\n * @param {string | undefined} key\n * Key.\n * @returns {Child | undefined}\n * Child, optional.\n */\nfunction root(state, node, key) {\n /** @type {Props} */\n const props = {}\n\n addChildren(props, createChildren(state, node))\n\n return state.create(node, state.Fragment, props, key)\n}\n\n/**\n * Handle text.\n *\n * @param {State} _\n * Info passed around.\n * @param {Text} node\n * Current node.\n * @returns {Child | undefined}\n * Child, optional.\n */\nfunction text(_, node) {\n return node.value\n}\n\n/**\n * Add `node` to props.\n *\n * @param {State} state\n * Info passed around.\n * @param {Props} props\n * Props.\n * @param {unknown} type\n * Type.\n * @param {Element | MdxJsxFlowElementHast | MdxJsxTextElementHast} node\n * Node.\n * @returns {undefined}\n * Nothing.\n */\nfunction addNode(state, props, type, node) {\n // If this is swapped out for a component:\n if (typeof type !== 'string' && type !== state.Fragment && state.passNode) {\n props.node = node\n }\n}\n\n/**\n * Add children to props.\n *\n * @param {Props} props\n * Props.\n * @param {Array<Child>} children\n * Children.\n * @returns {undefined}\n * Nothing.\n */\nfunction addChildren(props, children) {\n if (children.length > 0) {\n const value = children.length > 1 ? children : children[0]\n\n if (value) {\n props.children = value\n }\n }\n}\n\n/**\n * @param {string | undefined} _\n * Path to file.\n * @param {Jsx} jsx\n * Dynamic.\n * @param {Jsx} jsxs\n * Static.\n * @returns {Create}\n * Create a production element.\n */\nfunction productionCreate(_, jsx, jsxs) {\n return create\n /** @type {Create} */\n function create(_, type, props, key) {\n // Only an array when there are 2 or more children.\n const isStaticChildren = Array.isArray(props.children)\n const fn = isStaticChildren ? jsxs : jsx\n return key ? fn(type, props, key) : fn(type, props)\n }\n}\n\n/**\n * @param {string | undefined} filePath\n * Path to file.\n * @param {JsxDev} jsxDEV\n * Development.\n * @returns {Create}\n * Create a development element.\n */\nfunction developmentCreate(filePath, jsxDEV) {\n return create\n /** @type {Create} */\n function create(node, type, props, key) {\n // Only an array when there are 2 or more children.\n const isStaticChildren = Array.isArray(props.children)\n const point = pointStart(node)\n return jsxDEV(\n type,\n props,\n key,\n isStaticChildren,\n {\n columnNumber: point ? point.column - 1 : undefined,\n fileName: filePath,\n lineNumber: point ? point.line : undefined\n },\n undefined\n )\n }\n}\n\n/**\n * Create props from an element.\n *\n * @param {State} state\n * Info passed around.\n * @param {Element} node\n * Current element.\n * @returns {Props}\n * Props.\n */\nfunction createElementProps(state, node) {\n /** @type {Props} */\n const props = {}\n /** @type {string | undefined} */\n let alignValue\n /** @type {string} */\n let prop\n\n for (prop in node.properties) {\n if (prop !== 'children' && own.call(node.properties, prop)) {\n const result = createProperty(state, prop, node.properties[prop])\n\n if (result) {\n const [key, value] = result\n\n if (\n state.tableCellAlignToStyle &&\n key === 'align' &&\n typeof value === 'string' &&\n tableCellElement.has(node.tagName)\n ) {\n alignValue = value\n } else {\n props[key] = value\n }\n }\n }\n }\n\n if (alignValue) {\n // Assume style is an object.\n const style = /** @type {Style} */ (props.style || (props.style = {}))\n style[state.stylePropertyNameCase === 'css' ? 'text-align' : 'textAlign'] =\n alignValue\n }\n\n return props\n}\n\n/**\n * Create props from a JSX element.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdxJsxFlowElementHast | MdxJsxTextElementHast} node\n * Current JSX element.\n * @returns {Props}\n * Props.\n */\nfunction createJsxElementProps(state, node) {\n /** @type {Props} */\n const props = {}\n\n for (const attribute of node.attributes) {\n if (attribute.type === 'mdxJsxExpressionAttribute') {\n if (attribute.data && attribute.data.estree && state.evaluater) {\n const program = attribute.data.estree\n const expression = program.body[0]\n assert(expression.type === 'ExpressionStatement')\n const objectExpression = expression.expression\n assert(objectExpression.type === 'ObjectExpression')\n const property = objectExpression.properties[0]\n assert(property.type === 'SpreadElement')\n\n Object.assign(\n props,\n state.evaluater.evaluateExpression(property.argument)\n )\n } else {\n crashEstree(state, node.position)\n }\n } else {\n // For JSX, the author is responsible of passing in the correct values.\n const name = attribute.name\n /** @type {unknown} */\n let value\n\n if (attribute.value && typeof attribute.value === 'object') {\n if (\n attribute.value.data &&\n attribute.value.data.estree &&\n state.evaluater\n ) {\n const program = attribute.value.data.estree\n const expression = program.body[0]\n assert(expression.type === 'ExpressionStatement')\n value = state.evaluater.evaluateExpression(expression.expression)\n } else {\n crashEstree(state, node.position)\n }\n } else {\n value = attribute.value === null ? true : attribute.value\n }\n\n // Assume a prop.\n props[name] = /** @type {Props[keyof Props]} */ (value)\n }\n }\n\n return props\n}\n\n/**\n * Create children.\n *\n * @param {State} state\n * Info passed around.\n * @param {Parents} node\n * Current element.\n * @returns {Array<Child>}\n * Children.\n */\nfunction createChildren(state, node) {\n /** @type {Array<Child>} */\n const children = []\n let index = -1\n /** @type {Map<string, number>} */\n // Note: test this when Solid doesn’t want to merge my upcoming PR.\n /* c8 ignore next */\n const countsByName = state.passKeys ? new Map() : emptyMap\n\n while (++index < node.children.length) {\n const child = node.children[index]\n /** @type {string | undefined} */\n let key\n\n if (state.passKeys) {\n const name =\n child.type === 'element'\n ? child.tagName\n : child.type === 'mdxJsxFlowElement' ||\n child.type === 'mdxJsxTextElement'\n ? child.name\n : undefined\n\n if (name) {\n const count = countsByName.get(name) || 0\n key = name + '-' + count\n countsByName.set(name, count + 1)\n }\n }\n\n const result = one(state, child, key)\n if (result !== undefined) children.push(result)\n }\n\n return children\n}\n\n/**\n * Handle a property.\n *\n * @param {State} state\n * Info passed around.\n * @param {string} prop\n * Key.\n * @param {Array<number | string> | boolean | number | string | null | undefined} value\n * hast property value.\n * @returns {Field | undefined}\n * Field for runtime, optional.\n */\nfunction createProperty(state, prop, value) {\n const info = find(state.schema, prop)\n\n // Ignore nullish and `NaN` values.\n if (\n value === null ||\n value === undefined ||\n (typeof value === 'number' && Number.isNaN(value))\n ) {\n return\n }\n\n if (Array.isArray(value)) {\n // Accept `array`.\n // Most props are space-separated.\n value = info.commaSeparated ? commas(value) : spaces(value)\n }\n\n // React only accepts `style` as object.\n if (info.property === 'style') {\n let styleObject =\n typeof value === 'object' ? value : parseStyle(state, String(value))\n\n if (state.stylePropertyNameCase === 'css') {\n styleObject = transformStylesToCssCasing(styleObject)\n }\n\n return ['style', styleObject]\n }\n\n return [\n state.elementAttributeNameCase === 'react' && info.space\n ? hastToReact[info.property] || info.property\n : info.attribute,\n value\n ]\n}\n\n/**\n * Parse a CSS declaration to an object.\n *\n * @param {State} state\n * Info passed around.\n * @param {string} value\n * CSS declarations.\n * @returns {Style}\n * Properties.\n * @throws\n * Throws `VFileMessage` when CSS cannot be parsed.\n */\nfunction parseStyle(state, value) {\n try {\n return styleToJs(value, {reactCompat: true})\n } catch (error) {\n if (state.ignoreInvalidStyle) {\n return {}\n }\n\n const cause = /** @type {Error} */ (error)\n const message = new VFileMessage('Cannot parse `style` attribute', {\n ancestors: state.ancestors,\n cause,\n ruleId: 'style',\n source: 'hast-util-to-jsx-runtime'\n })\n message.file = state.filePath || undefined\n message.url = docs + '#cannot-parse-style-attribute'\n\n throw message\n }\n}\n\n/**\n * Create a JSX name from a string.\n *\n * @param {State} state\n * To do.\n * @param {string} name\n * Name.\n * @param {boolean} allowExpression\n * Allow member expressions and identifiers.\n * @returns {unknown}\n * To do.\n */\nfunction findComponentFromName(state, name, allowExpression) {\n /** @type {Identifier | Literal | MemberExpression} */\n let result\n\n if (!allowExpression) {\n result = {type: 'Literal', value: name}\n } else if (name.includes('.')) {\n const identifiers = name.split('.')\n let index = -1\n /** @type {Identifier | Literal | MemberExpression | undefined} */\n let node\n\n while (++index < identifiers.length) {\n /** @type {Identifier | Literal} */\n const prop = isIdentifierName(identifiers[index])\n ? {type: 'Identifier', name: identifiers[index]}\n : {type: 'Literal', value: identifiers[index]}\n node = node\n ? {\n type: 'MemberExpression',\n object: node,\n property: prop,\n computed: Boolean(index && prop.type === 'Literal'),\n optional: false\n }\n : prop\n }\n\n assert(node, 'always a result')\n result = node\n } else {\n result =\n isIdentifierName(name) && !/^[a-z]/.test(name)\n ? {type: 'Identifier', name}\n : {type: 'Literal', value: name}\n }\n\n // Only literals can be passed in `components` currently.\n // No identifiers / member expressions.\n if (result.type === 'Literal') {\n const name = /** @type {string | number} */ (result.value)\n return own.call(state.components, name) ? state.components[name] : name\n }\n\n // Assume component.\n if (state.evaluater) {\n return state.evaluater.evaluateExpression(result)\n }\n\n crashEstree(state)\n}\n\n/**\n * @param {State} state\n * @param {Position | undefined} [place]\n * @returns {never}\n */\nfunction crashEstree(state, place) {\n const message = new VFileMessage(\n 'Cannot handle MDX estrees without `createEvaluater`',\n {\n ancestors: state.ancestors,\n place,\n ruleId: 'mdx-estree',\n source: 'hast-util-to-jsx-runtime'\n }\n )\n message.file = state.filePath || undefined\n message.url = docs + '#cannot-handle-mdx-estrees-without-createevaluater'\n\n throw message\n}\n\n/**\n * Transform a DOM casing style object to a CSS casing style object.\n *\n * @param {Style} domCasing\n * @returns {Style}\n */\nfunction transformStylesToCssCasing(domCasing) {\n /** @type {Style} */\n const cssCasing = {}\n /** @type {string} */\n let from\n\n for (from in domCasing) {\n if (own.call(domCasing, from)) {\n cssCasing[transformStyleToCssCasing(from)] = domCasing[from]\n }\n }\n\n return cssCasing\n}\n\n/**\n * Transform a DOM casing style field to a CSS casing style field.\n *\n * @param {string} from\n * @returns {string}\n */\nfunction transformStyleToCssCasing(from) {\n let to = from.replace(cap, toDash)\n // Handle `ms-xxx` -> `-ms-xxx`.\n if (to.slice(0, 3) === 'ms-') to = '-' + to\n return to\n}\n\n/**\n * Make `$0` dash cased.\n *\n * @param {string} $0\n * Capitalized ASCII leter.\n * @returns {string}\n * Dash and lower letter.\n */\nfunction toDash($0) {\n return '-' + $0.toLowerCase()\n}\n","/**\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast-util-to-jsx-runtime').Options} Options\n * @typedef {import('unified').Compiler<Root, JSX.Element>} Compiler\n * @typedef {import('unified').Processor<undefined, undefined, undefined, Root, JSX.Element>} Processor\n */\n\nimport {toJsxRuntime} from 'hast-util-to-jsx-runtime'\n\n/**\n * Turn HTML into preact, react, solid, svelte, vue, etc.\n *\n * @param {Options} options\n * Configuration (required).\n * @returns {undefined}\n * Nothing.\n */\nexport default function rehypeReact(options) {\n // @ts-expect-error: TypeScript doesn’t handle `this` well.\n // eslint-disable-next-line unicorn/no-this-assignment\n const self = /** @type {Processor} */ (this)\n\n self.compiler = compiler\n\n /** @type {Compiler} */\n function compiler(tree, file) {\n return toJsxRuntime(tree, {filePath: file.path, ...options})\n }\n}\n","export default function escapeStringRegexp(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when it’s always valid, and a `\\xnn` escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n}\n","/**\n * @import {Nodes, Parents, PhrasingContent, Root, Text} from 'mdast'\n * @import {BuildVisitor, Test, VisitorResult} from 'unist-util-visit-parents'\n */\n\n/**\n * @typedef RegExpMatchObject\n * Info on the match.\n * @property {number} index\n * The index of the search at which the result was found.\n * @property {string} input\n * A copy of the search string in the text node.\n * @property {[...Array<Parents>, Text]} stack\n * All ancestors of the text node, where the last node is the text itself.\n *\n * @typedef {RegExp | string} Find\n * Pattern to find.\n *\n * Strings are escaped and then turned into global expressions.\n *\n * @typedef {Array<FindAndReplaceTuple>} FindAndReplaceList\n * Several find and replaces, in array form.\n *\n * @typedef {[Find, Replace?]} FindAndReplaceTuple\n * Find and replace in tuple form.\n *\n * @typedef {ReplaceFunction | string | null | undefined} Replace\n * Thing to replace with.\n *\n * @callback ReplaceFunction\n * Callback called when a search matches.\n * @param {...any} parameters\n * The parameters are the result of corresponding search expression:\n *\n * * `value` (`string`) — whole match\n * * `...capture` (`Array<string>`) — matches from regex capture groups\n * * `match` (`RegExpMatchObject`) — info on the match\n * @returns {Array<PhrasingContent> | PhrasingContent | string | false | null | undefined}\n * Thing to replace with.\n *\n * * when `null`, `undefined`, `''`, remove the match\n * * …or when `false`, do not replace at all\n * * …or when `string`, replace with a text node of that value\n * * …or when `Node` or `Array<Node>`, replace with those nodes\n *\n * @typedef {[RegExp, ReplaceFunction]} Pair\n * Normalized find and replace.\n *\n * @typedef {Array<Pair>} Pairs\n * All find and replaced.\n *\n * @typedef Options\n * Configuration.\n * @property {Test | null | undefined} [ignore]\n * Test for which nodes to ignore (optional).\n */\n\nimport escape from 'escape-string-regexp'\nimport {visitParents} from 'unist-util-visit-parents'\nimport {convert} from 'unist-util-is'\n\n/**\n * Find patterns in a tree and replace them.\n *\n * The algorithm searches the tree in *preorder* for complete values in `Text`\n * nodes.\n * Partial matches are not supported.\n *\n * @param {Nodes} tree\n * Tree to change.\n * @param {FindAndReplaceList | FindAndReplaceTuple} list\n * Patterns to find.\n * @param {Options | null | undefined} [options]\n * Configuration (when `find` is not `Find`).\n * @returns {undefined}\n * Nothing.\n */\nexport function findAndReplace(tree, list, options) {\n const settings = options || {}\n const ignored = convert(settings.ignore || [])\n const pairs = toPairs(list)\n let pairIndex = -1\n\n while (++pairIndex < pairs.length) {\n visitParents(tree, 'text', visitor)\n }\n\n /** @type {BuildVisitor<Root, 'text'>} */\n function visitor(node, parents) {\n let index = -1\n /** @type {Parents | undefined} */\n let grandparent\n\n while (++index < parents.length) {\n const parent = parents[index]\n /** @type {Array<Nodes> | undefined} */\n const siblings = grandparent ? grandparent.children : undefined\n\n if (\n ignored(\n parent,\n siblings ? siblings.indexOf(parent) : undefined,\n grandparent\n )\n ) {\n return\n }\n\n grandparent = parent\n }\n\n if (grandparent) {\n return handler(node, parents)\n }\n }\n\n /**\n * Handle a text node which is not in an ignored parent.\n *\n * @param {Text} node\n * Text node.\n * @param {Array<Parents>} parents\n * Parents.\n * @returns {VisitorResult}\n * Result.\n */\n function handler(node, parents) {\n const parent = parents[parents.length - 1]\n const find = pairs[pairIndex][0]\n const replace = pairs[pairIndex][1]\n let start = 0\n /** @type {Array<Nodes>} */\n const siblings = parent.children\n const index = siblings.indexOf(node)\n let change = false\n /** @type {Array<PhrasingContent>} */\n let nodes = []\n\n find.lastIndex = 0\n\n let match = find.exec(node.value)\n\n while (match) {\n const position = match.index\n /** @type {RegExpMatchObject} */\n const matchObject = {\n index: match.index,\n input: match.input,\n stack: [...parents, node]\n }\n let value = replace(...match, matchObject)\n\n if (typeof value === 'string') {\n value = value.length > 0 ? {type: 'text', value} : undefined\n }\n\n // It wasn’t a match after all.\n if (value === false) {\n // False acts as if there was no match.\n // So we need to reset `lastIndex`, which currently being at the end of\n // the current match, to the beginning.\n find.lastIndex = position + 1\n } else {\n if (start !== position) {\n nodes.push({\n type: 'text',\n value: node.value.slice(start, position)\n })\n }\n\n if (Array.isArray(value)) {\n nodes.push(...value)\n } else if (value) {\n nodes.push(value)\n }\n\n start = position + match[0].length\n change = true\n }\n\n if (!find.global) {\n break\n }\n\n match = find.exec(node.value)\n }\n\n if (change) {\n if (start < node.value.length) {\n nodes.push({type: 'text', value: node.value.slice(start)})\n }\n\n parent.children.splice(index, 1, ...nodes)\n } else {\n nodes = [node]\n }\n\n return index + nodes.length\n }\n}\n\n/**\n * Turn a tuple or a list of tuples into pairs.\n *\n * @param {FindAndReplaceList | FindAndReplaceTuple} tupleOrList\n * Schema.\n * @returns {Pairs}\n * Clean pairs.\n */\nfunction toPairs(tupleOrList) {\n /** @type {Pairs} */\n const result = []\n\n if (!Array.isArray(tupleOrList)) {\n throw new TypeError('Expected find and replace tuple or list of tuples')\n }\n\n /** @type {FindAndReplaceList} */\n // @ts-expect-error: correct.\n const list =\n !tupleOrList[0] || Array.isArray(tupleOrList[0])\n ? tupleOrList\n : [tupleOrList]\n\n let index = -1\n\n while (++index < list.length) {\n const tuple = list[index]\n result.push([toExpression(tuple[0]), toFunction(tuple[1])])\n }\n\n return result\n}\n\n/**\n * Turn a find into an expression.\n *\n * @param {Find} find\n * Find.\n * @returns {RegExp}\n * Expression.\n */\nfunction toExpression(find) {\n return typeof find === 'string' ? new RegExp(escape(find), 'g') : find\n}\n\n/**\n * Turn a replace into a function.\n *\n * @param {Replace} replace\n * Replace.\n * @returns {ReplaceFunction}\n * Function.\n */\nfunction toFunction(replace) {\n return typeof replace === 'function'\n ? replace\n : function () {\n return replace\n }\n}\n","/**\n * @typedef {import('mdast').Nodes} Nodes\n * @typedef {import('mdast-util-find-and-replace').ReplaceFunction} ReplaceFunction\n */\n\nimport {findAndReplace} from 'mdast-util-find-and-replace'\n\n/**\n * Turn normal line endings into hard breaks.\n *\n * @param {Nodes} tree\n * Tree to change.\n * @returns {undefined}\n * Nothing.\n */\nexport function newlineToBreak(tree) {\n findAndReplace(tree, [/\\r?\\n|\\r/g, replace])\n}\n\n/**\n * Replace line endings.\n *\n * @type {ReplaceFunction}\n */\nfunction replace() {\n return {type: 'break'}\n}\n","/**\n * @typedef {import('mdast').Root} Root\n */\n\nimport {newlineToBreak} from 'mdast-util-newline-to-break'\n\n/**\n * Support hard breaks without needing spaces or escapes (turns enters into\n * `<br>`s).\n *\n * @returns\n * Transform.\n */\nexport default function remarkBreaks() {\n /**\n * Transform.\n *\n * @param {Root} tree\n * Tree.\n * @returns {undefined}\n * Nothing.\n */\n return function (tree) {\n newlineToBreak(tree)\n }\n}\n","/**\n * @typedef {import('mdast').Nodes} Nodes\n *\n * @typedef Options\n * Configuration (optional).\n * @property {boolean | null | undefined} [includeImageAlt=true]\n * Whether to use `alt` for `image`s (default: `true`).\n * @property {boolean | null | undefined} [includeHtml=true]\n * Whether to use `value` of HTML (default: `true`).\n */\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Get the text content of a node or list of nodes.\n *\n * Prefers the node’s plain-text fields, otherwise serializes its children,\n * and if the given value is an array, serialize the nodes in it.\n *\n * @param {unknown} [value]\n * Thing to serialize, typically `Node`.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {string}\n * Serialized `value`.\n */\nexport function toString(value, options) {\n const settings = options || emptyOptions\n const includeImageAlt =\n typeof settings.includeImageAlt === 'boolean'\n ? settings.includeImageAlt\n : true\n const includeHtml =\n typeof settings.includeHtml === 'boolean' ? settings.includeHtml : true\n\n return one(value, includeImageAlt, includeHtml)\n}\n\n/**\n * One node or several nodes.\n *\n * @param {unknown} value\n * Thing to serialize.\n * @param {boolean} includeImageAlt\n * Include image `alt`s.\n * @param {boolean} includeHtml\n * Include HTML.\n * @returns {string}\n * Serialized node.\n */\nfunction one(value, includeImageAlt, includeHtml) {\n if (node(value)) {\n if ('value' in value) {\n return value.type === 'html' && !includeHtml ? '' : value.value\n }\n\n if (includeImageAlt && 'alt' in value && value.alt) {\n return value.alt\n }\n\n if ('children' in value) {\n return all(value.children, includeImageAlt, includeHtml)\n }\n }\n\n if (Array.isArray(value)) {\n return all(value, includeImageAlt, includeHtml)\n }\n\n return ''\n}\n\n/**\n * Serialize a list of nodes.\n *\n * @param {Array<unknown>} values\n * Thing to serialize.\n * @param {boolean} includeImageAlt\n * Include image `alt`s.\n * @param {boolean} includeHtml\n * Include HTML.\n * @returns {string}\n * Serialized nodes.\n */\nfunction all(values, includeImageAlt, includeHtml) {\n /** @type {Array<string>} */\n const result = []\n let index = -1\n\n while (++index < values.length) {\n result[index] = one(values[index], includeImageAlt, includeHtml)\n }\n\n return result.join('')\n}\n\n/**\n * Check if `value` looks like a node.\n *\n * @param {unknown} value\n * Thing.\n * @returns {value is Nodes}\n * Whether `value` is a node.\n */\nfunction node(value) {\n return Boolean(value && typeof value === 'object')\n}\n","/// <reference lib=\"dom\" />\n\n/* global document */\n\nconst element = document.createElement('i')\n\n/**\n * @param {string} value\n * @returns {string | false}\n */\nexport function decodeNamedCharacterReference(value) {\n const characterReference = '&' + value + ';'\n element.innerHTML = characterReference\n const character = element.textContent\n\n // Some named character references do not require the closing semicolon\n // (`¬`, for instance), which leads to situations where parsing the assumed\n // named reference of `¬it;` will result in the string `¬it;`.\n // When we encounter a trailing semicolon after parsing, and the character\n // reference to decode was not a semicolon (`;`), we can assume that the\n // matching was not complete.\n if (\n // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n // yield `null`.\n character.charCodeAt(character.length - 1) === 59 /* `;` */ &&\n value !== 'semi'\n ) {\n return false\n }\n\n // If the decoded string is equal to the input, the character reference was\n // not valid.\n // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n // yield `null`.\n return character === characterReference ? false : character\n}\n","/**\n * Like `Array#splice`, but smarter for giant arrays.\n *\n * `Array#splice` takes all items to be inserted as individual argument which\n * causes a stack overflow in V8 when trying to insert 100k items for instance.\n *\n * Otherwise, this does not return the removed items, and takes `items` as an\n * array instead of rest parameters.\n *\n * @template {unknown} T\n * Item type.\n * @param {Array<T>} list\n * List to operate on.\n * @param {number} start\n * Index to remove/insert at (can be negative).\n * @param {number} remove\n * Number of items to remove.\n * @param {Array<T>} items\n * Items to inject into `list`.\n * @returns {undefined}\n * Nothing.\n */\nexport function splice(list, start, remove, items) {\n const end = list.length;\n let chunkStart = 0;\n /** @type {Array<unknown>} */\n let parameters;\n\n // Make start between zero and `end` (included).\n if (start < 0) {\n start = -start > end ? 0 : end + start;\n } else {\n start = start > end ? end : start;\n }\n remove = remove > 0 ? remove : 0;\n\n // No need to chunk the items if there’s only a couple (10k) items.\n if (items.length < 10000) {\n parameters = Array.from(items);\n parameters.unshift(start, remove);\n // @ts-expect-error Hush, it’s fine.\n list.splice(...parameters);\n } else {\n // Delete `remove` items starting from `start`\n if (remove) list.splice(start, remove);\n\n // Insert the items in chunks to not cause stack overflows.\n while (chunkStart < items.length) {\n parameters = items.slice(chunkStart, chunkStart + 10000);\n parameters.unshift(start, 0);\n // @ts-expect-error Hush, it’s fine.\n list.splice(...parameters);\n chunkStart += 10000;\n start += 10000;\n }\n }\n}\n\n/**\n * Append `items` (an array) at the end of `list` (another array).\n * When `list` was empty, returns `items` instead.\n *\n * This prevents a potentially expensive operation when `list` is empty,\n * and adds items in batches to prevent V8 from hanging.\n *\n * @template {unknown} T\n * Item type.\n * @param {Array<T>} list\n * List to operate on.\n * @param {Array<T>} items\n * Items to add to `list`.\n * @returns {Array<T>}\n * Either `list` or `items`.\n */\nexport function push(list, items) {\n if (list.length > 0) {\n splice(list, list.length, 0, items);\n return list;\n }\n return items;\n}","/**\n * @import {\n * Extension,\n * Handles,\n * HtmlExtension,\n * NormalizedExtension\n * } from 'micromark-util-types'\n */\n\nimport {splice} from 'micromark-util-chunked'\n\nconst hasOwnProperty = {}.hasOwnProperty\n\n/**\n * Combine multiple syntax extensions into one.\n *\n * @param {ReadonlyArray<Extension>} extensions\n * List of syntax extensions.\n * @returns {NormalizedExtension}\n * A single combined extension.\n */\nexport function combineExtensions(extensions) {\n /** @type {NormalizedExtension} */\n const all = {}\n let index = -1\n\n while (++index < extensions.length) {\n syntaxExtension(all, extensions[index])\n }\n\n return all\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {NormalizedExtension} all\n * Extension to merge into.\n * @param {Extension} extension\n * Extension to merge.\n * @returns {undefined}\n * Nothing.\n */\nfunction syntaxExtension(all, extension) {\n /** @type {keyof Extension} */\n let hook\n\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n /** @type {Record<string, unknown>} */\n const left = maybe || (all[hook] = {})\n /** @type {Record<string, unknown> | undefined} */\n const right = extension[hook]\n /** @type {string} */\n let code\n\n if (right) {\n for (code in right) {\n if (!hasOwnProperty.call(left, code)) left[code] = []\n const value = right[code]\n constructs(\n // @ts-expect-error Looks like a list.\n left[code],\n Array.isArray(value) ? value : value ? [value] : []\n )\n }\n }\n }\n}\n\n/**\n * Merge `list` into `existing` (both lists of constructs).\n * Mutates `existing`.\n *\n * @param {Array<unknown>} existing\n * List of constructs to merge into.\n * @param {Array<unknown>} list\n * List of constructs to merge.\n * @returns {undefined}\n * Nothing.\n */\nfunction constructs(existing, list) {\n let index = -1\n /** @type {Array<unknown>} */\n const before = []\n\n while (++index < list.length) {\n // @ts-expect-error Looks like an object.\n ;(list[index].add === 'after' ? existing : before).push(list[index])\n }\n\n splice(existing, 0, 0, before)\n}\n\n/**\n * Combine multiple HTML extensions into one.\n *\n * @param {ReadonlyArray<HtmlExtension>} htmlExtensions\n * List of HTML extensions.\n * @returns {HtmlExtension}\n * Single combined HTML extension.\n */\nexport function combineHtmlExtensions(htmlExtensions) {\n /** @type {HtmlExtension} */\n const handlers = {}\n let index = -1\n\n while (++index < htmlExtensions.length) {\n htmlExtension(handlers, htmlExtensions[index])\n }\n\n return handlers\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {HtmlExtension} all\n * Extension to merge into.\n * @param {HtmlExtension} extension\n * Extension to merge.\n * @returns {undefined}\n * Nothing.\n */\nfunction htmlExtension(all, extension) {\n /** @type {keyof HtmlExtension} */\n let hook\n\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n const left = maybe || (all[hook] = {})\n const right = extension[hook]\n /** @type {keyof Handles} */\n let type\n\n if (right) {\n for (type in right) {\n // @ts-expect-error assume document vs regular handler are managed correctly.\n left[type] = right[type]\n }\n }\n }\n}\n","/**\n * Turn the number (in string form as either hexa- or plain decimal) coming from\n * a numeric character reference into a character.\n *\n * Sort of like `String.fromCodePoint(Number.parseInt(value, base))`, but makes\n * non-characters and control characters safe.\n *\n * @param {string} value\n * Value to decode.\n * @param {number} base\n * Numeric base.\n * @returns {string}\n * Character.\n */\nexport function decodeNumericCharacterReference(value, base) {\n const code = Number.parseInt(value, base);\n if (\n // C0 except for HT, LF, FF, CR, space.\n code < 9 || code === 11 || code > 13 && code < 32 ||\n // Control character (DEL) of C0, and C1 controls.\n code > 126 && code < 160 ||\n // Lone high surrogates and low surrogates.\n code > 55_295 && code < 57_344 ||\n // Noncharacters.\n code > 64_975 && code < 65_008 || /* eslint-disable no-bitwise */\n (code & 65_535) === 65_535 || (code & 65_535) === 65_534 || /* eslint-enable no-bitwise */\n // Out of range\n code > 1_114_111) {\n return \"\\uFFFD\";\n }\n return String.fromCodePoint(code);\n}","/**\n * Normalize an identifier (as found in references, definitions).\n *\n * Collapses markdown whitespace, trim, and then lower- and uppercase.\n *\n * Some characters are considered “uppercase”, such as U+03F4 (`ϴ`), but if their\n * lowercase counterpart (U+03B8 (`θ`)) is uppercased will result in a different\n * uppercase character (U+0398 (`Θ`)).\n * So, to get a canonical form, we perform both lower- and uppercase.\n *\n * Using uppercase last makes sure keys will never interact with default\n * prototypal values (such as `constructor`): nothing in the prototype of\n * `Object` is uppercase.\n *\n * @param {string} value\n * Identifier to normalize.\n * @returns {string}\n * Normalized identifier.\n */\nexport function normalizeIdentifier(value) {\n return value\n // Collapse markdown whitespace.\n .replace(/[\\t\\n\\r ]+/g, \" \")\n // Trim.\n .replace(/^ | $/g, '')\n // Some characters are considered “uppercase”, but if their lowercase\n // counterpart is uppercased will result in a different uppercase\n // character.\n // Hence, to get that form, we perform both lower- and uppercase.\n // Upper case makes sure keys will not interact with default prototypal\n // methods: no method is uppercase.\n .toLowerCase().toUpperCase();\n}","/**\n * @import {Code} from 'micromark-util-types'\n */\n\n/**\n * Check whether the character code represents an ASCII alpha (`a` through `z`,\n * case insensitive).\n *\n * An **ASCII alpha** is an ASCII upper alpha or ASCII lower alpha.\n *\n * An **ASCII upper alpha** is a character in the inclusive range U+0041 (`A`)\n * to U+005A (`Z`).\n *\n * An **ASCII lower alpha** is a character in the inclusive range U+0061 (`a`)\n * to U+007A (`z`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiAlpha = regexCheck(/[A-Za-z]/);\n\n/**\n * Check whether the character code represents an ASCII alphanumeric (`a`\n * through `z`, case insensitive, or `0` through `9`).\n *\n * An **ASCII alphanumeric** is an ASCII digit (see `asciiDigit`) or ASCII alpha\n * (see `asciiAlpha`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/);\n\n/**\n * Check whether the character code represents an ASCII atext.\n *\n * atext is an ASCII alphanumeric (see `asciiAlphanumeric`), or a character in\n * the inclusive ranges U+0023 NUMBER SIGN (`#`) to U+0027 APOSTROPHE (`'`),\n * U+002A ASTERISK (`*`), U+002B PLUS SIGN (`+`), U+002D DASH (`-`), U+002F\n * SLASH (`/`), U+003D EQUALS TO (`=`), U+003F QUESTION MARK (`?`), U+005E\n * CARET (`^`) to U+0060 GRAVE ACCENT (`` ` ``), or U+007B LEFT CURLY BRACE\n * (`{`) to U+007E TILDE (`~`).\n *\n * See:\n * **\\[RFC5322]**:\n * [Internet Message Format](https://tools.ietf.org/html/rfc5322).\n * P. Resnick.\n * IETF.\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/);\n\n/**\n * Check whether a character code is an ASCII control character.\n *\n * An **ASCII control** is a character in the inclusive range U+0000 NULL (NUL)\n * to U+001F (US), or U+007F (DEL).\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function asciiControl(code) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code !== null && (code < 32 || code === 127)\n );\n}\n\n/**\n * Check whether the character code represents an ASCII digit (`0` through `9`).\n *\n * An **ASCII digit** is a character in the inclusive range U+0030 (`0`) to\n * U+0039 (`9`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiDigit = regexCheck(/\\d/);\n\n/**\n * Check whether the character code represents an ASCII hex digit (`a` through\n * `f`, case insensitive, or `0` through `9`).\n *\n * An **ASCII hex digit** is an ASCII digit (see `asciiDigit`), ASCII upper hex\n * digit, or an ASCII lower hex digit.\n *\n * An **ASCII upper hex digit** is a character in the inclusive range U+0041\n * (`A`) to U+0046 (`F`).\n *\n * An **ASCII lower hex digit** is a character in the inclusive range U+0061\n * (`a`) to U+0066 (`f`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiHexDigit = regexCheck(/[\\dA-Fa-f]/);\n\n/**\n * Check whether the character code represents ASCII punctuation.\n *\n * An **ASCII punctuation** is a character in the inclusive ranges U+0021\n * EXCLAMATION MARK (`!`) to U+002F SLASH (`/`), U+003A COLON (`:`) to U+0040 AT\n * SIGN (`@`), U+005B LEFT SQUARE BRACKET (`[`) to U+0060 GRAVE ACCENT\n * (`` ` ``), or U+007B LEFT CURLY BRACE (`{`) to U+007E TILDE (`~`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/);\n\n/**\n * Check whether a character code is a markdown line ending.\n *\n * A **markdown line ending** is the virtual characters M-0003 CARRIAGE RETURN\n * LINE FEED (CRLF), M-0004 LINE FEED (LF) and M-0005 CARRIAGE RETURN (CR).\n *\n * In micromark, the actual character U+000A LINE FEED (LF) and U+000D CARRIAGE\n * RETURN (CR) are replaced by these virtual characters depending on whether\n * they occurred together.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownLineEnding(code) {\n return code !== null && code < -2;\n}\n\n/**\n * Check whether a character code is a markdown line ending (see\n * `markdownLineEnding`) or markdown space (see `markdownSpace`).\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownLineEndingOrSpace(code) {\n return code !== null && (code < 0 || code === 32);\n}\n\n/**\n * Check whether a character code is a markdown space.\n *\n * A **markdown space** is the concrete character U+0020 SPACE (SP) and the\n * virtual characters M-0001 VIRTUAL SPACE (VS) and M-0002 HORIZONTAL TAB (HT).\n *\n * In micromark, the actual character U+0009 CHARACTER TABULATION (HT) is\n * replaced by one M-0002 HORIZONTAL TAB (HT) and between 0 and 3 M-0001 VIRTUAL\n * SPACE (VS) characters, depending on the column at which the tab occurred.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownSpace(code) {\n return code === -2 || code === -1 || code === 32;\n}\n\n// Size note: removing ASCII from the regex and using `asciiPunctuation` here\n// In fact adds to the bundle size.\n/**\n * Check whether the character code represents Unicode punctuation.\n *\n * A **Unicode punctuation** is a character in the Unicode `Pc` (Punctuation,\n * Connector), `Pd` (Punctuation, Dash), `Pe` (Punctuation, Close), `Pf`\n * (Punctuation, Final quote), `Pi` (Punctuation, Initial quote), `Po`\n * (Punctuation, Other), or `Ps` (Punctuation, Open) categories, or an ASCII\n * punctuation (see `asciiPunctuation`).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const unicodePunctuation = regexCheck(/\\p{P}|\\p{S}/u);\n\n/**\n * Check whether the character code represents Unicode whitespace.\n *\n * Note that this does handle micromark specific markdown whitespace characters.\n * See `markdownLineEndingOrSpace` to check that.\n *\n * A **Unicode whitespace** is a character in the Unicode `Zs` (Separator,\n * Space) category, or U+0009 CHARACTER TABULATION (HT), U+000A LINE FEED (LF),\n * U+000C (FF), or U+000D CARRIAGE RETURN (CR) (**\\[UNICODE]**).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const unicodeWhitespace = regexCheck(/\\s/);\n\n/**\n * Create a code check from a regex.\n *\n * @param {RegExp} regex\n * Expression.\n * @returns {(code: Code) => boolean}\n * Check.\n */\nfunction regexCheck(regex) {\n return check;\n\n /**\n * Check whether a code matches the bound regex.\n *\n * @param {Code} code\n * Character code.\n * @returns {boolean}\n * Whether the character code matches the bound regex.\n */\n function check(code) {\n return code !== null && code > -1 && regex.test(String.fromCharCode(code));\n }\n}","import { asciiAlphanumeric } from 'micromark-util-character';\nimport { encode } from 'micromark-util-encode';\n/**\n * Make a value safe for injection as a URL.\n *\n * This encodes unsafe characters with percent-encoding and skips already\n * encoded sequences (see `normalizeUri`).\n * Further unsafe characters are encoded as character references (see\n * `micromark-util-encode`).\n *\n * A regex of allowed protocols can be given, in which case the URL is\n * sanitized.\n * For example, `/^(https?|ircs?|mailto|xmpp)$/i` can be used for `a[href]`, or\n * `/^https?$/i` for `img[src]` (this is what `github.com` allows).\n * If the URL includes an unknown protocol (one not matched by `protocol`, such\n * as a dangerous example, `javascript:`), the value is ignored.\n *\n * @param {string | null | undefined} url\n * URI to sanitize.\n * @param {RegExp | null | undefined} [protocol]\n * Allowed protocols.\n * @returns {string}\n * Sanitized URI.\n */\nexport function sanitizeUri(url, protocol) {\n const value = encode(normalizeUri(url || ''));\n if (!protocol) {\n return value;\n }\n const colon = value.indexOf(':');\n const questionMark = value.indexOf('?');\n const numberSign = value.indexOf('#');\n const slash = value.indexOf('/');\n if (\n // If there is no protocol, it’s relative.\n colon < 0 ||\n // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.\n slash > -1 && colon > slash || questionMark > -1 && colon > questionMark || numberSign > -1 && colon > numberSign ||\n // It is a protocol, it should be allowed.\n protocol.test(value.slice(0, colon))) {\n return value;\n }\n return '';\n}\n\n/**\n * Normalize a URL.\n *\n * Encode unsafe characters with percent-encoding, skipping already encoded\n * sequences.\n *\n * @param {string} value\n * URI to normalize.\n * @returns {string}\n * Normalized URI.\n */\nexport function normalizeUri(value) {\n /** @type {Array<string>} */\n const result = [];\n let index = -1;\n let start = 0;\n let skip = 0;\n while (++index < value.length) {\n const code = value.charCodeAt(index);\n /** @type {string} */\n let replace = '';\n\n // A correct percent encoded value.\n if (code === 37 && asciiAlphanumeric(value.charCodeAt(index + 1)) && asciiAlphanumeric(value.charCodeAt(index + 2))) {\n skip = 2;\n }\n // ASCII.\n else if (code < 128) {\n if (!/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(code))) {\n replace = String.fromCharCode(code);\n }\n }\n // Astral.\n else if (code > 55_295 && code < 57_344) {\n const next = value.charCodeAt(index + 1);\n\n // A correct surrogate pair.\n if (code < 56_320 && next > 56_319 && next < 57_344) {\n replace = String.fromCharCode(code, next);\n skip = 1;\n }\n // Lone surrogate.\n else {\n replace = \"\\uFFFD\";\n }\n }\n // Unicode.\n else {\n replace = String.fromCharCode(code);\n }\n if (replace) {\n result.push(value.slice(start, index), encodeURIComponent(replace));\n start = index + skip + 1;\n replace = '';\n }\n if (skip) {\n index += skip;\n skip = 0;\n }\n }\n return result.join('') + value.slice(start);\n}","/**\n * @import {Effects, State, TokenType} from 'micromark-util-types'\n */\n\nimport { markdownSpace } from 'micromark-util-character';\n\n// To do: implement `spaceOrTab`, `spaceOrTabMinMax`, `spaceOrTabWithOptions`.\n\n/**\n * Parse spaces and tabs.\n *\n * There is no `nok` parameter:\n *\n * * spaces in markdown are often optional, in which case this factory can be\n * used and `ok` will be switched to whether spaces were found or not\n * * one line ending or space can be detected with `markdownSpace(code)` right\n * before using `factorySpace`\n *\n * ###### Examples\n *\n * Where `␉` represents a tab (plus how much it expands) and `␠` represents a\n * single space.\n *\n * ```markdown\n * ␉\n * ␠␠␠␠\n * ␉␠\n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {TokenType} type\n * Type (`' \\t'`).\n * @param {number | undefined} [max=Infinity]\n * Max (exclusive).\n * @returns {State}\n * Start state.\n */\nexport function factorySpace(effects, ok, type, max) {\n const limit = max ? max - 1 : Number.POSITIVE_INFINITY;\n let size = 0;\n return start;\n\n /** @type {State} */\n function start(code) {\n if (markdownSpace(code)) {\n effects.enter(type);\n return prefix(code);\n }\n return ok(code);\n }\n\n /** @type {State} */\n function prefix(code) {\n if (markdownSpace(code) && size++ < limit) {\n effects.consume(code);\n return prefix;\n }\n effects.exit(type);\n return ok(code);\n }\n}","/**\n * @import {\n * InitialConstruct,\n * Initializer,\n * State,\n * TokenizeContext,\n * Token\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {InitialConstruct} */\nexport const content = {\n tokenize: initializeContent\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Initializer}\n * Content.\n */\nfunction initializeContent(effects) {\n const contentStart = effects.attempt(this.parser.constructs.contentInitial, afterContentStartConstruct, paragraphInitial);\n /** @type {Token} */\n let previous;\n return contentStart;\n\n /** @type {State} */\n function afterContentStartConstruct(code) {\n if (code === null) {\n effects.consume(code);\n return;\n }\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return factorySpace(effects, contentStart, \"linePrefix\");\n }\n\n /** @type {State} */\n function paragraphInitial(code) {\n effects.enter(\"paragraph\");\n return lineStart(code);\n }\n\n /** @type {State} */\n function lineStart(code) {\n const token = effects.enter(\"chunkText\", {\n contentType: \"text\",\n previous\n });\n if (previous) {\n previous.next = token;\n }\n previous = token;\n return data(code);\n }\n\n /** @type {State} */\n function data(code) {\n if (code === null) {\n effects.exit(\"chunkText\");\n effects.exit(\"paragraph\");\n effects.consume(code);\n return;\n }\n if (markdownLineEnding(code)) {\n effects.consume(code);\n effects.exit(\"chunkText\");\n return lineStart;\n }\n\n // Data.\n effects.consume(code);\n return data;\n }\n}","/**\n * @import {\n * Construct,\n * ContainerState,\n * InitialConstruct,\n * Initializer,\n * Point,\n * State,\n * TokenizeContext,\n * Tokenizer,\n * Token\n * } from 'micromark-util-types'\n */\n\n/**\n * @typedef {[Construct, ContainerState]} StackItem\n * Construct and its state.\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\nimport { splice } from 'micromark-util-chunked';\n/** @type {InitialConstruct} */\nexport const document = {\n tokenize: initializeDocument\n};\n\n/** @type {Construct} */\nconst containerConstruct = {\n tokenize: tokenizeContainer\n};\n\n/**\n * @this {TokenizeContext}\n * Self.\n * @type {Initializer}\n * Initializer.\n */\nfunction initializeDocument(effects) {\n const self = this;\n /** @type {Array<StackItem>} */\n const stack = [];\n let continued = 0;\n /** @type {TokenizeContext | undefined} */\n let childFlow;\n /** @type {Token | undefined} */\n let childToken;\n /** @type {number} */\n let lineStartOffset;\n return start;\n\n /** @type {State} */\n function start(code) {\n // First we iterate through the open blocks, starting with the root\n // document, and descending through last children down to the last open\n // block.\n // Each block imposes a condition that the line must satisfy if the block is\n // to remain open.\n // For example, a block quote requires a `>` character.\n // A paragraph requires a non-blank line.\n // In this phase we may match all or just some of the open blocks.\n // But we cannot close unmatched blocks yet, because we may have a lazy\n // continuation line.\n if (continued < stack.length) {\n const item = stack[continued];\n self.containerState = item[1];\n return effects.attempt(item[0].continuation, documentContinue, checkNewContainers)(code);\n }\n\n // Done.\n return checkNewContainers(code);\n }\n\n /** @type {State} */\n function documentContinue(code) {\n continued++;\n\n // Note: this field is called `_closeFlow` but it also closes containers.\n // Perhaps a good idea to rename it but it’s already used in the wild by\n // extensions.\n if (self.containerState._closeFlow) {\n self.containerState._closeFlow = undefined;\n if (childFlow) {\n closeFlow();\n }\n\n // Note: this algorithm for moving events around is similar to the\n // algorithm when dealing with lazy lines in `writeToChild`.\n const indexBeforeExits = self.events.length;\n let indexBeforeFlow = indexBeforeExits;\n /** @type {Point | undefined} */\n let point;\n\n // Find the flow chunk.\n while (indexBeforeFlow--) {\n if (self.events[indexBeforeFlow][0] === 'exit' && self.events[indexBeforeFlow][1].type === \"chunkFlow\") {\n point = self.events[indexBeforeFlow][1].end;\n break;\n }\n }\n exitContainers(continued);\n\n // Fix positions.\n let index = indexBeforeExits;\n while (index < self.events.length) {\n self.events[index][1].end = {\n ...point\n };\n index++;\n }\n\n // Inject the exits earlier (they’re still also at the end).\n splice(self.events, indexBeforeFlow + 1, 0, self.events.slice(indexBeforeExits));\n\n // Discard the duplicate exits.\n self.events.length = index;\n return checkNewContainers(code);\n }\n return start(code);\n }\n\n /** @type {State} */\n function checkNewContainers(code) {\n // Next, after consuming the continuation markers for existing blocks, we\n // look for new block starts (e.g. `>` for a block quote).\n // If we encounter a new block start, we close any blocks unmatched in\n // step 1 before creating the new block as a child of the last matched\n // block.\n if (continued === stack.length) {\n // No need to `check` whether there’s a container, of `exitContainers`\n // would be moot.\n // We can instead immediately `attempt` to parse one.\n if (!childFlow) {\n return documentContinued(code);\n }\n\n // If we have concrete content, such as block HTML or fenced code,\n // we can’t have containers “pierce” into them, so we can immediately\n // start.\n if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) {\n return flowStart(code);\n }\n\n // If we do have flow, it could still be a blank line,\n // but we’d be interrupting it w/ a new container if there’s a current\n // construct.\n // To do: next major: remove `_gfmTableDynamicInterruptHack` (no longer\n // needed in micromark-extension-gfm-table@1.0.6).\n self.interrupt = Boolean(childFlow.currentConstruct && !childFlow._gfmTableDynamicInterruptHack);\n }\n\n // Check if there is a new container.\n self.containerState = {};\n return effects.check(containerConstruct, thereIsANewContainer, thereIsNoNewContainer)(code);\n }\n\n /** @type {State} */\n function thereIsANewContainer(code) {\n if (childFlow) closeFlow();\n exitContainers(continued);\n return documentContinued(code);\n }\n\n /** @type {State} */\n function thereIsNoNewContainer(code) {\n self.parser.lazy[self.now().line] = continued !== stack.length;\n lineStartOffset = self.now().offset;\n return flowStart(code);\n }\n\n /** @type {State} */\n function documentContinued(code) {\n // Try new containers.\n self.containerState = {};\n return effects.attempt(containerConstruct, containerContinue, flowStart)(code);\n }\n\n /** @type {State} */\n function containerContinue(code) {\n continued++;\n stack.push([self.currentConstruct, self.containerState]);\n // Try another.\n return documentContinued(code);\n }\n\n /** @type {State} */\n function flowStart(code) {\n if (code === null) {\n if (childFlow) closeFlow();\n exitContainers(0);\n effects.consume(code);\n return;\n }\n childFlow = childFlow || self.parser.flow(self.now());\n effects.enter(\"chunkFlow\", {\n _tokenizer: childFlow,\n contentType: \"flow\",\n previous: childToken\n });\n return flowContinue(code);\n }\n\n /** @type {State} */\n function flowContinue(code) {\n if (code === null) {\n writeToChild(effects.exit(\"chunkFlow\"), true);\n exitContainers(0);\n effects.consume(code);\n return;\n }\n if (markdownLineEnding(code)) {\n effects.consume(code);\n writeToChild(effects.exit(\"chunkFlow\"));\n // Get ready for the next line.\n continued = 0;\n self.interrupt = undefined;\n return start;\n }\n effects.consume(code);\n return flowContinue;\n }\n\n /**\n * @param {Token} token\n * Token.\n * @param {boolean | undefined} [endOfFile]\n * Whether the token is at the end of the file (default: `false`).\n * @returns {undefined}\n * Nothing.\n */\n function writeToChild(token, endOfFile) {\n const stream = self.sliceStream(token);\n if (endOfFile) stream.push(null);\n token.previous = childToken;\n if (childToken) childToken.next = token;\n childToken = token;\n childFlow.defineSkip(token.start);\n childFlow.write(stream);\n\n // Alright, so we just added a lazy line:\n //\n // ```markdown\n // > a\n // b.\n //\n // Or:\n //\n // > ~~~c\n // d\n //\n // Or:\n //\n // > | e |\n // f\n // ```\n //\n // The construct in the second example (fenced code) does not accept lazy\n // lines, so it marked itself as done at the end of its first line, and\n // then the content construct parses `d`.\n // Most constructs in markdown match on the first line: if the first line\n // forms a construct, a non-lazy line can’t “unmake” it.\n //\n // The construct in the third example is potentially a GFM table, and\n // those are *weird*.\n // It *could* be a table, from the first line, if the following line\n // matches a condition.\n // In this case, that second line is lazy, which “unmakes” the first line\n // and turns the whole into one content block.\n //\n // We’ve now parsed the non-lazy and the lazy line, and can figure out\n // whether the lazy line started a new flow block.\n // If it did, we exit the current containers between the two flow blocks.\n if (self.parser.lazy[token.start.line]) {\n let index = childFlow.events.length;\n while (index--) {\n if (\n // The token starts before the line ending…\n childFlow.events[index][1].start.offset < lineStartOffset && (\n // …and either is not ended yet…\n !childFlow.events[index][1].end ||\n // …or ends after it.\n childFlow.events[index][1].end.offset > lineStartOffset)) {\n // Exit: there’s still something open, which means it’s a lazy line\n // part of something.\n return;\n }\n }\n\n // Note: this algorithm for moving events around is similar to the\n // algorithm when closing flow in `documentContinue`.\n const indexBeforeExits = self.events.length;\n let indexBeforeFlow = indexBeforeExits;\n /** @type {boolean | undefined} */\n let seen;\n /** @type {Point | undefined} */\n let point;\n\n // Find the previous chunk (the one before the lazy line).\n while (indexBeforeFlow--) {\n if (self.events[indexBeforeFlow][0] === 'exit' && self.events[indexBeforeFlow][1].type === \"chunkFlow\") {\n if (seen) {\n point = self.events[indexBeforeFlow][1].end;\n break;\n }\n seen = true;\n }\n }\n exitContainers(continued);\n\n // Fix positions.\n index = indexBeforeExits;\n while (index < self.events.length) {\n self.events[index][1].end = {\n ...point\n };\n index++;\n }\n\n // Inject the exits earlier (they’re still also at the end).\n splice(self.events, indexBeforeFlow + 1, 0, self.events.slice(indexBeforeExits));\n\n // Discard the duplicate exits.\n self.events.length = index;\n }\n }\n\n /**\n * @param {number} size\n * Size.\n * @returns {undefined}\n * Nothing.\n */\n function exitContainers(size) {\n let index = stack.length;\n\n // Exit open containers.\n while (index-- > size) {\n const entry = stack[index];\n self.containerState = entry[1];\n entry[0].exit.call(self, effects);\n }\n stack.length = size;\n }\n function closeFlow() {\n childFlow.write([null]);\n childToken = undefined;\n childFlow = undefined;\n self.containerState._closeFlow = undefined;\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n * Tokenizer.\n */\nfunction tokenizeContainer(effects, ok, nok) {\n // Always populated by defaults.\n\n return factorySpace(effects, effects.attempt(this.parser.constructs.document, ok, nok), \"linePrefix\", this.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4);\n}","/**\n * @import {Code} from 'micromark-util-types'\n */\n\nimport { markdownLineEndingOrSpace, unicodePunctuation, unicodeWhitespace } from 'micromark-util-character';\n/**\n * Classify whether a code represents whitespace, punctuation, or something\n * else.\n *\n * Used for attention (emphasis, strong), whose sequences can open or close\n * based on the class of surrounding characters.\n *\n * > 👉 **Note**: eof (`null`) is seen as whitespace.\n *\n * @param {Code} code\n * Code.\n * @returns {typeof constants.characterGroupWhitespace | typeof constants.characterGroupPunctuation | undefined}\n * Group.\n */\nexport function classifyCharacter(code) {\n if (code === null || markdownLineEndingOrSpace(code) || unicodeWhitespace(code)) {\n return 1;\n }\n if (unicodePunctuation(code)) {\n return 2;\n }\n}","/**\n * @import {Event, Resolver, TokenizeContext} from 'micromark-util-types'\n */\n\n/**\n * Call all `resolveAll`s.\n *\n * @param {ReadonlyArray<{resolveAll?: Resolver | undefined}>} constructs\n * List of constructs, optionally with `resolveAll`s.\n * @param {Array<Event>} events\n * List of events.\n * @param {TokenizeContext} context\n * Context used by `tokenize`.\n * @returns {Array<Event>}\n * Changed events.\n */\nexport function resolveAll(constructs, events, context) {\n /** @type {Array<Resolver>} */\n const called = []\n let index = -1\n\n while (++index < constructs.length) {\n const resolve = constructs[index].resolveAll\n\n if (resolve && !called.includes(resolve)) {\n events = resolve(events, context)\n called.push(resolve)\n }\n }\n\n return events\n}\n","/**\n * @import {\n * Code,\n * Construct,\n * Event,\n * Point,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer,\n * Token\n * } from 'micromark-util-types'\n */\n\nimport { push, splice } from 'micromark-util-chunked';\nimport { classifyCharacter } from 'micromark-util-classify-character';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/** @type {Construct} */\nexport const attention = {\n name: 'attention',\n resolveAll: resolveAllAttention,\n tokenize: tokenizeAttention\n};\n\n/**\n * Take all events and resolve attention to emphasis or strong.\n *\n * @type {Resolver}\n */\n// eslint-disable-next-line complexity\nfunction resolveAllAttention(events, context) {\n let index = -1;\n /** @type {number} */\n let open;\n /** @type {Token} */\n let group;\n /** @type {Token} */\n let text;\n /** @type {Token} */\n let openingSequence;\n /** @type {Token} */\n let closingSequence;\n /** @type {number} */\n let use;\n /** @type {Array<Event>} */\n let nextEvents;\n /** @type {number} */\n let offset;\n\n // Walk through all events.\n //\n // Note: performance of this is fine on an mb of normal markdown, but it’s\n // a bottleneck for malicious stuff.\n while (++index < events.length) {\n // Find a token that can close.\n if (events[index][0] === 'enter' && events[index][1].type === 'attentionSequence' && events[index][1]._close) {\n open = index;\n\n // Now walk back to find an opener.\n while (open--) {\n // Find a token that can open the closer.\n if (events[open][0] === 'exit' && events[open][1].type === 'attentionSequence' && events[open][1]._open &&\n // If the markers are the same:\n context.sliceSerialize(events[open][1]).charCodeAt(0) === context.sliceSerialize(events[index][1]).charCodeAt(0)) {\n // If the opening can close or the closing can open,\n // and the close size *is not* a multiple of three,\n // but the sum of the opening and closing size *is* multiple of three,\n // then don’t match.\n if ((events[open][1]._close || events[index][1]._open) && (events[index][1].end.offset - events[index][1].start.offset) % 3 && !((events[open][1].end.offset - events[open][1].start.offset + events[index][1].end.offset - events[index][1].start.offset) % 3)) {\n continue;\n }\n\n // Number of markers to use from the sequence.\n use = events[open][1].end.offset - events[open][1].start.offset > 1 && events[index][1].end.offset - events[index][1].start.offset > 1 ? 2 : 1;\n const start = {\n ...events[open][1].end\n };\n const end = {\n ...events[index][1].start\n };\n movePoint(start, -use);\n movePoint(end, use);\n openingSequence = {\n type: use > 1 ? \"strongSequence\" : \"emphasisSequence\",\n start,\n end: {\n ...events[open][1].end\n }\n };\n closingSequence = {\n type: use > 1 ? \"strongSequence\" : \"emphasisSequence\",\n start: {\n ...events[index][1].start\n },\n end\n };\n text = {\n type: use > 1 ? \"strongText\" : \"emphasisText\",\n start: {\n ...events[open][1].end\n },\n end: {\n ...events[index][1].start\n }\n };\n group = {\n type: use > 1 ? \"strong\" : \"emphasis\",\n start: {\n ...openingSequence.start\n },\n end: {\n ...closingSequence.end\n }\n };\n events[open][1].end = {\n ...openingSequence.start\n };\n events[index][1].start = {\n ...closingSequence.end\n };\n nextEvents = [];\n\n // If there are more markers in the opening, add them before.\n if (events[open][1].end.offset - events[open][1].start.offset) {\n nextEvents = push(nextEvents, [['enter', events[open][1], context], ['exit', events[open][1], context]]);\n }\n\n // Opening.\n nextEvents = push(nextEvents, [['enter', group, context], ['enter', openingSequence, context], ['exit', openingSequence, context], ['enter', text, context]]);\n\n // Always populated by defaults.\n\n // Between.\n nextEvents = push(nextEvents, resolveAll(context.parser.constructs.insideSpan.null, events.slice(open + 1, index), context));\n\n // Closing.\n nextEvents = push(nextEvents, [['exit', text, context], ['enter', closingSequence, context], ['exit', closingSequence, context], ['exit', group, context]]);\n\n // If there are more markers in the closing, add them after.\n if (events[index][1].end.offset - events[index][1].start.offset) {\n offset = 2;\n nextEvents = push(nextEvents, [['enter', events[index][1], context], ['exit', events[index][1], context]]);\n } else {\n offset = 0;\n }\n splice(events, open - 1, index - open + 3, nextEvents);\n index = open + nextEvents.length - offset - 2;\n break;\n }\n }\n }\n }\n\n // Remove remaining sequences.\n index = -1;\n while (++index < events.length) {\n if (events[index][1].type === 'attentionSequence') {\n events[index][1].type = 'data';\n }\n }\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeAttention(effects, ok) {\n const attentionMarkers = this.parser.constructs.attentionMarkers.null;\n const previous = this.previous;\n const before = classifyCharacter(previous);\n\n /** @type {NonNullable<Code>} */\n let marker;\n return start;\n\n /**\n * Before a sequence.\n *\n * ```markdown\n * > | **\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n marker = code;\n effects.enter('attentionSequence');\n return inside(code);\n }\n\n /**\n * In a sequence.\n *\n * ```markdown\n * > | **\n * ^^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code);\n return inside;\n }\n const token = effects.exit('attentionSequence');\n\n // To do: next major: move this to resolver, just like `markdown-rs`.\n const after = classifyCharacter(code);\n\n // Always populated by defaults.\n\n const open = !after || after === 2 && before || attentionMarkers.includes(code);\n const close = !before || before === 2 && after || attentionMarkers.includes(previous);\n token._open = Boolean(marker === 42 ? open : open && (before || !close));\n token._close = Boolean(marker === 42 ? close : close && (after || !open));\n return ok(code);\n }\n}\n\n/**\n * Move a point a bit.\n *\n * Note: `move` only works inside lines! It’s not possible to move past other\n * chunks (replacement characters, tabs, or line endings).\n *\n * @param {Point} point\n * Point.\n * @param {number} offset\n * Amount to move.\n * @returns {undefined}\n * Nothing.\n */\nfunction movePoint(point, offset) {\n point.column += offset;\n point.offset += offset;\n point._bufferIndex += offset;\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { asciiAlphanumeric, asciiAlpha, asciiAtext, asciiControl } from 'micromark-util-character';\n/** @type {Construct} */\nexport const autolink = {\n name: 'autolink',\n tokenize: tokenizeAutolink\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeAutolink(effects, ok, nok) {\n let size = 0;\n return start;\n\n /**\n * Start of an autolink.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<user@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"autolink\");\n effects.enter(\"autolinkMarker\");\n effects.consume(code);\n effects.exit(\"autolinkMarker\");\n effects.enter(\"autolinkProtocol\");\n return open;\n }\n\n /**\n * After `<`, at protocol or atext.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<user@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (asciiAlpha(code)) {\n effects.consume(code);\n return schemeOrEmailAtext;\n }\n if (code === 64) {\n return nok(code);\n }\n return emailAtext(code);\n }\n\n /**\n * At second byte of protocol or atext.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<user@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeOrEmailAtext(code) {\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) {\n // Count the previous alphabetical from `open` too.\n size = 1;\n return schemeInsideOrEmailAtext(code);\n }\n return emailAtext(code);\n }\n\n /**\n * In ambiguous protocol or atext.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<user@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeInsideOrEmailAtext(code) {\n if (code === 58) {\n effects.consume(code);\n size = 0;\n return urlInside;\n }\n\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if ((code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) && size++ < 32) {\n effects.consume(code);\n return schemeInsideOrEmailAtext;\n }\n size = 0;\n return emailAtext(code);\n }\n\n /**\n * After protocol, in URL.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function urlInside(code) {\n if (code === 62) {\n effects.exit(\"autolinkProtocol\");\n effects.enter(\"autolinkMarker\");\n effects.consume(code);\n effects.exit(\"autolinkMarker\");\n effects.exit(\"autolink\");\n return ok;\n }\n\n // ASCII control, space, or `<`.\n if (code === null || code === 32 || code === 60 || asciiControl(code)) {\n return nok(code);\n }\n effects.consume(code);\n return urlInside;\n }\n\n /**\n * In email atext.\n *\n * ```markdown\n * > | a<user.name@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailAtext(code) {\n if (code === 64) {\n effects.consume(code);\n return emailAtSignOrDot;\n }\n if (asciiAtext(code)) {\n effects.consume(code);\n return emailAtext;\n }\n return nok(code);\n }\n\n /**\n * In label, after at-sign or dot.\n *\n * ```markdown\n * > | a<user.name@example.com>b\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function emailAtSignOrDot(code) {\n return asciiAlphanumeric(code) ? emailLabel(code) : nok(code);\n }\n\n /**\n * In label, where `.` and `>` are allowed.\n *\n * ```markdown\n * > | a<user.name@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailLabel(code) {\n if (code === 46) {\n effects.consume(code);\n size = 0;\n return emailAtSignOrDot;\n }\n if (code === 62) {\n // Exit, then change the token type.\n effects.exit(\"autolinkProtocol\").type = \"autolinkEmail\";\n effects.enter(\"autolinkMarker\");\n effects.consume(code);\n effects.exit(\"autolinkMarker\");\n effects.exit(\"autolink\");\n return ok;\n }\n return emailValue(code);\n }\n\n /**\n * In label, where `.` and `>` are *not* allowed.\n *\n * Though, this is also used in `emailLabel` to parse other values.\n *\n * ```markdown\n * > | a<user.name@ex-ample.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailValue(code) {\n // ASCII alphanumeric or `-`.\n if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {\n const next = code === 45 ? emailValue : emailLabel;\n effects.consume(code);\n return next;\n }\n return nok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const blankLine = {\n partial: true,\n tokenize: tokenizeBlankLine\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLine(effects, ok, nok) {\n return start;\n\n /**\n * Start of blank line.\n *\n * > 👉 **Note**: `␠` represents a space character.\n *\n * ```markdown\n * > | ␠␠␊\n * ^\n * > | ␊\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n return markdownSpace(code) ? factorySpace(effects, after, \"linePrefix\")(code) : after(code);\n }\n\n /**\n * At eof/eol, after optional whitespace.\n *\n * > 👉 **Note**: `␠` represents a space character.\n *\n * ```markdown\n * > | ␠␠␊\n * ^\n * > | ␊\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code);\n }\n}","/**\n * @import {\n * Construct,\n * Exiter,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const blockQuote = {\n continuation: {\n tokenize: tokenizeBlockQuoteContinuation\n },\n exit,\n name: 'blockQuote',\n tokenize: tokenizeBlockQuoteStart\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeBlockQuoteStart(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * Start of block quote.\n *\n * ```markdown\n * > | > a\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (code === 62) {\n const state = self.containerState;\n if (!state.open) {\n effects.enter(\"blockQuote\", {\n _container: true\n });\n state.open = true;\n }\n effects.enter(\"blockQuotePrefix\");\n effects.enter(\"blockQuoteMarker\");\n effects.consume(code);\n effects.exit(\"blockQuoteMarker\");\n return after;\n }\n return nok(code);\n }\n\n /**\n * After `>`, before optional whitespace.\n *\n * ```markdown\n * > | > a\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (markdownSpace(code)) {\n effects.enter(\"blockQuotePrefixWhitespace\");\n effects.consume(code);\n effects.exit(\"blockQuotePrefixWhitespace\");\n effects.exit(\"blockQuotePrefix\");\n return ok;\n }\n effects.exit(\"blockQuotePrefix\");\n return ok(code);\n }\n}\n\n/**\n * Start of block quote continuation.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeBlockQuoteContinuation(effects, ok, nok) {\n const self = this;\n return contStart;\n\n /**\n * Start of block quote continuation.\n *\n * Also used to parse the first block quote opening.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @type {State}\n */\n function contStart(code) {\n if (markdownSpace(code)) {\n // Always populated by defaults.\n\n return factorySpace(effects, contBefore, \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code);\n }\n return contBefore(code);\n }\n\n /**\n * At `>`, after optional whitespace.\n *\n * Also used to parse the first block quote opening.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @type {State}\n */\n function contBefore(code) {\n return effects.attempt(blockQuote, ok, nok)(code);\n }\n}\n\n/** @type {Exiter} */\nfunction exit(effects) {\n effects.exit(\"blockQuote\");\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { asciiPunctuation } from 'micromark-util-character';\n/** @type {Construct} */\nexport const characterEscape = {\n name: 'characterEscape',\n tokenize: tokenizeCharacterEscape\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n return start;\n\n /**\n * Start of character escape.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"characterEscape\");\n effects.enter(\"escapeMarker\");\n effects.consume(code);\n effects.exit(\"escapeMarker\");\n return inside;\n }\n\n /**\n * After `\\`, at punctuation.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n // ASCII punctuation.\n if (asciiPunctuation(code)) {\n effects.enter(\"characterEscapeValue\");\n effects.consume(code);\n effects.exit(\"characterEscapeValue\");\n effects.exit(\"characterEscape\");\n return ok;\n }\n return nok(code);\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { asciiAlphanumeric, asciiDigit, asciiHexDigit } from 'micromark-util-character';\n/** @type {Construct} */\nexport const characterReference = {\n name: 'characterReference',\n tokenize: tokenizeCharacterReference\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterReference(effects, ok, nok) {\n const self = this;\n let size = 0;\n /** @type {number} */\n let max;\n /** @type {(code: Code) => boolean} */\n let test;\n return start;\n\n /**\n * Start of character reference.\n *\n * ```markdown\n * > | a&b\n * ^\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"characterReference\");\n effects.enter(\"characterReferenceMarker\");\n effects.consume(code);\n effects.exit(\"characterReferenceMarker\");\n return open;\n }\n\n /**\n * After `&`, at `#` for numeric references or alphanumeric for named\n * references.\n *\n * ```markdown\n * > | a&b\n * ^\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 35) {\n effects.enter(\"characterReferenceMarkerNumeric\");\n effects.consume(code);\n effects.exit(\"characterReferenceMarkerNumeric\");\n return numeric;\n }\n effects.enter(\"characterReferenceValue\");\n max = 31;\n test = asciiAlphanumeric;\n return value(code);\n }\n\n /**\n * After `#`, at `x` for hexadecimals or digit for decimals.\n *\n * ```markdown\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function numeric(code) {\n if (code === 88 || code === 120) {\n effects.enter(\"characterReferenceMarkerHexadecimal\");\n effects.consume(code);\n effects.exit(\"characterReferenceMarkerHexadecimal\");\n effects.enter(\"characterReferenceValue\");\n max = 6;\n test = asciiHexDigit;\n return value;\n }\n effects.enter(\"characterReferenceValue\");\n max = 7;\n test = asciiDigit;\n return value(code);\n }\n\n /**\n * After markers (`&#x`, `&#`, or `&`), in value, before `;`.\n *\n * The character reference kind defines what and how many characters are\n * allowed.\n *\n * ```markdown\n * > | a&b\n * ^^^\n * > | a{b\n * ^^^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function value(code) {\n if (code === 59 && size) {\n const token = effects.exit(\"characterReferenceValue\");\n if (test === asciiAlphanumeric && !decodeNamedCharacterReference(self.sliceSerialize(token))) {\n return nok(code);\n }\n\n // To do: `markdown-rs` uses a different name:\n // `CharacterReferenceMarkerSemi`.\n effects.enter(\"characterReferenceMarker\");\n effects.consume(code);\n effects.exit(\"characterReferenceMarker\");\n effects.exit(\"characterReference\");\n return ok;\n }\n if (test(code) && size++ < max) {\n effects.consume(code);\n return value;\n }\n return nok(code);\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nconst nonLazyContinuation = {\n partial: true,\n tokenize: tokenizeNonLazyContinuation\n};\n\n/** @type {Construct} */\nexport const codeFenced = {\n concrete: true,\n name: 'codeFenced',\n tokenize: tokenizeCodeFenced\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeCodeFenced(effects, ok, nok) {\n const self = this;\n /** @type {Construct} */\n const closeStart = {\n partial: true,\n tokenize: tokenizeCloseStart\n };\n let initialPrefix = 0;\n let sizeOpen = 0;\n /** @type {NonNullable<Code>} */\n let marker;\n return start;\n\n /**\n * Start of code.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse whitespace like `markdown-rs`.\n return beforeSequenceOpen(code);\n }\n\n /**\n * In opening fence, after prefix, at sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeSequenceOpen(code) {\n const tail = self.events[self.events.length - 1];\n initialPrefix = tail && tail[1].type === \"linePrefix\" ? tail[2].sliceSerialize(tail[1], true).length : 0;\n marker = code;\n effects.enter(\"codeFenced\");\n effects.enter(\"codeFencedFence\");\n effects.enter(\"codeFencedFenceSequence\");\n return sequenceOpen(code);\n }\n\n /**\n * In opening fence sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === marker) {\n sizeOpen++;\n effects.consume(code);\n return sequenceOpen;\n }\n if (sizeOpen < 3) {\n return nok(code);\n }\n effects.exit(\"codeFencedFenceSequence\");\n return markdownSpace(code) ? factorySpace(effects, infoBefore, \"whitespace\")(code) : infoBefore(code);\n }\n\n /**\n * In opening fence, after the sequence (and optional whitespace), before info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function infoBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"codeFencedFence\");\n return self.interrupt ? ok(code) : effects.check(nonLazyContinuation, atNonLazyBreak, after)(code);\n }\n effects.enter(\"codeFencedFenceInfo\");\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return info(code);\n }\n\n /**\n * In info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function info(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"chunkString\");\n effects.exit(\"codeFencedFenceInfo\");\n return infoBefore(code);\n }\n if (markdownSpace(code)) {\n effects.exit(\"chunkString\");\n effects.exit(\"codeFencedFenceInfo\");\n return factorySpace(effects, metaBefore, \"whitespace\")(code);\n }\n if (code === 96 && code === marker) {\n return nok(code);\n }\n effects.consume(code);\n return info;\n }\n\n /**\n * In opening fence, after info and whitespace, before meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function metaBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n return infoBefore(code);\n }\n effects.enter(\"codeFencedFenceMeta\");\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return meta(code);\n }\n\n /**\n * In meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function meta(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"chunkString\");\n effects.exit(\"codeFencedFenceMeta\");\n return infoBefore(code);\n }\n if (code === 96 && code === marker) {\n return nok(code);\n }\n effects.consume(code);\n return meta;\n }\n\n /**\n * At eol/eof in code, before a non-lazy closing fence or content.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function atNonLazyBreak(code) {\n return effects.attempt(closeStart, after, contentBefore)(code);\n }\n\n /**\n * Before code content, not a closing fence, at eol.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentBefore(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return contentStart;\n }\n\n /**\n * Before code content, not a closing fence.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentStart(code) {\n return initialPrefix > 0 && markdownSpace(code) ? factorySpace(effects, beforeContentChunk, \"linePrefix\", initialPrefix + 1)(code) : beforeContentChunk(code);\n }\n\n /**\n * Before code content, after optional prefix.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeContentChunk(code) {\n if (code === null || markdownLineEnding(code)) {\n return effects.check(nonLazyContinuation, atNonLazyBreak, after)(code);\n }\n effects.enter(\"codeFlowValue\");\n return contentChunk(code);\n }\n\n /**\n * In code content.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^^^^^^^^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentChunk(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"codeFlowValue\");\n return beforeContentChunk(code);\n }\n effects.consume(code);\n return contentChunk;\n }\n\n /**\n * After code.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n effects.exit(\"codeFenced\");\n return ok(code);\n }\n\n /**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\n function tokenizeCloseStart(effects, ok, nok) {\n let size = 0;\n return startBefore;\n\n /**\n *\n *\n * @type {State}\n */\n function startBefore(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return start;\n }\n\n /**\n * Before closing fence, at optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Always populated by defaults.\n\n // To do: `enter` here or in next state?\n effects.enter(\"codeFencedFence\");\n return markdownSpace(code) ? factorySpace(effects, beforeSequenceClose, \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code) : beforeSequenceClose(code);\n }\n\n /**\n * In closing fence, after optional whitespace, at sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function beforeSequenceClose(code) {\n if (code === marker) {\n effects.enter(\"codeFencedFenceSequence\");\n return sequenceClose(code);\n }\n return nok(code);\n }\n\n /**\n * In closing fence sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n if (code === marker) {\n size++;\n effects.consume(code);\n return sequenceClose;\n }\n if (size >= sizeOpen) {\n effects.exit(\"codeFencedFenceSequence\");\n return markdownSpace(code) ? factorySpace(effects, sequenceCloseAfter, \"whitespace\")(code) : sequenceCloseAfter(code);\n }\n return nok(code);\n }\n\n /**\n * After closing fence sequence, after optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceCloseAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"codeFencedFence\");\n return ok(code);\n }\n return nok(code);\n }\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuation(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n *\n *\n * @type {State}\n */\n function start(code) {\n if (code === null) {\n return nok(code);\n }\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return lineStart;\n }\n\n /**\n *\n *\n * @type {State}\n */\n function lineStart(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const codeIndented = {\n name: 'codeIndented',\n tokenize: tokenizeCodeIndented\n};\n\n/** @type {Construct} */\nconst furtherStart = {\n partial: true,\n tokenize: tokenizeFurtherStart\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeCodeIndented(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * Start of code (indented).\n *\n * > **Parsing note**: it is not needed to check if this first line is a\n * > filled line (that it has a non-whitespace character), because blank lines\n * > are parsed already, so we never run into that.\n *\n * ```markdown\n * > | aaa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: manually check if interrupting like `markdown-rs`.\n\n effects.enter(\"codeIndented\");\n // To do: use an improved `space_or_tab` function like `markdown-rs`,\n // so that we can drop the next state.\n return factorySpace(effects, afterPrefix, \"linePrefix\", 4 + 1)(code);\n }\n\n /**\n * At start, after 1 or 4 spaces.\n *\n * ```markdown\n * > | aaa\n * ^\n * ```\n *\n * @type {State}\n */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1];\n return tail && tail[1].type === \"linePrefix\" && tail[2].sliceSerialize(tail[1], true).length >= 4 ? atBreak(code) : nok(code);\n }\n\n /**\n * At a break.\n *\n * ```markdown\n * > | aaa\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === null) {\n return after(code);\n }\n if (markdownLineEnding(code)) {\n return effects.attempt(furtherStart, atBreak, after)(code);\n }\n effects.enter(\"codeFlowValue\");\n return inside(code);\n }\n\n /**\n * In code content.\n *\n * ```markdown\n * > | aaa\n * ^^^^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"codeFlowValue\");\n return atBreak(code);\n }\n effects.consume(code);\n return inside;\n }\n\n /** @type {State} */\n function after(code) {\n effects.exit(\"codeIndented\");\n // To do: allow interrupting like `markdown-rs`.\n // Feel free to interrupt.\n // tokenizer.interrupt = false\n return ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeFurtherStart(effects, ok, nok) {\n const self = this;\n return furtherStart;\n\n /**\n * At eol, trying to parse another indent.\n *\n * ```markdown\n * > | aaa\n * ^\n * | bbb\n * ```\n *\n * @type {State}\n */\n function furtherStart(code) {\n // To do: improve `lazy` / `pierce` handling.\n // If this is a lazy line, it can’t be code.\n if (self.parser.lazy[self.now().line]) {\n return nok(code);\n }\n if (markdownLineEnding(code)) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return furtherStart;\n }\n\n // To do: the code here in `micromark-js` is a bit different from\n // `markdown-rs` because there it can attempt spaces.\n // We can’t yet.\n //\n // To do: use an improved `space_or_tab` function like `markdown-rs`,\n // so that we can drop the next state.\n return factorySpace(effects, afterPrefix, \"linePrefix\", 4 + 1)(code);\n }\n\n /**\n * At start, after 1 or 4 spaces.\n *\n * ```markdown\n * > | aaa\n * ^\n * ```\n *\n * @type {State}\n */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1];\n return tail && tail[1].type === \"linePrefix\" && tail[2].sliceSerialize(tail[1], true).length >= 4 ? ok(code) : markdownLineEnding(code) ? furtherStart(code) : nok(code);\n }\n}","/**\n * @import {\n * Construct,\n * Previous,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer,\n * Token\n * } from 'micromark-util-types'\n */\n\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const codeText = {\n name: 'codeText',\n previous,\n resolve: resolveCodeText,\n tokenize: tokenizeCodeText\n};\n\n// To do: next major: don’t resolve, like `markdown-rs`.\n/** @type {Resolver} */\nfunction resolveCodeText(events) {\n let tailExitIndex = events.length - 4;\n let headEnterIndex = 3;\n /** @type {number} */\n let index;\n /** @type {number | undefined} */\n let enter;\n\n // If we start and end with an EOL or a space.\n if ((events[headEnterIndex][1].type === \"lineEnding\" || events[headEnterIndex][1].type === 'space') && (events[tailExitIndex][1].type === \"lineEnding\" || events[tailExitIndex][1].type === 'space')) {\n index = headEnterIndex;\n\n // And we have data.\n while (++index < tailExitIndex) {\n if (events[index][1].type === \"codeTextData\") {\n // Then we have padding.\n events[headEnterIndex][1].type = \"codeTextPadding\";\n events[tailExitIndex][1].type = \"codeTextPadding\";\n headEnterIndex += 2;\n tailExitIndex -= 2;\n break;\n }\n }\n }\n\n // Merge adjacent spaces and data.\n index = headEnterIndex - 1;\n tailExitIndex++;\n while (++index <= tailExitIndex) {\n if (enter === undefined) {\n if (index !== tailExitIndex && events[index][1].type !== \"lineEnding\") {\n enter = index;\n }\n } else if (index === tailExitIndex || events[index][1].type === \"lineEnding\") {\n events[enter][1].type = \"codeTextData\";\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end;\n events.splice(enter + 2, index - enter - 2);\n tailExitIndex -= index - enter - 2;\n index = enter + 2;\n }\n enter = undefined;\n }\n }\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Previous}\n */\nfunction previous(code) {\n // If there is a previous code, there will always be a tail.\n return code !== 96 || this.events[this.events.length - 1][1].type === \"characterEscape\";\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeCodeText(effects, ok, nok) {\n const self = this;\n let sizeOpen = 0;\n /** @type {number} */\n let size;\n /** @type {Token} */\n let token;\n return start;\n\n /**\n * Start of code (text).\n *\n * ```markdown\n * > | `a`\n * ^\n * > | \\`a`\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"codeText\");\n effects.enter(\"codeTextSequence\");\n return sequenceOpen(code);\n }\n\n /**\n * In opening sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === 96) {\n effects.consume(code);\n sizeOpen++;\n return sequenceOpen;\n }\n effects.exit(\"codeTextSequence\");\n return between(code);\n }\n\n /**\n * Between something and something else.\n *\n * ```markdown\n * > | `a`\n * ^^\n * ```\n *\n * @type {State}\n */\n function between(code) {\n // EOF.\n if (code === null) {\n return nok(code);\n }\n\n // To do: next major: don’t do spaces in resolve, but when compiling,\n // like `markdown-rs`.\n // Tabs don’t work, and virtual spaces don’t make sense.\n if (code === 32) {\n effects.enter('space');\n effects.consume(code);\n effects.exit('space');\n return between;\n }\n\n // Closing fence? Could also be data.\n if (code === 96) {\n token = effects.enter(\"codeTextSequence\");\n size = 0;\n return sequenceClose(code);\n }\n if (markdownLineEnding(code)) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return between;\n }\n\n // Data.\n effects.enter(\"codeTextData\");\n return data(code);\n }\n\n /**\n * In data.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function data(code) {\n if (code === null || code === 32 || code === 96 || markdownLineEnding(code)) {\n effects.exit(\"codeTextData\");\n return between(code);\n }\n effects.consume(code);\n return data;\n }\n\n /**\n * In closing sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n // More.\n if (code === 96) {\n effects.consume(code);\n size++;\n return sequenceClose;\n }\n\n // Done!\n if (size === sizeOpen) {\n effects.exit(\"codeTextSequence\");\n effects.exit(\"codeText\");\n return ok(code);\n }\n\n // More or less accents: mark as data.\n token.type = \"codeTextData\";\n return data(code);\n }\n}","/**\n * Some of the internal operations of micromark do lots of editing\n * operations on very large arrays. This runs into problems with two\n * properties of most circa-2020 JavaScript interpreters:\n *\n * - Array-length modifications at the high end of an array (push/pop) are\n * expected to be common and are implemented in (amortized) time\n * proportional to the number of elements added or removed, whereas\n * other operations (shift/unshift and splice) are much less efficient.\n * - Function arguments are passed on the stack, so adding tens of thousands\n * of elements to an array with `arr.push(...newElements)` will frequently\n * cause stack overflows. (see <https://stackoverflow.com/questions/22123769/rangeerror-maximum-call-stack-size-exceeded-why>)\n *\n * SpliceBuffers are an implementation of gap buffers, which are a\n * generalization of the \"queue made of two stacks\" idea. The splice buffer\n * maintains a cursor, and moving the cursor has cost proportional to the\n * distance the cursor moves, but inserting, deleting, or splicing in\n * new information at the cursor is as efficient as the push/pop operation.\n * This allows for an efficient sequence of splices (or pushes, pops, shifts,\n * or unshifts) as long such edits happen at the same part of the array or\n * generally sweep through the array from the beginning to the end.\n *\n * The interface for splice buffers also supports large numbers of inputs by\n * passing a single array argument rather passing multiple arguments on the\n * function call stack.\n *\n * @template T\n * Item type.\n */\nexport class SpliceBuffer {\n /**\n * @param {ReadonlyArray<T> | null | undefined} [initial]\n * Initial items (optional).\n * @returns\n * Splice buffer.\n */\n constructor(initial) {\n /** @type {Array<T>} */\n this.left = initial ? [...initial] : [];\n /** @type {Array<T>} */\n this.right = [];\n }\n\n /**\n * Array access;\n * does not move the cursor.\n *\n * @param {number} index\n * Index.\n * @return {T}\n * Item.\n */\n get(index) {\n if (index < 0 || index >= this.left.length + this.right.length) {\n throw new RangeError('Cannot access index `' + index + '` in a splice buffer of size `' + (this.left.length + this.right.length) + '`');\n }\n if (index < this.left.length) return this.left[index];\n return this.right[this.right.length - index + this.left.length - 1];\n }\n\n /**\n * The length of the splice buffer, one greater than the largest index in the\n * array.\n */\n get length() {\n return this.left.length + this.right.length;\n }\n\n /**\n * Remove and return `list[0]`;\n * moves the cursor to `0`.\n *\n * @returns {T | undefined}\n * Item, optional.\n */\n shift() {\n this.setCursor(0);\n return this.right.pop();\n }\n\n /**\n * Slice the buffer to get an array;\n * does not move the cursor.\n *\n * @param {number} start\n * Start.\n * @param {number | null | undefined} [end]\n * End (optional).\n * @returns {Array<T>}\n * Array of items.\n */\n slice(start, end) {\n /** @type {number} */\n const stop = end === null || end === undefined ? Number.POSITIVE_INFINITY : end;\n if (stop < this.left.length) {\n return this.left.slice(start, stop);\n }\n if (start > this.left.length) {\n return this.right.slice(this.right.length - stop + this.left.length, this.right.length - start + this.left.length).reverse();\n }\n return this.left.slice(start).concat(this.right.slice(this.right.length - stop + this.left.length).reverse());\n }\n\n /**\n * Mimics the behavior of Array.prototype.splice() except for the change of\n * interface necessary to avoid segfaults when patching in very large arrays.\n *\n * This operation moves cursor is moved to `start` and results in the cursor\n * placed after any inserted items.\n *\n * @param {number} start\n * Start;\n * zero-based index at which to start changing the array;\n * negative numbers count backwards from the end of the array and values\n * that are out-of bounds are clamped to the appropriate end of the array.\n * @param {number | null | undefined} [deleteCount=0]\n * Delete count (default: `0`);\n * maximum number of elements to delete, starting from start.\n * @param {Array<T> | null | undefined} [items=[]]\n * Items to include in place of the deleted items (default: `[]`).\n * @return {Array<T>}\n * Any removed items.\n */\n splice(start, deleteCount, items) {\n /** @type {number} */\n const count = deleteCount || 0;\n this.setCursor(Math.trunc(start));\n const removed = this.right.splice(this.right.length - count, Number.POSITIVE_INFINITY);\n if (items) chunkedPush(this.left, items);\n return removed.reverse();\n }\n\n /**\n * Remove and return the highest-numbered item in the array, so\n * `list[list.length - 1]`;\n * Moves the cursor to `length`.\n *\n * @returns {T | undefined}\n * Item, optional.\n */\n pop() {\n this.setCursor(Number.POSITIVE_INFINITY);\n return this.left.pop();\n }\n\n /**\n * Inserts a single item to the high-numbered side of the array;\n * moves the cursor to `length`.\n *\n * @param {T} item\n * Item.\n * @returns {undefined}\n * Nothing.\n */\n push(item) {\n this.setCursor(Number.POSITIVE_INFINITY);\n this.left.push(item);\n }\n\n /**\n * Inserts many items to the high-numbered side of the array.\n * Moves the cursor to `length`.\n *\n * @param {Array<T>} items\n * Items.\n * @returns {undefined}\n * Nothing.\n */\n pushMany(items) {\n this.setCursor(Number.POSITIVE_INFINITY);\n chunkedPush(this.left, items);\n }\n\n /**\n * Inserts a single item to the low-numbered side of the array;\n * Moves the cursor to `0`.\n *\n * @param {T} item\n * Item.\n * @returns {undefined}\n * Nothing.\n */\n unshift(item) {\n this.setCursor(0);\n this.right.push(item);\n }\n\n /**\n * Inserts many items to the low-numbered side of the array;\n * moves the cursor to `0`.\n *\n * @param {Array<T>} items\n * Items.\n * @returns {undefined}\n * Nothing.\n */\n unshiftMany(items) {\n this.setCursor(0);\n chunkedPush(this.right, items.reverse());\n }\n\n /**\n * Move the cursor to a specific position in the array. Requires\n * time proportional to the distance moved.\n *\n * If `n < 0`, the cursor will end up at the beginning.\n * If `n > length`, the cursor will end up at the end.\n *\n * @param {number} n\n * Position.\n * @return {undefined}\n * Nothing.\n */\n setCursor(n) {\n if (n === this.left.length || n > this.left.length && this.right.length === 0 || n < 0 && this.left.length === 0) return;\n if (n < this.left.length) {\n // Move cursor to the this.left\n const removed = this.left.splice(n, Number.POSITIVE_INFINITY);\n chunkedPush(this.right, removed.reverse());\n } else {\n // Move cursor to the this.right\n const removed = this.right.splice(this.left.length + this.right.length - n, Number.POSITIVE_INFINITY);\n chunkedPush(this.left, removed.reverse());\n }\n }\n}\n\n/**\n * Avoid stack overflow by pushing items onto the stack in segments\n *\n * @template T\n * Item type.\n * @param {Array<T>} list\n * List to inject into.\n * @param {ReadonlyArray<T>} right\n * Items to inject.\n * @return {undefined}\n * Nothing.\n */\nfunction chunkedPush(list, right) {\n /** @type {number} */\n let chunkStart = 0;\n if (right.length < 10000) {\n list.push(...right);\n } else {\n while (chunkStart < right.length) {\n list.push(...right.slice(chunkStart, chunkStart + 10000));\n chunkStart += 10000;\n }\n }\n}","/**\n * @import {Chunk, Event, Token} from 'micromark-util-types'\n */\n\nimport { splice } from 'micromark-util-chunked';\nimport { SpliceBuffer } from './lib/splice-buffer.js';\n\n// Hidden API exposed for testing.\nexport { SpliceBuffer } from './lib/splice-buffer.js';\n\n/**\n * Tokenize subcontent.\n *\n * @param {Array<Event>} eventsArray\n * List of events.\n * @returns {boolean}\n * Whether subtokens were found.\n */\n// eslint-disable-next-line complexity\nexport function subtokenize(eventsArray) {\n /** @type {Record<string, number>} */\n const jumps = {};\n let index = -1;\n /** @type {Event} */\n let event;\n /** @type {number | undefined} */\n let lineIndex;\n /** @type {number} */\n let otherIndex;\n /** @type {Event} */\n let otherEvent;\n /** @type {Array<Event>} */\n let parameters;\n /** @type {Array<Event>} */\n let subevents;\n /** @type {boolean | undefined} */\n let more;\n const events = new SpliceBuffer(eventsArray);\n while (++index < events.length) {\n while (index in jumps) {\n index = jumps[index];\n }\n event = events.get(index);\n\n // Add a hook for the GFM tasklist extension, which needs to know if text\n // is in the first content of a list item.\n if (index && event[1].type === \"chunkFlow\" && events.get(index - 1)[1].type === \"listItemPrefix\") {\n subevents = event[1]._tokenizer.events;\n otherIndex = 0;\n if (otherIndex < subevents.length && subevents[otherIndex][1].type === \"lineEndingBlank\") {\n otherIndex += 2;\n }\n if (otherIndex < subevents.length && subevents[otherIndex][1].type === \"content\") {\n while (++otherIndex < subevents.length) {\n if (subevents[otherIndex][1].type === \"content\") {\n break;\n }\n if (subevents[otherIndex][1].type === \"chunkText\") {\n subevents[otherIndex][1]._isInFirstContentOfListItem = true;\n otherIndex++;\n }\n }\n }\n }\n\n // Enter.\n if (event[0] === 'enter') {\n if (event[1].contentType) {\n Object.assign(jumps, subcontent(events, index));\n index = jumps[index];\n more = true;\n }\n }\n // Exit.\n else if (event[1]._container) {\n otherIndex = index;\n lineIndex = undefined;\n while (otherIndex--) {\n otherEvent = events.get(otherIndex);\n if (otherEvent[1].type === \"lineEnding\" || otherEvent[1].type === \"lineEndingBlank\") {\n if (otherEvent[0] === 'enter') {\n if (lineIndex) {\n events.get(lineIndex)[1].type = \"lineEndingBlank\";\n }\n otherEvent[1].type = \"lineEnding\";\n lineIndex = otherIndex;\n }\n } else if (otherEvent[1].type === \"linePrefix\" || otherEvent[1].type === \"listItemIndent\") {\n // Move past.\n } else {\n break;\n }\n }\n if (lineIndex) {\n // Fix position.\n event[1].end = {\n ...events.get(lineIndex)[1].start\n };\n\n // Switch container exit w/ line endings.\n parameters = events.slice(lineIndex, index);\n parameters.unshift(event);\n events.splice(lineIndex, index - lineIndex + 1, parameters);\n }\n }\n }\n\n // The changes to the `events` buffer must be copied back into the eventsArray\n splice(eventsArray, 0, Number.POSITIVE_INFINITY, events.slice(0));\n return !more;\n}\n\n/**\n * Tokenize embedded tokens.\n *\n * @param {SpliceBuffer<Event>} events\n * Events.\n * @param {number} eventIndex\n * Index.\n * @returns {Record<string, number>}\n * Gaps.\n */\nfunction subcontent(events, eventIndex) {\n const token = events.get(eventIndex)[1];\n const context = events.get(eventIndex)[2];\n let startPosition = eventIndex - 1;\n /** @type {Array<number>} */\n const startPositions = [];\n let tokenizer = token._tokenizer;\n if (!tokenizer) {\n tokenizer = context.parser[token.contentType](token.start);\n if (token._contentTypeTextTrailing) {\n tokenizer._contentTypeTextTrailing = true;\n }\n }\n const childEvents = tokenizer.events;\n /** @type {Array<[number, number]>} */\n const jumps = [];\n /** @type {Record<string, number>} */\n const gaps = {};\n /** @type {Array<Chunk>} */\n let stream;\n /** @type {Token | undefined} */\n let previous;\n let index = -1;\n /** @type {Token | undefined} */\n let current = token;\n let adjust = 0;\n let start = 0;\n const breaks = [start];\n\n // Loop forward through the linked tokens to pass them in order to the\n // subtokenizer.\n while (current) {\n // Find the position of the event for this token.\n while (events.get(++startPosition)[1] !== current) {\n // Empty.\n }\n startPositions.push(startPosition);\n if (!current._tokenizer) {\n stream = context.sliceStream(current);\n if (!current.next) {\n stream.push(null);\n }\n if (previous) {\n tokenizer.defineSkip(current.start);\n }\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = true;\n }\n tokenizer.write(stream);\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = undefined;\n }\n }\n\n // Unravel the next token.\n previous = current;\n current = current.next;\n }\n\n // Now, loop back through all events (and linked tokens), to figure out which\n // parts belong where.\n current = token;\n while (++index < childEvents.length) {\n if (\n // Find a void token that includes a break.\n childEvents[index][0] === 'exit' && childEvents[index - 1][0] === 'enter' && childEvents[index][1].type === childEvents[index - 1][1].type && childEvents[index][1].start.line !== childEvents[index][1].end.line) {\n start = index + 1;\n breaks.push(start);\n // Help GC.\n current._tokenizer = undefined;\n current.previous = undefined;\n current = current.next;\n }\n }\n\n // Help GC.\n tokenizer.events = [];\n\n // If there’s one more token (which is the cases for lines that end in an\n // EOF), that’s perfect: the last point we found starts it.\n // If there isn’t then make sure any remaining content is added to it.\n if (current) {\n // Help GC.\n current._tokenizer = undefined;\n current.previous = undefined;\n } else {\n breaks.pop();\n }\n\n // Now splice the events from the subtokenizer into the current events,\n // moving back to front so that splice indices aren’t affected.\n index = breaks.length;\n while (index--) {\n const slice = childEvents.slice(breaks[index], breaks[index + 1]);\n const start = startPositions.pop();\n jumps.push([start, start + slice.length - 1]);\n events.splice(start, 2, slice);\n }\n jumps.reverse();\n index = -1;\n while (++index < jumps.length) {\n gaps[adjust + jumps[index][0]] = adjust + jumps[index][1];\n adjust += jumps[index][1] - jumps[index][0] - 1;\n }\n return gaps;\n}","/**\n * @import {\n * Construct,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer,\n * Token\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\nimport { subtokenize } from 'micromark-util-subtokenize';\n/**\n * No name because it must not be turned off.\n * @type {Construct}\n */\nexport const content = {\n resolve: resolveContent,\n tokenize: tokenizeContent\n};\n\n/** @type {Construct} */\nconst continuationConstruct = {\n partial: true,\n tokenize: tokenizeContinuation\n};\n\n/**\n * Content is transparent: it’s parsed right now. That way, definitions are also\n * parsed right now: before text in paragraphs (specifically, media) are parsed.\n *\n * @type {Resolver}\n */\nfunction resolveContent(events) {\n subtokenize(events);\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeContent(effects, ok) {\n /** @type {Token | undefined} */\n let previous;\n return chunkStart;\n\n /**\n * Before a content chunk.\n *\n * ```markdown\n * > | abc\n * ^\n * ```\n *\n * @type {State}\n */\n function chunkStart(code) {\n effects.enter(\"content\");\n previous = effects.enter(\"chunkContent\", {\n contentType: \"content\"\n });\n return chunkInside(code);\n }\n\n /**\n * In a content chunk.\n *\n * ```markdown\n * > | abc\n * ^^^\n * ```\n *\n * @type {State}\n */\n function chunkInside(code) {\n if (code === null) {\n return contentEnd(code);\n }\n\n // To do: in `markdown-rs`, each line is parsed on its own, and everything\n // is stitched together resolving.\n if (markdownLineEnding(code)) {\n return effects.check(continuationConstruct, contentContinue, contentEnd)(code);\n }\n\n // Data.\n effects.consume(code);\n return chunkInside;\n }\n\n /**\n *\n *\n * @type {State}\n */\n function contentEnd(code) {\n effects.exit(\"chunkContent\");\n effects.exit(\"content\");\n return ok(code);\n }\n\n /**\n *\n *\n * @type {State}\n */\n function contentContinue(code) {\n effects.consume(code);\n effects.exit(\"chunkContent\");\n previous.next = effects.enter(\"chunkContent\", {\n contentType: \"content\",\n previous\n });\n previous = previous.next;\n return chunkInside;\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeContinuation(effects, ok, nok) {\n const self = this;\n return startLookahead;\n\n /**\n *\n *\n * @type {State}\n */\n function startLookahead(code) {\n effects.exit(\"chunkContent\");\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return factorySpace(effects, prefixed, \"linePrefix\");\n }\n\n /**\n *\n *\n * @type {State}\n */\n function prefixed(code) {\n if (code === null || markdownLineEnding(code)) {\n return nok(code);\n }\n\n // Always populated by defaults.\n\n const tail = self.events[self.events.length - 1];\n if (!self.parser.constructs.disable.null.includes('codeIndented') && tail && tail[1].type === \"linePrefix\" && tail[2].sliceSerialize(tail[1], true).length >= 4) {\n return ok(code);\n }\n return effects.interrupt(self.parser.constructs.flow, nok, ok)(code);\n }\n}","/**\n * @import {Effects, State, TokenType} from 'micromark-util-types'\n */\n\nimport { asciiControl, markdownLineEndingOrSpace, markdownLineEnding } from 'micromark-util-character';\n/**\n * Parse destinations.\n *\n * ###### Examples\n *\n * ```markdown\n * <a>\n * <a\\>b>\n * <a b>\n * <a)>\n * a\n * a\\)b\n * a(b)c\n * a(b)\n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type for whole (`<a>` or `b`).\n * @param {TokenType} literalType\n * Type when enclosed (`<a>`).\n * @param {TokenType} literalMarkerType\n * Type for enclosing (`<` and `>`).\n * @param {TokenType} rawType\n * Type when not enclosed (`b`).\n * @param {TokenType} stringType\n * Type for the value (`a` or `b`).\n * @param {number | undefined} [max=Infinity]\n * Depth of nested parens (inclusive).\n * @returns {State}\n * Start state.\n */\nexport function factoryDestination(effects, ok, nok, type, literalType, literalMarkerType, rawType, stringType, max) {\n const limit = max || Number.POSITIVE_INFINITY;\n let balance = 0;\n return start;\n\n /**\n * Start of destination.\n *\n * ```markdown\n * > | <aa>\n * ^\n * > | aa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (code === 60) {\n effects.enter(type);\n effects.enter(literalType);\n effects.enter(literalMarkerType);\n effects.consume(code);\n effects.exit(literalMarkerType);\n return enclosedBefore;\n }\n\n // ASCII control, space, closing paren.\n if (code === null || code === 32 || code === 41 || asciiControl(code)) {\n return nok(code);\n }\n effects.enter(type);\n effects.enter(rawType);\n effects.enter(stringType);\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return raw(code);\n }\n\n /**\n * After `<`, at an enclosed destination.\n *\n * ```markdown\n * > | <aa>\n * ^\n * ```\n *\n * @type {State}\n */\n function enclosedBefore(code) {\n if (code === 62) {\n effects.enter(literalMarkerType);\n effects.consume(code);\n effects.exit(literalMarkerType);\n effects.exit(literalType);\n effects.exit(type);\n return ok;\n }\n effects.enter(stringType);\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return enclosed(code);\n }\n\n /**\n * In enclosed destination.\n *\n * ```markdown\n * > | <aa>\n * ^\n * ```\n *\n * @type {State}\n */\n function enclosed(code) {\n if (code === 62) {\n effects.exit(\"chunkString\");\n effects.exit(stringType);\n return enclosedBefore(code);\n }\n if (code === null || code === 60 || markdownLineEnding(code)) {\n return nok(code);\n }\n effects.consume(code);\n return code === 92 ? enclosedEscape : enclosed;\n }\n\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | <a\\*a>\n * ^\n * ```\n *\n * @type {State}\n */\n function enclosedEscape(code) {\n if (code === 60 || code === 62 || code === 92) {\n effects.consume(code);\n return enclosed;\n }\n return enclosed(code);\n }\n\n /**\n * In raw destination.\n *\n * ```markdown\n * > | aa\n * ^\n * ```\n *\n * @type {State}\n */\n function raw(code) {\n if (!balance && (code === null || code === 41 || markdownLineEndingOrSpace(code))) {\n effects.exit(\"chunkString\");\n effects.exit(stringType);\n effects.exit(rawType);\n effects.exit(type);\n return ok(code);\n }\n if (balance < limit && code === 40) {\n effects.consume(code);\n balance++;\n return raw;\n }\n if (code === 41) {\n effects.consume(code);\n balance--;\n return raw;\n }\n\n // ASCII control (but *not* `\\0`) and space and `(`.\n // Note: in `markdown-rs`, `\\0` exists in codes, in `micromark-js` it\n // doesn’t.\n if (code === null || code === 32 || code === 40 || asciiControl(code)) {\n return nok(code);\n }\n effects.consume(code);\n return code === 92 ? rawEscape : raw;\n }\n\n /**\n * After `\\`, at special character.\n *\n * ```markdown\n * > | a\\*a\n * ^\n * ```\n *\n * @type {State}\n */\n function rawEscape(code) {\n if (code === 40 || code === 41 || code === 92) {\n effects.consume(code);\n return raw;\n }\n return raw(code);\n }\n}","/**\n * @import {\n * Effects,\n * State,\n * TokenizeContext,\n * TokenType\n * } from 'micromark-util-types'\n */\n\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/**\n * Parse labels.\n *\n * > 👉 **Note**: labels in markdown are capped at 999 characters in the string.\n *\n * ###### Examples\n *\n * ```markdown\n * [a]\n * [a\n * b]\n * [a\\]b]\n * ```\n *\n * @this {TokenizeContext}\n * Tokenize context.\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type of the whole label (`[a]`).\n * @param {TokenType} markerType\n * Type for the markers (`[` and `]`).\n * @param {TokenType} stringType\n * Type for the identifier (`a`).\n * @returns {State}\n * Start state.\n */\nexport function factoryLabel(effects, ok, nok, type, markerType, stringType) {\n const self = this;\n let size = 0;\n /** @type {boolean} */\n let seen;\n return start;\n\n /**\n * Start of label.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(type);\n effects.enter(markerType);\n effects.consume(code);\n effects.exit(markerType);\n effects.enter(stringType);\n return atBreak;\n }\n\n /**\n * In label, at something, before something else.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (size > 999 || code === null || code === 91 || code === 93 && !seen ||\n // To do: remove in the future once we’ve switched from\n // `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n // which doesn’t need this.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n code === 94 && !size && '_hiddenFootnoteSupport' in self.parser.constructs) {\n return nok(code);\n }\n if (code === 93) {\n effects.exit(stringType);\n effects.enter(markerType);\n effects.consume(code);\n effects.exit(markerType);\n effects.exit(type);\n return ok;\n }\n\n // To do: indent? Link chunks and EOLs together?\n if (markdownLineEnding(code)) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return atBreak;\n }\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return labelInside(code);\n }\n\n /**\n * In label, in text.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */\n function labelInside(code) {\n if (code === null || code === 91 || code === 93 || markdownLineEnding(code) || size++ > 999) {\n effects.exit(\"chunkString\");\n return atBreak(code);\n }\n effects.consume(code);\n if (!seen) seen = !markdownSpace(code);\n return code === 92 ? labelEscape : labelInside;\n }\n\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | [a\\*a]\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code);\n size++;\n return labelInside;\n }\n return labelInside(code);\n }\n}","/**\n * @import {\n * Code,\n * Effects,\n * State,\n * TokenType\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\n/**\n * Parse titles.\n *\n * ###### Examples\n *\n * ```markdown\n * \"a\"\n * 'b'\n * (c)\n * \"a\n * b\"\n * 'a\n * b'\n * (a\\)b)\n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type of the whole title (`\"a\"`, `'b'`, `(c)`).\n * @param {TokenType} markerType\n * Type for the markers (`\"`, `'`, `(`, and `)`).\n * @param {TokenType} stringType\n * Type for the value (`a`).\n * @returns {State}\n * Start state.\n */\nexport function factoryTitle(effects, ok, nok, type, markerType, stringType) {\n /** @type {NonNullable<Code>} */\n let marker;\n return start;\n\n /**\n * Start of title.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (code === 34 || code === 39 || code === 40) {\n effects.enter(type);\n effects.enter(markerType);\n effects.consume(code);\n effects.exit(markerType);\n marker = code === 40 ? 41 : code;\n return begin;\n }\n return nok(code);\n }\n\n /**\n * After opening marker.\n *\n * This is also used at the closing marker.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */\n function begin(code) {\n if (code === marker) {\n effects.enter(markerType);\n effects.consume(code);\n effects.exit(markerType);\n effects.exit(type);\n return ok;\n }\n effects.enter(stringType);\n return atBreak(code);\n }\n\n /**\n * At something, before something else.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === marker) {\n effects.exit(stringType);\n return begin(marker);\n }\n if (code === null) {\n return nok(code);\n }\n\n // Note: blank lines can’t exist in content.\n if (markdownLineEnding(code)) {\n // To do: use `space_or_tab_eol_with_options`, connect.\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return factorySpace(effects, atBreak, \"linePrefix\");\n }\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return inside(code);\n }\n\n /**\n *\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker || code === null || markdownLineEnding(code)) {\n effects.exit(\"chunkString\");\n return atBreak(code);\n }\n effects.consume(code);\n return code === 92 ? escape : inside;\n }\n\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | \"a\\*b\"\n * ^\n * ```\n *\n * @type {State}\n */\n function escape(code) {\n if (code === marker || code === 92) {\n effects.consume(code);\n return inside;\n }\n return inside(code);\n }\n}","/**\n * @import {Effects, State} from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/**\n * Parse spaces and tabs.\n *\n * There is no `nok` parameter:\n *\n * * line endings or spaces in markdown are often optional, in which case this\n * factory can be used and `ok` will be switched to whether spaces were found\n * or not\n * * one line ending or space can be detected with\n * `markdownLineEndingOrSpace(code)` right before using `factoryWhitespace`\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @returns {State}\n * Start state.\n */\nexport function factoryWhitespace(effects, ok) {\n /** @type {boolean} */\n let seen;\n return start;\n\n /** @type {State} */\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n seen = true;\n return start;\n }\n if (markdownSpace(code)) {\n return factorySpace(effects, start, seen ? \"linePrefix\" : \"lineSuffix\")(code);\n }\n return ok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factoryDestination } from 'micromark-factory-destination';\nimport { factoryLabel } from 'micromark-factory-label';\nimport { factorySpace } from 'micromark-factory-space';\nimport { factoryTitle } from 'micromark-factory-title';\nimport { factoryWhitespace } from 'micromark-factory-whitespace';\nimport { markdownLineEndingOrSpace, markdownLineEnding, markdownSpace } from 'micromark-util-character';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\n/** @type {Construct} */\nexport const definition = {\n name: 'definition',\n tokenize: tokenizeDefinition\n};\n\n/** @type {Construct} */\nconst titleBefore = {\n partial: true,\n tokenize: tokenizeTitleBefore\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeDefinition(effects, ok, nok) {\n const self = this;\n /** @type {string} */\n let identifier;\n return start;\n\n /**\n * At start of a definition.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Do not interrupt paragraphs (but do follow definitions).\n // To do: do `interrupt` the way `markdown-rs` does.\n // To do: parse whitespace the way `markdown-rs` does.\n effects.enter(\"definition\");\n return before(code);\n }\n\n /**\n * After optional whitespace, at `[`.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n // To do: parse whitespace the way `markdown-rs` does.\n\n return factoryLabel.call(self, effects, labelAfter,\n // Note: we don’t need to reset the way `markdown-rs` does.\n nok, \"definitionLabel\", \"definitionLabelMarker\", \"definitionLabelString\")(code);\n }\n\n /**\n * After label.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function labelAfter(code) {\n identifier = normalizeIdentifier(self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1));\n if (code === 58) {\n effects.enter(\"definitionMarker\");\n effects.consume(code);\n effects.exit(\"definitionMarker\");\n return markerAfter;\n }\n return nok(code);\n }\n\n /**\n * After marker.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function markerAfter(code) {\n // Note: whitespace is optional.\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, destinationBefore)(code) : destinationBefore(code);\n }\n\n /**\n * Before destination.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function destinationBefore(code) {\n return factoryDestination(effects, destinationAfter,\n // Note: we don’t need to reset the way `markdown-rs` does.\n nok, \"definitionDestination\", \"definitionDestinationLiteral\", \"definitionDestinationLiteralMarker\", \"definitionDestinationRaw\", \"definitionDestinationString\")(code);\n }\n\n /**\n * After destination.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function destinationAfter(code) {\n return effects.attempt(titleBefore, after, after)(code);\n }\n\n /**\n * After definition.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return markdownSpace(code) ? factorySpace(effects, afterWhitespace, \"whitespace\")(code) : afterWhitespace(code);\n }\n\n /**\n * After definition, after optional whitespace.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function afterWhitespace(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"definition\");\n\n // Note: we don’t care about uniqueness.\n // It’s likely that that doesn’t happen very frequently.\n // It is more likely that it wastes precious time.\n self.parser.defined.push(identifier);\n\n // To do: `markdown-rs` interrupt.\n // // You’d be interrupting.\n // tokenizer.interrupt = true\n return ok(code);\n }\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeTitleBefore(effects, ok, nok) {\n return titleBefore;\n\n /**\n * After destination, at whitespace.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function titleBefore(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, beforeMarker)(code) : nok(code);\n }\n\n /**\n * At title.\n *\n * ```markdown\n * | [a]: b\n * > | \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function beforeMarker(code) {\n return factoryTitle(effects, titleAfter, nok, \"definitionTitle\", \"definitionTitleMarker\", \"definitionTitleString\")(code);\n }\n\n /**\n * After title.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function titleAfter(code) {\n return markdownSpace(code) ? factorySpace(effects, titleAfterOptionalWhitespace, \"whitespace\")(code) : titleAfterOptionalWhitespace(code);\n }\n\n /**\n * After title, after optional whitespace.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function titleAfterOptionalWhitespace(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const hardBreakEscape = {\n name: 'hardBreakEscape',\n tokenize: tokenizeHardBreakEscape\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n return start;\n\n /**\n * Start of a hard break (escape).\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"hardBreakEscape\");\n effects.consume(code);\n return after;\n }\n\n /**\n * After `\\`, at eol.\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (markdownLineEnding(code)) {\n effects.exit(\"hardBreakEscape\");\n return ok(code);\n }\n return nok(code);\n }\n}","/**\n * @import {\n * Construct,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer,\n * Token\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEndingOrSpace, markdownLineEnding, markdownSpace } from 'micromark-util-character';\nimport { splice } from 'micromark-util-chunked';\n/** @type {Construct} */\nexport const headingAtx = {\n name: 'headingAtx',\n resolve: resolveHeadingAtx,\n tokenize: tokenizeHeadingAtx\n};\n\n/** @type {Resolver} */\nfunction resolveHeadingAtx(events, context) {\n let contentEnd = events.length - 2;\n let contentStart = 3;\n /** @type {Token} */\n let content;\n /** @type {Token} */\n let text;\n\n // Prefix whitespace, part of the opening.\n if (events[contentStart][1].type === \"whitespace\") {\n contentStart += 2;\n }\n\n // Suffix whitespace, part of the closing.\n if (contentEnd - 2 > contentStart && events[contentEnd][1].type === \"whitespace\") {\n contentEnd -= 2;\n }\n if (events[contentEnd][1].type === \"atxHeadingSequence\" && (contentStart === contentEnd - 1 || contentEnd - 4 > contentStart && events[contentEnd - 2][1].type === \"whitespace\")) {\n contentEnd -= contentStart + 1 === contentEnd ? 2 : 4;\n }\n if (contentEnd > contentStart) {\n content = {\n type: \"atxHeadingText\",\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end\n };\n text = {\n type: \"chunkText\",\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end,\n contentType: \"text\"\n };\n splice(events, contentStart, contentEnd - contentStart + 1, [['enter', content, context], ['enter', text, context], ['exit', text, context], ['exit', content, context]]);\n }\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeHeadingAtx(effects, ok, nok) {\n let size = 0;\n return start;\n\n /**\n * Start of a heading (atx).\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse indent like `markdown-rs`.\n effects.enter(\"atxHeading\");\n return before(code);\n }\n\n /**\n * After optional whitespace, at `#`.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter(\"atxHeadingSequence\");\n return sequenceOpen(code);\n }\n\n /**\n * In opening sequence.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === 35 && size++ < 6) {\n effects.consume(code);\n return sequenceOpen;\n }\n\n // Always at least one `#`.\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit(\"atxHeadingSequence\");\n return atBreak(code);\n }\n return nok(code);\n }\n\n /**\n * After something, before something else.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === 35) {\n effects.enter(\"atxHeadingSequence\");\n return sequenceFurther(code);\n }\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"atxHeading\");\n // To do: interrupt like `markdown-rs`.\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n return ok(code);\n }\n if (markdownSpace(code)) {\n return factorySpace(effects, atBreak, \"whitespace\")(code);\n }\n\n // To do: generate `data` tokens, add the `text` token later.\n // Needs edit map, see: `markdown.rs`.\n effects.enter(\"atxHeadingText\");\n return data(code);\n }\n\n /**\n * In further sequence (after whitespace).\n *\n * Could be normal “visible” hashes in the heading or a final sequence.\n *\n * ```markdown\n * > | ## aa ##\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceFurther(code) {\n if (code === 35) {\n effects.consume(code);\n return sequenceFurther;\n }\n effects.exit(\"atxHeadingSequence\");\n return atBreak(code);\n }\n\n /**\n * In text.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function data(code) {\n if (code === null || code === 35 || markdownLineEndingOrSpace(code)) {\n effects.exit(\"atxHeadingText\");\n return atBreak(code);\n }\n effects.consume(code);\n return data;\n }\n}","/**\n * List of lowercase HTML “block” tag names.\n *\n * The list, when parsing HTML (flow), results in more relaxed rules (condition\n * 6).\n * Because they are known blocks, the HTML-like syntax doesn’t have to be\n * strictly parsed.\n * For tag names not in this list, a more strict algorithm (condition 7) is used\n * to detect whether the HTML-like syntax is seen as HTML (flow) or not.\n *\n * This is copied from:\n * <https://spec.commonmark.org/0.30/#html-blocks>.\n *\n * > 👉 **Note**: `search` was added in `CommonMark@0.31`.\n */\nexport const htmlBlockNames = [\n 'address',\n 'article',\n 'aside',\n 'base',\n 'basefont',\n 'blockquote',\n 'body',\n 'caption',\n 'center',\n 'col',\n 'colgroup',\n 'dd',\n 'details',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'frame',\n 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hr',\n 'html',\n 'iframe',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'menu',\n 'menuitem',\n 'nav',\n 'noframes',\n 'ol',\n 'optgroup',\n 'option',\n 'p',\n 'param',\n 'search',\n 'section',\n 'summary',\n 'table',\n 'tbody',\n 'td',\n 'tfoot',\n 'th',\n 'thead',\n 'title',\n 'tr',\n 'track',\n 'ul'\n]\n\n/**\n * List of lowercase HTML “raw” tag names.\n *\n * The list, when parsing HTML (flow), results in HTML that can include lines\n * without exiting, until a closing tag also in this list is found (condition\n * 1).\n *\n * This module is copied from:\n * <https://spec.commonmark.org/0.30/#html-blocks>.\n *\n * > 👉 **Note**: `textarea` was added in `CommonMark@0.30`.\n */\nexport const htmlRawNames = ['pre', 'script', 'style', 'textarea']\n","/**\n * @import {\n * Code,\n * Construct,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { asciiAlphanumeric, asciiAlpha, markdownLineEndingOrSpace, markdownLineEnding, markdownSpace } from 'micromark-util-character';\nimport { htmlBlockNames, htmlRawNames } from 'micromark-util-html-tag-name';\nimport { blankLine } from './blank-line.js';\n\n/** @type {Construct} */\nexport const htmlFlow = {\n concrete: true,\n name: 'htmlFlow',\n resolveTo: resolveToHtmlFlow,\n tokenize: tokenizeHtmlFlow\n};\n\n/** @type {Construct} */\nconst blankLineBefore = {\n partial: true,\n tokenize: tokenizeBlankLineBefore\n};\nconst nonLazyContinuationStart = {\n partial: true,\n tokenize: tokenizeNonLazyContinuationStart\n};\n\n/** @type {Resolver} */\nfunction resolveToHtmlFlow(events) {\n let index = events.length;\n while (index--) {\n if (events[index][0] === 'enter' && events[index][1].type === \"htmlFlow\") {\n break;\n }\n }\n if (index > 1 && events[index - 2][1].type === \"linePrefix\") {\n // Add the prefix start to the HTML token.\n events[index][1].start = events[index - 2][1].start;\n // Add the prefix start to the HTML line token.\n events[index + 1][1].start = events[index - 2][1].start;\n // Remove the line prefix.\n events.splice(index - 2, 2);\n }\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlFlow(effects, ok, nok) {\n const self = this;\n /** @type {number} */\n let marker;\n /** @type {boolean} */\n let closingTag;\n /** @type {string} */\n let buffer;\n /** @type {number} */\n let index;\n /** @type {Code} */\n let markerB;\n return start;\n\n /**\n * Start of HTML (flow).\n *\n * ```markdown\n * > | <x />\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse indent like `markdown-rs`.\n return before(code);\n }\n\n /**\n * At `<`, after optional whitespace.\n *\n * ```markdown\n * > | <x />\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter(\"htmlFlow\");\n effects.enter(\"htmlFlowData\");\n effects.consume(code);\n return open;\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | <x />\n * ^\n * > | <!doctype>\n * ^\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 33) {\n effects.consume(code);\n return declarationOpen;\n }\n if (code === 47) {\n effects.consume(code);\n closingTag = true;\n return tagCloseStart;\n }\n if (code === 63) {\n effects.consume(code);\n marker = 3;\n // To do:\n // tokenizer.concrete = true\n // To do: use `markdown-rs` style interrupt.\n // While we’re in an instruction instead of a declaration, we’re on a `?`\n // right now, so we do need to search for `>`, similar to declarations.\n return self.interrupt ? ok : continuationDeclarationInside;\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n // Always the case.\n effects.consume(code);\n buffer = String.fromCharCode(code);\n return tagName;\n }\n return nok(code);\n }\n\n /**\n * After `<!`, at declaration, comment, or CDATA.\n *\n * ```markdown\n * > | <!doctype>\n * ^\n * > | <!--xxx-->\n * ^\n * > | <![CDATA[>&<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code);\n marker = 2;\n return commentOpenInside;\n }\n if (code === 91) {\n effects.consume(code);\n marker = 5;\n index = 0;\n return cdataOpenInside;\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code);\n marker = 4;\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuationDeclarationInside;\n }\n return nok(code);\n }\n\n /**\n * After `<!-`, inside a comment, at another `-`.\n *\n * ```markdown\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code);\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuationDeclarationInside;\n }\n return nok(code);\n }\n\n /**\n * After `<![`, inside CDATA, expecting `CDATA[`.\n *\n * ```markdown\n * > | <![CDATA[>&<]]>\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = \"CDATA[\";\n if (code === value.charCodeAt(index++)) {\n effects.consume(code);\n if (index === value.length) {\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuation;\n }\n return cdataOpenInside;\n }\n return nok(code);\n }\n\n /**\n * After `</`, in closing tag, at tag name.\n *\n * ```markdown\n * > | </x>\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n // Always the case.\n effects.consume(code);\n buffer = String.fromCharCode(code);\n return tagName;\n }\n return nok(code);\n }\n\n /**\n * In tag name.\n *\n * ```markdown\n * > | <ab>\n * ^^\n * > | </ab>\n * ^^\n * ```\n *\n * @type {State}\n */\n function tagName(code) {\n if (code === null || code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n const slash = code === 47;\n const name = buffer.toLowerCase();\n if (!slash && !closingTag && htmlRawNames.includes(name)) {\n marker = 1;\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok(code) : continuation(code);\n }\n if (htmlBlockNames.includes(buffer.toLowerCase())) {\n marker = 6;\n if (slash) {\n effects.consume(code);\n return basicSelfClosing;\n }\n\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok(code) : continuation(code);\n }\n marker = 7;\n // Do not support complete HTML when interrupting.\n return self.interrupt && !self.parser.lazy[self.now().line] ? nok(code) : closingTag ? completeClosingTagAfter(code) : completeAttributeNameBefore(code);\n }\n\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code);\n buffer += String.fromCharCode(code);\n return tagName;\n }\n return nok(code);\n }\n\n /**\n * After closing slash of a basic tag name.\n *\n * ```markdown\n * > | <div/>\n * ^\n * ```\n *\n * @type {State}\n */\n function basicSelfClosing(code) {\n if (code === 62) {\n effects.consume(code);\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuation;\n }\n return nok(code);\n }\n\n /**\n * After closing slash of a complete tag name.\n *\n * ```markdown\n * > | <x/>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeClosingTagAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code);\n return completeClosingTagAfter;\n }\n return completeEnd(code);\n }\n\n /**\n * At an attribute name.\n *\n * At first, this state is used after a complete tag name, after whitespace,\n * where it expects optional attributes or the end of the tag.\n * It is also reused after attributes, when expecting more optional\n * attributes.\n *\n * ```markdown\n * > | <a />\n * ^\n * > | <a :b>\n * ^\n * > | <a _b>\n * ^\n * > | <a b>\n * ^\n * > | <a >\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeNameBefore(code) {\n if (code === 47) {\n effects.consume(code);\n return completeEnd;\n }\n\n // ASCII alphanumerical and `:` and `_`.\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code);\n return completeAttributeName;\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return completeAttributeNameBefore;\n }\n return completeEnd(code);\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | <a :b>\n * ^\n * > | <a _b>\n * ^\n * > | <a b>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeName(code) {\n // ASCII alphanumerical and `-`, `.`, `:`, and `_`.\n if (code === 45 || code === 46 || code === 58 || code === 95 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return completeAttributeName;\n }\n return completeAttributeNameAfter(code);\n }\n\n /**\n * After attribute name, at an optional initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | <a b>\n * ^\n * > | <a b=c>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code);\n return completeAttributeValueBefore;\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return completeAttributeNameAfter;\n }\n return completeAttributeNameBefore(code);\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | <a b=c>\n * ^\n * > | <a b=\"c\">\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueBefore(code) {\n if (code === null || code === 60 || code === 61 || code === 62 || code === 96) {\n return nok(code);\n }\n if (code === 34 || code === 39) {\n effects.consume(code);\n markerB = code;\n return completeAttributeValueQuoted;\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return completeAttributeValueBefore;\n }\n return completeAttributeValueUnquoted(code);\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | <a b=\"c\">\n * ^\n * > | <a b='c'>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueQuoted(code) {\n if (code === markerB) {\n effects.consume(code);\n markerB = null;\n return completeAttributeValueQuotedAfter;\n }\n if (code === null || markdownLineEnding(code)) {\n return nok(code);\n }\n effects.consume(code);\n return completeAttributeValueQuoted;\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | <a b=c>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueUnquoted(code) {\n if (code === null || code === 34 || code === 39 || code === 47 || code === 60 || code === 61 || code === 62 || code === 96 || markdownLineEndingOrSpace(code)) {\n return completeAttributeNameAfter(code);\n }\n effects.consume(code);\n return completeAttributeValueUnquoted;\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the\n * end of the tag.\n *\n * ```markdown\n * > | <a b=\"c\">\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownSpace(code)) {\n return completeAttributeNameBefore(code);\n }\n return nok(code);\n }\n\n /**\n * In certain circumstances of a complete tag where only an `>` is allowed.\n *\n * ```markdown\n * > | <a b=\"c\">\n * ^\n * ```\n *\n * @type {State}\n */\n function completeEnd(code) {\n if (code === 62) {\n effects.consume(code);\n return completeAfter;\n }\n return nok(code);\n }\n\n /**\n * After `>` in a complete tag.\n *\n * ```markdown\n * > | <x>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n // // Do not form containers.\n // tokenizer.concrete = true\n return continuation(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return completeAfter;\n }\n return nok(code);\n }\n\n /**\n * In continuation of any HTML kind.\n *\n * ```markdown\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */\n function continuation(code) {\n if (code === 45 && marker === 2) {\n effects.consume(code);\n return continuationCommentInside;\n }\n if (code === 60 && marker === 1) {\n effects.consume(code);\n return continuationRawTagOpen;\n }\n if (code === 62 && marker === 4) {\n effects.consume(code);\n return continuationClose;\n }\n if (code === 63 && marker === 3) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n if (code === 93 && marker === 5) {\n effects.consume(code);\n return continuationCdataInside;\n }\n if (markdownLineEnding(code) && (marker === 6 || marker === 7)) {\n effects.exit(\"htmlFlowData\");\n return effects.check(blankLineBefore, continuationAfter, continuationStart)(code);\n }\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"htmlFlowData\");\n return continuationStart(code);\n }\n effects.consume(code);\n return continuation;\n }\n\n /**\n * In continuation, at eol.\n *\n * ```markdown\n * > | <x>\n * ^\n * | asd\n * ```\n *\n * @type {State}\n */\n function continuationStart(code) {\n return effects.check(nonLazyContinuationStart, continuationStartNonLazy, continuationAfter)(code);\n }\n\n /**\n * In continuation, at eol, before non-lazy content.\n *\n * ```markdown\n * > | <x>\n * ^\n * | asd\n * ```\n *\n * @type {State}\n */\n function continuationStartNonLazy(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return continuationBefore;\n }\n\n /**\n * In continuation, before non-lazy content.\n *\n * ```markdown\n * | <x>\n * > | asd\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n return continuationStart(code);\n }\n effects.enter(\"htmlFlowData\");\n return continuation(code);\n }\n\n /**\n * In comment continuation, after one `-`, expecting another.\n *\n * ```markdown\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCommentInside(code) {\n if (code === 45) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n return continuation(code);\n }\n\n /**\n * In raw continuation, after `<`, at `/`.\n *\n * ```markdown\n * > | <script>console.log(1)</script>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code);\n buffer = '';\n return continuationRawEndTag;\n }\n return continuation(code);\n }\n\n /**\n * In raw continuation, after `</`, in a raw tag name.\n *\n * ```markdown\n * > | <script>console.log(1)</script>\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function continuationRawEndTag(code) {\n if (code === 62) {\n const name = buffer.toLowerCase();\n if (htmlRawNames.includes(name)) {\n effects.consume(code);\n return continuationClose;\n }\n return continuation(code);\n }\n if (asciiAlpha(code) && buffer.length < 8) {\n // Always the case.\n effects.consume(code);\n buffer += String.fromCharCode(code);\n return continuationRawEndTag;\n }\n return continuation(code);\n }\n\n /**\n * In cdata continuation, after `]`, expecting `]>`.\n *\n * ```markdown\n * > | <![CDATA[>&<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCdataInside(code) {\n if (code === 93) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n return continuation(code);\n }\n\n /**\n * In declaration or instruction continuation, at `>`.\n *\n * ```markdown\n * > | <!-->\n * ^\n * > | <?>\n * ^\n * > | <!q>\n * ^\n * > | <!--ab-->\n * ^\n * > | <![CDATA[>&<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code);\n return continuationClose;\n }\n\n // More dashes.\n if (code === 45 && marker === 2) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n return continuation(code);\n }\n\n /**\n * In closed continuation: everything we get until the eol/eof is part of it.\n *\n * ```markdown\n * > | <!doctype>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationClose(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"htmlFlowData\");\n return continuationAfter(code);\n }\n effects.consume(code);\n return continuationClose;\n }\n\n /**\n * Done.\n *\n * ```markdown\n * > | <!doctype>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationAfter(code) {\n effects.exit(\"htmlFlow\");\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n // // No longer concrete.\n // tokenizer.concrete = false\n return ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuationStart(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * At eol, before continuation.\n *\n * ```markdown\n * > | * ```js\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return after;\n }\n return nok(code);\n }\n\n /**\n * A continuation.\n *\n * ```markdown\n * | * ```js\n * > | b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLineBefore(effects, ok, nok) {\n return start;\n\n /**\n * Before eol, expecting blank line.\n *\n * ```markdown\n * > | <div>\n * ^\n * |\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return effects.attempt(blankLine, ok, nok);\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { asciiAlphanumeric, asciiAlpha, markdownLineEndingOrSpace, markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlText(effects, ok, nok) {\n const self = this;\n /** @type {NonNullable<Code> | undefined} */\n let marker;\n /** @type {number} */\n let index;\n /** @type {State} */\n let returnState;\n return start;\n\n /**\n * Start of HTML (text).\n *\n * ```markdown\n * > | a <b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"htmlText\");\n effects.enter(\"htmlTextData\");\n effects.consume(code);\n return open;\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | a <b> c\n * ^\n * > | a <!doctype> c\n * ^\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 33) {\n effects.consume(code);\n return declarationOpen;\n }\n if (code === 47) {\n effects.consume(code);\n return tagCloseStart;\n }\n if (code === 63) {\n effects.consume(code);\n return instruction;\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code);\n return tagOpen;\n }\n return nok(code);\n }\n\n /**\n * After `<!`, at declaration, comment, or CDATA.\n *\n * ```markdown\n * > | a <!doctype> c\n * ^\n * > | a <!--b--> c\n * ^\n * > | a <![CDATA[>&<]]> c\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code);\n return commentOpenInside;\n }\n if (code === 91) {\n effects.consume(code);\n index = 0;\n return cdataOpenInside;\n }\n if (asciiAlpha(code)) {\n effects.consume(code);\n return declaration;\n }\n return nok(code);\n }\n\n /**\n * In a comment, after `<!-`, at another `-`.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code);\n return commentEnd;\n }\n return nok(code);\n }\n\n /**\n * In comment.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function comment(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 45) {\n effects.consume(code);\n return commentClose;\n }\n if (markdownLineEnding(code)) {\n returnState = comment;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return comment;\n }\n\n /**\n * In comment, after `-`.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code);\n return commentEnd;\n }\n return comment(code);\n }\n\n /**\n * In comment, after `--`.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentEnd(code) {\n return code === 62 ? end(code) : code === 45 ? commentClose(code) : comment(code);\n }\n\n /**\n * After `<![`, in CDATA, expecting `CDATA[`.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = \"CDATA[\";\n if (code === value.charCodeAt(index++)) {\n effects.consume(code);\n return index === value.length ? cdata : cdataOpenInside;\n }\n return nok(code);\n }\n\n /**\n * In CDATA.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^^^\n * ```\n *\n * @type {State}\n */\n function cdata(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 93) {\n effects.consume(code);\n return cdataClose;\n }\n if (markdownLineEnding(code)) {\n returnState = cdata;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return cdata;\n }\n\n /**\n * In CDATA, after `]`, at another `]`.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code);\n return cdataEnd;\n }\n return cdata(code);\n }\n\n /**\n * In CDATA, after `]]`, at `>`.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataEnd(code) {\n if (code === 62) {\n return end(code);\n }\n if (code === 93) {\n effects.consume(code);\n return cdataEnd;\n }\n return cdata(code);\n }\n\n /**\n * In declaration.\n *\n * ```markdown\n * > | a <!b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code);\n }\n if (markdownLineEnding(code)) {\n returnState = declaration;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return declaration;\n }\n\n /**\n * In instruction.\n *\n * ```markdown\n * > | a <?b?> c\n * ^\n * ```\n *\n * @type {State}\n */\n function instruction(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 63) {\n effects.consume(code);\n return instructionClose;\n }\n if (markdownLineEnding(code)) {\n returnState = instruction;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return instruction;\n }\n\n /**\n * In instruction, after `?`, at `>`.\n *\n * ```markdown\n * > | a <?b?> c\n * ^\n * ```\n *\n * @type {State}\n */\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code);\n }\n\n /**\n * After `</`, in closing tag, at tag name.\n *\n * ```markdown\n * > | a </b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code);\n return tagClose;\n }\n return nok(code);\n }\n\n /**\n * After `</x`, in a tag name.\n *\n * ```markdown\n * > | a </b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagClose(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagClose;\n }\n return tagCloseBetween(code);\n }\n\n /**\n * In closing tag, after tag name.\n *\n * ```markdown\n * > | a </b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagCloseBetween;\n }\n return end(code);\n }\n\n /**\n * After `<x`, in opening tag name.\n *\n * ```markdown\n * > | a <b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpen(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagOpen;\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n return nok(code);\n }\n\n /**\n * In opening tag, after tag name.\n *\n * ```markdown\n * > | a <b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code);\n return end;\n }\n\n // ASCII alphabetical and `:` and `_`.\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code);\n return tagOpenAttributeName;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenBetween;\n }\n return end(code);\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | a <b c> d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeName(code) {\n // ASCII alphabetical and `-`, `.`, `:`, and `_`.\n if (code === 45 || code === 46 || code === 58 || code === 95 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagOpenAttributeName;\n }\n return tagOpenAttributeNameAfter(code);\n }\n\n /**\n * After attribute name, before initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | a <b c> d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code);\n return tagOpenAttributeValueBefore;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenAttributeNameAfter;\n }\n return tagOpenBetween(code);\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | a <b c=d> e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueBefore(code) {\n if (code === null || code === 60 || code === 61 || code === 62 || code === 96) {\n return nok(code);\n }\n if (code === 34 || code === 39) {\n effects.consume(code);\n marker = code;\n return tagOpenAttributeValueQuoted;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenAttributeValueBefore;\n }\n effects.consume(code);\n return tagOpenAttributeValueUnquoted;\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | a <b c=\"d\"> e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code);\n marker = undefined;\n return tagOpenAttributeValueQuotedAfter;\n }\n if (code === null) {\n return nok(code);\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return tagOpenAttributeValueQuoted;\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | a <b c=d> e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueUnquoted(code) {\n if (code === null || code === 34 || code === 39 || code === 60 || code === 61 || code === 96) {\n return nok(code);\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n effects.consume(code);\n return tagOpenAttributeValueUnquoted;\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the end\n * of the tag.\n *\n * ```markdown\n * > | a <b c=\"d\"> e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n return nok(code);\n }\n\n /**\n * In certain circumstances of a tag where only an `>` is allowed.\n *\n * ```markdown\n * > | a <b c=\"d\"> e\n * ^\n * ```\n *\n * @type {State}\n */\n function end(code) {\n if (code === 62) {\n effects.consume(code);\n effects.exit(\"htmlTextData\");\n effects.exit(\"htmlText\");\n return ok;\n }\n return nok(code);\n }\n\n /**\n * At eol.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * > | a <!--a\n * ^\n * | b-->\n * ```\n *\n * @type {State}\n */\n function lineEndingBefore(code) {\n effects.exit(\"htmlTextData\");\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return lineEndingAfter;\n }\n\n /**\n * After eol, at optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a <!--a\n * > | b-->\n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfter(code) {\n // Always populated by defaults.\n\n return markdownSpace(code) ? factorySpace(effects, lineEndingAfterPrefix, \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code) : lineEndingAfterPrefix(code);\n }\n\n /**\n * After eol, after optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a <!--a\n * > | b-->\n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfterPrefix(code) {\n effects.enter(\"htmlTextData\");\n return returnState(code);\n }\n}","/**\n * @import {\n * Construct,\n * Event,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer,\n * Token\n * } from 'micromark-util-types'\n */\n\nimport { factoryDestination } from 'micromark-factory-destination';\nimport { factoryLabel } from 'micromark-factory-label';\nimport { factoryTitle } from 'micromark-factory-title';\nimport { factoryWhitespace } from 'micromark-factory-whitespace';\nimport { markdownLineEndingOrSpace } from 'micromark-util-character';\nimport { push, splice } from 'micromark-util-chunked';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/** @type {Construct} */\nexport const labelEnd = {\n name: 'labelEnd',\n resolveAll: resolveAllLabelEnd,\n resolveTo: resolveToLabelEnd,\n tokenize: tokenizeLabelEnd\n};\n\n/** @type {Construct} */\nconst resourceConstruct = {\n tokenize: tokenizeResource\n};\n/** @type {Construct} */\nconst referenceFullConstruct = {\n tokenize: tokenizeReferenceFull\n};\n/** @type {Construct} */\nconst referenceCollapsedConstruct = {\n tokenize: tokenizeReferenceCollapsed\n};\n\n/** @type {Resolver} */\nfunction resolveAllLabelEnd(events) {\n let index = -1;\n /** @type {Array<Event>} */\n const newEvents = [];\n while (++index < events.length) {\n const token = events[index][1];\n newEvents.push(events[index]);\n if (token.type === \"labelImage\" || token.type === \"labelLink\" || token.type === \"labelEnd\") {\n // Remove the marker.\n const offset = token.type === \"labelImage\" ? 4 : 2;\n token.type = \"data\";\n index += offset;\n }\n }\n\n // If the events are equal, we don't have to copy newEvents to events\n if (events.length !== newEvents.length) {\n splice(events, 0, events.length, newEvents);\n }\n return events;\n}\n\n/** @type {Resolver} */\nfunction resolveToLabelEnd(events, context) {\n let index = events.length;\n let offset = 0;\n /** @type {Token} */\n let token;\n /** @type {number | undefined} */\n let open;\n /** @type {number | undefined} */\n let close;\n /** @type {Array<Event>} */\n let media;\n\n // Find an opening.\n while (index--) {\n token = events[index][1];\n if (open) {\n // If we see another link, or inactive link label, we’ve been here before.\n if (token.type === \"link\" || token.type === \"labelLink\" && token._inactive) {\n break;\n }\n\n // Mark other link openings as inactive, as we can’t have links in\n // links.\n if (events[index][0] === 'enter' && token.type === \"labelLink\") {\n token._inactive = true;\n }\n } else if (close) {\n if (events[index][0] === 'enter' && (token.type === \"labelImage\" || token.type === \"labelLink\") && !token._balanced) {\n open = index;\n if (token.type !== \"labelLink\") {\n offset = 2;\n break;\n }\n }\n } else if (token.type === \"labelEnd\") {\n close = index;\n }\n }\n const group = {\n type: events[open][1].type === \"labelLink\" ? \"link\" : \"image\",\n start: {\n ...events[open][1].start\n },\n end: {\n ...events[events.length - 1][1].end\n }\n };\n const label = {\n type: \"label\",\n start: {\n ...events[open][1].start\n },\n end: {\n ...events[close][1].end\n }\n };\n const text = {\n type: \"labelText\",\n start: {\n ...events[open + offset + 2][1].end\n },\n end: {\n ...events[close - 2][1].start\n }\n };\n media = [['enter', group, context], ['enter', label, context]];\n\n // Opening marker.\n media = push(media, events.slice(open + 1, open + offset + 3));\n\n // Text open.\n media = push(media, [['enter', text, context]]);\n\n // Always populated by defaults.\n\n // Between.\n media = push(media, resolveAll(context.parser.constructs.insideSpan.null, events.slice(open + offset + 4, close - 3), context));\n\n // Text close, marker close, label close.\n media = push(media, [['exit', text, context], events[close - 2], events[close - 1], ['exit', label, context]]);\n\n // Reference, resource, or so.\n media = push(media, events.slice(close + 1));\n\n // Media close.\n media = push(media, [['exit', group, context]]);\n splice(events, open, events.length, media);\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLabelEnd(effects, ok, nok) {\n const self = this;\n let index = self.events.length;\n /** @type {Token} */\n let labelStart;\n /** @type {boolean} */\n let defined;\n\n // Find an opening.\n while (index--) {\n if ((self.events[index][1].type === \"labelImage\" || self.events[index][1].type === \"labelLink\") && !self.events[index][1]._balanced) {\n labelStart = self.events[index][1];\n break;\n }\n }\n return start;\n\n /**\n * Start of label end.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // If there is not an okay opening.\n if (!labelStart) {\n return nok(code);\n }\n\n // If the corresponding label (link) start is marked as inactive,\n // it means we’d be wrapping a link, like this:\n //\n // ```markdown\n // > | a [b [c](d) e](f) g.\n // ^\n // ```\n //\n // We can’t have that, so it’s just balanced brackets.\n if (labelStart._inactive) {\n return labelEndNok(code);\n }\n defined = self.parser.defined.includes(normalizeIdentifier(self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })));\n effects.enter(\"labelEnd\");\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelEnd\");\n return after;\n }\n\n /**\n * After `]`.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // Note: `markdown-rs` also parses GFM footnotes here, which for us is in\n // an extension.\n\n // Resource (`[asd](fgh)`)?\n if (code === 40) {\n return effects.attempt(resourceConstruct, labelEndOk, defined ? labelEndOk : labelEndNok)(code);\n }\n\n // Full (`[asd][fgh]`) or collapsed (`[asd][]`) reference?\n if (code === 91) {\n return effects.attempt(referenceFullConstruct, labelEndOk, defined ? referenceNotFull : labelEndNok)(code);\n }\n\n // Shortcut (`[asd]`) reference?\n return defined ? labelEndOk(code) : labelEndNok(code);\n }\n\n /**\n * After `]`, at `[`, but not at a full reference.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceNotFull(code) {\n return effects.attempt(referenceCollapsedConstruct, labelEndOk, labelEndNok)(code);\n }\n\n /**\n * Done, we found something.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndOk(code) {\n // Note: `markdown-rs` does a bunch of stuff here.\n return ok(code);\n }\n\n /**\n * Done, it’s nothing.\n *\n * There was an okay opening, but we didn’t match anything.\n *\n * ```markdown\n * > | [a](b c\n * ^\n * > | [a][b c\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndNok(code) {\n labelStart._balanced = true;\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeResource(effects, ok, nok) {\n return resourceStart;\n\n /**\n * At a resource.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceStart(code) {\n effects.enter(\"resource\");\n effects.enter(\"resourceMarker\");\n effects.consume(code);\n effects.exit(\"resourceMarker\");\n return resourceBefore;\n }\n\n /**\n * In resource, after `(`, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBefore(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceOpen)(code) : resourceOpen(code);\n }\n\n /**\n * In resource, after optional whitespace, at `)` or a destination.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceOpen(code) {\n if (code === 41) {\n return resourceEnd(code);\n }\n return factoryDestination(effects, resourceDestinationAfter, resourceDestinationMissing, \"resourceDestination\", \"resourceDestinationLiteral\", \"resourceDestinationLiteralMarker\", \"resourceDestinationRaw\", \"resourceDestinationString\", 32)(code);\n }\n\n /**\n * In resource, after destination, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationAfter(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceBetween)(code) : resourceEnd(code);\n }\n\n /**\n * At invalid destination.\n *\n * ```markdown\n * > | [a](<<) b\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationMissing(code) {\n return nok(code);\n }\n\n /**\n * In resource, after destination and whitespace, at `(` or title.\n *\n * ```markdown\n * > | [a](b ) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBetween(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(effects, resourceTitleAfter, nok, \"resourceTitle\", \"resourceTitleMarker\", \"resourceTitleString\")(code);\n }\n return resourceEnd(code);\n }\n\n /**\n * In resource, after title, at optional whitespace.\n *\n * ```markdown\n * > | [a](b \"c\") d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceTitleAfter(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceEnd)(code) : resourceEnd(code);\n }\n\n /**\n * In resource, at `)`.\n *\n * ```markdown\n * > | [a](b) d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceEnd(code) {\n if (code === 41) {\n effects.enter(\"resourceMarker\");\n effects.consume(code);\n effects.exit(\"resourceMarker\");\n effects.exit(\"resource\");\n return ok;\n }\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceFull(effects, ok, nok) {\n const self = this;\n return referenceFull;\n\n /**\n * In a reference (full), at the `[`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFull(code) {\n return factoryLabel.call(self, effects, referenceFullAfter, referenceFullMissing, \"reference\", \"referenceMarker\", \"referenceString\")(code);\n }\n\n /**\n * In a reference (full), after `]`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullAfter(code) {\n return self.parser.defined.includes(normalizeIdentifier(self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1))) ? ok(code) : nok(code);\n }\n\n /**\n * In reference (full) that was missing.\n *\n * ```markdown\n * > | [a][b d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullMissing(code) {\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceCollapsed(effects, ok, nok) {\n return referenceCollapsedStart;\n\n /**\n * In reference (collapsed), at `[`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedStart(code) {\n // We only attempt a collapsed label if there’s a `[`.\n\n effects.enter(\"reference\");\n effects.enter(\"referenceMarker\");\n effects.consume(code);\n effects.exit(\"referenceMarker\");\n return referenceCollapsedOpen;\n }\n\n /**\n * In reference (collapsed), at `]`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedOpen(code) {\n if (code === 93) {\n effects.enter(\"referenceMarker\");\n effects.consume(code);\n effects.exit(\"referenceMarker\");\n effects.exit(\"reference\");\n return ok;\n }\n return nok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { labelEnd } from './label-end.js';\n\n/** @type {Construct} */\nexport const labelStartImage = {\n name: 'labelStartImage',\n resolveAll: labelEnd.resolveAll,\n tokenize: tokenizeLabelStartImage\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * Start of label (image) start.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"labelImage\");\n effects.enter(\"labelImageMarker\");\n effects.consume(code);\n effects.exit(\"labelImageMarker\");\n return open;\n }\n\n /**\n * After `!`, at `[`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 91) {\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelImage\");\n return after;\n }\n return nok(code);\n }\n\n /**\n * After `![`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * This is needed in because, when GFM footnotes are enabled, images never\n * form when started with a `^`.\n * Instead, links form:\n *\n * ```markdown\n * ![^a](b)\n *\n * ![^a][b]\n *\n * [b]: c\n * ```\n *\n * ```html\n * <p>!<a href=\\\"b\\\">^a</a></p>\n * <p>!<a href=\\\"c\\\">^a</a></p>\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // To do: use a new field to do this, this is still needed for\n // `micromark-extension-gfm-footnote`, but the `label-start-link`\n // behavior isn’t.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs ? nok(code) : ok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { labelEnd } from './label-end.js';\n\n/** @type {Construct} */\nexport const labelStartLink = {\n name: 'labelStartLink',\n resolveAll: labelEnd.resolveAll,\n tokenize: tokenizeLabelStartLink\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * Start of label (link) start.\n *\n * ```markdown\n * > | a [b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"labelLink\");\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelLink\");\n return after;\n }\n\n /** @type {State} */\n function after(code) {\n // To do: this isn’t needed in `micromark-extension-gfm-footnote`,\n // remove.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs ? nok(code) : ok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLineEnding(effects, ok) {\n return start;\n\n /** @type {State} */\n function start(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return factorySpace(effects, ok, \"linePrefix\");\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const thematicBreak = {\n name: 'thematicBreak',\n tokenize: tokenizeThematicBreak\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeThematicBreak(effects, ok, nok) {\n let size = 0;\n /** @type {NonNullable<Code>} */\n let marker;\n return start;\n\n /**\n * Start of thematic break.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"thematicBreak\");\n // To do: parse indent like `markdown-rs`.\n return before(code);\n }\n\n /**\n * After optional whitespace, at marker.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n marker = code;\n return atBreak(code);\n }\n\n /**\n * After something, before something else.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === marker) {\n effects.enter(\"thematicBreakSequence\");\n return sequence(code);\n }\n if (size >= 3 && (code === null || markdownLineEnding(code))) {\n effects.exit(\"thematicBreak\");\n return ok(code);\n }\n return nok(code);\n }\n\n /**\n * In sequence.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function sequence(code) {\n if (code === marker) {\n effects.consume(code);\n size++;\n return sequence;\n }\n effects.exit(\"thematicBreakSequence\");\n return markdownSpace(code) ? factorySpace(effects, atBreak, \"whitespace\")(code) : atBreak(code);\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * Exiter,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { asciiDigit, markdownSpace } from 'micromark-util-character';\nimport { blankLine } from './blank-line.js';\nimport { thematicBreak } from './thematic-break.js';\n\n/** @type {Construct} */\nexport const list = {\n continuation: {\n tokenize: tokenizeListContinuation\n },\n exit: tokenizeListEnd,\n name: 'list',\n tokenize: tokenizeListStart\n};\n\n/** @type {Construct} */\nconst listItemPrefixWhitespaceConstruct = {\n partial: true,\n tokenize: tokenizeListItemPrefixWhitespace\n};\n\n/** @type {Construct} */\nconst indentConstruct = {\n partial: true,\n tokenize: tokenizeIndent\n};\n\n// To do: `markdown-rs` parses list items on their own and later stitches them\n// together.\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeListStart(effects, ok, nok) {\n const self = this;\n const tail = self.events[self.events.length - 1];\n let initialSize = tail && tail[1].type === \"linePrefix\" ? tail[2].sliceSerialize(tail[1], true).length : 0;\n let size = 0;\n return start;\n\n /** @type {State} */\n function start(code) {\n const kind = self.containerState.type || (code === 42 || code === 43 || code === 45 ? \"listUnordered\" : \"listOrdered\");\n if (kind === \"listUnordered\" ? !self.containerState.marker || code === self.containerState.marker : asciiDigit(code)) {\n if (!self.containerState.type) {\n self.containerState.type = kind;\n effects.enter(kind, {\n _container: true\n });\n }\n if (kind === \"listUnordered\") {\n effects.enter(\"listItemPrefix\");\n return code === 42 || code === 45 ? effects.check(thematicBreak, nok, atMarker)(code) : atMarker(code);\n }\n if (!self.interrupt || code === 49) {\n effects.enter(\"listItemPrefix\");\n effects.enter(\"listItemValue\");\n return inside(code);\n }\n }\n return nok(code);\n }\n\n /** @type {State} */\n function inside(code) {\n if (asciiDigit(code) && ++size < 10) {\n effects.consume(code);\n return inside;\n }\n if ((!self.interrupt || size < 2) && (self.containerState.marker ? code === self.containerState.marker : code === 41 || code === 46)) {\n effects.exit(\"listItemValue\");\n return atMarker(code);\n }\n return nok(code);\n }\n\n /**\n * @type {State}\n **/\n function atMarker(code) {\n effects.enter(\"listItemMarker\");\n effects.consume(code);\n effects.exit(\"listItemMarker\");\n self.containerState.marker = self.containerState.marker || code;\n return effects.check(blankLine,\n // Can’t be empty when interrupting.\n self.interrupt ? nok : onBlank, effects.attempt(listItemPrefixWhitespaceConstruct, endOfPrefix, otherPrefix));\n }\n\n /** @type {State} */\n function onBlank(code) {\n self.containerState.initialBlankLine = true;\n initialSize++;\n return endOfPrefix(code);\n }\n\n /** @type {State} */\n function otherPrefix(code) {\n if (markdownSpace(code)) {\n effects.enter(\"listItemPrefixWhitespace\");\n effects.consume(code);\n effects.exit(\"listItemPrefixWhitespace\");\n return endOfPrefix;\n }\n return nok(code);\n }\n\n /** @type {State} */\n function endOfPrefix(code) {\n self.containerState.size = initialSize + self.sliceSerialize(effects.exit(\"listItemPrefix\"), true).length;\n return ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeListContinuation(effects, ok, nok) {\n const self = this;\n self.containerState._closeFlow = undefined;\n return effects.check(blankLine, onBlank, notBlank);\n\n /** @type {State} */\n function onBlank(code) {\n self.containerState.furtherBlankLines = self.containerState.furtherBlankLines || self.containerState.initialBlankLine;\n\n // We have a blank line.\n // Still, try to consume at most the items size.\n return factorySpace(effects, ok, \"listItemIndent\", self.containerState.size + 1)(code);\n }\n\n /** @type {State} */\n function notBlank(code) {\n if (self.containerState.furtherBlankLines || !markdownSpace(code)) {\n self.containerState.furtherBlankLines = undefined;\n self.containerState.initialBlankLine = undefined;\n return notInCurrentItem(code);\n }\n self.containerState.furtherBlankLines = undefined;\n self.containerState.initialBlankLine = undefined;\n return effects.attempt(indentConstruct, ok, notInCurrentItem)(code);\n }\n\n /** @type {State} */\n function notInCurrentItem(code) {\n // While we do continue, we signal that the flow should be closed.\n self.containerState._closeFlow = true;\n // As we’re closing flow, we’re no longer interrupting.\n self.interrupt = undefined;\n // Always populated by defaults.\n\n return factorySpace(effects, effects.attempt(list, ok, nok), \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeIndent(effects, ok, nok) {\n const self = this;\n return factorySpace(effects, afterPrefix, \"listItemIndent\", self.containerState.size + 1);\n\n /** @type {State} */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1];\n return tail && tail[1].type === \"listItemIndent\" && tail[2].sliceSerialize(tail[1], true).length === self.containerState.size ? ok(code) : nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Exiter}\n */\nfunction tokenizeListEnd(effects) {\n effects.exit(this.containerState.type);\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n const self = this;\n\n // Always populated by defaults.\n\n return factorySpace(effects, afterPrefix, \"listItemPrefixWhitespace\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4 + 1);\n\n /** @type {State} */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1];\n return !markdownSpace(code) && tail && tail[1].type === \"listItemPrefixWhitespace\" ? ok(code) : nok(code);\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const setextUnderline = {\n name: 'setextUnderline',\n resolveTo: resolveToSetextUnderline,\n tokenize: tokenizeSetextUnderline\n};\n\n/** @type {Resolver} */\nfunction resolveToSetextUnderline(events, context) {\n // To do: resolve like `markdown-rs`.\n let index = events.length;\n /** @type {number | undefined} */\n let content;\n /** @type {number | undefined} */\n let text;\n /** @type {number | undefined} */\n let definition;\n\n // Find the opening of the content.\n // It’ll always exist: we don’t tokenize if it isn’t there.\n while (index--) {\n if (events[index][0] === 'enter') {\n if (events[index][1].type === \"content\") {\n content = index;\n break;\n }\n if (events[index][1].type === \"paragraph\") {\n text = index;\n }\n }\n // Exit\n else {\n if (events[index][1].type === \"content\") {\n // Remove the content end (if needed we’ll add it later)\n events.splice(index, 1);\n }\n if (!definition && events[index][1].type === \"definition\") {\n definition = index;\n }\n }\n }\n const heading = {\n type: \"setextHeading\",\n start: {\n ...events[content][1].start\n },\n end: {\n ...events[events.length - 1][1].end\n }\n };\n\n // Change the paragraph to setext heading text.\n events[text][1].type = \"setextHeadingText\";\n\n // If we have definitions in the content, we’ll keep on having content,\n // but we need move it.\n if (definition) {\n events.splice(text, 0, ['enter', heading, context]);\n events.splice(definition + 1, 0, ['exit', events[content][1], context]);\n events[content][1].end = {\n ...events[definition][1].end\n };\n } else {\n events[content][1] = heading;\n }\n\n // Add the heading exit at the end.\n events.push(['exit', heading, context]);\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n const self = this;\n /** @type {NonNullable<Code>} */\n let marker;\n return start;\n\n /**\n * At start of heading (setext) underline.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n let index = self.events.length;\n /** @type {boolean | undefined} */\n let paragraph;\n // Find an opening.\n while (index--) {\n // Skip enter/exit of line ending, line prefix, and content.\n // We can now either have a definition or a paragraph.\n if (self.events[index][1].type !== \"lineEnding\" && self.events[index][1].type !== \"linePrefix\" && self.events[index][1].type !== \"content\") {\n paragraph = self.events[index][1].type === \"paragraph\";\n break;\n }\n }\n\n // To do: handle lazy/pierce like `markdown-rs`.\n // To do: parse indent like `markdown-rs`.\n if (!self.parser.lazy[self.now().line] && (self.interrupt || paragraph)) {\n effects.enter(\"setextHeadingLine\");\n marker = code;\n return before(code);\n }\n return nok(code);\n }\n\n /**\n * After optional whitespace, at `-` or `=`.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter(\"setextHeadingLineSequence\");\n return inside(code);\n }\n\n /**\n * In sequence.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code);\n return inside;\n }\n effects.exit(\"setextHeadingLineSequence\");\n return markdownSpace(code) ? factorySpace(effects, after, \"lineSuffix\")(code) : after(code);\n }\n\n /**\n * After sequence, after optional whitespace.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"setextHeadingLine\");\n return ok(code);\n }\n return nok(code);\n }\n}","/**\n * @import {\n * InitialConstruct,\n * Initializer,\n * State,\n * TokenizeContext\n * } from 'micromark-util-types'\n */\n\nimport { blankLine, content } from 'micromark-core-commonmark';\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {InitialConstruct} */\nexport const flow = {\n tokenize: initializeFlow\n};\n\n/**\n * @this {TokenizeContext}\n * Self.\n * @type {Initializer}\n * Initializer.\n */\nfunction initializeFlow(effects) {\n const self = this;\n const initial = effects.attempt(\n // Try to parse a blank line.\n blankLine, atBlankEnding,\n // Try to parse initial flow (essentially, only code).\n effects.attempt(this.parser.constructs.flowInitial, afterConstruct, factorySpace(effects, effects.attempt(this.parser.constructs.flow, afterConstruct, effects.attempt(content, afterConstruct)), \"linePrefix\")));\n return initial;\n\n /** @type {State} */\n function atBlankEnding(code) {\n if (code === null) {\n effects.consume(code);\n return;\n }\n effects.enter(\"lineEndingBlank\");\n effects.consume(code);\n effects.exit(\"lineEndingBlank\");\n self.currentConstruct = undefined;\n return initial;\n }\n\n /** @type {State} */\n function afterConstruct(code) {\n if (code === null) {\n effects.consume(code);\n return;\n }\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n self.currentConstruct = undefined;\n return initial;\n }\n}","/**\n * @import {\n * Code,\n * InitialConstruct,\n * Initializer,\n * Resolver,\n * State,\n * TokenizeContext\n * } from 'micromark-util-types'\n */\n\nexport const resolver = {\n resolveAll: createResolver()\n};\nexport const string = initializeFactory('string');\nexport const text = initializeFactory('text');\n\n/**\n * @param {'string' | 'text'} field\n * Field.\n * @returns {InitialConstruct}\n * Construct.\n */\nfunction initializeFactory(field) {\n return {\n resolveAll: createResolver(field === 'text' ? resolveAllLineSuffixes : undefined),\n tokenize: initializeText\n };\n\n /**\n * @this {TokenizeContext}\n * Context.\n * @type {Initializer}\n */\n function initializeText(effects) {\n const self = this;\n const constructs = this.parser.constructs[field];\n const text = effects.attempt(constructs, start, notText);\n return start;\n\n /** @type {State} */\n function start(code) {\n return atBreak(code) ? text(code) : notText(code);\n }\n\n /** @type {State} */\n function notText(code) {\n if (code === null) {\n effects.consume(code);\n return;\n }\n effects.enter(\"data\");\n effects.consume(code);\n return data;\n }\n\n /** @type {State} */\n function data(code) {\n if (atBreak(code)) {\n effects.exit(\"data\");\n return text(code);\n }\n\n // Data.\n effects.consume(code);\n return data;\n }\n\n /**\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether the code is a break.\n */\n function atBreak(code) {\n if (code === null) {\n return true;\n }\n const list = constructs[code];\n let index = -1;\n if (list) {\n // Always populated by defaults.\n\n while (++index < list.length) {\n const item = list[index];\n if (!item.previous || item.previous.call(self, self.previous)) {\n return true;\n }\n }\n }\n return false;\n }\n }\n}\n\n/**\n * @param {Resolver | undefined} [extraResolver]\n * Resolver.\n * @returns {Resolver}\n * Resolver.\n */\nfunction createResolver(extraResolver) {\n return resolveAllText;\n\n /** @type {Resolver} */\n function resolveAllText(events, context) {\n let index = -1;\n /** @type {number | undefined} */\n let enter;\n\n // A rather boring computation (to merge adjacent `data` events) which\n // improves mm performance by 29%.\n while (++index <= events.length) {\n if (enter === undefined) {\n if (events[index] && events[index][1].type === \"data\") {\n enter = index;\n index++;\n }\n } else if (!events[index] || events[index][1].type !== \"data\") {\n // Don’t do anything if there is one data token.\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end;\n events.splice(enter + 2, index - enter - 2);\n index = enter + 2;\n }\n enter = undefined;\n }\n }\n return extraResolver ? extraResolver(events, context) : events;\n }\n}\n\n/**\n * A rather ugly set of instructions which again looks at chunks in the input\n * stream.\n * The reason to do this here is that it is *much* faster to parse in reverse.\n * And that we can’t hook into `null` to split the line suffix before an EOF.\n * To do: figure out if we can make this into a clean utility, or even in core.\n * As it will be useful for GFMs literal autolink extension (and maybe even\n * tables?)\n *\n * @type {Resolver}\n */\nfunction resolveAllLineSuffixes(events, context) {\n let eventIndex = 0; // Skip first.\n\n while (++eventIndex <= events.length) {\n if ((eventIndex === events.length || events[eventIndex][1].type === \"lineEnding\") && events[eventIndex - 1][1].type === \"data\") {\n const data = events[eventIndex - 1][1];\n const chunks = context.sliceStream(data);\n let index = chunks.length;\n let bufferIndex = -1;\n let size = 0;\n /** @type {boolean | undefined} */\n let tabs;\n while (index--) {\n const chunk = chunks[index];\n if (typeof chunk === 'string') {\n bufferIndex = chunk.length;\n while (chunk.charCodeAt(bufferIndex - 1) === 32) {\n size++;\n bufferIndex--;\n }\n if (bufferIndex) break;\n bufferIndex = -1;\n }\n // Number\n else if (chunk === -2) {\n tabs = true;\n size++;\n } else if (chunk === -1) {\n // Empty\n } else {\n // Replacement character, exit.\n index++;\n break;\n }\n }\n\n // Allow final trailing whitespace.\n if (context._contentTypeTextTrailing && eventIndex === events.length) {\n size = 0;\n }\n if (size) {\n const token = {\n type: eventIndex === events.length || tabs || size < 2 ? \"lineSuffix\" : \"hardBreakTrailing\",\n start: {\n _bufferIndex: index ? bufferIndex : data.start._bufferIndex + bufferIndex,\n _index: data.start._index + index,\n line: data.end.line,\n column: data.end.column - size,\n offset: data.end.offset - size\n },\n end: {\n ...data.end\n }\n };\n data.end = {\n ...token.start\n };\n if (data.start.offset === data.end.offset) {\n Object.assign(data, token);\n } else {\n events.splice(eventIndex, 0, ['enter', token, context], ['exit', token, context]);\n eventIndex += 2;\n }\n }\n eventIndex++;\n }\n }\n return events;\n}","/**\n * @import {Extension} from 'micromark-util-types'\n */\n\nimport { attention, autolink, blockQuote, characterEscape, characterReference, codeFenced, codeIndented, codeText, definition, hardBreakEscape, headingAtx, htmlFlow, htmlText, labelEnd, labelStartImage, labelStartLink, lineEnding, list, setextUnderline, thematicBreak } from 'micromark-core-commonmark';\nimport { resolver as resolveText } from './initialize/text.js';\n\n/** @satisfies {Extension['document']} */\nexport const document = {\n [42]: list,\n [43]: list,\n [45]: list,\n [48]: list,\n [49]: list,\n [50]: list,\n [51]: list,\n [52]: list,\n [53]: list,\n [54]: list,\n [55]: list,\n [56]: list,\n [57]: list,\n [62]: blockQuote\n};\n\n/** @satisfies {Extension['contentInitial']} */\nexport const contentInitial = {\n [91]: definition\n};\n\n/** @satisfies {Extension['flowInitial']} */\nexport const flowInitial = {\n [-2]: codeIndented,\n [-1]: codeIndented,\n [32]: codeIndented\n};\n\n/** @satisfies {Extension['flow']} */\nexport const flow = {\n [35]: headingAtx,\n [42]: thematicBreak,\n [45]: [setextUnderline, thematicBreak],\n [60]: htmlFlow,\n [61]: setextUnderline,\n [95]: thematicBreak,\n [96]: codeFenced,\n [126]: codeFenced\n};\n\n/** @satisfies {Extension['string']} */\nexport const string = {\n [38]: characterReference,\n [92]: characterEscape\n};\n\n/** @satisfies {Extension['text']} */\nexport const text = {\n [-5]: lineEnding,\n [-4]: lineEnding,\n [-3]: lineEnding,\n [33]: labelStartImage,\n [38]: characterReference,\n [42]: attention,\n [60]: [autolink, htmlText],\n [91]: labelStartLink,\n [92]: [hardBreakEscape, characterEscape],\n [93]: labelEnd,\n [95]: attention,\n [96]: codeText\n};\n\n/** @satisfies {Extension['insideSpan']} */\nexport const insideSpan = {\n null: [attention, resolveText]\n};\n\n/** @satisfies {Extension['attentionMarkers']} */\nexport const attentionMarkers = {\n null: [42, 95]\n};\n\n/** @satisfies {Extension['disable']} */\nexport const disable = {\n null: []\n};","/**\n * @import {\n * Chunk,\n * Code,\n * ConstructRecord,\n * Construct,\n * Effects,\n * InitialConstruct,\n * ParseContext,\n * Point,\n * State,\n * TokenizeContext,\n * Token\n * } from 'micromark-util-types'\n */\n\n/**\n * @callback Restore\n * Restore the state.\n * @returns {undefined}\n * Nothing.\n *\n * @typedef Info\n * Info.\n * @property {Restore} restore\n * Restore.\n * @property {number} from\n * From.\n *\n * @callback ReturnHandle\n * Handle a successful run.\n * @param {Construct} construct\n * Construct.\n * @param {Info} info\n * Info.\n * @returns {undefined}\n * Nothing.\n */\n\nimport { markdownLineEnding } from 'micromark-util-character';\nimport { push, splice } from 'micromark-util-chunked';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/**\n * Create a tokenizer.\n * Tokenizers deal with one type of data (e.g., containers, flow, text).\n * The parser is the object dealing with it all.\n * `initialize` works like other constructs, except that only its `tokenize`\n * function is used, in which case it doesn’t receive an `ok` or `nok`.\n * `from` can be given to set the point before the first character, although\n * when further lines are indented, they must be set with `defineSkip`.\n *\n * @param {ParseContext} parser\n * Parser.\n * @param {InitialConstruct} initialize\n * Construct.\n * @param {Omit<Point, '_bufferIndex' | '_index'> | undefined} [from]\n * Point (optional).\n * @returns {TokenizeContext}\n * Context.\n */\nexport function createTokenizer(parser, initialize, from) {\n /** @type {Point} */\n let point = {\n _bufferIndex: -1,\n _index: 0,\n line: from && from.line || 1,\n column: from && from.column || 1,\n offset: from && from.offset || 0\n };\n /** @type {Record<string, number>} */\n const columnStart = {};\n /** @type {Array<Construct>} */\n const resolveAllConstructs = [];\n /** @type {Array<Chunk>} */\n let chunks = [];\n /** @type {Array<Token>} */\n let stack = [];\n /** @type {boolean | undefined} */\n let consumed = true;\n\n /**\n * Tools used for tokenizing.\n *\n * @type {Effects}\n */\n const effects = {\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n consume,\n enter,\n exit,\n interrupt: constructFactory(onsuccessfulcheck, {\n interrupt: true\n })\n };\n\n /**\n * State and tools for resolving and serializing.\n *\n * @type {TokenizeContext}\n */\n const context = {\n code: null,\n containerState: {},\n defineSkip,\n events: [],\n now,\n parser,\n previous: null,\n sliceSerialize,\n sliceStream,\n write\n };\n\n /**\n * The state function.\n *\n * @type {State | undefined}\n */\n let state = initialize.tokenize.call(context, effects);\n\n /**\n * Track which character we expect to be consumed, to catch bugs.\n *\n * @type {Code}\n */\n let expectedCode;\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize);\n }\n return context;\n\n /** @type {TokenizeContext['write']} */\n function write(slice) {\n chunks = push(chunks, slice);\n main();\n\n // Exit if we’re not done, resolve might change stuff.\n if (chunks[chunks.length - 1] !== null) {\n return [];\n }\n addResult(initialize, 0);\n\n // Otherwise, resolve, and exit.\n context.events = resolveAll(resolveAllConstructs, context.events, context);\n return context.events;\n }\n\n //\n // Tools.\n //\n\n /** @type {TokenizeContext['sliceSerialize']} */\n function sliceSerialize(token, expandTabs) {\n return serializeChunks(sliceStream(token), expandTabs);\n }\n\n /** @type {TokenizeContext['sliceStream']} */\n function sliceStream(token) {\n return sliceChunks(chunks, token);\n }\n\n /** @type {TokenizeContext['now']} */\n function now() {\n // This is a hot path, so we clone manually instead of `Object.assign({}, point)`\n const {\n _bufferIndex,\n _index,\n line,\n column,\n offset\n } = point;\n return {\n _bufferIndex,\n _index,\n line,\n column,\n offset\n };\n }\n\n /** @type {TokenizeContext['defineSkip']} */\n function defineSkip(value) {\n columnStart[value.line] = value.column;\n accountForPotentialSkip();\n }\n\n //\n // State management.\n //\n\n /**\n * Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n * `consume`).\n * Here is where we walk through the chunks, which either include strings of\n * several characters, or numerical character codes.\n * The reason to do this in a loop instead of a call is so the stack can\n * drain.\n *\n * @returns {undefined}\n * Nothing.\n */\n function main() {\n /** @type {number} */\n let chunkIndex;\n while (point._index < chunks.length) {\n const chunk = chunks[point._index];\n\n // If we’re in a buffer chunk, loop through it.\n if (typeof chunk === 'string') {\n chunkIndex = point._index;\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0;\n }\n while (point._index === chunkIndex && point._bufferIndex < chunk.length) {\n go(chunk.charCodeAt(point._bufferIndex));\n }\n } else {\n go(chunk);\n }\n }\n }\n\n /**\n * Deal with one code.\n *\n * @param {Code} code\n * Code.\n * @returns {undefined}\n * Nothing.\n */\n function go(code) {\n consumed = undefined;\n expectedCode = code;\n state = state(code);\n }\n\n /** @type {Effects['consume']} */\n function consume(code) {\n if (markdownLineEnding(code)) {\n point.line++;\n point.column = 1;\n point.offset += code === -3 ? 2 : 1;\n accountForPotentialSkip();\n } else if (code !== -1) {\n point.column++;\n point.offset++;\n }\n\n // Not in a string chunk.\n if (point._bufferIndex < 0) {\n point._index++;\n } else {\n point._bufferIndex++;\n\n // At end of string chunk.\n if (point._bufferIndex ===\n // Points w/ non-negative `_bufferIndex` reference\n // strings.\n /** @type {string} */\n chunks[point._index].length) {\n point._bufferIndex = -1;\n point._index++;\n }\n }\n\n // Expose the previous character.\n context.previous = code;\n\n // Mark as consumed.\n consumed = true;\n }\n\n /** @type {Effects['enter']} */\n function enter(type, fields) {\n /** @type {Token} */\n // @ts-expect-error Patch instead of assign required fields to help GC.\n const token = fields || {};\n token.type = type;\n token.start = now();\n context.events.push(['enter', token, context]);\n stack.push(token);\n return token;\n }\n\n /** @type {Effects['exit']} */\n function exit(type) {\n const token = stack.pop();\n token.end = now();\n context.events.push(['exit', token, context]);\n return token;\n }\n\n /**\n * Use results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from);\n }\n\n /**\n * Discard results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulcheck(_, info) {\n info.restore();\n }\n\n /**\n * Factory to attempt/check/interrupt.\n *\n * @param {ReturnHandle} onreturn\n * Callback.\n * @param {{interrupt?: boolean | undefined} | undefined} [fields]\n * Fields.\n */\n function constructFactory(onreturn, fields) {\n return hook;\n\n /**\n * Handle either an object mapping codes to constructs, a list of\n * constructs, or a single construct.\n *\n * @param {Array<Construct> | ConstructRecord | Construct} constructs\n * Constructs.\n * @param {State} returnState\n * State.\n * @param {State | undefined} [bogusState]\n * State.\n * @returns {State}\n * State.\n */\n function hook(constructs, returnState, bogusState) {\n /** @type {ReadonlyArray<Construct>} */\n let listOfConstructs;\n /** @type {number} */\n let constructIndex;\n /** @type {Construct} */\n let currentConstruct;\n /** @type {Info} */\n let info;\n return Array.isArray(constructs) ? /* c8 ignore next 1 */\n handleListOfConstructs(constructs) : 'tokenize' in constructs ?\n // Looks like a construct.\n handleListOfConstructs([(/** @type {Construct} */constructs)]) : handleMapOfConstructs(constructs);\n\n /**\n * Handle a list of construct.\n *\n * @param {ConstructRecord} map\n * Constructs.\n * @returns {State}\n * State.\n */\n function handleMapOfConstructs(map) {\n return start;\n\n /** @type {State} */\n function start(code) {\n const left = code !== null && map[code];\n const all = code !== null && map.null;\n const list = [\n // To do: add more extension tests.\n /* c8 ignore next 2 */\n ...(Array.isArray(left) ? left : left ? [left] : []), ...(Array.isArray(all) ? all : all ? [all] : [])];\n return handleListOfConstructs(list)(code);\n }\n }\n\n /**\n * Handle a list of construct.\n *\n * @param {ReadonlyArray<Construct>} list\n * Constructs.\n * @returns {State}\n * State.\n */\n function handleListOfConstructs(list) {\n listOfConstructs = list;\n constructIndex = 0;\n if (list.length === 0) {\n return bogusState;\n }\n return handleConstruct(list[constructIndex]);\n }\n\n /**\n * Handle a single construct.\n *\n * @param {Construct} construct\n * Construct.\n * @returns {State}\n * State.\n */\n function handleConstruct(construct) {\n return start;\n\n /** @type {State} */\n function start(code) {\n // To do: not needed to store if there is no bogus state, probably?\n // Currently doesn’t work because `inspect` in document does a check\n // w/o a bogus, which doesn’t make sense. But it does seem to help perf\n // by not storing.\n info = store();\n currentConstruct = construct;\n if (!construct.partial) {\n context.currentConstruct = construct;\n }\n\n // Always populated by defaults.\n\n if (construct.name && context.parser.constructs.disable.null.includes(construct.name)) {\n return nok(code);\n }\n return construct.tokenize.call(\n // If we do have fields, create an object w/ `context` as its\n // prototype.\n // This allows a “live binding”, which is needed for `interrupt`.\n fields ? Object.assign(Object.create(context), fields) : context, effects, ok, nok)(code);\n }\n }\n\n /** @type {State} */\n function ok(code) {\n consumed = true;\n onreturn(currentConstruct, info);\n return returnState;\n }\n\n /** @type {State} */\n function nok(code) {\n consumed = true;\n info.restore();\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex]);\n }\n return bogusState;\n }\n }\n }\n\n /**\n * @param {Construct} construct\n * Construct.\n * @param {number} from\n * From.\n * @returns {undefined}\n * Nothing.\n */\n function addResult(construct, from) {\n if (construct.resolveAll && !resolveAllConstructs.includes(construct)) {\n resolveAllConstructs.push(construct);\n }\n if (construct.resolve) {\n splice(context.events, from, context.events.length - from, construct.resolve(context.events.slice(from), context));\n }\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context);\n }\n }\n\n /**\n * Store state.\n *\n * @returns {Info}\n * Info.\n */\n function store() {\n const startPoint = now();\n const startPrevious = context.previous;\n const startCurrentConstruct = context.currentConstruct;\n const startEventsIndex = context.events.length;\n const startStack = Array.from(stack);\n return {\n from: startEventsIndex,\n restore\n };\n\n /**\n * Restore state.\n *\n * @returns {undefined}\n * Nothing.\n */\n function restore() {\n point = startPoint;\n context.previous = startPrevious;\n context.currentConstruct = startCurrentConstruct;\n context.events.length = startEventsIndex;\n stack = startStack;\n accountForPotentialSkip();\n }\n }\n\n /**\n * Move the current point a bit forward in the line when it’s on a column\n * skip.\n *\n * @returns {undefined}\n * Nothing.\n */\n function accountForPotentialSkip() {\n if (point.line in columnStart && point.column < 2) {\n point.column = columnStart[point.line];\n point.offset += columnStart[point.line] - 1;\n }\n }\n}\n\n/**\n * Get the chunks from a slice of chunks in the range of a token.\n *\n * @param {ReadonlyArray<Chunk>} chunks\n * Chunks.\n * @param {Pick<Token, 'end' | 'start'>} token\n * Token.\n * @returns {Array<Chunk>}\n * Chunks.\n */\nfunction sliceChunks(chunks, token) {\n const startIndex = token.start._index;\n const startBufferIndex = token.start._bufferIndex;\n const endIndex = token.end._index;\n const endBufferIndex = token.end._bufferIndex;\n /** @type {Array<Chunk>} */\n let view;\n if (startIndex === endIndex) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)];\n } else {\n view = chunks.slice(startIndex, endIndex);\n if (startBufferIndex > -1) {\n const head = view[0];\n if (typeof head === 'string') {\n view[0] = head.slice(startBufferIndex);\n /* c8 ignore next 4 -- used to be used, no longer */\n } else {\n view.shift();\n }\n }\n if (endBufferIndex > 0) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view.push(chunks[endIndex].slice(0, endBufferIndex));\n }\n }\n return view;\n}\n\n/**\n * Get the string value of a slice of chunks.\n *\n * @param {ReadonlyArray<Chunk>} chunks\n * Chunks.\n * @param {boolean | undefined} [expandTabs=false]\n * Whether to expand tabs (default: `false`).\n * @returns {string}\n * Result.\n */\nfunction serializeChunks(chunks, expandTabs) {\n let index = -1;\n /** @type {Array<string>} */\n const result = [];\n /** @type {boolean | undefined} */\n let atTab;\n while (++index < chunks.length) {\n const chunk = chunks[index];\n /** @type {string} */\n let value;\n if (typeof chunk === 'string') {\n value = chunk;\n } else switch (chunk) {\n case -5:\n {\n value = \"\\r\";\n break;\n }\n case -4:\n {\n value = \"\\n\";\n break;\n }\n case -3:\n {\n value = \"\\r\" + \"\\n\";\n break;\n }\n case -2:\n {\n value = expandTabs ? \" \" : \"\\t\";\n break;\n }\n case -1:\n {\n if (!expandTabs && atTab) continue;\n value = \" \";\n break;\n }\n default:\n {\n // Currently only replacement character.\n value = String.fromCharCode(chunk);\n }\n }\n atTab = chunk === -2;\n result.push(value);\n }\n return result.join('');\n}","/**\n * @import {\n * Create,\n * FullNormalizedExtension,\n * InitialConstruct,\n * ParseContext,\n * ParseOptions\n * } from 'micromark-util-types'\n */\n\nimport { combineExtensions } from 'micromark-util-combine-extensions';\nimport { content } from './initialize/content.js';\nimport { document } from './initialize/document.js';\nimport { flow } from './initialize/flow.js';\nimport { string, text } from './initialize/text.js';\nimport * as defaultConstructs from './constructs.js';\nimport { createTokenizer } from './create-tokenizer.js';\n\n/**\n * @param {ParseOptions | null | undefined} [options]\n * Configuration (optional).\n * @returns {ParseContext}\n * Parser.\n */\nexport function parse(options) {\n const settings = options || {};\n const constructs = /** @type {FullNormalizedExtension} */\n combineExtensions([defaultConstructs, ...(settings.extensions || [])]);\n\n /** @type {ParseContext} */\n const parser = {\n constructs,\n content: create(content),\n defined: [],\n document: create(document),\n flow: create(flow),\n lazy: {},\n string: create(string),\n text: create(text)\n };\n return parser;\n\n /**\n * @param {InitialConstruct} initial\n * Construct to start with.\n * @returns {Create}\n * Create a tokenizer.\n */\n function create(initial) {\n return creator;\n /** @type {Create} */\n function creator(from) {\n return createTokenizer(parser, initial, from);\n }\n }\n}","/**\n * @import {Event} from 'micromark-util-types'\n */\n\nimport { subtokenize } from 'micromark-util-subtokenize';\n\n/**\n * @param {Array<Event>} events\n * Events.\n * @returns {Array<Event>}\n * Events.\n */\nexport function postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n return events;\n}","/**\n * @import {Chunk, Code, Encoding, Value} from 'micromark-util-types'\n */\n\n/**\n * @callback Preprocessor\n * Preprocess a value.\n * @param {Value} value\n * Value.\n * @param {Encoding | null | undefined} [encoding]\n * Encoding when `value` is a typed array (optional).\n * @param {boolean | null | undefined} [end=false]\n * Whether this is the last chunk (default: `false`).\n * @returns {Array<Chunk>}\n * Chunks.\n */\n\nconst search = /[\\0\\t\\n\\r]/g;\n\n/**\n * @returns {Preprocessor}\n * Preprocess a value.\n */\nexport function preprocess() {\n let column = 1;\n let buffer = '';\n /** @type {boolean | undefined} */\n let start = true;\n /** @type {boolean | undefined} */\n let atCarriageReturn;\n return preprocessor;\n\n /** @type {Preprocessor} */\n // eslint-disable-next-line complexity\n function preprocessor(value, encoding, end) {\n /** @type {Array<Chunk>} */\n const chunks = [];\n /** @type {RegExpMatchArray | null} */\n let match;\n /** @type {number} */\n let next;\n /** @type {number} */\n let startPosition;\n /** @type {number} */\n let endPosition;\n /** @type {Code} */\n let code;\n value = buffer + (typeof value === 'string' ? value.toString() : new TextDecoder(encoding || undefined).decode(value));\n startPosition = 0;\n buffer = '';\n if (start) {\n // To do: `markdown-rs` actually parses BOMs (byte order mark).\n if (value.charCodeAt(0) === 65279) {\n startPosition++;\n }\n start = undefined;\n }\n while (startPosition < value.length) {\n search.lastIndex = startPosition;\n match = search.exec(value);\n endPosition = match && match.index !== undefined ? match.index : value.length;\n code = value.charCodeAt(endPosition);\n if (!match) {\n buffer = value.slice(startPosition);\n break;\n }\n if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n chunks.push(-3);\n atCarriageReturn = undefined;\n } else {\n if (atCarriageReturn) {\n chunks.push(-5);\n atCarriageReturn = undefined;\n }\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition));\n column += endPosition - startPosition;\n }\n switch (code) {\n case 0:\n {\n chunks.push(65533);\n column++;\n break;\n }\n case 9:\n {\n next = Math.ceil(column / 4) * 4;\n chunks.push(-2);\n while (column++ < next) chunks.push(-1);\n break;\n }\n case 10:\n {\n chunks.push(-4);\n column = 1;\n break;\n }\n default:\n {\n atCarriageReturn = true;\n column = 1;\n }\n }\n }\n startPosition = endPosition + 1;\n }\n if (end) {\n if (atCarriageReturn) chunks.push(-5);\n if (buffer) chunks.push(buffer);\n chunks.push(null);\n }\n return chunks;\n }\n}","import { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { decodeNumericCharacterReference } from 'micromark-util-decode-numeric-character-reference';\nconst characterEscapeOrReference = /\\\\([!-/:-@[-`{-~])|&(#(?:\\d{1,7}|x[\\da-f]{1,6})|[\\da-z]{1,31});/gi;\n\n/**\n * Decode markdown strings (which occur in places such as fenced code info\n * strings, destinations, labels, and titles).\n *\n * The “string” content type allows character escapes and -references.\n * This decodes those.\n *\n * @param {string} value\n * Value to decode.\n * @returns {string}\n * Decoded value.\n */\nexport function decodeString(value) {\n return value.replace(characterEscapeOrReference, decode);\n}\n\n/**\n * @param {string} $0\n * Match.\n * @param {string} $1\n * Character escape.\n * @param {string} $2\n * Character reference.\n * @returns {string}\n * Decoded value\n */\nfunction decode($0, $1, $2) {\n if ($1) {\n // Escape.\n return $1;\n }\n\n // Reference.\n const head = $2.charCodeAt(0);\n if (head === 35) {\n const head = $2.charCodeAt(1);\n const hex = head === 120 || head === 88;\n return decodeNumericCharacterReference($2.slice(hex ? 2 : 1), hex ? 16 : 10);\n }\n return decodeNamedCharacterReference($2) || $0;\n}","/**\n * @import {\n * Break,\n * Blockquote,\n * Code,\n * Definition,\n * Emphasis,\n * Heading,\n * Html,\n * Image,\n * InlineCode,\n * Link,\n * ListItem,\n * List,\n * Nodes,\n * Paragraph,\n * PhrasingContent,\n * ReferenceType,\n * Root,\n * Strong,\n * Text,\n * ThematicBreak\n * } from 'mdast'\n * @import {\n * Encoding,\n * Event,\n * Token,\n * Value\n * } from 'micromark-util-types'\n * @import {Point} from 'unist'\n * @import {\n * CompileContext,\n * CompileData,\n * Config,\n * Extension,\n * Handle,\n * OnEnterError,\n * Options\n * } from './types.js'\n */\n\nimport { toString } from 'mdast-util-to-string';\nimport { parse, postprocess, preprocess } from 'micromark';\nimport { decodeNumericCharacterReference } from 'micromark-util-decode-numeric-character-reference';\nimport { decodeString } from 'micromark-util-decode-string';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\nimport { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { stringifyPosition } from 'unist-util-stringify-position';\nconst own = {}.hasOwnProperty;\n\n/**\n * Turn markdown into a syntax tree.\n *\n * @overload\n * @param {Value} value\n * @param {Encoding | null | undefined} [encoding]\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @overload\n * @param {Value} value\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @param {Value} value\n * Markdown to parse.\n * @param {Encoding | Options | null | undefined} [encoding]\n * Character encoding for when `value` is `Buffer`.\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {Root}\n * mdast tree.\n */\nexport function fromMarkdown(value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding;\n encoding = undefined;\n }\n return compiler(options)(postprocess(parse(options).document().write(preprocess()(value, encoding, true))));\n}\n\n/**\n * Note this compiler only understand complete buffering, not streaming.\n *\n * @param {Options | null | undefined} [options]\n */\nfunction compiler(options) {\n /** @type {Config} */\n const config = {\n transforms: [],\n canContainEols: ['emphasis', 'fragment', 'heading', 'paragraph', 'strong'],\n enter: {\n autolink: opener(link),\n autolinkProtocol: onenterdata,\n autolinkEmail: onenterdata,\n atxHeading: opener(heading),\n blockQuote: opener(blockQuote),\n characterEscape: onenterdata,\n characterReference: onenterdata,\n codeFenced: opener(codeFlow),\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: opener(codeFlow, buffer),\n codeText: opener(codeText, buffer),\n codeTextData: onenterdata,\n data: onenterdata,\n codeFlowValue: onenterdata,\n definition: opener(definition),\n definitionDestinationString: buffer,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: opener(emphasis),\n hardBreakEscape: opener(hardBreak),\n hardBreakTrailing: opener(hardBreak),\n htmlFlow: opener(html, buffer),\n htmlFlowData: onenterdata,\n htmlText: opener(html, buffer),\n htmlTextData: onenterdata,\n image: opener(image),\n label: buffer,\n link: opener(link),\n listItem: opener(listItem),\n listItemValue: onenterlistitemvalue,\n listOrdered: opener(list, onenterlistordered),\n listUnordered: opener(list),\n paragraph: opener(paragraph),\n reference: onenterreference,\n referenceString: buffer,\n resourceDestinationString: buffer,\n resourceTitleString: buffer,\n setextHeading: opener(heading),\n strong: opener(strong),\n thematicBreak: opener(thematicBreak)\n },\n exit: {\n atxHeading: closer(),\n atxHeadingSequence: onexitatxheadingsequence,\n autolink: closer(),\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: closer(),\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n characterReference: onexitcharacterreference,\n codeFenced: closer(onexitcodefenced),\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: onexitcodefencedfencemeta,\n codeFlowValue: onexitdata,\n codeIndented: closer(onexitcodeindented),\n codeText: closer(onexitcodetext),\n codeTextData: onexitdata,\n data: onexitdata,\n definition: closer(),\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: closer(),\n hardBreakEscape: closer(onexithardbreak),\n hardBreakTrailing: closer(onexithardbreak),\n htmlFlow: closer(onexithtmlflow),\n htmlFlowData: onexitdata,\n htmlText: closer(onexithtmltext),\n htmlTextData: onexitdata,\n image: closer(onexitimage),\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: closer(onexitlink),\n listItem: closer(),\n listOrdered: closer(),\n listUnordered: closer(),\n paragraph: closer(),\n referenceString: onexitreferencestring,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n resource: onexitresource,\n setextHeading: closer(onexitsetextheading),\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: closer(),\n thematicBreak: closer()\n }\n };\n configure(config, (options || {}).mdastExtensions || []);\n\n /** @type {CompileData} */\n const data = {};\n return compile;\n\n /**\n * Turn micromark events into an mdast tree.\n *\n * @param {Array<Event>} events\n * Events.\n * @returns {Root}\n * mdast tree.\n */\n function compile(events) {\n /** @type {Root} */\n let tree = {\n type: 'root',\n children: []\n };\n /** @type {Omit<CompileContext, 'sliceSerialize'>} */\n const context = {\n stack: [tree],\n tokenStack: [],\n config,\n enter,\n exit,\n buffer,\n resume,\n data\n };\n /** @type {Array<number>} */\n const listStack = [];\n let index = -1;\n while (++index < events.length) {\n // We preprocess lists to add `listItem` tokens, and to infer whether\n // items the list itself are spread out.\n if (events[index][1].type === \"listOrdered\" || events[index][1].type === \"listUnordered\") {\n if (events[index][0] === 'enter') {\n listStack.push(index);\n } else {\n const tail = listStack.pop();\n index = prepareList(events, tail, index);\n }\n }\n }\n index = -1;\n while (++index < events.length) {\n const handler = config[events[index][0]];\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(Object.assign({\n sliceSerialize: events[index][2].sliceSerialize\n }, context), events[index][1]);\n }\n }\n\n // Handle tokens still being open.\n if (context.tokenStack.length > 0) {\n const tail = context.tokenStack[context.tokenStack.length - 1];\n const handler = tail[1] || defaultOnError;\n handler.call(context, undefined, tail[0]);\n }\n\n // Figure out `root` position.\n tree.position = {\n start: point(events.length > 0 ? events[0][1].start : {\n line: 1,\n column: 1,\n offset: 0\n }),\n end: point(events.length > 0 ? events[events.length - 2][1].end : {\n line: 1,\n column: 1,\n offset: 0\n })\n };\n\n // Call transforms.\n index = -1;\n while (++index < config.transforms.length) {\n tree = config.transforms[index](tree) || tree;\n }\n return tree;\n }\n\n /**\n * @param {Array<Event>} events\n * @param {number} start\n * @param {number} length\n * @returns {number}\n */\n function prepareList(events, start, length) {\n let index = start - 1;\n let containerBalance = -1;\n let listSpread = false;\n /** @type {Token | undefined} */\n let listItem;\n /** @type {number | undefined} */\n let lineIndex;\n /** @type {number | undefined} */\n let firstBlankLineIndex;\n /** @type {boolean | undefined} */\n let atMarker;\n while (++index <= length) {\n const event = events[index];\n switch (event[1].type) {\n case \"listUnordered\":\n case \"listOrdered\":\n case \"blockQuote\":\n {\n if (event[0] === 'enter') {\n containerBalance++;\n } else {\n containerBalance--;\n }\n atMarker = undefined;\n break;\n }\n case \"lineEndingBlank\":\n {\n if (event[0] === 'enter') {\n if (listItem && !atMarker && !containerBalance && !firstBlankLineIndex) {\n firstBlankLineIndex = index;\n }\n atMarker = undefined;\n }\n break;\n }\n case \"linePrefix\":\n case \"listItemValue\":\n case \"listItemMarker\":\n case \"listItemPrefix\":\n case \"listItemPrefixWhitespace\":\n {\n // Empty.\n\n break;\n }\n default:\n {\n atMarker = undefined;\n }\n }\n if (!containerBalance && event[0] === 'enter' && event[1].type === \"listItemPrefix\" || containerBalance === -1 && event[0] === 'exit' && (event[1].type === \"listUnordered\" || event[1].type === \"listOrdered\")) {\n if (listItem) {\n let tailIndex = index;\n lineIndex = undefined;\n while (tailIndex--) {\n const tailEvent = events[tailIndex];\n if (tailEvent[1].type === \"lineEnding\" || tailEvent[1].type === \"lineEndingBlank\") {\n if (tailEvent[0] === 'exit') continue;\n if (lineIndex) {\n events[lineIndex][1].type = \"lineEndingBlank\";\n listSpread = true;\n }\n tailEvent[1].type = \"lineEnding\";\n lineIndex = tailIndex;\n } else if (tailEvent[1].type === \"linePrefix\" || tailEvent[1].type === \"blockQuotePrefix\" || tailEvent[1].type === \"blockQuotePrefixWhitespace\" || tailEvent[1].type === \"blockQuoteMarker\" || tailEvent[1].type === \"listItemIndent\") {\n // Empty\n } else {\n break;\n }\n }\n if (firstBlankLineIndex && (!lineIndex || firstBlankLineIndex < lineIndex)) {\n listItem._spread = true;\n }\n\n // Fix position.\n listItem.end = Object.assign({}, lineIndex ? events[lineIndex][1].start : event[1].end);\n events.splice(lineIndex || index, 0, ['exit', listItem, event[2]]);\n index++;\n length++;\n }\n\n // Create a new list item.\n if (event[1].type === \"listItemPrefix\") {\n /** @type {Token} */\n const item = {\n type: 'listItem',\n _spread: false,\n start: Object.assign({}, event[1].start),\n // @ts-expect-error: we’ll add `end` in a second.\n end: undefined\n };\n listItem = item;\n events.splice(index, 0, ['enter', item, event[2]]);\n index++;\n length++;\n firstBlankLineIndex = undefined;\n atMarker = true;\n }\n }\n }\n events[start][1]._spread = listSpread;\n return length;\n }\n\n /**\n * Create an opener handle.\n *\n * @param {(token: Token) => Nodes} create\n * Create a node.\n * @param {Handle | undefined} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function opener(create, and) {\n return open;\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {undefined}\n */\n function open(token) {\n enter.call(this, create(token), token);\n if (and) and.call(this, token);\n }\n }\n\n /**\n * @type {CompileContext['buffer']}\n */\n function buffer() {\n this.stack.push({\n type: 'fragment',\n children: []\n });\n }\n\n /**\n * @type {CompileContext['enter']}\n */\n function enter(node, token, errorHandler) {\n const parent = this.stack[this.stack.length - 1];\n /** @type {Array<Nodes>} */\n const siblings = parent.children;\n siblings.push(node);\n this.stack.push(node);\n this.tokenStack.push([token, errorHandler || undefined]);\n node.position = {\n start: point(token.start),\n // @ts-expect-error: `end` will be patched later.\n end: undefined\n };\n }\n\n /**\n * Create a closer handle.\n *\n * @param {Handle | undefined} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function closer(and) {\n return close;\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {undefined}\n */\n function close(token) {\n if (and) and.call(this, token);\n exit.call(this, token);\n }\n }\n\n /**\n * @type {CompileContext['exit']}\n */\n function exit(token, onExitError) {\n const node = this.stack.pop();\n const open = this.tokenStack.pop();\n if (!open) {\n throw new Error('Cannot close `' + token.type + '` (' + stringifyPosition({\n start: token.start,\n end: token.end\n }) + '): it’s not open');\n } else if (open[0].type !== token.type) {\n if (onExitError) {\n onExitError.call(this, token, open[0]);\n } else {\n const handler = open[1] || defaultOnError;\n handler.call(this, token, open[0]);\n }\n }\n node.position.end = point(token.end);\n }\n\n /**\n * @type {CompileContext['resume']}\n */\n function resume() {\n return toString(this.stack.pop());\n }\n\n //\n // Handlers.\n //\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistordered() {\n this.data.expectingFirstListItemValue = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistitemvalue(token) {\n if (this.data.expectingFirstListItemValue) {\n const ancestor = this.stack[this.stack.length - 2];\n ancestor.start = Number.parseInt(this.sliceSerialize(token), 10);\n this.data.expectingFirstListItemValue = undefined;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfenceinfo() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.lang = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfencemeta() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.meta = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (this.data.flowCodeInside) return;\n this.buffer();\n this.data.flowCodeInside = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefenced() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, '');\n this.data.flowCodeInside = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodeindented() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data.replace(/(\\r?\\n|\\r)$/g, '');\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitionlabelstring(token) {\n const label = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.label = label;\n node.identifier = normalizeIdentifier(this.sliceSerialize(token)).toLowerCase();\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiontitlestring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.title = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiondestinationstring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.url = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitatxheadingsequence(token) {\n const node = this.stack[this.stack.length - 1];\n if (!node.depth) {\n const depth = this.sliceSerialize(token).length;\n node.depth = depth;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadingtext() {\n this.data.setextHeadingSlurpLineEnding = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadinglinesequence(token) {\n const node = this.stack[this.stack.length - 1];\n node.depth = this.sliceSerialize(token).codePointAt(0) === 61 ? 1 : 2;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheading() {\n this.data.setextHeadingSlurpLineEnding = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterdata(token) {\n const node = this.stack[this.stack.length - 1];\n /** @type {Array<Nodes>} */\n const siblings = node.children;\n let tail = siblings[siblings.length - 1];\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text();\n tail.position = {\n start: point(token.start),\n // @ts-expect-error: we’ll add `end` later.\n end: undefined\n };\n siblings.push(tail);\n }\n this.stack.push(tail);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitdata(token) {\n const tail = this.stack.pop();\n tail.value += this.sliceSerialize(token);\n tail.position.end = point(token.end);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlineending(token) {\n const context = this.stack[this.stack.length - 1];\n // If we’re at a hard break, include the line ending in there.\n if (this.data.atHardBreak) {\n const tail = context.children[context.children.length - 1];\n tail.position.end = point(token.end);\n this.data.atHardBreak = undefined;\n return;\n }\n if (!this.data.setextHeadingSlurpLineEnding && config.canContainEols.includes(context.type)) {\n onenterdata.call(this, token);\n onexitdata.call(this, token);\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithardbreak() {\n this.data.atHardBreak = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmlflow() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmltext() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcodetext() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlink() {\n const node = this.stack[this.stack.length - 1];\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n\n // To do: clean.\n if (this.data.inReference) {\n /** @type {ReferenceType} */\n const referenceType = this.data.referenceType || 'shortcut';\n node.type += 'Reference';\n // @ts-expect-error: mutate.\n node.referenceType = referenceType;\n // @ts-expect-error: mutate.\n delete node.url;\n delete node.title;\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier;\n // @ts-expect-error: mutate.\n delete node.label;\n }\n this.data.referenceType = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitimage() {\n const node = this.stack[this.stack.length - 1];\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n\n // To do: clean.\n if (this.data.inReference) {\n /** @type {ReferenceType} */\n const referenceType = this.data.referenceType || 'shortcut';\n node.type += 'Reference';\n // @ts-expect-error: mutate.\n node.referenceType = referenceType;\n // @ts-expect-error: mutate.\n delete node.url;\n delete node.title;\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier;\n // @ts-expect-error: mutate.\n delete node.label;\n }\n this.data.referenceType = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabeltext(token) {\n const string = this.sliceSerialize(token);\n const ancestor = this.stack[this.stack.length - 2];\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n ancestor.label = decodeString(string);\n // @ts-expect-error: same as above.\n ancestor.identifier = normalizeIdentifier(string).toLowerCase();\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabel() {\n const fragment = this.stack[this.stack.length - 1];\n const value = this.resume();\n const node = this.stack[this.stack.length - 1];\n // Assume a reference.\n this.data.inReference = true;\n if (node.type === 'link') {\n /** @type {Array<PhrasingContent>} */\n const children = fragment.children;\n node.children = children;\n } else {\n node.alt = value;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcedestinationstring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.url = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcetitlestring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.title = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresource() {\n this.data.inReference = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterreference() {\n this.data.referenceType = 'collapsed';\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitreferencestring(token) {\n const label = this.resume();\n const node = this.stack[this.stack.length - 1];\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n node.label = label;\n // @ts-expect-error: same as above.\n node.identifier = normalizeIdentifier(this.sliceSerialize(token)).toLowerCase();\n this.data.referenceType = 'full';\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcharacterreferencemarker(token) {\n this.data.characterReferenceType = token.type;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreferencevalue(token) {\n const data = this.sliceSerialize(token);\n const type = this.data.characterReferenceType;\n /** @type {string} */\n let value;\n if (type) {\n value = decodeNumericCharacterReference(data, type === \"characterReferenceMarkerNumeric\" ? 10 : 16);\n this.data.characterReferenceType = undefined;\n } else {\n const result = decodeNamedCharacterReference(data);\n value = result;\n }\n const tail = this.stack[this.stack.length - 1];\n tail.value += value;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreference(token) {\n const tail = this.stack.pop();\n tail.position.end = point(token.end);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token);\n const node = this.stack[this.stack.length - 1];\n node.url = this.sliceSerialize(token);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkemail(token) {\n onexitdata.call(this, token);\n const node = this.stack[this.stack.length - 1];\n node.url = 'mailto:' + this.sliceSerialize(token);\n }\n\n //\n // Creaters.\n //\n\n /** @returns {Blockquote} */\n function blockQuote() {\n return {\n type: 'blockquote',\n children: []\n };\n }\n\n /** @returns {Code} */\n function codeFlow() {\n return {\n type: 'code',\n lang: null,\n meta: null,\n value: ''\n };\n }\n\n /** @returns {InlineCode} */\n function codeText() {\n return {\n type: 'inlineCode',\n value: ''\n };\n }\n\n /** @returns {Definition} */\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n };\n }\n\n /** @returns {Emphasis} */\n function emphasis() {\n return {\n type: 'emphasis',\n children: []\n };\n }\n\n /** @returns {Heading} */\n function heading() {\n return {\n type: 'heading',\n // @ts-expect-error `depth` will be set later.\n depth: 0,\n children: []\n };\n }\n\n /** @returns {Break} */\n function hardBreak() {\n return {\n type: 'break'\n };\n }\n\n /** @returns {Html} */\n function html() {\n return {\n type: 'html',\n value: ''\n };\n }\n\n /** @returns {Image} */\n function image() {\n return {\n type: 'image',\n title: null,\n url: '',\n alt: null\n };\n }\n\n /** @returns {Link} */\n function link() {\n return {\n type: 'link',\n title: null,\n url: '',\n children: []\n };\n }\n\n /**\n * @param {Token} token\n * @returns {List}\n */\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n spread: token._spread,\n children: []\n };\n }\n\n /**\n * @param {Token} token\n * @returns {ListItem}\n */\n function listItem(token) {\n return {\n type: 'listItem',\n spread: token._spread,\n checked: null,\n children: []\n };\n }\n\n /** @returns {Paragraph} */\n function paragraph() {\n return {\n type: 'paragraph',\n children: []\n };\n }\n\n /** @returns {Strong} */\n function strong() {\n return {\n type: 'strong',\n children: []\n };\n }\n\n /** @returns {Text} */\n function text() {\n return {\n type: 'text',\n value: ''\n };\n }\n\n /** @returns {ThematicBreak} */\n function thematicBreak() {\n return {\n type: 'thematicBreak'\n };\n }\n}\n\n/**\n * Copy a point-like value.\n *\n * @param {Point} d\n * Point-like value.\n * @returns {Point}\n * unist point.\n */\nfunction point(d) {\n return {\n line: d.line,\n column: d.column,\n offset: d.offset\n };\n}\n\n/**\n * @param {Config} combined\n * @param {Array<Array<Extension> | Extension>} extensions\n * @returns {undefined}\n */\nfunction configure(combined, extensions) {\n let index = -1;\n while (++index < extensions.length) {\n const value = extensions[index];\n if (Array.isArray(value)) {\n configure(combined, value);\n } else {\n extension(combined, value);\n }\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Extension} extension\n * @returns {undefined}\n */\nfunction extension(combined, extension) {\n /** @type {keyof Extension} */\n let key;\n for (key in extension) {\n if (own.call(extension, key)) {\n switch (key) {\n case 'canContainEols':\n {\n const right = extension[key];\n if (right) {\n combined[key].push(...right);\n }\n break;\n }\n case 'transforms':\n {\n const right = extension[key];\n if (right) {\n combined[key].push(...right);\n }\n break;\n }\n case 'enter':\n case 'exit':\n {\n const right = extension[key];\n if (right) {\n Object.assign(combined[key], right);\n }\n break;\n }\n // No default\n }\n }\n }\n}\n\n/** @type {OnEnterError} */\nfunction defaultOnError(left, right) {\n if (left) {\n throw new Error('Cannot close `' + left.type + '` (' + stringifyPosition({\n start: left.start,\n end: left.end\n }) + '): a different token (`' + right.type + '`, ' + stringifyPosition({\n start: right.start,\n end: right.end\n }) + ') is open');\n } else {\n throw new Error('Cannot close document, a token (`' + right.type + '`, ' + stringifyPosition({\n start: right.start,\n end: right.end\n }) + ') is still open');\n }\n}","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-from-markdown').Options} FromMarkdownOptions\n * @typedef {import('unified').Parser<Root>} Parser\n * @typedef {import('unified').Processor<Root>} Processor\n */\n\n/**\n * @typedef {Omit<FromMarkdownOptions, 'extensions' | 'mdastExtensions'>} Options\n */\n\nimport {fromMarkdown} from 'mdast-util-from-markdown'\n\n/**\n * Aadd support for parsing from markdown.\n *\n * @param {Readonly<Options> | null | undefined} [options]\n * Configuration (optional).\n * @returns {undefined}\n * Nothing.\n */\nexport default function remarkParse(options) {\n /** @type {Processor} */\n // @ts-expect-error: TS in JSDoc generates wrong types if `this` is typed regularly.\n const self = this\n\n self.parser = parser\n\n /**\n * @type {Parser}\n */\n function parser(doc) {\n return fromMarkdown(doc, {\n ...self.data('settings'),\n ...options,\n // Note: these options are not in the readme.\n // The goal is for them to be set by plugins on `data` instead of being\n // passed by users.\n extensions: self.data('micromarkExtensions') || [],\n mdastExtensions: self.data('fromMarkdownExtensions') || []\n })\n }\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Blockquote} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `blockquote` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Blockquote} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function blockquote(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'blockquote',\n properties: {},\n children: state.wrap(state.all(node), true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {Element, Text} from 'hast'\n * @import {Break} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `break` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Break} node\n * mdast node.\n * @returns {Array<Element | Text>}\n * hast element content.\n */\nexport function hardBreak(state, node) {\n /** @type {Element} */\n const result = {type: 'element', tagName: 'br', properties: {}, children: []}\n state.patch(node, result)\n return [state.applyData(node, result), {type: 'text', value: '\\n'}]\n}\n","/**\n * @import {Element, Properties} from 'hast'\n * @import {Code} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `code` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Code} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function code(state, node) {\n const value = node.value ? node.value + '\\n' : ''\n /** @type {Properties} */\n const properties = {}\n // Someone can write `js python ruby`.\n const language = node.lang ? node.lang.split(/\\s+/) : []\n\n // GH/CM still drop the non-first languages.\n if (language.length > 0) {\n properties.className = ['language-' + language[0]]\n }\n\n // Create `<code>`.\n /** @type {Element} */\n let result = {\n type: 'element',\n tagName: 'code',\n properties,\n children: [{type: 'text', value}]\n }\n\n if (node.meta) {\n result.data = {meta: node.meta}\n }\n\n state.patch(node, result)\n result = state.applyData(node, result)\n\n // Create `<pre>`.\n result = {type: 'element', tagName: 'pre', properties: {}, children: [result]}\n state.patch(node, result)\n return result\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Delete} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `delete` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Delete} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function strikethrough(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'del',\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Emphasis} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `emphasis` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Emphasis} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function emphasis(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'em',\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {FootnoteReference} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `footnoteReference` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {FootnoteReference} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function footnoteReference(state, node) {\n const clobberPrefix =\n typeof state.options.clobberPrefix === 'string'\n ? state.options.clobberPrefix\n : 'user-content-'\n const id = String(node.identifier).toUpperCase()\n const safeId = normalizeUri(id.toLowerCase())\n const index = state.footnoteOrder.indexOf(id)\n /** @type {number} */\n let counter\n\n let reuseCounter = state.footnoteCounts.get(id)\n\n if (reuseCounter === undefined) {\n reuseCounter = 0\n state.footnoteOrder.push(id)\n counter = state.footnoteOrder.length\n } else {\n counter = index + 1\n }\n\n reuseCounter += 1\n state.footnoteCounts.set(id, reuseCounter)\n\n /** @type {Element} */\n const link = {\n type: 'element',\n tagName: 'a',\n properties: {\n href: '#' + clobberPrefix + 'fn-' + safeId,\n id:\n clobberPrefix +\n 'fnref-' +\n safeId +\n (reuseCounter > 1 ? '-' + reuseCounter : ''),\n dataFootnoteRef: true,\n ariaDescribedBy: ['footnote-label']\n },\n children: [{type: 'text', value: String(counter)}]\n }\n state.patch(node, link)\n\n /** @type {Element} */\n const sup = {\n type: 'element',\n tagName: 'sup',\n properties: {},\n children: [link]\n }\n state.patch(node, sup)\n return state.applyData(node, sup)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Heading} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `heading` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Heading} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function heading(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'h' + node.depth,\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Html} from 'mdast'\n * @import {State} from '../state.js'\n * @import {Raw} from '../../index.js'\n */\n\n/**\n * Turn an mdast `html` node into hast (`raw` node in dangerous mode, otherwise\n * nothing).\n *\n * @param {State} state\n * Info passed around.\n * @param {Html} node\n * mdast node.\n * @returns {Element | Raw | undefined}\n * hast node.\n */\nexport function html(state, node) {\n if (state.options.allowDangerousHtml) {\n /** @type {Raw} */\n const result = {type: 'raw', value: node.value}\n state.patch(node, result)\n return state.applyData(node, result)\n }\n\n return undefined\n}\n","/**\n * @import {ElementContent} from 'hast'\n * @import {Reference, Nodes} from 'mdast'\n * @import {State} from './state.js'\n */\n\n/**\n * Return the content of a reference without definition as plain text.\n *\n * @param {State} state\n * Info passed around.\n * @param {Extract<Nodes, Reference>} node\n * Reference node (image, link).\n * @returns {Array<ElementContent>}\n * hast content.\n */\nexport function revert(state, node) {\n const subtype = node.referenceType\n let suffix = ']'\n\n if (subtype === 'collapsed') {\n suffix += '[]'\n } else if (subtype === 'full') {\n suffix += '[' + (node.label || node.identifier) + ']'\n }\n\n if (node.type === 'imageReference') {\n return [{type: 'text', value: '![' + node.alt + suffix}]\n }\n\n const contents = state.all(node)\n const head = contents[0]\n\n if (head && head.type === 'text') {\n head.value = '[' + head.value\n } else {\n contents.unshift({type: 'text', value: '['})\n }\n\n const tail = contents[contents.length - 1]\n\n if (tail && tail.type === 'text') {\n tail.value += suffix\n } else {\n contents.push({type: 'text', value: suffix})\n }\n\n return contents\n}\n","/**\n * @import {ElementContent, Element, Properties} from 'hast'\n * @import {ImageReference} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `imageReference` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ImageReference} node\n * mdast node.\n * @returns {Array<ElementContent> | ElementContent}\n * hast node.\n */\nexport function imageReference(state, node) {\n const id = String(node.identifier).toUpperCase()\n const definition = state.definitionById.get(id)\n\n if (!definition) {\n return revert(state, node)\n }\n\n /** @type {Properties} */\n const properties = {src: normalizeUri(definition.url || ''), alt: node.alt}\n\n if (definition.title !== null && definition.title !== undefined) {\n properties.title = definition.title\n }\n\n /** @type {Element} */\n const result = {type: 'element', tagName: 'img', properties, children: []}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {Element, Properties} from 'hast'\n * @import {Image} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `image` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Image} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function image(state, node) {\n /** @type {Properties} */\n const properties = {src: normalizeUri(node.url)}\n\n if (node.alt !== null && node.alt !== undefined) {\n properties.alt = node.alt\n }\n\n if (node.title !== null && node.title !== undefined) {\n properties.title = node.title\n }\n\n /** @type {Element} */\n const result = {type: 'element', tagName: 'img', properties, children: []}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {Element, Text} from 'hast'\n * @import {InlineCode} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `inlineCode` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {InlineCode} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function inlineCode(state, node) {\n /** @type {Text} */\n const text = {type: 'text', value: node.value.replace(/\\r?\\n|\\r/g, ' ')}\n state.patch(node, text)\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'code',\n properties: {},\n children: [text]\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {ElementContent, Element, Properties} from 'hast'\n * @import {LinkReference} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `linkReference` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {LinkReference} node\n * mdast node.\n * @returns {Array<ElementContent> | ElementContent}\n * hast node.\n */\nexport function linkReference(state, node) {\n const id = String(node.identifier).toUpperCase()\n const definition = state.definitionById.get(id)\n\n if (!definition) {\n return revert(state, node)\n }\n\n /** @type {Properties} */\n const properties = {href: normalizeUri(definition.url || '')}\n\n if (definition.title !== null && definition.title !== undefined) {\n properties.title = definition.title\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'a',\n properties,\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {Element, Properties} from 'hast'\n * @import {Link} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `link` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Link} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function link(state, node) {\n /** @type {Properties} */\n const properties = {href: normalizeUri(node.url)}\n\n if (node.title !== null && node.title !== undefined) {\n properties.title = node.title\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'a',\n properties,\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {ElementContent, Element, Properties} from 'hast'\n * @import {ListItem, Parents} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `listItem` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ListItem} node\n * mdast node.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @returns {Element}\n * hast node.\n */\nexport function listItem(state, node, parent) {\n const results = state.all(node)\n const loose = parent ? listLoose(parent) : listItemLoose(node)\n /** @type {Properties} */\n const properties = {}\n /** @type {Array<ElementContent>} */\n const children = []\n\n if (typeof node.checked === 'boolean') {\n const head = results[0]\n /** @type {Element} */\n let paragraph\n\n if (head && head.type === 'element' && head.tagName === 'p') {\n paragraph = head\n } else {\n paragraph = {type: 'element', tagName: 'p', properties: {}, children: []}\n results.unshift(paragraph)\n }\n\n if (paragraph.children.length > 0) {\n paragraph.children.unshift({type: 'text', value: ' '})\n }\n\n paragraph.children.unshift({\n type: 'element',\n tagName: 'input',\n properties: {type: 'checkbox', checked: node.checked, disabled: true},\n children: []\n })\n\n // According to github-markdown-css, this class hides bullet.\n // See: <https://github.com/sindresorhus/github-markdown-css>.\n properties.className = ['task-list-item']\n }\n\n let index = -1\n\n while (++index < results.length) {\n const child = results[index]\n\n // Add eols before nodes, except if this is a loose, first paragraph.\n if (\n loose ||\n index !== 0 ||\n child.type !== 'element' ||\n child.tagName !== 'p'\n ) {\n children.push({type: 'text', value: '\\n'})\n }\n\n if (child.type === 'element' && child.tagName === 'p' && !loose) {\n children.push(...child.children)\n } else {\n children.push(child)\n }\n }\n\n const tail = results[results.length - 1]\n\n // Add a final eol.\n if (tail && (loose || tail.type !== 'element' || tail.tagName !== 'p')) {\n children.push({type: 'text', value: '\\n'})\n }\n\n /** @type {Element} */\n const result = {type: 'element', tagName: 'li', properties, children}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * @param {Parents} node\n * @return {Boolean}\n */\nfunction listLoose(node) {\n let loose = false\n if (node.type === 'list') {\n loose = node.spread || false\n const children = node.children\n let index = -1\n\n while (!loose && ++index < children.length) {\n loose = listItemLoose(children[index])\n }\n }\n\n return loose\n}\n\n/**\n * @param {ListItem} node\n * @return {Boolean}\n */\nfunction listItemLoose(node) {\n const spread = node.spread\n\n return spread === null || spread === undefined\n ? node.children.length > 1\n : spread\n}\n","/**\n * @import {Element, Properties} from 'hast'\n * @import {List} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `list` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {List} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function list(state, node) {\n /** @type {Properties} */\n const properties = {}\n const results = state.all(node)\n let index = -1\n\n if (typeof node.start === 'number' && node.start !== 1) {\n properties.start = node.start\n }\n\n // Like GitHub, add a class for custom styling.\n while (++index < results.length) {\n const child = results[index]\n\n if (\n child.type === 'element' &&\n child.tagName === 'li' &&\n child.properties &&\n Array.isArray(child.properties.className) &&\n child.properties.className.includes('task-list-item')\n ) {\n properties.className = ['contains-task-list']\n break\n }\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: node.ordered ? 'ol' : 'ul',\n properties,\n children: state.wrap(results, true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Paragraph} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `paragraph` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Paragraph} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function paragraph(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'p',\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {Parents as HastParents, Root as HastRoot} from 'hast'\n * @import {Root as MdastRoot} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `root` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastRoot} node\n * mdast node.\n * @returns {HastParents}\n * hast node.\n */\nexport function root(state, node) {\n /** @type {HastRoot} */\n const result = {type: 'root', children: state.wrap(state.all(node))}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Strong} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `strong` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Strong} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function strong(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'strong',\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {Table} from 'mdast'\n * @import {Element} from 'hast'\n * @import {State} from '../state.js'\n */\n\nimport {pointEnd, pointStart} from 'unist-util-position'\n\n/**\n * Turn an mdast `table` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Table} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function table(state, node) {\n const rows = state.all(node)\n const firstRow = rows.shift()\n /** @type {Array<Element>} */\n const tableContent = []\n\n if (firstRow) {\n /** @type {Element} */\n const head = {\n type: 'element',\n tagName: 'thead',\n properties: {},\n children: state.wrap([firstRow], true)\n }\n state.patch(node.children[0], head)\n tableContent.push(head)\n }\n\n if (rows.length > 0) {\n /** @type {Element} */\n const body = {\n type: 'element',\n tagName: 'tbody',\n properties: {},\n children: state.wrap(rows, true)\n }\n\n const start = pointStart(node.children[1])\n const end = pointEnd(node.children[node.children.length - 1])\n if (start && end) body.position = {start, end}\n tableContent.push(body)\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'table',\n properties: {},\n children: state.wrap(tableContent, true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {Element, ElementContent, Properties} from 'hast'\n * @import {Parents, TableRow} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `tableRow` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {TableRow} node\n * mdast node.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @returns {Element}\n * hast node.\n */\nexport function tableRow(state, node, parent) {\n const siblings = parent ? parent.children : undefined\n // Generate a body row when without parent.\n const rowIndex = siblings ? siblings.indexOf(node) : 1\n const tagName = rowIndex === 0 ? 'th' : 'td'\n // To do: option to use `style`?\n const align = parent && parent.type === 'table' ? parent.align : undefined\n const length = align ? align.length : node.children.length\n let cellIndex = -1\n /** @type {Array<ElementContent>} */\n const cells = []\n\n while (++cellIndex < length) {\n // Note: can also be undefined.\n const cell = node.children[cellIndex]\n /** @type {Properties} */\n const properties = {}\n const alignValue = align ? align[cellIndex] : undefined\n\n if (alignValue) {\n properties.align = alignValue\n }\n\n /** @type {Element} */\n let result = {type: 'element', tagName, properties, children: []}\n\n if (cell) {\n result.children = state.all(cell)\n state.patch(cell, result)\n result = state.applyData(cell, result)\n }\n\n cells.push(result)\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'tr',\n properties: {},\n children: state.wrap(cells, true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {TableCell} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `tableCell` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {TableCell} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function tableCell(state, node) {\n // Note: this function is normally not called: see `table-row` for how rows\n // and their cells are compiled.\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'td', // Assume body cell.\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","const tab = 9 /* `\\t` */\nconst space = 32 /* ` ` */\n\n/**\n * Remove initial and final spaces and tabs at the line breaks in `value`.\n * Does not trim initial and final spaces and tabs of the value itself.\n *\n * @param {string} value\n * Value to trim.\n * @returns {string}\n * Trimmed value.\n */\nexport function trimLines(value) {\n const source = String(value)\n const search = /\\r?\\n|\\r/g\n let match = search.exec(source)\n let last = 0\n /** @type {Array<string>} */\n const lines = []\n\n while (match) {\n lines.push(\n trimLine(source.slice(last, match.index), last > 0, true),\n match[0]\n )\n\n last = match.index + match[0].length\n match = search.exec(source)\n }\n\n lines.push(trimLine(source.slice(last), last > 0, false))\n\n return lines.join('')\n}\n\n/**\n * @param {string} value\n * Line to trim.\n * @param {boolean} start\n * Whether to trim the start of the line.\n * @param {boolean} end\n * Whether to trim the end of the line.\n * @returns {string}\n * Trimmed line.\n */\nfunction trimLine(value, start, end) {\n let startIndex = 0\n let endIndex = value.length\n\n if (start) {\n let code = value.codePointAt(startIndex)\n\n while (code === tab || code === space) {\n startIndex++\n code = value.codePointAt(startIndex)\n }\n }\n\n if (end) {\n let code = value.codePointAt(endIndex - 1)\n\n while (code === tab || code === space) {\n endIndex--\n code = value.codePointAt(endIndex - 1)\n }\n }\n\n return endIndex > startIndex ? value.slice(startIndex, endIndex) : ''\n}\n","/**\n * @import {Element as HastElement, Text as HastText} from 'hast'\n * @import {Text as MdastText} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {trimLines} from 'trim-lines'\n\n/**\n * Turn an mdast `text` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastText} node\n * mdast node.\n * @returns {HastElement | HastText}\n * hast node.\n */\nexport function text(state, node) {\n /** @type {HastText} */\n const result = {type: 'text', value: trimLines(String(node.value))}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {ThematicBreak} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `thematicBreak` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ThematicBreak} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function thematicBreak(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'hr',\n properties: {},\n children: []\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {Handlers} from '../state.js'\n */\n\nimport {blockquote} from './blockquote.js'\nimport {hardBreak} from './break.js'\nimport {code} from './code.js'\nimport {strikethrough} from './delete.js'\nimport {emphasis} from './emphasis.js'\nimport {footnoteReference} from './footnote-reference.js'\nimport {heading} from './heading.js'\nimport {html} from './html.js'\nimport {imageReference} from './image-reference.js'\nimport {image} from './image.js'\nimport {inlineCode} from './inline-code.js'\nimport {linkReference} from './link-reference.js'\nimport {link} from './link.js'\nimport {listItem} from './list-item.js'\nimport {list} from './list.js'\nimport {paragraph} from './paragraph.js'\nimport {root} from './root.js'\nimport {strong} from './strong.js'\nimport {table} from './table.js'\nimport {tableRow} from './table-row.js'\nimport {tableCell} from './table-cell.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/**\n * Default handlers for nodes.\n *\n * @satisfies {Handlers}\n */\nexport const handlers = {\n blockquote,\n break: hardBreak,\n code,\n delete: strikethrough,\n emphasis,\n footnoteReference,\n heading,\n html,\n imageReference,\n image,\n inlineCode,\n linkReference,\n link,\n listItem,\n list,\n paragraph,\n // @ts-expect-error: root is different, but hard to type.\n root,\n strong,\n table,\n tableCell,\n tableRow,\n text,\n thematicBreak,\n toml: ignore,\n yaml: ignore,\n definition: ignore,\n footnoteDefinition: ignore\n}\n\n// Return nothing for nodes that are ignored.\nfunction ignore() {\n return undefined\n}\n","/**\n * @import {ElementContent, Element} from 'hast'\n * @import {State} from './state.js'\n */\n\n/**\n * @callback FootnoteBackContentTemplate\n * Generate content for the backreference dynamically.\n *\n * For the following markdown:\n *\n * ```markdown\n * Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n * [^remark]: things about remark\n * [^micromark]: things about micromark\n * ```\n *\n * This function will be called with:\n *\n * * `0` and `0` for the backreference from `things about micromark` to\n * `alpha`, as it is the first used definition, and the first call to it\n * * `0` and `1` for the backreference from `things about micromark` to\n * `bravo`, as it is the first used definition, and the second call to it\n * * `1` and `0` for the backreference from `things about remark` to\n * `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {Array<ElementContent> | ElementContent | string}\n * Content for the backreference when linking back from definitions to their\n * reference.\n *\n * @callback FootnoteBackLabelTemplate\n * Generate a back label dynamically.\n *\n * For the following markdown:\n *\n * ```markdown\n * Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n * [^remark]: things about remark\n * [^micromark]: things about micromark\n * ```\n *\n * This function will be called with:\n *\n * * `0` and `0` for the backreference from `things about micromark` to\n * `alpha`, as it is the first used definition, and the first call to it\n * * `0` and `1` for the backreference from `things about micromark` to\n * `bravo`, as it is the first used definition, and the second call to it\n * * `1` and `0` for the backreference from `things about remark` to\n * `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {string}\n * Back label to use when linking back from definitions to their reference.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Generate the default content that GitHub uses on backreferences.\n *\n * @param {number} _\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {Array<ElementContent>}\n * Content.\n */\nexport function defaultFootnoteBackContent(_, rereferenceIndex) {\n /** @type {Array<ElementContent>} */\n const result = [{type: 'text', value: '↩'}]\n\n if (rereferenceIndex > 1) {\n result.push({\n type: 'element',\n tagName: 'sup',\n properties: {},\n children: [{type: 'text', value: String(rereferenceIndex)}]\n })\n }\n\n return result\n}\n\n/**\n * Generate the default label that GitHub uses on backreferences.\n *\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {string}\n * Label.\n */\nexport function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n return (\n 'Back to reference ' +\n (referenceIndex + 1) +\n (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n )\n}\n\n/**\n * Generate a hast footer for called footnote definitions.\n *\n * @param {State} state\n * Info passed around.\n * @returns {Element | undefined}\n * `section` element or `undefined`.\n */\n// eslint-disable-next-line complexity\nexport function footer(state) {\n const clobberPrefix =\n typeof state.options.clobberPrefix === 'string'\n ? state.options.clobberPrefix\n : 'user-content-'\n const footnoteBackContent =\n state.options.footnoteBackContent || defaultFootnoteBackContent\n const footnoteBackLabel =\n state.options.footnoteBackLabel || defaultFootnoteBackLabel\n const footnoteLabel = state.options.footnoteLabel || 'Footnotes'\n const footnoteLabelTagName = state.options.footnoteLabelTagName || 'h2'\n const footnoteLabelProperties = state.options.footnoteLabelProperties || {\n className: ['sr-only']\n }\n /** @type {Array<ElementContent>} */\n const listItems = []\n let referenceIndex = -1\n\n while (++referenceIndex < state.footnoteOrder.length) {\n const definition = state.footnoteById.get(\n state.footnoteOrder[referenceIndex]\n )\n\n if (!definition) {\n continue\n }\n\n const content = state.all(definition)\n const id = String(definition.identifier).toUpperCase()\n const safeId = normalizeUri(id.toLowerCase())\n let rereferenceIndex = 0\n /** @type {Array<ElementContent>} */\n const backReferences = []\n const counts = state.footnoteCounts.get(id)\n\n // eslint-disable-next-line no-unmodified-loop-condition\n while (counts !== undefined && ++rereferenceIndex <= counts) {\n if (backReferences.length > 0) {\n backReferences.push({type: 'text', value: ' '})\n }\n\n let children =\n typeof footnoteBackContent === 'string'\n ? footnoteBackContent\n : footnoteBackContent(referenceIndex, rereferenceIndex)\n\n if (typeof children === 'string') {\n children = {type: 'text', value: children}\n }\n\n backReferences.push({\n type: 'element',\n tagName: 'a',\n properties: {\n href:\n '#' +\n clobberPrefix +\n 'fnref-' +\n safeId +\n (rereferenceIndex > 1 ? '-' + rereferenceIndex : ''),\n dataFootnoteBackref: '',\n ariaLabel:\n typeof footnoteBackLabel === 'string'\n ? footnoteBackLabel\n : footnoteBackLabel(referenceIndex, rereferenceIndex),\n className: ['data-footnote-backref']\n },\n children: Array.isArray(children) ? children : [children]\n })\n }\n\n const tail = content[content.length - 1]\n\n if (tail && tail.type === 'element' && tail.tagName === 'p') {\n const tailTail = tail.children[tail.children.length - 1]\n if (tailTail && tailTail.type === 'text') {\n tailTail.value += ' '\n } else {\n tail.children.push({type: 'text', value: ' '})\n }\n\n tail.children.push(...backReferences)\n } else {\n content.push(...backReferences)\n }\n\n /** @type {Element} */\n const listItem = {\n type: 'element',\n tagName: 'li',\n properties: {id: clobberPrefix + 'fn-' + safeId},\n children: state.wrap(content, true)\n }\n\n state.patch(definition, listItem)\n\n listItems.push(listItem)\n }\n\n if (listItems.length === 0) {\n return\n }\n\n return {\n type: 'element',\n tagName: 'section',\n properties: {dataFootnotes: true, className: ['footnotes']},\n children: [\n {\n type: 'element',\n tagName: footnoteLabelTagName,\n properties: {\n ...structuredClone(footnoteLabelProperties),\n id: 'footnote-label'\n },\n children: [{type: 'text', value: footnoteLabel}]\n },\n {type: 'text', value: '\\n'},\n {\n type: 'element',\n tagName: 'ol',\n properties: {},\n children: state.wrap(listItems, true)\n },\n {type: 'text', value: '\\n'}\n ]\n }\n}\n","/**\n * @import {\n * ElementContent as HastElementContent,\n * Element as HastElement,\n * Nodes as HastNodes,\n * Properties as HastProperties,\n * RootContent as HastRootContent,\n * Text as HastText\n * } from 'hast'\n * @import {\n * Definition as MdastDefinition,\n * FootnoteDefinition as MdastFootnoteDefinition,\n * Nodes as MdastNodes,\n * Parents as MdastParents\n * } from 'mdast'\n * @import {VFile} from 'vfile'\n * @import {\n * FootnoteBackContentTemplate,\n * FootnoteBackLabelTemplate\n * } from './footer.js'\n */\n\n/**\n * @callback Handler\n * Handle a node.\n * @param {State} state\n * Info passed around.\n * @param {any} node\n * mdast node to handle.\n * @param {MdastParents | undefined} parent\n * Parent of `node`.\n * @returns {Array<HastElementContent> | HastElementContent | undefined}\n * hast node.\n *\n * @typedef {Partial<Record<MdastNodes['type'], Handler>>} Handlers\n * Handle nodes.\n *\n * @typedef Options\n * Configuration (optional).\n * @property {boolean | null | undefined} [allowDangerousHtml=false]\n * Whether to persist raw HTML in markdown in the hast tree (default:\n * `false`).\n * @property {string | null | undefined} [clobberPrefix='user-content-']\n * Prefix to use before the `id` property on footnotes to prevent them from\n * *clobbering* (default: `'user-content-'`).\n *\n * Pass `''` for trusted markdown and when you are careful with\n * polyfilling.\n * You could pass a different prefix.\n *\n * DOM clobbering is this:\n *\n * ```html\n * <p id=\"x\"></p>\n * <script>alert(x) // `x` now refers to the `p#x` DOM element</script>\n * ```\n *\n * The above example shows that elements are made available by browsers, by\n * their ID, on the `window` object.\n * This is a security risk because you might be expecting some other variable\n * at that place.\n * It can also break polyfills.\n * Using a prefix solves these problems.\n * @property {VFile | null | undefined} [file]\n * Corresponding virtual file representing the input document (optional).\n * @property {FootnoteBackContentTemplate | string | null | undefined} [footnoteBackContent]\n * Content of the backreference back to references (default: `defaultFootnoteBackContent`).\n *\n * The default value is:\n *\n * ```js\n * function defaultFootnoteBackContent(_, rereferenceIndex) {\n * const result = [{type: 'text', value: '↩'}]\n *\n * if (rereferenceIndex > 1) {\n * result.push({\n * type: 'element',\n * tagName: 'sup',\n * properties: {},\n * children: [{type: 'text', value: String(rereferenceIndex)}]\n * })\n * }\n *\n * return result\n * }\n * ```\n *\n * This content is used in the `a` element of each backreference (the `↩`\n * links).\n * @property {FootnoteBackLabelTemplate | string | null | undefined} [footnoteBackLabel]\n * Label to describe the backreference back to references (default:\n * `defaultFootnoteBackLabel`).\n *\n * The default value is:\n *\n * ```js\n * function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n * return (\n * 'Back to reference ' +\n * (referenceIndex + 1) +\n * (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n * )\n * }\n * ```\n *\n * Change it when the markdown is not in English.\n *\n * This label is used in the `ariaLabel` property on each backreference\n * (the `↩` links).\n * It affects users of assistive technology.\n * @property {string | null | undefined} [footnoteLabel='Footnotes']\n * Textual label to use for the footnotes section (default: `'Footnotes'`).\n *\n * Change it when the markdown is not in English.\n *\n * This label is typically hidden visually (assuming a `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass different properties with the `footnoteLabelProperties` option.\n * @property {HastProperties | null | undefined} [footnoteLabelProperties={className: ['sr-only']}]\n * Properties to use on the footnote label (default: `{className:\n * ['sr-only']}`).\n *\n * Change it to show the label and add other properties.\n *\n * This label is typically hidden visually (assuming an `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass an empty string.\n * You can also add different properties.\n *\n * > **Note**: `id: 'footnote-label'` is always added, because footnote\n * > calls use it with `aria-describedby` to provide an accessible label.\n * @property {string | null | undefined} [footnoteLabelTagName='h2']\n * HTML tag name to use for the footnote label element (default: `'h2'`).\n *\n * Change it to match your document structure.\n *\n * This label is typically hidden visually (assuming a `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass different properties with the `footnoteLabelProperties` option.\n * @property {Handlers | null | undefined} [handlers]\n * Extra handlers for nodes (optional).\n * @property {Array<MdastNodes['type']> | null | undefined} [passThrough]\n * List of custom mdast node types to pass through (keep) in hast (note that\n * the node itself is passed, but eventual children are transformed)\n * (optional).\n * @property {Handler | null | undefined} [unknownHandler]\n * Handler for all unknown nodes (optional).\n *\n * @typedef State\n * Info passed around.\n * @property {(node: MdastNodes) => Array<HastElementContent>} all\n * Transform the children of an mdast parent to hast.\n * @property {<Type extends HastNodes>(from: MdastNodes, to: Type) => HastElement | Type} applyData\n * Honor the `data` of `from`, and generate an element instead of `node`.\n * @property {Map<string, MdastDefinition>} definitionById\n * Definitions by their identifier.\n * @property {Map<string, MdastFootnoteDefinition>} footnoteById\n * Footnote definitions by their identifier.\n * @property {Map<string, number>} footnoteCounts\n * Counts for how often the same footnote was called.\n * @property {Array<string>} footnoteOrder\n * Identifiers of order when footnote calls first appear in tree order.\n * @property {Handlers} handlers\n * Applied handlers.\n * @property {(node: MdastNodes, parent: MdastParents | undefined) => Array<HastElementContent> | HastElementContent | undefined} one\n * Transform an mdast node to hast.\n * @property {Options} options\n * Configuration.\n * @property {(from: MdastNodes, node: HastNodes) => undefined} patch\n * Copy a node’s positional info.\n * @property {<Type extends HastRootContent>(nodes: Array<Type>, loose?: boolean | undefined) => Array<HastText | Type>} wrap\n * Wrap `nodes` with line endings between each node, adds initial/final line endings when `loose`.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {visit} from 'unist-util-visit'\nimport {position} from 'unist-util-position'\nimport {handlers as defaultHandlers} from './handlers/index.js'\n\nconst own = {}.hasOwnProperty\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Create `state` from an mdast tree.\n *\n * @param {MdastNodes} tree\n * mdast node to transform.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {State}\n * `state` function.\n */\nexport function createState(tree, options) {\n const settings = options || emptyOptions\n /** @type {Map<string, MdastDefinition>} */\n const definitionById = new Map()\n /** @type {Map<string, MdastFootnoteDefinition>} */\n const footnoteById = new Map()\n /** @type {Map<string, number>} */\n const footnoteCounts = new Map()\n /** @type {Handlers} */\n // @ts-expect-error: the root handler returns a root.\n // Hard to type.\n const handlers = {...defaultHandlers, ...settings.handlers}\n\n /** @type {State} */\n const state = {\n all,\n applyData,\n definitionById,\n footnoteById,\n footnoteCounts,\n footnoteOrder: [],\n handlers,\n one,\n options: settings,\n patch,\n wrap\n }\n\n visit(tree, function (node) {\n if (node.type === 'definition' || node.type === 'footnoteDefinition') {\n const map = node.type === 'definition' ? definitionById : footnoteById\n const id = String(node.identifier).toUpperCase()\n\n // Mimick CM behavior of link definitions.\n // See: <https://github.com/syntax-tree/mdast-util-definitions/blob/9032189/lib/index.js#L20-L21>.\n if (!map.has(id)) {\n // @ts-expect-error: node type matches map.\n map.set(id, node)\n }\n }\n })\n\n return state\n\n /**\n * Transform an mdast node into a hast node.\n *\n * @param {MdastNodes} node\n * mdast node.\n * @param {MdastParents | undefined} [parent]\n * Parent of `node`.\n * @returns {Array<HastElementContent> | HastElementContent | undefined}\n * Resulting hast node.\n */\n function one(node, parent) {\n const type = node.type\n const handle = state.handlers[type]\n\n if (own.call(state.handlers, type) && handle) {\n return handle(state, node, parent)\n }\n\n if (state.options.passThrough && state.options.passThrough.includes(type)) {\n if ('children' in node) {\n const {children, ...shallow} = node\n const result = structuredClone(shallow)\n // @ts-expect-error: TS doesn’t understand…\n result.children = state.all(node)\n // @ts-expect-error: TS doesn’t understand…\n return result\n }\n\n // @ts-expect-error: it’s custom.\n return structuredClone(node)\n }\n\n const unknown = state.options.unknownHandler || defaultUnknownHandler\n\n return unknown(state, node, parent)\n }\n\n /**\n * Transform the children of an mdast node into hast nodes.\n *\n * @param {MdastNodes} parent\n * mdast node to compile\n * @returns {Array<HastElementContent>}\n * Resulting hast nodes.\n */\n function all(parent) {\n /** @type {Array<HastElementContent>} */\n const values = []\n\n if ('children' in parent) {\n const nodes = parent.children\n let index = -1\n while (++index < nodes.length) {\n const result = state.one(nodes[index], parent)\n\n // To do: see if we van clean this? Can we merge texts?\n if (result) {\n if (index && nodes[index - 1].type === 'break') {\n if (!Array.isArray(result) && result.type === 'text') {\n result.value = trimMarkdownSpaceStart(result.value)\n }\n\n if (!Array.isArray(result) && result.type === 'element') {\n const head = result.children[0]\n\n if (head && head.type === 'text') {\n head.value = trimMarkdownSpaceStart(head.value)\n }\n }\n }\n\n if (Array.isArray(result)) {\n values.push(...result)\n } else {\n values.push(result)\n }\n }\n }\n }\n\n return values\n }\n}\n\n/**\n * Copy a node’s positional info.\n *\n * @param {MdastNodes} from\n * mdast node to copy from.\n * @param {HastNodes} to\n * hast node to copy into.\n * @returns {undefined}\n * Nothing.\n */\nfunction patch(from, to) {\n if (from.position) to.position = position(from)\n}\n\n/**\n * Honor the `data` of `from` and maybe generate an element instead of `to`.\n *\n * @template {HastNodes} Type\n * Node type.\n * @param {MdastNodes} from\n * mdast node to use data from.\n * @param {Type} to\n * hast node to change.\n * @returns {HastElement | Type}\n * Nothing.\n */\nfunction applyData(from, to) {\n /** @type {HastElement | Type} */\n let result = to\n\n // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n if (from && from.data) {\n const hName = from.data.hName\n const hChildren = from.data.hChildren\n const hProperties = from.data.hProperties\n\n if (typeof hName === 'string') {\n // Transforming the node resulted in an element with a different name\n // than wanted:\n if (result.type === 'element') {\n result.tagName = hName\n }\n // Transforming the node resulted in a non-element, which happens for\n // raw, text, and root nodes (unless custom handlers are passed).\n // The intent of `hName` is to create an element, but likely also to keep\n // the content around (otherwise: pass `hChildren`).\n else {\n /** @type {Array<HastElementContent>} */\n // @ts-expect-error: assume no doctypes in `root`.\n const children = 'children' in result ? result.children : [result]\n result = {type: 'element', tagName: hName, properties: {}, children}\n }\n }\n\n if (result.type === 'element' && hProperties) {\n Object.assign(result.properties, structuredClone(hProperties))\n }\n\n if (\n 'children' in result &&\n result.children &&\n hChildren !== null &&\n hChildren !== undefined\n ) {\n result.children = hChildren\n }\n }\n\n return result\n}\n\n/**\n * Transform an unknown node.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastNodes} node\n * Unknown mdast node.\n * @returns {HastElement | HastText}\n * Resulting hast node.\n */\nfunction defaultUnknownHandler(state, node) {\n const data = node.data || {}\n /** @type {HastElement | HastText} */\n const result =\n 'value' in node &&\n !(own.call(data, 'hProperties') || own.call(data, 'hChildren'))\n ? {type: 'text', value: node.value}\n : {\n type: 'element',\n tagName: 'div',\n properties: {},\n children: state.all(node)\n }\n\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * Wrap `nodes` with line endings between each node.\n *\n * @template {HastRootContent} Type\n * Node type.\n * @param {Array<Type>} nodes\n * List of nodes to wrap.\n * @param {boolean | undefined} [loose=false]\n * Whether to add line endings at start and end (default: `false`).\n * @returns {Array<HastText | Type>}\n * Wrapped nodes.\n */\nexport function wrap(nodes, loose) {\n /** @type {Array<HastText | Type>} */\n const result = []\n let index = -1\n\n if (loose) {\n result.push({type: 'text', value: '\\n'})\n }\n\n while (++index < nodes.length) {\n if (index) result.push({type: 'text', value: '\\n'})\n result.push(nodes[index])\n }\n\n if (loose && nodes.length > 0) {\n result.push({type: 'text', value: '\\n'})\n }\n\n return result\n}\n\n/**\n * Trim spaces and tabs at the start of `value`.\n *\n * @param {string} value\n * Value to trim.\n * @returns {string}\n * Result.\n */\nfunction trimMarkdownSpaceStart(value) {\n let index = 0\n let code = value.charCodeAt(index)\n\n while (code === 9 || code === 32) {\n index++\n code = value.charCodeAt(index)\n }\n\n return value.slice(index)\n}\n","/**\n * @import {Nodes as HastNodes} from 'hast'\n * @import {Nodes as MdastNodes} from 'mdast'\n * @import {Options} from './state.js'\n */\n\nimport {ok as assert} from 'devlop'\nimport {footer} from './footer.js'\nimport {createState} from './state.js'\n\n/**\n * Transform mdast to hast.\n *\n * ##### Notes\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most utilities ignore `raw` nodes but two notable ones don’t:\n *\n * * `hast-util-to-html` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful\n * if you completely trust authors\n * * `hast-util-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc).\n * This is a heavy task as it needs a full HTML parser, but it is the only\n * way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark, which we follow by default.\n * They are supported by GitHub, so footnotes can be enabled in markdown with\n * `mdast-util-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes, which is hidden for sighted users but shown to\n * assistive technology.\n * When your page is not in English, you must define translated values.\n *\n * Back references use ARIA attributes, but the section label itself uses a\n * heading that is hidden with an `sr-only` class.\n * To show it to sighted users, define different attributes in\n * `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem, as it links footnote calls to footnote\n * definitions on the page through `id` attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n * <p id=x></p>\n * <script>alert(x) // `x` now refers to the DOM `p#x` element</script>\n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * Example: headings (DOM clobbering) in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value` (and doesn’t have `data.hName`,\n * `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n * node\n * * otherwise, create a `<div>` element (which could be changed with\n * `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @param {MdastNodes} tree\n * mdast tree.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {HastNodes}\n * hast tree.\n */\nexport function toHast(tree, options) {\n const state = createState(tree, options)\n const node = state.one(tree, undefined)\n const foot = footer(state)\n /** @type {HastNodes} */\n const result = Array.isArray(node)\n ? {type: 'root', children: node}\n : node || {type: 'root', children: []}\n\n if (foot) {\n // If there’s a footer, there were definitions, meaning block\n // content.\n // So `result` is a parent node.\n assert('children' in result)\n result.children.push({type: 'text', value: '\\n'}, foot)\n }\n\n return result\n}\n","/**\n * @import {Root as HastRoot} from 'hast'\n * @import {Root as MdastRoot} from 'mdast'\n * @import {Options as ToHastOptions} from 'mdast-util-to-hast'\n * @import {Processor} from 'unified'\n * @import {VFile} from 'vfile'\n */\n\n/**\n * @typedef {Omit<ToHastOptions, 'file'>} Options\n *\n * @callback TransformBridge\n * Bridge-mode.\n *\n * Runs the destination with the new hast tree.\n * Discards result.\n * @param {MdastRoot} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {Promise<undefined>}\n * Nothing.\n *\n * @callback TransformMutate\n * Mutate-mode.\n *\n * Further transformers run on the hast tree.\n * @param {MdastRoot} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {HastRoot}\n * Tree (hast).\n */\n\nimport {toHast} from 'mdast-util-to-hast'\n\n/**\n * Turn markdown into HTML.\n *\n * ##### Notes\n *\n * ###### Signature\n *\n * * if a processor is given,\n * runs the (rehype) plugins used on it with a hast tree,\n * then discards the result (*bridge mode*)\n * * otherwise,\n * returns a hast tree,\n * the plugins used after `remarkRehype` are rehype plugins (*mutate mode*)\n *\n * > 👉 **Note**:\n * > It’s highly unlikely that you want to pass a `processor`.\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most plugins ignore `raw` nodes but two notable ones don’t:\n *\n * * `rehype-stringify` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful if\n * you completely trust authors\n * * `rehype-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc);\n * this is a heavy task as it needs a full HTML parser,\n * but it is the only way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark,\n * which we follow by default.\n * They are supported by GitHub,\n * so footnotes can be enabled in markdown with `remark-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes,\n * which is hidden for sighted users but shown to assistive technology.\n * When your page is not in English,\n * you must define translated values.\n *\n * Back references use ARIA attributes,\n * but the section label itself uses a heading that is hidden with an\n * `sr-only` class.\n * To show it to sighted users,\n * define different attributes in `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem,\n * as it links footnote calls to footnote definitions on the page through `id`\n * attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n * <p id=x></p>\n * <script>alert(x) // `x` now refers to the DOM `p#x` element</script>\n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * *Example: headings (DOM clobbering)* in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value`\n * (and doesn’t have `data.hName`, `data.hProperties`, or `data.hChildren`,\n * see later),\n * create a hast `text` node\n * * otherwise,\n * create a `<div>` element (which could be changed with `data.hName`),\n * with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @overload\n * @param {Processor} processor\n * @param {Readonly<Options> | null | undefined} [options]\n * @returns {TransformBridge}\n *\n * @overload\n * @param {Readonly<Options> | null | undefined} [options]\n * @returns {TransformMutate}\n *\n * @overload\n * @param {Readonly<Options> | Processor | null | undefined} [destination]\n * @param {Readonly<Options> | null | undefined} [options]\n * @returns {TransformBridge | TransformMutate}\n *\n * @param {Readonly<Options> | Processor | null | undefined} [destination]\n * Processor or configuration (optional).\n * @param {Readonly<Options> | null | undefined} [options]\n * When a processor was given,\n * configuration (optional).\n * @returns {TransformBridge | TransformMutate}\n * Transform.\n */\nexport default function remarkRehype(destination, options) {\n if (destination && 'run' in destination) {\n /**\n * @type {TransformBridge}\n */\n return async function (tree, file) {\n // Cast because root in -> root out.\n const hastTree = /** @type {HastRoot} */ (\n toHast(tree, {file, ...options})\n )\n await destination.run(hastTree, file)\n }\n }\n\n /**\n * @type {TransformMutate}\n */\n return function (tree, file) {\n // Cast because root in -> root out.\n // To do: in the future, disallow ` || options` fallback.\n // With `unified-engine`, `destination` can be `undefined` but\n // `options` will be the file set.\n // We should not pass that as `options`.\n return /** @type {HastRoot} */ (\n toHast(tree, {file, ...(destination || options)})\n )\n }\n}\n","/**\n * @typedef {import('mdast').Nodes} Nodes\n */\n\nimport {visit} from 'unist-util-visit'\n\n/**\n * Remove empty paragraphs in `tree`.\n *\n * @param {Nodes} tree\n * Tree to change.\n * @returns {undefined}\n * Nothing.\n */\nexport function squeezeParagraphs(tree) {\n visit(tree, function (node, index, parent) {\n if (\n index !== undefined &&\n parent &&\n node.type === 'paragraph' &&\n node.children.every(function (child) {\n return child.type === 'text' && /^\\s*$/.test(child.value)\n })\n ) {\n parent.children.splice(index, 1)\n return index\n }\n })\n}\n","/**\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: MIT\n */\n\n/**\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').Root} Root\n */\n\nimport {squeezeParagraphs} from 'mdast-squeeze-paragraphs'\nimport {visit} from 'unist-util-visit'\n\n/**\n * Only keep links with the given protocols.\n *\n * @param {object} options Options\n * @param {string[]} options.except - Protocols to exclude. Defauls to `['http', 'https']`.\n * @returns\n * Transform.\n */\nexport default function remarkUnlinkProtocols(\n options = {except: ['http', 'https']}\n) {\n /**\n * Transform.\n *\n * @param {Root} tree\n * Tree.\n * @returns {undefined}\n * Nothing.\n */\n return function (tree) {\n /** @type {Map<string, string>} */\n const definitions = new Map()\n\n // Find definitions to look up linkReferences.\n visit(tree, 'definition', function (node, index, parent) {\n definitions.set(node.identifier, node.url)\n if (parent && typeof index === 'number') {\n const url = node.url\n if (\n url &&\n url.includes(':') &&\n !options.except.some((proto) => url.startsWith(`${proto}:`))\n ) {\n parent.children.splice(index, 1)\n return index\n }\n }\n })\n\n visit(tree, function (node, index, parent) {\n if (\n parent &&\n typeof index === 'number' &&\n (node.type === 'link' || node.type === 'linkReference')\n ) {\n const url =\n node.type === 'link' ? node.url : definitions.get(node.identifier)\n if (\n url &&\n url.includes(':') &&\n !options.except.some((proto) => url.startsWith(`${proto}:`))\n ) {\n parent.children.splice(index, 1, ...node.children)\n return index\n }\n }\n })\n\n squeezeParagraphs(tree)\n }\n}\n","/**\n * Throw a given error.\n *\n * @param {Error|null|undefined} [error]\n * Maybe error.\n * @returns {asserts error is null|undefined}\n */\nexport function bail(error) {\n if (error) {\n throw error\n }\n}\n","'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n","export default function isPlainObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);\n}\n","// To do: remove `void`s\n// To do: remove `null` from output of our APIs, allow it as user APIs.\n\n/**\n * @typedef {(error?: Error | null | undefined, ...output: Array<any>) => void} Callback\n * Callback.\n *\n * @typedef {(...input: Array<any>) => any} Middleware\n * Ware.\n *\n * @typedef Pipeline\n * Pipeline.\n * @property {Run} run\n * Run the pipeline.\n * @property {Use} use\n * Add middleware.\n *\n * @typedef {(...input: Array<any>) => void} Run\n * Call all middleware.\n *\n * Calls `done` on completion with either an error or the output of the\n * last middleware.\n *\n * > 👉 **Note**: as the length of input defines whether async functions get a\n * > `next` function,\n * > it’s recommended to keep `input` at one value normally.\n\n *\n * @typedef {(fn: Middleware) => Pipeline} Use\n * Add middleware.\n */\n\n/**\n * Create new middleware.\n *\n * @returns {Pipeline}\n * Pipeline.\n */\nexport function trough() {\n /** @type {Array<Middleware>} */\n const fns = []\n /** @type {Pipeline} */\n const pipeline = {run, use}\n\n return pipeline\n\n /** @type {Run} */\n function run(...values) {\n let middlewareIndex = -1\n /** @type {Callback} */\n const callback = values.pop()\n\n if (typeof callback !== 'function') {\n throw new TypeError('Expected function as last argument, not ' + callback)\n }\n\n next(null, ...values)\n\n /**\n * Run the next `fn`, or we’re done.\n *\n * @param {Error | null | undefined} error\n * @param {Array<any>} output\n */\n function next(error, ...output) {\n const fn = fns[++middlewareIndex]\n let index = -1\n\n if (error) {\n callback(error)\n return\n }\n\n // Copy non-nullish input into values.\n while (++index < values.length) {\n if (output[index] === null || output[index] === undefined) {\n output[index] = values[index]\n }\n }\n\n // Save the newly created `output` for the next call.\n values = output\n\n // Next or done.\n if (fn) {\n wrap(fn, next)(...output)\n } else {\n callback(null, ...output)\n }\n }\n }\n\n /** @type {Use} */\n function use(middelware) {\n if (typeof middelware !== 'function') {\n throw new TypeError(\n 'Expected `middelware` to be a function, not ' + middelware\n )\n }\n\n fns.push(middelware)\n return pipeline\n }\n}\n\n/**\n * Wrap `middleware` into a uniform interface.\n *\n * You can pass all input to the resulting function.\n * `callback` is then called with the output of `middleware`.\n *\n * If `middleware` accepts more arguments than the later given in input,\n * an extra `done` function is passed to it after that input,\n * which must be called by `middleware`.\n *\n * The first value in `input` is the main input value.\n * All other input values are the rest input values.\n * The values given to `callback` are the input values,\n * merged with every non-nullish output value.\n *\n * * if `middleware` throws an error,\n * returns a promise that is rejected,\n * or calls the given `done` function with an error,\n * `callback` is called with that error\n * * if `middleware` returns a value or returns a promise that is resolved,\n * that value is the main output value\n * * if `middleware` calls `done`,\n * all non-nullish values except for the first one (the error) overwrite the\n * output values\n *\n * @param {Middleware} middleware\n * Function to wrap.\n * @param {Callback} callback\n * Callback called with the output of `middleware`.\n * @returns {Run}\n * Wrapped middleware.\n */\nexport function wrap(middleware, callback) {\n /** @type {boolean} */\n let called\n\n return wrapped\n\n /**\n * Call `middleware`.\n * @this {any}\n * @param {Array<any>} parameters\n * @returns {void}\n */\n function wrapped(...parameters) {\n const fnExpectsCallback = middleware.length > parameters.length\n /** @type {any} */\n let result\n\n if (fnExpectsCallback) {\n parameters.push(done)\n }\n\n try {\n result = middleware.apply(this, parameters)\n } catch (error) {\n const exception = /** @type {Error} */ (error)\n\n // Well, this is quite the pickle.\n // `middleware` received a callback and called it synchronously, but that\n // threw an error.\n // The only thing left to do is to throw the thing instead.\n if (fnExpectsCallback && called) {\n throw exception\n }\n\n return done(exception)\n }\n\n if (!fnExpectsCallback) {\n if (result && result.then && typeof result.then === 'function') {\n result.then(then, done)\n } else if (result instanceof Error) {\n done(result)\n } else {\n then(result)\n }\n }\n }\n\n /**\n * Call `callback`, only once.\n *\n * @type {Callback}\n */\n function done(error, ...output) {\n if (!called) {\n called = true\n callback(error, ...output)\n }\n }\n\n /**\n * Call `done` with one value.\n *\n * @param {any} [value]\n */\n function then(value) {\n done(null, value)\n }\n}\n","// A derivative work based on:\n// <https://github.com/browserify/path-browserify>.\n// Which is licensed:\n//\n// MIT License\n//\n// Copyright (c) 2013 James Halliday\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A derivative work based on:\n//\n// Parts of that are extracted from Node’s internal `path` module:\n// <https://github.com/nodejs/node/blob/master/lib/path.js>.\n// Which is licensed:\n//\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nexport const minpath = {basename, dirname, extname, join, sep: '/'}\n\n/* eslint-disable max-depth, complexity */\n\n/**\n * Get the basename from a path.\n *\n * @param {string} path\n * File path.\n * @param {string | null | undefined} [extname]\n * Extension to strip.\n * @returns {string}\n * Stem or basename.\n */\nfunction basename(path, extname) {\n if (extname !== undefined && typeof extname !== 'string') {\n throw new TypeError('\"ext\" argument must be a string')\n }\n\n assertPath(path)\n let start = 0\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let seenNonSlash\n\n if (\n extname === undefined ||\n extname.length === 0 ||\n extname.length > path.length\n ) {\n while (index--) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // path component.\n seenNonSlash = true\n end = index + 1\n }\n }\n\n return end < 0 ? '' : path.slice(start, end)\n }\n\n if (extname === path) {\n return ''\n }\n\n let firstNonSlashEnd = -1\n let extnameIndex = extname.length - 1\n\n while (index--) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else {\n if (firstNonSlashEnd < 0) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching.\n seenNonSlash = true\n firstNonSlashEnd = index + 1\n }\n\n if (extnameIndex > -1) {\n // Try to match the explicit extension.\n if (path.codePointAt(index) === extname.codePointAt(extnameIndex--)) {\n if (extnameIndex < 0) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = index\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extnameIndex = -1\n end = firstNonSlashEnd\n }\n }\n }\n }\n\n if (start === end) {\n end = firstNonSlashEnd\n } else if (end < 0) {\n end = path.length\n }\n\n return path.slice(start, end)\n}\n\n/**\n * Get the dirname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\nfunction dirname(path) {\n assertPath(path)\n\n if (path.length === 0) {\n return '.'\n }\n\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n // Prefix `--` is important to not run on `0`.\n while (--index) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n if (unmatchedSlash) {\n end = index\n break\n }\n } else if (!unmatchedSlash) {\n // We saw the first non-path separator\n unmatchedSlash = true\n }\n }\n\n return end < 0\n ? path.codePointAt(0) === 47 /* `/` */\n ? '/'\n : '.'\n : end === 1 && path.codePointAt(0) === 47 /* `/` */\n ? '//'\n : path.slice(0, end)\n}\n\n/**\n * Get an extname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * Extname.\n */\nfunction extname(path) {\n assertPath(path)\n\n let index = path.length\n\n let end = -1\n let startPart = 0\n let startDot = -1\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find.\n let preDotState = 0\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n while (index--) {\n const code = path.codePointAt(index)\n\n if (code === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (unmatchedSlash) {\n startPart = index + 1\n break\n }\n\n continue\n }\n\n if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // extension.\n unmatchedSlash = true\n end = index + 1\n }\n\n if (code === 46 /* `.` */) {\n // If this is our first dot, mark it as the start of our extension.\n if (startDot < 0) {\n startDot = index\n } else if (preDotState !== 1) {\n preDotState = 1\n }\n } else if (startDot > -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension.\n preDotState = -1\n }\n }\n\n if (\n startDot < 0 ||\n end < 0 ||\n // We saw a non-dot character immediately before the dot.\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly `..`.\n (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)\n ) {\n return ''\n }\n\n return path.slice(startDot, end)\n}\n\n/**\n * Join segments from a path.\n *\n * @param {Array<string>} segments\n * Path segments.\n * @returns {string}\n * File path.\n */\nfunction join(...segments) {\n let index = -1\n /** @type {string | undefined} */\n let joined\n\n while (++index < segments.length) {\n assertPath(segments[index])\n\n if (segments[index]) {\n joined =\n joined === undefined ? segments[index] : joined + '/' + segments[index]\n }\n }\n\n return joined === undefined ? '.' : normalize(joined)\n}\n\n/**\n * Normalize a basic file path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\n// Note: `normalize` is not exposed as `path.normalize`, so some code is\n// manually removed from it.\nfunction normalize(path) {\n assertPath(path)\n\n const absolute = path.codePointAt(0) === 47 /* `/` */\n\n // Normalize the path according to POSIX rules.\n let value = normalizeString(path, !absolute)\n\n if (value.length === 0 && !absolute) {\n value = '.'\n }\n\n if (value.length > 0 && path.codePointAt(path.length - 1) === 47 /* / */) {\n value += '/'\n }\n\n return absolute ? '/' + value : value\n}\n\n/**\n * Resolve `.` and `..` elements in a path with directory names.\n *\n * @param {string} path\n * File path.\n * @param {boolean} allowAboveRoot\n * Whether `..` can move above root.\n * @returns {string}\n * File path.\n */\nfunction normalizeString(path, allowAboveRoot) {\n let result = ''\n let lastSegmentLength = 0\n let lastSlash = -1\n let dots = 0\n let index = -1\n /** @type {number | undefined} */\n let code\n /** @type {number} */\n let lastSlashIndex\n\n while (++index <= path.length) {\n if (index < path.length) {\n code = path.codePointAt(index)\n } else if (code === 47 /* `/` */) {\n break\n } else {\n code = 47 /* `/` */\n }\n\n if (code === 47 /* `/` */) {\n if (lastSlash === index - 1 || dots === 1) {\n // Empty.\n } else if (lastSlash !== index - 1 && dots === 2) {\n if (\n result.length < 2 ||\n lastSegmentLength !== 2 ||\n result.codePointAt(result.length - 1) !== 46 /* `.` */ ||\n result.codePointAt(result.length - 2) !== 46 /* `.` */\n ) {\n if (result.length > 2) {\n lastSlashIndex = result.lastIndexOf('/')\n\n if (lastSlashIndex !== result.length - 1) {\n if (lastSlashIndex < 0) {\n result = ''\n lastSegmentLength = 0\n } else {\n result = result.slice(0, lastSlashIndex)\n lastSegmentLength = result.length - 1 - result.lastIndexOf('/')\n }\n\n lastSlash = index\n dots = 0\n continue\n }\n } else if (result.length > 0) {\n result = ''\n lastSegmentLength = 0\n lastSlash = index\n dots = 0\n continue\n }\n }\n\n if (allowAboveRoot) {\n result = result.length > 0 ? result + '/..' : '..'\n lastSegmentLength = 2\n }\n } else {\n if (result.length > 0) {\n result += '/' + path.slice(lastSlash + 1, index)\n } else {\n result = path.slice(lastSlash + 1, index)\n }\n\n lastSegmentLength = index - lastSlash - 1\n }\n\n lastSlash = index\n dots = 0\n } else if (code === 46 /* `.` */ && dots > -1) {\n dots++\n } else {\n dots = -1\n }\n }\n\n return result\n}\n\n/**\n * Make sure `path` is a string.\n *\n * @param {string} path\n * File path.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError(\n 'Path must be a string. Received ' + JSON.stringify(path)\n )\n }\n}\n\n/* eslint-enable max-depth, complexity */\n","// Somewhat based on:\n// <https://github.com/defunctzombie/node-process/blob/master/browser.js>.\n// But I don’t think one tiny line of code can be copyrighted. 😅\nexport const minproc = {cwd}\n\nfunction cwd() {\n return '/'\n}\n","/**\n * Checks if a value has the shape of a WHATWG URL object.\n *\n * Using a symbol or instanceof would not be able to recognize URL objects\n * coming from other implementations (e.g. in Electron), so instead we are\n * checking some well known properties for a lack of a better test.\n *\n * We use `href` and `protocol` as they are the only properties that are\n * easy to retrieve and calculate due to the lazy nature of the getters.\n *\n * We check for auth attribute to distinguish legacy url instance with\n * WHATWG URL instance.\n *\n * @param {unknown} fileUrlOrPath\n * File path or URL.\n * @returns {fileUrlOrPath is URL}\n * Whether it’s a URL.\n */\n// From: <https://github.com/nodejs/node/blob/6a3403c/lib/internal/url.js#L720>\nexport function isUrl(fileUrlOrPath) {\n return Boolean(\n fileUrlOrPath !== null &&\n typeof fileUrlOrPath === 'object' &&\n 'href' in fileUrlOrPath &&\n fileUrlOrPath.href &&\n 'protocol' in fileUrlOrPath &&\n fileUrlOrPath.protocol &&\n // @ts-expect-error: indexing is fine.\n fileUrlOrPath.auth === undefined\n )\n}\n","import {isUrl} from './minurl.shared.js'\n\nexport {isUrl} from './minurl.shared.js'\n\n// See: <https://github.com/nodejs/node/blob/6a3403c/lib/internal/url.js>\n\n/**\n * @param {URL | string} path\n * File URL.\n * @returns {string}\n * File URL.\n */\nexport function urlToPath(path) {\n if (typeof path === 'string') {\n path = new URL(path)\n } else if (!isUrl(path)) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'The \"path\" argument must be of type string or an instance of URL. Received `' +\n path +\n '`'\n )\n error.code = 'ERR_INVALID_ARG_TYPE'\n throw error\n }\n\n if (path.protocol !== 'file:') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError('The URL must be of scheme file')\n error.code = 'ERR_INVALID_URL_SCHEME'\n throw error\n }\n\n return getPathFromURLPosix(path)\n}\n\n/**\n * Get a path from a POSIX URL.\n *\n * @param {URL} url\n * URL.\n * @returns {string}\n * File path.\n */\nfunction getPathFromURLPosix(url) {\n if (url.hostname !== '') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL host must be \"localhost\" or empty on darwin'\n )\n error.code = 'ERR_INVALID_FILE_URL_HOST'\n throw error\n }\n\n const pathname = url.pathname\n let index = -1\n\n while (++index < pathname.length) {\n if (\n pathname.codePointAt(index) === 37 /* `%` */ &&\n pathname.codePointAt(index + 1) === 50 /* `2` */\n ) {\n const third = pathname.codePointAt(index + 2)\n if (third === 70 /* `F` */ || third === 102 /* `f` */) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL path must not include encoded / characters'\n )\n error.code = 'ERR_INVALID_FILE_URL_PATH'\n throw error\n }\n }\n }\n\n return decodeURIComponent(pathname)\n}\n","/**\n * @import {Node, Point, Position} from 'unist'\n * @import {Options as MessageOptions} from 'vfile-message'\n * @import {Compatible, Data, Map, Options, Value} from 'vfile'\n */\n\n/**\n * @typedef {object & {type: string, position?: Position | undefined}} NodeLike\n */\n\nimport {VFileMessage} from 'vfile-message'\nimport {minpath} from '#minpath'\nimport {minproc} from '#minproc'\nimport {urlToPath, isUrl} from '#minurl'\n\n/**\n * Order of setting (least specific to most), we need this because otherwise\n * `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n * stem can be set.\n */\nconst order = /** @type {const} */ ([\n 'history',\n 'path',\n 'basename',\n 'stem',\n 'extname',\n 'dirname'\n])\n\nexport class VFile {\n /**\n * Create a new virtual file.\n *\n * `options` is treated as:\n *\n * * `string` or `Uint8Array` — `{value: options}`\n * * `URL` — `{path: options}`\n * * `VFile` — shallow copies its data over to the new file\n * * `object` — all fields are shallow copied over to the new file\n *\n * Path related fields are set in the following order (least specific to\n * most specific): `history`, `path`, `basename`, `stem`, `extname`,\n * `dirname`.\n *\n * You cannot set `dirname` or `extname` without setting either `history`,\n * `path`, `basename`, or `stem` too.\n *\n * @param {Compatible | null | undefined} [value]\n * File value.\n * @returns\n * New instance.\n */\n constructor(value) {\n /** @type {Options | VFile} */\n let options\n\n if (!value) {\n options = {}\n } else if (isUrl(value)) {\n options = {path: value}\n } else if (typeof value === 'string' || isUint8Array(value)) {\n options = {value}\n } else {\n options = value\n }\n\n /* eslint-disable no-unused-expressions */\n\n /**\n * Base of `path` (default: `process.cwd()` or `'/'` in browsers).\n *\n * @type {string}\n */\n // Prevent calling `cwd` (which could be expensive) if it’s not needed;\n // the empty string will be overridden in the next block.\n this.cwd = 'cwd' in options ? '' : minproc.cwd()\n\n /**\n * Place to store custom info (default: `{}`).\n *\n * It’s OK to store custom data directly on the file but moving it to\n * `data` is recommended.\n *\n * @type {Data}\n */\n this.data = {}\n\n /**\n * List of file paths the file moved between.\n *\n * The first is the original path and the last is the current path.\n *\n * @type {Array<string>}\n */\n this.history = []\n\n /**\n * List of messages associated with the file.\n *\n * @type {Array<VFileMessage>}\n */\n this.messages = []\n\n /**\n * Raw value.\n *\n * @type {Value}\n */\n this.value\n\n // The below are non-standard, they are “well-known”.\n // As in, used in several tools.\n /**\n * Source map.\n *\n * This type is equivalent to the `RawSourceMap` type from the `source-map`\n * module.\n *\n * @type {Map | null | undefined}\n */\n this.map\n\n /**\n * Custom, non-string, compiled, representation.\n *\n * This is used by unified to store non-string results.\n * One example is when turning markdown into React nodes.\n *\n * @type {unknown}\n */\n this.result\n\n /**\n * Whether a file was saved to disk.\n *\n * This is used by vfile reporters.\n *\n * @type {boolean}\n */\n this.stored\n /* eslint-enable no-unused-expressions */\n\n // Set path related properties in the correct order.\n let index = -1\n\n while (++index < order.length) {\n const field = order[index]\n\n // Note: we specifically use `in` instead of `hasOwnProperty` to accept\n // `vfile`s too.\n if (\n field in options &&\n options[field] !== undefined &&\n options[field] !== null\n ) {\n // @ts-expect-error: TS doesn’t understand basic reality.\n this[field] = field === 'history' ? [...options[field]] : options[field]\n }\n }\n\n /** @type {string} */\n let field\n\n // Set non-path related properties.\n for (field in options) {\n // @ts-expect-error: fine to set other things.\n if (!order.includes(field)) {\n // @ts-expect-error: fine to set other things.\n this[field] = options[field]\n }\n }\n }\n\n /**\n * Get the basename (including extname) (example: `'index.min.js'`).\n *\n * @returns {string | undefined}\n * Basename.\n */\n get basename() {\n return typeof this.path === 'string'\n ? minpath.basename(this.path)\n : undefined\n }\n\n /**\n * Set basename (including extname) (`'index.min.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} basename\n * Basename.\n * @returns {undefined}\n * Nothing.\n */\n set basename(basename) {\n assertNonEmpty(basename, 'basename')\n assertPart(basename, 'basename')\n this.path = minpath.join(this.dirname || '', basename)\n }\n\n /**\n * Get the parent path (example: `'~'`).\n *\n * @returns {string | undefined}\n * Dirname.\n */\n get dirname() {\n return typeof this.path === 'string'\n ? minpath.dirname(this.path)\n : undefined\n }\n\n /**\n * Set the parent path (example: `'~'`).\n *\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} dirname\n * Dirname.\n * @returns {undefined}\n * Nothing.\n */\n set dirname(dirname) {\n assertPath(this.basename, 'dirname')\n this.path = minpath.join(dirname || '', this.basename)\n }\n\n /**\n * Get the extname (including dot) (example: `'.js'`).\n *\n * @returns {string | undefined}\n * Extname.\n */\n get extname() {\n return typeof this.path === 'string'\n ? minpath.extname(this.path)\n : undefined\n }\n\n /**\n * Set the extname (including dot) (example: `'.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} extname\n * Extname.\n * @returns {undefined}\n * Nothing.\n */\n set extname(extname) {\n assertPart(extname, 'extname')\n assertPath(this.dirname, 'extname')\n\n if (extname) {\n if (extname.codePointAt(0) !== 46 /* `.` */) {\n throw new Error('`extname` must start with `.`')\n }\n\n if (extname.includes('.', 1)) {\n throw new Error('`extname` cannot contain multiple dots')\n }\n }\n\n this.path = minpath.join(this.dirname, this.stem + (extname || ''))\n }\n\n /**\n * Get the full path (example: `'~/index.min.js'`).\n *\n * @returns {string}\n * Path.\n */\n get path() {\n return this.history[this.history.length - 1]\n }\n\n /**\n * Set the full path (example: `'~/index.min.js'`).\n *\n * Cannot be nullified.\n * You can set a file URL (a `URL` object with a `file:` protocol) which will\n * be turned into a path with `url.fileURLToPath`.\n *\n * @param {URL | string} path\n * Path.\n * @returns {undefined}\n * Nothing.\n */\n set path(path) {\n if (isUrl(path)) {\n path = urlToPath(path)\n }\n\n assertNonEmpty(path, 'path')\n\n if (this.path !== path) {\n this.history.push(path)\n }\n }\n\n /**\n * Get the stem (basename w/o extname) (example: `'index.min'`).\n *\n * @returns {string | undefined}\n * Stem.\n */\n get stem() {\n return typeof this.path === 'string'\n ? minpath.basename(this.path, this.extname)\n : undefined\n }\n\n /**\n * Set the stem (basename w/o extname) (example: `'index.min'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} stem\n * Stem.\n * @returns {undefined}\n * Nothing.\n */\n set stem(stem) {\n assertNonEmpty(stem, 'stem')\n assertPart(stem, 'stem')\n this.path = minpath.join(this.dirname || '', stem + (this.extname || ''))\n }\n\n // Normal prototypal methods.\n /**\n * Create a fatal message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `true` (error; file not usable)\n * and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {never}\n * Never.\n * @throws {VFileMessage}\n * Message.\n */\n fail(causeOrReason, optionsOrParentOrPlace, origin) {\n // @ts-expect-error: the overloads are fine.\n const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n message.fatal = true\n\n throw message\n }\n\n /**\n * Create an info message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `undefined` (info; change\n * likely not needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n info(causeOrReason, optionsOrParentOrPlace, origin) {\n // @ts-expect-error: the overloads are fine.\n const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n message.fatal = undefined\n\n return message\n }\n\n /**\n * Create a message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `false` (warning; change may be\n * needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n message(causeOrReason, optionsOrParentOrPlace, origin) {\n const message = new VFileMessage(\n // @ts-expect-error: the overloads are fine.\n causeOrReason,\n optionsOrParentOrPlace,\n origin\n )\n\n if (this.path) {\n message.name = this.path + ':' + message.name\n message.file = this.path\n }\n\n message.fatal = false\n\n this.messages.push(message)\n\n return message\n }\n\n /**\n * Serialize the file.\n *\n * > **Note**: which encodings are supported depends on the engine.\n * > For info on Node.js, see:\n * > <https://nodejs.org/api/util.html#whatwg-supported-encodings>.\n *\n * @param {string | null | undefined} [encoding='utf8']\n * Character encoding to understand `value` as when it’s a `Uint8Array`\n * (default: `'utf-8'`).\n * @returns {string}\n * Serialized file.\n */\n toString(encoding) {\n if (this.value === undefined) {\n return ''\n }\n\n if (typeof this.value === 'string') {\n return this.value\n }\n\n const decoder = new TextDecoder(encoding || undefined)\n return decoder.decode(this.value)\n }\n}\n\n/**\n * Assert that `part` is not a path (as in, does not contain `path.sep`).\n *\n * @param {string | null | undefined} part\n * File path part.\n * @param {string} name\n * Part name.\n * @returns {undefined}\n * Nothing.\n */\nfunction assertPart(part, name) {\n if (part && part.includes(minpath.sep)) {\n throw new Error(\n '`' + name + '` cannot be a path: did not expect `' + minpath.sep + '`'\n )\n }\n}\n\n/**\n * Assert that `part` is not empty.\n *\n * @param {string | undefined} part\n * Thing.\n * @param {string} name\n * Part name.\n * @returns {asserts part is string}\n * Nothing.\n */\nfunction assertNonEmpty(part, name) {\n if (!part) {\n throw new Error('`' + name + '` cannot be empty')\n }\n}\n\n/**\n * Assert `path` exists.\n *\n * @param {string | undefined} path\n * Path.\n * @param {string} name\n * Dependency name.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path, name) {\n if (!path) {\n throw new Error('Setting `' + name + '` requires `path` to be set too')\n }\n}\n\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Uint8Array}\n * Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'byteLength' in value &&\n 'byteOffset' in value\n )\n}\n","export const CallableInstance =\n /**\n * @type {new <Parameters extends Array<unknown>, Result>(property: string | symbol) => (...parameters: Parameters) => Result}\n */\n (\n /** @type {unknown} */\n (\n /**\n * @this {Function}\n * @param {string | symbol} property\n * @returns {(...parameters: Array<unknown>) => unknown}\n */\n function (property) {\n const self = this\n const constr = self.constructor\n const proto = /** @type {Record<string | symbol, Function>} */ (\n // Prototypes do exist.\n // type-coverage:ignore-next-line\n constr.prototype\n )\n const value = proto[property]\n /** @type {(...parameters: Array<unknown>) => unknown} */\n const apply = function () {\n return value.apply(apply, arguments)\n }\n\n Object.setPrototypeOf(apply, proto)\n\n // Not needed for us in `unified`: we only call this on the `copy`\n // function,\n // and we don't need to add its fields (`length`, `name`)\n // over.\n // See also: GH-246.\n // const names = Object.getOwnPropertyNames(value)\n //\n // for (const p of names) {\n // const descriptor = Object.getOwnPropertyDescriptor(value, p)\n // if (descriptor) Object.defineProperty(apply, p, descriptor)\n // }\n\n return apply\n }\n )\n )\n","/**\n * @typedef {import('trough').Pipeline} Pipeline\n *\n * @typedef {import('unist').Node} Node\n *\n * @typedef {import('vfile').Compatible} Compatible\n * @typedef {import('vfile').Value} Value\n *\n * @typedef {import('../index.js').CompileResultMap} CompileResultMap\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Settings} Settings\n */\n\n/**\n * @typedef {CompileResultMap[keyof CompileResultMap]} CompileResults\n * Acceptable results from compilers.\n *\n * To register custom results, add them to\n * {@linkcode CompileResultMap}.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The node that the compiler receives (default: `Node`).\n * @template {CompileResults} [Result=CompileResults]\n * The thing that the compiler yields (default: `CompileResults`).\n * @callback Compiler\n * A **compiler** handles the compiling of a syntax tree to something else\n * (in most cases, text) (TypeScript type).\n *\n * It is used in the stringify phase and called with a {@linkcode Node}\n * and {@linkcode VFile} representation of the document to compile.\n * It should return the textual representation of the given tree (typically\n * `string`).\n *\n * > **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n * @param {Tree} tree\n * Tree to compile.\n * @param {VFile} file\n * File associated with `tree`.\n * @returns {Result}\n * New content: compiled text (`string` or `Uint8Array`, for `file.value`) or\n * something else (for `file.result`).\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The node that the parser yields (default: `Node`)\n * @callback Parser\n * A **parser** handles the parsing of text to a syntax tree.\n *\n * It is used in the parse phase and is called with a `string` and\n * {@linkcode VFile} of the document to parse.\n * It must return the syntax tree representation of the given file\n * ({@linkcode Node}).\n * @param {string} document\n * Document to parse.\n * @param {VFile} file\n * File associated with `document`.\n * @returns {Tree}\n * Node representing the given file.\n */\n\n/**\n * @typedef {(\n * Plugin<Array<any>, any, any> |\n * PluginTuple<Array<any>, any, any> |\n * Preset\n * )} Pluggable\n * Union of the different ways to add plugins and settings.\n */\n\n/**\n * @typedef {Array<Pluggable>} PluggableList\n * List of plugins and presets.\n */\n\n// Note: we can’t use `callback` yet as it messes up `this`:\n// <https://github.com/microsoft/TypeScript/issues/55197>.\n/**\n * @template {Array<unknown>} [PluginParameters=[]]\n * Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=Node]\n * Value that is expected as input (default: `Node`).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node it expects.\n * * If the plugin sets a {@linkcode Parser}, this should be\n * `string`.\n * * If the plugin sets a {@linkcode Compiler}, this should be the\n * node it expects.\n * @template [Output=Input]\n * Value that is yielded as output (default: `Input`).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node that that yields.\n * * If the plugin sets a {@linkcode Parser}, this should be the\n * node that it yields.\n * * If the plugin sets a {@linkcode Compiler}, this should be\n * result it yields.\n * @typedef {(\n * (this: Processor, ...parameters: PluginParameters) =>\n * Input extends string ? // Parser.\n * Output extends Node | undefined ? undefined | void : never :\n * Output extends CompileResults ? // Compiler.\n * Input extends Node | undefined ? undefined | void : never :\n * Transformer<\n * Input extends Node ? Input : Node,\n * Output extends Node ? Output : Node\n * > | undefined | void\n * )} Plugin\n * Single plugin.\n *\n * Plugins configure the processors they are applied on in the following\n * ways:\n *\n * * they change the processor, such as the parser, the compiler, or by\n * configuring data\n * * they specify how to handle trees and files\n *\n * In practice, they are functions that can receive options and configure the\n * processor (`this`).\n *\n * > **Note**: plugins are called when the processor is *frozen*, not when\n * > they are applied.\n */\n\n/**\n * Tuple of a plugin and its configuration.\n *\n * The first item is a plugin, the rest are its parameters.\n *\n * @template {Array<unknown>} [TupleParameters=[]]\n * Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=undefined]\n * Value that is expected as input (optional).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node it expects.\n * * If the plugin sets a {@linkcode Parser}, this should be\n * `string`.\n * * If the plugin sets a {@linkcode Compiler}, this should be the\n * node it expects.\n * @template [Output=undefined] (optional).\n * Value that is yielded as output.\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node that that yields.\n * * If the plugin sets a {@linkcode Parser}, this should be the\n * node that it yields.\n * * If the plugin sets a {@linkcode Compiler}, this should be\n * result it yields.\n * @typedef {(\n * [\n * plugin: Plugin<TupleParameters, Input, Output>,\n * ...parameters: TupleParameters\n * ]\n * )} PluginTuple\n */\n\n/**\n * @typedef Preset\n * Sharable configuration.\n *\n * They can contain plugins and settings.\n * @property {PluggableList | undefined} [plugins]\n * List of plugins and presets (optional).\n * @property {Settings | undefined} [settings]\n * Shared settings for parsers and compilers (optional).\n */\n\n/**\n * @template {VFile} [File=VFile]\n * The file that the callback receives (default: `VFile`).\n * @callback ProcessCallback\n * Callback called when the process is done.\n *\n * Called with either an error or a result.\n * @param {Error | undefined} [error]\n * Fatal error (optional).\n * @param {File | undefined} [file]\n * Processed file (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The tree that the callback receives (default: `Node`).\n * @callback RunCallback\n * Callback called when transformers are done.\n *\n * Called with either an error or results.\n * @param {Error | undefined} [error]\n * Fatal error (optional).\n * @param {Tree | undefined} [tree]\n * Transformed tree (optional).\n * @param {VFile | undefined} [file]\n * File (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Output=Node]\n * Node type that the transformer yields (default: `Node`).\n * @callback TransformCallback\n * Callback passed to transforms.\n *\n * If the signature of a `transformer` accepts a third argument, the\n * transformer may perform asynchronous operations, and must call it.\n * @param {Error | undefined} [error]\n * Fatal error to stop the process (optional).\n * @param {Output | undefined} [tree]\n * New, changed, tree (optional).\n * @param {VFile | undefined} [file]\n * New, changed, file (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Input=Node]\n * Node type that the transformer expects (default: `Node`).\n * @template {Node} [Output=Input]\n * Node type that the transformer yields (default: `Input`).\n * @callback Transformer\n * Transformers handle syntax trees and files.\n *\n * They are functions that are called each time a syntax tree and file are\n * passed through the run phase.\n * When an error occurs in them (either because it’s thrown, returned,\n * rejected, or passed to `next`), the process stops.\n *\n * The run phase is handled by [`trough`][trough], see its documentation for\n * the exact semantics of these functions.\n *\n * > **Note**: you should likely ignore `next`: don’t accept it.\n * > it supports callback-style async work.\n * > But promises are likely easier to reason about.\n *\n * [trough]: https://github.com/wooorm/trough#function-fninput-next\n * @param {Input} tree\n * Tree to handle.\n * @param {VFile} file\n * File to handle.\n * @param {TransformCallback<Output>} next\n * Callback.\n * @returns {(\n * Promise<Output | undefined | void> |\n * Promise<never> | // For some reason this is needed separately.\n * Output |\n * Error |\n * undefined |\n * void\n * )}\n * If you accept `next`, nothing.\n * Otherwise:\n *\n * * `Error` — fatal error to stop the process\n * * `Promise<undefined>` or `undefined` — the next transformer keeps using\n * same tree\n * * `Promise<Node>` or `Node` — new, changed, tree\n */\n\n/**\n * @template {Node | undefined} ParseTree\n * Output of `parse`.\n * @template {Node | undefined} HeadTree\n * Input for `run`.\n * @template {Node | undefined} TailTree\n * Output for `run`.\n * @template {Node | undefined} CompileTree\n * Input of `stringify`.\n * @template {CompileResults | undefined} CompileResult\n * Output of `stringify`.\n * @template {Node | string | undefined} Input\n * Input of plugin.\n * @template Output\n * Output of plugin (optional).\n * @typedef {(\n * Input extends string\n * ? Output extends Node | undefined\n * ? // Parser.\n * Processor<\n * Output extends undefined ? ParseTree : Output,\n * HeadTree,\n * TailTree,\n * CompileTree,\n * CompileResult\n * >\n * : // Unknown.\n * Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>\n * : Output extends CompileResults\n * ? Input extends Node | undefined\n * ? // Compiler.\n * Processor<\n * ParseTree,\n * HeadTree,\n * TailTree,\n * Input extends undefined ? CompileTree : Input,\n * Output extends undefined ? CompileResult : Output\n * >\n * : // Unknown.\n * Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>\n * : Input extends Node | undefined\n * ? Output extends Node | undefined\n * ? // Transform.\n * Processor<\n * ParseTree,\n * HeadTree extends undefined ? Input : HeadTree,\n * Output extends undefined ? TailTree : Output,\n * CompileTree,\n * CompileResult\n * >\n * : // Unknown.\n * Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>\n * : // Unknown.\n * Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>\n * )} UsePlugin\n * Create a processor based on the input/output of a {@link Plugin plugin}.\n */\n\n/**\n * @template {CompileResults | undefined} Result\n * Node type that the transformer yields.\n * @typedef {(\n * Result extends Value | undefined ?\n * VFile :\n * VFile & {result: Result}\n * )} VFileWithOutput\n * Type to generate a {@linkcode VFile} corresponding to a compiler result.\n *\n * If a result that is not acceptable on a `VFile` is used, that will\n * be stored on the `result` field of {@linkcode VFile}.\n */\n\nimport {bail} from 'bail'\nimport extend from 'extend'\nimport {ok as assert} from 'devlop'\nimport isPlainObj from 'is-plain-obj'\nimport {trough} from 'trough'\nimport {VFile} from 'vfile'\nimport {CallableInstance} from './callable-instance.js'\n\n// To do: next major: drop `Compiler`, `Parser`: prefer lowercase.\n\n// To do: we could start yielding `never` in TS when a parser is missing and\n// `parse` is called.\n// Currently, we allow directly setting `processor.parser`, which is untyped.\n\nconst own = {}.hasOwnProperty\n\n/**\n * @template {Node | undefined} [ParseTree=undefined]\n * Output of `parse` (optional).\n * @template {Node | undefined} [HeadTree=undefined]\n * Input for `run` (optional).\n * @template {Node | undefined} [TailTree=undefined]\n * Output for `run` (optional).\n * @template {Node | undefined} [CompileTree=undefined]\n * Input of `stringify` (optional).\n * @template {CompileResults | undefined} [CompileResult=undefined]\n * Output of `stringify` (optional).\n * @extends {CallableInstance<[], Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>>}\n */\nexport class Processor extends CallableInstance {\n /**\n * Create a processor.\n */\n constructor() {\n // If `Processor()` is called (w/o new), `copy` is called instead.\n super('copy')\n\n /**\n * Compiler to use (deprecated).\n *\n * @deprecated\n * Use `compiler` instead.\n * @type {(\n * Compiler<\n * CompileTree extends undefined ? Node : CompileTree,\n * CompileResult extends undefined ? CompileResults : CompileResult\n * > |\n * undefined\n * )}\n */\n this.Compiler = undefined\n\n /**\n * Parser to use (deprecated).\n *\n * @deprecated\n * Use `parser` instead.\n * @type {(\n * Parser<ParseTree extends undefined ? Node : ParseTree> |\n * undefined\n * )}\n */\n this.Parser = undefined\n\n // Note: the following fields are considered private.\n // However, they are needed for tests, and TSC generates an untyped\n // `private freezeIndex` field for, which trips `type-coverage` up.\n // Instead, we use `@deprecated` to visualize that they shouldn’t be used.\n /**\n * Internal list of configured plugins.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Array<PluginTuple<Array<unknown>>>}\n */\n this.attachers = []\n\n /**\n * Compiler to use.\n *\n * @type {(\n * Compiler<\n * CompileTree extends undefined ? Node : CompileTree,\n * CompileResult extends undefined ? CompileResults : CompileResult\n * > |\n * undefined\n * )}\n */\n this.compiler = undefined\n\n /**\n * Internal state to track where we are while freezing.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {number}\n */\n this.freezeIndex = -1\n\n /**\n * Internal state to track whether we’re frozen.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {boolean | undefined}\n */\n this.frozen = undefined\n\n /**\n * Internal state.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Data}\n */\n this.namespace = {}\n\n /**\n * Parser to use.\n *\n * @type {(\n * Parser<ParseTree extends undefined ? Node : ParseTree> |\n * undefined\n * )}\n */\n this.parser = undefined\n\n /**\n * Internal list of configured transformers.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Pipeline}\n */\n this.transformers = trough()\n }\n\n /**\n * Copy a processor.\n *\n * @deprecated\n * This is a private internal method and should not be used.\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n * New *unfrozen* processor ({@linkcode Processor}) that is\n * configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */\n copy() {\n // Cast as the type parameters will be the same after attaching.\n const destination =\n /** @type {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>} */ (\n new Processor()\n )\n let index = -1\n\n while (++index < this.attachers.length) {\n const attacher = this.attachers[index]\n destination.use(...attacher)\n }\n\n destination.data(extend(true, {}, this.namespace))\n\n return destination\n }\n\n /**\n * Configure the processor with info available to all plugins.\n * Information is stored in an object.\n *\n * Typically, options can be given to a specific plugin, but sometimes it\n * makes sense to have information shared with several plugins.\n * For example, a list of HTML elements that are self-closing, which is\n * needed during all phases.\n *\n * > **Note**: setting information cannot occur on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * > **Note**: to register custom data in TypeScript, augment the\n * > {@linkcode Data} interface.\n *\n * @example\n * This example show how to get and set info:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * const processor = unified().data('alpha', 'bravo')\n *\n * processor.data('alpha') // => 'bravo'\n *\n * processor.data() // => {alpha: 'bravo'}\n *\n * processor.data({charlie: 'delta'})\n *\n * processor.data() // => {charlie: 'delta'}\n * ```\n *\n * @template {keyof Data} Key\n *\n * @overload\n * @returns {Data}\n *\n * @overload\n * @param {Data} dataset\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n *\n * @overload\n * @param {Key} key\n * @returns {Data[Key]}\n *\n * @overload\n * @param {Key} key\n * @param {Data[Key]} value\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n *\n * @param {Data | Key} [key]\n * Key to get or set, or entire dataset to set, or nothing to get the\n * entire dataset (optional).\n * @param {Data[Key]} [value]\n * Value to set (optional).\n * @returns {unknown}\n * The current processor when setting, the value at `key` when getting, or\n * the entire dataset when getting without key.\n */\n data(key, value) {\n if (typeof key === 'string') {\n // Set `key`.\n if (arguments.length === 2) {\n assertUnfrozen('data', this.frozen)\n this.namespace[key] = value\n return this\n }\n\n // Get `key`.\n return (own.call(this.namespace, key) && this.namespace[key]) || undefined\n }\n\n // Set space.\n if (key) {\n assertUnfrozen('data', this.frozen)\n this.namespace = key\n return this\n }\n\n // Get space.\n return this.namespace\n }\n\n /**\n * Freeze a processor.\n *\n * Frozen processors are meant to be extended and not to be configured\n * directly.\n *\n * When a processor is frozen it cannot be unfrozen.\n * New processors working the same way can be created by calling the\n * processor.\n *\n * It’s possible to freeze processors explicitly by calling `.freeze()`.\n * Processors freeze automatically when `.parse()`, `.run()`, `.runSync()`,\n * `.stringify()`, `.process()`, or `.processSync()` are called.\n *\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n * The current processor.\n */\n freeze() {\n if (this.frozen) {\n return this\n }\n\n // Cast so that we can type plugins easier.\n // Plugins are supposed to be usable on different processors, not just on\n // this exact processor.\n const self = /** @type {Processor} */ (/** @type {unknown} */ (this))\n\n while (++this.freezeIndex < this.attachers.length) {\n const [attacher, ...options] = this.attachers[this.freezeIndex]\n\n if (options[0] === false) {\n continue\n }\n\n if (options[0] === true) {\n options[0] = undefined\n }\n\n const transformer = attacher.call(self, ...options)\n\n if (typeof transformer === 'function') {\n this.transformers.use(transformer)\n }\n }\n\n this.frozen = true\n this.freezeIndex = Number.POSITIVE_INFINITY\n\n return this\n }\n\n /**\n * Parse text to a syntax tree.\n *\n * > **Note**: `parse` freezes the processor if not already *frozen*.\n *\n * > **Note**: `parse` performs the parse phase, not the run phase or other\n * > phases.\n *\n * @param {Compatible | undefined} [file]\n * file to parse (optional); typically `string` or `VFile`; any value\n * accepted as `x` in `new VFile(x)`.\n * @returns {ParseTree extends undefined ? Node : ParseTree}\n * Syntax tree representing `file`.\n */\n parse(file) {\n this.freeze()\n const realFile = vfile(file)\n const parser = this.parser || this.Parser\n assertParser('parse', parser)\n return parser(String(realFile), realFile)\n }\n\n /**\n * Process the given file as configured on the processor.\n *\n * > **Note**: `process` freezes the processor if not already *frozen*.\n *\n * > **Note**: `process` performs the parse, run, and stringify phases.\n *\n * @overload\n * @param {Compatible | undefined} file\n * @param {ProcessCallback<VFileWithOutput<CompileResult>>} done\n * @returns {undefined}\n *\n * @overload\n * @param {Compatible | undefined} [file]\n * @returns {Promise<VFileWithOutput<CompileResult>>}\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`]; any value accepted as\n * `x` in `new VFile(x)`.\n * @param {ProcessCallback<VFileWithOutput<CompileResult>> | undefined} [done]\n * Callback (optional).\n * @returns {Promise<VFile> | undefined}\n * Nothing if `done` is given.\n * Otherwise a promise, rejected with a fatal error or resolved with the\n * processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n process(file, done) {\n const self = this\n\n this.freeze()\n assertParser('process', this.parser || this.Parser)\n assertCompiler('process', this.compiler || this.Compiler)\n\n return done ? executor(undefined, done) : new Promise(executor)\n\n // Note: `void`s needed for TS.\n /**\n * @param {((file: VFileWithOutput<CompileResult>) => undefined | void) | undefined} resolve\n * @param {(error: Error | undefined) => undefined | void} reject\n * @returns {undefined}\n */\n function executor(resolve, reject) {\n const realFile = vfile(file)\n // Assume `ParseTree` (the result of the parser) matches `HeadTree` (the\n // input of the first transform).\n const parseTree =\n /** @type {HeadTree extends undefined ? Node : HeadTree} */ (\n /** @type {unknown} */ (self.parse(realFile))\n )\n\n self.run(parseTree, realFile, function (error, tree, file) {\n if (error || !tree || !file) {\n return realDone(error)\n }\n\n // Assume `TailTree` (the output of the last transform) matches\n // `CompileTree` (the input of the compiler).\n const compileTree =\n /** @type {CompileTree extends undefined ? Node : CompileTree} */ (\n /** @type {unknown} */ (tree)\n )\n\n const compileResult = self.stringify(compileTree, file)\n\n if (looksLikeAValue(compileResult)) {\n file.value = compileResult\n } else {\n file.result = compileResult\n }\n\n realDone(error, /** @type {VFileWithOutput<CompileResult>} */ (file))\n })\n\n /**\n * @param {Error | undefined} error\n * @param {VFileWithOutput<CompileResult> | undefined} [file]\n * @returns {undefined}\n */\n function realDone(error, file) {\n if (error || !file) {\n reject(error)\n } else if (resolve) {\n resolve(file)\n } else {\n assert(done, '`done` is defined if `resolve` is not')\n done(undefined, file)\n }\n }\n }\n }\n\n /**\n * Process the given file as configured on the processor.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > **Note**: `processSync` freezes the processor if not already *frozen*.\n *\n * > **Note**: `processSync` performs the parse, run, and stringify phases.\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`; any value accepted as\n * `x` in `new VFile(x)`.\n * @returns {VFileWithOutput<CompileResult>}\n * The processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n processSync(file) {\n /** @type {boolean} */\n let complete = false\n /** @type {VFileWithOutput<CompileResult> | undefined} */\n let result\n\n this.freeze()\n assertParser('processSync', this.parser || this.Parser)\n assertCompiler('processSync', this.compiler || this.Compiler)\n\n this.process(file, realDone)\n assertDone('processSync', 'process', complete)\n assert(result, 'we either bailed on an error or have a tree')\n\n return result\n\n /**\n * @type {ProcessCallback<VFileWithOutput<CompileResult>>}\n */\n function realDone(error, file) {\n complete = true\n bail(error)\n result = file\n }\n }\n\n /**\n * Run *transformers* on a syntax tree.\n *\n * > **Note**: `run` freezes the processor if not already *frozen*.\n *\n * > **Note**: `run` performs the run phase, not other phases.\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {RunCallback<TailTree extends undefined ? Node : TailTree>} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} file\n * @param {RunCallback<TailTree extends undefined ? Node : TailTree>} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} [file]\n * @returns {Promise<TailTree extends undefined ? Node : TailTree>}\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {(\n * RunCallback<TailTree extends undefined ? Node : TailTree> |\n * Compatible\n * )} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @param {RunCallback<TailTree extends undefined ? Node : TailTree>} [done]\n * Callback (optional).\n * @returns {Promise<TailTree extends undefined ? Node : TailTree> | undefined}\n * Nothing if `done` is given.\n * Otherwise, a promise rejected with a fatal error or resolved with the\n * transformed tree.\n */\n run(tree, file, done) {\n assertNode(tree)\n this.freeze()\n\n const transformers = this.transformers\n\n if (!done && typeof file === 'function') {\n done = file\n file = undefined\n }\n\n return done ? executor(undefined, done) : new Promise(executor)\n\n // Note: `void`s needed for TS.\n /**\n * @param {(\n * ((tree: TailTree extends undefined ? Node : TailTree) => undefined | void) |\n * undefined\n * )} resolve\n * @param {(error: Error) => undefined | void} reject\n * @returns {undefined}\n */\n function executor(resolve, reject) {\n assert(\n typeof file !== 'function',\n '`file` can’t be a `done` anymore, we checked'\n )\n const realFile = vfile(file)\n transformers.run(tree, realFile, realDone)\n\n /**\n * @param {Error | undefined} error\n * @param {Node} outputTree\n * @param {VFile} file\n * @returns {undefined}\n */\n function realDone(error, outputTree, file) {\n const resultingTree =\n /** @type {TailTree extends undefined ? Node : TailTree} */ (\n outputTree || tree\n )\n\n if (error) {\n reject(error)\n } else if (resolve) {\n resolve(resultingTree)\n } else {\n assert(done, '`done` is defined if `resolve` is not')\n done(undefined, resultingTree, file)\n }\n }\n }\n }\n\n /**\n * Run *transformers* on a syntax tree.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > **Note**: `runSync` freezes the processor if not already *frozen*.\n *\n * > **Note**: `runSync` performs the run phase, not other phases.\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {TailTree extends undefined ? Node : TailTree}\n * Transformed tree.\n */\n runSync(tree, file) {\n /** @type {boolean} */\n let complete = false\n /** @type {(TailTree extends undefined ? Node : TailTree) | undefined} */\n let result\n\n this.run(tree, file, realDone)\n\n assertDone('runSync', 'run', complete)\n assert(result, 'we either bailed on an error or have a tree')\n return result\n\n /**\n * @type {RunCallback<TailTree extends undefined ? Node : TailTree>}\n */\n function realDone(error, tree) {\n bail(error)\n result = tree\n complete = true\n }\n }\n\n /**\n * Compile a syntax tree.\n *\n * > **Note**: `stringify` freezes the processor if not already *frozen*.\n *\n * > **Note**: `stringify` performs the stringify phase, not the run phase\n * > or other phases.\n *\n * @param {CompileTree extends undefined ? Node : CompileTree} tree\n * Tree to compile.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {CompileResult extends undefined ? Value : CompileResult}\n * Textual representation of the tree (see note).\n *\n * > **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n stringify(tree, file) {\n this.freeze()\n const realFile = vfile(file)\n const compiler = this.compiler || this.Compiler\n assertCompiler('stringify', compiler)\n assertNode(tree)\n\n return compiler(tree, realFile)\n }\n\n /**\n * Configure the processor to use a plugin, a list of usable values, or a\n * preset.\n *\n * If the processor is already using a plugin, the previous plugin\n * configuration is changed based on the options that are passed in.\n * In other words, the plugin is not added a second time.\n *\n * > **Note**: `use` cannot be called on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * @example\n * There are many ways to pass plugins to `.use()`.\n * This example gives an overview:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * unified()\n * // Plugin with options:\n * .use(pluginA, {x: true, y: true})\n * // Passing the same plugin again merges configuration (to `{x: true, y: false, z: true}`):\n * .use(pluginA, {y: false, z: true})\n * // Plugins:\n * .use([pluginB, pluginC])\n * // Two plugins, the second with options:\n * .use([pluginD, [pluginE, {}]])\n * // Preset with plugins and settings:\n * .use({plugins: [pluginF, [pluginG, {}]], settings: {position: false}})\n * // Settings only:\n * .use({settings: {position: false}})\n * ```\n *\n * @template {Array<unknown>} [Parameters=[]]\n * @template {Node | string | undefined} [Input=undefined]\n * @template [Output=Input]\n *\n * @overload\n * @param {Preset | null | undefined} [preset]\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n *\n * @overload\n * @param {PluggableList} list\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n *\n * @overload\n * @param {Plugin<Parameters, Input, Output>} plugin\n * @param {...(Parameters | [boolean])} parameters\n * @returns {UsePlugin<ParseTree, HeadTree, TailTree, CompileTree, CompileResult, Input, Output>}\n *\n * @param {PluggableList | Plugin | Preset | null | undefined} value\n * Usable value.\n * @param {...unknown} parameters\n * Parameters, when a plugin is given as a usable value.\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n * Current processor.\n */\n use(value, ...parameters) {\n const attachers = this.attachers\n const namespace = this.namespace\n\n assertUnfrozen('use', this.frozen)\n\n if (value === null || value === undefined) {\n // Empty.\n } else if (typeof value === 'function') {\n addPlugin(value, parameters)\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n addList(value)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n\n return this\n\n /**\n * @param {Pluggable} value\n * @returns {undefined}\n */\n function add(value) {\n if (typeof value === 'function') {\n addPlugin(value, [])\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n const [plugin, ...parameters] =\n /** @type {PluginTuple<Array<unknown>>} */ (value)\n addPlugin(plugin, parameters)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n }\n\n /**\n * @param {Preset} result\n * @returns {undefined}\n */\n function addPreset(result) {\n if (!('plugins' in result) && !('settings' in result)) {\n throw new Error(\n 'Expected usable value but received an empty preset, which is probably a mistake: presets typically come with `plugins` and sometimes with `settings`, but this has neither'\n )\n }\n\n addList(result.plugins)\n\n if (result.settings) {\n namespace.settings = extend(true, namespace.settings, result.settings)\n }\n }\n\n /**\n * @param {PluggableList | null | undefined} plugins\n * @returns {undefined}\n */\n function addList(plugins) {\n let index = -1\n\n if (plugins === null || plugins === undefined) {\n // Empty.\n } else if (Array.isArray(plugins)) {\n while (++index < plugins.length) {\n const thing = plugins[index]\n add(thing)\n }\n } else {\n throw new TypeError('Expected a list of plugins, not `' + plugins + '`')\n }\n }\n\n /**\n * @param {Plugin} plugin\n * @param {Array<unknown>} parameters\n * @returns {undefined}\n */\n function addPlugin(plugin, parameters) {\n let index = -1\n let entryIndex = -1\n\n while (++index < attachers.length) {\n if (attachers[index][0] === plugin) {\n entryIndex = index\n break\n }\n }\n\n if (entryIndex === -1) {\n attachers.push([plugin, ...parameters])\n }\n // Only set if there was at least a `primary` value, otherwise we’d change\n // `arguments.length`.\n else if (parameters.length > 0) {\n let [primary, ...rest] = parameters\n const currentPrimary = attachers[entryIndex][1]\n if (isPlainObj(currentPrimary) && isPlainObj(primary)) {\n primary = extend(true, currentPrimary, primary)\n }\n\n attachers[entryIndex] = [plugin, primary, ...rest]\n }\n }\n }\n}\n\n// Note: this returns a *callable* instance.\n// That’s why it’s documented as a function.\n/**\n * Create a new processor.\n *\n * @example\n * This example shows how a new processor can be created (from `remark`) and linked\n * to **stdin**(4) and **stdout**(4).\n *\n * ```js\n * import process from 'node:process'\n * import concatStream from 'concat-stream'\n * import {remark} from 'remark'\n *\n * process.stdin.pipe(\n * concatStream(function (buf) {\n * process.stdout.write(String(remark().processSync(buf)))\n * })\n * )\n * ```\n *\n * @returns\n * New *unfrozen* processor (`processor`).\n *\n * This processor is configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */\nexport const unified = new Processor().freeze()\n\n/**\n * Assert a parser is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Parser}\n */\nfunction assertParser(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `parser`')\n }\n}\n\n/**\n * Assert a compiler is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Compiler}\n */\nfunction assertCompiler(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `compiler`')\n }\n}\n\n/**\n * Assert the processor is not frozen.\n *\n * @param {string} name\n * @param {unknown} frozen\n * @returns {asserts frozen is false}\n */\nfunction assertUnfrozen(name, frozen) {\n if (frozen) {\n throw new Error(\n 'Cannot call `' +\n name +\n '` on a frozen processor.\\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.'\n )\n }\n}\n\n/**\n * Assert `node` is a unist node.\n *\n * @param {unknown} node\n * @returns {asserts node is Node}\n */\nfunction assertNode(node) {\n // `isPlainObj` unfortunately uses `any` instead of `unknown`.\n // type-coverage:ignore-next-line\n if (!isPlainObj(node) || typeof node.type !== 'string') {\n throw new TypeError('Expected node, got `' + node + '`')\n // Fine.\n }\n}\n\n/**\n * Assert that `complete` is `true`.\n *\n * @param {string} name\n * @param {string} asyncName\n * @param {unknown} complete\n * @returns {asserts complete is true}\n */\nfunction assertDone(name, asyncName, complete) {\n if (!complete) {\n throw new Error(\n '`' + name + '` finished async. Use `' + asyncName + '` instead'\n )\n }\n}\n\n/**\n * @param {Compatible | undefined} [value]\n * @returns {VFile}\n */\nfunction vfile(value) {\n return looksLikeAVFile(value) ? value : new VFile(value)\n}\n\n/**\n * @param {Compatible | undefined} [value]\n * @returns {value is VFile}\n */\nfunction looksLikeAVFile(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'message' in value &&\n 'messages' in value\n )\n}\n\n/**\n * @param {unknown} [value]\n * @returns {value is Value}\n */\nfunction looksLikeAValue(value) {\n return typeof value === 'string' || isUint8Array(value)\n}\n\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Uint8Array}\n * Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'byteLength' in value &&\n 'byteOffset' in value\n )\n}\n","import '../assets/NcRichText-RvICaxkO.css';\nimport rehypeExternalLinks from \"rehype-external-links\";\nimport rehype2react from \"rehype-react\";\nimport breaks from \"remark-breaks\";\nimport remarkParse from \"remark-parse\";\nimport remark2rehype from \"remark-rehype\";\nimport remarkUnlinkProtocols from \"remark-unlink-protocols\";\nimport { unified } from \"unified\";\nimport { resolveComponent, createElementBlock, createCommentVNode, openBlock, normalizeClass, Fragment, renderList, createBlock, defineComponent, unref, withCtx, createVNode, ref, h } from \"vue\";\nimport { RouterLink } from \"vue-router\";\nimport { N as NcCheckboxRadioSwitch } from \"./NcCheckboxRadioSwitch-BCSKF7Tk.mjs\";\nimport { getCurrentUser } from \"@nextcloud/auth\";\nimport axios from \"@nextcloud/axios\";\nimport { generateOcsUrl } from \"@nextcloud/router\";\nimport { getSharingToken } from \"@nextcloud/sharing/public\";\nimport { f as NcReferenceWidget } from \"./referencePickerModal-DmD3-xYB.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { U as URL_PATTERN, g as getRoute, p as parseUrl, r as remarkAutolink } from \"./autolink-U5pBzLgI.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { N as NcButton } from \"./NcButton-Dc8V4Urj.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-BvLanNaW.mjs\";\nimport { u as useCopy } from \"./useCopy-7FVrniF_.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { u } from \"unist-builder\";\nimport { visit, EXIT as EXIT$1, SKIP as SKIP$1 } from \"unist-util-visit\";\nconst _sfc_main$2 = {\n name: \"NcReferenceList\",\n components: {\n NcReferenceWidget\n },\n /* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n props: {\n text: {\n type: String,\n default: \"\"\n },\n referenceData: {\n type: Array,\n default: null\n },\n limit: {\n type: Number,\n default: 1\n },\n displayFallback: {\n type: Boolean,\n default: false\n },\n interactive: {\n type: Boolean,\n default: true\n },\n interactiveOptIn: {\n type: Boolean,\n default: false\n }\n },\n emits: [\"loaded\"],\n data() {\n return {\n references: null,\n loading: true\n };\n },\n computed: {\n isVisible() {\n return this.loading || this.displayedReferences.length !== 0;\n },\n values() {\n if (this.referenceData) {\n return this.referenceData;\n }\n if (this.displayFallback && !this.loading && !this.references) {\n return [this.fallbackReference];\n }\n return this.references ? Object.values(this.references) : [];\n },\n firstReference() {\n return this.values[0] ?? null;\n },\n displayedReferences() {\n return this.values.filter(Boolean).slice(0, this.limit);\n },\n fallbackReference() {\n return {\n accessible: true,\n openGraphObject: {\n id: this.text,\n link: this.text,\n name: this.text\n },\n richObjectType: \"open-graph\"\n };\n }\n },\n watch: {\n text: \"fetch\"\n },\n mounted() {\n this.fetch();\n },\n methods: {\n fetch() {\n this.loading = true;\n if (this.referenceData) {\n this.references = null;\n this.loading = false;\n return;\n }\n if (!new RegExp(URL_PATTERN).exec(this.text)) {\n this.references = null;\n this.loading = false;\n return;\n }\n this.resolve().then((response) => {\n this.references = response.data.ocs.data.references;\n this.loading = false;\n this.$emit(\"loaded\");\n }).catch((error) => {\n logger.error(\"[NcReferenceList] Failed to extract references\", { error });\n this.loading = false;\n this.$emit(\"loaded\");\n });\n },\n resolve() {\n const match = new RegExp(URL_PATTERN).exec(this.text.trim());\n const isPublic = getCurrentUser() === null;\n if (this.limit === 1 && match) {\n return isPublic ? axios.get(generateOcsUrl(\"references/resolvePublic\") + `?reference=${encodeURIComponent(match[0])}&sharingToken=${getSharingToken()}`) : axios.get(generateOcsUrl(\"references/resolve\") + `?reference=${encodeURIComponent(match[0])}`);\n }\n return isPublic ? axios.post(generateOcsUrl(\"references/extractPublic\"), {\n text: this.text,\n resolve: true,\n limit: this.limit,\n sharingToken: getSharingToken()\n }) : axios.post(generateOcsUrl(\"references/extract\"), {\n text: this.text,\n resolve: true,\n limit: this.limit\n });\n }\n }\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcReferenceWidget = resolveComponent(\"NcReferenceWidget\");\n return $options.isVisible ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"widgets--list\", { \"icon-loading\": $data.loading }])\n }, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.displayedReferences, (reference) => {\n return openBlock(), createBlock(_component_NcReferenceWidget, {\n key: reference.openGraphObject?.id,\n reference,\n interactive: $props.interactive,\n \"interactive-opt-in\": $props.interactiveOptIn\n }, null, 8, [\"reference\", \"interactive\", \"interactive-opt-in\"]);\n }), 128))\n ], 2)) : createCommentVNode(\"\", true);\n}\nconst NcReferenceList = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-cd116174\"]]);\nfunction ccount(value, character) {\n const source = String(value);\n if (typeof character !== \"string\") {\n throw new TypeError(\"Expected character\");\n }\n let count = 0;\n let index = source.indexOf(character);\n while (index !== -1) {\n count++;\n index = source.indexOf(character, index + character.length);\n }\n return count;\n}\nfunction ok$1() {\n}\nconst asciiAlpha = regexCheck(/[A-Za-z]/);\nconst asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/);\nfunction asciiControl(code2) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code2 !== null && (code2 < 32 || code2 === 127)\n );\n}\nfunction markdownLineEnding(code2) {\n return code2 !== null && code2 < -2;\n}\nfunction markdownLineEndingOrSpace(code2) {\n return code2 !== null && (code2 < 0 || code2 === 32);\n}\nfunction markdownSpace(code2) {\n return code2 === -2 || code2 === -1 || code2 === 32;\n}\nconst unicodePunctuation = regexCheck(new RegExp(\"\\\\p{P}|\\\\p{S}\", \"u\"));\nconst unicodeWhitespace = regexCheck(/\\s/);\nfunction regexCheck(regex) {\n return check;\n function check(code2) {\n return code2 !== null && code2 > -1 && regex.test(String.fromCharCode(code2));\n }\n}\nfunction escapeStringRegexp(string) {\n if (typeof string !== \"string\") {\n throw new TypeError(\"Expected a string\");\n }\n return string.replace(/[|\\\\{}()[\\]^$+*?.]/g, \"\\\\$&\").replace(/-/g, \"\\\\x2d\");\n}\nconst convert = (\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * (<Condition extends string>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * (<Condition extends Props>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * (<Condition extends TestFunction>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate<Condition, Node>) &\n * ((test?: null | undefined) => (node?: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((test?: Test) => Check)\n * )}\n */\n /**\n * @param {Test} [test]\n * @returns {Check}\n */\n (function(test) {\n if (test === null || test === void 0) {\n return ok;\n }\n if (typeof test === \"function\") {\n return castFactory(test);\n }\n if (typeof test === \"object\") {\n return Array.isArray(test) ? anyFactory(test) : propsFactory(test);\n }\n if (typeof test === \"string\") {\n return typeFactory(test);\n }\n throw new Error(\"Expected function, string, or object as test\");\n })\n);\nfunction anyFactory(tests) {\n const checks = [];\n let index = -1;\n while (++index < tests.length) {\n checks[index] = convert(tests[index]);\n }\n return castFactory(any);\n function any(...parameters) {\n let index2 = -1;\n while (++index2 < checks.length) {\n if (checks[index2].apply(this, parameters)) return true;\n }\n return false;\n }\n}\nfunction propsFactory(check) {\n const checkAsRecord = (\n /** @type {Record<string, unknown>} */\n check\n );\n return castFactory(all2);\n function all2(node2) {\n const nodeAsRecord = (\n /** @type {Record<string, unknown>} */\n /** @type {unknown} */\n node2\n );\n let key;\n for (key in check) {\n if (nodeAsRecord[key] !== checkAsRecord[key]) return false;\n }\n return true;\n }\n}\nfunction typeFactory(check) {\n return castFactory(type);\n function type(node2) {\n return node2 && node2.type === check;\n }\n}\nfunction castFactory(testFunction) {\n return check;\n function check(value, index, parent) {\n return Boolean(\n looksLikeANode(value) && testFunction.call(\n this,\n value,\n typeof index === \"number\" ? index : void 0,\n parent || void 0\n )\n );\n }\n}\nfunction ok() {\n return true;\n}\nfunction looksLikeANode(value) {\n return value !== null && typeof value === \"object\" && \"type\" in value;\n}\nfunction color(d) {\n return d;\n}\nconst empty = [];\nconst CONTINUE = true;\nconst EXIT = false;\nconst SKIP = \"skip\";\nfunction visitParents(tree, test, visitor, reverse) {\n let check;\n {\n check = test;\n }\n const is = convert(check);\n const step = 1;\n factory(tree, void 0, [])();\n function factory(node2, index, parents) {\n const value = (\n /** @type {Record<string, unknown>} */\n node2 && typeof node2 === \"object\" ? node2 : {}\n );\n if (typeof value.type === \"string\") {\n const name = (\n // `hast`\n typeof value.tagName === \"string\" ? value.tagName : (\n // `xast`\n typeof value.name === \"string\" ? value.name : void 0\n )\n );\n Object.defineProperty(visit2, \"name\", {\n value: \"node (\" + color(node2.type + (name ? \"<\" + name + \">\" : \"\")) + \")\"\n });\n }\n return visit2;\n function visit2() {\n let result = empty;\n let subresult;\n let offset;\n let grandparents;\n if (is(node2, index, parents[parents.length - 1] || void 0)) {\n result = toResult(visitor(node2, parents));\n if (result[0] === EXIT) {\n return result;\n }\n }\n if (\"children\" in node2 && node2.children) {\n const nodeAsParent = (\n /** @type {UnistParent} */\n node2\n );\n if (nodeAsParent.children && result[0] !== SKIP) {\n offset = -1 + step;\n grandparents = parents.concat(nodeAsParent);\n while (offset > -1 && offset < nodeAsParent.children.length) {\n const child = nodeAsParent.children[offset];\n subresult = factory(child, offset, grandparents)();\n if (subresult[0] === EXIT) {\n return subresult;\n }\n offset = typeof subresult[1] === \"number\" ? subresult[1] : offset + step;\n }\n }\n }\n return result;\n }\n }\n}\nfunction toResult(value) {\n if (Array.isArray(value)) {\n return value;\n }\n if (typeof value === \"number\") {\n return [CONTINUE, value];\n }\n return value === null || value === void 0 ? empty : [value];\n}\nfunction findAndReplace(tree, list2, options) {\n const settings = options || {};\n const ignored = convert(settings.ignore || []);\n const pairs = toPairs(list2);\n let pairIndex = -1;\n while (++pairIndex < pairs.length) {\n visitParents(tree, \"text\", visitor);\n }\n function visitor(node2, parents) {\n let index = -1;\n let grandparent;\n while (++index < parents.length) {\n const parent = parents[index];\n const siblings = grandparent ? grandparent.children : void 0;\n if (ignored(\n parent,\n siblings ? siblings.indexOf(parent) : void 0,\n grandparent\n )) {\n return;\n }\n grandparent = parent;\n }\n if (grandparent) {\n return handler(node2, parents);\n }\n }\n function handler(node2, parents) {\n const parent = parents[parents.length - 1];\n const find = pairs[pairIndex][0];\n const replace2 = pairs[pairIndex][1];\n let start = 0;\n const siblings = parent.children;\n const index = siblings.indexOf(node2);\n let change = false;\n let nodes = [];\n find.lastIndex = 0;\n let match = find.exec(node2.value);\n while (match) {\n const position = match.index;\n const matchObject = {\n index: match.index,\n input: match.input,\n stack: [...parents, node2]\n };\n let value = replace2(...match, matchObject);\n if (typeof value === \"string\") {\n value = value.length > 0 ? { type: \"text\", value } : void 0;\n }\n if (value === false) {\n find.lastIndex = position + 1;\n } else {\n if (start !== position) {\n nodes.push({\n type: \"text\",\n value: node2.value.slice(start, position)\n });\n }\n if (Array.isArray(value)) {\n nodes.push(...value);\n } else if (value) {\n nodes.push(value);\n }\n start = position + match[0].length;\n change = true;\n }\n if (!find.global) {\n break;\n }\n match = find.exec(node2.value);\n }\n if (change) {\n if (start < node2.value.length) {\n nodes.push({ type: \"text\", value: node2.value.slice(start) });\n }\n parent.children.splice(index, 1, ...nodes);\n } else {\n nodes = [node2];\n }\n return index + nodes.length;\n }\n}\nfunction toPairs(tupleOrList) {\n const result = [];\n if (!Array.isArray(tupleOrList)) {\n throw new TypeError(\"Expected find and replace tuple or list of tuples\");\n }\n const list2 = !tupleOrList[0] || Array.isArray(tupleOrList[0]) ? tupleOrList : [tupleOrList];\n let index = -1;\n while (++index < list2.length) {\n const tuple = list2[index];\n result.push([toExpression(tuple[0]), toFunction(tuple[1])]);\n }\n return result;\n}\nfunction toExpression(find) {\n return typeof find === \"string\" ? new RegExp(escapeStringRegexp(find), \"g\") : find;\n}\nfunction toFunction(replace2) {\n return typeof replace2 === \"function\" ? replace2 : function() {\n return replace2;\n };\n}\nconst inConstruct = \"phrasing\";\nconst notInConstruct = [\"autolink\", \"link\", \"image\", \"label\"];\nfunction gfmAutolinkLiteralFromMarkdown() {\n return {\n transforms: [transformGfmAutolinkLiterals],\n enter: {\n literalAutolink: enterLiteralAutolink,\n literalAutolinkEmail: enterLiteralAutolinkValue,\n literalAutolinkHttp: enterLiteralAutolinkValue,\n literalAutolinkWww: enterLiteralAutolinkValue\n },\n exit: {\n literalAutolink: exitLiteralAutolink,\n literalAutolinkEmail: exitLiteralAutolinkEmail,\n literalAutolinkHttp: exitLiteralAutolinkHttp,\n literalAutolinkWww: exitLiteralAutolinkWww\n }\n };\n}\nfunction gfmAutolinkLiteralToMarkdown() {\n return {\n unsafe: [\n {\n character: \"@\",\n before: \"[+\\\\-.\\\\w]\",\n after: \"[\\\\-.\\\\w]\",\n inConstruct,\n notInConstruct\n },\n {\n character: \".\",\n before: \"[Ww]\",\n after: \"[\\\\-.\\\\w]\",\n inConstruct,\n notInConstruct\n },\n {\n character: \":\",\n before: \"[ps]\",\n after: \"\\\\/\",\n inConstruct,\n notInConstruct\n }\n ]\n };\n}\nfunction enterLiteralAutolink(token) {\n this.enter({ type: \"link\", title: null, url: \"\", children: [] }, token);\n}\nfunction enterLiteralAutolinkValue(token) {\n this.config.enter.autolinkProtocol.call(this, token);\n}\nfunction exitLiteralAutolinkHttp(token) {\n this.config.exit.autolinkProtocol.call(this, token);\n}\nfunction exitLiteralAutolinkWww(token) {\n this.config.exit.data.call(this, token);\n const node2 = this.stack[this.stack.length - 1];\n ok$1(node2.type === \"link\");\n node2.url = \"http://\" + this.sliceSerialize(token);\n}\nfunction exitLiteralAutolinkEmail(token) {\n this.config.exit.autolinkEmail.call(this, token);\n}\nfunction exitLiteralAutolink(token) {\n this.exit(token);\n}\nfunction transformGfmAutolinkLiterals(tree) {\n findAndReplace(\n tree,\n [\n [/(https?:\\/\\/|www(?=\\.))([-.\\w]+)([^ \\t\\r\\n]*)/gi, findUrl],\n [/([-.\\w+]+)@([-\\w]+(?:\\.[-\\w]+)+)/g, findEmail]\n ],\n { ignore: [\"link\", \"linkReference\"] }\n );\n}\nfunction findUrl(_, protocol, domain2, path2, match) {\n let prefix = \"\";\n if (!previous(match)) {\n return false;\n }\n if (/^w/i.test(protocol)) {\n domain2 = protocol + domain2;\n protocol = \"\";\n prefix = \"http://\";\n }\n if (!isCorrectDomain(domain2)) {\n return false;\n }\n const parts = splitUrl(domain2 + path2);\n if (!parts[0]) return false;\n const result = {\n type: \"link\",\n title: null,\n url: prefix + protocol + parts[0],\n children: [{ type: \"text\", value: protocol + parts[0] }]\n };\n if (parts[1]) {\n return [result, { type: \"text\", value: parts[1] }];\n }\n return result;\n}\nfunction findEmail(_, atext, label, match) {\n if (\n // Not an expected previous character.\n !previous(match, true) || // Label ends in not allowed character.\n /[-\\d_]$/.test(label)\n ) {\n return false;\n }\n return {\n type: \"link\",\n title: null,\n url: \"mailto:\" + atext + \"@\" + label,\n children: [{ type: \"text\", value: atext + \"@\" + label }]\n };\n}\nfunction isCorrectDomain(domain2) {\n const parts = domain2.split(\".\");\n if (parts.length < 2 || parts[parts.length - 1] && (/_/.test(parts[parts.length - 1]) || !/[a-zA-Z\\d]/.test(parts[parts.length - 1])) || parts[parts.length - 2] && (/_/.test(parts[parts.length - 2]) || !/[a-zA-Z\\d]/.test(parts[parts.length - 2]))) {\n return false;\n }\n return true;\n}\nfunction splitUrl(url) {\n const trailExec = /[!\"&'),.:;<>?\\]}]+$/.exec(url);\n if (!trailExec) {\n return [url, void 0];\n }\n url = url.slice(0, trailExec.index);\n let trail2 = trailExec[0];\n let closingParenIndex = trail2.indexOf(\")\");\n const openingParens = ccount(url, \"(\");\n let closingParens = ccount(url, \")\");\n while (closingParenIndex !== -1 && openingParens > closingParens) {\n url += trail2.slice(0, closingParenIndex + 1);\n trail2 = trail2.slice(closingParenIndex + 1);\n closingParenIndex = trail2.indexOf(\")\");\n closingParens++;\n }\n return [url, trail2];\n}\nfunction previous(match, email) {\n const code2 = match.input.charCodeAt(match.index - 1);\n return (match.index === 0 || unicodeWhitespace(code2) || unicodePunctuation(code2)) && (!email || code2 !== 47);\n}\nfunction normalizeIdentifier(value) {\n return value.replace(/[\\t\\n\\r ]+/g, \" \").replace(/^ | $/g, \"\").toLowerCase().toUpperCase();\n}\nfootnoteReference.peek = footnoteReferencePeek;\nfunction enterFootnoteCallString() {\n this.buffer();\n}\nfunction enterFootnoteCall(token) {\n this.enter({ type: \"footnoteReference\", identifier: \"\", label: \"\" }, token);\n}\nfunction enterFootnoteDefinitionLabelString() {\n this.buffer();\n}\nfunction enterFootnoteDefinition(token) {\n this.enter(\n { type: \"footnoteDefinition\", identifier: \"\", label: \"\", children: [] },\n token\n );\n}\nfunction exitFootnoteCallString(token) {\n const label = this.resume();\n const node2 = this.stack[this.stack.length - 1];\n ok$1(node2.type === \"footnoteReference\");\n node2.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase();\n node2.label = label;\n}\nfunction exitFootnoteCall(token) {\n this.exit(token);\n}\nfunction exitFootnoteDefinitionLabelString(token) {\n const label = this.resume();\n const node2 = this.stack[this.stack.length - 1];\n ok$1(node2.type === \"footnoteDefinition\");\n node2.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase();\n node2.label = label;\n}\nfunction exitFootnoteDefinition(token) {\n this.exit(token);\n}\nfunction footnoteReferencePeek() {\n return \"[\";\n}\nfunction footnoteReference(node2, _, state, info) {\n const tracker = state.createTracker(info);\n let value = tracker.move(\"[^\");\n const exit2 = state.enter(\"footnoteReference\");\n const subexit = state.enter(\"reference\");\n value += tracker.move(\n state.safe(state.associationId(node2), { after: \"]\", before: value })\n );\n subexit();\n exit2();\n value += tracker.move(\"]\");\n return value;\n}\nfunction gfmFootnoteFromMarkdown() {\n return {\n enter: {\n gfmFootnoteCallString: enterFootnoteCallString,\n gfmFootnoteCall: enterFootnoteCall,\n gfmFootnoteDefinitionLabelString: enterFootnoteDefinitionLabelString,\n gfmFootnoteDefinition: enterFootnoteDefinition\n },\n exit: {\n gfmFootnoteCallString: exitFootnoteCallString,\n gfmFootnoteCall: exitFootnoteCall,\n gfmFootnoteDefinitionLabelString: exitFootnoteDefinitionLabelString,\n gfmFootnoteDefinition: exitFootnoteDefinition\n }\n };\n}\nfunction gfmFootnoteToMarkdown(options) {\n let firstLineBlank = false;\n if (options && options.firstLineBlank) {\n firstLineBlank = true;\n }\n return {\n handlers: { footnoteDefinition, footnoteReference },\n // This is on by default already.\n unsafe: [{ character: \"[\", inConstruct: [\"label\", \"phrasing\", \"reference\"] }]\n };\n function footnoteDefinition(node2, _, state, info) {\n const tracker = state.createTracker(info);\n let value = tracker.move(\"[^\");\n const exit2 = state.enter(\"footnoteDefinition\");\n const subexit = state.enter(\"label\");\n value += tracker.move(\n state.safe(state.associationId(node2), { before: value, after: \"]\" })\n );\n subexit();\n value += tracker.move(\"]:\");\n if (node2.children && node2.children.length > 0) {\n tracker.shift(4);\n value += tracker.move(\n (firstLineBlank ? \"\\n\" : \" \") + state.indentLines(\n state.containerFlow(node2, tracker.current()),\n firstLineBlank ? mapAll : mapExceptFirst\n )\n );\n }\n exit2();\n return value;\n }\n}\nfunction mapExceptFirst(line, index, blank) {\n return index === 0 ? line : mapAll(line, index, blank);\n}\nfunction mapAll(line, index, blank) {\n return (blank ? \"\" : \" \") + line;\n}\nconst constructsWithoutStrikethrough = [\n \"autolink\",\n \"destinationLiteral\",\n \"destinationRaw\",\n \"reference\",\n \"titleQuote\",\n \"titleApostrophe\"\n];\nhandleDelete.peek = peekDelete;\nfunction gfmStrikethroughFromMarkdown() {\n return {\n canContainEols: [\"delete\"],\n enter: { strikethrough: enterStrikethrough },\n exit: { strikethrough: exitStrikethrough }\n };\n}\nfunction gfmStrikethroughToMarkdown() {\n return {\n unsafe: [\n {\n character: \"~\",\n inConstruct: \"phrasing\",\n notInConstruct: constructsWithoutStrikethrough\n }\n ],\n handlers: { delete: handleDelete }\n };\n}\nfunction enterStrikethrough(token) {\n this.enter({ type: \"delete\", children: [] }, token);\n}\nfunction exitStrikethrough(token) {\n this.exit(token);\n}\nfunction handleDelete(node2, _, state, info) {\n const tracker = state.createTracker(info);\n const exit2 = state.enter(\"strikethrough\");\n let value = tracker.move(\"~~\");\n value += state.containerPhrasing(node2, {\n ...tracker.current(),\n before: value,\n after: \"~\"\n });\n value += tracker.move(\"~~\");\n exit2();\n return value;\n}\nfunction peekDelete() {\n return \"~\";\n}\nfunction defaultStringLength(value) {\n return value.length;\n}\nfunction markdownTable(table, options) {\n const settings = options || {};\n const align = (settings.align || []).concat();\n const stringLength = settings.stringLength || defaultStringLength;\n const alignments = [];\n const cellMatrix = [];\n const sizeMatrix = [];\n const longestCellByColumn = [];\n let mostCellsPerRow = 0;\n let rowIndex = -1;\n while (++rowIndex < table.length) {\n const row2 = [];\n const sizes2 = [];\n let columnIndex2 = -1;\n if (table[rowIndex].length > mostCellsPerRow) {\n mostCellsPerRow = table[rowIndex].length;\n }\n while (++columnIndex2 < table[rowIndex].length) {\n const cell = serialize(table[rowIndex][columnIndex2]);\n if (settings.alignDelimiters !== false) {\n const size = stringLength(cell);\n sizes2[columnIndex2] = size;\n if (longestCellByColumn[columnIndex2] === void 0 || size > longestCellByColumn[columnIndex2]) {\n longestCellByColumn[columnIndex2] = size;\n }\n }\n row2.push(cell);\n }\n cellMatrix[rowIndex] = row2;\n sizeMatrix[rowIndex] = sizes2;\n }\n let columnIndex = -1;\n if (typeof align === \"object\" && \"length\" in align) {\n while (++columnIndex < mostCellsPerRow) {\n alignments[columnIndex] = toAlignment(align[columnIndex]);\n }\n } else {\n const code2 = toAlignment(align);\n while (++columnIndex < mostCellsPerRow) {\n alignments[columnIndex] = code2;\n }\n }\n columnIndex = -1;\n const row = [];\n const sizes = [];\n while (++columnIndex < mostCellsPerRow) {\n const code2 = alignments[columnIndex];\n let before = \"\";\n let after = \"\";\n if (code2 === 99) {\n before = \":\";\n after = \":\";\n } else if (code2 === 108) {\n before = \":\";\n } else if (code2 === 114) {\n after = \":\";\n }\n let size = settings.alignDelimiters === false ? 1 : Math.max(\n 1,\n longestCellByColumn[columnIndex] - before.length - after.length\n );\n const cell = before + \"-\".repeat(size) + after;\n if (settings.alignDelimiters !== false) {\n size = before.length + size + after.length;\n if (size > longestCellByColumn[columnIndex]) {\n longestCellByColumn[columnIndex] = size;\n }\n sizes[columnIndex] = size;\n }\n row[columnIndex] = cell;\n }\n cellMatrix.splice(1, 0, row);\n sizeMatrix.splice(1, 0, sizes);\n rowIndex = -1;\n const lines = [];\n while (++rowIndex < cellMatrix.length) {\n const row2 = cellMatrix[rowIndex];\n const sizes2 = sizeMatrix[rowIndex];\n columnIndex = -1;\n const line = [];\n while (++columnIndex < mostCellsPerRow) {\n const cell = row2[columnIndex] || \"\";\n let before = \"\";\n let after = \"\";\n if (settings.alignDelimiters !== false) {\n const size = longestCellByColumn[columnIndex] - (sizes2[columnIndex] || 0);\n const code2 = alignments[columnIndex];\n if (code2 === 114) {\n before = \" \".repeat(size);\n } else if (code2 === 99) {\n if (size % 2) {\n before = \" \".repeat(size / 2 + 0.5);\n after = \" \".repeat(size / 2 - 0.5);\n } else {\n before = \" \".repeat(size / 2);\n after = before;\n }\n } else {\n after = \" \".repeat(size);\n }\n }\n if (settings.delimiterStart !== false && !columnIndex) {\n line.push(\"|\");\n }\n if (settings.padding !== false && // Don’t add the opening space if we’re not aligning and the cell is\n // empty: there will be a closing space.\n !(settings.alignDelimiters === false && cell === \"\") && (settings.delimiterStart !== false || columnIndex)) {\n line.push(\" \");\n }\n if (settings.alignDelimiters !== false) {\n line.push(before);\n }\n line.push(cell);\n if (settings.alignDelimiters !== false) {\n line.push(after);\n }\n if (settings.padding !== false) {\n line.push(\" \");\n }\n if (settings.delimiterEnd !== false || columnIndex !== mostCellsPerRow - 1) {\n line.push(\"|\");\n }\n }\n lines.push(\n settings.delimiterEnd === false ? line.join(\"\").replace(/ +$/, \"\") : line.join(\"\")\n );\n }\n return lines.join(\"\\n\");\n}\nfunction serialize(value) {\n return value === null || value === void 0 ? \"\" : String(value);\n}\nfunction toAlignment(value) {\n const code2 = typeof value === \"string\" ? value.codePointAt(0) : 0;\n return code2 === 67 || code2 === 99 ? 99 : code2 === 76 || code2 === 108 ? 108 : code2 === 82 || code2 === 114 ? 114 : 0;\n}\nfunction blockquote(node2, _, state, info) {\n const exit2 = state.enter(\"blockquote\");\n const tracker = state.createTracker(info);\n tracker.move(\"> \");\n tracker.shift(2);\n const value = state.indentLines(\n state.containerFlow(node2, tracker.current()),\n map$1\n );\n exit2();\n return value;\n}\nfunction map$1(line, _, blank) {\n return \">\" + (blank ? \"\" : \" \") + line;\n}\nfunction patternInScope(stack, pattern) {\n return listInScope(stack, pattern.inConstruct, true) && !listInScope(stack, pattern.notInConstruct, false);\n}\nfunction listInScope(stack, list2, none) {\n if (typeof list2 === \"string\") {\n list2 = [list2];\n }\n if (!list2 || list2.length === 0) {\n return none;\n }\n let index = -1;\n while (++index < list2.length) {\n if (stack.includes(list2[index])) {\n return true;\n }\n }\n return false;\n}\nfunction hardBreak(_, _1, state, info) {\n let index = -1;\n while (++index < state.unsafe.length) {\n if (state.unsafe[index].character === \"\\n\" && patternInScope(state.stack, state.unsafe[index])) {\n return /[ \\t]/.test(info.before) ? \"\" : \" \";\n }\n }\n return \"\\\\\\n\";\n}\nfunction longestStreak(value, substring) {\n const source = String(value);\n let index = source.indexOf(substring);\n let expected = index;\n let count = 0;\n let max = 0;\n if (typeof substring !== \"string\") {\n throw new TypeError(\"Expected substring\");\n }\n while (index !== -1) {\n if (index === expected) {\n if (++count > max) {\n max = count;\n }\n } else {\n count = 1;\n }\n expected = index + substring.length;\n index = source.indexOf(substring, expected);\n }\n return max;\n}\nfunction formatCodeAsIndented(node2, state) {\n return Boolean(\n state.options.fences === false && node2.value && // If there’s no info…\n !node2.lang && // And there’s a non-whitespace character…\n /[^ \\r\\n]/.test(node2.value) && // And the value doesn’t start or end in a blank…\n !/^[\\t ]*(?:[\\r\\n]|$)|(?:^|[\\r\\n])[\\t ]*$/.test(node2.value)\n );\n}\nfunction checkFence(state) {\n const marker = state.options.fence || \"`\";\n if (marker !== \"`\" && marker !== \"~\") {\n throw new Error(\n \"Cannot serialize code with `\" + marker + \"` for `options.fence`, expected `` ` `` or `~`\"\n );\n }\n return marker;\n}\nfunction code$1(node2, _, state, info) {\n const marker = checkFence(state);\n const raw = node2.value || \"\";\n const suffix = marker === \"`\" ? \"GraveAccent\" : \"Tilde\";\n if (formatCodeAsIndented(node2, state)) {\n const exit3 = state.enter(\"codeIndented\");\n const value2 = state.indentLines(raw, map);\n exit3();\n return value2;\n }\n const tracker = state.createTracker(info);\n const sequence = marker.repeat(Math.max(longestStreak(raw, marker) + 1, 3));\n const exit2 = state.enter(\"codeFenced\");\n let value = tracker.move(sequence);\n if (node2.lang) {\n const subexit = state.enter(`codeFencedLang${suffix}`);\n value += tracker.move(\n state.safe(node2.lang, {\n before: value,\n after: \" \",\n encode: [\"`\"],\n ...tracker.current()\n })\n );\n subexit();\n }\n if (node2.lang && node2.meta) {\n const subexit = state.enter(`codeFencedMeta${suffix}`);\n value += tracker.move(\" \");\n value += tracker.move(\n state.safe(node2.meta, {\n before: value,\n after: \"\\n\",\n encode: [\"`\"],\n ...tracker.current()\n })\n );\n subexit();\n }\n value += tracker.move(\"\\n\");\n if (raw) {\n value += tracker.move(raw + \"\\n\");\n }\n value += tracker.move(sequence);\n exit2();\n return value;\n}\nfunction map(line, _, blank) {\n return (blank ? \"\" : \" \") + line;\n}\nfunction checkQuote(state) {\n const marker = state.options.quote || '\"';\n if (marker !== '\"' && marker !== \"'\") {\n throw new Error(\n \"Cannot serialize title with `\" + marker + \"` for `options.quote`, expected `\\\"`, or `'`\"\n );\n }\n return marker;\n}\nfunction definition(node2, _, state, info) {\n const quote = checkQuote(state);\n const suffix = quote === '\"' ? \"Quote\" : \"Apostrophe\";\n const exit2 = state.enter(\"definition\");\n let subexit = state.enter(\"label\");\n const tracker = state.createTracker(info);\n let value = tracker.move(\"[\");\n value += tracker.move(\n state.safe(state.associationId(node2), {\n before: value,\n after: \"]\",\n ...tracker.current()\n })\n );\n value += tracker.move(\"]: \");\n subexit();\n if (\n // If there’s no url, or…\n !node2.url || // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node2.url)\n ) {\n subexit = state.enter(\"destinationLiteral\");\n value += tracker.move(\"<\");\n value += tracker.move(\n state.safe(node2.url, { before: value, after: \">\", ...tracker.current() })\n );\n value += tracker.move(\">\");\n } else {\n subexit = state.enter(\"destinationRaw\");\n value += tracker.move(\n state.safe(node2.url, {\n before: value,\n after: node2.title ? \" \" : \"\\n\",\n ...tracker.current()\n })\n );\n }\n subexit();\n if (node2.title) {\n subexit = state.enter(`title${suffix}`);\n value += tracker.move(\" \" + quote);\n value += tracker.move(\n state.safe(node2.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n );\n value += tracker.move(quote);\n subexit();\n }\n exit2();\n return value;\n}\nfunction checkEmphasis(state) {\n const marker = state.options.emphasis || \"*\";\n if (marker !== \"*\" && marker !== \"_\") {\n throw new Error(\n \"Cannot serialize emphasis with `\" + marker + \"` for `options.emphasis`, expected `*`, or `_`\"\n );\n }\n return marker;\n}\nfunction encodeCharacterReference(code2) {\n return \"&#x\" + code2.toString(16).toUpperCase() + \";\";\n}\nfunction classifyCharacter(code2) {\n if (code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)) {\n return 1;\n }\n if (unicodePunctuation(code2)) {\n return 2;\n }\n}\nfunction encodeInfo(outside, inside, marker) {\n const outsideKind = classifyCharacter(outside);\n const insideKind = classifyCharacter(inside);\n if (outsideKind === void 0) {\n return insideKind === void 0 ? (\n // Letter inside:\n // we have to encode *both* letters for `_` as it is looser.\n // it already forms for `*` (and GFMs `~`).\n marker === \"_\" ? { inside: true, outside: true } : { inside: false, outside: false }\n ) : insideKind === 1 ? (\n // Whitespace inside: encode both (letter, whitespace).\n { inside: true, outside: true }\n ) : (\n // Punctuation inside: encode outer (letter)\n { inside: false, outside: true }\n );\n }\n if (outsideKind === 1) {\n return insideKind === void 0 ? (\n // Letter inside: already forms.\n { inside: false, outside: false }\n ) : insideKind === 1 ? (\n // Whitespace inside: encode both (whitespace).\n { inside: true, outside: true }\n ) : (\n // Punctuation inside: already forms.\n { inside: false, outside: false }\n );\n }\n return insideKind === void 0 ? (\n // Letter inside: already forms.\n { inside: false, outside: false }\n ) : insideKind === 1 ? (\n // Whitespace inside: encode inner (whitespace).\n { inside: true, outside: false }\n ) : (\n // Punctuation inside: already forms.\n { inside: false, outside: false }\n );\n}\nemphasis.peek = emphasisPeek;\nfunction emphasis(node2, _, state, info) {\n const marker = checkEmphasis(state);\n const exit2 = state.enter(\"emphasis\");\n const tracker = state.createTracker(info);\n const before = tracker.move(marker);\n let between = tracker.move(\n state.containerPhrasing(node2, {\n after: marker,\n before,\n ...tracker.current()\n })\n );\n const betweenHead = between.charCodeAt(0);\n const open = encodeInfo(\n info.before.charCodeAt(info.before.length - 1),\n betweenHead,\n marker\n );\n if (open.inside) {\n between = encodeCharacterReference(betweenHead) + between.slice(1);\n }\n const betweenTail = between.charCodeAt(between.length - 1);\n const close = encodeInfo(info.after.charCodeAt(0), betweenTail, marker);\n if (close.inside) {\n between = between.slice(0, -1) + encodeCharacterReference(betweenTail);\n }\n const after = tracker.move(marker);\n exit2();\n state.attentionEncodeSurroundingInfo = {\n after: close.outside,\n before: open.outside\n };\n return before + between + after;\n}\nfunction emphasisPeek(_, _1, state) {\n return state.options.emphasis || \"*\";\n}\nconst emptyOptions$1 = {};\nfunction toString(value, options) {\n const settings = emptyOptions$1;\n const includeImageAlt = typeof settings.includeImageAlt === \"boolean\" ? settings.includeImageAlt : true;\n const includeHtml = typeof settings.includeHtml === \"boolean\" ? settings.includeHtml : true;\n return one(value, includeImageAlt, includeHtml);\n}\nfunction one(value, includeImageAlt, includeHtml) {\n if (node(value)) {\n if (\"value\" in value) {\n return value.type === \"html\" && !includeHtml ? \"\" : value.value;\n }\n if (includeImageAlt && \"alt\" in value && value.alt) {\n return value.alt;\n }\n if (\"children\" in value) {\n return all(value.children, includeImageAlt, includeHtml);\n }\n }\n if (Array.isArray(value)) {\n return all(value, includeImageAlt, includeHtml);\n }\n return \"\";\n}\nfunction all(values, includeImageAlt, includeHtml) {\n const result = [];\n let index = -1;\n while (++index < values.length) {\n result[index] = one(values[index], includeImageAlt, includeHtml);\n }\n return result.join(\"\");\n}\nfunction node(value) {\n return Boolean(value && typeof value === \"object\");\n}\nfunction formatHeadingAsSetext(node2, state) {\n let literalWithBreak = false;\n visit(node2, function(node3) {\n if (\"value\" in node3 && /\\r?\\n|\\r/.test(node3.value) || node3.type === \"break\") {\n literalWithBreak = true;\n return EXIT$1;\n }\n });\n return Boolean(\n (!node2.depth || node2.depth < 3) && toString(node2) && (state.options.setext || literalWithBreak)\n );\n}\nfunction heading(node2, _, state, info) {\n const rank = Math.max(Math.min(6, node2.depth || 1), 1);\n const tracker = state.createTracker(info);\n if (formatHeadingAsSetext(node2, state)) {\n const exit3 = state.enter(\"headingSetext\");\n const subexit2 = state.enter(\"phrasing\");\n const value2 = state.containerPhrasing(node2, {\n ...tracker.current(),\n before: \"\\n\",\n after: \"\\n\"\n });\n subexit2();\n exit3();\n return value2 + \"\\n\" + (rank === 1 ? \"=\" : \"-\").repeat(\n // The whole size…\n value2.length - // Minus the position of the character after the last EOL (or\n // 0 if there is none)…\n (Math.max(value2.lastIndexOf(\"\\r\"), value2.lastIndexOf(\"\\n\")) + 1)\n );\n }\n const sequence = \"#\".repeat(rank);\n const exit2 = state.enter(\"headingAtx\");\n const subexit = state.enter(\"phrasing\");\n tracker.move(sequence + \" \");\n let value = state.containerPhrasing(node2, {\n before: \"# \",\n after: \"\\n\",\n ...tracker.current()\n });\n if (/^[\\t ]/.test(value)) {\n value = encodeCharacterReference(value.charCodeAt(0)) + value.slice(1);\n }\n value = value ? sequence + \" \" + value : sequence;\n if (state.options.closeAtx) {\n value += \" \" + sequence;\n }\n subexit();\n exit2();\n return value;\n}\nhtml.peek = htmlPeek;\nfunction html(node2) {\n return node2.value || \"\";\n}\nfunction htmlPeek() {\n return \"<\";\n}\nimage.peek = imagePeek;\nfunction image(node2, _, state, info) {\n const quote = checkQuote(state);\n const suffix = quote === '\"' ? \"Quote\" : \"Apostrophe\";\n const exit2 = state.enter(\"image\");\n let subexit = state.enter(\"label\");\n const tracker = state.createTracker(info);\n let value = tracker.move(\"![\");\n value += tracker.move(\n state.safe(node2.alt, { before: value, after: \"]\", ...tracker.current() })\n );\n value += tracker.move(\"](\");\n subexit();\n if (\n // If there’s no url but there is a title…\n !node2.url && node2.title || // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node2.url)\n ) {\n subexit = state.enter(\"destinationLiteral\");\n value += tracker.move(\"<\");\n value += tracker.move(\n state.safe(node2.url, { before: value, after: \">\", ...tracker.current() })\n );\n value += tracker.move(\">\");\n } else {\n subexit = state.enter(\"destinationRaw\");\n value += tracker.move(\n state.safe(node2.url, {\n before: value,\n after: node2.title ? \" \" : \")\",\n ...tracker.current()\n })\n );\n }\n subexit();\n if (node2.title) {\n subexit = state.enter(`title${suffix}`);\n value += tracker.move(\" \" + quote);\n value += tracker.move(\n state.safe(node2.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n );\n value += tracker.move(quote);\n subexit();\n }\n value += tracker.move(\")\");\n exit2();\n return value;\n}\nfunction imagePeek() {\n return \"!\";\n}\nimageReference.peek = imageReferencePeek;\nfunction imageReference(node2, _, state, info) {\n const type = node2.referenceType;\n const exit2 = state.enter(\"imageReference\");\n let subexit = state.enter(\"label\");\n const tracker = state.createTracker(info);\n let value = tracker.move(\"![\");\n const alt = state.safe(node2.alt, {\n before: value,\n after: \"]\",\n ...tracker.current()\n });\n value += tracker.move(alt + \"][\");\n subexit();\n const stack = state.stack;\n state.stack = [];\n subexit = state.enter(\"reference\");\n const reference = state.safe(state.associationId(node2), {\n before: value,\n after: \"]\",\n ...tracker.current()\n });\n subexit();\n state.stack = stack;\n exit2();\n if (type === \"full\" || !alt || alt !== reference) {\n value += tracker.move(reference + \"]\");\n } else if (type === \"shortcut\") {\n value = value.slice(0, -1);\n } else {\n value += tracker.move(\"]\");\n }\n return value;\n}\nfunction imageReferencePeek() {\n return \"!\";\n}\ninlineCode.peek = inlineCodePeek;\nfunction inlineCode(node2, _, state) {\n let value = node2.value || \"\";\n let sequence = \"`\";\n let index = -1;\n while (new RegExp(\"(^|[^`])\" + sequence + \"([^`]|$)\").test(value)) {\n sequence += \"`\";\n }\n if (/[^ \\r\\n]/.test(value) && (/^[ \\r\\n]/.test(value) && /[ \\r\\n]$/.test(value) || /^`|`$/.test(value))) {\n value = \" \" + value + \" \";\n }\n while (++index < state.unsafe.length) {\n const pattern = state.unsafe[index];\n const expression = state.compilePattern(pattern);\n let match;\n if (!pattern.atBreak) continue;\n while (match = expression.exec(value)) {\n let position = match.index;\n if (value.charCodeAt(position) === 10 && value.charCodeAt(position - 1) === 13) {\n position--;\n }\n value = value.slice(0, position) + \" \" + value.slice(match.index + 1);\n }\n }\n return sequence + value + sequence;\n}\nfunction inlineCodePeek() {\n return \"`\";\n}\nfunction formatLinkAsAutolink(node2, state) {\n const raw = toString(node2);\n return Boolean(\n !state.options.resourceLink && // If there’s a url…\n node2.url && // And there’s a no title…\n !node2.title && // And the content of `node` is a single text node…\n node2.children && node2.children.length === 1 && node2.children[0].type === \"text\" && // And if the url is the same as the content…\n (raw === node2.url || \"mailto:\" + raw === node2.url) && // And that starts w/ a protocol…\n /^[a-z][a-z+.-]+:/i.test(node2.url) && // And that doesn’t contain ASCII control codes (character escapes and\n // references don’t work), space, or angle brackets…\n !/[\\0- <>\\u007F]/.test(node2.url)\n );\n}\nlink.peek = linkPeek;\nfunction link(node2, _, state, info) {\n const quote = checkQuote(state);\n const suffix = quote === '\"' ? \"Quote\" : \"Apostrophe\";\n const tracker = state.createTracker(info);\n let exit2;\n let subexit;\n if (formatLinkAsAutolink(node2, state)) {\n const stack = state.stack;\n state.stack = [];\n exit2 = state.enter(\"autolink\");\n let value2 = tracker.move(\"<\");\n value2 += tracker.move(\n state.containerPhrasing(node2, {\n before: value2,\n after: \">\",\n ...tracker.current()\n })\n );\n value2 += tracker.move(\">\");\n exit2();\n state.stack = stack;\n return value2;\n }\n exit2 = state.enter(\"link\");\n subexit = state.enter(\"label\");\n let value = tracker.move(\"[\");\n value += tracker.move(\n state.containerPhrasing(node2, {\n before: value,\n after: \"](\",\n ...tracker.current()\n })\n );\n value += tracker.move(\"](\");\n subexit();\n if (\n // If there’s no url but there is a title…\n !node2.url && node2.title || // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node2.url)\n ) {\n subexit = state.enter(\"destinationLiteral\");\n value += tracker.move(\"<\");\n value += tracker.move(\n state.safe(node2.url, { before: value, after: \">\", ...tracker.current() })\n );\n value += tracker.move(\">\");\n } else {\n subexit = state.enter(\"destinationRaw\");\n value += tracker.move(\n state.safe(node2.url, {\n before: value,\n after: node2.title ? \" \" : \")\",\n ...tracker.current()\n })\n );\n }\n subexit();\n if (node2.title) {\n subexit = state.enter(`title${suffix}`);\n value += tracker.move(\" \" + quote);\n value += tracker.move(\n state.safe(node2.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n );\n value += tracker.move(quote);\n subexit();\n }\n value += tracker.move(\")\");\n exit2();\n return value;\n}\nfunction linkPeek(node2, _, state) {\n return formatLinkAsAutolink(node2, state) ? \"<\" : \"[\";\n}\nlinkReference.peek = linkReferencePeek;\nfunction linkReference(node2, _, state, info) {\n const type = node2.referenceType;\n const exit2 = state.enter(\"linkReference\");\n let subexit = state.enter(\"label\");\n const tracker = state.createTracker(info);\n let value = tracker.move(\"[\");\n const text2 = state.containerPhrasing(node2, {\n before: value,\n after: \"]\",\n ...tracker.current()\n });\n value += tracker.move(text2 + \"][\");\n subexit();\n const stack = state.stack;\n state.stack = [];\n subexit = state.enter(\"reference\");\n const reference = state.safe(state.associationId(node2), {\n before: value,\n after: \"]\",\n ...tracker.current()\n });\n subexit();\n state.stack = stack;\n exit2();\n if (type === \"full\" || !text2 || text2 !== reference) {\n value += tracker.move(reference + \"]\");\n } else if (type === \"shortcut\") {\n value = value.slice(0, -1);\n } else {\n value += tracker.move(\"]\");\n }\n return value;\n}\nfunction linkReferencePeek() {\n return \"[\";\n}\nfunction checkBullet(state) {\n const marker = state.options.bullet || \"*\";\n if (marker !== \"*\" && marker !== \"+\" && marker !== \"-\") {\n throw new Error(\n \"Cannot serialize items with `\" + marker + \"` for `options.bullet`, expected `*`, `+`, or `-`\"\n );\n }\n return marker;\n}\nfunction checkBulletOther(state) {\n const bullet = checkBullet(state);\n const bulletOther = state.options.bulletOther;\n if (!bulletOther) {\n return bullet === \"*\" ? \"-\" : \"*\";\n }\n if (bulletOther !== \"*\" && bulletOther !== \"+\" && bulletOther !== \"-\") {\n throw new Error(\n \"Cannot serialize items with `\" + bulletOther + \"` for `options.bulletOther`, expected `*`, `+`, or `-`\"\n );\n }\n if (bulletOther === bullet) {\n throw new Error(\n \"Expected `bullet` (`\" + bullet + \"`) and `bulletOther` (`\" + bulletOther + \"`) to be different\"\n );\n }\n return bulletOther;\n}\nfunction checkBulletOrdered(state) {\n const marker = state.options.bulletOrdered || \".\";\n if (marker !== \".\" && marker !== \")\") {\n throw new Error(\n \"Cannot serialize items with `\" + marker + \"` for `options.bulletOrdered`, expected `.` or `)`\"\n );\n }\n return marker;\n}\nfunction checkRule(state) {\n const marker = state.options.rule || \"*\";\n if (marker !== \"*\" && marker !== \"-\" && marker !== \"_\") {\n throw new Error(\n \"Cannot serialize rules with `\" + marker + \"` for `options.rule`, expected `*`, `-`, or `_`\"\n );\n }\n return marker;\n}\nfunction list(node2, parent, state, info) {\n const exit2 = state.enter(\"list\");\n const bulletCurrent = state.bulletCurrent;\n let bullet = node2.ordered ? checkBulletOrdered(state) : checkBullet(state);\n const bulletOther = node2.ordered ? bullet === \".\" ? \")\" : \".\" : checkBulletOther(state);\n let useDifferentMarker = parent && state.bulletLastUsed ? bullet === state.bulletLastUsed : false;\n if (!node2.ordered) {\n const firstListItem = node2.children ? node2.children[0] : void 0;\n if (\n // Bullet could be used as a thematic break marker:\n (bullet === \"*\" || bullet === \"-\") && // Empty first list item:\n firstListItem && (!firstListItem.children || !firstListItem.children[0]) && // Directly in two other list items:\n state.stack[state.stack.length - 1] === \"list\" && state.stack[state.stack.length - 2] === \"listItem\" && state.stack[state.stack.length - 3] === \"list\" && state.stack[state.stack.length - 4] === \"listItem\" && // That are each the first child.\n state.indexStack[state.indexStack.length - 1] === 0 && state.indexStack[state.indexStack.length - 2] === 0 && state.indexStack[state.indexStack.length - 3] === 0\n ) {\n useDifferentMarker = true;\n }\n if (checkRule(state) === bullet && firstListItem) {\n let index = -1;\n while (++index < node2.children.length) {\n const item = node2.children[index];\n if (item && item.type === \"listItem\" && item.children && item.children[0] && item.children[0].type === \"thematicBreak\") {\n useDifferentMarker = true;\n break;\n }\n }\n }\n }\n if (useDifferentMarker) {\n bullet = bulletOther;\n }\n state.bulletCurrent = bullet;\n const value = state.containerFlow(node2, info);\n state.bulletLastUsed = bullet;\n state.bulletCurrent = bulletCurrent;\n exit2();\n return value;\n}\nfunction checkListItemIndent(state) {\n const style = state.options.listItemIndent || \"one\";\n if (style !== \"tab\" && style !== \"one\" && style !== \"mixed\") {\n throw new Error(\n \"Cannot serialize items with `\" + style + \"` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`\"\n );\n }\n return style;\n}\nfunction listItem(node2, parent, state, info) {\n const listItemIndent = checkListItemIndent(state);\n let bullet = state.bulletCurrent || checkBullet(state);\n if (parent && parent.type === \"list\" && parent.ordered) {\n bullet = (typeof parent.start === \"number\" && parent.start > -1 ? parent.start : 1) + (state.options.incrementListMarker === false ? 0 : parent.children.indexOf(node2)) + bullet;\n }\n let size = bullet.length + 1;\n if (listItemIndent === \"tab\" || listItemIndent === \"mixed\" && (parent && parent.type === \"list\" && parent.spread || node2.spread)) {\n size = Math.ceil(size / 4) * 4;\n }\n const tracker = state.createTracker(info);\n tracker.move(bullet + \" \".repeat(size - bullet.length));\n tracker.shift(size);\n const exit2 = state.enter(\"listItem\");\n const value = state.indentLines(\n state.containerFlow(node2, tracker.current()),\n map2\n );\n exit2();\n return value;\n function map2(line, index, blank) {\n if (index) {\n return (blank ? \"\" : \" \".repeat(size)) + line;\n }\n return (blank ? bullet : bullet + \" \".repeat(size - bullet.length)) + line;\n }\n}\nfunction paragraph(node2, _, state, info) {\n const exit2 = state.enter(\"paragraph\");\n const subexit = state.enter(\"phrasing\");\n const value = state.containerPhrasing(node2, info);\n subexit();\n exit2();\n return value;\n}\nconst phrasing = (\n /** @type {(node?: unknown) => node is Exclude<PhrasingContent, Html>} */\n convert([\n \"break\",\n \"delete\",\n \"emphasis\",\n // To do: next major: removed since footnotes were added to GFM.\n \"footnote\",\n \"footnoteReference\",\n \"image\",\n \"imageReference\",\n \"inlineCode\",\n // Enabled by `mdast-util-math`:\n \"inlineMath\",\n \"link\",\n \"linkReference\",\n // Enabled by `mdast-util-mdx`:\n \"mdxJsxTextElement\",\n // Enabled by `mdast-util-mdx`:\n \"mdxTextExpression\",\n \"strong\",\n \"text\",\n // Enabled by `mdast-util-directive`:\n \"textDirective\"\n ])\n);\nfunction root(node2, _, state, info) {\n const hasPhrasing = node2.children.some(function(d) {\n return phrasing(d);\n });\n const container = hasPhrasing ? state.containerPhrasing : state.containerFlow;\n return container.call(state, node2, info);\n}\nfunction checkStrong(state) {\n const marker = state.options.strong || \"*\";\n if (marker !== \"*\" && marker !== \"_\") {\n throw new Error(\n \"Cannot serialize strong with `\" + marker + \"` for `options.strong`, expected `*`, or `_`\"\n );\n }\n return marker;\n}\nstrong.peek = strongPeek;\nfunction strong(node2, _, state, info) {\n const marker = checkStrong(state);\n const exit2 = state.enter(\"strong\");\n const tracker = state.createTracker(info);\n const before = tracker.move(marker + marker);\n let between = tracker.move(\n state.containerPhrasing(node2, {\n after: marker,\n before,\n ...tracker.current()\n })\n );\n const betweenHead = between.charCodeAt(0);\n const open = encodeInfo(\n info.before.charCodeAt(info.before.length - 1),\n betweenHead,\n marker\n );\n if (open.inside) {\n between = encodeCharacterReference(betweenHead) + between.slice(1);\n }\n const betweenTail = between.charCodeAt(between.length - 1);\n const close = encodeInfo(info.after.charCodeAt(0), betweenTail, marker);\n if (close.inside) {\n between = between.slice(0, -1) + encodeCharacterReference(betweenTail);\n }\n const after = tracker.move(marker + marker);\n exit2();\n state.attentionEncodeSurroundingInfo = {\n after: close.outside,\n before: open.outside\n };\n return before + between + after;\n}\nfunction strongPeek(_, _1, state) {\n return state.options.strong || \"*\";\n}\nfunction text$1(node2, _, state, info) {\n return state.safe(node2.value, info);\n}\nfunction checkRuleRepetition(state) {\n const repetition = state.options.ruleRepetition || 3;\n if (repetition < 3) {\n throw new Error(\n \"Cannot serialize rules with repetition `\" + repetition + \"` for `options.ruleRepetition`, expected `3` or more\"\n );\n }\n return repetition;\n}\nfunction thematicBreak(_, _1, state) {\n const value = (checkRule(state) + (state.options.ruleSpaces ? \" \" : \"\")).repeat(checkRuleRepetition(state));\n return state.options.ruleSpaces ? value.slice(0, -1) : value;\n}\nconst handle = {\n blockquote,\n break: hardBreak,\n code: code$1,\n definition,\n emphasis,\n hardBreak,\n heading,\n html,\n image,\n imageReference,\n inlineCode,\n link,\n linkReference,\n list,\n listItem,\n paragraph,\n root,\n strong,\n text: text$1,\n thematicBreak\n};\nfunction gfmTableFromMarkdown() {\n return {\n enter: {\n table: enterTable,\n tableData: enterCell,\n tableHeader: enterCell,\n tableRow: enterRow\n },\n exit: {\n codeText: exitCodeText,\n table: exitTable,\n tableData: exit,\n tableHeader: exit,\n tableRow: exit\n }\n };\n}\nfunction enterTable(token) {\n const align = token._align;\n this.enter(\n {\n type: \"table\",\n align: align.map(function(d) {\n return d === \"none\" ? null : d;\n }),\n children: []\n },\n token\n );\n this.data.inTable = true;\n}\nfunction exitTable(token) {\n this.exit(token);\n this.data.inTable = void 0;\n}\nfunction enterRow(token) {\n this.enter({ type: \"tableRow\", children: [] }, token);\n}\nfunction exit(token) {\n this.exit(token);\n}\nfunction enterCell(token) {\n this.enter({ type: \"tableCell\", children: [] }, token);\n}\nfunction exitCodeText(token) {\n let value = this.resume();\n if (this.data.inTable) {\n value = value.replace(/\\\\([\\\\|])/g, replace);\n }\n const node2 = this.stack[this.stack.length - 1];\n ok$1(node2.type === \"inlineCode\");\n node2.value = value;\n this.exit(token);\n}\nfunction replace($0, $1) {\n return $1 === \"|\" ? $1 : $0;\n}\nfunction gfmTableToMarkdown(options) {\n const settings = options || {};\n const padding = settings.tableCellPadding;\n const alignDelimiters = settings.tablePipeAlign;\n const stringLength = settings.stringLength;\n const around = padding ? \" \" : \"|\";\n return {\n unsafe: [\n { character: \"\\r\", inConstruct: \"tableCell\" },\n { character: \"\\n\", inConstruct: \"tableCell\" },\n // A pipe, when followed by a tab or space (padding), or a dash or colon\n // (unpadded delimiter row), could result in a table.\n { atBreak: true, character: \"|\", after: \"[\t :-]\" },\n // A pipe in a cell must be encoded.\n { character: \"|\", inConstruct: \"tableCell\" },\n // A colon must be followed by a dash, in which case it could start a\n // delimiter row.\n { atBreak: true, character: \":\", after: \"-\" },\n // A delimiter row can also start with a dash, when followed by more\n // dashes, a colon, or a pipe.\n // This is a stricter version than the built in check for lists, thematic\n // breaks, and setex heading underlines though:\n // <https://github.com/syntax-tree/mdast-util-to-markdown/blob/51a2038/lib/unsafe.js#L57>\n { atBreak: true, character: \"-\", after: \"[:|-]\" }\n ],\n handlers: {\n inlineCode: inlineCodeWithTable,\n table: handleTable,\n tableCell: handleTableCell,\n tableRow: handleTableRow\n }\n };\n function handleTable(node2, _, state, info) {\n return serializeData(handleTableAsData(node2, state, info), node2.align);\n }\n function handleTableRow(node2, _, state, info) {\n const row = handleTableRowAsData(node2, state, info);\n const value = serializeData([row]);\n return value.slice(0, value.indexOf(\"\\n\"));\n }\n function handleTableCell(node2, _, state, info) {\n const exit2 = state.enter(\"tableCell\");\n const subexit = state.enter(\"phrasing\");\n const value = state.containerPhrasing(node2, {\n ...info,\n before: around,\n after: around\n });\n subexit();\n exit2();\n return value;\n }\n function serializeData(matrix, align) {\n return markdownTable(matrix, {\n align,\n // @ts-expect-error: `markdown-table` types should support `null`.\n alignDelimiters,\n // @ts-expect-error: `markdown-table` types should support `null`.\n padding,\n // @ts-expect-error: `markdown-table` types should support `null`.\n stringLength\n });\n }\n function handleTableAsData(node2, state, info) {\n const children = node2.children;\n let index = -1;\n const result = [];\n const subexit = state.enter(\"table\");\n while (++index < children.length) {\n result[index] = handleTableRowAsData(children[index], state, info);\n }\n subexit();\n return result;\n }\n function handleTableRowAsData(node2, state, info) {\n const children = node2.children;\n let index = -1;\n const result = [];\n const subexit = state.enter(\"tableRow\");\n while (++index < children.length) {\n result[index] = handleTableCell(children[index], node2, state, info);\n }\n subexit();\n return result;\n }\n function inlineCodeWithTable(node2, parent, state) {\n let value = handle.inlineCode(node2, parent, state);\n if (state.stack.includes(\"tableCell\")) {\n value = value.replace(/\\|/g, \"\\\\$&\");\n }\n return value;\n }\n}\nfunction gfmTaskListItemFromMarkdown() {\n return {\n exit: {\n taskListCheckValueChecked: exitCheck,\n taskListCheckValueUnchecked: exitCheck,\n paragraph: exitParagraphWithTaskListItem\n }\n };\n}\nfunction gfmTaskListItemToMarkdown() {\n return {\n unsafe: [{ atBreak: true, character: \"-\", after: \"[:|-]\" }],\n handlers: { listItem: listItemWithTaskListItem }\n };\n}\nfunction exitCheck(token) {\n const node2 = this.stack[this.stack.length - 2];\n ok$1(node2.type === \"listItem\");\n node2.checked = token.type === \"taskListCheckValueChecked\";\n}\nfunction exitParagraphWithTaskListItem(token) {\n const parent = this.stack[this.stack.length - 2];\n if (parent && parent.type === \"listItem\" && typeof parent.checked === \"boolean\") {\n const node2 = this.stack[this.stack.length - 1];\n ok$1(node2.type === \"paragraph\");\n const head = node2.children[0];\n if (head && head.type === \"text\") {\n const siblings = parent.children;\n let index = -1;\n let firstParaghraph;\n while (++index < siblings.length) {\n const sibling = siblings[index];\n if (sibling.type === \"paragraph\") {\n firstParaghraph = sibling;\n break;\n }\n }\n if (firstParaghraph === node2) {\n head.value = head.value.slice(1);\n if (head.value.length === 0) {\n node2.children.shift();\n } else if (node2.position && head.position && typeof head.position.start.offset === \"number\") {\n head.position.start.column++;\n head.position.start.offset++;\n node2.position.start = Object.assign({}, head.position.start);\n }\n }\n }\n }\n this.exit(token);\n}\nfunction listItemWithTaskListItem(node2, parent, state, info) {\n const head = node2.children[0];\n const checkable = typeof node2.checked === \"boolean\" && head && head.type === \"paragraph\";\n const checkbox = \"[\" + (node2.checked ? \"x\" : \" \") + \"] \";\n const tracker = state.createTracker(info);\n if (checkable) {\n tracker.move(checkbox);\n }\n let value = handle.listItem(node2, parent, state, {\n ...info,\n ...tracker.current()\n });\n if (checkable) {\n value = value.replace(/^(?:[*+-]|\\d+\\.)([\\r\\n]| {1,3})/, check);\n }\n return value;\n function check($0) {\n return $0 + checkbox;\n }\n}\nfunction gfmFromMarkdown() {\n return [\n gfmAutolinkLiteralFromMarkdown(),\n gfmFootnoteFromMarkdown(),\n gfmStrikethroughFromMarkdown(),\n gfmTableFromMarkdown(),\n gfmTaskListItemFromMarkdown()\n ];\n}\nfunction gfmToMarkdown(options) {\n return {\n extensions: [\n gfmAutolinkLiteralToMarkdown(),\n gfmFootnoteToMarkdown(options),\n gfmStrikethroughToMarkdown(),\n gfmTableToMarkdown(options),\n gfmTaskListItemToMarkdown()\n ]\n };\n}\nfunction splice(list2, start, remove, items) {\n const end = list2.length;\n let chunkStart = 0;\n let parameters;\n if (start < 0) {\n start = -start > end ? 0 : end + start;\n } else {\n start = start > end ? end : start;\n }\n remove = remove > 0 ? remove : 0;\n if (items.length < 1e4) {\n parameters = Array.from(items);\n parameters.unshift(start, remove);\n list2.splice(...parameters);\n } else {\n if (remove) list2.splice(start, remove);\n while (chunkStart < items.length) {\n parameters = items.slice(chunkStart, chunkStart + 1e4);\n parameters.unshift(start, 0);\n list2.splice(...parameters);\n chunkStart += 1e4;\n start += 1e4;\n }\n }\n}\nconst hasOwnProperty = {}.hasOwnProperty;\nfunction combineExtensions(extensions) {\n const all2 = {};\n let index = -1;\n while (++index < extensions.length) {\n syntaxExtension(all2, extensions[index]);\n }\n return all2;\n}\nfunction syntaxExtension(all2, extension) {\n let hook;\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all2, hook) ? all2[hook] : void 0;\n const left = maybe || (all2[hook] = {});\n const right = extension[hook];\n let code2;\n if (right) {\n for (code2 in right) {\n if (!hasOwnProperty.call(left, code2)) left[code2] = [];\n const value = right[code2];\n constructs(\n // @ts-expect-error Looks like a list.\n left[code2],\n Array.isArray(value) ? value : value ? [value] : []\n );\n }\n }\n }\n}\nfunction constructs(existing, list2) {\n let index = -1;\n const before = [];\n while (++index < list2.length) {\n (list2[index].add === \"after\" ? existing : before).push(list2[index]);\n }\n splice(existing, 0, 0, before);\n}\nconst wwwPrefix = {\n tokenize: tokenizeWwwPrefix,\n partial: true\n};\nconst domain = {\n tokenize: tokenizeDomain,\n partial: true\n};\nconst path = {\n tokenize: tokenizePath,\n partial: true\n};\nconst trail = {\n tokenize: tokenizeTrail,\n partial: true\n};\nconst emailDomainDotTrail = {\n tokenize: tokenizeEmailDomainDotTrail,\n partial: true\n};\nconst wwwAutolink = {\n name: \"wwwAutolink\",\n tokenize: tokenizeWwwAutolink,\n previous: previousWww\n};\nconst protocolAutolink = {\n name: \"protocolAutolink\",\n tokenize: tokenizeProtocolAutolink,\n previous: previousProtocol\n};\nconst emailAutolink = {\n name: \"emailAutolink\",\n tokenize: tokenizeEmailAutolink,\n previous: previousEmail\n};\nconst text = {};\nfunction gfmAutolinkLiteral() {\n return {\n text\n };\n}\nlet code = 48;\nwhile (code < 123) {\n text[code] = emailAutolink;\n code++;\n if (code === 58) code = 65;\n else if (code === 91) code = 97;\n}\ntext[43] = emailAutolink;\ntext[45] = emailAutolink;\ntext[46] = emailAutolink;\ntext[95] = emailAutolink;\ntext[72] = [emailAutolink, protocolAutolink];\ntext[104] = [emailAutolink, protocolAutolink];\ntext[87] = [emailAutolink, wwwAutolink];\ntext[119] = [emailAutolink, wwwAutolink];\nfunction tokenizeEmailAutolink(effects, ok2, nok) {\n const self = this;\n let dot;\n let data;\n return start;\n function start(code2) {\n if (!gfmAtext(code2) || !previousEmail.call(self, self.previous) || previousUnbalanced(self.events)) {\n return nok(code2);\n }\n effects.enter(\"literalAutolink\");\n effects.enter(\"literalAutolinkEmail\");\n return atext(code2);\n }\n function atext(code2) {\n if (gfmAtext(code2)) {\n effects.consume(code2);\n return atext;\n }\n if (code2 === 64) {\n effects.consume(code2);\n return emailDomain;\n }\n return nok(code2);\n }\n function emailDomain(code2) {\n if (code2 === 46) {\n return effects.check(emailDomainDotTrail, emailDomainAfter, emailDomainDot)(code2);\n }\n if (code2 === 45 || code2 === 95 || asciiAlphanumeric(code2)) {\n data = true;\n effects.consume(code2);\n return emailDomain;\n }\n return emailDomainAfter(code2);\n }\n function emailDomainDot(code2) {\n effects.consume(code2);\n dot = true;\n return emailDomain;\n }\n function emailDomainAfter(code2) {\n if (data && dot && asciiAlpha(self.previous)) {\n effects.exit(\"literalAutolinkEmail\");\n effects.exit(\"literalAutolink\");\n return ok2(code2);\n }\n return nok(code2);\n }\n}\nfunction tokenizeWwwAutolink(effects, ok2, nok) {\n const self = this;\n return wwwStart;\n function wwwStart(code2) {\n if (code2 !== 87 && code2 !== 119 || !previousWww.call(self, self.previous) || previousUnbalanced(self.events)) {\n return nok(code2);\n }\n effects.enter(\"literalAutolink\");\n effects.enter(\"literalAutolinkWww\");\n return effects.check(wwwPrefix, effects.attempt(domain, effects.attempt(path, wwwAfter), nok), nok)(code2);\n }\n function wwwAfter(code2) {\n effects.exit(\"literalAutolinkWww\");\n effects.exit(\"literalAutolink\");\n return ok2(code2);\n }\n}\nfunction tokenizeProtocolAutolink(effects, ok2, nok) {\n const self = this;\n let buffer = \"\";\n let seen = false;\n return protocolStart;\n function protocolStart(code2) {\n if ((code2 === 72 || code2 === 104) && previousProtocol.call(self, self.previous) && !previousUnbalanced(self.events)) {\n effects.enter(\"literalAutolink\");\n effects.enter(\"literalAutolinkHttp\");\n buffer += String.fromCodePoint(code2);\n effects.consume(code2);\n return protocolPrefixInside;\n }\n return nok(code2);\n }\n function protocolPrefixInside(code2) {\n if (asciiAlpha(code2) && buffer.length < 5) {\n buffer += String.fromCodePoint(code2);\n effects.consume(code2);\n return protocolPrefixInside;\n }\n if (code2 === 58) {\n const protocol = buffer.toLowerCase();\n if (protocol === \"http\" || protocol === \"https\") {\n effects.consume(code2);\n return protocolSlashesInside;\n }\n }\n return nok(code2);\n }\n function protocolSlashesInside(code2) {\n if (code2 === 47) {\n effects.consume(code2);\n if (seen) {\n return afterProtocol;\n }\n seen = true;\n return protocolSlashesInside;\n }\n return nok(code2);\n }\n function afterProtocol(code2) {\n return code2 === null || asciiControl(code2) || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2) || unicodePunctuation(code2) ? nok(code2) : effects.attempt(domain, effects.attempt(path, protocolAfter), nok)(code2);\n }\n function protocolAfter(code2) {\n effects.exit(\"literalAutolinkHttp\");\n effects.exit(\"literalAutolink\");\n return ok2(code2);\n }\n}\nfunction tokenizeWwwPrefix(effects, ok2, nok) {\n let size = 0;\n return wwwPrefixInside;\n function wwwPrefixInside(code2) {\n if ((code2 === 87 || code2 === 119) && size < 3) {\n size++;\n effects.consume(code2);\n return wwwPrefixInside;\n }\n if (code2 === 46 && size === 3) {\n effects.consume(code2);\n return wwwPrefixAfter;\n }\n return nok(code2);\n }\n function wwwPrefixAfter(code2) {\n return code2 === null ? nok(code2) : ok2(code2);\n }\n}\nfunction tokenizeDomain(effects, ok2, nok) {\n let underscoreInLastSegment;\n let underscoreInLastLastSegment;\n let seen;\n return domainInside;\n function domainInside(code2) {\n if (code2 === 46 || code2 === 95) {\n return effects.check(trail, domainAfter, domainAtPunctuation)(code2);\n }\n if (code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2) || code2 !== 45 && unicodePunctuation(code2)) {\n return domainAfter(code2);\n }\n seen = true;\n effects.consume(code2);\n return domainInside;\n }\n function domainAtPunctuation(code2) {\n if (code2 === 95) {\n underscoreInLastSegment = true;\n } else {\n underscoreInLastLastSegment = underscoreInLastSegment;\n underscoreInLastSegment = void 0;\n }\n effects.consume(code2);\n return domainInside;\n }\n function domainAfter(code2) {\n if (underscoreInLastLastSegment || underscoreInLastSegment || !seen) {\n return nok(code2);\n }\n return ok2(code2);\n }\n}\nfunction tokenizePath(effects, ok2) {\n let sizeOpen = 0;\n let sizeClose = 0;\n return pathInside;\n function pathInside(code2) {\n if (code2 === 40) {\n sizeOpen++;\n effects.consume(code2);\n return pathInside;\n }\n if (code2 === 41 && sizeClose < sizeOpen) {\n return pathAtPunctuation(code2);\n }\n if (code2 === 33 || code2 === 34 || code2 === 38 || code2 === 39 || code2 === 41 || code2 === 42 || code2 === 44 || code2 === 46 || code2 === 58 || code2 === 59 || code2 === 60 || code2 === 63 || code2 === 93 || code2 === 95 || code2 === 126) {\n return effects.check(trail, ok2, pathAtPunctuation)(code2);\n }\n if (code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)) {\n return ok2(code2);\n }\n effects.consume(code2);\n return pathInside;\n }\n function pathAtPunctuation(code2) {\n if (code2 === 41) {\n sizeClose++;\n }\n effects.consume(code2);\n return pathInside;\n }\n}\nfunction tokenizeTrail(effects, ok2, nok) {\n return trail2;\n function trail2(code2) {\n if (code2 === 33 || code2 === 34 || code2 === 39 || code2 === 41 || code2 === 42 || code2 === 44 || code2 === 46 || code2 === 58 || code2 === 59 || code2 === 63 || code2 === 95 || code2 === 126) {\n effects.consume(code2);\n return trail2;\n }\n if (code2 === 38) {\n effects.consume(code2);\n return trailCharacterReferenceStart;\n }\n if (code2 === 93) {\n effects.consume(code2);\n return trailBracketAfter;\n }\n if (\n // `<` is an end.\n code2 === 60 || // So is whitespace.\n code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)\n ) {\n return ok2(code2);\n }\n return nok(code2);\n }\n function trailBracketAfter(code2) {\n if (code2 === null || code2 === 40 || code2 === 91 || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)) {\n return ok2(code2);\n }\n return trail2(code2);\n }\n function trailCharacterReferenceStart(code2) {\n return asciiAlpha(code2) ? trailCharacterReferenceInside(code2) : nok(code2);\n }\n function trailCharacterReferenceInside(code2) {\n if (code2 === 59) {\n effects.consume(code2);\n return trail2;\n }\n if (asciiAlpha(code2)) {\n effects.consume(code2);\n return trailCharacterReferenceInside;\n }\n return nok(code2);\n }\n}\nfunction tokenizeEmailDomainDotTrail(effects, ok2, nok) {\n return start;\n function start(code2) {\n effects.consume(code2);\n return after;\n }\n function after(code2) {\n return asciiAlphanumeric(code2) ? nok(code2) : ok2(code2);\n }\n}\nfunction previousWww(code2) {\n return code2 === null || code2 === 40 || code2 === 42 || code2 === 95 || code2 === 91 || code2 === 93 || code2 === 126 || markdownLineEndingOrSpace(code2);\n}\nfunction previousProtocol(code2) {\n return !asciiAlpha(code2);\n}\nfunction previousEmail(code2) {\n return !(code2 === 47 || gfmAtext(code2));\n}\nfunction gfmAtext(code2) {\n return code2 === 43 || code2 === 45 || code2 === 46 || code2 === 95 || asciiAlphanumeric(code2);\n}\nfunction previousUnbalanced(events) {\n let index = events.length;\n let result = false;\n while (index--) {\n const token = events[index][1];\n if ((token.type === \"labelLink\" || token.type === \"labelImage\") && !token._balanced) {\n result = true;\n break;\n }\n if (token._gfmAutolinkLiteralWalkedInto) {\n result = false;\n break;\n }\n }\n if (events.length > 0 && !result) {\n events[events.length - 1][1]._gfmAutolinkLiteralWalkedInto = true;\n }\n return result;\n}\nfunction resolveAll(constructs2, events, context) {\n const called = [];\n let index = -1;\n while (++index < constructs2.length) {\n const resolve = constructs2[index].resolveAll;\n if (resolve && !called.includes(resolve)) {\n events = resolve(events, context);\n called.push(resolve);\n }\n }\n return events;\n}\nfunction factorySpace(effects, ok2, type, max) {\n const limit = max ? max - 1 : Number.POSITIVE_INFINITY;\n let size = 0;\n return start;\n function start(code2) {\n if (markdownSpace(code2)) {\n effects.enter(type);\n return prefix(code2);\n }\n return ok2(code2);\n }\n function prefix(code2) {\n if (markdownSpace(code2) && size++ < limit) {\n effects.consume(code2);\n return prefix;\n }\n effects.exit(type);\n return ok2(code2);\n }\n}\nconst blankLine = {\n partial: true,\n tokenize: tokenizeBlankLine\n};\nfunction tokenizeBlankLine(effects, ok2, nok) {\n return start;\n function start(code2) {\n return markdownSpace(code2) ? factorySpace(effects, after, \"linePrefix\")(code2) : after(code2);\n }\n function after(code2) {\n return code2 === null || markdownLineEnding(code2) ? ok2(code2) : nok(code2);\n }\n}\nconst indent = {\n tokenize: tokenizeIndent,\n partial: true\n};\nfunction gfmFootnote() {\n return {\n document: {\n [91]: {\n name: \"gfmFootnoteDefinition\",\n tokenize: tokenizeDefinitionStart,\n continuation: {\n tokenize: tokenizeDefinitionContinuation\n },\n exit: gfmFootnoteDefinitionEnd\n }\n },\n text: {\n [91]: {\n name: \"gfmFootnoteCall\",\n tokenize: tokenizeGfmFootnoteCall\n },\n [93]: {\n name: \"gfmPotentialFootnoteCall\",\n add: \"after\",\n tokenize: tokenizePotentialGfmFootnoteCall,\n resolveTo: resolveToPotentialGfmFootnoteCall\n }\n }\n };\n}\nfunction tokenizePotentialGfmFootnoteCall(effects, ok2, nok) {\n const self = this;\n let index = self.events.length;\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n let labelStart;\n while (index--) {\n const token = self.events[index][1];\n if (token.type === \"labelImage\") {\n labelStart = token;\n break;\n }\n if (token.type === \"gfmFootnoteCall\" || token.type === \"labelLink\" || token.type === \"label\" || token.type === \"image\" || token.type === \"link\") {\n break;\n }\n }\n return start;\n function start(code2) {\n if (!labelStart || !labelStart._balanced) {\n return nok(code2);\n }\n const id = normalizeIdentifier(self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n }));\n if (id.codePointAt(0) !== 94 || !defined.includes(id.slice(1))) {\n return nok(code2);\n }\n effects.enter(\"gfmFootnoteCallLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteCallLabelMarker\");\n return ok2(code2);\n }\n}\nfunction resolveToPotentialGfmFootnoteCall(events, context) {\n let index = events.length;\n while (index--) {\n if (events[index][1].type === \"labelImage\" && events[index][0] === \"enter\") {\n events[index][1];\n break;\n }\n }\n events[index + 1][1].type = \"data\";\n events[index + 3][1].type = \"gfmFootnoteCallLabelMarker\";\n const call = {\n type: \"gfmFootnoteCall\",\n start: Object.assign({}, events[index + 3][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n };\n const marker = {\n type: \"gfmFootnoteCallMarker\",\n start: Object.assign({}, events[index + 3][1].end),\n end: Object.assign({}, events[index + 3][1].end)\n };\n marker.end.column++;\n marker.end.offset++;\n marker.end._bufferIndex++;\n const string = {\n type: \"gfmFootnoteCallString\",\n start: Object.assign({}, marker.end),\n end: Object.assign({}, events[events.length - 1][1].start)\n };\n const chunk = {\n type: \"chunkString\",\n contentType: \"string\",\n start: Object.assign({}, string.start),\n end: Object.assign({}, string.end)\n };\n const replacement = [\n // Take the `labelImageMarker` (now `data`, the `!`)\n events[index + 1],\n events[index + 2],\n [\"enter\", call, context],\n // The `[`\n events[index + 3],\n events[index + 4],\n // The `^`.\n [\"enter\", marker, context],\n [\"exit\", marker, context],\n // Everything in between.\n [\"enter\", string, context],\n [\"enter\", chunk, context],\n [\"exit\", chunk, context],\n [\"exit\", string, context],\n // The ending (`]`, properly parsed and labelled).\n events[events.length - 2],\n events[events.length - 1],\n [\"exit\", call, context]\n ];\n events.splice(index, events.length - index + 1, ...replacement);\n return events;\n}\nfunction tokenizeGfmFootnoteCall(effects, ok2, nok) {\n const self = this;\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n let size = 0;\n let data;\n return start;\n function start(code2) {\n effects.enter(\"gfmFootnoteCall\");\n effects.enter(\"gfmFootnoteCallLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteCallLabelMarker\");\n return callStart;\n }\n function callStart(code2) {\n if (code2 !== 94) return nok(code2);\n effects.enter(\"gfmFootnoteCallMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteCallMarker\");\n effects.enter(\"gfmFootnoteCallString\");\n effects.enter(\"chunkString\").contentType = \"string\";\n return callData;\n }\n function callData(code2) {\n if (\n // Too long.\n size > 999 || // Closing brace with nothing.\n code2 === 93 && !data || // Space or tab is not supported by GFM for some reason.\n // `\\n` and `[` not being supported makes sense.\n code2 === null || code2 === 91 || markdownLineEndingOrSpace(code2)\n ) {\n return nok(code2);\n }\n if (code2 === 93) {\n effects.exit(\"chunkString\");\n const token = effects.exit(\"gfmFootnoteCallString\");\n if (!defined.includes(normalizeIdentifier(self.sliceSerialize(token)))) {\n return nok(code2);\n }\n effects.enter(\"gfmFootnoteCallLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteCallLabelMarker\");\n effects.exit(\"gfmFootnoteCall\");\n return ok2;\n }\n if (!markdownLineEndingOrSpace(code2)) {\n data = true;\n }\n size++;\n effects.consume(code2);\n return code2 === 92 ? callEscape : callData;\n }\n function callEscape(code2) {\n if (code2 === 91 || code2 === 92 || code2 === 93) {\n effects.consume(code2);\n size++;\n return callData;\n }\n return callData(code2);\n }\n}\nfunction tokenizeDefinitionStart(effects, ok2, nok) {\n const self = this;\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n let identifier;\n let size = 0;\n let data;\n return start;\n function start(code2) {\n effects.enter(\"gfmFootnoteDefinition\")._container = true;\n effects.enter(\"gfmFootnoteDefinitionLabel\");\n effects.enter(\"gfmFootnoteDefinitionLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteDefinitionLabelMarker\");\n return labelAtMarker;\n }\n function labelAtMarker(code2) {\n if (code2 === 94) {\n effects.enter(\"gfmFootnoteDefinitionMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteDefinitionMarker\");\n effects.enter(\"gfmFootnoteDefinitionLabelString\");\n effects.enter(\"chunkString\").contentType = \"string\";\n return labelInside;\n }\n return nok(code2);\n }\n function labelInside(code2) {\n if (\n // Too long.\n size > 999 || // Closing brace with nothing.\n code2 === 93 && !data || // Space or tab is not supported by GFM for some reason.\n // `\\n` and `[` not being supported makes sense.\n code2 === null || code2 === 91 || markdownLineEndingOrSpace(code2)\n ) {\n return nok(code2);\n }\n if (code2 === 93) {\n effects.exit(\"chunkString\");\n const token = effects.exit(\"gfmFootnoteDefinitionLabelString\");\n identifier = normalizeIdentifier(self.sliceSerialize(token));\n effects.enter(\"gfmFootnoteDefinitionLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteDefinitionLabelMarker\");\n effects.exit(\"gfmFootnoteDefinitionLabel\");\n return labelAfter;\n }\n if (!markdownLineEndingOrSpace(code2)) {\n data = true;\n }\n size++;\n effects.consume(code2);\n return code2 === 92 ? labelEscape : labelInside;\n }\n function labelEscape(code2) {\n if (code2 === 91 || code2 === 92 || code2 === 93) {\n effects.consume(code2);\n size++;\n return labelInside;\n }\n return labelInside(code2);\n }\n function labelAfter(code2) {\n if (code2 === 58) {\n effects.enter(\"definitionMarker\");\n effects.consume(code2);\n effects.exit(\"definitionMarker\");\n if (!defined.includes(identifier)) {\n defined.push(identifier);\n }\n return factorySpace(effects, whitespaceAfter, \"gfmFootnoteDefinitionWhitespace\");\n }\n return nok(code2);\n }\n function whitespaceAfter(code2) {\n return ok2(code2);\n }\n}\nfunction tokenizeDefinitionContinuation(effects, ok2, nok) {\n return effects.check(blankLine, ok2, effects.attempt(indent, ok2, nok));\n}\nfunction gfmFootnoteDefinitionEnd(effects) {\n effects.exit(\"gfmFootnoteDefinition\");\n}\nfunction tokenizeIndent(effects, ok2, nok) {\n const self = this;\n return factorySpace(effects, afterPrefix, \"gfmFootnoteDefinitionIndent\", 4 + 1);\n function afterPrefix(code2) {\n const tail = self.events[self.events.length - 1];\n return tail && tail[1].type === \"gfmFootnoteDefinitionIndent\" && tail[2].sliceSerialize(tail[1], true).length === 4 ? ok2(code2) : nok(code2);\n }\n}\nfunction gfmStrikethrough(options) {\n const options_ = options || {};\n let single = options_.singleTilde;\n const tokenizer = {\n name: \"strikethrough\",\n tokenize: tokenizeStrikethrough,\n resolveAll: resolveAllStrikethrough\n };\n if (single === null || single === void 0) {\n single = true;\n }\n return {\n text: {\n [126]: tokenizer\n },\n insideSpan: {\n null: [tokenizer]\n },\n attentionMarkers: {\n null: [126]\n }\n };\n function resolveAllStrikethrough(events, context) {\n let index = -1;\n while (++index < events.length) {\n if (events[index][0] === \"enter\" && events[index][1].type === \"strikethroughSequenceTemporary\" && events[index][1]._close) {\n let open = index;\n while (open--) {\n if (events[open][0] === \"exit\" && events[open][1].type === \"strikethroughSequenceTemporary\" && events[open][1]._open && // If the sizes are the same:\n events[index][1].end.offset - events[index][1].start.offset === events[open][1].end.offset - events[open][1].start.offset) {\n events[index][1].type = \"strikethroughSequence\";\n events[open][1].type = \"strikethroughSequence\";\n const strikethrough = {\n type: \"strikethrough\",\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[index][1].end)\n };\n const text2 = {\n type: \"strikethroughText\",\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n };\n const nextEvents = [[\"enter\", strikethrough, context], [\"enter\", events[open][1], context], [\"exit\", events[open][1], context], [\"enter\", text2, context]];\n const insideSpan = context.parser.constructs.insideSpan.null;\n if (insideSpan) {\n splice(nextEvents, nextEvents.length, 0, resolveAll(insideSpan, events.slice(open + 1, index), context));\n }\n splice(nextEvents, nextEvents.length, 0, [[\"exit\", text2, context], [\"enter\", events[index][1], context], [\"exit\", events[index][1], context], [\"exit\", strikethrough, context]]);\n splice(events, open - 1, index - open + 3, nextEvents);\n index = open + nextEvents.length - 2;\n break;\n }\n }\n }\n }\n index = -1;\n while (++index < events.length) {\n if (events[index][1].type === \"strikethroughSequenceTemporary\") {\n events[index][1].type = \"data\";\n }\n }\n return events;\n }\n function tokenizeStrikethrough(effects, ok2, nok) {\n const previous2 = this.previous;\n const events = this.events;\n let size = 0;\n return start;\n function start(code2) {\n if (previous2 === 126 && events[events.length - 1][1].type !== \"characterEscape\") {\n return nok(code2);\n }\n effects.enter(\"strikethroughSequenceTemporary\");\n return more(code2);\n }\n function more(code2) {\n const before = classifyCharacter(previous2);\n if (code2 === 126) {\n if (size > 1) return nok(code2);\n effects.consume(code2);\n size++;\n return more;\n }\n if (size < 2 && !single) return nok(code2);\n const token = effects.exit(\"strikethroughSequenceTemporary\");\n const after = classifyCharacter(code2);\n token._open = !after || after === 2 && Boolean(before);\n token._close = !before || before === 2 && Boolean(after);\n return ok2(code2);\n }\n }\n}\nclass EditMap {\n /**\n * Create a new edit map.\n */\n constructor() {\n this.map = [];\n }\n /**\n * Create an edit: a remove and/or add at a certain place.\n *\n * @param {number} index\n * @param {number} remove\n * @param {Array<Event>} add\n * @returns {undefined}\n */\n add(index, remove, add) {\n addImplementation(this, index, remove, add);\n }\n // To do: add this when moving to `micromark`.\n // /**\n // * Create an edit: but insert `add` before existing additions.\n // *\n // * @param {number} index\n // * @param {number} remove\n // * @param {Array<Event>} add\n // * @returns {undefined}\n // */\n // addBefore(index, remove, add) {\n // addImplementation(this, index, remove, add, true)\n // }\n /**\n * Done, change the events.\n *\n * @param {Array<Event>} events\n * @returns {undefined}\n */\n consume(events) {\n this.map.sort(function(a, b) {\n return a[0] - b[0];\n });\n if (this.map.length === 0) {\n return;\n }\n let index = this.map.length;\n const vecs = [];\n while (index > 0) {\n index -= 1;\n vecs.push(events.slice(this.map[index][0] + this.map[index][1]), this.map[index][2]);\n events.length = this.map[index][0];\n }\n vecs.push(events.slice());\n events.length = 0;\n let slice = vecs.pop();\n while (slice) {\n for (const element of slice) {\n events.push(element);\n }\n slice = vecs.pop();\n }\n this.map.length = 0;\n }\n}\nfunction addImplementation(editMap, at, remove, add) {\n let index = 0;\n if (remove === 0 && add.length === 0) {\n return;\n }\n while (index < editMap.map.length) {\n if (editMap.map[index][0] === at) {\n editMap.map[index][1] += remove;\n editMap.map[index][2].push(...add);\n return;\n }\n index += 1;\n }\n editMap.map.push([at, remove, add]);\n}\nfunction gfmTableAlign(events, index) {\n let inDelimiterRow = false;\n const align = [];\n while (index < events.length) {\n const event = events[index];\n if (inDelimiterRow) {\n if (event[0] === \"enter\") {\n if (event[1].type === \"tableContent\") {\n align.push(events[index + 1][1].type === \"tableDelimiterMarker\" ? \"left\" : \"none\");\n }\n } else if (event[1].type === \"tableContent\") {\n if (events[index - 1][1].type === \"tableDelimiterMarker\") {\n const alignIndex = align.length - 1;\n align[alignIndex] = align[alignIndex] === \"left\" ? \"center\" : \"right\";\n }\n } else if (event[1].type === \"tableDelimiterRow\") {\n break;\n }\n } else if (event[0] === \"enter\" && event[1].type === \"tableDelimiterRow\") {\n inDelimiterRow = true;\n }\n index += 1;\n }\n return align;\n}\nfunction gfmTable() {\n return {\n flow: {\n null: {\n name: \"table\",\n tokenize: tokenizeTable,\n resolveAll: resolveTable\n }\n }\n };\n}\nfunction tokenizeTable(effects, ok2, nok) {\n const self = this;\n let size = 0;\n let sizeB = 0;\n let seen;\n return start;\n function start(code2) {\n let index = self.events.length - 1;\n while (index > -1) {\n const type = self.events[index][1].type;\n if (type === \"lineEnding\" || // Note: markdown-rs uses `whitespace` instead of `linePrefix`\n type === \"linePrefix\") index--;\n else break;\n }\n const tail = index > -1 ? self.events[index][1].type : null;\n const next = tail === \"tableHead\" || tail === \"tableRow\" ? bodyRowStart : headRowBefore;\n if (next === bodyRowStart && self.parser.lazy[self.now().line]) {\n return nok(code2);\n }\n return next(code2);\n }\n function headRowBefore(code2) {\n effects.enter(\"tableHead\");\n effects.enter(\"tableRow\");\n return headRowStart(code2);\n }\n function headRowStart(code2) {\n if (code2 === 124) {\n return headRowBreak(code2);\n }\n seen = true;\n sizeB += 1;\n return headRowBreak(code2);\n }\n function headRowBreak(code2) {\n if (code2 === null) {\n return nok(code2);\n }\n if (markdownLineEnding(code2)) {\n if (sizeB > 1) {\n sizeB = 0;\n self.interrupt = true;\n effects.exit(\"tableRow\");\n effects.enter(\"lineEnding\");\n effects.consume(code2);\n effects.exit(\"lineEnding\");\n return headDelimiterStart;\n }\n return nok(code2);\n }\n if (markdownSpace(code2)) {\n return factorySpace(effects, headRowBreak, \"whitespace\")(code2);\n }\n sizeB += 1;\n if (seen) {\n seen = false;\n size += 1;\n }\n if (code2 === 124) {\n effects.enter(\"tableCellDivider\");\n effects.consume(code2);\n effects.exit(\"tableCellDivider\");\n seen = true;\n return headRowBreak;\n }\n effects.enter(\"data\");\n return headRowData(code2);\n }\n function headRowData(code2) {\n if (code2 === null || code2 === 124 || markdownLineEndingOrSpace(code2)) {\n effects.exit(\"data\");\n return headRowBreak(code2);\n }\n effects.consume(code2);\n return code2 === 92 ? headRowEscape : headRowData;\n }\n function headRowEscape(code2) {\n if (code2 === 92 || code2 === 124) {\n effects.consume(code2);\n return headRowData;\n }\n return headRowData(code2);\n }\n function headDelimiterStart(code2) {\n self.interrupt = false;\n if (self.parser.lazy[self.now().line]) {\n return nok(code2);\n }\n effects.enter(\"tableDelimiterRow\");\n seen = false;\n if (markdownSpace(code2)) {\n return factorySpace(effects, headDelimiterBefore, \"linePrefix\", self.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 4)(code2);\n }\n return headDelimiterBefore(code2);\n }\n function headDelimiterBefore(code2) {\n if (code2 === 45 || code2 === 58) {\n return headDelimiterValueBefore(code2);\n }\n if (code2 === 124) {\n seen = true;\n effects.enter(\"tableCellDivider\");\n effects.consume(code2);\n effects.exit(\"tableCellDivider\");\n return headDelimiterCellBefore;\n }\n return headDelimiterNok(code2);\n }\n function headDelimiterCellBefore(code2) {\n if (markdownSpace(code2)) {\n return factorySpace(effects, headDelimiterValueBefore, \"whitespace\")(code2);\n }\n return headDelimiterValueBefore(code2);\n }\n function headDelimiterValueBefore(code2) {\n if (code2 === 58) {\n sizeB += 1;\n seen = true;\n effects.enter(\"tableDelimiterMarker\");\n effects.consume(code2);\n effects.exit(\"tableDelimiterMarker\");\n return headDelimiterLeftAlignmentAfter;\n }\n if (code2 === 45) {\n sizeB += 1;\n return headDelimiterLeftAlignmentAfter(code2);\n }\n if (code2 === null || markdownLineEnding(code2)) {\n return headDelimiterCellAfter(code2);\n }\n return headDelimiterNok(code2);\n }\n function headDelimiterLeftAlignmentAfter(code2) {\n if (code2 === 45) {\n effects.enter(\"tableDelimiterFiller\");\n return headDelimiterFiller(code2);\n }\n return headDelimiterNok(code2);\n }\n function headDelimiterFiller(code2) {\n if (code2 === 45) {\n effects.consume(code2);\n return headDelimiterFiller;\n }\n if (code2 === 58) {\n seen = true;\n effects.exit(\"tableDelimiterFiller\");\n effects.enter(\"tableDelimiterMarker\");\n effects.consume(code2);\n effects.exit(\"tableDelimiterMarker\");\n return headDelimiterRightAlignmentAfter;\n }\n effects.exit(\"tableDelimiterFiller\");\n return headDelimiterRightAlignmentAfter(code2);\n }\n function headDelimiterRightAlignmentAfter(code2) {\n if (markdownSpace(code2)) {\n return factorySpace(effects, headDelimiterCellAfter, \"whitespace\")(code2);\n }\n return headDelimiterCellAfter(code2);\n }\n function headDelimiterCellAfter(code2) {\n if (code2 === 124) {\n return headDelimiterBefore(code2);\n }\n if (code2 === null || markdownLineEnding(code2)) {\n if (!seen || size !== sizeB) {\n return headDelimiterNok(code2);\n }\n effects.exit(\"tableDelimiterRow\");\n effects.exit(\"tableHead\");\n return ok2(code2);\n }\n return headDelimiterNok(code2);\n }\n function headDelimiterNok(code2) {\n return nok(code2);\n }\n function bodyRowStart(code2) {\n effects.enter(\"tableRow\");\n return bodyRowBreak(code2);\n }\n function bodyRowBreak(code2) {\n if (code2 === 124) {\n effects.enter(\"tableCellDivider\");\n effects.consume(code2);\n effects.exit(\"tableCellDivider\");\n return bodyRowBreak;\n }\n if (code2 === null || markdownLineEnding(code2)) {\n effects.exit(\"tableRow\");\n return ok2(code2);\n }\n if (markdownSpace(code2)) {\n return factorySpace(effects, bodyRowBreak, \"whitespace\")(code2);\n }\n effects.enter(\"data\");\n return bodyRowData(code2);\n }\n function bodyRowData(code2) {\n if (code2 === null || code2 === 124 || markdownLineEndingOrSpace(code2)) {\n effects.exit(\"data\");\n return bodyRowBreak(code2);\n }\n effects.consume(code2);\n return code2 === 92 ? bodyRowEscape : bodyRowData;\n }\n function bodyRowEscape(code2) {\n if (code2 === 92 || code2 === 124) {\n effects.consume(code2);\n return bodyRowData;\n }\n return bodyRowData(code2);\n }\n}\nfunction resolveTable(events, context) {\n let index = -1;\n let inFirstCellAwaitingPipe = true;\n let rowKind = 0;\n let lastCell = [0, 0, 0, 0];\n let cell = [0, 0, 0, 0];\n let afterHeadAwaitingFirstBodyRow = false;\n let lastTableEnd = 0;\n let currentTable;\n let currentBody;\n let currentCell;\n const map2 = new EditMap();\n while (++index < events.length) {\n const event = events[index];\n const token = event[1];\n if (event[0] === \"enter\") {\n if (token.type === \"tableHead\") {\n afterHeadAwaitingFirstBodyRow = false;\n if (lastTableEnd !== 0) {\n flushTableEnd(map2, context, lastTableEnd, currentTable, currentBody);\n currentBody = void 0;\n lastTableEnd = 0;\n }\n currentTable = {\n type: \"table\",\n start: Object.assign({}, token.start),\n // Note: correct end is set later.\n end: Object.assign({}, token.end)\n };\n map2.add(index, 0, [[\"enter\", currentTable, context]]);\n } else if (token.type === \"tableRow\" || token.type === \"tableDelimiterRow\") {\n inFirstCellAwaitingPipe = true;\n currentCell = void 0;\n lastCell = [0, 0, 0, 0];\n cell = [0, index + 1, 0, 0];\n if (afterHeadAwaitingFirstBodyRow) {\n afterHeadAwaitingFirstBodyRow = false;\n currentBody = {\n type: \"tableBody\",\n start: Object.assign({}, token.start),\n // Note: correct end is set later.\n end: Object.assign({}, token.end)\n };\n map2.add(index, 0, [[\"enter\", currentBody, context]]);\n }\n rowKind = token.type === \"tableDelimiterRow\" ? 2 : currentBody ? 3 : 1;\n } else if (rowKind && (token.type === \"data\" || token.type === \"tableDelimiterMarker\" || token.type === \"tableDelimiterFiller\")) {\n inFirstCellAwaitingPipe = false;\n if (cell[2] === 0) {\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(map2, context, lastCell, rowKind, void 0, currentCell);\n lastCell = [0, 0, 0, 0];\n }\n cell[2] = index;\n }\n } else if (token.type === \"tableCellDivider\") {\n if (inFirstCellAwaitingPipe) {\n inFirstCellAwaitingPipe = false;\n } else {\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(map2, context, lastCell, rowKind, void 0, currentCell);\n }\n lastCell = cell;\n cell = [lastCell[1], index, 0, 0];\n }\n }\n } else if (token.type === \"tableHead\") {\n afterHeadAwaitingFirstBodyRow = true;\n lastTableEnd = index;\n } else if (token.type === \"tableRow\" || token.type === \"tableDelimiterRow\") {\n lastTableEnd = index;\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(map2, context, lastCell, rowKind, index, currentCell);\n } else if (cell[1] !== 0) {\n currentCell = flushCell(map2, context, cell, rowKind, index, currentCell);\n }\n rowKind = 0;\n } else if (rowKind && (token.type === \"data\" || token.type === \"tableDelimiterMarker\" || token.type === \"tableDelimiterFiller\")) {\n cell[3] = index;\n }\n }\n if (lastTableEnd !== 0) {\n flushTableEnd(map2, context, lastTableEnd, currentTable, currentBody);\n }\n map2.consume(context.events);\n index = -1;\n while (++index < context.events.length) {\n const event = context.events[index];\n if (event[0] === \"enter\" && event[1].type === \"table\") {\n event[1]._align = gfmTableAlign(context.events, index);\n }\n }\n return events;\n}\nfunction flushCell(map2, context, range, rowKind, rowEnd, previousCell) {\n const groupName = rowKind === 1 ? \"tableHeader\" : rowKind === 2 ? \"tableDelimiter\" : \"tableData\";\n const valueName = \"tableContent\";\n if (range[0] !== 0) {\n previousCell.end = Object.assign({}, getPoint(context.events, range[0]));\n map2.add(range[0], 0, [[\"exit\", previousCell, context]]);\n }\n const now = getPoint(context.events, range[1]);\n previousCell = {\n type: groupName,\n start: Object.assign({}, now),\n // Note: correct end is set later.\n end: Object.assign({}, now)\n };\n map2.add(range[1], 0, [[\"enter\", previousCell, context]]);\n if (range[2] !== 0) {\n const relatedStart = getPoint(context.events, range[2]);\n const relatedEnd = getPoint(context.events, range[3]);\n const valueToken = {\n type: valueName,\n start: Object.assign({}, relatedStart),\n end: Object.assign({}, relatedEnd)\n };\n map2.add(range[2], 0, [[\"enter\", valueToken, context]]);\n if (rowKind !== 2) {\n const start = context.events[range[2]];\n const end = context.events[range[3]];\n start[1].end = Object.assign({}, end[1].end);\n start[1].type = \"chunkText\";\n start[1].contentType = \"text\";\n if (range[3] > range[2] + 1) {\n const a = range[2] + 1;\n const b = range[3] - range[2] - 1;\n map2.add(a, b, []);\n }\n }\n map2.add(range[3] + 1, 0, [[\"exit\", valueToken, context]]);\n }\n if (rowEnd !== void 0) {\n previousCell.end = Object.assign({}, getPoint(context.events, rowEnd));\n map2.add(rowEnd, 0, [[\"exit\", previousCell, context]]);\n previousCell = void 0;\n }\n return previousCell;\n}\nfunction flushTableEnd(map2, context, index, table, tableBody) {\n const exits = [];\n const related = getPoint(context.events, index);\n if (tableBody) {\n tableBody.end = Object.assign({}, related);\n exits.push([\"exit\", tableBody, context]);\n }\n table.end = Object.assign({}, related);\n exits.push([\"exit\", table, context]);\n map2.add(index + 1, 0, exits);\n}\nfunction getPoint(events, index) {\n const event = events[index];\n const side = event[0] === \"enter\" ? \"start\" : \"end\";\n return event[1][side];\n}\nconst tasklistCheck = {\n name: \"tasklistCheck\",\n tokenize: tokenizeTasklistCheck\n};\nfunction gfmTaskListItem() {\n return {\n text: {\n [91]: tasklistCheck\n }\n };\n}\nfunction tokenizeTasklistCheck(effects, ok2, nok) {\n const self = this;\n return open;\n function open(code2) {\n if (\n // Exit if there’s stuff before.\n self.previous !== null || // Exit if not in the first content that is the first child of a list\n // item.\n !self._gfmTasklistFirstContentOfListItem\n ) {\n return nok(code2);\n }\n effects.enter(\"taskListCheck\");\n effects.enter(\"taskListCheckMarker\");\n effects.consume(code2);\n effects.exit(\"taskListCheckMarker\");\n return inside;\n }\n function inside(code2) {\n if (markdownLineEndingOrSpace(code2)) {\n effects.enter(\"taskListCheckValueUnchecked\");\n effects.consume(code2);\n effects.exit(\"taskListCheckValueUnchecked\");\n return close;\n }\n if (code2 === 88 || code2 === 120) {\n effects.enter(\"taskListCheckValueChecked\");\n effects.consume(code2);\n effects.exit(\"taskListCheckValueChecked\");\n return close;\n }\n return nok(code2);\n }\n function close(code2) {\n if (code2 === 93) {\n effects.enter(\"taskListCheckMarker\");\n effects.consume(code2);\n effects.exit(\"taskListCheckMarker\");\n effects.exit(\"taskListCheck\");\n return after;\n }\n return nok(code2);\n }\n function after(code2) {\n if (markdownLineEnding(code2)) {\n return ok2(code2);\n }\n if (markdownSpace(code2)) {\n return effects.check({\n tokenize: spaceThenNonSpace\n }, ok2, nok)(code2);\n }\n return nok(code2);\n }\n}\nfunction spaceThenNonSpace(effects, ok2, nok) {\n return factorySpace(effects, after, \"whitespace\");\n function after(code2) {\n return code2 === null ? nok(code2) : ok2(code2);\n }\n}\nfunction gfm(options) {\n return combineExtensions([\n gfmAutolinkLiteral(),\n gfmFootnote(),\n gfmStrikethrough(options),\n gfmTable(),\n gfmTaskListItem()\n ]);\n}\nconst emptyOptions = {};\nfunction remarkGfm(options) {\n const self = (\n /** @type {Processor<Root>} */\n this\n );\n const settings = options || emptyOptions;\n const data = self.data();\n const micromarkExtensions = data.micromarkExtensions || (data.micromarkExtensions = []);\n const fromMarkdownExtensions = data.fromMarkdownExtensions || (data.fromMarkdownExtensions = []);\n const toMarkdownExtensions = data.toMarkdownExtensions || (data.toMarkdownExtensions = []);\n micromarkExtensions.push(gfm(settings));\n fromMarkdownExtensions.push(gfmFromMarkdown());\n toMarkdownExtensions.push(gfmToMarkdown(settings));\n}\nconst _sfc_main$1 = /* @__PURE__ */ defineComponent({\n __name: \"NcRichTextCopyButton\",\n props: {\n contentId: {}\n },\n setup(__props) {\n const { copy, icon, altText } = useCopy(() => document.getElementById(__props.contentId).textContent);\n return (_ctx, _cache) => {\n return openBlock(), createBlock(NcButton, {\n variant: \"tertiary\",\n size: \"small\",\n \"aria-label\": unref(altText),\n title: unref(altText),\n onClick: unref(copy)\n }, {\n icon: withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n path: unref(icon),\n inline: \"\"\n }, null, 8, [\"path\"])\n ]),\n _: 1\n }, 8, [\"aria-label\", \"title\", \"onClick\"]);\n };\n }\n});\n/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction isTextNode$1(node2) {\n return node2.type === \"text\";\n}\nconst transformPlaceholders = function(ast) {\n visit(ast, isTextNode$1, visitor);\n function visitor(node2, index, parent) {\n const placeholders = node2.value.split(/(\\{[a-z\\-_.0-9]+\\})/ig).map((entry) => {\n const matches = entry.match(/^\\{([a-z\\-_.0-9]+)\\}$/i);\n if (!matches) {\n return u(\"text\", entry);\n }\n const [, component] = matches;\n return u(\"element\", {\n tagName: `#${component}`,\n children: []\n });\n });\n parent.children.splice(index, 1, ...placeholders);\n }\n};\nconst remarkPlaceholder = () => transformPlaceholders;\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction isTextNode(node2) {\n return [\"text\", \"code\", \"inlineCode\"].includes(node2.type);\n}\nconst remarkUnescape = function() {\n return function(tree) {\n visit(tree, isTextNode, (node2, index, parent) => {\n parent.children.splice(index, 1, {\n ...node2,\n value: node2.value.replace(/</gmi, \"<\").replace(/>/gmi, \">\")\n });\n return [SKIP$1, index + 1];\n });\n };\n};\nconst LINK_PROTOCOLS = [\"http\", \"https\", \"mailto\", \"tel\"];\nconst rehypeHighlight = ref(null);\nasync function importRehypeHighlightLibrary() {\n const module = await import(\"rehype-highlight\");\n rehypeHighlight.value = module.default;\n}\nconst _sfc_main = {\n name: \"NcRichText\",\n components: {\n NcReferenceList\n },\n /* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n props: {\n /**\n * The main text\n */\n text: {\n type: String,\n default: \"\"\n },\n arguments: {\n type: Object,\n default: () => {\n return {};\n }\n },\n referenceLimit: {\n type: Number,\n default: 0\n },\n referenceInteractive: {\n type: Boolean,\n default: true\n },\n referenceInteractiveOptIn: {\n type: Boolean,\n default: false\n },\n /** Provide data upfront to avoid extra http request */\n references: {\n type: Array,\n default: null\n },\n /** Provide basic Markdown syntax */\n useMarkdown: {\n type: Boolean,\n default: false\n },\n /** Provide GitHub Flavored Markdown syntax */\n useExtendedMarkdown: {\n type: Boolean,\n default: false\n },\n /** Provide event from rendered markdown inputs */\n interactive: {\n type: Boolean,\n default: false\n },\n /**\n * Automatically convert link-like text to markdown links\n */\n autolink: {\n type: Boolean,\n default: true\n }\n },\n emits: [\n \"interactTodo\"\n ],\n data() {\n return {\n parentId: createElementId()\n };\n },\n methods: {\n renderPlaintext() {\n const placeholders = this.text.split(/(\\{[a-z\\-_.0-9]+\\})/ig).map((entry) => {\n const matches = entry.match(/^\\{([a-z\\-_.0-9]+)\\}$/i);\n if (!matches) {\n return this.prepareTextNode(entry);\n }\n const argumentId = matches[1];\n const argument = this.arguments[argumentId];\n if (typeof argument === \"object\") {\n const { component, props } = argument;\n return h(typeof component === \"string\" ? resolveComponent(component) : component, {\n ...props,\n class: \"rich-text--component\"\n });\n }\n if (argument) {\n return h(\"span\", { class: \"rich-text--fallback\" }, argument);\n }\n return entry;\n });\n return h(\"div\", { class: \"rich-text--wrapper\" }, [\n h(\"div\", {}, placeholders.flat()),\n this.referenceLimit > 0 ? h(\"div\", { class: \"rich-text--reference-widget\" }, [\n h(NcReferenceList, {\n text: this.text,\n referenceData: this.references,\n interactive: this.referenceInteractive,\n interactiveOptIn: this.referenceInteractiveOptIn\n })\n ]) : null\n ]);\n },\n renderMarkdown() {\n const renderedMarkdown = unified().use(remarkParse).use(remarkAutolink, {\n autolink: this.autolink,\n useMarkdown: this.useMarkdown,\n useExtendedMarkdown: this.useExtendedMarkdown\n }).use(remarkUnescape).use(this.useExtendedMarkdown ? remarkGfm : void 0).use(breaks).use(remarkUnlinkProtocols, { except: LINK_PROTOCOLS }).use(remark2rehype, {\n handlers: {\n component(toHast, node2) {\n return toHast(node2, node2.component, { value: node2.value });\n }\n }\n }).use(this.useExtendedMarkdown ? rehypeHighlight.value : void 0).use(remarkPlaceholder).use(rehypeExternalLinks, {\n target: \"_blank\",\n rel: [\"noopener noreferrer\"]\n }).use(rehype2react, {\n Fragment,\n jsx: this.createElement,\n jsxs: this.createElement,\n elementAttributeNameCase: \"html\",\n prefix: false\n }).processSync(this.text.replace(/<[^>]+>/g, (match) => match.replace(/</g, \"<\")).replace(/>/gmi, \">\")).result;\n return h(\"div\", { class: \"rich-text--wrapper rich-text--wrapper-markdown\" }, [\n renderedMarkdown,\n this.referenceLimit > 0 ? h(\"div\", { class: \"rich-text--reference-widget\" }, [\n h(NcReferenceList, {\n text: this.text,\n referenceData: this.references,\n interactive: this.referenceInteractive,\n interactiveOptIn: this.referenceInteractiveOptIn\n })\n ]) : null\n ]);\n },\n /**\n * Render plain text nodes\n *\n * @param {string} text - Content of the node\n */\n prepareTextNode(text2) {\n if (this.autolink) {\n text2 = parseUrl(text2);\n }\n if (Array.isArray(text2)) {\n return text2.map((entry) => {\n if (typeof entry === \"string\") {\n return entry;\n }\n const { component, props } = entry;\n const componentClass = component.name === \"NcLink\" ? void 0 : \"rich-text--component\";\n return h(component, {\n ...props,\n class: componentClass\n });\n });\n }\n return text2;\n },\n createElement(type, props, key) {\n if (key) {\n props.key = key;\n }\n const children = props.children ?? [];\n delete props.children;\n if (!String(type).startsWith(\"#\")) {\n if ([\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"].includes(String(type))) {\n type = `h${Math.min(+String(type)[1] + 3, 6)}`;\n }\n let nestedNode = null;\n if (this.useExtendedMarkdown) {\n if (String(type) === \"code\" && !rehypeHighlight.value && props?.class?.includes(\"language\")) {\n importRehypeHighlightLibrary();\n }\n if (String(type) === \"pre\" && children && String(children.type) === \"code\") {\n const id = this.parentId + \"-code-block-\" + createElementId();\n return h(\"p\", { class: \"rich-text__code-block\" }, [\n h(type, { ...props, id }, children),\n h(_sfc_main$1, { class: \"rich-text__code-block-button\", contentId: id })\n ]);\n }\n if (String(type) === \"li\" && Array.isArray(children) && children.length !== 0 && children[0].type === \"input\" && children[0].props.type === \"checkbox\") {\n const [inputNode, , ...labelParts] = children;\n const nestedNodeIndex = labelParts.findIndex((child) => [\"ul\", \"ol\", \"li\", \"blockquote\", \"pre\"].includes(child.type));\n if (nestedNodeIndex !== -1) {\n nestedNode = labelParts[nestedNodeIndex];\n labelParts.splice(nestedNodeIndex);\n }\n const id = this.parentId + \"-markdown-input-\" + createElementId();\n const propsToForward = { ...inputNode.props };\n delete propsToForward.checked;\n const inputComponent = h(NcCheckboxRadioSwitch, {\n ...propsToForward,\n modelValue: inputNode.props.checked,\n id,\n disabled: !this.interactive,\n \"onUpdate:modelValue\": () => {\n this.$emit(\"interactTodo\", id);\n }\n }, { default: () => labelParts });\n return h(type, props, [inputComponent, nestedNode]);\n }\n }\n if (String(type) === \"a\") {\n const route = getRoute(this.$router, props.href);\n if (route) {\n delete props.href;\n delete props.target;\n return h(RouterLink, {\n ...props,\n to: route\n }, { default: () => children });\n }\n }\n return h(type, props, children);\n }\n const placeholder = this.arguments[type.slice(1)];\n if (!placeholder) {\n return h(\"span\", { ...props, class: \"rich-text--fallback\" }, [`{${type.slice(1)}}`]);\n }\n if (!placeholder.component) {\n return h(\"span\", { ...props }, [placeholder]);\n }\n return h(\n typeof placeholder.component === \"string\" ? resolveComponent(placeholder.component) : placeholder.component,\n {\n ...props,\n ...placeholder.props,\n class: \"rich-text--component\"\n },\n { default: () => children }\n );\n }\n },\n render() {\n return this.useMarkdown || this.useExtendedMarkdown ? this.renderMarkdown() : this.renderPlaintext();\n }\n};\nconst NcRichText = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-a47e4ba7\"]]);\nexport {\n NcRichText as N,\n NcReferenceList as a\n};\n//# sourceMappingURL=NcRichText-CBMtJzE_.mjs.map\n"],"file":"NcRichText-CBMtJzE_-bvZFA37H.chunk.mjs"} \ No newline at end of file diff --git a/dist/NcSelect-Czzsi3P_-DLFUGW7z.chunk.mjs b/dist/NcSelect-Czzsi3P_-BKaYvmLF.chunk.mjs similarity index 50% rename from dist/NcSelect-Czzsi3P_-DLFUGW7z.chunk.mjs rename to dist/NcSelect-Czzsi3P_-BKaYvmLF.chunk.mjs index f78423c5212ca..3882572c1a785 100644 --- a/dist/NcSelect-Czzsi3P_-DLFUGW7z.chunk.mjs +++ b/dist/NcSelect-Czzsi3P_-BKaYvmLF.chunk.mjs @@ -1,4 +1,4 @@ -import{v as V,x as Te,y as ze,z as He,A as We,B as Ke,C as G,D as M,E as ee,F as qe,G as he}from"./index-JpgrUA2Z-BFiKKJ1W.chunk.mjs";import{j as f,o as u,k as S,l as P,t as z,z as E,a8 as Ue,m as b,e as q,a9 as w,aa as x,F as ye,C as ue,g as te,c as I,N as re,a4 as Fe,E as ae,G as be,w as F,H as we,n as ve,ab as Je,b as Xe,a7 as Z,f as K,y as Ye}from"./runtime-dom.esm-bundler-BrYCUcZF.chunk.mjs";import{_ as oe,r as Ge,l as Qe,t as Q,c as Oe}from"./createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs";import{N as Ze}from"./mdi-D55n0uzy.chunk.mjs";import{i as et}from"./NcNoteCard-CVhtNL04-hwuc093N.chunk.mjs";const tt={name:"ChevronDownIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ot=["aria-hidden","aria-label"],nt=["fill","width","height"],it={d:"M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"},st={key:0};function lt(e,t,o,n,s,i){return u(),f("span",E(e.$attrs,{"aria-hidden":o.title?null:"true","aria-label":o.title,class:"material-design-icon chevron-down-icon",role:"img",onClick:t[0]||(t[0]=r=>e.$emit("click",r))}),[(u(),f("svg",{fill:o.fillColor,class:"material-design-icon__svg",width:o.size,height:o.size,viewBox:"0 0 24 24"},[S("path",it,[o.title?(u(),f("title",st,z(o.title),1)):P("",!0)])],8,nt))],16,ot)}const rt=oe(tt,[["render",lt]]),at={name:"CloseIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ct=["aria-hidden","aria-label"],ht=["fill","width","height"],ut={d:"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z"},dt={key:0};function pt(e,t,o,n,s,i){return u(),f("span",E(e.$attrs,{"aria-hidden":o.title?null:"true","aria-label":o.title,class:"material-design-icon close-icon",role:"img",onClick:t[0]||(t[0]=r=>e.$emit("click",r))}),[(u(),f("svg",{fill:o.fillColor,class:"material-design-icon__svg",width:o.size,height:o.size,viewBox:"0 0 24 24"},[S("path",ut,[o.title?(u(),f("title",dt,z(o.title),1)):P("",!0)])],8,ht))],16,ct)}const ft=oe(at,[["render",pt]]);function ne(){return typeof window<"u"}function W(e){return ke(e)?(e.nodeName||"").toLowerCase():"#document"}function v(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function T(e){var t;return(t=(ke(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function ke(e){return ne()?e instanceof Node||e instanceof v(e).Node:!1}function _(e){return ne()?e instanceof Element||e instanceof v(e).Element:!1}function B(e){return ne()?e instanceof HTMLElement||e instanceof v(e).HTMLElement:!1}function xe(e){return!ne()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof v(e).ShadowRoot}const gt=new Set(["inline","contents"]);function J(e){const{overflow:t,overflowX:o,overflowY:n,display:s}=$(e);return/auto|scroll|overlay|hidden|clip/.test(t+n+o)&&!gt.has(s)}const mt=new Set(["table","td","th"]);function yt(e){return mt.has(W(e))}const bt=[":popover-open",":modal"];function ie(e){return bt.some(t=>{try{return e.matches(t)}catch{return!1}})}const wt=["transform","translate","scale","rotate","perspective"],vt=["transform","translate","scale","rotate","perspective","filter"],Ot=["paint","layout","strict","content"];function pe(e){const t=fe(),o=_(e)?$(e):e;return wt.some(n=>o[n]?o[n]!=="none":!1)||(o.containerType?o.containerType!=="normal":!1)||!t&&(o.backdropFilter?o.backdropFilter!=="none":!1)||!t&&(o.filter?o.filter!=="none":!1)||vt.some(n=>(o.willChange||"").includes(n))||Ot.some(n=>(o.contain||"").includes(n))}function xt(e){let t=k(e);for(;B(t)&&!H(t);){if(pe(t))return t;if(ie(t))return null;t=k(t)}return null}function fe(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const St=new Set(["html","body","#document"]);function H(e){return St.has(W(e))}function $(e){return v(e).getComputedStyle(e)}function se(e){return _(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function k(e){if(W(e)==="html")return e;const t=e.assignedSlot||e.parentNode||xe(e)&&e.host||T(e);return xe(t)?t.host:t}function De(e){const t=k(e);return H(t)?e.ownerDocument?e.ownerDocument.body:e.body:B(t)&&J(t)?t:De(t)}function U(e,t,o){var n;t===void 0&&(t=[]),o===void 0&&(o=!0);const s=De(e),i=s===((n=e.ownerDocument)==null?void 0:n.body),r=v(s);if(i){const l=de(r);return t.concat(r,r.visualViewport||[],J(s)?s:[],l&&o?U(l):[])}return t.concat(s,U(s,[],o))}function de(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function Ae(e){const t=$(e);let o=parseFloat(t.width)||0,n=parseFloat(t.height)||0;const s=B(e),i=s?e.offsetWidth:o,r=s?e.offsetHeight:n,l=ee(o)!==i||ee(n)!==r;return l&&(o=i,n=r),{width:o,height:n,$:l}}function ge(e){return _(e)?e:e.contextElement}function j(e){const t=ge(e);if(!B(t))return V(1);const o=t.getBoundingClientRect(),{width:n,height:s,$:i}=Ae(t);let r=(i?ee(o.width):o.width)/n,l=(i?ee(o.height):o.height)/s;return(!r||!Number.isFinite(r))&&(r=1),(!l||!Number.isFinite(l))&&(l=1),{x:r,y:l}}const Lt=V(0);function Pe(e){const t=v(e);return!fe()||!t.visualViewport?Lt:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function Ct(e,t,o){return t===void 0&&(t=!1),!o||t&&o!==v(e)?!1:t}function R(e,t,o,n){t===void 0&&(t=!1),o===void 0&&(o=!1);const s=e.getBoundingClientRect(),i=ge(e);let r=V(1);t&&(n?_(n)&&(r=j(n)):r=j(e));const l=Ct(i,o,n)?Pe(i):V(0);let a=(s.left+l.x)/r.x,h=(s.top+l.y)/r.y,c=s.width/r.x,d=s.height/r.y;if(i){const g=v(i),p=n&&_(n)?v(n):n;let O=g,y=de(O);for(;y&&n&&p!==O;){const L=j(y),m=y.getBoundingClientRect(),C=$(y),D=m.left+(y.clientLeft+parseFloat(C.paddingLeft))*L.x,X=m.top+(y.clientTop+parseFloat(C.paddingTop))*L.y;a*=L.x,h*=L.y,c*=L.x,d*=L.y,a+=D,h+=X,O=v(y),y=de(O)}}return Te({width:c,height:d,x:a,y:h})}function le(e,t){const o=se(e).scrollLeft;return t?t.left+o:R(T(e)).left+o}function Ee(e,t){const o=e.getBoundingClientRect(),n=o.left+t.scrollLeft-le(e,o),s=o.top+t.scrollTop;return{x:n,y:s}}function _t(e){let{elements:t,rect:o,offsetParent:n,strategy:s}=e;const i=s==="fixed",r=T(n),l=t?ie(t.floating):!1;if(n===r||l&&i)return o;let a={scrollLeft:0,scrollTop:0},h=V(1);const c=V(0),d=B(n);if((d||!d&&!i)&&((W(n)!=="body"||J(r))&&(a=se(n)),B(n))){const p=R(n);h=j(n),c.x=p.x+n.clientLeft,c.y=p.y+n.clientTop}const g=r&&!d&&!i?Ee(r,a):V(0);return{width:o.width*h.x,height:o.height*h.y,x:o.x*h.x-a.scrollLeft*h.x+c.x+g.x,y:o.y*h.y-a.scrollTop*h.y+c.y+g.y}}function $t(e){return Array.from(e.getClientRects())}function Vt(e){const t=T(e),o=se(e),n=e.ownerDocument.body,s=M(t.scrollWidth,t.clientWidth,n.scrollWidth,n.clientWidth),i=M(t.scrollHeight,t.clientHeight,n.scrollHeight,n.clientHeight);let r=-o.scrollLeft+le(e);const l=-o.scrollTop;return $(n).direction==="rtl"&&(r+=M(t.clientWidth,n.clientWidth)-s),{width:s,height:i,x:r,y:l}}const Se=25;function Bt(e,t){const o=v(e),n=T(e),s=o.visualViewport;let i=n.clientWidth,r=n.clientHeight,l=0,a=0;if(s){i=s.width,r=s.height;const c=fe();(!c||c&&t==="fixed")&&(l=s.offsetLeft,a=s.offsetTop)}const h=le(n);if(h<=0){const c=n.ownerDocument,d=c.body,g=getComputedStyle(d),p=c.compatMode==="CSS1Compat"&&parseFloat(g.marginLeft)+parseFloat(g.marginRight)||0,O=Math.abs(n.clientWidth-d.clientWidth-p);O<=Se&&(i-=O)}else h<=Se&&(i+=h);return{width:i,height:r,x:l,y:a}}const Tt=new Set(["absolute","fixed"]);function Ft(e,t){const o=R(e,!0,t==="fixed"),n=o.top+e.clientTop,s=o.left+e.clientLeft,i=B(e)?j(e):V(1),r=e.clientWidth*i.x,l=e.clientHeight*i.y,a=s*i.x,h=n*i.y;return{width:r,height:l,x:a,y:h}}function Le(e,t,o){let n;if(t==="viewport")n=Bt(e,o);else if(t==="document")n=Vt(T(e));else if(_(t))n=Ft(t,o);else{const s=Pe(e);n={x:t.x-s.x,y:t.y-s.y,width:t.width,height:t.height}}return Te(n)}function Re(e,t){const o=k(e);return o===t||!_(o)||H(o)?!1:$(o).position==="fixed"||Re(o,t)}function kt(e,t){const o=t.get(e);if(o)return o;let n=U(e,[],!1).filter(l=>_(l)&&W(l)!=="body"),s=null;const i=$(e).position==="fixed";let r=i?k(e):e;for(;_(r)&&!H(r);){const l=$(r),a=pe(r);!a&&l.position==="fixed"&&(s=null),(i?!a&&!s:!a&&l.position==="static"&&s&&Tt.has(s.position)||J(r)&&!a&&Re(e,r))?n=n.filter(h=>h!==r):s=l,r=k(r)}return t.set(e,n),n}function Dt(e){let{element:t,boundary:o,rootBoundary:n,strategy:s}=e;const i=[...o==="clippingAncestors"?ie(t)?[]:kt(t,this._c):[].concat(o),n],r=i[0],l=i.reduce((a,h)=>{const c=Le(t,h,s);return a.top=M(c.top,a.top),a.right=he(c.right,a.right),a.bottom=he(c.bottom,a.bottom),a.left=M(c.left,a.left),a},Le(t,r,s));return{width:l.right-l.left,height:l.bottom-l.top,x:l.left,y:l.top}}function At(e){const{width:t,height:o}=Ae(e);return{width:t,height:o}}function Pt(e,t,o){const n=B(t),s=T(t),i=o==="fixed",r=R(e,!0,i,t);let l={scrollLeft:0,scrollTop:0};const a=V(0);function h(){a.x=le(s)}if(n||!n&&!i)if((W(t)!=="body"||J(s))&&(l=se(t)),n){const p=R(t,!0,i,t);a.x=p.x+t.clientLeft,a.y=p.y+t.clientTop}else s&&h();i&&!n&&s&&h();const c=s&&!n&&!i?Ee(s,l):V(0),d=r.left+l.scrollLeft-a.x-c.x,g=r.top+l.scrollTop-a.y-c.y;return{x:d,y:g,width:r.width,height:r.height}}function ce(e){return $(e).position==="static"}function Ce(e,t){if(!B(e)||$(e).position==="fixed")return null;if(t)return t(e);let o=e.offsetParent;return T(e)===o&&(o=o.ownerDocument.body),o}function Ne(e,t){const o=v(e);if(ie(e))return o;if(!B(e)){let s=k(e);for(;s&&!H(s);){if(_(s)&&!ce(s))return s;s=k(s)}return o}let n=Ce(e,t);for(;n&&yt(n)&&ce(n);)n=Ce(n,t);return n&&H(n)&&ce(n)&&!pe(n)?o:n||xt(e)||o}const Et=async function(e){const t=this.getOffsetParent||Ne,o=this.getDimensions,n=await o(e.floating);return{reference:Pt(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:n.width,height:n.height}}};function Rt(e){return $(e).direction==="rtl"}const Nt={convertOffsetParentRelativeRectToViewportRelativeRect:_t,getDocumentElement:T,getClippingRect:Dt,getOffsetParent:Ne,getElementRects:Et,getClientRects:$t,getDimensions:At,getScale:j,isElement:_,isRTL:Rt};function Me(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function Mt(e,t){let o=null,n;const s=T(e);function i(){var l;clearTimeout(n),(l=o)==null||l.disconnect(),o=null}function r(l,a){l===void 0&&(l=!1),a===void 0&&(a=1),i();const h=e.getBoundingClientRect(),{left:c,top:d,width:g,height:p}=h;if(l||t(),!g||!p)return;const O=G(d),y=G(s.clientWidth-(c+g)),L=G(s.clientHeight-(d+p)),m=G(c),C={rootMargin:-O+"px "+-y+"px "+-L+"px "+-m+"px",threshold:M(0,he(1,a))||1};let D=!0;function X(je){const Y=je[0].intersectionRatio;if(Y!==a){if(!D)return r();Y?r(!1,Y):n=setTimeout(()=>{r(!1,1e-7)},1e3)}Y===1&&!Me(h,e.getBoundingClientRect())&&r(),D=!1}try{o=new IntersectionObserver(X,{...C,root:s.ownerDocument})}catch{o=new IntersectionObserver(X,C)}o.observe(e)}return r(!0),i}function It(e,t,o,n){n===void 0&&(n={});const{ancestorScroll:s=!0,ancestorResize:i=!0,elementResize:r=typeof ResizeObserver=="function",layoutShift:l=typeof IntersectionObserver=="function",animationFrame:a=!1}=n,h=ge(e),c=s||i?[...h?U(h):[],...U(t)]:[];c.forEach(m=>{s&&m.addEventListener("scroll",o,{passive:!0}),i&&m.addEventListener("resize",o)});const d=h&&l?Mt(h,o):null;let g=-1,p=null;r&&(p=new ResizeObserver(m=>{let[C]=m;C&&C.target===h&&p&&(p.unobserve(t),cancelAnimationFrame(g),g=requestAnimationFrame(()=>{var D;(D=p)==null||D.observe(t)})),o()}),h&&!a&&p.observe(h),p.observe(t));let O,y=a?R(e):null;a&&L();function L(){const m=R(e);y&&!Me(y,m)&&o(),y=m,O=requestAnimationFrame(L)}return o(),()=>{var m;c.forEach(C=>{s&&C.removeEventListener("scroll",o),i&&C.removeEventListener("resize",o)}),d?.(),(m=p)==null||m.disconnect(),p=null,a&&cancelAnimationFrame(O)}}const jt=ze,zt=We,Ht=He,Wt=Ke,Kt=(e,t,o)=>{const n=new Map,s={platform:Nt,...o},i={...s.platform,_c:n};return qe(e,t,{...s,platform:i})};var qt=Object.defineProperty,Ut=Object.defineProperties,Jt=Object.getOwnPropertyDescriptors,_e=Object.getOwnPropertySymbols,Xt=Object.prototype.hasOwnProperty,Yt=Object.prototype.propertyIsEnumerable,$e=(e,t,o)=>t in e?qt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,N=(e,t)=>{for(var o in t||(t={}))Xt.call(t,o)&&$e(e,o,t[o]);if(_e)for(var o of _e(t))Yt.call(t,o)&&$e(e,o,t[o]);return e},Ve=(e,t)=>Ut(e,Jt(t));const Gt={props:{autoscroll:{type:Boolean,default:!0}},watch:{typeAheadPointer(){this.autoscroll&&this.maybeAdjustScroll()},open(e){this.autoscroll&&e&&this.$nextTick(()=>this.maybeAdjustScroll())}},methods:{maybeAdjustScroll(){var e;const t=((e=this.$refs.dropdownMenu)==null?void 0:e.children[this.typeAheadPointer])||!1;if(t){const o=this.getDropdownViewport(),{top:n,bottom:s,height:i}=t.getBoundingClientRect();if(n<o.top)return this.$refs.dropdownMenu.scrollTop=t.offsetTop;if(s>o.bottom)return this.$refs.dropdownMenu.scrollTop=t.offsetTop-(o.height-i)}},getDropdownViewport(){return this.$refs.dropdownMenu?this.$refs.dropdownMenu.getBoundingClientRect():{height:0,top:0,bottom:0}}}},Qt={data(){return{typeAheadPointer:-1}},watch:{filteredOptions(){for(let e=0;e<this.filteredOptions.length;e++)if(this.selectable(this.filteredOptions[e])){this.typeAheadPointer=e;break}},open(e){e&&this.typeAheadToLastSelected()},selectedValue(){this.open&&this.typeAheadToLastSelected()}},methods:{typeAheadUp(){for(let e=this.typeAheadPointer-1;e>=0;e--)if(this.selectable(this.filteredOptions[e])){this.typeAheadPointer=e;break}},typeAheadDown(){for(let e=this.typeAheadPointer+1;e<this.filteredOptions.length;e++)if(this.selectable(this.filteredOptions[e])){this.typeAheadPointer=e;break}},typeAheadSelect(){const e=this.filteredOptions[this.typeAheadPointer];e&&this.selectable(e)&&this.select(e)},typeAheadToLastSelected(){this.typeAheadPointer=this.selectedValue.length!==0?this.filteredOptions.indexOf(this.selectedValue[this.selectedValue.length-1]):-1}}},Zt={props:{loading:{type:Boolean,default:!1}},data(){return{mutableLoading:!1}},watch:{search(){this.$emit("search",this.search,this.toggleLoading)},loading(e){this.mutableLoading=e}},methods:{toggleLoading(e=null){return e==null?this.mutableLoading=!this.mutableLoading:this.mutableLoading=e}}},me=(e,t)=>{const o=e.__vccOpts||e;for(const[n,s]of t)o[n]=s;return o},eo={},to={xmlns:"http://www.w3.org/2000/svg",width:"10",height:"10"},oo=S("path",{d:"M6.895455 5l2.842897-2.842898c.348864-.348863.348864-.914488 0-1.263636L9.106534.261648c-.348864-.348864-.914489-.348864-1.263636 0L5 3.104545 2.157102.261648c-.348863-.348864-.914488-.348864-1.263636 0L.261648.893466c-.348864.348864-.348864.914489 0 1.263636L3.104545 5 .261648 7.842898c-.348864.348863-.348864.914488 0 1.263636l.631818.631818c.348864.348864.914773.348864 1.263636 0L5 6.895455l2.842898 2.842897c.348863.348864.914772.348864 1.263636 0l.631818-.631818c.348864-.348864.348864-.914489 0-1.263636L6.895455 5z"},null,-1),no=[oo];function io(e,t){return u(),f("svg",to,no)}const so=me(eo,[["render",io]]),lo={},ro={xmlns:"http://www.w3.org/2000/svg",width:"14",height:"10"},ao=S("path",{d:"M9.211364 7.59931l4.48338-4.867229c.407008-.441854.407008-1.158247 0-1.60046l-.73712-.80023c-.407008-.441854-1.066904-.441854-1.474243 0L7 5.198617 2.51662.33139c-.407008-.441853-1.066904-.441853-1.474243 0l-.737121.80023c-.407008.441854-.407008 1.158248 0 1.600461l4.48338 4.867228L7 10l2.211364-2.40069z"},null,-1),co=[ao];function ho(e,t){return u(),f("svg",ro,co)}const uo=me(lo,[["render",ho]]),Be={Deselect:so,OpenIndicator:uo},po={mounted(e,{instance:t}){if(t.appendToBody){const{height:o,top:n,left:s,width:i}=t.$refs.toggle.getBoundingClientRect();let r=window.scrollX||window.pageXOffset,l=window.scrollY||window.pageYOffset;e.unbindPosition=t.calculatePosition(e,t,{width:i+"px",left:r+s+"px",top:l+n+o+"px"}),document.body.appendChild(e)}},unmounted(e,{instance:t}){t.appendToBody&&(e.unbindPosition&&typeof e.unbindPosition=="function"&&e.unbindPosition(),e.parentNode&&e.parentNode.removeChild(e))}};function fo(e){const t={};return Object.keys(e).sort().forEach(o=>{t[o]=e[o]}),JSON.stringify(t)}let go=0;function mo(){return++go}const yo={components:N({},Be),directives:{appendToBody:po},mixins:[Gt,Qt,Zt],compatConfig:{MODE:3},emits:["open","close","update:modelValue","search","search:compositionstart","search:compositionend","search:keydown","search:blur","search:focus","search:input","option:created","option:selecting","option:selected","option:deselecting","option:deselected"],props:{modelValue:{},components:{type:Object,default:()=>({})},options:{type:Array,default(){return[]}},disabled:{type:Boolean,default:!1},clearable:{type:Boolean,default:!0},deselectFromDropdown:{type:Boolean,default:!1},searchable:{type:Boolean,default:!0},multiple:{type:Boolean,default:!1},placeholder:{type:String,default:""},transition:{type:String,default:"vs__fade"},clearSearchOnSelect:{type:Boolean,default:!0},closeOnSelect:{type:Boolean,default:!0},label:{type:String,default:"label"},autocomplete:{type:String,default:"off"},reduce:{type:Function,default:e=>e},selectable:{type:Function,default:e=>!0},getOptionLabel:{type:Function,default(e){return typeof e=="object"?e.hasOwnProperty(this.label)?e[this.label]:console.warn(`[vue-select warn]: Label key "option.${this.label}" does not exist in options object ${JSON.stringify(e)}. +import{l as V,r as Te,m as ze,n as He,s as We,p as Ke,q as Q,t as N,v as ee,x as qe,y as he}from"./NcModal-MC_HktJd-DqeuH-fk.chunk.mjs";import{j as f,o as u,k as S,l as P,t as z,z as E,ab as Ue,m as b,e as q,ac as w,ad as x,F as ye,C as ue,g as te,c as I,L as re,a4 as Fe,E as ae,G as be,w as F,H as we,n as ve,ae as Je,b as Xe,a7 as G,f as K,y as Ye}from"./runtime-dom.esm-bundler-DdtEg5E9.chunk.mjs";import{_ as oe,r as Qe,l as Ze,b as Z,c as Oe}from"./createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs";import{N as Ge}from"./Web-aYJacExm.chunk.mjs";import{i as et}from"./AccountOutline-BlW-6JqD.chunk.mjs";const tt={name:"ChevronDownIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ot=["aria-hidden","aria-label"],nt=["fill","width","height"],it={d:"M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"},st={key:0};function lt(e,t,o,n,s,i){return u(),f("span",E(e.$attrs,{"aria-hidden":o.title?null:"true","aria-label":o.title,class:"material-design-icon chevron-down-icon",role:"img",onClick:t[0]||(t[0]=r=>e.$emit("click",r))}),[(u(),f("svg",{fill:o.fillColor,class:"material-design-icon__svg",width:o.size,height:o.size,viewBox:"0 0 24 24"},[S("path",it,[o.title?(u(),f("title",st,z(o.title),1)):P("",!0)])],8,nt))],16,ot)}const rt=oe(tt,[["render",lt]]),at={name:"CloseIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ct=["aria-hidden","aria-label"],ht=["fill","width","height"],ut={d:"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z"},dt={key:0};function pt(e,t,o,n,s,i){return u(),f("span",E(e.$attrs,{"aria-hidden":o.title?null:"true","aria-label":o.title,class:"material-design-icon close-icon",role:"img",onClick:t[0]||(t[0]=r=>e.$emit("click",r))}),[(u(),f("svg",{fill:o.fillColor,class:"material-design-icon__svg",width:o.size,height:o.size,viewBox:"0 0 24 24"},[S("path",ut,[o.title?(u(),f("title",dt,z(o.title),1)):P("",!0)])],8,ht))],16,ct)}const ft=oe(at,[["render",pt]]);function ne(){return typeof window<"u"}function W(e){return ke(e)?(e.nodeName||"").toLowerCase():"#document"}function v(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function T(e){var t;return(t=(ke(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function ke(e){return ne()?e instanceof Node||e instanceof v(e).Node:!1}function _(e){return ne()?e instanceof Element||e instanceof v(e).Element:!1}function B(e){return ne()?e instanceof HTMLElement||e instanceof v(e).HTMLElement:!1}function xe(e){return!ne()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof v(e).ShadowRoot}const gt=new Set(["inline","contents"]);function J(e){const{overflow:t,overflowX:o,overflowY:n,display:s}=$(e);return/auto|scroll|overlay|hidden|clip/.test(t+n+o)&&!gt.has(s)}const mt=new Set(["table","td","th"]);function yt(e){return mt.has(W(e))}const bt=[":popover-open",":modal"];function ie(e){return bt.some(t=>{try{return e.matches(t)}catch{return!1}})}const wt=["transform","translate","scale","rotate","perspective"],vt=["transform","translate","scale","rotate","perspective","filter"],Ot=["paint","layout","strict","content"];function pe(e){const t=fe(),o=_(e)?$(e):e;return wt.some(n=>o[n]?o[n]!=="none":!1)||(o.containerType?o.containerType!=="normal":!1)||!t&&(o.backdropFilter?o.backdropFilter!=="none":!1)||!t&&(o.filter?o.filter!=="none":!1)||vt.some(n=>(o.willChange||"").includes(n))||Ot.some(n=>(o.contain||"").includes(n))}function xt(e){let t=k(e);for(;B(t)&&!H(t);){if(pe(t))return t;if(ie(t))return null;t=k(t)}return null}function fe(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const St=new Set(["html","body","#document"]);function H(e){return St.has(W(e))}function $(e){return v(e).getComputedStyle(e)}function se(e){return _(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function k(e){if(W(e)==="html")return e;const t=e.assignedSlot||e.parentNode||xe(e)&&e.host||T(e);return xe(t)?t.host:t}function De(e){const t=k(e);return H(t)?e.ownerDocument?e.ownerDocument.body:e.body:B(t)&&J(t)?t:De(t)}function U(e,t,o){var n;t===void 0&&(t=[]),o===void 0&&(o=!0);const s=De(e),i=s===((n=e.ownerDocument)==null?void 0:n.body),r=v(s);if(i){const l=de(r);return t.concat(r,r.visualViewport||[],J(s)?s:[],l&&o?U(l):[])}return t.concat(s,U(s,[],o))}function de(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function Ae(e){const t=$(e);let o=parseFloat(t.width)||0,n=parseFloat(t.height)||0;const s=B(e),i=s?e.offsetWidth:o,r=s?e.offsetHeight:n,l=ee(o)!==i||ee(n)!==r;return l&&(o=i,n=r),{width:o,height:n,$:l}}function ge(e){return _(e)?e:e.contextElement}function j(e){const t=ge(e);if(!B(t))return V(1);const o=t.getBoundingClientRect(),{width:n,height:s,$:i}=Ae(t);let r=(i?ee(o.width):o.width)/n,l=(i?ee(o.height):o.height)/s;return(!r||!Number.isFinite(r))&&(r=1),(!l||!Number.isFinite(l))&&(l=1),{x:r,y:l}}const Lt=V(0);function Pe(e){const t=v(e);return!fe()||!t.visualViewport?Lt:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function Ct(e,t,o){return t===void 0&&(t=!1),!o||t&&o!==v(e)?!1:t}function R(e,t,o,n){t===void 0&&(t=!1),o===void 0&&(o=!1);const s=e.getBoundingClientRect(),i=ge(e);let r=V(1);t&&(n?_(n)&&(r=j(n)):r=j(e));const l=Ct(i,o,n)?Pe(i):V(0);let a=(s.left+l.x)/r.x,h=(s.top+l.y)/r.y,c=s.width/r.x,d=s.height/r.y;if(i){const g=v(i),p=n&&_(n)?v(n):n;let O=g,y=de(O);for(;y&&n&&p!==O;){const L=j(y),m=y.getBoundingClientRect(),C=$(y),D=m.left+(y.clientLeft+parseFloat(C.paddingLeft))*L.x,X=m.top+(y.clientTop+parseFloat(C.paddingTop))*L.y;a*=L.x,h*=L.y,c*=L.x,d*=L.y,a+=D,h+=X,O=v(y),y=de(O)}}return Te({width:c,height:d,x:a,y:h})}function le(e,t){const o=se(e).scrollLeft;return t?t.left+o:R(T(e)).left+o}function Ee(e,t){const o=e.getBoundingClientRect(),n=o.left+t.scrollLeft-le(e,o),s=o.top+t.scrollTop;return{x:n,y:s}}function _t(e){let{elements:t,rect:o,offsetParent:n,strategy:s}=e;const i=s==="fixed",r=T(n),l=t?ie(t.floating):!1;if(n===r||l&&i)return o;let a={scrollLeft:0,scrollTop:0},h=V(1);const c=V(0),d=B(n);if((d||!d&&!i)&&((W(n)!=="body"||J(r))&&(a=se(n)),B(n))){const p=R(n);h=j(n),c.x=p.x+n.clientLeft,c.y=p.y+n.clientTop}const g=r&&!d&&!i?Ee(r,a):V(0);return{width:o.width*h.x,height:o.height*h.y,x:o.x*h.x-a.scrollLeft*h.x+c.x+g.x,y:o.y*h.y-a.scrollTop*h.y+c.y+g.y}}function $t(e){return Array.from(e.getClientRects())}function Vt(e){const t=T(e),o=se(e),n=e.ownerDocument.body,s=N(t.scrollWidth,t.clientWidth,n.scrollWidth,n.clientWidth),i=N(t.scrollHeight,t.clientHeight,n.scrollHeight,n.clientHeight);let r=-o.scrollLeft+le(e);const l=-o.scrollTop;return $(n).direction==="rtl"&&(r+=N(t.clientWidth,n.clientWidth)-s),{width:s,height:i,x:r,y:l}}const Se=25;function Bt(e,t){const o=v(e),n=T(e),s=o.visualViewport;let i=n.clientWidth,r=n.clientHeight,l=0,a=0;if(s){i=s.width,r=s.height;const c=fe();(!c||c&&t==="fixed")&&(l=s.offsetLeft,a=s.offsetTop)}const h=le(n);if(h<=0){const c=n.ownerDocument,d=c.body,g=getComputedStyle(d),p=c.compatMode==="CSS1Compat"&&parseFloat(g.marginLeft)+parseFloat(g.marginRight)||0,O=Math.abs(n.clientWidth-d.clientWidth-p);O<=Se&&(i-=O)}else h<=Se&&(i+=h);return{width:i,height:r,x:l,y:a}}const Tt=new Set(["absolute","fixed"]);function Ft(e,t){const o=R(e,!0,t==="fixed"),n=o.top+e.clientTop,s=o.left+e.clientLeft,i=B(e)?j(e):V(1),r=e.clientWidth*i.x,l=e.clientHeight*i.y,a=s*i.x,h=n*i.y;return{width:r,height:l,x:a,y:h}}function Le(e,t,o){let n;if(t==="viewport")n=Bt(e,o);else if(t==="document")n=Vt(T(e));else if(_(t))n=Ft(t,o);else{const s=Pe(e);n={x:t.x-s.x,y:t.y-s.y,width:t.width,height:t.height}}return Te(n)}function Re(e,t){const o=k(e);return o===t||!_(o)||H(o)?!1:$(o).position==="fixed"||Re(o,t)}function kt(e,t){const o=t.get(e);if(o)return o;let n=U(e,[],!1).filter(l=>_(l)&&W(l)!=="body"),s=null;const i=$(e).position==="fixed";let r=i?k(e):e;for(;_(r)&&!H(r);){const l=$(r),a=pe(r);!a&&l.position==="fixed"&&(s=null),(i?!a&&!s:!a&&l.position==="static"&&s&&Tt.has(s.position)||J(r)&&!a&&Re(e,r))?n=n.filter(h=>h!==r):s=l,r=k(r)}return t.set(e,n),n}function Dt(e){let{element:t,boundary:o,rootBoundary:n,strategy:s}=e;const i=[...o==="clippingAncestors"?ie(t)?[]:kt(t,this._c):[].concat(o),n],r=i[0],l=i.reduce((a,h)=>{const c=Le(t,h,s);return a.top=N(c.top,a.top),a.right=he(c.right,a.right),a.bottom=he(c.bottom,a.bottom),a.left=N(c.left,a.left),a},Le(t,r,s));return{width:l.right-l.left,height:l.bottom-l.top,x:l.left,y:l.top}}function At(e){const{width:t,height:o}=Ae(e);return{width:t,height:o}}function Pt(e,t,o){const n=B(t),s=T(t),i=o==="fixed",r=R(e,!0,i,t);let l={scrollLeft:0,scrollTop:0};const a=V(0);function h(){a.x=le(s)}if(n||!n&&!i)if((W(t)!=="body"||J(s))&&(l=se(t)),n){const p=R(t,!0,i,t);a.x=p.x+t.clientLeft,a.y=p.y+t.clientTop}else s&&h();i&&!n&&s&&h();const c=s&&!n&&!i?Ee(s,l):V(0),d=r.left+l.scrollLeft-a.x-c.x,g=r.top+l.scrollTop-a.y-c.y;return{x:d,y:g,width:r.width,height:r.height}}function ce(e){return $(e).position==="static"}function Ce(e,t){if(!B(e)||$(e).position==="fixed")return null;if(t)return t(e);let o=e.offsetParent;return T(e)===o&&(o=o.ownerDocument.body),o}function Me(e,t){const o=v(e);if(ie(e))return o;if(!B(e)){let s=k(e);for(;s&&!H(s);){if(_(s)&&!ce(s))return s;s=k(s)}return o}let n=Ce(e,t);for(;n&&yt(n)&&ce(n);)n=Ce(n,t);return n&&H(n)&&ce(n)&&!pe(n)?o:n||xt(e)||o}const Et=async function(e){const t=this.getOffsetParent||Me,o=this.getDimensions,n=await o(e.floating);return{reference:Pt(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:n.width,height:n.height}}};function Rt(e){return $(e).direction==="rtl"}const Mt={convertOffsetParentRelativeRectToViewportRelativeRect:_t,getDocumentElement:T,getClippingRect:Dt,getOffsetParent:Me,getElementRects:Et,getClientRects:$t,getDimensions:At,getScale:j,isElement:_,isRTL:Rt};function Ne(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function Nt(e,t){let o=null,n;const s=T(e);function i(){var l;clearTimeout(n),(l=o)==null||l.disconnect(),o=null}function r(l,a){l===void 0&&(l=!1),a===void 0&&(a=1),i();const h=e.getBoundingClientRect(),{left:c,top:d,width:g,height:p}=h;if(l||t(),!g||!p)return;const O=Q(d),y=Q(s.clientWidth-(c+g)),L=Q(s.clientHeight-(d+p)),m=Q(c),C={rootMargin:-O+"px "+-y+"px "+-L+"px "+-m+"px",threshold:N(0,he(1,a))||1};let D=!0;function X(je){const Y=je[0].intersectionRatio;if(Y!==a){if(!D)return r();Y?r(!1,Y):n=setTimeout(()=>{r(!1,1e-7)},1e3)}Y===1&&!Ne(h,e.getBoundingClientRect())&&r(),D=!1}try{o=new IntersectionObserver(X,{...C,root:s.ownerDocument})}catch{o=new IntersectionObserver(X,C)}o.observe(e)}return r(!0),i}function It(e,t,o,n){n===void 0&&(n={});const{ancestorScroll:s=!0,ancestorResize:i=!0,elementResize:r=typeof ResizeObserver=="function",layoutShift:l=typeof IntersectionObserver=="function",animationFrame:a=!1}=n,h=ge(e),c=s||i?[...h?U(h):[],...U(t)]:[];c.forEach(m=>{s&&m.addEventListener("scroll",o,{passive:!0}),i&&m.addEventListener("resize",o)});const d=h&&l?Nt(h,o):null;let g=-1,p=null;r&&(p=new ResizeObserver(m=>{let[C]=m;C&&C.target===h&&p&&(p.unobserve(t),cancelAnimationFrame(g),g=requestAnimationFrame(()=>{var D;(D=p)==null||D.observe(t)})),o()}),h&&!a&&p.observe(h),p.observe(t));let O,y=a?R(e):null;a&&L();function L(){const m=R(e);y&&!Ne(y,m)&&o(),y=m,O=requestAnimationFrame(L)}return o(),()=>{var m;c.forEach(C=>{s&&C.removeEventListener("scroll",o),i&&C.removeEventListener("resize",o)}),d?.(),(m=p)==null||m.disconnect(),p=null,a&&cancelAnimationFrame(O)}}const jt=ze,zt=We,Ht=He,Wt=Ke,Kt=(e,t,o)=>{const n=new Map,s={platform:Mt,...o},i={...s.platform,_c:n};return qe(e,t,{...s,platform:i})};var qt=Object.defineProperty,Ut=Object.defineProperties,Jt=Object.getOwnPropertyDescriptors,_e=Object.getOwnPropertySymbols,Xt=Object.prototype.hasOwnProperty,Yt=Object.prototype.propertyIsEnumerable,$e=(e,t,o)=>t in e?qt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,M=(e,t)=>{for(var o in t||(t={}))Xt.call(t,o)&&$e(e,o,t[o]);if(_e)for(var o of _e(t))Yt.call(t,o)&&$e(e,o,t[o]);return e},Ve=(e,t)=>Ut(e,Jt(t));const Qt={props:{autoscroll:{type:Boolean,default:!0}},watch:{typeAheadPointer(){this.autoscroll&&this.maybeAdjustScroll()},open(e){this.autoscroll&&e&&this.$nextTick(()=>this.maybeAdjustScroll())}},methods:{maybeAdjustScroll(){var e;const t=((e=this.$refs.dropdownMenu)==null?void 0:e.children[this.typeAheadPointer])||!1;if(t){const o=this.getDropdownViewport(),{top:n,bottom:s,height:i}=t.getBoundingClientRect();if(n<o.top)return this.$refs.dropdownMenu.scrollTop=t.offsetTop;if(s>o.bottom)return this.$refs.dropdownMenu.scrollTop=t.offsetTop-(o.height-i)}},getDropdownViewport(){return this.$refs.dropdownMenu?this.$refs.dropdownMenu.getBoundingClientRect():{height:0,top:0,bottom:0}}}},Zt={data(){return{typeAheadPointer:-1}},watch:{filteredOptions(){for(let e=0;e<this.filteredOptions.length;e++)if(this.selectable(this.filteredOptions[e])){this.typeAheadPointer=e;break}},open(e){e&&this.typeAheadToLastSelected()},selectedValue(){this.open&&this.typeAheadToLastSelected()}},methods:{typeAheadUp(){for(let e=this.typeAheadPointer-1;e>=0;e--)if(this.selectable(this.filteredOptions[e])){this.typeAheadPointer=e;break}},typeAheadDown(){for(let e=this.typeAheadPointer+1;e<this.filteredOptions.length;e++)if(this.selectable(this.filteredOptions[e])){this.typeAheadPointer=e;break}},typeAheadSelect(){const e=this.filteredOptions[this.typeAheadPointer];e&&this.selectable(e)&&this.select(e)},typeAheadToLastSelected(){this.typeAheadPointer=this.selectedValue.length!==0?this.filteredOptions.indexOf(this.selectedValue[this.selectedValue.length-1]):-1}}},Gt={props:{loading:{type:Boolean,default:!1}},data(){return{mutableLoading:!1}},watch:{search(){this.$emit("search",this.search,this.toggleLoading)},loading(e){this.mutableLoading=e}},methods:{toggleLoading(e=null){return e==null?this.mutableLoading=!this.mutableLoading:this.mutableLoading=e}}},me=(e,t)=>{const o=e.__vccOpts||e;for(const[n,s]of t)o[n]=s;return o},eo={},to={xmlns:"http://www.w3.org/2000/svg",width:"10",height:"10"},oo=S("path",{d:"M6.895455 5l2.842897-2.842898c.348864-.348863.348864-.914488 0-1.263636L9.106534.261648c-.348864-.348864-.914489-.348864-1.263636 0L5 3.104545 2.157102.261648c-.348863-.348864-.914488-.348864-1.263636 0L.261648.893466c-.348864.348864-.348864.914489 0 1.263636L3.104545 5 .261648 7.842898c-.348864.348863-.348864.914488 0 1.263636l.631818.631818c.348864.348864.914773.348864 1.263636 0L5 6.895455l2.842898 2.842897c.348863.348864.914772.348864 1.263636 0l.631818-.631818c.348864-.348864.348864-.914489 0-1.263636L6.895455 5z"},null,-1),no=[oo];function io(e,t){return u(),f("svg",to,no)}const so=me(eo,[["render",io]]),lo={},ro={xmlns:"http://www.w3.org/2000/svg",width:"14",height:"10"},ao=S("path",{d:"M9.211364 7.59931l4.48338-4.867229c.407008-.441854.407008-1.158247 0-1.60046l-.73712-.80023c-.407008-.441854-1.066904-.441854-1.474243 0L7 5.198617 2.51662.33139c-.407008-.441853-1.066904-.441853-1.474243 0l-.737121.80023c-.407008.441854-.407008 1.158248 0 1.600461l4.48338 4.867228L7 10l2.211364-2.40069z"},null,-1),co=[ao];function ho(e,t){return u(),f("svg",ro,co)}const uo=me(lo,[["render",ho]]),Be={Deselect:so,OpenIndicator:uo},po={mounted(e,{instance:t}){if(t.appendToBody){const{height:o,top:n,left:s,width:i}=t.$refs.toggle.getBoundingClientRect();let r=window.scrollX||window.pageXOffset,l=window.scrollY||window.pageYOffset;e.unbindPosition=t.calculatePosition(e,t,{width:i+"px",left:r+s+"px",top:l+n+o+"px"}),document.body.appendChild(e)}},unmounted(e,{instance:t}){t.appendToBody&&(e.unbindPosition&&typeof e.unbindPosition=="function"&&e.unbindPosition(),e.parentNode&&e.parentNode.removeChild(e))}};function fo(e){const t={};return Object.keys(e).sort().forEach(o=>{t[o]=e[o]}),JSON.stringify(t)}let go=0;function mo(){return++go}const yo={components:M({},Be),directives:{appendToBody:po},mixins:[Qt,Zt,Gt],compatConfig:{MODE:3},emits:["open","close","update:modelValue","search","search:compositionstart","search:compositionend","search:keydown","search:blur","search:focus","search:input","option:created","option:selecting","option:selected","option:deselecting","option:deselected"],props:{modelValue:{},components:{type:Object,default:()=>({})},options:{type:Array,default(){return[]}},disabled:{type:Boolean,default:!1},clearable:{type:Boolean,default:!0},deselectFromDropdown:{type:Boolean,default:!1},searchable:{type:Boolean,default:!0},multiple:{type:Boolean,default:!1},placeholder:{type:String,default:""},transition:{type:String,default:"vs__fade"},clearSearchOnSelect:{type:Boolean,default:!0},closeOnSelect:{type:Boolean,default:!0},label:{type:String,default:"label"},autocomplete:{type:String,default:"off"},reduce:{type:Function,default:e=>e},selectable:{type:Function,default:e=>!0},getOptionLabel:{type:Function,default(e){return typeof e=="object"?e.hasOwnProperty(this.label)?e[this.label]:console.warn(`[vue-select warn]: Label key "option.${this.label}" does not exist in options object ${JSON.stringify(e)}. https://vue-select.org/api/props.html#getoptionlabel`):e}},getOptionKey:{type:Function,default(e){if(typeof e!="object")return e;try{return e.hasOwnProperty("id")?e.id:fo(e)}catch(t){return console.warn(`[vue-select warn]: Could not stringify this option to generate unique key. Please provide'getOptionKey' prop to return a unique key for each option. -https://vue-select.org/api/props.html#getoptionkey`,e,t)}}},onTab:{type:Function,default:function(){this.selectOnTab&&!this.isComposing&&this.typeAheadSelect()}},taggable:{type:Boolean,default:!1},tabindex:{type:Number,default:null},pushTags:{type:Boolean,default:!1},filterable:{type:Boolean,default:!0},filterBy:{type:Function,default(e,t,o){return(t||"").toLocaleLowerCase().indexOf(o.toLocaleLowerCase())>-1}},filter:{type:Function,default(e,t){return e.filter(o=>{let n=this.getOptionLabel(o);return typeof n=="number"&&(n=n.toString()),this.filterBy(o,n,t)})}},createOption:{type:Function,default(e){return typeof this.optionList[0]=="object"?{[this.label]:e}:e}},resetOnOptionsChange:{default:!1,validator:e=>["function","boolean"].includes(typeof e)},clearSearchOnBlur:{type:Function,default:function({clearSearchOnSelect:e,multiple:t}){return e&&!t}},noDrop:{type:Boolean,default:!1},inputId:{type:String},dir:{type:String,default:"auto"},selectOnTab:{type:Boolean,default:!1},selectOnKeyCodes:{type:Array,default:()=>[13]},searchInputQuerySelector:{type:String,default:"[type=search]"},mapKeydown:{type:Function,default:(e,t)=>e},appendToBody:{type:Boolean,default:!1},calculatePosition:{type:Function,default(e,t,{width:o,top:n,left:s}){e.style.top=n,e.style.left=s,e.style.width=o}},dropdownShouldOpen:{type:Function,default({noDrop:e,open:t,mutableLoading:o}){return e?!1:t&&!o}},uid:{type:[String,Number],default:()=>mo()}},data(){return{search:"",open:!1,isComposing:!1,pushedTags:[],_value:[],deselectButtons:[]}},computed:{isReducingValues(){return this.$props.reduce!==this.$options.props.reduce.default},isTrackingValues(){return typeof this.modelValue>"u"||this.isReducingValues},selectedValue(){let e=this.modelValue;return this.isTrackingValues&&(e=this.$data._value),e!=null&&e!==""?[].concat(e):[]},optionList(){return this.options.concat(this.pushTags?this.pushedTags:[])},searchEl(){return this.$slots.search?this.$refs.selectedOptions.querySelector(this.searchInputQuerySelector):this.$refs.search},scope(){const e={search:this.search,loading:this.loading,searching:this.searching,filteredOptions:this.filteredOptions};return{search:{attributes:N({disabled:this.disabled,placeholder:this.searchPlaceholder,tabindex:this.tabindex,readonly:!this.searchable,id:this.inputId,"aria-autocomplete":"list","aria-labelledby":`vs${this.uid}__combobox`,"aria-controls":`vs${this.uid}__listbox`,ref:"search",type:"search",autocomplete:this.autocomplete,value:this.search},this.dropdownOpen&&this.filteredOptions[this.typeAheadPointer]?{"aria-activedescendant":`vs${this.uid}__option-${this.typeAheadPointer}`}:{}),events:{compositionstart:()=>this.isComposing=!0,compositionend:()=>this.isComposing=!1,keydown:this.onSearchKeyDown,blur:this.onSearchBlur,focus:this.onSearchFocus,input:t=>this.search=t.target.value}},spinner:{loading:this.mutableLoading},noOptions:{search:this.search,loading:this.mutableLoading,searching:this.searching},openIndicator:{attributes:{ref:"openIndicator",role:"presentation",class:"vs__open-indicator"}},listHeader:e,listFooter:e,header:Ve(N({},e),{deselect:this.deselect}),footer:Ve(N({},e),{deselect:this.deselect})}},childComponents(){return N(N({},Be),this.components)},stateClasses(){return{"vs--open":this.dropdownOpen,"vs--single":!this.multiple,"vs--multiple":this.multiple,"vs--searching":this.searching&&!this.noDrop,"vs--searchable":this.searchable&&!this.noDrop,"vs--unsearchable":!this.searchable,"vs--loading":this.mutableLoading,"vs--disabled":this.disabled}},searching(){return!!this.search},dropdownOpen(){return this.dropdownShouldOpen(this)},searchPlaceholder(){return this.isValueEmpty&&this.placeholder?this.placeholder:void 0},filteredOptions(){const e=[].concat(this.optionList);if(!this.filterable&&!this.taggable)return e;const t=this.search.length?this.filter(e,this.search,this):e;if(this.taggable&&this.search.length){const o=this.createOption(this.search);this.optionExists(o)||t.unshift(o)}return t},isValueEmpty(){return this.selectedValue.length===0},showClearButton(){return!this.multiple&&this.clearable&&!this.open&&!this.isValueEmpty}},watch:{options(e,t){const o=()=>typeof this.resetOnOptionsChange=="function"?this.resetOnOptionsChange(e,t,this.selectedValue):this.resetOnOptionsChange;!this.taggable&&o()&&this.clearSelection(),this.modelValue&&this.isTrackingValues&&this.setInternalValueFromOptions(this.modelValue)},modelValue:{immediate:!0,handler(e){this.isTrackingValues&&this.setInternalValueFromOptions(e)}},multiple(){this.clearSelection()},open(e){this.$emit(e?"open":"close")}},created(){this.mutableLoading=this.loading},methods:{setInternalValueFromOptions(e){Array.isArray(e)?this.$data._value=e.map(t=>this.findOptionFromReducedValue(t)):this.$data._value=this.findOptionFromReducedValue(e)},select(e){this.$emit("option:selecting",e),this.isOptionSelected(e)?this.deselectFromDropdown&&(this.clearable||this.multiple&&this.selectedValue.length>1)&&this.deselect(e):(this.taggable&&!this.optionExists(e)&&(this.$emit("option:created",e),this.pushTag(e)),this.multiple&&(e=this.selectedValue.concat(e)),this.updateValue(e),this.$emit("option:selected",e)),this.onAfterSelect(e)},deselect(e){this.$emit("option:deselecting",e),this.updateValue(this.selectedValue.filter(t=>!this.optionComparator(t,e))),this.$emit("option:deselected",e)},clearSelection(){this.updateValue(this.multiple?[]:null)},onAfterSelect(e){this.closeOnSelect&&(this.open=!this.open,this.searchEl.blur()),this.clearSearchOnSelect&&(this.search="")},updateValue(e){typeof this.modelValue>"u"&&(this.$data._value=e),e!==null&&(Array.isArray(e)?e=e.map(t=>this.reduce(t)):e=this.reduce(e)),this.$emit("update:modelValue",e)},toggleDropdown(e){const t=e.target!==this.searchEl;t&&e.preventDefault();const o=[...this.deselectButtons||[],this.$refs.clearButton];if(this.searchEl===void 0||o.filter(Boolean).some(n=>n.contains(e.target)||n===e.target)){e.preventDefault();return}this.open&&t?this.searchEl.blur():this.disabled||(this.open=!0,this.searchEl.focus())},isOptionSelected(e){return this.selectedValue.some(t=>this.optionComparator(t,e))},isOptionDeselectable(e){return this.isOptionSelected(e)&&this.deselectFromDropdown},optionComparator(e,t){return this.getOptionKey(e)===this.getOptionKey(t)},findOptionFromReducedValue(e){const t=n=>JSON.stringify(this.reduce(n))===JSON.stringify(e),o=[...this.options,...this.pushedTags].filter(t);return o.length===1?o[0]:o.find(n=>this.optionComparator(n,this.$data._value))||e},closeSearchOptions(){this.open=!1,this.$emit("search:blur")},maybeDeleteValue(){if(!this.searchEl.value.length&&this.selectedValue&&this.selectedValue.length&&this.clearable){let e=null;this.multiple&&(e=[...this.selectedValue.slice(0,this.selectedValue.length-1)]),this.updateValue(e)}},optionExists(e){return this.optionList.some(t=>this.optionComparator(t,e))},normalizeOptionForSlot(e){return typeof e=="object"?e:{[this.label]:e}},pushTag(e){this.pushedTags.push(e)},onEscape(){this.search.length?this.search="":this.searchEl.blur()},onSearchBlur(){if(this.mousedown&&!this.searching)this.mousedown=!1;else{const{clearSearchOnSelect:e,multiple:t}=this;this.clearSearchOnBlur({clearSearchOnSelect:e,multiple:t})&&(this.search=""),this.closeSearchOptions();return}if(this.search.length===0&&this.options.length===0){this.closeSearchOptions();return}},onSearchFocus(){this.open=!0,this.$emit("search:focus")},onMousedown(){this.mousedown=!0},onMouseUp(){this.mousedown=!1},onSearchKeyDown(e){const t=s=>(s.preventDefault(),!this.isComposing&&this.typeAheadSelect()),o={8:s=>this.maybeDeleteValue(),9:s=>this.onTab(),27:s=>this.onEscape(),38:s=>(s.preventDefault(),this.typeAheadUp()),40:s=>(s.preventDefault(),this.typeAheadDown())};this.selectOnKeyCodes.forEach(s=>o[s]=t);const n=this.mapKeydown(o,this);if(typeof n[e.keyCode]=="function")return n[e.keyCode](e)}}},bo=["dir"],wo=["id","aria-expanded","aria-owns"],vo={ref:"selectedOptions",class:"vs__selected-options"},Oo=["disabled","title","aria-label","onClick"],xo={ref:"actions",class:"vs__actions"},So=["disabled"],Lo={class:"vs__spinner"},Co=["id"],_o=["id","aria-selected","onMouseover","onClick"],$o={key:0,class:"vs__no-options"},Vo=te(" Sorry, no matching options. "),Bo=["id"];function To(e,t,o,n,s,i){const r=Ue("append-to-body");return u(),f("div",{dir:o.dir,class:ve(["v-select",i.stateClasses])},[b(e.$slots,"header",w(x(i.scope.header))),S("div",{id:`vs${o.uid}__combobox`,ref:"toggle",class:"vs__dropdown-toggle",role:"combobox","aria-expanded":i.dropdownOpen.toString(),"aria-owns":`vs${o.uid}__listbox`,"aria-label":"Search for option",onMousedown:t[1]||(t[1]=l=>i.toggleDropdown(l))},[S("div",vo,[(u(!0),f(ye,null,ue(i.selectedValue,(l,a)=>b(e.$slots,"selected-option-container",{option:i.normalizeOptionForSlot(l),deselect:i.deselect,multiple:o.multiple,disabled:o.disabled},()=>[(u(),f("span",{key:o.getOptionKey(l),class:"vs__selected"},[b(e.$slots,"selected-option",w(x(i.normalizeOptionForSlot(l))),()=>[te(z(o.getOptionLabel(l)),1)]),o.multiple?(u(),f("button",{key:0,ref_for:!0,ref:h=>s.deselectButtons[a]=h,disabled:o.disabled,type:"button",class:"vs__deselect",title:`Deselect ${o.getOptionLabel(l)}`,"aria-label":`Deselect ${o.getOptionLabel(l)}`,onClick:h=>i.deselect(l)},[(u(),I(re(i.childComponents.Deselect)))],8,Oo)):P("",!0)]))])),256)),b(e.$slots,"search",w(x(i.scope.search)),()=>[S("input",E({class:"vs__search"},i.scope.search.attributes,Fe(i.scope.search.events)),null,16)])],512),S("div",xo,[ae(S("button",{ref:"clearButton",disabled:o.disabled,type:"button",class:"vs__clear",title:"Clear Selected","aria-label":"Clear Selected",onClick:t[0]||(t[0]=(...l)=>i.clearSelection&&i.clearSelection(...l))},[(u(),I(re(i.childComponents.Deselect)))],8,So),[[be,i.showClearButton]]),b(e.$slots,"open-indicator",w(x(i.scope.openIndicator)),()=>[o.noDrop?P("",!0):(u(),I(re(i.childComponents.OpenIndicator),w(E({key:0},i.scope.openIndicator.attributes)),null,16))]),b(e.$slots,"spinner",w(x(i.scope.spinner)),()=>[ae(S("div",Lo,"Loading...",512),[[be,e.mutableLoading]])])],512)],40,wo),q(Je,{name:o.transition},{default:F(()=>[i.dropdownOpen?ae((u(),f("ul",{id:`vs${o.uid}__listbox`,ref:"dropdownMenu",key:`vs${o.uid}__listbox`,class:"vs__dropdown-menu",role:"listbox",tabindex:"-1",onMousedown:t[2]||(t[2]=we((...l)=>i.onMousedown&&i.onMousedown(...l),["prevent"])),onMouseup:t[3]||(t[3]=(...l)=>i.onMouseUp&&i.onMouseUp(...l))},[b(e.$slots,"list-header",w(x(i.scope.listHeader))),(u(!0),f(ye,null,ue(i.filteredOptions,(l,a)=>(u(),f("li",{id:`vs${o.uid}__option-${a}`,key:o.getOptionKey(l),role:"option",class:ve(["vs__dropdown-option",{"vs__dropdown-option--deselect":i.isOptionDeselectable(l)&&a===e.typeAheadPointer,"vs__dropdown-option--selected":i.isOptionSelected(l),"vs__dropdown-option--highlight":a===e.typeAheadPointer,"vs__dropdown-option--disabled":!o.selectable(l)}]),"aria-selected":a===e.typeAheadPointer?!0:null,onMouseover:h=>o.selectable(l)?e.typeAheadPointer=a:null,onClick:we(h=>o.selectable(l)?i.select(l):null,["prevent","stop"])},[b(e.$slots,"option",w(x(i.normalizeOptionForSlot(l))),()=>[te(z(o.getOptionLabel(l)),1)])],42,_o))),128)),i.filteredOptions.length===0?(u(),f("li",$o,[b(e.$slots,"no-options",w(x(i.scope.noOptions)),()=>[Vo])])):P("",!0),b(e.$slots,"list-footer",w(x(i.scope.listFooter)))],40,Co)),[[r]]):(u(),f("ul",{key:1,id:`vs${o.uid}__listbox`,role:"listbox",style:{display:"none",visibility:"hidden"}},null,8,Bo))]),_:3},8,["name"]),b(e.$slots,"footer",w(x(i.scope.footer)))],10,bo)}const A=me(yo,[["render",To]]);function Ie(e,t){const o=[];let n=0,s=e.toLowerCase().indexOf(t.toLowerCase(),n),i=0;for(;s>-1&&i++<e.length;)n=s+t.length,o.push({start:s,end:n}),s=e.toLowerCase().indexOf(t.toLowerCase(),n);return o}const Fo=Xe({name:"NcHighlight",props:{text:{type:String,default:""},search:{type:String,default:""},highlight:{type:Array,default:()=>[]}},computed:{ranges(){let e=[];return!this.search&&this.highlight.length===0||(this.highlight.length>0?e=this.highlight:e=Ie(this.text,this.search),e.forEach((t,o)=>{t.end<t.start&&(e[o]={start:t.end,end:t.start})}),e=e.reduce((t,o)=>(o.start<this.text.length&&o.end>0&&t.push({start:o.start<0?0:o.start,end:o.end>this.text.length?this.text.length:o.end}),t),[]),e.sort((t,o)=>t.start-o.start),e=e.reduce((t,o)=>{if(!t.length)t.push(o);else{const n=t.length-1;t[n].end>=o.start?t[n]={start:t[n].start,end:Math.max(t[n].end,o.end)}:t.push(o)}return t},[])),e},chunks(){if(this.ranges.length===0)return[{start:0,end:this.text.length,highlight:!1,text:this.text}];const e=[];let t=0,o=0;for(;t<this.text.length;){const n=this.ranges[o];if(n.start===t){e.push({...n,highlight:!0,text:this.text.slice(n.start,n.end)}),o++,t=n.end,o>=this.ranges.length&&t<this.text.length&&(e.push({start:t,end:this.text.length,highlight:!1,text:this.text.slice(t)}),t=this.text.length);continue}e.push({start:t,end:n.start,highlight:!1,text:this.text.slice(t,n.start)}),t=n.start}return e}},render(){return this.ranges.length?Z("span",{},this.chunks.map(e=>e.highlight?Z("strong",{},e.text):e.text)):Z("span",{},this.text)}}),ko={name:"NcEllipsisedOption",components:{NcHighlight:Fo},props:{name:{type:String,default:""},search:{type:String,default:""}},computed:{needsTruncate(){return this.name&&this.name.length>=10},split(){return this.name.length-Math.min(Math.floor(this.name.length/2),10)},part1(){return this.needsTruncate?this.name.slice(0,this.split):this.name},part2(){return this.needsTruncate?this.name.slice(this.split):""},highlight1(){return this.search?Ie(this.name,this.search):[]},highlight2(){return this.highlight1.map(e=>({start:e.start-this.split,end:e.end-this.split}))}}},Do=["title"];function Ao(e,t,o,n,s,i){const r=K("NcHighlight");return u(),f("span",{dir:"auto",class:"name-parts",title:o.name},[q(r,{class:"name-parts__first",text:i.part1,search:o.search,highlight:i.highlight1},null,8,["text","search","highlight"]),i.part2?(u(),I(r,{key:0,class:"name-parts__last",text:i.part2,search:o.search,highlight:i.highlight2},null,8,["text","search","highlight"])):P("",!0)],8,Do)}const Po=oe(ko,[["render",Ao],["__scopeId","data-v-a612f185"]]);Ge(Qe);const Eo={name:"NcSelect",components:{ChevronDown:rt,NcEllipsisedOption:Po,NcLoadingIcon:Ze,VueSelect:A},props:{...A.props,...A.mixins.reduce((e,t)=>({...e,...t.props}),{}),ariaLabelClearSelected:{type:String,default:Q("Clear selected")},ariaLabelCombobox:{type:String,default:null},ariaLabelListbox:{type:String,default:Q("Options")},ariaLabelDeselectOption:{type:Function,default:e=>Q("Deselect {option}",{option:e})},appendToBody:{type:Boolean,default:!0},calculatePosition:{type:Function,default:null},keepOpen:{type:Boolean,default:!1},components:{type:Object,default:()=>({Deselect:{render:()=>Z(ft,{size:20,fillColor:"var(--vs-controls-color)",style:[{cursor:"pointer"}]})}})},limit:{type:Number,default:null},disabled:{type:Boolean,default:!1},dropdownShouldOpen:{type:Function,default:({noDrop:e,open:t})=>e?!1:t},filterBy:{type:Function,default:null},inputClass:{type:[String,Object],default:null},inputId:{type:String,default:()=>Oe()},inputLabel:{type:String,default:null},labelOutside:{type:Boolean,default:!1},keyboardFocusBorder:{type:Boolean,default:!0},label:{type:String,default:null},loading:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},noWrap:{type:Boolean,default:!1},options:{type:Array,default:()=>[]},placeholder:{type:String,default:""},mapKeydown:{type:Function,default(e,t){return{...e,27:o=>{t.open&&o.stopPropagation(),e[27](o)}}}},uid:{type:String,default:()=>Oe()},placement:{type:String,default:"bottom"},resetFocusOnOptionsChange:{type:Boolean,default:!0},modelValue:{type:[String,Number,Object,Array],default:null},required:{type:Boolean,default:!1}," ":{}},emits:[" ","update:modelValue"],setup(){const e=Number.parseInt(window.getComputedStyle(document.body).getPropertyValue("--default-clickable-area")),t=Number.parseInt(window.getComputedStyle(document.body).getPropertyValue("--default-grid-baseline"));return{avatarSize:e-2*t,isLegacy:et}},data(){return{search:""}},computed:{inputRequired(){return this.required?this.modelValue===null||Array.isArray(this.modelValue)&&this.modelValue.length===0:null},localCalculatePosition(){return this.calculatePosition!==null?this.calculatePosition:(e,t,{width:o})=>{e.style.width=o;const n={name:"addClass",fn(){return e.classList.add("vs__dropdown-menu--floating"),{}}},s={name:"togglePlacementClass",fn({placement:r}){return t.$el.classList.toggle("select--drop-up",r==="top"),e.classList.toggle("vs__dropdown-menu--floating-placement-top",r==="top"),{}}},i=()=>{Kt(t.$refs.toggle,e,{placement:this.placement,middleware:[jt(-1),n,s,Ht(),zt({limiter:Wt()})]}).then(({x:r,y:l})=>{Object.assign(e.style,{left:`${r}px`,top:`${l}px`,width:`${t.$refs.toggle.getBoundingClientRect().width}px`})})};return It(t.$refs.toggle,e,i)}},localFilterBy(){return this.filterBy??A.props.filterBy.default},localLabel(){return this.label??A.props.label.default},propsToForward(){const e=[...Object.keys(A.props),...A.mixins.flatMap(t=>Object.keys(t.props??{}))];return{...Object.fromEntries(Object.entries(this.$props).filter(([t,o])=>e.includes(t))),calculatePosition:this.localCalculatePosition,closeOnSelect:!this.keepOpen,filterBy:this.localFilterBy,label:this.localLabel}}},mounted(){!this.labelOutside&&!this.inputLabel&&this.ariaLabelCombobox,this.inputLabel&&this.ariaLabelCombobox},methods:{t:Q}},Ro=["for"],No=["required"];function Mo(e,t,o,n,s,i){const r=K("ChevronDown"),l=K("NcEllipsisedOption"),a=K("NcLoadingIcon"),h=K("VueSelect");return u(),I(h,E({class:["select",{"select--legacy":n.isLegacy,"select--no-wrap":o.noWrap}]},i.propsToForward,{onSearch:t[0]||(t[0]=c=>s.search=c),"onUpdate:modelValue":t[1]||(t[1]=c=>e.$emit("update:modelValue",c))}),Ye({search:F(({attributes:c,events:d})=>[S("input",E({class:["vs__search",[o.inputClass]]},c,{required:i.inputRequired,dir:"auto"},Fe(d,!0)),null,16,No)]),"open-indicator":F(({attributes:c})=>[q(r,E(c,{"fill-color":"var(--vs-controls-color)",style:{cursor:o.disabled?null:"pointer"},size:26}),null,16,["style"])]),option:F(c=>[b(e.$slots,"option",w(x(c)),()=>[q(l,{name:String(c[i.localLabel]),search:s.search},null,8,["name","search"])])]),"selected-option":F(c=>[b(e.$slots,"selected-option",{vBind:c},()=>[q(l,{name:String(c[i.localLabel]),search:s.search},null,8,["name","search"])])]),spinner:F(c=>[c.loading?(u(),I(a,{key:0})):P("",!0)]),"no-options":F(()=>[te(z(i.t("No results")),1)]),_:2},[!o.labelOutside&&o.inputLabel?{name:"header",fn:F(()=>[S("label",{for:o.inputId,class:"select__label"},z(o.inputLabel),9,Ro)]),key:"0"}:void 0,ue(e.$slots,(c,d)=>({name:d,fn:F(g=>[b(e.$slots,d,w(x(g)))])}))]),1040,["class"])}const Ko=oe(Eo,[["render",Mo]]);export{ft as I,Ko as N,Fo as _}; -//# sourceMappingURL=NcSelect-Czzsi3P_-DLFUGW7z.chunk.mjs.map +https://vue-select.org/api/props.html#getoptionkey`,e,t)}}},onTab:{type:Function,default:function(){this.selectOnTab&&!this.isComposing&&this.typeAheadSelect()}},taggable:{type:Boolean,default:!1},tabindex:{type:Number,default:null},pushTags:{type:Boolean,default:!1},filterable:{type:Boolean,default:!0},filterBy:{type:Function,default(e,t,o){return(t||"").toLocaleLowerCase().indexOf(o.toLocaleLowerCase())>-1}},filter:{type:Function,default(e,t){return e.filter(o=>{let n=this.getOptionLabel(o);return typeof n=="number"&&(n=n.toString()),this.filterBy(o,n,t)})}},createOption:{type:Function,default(e){return typeof this.optionList[0]=="object"?{[this.label]:e}:e}},resetOnOptionsChange:{default:!1,validator:e=>["function","boolean"].includes(typeof e)},clearSearchOnBlur:{type:Function,default:function({clearSearchOnSelect:e,multiple:t}){return e&&!t}},noDrop:{type:Boolean,default:!1},inputId:{type:String},dir:{type:String,default:"auto"},selectOnTab:{type:Boolean,default:!1},selectOnKeyCodes:{type:Array,default:()=>[13]},searchInputQuerySelector:{type:String,default:"[type=search]"},mapKeydown:{type:Function,default:(e,t)=>e},appendToBody:{type:Boolean,default:!1},calculatePosition:{type:Function,default(e,t,{width:o,top:n,left:s}){e.style.top=n,e.style.left=s,e.style.width=o}},dropdownShouldOpen:{type:Function,default({noDrop:e,open:t,mutableLoading:o}){return e?!1:t&&!o}},uid:{type:[String,Number],default:()=>mo()}},data(){return{search:"",open:!1,isComposing:!1,pushedTags:[],_value:[],deselectButtons:[]}},computed:{isReducingValues(){return this.$props.reduce!==this.$options.props.reduce.default},isTrackingValues(){return typeof this.modelValue>"u"||this.isReducingValues},selectedValue(){let e=this.modelValue;return this.isTrackingValues&&(e=this.$data._value),e!=null&&e!==""?[].concat(e):[]},optionList(){return this.options.concat(this.pushTags?this.pushedTags:[])},searchEl(){return this.$slots.search?this.$refs.selectedOptions.querySelector(this.searchInputQuerySelector):this.$refs.search},scope(){const e={search:this.search,loading:this.loading,searching:this.searching,filteredOptions:this.filteredOptions};return{search:{attributes:M({disabled:this.disabled,placeholder:this.searchPlaceholder,tabindex:this.tabindex,readonly:!this.searchable,id:this.inputId,"aria-autocomplete":"list","aria-labelledby":`vs${this.uid}__combobox`,"aria-controls":`vs${this.uid}__listbox`,ref:"search",type:"search",autocomplete:this.autocomplete,value:this.search},this.dropdownOpen&&this.filteredOptions[this.typeAheadPointer]?{"aria-activedescendant":`vs${this.uid}__option-${this.typeAheadPointer}`}:{}),events:{compositionstart:()=>this.isComposing=!0,compositionend:()=>this.isComposing=!1,keydown:this.onSearchKeyDown,blur:this.onSearchBlur,focus:this.onSearchFocus,input:t=>this.search=t.target.value}},spinner:{loading:this.mutableLoading},noOptions:{search:this.search,loading:this.mutableLoading,searching:this.searching},openIndicator:{attributes:{ref:"openIndicator",role:"presentation",class:"vs__open-indicator"}},listHeader:e,listFooter:e,header:Ve(M({},e),{deselect:this.deselect}),footer:Ve(M({},e),{deselect:this.deselect})}},childComponents(){return M(M({},Be),this.components)},stateClasses(){return{"vs--open":this.dropdownOpen,"vs--single":!this.multiple,"vs--multiple":this.multiple,"vs--searching":this.searching&&!this.noDrop,"vs--searchable":this.searchable&&!this.noDrop,"vs--unsearchable":!this.searchable,"vs--loading":this.mutableLoading,"vs--disabled":this.disabled}},searching(){return!!this.search},dropdownOpen(){return this.dropdownShouldOpen(this)},searchPlaceholder(){return this.isValueEmpty&&this.placeholder?this.placeholder:void 0},filteredOptions(){const e=[].concat(this.optionList);if(!this.filterable&&!this.taggable)return e;const t=this.search.length?this.filter(e,this.search,this):e;if(this.taggable&&this.search.length){const o=this.createOption(this.search);this.optionExists(o)||t.unshift(o)}return t},isValueEmpty(){return this.selectedValue.length===0},showClearButton(){return!this.multiple&&this.clearable&&!this.open&&!this.isValueEmpty}},watch:{options(e,t){const o=()=>typeof this.resetOnOptionsChange=="function"?this.resetOnOptionsChange(e,t,this.selectedValue):this.resetOnOptionsChange;!this.taggable&&o()&&this.clearSelection(),this.modelValue&&this.isTrackingValues&&this.setInternalValueFromOptions(this.modelValue)},modelValue:{immediate:!0,handler(e){this.isTrackingValues&&this.setInternalValueFromOptions(e)}},multiple(){this.clearSelection()},open(e){this.$emit(e?"open":"close")}},created(){this.mutableLoading=this.loading},methods:{setInternalValueFromOptions(e){Array.isArray(e)?this.$data._value=e.map(t=>this.findOptionFromReducedValue(t)):this.$data._value=this.findOptionFromReducedValue(e)},select(e){this.$emit("option:selecting",e),this.isOptionSelected(e)?this.deselectFromDropdown&&(this.clearable||this.multiple&&this.selectedValue.length>1)&&this.deselect(e):(this.taggable&&!this.optionExists(e)&&(this.$emit("option:created",e),this.pushTag(e)),this.multiple&&(e=this.selectedValue.concat(e)),this.updateValue(e),this.$emit("option:selected",e)),this.onAfterSelect(e)},deselect(e){this.$emit("option:deselecting",e),this.updateValue(this.selectedValue.filter(t=>!this.optionComparator(t,e))),this.$emit("option:deselected",e)},clearSelection(){this.updateValue(this.multiple?[]:null)},onAfterSelect(e){this.closeOnSelect&&(this.open=!this.open,this.searchEl.blur()),this.clearSearchOnSelect&&(this.search="")},updateValue(e){typeof this.modelValue>"u"&&(this.$data._value=e),e!==null&&(Array.isArray(e)?e=e.map(t=>this.reduce(t)):e=this.reduce(e)),this.$emit("update:modelValue",e)},toggleDropdown(e){const t=e.target!==this.searchEl;t&&e.preventDefault();const o=[...this.deselectButtons||[],this.$refs.clearButton];if(this.searchEl===void 0||o.filter(Boolean).some(n=>n.contains(e.target)||n===e.target)){e.preventDefault();return}this.open&&t?this.searchEl.blur():this.disabled||(this.open=!0,this.searchEl.focus())},isOptionSelected(e){return this.selectedValue.some(t=>this.optionComparator(t,e))},isOptionDeselectable(e){return this.isOptionSelected(e)&&this.deselectFromDropdown},optionComparator(e,t){return this.getOptionKey(e)===this.getOptionKey(t)},findOptionFromReducedValue(e){const t=n=>JSON.stringify(this.reduce(n))===JSON.stringify(e),o=[...this.options,...this.pushedTags].filter(t);return o.length===1?o[0]:o.find(n=>this.optionComparator(n,this.$data._value))||e},closeSearchOptions(){this.open=!1,this.$emit("search:blur")},maybeDeleteValue(){if(!this.searchEl.value.length&&this.selectedValue&&this.selectedValue.length&&this.clearable){let e=null;this.multiple&&(e=[...this.selectedValue.slice(0,this.selectedValue.length-1)]),this.updateValue(e)}},optionExists(e){return this.optionList.some(t=>this.optionComparator(t,e))},normalizeOptionForSlot(e){return typeof e=="object"?e:{[this.label]:e}},pushTag(e){this.pushedTags.push(e)},onEscape(){this.search.length?this.search="":this.searchEl.blur()},onSearchBlur(){if(this.mousedown&&!this.searching)this.mousedown=!1;else{const{clearSearchOnSelect:e,multiple:t}=this;this.clearSearchOnBlur({clearSearchOnSelect:e,multiple:t})&&(this.search=""),this.closeSearchOptions();return}if(this.search.length===0&&this.options.length===0){this.closeSearchOptions();return}},onSearchFocus(){this.open=!0,this.$emit("search:focus")},onMousedown(){this.mousedown=!0},onMouseUp(){this.mousedown=!1},onSearchKeyDown(e){const t=s=>(s.preventDefault(),!this.isComposing&&this.typeAheadSelect()),o={8:s=>this.maybeDeleteValue(),9:s=>this.onTab(),27:s=>this.onEscape(),38:s=>(s.preventDefault(),this.typeAheadUp()),40:s=>(s.preventDefault(),this.typeAheadDown())};this.selectOnKeyCodes.forEach(s=>o[s]=t);const n=this.mapKeydown(o,this);if(typeof n[e.keyCode]=="function")return n[e.keyCode](e)}}},bo=["dir"],wo=["id","aria-expanded","aria-owns"],vo={ref:"selectedOptions",class:"vs__selected-options"},Oo=["disabled","title","aria-label","onClick"],xo={ref:"actions",class:"vs__actions"},So=["disabled"],Lo={class:"vs__spinner"},Co=["id"],_o=["id","aria-selected","onMouseover","onClick"],$o={key:0,class:"vs__no-options"},Vo=te(" Sorry, no matching options. "),Bo=["id"];function To(e,t,o,n,s,i){const r=Ue("append-to-body");return u(),f("div",{dir:o.dir,class:ve(["v-select",i.stateClasses])},[b(e.$slots,"header",w(x(i.scope.header))),S("div",{id:`vs${o.uid}__combobox`,ref:"toggle",class:"vs__dropdown-toggle",role:"combobox","aria-expanded":i.dropdownOpen.toString(),"aria-owns":`vs${o.uid}__listbox`,"aria-label":"Search for option",onMousedown:t[1]||(t[1]=l=>i.toggleDropdown(l))},[S("div",vo,[(u(!0),f(ye,null,ue(i.selectedValue,(l,a)=>b(e.$slots,"selected-option-container",{option:i.normalizeOptionForSlot(l),deselect:i.deselect,multiple:o.multiple,disabled:o.disabled},()=>[(u(),f("span",{key:o.getOptionKey(l),class:"vs__selected"},[b(e.$slots,"selected-option",w(x(i.normalizeOptionForSlot(l))),()=>[te(z(o.getOptionLabel(l)),1)]),o.multiple?(u(),f("button",{key:0,ref_for:!0,ref:h=>s.deselectButtons[a]=h,disabled:o.disabled,type:"button",class:"vs__deselect",title:`Deselect ${o.getOptionLabel(l)}`,"aria-label":`Deselect ${o.getOptionLabel(l)}`,onClick:h=>i.deselect(l)},[(u(),I(re(i.childComponents.Deselect)))],8,Oo)):P("",!0)]))])),256)),b(e.$slots,"search",w(x(i.scope.search)),()=>[S("input",E({class:"vs__search"},i.scope.search.attributes,Fe(i.scope.search.events)),null,16)])],512),S("div",xo,[ae(S("button",{ref:"clearButton",disabled:o.disabled,type:"button",class:"vs__clear",title:"Clear Selected","aria-label":"Clear Selected",onClick:t[0]||(t[0]=(...l)=>i.clearSelection&&i.clearSelection(...l))},[(u(),I(re(i.childComponents.Deselect)))],8,So),[[be,i.showClearButton]]),b(e.$slots,"open-indicator",w(x(i.scope.openIndicator)),()=>[o.noDrop?P("",!0):(u(),I(re(i.childComponents.OpenIndicator),w(E({key:0},i.scope.openIndicator.attributes)),null,16))]),b(e.$slots,"spinner",w(x(i.scope.spinner)),()=>[ae(S("div",Lo,"Loading...",512),[[be,e.mutableLoading]])])],512)],40,wo),q(Je,{name:o.transition},{default:F(()=>[i.dropdownOpen?ae((u(),f("ul",{id:`vs${o.uid}__listbox`,ref:"dropdownMenu",key:`vs${o.uid}__listbox`,class:"vs__dropdown-menu",role:"listbox",tabindex:"-1",onMousedown:t[2]||(t[2]=we((...l)=>i.onMousedown&&i.onMousedown(...l),["prevent"])),onMouseup:t[3]||(t[3]=(...l)=>i.onMouseUp&&i.onMouseUp(...l))},[b(e.$slots,"list-header",w(x(i.scope.listHeader))),(u(!0),f(ye,null,ue(i.filteredOptions,(l,a)=>(u(),f("li",{id:`vs${o.uid}__option-${a}`,key:o.getOptionKey(l),role:"option",class:ve(["vs__dropdown-option",{"vs__dropdown-option--deselect":i.isOptionDeselectable(l)&&a===e.typeAheadPointer,"vs__dropdown-option--selected":i.isOptionSelected(l),"vs__dropdown-option--highlight":a===e.typeAheadPointer,"vs__dropdown-option--disabled":!o.selectable(l)}]),"aria-selected":a===e.typeAheadPointer?!0:null,onMouseover:h=>o.selectable(l)?e.typeAheadPointer=a:null,onClick:we(h=>o.selectable(l)?i.select(l):null,["prevent","stop"])},[b(e.$slots,"option",w(x(i.normalizeOptionForSlot(l))),()=>[te(z(o.getOptionLabel(l)),1)])],42,_o))),128)),i.filteredOptions.length===0?(u(),f("li",$o,[b(e.$slots,"no-options",w(x(i.scope.noOptions)),()=>[Vo])])):P("",!0),b(e.$slots,"list-footer",w(x(i.scope.listFooter)))],40,Co)),[[r]]):(u(),f("ul",{key:1,id:`vs${o.uid}__listbox`,role:"listbox",style:{display:"none",visibility:"hidden"}},null,8,Bo))]),_:3},8,["name"]),b(e.$slots,"footer",w(x(i.scope.footer)))],10,bo)}const A=me(yo,[["render",To]]);function Ie(e,t){const o=[];let n=0,s=e.toLowerCase().indexOf(t.toLowerCase(),n),i=0;for(;s>-1&&i++<e.length;)n=s+t.length,o.push({start:s,end:n}),s=e.toLowerCase().indexOf(t.toLowerCase(),n);return o}const Fo=Xe({name:"NcHighlight",props:{text:{type:String,default:""},search:{type:String,default:""},highlight:{type:Array,default:()=>[]}},computed:{ranges(){let e=[];return!this.search&&this.highlight.length===0||(this.highlight.length>0?e=this.highlight:e=Ie(this.text,this.search),e.forEach((t,o)=>{t.end<t.start&&(e[o]={start:t.end,end:t.start})}),e=e.reduce((t,o)=>(o.start<this.text.length&&o.end>0&&t.push({start:o.start<0?0:o.start,end:o.end>this.text.length?this.text.length:o.end}),t),[]),e.sort((t,o)=>t.start-o.start),e=e.reduce((t,o)=>{if(!t.length)t.push(o);else{const n=t.length-1;t[n].end>=o.start?t[n]={start:t[n].start,end:Math.max(t[n].end,o.end)}:t.push(o)}return t},[])),e},chunks(){if(this.ranges.length===0)return[{start:0,end:this.text.length,highlight:!1,text:this.text}];const e=[];let t=0,o=0;for(;t<this.text.length;){const n=this.ranges[o];if(n.start===t){e.push({...n,highlight:!0,text:this.text.slice(n.start,n.end)}),o++,t=n.end,o>=this.ranges.length&&t<this.text.length&&(e.push({start:t,end:this.text.length,highlight:!1,text:this.text.slice(t)}),t=this.text.length);continue}e.push({start:t,end:n.start,highlight:!1,text:this.text.slice(t,n.start)}),t=n.start}return e}},render(){return this.ranges.length?G("span",{},this.chunks.map(e=>e.highlight?G("strong",{},e.text):e.text)):G("span",{},this.text)}}),ko={name:"NcEllipsisedOption",components:{NcHighlight:Fo},props:{name:{type:String,default:""},search:{type:String,default:""}},computed:{needsTruncate(){return this.name&&this.name.length>=10},split(){return this.name.length-Math.min(Math.floor(this.name.length/2),10)},part1(){return this.needsTruncate?this.name.slice(0,this.split):this.name},part2(){return this.needsTruncate?this.name.slice(this.split):""},highlight1(){return this.search?Ie(this.name,this.search):[]},highlight2(){return this.highlight1.map(e=>({start:e.start-this.split,end:e.end-this.split}))}}},Do=["title"];function Ao(e,t,o,n,s,i){const r=K("NcHighlight");return u(),f("span",{dir:"auto",class:"name-parts",title:o.name},[q(r,{class:"name-parts__first",text:i.part1,search:o.search,highlight:i.highlight1},null,8,["text","search","highlight"]),i.part2?(u(),I(r,{key:0,class:"name-parts__last",text:i.part2,search:o.search,highlight:i.highlight2},null,8,["text","search","highlight"])):P("",!0)],8,Do)}const Po=oe(ko,[["render",Ao],["__scopeId","data-v-a612f185"]]);Qe(Ze);const Eo={name:"NcSelect",components:{ChevronDown:rt,NcEllipsisedOption:Po,NcLoadingIcon:Ge,VueSelect:A},props:{...A.props,...A.mixins.reduce((e,t)=>({...e,...t.props}),{}),ariaLabelClearSelected:{type:String,default:Z("Clear selected")},ariaLabelCombobox:{type:String,default:null},ariaLabelListbox:{type:String,default:Z("Options")},ariaLabelDeselectOption:{type:Function,default:e=>Z("Deselect {option}",{option:e})},appendToBody:{type:Boolean,default:!0},calculatePosition:{type:Function,default:null},keepOpen:{type:Boolean,default:!1},components:{type:Object,default:()=>({Deselect:{render:()=>G(ft,{size:20,fillColor:"var(--vs-controls-color)",style:[{cursor:"pointer"}]})}})},limit:{type:Number,default:null},disabled:{type:Boolean,default:!1},dropdownShouldOpen:{type:Function,default:({noDrop:e,open:t})=>e?!1:t},filterBy:{type:Function,default:null},inputClass:{type:[String,Object],default:null},inputId:{type:String,default:()=>Oe()},inputLabel:{type:String,default:null},labelOutside:{type:Boolean,default:!1},keyboardFocusBorder:{type:Boolean,default:!0},label:{type:String,default:null},loading:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},noWrap:{type:Boolean,default:!1},options:{type:Array,default:()=>[]},placeholder:{type:String,default:""},mapKeydown:{type:Function,default(e,t){return{...e,27:o=>{t.open&&o.stopPropagation(),e[27](o)}}}},uid:{type:String,default:()=>Oe()},placement:{type:String,default:"bottom"},resetFocusOnOptionsChange:{type:Boolean,default:!0},modelValue:{type:[String,Number,Object,Array],default:null},required:{type:Boolean,default:!1}," ":{}},emits:[" ","update:modelValue"],setup(){const e=Number.parseInt(window.getComputedStyle(document.body).getPropertyValue("--default-clickable-area")),t=Number.parseInt(window.getComputedStyle(document.body).getPropertyValue("--default-grid-baseline"));return{avatarSize:e-2*t,isLegacy:et}},data(){return{search:""}},computed:{inputRequired(){return this.required?this.modelValue===null||Array.isArray(this.modelValue)&&this.modelValue.length===0:null},localCalculatePosition(){return this.calculatePosition!==null?this.calculatePosition:(e,t,{width:o})=>{e.style.width=o;const n={name:"addClass",fn(){return e.classList.add("vs__dropdown-menu--floating"),{}}},s={name:"togglePlacementClass",fn({placement:r}){return t.$el.classList.toggle("select--drop-up",r==="top"),e.classList.toggle("vs__dropdown-menu--floating-placement-top",r==="top"),{}}},i=()=>{Kt(t.$refs.toggle,e,{placement:this.placement,middleware:[jt(-1),n,s,Ht(),zt({limiter:Wt()})]}).then(({x:r,y:l})=>{Object.assign(e.style,{left:`${r}px`,top:`${l}px`,width:`${t.$refs.toggle.getBoundingClientRect().width}px`})})};return It(t.$refs.toggle,e,i)}},localFilterBy(){return this.filterBy??A.props.filterBy.default},localLabel(){return this.label??A.props.label.default},propsToForward(){const e=[...Object.keys(A.props),...A.mixins.flatMap(t=>Object.keys(t.props??{}))];return{...Object.fromEntries(Object.entries(this.$props).filter(([t,o])=>e.includes(t))),calculatePosition:this.localCalculatePosition,closeOnSelect:!this.keepOpen,filterBy:this.localFilterBy,label:this.localLabel}}},mounted(){!this.labelOutside&&!this.inputLabel&&this.ariaLabelCombobox,this.inputLabel&&this.ariaLabelCombobox},methods:{t:Z}},Ro=["for"],Mo=["required"];function No(e,t,o,n,s,i){const r=K("ChevronDown"),l=K("NcEllipsisedOption"),a=K("NcLoadingIcon"),h=K("VueSelect");return u(),I(h,E({class:["select",{"select--legacy":n.isLegacy,"select--no-wrap":o.noWrap}]},i.propsToForward,{onSearch:t[0]||(t[0]=c=>s.search=c),"onUpdate:modelValue":t[1]||(t[1]=c=>e.$emit("update:modelValue",c))}),Ye({search:F(({attributes:c,events:d})=>[S("input",E({class:["vs__search",[o.inputClass]]},c,{required:i.inputRequired,dir:"auto"},Fe(d,!0)),null,16,Mo)]),"open-indicator":F(({attributes:c})=>[q(r,E(c,{"fill-color":"var(--vs-controls-color)",style:{cursor:o.disabled?null:"pointer"},size:26}),null,16,["style"])]),option:F(c=>[b(e.$slots,"option",w(x(c)),()=>[q(l,{name:String(c[i.localLabel]),search:s.search},null,8,["name","search"])])]),"selected-option":F(c=>[b(e.$slots,"selected-option",{vBind:c},()=>[q(l,{name:String(c[i.localLabel]),search:s.search},null,8,["name","search"])])]),spinner:F(c=>[c.loading?(u(),I(a,{key:0})):P("",!0)]),"no-options":F(()=>[te(z(i.t("No results")),1)]),_:2},[!o.labelOutside&&o.inputLabel?{name:"header",fn:F(()=>[S("label",{for:o.inputId,class:"select__label"},z(o.inputLabel),9,Ro)]),key:"0"}:void 0,ue(e.$slots,(c,d)=>({name:d,fn:F(g=>[b(e.$slots,d,w(x(g)))])}))]),1040,["class"])}const Ko=oe(Eo,[["render",No]]);export{ft as I,Ko as N,Fo as _}; +//# sourceMappingURL=NcSelect-Czzsi3P_-BKaYvmLF.chunk.mjs.map diff --git a/dist/NcSelect-Czzsi3P_-DLFUGW7z.chunk.mjs.license b/dist/NcSelect-Czzsi3P_-BKaYvmLF.chunk.mjs.license similarity index 100% rename from dist/NcSelect-Czzsi3P_-DLFUGW7z.chunk.mjs.license rename to dist/NcSelect-Czzsi3P_-BKaYvmLF.chunk.mjs.license diff --git a/dist/NcSelect-Czzsi3P_-DLFUGW7z.chunk.mjs.map b/dist/NcSelect-Czzsi3P_-BKaYvmLF.chunk.mjs.map similarity index 99% rename from dist/NcSelect-Czzsi3P_-DLFUGW7z.chunk.mjs.map rename to dist/NcSelect-Czzsi3P_-BKaYvmLF.chunk.mjs.map index 9348148604fbc..78cc22a147cc9 100644 --- a/dist/NcSelect-Czzsi3P_-DLFUGW7z.chunk.mjs.map +++ b/dist/NcSelect-Czzsi3P_-BKaYvmLF.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"NcSelect-Czzsi3P_-DLFUGW7z.chunk.mjs","sources":["../node_modules/@nextcloud/vue/dist/chunks/ChevronDown-FiGpp0KT.mjs","../node_modules/@nextcloud/vue/dist/chunks/Close-D6ngJ4t9.mjs","../node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../node_modules/vue-select/dist/vue-select.es.js","../node_modules/@nextcloud/vue/dist/chunks/NcHighlight.vue_vue_type_script_lang-DnWQDM_2.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcEllipsisedOption-dT-CtXYp.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcSelect-Czzsi3P_.mjs"],"sourcesContent":["import { createElementBlock, openBlock, mergeProps, createElementVNode, createCommentVNode, toDisplayString } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"ChevronDownIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3 = { d: \"M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z\" };\nconst _hoisted_4 = { key: 0 };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon chevron-down-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2))\n ], 16, _hoisted_1);\n}\nconst ChevronDown = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nexport {\n ChevronDown as C\n};\n//# sourceMappingURL=ChevronDown-FiGpp0KT.mjs.map\n","import { createElementBlock, openBlock, mergeProps, createElementVNode, createCommentVNode, toDisplayString } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"CloseIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3 = { d: \"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z\" };\nconst _hoisted_4 = { key: 0 };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon close-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2))\n ], 16, _hoisted_1);\n}\nconst IconClose = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nexport {\n IconClose as I\n};\n//# sourceMappingURL=Close-D6ngJ4t9.mjs.map\n","function hasWindow() {\n return typeof window !== 'undefined';\n}\nfunction getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n if (!hasWindow() || typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nconst invalidOverflowDisplayValues = /*#__PURE__*/new Set(['inline', 'contents']);\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !invalidOverflowDisplayValues.has(display);\n}\nconst tableElements = /*#__PURE__*/new Set(['table', 'td', 'th']);\nfunction isTableElement(element) {\n return tableElements.has(getNodeName(element));\n}\nconst topLayerSelectors = [':popover-open', ':modal'];\nfunction isTopLayer(element) {\n return topLayerSelectors.some(selector => {\n try {\n return element.matches(selector);\n } catch (_e) {\n return false;\n }\n });\n}\nconst transformProperties = ['transform', 'translate', 'scale', 'rotate', 'perspective'];\nconst willChangeValues = ['transform', 'translate', 'scale', 'rotate', 'perspective', 'filter'];\nconst containValues = ['paint', 'layout', 'strict', 'content'];\nfunction isContainingBlock(elementOrCss) {\n const webkit = isWebKit();\n const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n // https://drafts.csswg.org/css-transforms-2/#individual-transforms\n return transformProperties.some(value => css[value] ? css[value] !== 'none' : false) || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || willChangeValues.some(value => (css.willChange || '').includes(value)) || containValues.some(value => (css.contain || '').includes(value));\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else if (isTopLayer(currentNode)) {\n return null;\n }\n currentNode = getParentNode(currentNode);\n }\n return null;\n}\nfunction isWebKit() {\n if (typeof CSS === 'undefined' || !CSS.supports) return false;\n return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nconst lastTraversableNodeNames = /*#__PURE__*/new Set(['html', 'body', '#document']);\nfunction isLastTraversableNode(node) {\n return lastTraversableNodeNames.has(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.scrollX,\n scrollTop: element.scrollY\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n const frameElement = getFrameElement(win);\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\nfunction getFrameElement(win) {\n return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getFrameElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isTopLayer, isWebKit };\n","import { rectToClientRect, arrow as arrow$1, autoPlacement as autoPlacement$1, detectOverflow as detectOverflow$1, flip as flip$1, hide as hide$1, inline as inline$1, limitShift as limitShift$1, offset as offset$1, shift as shift$1, size as size$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle as getComputedStyle$1, isHTMLElement, isElement, getWindow, isWebKit, getFrameElement, getNodeScroll, getDocumentElement, isTopLayer, getNodeName, isOverflowElement, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle$1(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentWin = win;\n let currentIFrame = getFrameElement(currentWin);\n while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle$1(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentWin = getWindow(currentIFrame);\n currentIFrame = getFrameElement(currentWin);\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\n// If <html> has a CSS width greater than the viewport, then this will be\n// incorrect for RTL.\nfunction getWindowScrollBarX(element, rect) {\n const leftScroll = getNodeScroll(element).scrollLeft;\n if (!rect) {\n return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;\n }\n return rect.left + leftScroll;\n}\n\nfunction getHTMLOffset(documentElement, scroll) {\n const htmlRect = documentElement.getBoundingClientRect();\n const x = htmlRect.left + scroll.scrollLeft - getWindowScrollBarX(documentElement, htmlRect);\n const y = htmlRect.top + scroll.scrollTop;\n return {\n x,\n y\n };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n elements,\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isFixed = strategy === 'fixed';\n const documentElement = getDocumentElement(offsetParent);\n const topLayer = elements ? isTopLayer(elements.floating) : false;\n if (offsetParent === documentElement || topLayer && isFixed) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle$1(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Safety check: ensure the scrollbar space is reasonable in case this\n// calculation is affected by unusual styles.\n// Most scrollbars leave 15-18px of space.\nconst SCROLLBAR_MAX = 25;\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n const windowScrollbarX = getWindowScrollBarX(html);\n // <html> `overflow: hidden` + `scrollbar-gutter: stable` reduces the\n // visual width of the <html> but this is not considered in the size\n // of `html.clientWidth`.\n if (windowScrollbarX <= 0) {\n const doc = html.ownerDocument;\n const body = doc.body;\n const bodyStyles = getComputedStyle(body);\n const bodyMarginInline = doc.compatMode === 'CSS1Compat' ? parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0 : 0;\n const clippingStableScrollbarWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline);\n if (clippingStableScrollbarWidth <= SCROLLBAR_MAX) {\n width -= clippingStableScrollbarWidth;\n }\n } else if (windowScrollbarX <= SCROLLBAR_MAX) {\n // If the <body> scrollbar is on the left, the width needs to be extended\n // by the scrollbar amount so there isn't extra space on the right.\n width += windowScrollbarX;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nconst absoluteOrFixed = /*#__PURE__*/new Set(['absolute', 'fixed']);\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y,\n width: clippingAncestor.width,\n height: clippingAncestor.height\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle$1(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle$1(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle$1(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && absoluteOrFixed.has(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n const {\n width,\n height\n } = getCssDimensions(element);\n return {\n width,\n height\n };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n\n // If the <body> scrollbar appears on the left (e.g. RTL systems). Use\n // Firefox with layout.scrollbar.side = 3 in about:config to test this.\n function setLeftRTLScrollbarOffset() {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n setLeftRTLScrollbarOffset();\n }\n }\n if (isFixed && !isOffsetParentAnElement && documentElement) {\n setLeftRTLScrollbarOffset();\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;\n const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;\n return {\n x,\n y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction isStaticPositioned(element) {\n return getComputedStyle$1(element).position === 'static';\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle$1(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n let rawOffsetParent = element.offsetParent;\n\n // Firefox returns the <html> element as the offsetParent if it's non-static,\n // while Chrome and Safari return the <body> element. The <body> element must\n // be used to perform the correct calculations even if the <html> element is\n // non-static.\n if (getDocumentElement(element) === rawOffsetParent) {\n rawOffsetParent = rawOffsetParent.ownerDocument.body;\n }\n return rawOffsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const win = getWindow(element);\n if (isTopLayer(element)) {\n return win;\n }\n if (!isHTMLElement(element)) {\n let svgOffsetParent = getParentNode(element);\n while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {\n if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\n return svgOffsetParent;\n }\n svgOffsetParent = getParentNode(svgOffsetParent);\n }\n return win;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {\n return win;\n }\n return offsetParent || getContainingBlock(element) || win;\n}\n\nconst getElementRects = async function (data) {\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n const floatingDimensions = await getDimensionsFn(data.floating);\n return {\n reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n floating: {\n x: 0,\n y: 0,\n width: floatingDimensions.width,\n height: floatingDimensions.height\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle$1(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\nfunction rectsAreEqual(a, b) {\n return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n}\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n var _io;\n clearTimeout(timeoutId);\n (_io = io) == null || _io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const elementRectForRootMargin = element.getBoundingClientRect();\n const {\n left,\n top,\n width,\n height\n } = elementRectForRootMargin;\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n // If the reference is clipped, the ratio is 0. Throttle the refresh\n // to prevent an infinite loop of updates.\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 1000);\n } else {\n refresh(false, ratio);\n }\n }\n if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {\n // It's possible that even though the ratio is reported as 1, the\n // element is not actually fully within the IntersectionObserver's root\n // area anymore. This can happen under performance constraints. This may\n // be a bug in the browser's IntersectionObserver implementation. To\n // work around this, we compare the element's bounding rect now with\n // what it was at the time we created the IntersectionObserver. If they\n // are not equal then the element moved, so we refresh.\n refresh();\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle <iframe>s\n root: root.ownerDocument\n });\n } catch (_e) {\n io = new IntersectionObserver(handleObserve, options);\n }\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = typeof ResizeObserver === 'function',\n layoutShift = typeof IntersectionObserver === 'function',\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...getOverflowAncestors(floating)] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let reobserveFrame = -1;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver(_ref => {\n let [firstEntry] = _ref;\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n // Prevent update loops when using the `size` middleware.\n // https://github.com/floating-ui/floating-ui/issues/1740\n resizeObserver.unobserve(floating);\n cancelAnimationFrame(reobserveFrame);\n reobserveFrame = requestAnimationFrame(() => {\n var _resizeObserver;\n (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);\n });\n }\n update();\n });\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n resizeObserver.observe(floating);\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && !rectsAreEqual(prevRefRect, nextRefRect)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n var _resizeObserver2;\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n cleanupIo == null || cleanupIo();\n (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nconst detectOverflow = detectOverflow$1;\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = offset$1;\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = autoPlacement$1;\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = shift$1;\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = flip$1;\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = size$1;\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = hide$1;\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = arrow$1;\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = inline$1;\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = limitShift$1;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n */\nconst computePosition = (reference, floating, options) => {\n // This caches the expensive `getClippingElementAncestors` function so that\n // multiple lifecycle resets re-use the same result. It only lives for a\n // single call. If other functions become expensive, we can add them as well.\n const cache = new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition$1(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, platform, shift, size };\n","var E = Object.defineProperty, M = Object.defineProperties;\nvar x = Object.getOwnPropertyDescriptors;\nvar V = Object.getOwnPropertySymbols;\nvar I = Object.prototype.hasOwnProperty, N = Object.prototype.propertyIsEnumerable;\nvar C = (e, t, s) => t in e ? E(e, t, { enumerable: !0, configurable: !0, writable: !0, value: s }) : e[t] = s, f = (e, t) => {\n for (var s in t || (t = {}))\n I.call(t, s) && C(e, s, t[s]);\n if (V)\n for (var s of V(t))\n N.call(t, s) && C(e, s, t[s]);\n return e;\n}, m = (e, t) => M(e, x(t));\nimport { openBlock as a, createElementBlock as h, createElementVNode as u, resolveDirective as K, normalizeClass as A, renderSlot as r, normalizeProps as d, guardReactiveProps as c, Fragment as B, renderList as L, createTextVNode as v, toDisplayString as D, createBlock as b, resolveDynamicComponent as _, createCommentVNode as O, mergeProps as k, toHandlers as j, withDirectives as w, vShow as P, createVNode as $, Transition as R, withCtx as z, withModifiers as F } from \"vue\";\nconst U = {\n props: {\n autoscroll: {\n type: Boolean,\n default: !0\n }\n },\n watch: {\n typeAheadPointer() {\n this.autoscroll && this.maybeAdjustScroll();\n },\n open(e) {\n this.autoscroll && e && this.$nextTick(() => this.maybeAdjustScroll());\n }\n },\n methods: {\n maybeAdjustScroll() {\n var t;\n const e = ((t = this.$refs.dropdownMenu) == null ? void 0 : t.children[this.typeAheadPointer]) || !1;\n if (e) {\n const s = this.getDropdownViewport(), { top: n, bottom: l, height: i } = e.getBoundingClientRect();\n if (n < s.top)\n return this.$refs.dropdownMenu.scrollTop = e.offsetTop;\n if (l > s.bottom)\n return this.$refs.dropdownMenu.scrollTop = e.offsetTop - (s.height - i);\n }\n },\n getDropdownViewport() {\n return this.$refs.dropdownMenu ? this.$refs.dropdownMenu.getBoundingClientRect() : {\n height: 0,\n top: 0,\n bottom: 0\n };\n }\n }\n}, q = {\n data() {\n return {\n typeAheadPointer: -1\n };\n },\n watch: {\n filteredOptions() {\n for (let e = 0; e < this.filteredOptions.length; e++)\n if (this.selectable(this.filteredOptions[e])) {\n this.typeAheadPointer = e;\n break;\n }\n },\n open(e) {\n e && this.typeAheadToLastSelected();\n },\n selectedValue() {\n this.open && this.typeAheadToLastSelected();\n }\n },\n methods: {\n typeAheadUp() {\n for (let e = this.typeAheadPointer - 1; e >= 0; e--)\n if (this.selectable(this.filteredOptions[e])) {\n this.typeAheadPointer = e;\n break;\n }\n },\n typeAheadDown() {\n for (let e = this.typeAheadPointer + 1; e < this.filteredOptions.length; e++)\n if (this.selectable(this.filteredOptions[e])) {\n this.typeAheadPointer = e;\n break;\n }\n },\n typeAheadSelect() {\n const e = this.filteredOptions[this.typeAheadPointer];\n e && this.selectable(e) && this.select(e);\n },\n typeAheadToLastSelected() {\n this.typeAheadPointer = this.selectedValue.length !== 0 ? this.filteredOptions.indexOf(this.selectedValue[this.selectedValue.length - 1]) : -1;\n }\n }\n}, J = {\n props: {\n loading: {\n type: Boolean,\n default: !1\n }\n },\n data() {\n return {\n mutableLoading: !1\n };\n },\n watch: {\n search() {\n this.$emit(\"search\", this.search, this.toggleLoading);\n },\n loading(e) {\n this.mutableLoading = e;\n }\n },\n methods: {\n toggleLoading(e = null) {\n return e == null ? this.mutableLoading = !this.mutableLoading : this.mutableLoading = e;\n }\n }\n}, S = (e, t) => {\n const s = e.__vccOpts || e;\n for (const [n, l] of t)\n s[n] = l;\n return s;\n}, H = {}, X = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"10\",\n height: \"10\"\n}, Y = /* @__PURE__ */ u(\"path\", { d: \"M6.895455 5l2.842897-2.842898c.348864-.348863.348864-.914488 0-1.263636L9.106534.261648c-.348864-.348864-.914489-.348864-1.263636 0L5 3.104545 2.157102.261648c-.348863-.348864-.914488-.348864-1.263636 0L.261648.893466c-.348864.348864-.348864.914489 0 1.263636L3.104545 5 .261648 7.842898c-.348864.348863-.348864.914488 0 1.263636l.631818.631818c.348864.348864.914773.348864 1.263636 0L5 6.895455l2.842898 2.842897c.348863.348864.914772.348864 1.263636 0l.631818-.631818c.348864-.348864.348864-.914489 0-1.263636L6.895455 5z\" }, null, -1), Q = [\n Y\n];\nfunction G(e, t) {\n return a(), h(\"svg\", X, Q);\n}\nconst W = /* @__PURE__ */ S(H, [[\"render\", G]]), Z = {}, ee = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"14\",\n height: \"10\"\n}, te = /* @__PURE__ */ u(\"path\", { d: \"M9.211364 7.59931l4.48338-4.867229c.407008-.441854.407008-1.158247 0-1.60046l-.73712-.80023c-.407008-.441854-1.066904-.441854-1.474243 0L7 5.198617 2.51662.33139c-.407008-.441853-1.066904-.441853-1.474243 0l-.737121.80023c-.407008.441854-.407008 1.158248 0 1.600461l4.48338 4.867228L7 10l2.211364-2.40069z\" }, null, -1), se = [\n te\n];\nfunction ie(e, t) {\n return a(), h(\"svg\", ee, se);\n}\nconst oe = /* @__PURE__ */ S(Z, [[\"render\", ie]]), T = {\n Deselect: W,\n OpenIndicator: oe\n}, ne = {\n mounted(e, { instance: t }) {\n if (t.appendToBody) {\n const {\n height: s,\n top: n,\n left: l,\n width: i\n } = t.$refs.toggle.getBoundingClientRect();\n let y = window.scrollX || window.pageXOffset, o = window.scrollY || window.pageYOffset;\n e.unbindPosition = t.calculatePosition(e, t, {\n width: i + \"px\",\n left: y + l + \"px\",\n top: o + n + s + \"px\"\n }), document.body.appendChild(e);\n }\n },\n unmounted(e, { instance: t }) {\n t.appendToBody && (e.unbindPosition && typeof e.unbindPosition == \"function\" && e.unbindPosition(), e.parentNode && e.parentNode.removeChild(e));\n }\n};\nfunction le(e) {\n const t = {};\n return Object.keys(e).sort().forEach((s) => {\n t[s] = e[s];\n }), JSON.stringify(t);\n}\nlet ae = 0;\nfunction re() {\n return ++ae;\n}\nconst de = {\n components: f({}, T),\n directives: { appendToBody: ne },\n mixins: [U, q, J],\n compatConfig: {\n MODE: 3\n },\n emits: [\n \"open\",\n \"close\",\n \"update:modelValue\",\n \"search\",\n \"search:compositionstart\",\n \"search:compositionend\",\n \"search:keydown\",\n \"search:blur\",\n \"search:focus\",\n \"search:input\",\n \"option:created\",\n \"option:selecting\",\n \"option:selected\",\n \"option:deselecting\",\n \"option:deselected\"\n ],\n props: {\n modelValue: {},\n components: {\n type: Object,\n default: () => ({})\n },\n options: {\n type: Array,\n default() {\n return [];\n }\n },\n disabled: {\n type: Boolean,\n default: !1\n },\n clearable: {\n type: Boolean,\n default: !0\n },\n deselectFromDropdown: {\n type: Boolean,\n default: !1\n },\n searchable: {\n type: Boolean,\n default: !0\n },\n multiple: {\n type: Boolean,\n default: !1\n },\n placeholder: {\n type: String,\n default: \"\"\n },\n transition: {\n type: String,\n default: \"vs__fade\"\n },\n clearSearchOnSelect: {\n type: Boolean,\n default: !0\n },\n closeOnSelect: {\n type: Boolean,\n default: !0\n },\n label: {\n type: String,\n default: \"label\"\n },\n autocomplete: {\n type: String,\n default: \"off\"\n },\n reduce: {\n type: Function,\n default: (e) => e\n },\n selectable: {\n type: Function,\n default: (e) => !0\n },\n getOptionLabel: {\n type: Function,\n default(e) {\n return typeof e == \"object\" ? e.hasOwnProperty(this.label) ? e[this.label] : console.warn(`[vue-select warn]: Label key \"option.${this.label}\" does not exist in options object ${JSON.stringify(e)}.\nhttps://vue-select.org/api/props.html#getoptionlabel`) : e;\n }\n },\n getOptionKey: {\n type: Function,\n default(e) {\n if (typeof e != \"object\")\n return e;\n try {\n return e.hasOwnProperty(\"id\") ? e.id : le(e);\n } catch (t) {\n return console.warn(`[vue-select warn]: Could not stringify this option to generate unique key. Please provide'getOptionKey' prop to return a unique key for each option.\nhttps://vue-select.org/api/props.html#getoptionkey`, e, t);\n }\n }\n },\n onTab: {\n type: Function,\n default: function() {\n this.selectOnTab && !this.isComposing && this.typeAheadSelect();\n }\n },\n taggable: {\n type: Boolean,\n default: !1\n },\n tabindex: {\n type: Number,\n default: null\n },\n pushTags: {\n type: Boolean,\n default: !1\n },\n filterable: {\n type: Boolean,\n default: !0\n },\n filterBy: {\n type: Function,\n default(e, t, s) {\n return (t || \"\").toLocaleLowerCase().indexOf(s.toLocaleLowerCase()) > -1;\n }\n },\n filter: {\n type: Function,\n default(e, t) {\n return e.filter((s) => {\n let n = this.getOptionLabel(s);\n return typeof n == \"number\" && (n = n.toString()), this.filterBy(s, n, t);\n });\n }\n },\n createOption: {\n type: Function,\n default(e) {\n return typeof this.optionList[0] == \"object\" ? { [this.label]: e } : e;\n }\n },\n resetOnOptionsChange: {\n default: !1,\n validator: (e) => [\"function\", \"boolean\"].includes(typeof e)\n },\n clearSearchOnBlur: {\n type: Function,\n default: function({ clearSearchOnSelect: e, multiple: t }) {\n return e && !t;\n }\n },\n noDrop: {\n type: Boolean,\n default: !1\n },\n inputId: {\n type: String\n },\n dir: {\n type: String,\n default: \"auto\"\n },\n selectOnTab: {\n type: Boolean,\n default: !1\n },\n selectOnKeyCodes: {\n type: Array,\n default: () => [13]\n },\n searchInputQuerySelector: {\n type: String,\n default: \"[type=search]\"\n },\n mapKeydown: {\n type: Function,\n default: (e, t) => e\n },\n appendToBody: {\n type: Boolean,\n default: !1\n },\n calculatePosition: {\n type: Function,\n default(e, t, { width: s, top: n, left: l }) {\n e.style.top = n, e.style.left = l, e.style.width = s;\n }\n },\n dropdownShouldOpen: {\n type: Function,\n default({ noDrop: e, open: t, mutableLoading: s }) {\n return e ? !1 : t && !s;\n }\n },\n uid: {\n type: [String, Number],\n default: () => re()\n }\n },\n data() {\n return {\n search: \"\",\n open: !1,\n isComposing: !1,\n pushedTags: [],\n _value: [],\n deselectButtons: []\n };\n },\n computed: {\n isReducingValues() {\n return this.$props.reduce !== this.$options.props.reduce.default;\n },\n isTrackingValues() {\n return typeof this.modelValue == \"undefined\" || this.isReducingValues;\n },\n selectedValue() {\n let e = this.modelValue;\n return this.isTrackingValues && (e = this.$data._value), e != null && e !== \"\" ? [].concat(e) : [];\n },\n optionList() {\n return this.options.concat(this.pushTags ? this.pushedTags : []);\n },\n searchEl() {\n return this.$slots.search ? this.$refs.selectedOptions.querySelector(this.searchInputQuerySelector) : this.$refs.search;\n },\n scope() {\n const e = {\n search: this.search,\n loading: this.loading,\n searching: this.searching,\n filteredOptions: this.filteredOptions\n };\n return {\n search: {\n attributes: f({\n disabled: this.disabled,\n placeholder: this.searchPlaceholder,\n tabindex: this.tabindex,\n readonly: !this.searchable,\n id: this.inputId,\n \"aria-autocomplete\": \"list\",\n \"aria-labelledby\": `vs${this.uid}__combobox`,\n \"aria-controls\": `vs${this.uid}__listbox`,\n ref: \"search\",\n type: \"search\",\n autocomplete: this.autocomplete,\n value: this.search\n }, this.dropdownOpen && this.filteredOptions[this.typeAheadPointer] ? {\n \"aria-activedescendant\": `vs${this.uid}__option-${this.typeAheadPointer}`\n } : {}),\n events: {\n compositionstart: () => this.isComposing = !0,\n compositionend: () => this.isComposing = !1,\n keydown: this.onSearchKeyDown,\n blur: this.onSearchBlur,\n focus: this.onSearchFocus,\n input: (t) => this.search = t.target.value\n }\n },\n spinner: {\n loading: this.mutableLoading\n },\n noOptions: {\n search: this.search,\n loading: this.mutableLoading,\n searching: this.searching\n },\n openIndicator: {\n attributes: {\n ref: \"openIndicator\",\n role: \"presentation\",\n class: \"vs__open-indicator\"\n }\n },\n listHeader: e,\n listFooter: e,\n header: m(f({}, e), { deselect: this.deselect }),\n footer: m(f({}, e), { deselect: this.deselect })\n };\n },\n childComponents() {\n return f(f({}, T), this.components);\n },\n stateClasses() {\n return {\n \"vs--open\": this.dropdownOpen,\n \"vs--single\": !this.multiple,\n \"vs--multiple\": this.multiple,\n \"vs--searching\": this.searching && !this.noDrop,\n \"vs--searchable\": this.searchable && !this.noDrop,\n \"vs--unsearchable\": !this.searchable,\n \"vs--loading\": this.mutableLoading,\n \"vs--disabled\": this.disabled\n };\n },\n searching() {\n return !!this.search;\n },\n dropdownOpen() {\n return this.dropdownShouldOpen(this);\n },\n searchPlaceholder() {\n return this.isValueEmpty && this.placeholder ? this.placeholder : void 0;\n },\n filteredOptions() {\n const e = [].concat(this.optionList);\n if (!this.filterable && !this.taggable)\n return e;\n const t = this.search.length ? this.filter(e, this.search, this) : e;\n if (this.taggable && this.search.length) {\n const s = this.createOption(this.search);\n this.optionExists(s) || t.unshift(s);\n }\n return t;\n },\n isValueEmpty() {\n return this.selectedValue.length === 0;\n },\n showClearButton() {\n return !this.multiple && this.clearable && !this.open && !this.isValueEmpty;\n }\n },\n watch: {\n options(e, t) {\n const s = () => typeof this.resetOnOptionsChange == \"function\" ? this.resetOnOptionsChange(e, t, this.selectedValue) : this.resetOnOptionsChange;\n !this.taggable && s() && this.clearSelection(), this.modelValue && this.isTrackingValues && this.setInternalValueFromOptions(this.modelValue);\n },\n modelValue: {\n immediate: !0,\n handler(e) {\n this.isTrackingValues && this.setInternalValueFromOptions(e);\n }\n },\n multiple() {\n this.clearSelection();\n },\n open(e) {\n this.$emit(e ? \"open\" : \"close\");\n }\n },\n created() {\n this.mutableLoading = this.loading;\n },\n methods: {\n setInternalValueFromOptions(e) {\n Array.isArray(e) ? this.$data._value = e.map((t) => this.findOptionFromReducedValue(t)) : this.$data._value = this.findOptionFromReducedValue(e);\n },\n select(e) {\n this.$emit(\"option:selecting\", e), this.isOptionSelected(e) ? this.deselectFromDropdown && (this.clearable || this.multiple && this.selectedValue.length > 1) && this.deselect(e) : (this.taggable && !this.optionExists(e) && (this.$emit(\"option:created\", e), this.pushTag(e)), this.multiple && (e = this.selectedValue.concat(e)), this.updateValue(e), this.$emit(\"option:selected\", e)), this.onAfterSelect(e);\n },\n deselect(e) {\n this.$emit(\"option:deselecting\", e), this.updateValue(this.selectedValue.filter((t) => !this.optionComparator(t, e))), this.$emit(\"option:deselected\", e);\n },\n clearSelection() {\n this.updateValue(this.multiple ? [] : null);\n },\n onAfterSelect(e) {\n this.closeOnSelect && (this.open = !this.open, this.searchEl.blur()), this.clearSearchOnSelect && (this.search = \"\");\n },\n updateValue(e) {\n typeof this.modelValue == \"undefined\" && (this.$data._value = e), e !== null && (Array.isArray(e) ? e = e.map((t) => this.reduce(t)) : e = this.reduce(e)), this.$emit(\"update:modelValue\", e);\n },\n toggleDropdown(e) {\n const t = e.target !== this.searchEl;\n t && e.preventDefault();\n const s = [\n ...this.deselectButtons || [],\n this.$refs.clearButton\n ];\n if (this.searchEl === void 0 || s.filter(Boolean).some((n) => n.contains(e.target) || n === e.target)) {\n e.preventDefault();\n return;\n }\n this.open && t ? this.searchEl.blur() : this.disabled || (this.open = !0, this.searchEl.focus());\n },\n isOptionSelected(e) {\n return this.selectedValue.some((t) => this.optionComparator(t, e));\n },\n isOptionDeselectable(e) {\n return this.isOptionSelected(e) && this.deselectFromDropdown;\n },\n optionComparator(e, t) {\n return this.getOptionKey(e) === this.getOptionKey(t);\n },\n findOptionFromReducedValue(e) {\n const t = (n) => JSON.stringify(this.reduce(n)) === JSON.stringify(e), s = [...this.options, ...this.pushedTags].filter(t);\n return s.length === 1 ? s[0] : s.find((n) => this.optionComparator(n, this.$data._value)) || e;\n },\n closeSearchOptions() {\n this.open = !1, this.$emit(\"search:blur\");\n },\n maybeDeleteValue() {\n if (!this.searchEl.value.length && this.selectedValue && this.selectedValue.length && this.clearable) {\n let e = null;\n this.multiple && (e = [\n ...this.selectedValue.slice(0, this.selectedValue.length - 1)\n ]), this.updateValue(e);\n }\n },\n optionExists(e) {\n return this.optionList.some((t) => this.optionComparator(t, e));\n },\n normalizeOptionForSlot(e) {\n return typeof e == \"object\" ? e : { [this.label]: e };\n },\n pushTag(e) {\n this.pushedTags.push(e);\n },\n onEscape() {\n this.search.length ? this.search = \"\" : this.searchEl.blur();\n },\n onSearchBlur() {\n if (this.mousedown && !this.searching)\n this.mousedown = !1;\n else {\n const { clearSearchOnSelect: e, multiple: t } = this;\n this.clearSearchOnBlur({ clearSearchOnSelect: e, multiple: t }) && (this.search = \"\"), this.closeSearchOptions();\n return;\n }\n if (this.search.length === 0 && this.options.length === 0) {\n this.closeSearchOptions();\n return;\n }\n },\n onSearchFocus() {\n this.open = !0, this.$emit(\"search:focus\");\n },\n onMousedown() {\n this.mousedown = !0;\n },\n onMouseUp() {\n this.mousedown = !1;\n },\n onSearchKeyDown(e) {\n const t = (l) => (l.preventDefault(), !this.isComposing && this.typeAheadSelect()), s = {\n 8: (l) => this.maybeDeleteValue(),\n 9: (l) => this.onTab(),\n 27: (l) => this.onEscape(),\n 38: (l) => (l.preventDefault(), this.typeAheadUp()),\n 40: (l) => (l.preventDefault(), this.typeAheadDown())\n };\n this.selectOnKeyCodes.forEach((l) => s[l] = t);\n const n = this.mapKeydown(s, this);\n if (typeof n[e.keyCode] == \"function\")\n return n[e.keyCode](e);\n }\n }\n}, he = [\"dir\"], ce = [\"id\", \"aria-expanded\", \"aria-owns\"], ue = {\n ref: \"selectedOptions\",\n class: \"vs__selected-options\"\n}, pe = [\"disabled\", \"title\", \"aria-label\", \"onClick\"], fe = {\n ref: \"actions\",\n class: \"vs__actions\"\n}, ge = [\"disabled\"], ye = { class: \"vs__spinner\" }, me = [\"id\"], be = [\"id\", \"aria-selected\", \"onMouseover\", \"onClick\"], _e = {\n key: 0,\n class: \"vs__no-options\"\n}, Oe = /* @__PURE__ */ v(\" Sorry, no matching options. \"), we = [\"id\"];\nfunction ve(e, t, s, n, l, i) {\n const y = K(\"append-to-body\");\n return a(), h(\"div\", {\n dir: s.dir,\n class: A([\"v-select\", i.stateClasses])\n }, [\n r(e.$slots, \"header\", d(c(i.scope.header))),\n u(\"div\", {\n id: `vs${s.uid}__combobox`,\n ref: \"toggle\",\n class: \"vs__dropdown-toggle\",\n role: \"combobox\",\n \"aria-expanded\": i.dropdownOpen.toString(),\n \"aria-owns\": `vs${s.uid}__listbox`,\n \"aria-label\": \"Search for option\",\n onMousedown: t[1] || (t[1] = (o) => i.toggleDropdown(o))\n }, [\n u(\"div\", ue, [\n (a(!0), h(B, null, L(i.selectedValue, (o, p) => r(e.$slots, \"selected-option-container\", {\n option: i.normalizeOptionForSlot(o),\n deselect: i.deselect,\n multiple: s.multiple,\n disabled: s.disabled\n }, () => [\n (a(), h(\"span\", {\n key: s.getOptionKey(o),\n class: \"vs__selected\"\n }, [\n r(e.$slots, \"selected-option\", d(c(i.normalizeOptionForSlot(o))), () => [\n v(D(s.getOptionLabel(o)), 1)\n ]),\n s.multiple ? (a(), h(\"button\", {\n key: 0,\n ref_for: !0,\n ref: (g) => l.deselectButtons[p] = g,\n disabled: s.disabled,\n type: \"button\",\n class: \"vs__deselect\",\n title: `Deselect ${s.getOptionLabel(o)}`,\n \"aria-label\": `Deselect ${s.getOptionLabel(o)}`,\n onClick: (g) => i.deselect(o)\n }, [\n (a(), b(_(i.childComponents.Deselect)))\n ], 8, pe)) : O(\"\", !0)\n ]))\n ])), 256)),\n r(e.$slots, \"search\", d(c(i.scope.search)), () => [\n u(\"input\", k({ class: \"vs__search\" }, i.scope.search.attributes, j(i.scope.search.events)), null, 16)\n ])\n ], 512),\n u(\"div\", fe, [\n w(u(\"button\", {\n ref: \"clearButton\",\n disabled: s.disabled,\n type: \"button\",\n class: \"vs__clear\",\n title: \"Clear Selected\",\n \"aria-label\": \"Clear Selected\",\n onClick: t[0] || (t[0] = (...o) => i.clearSelection && i.clearSelection(...o))\n }, [\n (a(), b(_(i.childComponents.Deselect)))\n ], 8, ge), [\n [P, i.showClearButton]\n ]),\n r(e.$slots, \"open-indicator\", d(c(i.scope.openIndicator)), () => [\n s.noDrop ? O(\"\", !0) : (a(), b(_(i.childComponents.OpenIndicator), d(k({ key: 0 }, i.scope.openIndicator.attributes)), null, 16))\n ]),\n r(e.$slots, \"spinner\", d(c(i.scope.spinner)), () => [\n w(u(\"div\", ye, \"Loading...\", 512), [\n [P, e.mutableLoading]\n ])\n ])\n ], 512)\n ], 40, ce),\n $(R, { name: s.transition }, {\n default: z(() => [\n i.dropdownOpen ? w((a(), h(\"ul\", {\n id: `vs${s.uid}__listbox`,\n ref: \"dropdownMenu\",\n key: `vs${s.uid}__listbox`,\n class: \"vs__dropdown-menu\",\n role: \"listbox\",\n tabindex: \"-1\",\n onMousedown: t[2] || (t[2] = F((...o) => i.onMousedown && i.onMousedown(...o), [\"prevent\"])),\n onMouseup: t[3] || (t[3] = (...o) => i.onMouseUp && i.onMouseUp(...o))\n }, [\n r(e.$slots, \"list-header\", d(c(i.scope.listHeader))),\n (a(!0), h(B, null, L(i.filteredOptions, (o, p) => (a(), h(\"li\", {\n id: `vs${s.uid}__option-${p}`,\n key: s.getOptionKey(o),\n role: \"option\",\n class: A([\"vs__dropdown-option\", {\n \"vs__dropdown-option--deselect\": i.isOptionDeselectable(o) && p === e.typeAheadPointer,\n \"vs__dropdown-option--selected\": i.isOptionSelected(o),\n \"vs__dropdown-option--highlight\": p === e.typeAheadPointer,\n \"vs__dropdown-option--disabled\": !s.selectable(o)\n }]),\n \"aria-selected\": p === e.typeAheadPointer ? !0 : null,\n onMouseover: (g) => s.selectable(o) ? e.typeAheadPointer = p : null,\n onClick: F((g) => s.selectable(o) ? i.select(o) : null, [\"prevent\", \"stop\"])\n }, [\n r(e.$slots, \"option\", d(c(i.normalizeOptionForSlot(o))), () => [\n v(D(s.getOptionLabel(o)), 1)\n ])\n ], 42, be))), 128)),\n i.filteredOptions.length === 0 ? (a(), h(\"li\", _e, [\n r(e.$slots, \"no-options\", d(c(i.scope.noOptions)), () => [\n Oe\n ])\n ])) : O(\"\", !0),\n r(e.$slots, \"list-footer\", d(c(i.scope.listFooter)))\n ], 40, me)), [\n [y]\n ]) : (a(), h(\"ul\", {\n key: 1,\n id: `vs${s.uid}__listbox`,\n role: \"listbox\",\n style: { display: \"none\", visibility: \"hidden\" }\n }, null, 8, we))\n ]),\n _: 3\n }, 8, [\"name\"]),\n r(e.$slots, \"footer\", d(c(i.scope.footer)))\n ], 10, he);\n}\nconst Ce = /* @__PURE__ */ S(de, [[\"render\", ve]]);\nexport {\n Ce as default\n};\n","import { defineComponent, h } from \"vue\";\n/*!\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction findRanges(text, search) {\n const ranges = [];\n let currentIndex = 0;\n let index = text.toLowerCase().indexOf(search.toLowerCase(), currentIndex);\n let i = 0;\n while (index > -1 && i++ < text.length) {\n currentIndex = index + search.length;\n ranges.push({ start: index, end: currentIndex });\n index = text.toLowerCase().indexOf(search.toLowerCase(), currentIndex);\n }\n return ranges;\n}\nconst _sfc_main = defineComponent({\n name: \"NcHighlight\",\n props: {\n /**\n * The string to display\n */\n text: {\n type: String,\n default: \"\"\n },\n /**\n * The string to match and highlight\n */\n search: {\n type: String,\n default: \"\"\n },\n /**\n * The ranges to highlight, takes precedence over the search prop.\n */\n highlight: {\n type: Array,\n default: () => []\n }\n },\n computed: {\n /**\n * The indice ranges which should be highlighted.\n * If an array with ranges is provided, we use it. Otherwise\n * we calculate it based on the provided substring to highlight.\n *\n * @return The array of ranges to highlight\n */\n ranges() {\n let ranges = [];\n if (!this.search && this.highlight.length === 0) {\n return ranges;\n }\n if (this.highlight.length > 0) {\n ranges = this.highlight;\n } else {\n ranges = findRanges(this.text, this.search);\n }\n ranges.forEach((range, i) => {\n if (range.end < range.start) {\n ranges[i] = {\n start: range.end,\n end: range.start\n };\n }\n });\n ranges = ranges.reduce((validRanges, range) => {\n if (range.start < this.text.length && range.end > 0) {\n validRanges.push({\n start: range.start < 0 ? 0 : range.start,\n end: range.end > this.text.length ? this.text.length : range.end\n });\n }\n return validRanges;\n }, []);\n ranges.sort((a, b) => {\n return a.start - b.start;\n });\n ranges = ranges.reduce((mergedRanges, range) => {\n if (!mergedRanges.length) {\n mergedRanges.push(range);\n } else {\n const idx = mergedRanges.length - 1;\n if (mergedRanges[idx].end >= range.start) {\n mergedRanges[idx] = {\n start: mergedRanges[idx].start,\n end: Math.max(mergedRanges[idx].end, range.end)\n };\n } else {\n mergedRanges.push(range);\n }\n }\n return mergedRanges;\n }, []);\n return ranges;\n },\n /**\n * Calculate the different chunks to show based on the ranges to highlight.\n */\n chunks() {\n if (this.ranges.length === 0) {\n return [{\n start: 0,\n end: this.text.length,\n highlight: false,\n text: this.text\n }];\n }\n const chunks = [];\n let currentIndex = 0;\n let currentRange = 0;\n while (currentIndex < this.text.length) {\n const range = this.ranges[currentRange];\n if (range.start === currentIndex) {\n chunks.push({\n ...range,\n highlight: true,\n text: this.text.slice(range.start, range.end)\n });\n currentRange++;\n currentIndex = range.end;\n if (currentRange >= this.ranges.length && currentIndex < this.text.length) {\n chunks.push({\n start: currentIndex,\n end: this.text.length,\n highlight: false,\n text: this.text.slice(currentIndex)\n });\n currentIndex = this.text.length;\n }\n continue;\n }\n chunks.push({\n start: currentIndex,\n end: range.start,\n highlight: false,\n text: this.text.slice(currentIndex, range.start)\n });\n currentIndex = range.start;\n }\n return chunks;\n }\n },\n /**\n * The render function to display the component\n */\n render() {\n if (!this.ranges.length) {\n return h(\"span\", {}, this.text);\n }\n return h(\"span\", {}, this.chunks.map((chunk) => {\n return chunk.highlight ? h(\"strong\", {}, chunk.text) : chunk.text;\n }));\n }\n});\nexport {\n _sfc_main as _,\n findRanges as f\n};\n//# sourceMappingURL=NcHighlight.vue_vue_type_script_lang-DnWQDM_2.mjs.map\n","import '../assets/NcEllipsisedOption-CPWbbgBy.css';\nimport { _ as _sfc_main$1, f as findRanges } from \"./NcHighlight.vue_vue_type_script_lang-DnWQDM_2.mjs\";\nimport { resolveComponent, createElementBlock, openBlock, createVNode, createBlock, createCommentVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcEllipsisedOption\",\n components: {\n NcHighlight: _sfc_main$1\n },\n props: {\n /**\n * The text to be display in one line. If it is longer than 10 characters, it is be truncated with ellipsis in the end but keeping up to 10 last characters to fit the parent container.\n */\n name: {\n type: String,\n default: \"\"\n },\n /**\n * The search value to highlight in the text\n */\n search: {\n type: String,\n default: \"\"\n }\n },\n computed: {\n needsTruncate() {\n return this.name && this.name.length >= 10;\n },\n /**\n * Index at which to split the name if it is longer than 10 characters.\n *\n * @return {number} The position at which to split\n */\n split() {\n return this.name.length - Math.min(Math.floor(this.name.length / 2), 10);\n },\n part1() {\n if (this.needsTruncate) {\n return this.name.slice(0, this.split);\n }\n return this.name;\n },\n part2() {\n if (this.needsTruncate) {\n return this.name.slice(this.split);\n }\n return \"\";\n },\n /**\n * The ranges to highlight. Since we split the string for ellipsising,\n * the Highlight component cannot figure this out itself and needs the ranges provided.\n *\n * @return {Array} The array with the ranges to highlight\n */\n highlight1() {\n if (!this.search) {\n return [];\n }\n return findRanges(this.name, this.search);\n },\n /**\n * We shift the ranges for the second part by the position of the split.\n * Ranges out of the string length are discarded by the Highlight component,\n * so we don't need to take care of this here.\n *\n * @return {Array} The array with the ranges to highlight\n */\n highlight2() {\n return this.highlight1.map((range) => {\n return {\n start: range.start - this.split,\n end: range.end - this.split\n };\n });\n }\n }\n};\nconst _hoisted_1 = [\"title\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcHighlight = resolveComponent(\"NcHighlight\");\n return openBlock(), createElementBlock(\"span\", {\n dir: \"auto\",\n class: \"name-parts\",\n title: $props.name\n }, [\n createVNode(_component_NcHighlight, {\n class: \"name-parts__first\",\n text: $options.part1,\n search: $props.search,\n highlight: $options.highlight1\n }, null, 8, [\"text\", \"search\", \"highlight\"]),\n $options.part2 ? (openBlock(), createBlock(_component_NcHighlight, {\n key: 0,\n class: \"name-parts__last\",\n text: $options.part2,\n search: $props.search,\n highlight: $options.highlight2\n }, null, 8, [\"text\", \"search\", \"highlight\"])) : createCommentVNode(\"\", true)\n ], 8, _hoisted_1);\n}\nconst NcEllipsisedOption = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-a612f185\"]]);\nexport {\n NcEllipsisedOption as N\n};\n//# sourceMappingURL=NcEllipsisedOption-dT-CtXYp.mjs.map\n","import '../assets/NcSelect-ZnE_MlqV.css';\nimport { autoUpdate, computePosition, offset, flip, shift, limitShift } from \"@floating-ui/dom\";\nimport { h, resolveComponent, createBlock, openBlock, mergeProps, createSlots, withCtx, createTextVNode, toDisplayString, createCommentVNode, renderSlot, createVNode, normalizeProps, guardReactiveProps, createElementVNode, toHandlers, renderList, warn } from \"vue\";\nimport VueSelect from \"vue-select\";\nimport { C as ChevronDown } from \"./ChevronDown-FiGpp0KT.mjs\";\nimport { I as IconClose } from \"./Close-D6ngJ4t9.mjs\";\nimport { N as NcEllipsisedOption } from \"./NcEllipsisedOption-dT-CtXYp.mjs\";\nimport { N as NcLoadingIcon } from \"./NcLoadingIcon-b_ajZ_nQ.mjs\";\nimport { r as register, d as t17, a as t } from \"./_l10n-DrTiip5c.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { i as isLegacy } from \"./legacy-DcjXBL_t.mjs\";\nimport \"vue-select/dist/vue-select.css\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t17);\nconst _sfc_main = {\n name: \"NcSelect\",\n components: {\n ChevronDown,\n NcEllipsisedOption,\n NcLoadingIcon,\n VueSelect\n },\n props: {\n // Add VueSelect props to $props\n ...VueSelect.props,\n ...VueSelect.mixins.reduce((allProps, mixin) => ({ ...allProps, ...mixin.props }), {}),\n /**\n * `aria-label` for the clear input button\n */\n ariaLabelClearSelected: {\n type: String,\n default: t(\"Clear selected\")\n },\n /**\n * `aria-label` for the search input\n *\n * A descriptive `inputLabel` is preferred as this is not visible.\n */\n ariaLabelCombobox: {\n type: String,\n default: null\n },\n /**\n * `aria-label` for the listbox element\n */\n ariaLabelListbox: {\n type: String,\n default: t(\"Options\")\n },\n /**\n * Allows to customize the `aria-label` for the deselect-option button\n * The default is \"Deselect \" + optionLabel\n *\n * @type {(optionLabel: string) => string}\n */\n ariaLabelDeselectOption: {\n type: Function,\n default: (optionLabel) => t(\"Deselect {option}\", { option: optionLabel })\n },\n /**\n * Append the dropdown element to the end of the body\n * and size/position it dynamically.\n *\n * @see https://vue-select.org/api/props.html#appendtobody\n */\n appendToBody: {\n type: Boolean,\n default: true\n },\n /**\n * When `appendToBody` is true, this function is responsible for\n * positioning the drop down list.\n *\n * If a function is returned from `calculatePosition`, it will\n * be called when the drop down list is removed from the DOM.\n * This allows for any garbage collection you may need to do.\n *\n * @see https://vue-select.org/api/props.html#calculateposition\n */\n calculatePosition: {\n type: Function,\n default: null\n },\n /**\n * Keep the dropdown open after selecting an option.\n *\n * @default false\n * @since 8.25.0\n */\n keepOpen: {\n type: Boolean,\n default: false\n },\n /**\n * Replace default vue-select components\n *\n * @see https://vue-select.org/api/props.html#components\n */\n components: {\n type: Object,\n default: () => ({\n Deselect: {\n render: () => h(IconClose, {\n size: 20,\n fillColor: \"var(--vs-controls-color)\",\n style: [\n { cursor: \"pointer\" }\n ]\n })\n }\n })\n },\n /**\n * Sets the maximum number of options to display in the dropdown list\n */\n limit: {\n type: Number,\n default: null\n },\n /**\n * Disable the component\n *\n * @see https://vue-select.org/api/props.html#disabled\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * Determines whether the dropdown should be open.\n * Receives the component instance as the only argument.\n *\n * @see https://vue-select.org/api/props.html#dropdownshouldopen\n */\n dropdownShouldOpen: {\n type: Function,\n default: ({ noDrop, open }) => {\n return noDrop ? false : open;\n }\n },\n /**\n * Callback to determine if the provided option should\n * match the current search text. Used to determine\n * if the option should be displayed.\n *\n * Defaults to the internal vue-select function documented at the link\n * below\n *\n * @see https://vue-select.org/api/props.html#filterby\n */\n filterBy: {\n type: Function,\n default: null\n },\n /**\n * Class for the `input`\n *\n * Necessary for use in NcActionInput\n */\n inputClass: {\n type: [String, Object],\n default: null\n },\n /**\n * Input element id\n */\n inputId: {\n type: String,\n default: () => createElementId()\n },\n /**\n * Visible label for the input element\n */\n inputLabel: {\n type: String,\n default: null\n },\n /**\n * Pass true if you are using an external label\n */\n labelOutside: {\n type: Boolean,\n default: false\n },\n /**\n * Display a visible border around dropdown options\n * which have keyboard focus\n */\n keyboardFocusBorder: {\n type: Boolean,\n default: true\n },\n /**\n * Key of the displayed label for object options\n *\n * Defaults to the internal vue-select string documented at the link\n * below\n *\n * @see https://vue-select.org/api/props.html#label\n */\n label: {\n type: String,\n default: null\n },\n /**\n * Show the loading icon\n *\n * @see https://vue-select.org/api/props.html#loading\n */\n loading: {\n type: Boolean,\n default: false\n },\n /**\n * Allow selection of multiple options\n *\n * @see https://vue-select.org/api/props.html#multiple\n */\n multiple: {\n type: Boolean,\n default: false\n },\n /**\n * Disable automatic wrapping when selected options overflow the width\n */\n noWrap: {\n type: Boolean,\n default: false\n },\n /**\n * Array of options\n *\n * @type {Array<string | number | Record<string | number, any>>}\n *\n * @see https://vue-select.org/api/props.html#options\n */\n options: {\n type: Array,\n default: () => []\n },\n /**\n * Placeholder text\n *\n * @see https://vue-select.org/api/props.html#placeholder\n */\n placeholder: {\n type: String,\n default: \"\"\n },\n /**\n * Customized component's response to keydown events while the search input has focus\n *\n * @see https://vue-select.org/guide/keydown.html#mapkeydown\n */\n mapKeydown: {\n type: Function,\n /**\n * Patched Vue-Select keydown events handlers map to stop Escape propagation in open select\n *\n * @param {Record<number, Function>} map - Mapped keyCode to handlers { <keyCode>:<callback> }\n * @param {import('@nextcloud/vue-select').VueSelect} vm - VueSelect instance\n * @return {Record<number, Function>} patched keydown event handlers\n */\n default(map, vm) {\n return {\n ...map,\n /**\n * Patched Escape handler to stop propagation from open select\n *\n * @param {KeyboardEvent} event - default keydown event handler\n */\n 27: (event) => {\n if (vm.open) {\n event.stopPropagation();\n }\n map[27](event);\n }\n };\n }\n },\n /**\n * A unique identifier used to generate IDs and DOM attributes. Must be unique for every instance of the component.\n *\n * @see https://vue-select.org/api/props.html#uid\n */\n uid: {\n type: String,\n default: () => createElementId()\n },\n /**\n * When `appendToBody` is true, this sets the placement of the dropdown\n *\n * @type {'bottom' | 'top'}\n */\n placement: {\n type: String,\n default: \"bottom\"\n },\n /**\n * If false, the focused dropdown option will not be reset when filtered\n * options change\n */\n resetFocusOnOptionsChange: {\n type: Boolean,\n default: true\n },\n /**\n * Currently selected value\n *\n * The `v-model` directive may be used for two-way data binding\n *\n * @type {string | number | Record<string | number, any> | Array<any>}\n *\n * @see https://vue-select.org/api/props.html#value\n */\n modelValue: {\n type: [String, Number, Object, Array],\n default: null\n },\n /**\n * Enable if a value is required for native form validation\n */\n required: {\n type: Boolean,\n default: false\n },\n /**\n * Any available prop\n *\n * @see https://vue-select.org/api/props.html\n */\n // Not an actual prop but needed to show in vue-styleguidist docs\n // eslint-disable-next-line\n \" \": {}\n },\n emits: [\n /**\n * All events from https://vue-select.org/api/events.html\n */\n // Not an actual event but needed to show in vue-styleguidist docs\n \" \",\n \"update:modelValue\"\n ],\n setup() {\n const clickableArea = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue(\"--default-clickable-area\"));\n const gridBaseLine = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue(\"--default-grid-baseline\"));\n const avatarSize = clickableArea - 2 * gridBaseLine;\n return {\n avatarSize,\n isLegacy\n };\n },\n data() {\n return {\n search: \"\"\n };\n },\n computed: {\n inputRequired() {\n if (!this.required) {\n return null;\n }\n return this.modelValue === null || Array.isArray(this.modelValue) && this.modelValue.length === 0;\n },\n localCalculatePosition() {\n if (this.calculatePosition !== null) {\n return this.calculatePosition;\n }\n return (dropdownMenu, component, { width }) => {\n dropdownMenu.style.width = width;\n const addClass = {\n name: \"addClass\",\n fn() {\n dropdownMenu.classList.add(\"vs__dropdown-menu--floating\");\n return {};\n }\n };\n const togglePlacementClass = {\n name: \"togglePlacementClass\",\n fn({ placement }) {\n component.$el.classList.toggle(\n \"select--drop-up\",\n placement === \"top\"\n );\n dropdownMenu.classList.toggle(\n \"vs__dropdown-menu--floating-placement-top\",\n placement === \"top\"\n );\n return {};\n }\n };\n const updatePosition = () => {\n computePosition(component.$refs.toggle, dropdownMenu, {\n placement: this.placement,\n middleware: [\n offset(-1),\n addClass,\n togglePlacementClass,\n // Match popperjs default collision prevention behavior by appending the following middleware in order\n flip(),\n shift({ limiter: limitShift() })\n ]\n }).then(({ x, y }) => {\n Object.assign(dropdownMenu.style, {\n left: `${x}px`,\n top: `${y}px`,\n width: `${component.$refs.toggle.getBoundingClientRect().width}px`\n });\n });\n };\n const cleanup = autoUpdate(\n component.$refs.toggle,\n dropdownMenu,\n updatePosition\n );\n return cleanup;\n };\n },\n localFilterBy() {\n return this.filterBy ?? VueSelect.props.filterBy.default;\n },\n localLabel() {\n return this.label ?? VueSelect.props.label.default;\n },\n propsToForward() {\n const vueSelectKeys = [\n ...Object.keys(VueSelect.props),\n ...VueSelect.mixins.flatMap((mixin) => Object.keys(mixin.props ?? {}))\n ];\n const initialPropsToForward = Object.fromEntries(Object.entries(this.$props).filter(([key, _value]) => vueSelectKeys.includes(key)));\n const propsToForward = {\n ...initialPropsToForward,\n // Custom overrides of vue-select props\n calculatePosition: this.localCalculatePosition,\n closeOnSelect: !this.keepOpen,\n filterBy: this.localFilterBy,\n label: this.localLabel\n };\n return propsToForward;\n }\n },\n mounted() {\n if (!this.labelOutside && !this.inputLabel && !this.ariaLabelCombobox) {\n warn(\"[NcSelect] An `inputLabel` or `ariaLabelCombobox` should be set. If an external label is used, `labelOutside` should be set to `true`.\");\n }\n if (this.inputLabel && this.ariaLabelCombobox) {\n warn(\"[NcSelect] Only one of `inputLabel` or `ariaLabelCombobox` should to be set.\");\n }\n },\n methods: {\n t\n }\n};\nconst _hoisted_1 = [\"for\"];\nconst _hoisted_2 = [\"required\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_ChevronDown = resolveComponent(\"ChevronDown\");\n const _component_NcEllipsisedOption = resolveComponent(\"NcEllipsisedOption\");\n const _component_NcLoadingIcon = resolveComponent(\"NcLoadingIcon\");\n const _component_VueSelect = resolveComponent(\"VueSelect\");\n return openBlock(), createBlock(_component_VueSelect, mergeProps({\n class: [\"select\", {\n \"select--legacy\": $setup.isLegacy,\n \"select--no-wrap\": $props.noWrap\n }]\n }, $options.propsToForward, {\n onSearch: _cache[0] || (_cache[0] = ($event) => $data.search = $event),\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event) => _ctx.$emit(\"update:modelValue\", $event))\n }), createSlots({\n search: withCtx(({ attributes, events }) => [\n createElementVNode(\"input\", mergeProps({\n class: [\"vs__search\", [$props.inputClass]]\n }, attributes, {\n required: $options.inputRequired,\n dir: \"auto\"\n }, toHandlers(events, true)), null, 16, _hoisted_2)\n ]),\n \"open-indicator\": withCtx(({ attributes }) => [\n createVNode(_component_ChevronDown, mergeProps(attributes, {\n \"fill-color\": \"var(--vs-controls-color)\",\n style: {\n cursor: !$props.disabled ? \"pointer\" : null\n },\n size: 26\n }), null, 16, [\"style\"])\n ]),\n option: withCtx((option) => [\n renderSlot(_ctx.$slots, \"option\", normalizeProps(guardReactiveProps(option)), () => [\n createVNode(_component_NcEllipsisedOption, {\n name: String(option[$options.localLabel]),\n search: $data.search\n }, null, 8, [\"name\", \"search\"])\n ])\n ]),\n \"selected-option\": withCtx((selectedOption) => [\n renderSlot(_ctx.$slots, \"selected-option\", { vBind: selectedOption }, () => [\n createVNode(_component_NcEllipsisedOption, {\n name: String(selectedOption[$options.localLabel]),\n search: $data.search\n }, null, 8, [\"name\", \"search\"])\n ])\n ]),\n spinner: withCtx((spinner) => [\n spinner.loading ? (openBlock(), createBlock(_component_NcLoadingIcon, { key: 0 })) : createCommentVNode(\"\", true)\n ]),\n \"no-options\": withCtx(() => [\n createTextVNode(toDisplayString($options.t(\"No results\")), 1)\n ]),\n _: 2\n }, [\n !$props.labelOutside && $props.inputLabel ? {\n name: \"header\",\n fn: withCtx(() => [\n createElementVNode(\"label\", {\n for: $props.inputId,\n class: \"select__label\"\n }, toDisplayString($props.inputLabel), 9, _hoisted_1)\n ]),\n key: \"0\"\n } : void 0,\n renderList(_ctx.$slots, (_, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1040, [\"class\"]);\n}\nconst NcSelect = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nexport {\n NcSelect as N\n};\n//# sourceMappingURL=NcSelect-Czzsi3P_.mjs.map\n"],"names":["_sfc_main","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","openBlock","createElementBlock","mergeProps","$event","createElementVNode","toDisplayString","createCommentVNode","ChevronDown","_export_sfc","IconClose","hasWindow","getNodeName","node","isNode","getWindow","_node$ownerDocument","getDocumentElement","_ref","value","isElement","isHTMLElement","isShadowRoot","invalidOverflowDisplayValues","isOverflowElement","element","overflow","overflowX","overflowY","display","getComputedStyle","tableElements","isTableElement","topLayerSelectors","isTopLayer","selector","transformProperties","willChangeValues","containValues","isContainingBlock","elementOrCss","webkit","isWebKit","css","getContainingBlock","currentNode","getParentNode","isLastTraversableNode","lastTraversableNodeNames","getNodeScroll","result","getNearestOverflowAncestor","parentNode","getOverflowAncestors","list","traverseIframes","_node$ownerDocument2","scrollableAncestor","isBody","win","frameElement","getFrameElement","getCssDimensions","getComputedStyle$1","width","height","hasOffset","offsetWidth","offsetHeight","shouldFallback","round","unwrapElement","getScale","domElement","createCoords","rect","$","x","y","noOffsets","getVisualOffsets","shouldAddVisualOffsets","isFixed","floatingOffsetParent","getBoundingClientRect","includeScale","isFixedStrategy","offsetParent","clientRect","scale","visualOffsets","offsetWin","currentWin","currentIFrame","iframeScale","iframeRect","left","top","rectToClientRect","getWindowScrollBarX","leftScroll","getHTMLOffset","documentElement","scroll","htmlRect","convertOffsetParentRelativeRectToViewportRelativeRect","elements","strategy","topLayer","offsets","isOffsetParentAnElement","offsetRect","htmlOffset","getClientRects","getDocumentRect","html","body","max","SCROLLBAR_MAX","getViewportRect","visualViewport","visualViewportBased","windowScrollbarX","doc","bodyStyles","bodyMarginInline","clippingStableScrollbarWidth","absoluteOrFixed","getInnerBoundingClientRect","getClientRectFromClippingAncestor","clippingAncestor","hasFixedPositionAncestor","stopNode","getClippingElementAncestors","cache","cachedResult","el","currentContainingBlockComputedStyle","elementIsFixed","computedStyle","currentNodeIsContaining","ancestor","getClippingRect","boundary","rootBoundary","clippingAncestors","firstClippingAncestor","clippingRect","accRect","min","getDimensions","getRectRelativeToOffsetParent","setLeftRTLScrollbarOffset","isStaticPositioned","getTrueOffsetParent","polyfill","rawOffsetParent","getOffsetParent","svgOffsetParent","getElementRects","data","getOffsetParentFn","getDimensionsFn","floatingDimensions","isRTL","platform","rectsAreEqual","a","b","observeMove","onMove","io","timeoutId","root","cleanup","_io","refresh","skip","threshold","elementRectForRootMargin","insetTop","floor","insetRight","insetBottom","insetLeft","options","isFirstUpdate","handleObserve","entries","ratio","autoUpdate","reference","floating","update","ancestorScroll","ancestorResize","elementResize","layoutShift","animationFrame","referenceEl","ancestors","cleanupIo","reobserveFrame","resizeObserver","firstEntry","_resizeObserver","frameId","prevRefRect","frameLoop","nextRefRect","_resizeObserver2","offset","offset$1","shift","shift$1","flip","flip$1","limitShift","limitShift$1","computePosition","mergedOptions","platformWithCache","computePosition$1","E","M","V","I","N","C","e","t","s","f","m","U","n","l","i","q","J","S","H","X","Y","u","Q","G","h","W","Z","ee","te","se","ie","oe","T","ne","o","le","ae","re","de","he","ce","ue","pe","fe","ge","ye","me","be","_e","Oe","v","we","ve","K","A","r","d","c","B","L","p","D","g","_","O","k","j","w","P","R","z","F","Ce","findRanges","text","search","ranges","currentIndex","index","defineComponent","range","validRanges","mergedRanges","idx","chunks","currentRange","chunk","_sfc_main$1","_component_NcHighlight","resolveComponent","createVNode","createBlock","NcEllipsisedOption","register","t17","NcLoadingIcon","VueSelect","allProps","mixin","optionLabel","noDrop","open","createElementId","map","vm","event","clickableArea","gridBaseLine","isLegacy","dropdownMenu","component","addClass","togglePlacementClass","placement","updatePosition","vueSelectKeys","key","_value","_component_ChevronDown","_component_NcEllipsisedOption","_component_NcLoadingIcon","_component_VueSelect","createSlots","withCtx","attributes","events","toHandlers","option","renderSlot","normalizeProps","guardReactiveProps","selectedOption","spinner","createTextVNode","renderList","name","NcSelect"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7]} \ No newline at end of file +{"version":3,"file":"NcSelect-Czzsi3P_-BKaYvmLF.chunk.mjs","sources":["../node_modules/@nextcloud/vue/dist/chunks/ChevronDown-FiGpp0KT.mjs","../node_modules/@nextcloud/vue/dist/chunks/Close-D6ngJ4t9.mjs","../node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../node_modules/vue-select/dist/vue-select.es.js","../node_modules/@nextcloud/vue/dist/chunks/NcHighlight.vue_vue_type_script_lang-DnWQDM_2.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcEllipsisedOption-dT-CtXYp.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcSelect-Czzsi3P_.mjs"],"sourcesContent":["import { createElementBlock, openBlock, mergeProps, createElementVNode, createCommentVNode, toDisplayString } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"ChevronDownIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3 = { d: \"M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z\" };\nconst _hoisted_4 = { key: 0 };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon chevron-down-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2))\n ], 16, _hoisted_1);\n}\nconst ChevronDown = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nexport {\n ChevronDown as C\n};\n//# sourceMappingURL=ChevronDown-FiGpp0KT.mjs.map\n","import { createElementBlock, openBlock, mergeProps, createElementVNode, createCommentVNode, toDisplayString } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"CloseIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3 = { d: \"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z\" };\nconst _hoisted_4 = { key: 0 };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon close-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2))\n ], 16, _hoisted_1);\n}\nconst IconClose = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nexport {\n IconClose as I\n};\n//# sourceMappingURL=Close-D6ngJ4t9.mjs.map\n","function hasWindow() {\n return typeof window !== 'undefined';\n}\nfunction getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n if (!hasWindow() || typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nconst invalidOverflowDisplayValues = /*#__PURE__*/new Set(['inline', 'contents']);\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !invalidOverflowDisplayValues.has(display);\n}\nconst tableElements = /*#__PURE__*/new Set(['table', 'td', 'th']);\nfunction isTableElement(element) {\n return tableElements.has(getNodeName(element));\n}\nconst topLayerSelectors = [':popover-open', ':modal'];\nfunction isTopLayer(element) {\n return topLayerSelectors.some(selector => {\n try {\n return element.matches(selector);\n } catch (_e) {\n return false;\n }\n });\n}\nconst transformProperties = ['transform', 'translate', 'scale', 'rotate', 'perspective'];\nconst willChangeValues = ['transform', 'translate', 'scale', 'rotate', 'perspective', 'filter'];\nconst containValues = ['paint', 'layout', 'strict', 'content'];\nfunction isContainingBlock(elementOrCss) {\n const webkit = isWebKit();\n const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n // https://drafts.csswg.org/css-transforms-2/#individual-transforms\n return transformProperties.some(value => css[value] ? css[value] !== 'none' : false) || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || willChangeValues.some(value => (css.willChange || '').includes(value)) || containValues.some(value => (css.contain || '').includes(value));\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else if (isTopLayer(currentNode)) {\n return null;\n }\n currentNode = getParentNode(currentNode);\n }\n return null;\n}\nfunction isWebKit() {\n if (typeof CSS === 'undefined' || !CSS.supports) return false;\n return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nconst lastTraversableNodeNames = /*#__PURE__*/new Set(['html', 'body', '#document']);\nfunction isLastTraversableNode(node) {\n return lastTraversableNodeNames.has(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.scrollX,\n scrollTop: element.scrollY\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n const frameElement = getFrameElement(win);\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\nfunction getFrameElement(win) {\n return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getFrameElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isTopLayer, isWebKit };\n","import { rectToClientRect, arrow as arrow$1, autoPlacement as autoPlacement$1, detectOverflow as detectOverflow$1, flip as flip$1, hide as hide$1, inline as inline$1, limitShift as limitShift$1, offset as offset$1, shift as shift$1, size as size$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle as getComputedStyle$1, isHTMLElement, isElement, getWindow, isWebKit, getFrameElement, getNodeScroll, getDocumentElement, isTopLayer, getNodeName, isOverflowElement, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle$1(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentWin = win;\n let currentIFrame = getFrameElement(currentWin);\n while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle$1(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentWin = getWindow(currentIFrame);\n currentIFrame = getFrameElement(currentWin);\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\n// If <html> has a CSS width greater than the viewport, then this will be\n// incorrect for RTL.\nfunction getWindowScrollBarX(element, rect) {\n const leftScroll = getNodeScroll(element).scrollLeft;\n if (!rect) {\n return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;\n }\n return rect.left + leftScroll;\n}\n\nfunction getHTMLOffset(documentElement, scroll) {\n const htmlRect = documentElement.getBoundingClientRect();\n const x = htmlRect.left + scroll.scrollLeft - getWindowScrollBarX(documentElement, htmlRect);\n const y = htmlRect.top + scroll.scrollTop;\n return {\n x,\n y\n };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n elements,\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isFixed = strategy === 'fixed';\n const documentElement = getDocumentElement(offsetParent);\n const topLayer = elements ? isTopLayer(elements.floating) : false;\n if (offsetParent === documentElement || topLayer && isFixed) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle$1(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Safety check: ensure the scrollbar space is reasonable in case this\n// calculation is affected by unusual styles.\n// Most scrollbars leave 15-18px of space.\nconst SCROLLBAR_MAX = 25;\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n const windowScrollbarX = getWindowScrollBarX(html);\n // <html> `overflow: hidden` + `scrollbar-gutter: stable` reduces the\n // visual width of the <html> but this is not considered in the size\n // of `html.clientWidth`.\n if (windowScrollbarX <= 0) {\n const doc = html.ownerDocument;\n const body = doc.body;\n const bodyStyles = getComputedStyle(body);\n const bodyMarginInline = doc.compatMode === 'CSS1Compat' ? parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0 : 0;\n const clippingStableScrollbarWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline);\n if (clippingStableScrollbarWidth <= SCROLLBAR_MAX) {\n width -= clippingStableScrollbarWidth;\n }\n } else if (windowScrollbarX <= SCROLLBAR_MAX) {\n // If the <body> scrollbar is on the left, the width needs to be extended\n // by the scrollbar amount so there isn't extra space on the right.\n width += windowScrollbarX;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nconst absoluteOrFixed = /*#__PURE__*/new Set(['absolute', 'fixed']);\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y,\n width: clippingAncestor.width,\n height: clippingAncestor.height\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle$1(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle$1(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle$1(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && absoluteOrFixed.has(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n const {\n width,\n height\n } = getCssDimensions(element);\n return {\n width,\n height\n };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n\n // If the <body> scrollbar appears on the left (e.g. RTL systems). Use\n // Firefox with layout.scrollbar.side = 3 in about:config to test this.\n function setLeftRTLScrollbarOffset() {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n setLeftRTLScrollbarOffset();\n }\n }\n if (isFixed && !isOffsetParentAnElement && documentElement) {\n setLeftRTLScrollbarOffset();\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;\n const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;\n return {\n x,\n y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction isStaticPositioned(element) {\n return getComputedStyle$1(element).position === 'static';\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle$1(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n let rawOffsetParent = element.offsetParent;\n\n // Firefox returns the <html> element as the offsetParent if it's non-static,\n // while Chrome and Safari return the <body> element. The <body> element must\n // be used to perform the correct calculations even if the <html> element is\n // non-static.\n if (getDocumentElement(element) === rawOffsetParent) {\n rawOffsetParent = rawOffsetParent.ownerDocument.body;\n }\n return rawOffsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const win = getWindow(element);\n if (isTopLayer(element)) {\n return win;\n }\n if (!isHTMLElement(element)) {\n let svgOffsetParent = getParentNode(element);\n while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {\n if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\n return svgOffsetParent;\n }\n svgOffsetParent = getParentNode(svgOffsetParent);\n }\n return win;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {\n return win;\n }\n return offsetParent || getContainingBlock(element) || win;\n}\n\nconst getElementRects = async function (data) {\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n const floatingDimensions = await getDimensionsFn(data.floating);\n return {\n reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n floating: {\n x: 0,\n y: 0,\n width: floatingDimensions.width,\n height: floatingDimensions.height\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle$1(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\nfunction rectsAreEqual(a, b) {\n return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n}\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n var _io;\n clearTimeout(timeoutId);\n (_io = io) == null || _io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const elementRectForRootMargin = element.getBoundingClientRect();\n const {\n left,\n top,\n width,\n height\n } = elementRectForRootMargin;\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n // If the reference is clipped, the ratio is 0. Throttle the refresh\n // to prevent an infinite loop of updates.\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 1000);\n } else {\n refresh(false, ratio);\n }\n }\n if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {\n // It's possible that even though the ratio is reported as 1, the\n // element is not actually fully within the IntersectionObserver's root\n // area anymore. This can happen under performance constraints. This may\n // be a bug in the browser's IntersectionObserver implementation. To\n // work around this, we compare the element's bounding rect now with\n // what it was at the time we created the IntersectionObserver. If they\n // are not equal then the element moved, so we refresh.\n refresh();\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle <iframe>s\n root: root.ownerDocument\n });\n } catch (_e) {\n io = new IntersectionObserver(handleObserve, options);\n }\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = typeof ResizeObserver === 'function',\n layoutShift = typeof IntersectionObserver === 'function',\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...getOverflowAncestors(floating)] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let reobserveFrame = -1;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver(_ref => {\n let [firstEntry] = _ref;\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n // Prevent update loops when using the `size` middleware.\n // https://github.com/floating-ui/floating-ui/issues/1740\n resizeObserver.unobserve(floating);\n cancelAnimationFrame(reobserveFrame);\n reobserveFrame = requestAnimationFrame(() => {\n var _resizeObserver;\n (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);\n });\n }\n update();\n });\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n resizeObserver.observe(floating);\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && !rectsAreEqual(prevRefRect, nextRefRect)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n var _resizeObserver2;\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n cleanupIo == null || cleanupIo();\n (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nconst detectOverflow = detectOverflow$1;\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = offset$1;\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = autoPlacement$1;\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = shift$1;\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = flip$1;\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = size$1;\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = hide$1;\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = arrow$1;\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = inline$1;\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = limitShift$1;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n */\nconst computePosition = (reference, floating, options) => {\n // This caches the expensive `getClippingElementAncestors` function so that\n // multiple lifecycle resets re-use the same result. It only lives for a\n // single call. If other functions become expensive, we can add them as well.\n const cache = new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition$1(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, platform, shift, size };\n","var E = Object.defineProperty, M = Object.defineProperties;\nvar x = Object.getOwnPropertyDescriptors;\nvar V = Object.getOwnPropertySymbols;\nvar I = Object.prototype.hasOwnProperty, N = Object.prototype.propertyIsEnumerable;\nvar C = (e, t, s) => t in e ? E(e, t, { enumerable: !0, configurable: !0, writable: !0, value: s }) : e[t] = s, f = (e, t) => {\n for (var s in t || (t = {}))\n I.call(t, s) && C(e, s, t[s]);\n if (V)\n for (var s of V(t))\n N.call(t, s) && C(e, s, t[s]);\n return e;\n}, m = (e, t) => M(e, x(t));\nimport { openBlock as a, createElementBlock as h, createElementVNode as u, resolveDirective as K, normalizeClass as A, renderSlot as r, normalizeProps as d, guardReactiveProps as c, Fragment as B, renderList as L, createTextVNode as v, toDisplayString as D, createBlock as b, resolveDynamicComponent as _, createCommentVNode as O, mergeProps as k, toHandlers as j, withDirectives as w, vShow as P, createVNode as $, Transition as R, withCtx as z, withModifiers as F } from \"vue\";\nconst U = {\n props: {\n autoscroll: {\n type: Boolean,\n default: !0\n }\n },\n watch: {\n typeAheadPointer() {\n this.autoscroll && this.maybeAdjustScroll();\n },\n open(e) {\n this.autoscroll && e && this.$nextTick(() => this.maybeAdjustScroll());\n }\n },\n methods: {\n maybeAdjustScroll() {\n var t;\n const e = ((t = this.$refs.dropdownMenu) == null ? void 0 : t.children[this.typeAheadPointer]) || !1;\n if (e) {\n const s = this.getDropdownViewport(), { top: n, bottom: l, height: i } = e.getBoundingClientRect();\n if (n < s.top)\n return this.$refs.dropdownMenu.scrollTop = e.offsetTop;\n if (l > s.bottom)\n return this.$refs.dropdownMenu.scrollTop = e.offsetTop - (s.height - i);\n }\n },\n getDropdownViewport() {\n return this.$refs.dropdownMenu ? this.$refs.dropdownMenu.getBoundingClientRect() : {\n height: 0,\n top: 0,\n bottom: 0\n };\n }\n }\n}, q = {\n data() {\n return {\n typeAheadPointer: -1\n };\n },\n watch: {\n filteredOptions() {\n for (let e = 0; e < this.filteredOptions.length; e++)\n if (this.selectable(this.filteredOptions[e])) {\n this.typeAheadPointer = e;\n break;\n }\n },\n open(e) {\n e && this.typeAheadToLastSelected();\n },\n selectedValue() {\n this.open && this.typeAheadToLastSelected();\n }\n },\n methods: {\n typeAheadUp() {\n for (let e = this.typeAheadPointer - 1; e >= 0; e--)\n if (this.selectable(this.filteredOptions[e])) {\n this.typeAheadPointer = e;\n break;\n }\n },\n typeAheadDown() {\n for (let e = this.typeAheadPointer + 1; e < this.filteredOptions.length; e++)\n if (this.selectable(this.filteredOptions[e])) {\n this.typeAheadPointer = e;\n break;\n }\n },\n typeAheadSelect() {\n const e = this.filteredOptions[this.typeAheadPointer];\n e && this.selectable(e) && this.select(e);\n },\n typeAheadToLastSelected() {\n this.typeAheadPointer = this.selectedValue.length !== 0 ? this.filteredOptions.indexOf(this.selectedValue[this.selectedValue.length - 1]) : -1;\n }\n }\n}, J = {\n props: {\n loading: {\n type: Boolean,\n default: !1\n }\n },\n data() {\n return {\n mutableLoading: !1\n };\n },\n watch: {\n search() {\n this.$emit(\"search\", this.search, this.toggleLoading);\n },\n loading(e) {\n this.mutableLoading = e;\n }\n },\n methods: {\n toggleLoading(e = null) {\n return e == null ? this.mutableLoading = !this.mutableLoading : this.mutableLoading = e;\n }\n }\n}, S = (e, t) => {\n const s = e.__vccOpts || e;\n for (const [n, l] of t)\n s[n] = l;\n return s;\n}, H = {}, X = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"10\",\n height: \"10\"\n}, Y = /* @__PURE__ */ u(\"path\", { d: \"M6.895455 5l2.842897-2.842898c.348864-.348863.348864-.914488 0-1.263636L9.106534.261648c-.348864-.348864-.914489-.348864-1.263636 0L5 3.104545 2.157102.261648c-.348863-.348864-.914488-.348864-1.263636 0L.261648.893466c-.348864.348864-.348864.914489 0 1.263636L3.104545 5 .261648 7.842898c-.348864.348863-.348864.914488 0 1.263636l.631818.631818c.348864.348864.914773.348864 1.263636 0L5 6.895455l2.842898 2.842897c.348863.348864.914772.348864 1.263636 0l.631818-.631818c.348864-.348864.348864-.914489 0-1.263636L6.895455 5z\" }, null, -1), Q = [\n Y\n];\nfunction G(e, t) {\n return a(), h(\"svg\", X, Q);\n}\nconst W = /* @__PURE__ */ S(H, [[\"render\", G]]), Z = {}, ee = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"14\",\n height: \"10\"\n}, te = /* @__PURE__ */ u(\"path\", { d: \"M9.211364 7.59931l4.48338-4.867229c.407008-.441854.407008-1.158247 0-1.60046l-.73712-.80023c-.407008-.441854-1.066904-.441854-1.474243 0L7 5.198617 2.51662.33139c-.407008-.441853-1.066904-.441853-1.474243 0l-.737121.80023c-.407008.441854-.407008 1.158248 0 1.600461l4.48338 4.867228L7 10l2.211364-2.40069z\" }, null, -1), se = [\n te\n];\nfunction ie(e, t) {\n return a(), h(\"svg\", ee, se);\n}\nconst oe = /* @__PURE__ */ S(Z, [[\"render\", ie]]), T = {\n Deselect: W,\n OpenIndicator: oe\n}, ne = {\n mounted(e, { instance: t }) {\n if (t.appendToBody) {\n const {\n height: s,\n top: n,\n left: l,\n width: i\n } = t.$refs.toggle.getBoundingClientRect();\n let y = window.scrollX || window.pageXOffset, o = window.scrollY || window.pageYOffset;\n e.unbindPosition = t.calculatePosition(e, t, {\n width: i + \"px\",\n left: y + l + \"px\",\n top: o + n + s + \"px\"\n }), document.body.appendChild(e);\n }\n },\n unmounted(e, { instance: t }) {\n t.appendToBody && (e.unbindPosition && typeof e.unbindPosition == \"function\" && e.unbindPosition(), e.parentNode && e.parentNode.removeChild(e));\n }\n};\nfunction le(e) {\n const t = {};\n return Object.keys(e).sort().forEach((s) => {\n t[s] = e[s];\n }), JSON.stringify(t);\n}\nlet ae = 0;\nfunction re() {\n return ++ae;\n}\nconst de = {\n components: f({}, T),\n directives: { appendToBody: ne },\n mixins: [U, q, J],\n compatConfig: {\n MODE: 3\n },\n emits: [\n \"open\",\n \"close\",\n \"update:modelValue\",\n \"search\",\n \"search:compositionstart\",\n \"search:compositionend\",\n \"search:keydown\",\n \"search:blur\",\n \"search:focus\",\n \"search:input\",\n \"option:created\",\n \"option:selecting\",\n \"option:selected\",\n \"option:deselecting\",\n \"option:deselected\"\n ],\n props: {\n modelValue: {},\n components: {\n type: Object,\n default: () => ({})\n },\n options: {\n type: Array,\n default() {\n return [];\n }\n },\n disabled: {\n type: Boolean,\n default: !1\n },\n clearable: {\n type: Boolean,\n default: !0\n },\n deselectFromDropdown: {\n type: Boolean,\n default: !1\n },\n searchable: {\n type: Boolean,\n default: !0\n },\n multiple: {\n type: Boolean,\n default: !1\n },\n placeholder: {\n type: String,\n default: \"\"\n },\n transition: {\n type: String,\n default: \"vs__fade\"\n },\n clearSearchOnSelect: {\n type: Boolean,\n default: !0\n },\n closeOnSelect: {\n type: Boolean,\n default: !0\n },\n label: {\n type: String,\n default: \"label\"\n },\n autocomplete: {\n type: String,\n default: \"off\"\n },\n reduce: {\n type: Function,\n default: (e) => e\n },\n selectable: {\n type: Function,\n default: (e) => !0\n },\n getOptionLabel: {\n type: Function,\n default(e) {\n return typeof e == \"object\" ? e.hasOwnProperty(this.label) ? e[this.label] : console.warn(`[vue-select warn]: Label key \"option.${this.label}\" does not exist in options object ${JSON.stringify(e)}.\nhttps://vue-select.org/api/props.html#getoptionlabel`) : e;\n }\n },\n getOptionKey: {\n type: Function,\n default(e) {\n if (typeof e != \"object\")\n return e;\n try {\n return e.hasOwnProperty(\"id\") ? e.id : le(e);\n } catch (t) {\n return console.warn(`[vue-select warn]: Could not stringify this option to generate unique key. Please provide'getOptionKey' prop to return a unique key for each option.\nhttps://vue-select.org/api/props.html#getoptionkey`, e, t);\n }\n }\n },\n onTab: {\n type: Function,\n default: function() {\n this.selectOnTab && !this.isComposing && this.typeAheadSelect();\n }\n },\n taggable: {\n type: Boolean,\n default: !1\n },\n tabindex: {\n type: Number,\n default: null\n },\n pushTags: {\n type: Boolean,\n default: !1\n },\n filterable: {\n type: Boolean,\n default: !0\n },\n filterBy: {\n type: Function,\n default(e, t, s) {\n return (t || \"\").toLocaleLowerCase().indexOf(s.toLocaleLowerCase()) > -1;\n }\n },\n filter: {\n type: Function,\n default(e, t) {\n return e.filter((s) => {\n let n = this.getOptionLabel(s);\n return typeof n == \"number\" && (n = n.toString()), this.filterBy(s, n, t);\n });\n }\n },\n createOption: {\n type: Function,\n default(e) {\n return typeof this.optionList[0] == \"object\" ? { [this.label]: e } : e;\n }\n },\n resetOnOptionsChange: {\n default: !1,\n validator: (e) => [\"function\", \"boolean\"].includes(typeof e)\n },\n clearSearchOnBlur: {\n type: Function,\n default: function({ clearSearchOnSelect: e, multiple: t }) {\n return e && !t;\n }\n },\n noDrop: {\n type: Boolean,\n default: !1\n },\n inputId: {\n type: String\n },\n dir: {\n type: String,\n default: \"auto\"\n },\n selectOnTab: {\n type: Boolean,\n default: !1\n },\n selectOnKeyCodes: {\n type: Array,\n default: () => [13]\n },\n searchInputQuerySelector: {\n type: String,\n default: \"[type=search]\"\n },\n mapKeydown: {\n type: Function,\n default: (e, t) => e\n },\n appendToBody: {\n type: Boolean,\n default: !1\n },\n calculatePosition: {\n type: Function,\n default(e, t, { width: s, top: n, left: l }) {\n e.style.top = n, e.style.left = l, e.style.width = s;\n }\n },\n dropdownShouldOpen: {\n type: Function,\n default({ noDrop: e, open: t, mutableLoading: s }) {\n return e ? !1 : t && !s;\n }\n },\n uid: {\n type: [String, Number],\n default: () => re()\n }\n },\n data() {\n return {\n search: \"\",\n open: !1,\n isComposing: !1,\n pushedTags: [],\n _value: [],\n deselectButtons: []\n };\n },\n computed: {\n isReducingValues() {\n return this.$props.reduce !== this.$options.props.reduce.default;\n },\n isTrackingValues() {\n return typeof this.modelValue == \"undefined\" || this.isReducingValues;\n },\n selectedValue() {\n let e = this.modelValue;\n return this.isTrackingValues && (e = this.$data._value), e != null && e !== \"\" ? [].concat(e) : [];\n },\n optionList() {\n return this.options.concat(this.pushTags ? this.pushedTags : []);\n },\n searchEl() {\n return this.$slots.search ? this.$refs.selectedOptions.querySelector(this.searchInputQuerySelector) : this.$refs.search;\n },\n scope() {\n const e = {\n search: this.search,\n loading: this.loading,\n searching: this.searching,\n filteredOptions: this.filteredOptions\n };\n return {\n search: {\n attributes: f({\n disabled: this.disabled,\n placeholder: this.searchPlaceholder,\n tabindex: this.tabindex,\n readonly: !this.searchable,\n id: this.inputId,\n \"aria-autocomplete\": \"list\",\n \"aria-labelledby\": `vs${this.uid}__combobox`,\n \"aria-controls\": `vs${this.uid}__listbox`,\n ref: \"search\",\n type: \"search\",\n autocomplete: this.autocomplete,\n value: this.search\n }, this.dropdownOpen && this.filteredOptions[this.typeAheadPointer] ? {\n \"aria-activedescendant\": `vs${this.uid}__option-${this.typeAheadPointer}`\n } : {}),\n events: {\n compositionstart: () => this.isComposing = !0,\n compositionend: () => this.isComposing = !1,\n keydown: this.onSearchKeyDown,\n blur: this.onSearchBlur,\n focus: this.onSearchFocus,\n input: (t) => this.search = t.target.value\n }\n },\n spinner: {\n loading: this.mutableLoading\n },\n noOptions: {\n search: this.search,\n loading: this.mutableLoading,\n searching: this.searching\n },\n openIndicator: {\n attributes: {\n ref: \"openIndicator\",\n role: \"presentation\",\n class: \"vs__open-indicator\"\n }\n },\n listHeader: e,\n listFooter: e,\n header: m(f({}, e), { deselect: this.deselect }),\n footer: m(f({}, e), { deselect: this.deselect })\n };\n },\n childComponents() {\n return f(f({}, T), this.components);\n },\n stateClasses() {\n return {\n \"vs--open\": this.dropdownOpen,\n \"vs--single\": !this.multiple,\n \"vs--multiple\": this.multiple,\n \"vs--searching\": this.searching && !this.noDrop,\n \"vs--searchable\": this.searchable && !this.noDrop,\n \"vs--unsearchable\": !this.searchable,\n \"vs--loading\": this.mutableLoading,\n \"vs--disabled\": this.disabled\n };\n },\n searching() {\n return !!this.search;\n },\n dropdownOpen() {\n return this.dropdownShouldOpen(this);\n },\n searchPlaceholder() {\n return this.isValueEmpty && this.placeholder ? this.placeholder : void 0;\n },\n filteredOptions() {\n const e = [].concat(this.optionList);\n if (!this.filterable && !this.taggable)\n return e;\n const t = this.search.length ? this.filter(e, this.search, this) : e;\n if (this.taggable && this.search.length) {\n const s = this.createOption(this.search);\n this.optionExists(s) || t.unshift(s);\n }\n return t;\n },\n isValueEmpty() {\n return this.selectedValue.length === 0;\n },\n showClearButton() {\n return !this.multiple && this.clearable && !this.open && !this.isValueEmpty;\n }\n },\n watch: {\n options(e, t) {\n const s = () => typeof this.resetOnOptionsChange == \"function\" ? this.resetOnOptionsChange(e, t, this.selectedValue) : this.resetOnOptionsChange;\n !this.taggable && s() && this.clearSelection(), this.modelValue && this.isTrackingValues && this.setInternalValueFromOptions(this.modelValue);\n },\n modelValue: {\n immediate: !0,\n handler(e) {\n this.isTrackingValues && this.setInternalValueFromOptions(e);\n }\n },\n multiple() {\n this.clearSelection();\n },\n open(e) {\n this.$emit(e ? \"open\" : \"close\");\n }\n },\n created() {\n this.mutableLoading = this.loading;\n },\n methods: {\n setInternalValueFromOptions(e) {\n Array.isArray(e) ? this.$data._value = e.map((t) => this.findOptionFromReducedValue(t)) : this.$data._value = this.findOptionFromReducedValue(e);\n },\n select(e) {\n this.$emit(\"option:selecting\", e), this.isOptionSelected(e) ? this.deselectFromDropdown && (this.clearable || this.multiple && this.selectedValue.length > 1) && this.deselect(e) : (this.taggable && !this.optionExists(e) && (this.$emit(\"option:created\", e), this.pushTag(e)), this.multiple && (e = this.selectedValue.concat(e)), this.updateValue(e), this.$emit(\"option:selected\", e)), this.onAfterSelect(e);\n },\n deselect(e) {\n this.$emit(\"option:deselecting\", e), this.updateValue(this.selectedValue.filter((t) => !this.optionComparator(t, e))), this.$emit(\"option:deselected\", e);\n },\n clearSelection() {\n this.updateValue(this.multiple ? [] : null);\n },\n onAfterSelect(e) {\n this.closeOnSelect && (this.open = !this.open, this.searchEl.blur()), this.clearSearchOnSelect && (this.search = \"\");\n },\n updateValue(e) {\n typeof this.modelValue == \"undefined\" && (this.$data._value = e), e !== null && (Array.isArray(e) ? e = e.map((t) => this.reduce(t)) : e = this.reduce(e)), this.$emit(\"update:modelValue\", e);\n },\n toggleDropdown(e) {\n const t = e.target !== this.searchEl;\n t && e.preventDefault();\n const s = [\n ...this.deselectButtons || [],\n this.$refs.clearButton\n ];\n if (this.searchEl === void 0 || s.filter(Boolean).some((n) => n.contains(e.target) || n === e.target)) {\n e.preventDefault();\n return;\n }\n this.open && t ? this.searchEl.blur() : this.disabled || (this.open = !0, this.searchEl.focus());\n },\n isOptionSelected(e) {\n return this.selectedValue.some((t) => this.optionComparator(t, e));\n },\n isOptionDeselectable(e) {\n return this.isOptionSelected(e) && this.deselectFromDropdown;\n },\n optionComparator(e, t) {\n return this.getOptionKey(e) === this.getOptionKey(t);\n },\n findOptionFromReducedValue(e) {\n const t = (n) => JSON.stringify(this.reduce(n)) === JSON.stringify(e), s = [...this.options, ...this.pushedTags].filter(t);\n return s.length === 1 ? s[0] : s.find((n) => this.optionComparator(n, this.$data._value)) || e;\n },\n closeSearchOptions() {\n this.open = !1, this.$emit(\"search:blur\");\n },\n maybeDeleteValue() {\n if (!this.searchEl.value.length && this.selectedValue && this.selectedValue.length && this.clearable) {\n let e = null;\n this.multiple && (e = [\n ...this.selectedValue.slice(0, this.selectedValue.length - 1)\n ]), this.updateValue(e);\n }\n },\n optionExists(e) {\n return this.optionList.some((t) => this.optionComparator(t, e));\n },\n normalizeOptionForSlot(e) {\n return typeof e == \"object\" ? e : { [this.label]: e };\n },\n pushTag(e) {\n this.pushedTags.push(e);\n },\n onEscape() {\n this.search.length ? this.search = \"\" : this.searchEl.blur();\n },\n onSearchBlur() {\n if (this.mousedown && !this.searching)\n this.mousedown = !1;\n else {\n const { clearSearchOnSelect: e, multiple: t } = this;\n this.clearSearchOnBlur({ clearSearchOnSelect: e, multiple: t }) && (this.search = \"\"), this.closeSearchOptions();\n return;\n }\n if (this.search.length === 0 && this.options.length === 0) {\n this.closeSearchOptions();\n return;\n }\n },\n onSearchFocus() {\n this.open = !0, this.$emit(\"search:focus\");\n },\n onMousedown() {\n this.mousedown = !0;\n },\n onMouseUp() {\n this.mousedown = !1;\n },\n onSearchKeyDown(e) {\n const t = (l) => (l.preventDefault(), !this.isComposing && this.typeAheadSelect()), s = {\n 8: (l) => this.maybeDeleteValue(),\n 9: (l) => this.onTab(),\n 27: (l) => this.onEscape(),\n 38: (l) => (l.preventDefault(), this.typeAheadUp()),\n 40: (l) => (l.preventDefault(), this.typeAheadDown())\n };\n this.selectOnKeyCodes.forEach((l) => s[l] = t);\n const n = this.mapKeydown(s, this);\n if (typeof n[e.keyCode] == \"function\")\n return n[e.keyCode](e);\n }\n }\n}, he = [\"dir\"], ce = [\"id\", \"aria-expanded\", \"aria-owns\"], ue = {\n ref: \"selectedOptions\",\n class: \"vs__selected-options\"\n}, pe = [\"disabled\", \"title\", \"aria-label\", \"onClick\"], fe = {\n ref: \"actions\",\n class: \"vs__actions\"\n}, ge = [\"disabled\"], ye = { class: \"vs__spinner\" }, me = [\"id\"], be = [\"id\", \"aria-selected\", \"onMouseover\", \"onClick\"], _e = {\n key: 0,\n class: \"vs__no-options\"\n}, Oe = /* @__PURE__ */ v(\" Sorry, no matching options. \"), we = [\"id\"];\nfunction ve(e, t, s, n, l, i) {\n const y = K(\"append-to-body\");\n return a(), h(\"div\", {\n dir: s.dir,\n class: A([\"v-select\", i.stateClasses])\n }, [\n r(e.$slots, \"header\", d(c(i.scope.header))),\n u(\"div\", {\n id: `vs${s.uid}__combobox`,\n ref: \"toggle\",\n class: \"vs__dropdown-toggle\",\n role: \"combobox\",\n \"aria-expanded\": i.dropdownOpen.toString(),\n \"aria-owns\": `vs${s.uid}__listbox`,\n \"aria-label\": \"Search for option\",\n onMousedown: t[1] || (t[1] = (o) => i.toggleDropdown(o))\n }, [\n u(\"div\", ue, [\n (a(!0), h(B, null, L(i.selectedValue, (o, p) => r(e.$slots, \"selected-option-container\", {\n option: i.normalizeOptionForSlot(o),\n deselect: i.deselect,\n multiple: s.multiple,\n disabled: s.disabled\n }, () => [\n (a(), h(\"span\", {\n key: s.getOptionKey(o),\n class: \"vs__selected\"\n }, [\n r(e.$slots, \"selected-option\", d(c(i.normalizeOptionForSlot(o))), () => [\n v(D(s.getOptionLabel(o)), 1)\n ]),\n s.multiple ? (a(), h(\"button\", {\n key: 0,\n ref_for: !0,\n ref: (g) => l.deselectButtons[p] = g,\n disabled: s.disabled,\n type: \"button\",\n class: \"vs__deselect\",\n title: `Deselect ${s.getOptionLabel(o)}`,\n \"aria-label\": `Deselect ${s.getOptionLabel(o)}`,\n onClick: (g) => i.deselect(o)\n }, [\n (a(), b(_(i.childComponents.Deselect)))\n ], 8, pe)) : O(\"\", !0)\n ]))\n ])), 256)),\n r(e.$slots, \"search\", d(c(i.scope.search)), () => [\n u(\"input\", k({ class: \"vs__search\" }, i.scope.search.attributes, j(i.scope.search.events)), null, 16)\n ])\n ], 512),\n u(\"div\", fe, [\n w(u(\"button\", {\n ref: \"clearButton\",\n disabled: s.disabled,\n type: \"button\",\n class: \"vs__clear\",\n title: \"Clear Selected\",\n \"aria-label\": \"Clear Selected\",\n onClick: t[0] || (t[0] = (...o) => i.clearSelection && i.clearSelection(...o))\n }, [\n (a(), b(_(i.childComponents.Deselect)))\n ], 8, ge), [\n [P, i.showClearButton]\n ]),\n r(e.$slots, \"open-indicator\", d(c(i.scope.openIndicator)), () => [\n s.noDrop ? O(\"\", !0) : (a(), b(_(i.childComponents.OpenIndicator), d(k({ key: 0 }, i.scope.openIndicator.attributes)), null, 16))\n ]),\n r(e.$slots, \"spinner\", d(c(i.scope.spinner)), () => [\n w(u(\"div\", ye, \"Loading...\", 512), [\n [P, e.mutableLoading]\n ])\n ])\n ], 512)\n ], 40, ce),\n $(R, { name: s.transition }, {\n default: z(() => [\n i.dropdownOpen ? w((a(), h(\"ul\", {\n id: `vs${s.uid}__listbox`,\n ref: \"dropdownMenu\",\n key: `vs${s.uid}__listbox`,\n class: \"vs__dropdown-menu\",\n role: \"listbox\",\n tabindex: \"-1\",\n onMousedown: t[2] || (t[2] = F((...o) => i.onMousedown && i.onMousedown(...o), [\"prevent\"])),\n onMouseup: t[3] || (t[3] = (...o) => i.onMouseUp && i.onMouseUp(...o))\n }, [\n r(e.$slots, \"list-header\", d(c(i.scope.listHeader))),\n (a(!0), h(B, null, L(i.filteredOptions, (o, p) => (a(), h(\"li\", {\n id: `vs${s.uid}__option-${p}`,\n key: s.getOptionKey(o),\n role: \"option\",\n class: A([\"vs__dropdown-option\", {\n \"vs__dropdown-option--deselect\": i.isOptionDeselectable(o) && p === e.typeAheadPointer,\n \"vs__dropdown-option--selected\": i.isOptionSelected(o),\n \"vs__dropdown-option--highlight\": p === e.typeAheadPointer,\n \"vs__dropdown-option--disabled\": !s.selectable(o)\n }]),\n \"aria-selected\": p === e.typeAheadPointer ? !0 : null,\n onMouseover: (g) => s.selectable(o) ? e.typeAheadPointer = p : null,\n onClick: F((g) => s.selectable(o) ? i.select(o) : null, [\"prevent\", \"stop\"])\n }, [\n r(e.$slots, \"option\", d(c(i.normalizeOptionForSlot(o))), () => [\n v(D(s.getOptionLabel(o)), 1)\n ])\n ], 42, be))), 128)),\n i.filteredOptions.length === 0 ? (a(), h(\"li\", _e, [\n r(e.$slots, \"no-options\", d(c(i.scope.noOptions)), () => [\n Oe\n ])\n ])) : O(\"\", !0),\n r(e.$slots, \"list-footer\", d(c(i.scope.listFooter)))\n ], 40, me)), [\n [y]\n ]) : (a(), h(\"ul\", {\n key: 1,\n id: `vs${s.uid}__listbox`,\n role: \"listbox\",\n style: { display: \"none\", visibility: \"hidden\" }\n }, null, 8, we))\n ]),\n _: 3\n }, 8, [\"name\"]),\n r(e.$slots, \"footer\", d(c(i.scope.footer)))\n ], 10, he);\n}\nconst Ce = /* @__PURE__ */ S(de, [[\"render\", ve]]);\nexport {\n Ce as default\n};\n","import { defineComponent, h } from \"vue\";\n/*!\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction findRanges(text, search) {\n const ranges = [];\n let currentIndex = 0;\n let index = text.toLowerCase().indexOf(search.toLowerCase(), currentIndex);\n let i = 0;\n while (index > -1 && i++ < text.length) {\n currentIndex = index + search.length;\n ranges.push({ start: index, end: currentIndex });\n index = text.toLowerCase().indexOf(search.toLowerCase(), currentIndex);\n }\n return ranges;\n}\nconst _sfc_main = defineComponent({\n name: \"NcHighlight\",\n props: {\n /**\n * The string to display\n */\n text: {\n type: String,\n default: \"\"\n },\n /**\n * The string to match and highlight\n */\n search: {\n type: String,\n default: \"\"\n },\n /**\n * The ranges to highlight, takes precedence over the search prop.\n */\n highlight: {\n type: Array,\n default: () => []\n }\n },\n computed: {\n /**\n * The indice ranges which should be highlighted.\n * If an array with ranges is provided, we use it. Otherwise\n * we calculate it based on the provided substring to highlight.\n *\n * @return The array of ranges to highlight\n */\n ranges() {\n let ranges = [];\n if (!this.search && this.highlight.length === 0) {\n return ranges;\n }\n if (this.highlight.length > 0) {\n ranges = this.highlight;\n } else {\n ranges = findRanges(this.text, this.search);\n }\n ranges.forEach((range, i) => {\n if (range.end < range.start) {\n ranges[i] = {\n start: range.end,\n end: range.start\n };\n }\n });\n ranges = ranges.reduce((validRanges, range) => {\n if (range.start < this.text.length && range.end > 0) {\n validRanges.push({\n start: range.start < 0 ? 0 : range.start,\n end: range.end > this.text.length ? this.text.length : range.end\n });\n }\n return validRanges;\n }, []);\n ranges.sort((a, b) => {\n return a.start - b.start;\n });\n ranges = ranges.reduce((mergedRanges, range) => {\n if (!mergedRanges.length) {\n mergedRanges.push(range);\n } else {\n const idx = mergedRanges.length - 1;\n if (mergedRanges[idx].end >= range.start) {\n mergedRanges[idx] = {\n start: mergedRanges[idx].start,\n end: Math.max(mergedRanges[idx].end, range.end)\n };\n } else {\n mergedRanges.push(range);\n }\n }\n return mergedRanges;\n }, []);\n return ranges;\n },\n /**\n * Calculate the different chunks to show based on the ranges to highlight.\n */\n chunks() {\n if (this.ranges.length === 0) {\n return [{\n start: 0,\n end: this.text.length,\n highlight: false,\n text: this.text\n }];\n }\n const chunks = [];\n let currentIndex = 0;\n let currentRange = 0;\n while (currentIndex < this.text.length) {\n const range = this.ranges[currentRange];\n if (range.start === currentIndex) {\n chunks.push({\n ...range,\n highlight: true,\n text: this.text.slice(range.start, range.end)\n });\n currentRange++;\n currentIndex = range.end;\n if (currentRange >= this.ranges.length && currentIndex < this.text.length) {\n chunks.push({\n start: currentIndex,\n end: this.text.length,\n highlight: false,\n text: this.text.slice(currentIndex)\n });\n currentIndex = this.text.length;\n }\n continue;\n }\n chunks.push({\n start: currentIndex,\n end: range.start,\n highlight: false,\n text: this.text.slice(currentIndex, range.start)\n });\n currentIndex = range.start;\n }\n return chunks;\n }\n },\n /**\n * The render function to display the component\n */\n render() {\n if (!this.ranges.length) {\n return h(\"span\", {}, this.text);\n }\n return h(\"span\", {}, this.chunks.map((chunk) => {\n return chunk.highlight ? h(\"strong\", {}, chunk.text) : chunk.text;\n }));\n }\n});\nexport {\n _sfc_main as _,\n findRanges as f\n};\n//# sourceMappingURL=NcHighlight.vue_vue_type_script_lang-DnWQDM_2.mjs.map\n","import '../assets/NcEllipsisedOption-CPWbbgBy.css';\nimport { _ as _sfc_main$1, f as findRanges } from \"./NcHighlight.vue_vue_type_script_lang-DnWQDM_2.mjs\";\nimport { resolveComponent, createElementBlock, openBlock, createVNode, createBlock, createCommentVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcEllipsisedOption\",\n components: {\n NcHighlight: _sfc_main$1\n },\n props: {\n /**\n * The text to be display in one line. If it is longer than 10 characters, it is be truncated with ellipsis in the end but keeping up to 10 last characters to fit the parent container.\n */\n name: {\n type: String,\n default: \"\"\n },\n /**\n * The search value to highlight in the text\n */\n search: {\n type: String,\n default: \"\"\n }\n },\n computed: {\n needsTruncate() {\n return this.name && this.name.length >= 10;\n },\n /**\n * Index at which to split the name if it is longer than 10 characters.\n *\n * @return {number} The position at which to split\n */\n split() {\n return this.name.length - Math.min(Math.floor(this.name.length / 2), 10);\n },\n part1() {\n if (this.needsTruncate) {\n return this.name.slice(0, this.split);\n }\n return this.name;\n },\n part2() {\n if (this.needsTruncate) {\n return this.name.slice(this.split);\n }\n return \"\";\n },\n /**\n * The ranges to highlight. Since we split the string for ellipsising,\n * the Highlight component cannot figure this out itself and needs the ranges provided.\n *\n * @return {Array} The array with the ranges to highlight\n */\n highlight1() {\n if (!this.search) {\n return [];\n }\n return findRanges(this.name, this.search);\n },\n /**\n * We shift the ranges for the second part by the position of the split.\n * Ranges out of the string length are discarded by the Highlight component,\n * so we don't need to take care of this here.\n *\n * @return {Array} The array with the ranges to highlight\n */\n highlight2() {\n return this.highlight1.map((range) => {\n return {\n start: range.start - this.split,\n end: range.end - this.split\n };\n });\n }\n }\n};\nconst _hoisted_1 = [\"title\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcHighlight = resolveComponent(\"NcHighlight\");\n return openBlock(), createElementBlock(\"span\", {\n dir: \"auto\",\n class: \"name-parts\",\n title: $props.name\n }, [\n createVNode(_component_NcHighlight, {\n class: \"name-parts__first\",\n text: $options.part1,\n search: $props.search,\n highlight: $options.highlight1\n }, null, 8, [\"text\", \"search\", \"highlight\"]),\n $options.part2 ? (openBlock(), createBlock(_component_NcHighlight, {\n key: 0,\n class: \"name-parts__last\",\n text: $options.part2,\n search: $props.search,\n highlight: $options.highlight2\n }, null, 8, [\"text\", \"search\", \"highlight\"])) : createCommentVNode(\"\", true)\n ], 8, _hoisted_1);\n}\nconst NcEllipsisedOption = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-a612f185\"]]);\nexport {\n NcEllipsisedOption as N\n};\n//# sourceMappingURL=NcEllipsisedOption-dT-CtXYp.mjs.map\n","import '../assets/NcSelect-ZnE_MlqV.css';\nimport { autoUpdate, computePosition, offset, flip, shift, limitShift } from \"@floating-ui/dom\";\nimport { h, resolveComponent, createBlock, openBlock, mergeProps, createSlots, withCtx, createTextVNode, toDisplayString, createCommentVNode, renderSlot, createVNode, normalizeProps, guardReactiveProps, createElementVNode, toHandlers, renderList, warn } from \"vue\";\nimport VueSelect from \"vue-select\";\nimport { C as ChevronDown } from \"./ChevronDown-FiGpp0KT.mjs\";\nimport { I as IconClose } from \"./Close-D6ngJ4t9.mjs\";\nimport { N as NcEllipsisedOption } from \"./NcEllipsisedOption-dT-CtXYp.mjs\";\nimport { N as NcLoadingIcon } from \"./NcLoadingIcon-b_ajZ_nQ.mjs\";\nimport { r as register, d as t17, a as t } from \"./_l10n-DrTiip5c.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { i as isLegacy } from \"./legacy-DcjXBL_t.mjs\";\nimport \"vue-select/dist/vue-select.css\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t17);\nconst _sfc_main = {\n name: \"NcSelect\",\n components: {\n ChevronDown,\n NcEllipsisedOption,\n NcLoadingIcon,\n VueSelect\n },\n props: {\n // Add VueSelect props to $props\n ...VueSelect.props,\n ...VueSelect.mixins.reduce((allProps, mixin) => ({ ...allProps, ...mixin.props }), {}),\n /**\n * `aria-label` for the clear input button\n */\n ariaLabelClearSelected: {\n type: String,\n default: t(\"Clear selected\")\n },\n /**\n * `aria-label` for the search input\n *\n * A descriptive `inputLabel` is preferred as this is not visible.\n */\n ariaLabelCombobox: {\n type: String,\n default: null\n },\n /**\n * `aria-label` for the listbox element\n */\n ariaLabelListbox: {\n type: String,\n default: t(\"Options\")\n },\n /**\n * Allows to customize the `aria-label` for the deselect-option button\n * The default is \"Deselect \" + optionLabel\n *\n * @type {(optionLabel: string) => string}\n */\n ariaLabelDeselectOption: {\n type: Function,\n default: (optionLabel) => t(\"Deselect {option}\", { option: optionLabel })\n },\n /**\n * Append the dropdown element to the end of the body\n * and size/position it dynamically.\n *\n * @see https://vue-select.org/api/props.html#appendtobody\n */\n appendToBody: {\n type: Boolean,\n default: true\n },\n /**\n * When `appendToBody` is true, this function is responsible for\n * positioning the drop down list.\n *\n * If a function is returned from `calculatePosition`, it will\n * be called when the drop down list is removed from the DOM.\n * This allows for any garbage collection you may need to do.\n *\n * @see https://vue-select.org/api/props.html#calculateposition\n */\n calculatePosition: {\n type: Function,\n default: null\n },\n /**\n * Keep the dropdown open after selecting an option.\n *\n * @default false\n * @since 8.25.0\n */\n keepOpen: {\n type: Boolean,\n default: false\n },\n /**\n * Replace default vue-select components\n *\n * @see https://vue-select.org/api/props.html#components\n */\n components: {\n type: Object,\n default: () => ({\n Deselect: {\n render: () => h(IconClose, {\n size: 20,\n fillColor: \"var(--vs-controls-color)\",\n style: [\n { cursor: \"pointer\" }\n ]\n })\n }\n })\n },\n /**\n * Sets the maximum number of options to display in the dropdown list\n */\n limit: {\n type: Number,\n default: null\n },\n /**\n * Disable the component\n *\n * @see https://vue-select.org/api/props.html#disabled\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * Determines whether the dropdown should be open.\n * Receives the component instance as the only argument.\n *\n * @see https://vue-select.org/api/props.html#dropdownshouldopen\n */\n dropdownShouldOpen: {\n type: Function,\n default: ({ noDrop, open }) => {\n return noDrop ? false : open;\n }\n },\n /**\n * Callback to determine if the provided option should\n * match the current search text. Used to determine\n * if the option should be displayed.\n *\n * Defaults to the internal vue-select function documented at the link\n * below\n *\n * @see https://vue-select.org/api/props.html#filterby\n */\n filterBy: {\n type: Function,\n default: null\n },\n /**\n * Class for the `input`\n *\n * Necessary for use in NcActionInput\n */\n inputClass: {\n type: [String, Object],\n default: null\n },\n /**\n * Input element id\n */\n inputId: {\n type: String,\n default: () => createElementId()\n },\n /**\n * Visible label for the input element\n */\n inputLabel: {\n type: String,\n default: null\n },\n /**\n * Pass true if you are using an external label\n */\n labelOutside: {\n type: Boolean,\n default: false\n },\n /**\n * Display a visible border around dropdown options\n * which have keyboard focus\n */\n keyboardFocusBorder: {\n type: Boolean,\n default: true\n },\n /**\n * Key of the displayed label for object options\n *\n * Defaults to the internal vue-select string documented at the link\n * below\n *\n * @see https://vue-select.org/api/props.html#label\n */\n label: {\n type: String,\n default: null\n },\n /**\n * Show the loading icon\n *\n * @see https://vue-select.org/api/props.html#loading\n */\n loading: {\n type: Boolean,\n default: false\n },\n /**\n * Allow selection of multiple options\n *\n * @see https://vue-select.org/api/props.html#multiple\n */\n multiple: {\n type: Boolean,\n default: false\n },\n /**\n * Disable automatic wrapping when selected options overflow the width\n */\n noWrap: {\n type: Boolean,\n default: false\n },\n /**\n * Array of options\n *\n * @type {Array<string | number | Record<string | number, any>>}\n *\n * @see https://vue-select.org/api/props.html#options\n */\n options: {\n type: Array,\n default: () => []\n },\n /**\n * Placeholder text\n *\n * @see https://vue-select.org/api/props.html#placeholder\n */\n placeholder: {\n type: String,\n default: \"\"\n },\n /**\n * Customized component's response to keydown events while the search input has focus\n *\n * @see https://vue-select.org/guide/keydown.html#mapkeydown\n */\n mapKeydown: {\n type: Function,\n /**\n * Patched Vue-Select keydown events handlers map to stop Escape propagation in open select\n *\n * @param {Record<number, Function>} map - Mapped keyCode to handlers { <keyCode>:<callback> }\n * @param {import('@nextcloud/vue-select').VueSelect} vm - VueSelect instance\n * @return {Record<number, Function>} patched keydown event handlers\n */\n default(map, vm) {\n return {\n ...map,\n /**\n * Patched Escape handler to stop propagation from open select\n *\n * @param {KeyboardEvent} event - default keydown event handler\n */\n 27: (event) => {\n if (vm.open) {\n event.stopPropagation();\n }\n map[27](event);\n }\n };\n }\n },\n /**\n * A unique identifier used to generate IDs and DOM attributes. Must be unique for every instance of the component.\n *\n * @see https://vue-select.org/api/props.html#uid\n */\n uid: {\n type: String,\n default: () => createElementId()\n },\n /**\n * When `appendToBody` is true, this sets the placement of the dropdown\n *\n * @type {'bottom' | 'top'}\n */\n placement: {\n type: String,\n default: \"bottom\"\n },\n /**\n * If false, the focused dropdown option will not be reset when filtered\n * options change\n */\n resetFocusOnOptionsChange: {\n type: Boolean,\n default: true\n },\n /**\n * Currently selected value\n *\n * The `v-model` directive may be used for two-way data binding\n *\n * @type {string | number | Record<string | number, any> | Array<any>}\n *\n * @see https://vue-select.org/api/props.html#value\n */\n modelValue: {\n type: [String, Number, Object, Array],\n default: null\n },\n /**\n * Enable if a value is required for native form validation\n */\n required: {\n type: Boolean,\n default: false\n },\n /**\n * Any available prop\n *\n * @see https://vue-select.org/api/props.html\n */\n // Not an actual prop but needed to show in vue-styleguidist docs\n // eslint-disable-next-line\n \" \": {}\n },\n emits: [\n /**\n * All events from https://vue-select.org/api/events.html\n */\n // Not an actual event but needed to show in vue-styleguidist docs\n \" \",\n \"update:modelValue\"\n ],\n setup() {\n const clickableArea = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue(\"--default-clickable-area\"));\n const gridBaseLine = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue(\"--default-grid-baseline\"));\n const avatarSize = clickableArea - 2 * gridBaseLine;\n return {\n avatarSize,\n isLegacy\n };\n },\n data() {\n return {\n search: \"\"\n };\n },\n computed: {\n inputRequired() {\n if (!this.required) {\n return null;\n }\n return this.modelValue === null || Array.isArray(this.modelValue) && this.modelValue.length === 0;\n },\n localCalculatePosition() {\n if (this.calculatePosition !== null) {\n return this.calculatePosition;\n }\n return (dropdownMenu, component, { width }) => {\n dropdownMenu.style.width = width;\n const addClass = {\n name: \"addClass\",\n fn() {\n dropdownMenu.classList.add(\"vs__dropdown-menu--floating\");\n return {};\n }\n };\n const togglePlacementClass = {\n name: \"togglePlacementClass\",\n fn({ placement }) {\n component.$el.classList.toggle(\n \"select--drop-up\",\n placement === \"top\"\n );\n dropdownMenu.classList.toggle(\n \"vs__dropdown-menu--floating-placement-top\",\n placement === \"top\"\n );\n return {};\n }\n };\n const updatePosition = () => {\n computePosition(component.$refs.toggle, dropdownMenu, {\n placement: this.placement,\n middleware: [\n offset(-1),\n addClass,\n togglePlacementClass,\n // Match popperjs default collision prevention behavior by appending the following middleware in order\n flip(),\n shift({ limiter: limitShift() })\n ]\n }).then(({ x, y }) => {\n Object.assign(dropdownMenu.style, {\n left: `${x}px`,\n top: `${y}px`,\n width: `${component.$refs.toggle.getBoundingClientRect().width}px`\n });\n });\n };\n const cleanup = autoUpdate(\n component.$refs.toggle,\n dropdownMenu,\n updatePosition\n );\n return cleanup;\n };\n },\n localFilterBy() {\n return this.filterBy ?? VueSelect.props.filterBy.default;\n },\n localLabel() {\n return this.label ?? VueSelect.props.label.default;\n },\n propsToForward() {\n const vueSelectKeys = [\n ...Object.keys(VueSelect.props),\n ...VueSelect.mixins.flatMap((mixin) => Object.keys(mixin.props ?? {}))\n ];\n const initialPropsToForward = Object.fromEntries(Object.entries(this.$props).filter(([key, _value]) => vueSelectKeys.includes(key)));\n const propsToForward = {\n ...initialPropsToForward,\n // Custom overrides of vue-select props\n calculatePosition: this.localCalculatePosition,\n closeOnSelect: !this.keepOpen,\n filterBy: this.localFilterBy,\n label: this.localLabel\n };\n return propsToForward;\n }\n },\n mounted() {\n if (!this.labelOutside && !this.inputLabel && !this.ariaLabelCombobox) {\n warn(\"[NcSelect] An `inputLabel` or `ariaLabelCombobox` should be set. If an external label is used, `labelOutside` should be set to `true`.\");\n }\n if (this.inputLabel && this.ariaLabelCombobox) {\n warn(\"[NcSelect] Only one of `inputLabel` or `ariaLabelCombobox` should to be set.\");\n }\n },\n methods: {\n t\n }\n};\nconst _hoisted_1 = [\"for\"];\nconst _hoisted_2 = [\"required\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_ChevronDown = resolveComponent(\"ChevronDown\");\n const _component_NcEllipsisedOption = resolveComponent(\"NcEllipsisedOption\");\n const _component_NcLoadingIcon = resolveComponent(\"NcLoadingIcon\");\n const _component_VueSelect = resolveComponent(\"VueSelect\");\n return openBlock(), createBlock(_component_VueSelect, mergeProps({\n class: [\"select\", {\n \"select--legacy\": $setup.isLegacy,\n \"select--no-wrap\": $props.noWrap\n }]\n }, $options.propsToForward, {\n onSearch: _cache[0] || (_cache[0] = ($event) => $data.search = $event),\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event) => _ctx.$emit(\"update:modelValue\", $event))\n }), createSlots({\n search: withCtx(({ attributes, events }) => [\n createElementVNode(\"input\", mergeProps({\n class: [\"vs__search\", [$props.inputClass]]\n }, attributes, {\n required: $options.inputRequired,\n dir: \"auto\"\n }, toHandlers(events, true)), null, 16, _hoisted_2)\n ]),\n \"open-indicator\": withCtx(({ attributes }) => [\n createVNode(_component_ChevronDown, mergeProps(attributes, {\n \"fill-color\": \"var(--vs-controls-color)\",\n style: {\n cursor: !$props.disabled ? \"pointer\" : null\n },\n size: 26\n }), null, 16, [\"style\"])\n ]),\n option: withCtx((option) => [\n renderSlot(_ctx.$slots, \"option\", normalizeProps(guardReactiveProps(option)), () => [\n createVNode(_component_NcEllipsisedOption, {\n name: String(option[$options.localLabel]),\n search: $data.search\n }, null, 8, [\"name\", \"search\"])\n ])\n ]),\n \"selected-option\": withCtx((selectedOption) => [\n renderSlot(_ctx.$slots, \"selected-option\", { vBind: selectedOption }, () => [\n createVNode(_component_NcEllipsisedOption, {\n name: String(selectedOption[$options.localLabel]),\n search: $data.search\n }, null, 8, [\"name\", \"search\"])\n ])\n ]),\n spinner: withCtx((spinner) => [\n spinner.loading ? (openBlock(), createBlock(_component_NcLoadingIcon, { key: 0 })) : createCommentVNode(\"\", true)\n ]),\n \"no-options\": withCtx(() => [\n createTextVNode(toDisplayString($options.t(\"No results\")), 1)\n ]),\n _: 2\n }, [\n !$props.labelOutside && $props.inputLabel ? {\n name: \"header\",\n fn: withCtx(() => [\n createElementVNode(\"label\", {\n for: $props.inputId,\n class: \"select__label\"\n }, toDisplayString($props.inputLabel), 9, _hoisted_1)\n ]),\n key: \"0\"\n } : void 0,\n renderList(_ctx.$slots, (_, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1040, [\"class\"]);\n}\nconst NcSelect = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nexport {\n NcSelect as N\n};\n//# sourceMappingURL=NcSelect-Czzsi3P_.mjs.map\n"],"names":["_sfc_main","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","openBlock","createElementBlock","mergeProps","$event","createElementVNode","toDisplayString","createCommentVNode","ChevronDown","_export_sfc","IconClose","hasWindow","getNodeName","node","isNode","getWindow","_node$ownerDocument","getDocumentElement","_ref","value","isElement","isHTMLElement","isShadowRoot","invalidOverflowDisplayValues","isOverflowElement","element","overflow","overflowX","overflowY","display","getComputedStyle","tableElements","isTableElement","topLayerSelectors","isTopLayer","selector","transformProperties","willChangeValues","containValues","isContainingBlock","elementOrCss","webkit","isWebKit","css","getContainingBlock","currentNode","getParentNode","isLastTraversableNode","lastTraversableNodeNames","getNodeScroll","result","getNearestOverflowAncestor","parentNode","getOverflowAncestors","list","traverseIframes","_node$ownerDocument2","scrollableAncestor","isBody","win","frameElement","getFrameElement","getCssDimensions","getComputedStyle$1","width","height","hasOffset","offsetWidth","offsetHeight","shouldFallback","round","unwrapElement","getScale","domElement","createCoords","rect","$","x","y","noOffsets","getVisualOffsets","shouldAddVisualOffsets","isFixed","floatingOffsetParent","getBoundingClientRect","includeScale","isFixedStrategy","offsetParent","clientRect","scale","visualOffsets","offsetWin","currentWin","currentIFrame","iframeScale","iframeRect","left","top","rectToClientRect","getWindowScrollBarX","leftScroll","getHTMLOffset","documentElement","scroll","htmlRect","convertOffsetParentRelativeRectToViewportRelativeRect","elements","strategy","topLayer","offsets","isOffsetParentAnElement","offsetRect","htmlOffset","getClientRects","getDocumentRect","html","body","max","SCROLLBAR_MAX","getViewportRect","visualViewport","visualViewportBased","windowScrollbarX","doc","bodyStyles","bodyMarginInline","clippingStableScrollbarWidth","absoluteOrFixed","getInnerBoundingClientRect","getClientRectFromClippingAncestor","clippingAncestor","hasFixedPositionAncestor","stopNode","getClippingElementAncestors","cache","cachedResult","el","currentContainingBlockComputedStyle","elementIsFixed","computedStyle","currentNodeIsContaining","ancestor","getClippingRect","boundary","rootBoundary","clippingAncestors","firstClippingAncestor","clippingRect","accRect","min","getDimensions","getRectRelativeToOffsetParent","setLeftRTLScrollbarOffset","isStaticPositioned","getTrueOffsetParent","polyfill","rawOffsetParent","getOffsetParent","svgOffsetParent","getElementRects","data","getOffsetParentFn","getDimensionsFn","floatingDimensions","isRTL","platform","rectsAreEqual","a","b","observeMove","onMove","io","timeoutId","root","cleanup","_io","refresh","skip","threshold","elementRectForRootMargin","insetTop","floor","insetRight","insetBottom","insetLeft","options","isFirstUpdate","handleObserve","entries","ratio","autoUpdate","reference","floating","update","ancestorScroll","ancestorResize","elementResize","layoutShift","animationFrame","referenceEl","ancestors","cleanupIo","reobserveFrame","resizeObserver","firstEntry","_resizeObserver","frameId","prevRefRect","frameLoop","nextRefRect","_resizeObserver2","offset","offset$1","shift","shift$1","flip","flip$1","limitShift","limitShift$1","computePosition","mergedOptions","platformWithCache","computePosition$1","E","M","V","I","N","C","e","t","s","f","m","U","n","l","i","q","J","S","H","X","Y","u","Q","G","h","W","Z","ee","te","se","ie","oe","T","ne","o","le","ae","re","de","he","ce","ue","pe","fe","ge","ye","me","be","_e","Oe","v","we","ve","K","A","r","d","c","B","L","p","D","g","_","O","k","j","w","P","R","z","F","Ce","findRanges","text","search","ranges","currentIndex","index","defineComponent","range","validRanges","mergedRanges","idx","chunks","currentRange","chunk","_sfc_main$1","_component_NcHighlight","resolveComponent","createVNode","createBlock","NcEllipsisedOption","register","t17","NcLoadingIcon","VueSelect","allProps","mixin","optionLabel","noDrop","open","createElementId","map","vm","event","clickableArea","gridBaseLine","isLegacy","dropdownMenu","component","addClass","togglePlacementClass","placement","updatePosition","vueSelectKeys","key","_value","_component_ChevronDown","_component_NcEllipsisedOption","_component_NcLoadingIcon","_component_VueSelect","createSlots","withCtx","attributes","events","toHandlers","option","renderSlot","normalizeProps","guardReactiveProps","selectedOption","spinner","createTextVNode","renderList","name","NcSelect"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7]} \ No newline at end of file diff --git a/dist/NcSelect-Czzsi3P_-DLFUGW7z.chunk.mjs.map.license b/dist/NcSelect-Czzsi3P_-BKaYvmLF.chunk.mjs.map.license similarity index 100% rename from dist/NcSelect-Czzsi3P_-DLFUGW7z.chunk.mjs.map.license rename to dist/NcSelect-Czzsi3P_-BKaYvmLF.chunk.mjs.map.license diff --git a/dist/NcUserBubble-DPAmU2_J-BCvWAzcB.chunk.mjs b/dist/NcUserBubble-DPAmU2_J-BCvWAzcB.chunk.mjs deleted file mode 100644 index d6fe441361975..0000000000000 --- a/dist/NcUserBubble-DPAmU2_J-BCvWAzcB.chunk.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import{R as z}from"./colors-Go3zmZRD-DU6ImAGi.chunk.mjs";import{N as U}from"./NcAvatar-DmUGApWA-DBHt6M62.chunk.mjs";import{H as x}from"./index-JpgrUA2Z-BFiKKJ1W.chunk.mjs";import{_ as y}from"./createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs";import{b as k,p as c,q as R,x as s,ae as B,s as L,c as b,o as l,w as o,m as i,N as f,z as S,e as H,k as j,j as _,l as q,K as C,t as K}from"./runtime-dom.esm-bundler-BrYCUcZF.chunk.mjs";const M={};function W(r,n){return l(),_("div",null,[i(r.$slots,"trigger")])}const A=y(M,[["render",W]]),D={class:"user-bubble__name"},E={key:0,class:"user-bubble__secondary"},F=k({__name:"NcUserBubble",props:c({avatarImage:{default:void 0},user:{default:void 0},displayName:{default:void 0},showUserStatus:{type:Boolean},url:{default:void 0},to:{default:void 0},primary:{type:Boolean},size:{default:20},margin:{default:2}},{open:{type:Boolean},openModifiers:{}}),emits:c(["click"],["update:open"]),setup(r,{emit:n}){const d=R(r,"open"),e=r,g=n,p=s(()=>{if(!e.avatarImage)return!1;try{return!!new URL(e.avatarImage)}catch{return!1}}),m=s(()=>!!e.avatarImage),h=s(()=>({marginInlineStart:`${e.margin}px`})),v=s(()=>{if(!e.url||e.url.trim()==="")return!1;try{return!!new URL(e.url,e.url?.startsWith?.("/")?window.location.href:void 0)}catch{return B("[NcUserBubble] Invalid URL passed",{url:e.url}),!1}}),w=s(()=>v.value?e.url:void 0),N=s(()=>v.value?"a":e.to?z:"div"),I=s(()=>({height:`${e.size}px`,lineHeight:`${e.size}px`,borderRadius:`${e.size/2}px`}));return L([()=>e.displayName,()=>e.user],()=>{!e.displayName&&e.user}),(a,t)=>(l(),b(f(a.$slots.default?x:A),{shown:d.value,"onUpdate:shown":t[1]||(t[1]=u=>d.value=u),class:"user-bubble__wrapper",trigger:"hover focus"},{trigger:o(({attrs:u})=>[(l(),b(f(N.value),S({class:["user-bubble__content",{"user-bubble__content--primary":a.primary}],style:I.value,to:a.to,href:w.value},u,{onClick:t[0]||(t[0]=$=>g("click",$))}),{default:o(()=>[H(U,{url:m.value&&p.value?a.avatarImage:void 0,"icon-class":m.value&&!p.value?a.avatarImage:void 0,user:a.user,"display-name":a.displayName,size:a.size-a.margin*2,style:C(h.value),"disable-tooltip":!0,"disable-menu":!0,"hide-status":!a.showUserStatus,class:"user-bubble__avatar"},null,8,["url","icon-class","user","display-name","size","style","hide-status"]),j("span",D,K(a.displayName||a.user),1),a.$slots.name?(l(),_("span",E,[i(a.$slots,"name",{},void 0,!0)])):q("",!0)]),_:2},1040,["class","style","to","href"]))]),default:o(()=>[i(a.$slots,"default",{},void 0,!0)]),_:3},40,["shown"]))}}),Q=y(F,[["__scopeId","data-v-ad356e41"]]);export{Q as N}; -//# sourceMappingURL=NcUserBubble-DPAmU2_J-BCvWAzcB.chunk.mjs.map diff --git a/dist/NcUserBubble-DPAmU2_J-D9jxXA1V.chunk.mjs b/dist/NcUserBubble-DPAmU2_J-D9jxXA1V.chunk.mjs new file mode 100644 index 0000000000000..fd9ad679e6ddc --- /dev/null +++ b/dist/NcUserBubble-DPAmU2_J-D9jxXA1V.chunk.mjs @@ -0,0 +1,2 @@ +import{R as $}from"./AccountOutline-BlW-6JqD.chunk.mjs";import{N as U}from"./NcAvatar-DmUGApWA-xbPVEdSn.chunk.mjs";import{z as x}from"./NcModal-MC_HktJd-DqeuH-fk.chunk.mjs";import{_ as y}from"./createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs";import{b as k,p as c,q as R,x as s,ah as B,s as L,c as b,o as l,w as o,m as i,L as f,z as S,e as j,k as q,j as _,l as C,I as H,t as M}from"./runtime-dom.esm-bundler-DdtEg5E9.chunk.mjs";const W={};function A(r,n){return l(),_("div",null,[i(r.$slots,"trigger")])}const D=y(W,[["render",A]]),E={class:"user-bubble__name"},F={key:0,class:"user-bubble__secondary"},G=k({__name:"NcUserBubble",props:c({avatarImage:{default:void 0},user:{default:void 0},displayName:{default:void 0},showUserStatus:{type:Boolean},url:{default:void 0},to:{default:void 0},primary:{type:Boolean},size:{default:20},margin:{default:2}},{open:{type:Boolean},openModifiers:{}}),emits:c(["click"],["update:open"]),setup(r,{emit:n}){const d=R(r,"open"),e=r,g=n,p=s(()=>{if(!e.avatarImage)return!1;try{return!!new URL(e.avatarImage)}catch{return!1}}),m=s(()=>!!e.avatarImage),h=s(()=>({marginInlineStart:`${e.margin}px`})),v=s(()=>{if(!e.url||e.url.trim()==="")return!1;try{return!!new URL(e.url,e.url?.startsWith?.("/")?window.location.href:void 0)}catch{return B("[NcUserBubble] Invalid URL passed",{url:e.url}),!1}}),w=s(()=>v.value?e.url:void 0),I=s(()=>v.value?"a":e.to?$:"div"),z=s(()=>({height:`${e.size}px`,lineHeight:`${e.size}px`,borderRadius:`${e.size/2}px`}));return L([()=>e.displayName,()=>e.user],()=>{!e.displayName&&e.user}),(a,t)=>(l(),b(f(a.$slots.default?x:D),{shown:d.value,"onUpdate:shown":t[1]||(t[1]=u=>d.value=u),class:"user-bubble__wrapper",trigger:"hover focus"},{trigger:o(({attrs:u})=>[(l(),b(f(I.value),S({class:["user-bubble__content",{"user-bubble__content--primary":a.primary}],style:z.value,to:a.to,href:w.value},u,{onClick:t[0]||(t[0]=N=>g("click",N))}),{default:o(()=>[j(U,{url:m.value&&p.value?a.avatarImage:void 0,"icon-class":m.value&&!p.value?a.avatarImage:void 0,user:a.user,"display-name":a.displayName,size:a.size-a.margin*2,style:H(h.value),"disable-tooltip":!0,"disable-menu":!0,"hide-status":!a.showUserStatus,class:"user-bubble__avatar"},null,8,["url","icon-class","user","display-name","size","style","hide-status"]),q("span",E,M(a.displayName||a.user),1),a.$slots.name?(l(),_("span",F,[i(a.$slots,"name",{},void 0,!0)])):C("",!0)]),_:2},1040,["class","style","to","href"]))]),default:o(()=>[i(a.$slots,"default",{},void 0,!0)]),_:3},40,["shown"]))}}),Q=y(G,[["__scopeId","data-v-ad356e41"]]);export{Q as N}; +//# sourceMappingURL=NcUserBubble-DPAmU2_J-D9jxXA1V.chunk.mjs.map diff --git a/dist/NcUserBubble-DPAmU2_J-BCvWAzcB.chunk.mjs.license b/dist/NcUserBubble-DPAmU2_J-D9jxXA1V.chunk.mjs.license similarity index 100% rename from dist/NcUserBubble-DPAmU2_J-BCvWAzcB.chunk.mjs.license rename to dist/NcUserBubble-DPAmU2_J-D9jxXA1V.chunk.mjs.license diff --git a/dist/NcUserBubble-DPAmU2_J-BCvWAzcB.chunk.mjs.map b/dist/NcUserBubble-DPAmU2_J-D9jxXA1V.chunk.mjs.map similarity index 98% rename from dist/NcUserBubble-DPAmU2_J-BCvWAzcB.chunk.mjs.map rename to dist/NcUserBubble-DPAmU2_J-D9jxXA1V.chunk.mjs.map index cb76622e552a3..3a275413068de 100644 --- a/dist/NcUserBubble-DPAmU2_J-BCvWAzcB.chunk.mjs.map +++ b/dist/NcUserBubble-DPAmU2_J-D9jxXA1V.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"NcUserBubble-DPAmU2_J-BCvWAzcB.chunk.mjs","sources":["../node_modules/@nextcloud/vue/dist/chunks/NcUserBubble-DPAmU2_J.mjs"],"sourcesContent":["import '../assets/NcUserBubble-B3Jad98g.css';\nimport { createElementBlock, openBlock, renderSlot, defineComponent, mergeModels, useModel, computed, warn, watch, createBlock, resolveDynamicComponent, withCtx, mergeProps, createVNode, createElementVNode, createCommentVNode, normalizeStyle, toDisplayString } from \"vue\";\nimport { RouterLink } from \"vue-router\";\nimport { N as NcAvatar } from \"./NcAvatar-DmUGApWA.mjs\";\nimport { N as NcPopover } from \"./NcPopover-C-MTaPCs.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main$1 = {};\nfunction _sfc_render(_ctx, _cache) {\n return openBlock(), createElementBlock(\"div\", null, [\n renderSlot(_ctx.$slots, \"trigger\")\n ]);\n}\nconst NcUserBubbleDiv = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render]]);\nconst _hoisted_1 = { class: \"user-bubble__name\" };\nconst _hoisted_2 = {\n key: 0,\n class: \"user-bubble__secondary\"\n};\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcUserBubble\",\n props: /* @__PURE__ */ mergeModels({\n avatarImage: { default: void 0 },\n user: { default: void 0 },\n displayName: { default: void 0 },\n showUserStatus: { type: Boolean },\n url: { default: void 0 },\n to: { default: void 0 },\n primary: { type: Boolean },\n size: { default: 20 },\n margin: { default: 2 }\n }, {\n \"open\": { type: Boolean },\n \"openModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"click\"], [\"update:open\"]),\n setup(__props, { emit: __emit }) {\n const isOpen = useModel(__props, \"open\");\n const props = __props;\n const emit = __emit;\n const isAvatarUrl = computed(() => {\n if (!props.avatarImage) {\n return false;\n }\n try {\n const url = new URL(props.avatarImage);\n return !!url;\n } catch {\n return false;\n }\n });\n const isCustomAvatar = computed(() => !!props.avatarImage);\n const avatarStyle = computed(() => ({\n marginInlineStart: `${props.margin}px`\n }));\n const hasUrl = computed(() => {\n if (!props.url || props.url.trim() === \"\") {\n return false;\n }\n try {\n const url = new URL(props.url, props.url?.startsWith?.(\"/\") ? window.location.href : void 0);\n return !!url;\n } catch {\n warn(\"[NcUserBubble] Invalid URL passed\", { url: props.url });\n return false;\n }\n });\n const href = computed(() => hasUrl.value ? props.url : void 0);\n const contentComponent = computed(() => {\n if (hasUrl.value) {\n return \"a\";\n } else if (props.to) {\n return RouterLink;\n } else {\n return \"div\";\n }\n });\n const contentStyle = computed(() => ({\n height: `${props.size}px`,\n lineHeight: `${props.size}px`,\n borderRadius: `${props.size / 2}px`\n }));\n watch([() => props.displayName, () => props.user], () => {\n if (!props.displayName && !props.user) {\n warn(\"[NcUserBubble] At least `displayName` or `user` property should be set.\");\n }\n });\n return (_ctx, _cache) => {\n return openBlock(), createBlock(resolveDynamicComponent(!!_ctx.$slots.default ? NcPopover : NcUserBubbleDiv), {\n shown: isOpen.value,\n \"onUpdate:shown\": _cache[1] || (_cache[1] = ($event) => isOpen.value = $event),\n class: \"user-bubble__wrapper\",\n trigger: \"hover focus\"\n }, {\n trigger: withCtx(({ attrs }) => [\n (openBlock(), createBlock(resolveDynamicComponent(contentComponent.value), mergeProps({\n class: [\"user-bubble__content\", { \"user-bubble__content--primary\": _ctx.primary }],\n style: contentStyle.value,\n to: _ctx.to,\n href: href.value\n }, attrs, {\n onClick: _cache[0] || (_cache[0] = ($event) => emit(\"click\", $event))\n }), {\n default: withCtx(() => [\n createVNode(NcAvatar, {\n url: isCustomAvatar.value && isAvatarUrl.value ? _ctx.avatarImage : void 0,\n \"icon-class\": isCustomAvatar.value && !isAvatarUrl.value ? _ctx.avatarImage : void 0,\n user: _ctx.user,\n \"display-name\": _ctx.displayName,\n size: _ctx.size - _ctx.margin * 2,\n style: normalizeStyle(avatarStyle.value),\n \"disable-tooltip\": true,\n \"disable-menu\": true,\n \"hide-status\": !_ctx.showUserStatus,\n class: \"user-bubble__avatar\"\n }, null, 8, [\"url\", \"icon-class\", \"user\", \"display-name\", \"size\", \"style\", \"hide-status\"]),\n createElementVNode(\"span\", _hoisted_1, toDisplayString(_ctx.displayName || _ctx.user), 1),\n !!_ctx.$slots.name ? (openBlock(), createElementBlock(\"span\", _hoisted_2, [\n renderSlot(_ctx.$slots, \"name\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true)\n ]),\n _: 2\n }, 1040, [\"class\", \"style\", \"to\", \"href\"]))\n ]),\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ]),\n _: 3\n }, 40, [\"shown\"]);\n };\n }\n});\nconst NcUserBubble = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-ad356e41\"]]);\nexport {\n NcUserBubble as N\n};\n//# sourceMappingURL=NcUserBubble-DPAmU2_J.mjs.map\n"],"names":["_sfc_main$1","_sfc_render","_ctx","_cache","openBlock","createElementBlock","renderSlot","NcUserBubbleDiv","_export_sfc","_hoisted_1","_hoisted_2","_sfc_main","defineComponent","mergeModels","__props","__emit","isOpen","useModel","props","emit","isAvatarUrl","computed","isCustomAvatar","avatarStyle","hasUrl","warn","href","contentComponent","RouterLink","contentStyle","watch","createBlock","resolveDynamicComponent","NcPopover","$event","withCtx","attrs","mergeProps","createVNode","NcAvatar","normalizeStyle","createElementVNode","toDisplayString","createCommentVNode","NcUserBubble"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file +{"version":3,"file":"NcUserBubble-DPAmU2_J-D9jxXA1V.chunk.mjs","sources":["../node_modules/@nextcloud/vue/dist/chunks/NcUserBubble-DPAmU2_J.mjs"],"sourcesContent":["import '../assets/NcUserBubble-B3Jad98g.css';\nimport { createElementBlock, openBlock, renderSlot, defineComponent, mergeModels, useModel, computed, warn, watch, createBlock, resolveDynamicComponent, withCtx, mergeProps, createVNode, createElementVNode, createCommentVNode, normalizeStyle, toDisplayString } from \"vue\";\nimport { RouterLink } from \"vue-router\";\nimport { N as NcAvatar } from \"./NcAvatar-DmUGApWA.mjs\";\nimport { N as NcPopover } from \"./NcPopover-C-MTaPCs.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main$1 = {};\nfunction _sfc_render(_ctx, _cache) {\n return openBlock(), createElementBlock(\"div\", null, [\n renderSlot(_ctx.$slots, \"trigger\")\n ]);\n}\nconst NcUserBubbleDiv = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render]]);\nconst _hoisted_1 = { class: \"user-bubble__name\" };\nconst _hoisted_2 = {\n key: 0,\n class: \"user-bubble__secondary\"\n};\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcUserBubble\",\n props: /* @__PURE__ */ mergeModels({\n avatarImage: { default: void 0 },\n user: { default: void 0 },\n displayName: { default: void 0 },\n showUserStatus: { type: Boolean },\n url: { default: void 0 },\n to: { default: void 0 },\n primary: { type: Boolean },\n size: { default: 20 },\n margin: { default: 2 }\n }, {\n \"open\": { type: Boolean },\n \"openModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"click\"], [\"update:open\"]),\n setup(__props, { emit: __emit }) {\n const isOpen = useModel(__props, \"open\");\n const props = __props;\n const emit = __emit;\n const isAvatarUrl = computed(() => {\n if (!props.avatarImage) {\n return false;\n }\n try {\n const url = new URL(props.avatarImage);\n return !!url;\n } catch {\n return false;\n }\n });\n const isCustomAvatar = computed(() => !!props.avatarImage);\n const avatarStyle = computed(() => ({\n marginInlineStart: `${props.margin}px`\n }));\n const hasUrl = computed(() => {\n if (!props.url || props.url.trim() === \"\") {\n return false;\n }\n try {\n const url = new URL(props.url, props.url?.startsWith?.(\"/\") ? window.location.href : void 0);\n return !!url;\n } catch {\n warn(\"[NcUserBubble] Invalid URL passed\", { url: props.url });\n return false;\n }\n });\n const href = computed(() => hasUrl.value ? props.url : void 0);\n const contentComponent = computed(() => {\n if (hasUrl.value) {\n return \"a\";\n } else if (props.to) {\n return RouterLink;\n } else {\n return \"div\";\n }\n });\n const contentStyle = computed(() => ({\n height: `${props.size}px`,\n lineHeight: `${props.size}px`,\n borderRadius: `${props.size / 2}px`\n }));\n watch([() => props.displayName, () => props.user], () => {\n if (!props.displayName && !props.user) {\n warn(\"[NcUserBubble] At least `displayName` or `user` property should be set.\");\n }\n });\n return (_ctx, _cache) => {\n return openBlock(), createBlock(resolveDynamicComponent(!!_ctx.$slots.default ? NcPopover : NcUserBubbleDiv), {\n shown: isOpen.value,\n \"onUpdate:shown\": _cache[1] || (_cache[1] = ($event) => isOpen.value = $event),\n class: \"user-bubble__wrapper\",\n trigger: \"hover focus\"\n }, {\n trigger: withCtx(({ attrs }) => [\n (openBlock(), createBlock(resolveDynamicComponent(contentComponent.value), mergeProps({\n class: [\"user-bubble__content\", { \"user-bubble__content--primary\": _ctx.primary }],\n style: contentStyle.value,\n to: _ctx.to,\n href: href.value\n }, attrs, {\n onClick: _cache[0] || (_cache[0] = ($event) => emit(\"click\", $event))\n }), {\n default: withCtx(() => [\n createVNode(NcAvatar, {\n url: isCustomAvatar.value && isAvatarUrl.value ? _ctx.avatarImage : void 0,\n \"icon-class\": isCustomAvatar.value && !isAvatarUrl.value ? _ctx.avatarImage : void 0,\n user: _ctx.user,\n \"display-name\": _ctx.displayName,\n size: _ctx.size - _ctx.margin * 2,\n style: normalizeStyle(avatarStyle.value),\n \"disable-tooltip\": true,\n \"disable-menu\": true,\n \"hide-status\": !_ctx.showUserStatus,\n class: \"user-bubble__avatar\"\n }, null, 8, [\"url\", \"icon-class\", \"user\", \"display-name\", \"size\", \"style\", \"hide-status\"]),\n createElementVNode(\"span\", _hoisted_1, toDisplayString(_ctx.displayName || _ctx.user), 1),\n !!_ctx.$slots.name ? (openBlock(), createElementBlock(\"span\", _hoisted_2, [\n renderSlot(_ctx.$slots, \"name\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true)\n ]),\n _: 2\n }, 1040, [\"class\", \"style\", \"to\", \"href\"]))\n ]),\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ]),\n _: 3\n }, 40, [\"shown\"]);\n };\n }\n});\nconst NcUserBubble = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-ad356e41\"]]);\nexport {\n NcUserBubble as N\n};\n//# sourceMappingURL=NcUserBubble-DPAmU2_J.mjs.map\n"],"names":["_sfc_main$1","_sfc_render","_ctx","_cache","openBlock","createElementBlock","renderSlot","NcUserBubbleDiv","_export_sfc","_hoisted_1","_hoisted_2","_sfc_main","defineComponent","mergeModels","__props","__emit","isOpen","useModel","props","emit","isAvatarUrl","computed","isCustomAvatar","avatarStyle","hasUrl","warn","href","contentComponent","RouterLink","contentStyle","watch","createBlock","resolveDynamicComponent","NcPopover","$event","withCtx","attrs","mergeProps","createVNode","NcAvatar","normalizeStyle","createElementVNode","toDisplayString","createCommentVNode","NcUserBubble"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/dist/NcUserBubble-DPAmU2_J-BCvWAzcB.chunk.mjs.map.license b/dist/NcUserBubble-DPAmU2_J-D9jxXA1V.chunk.mjs.map.license similarity index 100% rename from dist/NcUserBubble-DPAmU2_J-BCvWAzcB.chunk.mjs.map.license rename to dist/NcUserBubble-DPAmU2_J-D9jxXA1V.chunk.mjs.map.license diff --git a/dist/PencilOutline-DCq8EKwg.chunk.mjs b/dist/PencilOutline-BSRAQiy1.chunk.mjs similarity index 91% rename from dist/PencilOutline-DCq8EKwg.chunk.mjs rename to dist/PencilOutline-BSRAQiy1.chunk.mjs index 9649c698be32a..508d14a16180e 100644 --- a/dist/PencilOutline-DCq8EKwg.chunk.mjs +++ b/dist/PencilOutline-BSRAQiy1.chunk.mjs @@ -1,4 +1,4 @@ -import{c as T}from"./index-BfylblLb.chunk.mjs";import{g as q,a as f}from"./index-xFugdZPW.chunk.mjs";import{r as p,m as w,_ as m,t as s,a as x}from"./createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs";import{l as y}from"./NcNoteCard-CVhtNL04-hwuc093N.chunk.mjs";import{b,p as L,q as S,x as c,s as B,j as r,l as h,o as l,n as C,k as D,t as I,z as P}from"./runtime-dom.esm-bundler-BrYCUcZF.chunk.mjs";const M=`<!-- +import{c as T}from"./index-DVH_Kr3Q.chunk.mjs";import{g as q,a as f}from"./index-DCpg1aui.chunk.mjs";import{r as p,m as w,_ as m,b as s,a as x}from"./createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs";import{l as y}from"./AccountOutline-BlW-6JqD.chunk.mjs";import{b,p as L,q as S,x as c,s as B,j as r,l as h,o as l,n as C,k as D,t as I,z as P}from"./runtime-dom.esm-bundler-DdtEg5E9.chunk.mjs";const M=`<!-- - SPDX-FileCopyrightText: 2020 Google Inc. - SPDX-License-Identifier: Apache-2.0 --> @@ -44,4 +44,4 @@ import{c as T}from"./index-BfylblLb.chunk.mjs";import{g as q,a as f}from"./index d="m424-296 282-282-56-56-226 226-114-114-56 56 170 170Zm56 216q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z"/> </svg> `;p(),p(w);function H(a){switch(a){case"away":return s("away");case"busy":return s("busy");case"dnd":return s("do not disturb");case"online":return s("online");case"invisible":return s("invisible");case"offline":return s("offline");default:return a}}const k=["aria-hidden","aria-label","innerHTML"],A=b({__name:"NcUserStatusIcon",props:L({user:{default:void 0},ariaHidden:{type:[Boolean,String],default:!1}},{status:{},statusModifiers:{}}),emits:["update:status"],setup(a){const e=S(a,"status"),t=a,d=c(()=>e.value&&["invisible","offline"].includes(e.value)),o=c(()=>e.value&&(!t.ariaHidden||t.ariaHidden==="false")?s("User status: {status}",{status:H(e.value)}):void 0);B(()=>t.user,async u=>{if(!e.value&&u&&q()?.user_status?.enabled)try{const{data:i}=await T.get(x("/apps/user_status/api/v1/statuses/{user}",{user:u}));e.value=i.ocs?.data?.status}catch(i){y.debug("Error while fetching user status",{error:i})}},{immediate:!0});const v={online:_,away:M,busy:Z,dnd:X,invisible:g,offline:g},n=c(()=>e.value&&v[e.value]);return(u,i)=>e.value?(l(),r("span",{key:0,class:C(["user-status-icon",{"user-status-icon--invisible":d.value}]),"aria-hidden":!o.value||void 0,"aria-label":o.value,role:"img",innerHTML:n.value},null,10,k)):h("",!0)}}),K=m(A,[["__scopeId","data-v-881a79fb"]]),F={name:"PencilOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},G=["aria-hidden","aria-label"],z=["fill","width","height"],N={d:"M14.06,9L15,9.94L5.92,19H5V18.08L14.06,9M17.66,3C17.41,3 17.15,3.1 16.96,3.29L15.13,5.12L18.88,8.87L20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18.17,3.09 17.92,3 17.66,3M14.06,6.19L3,17.25V21H6.75L17.81,9.94L14.06,6.19Z"},U={key:0};function V(a,e,t,d,o,v){return l(),r("span",P(a.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon pencil-outline-icon",role:"img",onClick:e[0]||(e[0]=n=>a.$emit("click",n))}),[(l(),r("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[D("path",N,[t.title?(l(),r("title",U,I(t.title),1)):h("",!0)])],8,z))],16,G)}const Q=f(F,[["render",V]]);export{K as N,Q as P,H as g}; -//# sourceMappingURL=PencilOutline-DCq8EKwg.chunk.mjs.map +//# sourceMappingURL=PencilOutline-BSRAQiy1.chunk.mjs.map diff --git a/dist/PencilOutline-DCq8EKwg.chunk.mjs.license b/dist/PencilOutline-BSRAQiy1.chunk.mjs.license similarity index 100% rename from dist/PencilOutline-DCq8EKwg.chunk.mjs.license rename to dist/PencilOutline-BSRAQiy1.chunk.mjs.license diff --git a/dist/PencilOutline-DCq8EKwg.chunk.mjs.map b/dist/PencilOutline-BSRAQiy1.chunk.mjs.map similarity index 98% rename from dist/PencilOutline-DCq8EKwg.chunk.mjs.map rename to dist/PencilOutline-BSRAQiy1.chunk.mjs.map index ce9170394d61a..9a68be68e7831 100644 --- a/dist/PencilOutline-DCq8EKwg.chunk.mjs.map +++ b/dist/PencilOutline-BSRAQiy1.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"PencilOutline-DCq8EKwg.chunk.mjs","sources":["../node_modules/@nextcloud/vue/dist/chunks/NcUserStatusIcon-CGEf7fej.mjs","../node_modules/vue-material-design-icons/PencilOutline.vue"],"sourcesContent":["import '../assets/NcUserStatusIcon-B3aHoBAd.css';\nimport { defineComponent, mergeModels, useModel, computed, watch, createElementBlock, createCommentVNode, openBlock, normalizeClass } from \"vue\";\nimport axios from \"@nextcloud/axios\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport { generateOcsUrl } from \"@nextcloud/router\";\nimport { r as register, y as t11, a as t } from \"./_l10n-DrTiip5c.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst awaySvg = '<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\"0 -960 960 960\" width=\"24px\" height=\"24px\" xmlns=\"http://www.w3.org/2000/svg\">\\n\t<path\\n\t\tfill=\"var(--user-status-color-away, var(--color-warning, #C88800))\"\\n\t\td=\"m612-292 56-56-148-148v-184h-80v216l172 172ZM480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z\"/>\\n</svg>\\n';\nconst busySvg = '<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\"0 -960 960 960\" width=\"24px\" height=\"24px\" xmlns=\"http://www.w3.org/2000/svg\">\\n\t<path\\n\t\tfill=\"var(--user-status-color-busy, var(--color-error, #DB0606))\"\\n\t\td=\"M480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z\"/>\\n</svg>\\n';\nconst dndSvg = '<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\"0 -960 960 960\" width=\"24px\" height=\"24px\" xmlns=\"http://www.w3.org/2000/svg\">\\n\t<path\\n\t\tfill=\"var(--user-status-color-busy, var(--color-error, #DB0606))\"\\n\t\td=\"M280-440h400v-80H280v80ZM480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z\"/>\\n</svg>\\n';\nconst invisibleSvg = '<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\"0 -960 960 960\" width=\"24px\" height=\"24px\" xmlns=\"http://www.w3.org/2000/svg\">\\n\t<path\\n\t\tfill=\"var(--user-status-color-offline, var(--color-text-maxcontrast, #6B6B6B))\"\\n\t\td=\"M480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z\"/>\\n</svg>\\n';\nconst onlineSvg = '<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\"0 -960 960 960\" width=\"24px\" height=\"24px\" xmlns=\"http://www.w3.org/2000/svg\">\\n\t<path\\n\t\tfill=\"var(--user-status-color-online, var(--color-success, #2D7B41))\"\\n\t\td=\"m424-296 282-282-56-56-226 226-114-114-56 56 170 170Zm56 216q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z\"/>\\n</svg>\\n';\nregister();\nregister(t11);\nfunction getUserStatusText(status) {\n switch (status) {\n case \"away\":\n return t(\"away\");\n // TRANSLATORS: User status if the user is currently away from keyboard\n case \"busy\":\n return t(\"busy\");\n case \"dnd\":\n return t(\"do not disturb\");\n case \"online\":\n return t(\"online\");\n case \"invisible\":\n return t(\"invisible\");\n case \"offline\":\n return t(\"offline\");\n default:\n return status;\n }\n}\nconst _hoisted_1 = [\"aria-hidden\", \"aria-label\", \"innerHTML\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcUserStatusIcon\",\n props: /* @__PURE__ */ mergeModels({\n user: { default: void 0 },\n ariaHidden: { type: [Boolean, String], default: false }\n }, {\n \"status\": {},\n \"statusModifiers\": {}\n }),\n emits: [\"update:status\"],\n setup(__props) {\n const status = useModel(__props, \"status\");\n const props = __props;\n const isInvisible = computed(() => status.value && [\"invisible\", \"offline\"].includes(status.value));\n const ariaLabel = computed(() => status.value && (!props.ariaHidden || props.ariaHidden === \"false\") ? t(\"User status: {status}\", { status: getUserStatusText(status.value) }) : void 0);\n watch(() => props.user, async (user) => {\n if (!status.value && user && getCapabilities()?.user_status?.enabled) {\n try {\n const { data } = await axios.get(generateOcsUrl(\"/apps/user_status/api/v1/statuses/{user}\", { user }));\n status.value = data.ocs?.data?.status;\n } catch (error) {\n logger.debug(\"Error while fetching user status\", { error });\n }\n }\n }, { immediate: true });\n const matchSvg = {\n online: onlineSvg,\n away: awaySvg,\n busy: busySvg,\n dnd: dndSvg,\n invisible: invisibleSvg,\n offline: invisibleSvg\n };\n const activeSvg = computed(() => status.value && matchSvg[status.value]);\n return (_ctx, _cache) => {\n return status.value ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n class: normalizeClass([\"user-status-icon\", {\n \"user-status-icon--invisible\": isInvisible.value\n }]),\n \"aria-hidden\": !ariaLabel.value || void 0,\n \"aria-label\": ariaLabel.value,\n role: \"img\",\n innerHTML: activeSvg.value\n }, null, 10, _hoisted_1)) : createCommentVNode(\"\", true);\n };\n }\n});\nconst NcUserStatusIcon = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-881a79fb\"]]);\nexport {\n NcUserStatusIcon as N,\n getUserStatusText as g\n};\n//# sourceMappingURL=NcUserStatusIcon-CGEf7fej.mjs.map\n","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon pencil-outline-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M14.06,9L15,9.94L5.92,19H5V18.08L14.06,9M17.66,3C17.41,3 17.15,3.1 16.96,3.29L15.13,5.12L18.88,8.87L20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18.17,3.09 17.92,3 17.66,3M14.06,6.19L3,17.25V21H6.75L17.81,9.94L14.06,6.19Z\">\n <title v-if=\"title\">{{ title }}\n \n \n \n\n\n"],"names":["awaySvg","busySvg","dndSvg","invisibleSvg","onlineSvg","register","t11","getUserStatusText","status","t","_hoisted_1","_sfc_main","defineComponent","mergeModels","__props","useModel","props","isInvisible","computed","ariaLabel","watch","user","getCapabilities","data","axios","generateOcsUrl","error","logger","matchSvg","activeSvg","_ctx","_cache","openBlock","createElementBlock","normalizeClass","createCommentVNode","NcUserStatusIcon","_export_sfc","_hoisted_3","_createElementBlock","_mergeProps","$props","$event","_createElementVNode","_openBlock"],"mappings":"yYAQA,MAAMA,EAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EACVC,EAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EACVC,EAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EACTC,EAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EACfC,EAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAClBC,EAAQ,EACRA,EAASC,CAAG,EACZ,SAASC,EAAkBC,EAAQ,CACjC,OAAQA,EAAM,CACZ,IAAK,OACH,OAAOC,EAAE,MAAM,EAEjB,IAAK,OACH,OAAOA,EAAE,MAAM,EACjB,IAAK,MACH,OAAOA,EAAE,gBAAgB,EAC3B,IAAK,SACH,OAAOA,EAAE,QAAQ,EACnB,IAAK,YACH,OAAOA,EAAE,WAAW,EACtB,IAAK,UACH,OAAOA,EAAE,SAAS,EACpB,QACE,OAAOD,CACb,CACA,CACA,MAAME,EAAa,CAAC,cAAe,aAAc,WAAW,EACtDC,EAA4BC,EAAgB,CAChD,OAAQ,mBACR,MAAuBC,EAAY,CACjC,KAAM,CAAE,QAAS,MAAM,EACvB,WAAY,CAAE,KAAM,CAAC,QAAS,MAAM,EAAG,QAAS,EAAK,CACzD,EAAK,CACD,OAAU,CAAA,EACV,gBAAmB,CAAA,CACvB,CAAG,EACD,MAAO,CAAC,eAAe,EACvB,MAAMC,EAAS,CACb,MAAMN,EAASO,EAASD,EAAS,QAAQ,EACnCE,EAAQF,EACRG,EAAcC,EAAS,IAAMV,EAAO,OAAS,CAAC,YAAa,SAAS,EAAE,SAASA,EAAO,KAAK,CAAC,EAC5FW,EAAYD,EAAS,IAAMV,EAAO,QAAU,CAACQ,EAAM,YAAcA,EAAM,aAAe,SAAWP,EAAE,wBAAyB,CAAE,OAAQF,EAAkBC,EAAO,KAAK,EAAG,EAAI,MAAM,EACvLY,EAAM,IAAMJ,EAAM,KAAM,MAAOK,GAAS,CACtC,GAAI,CAACb,EAAO,OAASa,GAAQC,EAAe,GAAI,aAAa,QAC3D,GAAI,CACF,KAAM,CAAE,KAAAC,GAAS,MAAMC,EAAM,IAAIC,EAAe,2CAA4C,CAAE,KAAAJ,CAAI,CAAE,CAAC,EACrGb,EAAO,MAAQe,EAAK,KAAK,MAAM,MACjC,OAASG,EAAO,CACdC,EAAO,MAAM,mCAAoC,CAAE,MAAAD,CAAK,CAAE,CAC5D,CAEJ,EAAG,CAAE,UAAW,GAAM,EACtB,MAAME,EAAW,CACf,OAAQxB,EACR,KAAMJ,EACN,KAAMC,EACN,IAAKC,EACL,UAAWC,EACX,QAASA,CACf,EACU0B,EAAYX,EAAS,IAAMV,EAAO,OAASoB,EAASpB,EAAO,KAAK,CAAC,EACvE,MAAO,CAACsB,EAAMC,IACLvB,EAAO,OAASwB,EAAS,EAAIC,EAAmB,OAAQ,CAC7D,IAAK,EACL,MAAOC,EAAe,CAAC,mBAAoB,CACzC,8BAA+BjB,EAAY,KACrD,CAAS,CAAC,EACF,cAAe,CAACE,EAAU,OAAS,OACnC,aAAcA,EAAU,MACxB,KAAM,MACN,UAAWU,EAAU,KAC7B,EAAS,KAAM,GAAInB,CAAU,GAAKyB,EAAmB,GAAI,EAAI,CAE3D,CACF,CAAC,EACKC,EAAmCC,EAAY1B,EAAW,CAAC,CAAC,YAAa,iBAAiB,CAAC,CAAC,EC/D7FA,EAAU,CACb,KAAM,oBACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,QAER,UAAW,CACT,KAAM,OACN,QAAS,gBAEX,KAAM,CACJ,KAAM,OACN,QAAS,EACX,CACF,CACF,6DAxBY2B,EAAA,CAAA,EAAE,oOAAoO,+CAXhPC,EAeO,OAfPC,EAAcV,EAAA,OAAM,CACb,cAAaW,EAAA,MAAK,KAAA,OAClB,aAAYA,EAAA,MACb,MAAM,2CACN,KAAK,MACJ,QAAKV,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAW,GAAEZ,EAAA,MAAK,QAAUY,CAAM,WACjCH,EAQM,MAAA,CARA,KAAME,EAAA,UACP,MAAM,4BACL,MAAOA,EAAA,KACP,OAAQA,EAAA,KACT,QAAQ,cACXE,EAEO,OAFPL,EAEO,CADQG,EAAA,OAAbG,EAAA,EAAAL,EAAuC,YAAhBE,EAAA,KAAK,EAAA,CAAA","x_google_ignoreList":[0,1]} \ No newline at end of file +{"version":3,"file":"PencilOutline-BSRAQiy1.chunk.mjs","sources":["../node_modules/@nextcloud/vue/dist/chunks/NcUserStatusIcon-CGEf7fej.mjs","../node_modules/vue-material-design-icons/PencilOutline.vue"],"sourcesContent":["import '../assets/NcUserStatusIcon-B3aHoBAd.css';\nimport { defineComponent, mergeModels, useModel, computed, watch, createElementBlock, createCommentVNode, openBlock, normalizeClass } from \"vue\";\nimport axios from \"@nextcloud/axios\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport { generateOcsUrl } from \"@nextcloud/router\";\nimport { r as register, y as t11, a as t } from \"./_l10n-DrTiip5c.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst awaySvg = '\\n\\n\t\\n\\n';\nconst busySvg = '\\n\\n\t\\n\\n';\nconst dndSvg = '\\n\\n\t\\n\\n';\nconst invisibleSvg = '\\n\\n\t\\n\\n';\nconst onlineSvg = '\\n\\n\t\\n\\n';\nregister();\nregister(t11);\nfunction getUserStatusText(status) {\n switch (status) {\n case \"away\":\n return t(\"away\");\n // TRANSLATORS: User status if the user is currently away from keyboard\n case \"busy\":\n return t(\"busy\");\n case \"dnd\":\n return t(\"do not disturb\");\n case \"online\":\n return t(\"online\");\n case \"invisible\":\n return t(\"invisible\");\n case \"offline\":\n return t(\"offline\");\n default:\n return status;\n }\n}\nconst _hoisted_1 = [\"aria-hidden\", \"aria-label\", \"innerHTML\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcUserStatusIcon\",\n props: /* @__PURE__ */ mergeModels({\n user: { default: void 0 },\n ariaHidden: { type: [Boolean, String], default: false }\n }, {\n \"status\": {},\n \"statusModifiers\": {}\n }),\n emits: [\"update:status\"],\n setup(__props) {\n const status = useModel(__props, \"status\");\n const props = __props;\n const isInvisible = computed(() => status.value && [\"invisible\", \"offline\"].includes(status.value));\n const ariaLabel = computed(() => status.value && (!props.ariaHidden || props.ariaHidden === \"false\") ? t(\"User status: {status}\", { status: getUserStatusText(status.value) }) : void 0);\n watch(() => props.user, async (user) => {\n if (!status.value && user && getCapabilities()?.user_status?.enabled) {\n try {\n const { data } = await axios.get(generateOcsUrl(\"/apps/user_status/api/v1/statuses/{user}\", { user }));\n status.value = data.ocs?.data?.status;\n } catch (error) {\n logger.debug(\"Error while fetching user status\", { error });\n }\n }\n }, { immediate: true });\n const matchSvg = {\n online: onlineSvg,\n away: awaySvg,\n busy: busySvg,\n dnd: dndSvg,\n invisible: invisibleSvg,\n offline: invisibleSvg\n };\n const activeSvg = computed(() => status.value && matchSvg[status.value]);\n return (_ctx, _cache) => {\n return status.value ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n class: normalizeClass([\"user-status-icon\", {\n \"user-status-icon--invisible\": isInvisible.value\n }]),\n \"aria-hidden\": !ariaLabel.value || void 0,\n \"aria-label\": ariaLabel.value,\n role: \"img\",\n innerHTML: activeSvg.value\n }, null, 10, _hoisted_1)) : createCommentVNode(\"\", true);\n };\n }\n});\nconst NcUserStatusIcon = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-881a79fb\"]]);\nexport {\n NcUserStatusIcon as N,\n getUserStatusText as g\n};\n//# sourceMappingURL=NcUserStatusIcon-CGEf7fej.mjs.map\n","\n\n"],"names":["awaySvg","busySvg","dndSvg","invisibleSvg","onlineSvg","register","t11","getUserStatusText","status","t","_hoisted_1","_sfc_main","defineComponent","mergeModels","__props","useModel","props","isInvisible","computed","ariaLabel","watch","user","getCapabilities","data","axios","generateOcsUrl","error","logger","matchSvg","activeSvg","_ctx","_cache","openBlock","createElementBlock","normalizeClass","createCommentVNode","NcUserStatusIcon","_export_sfc","_hoisted_3","_createElementBlock","_mergeProps","$props","$event","_createElementVNode","_openBlock"],"mappings":"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","x_google_ignoreList":[0,1]} \ No newline at end of file diff --git a/dist/PencilOutline-DCq8EKwg.chunk.mjs.map.license b/dist/PencilOutline-BSRAQiy1.chunk.mjs.map.license similarity index 100% rename from dist/PencilOutline-DCq8EKwg.chunk.mjs.map.license rename to dist/PencilOutline-BSRAQiy1.chunk.mjs.map.license diff --git a/dist/ProfilePickerReferenceWidget-DwtK27QO.chunk.mjs b/dist/ProfilePickerReferenceWidget-DwtK27QO.chunk.mjs new file mode 100644 index 0000000000000..17820196fef91 --- /dev/null +++ b/dist/ProfilePickerReferenceWidget-DwtK27QO.chunk.mjs @@ -0,0 +1,2 @@ +import{N as M}from"./NcAvatar-DmUGApWA-xbPVEdSn.chunk.mjs";import{A as _}from"./AccountOutline-BlW-6JqD.chunk.mjs";import{a as d}from"./index-DCpg1aui.chunk.mjs";import{j as i,o as t,k as a,l as n,t as c,z as b,f as s,e as h,F as j,g as f}from"./runtime-dom.esm-bundler-DdtEg5E9.chunk.mjs";import{W as y}from"./Web-aYJacExm.chunk.mjs";import{l as v}from"./logger-_TauvWEC.chunk.mjs";import"./index-Bndk0DrU.chunk.mjs";import"./index-DVH_Kr3Q.chunk.mjs";import"./public-uQ6dl0vH.chunk.mjs";import"./createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs";import"./string_decoder-vT-u9WbV.chunk.mjs";import"./NcModal-MC_HktJd-DqeuH-fk.chunk.mjs";import"./colors-Go3zmZRD-DNxaZwS4.chunk.mjs";import"./PencilOutline-BSRAQiy1.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-BNncp1Y1.chunk.mjs";const z={name:"DomainIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},A=["aria-hidden","aria-label"],w=["fill","width","height"],L={d:"M18,15H16V17H18M18,11H16V13H18M20,19H12V17H14V15H12V13H14V11H12V9H20M10,7H8V5H10M10,11H8V9H10M10,15H8V13H10M10,19H8V17H10M6,7H4V5H6M6,11H4V9H6M6,15H4V13H6M6,19H4V17H6M12,7V3H2V21H22V7H12Z"},S={key:0};function x(l,r,e,u,p,m){return t(),i("span",b(l.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon domain-icon",role:"img",onClick:r[0]||(r[0]=o=>l.$emit("click",o))}),[(t(),i("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[a("path",L,[e.title?(t(),i("title",S,c(e.title),1)):n("",!0)])],8,w))],16,A)}const $=d(z,[["render",x]]),N={name:"HandshakeOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},B=["aria-hidden","aria-label"],I=["fill","width","height"],W={d:"M21.71 8.71C22.96 7.46 22.39 6 21.71 5.29L18.71 2.29C17.45 1.04 16 1.61 15.29 2.29L13.59 4H11C9.1 4 8 5 7.44 6.15L3 10.59V14.59L2.29 15.29C1.04 16.55 1.61 18 2.29 18.71L5.29 21.71C5.83 22.25 6.41 22.45 6.96 22.45C7.67 22.45 8.32 22.1 8.71 21.71L11.41 19H15C16.7 19 17.56 17.94 17.87 16.9C19 16.6 19.62 15.74 19.87 14.9C21.42 14.5 22 13.03 22 12V9H21.41L21.71 8.71M20 12C20 12.45 19.81 13 19 13L18 13L18 14C18 14.45 17.81 15 17 15L16 15L16 16C16 16.45 15.81 17 15 17H10.59L7.31 20.28C7 20.57 6.82 20.4 6.71 20.29L3.72 17.31C3.43 17 3.6 16.82 3.71 16.71L5 15.41V11.41L7 9.41V11C7 12.21 7.8 14 10 14S13 12.21 13 11H20V12M20.29 7.29L18.59 9H11V11C11 11.45 10.81 12 10 12S9 11.45 9 11V8C9 7.54 9.17 6 11 6H14.41L16.69 3.72C17 3.43 17.18 3.6 17.29 3.71L20.28 6.69C20.57 7 20.4 7.18 20.29 7.29Z"},P={key:0};function T(l,r,e,u,p,m){return t(),i("span",b(l.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon handshake-outline-icon",role:"img",onClick:r[0]||(r[0]=o=>l.$emit("click",o))}),[(t(),i("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[a("path",W,[e.title?(t(),i("title",P,c(e.title),1)):n("",!0)])],8,I))],16,B)}const Z=d(N,[["render",T]]),D={name:"MapMarkerOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},R=["aria-hidden","aria-label"],F=["fill","width","height"],q={d:"M12,6.5A2.5,2.5 0 0,1 14.5,9A2.5,2.5 0 0,1 12,11.5A2.5,2.5 0 0,1 9.5,9A2.5,2.5 0 0,1 12,6.5M12,2A7,7 0 0,1 19,9C19,14.25 12,22 12,22C12,22 5,14.25 5,9A7,7 0 0,1 12,2M12,4A5,5 0 0,0 7,9C7,10 7,12 12,18.71C17,12 17,10 17,9A5,5 0 0,0 12,4Z"},E={key:0};function G(l,r,e,u,p,m){return t(),i("span",b(l.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon map-marker-outline-icon",role:"img",onClick:r[0]||(r[0]=o=>l.$emit("click",o))}),[(t(),i("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[a("path",q,[e.title?(t(),i("title",E,c(e.title),1)):n("",!0)])],8,F))],16,R)}const J=d(D,[["render",G]]),K={name:"TextAccountIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Q=["aria-hidden","aria-label"],U=["fill","width","height"],X={d:"M21 5V7H3V5H21M3 17H12V15H3V17M3 12H21V10H3V12M18 14C19.11 14 20 14.9 20 16S19.11 18 18 18 16 17.11 16 16 16.9 14 18 14M14 22V21C14 19.9 15.79 19 18 19S22 19.9 22 21V22H14Z"},Y={key:0};function ee(l,r,e,u,p,m){return t(),i("span",b(l.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon text-account-icon",role:"img",onClick:r[0]||(r[0]=o=>l.$emit("click",o))}),[(t(),i("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[a("path",X,[e.title?(t(),i("title",Y,c(e.title),1)):n("",!0)])],8,U))],16,Q)}const ie=d(K,[["render",ee]]),te={name:"ProfilePickerReferenceWidget",components:{NcAvatar:M,AccountOutline:_,MapMarkerOutline:J,Web:y,Domain:$,HandshakeOutline:Z,TextAccount:ie},props:{richObjectType:{type:String,default:""},richObject:{type:Object,default:null},accessible:{type:Boolean,default:!0}},beforeMount(){v.debug("ProfilePickerReferenceWidget",this.richObject)}},le={class:"profile-reference"},re={class:"profile-reference__wrapper"},ae={class:"profile-reference__wrapper__header"},ce={class:"profile-card__title"},ne=["href"],oe={class:"profile-content"},se={class:"profile-content__subline"},he={key:0,class:"headline"},de={key:1,class:"location"},ue=["href"],pe={key:2,class:"website"},me=["href"],fe={key:3,class:"organisation"},be={key:4,class:"role"},ge=["title"];function He(l,r,e,u,p,m){const o=s("NcAvatar"),g=s("AccountOutline"),H=s("MapMarkerOutline"),C=s("Web"),k=s("Domain"),O=s("HandshakeOutline"),V=s("TextAccount");return t(),i("div",le,[a("div",re,[a("div",ae,[h(o,{user:e.richObject.user_id,size:48,class:"profile-card__avatar"},null,8,["user"]),a("div",ce,[a("a",{href:e.richObject.url,target:"_blank"},[h(g,{size:20}),a("strong",null," AAA "+c(e.richObject.email!==null?e.richObject.title+" - "+e.richObject.email:e.richObject.title),1)],8,ne)])]),a("div",oe,[a("p",se,[e.richObject.headline?(t(),i("span",he,c(e.richObject.headline),1)):n("",!0),e.richObject.location?(t(),i("span",de,[h(H,{size:20}),e.richObject.location_url?(t(),i("a",{key:0,href:e.richObject.location_url,class:"external",target:"_blank"},c(e.richObject.location),9,ue)):(t(),i(j,{key:1},[f(c(e.richObject.location),1)],64))])):n("",!0),e.richObject.website?(t(),i("span",pe,[h(C,{size:20}),a("a",{href:e.richObject.website,class:"external",target:"_blank"},c(e.richObject.website),9,me)])):n("",!0),e.richObject.organisation?(t(),i("span",fe,[h(k,{size:20}),f(" "+c(e.richObject.organisation),1)])):n("",!0),e.richObject.role?(t(),i("span",be,[h(O,{size:20}),f(" "+c(e.richObject.role),1)])):n("",!0),e.richObject.bio?(t(),i("span",{key:5,class:"bio",title:e.richObject.full_bio},[h(V,{size:20}),f(" "+c(e.richObject.bio),1)],8,ge)):n("",!0)])])])])}const $e=d(te,[["render",He],["__scopeId","data-v-2e509da5"]]);export{$e as default}; +//# sourceMappingURL=ProfilePickerReferenceWidget-DwtK27QO.chunk.mjs.map diff --git a/dist/ProfilePickerReferenceWidget-DwtK27QO.chunk.mjs.license b/dist/ProfilePickerReferenceWidget-DwtK27QO.chunk.mjs.license new file mode 100644 index 0000000000000..b256ddce1aa16 --- /dev/null +++ b/dist/ProfilePickerReferenceWidget-DwtK27QO.chunk.mjs.license @@ -0,0 +1,12 @@ +SPDX-License-Identifier: AGPL-3.0-or-later +SPDX-License-Identifier: MIT +SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors +SPDX-FileCopyrightText: Rob Cresswell + +This file is generated from multiple sources. Included packages: +- nextcloud-ui + - version: 1.0.0 + - license: AGPL-3.0-or-later +- vue-material-design-icons + - version: 5.3.1 + - license: MIT diff --git a/dist/ProfilePickerReferenceWidget-DwtK27QO.chunk.mjs.map b/dist/ProfilePickerReferenceWidget-DwtK27QO.chunk.mjs.map new file mode 100644 index 0000000000000..24cc660b10f00 --- /dev/null +++ b/dist/ProfilePickerReferenceWidget-DwtK27QO.chunk.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"ProfilePickerReferenceWidget-DwtK27QO.chunk.mjs","sources":["../node_modules/vue-material-design-icons/Domain.vue","../node_modules/vue-material-design-icons/HandshakeOutline.vue","../node_modules/vue-material-design-icons/MapMarkerOutline.vue","../node_modules/vue-material-design-icons/TextAccount.vue","../build/frontend/apps/user_picker/src/views/ProfilePickerReferenceWidget.vue"],"sourcesContent":["\n\n","\n\n","\n\n","\n\n","\n\n\n\n\n\n\n"],"names":["_sfc_main","_hoisted_3","_createElementBlock","_mergeProps","_ctx","$props","_cache","$event","_createElementVNode","_openBlock","NcAvatar","AccountOutline","MapMarkerOutline","Web","Domain","HandshakeOutline","TextAccount","logger","_hoisted_1","_hoisted_2","_hoisted_4","_hoisted_6","_hoisted_7","_createVNode","_component_NcAvatar","_component_AccountOutline","_toDisplayString","_hoisted_8","_hoisted_9","_component_MapMarkerOutline","_hoisted_10","_Fragment","_createTextVNode","_hoisted_11","_component_Web","_hoisted_12","_hoisted_13","_component_Domain","_hoisted_14","_component_HandshakeOutline","_component_TextAccount"],"mappings":"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","x_google_ignoreList":[0,1,2,3]} \ No newline at end of file diff --git a/dist/ProfilePickerReferenceWidget-DwtK27QO.chunk.mjs.map.license b/dist/ProfilePickerReferenceWidget-DwtK27QO.chunk.mjs.map.license new file mode 100644 index 0000000000000..b256ddce1aa16 --- /dev/null +++ b/dist/ProfilePickerReferenceWidget-DwtK27QO.chunk.mjs.map.license @@ -0,0 +1,12 @@ +SPDX-License-Identifier: AGPL-3.0-or-later +SPDX-License-Identifier: MIT +SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors +SPDX-FileCopyrightText: Rob Cresswell + +This file is generated from multiple sources. Included packages: +- nextcloud-ui + - version: 1.0.0 + - license: AGPL-3.0-or-later +- vue-material-design-icons + - version: 5.3.1 + - license: MIT diff --git a/dist/ProfilesCustomPicker-BbTElimI.chunk.mjs b/dist/ProfilesCustomPicker-BbTElimI.chunk.mjs new file mode 100644 index 0000000000000..7626224bdeff8 --- /dev/null +++ b/dist/ProfilesCustomPicker-BbTElimI.chunk.mjs @@ -0,0 +1,2 @@ +import{c as g}from"./index-DVH_Kr3Q.chunk.mjs";import{g as b,a as y}from"./createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs";import{d as I}from"./index-Bndk0DrU.chunk.mjs";import{A as U,b as R}from"./AccountOutline-BlW-6JqD.chunk.mjs";import{N as $}from"./index-QzsMEHKe.chunk.mjs";import{N as A}from"./NcSelect-Czzsi3P_-BKaYvmLF.chunk.mjs";import{a as _}from"./index-DCpg1aui.chunk.mjs";import{j as d,o as c,k as a,l as P,t as h,z as L,f as n,e as u,w as p,g as k,c as x}from"./runtime-dom.esm-bundler-DdtEg5E9.chunk.mjs";import{l as w}from"./logger-_TauvWEC.chunk.mjs";import"./public-uQ6dl0vH.chunk.mjs";import"./string_decoder-vT-u9WbV.chunk.mjs";import"./NcModal-MC_HktJd-DqeuH-fk.chunk.mjs";import"./Web-aYJacExm.chunk.mjs";const O={name:"ArrowRightIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},T=["aria-hidden","aria-label"],z=["fill","width","height"],B={d:"M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z"},E={key:0};function Q(e,i,r,l,o,s){return c(),d("span",L(e.$attrs,{"aria-hidden":r.title?null:"true","aria-label":r.title,class:"material-design-icon arrow-right-icon",role:"img",onClick:i[0]||(i[0]=f=>e.$emit("click",f))}),[(c(),d("svg",{fill:r.fillColor,class:"material-design-icon__svg",width:r.size,height:r.size,viewBox:"0 0 24 24"},[a("path",B,[r.title?(c(),d("title",E,h(r.title),1)):P("",!0)])],8,z))],16,T)}const F=_(O,[["render",Q]]),V={name:"ProfilesCustomPicker",components:{NcSelect:A,NcButton:R,NcEmptyContent:$,AccountOutline:U,ArrowRightIcon:F},props:{providerId:{type:String,required:!0},accessible:{type:Boolean,default:!1}},data(){return{searchQuery:"",loading:!1,resultUrl:null,reference:null,profiles:[],selectedProfile:null,abortController:null}},computed:{options(){return this.searchQuery!==""?this.profiles:[]},noResultText(){return this.loading?t("user_picker","Searching …"):t("user_picker","Not found")}},mounted(){this.focusOnInput()},methods:{focusOnInput(){this.$nextTick(()=>{this.$refs["profiles-search-input"].$el.getElementsByTagName("input")[0]?.focus()})},async searchForProfile(e){e.trim()===""||e.trim().length<3||(this.searchQuery=e.trim(),this.loading=!0,await this.debounceFindProfiles(e))},debounceFindProfiles:I(function(...e){this.findProfiles(...e)},300),async findProfiles(e){const i=y("core/autocomplete/get?search={searchQuery}&itemType=%20&itemId=%20&shareTypes[]=0&limit=20",{searchQuery:e});try{const r=await g.get(i);this.profiles=r.data.ocs.data.map(l=>({user:l.id,displayName:l.label,icon:l.icon,subtitle:l.subline,isNoUser:l.source.startsWith("users")}))}catch(r){w.error("user_picker: error while searching for users",{error:r})}finally{this.loading=!1}},submit(){this.resultUrl=window.location.origin+b(`/u/${this.selectedProfile.user.trim().toLowerCase()}`,null,{noRewrite:!0}),this.$emit("submit",this.resultUrl),this.$el.dispatchEvent(new CustomEvent("submit",{detail:this.resultUrl,bubbles:!0}))},async resolveResult(e){this.loading=!0,this.abortController=new AbortController,this.selectedProfile=e,this.resultUrl=window.location.origin+b(`/u/${this.selectedProfile.user.trim().toLowerCase()}`,null,{noRewrite:!0});try{const i=await g.get(y("references/resolve",2)+"?reference="+encodeURIComponent(this.resultUrl),{signal:this.abortController.signal});this.reference=i.data.ocs.data.references[this.resultUrl]}catch(i){w.error("user_picker: error resolving the user profile link",{error:i})}finally{this.loading=!1}},clearSelection(){this.selectedProfile=null,this.resultUrl=null,this.reference=null}}},H={class:"profile-picker"},j={class:"profile-picker__heading"},M={class:"input-wrapper"},W={class:"profile-picker__footer"};function Z(e,i,r,l,o,s){const f=n("NcSelect"),C=n("AccountOutline"),v=n("NcEmptyContent"),N=n("ArrowRightIcon"),S=n("NcButton");return c(),d("div",H,[a("div",j,[a("h2",null,h(e.t("user_picker","Profile picker")),1),a("div",M,[u(f,{ref:"profiles-search-input",modelValue:o.selectedProfile,"onUpdate:modelValue":i[0]||(i[0]=m=>o.selectedProfile=m),"input-id":"profiles-search",loading:o.loading,filterable:!1,placeholder:e.t("user_picker","Search for a user profile"),"clear-search-on-blur":()=>!1,multiple:!1,options:s.options,label:"displayName",onSearch:s.searchForProfile,"onOption:selecting":s.resolveResult},{"no-options":p(({search:m})=>[k(h(m?s.noResultText:e.t("user_picker","Search for a user profile. Start typing")),1)]),_:1},8,["modelValue","loading","placeholder","options","onSearch","onOption:selecting"])]),u(v,{class:"empty-content"},{icon:p(()=>[u(C,{size:20})]),_:1})]),a("div",W,[o.selectedProfile!==null?(c(),x(S,{key:0,variant:"primary","aria-label":e.t("user_picker","Insert selected user profile link"),disabled:o.loading||o.selectedProfile===null,onClick:s.submit},{icon:p(()=>[u(N)]),default:p(()=>[k(h(e.t("user_picker","Insert"))+" ",1)]),_:1},8,["aria-label","disabled","onClick"])):P("",!0)])])}const se=_(V,[["render",Z],["__scopeId","data-v-d89c7fb8"]]);export{se as default}; +//# sourceMappingURL=ProfilesCustomPicker-BbTElimI.chunk.mjs.map diff --git a/dist/ProfilesCustomPicker-BbTElimI.chunk.mjs.license b/dist/ProfilesCustomPicker-BbTElimI.chunk.mjs.license new file mode 100644 index 0000000000000..b256ddce1aa16 --- /dev/null +++ b/dist/ProfilesCustomPicker-BbTElimI.chunk.mjs.license @@ -0,0 +1,12 @@ +SPDX-License-Identifier: AGPL-3.0-or-later +SPDX-License-Identifier: MIT +SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors +SPDX-FileCopyrightText: Rob Cresswell + +This file is generated from multiple sources. Included packages: +- nextcloud-ui + - version: 1.0.0 + - license: AGPL-3.0-or-later +- vue-material-design-icons + - version: 5.3.1 + - license: MIT diff --git a/dist/ProfilesCustomPicker-BbTElimI.chunk.mjs.map b/dist/ProfilesCustomPicker-BbTElimI.chunk.mjs.map new file mode 100644 index 0000000000000..67be3562a5941 --- /dev/null +++ b/dist/ProfilesCustomPicker-BbTElimI.chunk.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"ProfilesCustomPicker-BbTElimI.chunk.mjs","sources":["../node_modules/vue-material-design-icons/ArrowRight.vue","../build/frontend/apps/user_picker/src/components/ProfilesCustomPicker.vue"],"sourcesContent":["\n\n","\n\n\n\n\n\n\n"],"names":["_sfc_main","_hoisted_3","_createElementBlock","_mergeProps","_ctx","$props","_cache","$event","_createElementVNode","_openBlock","NcSelect","NcButton","NcEmptyContent","AccountOutline","ArrowRightIcon","query","debounce","args","url","generateOcsUrl","res","axios","userAutocomplete","error","logger","generateUrl","selectedItem","_hoisted_1","_hoisted_2","_hoisted_4","_createVNode","_component_NcSelect","$data","$options","_withCtx","search","_component_NcEmptyContent","_component_AccountOutline","_createBlock","_component_NcButton","_component_ArrowRightIcon","_createTextVNode","_toDisplayString"],"mappings":"qtBAoBA,MAAKA,EAAU,CACb,KAAM,iBACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,QAER,UAAW,CACT,KAAM,OACN,QAAS,gBAEX,KAAM,CACJ,KAAM,OACN,QAAS,EACX,CACF,CACF,6DAxBYC,EAAA,CAAA,EAAE,yEAAyE,+CAXrFC,EAeO,OAfPC,EAAcC,EAAA,OAAM,CACb,cAAaC,EAAA,MAAK,KAAA,OAClB,aAAYA,EAAA,MACb,MAAM,wCACN,KAAK,MACJ,QAAKC,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAEH,EAAA,MAAK,QAAUG,CAAM,WACjCL,EAQM,MAAA,CARA,KAAMG,EAAA,UACP,MAAM,4BACL,MAAOA,EAAA,KACP,OAAQA,EAAA,KACT,QAAQ,cACXG,EAEO,OAFPP,EAEO,CADQI,EAAA,OAAbI,EAAA,EAAAP,EAAuC,YAAhBG,EAAA,KAAK,EAAA,CAAA,wDCkD/BL,EAAU,CACd,KAAM,uBAEN,WAAY,CACX,SAAAU,EACA,SAAAC,EACA,eAAAC,EACA,eAAAC,EACA,eAAAC,GAGD,MAAO,CACN,WAAY,CACX,KAAM,OACN,SAAU,IAGX,WAAY,CACX,KAAM,QACN,QAAS,KAIX,MAAO,CACN,MAAO,CACN,YAAa,GACb,QAAS,GACT,UAAW,KACX,UAAW,KACX,SAAU,CAAA,EACV,gBAAiB,KACjB,gBAAiB,IAClB,CACD,EAEA,SAAU,CACT,SAAU,CACT,OAAI,KAAK,cAAgB,GACjB,KAAK,SAEN,CAAA,CACR,EAEA,cAAe,CACd,OAAO,KAAK,QAAU,EAAE,cAAe,aAAa,EAAI,EAAE,cAAe,WAAW,CACrF,GAGD,SAAU,CACT,KAAK,aAAY,CAClB,EAEA,QAAS,CACR,cAAe,CACd,KAAK,UAAU,IAAM,CACpB,KAAK,MAAM,uBAAuB,EAAE,IAAI,qBAAqB,OAAO,EAAE,CAAC,GAAG,MAAK,CAChF,CAAC,CACF,EAEA,MAAM,iBAAiBC,EAAO,CACzBA,EAAM,KAAI,IAAO,IAAMA,EAAM,KAAI,EAAG,OAAS,IAGjD,KAAK,YAAcA,EAAM,KAAI,EAC7B,KAAK,QAAU,GACf,MAAM,KAAK,qBAAqBA,CAAK,EACtC,EAEA,qBAAsBC,EAAS,YAAYC,EAAM,CAChD,KAAK,aAAa,GAAGA,CAAI,CAC1B,EAAG,GAAG,EAEN,MAAM,aAAaF,EAAO,CACzB,MAAMG,EAAMC,EAAe,6FAA8F,CAAE,YAAaJ,EAAO,EAC/I,GAAI,CACH,MAAMK,EAAM,MAAMC,EAAM,IAAIH,CAAG,EAC/B,KAAK,SAAWE,EAAI,KAAK,IAAI,KAAK,IAAKE,IAC/B,CACN,KAAMA,EAAiB,GACvB,YAAaA,EAAiB,MAC9B,KAAMA,EAAiB,KACvB,SAAUA,EAAiB,QAC3B,SAAUA,EAAiB,OAAO,WAAW,OAAO,CACrD,EACA,CACF,OAASC,EAAO,CACfC,EAAO,MAAM,+CAAgD,CAAE,MAAAD,CAAI,CAAG,CACvE,SACC,KAAK,QAAU,EAChB,CACD,EAEA,QAAS,CACR,KAAK,UAAY,OAAO,SAAS,OAASE,EAAY,MAAM,KAAK,gBAAgB,KAAK,KAAI,EAAG,YAAW,CAAE,GAAI,KAAM,CAAE,UAAW,EAAG,CAAG,EACvI,KAAK,MAAM,SAAU,KAAK,SAAS,EACnC,KAAK,IAAI,cAAc,IAAI,YAAY,SAAU,CAAE,OAAQ,KAAK,UAAW,QAAS,EAAG,CAAG,CAAC,CAC5F,EAEA,MAAM,cAAcC,EAAc,CACjC,KAAK,QAAU,GACf,KAAK,gBAAkB,IAAI,gBAC3B,KAAK,gBAAkBA,EACvB,KAAK,UAAY,OAAO,SAAS,OAASD,EAAY,MAAM,KAAK,gBAAgB,KAAK,KAAI,EAAG,YAAW,CAAE,GAAI,KAAM,CAAE,UAAW,EAAG,CAAG,EACvI,GAAI,CACH,MAAML,EAAM,MAAMC,EAAM,IAAIF,EAAe,qBAAsB,CAAC,EAAI,cAAgB,mBAAmB,KAAK,SAAS,EAAG,CACzH,OAAQ,KAAK,gBAAgB,OAC7B,EACD,KAAK,UAAYC,EAAI,KAAK,IAAI,KAAK,WAAW,KAAK,SAAS,CAC7D,OAASG,EAAO,CACfC,EAAO,MAAM,qDAAsD,CAAE,MAAAD,EAAO,CAC7E,QAAA,CACC,KAAK,QAAU,EAChB,CACD,EAEA,gBAAiB,CAChB,KAAK,gBAAkB,KACvB,KAAK,UAAY,KACjB,KAAK,UAAY,IAClB,EAEF,EAlLMI,EAAA,CAAA,MAAM,gBAAgB,EACrBC,EAAA,CAAA,MAAM,yBAAyB,EAI9B3B,EAAA,CAAA,MAAM,eAAe,EAyBtB4B,EAAA,CAAA,MAAM,wBAAwB,kIA9BpC,OAAApB,EAAA,EAAAP,EA2CM,MA3CNyB,EA2CM,CA1CLnB,EA4BM,MA5BNoB,EA4BM,CA3BLpB,EAEK,YADDJ,EAAA,EAAC,cAAA,gBAAA,CAAA,EAAA,CAAA,EAELI,EAkBM,MAlBNP,EAkBM,CAjBL6B,EAgBWC,EAAA,CAfV,IAAI,mCACKC,EAAA,qDAAAA,EAAA,gBAAezB,GACxB,WAAS,kBACR,QAASyB,EAAA,QACT,WAAY,GACZ,YAAa5B,EAAA,EAAC,cAAA,2BAAA,EACd,uBAAsB,IAAA,GACtB,SAAU,GACV,QAAS6B,EAAA,QACV,MAAM,cACL,SAAQA,EAAA,iBACR,qBAAkBA,EAAA,gBACR,aAAUC,EACpB,CAAyF,CADjE,OAAAC,KAAM,KAC3BA,EAASF,EAAA,aAAe7B,EAAA,EAAC,cAAA,yCAAA,CAAA,EAAA,CAAA,+FAI/B0B,EAIiBM,EAAA,CAJD,MAAM,eAAe,EAAA,CACzB,OACV,IAA6B,CAA7BN,EAA6BO,EAAA,CAAZ,KAAM,EAAE,CAAA,YAI5B7B,EAYM,MAZNqB,EAYM,CAVEG,EAAA,kBAAe,UADtBM,EAUWC,EAAA,OARV,QAAQ,UACP,aAAYnC,EAAA,EAAC,cAAA,mCAAA,EACb,SAAU4B,EAAA,SAAWA,EAAA,kBAAe,KACpC,QAAOC,EAAA,SAEG,OACV,IAAkB,CAAlBH,EAAkBU,CAAA,cAFnB,IAAgC,CAA7BC,EAAAC,EAAAtC,EAAA,2BAA6B,IAChC,CAAA","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/dist/ProfilesCustomPicker-BbTElimI.chunk.mjs.map.license b/dist/ProfilesCustomPicker-BbTElimI.chunk.mjs.map.license new file mode 100644 index 0000000000000..b256ddce1aa16 --- /dev/null +++ b/dist/ProfilesCustomPicker-BbTElimI.chunk.mjs.map.license @@ -0,0 +1,12 @@ +SPDX-License-Identifier: AGPL-3.0-or-later +SPDX-License-Identifier: MIT +SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors +SPDX-FileCopyrightText: Rob Cresswell + +This file is generated from multiple sources. Included packages: +- nextcloud-ui + - version: 1.0.0 + - license: AGPL-3.0-or-later +- vue-material-design-icons + - version: 5.3.1 + - license: MIT diff --git a/dist/SetStatusModal-2RjtkmKr.chunk.mjs b/dist/SetStatusModal-2RjtkmKr.chunk.mjs deleted file mode 100644 index 1d96cd560f60f..0000000000000 --- a/dist/SetStatusModal-2RjtkmKr.chunk.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import{j as O,a as v}from"./index-JpgrUA2Z-BFiKKJ1W.chunk.mjs";import{t as s}from"./translation-DoG5ZELJ-gw0g4US-.chunk.mjs";import{g as q}from"./createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs";import{c as A}from"./NcNoteCard-CVhtNL04-hwuc093N.chunk.mjs";import{N as x}from"./NcSelect-Czzsi3P_-DLFUGW7z.chunk.mjs";import{c as C,m as T,a as R,O as j,l as I}from"./user_status-menu.mjs";import{a as S}from"./index-xFugdZPW.chunk.mjs";import{f as c,j as m,o as n,k as a,e as p,t as l,w as g,g as b,F as $,C as B,c as y,$ as M,z as U,H as L,l as k}from"./runtime-dom.esm-bundler-BrYCUcZF.chunk.mjs";import{N as E}from"./NcEmojiPicker-pM4Pg2yq-C_Dpe77I.chunk.mjs";import{_ as H}from"./TrashCanOutline-CvWRJ8GE.chunk.mjs";import{N as V}from"./PencilOutline-DCq8EKwg.chunk.mjs";import"./index-6_gsQFyp.chunk.mjs";import"./mdi-D55n0uzy.chunk.mjs";import"./TrayArrowDown-DV7s2Yis.chunk.mjs";import"./index-BfylblLb.chunk.mjs";import"./string_decoder-BO00msnV.chunk.mjs";import"./NcColorPicker-Kc0JqRtp-VtydDeG1.chunk.mjs";import"./colors-Go3zmZRD-DU6ImAGi.chunk.mjs";import"./NcInputField-Bwsh2aHY-CHbAfY0u.chunk.mjs";function z(){return[{label:s("user_status","Don't clear"),clearAt:null},{label:s("user_status","30 minutes"),clearAt:{type:"period",time:1800}},{label:s("user_status","1 hour"),clearAt:{type:"period",time:3600}},{label:s("user_status","4 hours"),clearAt:{type:"period",time:14400}},{label:s("user_status","Today"),clearAt:{type:"end-of",time:"day"}},{label:s("user_status","This week"),clearAt:{type:"end-of",time:"week"}}]}const D={name:"ClearAtSelect",components:{NcSelect:x},props:{clearAt:{type:Object,default:null}},emits:["selectClearAt"],data(){return{options:z()}},computed:{option(){return{clearAt:this.clearAt,label:C(this.clearAt)}}},methods:{t:s,select(t){t&&this.$emit("selectClearAt",t.clearAt)}}},W={class:"clear-at-select"},K={class:"clear-at-select__label",for:"clearStatus"};function Y(t,i,u,f,o,e){const d=c("NcSelect");return n(),m("div",W,[a("label",K,l(e.t("user_status","Clear status after")),1),p(d,{"input-id":"clearStatus",class:"clear-at-select__select",options:o.options,"model-value":e.option,clearable:!1,placement:"top","label-outside":"","onOption:selected":e.select},null,8,["options","model-value","onOption:selected"])])}const G=S(D,[["render",Y],["__scopeId","data-v-84b8c013"]]),J={name:"CustomMessageInput",components:{NcTextField:H,NcButton:A,NcEmojiPicker:E},props:{icon:{type:String,default:"😀"},message:{type:String,default:""},disabled:{type:Boolean,default:!1}},emits:["change","selectIcon"],computed:{visibleIcon(){return this.icon||"😀"}},methods:{t:s,focus(){this.$refs.input.focus()},onChange(t){this.$emit("change",t)},setIcon(t){this.$emit("selectIcon",t)}}},Q={class:"custom-input",role:"group"},X={class:"custom-input__container"};function Z(t,i,u,f,o,e){const d=c("NcButton"),r=c("NcEmojiPicker"),_=c("NcTextField");return n(),m("div",Q,[p(r,{container:".custom-input",onSelect:e.setIcon},{default:g(()=>[p(d,{variant:"tertiary","aria-label":e.t("user_status","Emoji for your status message")},{icon:g(()=>[b(l(e.visibleIcon),1)]),_:1},8,["aria-label"])]),_:1},8,["onSelect"]),a("div",X,[p(_,{ref:"input",maxlength:"80",disabled:u.disabled,placeholder:e.t("user_status","What is your status?"),"model-value":u.message,type:"text",label:e.t("user_status","What is your status?"),"onUpdate:modelValue":e.onChange},null,8,["disabled","placeholder","model-value","label","onUpdate:modelValue"])])])}const ee=S(J,[["render",Z],["__scopeId","data-v-a19a0a87"]]),te={name:"OnlineStatusSelect",components:{NcUserStatusIcon:V},props:{checked:{type:Boolean,default:!1},type:{type:String,required:!0},label:{type:String,required:!0},subline:{type:String,default:null}},emits:["select"],computed:{id(){return`user-status-online-status-${this.type}`}},methods:{onChange(){this.$emit("select",this.type)}}},se={class:"user-status-online-select"},ae=["id","checked"],ie=["for"],re={class:"user-status-online-select__icon-wrapper"},ue={class:"user-status-online-select__subline"};function le(t,i,u,f,o,e){const d=c("NcUserStatusIcon");return n(),m("div",se,[a("input",{id:e.id,checked:u.checked,class:"hidden-visually user-status-online-select__input",type:"radio",name:"user-status-online",onChange:i[0]||(i[0]=(...r)=>e.onChange&&e.onChange(...r))},null,40,ae),a("label",{for:e.id,class:"user-status-online-select__label"},[a("span",re,[p(d,{status:u.type,class:"user-status-online-select__icon","aria-hidden":"true"},null,8,["status"])]),b(" "+l(u.label)+" ",1),a("em",ue,l(u.subline),1)],8,ie)])}const ne=S(te,[["render",le],["__scopeId","data-v-16876893"]]),ce={name:"PredefinedStatus",props:{messageId:{type:String,required:!0},icon:{type:String,required:!0},message:{type:String,required:!0},clearAt:{type:Object,required:!1,default:null},selected:{type:Boolean,required:!1,default:!1}},emits:["select"],computed:{id(){return`user-status-predefined-status-${this.messageId}`},formattedClearAt(){return C(this.clearAt)}},methods:{select(){this.$emit("select")}}},oe={class:"predefined-status"},de=["id","checked"],pe=["for"],me={"aria-hidden":"true",class:"predefined-status__label--icon"},he={class:"predefined-status__label--message"},ge={class:"predefined-status__label--clear-at"};function Se(t,i,u,f,o,e){return n(),m("li",oe,[a("input",{id:e.id,class:"hidden-visually predefined-status__input",type:"radio",name:"predefined-status",checked:u.selected,onChange:i[0]||(i[0]=(...d)=>e.select&&e.select(...d))},null,40,de),a("label",{class:"predefined-status__label",for:e.id},[a("span",me,l(u.icon),1),a("span",he,l(u.message),1),a("span",ge,l(e.formattedClearAt),1)],8,pe)])}const fe=S(ce,[["render",Se],["__scopeId","data-v-200bf95b"]]),_e={name:"PredefinedStatusesList",components:{PredefinedStatus:fe},emits:["selectStatus"],data(){return{lastSelected:null}},computed:{...R({predefinedStatuses:t=>t.predefinedStatuses.predefinedStatuses,messageId:t=>t.userStatus.messageId}),...T(["statusesHaveLoaded"])},watch:{messageId:{immediate:!0,handler(){this.lastSelected=this.messageId}}},created(){this.$store.dispatch("loadAllPredefinedStatuses")},methods:{t:s,selectStatus(t){this.lastSelected=t.id,this.$emit("selectStatus",t)}}},be=["aria-label"],ye={key:1,class:"predefined-statuses-list"};function ve(t,i,u,f,o,e){const d=c("PredefinedStatus");return t.statusesHaveLoaded?(n(),m("ul",{key:0,class:"predefined-statuses-list","aria-label":e.t("user_status","Predefined statuses")},[(n(!0),m($,null,B(t.predefinedStatuses,r=>(n(),y(d,{key:r.id,"message-id":r.id,icon:r.icon,message:r.message,"clear-at":r.clearAt,selected:o.lastSelected===r.id,onSelect:_=>e.selectStatus(r)},null,8,["message-id","icon","message","clear-at","selected","onSelect"]))),128))],8,be)):(n(),m("div",ye,[...i[0]||(i[0]=[a("div",{class:"icon icon-loading-small"},null,-1)])]))}const Ie=S(_e,[["render",ve],["__scopeId","data-v-09171ec7"]]),ke={name:"PreviousStatus",components:{NcButton:A},props:{icon:{type:[String,null],required:!0},message:{type:String,required:!0}},emits:["select"],methods:{t:s,select(){this.$emit("select")}}},Ae={class:"predefined-status__icon"},Me={class:"predefined-status__message"},Ce={class:"predefined-status__clear-at"},$e={class:"backup-status__reset-button"};function Be(t,i,u,f,o,e){const d=c("NcButton");return n(),m("div",{class:"predefined-status backup-status",tabindex:"0",onKeyup:[i[0]||(i[0]=M((...r)=>e.select&&e.select(...r),["enter"])),i[1]||(i[1]=M((...r)=>e.select&&e.select(...r),["space"]))],onClick:i[2]||(i[2]=(...r)=>e.select&&e.select(...r))},[a("span",Ae,l(u.icon),1),a("span",Me,l(u.message),1),a("span",Ce,l(e.t("user_status","Previously set")),1),a("div",$e,[p(d,{onClick:e.select},{default:g(()=>[b(l(e.t("user_status","Reset status")),1)]),_:1},8,["onClick"])])],32)}const Pe=S(ke,[["render",Be],["__scopeId","data-v-5fa747a0"]]);function Ne(){return[{type:"online",label:s("user_status","Online")},{type:"away",label:s("user_status","Away")},{type:"busy",label:s("user_status","Busy")},{type:"dnd",label:s("user_status","Do not disturb"),subline:s("user_status","Mute all notifications")},{type:"invisible",label:s("user_status","Invisible"),subline:s("user_status","Appear offline")}]}const we={name:"SetStatusModal",components:{ClearAtSelect:G,CustomMessageInput:ee,NcModal:O,OnlineStatusSelect:ne,PredefinedStatusesList:Ie,PreviousStatus:Pe,NcButton:A},mixins:[j],props:{inline:{type:Boolean,default:!1}},emits:["close"],data(){return{clearAt:null,editedMessage:"",predefinedMessageId:null,isSavingStatus:!1,statuses:Ne()}},computed:{messageId(){return this.$store.state.userStatus.messageId},icon(){return this.$store.state.userStatus.icon},message(){return this.$store.state.userStatus.message||""},hasBackupStatus(){return this.messageId&&(this.backupIcon||this.backupMessage)},backupIcon(){return this.$store.state.userBackupStatus.icon||""},backupMessage(){return this.$store.state.userBackupStatus.message||""},absencePageUrl(){return q("settings/user/availability#absence")},resetButtonText(){return this.backupIcon&&this.backupMessage?s("user_status",'Reset status to "{icon} {message}"',{icon:this.backupIcon,message:this.backupMessage}):this.backupMessage?s("user_status",'Reset status to "{message}"',{message:this.backupMessage}):this.backupIcon?s("user_status",'Reset status to "{icon}"',{icon:this.backupIcon}):s("user_status","Reset status")},setReturnFocus(){if(!this.inline)return document.querySelector('[aria-controls="header-menu-user-menu"]')??void 0}},watch:{message:{immediate:!0,handler(t){this.editedMessage=t}}},mounted(){this.$store.dispatch("fetchBackupFromServer"),this.predefinedMessageId=this.$store.state.userStatus.messageId,this.$store.state.userStatus.clearAt!==null&&(this.clearAt={type:"_time",time:this.$store.state.userStatus.clearAt})},methods:{t:s,closeModal(){this.$emit("close")},setIcon(t){this.predefinedMessageId=null,this.$store.dispatch("setCustomMessage",{message:this.message,icon:t,clearAt:this.clearAt}),this.$nextTick(()=>{this.$refs.customMessageInput.focus()})},setMessage(t){this.predefinedMessageId=null,this.editedMessage=t},setClearAt(t){this.clearAt=t},selectPredefinedMessage(t){this.predefinedMessageId=t.id,this.clearAt=t.clearAt,this.$store.dispatch("setPredefinedMessage",{messageId:t.id,clearAt:t.clearAt})},async saveStatus(){if(!this.isSavingStatus){try{this.isSavingStatus=!0,this.predefinedMessageId===null?await this.$store.dispatch("setCustomMessage",{message:this.editedMessage,icon:this.icon,clearAt:this.clearAt}):this.$store.dispatch("setPredefinedMessage",{messageId:this.predefinedMessageId,clearAt:this.clearAt})}catch(t){v(s("user_status","There was an error saving the status")),I.debug(t),this.isSavingStatus=!1;return}this.isSavingStatus=!1,this.closeModal()}},async clearStatus(){try{this.isSavingStatus=!0,await this.$store.dispatch("clearMessage")}catch(t){v(s("user_status","There was an error clearing the status")),I.debug(t),this.isSavingStatus=!1;return}this.isSavingStatus=!1,this.predefinedMessageId=null,this.closeModal()},async revertBackupFromServer(){try{this.isSavingStatus=!0,await this.$store.dispatch("revertBackupFromServer",{messageId:this.messageId})}catch(t){v(s("user_status","There was an error reverting the status")),I.debug(t),this.isSavingStatus=!1;return}this.isSavingStatus=!1,this.predefinedMessageId=this.$store.state.userStatus?.messageId}}},Fe={class:"set-status-modal"},Oe={id:"user_status-set-dialog",class:"set-status-modal__header"},qe=["aria-label"],xe={class:"set-status-modal__header"},Te={class:"set-status-modal__custom-input"},Re={key:0,class:"set-status-modal__automation-hint"},je={class:"status-buttons"};function Ue(t,i,u,f,o,e){const d=c("OnlineStatusSelect"),r=c("CustomMessageInput"),_=c("NcButton"),P=c("PreviousStatus"),N=c("PredefinedStatusesList"),w=c("ClearAtSelect"),F=c("NcModal");return n(),y(F,{size:"normal","label-id":"user_status-set-dialog",dark:"","set-return-focus":e.setReturnFocus,onClose:e.closeModal},{default:g(()=>[a("div",Fe,[a("h2",Oe,l(e.t("user_status","Online status")),1),a("div",{class:"set-status-modal__online-status",role:"radiogroup","aria-label":e.t("user_status","Online status")},[(n(!0),m($,null,B(o.statuses,h=>(n(),y(d,U({key:h.type},{ref_for:!0},h,{checked:h.type===t.statusType,onSelect:t.changeStatus}),null,16,["checked","onSelect"]))),128))],8,qe),a("form",{onSubmit:i[0]||(i[0]=L((...h)=>e.saveStatus&&e.saveStatus(...h),["prevent"])),onReset:i[1]||(i[1]=(...h)=>e.clearStatus&&e.clearStatus(...h))},[a("h3",xe,l(e.t("user_status","Status message")),1),a("div",Te,[p(r,{ref:"customMessageInput",icon:e.icon,message:o.editedMessage,onChange:e.setMessage,onSelectIcon:e.setIcon},null,8,["icon","message","onChange","onSelectIcon"]),e.messageId==="vacationing"?(n(),y(_,{key:0,href:e.absencePageUrl,target:"_blank",variant:"secondary","aria-label":e.t("user_status","Set absence period")},{default:g(()=>[b(l(e.t("user_status","Set absence period and replacement")+" ↗"),1)]),_:1},8,["href","aria-label"])):k("",!0)]),e.hasBackupStatus?(n(),m("div",Re,l(e.t("user_status","Your status was set automatically")),1)):k("",!0),e.hasBackupStatus?(n(),y(P,{key:1,icon:e.backupIcon,message:e.backupMessage,onSelect:e.revertBackupFromServer},null,8,["icon","message","onSelect"])):k("",!0),p(N,{onSelectStatus:e.selectPredefinedMessage},null,8,["onSelectStatus"]),p(w,{"clear-at":o.clearAt,onSelectClearAt:e.setClearAt},null,8,["clear-at","onSelectClearAt"]),a("div",je,[p(_,{wide:!0,variant:"tertiary",type:"reset","aria-label":e.t("user_status","Clear status message"),disabled:o.isSavingStatus},{default:g(()=>[b(l(e.t("user_status","Clear status message")),1)]),_:1},8,["aria-label","disabled"]),p(_,{wide:!0,variant:"primary",type:"submit","aria-label":e.t("user_status","Set status message"),disabled:o.isSavingStatus},{default:g(()=>[b(l(e.t("user_status","Set status message")),1)]),_:1},8,["aria-label","disabled"])])],32)])]),_:1},8,["set-return-focus","onClose"])}const rt=S(we,[["render",Ue],["__scopeId","data-v-40458f54"]]);export{rt as default}; -//# sourceMappingURL=SetStatusModal-2RjtkmKr.chunk.mjs.map diff --git a/dist/SetStatusModal-2wFx75xD.chunk.mjs b/dist/SetStatusModal-2wFx75xD.chunk.mjs new file mode 100644 index 0000000000000..ff3091e38be38 --- /dev/null +++ b/dist/SetStatusModal-2wFx75xD.chunk.mjs @@ -0,0 +1,2 @@ +import{a as v}from"./index-JpgrUA2Z-BXxDc_if.chunk.mjs";import{t as s}from"./string_decoder-vT-u9WbV.chunk.mjs";import{g as O}from"./createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs";import{b as A}from"./AccountOutline-BlW-6JqD.chunk.mjs";import{a as q}from"./NcModal-MC_HktJd-DqeuH-fk.chunk.mjs";import{N as x}from"./NcSelect-Czzsi3P_-BKaYvmLF.chunk.mjs";import{c as C,m as T,a as R,O as j,l as I}from"./user_status-menu.mjs";import{a as S}from"./index-DCpg1aui.chunk.mjs";import{f as c,j as m,o as n,k as a,e as p,t as l,w as g,g as b,F as $,C as B,c as y,_ as M,z as U,H as L,l as k}from"./runtime-dom.esm-bundler-DdtEg5E9.chunk.mjs";import{N as E}from"./NcEmojiPicker-pM4Pg2yq-CYkSkF_Y.chunk.mjs";import{_ as H}from"./TrashCanOutline-DglPBhgI.chunk.mjs";import{N as V}from"./PencilOutline-BSRAQiy1.chunk.mjs";import"./index-Bndk0DrU.chunk.mjs";import"./Web-aYJacExm.chunk.mjs";import"./mdi-BpC5Cj53.chunk.mjs";import"./TrayArrowDown-CEVYjTiD.chunk.mjs";import"./index-DVH_Kr3Q.chunk.mjs";import"./public-uQ6dl0vH.chunk.mjs";import"./NcColorPicker-Kc0JqRtp-G7GArS5K.chunk.mjs";import"./colors-Go3zmZRD-DNxaZwS4.chunk.mjs";import"./NcInputField-Bwsh2aHY-Cz27INBW.chunk.mjs";function z(){return[{label:s("user_status","Don't clear"),clearAt:null},{label:s("user_status","30 minutes"),clearAt:{type:"period",time:1800}},{label:s("user_status","1 hour"),clearAt:{type:"period",time:3600}},{label:s("user_status","4 hours"),clearAt:{type:"period",time:14400}},{label:s("user_status","Today"),clearAt:{type:"end-of",time:"day"}},{label:s("user_status","This week"),clearAt:{type:"end-of",time:"week"}}]}const D={name:"ClearAtSelect",components:{NcSelect:x},props:{clearAt:{type:Object,default:null}},emits:["selectClearAt"],data(){return{options:z()}},computed:{option(){return{clearAt:this.clearAt,label:C(this.clearAt)}}},methods:{t:s,select(t){t&&this.$emit("selectClearAt",t.clearAt)}}},W={class:"clear-at-select"},K={class:"clear-at-select__label",for:"clearStatus"};function Y(t,i,u,f,o,e){const d=c("NcSelect");return n(),m("div",W,[a("label",K,l(e.t("user_status","Clear status after")),1),p(d,{"input-id":"clearStatus",class:"clear-at-select__select",options:o.options,"model-value":e.option,clearable:!1,placement:"top","label-outside":"","onOption:selected":e.select},null,8,["options","model-value","onOption:selected"])])}const G=S(D,[["render",Y],["__scopeId","data-v-84b8c013"]]),J={name:"CustomMessageInput",components:{NcTextField:H,NcButton:A,NcEmojiPicker:E},props:{icon:{type:String,default:"😀"},message:{type:String,default:""},disabled:{type:Boolean,default:!1}},emits:["change","selectIcon"],computed:{visibleIcon(){return this.icon||"😀"}},methods:{t:s,focus(){this.$refs.input.focus()},onChange(t){this.$emit("change",t)},setIcon(t){this.$emit("selectIcon",t)}}},Q={class:"custom-input",role:"group"},X={class:"custom-input__container"};function Z(t,i,u,f,o,e){const d=c("NcButton"),r=c("NcEmojiPicker"),_=c("NcTextField");return n(),m("div",Q,[p(r,{container:".custom-input",onSelect:e.setIcon},{default:g(()=>[p(d,{variant:"tertiary","aria-label":e.t("user_status","Emoji for your status message")},{icon:g(()=>[b(l(e.visibleIcon),1)]),_:1},8,["aria-label"])]),_:1},8,["onSelect"]),a("div",X,[p(_,{ref:"input",maxlength:"80",disabled:u.disabled,placeholder:e.t("user_status","What is your status?"),"model-value":u.message,type:"text",label:e.t("user_status","What is your status?"),"onUpdate:modelValue":e.onChange},null,8,["disabled","placeholder","model-value","label","onUpdate:modelValue"])])])}const ee=S(J,[["render",Z],["__scopeId","data-v-a19a0a87"]]),te={name:"OnlineStatusSelect",components:{NcUserStatusIcon:V},props:{checked:{type:Boolean,default:!1},type:{type:String,required:!0},label:{type:String,required:!0},subline:{type:String,default:null}},emits:["select"],computed:{id(){return`user-status-online-status-${this.type}`}},methods:{onChange(){this.$emit("select",this.type)}}},se={class:"user-status-online-select"},ae=["id","checked"],ie=["for"],re={class:"user-status-online-select__icon-wrapper"},ue={class:"user-status-online-select__subline"};function le(t,i,u,f,o,e){const d=c("NcUserStatusIcon");return n(),m("div",se,[a("input",{id:e.id,checked:u.checked,class:"hidden-visually user-status-online-select__input",type:"radio",name:"user-status-online",onChange:i[0]||(i[0]=(...r)=>e.onChange&&e.onChange(...r))},null,40,ae),a("label",{for:e.id,class:"user-status-online-select__label"},[a("span",re,[p(d,{status:u.type,class:"user-status-online-select__icon","aria-hidden":"true"},null,8,["status"])]),b(" "+l(u.label)+" ",1),a("em",ue,l(u.subline),1)],8,ie)])}const ne=S(te,[["render",le],["__scopeId","data-v-16876893"]]),ce={name:"PredefinedStatus",props:{messageId:{type:String,required:!0},icon:{type:String,required:!0},message:{type:String,required:!0},clearAt:{type:Object,required:!1,default:null},selected:{type:Boolean,required:!1,default:!1}},emits:["select"],computed:{id(){return`user-status-predefined-status-${this.messageId}`},formattedClearAt(){return C(this.clearAt)}},methods:{select(){this.$emit("select")}}},oe={class:"predefined-status"},de=["id","checked"],pe=["for"],me={"aria-hidden":"true",class:"predefined-status__label--icon"},he={class:"predefined-status__label--message"},ge={class:"predefined-status__label--clear-at"};function Se(t,i,u,f,o,e){return n(),m("li",oe,[a("input",{id:e.id,class:"hidden-visually predefined-status__input",type:"radio",name:"predefined-status",checked:u.selected,onChange:i[0]||(i[0]=(...d)=>e.select&&e.select(...d))},null,40,de),a("label",{class:"predefined-status__label",for:e.id},[a("span",me,l(u.icon),1),a("span",he,l(u.message),1),a("span",ge,l(e.formattedClearAt),1)],8,pe)])}const fe=S(ce,[["render",Se],["__scopeId","data-v-200bf95b"]]),_e={name:"PredefinedStatusesList",components:{PredefinedStatus:fe},emits:["selectStatus"],data(){return{lastSelected:null}},computed:{...R({predefinedStatuses:t=>t.predefinedStatuses.predefinedStatuses,messageId:t=>t.userStatus.messageId}),...T(["statusesHaveLoaded"])},watch:{messageId:{immediate:!0,handler(){this.lastSelected=this.messageId}}},created(){this.$store.dispatch("loadAllPredefinedStatuses")},methods:{t:s,selectStatus(t){this.lastSelected=t.id,this.$emit("selectStatus",t)}}},be=["aria-label"],ye={key:1,class:"predefined-statuses-list"};function ve(t,i,u,f,o,e){const d=c("PredefinedStatus");return t.statusesHaveLoaded?(n(),m("ul",{key:0,class:"predefined-statuses-list","aria-label":e.t("user_status","Predefined statuses")},[(n(!0),m($,null,B(t.predefinedStatuses,r=>(n(),y(d,{key:r.id,"message-id":r.id,icon:r.icon,message:r.message,"clear-at":r.clearAt,selected:o.lastSelected===r.id,onSelect:_=>e.selectStatus(r)},null,8,["message-id","icon","message","clear-at","selected","onSelect"]))),128))],8,be)):(n(),m("div",ye,[...i[0]||(i[0]=[a("div",{class:"icon icon-loading-small"},null,-1)])]))}const Ie=S(_e,[["render",ve],["__scopeId","data-v-09171ec7"]]),ke={name:"PreviousStatus",components:{NcButton:A},props:{icon:{type:[String,null],required:!0},message:{type:String,required:!0}},emits:["select"],methods:{t:s,select(){this.$emit("select")}}},Ae={class:"predefined-status__icon"},Me={class:"predefined-status__message"},Ce={class:"predefined-status__clear-at"},$e={class:"backup-status__reset-button"};function Be(t,i,u,f,o,e){const d=c("NcButton");return n(),m("div",{class:"predefined-status backup-status",tabindex:"0",onKeyup:[i[0]||(i[0]=M((...r)=>e.select&&e.select(...r),["enter"])),i[1]||(i[1]=M((...r)=>e.select&&e.select(...r),["space"]))],onClick:i[2]||(i[2]=(...r)=>e.select&&e.select(...r))},[a("span",Ae,l(u.icon),1),a("span",Me,l(u.message),1),a("span",Ce,l(e.t("user_status","Previously set")),1),a("div",$e,[p(d,{onClick:e.select},{default:g(()=>[b(l(e.t("user_status","Reset status")),1)]),_:1},8,["onClick"])])],32)}const Pe=S(ke,[["render",Be],["__scopeId","data-v-5fa747a0"]]);function Ne(){return[{type:"online",label:s("user_status","Online")},{type:"away",label:s("user_status","Away")},{type:"busy",label:s("user_status","Busy")},{type:"dnd",label:s("user_status","Do not disturb"),subline:s("user_status","Mute all notifications")},{type:"invisible",label:s("user_status","Invisible"),subline:s("user_status","Appear offline")}]}const we={name:"SetStatusModal",components:{ClearAtSelect:G,CustomMessageInput:ee,NcModal:q,OnlineStatusSelect:ne,PredefinedStatusesList:Ie,PreviousStatus:Pe,NcButton:A},mixins:[j],props:{inline:{type:Boolean,default:!1}},emits:["close"],data(){return{clearAt:null,editedMessage:"",predefinedMessageId:null,isSavingStatus:!1,statuses:Ne()}},computed:{messageId(){return this.$store.state.userStatus.messageId},icon(){return this.$store.state.userStatus.icon},message(){return this.$store.state.userStatus.message||""},hasBackupStatus(){return this.messageId&&(this.backupIcon||this.backupMessage)},backupIcon(){return this.$store.state.userBackupStatus.icon||""},backupMessage(){return this.$store.state.userBackupStatus.message||""},absencePageUrl(){return O("settings/user/availability#absence")},resetButtonText(){return this.backupIcon&&this.backupMessage?s("user_status",'Reset status to "{icon} {message}"',{icon:this.backupIcon,message:this.backupMessage}):this.backupMessage?s("user_status",'Reset status to "{message}"',{message:this.backupMessage}):this.backupIcon?s("user_status",'Reset status to "{icon}"',{icon:this.backupIcon}):s("user_status","Reset status")},setReturnFocus(){if(!this.inline)return document.querySelector('[aria-controls="header-menu-user-menu"]')??void 0}},watch:{message:{immediate:!0,handler(t){this.editedMessage=t}}},mounted(){this.$store.dispatch("fetchBackupFromServer"),this.predefinedMessageId=this.$store.state.userStatus.messageId,this.$store.state.userStatus.clearAt!==null&&(this.clearAt={type:"_time",time:this.$store.state.userStatus.clearAt})},methods:{t:s,closeModal(){this.$emit("close")},setIcon(t){this.predefinedMessageId=null,this.$store.dispatch("setCustomMessage",{message:this.message,icon:t,clearAt:this.clearAt}),this.$nextTick(()=>{this.$refs.customMessageInput.focus()})},setMessage(t){this.predefinedMessageId=null,this.editedMessage=t},setClearAt(t){this.clearAt=t},selectPredefinedMessage(t){this.predefinedMessageId=t.id,this.clearAt=t.clearAt,this.$store.dispatch("setPredefinedMessage",{messageId:t.id,clearAt:t.clearAt})},async saveStatus(){if(!this.isSavingStatus){try{this.isSavingStatus=!0,this.predefinedMessageId===null?await this.$store.dispatch("setCustomMessage",{message:this.editedMessage,icon:this.icon,clearAt:this.clearAt}):this.$store.dispatch("setPredefinedMessage",{messageId:this.predefinedMessageId,clearAt:this.clearAt})}catch(t){v(s("user_status","There was an error saving the status")),I.debug(t),this.isSavingStatus=!1;return}this.isSavingStatus=!1,this.closeModal()}},async clearStatus(){try{this.isSavingStatus=!0,await this.$store.dispatch("clearMessage")}catch(t){v(s("user_status","There was an error clearing the status")),I.debug(t),this.isSavingStatus=!1;return}this.isSavingStatus=!1,this.predefinedMessageId=null,this.closeModal()},async revertBackupFromServer(){try{this.isSavingStatus=!0,await this.$store.dispatch("revertBackupFromServer",{messageId:this.messageId})}catch(t){v(s("user_status","There was an error reverting the status")),I.debug(t),this.isSavingStatus=!1;return}this.isSavingStatus=!1,this.predefinedMessageId=this.$store.state.userStatus?.messageId}}},Fe={class:"set-status-modal"},Oe={id:"user_status-set-dialog",class:"set-status-modal__header"},qe=["aria-label"],xe={class:"set-status-modal__header"},Te={class:"set-status-modal__custom-input"},Re={key:0,class:"set-status-modal__automation-hint"},je={class:"status-buttons"};function Ue(t,i,u,f,o,e){const d=c("OnlineStatusSelect"),r=c("CustomMessageInput"),_=c("NcButton"),P=c("PreviousStatus"),N=c("PredefinedStatusesList"),w=c("ClearAtSelect"),F=c("NcModal");return n(),y(F,{size:"normal","label-id":"user_status-set-dialog",dark:"","set-return-focus":e.setReturnFocus,onClose:e.closeModal},{default:g(()=>[a("div",Fe,[a("h2",Oe,l(e.t("user_status","Online status")),1),a("div",{class:"set-status-modal__online-status",role:"radiogroup","aria-label":e.t("user_status","Online status")},[(n(!0),m($,null,B(o.statuses,h=>(n(),y(d,U({key:h.type},{ref_for:!0},h,{checked:h.type===t.statusType,onSelect:t.changeStatus}),null,16,["checked","onSelect"]))),128))],8,qe),a("form",{onSubmit:i[0]||(i[0]=L((...h)=>e.saveStatus&&e.saveStatus(...h),["prevent"])),onReset:i[1]||(i[1]=(...h)=>e.clearStatus&&e.clearStatus(...h))},[a("h3",xe,l(e.t("user_status","Status message")),1),a("div",Te,[p(r,{ref:"customMessageInput",icon:e.icon,message:o.editedMessage,onChange:e.setMessage,onSelectIcon:e.setIcon},null,8,["icon","message","onChange","onSelectIcon"]),e.messageId==="vacationing"?(n(),y(_,{key:0,href:e.absencePageUrl,target:"_blank",variant:"secondary","aria-label":e.t("user_status","Set absence period")},{default:g(()=>[b(l(e.t("user_status","Set absence period and replacement")+" ↗"),1)]),_:1},8,["href","aria-label"])):k("",!0)]),e.hasBackupStatus?(n(),m("div",Re,l(e.t("user_status","Your status was set automatically")),1)):k("",!0),e.hasBackupStatus?(n(),y(P,{key:1,icon:e.backupIcon,message:e.backupMessage,onSelect:e.revertBackupFromServer},null,8,["icon","message","onSelect"])):k("",!0),p(N,{onSelectStatus:e.selectPredefinedMessage},null,8,["onSelectStatus"]),p(w,{"clear-at":o.clearAt,onSelectClearAt:e.setClearAt},null,8,["clear-at","onSelectClearAt"]),a("div",je,[p(_,{wide:!0,variant:"tertiary",type:"reset","aria-label":e.t("user_status","Clear status message"),disabled:o.isSavingStatus},{default:g(()=>[b(l(e.t("user_status","Clear status message")),1)]),_:1},8,["aria-label","disabled"]),p(_,{wide:!0,variant:"primary",type:"submit","aria-label":e.t("user_status","Set status message"),disabled:o.isSavingStatus},{default:g(()=>[b(l(e.t("user_status","Set status message")),1)]),_:1},8,["aria-label","disabled"])])],32)])]),_:1},8,["set-return-focus","onClose"])}const lt=S(we,[["render",Ue],["__scopeId","data-v-40458f54"]]);export{lt as default}; +//# sourceMappingURL=SetStatusModal-2wFx75xD.chunk.mjs.map diff --git a/dist/SetStatusModal-2RjtkmKr.chunk.mjs.license b/dist/SetStatusModal-2wFx75xD.chunk.mjs.license similarity index 100% rename from dist/SetStatusModal-2RjtkmKr.chunk.mjs.license rename to dist/SetStatusModal-2wFx75xD.chunk.mjs.license diff --git a/dist/SetStatusModal-2RjtkmKr.chunk.mjs.map b/dist/SetStatusModal-2wFx75xD.chunk.mjs.map similarity index 97% rename from dist/SetStatusModal-2RjtkmKr.chunk.mjs.map rename to dist/SetStatusModal-2wFx75xD.chunk.mjs.map index e1393ee4612ea..48aa6ad21ee71 100644 --- a/dist/SetStatusModal-2RjtkmKr.chunk.mjs.map +++ b/dist/SetStatusModal-2wFx75xD.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"SetStatusModal-2RjtkmKr.chunk.mjs","sources":["../build/frontend/apps/user_status/src/services/clearAtOptionsService.js","../build/frontend/apps/user_status/src/components/ClearAtSelect.vue","../build/frontend/apps/user_status/src/components/CustomMessageInput.vue","../build/frontend/apps/user_status/src/components/OnlineStatusSelect.vue","../build/frontend/apps/user_status/src/components/PredefinedStatus.vue","../build/frontend/apps/user_status/src/components/PredefinedStatusesList.vue","../build/frontend/apps/user_status/src/components/PreviousStatus.vue","../build/frontend/apps/user_status/src/services/statusOptionsService.js","../build/frontend/apps/user_status/src/components/SetStatusModal.vue"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { t } from '@nextcloud/l10n'\n\n/**\n * Returns an array\n *\n * @return {object[]}\n */\nfunction getAllClearAtOptions() {\n\treturn [{\n\t\tlabel: t('user_status', 'Don\\'t clear'),\n\t\tclearAt: null,\n\t}, {\n\t\tlabel: t('user_status', '30 minutes'),\n\t\tclearAt: {\n\t\t\ttype: 'period',\n\t\t\ttime: 1800,\n\t\t},\n\t}, {\n\t\tlabel: t('user_status', '1 hour'),\n\t\tclearAt: {\n\t\t\ttype: 'period',\n\t\t\ttime: 3600,\n\t\t},\n\t}, {\n\t\tlabel: t('user_status', '4 hours'),\n\t\tclearAt: {\n\t\t\ttype: 'period',\n\t\t\ttime: 14400,\n\t\t},\n\t}, {\n\t\tlabel: t('user_status', 'Today'),\n\t\tclearAt: {\n\t\t\ttype: 'end-of',\n\t\t\ttime: 'day',\n\t\t},\n\t}, {\n\t\tlabel: t('user_status', 'This week'),\n\t\tclearAt: {\n\t\t\ttype: 'end-of',\n\t\t\ttime: 'week',\n\t\t},\n\t}]\n}\n\nexport {\n\tgetAllClearAtOptions,\n}\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { t } from '@nextcloud/l10n'\n\n/**\n * Returns a list of all user-definable statuses\n *\n * @return {object[]}\n */\nfunction getAllStatusOptions() {\n\treturn [{\n\t\ttype: 'online',\n\t\tlabel: t('user_status', 'Online'),\n\t}, {\n\t\ttype: 'away',\n\t\tlabel: t('user_status', 'Away'),\n\t}, {\n\t\ttype: 'busy',\n\t\tlabel: t('user_status', 'Busy'),\n\t}, {\n\t\ttype: 'dnd',\n\t\tlabel: t('user_status', 'Do not disturb'),\n\t\tsubline: t('user_status', 'Mute all notifications'),\n\t}, {\n\t\ttype: 'invisible',\n\t\tlabel: t('user_status', 'Invisible'),\n\t\tsubline: t('user_status', 'Appear offline'),\n\t}]\n}\n\nexport {\n\tgetAllStatusOptions,\n}\n","\n\n\n\n\n\n\n"],"names":["getAllClearAtOptions","t","_sfc_main","NcSelect","clearAtFormat","option","_hoisted_1","_openBlock","_createElementBlock","_createElementVNode","_hoisted_2","_toDisplayString","$options","_createVNode","_component_NcSelect","$data","NcTextField","NcButton","NcEmojiPicker","value","icon","_component_NcEmojiPicker","_component_NcButton","_component_NcTextField","$props","NcUserStatusIcon","_hoisted_4","_hoisted_5","args","_component_NcUserStatusIcon","_hoisted_6","PredefinedStatus","mapState","state","mapGetters","status","_ctx","_Fragment","_renderList","_createBlock","_component_PredefinedStatus","$event","_cache","_hoisted_3","getAllStatusOptions","ClearAtSelect","CustomMessageInput","NcModal","OnlineStatusSelect","PredefinedStatusesList","PreviousStatus","OnlineStatusMixin","generateUrl","newValue","message","clearAt","err","showError","logger","_hoisted_7","_component_NcModal","_component_OnlineStatusSelect","_mergeProps","_component_CustomMessageInput","_component_PreviousStatus","_component_PredefinedStatusesList","_component_ClearAtSelect"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"SetStatusModal-2wFx75xD.chunk.mjs","sources":["../build/frontend/apps/user_status/src/services/clearAtOptionsService.js","../build/frontend/apps/user_status/src/components/ClearAtSelect.vue","../build/frontend/apps/user_status/src/components/CustomMessageInput.vue","../build/frontend/apps/user_status/src/components/OnlineStatusSelect.vue","../build/frontend/apps/user_status/src/components/PredefinedStatus.vue","../build/frontend/apps/user_status/src/components/PredefinedStatusesList.vue","../build/frontend/apps/user_status/src/components/PreviousStatus.vue","../build/frontend/apps/user_status/src/services/statusOptionsService.js","../build/frontend/apps/user_status/src/components/SetStatusModal.vue"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { t } from '@nextcloud/l10n'\n\n/**\n * Returns an array\n *\n * @return {object[]}\n */\nfunction getAllClearAtOptions() {\n\treturn [{\n\t\tlabel: t('user_status', 'Don\\'t clear'),\n\t\tclearAt: null,\n\t}, {\n\t\tlabel: t('user_status', '30 minutes'),\n\t\tclearAt: {\n\t\t\ttype: 'period',\n\t\t\ttime: 1800,\n\t\t},\n\t}, {\n\t\tlabel: t('user_status', '1 hour'),\n\t\tclearAt: {\n\t\t\ttype: 'period',\n\t\t\ttime: 3600,\n\t\t},\n\t}, {\n\t\tlabel: t('user_status', '4 hours'),\n\t\tclearAt: {\n\t\t\ttype: 'period',\n\t\t\ttime: 14400,\n\t\t},\n\t}, {\n\t\tlabel: t('user_status', 'Today'),\n\t\tclearAt: {\n\t\t\ttype: 'end-of',\n\t\t\ttime: 'day',\n\t\t},\n\t}, {\n\t\tlabel: t('user_status', 'This week'),\n\t\tclearAt: {\n\t\t\ttype: 'end-of',\n\t\t\ttime: 'week',\n\t\t},\n\t}]\n}\n\nexport {\n\tgetAllClearAtOptions,\n}\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { t } from '@nextcloud/l10n'\n\n/**\n * Returns a list of all user-definable statuses\n *\n * @return {object[]}\n */\nfunction getAllStatusOptions() {\n\treturn [{\n\t\ttype: 'online',\n\t\tlabel: t('user_status', 'Online'),\n\t}, {\n\t\ttype: 'away',\n\t\tlabel: t('user_status', 'Away'),\n\t}, {\n\t\ttype: 'busy',\n\t\tlabel: t('user_status', 'Busy'),\n\t}, {\n\t\ttype: 'dnd',\n\t\tlabel: t('user_status', 'Do not disturb'),\n\t\tsubline: t('user_status', 'Mute all notifications'),\n\t}, {\n\t\ttype: 'invisible',\n\t\tlabel: t('user_status', 'Invisible'),\n\t\tsubline: t('user_status', 'Appear offline'),\n\t}]\n}\n\nexport {\n\tgetAllStatusOptions,\n}\n","\n\n\n\n\n\n\n"],"names":["getAllClearAtOptions","t","_sfc_main","NcSelect","clearAtFormat","option","_hoisted_1","_openBlock","_createElementBlock","_createElementVNode","_hoisted_2","_toDisplayString","$options","_createVNode","_component_NcSelect","$data","NcTextField","NcButton","NcEmojiPicker","value","icon","_component_NcEmojiPicker","_component_NcButton","_component_NcTextField","$props","NcUserStatusIcon","_hoisted_4","_hoisted_5","args","_component_NcUserStatusIcon","_hoisted_6","PredefinedStatus","mapState","state","mapGetters","status","_ctx","_Fragment","_renderList","_createBlock","_component_PredefinedStatus","$event","_cache","_hoisted_3","getAllStatusOptions","ClearAtSelect","CustomMessageInput","NcModal","OnlineStatusSelect","PredefinedStatusesList","PreviousStatus","OnlineStatusMixin","generateUrl","newValue","message","clearAt","err","showError","logger","_hoisted_7","_component_NcModal","_component_OnlineStatusSelect","_mergeProps","_component_CustomMessageInput","_component_PreviousStatus","_component_PredefinedStatusesList","_component_ClearAtSelect"],"mappings":"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"} \ No newline at end of file diff --git a/dist/SetStatusModal-2RjtkmKr.chunk.mjs.map.license b/dist/SetStatusModal-2wFx75xD.chunk.mjs.map.license similarity index 100% rename from dist/SetStatusModal-2RjtkmKr.chunk.mjs.map.license rename to dist/SetStatusModal-2wFx75xD.chunk.mjs.map.license diff --git a/dist/TrashCanOutline-CvWRJ8GE.chunk.mjs b/dist/TrashCanOutline-CvWRJ8GE.chunk.mjs deleted file mode 100644 index 66f2740e0bdf8..0000000000000 --- a/dist/TrashCanOutline-CvWRJ8GE.chunk.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import{a as f,k as H,n as k,o as w}from"./NcNoteCard-CVhtNL04-hwuc093N.chunk.mjs";import{r as x,t as c}from"./createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs";import{N as h}from"./NcInputField-Bwsh2aHY-CHbAfY0u.chunk.mjs";import{b as C,p as _,q as I,v as M,x as O,c as d,o as l,y as j,w as g,m as z,u as a,z as y,j as p,k as S,l as T,t as $}from"./runtime-dom.esm-bundler-BrYCUcZF.chunk.mjs";import{a as E}from"./index-xFugdZPW.chunk.mjs";x();const G=C({__name:"NcTextField",props:_({class:{},inputClass:{},id:{},label:{},labelOutside:{type:Boolean},type:{},placeholder:{},showTrailingButton:{type:Boolean},trailingButtonLabel:{default:void 0},success:{type:Boolean},error:{type:Boolean},helperText:{},disabled:{type:Boolean},pill:{type:Boolean},trailingButtonIcon:{default:"close"}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o,{expose:i}){const e=I(o,"modelValue"),s=o;i({focus:B,select:b});const r=M("inputField"),m={arrowEnd:c("Save changes"),close:c("Clear text"),undo:c("Undo changes")},u=new Set(Object.keys(h.props)),V=O(()=>{const t=Object.fromEntries(Object.entries(s).filter(([n])=>u.has(n)));return t.trailingButtonLabel??=m[s.trailingButtonIcon],t});function B(t){r.value.focus(t)}function b(){r.value.select()}return(t,n)=>(l(),d(a(h),y(V.value,{ref:"inputField",modelValue:e.value,"onUpdate:modelValue":n[0]||(n[0]=v=>e.value=v)}),j({_:2},[t.$slots.icon?{name:"icon",fn:g(()=>[z(t.$slots,"icon")]),key:"0"}:void 0,t.type!=="search"?{name:"trailing-button-icon",fn:g(()=>[t.trailingButtonIcon==="arrowEnd"?(l(),d(a(f),{key:0,directional:"",path:a(H)},null,8,["path"])):(l(),d(a(f),{key:1,path:t.trailingButtonIcon==="undo"?a(k):a(w)},null,8,["path"]))]),key:"1"}:void 0]),1040,["modelValue"]))}}),F={name:"TrashCanOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},N=["aria-hidden","aria-label"],A=["fill","width","height"],L={d:"M9,3V4H4V6H5V19A2,2 0 0,0 7,21H17A2,2 0 0,0 19,19V6H20V4H15V3H9M7,6H17V19H7V6M9,8V17H11V8H9M13,8V17H15V8H13Z"},U={key:0};function q(o,i,e,s,r,m){return l(),p("span",y(o.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon trash-can-outline-icon",role:"img",onClick:i[0]||(i[0]=u=>o.$emit("click",u))}),[(l(),p("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[S("path",L,[e.title?(l(),p("title",U,$(e.title),1)):T("",!0)])],8,A))],16,N)}const J=E(F,[["render",q]]);export{J as D,G as _}; -//# sourceMappingURL=TrashCanOutline-CvWRJ8GE.chunk.mjs.map diff --git a/dist/TrashCanOutline-DglPBhgI.chunk.mjs b/dist/TrashCanOutline-DglPBhgI.chunk.mjs new file mode 100644 index 0000000000000..98f9b7f2baddb --- /dev/null +++ b/dist/TrashCanOutline-DglPBhgI.chunk.mjs @@ -0,0 +1,2 @@ +import{N as f,e as H,n as k,o as w}from"./AccountOutline-BlW-6JqD.chunk.mjs";import{r as x,b as c}from"./createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs";import{N as h}from"./NcInputField-Bwsh2aHY-Cz27INBW.chunk.mjs";import{b as C,p as _,q as I,v as M,x as O,c as d,o as l,y as j,w as g,m as z,u as a,z as y,j as p,k as N,l as S,t as T}from"./runtime-dom.esm-bundler-DdtEg5E9.chunk.mjs";import{a as $}from"./index-DCpg1aui.chunk.mjs";x();const G=C({__name:"NcTextField",props:_({class:{},inputClass:{},id:{},label:{},labelOutside:{type:Boolean},type:{},placeholder:{},showTrailingButton:{type:Boolean},trailingButtonLabel:{default:void 0},success:{type:Boolean},error:{type:Boolean},helperText:{},disabled:{type:Boolean},pill:{type:Boolean},trailingButtonIcon:{default:"close"}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o,{expose:i}){const e=I(o,"modelValue"),s=o;i({focus:b,select:B});const r=M("inputField"),m={arrowEnd:c("Save changes"),close:c("Clear text"),undo:c("Undo changes")},u=new Set(Object.keys(h.props)),V=O(()=>{const t=Object.fromEntries(Object.entries(s).filter(([n])=>u.has(n)));return t.trailingButtonLabel??=m[s.trailingButtonIcon],t});function b(t){r.value.focus(t)}function B(){r.value.select()}return(t,n)=>(l(),d(a(h),y(V.value,{ref:"inputField",modelValue:e.value,"onUpdate:modelValue":n[0]||(n[0]=v=>e.value=v)}),j({_:2},[t.$slots.icon?{name:"icon",fn:g(()=>[z(t.$slots,"icon")]),key:"0"}:void 0,t.type!=="search"?{name:"trailing-button-icon",fn:g(()=>[t.trailingButtonIcon==="arrowEnd"?(l(),d(a(f),{key:0,directional:"",path:a(H)},null,8,["path"])):(l(),d(a(f),{key:1,path:t.trailingButtonIcon==="undo"?a(k):a(w)},null,8,["path"]))]),key:"1"}:void 0]),1040,["modelValue"]))}}),E={name:"TrashCanOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},F=["aria-hidden","aria-label"],A=["fill","width","height"],L={d:"M9,3V4H4V6H5V19A2,2 0 0,0 7,21H17A2,2 0 0,0 19,19V6H20V4H15V3H9M7,6H17V19H7V6M9,8V17H11V8H9M13,8V17H15V8H13Z"},U={key:0};function q(o,i,e,s,r,m){return l(),p("span",y(o.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon trash-can-outline-icon",role:"img",onClick:i[0]||(i[0]=u=>o.$emit("click",u))}),[(l(),p("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[N("path",L,[e.title?(l(),p("title",U,T(e.title),1)):S("",!0)])],8,A))],16,F)}const J=$(E,[["render",q]]);export{J as D,G as _}; +//# sourceMappingURL=TrashCanOutline-DglPBhgI.chunk.mjs.map diff --git a/dist/TrashCanOutline-CvWRJ8GE.chunk.mjs.license b/dist/TrashCanOutline-DglPBhgI.chunk.mjs.license similarity index 100% rename from dist/TrashCanOutline-CvWRJ8GE.chunk.mjs.license rename to dist/TrashCanOutline-DglPBhgI.chunk.mjs.license diff --git a/dist/TrashCanOutline-CvWRJ8GE.chunk.mjs.map b/dist/TrashCanOutline-DglPBhgI.chunk.mjs.map similarity index 98% rename from dist/TrashCanOutline-CvWRJ8GE.chunk.mjs.map rename to dist/TrashCanOutline-DglPBhgI.chunk.mjs.map index 423faed1a177f..7491045e14041 100644 --- a/dist/TrashCanOutline-CvWRJ8GE.chunk.mjs.map +++ b/dist/TrashCanOutline-DglPBhgI.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"TrashCanOutline-CvWRJ8GE.chunk.mjs","sources":["../node_modules/@nextcloud/vue/dist/chunks/NcTextField.vue_vue_type_script_setup_true_lang-D1y_LfGJ.mjs","../node_modules/vue-material-design-icons/TrashCanOutline.vue"],"sourcesContent":["import { defineComponent, mergeModels, useModel, useTemplateRef, computed, createBlock, openBlock, unref, mergeProps, createSlots, withCtx, renderSlot } from \"vue\";\nimport { m as mdiArrowRight, a as mdiUndo, b as mdiClose } from \"./mdi-XFJRiRqJ.mjs\";\nimport { r as register, a as t } from \"./_l10n-DrTiip5c.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-BvLanNaW.mjs\";\nimport { N as NcInputField } from \"./NcInputField-Bwsh2aHY.mjs\";\nregister();\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcTextField\",\n props: /* @__PURE__ */ mergeModels({\n class: {},\n inputClass: {},\n id: {},\n label: {},\n labelOutside: { type: Boolean },\n type: {},\n placeholder: {},\n showTrailingButton: { type: Boolean },\n trailingButtonLabel: { default: void 0 },\n success: { type: Boolean },\n error: { type: Boolean },\n helperText: {},\n disabled: { type: Boolean },\n pill: { type: Boolean },\n trailingButtonIcon: { default: \"close\" }\n }, {\n \"modelValue\": { default: \"\" },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props, { expose: __expose }) {\n const modelValue = useModel(__props, \"modelValue\");\n const props = __props;\n __expose({\n focus,\n select\n });\n const inputFieldInstance = useTemplateRef(\"inputField\");\n const defaultTrailingButtonLabels = {\n arrowEnd: t(\"Save changes\"),\n close: t(\"Clear text\"),\n undo: t(\"Undo changes\")\n };\n const NcInputFieldPropNames = new Set(Object.keys(NcInputField.props));\n const propsToForward = computed(() => {\n const sharedProps = Object.fromEntries(Object.entries(props).filter(([key]) => NcInputFieldPropNames.has(key)));\n sharedProps.trailingButtonLabel ??= defaultTrailingButtonLabels[props.trailingButtonIcon];\n return sharedProps;\n });\n function focus(options) {\n inputFieldInstance.value.focus(options);\n }\n function select() {\n inputFieldInstance.value.select();\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(NcInputField), mergeProps(propsToForward.value, {\n ref: \"inputField\",\n modelValue: modelValue.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event)\n }), createSlots({ _: 2 }, [\n !!_ctx.$slots.icon ? {\n name: \"icon\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"icon\")\n ]),\n key: \"0\"\n } : void 0,\n _ctx.type !== \"search\" ? {\n name: \"trailing-button-icon\",\n fn: withCtx(() => [\n _ctx.trailingButtonIcon === \"arrowEnd\" ? (openBlock(), createBlock(unref(NcIconSvgWrapper), {\n key: 0,\n directional: \"\",\n path: unref(mdiArrowRight)\n }, null, 8, [\"path\"])) : (openBlock(), createBlock(unref(NcIconSvgWrapper), {\n key: 1,\n path: _ctx.trailingButtonIcon === \"undo\" ? unref(mdiUndo) : unref(mdiClose)\n }, null, 8, [\"path\"]))\n ]),\n key: \"1\"\n } : void 0\n ]), 1040, [\"modelValue\"]);\n };\n }\n});\nexport {\n _sfc_main as _\n};\n//# sourceMappingURL=NcTextField.vue_vue_type_script_setup_true_lang-D1y_LfGJ.mjs.map\n","\n\n"],"names":["register","_sfc_main","defineComponent","mergeModels","__props","__expose","modelValue","useModel","props","focus","select","inputFieldInstance","useTemplateRef","defaultTrailingButtonLabels","t","NcInputFieldPropNames","NcInputField","propsToForward","computed","sharedProps","key","options","_ctx","_cache","openBlock","createBlock","unref","mergeProps","$event","createSlots","withCtx","renderSlot","NcIconSvgWrapper","mdiArrowRight","mdiUndo","mdiClose","_hoisted_3","_createElementBlock","_mergeProps","$props","_createElementVNode","_openBlock"],"mappings":"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","x_google_ignoreList":[0,1]} \ No newline at end of file +{"version":3,"file":"TrashCanOutline-DglPBhgI.chunk.mjs","sources":["../node_modules/@nextcloud/vue/dist/chunks/NcTextField.vue_vue_type_script_setup_true_lang-D1y_LfGJ.mjs","../node_modules/vue-material-design-icons/TrashCanOutline.vue"],"sourcesContent":["import { defineComponent, mergeModels, useModel, useTemplateRef, computed, createBlock, openBlock, unref, mergeProps, createSlots, withCtx, renderSlot } from \"vue\";\nimport { m as mdiArrowRight, a as mdiUndo, b as mdiClose } from \"./mdi-XFJRiRqJ.mjs\";\nimport { r as register, a as t } from \"./_l10n-DrTiip5c.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-BvLanNaW.mjs\";\nimport { N as NcInputField } from \"./NcInputField-Bwsh2aHY.mjs\";\nregister();\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcTextField\",\n props: /* @__PURE__ */ mergeModels({\n class: {},\n inputClass: {},\n id: {},\n label: {},\n labelOutside: { type: Boolean },\n type: {},\n placeholder: {},\n showTrailingButton: { type: Boolean },\n trailingButtonLabel: { default: void 0 },\n success: { type: Boolean },\n error: { type: Boolean },\n helperText: {},\n disabled: { type: Boolean },\n pill: { type: Boolean },\n trailingButtonIcon: { default: \"close\" }\n }, {\n \"modelValue\": { default: \"\" },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props, { expose: __expose }) {\n const modelValue = useModel(__props, \"modelValue\");\n const props = __props;\n __expose({\n focus,\n select\n });\n const inputFieldInstance = useTemplateRef(\"inputField\");\n const defaultTrailingButtonLabels = {\n arrowEnd: t(\"Save changes\"),\n close: t(\"Clear text\"),\n undo: t(\"Undo changes\")\n };\n const NcInputFieldPropNames = new Set(Object.keys(NcInputField.props));\n const propsToForward = computed(() => {\n const sharedProps = Object.fromEntries(Object.entries(props).filter(([key]) => NcInputFieldPropNames.has(key)));\n sharedProps.trailingButtonLabel ??= defaultTrailingButtonLabels[props.trailingButtonIcon];\n return sharedProps;\n });\n function focus(options) {\n inputFieldInstance.value.focus(options);\n }\n function select() {\n inputFieldInstance.value.select();\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(NcInputField), mergeProps(propsToForward.value, {\n ref: \"inputField\",\n modelValue: modelValue.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event)\n }), createSlots({ _: 2 }, [\n !!_ctx.$slots.icon ? {\n name: \"icon\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"icon\")\n ]),\n key: \"0\"\n } : void 0,\n _ctx.type !== \"search\" ? {\n name: \"trailing-button-icon\",\n fn: withCtx(() => [\n _ctx.trailingButtonIcon === \"arrowEnd\" ? (openBlock(), createBlock(unref(NcIconSvgWrapper), {\n key: 0,\n directional: \"\",\n path: unref(mdiArrowRight)\n }, null, 8, [\"path\"])) : (openBlock(), createBlock(unref(NcIconSvgWrapper), {\n key: 1,\n path: _ctx.trailingButtonIcon === \"undo\" ? unref(mdiUndo) : unref(mdiClose)\n }, null, 8, [\"path\"]))\n ]),\n key: \"1\"\n } : void 0\n ]), 1040, [\"modelValue\"]);\n };\n }\n});\nexport {\n _sfc_main as _\n};\n//# sourceMappingURL=NcTextField.vue_vue_type_script_setup_true_lang-D1y_LfGJ.mjs.map\n","\n\n"],"names":["register","_sfc_main","defineComponent","mergeModels","__props","__expose","modelValue","useModel","props","focus","select","inputFieldInstance","useTemplateRef","defaultTrailingButtonLabels","t","NcInputFieldPropNames","NcInputField","propsToForward","computed","sharedProps","key","options","_ctx","_cache","openBlock","createBlock","unref","mergeProps","$event","createSlots","withCtx","renderSlot","NcIconSvgWrapper","mdiArrowRight","mdiUndo","mdiClose","_hoisted_3","_createElementBlock","_mergeProps","$props","_createElementVNode","_openBlock"],"mappings":"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","x_google_ignoreList":[0,1]} \ No newline at end of file diff --git a/dist/TrashCanOutline-CvWRJ8GE.chunk.mjs.map.license b/dist/TrashCanOutline-DglPBhgI.chunk.mjs.map.license similarity index 100% rename from dist/TrashCanOutline-CvWRJ8GE.chunk.mjs.map.license rename to dist/TrashCanOutline-DglPBhgI.chunk.mjs.map.license diff --git a/dist/TrayArrowDown-CEVYjTiD.chunk.mjs b/dist/TrayArrowDown-CEVYjTiD.chunk.mjs new file mode 100644 index 0000000000000..2b4dd5cae4a1a --- /dev/null +++ b/dist/TrayArrowDown-CEVYjTiD.chunk.mjs @@ -0,0 +1,2 @@ +import{N as L}from"./NcModal-MC_HktJd-DqeuH-fk.chunk.mjs";import{a as O}from"./string_decoder-vT-u9WbV.chunk.mjs";import{_ as w}from"./createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs";import{b as k,x as _,j as l,o as a,t as u,n as f,f as b,c as g,w as v,k as d,z as $,l as c,_ as B,m as r,g as A,E as x,G as D,e as H,y as M,ac as C,ad as F,L as I}from"./runtime-dom.esm-bundler-DdtEg5E9.chunk.mjs";import{a as V}from"./index-DCpg1aui.chunk.mjs";const K=k({name:"NcVNodes",props:{vnodes:{type:[Array,Object],default:null}},render(){return this.vnodes||this.$slots?.default?.({})}}),z=["title"],T=k({__name:"NcCounterBubble",props:{count:{},active:{type:Boolean},type:{default:""},raw:{type:Boolean}},setup(e){const s=e,t=_(()=>s.raw?s.count.toString():new Intl.NumberFormat(O(),{notation:"compact",compactDisplay:"short"}).format(s.count)),h=_(()=>{if(s.raw)return;const n=s.count.toString();if(n!==t.value)return n});return(n,i)=>(a(),l("div",{class:f(["counter-bubble__counter",{active:n.active,"counter-bubble__counter--highlighted":n.type==="highlighted","counter-bubble__counter--outlined":n.type==="outlined"}]),title:h.value},u(t.value),11,z))}}),U=w(T,[["__scopeId","data-v-36ffc13f"]]),j={name:"NcListItem",components:{NcActions:L,NcCounterBubble:U,NcVNodes:K},inheritAttrs:!1,props:{details:{type:String,default:""},name:{type:String,default:void 0},to:{type:[String,Object],default:null},href:{type:String,default:"#"},target:{type:String,default:""},anchorId:{type:String,default:""},bold:{type:Boolean,default:!1},compact:{type:Boolean,default:!1},active:{type:Boolean,default:void 0},linkAriaLabel:{type:String,default:""},actionsAriaLabel:{type:String,default:void 0},counterNumber:{type:[Number,String],default:0},counterType:{type:String,default:"",validator(e){return["highlighted","outlined",""].indexOf(e)!==-1}},forceDisplayActions:{type:Boolean,default:!1},forceMenu:{type:Boolean,default:!1},oneLine:{type:Boolean,default:!1}},emits:["click","update:menuOpen"],data(){return{hovered:!1,hasActions:!1,hasSubname:!1,displayActionsOnHoverFocus:!1,menuOpen:!1,hasIndicator:!1,hasDetails:!1}},computed:{showAdditionalElements(){return!this.displayActionsOnHoverFocus||this.forceDisplayActions},showDetails(){return(this.details!==""||this.hasDetails)&&(!this.displayActionsOnHoverFocus||this.forceDisplayActions)}},watch:{menuOpen(e){!e&&!this.hovered&&(this.displayActionsOnHoverFocus=!1)}},mounted(){this.checkSlots()},updated(){this.checkSlots()},methods:{onClick(e,s,t){this.$emit("click",e),!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&t&&(s?.(e),e.preventDefault())},showActions(){this.hasActions&&(this.displayActionsOnHoverFocus=!0),this.hovered=!1},hideActions(){this.displayActionsOnHoverFocus=!1},handleBlur(e){this.menuOpen||this.$refs["list-item"]?.contains(e.relatedTarget)||this.hideActions()},handleMouseleave(){this.menuOpen||(this.displayActionsOnHoverFocus=!1),this.hovered=!1},handleMouseover(){this.showActions(),this.hovered=!0},handleActionsUpdateOpen(e){this.menuOpen=e,this.$emit("update:menuOpen",e)},checkSlots(){this.hasActions!==!!this.$slots.actions&&(this.hasActions=!!this.$slots.actions),this.hasSubname!==!!this.$slots.subname&&(this.hasSubname=!!this.$slots.subname),this.hasIndicator!==!!this.$slots.indicator&&(this.hasIndicator=!!this.$slots.indicator),this.hasDetails!==!!this.$slots.details&&(this.hasDetails=!!this.$slots.details)}}},E=["id","aria-label","href","target","rel","onClick"],Z={class:"list-item-content"},G={class:"list-item-content__main"},q={class:"list-item-content__name"},J={class:"list-item-content__details"},P={key:0,class:"list-item-details__details"},Q={key:1,class:"list-item-details__extra"},R={key:1,class:"list-item-details__indicator"},W={key:0,class:"list-item-content__extra-actions"},X={key:2,class:"list-item__extra"};function Y(e,s,t,h,n,i){const p=b("NcCounterBubble"),N=b("NcActions");return a(),g(I(t.to?"router-link":"NcVNodes"),C(F({...t.to&&{custom:!0,to:t.to}})),{default:v(({href:y,navigate:S,isActive:m})=>[d("li",$({class:["list-item__wrapper",{"list-item__wrapper--active":t.active??m}]},e.$attrs),[d("div",{ref:"list-item",class:f(["list-item",{"list-item--compact":t.compact,"list-item--one-line":t.oneLine}]),onMouseover:s[4]||(s[4]=(...o)=>i.handleMouseover&&i.handleMouseover(...o)),onMouseleave:s[5]||(s[5]=(...o)=>i.handleMouseleave&&i.handleMouseleave(...o))},[d("a",{id:t.anchorId||void 0,"aria-label":t.linkAriaLabel,class:"list-item__anchor",href:y||t.href,target:t.target||(t.href==="#"?void 0:"_blank"),rel:t.href==="#"?void 0:"noopener noreferrer",onFocus:s[0]||(s[0]=(...o)=>i.showActions&&i.showActions(...o)),onFocusout:s[1]||(s[1]=(...o)=>i.handleBlur&&i.handleBlur(...o)),onClick:o=>i.onClick(o,S,y),onKeydown:s[2]||(s[2]=B((...o)=>i.hideActions&&i.hideActions(...o),["esc"]))},[r(e.$slots,"icon",{},void 0,!0),d("div",Z,[d("div",G,[d("div",q,[r(e.$slots,"name",{},()=>[A(u(t.name),1)],!0)]),n.hasSubname?(a(),l("div",{key:0,class:f(["list-item-content__subname",{"list-item-content__subname--bold":t.bold}])},[r(e.$slots,"subname",{},void 0,!0)],2)):c("",!0)]),d("div",J,[i.showDetails?(a(),l("div",P,[r(e.$slots,"details",{},()=>[A(u(t.details),1)],!0)])):c("",!0),t.counterNumber!==0||n.hasIndicator?x((a(),l("div",Q,[t.counterNumber!==0?(a(),g(p,{key:0,count:t.counterNumber,active:t.active??m,class:"list-item-details__counter",type:t.counterType},null,8,["count","active","type"])):c("",!0),n.hasIndicator?(a(),l("span",R,[r(e.$slots,"indicator",{},void 0,!0)])):c("",!0)],512)),[[D,i.showAdditionalElements]]):c("",!0)])])],40,E),e.$slots["extra-actions"]?(a(),l("div",W,[r(e.$slots,"extra-actions",{},void 0,!0)])):c("",!0),t.forceDisplayActions||n.displayActionsOnHoverFocus?(a(),l("div",{key:1,class:"list-item-content__actions",onFocusout:s[3]||(s[3]=(...o)=>i.handleBlur&&i.handleBlur(...o))},[H(N,{ref:"actions",primary:t.active??m,"force-menu":t.forceMenu,"aria-label":t.actionsAriaLabel,"onUpdate:open":i.handleActionsUpdateOpen},M({default:v(()=>[r(e.$slots,"actions",{},void 0,!0)]),_:2},[e.$slots["actions-icon"]?{name:"icon",fn:v(()=>[r(e.$slots,"actions-icon",{},void 0,!0)]),key:"0"}:void 0]),1032,["primary","force-menu","aria-label","onUpdate:open"])],32)):c("",!0),e.$slots.extra?(a(),l("div",X,[r(e.$slots,"extra",{},void 0,!0)])):c("",!0)],34)],16)]),_:3},16)}const ut=w(j,[["render",Y],["__scopeId","data-v-532f3807"]]),ht='',tt={name:"TrayArrowDownIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},et=["aria-hidden","aria-label"],st=["fill","width","height"],it={d:"M2 12H4V17H20V12H22V17C22 18.11 21.11 19 20 19H4C2.9 19 2 18.11 2 17V12M12 15L17.55 9.54L16.13 8.13L13 11.25V2H11V11.25L7.88 8.13L6.46 9.55L12 15Z"},ot={key:0};function at(e,s,t,h,n,i){return a(),l("span",$(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon tray-arrow-down-icon",role:"img",onClick:s[0]||(s[0]=p=>e.$emit("click",p))}),[(a(),l("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[d("path",it,[t.title?(a(),l("title",ot,u(t.title),1)):c("",!0)])],8,st))],16,et)}const pt=V(tt,[["render",at]]);export{pt as D,ut as N,ht as s}; +//# sourceMappingURL=TrayArrowDown-CEVYjTiD.chunk.mjs.map diff --git a/dist/TrayArrowDown-DV7s2Yis.chunk.mjs.license b/dist/TrayArrowDown-CEVYjTiD.chunk.mjs.license similarity index 100% rename from dist/TrayArrowDown-DV7s2Yis.chunk.mjs.license rename to dist/TrayArrowDown-CEVYjTiD.chunk.mjs.license diff --git a/dist/TrayArrowDown-DV7s2Yis.chunk.mjs.map b/dist/TrayArrowDown-CEVYjTiD.chunk.mjs.map similarity index 99% rename from dist/TrayArrowDown-DV7s2Yis.chunk.mjs.map rename to dist/TrayArrowDown-CEVYjTiD.chunk.mjs.map index 394d4e99d1d8b..718856b79305e 100644 --- a/dist/TrayArrowDown-DV7s2Yis.chunk.mjs.map +++ b/dist/TrayArrowDown-CEVYjTiD.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"TrayArrowDown-DV7s2Yis.chunk.mjs","sources":["../node_modules/@nextcloud/vue/dist/chunks/NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcCounterBubble-CxxHHh8i.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcListItem-BHmdTInS.mjs","../node_modules/@mdi/svg/svg/check.svg?raw","../node_modules/vue-material-design-icons/TrayArrowDown.vue"],"sourcesContent":["import { defineComponent } from \"vue\";\nconst _sfc_main = defineComponent({\n name: \"NcVNodes\",\n props: {\n /**\n * The vnodes to render\n */\n vnodes: {\n type: [Array, Object],\n default: null\n }\n },\n /**\n * The render function to display the component\n */\n render() {\n return this.vnodes || this.$slots?.default?.({});\n }\n});\nexport {\n _sfc_main as _\n};\n//# sourceMappingURL=NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs.map\n","import '../assets/NcCounterBubble-ZnteskDR.css';\nimport { defineComponent, computed, createElementBlock, openBlock, normalizeClass, toDisplayString } from \"vue\";\nimport { getCanonicalLocale } from \"@nextcloud/l10n\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = [\"title\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcCounterBubble\",\n props: {\n count: {},\n active: { type: Boolean },\n type: { default: \"\" },\n raw: { type: Boolean }\n },\n setup(__props) {\n const props = __props;\n const humanizedCount = computed(() => {\n if (props.raw) {\n return props.count.toString();\n }\n const formatter = new Intl.NumberFormat(getCanonicalLocale(), {\n notation: \"compact\",\n compactDisplay: \"short\"\n });\n return formatter.format(props.count);\n });\n const originalCountAsTitleIfNeeded = computed(() => {\n if (props.raw) {\n return;\n }\n const countAsString = props.count.toString();\n if (countAsString === humanizedCount.value) {\n return;\n }\n return countAsString;\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"counter-bubble__counter\", {\n active: _ctx.active,\n \"counter-bubble__counter--highlighted\": _ctx.type === \"highlighted\",\n \"counter-bubble__counter--outlined\": _ctx.type === \"outlined\"\n }]),\n title: originalCountAsTitleIfNeeded.value\n }, toDisplayString(humanizedCount.value), 11, _hoisted_1);\n };\n }\n});\nconst NcCounterBubble = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-36ffc13f\"]]);\nexport {\n NcCounterBubble as N\n};\n//# sourceMappingURL=NcCounterBubble-CxxHHh8i.mjs.map\n","import '../assets/NcListItem-CZnKmy9X.css';\nimport { N as NcActions } from \"./NcActions-DWmvh7-Y.mjs\";\nimport { N as NcCounterBubble } from \"./NcCounterBubble-CxxHHh8i.mjs\";\nimport { _ as _sfc_main$1 } from \"./NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs\";\nimport { resolveComponent, createBlock, openBlock, resolveDynamicComponent, normalizeProps, guardReactiveProps, withCtx, createElementVNode, mergeProps, normalizeClass, createElementBlock, createCommentVNode, withKeys, renderSlot, createTextVNode, toDisplayString, withDirectives, vShow, createVNode, createSlots } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcListItem\",\n components: {\n NcActions,\n NcCounterBubble,\n NcVNodes: _sfc_main$1\n },\n inheritAttrs: false,\n props: {\n /**\n * The details text displayed in the upper right part of the component\n */\n details: {\n type: String,\n default: \"\"\n },\n /**\n * Name (first line of text)\n */\n name: {\n type: String,\n default: void 0\n },\n /**\n * The route for the router link.\n */\n to: {\n type: [String, Object],\n default: null\n },\n /**\n * The value for the external link\n */\n href: {\n type: String,\n default: \"#\"\n },\n /**\n * The HTML target attribute used for the link\n */\n target: {\n type: String,\n default: \"\"\n },\n /**\n * Id for the `` element\n */\n anchorId: {\n type: String,\n default: \"\"\n },\n /**\n * Make subname bold\n */\n bold: {\n type: Boolean,\n default: false\n },\n /**\n * Show the NcListItem in compact design\n */\n compact: {\n type: Boolean,\n default: false\n },\n /**\n * Toggle the active state of the component\n */\n active: {\n type: Boolean,\n default: void 0\n },\n /**\n * Aria label for the wrapper element\n */\n linkAriaLabel: {\n type: String,\n default: \"\"\n },\n /**\n * Aria label for the actions toggle\n */\n actionsAriaLabel: {\n type: String,\n default: void 0\n },\n /**\n * If different from 0 this component will display the\n * NcCounterBubble component\n */\n counterNumber: {\n type: [Number, String],\n default: 0\n },\n /**\n * Outlined or highlighted state of the counter\n */\n counterType: {\n type: String,\n default: \"\",\n validator(value) {\n return [\"highlighted\", \"outlined\", \"\"].indexOf(value) !== -1;\n }\n },\n /**\n * To be used only when the elements in the actions menu are very important\n */\n forceDisplayActions: {\n type: Boolean,\n default: false\n },\n /**\n * Force the actions to display in a three dot menu\n */\n forceMenu: {\n type: Boolean,\n default: false\n },\n /**\n * Show the list component layout\n */\n oneLine: {\n type: Boolean,\n default: false\n }\n },\n emits: [\n \"click\",\n \"update:menuOpen\"\n ],\n data() {\n return {\n hovered: false,\n hasActions: false,\n hasSubname: false,\n displayActionsOnHoverFocus: false,\n menuOpen: false,\n hasIndicator: false,\n hasDetails: false\n };\n },\n computed: {\n showAdditionalElements() {\n return !this.displayActionsOnHoverFocus || this.forceDisplayActions;\n },\n showDetails() {\n return (this.details !== \"\" || this.hasDetails) && (!this.displayActionsOnHoverFocus || this.forceDisplayActions);\n }\n },\n watch: {\n menuOpen(newValue) {\n if (!newValue && !this.hovered) {\n this.displayActionsOnHoverFocus = false;\n }\n }\n },\n mounted() {\n this.checkSlots();\n },\n updated() {\n this.checkSlots();\n },\n methods: {\n /**\n * Handle link click\n *\n * @param {MouseEvent|KeyboardEvent} event - Native click or keydown event\n * @param {Function} [navigate] - VueRouter link's navigate if any\n * @param {string} [routerLinkHref] - VueRouter link's href\n */\n onClick(event, navigate, routerLinkHref) {\n this.$emit(\"click\", event);\n if (event.metaKey || event.altKey || event.ctrlKey || event.shiftKey) {\n return;\n }\n if (routerLinkHref) {\n navigate?.(event);\n event.preventDefault();\n }\n },\n showActions() {\n if (this.hasActions) {\n this.displayActionsOnHoverFocus = true;\n }\n this.hovered = false;\n },\n hideActions() {\n this.displayActionsOnHoverFocus = false;\n },\n /**\n * @param {FocusEvent} event UI event\n */\n handleBlur(event) {\n if (this.menuOpen) {\n return;\n }\n if (this.$refs[\"list-item\"]?.contains(event.relatedTarget)) {\n return;\n }\n this.hideActions();\n },\n /**\n * Hide the actions on mouseleave unless the menu is open\n */\n handleMouseleave() {\n if (!this.menuOpen) {\n this.displayActionsOnHoverFocus = false;\n }\n this.hovered = false;\n },\n handleMouseover() {\n this.showActions();\n this.hovered = true;\n },\n handleActionsUpdateOpen(e) {\n this.menuOpen = e;\n this.$emit(\"update:menuOpen\", e);\n },\n // Check if subname and actions slots are populated\n checkSlots() {\n if (this.hasActions !== !!this.$slots.actions) {\n this.hasActions = !!this.$slots.actions;\n }\n if (this.hasSubname !== !!this.$slots.subname) {\n this.hasSubname = !!this.$slots.subname;\n }\n if (this.hasIndicator !== !!this.$slots.indicator) {\n this.hasIndicator = !!this.$slots.indicator;\n }\n if (this.hasDetails !== !!this.$slots.details) {\n this.hasDetails = !!this.$slots.details;\n }\n }\n }\n};\nconst _hoisted_1 = [\"id\", \"aria-label\", \"href\", \"target\", \"rel\", \"onClick\"];\nconst _hoisted_2 = { class: \"list-item-content\" };\nconst _hoisted_3 = { class: \"list-item-content__main\" };\nconst _hoisted_4 = { class: \"list-item-content__name\" };\nconst _hoisted_5 = { class: \"list-item-content__details\" };\nconst _hoisted_6 = {\n key: 0,\n class: \"list-item-details__details\"\n};\nconst _hoisted_7 = {\n key: 1,\n class: \"list-item-details__extra\"\n};\nconst _hoisted_8 = {\n key: 1,\n class: \"list-item-details__indicator\"\n};\nconst _hoisted_9 = {\n key: 0,\n class: \"list-item-content__extra-actions\"\n};\nconst _hoisted_10 = {\n key: 2,\n class: \"list-item__extra\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcCounterBubble = resolveComponent(\"NcCounterBubble\");\n const _component_NcActions = resolveComponent(\"NcActions\");\n return openBlock(), createBlock(resolveDynamicComponent($props.to ? \"router-link\" : \"NcVNodes\"), normalizeProps(guardReactiveProps({ ...$props.to && { custom: true, to: $props.to } })), {\n default: withCtx(({ href: routerLinkHref, navigate, isActive }) => [\n createElementVNode(\"li\", mergeProps({\n class: [\"list-item__wrapper\", { \"list-item__wrapper--active\": $props.active ?? isActive }]\n }, _ctx.$attrs), [\n createElementVNode(\"div\", {\n ref: \"list-item\",\n class: normalizeClass([\"list-item\", {\n \"list-item--compact\": $props.compact,\n \"list-item--one-line\": $props.oneLine\n }]),\n onMouseover: _cache[4] || (_cache[4] = (...args) => $options.handleMouseover && $options.handleMouseover(...args)),\n onMouseleave: _cache[5] || (_cache[5] = (...args) => $options.handleMouseleave && $options.handleMouseleave(...args))\n }, [\n createElementVNode(\"a\", {\n id: $props.anchorId || void 0,\n \"aria-label\": $props.linkAriaLabel,\n class: \"list-item__anchor\",\n href: routerLinkHref || $props.href,\n target: $props.target || ($props.href === \"#\" ? void 0 : \"_blank\"),\n rel: $props.href === \"#\" ? void 0 : \"noopener noreferrer\",\n onFocus: _cache[0] || (_cache[0] = (...args) => $options.showActions && $options.showActions(...args)),\n onFocusout: _cache[1] || (_cache[1] = (...args) => $options.handleBlur && $options.handleBlur(...args)),\n onClick: ($event) => $options.onClick($event, navigate, routerLinkHref),\n onKeydown: _cache[2] || (_cache[2] = withKeys((...args) => $options.hideActions && $options.hideActions(...args), [\"esc\"]))\n }, [\n renderSlot(_ctx.$slots, \"icon\", {}, void 0, true),\n createElementVNode(\"div\", _hoisted_2, [\n createElementVNode(\"div\", _hoisted_3, [\n createElementVNode(\"div\", _hoisted_4, [\n renderSlot(_ctx.$slots, \"name\", {}, () => [\n createTextVNode(toDisplayString($props.name), 1)\n ], true)\n ]),\n $data.hasSubname ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"list-item-content__subname\", { \"list-item-content__subname--bold\": $props.bold }])\n }, [\n renderSlot(_ctx.$slots, \"subname\", {}, void 0, true)\n ], 2)) : createCommentVNode(\"\", true)\n ]),\n createElementVNode(\"div\", _hoisted_5, [\n $options.showDetails ? (openBlock(), createElementBlock(\"div\", _hoisted_6, [\n renderSlot(_ctx.$slots, \"details\", {}, () => [\n createTextVNode(toDisplayString($props.details), 1)\n ], true)\n ])) : createCommentVNode(\"\", true),\n $props.counterNumber !== 0 || $data.hasIndicator ? withDirectives((openBlock(), createElementBlock(\"div\", _hoisted_7, [\n $props.counterNumber !== 0 ? (openBlock(), createBlock(_component_NcCounterBubble, {\n key: 0,\n count: $props.counterNumber,\n active: $props.active ?? isActive,\n class: \"list-item-details__counter\",\n type: $props.counterType\n }, null, 8, [\"count\", \"active\", \"type\"])) : createCommentVNode(\"\", true),\n $data.hasIndicator ? (openBlock(), createElementBlock(\"span\", _hoisted_8, [\n renderSlot(_ctx.$slots, \"indicator\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true)\n ], 512)), [\n [vShow, $options.showAdditionalElements]\n ]) : createCommentVNode(\"\", true)\n ])\n ])\n ], 40, _hoisted_1),\n _ctx.$slots[\"extra-actions\"] ? (openBlock(), createElementBlock(\"div\", _hoisted_9, [\n renderSlot(_ctx.$slots, \"extra-actions\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true),\n $props.forceDisplayActions || $data.displayActionsOnHoverFocus ? (openBlock(), createElementBlock(\"div\", {\n key: 1,\n class: \"list-item-content__actions\",\n onFocusout: _cache[3] || (_cache[3] = (...args) => $options.handleBlur && $options.handleBlur(...args))\n }, [\n createVNode(_component_NcActions, {\n ref: \"actions\",\n primary: $props.active ?? isActive,\n \"force-menu\": $props.forceMenu,\n \"aria-label\": $props.actionsAriaLabel,\n \"onUpdate:open\": $options.handleActionsUpdateOpen\n }, createSlots({\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"actions\", {}, void 0, true)\n ]),\n _: 2\n }, [\n _ctx.$slots[\"actions-icon\"] ? {\n name: \"icon\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"actions-icon\", {}, void 0, true)\n ]),\n key: \"0\"\n } : void 0\n ]), 1032, [\"primary\", \"force-menu\", \"aria-label\", \"onUpdate:open\"])\n ], 32)) : createCommentVNode(\"\", true),\n _ctx.$slots.extra ? (openBlock(), createElementBlock(\"div\", _hoisted_10, [\n renderSlot(_ctx.$slots, \"extra\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true)\n ], 34)\n ], 16)\n ]),\n _: 3\n }, 16);\n}\nconst NcListItem = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-532f3807\"]]);\nexport {\n NcListItem as N\n};\n//# sourceMappingURL=NcListItem-BHmdTInS.mjs.map\n","export default \"\"","\n\n"],"names":["_sfc_main","defineComponent","_hoisted_1","__props","props","humanizedCount","computed","getCanonicalLocale","originalCountAsTitleIfNeeded","countAsString","_ctx","_cache","openBlock","createElementBlock","normalizeClass","toDisplayString","NcCounterBubble","_export_sfc","NcActions","_sfc_main$1","value","newValue","event","navigate","routerLinkHref","e","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_sfc_render","$props","$setup","$data","$options","_component_NcCounterBubble","resolveComponent","_component_NcActions","createBlock","resolveDynamicComponent","normalizeProps","guardReactiveProps","withCtx","isActive","createElementVNode","mergeProps","args","$event","withKeys","renderSlot","createTextVNode","createCommentVNode","withDirectives","vShow","createVNode","createSlots","NcListItem","svgCheck","_createElementBlock","_mergeProps","_createElementVNode","_openBlock"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4]} \ No newline at end of file +{"version":3,"file":"TrayArrowDown-CEVYjTiD.chunk.mjs","sources":["../node_modules/@nextcloud/vue/dist/chunks/NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcCounterBubble-CxxHHh8i.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcListItem-BHmdTInS.mjs","../node_modules/@mdi/svg/svg/check.svg?raw","../node_modules/vue-material-design-icons/TrayArrowDown.vue"],"sourcesContent":["import { defineComponent } from \"vue\";\nconst _sfc_main = defineComponent({\n name: \"NcVNodes\",\n props: {\n /**\n * The vnodes to render\n */\n vnodes: {\n type: [Array, Object],\n default: null\n }\n },\n /**\n * The render function to display the component\n */\n render() {\n return this.vnodes || this.$slots?.default?.({});\n }\n});\nexport {\n _sfc_main as _\n};\n//# sourceMappingURL=NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs.map\n","import '../assets/NcCounterBubble-ZnteskDR.css';\nimport { defineComponent, computed, createElementBlock, openBlock, normalizeClass, toDisplayString } from \"vue\";\nimport { getCanonicalLocale } from \"@nextcloud/l10n\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = [\"title\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcCounterBubble\",\n props: {\n count: {},\n active: { type: Boolean },\n type: { default: \"\" },\n raw: { type: Boolean }\n },\n setup(__props) {\n const props = __props;\n const humanizedCount = computed(() => {\n if (props.raw) {\n return props.count.toString();\n }\n const formatter = new Intl.NumberFormat(getCanonicalLocale(), {\n notation: \"compact\",\n compactDisplay: \"short\"\n });\n return formatter.format(props.count);\n });\n const originalCountAsTitleIfNeeded = computed(() => {\n if (props.raw) {\n return;\n }\n const countAsString = props.count.toString();\n if (countAsString === humanizedCount.value) {\n return;\n }\n return countAsString;\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"counter-bubble__counter\", {\n active: _ctx.active,\n \"counter-bubble__counter--highlighted\": _ctx.type === \"highlighted\",\n \"counter-bubble__counter--outlined\": _ctx.type === \"outlined\"\n }]),\n title: originalCountAsTitleIfNeeded.value\n }, toDisplayString(humanizedCount.value), 11, _hoisted_1);\n };\n }\n});\nconst NcCounterBubble = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-36ffc13f\"]]);\nexport {\n NcCounterBubble as N\n};\n//# sourceMappingURL=NcCounterBubble-CxxHHh8i.mjs.map\n","import '../assets/NcListItem-CZnKmy9X.css';\nimport { N as NcActions } from \"./NcActions-DWmvh7-Y.mjs\";\nimport { N as NcCounterBubble } from \"./NcCounterBubble-CxxHHh8i.mjs\";\nimport { _ as _sfc_main$1 } from \"./NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs\";\nimport { resolveComponent, createBlock, openBlock, resolveDynamicComponent, normalizeProps, guardReactiveProps, withCtx, createElementVNode, mergeProps, normalizeClass, createElementBlock, createCommentVNode, withKeys, renderSlot, createTextVNode, toDisplayString, withDirectives, vShow, createVNode, createSlots } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcListItem\",\n components: {\n NcActions,\n NcCounterBubble,\n NcVNodes: _sfc_main$1\n },\n inheritAttrs: false,\n props: {\n /**\n * The details text displayed in the upper right part of the component\n */\n details: {\n type: String,\n default: \"\"\n },\n /**\n * Name (first line of text)\n */\n name: {\n type: String,\n default: void 0\n },\n /**\n * The route for the router link.\n */\n to: {\n type: [String, Object],\n default: null\n },\n /**\n * The value for the external link\n */\n href: {\n type: String,\n default: \"#\"\n },\n /**\n * The HTML target attribute used for the link\n */\n target: {\n type: String,\n default: \"\"\n },\n /**\n * Id for the `` element\n */\n anchorId: {\n type: String,\n default: \"\"\n },\n /**\n * Make subname bold\n */\n bold: {\n type: Boolean,\n default: false\n },\n /**\n * Show the NcListItem in compact design\n */\n compact: {\n type: Boolean,\n default: false\n },\n /**\n * Toggle the active state of the component\n */\n active: {\n type: Boolean,\n default: void 0\n },\n /**\n * Aria label for the wrapper element\n */\n linkAriaLabel: {\n type: String,\n default: \"\"\n },\n /**\n * Aria label for the actions toggle\n */\n actionsAriaLabel: {\n type: String,\n default: void 0\n },\n /**\n * If different from 0 this component will display the\n * NcCounterBubble component\n */\n counterNumber: {\n type: [Number, String],\n default: 0\n },\n /**\n * Outlined or highlighted state of the counter\n */\n counterType: {\n type: String,\n default: \"\",\n validator(value) {\n return [\"highlighted\", \"outlined\", \"\"].indexOf(value) !== -1;\n }\n },\n /**\n * To be used only when the elements in the actions menu are very important\n */\n forceDisplayActions: {\n type: Boolean,\n default: false\n },\n /**\n * Force the actions to display in a three dot menu\n */\n forceMenu: {\n type: Boolean,\n default: false\n },\n /**\n * Show the list component layout\n */\n oneLine: {\n type: Boolean,\n default: false\n }\n },\n emits: [\n \"click\",\n \"update:menuOpen\"\n ],\n data() {\n return {\n hovered: false,\n hasActions: false,\n hasSubname: false,\n displayActionsOnHoverFocus: false,\n menuOpen: false,\n hasIndicator: false,\n hasDetails: false\n };\n },\n computed: {\n showAdditionalElements() {\n return !this.displayActionsOnHoverFocus || this.forceDisplayActions;\n },\n showDetails() {\n return (this.details !== \"\" || this.hasDetails) && (!this.displayActionsOnHoverFocus || this.forceDisplayActions);\n }\n },\n watch: {\n menuOpen(newValue) {\n if (!newValue && !this.hovered) {\n this.displayActionsOnHoverFocus = false;\n }\n }\n },\n mounted() {\n this.checkSlots();\n },\n updated() {\n this.checkSlots();\n },\n methods: {\n /**\n * Handle link click\n *\n * @param {MouseEvent|KeyboardEvent} event - Native click or keydown event\n * @param {Function} [navigate] - VueRouter link's navigate if any\n * @param {string} [routerLinkHref] - VueRouter link's href\n */\n onClick(event, navigate, routerLinkHref) {\n this.$emit(\"click\", event);\n if (event.metaKey || event.altKey || event.ctrlKey || event.shiftKey) {\n return;\n }\n if (routerLinkHref) {\n navigate?.(event);\n event.preventDefault();\n }\n },\n showActions() {\n if (this.hasActions) {\n this.displayActionsOnHoverFocus = true;\n }\n this.hovered = false;\n },\n hideActions() {\n this.displayActionsOnHoverFocus = false;\n },\n /**\n * @param {FocusEvent} event UI event\n */\n handleBlur(event) {\n if (this.menuOpen) {\n return;\n }\n if (this.$refs[\"list-item\"]?.contains(event.relatedTarget)) {\n return;\n }\n this.hideActions();\n },\n /**\n * Hide the actions on mouseleave unless the menu is open\n */\n handleMouseleave() {\n if (!this.menuOpen) {\n this.displayActionsOnHoverFocus = false;\n }\n this.hovered = false;\n },\n handleMouseover() {\n this.showActions();\n this.hovered = true;\n },\n handleActionsUpdateOpen(e) {\n this.menuOpen = e;\n this.$emit(\"update:menuOpen\", e);\n },\n // Check if subname and actions slots are populated\n checkSlots() {\n if (this.hasActions !== !!this.$slots.actions) {\n this.hasActions = !!this.$slots.actions;\n }\n if (this.hasSubname !== !!this.$slots.subname) {\n this.hasSubname = !!this.$slots.subname;\n }\n if (this.hasIndicator !== !!this.$slots.indicator) {\n this.hasIndicator = !!this.$slots.indicator;\n }\n if (this.hasDetails !== !!this.$slots.details) {\n this.hasDetails = !!this.$slots.details;\n }\n }\n }\n};\nconst _hoisted_1 = [\"id\", \"aria-label\", \"href\", \"target\", \"rel\", \"onClick\"];\nconst _hoisted_2 = { class: \"list-item-content\" };\nconst _hoisted_3 = { class: \"list-item-content__main\" };\nconst _hoisted_4 = { class: \"list-item-content__name\" };\nconst _hoisted_5 = { class: \"list-item-content__details\" };\nconst _hoisted_6 = {\n key: 0,\n class: \"list-item-details__details\"\n};\nconst _hoisted_7 = {\n key: 1,\n class: \"list-item-details__extra\"\n};\nconst _hoisted_8 = {\n key: 1,\n class: \"list-item-details__indicator\"\n};\nconst _hoisted_9 = {\n key: 0,\n class: \"list-item-content__extra-actions\"\n};\nconst _hoisted_10 = {\n key: 2,\n class: \"list-item__extra\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcCounterBubble = resolveComponent(\"NcCounterBubble\");\n const _component_NcActions = resolveComponent(\"NcActions\");\n return openBlock(), createBlock(resolveDynamicComponent($props.to ? \"router-link\" : \"NcVNodes\"), normalizeProps(guardReactiveProps({ ...$props.to && { custom: true, to: $props.to } })), {\n default: withCtx(({ href: routerLinkHref, navigate, isActive }) => [\n createElementVNode(\"li\", mergeProps({\n class: [\"list-item__wrapper\", { \"list-item__wrapper--active\": $props.active ?? isActive }]\n }, _ctx.$attrs), [\n createElementVNode(\"div\", {\n ref: \"list-item\",\n class: normalizeClass([\"list-item\", {\n \"list-item--compact\": $props.compact,\n \"list-item--one-line\": $props.oneLine\n }]),\n onMouseover: _cache[4] || (_cache[4] = (...args) => $options.handleMouseover && $options.handleMouseover(...args)),\n onMouseleave: _cache[5] || (_cache[5] = (...args) => $options.handleMouseleave && $options.handleMouseleave(...args))\n }, [\n createElementVNode(\"a\", {\n id: $props.anchorId || void 0,\n \"aria-label\": $props.linkAriaLabel,\n class: \"list-item__anchor\",\n href: routerLinkHref || $props.href,\n target: $props.target || ($props.href === \"#\" ? void 0 : \"_blank\"),\n rel: $props.href === \"#\" ? void 0 : \"noopener noreferrer\",\n onFocus: _cache[0] || (_cache[0] = (...args) => $options.showActions && $options.showActions(...args)),\n onFocusout: _cache[1] || (_cache[1] = (...args) => $options.handleBlur && $options.handleBlur(...args)),\n onClick: ($event) => $options.onClick($event, navigate, routerLinkHref),\n onKeydown: _cache[2] || (_cache[2] = withKeys((...args) => $options.hideActions && $options.hideActions(...args), [\"esc\"]))\n }, [\n renderSlot(_ctx.$slots, \"icon\", {}, void 0, true),\n createElementVNode(\"div\", _hoisted_2, [\n createElementVNode(\"div\", _hoisted_3, [\n createElementVNode(\"div\", _hoisted_4, [\n renderSlot(_ctx.$slots, \"name\", {}, () => [\n createTextVNode(toDisplayString($props.name), 1)\n ], true)\n ]),\n $data.hasSubname ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"list-item-content__subname\", { \"list-item-content__subname--bold\": $props.bold }])\n }, [\n renderSlot(_ctx.$slots, \"subname\", {}, void 0, true)\n ], 2)) : createCommentVNode(\"\", true)\n ]),\n createElementVNode(\"div\", _hoisted_5, [\n $options.showDetails ? (openBlock(), createElementBlock(\"div\", _hoisted_6, [\n renderSlot(_ctx.$slots, \"details\", {}, () => [\n createTextVNode(toDisplayString($props.details), 1)\n ], true)\n ])) : createCommentVNode(\"\", true),\n $props.counterNumber !== 0 || $data.hasIndicator ? withDirectives((openBlock(), createElementBlock(\"div\", _hoisted_7, [\n $props.counterNumber !== 0 ? (openBlock(), createBlock(_component_NcCounterBubble, {\n key: 0,\n count: $props.counterNumber,\n active: $props.active ?? isActive,\n class: \"list-item-details__counter\",\n type: $props.counterType\n }, null, 8, [\"count\", \"active\", \"type\"])) : createCommentVNode(\"\", true),\n $data.hasIndicator ? (openBlock(), createElementBlock(\"span\", _hoisted_8, [\n renderSlot(_ctx.$slots, \"indicator\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true)\n ], 512)), [\n [vShow, $options.showAdditionalElements]\n ]) : createCommentVNode(\"\", true)\n ])\n ])\n ], 40, _hoisted_1),\n _ctx.$slots[\"extra-actions\"] ? (openBlock(), createElementBlock(\"div\", _hoisted_9, [\n renderSlot(_ctx.$slots, \"extra-actions\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true),\n $props.forceDisplayActions || $data.displayActionsOnHoverFocus ? (openBlock(), createElementBlock(\"div\", {\n key: 1,\n class: \"list-item-content__actions\",\n onFocusout: _cache[3] || (_cache[3] = (...args) => $options.handleBlur && $options.handleBlur(...args))\n }, [\n createVNode(_component_NcActions, {\n ref: \"actions\",\n primary: $props.active ?? isActive,\n \"force-menu\": $props.forceMenu,\n \"aria-label\": $props.actionsAriaLabel,\n \"onUpdate:open\": $options.handleActionsUpdateOpen\n }, createSlots({\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"actions\", {}, void 0, true)\n ]),\n _: 2\n }, [\n _ctx.$slots[\"actions-icon\"] ? {\n name: \"icon\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"actions-icon\", {}, void 0, true)\n ]),\n key: \"0\"\n } : void 0\n ]), 1032, [\"primary\", \"force-menu\", \"aria-label\", \"onUpdate:open\"])\n ], 32)) : createCommentVNode(\"\", true),\n _ctx.$slots.extra ? (openBlock(), createElementBlock(\"div\", _hoisted_10, [\n renderSlot(_ctx.$slots, \"extra\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true)\n ], 34)\n ], 16)\n ]),\n _: 3\n }, 16);\n}\nconst NcListItem = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-532f3807\"]]);\nexport {\n NcListItem as N\n};\n//# sourceMappingURL=NcListItem-BHmdTInS.mjs.map\n","export default \"\"","\n\n"],"names":["_sfc_main","defineComponent","_hoisted_1","__props","props","humanizedCount","computed","getCanonicalLocale","originalCountAsTitleIfNeeded","countAsString","_ctx","_cache","openBlock","createElementBlock","normalizeClass","toDisplayString","NcCounterBubble","_export_sfc","NcActions","_sfc_main$1","value","newValue","event","navigate","routerLinkHref","e","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_sfc_render","$props","$setup","$data","$options","_component_NcCounterBubble","resolveComponent","_component_NcActions","createBlock","resolveDynamicComponent","normalizeProps","guardReactiveProps","withCtx","isActive","createElementVNode","mergeProps","args","$event","withKeys","renderSlot","createTextVNode","createCommentVNode","withDirectives","vShow","createVNode","createSlots","NcListItem","svgCheck","_createElementBlock","_mergeProps","_createElementVNode","_openBlock"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4]} \ No newline at end of file diff --git a/dist/TrayArrowDown-DV7s2Yis.chunk.mjs.map.license b/dist/TrayArrowDown-CEVYjTiD.chunk.mjs.map.license similarity index 100% rename from dist/TrayArrowDown-DV7s2Yis.chunk.mjs.map.license rename to dist/TrayArrowDown-CEVYjTiD.chunk.mjs.map.license diff --git a/dist/TrayArrowDown-DV7s2Yis.chunk.mjs b/dist/TrayArrowDown-DV7s2Yis.chunk.mjs deleted file mode 100644 index 2aebcca5e0596..0000000000000 --- a/dist/TrayArrowDown-DV7s2Yis.chunk.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import{i as O}from"./index-JpgrUA2Z-BFiKKJ1W.chunk.mjs";import{a as L}from"./translation-DoG5ZELJ-gw0g4US-.chunk.mjs";import{_ as w}from"./createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs";import{b as k,x as b,j as l,o as a,t as u,n as f,f as _,c as g,w as v,k as d,z as $,l as c,$ as B,m as r,g as A,E as x,G as D,e as H,y as M,a9 as C,aa as F,N as I}from"./runtime-dom.esm-bundler-BrYCUcZF.chunk.mjs";import{a as V}from"./index-xFugdZPW.chunk.mjs";const K=k({name:"NcVNodes",props:{vnodes:{type:[Array,Object],default:null}},render(){return this.vnodes||this.$slots?.default?.({})}}),z=["title"],T=k({__name:"NcCounterBubble",props:{count:{},active:{type:Boolean},type:{default:""},raw:{type:Boolean}},setup(e){const s=e,t=b(()=>s.raw?s.count.toString():new Intl.NumberFormat(L(),{notation:"compact",compactDisplay:"short"}).format(s.count)),h=b(()=>{if(s.raw)return;const n=s.count.toString();if(n!==t.value)return n});return(n,i)=>(a(),l("div",{class:f(["counter-bubble__counter",{active:n.active,"counter-bubble__counter--highlighted":n.type==="highlighted","counter-bubble__counter--outlined":n.type==="outlined"}]),title:h.value},u(t.value),11,z))}}),U=w(T,[["__scopeId","data-v-36ffc13f"]]),j={name:"NcListItem",components:{NcActions:O,NcCounterBubble:U,NcVNodes:K},inheritAttrs:!1,props:{details:{type:String,default:""},name:{type:String,default:void 0},to:{type:[String,Object],default:null},href:{type:String,default:"#"},target:{type:String,default:""},anchorId:{type:String,default:""},bold:{type:Boolean,default:!1},compact:{type:Boolean,default:!1},active:{type:Boolean,default:void 0},linkAriaLabel:{type:String,default:""},actionsAriaLabel:{type:String,default:void 0},counterNumber:{type:[Number,String],default:0},counterType:{type:String,default:"",validator(e){return["highlighted","outlined",""].indexOf(e)!==-1}},forceDisplayActions:{type:Boolean,default:!1},forceMenu:{type:Boolean,default:!1},oneLine:{type:Boolean,default:!1}},emits:["click","update:menuOpen"],data(){return{hovered:!1,hasActions:!1,hasSubname:!1,displayActionsOnHoverFocus:!1,menuOpen:!1,hasIndicator:!1,hasDetails:!1}},computed:{showAdditionalElements(){return!this.displayActionsOnHoverFocus||this.forceDisplayActions},showDetails(){return(this.details!==""||this.hasDetails)&&(!this.displayActionsOnHoverFocus||this.forceDisplayActions)}},watch:{menuOpen(e){!e&&!this.hovered&&(this.displayActionsOnHoverFocus=!1)}},mounted(){this.checkSlots()},updated(){this.checkSlots()},methods:{onClick(e,s,t){this.$emit("click",e),!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&t&&(s?.(e),e.preventDefault())},showActions(){this.hasActions&&(this.displayActionsOnHoverFocus=!0),this.hovered=!1},hideActions(){this.displayActionsOnHoverFocus=!1},handleBlur(e){this.menuOpen||this.$refs["list-item"]?.contains(e.relatedTarget)||this.hideActions()},handleMouseleave(){this.menuOpen||(this.displayActionsOnHoverFocus=!1),this.hovered=!1},handleMouseover(){this.showActions(),this.hovered=!0},handleActionsUpdateOpen(e){this.menuOpen=e,this.$emit("update:menuOpen",e)},checkSlots(){this.hasActions!==!!this.$slots.actions&&(this.hasActions=!!this.$slots.actions),this.hasSubname!==!!this.$slots.subname&&(this.hasSubname=!!this.$slots.subname),this.hasIndicator!==!!this.$slots.indicator&&(this.hasIndicator=!!this.$slots.indicator),this.hasDetails!==!!this.$slots.details&&(this.hasDetails=!!this.$slots.details)}}},E=["id","aria-label","href","target","rel","onClick"],Z={class:"list-item-content"},G={class:"list-item-content__main"},q={class:"list-item-content__name"},J={class:"list-item-content__details"},P={key:0,class:"list-item-details__details"},Q={key:1,class:"list-item-details__extra"},R={key:1,class:"list-item-details__indicator"},W={key:0,class:"list-item-content__extra-actions"},X={key:2,class:"list-item__extra"};function Y(e,s,t,h,n,i){const p=_("NcCounterBubble"),N=_("NcActions");return a(),g(I(t.to?"router-link":"NcVNodes"),C(F({...t.to&&{custom:!0,to:t.to}})),{default:v(({href:y,navigate:S,isActive:m})=>[d("li",$({class:["list-item__wrapper",{"list-item__wrapper--active":t.active??m}]},e.$attrs),[d("div",{ref:"list-item",class:f(["list-item",{"list-item--compact":t.compact,"list-item--one-line":t.oneLine}]),onMouseover:s[4]||(s[4]=(...o)=>i.handleMouseover&&i.handleMouseover(...o)),onMouseleave:s[5]||(s[5]=(...o)=>i.handleMouseleave&&i.handleMouseleave(...o))},[d("a",{id:t.anchorId||void 0,"aria-label":t.linkAriaLabel,class:"list-item__anchor",href:y||t.href,target:t.target||(t.href==="#"?void 0:"_blank"),rel:t.href==="#"?void 0:"noopener noreferrer",onFocus:s[0]||(s[0]=(...o)=>i.showActions&&i.showActions(...o)),onFocusout:s[1]||(s[1]=(...o)=>i.handleBlur&&i.handleBlur(...o)),onClick:o=>i.onClick(o,S,y),onKeydown:s[2]||(s[2]=B((...o)=>i.hideActions&&i.hideActions(...o),["esc"]))},[r(e.$slots,"icon",{},void 0,!0),d("div",Z,[d("div",G,[d("div",q,[r(e.$slots,"name",{},()=>[A(u(t.name),1)],!0)]),n.hasSubname?(a(),l("div",{key:0,class:f(["list-item-content__subname",{"list-item-content__subname--bold":t.bold}])},[r(e.$slots,"subname",{},void 0,!0)],2)):c("",!0)]),d("div",J,[i.showDetails?(a(),l("div",P,[r(e.$slots,"details",{},()=>[A(u(t.details),1)],!0)])):c("",!0),t.counterNumber!==0||n.hasIndicator?x((a(),l("div",Q,[t.counterNumber!==0?(a(),g(p,{key:0,count:t.counterNumber,active:t.active??m,class:"list-item-details__counter",type:t.counterType},null,8,["count","active","type"])):c("",!0),n.hasIndicator?(a(),l("span",R,[r(e.$slots,"indicator",{},void 0,!0)])):c("",!0)],512)),[[D,i.showAdditionalElements]]):c("",!0)])])],40,E),e.$slots["extra-actions"]?(a(),l("div",W,[r(e.$slots,"extra-actions",{},void 0,!0)])):c("",!0),t.forceDisplayActions||n.displayActionsOnHoverFocus?(a(),l("div",{key:1,class:"list-item-content__actions",onFocusout:s[3]||(s[3]=(...o)=>i.handleBlur&&i.handleBlur(...o))},[H(N,{ref:"actions",primary:t.active??m,"force-menu":t.forceMenu,"aria-label":t.actionsAriaLabel,"onUpdate:open":i.handleActionsUpdateOpen},M({default:v(()=>[r(e.$slots,"actions",{},void 0,!0)]),_:2},[e.$slots["actions-icon"]?{name:"icon",fn:v(()=>[r(e.$slots,"actions-icon",{},void 0,!0)]),key:"0"}:void 0]),1032,["primary","force-menu","aria-label","onUpdate:open"])],32)):c("",!0),e.$slots.extra?(a(),l("div",X,[r(e.$slots,"extra",{},void 0,!0)])):c("",!0)],34)],16)]),_:3},16)}const ut=w(j,[["render",Y],["__scopeId","data-v-532f3807"]]),ht='',tt={name:"TrayArrowDownIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},et=["aria-hidden","aria-label"],st=["fill","width","height"],it={d:"M2 12H4V17H20V12H22V17C22 18.11 21.11 19 20 19H4C2.9 19 2 18.11 2 17V12M12 15L17.55 9.54L16.13 8.13L13 11.25V2H11V11.25L7.88 8.13L6.46 9.55L12 15Z"},ot={key:0};function at(e,s,t,h,n,i){return a(),l("span",$(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon tray-arrow-down-icon",role:"img",onClick:s[0]||(s[0]=p=>e.$emit("click",p))}),[(a(),l("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[d("path",it,[t.title?(a(),l("title",ot,u(t.title),1)):c("",!0)])],8,st))],16,et)}const pt=V(tt,[["render",at]]);export{pt as D,ut as N,ht as s}; -//# sourceMappingURL=TrayArrowDown-DV7s2Yis.chunk.mjs.map diff --git a/dist/mdi-BYHcrfvW.chunk.css b/dist/Web-BYHcrfvW.chunk.css similarity index 100% rename from dist/mdi-BYHcrfvW.chunk.css rename to dist/Web-BYHcrfvW.chunk.css diff --git a/dist/Web-aYJacExm.chunk.mjs b/dist/Web-aYJacExm.chunk.mjs new file mode 100644 index 0000000000000..e34e765f70964 --- /dev/null +++ b/dist/Web-aYJacExm.chunk.mjs @@ -0,0 +1,2 @@ +import{_ as d}from"./createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs";import{b as p,x as g,j as i,o as l,k as o,l as n,t as s,z as m}from"./runtime-dom.esm-bundler-DdtEg5E9.chunk.mjs";import{a as u}from"./index-DCpg1aui.chunk.mjs";const h=["aria-label"],f=["width","height"],H=["fill"],M=["fill"],v={key:0},b=p({__name:"NcLoadingIcon",props:{appearance:{default:"auto"},name:{default:""},size:{default:20}},setup(r){const t=r,a=g(()=>{const e=["#777","#CCC"];return t.appearance==="light"?e:t.appearance==="dark"?e.reverse():["var(--color-loading-light)","var(--color-loading-dark)"]});return(e,c)=>(l(),i("span",{"aria-label":e.name,role:"img",class:"material-design-icon loading-icon"},[(l(),i("svg",{width:e.size,height:e.size,viewBox:"0 0 24 24"},[o("path",{fill:a.value[0],d:"M12,4V2A10,10 0 1,0 22,12H20A8,8 0 1,1 12,4Z"},null,8,H),o("path",{fill:a.value[1],d:"M12,4V2A10,10 0 0,1 22,12H20A8,8 0 0,0 12,4Z"},[e.name?(l(),i("title",v,s(e.name),1)):n("",!0)],8,M)],8,f))],8,h))}}),V=d(b,[["__scopeId","data-v-cf399190"]]),k={name:"WebIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},w=["aria-hidden","aria-label"],z=["fill","width","height"],A={d:"M16.36,14C16.44,13.34 16.5,12.68 16.5,12C16.5,11.32 16.44,10.66 16.36,10H19.74C19.9,10.64 20,11.31 20,12C20,12.69 19.9,13.36 19.74,14M14.59,19.56C15.19,18.45 15.65,17.25 15.97,16H18.92C17.96,17.65 16.43,18.93 14.59,19.56M14.34,14H9.66C9.56,13.34 9.5,12.68 9.5,12C9.5,11.32 9.56,10.65 9.66,10H14.34C14.43,10.65 14.5,11.32 14.5,12C14.5,12.68 14.43,13.34 14.34,14M12,19.96C11.17,18.76 10.5,17.43 10.09,16H13.91C13.5,17.43 12.83,18.76 12,19.96M8,8H5.08C6.03,6.34 7.57,5.06 9.4,4.44C8.8,5.55 8.35,6.75 8,8M5.08,16H8C8.35,17.25 8.8,18.45 9.4,19.56C7.57,18.93 6.03,17.65 5.08,16M4.26,14C4.1,13.36 4,12.69 4,12C4,11.31 4.1,10.64 4.26,10H7.64C7.56,10.66 7.5,11.32 7.5,12C7.5,12.68 7.56,13.34 7.64,14M12,4.03C12.83,5.23 13.5,6.57 13.91,8H10.09C10.5,6.57 11.17,5.23 12,4.03M18.92,8H15.97C15.65,6.75 15.19,5.55 14.59,4.44C16.43,5.07 17.96,6.34 18.92,8M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z"},_={key:0};function y(r,t,a,e,c,x){return l(),i("span",m(r.$attrs,{"aria-hidden":a.title?null:"true","aria-label":a.title,class:"material-design-icon web-icon",role:"img",onClick:t[0]||(t[0]=C=>r.$emit("click",C))}),[(l(),i("svg",{fill:a.fillColor,class:"material-design-icon__svg",width:a.size,height:a.size,viewBox:"0 0 24 24"},[o("path",A,[a.title?(l(),i("title",_,s(a.title),1)):n("",!0)])],8,z))],16,w)}const Z=u(k,[["render",y]]);export{V as N,Z as W}; +//# sourceMappingURL=Web-aYJacExm.chunk.mjs.map diff --git a/dist/colors-Go3zmZRD-DU6ImAGi.chunk.mjs.license b/dist/Web-aYJacExm.chunk.mjs.license similarity index 73% rename from dist/colors-Go3zmZRD-DU6ImAGi.chunk.mjs.license rename to dist/Web-aYJacExm.chunk.mjs.license index eadee349d1ecf..0fb410161c47c 100644 --- a/dist/colors-Go3zmZRD-DU6ImAGi.chunk.mjs.license +++ b/dist/Web-aYJacExm.chunk.mjs.license @@ -1,12 +1,12 @@ SPDX-License-Identifier: AGPL-3.0-or-later SPDX-License-Identifier: MIT -SPDX-FileCopyrightText: Eduardo San Martin Morote SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors +SPDX-FileCopyrightText: Rob Cresswell This file is generated from multiple sources. Included packages: - @nextcloud/vue - version: 9.3.1 - license: AGPL-3.0-or-later -- vue-router - - version: 4.6.3 +- vue-material-design-icons + - version: 5.3.1 - license: MIT diff --git a/dist/Web-aYJacExm.chunk.mjs.map b/dist/Web-aYJacExm.chunk.mjs.map new file mode 100644 index 0000000000000..048201c98f949 --- /dev/null +++ b/dist/Web-aYJacExm.chunk.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"Web-aYJacExm.chunk.mjs","sources":["../node_modules/@nextcloud/vue/dist/chunks/NcLoadingIcon-b_ajZ_nQ.mjs","../node_modules/vue-material-design-icons/Web.vue"],"sourcesContent":["import '../assets/NcLoadingIcon-CWUlo4XY.css';\nimport { defineComponent, computed, createElementBlock, openBlock, createElementVNode, createCommentVNode, toDisplayString } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = [\"aria-label\"];\nconst _hoisted_2 = [\"width\", \"height\"];\nconst _hoisted_3 = [\"fill\"];\nconst _hoisted_4 = [\"fill\"];\nconst _hoisted_5 = { key: 0 };\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcLoadingIcon\",\n props: {\n appearance: { default: \"auto\" },\n name: { default: \"\" },\n size: { default: 20 }\n },\n setup(__props) {\n const props = __props;\n const colors = computed(() => {\n const colors2 = [\"#777\", \"#CCC\"];\n if (props.appearance === \"light\") {\n return colors2;\n } else if (props.appearance === \"dark\") {\n return colors2.reverse();\n }\n return [\"var(--color-loading-light)\", \"var(--color-loading-dark)\"];\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"span\", {\n \"aria-label\": _ctx.name,\n role: \"img\",\n class: \"material-design-icon loading-icon\"\n }, [\n (openBlock(), createElementBlock(\"svg\", {\n width: _ctx.size,\n height: _ctx.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", {\n fill: colors.value[0],\n d: \"M12,4V2A10,10 0 1,0 22,12H20A8,8 0 1,1 12,4Z\"\n }, null, 8, _hoisted_3),\n createElementVNode(\"path\", {\n fill: colors.value[1],\n d: \"M12,4V2A10,10 0 0,1 22,12H20A8,8 0 0,0 12,4Z\"\n }, [\n _ctx.name ? (openBlock(), createElementBlock(\"title\", _hoisted_5, toDisplayString(_ctx.name), 1)) : createCommentVNode(\"\", true)\n ], 8, _hoisted_4)\n ], 8, _hoisted_2))\n ], 8, _hoisted_1);\n };\n }\n});\nconst NcLoadingIcon = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-cf399190\"]]);\nexport {\n NcLoadingIcon as N\n};\n//# sourceMappingURL=NcLoadingIcon-b_ajZ_nQ.mjs.map\n","\n\n"],"names":["_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_sfc_main","defineComponent","__props","props","colors","computed","colors2","_ctx","_cache","openBlock","createElementBlock","createElementVNode","toDisplayString","createCommentVNode","NcLoadingIcon","_export_sfc","_createElementBlock","_mergeProps","$props","$event","_createElementVNode","_openBlock"],"mappings":"mOAGA,MAAMA,EAAa,CAAC,YAAY,EAC1BC,EAAa,CAAC,QAAS,QAAQ,EAC/BC,EAAa,CAAC,MAAM,EACpBC,EAAa,CAAC,MAAM,EACpBC,EAAa,CAAE,IAAK,CAAC,EACrBC,EAA4BC,EAAgB,CAChD,OAAQ,gBACR,MAAO,CACL,WAAY,CAAE,QAAS,MAAM,EAC7B,KAAM,CAAE,QAAS,EAAE,EACnB,KAAM,CAAE,QAAS,EAAE,CACvB,EACE,MAAMC,EAAS,CACb,MAAMC,EAAQD,EACRE,EAASC,EAAS,IAAM,CAC5B,MAAMC,EAAU,CAAC,OAAQ,MAAM,EAC/B,OAAIH,EAAM,aAAe,QAChBG,EACEH,EAAM,aAAe,OACvBG,EAAQ,QAAO,EAEjB,CAAC,6BAA8B,2BAA2B,CACnE,CAAC,EACD,MAAO,CAACC,EAAMC,KACLC,EAAS,EAAIC,EAAmB,OAAQ,CAC7C,aAAcH,EAAK,KACnB,KAAM,MACN,MAAO,mCACf,EAAS,EACAE,EAAS,EAAIC,EAAmB,MAAO,CACtC,MAAOH,EAAK,KACZ,OAAQA,EAAK,KACb,QAAS,WACnB,EAAW,CACDI,EAAmB,OAAQ,CACzB,KAAMP,EAAO,MAAM,CAAC,EACpB,EAAG,8CACf,EAAa,KAAM,EAAGP,CAAU,EACtBc,EAAmB,OAAQ,CACzB,KAAMP,EAAO,MAAM,CAAC,EACpB,EAAG,8CACf,EAAa,CACDG,EAAK,MAAQE,EAAS,EAAIC,EAAmB,QAASX,EAAYa,EAAgBL,EAAK,IAAI,EAAG,CAAC,GAAKM,EAAmB,GAAI,EAAI,CAC3I,EAAa,EAAGf,CAAU,CAC1B,EAAW,EAAGF,CAAU,EACxB,EAAS,EAAGD,CAAU,EAEpB,CACF,CAAC,EACKmB,EAAgCC,EAAYf,EAAW,CAAC,CAAC,YAAa,iBAAiB,CAAC,CAAC,EChC1FA,EAAU,CACb,KAAM,UACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,QAER,UAAW,CACT,KAAM,OACN,QAAS,gBAEX,KAAM,CACJ,KAAM,OACN,QAAS,EACX,CACF,CACF,6DAxBYH,EAAA,CAAA,EAAE,s5BAAs5B,+CAXl6BmB,EAeO,OAfPC,EAAcV,EAAA,OAAM,CACb,cAAaW,EAAA,MAAK,KAAA,OAClB,aAAYA,EAAA,MACb,MAAM,gCACN,KAAK,MACJ,QAAKV,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAW,GAAEZ,EAAA,MAAK,QAAUY,CAAM,WACjCH,EAQM,MAAA,CARA,KAAME,EAAA,UACP,MAAM,4BACL,MAAOA,EAAA,KACP,OAAQA,EAAA,KACT,QAAQ,cACXE,EAEO,OAFPvB,EAEO,CADQqB,EAAA,OAAbG,EAAA,EAAAL,EAAuC,YAAhBE,EAAA,KAAK,EAAA,CAAA","x_google_ignoreList":[0,1]} \ No newline at end of file diff --git a/dist/colors-Go3zmZRD-DU6ImAGi.chunk.mjs.map.license b/dist/Web-aYJacExm.chunk.mjs.map.license similarity index 73% rename from dist/colors-Go3zmZRD-DU6ImAGi.chunk.mjs.map.license rename to dist/Web-aYJacExm.chunk.mjs.map.license index eadee349d1ecf..0fb410161c47c 100644 --- a/dist/colors-Go3zmZRD-DU6ImAGi.chunk.mjs.map.license +++ b/dist/Web-aYJacExm.chunk.mjs.map.license @@ -1,12 +1,12 @@ SPDX-License-Identifier: AGPL-3.0-or-later SPDX-License-Identifier: MIT -SPDX-FileCopyrightText: Eduardo San Martin Morote SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors +SPDX-FileCopyrightText: Rob Cresswell This file is generated from multiple sources. Included packages: - @nextcloud/vue - version: 9.3.1 - license: AGPL-3.0-or-later -- vue-router - - version: 4.6.3 +- vue-material-design-icons + - version: 5.3.1 - license: MIT diff --git a/dist/colors-Go3zmZRD-DNxaZwS4.chunk.mjs b/dist/colors-Go3zmZRD-DNxaZwS4.chunk.mjs new file mode 100644 index 0000000000000..7416af405093c --- /dev/null +++ b/dist/colors-Go3zmZRD-DNxaZwS4.chunk.mjs @@ -0,0 +1,2 @@ +import{r as f,t as m,b as e}from"./createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs";f(m);class t{constructor(n,o,s,i){this.r=n,this.g=o,this.b=s,this.name=i,this.r=Math.min(n,255),this.g=Math.min(o,255),this.b=Math.min(s,255),this.name=i}get color(){const n=o=>`00${o.toString(16)}`.slice(-2);return`#${n(this.r)}${n(this.g)}${n(this.b)}`}}function p(r,n,o){return{r:(o.r-n.r)/r,g:(o.g-n.g)/r,b:(o.b-n.b)/r}}function h(r,n,o){const s=[];s.push(n);const i=p(r,n,o);for(let c=1;c `00${int.toString(16)}`.slice(-2);\n return `#${toHex(this.r)}${toHex(this.g)}${toHex(this.b)}`;\n }\n}\nfunction calculateStepIncrement(steps, color1, color2) {\n return {\n r: (color2.r - color1.r) / steps,\n g: (color2.g - color1.g) / steps,\n b: (color2.b - color1.b) / steps\n };\n}\nfunction mixPalette(steps, color1, color2) {\n const palette = [];\n palette.push(color1);\n const increment = calculateStepIncrement(steps, color1, color2);\n for (let i = 1; i < steps; i++) {\n const r = Math.floor(color1.r + increment.r * i);\n const g = Math.floor(color1.g + increment.g * i);\n const b = Math.floor(color1.b + increment.b * i);\n palette.push(new Color(r, g, b));\n }\n return palette;\n}\nconst COLOR_RED = new Color(182, 70, 157, t(\"Purple\"));\nconst COLOR_YELLOW = new Color(221, 203, 85, t(\"Gold\"));\nconst COLOR_BLUE = new Color(0, 130, 201, t(\"Nextcloud blue\"));\nconst COLOR_BLACK = new Color(0, 0, 0, t(\"Black\"));\nconst COLOR_WHITE = new Color(255, 255, 255, t(\"White\"));\nconst defaultPalette = [\n /* eslint-disable @stylistic/function-call-argument-newline -- Allow to put translators comments */\n COLOR_RED,\n new Color(\n 191,\n 103,\n 139,\n t(\"Rosy brown\")\n // TRANSLATORS: A color name for RGB(191, 103, 139)\n ),\n new Color(\n 201,\n 136,\n 121,\n t(\"Feldspar\")\n // TRANSLATORS: A color name for RGB(201, 136, 121)\n ),\n new Color(\n 211,\n 169,\n 103,\n t(\"Whiskey\")\n // TRANSLATORS: A color name for RGB(211, 169, 103)\n ),\n COLOR_YELLOW,\n new Color(\n 165,\n 184,\n 114,\n t(\"Olivine\")\n // TRANSLATORS: A color name for RGB(165, 184, 114)\n ),\n new Color(\n 110,\n 166,\n 143,\n t(\"Acapulco\")\n // TRANSLATORS: A color name for RGB(110, 166, 143)\n ),\n new Color(\n 55,\n 148,\n 172,\n t(\"Boston Blue\")\n // TRANSLATORS: A color name for RGB(55, 148, 172)\n ),\n COLOR_BLUE,\n new Color(\n 45,\n 115,\n 190,\n t(\"Mariner\")\n // TRANSLATORS: A color name for RGB(45, 115, 190)\n ),\n new Color(\n 91,\n 100,\n 179,\n t(\"Blue Violet\")\n // TRANSLATORS: A color name for RGB(91, 100, 179)\n ),\n new Color(\n 136,\n 85,\n 168,\n t(\"Deluge\")\n // TRANSLATORS: A color name for RGB(136, 85, 168)\n )\n /* eslint-enable @stylistic/function-call-argument-newline */\n];\nfunction generatePalette(steps) {\n const palette1 = mixPalette(steps, COLOR_RED, COLOR_YELLOW);\n const palette2 = mixPalette(steps, COLOR_YELLOW, COLOR_BLUE);\n const palette3 = mixPalette(steps, COLOR_BLUE, COLOR_RED);\n return palette1.concat(palette2).concat(palette3);\n}\nexport {\n Color as C,\n COLOR_BLACK as a,\n COLOR_WHITE as b,\n defaultPalette as d,\n generatePalette as g\n};\n//# sourceMappingURL=colors-Go3zmZRD.mjs.map\n"],"names":["register","t3","Color","r","g","b","name","toHex","int","calculateStepIncrement","steps","color1","color2","mixPalette","palette","increment","i","COLOR_RED","t","COLOR_YELLOW","COLOR_BLUE","COLOR_BLACK","COLOR_WHITE","defaultPalette","generatePalette","palette1","palette2","palette3"],"mappings":"gFACAA,EAASC,CAAE,EACX,MAAMC,CAAM,CAOV,YAAYC,EAAGC,EAAGC,EAAGC,EAAM,CACzB,KAAK,EAAIH,EACT,KAAK,EAAIC,EACT,KAAK,EAAIC,EACT,KAAK,KAAOC,EACZ,KAAK,EAAI,KAAK,IAAIH,EAAG,GAAG,EACxB,KAAK,EAAI,KAAK,IAAIC,EAAG,GAAG,EACxB,KAAK,EAAI,KAAK,IAAIC,EAAG,GAAG,EACxB,KAAK,KAAOC,CACd,CAIA,IAAI,OAAQ,CACV,MAAMC,EAASC,GAAQ,KAAKA,EAAI,SAAS,EAAE,CAAC,GAAG,MAAM,EAAE,EACvD,MAAO,IAAID,EAAM,KAAK,CAAC,CAAC,GAAGA,EAAM,KAAK,CAAC,CAAC,GAAGA,EAAM,KAAK,CAAC,CAAC,EAC1D,CACF,CACA,SAASE,EAAuBC,EAAOC,EAAQC,EAAQ,CACrD,MAAO,CACL,GAAIA,EAAO,EAAID,EAAO,GAAKD,EAC3B,GAAIE,EAAO,EAAID,EAAO,GAAKD,EAC3B,GAAIE,EAAO,EAAID,EAAO,GAAKD,CAC/B,CACA,CACA,SAASG,EAAWH,EAAOC,EAAQC,EAAQ,CACzC,MAAME,EAAU,CAAA,EAChBA,EAAQ,KAAKH,CAAM,EACnB,MAAMI,EAAYN,EAAuBC,EAAOC,EAAQC,CAAM,EAC9D,QAASI,EAAI,EAAGA,EAAIN,EAAOM,IAAK,CAC9B,MAAMb,EAAI,KAAK,MAAMQ,EAAO,EAAII,EAAU,EAAIC,CAAC,EACzCZ,EAAI,KAAK,MAAMO,EAAO,EAAII,EAAU,EAAIC,CAAC,EACzCX,EAAI,KAAK,MAAMM,EAAO,EAAII,EAAU,EAAIC,CAAC,EAC/CF,EAAQ,KAAK,IAAIZ,EAAMC,EAAGC,EAAGC,CAAC,CAAC,CACjC,CACA,OAAOS,CACT,CACA,MAAMG,EAAY,IAAIf,EAAM,IAAK,GAAI,IAAKgB,EAAE,QAAQ,CAAC,EAC/CC,EAAe,IAAIjB,EAAM,IAAK,IAAK,GAAIgB,EAAE,MAAM,CAAC,EAChDE,EAAa,IAAIlB,EAAM,EAAG,IAAK,IAAKgB,EAAE,gBAAgB,CAAC,EACvDG,EAAc,IAAInB,EAAM,EAAG,EAAG,EAAGgB,EAAE,OAAO,CAAC,EAC3CI,EAAc,IAAIpB,EAAM,IAAK,IAAK,IAAKgB,EAAE,OAAO,CAAC,EACjDK,EAAiB,CAErBN,EACA,IAAIf,EACF,IACA,IACA,IACAgB,EAAE,YAAY,CAElB,EACE,IAAIhB,EACF,IACA,IACA,IACAgB,EAAE,UAAU,CAEhB,EACE,IAAIhB,EACF,IACA,IACA,IACAgB,EAAE,SAAS,CAEf,EACEC,EACA,IAAIjB,EACF,IACA,IACA,IACAgB,EAAE,SAAS,CAEf,EACE,IAAIhB,EACF,IACA,IACA,IACAgB,EAAE,UAAU,CAEhB,EACE,IAAIhB,EACF,GACA,IACA,IACAgB,EAAE,aAAa,CAEnB,EACEE,EACA,IAAIlB,EACF,GACA,IACA,IACAgB,EAAE,SAAS,CAEf,EACE,IAAIhB,EACF,GACA,IACA,IACAgB,EAAE,aAAa,CAEnB,EACE,IAAIhB,EACF,IACA,GACA,IACAgB,EAAE,QAAQ,CAEd,CAEA,EACA,SAASM,EAAgBd,EAAO,CAC9B,MAAMe,EAAWZ,EAAWH,EAAOO,EAAWE,CAAY,EACpDO,EAAWb,EAAWH,EAAOS,EAAcC,CAAU,EACrDO,EAAWd,EAAWH,EAAOU,EAAYH,CAAS,EACxD,OAAOQ,EAAS,OAAOC,CAAQ,EAAE,OAAOC,CAAQ,CAClD","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/dist/index-BZk0T9Q-.chunk.mjs.map.license b/dist/colors-Go3zmZRD-DNxaZwS4.chunk.mjs.map.license similarity index 100% rename from dist/index-BZk0T9Q-.chunk.mjs.map.license rename to dist/colors-Go3zmZRD-DNxaZwS4.chunk.mjs.map.license diff --git a/dist/colors-Go3zmZRD-DU6ImAGi.chunk.mjs b/dist/colors-Go3zmZRD-DU6ImAGi.chunk.mjs deleted file mode 100644 index a52cabaed3c9d..0000000000000 --- a/dist/colors-Go3zmZRD-DU6ImAGi.chunk.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import{r as T,p as E,q as k,s as O,t as S,u as V}from"./NcNoteCard-CVhtNL04-hwuc093N.chunk.mjs";import{b as D,I as K,M as b,x as l,a7 as $,u as m}from"./runtime-dom.esm-bundler-BrYCUcZF.chunk.mjs";import{r as I,o as P,t as i}from"./createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs";function y(e){const t=b(T),n=b(E),r=l(()=>{const c=m(e.to);return t.resolve(c)}),a=l(()=>{const{matched:c}=r.value,{length:u}=c,p=c[u-1],h=n.matched;if(!p||!h.length)return-1;const v=h.findIndex(k.bind(null,p));if(v>-1)return v;const C=M(c[u-2]);return u>1&&M(p)===C&&h[h.length-1].path!==C?h.findIndex(k.bind(null,c[u-2])):v}),o=l(()=>a.value>-1&&W(n.params,r.value.params)),f=l(()=>a.value>-1&&a.value===n.matched.length-1&&O(n.params,r.value.params));function g(c={}){if(L(c)){const u=t[m(e.replace)?"replace":"push"](m(e.to)).catch(V);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:r,href:l(()=>r.value.href),isActive:o,isExactActive:f,navigate:g}}function R(e){return e.length===1?e[0]:e}const q=D({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:y,setup(e,{slots:t}){const n=K(y(e)),{options:r}=b(T),a=l(()=>({[B(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[B(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&R(t.default(n));return e.custom?o:$("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:a.value},o)}}}),_=q;function L(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function W(e,t){for(const n in t){const r=t[n],a=e[n];if(typeof r=="string"){if(r!==a)return!1}else if(!S(a)||a.length!==r.length||r.some((o,f)=>o!==a[f]))return!1}return!0}function M(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const B=(e,t,n)=>e??t??n;I(P);class s{constructor(t,n,r,a){this.r=t,this.g=n,this.b=r,this.name=a,this.r=Math.min(t,255),this.g=Math.min(n,255),this.b=Math.min(r,255),this.name=a}get color(){const t=n=>`00${n.toString(16)}`.slice(-2);return`#${t(this.r)}${t(this.g)}${t(this.b)}`}}function j(e,t,n){return{r:(n.r-t.r)/e,g:(n.g-t.g)/e,b:(n.b-t.b)/e}}function d(e,t,n){const r=[];r.push(t);const a=j(e,t,n);for(let o=1;o location.protocol + \"//\" + location.host;\n/**\n* Creates a normalized history location from a window.location object\n* @param base - The base path\n* @param location - The window.location object\n*/\nfunction createCurrentLocation(base, location$1) {\n\tconst { pathname, search, hash } = location$1;\n\tconst hashPos = base.indexOf(\"#\");\n\tif (hashPos > -1) {\n\t\tlet slicePos = hash.includes(base.slice(hashPos)) ? base.slice(hashPos).length : 1;\n\t\tlet pathFromHash = hash.slice(slicePos);\n\t\tif (pathFromHash[0] !== \"/\") pathFromHash = \"/\" + pathFromHash;\n\t\treturn stripBase(pathFromHash, \"\");\n\t}\n\treturn stripBase(pathname, base) + search + hash;\n}\nfunction useHistoryListeners(base, historyState, currentLocation, replace) {\n\tlet listeners = [];\n\tlet teardowns = [];\n\tlet pauseState = null;\n\tconst popStateHandler = ({ state }) => {\n\t\tconst to = createCurrentLocation(base, location);\n\t\tconst from = currentLocation.value;\n\t\tconst fromState = historyState.value;\n\t\tlet delta = 0;\n\t\tif (state) {\n\t\t\tcurrentLocation.value = to;\n\t\t\thistoryState.value = state;\n\t\t\tif (pauseState && pauseState === from) {\n\t\t\t\tpauseState = null;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tdelta = fromState ? state.position - fromState.position : 0;\n\t\t} else replace(to);\n\t\tlisteners.forEach((listener) => {\n\t\t\tlistener(currentLocation.value, from, {\n\t\t\t\tdelta,\n\t\t\t\ttype: NavigationType.pop,\n\t\t\t\tdirection: delta ? delta > 0 ? NavigationDirection.forward : NavigationDirection.back : NavigationDirection.unknown\n\t\t\t});\n\t\t});\n\t};\n\tfunction pauseListeners() {\n\t\tpauseState = currentLocation.value;\n\t}\n\tfunction listen(callback) {\n\t\tlisteners.push(callback);\n\t\tconst teardown = () => {\n\t\t\tconst index = listeners.indexOf(callback);\n\t\t\tif (index > -1) listeners.splice(index, 1);\n\t\t};\n\t\tteardowns.push(teardown);\n\t\treturn teardown;\n\t}\n\tfunction beforeUnloadListener() {\n\t\tif (document.visibilityState === \"hidden\") {\n\t\t\tconst { history: history$1 } = window;\n\t\t\tif (!history$1.state) return;\n\t\t\thistory$1.replaceState(assign({}, history$1.state, { scroll: computeScrollPosition() }), \"\");\n\t\t}\n\t}\n\tfunction destroy() {\n\t\tfor (const teardown of teardowns) teardown();\n\t\tteardowns = [];\n\t\twindow.removeEventListener(\"popstate\", popStateHandler);\n\t\twindow.removeEventListener(\"pagehide\", beforeUnloadListener);\n\t\tdocument.removeEventListener(\"visibilitychange\", beforeUnloadListener);\n\t}\n\twindow.addEventListener(\"popstate\", popStateHandler);\n\twindow.addEventListener(\"pagehide\", beforeUnloadListener);\n\tdocument.addEventListener(\"visibilitychange\", beforeUnloadListener);\n\treturn {\n\t\tpauseListeners,\n\t\tlisten,\n\t\tdestroy\n\t};\n}\n/**\n* Creates a state object\n*/\nfunction buildState(back, current, forward, replaced = false, computeScroll = false) {\n\treturn {\n\t\tback,\n\t\tcurrent,\n\t\tforward,\n\t\treplaced,\n\t\tposition: window.history.length,\n\t\tscroll: computeScroll ? computeScrollPosition() : null\n\t};\n}\nfunction useHistoryStateNavigation(base) {\n\tconst { history: history$1, location: location$1 } = window;\n\tconst currentLocation = { value: createCurrentLocation(base, location$1) };\n\tconst historyState = { value: history$1.state };\n\tif (!historyState.value) changeLocation(currentLocation.value, {\n\t\tback: null,\n\t\tcurrent: currentLocation.value,\n\t\tforward: null,\n\t\tposition: history$1.length - 1,\n\t\treplaced: true,\n\t\tscroll: null\n\t}, true);\n\tfunction changeLocation(to, state, replace$1) {\n\t\t/**\n\t\t* if a base tag is provided, and we are on a normal domain, we have to\n\t\t* respect the provided `base` attribute because pushState() will use it and\n\t\t* potentially erase anything before the `#` like at\n\t\t* https://github.com/vuejs/router/issues/685 where a base of\n\t\t* `/folder/#` but a base of `/` would erase the `/folder/` section. If\n\t\t* there is no host, the `` tag makes no sense and if there isn't a\n\t\t* base tag we can just use everything after the `#`.\n\t\t*/\n\t\tconst hashIndex = base.indexOf(\"#\");\n\t\tconst url = hashIndex > -1 ? (location$1.host && document.querySelector(\"base\") ? base : base.slice(hashIndex)) + to : createBaseLocation() + base + to;\n\t\ttry {\n\t\t\thistory$1[replace$1 ? \"replaceState\" : \"pushState\"](state, \"\", url);\n\t\t\thistoryState.value = state;\n\t\t} catch (err) {\n\t\t\tif (process.env.NODE_ENV !== \"production\") warn$1(\"Error with push/replace State\", err);\n\t\t\telse console.error(err);\n\t\t\tlocation$1[replace$1 ? \"replace\" : \"assign\"](url);\n\t\t}\n\t}\n\tfunction replace(to, data) {\n\t\tchangeLocation(to, assign({}, history$1.state, buildState(historyState.value.back, to, historyState.value.forward, true), data, { position: historyState.value.position }), true);\n\t\tcurrentLocation.value = to;\n\t}\n\tfunction push(to, data) {\n\t\tconst currentState = assign({}, historyState.value, history$1.state, {\n\t\t\tforward: to,\n\t\t\tscroll: computeScrollPosition()\n\t\t});\n\t\tif (process.env.NODE_ENV !== \"production\" && !history$1.state) warn$1(\"history.state seems to have been manually replaced without preserving the necessary values. Make sure to preserve existing history state if you are manually calling history.replaceState:\\n\\nhistory.replaceState(history.state, '', url)\\n\\nYou can find more information at https://router.vuejs.org/guide/migration/#Usage-of-history-state\");\n\t\tchangeLocation(currentState.current, currentState, true);\n\t\tchangeLocation(to, assign({}, buildState(currentLocation.value, to, null), { position: currentState.position + 1 }, data), false);\n\t\tcurrentLocation.value = to;\n\t}\n\treturn {\n\t\tlocation: currentLocation,\n\t\tstate: historyState,\n\t\tpush,\n\t\treplace\n\t};\n}\n/**\n* Creates an HTML5 history. Most common history for single page applications.\n*\n* @param base -\n*/\nfunction createWebHistory(base) {\n\tbase = normalizeBase(base);\n\tconst historyNavigation = useHistoryStateNavigation(base);\n\tconst historyListeners = useHistoryListeners(base, historyNavigation.state, historyNavigation.location, historyNavigation.replace);\n\tfunction go(delta, triggerListeners = true) {\n\t\tif (!triggerListeners) historyListeners.pauseListeners();\n\t\thistory.go(delta);\n\t}\n\tconst routerHistory = assign({\n\t\tlocation: \"\",\n\t\tbase,\n\t\tgo,\n\t\tcreateHref: createHref.bind(null, base)\n\t}, historyNavigation, historyListeners);\n\tObject.defineProperty(routerHistory, \"location\", {\n\t\tenumerable: true,\n\t\tget: () => historyNavigation.location.value\n\t});\n\tObject.defineProperty(routerHistory, \"state\", {\n\t\tenumerable: true,\n\t\tget: () => historyNavigation.state.value\n\t});\n\treturn routerHistory;\n}\n\n//#endregion\n//#region src/history/memory.ts\n/**\n* Creates an in-memory based history. The main purpose of this history is to handle SSR. It starts in a special location that is nowhere.\n* It's up to the user to replace that location with the starter location by either calling `router.push` or `router.replace`.\n*\n* @param base - Base applied to all urls, defaults to '/'\n* @returns a history object that can be passed to the router constructor\n*/\nfunction createMemoryHistory(base = \"\") {\n\tlet listeners = [];\n\tlet queue = [[START, {}]];\n\tlet position = 0;\n\tbase = normalizeBase(base);\n\tfunction setLocation(location$1, state = {}) {\n\t\tposition++;\n\t\tif (position !== queue.length) queue.splice(position);\n\t\tqueue.push([location$1, state]);\n\t}\n\tfunction triggerListeners(to, from, { direction, delta }) {\n\t\tconst info = {\n\t\t\tdirection,\n\t\t\tdelta,\n\t\t\ttype: NavigationType.pop\n\t\t};\n\t\tfor (const callback of listeners) callback(to, from, info);\n\t}\n\tconst routerHistory = {\n\t\tlocation: START,\n\t\tstate: {},\n\t\tbase,\n\t\tcreateHref: createHref.bind(null, base),\n\t\treplace(to, state) {\n\t\t\tqueue.splice(position--, 1);\n\t\t\tsetLocation(to, state);\n\t\t},\n\t\tpush(to, state) {\n\t\t\tsetLocation(to, state);\n\t\t},\n\t\tlisten(callback) {\n\t\t\tlisteners.push(callback);\n\t\t\treturn () => {\n\t\t\t\tconst index = listeners.indexOf(callback);\n\t\t\t\tif (index > -1) listeners.splice(index, 1);\n\t\t\t};\n\t\t},\n\t\tdestroy() {\n\t\t\tlisteners = [];\n\t\t\tqueue = [[START, {}]];\n\t\t\tposition = 0;\n\t\t},\n\t\tgo(delta, shouldTrigger = true) {\n\t\t\tconst from = this.location;\n\t\t\tconst direction = delta < 0 ? NavigationDirection.back : NavigationDirection.forward;\n\t\t\tposition = Math.max(0, Math.min(position + delta, queue.length - 1));\n\t\t\tif (shouldTrigger) triggerListeners(this.location, from, {\n\t\t\t\tdirection,\n\t\t\t\tdelta\n\t\t\t});\n\t\t}\n\t};\n\tObject.defineProperty(routerHistory, \"location\", {\n\t\tenumerable: true,\n\t\tget: () => queue[position][0]\n\t});\n\tObject.defineProperty(routerHistory, \"state\", {\n\t\tenumerable: true,\n\t\tget: () => queue[position][1]\n\t});\n\treturn routerHistory;\n}\n\n//#endregion\n//#region src/history/hash.ts\n/**\n* Creates a hash history. Useful for web applications with no host (e.g. `file://`) or when configuring a server to\n* handle any URL is not possible.\n*\n* @param base - optional base to provide. Defaults to `location.pathname + location.search` If there is a `` tag\n* in the `head`, its value will be ignored in favor of this parameter **but note it affects all the history.pushState()\n* calls**, meaning that if you use a `` tag, it's `href` value **has to match this parameter** (ignoring anything\n* after the `#`).\n*\n* @example\n* ```js\n* // at https://example.com/folder\n* createWebHashHistory() // gives a url of `https://example.com/folder#`\n* createWebHashHistory('/folder/') // gives a url of `https://example.com/folder/#`\n* // if the `#` is provided in the base, it won't be added by `createWebHashHistory`\n* createWebHashHistory('/folder/#/app/') // gives a url of `https://example.com/folder/#/app/`\n* // you should avoid doing this because it changes the original url and breaks copying urls\n* createWebHashHistory('/other-folder/') // gives a url of `https://example.com/other-folder/#`\n*\n* // at file:///usr/etc/folder/index.html\n* // for locations with no `host`, the base is ignored\n* createWebHashHistory('/iAmIgnored') // gives a url of `file:///usr/etc/folder/index.html#`\n* ```\n*/\nfunction createWebHashHistory(base) {\n\tbase = location.host ? base || location.pathname + location.search : \"\";\n\tif (!base.includes(\"#\")) base += \"#\";\n\tif (process.env.NODE_ENV !== \"production\" && !base.endsWith(\"#/\") && !base.endsWith(\"#\")) warn$1(`A hash base must end with a \"#\":\\n\"${base}\" should be \"${base.replace(/#.*$/, \"#\")}\".`);\n\treturn createWebHistory(base);\n}\n\n//#endregion\n//#region src/matcher/pathTokenizer.ts\nlet TokenType = /* @__PURE__ */ function(TokenType$1) {\n\tTokenType$1[TokenType$1[\"Static\"] = 0] = \"Static\";\n\tTokenType$1[TokenType$1[\"Param\"] = 1] = \"Param\";\n\tTokenType$1[TokenType$1[\"Group\"] = 2] = \"Group\";\n\treturn TokenType$1;\n}({});\nvar TokenizerState = /* @__PURE__ */ function(TokenizerState$1) {\n\tTokenizerState$1[TokenizerState$1[\"Static\"] = 0] = \"Static\";\n\tTokenizerState$1[TokenizerState$1[\"Param\"] = 1] = \"Param\";\n\tTokenizerState$1[TokenizerState$1[\"ParamRegExp\"] = 2] = \"ParamRegExp\";\n\tTokenizerState$1[TokenizerState$1[\"ParamRegExpEnd\"] = 3] = \"ParamRegExpEnd\";\n\tTokenizerState$1[TokenizerState$1[\"EscapeNext\"] = 4] = \"EscapeNext\";\n\treturn TokenizerState$1;\n}(TokenizerState || {});\nconst ROOT_TOKEN = {\n\ttype: TokenType.Static,\n\tvalue: \"\"\n};\nconst VALID_PARAM_RE = /[a-zA-Z0-9_]/;\nfunction tokenizePath(path) {\n\tif (!path) return [[]];\n\tif (path === \"/\") return [[ROOT_TOKEN]];\n\tif (!path.startsWith(\"/\")) throw new Error(process.env.NODE_ENV !== \"production\" ? `Route paths should start with a \"/\": \"${path}\" should be \"/${path}\".` : `Invalid path \"${path}\"`);\n\tfunction crash(message) {\n\t\tthrow new Error(`ERR (${state})/\"${buffer}\": ${message}`);\n\t}\n\tlet state = TokenizerState.Static;\n\tlet previousState = state;\n\tconst tokens = [];\n\tlet segment;\n\tfunction finalizeSegment() {\n\t\tif (segment) tokens.push(segment);\n\t\tsegment = [];\n\t}\n\tlet i = 0;\n\tlet char;\n\tlet buffer = \"\";\n\tlet customRe = \"\";\n\tfunction consumeBuffer() {\n\t\tif (!buffer) return;\n\t\tif (state === TokenizerState.Static) segment.push({\n\t\t\ttype: TokenType.Static,\n\t\t\tvalue: buffer\n\t\t});\n\t\telse if (state === TokenizerState.Param || state === TokenizerState.ParamRegExp || state === TokenizerState.ParamRegExpEnd) {\n\t\t\tif (segment.length > 1 && (char === \"*\" || char === \"+\")) crash(`A repeatable param (${buffer}) must be alone in its segment. eg: '/:ids+.`);\n\t\t\tsegment.push({\n\t\t\t\ttype: TokenType.Param,\n\t\t\t\tvalue: buffer,\n\t\t\t\tregexp: customRe,\n\t\t\t\trepeatable: char === \"*\" || char === \"+\",\n\t\t\t\toptional: char === \"*\" || char === \"?\"\n\t\t\t});\n\t\t} else crash(\"Invalid state to consume buffer\");\n\t\tbuffer = \"\";\n\t}\n\tfunction addCharToBuffer() {\n\t\tbuffer += char;\n\t}\n\twhile (i < path.length) {\n\t\tchar = path[i++];\n\t\tif (char === \"\\\\\" && state !== TokenizerState.ParamRegExp) {\n\t\t\tpreviousState = state;\n\t\t\tstate = TokenizerState.EscapeNext;\n\t\t\tcontinue;\n\t\t}\n\t\tswitch (state) {\n\t\t\tcase TokenizerState.Static:\n\t\t\t\tif (char === \"/\") {\n\t\t\t\t\tif (buffer) consumeBuffer();\n\t\t\t\t\tfinalizeSegment();\n\t\t\t\t} else if (char === \":\") {\n\t\t\t\t\tconsumeBuffer();\n\t\t\t\t\tstate = TokenizerState.Param;\n\t\t\t\t} else addCharToBuffer();\n\t\t\t\tbreak;\n\t\t\tcase TokenizerState.EscapeNext:\n\t\t\t\taddCharToBuffer();\n\t\t\t\tstate = previousState;\n\t\t\t\tbreak;\n\t\t\tcase TokenizerState.Param:\n\t\t\t\tif (char === \"(\") state = TokenizerState.ParamRegExp;\n\t\t\t\telse if (VALID_PARAM_RE.test(char)) addCharToBuffer();\n\t\t\t\telse {\n\t\t\t\t\tconsumeBuffer();\n\t\t\t\t\tstate = TokenizerState.Static;\n\t\t\t\t\tif (char !== \"*\" && char !== \"?\" && char !== \"+\") i--;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase TokenizerState.ParamRegExp:\n\t\t\t\tif (char === \")\") if (customRe[customRe.length - 1] == \"\\\\\") customRe = customRe.slice(0, -1) + char;\n\t\t\t\telse state = TokenizerState.ParamRegExpEnd;\n\t\t\t\telse customRe += char;\n\t\t\t\tbreak;\n\t\t\tcase TokenizerState.ParamRegExpEnd:\n\t\t\t\tconsumeBuffer();\n\t\t\t\tstate = TokenizerState.Static;\n\t\t\t\tif (char !== \"*\" && char !== \"?\" && char !== \"+\") i--;\n\t\t\t\tcustomRe = \"\";\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tcrash(\"Unknown state\");\n\t\t\t\tbreak;\n\t\t}\n\t}\n\tif (state === TokenizerState.ParamRegExp) crash(`Unfinished custom RegExp for param \"${buffer}\"`);\n\tconsumeBuffer();\n\tfinalizeSegment();\n\treturn tokens;\n}\n\n//#endregion\n//#region src/matcher/pathParserRanker.ts\nconst BASE_PARAM_PATTERN = \"[^/]+?\";\nconst BASE_PATH_PARSER_OPTIONS = {\n\tsensitive: false,\n\tstrict: false,\n\tstart: true,\n\tend: true\n};\nvar PathScore = /* @__PURE__ */ function(PathScore$1) {\n\tPathScore$1[PathScore$1[\"_multiplier\"] = 10] = \"_multiplier\";\n\tPathScore$1[PathScore$1[\"Root\"] = 90] = \"Root\";\n\tPathScore$1[PathScore$1[\"Segment\"] = 40] = \"Segment\";\n\tPathScore$1[PathScore$1[\"SubSegment\"] = 30] = \"SubSegment\";\n\tPathScore$1[PathScore$1[\"Static\"] = 40] = \"Static\";\n\tPathScore$1[PathScore$1[\"Dynamic\"] = 20] = \"Dynamic\";\n\tPathScore$1[PathScore$1[\"BonusCustomRegExp\"] = 10] = \"BonusCustomRegExp\";\n\tPathScore$1[PathScore$1[\"BonusWildcard\"] = -50] = \"BonusWildcard\";\n\tPathScore$1[PathScore$1[\"BonusRepeatable\"] = -20] = \"BonusRepeatable\";\n\tPathScore$1[PathScore$1[\"BonusOptional\"] = -8] = \"BonusOptional\";\n\tPathScore$1[PathScore$1[\"BonusStrict\"] = .7000000000000001] = \"BonusStrict\";\n\tPathScore$1[PathScore$1[\"BonusCaseSensitive\"] = .25] = \"BonusCaseSensitive\";\n\treturn PathScore$1;\n}(PathScore || {});\nconst REGEX_CHARS_RE = /[.+*?^${}()[\\]/\\\\]/g;\n/**\n* Creates a path parser from an array of Segments (a segment is an array of Tokens)\n*\n* @param segments - array of segments returned by tokenizePath\n* @param extraOptions - optional options for the regexp\n* @returns a PathParser\n*/\nfunction tokensToParser(segments, extraOptions) {\n\tconst options = assign({}, BASE_PATH_PARSER_OPTIONS, extraOptions);\n\tconst score = [];\n\tlet pattern = options.start ? \"^\" : \"\";\n\tconst keys = [];\n\tfor (const segment of segments) {\n\t\tconst segmentScores = segment.length ? [] : [PathScore.Root];\n\t\tif (options.strict && !segment.length) pattern += \"/\";\n\t\tfor (let tokenIndex = 0; tokenIndex < segment.length; tokenIndex++) {\n\t\t\tconst token = segment[tokenIndex];\n\t\t\tlet subSegmentScore = PathScore.Segment + (options.sensitive ? PathScore.BonusCaseSensitive : 0);\n\t\t\tif (token.type === TokenType.Static) {\n\t\t\t\tif (!tokenIndex) pattern += \"/\";\n\t\t\t\tpattern += token.value.replace(REGEX_CHARS_RE, \"\\\\$&\");\n\t\t\t\tsubSegmentScore += PathScore.Static;\n\t\t\t} else if (token.type === TokenType.Param) {\n\t\t\t\tconst { value, repeatable, optional, regexp } = token;\n\t\t\t\tkeys.push({\n\t\t\t\t\tname: value,\n\t\t\t\t\trepeatable,\n\t\t\t\t\toptional\n\t\t\t\t});\n\t\t\t\tconst re$1 = regexp ? regexp : BASE_PARAM_PATTERN;\n\t\t\t\tif (re$1 !== BASE_PARAM_PATTERN) {\n\t\t\t\t\tsubSegmentScore += PathScore.BonusCustomRegExp;\n\t\t\t\t\ttry {\n\t\t\t\t\t\t`${re$1}`;\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\tthrow new Error(`Invalid custom RegExp for param \"${value}\" (${re$1}): ` + err.message);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tlet subPattern = repeatable ? `((?:${re$1})(?:/(?:${re$1}))*)` : `(${re$1})`;\n\t\t\t\tif (!tokenIndex) subPattern = optional && segment.length < 2 ? `(?:/${subPattern})` : \"/\" + subPattern;\n\t\t\t\tif (optional) subPattern += \"?\";\n\t\t\t\tpattern += subPattern;\n\t\t\t\tsubSegmentScore += PathScore.Dynamic;\n\t\t\t\tif (optional) subSegmentScore += PathScore.BonusOptional;\n\t\t\t\tif (repeatable) subSegmentScore += PathScore.BonusRepeatable;\n\t\t\t\tif (re$1 === \".*\") subSegmentScore += PathScore.BonusWildcard;\n\t\t\t}\n\t\t\tsegmentScores.push(subSegmentScore);\n\t\t}\n\t\tscore.push(segmentScores);\n\t}\n\tif (options.strict && options.end) {\n\t\tconst i = score.length - 1;\n\t\tscore[i][score[i].length - 1] += PathScore.BonusStrict;\n\t}\n\tif (!options.strict) pattern += \"/?\";\n\tif (options.end) pattern += \"$\";\n\telse if (options.strict && !pattern.endsWith(\"/\")) pattern += \"(?:/|$)\";\n\tconst re = new RegExp(pattern, options.sensitive ? \"\" : \"i\");\n\tfunction parse(path) {\n\t\tconst match = path.match(re);\n\t\tconst params = {};\n\t\tif (!match) return null;\n\t\tfor (let i = 1; i < match.length; i++) {\n\t\t\tconst value = match[i] || \"\";\n\t\t\tconst key = keys[i - 1];\n\t\t\tparams[key.name] = value && key.repeatable ? value.split(\"/\") : value;\n\t\t}\n\t\treturn params;\n\t}\n\tfunction stringify(params) {\n\t\tlet path = \"\";\n\t\tlet avoidDuplicatedSlash = false;\n\t\tfor (const segment of segments) {\n\t\t\tif (!avoidDuplicatedSlash || !path.endsWith(\"/\")) path += \"/\";\n\t\t\tavoidDuplicatedSlash = false;\n\t\t\tfor (const token of segment) if (token.type === TokenType.Static) path += token.value;\n\t\t\telse if (token.type === TokenType.Param) {\n\t\t\t\tconst { value, repeatable, optional } = token;\n\t\t\t\tconst param = value in params ? params[value] : \"\";\n\t\t\t\tif (isArray(param) && !repeatable) throw new Error(`Provided param \"${value}\" is an array but it is not repeatable (* or + modifiers)`);\n\t\t\t\tconst text = isArray(param) ? param.join(\"/\") : param;\n\t\t\t\tif (!text) if (optional) {\n\t\t\t\t\tif (segment.length < 2) if (path.endsWith(\"/\")) path = path.slice(0, -1);\n\t\t\t\t\telse avoidDuplicatedSlash = true;\n\t\t\t\t} else throw new Error(`Missing required param \"${value}\"`);\n\t\t\t\tpath += text;\n\t\t\t}\n\t\t}\n\t\treturn path || \"/\";\n\t}\n\treturn {\n\t\tre,\n\t\tscore,\n\t\tkeys,\n\t\tparse,\n\t\tstringify\n\t};\n}\n/**\n* Compares an array of numbers as used in PathParser.score and returns a\n* number. This function can be used to `sort` an array\n*\n* @param a - first array of numbers\n* @param b - second array of numbers\n* @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\n* should be sorted first\n*/\nfunction compareScoreArray(a, b) {\n\tlet i = 0;\n\twhile (i < a.length && i < b.length) {\n\t\tconst diff = b[i] - a[i];\n\t\tif (diff) return diff;\n\t\ti++;\n\t}\n\tif (a.length < b.length) return a.length === 1 && a[0] === PathScore.Static + PathScore.Segment ? -1 : 1;\n\telse if (a.length > b.length) return b.length === 1 && b[0] === PathScore.Static + PathScore.Segment ? 1 : -1;\n\treturn 0;\n}\n/**\n* Compare function that can be used with `sort` to sort an array of PathParser\n*\n* @param a - first PathParser\n* @param b - second PathParser\n* @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\n*/\nfunction comparePathParserScore(a, b) {\n\tlet i = 0;\n\tconst aScore = a.score;\n\tconst bScore = b.score;\n\twhile (i < aScore.length && i < bScore.length) {\n\t\tconst comp = compareScoreArray(aScore[i], bScore[i]);\n\t\tif (comp) return comp;\n\t\ti++;\n\t}\n\tif (Math.abs(bScore.length - aScore.length) === 1) {\n\t\tif (isLastScoreNegative(aScore)) return 1;\n\t\tif (isLastScoreNegative(bScore)) return -1;\n\t}\n\treturn bScore.length - aScore.length;\n}\n/**\n* This allows detecting splats at the end of a path: /home/:id(.*)*\n*\n* @param score - score to check\n* @returns true if the last entry is negative\n*/\nfunction isLastScoreNegative(score) {\n\tconst last = score[score.length - 1];\n\treturn score.length > 0 && last[last.length - 1] < 0;\n}\nconst PATH_PARSER_OPTIONS_DEFAULTS = {\n\tstrict: false,\n\tend: true,\n\tsensitive: false\n};\n\n//#endregion\n//#region src/matcher/pathMatcher.ts\nfunction createRouteRecordMatcher(record, parent, options) {\n\tconst parser = tokensToParser(tokenizePath(record.path), options);\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\tconst existingKeys = /* @__PURE__ */ new Set();\n\t\tfor (const key of parser.keys) {\n\t\t\tif (existingKeys.has(key.name)) warn$1(`Found duplicated params with name \"${key.name}\" for path \"${record.path}\". Only the last one will be available on \"$route.params\".`);\n\t\t\texistingKeys.add(key.name);\n\t\t}\n\t}\n\tconst matcher = assign(parser, {\n\t\trecord,\n\t\tparent,\n\t\tchildren: [],\n\t\talias: []\n\t});\n\tif (parent) {\n\t\tif (!matcher.record.aliasOf === !parent.record.aliasOf) parent.children.push(matcher);\n\t}\n\treturn matcher;\n}\n\n//#endregion\n//#region src/matcher/index.ts\n/**\n* Creates a Router Matcher.\n*\n* @internal\n* @param routes - array of initial routes\n* @param globalOptions - global route options\n*/\nfunction createRouterMatcher(routes, globalOptions) {\n\tconst matchers = [];\n\tconst matcherMap = /* @__PURE__ */ new Map();\n\tglobalOptions = mergeOptions(PATH_PARSER_OPTIONS_DEFAULTS, globalOptions);\n\tfunction getRecordMatcher(name) {\n\t\treturn matcherMap.get(name);\n\t}\n\tfunction addRoute(record, parent, originalRecord) {\n\t\tconst isRootAdd = !originalRecord;\n\t\tconst mainNormalizedRecord = normalizeRouteRecord(record);\n\t\tif (process.env.NODE_ENV !== \"production\") checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent);\n\t\tmainNormalizedRecord.aliasOf = originalRecord && originalRecord.record;\n\t\tconst options = mergeOptions(globalOptions, record);\n\t\tconst normalizedRecords = [mainNormalizedRecord];\n\t\tif (\"alias\" in record) {\n\t\t\tconst aliases = typeof record.alias === \"string\" ? [record.alias] : record.alias;\n\t\t\tfor (const alias of aliases) normalizedRecords.push(normalizeRouteRecord(assign({}, mainNormalizedRecord, {\n\t\t\t\tcomponents: originalRecord ? originalRecord.record.components : mainNormalizedRecord.components,\n\t\t\t\tpath: alias,\n\t\t\t\taliasOf: originalRecord ? originalRecord.record : mainNormalizedRecord\n\t\t\t})));\n\t\t}\n\t\tlet matcher;\n\t\tlet originalMatcher;\n\t\tfor (const normalizedRecord of normalizedRecords) {\n\t\t\tconst { path } = normalizedRecord;\n\t\t\tif (parent && path[0] !== \"/\") {\n\t\t\t\tconst parentPath = parent.record.path;\n\t\t\t\tconst connectingSlash = parentPath[parentPath.length - 1] === \"/\" ? \"\" : \"/\";\n\t\t\t\tnormalizedRecord.path = parent.record.path + (path && connectingSlash + path);\n\t\t\t}\n\t\t\tif (process.env.NODE_ENV !== \"production\" && normalizedRecord.path === \"*\") throw new Error(\"Catch all routes (\\\"*\\\") must now be defined using a param with a custom regexp.\\nSee more at https://router.vuejs.org/guide/migration/#Removed-star-or-catch-all-routes.\");\n\t\t\tmatcher = createRouteRecordMatcher(normalizedRecord, parent, options);\n\t\t\tif (process.env.NODE_ENV !== \"production\" && parent && path[0] === \"/\") checkMissingParamsInAbsolutePath(matcher, parent);\n\t\t\tif (originalRecord) {\n\t\t\t\toriginalRecord.alias.push(matcher);\n\t\t\t\tif (process.env.NODE_ENV !== \"production\") checkSameParams(originalRecord, matcher);\n\t\t\t} else {\n\t\t\t\toriginalMatcher = originalMatcher || matcher;\n\t\t\t\tif (originalMatcher !== matcher) originalMatcher.alias.push(matcher);\n\t\t\t\tif (isRootAdd && record.name && !isAliasRecord(matcher)) {\n\t\t\t\t\tif (process.env.NODE_ENV !== \"production\") checkSameNameAsAncestor(record, parent);\n\t\t\t\t\tremoveRoute(record.name);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (isMatchable(matcher)) insertMatcher(matcher);\n\t\t\tif (mainNormalizedRecord.children) {\n\t\t\t\tconst children = mainNormalizedRecord.children;\n\t\t\t\tfor (let i = 0; i < children.length; i++) addRoute(children[i], matcher, originalRecord && originalRecord.children[i]);\n\t\t\t}\n\t\t\toriginalRecord = originalRecord || matcher;\n\t\t}\n\t\treturn originalMatcher ? () => {\n\t\t\tremoveRoute(originalMatcher);\n\t\t} : noop;\n\t}\n\tfunction removeRoute(matcherRef) {\n\t\tif (isRouteName(matcherRef)) {\n\t\t\tconst matcher = matcherMap.get(matcherRef);\n\t\t\tif (matcher) {\n\t\t\t\tmatcherMap.delete(matcherRef);\n\t\t\t\tmatchers.splice(matchers.indexOf(matcher), 1);\n\t\t\t\tmatcher.children.forEach(removeRoute);\n\t\t\t\tmatcher.alias.forEach(removeRoute);\n\t\t\t}\n\t\t} else {\n\t\t\tconst index = matchers.indexOf(matcherRef);\n\t\t\tif (index > -1) {\n\t\t\t\tmatchers.splice(index, 1);\n\t\t\t\tif (matcherRef.record.name) matcherMap.delete(matcherRef.record.name);\n\t\t\t\tmatcherRef.children.forEach(removeRoute);\n\t\t\t\tmatcherRef.alias.forEach(removeRoute);\n\t\t\t}\n\t\t}\n\t}\n\tfunction getRoutes() {\n\t\treturn matchers;\n\t}\n\tfunction insertMatcher(matcher) {\n\t\tconst index = findInsertionIndex(matcher, matchers);\n\t\tmatchers.splice(index, 0, matcher);\n\t\tif (matcher.record.name && !isAliasRecord(matcher)) matcherMap.set(matcher.record.name, matcher);\n\t}\n\tfunction resolve(location$1, currentLocation) {\n\t\tlet matcher;\n\t\tlet params = {};\n\t\tlet path;\n\t\tlet name;\n\t\tif (\"name\" in location$1 && location$1.name) {\n\t\t\tmatcher = matcherMap.get(location$1.name);\n\t\t\tif (!matcher) throw createRouterError(ErrorTypes.MATCHER_NOT_FOUND, { location: location$1 });\n\t\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\t\tconst invalidParams = Object.keys(location$1.params || {}).filter((paramName) => !matcher.keys.find((k) => k.name === paramName));\n\t\t\t\tif (invalidParams.length) warn$1(`Discarded invalid param(s) \"${invalidParams.join(\"\\\", \\\"\")}\" when navigating. See https://github.com/vuejs/router/blob/main/packages/router/CHANGELOG.md#414-2022-08-22 for more details.`);\n\t\t\t}\n\t\t\tname = matcher.record.name;\n\t\t\tparams = assign(pickParams(currentLocation.params, matcher.keys.filter((k) => !k.optional).concat(matcher.parent ? matcher.parent.keys.filter((k) => k.optional) : []).map((k) => k.name)), location$1.params && pickParams(location$1.params, matcher.keys.map((k) => k.name)));\n\t\t\tpath = matcher.stringify(params);\n\t\t} else if (location$1.path != null) {\n\t\t\tpath = location$1.path;\n\t\t\tif (process.env.NODE_ENV !== \"production\" && !path.startsWith(\"/\")) warn$1(`The Matcher cannot resolve relative paths but received \"${path}\". Unless you directly called \\`matcher.resolve(\"${path}\")\\`, this is probably a bug in vue-router. Please open an issue at https://github.com/vuejs/router/issues/new/choose.`);\n\t\t\tmatcher = matchers.find((m) => m.re.test(path));\n\t\t\tif (matcher) {\n\t\t\t\tparams = matcher.parse(path);\n\t\t\t\tname = matcher.record.name;\n\t\t\t}\n\t\t} else {\n\t\t\tmatcher = currentLocation.name ? matcherMap.get(currentLocation.name) : matchers.find((m) => m.re.test(currentLocation.path));\n\t\t\tif (!matcher) throw createRouterError(ErrorTypes.MATCHER_NOT_FOUND, {\n\t\t\t\tlocation: location$1,\n\t\t\t\tcurrentLocation\n\t\t\t});\n\t\t\tname = matcher.record.name;\n\t\t\tparams = assign({}, currentLocation.params, location$1.params);\n\t\t\tpath = matcher.stringify(params);\n\t\t}\n\t\tconst matched = [];\n\t\tlet parentMatcher = matcher;\n\t\twhile (parentMatcher) {\n\t\t\tmatched.unshift(parentMatcher.record);\n\t\t\tparentMatcher = parentMatcher.parent;\n\t\t}\n\t\treturn {\n\t\t\tname,\n\t\t\tpath,\n\t\t\tparams,\n\t\t\tmatched,\n\t\t\tmeta: mergeMetaFields(matched)\n\t\t};\n\t}\n\troutes.forEach((route) => addRoute(route));\n\tfunction clearRoutes() {\n\t\tmatchers.length = 0;\n\t\tmatcherMap.clear();\n\t}\n\treturn {\n\t\taddRoute,\n\t\tresolve,\n\t\tremoveRoute,\n\t\tclearRoutes,\n\t\tgetRoutes,\n\t\tgetRecordMatcher\n\t};\n}\n/**\n* Picks an object param to contain only specified keys.\n*\n* @param params - params object to pick from\n* @param keys - keys to pick\n*/\nfunction pickParams(params, keys) {\n\tconst newParams = {};\n\tfor (const key of keys) if (key in params) newParams[key] = params[key];\n\treturn newParams;\n}\n/**\n* Normalizes a RouteRecordRaw. Creates a copy\n*\n* @param record\n* @returns the normalized version\n*/\nfunction normalizeRouteRecord(record) {\n\tconst normalized = {\n\t\tpath: record.path,\n\t\tredirect: record.redirect,\n\t\tname: record.name,\n\t\tmeta: record.meta || {},\n\t\taliasOf: record.aliasOf,\n\t\tbeforeEnter: record.beforeEnter,\n\t\tprops: normalizeRecordProps(record),\n\t\tchildren: record.children || [],\n\t\tinstances: {},\n\t\tleaveGuards: /* @__PURE__ */ new Set(),\n\t\tupdateGuards: /* @__PURE__ */ new Set(),\n\t\tenterCallbacks: {},\n\t\tcomponents: \"components\" in record ? record.components || null : record.component && { default: record.component }\n\t};\n\tObject.defineProperty(normalized, \"mods\", { value: {} });\n\treturn normalized;\n}\n/**\n* Normalize the optional `props` in a record to always be an object similar to\n* components. Also accept a boolean for components.\n* @param record\n*/\nfunction normalizeRecordProps(record) {\n\tconst propsObject = {};\n\tconst props = record.props || false;\n\tif (\"component\" in record) propsObject.default = props;\n\telse for (const name in record.components) propsObject[name] = typeof props === \"object\" ? props[name] : props;\n\treturn propsObject;\n}\n/**\n* Checks if a record or any of its parent is an alias\n* @param record\n*/\nfunction isAliasRecord(record) {\n\twhile (record) {\n\t\tif (record.record.aliasOf) return true;\n\t\trecord = record.parent;\n\t}\n\treturn false;\n}\n/**\n* Merge meta fields of an array of records\n*\n* @param matched - array of matched records\n*/\nfunction mergeMetaFields(matched) {\n\treturn matched.reduce((meta, record) => assign(meta, record.meta), {});\n}\nfunction isSameParam(a, b) {\n\treturn a.name === b.name && a.optional === b.optional && a.repeatable === b.repeatable;\n}\n/**\n* Check if a path and its alias have the same required params\n*\n* @param a - original record\n* @param b - alias record\n*/\nfunction checkSameParams(a, b) {\n\tfor (const key of a.keys) if (!key.optional && !b.keys.find(isSameParam.bind(null, key))) return warn$1(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" must have the exact same param named \"${key.name}\"`);\n\tfor (const key of b.keys) if (!key.optional && !a.keys.find(isSameParam.bind(null, key))) return warn$1(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" must have the exact same param named \"${key.name}\"`);\n}\n/**\n* A route with a name and a child with an empty path without a name should warn when adding the route\n*\n* @param mainNormalizedRecord - RouteRecordNormalized\n* @param parent - RouteRecordMatcher\n*/\nfunction checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent) {\n\tif (parent && parent.record.name && !mainNormalizedRecord.name && !mainNormalizedRecord.path) warn$1(`The route named \"${String(parent.record.name)}\" has a child without a name and an empty path. Using that name won't render the empty path child so you probably want to move the name to the child instead. If this is intentional, add a name to the child route to remove the warning.`);\n}\nfunction checkSameNameAsAncestor(record, parent) {\n\tfor (let ancestor = parent; ancestor; ancestor = ancestor.parent) if (ancestor.record.name === record.name) throw new Error(`A route named \"${String(record.name)}\" has been added as a ${parent === ancestor ? \"child\" : \"descendant\"} of a route with the same name. Route names must be unique and a nested route cannot use the same name as an ancestor.`);\n}\nfunction checkMissingParamsInAbsolutePath(record, parent) {\n\tfor (const key of parent.keys) if (!record.keys.find(isSameParam.bind(null, key))) return warn$1(`Absolute path \"${record.record.path}\" must have the exact same param named \"${key.name}\" as its parent \"${parent.record.path}\".`);\n}\n/**\n* Performs a binary search to find the correct insertion index for a new matcher.\n*\n* Matchers are primarily sorted by their score. If scores are tied then we also consider parent/child relationships,\n* with descendants coming before ancestors. If there's still a tie, new routes are inserted after existing routes.\n*\n* @param matcher - new matcher to be inserted\n* @param matchers - existing matchers\n*/\nfunction findInsertionIndex(matcher, matchers) {\n\tlet lower = 0;\n\tlet upper = matchers.length;\n\twhile (lower !== upper) {\n\t\tconst mid = lower + upper >> 1;\n\t\tif (comparePathParserScore(matcher, matchers[mid]) < 0) upper = mid;\n\t\telse lower = mid + 1;\n\t}\n\tconst insertionAncestor = getInsertionAncestor(matcher);\n\tif (insertionAncestor) {\n\t\tupper = matchers.lastIndexOf(insertionAncestor, upper - 1);\n\t\tif (process.env.NODE_ENV !== \"production\" && upper < 0) warn$1(`Finding ancestor route \"${insertionAncestor.record.path}\" failed for \"${matcher.record.path}\"`);\n\t}\n\treturn upper;\n}\nfunction getInsertionAncestor(matcher) {\n\tlet ancestor = matcher;\n\twhile (ancestor = ancestor.parent) if (isMatchable(ancestor) && comparePathParserScore(matcher, ancestor) === 0) return ancestor;\n}\n/**\n* Checks if a matcher can be reachable. This means if it's possible to reach it as a route. For example, routes without\n* a component, or name, or redirect, are just used to group other routes.\n* @param matcher\n* @param matcher.record record of the matcher\n* @returns\n*/\nfunction isMatchable({ record }) {\n\treturn !!(record.name || record.components && Object.keys(record.components).length || record.redirect);\n}\n\n//#endregion\n//#region src/RouterLink.ts\n/**\n* Returns the internal behavior of a {@link RouterLink} without the rendering part.\n*\n* @param props - a `to` location and an optional `replace` flag\n*/\nfunction useLink(props) {\n\tconst router = inject(routerKey);\n\tconst currentRoute = inject(routeLocationKey);\n\tlet hasPrevious = false;\n\tlet previousTo = null;\n\tconst route = computed(() => {\n\t\tconst to = unref(props.to);\n\t\tif (process.env.NODE_ENV !== \"production\" && (!hasPrevious || to !== previousTo)) {\n\t\t\tif (!isRouteLocation(to)) if (hasPrevious) warn$1(`Invalid value for prop \"to\" in useLink()\\n- to:`, to, `\\n- previous to:`, previousTo, `\\n- props:`, props);\n\t\t\telse warn$1(`Invalid value for prop \"to\" in useLink()\\n- to:`, to, `\\n- props:`, props);\n\t\t\tpreviousTo = to;\n\t\t\thasPrevious = true;\n\t\t}\n\t\treturn router.resolve(to);\n\t});\n\tconst activeRecordIndex = computed(() => {\n\t\tconst { matched } = route.value;\n\t\tconst { length } = matched;\n\t\tconst routeMatched = matched[length - 1];\n\t\tconst currentMatched = currentRoute.matched;\n\t\tif (!routeMatched || !currentMatched.length) return -1;\n\t\tconst index = currentMatched.findIndex(isSameRouteRecord.bind(null, routeMatched));\n\t\tif (index > -1) return index;\n\t\tconst parentRecordPath = getOriginalPath(matched[length - 2]);\n\t\treturn length > 1 && getOriginalPath(routeMatched) === parentRecordPath && currentMatched[currentMatched.length - 1].path !== parentRecordPath ? currentMatched.findIndex(isSameRouteRecord.bind(null, matched[length - 2])) : index;\n\t});\n\tconst isActive = computed(() => activeRecordIndex.value > -1 && includesParams(currentRoute.params, route.value.params));\n\tconst isExactActive = computed(() => activeRecordIndex.value > -1 && activeRecordIndex.value === currentRoute.matched.length - 1 && isSameRouteLocationParams(currentRoute.params, route.value.params));\n\tfunction navigate(e = {}) {\n\t\tif (guardEvent(e)) {\n\t\t\tconst p = router[unref(props.replace) ? \"replace\" : \"push\"](unref(props.to)).catch(noop);\n\t\t\tif (props.viewTransition && typeof document !== \"undefined\" && \"startViewTransition\" in document) document.startViewTransition(() => p);\n\t\t\treturn p;\n\t\t}\n\t\treturn Promise.resolve();\n\t}\n\tif ((process.env.NODE_ENV !== \"production\" || __VUE_PROD_DEVTOOLS__) && isBrowser) {\n\t\tconst instance = getCurrentInstance();\n\t\tif (instance) {\n\t\t\tconst linkContextDevtools = {\n\t\t\t\troute: route.value,\n\t\t\t\tisActive: isActive.value,\n\t\t\t\tisExactActive: isExactActive.value,\n\t\t\t\terror: null\n\t\t\t};\n\t\t\tinstance.__vrl_devtools = instance.__vrl_devtools || [];\n\t\t\tinstance.__vrl_devtools.push(linkContextDevtools);\n\t\t\twatchEffect(() => {\n\t\t\t\tlinkContextDevtools.route = route.value;\n\t\t\t\tlinkContextDevtools.isActive = isActive.value;\n\t\t\t\tlinkContextDevtools.isExactActive = isExactActive.value;\n\t\t\t\tlinkContextDevtools.error = isRouteLocation(unref(props.to)) ? null : \"Invalid \\\"to\\\" value\";\n\t\t\t}, { flush: \"post\" });\n\t\t}\n\t}\n\t/**\n\t* NOTE: update {@link _RouterLinkI}'s `$slots` type when updating this\n\t*/\n\treturn {\n\t\troute,\n\t\thref: computed(() => route.value.href),\n\t\tisActive,\n\t\tisExactActive,\n\t\tnavigate\n\t};\n}\nfunction preferSingleVNode(vnodes) {\n\treturn vnodes.length === 1 ? vnodes[0] : vnodes;\n}\nconst RouterLinkImpl = /* @__PURE__ */ defineComponent({\n\tname: \"RouterLink\",\n\tcompatConfig: { MODE: 3 },\n\tprops: {\n\t\tto: {\n\t\t\ttype: [String, Object],\n\t\t\trequired: true\n\t\t},\n\t\treplace: Boolean,\n\t\tactiveClass: String,\n\t\texactActiveClass: String,\n\t\tcustom: Boolean,\n\t\tariaCurrentValue: {\n\t\t\ttype: String,\n\t\t\tdefault: \"page\"\n\t\t},\n\t\tviewTransition: Boolean\n\t},\n\tuseLink,\n\tsetup(props, { slots }) {\n\t\tconst link = reactive(useLink(props));\n\t\tconst { options } = inject(routerKey);\n\t\tconst elClass = computed(() => ({\n\t\t\t[getLinkClass(props.activeClass, options.linkActiveClass, \"router-link-active\")]: link.isActive,\n\t\t\t[getLinkClass(props.exactActiveClass, options.linkExactActiveClass, \"router-link-exact-active\")]: link.isExactActive\n\t\t}));\n\t\treturn () => {\n\t\t\tconst children = slots.default && preferSingleVNode(slots.default(link));\n\t\t\treturn props.custom ? children : h(\"a\", {\n\t\t\t\t\"aria-current\": link.isExactActive ? props.ariaCurrentValue : null,\n\t\t\t\thref: link.href,\n\t\t\t\tonClick: link.navigate,\n\t\t\t\tclass: elClass.value\n\t\t\t}, children);\n\t\t};\n\t}\n});\n/**\n* Component to render a link that triggers a navigation on click.\n*/\nconst RouterLink = RouterLinkImpl;\nfunction guardEvent(e) {\n\tif (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) return;\n\tif (e.defaultPrevented) return;\n\tif (e.button !== void 0 && e.button !== 0) return;\n\tif (e.currentTarget && e.currentTarget.getAttribute) {\n\t\tconst target = e.currentTarget.getAttribute(\"target\");\n\t\tif (/\\b_blank\\b/i.test(target)) return;\n\t}\n\tif (e.preventDefault) e.preventDefault();\n\treturn true;\n}\nfunction includesParams(outer, inner) {\n\tfor (const key in inner) {\n\t\tconst innerValue = inner[key];\n\t\tconst outerValue = outer[key];\n\t\tif (typeof innerValue === \"string\") {\n\t\t\tif (innerValue !== outerValue) return false;\n\t\t} else if (!isArray(outerValue) || outerValue.length !== innerValue.length || innerValue.some((value, i) => value !== outerValue[i])) return false;\n\t}\n\treturn true;\n}\n/**\n* Get the original path value of a record by following its aliasOf\n* @param record\n*/\nfunction getOriginalPath(record) {\n\treturn record ? record.aliasOf ? record.aliasOf.path : record.path : \"\";\n}\n/**\n* Utility class to get the active class based on defaults.\n* @param propClass\n* @param globalClass\n* @param defaultClass\n*/\nconst getLinkClass = (propClass, globalClass, defaultClass) => propClass != null ? propClass : globalClass != null ? globalClass : defaultClass;\n\n//#endregion\n//#region src/RouterView.ts\nconst RouterViewImpl = /* @__PURE__ */ defineComponent({\n\tname: \"RouterView\",\n\tinheritAttrs: false,\n\tprops: {\n\t\tname: {\n\t\t\ttype: String,\n\t\t\tdefault: \"default\"\n\t\t},\n\t\troute: Object\n\t},\n\tcompatConfig: { MODE: 3 },\n\tsetup(props, { attrs, slots }) {\n\t\tprocess.env.NODE_ENV !== \"production\" && warnDeprecatedUsage();\n\t\tconst injectedRoute = inject(routerViewLocationKey);\n\t\tconst routeToDisplay = computed(() => props.route || injectedRoute.value);\n\t\tconst injectedDepth = inject(viewDepthKey, 0);\n\t\tconst depth = computed(() => {\n\t\t\tlet initialDepth = unref(injectedDepth);\n\t\t\tconst { matched } = routeToDisplay.value;\n\t\t\tlet matchedRoute;\n\t\t\twhile ((matchedRoute = matched[initialDepth]) && !matchedRoute.components) initialDepth++;\n\t\t\treturn initialDepth;\n\t\t});\n\t\tconst matchedRouteRef = computed(() => routeToDisplay.value.matched[depth.value]);\n\t\tprovide(viewDepthKey, computed(() => depth.value + 1));\n\t\tprovide(matchedRouteKey, matchedRouteRef);\n\t\tprovide(routerViewLocationKey, routeToDisplay);\n\t\tconst viewRef = ref();\n\t\twatch(() => [\n\t\t\tviewRef.value,\n\t\t\tmatchedRouteRef.value,\n\t\t\tprops.name\n\t\t], ([instance, to, name], [oldInstance, from, oldName]) => {\n\t\t\tif (to) {\n\t\t\t\tto.instances[name] = instance;\n\t\t\t\tif (from && from !== to && instance && instance === oldInstance) {\n\t\t\t\t\tif (!to.leaveGuards.size) to.leaveGuards = from.leaveGuards;\n\t\t\t\t\tif (!to.updateGuards.size) to.updateGuards = from.updateGuards;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (instance && to && (!from || !isSameRouteRecord(to, from) || !oldInstance)) (to.enterCallbacks[name] || []).forEach((callback) => callback(instance));\n\t\t}, { flush: \"post\" });\n\t\treturn () => {\n\t\t\tconst route = routeToDisplay.value;\n\t\t\tconst currentName = props.name;\n\t\t\tconst matchedRoute = matchedRouteRef.value;\n\t\t\tconst ViewComponent = matchedRoute && matchedRoute.components[currentName];\n\t\t\tif (!ViewComponent) return normalizeSlot(slots.default, {\n\t\t\t\tComponent: ViewComponent,\n\t\t\t\troute\n\t\t\t});\n\t\t\tconst routePropsOption = matchedRoute.props[currentName];\n\t\t\tconst routeProps = routePropsOption ? routePropsOption === true ? route.params : typeof routePropsOption === \"function\" ? routePropsOption(route) : routePropsOption : null;\n\t\t\tconst onVnodeUnmounted = (vnode) => {\n\t\t\t\tif (vnode.component.isUnmounted) matchedRoute.instances[currentName] = null;\n\t\t\t};\n\t\t\tconst component = h(ViewComponent, assign({}, routeProps, attrs, {\n\t\t\t\tonVnodeUnmounted,\n\t\t\t\tref: viewRef\n\t\t\t}));\n\t\t\tif ((process.env.NODE_ENV !== \"production\" || __VUE_PROD_DEVTOOLS__) && isBrowser && component.ref) {\n\t\t\t\tconst info = {\n\t\t\t\t\tdepth: depth.value,\n\t\t\t\t\tname: matchedRoute.name,\n\t\t\t\t\tpath: matchedRoute.path,\n\t\t\t\t\tmeta: matchedRoute.meta\n\t\t\t\t};\n\t\t\t\t(isArray(component.ref) ? component.ref.map((r) => r.i) : [component.ref.i]).forEach((instance) => {\n\t\t\t\t\tinstance.__vrv_devtools = info;\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn normalizeSlot(slots.default, {\n\t\t\t\tComponent: component,\n\t\t\t\troute\n\t\t\t}) || component;\n\t\t};\n\t}\n});\nfunction normalizeSlot(slot, data) {\n\tif (!slot) return null;\n\tconst slotContent = slot(data);\n\treturn slotContent.length === 1 ? slotContent[0] : slotContent;\n}\n/**\n* Component to display the current route the user is at.\n*/\nconst RouterView = RouterViewImpl;\nfunction warnDeprecatedUsage() {\n\tconst instance = getCurrentInstance();\n\tconst parentName = instance.parent && instance.parent.type.name;\n\tconst parentSubTreeType = instance.parent && instance.parent.subTree && instance.parent.subTree.type;\n\tif (parentName && (parentName === \"KeepAlive\" || parentName.includes(\"Transition\")) && typeof parentSubTreeType === \"object\" && parentSubTreeType.name === \"RouterView\") {\n\t\tconst comp = parentName === \"KeepAlive\" ? \"keep-alive\" : \"transition\";\n\t\twarn$1(` can no longer be used directly inside or .\nUse slot props instead:\n\n\n <${comp}>\\n \\n \\n`);\n\t}\n}\n\n//#endregion\n//#region src/router.ts\n/**\n* Creates a Router instance that can be used by a Vue app.\n*\n* @param options - {@link RouterOptions}\n*/\nfunction createRouter(options) {\n\tconst matcher = createRouterMatcher(options.routes, options);\n\tconst parseQuery$1 = options.parseQuery || parseQuery;\n\tconst stringifyQuery$1 = options.stringifyQuery || stringifyQuery;\n\tconst routerHistory = options.history;\n\tif (process.env.NODE_ENV !== \"production\" && !routerHistory) throw new Error(\"Provide the \\\"history\\\" option when calling \\\"createRouter()\\\": https://router.vuejs.org/api/interfaces/RouterOptions.html#history\");\n\tconst beforeGuards = useCallbacks();\n\tconst beforeResolveGuards = useCallbacks();\n\tconst afterGuards = useCallbacks();\n\tconst currentRoute = shallowRef(START_LOCATION_NORMALIZED);\n\tlet pendingLocation = START_LOCATION_NORMALIZED;\n\tif (isBrowser && options.scrollBehavior && \"scrollRestoration\" in history) history.scrollRestoration = \"manual\";\n\tconst normalizeParams = applyToParams.bind(null, (paramValue) => \"\" + paramValue);\n\tconst encodeParams = applyToParams.bind(null, encodeParam);\n\tconst decodeParams = applyToParams.bind(null, decode);\n\tfunction addRoute(parentOrRoute, route) {\n\t\tlet parent;\n\t\tlet record;\n\t\tif (isRouteName(parentOrRoute)) {\n\t\t\tparent = matcher.getRecordMatcher(parentOrRoute);\n\t\t\tif (process.env.NODE_ENV !== \"production\" && !parent) warn$1(`Parent route \"${String(parentOrRoute)}\" not found when adding child route`, route);\n\t\t\trecord = route;\n\t\t} else record = parentOrRoute;\n\t\treturn matcher.addRoute(record, parent);\n\t}\n\tfunction removeRoute(name) {\n\t\tconst recordMatcher = matcher.getRecordMatcher(name);\n\t\tif (recordMatcher) matcher.removeRoute(recordMatcher);\n\t\telse if (process.env.NODE_ENV !== \"production\") warn$1(`Cannot remove non-existent route \"${String(name)}\"`);\n\t}\n\tfunction getRoutes() {\n\t\treturn matcher.getRoutes().map((routeMatcher) => routeMatcher.record);\n\t}\n\tfunction hasRoute(name) {\n\t\treturn !!matcher.getRecordMatcher(name);\n\t}\n\tfunction resolve(rawLocation, currentLocation) {\n\t\tcurrentLocation = assign({}, currentLocation || currentRoute.value);\n\t\tif (typeof rawLocation === \"string\") {\n\t\t\tconst locationNormalized = parseURL(parseQuery$1, rawLocation, currentLocation.path);\n\t\t\tconst matchedRoute$1 = matcher.resolve({ path: locationNormalized.path }, currentLocation);\n\t\t\tconst href$1 = routerHistory.createHref(locationNormalized.fullPath);\n\t\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\t\tif (href$1.startsWith(\"//\")) warn$1(`Location \"${rawLocation}\" resolved to \"${href$1}\". A resolved location cannot start with multiple slashes.`);\n\t\t\t\telse if (!matchedRoute$1.matched.length) warn$1(`No match found for location with path \"${rawLocation}\"`);\n\t\t\t}\n\t\t\treturn assign(locationNormalized, matchedRoute$1, {\n\t\t\t\tparams: decodeParams(matchedRoute$1.params),\n\t\t\t\thash: decode(locationNormalized.hash),\n\t\t\t\tredirectedFrom: void 0,\n\t\t\t\thref: href$1\n\t\t\t});\n\t\t}\n\t\tif (process.env.NODE_ENV !== \"production\" && !isRouteLocation(rawLocation)) {\n\t\t\twarn$1(`router.resolve() was passed an invalid location. This will fail in production.\\n- Location:`, rawLocation);\n\t\t\treturn resolve({});\n\t\t}\n\t\tlet matcherLocation;\n\t\tif (rawLocation.path != null) {\n\t\t\tif (process.env.NODE_ENV !== \"production\" && \"params\" in rawLocation && !(\"name\" in rawLocation) && Object.keys(rawLocation.params).length) warn$1(`Path \"${rawLocation.path}\" was passed with params but they will be ignored. Use a named route alongside params instead.`);\n\t\t\tmatcherLocation = assign({}, rawLocation, { path: parseURL(parseQuery$1, rawLocation.path, currentLocation.path).path });\n\t\t} else {\n\t\t\tconst targetParams = assign({}, rawLocation.params);\n\t\t\tfor (const key in targetParams) if (targetParams[key] == null) delete targetParams[key];\n\t\t\tmatcherLocation = assign({}, rawLocation, { params: encodeParams(targetParams) });\n\t\t\tcurrentLocation.params = encodeParams(currentLocation.params);\n\t\t}\n\t\tconst matchedRoute = matcher.resolve(matcherLocation, currentLocation);\n\t\tconst hash = rawLocation.hash || \"\";\n\t\tif (process.env.NODE_ENV !== \"production\" && hash && !hash.startsWith(\"#\")) warn$1(`A \\`hash\\` should always start with the character \"#\". Replace \"${hash}\" with \"#${hash}\".`);\n\t\tmatchedRoute.params = normalizeParams(decodeParams(matchedRoute.params));\n\t\tconst fullPath = stringifyURL(stringifyQuery$1, assign({}, rawLocation, {\n\t\t\thash: encodeHash(hash),\n\t\t\tpath: matchedRoute.path\n\t\t}));\n\t\tconst href = routerHistory.createHref(fullPath);\n\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\tif (href.startsWith(\"//\")) warn$1(`Location \"${rawLocation}\" resolved to \"${href}\". A resolved location cannot start with multiple slashes.`);\n\t\t\telse if (!matchedRoute.matched.length) warn$1(`No match found for location with path \"${rawLocation.path != null ? rawLocation.path : rawLocation}\"`);\n\t\t}\n\t\treturn assign({\n\t\t\tfullPath,\n\t\t\thash,\n\t\t\tquery: stringifyQuery$1 === stringifyQuery ? normalizeQuery(rawLocation.query) : rawLocation.query || {}\n\t\t}, matchedRoute, {\n\t\t\tredirectedFrom: void 0,\n\t\t\thref\n\t\t});\n\t}\n\tfunction locationAsObject(to) {\n\t\treturn typeof to === \"string\" ? parseURL(parseQuery$1, to, currentRoute.value.path) : assign({}, to);\n\t}\n\tfunction checkCanceledNavigation(to, from) {\n\t\tif (pendingLocation !== to) return createRouterError(ErrorTypes.NAVIGATION_CANCELLED, {\n\t\t\tfrom,\n\t\t\tto\n\t\t});\n\t}\n\tfunction push(to) {\n\t\treturn pushWithRedirect(to);\n\t}\n\tfunction replace(to) {\n\t\treturn push(assign(locationAsObject(to), { replace: true }));\n\t}\n\tfunction handleRedirectRecord(to, from) {\n\t\tconst lastMatched = to.matched[to.matched.length - 1];\n\t\tif (lastMatched && lastMatched.redirect) {\n\t\t\tconst { redirect } = lastMatched;\n\t\t\tlet newTargetLocation = typeof redirect === \"function\" ? redirect(to, from) : redirect;\n\t\t\tif (typeof newTargetLocation === \"string\") {\n\t\t\t\tnewTargetLocation = newTargetLocation.includes(\"?\") || newTargetLocation.includes(\"#\") ? newTargetLocation = locationAsObject(newTargetLocation) : { path: newTargetLocation };\n\t\t\t\tnewTargetLocation.params = {};\n\t\t\t}\n\t\t\tif (process.env.NODE_ENV !== \"production\" && newTargetLocation.path == null && !(\"name\" in newTargetLocation)) {\n\t\t\t\twarn$1(`Invalid redirect found:\\n${JSON.stringify(newTargetLocation, null, 2)}\\n when navigating to \"${to.fullPath}\". A redirect must contain a name or path. This will break in production.`);\n\t\t\t\tthrow new Error(\"Invalid redirect\");\n\t\t\t}\n\t\t\treturn assign({\n\t\t\t\tquery: to.query,\n\t\t\t\thash: to.hash,\n\t\t\t\tparams: newTargetLocation.path != null ? {} : to.params\n\t\t\t}, newTargetLocation);\n\t\t}\n\t}\n\tfunction pushWithRedirect(to, redirectedFrom) {\n\t\tconst targetLocation = pendingLocation = resolve(to);\n\t\tconst from = currentRoute.value;\n\t\tconst data = to.state;\n\t\tconst force = to.force;\n\t\tconst replace$1 = to.replace === true;\n\t\tconst shouldRedirect = handleRedirectRecord(targetLocation, from);\n\t\tif (shouldRedirect) return pushWithRedirect(assign(locationAsObject(shouldRedirect), {\n\t\t\tstate: typeof shouldRedirect === \"object\" ? assign({}, data, shouldRedirect.state) : data,\n\t\t\tforce,\n\t\t\treplace: replace$1\n\t\t}), redirectedFrom || targetLocation);\n\t\tconst toLocation = targetLocation;\n\t\ttoLocation.redirectedFrom = redirectedFrom;\n\t\tlet failure;\n\t\tif (!force && isSameRouteLocation(stringifyQuery$1, from, targetLocation)) {\n\t\t\tfailure = createRouterError(ErrorTypes.NAVIGATION_DUPLICATED, {\n\t\t\t\tto: toLocation,\n\t\t\t\tfrom\n\t\t\t});\n\t\t\thandleScroll(from, from, true, false);\n\t\t}\n\t\treturn (failure ? Promise.resolve(failure) : navigate(toLocation, from)).catch((error) => isNavigationFailure(error) ? isNavigationFailure(error, ErrorTypes.NAVIGATION_GUARD_REDIRECT) ? error : markAsReady(error) : triggerError(error, toLocation, from)).then((failure$1) => {\n\t\t\tif (failure$1) {\n\t\t\t\tif (isNavigationFailure(failure$1, ErrorTypes.NAVIGATION_GUARD_REDIRECT)) {\n\t\t\t\t\tif (process.env.NODE_ENV !== \"production\" && isSameRouteLocation(stringifyQuery$1, resolve(failure$1.to), toLocation) && redirectedFrom && (redirectedFrom._count = redirectedFrom._count ? redirectedFrom._count + 1 : 1) > 30) {\n\t\t\t\t\t\twarn$1(`Detected a possibly infinite redirection in a navigation guard when going from \"${from.fullPath}\" to \"${toLocation.fullPath}\". Aborting to avoid a Stack Overflow.\\n Are you always returning a new location within a navigation guard? That would lead to this error. Only return when redirecting or aborting, that should fix this. This might break in production if not fixed.`);\n\t\t\t\t\t\treturn Promise.reject(/* @__PURE__ */ new Error(\"Infinite redirect in navigation guard\"));\n\t\t\t\t\t}\n\t\t\t\t\treturn pushWithRedirect(assign({ replace: replace$1 }, locationAsObject(failure$1.to), {\n\t\t\t\t\t\tstate: typeof failure$1.to === \"object\" ? assign({}, data, failure$1.to.state) : data,\n\t\t\t\t\t\tforce\n\t\t\t\t\t}), redirectedFrom || toLocation);\n\t\t\t\t}\n\t\t\t} else failure$1 = finalizeNavigation(toLocation, from, true, replace$1, data);\n\t\t\ttriggerAfterEach(toLocation, from, failure$1);\n\t\t\treturn failure$1;\n\t\t});\n\t}\n\t/**\n\t* Helper to reject and skip all navigation guards if a new navigation happened\n\t* @param to\n\t* @param from\n\t*/\n\tfunction checkCanceledNavigationAndReject(to, from) {\n\t\tconst error = checkCanceledNavigation(to, from);\n\t\treturn error ? Promise.reject(error) : Promise.resolve();\n\t}\n\tfunction runWithContext(fn) {\n\t\tconst app = installedApps.values().next().value;\n\t\treturn app && typeof app.runWithContext === \"function\" ? app.runWithContext(fn) : fn();\n\t}\n\tfunction navigate(to, from) {\n\t\tlet guards;\n\t\tconst [leavingRecords, updatingRecords, enteringRecords] = extractChangingRecords(to, from);\n\t\tguards = extractComponentsGuards(leavingRecords.reverse(), \"beforeRouteLeave\", to, from);\n\t\tfor (const record of leavingRecords) record.leaveGuards.forEach((guard) => {\n\t\t\tguards.push(guardToPromiseFn(guard, to, from));\n\t\t});\n\t\tconst canceledNavigationCheck = checkCanceledNavigationAndReject.bind(null, to, from);\n\t\tguards.push(canceledNavigationCheck);\n\t\treturn runGuardQueue(guards).then(() => {\n\t\t\tguards = [];\n\t\t\tfor (const guard of beforeGuards.list()) guards.push(guardToPromiseFn(guard, to, from));\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).then(() => {\n\t\t\tguards = extractComponentsGuards(updatingRecords, \"beforeRouteUpdate\", to, from);\n\t\t\tfor (const record of updatingRecords) record.updateGuards.forEach((guard) => {\n\t\t\t\tguards.push(guardToPromiseFn(guard, to, from));\n\t\t\t});\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).then(() => {\n\t\t\tguards = [];\n\t\t\tfor (const record of enteringRecords) if (record.beforeEnter) if (isArray(record.beforeEnter)) for (const beforeEnter of record.beforeEnter) guards.push(guardToPromiseFn(beforeEnter, to, from));\n\t\t\telse guards.push(guardToPromiseFn(record.beforeEnter, to, from));\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).then(() => {\n\t\t\tto.matched.forEach((record) => record.enterCallbacks = {});\n\t\t\tguards = extractComponentsGuards(enteringRecords, \"beforeRouteEnter\", to, from, runWithContext);\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).then(() => {\n\t\t\tguards = [];\n\t\t\tfor (const guard of beforeResolveGuards.list()) guards.push(guardToPromiseFn(guard, to, from));\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).catch((err) => isNavigationFailure(err, ErrorTypes.NAVIGATION_CANCELLED) ? err : Promise.reject(err));\n\t}\n\tfunction triggerAfterEach(to, from, failure) {\n\t\tafterGuards.list().forEach((guard) => runWithContext(() => guard(to, from, failure)));\n\t}\n\t/**\n\t* - Cleans up any navigation guards\n\t* - Changes the url if necessary\n\t* - Calls the scrollBehavior\n\t*/\n\tfunction finalizeNavigation(toLocation, from, isPush, replace$1, data) {\n\t\tconst error = checkCanceledNavigation(toLocation, from);\n\t\tif (error) return error;\n\t\tconst isFirstNavigation = from === START_LOCATION_NORMALIZED;\n\t\tconst state = !isBrowser ? {} : history.state;\n\t\tif (isPush) if (replace$1 || isFirstNavigation) routerHistory.replace(toLocation.fullPath, assign({ scroll: isFirstNavigation && state && state.scroll }, data));\n\t\telse routerHistory.push(toLocation.fullPath, data);\n\t\tcurrentRoute.value = toLocation;\n\t\thandleScroll(toLocation, from, isPush, isFirstNavigation);\n\t\tmarkAsReady();\n\t}\n\tlet removeHistoryListener;\n\tfunction setupListeners() {\n\t\tif (removeHistoryListener) return;\n\t\tremoveHistoryListener = routerHistory.listen((to, _from, info) => {\n\t\t\tif (!router.listening) return;\n\t\t\tconst toLocation = resolve(to);\n\t\t\tconst shouldRedirect = handleRedirectRecord(toLocation, router.currentRoute.value);\n\t\t\tif (shouldRedirect) {\n\t\t\t\tpushWithRedirect(assign(shouldRedirect, {\n\t\t\t\t\treplace: true,\n\t\t\t\t\tforce: true\n\t\t\t\t}), toLocation).catch(noop);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tpendingLocation = toLocation;\n\t\t\tconst from = currentRoute.value;\n\t\t\tif (isBrowser) saveScrollPosition(getScrollKey(from.fullPath, info.delta), computeScrollPosition());\n\t\t\tnavigate(toLocation, from).catch((error) => {\n\t\t\t\tif (isNavigationFailure(error, ErrorTypes.NAVIGATION_ABORTED | ErrorTypes.NAVIGATION_CANCELLED)) return error;\n\t\t\t\tif (isNavigationFailure(error, ErrorTypes.NAVIGATION_GUARD_REDIRECT)) {\n\t\t\t\t\tpushWithRedirect(assign(locationAsObject(error.to), { force: true }), toLocation).then((failure) => {\n\t\t\t\t\t\tif (isNavigationFailure(failure, ErrorTypes.NAVIGATION_ABORTED | ErrorTypes.NAVIGATION_DUPLICATED) && !info.delta && info.type === NavigationType.pop) routerHistory.go(-1, false);\n\t\t\t\t\t}).catch(noop);\n\t\t\t\t\treturn Promise.reject();\n\t\t\t\t}\n\t\t\t\tif (info.delta) routerHistory.go(-info.delta, false);\n\t\t\t\treturn triggerError(error, toLocation, from);\n\t\t\t}).then((failure) => {\n\t\t\t\tfailure = failure || finalizeNavigation(toLocation, from, false);\n\t\t\t\tif (failure) {\n\t\t\t\t\tif (info.delta && !isNavigationFailure(failure, ErrorTypes.NAVIGATION_CANCELLED)) routerHistory.go(-info.delta, false);\n\t\t\t\t\telse if (info.type === NavigationType.pop && isNavigationFailure(failure, ErrorTypes.NAVIGATION_ABORTED | ErrorTypes.NAVIGATION_DUPLICATED)) routerHistory.go(-1, false);\n\t\t\t\t}\n\t\t\t\ttriggerAfterEach(toLocation, from, failure);\n\t\t\t}).catch(noop);\n\t\t});\n\t}\n\tlet readyHandlers = useCallbacks();\n\tlet errorListeners = useCallbacks();\n\tlet ready;\n\t/**\n\t* Trigger errorListeners added via onError and throws the error as well\n\t*\n\t* @param error - error to throw\n\t* @param to - location we were navigating to when the error happened\n\t* @param from - location we were navigating from when the error happened\n\t* @returns the error as a rejected promise\n\t*/\n\tfunction triggerError(error, to, from) {\n\t\tmarkAsReady(error);\n\t\tconst list = errorListeners.list();\n\t\tif (list.length) list.forEach((handler) => handler(error, to, from));\n\t\telse {\n\t\t\tif (process.env.NODE_ENV !== \"production\") warn$1(\"uncaught error during route navigation:\");\n\t\t\tconsole.error(error);\n\t\t}\n\t\treturn Promise.reject(error);\n\t}\n\tfunction isReady() {\n\t\tif (ready && currentRoute.value !== START_LOCATION_NORMALIZED) return Promise.resolve();\n\t\treturn new Promise((resolve$1, reject) => {\n\t\t\treadyHandlers.add([resolve$1, reject]);\n\t\t});\n\t}\n\tfunction markAsReady(err) {\n\t\tif (!ready) {\n\t\t\tready = !err;\n\t\t\tsetupListeners();\n\t\t\treadyHandlers.list().forEach(([resolve$1, reject]) => err ? reject(err) : resolve$1());\n\t\t\treadyHandlers.reset();\n\t\t}\n\t\treturn err;\n\t}\n\tfunction handleScroll(to, from, isPush, isFirstNavigation) {\n\t\tconst { scrollBehavior } = options;\n\t\tif (!isBrowser || !scrollBehavior) return Promise.resolve();\n\t\tconst scrollPosition = !isPush && getSavedScrollPosition(getScrollKey(to.fullPath, 0)) || (isFirstNavigation || !isPush) && history.state && history.state.scroll || null;\n\t\treturn nextTick().then(() => scrollBehavior(to, from, scrollPosition)).then((position) => position && scrollToPosition(position)).catch((err) => triggerError(err, to, from));\n\t}\n\tconst go = (delta) => routerHistory.go(delta);\n\tlet started;\n\tconst installedApps = /* @__PURE__ */ new Set();\n\tconst router = {\n\t\tcurrentRoute,\n\t\tlistening: true,\n\t\taddRoute,\n\t\tremoveRoute,\n\t\tclearRoutes: matcher.clearRoutes,\n\t\thasRoute,\n\t\tgetRoutes,\n\t\tresolve,\n\t\toptions,\n\t\tpush,\n\t\treplace,\n\t\tgo,\n\t\tback: () => go(-1),\n\t\tforward: () => go(1),\n\t\tbeforeEach: beforeGuards.add,\n\t\tbeforeResolve: beforeResolveGuards.add,\n\t\tafterEach: afterGuards.add,\n\t\tonError: errorListeners.add,\n\t\tisReady,\n\t\tinstall(app) {\n\t\t\tapp.component(\"RouterLink\", RouterLink);\n\t\t\tapp.component(\"RouterView\", RouterView);\n\t\t\tapp.config.globalProperties.$router = router;\n\t\t\tObject.defineProperty(app.config.globalProperties, \"$route\", {\n\t\t\t\tenumerable: true,\n\t\t\t\tget: () => unref(currentRoute)\n\t\t\t});\n\t\t\tif (isBrowser && !started && currentRoute.value === START_LOCATION_NORMALIZED) {\n\t\t\t\tstarted = true;\n\t\t\t\tpush(routerHistory.location).catch((err) => {\n\t\t\t\t\tif (process.env.NODE_ENV !== \"production\") warn$1(\"Unexpected error when starting the router:\", err);\n\t\t\t\t});\n\t\t\t}\n\t\t\tconst reactiveRoute = {};\n\t\t\tfor (const key in START_LOCATION_NORMALIZED) Object.defineProperty(reactiveRoute, key, {\n\t\t\t\tget: () => currentRoute.value[key],\n\t\t\t\tenumerable: true\n\t\t\t});\n\t\t\tapp.provide(routerKey, router);\n\t\t\tapp.provide(routeLocationKey, shallowReactive(reactiveRoute));\n\t\t\tapp.provide(routerViewLocationKey, currentRoute);\n\t\t\tconst unmountApp = app.unmount;\n\t\t\tinstalledApps.add(app);\n\t\t\tapp.unmount = function() {\n\t\t\t\tinstalledApps.delete(app);\n\t\t\t\tif (installedApps.size < 1) {\n\t\t\t\t\tpendingLocation = START_LOCATION_NORMALIZED;\n\t\t\t\t\tremoveHistoryListener && removeHistoryListener();\n\t\t\t\t\tremoveHistoryListener = null;\n\t\t\t\t\tcurrentRoute.value = START_LOCATION_NORMALIZED;\n\t\t\t\t\tstarted = false;\n\t\t\t\t\tready = false;\n\t\t\t\t}\n\t\t\t\tunmountApp();\n\t\t\t};\n\t\t\tif ((process.env.NODE_ENV !== \"production\" || __VUE_PROD_DEVTOOLS__) && isBrowser) addDevtools(app, router, matcher);\n\t\t}\n\t};\n\tfunction runGuardQueue(guards) {\n\t\treturn guards.reduce((promise, guard) => promise.then(() => runWithContext(guard)), Promise.resolve());\n\t}\n\treturn router;\n}\n\n//#endregion\n//#region src/useApi.ts\n/**\n* Returns the router instance. Equivalent to using `$router` inside\n* templates.\n*/\nfunction useRouter() {\n\treturn inject(routerKey);\n}\n/**\n* Returns the current route location. Equivalent to using `$route` inside\n* templates.\n*/\nfunction useRoute(_name) {\n\treturn inject(routeLocationKey);\n}\n\n//#endregion\nexport { NavigationFailureType, RouterLink, RouterView, START_LOCATION_NORMALIZED as START_LOCATION, createMemoryHistory, createRouter, createRouterMatcher, createWebHashHistory, createWebHistory, isNavigationFailure, loadRouteLocation, matchedRouteKey, onBeforeRouteLeave, onBeforeRouteUpdate, parseQuery, routeLocationKey, routerKey, routerViewLocationKey, stringifyQuery, useLink, useRoute, useRouter, viewDepthKey };","import { r as register, t as t3, a as t } from \"./_l10n-DrTiip5c.mjs\";\nregister(t3);\nclass Color {\n /**\n * @param r - The red value\n * @param g - The green value\n * @param b - The blue value\n * @param name - The name of the color\n */\n constructor(r, g, b, name) {\n this.r = r;\n this.g = g;\n this.b = b;\n this.name = name;\n this.r = Math.min(r, 255);\n this.g = Math.min(g, 255);\n this.b = Math.min(b, 255);\n this.name = name;\n }\n /**\n * The hexadecimal color string.\n */\n get color() {\n const toHex = (int) => `00${int.toString(16)}`.slice(-2);\n return `#${toHex(this.r)}${toHex(this.g)}${toHex(this.b)}`;\n }\n}\nfunction calculateStepIncrement(steps, color1, color2) {\n return {\n r: (color2.r - color1.r) / steps,\n g: (color2.g - color1.g) / steps,\n b: (color2.b - color1.b) / steps\n };\n}\nfunction mixPalette(steps, color1, color2) {\n const palette = [];\n palette.push(color1);\n const increment = calculateStepIncrement(steps, color1, color2);\n for (let i = 1; i < steps; i++) {\n const r = Math.floor(color1.r + increment.r * i);\n const g = Math.floor(color1.g + increment.g * i);\n const b = Math.floor(color1.b + increment.b * i);\n palette.push(new Color(r, g, b));\n }\n return palette;\n}\nconst COLOR_RED = new Color(182, 70, 157, t(\"Purple\"));\nconst COLOR_YELLOW = new Color(221, 203, 85, t(\"Gold\"));\nconst COLOR_BLUE = new Color(0, 130, 201, t(\"Nextcloud blue\"));\nconst COLOR_BLACK = new Color(0, 0, 0, t(\"Black\"));\nconst COLOR_WHITE = new Color(255, 255, 255, t(\"White\"));\nconst defaultPalette = [\n /* eslint-disable @stylistic/function-call-argument-newline -- Allow to put translators comments */\n COLOR_RED,\n new Color(\n 191,\n 103,\n 139,\n t(\"Rosy brown\")\n // TRANSLATORS: A color name for RGB(191, 103, 139)\n ),\n new Color(\n 201,\n 136,\n 121,\n t(\"Feldspar\")\n // TRANSLATORS: A color name for RGB(201, 136, 121)\n ),\n new Color(\n 211,\n 169,\n 103,\n t(\"Whiskey\")\n // TRANSLATORS: A color name for RGB(211, 169, 103)\n ),\n COLOR_YELLOW,\n new Color(\n 165,\n 184,\n 114,\n t(\"Olivine\")\n // TRANSLATORS: A color name for RGB(165, 184, 114)\n ),\n new Color(\n 110,\n 166,\n 143,\n t(\"Acapulco\")\n // TRANSLATORS: A color name for RGB(110, 166, 143)\n ),\n new Color(\n 55,\n 148,\n 172,\n t(\"Boston Blue\")\n // TRANSLATORS: A color name for RGB(55, 148, 172)\n ),\n COLOR_BLUE,\n new Color(\n 45,\n 115,\n 190,\n t(\"Mariner\")\n // TRANSLATORS: A color name for RGB(45, 115, 190)\n ),\n new Color(\n 91,\n 100,\n 179,\n t(\"Blue Violet\")\n // TRANSLATORS: A color name for RGB(91, 100, 179)\n ),\n new Color(\n 136,\n 85,\n 168,\n t(\"Deluge\")\n // TRANSLATORS: A color name for RGB(136, 85, 168)\n )\n /* eslint-enable @stylistic/function-call-argument-newline */\n];\nfunction generatePalette(steps) {\n const palette1 = mixPalette(steps, COLOR_RED, COLOR_YELLOW);\n const palette2 = mixPalette(steps, COLOR_YELLOW, COLOR_BLUE);\n const palette3 = mixPalette(steps, COLOR_BLUE, COLOR_RED);\n return palette1.concat(palette2).concat(palette3);\n}\nexport {\n Color as C,\n COLOR_BLACK as a,\n COLOR_WHITE as b,\n defaultPalette as d,\n generatePalette as g\n};\n//# sourceMappingURL=colors-Go3zmZRD.mjs.map\n"],"names":["useLink","props","router","inject","routerKey","currentRoute","routeLocationKey","route","computed","to","unref","activeRecordIndex","matched","length","routeMatched","currentMatched","index","isSameRouteRecord","parentRecordPath","getOriginalPath","isActive","includesParams","isExactActive","isSameRouteLocationParams","navigate","e","guardEvent","p","noop","preferSingleVNode","vnodes","RouterLinkImpl","defineComponent","slots","link","reactive","options","elClass","getLinkClass","children","h","RouterLink","target","outer","inner","key","innerValue","outerValue","isArray","value","i","record","propClass","globalClass","defaultClass","register","t3","Color","r","g","b","name","toHex","int","calculateStepIncrement","steps","color1","color2","mixPalette","palette","increment","COLOR_RED","t","COLOR_YELLOW","COLOR_BLUE","COLOR_BLACK","COLOR_WHITE","defaultPalette","generatePalette","palette1","palette2","palette3"],"mappings":"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","x_google_ignoreList":[0,1]} \ No newline at end of file diff --git a/dist/createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs b/dist/createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs deleted file mode 100644 index aae12208f8f72..0000000000000 --- a/dist/createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import{g as d,c as B,t as A,b as p}from"./translation-DoG5ZELJ-gw0g4US-.chunk.mjs";const D=u=>"/remote.php/"+u,y=(u,e)=>C()+D(u),b=(u,e,t)=>{const o=Object.assign({ocsVersion:2},{}).ocsVersion===1?1:2;return C()+"/ocs/v"+o+".php"+s(u,e)},s=(u,e,t)=>{const o=Object.assign({escape:!0},{}),i=function(a,r){return r=r||{},a.replace(/{([^{}]*)}/g,function(E,m){const l=r[m];return o.escape?encodeURIComponent(typeof l=="string"||typeof l=="number"?l.toString():E):typeof l=="string"||typeof l=="number"?l.toString():E})};return u.charAt(0)!=="/"&&(u="/"+u),i(u,e||{})},j=(u,e,t)=>{const o=Object.assign({noRewrite:!1},{}),i=n();return window?.OC?.config?.modRewriteWorking===!0&&!o.noRewrite?i+s(u,e):i+"/index.php"+s(u,e)},f=(u,e)=>e.includes(".")?c(u,"img",e):c(u,"img",`${e}.svg`),c=(u,e,t)=>{const o=window?.OC?.coreApps?.includes(u)??!1,i=t.slice(-3)==="php";let a=n();return i&&!o?(a+=`/index.php/apps/${u}`,e&&(a+=`/${encodeURI(e)}`),t!=="index.php"&&(a+=`/${t}`)):!i&&!o?(a=F(u),e&&(a+=`/${e}/`),a.at(-1)!=="/"&&(a+="/"),a+=t):((u==="settings"||u==="core"||u==="search")&&e==="ajax"&&(a+="/index.php"),u&&(a+=`/${u}`),e&&(a+=`/${e}`),a+=`/${t}`),a},C=()=>window.location.protocol+"//"+window.location.host+n();function n(){let u=window._oc_webroot;if(typeof u>"u"){u=location.pathname;const e=u.indexOf("/index.php/");if(e!==-1)u=u.slice(0,e);else{const t=u.indexOf("/",1);u=u.slice(0,t>0?t:void 0)}}return u}function F(u){return(window._oc_appswebroots??{})[u]??""}const S=(u,e)=>{const t=u.__vccOpts||u;for(const[o,i]of e)t[o]=i;return t};class h{bundle;constructor(e){this.bundle={pluralFunction:e,translations:{}}}addTranslations(e){const t=Object.values(e.translations[""]??{}).map(({msgid:o,msgid_plural:i,msgstr:a})=>i!==void 0?[`_${o}_::_${i}_`,a]:[o,a[0]]);this.bundle.translations={...this.bundle.translations,...Object.fromEntries(t)}}gettext(e,t={}){return A("",e,t,void 0,{bundle:this.bundle})}ngettext(e,t,o,i={}){return p("",e,t,o,i,{bundle:this.bundle})}}class k{debug=!1;language="en";translations={};setLanguage(e){return this.language=e,this}detectLocale(){return this.detectLanguage()}detectLanguage(){return this.setLanguage(d().replace("-","_"))}addTranslation(e,t){return this.translations[e]=t,this}enableDebugMode(){return this.debug=!0,this}build(){this.debug&&console.debug(`Creating gettext instance for language ${this.language}`);const e=new h(t=>B(t,this.language));return this.language in this.translations&&e.addTranslations(this.translations[this.language]),e}}function g(){return new k}const v=g().detectLanguage().build(),N=(...u)=>v.ngettext(...u),P=(...u)=>v.gettext(...u);function z(...u){for(const e of u)if(!e.registered){for(const{l:t,t:o}of e){if(t!==d()||!o)continue;const i=Object.fromEntries(Object.entries(o).map(([a,r])=>[a,{msgid:a,msgid_plural:r.p,msgstr:r.v}]));v.addTranslations({translations:{"":i}})}e.registered=!0}}const w=[{l:"ar",t:{"{tag} (restricted)":{v:["{tag} (مقيد)"]},"Select a tag":{v:["اختر وسم"]}}},{l:"ast",t:{"{tag} (restricted)":{v:["{tag} (restrinxóse)"]},"Select a tag":{v:["Seleicionar una etiqueta"]}}},{l:"br",t:{"{tag} (restricted)":{v:["{tag} (bevennet)"]},"Select a tag":{v:["Choaz ur c'hlav"]}}},{l:"ca",t:{"{tag} (restricted)":{v:["{tag} (restringit)"]},"Select a tag":{v:["Seleccioneu una etiqueta"]}}},{l:"cs",t:{"{tag} (restricted)":{v:["{tag} (omezené)"]},"Select a tag":{v:["Vybrat štítek"]}}},{l:"cs-CZ",t:{"{tag} (restricted)":{v:["{tag} (omezené)"]},"Select a tag":{v:["Vybrat štítek"]}}},{l:"da",t:{"{tag} (restricted)":{v:["{tag} (begrænset)"]},"Select a tag":{v:["Vælg et mærke"]}}},{l:"de",t:{"{tag} (restricted)":{v:["{tag} (eingeschränkt)"]},"Select a tag":{v:["Schlagwort auswählen"]}}},{l:"de-DE",t:{"{tag} (restricted)":{v:["{tag} (eingeschränkt)"]},"Select a tag":{v:["Schlagwort auswählen"]}}},{l:"el",t:{"{tag} (restricted)":{v:["{tag} (περιορισμένο)"]},"Select a tag":{v:["Επιλογή ετικέτας"]}}},{l:"en-GB",t:{"{tag} (restricted)":{v:["{tag} (restricted)"]},"Select a tag":{v:["Select a tag"]}}},{l:"eo",t:{"{tag} (restricted)":{v:["{tag} (limigita)"]},"Select a tag":{v:["Elektu etikedon"]}}},{l:"es",t:{"{tag} (restricted)":{v:["{tag} (restringido)"]},"Select a tag":{v:["Seleccione una etiqueta"]}}},{l:"es-AR",t:{"{tag} (restricted)":{v:["{tag} (restringido)"]},"Select a tag":{v:["Elija una etiqueta"]}}},{l:"es-EC",t:{"{tag} (restricted)":{v:["{tag} (restricted)"]},"Select a tag":{v:["Seleccionar una etiqueta"]}}},{l:"es-MX",t:{"{tag} (restricted)":{v:["{tag} (restringido)"]},"Select a tag":{v:["Seleccionar una etiqueta"]}}},{l:"et-EE",t:{"{tag} (restricted)":{v:["{tag} (piiratud)"]},"Select a tag":{v:["Vali silt"]}}},{l:"eu",t:{"{tag} (restricted)":{v:["{tag} (mugatua)"]},"Select a tag":{v:["Hautatu etiketa bat"]}}},{l:"fa",t:{"{tag} (restricted)":{v:["{tag} محدود شده"]},"Select a tag":{v:["انتخاب یک برچسب"]}}},{l:"fi",t:{"{tag} (restricted)":{v:["{tag} (rajoitettu)"]},"Select a tag":{v:["Valitse tunniste"]}}},{l:"fr",t:{"{tag} (restricted)":{v:["{tag} (restreint)"]},"Select a tag":{v:["Sélectionnez une balise"]}}},{l:"ga",t:{"{tag} (restricted)":{v:["{tag} (srianta)"]},"Select a tag":{v:["Roghnaigh clib"]}}},{l:"gl",t:{"{tag} (restricted)":{v:["{tag} (restrinxido)"]},"Select a tag":{v:["Seleccione unha etiqueta"]}}},{l:"he",t:{"{tag} (restricted)":{v:["{tag} (מוגבל)"]},"Select a tag":{v:["בחירת תגית"]}}},{l:"hu",t:{"{tag} (restricted)":{v:["{tag} (korlátozott)"]},"Select a tag":{v:["Válasszon címkét"]}}},{l:"id",t:{"{tag} (restricted)":{v:["{tag} (dibatasi)"]},"Select a tag":{v:["Pilih tag"]}}},{l:"is",t:{"{tag} (restricted)":{v:["{tag} (takmarkað)"]},"Select a tag":{v:["Veldu merki"]}}},{l:"it",t:{"{tag} (restricted)":{v:["{tag} (limitato)"]},"Select a tag":{v:["Seleziona un'etichetta"]}}},{l:"ja",t:{"{tag} (restricted)":{v:["{tag} (制限付)"]},"Select a tag":{v:["タグを選択"]}}},{l:"ja-JP",t:{"{tag} (restricted)":{v:["{tag} (制限付)"]},"Select a tag":{v:["タグを選択"]}}},{l:"ko",t:{"{tag} (restricted)":{v:["{tag}(제한)"]},"Select a tag":{v:["태그 선택"]}}},{l:"lo",t:{"{tag} (restricted)":{v:["{tag} (ຈຳກັດ)"]},"Select a tag":{v:["ເລືອກແທັກ"]}}},{l:"lt-LT",t:{"{tag} (restricted)":{v:["{tag} (apribota)"]},"Select a tag":{v:["Pasirinkti žymę"]}}},{l:"lv",t:{"{tag} (restricted)":{v:["{tag} (ierobežots)"]},"Select a tag":{v:["Izvēlēties birku"]}}},{l:"mk",t:{"{tag} (restricted)":{v:["{tag} (ограничено)"]},"Select a tag":{v:["Избери ознака"]}}},{l:"my",t:{"{tag} (restricted)":{v:["{tag} (ကန့်သတ်)"]},"Select a tag":{v:["tag ရွေးချယ်ရန်"]}}},{l:"nb",t:{"{tag} (restricted)":{v:["{tag} (beskyttet)"]},"Select a tag":{v:["Velg en merkelapp"]}}},{l:"nl",t:{"{tag} (restricted)":{v:["{tag} (beperkt)"]},"Select a tag":{v:["Selecteer een label"]}}},{l:"oc",t:{"{tag} (restricted)":{v:["{tag} (limit)"]},"Select a tag":{v:["Seleccionar una etiqueta"]}}},{l:"pl",t:{"{tag} (restricted)":{v:["{tag} (ograniczona)"]},"Select a tag":{v:["Wybierz etykietę"]}}},{l:"pt-BR",t:{"{tag} (restricted)":{v:["{tag} (restrito)"]},"Select a tag":{v:["Selecione uma etiqueta"]}}},{l:"pt-PT",t:{"{tag} (restricted)":{v:["{tag} (restrito)"]},"Select a tag":{v:["Selecionar uma etiqueta"]}}},{l:"ro",t:{"{tag} (restricted)":{v:["{tag} (restricționat)"]},"Select a tag":{v:["Selectați o etichetă"]}}},{l:"ru",t:{"{tag} (restricted)":{v:["{tag} (ограниченное)"]},"Select a tag":{v:["Выберите метку"]}}},{l:"sk",t:{"{tag} (restricted)":{v:["{tag} (obmedzený)"]},"Select a tag":{v:["Vybrať štítok"]}}},{l:"sl",t:{"{tag} (restricted)":{v:["{tag} (omejeno)"]},"Select a tag":{v:["Izbor oznake"]}}},{l:"sr",t:{"{tag} (restricted)":{v:["{tag} (ограничено)"]},"Select a tag":{v:["Изаберите ознаку"]}}},{l:"sv",t:{"{tag} (restricted)":{v:["{tag} (begränsad)"]},"Select a tag":{v:["Välj en tag"]}}},{l:"tr",t:{"{tag} (restricted)":{v:["{tag} (kısıtlanmış)"]},"Select a tag":{v:["Bir etiket seçin"]}}},{l:"uk",t:{"{tag} (restricted)":{v:["{tag} (обмежений)"]},"Select a tag":{v:["Виберіть позначку"]}}},{l:"uz",t:{"{tag} (restricted)":{v:["{tag} (cheklangan)"]},"Select a tag":{v:["Teg tanlang"]}}},{l:"zh-CN",t:{"{tag} (restricted)":{v:["{tag} (受限)"]},"Select a tag":{v:["选择一个标签"]}}},{l:"zh-HK",t:{"{tag} (restricted)":{v:["{tag} (受限)"]},"Select a tag":{v:["選擇標籤"]}}},{l:"zh-TW",t:{"{tag} (restricted)":{v:["{tag}(受限)"]},"Select a tag":{v:["選擇標籤"]}}}],O=[{l:"ar",t:{"a few seconds ago":{v:["منذ عدة ثوانٍ"]},"sec. ago":{v:["ثانية مضت"]},"seconds ago":{v:["ثوانٍ مضت"]}}},{l:"ast",t:{"a few seconds ago":{v:["hai unos segundos"]},"sec. ago":{v:["hai segs"]},"seconds ago":{v:["hai segundos"]}}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{"a few seconds ago":{v:["před několika sekundami"]},"sec. ago":{v:["sek. před"]},"seconds ago":{v:["sekund předtím"]}}},{l:"cs-CZ",t:{"a few seconds ago":{v:["před několika sekundami"]},"sec. ago":{v:["sek. před"]},"seconds ago":{v:["sekund předtím"]}}},{l:"da",t:{"a few seconds ago":{v:["et par sekunder siden"]},"sec. ago":{v:["sek. siden"]},"seconds ago":{v:["sekunder siden"]}}},{l:"de",t:{"a few seconds ago":{v:["vor ein paar Sekunden"]},"sec. ago":{v:["Sek. zuvor"]},"seconds ago":{v:["Sekunden zuvor"]}}},{l:"de-DE",t:{"a few seconds ago":{v:["vor ein paar Sekunden"]},"sec. ago":{v:["Sek. zuvor"]},"seconds ago":{v:["Sekunden zuvor"]}}},{l:"el",t:{"a few seconds ago":{v:["πριν λίγα δευτερόλεπτα"]},"sec. ago":{v:["δευτ. πριν"]},"seconds ago":{v:["δευτερόλεπτα πριν"]}}},{l:"en-GB",t:{"a few seconds ago":{v:["a few seconds ago"]},"sec. ago":{v:["sec. ago"]},"seconds ago":{v:["seconds ago"]}}},{l:"eo",t:{}},{l:"es",t:{"a few seconds ago":{v:["hace unos pocos segundos"]},"sec. ago":{v:["hace segundos"]},"seconds ago":{v:["segundos atrás"]}}},{l:"es-AR",t:{"a few seconds ago":{v:["hace unos segundos"]},"sec. ago":{v:["seg. atrás"]},"seconds ago":{v:["segundos atrás"]}}},{l:"es-EC",t:{"a few seconds ago":{v:["hace unos segundos"]},"sec. ago":{v:["hace segundos"]},"seconds ago":{v:["Segundos atrás"]}}},{l:"es-MX",t:{"a few seconds ago":{v:["hace unos segundos"]},"sec. ago":{v:["seg. atrás"]},"seconds ago":{v:["segundos atrás"]}}},{l:"et-EE",t:{"a few seconds ago":{v:["mõni sekund tagasi"]},"sec. ago":{v:["sek. tagasi"]},"seconds ago":{v:["sekundit tagasi"]}}},{l:"eu",t:{"a few seconds ago":{v:["duela segundo batzuk"]},"sec. ago":{v:["duela seg."]},"seconds ago":{v:["duela segundo"]}}},{l:"fa",t:{"a few seconds ago":{v:["چند ثانیه پیش"]},"sec. ago":{v:["چند ثانیه پیش"]},"seconds ago":{v:["چند ثانیه پیش"]}}},{l:"fi",t:{"a few seconds ago":{v:["muutamia sekunteja sitten"]},"sec. ago":{v:["sek. sitten"]},"seconds ago":{v:["sekunteja sitten"]}}},{l:"fr",t:{"a few seconds ago":{v:["il y a quelques instants"]},"sec. ago":{v:["il y a qq. sec."]},"seconds ago":{v:["il y a quelques secondes"]}}},{l:"ga",t:{"a few seconds ago":{v:["cúpla soicind ó shin"]},"sec. ago":{v:["soic. ó shin"]},"seconds ago":{v:["soicind ó shin"]}}},{l:"gl",t:{"a few seconds ago":{v:["hai uns segundos"]},"sec. ago":{v:["segs. atrás"]},"seconds ago":{v:["segundos atrás"]}}},{l:"he",t:{"a few seconds ago":{v:["לפני מספר שניות"]},"sec. ago":{v:["לפני מספר שניות"]},"seconds ago":{v:["לפני מס׳ שניות"]}}},{l:"hu",t:{}},{l:"id",t:{"a few seconds ago":{v:["beberapa detik yang lalu"]},"sec. ago":{v:["dtk. yang lalu"]},"seconds ago":{v:["beberapa detik lalu"]}}},{l:"is",t:{"a few seconds ago":{v:["fyrir örfáum sekúndum síðan"]},"sec. ago":{v:["sek. síðan"]},"seconds ago":{v:["sekúndum síðan"]}}},{l:"it",t:{"a few seconds ago":{v:["pochi secondi fa"]},"sec. ago":{v:["sec. fa"]},"seconds ago":{v:["secondi fa"]}}},{l:"ja",t:{"a few seconds ago":{v:["数秒前"]},"sec. ago":{v:["秒前"]},"seconds ago":{v:["数秒前"]}}},{l:"ja-JP",t:{"a few seconds ago":{v:["数秒前"]},"sec. ago":{v:["秒前"]},"seconds ago":{v:["数秒前"]}}},{l:"ko",t:{"a few seconds ago":{v:["방금 전"]},"sec. ago":{v:["몇 초 전"]},"seconds ago":{v:["초 전"]}}},{l:"lo",t:{"a few seconds ago":{v:["ສອງສາມວິນາທີກ່ອນ"]},"sec. ago":{v:["ວິ. ກ່ອນ"]},"seconds ago":{v:["ວິນາທີກ່ອນ"]}}},{l:"lt-LT",t:{}},{l:"lv",t:{}},{l:"mk",t:{"a few seconds ago":{v:["пред неколку секунди"]},"sec. ago":{v:["секунда"]},"seconds ago":{v:["секунди"]}}},{l:"my",t:{}},{l:"nb",t:{"a few seconds ago":{v:["noen få sekunder siden"]},"sec. ago":{v:["sek. siden"]},"seconds ago":{v:["sekunder siden"]}}},{l:"nl",t:{"a few seconds ago":{v:["enkele seconden geleden"]},"sec. ago":{v:["sec. geleden"]},"seconds ago":{v:["seconden geleden"]}}},{l:"oc",t:{}},{l:"pl",t:{"a few seconds ago":{v:["kilka sekund temu"]},"sec. ago":{v:["sek. temu"]},"seconds ago":{v:["sekund temu"]}}},{l:"pt-BR",t:{"a few seconds ago":{v:["há alguns segundos"]},"sec. ago":{v:["seg. atrás"]},"seconds ago":{v:["segundos atrás"]}}},{l:"pt-PT",t:{"a few seconds ago":{v:["há alguns segundos"]},"sec. ago":{v:["seg. atrás"]},"seconds ago":{v:["segundos atrás"]}}},{l:"ro",t:{"a few seconds ago":{v:["acum câteva secunde"]},"sec. ago":{v:["sec. în urmă"]},"seconds ago":{v:["secunde în urmă"]}}},{l:"ru",t:{"a few seconds ago":{v:["несколько секунд назад"]},"sec. ago":{v:["сек. назад"]},"seconds ago":{v:["секунд назад"]}}},{l:"sk",t:{"a few seconds ago":{v:["pred chvíľou"]},"sec. ago":{v:["pred pár sekundami"]},"seconds ago":{v:["pred sekundami"]}}},{l:"sl",t:{}},{l:"sr",t:{"a few seconds ago":{v:["пре неколико секунди"]},"sec. ago":{v:["сек. раније"]},"seconds ago":{v:["секунди раније"]}}},{l:"sv",t:{"a few seconds ago":{v:["några sekunder sedan"]},"sec. ago":{v:["sek. sedan"]},"seconds ago":{v:["sekunder sedan"]}}},{l:"tr",t:{"a few seconds ago":{v:["birkaç saniye önce"]},"sec. ago":{v:["sn. önce"]},"seconds ago":{v:["saniye önce"]}}},{l:"uk",t:{"a few seconds ago":{v:["декілька секунд тому"]},"sec. ago":{v:["с тому"]},"seconds ago":{v:["с тому"]}}},{l:"uz",t:{"a few seconds ago":{v:["bir necha soniya oldin"]},"sec. ago":{v:["sek. oldin"]},"seconds ago":{v:["soniyalar oldin"]}}},{l:"zh-CN",t:{"a few seconds ago":{v:["几秒前"]},"sec. ago":{v:["几秒前"]},"seconds ago":{v:["几秒前"]}}},{l:"zh-HK",t:{"a few seconds ago":{v:["幾秒前"]},"sec. ago":{v:["秒前"]},"seconds ago":{v:["秒前"]}}},{l:"zh-TW",t:{"a few seconds ago":{v:["幾秒前"]},"sec. ago":{v:["秒前"]},"seconds ago":{v:["秒前"]}}}],M=[{l:"ar",t:{Acapulco:{v:["بازلائي مطفي"]},"Blue Violet":{v:["بنفسجي مشعشع"]},"Boston Blue":{v:["سماوي مطفي"]},Deluge:{v:["بنفسجي مطفي"]},Feldspar:{v:["وردي صخري"]},Gold:{v:["ذهبي"]},Mariner:{v:["أزرق بحري"]},"Nextcloud blue":{v:["أزرق نكست كلاود"]},Olivine:{v:["زيتي"]},Purple:{v:["بنفسجي"]},"Rosy brown":{v:["بُنِّي زهري"]},Whiskey:{v:["نبيذي"]}}},{l:"ast",t:{Acapulco:{v:["Acapulcu"]},"Blue Violet":{v:["Viola azulao"]},"Boston Blue":{v:["Azul Boston"]},Deluge:{v:["Deluge"]},Feldspar:{v:["Feldspar"]},Gold:{v:["Oru"]},Mariner:{v:["Marineru"]},"Nextcloud blue":{v:["Nextcloud azul"]},Olivine:{v:["Olivina"]},Purple:{v:["Moráu"]},"Rosy brown":{v:["Marrón arrosao"]},Whiskey:{v:["Whiskey"]}}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{Acapulco:{v:["Akapulko"]},Black:{v:["Černá"]},"Blue Violet":{v:["Modrofialová"]},"Boston Blue":{v:["Bostonská modrá"]},Deluge:{v:["Deluge"]},Feldspar:{v:["Živicová"]},Gold:{v:["Zlatá"]},Mariner:{v:["Námořnická"]},"Nextcloud blue":{v:["Nextcloud modrá"]},Olivine:{v:["Olivínová"]},Purple:{v:["Fialová"]},"Rosy brown":{v:["Růžovohnědá"]},Whiskey:{v:["Whisky"]},White:{v:["Bílá"]}}},{l:"cs-CZ",t:{Acapulco:{v:["Akapulko"]},"Blue Violet":{v:["Modrofialová"]},"Boston Blue":{v:["Bostonská modrá"]},Deluge:{v:["Deluge"]},Feldspar:{v:["Živicová"]},Gold:{v:["Zlatá"]},Mariner:{v:["Námořnická"]},"Nextcloud blue":{v:["Nextcloud modrá"]},Olivine:{v:["Olivínová"]},Purple:{v:["Fialová"]},"Rosy brown":{v:["Růžovohnědá"]},Whiskey:{v:["Whisky"]}}},{l:"da",t:{Acapulco:{v:["Acapulco"]},Black:{v:["Sort"]},"Blue Violet":{v:["Blue Violet"]},"Boston Blue":{v:["Boston Blue"]},Deluge:{v:["Deluge"]},Feldspar:{v:["Feldspar"]},Gold:{v:["Guld"]},Mariner:{v:["Mariner"]},"Nextcloud blue":{v:["Nextcloud blue"]},Olivine:{v:["Olivine"]},Purple:{v:["Lilla"]},"Rosy brown":{v:["Rosy brown"]},Whiskey:{v:["Whiskey"]},White:{v:["Hvid"]}}},{l:"de",t:{Acapulco:{v:["Acapulco"]},Black:{v:["Schwarz"]},"Blue Violet":{v:["Blau Violett"]},"Boston Blue":{v:["Boston-Blau"]},Deluge:{v:["Sintflut"]},Feldspar:{v:["Feldspat"]},Gold:{v:["Gold"]},Mariner:{v:["Seemann"]},"Nextcloud blue":{v:["Nextcloud Blau"]},Olivine:{v:["Olivin"]},Purple:{v:["Lila"]},"Rosy brown":{v:["Rosiges Braun"]},Whiskey:{v:["Whiskey"]},White:{v:["Weiß"]}}},{l:"de-DE",t:{Acapulco:{v:["Acapulco"]},Black:{v:["Schwarz"]},"Blue Violet":{v:["Blau Violett"]},"Boston Blue":{v:["Boston-Blau"]},Deluge:{v:["Sintflut"]},Feldspar:{v:["Feldspat"]},Gold:{v:["Gold"]},Mariner:{v:["Seemann"]},"Nextcloud blue":{v:["Nextcloud Blau"]},Olivine:{v:["Olivin"]},Purple:{v:["Lila"]},"Rosy brown":{v:["Rosiges Braun"]},Whiskey:{v:["Whiskey"]},White:{v:["Weiß"]}}},{l:"el",t:{Acapulco:{v:["Ακαπούλκο"]},Black:{v:["Μαύρο"]},"Blue Violet":{v:["Μπλε Βιολέτ"]},"Boston Blue":{v:["Μπλε Βοστώνης"]},Deluge:{v:["Deluge"]},Feldspar:{v:["Feldspar"]},Gold:{v:["Χρυσό"]},Mariner:{v:["Mariner"]},"Nextcloud blue":{v:["Μπλε Nextcloud"]},Olivine:{v:["Olivine"]},Purple:{v:["Μωβ"]},"Rosy brown":{v:["Ροζ καφέ"]},Whiskey:{v:["Ουίσκι"]},White:{v:["Λευκό"]}}},{l:"en-GB",t:{Acapulco:{v:["Acapulco"]},Black:{v:["Black"]},"Blue Violet":{v:["Blue Violet"]},"Boston Blue":{v:["Boston Blue"]},Deluge:{v:["Deluge"]},Feldspar:{v:["Feldspar"]},Gold:{v:["Gold"]},Mariner:{v:["Mariner"]},"Nextcloud blue":{v:["Nextcloud blue"]},Olivine:{v:["Olivine"]},Purple:{v:["Purple"]},"Rosy brown":{v:["Rosy brown"]},Whiskey:{v:["Whiskey"]},White:{v:["White"]}}},{l:"eo",t:{}},{l:"es",t:{Acapulco:{v:["Acapulco"]},"Blue Violet":{v:["Violeta Azul"]},"Boston Blue":{v:["Azul Boston"]},Deluge:{v:["Diluvio"]},Feldspar:{v:["Feldespato"]},Gold:{v:["Oro"]},Mariner:{v:["Marinero"]},"Nextcloud blue":{v:["Azul Nextcloud"]},Olivine:{v:["Olivino"]},Purple:{v:["Púrpura"]},"Rosy brown":{v:["Marrón rosáceo"]},Whiskey:{v:["Whiskey"]}}},{l:"es-AR",t:{Acapulco:{v:["Acapulco"]},"Blue Violet":{v:["Violeta Azul"]},"Boston Blue":{v:["Azul Boston"]},Deluge:{v:["Diluvio"]},Feldspar:{v:["Feldespato"]},Gold:{v:["Oro"]},Mariner:{v:["Marinero"]},"Nextcloud blue":{v:["Azul Nextcloud"]},Olivine:{v:["Olivino"]},Purple:{v:["Púrpura"]},"Rosy brown":{v:["Marrón rosáceo"]},Whiskey:{v:["Whiskey"]}}},{l:"es-EC",t:{}},{l:"es-MX",t:{Acapulco:{v:["Acapulco"]},"Blue Violet":{v:["Violeta Azul"]},"Boston Blue":{v:["Azul Boston"]},Deluge:{v:["Diluvio"]},Feldspar:{v:["Feldespato"]},Gold:{v:["Oro"]},Mariner:{v:["Marinero"]},"Nextcloud blue":{v:["Azul Nextcloud"]},Olivine:{v:["Olivino"]},Purple:{v:["Púrpura"]},"Rosy brown":{v:["Marrón rosáceo"]},Whiskey:{v:["Whiskey"]}}},{l:"et-EE",t:{Acapulco:{v:["Acapulco meresinine"]},Black:{v:["Must"]},"Blue Violet":{v:["Sinakasvioletne"]},"Boston Blue":{v:["Bostoni rohekassinine"]},Deluge:{v:["Tulvavee lilla"]},Feldspar:{v:["Põlevkivipruun"]},Gold:{v:["Kuldne"]},Mariner:{v:["Meresinine"]},"Nextcloud blue":{v:["Nextcloudi sinine"]},Olivine:{v:["Oliiviroheline"]},Purple:{v:["Purpurpunane"]},"Rosy brown":{v:["Roosikarva pruun"]},Whiskey:{v:["Viskikarva kollakaspruun"]},White:{v:["Valge"]}}},{l:"eu",t:{}},{l:"fa",t:{Acapulco:{v:["آکاپولکو"]},"Blue Violet":{v:["بنفش آبی"]},"Boston Blue":{v:["آبی بوستونی"]},Deluge:{v:["سیل"]},Feldspar:{v:["فلدسپات"]},Gold:{v:["طلا"]},Mariner:{v:["مارینر"]},"Nextcloud blue":{v:["نکس کلود آبی"]},Olivine:{v:["الیوین"]},Purple:{v:["بنفش"]},"Rosy brown":{v:["قهوه‌ای رز"]},Whiskey:{v:["ویسکی"]}}},{l:"fi",t:{Acapulco:{v:["Acapulco"]},"Blue Violet":{v:["Sinivioletti"]},"Boston Blue":{v:["Bostoninsininen"]},Deluge:{v:["Tulva"]},Feldspar:{v:["Feldspar"]},Gold:{v:["Kulta"]},Mariner:{v:["Merenkulkija"]},"Nextcloud blue":{v:["Nextcloudin sininen"]},Olivine:{v:["Oliviini"]},Purple:{v:["Purppura"]},"Rosy brown":{v:["Ruusunruskea"]},Whiskey:{v:["Viski"]}}},{l:"fr",t:{Acapulco:{v:["Acapulco"]},"Blue Violet":{v:["Bleu violet"]},"Boston Blue":{v:["Bleu de Boston"]},Deluge:{v:["Deluge"]},Feldspar:{v:["Feldspar"]},Gold:{v:["Doré"]},Mariner:{v:["Marin"]},"Nextcloud blue":{v:["Bleu Nextcloud"]},Olivine:{v:["Olivine"]},Purple:{v:["Violet"]},"Rosy brown":{v:["Brun rosé"]},Whiskey:{v:["Whiskey"]}}},{l:"ga",t:{Acapulco:{v:["Acapulco"]},Black:{v:["Dubh"]},"Blue Violet":{v:["Gorm Violet"]},"Boston Blue":{v:["Bostún Gorm"]},Deluge:{v:["Díle"]},Feldspar:{v:["Feldspar"]},Gold:{v:["Óir"]},Mariner:{v:["Mairnéalach"]},"Nextcloud blue":{v:["Nextcloud gorm"]},Olivine:{v:["Olaivín"]},Purple:{v:["Corcra"]},"Rosy brown":{v:["Rosach donn"]},Whiskey:{v:["Fuisce"]},White:{v:["Bán"]}}},{l:"gl",t:{Acapulco:{v:["Acapulco"]},Black:{v:["Negro"]},"Blue Violet":{v:["Azul violeta"]},"Boston Blue":{v:["Azul Boston"]},Deluge:{v:["Dioivo"]},Feldspar:{v:["Feldespato"]},Gold:{v:["Ouro"]},Mariner:{v:["Marino"]},"Nextcloud blue":{v:["Azul Nextcloud"]},Olivine:{v:["Olivina"]},Purple:{v:["Púrpura"]},"Rosy brown":{v:["Pardo rosado"]},Whiskey:{v:["Whisky"]},White:{v:["Branco"]}}},{l:"he",t:{}},{l:"hu",t:{}},{l:"id",t:{Gold:{v:["Emas"]},"Nextcloud blue":{v:["Biru Nextcloud"]},Purple:{v:["Ungu"]}}},{l:"is",t:{Acapulco:{v:["Acapulco"]},"Blue Violet":{v:["Bláklukka"]},"Boston Blue":{v:["Bostonblátt"]},Deluge:{v:["Fjólublátt"]},Feldspar:{v:["Feldspat"]},Gold:{v:["Gull"]},Mariner:{v:["Sjóarablátt"]},"Nextcloud blue":{v:["Nextcloud blátt"]},Olivine:{v:["Ólivín"]},Purple:{v:["Purpurablátt"]},"Rosy brown":{v:["Rósabrúnt"]},Whiskey:{v:["Viský"]}}},{l:"it",t:{Gold:{v:["Oro"]},"Nextcloud blue":{v:["Nextcloud blue"]},Purple:{v:["Viola"]}}},{l:"ja",t:{Acapulco:{v:["アカプルコ"]},Black:{v:["黒"]},"Blue Violet":{v:["ブルーバイオレット"]},"Boston Blue":{v:["ボストンブルー"]},Deluge:{v:["豪雨"]},Feldspar:{v:["長石"]},Gold:{v:["黄金"]},Mariner:{v:["船乗り"]},"Nextcloud blue":{v:["ネクストクラウド・ブルー"]},Olivine:{v:["カンラン石"]},Purple:{v:["紫色"]},"Rosy brown":{v:["バラ色"]},Whiskey:{v:["ウイスキー"]},White:{v:["白"]}}},{l:"ja-JP",t:{Acapulco:{v:["アカプルコ"]},"Blue Violet":{v:["ブルーバイオレット"]},"Boston Blue":{v:["ボストンブルー"]},Deluge:{v:["豪雨"]},Feldspar:{v:["長石"]},Gold:{v:["黄金"]},Mariner:{v:["船乗り"]},"Nextcloud blue":{v:["ネクストクラウド・ブルー"]},Olivine:{v:["カンラン石"]},Purple:{v:["紫色"]},"Rosy brown":{v:["バラ色"]},Whiskey:{v:["ウイスキー"]}}},{l:"ko",t:{Acapulco:{v:["아카풀코"]},"Blue Violet":{v:["푸른 보라"]},"Boston Blue":{v:["보스턴 블루"]},Deluge:{v:["폭우"]},Feldspar:{v:["장석"]},Gold:{v:["금"]},Mariner:{v:["뱃사람"]},"Nextcloud blue":{v:["Nextcloud 파랑"]},Olivine:{v:["감람석"]},Purple:{v:["보라"]},"Rosy brown":{v:["로지 브라운"]},Whiskey:{v:["위스키"]}}},{l:"lo",t:{Acapulco:{v:["Acapulco"]},Black:{v:["ສີດຳ"]},"Blue Violet":{v:["Blue Violet"]},"Boston Blue":{v:["Boston Blue"]},Deluge:{v:["Deluge"]},Feldspar:{v:["Feldspar"]},Gold:{v:["ສີຄຳ"]},Mariner:{v:["Mariner"]},"Nextcloud blue":{v:["ສີຟ້າ Nextcloud"]},Olivine:{v:["Olivine"]},Purple:{v:["ສີມ່ວງ"]},"Rosy brown":{v:["Rosy brown"]},Whiskey:{v:["Whiskey"]},White:{v:["ສີຂາວ"]}}},{l:"lt-LT",t:{}},{l:"lv",t:{}},{l:"mk",t:{Acapulco:{v:["Акапулко"]},Black:{v:["Црно"]},"Blue Violet":{v:["Сино Виолетова"]},"Boston Blue":{v:["Бостон Сина"]},Deluge:{v:["Делуџ"]},Feldspar:{v:["Фелдспар"]},Gold:{v:["Златна"]},Mariner:{v:["Маринер"]},"Nextcloud blue":{v:["Nextcloud сина"]},Olivine:{v:["Оливин"]},Purple:{v:["Виолетова"]},"Rosy brown":{v:["Розево-кафеава"]},Whiskey:{v:["Виски"]},White:{v:["Бела"]}}},{l:"my",t:{}},{l:"nb",t:{Acapulco:{v:["Acapulco"]},"Blue Violet":{v:["Blå fiolett"]},"Boston Blue":{v:["Boston blå"]},Deluge:{v:["Syndflod"]},Feldspar:{v:["Feltspat"]},Gold:{v:["Gull"]},Mariner:{v:["Mariner"]},"Nextcloud blue":{v:["Nextcloud-blå"]},Olivine:{v:["Olivin"]},Purple:{v:["Lilla"]},"Rosy brown":{v:["Rosenrød brun"]},Whiskey:{v:["Whiskey"]}}},{l:"nl",t:{Acapulco:{v:["Acapulco"]},Black:{v:["Zwart"]},"Blue Violet":{v:["Blauw Paars"]},"Boston Blue":{v:["Boston Blauw"]},Deluge:{v:["Overlopen"]},Feldspar:{v:["Veldspaat"]},Gold:{v:["Goud"]},Mariner:{v:["Marineblauw"]},"Nextcloud blue":{v:["Nextcloud blauw"]},Olivine:{v:["Olivijn"]},Purple:{v:["Paars"]},"Rosy brown":{v:["Rozig bruin"]},Whiskey:{v:["Whiskey"]},White:{v:["Wit"]}}},{l:"oc",t:{}},{l:"pl",t:{Acapulco:{v:["Acapulco"]},"Blue Violet":{v:["Niebieski fiolet"]},"Boston Blue":{v:["Błękit Bostonu"]},Deluge:{v:["Potop"]},Feldspar:{v:["Skaleń"]},Gold:{v:["Złote"]},Mariner:{v:["Marynarz"]},"Nextcloud blue":{v:["Niebieskie Nextcloud"]},Olivine:{v:["Oliwin"]},Purple:{v:["Fioletowy"]},"Rosy brown":{v:["Różowy brąz"]},Whiskey:{v:["Whisky"]}}},{l:"pt-BR",t:{Acapulco:{v:["Acapulco"]},Black:{v:["Preto"]},"Blue Violet":{v:["Violeta Azul"]},"Boston Blue":{v:["Azul Boston"]},Deluge:{v:["Deluge"]},Feldspar:{v:["Feldspato"]},Gold:{v:["Ouro"]},Mariner:{v:["Marinheiro"]},"Nextcloud blue":{v:["Azul Nextcloud"]},Olivine:{v:["Olivina"]},Purple:{v:["Roxo"]},"Rosy brown":{v:["Castanho rosado"]},Whiskey:{v:["Uísque"]},White:{v:["Branco"]}}},{l:"pt-PT",t:{Acapulco:{v:["Acapulco"]},"Blue Violet":{v:["Azul violeta"]},"Boston Blue":{v:["Azul Boston"]},Deluge:{v:["Deluge"]},Feldspar:{v:["Feldspar"]},Gold:{v:["Ouro"]},Mariner:{v:["Mariner"]},"Nextcloud blue":{v:["Nextcloud azul"]},Olivine:{v:["Olivine"]},Purple:{v:["Púrpura"]},"Rosy brown":{v:["Castanho rosado"]},Whiskey:{v:["Whiskey"]}}},{l:"ro",t:{Gold:{v:["Aur"]},"Nextcloud blue":{v:["Nextcloud albastru"]},Purple:{v:["Purpuriu"]}}},{l:"ru",t:{Acapulco:{v:["Акапулько"]},"Blue Violet":{v:["Синий фиолет"]},"Boston Blue":{v:["Синий Бостон"]},Deluge:{v:["Перламутрово-фиолетовый"]},Feldspar:{v:["Античная латунь"]},Gold:{v:["Золотой"]},Mariner:{v:["Морской"]},"Nextcloud blue":{v:["Nextcloud голубой"]},Olivine:{v:[" Оливковый"]},Purple:{v:["Фиолетовый"]},"Rosy brown":{v:["Розово-коричневый"]},Whiskey:{v:["Виски"]}}},{l:"sk",t:{Acapulco:{v:["Acapulco"]},"Blue Violet":{v:["Modro fialová"]},"Boston Blue":{v:["Bostonská modrá"]},Deluge:{v:["Deluge"]},Feldspar:{v:["Živec"]},Gold:{v:["Zlatá"]},Mariner:{v:["Námorník"]},"Nextcloud blue":{v:["Nextcloud modrá"]},Olivine:{v:["Olivová"]},Purple:{v:["Fialová"]},"Rosy brown":{v:["Ružovo hnedá"]},Whiskey:{v:["Whisky"]}}},{l:"sl",t:{}},{l:"sr",t:{Acapulco:{v:["Акапулко"]},Black:{v:["Црно"]},"Blue Violet":{v:["Плаво љубичаста"]},"Boston Blue":{v:["Бостон плава"]},Deluge:{v:["Поплава"]},Feldspar:{v:["Фелдспар"]},Gold:{v:["Злато"]},Mariner:{v:["Морнар"]},"Nextcloud blue":{v:["Nextcloud плава"]},Olivine:{v:["Маслинаста"]},Purple:{v:["Пурпурна"]},"Rosy brown":{v:["Роси браон"]},Whiskey:{v:["Виски"]},White:{v:["Бело"]}}},{l:"sv",t:{Acapulco:{v:["Acapulco"]},"Blue Violet":{v:["Blåviolett"]},"Boston Blue":{v:["Bostonblå"]},Deluge:{v:["Skyfallsblå"]},Feldspar:{v:["Feldspat"]},Gold:{v:["Guld"]},Mariner:{v:["Marinblå"]},"Nextcloud blue":{v:["Nextcloud-blå"]},Olivine:{v:["Olivin"]},Purple:{v:["Lila"]},"Rosy brown":{v:["Rosabrun"]},Whiskey:{v:["Whisky"]}}},{l:"tr",t:{Acapulco:{v:["Akapulko"]},Black:{v:["Siyah"]},"Blue Violet":{v:["Mavi mor"]},"Boston Blue":{v:["Boston mavisi"]},Deluge:{v:["Sel"]},Feldspar:{v:["Feldispat"]},Gold:{v:["Altın"]},Mariner:{v:["Denizci"]},"Nextcloud blue":{v:["Nextcloud mavi"]},Olivine:{v:["Zeytinlik"]},Purple:{v:["Mor"]},"Rosy brown":{v:["Kırmızımsı kahverengi"]},Whiskey:{v:["Viski"]},White:{v:["Beyaz"]}}},{l:"uk",t:{Acapulco:{v:["Акапулько"]},"Blue Violet":{v:["Блакитна фіалка"]},"Boston Blue":{v:["Бостонський синій"]},Deluge:{v:["Злива"]},Feldspar:{v:["Польові шпати"]},Gold:{v:["Золотий"]},Mariner:{v:["Морський"]},"Nextcloud blue":{v:["Блакитний Nextcloud"]},Olivine:{v:["Олива"]},Purple:{v:["Фіолетовий"]},"Rosy brown":{v:["Темно-рожевий"]},Whiskey:{v:["Кола"]}}},{l:"uz",t:{Acapulco:{v:["Akapulko"]},Black:{v:["Qora"]},"Blue Violet":{v:["Moviy binafsha"]},"Boston Blue":{v:["Boston ko'k"]},Deluge:{v:["To'fon"]},Feldspar:{v:["Feldspar"]},Gold:{v:["Oltin"]},Mariner:{v:["Dengizchi"]},"Nextcloud blue":{v:["Ko'k Nextcloud "]},Olivine:{v:["Olivine"]},Purple:{v:["Binafsha"]},"Rosy brown":{v:["Qizil jigarrang"]},Whiskey:{v:["Whiskey"]},White:{v:["Oq"]}}},{l:"zh-CN",t:{Acapulco:{v:["Acapulco"]},"Blue Violet":{v:["瓦罗兰特蓝"]},"Boston Blue":{v:["波士顿蓝"]},Deluge:{v:["洪水色"]},Feldspar:{v:["长石"]},Gold:{v:["金色"]},Mariner:{v:["水手"]},"Nextcloud blue":{v:["Nextcloud 蓝"]},Olivine:{v:["橄榄石色"]},Purple:{v:["紫色"]},"Rosy brown":{v:["玫瑰棕色"]},Whiskey:{v:["威士忌"]}}},{l:"zh-HK",t:{Acapulco:{v:["阿卡普爾科"]},Black:{v:["黑色"]},"Blue Violet":{v:["藍紫色"]},"Boston Blue":{v:["波士頓藍"]},Deluge:{v:["大洪水"]},Feldspar:{v:["長石"]},Gold:{v:["Gold"]},Mariner:{v:["海軍藍"]},"Nextcloud blue":{v:["Nextcloud 藍色"]},Olivine:{v:["橄欖石色"]},Purple:{v:["紫色"]},"Rosy brown":{v:["玫瑰棕色"]},Whiskey:{v:["威士忌"]},White:{v:["白色"]}}},{l:"zh-TW",t:{Acapulco:{v:["Acapulco"]},"Blue Violet":{v:["藍紫色"]},"Boston Blue":{v:["波士頓藍"]},Deluge:{v:["Deluge"]},Feldspar:{v:["長石"]},Gold:{v:["金色"]},Mariner:{v:["海軍藍"]},"Nextcloud blue":{v:["Nextcloud 藍色"]},Olivine:{v:["橄欖石色"]},Purple:{v:["紫色"]},"Rosy brown":{v:["玫瑰棕色"]},Whiskey:{v:["威士忌"]}}}],R=[{l:"ar",t:{Actions:{v:["إجراءات"]}}},{l:"ast",t:{Actions:{v:["Aiciones"]}}},{l:"br",t:{Actions:{v:["Oberioù"]}}},{l:"ca",t:{Actions:{v:["Accions"]}}},{l:"cs",t:{Actions:{v:["Akce"]}}},{l:"cs-CZ",t:{Actions:{v:["Akce"]}}},{l:"da",t:{Actions:{v:["Handlinger"]}}},{l:"de",t:{Actions:{v:["Aktionen"]}}},{l:"de-DE",t:{Actions:{v:["Aktionen"]}}},{l:"el",t:{Actions:{v:["Ενέργειες"]}}},{l:"en-GB",t:{Actions:{v:["Actions"]}}},{l:"eo",t:{Actions:{v:["Agoj"]}}},{l:"es",t:{Actions:{v:["Acciones"]}}},{l:"es-AR",t:{Actions:{v:["Acciones"]}}},{l:"es-EC",t:{Actions:{v:["Acciones"]}}},{l:"es-MX",t:{Actions:{v:["Acciones"]}}},{l:"et-EE",t:{Actions:{v:["Tegevus"]}}},{l:"eu",t:{Actions:{v:["Ekintzak"]}}},{l:"fa",t:{Actions:{v:["کنش‌ها"]}}},{l:"fi",t:{Actions:{v:["Toiminnot"]}}},{l:"fr",t:{Actions:{v:["Actions"]}}},{l:"ga",t:{Actions:{v:["Gníomhartha"]}}},{l:"gl",t:{Actions:{v:["Accións"]}}},{l:"he",t:{Actions:{v:["פעולות"]}}},{l:"hu",t:{Actions:{v:["Műveletek"]}}},{l:"id",t:{Actions:{v:["Tindakan"]}}},{l:"is",t:{Actions:{v:["Aðgerðir"]}}},{l:"it",t:{Actions:{v:["Azioni"]}}},{l:"ja",t:{Actions:{v:["操作"]}}},{l:"ja-JP",t:{Actions:{v:["操作"]}}},{l:"ko",t:{Actions:{v:["동작"]}}},{l:"lo",t:{Actions:{v:["ການກະທຳ"]}}},{l:"lt-LT",t:{Actions:{v:["Veiksmai"]}}},{l:"lv",t:{}},{l:"mk",t:{Actions:{v:["Акции"]}}},{l:"my",t:{Actions:{v:["လုပ်ဆောင်ချက်များ"]}}},{l:"nb",t:{Actions:{v:["Handlinger"]}}},{l:"nl",t:{Actions:{v:["Acties"]}}},{l:"oc",t:{Actions:{v:["Accions"]}}},{l:"pl",t:{Actions:{v:["Działania"]}}},{l:"pt-BR",t:{Actions:{v:["Ações"]}}},{l:"pt-PT",t:{Actions:{v:["Ações"]}}},{l:"ro",t:{Actions:{v:["Acțiuni"]}}},{l:"ru",t:{Actions:{v:["Действия "]}}},{l:"sk",t:{Actions:{v:["Akcie"]}}},{l:"sl",t:{Actions:{v:["Dejanja"]}}},{l:"sr",t:{Actions:{v:["Радње"]}}},{l:"sv",t:{Actions:{v:["Åtgärder"]}}},{l:"tr",t:{Actions:{v:["İşlemler"]}}},{l:"uk",t:{Actions:{v:["Дії"]}}},{l:"uz",t:{Actions:{v:["Harakatlar"]}}},{l:"zh-CN",t:{Actions:{v:["行为"]}}},{l:"zh-HK",t:{Actions:{v:["動作"]}}},{l:"zh-TW",t:{Actions:{v:["動作"]}}}],T=[{l:"ar",t:{Activities:{v:["سجل الأنشطة"]},"Animals & Nature":{v:["الحيوانات والطبيعة"]},Custom:{v:["مُخصَّص"]},"Dark skin tone":{v:["أسمر البُشرة"]},"Emoji picker":{v:["لاقط الإيموجي"]},Flags:{v:["الأعلام"]},"Food & Drink":{v:["الطعام والشراب"]},"Frequently used":{v:["شائعة الاستعمال"]},"Light skin tone":{v:["فاتح البُشرة"]},"Medium dark skin tone":{v:["بشرة متوسطة الاسمرار"]},"Medium light skin tone":{v:["بشرة متوسطة البياض"]},"Medium skin tone":{v:["بشرة وسطية اللون"]},"Neutral skin color":{v:["لون بُشرة طبيعي"]},Objects:{v:["أشياء"]},"People & Body":{v:["أشخاص و أجسام"]},"Pick an emoji":{v:["إختَر رمز إيموجي emoji"]},"Search emoji":{v:["البحث عن إيموجي emoji"]},"Search results":{v:["نتائج البحث"]},Selected:{v:["محدّدة"]},"Skin tone":{v:["لون البُشرة"]},"Smileys & Emotion":{v:["وجوهٌ ضاحكة و مشاعر"]},Symbols:{v:["رموز"]},"Travel & Places":{v:["سفر و أماكن"]}}},{l:"ast",t:{Activities:{v:["Actividaes"]},"Animals & Nature":{v:["Animales y natura"]},Custom:{v:["Personalizar"]},"Dark skin tone":{v:["Tonu d'aspeutu escuru"]},"Emoji picker":{v:["Selector de fustaxes"]},Flags:{v:["Banderes"]},"Food & Drink":{v:["Cómida y bébora"]},"Frequently used":{v:["D'usu frecuente"]},"Light skin tone":{v:["Tonu d'aspeutu claru"]},"Medium dark skin tone":{v:["Tonu d'aspeutu medio escuru"]},"Medium light skin tone":{v:["Tonu d'aspeutu medio claru"]},"Medium skin tone":{v:["Tonu d'aspeutu mediu"]},"Neutral skin color":{v:["Color d'aspeutu neutral"]},Objects:{v:["Oxetos"]},"People & Body":{v:["Persones y cuerpu"]},"Pick an emoji":{v:["Escueyi un fustaxe"]},"Search emoji":{v:["Buscar nos fustaxes"]},"Search results":{v:["Resultaos de la busca"]},Selected:{v:["Na seleición"]},"Skin tone":{v:["Tonu d'aspeutu"]},"Smileys & Emotion":{v:["Sorrises y emociones"]},Symbols:{v:["Símbolos"]},"Travel & Places":{v:["Viaxes y llugares"]}}},{l:"br",t:{Activities:{v:["Oberiantizoù"]},"Animals & Nature":{v:["Loened & Natur"]},Custom:{v:["Personelañ"]},Flags:{v:["Bannieloù"]},"Food & Drink":{v:["Boued & Evajoù"]},"Frequently used":{v:["Implijet alies"]},Objects:{v:["Traoù"]},"People & Body":{v:["Tud & Korf"]},"Pick an emoji":{v:["Choaz un emoji"]},"Search results":{v:["Disoc'hoù an enklask"]},"Smileys & Emotion":{v:["Smileyioù & Fromoù"]},Symbols:{v:["Arouezioù"]},"Travel & Places":{v:["Beaj & Lec'hioù"]}}},{l:"ca",t:{Activities:{v:["Activitats"]},"Animals & Nature":{v:["Animals i natura"]},Custom:{v:["Personalitzat"]},Flags:{v:["Marques"]},"Food & Drink":{v:["Menjar i begudes"]},"Frequently used":{v:["Utilitzats recentment"]},Objects:{v:["Objectes"]},"People & Body":{v:["Persones i cos"]},"Pick an emoji":{v:["Trieu un emoji"]},"Search results":{v:["Resultats de cerca"]},"Smileys & Emotion":{v:["Cares i emocions"]},Symbols:{v:["Símbols"]},"Travel & Places":{v:["Viatges i llocs"]}}},{l:"cs",t:{Activities:{v:["Aktivity"]},"Animals & Nature":{v:["Zvířata a příroda"]},Custom:{v:["Uživatelsky určené"]},"Dark skin tone":{v:["Tmavý tělový tón"]},"Emoji picker":{v:["Výběr emotikon"]},Flags:{v:["Příznaky"]},"Food & Drink":{v:["Jídlo a pití"]},"Frequently used":{v:["Často používané"]},"Light skin tone":{v:["Světlý tělový tón"]},"Medium dark skin tone":{v:["Středně tmavý tělový tón"]},"Medium light skin tone":{v:["Středně světlý tělový tón"]},"Medium skin tone":{v:["Střední tělový tón"]},"Neutral skin color":{v:["Neutrální tělová barva"]},Objects:{v:["Objekty"]},"People & Body":{v:["Lidé a tělo"]},"Pick an emoji":{v:["Vybrat emoji"]},"Search emoji":{v:["Hledat emoji"]},"Search results":{v:["Výsledky hledání"]},Selected:{v:["Vybráno"]},"Skin tone":{v:["Tělový tón"]},"Smileys & Emotion":{v:["Úsměvy a emoce"]},Symbols:{v:["Symboly"]},"Travel & Places":{v:["Cestování a místa"]}}},{l:"cs-CZ",t:{Activities:{v:["Aktivity"]},"Animals & Nature":{v:["Zvířata a příroda"]},Custom:{v:["Uživatelsky určené"]},"Dark skin tone":{v:["Tmavý tělový tón"]},"Emoji picker":{v:["Výběr emotikon"]},Flags:{v:["Příznaky"]},"Food & Drink":{v:["Jídlo a pití"]},"Frequently used":{v:["Často používané"]},"Light skin tone":{v:["Světlý tělový tón"]},"Medium dark skin tone":{v:["Středně tmavý tělový tón"]},"Medium light skin tone":{v:["Středně světlý tělový tón"]},"Medium skin tone":{v:["Střední tělový tón"]},"Neutral skin color":{v:["Neutřální tělová barva"]},Objects:{v:["Objekty"]},"People & Body":{v:["Lidé a tělo"]},"Pick an emoji":{v:["Vybrat emoji"]},"Search emoji":{v:["Hledat emoji"]},"Search results":{v:["Výsledky hledání"]},Selected:{v:["Vybráno"]},"Skin tone":{v:["Tělový tón"]},"Smileys & Emotion":{v:["Úsměvy a emoce"]},Symbols:{v:["Symboly"]},"Travel & Places":{v:["Cestování a místa"]}}},{l:"da",t:{Activities:{v:["Aktiviteter"]},"Animals & Nature":{v:["Dyr & Natur"]},Custom:{v:["Brugerdefineret"]},"Dark skin tone":{v:["Mørk skin tone"]},"Emoji picker":{v:["Emoji vælger"]},Flags:{v:["Flag"]},"Food & Drink":{v:["Mad & Drikke"]},"Frequently used":{v:["Ofte brugt"]},"Light skin tone":{v:["Lys skin tone"]},"Medium dark skin tone":{v:["Medium mørk skin tone"]},"Medium light skin tone":{v:["Medium lys skin tone"]},"Medium skin tone":{v:["Medium skin tone"]},"Neutral skin color":{v:["Neutral skin color"]},Objects:{v:["Objekter"]},"People & Body":{v:["Mennesker & Menneskekroppen"]},"Pick an emoji":{v:["Vælg en emoji"]},"Search emoji":{v:["Søg emoji"]},"Search results":{v:["Søgeresultater"]},Selected:{v:["Valgt"]},"Skin tone":{v:["Skin tone"]},"Smileys & Emotion":{v:["Smileys & Emotion"]},Symbols:{v:["Symboler"]},"Travel & Places":{v:["Rejser & Rejsemål"]}}},{l:"de",t:{Activities:{v:["Aktivitäten"]},"Animals & Nature":{v:["Tiere & Natur"]},Custom:{v:["Benutzerdefiniert"]},"Dark skin tone":{v:["Dunkler Hautfarbton"]},"Emoji picker":{v:["Emoji-Auswahl"]},Flags:{v:["Flaggen"]},"Food & Drink":{v:["Essen & Trinken"]},"Frequently used":{v:["Häufig verwendet"]},"Light skin tone":{v:["Heller Hautfarbton"]},"Medium dark skin tone":{v:["Mitteldunkler Hautfarbton"]},"Medium light skin tone":{v:["Mittelheller Hautfarbton"]},"Medium skin tone":{v:["Mittlerer Hautfarbton"]},"Neutral skin color":{v:["Neutraler Hautfarbton"]},Objects:{v:["Objekte"]},"People & Body":{v:["Menschen & Körper"]},"Pick an emoji":{v:["Ein Emoji auswählen"]},"Search emoji":{v:["Emoji suchen"]},"Search results":{v:["Suchergebnisse"]},Selected:{v:["Ausgewählt"]},"Skin tone":{v:["Hautfarbton"]},"Smileys & Emotion":{v:["Smileys & Emotionen"]},Symbols:{v:["Symbole"]},"Travel & Places":{v:["Reisen & Orte"]}}},{l:"de-DE",t:{Activities:{v:["Aktivitäten"]},"Animals & Nature":{v:["Tiere & Natur"]},Custom:{v:["Benutzerdefiniert"]},"Dark skin tone":{v:["Dunkler Hautfarbton"]},"Emoji picker":{v:["Emoji-Auswahl"]},Flags:{v:["Flaggen"]},"Food & Drink":{v:["Essen & Trinken"]},"Frequently used":{v:["Häufig verwendet"]},"Light skin tone":{v:["Heller Hautfarbton"]},"Medium dark skin tone":{v:["Mitteldunkler Hautfarbton"]},"Medium light skin tone":{v:["Mittelheller Hautfarbton"]},"Medium skin tone":{v:["Mittlerer Hautfarbton"]},"Neutral skin color":{v:["Neutraler Hautfarbton"]},Objects:{v:["Objekte"]},"People & Body":{v:["Menschen & Körper"]},"Pick an emoji":{v:["Ein Emoji auswählen"]},"Search emoji":{v:["Emoji suchen"]},"Search results":{v:["Suchergebnisse"]},Selected:{v:["Ausgewählt"]},"Skin tone":{v:["Hautfarbton"]},"Smileys & Emotion":{v:["Smileys & Emotionen"]},Symbols:{v:["Symbole"]},"Travel & Places":{v:["Reisen & Orte"]}}},{l:"el",t:{Activities:{v:["Δραστηριότητες"]},"Animals & Nature":{v:["Ζώα & Φύση"]},Custom:{v:["Προσαρμογή"]},"Dark skin tone":{v:["Σκούρο θέμα"]},"Emoji picker":{v:["Επιλογέας emoji"]},Flags:{v:["Σημαίες"]},"Food & Drink":{v:["Φαγητό & Ποτό"]},"Frequently used":{v:["Συχνά χρησιμοποιούμενο"]},"Light skin tone":{v:["Ανοιχτό θέμα"]},"Medium dark skin tone":{v:["Μέτριο σκούρο θέμα"]},"Medium light skin tone":{v:["Μέτριο ανοιχτό θέμα"]},"Medium skin tone":{v:["Μέτριος τόνος θέματος"]},"Neutral skin color":{v:["Ουδέτερο χρώμα θέματος"]},Objects:{v:["Αντικείμενα"]},"People & Body":{v:["Άνθρωποι & Σώμα"]},"Pick an emoji":{v:["Επιλέξτε ένα emoji"]},"Search emoji":{v:["Αναζήτηση emoji"]},"Search results":{v:["Αποτελέσματα αναζήτησης"]},Selected:{v:["Επιλεγμένο"]},"Skin tone":{v:["Τόνος δέρματος"]},"Smileys & Emotion":{v:["Φατσούλες & Συναίσθημα"]},Symbols:{v:["Σύμβολα"]},"Travel & Places":{v:["Ταξίδια & Τοποθεσίες"]}}},{l:"en-GB",t:{Activities:{v:["Activities"]},"Animals & Nature":{v:["Animals & Nature"]},Custom:{v:["Custom"]},"Dark skin tone":{v:["Dark skin tone"]},"Emoji picker":{v:["Emoji picker"]},Flags:{v:["Flags"]},"Food & Drink":{v:["Food & Drink"]},"Frequently used":{v:["Frequently used"]},"Light skin tone":{v:["Light skin tone"]},"Medium dark skin tone":{v:["Medium dark skin tone"]},"Medium light skin tone":{v:["Medium light skin tone"]},"Medium skin tone":{v:["Medium skin tone"]},"Neutral skin color":{v:["Neutral skin colour"]},Objects:{v:["Objects"]},"People & Body":{v:["People & Body"]},"Pick an emoji":{v:["Pick an emoji"]},"Search emoji":{v:["Search emoji"]},"Search results":{v:["Search results"]},Selected:{v:["Selected"]},"Skin tone":{v:["Skin tone"]},"Smileys & Emotion":{v:["Smileys & Emotion"]},Symbols:{v:["Symbols"]},"Travel & Places":{v:["Travel & Places"]}}},{l:"eo",t:{Activities:{v:["Aktiveco"]},"Animals & Nature":{v:["Bestoj & Naturo"]},Custom:{v:["Propra"]},Flags:{v:["Flagoj"]},"Food & Drink":{v:["Manĝaĵo & Trinkaĵo"]},"Frequently used":{v:["Ofte uzataj"]},Objects:{v:["Objektoj"]},"People & Body":{v:["Homoj & Korpo"]},"Pick an emoji":{v:["Elekti emoĝion "]},"Search results":{v:["Serĉrezultoj"]},"Smileys & Emotion":{v:["Ridoj kaj Emocioj"]},Symbols:{v:["Signoj"]},"Travel & Places":{v:["Vojaĵoj & Lokoj"]}}},{l:"es",t:{Activities:{v:["Actividades"]},"Animals & Nature":{v:["Animales y naturaleza"]},Custom:{v:["Personalizado"]},"Dark skin tone":{v:["Tono de piel obscuro"]},"Emoji picker":{v:["Selector de emojis"]},Flags:{v:["Banderas"]},"Food & Drink":{v:["Comida y bebida"]},"Frequently used":{v:["Usado con frecuencia"]},"Light skin tone":{v:["Tono de piel claro"]},"Medium dark skin tone":{v:["Tono de piel medio oscuro"]},"Medium light skin tone":{v:["Tono de piel medio claro"]},"Medium skin tone":{v:["Tono de piel medio"]},"Neutral skin color":{v:["Color de piel neutral"]},Objects:{v:["Objetos"]},"People & Body":{v:["Personas y Cuerpo"]},"Pick an emoji":{v:["Elegir un emoji"]},"Search emoji":{v:["Buscar emoji"]},"Search results":{v:["Resultados de la búsqueda"]},Selected:{v:["Seleccionado"]},"Skin tone":{v:["Tono de piel"]},"Smileys & Emotion":{v:["Smileys y emoticonos"]},Symbols:{v:["Símbolos"]},"Travel & Places":{v:["Viajes y lugares"]}}},{l:"es-AR",t:{Activities:{v:["Actividades"]},"Animals & Nature":{v:["Animales y Naturaleza"]},Custom:{v:["Personalizado"]},"Dark skin tone":{v:["Tono de piel oscuro"]},"Emoji picker":{v:["Selector de emojis"]},Flags:{v:["Marcas"]},"Food & Drink":{v:["Comida y Bebida"]},"Frequently used":{v:["Usados frecuentemente"]},"Light skin tone":{v:["Tono de piel claro"]},"Medium dark skin tone":{v:["Tono de piel medio oscuro"]},"Medium light skin tone":{v:["Tono de piel medio claro"]},"Medium skin tone":{v:["Tono de piel medio"]},"Neutral skin color":{v:["Color de piel neutral"]},Objects:{v:["Objetos"]},"People & Body":{v:["Personas y Cuerpo"]},"Pick an emoji":{v:["Elija un emoji"]},"Search emoji":{v:["Buscar emoji"]},"Search results":{v:["Resultados de la búsqueda"]},Selected:{v:["Seleccionado"]},"Skin tone":{v:["Tono de piel"]},"Smileys & Emotion":{v:["Caritas y Emociones"]},Symbols:{v:["Símbolos"]},"Travel & Places":{v:["Viajes y Lugares"]}}},{l:"es-EC",t:{Activities:{v:["Actividades"]},"Animals & Nature":{v:["Animales y Naturaleza"]},Custom:{v:["Personalizado"]},Flags:{v:["Marcas"]},"Food & Drink":{v:["Comida y Bebida"]},"Frequently used":{v:["Frecuentemente utilizado"]},Objects:{v:["Objetos"]},"People & Body":{v:["Personas y Cuerpo"]},"Pick an emoji":{v:["Seleccionar un emoji"]},"Search emoji":{v:["Buscar emoji"]},"Search results":{v:["Resultados de búsqueda"]},"Smileys & Emotion":{v:["Caritas y Emociones"]},Symbols:{v:["Símbolos"]},"Travel & Places":{v:["Viajes y Lugares"]}}},{l:"es-MX",t:{Activities:{v:["Actividades"]},"Animals & Nature":{v:["Animales y naturaleza"]},Custom:{v:["Personalizado"]},"Dark skin tone":{v:["Tono de piel oscuro"]},"Emoji picker":{v:["Selector de emojis"]},Flags:{v:["Banderas"]},"Food & Drink":{v:["Comida y Bebida"]},"Frequently used":{v:["Usado frecuentemente"]},"Light skin tone":{v:["Tono de piel claro"]},"Medium dark skin tone":{v:["Tono de piel medio oscuro"]},"Medium light skin tone":{v:["Tono de piel medio claro"]},"Medium skin tone":{v:["Tono de piel medio"]},"Neutral skin color":{v:["Color de piel neutral"]},Objects:{v:["Objetos"]},"People & Body":{v:["Personas y cuerpos"]},"Pick an emoji":{v:["Seleccionar un emoji"]},"Search emoji":{v:["Buscar emoji"]},"Search results":{v:["Resultados de la búsqueda"]},Selected:{v:["Seleccionado"]},"Skin tone":{v:["Tono de piel"]},"Smileys & Emotion":{v:["Caritas y Emociones"]},Symbols:{v:["Símbolos"]},"Travel & Places":{v:["Viajes y lugares"]}}},{l:"et-EE",t:{Activities:{v:["Tegevused"]},"Animals & Nature":{v:["Loomad ja loodus"]},Custom:{v:["Kohanda"]},"Dark skin tone":{v:["Kesta tume toon"]},"Emoji picker":{v:["Emojide valija"]},Flags:{v:["Lipud"]},"Food & Drink":{v:["Söök ja jook"]},"Frequently used":{v:["Sageli kasutatud"]},"Light skin tone":{v:["Kesta hele toon"]},"Medium dark skin tone":{v:["Kesta keskmiselt tume toon"]},"Medium light skin tone":{v:["Kesta keskmiselt hele toon"]},"Medium skin tone":{v:["Kesta keskmine toon"]},"Neutral skin color":{v:["Kesta neutraalne toon"]},Objects:{v:["Objektid"]},"People & Body":{v:["Inimesed ja keha"]},"Pick an emoji":{v:["Vali emoji"]},"Search emoji":{v:["Otsi emojit"]},"Search results":{v:["Otsi tulemustest"]},Selected:{v:["Valitud"]},"Skin tone":{v:["Kesta toon"]},"Smileys & Emotion":{v:["Smailid ja emotsioonid"]},Symbols:{v:["Sümbolid"]},"Travel & Places":{v:["Reisimine ja kohad"]}}},{l:"eu",t:{Activities:{v:["Jarduerak"]},"Animals & Nature":{v:["Animaliak eta Natura"]},Custom:{v:["Pertsonalizatua"]},Flags:{v:["Banderak"]},"Food & Drink":{v:["Janaria eta edariak"]},"Frequently used":{v:["Askotan erabilia"]},Objects:{v:["Objektuak"]},"People & Body":{v:["Jendea eta gorputza"]},"Pick an emoji":{v:["Hautatu emoji bat"]},"Search emoji":{v:["Bilatu emojiak"]},"Search results":{v:["Bilaketa emaitzak"]},Selected:{v:["Hautatuta"]},"Smileys & Emotion":{v:["Smileyak eta emozioa"]},Symbols:{v:["Sinboloak"]},"Travel & Places":{v:["Bidaiak eta lekuak"]}}},{l:"fa",t:{Activities:{v:["فعالیت‌ها"]},"Animals & Nature":{v:["حیوانات و طبیعت"]},Custom:{v:["سفارشی"]},"Dark skin tone":{v:["رنگ پوسته تیره"]},"Emoji picker":{v:["انتخاب‌گر شکلک"]},Flags:{v:["پرچم‌ها"]},"Food & Drink":{v:["غذا و نوشیدنی"]},"Frequently used":{v:["پرکاربرد"]},"Light skin tone":{v:["رنگ پوسته روشن"]},"Medium dark skin tone":{v:["رنگ پوسته تیره متوسط"]},"Medium light skin tone":{v:["رنگ پوسته روشن متوسط"]},"Medium skin tone":{v:["رنگ پوسته متوسط"]},"Neutral skin color":{v:["رنگ پوسته خنثی"]},Objects:{v:["اشیاء"]},"People & Body":{v:["مردم و بدن"]},"Pick an emoji":{v:["انتخاب شکلک"]},"Search emoji":{v:["جستجوی شکلک"]},"Search results":{v:["نتایج جستجو"]},Selected:{v:["انتخاب شده"]},"Skin tone":{v:["رنگ پوسته"]},"Smileys & Emotion":{v:["شکلک‌ها و احساسات"]},Symbols:{v:["نمادها"]},"Travel & Places":{v:["سفر و مکان‌ها"]}}},{l:"fi",t:{Activities:{v:["Aktiviteetit"]},"Animals & Nature":{v:["Eläimet & luonto"]},Custom:{v:["Mukautettu"]},"Dark skin tone":{v:["Tumma ihonväri"]},"Emoji picker":{v:["Emojivalitsin"]},Flags:{v:["Liput"]},"Food & Drink":{v:["Ruoka & juoma"]},"Frequently used":{v:["Usein käytetyt"]},"Light skin tone":{v:["Vaalea ihonväri"]},"Medium dark skin tone":{v:["Keskitumma ihonväri"]},"Medium light skin tone":{v:["Keskivaalea ihonväri"]},"Medium skin tone":{v:["Keskimääräinen ihonväri"]},"Neutral skin color":{v:["Neutraali ihonväri"]},Objects:{v:["Esineet & asiat"]},"People & Body":{v:["Ihmiset & keho"]},"Pick an emoji":{v:["Valitse emoji"]},"Search emoji":{v:["Etsi emojia"]},"Search results":{v:["Hakutulokset"]},Selected:{v:["Valittu"]},"Skin tone":{v:["Ihonväri"]},"Smileys & Emotion":{v:["Hymiöt & tunteet"]},Symbols:{v:["Symbolit"]},"Travel & Places":{v:["Matkustus & kohteet"]}}},{l:"fr",t:{Activities:{v:["Activités"]},"Animals & Nature":{v:["Animaux & Nature"]},Custom:{v:["Personnalisé"]},"Dark skin tone":{v:["Teint de peau foncé"]},"Emoji picker":{v:["Sélecteur d'émojis"]},Flags:{v:["Drapeaux"]},"Food & Drink":{v:["Nourriture & Boissons"]},"Frequently used":{v:["Utilisés fréquemment"]},"Light skin tone":{v:["Teint de peau clair"]},"Medium dark skin tone":{v:["Teint de peau moyennement foncé"]},"Medium light skin tone":{v:["Teint de peau moyennement clair"]},"Medium skin tone":{v:["Teint de peau moyen"]},"Neutral skin color":{v:["Teint de peau neutre"]},Objects:{v:["Objets"]},"People & Body":{v:["Personnes & Corps"]},"Pick an emoji":{v:["Choisissez un émoji"]},"Search emoji":{v:["Rechercher un emoji"]},"Search results":{v:["Résultats de recherche"]},Selected:{v:["sélectionné"]},"Skin tone":{v:["Teint de peau"]},"Smileys & Emotion":{v:["Smileys & Émotions"]},Symbols:{v:["Symboles"]},"Travel & Places":{v:["Voyage & Lieux"]}}},{l:"ga",t:{Activities:{v:["Gníomhaíochtaí"]},"Animals & Nature":{v:["Ainmhithe & Dúlra"]},Custom:{v:["Saincheaptha"]},"Dark skin tone":{v:["Ton craiceann dorcha"]},"Emoji picker":{v:["Roghnóir Emoji"]},Flags:{v:["Bratacha"]},"Food & Drink":{v:["Bia & Deoch"]},"Frequently used":{v:["Úsáidtear go minic"]},"Light skin tone":{v:["Ton craiceann éadrom"]},"Medium dark skin tone":{v:["Ton craiceann meánach dorcha"]},"Medium light skin tone":{v:["Ton craiceann meánach éadrom"]},"Medium skin tone":{v:["Ton craiceann meánach"]},"Neutral skin color":{v:["Dath craiceann neodrach"]},Objects:{v:["Réada"]},"People & Body":{v:["Daoine & Corp"]},"Pick an emoji":{v:["Roghnaigh emoji"]},"Search emoji":{v:["Cuardaigh emoji"]},"Search results":{v:["Torthaí cuardaigh"]},Selected:{v:["Roghnaithe"]},"Skin tone":{v:["Ton craicinn"]},"Smileys & Emotion":{v:["Smileys & Mothúchán"]},Symbols:{v:["Siombailí"]},"Travel & Places":{v:["Taisteal & Áiteanna"]}}},{l:"gl",t:{Activities:{v:["Actividades"]},"Animals & Nature":{v:["Animais e natureza"]},Custom:{v:["Personalizado"]},"Dark skin tone":{v:["Ton de pel escuro"]},"Emoji picker":{v:["Selector de «emojis»"]},Flags:{v:["Bandeiras"]},"Food & Drink":{v:["Comida e bebida"]},"Frequently used":{v:["Usado con frecuencia"]},"Light skin tone":{v:["Ton de pel claro"]},"Medium dark skin tone":{v:["Ton de pel medio escuro"]},"Medium light skin tone":{v:["Ton de pel medio claro"]},"Medium skin tone":{v:["Ton de pel medio"]},"Neutral skin color":{v:["Cor de pel neutra"]},Objects:{v:["Obxectos"]},"People & Body":{v:["Persoas e corpo"]},"Pick an emoji":{v:["Escolla un «emoji»"]},"Search emoji":{v:["Buscar «emoji»"]},"Search results":{v:["Resultados da busca"]},Selected:{v:["Seleccionado"]},"Skin tone":{v:["Ton de pel"]},"Smileys & Emotion":{v:["Sorrisos e emocións"]},Symbols:{v:["Símbolos"]},"Travel & Places":{v:["Viaxes e lugares"]}}},{l:"he",t:{Activities:{v:["פעילויות"]},"Animals & Nature":{v:["חיות וטבע"]},Custom:{v:["בהתאמה אישית"]},Flags:{v:["דגלים"]},"Food & Drink":{v:["מזון ומשקאות"]},"Frequently used":{v:["בשימוש תדיר"]},Objects:{v:["חפצים"]},"People & Body":{v:["אנשים וגוף"]},"Pick an emoji":{v:["נא לבחור אמוג׳י"]},"Search emoji":{v:["חיפוש אמוג׳י"]},"Search results":{v:["תוצאות חיפוש"]},"Smileys & Emotion":{v:["חייכנים ורגשונים"]},Symbols:{v:["סמלים"]},"Travel & Places":{v:["טיולים ומקומות"]}}},{l:"hu",t:{Activities:{v:["Tevékenységek"]},"Animals & Nature":{v:["Állatok és természet"]},Custom:{v:["Egyéni"]},Flags:{v:["Zászlók"]},"Food & Drink":{v:["Étel és ital"]},"Frequently used":{v:["Gyakran használt"]},Objects:{v:["Tárgyak"]},"People & Body":{v:["Emberek és test"]},"Pick an emoji":{v:["Válasszon egy emodzsit"]},"Search results":{v:["Találatok"]},"Smileys & Emotion":{v:["Mosolyok és érzelmek"]},Symbols:{v:["Szimbólumok"]},"Travel & Places":{v:["Utazás és helyek"]}}},{l:"id",t:{Activities:{v:["Aktivitas"]},"Animals & Nature":{v:["Satwa dan Alam"]},Custom:{v:["Khusus"]},Flags:{v:["Tanda"]},"Food & Drink":{v:["Makanan dan Minuman"]},"Frequently used":{v:["Sering digunakan"]},Objects:{v:["Objek"]},"People & Body":{v:["Orang & Badan"]},"Pick an emoji":{v:["Pilih emoji"]},"Search emoji":{v:["Cari emoji"]},"Search results":{v:["Hasil pencarian"]},Selected:{v:["Dipilih"]},"Smileys & Emotion":{v:["Senyuman & Perasaan"]},Symbols:{v:["Simbol"]},"Travel & Places":{v:["Perjalanan & Tempat"]}}},{l:"is",t:{Activities:{v:["Aðgerðir"]},"Animals & Nature":{v:["Dýr og náttúra"]},Custom:{v:["Sérsniðið"]},"Dark skin tone":{v:["Dökkur húðlitur"]},"Emoji picker":{v:["Emoji-táknmyndaval"]},Flags:{v:["Flögg"]},"Food & Drink":{v:["Matur og drykkur"]},"Frequently used":{v:["Oftast notað"]},"Light skin tone":{v:["Ljós húðlitur"]},"Medium dark skin tone":{v:["Meðaldökkur húðlitur"]},"Medium light skin tone":{v:["Meðalljós húðlitur"]},"Medium skin tone":{v:["Meðaltónn húðar"]},"Neutral skin color":{v:["Hlutlaus húðlitur"]},Objects:{v:["Hlutir"]},"People & Body":{v:["Fólk og líkami"]},"Pick an emoji":{v:["Veldu tjáningartákn"]},"Search emoji":{v:["Leita að tjáningartákni"]},"Search results":{v:["Leitarniðurstöður"]},Selected:{v:["Valið"]},"Skin tone":{v:["Húðlitur"]},"Smileys & Emotion":{v:["Broskallar og tilfinningar"]},Symbols:{v:["Tákn"]},"Travel & Places":{v:["Staðir og ferðalög"]}}},{l:"it",t:{Activities:{v:["Attività"]},"Animals & Nature":{v:["Animali e natura"]},Custom:{v:["Personalizzato"]},Flags:{v:["Bandiere"]},"Food & Drink":{v:["Cibo e bevande"]},"Frequently used":{v:["Usati di frequente"]},Objects:{v:["Oggetti"]},"People & Body":{v:["Persone e corpo"]},"Pick an emoji":{v:["Scegli un emoji"]},"Search emoji":{v:["Ricerca emoji"]},"Search results":{v:["Risultati di ricerca"]},Selected:{v:["Selezionato"]},"Smileys & Emotion":{v:["Faccine ed emozioni"]},Symbols:{v:["Simboli"]},"Travel & Places":{v:["Viaggi e luoghi"]}}},{l:"ja",t:{Activities:{v:["アクティビティ"]},"Animals & Nature":{v:["動物と自然"]},Custom:{v:["カスタム"]},"Dark skin tone":{v:["暗い肌のトーン"]},"Emoji picker":{v:["絵文字ピッカー"]},Flags:{v:["国旗"]},"Food & Drink":{v:["食べ物と飲み物"]},"Frequently used":{v:["よく使うもの"]},"Light skin tone":{v:["明るい肌のトーン"]},"Medium dark skin tone":{v:["やや暗い肌のトーン"]},"Medium light skin tone":{v:["やや明るい肌のトーン"]},"Medium skin tone":{v:["中間の肌のトーン"]},"Neutral skin color":{v:["ニュートラルな肌の色"]},Objects:{v:["物"]},"People & Body":{v:["様々な人と体の部位"]},"Pick an emoji":{v:["絵文字を選択"]},"Search emoji":{v:["絵文字を検索"]},"Search results":{v:["検索結果"]},Selected:{v:["選択済み"]},"Skin tone":{v:["肌のトーン"]},"Smileys & Emotion":{v:["感情表現"]},Symbols:{v:["記号"]},"Travel & Places":{v:["旅行と場所"]}}},{l:"ja-JP",t:{Activities:{v:["アクティビティ"]},"Animals & Nature":{v:["動物と自然"]},Custom:{v:["カスタム"]},"Dark skin tone":{v:["暗い肌のトーン"]},"Emoji picker":{v:["絵文字ピッカー"]},Flags:{v:["国旗"]},"Food & Drink":{v:["食べ物と飲み物"]},"Frequently used":{v:["よく使うもの"]},"Light skin tone":{v:["明るい肌のトーン"]},"Medium dark skin tone":{v:["やや暗い肌のトーン"]},"Medium light skin tone":{v:["やや明るい肌のトーン"]},"Medium skin tone":{v:["中間の肌のトーン"]},"Neutral skin color":{v:["ニュートラルな肌の色"]},Objects:{v:["物"]},"People & Body":{v:["様々な人と体の部位"]},"Pick an emoji":{v:["絵文字を選択"]},"Search emoji":{v:["絵文字を検索"]},"Search results":{v:["検索結果"]},Selected:{v:["選択済み"]},"Skin tone":{v:["肌のトーン"]},"Smileys & Emotion":{v:["感情表現"]},Symbols:{v:["記号"]},"Travel & Places":{v:["旅行と場所"]}}},{l:"ko",t:{Activities:{v:["활동"]},"Animals & Nature":{v:["동물 & 자연"]},Custom:{v:["맞춤 설정"]},"Dark skin tone":{v:["어두운 피부 톤"]},"Emoji picker":{v:["이모지 선택기"]},Flags:{v:["깃발"]},"Food & Drink":{v:["음식 & 음료"]},"Frequently used":{v:["자주 쓰임"]},"Light skin tone":{v:["밝은 피부 톤"]},"Medium dark skin tone":{v:["약간 어두운 피부 톤"]},"Medium light skin tone":{v:["약간 밝은 피부 톤"]},"Medium skin tone":{v:["중간 피부 톤"]},"Neutral skin color":{v:["중성적 피부 톤"]},Objects:{v:["물체"]},"People & Body":{v:["사람 & 신체"]},"Pick an emoji":{v:["이모지 선택"]},"Search emoji":{v:["이모지 검색"]},"Search results":{v:["검색 결과"]},Selected:{v:["선택됨"]},"Skin tone":{v:["피부 톤"]},"Smileys & Emotion":{v:["스마일리 & 이모티콘"]},Symbols:{v:["기호"]},"Travel & Places":{v:["여행 & 장소"]}}},{l:"lo",t:{Activities:{v:["ກິດຈະກຳ"]},"Animals & Nature":{v:["ສັດ ແລະ ທຳມະຊາດ"]},Custom:{v:["ກຳນົດເອງ"]},"Dark skin tone":{v:["ໂຕນສີຜິວເຂັ້ມ"]},"Emoji picker":{v:["ໂຕເລືອກອີໂມຈິ"]},Flags:{v:["ທຸງ"]},"Food & Drink":{v:["ອາຫານ ແລະ ເຄື່ອງດື່ມ"]},"Frequently used":{v:["ໃຊ້ງານເລື້ອຍໆ"]},"Light skin tone":{v:["ໂຕນສີຜິວອ່ອນ"]},"Medium dark skin tone":{v:["ໂຕນສີຜິວເຂັ້ມປານກາງ"]},"Medium light skin tone":{v:["ໂຕນສີຜິວອ່ອນປານກາງ"]},"Medium skin tone":{v:["ໂຕນສີຜິວປານກາງ"]},"Neutral skin color":{v:["ສີຜິວເປັນກາງ"]},Objects:{v:["ວັດຖຸ"]},"People & Body":{v:["ຄົນ ແລະ ຮ່າງກາຍ"]},"Pick an emoji":{v:["ເລືອກອີໂມຈິ"]},"Search emoji":{v:["ຄົ້ນຫາອີໂມຈິ"]},"Search results":{v:["ຜົນການຄົ້ນຫາ"]},Selected:{v:["ເລືອກແລ້ວ"]},"Skin tone":{v:["ໂຕນສີຜິວ"]},"Smileys & Emotion":{v:["ໜ້າຍິ້ມ ແລະ ອາລົມ"]},Symbols:{v:["ສັນຍາລັກ"]},"Travel & Places":{v:["ການເດີນທາງ ແລະ ສະຖານທີ່"]}}},{l:"lt-LT",t:{Activities:{v:["Veiklos"]},"Animals & Nature":{v:["Gyvūnai ir gamta"]},Custom:{v:["Tinkinti"]},Flags:{v:["Vėliavos"]},"Food & Drink":{v:["Maistas ir gėrimai"]},"Frequently used":{v:["Dažniausiai naudoti"]},Objects:{v:["Objektai"]},"People & Body":{v:["Žmonės ir kūnas"]},"Pick an emoji":{v:["Pasirinkti jaustuką"]},"Search results":{v:["Paieškos rezultatai"]},"Smileys & Emotion":{v:["Šypsenos ir emocijos"]},Symbols:{v:["Simboliai"]},"Travel & Places":{v:["Kelionės ir vietos"]}}},{l:"lv",t:{}},{l:"mk",t:{Activities:{v:["Активности"]},"Animals & Nature":{v:["Животни & Природа"]},Custom:{v:["Прилагодени"]},"Dark skin tone":{v:["Темна боја на кожа"]},"Emoji picker":{v:["Избор на emoji"]},Flags:{v:["Знамиња"]},"Food & Drink":{v:["Храна & Пијалоци"]},"Frequently used":{v:["Најчесто користени"]},"Light skin tone":{v:["Светла кожа"]},"Medium dark skin tone":{v:["Средно темна кожа"]},"Medium light skin tone":{v:["Средно светла кожа"]},"Medium skin tone":{v:["Средна кожа"]},"Neutral skin color":{v:["Неутрална боја на кожа"]},Objects:{v:["Објекти"]},"People & Body":{v:["Луѓе & Тело"]},"Pick an emoji":{v:["Избери емотикон"]},"Search emoji":{v:["Барај emoji"]},"Search results":{v:["Резултати од барувањето"]},Selected:{v:["Избрано"]},"Skin tone":{v:["Боја на кожа"]},"Smileys & Emotion":{v:["Смешковци & Емотикони"]},Symbols:{v:["Симболи"]},"Travel & Places":{v:["Патувања & Места"]}}},{l:"my",t:{Activities:{v:["ပြုလုပ်ဆောင်တာများ"]},"Animals & Nature":{v:["တိရစ္ဆာန်များနှင့် သဘာဝ"]},Custom:{v:["အလိုကျချိန်ညှိမှု"]},Flags:{v:["အလံများ"]},"Food & Drink":{v:["အစားအသောက်"]},"Frequently used":{v:["မကြာခဏအသုံးပြုသော"]},Objects:{v:["အရာဝတ္ထုများ"]},"People & Body":{v:["လူပုဂ္ဂိုလ်များနှင့် ခန္ဓာကိုယ်"]},"Pick an emoji":{v:["အီမိုဂျီရွေးရန်"]},"Search results":{v:["ရှာဖွေမှု ရလဒ်များ"]},"Smileys & Emotion":{v:["စမိုင်လီများနှင့် အီမိုရှင်း"]},Symbols:{v:["သင်္ကေတများ"]},"Travel & Places":{v:["ခရီးသွားလာခြင်းနှင့် နေရာများ"]}}},{l:"nb",t:{Activities:{v:["Aktiviteter"]},"Animals & Nature":{v:["Dyr og natur"]},Custom:{v:["Tilpasset"]},"Dark skin tone":{v:["Mørk hudtone"]},"Emoji picker":{v:["Emoji-velger"]},Flags:{v:["Flagg"]},"Food & Drink":{v:["Mat og drikke"]},"Frequently used":{v:["Ofte brukt"]},"Light skin tone":{v:["Lys hudtone"]},"Medium dark skin tone":{v:["Middels mørk hudtone"]},"Medium light skin tone":{v:["Middels lys hudtone"]},"Medium skin tone":{v:["Middels hudtone"]},"Neutral skin color":{v:["Nøytral hudfarge"]},Objects:{v:["Objekter"]},"People & Body":{v:["Mennesker og kropp"]},"Pick an emoji":{v:["Velg en emoji"]},"Search emoji":{v:["Søk emoji"]},"Search results":{v:["Søkeresultater"]},Selected:{v:["Valgt"]},"Skin tone":{v:["Hudtone"]},"Smileys & Emotion":{v:["Smilefjes og følelser"]},Symbols:{v:["Symboler"]},"Travel & Places":{v:["Reise og steder"]}}},{l:"nl",t:{Activities:{v:["Activiteiten"]},"Animals & Nature":{v:["Dieren & Natuur"]},Custom:{v:["Aangepast"]},"Dark skin tone":{v:["Donkere huidskleur"]},"Emoji picker":{v:["Emoji-kiezer"]},Flags:{v:["Vlaggen"]},"Food & Drink":{v:["Eten & Drinken"]},"Frequently used":{v:["Vaak gebruikt"]},"Light skin tone":{v:["Lichte huidskleur"]},"Medium dark skin tone":{v:["Gemiddeld donkere huidskleur"]},"Medium light skin tone":{v:["Gemiddeld lichte huidskleur"]},"Medium skin tone":{v:["Gemiddelde huidskleur"]},"Neutral skin color":{v:["Neutrale huidskleur"]},Objects:{v:["Objecten"]},"People & Body":{v:["Mensen & Lichaam"]},"Pick an emoji":{v:["Kies een emoji"]},"Search emoji":{v:["Emoji zoeken"]},"Search results":{v:["Zoekresultaten"]},Selected:{v:["Geselecteerd"]},"Skin tone":{v:["Huidskleur"]},"Smileys & Emotion":{v:["Smileys & Emotie"]},Symbols:{v:["Symbolen"]},"Travel & Places":{v:["Reizen & Plaatsen"]}}},{l:"oc",t:{}},{l:"pl",t:{Activities:{v:["Aktywność"]},"Animals & Nature":{v:["Zwierzęta i natura"]},Custom:{v:["Zwyczajne"]},"Dark skin tone":{v:["Ciemna tonacja"]},"Emoji picker":{v:["Wybierz Emoji"]},Flags:{v:["Flagi"]},"Food & Drink":{v:["Jedzenie i picie"]},"Frequently used":{v:["Często używane"]},"Light skin tone":{v:["Jasny odcień skóry"]},"Medium dark skin tone":{v:["Średnio ciemny odcień skóry"]},"Medium light skin tone":{v:["Średnio jasny odcień skóry"]},"Medium skin tone":{v:["Średni odcień skóry"]},"Neutral skin color":{v:["Neutralny kolor skróry"]},Objects:{v:["Obiekty"]},"People & Body":{v:["Ludzie i ciało"]},"Pick an emoji":{v:["Wybierz emoji"]},"Search emoji":{v:["Szukaj emoji"]},"Search results":{v:["Wyniki wyszukiwania"]},Selected:{v:["Wybrane"]},"Skin tone":{v:["Kolor skóry"]},"Smileys & Emotion":{v:["Buźki i emotikony"]},Symbols:{v:["Symbole"]},"Travel & Places":{v:["Podróże i miejsca"]}}},{l:"pt-BR",t:{Activities:{v:["Atividades"]},"Animals & Nature":{v:["Animais & Natureza"]},Custom:{v:["Personalizados"]},"Dark skin tone":{v:["Tom de pele escuro"]},"Emoji picker":{v:["Seletor de emoji"]},Flags:{v:["Bandeiras"]},"Food & Drink":{v:["Comida & Bebida"]},"Frequently used":{v:["Mais usados"]},"Light skin tone":{v:["Tom de pele claro"]},"Medium dark skin tone":{v:["Tom de pele meio escuro"]},"Medium light skin tone":{v:["Tom de pele meio claro"]},"Medium skin tone":{v:["Tom de pele médio"]},"Neutral skin color":{v:["Tom de pele neutro"]},Objects:{v:["Objetos"]},"People & Body":{v:["Pessoas & Corpo"]},"Pick an emoji":{v:["Escolha um emoji"]},"Search emoji":{v:["Pesquisar emoji"]},"Search results":{v:["Resultados da pesquisa"]},Selected:{v:["Selecionado"]},"Skin tone":{v:["Tom de pele"]},"Smileys & Emotion":{v:["Smileys & Emoções"]},Symbols:{v:["Símbolos"]},"Travel & Places":{v:["Viagem & Lugares"]}}},{l:"pt-PT",t:{Activities:{v:["Atividades"]},"Animals & Nature":{v:["Animais e Natureza"]},Custom:{v:["Personalizado"]},"Dark skin tone":{v:["Tom de pele escuro"]},"Emoji picker":{v:["seletor de emoji"]},Flags:{v:["Bandeiras"]},"Food & Drink":{v:["Comida e Bebida"]},"Frequently used":{v:["Mais utilizados"]},"Light skin tone":{v:["Tom de pele claro"]},"Medium dark skin tone":{v:["Tom de pele escuro médio"]},"Medium light skin tone":{v:["Tom de pele claro médio"]},"Medium skin tone":{v:["Tom de pele médio"]},"Neutral skin color":{v:["Cor de pele neutra"]},Objects:{v:["Objetos"]},"People & Body":{v:["Pessoas e Corpo"]},"Pick an emoji":{v:["Escolha um emoji"]},"Search emoji":{v:["Pesquisar emoji"]},"Search results":{v:["Resultados da pesquisa"]},Selected:{v:["Selecionado"]},"Skin tone":{v:["Tom de pele"]},"Smileys & Emotion":{v:["Sorrisos e Emoções"]},Symbols:{v:["Símbolos"]},"Travel & Places":{v:["Viagens e Lugares"]}}},{l:"ro",t:{Activities:{v:["Activități"]},"Animals & Nature":{v:["Animale și natură"]},Custom:{v:["Personalizat"]},Flags:{v:["Marcaje"]},"Food & Drink":{v:["Alimente și băuturi"]},"Frequently used":{v:["Utilizate frecvent"]},Objects:{v:["Obiecte"]},"People & Body":{v:["Oameni și corp"]},"Pick an emoji":{v:["Alege un emoji"]},"Search emoji":{v:["Căutare emoji"]},"Search results":{v:["Rezultatele căutării"]},Selected:{v:["Selectat"]},"Smileys & Emotion":{v:["Zâmbete și emoții"]},Symbols:{v:["Simboluri"]},"Travel & Places":{v:["Călătorii și locuri"]}}},{l:"ru",t:{Activities:{v:["События"]},"Animals & Nature":{v:["Животные и природа "]},Custom:{v:["Пользовательское"]},"Dark skin tone":{v:["Темный оттенок"]},"Emoji picker":{v:["Подборщик эмодзи"]},Flags:{v:["Флаги"]},"Food & Drink":{v:["Еда, напиток"]},"Frequently used":{v:["Часто используемый"]},"Light skin tone":{v:["Светлый оттенок"]},"Medium dark skin tone":{v:["Средний темный оттенок"]},"Medium light skin tone":{v:["Средний светлый оттенок"]},"Medium skin tone":{v:["Средний оттенок"]},"Neutral skin color":{v:["Нейтральный оттенок"]},Objects:{v:["Объекты"]},"People & Body":{v:["Люди и тело"]},"Pick an emoji":{v:["Выберите эмодзи"]},"Search emoji":{v:["Поиск эмодзи"]},"Search results":{v:["Результаты поиска"]},Selected:{v:["Выбрано"]},"Skin tone":{v:["Оттенок скина"]},"Smileys & Emotion":{v:["Смайлики и эмоции"]},Symbols:{v:["Символы"]},"Travel & Places":{v:["Путешествия и места"]}}},{l:"sk",t:{Activities:{v:["Aktivity"]},"Animals & Nature":{v:["Zvieratá a príroda"]},Custom:{v:["Vlastné"]},"Dark skin tone":{v:["Tmavý vzhľad"]},"Emoji picker":{v:["Výber emodži"]},Flags:{v:["Vlajky"]},"Food & Drink":{v:["Jedlo a nápoje"]},"Frequently used":{v:["Často používané"]},"Light skin tone":{v:["Svetlý vzhľad"]},"Medium dark skin tone":{v:["Stredne tmavý vzhľad"]},"Medium light skin tone":{v:["Stredne svetlý vzhľad"]},"Medium skin tone":{v:["Stredný vzhľad"]},"Neutral skin color":{v:["Neutrálny vzhľad"]},Objects:{v:["Objekty"]},"People & Body":{v:["Ľudia a telo"]},"Pick an emoji":{v:["Vybrať emodži"]},"Search emoji":{v:["Vyhľadať emoji"]},"Search results":{v:["Výsledky vyhľadávania"]},Selected:{v:["Vybraný"]},"Skin tone":{v:["Vzhľad"]},"Smileys & Emotion":{v:["Smajlíky a emócie"]},Symbols:{v:["Symboly"]},"Travel & Places":{v:["Cestovanie a miesta"]}}},{l:"sl",t:{Activities:{v:["Dejavnosti"]},"Animals & Nature":{v:["Živali in Narava"]},Custom:{v:["Po meri"]},Flags:{v:["Zastavice"]},"Food & Drink":{v:["Hrana in Pijača"]},"Frequently used":{v:["Pogostost uporabe"]},Objects:{v:["Predmeti"]},"People & Body":{v:["Ljudje in Telo"]},"Pick an emoji":{v:["Izbor izrazne ikone"]},"Search results":{v:["Zadetki iskanja"]},"Smileys & Emotion":{v:["Izrazne ikone"]},Symbols:{v:["Simboli"]},"Travel & Places":{v:["Potovanja in Kraji"]}}},{l:"sr",t:{Activities:{v:["Активности"]},"Animals & Nature":{v:["Животиње и природа"]},Custom:{v:["Произвољно"]},"Dark skin tone":{v:["Тамни тен коже"]},"Emoji picker":{v:["Бирач емођија"]},Flags:{v:["Заставе"]},"Food & Drink":{v:["Храна и пиће"]},"Frequently used":{v:["Често коришћено"]},"Light skin tone":{v:["Светли тен коже"]},"Medium dark skin tone":{v:["Средње тамни тен коже"]},"Medium light skin tone":{v:["Средње светли тен коже"]},"Medium skin tone":{v:["Средњи тен коже"]},"Neutral skin color":{v:["Неутрална боја коже"]},Objects:{v:["Предмети"]},"People & Body":{v:["Људи и тело"]},"Pick an emoji":{v:["Изаберите емођи"]},"Search emoji":{v:["Претражи емођи"]},"Search results":{v:["Резултати претраге"]},Selected:{v:["Изабрано"]},"Skin tone":{v:["Тен коже"]},"Smileys & Emotion":{v:["Смајлији и емоције"]},Symbols:{v:["Симболи"]},"Travel & Places":{v:["Путовање и места"]}}},{l:"sv",t:{Activities:{v:["Aktiviteter"]},"Animals & Nature":{v:["Djur & Natur"]},Custom:{v:["Anpassad"]},"Dark skin tone":{v:["Mörk hudton"]},"Emoji picker":{v:["Emoji-väljare"]},Flags:{v:["Flaggor"]},"Food & Drink":{v:["Mat & Dryck"]},"Frequently used":{v:["Används ofta"]},"Light skin tone":{v:["Ljus hudton"]},"Medium dark skin tone":{v:["Medium mörk hudton"]},"Medium light skin tone":{v:["Medium ljus hudton"]},"Medium skin tone":{v:["Medium hudton"]},"Neutral skin color":{v:["Neutral hudfärg"]},Objects:{v:["Objekt"]},"People & Body":{v:["Kropp & Själ"]},"Pick an emoji":{v:["Välj en emoji"]},"Search emoji":{v:["Sök emoji"]},"Search results":{v:["Sökresultat"]},Selected:{v:["Vald"]},"Skin tone":{v:["Hudton"]},"Smileys & Emotion":{v:["Selfies & Känslor"]},Symbols:{v:["Symboler"]},"Travel & Places":{v:["Resor & Sevärdigheter"]}}},{l:"tr",t:{Activities:{v:["Etkinlikler"]},"Animals & Nature":{v:["Hayvanlar ve doğa"]},Custom:{v:["Özel"]},"Dark skin tone":{v:["Koyu deri rengi"]},"Emoji picker":{v:["Emoji seçici"]},Flags:{v:["Bayraklar"]},"Food & Drink":{v:["Yeme ve içme"]},"Frequently used":{v:["Sık kullanılanlar"]},"Light skin tone":{v:["Açık deri rengi"]},"Medium dark skin tone":{v:["Orta koyu deri rengi"]},"Medium light skin tone":{v:["Orta açık deri rengi"]},"Medium skin tone":{v:["Orta deri rengi"]},"Neutral skin color":{v:["Nötr deri rengi"]},Objects:{v:["Nesneler"]},"People & Body":{v:["İnsanlar ve beden"]},"Pick an emoji":{v:["Bir emoji seçin"]},"Search emoji":{v:["Emoji ara"]},"Search results":{v:["Arama sonuçları"]},Selected:{v:["Seçilmiş"]},"Skin tone":{v:["Deri rengi"]},"Smileys & Emotion":{v:["İfadeler ve duygular"]},Symbols:{v:["Simgeler"]},"Travel & Places":{v:["Gezi ve yerler"]}}},{l:"uk",t:{Activities:{v:["Діяльність"]},"Animals & Nature":{v:["Тварини та природа"]},Custom:{v:["Власне"]},"Dark skin tone":{v:["Смаглявий"]},"Emoji picker":{v:["Вибір емоційки"]},Flags:{v:["Прапори"]},"Food & Drink":{v:["Їжа та напої"]},"Frequently used":{v:["Найчастіші"]},"Light skin tone":{v:["Світла шкіра"]},"Medium dark skin tone":{v:["Какао"]},"Medium light skin tone":{v:["Лате"]},"Medium skin tone":{v:["Середній колір шкіри"]},"Neutral skin color":{v:["Нейтральний колір шкіри"]},Objects:{v:["Об'єкти"]},"People & Body":{v:["Люди та жести"]},"Pick an emoji":{v:["Виберіть емоційку"]},"Search emoji":{v:["Шукати емоційки"]},"Search results":{v:["Результати пошуку"]},Selected:{v:["Вибрано"]},"Skin tone":{v:["Колір шкіри"]},"Smileys & Emotion":{v:["Смайли та емоції"]},Symbols:{v:["Символи"]},"Travel & Places":{v:["Поїздки та місця"]}}},{l:"uz",t:{Activities:{v:["Faolliklar"]},"Animals & Nature":{v:["Hayvonlar va Tabiat"]},Custom:{v:["Moslashtirilgan"]},"Dark skin tone":{v:["Qora rangdagi qoplama"]},"Emoji picker":{v:["Emoji tanlagich"]},Flags:{v:["Bayroqlar"]},"Food & Drink":{v:["Oziq-ovqat va ichimliklar"]},"Frequently used":{v:["Tez-tez ishlatiladi"]},"Light skin tone":{v:["Yorug` rangdagi qoplama"]},"Medium dark skin tone":{v:["O`rtacha qorong`u rangdagi qoplama"]},"Medium light skin tone":{v:["O`rtacha yorug`lik rangdagi qoplama"]},"Medium skin tone":{v:["O`rtacha rangdagi qoplama"]},"Neutral skin color":{v:["Neytral rang"]},Objects:{v:["Obyekt"]},"People & Body":{v:["Odamlar va Tana"]},"Pick an emoji":{v:["Emojini tanlang"]},"Search emoji":{v:["Emoji qidirish"]},"Search results":{v:["Qidiruv natijalari"]},Selected:{v:["Tanlangan"]},"Skin tone":{v:["Odatiy rangdagi qoplama"]},"Smileys & Emotion":{v:["Smayllar va Hissiyotlar"]},Symbols:{v:["Belgilar"]},"Travel & Places":{v:["Sayohat va Joylar"]}}},{l:"zh-CN",t:{Activities:{v:["活动"]},"Animals & Nature":{v:["动物 & 自然"]},Custom:{v:["自定义"]},"Dark skin tone":{v:["深色皮肤"]},"Emoji picker":{v:["表情拾取器"]},Flags:{v:["旗帜"]},"Food & Drink":{v:["食物 & 饮品"]},"Frequently used":{v:["经常使用"]},"Light skin tone":{v:["浅色皮肤"]},"Medium dark skin tone":{v:["中等深色皮肤"]},"Medium light skin tone":{v:["中等浅色皮肤"]},"Medium skin tone":{v:["中等皮肤"]},"Neutral skin color":{v:["中性皮肤颜色"]},Objects:{v:["物体"]},"People & Body":{v:["人 & 身体"]},"Pick an emoji":{v:["选择一个表情"]},"Search emoji":{v:["搜索表情"]},"Search results":{v:["搜索结果"]},Selected:{v:["选择"]},"Skin tone":{v:["皮肤"]},"Smileys & Emotion":{v:["笑脸 & 情感"]},Symbols:{v:["符号"]},"Travel & Places":{v:["旅游 & 地点"]}}},{l:"zh-HK",t:{Activities:{v:["活動"]},"Animals & Nature":{v:["動物與自然"]},Custom:{v:["自定義"]},"Dark skin tone":{v:["深膚色"]},"Emoji picker":{v:["表情符號選擇器"]},Flags:{v:["旗幟"]},"Food & Drink":{v:["食物與飲料"]},"Frequently used":{v:["經常使用"]},"Light skin tone":{v:["淺膚色"]},"Medium dark skin tone":{v:["中等深膚色"]},"Medium light skin tone":{v:["中等淺膚色"]},"Medium skin tone":{v:["中等膚色"]},"Neutral skin color":{v:["中性色膚色"]},Objects:{v:["物件"]},"People & Body":{v:["人物"]},"Pick an emoji":{v:["選擇表情符號"]},"Search emoji":{v:["搜尋表情符號"]},"Search results":{v:["搜尋結果"]},Selected:{v:["已選"]},"Skin tone":{v:["膚色"]},"Smileys & Emotion":{v:["表情"]},Symbols:{v:["標誌"]},"Travel & Places":{v:["旅遊與景點"]}}},{l:"zh-TW",t:{Activities:{v:["活動"]},"Animals & Nature":{v:["動物與自然"]},Custom:{v:["自定義"]},"Dark skin tone":{v:["深膚色"]},"Emoji picker":{v:["表情符號挑選器"]},Flags:{v:["旗幟"]},"Food & Drink":{v:["食物與飲料"]},"Frequently used":{v:["最近使用"]},"Light skin tone":{v:["淺膚色"]},"Medium dark skin tone":{v:["中等深膚色"]},"Medium light skin tone":{v:["中等淺膚色"]},"Medium skin tone":{v:["中等膚色"]},"Neutral skin color":{v:["中性膚色"]},Objects:{v:["物件"]},"People & Body":{v:["人物"]},"Pick an emoji":{v:["選擇表情符號"]},"Search emoji":{v:["搜尋表情符號"]},"Search results":{v:["搜尋結果"]},Selected:{v:["已選取"]},"Skin tone":{v:["膚色"]},"Smileys & Emotion":{v:["表情"]},Symbols:{v:["標誌"]},"Travel & Places":{v:["旅遊與景點"]}}}],V=[{l:"ar",t:{"Add to a project":{v:["أضف إلى مشروع"]},"Connect items to a project to make them easier to find":{v:["ربط عناصر بمشروع لتسهيل العثور عليها"]},"Failed to add the item to the project":{v:["تعذر ربط عنصر بمشروع"]},"Failed to create a project":{v:["تعذر إنشاء مشروع"]},"Failed to rename the project":{v:["تعذّر تغيير اسم المشروع"]},"Type to search for existing projects":{v:["أكتُب للبحث في المشاريع الموجودة"]}}},{l:"ast",t:{}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{"Add to a project":{v:["Přidat do projektu"]},"Connect items to a project to make them easier to find":{v:["Připojte položky k projektu, čímž budou snáze dohledatelné"]},"Failed to add the item to the project":{v:["Položku se nepodařilo přidat do projektu"]},"Failed to create a project":{v:["Projekt se nepodařilo vytvořit"]},"Failed to rename the project":{v:["Projekt se nepodařilo přejmenovat"]},"Type to search for existing projects":{v:["Psaním vyhledávejte existující projekty"]}}},{l:"cs-CZ",t:{}},{l:"da",t:{"Add to a project":{v:["Tilføj til et projekt"]},"Connect items to a project to make them easier to find":{v:["Forbind elementer til et projekt for at gøre dem nemmere at finde"]},"Failed to add the item to the project":{v:["Kunne ikke føje elementet til projektet"]},"Failed to create a project":{v:["Kunne ikke oprette et projekt"]},"Failed to rename the project":{v:["Projektet kunne ikke omdøbes"]},"Type to search for existing projects":{v:["Skriv for at søge efter eksisterende projekter"]}}},{l:"de",t:{"Add to a project":{v:["Einem Projekt hinzufügen"]},"Connect items to a project to make them easier to find":{v:["Verbinde Elemente mit einem Projekt, um sie leichter zu finden"]},"Failed to add the item to the project":{v:["Das Element konnte nicht zum Projekt hinzugefügt werden"]},"Failed to create a project":{v:["Projekt konnte nicht erstellt werden"]},"Failed to rename the project":{v:["Das Projekt konnte nicht umbenannt werden"]},"Type to search for existing projects":{v:["Tippen, um nach vorhandenen Projekten zu suchen"]}}},{l:"de-DE",t:{"Add to a project":{v:["Einem Projekt hinzufügen"]},"Connect items to a project to make them easier to find":{v:["Verbinden Sie Elemente mit einem Projekt, um sie leichter zu finden"]},"Failed to add the item to the project":{v:["Das Element konnte nicht zum Projekt hinzugefügt werden"]},"Failed to create a project":{v:["Projekt konnte nicht erstellt werden"]},"Failed to rename the project":{v:["Das Projekt konnte nicht umbenannt werden"]},"Type to search for existing projects":{v:["Tippen, um nach vorhandenen Projekten zu suchen"]}}},{l:"el",t:{"Add to a project":{v:["Προσθήκη σε ένα έργο"]},"Connect items to a project to make them easier to find":{v:["Συνδέστε αντικείμενα σε ένα έργο για να τα βρίσκετε πιο εύκολα"]},"Failed to add the item to the project":{v:["Αποτυχία προσθήκης του αντικειμένου στο έργο"]},"Failed to create a project":{v:["Αποτυχία δημιουργίας έργου"]},"Failed to rename the project":{v:["Αποτυχία μετονομασίας του έργου"]},"Type to search for existing projects":{v:["Πληκτρολογήστε για αναζήτηση υπαρχόντων έργων"]}}},{l:"en-GB",t:{"Add to a project":{v:["Add to a project"]},"Connect items to a project to make them easier to find":{v:["Connect items to a project to make them easier to find"]},"Failed to add the item to the project":{v:["Failed to add the item to the project"]},"Failed to create a project":{v:["Failed to create a project"]},"Failed to rename the project":{v:["Failed to rename the project"]},"Type to search for existing projects":{v:["Type to search for existing projects"]}}},{l:"eo",t:{}},{l:"es",t:{}},{l:"es-AR",t:{"Add to a project":{v:["Agregar a un proyecto"]},"Connect items to a project to make them easier to find":{v:["Conecte items a un proyecto para hacerlos más fáciles de encontrar"]},"Failed to add the item to the project":{v:["No se pudo agregar el elemento al proyecto"]},"Failed to create a project":{v:["No se pudo crear un proyecto"]},"Failed to rename the project":{v:["No se pudo renombrar el proyecto"]},"Type to search for existing projects":{v:["Escriba para buscar proyectos existentes"]}}},{l:"es-EC",t:{}},{l:"es-MX",t:{"Add to a project":{v:["Agregar a un proyecto"]},"Connect items to a project to make them easier to find":{v:["Conecte elementos a un proyecto para hacerlos más fáciles de encontrar"]},"Failed to add the item to the project":{v:["No se pudo agregar el elemento al proyecto"]},"Failed to create a project":{v:["No se pudo crear el proyecto"]},"Failed to rename the project":{v:["No se pudo renombrar el proyecto"]},"Type to search for existing projects":{v:["Escriba para buscar proyectos existentes"]}}},{l:"et-EE",t:{"Add to a project":{v:["Lisa projekti"]},"Connect items to a project to make them easier to find":{v:["Selleks, et objekte oleks lihtsam leida, seo nad projektiga"]},"Failed to add the item to the project":{v:["Objekti lisamine projekti ei õnnestunud"]},"Failed to create a project":{v:["Projekti loomine ei õnnestunud"]},"Failed to rename the project":{v:["Projekti nime muutmine ei õnnestunud"]},"Type to search for existing projects":{v:["Olemasolevate projektide otsimiseks kirjuta"]}}},{l:"eu",t:{}},{l:"fa",t:{"Add to a project":{v:["افزودن به پروژه"]},"Connect items to a project to make them easier to find":{v:["برای پیدا کردن راحت‌تر، مواردی را به پروژه متصل کنید"]},"Failed to add the item to the project":{v:["موارد به پروژه اضافه نشد"]},"Failed to create a project":{v:["ایجاد پروژه نامؤفق بود"]},"Failed to rename the project":{v:["تغییر نام پروژه انجام نشد"]},"Type to search for existing projects":{v:["برای جستجوی پروژه‌های موجود تایپ کنید"]}}},{l:"fi",t:{"Add to a project":{v:["Lisää projektiin"]},"Connect items to a project to make them easier to find":{v:["Yhdistä kohteet projektiin, jotta ne olisivat helpompia löytää"]},"Failed to add the item to the project":{v:["Kohteiden lisääminen projektiin epäonnistui"]},"Failed to create a project":{v:["Projektin luominen epäonnistui"]},"Failed to rename the project":{v:["Projektin nimeäminen epäonnistui"]},"Type to search for existing projects":{v:["Kirjoita etsiäksesi olemassaolevia projekteja"]}}},{l:"fr",t:{"Add to a project":{v:["Ajouter à un projet"]},"Connect items to a project to make them easier to find":{v:["Connectez des éléments à un projet pour les retrouver plus facilement"]},"Failed to add the item to the project":{v:["Impossible d'ajouter l'élément au projet"]},"Failed to create a project":{v:["Impossible de créer un projet"]},"Failed to rename the project":{v:["Impossible de renommer le projet"]},"Type to search for existing projects":{v:["Tapez pour rechercher des projets existants"]}}},{l:"ga",t:{"Add to a project":{v:["Cuir le tionscadal"]},"Connect items to a project to make them easier to find":{v:["Ceangail míreanna le tionscadal chun iad a dhéanamh níos éasca iad a aimsiú"]},"Failed to add the item to the project":{v:["Theip ar an mír a chur leis an tionscadal"]},"Failed to create a project":{v:["Theip ar thionscadal a chruthú"]},"Failed to rename the project":{v:["Theip ar an tionscadal a athainmniú"]},"Type to search for existing projects":{v:["Clóscríobh chun tionscadail atá ann cheana a chuardach"]}}},{l:"gl",t:{"Add to a project":{v:["Engadir a un proxecto"]},"Connect items to a project to make them easier to find":{v:["Conectar elementos a un proxecto para facelos máis doados de atopar"]},"Failed to add the item to the project":{v:["Produciuse un fallo ao engadir o elemento ao proxecto"]},"Failed to create a project":{v:["Produciuse un fallo ao crear un proxecto"]},"Failed to rename the project":{v:["Produciuse un fallo ao cambiarlle o nome ao proxecto"]},"Type to search for existing projects":{v:["Escriba para buscar proxectos existentes"]}}},{l:"he",t:{}},{l:"hu",t:{}},{l:"id",t:{}},{l:"is",t:{"Add to a project":{v:["Bæta við verkefni"]},"Connect items to a project to make them easier to find":{v:["Tengdu atriði við verkefni til að gera einfaldara að finna þau"]},"Failed to add the item to the project":{v:["Mistókst að bæta atriðinu í verkefnið"]},"Failed to create a project":{v:["Mistókst að útbúa verkefni"]},"Failed to rename the project":{v:["Mistókst að endurnefna verkefnið"]},"Type to search for existing projects":{v:["Skrifaðu hér til að leita að fyrirliggjandi verkefnum"]}}},{l:"it",t:{}},{l:"ja",t:{"Add to a project":{v:["プロジェクトに追加する"]},"Connect items to a project to make them easier to find":{v:["項目をプロジェクトに接続して検索しやすくする"]},"Failed to add the item to the project":{v:["プロジェクトへのアイテムの追加に失敗しました"]},"Failed to create a project":{v:["プロジェクトの作成に失敗しました"]},"Failed to rename the project":{v:["プロジェクトの名前変更に失敗しました"]},"Type to search for existing projects":{v:["既存のプロジェクトを検索するために入力します"]}}},{l:"ja-JP",t:{}},{l:"ko",t:{"Add to a project":{v:["프로젝트에 추가"]},"Connect items to a project to make them easier to find":{v:["항목을 더 쉽게 찾을 수 있도록 프로젝트에 연결하세요."]},"Failed to add the item to the project":{v:["항목을 프로젝트에 추가하는 데 실패함"]},"Failed to create a project":{v:["프로젝트를 만드는 데 실패함"]},"Failed to rename the project":{v:["프로젝트의 이름을 바꾸는 데 실패함"]},"Type to search for existing projects":{v:["입력하여 프로젝트를 검색"]}}},{l:"lo",t:{"Add to a project":{v:["ເພີ່ມໃສ່ໂຄງການ"]},"Connect items to a project to make them easier to find":{v:["ເຊື່ອມຕໍ່ລາຍການຕ່າງໆໃສ່ໂຄງການ ເພື່ອເຮັດໃຫ້ຊອກຫາງ່າຍຂຶ້ນ"]},"Failed to add the item to the project":{v:["ບໍ່ສາມາດເພີ່ມລາຍການໃສ່ໂຄງການໄດ້"]},"Failed to create a project":{v:["ບໍ່ສາມາດສ້າງໂຄງການໄດ້"]},"Failed to rename the project":{v:["ບໍ່ສາມາດປ່ຽນຊື່ໂຄງການໄດ້"]},"Type to search for existing projects":{v:["ພິມເພື່ອຄົ້ນຫາໂຄງການທີ່ມີຢູ່"]}}},{l:"lt-LT",t:{}},{l:"lv",t:{}},{l:"mk",t:{"Add to a project":{v:["Додај во проект"]},"Connect items to a project to make them easier to find":{v:["Поврзете ги елементите со проект за да биде полесно да се најдат"]},"Failed to add the item to the project":{v:["Неуспешно додавање на елементот во проектот"]},"Failed to create a project":{v:["Неуспешно креирање на проект"]},"Failed to rename the project":{v:["Неуспешно преименување на проектот"]},"Type to search for existing projects":{v:["Пишувај за пребарување постоечки проекти"]}}},{l:"my",t:{}},{l:"nb",t:{"Add to a project":{v:["Legge til i et prosjekt"]},"Connect items to a project to make them easier to find":{v:["Koble elementer til et prosjekt for å gjøre det enklere å finne dem"]},"Failed to add the item to the project":{v:["Kan ikke legge til elementet i prosjektet"]},"Failed to create a project":{v:["Kan ikke opprette et prosjekt"]},"Failed to rename the project":{v:["Kunne ikke gi prosjektet nytt navn"]},"Type to search for existing projects":{v:["Skriv for å søke for eksisterende prosjekter"]}}},{l:"nl",t:{"Add to a project":{v:["Toevoegen aan een project"]},"Connect items to a project to make them easier to find":{v:["Items aan een project koppelen om ze eenvoudiger te vinden"]},"Failed to add the item to the project":{v:["Toevoegen van item aan project mislukt"]},"Failed to create a project":{v:["Project aanmaken mislukt"]},"Failed to rename the project":{v:["Project hernoemen mislukt"]},"Type to search for existing projects":{v:["Typ om te zoeken naar bestaande projecten"]}}},{l:"oc",t:{}},{l:"pl",t:{"Add to a project":{v:["Dodaj do projektu"]},"Connect items to a project to make them easier to find":{v:["Połącz elementy z projektem, aby ułatwić ich znalezienie"]},"Failed to add the item to the project":{v:["Nie udało się dodać elementu do projektu"]},"Failed to create a project":{v:["Nie udało się utworzyć projektu"]},"Failed to rename the project":{v:["Nie udało się zmienić nazwy projektu"]},"Type to search for existing projects":{v:["Wpisz, aby wyszukać istniejące projekty"]}}},{l:"pt-BR",t:{"Add to a project":{v:["Adicionar a um projeto"]},"Connect items to a project to make them easier to find":{v:["Conectar itens a um projeto para encontrá-los mais facilmente"]},"Failed to add the item to the project":{v:["Falha ao adicionar itens ao projeto"]},"Failed to create a project":{v:["Falha ao criar um projeto"]},"Failed to rename the project":{v:["Falha ao renomear o projeto"]},"Type to search for existing projects":{v:["Digite para pesquisar projetos existentes"]}}},{l:"pt-PT",t:{"Add to a project":{v:["Adicionar a um projeto"]},"Connect items to a project to make them easier to find":{v:["Ligar itens a um projeto para serem mais facilmente encontrados"]},"Failed to add the item to the project":{v:["Não foi possível adicionar item ao projeto"]},"Failed to create a project":{v:["Não foi possível criar um projeto"]},"Failed to rename the project":{v:["Não foi possível alterar o nome do projeto"]},"Type to search for existing projects":{v:["Digite para procurar projetos existentes"]}}},{l:"ro",t:{}},{l:"ru",t:{"Add to a project":{v:["Добавить в проект"]},"Connect items to a project to make them easier to find":{v:["Подключайте элементы к проекту, чтобы их было легче найти"]},"Failed to add the item to the project":{v:["Не удалось добавить элемент в проект"]},"Failed to create a project":{v:["Не удалось создать проект"]},"Failed to rename the project":{v:["Не удалось переименовать проект"]},"Type to search for existing projects":{v:["Введите для поиска существующих проектов"]}}},{l:"sk",t:{"Add to a project":{v:["Pridať do projektu"]},"Connect items to a project to make them easier to find":{v:["Pridať položky do projektu pre jednoduchšie vyhľadávanie"]},"Failed to add the item to the project":{v:["Nepodarilo sa pridať položku do projektu"]},"Failed to create a project":{v:["Nepodarilo sa vytvoriť projekt"]},"Failed to rename the project":{v:["Nepodarilo sa premenovať projekt"]},"Type to search for existing projects":{v:["Začnite písať pre vyhľadávanie v existujúcich projektoch"]}}},{l:"sl",t:{}},{l:"sr",t:{"Add to a project":{v:["Додај у пројекат"]},"Connect items to a project to make them easier to find":{v:["Повезује ставке у пројекат како би се лакше пронашле"]},"Failed to add the item to the project":{v:["Није успело додавање ставке у пројекат"]},"Failed to create a project":{v:["Није успело креирање пројекта"]},"Failed to rename the project":{v:["Није успела промена имена пројекта"]},"Type to search for existing projects":{v:["Куцајте да претражите постојеће пројекте"]}}},{l:"sv",t:{"Add to a project":{v:["Lägg till i ett projekt"]},"Connect items to a project to make them easier to find":{v:["Anslut objekt till ett projekt för att göra dem lättare att hitta"]},"Failed to add the item to the project":{v:["Det gick inte att lägga till objektet i projektet"]},"Failed to create a project":{v:["Det gick inte att skapa ett projekt"]},"Failed to rename the project":{v:["Kunde inte byta namn på projektet"]},"Type to search for existing projects":{v:["Skriv för att söka efter befintliga projekt"]}}},{l:"tr",t:{"Add to a project":{v:["Bir projeye ekle"]},"Connect items to a project to make them easier to find":{v:["Ögeleri daha kolay bulmak için bir proje ile ilişkilendirin"]},"Failed to add the item to the project":{v:["Öge projeye eklenemedi"]},"Failed to create a project":{v:["Bir proje oluşturulamadı"]},"Failed to rename the project":{v:["Proje yeniden adlandırılamadı"]},"Type to search for existing projects":{v:["Var olan projeleri aramak için yazmaya başlayın"]}}},{l:"uk",t:{"Add to a project":{v:["Додати до проєкту"]},"Connect items to a project to make them easier to find":{v:["Приєднайте ресурси до проєкту для швидшого пошуку"]},"Failed to add the item to the project":{v:["Не вдалося приєднати ресурс до проєкту"]},"Failed to create a project":{v:["Не вдалося створити проєкт"]},"Failed to rename the project":{v:["Не вдалося перейменувати проєкт"]},"Type to search for existing projects":{v:["Почніть вводити, щоб знайти проєкт"]}}},{l:"uz",t:{"Add to a project":{v:["Loyihaga qo'shish"]},"Connect items to a project to make them easier to find":{v:["Elementlarni topishni osonlashtirish uchun ularni loyihaga ulang"]},"Failed to add the item to the project":{v:["Ob'ektni loyihaga qo'shib bo'lmadi"]},"Failed to create a project":{v:["Loyiha yaratib bo‘lmadi"]},"Failed to rename the project":{v:["Loyiha nomini o‘zgartirib bo‘lmadi"]},"Type to search for existing projects":{v:["Mavjud loyihalarni qidirish uchun kiriting"]}}},{l:"zh-CN",t:{"Add to a project":{v:["添加至一个项目"]},"Connect items to a project to make them easier to find":{v:["将条目连接至一个项目以易于查找"]},"Failed to add the item to the project":{v:["添加条目至项目失败"]},"Failed to create a project":{v:["创建项目失败"]},"Failed to rename the project":{v:["重命名项目失败"]},"Type to search for existing projects":{v:["输入以搜索现存项目"]}}},{l:"zh-HK",t:{"Add to a project":{v:["添加到方案中"]},"Connect items to a project to make them easier to find":{v:["將項目連接到方案中,以便更容易找到。"]},"Failed to add the item to the project":{v:["無法將項目添加到方案中"]},"Failed to create a project":{v:["無法創建方案"]},"Failed to rename the project":{v:["無法重命名方案"]},"Type to search for existing projects":{v:["輸入以搜索現有方案"]}}},{l:"zh-TW",t:{"Add to a project":{v:["新增至專案中"]},"Connect items to a project to make them easier to find":{v:["將項目連結至專案中以方便尋找"]},"Failed to add the item to the project":{v:["新增項目至專案失敗"]},"Failed to create a project":{v:["建立專案失敗"]},"Failed to rename the project":{v:["重新命名專案失敗"]},"Type to search for existing projects":{v:["輸入以搜尋既有專案"]}}}],L=[{l:"ar",t:{"Any link":{v:["أيَّ رابط"]}}},{l:"ast",t:{"Any link":{v:["Cualesquier enllaz"]}}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{"Any link":{v:["Jakýkoli odkaz"]}}},{l:"cs-CZ",t:{"Any link":{v:["Jakýkoli odkaz"]}}},{l:"da",t:{"Any link":{v:["Ethvert link"]}}},{l:"de",t:{"Any link":{v:["Irgendein Link"]}}},{l:"de-DE",t:{"Any link":{v:["Irgendein Link"]}}},{l:"el",t:{"Any link":{v:["Οποιοσδήποτε σύνδεσμος"]}}},{l:"en-GB",t:{"Any link":{v:["Any link"]}}},{l:"eo",t:{}},{l:"es",t:{"Any link":{v:["Cualquier enlace"]}}},{l:"es-AR",t:{"Any link":{v:["Cualquier enlace"]}}},{l:"es-EC",t:{"Any link":{v:["Cualquier enlace"]}}},{l:"es-MX",t:{"Any link":{v:["Cualquier enlace"]}}},{l:"et-EE",t:{"Any link":{v:["Mistahes link"]}}},{l:"eu",t:{"Any link":{v:["Edozein esteka"]}}},{l:"fa",t:{"Any link":{v:["هر پیوندی"]}}},{l:"fi",t:{"Any link":{v:["Mikä tahansa linkki"]}}},{l:"fr",t:{"Any link":{v:["N'importe quel lien"]}}},{l:"ga",t:{"Any link":{v:["Aon nasc"]}}},{l:"gl",t:{"Any link":{v:["Calquera ligazón"]}}},{l:"he",t:{"Any link":{v:["קישור כלשהו"]}}},{l:"hu",t:{}},{l:"id",t:{"Any link":{v:["Semua tautan"]}}},{l:"is",t:{"Any link":{v:["Einhver tengill"]}}},{l:"it",t:{"Any link":{v:["Qualsiasi link"]}}},{l:"ja",t:{"Any link":{v:["任意のリンク"]}}},{l:"ja-JP",t:{"Any link":{v:["任意のリンク"]}}},{l:"ko",t:{"Any link":{v:["아무 링크"]}}},{l:"lo",t:{"Any link":{v:["ລິງໃດກໍໄດ້"]}}},{l:"lt-LT",t:{}},{l:"lv",t:{}},{l:"mk",t:{"Any link":{v:["Секој линк"]}}},{l:"my",t:{}},{l:"nb",t:{"Any link":{v:["Enhver lenke"]}}},{l:"nl",t:{"Any link":{v:["Elke link"]}}},{l:"oc",t:{}},{l:"pl",t:{"Any link":{v:["Dowolny link"]}}},{l:"pt-BR",t:{"Any link":{v:["Qualquer link"]}}},{l:"pt-PT",t:{"Any link":{v:["Qualquer hiperligação"]}}},{l:"ro",t:{"Any link":{v:["Orice link"]}}},{l:"ru",t:{"Any link":{v:["Любая ссылка"]}}},{l:"sk",t:{"Any link":{v:["Akýkoľvek odkaz"]}}},{l:"sl",t:{}},{l:"sr",t:{"Any link":{v:["Било који линк"]}}},{l:"sv",t:{"Any link":{v:["Vilken länk som helst"]}}},{l:"tr",t:{"Any link":{v:["Herhangi bir bağlantı"]}}},{l:"uk",t:{"Any link":{v:["Будь-яке посилання"]}}},{l:"uz",t:{"Any link":{v:["Har qanday havola"]}}},{l:"zh-CN",t:{"Any link":{v:["任何链接"]}}},{l:"zh-HK",t:{"Any link":{v:["任何連結"]}}},{l:"zh-TW",t:{"Any link":{v:["任何連結"]}}}],q=[{l:"ar",t:{"Anything shared with the same group of people will show up here":{v:["أيّ مادة تمت مشاركتها مع نفس المجموعة من الأشخاص سيتم عرضها هنا"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["خطأ في الحصول على الموارد ذات الصلة. يرجى الاتصال بمشرف النظام عندك إذا كان لديك أيّ أسئلة."]},"Related resources":{v:["مصادر ذات صلة"]}}},{l:"ast",t:{"Anything shared with the same group of people will show up here":{v:["Equí va apaecer tolo que compartas col mesmu grupu de persones"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Hebo un error al consiguir los recursos rellacionaos. Ponte en contautu col alministrador del sistema si tienes dalguna entruga."]},"Related resources":{v:["Recursos rellacionao"]}}},{l:"br",t:{}},{l:"ca",t:{"Anything shared with the same group of people will show up here":{v:["Qualsevol cosa compartida amb el mateix grup de persones es mostrarà aquí"]},"Related resources":{v:["Recursos relacionats"]}}},{l:"cs",t:{"Anything shared with the same group of people will show up here":{v:["Cokoli nasdíleného stejné skupině lidí se zobrazí zde"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Chyba při získávání souvisejících prostředků. Pokud máte jakékoli dotazy, obraťte se na správce vámi využívaného systému."]},"Related resources":{v:["Související prostředky"]}}},{l:"cs-CZ",t:{"Anything shared with the same group of people will show up here":{v:["Cokoli nasdíleného stejné skupině lidí se zobrazí zde"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Chyba při získávání souvisejících prostředků. Pokud máte jakékoli dotazy, obraťte se na správce vámi využívaného systému."]},"Related resources":{v:["Související prostředky"]}}},{l:"da",t:{"Anything shared with the same group of people will show up here":{v:["Alt der deles med samme gruppe af personer vil vises her"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Fejl ved hentning af relaterede ressourcer. Kontakt venligst din systemadministrator, hvis du har spørgsmål."]},"Related resources":{v:["Relaterede emner"]}}},{l:"de",t:{"Anything shared with the same group of people will show up here":{v:["Alles, das mit derselben Gruppe von Personen geteilt wird, wird hier angezeigt"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Fehler beim Abrufen verwandter Ressourcen. Bei Fragen wende dich bitte an deinen Systemadministrator."]},"Related resources":{v:["Verwandte Ressourcen"]}}},{l:"de-DE",t:{"Anything shared with the same group of people will show up here":{v:["Alles, das mit derselben Gruppe von Personen geteilt wird, wird hier angezeigt"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Fehler beim Abrufen verwandter Ressourcen. Bei Fragen wenden Sie sich bitte an Ihre Systemadministration."]},"Related resources":{v:["Verwandte Ressourcen"]}}},{l:"el",t:{"Anything shared with the same group of people will show up here":{v:["Οτιδήποτε μοιράζεται με την ίδια ομάδα ατόμων θα εμφανίζεται εδώ"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Σφάλμα λήψης σχετικών πόρων. Παρακαλούμε επικοινωνήστε με τον διαχειριστή του συστήματός σας εάν έχετε οποιεσδήποτε ερωτήσεις."]},"Related resources":{v:["Σχετικοί πόροι"]}}},{l:"en-GB",t:{"Anything shared with the same group of people will show up here":{v:["Anything shared with the same group of people will show up here"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Error getting related resources. Please contact your system administrator if you have any questions."]},"Related resources":{v:["Related resources"]}}},{l:"eo",t:{}},{l:"es",t:{"Anything shared with the same group of people will show up here":{v:["Cualquier cosa que esté compartida con el mismo grupo de personas se mostrará aquí"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Error al obtener recursos relacionados. Por favor, contacte a su administrador del sistema si tiene alguna pregunta."]},"Related resources":{v:["Recursos relacionados"]}}},{l:"es-AR",t:{"Anything shared with the same group of people will show up here":{v:["Cualquier cosa compartida con el mismo grupo de personas aparecerá aquí."]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Error al obtener recursos relacionados. Por favor, contacte a su administrador del sistema si tiene alguna pregunta."]},"Related resources":{v:["Recursos relacionados"]}}},{l:"es-EC",t:{"Anything shared with the same group of people will show up here":{v:["Cualquier cosa compartida con el mismo grupo de personas aparecerá aquí."]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Error al obtener recursos relacionados. Por favor, contacta a tu administrador del sistema si tienes alguna pregunta."]},"Related resources":{v:["Recursos relacionados"]}}},{l:"es-MX",t:{"Anything shared with the same group of people will show up here":{v:["Todo lo que se comparta con el mismo grupo de personas se mostrará aquí"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Error al obtener recursos relacionados. Por favor contacte al administrador si tiene alguna pregunta."]},"Related resources":{v:["Recursos relacionados"]}}},{l:"et-EE",t:{"Anything shared with the same group of people will show up here":{v:["Siin kuvatakse kõik, mida jagatakse sama kasutajagrupiga"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Viga seotud ressursside saamisel. Küsimuste korral võtke ühendust oma süsteemiadministraatoriga."]},"Related resources":{v:["Seotud ressursid"]}}},{l:"eu",t:{"Anything shared with the same group of people will show up here":{v:["Pertsona-talde berarekin partekatutako edozer agertuko da hemen"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Errore bat gertatu da erlazionatutako baliabideak eskuratzean. Jarri harremanetan zure sistemaren administratzailearekin galderarik baduzu."]},"Related resources":{v:["Erlazionatutako baliabideak"]}}},{l:"fa",t:{"Anything shared with the same group of people will show up here":{v:["هر چیزی که با گروه مشابهی هم‌رسانی شود در این قسمت نمایش می‌یابد"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["خطا در دریافت منابع مرتبط. لطفاً در صورت داشتن هر گونه سؤال با مدیر سیستم خود تماس بگیرید."]},"Related resources":{v:["منابع مرتبط"]}}},{l:"fi",t:{"Anything shared with the same group of people will show up here":{v:["Kaikki saman ryhmän kesken jaettu näkyy tässä"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Virhe resurssien haussa. Ota yhteyttä järjestelmän ylläpitäjään, mikäli sinulla on kysyttävää."]},"Related resources":{v:["Liittyvät resurssit"]}}},{l:"fr",t:{"Anything shared with the same group of people will show up here":{v:["Tout ce qui est partagé avec le même groupe de personnes apparaîtra ici"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Erreur lors de la récupération des ressources liées. Contactez votre administrateur système pour répondre à vos éventuelles questions."]},"Related resources":{v:["Ressources liées"]}}},{l:"ga",t:{"Anything shared with the same group of people will show up here":{v:["Taispeánfar aon rud a roinntear leis an ngrúpa céanna daoine anseo"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Earráid agus acmhainní gaolmhara á bhfáil. Déan teagmháil le riarthóir do chórais má tá aon cheist agat."]},"Related resources":{v:["Acmhainní gaolmhara"]}}},{l:"gl",t:{"Anything shared with the same group of people will show up here":{v:["Todo o que se comparta co mesmo grupo de persoas aparecerá aquí"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Produciuse un erro ao obter os recursos relacionados. Póñase en contacto coa administración do seu sistema se ten algunha dúbida."]},"Related resources":{v:["Recursos relacionados"]}}},{l:"he",t:{"Anything shared with the same group of people will show up here":{v:["כל מה שמשותף עם אותה קבוצת האנשים יופיע כאן"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["שגיאה בקבלת המשאבים הקשורים. נא ליצור קשר עם הנהלת המערכת אם יש לך שאלות."]},"Related resources":{v:["משאבים קשורים"]}}},{l:"hu",t:{"Anything shared with the same group of people will show up here":{v:["Minden, amit ugyanazzal a csoporttal oszt meg, itt fog megjelenni"]},"Related resources":{v:["Kapcsolódó erőforrások"]}}},{l:"id",t:{"Anything shared with the same group of people will show up here":{v:["Apa pun yang dibagikan dengan grup orang yang sama akan muncul di sini"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Kesalahan saat mengambil sumber daya terkait. Hubungi administrator sistem Anda jika ada pertanyaan."]},"Related resources":{v:["Sumber daya terkait"]}}},{l:"is",t:{"Anything shared with the same group of people will show up here":{v:["Allt sem deilt er með sama hópi fólks mun birtast hér"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Villa við að sækja tengd tilföng. Hafðu samband við kerfisstjórann þinn ef þú ert með einhverjar spurningar."]},"Related resources":{v:["Tengd tilföng"]}}},{l:"it",t:{"Anything shared with the same group of people will show up here":{v:["Tutto ciò che è stato condiviso con lo stesso gruppo di persone viene visualizzato qui"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Errore nell'ottenere le risorse correlate. Per qualsiasi domanda, contattare l'amministratore di sistema."]},"Related resources":{v:["Risorse correlate"]}}},{l:"ja",t:{"Anything shared with the same group of people will show up here":{v:["同じグループで共有しているものは、全てここに表示されます"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["関連リソースの取得エラー。ご不明な点がございましたら、システム管理者にお問い合わせください。"]},"Related resources":{v:["関連リソース"]}}},{l:"ja-JP",t:{"Anything shared with the same group of people will show up here":{v:["同じグループで共有しているものは、全てここに表示されます"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["関連リソースの取得エラー。ご不明な点がございましたら、システム管理者にお問い合わせください。"]},"Related resources":{v:["関連リソース"]}}},{l:"ko",t:{"Anything shared with the same group of people will show up here":{v:["같은 그룹의 사용자와 공유된 모든 것들이 이곳에 나타납니다."]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["관련 리소스를 가져오는 중 오류가 발생했습니다. 궁금한 것이 있는 경우 시스템 관리자에게 연락해 주세요."]},"Related resources":{v:["관련 리소스"]}}},{l:"lo",t:{"Anything shared with the same group of people will show up here":{v:["ທຸກຢ່າງທີ່ແບ່ງປັນກັບກຸ່ມຄົນດຽວກັນຈະສະແດງຢູ່ບ່ອນນີ້"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["ເກີດຂໍ້ຜິດພາດໃນການເອີ້ນຂໍ້ມູນຊັບພະຍາກອນທີ່ກ່ຽວຂ້ອງ. ກະລຸນາຕິດຕໍ່ຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານ ຖ້າທ່ານມີຄຳຖາມ."]},"Related resources":{v:["ຊັບພະຍາກອນທີ່ກ່ຽວຂ້ອງ"]}}},{l:"lt-LT",t:{}},{l:"lv",t:{}},{l:"mk",t:{"Anything shared with the same group of people will show up here":{v:["Сè што е споделено со истата група луѓе ќе се појави овде"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Грешка при добивање поврзани ресурси. Ве молиме контактирајте го вашиот систем администратор ако имате прашања."]},"Related resources":{v:["Поврзани ресурси"]}}},{l:"my",t:{}},{l:"nb",t:{"Anything shared with the same group of people will show up here":{v:["Alt som er delt med den samme gruppen vil vises her"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Feil ved henting av relaterte ressurser. Kontakt systemansvarlig hvis du har spørsmål."]},"Related resources":{v:["Relaterte ressurser"]}}},{l:"nl",t:{"Anything shared with the same group of people will show up here":{v:["Alles dat gedeeld is met dezelfde groep mensen zal hier getoond worden"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Fout bij het ophalen van gerelateerde bronnen. Neem contact op met uw systeembeheerder als u vragen heeft."]},"Related resources":{v:["Gerelateerde bronnen"]}}},{l:"oc",t:{}},{l:"pl",t:{"Anything shared with the same group of people will show up here":{v:["Tutaj pojawi się wszystko, co zostało udostępnione tej samej grupie osób"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Błąd podczas pobierania powiązanych zasobów. Jeśli masz jakiekolwiek pytania, skontaktuj się z administratorem systemu."]},"Related resources":{v:["Powiązane zasoby"]}}},{l:"pt-BR",t:{"Anything shared with the same group of people will show up here":{v:["Qualquer coisa compartilhada com o mesmo grupo de pessoas aparecerá aqui"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Erro ao obter recursos relacionados. Por favor, entre em contato com o administrador do sistema se tiver alguma dúvida."]},"Related resources":{v:["Recursos relacionados"]}}},{l:"pt-PT",t:{"Anything shared with the same group of people will show up here":{v:["Qualquer coisa partilhada com o mesmo grupo de pessoas irá aparecer aqui"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Erro ao obter os recursos relacionados. Por favor, contacte o administrador do sistema se tiver quaisquer perguntas."]},"Related resources":{v:["Recursos relacionados"]}}},{l:"ro",t:{"Anything shared with the same group of people will show up here":{v:["Tot ceea ce este partajat cu același grup de persoane va fi afișat aici"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Eroare la preluarea resurselor adiționale. Vă rugăm să contactați administratorul pentru întrebări."]},"Related resources":{v:["Resurse legate"]}}},{l:"ru",t:{"Anything shared with the same group of people will show up here":{v:["Всё, чем поделились с той же группой людей, будет отображаться здесь"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Ошибка при получении связанных ресурсов. Если у вас есть какие-либо вопросы, обратитесь к системному администратору."]},"Related resources":{v:["Связанные ресурсы"]}}},{l:"sk",t:{"Anything shared with the same group of people will show up here":{v:["Tu sa zobrazí čokoľvek zdieľané s rovnakou skupinou ľudí"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Chyba pri získavaní súvisiacich zdrojov. V prípade otázok kontaktujte prosím svojho systemového administrátora."]},"Related resources":{v:["Súvisiace zdroje"]}}},{l:"sl",t:{"Related resources":{v:["Povezani viri"]}}},{l:"sr",t:{"Anything shared with the same group of people will show up here":{v:["Све што се дели са истом групом људи ће се појавити овде"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Грешка код прибављања везаних ресурса. Молимо вас да се обратите администратору ако имате питања."]},"Related resources":{v:["Повезани ресурси"]}}},{l:"sv",t:{"Anything shared with the same group of people will show up here":{v:["Något som delats med samma grupp av personer kommer att visas här"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Det gick inte att hämta relaterade resurser. Kontakta din systemadministratör om du har några frågor."]},"Related resources":{v:["Relaterade resurser"]}}},{l:"tr",t:{"Anything shared with the same group of people will show up here":{v:["Aynı kişi grubu ile paylaşılan herşey burada görüntülenir"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["İlgili kaynaklara ulaşılırken sorun çıktı. Herhangi bir sorunuz varsa lütfen sistem yöneticiniz ile görüşün "]},"Related resources":{v:["İlgili kaynaklar"]}}},{l:"uk",t:{"Anything shared with the same group of people will show up here":{v:["Будь-що доступне для цієї же групи людей буде показано тут"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Помилка під час отримання пов'язаних ресурсів. Будь ласка, сконтактуйте з системним адміністратором, якщо у вас виникли запитання."]},"Related resources":{v:["Пов'язані ресурси"]}}},{l:"uz",t:{"Anything shared with the same group of people will show up here":{v:["Xuddi shu guruhdagi odamlarga ulashilgan hamma narsa shu yerda chiqadi"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Tegishli manbalarni olishda xatolik yuz berdi. Savollaringiz bo'lsa, tizim administratoriga murojaat qiling."]},"Related resources":{v:["Tegishli manbalar"]}}},{l:"zh-CN",t:{"Anything shared with the same group of people will show up here":{v:["与同组用户分享的所有内容都会显示于此"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["获取相关资源出现错误。如果你有任何问题,请联系系统管理员。"]},"Related resources":{v:["相关资源"]}}},{l:"zh-HK",t:{"Anything shared with the same group of people will show up here":{v:["與同一組人共享的任何內容都會顯示在此處"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["取得相關資源時發生錯誤。如果有任何問題,請聯絡系統管理員。"]},"Related resources":{v:["相關資源"]}}},{l:"zh-TW",t:{"Anything shared with the same group of people will show up here":{v:["與相同群組分享的所有內容都會顯示於此"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["取得相關資源時發生錯誤。如果有任何問題,請聯絡系統管理員。"]},"Related resources":{v:["相關資源"]}}}],W=[{l:"ar",t:{"Avatar of {displayName}":{v:["صورة الملف الشخصي الرمزية لــ {displayName} "]},"Avatar of {displayName}, {status}":{v:["صورة الملف الشخصي الرمزية لــ {displayName}، {status}"]}}},{l:"ast",t:{"Avatar of {displayName}":{v:["Avatar de: {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar de: {displayName}, {status}"]}}},{l:"br",t:{}},{l:"ca",t:{"Avatar of {displayName}":{v:["Avatar de {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar de {displayName}, {status}"]}}},{l:"cs",t:{"Avatar of {displayName}":{v:["Zástupný obrázek uživatele {displayName}"]},"Avatar of {displayName}, {status}":{v:["Zástupný obrázek uživatele {displayName}, {status}"]}}},{l:"cs-CZ",t:{"Avatar of {displayName}":{v:["Zástupný obrázek uživatele {displayName}"]},"Avatar of {displayName}, {status}":{v:["Zástupný obrázek uživatele {displayName}, {status}"]}}},{l:"da",t:{"Avatar of {displayName}":{v:["Avatar af {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar af {displayName}, {status}"]}}},{l:"de",t:{"Avatar of {displayName}":{v:["Avatar von {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar von {displayName}, {status}"]}}},{l:"de-DE",t:{"Avatar of {displayName}":{v:["Avatar von {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar von {displayName}, {status}"]}}},{l:"el",t:{"Avatar of {displayName}":{v:["Άβαταρ του {displayName}"]},"Avatar of {displayName}, {status}":{v:["Άβαταρ του {displayName}, {status}"]}}},{l:"en-GB",t:{"Avatar of {displayName}":{v:["Avatar of {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar of {displayName}, {status}"]}}},{l:"eo",t:{}},{l:"es",t:{"Avatar of {displayName}":{v:["Avatar de {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar de {displayName}, {status}"]}}},{l:"es-AR",t:{"Avatar of {displayName}":{v:["Avatar de {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar de {displayName}, {status}"]}}},{l:"es-EC",t:{"Avatar of {displayName}":{v:["Avatar de {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar de {displayName}, {status}"]}}},{l:"es-MX",t:{"Avatar of {displayName}":{v:["Avatar de {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar de {displayName}, {status}"]}}},{l:"et-EE",t:{"Avatar of {displayName}":{v:["Avatar {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar {displayName}, {status}"]}}},{l:"eu",t:{"Avatar of {displayName}":{v:["{displayName}-(e)n irudia"]},"Avatar of {displayName}, {status}":{v:["{displayName} -(e)n irudia, {status}"]}}},{l:"fa",t:{"Avatar of {displayName}":{v:["آواتار {displayName}"]},"Avatar of {displayName}, {status}":{v:["آواتار {displayName} ، {status}"]}}},{l:"fi",t:{"Avatar of {displayName}":{v:["{displayName}n avatar"]},"Avatar of {displayName}, {status}":{v:["{displayName}n avatar, {status}"]}}},{l:"fr",t:{"Avatar of {displayName}":{v:["Avatar de {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar de {displayName}, {status}"]}}},{l:"ga",t:{"Avatar of {displayName}":{v:["Avatar de {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar de {displayName}, {status}"]}}},{l:"gl",t:{"Avatar of {displayName}":{v:["Avatar de {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar de {displayName}, {status}"]}}},{l:"he",t:{"Avatar of {displayName}":{v:["תמונה ייצוגית של {displayName}"]},"Avatar of {displayName}, {status}":{v:["תמונה ייצוגית של {displayName}, {status}"]}}},{l:"hu",t:{"Avatar of {displayName}":{v:["{displayName} profilképe"]},"Avatar of {displayName}, {status}":{v:["{displayName} profilképe, {status}"]}}},{l:"id",t:{"Avatar of {displayName}":{v:["Avatar {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar {displayName}, {status}"]}}},{l:"is",t:{"Avatar of {displayName}":{v:["Auðkennismynd fyrir {displayName}"]},"Avatar of {displayName}, {status}":{v:["Auðkennismynd fyrir {displayName}, {status}"]}}},{l:"it",t:{"Avatar of {displayName}":{v:["Avatar di {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar di {displayName}, {status}"]}}},{l:"ja",t:{"Avatar of {displayName}":{v:["{displayName} のアバター"]},"Avatar of {displayName}, {status}":{v:["{displayName}, {status} のアバター"]}}},{l:"ja-JP",t:{"Avatar of {displayName}":{v:["{displayName} のアバター"]},"Avatar of {displayName}, {status}":{v:["{displayName}, {status} のアバター"]}}},{l:"ko",t:{"Avatar of {displayName}":{v:["{displayName}님의 아바타"]},"Avatar of {displayName}, {status}":{v:["{displayName}, {status}님의 아바타"]}}},{l:"lo",t:{"Avatar of {displayName}":{v:["ຮູບແທນຕົວຂອງ {displayName}"]},"Avatar of {displayName}, {status}":{v:["ຮູບແທນຕົວຂອງ {displayName}, {status}"]}}},{l:"lt-LT",t:{}},{l:"lv",t:{}},{l:"mk",t:{"Avatar of {displayName}":{v:["Аватар на {displayName}"]},"Avatar of {displayName}, {status}":{v:["Аватар на {displayName}, {status}"]}}},{l:"my",t:{"Avatar of {displayName}":{v:["{displayName} ၏ ကိုယ်ပွား"]}}},{l:"nb",t:{"Avatar of {displayName}":{v:["Avataren til {displayName}"]},"Avatar of {displayName}, {status}":{v:["{displayName}'s avatar, {status}"]}}},{l:"nl",t:{"Avatar of {displayName}":{v:["Avatar van {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar van {displayName}, {status}"]}}},{l:"oc",t:{}},{l:"pl",t:{"Avatar of {displayName}":{v:["Awatar {displayName}"]},"Avatar of {displayName}, {status}":{v:["Awatar {displayName}, {status}"]}}},{l:"pt-BR",t:{"Avatar of {displayName}":{v:["Avatar de {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar de {displayName}, {status}"]}}},{l:"pt-PT",t:{"Avatar of {displayName}":{v:["Avatar de {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar de {displayName}, {status}"]}}},{l:"ro",t:{"Avatar of {displayName}":{v:["Avatarul lui {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatarul lui {displayName}, {status}"]}}},{l:"ru",t:{"Avatar of {displayName}":{v:["Аватар {displayName}"]},"Avatar of {displayName}, {status}":{v:["Фотография {displayName}, {status}"]}}},{l:"sk",t:{"Avatar of {displayName}":{v:["Avatar {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar {displayName}, {status}"]}}},{l:"sl",t:{"Avatar of {displayName}":{v:["Podoba {displayName}"]},"Avatar of {displayName}, {status}":{v:["Prikazna slika {displayName}, {status}"]}}},{l:"sr",t:{"Avatar of {displayName}":{v:["Аватар за {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar za {displayName}, {status}"]}}},{l:"sv",t:{"Avatar of {displayName}":{v:["{displayName}s avatar"]},"Avatar of {displayName}, {status}":{v:["{displayName}s avatar, {status}"]}}},{l:"tr",t:{"Avatar of {displayName}":{v:["{displayName} avatarı"]},"Avatar of {displayName}, {status}":{v:["{displayName}, {status} avatarı"]}}},{l:"uk",t:{"Avatar of {displayName}":{v:["Аватар {displayName}"]},"Avatar of {displayName}, {status}":{v:["Аватар {displayName}, {status}"]}}},{l:"uz",t:{"Avatar of {displayName}":{v:[" {displayName}Avatari"]},"Avatar of {displayName}, {status}":{v:["{displayName}, {status} Avatari"]}}},{l:"zh-CN",t:{"Avatar of {displayName}":{v:["{displayName}的头像"]},"Avatar of {displayName}, {status}":{v:["{displayName}的头像,{status}"]}}},{l:"zh-HK",t:{"Avatar of {displayName}":{v:["{displayName} 的頭像"]},"Avatar of {displayName}, {status}":{v:["{displayName} 的頭像,{status}"]}}},{l:"zh-TW",t:{"Avatar of {displayName}":{v:["{displayName} 的大頭照"]},"Avatar of {displayName}, {status}":{v:["{displayName}, {status} 的大頭照"]}}}],H=[{l:"ar",t:{away:{v:["غير موجود"]},busy:{v:["مشغول"]},"do not disturb":{v:["يُرجى عدم الإزعاج"]},invisible:{v:["غير مرئي"]},offline:{v:["غير متصل"]},online:{v:["متصل"]}}},{l:"ast",t:{away:{v:["ausente"]},busy:{v:["ocupáu"]},"do not disturb":{v:["nun molestar"]},invisible:{v:["invisible"]},offline:{v:["desconectáu"]},online:{v:["en llinia"]}}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{away:{v:["pryč"]},busy:{v:["zaneprádněn(a)"]},"do not disturb":{v:["nerušit"]},invisible:{v:["neviditelné"]},offline:{v:["offline"]},online:{v:["online"]}}},{l:"cs-CZ",t:{away:{v:["pryč"]},busy:{v:["zaneprádněn(a)"]},"do not disturb":{v:["nerušit"]},invisible:{v:["neviditelné"]},offline:{v:["offline"]},online:{v:["online"]}}},{l:"da",t:{away:{v:["væk"]},busy:{v:["optaget"]},"do not disturb":{v:["forstyr ikke"]},invisible:{v:["usynlig"]},offline:{v:["offline"]},online:{v:["online"]}}},{l:"de",t:{away:{v:["Abwesend"]},busy:{v:["Beschäftigt"]},"do not disturb":{v:["Bitte nicht stören"]},invisible:{v:["Unsichtbar"]},offline:{v:["Offline"]},online:{v:["Online"]}}},{l:"de-DE",t:{away:{v:["Abwesend"]},busy:{v:["Beschäftigt"]},"do not disturb":{v:["Bitte nicht stören"]},invisible:{v:["Unsichtbar"]},offline:{v:["Offline"]},online:{v:["Online"]}}},{l:"el",t:{away:{v:["μακριά"]},busy:{v:["απασχολημένος"]},"do not disturb":{v:["μην ενοχλείτε"]},invisible:{v:["αόρατο"]},offline:{v:["εκτός σύνδεσης"]},online:{v:["συνδεδεμένος"]}}},{l:"en-GB",t:{away:{v:["away"]},busy:{v:["busy"]},"do not disturb":{v:["do not disturb"]},invisible:{v:["invisible"]},offline:{v:["offline"]},online:{v:["online"]}}},{l:"eo",t:{}},{l:"es",t:{away:{v:["ausente"]},busy:{v:["ocupado"]},"do not disturb":{v:["no molestar"]},invisible:{v:["invisible"]},offline:{v:["fuera de línea"]},online:{v:["en línea"]}}},{l:"es-AR",t:{away:{v:["ausente"]},busy:{v:["ocupado"]},"do not disturb":{v:["no molestar"]},invisible:{v:["invisible"]},offline:{v:["desconectado"]},online:{v:["en línea"]}}},{l:"es-EC",t:{}},{l:"es-MX",t:{away:{v:["ausente"]},busy:{v:["ocupado"]},"do not disturb":{v:["no molestar"]},invisible:{v:["invisible"]},offline:{v:["fuera de línea"]},online:{v:["en línea"]}}},{l:"et-EE",t:{away:{v:["eemal"]},busy:{v:["hõivatud"]},"do not disturb":{v:["ära sega"]},invisible:{v:["nähtamatu"]},offline:{v:["pole võrgus"]},online:{v:["võrgus"]}}},{l:"eu",t:{}},{l:"fa",t:{away:{v:["دور از دستگاه"]},busy:{v:["مشغول"]},"do not disturb":{v:["مزاحم نشوید"]},invisible:{v:["مخفی"]},offline:{v:["برون‌خط"]},online:{v:["برخط"]}}},{l:"fi",t:{away:{v:["poissa"]},busy:{v:["varattu"]},"do not disturb":{v:["älä häiritse"]},invisible:{v:["näkymätön"]},offline:{v:["ei linjalla"]},online:{v:["linjalla"]}}},{l:"fr",t:{away:{v:["absent"]},busy:{v:["occupé"]},"do not disturb":{v:["ne pas déranger"]},invisible:{v:["invisible"]},offline:{v:["hors ligne"]},online:{v:["en ligne"]}}},{l:"ga",t:{away:{v:["ar shiúl"]},busy:{v:["gnóthach"]},"do not disturb":{v:["ná cur as"]},invisible:{v:["dofheicthe"]},offline:{v:["as líne"]},online:{v:["ar líne"]}}},{l:"gl",t:{away:{v:["ausente"]},busy:{v:["ocupado"]},"do not disturb":{v:["non molestar"]},invisible:{v:["invisíbel"]},offline:{v:["desconectado"]},online:{v:["conectado"]}}},{l:"he",t:{}},{l:"hu",t:{}},{l:"id",t:{away:{v:["tidak tersedia"]},"do not disturb":{v:["jangan ganggu"]},offline:{v:["luring"]},online:{v:["daring"]}}},{l:"is",t:{away:{v:["í burtu"]},busy:{v:["upptekin/n"]},"do not disturb":{v:["ekki ónáða"]},invisible:{v:["ósýnilegt"]},offline:{v:["ónettengt"]},online:{v:["nettengt"]}}},{l:"it",t:{away:{v:["via"]},"do not disturb":{v:["non disturbare"]},offline:{v:["offline"]},online:{v:["online"]}}},{l:"ja",t:{away:{v:["離れる"]},busy:{v:["ビジー"]},"do not disturb":{v:["邪魔をしないでください"]},invisible:{v:["不可視"]},offline:{v:["オフライン"]},online:{v:["オンライン"]}}},{l:"ja-JP",t:{away:{v:["離れる"]},busy:{v:["ビジー"]},"do not disturb":{v:["邪魔をしないでください"]},invisible:{v:["不可視"]},offline:{v:["オフライン"]},online:{v:["オンライン"]}}},{l:"ko",t:{away:{v:["자리 비움"]},busy:{v:["바쁨"]},"do not disturb":{v:["방해 금지"]},invisible:{v:["보이지 않음"]},offline:{v:["오프라인"]},online:{v:["온라인"]}}},{l:"lo",t:{away:{v:["ບໍ່ຢູ່"]},busy:{v:["ບໍ່ວ່າງ"]},"do not disturb":{v:["ຫ້າມລົບກວນ"]},invisible:{v:["ບໍ່ສະແດງ"]},offline:{v:["ອອບໄລນ໌"]},online:{v:["ອອນໄລນ໌"]}}},{l:"lt-LT",t:{}},{l:"lv",t:{}},{l:"mk",t:{away:{v:["оддалечен"]},busy:{v:["зафатен"]},"do not disturb":{v:["не вознемирувај"]},invisible:{v:["невидливо"]},offline:{v:["офлајн"]},online:{v:["онлајн"]}}},{l:"my",t:{}},{l:"nb",t:{away:{v:["borte"]},busy:{v:["opptatt"]},"do not disturb":{v:["ikke forstyrr"]},invisible:{v:["usynlig"]},offline:{v:["frakoblet"]},online:{v:["tilkoblet"]}}},{l:"nl",t:{away:{v:["weg"]},busy:{v:["bezig"]},"do not disturb":{v:["niet storen"]},invisible:{v:["Onzichtbaar"]},offline:{v:["offline"]},online:{v:["online"]}}},{l:"oc",t:{}},{l:"pl",t:{away:{v:["stąd"]},busy:{v:["zajęty"]},"do not disturb":{v:["nie przeszkadzać"]},invisible:{v:["niewidzialny"]},offline:{v:["offline"]},online:{v:["online"]}}},{l:"pt-BR",t:{away:{v:["ausente"]},busy:{v:["ocupado"]},"do not disturb":{v:["não perturbe"]},invisible:{v:["invisível"]},offline:{v:["off-line"]},online:{v:["on-line"]}}},{l:"pt-PT",t:{away:{v:["longe"]},busy:{v:["ocupado"]},"do not disturb":{v:["não incomodar"]},invisible:{v:["invisível"]},offline:{v:["offline"]},online:{v:["online"]}}},{l:"ro",t:{away:{v:["plecat"]},"do not disturb":{v:["nu deranjați"]},offline:{v:["deconectat"]},online:{v:["online"]}}},{l:"ru",t:{away:{v:["отсутствие"]},busy:{v:["занятый"]},"do not disturb":{v:["не беспокоить"]},invisible:{v:["невидимый"]},offline:{v:["офлайн"]},online:{v:["онлайн"]}}},{l:"sk",t:{away:{v:["neprítomný"]},busy:{v:["zaneprázdnený"]},"do not disturb":{v:["nerušiť"]},invisible:{v:["neviditeľný"]},offline:{v:["Odpojený - offline"]},online:{v:["Pripojený - online"]}}},{l:"sl",t:{}},{l:"sr",t:{away:{v:["одсутан"]},busy:{v:["заузет"]},"do not disturb":{v:["не узнемиравај"]},invisible:{v:["невидљиво"]},offline:{v:["ван мреже"]},online:{v:["на мрежи"]}}},{l:"sv",t:{away:{v:["borta"]},busy:{v:["upptagen"]},"do not disturb":{v:["stör ej"]},invisible:{v:["osynlig"]},offline:{v:["offline"]},online:{v:["online"]}}},{l:"tr",t:{away:{v:["Uzakta"]},busy:{v:["Meşgul"]},"do not disturb":{v:["Rahatsız etmeyin"]},invisible:{v:["görünmez"]},offline:{v:["Çevrim dışı"]},online:{v:["Çevrim içi"]}}},{l:"uk",t:{away:{v:["відсутній"]},busy:{v:["зайнято"]},"do not disturb":{v:["не турбувати"]},invisible:{v:["Невидимий"]},offline:{v:["не в мережі"]},online:{v:["в мережі"]}}},{l:"uz",t:{away:{v:["uzoqda"]},busy:{v:["band"]},"do not disturb":{v:["bezovta qilmang"]},invisible:{v:["ko'rinmas"]},offline:{v:["offline"]},online:{v:["online"]}}},{l:"zh-CN",t:{away:{v:["离开"]},busy:{v:["繁忙"]},"do not disturb":{v:["请勿打扰"]},invisible:{v:["隐藏的"]},offline:{v:["离线"]},online:{v:["在线"]}}},{l:"zh-HK",t:{away:{v:["離開"]},busy:{v:["忙碌"]},"do not disturb":{v:["請勿打擾"]},invisible:{v:["隐藏的"]},offline:{v:["離線"]},online:{v:["在線"]}}},{l:"zh-TW",t:{away:{v:["離開"]},busy:{v:["忙碌"]},"do not disturb":{v:["請勿打擾"]},invisible:{v:["不可見"]},offline:{v:["離線"]},online:{v:["線上"]}}}],U=[{l:"ar",t:{"Back to provider selection":{v:["عودة إلى اختيار المزوّد"]},"Close Smart Picker":{v:["إغلاق المحدد الذكي"]},"Smart Picker":{v:["اللاقط الذكي smart picker"]}}},{l:"ast",t:{"Back to provider selection":{v:["Volver a la seleición de fornidores"]},"Close Smart Picker":{v:["Zarrar la seleición intelixente"]},"Smart Picker":{v:["Selector intelixente"]}}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{"Back to provider selection":{v:["Zpět na výběr poskytovatele"]},"Close Smart Picker":{v:["Zavřít inteligentní výběr"]},"Smart Picker":{v:["Inteligentní výběr"]}}},{l:"cs-CZ",t:{"Back to provider selection":{v:["Zpět na výběr poskytovatele"]},"Close Smart Picker":{v:["Zavřít inteligentní výběr"]},"Smart Picker":{v:["Inteligentní výběr"]}}},{l:"da",t:{"Back to provider selection":{v:["Tilbage til udbydervalg"]},"Close Smart Picker":{v:["Luk Smart Vælger"]},"Smart Picker":{v:["Smart Vælger"]}}},{l:"de",t:{"Back to provider selection":{v:["Zurück zur Anbieterauswahl"]},"Close Smart Picker":{v:["Smart Picker schließen"]},"Smart Picker":{v:["Smart Picker"]}}},{l:"de-DE",t:{"Back to provider selection":{v:["Zurück zur Anbieterauswahl"]},"Close Smart Picker":{v:["Smart Picker schließen"]},"Smart Picker":{v:["Smart Picker"]}}},{l:"el",t:{"Back to provider selection":{v:["Επιστροφή στην επιλογή παρόχου"]},"Close Smart Picker":{v:["Κλείσιμο Έξυπνης Επιλογής"]},"Smart Picker":{v:["Έξυπνη Επιλογή"]}}},{l:"en-GB",t:{"Back to provider selection":{v:["Back to provider selection"]},"Close Smart Picker":{v:["Close Smart Picker"]},"Smart Picker":{v:["Smart Picker"]}}},{l:"eo",t:{}},{l:"es",t:{"Back to provider selection":{v:["Volver a la selección de proveedor"]},"Close Smart Picker":{v:["Cerrar selector inteligente"]},"Smart Picker":{v:["Selector inteligente"]}}},{l:"es-AR",t:{"Back to provider selection":{v:["Volver a la selección de proveedor"]},"Close Smart Picker":{v:["Cerrar selector inteligente"]},"Smart Picker":{v:["Selector inteligente"]}}},{l:"es-EC",t:{"Back to provider selection":{v:["Volver a la selección de proveedor"]},"Close Smart Picker":{v:["Cerrar selector inteligente"]},"Smart Picker":{v:["Selector inteligente"]}}},{l:"es-MX",t:{"Back to provider selection":{v:["Volver a la selección de proveedor"]},"Close Smart Picker":{v:["Cerrar selector inteligente"]},"Smart Picker":{v:["Selector inteligente"]}}},{l:"et-EE",t:{"Back to provider selection":{v:["Tagasi teenusepakkuja valiku juurde"]},"Close Smart Picker":{v:["Sulge nutikas valija"]},"Smart Picker":{v:["Nutikas valija"]}}},{l:"eu",t:{"Back to provider selection":{v:["Itzuli hornitzaileen hautapenera"]},"Close Smart Picker":{v:["Itxi hautatzaile adimenduna"]},"Smart Picker":{v:["Hautatzaile adimenduna"]}}},{l:"fa",t:{"Back to provider selection":{v:["بازگشت به انتخاب ارائه دهنده"]},"Close Smart Picker":{v:["بستن انتخاب‌گر هوشمند"]},"Smart Picker":{v:["انتخابگر هوشمند"]}}},{l:"fi",t:{"Back to provider selection":{v:["Takaisin toimittajavalintaan"]},"Close Smart Picker":{v:["Sulje älykas valitsin"]},"Smart Picker":{v:["Älykäs valitsin"]}}},{l:"fr",t:{"Back to provider selection":{v:["Revenir à la sélection du fournisseur"]},"Close Smart Picker":{v:["Fermer le sélecteur intelligent"]},"Smart Picker":{v:["Sélecteur intelligent"]}}},{l:"ga",t:{"Back to provider selection":{v:["Ar ais go roghnú soláthróra"]},"Close Smart Picker":{v:["Dún Piocálaí Cliste"]},"Smart Picker":{v:["Roghnóir Cliste"]}}},{l:"gl",t:{"Back to provider selection":{v:["Volver á selección do provedor"]},"Close Smart Picker":{v:["Pechar o Selector intelixente"]},"Smart Picker":{v:["Selector intelixente"]}}},{l:"he",t:{"Back to provider selection":{v:["חזרה לבחירת ספק"]},"Close Smart Picker":{v:["סגירת הבורר החכם"]},"Smart Picker":{v:["בורר חכם"]}}},{l:"hu",t:{}},{l:"id",t:{"Back to provider selection":{v:["Kembali ke pemilihan penyedia"]},"Close Smart Picker":{v:["Tutup Pemilih Cerdas"]},"Smart Picker":{v:["Pemilih Cerdas"]}}},{l:"is",t:{"Back to provider selection":{v:["Til baka í val á þjónustuveitu"]},"Close Smart Picker":{v:["Loka snjall-veljara"]},"Smart Picker":{v:["Snjall-veljari"]}}},{l:"it",t:{"Back to provider selection":{v:["Torna alla selezione del provider"]},"Close Smart Picker":{v:["Chiudere lo Smart Picker"]},"Smart Picker":{v:["Picker intelligente"]}}},{l:"ja",t:{"Back to provider selection":{v:["プロバイダーの選択に戻る"]},"Close Smart Picker":{v:["スマートピッカーを閉じる"]},"Smart Picker":{v:["スマートピッカー"]}}},{l:"ja-JP",t:{"Back to provider selection":{v:["プロバイダーの選択に戻る"]},"Close Smart Picker":{v:["スマートピッカーを閉じる"]},"Smart Picker":{v:["スマートピッカー"]}}},{l:"ko",t:{"Back to provider selection":{v:["제공자 선택으로 돌아가기"]},"Close Smart Picker":{v:["스마트 선택기 닫기"]},"Smart Picker":{v:["스마트 선택기"]}}},{l:"lo",t:{"Back to provider selection":{v:["ກັບໄປທີ່ການເລືອກຜູ້ໃຫ້ບໍລິການ"]},"Close Smart Picker":{v:["ປິດໂຕເລືອກອັດສະລິຍະ"]},"Smart Picker":{v:["ໂຕເລືອກອັດສະລິຍະ"]}}},{l:"lt-LT",t:{}},{l:"lv",t:{}},{l:"mk",t:{"Back to provider selection":{v:["Назад до избор на провајдер"]},"Close Smart Picker":{v:["Затвори паметен избирач"]},"Smart Picker":{v:["Паметен избирач"]}}},{l:"my",t:{}},{l:"nb",t:{"Back to provider selection":{v:["Tilbake til leverandørvalg"]},"Close Smart Picker":{v:["Lukk Smart Velger"]},"Smart Picker":{v:["Smart Velger"]}}},{l:"nl",t:{"Back to provider selection":{v:["Terug naar provider selectie"]},"Close Smart Picker":{v:["Slimme Kiezer sluiten"]},"Smart Picker":{v:["Slimme Kiezer"]}}},{l:"oc",t:{}},{l:"pl",t:{"Back to provider selection":{v:["Powrót do wyboru dostawcy"]},"Close Smart Picker":{v:["Zamknij inteligentny selektor"]},"Smart Picker":{v:["Inteligentne wybieranie"]}}},{l:"pt-BR",t:{"Back to provider selection":{v:["Voltar para seleção de provedor"]},"Close Smart Picker":{v:["Fechar Seletor Inteligente"]},"Smart Picker":{v:["Seletor Inteligente"]}}},{l:"pt-PT",t:{"Back to provider selection":{v:["Voltar à seleção de fornecedor"]},"Close Smart Picker":{v:['Fechar "Smart Picker"']},"Smart Picker":{v:["Smart Picker"]}}},{l:"ro",t:{"Back to provider selection":{v:["Înapoi la selecția providerului"]},"Close Smart Picker":{v:["Închide Smart Picker"]},"Smart Picker":{v:["Smart Picker"]}}},{l:"ru",t:{"Back to provider selection":{v:["Вернуться к выбору провайдера"]},"Close Smart Picker":{v:["Закрыть интеллектуальный выбор"]},"Smart Picker":{v:["Умный выбор"]}}},{l:"sk",t:{"Back to provider selection":{v:["Späť na výber poskytovateľa"]},"Close Smart Picker":{v:["Zavrieť inteligentný výber"]},"Smart Picker":{v:["Inteligentný výber"]}}},{l:"sl",t:{}},{l:"sr",t:{"Back to provider selection":{v:["Назад на избор пружаоца"]},"Close Smart Picker":{v:["Затвори паметни бирач"]},"Smart Picker":{v:["Паметни бирач"]}}},{l:"sv",t:{"Back to provider selection":{v:["Tillbaka till leverantörsval"]},"Close Smart Picker":{v:["Stäng Smart Picker"]},"Smart Picker":{v:["Smart Picker"]}}},{l:"tr",t:{"Back to provider selection":{v:["Hizmet sağlayıcı seçimine dön"]},"Close Smart Picker":{v:["Akıllı seçimi kapat"]},"Smart Picker":{v:["Akıllı seçim"]}}},{l:"uk",t:{"Back to provider selection":{v:["Назад до вибору постачальника"]},"Close Smart Picker":{v:["Закрити асистент вибору"]},"Smart Picker":{v:["Асистент вибору"]}}},{l:"uz",t:{"Back to provider selection":{v:["Provayder tanloviga qaytish"]},"Close Smart Picker":{v:["Smart Picker-ni yoping"]},"Smart Picker":{v:["Aqlli tanlovchi"]}}},{l:"zh-CN",t:{"Back to provider selection":{v:["返回至提供者选择列表"]},"Close Smart Picker":{v:["关闭智能拾取器"]},"Smart Picker":{v:["智能拾取器"]}}},{l:"zh-HK",t:{"Back to provider selection":{v:["回到提供者選擇"]},"Close Smart Picker":{v:["關閉 Smart Picker"]},"Smart Picker":{v:["Smart Picker"]}}},{l:"zh-TW",t:{"Back to provider selection":{v:["回到提供者選擇"]},"Close Smart Picker":{v:["關閉智慧型挑選器"]},"Smart Picker":{v:["智慧型挑選器"]}}}],G=[{l:"ar",t:{"Cancel changes":{v:["إلغاء التغييرات"]},"Confirm changes":{v:["تأكيد التغييرات"]}}},{l:"ast",t:{"Cancel changes":{v:["Encaboxar los cambeos"]},"Confirm changes":{v:["Confirmar los cambeos"]}}},{l:"br",t:{}},{l:"ca",t:{"Cancel changes":{v:["Cancel·la els canvis"]},"Confirm changes":{v:["Confirmeu els canvis"]}}},{l:"cs",t:{"Cancel changes":{v:["Zrušit změny"]},"Confirm changes":{v:["Potvrdit změny"]}}},{l:"cs-CZ",t:{"Cancel changes":{v:["Zrušit změny"]},"Confirm changes":{v:["Potvrdit změny"]}}},{l:"da",t:{"Cancel changes":{v:["Annuller ændringer"]},"Confirm changes":{v:["Bekræft ændringer"]}}},{l:"de",t:{"Cancel changes":{v:["Änderungen verwerfen"]},"Confirm changes":{v:["Änderungen bestätigen"]}}},{l:"de-DE",t:{"Cancel changes":{v:["Änderungen verwerfen"]},"Confirm changes":{v:["Änderungen bestätigen"]}}},{l:"el",t:{"Cancel changes":{v:["Ακύρωση αλλαγών"]},"Confirm changes":{v:["Επιβεβαίωση αλλαγών"]}}},{l:"en-GB",t:{"Cancel changes":{v:["Cancel changes"]},"Confirm changes":{v:["Confirm changes"]}}},{l:"eo",t:{}},{l:"es",t:{"Cancel changes":{v:["Cancelar cambios"]},"Confirm changes":{v:["Confirmar cambios"]}}},{l:"es-AR",t:{"Cancel changes":{v:["Cancelar cambios"]},"Confirm changes":{v:["Confirmar cambios"]}}},{l:"es-EC",t:{"Cancel changes":{v:["Cancelar cambios"]},"Confirm changes":{v:["Confirmar cambios"]}}},{l:"es-MX",t:{"Cancel changes":{v:["Cancelar cambios"]},"Confirm changes":{v:["Confirmar cambios"]}}},{l:"et-EE",t:{"Cancel changes":{v:["Tühista muudatused"]},"Confirm changes":{v:["Kinnitage muudatused"]}}},{l:"eu",t:{"Cancel changes":{v:["Ezeztatu aldaketak"]},"Confirm changes":{v:["Baieztatu aldaketak"]}}},{l:"fa",t:{"Cancel changes":{v:["لغو تغییرات"]},"Confirm changes":{v:["تایید تغییرات"]}}},{l:"fi",t:{"Cancel changes":{v:["Peruuta muutokset"]},"Confirm changes":{v:["Vahvista muutokset"]}}},{l:"fr",t:{"Cancel changes":{v:["Annuler les modifications"]},"Confirm changes":{v:["Confirmer les modifications"]}}},{l:"ga",t:{"Cancel changes":{v:["Cealaigh athruithe"]},"Confirm changes":{v:["Deimhnigh na hathruithe"]}}},{l:"gl",t:{"Cancel changes":{v:["Cancelar os cambios"]},"Confirm changes":{v:["Confirma os cambios"]}}},{l:"he",t:{"Cancel changes":{v:["ביטול שינויים"]},"Confirm changes":{v:["אישור השינויים"]}}},{l:"hu",t:{"Cancel changes":{v:["Változtatások elvetése"]},"Confirm changes":{v:["Változtatások megerősítése"]}}},{l:"id",t:{"Cancel changes":{v:["Batalkan perubahan"]},"Confirm changes":{v:["Konfirmasikan perubahan"]}}},{l:"is",t:{"Cancel changes":{v:["Hætta við breytingar"]},"Confirm changes":{v:["Staðfesta breytingar"]}}},{l:"it",t:{"Cancel changes":{v:["Annulla modifiche"]},"Confirm changes":{v:["Conferma modifiche"]}}},{l:"ja",t:{"Cancel changes":{v:["変更をキャンセル"]},"Confirm changes":{v:["変更を承認"]}}},{l:"ja-JP",t:{"Cancel changes":{v:["変更をキャンセル"]},"Confirm changes":{v:["変更を承認"]}}},{l:"ko",t:{"Cancel changes":{v:["변경 취소"]},"Confirm changes":{v:["변경 사항 확인"]}}},{l:"lo",t:{"Cancel changes":{v:["ຍົກເລີກການປ່ຽນແປງ"]},"Confirm changes":{v:["ຢືນຢັນການປ່ຽນແປງ"]}}},{l:"lt-LT",t:{}},{l:"lv",t:{}},{l:"mk",t:{"Cancel changes":{v:["Откажи ги промените"]},"Confirm changes":{v:["Потврди ги промените"]}}},{l:"my",t:{"Cancel changes":{v:["ပြောင်းလဲမှုများ ပယ်ဖျက်ရန်"]},"Confirm changes":{v:["ပြောင်းလဲမှုများ အတည်ပြုရန်"]}}},{l:"nb",t:{"Cancel changes":{v:["Avbryt endringer"]},"Confirm changes":{v:["Bekreft endringer"]}}},{l:"nl",t:{"Cancel changes":{v:["Wijzigingen annuleren"]},"Confirm changes":{v:["Wijzigingen bevestigen"]}}},{l:"oc",t:{}},{l:"pl",t:{"Cancel changes":{v:["Anuluj zmiany"]},"Confirm changes":{v:["Potwierdź zmiany"]}}},{l:"pt-BR",t:{"Cancel changes":{v:["Cancelar alterações"]},"Confirm changes":{v:["Confirmar alterações"]}}},{l:"pt-PT",t:{"Cancel changes":{v:["Cancelar alterações"]},"Confirm changes":{v:["Confirmar alterações"]}}},{l:"ro",t:{"Cancel changes":{v:["Anulează modificările"]},"Confirm changes":{v:["Confirmați modificările"]}}},{l:"ru",t:{"Cancel changes":{v:["Отменить изменения"]},"Confirm changes":{v:["Подтвердить изменения"]}}},{l:"sk",t:{"Cancel changes":{v:["Zrušiť zmeny"]},"Confirm changes":{v:["Potvrdiť zmeny"]}}},{l:"sl",t:{"Cancel changes":{v:["Prekliči spremembe"]},"Confirm changes":{v:["Potrdi spremembe"]}}},{l:"sr",t:{"Cancel changes":{v:["Откажи измене"]},"Confirm changes":{v:["Потврдите измене"]}}},{l:"sv",t:{"Cancel changes":{v:["Avbryt ändringar"]},"Confirm changes":{v:["Bekräfta ändringar"]}}},{l:"tr",t:{"Cancel changes":{v:["Değişiklikleri iptal et"]},"Confirm changes":{v:["Değişiklikleri onayla"]}}},{l:"uk",t:{"Cancel changes":{v:["Скасувати зміни"]},"Confirm changes":{v:["Підтвердити зміни"]}}},{l:"uz",t:{"Cancel changes":{v:["O'zgarishlarni bekor qilish"]},"Confirm changes":{v:["O'zgarishlarni tasdiqlang"]}}},{l:"zh-CN",t:{"Cancel changes":{v:["取消更改"]},"Confirm changes":{v:["确认更改"]}}},{l:"zh-HK",t:{"Cancel changes":{v:["取消更改"]},"Confirm changes":{v:["確認更改"]}}},{l:"zh-TW",t:{"Cancel changes":{v:["取消變更"]},"Confirm changes":{v:["確認變更"]}}}],Z=[{l:"ar",t:{"Change name":{v:["تغيير الاسم"]},"Close sidebar":{v:["قفل الشريط الجانبي"]},Favorite:{v:["المفضلة"]},"Open sidebar":{v:["إفتَح الشريط الجانبي"]}}},{l:"ast",t:{"Change name":{v:["Camudar el nome"]},"Close sidebar":{v:["Zarrar la barra llateral"]},Favorite:{v:["Favoritu"]},"Open sidebar":{v:["Abrir la barra llateral"]}}},{l:"br",t:{}},{l:"ca",t:{"Close sidebar":{v:["Tancar la barra lateral"]},Favorite:{v:["Preferit"]}}},{l:"cs",t:{"Change name":{v:["Změnit název"]},"Close sidebar":{v:["Zavřít postranní panel"]},Favorite:{v:["Oblíbené"]},"Open sidebar":{v:["Otevřít postranní panel"]}}},{l:"cs-CZ",t:{"Change name":{v:["Změnit název"]},"Close sidebar":{v:["Zavřít postranní panel"]},Favorite:{v:["Oblíbené"]}}},{l:"da",t:{"Change name":{v:["Ændre navn"]},"Close sidebar":{v:["Luk sidepanel"]},Favorite:{v:["Favorit"]},"Open sidebar":{v:["Åbn sidepanel"]}}},{l:"de",t:{"Change name":{v:["Namen ändern"]},"Close sidebar":{v:["Seitenleiste schließen"]},Favorite:{v:["Favorit"]},"Open sidebar":{v:["Seitenleiste öffnen"]}}},{l:"de-DE",t:{"Change name":{v:["Namen ändern"]},"Close sidebar":{v:["Seitenleiste schließen"]},Favorite:{v:["Favorit"]},"Open sidebar":{v:["Seitenleiste öffnen"]}}},{l:"el",t:{"Change name":{v:["Αλλαγή ονόματος"]},"Close sidebar":{v:["Κλείσιμο πλευρικής μπάρας"]},Favorite:{v:["Αγαπημένα"]},"Open sidebar":{v:["Άνοιγμα πλευρικής μπάρας"]}}},{l:"en-GB",t:{"Change name":{v:["Change name"]},"Close sidebar":{v:["Close sidebar"]},Favorite:{v:["Favourite"]},"Open sidebar":{v:["Open sidebar"]}}},{l:"eo",t:{}},{l:"es",t:{"Change name":{v:["Cambiar nombre"]},"Close sidebar":{v:["Cerrar barra lateral"]},Favorite:{v:["Favorito"]},"Open sidebar":{v:["Abrir barra lateral"]}}},{l:"es-AR",t:{"Change name":{v:["Cambiar nombre"]},"Close sidebar":{v:["Cerrar barra lateral"]},Favorite:{v:["Favorito"]},"Open sidebar":{v:["Abrir barra lateral"]}}},{l:"es-EC",t:{"Change name":{v:["Cambiar nombre"]},"Close sidebar":{v:["Cerrar barra lateral"]},Favorite:{v:["Favorito"]}}},{l:"es-MX",t:{"Change name":{v:["Cambiar nombre"]},"Close sidebar":{v:["Cerrar barra lateral"]},Favorite:{v:["Favorito"]},"Open sidebar":{v:["Abrir barra lateral"]}}},{l:"et-EE",t:{"Change name":{v:["Muuda nime"]},"Close sidebar":{v:["Sulge külgriba"]},Favorite:{v:["Lemmik"]},"Open sidebar":{v:["Ava külgriba"]}}},{l:"eu",t:{"Change name":{v:["Aldatu izena"]},"Close sidebar":{v:["Itxi albo-barra"]},Favorite:{v:["Gogokoa"]}}},{l:"fa",t:{"Change name":{v:["تغییر نام"]},"Close sidebar":{v:["بستن نوار کناری"]},Favorite:{v:["مورد علاقه"]},"Open sidebar":{v:["باز کردن نوار کنار"]}}},{l:"fi",t:{"Change name":{v:["Vaihda nimi"]},"Close sidebar":{v:["Sulje sivupalkki"]},Favorite:{v:["Suosikki"]},"Open sidebar":{v:["Avaa sivupalkki"]}}},{l:"fr",t:{"Change name":{v:["Modifier le nom"]},"Close sidebar":{v:["Fermer la barre latérale"]},Favorite:{v:["Favori"]},"Open sidebar":{v:["Ouvrir la barre latérale"]}}},{l:"ga",t:{"Change name":{v:["Athrú ainm"]},"Close sidebar":{v:["Dún barra taoibh"]},Favorite:{v:["is fearr leat"]},"Open sidebar":{v:["Oscail barra taoibh"]}}},{l:"gl",t:{"Change name":{v:["Cambiar o nome"]},"Close sidebar":{v:["Pechar a barra lateral"]},Favorite:{v:["Favorito"]},"Open sidebar":{v:["Abrir a barra lateral"]}}},{l:"he",t:{"Change name":{v:["החלפת שם"]},"Close sidebar":{v:["סגירת סרגל הצד"]},Favorite:{v:["למועדפים"]}}},{l:"hu",t:{"Close sidebar":{v:["Oldalsáv bezárása"]},Favorite:{v:["Kedvenc"]}}},{l:"id",t:{"Change name":{v:["Ubah nama"]},"Close sidebar":{v:["Tutup bilah sisi"]},Favorite:{v:["Favorit"]}}},{l:"is",t:{"Change name":{v:["Breyta nafni"]},"Close sidebar":{v:["Loka hliðarstiku"]},Favorite:{v:["Eftirlæti"]},"Open sidebar":{v:["Opna hliðarspjald"]}}},{l:"it",t:{"Change name":{v:["Cambia nome"]},"Close sidebar":{v:["Chiudi la barra laterale"]},Favorite:{v:["Preferito"]}}},{l:"ja",t:{"Change name":{v:["名前の変更"]},"Close sidebar":{v:["サイドバーを閉じる"]},Favorite:{v:["お気に入り"]},"Open sidebar":{v:["サイドバーを開く"]}}},{l:"ja-JP",t:{"Change name":{v:["名前の変更"]},"Close sidebar":{v:["サイドバーを閉じる"]},Favorite:{v:["お気に入り"]},"Open sidebar":{v:["サイドバーを開く"]}}},{l:"ko",t:{"Change name":{v:["이름 변경"]},"Close sidebar":{v:["사이드바 닫기"]},Favorite:{v:["즐겨찾기"]},"Open sidebar":{v:["사이드바 열기"]}}},{l:"lo",t:{"Change name":{v:["ປ່ຽນຊື່"]},"Close sidebar":{v:["ປິດແຖບດ້ານຂ້າງ"]},Favorite:{v:["ລາຍການທີ່ມັກ"]},"Open sidebar":{v:["ເປີດແຖບດ້ານຂ້າງ"]}}},{l:"lt-LT",t:{}},{l:"lv",t:{}},{l:"mk",t:{"Change name":{v:["Промени име"]},"Close sidebar":{v:["Затвори странична лента"]},Favorite:{v:["Фаворити"]},"Open sidebar":{v:["Отвори странична лента"]}}},{l:"my",t:{}},{l:"nb",t:{"Change name":{v:["Endre navn"]},"Close sidebar":{v:["Lukk sidepanel"]},Favorite:{v:["Favoritt"]},"Open sidebar":{v:["Åpne sidefelt"]}}},{l:"nl",t:{"Change name":{v:["Naam wijzigen"]},"Close sidebar":{v:["Zijbalk sluiten"]},Favorite:{v:["Favoriet"]},"Open sidebar":{v:["Zijbalk openen"]}}},{l:"oc",t:{}},{l:"pl",t:{"Change name":{v:["Zmień nazwę"]},"Close sidebar":{v:["Zamknij pasek boczny"]},Favorite:{v:["Ulubiony"]},"Open sidebar":{v:["Otwórz pasek boczny"]}}},{l:"pt-BR",t:{"Change name":{v:["Mudar nome"]},"Close sidebar":{v:["Fechar barra lateral"]},Favorite:{v:["Favorito"]},"Open sidebar":{v:["Abrir barra lateral"]}}},{l:"pt-PT",t:{"Change name":{v:["Alterar nome"]},"Close sidebar":{v:["Fechar barra lateral"]},Favorite:{v:["Favorito"]},"Open sidebar":{v:["Abrir barra lateral"]}}},{l:"ro",t:{"Change name":{v:["Modifică numele"]},"Close sidebar":{v:["Închide bara laterală"]},Favorite:{v:["Favorit"]}}},{l:"ru",t:{"Change name":{v:["Изменить имя"]},"Close sidebar":{v:["Закрыть сайдбар"]},Favorite:{v:["Избранное"]},"Open sidebar":{v:["Открыть боковую панель"]}}},{l:"sk",t:{"Change name":{v:["Zmeniť názov"]},"Close sidebar":{v:["Zavrieť bočný panel"]},Favorite:{v:["Obľúbené"]},"Open sidebar":{v:["Otvoriť bočný panel"]}}},{l:"sl",t:{"Close sidebar":{v:["Zapri stransko vrstico"]},Favorite:{v:["Priljubljeno"]}}},{l:"sr",t:{"Change name":{v:["Измени назив"]},"Close sidebar":{v:["Затвори бочну траку"]},Favorite:{v:["Омиљени"]},"Open sidebar":{v:["Отвори бочну траку"]}}},{l:"sv",t:{"Change name":{v:["Ändra namn"]},"Close sidebar":{v:["Stäng sidofältet"]},Favorite:{v:["Favorit"]},"Open sidebar":{v:["Öppna sidofältet"]}}},{l:"tr",t:{"Change name":{v:["Adı değiştir"]},"Close sidebar":{v:["Yan çubuğu kapat"]},Favorite:{v:["Sık kullanılanlara ekle"]},"Open sidebar":{v:["Yan çubuğu aç"]}}},{l:"uk",t:{"Change name":{v:["Змінити назву"]},"Close sidebar":{v:["Закрити бічну панель"]},Favorite:{v:["Із зірочкою"]},"Open sidebar":{v:["Бокове меню"]}}},{l:"uz",t:{"Change name":{v:["Ismni o'zgartirish"]},"Close sidebar":{v:["Yon panelni yoping"]},Favorite:{v:["Tanlangan"]},"Open sidebar":{v:["Yon panelni oching"]}}},{l:"zh-CN",t:{"Change name":{v:["修改名称"]},"Close sidebar":{v:["关闭侧边栏"]},Favorite:{v:["喜爱"]},"Open sidebar":{v:["打开侧边栏"]}}},{l:"zh-HK",t:{"Change name":{v:["更改名稱"]},"Close sidebar":{v:["關閉側邊欄"]},Favorite:{v:["喜愛"]},"Open sidebar":{v:["打開側邊欄"]}}},{l:"zh-TW",t:{"Change name":{v:["變更名稱"]},"Close sidebar":{v:["關閉側邊欄"]},Favorite:{v:["最愛"]},"Open sidebar":{v:["開啟側邊欄"]}}}],K=[{l:"ar",t:{"Clear search":{v:["محو البحث"]}}},{l:"ast",t:{"Clear search":{v:["Borrar la busca"]}}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{"Clear search":{v:["Vyčistit vyhledávání"]}}},{l:"cs-CZ",t:{"Clear search":{v:["Vyčistit vyhledávání"]}}},{l:"da",t:{"Clear search":{v:["Ryd søgning"]}}},{l:"de",t:{"Clear search":{v:["Suche leeren"]}}},{l:"de-DE",t:{"Clear search":{v:["Suche leeren"]}}},{l:"el",t:{"Clear search":{v:["Εκκαθάριση αναζήτησης"]}}},{l:"en-GB",t:{"Clear search":{v:["Clear search"]}}},{l:"eo",t:{}},{l:"es",t:{"Clear search":{v:["Limpiar búsqueda"]}}},{l:"es-AR",t:{"Clear search":{v:["Limpiar búsqueda"]}}},{l:"es-EC",t:{"Clear search":{v:["Limpiar búsqueda"]}}},{l:"es-MX",t:{"Clear search":{v:["Limpiar búsqueda"]}}},{l:"et-EE",t:{"Clear search":{v:["Tühjenda otsing"]}}},{l:"eu",t:{"Clear search":{v:["Garbitu bilaketa"]}}},{l:"fa",t:{"Clear search":{v:["پاک کردن جستجو"]}}},{l:"fi",t:{"Clear search":{v:["Tyhjennä haku"]}}},{l:"fr",t:{"Clear search":{v:["Effacer la recherche"]}}},{l:"ga",t:{"Clear search":{v:["Glan cuardach"]}}},{l:"gl",t:{"Clear search":{v:["Limpar a busca"]}}},{l:"he",t:{"Clear search":{v:["פינוי חיפוש"]}}},{l:"hu",t:{}},{l:"id",t:{"Clear search":{v:["Bersihkan pencarian"]}}},{l:"is",t:{"Clear search":{v:["Hreinsa leit"]}}},{l:"it",t:{"Clear search":{v:["online"]}}},{l:"ja",t:{"Clear search":{v:["検索をクリア"]}}},{l:"ja-JP",t:{"Clear search":{v:["検索をクリア"]}}},{l:"ko",t:{"Clear search":{v:["검색 지우기"]}}},{l:"lo",t:{"Clear search":{v:["ລຶບການຄົ້ນຫາ"]}}},{l:"lt-LT",t:{}},{l:"lv",t:{}},{l:"mk",t:{"Clear search":{v:["Исчисти пребарување"]}}},{l:"my",t:{}},{l:"nb",t:{"Clear search":{v:["Tøm søk"]}}},{l:"nl",t:{"Clear search":{v:["Zoekopdracht wissen"]}}},{l:"oc",t:{}},{l:"pl",t:{"Clear search":{v:["Wyczyść wyszukiwanie"]}}},{l:"pt-BR",t:{"Clear search":{v:["Limpar pesquisa"]}}},{l:"pt-PT",t:{"Clear search":{v:["Limpar pesquisa"]}}},{l:"ro",t:{"Clear search":{v:["Șterge căutarea"]}}},{l:"ru",t:{"Clear search":{v:["Очистить поиск"]}}},{l:"sk",t:{"Clear search":{v:["Vymazať vyhľadávanie"]}}},{l:"sl",t:{}},{l:"sr",t:{"Clear search":{v:["Обриши претрагу"]}}},{l:"sv",t:{"Clear search":{v:["Rensa sökning"]}}},{l:"tr",t:{"Clear search":{v:["Aramayı temizle"]}}},{l:"uk",t:{"Clear search":{v:["Очистити пошук"]}}},{l:"uz",t:{"Clear search":{v:["Qidiruvni tozalash"]}}},{l:"zh-CN",t:{"Clear search":{v:["清除搜索"]}}},{l:"zh-HK",t:{"Clear search":{v:["清除搜索"]}}},{l:"zh-TW",t:{"Clear search":{v:["清除搜尋"]}}}],I=[{l:"ar",t:{"Clear selected":{v:["محو المحدّد"]},"Deselect {option}":{v:["إلغاء تحديد {option}"]},"No results":{v:["ليس هناك أية نتيجة"]},Options:{v:["خيارات"]}}},{l:"ast",t:{"Clear selected":{v:["Borrar lo seleicionao"]},"Deselect {option}":{v:["Deseleicionar «{option}»"]},"No results":{v:["Nun hai nengún resultáu"]},Options:{v:["Opciones"]}}},{l:"br",t:{"No results":{v:["Disoc'h ebet"]}}},{l:"ca",t:{"No results":{v:["Sense resultats"]}}},{l:"cs",t:{"Clear selected":{v:["Vyčistit vybrané"]},"Deselect {option}":{v:["Zrušit výběr {option}"]},"No results":{v:["Nic nenalezeno"]},Options:{v:["Možnosti"]}}},{l:"cs-CZ",t:{"Clear selected":{v:["Vyčistit vybrané"]},"Deselect {option}":{v:["Zrušit výběr {option}"]},"No results":{v:["Nic nenalezeno"]},Options:{v:["Možnosti"]}}},{l:"da",t:{"Clear selected":{v:["Ryd valgt"]},"Deselect {option}":{v:["Fravælg {option}"]},"No results":{v:["Ingen resultater"]},Options:{v:["Indstillinger"]}}},{l:"de",t:{"Clear selected":{v:["Auswahl leeren"]},"Deselect {option}":{v:["{option} abwählen"]},"No results":{v:["Keine Ergebnisse"]},Options:{v:["Optionen"]}}},{l:"de-DE",t:{"Clear selected":{v:["Auswahl leeren"]},"Deselect {option}":{v:["{option} abwählen"]},"No results":{v:["Keine Ergebnisse"]},Options:{v:["Optionen"]}}},{l:"el",t:{"Clear selected":{v:["Εκκαθάριση επιλογής"]},"Deselect {option}":{v:["Αποεπιλογή {option}"]},"No results":{v:["Κανένα αποτέλεσμα"]},Options:{v:["Επιλογές"]}}},{l:"en-GB",t:{"Clear selected":{v:["Clear selected"]},"Deselect {option}":{v:["Deselect {option}"]},"No results":{v:["No results"]},Options:{v:["Options"]}}},{l:"eo",t:{"No results":{v:["La rezulto forestas"]}}},{l:"es",t:{"Clear selected":{v:["Limpiar selección"]},"Deselect {option}":{v:["Deseleccionar {option}"]},"No results":{v:[" Ningún resultado"]},Options:{v:["Opciones"]}}},{l:"es-AR",t:{"Clear selected":{v:["Limpiar selección"]},"Deselect {option}":{v:["Deseleccionar {option}"]},"No results":{v:["Sin resultados"]},Options:{v:["Opciones"]}}},{l:"es-EC",t:{"No results":{v:["Sin resultados"]}}},{l:"es-MX",t:{"Clear selected":{v:["Limpiar selección"]},"Deselect {option}":{v:["Deseleccionar {option}"]},"No results":{v:["Sin resultados"]},Options:{v:["Opciones"]}}},{l:"et-EE",t:{"Clear selected":{v:["Tühjenad valik"]},"Deselect {option}":{v:["Eemalda {option} valik"]},"No results":{v:["Tulemusi pole"]},Options:{v:["Valikud"]}}},{l:"eu",t:{"No results":{v:["Emaitzarik ez"]}}},{l:"fa",t:{"Clear selected":{v:["پاک کردن مورد انتخاب شده"]},"Deselect {option}":{v:["لغو انتخاب {option}"]},"No results":{v:["بدون هیچ نتیجه‌ای"]},Options:{v:["گزینه‌ها"]}}},{l:"fi",t:{"Clear selected":{v:["Tyhjennä valitut"]},"Deselect {option}":{v:["Poista valinta {option}"]},"No results":{v:["Ei tuloksia"]},Options:{v:["Valinnat"]}}},{l:"fr",t:{"Clear selected":{v:["Vider la sélection"]},"Deselect {option}":{v:["Désélectionner {option}"]},"No results":{v:["Aucun résultat"]},Options:{v:["Options"]}}},{l:"ga",t:{"Clear selected":{v:["Glan roghnaithe"]},"Deselect {option}":{v:["Díroghnaigh {option}"]},"No results":{v:["Gan torthaí"]},Options:{v:["Roghanna"]}}},{l:"gl",t:{"Clear selected":{v:["Limpar o seleccionado"]},"Deselect {option}":{v:["Desmarcar {option}"]},"No results":{v:["Sen resultados"]},Options:{v:["Opcións"]}}},{l:"he",t:{"No results":{v:["אין תוצאות"]}}},{l:"hu",t:{"No results":{v:["Nincs találat"]}}},{l:"id",t:{"Clear selected":{v:["Hapus terpilih"]},"Deselect {option}":{v:["Batalkan pemilihan {option}"]},"No results":{v:["Tidak ada hasil"]}}},{l:"is",t:{"Clear selected":{v:["Hreinsa valið"]},"Deselect {option}":{v:["Afvelja {option}"]},"No results":{v:["Engar niðurstöður"]},Options:{v:["Valkostir"]}}},{l:"it",t:{"Clear selected":{v:["Cancella selezionati"]},"Deselect {option}":{v:["Deselezionare {option}"]},"No results":{v:["Nessun risultato"]}}},{l:"ja",t:{"Clear selected":{v:["選択を解除"]},"Deselect {option}":{v:["{option} の選択を解除"]},"No results":{v:["結果無し"]},Options:{v:["オプション"]}}},{l:"ja-JP",t:{"Clear selected":{v:["選択を解除"]},"Deselect {option}":{v:["{option} の選択を解除"]},"No results":{v:["結果無し"]},Options:{v:["オプション"]}}},{l:"ko",t:{"Clear selected":{v:["선택 항목 지우기"]},"Deselect {option}":{v:["{option} 선택 해제"]},"No results":{v:["결과 없음"]},Options:{v:["옵션"]}}},{l:"lo",t:{"Clear selected":{v:["ລຶບສິ່ງທີ່ເລືອກ"]},"Deselect {option}":{v:["ຍົກເລີກການເລືອກ {option}"]},"No results":{v:["ບໍ່ມີຜົນລັບ"]},Options:{v:["ຕົວເລືອກ"]}}},{l:"lt-LT",t:{"No results":{v:["Nėra rezultatų"]}}},{l:"lv",t:{"No results":{v:["Nav rezultātu"]}}},{l:"mk",t:{"Clear selected":{v:["Исчисти означени"]},"Deselect {option}":{v:["Откажи избор на {option}"]},"No results":{v:["Нема резултати"]},Options:{v:["Опции"]}}},{l:"my",t:{"No results":{v:["ရလဒ်မရှိပါ"]}}},{l:"nb",t:{"Clear selected":{v:["Tøm merket"]},"Deselect {option}":{v:["Opphev valg {option}"]},"No results":{v:["Ingen resultater"]},Options:{v:["Alternativer"]}}},{l:"nl",t:{"Clear selected":{v:["Selectie wissen"]},"Deselect {option}":{v:["Selectie {option} opheffen"]},"No results":{v:["Geen resultaten"]},Options:{v:["Opties"]}}},{l:"oc",t:{"No results":{v:["Cap de resultat"]}}},{l:"pl",t:{"Clear selected":{v:["Wyczyść wybrane"]},"Deselect {option}":{v:["Odznacz {option}"]},"No results":{v:["Brak wyników"]},Options:{v:["Opcje"]}}},{l:"pt-BR",t:{"Clear selected":{v:["Limpar selecionado"]},"Deselect {option}":{v:["Desselecionar {option}"]},"No results":{v:["Sem resultados"]},Options:{v:["Opções"]}}},{l:"pt-PT",t:{"Clear selected":{v:["Limpeza selecionada"]},"Deselect {option}":{v:["Desmarcar {option}"]},"No results":{v:["Sem resultados"]},Options:{v:["Opções"]}}},{l:"ro",t:{"Clear selected":{v:["Șterge selecția"]},"Deselect {option}":{v:["Deselctează {option}"]},"No results":{v:["Nu există rezultate"]}}},{l:"ru",t:{"Clear selected":{v:["Очистить выбранный"]},"Deselect {option}":{v:["Отменить выбор {option}"]},"No results":{v:["Результаты отсуствуют"]},Options:{v:["Варианты"]}}},{l:"sk",t:{"Clear selected":{v:["Vymazať vybraté"]},"Deselect {option}":{v:["Zrušiť výber {option}"]},"No results":{v:["Žiadne výsledky"]},Options:{v:["možnosti"]}}},{l:"sl",t:{"No results":{v:["Ni zadetkov"]}}},{l:"sr",t:{"Clear selected":{v:["Обриши изабрано"]},"Deselect {option}":{v:["Уклони избор {option}"]},"No results":{v:["Нема резултата"]},Options:{v:["Опције"]}}},{l:"sv",t:{"Clear selected":{v:["Rensa val"]},"Deselect {option}":{v:["Avmarkera {option}"]},"No results":{v:["Inga resultat"]},Options:{v:["Alternativ"]}}},{l:"tr",t:{"Clear selected":{v:["Seçilmişleri temizle"]},"Deselect {option}":{v:["{option} bırak"]},"No results":{v:["Herhangi bir sonuç bulunamadı"]},Options:{v:["Seçenekler"]}}},{l:"uk",t:{"Clear selected":{v:["Очистити вибране"]},"Deselect {option}":{v:["Зняти вибір {option}"]},"No results":{v:["Відсутні результати"]},Options:{v:["Параметри"]}}},{l:"uz",t:{"Clear selected":{v:["Tanlanganni tozalash"]},"Deselect {option}":{v:["{option}tanlovni bekor qiling"]},"No results":{v:["Natija yoʻq"]},Options:{v:["Variantlar"]}}},{l:"zh-CN",t:{"Clear selected":{v:["清除所选"]},"Deselect {option}":{v:["取消选择 {option}"]},"No results":{v:["无结果"]},Options:{v:["选项"]}}},{l:"zh-HK",t:{"Clear selected":{v:["清除所選項目"]},"Deselect {option}":{v:["取消選擇 {option}"]},"No results":{v:["無結果"]},Options:{v:["選項"]}}},{l:"zh-TW",t:{"Clear selected":{v:["清除選定項目"]},"Deselect {option}":{v:["取消選取 {option}"]},"No results":{v:["無結果"]},Options:{v:["選項"]}}}],J=[{l:"ar",t:{Close:{v:["إغلاق"]}}},{l:"ast",t:{Close:{v:["Zarrar"]}}},{l:"br",t:{Close:{v:["Serriñ"]}}},{l:"ca",t:{Close:{v:["Tanca"]}}},{l:"cs",t:{Close:{v:["Zavřít"]}}},{l:"cs-CZ",t:{Close:{v:["Zavřít"]}}},{l:"da",t:{Close:{v:["Luk"]}}},{l:"de",t:{Close:{v:["Schließen"]}}},{l:"de-DE",t:{Close:{v:["Schließen"]}}},{l:"el",t:{Close:{v:["Κλείσιμο"]}}},{l:"en-GB",t:{Close:{v:["Close"]}}},{l:"eo",t:{Close:{v:["Fermu"]}}},{l:"es",t:{Close:{v:["Cerrar"]}}},{l:"es-AR",t:{Close:{v:["Cerrar"]}}},{l:"es-EC",t:{Close:{v:["Cerrar"]}}},{l:"es-MX",t:{Close:{v:["Cerrar"]}}},{l:"et-EE",t:{Close:{v:["Sulge"]}}},{l:"eu",t:{Close:{v:["Itxi"]}}},{l:"fa",t:{Close:{v:["بستن"]}}},{l:"fi",t:{Close:{v:["Sulje"]}}},{l:"fr",t:{Close:{v:["Fermer"]}}},{l:"ga",t:{Close:{v:["Dún"]}}},{l:"gl",t:{Close:{v:["Pechar"]}}},{l:"he",t:{Close:{v:["סגירה"]}}},{l:"hu",t:{Close:{v:["Bezárás"]}}},{l:"id",t:{Close:{v:["Tutup"]}}},{l:"is",t:{Close:{v:["Loka"]}}},{l:"it",t:{Close:{v:["Chiudi"]}}},{l:"ja",t:{Close:{v:["閉じる"]}}},{l:"ja-JP",t:{Close:{v:["閉じる"]}}},{l:"ko",t:{Close:{v:["닫기"]}}},{l:"lo",t:{Close:{v:["ປິດ"]}}},{l:"lt-LT",t:{Close:{v:["Užverti"]}}},{l:"lv",t:{Close:{v:["Aizvērt"]}}},{l:"mk",t:{Close:{v:["Затвори"]}}},{l:"my",t:{Close:{v:["ပိတ်ရန်"]}}},{l:"nb",t:{Close:{v:["Lukk"]}}},{l:"nl",t:{Close:{v:["Sluiten"]}}},{l:"oc",t:{Close:{v:["Tampar"]}}},{l:"pl",t:{Close:{v:["Zamknij"]}}},{l:"pt-BR",t:{Close:{v:["Fechar"]}}},{l:"pt-PT",t:{Close:{v:["Fechar"]}}},{l:"ro",t:{Close:{v:["Închideți"]}}},{l:"ru",t:{Close:{v:["Закрыть"]}}},{l:"sk",t:{Close:{v:["Zavrieť"]}}},{l:"sl",t:{Close:{v:["Zapri"]}}},{l:"sr",t:{Close:{v:["Затвори"]}}},{l:"sv",t:{Close:{v:["Stäng"]}}},{l:"tr",t:{Close:{v:["Kapat"]}}},{l:"uk",t:{Close:{v:["Закрити"]}}},{l:"uz",t:{Close:{v:["Yopish"]}}},{l:"zh-CN",t:{Close:{v:["关闭"]}}},{l:"zh-HK",t:{Close:{v:["關閉"]}}},{l:"zh-TW",t:{Close:{v:["關閉"]}}}],X=[{l:"ar",t:{"Collapse menu":{v:["طي القائمة"]},"Open menu":{v:["إفتَح القائمة"]}}},{l:"ast",t:{"Collapse menu":{v:["Recoyer el menú"]},"Open menu":{v:["Abrir le menú"]}}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{"Collapse menu":{v:["Sbalit nabídku"]},"Open menu":{v:["Otevřít nabídku"]}}},{l:"cs-CZ",t:{"Collapse menu":{v:["Sbalit nabídku"]},"Open menu":{v:["Otevřít nabídku"]}}},{l:"da",t:{"Collapse menu":{v:["Skjul menuen"]},"Open menu":{v:["Åben menu"]}}},{l:"de",t:{"Collapse menu":{v:["Menü einklappen"]},"Open menu":{v:["Menü öffnen"]}}},{l:"de-DE",t:{"Collapse menu":{v:["Menü einklappen"]},"Open menu":{v:["Menü öffnen"]}}},{l:"el",t:{"Collapse menu":{v:["Σύμπτυξη μενού"]},"Open menu":{v:["Άνοιγμα μενού"]}}},{l:"en-GB",t:{"Collapse menu":{v:["Collapse menu"]},"Open menu":{v:["Open menu"]}}},{l:"eo",t:{}},{l:"es",t:{"Collapse menu":{v:["Ocultar menú"]},"Open menu":{v:["Abrir menú"]}}},{l:"es-AR",t:{"Collapse menu":{v:["Ocultar menú"]},"Open menu":{v:["Abrir menú"]}}},{l:"es-EC",t:{"Collapse menu":{v:["Ocultar menú"]},"Open menu":{v:["Abrir menú"]}}},{l:"es-MX",t:{"Collapse menu":{v:["Ocultar menú"]},"Open menu":{v:["Abrir menú"]}}},{l:"et-EE",t:{"Collapse menu":{v:["Menüü kokkuklappimine"]},"Open menu":{v:["Ava menüü"]}}},{l:"eu",t:{"Collapse menu":{v:["Tolestu menua"]},"Open menu":{v:["Ireki menua"]}}},{l:"fa",t:{"Collapse menu":{v:["بستن فهرست"]},"Open menu":{v:["باز کردن فهرست"]}}},{l:"fi",t:{"Collapse menu":{v:["Supista valikko"]},"Open menu":{v:["Avaa valikko"]}}},{l:"fr",t:{"Collapse menu":{v:["Réduire le menu"]},"Open menu":{v:["Ouvrir le menu"]}}},{l:"ga",t:{"Collapse menu":{v:["Roghchlár Laghdaigh"]},"Open menu":{v:["Roghchlár a oscailt"]}}},{l:"gl",t:{"Collapse menu":{v:["Contraer o menú"]},"Open menu":{v:["Abrir o menú"]}}},{l:"he",t:{"Collapse menu":{v:["צמצום התפריט"]},"Open menu":{v:["פתיחת תפריט"]}}},{l:"hu",t:{}},{l:"id",t:{"Collapse menu":{v:["Ciutkan menu"]},"Open menu":{v:["Buka menu"]}}},{l:"is",t:{"Collapse menu":{v:["Fella valmynd saman"]},"Open menu":{v:["Opna valmynd"]}}},{l:"it",t:{"Collapse menu":{v:["Chiudi Menu"]},"Open menu":{v:["Apri il menu"]}}},{l:"ja",t:{"Collapse menu":{v:["メニューの折りたたみ"]},"Open menu":{v:["メニューを開く"]}}},{l:"ja-JP",t:{"Collapse menu":{v:["メニューの折りたたみ"]},"Open menu":{v:["メニューを開く"]}}},{l:"ko",t:{"Collapse menu":{v:["메뉴 접기"]},"Open menu":{v:["메뉴 열기"]}}},{l:"lo",t:{"Collapse menu":{v:["ຫຍໍ້ເມນູ"]},"Open menu":{v:["ເປີດເມນູ"]}}},{l:"lt-LT",t:{}},{l:"lv",t:{}},{l:"mk",t:{"Collapse menu":{v:["Скриј мени"]},"Open menu":{v:["Отвори мени"]}}},{l:"my",t:{}},{l:"nb",t:{"Collapse menu":{v:["Skjul meny"]},"Open menu":{v:["Åpne meny"]}}},{l:"nl",t:{"Collapse menu":{v:["Menu inklappen"]},"Open menu":{v:["Menu openen"]}}},{l:"oc",t:{}},{l:"pl",t:{"Collapse menu":{v:["Zwiń menu"]},"Open menu":{v:["Otwórz menu"]}}},{l:"pt-BR",t:{"Collapse menu":{v:["Recolher menu"]},"Open menu":{v:["Abrir menu"]}}},{l:"pt-PT",t:{"Collapse menu":{v:["Ocultar menu"]},"Open menu":{v:["Abrir menu"]}}},{l:"ro",t:{"Collapse menu":{v:["Restrânge meniul"]},"Open menu":{v:["Deschide meniul"]}}},{l:"ru",t:{"Collapse menu":{v:["Свернуть меню"]},"Open menu":{v:["Открыть меню"]}}},{l:"sk",t:{"Collapse menu":{v:["Zbaliť menu"]},"Open menu":{v:["Otvoriť menu"]}}},{l:"sl",t:{}},{l:"sr",t:{"Collapse menu":{v:["Сажми мени"]},"Open menu":{v:["Отвори мени"]}}},{l:"sv",t:{"Collapse menu":{v:["Dölj menyn"]},"Open menu":{v:["Öppna menyn"]}}},{l:"tr",t:{"Collapse menu":{v:["Menüyü daralt"]},"Open menu":{v:["Menüyü aç"]}}},{l:"uk",t:{"Collapse menu":{v:["Згорнути меню"]},"Open menu":{v:["Відкрити меню"]}}},{l:"uz",t:{"Collapse menu":{v:["Menyuni yig‘ish"]},"Open menu":{v:["Menyuni oching"]}}},{l:"zh-CN",t:{"Collapse menu":{v:["收起菜单"]},"Open menu":{v:["打开菜单"]}}},{l:"zh-HK",t:{"Collapse menu":{v:["折疊選單"]},"Open menu":{v:["開啟選單"]}}},{l:"zh-TW",t:{"Collapse menu":{v:["折疊選單"]},"Open menu":{v:["開啟選單"]}}}],_=[{l:"ar",t:{}},{l:"ast",t:{}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{Copied:{v:["Zkopírováno"]},"Copy to clipboard":{v:["Zkopírovat do schránky"]}}},{l:"cs-CZ",t:{}},{l:"da",t:{}},{l:"de",t:{Copied:{v:["Kopiert"]},"Copy to clipboard":{v:["In die Zwischenablage kopieren"]}}},{l:"de-DE",t:{Copied:{v:["Kopiert"]},"Copy to clipboard":{v:["In die Zwischenablage kopieren"]}}},{l:"el",t:{}},{l:"en-GB",t:{Copied:{v:["Copied"]},"Copy to clipboard":{v:["Copy to clipboard"]}}},{l:"eo",t:{}},{l:"es",t:{}},{l:"es-AR",t:{}},{l:"es-EC",t:{}},{l:"es-MX",t:{}},{l:"et-EE",t:{Copied:{v:["Kopeeritud"]},"Copy to clipboard":{v:["Kopeeri lõikelauale"]}}},{l:"eu",t:{}},{l:"fa",t:{}},{l:"fi",t:{}},{l:"fr",t:{}},{l:"ga",t:{Copied:{v:["Cóipeáilte"]},"Copy to clipboard":{v:["Cóipeáil chuig an ghearrthaisce"]}}},{l:"gl",t:{Copied:{v:["Copiado"]},"Copy to clipboard":{v:["Copiar ao portapapeis"]}}},{l:"he",t:{}},{l:"hu",t:{}},{l:"id",t:{}},{l:"is",t:{}},{l:"it",t:{}},{l:"ja",t:{Copied:{v:["コピーされました"]},"Copy to clipboard":{v:["クリップボードにコピー"]}}},{l:"ja-JP",t:{}},{l:"ko",t:{}},{l:"lo",t:{Copied:{v:["ສຳເນົາແລ້ວ"]},"Copy to clipboard":{v:["ສຳເນົາໃສ່ຄລິບບອດ"]}}},{l:"lt-LT",t:{}},{l:"lv",t:{}},{l:"mk",t:{}},{l:"my",t:{}},{l:"nb",t:{}},{l:"nl",t:{}},{l:"oc",t:{}},{l:"pl",t:{}},{l:"pt-BR",t:{Copied:{v:["Copiado"]},"Copy to clipboard":{v:["Copiar para a área de transferência"]}}},{l:"pt-PT",t:{}},{l:"ro",t:{}},{l:"ru",t:{}},{l:"sk",t:{}},{l:"sl",t:{}},{l:"sr",t:{}},{l:"sv",t:{}},{l:"tr",t:{Copied:{v:["Kopyalandı"]},"Copy to clipboard":{v:["Panoya kopyalandı"]}}},{l:"uk",t:{}},{l:"uz",t:{}},{l:"zh-CN",t:{}},{l:"zh-HK",t:{Copied:{v:["已被複製"]},"Copy to clipboard":{v:["複製到剪貼簿"]}}},{l:"zh-TW",t:{}}],Q=[{l:"ar",t:{"Edit item":{v:["تعديل عنصر"]}}},{l:"ast",t:{"Edit item":{v:["Editar l'elementu"]}}},{l:"br",t:{}},{l:"ca",t:{"Edit item":{v:["Edita l'element"]}}},{l:"cs",t:{"Edit item":{v:["Upravit položku"]}}},{l:"cs-CZ",t:{"Edit item":{v:["Upravit položku"]}}},{l:"da",t:{"Edit item":{v:["Rediger emne"]}}},{l:"de",t:{"Edit item":{v:["Element bearbeiten"]}}},{l:"de-DE",t:{"Edit item":{v:["Element bearbeiten"]}}},{l:"el",t:{"Edit item":{v:["Επεξεργασία αντικειμένου"]}}},{l:"en-GB",t:{"Edit item":{v:["Edit item"]}}},{l:"eo",t:{}},{l:"es",t:{"Edit item":{v:["Editar elemento"]}}},{l:"es-AR",t:{"Edit item":{v:["Editar elemento"]}}},{l:"es-EC",t:{"Edit item":{v:["Editar elemento"]}}},{l:"es-MX",t:{"Edit item":{v:["Editar elemento"]}}},{l:"et-EE",t:{"Edit item":{v:["Muuda objekti"]}}},{l:"eu",t:{"Edit item":{v:["Editatu elementua"]}}},{l:"fa",t:{"Edit item":{v:["ویرایش مورد"]}}},{l:"fi",t:{"Edit item":{v:["Muokkaa kohdetta"]}}},{l:"fr",t:{"Edit item":{v:["Éditer l'élément"]}}},{l:"ga",t:{"Edit item":{v:["Cuir mír in eagar"]}}},{l:"gl",t:{"Edit item":{v:["Editar o elemento"]}}},{l:"he",t:{"Edit item":{v:["עריכת פריט"]}}},{l:"hu",t:{"Edit item":{v:["Elem szerkesztése"]}}},{l:"id",t:{"Edit item":{v:["Edit item"]}}},{l:"is",t:{"Edit item":{v:["Breyta atriði"]}}},{l:"it",t:{"Edit item":{v:["Modifica l'elemento"]}}},{l:"ja",t:{"Edit item":{v:["編集"]}}},{l:"ja-JP",t:{"Edit item":{v:["編集"]}}},{l:"ko",t:{"Edit item":{v:["항목 수정"]}}},{l:"lo",t:{"Edit item":{v:["ແກ້ໄຂລາຍການ"]}}},{l:"lt-LT",t:{}},{l:"lv",t:{}},{l:"mk",t:{"Edit item":{v:["Уреди"]}}},{l:"my",t:{}},{l:"nb",t:{"Edit item":{v:["Rediger"]}}},{l:"nl",t:{"Edit item":{v:["Item bewerken"]}}},{l:"oc",t:{}},{l:"pl",t:{"Edit item":{v:["Edytuj element"]}}},{l:"pt-BR",t:{"Edit item":{v:["Editar item"]}}},{l:"pt-PT",t:{"Edit item":{v:["Editar item"]}}},{l:"ro",t:{"Edit item":{v:["Editați elementul"]}}},{l:"ru",t:{"Edit item":{v:["Изменить элемент"]}}},{l:"sk",t:{"Edit item":{v:["Upraviť položku"]}}},{l:"sl",t:{"Edit item":{v:["Uredi predmet"]}}},{l:"sr",t:{"Edit item":{v:["Уреди ставку"]}}},{l:"sv",t:{"Edit item":{v:["Redigera objekt"]}}},{l:"tr",t:{"Edit item":{v:["Ögeyi düzenle"]}}},{l:"uk",t:{"Edit item":{v:["Редагувати елемент"]}}},{l:"uz",t:{"Edit item":{v:["Elementni tahrirlash"]}}},{l:"zh-CN",t:{"Edit item":{v:["编辑项目"]}}},{l:"zh-HK",t:{"Edit item":{v:["編輯項目"]}}},{l:"zh-TW",t:{"Edit item":{v:["編輯項目"]}}}],$=[{l:"ar",t:{"Enter link":{v:["أدخِل الرابط"]}}},{l:"ast",t:{"Enter link":{v:["Introducir l'enllaz"]}}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{"Enter link":{v:["Zadat odkaz"]}}},{l:"cs-CZ",t:{"Enter link":{v:["Zadat odkaz"]}}},{l:"da",t:{"Enter link":{v:["Indtast link"]}}},{l:"de",t:{"Enter link":{v:["Link eingeben"]}}},{l:"de-DE",t:{"Enter link":{v:["Link eingeben"]}}},{l:"el",t:{"Enter link":{v:["Εισάγετε σύνδεσμο"]}}},{l:"en-GB",t:{"Enter link":{v:["Enter link"]}}},{l:"eo",t:{}},{l:"es",t:{"Enter link":{v:["Ingrese enlace"]}}},{l:"es-AR",t:{"Enter link":{v:["Ingresar enlace"]}}},{l:"es-EC",t:{"Enter link":{v:["Ingresar enlace"]}}},{l:"es-MX",t:{"Enter link":{v:["Ingresar enlace"]}}},{l:"et-EE",t:{"Enter link":{v:["Sisesta link"]}}},{l:"eu",t:{"Enter link":{v:["Sartu esteka"]}}},{l:"fa",t:{"Enter link":{v:["لینک را وارد کنید"]}}},{l:"fi",t:{"Enter link":{v:["Kirjoita linkki"]}}},{l:"fr",t:{"Enter link":{v:["Saisissez le lien"]}}},{l:"ga",t:{"Enter link":{v:["Cuir isteach nasc"]}}},{l:"gl",t:{"Enter link":{v:["Introducir a ligazón"]}}},{l:"he",t:{"Enter link":{v:["מילוי קישור"]}}},{l:"hu",t:{}},{l:"id",t:{"Enter link":{v:["Masukkan tautan"]}}},{l:"is",t:{"Enter link":{v:["Settu inn tengil"]}}},{l:"it",t:{"Enter link":{v:["Inserire il link"]}}},{l:"ja",t:{"Enter link":{v:["リンクを入力する"]}}},{l:"ja-JP",t:{"Enter link":{v:["リンクを入力する"]}}},{l:"ko",t:{"Enter link":{v:["링크 입력"]}}},{l:"lo",t:{"Enter link":{v:["ປ້ອນລິງ"]}}},{l:"lt-LT",t:{}},{l:"lv",t:{}},{l:"mk",t:{"Enter link":{v:["Внеси линк"]}}},{l:"my",t:{}},{l:"nb",t:{"Enter link":{v:["Skriv inn lenken"]}}},{l:"nl",t:{"Enter link":{v:["Link invoeren"]}}},{l:"oc",t:{}},{l:"pl",t:{"Enter link":{v:["Wprowadź link"]}}},{l:"pt-BR",t:{"Enter link":{v:["Insira o link"]}}},{l:"pt-PT",t:{"Enter link":{v:["Inserir hiperligação"]}}},{l:"ro",t:{"Enter link":{v:["Introduceți link-ul"]}}},{l:"ru",t:{"Enter link":{v:["Введите ссылку"]}}},{l:"sk",t:{"Enter link":{v:["Vložiť link"]}}},{l:"sl",t:{}},{l:"sr",t:{"Enter link":{v:["Унесите линк"]}}},{l:"sv",t:{"Enter link":{v:["Ange länk"]}}},{l:"tr",t:{"Enter link":{v:["Bağlantıyı yazın"]}}},{l:"uk",t:{"Enter link":{v:["Зазначте посилання"]}}},{l:"uz",t:{"Enter link":{v:["Havolani kiriting"]}}},{l:"zh-CN",t:{"Enter link":{v:["输入链接"]}}},{l:"zh-HK",t:{"Enter link":{v:["輸入連結"]}}},{l:"zh-TW",t:{"Enter link":{v:["輸入連結"]}}}],Y=[{l:"ar",t:{"Hide details":{v:["أخفِ التفاصيل"]},"Rename project":{v:["تغيير اسم المشروع"]},"Show details":{v:["أظهِر التفاصيل"]}}},{l:"ast",t:{}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{"Hide details":{v:["Skrýt podrobnosti"]},"Rename project":{v:["Přejmenovat projekt"]},"Show details":{v:["Zobrazit podrobnosti"]}}},{l:"cs-CZ",t:{}},{l:"da",t:{"Hide details":{v:["Skjul detaljer"]},"Rename project":{v:["Omdøb projekt"]},"Show details":{v:["Vis detaljer"]}}},{l:"de",t:{"Hide details":{v:["Details ausblenden"]},"Rename project":{v:["Projekt umbenennen"]},"Show details":{v:["Details anzeigen"]}}},{l:"de-DE",t:{"Hide details":{v:["Details ausblenden"]},"Rename project":{v:["Projekt umbenennen"]},"Show details":{v:["Details anzeigen"]}}},{l:"el",t:{"Hide details":{v:["Απόκρυψη λεπτομερειών"]},"Rename project":{v:["Μετονομασία έργου"]},"Show details":{v:["Εμφάνιση λεπτομερειών"]}}},{l:"en-GB",t:{"Hide details":{v:["Hide details"]},"Rename project":{v:["Rename project"]},"Show details":{v:["Show details"]}}},{l:"eo",t:{}},{l:"es",t:{}},{l:"es-AR",t:{"Hide details":{v:["Ocultar detalles"]},"Rename project":{v:["Renombrar proyecto"]},"Show details":{v:["Mostrar detalles"]}}},{l:"es-EC",t:{}},{l:"es-MX",t:{"Hide details":{v:["Ocultar detalles"]},"Rename project":{v:["Renombrar proyecto"]},"Show details":{v:["Mostrar detalles"]}}},{l:"et-EE",t:{"Hide details":{v:["Peida üksikasjad"]},"Rename project":{v:["Muuda projekti nime"]},"Show details":{v:["Näita üksikasju"]}}},{l:"eu",t:{}},{l:"fa",t:{"Hide details":{v:["پنهان کردن جزئیات"]},"Rename project":{v:["تغییر نام پروژه"]},"Show details":{v:["نمایش جزئیات"]}}},{l:"fi",t:{"Hide details":{v:["Piilota yksityiskohdat"]},"Rename project":{v:["Nimeä projekti"]},"Show details":{v:["Näytä yksityiskohdat"]}}},{l:"fr",t:{"Hide details":{v:["Masquer les détails"]},"Rename project":{v:["Renommer le projet"]},"Show details":{v:["Afficher les détails"]}}},{l:"ga",t:{"Hide details":{v:["Folaigh sonraí"]},"Rename project":{v:["Athainmnigh an tionscadal"]},"Show details":{v:["Taispeáin sonraí"]}}},{l:"gl",t:{"Hide details":{v:["Agochar os detalles"]},"Rename project":{v:["Cambiar o nome do proxecto"]},"Show details":{v:["Amosar os detalles"]}}},{l:"he",t:{}},{l:"hu",t:{}},{l:"id",t:{}},{l:"is",t:{"Hide details":{v:["Fela nánari upplýsingar"]},"Rename project":{v:["Endurnefna verkefni"]},"Show details":{v:["Birta nánari upplýsingar"]}}},{l:"it",t:{}},{l:"ja",t:{"Hide details":{v:["詳細を非表示"]},"Rename project":{v:["プロジェクト名を変更"]},"Show details":{v:["詳細の表示"]}}},{l:"ja-JP",t:{}},{l:"ko",t:{"Hide details":{v:["세부 사항 숨기기"]},"Rename project":{v:["프로젝트 이름 변경"]},"Show details":{v:["세부 사항 보기"]}}},{l:"lo",t:{"Hide details":{v:["ເຊື່ອງລາຍລະອຽດ"]},"Rename project":{v:["ປ່ຽນຊື່ໂຄງການ"]},"Show details":{v:["ສະແດງລາຍລະອຽດ"]}}},{l:"lt-LT",t:{}},{l:"lv",t:{}},{l:"mk",t:{"Hide details":{v:["Сокриј детали"]},"Rename project":{v:["Преименувај проект"]},"Show details":{v:["Прикажи детали"]}}},{l:"my",t:{}},{l:"nb",t:{"Hide details":{v:["Skjul detaljer"]},"Rename project":{v:["Gi prosjekt nytt navn"]},"Show details":{v:["Vis detaljer"]}}},{l:"nl",t:{"Hide details":{v:["Details verbergen"]},"Rename project":{v:["Project hernoemen"]},"Show details":{v:["Details weergeven"]}}},{l:"oc",t:{}},{l:"pl",t:{"Hide details":{v:["Ukryj szczegóły"]},"Rename project":{v:["Zmień nazwę projektu"]},"Show details":{v:["Pokaż szczegóły"]}}},{l:"pt-BR",t:{"Hide details":{v:["Ocultar detalhes"]},"Rename project":{v:["Renomear projeto"]},"Show details":{v:["Mostrar detalhes"]}}},{l:"pt-PT",t:{"Hide details":{v:["Ocultar detalhes"]},"Rename project":{v:["Alterar nome do projeto"]},"Show details":{v:["Ver detalhes"]}}},{l:"ro",t:{}},{l:"ru",t:{"Hide details":{v:["Скрыть подробности"]},"Rename project":{v:["Переименовать проект"]},"Show details":{v:["Показать детали"]}}},{l:"sk",t:{"Hide details":{v:["Skryť detaily"]},"Rename project":{v:["Premenovať projekt"]},"Show details":{v:["Zobraziť detaily"]}}},{l:"sl",t:{}},{l:"sr",t:{"Hide details":{v:["Сакриј детаље"]},"Rename project":{v:["Промени име пројекта"]},"Show details":{v:["Прикажи детаље"]}}},{l:"sv",t:{"Hide details":{v:["Göm detaljer"]},"Rename project":{v:["Byt namn på projektet"]},"Show details":{v:["Visa detaljer"]}}},{l:"tr",t:{"Hide details":{v:["Ayrıntıları gizle"]},"Rename project":{v:["Projeyi yeniden adlandır"]},"Show details":{v:["Ayrıntıları görüntüle"]}}},{l:"uk",t:{"Hide details":{v:["Сховати деталі"]},"Rename project":{v:["Перейменувати проєкт"]},"Show details":{v:["Показати деталі"]}}},{l:"uz",t:{"Hide details":{v:["Tafsilotlarni yashirish"]},"Rename project":{v:["Loyiha nomini o'zgartirish"]},"Show details":{v:["Tafsilotlarni ko'rsatish"]}}},{l:"zh-CN",t:{"Hide details":{v:["隐藏细节"]},"Rename project":{v:["重命名项目"]},"Show details":{v:["显示细节"]}}},{l:"zh-HK",t:{"Hide details":{v:["隱藏詳情"]},"Rename project":{v:["重命名方案"]},"Show details":{v:["顯示詳情"]}}},{l:"zh-TW",t:{"Hide details":{v:["隱藏詳細資料"]},"Rename project":{v:["重新命名專案"]},"Show details":{v:["顯示詳細資訊"]}}}],uu=[{l:"ar",t:{'Load more "{options}"':{v:['تحميل المزيد من "{options}" ']},"Raw link {options}":{v:[" الرابط الخام raw link ـ {options}"]},"Start typing to search":{v:["إبدإ كتابة مفردات البحث"]}}},{l:"ast",t:{'Load more "{options}"':{v:["Cargar más «{options}»"]},"Raw link {options}":{v:["Enllaz en bruto {optiones}"]},"Start typing to search":{v:["Comienza a escribir pa buscar"]}}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{'Load more "{options}"':{v:["Načíst další „{options}“"]},"Raw link {options}":{v:["Holý odkaz {options}"]},"Start typing to search":{v:["Vyhledávejte psaním"]}}},{l:"cs-CZ",t:{'Load more "{options}"':{v:["Načíst další „{options}“"]},"Raw link {options}":{v:["Holý odkaz {options}"]},"Start typing to search":{v:["Vyhledávejte psaním"]}}},{l:"da",t:{'Load more "{options}"':{v:['Indlæs flere "{options}"']},"Raw link {options}":{v:["Rå link {options}"]},"Start typing to search":{v:["Begynd at skrive for at søge"]}}},{l:"de",t:{'Load more "{options}"':{v:['Weitere "{options}" laden']},"Raw link {options}":{v:["Unverarbeiteter Link {options}"]},"Start typing to search":{v:["Mit der Eingabe beginnen, um zu suchen"]}}},{l:"de-DE",t:{'Load more "{options}"':{v:['Weitere "{options}" laden']},"Raw link {options}":{v:["Unverarbeiteter Link {options}"]},"Start typing to search":{v:["Mit der Eingabe beginnen, um zu suchen"]}}},{l:"el",t:{'Load more "{options}"':{v:['Φόρτωση περισσότερων "{options}"']},"Raw link {options}":{v:["Ακατέργαστος σύνδεσμος {options}"]},"Start typing to search":{v:["Ξεκινήστε να πληκτρολογείτε για αναζήτηση"]}}},{l:"en-GB",t:{'Load more "{options}"':{v:['Load more "{options}"']},"Raw link {options}":{v:["Raw link {options}"]},"Start typing to search":{v:["Start typing to search"]}}},{l:"eo",t:{}},{l:"es",t:{'Load more "{options}"':{v:['Cargar más "{options}"']},"Raw link {options}":{v:["Enlace directo {options}"]},"Start typing to search":{v:["Comience a escribir para buscar"]}}},{l:"es-AR",t:{'Load more "{options}"':{v:['Cargar más "{options}"']},"Raw link {options}":{v:["Enlace directo {options}"]},"Start typing to search":{v:["Comience a escribir para buscar"]}}},{l:"es-EC",t:{"Raw link {options}":{v:["Enlace directo {options}"]},"Start typing to search":{v:["Comienza a escribir para buscar"]}}},{l:"es-MX",t:{'Load more "{options}"':{v:['Cargar más "{options}"']},"Raw link {options}":{v:["Enlace directo {options}"]},"Start typing to search":{v:["Comience a escribir para buscar"]}}},{l:"et-EE",t:{'Load more "{options}"':{v:["Laadi veel „{options}“"]},"Raw link {options}":{v:["Töötlemata link: {options}"]},"Start typing to search":{v:["Alusta otsinguks sisestamist"]}}},{l:"eu",t:{'Load more "{options}"':{v:['Kargatu "{options}" gehiago']},"Raw link {options}":{v:["Formaturik gabeko esteka {aukerak}"]},"Start typing to search":{v:["Hasi idazten bilatzeko"]}}},{l:"fa",t:{'Load more "{options}"':{v:['بارگذاری بیشتر "{options}"']},"Raw link {options}":{v:["پیوند خام {options}"]},"Start typing to search":{v:["برای جستجو تایپ کنید"]}}},{l:"fi",t:{'Load more "{options}"':{v:['Lataa lisää "{options}"']},"Raw link {options}":{v:["Raaka linkki {options}"]},"Start typing to search":{v:["Aloita kirjoittaminen hakeaksesi"]}}},{l:"fr",t:{'Load more "{options}"':{v:[`Charger d'avantage "{options}"`]},"Raw link {options}":{v:["Lien brut {options}"]},"Start typing to search":{v:["Commencez à écrire pour rechercher"]}}},{l:"ga",t:{'Load more "{options}"':{v:['Luchtaigh tuilleadh "{options}"']},"Raw link {options}":{v:["Nasc amh {roghanna}"]},"Start typing to search":{v:["Tosaigh ag clóscríobh chun cuardach a dhéanamh"]}}},{l:"gl",t:{'Load more "{options}"':{v:["Cargar máis «{options}»"]},"Raw link {options}":{v:["Ligazón sen procesar {options}"]},"Start typing to search":{v:["Comece a escribir para buscar"]}}},{l:"he",t:{"Raw link {options}":{v:["קישור גולמי {options}"]},"Start typing to search":{v:["התחלת הקלדה מחפשת"]}}},{l:"hu",t:{}},{l:"id",t:{'Load more "{options}"':{v:['Muat "{options}" lainnya']},"Raw link {options}":{v:["Tautan mentah {options}"]},"Start typing to search":{v:["Ketik untuk mulai mencari"]}}},{l:"is",t:{'Load more "{options}"':{v:['Hlaða inn fleiri "{options}"']},"Raw link {options}":{v:["Hrár tengill {options}"]},"Start typing to search":{v:["Byrjaðu að skrifa til að leita"]}}},{l:"it",t:{'Load more "{options}"':{v:['Carica più "{options}"']},"Raw link {options}":{v:["Raw link {options}"]},"Start typing to search":{v:["Iniziare a digitare per effettuare la ricerca"]}}},{l:"ja",t:{'Load more "{options}"':{v:['"{options}" をもっと読み込む']},"Raw link {options}":{v:["未加工のリンク {options}"]},"Start typing to search":{v:["入力を開始して検索します"]}}},{l:"ja-JP",t:{'Load more "{options}"':{v:['"{options}" をもっと読み込む']},"Raw link {options}":{v:["未加工のリンク {options}"]},"Start typing to search":{v:["入力を開始して検索します"]}}},{l:"ko",t:{'Load more "{options}"':{v:['"{options}" 더 불러오기']},"Raw link {options}":{v:["{options} 원본 링크"]},"Start typing to search":{v:["입력하여 검색"]}}},{l:"lo",t:{'Load more "{options}"':{v:["ໂຫຼດ “{options}” ເພີ່ມເຕີມ"]},"Raw link {options}":{v:["ລິງດິບ {options}"]},"Start typing to search":{v:["ເລີ່ມພິມເພື່ອຄົ້ນຫາ"]}}},{l:"lt-LT",t:{}},{l:"lv",t:{}},{l:"mk",t:{'Load more "{options}"':{v:['Вчитај повеќе "{options}"']},"Raw link {options}":{v:["Суров линк {options}"]},"Start typing to search":{v:["Почни да пишуваш за пребарување"]}}},{l:"my",t:{}},{l:"nb",t:{'Load more "{options}"':{v:['Last inn flere "{options}"']},"Raw link {options}":{v:["Rå lenke {options}"]},"Start typing to search":{v:["Start å skrive for å søke"]}}},{l:"nl",t:{'Load more "{options}"':{v:['Meer "{options}" laden']},"Raw link {options}":{v:["Ruwe link {options}"]},"Start typing to search":{v:["Start met typen om te zoeken"]}}},{l:"oc",t:{}},{l:"pl",t:{'Load more "{options}"':{v:['Załaduj więcej "{options}"']},"Raw link {options}":{v:["Surowy odnośnik {options}"]},"Start typing to search":{v:["Zacznij pisać, aby wyszukać"]}}},{l:"pt-BR",t:{'Load more "{options}"':{v:['Carregar mais "{options}"']},"Raw link {options}":{v:["Link bruto {options}"]},"Start typing to search":{v:["Comece a digitar para pesquisar"]}}},{l:"pt-PT",t:{'Load more "{options}"':{v:['Carregar mais "{options}"']},"Raw link {options}":{v:["Link inicial {options}"]},"Start typing to search":{v:["Comece a digitar para pesquisar"]}}},{l:"ro",t:{'Load more "{options}"':{v:['Încarcă mai multe "{options}"']},"Raw link {options}":{v:["Link brut {options}"]},"Start typing to search":{v:["Tastați pentru căutare"]}}},{l:"ru",t:{'Load more "{options}"':{v:['Загрузить больше "{options}""']},"Raw link {options}":{v:["Необработанная ссылка {options}"]},"Start typing to search":{v:["Начните вводить текст для поиска"]}}},{l:"sk",t:{'Load more "{options}"':{v:['Načítať viac "{options}"']},"Raw link {options}":{v:["Raw odkaz {options}"]},"Start typing to search":{v:["Začnite písať pre vyhľadávanie"]}}},{l:"sl",t:{}},{l:"sr",t:{'Load more "{options}"':{v:["Учитај још „{options}”"]},"Raw link {options}":{v:["Сирови линк {options}"]},"Start typing to search":{v:["Покрените претрагу куцањем"]}}},{l:"sv",t:{'Load more "{options}"':{v:['Ladda fler "{options}"']},"Raw link {options}":{v:["Oformaterad länk {options}"]},"Start typing to search":{v:["Börja skriva för att söka"]}}},{l:"tr",t:{'Load more "{options}"':{v:['Diğer "{options}"']},"Raw link {options}":{v:["Ham bağlantı {options}"]},"Start typing to search":{v:["Aramak için yazmaya başlayın"]}}},{l:"uk",t:{'Load more "{options}"':{v:['Завантажити більше "{options}"']},"Raw link {options}":{v:["Пряме посилання {options}"]},"Start typing to search":{v:["Почніть вводити для пошуку"]}}},{l:"uz",t:{'Load more "{options}"':{v:[`Ko'proq yuklash "{options}"`]},"Raw link {options}":{v:[" {options}satr havolasi"]},"Start typing to search":{v:["Qidirish uchun yozishni boshlang"]}}},{l:"zh-CN",t:{'Load more "{options}"':{v:["加载更多 “{options}”"]},"Raw link {options}":{v:["原始链接 {options}"]},"Start typing to search":{v:["开始输入以进行搜索"]}}},{l:"zh-HK",t:{'Load more "{options}"':{v:['載入更多 "{options}"']},"Raw link {options}":{v:["原始連結 {options}"]},"Start typing to search":{v:["開始輸入以進行搜尋"]}}},{l:"zh-TW",t:{'Load more "{options}"':{v:["載入更多「{options}」"]},"Raw link {options}":{v:["原始連結 {options}"]},"Start typing to search":{v:["開始輸入以進行搜尋"]}}}],eu=[{l:"ar",t:{"No link provider found":{v:["لا يوجد أيّ مزود روابط link provider"]},"Write a message …":{v:["أكتب رسالة ..."]}}},{l:"ast",t:{"No link provider found":{v:["Nun s'atopó nengún fornidor d'enllaces"]},"Write a message …":{v:["Escribi un mensaxe…"]}}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{"Message limit of %n character reached":{p:"Message limit of %n characters reached",v:["Dosaženo limitu počtu %n znaku zprávy","Dosaženo limitu počtu %n znaků zprávy","Dosaženo limitu počtu %n znaků zprávy","Dosaženo limitu počtu %n znaků zprávy"]},"No link provider found":{v:["Nenalezen žádný poskytovatel odkazů"]},"Write a message …":{v:["Napište zprávu …"]}}},{l:"cs-CZ",t:{"No link provider found":{v:["Nenalezen žádný poskytovatel odkazů"]},"Write a message …":{v:["Napsat zprávu…"]}}},{l:"da",t:{"Message limit of %n character reached":{p:"Message limit of %n characters reached",v:["Beskedgrænsen på %n tegn er nået","Beskedgrænsen på %n tegn er nået"]},"No link provider found":{v:["Ingen linkudbyder fundet"]},"Write a message …":{v:["Skriv en besked ..."]}}},{l:"de",t:{"Message limit of %n character reached":{p:"Message limit of %n characters reached",v:["Nachrichtenlimit von %n Zeichen erreicht","Nachrichtenlimit von %n Zeichen erreicht"]},"No link provider found":{v:["Kein Linkanbieter gefunden"]},"Write a message …":{v:["Nachricht schreiben …"]}}},{l:"de-DE",t:{"Message limit of %n character reached":{p:"Message limit of %n characters reached",v:["Nachrichtenlimit von %n Zeichen erreicht","Nachrichtenlimit von %n Zeichen erreicht"]},"No link provider found":{v:["Kein Linkanbieter gefunden"]},"Write a message …":{v:["Nachricht schreiben …"]}}},{l:"el",t:{"Message limit of %n character reached":{p:"Message limit of %n characters reached",v:["Έφτασε το όριο μηνύματος των %n χαρακτήρων","Έφτασε το όριο μηνύματος των %n χαρακτήρων"]},"No link provider found":{v:["Δεν βρέθηκε πάροχος συνδέσμου"]},"Write a message …":{v:["Γράψτε ένα μήνυμα …"]}}},{l:"en-GB",t:{"Message limit of %n character reached":{p:"Message limit of %n characters reached",v:["Message limit of %n character reached","Message limit of %n characters reached"]},"No link provider found":{v:["No link provider found"]},"Write a message …":{v:["Write a message …"]}}},{l:"eo",t:{}},{l:"es",t:{"No link provider found":{v:["No se encontró ningún proveedor de enlaces"]},"Write a message …":{v:["Escriba un mensaje ..."]}}},{l:"es-AR",t:{"No link provider found":{v:["No se encontró ningún proveedor de enlaces"]},"Write a message …":{v:["Escriba un mensaje ..."]}}},{l:"es-EC",t:{"No link provider found":{v:["No se encontró ningún proveedor de enlaces"]}}},{l:"es-MX",t:{"No link provider found":{v:["No se encontró ningún proveedor de enlaces"]},"Write a message …":{v:["Escriba un mensaje ..."]}}},{l:"et-EE",t:{"Message limit of %n character reached":{p:"Message limit of %n characters reached",v:["Sõnumi piirarv %n tähemärk on käes","Sõnumi piirarv %n tähemärki on käes"]},"No link provider found":{v:["Lingi pakkujat ei leitud"]},"Write a message …":{v:["Koosta sõnum …"]}}},{l:"eu",t:{"No link provider found":{v:["Ez da aurkitu esteka-hornitzailerik"]},"Write a message …":{v:["Idatzi mezu bat…"]}}},{l:"fa",t:{"No link provider found":{v:["هیچ ارائه‌دهنده پیوندی یافت نشد"]},"Write a message …":{v:["یک پیام بنویسید ..."]}}},{l:"fi",t:{"No link provider found":{v:["Linkin tarjoajia ei löydetty"]},"Write a message …":{v:["Kirjoita viesti…"]}}},{l:"fr",t:{"Message limit of %n character reached":{p:"Message limit of %n characters reached",v:["Limite de messages de %n caractère atteinte","Limite de messages de %n caractères atteinte","Limite de messages de %n caractères atteinte"]},"No link provider found":{v:["Aucun fournisseur de lien trouvé"]},"Write a message …":{v:["Ecrire un message..."]}}},{l:"ga",t:{"Message limit of %n character reached":{p:"Message limit of %n characters reached",v:["Sroicheadh ​​teorainn teachtaireachta de %n carachtar","Sroicheadh ​​teorainn teachtaireachta de %n carachtar","Sroicheadh ​​teorainn teachtaireachta de %n carachtar","Sroicheadh ​​teorainn teachtaireachta de %n carachtar","Sroicheadh ​​teorainn teachtaireachta de %n carachtar"]},"No link provider found":{v:["Níor aimsíodh aon soláthraí naisc"]},"Write a message …":{v:["Scríobh teachtaireacht …"]}}},{l:"gl",t:{"Message limit of %n character reached":{p:"Message limit of %n characters reached",v:["Acadouse o límite de %n caracter por mensaxe","Acadouse o límite de %n caracteres por mensaxe"]},"No link provider found":{v:["Non se atopou ningún provedor de ligazóns"]},"Write a message …":{v:["Escribir unha mensaxe…"]}}},{l:"he",t:{"No link provider found":{v:["לא נמצא ספק קישורים"]}}},{l:"hu",t:{}},{l:"id",t:{"No link provider found":{v:["Tidak ada penyedia tautan yang ditemukan"]},"Write a message …":{v:["Tulis pesan ..."]}}},{l:"is",t:{"No link provider found":{v:["Engin tenglaveita fannst"]},"Write a message …":{v:["Skrifaðu skilaboð …"]}}},{l:"it",t:{"No link provider found":{v:["Nessun fornitore di link trovato"]},"Write a message …":{v:["Scrivi un messaggio ..."]}}},{l:"ja",t:{"Message limit of %n character reached":{p:"Message limit of %n characters reached",v:["メッセージの%n文字の制限に達しました"]},"No link provider found":{v:["リンクプロバイダーが見つかりません"]},"Write a message …":{v:["メッセージを書く ..."]}}},{l:"ja-JP",t:{"No link provider found":{v:["リンクプロバイダーが見つかりません"]},"Write a message …":{v:["メッセージを書く ..."]}}},{l:"ko",t:{"Message limit of %n character reached":{p:"Message limit of %n characters reached",v:["메시지 제한 %n자에 도달"]},"No link provider found":{v:["링크 제공자 없음"]},"Write a message …":{v:["메시지 작성..."]}}},{l:"lo",t:{"Message limit of %n character reached":{p:"Message limit of %n characters reached",v:["ຮອດຂີດຈຳກັດຂໍ້ຄວາມ %n ໂຕອັກສອນແລ້ວ"]},"No link provider found":{v:["ບໍ່ພົບຜູ້ໃຫ້ບໍລິການລິງ"]},"Write a message …":{v:["ຂຽນຂໍ້ຄວາມ…"]}}},{l:"lt-LT",t:{}},{l:"lv",t:{}},{l:"mk",t:{"Message limit of %n character reached":{p:"Message limit of %n characters reached",v:["Достигнат е лимит од %n карактер","Достигнат е лимит од %n карактери за порака"]},"No link provider found":{v:["Не е пронајден давател на линк"]},"Write a message …":{v:["Напиши порака …"]}}},{l:"my",t:{}},{l:"nb",t:{"No link provider found":{v:["Finner ingen lenkeleverandør"]},"Write a message …":{v:["Skriv en melding..."]}}},{l:"nl",t:{"Message limit of %n character reached":{p:"Message limit of %n characters reached",v:["Berichtlimiet van %n teken bereikt","Berichtlimiet van %n tekens bereikt"]},"No link provider found":{v:["Geen link provider gevonden"]},"Write a message …":{v:["Schrijf een bericht …"]}}},{l:"oc",t:{}},{l:"pl",t:{"No link provider found":{v:["Nie znaleziono dostawcy linków"]},"Write a message …":{v:["Napisz wiadomość…"]}}},{l:"pt-BR",t:{"Message limit of %n character reached":{p:"Message limit of %n characters reached",v:["Limite de mensagem de %n caractere atingido","Limite de mensagem de %n de caracteres atingido","Limite de mensagem de %n caracteres atingido"]},"No link provider found":{v:["Nenhum provedor de link encontrado"]},"Write a message …":{v:["Escreva uma mensagem …"]}}},{l:"pt-PT",t:{"Message limit of %n character reached":{p:"Message limit of %n characters reached",v:["Limite de mensagem de %n carácter atingido","Limite de mensagem de %n caracteres atingido","Limite de mensagem de %n caracteres atingido"]},"No link provider found":{v:["Nenhum fornecedor de link encontrado"]},"Write a message …":{v:["Escreva uma mensagem..."]}}},{l:"ro",t:{"No link provider found":{v:["Nu s-a găsit un provider pentru linkuri"]},"Write a message …":{v:["Scrieți un mesaj ..."]}}},{l:"ru",t:{"Message limit of %n character reached":{p:"Message limit of %n characters reached",v:["Достигнут лимит в %n символ","Достигнут лимит в %n символа","Достигнут лимит в %n символов","Достигнут лимит в %n символов"]},"No link provider found":{v:["Поставщик ссылок не найден"]},"Write a message …":{v:["Напишите сообщение …"]}}},{l:"sk",t:{"No link provider found":{v:["Žiaden odkaz poskytovateľa nebol nájdený"]},"Write a message …":{v:["Napíšte správu…"]}}},{l:"sl",t:{}},{l:"sr",t:{"Message limit of %n character reached":{p:"Message limit of %n characters reached",v:["Достигнуто је ограничење величине поруке од %n карактер","Достигнуто је ограничење величине поруке од %n карактера","Достигнуто је ограничење величине поруке од %n карактера"]},"No link provider found":{v:["Није пронађен ниједан пружалац линка"]},"Write a message …":{v:["Напишите поруку…"]}}},{l:"sv",t:{"No link provider found":{v:["Ingen länkleverantör hittades"]},"Write a message …":{v:["Skriv ett meddelande …"]}}},{l:"tr",t:{"Message limit of %n character reached":{p:"Message limit of %n characters reached",v:["İleti için %n karakter sayısı sınırına ulaşıldı","İleti için %n karakter sayısı sınırına ulaşıldı"]},"No link provider found":{v:["Bağlantı hizmeti sağlayıcısı bulunamadı"]},"Write a message …":{v:["Bir ileti yazın…"]}}},{l:"uk",t:{"Message limit of %n character reached":{p:"Message limit of %n characters reached",v:["Досягнуто обмеження на довжину повідомлення у %n символ.","Досягнуто обмеження на довжину повідомлення у %n символи.","Досягнуто обмеження на довжину повідомлення у%n символів.","Досягнуто обмеження на довжину повідомлення у %n символів."]},"No link provider found":{v:["Не наведено посилання"]},"Write a message …":{v:["Створити повідомлення …"]}}},{l:"uz",t:{"Message limit of %n character reached":{p:"Message limit of %n characters reached",v:[" %n ta belgidan iborat xabar chegarasiga yetdi"]},"No link provider found":{v:["Hech qanday havola provayderi topilmadi"]},"Write a message …":{v:["Xabar yozish..."]}}},{l:"zh-CN",t:{"No link provider found":{v:["未找到任何链接提供者"]},"Write a message …":{v:["编写信息 ..."]}}},{l:"zh-HK",t:{"Message limit of %n character reached":{p:"Message limit of %n characters reached",v:["已達到訊息最多 %n 字元限制"]},"No link provider found":{v:["找不到連結提供者"]},"Write a message …":{v:["編寫訊息 …"]}}},{l:"zh-TW",t:{"No link provider found":{v:["找不到連結提供者"]},"Write a message …":{v:["編寫訊息……"]}}}],tu=[{l:"ar",t:{"More items …":{v:["عناصر أخرى ..."]}}},{l:"ast",t:{"More items …":{v:["Más elementos…"]}}},{l:"br",t:{}},{l:"ca",t:{"More items …":{v:["Més artícles..."]}}},{l:"cs",t:{"More items …":{v:["Další položky …"]}}},{l:"cs-CZ",t:{"More items …":{v:["Další položky…"]}}},{l:"da",t:{"More items …":{v:["Flere elementer ..."]}}},{l:"de",t:{"More items …":{v:["Weitere Elemente …"]}}},{l:"de-DE",t:{"More items …":{v:["Weitere Elemente …"]}}},{l:"el",t:{"More items …":{v:["Περισσότερα στοιχεία …"]}}},{l:"en-GB",t:{"More items …":{v:["More items …"]}}},{l:"eo",t:{}},{l:"es",t:{"More items …":{v:["Más ítems ..."]}}},{l:"es-AR",t:{"More items …":{v:["Más elementos..."]}}},{l:"es-EC",t:{"More items …":{v:["Más elementos..."]}}},{l:"es-MX",t:{"More items …":{v:["Más Elementos ..."]}}},{l:"et-EE",t:{"More items …":{v:["Vaata veel …"]}}},{l:"eu",t:{"More items …":{v:["Elementu gehiago …"]}}},{l:"fa",t:{"More items …":{v:["موارد بیشتر ..."]}}},{l:"fi",t:{"More items …":{v:["Lisää kohteita…"]}}},{l:"fr",t:{"More items …":{v:["Plus d'éléments..."]}}},{l:"ga",t:{"More items …":{v:["Tuilleadh míreanna …"]}}},{l:"gl",t:{"More items …":{v:["Máis elementos…"]}}},{l:"he",t:{"More items …":{v:["פריטים נוספים…"]}}},{l:"hu",t:{"More items …":{v:["További elemek..."]}}},{l:"id",t:{"More items …":{v:["Item lainnya…"]}}},{l:"is",t:{"More items …":{v:["Fleiri atriði …"]}}},{l:"it",t:{"More items …":{v:["Più elementi ..."]}}},{l:"ja",t:{"More items …":{v:["他のアイテム …"]}}},{l:"ja-JP",t:{"More items …":{v:["他のアイテム"]}}},{l:"ko",t:{"More items …":{v:["항목 더 보기..."]}}},{l:"lo",t:{"More items …":{v:["ລາຍການເພີ່ມເຕີມ…"]}}},{l:"lt-LT",t:{}},{l:"lv",t:{}},{l:"mk",t:{"More items …":{v:["Повеќе елементи …"]}}},{l:"my",t:{}},{l:"nb",t:{"More items …":{v:["Flere gjenstander..."]}}},{l:"nl",t:{"More items …":{v:["Meer items …"]}}},{l:"oc",t:{}},{l:"pl",t:{"More items …":{v:["Więcej pozycji…"]}}},{l:"pt-BR",t:{"More items …":{v:["Mais itens …"]}}},{l:"pt-PT",t:{"More items …":{v:["Mais itens…"]}}},{l:"ro",t:{"More items …":{v:["Mai multe articole ..."]}}},{l:"ru",t:{"More items …":{v:["Больше элементов …"]}}},{l:"sk",t:{"More items …":{v:["Viac položiek..."]}}},{l:"sl",t:{"More items …":{v:["Več predmetov ..."]}}},{l:"sr",t:{"More items …":{v:["Још ставки..."]}}},{l:"sv",t:{"More items …":{v:["Fler objekt …"]}}},{l:"tr",t:{"More items …":{v:["Diğer ögeler…"]}}},{l:"uk",t:{"More items …":{v:["Більше …"]}}},{l:"uz",t:{"More items …":{v:["Yana elementlar..."]}}},{l:"zh-CN",t:{"More items …":{v:["更多项目…"]}}},{l:"zh-HK",t:{"More items …":{v:["更多項目 …"]}}},{l:"zh-TW",t:{"More items …":{v:["更多項目……"]}}}],au=[{l:"ar",t:{"No emoji found":{v:["لم يتم العثور على أي إيموجي emoji"]}}},{l:"ast",t:{"No emoji found":{v:["Nun s'atopó nengún fustaxe"]}}},{l:"br",t:{"No emoji found":{v:["Emoji ebet kavet"]}}},{l:"ca",t:{"No emoji found":{v:["No s'ha trobat cap emoji"]}}},{l:"cs",t:{"No emoji found":{v:["Nenalezeno žádné emoji"]}}},{l:"cs-CZ",t:{"No emoji found":{v:["Nenalezeno žádné emoji"]}}},{l:"da",t:{"No emoji found":{v:["Ingen emoji fundet"]}}},{l:"de",t:{"No emoji found":{v:["Kein Emoji gefunden"]}}},{l:"de-DE",t:{"No emoji found":{v:["Kein Emoji gefunden"]}}},{l:"el",t:{"No emoji found":{v:["Δεν βρέθηκε emoji"]}}},{l:"en-GB",t:{"No emoji found":{v:["No emoji found"]}}},{l:"eo",t:{"No emoji found":{v:["La emoĝio forestas"]}}},{l:"es",t:{"No emoji found":{v:["No se encontró ningún emoji"]}}},{l:"es-AR",t:{"No emoji found":{v:["No se encontró ningún emoji"]}}},{l:"es-EC",t:{"No emoji found":{v:["No se encontró ningún emoji"]}}},{l:"es-MX",t:{"No emoji found":{v:["No se encontró ningún emoji"]}}},{l:"et-EE",t:{"No emoji found":{v:["Emojit ei leitud"]}}},{l:"eu",t:{"No emoji found":{v:["Ez da emojirik aurkitu"]}}},{l:"fa",t:{"No emoji found":{v:["هیچ شکلکی یافت نشد"]}}},{l:"fi",t:{"No emoji found":{v:["Emojia ei löytynyt"]}}},{l:"fr",t:{"No emoji found":{v:["Pas d’émoji trouvé"]}}},{l:"ga",t:{"No emoji found":{v:["Níor aimsíodh emoji"]}}},{l:"gl",t:{"No emoji found":{v:["Non se atopou ningún «emoji»"]}}},{l:"he",t:{"No emoji found":{v:["לא נמצא אמוג׳י"]}}},{l:"hu",t:{"No emoji found":{v:["Nem található emodzsi"]}}},{l:"id",t:{"No emoji found":{v:["Tidak ada emoji yang ditemukan"]}}},{l:"is",t:{"No emoji found":{v:["Ekkert tjáningartákn fannst"]}}},{l:"it",t:{"No emoji found":{v:["Nessun emoji trovato"]}}},{l:"ja",t:{"No emoji found":{v:["絵文字が見つかりません"]}}},{l:"ja-JP",t:{"No emoji found":{v:["絵文字が見つかりません"]}}},{l:"ko",t:{"No emoji found":{v:["이모지 없음"]}}},{l:"lo",t:{"No emoji found":{v:["ບໍ່ພົບອີໂມຈິ"]}}},{l:"lt-LT",t:{"No emoji found":{v:["Nerasta jaustukų"]}}},{l:"lv",t:{}},{l:"mk",t:{"No emoji found":{v:["Не се пронајдени емотикони"]}}},{l:"my",t:{"No emoji found":{v:["အီမိုဂျီ ရှာဖွေမတွေ့နိုင်ပါ"]}}},{l:"nb",t:{"No emoji found":{v:["Fant ingen emoji"]}}},{l:"nl",t:{"No emoji found":{v:["Geen emoji gevonden"]}}},{l:"oc",t:{}},{l:"pl",t:{"No emoji found":{v:["Nie znaleziono emoji"]}}},{l:"pt-BR",t:{"No emoji found":{v:["Nenhum emoji encontrado"]}}},{l:"pt-PT",t:{"No emoji found":{v:["Nenhum emoji encontrado"]}}},{l:"ro",t:{"No emoji found":{v:["Nu s-a găsit niciun emoji"]}}},{l:"ru",t:{"No emoji found":{v:["Эмодзи не найдено"]}}},{l:"sk",t:{"No emoji found":{v:["Nenašli sa žiadne emodži"]}}},{l:"sl",t:{"No emoji found":{v:["Ni najdenih izraznih ikon"]}}},{l:"sr",t:{"No emoji found":{v:["Није пронађен ниједан емођи"]}}},{l:"sv",t:{"No emoji found":{v:["Hittade inga emojis"]}}},{l:"tr",t:{"No emoji found":{v:["Herhangi bir emoji bulunamadı"]}}},{l:"uk",t:{"No emoji found":{v:["Емоційки відсутні"]}}},{l:"uz",t:{"No emoji found":{v:["Hech qanday emoji topilmadi"]}}},{l:"zh-CN",t:{"No emoji found":{v:["表情未找到"]}}},{l:"zh-HK",t:{"No emoji found":{v:["未找到表情符號"]}}},{l:"zh-TW",t:{"No emoji found":{v:["未找到表情符號"]}}}],ou=[{l:"ar",t:{'Open link to "{resourceName}"':{v:['إفتَح الرابط إلى "{resourceName}"']}}},{l:"ast",t:{'Open link to "{resourceName}"':{v:["Abrir l'enllaz a «{resourceName}»"]}}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{'Open link to "{resourceName}"':{v:["Otevřít odkaz na „{resourceName}“"]}}},{l:"cs-CZ",t:{'Open link to "{resourceName}"':{v:["Otevřít odkaz na „{resourceName}“"]}}},{l:"da",t:{'Open link to "{resourceName}"':{v:['Åbn link til "{resourceName}"']}}},{l:"de",t:{'Open link to "{resourceName}"':{v:['Link zu "{resourceName}" öffnen']}}},{l:"de-DE",t:{'Open link to "{resourceName}"':{v:['Link zu "{resourceName}" öffnen']}}},{l:"el",t:{'Open link to "{resourceName}"':{v:['Άνοιγμα συνδέσμου για "{resourceName}"']}}},{l:"en-GB",t:{'Open link to "{resourceName}"':{v:['Open link to "{resourceName}"']}}},{l:"eo",t:{}},{l:"es",t:{'Open link to "{resourceName}"':{v:['Abrir enlace a "{resourceName}"']}}},{l:"es-AR",t:{'Open link to "{resourceName}"':{v:['Abrir enlace a "{resourceName}"']}}},{l:"es-EC",t:{'Open link to "{resourceName}"':{v:['Abrir enlace a "{resourceName}"']}}},{l:"es-MX",t:{'Open link to "{resourceName}"':{v:['Abrir enlace a "{resourceName}"']}}},{l:"et-EE",t:{'Open link to "{resourceName}"':{v:["Ava link „{resourceName}“"]}}},{l:"eu",t:{'Open link to "{resourceName}"':{v:['Ireki "{resourceName}" esteka']}}},{l:"fa",t:{'Open link to "{resourceName}"':{v:["باز کردن پیوند به «{resourceName}»"]}}},{l:"fi",t:{'Open link to "{resourceName}"':{v:['Avaa linkki "{resourceName}"']}}},{l:"fr",t:{'Open link to "{resourceName}"':{v:['Ouvrir le lien vers "{resourceName}"']}}},{l:"ga",t:{'Open link to "{resourceName}"':{v:['Oscail nasc chuig "{resourceName}"']}}},{l:"gl",t:{'Open link to "{resourceName}"':{v:["Abrir a ligazón a «{resourceName}»"]}}},{l:"he",t:{'Open link to "{resourceName}"':{v:["פתיחת קישור אל „{resourceName}”"]}}},{l:"hu",t:{}},{l:"id",t:{'Open link to "{resourceName}"':{v:['Buka tautan ke "{resourceName}"']}}},{l:"is",t:{'Open link to "{resourceName}"':{v:['Opna tengil í "{resourceName}"']}}},{l:"it",t:{'Open link to "{resourceName}"':{v:['Apri il link a "{resourceName}"']}}},{l:"ja",t:{'Open link to "{resourceName}"':{v:['"{resourceName}" へのリンクを開く']}}},{l:"ja-JP",t:{'Open link to "{resourceName}"':{v:['"{resourceName}" へのリンクを開く']}}},{l:"ko",t:{'Open link to "{resourceName}"':{v:['"{resourceName}"의 링크 열기']}}},{l:"lo",t:{'Open link to "{resourceName}"':{v:["ເປີດລິງໄປທີ່ “{resourceName}”"]}}},{l:"lt-LT",t:{}},{l:"lv",t:{}},{l:"mk",t:{'Open link to "{resourceName}"':{v:['Отвори линк до "{resourceName}"']}}},{l:"my",t:{}},{l:"nb",t:{'Open link to "{resourceName}"':{v:['Åpne lenken til "{resourceName}"']}}},{l:"nl",t:{'Open link to "{resourceName}"':{v:['Link naar "{resourceName}" openen']}}},{l:"oc",t:{}},{l:"pl",t:{'Open link to "{resourceName}"':{v:['Otwórz link do "{resourceName}"']}}},{l:"pt-BR",t:{'Open link to "{resourceName}"':{v:['Abrir o link para "{resourceName}"']}}},{l:"pt-PT",t:{'Open link to "{resourceName}"':{v:['Abrir link para "{resourceName}"']}}},{l:"ro",t:{'Open link to "{resourceName}"':{v:['Deschide linkul la "{resourceName}"']}}},{l:"ru",t:{'Open link to "{resourceName}"':{v:['Открыть ссылку на "{resourceName}"']}}},{l:"sk",t:{'Open link to "{resourceName}"':{v:['Otvoriť link v "{resourceName}"']}}},{l:"sl",t:{}},{l:"sr",t:{'Open link to "{resourceName}"':{v:["Отвори линк на „{resourceName}”"]}}},{l:"sv",t:{'Open link to "{resourceName}"':{v:['Öppna länken till "{resourceName}"']}}},{l:"tr",t:{'Open link to "{resourceName}"':{v:['Bağlantıyı "{resourceName}" üzerine aç']}}},{l:"uk",t:{'Open link to "{resourceName}"':{v:['Відкрити посилання на "{resourceName}"']}}},{l:"uz",t:{'Open link to "{resourceName}"':{v:[' "{resourceName}" ga havolani ochish']}}},{l:"zh-CN",t:{'Open link to "{resourceName}"':{v:["打开 “{resourceName}” 的链接"]}}},{l:"zh-HK",t:{'Open link to "{resourceName}"':{v:["開啟到「{resourceName}」的連結"]}}},{l:"zh-TW",t:{'Open link to "{resourceName}"':{v:["開啟到「{resourceName}」的連結"]}}}],iu=[{l:"ar",t:{"Provider icon":{v:["أيقونة المزوّد"]}}},{l:"ast",t:{"Provider icon":{v:["Iconu del fornidor"]}}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{"Provider icon":{v:["Ikona poskytovatele"]}}},{l:"cs-CZ",t:{"Provider icon":{v:["Ikona poskytovatele"]}}},{l:"da",t:{"Provider icon":{v:["Udbyder ikon"]}}},{l:"de",t:{"Provider icon":{v:["Anbietersymbol"]}}},{l:"de-DE",t:{"Provider icon":{v:["Anbietersymbol"]}}},{l:"el",t:{"Provider icon":{v:["Εικονίδιο παρόχου"]}}},{l:"en-GB",t:{"Provider icon":{v:["Provider icon"]}}},{l:"eo",t:{}},{l:"es",t:{"Provider icon":{v:["Ícono del proveedor"]}}},{l:"es-AR",t:{"Provider icon":{v:["Ícono del proveedor"]}}},{l:"es-EC",t:{"Provider icon":{v:["Ícono del proveedor"]}}},{l:"es-MX",t:{"Provider icon":{v:["Ícono del proveedor"]}}},{l:"et-EE",t:{"Provider icon":{v:["Teenusepakkuja ikoon"]}}},{l:"eu",t:{"Provider icon":{v:["Hornitzailearen ikonoa"]}}},{l:"fa",t:{"Provider icon":{v:["آیکون ارائه دهنده"]}}},{l:"fi",t:{"Provider icon":{v:["Palveluntarjoajan kuvake"]}}},{l:"fr",t:{"Provider icon":{v:["Icône du fournisseur"]}}},{l:"ga",t:{"Provider icon":{v:["Deilbhín soláthraí"]}}},{l:"gl",t:{"Provider icon":{v:["Icona do provedor"]}}},{l:"he",t:{"Provider icon":{v:["סמל ספק"]}}},{l:"hu",t:{}},{l:"id",t:{"Provider icon":{v:["Ikon penyedia"]}}},{l:"is",t:{"Provider icon":{v:["Táknmynd þjónustuveitu"]}}},{l:"it",t:{"Provider icon":{v:["Icona del provider"]}}},{l:"ja",t:{"Provider icon":{v:["プロバイダーのアイコン"]}}},{l:"ja-JP",t:{"Provider icon":{v:["プロバイダーのアイコン"]}}},{l:"ko",t:{"Provider icon":{v:["제공자 아이콘"]}}},{l:"lo",t:{"Provider icon":{v:["ໄອຄອນຜູ້ໃຫ້ບໍລິການ"]}}},{l:"lt-LT",t:{}},{l:"lv",t:{}},{l:"mk",t:{"Provider icon":{v:["Икона на давател"]}}},{l:"my",t:{}},{l:"nb",t:{"Provider icon":{v:["Leverandørikon"]}}},{l:"nl",t:{"Provider icon":{v:["Provider-pictogram"]}}},{l:"oc",t:{}},{l:"pl",t:{"Provider icon":{v:["Dostawca ikony"]}}},{l:"pt-BR",t:{"Provider icon":{v:["Ícone do provedor"]}}},{l:"pt-PT",t:{"Provider icon":{v:["Ícone do fornecedor"]}}},{l:"ro",t:{"Provider icon":{v:["Provider pentru icon"]}}},{l:"ru",t:{"Provider icon":{v:["Значок поставщика"]}}},{l:"sk",t:{"Provider icon":{v:["Ikonka poskytovateľa"]}}},{l:"sl",t:{}},{l:"sr",t:{"Provider icon":{v:["Икона пружаоца"]}}},{l:"sv",t:{"Provider icon":{v:["Leverantörsikon"]}}},{l:"tr",t:{"Provider icon":{v:["Hizmet sağlayıcı simgesi"]}}},{l:"uk",t:{"Provider icon":{v:["Піктограма постачальника"]}}},{l:"uz",t:{"Provider icon":{v:["Provayder belgisi"]}}},{l:"zh-CN",t:{"Provider icon":{v:["提供者图标"]}}},{l:"zh-HK",t:{"Provider icon":{v:["提供者圖示"]}}},{l:"zh-TW",t:{"Provider icon":{v:["提供者圖示"]}}}],ru=[{l:"ar",t:{"Related team resources":{v:["موارد للفريق ذات صلة"]},"View team":{v:["عرض الفريق"]}}},{l:"ast",t:{"Related team resources":{v:["Recursos rellacionaos colos equipos"]},"View team":{v:["Ver l'equipu"]}}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{"Related team resources":{v:["Související prostředky kolektivu"]},"View team":{v:["Zobrazit kolektiv"]}}},{l:"cs-CZ",t:{}},{l:"da",t:{"Related team resources":{v:["Relaterede teamressourcer"]},"View team":{v:["Se teamet"]}}},{l:"de",t:{"Related team resources":{v:["Verwandte Team-Ressourcen"]},"View team":{v:["Team anzeigen"]}}},{l:"de-DE",t:{"Related team resources":{v:["Verwandte Team-Ressourcen"]},"View team":{v:["Team anzeigen"]}}},{l:"el",t:{"Related team resources":{v:["Σχετικοί πόροι ομάδας"]},"View team":{v:["Προβολή ομάδας"]}}},{l:"en-GB",t:{"Related team resources":{v:["Related team resources"]},"View team":{v:["View team"]}}},{l:"eo",t:{}},{l:"es",t:{"Related team resources":{v:["Recursos de equipo relacionados"]},"View team":{v:["Ver equipo"]}}},{l:"es-AR",t:{"Related team resources":{v:["Recursos de equipo relacionados"]},"View team":{v:["Ver equipo"]}}},{l:"es-EC",t:{}},{l:"es-MX",t:{"Related team resources":{v:["Recursos de equipo relacionados"]},"View team":{v:["Ver equipo"]}}},{l:"et-EE",t:{"Related team resources":{v:["Tiimi seotud ressursid"]},"View team":{v:["Vaata tiimi"]}}},{l:"eu",t:{}},{l:"fa",t:{"Related team resources":{v:["منابع تیمی مرتبط"]},"View team":{v:["مشاهده گروه"]}}},{l:"fi",t:{"Related team resources":{v:["Liittyvät tiimiresurssit"]},"View team":{v:["Näytä tiimi"]}}},{l:"fr",t:{"Related team resources":{v:["Ressources d'équipe associées"]},"View team":{v:["Voir l'équipe"]}}},{l:"ga",t:{"Related team resources":{v:["Acmhainní foirne gaolmhara"]},"View team":{v:["Féach ar an bhfoireann"]}}},{l:"gl",t:{"Related team resources":{v:["Recursos de equipo relacionados"]},"View team":{v:["Ver o equipo"]}}},{l:"he",t:{}},{l:"hu",t:{}},{l:"id",t:{}},{l:"is",t:{"Related team resources":{v:["Tengd tilföng teymis"]},"View team":{v:["Skoða teymi"]}}},{l:"it",t:{}},{l:"ja",t:{"Related team resources":{v:["チームの関連リソース"]},"View team":{v:["チームを表示"]}}},{l:"ja-JP",t:{"Related team resources":{v:["チームの関連リソース"]},"View team":{v:["チームを表示"]}}},{l:"ko",t:{"Related team resources":{v:["관련 팀 리소스"]},"View team":{v:["팀 보기"]}}},{l:"lo",t:{"Related team resources":{v:["ຊັບພະຍາກອນຂອງທີມທີ່ກ່ຽວຂ້ອງ"]},"View team":{v:["ເບິ່ງທີມ"]}}},{l:"lt-LT",t:{}},{l:"lv",t:{}},{l:"mk",t:{"Related team resources":{v:["Поврзани ресурси на тимот"]},"View team":{v:["Прикажи тим"]}}},{l:"my",t:{}},{l:"nb",t:{"Related team resources":{v:["Relaterte lagressurser"]},"View team":{v:["Se lag"]}}},{l:"nl",t:{"Related team resources":{v:["Verwante teambronnen"]},"View team":{v:["Team bekijken"]}}},{l:"oc",t:{}},{l:"pl",t:{"Related team resources":{v:["Powiązane zasoby grupowe"]},"View team":{v:["Zobacz grupę"]}}},{l:"pt-BR",t:{"Related team resources":{v:["Recursos de equipe relacionados"]},"View team":{v:["Ver equipe"]}}},{l:"pt-PT",t:{"Related team resources":{v:["Recursos relacionados com a equipa"]},"View team":{v:["Ver equipa"]}}},{l:"ro",t:{}},{l:"ru",t:{"Related team resources":{v:["Связанные командные ресурсы"]},"View team":{v:["Просмотр команды"]}}},{l:"sk",t:{"Related team resources":{v:["Súvisiace tímové zdroje"]},"View team":{v:["Zobraziť tím"]}}},{l:"sl",t:{}},{l:"sr",t:{"Related team resources":{v:["Повезани тимски ресурси"]},"View team":{v:["Прикажи тим"]}}},{l:"sv",t:{"Related team resources":{v:["Relaterade teamresurser"]},"View team":{v:["Visa team"]}}},{l:"tr",t:{"Related team resources":{v:["İlgili takım kaynakları"]},"View team":{v:["Takımı görüntüle"]}}},{l:"uk",t:{"Related team resources":{v:["Пов'язані ресурси команди"]},"View team":{v:["Переглянути команду"]}}},{l:"uz",t:{"Related team resources":{v:["Tegishli jamoa resurslari"]},"View team":{v:["Jamoani ko'rish"]}}},{l:"zh-CN",t:{"Related team resources":{v:["相关团队资源"]},"View team":{v:["查看团队"]}}},{l:"zh-HK",t:{"Related team resources":{v:["相關團隊資源"]},"View team":{v:["查看團隊"]}}},{l:"zh-TW",t:{"Related team resources":{v:["相關團隊資源"]},"View team":{v:["檢視團隊"]}}}],lu=[{l:"ar",t:{Search:{v:["بحث"]}}},{l:"ast",t:{Search:{v:["Buscar"]}}},{l:"br",t:{Search:{v:["Klask"]}}},{l:"ca",t:{Search:{v:["Cerca"]}}},{l:"cs",t:{Search:{v:["Hledat"]}}},{l:"cs-CZ",t:{Search:{v:["Hledat"]}}},{l:"da",t:{Search:{v:["Søg"]}}},{l:"de",t:{Search:{v:["Suche"]}}},{l:"de-DE",t:{Search:{v:["Suche"]}}},{l:"el",t:{Search:{v:["Αναζήτηση"]}}},{l:"en-GB",t:{Search:{v:["Search"]}}},{l:"eo",t:{Search:{v:["Serĉi"]}}},{l:"es",t:{Search:{v:["Buscar"]}}},{l:"es-AR",t:{Search:{v:["Buscar"]}}},{l:"es-EC",t:{Search:{v:["Buscar"]}}},{l:"es-MX",t:{Search:{v:["Buscar"]}}},{l:"et-EE",t:{Search:{v:["Otsing"]}}},{l:"eu",t:{Search:{v:["Bilatu"]}}},{l:"fa",t:{Search:{v:["جستجو"]}}},{l:"fi",t:{Search:{v:["Etsi"]}}},{l:"fr",t:{Search:{v:["Rechercher"]}}},{l:"ga",t:{Search:{v:["Cuardach"]}}},{l:"gl",t:{Search:{v:["Buscar"]}}},{l:"he",t:{Search:{v:["חיפוש"]}}},{l:"hu",t:{Search:{v:["Keresés"]}}},{l:"id",t:{Search:{v:["Cari"]}}},{l:"is",t:{Search:{v:["Leita"]}}},{l:"it",t:{Search:{v:["Cerca"]}}},{l:"ja",t:{Search:{v:["検索"]}}},{l:"ja-JP",t:{Search:{v:["検索"]}}},{l:"ko",t:{Search:{v:["검색"]}}},{l:"lo",t:{Search:{v:["ຄົ້ນຫາ"]}}},{l:"lt-LT",t:{Search:{v:["Ieškoti"]}}},{l:"lv",t:{}},{l:"mk",t:{Search:{v:["Барај"]}}},{l:"my",t:{Search:{v:["ရှာဖွေရန်"]}}},{l:"nb",t:{Search:{v:["Søk"]}}},{l:"nl",t:{Search:{v:["Zoeken"]}}},{l:"oc",t:{}},{l:"pl",t:{Search:{v:["Szukaj"]}}},{l:"pt-BR",t:{Search:{v:["Pesquisar"]}}},{l:"pt-PT",t:{Search:{v:["Pesquisar"]}}},{l:"ro",t:{Search:{v:["Căutare"]}}},{l:"ru",t:{Search:{v:["Поиск"]}}},{l:"sk",t:{Search:{v:["Hľadať"]}}},{l:"sl",t:{Search:{v:["Iskanje"]}}},{l:"sr",t:{Search:{v:["Претражи"]}}},{l:"sv",t:{Search:{v:["Sök"]}}},{l:"tr",t:{Search:{v:["Ara"]}}},{l:"uk",t:{Search:{v:["Пошук"]}}},{l:"uz",t:{Search:{v:["Qidiruv"]}}},{l:"zh-CN",t:{Search:{v:["搜索"]}}},{l:"zh-HK",t:{Search:{v:["搜尋"]}}},{l:"zh-TW",t:{Search:{v:["搜尋"]}}}],su=[{l:"ar",t:{"Select provider":{v:["اختر مزود"]}}},{l:"ast",t:{"Select provider":{v:["Seleicionar el fornidor"]}}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{"Select provider":{v:["Vybrat poskytovatele"]}}},{l:"cs-CZ",t:{"Select provider":{v:["Vybrat poskytovatele"]}}},{l:"da",t:{"Select provider":{v:["Vælg udbyder"]}}},{l:"de",t:{"Select provider":{v:["Anbieter auswählen"]}}},{l:"de-DE",t:{"Select provider":{v:["Anbieter auswählen"]}}},{l:"el",t:{"Select provider":{v:["Επιλογή παρόχου"]}}},{l:"en-GB",t:{"Select provider":{v:["Select provider"]}}},{l:"eo",t:{}},{l:"es",t:{"Select provider":{v:["Seleccione proveedor"]}}},{l:"es-AR",t:{"Select provider":{v:["Elija proveedor"]}}},{l:"es-EC",t:{"Select provider":{v:["Seleccionar proveedor"]}}},{l:"es-MX",t:{"Select provider":{v:["Seleccionar proveedor"]}}},{l:"et-EE",t:{"Select provider":{v:["Vali teenuspakkuja"]}}},{l:"eu",t:{"Select provider":{v:["Hautatu hornitzailea"]}}},{l:"fa",t:{"Select provider":{v:["ارائه دهنده را انتخاب کنید"]}}},{l:"fi",t:{"Select provider":{v:["Valitse tarjoaja"]}}},{l:"fr",t:{"Select provider":{v:["Sélectionner un fournisseur"]}}},{l:"ga",t:{"Select provider":{v:["Roghnaigh soláthraí"]}}},{l:"gl",t:{"Select provider":{v:["Seleccione o provedor"]}}},{l:"he",t:{"Select provider":{v:["בחירת ספק"]}}},{l:"hu",t:{}},{l:"id",t:{"Select provider":{v:["Pilih penyedia"]}}},{l:"is",t:{"Select provider":{v:["Veldu þjónustuveitu"]}}},{l:"it",t:{"Select provider":{v:["Selezionare il provider"]}}},{l:"ja",t:{"Select provider":{v:["プロバイダーを選択"]}}},{l:"ja-JP",t:{"Select provider":{v:["プロバイダーを選択"]}}},{l:"ko",t:{"Select provider":{v:["제공자 선택"]}}},{l:"lo",t:{"Select provider":{v:["ເລືອກຜູ້ໃຫ້ບໍລິການ"]}}},{l:"lt-LT",t:{}},{l:"lv",t:{}},{l:"mk",t:{"Select provider":{v:["Избери провајдер"]}}},{l:"my",t:{}},{l:"nb",t:{"Select provider":{v:["Velg leverandør"]}}},{l:"nl",t:{"Select provider":{v:["Selecteer provider"]}}},{l:"oc",t:{}},{l:"pl",t:{"Select provider":{v:["Wybierz dostawcę"]}}},{l:"pt-BR",t:{"Select provider":{v:["Selecione provedor"]}}},{l:"pt-PT",t:{"Select provider":{v:["Selecionar fornecedor"]}}},{l:"ro",t:{"Select provider":{v:["Selectați providerul"]}}},{l:"ru",t:{"Select provider":{v:["Выбрать поставщика"]}}},{l:"sk",t:{"Select provider":{v:["Vybrať poskytovateľa"]}}},{l:"sl",t:{}},{l:"sr",t:{"Select provider":{v:["Изаберите пружаоца"]}}},{l:"sv",t:{"Select provider":{v:["Välj leverantör"]}}},{l:"tr",t:{"Select provider":{v:["Hizmet sağlayıcı seçin"]}}},{l:"uk",t:{"Select provider":{v:["Виберіть постачальника"]}}},{l:"uz",t:{"Select provider":{v:["Provayderni tanlang"]}}},{l:"zh-CN",t:{"Select provider":{v:["选择提供者"]}}},{l:"zh-HK",t:{"Select provider":{v:["選擇提供者"]}}},{l:"zh-TW",t:{"Select provider":{v:["選取提供者"]}}}],nu=[{l:"ar",t:{Submit:{v:["إرسال"]}}},{l:"ast",t:{Submit:{v:["Unviar"]}}},{l:"br",t:{}},{l:"ca",t:{Submit:{v:["Envia"]}}},{l:"cs",t:{Submit:{v:["Odeslat"]}}},{l:"cs-CZ",t:{Submit:{v:["Odeslat"]}}},{l:"da",t:{Submit:{v:["Send"]}}},{l:"de",t:{Submit:{v:["Einreichen"]}}},{l:"de-DE",t:{Submit:{v:["Einreichen"]}}},{l:"el",t:{Submit:{v:["Υποβολή"]}}},{l:"en-GB",t:{Submit:{v:["Submit"]}}},{l:"eo",t:{}},{l:"es",t:{Submit:{v:["Enviar"]}}},{l:"es-AR",t:{Submit:{v:["Enviar"]}}},{l:"es-EC",t:{Submit:{v:["Enviar"]}}},{l:"es-MX",t:{Submit:{v:["Enviar"]}}},{l:"et-EE",t:{Submit:{v:["Saada"]}}},{l:"eu",t:{Submit:{v:["Bidali"]}}},{l:"fa",t:{Submit:{v:["ارسال"]}}},{l:"fi",t:{Submit:{v:["Lähetä"]}}},{l:"fr",t:{Submit:{v:["Valider"]}}},{l:"ga",t:{Submit:{v:["Cuir isteach"]}}},{l:"gl",t:{Submit:{v:["Enviar"]}}},{l:"he",t:{Submit:{v:["הגשה"]}}},{l:"hu",t:{Submit:{v:["Beküldés"]}}},{l:"id",t:{Submit:{v:["Kirimkan"]}}},{l:"is",t:{Submit:{v:["Senda inn"]}}},{l:"it",t:{Submit:{v:["Invia"]}}},{l:"ja",t:{Submit:{v:["提出"]}}},{l:"ja-JP",t:{Submit:{v:["提出"]}}},{l:"ko",t:{Submit:{v:["제출"]}}},{l:"lo",t:{Submit:{v:["ສົ່ງ"]}}},{l:"lt-LT",t:{Submit:{v:["Pateikti"]}}},{l:"lv",t:{}},{l:"mk",t:{Submit:{v:["Испрати"]}}},{l:"my",t:{Submit:{v:["တင်သွင်းရန်"]}}},{l:"nb",t:{Submit:{v:["Send"]}}},{l:"nl",t:{Submit:{v:["Indienen"]}}},{l:"oc",t:{}},{l:"pl",t:{Submit:{v:["Wyślij"]}}},{l:"pt-BR",t:{Submit:{v:["Enviar"]}}},{l:"pt-PT",t:{Submit:{v:["Submeter"]}}},{l:"ro",t:{Submit:{v:["Trimiteți"]}}},{l:"ru",t:{Submit:{v:["Утвердить"]}}},{l:"sk",t:{Submit:{v:["Odoslať"]}}},{l:"sl",t:{Submit:{v:["Pošlji"]}}},{l:"sr",t:{Submit:{v:["Поднеси"]}}},{l:"sv",t:{Submit:{v:["Skicka"]}}},{l:"tr",t:{Submit:{v:["Gönder"]}}},{l:"uk",t:{Submit:{v:["Надіслати"]}}},{l:"uz",t:{Submit:{v:["Yuborish"]}}},{l:"zh-CN",t:{Submit:{v:["提交"]}}},{l:"zh-HK",t:{Submit:{v:["提交"]}}},{l:"zh-TW",t:{Submit:{v:["遞交"]}}}],vu=[{l:"ar",t:{"Unable to search the group":{v:["تعذّر البحث في المجموعة"]}}},{l:"ast",t:{"Unable to search the group":{v:["Nun ye posible buscar el grupu"]}}},{l:"br",t:{"Unable to search the group":{v:["Dibosupl eo klask ar strollad"]}}},{l:"ca",t:{"Unable to search the group":{v:["No es pot cercar el grup"]}}},{l:"cs",t:{"Unable to search the group":{v:["Nedaří se hledat skupinu"]}}},{l:"cs-CZ",t:{"Unable to search the group":{v:["Nedaří se hledat skupinu"]}}},{l:"da",t:{"Unable to search the group":{v:["Kan ikke søge på denne gruppe"]}}},{l:"de",t:{"Unable to search the group":{v:["Die Gruppe kann nicht durchsucht werden"]}}},{l:"de-DE",t:{"Unable to search the group":{v:["Die Gruppe kann nicht durchsucht werden"]}}},{l:"el",t:{"Unable to search the group":{v:["Δεν είναι δυνατή η αναζήτηση της ομάδας"]}}},{l:"en-GB",t:{"Unable to search the group":{v:["Unable to search the group"]}}},{l:"eo",t:{"Unable to search the group":{v:["Ne eblas serĉi en la grupo"]}}},{l:"es",t:{"Unable to search the group":{v:["No es posible buscar en el grupo"]}}},{l:"es-AR",t:{"Unable to search the group":{v:["No se puede buscar el grupo"]}}},{l:"es-EC",t:{"Unable to search the group":{v:["No se puede buscar en el grupo"]}}},{l:"es-MX",t:{"Unable to search the group":{v:["No fue posible buscar en el grupo"]}}},{l:"et-EE",t:{"Unable to search the group":{v:["Gruppi ei ole võimalik otsida"]}}},{l:"eu",t:{"Unable to search the group":{v:["Ezin izan da taldea bilatu"]}}},{l:"fa",t:{"Unable to search the group":{v:["امکان جستجوی گروه وجود ندارد"]}}},{l:"fi",t:{"Unable to search the group":{v:["Ryhmää ei voi hakea"]}}},{l:"fr",t:{"Unable to search the group":{v:["Impossible de chercher le groupe"]}}},{l:"ga",t:{"Unable to search the group":{v:["Ní féidir an grúpa a chuardach"]}}},{l:"gl",t:{"Unable to search the group":{v:["Non foi posíbel buscar o grupo"]}}},{l:"he",t:{"Unable to search the group":{v:["לא ניתן לחפש בקבוצה"]}}},{l:"hu",t:{"Unable to search the group":{v:["A csoport nem kereshető"]}}},{l:"id",t:{"Unable to search the group":{v:["Tidak dapat mencari dalam grup"]}}},{l:"is",t:{"Unable to search the group":{v:["Get ekki leitað í hópnum"]}}},{l:"it",t:{"Unable to search the group":{v:["Impossibile cercare il gruppo"]}}},{l:"ja",t:{"Unable to search the group":{v:["グループを検索できません"]}}},{l:"ja-JP",t:{"Unable to search the group":{v:["グループを検索できません"]}}},{l:"ko",t:{"Unable to search the group":{v:["그룹을 검색할 수 없음"]}}},{l:"lo",t:{"Unable to search the group":{v:["ບໍ່ສາມາດຄົ້ນຫາກຸ່ມໄດ້"]}}},{l:"lt-LT",t:{"Unable to search the group":{v:["Nepavyko atlikti paiešką grupėje"]}}},{l:"lv",t:{}},{l:"mk",t:{"Unable to search the group":{v:["Неможе да се пронајде групата"]}}},{l:"my",t:{"Unable to search the group":{v:["အဖွဲ့အား ရှာဖွေ၍ မရနိုင်ပါ"]}}},{l:"nb",t:{"Unable to search the group":{v:["Kunne ikke søke i gruppen"]}}},{l:"nl",t:{"Unable to search the group":{v:["Kan niet zoeken in de groep"]}}},{l:"oc",t:{}},{l:"pl",t:{"Unable to search the group":{v:["Nie można przeszukać grupy"]}}},{l:"pt-BR",t:{"Unable to search the group":{v:["Não foi possível pesquisar o grupo"]}}},{l:"pt-PT",t:{"Unable to search the group":{v:["Não é possível pesquisar o grupo"]}}},{l:"ro",t:{"Unable to search the group":{v:["Imposibilitatea de a căuta în grup"]}}},{l:"ru",t:{"Unable to search the group":{v:["Невозможно найти группу"]}}},{l:"sk",t:{"Unable to search the group":{v:["Skupinu sa nepodarilo nájsť"]}}},{l:"sl",t:{"Unable to search the group":{v:["Ni mogoče iskati po skupini"]}}},{l:"sr",t:{"Unable to search the group":{v:["Група не може да се претражи"]}}},{l:"sv",t:{"Unable to search the group":{v:["Kunde inte söka i gruppen"]}}},{l:"tr",t:{"Unable to search the group":{v:["Grupta arama yapılamadı"]}}},{l:"uk",t:{"Unable to search the group":{v:["Неможливо шукати в групі"]}}},{l:"uz",t:{"Unable to search the group":{v:["Guruhni qidirish imkonsiz"]}}},{l:"zh-CN",t:{"Unable to search the group":{v:["无法搜索分组"]}}},{l:"zh-HK",t:{"Unable to search the group":{v:["無法搜尋群組"]}}},{l:"zh-TW",t:{"Unable to search the group":{v:["無法搜尋群組"]}}}],Eu=[{l:"ar",t:{"Undo changes":{v:["تراجَع عن التغييرات"]}}},{l:"ast",t:{"Undo changes":{v:["Desfacer los cambeos"]}}},{l:"br",t:{}},{l:"ca",t:{"Undo changes":{v:["Desfés els canvis"]}}},{l:"cs",t:{"Undo changes":{v:["Vzít změny zpět"]}}},{l:"cs-CZ",t:{"Undo changes":{v:["Vzít změny zpět"]}}},{l:"da",t:{"Undo changes":{v:["Fortryd ændringer"]}}},{l:"de",t:{"Undo changes":{v:["Änderungen rückgängig machen"]}}},{l:"de-DE",t:{"Undo changes":{v:["Änderungen rückgängig machen"]}}},{l:"el",t:{"Undo changes":{v:["Αναίρεση Αλλαγών"]}}},{l:"en-GB",t:{"Undo changes":{v:["Undo changes"]}}},{l:"eo",t:{}},{l:"es",t:{"Undo changes":{v:["Deshacer cambios"]}}},{l:"es-AR",t:{"Undo changes":{v:["Deshacer cambios"]}}},{l:"es-EC",t:{"Undo changes":{v:["Deshacer cambios"]}}},{l:"es-MX",t:{"Undo changes":{v:["Deshacer cambios"]}}},{l:"et-EE",t:{"Undo changes":{v:["Pööra muudatused tagasi"]}}},{l:"eu",t:{"Undo changes":{v:["Aldaketak desegin"]}}},{l:"fa",t:{"Undo changes":{v:["لغو تغییرات"]}}},{l:"fi",t:{"Undo changes":{v:["Kumoa muutokset"]}}},{l:"fr",t:{"Undo changes":{v:["Annuler les changements"]}}},{l:"ga",t:{"Undo changes":{v:["Cealaigh athruithe"]}}},{l:"gl",t:{"Undo changes":{v:["Desfacer os cambios"]}}},{l:"he",t:{"Undo changes":{v:["ביטול שינויים"]}}},{l:"hu",t:{"Undo changes":{v:["Változtatások visszavonása"]}}},{l:"id",t:{"Undo changes":{v:["Urungkan perubahan"]}}},{l:"is",t:{"Undo changes":{v:["Afturkalla breytingar"]}}},{l:"it",t:{"Undo changes":{v:["Cancella i cambiamenti"]}}},{l:"ja",t:{"Undo changes":{v:["変更を取り消し"]}}},{l:"ja-JP",t:{"Undo changes":{v:["変更を取り消し"]}}},{l:"ko",t:{"Undo changes":{v:["변경 되돌리기"]}}},{l:"lo",t:{"Undo changes":{v:["ຍ້ອນຄືນການປ່ຽນແປງ"]}}},{l:"lt-LT",t:{}},{l:"lv",t:{}},{l:"mk",t:{"Undo changes":{v:["Врати ги промените"]}}},{l:"my",t:{}},{l:"nb",t:{"Undo changes":{v:["Tilbakestill endringer"]}}},{l:"nl",t:{"Undo changes":{v:["Wijzigingen ongedaan maken"]}}},{l:"oc",t:{}},{l:"pl",t:{"Undo changes":{v:["Cofnij zmiany"]}}},{l:"pt-BR",t:{"Undo changes":{v:["Desfazer modificações"]}}},{l:"pt-PT",t:{"Undo changes":{v:["Anular alterações"]}}},{l:"ro",t:{"Undo changes":{v:["Anularea modificărilor"]}}},{l:"ru",t:{"Undo changes":{v:["Отменить изменения"]}}},{l:"sk",t:{"Undo changes":{v:["Vrátiť zmeny"]}}},{l:"sl",t:{"Undo changes":{v:["Razveljavi spremembe"]}}},{l:"sr",t:{"Undo changes":{v:["Поништи измене"]}}},{l:"sv",t:{"Undo changes":{v:["Ångra ändringar"]}}},{l:"tr",t:{"Undo changes":{v:["Değişiklikleri geri al"]}}},{l:"uk",t:{"Undo changes":{v:["Скасувати зміни"]}}},{l:"uz",t:{"Undo changes":{v:["O'zgarishlarni bekor qilish"]}}},{l:"zh-CN",t:{"Undo changes":{v:["撤销更改"]}}},{l:"zh-HK",t:{"Undo changes":{v:["取消更改"]}}},{l:"zh-TW",t:{"Undo changes":{v:["還原變更"]}}}];window._nc_vue_element_id=window._nc_vue_element_id??0;function cu(){return`nc-vue-${window._nc_vue_element_id++}`}export{J as A,U as B,au as C,K as D,T as E,G as F,X as G,Eu as H,Q as I,Z as J,Y as K,V as L,tu as M,ou as N,ru as O,q as P,eu as Q,w as R,vu as S,S as _,b as a,y as b,cu as c,n as d,g as e,c as f,j as g,nu as h,f as i,C as j,W as k,I as l,H as m,N as n,M as o,R as p,O as q,z as r,_ as s,P as t,L as u,su as v,iu as w,$ as x,lu as y,uu as z}; -//# sourceMappingURL=createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs.map diff --git a/dist/createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs b/dist/createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs new file mode 100644 index 0000000000000..2fbc876ef2b2e --- /dev/null +++ b/dist/createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs @@ -0,0 +1,2 @@ +import{g as d,c as B,t as A,b as p}from"./string_decoder-vT-u9WbV.chunk.mjs";const D=u=>"/remote.php/"+u,y=(u,e)=>C()+D(u),b=(u,e,t)=>{const o=Object.assign({ocsVersion:2},{}).ocsVersion===1?1:2;return C()+"/ocs/v"+o+".php"+s(u,e,t)},s=(u,e,t)=>{const o=Object.assign({escape:!0},t||{}),i=function(a,r){return r=r||{},a.replace(/{([^{}]*)}/g,function(E,m){const l=r[m];return o.escape?encodeURIComponent(typeof l=="string"||typeof l=="number"?l.toString():E):typeof l=="string"||typeof l=="number"?l.toString():E})};return u.charAt(0)!=="/"&&(u="/"+u),i(u,e||{})},j=(u,e,t)=>{const o=Object.assign({noRewrite:!1},t||{}),i=t?.baseURL??n();return window?.OC?.config?.modRewriteWorking===!0&&!o.noRewrite?i+s(u,e,t):i+"/index.php"+s(u,e,t)},f=(u,e)=>e.includes(".")?c(u,"img",e):c(u,"img",`${e}.svg`),c=(u,e,t)=>{const o=window?.OC?.coreApps?.includes(u)??!1,i=t.slice(-3)==="php";let a=n();return i&&!o?(a+=`/index.php/apps/${u}`,e&&(a+=`/${encodeURI(e)}`),t!=="index.php"&&(a+=`/${t}`)):!i&&!o?(a=F(u),e&&(a+=`/${e}/`),a.at(-1)!=="/"&&(a+="/"),a+=t):((u==="settings"||u==="core"||u==="search")&&e==="ajax"&&(a+="/index.php"),u&&(a+=`/${u}`),e&&(a+=`/${e}`),a+=`/${t}`),a},C=()=>window.location.protocol+"//"+window.location.host+n();function n(){let u=window._oc_webroot;if(typeof u>"u"){u=location.pathname;const e=u.indexOf("/index.php/");if(e!==-1)u=u.slice(0,e);else{const t=u.indexOf("/",1);u=u.slice(0,t>0?t:void 0)}}return u}function F(u){return(window._oc_appswebroots??{})[u]??""}const S=(u,e)=>{const t=u.__vccOpts||u;for(const[o,i]of e)t[o]=i;return t};class h{bundle;constructor(e){this.bundle={pluralFunction:e,translations:{}}}addTranslations(e){const t=Object.values(e.translations[""]??{}).map(({msgid:o,msgid_plural:i,msgstr:a})=>i!==void 0?[`_${o}_::_${i}_`,a]:[o,a[0]]);this.bundle.translations={...this.bundle.translations,...Object.fromEntries(t)}}gettext(e,t={}){return A("",e,t,void 0,{bundle:this.bundle})}ngettext(e,t,o,i={}){return p("",e,t,o,i,{bundle:this.bundle})}}class k{debug=!1;language="en";translations={};setLanguage(e){return this.language=e,this}detectLocale(){return this.detectLanguage()}detectLanguage(){return this.setLanguage(d().replace("-","_"))}addTranslation(e,t){return this.translations[e]=t,this}enableDebugMode(){return this.debug=!0,this}build(){this.debug&&console.debug(`Creating gettext instance for language ${this.language}`);const e=new h(t=>B(t,this.language));return this.language in this.translations&&e.addTranslations(this.translations[this.language]),e}}function g(){return new k}const v=g().detectLanguage().build(),N=(...u)=>v.ngettext(...u),P=(...u)=>v.gettext(...u);function z(...u){for(const e of u)if(!e.registered){for(const{l:t,t:o}of e){if(t!==d()||!o)continue;const i=Object.fromEntries(Object.entries(o).map(([a,r])=>[a,{msgid:a,msgid_plural:r.p,msgstr:r.v}]));v.addTranslations({translations:{"":i}})}e.registered=!0}}const w=[{l:"ar",t:{"{tag} (restricted)":{v:["{tag} (مقيد)"]},"Select a tag":{v:["اختر وسم"]}}},{l:"ast",t:{"{tag} (restricted)":{v:["{tag} (restrinxóse)"]},"Select a tag":{v:["Seleicionar una etiqueta"]}}},{l:"br",t:{"{tag} (restricted)":{v:["{tag} (bevennet)"]},"Select a tag":{v:["Choaz ur c'hlav"]}}},{l:"ca",t:{"{tag} (restricted)":{v:["{tag} (restringit)"]},"Select a tag":{v:["Seleccioneu una etiqueta"]}}},{l:"cs",t:{"{tag} (restricted)":{v:["{tag} (omezené)"]},"Select a tag":{v:["Vybrat štítek"]}}},{l:"cs-CZ",t:{"{tag} (restricted)":{v:["{tag} (omezené)"]},"Select a tag":{v:["Vybrat štítek"]}}},{l:"da",t:{"{tag} (restricted)":{v:["{tag} (begrænset)"]},"Select a tag":{v:["Vælg et mærke"]}}},{l:"de",t:{"{tag} (restricted)":{v:["{tag} (eingeschränkt)"]},"Select a tag":{v:["Schlagwort auswählen"]}}},{l:"de-DE",t:{"{tag} (restricted)":{v:["{tag} (eingeschränkt)"]},"Select a tag":{v:["Schlagwort auswählen"]}}},{l:"el",t:{"{tag} (restricted)":{v:["{tag} (περιορισμένο)"]},"Select a tag":{v:["Επιλογή ετικέτας"]}}},{l:"en-GB",t:{"{tag} (restricted)":{v:["{tag} (restricted)"]},"Select a tag":{v:["Select a tag"]}}},{l:"eo",t:{"{tag} (restricted)":{v:["{tag} (limigita)"]},"Select a tag":{v:["Elektu etikedon"]}}},{l:"es",t:{"{tag} (restricted)":{v:["{tag} (restringido)"]},"Select a tag":{v:["Seleccione una etiqueta"]}}},{l:"es-AR",t:{"{tag} (restricted)":{v:["{tag} (restringido)"]},"Select a tag":{v:["Elija una etiqueta"]}}},{l:"es-EC",t:{"{tag} (restricted)":{v:["{tag} (restricted)"]},"Select a tag":{v:["Seleccionar una etiqueta"]}}},{l:"es-MX",t:{"{tag} (restricted)":{v:["{tag} (restringido)"]},"Select a tag":{v:["Seleccionar una etiqueta"]}}},{l:"et-EE",t:{"{tag} (restricted)":{v:["{tag} (piiratud)"]},"Select a tag":{v:["Vali silt"]}}},{l:"eu",t:{"{tag} (restricted)":{v:["{tag} (mugatua)"]},"Select a tag":{v:["Hautatu etiketa bat"]}}},{l:"fa",t:{"{tag} (restricted)":{v:["{tag} محدود شده"]},"Select a tag":{v:["انتخاب یک برچسب"]}}},{l:"fi",t:{"{tag} (restricted)":{v:["{tag} (rajoitettu)"]},"Select a tag":{v:["Valitse tunniste"]}}},{l:"fr",t:{"{tag} (restricted)":{v:["{tag} (restreint)"]},"Select a tag":{v:["Sélectionnez une balise"]}}},{l:"ga",t:{"{tag} (restricted)":{v:["{tag} (srianta)"]},"Select a tag":{v:["Roghnaigh clib"]}}},{l:"gl",t:{"{tag} (restricted)":{v:["{tag} (restrinxido)"]},"Select a tag":{v:["Seleccione unha etiqueta"]}}},{l:"he",t:{"{tag} (restricted)":{v:["{tag} (מוגבל)"]},"Select a tag":{v:["בחירת תגית"]}}},{l:"hu",t:{"{tag} (restricted)":{v:["{tag} (korlátozott)"]},"Select a tag":{v:["Válasszon címkét"]}}},{l:"id",t:{"{tag} (restricted)":{v:["{tag} (dibatasi)"]},"Select a tag":{v:["Pilih tag"]}}},{l:"is",t:{"{tag} (restricted)":{v:["{tag} (takmarkað)"]},"Select a tag":{v:["Veldu merki"]}}},{l:"it",t:{"{tag} (restricted)":{v:["{tag} (limitato)"]},"Select a tag":{v:["Seleziona un'etichetta"]}}},{l:"ja",t:{"{tag} (restricted)":{v:["{tag} (制限付)"]},"Select a tag":{v:["タグを選択"]}}},{l:"ja-JP",t:{"{tag} (restricted)":{v:["{tag} (制限付)"]},"Select a tag":{v:["タグを選択"]}}},{l:"ko",t:{"{tag} (restricted)":{v:["{tag}(제한)"]},"Select a tag":{v:["태그 선택"]}}},{l:"lo",t:{"{tag} (restricted)":{v:["{tag} (ຈຳກັດ)"]},"Select a tag":{v:["ເລືອກແທັກ"]}}},{l:"lt-LT",t:{"{tag} (restricted)":{v:["{tag} (apribota)"]},"Select a tag":{v:["Pasirinkti žymę"]}}},{l:"lv",t:{"{tag} (restricted)":{v:["{tag} (ierobežots)"]},"Select a tag":{v:["Izvēlēties birku"]}}},{l:"mk",t:{"{tag} (restricted)":{v:["{tag} (ограничено)"]},"Select a tag":{v:["Избери ознака"]}}},{l:"my",t:{"{tag} (restricted)":{v:["{tag} (ကန့်သတ်)"]},"Select a tag":{v:["tag ရွေးချယ်ရန်"]}}},{l:"nb",t:{"{tag} (restricted)":{v:["{tag} (beskyttet)"]},"Select a tag":{v:["Velg en merkelapp"]}}},{l:"nl",t:{"{tag} (restricted)":{v:["{tag} (beperkt)"]},"Select a tag":{v:["Selecteer een label"]}}},{l:"oc",t:{"{tag} (restricted)":{v:["{tag} (limit)"]},"Select a tag":{v:["Seleccionar una etiqueta"]}}},{l:"pl",t:{"{tag} (restricted)":{v:["{tag} (ograniczona)"]},"Select a tag":{v:["Wybierz etykietę"]}}},{l:"pt-BR",t:{"{tag} (restricted)":{v:["{tag} (restrito)"]},"Select a tag":{v:["Selecione uma etiqueta"]}}},{l:"pt-PT",t:{"{tag} (restricted)":{v:["{tag} (restrito)"]},"Select a tag":{v:["Selecionar uma etiqueta"]}}},{l:"ro",t:{"{tag} (restricted)":{v:["{tag} (restricționat)"]},"Select a tag":{v:["Selectați o etichetă"]}}},{l:"ru",t:{"{tag} (restricted)":{v:["{tag} (ограниченное)"]},"Select a tag":{v:["Выберите метку"]}}},{l:"sk",t:{"{tag} (restricted)":{v:["{tag} (obmedzený)"]},"Select a tag":{v:["Vybrať štítok"]}}},{l:"sl",t:{"{tag} (restricted)":{v:["{tag} (omejeno)"]},"Select a tag":{v:["Izbor oznake"]}}},{l:"sr",t:{"{tag} (restricted)":{v:["{tag} (ограничено)"]},"Select a tag":{v:["Изаберите ознаку"]}}},{l:"sv",t:{"{tag} (restricted)":{v:["{tag} (begränsad)"]},"Select a tag":{v:["Välj en tag"]}}},{l:"tr",t:{"{tag} (restricted)":{v:["{tag} (kısıtlanmış)"]},"Select a tag":{v:["Bir etiket seçin"]}}},{l:"uk",t:{"{tag} (restricted)":{v:["{tag} (обмежений)"]},"Select a tag":{v:["Виберіть позначку"]}}},{l:"uz",t:{"{tag} (restricted)":{v:["{tag} (cheklangan)"]},"Select a tag":{v:["Teg tanlang"]}}},{l:"zh-CN",t:{"{tag} (restricted)":{v:["{tag} (受限)"]},"Select a tag":{v:["选择一个标签"]}}},{l:"zh-HK",t:{"{tag} (restricted)":{v:["{tag} (受限)"]},"Select a tag":{v:["選擇標籤"]}}},{l:"zh-TW",t:{"{tag} (restricted)":{v:["{tag}(受限)"]},"Select a tag":{v:["選擇標籤"]}}}],O=[{l:"ar",t:{"a few seconds ago":{v:["منذ عدة ثوانٍ"]},"sec. ago":{v:["ثانية مضت"]},"seconds ago":{v:["ثوانٍ مضت"]}}},{l:"ast",t:{"a few seconds ago":{v:["hai unos segundos"]},"sec. ago":{v:["hai segs"]},"seconds ago":{v:["hai segundos"]}}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{"a few seconds ago":{v:["před několika sekundami"]},"sec. ago":{v:["sek. před"]},"seconds ago":{v:["sekund předtím"]}}},{l:"cs-CZ",t:{"a few seconds ago":{v:["před několika sekundami"]},"sec. ago":{v:["sek. před"]},"seconds ago":{v:["sekund předtím"]}}},{l:"da",t:{"a few seconds ago":{v:["et par sekunder siden"]},"sec. ago":{v:["sek. siden"]},"seconds ago":{v:["sekunder siden"]}}},{l:"de",t:{"a few seconds ago":{v:["vor ein paar Sekunden"]},"sec. ago":{v:["Sek. zuvor"]},"seconds ago":{v:["Sekunden zuvor"]}}},{l:"de-DE",t:{"a few seconds ago":{v:["vor ein paar Sekunden"]},"sec. ago":{v:["Sek. zuvor"]},"seconds ago":{v:["Sekunden zuvor"]}}},{l:"el",t:{"a few seconds ago":{v:["πριν λίγα δευτερόλεπτα"]},"sec. ago":{v:["δευτ. πριν"]},"seconds ago":{v:["δευτερόλεπτα πριν"]}}},{l:"en-GB",t:{"a few seconds ago":{v:["a few seconds ago"]},"sec. ago":{v:["sec. ago"]},"seconds ago":{v:["seconds ago"]}}},{l:"eo",t:{}},{l:"es",t:{"a few seconds ago":{v:["hace unos pocos segundos"]},"sec. ago":{v:["hace segundos"]},"seconds ago":{v:["segundos atrás"]}}},{l:"es-AR",t:{"a few seconds ago":{v:["hace unos segundos"]},"sec. ago":{v:["seg. atrás"]},"seconds ago":{v:["segundos atrás"]}}},{l:"es-EC",t:{"a few seconds ago":{v:["hace unos segundos"]},"sec. ago":{v:["hace segundos"]},"seconds ago":{v:["Segundos atrás"]}}},{l:"es-MX",t:{"a few seconds ago":{v:["hace unos segundos"]},"sec. ago":{v:["seg. atrás"]},"seconds ago":{v:["segundos atrás"]}}},{l:"et-EE",t:{"a few seconds ago":{v:["mõni sekund tagasi"]},"sec. ago":{v:["sek. tagasi"]},"seconds ago":{v:["sekundit tagasi"]}}},{l:"eu",t:{"a few seconds ago":{v:["duela segundo batzuk"]},"sec. ago":{v:["duela seg."]},"seconds ago":{v:["duela segundo"]}}},{l:"fa",t:{"a few seconds ago":{v:["چند ثانیه پیش"]},"sec. ago":{v:["چند ثانیه پیش"]},"seconds ago":{v:["چند ثانیه پیش"]}}},{l:"fi",t:{"a few seconds ago":{v:["muutamia sekunteja sitten"]},"sec. ago":{v:["sek. sitten"]},"seconds ago":{v:["sekunteja sitten"]}}},{l:"fr",t:{"a few seconds ago":{v:["il y a quelques instants"]},"sec. ago":{v:["il y a qq. sec."]},"seconds ago":{v:["il y a quelques secondes"]}}},{l:"ga",t:{"a few seconds ago":{v:["cúpla soicind ó shin"]},"sec. ago":{v:["soic. ó shin"]},"seconds ago":{v:["soicind ó shin"]}}},{l:"gl",t:{"a few seconds ago":{v:["hai uns segundos"]},"sec. ago":{v:["segs. atrás"]},"seconds ago":{v:["segundos atrás"]}}},{l:"he",t:{"a few seconds ago":{v:["לפני מספר שניות"]},"sec. ago":{v:["לפני מספר שניות"]},"seconds ago":{v:["לפני מס׳ שניות"]}}},{l:"hu",t:{}},{l:"id",t:{"a few seconds ago":{v:["beberapa detik yang lalu"]},"sec. ago":{v:["dtk. yang lalu"]},"seconds ago":{v:["beberapa detik lalu"]}}},{l:"is",t:{"a few seconds ago":{v:["fyrir örfáum sekúndum síðan"]},"sec. ago":{v:["sek. síðan"]},"seconds ago":{v:["sekúndum síðan"]}}},{l:"it",t:{"a few seconds ago":{v:["pochi secondi fa"]},"sec. ago":{v:["sec. fa"]},"seconds ago":{v:["secondi fa"]}}},{l:"ja",t:{"a few seconds ago":{v:["数秒前"]},"sec. ago":{v:["秒前"]},"seconds ago":{v:["数秒前"]}}},{l:"ja-JP",t:{"a few seconds ago":{v:["数秒前"]},"sec. ago":{v:["秒前"]},"seconds ago":{v:["数秒前"]}}},{l:"ko",t:{"a few seconds ago":{v:["방금 전"]},"sec. ago":{v:["몇 초 전"]},"seconds ago":{v:["초 전"]}}},{l:"lo",t:{"a few seconds ago":{v:["ສອງສາມວິນາທີກ່ອນ"]},"sec. ago":{v:["ວິ. ກ່ອນ"]},"seconds ago":{v:["ວິນາທີກ່ອນ"]}}},{l:"lt-LT",t:{}},{l:"lv",t:{}},{l:"mk",t:{"a few seconds ago":{v:["пред неколку секунди"]},"sec. ago":{v:["секунда"]},"seconds ago":{v:["секунди"]}}},{l:"my",t:{}},{l:"nb",t:{"a few seconds ago":{v:["noen få sekunder siden"]},"sec. ago":{v:["sek. siden"]},"seconds ago":{v:["sekunder siden"]}}},{l:"nl",t:{"a few seconds ago":{v:["enkele seconden geleden"]},"sec. ago":{v:["sec. geleden"]},"seconds ago":{v:["seconden geleden"]}}},{l:"oc",t:{}},{l:"pl",t:{"a few seconds ago":{v:["kilka sekund temu"]},"sec. ago":{v:["sek. temu"]},"seconds ago":{v:["sekund temu"]}}},{l:"pt-BR",t:{"a few seconds ago":{v:["há alguns segundos"]},"sec. ago":{v:["seg. atrás"]},"seconds ago":{v:["segundos atrás"]}}},{l:"pt-PT",t:{"a few seconds ago":{v:["há alguns segundos"]},"sec. ago":{v:["seg. atrás"]},"seconds ago":{v:["segundos atrás"]}}},{l:"ro",t:{"a few seconds ago":{v:["acum câteva secunde"]},"sec. ago":{v:["sec. în urmă"]},"seconds ago":{v:["secunde în urmă"]}}},{l:"ru",t:{"a few seconds ago":{v:["несколько секунд назад"]},"sec. ago":{v:["сек. назад"]},"seconds ago":{v:["секунд назад"]}}},{l:"sk",t:{"a few seconds ago":{v:["pred chvíľou"]},"sec. ago":{v:["pred pár sekundami"]},"seconds ago":{v:["pred sekundami"]}}},{l:"sl",t:{}},{l:"sr",t:{"a few seconds ago":{v:["пре неколико секунди"]},"sec. ago":{v:["сек. раније"]},"seconds ago":{v:["секунди раније"]}}},{l:"sv",t:{"a few seconds ago":{v:["några sekunder sedan"]},"sec. ago":{v:["sek. sedan"]},"seconds ago":{v:["sekunder sedan"]}}},{l:"tr",t:{"a few seconds ago":{v:["birkaç saniye önce"]},"sec. ago":{v:["sn. önce"]},"seconds ago":{v:["saniye önce"]}}},{l:"uk",t:{"a few seconds ago":{v:["декілька секунд тому"]},"sec. ago":{v:["с тому"]},"seconds ago":{v:["с тому"]}}},{l:"uz",t:{"a few seconds ago":{v:["bir necha soniya oldin"]},"sec. ago":{v:["sek. oldin"]},"seconds ago":{v:["soniyalar oldin"]}}},{l:"zh-CN",t:{"a few seconds ago":{v:["几秒前"]},"sec. ago":{v:["几秒前"]},"seconds ago":{v:["几秒前"]}}},{l:"zh-HK",t:{"a few seconds ago":{v:["幾秒前"]},"sec. ago":{v:["秒前"]},"seconds ago":{v:["秒前"]}}},{l:"zh-TW",t:{"a few seconds ago":{v:["幾秒前"]},"sec. ago":{v:["秒前"]},"seconds ago":{v:["秒前"]}}}],M=[{l:"ar",t:{Acapulco:{v:["بازلائي مطفي"]},"Blue Violet":{v:["بنفسجي مشعشع"]},"Boston Blue":{v:["سماوي مطفي"]},Deluge:{v:["بنفسجي مطفي"]},Feldspar:{v:["وردي صخري"]},Gold:{v:["ذهبي"]},Mariner:{v:["أزرق بحري"]},"Nextcloud blue":{v:["أزرق نكست كلاود"]},Olivine:{v:["زيتي"]},Purple:{v:["بنفسجي"]},"Rosy brown":{v:["بُنِّي زهري"]},Whiskey:{v:["نبيذي"]}}},{l:"ast",t:{Acapulco:{v:["Acapulcu"]},"Blue Violet":{v:["Viola azulao"]},"Boston Blue":{v:["Azul Boston"]},Deluge:{v:["Deluge"]},Feldspar:{v:["Feldspar"]},Gold:{v:["Oru"]},Mariner:{v:["Marineru"]},"Nextcloud blue":{v:["Nextcloud azul"]},Olivine:{v:["Olivina"]},Purple:{v:["Moráu"]},"Rosy brown":{v:["Marrón arrosao"]},Whiskey:{v:["Whiskey"]}}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{Acapulco:{v:["Akapulko"]},Black:{v:["Černá"]},"Blue Violet":{v:["Modrofialová"]},"Boston Blue":{v:["Bostonská modrá"]},Deluge:{v:["Deluge"]},Feldspar:{v:["Živicová"]},Gold:{v:["Zlatá"]},Mariner:{v:["Námořnická"]},"Nextcloud blue":{v:["Nextcloud modrá"]},Olivine:{v:["Olivínová"]},Purple:{v:["Fialová"]},"Rosy brown":{v:["Růžovohnědá"]},Whiskey:{v:["Whisky"]},White:{v:["Bílá"]}}},{l:"cs-CZ",t:{Acapulco:{v:["Akapulko"]},"Blue Violet":{v:["Modrofialová"]},"Boston Blue":{v:["Bostonská modrá"]},Deluge:{v:["Deluge"]},Feldspar:{v:["Živicová"]},Gold:{v:["Zlatá"]},Mariner:{v:["Námořnická"]},"Nextcloud blue":{v:["Nextcloud modrá"]},Olivine:{v:["Olivínová"]},Purple:{v:["Fialová"]},"Rosy brown":{v:["Růžovohnědá"]},Whiskey:{v:["Whisky"]}}},{l:"da",t:{Acapulco:{v:["Acapulco"]},Black:{v:["Sort"]},"Blue Violet":{v:["Blue Violet"]},"Boston Blue":{v:["Boston Blue"]},Deluge:{v:["Deluge"]},Feldspar:{v:["Feldspar"]},Gold:{v:["Guld"]},Mariner:{v:["Mariner"]},"Nextcloud blue":{v:["Nextcloud blue"]},Olivine:{v:["Olivine"]},Purple:{v:["Lilla"]},"Rosy brown":{v:["Rosy brown"]},Whiskey:{v:["Whiskey"]},White:{v:["Hvid"]}}},{l:"de",t:{Acapulco:{v:["Acapulco"]},Black:{v:["Schwarz"]},"Blue Violet":{v:["Blau Violett"]},"Boston Blue":{v:["Boston-Blau"]},Deluge:{v:["Sintflut"]},Feldspar:{v:["Feldspat"]},Gold:{v:["Gold"]},Mariner:{v:["Seemann"]},"Nextcloud blue":{v:["Nextcloud Blau"]},Olivine:{v:["Olivin"]},Purple:{v:["Lila"]},"Rosy brown":{v:["Rosiges Braun"]},Whiskey:{v:["Whiskey"]},White:{v:["Weiß"]}}},{l:"de-DE",t:{Acapulco:{v:["Acapulco"]},Black:{v:["Schwarz"]},"Blue Violet":{v:["Blau Violett"]},"Boston Blue":{v:["Boston-Blau"]},Deluge:{v:["Sintflut"]},Feldspar:{v:["Feldspat"]},Gold:{v:["Gold"]},Mariner:{v:["Seemann"]},"Nextcloud blue":{v:["Nextcloud Blau"]},Olivine:{v:["Olivin"]},Purple:{v:["Lila"]},"Rosy brown":{v:["Rosiges Braun"]},Whiskey:{v:["Whiskey"]},White:{v:["Weiß"]}}},{l:"el",t:{Acapulco:{v:["Ακαπούλκο"]},Black:{v:["Μαύρο"]},"Blue Violet":{v:["Μπλε Βιολέτ"]},"Boston Blue":{v:["Μπλε Βοστώνης"]},Deluge:{v:["Deluge"]},Feldspar:{v:["Feldspar"]},Gold:{v:["Χρυσό"]},Mariner:{v:["Mariner"]},"Nextcloud blue":{v:["Μπλε Nextcloud"]},Olivine:{v:["Olivine"]},Purple:{v:["Μωβ"]},"Rosy brown":{v:["Ροζ καφέ"]},Whiskey:{v:["Ουίσκι"]},White:{v:["Λευκό"]}}},{l:"en-GB",t:{Acapulco:{v:["Acapulco"]},Black:{v:["Black"]},"Blue Violet":{v:["Blue Violet"]},"Boston Blue":{v:["Boston Blue"]},Deluge:{v:["Deluge"]},Feldspar:{v:["Feldspar"]},Gold:{v:["Gold"]},Mariner:{v:["Mariner"]},"Nextcloud blue":{v:["Nextcloud blue"]},Olivine:{v:["Olivine"]},Purple:{v:["Purple"]},"Rosy brown":{v:["Rosy brown"]},Whiskey:{v:["Whiskey"]},White:{v:["White"]}}},{l:"eo",t:{}},{l:"es",t:{Acapulco:{v:["Acapulco"]},"Blue Violet":{v:["Violeta Azul"]},"Boston Blue":{v:["Azul Boston"]},Deluge:{v:["Diluvio"]},Feldspar:{v:["Feldespato"]},Gold:{v:["Oro"]},Mariner:{v:["Marinero"]},"Nextcloud blue":{v:["Azul Nextcloud"]},Olivine:{v:["Olivino"]},Purple:{v:["Púrpura"]},"Rosy brown":{v:["Marrón rosáceo"]},Whiskey:{v:["Whiskey"]}}},{l:"es-AR",t:{Acapulco:{v:["Acapulco"]},"Blue Violet":{v:["Violeta Azul"]},"Boston Blue":{v:["Azul Boston"]},Deluge:{v:["Diluvio"]},Feldspar:{v:["Feldespato"]},Gold:{v:["Oro"]},Mariner:{v:["Marinero"]},"Nextcloud blue":{v:["Azul Nextcloud"]},Olivine:{v:["Olivino"]},Purple:{v:["Púrpura"]},"Rosy brown":{v:["Marrón rosáceo"]},Whiskey:{v:["Whiskey"]}}},{l:"es-EC",t:{}},{l:"es-MX",t:{Acapulco:{v:["Acapulco"]},"Blue Violet":{v:["Violeta Azul"]},"Boston Blue":{v:["Azul Boston"]},Deluge:{v:["Diluvio"]},Feldspar:{v:["Feldespato"]},Gold:{v:["Oro"]},Mariner:{v:["Marinero"]},"Nextcloud blue":{v:["Azul Nextcloud"]},Olivine:{v:["Olivino"]},Purple:{v:["Púrpura"]},"Rosy brown":{v:["Marrón rosáceo"]},Whiskey:{v:["Whiskey"]}}},{l:"et-EE",t:{Acapulco:{v:["Acapulco meresinine"]},Black:{v:["Must"]},"Blue Violet":{v:["Sinakasvioletne"]},"Boston Blue":{v:["Bostoni rohekassinine"]},Deluge:{v:["Tulvavee lilla"]},Feldspar:{v:["Põlevkivipruun"]},Gold:{v:["Kuldne"]},Mariner:{v:["Meresinine"]},"Nextcloud blue":{v:["Nextcloudi sinine"]},Olivine:{v:["Oliiviroheline"]},Purple:{v:["Purpurpunane"]},"Rosy brown":{v:["Roosikarva pruun"]},Whiskey:{v:["Viskikarva kollakaspruun"]},White:{v:["Valge"]}}},{l:"eu",t:{}},{l:"fa",t:{Acapulco:{v:["آکاپولکو"]},"Blue Violet":{v:["بنفش آبی"]},"Boston Blue":{v:["آبی بوستونی"]},Deluge:{v:["سیل"]},Feldspar:{v:["فلدسپات"]},Gold:{v:["طلا"]},Mariner:{v:["مارینر"]},"Nextcloud blue":{v:["نکس کلود آبی"]},Olivine:{v:["الیوین"]},Purple:{v:["بنفش"]},"Rosy brown":{v:["قهوه‌ای رز"]},Whiskey:{v:["ویسکی"]}}},{l:"fi",t:{Acapulco:{v:["Acapulco"]},"Blue Violet":{v:["Sinivioletti"]},"Boston Blue":{v:["Bostoninsininen"]},Deluge:{v:["Tulva"]},Feldspar:{v:["Feldspar"]},Gold:{v:["Kulta"]},Mariner:{v:["Merenkulkija"]},"Nextcloud blue":{v:["Nextcloudin sininen"]},Olivine:{v:["Oliviini"]},Purple:{v:["Purppura"]},"Rosy brown":{v:["Ruusunruskea"]},Whiskey:{v:["Viski"]}}},{l:"fr",t:{Acapulco:{v:["Acapulco"]},"Blue Violet":{v:["Bleu violet"]},"Boston Blue":{v:["Bleu de Boston"]},Deluge:{v:["Deluge"]},Feldspar:{v:["Feldspar"]},Gold:{v:["Doré"]},Mariner:{v:["Marin"]},"Nextcloud blue":{v:["Bleu Nextcloud"]},Olivine:{v:["Olivine"]},Purple:{v:["Violet"]},"Rosy brown":{v:["Brun rosé"]},Whiskey:{v:["Whiskey"]}}},{l:"ga",t:{Acapulco:{v:["Acapulco"]},Black:{v:["Dubh"]},"Blue Violet":{v:["Gorm Violet"]},"Boston Blue":{v:["Bostún Gorm"]},Deluge:{v:["Díle"]},Feldspar:{v:["Feldspar"]},Gold:{v:["Óir"]},Mariner:{v:["Mairnéalach"]},"Nextcloud blue":{v:["Nextcloud gorm"]},Olivine:{v:["Olaivín"]},Purple:{v:["Corcra"]},"Rosy brown":{v:["Rosach donn"]},Whiskey:{v:["Fuisce"]},White:{v:["Bán"]}}},{l:"gl",t:{Acapulco:{v:["Acapulco"]},Black:{v:["Negro"]},"Blue Violet":{v:["Azul violeta"]},"Boston Blue":{v:["Azul Boston"]},Deluge:{v:["Dioivo"]},Feldspar:{v:["Feldespato"]},Gold:{v:["Ouro"]},Mariner:{v:["Marino"]},"Nextcloud blue":{v:["Azul Nextcloud"]},Olivine:{v:["Olivina"]},Purple:{v:["Púrpura"]},"Rosy brown":{v:["Pardo rosado"]},Whiskey:{v:["Whisky"]},White:{v:["Branco"]}}},{l:"he",t:{}},{l:"hu",t:{}},{l:"id",t:{Gold:{v:["Emas"]},"Nextcloud blue":{v:["Biru Nextcloud"]},Purple:{v:["Ungu"]}}},{l:"is",t:{Acapulco:{v:["Acapulco"]},"Blue Violet":{v:["Bláklukka"]},"Boston Blue":{v:["Bostonblátt"]},Deluge:{v:["Fjólublátt"]},Feldspar:{v:["Feldspat"]},Gold:{v:["Gull"]},Mariner:{v:["Sjóarablátt"]},"Nextcloud blue":{v:["Nextcloud blátt"]},Olivine:{v:["Ólivín"]},Purple:{v:["Purpurablátt"]},"Rosy brown":{v:["Rósabrúnt"]},Whiskey:{v:["Viský"]}}},{l:"it",t:{Gold:{v:["Oro"]},"Nextcloud blue":{v:["Nextcloud blue"]},Purple:{v:["Viola"]}}},{l:"ja",t:{Acapulco:{v:["アカプルコ"]},Black:{v:["黒"]},"Blue Violet":{v:["ブルーバイオレット"]},"Boston Blue":{v:["ボストンブルー"]},Deluge:{v:["豪雨"]},Feldspar:{v:["長石"]},Gold:{v:["黄金"]},Mariner:{v:["船乗り"]},"Nextcloud blue":{v:["ネクストクラウド・ブルー"]},Olivine:{v:["カンラン石"]},Purple:{v:["紫色"]},"Rosy brown":{v:["バラ色"]},Whiskey:{v:["ウイスキー"]},White:{v:["白"]}}},{l:"ja-JP",t:{Acapulco:{v:["アカプルコ"]},"Blue Violet":{v:["ブルーバイオレット"]},"Boston Blue":{v:["ボストンブルー"]},Deluge:{v:["豪雨"]},Feldspar:{v:["長石"]},Gold:{v:["黄金"]},Mariner:{v:["船乗り"]},"Nextcloud blue":{v:["ネクストクラウド・ブルー"]},Olivine:{v:["カンラン石"]},Purple:{v:["紫色"]},"Rosy brown":{v:["バラ色"]},Whiskey:{v:["ウイスキー"]}}},{l:"ko",t:{Acapulco:{v:["아카풀코"]},"Blue Violet":{v:["푸른 보라"]},"Boston Blue":{v:["보스턴 블루"]},Deluge:{v:["폭우"]},Feldspar:{v:["장석"]},Gold:{v:["금"]},Mariner:{v:["뱃사람"]},"Nextcloud blue":{v:["Nextcloud 파랑"]},Olivine:{v:["감람석"]},Purple:{v:["보라"]},"Rosy brown":{v:["로지 브라운"]},Whiskey:{v:["위스키"]}}},{l:"lo",t:{Acapulco:{v:["Acapulco"]},Black:{v:["ສີດຳ"]},"Blue Violet":{v:["Blue Violet"]},"Boston Blue":{v:["Boston Blue"]},Deluge:{v:["Deluge"]},Feldspar:{v:["Feldspar"]},Gold:{v:["ສີຄຳ"]},Mariner:{v:["Mariner"]},"Nextcloud blue":{v:["ສີຟ້າ Nextcloud"]},Olivine:{v:["Olivine"]},Purple:{v:["ສີມ່ວງ"]},"Rosy brown":{v:["Rosy brown"]},Whiskey:{v:["Whiskey"]},White:{v:["ສີຂາວ"]}}},{l:"lt-LT",t:{}},{l:"lv",t:{}},{l:"mk",t:{Acapulco:{v:["Акапулко"]},Black:{v:["Црно"]},"Blue Violet":{v:["Сино Виолетова"]},"Boston Blue":{v:["Бостон Сина"]},Deluge:{v:["Делуџ"]},Feldspar:{v:["Фелдспар"]},Gold:{v:["Златна"]},Mariner:{v:["Маринер"]},"Nextcloud blue":{v:["Nextcloud сина"]},Olivine:{v:["Оливин"]},Purple:{v:["Виолетова"]},"Rosy brown":{v:["Розево-кафеава"]},Whiskey:{v:["Виски"]},White:{v:["Бела"]}}},{l:"my",t:{}},{l:"nb",t:{Acapulco:{v:["Acapulco"]},"Blue Violet":{v:["Blå fiolett"]},"Boston Blue":{v:["Boston blå"]},Deluge:{v:["Syndflod"]},Feldspar:{v:["Feltspat"]},Gold:{v:["Gull"]},Mariner:{v:["Mariner"]},"Nextcloud blue":{v:["Nextcloud-blå"]},Olivine:{v:["Olivin"]},Purple:{v:["Lilla"]},"Rosy brown":{v:["Rosenrød brun"]},Whiskey:{v:["Whiskey"]}}},{l:"nl",t:{Acapulco:{v:["Acapulco"]},Black:{v:["Zwart"]},"Blue Violet":{v:["Blauw Paars"]},"Boston Blue":{v:["Boston Blauw"]},Deluge:{v:["Overlopen"]},Feldspar:{v:["Veldspaat"]},Gold:{v:["Goud"]},Mariner:{v:["Marineblauw"]},"Nextcloud blue":{v:["Nextcloud blauw"]},Olivine:{v:["Olivijn"]},Purple:{v:["Paars"]},"Rosy brown":{v:["Rozig bruin"]},Whiskey:{v:["Whiskey"]},White:{v:["Wit"]}}},{l:"oc",t:{}},{l:"pl",t:{Acapulco:{v:["Acapulco"]},"Blue Violet":{v:["Niebieski fiolet"]},"Boston Blue":{v:["Błękit Bostonu"]},Deluge:{v:["Potop"]},Feldspar:{v:["Skaleń"]},Gold:{v:["Złote"]},Mariner:{v:["Marynarz"]},"Nextcloud blue":{v:["Niebieskie Nextcloud"]},Olivine:{v:["Oliwin"]},Purple:{v:["Fioletowy"]},"Rosy brown":{v:["Różowy brąz"]},Whiskey:{v:["Whisky"]}}},{l:"pt-BR",t:{Acapulco:{v:["Acapulco"]},Black:{v:["Preto"]},"Blue Violet":{v:["Violeta Azul"]},"Boston Blue":{v:["Azul Boston"]},Deluge:{v:["Deluge"]},Feldspar:{v:["Feldspato"]},Gold:{v:["Ouro"]},Mariner:{v:["Marinheiro"]},"Nextcloud blue":{v:["Azul Nextcloud"]},Olivine:{v:["Olivina"]},Purple:{v:["Roxo"]},"Rosy brown":{v:["Castanho rosado"]},Whiskey:{v:["Uísque"]},White:{v:["Branco"]}}},{l:"pt-PT",t:{Acapulco:{v:["Acapulco"]},"Blue Violet":{v:["Azul violeta"]},"Boston Blue":{v:["Azul Boston"]},Deluge:{v:["Deluge"]},Feldspar:{v:["Feldspar"]},Gold:{v:["Ouro"]},Mariner:{v:["Mariner"]},"Nextcloud blue":{v:["Nextcloud azul"]},Olivine:{v:["Olivine"]},Purple:{v:["Púrpura"]},"Rosy brown":{v:["Castanho rosado"]},Whiskey:{v:["Whiskey"]}}},{l:"ro",t:{Gold:{v:["Aur"]},"Nextcloud blue":{v:["Nextcloud albastru"]},Purple:{v:["Purpuriu"]}}},{l:"ru",t:{Acapulco:{v:["Акапулько"]},"Blue Violet":{v:["Синий фиолет"]},"Boston Blue":{v:["Синий Бостон"]},Deluge:{v:["Перламутрово-фиолетовый"]},Feldspar:{v:["Античная латунь"]},Gold:{v:["Золотой"]},Mariner:{v:["Морской"]},"Nextcloud blue":{v:["Nextcloud голубой"]},Olivine:{v:[" Оливковый"]},Purple:{v:["Фиолетовый"]},"Rosy brown":{v:["Розово-коричневый"]},Whiskey:{v:["Виски"]}}},{l:"sk",t:{Acapulco:{v:["Acapulco"]},"Blue Violet":{v:["Modro fialová"]},"Boston Blue":{v:["Bostonská modrá"]},Deluge:{v:["Deluge"]},Feldspar:{v:["Živec"]},Gold:{v:["Zlatá"]},Mariner:{v:["Námorník"]},"Nextcloud blue":{v:["Nextcloud modrá"]},Olivine:{v:["Olivová"]},Purple:{v:["Fialová"]},"Rosy brown":{v:["Ružovo hnedá"]},Whiskey:{v:["Whisky"]}}},{l:"sl",t:{}},{l:"sr",t:{Acapulco:{v:["Акапулко"]},Black:{v:["Црно"]},"Blue Violet":{v:["Плаво љубичаста"]},"Boston Blue":{v:["Бостон плава"]},Deluge:{v:["Поплава"]},Feldspar:{v:["Фелдспар"]},Gold:{v:["Злато"]},Mariner:{v:["Морнар"]},"Nextcloud blue":{v:["Nextcloud плава"]},Olivine:{v:["Маслинаста"]},Purple:{v:["Пурпурна"]},"Rosy brown":{v:["Роси браон"]},Whiskey:{v:["Виски"]},White:{v:["Бело"]}}},{l:"sv",t:{Acapulco:{v:["Acapulco"]},"Blue Violet":{v:["Blåviolett"]},"Boston Blue":{v:["Bostonblå"]},Deluge:{v:["Skyfallsblå"]},Feldspar:{v:["Feldspat"]},Gold:{v:["Guld"]},Mariner:{v:["Marinblå"]},"Nextcloud blue":{v:["Nextcloud-blå"]},Olivine:{v:["Olivin"]},Purple:{v:["Lila"]},"Rosy brown":{v:["Rosabrun"]},Whiskey:{v:["Whisky"]}}},{l:"tr",t:{Acapulco:{v:["Akapulko"]},Black:{v:["Siyah"]},"Blue Violet":{v:["Mavi mor"]},"Boston Blue":{v:["Boston mavisi"]},Deluge:{v:["Sel"]},Feldspar:{v:["Feldispat"]},Gold:{v:["Altın"]},Mariner:{v:["Denizci"]},"Nextcloud blue":{v:["Nextcloud mavi"]},Olivine:{v:["Zeytinlik"]},Purple:{v:["Mor"]},"Rosy brown":{v:["Kırmızımsı kahverengi"]},Whiskey:{v:["Viski"]},White:{v:["Beyaz"]}}},{l:"uk",t:{Acapulco:{v:["Акапулько"]},"Blue Violet":{v:["Блакитна фіалка"]},"Boston Blue":{v:["Бостонський синій"]},Deluge:{v:["Злива"]},Feldspar:{v:["Польові шпати"]},Gold:{v:["Золотий"]},Mariner:{v:["Морський"]},"Nextcloud blue":{v:["Блакитний Nextcloud"]},Olivine:{v:["Олива"]},Purple:{v:["Фіолетовий"]},"Rosy brown":{v:["Темно-рожевий"]},Whiskey:{v:["Кола"]}}},{l:"uz",t:{Acapulco:{v:["Akapulko"]},Black:{v:["Qora"]},"Blue Violet":{v:["Moviy binafsha"]},"Boston Blue":{v:["Boston ko'k"]},Deluge:{v:["To'fon"]},Feldspar:{v:["Feldspar"]},Gold:{v:["Oltin"]},Mariner:{v:["Dengizchi"]},"Nextcloud blue":{v:["Ko'k Nextcloud "]},Olivine:{v:["Olivine"]},Purple:{v:["Binafsha"]},"Rosy brown":{v:["Qizil jigarrang"]},Whiskey:{v:["Whiskey"]},White:{v:["Oq"]}}},{l:"zh-CN",t:{Acapulco:{v:["Acapulco"]},"Blue Violet":{v:["瓦罗兰特蓝"]},"Boston Blue":{v:["波士顿蓝"]},Deluge:{v:["洪水色"]},Feldspar:{v:["长石"]},Gold:{v:["金色"]},Mariner:{v:["水手"]},"Nextcloud blue":{v:["Nextcloud 蓝"]},Olivine:{v:["橄榄石色"]},Purple:{v:["紫色"]},"Rosy brown":{v:["玫瑰棕色"]},Whiskey:{v:["威士忌"]}}},{l:"zh-HK",t:{Acapulco:{v:["阿卡普爾科"]},Black:{v:["黑色"]},"Blue Violet":{v:["藍紫色"]},"Boston Blue":{v:["波士頓藍"]},Deluge:{v:["大洪水"]},Feldspar:{v:["長石"]},Gold:{v:["Gold"]},Mariner:{v:["海軍藍"]},"Nextcloud blue":{v:["Nextcloud 藍色"]},Olivine:{v:["橄欖石色"]},Purple:{v:["紫色"]},"Rosy brown":{v:["玫瑰棕色"]},Whiskey:{v:["威士忌"]},White:{v:["白色"]}}},{l:"zh-TW",t:{Acapulco:{v:["Acapulco"]},"Blue Violet":{v:["藍紫色"]},"Boston Blue":{v:["波士頓藍"]},Deluge:{v:["Deluge"]},Feldspar:{v:["長石"]},Gold:{v:["金色"]},Mariner:{v:["海軍藍"]},"Nextcloud blue":{v:["Nextcloud 藍色"]},Olivine:{v:["橄欖石色"]},Purple:{v:["紫色"]},"Rosy brown":{v:["玫瑰棕色"]},Whiskey:{v:["威士忌"]}}}],R=[{l:"ar",t:{Actions:{v:["إجراءات"]}}},{l:"ast",t:{Actions:{v:["Aiciones"]}}},{l:"br",t:{Actions:{v:["Oberioù"]}}},{l:"ca",t:{Actions:{v:["Accions"]}}},{l:"cs",t:{Actions:{v:["Akce"]}}},{l:"cs-CZ",t:{Actions:{v:["Akce"]}}},{l:"da",t:{Actions:{v:["Handlinger"]}}},{l:"de",t:{Actions:{v:["Aktionen"]}}},{l:"de-DE",t:{Actions:{v:["Aktionen"]}}},{l:"el",t:{Actions:{v:["Ενέργειες"]}}},{l:"en-GB",t:{Actions:{v:["Actions"]}}},{l:"eo",t:{Actions:{v:["Agoj"]}}},{l:"es",t:{Actions:{v:["Acciones"]}}},{l:"es-AR",t:{Actions:{v:["Acciones"]}}},{l:"es-EC",t:{Actions:{v:["Acciones"]}}},{l:"es-MX",t:{Actions:{v:["Acciones"]}}},{l:"et-EE",t:{Actions:{v:["Tegevus"]}}},{l:"eu",t:{Actions:{v:["Ekintzak"]}}},{l:"fa",t:{Actions:{v:["کنش‌ها"]}}},{l:"fi",t:{Actions:{v:["Toiminnot"]}}},{l:"fr",t:{Actions:{v:["Actions"]}}},{l:"ga",t:{Actions:{v:["Gníomhartha"]}}},{l:"gl",t:{Actions:{v:["Accións"]}}},{l:"he",t:{Actions:{v:["פעולות"]}}},{l:"hu",t:{Actions:{v:["Műveletek"]}}},{l:"id",t:{Actions:{v:["Tindakan"]}}},{l:"is",t:{Actions:{v:["Aðgerðir"]}}},{l:"it",t:{Actions:{v:["Azioni"]}}},{l:"ja",t:{Actions:{v:["操作"]}}},{l:"ja-JP",t:{Actions:{v:["操作"]}}},{l:"ko",t:{Actions:{v:["동작"]}}},{l:"lo",t:{Actions:{v:["ການກະທຳ"]}}},{l:"lt-LT",t:{Actions:{v:["Veiksmai"]}}},{l:"lv",t:{}},{l:"mk",t:{Actions:{v:["Акции"]}}},{l:"my",t:{Actions:{v:["လုပ်ဆောင်ချက်များ"]}}},{l:"nb",t:{Actions:{v:["Handlinger"]}}},{l:"nl",t:{Actions:{v:["Acties"]}}},{l:"oc",t:{Actions:{v:["Accions"]}}},{l:"pl",t:{Actions:{v:["Działania"]}}},{l:"pt-BR",t:{Actions:{v:["Ações"]}}},{l:"pt-PT",t:{Actions:{v:["Ações"]}}},{l:"ro",t:{Actions:{v:["Acțiuni"]}}},{l:"ru",t:{Actions:{v:["Действия "]}}},{l:"sk",t:{Actions:{v:["Akcie"]}}},{l:"sl",t:{Actions:{v:["Dejanja"]}}},{l:"sr",t:{Actions:{v:["Радње"]}}},{l:"sv",t:{Actions:{v:["Åtgärder"]}}},{l:"tr",t:{Actions:{v:["İşlemler"]}}},{l:"uk",t:{Actions:{v:["Дії"]}}},{l:"uz",t:{Actions:{v:["Harakatlar"]}}},{l:"zh-CN",t:{Actions:{v:["行为"]}}},{l:"zh-HK",t:{Actions:{v:["動作"]}}},{l:"zh-TW",t:{Actions:{v:["動作"]}}}],T=[{l:"ar",t:{Activities:{v:["سجل الأنشطة"]},"Animals & Nature":{v:["الحيوانات والطبيعة"]},Custom:{v:["مُخصَّص"]},"Dark skin tone":{v:["أسمر البُشرة"]},"Emoji picker":{v:["لاقط الإيموجي"]},Flags:{v:["الأعلام"]},"Food & Drink":{v:["الطعام والشراب"]},"Frequently used":{v:["شائعة الاستعمال"]},"Light skin tone":{v:["فاتح البُشرة"]},"Medium dark skin tone":{v:["بشرة متوسطة الاسمرار"]},"Medium light skin tone":{v:["بشرة متوسطة البياض"]},"Medium skin tone":{v:["بشرة وسطية اللون"]},"Neutral skin color":{v:["لون بُشرة طبيعي"]},Objects:{v:["أشياء"]},"People & Body":{v:["أشخاص و أجسام"]},"Pick an emoji":{v:["إختَر رمز إيموجي emoji"]},"Search emoji":{v:["البحث عن إيموجي emoji"]},"Search results":{v:["نتائج البحث"]},Selected:{v:["محدّدة"]},"Skin tone":{v:["لون البُشرة"]},"Smileys & Emotion":{v:["وجوهٌ ضاحكة و مشاعر"]},Symbols:{v:["رموز"]},"Travel & Places":{v:["سفر و أماكن"]}}},{l:"ast",t:{Activities:{v:["Actividaes"]},"Animals & Nature":{v:["Animales y natura"]},Custom:{v:["Personalizar"]},"Dark skin tone":{v:["Tonu d'aspeutu escuru"]},"Emoji picker":{v:["Selector de fustaxes"]},Flags:{v:["Banderes"]},"Food & Drink":{v:["Cómida y bébora"]},"Frequently used":{v:["D'usu frecuente"]},"Light skin tone":{v:["Tonu d'aspeutu claru"]},"Medium dark skin tone":{v:["Tonu d'aspeutu medio escuru"]},"Medium light skin tone":{v:["Tonu d'aspeutu medio claru"]},"Medium skin tone":{v:["Tonu d'aspeutu mediu"]},"Neutral skin color":{v:["Color d'aspeutu neutral"]},Objects:{v:["Oxetos"]},"People & Body":{v:["Persones y cuerpu"]},"Pick an emoji":{v:["Escueyi un fustaxe"]},"Search emoji":{v:["Buscar nos fustaxes"]},"Search results":{v:["Resultaos de la busca"]},Selected:{v:["Na seleición"]},"Skin tone":{v:["Tonu d'aspeutu"]},"Smileys & Emotion":{v:["Sorrises y emociones"]},Symbols:{v:["Símbolos"]},"Travel & Places":{v:["Viaxes y llugares"]}}},{l:"br",t:{Activities:{v:["Oberiantizoù"]},"Animals & Nature":{v:["Loened & Natur"]},Custom:{v:["Personelañ"]},Flags:{v:["Bannieloù"]},"Food & Drink":{v:["Boued & Evajoù"]},"Frequently used":{v:["Implijet alies"]},Objects:{v:["Traoù"]},"People & Body":{v:["Tud & Korf"]},"Pick an emoji":{v:["Choaz un emoji"]},"Search results":{v:["Disoc'hoù an enklask"]},"Smileys & Emotion":{v:["Smileyioù & Fromoù"]},Symbols:{v:["Arouezioù"]},"Travel & Places":{v:["Beaj & Lec'hioù"]}}},{l:"ca",t:{Activities:{v:["Activitats"]},"Animals & Nature":{v:["Animals i natura"]},Custom:{v:["Personalitzat"]},Flags:{v:["Marques"]},"Food & Drink":{v:["Menjar i begudes"]},"Frequently used":{v:["Utilitzats recentment"]},Objects:{v:["Objectes"]},"People & Body":{v:["Persones i cos"]},"Pick an emoji":{v:["Trieu un emoji"]},"Search results":{v:["Resultats de cerca"]},"Smileys & Emotion":{v:["Cares i emocions"]},Symbols:{v:["Símbols"]},"Travel & Places":{v:["Viatges i llocs"]}}},{l:"cs",t:{Activities:{v:["Aktivity"]},"Animals & Nature":{v:["Zvířata a příroda"]},Custom:{v:["Uživatelsky určené"]},"Dark skin tone":{v:["Tmavý tělový tón"]},"Emoji picker":{v:["Výběr emotikon"]},Flags:{v:["Příznaky"]},"Food & Drink":{v:["Jídlo a pití"]},"Frequently used":{v:["Často používané"]},"Light skin tone":{v:["Světlý tělový tón"]},"Medium dark skin tone":{v:["Středně tmavý tělový tón"]},"Medium light skin tone":{v:["Středně světlý tělový tón"]},"Medium skin tone":{v:["Střední tělový tón"]},"Neutral skin color":{v:["Neutrální tělová barva"]},Objects:{v:["Objekty"]},"People & Body":{v:["Lidé a tělo"]},"Pick an emoji":{v:["Vybrat emoji"]},"Search emoji":{v:["Hledat emoji"]},"Search results":{v:["Výsledky hledání"]},Selected:{v:["Vybráno"]},"Skin tone":{v:["Tělový tón"]},"Smileys & Emotion":{v:["Úsměvy a emoce"]},Symbols:{v:["Symboly"]},"Travel & Places":{v:["Cestování a místa"]}}},{l:"cs-CZ",t:{Activities:{v:["Aktivity"]},"Animals & Nature":{v:["Zvířata a příroda"]},Custom:{v:["Uživatelsky určené"]},"Dark skin tone":{v:["Tmavý tělový tón"]},"Emoji picker":{v:["Výběr emotikon"]},Flags:{v:["Příznaky"]},"Food & Drink":{v:["Jídlo a pití"]},"Frequently used":{v:["Často používané"]},"Light skin tone":{v:["Světlý tělový tón"]},"Medium dark skin tone":{v:["Středně tmavý tělový tón"]},"Medium light skin tone":{v:["Středně světlý tělový tón"]},"Medium skin tone":{v:["Střední tělový tón"]},"Neutral skin color":{v:["Neutřální tělová barva"]},Objects:{v:["Objekty"]},"People & Body":{v:["Lidé a tělo"]},"Pick an emoji":{v:["Vybrat emoji"]},"Search emoji":{v:["Hledat emoji"]},"Search results":{v:["Výsledky hledání"]},Selected:{v:["Vybráno"]},"Skin tone":{v:["Tělový tón"]},"Smileys & Emotion":{v:["Úsměvy a emoce"]},Symbols:{v:["Symboly"]},"Travel & Places":{v:["Cestování a místa"]}}},{l:"da",t:{Activities:{v:["Aktiviteter"]},"Animals & Nature":{v:["Dyr & Natur"]},Custom:{v:["Brugerdefineret"]},"Dark skin tone":{v:["Mørk skin tone"]},"Emoji picker":{v:["Emoji vælger"]},Flags:{v:["Flag"]},"Food & Drink":{v:["Mad & Drikke"]},"Frequently used":{v:["Ofte brugt"]},"Light skin tone":{v:["Lys skin tone"]},"Medium dark skin tone":{v:["Medium mørk skin tone"]},"Medium light skin tone":{v:["Medium lys skin tone"]},"Medium skin tone":{v:["Medium skin tone"]},"Neutral skin color":{v:["Neutral skin color"]},Objects:{v:["Objekter"]},"People & Body":{v:["Mennesker & Menneskekroppen"]},"Pick an emoji":{v:["Vælg en emoji"]},"Search emoji":{v:["Søg emoji"]},"Search results":{v:["Søgeresultater"]},Selected:{v:["Valgt"]},"Skin tone":{v:["Skin tone"]},"Smileys & Emotion":{v:["Smileys & Emotion"]},Symbols:{v:["Symboler"]},"Travel & Places":{v:["Rejser & Rejsemål"]}}},{l:"de",t:{Activities:{v:["Aktivitäten"]},"Animals & Nature":{v:["Tiere & Natur"]},Custom:{v:["Benutzerdefiniert"]},"Dark skin tone":{v:["Dunkler Hautfarbton"]},"Emoji picker":{v:["Emoji-Auswahl"]},Flags:{v:["Flaggen"]},"Food & Drink":{v:["Essen & Trinken"]},"Frequently used":{v:["Häufig verwendet"]},"Light skin tone":{v:["Heller Hautfarbton"]},"Medium dark skin tone":{v:["Mitteldunkler Hautfarbton"]},"Medium light skin tone":{v:["Mittelheller Hautfarbton"]},"Medium skin tone":{v:["Mittlerer Hautfarbton"]},"Neutral skin color":{v:["Neutraler Hautfarbton"]},Objects:{v:["Objekte"]},"People & Body":{v:["Menschen & Körper"]},"Pick an emoji":{v:["Ein Emoji auswählen"]},"Search emoji":{v:["Emoji suchen"]},"Search results":{v:["Suchergebnisse"]},Selected:{v:["Ausgewählt"]},"Skin tone":{v:["Hautfarbton"]},"Smileys & Emotion":{v:["Smileys & Emotionen"]},Symbols:{v:["Symbole"]},"Travel & Places":{v:["Reisen & Orte"]}}},{l:"de-DE",t:{Activities:{v:["Aktivitäten"]},"Animals & Nature":{v:["Tiere & Natur"]},Custom:{v:["Benutzerdefiniert"]},"Dark skin tone":{v:["Dunkler Hautfarbton"]},"Emoji picker":{v:["Emoji-Auswahl"]},Flags:{v:["Flaggen"]},"Food & Drink":{v:["Essen & Trinken"]},"Frequently used":{v:["Häufig verwendet"]},"Light skin tone":{v:["Heller Hautfarbton"]},"Medium dark skin tone":{v:["Mitteldunkler Hautfarbton"]},"Medium light skin tone":{v:["Mittelheller Hautfarbton"]},"Medium skin tone":{v:["Mittlerer Hautfarbton"]},"Neutral skin color":{v:["Neutraler Hautfarbton"]},Objects:{v:["Objekte"]},"People & Body":{v:["Menschen & Körper"]},"Pick an emoji":{v:["Ein Emoji auswählen"]},"Search emoji":{v:["Emoji suchen"]},"Search results":{v:["Suchergebnisse"]},Selected:{v:["Ausgewählt"]},"Skin tone":{v:["Hautfarbton"]},"Smileys & Emotion":{v:["Smileys & Emotionen"]},Symbols:{v:["Symbole"]},"Travel & Places":{v:["Reisen & Orte"]}}},{l:"el",t:{Activities:{v:["Δραστηριότητες"]},"Animals & Nature":{v:["Ζώα & Φύση"]},Custom:{v:["Προσαρμογή"]},"Dark skin tone":{v:["Σκούρο θέμα"]},"Emoji picker":{v:["Επιλογέας emoji"]},Flags:{v:["Σημαίες"]},"Food & Drink":{v:["Φαγητό & Ποτό"]},"Frequently used":{v:["Συχνά χρησιμοποιούμενο"]},"Light skin tone":{v:["Ανοιχτό θέμα"]},"Medium dark skin tone":{v:["Μέτριο σκούρο θέμα"]},"Medium light skin tone":{v:["Μέτριο ανοιχτό θέμα"]},"Medium skin tone":{v:["Μέτριος τόνος θέματος"]},"Neutral skin color":{v:["Ουδέτερο χρώμα θέματος"]},Objects:{v:["Αντικείμενα"]},"People & Body":{v:["Άνθρωποι & Σώμα"]},"Pick an emoji":{v:["Επιλέξτε ένα emoji"]},"Search emoji":{v:["Αναζήτηση emoji"]},"Search results":{v:["Αποτελέσματα αναζήτησης"]},Selected:{v:["Επιλεγμένο"]},"Skin tone":{v:["Τόνος δέρματος"]},"Smileys & Emotion":{v:["Φατσούλες & Συναίσθημα"]},Symbols:{v:["Σύμβολα"]},"Travel & Places":{v:["Ταξίδια & Τοποθεσίες"]}}},{l:"en-GB",t:{Activities:{v:["Activities"]},"Animals & Nature":{v:["Animals & Nature"]},Custom:{v:["Custom"]},"Dark skin tone":{v:["Dark skin tone"]},"Emoji picker":{v:["Emoji picker"]},Flags:{v:["Flags"]},"Food & Drink":{v:["Food & Drink"]},"Frequently used":{v:["Frequently used"]},"Light skin tone":{v:["Light skin tone"]},"Medium dark skin tone":{v:["Medium dark skin tone"]},"Medium light skin tone":{v:["Medium light skin tone"]},"Medium skin tone":{v:["Medium skin tone"]},"Neutral skin color":{v:["Neutral skin colour"]},Objects:{v:["Objects"]},"People & Body":{v:["People & Body"]},"Pick an emoji":{v:["Pick an emoji"]},"Search emoji":{v:["Search emoji"]},"Search results":{v:["Search results"]},Selected:{v:["Selected"]},"Skin tone":{v:["Skin tone"]},"Smileys & Emotion":{v:["Smileys & Emotion"]},Symbols:{v:["Symbols"]},"Travel & Places":{v:["Travel & Places"]}}},{l:"eo",t:{Activities:{v:["Aktiveco"]},"Animals & Nature":{v:["Bestoj & Naturo"]},Custom:{v:["Propra"]},Flags:{v:["Flagoj"]},"Food & Drink":{v:["Manĝaĵo & Trinkaĵo"]},"Frequently used":{v:["Ofte uzataj"]},Objects:{v:["Objektoj"]},"People & Body":{v:["Homoj & Korpo"]},"Pick an emoji":{v:["Elekti emoĝion "]},"Search results":{v:["Serĉrezultoj"]},"Smileys & Emotion":{v:["Ridoj kaj Emocioj"]},Symbols:{v:["Signoj"]},"Travel & Places":{v:["Vojaĵoj & Lokoj"]}}},{l:"es",t:{Activities:{v:["Actividades"]},"Animals & Nature":{v:["Animales y naturaleza"]},Custom:{v:["Personalizado"]},"Dark skin tone":{v:["Tono de piel obscuro"]},"Emoji picker":{v:["Selector de emojis"]},Flags:{v:["Banderas"]},"Food & Drink":{v:["Comida y bebida"]},"Frequently used":{v:["Usado con frecuencia"]},"Light skin tone":{v:["Tono de piel claro"]},"Medium dark skin tone":{v:["Tono de piel medio oscuro"]},"Medium light skin tone":{v:["Tono de piel medio claro"]},"Medium skin tone":{v:["Tono de piel medio"]},"Neutral skin color":{v:["Color de piel neutral"]},Objects:{v:["Objetos"]},"People & Body":{v:["Personas y Cuerpo"]},"Pick an emoji":{v:["Elegir un emoji"]},"Search emoji":{v:["Buscar emoji"]},"Search results":{v:["Resultados de la búsqueda"]},Selected:{v:["Seleccionado"]},"Skin tone":{v:["Tono de piel"]},"Smileys & Emotion":{v:["Smileys y emoticonos"]},Symbols:{v:["Símbolos"]},"Travel & Places":{v:["Viajes y lugares"]}}},{l:"es-AR",t:{Activities:{v:["Actividades"]},"Animals & Nature":{v:["Animales y Naturaleza"]},Custom:{v:["Personalizado"]},"Dark skin tone":{v:["Tono de piel oscuro"]},"Emoji picker":{v:["Selector de emojis"]},Flags:{v:["Marcas"]},"Food & Drink":{v:["Comida y Bebida"]},"Frequently used":{v:["Usados frecuentemente"]},"Light skin tone":{v:["Tono de piel claro"]},"Medium dark skin tone":{v:["Tono de piel medio oscuro"]},"Medium light skin tone":{v:["Tono de piel medio claro"]},"Medium skin tone":{v:["Tono de piel medio"]},"Neutral skin color":{v:["Color de piel neutral"]},Objects:{v:["Objetos"]},"People & Body":{v:["Personas y Cuerpo"]},"Pick an emoji":{v:["Elija un emoji"]},"Search emoji":{v:["Buscar emoji"]},"Search results":{v:["Resultados de la búsqueda"]},Selected:{v:["Seleccionado"]},"Skin tone":{v:["Tono de piel"]},"Smileys & Emotion":{v:["Caritas y Emociones"]},Symbols:{v:["Símbolos"]},"Travel & Places":{v:["Viajes y Lugares"]}}},{l:"es-EC",t:{Activities:{v:["Actividades"]},"Animals & Nature":{v:["Animales y Naturaleza"]},Custom:{v:["Personalizado"]},Flags:{v:["Marcas"]},"Food & Drink":{v:["Comida y Bebida"]},"Frequently used":{v:["Frecuentemente utilizado"]},Objects:{v:["Objetos"]},"People & Body":{v:["Personas y Cuerpo"]},"Pick an emoji":{v:["Seleccionar un emoji"]},"Search emoji":{v:["Buscar emoji"]},"Search results":{v:["Resultados de búsqueda"]},"Smileys & Emotion":{v:["Caritas y Emociones"]},Symbols:{v:["Símbolos"]},"Travel & Places":{v:["Viajes y Lugares"]}}},{l:"es-MX",t:{Activities:{v:["Actividades"]},"Animals & Nature":{v:["Animales y naturaleza"]},Custom:{v:["Personalizado"]},"Dark skin tone":{v:["Tono de piel oscuro"]},"Emoji picker":{v:["Selector de emojis"]},Flags:{v:["Banderas"]},"Food & Drink":{v:["Comida y Bebida"]},"Frequently used":{v:["Usado frecuentemente"]},"Light skin tone":{v:["Tono de piel claro"]},"Medium dark skin tone":{v:["Tono de piel medio oscuro"]},"Medium light skin tone":{v:["Tono de piel medio claro"]},"Medium skin tone":{v:["Tono de piel medio"]},"Neutral skin color":{v:["Color de piel neutral"]},Objects:{v:["Objetos"]},"People & Body":{v:["Personas y cuerpos"]},"Pick an emoji":{v:["Seleccionar un emoji"]},"Search emoji":{v:["Buscar emoji"]},"Search results":{v:["Resultados de la búsqueda"]},Selected:{v:["Seleccionado"]},"Skin tone":{v:["Tono de piel"]},"Smileys & Emotion":{v:["Caritas y Emociones"]},Symbols:{v:["Símbolos"]},"Travel & Places":{v:["Viajes y lugares"]}}},{l:"et-EE",t:{Activities:{v:["Tegevused"]},"Animals & Nature":{v:["Loomad ja loodus"]},Custom:{v:["Kohanda"]},"Dark skin tone":{v:["Kesta tume toon"]},"Emoji picker":{v:["Emojide valija"]},Flags:{v:["Lipud"]},"Food & Drink":{v:["Söök ja jook"]},"Frequently used":{v:["Sageli kasutatud"]},"Light skin tone":{v:["Kesta hele toon"]},"Medium dark skin tone":{v:["Kesta keskmiselt tume toon"]},"Medium light skin tone":{v:["Kesta keskmiselt hele toon"]},"Medium skin tone":{v:["Kesta keskmine toon"]},"Neutral skin color":{v:["Kesta neutraalne toon"]},Objects:{v:["Objektid"]},"People & Body":{v:["Inimesed ja keha"]},"Pick an emoji":{v:["Vali emoji"]},"Search emoji":{v:["Otsi emojit"]},"Search results":{v:["Otsi tulemustest"]},Selected:{v:["Valitud"]},"Skin tone":{v:["Kesta toon"]},"Smileys & Emotion":{v:["Smailid ja emotsioonid"]},Symbols:{v:["Sümbolid"]},"Travel & Places":{v:["Reisimine ja kohad"]}}},{l:"eu",t:{Activities:{v:["Jarduerak"]},"Animals & Nature":{v:["Animaliak eta Natura"]},Custom:{v:["Pertsonalizatua"]},Flags:{v:["Banderak"]},"Food & Drink":{v:["Janaria eta edariak"]},"Frequently used":{v:["Askotan erabilia"]},Objects:{v:["Objektuak"]},"People & Body":{v:["Jendea eta gorputza"]},"Pick an emoji":{v:["Hautatu emoji bat"]},"Search emoji":{v:["Bilatu emojiak"]},"Search results":{v:["Bilaketa emaitzak"]},Selected:{v:["Hautatuta"]},"Smileys & Emotion":{v:["Smileyak eta emozioa"]},Symbols:{v:["Sinboloak"]},"Travel & Places":{v:["Bidaiak eta lekuak"]}}},{l:"fa",t:{Activities:{v:["فعالیت‌ها"]},"Animals & Nature":{v:["حیوانات و طبیعت"]},Custom:{v:["سفارشی"]},"Dark skin tone":{v:["رنگ پوسته تیره"]},"Emoji picker":{v:["انتخاب‌گر شکلک"]},Flags:{v:["پرچم‌ها"]},"Food & Drink":{v:["غذا و نوشیدنی"]},"Frequently used":{v:["پرکاربرد"]},"Light skin tone":{v:["رنگ پوسته روشن"]},"Medium dark skin tone":{v:["رنگ پوسته تیره متوسط"]},"Medium light skin tone":{v:["رنگ پوسته روشن متوسط"]},"Medium skin tone":{v:["رنگ پوسته متوسط"]},"Neutral skin color":{v:["رنگ پوسته خنثی"]},Objects:{v:["اشیاء"]},"People & Body":{v:["مردم و بدن"]},"Pick an emoji":{v:["انتخاب شکلک"]},"Search emoji":{v:["جستجوی شکلک"]},"Search results":{v:["نتایج جستجو"]},Selected:{v:["انتخاب شده"]},"Skin tone":{v:["رنگ پوسته"]},"Smileys & Emotion":{v:["شکلک‌ها و احساسات"]},Symbols:{v:["نمادها"]},"Travel & Places":{v:["سفر و مکان‌ها"]}}},{l:"fi",t:{Activities:{v:["Aktiviteetit"]},"Animals & Nature":{v:["Eläimet & luonto"]},Custom:{v:["Mukautettu"]},"Dark skin tone":{v:["Tumma ihonväri"]},"Emoji picker":{v:["Emojivalitsin"]},Flags:{v:["Liput"]},"Food & Drink":{v:["Ruoka & juoma"]},"Frequently used":{v:["Usein käytetyt"]},"Light skin tone":{v:["Vaalea ihonväri"]},"Medium dark skin tone":{v:["Keskitumma ihonväri"]},"Medium light skin tone":{v:["Keskivaalea ihonväri"]},"Medium skin tone":{v:["Keskimääräinen ihonväri"]},"Neutral skin color":{v:["Neutraali ihonväri"]},Objects:{v:["Esineet & asiat"]},"People & Body":{v:["Ihmiset & keho"]},"Pick an emoji":{v:["Valitse emoji"]},"Search emoji":{v:["Etsi emojia"]},"Search results":{v:["Hakutulokset"]},Selected:{v:["Valittu"]},"Skin tone":{v:["Ihonväri"]},"Smileys & Emotion":{v:["Hymiöt & tunteet"]},Symbols:{v:["Symbolit"]},"Travel & Places":{v:["Matkustus & kohteet"]}}},{l:"fr",t:{Activities:{v:["Activités"]},"Animals & Nature":{v:["Animaux & Nature"]},Custom:{v:["Personnalisé"]},"Dark skin tone":{v:["Teint de peau foncé"]},"Emoji picker":{v:["Sélecteur d'émojis"]},Flags:{v:["Drapeaux"]},"Food & Drink":{v:["Nourriture & Boissons"]},"Frequently used":{v:["Utilisés fréquemment"]},"Light skin tone":{v:["Teint de peau clair"]},"Medium dark skin tone":{v:["Teint de peau moyennement foncé"]},"Medium light skin tone":{v:["Teint de peau moyennement clair"]},"Medium skin tone":{v:["Teint de peau moyen"]},"Neutral skin color":{v:["Teint de peau neutre"]},Objects:{v:["Objets"]},"People & Body":{v:["Personnes & Corps"]},"Pick an emoji":{v:["Choisissez un émoji"]},"Search emoji":{v:["Rechercher un emoji"]},"Search results":{v:["Résultats de recherche"]},Selected:{v:["sélectionné"]},"Skin tone":{v:["Teint de peau"]},"Smileys & Emotion":{v:["Smileys & Émotions"]},Symbols:{v:["Symboles"]},"Travel & Places":{v:["Voyage & Lieux"]}}},{l:"ga",t:{Activities:{v:["Gníomhaíochtaí"]},"Animals & Nature":{v:["Ainmhithe & Dúlra"]},Custom:{v:["Saincheaptha"]},"Dark skin tone":{v:["Ton craiceann dorcha"]},"Emoji picker":{v:["Roghnóir Emoji"]},Flags:{v:["Bratacha"]},"Food & Drink":{v:["Bia & Deoch"]},"Frequently used":{v:["Úsáidtear go minic"]},"Light skin tone":{v:["Ton craiceann éadrom"]},"Medium dark skin tone":{v:["Ton craiceann meánach dorcha"]},"Medium light skin tone":{v:["Ton craiceann meánach éadrom"]},"Medium skin tone":{v:["Ton craiceann meánach"]},"Neutral skin color":{v:["Dath craiceann neodrach"]},Objects:{v:["Réada"]},"People & Body":{v:["Daoine & Corp"]},"Pick an emoji":{v:["Roghnaigh emoji"]},"Search emoji":{v:["Cuardaigh emoji"]},"Search results":{v:["Torthaí cuardaigh"]},Selected:{v:["Roghnaithe"]},"Skin tone":{v:["Ton craicinn"]},"Smileys & Emotion":{v:["Smileys & Mothúchán"]},Symbols:{v:["Siombailí"]},"Travel & Places":{v:["Taisteal & Áiteanna"]}}},{l:"gl",t:{Activities:{v:["Actividades"]},"Animals & Nature":{v:["Animais e natureza"]},Custom:{v:["Personalizado"]},"Dark skin tone":{v:["Ton de pel escuro"]},"Emoji picker":{v:["Selector de «emojis»"]},Flags:{v:["Bandeiras"]},"Food & Drink":{v:["Comida e bebida"]},"Frequently used":{v:["Usado con frecuencia"]},"Light skin tone":{v:["Ton de pel claro"]},"Medium dark skin tone":{v:["Ton de pel medio escuro"]},"Medium light skin tone":{v:["Ton de pel medio claro"]},"Medium skin tone":{v:["Ton de pel medio"]},"Neutral skin color":{v:["Cor de pel neutra"]},Objects:{v:["Obxectos"]},"People & Body":{v:["Persoas e corpo"]},"Pick an emoji":{v:["Escolla un «emoji»"]},"Search emoji":{v:["Buscar «emoji»"]},"Search results":{v:["Resultados da busca"]},Selected:{v:["Seleccionado"]},"Skin tone":{v:["Ton de pel"]},"Smileys & Emotion":{v:["Sorrisos e emocións"]},Symbols:{v:["Símbolos"]},"Travel & Places":{v:["Viaxes e lugares"]}}},{l:"he",t:{Activities:{v:["פעילויות"]},"Animals & Nature":{v:["חיות וטבע"]},Custom:{v:["בהתאמה אישית"]},Flags:{v:["דגלים"]},"Food & Drink":{v:["מזון ומשקאות"]},"Frequently used":{v:["בשימוש תדיר"]},Objects:{v:["חפצים"]},"People & Body":{v:["אנשים וגוף"]},"Pick an emoji":{v:["נא לבחור אמוג׳י"]},"Search emoji":{v:["חיפוש אמוג׳י"]},"Search results":{v:["תוצאות חיפוש"]},"Smileys & Emotion":{v:["חייכנים ורגשונים"]},Symbols:{v:["סמלים"]},"Travel & Places":{v:["טיולים ומקומות"]}}},{l:"hu",t:{Activities:{v:["Tevékenységek"]},"Animals & Nature":{v:["Állatok és természet"]},Custom:{v:["Egyéni"]},Flags:{v:["Zászlók"]},"Food & Drink":{v:["Étel és ital"]},"Frequently used":{v:["Gyakran használt"]},Objects:{v:["Tárgyak"]},"People & Body":{v:["Emberek és test"]},"Pick an emoji":{v:["Válasszon egy emodzsit"]},"Search results":{v:["Találatok"]},"Smileys & Emotion":{v:["Mosolyok és érzelmek"]},Symbols:{v:["Szimbólumok"]},"Travel & Places":{v:["Utazás és helyek"]}}},{l:"id",t:{Activities:{v:["Aktivitas"]},"Animals & Nature":{v:["Satwa dan Alam"]},Custom:{v:["Khusus"]},Flags:{v:["Tanda"]},"Food & Drink":{v:["Makanan dan Minuman"]},"Frequently used":{v:["Sering digunakan"]},Objects:{v:["Objek"]},"People & Body":{v:["Orang & Badan"]},"Pick an emoji":{v:["Pilih emoji"]},"Search emoji":{v:["Cari emoji"]},"Search results":{v:["Hasil pencarian"]},Selected:{v:["Dipilih"]},"Smileys & Emotion":{v:["Senyuman & Perasaan"]},Symbols:{v:["Simbol"]},"Travel & Places":{v:["Perjalanan & Tempat"]}}},{l:"is",t:{Activities:{v:["Aðgerðir"]},"Animals & Nature":{v:["Dýr og náttúra"]},Custom:{v:["Sérsniðið"]},"Dark skin tone":{v:["Dökkur húðlitur"]},"Emoji picker":{v:["Emoji-táknmyndaval"]},Flags:{v:["Flögg"]},"Food & Drink":{v:["Matur og drykkur"]},"Frequently used":{v:["Oftast notað"]},"Light skin tone":{v:["Ljós húðlitur"]},"Medium dark skin tone":{v:["Meðaldökkur húðlitur"]},"Medium light skin tone":{v:["Meðalljós húðlitur"]},"Medium skin tone":{v:["Meðaltónn húðar"]},"Neutral skin color":{v:["Hlutlaus húðlitur"]},Objects:{v:["Hlutir"]},"People & Body":{v:["Fólk og líkami"]},"Pick an emoji":{v:["Veldu tjáningartákn"]},"Search emoji":{v:["Leita að tjáningartákni"]},"Search results":{v:["Leitarniðurstöður"]},Selected:{v:["Valið"]},"Skin tone":{v:["Húðlitur"]},"Smileys & Emotion":{v:["Broskallar og tilfinningar"]},Symbols:{v:["Tákn"]},"Travel & Places":{v:["Staðir og ferðalög"]}}},{l:"it",t:{Activities:{v:["Attività"]},"Animals & Nature":{v:["Animali e natura"]},Custom:{v:["Personalizzato"]},Flags:{v:["Bandiere"]},"Food & Drink":{v:["Cibo e bevande"]},"Frequently used":{v:["Usati di frequente"]},Objects:{v:["Oggetti"]},"People & Body":{v:["Persone e corpo"]},"Pick an emoji":{v:["Scegli un emoji"]},"Search emoji":{v:["Ricerca emoji"]},"Search results":{v:["Risultati di ricerca"]},Selected:{v:["Selezionato"]},"Smileys & Emotion":{v:["Faccine ed emozioni"]},Symbols:{v:["Simboli"]},"Travel & Places":{v:["Viaggi e luoghi"]}}},{l:"ja",t:{Activities:{v:["アクティビティ"]},"Animals & Nature":{v:["動物と自然"]},Custom:{v:["カスタム"]},"Dark skin tone":{v:["暗い肌のトーン"]},"Emoji picker":{v:["絵文字ピッカー"]},Flags:{v:["国旗"]},"Food & Drink":{v:["食べ物と飲み物"]},"Frequently used":{v:["よく使うもの"]},"Light skin tone":{v:["明るい肌のトーン"]},"Medium dark skin tone":{v:["やや暗い肌のトーン"]},"Medium light skin tone":{v:["やや明るい肌のトーン"]},"Medium skin tone":{v:["中間の肌のトーン"]},"Neutral skin color":{v:["ニュートラルな肌の色"]},Objects:{v:["物"]},"People & Body":{v:["様々な人と体の部位"]},"Pick an emoji":{v:["絵文字を選択"]},"Search emoji":{v:["絵文字を検索"]},"Search results":{v:["検索結果"]},Selected:{v:["選択済み"]},"Skin tone":{v:["肌のトーン"]},"Smileys & Emotion":{v:["感情表現"]},Symbols:{v:["記号"]},"Travel & Places":{v:["旅行と場所"]}}},{l:"ja-JP",t:{Activities:{v:["アクティビティ"]},"Animals & Nature":{v:["動物と自然"]},Custom:{v:["カスタム"]},"Dark skin tone":{v:["暗い肌のトーン"]},"Emoji picker":{v:["絵文字ピッカー"]},Flags:{v:["国旗"]},"Food & Drink":{v:["食べ物と飲み物"]},"Frequently used":{v:["よく使うもの"]},"Light skin tone":{v:["明るい肌のトーン"]},"Medium dark skin tone":{v:["やや暗い肌のトーン"]},"Medium light skin tone":{v:["やや明るい肌のトーン"]},"Medium skin tone":{v:["中間の肌のトーン"]},"Neutral skin color":{v:["ニュートラルな肌の色"]},Objects:{v:["物"]},"People & Body":{v:["様々な人と体の部位"]},"Pick an emoji":{v:["絵文字を選択"]},"Search emoji":{v:["絵文字を検索"]},"Search results":{v:["検索結果"]},Selected:{v:["選択済み"]},"Skin tone":{v:["肌のトーン"]},"Smileys & Emotion":{v:["感情表現"]},Symbols:{v:["記号"]},"Travel & Places":{v:["旅行と場所"]}}},{l:"ko",t:{Activities:{v:["활동"]},"Animals & Nature":{v:["동물 & 자연"]},Custom:{v:["맞춤 설정"]},"Dark skin tone":{v:["어두운 피부 톤"]},"Emoji picker":{v:["이모지 선택기"]},Flags:{v:["깃발"]},"Food & Drink":{v:["음식 & 음료"]},"Frequently used":{v:["자주 쓰임"]},"Light skin tone":{v:["밝은 피부 톤"]},"Medium dark skin tone":{v:["약간 어두운 피부 톤"]},"Medium light skin tone":{v:["약간 밝은 피부 톤"]},"Medium skin tone":{v:["중간 피부 톤"]},"Neutral skin color":{v:["중성적 피부 톤"]},Objects:{v:["물체"]},"People & Body":{v:["사람 & 신체"]},"Pick an emoji":{v:["이모지 선택"]},"Search emoji":{v:["이모지 검색"]},"Search results":{v:["검색 결과"]},Selected:{v:["선택됨"]},"Skin tone":{v:["피부 톤"]},"Smileys & Emotion":{v:["스마일리 & 이모티콘"]},Symbols:{v:["기호"]},"Travel & Places":{v:["여행 & 장소"]}}},{l:"lo",t:{Activities:{v:["ກິດຈະກຳ"]},"Animals & Nature":{v:["ສັດ ແລະ ທຳມະຊາດ"]},Custom:{v:["ກຳນົດເອງ"]},"Dark skin tone":{v:["ໂຕນສີຜິວເຂັ້ມ"]},"Emoji picker":{v:["ໂຕເລືອກອີໂມຈິ"]},Flags:{v:["ທຸງ"]},"Food & Drink":{v:["ອາຫານ ແລະ ເຄື່ອງດື່ມ"]},"Frequently used":{v:["ໃຊ້ງານເລື້ອຍໆ"]},"Light skin tone":{v:["ໂຕນສີຜິວອ່ອນ"]},"Medium dark skin tone":{v:["ໂຕນສີຜິວເຂັ້ມປານກາງ"]},"Medium light skin tone":{v:["ໂຕນສີຜິວອ່ອນປານກາງ"]},"Medium skin tone":{v:["ໂຕນສີຜິວປານກາງ"]},"Neutral skin color":{v:["ສີຜິວເປັນກາງ"]},Objects:{v:["ວັດຖຸ"]},"People & Body":{v:["ຄົນ ແລະ ຮ່າງກາຍ"]},"Pick an emoji":{v:["ເລືອກອີໂມຈິ"]},"Search emoji":{v:["ຄົ້ນຫາອີໂມຈິ"]},"Search results":{v:["ຜົນການຄົ້ນຫາ"]},Selected:{v:["ເລືອກແລ້ວ"]},"Skin tone":{v:["ໂຕນສີຜິວ"]},"Smileys & Emotion":{v:["ໜ້າຍິ້ມ ແລະ ອາລົມ"]},Symbols:{v:["ສັນຍາລັກ"]},"Travel & Places":{v:["ການເດີນທາງ ແລະ ສະຖານທີ່"]}}},{l:"lt-LT",t:{Activities:{v:["Veiklos"]},"Animals & Nature":{v:["Gyvūnai ir gamta"]},Custom:{v:["Tinkinti"]},Flags:{v:["Vėliavos"]},"Food & Drink":{v:["Maistas ir gėrimai"]},"Frequently used":{v:["Dažniausiai naudoti"]},Objects:{v:["Objektai"]},"People & Body":{v:["Žmonės ir kūnas"]},"Pick an emoji":{v:["Pasirinkti jaustuką"]},"Search results":{v:["Paieškos rezultatai"]},"Smileys & Emotion":{v:["Šypsenos ir emocijos"]},Symbols:{v:["Simboliai"]},"Travel & Places":{v:["Kelionės ir vietos"]}}},{l:"lv",t:{}},{l:"mk",t:{Activities:{v:["Активности"]},"Animals & Nature":{v:["Животни & Природа"]},Custom:{v:["Прилагодени"]},"Dark skin tone":{v:["Темна боја на кожа"]},"Emoji picker":{v:["Избор на emoji"]},Flags:{v:["Знамиња"]},"Food & Drink":{v:["Храна & Пијалоци"]},"Frequently used":{v:["Најчесто користени"]},"Light skin tone":{v:["Светла кожа"]},"Medium dark skin tone":{v:["Средно темна кожа"]},"Medium light skin tone":{v:["Средно светла кожа"]},"Medium skin tone":{v:["Средна кожа"]},"Neutral skin color":{v:["Неутрална боја на кожа"]},Objects:{v:["Објекти"]},"People & Body":{v:["Луѓе & Тело"]},"Pick an emoji":{v:["Избери емотикон"]},"Search emoji":{v:["Барај emoji"]},"Search results":{v:["Резултати од барувањето"]},Selected:{v:["Избрано"]},"Skin tone":{v:["Боја на кожа"]},"Smileys & Emotion":{v:["Смешковци & Емотикони"]},Symbols:{v:["Симболи"]},"Travel & Places":{v:["Патувања & Места"]}}},{l:"my",t:{Activities:{v:["ပြုလုပ်ဆောင်တာများ"]},"Animals & Nature":{v:["တိရစ္ဆာန်များနှင့် သဘာဝ"]},Custom:{v:["အလိုကျချိန်ညှိမှု"]},Flags:{v:["အလံများ"]},"Food & Drink":{v:["အစားအသောက်"]},"Frequently used":{v:["မကြာခဏအသုံးပြုသော"]},Objects:{v:["အရာဝတ္ထုများ"]},"People & Body":{v:["လူပုဂ္ဂိုလ်များနှင့် ခန္ဓာကိုယ်"]},"Pick an emoji":{v:["အီမိုဂျီရွေးရန်"]},"Search results":{v:["ရှာဖွေမှု ရလဒ်များ"]},"Smileys & Emotion":{v:["စမိုင်လီများနှင့် အီမိုရှင်း"]},Symbols:{v:["သင်္ကေတများ"]},"Travel & Places":{v:["ခရီးသွားလာခြင်းနှင့် နေရာများ"]}}},{l:"nb",t:{Activities:{v:["Aktiviteter"]},"Animals & Nature":{v:["Dyr og natur"]},Custom:{v:["Tilpasset"]},"Dark skin tone":{v:["Mørk hudtone"]},"Emoji picker":{v:["Emoji-velger"]},Flags:{v:["Flagg"]},"Food & Drink":{v:["Mat og drikke"]},"Frequently used":{v:["Ofte brukt"]},"Light skin tone":{v:["Lys hudtone"]},"Medium dark skin tone":{v:["Middels mørk hudtone"]},"Medium light skin tone":{v:["Middels lys hudtone"]},"Medium skin tone":{v:["Middels hudtone"]},"Neutral skin color":{v:["Nøytral hudfarge"]},Objects:{v:["Objekter"]},"People & Body":{v:["Mennesker og kropp"]},"Pick an emoji":{v:["Velg en emoji"]},"Search emoji":{v:["Søk emoji"]},"Search results":{v:["Søkeresultater"]},Selected:{v:["Valgt"]},"Skin tone":{v:["Hudtone"]},"Smileys & Emotion":{v:["Smilefjes og følelser"]},Symbols:{v:["Symboler"]},"Travel & Places":{v:["Reise og steder"]}}},{l:"nl",t:{Activities:{v:["Activiteiten"]},"Animals & Nature":{v:["Dieren & Natuur"]},Custom:{v:["Aangepast"]},"Dark skin tone":{v:["Donkere huidskleur"]},"Emoji picker":{v:["Emoji-kiezer"]},Flags:{v:["Vlaggen"]},"Food & Drink":{v:["Eten & Drinken"]},"Frequently used":{v:["Vaak gebruikt"]},"Light skin tone":{v:["Lichte huidskleur"]},"Medium dark skin tone":{v:["Gemiddeld donkere huidskleur"]},"Medium light skin tone":{v:["Gemiddeld lichte huidskleur"]},"Medium skin tone":{v:["Gemiddelde huidskleur"]},"Neutral skin color":{v:["Neutrale huidskleur"]},Objects:{v:["Objecten"]},"People & Body":{v:["Mensen & Lichaam"]},"Pick an emoji":{v:["Kies een emoji"]},"Search emoji":{v:["Emoji zoeken"]},"Search results":{v:["Zoekresultaten"]},Selected:{v:["Geselecteerd"]},"Skin tone":{v:["Huidskleur"]},"Smileys & Emotion":{v:["Smileys & Emotie"]},Symbols:{v:["Symbolen"]},"Travel & Places":{v:["Reizen & Plaatsen"]}}},{l:"oc",t:{}},{l:"pl",t:{Activities:{v:["Aktywność"]},"Animals & Nature":{v:["Zwierzęta i natura"]},Custom:{v:["Zwyczajne"]},"Dark skin tone":{v:["Ciemna tonacja"]},"Emoji picker":{v:["Wybierz Emoji"]},Flags:{v:["Flagi"]},"Food & Drink":{v:["Jedzenie i picie"]},"Frequently used":{v:["Często używane"]},"Light skin tone":{v:["Jasny odcień skóry"]},"Medium dark skin tone":{v:["Średnio ciemny odcień skóry"]},"Medium light skin tone":{v:["Średnio jasny odcień skóry"]},"Medium skin tone":{v:["Średni odcień skóry"]},"Neutral skin color":{v:["Neutralny kolor skróry"]},Objects:{v:["Obiekty"]},"People & Body":{v:["Ludzie i ciało"]},"Pick an emoji":{v:["Wybierz emoji"]},"Search emoji":{v:["Szukaj emoji"]},"Search results":{v:["Wyniki wyszukiwania"]},Selected:{v:["Wybrane"]},"Skin tone":{v:["Kolor skóry"]},"Smileys & Emotion":{v:["Buźki i emotikony"]},Symbols:{v:["Symbole"]},"Travel & Places":{v:["Podróże i miejsca"]}}},{l:"pt-BR",t:{Activities:{v:["Atividades"]},"Animals & Nature":{v:["Animais & Natureza"]},Custom:{v:["Personalizados"]},"Dark skin tone":{v:["Tom de pele escuro"]},"Emoji picker":{v:["Seletor de emoji"]},Flags:{v:["Bandeiras"]},"Food & Drink":{v:["Comida & Bebida"]},"Frequently used":{v:["Mais usados"]},"Light skin tone":{v:["Tom de pele claro"]},"Medium dark skin tone":{v:["Tom de pele meio escuro"]},"Medium light skin tone":{v:["Tom de pele meio claro"]},"Medium skin tone":{v:["Tom de pele médio"]},"Neutral skin color":{v:["Tom de pele neutro"]},Objects:{v:["Objetos"]},"People & Body":{v:["Pessoas & Corpo"]},"Pick an emoji":{v:["Escolha um emoji"]},"Search emoji":{v:["Pesquisar emoji"]},"Search results":{v:["Resultados da pesquisa"]},Selected:{v:["Selecionado"]},"Skin tone":{v:["Tom de pele"]},"Smileys & Emotion":{v:["Smileys & Emoções"]},Symbols:{v:["Símbolos"]},"Travel & Places":{v:["Viagem & Lugares"]}}},{l:"pt-PT",t:{Activities:{v:["Atividades"]},"Animals & Nature":{v:["Animais e Natureza"]},Custom:{v:["Personalizado"]},"Dark skin tone":{v:["Tom de pele escuro"]},"Emoji picker":{v:["seletor de emoji"]},Flags:{v:["Bandeiras"]},"Food & Drink":{v:["Comida e Bebida"]},"Frequently used":{v:["Mais utilizados"]},"Light skin tone":{v:["Tom de pele claro"]},"Medium dark skin tone":{v:["Tom de pele escuro médio"]},"Medium light skin tone":{v:["Tom de pele claro médio"]},"Medium skin tone":{v:["Tom de pele médio"]},"Neutral skin color":{v:["Cor de pele neutra"]},Objects:{v:["Objetos"]},"People & Body":{v:["Pessoas e Corpo"]},"Pick an emoji":{v:["Escolha um emoji"]},"Search emoji":{v:["Pesquisar emoji"]},"Search results":{v:["Resultados da pesquisa"]},Selected:{v:["Selecionado"]},"Skin tone":{v:["Tom de pele"]},"Smileys & Emotion":{v:["Sorrisos e Emoções"]},Symbols:{v:["Símbolos"]},"Travel & Places":{v:["Viagens e Lugares"]}}},{l:"ro",t:{Activities:{v:["Activități"]},"Animals & Nature":{v:["Animale și natură"]},Custom:{v:["Personalizat"]},Flags:{v:["Marcaje"]},"Food & Drink":{v:["Alimente și băuturi"]},"Frequently used":{v:["Utilizate frecvent"]},Objects:{v:["Obiecte"]},"People & Body":{v:["Oameni și corp"]},"Pick an emoji":{v:["Alege un emoji"]},"Search emoji":{v:["Căutare emoji"]},"Search results":{v:["Rezultatele căutării"]},Selected:{v:["Selectat"]},"Smileys & Emotion":{v:["Zâmbete și emoții"]},Symbols:{v:["Simboluri"]},"Travel & Places":{v:["Călătorii și locuri"]}}},{l:"ru",t:{Activities:{v:["События"]},"Animals & Nature":{v:["Животные и природа "]},Custom:{v:["Пользовательское"]},"Dark skin tone":{v:["Темный оттенок"]},"Emoji picker":{v:["Подборщик эмодзи"]},Flags:{v:["Флаги"]},"Food & Drink":{v:["Еда, напиток"]},"Frequently used":{v:["Часто используемый"]},"Light skin tone":{v:["Светлый оттенок"]},"Medium dark skin tone":{v:["Средний темный оттенок"]},"Medium light skin tone":{v:["Средний светлый оттенок"]},"Medium skin tone":{v:["Средний оттенок"]},"Neutral skin color":{v:["Нейтральный оттенок"]},Objects:{v:["Объекты"]},"People & Body":{v:["Люди и тело"]},"Pick an emoji":{v:["Выберите эмодзи"]},"Search emoji":{v:["Поиск эмодзи"]},"Search results":{v:["Результаты поиска"]},Selected:{v:["Выбрано"]},"Skin tone":{v:["Оттенок скина"]},"Smileys & Emotion":{v:["Смайлики и эмоции"]},Symbols:{v:["Символы"]},"Travel & Places":{v:["Путешествия и места"]}}},{l:"sk",t:{Activities:{v:["Aktivity"]},"Animals & Nature":{v:["Zvieratá a príroda"]},Custom:{v:["Vlastné"]},"Dark skin tone":{v:["Tmavý vzhľad"]},"Emoji picker":{v:["Výber emodži"]},Flags:{v:["Vlajky"]},"Food & Drink":{v:["Jedlo a nápoje"]},"Frequently used":{v:["Často používané"]},"Light skin tone":{v:["Svetlý vzhľad"]},"Medium dark skin tone":{v:["Stredne tmavý vzhľad"]},"Medium light skin tone":{v:["Stredne svetlý vzhľad"]},"Medium skin tone":{v:["Stredný vzhľad"]},"Neutral skin color":{v:["Neutrálny vzhľad"]},Objects:{v:["Objekty"]},"People & Body":{v:["Ľudia a telo"]},"Pick an emoji":{v:["Vybrať emodži"]},"Search emoji":{v:["Vyhľadať emoji"]},"Search results":{v:["Výsledky vyhľadávania"]},Selected:{v:["Vybraný"]},"Skin tone":{v:["Vzhľad"]},"Smileys & Emotion":{v:["Smajlíky a emócie"]},Symbols:{v:["Symboly"]},"Travel & Places":{v:["Cestovanie a miesta"]}}},{l:"sl",t:{Activities:{v:["Dejavnosti"]},"Animals & Nature":{v:["Živali in Narava"]},Custom:{v:["Po meri"]},Flags:{v:["Zastavice"]},"Food & Drink":{v:["Hrana in Pijača"]},"Frequently used":{v:["Pogostost uporabe"]},Objects:{v:["Predmeti"]},"People & Body":{v:["Ljudje in Telo"]},"Pick an emoji":{v:["Izbor izrazne ikone"]},"Search results":{v:["Zadetki iskanja"]},"Smileys & Emotion":{v:["Izrazne ikone"]},Symbols:{v:["Simboli"]},"Travel & Places":{v:["Potovanja in Kraji"]}}},{l:"sr",t:{Activities:{v:["Активности"]},"Animals & Nature":{v:["Животиње и природа"]},Custom:{v:["Произвољно"]},"Dark skin tone":{v:["Тамни тен коже"]},"Emoji picker":{v:["Бирач емођија"]},Flags:{v:["Заставе"]},"Food & Drink":{v:["Храна и пиће"]},"Frequently used":{v:["Често коришћено"]},"Light skin tone":{v:["Светли тен коже"]},"Medium dark skin tone":{v:["Средње тамни тен коже"]},"Medium light skin tone":{v:["Средње светли тен коже"]},"Medium skin tone":{v:["Средњи тен коже"]},"Neutral skin color":{v:["Неутрална боја коже"]},Objects:{v:["Предмети"]},"People & Body":{v:["Људи и тело"]},"Pick an emoji":{v:["Изаберите емођи"]},"Search emoji":{v:["Претражи емођи"]},"Search results":{v:["Резултати претраге"]},Selected:{v:["Изабрано"]},"Skin tone":{v:["Тен коже"]},"Smileys & Emotion":{v:["Смајлији и емоције"]},Symbols:{v:["Симболи"]},"Travel & Places":{v:["Путовање и места"]}}},{l:"sv",t:{Activities:{v:["Aktiviteter"]},"Animals & Nature":{v:["Djur & Natur"]},Custom:{v:["Anpassad"]},"Dark skin tone":{v:["Mörk hudton"]},"Emoji picker":{v:["Emoji-väljare"]},Flags:{v:["Flaggor"]},"Food & Drink":{v:["Mat & Dryck"]},"Frequently used":{v:["Används ofta"]},"Light skin tone":{v:["Ljus hudton"]},"Medium dark skin tone":{v:["Medium mörk hudton"]},"Medium light skin tone":{v:["Medium ljus hudton"]},"Medium skin tone":{v:["Medium hudton"]},"Neutral skin color":{v:["Neutral hudfärg"]},Objects:{v:["Objekt"]},"People & Body":{v:["Kropp & Själ"]},"Pick an emoji":{v:["Välj en emoji"]},"Search emoji":{v:["Sök emoji"]},"Search results":{v:["Sökresultat"]},Selected:{v:["Vald"]},"Skin tone":{v:["Hudton"]},"Smileys & Emotion":{v:["Selfies & Känslor"]},Symbols:{v:["Symboler"]},"Travel & Places":{v:["Resor & Sevärdigheter"]}}},{l:"tr",t:{Activities:{v:["Etkinlikler"]},"Animals & Nature":{v:["Hayvanlar ve doğa"]},Custom:{v:["Özel"]},"Dark skin tone":{v:["Koyu deri rengi"]},"Emoji picker":{v:["Emoji seçici"]},Flags:{v:["Bayraklar"]},"Food & Drink":{v:["Yeme ve içme"]},"Frequently used":{v:["Sık kullanılanlar"]},"Light skin tone":{v:["Açık deri rengi"]},"Medium dark skin tone":{v:["Orta koyu deri rengi"]},"Medium light skin tone":{v:["Orta açık deri rengi"]},"Medium skin tone":{v:["Orta deri rengi"]},"Neutral skin color":{v:["Nötr deri rengi"]},Objects:{v:["Nesneler"]},"People & Body":{v:["İnsanlar ve beden"]},"Pick an emoji":{v:["Bir emoji seçin"]},"Search emoji":{v:["Emoji ara"]},"Search results":{v:["Arama sonuçları"]},Selected:{v:["Seçilmiş"]},"Skin tone":{v:["Deri rengi"]},"Smileys & Emotion":{v:["İfadeler ve duygular"]},Symbols:{v:["Simgeler"]},"Travel & Places":{v:["Gezi ve yerler"]}}},{l:"uk",t:{Activities:{v:["Діяльність"]},"Animals & Nature":{v:["Тварини та природа"]},Custom:{v:["Власне"]},"Dark skin tone":{v:["Смаглявий"]},"Emoji picker":{v:["Вибір емоційки"]},Flags:{v:["Прапори"]},"Food & Drink":{v:["Їжа та напої"]},"Frequently used":{v:["Найчастіші"]},"Light skin tone":{v:["Світла шкіра"]},"Medium dark skin tone":{v:["Какао"]},"Medium light skin tone":{v:["Лате"]},"Medium skin tone":{v:["Середній колір шкіри"]},"Neutral skin color":{v:["Нейтральний колір шкіри"]},Objects:{v:["Об'єкти"]},"People & Body":{v:["Люди та жести"]},"Pick an emoji":{v:["Виберіть емоційку"]},"Search emoji":{v:["Шукати емоційки"]},"Search results":{v:["Результати пошуку"]},Selected:{v:["Вибрано"]},"Skin tone":{v:["Колір шкіри"]},"Smileys & Emotion":{v:["Смайли та емоції"]},Symbols:{v:["Символи"]},"Travel & Places":{v:["Поїздки та місця"]}}},{l:"uz",t:{Activities:{v:["Faolliklar"]},"Animals & Nature":{v:["Hayvonlar va Tabiat"]},Custom:{v:["Moslashtirilgan"]},"Dark skin tone":{v:["Qora rangdagi qoplama"]},"Emoji picker":{v:["Emoji tanlagich"]},Flags:{v:["Bayroqlar"]},"Food & Drink":{v:["Oziq-ovqat va ichimliklar"]},"Frequently used":{v:["Tez-tez ishlatiladi"]},"Light skin tone":{v:["Yorug` rangdagi qoplama"]},"Medium dark skin tone":{v:["O`rtacha qorong`u rangdagi qoplama"]},"Medium light skin tone":{v:["O`rtacha yorug`lik rangdagi qoplama"]},"Medium skin tone":{v:["O`rtacha rangdagi qoplama"]},"Neutral skin color":{v:["Neytral rang"]},Objects:{v:["Obyekt"]},"People & Body":{v:["Odamlar va Tana"]},"Pick an emoji":{v:["Emojini tanlang"]},"Search emoji":{v:["Emoji qidirish"]},"Search results":{v:["Qidiruv natijalari"]},Selected:{v:["Tanlangan"]},"Skin tone":{v:["Odatiy rangdagi qoplama"]},"Smileys & Emotion":{v:["Smayllar va Hissiyotlar"]},Symbols:{v:["Belgilar"]},"Travel & Places":{v:["Sayohat va Joylar"]}}},{l:"zh-CN",t:{Activities:{v:["活动"]},"Animals & Nature":{v:["动物 & 自然"]},Custom:{v:["自定义"]},"Dark skin tone":{v:["深色皮肤"]},"Emoji picker":{v:["表情拾取器"]},Flags:{v:["旗帜"]},"Food & Drink":{v:["食物 & 饮品"]},"Frequently used":{v:["经常使用"]},"Light skin tone":{v:["浅色皮肤"]},"Medium dark skin tone":{v:["中等深色皮肤"]},"Medium light skin tone":{v:["中等浅色皮肤"]},"Medium skin tone":{v:["中等皮肤"]},"Neutral skin color":{v:["中性皮肤颜色"]},Objects:{v:["物体"]},"People & Body":{v:["人 & 身体"]},"Pick an emoji":{v:["选择一个表情"]},"Search emoji":{v:["搜索表情"]},"Search results":{v:["搜索结果"]},Selected:{v:["选择"]},"Skin tone":{v:["皮肤"]},"Smileys & Emotion":{v:["笑脸 & 情感"]},Symbols:{v:["符号"]},"Travel & Places":{v:["旅游 & 地点"]}}},{l:"zh-HK",t:{Activities:{v:["活動"]},"Animals & Nature":{v:["動物與自然"]},Custom:{v:["自定義"]},"Dark skin tone":{v:["深膚色"]},"Emoji picker":{v:["表情符號選擇器"]},Flags:{v:["旗幟"]},"Food & Drink":{v:["食物與飲料"]},"Frequently used":{v:["經常使用"]},"Light skin tone":{v:["淺膚色"]},"Medium dark skin tone":{v:["中等深膚色"]},"Medium light skin tone":{v:["中等淺膚色"]},"Medium skin tone":{v:["中等膚色"]},"Neutral skin color":{v:["中性色膚色"]},Objects:{v:["物件"]},"People & Body":{v:["人物"]},"Pick an emoji":{v:["選擇表情符號"]},"Search emoji":{v:["搜尋表情符號"]},"Search results":{v:["搜尋結果"]},Selected:{v:["已選"]},"Skin tone":{v:["膚色"]},"Smileys & Emotion":{v:["表情"]},Symbols:{v:["標誌"]},"Travel & Places":{v:["旅遊與景點"]}}},{l:"zh-TW",t:{Activities:{v:["活動"]},"Animals & Nature":{v:["動物與自然"]},Custom:{v:["自定義"]},"Dark skin tone":{v:["深膚色"]},"Emoji picker":{v:["表情符號挑選器"]},Flags:{v:["旗幟"]},"Food & Drink":{v:["食物與飲料"]},"Frequently used":{v:["最近使用"]},"Light skin tone":{v:["淺膚色"]},"Medium dark skin tone":{v:["中等深膚色"]},"Medium light skin tone":{v:["中等淺膚色"]},"Medium skin tone":{v:["中等膚色"]},"Neutral skin color":{v:["中性膚色"]},Objects:{v:["物件"]},"People & Body":{v:["人物"]},"Pick an emoji":{v:["選擇表情符號"]},"Search emoji":{v:["搜尋表情符號"]},"Search results":{v:["搜尋結果"]},Selected:{v:["已選取"]},"Skin tone":{v:["膚色"]},"Smileys & Emotion":{v:["表情"]},Symbols:{v:["標誌"]},"Travel & Places":{v:["旅遊與景點"]}}}],V=[{l:"ar",t:{"Add to a project":{v:["أضف إلى مشروع"]},"Connect items to a project to make them easier to find":{v:["ربط عناصر بمشروع لتسهيل العثور عليها"]},"Failed to add the item to the project":{v:["تعذر ربط عنصر بمشروع"]},"Failed to create a project":{v:["تعذر إنشاء مشروع"]},"Failed to rename the project":{v:["تعذّر تغيير اسم المشروع"]},"Type to search for existing projects":{v:["أكتُب للبحث في المشاريع الموجودة"]}}},{l:"ast",t:{}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{"Add to a project":{v:["Přidat do projektu"]},"Connect items to a project to make them easier to find":{v:["Připojte položky k projektu, čímž budou snáze dohledatelné"]},"Failed to add the item to the project":{v:["Položku se nepodařilo přidat do projektu"]},"Failed to create a project":{v:["Projekt se nepodařilo vytvořit"]},"Failed to rename the project":{v:["Projekt se nepodařilo přejmenovat"]},"Type to search for existing projects":{v:["Psaním vyhledávejte existující projekty"]}}},{l:"cs-CZ",t:{}},{l:"da",t:{"Add to a project":{v:["Tilføj til et projekt"]},"Connect items to a project to make them easier to find":{v:["Forbind elementer til et projekt for at gøre dem nemmere at finde"]},"Failed to add the item to the project":{v:["Kunne ikke føje elementet til projektet"]},"Failed to create a project":{v:["Kunne ikke oprette et projekt"]},"Failed to rename the project":{v:["Projektet kunne ikke omdøbes"]},"Type to search for existing projects":{v:["Skriv for at søge efter eksisterende projekter"]}}},{l:"de",t:{"Add to a project":{v:["Einem Projekt hinzufügen"]},"Connect items to a project to make them easier to find":{v:["Verbinde Elemente mit einem Projekt, um sie leichter zu finden"]},"Failed to add the item to the project":{v:["Das Element konnte nicht zum Projekt hinzugefügt werden"]},"Failed to create a project":{v:["Projekt konnte nicht erstellt werden"]},"Failed to rename the project":{v:["Das Projekt konnte nicht umbenannt werden"]},"Type to search for existing projects":{v:["Tippen, um nach vorhandenen Projekten zu suchen"]}}},{l:"de-DE",t:{"Add to a project":{v:["Einem Projekt hinzufügen"]},"Connect items to a project to make them easier to find":{v:["Verbinden Sie Elemente mit einem Projekt, um sie leichter zu finden"]},"Failed to add the item to the project":{v:["Das Element konnte nicht zum Projekt hinzugefügt werden"]},"Failed to create a project":{v:["Projekt konnte nicht erstellt werden"]},"Failed to rename the project":{v:["Das Projekt konnte nicht umbenannt werden"]},"Type to search for existing projects":{v:["Tippen, um nach vorhandenen Projekten zu suchen"]}}},{l:"el",t:{"Add to a project":{v:["Προσθήκη σε ένα έργο"]},"Connect items to a project to make them easier to find":{v:["Συνδέστε αντικείμενα σε ένα έργο για να τα βρίσκετε πιο εύκολα"]},"Failed to add the item to the project":{v:["Αποτυχία προσθήκης του αντικειμένου στο έργο"]},"Failed to create a project":{v:["Αποτυχία δημιουργίας έργου"]},"Failed to rename the project":{v:["Αποτυχία μετονομασίας του έργου"]},"Type to search for existing projects":{v:["Πληκτρολογήστε για αναζήτηση υπαρχόντων έργων"]}}},{l:"en-GB",t:{"Add to a project":{v:["Add to a project"]},"Connect items to a project to make them easier to find":{v:["Connect items to a project to make them easier to find"]},"Failed to add the item to the project":{v:["Failed to add the item to the project"]},"Failed to create a project":{v:["Failed to create a project"]},"Failed to rename the project":{v:["Failed to rename the project"]},"Type to search for existing projects":{v:["Type to search for existing projects"]}}},{l:"eo",t:{}},{l:"es",t:{}},{l:"es-AR",t:{"Add to a project":{v:["Agregar a un proyecto"]},"Connect items to a project to make them easier to find":{v:["Conecte items a un proyecto para hacerlos más fáciles de encontrar"]},"Failed to add the item to the project":{v:["No se pudo agregar el elemento al proyecto"]},"Failed to create a project":{v:["No se pudo crear un proyecto"]},"Failed to rename the project":{v:["No se pudo renombrar el proyecto"]},"Type to search for existing projects":{v:["Escriba para buscar proyectos existentes"]}}},{l:"es-EC",t:{}},{l:"es-MX",t:{"Add to a project":{v:["Agregar a un proyecto"]},"Connect items to a project to make them easier to find":{v:["Conecte elementos a un proyecto para hacerlos más fáciles de encontrar"]},"Failed to add the item to the project":{v:["No se pudo agregar el elemento al proyecto"]},"Failed to create a project":{v:["No se pudo crear el proyecto"]},"Failed to rename the project":{v:["No se pudo renombrar el proyecto"]},"Type to search for existing projects":{v:["Escriba para buscar proyectos existentes"]}}},{l:"et-EE",t:{"Add to a project":{v:["Lisa projekti"]},"Connect items to a project to make them easier to find":{v:["Selleks, et objekte oleks lihtsam leida, seo nad projektiga"]},"Failed to add the item to the project":{v:["Objekti lisamine projekti ei õnnestunud"]},"Failed to create a project":{v:["Projekti loomine ei õnnestunud"]},"Failed to rename the project":{v:["Projekti nime muutmine ei õnnestunud"]},"Type to search for existing projects":{v:["Olemasolevate projektide otsimiseks kirjuta"]}}},{l:"eu",t:{}},{l:"fa",t:{"Add to a project":{v:["افزودن به پروژه"]},"Connect items to a project to make them easier to find":{v:["برای پیدا کردن راحت‌تر، مواردی را به پروژه متصل کنید"]},"Failed to add the item to the project":{v:["موارد به پروژه اضافه نشد"]},"Failed to create a project":{v:["ایجاد پروژه نامؤفق بود"]},"Failed to rename the project":{v:["تغییر نام پروژه انجام نشد"]},"Type to search for existing projects":{v:["برای جستجوی پروژه‌های موجود تایپ کنید"]}}},{l:"fi",t:{"Add to a project":{v:["Lisää projektiin"]},"Connect items to a project to make them easier to find":{v:["Yhdistä kohteet projektiin, jotta ne olisivat helpompia löytää"]},"Failed to add the item to the project":{v:["Kohteiden lisääminen projektiin epäonnistui"]},"Failed to create a project":{v:["Projektin luominen epäonnistui"]},"Failed to rename the project":{v:["Projektin nimeäminen epäonnistui"]},"Type to search for existing projects":{v:["Kirjoita etsiäksesi olemassaolevia projekteja"]}}},{l:"fr",t:{"Add to a project":{v:["Ajouter à un projet"]},"Connect items to a project to make them easier to find":{v:["Connectez des éléments à un projet pour les retrouver plus facilement"]},"Failed to add the item to the project":{v:["Impossible d'ajouter l'élément au projet"]},"Failed to create a project":{v:["Impossible de créer un projet"]},"Failed to rename the project":{v:["Impossible de renommer le projet"]},"Type to search for existing projects":{v:["Tapez pour rechercher des projets existants"]}}},{l:"ga",t:{"Add to a project":{v:["Cuir le tionscadal"]},"Connect items to a project to make them easier to find":{v:["Ceangail míreanna le tionscadal chun iad a dhéanamh níos éasca iad a aimsiú"]},"Failed to add the item to the project":{v:["Theip ar an mír a chur leis an tionscadal"]},"Failed to create a project":{v:["Theip ar thionscadal a chruthú"]},"Failed to rename the project":{v:["Theip ar an tionscadal a athainmniú"]},"Type to search for existing projects":{v:["Clóscríobh chun tionscadail atá ann cheana a chuardach"]}}},{l:"gl",t:{"Add to a project":{v:["Engadir a un proxecto"]},"Connect items to a project to make them easier to find":{v:["Conectar elementos a un proxecto para facelos máis doados de atopar"]},"Failed to add the item to the project":{v:["Produciuse un fallo ao engadir o elemento ao proxecto"]},"Failed to create a project":{v:["Produciuse un fallo ao crear un proxecto"]},"Failed to rename the project":{v:["Produciuse un fallo ao cambiarlle o nome ao proxecto"]},"Type to search for existing projects":{v:["Escriba para buscar proxectos existentes"]}}},{l:"he",t:{}},{l:"hu",t:{}},{l:"id",t:{}},{l:"is",t:{"Add to a project":{v:["Bæta við verkefni"]},"Connect items to a project to make them easier to find":{v:["Tengdu atriði við verkefni til að gera einfaldara að finna þau"]},"Failed to add the item to the project":{v:["Mistókst að bæta atriðinu í verkefnið"]},"Failed to create a project":{v:["Mistókst að útbúa verkefni"]},"Failed to rename the project":{v:["Mistókst að endurnefna verkefnið"]},"Type to search for existing projects":{v:["Skrifaðu hér til að leita að fyrirliggjandi verkefnum"]}}},{l:"it",t:{}},{l:"ja",t:{"Add to a project":{v:["プロジェクトに追加する"]},"Connect items to a project to make them easier to find":{v:["項目をプロジェクトに接続して検索しやすくする"]},"Failed to add the item to the project":{v:["プロジェクトへのアイテムの追加に失敗しました"]},"Failed to create a project":{v:["プロジェクトの作成に失敗しました"]},"Failed to rename the project":{v:["プロジェクトの名前変更に失敗しました"]},"Type to search for existing projects":{v:["既存のプロジェクトを検索するために入力します"]}}},{l:"ja-JP",t:{}},{l:"ko",t:{"Add to a project":{v:["프로젝트에 추가"]},"Connect items to a project to make them easier to find":{v:["항목을 더 쉽게 찾을 수 있도록 프로젝트에 연결하세요."]},"Failed to add the item to the project":{v:["항목을 프로젝트에 추가하는 데 실패함"]},"Failed to create a project":{v:["프로젝트를 만드는 데 실패함"]},"Failed to rename the project":{v:["프로젝트의 이름을 바꾸는 데 실패함"]},"Type to search for existing projects":{v:["입력하여 프로젝트를 검색"]}}},{l:"lo",t:{"Add to a project":{v:["ເພີ່ມໃສ່ໂຄງການ"]},"Connect items to a project to make them easier to find":{v:["ເຊື່ອມຕໍ່ລາຍການຕ່າງໆໃສ່ໂຄງການ ເພື່ອເຮັດໃຫ້ຊອກຫາງ່າຍຂຶ້ນ"]},"Failed to add the item to the project":{v:["ບໍ່ສາມາດເພີ່ມລາຍການໃສ່ໂຄງການໄດ້"]},"Failed to create a project":{v:["ບໍ່ສາມາດສ້າງໂຄງການໄດ້"]},"Failed to rename the project":{v:["ບໍ່ສາມາດປ່ຽນຊື່ໂຄງການໄດ້"]},"Type to search for existing projects":{v:["ພິມເພື່ອຄົ້ນຫາໂຄງການທີ່ມີຢູ່"]}}},{l:"lt-LT",t:{}},{l:"lv",t:{}},{l:"mk",t:{"Add to a project":{v:["Додај во проект"]},"Connect items to a project to make them easier to find":{v:["Поврзете ги елементите со проект за да биде полесно да се најдат"]},"Failed to add the item to the project":{v:["Неуспешно додавање на елементот во проектот"]},"Failed to create a project":{v:["Неуспешно креирање на проект"]},"Failed to rename the project":{v:["Неуспешно преименување на проектот"]},"Type to search for existing projects":{v:["Пишувај за пребарување постоечки проекти"]}}},{l:"my",t:{}},{l:"nb",t:{"Add to a project":{v:["Legge til i et prosjekt"]},"Connect items to a project to make them easier to find":{v:["Koble elementer til et prosjekt for å gjøre det enklere å finne dem"]},"Failed to add the item to the project":{v:["Kan ikke legge til elementet i prosjektet"]},"Failed to create a project":{v:["Kan ikke opprette et prosjekt"]},"Failed to rename the project":{v:["Kunne ikke gi prosjektet nytt navn"]},"Type to search for existing projects":{v:["Skriv for å søke for eksisterende prosjekter"]}}},{l:"nl",t:{"Add to a project":{v:["Toevoegen aan een project"]},"Connect items to a project to make them easier to find":{v:["Items aan een project koppelen om ze eenvoudiger te vinden"]},"Failed to add the item to the project":{v:["Toevoegen van item aan project mislukt"]},"Failed to create a project":{v:["Project aanmaken mislukt"]},"Failed to rename the project":{v:["Project hernoemen mislukt"]},"Type to search for existing projects":{v:["Typ om te zoeken naar bestaande projecten"]}}},{l:"oc",t:{}},{l:"pl",t:{"Add to a project":{v:["Dodaj do projektu"]},"Connect items to a project to make them easier to find":{v:["Połącz elementy z projektem, aby ułatwić ich znalezienie"]},"Failed to add the item to the project":{v:["Nie udało się dodać elementu do projektu"]},"Failed to create a project":{v:["Nie udało się utworzyć projektu"]},"Failed to rename the project":{v:["Nie udało się zmienić nazwy projektu"]},"Type to search for existing projects":{v:["Wpisz, aby wyszukać istniejące projekty"]}}},{l:"pt-BR",t:{"Add to a project":{v:["Adicionar a um projeto"]},"Connect items to a project to make them easier to find":{v:["Conectar itens a um projeto para encontrá-los mais facilmente"]},"Failed to add the item to the project":{v:["Falha ao adicionar itens ao projeto"]},"Failed to create a project":{v:["Falha ao criar um projeto"]},"Failed to rename the project":{v:["Falha ao renomear o projeto"]},"Type to search for existing projects":{v:["Digite para pesquisar projetos existentes"]}}},{l:"pt-PT",t:{"Add to a project":{v:["Adicionar a um projeto"]},"Connect items to a project to make them easier to find":{v:["Ligar itens a um projeto para serem mais facilmente encontrados"]},"Failed to add the item to the project":{v:["Não foi possível adicionar item ao projeto"]},"Failed to create a project":{v:["Não foi possível criar um projeto"]},"Failed to rename the project":{v:["Não foi possível alterar o nome do projeto"]},"Type to search for existing projects":{v:["Digite para procurar projetos existentes"]}}},{l:"ro",t:{}},{l:"ru",t:{"Add to a project":{v:["Добавить в проект"]},"Connect items to a project to make them easier to find":{v:["Подключайте элементы к проекту, чтобы их было легче найти"]},"Failed to add the item to the project":{v:["Не удалось добавить элемент в проект"]},"Failed to create a project":{v:["Не удалось создать проект"]},"Failed to rename the project":{v:["Не удалось переименовать проект"]},"Type to search for existing projects":{v:["Введите для поиска существующих проектов"]}}},{l:"sk",t:{"Add to a project":{v:["Pridať do projektu"]},"Connect items to a project to make them easier to find":{v:["Pridať položky do projektu pre jednoduchšie vyhľadávanie"]},"Failed to add the item to the project":{v:["Nepodarilo sa pridať položku do projektu"]},"Failed to create a project":{v:["Nepodarilo sa vytvoriť projekt"]},"Failed to rename the project":{v:["Nepodarilo sa premenovať projekt"]},"Type to search for existing projects":{v:["Začnite písať pre vyhľadávanie v existujúcich projektoch"]}}},{l:"sl",t:{}},{l:"sr",t:{"Add to a project":{v:["Додај у пројекат"]},"Connect items to a project to make them easier to find":{v:["Повезује ставке у пројекат како би се лакше пронашле"]},"Failed to add the item to the project":{v:["Није успело додавање ставке у пројекат"]},"Failed to create a project":{v:["Није успело креирање пројекта"]},"Failed to rename the project":{v:["Није успела промена имена пројекта"]},"Type to search for existing projects":{v:["Куцајте да претражите постојеће пројекте"]}}},{l:"sv",t:{"Add to a project":{v:["Lägg till i ett projekt"]},"Connect items to a project to make them easier to find":{v:["Anslut objekt till ett projekt för att göra dem lättare att hitta"]},"Failed to add the item to the project":{v:["Det gick inte att lägga till objektet i projektet"]},"Failed to create a project":{v:["Det gick inte att skapa ett projekt"]},"Failed to rename the project":{v:["Kunde inte byta namn på projektet"]},"Type to search for existing projects":{v:["Skriv för att söka efter befintliga projekt"]}}},{l:"tr",t:{"Add to a project":{v:["Bir projeye ekle"]},"Connect items to a project to make them easier to find":{v:["Ögeleri daha kolay bulmak için bir proje ile ilişkilendirin"]},"Failed to add the item to the project":{v:["Öge projeye eklenemedi"]},"Failed to create a project":{v:["Bir proje oluşturulamadı"]},"Failed to rename the project":{v:["Proje yeniden adlandırılamadı"]},"Type to search for existing projects":{v:["Var olan projeleri aramak için yazmaya başlayın"]}}},{l:"uk",t:{"Add to a project":{v:["Додати до проєкту"]},"Connect items to a project to make them easier to find":{v:["Приєднайте ресурси до проєкту для швидшого пошуку"]},"Failed to add the item to the project":{v:["Не вдалося приєднати ресурс до проєкту"]},"Failed to create a project":{v:["Не вдалося створити проєкт"]},"Failed to rename the project":{v:["Не вдалося перейменувати проєкт"]},"Type to search for existing projects":{v:["Почніть вводити, щоб знайти проєкт"]}}},{l:"uz",t:{"Add to a project":{v:["Loyihaga qo'shish"]},"Connect items to a project to make them easier to find":{v:["Elementlarni topishni osonlashtirish uchun ularni loyihaga ulang"]},"Failed to add the item to the project":{v:["Ob'ektni loyihaga qo'shib bo'lmadi"]},"Failed to create a project":{v:["Loyiha yaratib bo‘lmadi"]},"Failed to rename the project":{v:["Loyiha nomini o‘zgartirib bo‘lmadi"]},"Type to search for existing projects":{v:["Mavjud loyihalarni qidirish uchun kiriting"]}}},{l:"zh-CN",t:{"Add to a project":{v:["添加至一个项目"]},"Connect items to a project to make them easier to find":{v:["将条目连接至一个项目以易于查找"]},"Failed to add the item to the project":{v:["添加条目至项目失败"]},"Failed to create a project":{v:["创建项目失败"]},"Failed to rename the project":{v:["重命名项目失败"]},"Type to search for existing projects":{v:["输入以搜索现存项目"]}}},{l:"zh-HK",t:{"Add to a project":{v:["添加到方案中"]},"Connect items to a project to make them easier to find":{v:["將項目連接到方案中,以便更容易找到。"]},"Failed to add the item to the project":{v:["無法將項目添加到方案中"]},"Failed to create a project":{v:["無法創建方案"]},"Failed to rename the project":{v:["無法重命名方案"]},"Type to search for existing projects":{v:["輸入以搜索現有方案"]}}},{l:"zh-TW",t:{"Add to a project":{v:["新增至專案中"]},"Connect items to a project to make them easier to find":{v:["將項目連結至專案中以方便尋找"]},"Failed to add the item to the project":{v:["新增項目至專案失敗"]},"Failed to create a project":{v:["建立專案失敗"]},"Failed to rename the project":{v:["重新命名專案失敗"]},"Type to search for existing projects":{v:["輸入以搜尋既有專案"]}}}],L=[{l:"ar",t:{"Any link":{v:["أيَّ رابط"]}}},{l:"ast",t:{"Any link":{v:["Cualesquier enllaz"]}}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{"Any link":{v:["Jakýkoli odkaz"]}}},{l:"cs-CZ",t:{"Any link":{v:["Jakýkoli odkaz"]}}},{l:"da",t:{"Any link":{v:["Ethvert link"]}}},{l:"de",t:{"Any link":{v:["Irgendein Link"]}}},{l:"de-DE",t:{"Any link":{v:["Irgendein Link"]}}},{l:"el",t:{"Any link":{v:["Οποιοσδήποτε σύνδεσμος"]}}},{l:"en-GB",t:{"Any link":{v:["Any link"]}}},{l:"eo",t:{}},{l:"es",t:{"Any link":{v:["Cualquier enlace"]}}},{l:"es-AR",t:{"Any link":{v:["Cualquier enlace"]}}},{l:"es-EC",t:{"Any link":{v:["Cualquier enlace"]}}},{l:"es-MX",t:{"Any link":{v:["Cualquier enlace"]}}},{l:"et-EE",t:{"Any link":{v:["Mistahes link"]}}},{l:"eu",t:{"Any link":{v:["Edozein esteka"]}}},{l:"fa",t:{"Any link":{v:["هر پیوندی"]}}},{l:"fi",t:{"Any link":{v:["Mikä tahansa linkki"]}}},{l:"fr",t:{"Any link":{v:["N'importe quel lien"]}}},{l:"ga",t:{"Any link":{v:["Aon nasc"]}}},{l:"gl",t:{"Any link":{v:["Calquera ligazón"]}}},{l:"he",t:{"Any link":{v:["קישור כלשהו"]}}},{l:"hu",t:{}},{l:"id",t:{"Any link":{v:["Semua tautan"]}}},{l:"is",t:{"Any link":{v:["Einhver tengill"]}}},{l:"it",t:{"Any link":{v:["Qualsiasi link"]}}},{l:"ja",t:{"Any link":{v:["任意のリンク"]}}},{l:"ja-JP",t:{"Any link":{v:["任意のリンク"]}}},{l:"ko",t:{"Any link":{v:["아무 링크"]}}},{l:"lo",t:{"Any link":{v:["ລິງໃດກໍໄດ້"]}}},{l:"lt-LT",t:{}},{l:"lv",t:{}},{l:"mk",t:{"Any link":{v:["Секој линк"]}}},{l:"my",t:{}},{l:"nb",t:{"Any link":{v:["Enhver lenke"]}}},{l:"nl",t:{"Any link":{v:["Elke link"]}}},{l:"oc",t:{}},{l:"pl",t:{"Any link":{v:["Dowolny link"]}}},{l:"pt-BR",t:{"Any link":{v:["Qualquer link"]}}},{l:"pt-PT",t:{"Any link":{v:["Qualquer hiperligação"]}}},{l:"ro",t:{"Any link":{v:["Orice link"]}}},{l:"ru",t:{"Any link":{v:["Любая ссылка"]}}},{l:"sk",t:{"Any link":{v:["Akýkoľvek odkaz"]}}},{l:"sl",t:{}},{l:"sr",t:{"Any link":{v:["Било који линк"]}}},{l:"sv",t:{"Any link":{v:["Vilken länk som helst"]}}},{l:"tr",t:{"Any link":{v:["Herhangi bir bağlantı"]}}},{l:"uk",t:{"Any link":{v:["Будь-яке посилання"]}}},{l:"uz",t:{"Any link":{v:["Har qanday havola"]}}},{l:"zh-CN",t:{"Any link":{v:["任何链接"]}}},{l:"zh-HK",t:{"Any link":{v:["任何連結"]}}},{l:"zh-TW",t:{"Any link":{v:["任何連結"]}}}],q=[{l:"ar",t:{"Anything shared with the same group of people will show up here":{v:["أيّ مادة تمت مشاركتها مع نفس المجموعة من الأشخاص سيتم عرضها هنا"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["خطأ في الحصول على الموارد ذات الصلة. يرجى الاتصال بمشرف النظام عندك إذا كان لديك أيّ أسئلة."]},"Related resources":{v:["مصادر ذات صلة"]}}},{l:"ast",t:{"Anything shared with the same group of people will show up here":{v:["Equí va apaecer tolo que compartas col mesmu grupu de persones"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Hebo un error al consiguir los recursos rellacionaos. Ponte en contautu col alministrador del sistema si tienes dalguna entruga."]},"Related resources":{v:["Recursos rellacionao"]}}},{l:"br",t:{}},{l:"ca",t:{"Anything shared with the same group of people will show up here":{v:["Qualsevol cosa compartida amb el mateix grup de persones es mostrarà aquí"]},"Related resources":{v:["Recursos relacionats"]}}},{l:"cs",t:{"Anything shared with the same group of people will show up here":{v:["Cokoli nasdíleného stejné skupině lidí se zobrazí zde"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Chyba při získávání souvisejících prostředků. Pokud máte jakékoli dotazy, obraťte se na správce vámi využívaného systému."]},"Related resources":{v:["Související prostředky"]}}},{l:"cs-CZ",t:{"Anything shared with the same group of people will show up here":{v:["Cokoli nasdíleného stejné skupině lidí se zobrazí zde"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Chyba při získávání souvisejících prostředků. Pokud máte jakékoli dotazy, obraťte se na správce vámi využívaného systému."]},"Related resources":{v:["Související prostředky"]}}},{l:"da",t:{"Anything shared with the same group of people will show up here":{v:["Alt der deles med samme gruppe af personer vil vises her"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Fejl ved hentning af relaterede ressourcer. Kontakt venligst din systemadministrator, hvis du har spørgsmål."]},"Related resources":{v:["Relaterede emner"]}}},{l:"de",t:{"Anything shared with the same group of people will show up here":{v:["Alles, das mit derselben Gruppe von Personen geteilt wird, wird hier angezeigt"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Fehler beim Abrufen verwandter Ressourcen. Bei Fragen wende dich bitte an deinen Systemadministrator."]},"Related resources":{v:["Verwandte Ressourcen"]}}},{l:"de-DE",t:{"Anything shared with the same group of people will show up here":{v:["Alles, das mit derselben Gruppe von Personen geteilt wird, wird hier angezeigt"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Fehler beim Abrufen verwandter Ressourcen. Bei Fragen wenden Sie sich bitte an Ihre Systemadministration."]},"Related resources":{v:["Verwandte Ressourcen"]}}},{l:"el",t:{"Anything shared with the same group of people will show up here":{v:["Οτιδήποτε μοιράζεται με την ίδια ομάδα ατόμων θα εμφανίζεται εδώ"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Σφάλμα λήψης σχετικών πόρων. Παρακαλούμε επικοινωνήστε με τον διαχειριστή του συστήματός σας εάν έχετε οποιεσδήποτε ερωτήσεις."]},"Related resources":{v:["Σχετικοί πόροι"]}}},{l:"en-GB",t:{"Anything shared with the same group of people will show up here":{v:["Anything shared with the same group of people will show up here"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Error getting related resources. Please contact your system administrator if you have any questions."]},"Related resources":{v:["Related resources"]}}},{l:"eo",t:{}},{l:"es",t:{"Anything shared with the same group of people will show up here":{v:["Cualquier cosa que esté compartida con el mismo grupo de personas se mostrará aquí"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Error al obtener recursos relacionados. Por favor, contacte a su administrador del sistema si tiene alguna pregunta."]},"Related resources":{v:["Recursos relacionados"]}}},{l:"es-AR",t:{"Anything shared with the same group of people will show up here":{v:["Cualquier cosa compartida con el mismo grupo de personas aparecerá aquí."]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Error al obtener recursos relacionados. Por favor, contacte a su administrador del sistema si tiene alguna pregunta."]},"Related resources":{v:["Recursos relacionados"]}}},{l:"es-EC",t:{"Anything shared with the same group of people will show up here":{v:["Cualquier cosa compartida con el mismo grupo de personas aparecerá aquí."]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Error al obtener recursos relacionados. Por favor, contacta a tu administrador del sistema si tienes alguna pregunta."]},"Related resources":{v:["Recursos relacionados"]}}},{l:"es-MX",t:{"Anything shared with the same group of people will show up here":{v:["Todo lo que se comparta con el mismo grupo de personas se mostrará aquí"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Error al obtener recursos relacionados. Por favor contacte al administrador si tiene alguna pregunta."]},"Related resources":{v:["Recursos relacionados"]}}},{l:"et-EE",t:{"Anything shared with the same group of people will show up here":{v:["Siin kuvatakse kõik, mida jagatakse sama kasutajagrupiga"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Viga seotud ressursside saamisel. Küsimuste korral võtke ühendust oma süsteemiadministraatoriga."]},"Related resources":{v:["Seotud ressursid"]}}},{l:"eu",t:{"Anything shared with the same group of people will show up here":{v:["Pertsona-talde berarekin partekatutako edozer agertuko da hemen"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Errore bat gertatu da erlazionatutako baliabideak eskuratzean. Jarri harremanetan zure sistemaren administratzailearekin galderarik baduzu."]},"Related resources":{v:["Erlazionatutako baliabideak"]}}},{l:"fa",t:{"Anything shared with the same group of people will show up here":{v:["هر چیزی که با گروه مشابهی هم‌رسانی شود در این قسمت نمایش می‌یابد"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["خطا در دریافت منابع مرتبط. لطفاً در صورت داشتن هر گونه سؤال با مدیر سیستم خود تماس بگیرید."]},"Related resources":{v:["منابع مرتبط"]}}},{l:"fi",t:{"Anything shared with the same group of people will show up here":{v:["Kaikki saman ryhmän kesken jaettu näkyy tässä"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Virhe resurssien haussa. Ota yhteyttä järjestelmän ylläpitäjään, mikäli sinulla on kysyttävää."]},"Related resources":{v:["Liittyvät resurssit"]}}},{l:"fr",t:{"Anything shared with the same group of people will show up here":{v:["Tout ce qui est partagé avec le même groupe de personnes apparaîtra ici"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Erreur lors de la récupération des ressources liées. Contactez votre administrateur système pour répondre à vos éventuelles questions."]},"Related resources":{v:["Ressources liées"]}}},{l:"ga",t:{"Anything shared with the same group of people will show up here":{v:["Taispeánfar aon rud a roinntear leis an ngrúpa céanna daoine anseo"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Earráid agus acmhainní gaolmhara á bhfáil. Déan teagmháil le riarthóir do chórais má tá aon cheist agat."]},"Related resources":{v:["Acmhainní gaolmhara"]}}},{l:"gl",t:{"Anything shared with the same group of people will show up here":{v:["Todo o que se comparta co mesmo grupo de persoas aparecerá aquí"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Produciuse un erro ao obter os recursos relacionados. Póñase en contacto coa administración do seu sistema se ten algunha dúbida."]},"Related resources":{v:["Recursos relacionados"]}}},{l:"he",t:{"Anything shared with the same group of people will show up here":{v:["כל מה שמשותף עם אותה קבוצת האנשים יופיע כאן"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["שגיאה בקבלת המשאבים הקשורים. נא ליצור קשר עם הנהלת המערכת אם יש לך שאלות."]},"Related resources":{v:["משאבים קשורים"]}}},{l:"hu",t:{"Anything shared with the same group of people will show up here":{v:["Minden, amit ugyanazzal a csoporttal oszt meg, itt fog megjelenni"]},"Related resources":{v:["Kapcsolódó erőforrások"]}}},{l:"id",t:{"Anything shared with the same group of people will show up here":{v:["Apa pun yang dibagikan dengan grup orang yang sama akan muncul di sini"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Kesalahan saat mengambil sumber daya terkait. Hubungi administrator sistem Anda jika ada pertanyaan."]},"Related resources":{v:["Sumber daya terkait"]}}},{l:"is",t:{"Anything shared with the same group of people will show up here":{v:["Allt sem deilt er með sama hópi fólks mun birtast hér"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Villa við að sækja tengd tilföng. Hafðu samband við kerfisstjórann þinn ef þú ert með einhverjar spurningar."]},"Related resources":{v:["Tengd tilföng"]}}},{l:"it",t:{"Anything shared with the same group of people will show up here":{v:["Tutto ciò che è stato condiviso con lo stesso gruppo di persone viene visualizzato qui"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Errore nell'ottenere le risorse correlate. Per qualsiasi domanda, contattare l'amministratore di sistema."]},"Related resources":{v:["Risorse correlate"]}}},{l:"ja",t:{"Anything shared with the same group of people will show up here":{v:["同じグループで共有しているものは、全てここに表示されます"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["関連リソースの取得エラー。ご不明な点がございましたら、システム管理者にお問い合わせください。"]},"Related resources":{v:["関連リソース"]}}},{l:"ja-JP",t:{"Anything shared with the same group of people will show up here":{v:["同じグループで共有しているものは、全てここに表示されます"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["関連リソースの取得エラー。ご不明な点がございましたら、システム管理者にお問い合わせください。"]},"Related resources":{v:["関連リソース"]}}},{l:"ko",t:{"Anything shared with the same group of people will show up here":{v:["같은 그룹의 사용자와 공유된 모든 것들이 이곳에 나타납니다."]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["관련 리소스를 가져오는 중 오류가 발생했습니다. 궁금한 것이 있는 경우 시스템 관리자에게 연락해 주세요."]},"Related resources":{v:["관련 리소스"]}}},{l:"lo",t:{"Anything shared with the same group of people will show up here":{v:["ທຸກຢ່າງທີ່ແບ່ງປັນກັບກຸ່ມຄົນດຽວກັນຈະສະແດງຢູ່ບ່ອນນີ້"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["ເກີດຂໍ້ຜິດພາດໃນການເອີ້ນຂໍ້ມູນຊັບພະຍາກອນທີ່ກ່ຽວຂ້ອງ. ກະລຸນາຕິດຕໍ່ຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານ ຖ້າທ່ານມີຄຳຖາມ."]},"Related resources":{v:["ຊັບພະຍາກອນທີ່ກ່ຽວຂ້ອງ"]}}},{l:"lt-LT",t:{}},{l:"lv",t:{}},{l:"mk",t:{"Anything shared with the same group of people will show up here":{v:["Сè што е споделено со истата група луѓе ќе се појави овде"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Грешка при добивање поврзани ресурси. Ве молиме контактирајте го вашиот систем администратор ако имате прашања."]},"Related resources":{v:["Поврзани ресурси"]}}},{l:"my",t:{}},{l:"nb",t:{"Anything shared with the same group of people will show up here":{v:["Alt som er delt med den samme gruppen vil vises her"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Feil ved henting av relaterte ressurser. Kontakt systemansvarlig hvis du har spørsmål."]},"Related resources":{v:["Relaterte ressurser"]}}},{l:"nl",t:{"Anything shared with the same group of people will show up here":{v:["Alles dat gedeeld is met dezelfde groep mensen zal hier getoond worden"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Fout bij het ophalen van gerelateerde bronnen. Neem contact op met uw systeembeheerder als u vragen heeft."]},"Related resources":{v:["Gerelateerde bronnen"]}}},{l:"oc",t:{}},{l:"pl",t:{"Anything shared with the same group of people will show up here":{v:["Tutaj pojawi się wszystko, co zostało udostępnione tej samej grupie osób"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Błąd podczas pobierania powiązanych zasobów. Jeśli masz jakiekolwiek pytania, skontaktuj się z administratorem systemu."]},"Related resources":{v:["Powiązane zasoby"]}}},{l:"pt-BR",t:{"Anything shared with the same group of people will show up here":{v:["Qualquer coisa compartilhada com o mesmo grupo de pessoas aparecerá aqui"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Erro ao obter recursos relacionados. Por favor, entre em contato com o administrador do sistema se tiver alguma dúvida."]},"Related resources":{v:["Recursos relacionados"]}}},{l:"pt-PT",t:{"Anything shared with the same group of people will show up here":{v:["Qualquer coisa partilhada com o mesmo grupo de pessoas irá aparecer aqui"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Erro ao obter os recursos relacionados. Por favor, contacte o administrador do sistema se tiver quaisquer perguntas."]},"Related resources":{v:["Recursos relacionados"]}}},{l:"ro",t:{"Anything shared with the same group of people will show up here":{v:["Tot ceea ce este partajat cu același grup de persoane va fi afișat aici"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Eroare la preluarea resurselor adiționale. Vă rugăm să contactați administratorul pentru întrebări."]},"Related resources":{v:["Resurse legate"]}}},{l:"ru",t:{"Anything shared with the same group of people will show up here":{v:["Всё, чем поделились с той же группой людей, будет отображаться здесь"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Ошибка при получении связанных ресурсов. Если у вас есть какие-либо вопросы, обратитесь к системному администратору."]},"Related resources":{v:["Связанные ресурсы"]}}},{l:"sk",t:{"Anything shared with the same group of people will show up here":{v:["Tu sa zobrazí čokoľvek zdieľané s rovnakou skupinou ľudí"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Chyba pri získavaní súvisiacich zdrojov. V prípade otázok kontaktujte prosím svojho systemového administrátora."]},"Related resources":{v:["Súvisiace zdroje"]}}},{l:"sl",t:{"Related resources":{v:["Povezani viri"]}}},{l:"sr",t:{"Anything shared with the same group of people will show up here":{v:["Све што се дели са истом групом људи ће се појавити овде"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Грешка код прибављања везаних ресурса. Молимо вас да се обратите администратору ако имате питања."]},"Related resources":{v:["Повезани ресурси"]}}},{l:"sv",t:{"Anything shared with the same group of people will show up here":{v:["Något som delats med samma grupp av personer kommer att visas här"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Det gick inte att hämta relaterade resurser. Kontakta din systemadministratör om du har några frågor."]},"Related resources":{v:["Relaterade resurser"]}}},{l:"tr",t:{"Anything shared with the same group of people will show up here":{v:["Aynı kişi grubu ile paylaşılan herşey burada görüntülenir"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["İlgili kaynaklara ulaşılırken sorun çıktı. Herhangi bir sorunuz varsa lütfen sistem yöneticiniz ile görüşün "]},"Related resources":{v:["İlgili kaynaklar"]}}},{l:"uk",t:{"Anything shared with the same group of people will show up here":{v:["Будь-що доступне для цієї же групи людей буде показано тут"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Помилка під час отримання пов'язаних ресурсів. Будь ласка, сконтактуйте з системним адміністратором, якщо у вас виникли запитання."]},"Related resources":{v:["Пов'язані ресурси"]}}},{l:"uz",t:{"Anything shared with the same group of people will show up here":{v:["Xuddi shu guruhdagi odamlarga ulashilgan hamma narsa shu yerda chiqadi"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["Tegishli manbalarni olishda xatolik yuz berdi. Savollaringiz bo'lsa, tizim administratoriga murojaat qiling."]},"Related resources":{v:["Tegishli manbalar"]}}},{l:"zh-CN",t:{"Anything shared with the same group of people will show up here":{v:["与同组用户分享的所有内容都会显示于此"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["获取相关资源出现错误。如果你有任何问题,请联系系统管理员。"]},"Related resources":{v:["相关资源"]}}},{l:"zh-HK",t:{"Anything shared with the same group of people will show up here":{v:["與同一組人共享的任何內容都會顯示在此處"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["取得相關資源時發生錯誤。如果有任何問題,請聯絡系統管理員。"]},"Related resources":{v:["相關資源"]}}},{l:"zh-TW",t:{"Anything shared with the same group of people will show up here":{v:["與相同群組分享的所有內容都會顯示於此"]},"Error getting related resources. Please contact your system administrator if you have any questions.":{v:["取得相關資源時發生錯誤。如果有任何問題,請聯絡系統管理員。"]},"Related resources":{v:["相關資源"]}}}],W=[{l:"ar",t:{"Avatar of {displayName}":{v:["صورة الملف الشخصي الرمزية لــ {displayName} "]},"Avatar of {displayName}, {status}":{v:["صورة الملف الشخصي الرمزية لــ {displayName}، {status}"]}}},{l:"ast",t:{"Avatar of {displayName}":{v:["Avatar de: {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar de: {displayName}, {status}"]}}},{l:"br",t:{}},{l:"ca",t:{"Avatar of {displayName}":{v:["Avatar de {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar de {displayName}, {status}"]}}},{l:"cs",t:{"Avatar of {displayName}":{v:["Zástupný obrázek uživatele {displayName}"]},"Avatar of {displayName}, {status}":{v:["Zástupný obrázek uživatele {displayName}, {status}"]}}},{l:"cs-CZ",t:{"Avatar of {displayName}":{v:["Zástupný obrázek uživatele {displayName}"]},"Avatar of {displayName}, {status}":{v:["Zástupný obrázek uživatele {displayName}, {status}"]}}},{l:"da",t:{"Avatar of {displayName}":{v:["Avatar af {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar af {displayName}, {status}"]}}},{l:"de",t:{"Avatar of {displayName}":{v:["Avatar von {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar von {displayName}, {status}"]}}},{l:"de-DE",t:{"Avatar of {displayName}":{v:["Avatar von {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar von {displayName}, {status}"]}}},{l:"el",t:{"Avatar of {displayName}":{v:["Άβαταρ του {displayName}"]},"Avatar of {displayName}, {status}":{v:["Άβαταρ του {displayName}, {status}"]}}},{l:"en-GB",t:{"Avatar of {displayName}":{v:["Avatar of {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar of {displayName}, {status}"]}}},{l:"eo",t:{}},{l:"es",t:{"Avatar of {displayName}":{v:["Avatar de {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar de {displayName}, {status}"]}}},{l:"es-AR",t:{"Avatar of {displayName}":{v:["Avatar de {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar de {displayName}, {status}"]}}},{l:"es-EC",t:{"Avatar of {displayName}":{v:["Avatar de {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar de {displayName}, {status}"]}}},{l:"es-MX",t:{"Avatar of {displayName}":{v:["Avatar de {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar de {displayName}, {status}"]}}},{l:"et-EE",t:{"Avatar of {displayName}":{v:["Avatar {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar {displayName}, {status}"]}}},{l:"eu",t:{"Avatar of {displayName}":{v:["{displayName}-(e)n irudia"]},"Avatar of {displayName}, {status}":{v:["{displayName} -(e)n irudia, {status}"]}}},{l:"fa",t:{"Avatar of {displayName}":{v:["آواتار {displayName}"]},"Avatar of {displayName}, {status}":{v:["آواتار {displayName} ، {status}"]}}},{l:"fi",t:{"Avatar of {displayName}":{v:["{displayName}n avatar"]},"Avatar of {displayName}, {status}":{v:["{displayName}n avatar, {status}"]}}},{l:"fr",t:{"Avatar of {displayName}":{v:["Avatar de {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar de {displayName}, {status}"]}}},{l:"ga",t:{"Avatar of {displayName}":{v:["Avatar de {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar de {displayName}, {status}"]}}},{l:"gl",t:{"Avatar of {displayName}":{v:["Avatar de {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar de {displayName}, {status}"]}}},{l:"he",t:{"Avatar of {displayName}":{v:["תמונה ייצוגית של {displayName}"]},"Avatar of {displayName}, {status}":{v:["תמונה ייצוגית של {displayName}, {status}"]}}},{l:"hu",t:{"Avatar of {displayName}":{v:["{displayName} profilképe"]},"Avatar of {displayName}, {status}":{v:["{displayName} profilképe, {status}"]}}},{l:"id",t:{"Avatar of {displayName}":{v:["Avatar {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar {displayName}, {status}"]}}},{l:"is",t:{"Avatar of {displayName}":{v:["Auðkennismynd fyrir {displayName}"]},"Avatar of {displayName}, {status}":{v:["Auðkennismynd fyrir {displayName}, {status}"]}}},{l:"it",t:{"Avatar of {displayName}":{v:["Avatar di {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar di {displayName}, {status}"]}}},{l:"ja",t:{"Avatar of {displayName}":{v:["{displayName} のアバター"]},"Avatar of {displayName}, {status}":{v:["{displayName}, {status} のアバター"]}}},{l:"ja-JP",t:{"Avatar of {displayName}":{v:["{displayName} のアバター"]},"Avatar of {displayName}, {status}":{v:["{displayName}, {status} のアバター"]}}},{l:"ko",t:{"Avatar of {displayName}":{v:["{displayName}님의 아바타"]},"Avatar of {displayName}, {status}":{v:["{displayName}, {status}님의 아바타"]}}},{l:"lo",t:{"Avatar of {displayName}":{v:["ຮູບແທນຕົວຂອງ {displayName}"]},"Avatar of {displayName}, {status}":{v:["ຮູບແທນຕົວຂອງ {displayName}, {status}"]}}},{l:"lt-LT",t:{}},{l:"lv",t:{}},{l:"mk",t:{"Avatar of {displayName}":{v:["Аватар на {displayName}"]},"Avatar of {displayName}, {status}":{v:["Аватар на {displayName}, {status}"]}}},{l:"my",t:{"Avatar of {displayName}":{v:["{displayName} ၏ ကိုယ်ပွား"]}}},{l:"nb",t:{"Avatar of {displayName}":{v:["Avataren til {displayName}"]},"Avatar of {displayName}, {status}":{v:["{displayName}'s avatar, {status}"]}}},{l:"nl",t:{"Avatar of {displayName}":{v:["Avatar van {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar van {displayName}, {status}"]}}},{l:"oc",t:{}},{l:"pl",t:{"Avatar of {displayName}":{v:["Awatar {displayName}"]},"Avatar of {displayName}, {status}":{v:["Awatar {displayName}, {status}"]}}},{l:"pt-BR",t:{"Avatar of {displayName}":{v:["Avatar de {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar de {displayName}, {status}"]}}},{l:"pt-PT",t:{"Avatar of {displayName}":{v:["Avatar de {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar de {displayName}, {status}"]}}},{l:"ro",t:{"Avatar of {displayName}":{v:["Avatarul lui {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatarul lui {displayName}, {status}"]}}},{l:"ru",t:{"Avatar of {displayName}":{v:["Аватар {displayName}"]},"Avatar of {displayName}, {status}":{v:["Фотография {displayName}, {status}"]}}},{l:"sk",t:{"Avatar of {displayName}":{v:["Avatar {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar {displayName}, {status}"]}}},{l:"sl",t:{"Avatar of {displayName}":{v:["Podoba {displayName}"]},"Avatar of {displayName}, {status}":{v:["Prikazna slika {displayName}, {status}"]}}},{l:"sr",t:{"Avatar of {displayName}":{v:["Аватар за {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar za {displayName}, {status}"]}}},{l:"sv",t:{"Avatar of {displayName}":{v:["{displayName}s avatar"]},"Avatar of {displayName}, {status}":{v:["{displayName}s avatar, {status}"]}}},{l:"tr",t:{"Avatar of {displayName}":{v:["{displayName} avatarı"]},"Avatar of {displayName}, {status}":{v:["{displayName}, {status} avatarı"]}}},{l:"uk",t:{"Avatar of {displayName}":{v:["Аватар {displayName}"]},"Avatar of {displayName}, {status}":{v:["Аватар {displayName}, {status}"]}}},{l:"uz",t:{"Avatar of {displayName}":{v:[" {displayName}Avatari"]},"Avatar of {displayName}, {status}":{v:["{displayName}, {status} Avatari"]}}},{l:"zh-CN",t:{"Avatar of {displayName}":{v:["{displayName}的头像"]},"Avatar of {displayName}, {status}":{v:["{displayName}的头像,{status}"]}}},{l:"zh-HK",t:{"Avatar of {displayName}":{v:["{displayName} 的頭像"]},"Avatar of {displayName}, {status}":{v:["{displayName} 的頭像,{status}"]}}},{l:"zh-TW",t:{"Avatar of {displayName}":{v:["{displayName} 的大頭照"]},"Avatar of {displayName}, {status}":{v:["{displayName}, {status} 的大頭照"]}}}],H=[{l:"ar",t:{away:{v:["غير موجود"]},busy:{v:["مشغول"]},"do not disturb":{v:["يُرجى عدم الإزعاج"]},invisible:{v:["غير مرئي"]},offline:{v:["غير متصل"]},online:{v:["متصل"]}}},{l:"ast",t:{away:{v:["ausente"]},busy:{v:["ocupáu"]},"do not disturb":{v:["nun molestar"]},invisible:{v:["invisible"]},offline:{v:["desconectáu"]},online:{v:["en llinia"]}}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{away:{v:["pryč"]},busy:{v:["zaneprádněn(a)"]},"do not disturb":{v:["nerušit"]},invisible:{v:["neviditelné"]},offline:{v:["offline"]},online:{v:["online"]}}},{l:"cs-CZ",t:{away:{v:["pryč"]},busy:{v:["zaneprádněn(a)"]},"do not disturb":{v:["nerušit"]},invisible:{v:["neviditelné"]},offline:{v:["offline"]},online:{v:["online"]}}},{l:"da",t:{away:{v:["væk"]},busy:{v:["optaget"]},"do not disturb":{v:["forstyr ikke"]},invisible:{v:["usynlig"]},offline:{v:["offline"]},online:{v:["online"]}}},{l:"de",t:{away:{v:["Abwesend"]},busy:{v:["Beschäftigt"]},"do not disturb":{v:["Bitte nicht stören"]},invisible:{v:["Unsichtbar"]},offline:{v:["Offline"]},online:{v:["Online"]}}},{l:"de-DE",t:{away:{v:["Abwesend"]},busy:{v:["Beschäftigt"]},"do not disturb":{v:["Bitte nicht stören"]},invisible:{v:["Unsichtbar"]},offline:{v:["Offline"]},online:{v:["Online"]}}},{l:"el",t:{away:{v:["μακριά"]},busy:{v:["απασχολημένος"]},"do not disturb":{v:["μην ενοχλείτε"]},invisible:{v:["αόρατο"]},offline:{v:["εκτός σύνδεσης"]},online:{v:["συνδεδεμένος"]}}},{l:"en-GB",t:{away:{v:["away"]},busy:{v:["busy"]},"do not disturb":{v:["do not disturb"]},invisible:{v:["invisible"]},offline:{v:["offline"]},online:{v:["online"]}}},{l:"eo",t:{}},{l:"es",t:{away:{v:["ausente"]},busy:{v:["ocupado"]},"do not disturb":{v:["no molestar"]},invisible:{v:["invisible"]},offline:{v:["fuera de línea"]},online:{v:["en línea"]}}},{l:"es-AR",t:{away:{v:["ausente"]},busy:{v:["ocupado"]},"do not disturb":{v:["no molestar"]},invisible:{v:["invisible"]},offline:{v:["desconectado"]},online:{v:["en línea"]}}},{l:"es-EC",t:{}},{l:"es-MX",t:{away:{v:["ausente"]},busy:{v:["ocupado"]},"do not disturb":{v:["no molestar"]},invisible:{v:["invisible"]},offline:{v:["fuera de línea"]},online:{v:["en línea"]}}},{l:"et-EE",t:{away:{v:["eemal"]},busy:{v:["hõivatud"]},"do not disturb":{v:["ära sega"]},invisible:{v:["nähtamatu"]},offline:{v:["pole võrgus"]},online:{v:["võrgus"]}}},{l:"eu",t:{}},{l:"fa",t:{away:{v:["دور از دستگاه"]},busy:{v:["مشغول"]},"do not disturb":{v:["مزاحم نشوید"]},invisible:{v:["مخفی"]},offline:{v:["برون‌خط"]},online:{v:["برخط"]}}},{l:"fi",t:{away:{v:["poissa"]},busy:{v:["varattu"]},"do not disturb":{v:["älä häiritse"]},invisible:{v:["näkymätön"]},offline:{v:["ei linjalla"]},online:{v:["linjalla"]}}},{l:"fr",t:{away:{v:["absent"]},busy:{v:["occupé"]},"do not disturb":{v:["ne pas déranger"]},invisible:{v:["invisible"]},offline:{v:["hors ligne"]},online:{v:["en ligne"]}}},{l:"ga",t:{away:{v:["ar shiúl"]},busy:{v:["gnóthach"]},"do not disturb":{v:["ná cur as"]},invisible:{v:["dofheicthe"]},offline:{v:["as líne"]},online:{v:["ar líne"]}}},{l:"gl",t:{away:{v:["ausente"]},busy:{v:["ocupado"]},"do not disturb":{v:["non molestar"]},invisible:{v:["invisíbel"]},offline:{v:["desconectado"]},online:{v:["conectado"]}}},{l:"he",t:{}},{l:"hu",t:{}},{l:"id",t:{away:{v:["tidak tersedia"]},"do not disturb":{v:["jangan ganggu"]},offline:{v:["luring"]},online:{v:["daring"]}}},{l:"is",t:{away:{v:["í burtu"]},busy:{v:["upptekin/n"]},"do not disturb":{v:["ekki ónáða"]},invisible:{v:["ósýnilegt"]},offline:{v:["ónettengt"]},online:{v:["nettengt"]}}},{l:"it",t:{away:{v:["via"]},"do not disturb":{v:["non disturbare"]},offline:{v:["offline"]},online:{v:["online"]}}},{l:"ja",t:{away:{v:["離れる"]},busy:{v:["ビジー"]},"do not disturb":{v:["邪魔をしないでください"]},invisible:{v:["不可視"]},offline:{v:["オフライン"]},online:{v:["オンライン"]}}},{l:"ja-JP",t:{away:{v:["離れる"]},busy:{v:["ビジー"]},"do not disturb":{v:["邪魔をしないでください"]},invisible:{v:["不可視"]},offline:{v:["オフライン"]},online:{v:["オンライン"]}}},{l:"ko",t:{away:{v:["자리 비움"]},busy:{v:["바쁨"]},"do not disturb":{v:["방해 금지"]},invisible:{v:["보이지 않음"]},offline:{v:["오프라인"]},online:{v:["온라인"]}}},{l:"lo",t:{away:{v:["ບໍ່ຢູ່"]},busy:{v:["ບໍ່ວ່າງ"]},"do not disturb":{v:["ຫ້າມລົບກວນ"]},invisible:{v:["ບໍ່ສະແດງ"]},offline:{v:["ອອບໄລນ໌"]},online:{v:["ອອນໄລນ໌"]}}},{l:"lt-LT",t:{}},{l:"lv",t:{}},{l:"mk",t:{away:{v:["оддалечен"]},busy:{v:["зафатен"]},"do not disturb":{v:["не вознемирувај"]},invisible:{v:["невидливо"]},offline:{v:["офлајн"]},online:{v:["онлајн"]}}},{l:"my",t:{}},{l:"nb",t:{away:{v:["borte"]},busy:{v:["opptatt"]},"do not disturb":{v:["ikke forstyrr"]},invisible:{v:["usynlig"]},offline:{v:["frakoblet"]},online:{v:["tilkoblet"]}}},{l:"nl",t:{away:{v:["weg"]},busy:{v:["bezig"]},"do not disturb":{v:["niet storen"]},invisible:{v:["Onzichtbaar"]},offline:{v:["offline"]},online:{v:["online"]}}},{l:"oc",t:{}},{l:"pl",t:{away:{v:["stąd"]},busy:{v:["zajęty"]},"do not disturb":{v:["nie przeszkadzać"]},invisible:{v:["niewidzialny"]},offline:{v:["offline"]},online:{v:["online"]}}},{l:"pt-BR",t:{away:{v:["ausente"]},busy:{v:["ocupado"]},"do not disturb":{v:["não perturbe"]},invisible:{v:["invisível"]},offline:{v:["off-line"]},online:{v:["on-line"]}}},{l:"pt-PT",t:{away:{v:["longe"]},busy:{v:["ocupado"]},"do not disturb":{v:["não incomodar"]},invisible:{v:["invisível"]},offline:{v:["offline"]},online:{v:["online"]}}},{l:"ro",t:{away:{v:["plecat"]},"do not disturb":{v:["nu deranjați"]},offline:{v:["deconectat"]},online:{v:["online"]}}},{l:"ru",t:{away:{v:["отсутствие"]},busy:{v:["занятый"]},"do not disturb":{v:["не беспокоить"]},invisible:{v:["невидимый"]},offline:{v:["офлайн"]},online:{v:["онлайн"]}}},{l:"sk",t:{away:{v:["neprítomný"]},busy:{v:["zaneprázdnený"]},"do not disturb":{v:["nerušiť"]},invisible:{v:["neviditeľný"]},offline:{v:["Odpojený - offline"]},online:{v:["Pripojený - online"]}}},{l:"sl",t:{}},{l:"sr",t:{away:{v:["одсутан"]},busy:{v:["заузет"]},"do not disturb":{v:["не узнемиравај"]},invisible:{v:["невидљиво"]},offline:{v:["ван мреже"]},online:{v:["на мрежи"]}}},{l:"sv",t:{away:{v:["borta"]},busy:{v:["upptagen"]},"do not disturb":{v:["stör ej"]},invisible:{v:["osynlig"]},offline:{v:["offline"]},online:{v:["online"]}}},{l:"tr",t:{away:{v:["Uzakta"]},busy:{v:["Meşgul"]},"do not disturb":{v:["Rahatsız etmeyin"]},invisible:{v:["görünmez"]},offline:{v:["Çevrim dışı"]},online:{v:["Çevrim içi"]}}},{l:"uk",t:{away:{v:["відсутній"]},busy:{v:["зайнято"]},"do not disturb":{v:["не турбувати"]},invisible:{v:["Невидимий"]},offline:{v:["не в мережі"]},online:{v:["в мережі"]}}},{l:"uz",t:{away:{v:["uzoqda"]},busy:{v:["band"]},"do not disturb":{v:["bezovta qilmang"]},invisible:{v:["ko'rinmas"]},offline:{v:["offline"]},online:{v:["online"]}}},{l:"zh-CN",t:{away:{v:["离开"]},busy:{v:["繁忙"]},"do not disturb":{v:["请勿打扰"]},invisible:{v:["隐藏的"]},offline:{v:["离线"]},online:{v:["在线"]}}},{l:"zh-HK",t:{away:{v:["離開"]},busy:{v:["忙碌"]},"do not disturb":{v:["請勿打擾"]},invisible:{v:["隐藏的"]},offline:{v:["離線"]},online:{v:["在線"]}}},{l:"zh-TW",t:{away:{v:["離開"]},busy:{v:["忙碌"]},"do not disturb":{v:["請勿打擾"]},invisible:{v:["不可見"]},offline:{v:["離線"]},online:{v:["線上"]}}}],U=[{l:"ar",t:{"Back to provider selection":{v:["عودة إلى اختيار المزوّد"]},"Close Smart Picker":{v:["إغلاق المحدد الذكي"]},"Smart Picker":{v:["اللاقط الذكي smart picker"]}}},{l:"ast",t:{"Back to provider selection":{v:["Volver a la seleición de fornidores"]},"Close Smart Picker":{v:["Zarrar la seleición intelixente"]},"Smart Picker":{v:["Selector intelixente"]}}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{"Back to provider selection":{v:["Zpět na výběr poskytovatele"]},"Close Smart Picker":{v:["Zavřít inteligentní výběr"]},"Smart Picker":{v:["Inteligentní výběr"]}}},{l:"cs-CZ",t:{"Back to provider selection":{v:["Zpět na výběr poskytovatele"]},"Close Smart Picker":{v:["Zavřít inteligentní výběr"]},"Smart Picker":{v:["Inteligentní výběr"]}}},{l:"da",t:{"Back to provider selection":{v:["Tilbage til udbydervalg"]},"Close Smart Picker":{v:["Luk Smart Vælger"]},"Smart Picker":{v:["Smart Vælger"]}}},{l:"de",t:{"Back to provider selection":{v:["Zurück zur Anbieterauswahl"]},"Close Smart Picker":{v:["Smart Picker schließen"]},"Smart Picker":{v:["Smart Picker"]}}},{l:"de-DE",t:{"Back to provider selection":{v:["Zurück zur Anbieterauswahl"]},"Close Smart Picker":{v:["Smart Picker schließen"]},"Smart Picker":{v:["Smart Picker"]}}},{l:"el",t:{"Back to provider selection":{v:["Επιστροφή στην επιλογή παρόχου"]},"Close Smart Picker":{v:["Κλείσιμο Έξυπνης Επιλογής"]},"Smart Picker":{v:["Έξυπνη Επιλογή"]}}},{l:"en-GB",t:{"Back to provider selection":{v:["Back to provider selection"]},"Close Smart Picker":{v:["Close Smart Picker"]},"Smart Picker":{v:["Smart Picker"]}}},{l:"eo",t:{}},{l:"es",t:{"Back to provider selection":{v:["Volver a la selección de proveedor"]},"Close Smart Picker":{v:["Cerrar selector inteligente"]},"Smart Picker":{v:["Selector inteligente"]}}},{l:"es-AR",t:{"Back to provider selection":{v:["Volver a la selección de proveedor"]},"Close Smart Picker":{v:["Cerrar selector inteligente"]},"Smart Picker":{v:["Selector inteligente"]}}},{l:"es-EC",t:{"Back to provider selection":{v:["Volver a la selección de proveedor"]},"Close Smart Picker":{v:["Cerrar selector inteligente"]},"Smart Picker":{v:["Selector inteligente"]}}},{l:"es-MX",t:{"Back to provider selection":{v:["Volver a la selección de proveedor"]},"Close Smart Picker":{v:["Cerrar selector inteligente"]},"Smart Picker":{v:["Selector inteligente"]}}},{l:"et-EE",t:{"Back to provider selection":{v:["Tagasi teenusepakkuja valiku juurde"]},"Close Smart Picker":{v:["Sulge nutikas valija"]},"Smart Picker":{v:["Nutikas valija"]}}},{l:"eu",t:{"Back to provider selection":{v:["Itzuli hornitzaileen hautapenera"]},"Close Smart Picker":{v:["Itxi hautatzaile adimenduna"]},"Smart Picker":{v:["Hautatzaile adimenduna"]}}},{l:"fa",t:{"Back to provider selection":{v:["بازگشت به انتخاب ارائه دهنده"]},"Close Smart Picker":{v:["بستن انتخاب‌گر هوشمند"]},"Smart Picker":{v:["انتخابگر هوشمند"]}}},{l:"fi",t:{"Back to provider selection":{v:["Takaisin toimittajavalintaan"]},"Close Smart Picker":{v:["Sulje älykas valitsin"]},"Smart Picker":{v:["Älykäs valitsin"]}}},{l:"fr",t:{"Back to provider selection":{v:["Revenir à la sélection du fournisseur"]},"Close Smart Picker":{v:["Fermer le sélecteur intelligent"]},"Smart Picker":{v:["Sélecteur intelligent"]}}},{l:"ga",t:{"Back to provider selection":{v:["Ar ais go roghnú soláthróra"]},"Close Smart Picker":{v:["Dún Piocálaí Cliste"]},"Smart Picker":{v:["Roghnóir Cliste"]}}},{l:"gl",t:{"Back to provider selection":{v:["Volver á selección do provedor"]},"Close Smart Picker":{v:["Pechar o Selector intelixente"]},"Smart Picker":{v:["Selector intelixente"]}}},{l:"he",t:{"Back to provider selection":{v:["חזרה לבחירת ספק"]},"Close Smart Picker":{v:["סגירת הבורר החכם"]},"Smart Picker":{v:["בורר חכם"]}}},{l:"hu",t:{}},{l:"id",t:{"Back to provider selection":{v:["Kembali ke pemilihan penyedia"]},"Close Smart Picker":{v:["Tutup Pemilih Cerdas"]},"Smart Picker":{v:["Pemilih Cerdas"]}}},{l:"is",t:{"Back to provider selection":{v:["Til baka í val á þjónustuveitu"]},"Close Smart Picker":{v:["Loka snjall-veljara"]},"Smart Picker":{v:["Snjall-veljari"]}}},{l:"it",t:{"Back to provider selection":{v:["Torna alla selezione del provider"]},"Close Smart Picker":{v:["Chiudere lo Smart Picker"]},"Smart Picker":{v:["Picker intelligente"]}}},{l:"ja",t:{"Back to provider selection":{v:["プロバイダーの選択に戻る"]},"Close Smart Picker":{v:["スマートピッカーを閉じる"]},"Smart Picker":{v:["スマートピッカー"]}}},{l:"ja-JP",t:{"Back to provider selection":{v:["プロバイダーの選択に戻る"]},"Close Smart Picker":{v:["スマートピッカーを閉じる"]},"Smart Picker":{v:["スマートピッカー"]}}},{l:"ko",t:{"Back to provider selection":{v:["제공자 선택으로 돌아가기"]},"Close Smart Picker":{v:["스마트 선택기 닫기"]},"Smart Picker":{v:["스마트 선택기"]}}},{l:"lo",t:{"Back to provider selection":{v:["ກັບໄປທີ່ການເລືອກຜູ້ໃຫ້ບໍລິການ"]},"Close Smart Picker":{v:["ປິດໂຕເລືອກອັດສະລິຍະ"]},"Smart Picker":{v:["ໂຕເລືອກອັດສະລິຍະ"]}}},{l:"lt-LT",t:{}},{l:"lv",t:{}},{l:"mk",t:{"Back to provider selection":{v:["Назад до избор на провајдер"]},"Close Smart Picker":{v:["Затвори паметен избирач"]},"Smart Picker":{v:["Паметен избирач"]}}},{l:"my",t:{}},{l:"nb",t:{"Back to provider selection":{v:["Tilbake til leverandørvalg"]},"Close Smart Picker":{v:["Lukk Smart Velger"]},"Smart Picker":{v:["Smart Velger"]}}},{l:"nl",t:{"Back to provider selection":{v:["Terug naar provider selectie"]},"Close Smart Picker":{v:["Slimme Kiezer sluiten"]},"Smart Picker":{v:["Slimme Kiezer"]}}},{l:"oc",t:{}},{l:"pl",t:{"Back to provider selection":{v:["Powrót do wyboru dostawcy"]},"Close Smart Picker":{v:["Zamknij inteligentny selektor"]},"Smart Picker":{v:["Inteligentne wybieranie"]}}},{l:"pt-BR",t:{"Back to provider selection":{v:["Voltar para seleção de provedor"]},"Close Smart Picker":{v:["Fechar Seletor Inteligente"]},"Smart Picker":{v:["Seletor Inteligente"]}}},{l:"pt-PT",t:{"Back to provider selection":{v:["Voltar à seleção de fornecedor"]},"Close Smart Picker":{v:['Fechar "Smart Picker"']},"Smart Picker":{v:["Smart Picker"]}}},{l:"ro",t:{"Back to provider selection":{v:["Înapoi la selecția providerului"]},"Close Smart Picker":{v:["Închide Smart Picker"]},"Smart Picker":{v:["Smart Picker"]}}},{l:"ru",t:{"Back to provider selection":{v:["Вернуться к выбору провайдера"]},"Close Smart Picker":{v:["Закрыть интеллектуальный выбор"]},"Smart Picker":{v:["Умный выбор"]}}},{l:"sk",t:{"Back to provider selection":{v:["Späť na výber poskytovateľa"]},"Close Smart Picker":{v:["Zavrieť inteligentný výber"]},"Smart Picker":{v:["Inteligentný výber"]}}},{l:"sl",t:{}},{l:"sr",t:{"Back to provider selection":{v:["Назад на избор пружаоца"]},"Close Smart Picker":{v:["Затвори паметни бирач"]},"Smart Picker":{v:["Паметни бирач"]}}},{l:"sv",t:{"Back to provider selection":{v:["Tillbaka till leverantörsval"]},"Close Smart Picker":{v:["Stäng Smart Picker"]},"Smart Picker":{v:["Smart Picker"]}}},{l:"tr",t:{"Back to provider selection":{v:["Hizmet sağlayıcı seçimine dön"]},"Close Smart Picker":{v:["Akıllı seçimi kapat"]},"Smart Picker":{v:["Akıllı seçim"]}}},{l:"uk",t:{"Back to provider selection":{v:["Назад до вибору постачальника"]},"Close Smart Picker":{v:["Закрити асистент вибору"]},"Smart Picker":{v:["Асистент вибору"]}}},{l:"uz",t:{"Back to provider selection":{v:["Provayder tanloviga qaytish"]},"Close Smart Picker":{v:["Smart Picker-ni yoping"]},"Smart Picker":{v:["Aqlli tanlovchi"]}}},{l:"zh-CN",t:{"Back to provider selection":{v:["返回至提供者选择列表"]},"Close Smart Picker":{v:["关闭智能拾取器"]},"Smart Picker":{v:["智能拾取器"]}}},{l:"zh-HK",t:{"Back to provider selection":{v:["回到提供者選擇"]},"Close Smart Picker":{v:["關閉 Smart Picker"]},"Smart Picker":{v:["Smart Picker"]}}},{l:"zh-TW",t:{"Back to provider selection":{v:["回到提供者選擇"]},"Close Smart Picker":{v:["關閉智慧型挑選器"]},"Smart Picker":{v:["智慧型挑選器"]}}}],G=[{l:"ar",t:{"Cancel changes":{v:["إلغاء التغييرات"]},"Confirm changes":{v:["تأكيد التغييرات"]}}},{l:"ast",t:{"Cancel changes":{v:["Encaboxar los cambeos"]},"Confirm changes":{v:["Confirmar los cambeos"]}}},{l:"br",t:{}},{l:"ca",t:{"Cancel changes":{v:["Cancel·la els canvis"]},"Confirm changes":{v:["Confirmeu els canvis"]}}},{l:"cs",t:{"Cancel changes":{v:["Zrušit změny"]},"Confirm changes":{v:["Potvrdit změny"]}}},{l:"cs-CZ",t:{"Cancel changes":{v:["Zrušit změny"]},"Confirm changes":{v:["Potvrdit změny"]}}},{l:"da",t:{"Cancel changes":{v:["Annuller ændringer"]},"Confirm changes":{v:["Bekræft ændringer"]}}},{l:"de",t:{"Cancel changes":{v:["Änderungen verwerfen"]},"Confirm changes":{v:["Änderungen bestätigen"]}}},{l:"de-DE",t:{"Cancel changes":{v:["Änderungen verwerfen"]},"Confirm changes":{v:["Änderungen bestätigen"]}}},{l:"el",t:{"Cancel changes":{v:["Ακύρωση αλλαγών"]},"Confirm changes":{v:["Επιβεβαίωση αλλαγών"]}}},{l:"en-GB",t:{"Cancel changes":{v:["Cancel changes"]},"Confirm changes":{v:["Confirm changes"]}}},{l:"eo",t:{}},{l:"es",t:{"Cancel changes":{v:["Cancelar cambios"]},"Confirm changes":{v:["Confirmar cambios"]}}},{l:"es-AR",t:{"Cancel changes":{v:["Cancelar cambios"]},"Confirm changes":{v:["Confirmar cambios"]}}},{l:"es-EC",t:{"Cancel changes":{v:["Cancelar cambios"]},"Confirm changes":{v:["Confirmar cambios"]}}},{l:"es-MX",t:{"Cancel changes":{v:["Cancelar cambios"]},"Confirm changes":{v:["Confirmar cambios"]}}},{l:"et-EE",t:{"Cancel changes":{v:["Tühista muudatused"]},"Confirm changes":{v:["Kinnitage muudatused"]}}},{l:"eu",t:{"Cancel changes":{v:["Ezeztatu aldaketak"]},"Confirm changes":{v:["Baieztatu aldaketak"]}}},{l:"fa",t:{"Cancel changes":{v:["لغو تغییرات"]},"Confirm changes":{v:["تایید تغییرات"]}}},{l:"fi",t:{"Cancel changes":{v:["Peruuta muutokset"]},"Confirm changes":{v:["Vahvista muutokset"]}}},{l:"fr",t:{"Cancel changes":{v:["Annuler les modifications"]},"Confirm changes":{v:["Confirmer les modifications"]}}},{l:"ga",t:{"Cancel changes":{v:["Cealaigh athruithe"]},"Confirm changes":{v:["Deimhnigh na hathruithe"]}}},{l:"gl",t:{"Cancel changes":{v:["Cancelar os cambios"]},"Confirm changes":{v:["Confirma os cambios"]}}},{l:"he",t:{"Cancel changes":{v:["ביטול שינויים"]},"Confirm changes":{v:["אישור השינויים"]}}},{l:"hu",t:{"Cancel changes":{v:["Változtatások elvetése"]},"Confirm changes":{v:["Változtatások megerősítése"]}}},{l:"id",t:{"Cancel changes":{v:["Batalkan perubahan"]},"Confirm changes":{v:["Konfirmasikan perubahan"]}}},{l:"is",t:{"Cancel changes":{v:["Hætta við breytingar"]},"Confirm changes":{v:["Staðfesta breytingar"]}}},{l:"it",t:{"Cancel changes":{v:["Annulla modifiche"]},"Confirm changes":{v:["Conferma modifiche"]}}},{l:"ja",t:{"Cancel changes":{v:["変更をキャンセル"]},"Confirm changes":{v:["変更を承認"]}}},{l:"ja-JP",t:{"Cancel changes":{v:["変更をキャンセル"]},"Confirm changes":{v:["変更を承認"]}}},{l:"ko",t:{"Cancel changes":{v:["변경 취소"]},"Confirm changes":{v:["변경 사항 확인"]}}},{l:"lo",t:{"Cancel changes":{v:["ຍົກເລີກການປ່ຽນແປງ"]},"Confirm changes":{v:["ຢືນຢັນການປ່ຽນແປງ"]}}},{l:"lt-LT",t:{}},{l:"lv",t:{}},{l:"mk",t:{"Cancel changes":{v:["Откажи ги промените"]},"Confirm changes":{v:["Потврди ги промените"]}}},{l:"my",t:{"Cancel changes":{v:["ပြောင်းလဲမှုများ ပယ်ဖျက်ရန်"]},"Confirm changes":{v:["ပြောင်းလဲမှုများ အတည်ပြုရန်"]}}},{l:"nb",t:{"Cancel changes":{v:["Avbryt endringer"]},"Confirm changes":{v:["Bekreft endringer"]}}},{l:"nl",t:{"Cancel changes":{v:["Wijzigingen annuleren"]},"Confirm changes":{v:["Wijzigingen bevestigen"]}}},{l:"oc",t:{}},{l:"pl",t:{"Cancel changes":{v:["Anuluj zmiany"]},"Confirm changes":{v:["Potwierdź zmiany"]}}},{l:"pt-BR",t:{"Cancel changes":{v:["Cancelar alterações"]},"Confirm changes":{v:["Confirmar alterações"]}}},{l:"pt-PT",t:{"Cancel changes":{v:["Cancelar alterações"]},"Confirm changes":{v:["Confirmar alterações"]}}},{l:"ro",t:{"Cancel changes":{v:["Anulează modificările"]},"Confirm changes":{v:["Confirmați modificările"]}}},{l:"ru",t:{"Cancel changes":{v:["Отменить изменения"]},"Confirm changes":{v:["Подтвердить изменения"]}}},{l:"sk",t:{"Cancel changes":{v:["Zrušiť zmeny"]},"Confirm changes":{v:["Potvrdiť zmeny"]}}},{l:"sl",t:{"Cancel changes":{v:["Prekliči spremembe"]},"Confirm changes":{v:["Potrdi spremembe"]}}},{l:"sr",t:{"Cancel changes":{v:["Откажи измене"]},"Confirm changes":{v:["Потврдите измене"]}}},{l:"sv",t:{"Cancel changes":{v:["Avbryt ändringar"]},"Confirm changes":{v:["Bekräfta ändringar"]}}},{l:"tr",t:{"Cancel changes":{v:["Değişiklikleri iptal et"]},"Confirm changes":{v:["Değişiklikleri onayla"]}}},{l:"uk",t:{"Cancel changes":{v:["Скасувати зміни"]},"Confirm changes":{v:["Підтвердити зміни"]}}},{l:"uz",t:{"Cancel changes":{v:["O'zgarishlarni bekor qilish"]},"Confirm changes":{v:["O'zgarishlarni tasdiqlang"]}}},{l:"zh-CN",t:{"Cancel changes":{v:["取消更改"]},"Confirm changes":{v:["确认更改"]}}},{l:"zh-HK",t:{"Cancel changes":{v:["取消更改"]},"Confirm changes":{v:["確認更改"]}}},{l:"zh-TW",t:{"Cancel changes":{v:["取消變更"]},"Confirm changes":{v:["確認變更"]}}}],Z=[{l:"ar",t:{"Change name":{v:["تغيير الاسم"]},"Close sidebar":{v:["قفل الشريط الجانبي"]},Favorite:{v:["المفضلة"]},"Open sidebar":{v:["إفتَح الشريط الجانبي"]}}},{l:"ast",t:{"Change name":{v:["Camudar el nome"]},"Close sidebar":{v:["Zarrar la barra llateral"]},Favorite:{v:["Favoritu"]},"Open sidebar":{v:["Abrir la barra llateral"]}}},{l:"br",t:{}},{l:"ca",t:{"Close sidebar":{v:["Tancar la barra lateral"]},Favorite:{v:["Preferit"]}}},{l:"cs",t:{"Change name":{v:["Změnit název"]},"Close sidebar":{v:["Zavřít postranní panel"]},Favorite:{v:["Oblíbené"]},"Open sidebar":{v:["Otevřít postranní panel"]}}},{l:"cs-CZ",t:{"Change name":{v:["Změnit název"]},"Close sidebar":{v:["Zavřít postranní panel"]},Favorite:{v:["Oblíbené"]}}},{l:"da",t:{"Change name":{v:["Ændre navn"]},"Close sidebar":{v:["Luk sidepanel"]},Favorite:{v:["Favorit"]},"Open sidebar":{v:["Åbn sidepanel"]}}},{l:"de",t:{"Change name":{v:["Namen ändern"]},"Close sidebar":{v:["Seitenleiste schließen"]},Favorite:{v:["Favorit"]},"Open sidebar":{v:["Seitenleiste öffnen"]}}},{l:"de-DE",t:{"Change name":{v:["Namen ändern"]},"Close sidebar":{v:["Seitenleiste schließen"]},Favorite:{v:["Favorit"]},"Open sidebar":{v:["Seitenleiste öffnen"]}}},{l:"el",t:{"Change name":{v:["Αλλαγή ονόματος"]},"Close sidebar":{v:["Κλείσιμο πλευρικής μπάρας"]},Favorite:{v:["Αγαπημένα"]},"Open sidebar":{v:["Άνοιγμα πλευρικής μπάρας"]}}},{l:"en-GB",t:{"Change name":{v:["Change name"]},"Close sidebar":{v:["Close sidebar"]},Favorite:{v:["Favourite"]},"Open sidebar":{v:["Open sidebar"]}}},{l:"eo",t:{}},{l:"es",t:{"Change name":{v:["Cambiar nombre"]},"Close sidebar":{v:["Cerrar barra lateral"]},Favorite:{v:["Favorito"]},"Open sidebar":{v:["Abrir barra lateral"]}}},{l:"es-AR",t:{"Change name":{v:["Cambiar nombre"]},"Close sidebar":{v:["Cerrar barra lateral"]},Favorite:{v:["Favorito"]},"Open sidebar":{v:["Abrir barra lateral"]}}},{l:"es-EC",t:{"Change name":{v:["Cambiar nombre"]},"Close sidebar":{v:["Cerrar barra lateral"]},Favorite:{v:["Favorito"]}}},{l:"es-MX",t:{"Change name":{v:["Cambiar nombre"]},"Close sidebar":{v:["Cerrar barra lateral"]},Favorite:{v:["Favorito"]},"Open sidebar":{v:["Abrir barra lateral"]}}},{l:"et-EE",t:{"Change name":{v:["Muuda nime"]},"Close sidebar":{v:["Sulge külgriba"]},Favorite:{v:["Lemmik"]},"Open sidebar":{v:["Ava külgriba"]}}},{l:"eu",t:{"Change name":{v:["Aldatu izena"]},"Close sidebar":{v:["Itxi albo-barra"]},Favorite:{v:["Gogokoa"]}}},{l:"fa",t:{"Change name":{v:["تغییر نام"]},"Close sidebar":{v:["بستن نوار کناری"]},Favorite:{v:["مورد علاقه"]},"Open sidebar":{v:["باز کردن نوار کنار"]}}},{l:"fi",t:{"Change name":{v:["Vaihda nimi"]},"Close sidebar":{v:["Sulje sivupalkki"]},Favorite:{v:["Suosikki"]},"Open sidebar":{v:["Avaa sivupalkki"]}}},{l:"fr",t:{"Change name":{v:["Modifier le nom"]},"Close sidebar":{v:["Fermer la barre latérale"]},Favorite:{v:["Favori"]},"Open sidebar":{v:["Ouvrir la barre latérale"]}}},{l:"ga",t:{"Change name":{v:["Athrú ainm"]},"Close sidebar":{v:["Dún barra taoibh"]},Favorite:{v:["is fearr leat"]},"Open sidebar":{v:["Oscail barra taoibh"]}}},{l:"gl",t:{"Change name":{v:["Cambiar o nome"]},"Close sidebar":{v:["Pechar a barra lateral"]},Favorite:{v:["Favorito"]},"Open sidebar":{v:["Abrir a barra lateral"]}}},{l:"he",t:{"Change name":{v:["החלפת שם"]},"Close sidebar":{v:["סגירת סרגל הצד"]},Favorite:{v:["למועדפים"]}}},{l:"hu",t:{"Close sidebar":{v:["Oldalsáv bezárása"]},Favorite:{v:["Kedvenc"]}}},{l:"id",t:{"Change name":{v:["Ubah nama"]},"Close sidebar":{v:["Tutup bilah sisi"]},Favorite:{v:["Favorit"]}}},{l:"is",t:{"Change name":{v:["Breyta nafni"]},"Close sidebar":{v:["Loka hliðarstiku"]},Favorite:{v:["Eftirlæti"]},"Open sidebar":{v:["Opna hliðarspjald"]}}},{l:"it",t:{"Change name":{v:["Cambia nome"]},"Close sidebar":{v:["Chiudi la barra laterale"]},Favorite:{v:["Preferito"]}}},{l:"ja",t:{"Change name":{v:["名前の変更"]},"Close sidebar":{v:["サイドバーを閉じる"]},Favorite:{v:["お気に入り"]},"Open sidebar":{v:["サイドバーを開く"]}}},{l:"ja-JP",t:{"Change name":{v:["名前の変更"]},"Close sidebar":{v:["サイドバーを閉じる"]},Favorite:{v:["お気に入り"]},"Open sidebar":{v:["サイドバーを開く"]}}},{l:"ko",t:{"Change name":{v:["이름 변경"]},"Close sidebar":{v:["사이드바 닫기"]},Favorite:{v:["즐겨찾기"]},"Open sidebar":{v:["사이드바 열기"]}}},{l:"lo",t:{"Change name":{v:["ປ່ຽນຊື່"]},"Close sidebar":{v:["ປິດແຖບດ້ານຂ້າງ"]},Favorite:{v:["ລາຍການທີ່ມັກ"]},"Open sidebar":{v:["ເປີດແຖບດ້ານຂ້າງ"]}}},{l:"lt-LT",t:{}},{l:"lv",t:{}},{l:"mk",t:{"Change name":{v:["Промени име"]},"Close sidebar":{v:["Затвори странична лента"]},Favorite:{v:["Фаворити"]},"Open sidebar":{v:["Отвори странична лента"]}}},{l:"my",t:{}},{l:"nb",t:{"Change name":{v:["Endre navn"]},"Close sidebar":{v:["Lukk sidepanel"]},Favorite:{v:["Favoritt"]},"Open sidebar":{v:["Åpne sidefelt"]}}},{l:"nl",t:{"Change name":{v:["Naam wijzigen"]},"Close sidebar":{v:["Zijbalk sluiten"]},Favorite:{v:["Favoriet"]},"Open sidebar":{v:["Zijbalk openen"]}}},{l:"oc",t:{}},{l:"pl",t:{"Change name":{v:["Zmień nazwę"]},"Close sidebar":{v:["Zamknij pasek boczny"]},Favorite:{v:["Ulubiony"]},"Open sidebar":{v:["Otwórz pasek boczny"]}}},{l:"pt-BR",t:{"Change name":{v:["Mudar nome"]},"Close sidebar":{v:["Fechar barra lateral"]},Favorite:{v:["Favorito"]},"Open sidebar":{v:["Abrir barra lateral"]}}},{l:"pt-PT",t:{"Change name":{v:["Alterar nome"]},"Close sidebar":{v:["Fechar barra lateral"]},Favorite:{v:["Favorito"]},"Open sidebar":{v:["Abrir barra lateral"]}}},{l:"ro",t:{"Change name":{v:["Modifică numele"]},"Close sidebar":{v:["Închide bara laterală"]},Favorite:{v:["Favorit"]}}},{l:"ru",t:{"Change name":{v:["Изменить имя"]},"Close sidebar":{v:["Закрыть сайдбар"]},Favorite:{v:["Избранное"]},"Open sidebar":{v:["Открыть боковую панель"]}}},{l:"sk",t:{"Change name":{v:["Zmeniť názov"]},"Close sidebar":{v:["Zavrieť bočný panel"]},Favorite:{v:["Obľúbené"]},"Open sidebar":{v:["Otvoriť bočný panel"]}}},{l:"sl",t:{"Close sidebar":{v:["Zapri stransko vrstico"]},Favorite:{v:["Priljubljeno"]}}},{l:"sr",t:{"Change name":{v:["Измени назив"]},"Close sidebar":{v:["Затвори бочну траку"]},Favorite:{v:["Омиљени"]},"Open sidebar":{v:["Отвори бочну траку"]}}},{l:"sv",t:{"Change name":{v:["Ändra namn"]},"Close sidebar":{v:["Stäng sidofältet"]},Favorite:{v:["Favorit"]},"Open sidebar":{v:["Öppna sidofältet"]}}},{l:"tr",t:{"Change name":{v:["Adı değiştir"]},"Close sidebar":{v:["Yan çubuğu kapat"]},Favorite:{v:["Sık kullanılanlara ekle"]},"Open sidebar":{v:["Yan çubuğu aç"]}}},{l:"uk",t:{"Change name":{v:["Змінити назву"]},"Close sidebar":{v:["Закрити бічну панель"]},Favorite:{v:["Із зірочкою"]},"Open sidebar":{v:["Бокове меню"]}}},{l:"uz",t:{"Change name":{v:["Ismni o'zgartirish"]},"Close sidebar":{v:["Yon panelni yoping"]},Favorite:{v:["Tanlangan"]},"Open sidebar":{v:["Yon panelni oching"]}}},{l:"zh-CN",t:{"Change name":{v:["修改名称"]},"Close sidebar":{v:["关闭侧边栏"]},Favorite:{v:["喜爱"]},"Open sidebar":{v:["打开侧边栏"]}}},{l:"zh-HK",t:{"Change name":{v:["更改名稱"]},"Close sidebar":{v:["關閉側邊欄"]},Favorite:{v:["喜愛"]},"Open sidebar":{v:["打開側邊欄"]}}},{l:"zh-TW",t:{"Change name":{v:["變更名稱"]},"Close sidebar":{v:["關閉側邊欄"]},Favorite:{v:["最愛"]},"Open sidebar":{v:["開啟側邊欄"]}}}],K=[{l:"ar",t:{"Clear search":{v:["محو البحث"]}}},{l:"ast",t:{"Clear search":{v:["Borrar la busca"]}}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{"Clear search":{v:["Vyčistit vyhledávání"]}}},{l:"cs-CZ",t:{"Clear search":{v:["Vyčistit vyhledávání"]}}},{l:"da",t:{"Clear search":{v:["Ryd søgning"]}}},{l:"de",t:{"Clear search":{v:["Suche leeren"]}}},{l:"de-DE",t:{"Clear search":{v:["Suche leeren"]}}},{l:"el",t:{"Clear search":{v:["Εκκαθάριση αναζήτησης"]}}},{l:"en-GB",t:{"Clear search":{v:["Clear search"]}}},{l:"eo",t:{}},{l:"es",t:{"Clear search":{v:["Limpiar búsqueda"]}}},{l:"es-AR",t:{"Clear search":{v:["Limpiar búsqueda"]}}},{l:"es-EC",t:{"Clear search":{v:["Limpiar búsqueda"]}}},{l:"es-MX",t:{"Clear search":{v:["Limpiar búsqueda"]}}},{l:"et-EE",t:{"Clear search":{v:["Tühjenda otsing"]}}},{l:"eu",t:{"Clear search":{v:["Garbitu bilaketa"]}}},{l:"fa",t:{"Clear search":{v:["پاک کردن جستجو"]}}},{l:"fi",t:{"Clear search":{v:["Tyhjennä haku"]}}},{l:"fr",t:{"Clear search":{v:["Effacer la recherche"]}}},{l:"ga",t:{"Clear search":{v:["Glan cuardach"]}}},{l:"gl",t:{"Clear search":{v:["Limpar a busca"]}}},{l:"he",t:{"Clear search":{v:["פינוי חיפוש"]}}},{l:"hu",t:{}},{l:"id",t:{"Clear search":{v:["Bersihkan pencarian"]}}},{l:"is",t:{"Clear search":{v:["Hreinsa leit"]}}},{l:"it",t:{"Clear search":{v:["online"]}}},{l:"ja",t:{"Clear search":{v:["検索をクリア"]}}},{l:"ja-JP",t:{"Clear search":{v:["検索をクリア"]}}},{l:"ko",t:{"Clear search":{v:["검색 지우기"]}}},{l:"lo",t:{"Clear search":{v:["ລຶບການຄົ້ນຫາ"]}}},{l:"lt-LT",t:{}},{l:"lv",t:{}},{l:"mk",t:{"Clear search":{v:["Исчисти пребарување"]}}},{l:"my",t:{}},{l:"nb",t:{"Clear search":{v:["Tøm søk"]}}},{l:"nl",t:{"Clear search":{v:["Zoekopdracht wissen"]}}},{l:"oc",t:{}},{l:"pl",t:{"Clear search":{v:["Wyczyść wyszukiwanie"]}}},{l:"pt-BR",t:{"Clear search":{v:["Limpar pesquisa"]}}},{l:"pt-PT",t:{"Clear search":{v:["Limpar pesquisa"]}}},{l:"ro",t:{"Clear search":{v:["Șterge căutarea"]}}},{l:"ru",t:{"Clear search":{v:["Очистить поиск"]}}},{l:"sk",t:{"Clear search":{v:["Vymazať vyhľadávanie"]}}},{l:"sl",t:{}},{l:"sr",t:{"Clear search":{v:["Обриши претрагу"]}}},{l:"sv",t:{"Clear search":{v:["Rensa sökning"]}}},{l:"tr",t:{"Clear search":{v:["Aramayı temizle"]}}},{l:"uk",t:{"Clear search":{v:["Очистити пошук"]}}},{l:"uz",t:{"Clear search":{v:["Qidiruvni tozalash"]}}},{l:"zh-CN",t:{"Clear search":{v:["清除搜索"]}}},{l:"zh-HK",t:{"Clear search":{v:["清除搜索"]}}},{l:"zh-TW",t:{"Clear search":{v:["清除搜尋"]}}}],I=[{l:"ar",t:{"Clear selected":{v:["محو المحدّد"]},"Deselect {option}":{v:["إلغاء تحديد {option}"]},"No results":{v:["ليس هناك أية نتيجة"]},Options:{v:["خيارات"]}}},{l:"ast",t:{"Clear selected":{v:["Borrar lo seleicionao"]},"Deselect {option}":{v:["Deseleicionar «{option}»"]},"No results":{v:["Nun hai nengún resultáu"]},Options:{v:["Opciones"]}}},{l:"br",t:{"No results":{v:["Disoc'h ebet"]}}},{l:"ca",t:{"No results":{v:["Sense resultats"]}}},{l:"cs",t:{"Clear selected":{v:["Vyčistit vybrané"]},"Deselect {option}":{v:["Zrušit výběr {option}"]},"No results":{v:["Nic nenalezeno"]},Options:{v:["Možnosti"]}}},{l:"cs-CZ",t:{"Clear selected":{v:["Vyčistit vybrané"]},"Deselect {option}":{v:["Zrušit výběr {option}"]},"No results":{v:["Nic nenalezeno"]},Options:{v:["Možnosti"]}}},{l:"da",t:{"Clear selected":{v:["Ryd valgt"]},"Deselect {option}":{v:["Fravælg {option}"]},"No results":{v:["Ingen resultater"]},Options:{v:["Indstillinger"]}}},{l:"de",t:{"Clear selected":{v:["Auswahl leeren"]},"Deselect {option}":{v:["{option} abwählen"]},"No results":{v:["Keine Ergebnisse"]},Options:{v:["Optionen"]}}},{l:"de-DE",t:{"Clear selected":{v:["Auswahl leeren"]},"Deselect {option}":{v:["{option} abwählen"]},"No results":{v:["Keine Ergebnisse"]},Options:{v:["Optionen"]}}},{l:"el",t:{"Clear selected":{v:["Εκκαθάριση επιλογής"]},"Deselect {option}":{v:["Αποεπιλογή {option}"]},"No results":{v:["Κανένα αποτέλεσμα"]},Options:{v:["Επιλογές"]}}},{l:"en-GB",t:{"Clear selected":{v:["Clear selected"]},"Deselect {option}":{v:["Deselect {option}"]},"No results":{v:["No results"]},Options:{v:["Options"]}}},{l:"eo",t:{"No results":{v:["La rezulto forestas"]}}},{l:"es",t:{"Clear selected":{v:["Limpiar selección"]},"Deselect {option}":{v:["Deseleccionar {option}"]},"No results":{v:[" Ningún resultado"]},Options:{v:["Opciones"]}}},{l:"es-AR",t:{"Clear selected":{v:["Limpiar selección"]},"Deselect {option}":{v:["Deseleccionar {option}"]},"No results":{v:["Sin resultados"]},Options:{v:["Opciones"]}}},{l:"es-EC",t:{"No results":{v:["Sin resultados"]}}},{l:"es-MX",t:{"Clear selected":{v:["Limpiar selección"]},"Deselect {option}":{v:["Deseleccionar {option}"]},"No results":{v:["Sin resultados"]},Options:{v:["Opciones"]}}},{l:"et-EE",t:{"Clear selected":{v:["Tühjenad valik"]},"Deselect {option}":{v:["Eemalda {option} valik"]},"No results":{v:["Tulemusi pole"]},Options:{v:["Valikud"]}}},{l:"eu",t:{"No results":{v:["Emaitzarik ez"]}}},{l:"fa",t:{"Clear selected":{v:["پاک کردن مورد انتخاب شده"]},"Deselect {option}":{v:["لغو انتخاب {option}"]},"No results":{v:["بدون هیچ نتیجه‌ای"]},Options:{v:["گزینه‌ها"]}}},{l:"fi",t:{"Clear selected":{v:["Tyhjennä valitut"]},"Deselect {option}":{v:["Poista valinta {option}"]},"No results":{v:["Ei tuloksia"]},Options:{v:["Valinnat"]}}},{l:"fr",t:{"Clear selected":{v:["Vider la sélection"]},"Deselect {option}":{v:["Désélectionner {option}"]},"No results":{v:["Aucun résultat"]},Options:{v:["Options"]}}},{l:"ga",t:{"Clear selected":{v:["Glan roghnaithe"]},"Deselect {option}":{v:["Díroghnaigh {option}"]},"No results":{v:["Gan torthaí"]},Options:{v:["Roghanna"]}}},{l:"gl",t:{"Clear selected":{v:["Limpar o seleccionado"]},"Deselect {option}":{v:["Desmarcar {option}"]},"No results":{v:["Sen resultados"]},Options:{v:["Opcións"]}}},{l:"he",t:{"No results":{v:["אין תוצאות"]}}},{l:"hu",t:{"No results":{v:["Nincs találat"]}}},{l:"id",t:{"Clear selected":{v:["Hapus terpilih"]},"Deselect {option}":{v:["Batalkan pemilihan {option}"]},"No results":{v:["Tidak ada hasil"]}}},{l:"is",t:{"Clear selected":{v:["Hreinsa valið"]},"Deselect {option}":{v:["Afvelja {option}"]},"No results":{v:["Engar niðurstöður"]},Options:{v:["Valkostir"]}}},{l:"it",t:{"Clear selected":{v:["Cancella selezionati"]},"Deselect {option}":{v:["Deselezionare {option}"]},"No results":{v:["Nessun risultato"]}}},{l:"ja",t:{"Clear selected":{v:["選択を解除"]},"Deselect {option}":{v:["{option} の選択を解除"]},"No results":{v:["結果無し"]},Options:{v:["オプション"]}}},{l:"ja-JP",t:{"Clear selected":{v:["選択を解除"]},"Deselect {option}":{v:["{option} の選択を解除"]},"No results":{v:["結果無し"]},Options:{v:["オプション"]}}},{l:"ko",t:{"Clear selected":{v:["선택 항목 지우기"]},"Deselect {option}":{v:["{option} 선택 해제"]},"No results":{v:["결과 없음"]},Options:{v:["옵션"]}}},{l:"lo",t:{"Clear selected":{v:["ລຶບສິ່ງທີ່ເລືອກ"]},"Deselect {option}":{v:["ຍົກເລີກການເລືອກ {option}"]},"No results":{v:["ບໍ່ມີຜົນລັບ"]},Options:{v:["ຕົວເລືອກ"]}}},{l:"lt-LT",t:{"No results":{v:["Nėra rezultatų"]}}},{l:"lv",t:{"No results":{v:["Nav rezultātu"]}}},{l:"mk",t:{"Clear selected":{v:["Исчисти означени"]},"Deselect {option}":{v:["Откажи избор на {option}"]},"No results":{v:["Нема резултати"]},Options:{v:["Опции"]}}},{l:"my",t:{"No results":{v:["ရလဒ်မရှိပါ"]}}},{l:"nb",t:{"Clear selected":{v:["Tøm merket"]},"Deselect {option}":{v:["Opphev valg {option}"]},"No results":{v:["Ingen resultater"]},Options:{v:["Alternativer"]}}},{l:"nl",t:{"Clear selected":{v:["Selectie wissen"]},"Deselect {option}":{v:["Selectie {option} opheffen"]},"No results":{v:["Geen resultaten"]},Options:{v:["Opties"]}}},{l:"oc",t:{"No results":{v:["Cap de resultat"]}}},{l:"pl",t:{"Clear selected":{v:["Wyczyść wybrane"]},"Deselect {option}":{v:["Odznacz {option}"]},"No results":{v:["Brak wyników"]},Options:{v:["Opcje"]}}},{l:"pt-BR",t:{"Clear selected":{v:["Limpar selecionado"]},"Deselect {option}":{v:["Desselecionar {option}"]},"No results":{v:["Sem resultados"]},Options:{v:["Opções"]}}},{l:"pt-PT",t:{"Clear selected":{v:["Limpeza selecionada"]},"Deselect {option}":{v:["Desmarcar {option}"]},"No results":{v:["Sem resultados"]},Options:{v:["Opções"]}}},{l:"ro",t:{"Clear selected":{v:["Șterge selecția"]},"Deselect {option}":{v:["Deselctează {option}"]},"No results":{v:["Nu există rezultate"]}}},{l:"ru",t:{"Clear selected":{v:["Очистить выбранный"]},"Deselect {option}":{v:["Отменить выбор {option}"]},"No results":{v:["Результаты отсуствуют"]},Options:{v:["Варианты"]}}},{l:"sk",t:{"Clear selected":{v:["Vymazať vybraté"]},"Deselect {option}":{v:["Zrušiť výber {option}"]},"No results":{v:["Žiadne výsledky"]},Options:{v:["možnosti"]}}},{l:"sl",t:{"No results":{v:["Ni zadetkov"]}}},{l:"sr",t:{"Clear selected":{v:["Обриши изабрано"]},"Deselect {option}":{v:["Уклони избор {option}"]},"No results":{v:["Нема резултата"]},Options:{v:["Опције"]}}},{l:"sv",t:{"Clear selected":{v:["Rensa val"]},"Deselect {option}":{v:["Avmarkera {option}"]},"No results":{v:["Inga resultat"]},Options:{v:["Alternativ"]}}},{l:"tr",t:{"Clear selected":{v:["Seçilmişleri temizle"]},"Deselect {option}":{v:["{option} bırak"]},"No results":{v:["Herhangi bir sonuç bulunamadı"]},Options:{v:["Seçenekler"]}}},{l:"uk",t:{"Clear selected":{v:["Очистити вибране"]},"Deselect {option}":{v:["Зняти вибір {option}"]},"No results":{v:["Відсутні результати"]},Options:{v:["Параметри"]}}},{l:"uz",t:{"Clear selected":{v:["Tanlanganni tozalash"]},"Deselect {option}":{v:["{option}tanlovni bekor qiling"]},"No results":{v:["Natija yoʻq"]},Options:{v:["Variantlar"]}}},{l:"zh-CN",t:{"Clear selected":{v:["清除所选"]},"Deselect {option}":{v:["取消选择 {option}"]},"No results":{v:["无结果"]},Options:{v:["选项"]}}},{l:"zh-HK",t:{"Clear selected":{v:["清除所選項目"]},"Deselect {option}":{v:["取消選擇 {option}"]},"No results":{v:["無結果"]},Options:{v:["選項"]}}},{l:"zh-TW",t:{"Clear selected":{v:["清除選定項目"]},"Deselect {option}":{v:["取消選取 {option}"]},"No results":{v:["無結果"]},Options:{v:["選項"]}}}],J=[{l:"ar",t:{Close:{v:["إغلاق"]}}},{l:"ast",t:{Close:{v:["Zarrar"]}}},{l:"br",t:{Close:{v:["Serriñ"]}}},{l:"ca",t:{Close:{v:["Tanca"]}}},{l:"cs",t:{Close:{v:["Zavřít"]}}},{l:"cs-CZ",t:{Close:{v:["Zavřít"]}}},{l:"da",t:{Close:{v:["Luk"]}}},{l:"de",t:{Close:{v:["Schließen"]}}},{l:"de-DE",t:{Close:{v:["Schließen"]}}},{l:"el",t:{Close:{v:["Κλείσιμο"]}}},{l:"en-GB",t:{Close:{v:["Close"]}}},{l:"eo",t:{Close:{v:["Fermu"]}}},{l:"es",t:{Close:{v:["Cerrar"]}}},{l:"es-AR",t:{Close:{v:["Cerrar"]}}},{l:"es-EC",t:{Close:{v:["Cerrar"]}}},{l:"es-MX",t:{Close:{v:["Cerrar"]}}},{l:"et-EE",t:{Close:{v:["Sulge"]}}},{l:"eu",t:{Close:{v:["Itxi"]}}},{l:"fa",t:{Close:{v:["بستن"]}}},{l:"fi",t:{Close:{v:["Sulje"]}}},{l:"fr",t:{Close:{v:["Fermer"]}}},{l:"ga",t:{Close:{v:["Dún"]}}},{l:"gl",t:{Close:{v:["Pechar"]}}},{l:"he",t:{Close:{v:["סגירה"]}}},{l:"hu",t:{Close:{v:["Bezárás"]}}},{l:"id",t:{Close:{v:["Tutup"]}}},{l:"is",t:{Close:{v:["Loka"]}}},{l:"it",t:{Close:{v:["Chiudi"]}}},{l:"ja",t:{Close:{v:["閉じる"]}}},{l:"ja-JP",t:{Close:{v:["閉じる"]}}},{l:"ko",t:{Close:{v:["닫기"]}}},{l:"lo",t:{Close:{v:["ປິດ"]}}},{l:"lt-LT",t:{Close:{v:["Užverti"]}}},{l:"lv",t:{Close:{v:["Aizvērt"]}}},{l:"mk",t:{Close:{v:["Затвори"]}}},{l:"my",t:{Close:{v:["ပိတ်ရန်"]}}},{l:"nb",t:{Close:{v:["Lukk"]}}},{l:"nl",t:{Close:{v:["Sluiten"]}}},{l:"oc",t:{Close:{v:["Tampar"]}}},{l:"pl",t:{Close:{v:["Zamknij"]}}},{l:"pt-BR",t:{Close:{v:["Fechar"]}}},{l:"pt-PT",t:{Close:{v:["Fechar"]}}},{l:"ro",t:{Close:{v:["Închideți"]}}},{l:"ru",t:{Close:{v:["Закрыть"]}}},{l:"sk",t:{Close:{v:["Zavrieť"]}}},{l:"sl",t:{Close:{v:["Zapri"]}}},{l:"sr",t:{Close:{v:["Затвори"]}}},{l:"sv",t:{Close:{v:["Stäng"]}}},{l:"tr",t:{Close:{v:["Kapat"]}}},{l:"uk",t:{Close:{v:["Закрити"]}}},{l:"uz",t:{Close:{v:["Yopish"]}}},{l:"zh-CN",t:{Close:{v:["关闭"]}}},{l:"zh-HK",t:{Close:{v:["關閉"]}}},{l:"zh-TW",t:{Close:{v:["關閉"]}}}],X=[{l:"ar",t:{"Collapse menu":{v:["طي القائمة"]},"Open menu":{v:["إفتَح القائمة"]}}},{l:"ast",t:{"Collapse menu":{v:["Recoyer el menú"]},"Open menu":{v:["Abrir le menú"]}}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{"Collapse menu":{v:["Sbalit nabídku"]},"Open menu":{v:["Otevřít nabídku"]}}},{l:"cs-CZ",t:{"Collapse menu":{v:["Sbalit nabídku"]},"Open menu":{v:["Otevřít nabídku"]}}},{l:"da",t:{"Collapse menu":{v:["Skjul menuen"]},"Open menu":{v:["Åben menu"]}}},{l:"de",t:{"Collapse menu":{v:["Menü einklappen"]},"Open menu":{v:["Menü öffnen"]}}},{l:"de-DE",t:{"Collapse menu":{v:["Menü einklappen"]},"Open menu":{v:["Menü öffnen"]}}},{l:"el",t:{"Collapse menu":{v:["Σύμπτυξη μενού"]},"Open menu":{v:["Άνοιγμα μενού"]}}},{l:"en-GB",t:{"Collapse menu":{v:["Collapse menu"]},"Open menu":{v:["Open menu"]}}},{l:"eo",t:{}},{l:"es",t:{"Collapse menu":{v:["Ocultar menú"]},"Open menu":{v:["Abrir menú"]}}},{l:"es-AR",t:{"Collapse menu":{v:["Ocultar menú"]},"Open menu":{v:["Abrir menú"]}}},{l:"es-EC",t:{"Collapse menu":{v:["Ocultar menú"]},"Open menu":{v:["Abrir menú"]}}},{l:"es-MX",t:{"Collapse menu":{v:["Ocultar menú"]},"Open menu":{v:["Abrir menú"]}}},{l:"et-EE",t:{"Collapse menu":{v:["Menüü kokkuklappimine"]},"Open menu":{v:["Ava menüü"]}}},{l:"eu",t:{"Collapse menu":{v:["Tolestu menua"]},"Open menu":{v:["Ireki menua"]}}},{l:"fa",t:{"Collapse menu":{v:["بستن فهرست"]},"Open menu":{v:["باز کردن فهرست"]}}},{l:"fi",t:{"Collapse menu":{v:["Supista valikko"]},"Open menu":{v:["Avaa valikko"]}}},{l:"fr",t:{"Collapse menu":{v:["Réduire le menu"]},"Open menu":{v:["Ouvrir le menu"]}}},{l:"ga",t:{"Collapse menu":{v:["Roghchlár Laghdaigh"]},"Open menu":{v:["Roghchlár a oscailt"]}}},{l:"gl",t:{"Collapse menu":{v:["Contraer o menú"]},"Open menu":{v:["Abrir o menú"]}}},{l:"he",t:{"Collapse menu":{v:["צמצום התפריט"]},"Open menu":{v:["פתיחת תפריט"]}}},{l:"hu",t:{}},{l:"id",t:{"Collapse menu":{v:["Ciutkan menu"]},"Open menu":{v:["Buka menu"]}}},{l:"is",t:{"Collapse menu":{v:["Fella valmynd saman"]},"Open menu":{v:["Opna valmynd"]}}},{l:"it",t:{"Collapse menu":{v:["Chiudi Menu"]},"Open menu":{v:["Apri il menu"]}}},{l:"ja",t:{"Collapse menu":{v:["メニューの折りたたみ"]},"Open menu":{v:["メニューを開く"]}}},{l:"ja-JP",t:{"Collapse menu":{v:["メニューの折りたたみ"]},"Open menu":{v:["メニューを開く"]}}},{l:"ko",t:{"Collapse menu":{v:["메뉴 접기"]},"Open menu":{v:["메뉴 열기"]}}},{l:"lo",t:{"Collapse menu":{v:["ຫຍໍ້ເມນູ"]},"Open menu":{v:["ເປີດເມນູ"]}}},{l:"lt-LT",t:{}},{l:"lv",t:{}},{l:"mk",t:{"Collapse menu":{v:["Скриј мени"]},"Open menu":{v:["Отвори мени"]}}},{l:"my",t:{}},{l:"nb",t:{"Collapse menu":{v:["Skjul meny"]},"Open menu":{v:["Åpne meny"]}}},{l:"nl",t:{"Collapse menu":{v:["Menu inklappen"]},"Open menu":{v:["Menu openen"]}}},{l:"oc",t:{}},{l:"pl",t:{"Collapse menu":{v:["Zwiń menu"]},"Open menu":{v:["Otwórz menu"]}}},{l:"pt-BR",t:{"Collapse menu":{v:["Recolher menu"]},"Open menu":{v:["Abrir menu"]}}},{l:"pt-PT",t:{"Collapse menu":{v:["Ocultar menu"]},"Open menu":{v:["Abrir menu"]}}},{l:"ro",t:{"Collapse menu":{v:["Restrânge meniul"]},"Open menu":{v:["Deschide meniul"]}}},{l:"ru",t:{"Collapse menu":{v:["Свернуть меню"]},"Open menu":{v:["Открыть меню"]}}},{l:"sk",t:{"Collapse menu":{v:["Zbaliť menu"]},"Open menu":{v:["Otvoriť menu"]}}},{l:"sl",t:{}},{l:"sr",t:{"Collapse menu":{v:["Сажми мени"]},"Open menu":{v:["Отвори мени"]}}},{l:"sv",t:{"Collapse menu":{v:["Dölj menyn"]},"Open menu":{v:["Öppna menyn"]}}},{l:"tr",t:{"Collapse menu":{v:["Menüyü daralt"]},"Open menu":{v:["Menüyü aç"]}}},{l:"uk",t:{"Collapse menu":{v:["Згорнути меню"]},"Open menu":{v:["Відкрити меню"]}}},{l:"uz",t:{"Collapse menu":{v:["Menyuni yig‘ish"]},"Open menu":{v:["Menyuni oching"]}}},{l:"zh-CN",t:{"Collapse menu":{v:["收起菜单"]},"Open menu":{v:["打开菜单"]}}},{l:"zh-HK",t:{"Collapse menu":{v:["折疊選單"]},"Open menu":{v:["開啟選單"]}}},{l:"zh-TW",t:{"Collapse menu":{v:["折疊選單"]},"Open menu":{v:["開啟選單"]}}}],_=[{l:"ar",t:{}},{l:"ast",t:{}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{Copied:{v:["Zkopírováno"]},"Copy to clipboard":{v:["Zkopírovat do schránky"]}}},{l:"cs-CZ",t:{}},{l:"da",t:{}},{l:"de",t:{Copied:{v:["Kopiert"]},"Copy to clipboard":{v:["In die Zwischenablage kopieren"]}}},{l:"de-DE",t:{Copied:{v:["Kopiert"]},"Copy to clipboard":{v:["In die Zwischenablage kopieren"]}}},{l:"el",t:{}},{l:"en-GB",t:{Copied:{v:["Copied"]},"Copy to clipboard":{v:["Copy to clipboard"]}}},{l:"eo",t:{}},{l:"es",t:{}},{l:"es-AR",t:{}},{l:"es-EC",t:{}},{l:"es-MX",t:{}},{l:"et-EE",t:{Copied:{v:["Kopeeritud"]},"Copy to clipboard":{v:["Kopeeri lõikelauale"]}}},{l:"eu",t:{}},{l:"fa",t:{}},{l:"fi",t:{}},{l:"fr",t:{}},{l:"ga",t:{Copied:{v:["Cóipeáilte"]},"Copy to clipboard":{v:["Cóipeáil chuig an ghearrthaisce"]}}},{l:"gl",t:{Copied:{v:["Copiado"]},"Copy to clipboard":{v:["Copiar ao portapapeis"]}}},{l:"he",t:{}},{l:"hu",t:{}},{l:"id",t:{}},{l:"is",t:{}},{l:"it",t:{}},{l:"ja",t:{Copied:{v:["コピーされました"]},"Copy to clipboard":{v:["クリップボードにコピー"]}}},{l:"ja-JP",t:{}},{l:"ko",t:{}},{l:"lo",t:{Copied:{v:["ສຳເນົາແລ້ວ"]},"Copy to clipboard":{v:["ສຳເນົາໃສ່ຄລິບບອດ"]}}},{l:"lt-LT",t:{}},{l:"lv",t:{}},{l:"mk",t:{}},{l:"my",t:{}},{l:"nb",t:{}},{l:"nl",t:{}},{l:"oc",t:{}},{l:"pl",t:{}},{l:"pt-BR",t:{Copied:{v:["Copiado"]},"Copy to clipboard":{v:["Copiar para a área de transferência"]}}},{l:"pt-PT",t:{}},{l:"ro",t:{}},{l:"ru",t:{}},{l:"sk",t:{}},{l:"sl",t:{}},{l:"sr",t:{}},{l:"sv",t:{}},{l:"tr",t:{Copied:{v:["Kopyalandı"]},"Copy to clipboard":{v:["Panoya kopyalandı"]}}},{l:"uk",t:{}},{l:"uz",t:{}},{l:"zh-CN",t:{}},{l:"zh-HK",t:{Copied:{v:["已被複製"]},"Copy to clipboard":{v:["複製到剪貼簿"]}}},{l:"zh-TW",t:{}}],Q=[{l:"ar",t:{"Edit item":{v:["تعديل عنصر"]}}},{l:"ast",t:{"Edit item":{v:["Editar l'elementu"]}}},{l:"br",t:{}},{l:"ca",t:{"Edit item":{v:["Edita l'element"]}}},{l:"cs",t:{"Edit item":{v:["Upravit položku"]}}},{l:"cs-CZ",t:{"Edit item":{v:["Upravit položku"]}}},{l:"da",t:{"Edit item":{v:["Rediger emne"]}}},{l:"de",t:{"Edit item":{v:["Element bearbeiten"]}}},{l:"de-DE",t:{"Edit item":{v:["Element bearbeiten"]}}},{l:"el",t:{"Edit item":{v:["Επεξεργασία αντικειμένου"]}}},{l:"en-GB",t:{"Edit item":{v:["Edit item"]}}},{l:"eo",t:{}},{l:"es",t:{"Edit item":{v:["Editar elemento"]}}},{l:"es-AR",t:{"Edit item":{v:["Editar elemento"]}}},{l:"es-EC",t:{"Edit item":{v:["Editar elemento"]}}},{l:"es-MX",t:{"Edit item":{v:["Editar elemento"]}}},{l:"et-EE",t:{"Edit item":{v:["Muuda objekti"]}}},{l:"eu",t:{"Edit item":{v:["Editatu elementua"]}}},{l:"fa",t:{"Edit item":{v:["ویرایش مورد"]}}},{l:"fi",t:{"Edit item":{v:["Muokkaa kohdetta"]}}},{l:"fr",t:{"Edit item":{v:["Éditer l'élément"]}}},{l:"ga",t:{"Edit item":{v:["Cuir mír in eagar"]}}},{l:"gl",t:{"Edit item":{v:["Editar o elemento"]}}},{l:"he",t:{"Edit item":{v:["עריכת פריט"]}}},{l:"hu",t:{"Edit item":{v:["Elem szerkesztése"]}}},{l:"id",t:{"Edit item":{v:["Edit item"]}}},{l:"is",t:{"Edit item":{v:["Breyta atriði"]}}},{l:"it",t:{"Edit item":{v:["Modifica l'elemento"]}}},{l:"ja",t:{"Edit item":{v:["編集"]}}},{l:"ja-JP",t:{"Edit item":{v:["編集"]}}},{l:"ko",t:{"Edit item":{v:["항목 수정"]}}},{l:"lo",t:{"Edit item":{v:["ແກ້ໄຂລາຍການ"]}}},{l:"lt-LT",t:{}},{l:"lv",t:{}},{l:"mk",t:{"Edit item":{v:["Уреди"]}}},{l:"my",t:{}},{l:"nb",t:{"Edit item":{v:["Rediger"]}}},{l:"nl",t:{"Edit item":{v:["Item bewerken"]}}},{l:"oc",t:{}},{l:"pl",t:{"Edit item":{v:["Edytuj element"]}}},{l:"pt-BR",t:{"Edit item":{v:["Editar item"]}}},{l:"pt-PT",t:{"Edit item":{v:["Editar item"]}}},{l:"ro",t:{"Edit item":{v:["Editați elementul"]}}},{l:"ru",t:{"Edit item":{v:["Изменить элемент"]}}},{l:"sk",t:{"Edit item":{v:["Upraviť položku"]}}},{l:"sl",t:{"Edit item":{v:["Uredi predmet"]}}},{l:"sr",t:{"Edit item":{v:["Уреди ставку"]}}},{l:"sv",t:{"Edit item":{v:["Redigera objekt"]}}},{l:"tr",t:{"Edit item":{v:["Ögeyi düzenle"]}}},{l:"uk",t:{"Edit item":{v:["Редагувати елемент"]}}},{l:"uz",t:{"Edit item":{v:["Elementni tahrirlash"]}}},{l:"zh-CN",t:{"Edit item":{v:["编辑项目"]}}},{l:"zh-HK",t:{"Edit item":{v:["編輯項目"]}}},{l:"zh-TW",t:{"Edit item":{v:["編輯項目"]}}}],$=[{l:"ar",t:{"Enter link":{v:["أدخِل الرابط"]}}},{l:"ast",t:{"Enter link":{v:["Introducir l'enllaz"]}}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{"Enter link":{v:["Zadat odkaz"]}}},{l:"cs-CZ",t:{"Enter link":{v:["Zadat odkaz"]}}},{l:"da",t:{"Enter link":{v:["Indtast link"]}}},{l:"de",t:{"Enter link":{v:["Link eingeben"]}}},{l:"de-DE",t:{"Enter link":{v:["Link eingeben"]}}},{l:"el",t:{"Enter link":{v:["Εισάγετε σύνδεσμο"]}}},{l:"en-GB",t:{"Enter link":{v:["Enter link"]}}},{l:"eo",t:{}},{l:"es",t:{"Enter link":{v:["Ingrese enlace"]}}},{l:"es-AR",t:{"Enter link":{v:["Ingresar enlace"]}}},{l:"es-EC",t:{"Enter link":{v:["Ingresar enlace"]}}},{l:"es-MX",t:{"Enter link":{v:["Ingresar enlace"]}}},{l:"et-EE",t:{"Enter link":{v:["Sisesta link"]}}},{l:"eu",t:{"Enter link":{v:["Sartu esteka"]}}},{l:"fa",t:{"Enter link":{v:["لینک را وارد کنید"]}}},{l:"fi",t:{"Enter link":{v:["Kirjoita linkki"]}}},{l:"fr",t:{"Enter link":{v:["Saisissez le lien"]}}},{l:"ga",t:{"Enter link":{v:["Cuir isteach nasc"]}}},{l:"gl",t:{"Enter link":{v:["Introducir a ligazón"]}}},{l:"he",t:{"Enter link":{v:["מילוי קישור"]}}},{l:"hu",t:{}},{l:"id",t:{"Enter link":{v:["Masukkan tautan"]}}},{l:"is",t:{"Enter link":{v:["Settu inn tengil"]}}},{l:"it",t:{"Enter link":{v:["Inserire il link"]}}},{l:"ja",t:{"Enter link":{v:["リンクを入力する"]}}},{l:"ja-JP",t:{"Enter link":{v:["リンクを入力する"]}}},{l:"ko",t:{"Enter link":{v:["링크 입력"]}}},{l:"lo",t:{"Enter link":{v:["ປ້ອນລິງ"]}}},{l:"lt-LT",t:{}},{l:"lv",t:{}},{l:"mk",t:{"Enter link":{v:["Внеси линк"]}}},{l:"my",t:{}},{l:"nb",t:{"Enter link":{v:["Skriv inn lenken"]}}},{l:"nl",t:{"Enter link":{v:["Link invoeren"]}}},{l:"oc",t:{}},{l:"pl",t:{"Enter link":{v:["Wprowadź link"]}}},{l:"pt-BR",t:{"Enter link":{v:["Insira o link"]}}},{l:"pt-PT",t:{"Enter link":{v:["Inserir hiperligação"]}}},{l:"ro",t:{"Enter link":{v:["Introduceți link-ul"]}}},{l:"ru",t:{"Enter link":{v:["Введите ссылку"]}}},{l:"sk",t:{"Enter link":{v:["Vložiť link"]}}},{l:"sl",t:{}},{l:"sr",t:{"Enter link":{v:["Унесите линк"]}}},{l:"sv",t:{"Enter link":{v:["Ange länk"]}}},{l:"tr",t:{"Enter link":{v:["Bağlantıyı yazın"]}}},{l:"uk",t:{"Enter link":{v:["Зазначте посилання"]}}},{l:"uz",t:{"Enter link":{v:["Havolani kiriting"]}}},{l:"zh-CN",t:{"Enter link":{v:["输入链接"]}}},{l:"zh-HK",t:{"Enter link":{v:["輸入連結"]}}},{l:"zh-TW",t:{"Enter link":{v:["輸入連結"]}}}],Y=[{l:"ar",t:{"Hide details":{v:["أخفِ التفاصيل"]},"Rename project":{v:["تغيير اسم المشروع"]},"Show details":{v:["أظهِر التفاصيل"]}}},{l:"ast",t:{}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{"Hide details":{v:["Skrýt podrobnosti"]},"Rename project":{v:["Přejmenovat projekt"]},"Show details":{v:["Zobrazit podrobnosti"]}}},{l:"cs-CZ",t:{}},{l:"da",t:{"Hide details":{v:["Skjul detaljer"]},"Rename project":{v:["Omdøb projekt"]},"Show details":{v:["Vis detaljer"]}}},{l:"de",t:{"Hide details":{v:["Details ausblenden"]},"Rename project":{v:["Projekt umbenennen"]},"Show details":{v:["Details anzeigen"]}}},{l:"de-DE",t:{"Hide details":{v:["Details ausblenden"]},"Rename project":{v:["Projekt umbenennen"]},"Show details":{v:["Details anzeigen"]}}},{l:"el",t:{"Hide details":{v:["Απόκρυψη λεπτομερειών"]},"Rename project":{v:["Μετονομασία έργου"]},"Show details":{v:["Εμφάνιση λεπτομερειών"]}}},{l:"en-GB",t:{"Hide details":{v:["Hide details"]},"Rename project":{v:["Rename project"]},"Show details":{v:["Show details"]}}},{l:"eo",t:{}},{l:"es",t:{}},{l:"es-AR",t:{"Hide details":{v:["Ocultar detalles"]},"Rename project":{v:["Renombrar proyecto"]},"Show details":{v:["Mostrar detalles"]}}},{l:"es-EC",t:{}},{l:"es-MX",t:{"Hide details":{v:["Ocultar detalles"]},"Rename project":{v:["Renombrar proyecto"]},"Show details":{v:["Mostrar detalles"]}}},{l:"et-EE",t:{"Hide details":{v:["Peida üksikasjad"]},"Rename project":{v:["Muuda projekti nime"]},"Show details":{v:["Näita üksikasju"]}}},{l:"eu",t:{}},{l:"fa",t:{"Hide details":{v:["پنهان کردن جزئیات"]},"Rename project":{v:["تغییر نام پروژه"]},"Show details":{v:["نمایش جزئیات"]}}},{l:"fi",t:{"Hide details":{v:["Piilota yksityiskohdat"]},"Rename project":{v:["Nimeä projekti"]},"Show details":{v:["Näytä yksityiskohdat"]}}},{l:"fr",t:{"Hide details":{v:["Masquer les détails"]},"Rename project":{v:["Renommer le projet"]},"Show details":{v:["Afficher les détails"]}}},{l:"ga",t:{"Hide details":{v:["Folaigh sonraí"]},"Rename project":{v:["Athainmnigh an tionscadal"]},"Show details":{v:["Taispeáin sonraí"]}}},{l:"gl",t:{"Hide details":{v:["Agochar os detalles"]},"Rename project":{v:["Cambiar o nome do proxecto"]},"Show details":{v:["Amosar os detalles"]}}},{l:"he",t:{}},{l:"hu",t:{}},{l:"id",t:{}},{l:"is",t:{"Hide details":{v:["Fela nánari upplýsingar"]},"Rename project":{v:["Endurnefna verkefni"]},"Show details":{v:["Birta nánari upplýsingar"]}}},{l:"it",t:{}},{l:"ja",t:{"Hide details":{v:["詳細を非表示"]},"Rename project":{v:["プロジェクト名を変更"]},"Show details":{v:["詳細の表示"]}}},{l:"ja-JP",t:{}},{l:"ko",t:{"Hide details":{v:["세부 사항 숨기기"]},"Rename project":{v:["프로젝트 이름 변경"]},"Show details":{v:["세부 사항 보기"]}}},{l:"lo",t:{"Hide details":{v:["ເຊື່ອງລາຍລະອຽດ"]},"Rename project":{v:["ປ່ຽນຊື່ໂຄງການ"]},"Show details":{v:["ສະແດງລາຍລະອຽດ"]}}},{l:"lt-LT",t:{}},{l:"lv",t:{}},{l:"mk",t:{"Hide details":{v:["Сокриј детали"]},"Rename project":{v:["Преименувај проект"]},"Show details":{v:["Прикажи детали"]}}},{l:"my",t:{}},{l:"nb",t:{"Hide details":{v:["Skjul detaljer"]},"Rename project":{v:["Gi prosjekt nytt navn"]},"Show details":{v:["Vis detaljer"]}}},{l:"nl",t:{"Hide details":{v:["Details verbergen"]},"Rename project":{v:["Project hernoemen"]},"Show details":{v:["Details weergeven"]}}},{l:"oc",t:{}},{l:"pl",t:{"Hide details":{v:["Ukryj szczegóły"]},"Rename project":{v:["Zmień nazwę projektu"]},"Show details":{v:["Pokaż szczegóły"]}}},{l:"pt-BR",t:{"Hide details":{v:["Ocultar detalhes"]},"Rename project":{v:["Renomear projeto"]},"Show details":{v:["Mostrar detalhes"]}}},{l:"pt-PT",t:{"Hide details":{v:["Ocultar detalhes"]},"Rename project":{v:["Alterar nome do projeto"]},"Show details":{v:["Ver detalhes"]}}},{l:"ro",t:{}},{l:"ru",t:{"Hide details":{v:["Скрыть подробности"]},"Rename project":{v:["Переименовать проект"]},"Show details":{v:["Показать детали"]}}},{l:"sk",t:{"Hide details":{v:["Skryť detaily"]},"Rename project":{v:["Premenovať projekt"]},"Show details":{v:["Zobraziť detaily"]}}},{l:"sl",t:{}},{l:"sr",t:{"Hide details":{v:["Сакриј детаље"]},"Rename project":{v:["Промени име пројекта"]},"Show details":{v:["Прикажи детаље"]}}},{l:"sv",t:{"Hide details":{v:["Göm detaljer"]},"Rename project":{v:["Byt namn på projektet"]},"Show details":{v:["Visa detaljer"]}}},{l:"tr",t:{"Hide details":{v:["Ayrıntıları gizle"]},"Rename project":{v:["Projeyi yeniden adlandır"]},"Show details":{v:["Ayrıntıları görüntüle"]}}},{l:"uk",t:{"Hide details":{v:["Сховати деталі"]},"Rename project":{v:["Перейменувати проєкт"]},"Show details":{v:["Показати деталі"]}}},{l:"uz",t:{"Hide details":{v:["Tafsilotlarni yashirish"]},"Rename project":{v:["Loyiha nomini o'zgartirish"]},"Show details":{v:["Tafsilotlarni ko'rsatish"]}}},{l:"zh-CN",t:{"Hide details":{v:["隐藏细节"]},"Rename project":{v:["重命名项目"]},"Show details":{v:["显示细节"]}}},{l:"zh-HK",t:{"Hide details":{v:["隱藏詳情"]},"Rename project":{v:["重命名方案"]},"Show details":{v:["顯示詳情"]}}},{l:"zh-TW",t:{"Hide details":{v:["隱藏詳細資料"]},"Rename project":{v:["重新命名專案"]},"Show details":{v:["顯示詳細資訊"]}}}],uu=[{l:"ar",t:{'Load more "{options}"':{v:['تحميل المزيد من "{options}" ']},"Raw link {options}":{v:[" الرابط الخام raw link ـ {options}"]},"Start typing to search":{v:["إبدإ كتابة مفردات البحث"]}}},{l:"ast",t:{'Load more "{options}"':{v:["Cargar más «{options}»"]},"Raw link {options}":{v:["Enllaz en bruto {optiones}"]},"Start typing to search":{v:["Comienza a escribir pa buscar"]}}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{'Load more "{options}"':{v:["Načíst další „{options}“"]},"Raw link {options}":{v:["Holý odkaz {options}"]},"Start typing to search":{v:["Vyhledávejte psaním"]}}},{l:"cs-CZ",t:{'Load more "{options}"':{v:["Načíst další „{options}“"]},"Raw link {options}":{v:["Holý odkaz {options}"]},"Start typing to search":{v:["Vyhledávejte psaním"]}}},{l:"da",t:{'Load more "{options}"':{v:['Indlæs flere "{options}"']},"Raw link {options}":{v:["Rå link {options}"]},"Start typing to search":{v:["Begynd at skrive for at søge"]}}},{l:"de",t:{'Load more "{options}"':{v:['Weitere "{options}" laden']},"Raw link {options}":{v:["Unverarbeiteter Link {options}"]},"Start typing to search":{v:["Mit der Eingabe beginnen, um zu suchen"]}}},{l:"de-DE",t:{'Load more "{options}"':{v:['Weitere "{options}" laden']},"Raw link {options}":{v:["Unverarbeiteter Link {options}"]},"Start typing to search":{v:["Mit der Eingabe beginnen, um zu suchen"]}}},{l:"el",t:{'Load more "{options}"':{v:['Φόρτωση περισσότερων "{options}"']},"Raw link {options}":{v:["Ακατέργαστος σύνδεσμος {options}"]},"Start typing to search":{v:["Ξεκινήστε να πληκτρολογείτε για αναζήτηση"]}}},{l:"en-GB",t:{'Load more "{options}"':{v:['Load more "{options}"']},"Raw link {options}":{v:["Raw link {options}"]},"Start typing to search":{v:["Start typing to search"]}}},{l:"eo",t:{}},{l:"es",t:{'Load more "{options}"':{v:['Cargar más "{options}"']},"Raw link {options}":{v:["Enlace directo {options}"]},"Start typing to search":{v:["Comience a escribir para buscar"]}}},{l:"es-AR",t:{'Load more "{options}"':{v:['Cargar más "{options}"']},"Raw link {options}":{v:["Enlace directo {options}"]},"Start typing to search":{v:["Comience a escribir para buscar"]}}},{l:"es-EC",t:{"Raw link {options}":{v:["Enlace directo {options}"]},"Start typing to search":{v:["Comienza a escribir para buscar"]}}},{l:"es-MX",t:{'Load more "{options}"':{v:['Cargar más "{options}"']},"Raw link {options}":{v:["Enlace directo {options}"]},"Start typing to search":{v:["Comience a escribir para buscar"]}}},{l:"et-EE",t:{'Load more "{options}"':{v:["Laadi veel „{options}“"]},"Raw link {options}":{v:["Töötlemata link: {options}"]},"Start typing to search":{v:["Alusta otsinguks sisestamist"]}}},{l:"eu",t:{'Load more "{options}"':{v:['Kargatu "{options}" gehiago']},"Raw link {options}":{v:["Formaturik gabeko esteka {aukerak}"]},"Start typing to search":{v:["Hasi idazten bilatzeko"]}}},{l:"fa",t:{'Load more "{options}"':{v:['بارگذاری بیشتر "{options}"']},"Raw link {options}":{v:["پیوند خام {options}"]},"Start typing to search":{v:["برای جستجو تایپ کنید"]}}},{l:"fi",t:{'Load more "{options}"':{v:['Lataa lisää "{options}"']},"Raw link {options}":{v:["Raaka linkki {options}"]},"Start typing to search":{v:["Aloita kirjoittaminen hakeaksesi"]}}},{l:"fr",t:{'Load more "{options}"':{v:[`Charger d'avantage "{options}"`]},"Raw link {options}":{v:["Lien brut {options}"]},"Start typing to search":{v:["Commencez à écrire pour rechercher"]}}},{l:"ga",t:{'Load more "{options}"':{v:['Luchtaigh tuilleadh "{options}"']},"Raw link {options}":{v:["Nasc amh {roghanna}"]},"Start typing to search":{v:["Tosaigh ag clóscríobh chun cuardach a dhéanamh"]}}},{l:"gl",t:{'Load more "{options}"':{v:["Cargar máis «{options}»"]},"Raw link {options}":{v:["Ligazón sen procesar {options}"]},"Start typing to search":{v:["Comece a escribir para buscar"]}}},{l:"he",t:{"Raw link {options}":{v:["קישור גולמי {options}"]},"Start typing to search":{v:["התחלת הקלדה מחפשת"]}}},{l:"hu",t:{}},{l:"id",t:{'Load more "{options}"':{v:['Muat "{options}" lainnya']},"Raw link {options}":{v:["Tautan mentah {options}"]},"Start typing to search":{v:["Ketik untuk mulai mencari"]}}},{l:"is",t:{'Load more "{options}"':{v:['Hlaða inn fleiri "{options}"']},"Raw link {options}":{v:["Hrár tengill {options}"]},"Start typing to search":{v:["Byrjaðu að skrifa til að leita"]}}},{l:"it",t:{'Load more "{options}"':{v:['Carica più "{options}"']},"Raw link {options}":{v:["Raw link {options}"]},"Start typing to search":{v:["Iniziare a digitare per effettuare la ricerca"]}}},{l:"ja",t:{'Load more "{options}"':{v:['"{options}" をもっと読み込む']},"Raw link {options}":{v:["未加工のリンク {options}"]},"Start typing to search":{v:["入力を開始して検索します"]}}},{l:"ja-JP",t:{'Load more "{options}"':{v:['"{options}" をもっと読み込む']},"Raw link {options}":{v:["未加工のリンク {options}"]},"Start typing to search":{v:["入力を開始して検索します"]}}},{l:"ko",t:{'Load more "{options}"':{v:['"{options}" 더 불러오기']},"Raw link {options}":{v:["{options} 원본 링크"]},"Start typing to search":{v:["입력하여 검색"]}}},{l:"lo",t:{'Load more "{options}"':{v:["ໂຫຼດ “{options}” ເພີ່ມເຕີມ"]},"Raw link {options}":{v:["ລິງດິບ {options}"]},"Start typing to search":{v:["ເລີ່ມພິມເພື່ອຄົ້ນຫາ"]}}},{l:"lt-LT",t:{}},{l:"lv",t:{}},{l:"mk",t:{'Load more "{options}"':{v:['Вчитај повеќе "{options}"']},"Raw link {options}":{v:["Суров линк {options}"]},"Start typing to search":{v:["Почни да пишуваш за пребарување"]}}},{l:"my",t:{}},{l:"nb",t:{'Load more "{options}"':{v:['Last inn flere "{options}"']},"Raw link {options}":{v:["Rå lenke {options}"]},"Start typing to search":{v:["Start å skrive for å søke"]}}},{l:"nl",t:{'Load more "{options}"':{v:['Meer "{options}" laden']},"Raw link {options}":{v:["Ruwe link {options}"]},"Start typing to search":{v:["Start met typen om te zoeken"]}}},{l:"oc",t:{}},{l:"pl",t:{'Load more "{options}"':{v:['Załaduj więcej "{options}"']},"Raw link {options}":{v:["Surowy odnośnik {options}"]},"Start typing to search":{v:["Zacznij pisać, aby wyszukać"]}}},{l:"pt-BR",t:{'Load more "{options}"':{v:['Carregar mais "{options}"']},"Raw link {options}":{v:["Link bruto {options}"]},"Start typing to search":{v:["Comece a digitar para pesquisar"]}}},{l:"pt-PT",t:{'Load more "{options}"':{v:['Carregar mais "{options}"']},"Raw link {options}":{v:["Link inicial {options}"]},"Start typing to search":{v:["Comece a digitar para pesquisar"]}}},{l:"ro",t:{'Load more "{options}"':{v:['Încarcă mai multe "{options}"']},"Raw link {options}":{v:["Link brut {options}"]},"Start typing to search":{v:["Tastați pentru căutare"]}}},{l:"ru",t:{'Load more "{options}"':{v:['Загрузить больше "{options}""']},"Raw link {options}":{v:["Необработанная ссылка {options}"]},"Start typing to search":{v:["Начните вводить текст для поиска"]}}},{l:"sk",t:{'Load more "{options}"':{v:['Načítať viac "{options}"']},"Raw link {options}":{v:["Raw odkaz {options}"]},"Start typing to search":{v:["Začnite písať pre vyhľadávanie"]}}},{l:"sl",t:{}},{l:"sr",t:{'Load more "{options}"':{v:["Учитај још „{options}”"]},"Raw link {options}":{v:["Сирови линк {options}"]},"Start typing to search":{v:["Покрените претрагу куцањем"]}}},{l:"sv",t:{'Load more "{options}"':{v:['Ladda fler "{options}"']},"Raw link {options}":{v:["Oformaterad länk {options}"]},"Start typing to search":{v:["Börja skriva för att söka"]}}},{l:"tr",t:{'Load more "{options}"':{v:['Diğer "{options}"']},"Raw link {options}":{v:["Ham bağlantı {options}"]},"Start typing to search":{v:["Aramak için yazmaya başlayın"]}}},{l:"uk",t:{'Load more "{options}"':{v:['Завантажити більше "{options}"']},"Raw link {options}":{v:["Пряме посилання {options}"]},"Start typing to search":{v:["Почніть вводити для пошуку"]}}},{l:"uz",t:{'Load more "{options}"':{v:[`Ko'proq yuklash "{options}"`]},"Raw link {options}":{v:[" {options}satr havolasi"]},"Start typing to search":{v:["Qidirish uchun yozishni boshlang"]}}},{l:"zh-CN",t:{'Load more "{options}"':{v:["加载更多 “{options}”"]},"Raw link {options}":{v:["原始链接 {options}"]},"Start typing to search":{v:["开始输入以进行搜索"]}}},{l:"zh-HK",t:{'Load more "{options}"':{v:['載入更多 "{options}"']},"Raw link {options}":{v:["原始連結 {options}"]},"Start typing to search":{v:["開始輸入以進行搜尋"]}}},{l:"zh-TW",t:{'Load more "{options}"':{v:["載入更多「{options}」"]},"Raw link {options}":{v:["原始連結 {options}"]},"Start typing to search":{v:["開始輸入以進行搜尋"]}}}],eu=[{l:"ar",t:{"No link provider found":{v:["لا يوجد أيّ مزود روابط link provider"]},"Write a message …":{v:["أكتب رسالة ..."]}}},{l:"ast",t:{"No link provider found":{v:["Nun s'atopó nengún fornidor d'enllaces"]},"Write a message …":{v:["Escribi un mensaxe…"]}}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{"Message limit of %n character reached":{p:"Message limit of %n characters reached",v:["Dosaženo limitu počtu %n znaku zprávy","Dosaženo limitu počtu %n znaků zprávy","Dosaženo limitu počtu %n znaků zprávy","Dosaženo limitu počtu %n znaků zprávy"]},"No link provider found":{v:["Nenalezen žádný poskytovatel odkazů"]},"Write a message …":{v:["Napište zprávu …"]}}},{l:"cs-CZ",t:{"No link provider found":{v:["Nenalezen žádný poskytovatel odkazů"]},"Write a message …":{v:["Napsat zprávu…"]}}},{l:"da",t:{"Message limit of %n character reached":{p:"Message limit of %n characters reached",v:["Beskedgrænsen på %n tegn er nået","Beskedgrænsen på %n tegn er nået"]},"No link provider found":{v:["Ingen linkudbyder fundet"]},"Write a message …":{v:["Skriv en besked ..."]}}},{l:"de",t:{"Message limit of %n character reached":{p:"Message limit of %n characters reached",v:["Nachrichtenlimit von %n Zeichen erreicht","Nachrichtenlimit von %n Zeichen erreicht"]},"No link provider found":{v:["Kein Linkanbieter gefunden"]},"Write a message …":{v:["Nachricht schreiben …"]}}},{l:"de-DE",t:{"Message limit of %n character reached":{p:"Message limit of %n characters reached",v:["Nachrichtenlimit von %n Zeichen erreicht","Nachrichtenlimit von %n Zeichen erreicht"]},"No link provider found":{v:["Kein Linkanbieter gefunden"]},"Write a message …":{v:["Nachricht schreiben …"]}}},{l:"el",t:{"Message limit of %n character reached":{p:"Message limit of %n characters reached",v:["Έφτασε το όριο μηνύματος των %n χαρακτήρων","Έφτασε το όριο μηνύματος των %n χαρακτήρων"]},"No link provider found":{v:["Δεν βρέθηκε πάροχος συνδέσμου"]},"Write a message …":{v:["Γράψτε ένα μήνυμα …"]}}},{l:"en-GB",t:{"Message limit of %n character reached":{p:"Message limit of %n characters reached",v:["Message limit of %n character reached","Message limit of %n characters reached"]},"No link provider found":{v:["No link provider found"]},"Write a message …":{v:["Write a message …"]}}},{l:"eo",t:{}},{l:"es",t:{"No link provider found":{v:["No se encontró ningún proveedor de enlaces"]},"Write a message …":{v:["Escriba un mensaje ..."]}}},{l:"es-AR",t:{"No link provider found":{v:["No se encontró ningún proveedor de enlaces"]},"Write a message …":{v:["Escriba un mensaje ..."]}}},{l:"es-EC",t:{"No link provider found":{v:["No se encontró ningún proveedor de enlaces"]}}},{l:"es-MX",t:{"No link provider found":{v:["No se encontró ningún proveedor de enlaces"]},"Write a message …":{v:["Escriba un mensaje ..."]}}},{l:"et-EE",t:{"Message limit of %n character reached":{p:"Message limit of %n characters reached",v:["Sõnumi piirarv %n tähemärk on käes","Sõnumi piirarv %n tähemärki on käes"]},"No link provider found":{v:["Lingi pakkujat ei leitud"]},"Write a message …":{v:["Koosta sõnum …"]}}},{l:"eu",t:{"No link provider found":{v:["Ez da aurkitu esteka-hornitzailerik"]},"Write a message …":{v:["Idatzi mezu bat…"]}}},{l:"fa",t:{"No link provider found":{v:["هیچ ارائه‌دهنده پیوندی یافت نشد"]},"Write a message …":{v:["یک پیام بنویسید ..."]}}},{l:"fi",t:{"No link provider found":{v:["Linkin tarjoajia ei löydetty"]},"Write a message …":{v:["Kirjoita viesti…"]}}},{l:"fr",t:{"Message limit of %n character reached":{p:"Message limit of %n characters reached",v:["Limite de messages de %n caractère atteinte","Limite de messages de %n caractères atteinte","Limite de messages de %n caractères atteinte"]},"No link provider found":{v:["Aucun fournisseur de lien trouvé"]},"Write a message …":{v:["Ecrire un message..."]}}},{l:"ga",t:{"Message limit of %n character reached":{p:"Message limit of %n characters reached",v:["Sroicheadh ​​teorainn teachtaireachta de %n carachtar","Sroicheadh ​​teorainn teachtaireachta de %n carachtar","Sroicheadh ​​teorainn teachtaireachta de %n carachtar","Sroicheadh ​​teorainn teachtaireachta de %n carachtar","Sroicheadh ​​teorainn teachtaireachta de %n carachtar"]},"No link provider found":{v:["Níor aimsíodh aon soláthraí naisc"]},"Write a message …":{v:["Scríobh teachtaireacht …"]}}},{l:"gl",t:{"Message limit of %n character reached":{p:"Message limit of %n characters reached",v:["Acadouse o límite de %n caracter por mensaxe","Acadouse o límite de %n caracteres por mensaxe"]},"No link provider found":{v:["Non se atopou ningún provedor de ligazóns"]},"Write a message …":{v:["Escribir unha mensaxe…"]}}},{l:"he",t:{"No link provider found":{v:["לא נמצא ספק קישורים"]}}},{l:"hu",t:{}},{l:"id",t:{"No link provider found":{v:["Tidak ada penyedia tautan yang ditemukan"]},"Write a message …":{v:["Tulis pesan ..."]}}},{l:"is",t:{"No link provider found":{v:["Engin tenglaveita fannst"]},"Write a message …":{v:["Skrifaðu skilaboð …"]}}},{l:"it",t:{"No link provider found":{v:["Nessun fornitore di link trovato"]},"Write a message …":{v:["Scrivi un messaggio ..."]}}},{l:"ja",t:{"Message limit of %n character reached":{p:"Message limit of %n characters reached",v:["メッセージの%n文字の制限に達しました"]},"No link provider found":{v:["リンクプロバイダーが見つかりません"]},"Write a message …":{v:["メッセージを書く ..."]}}},{l:"ja-JP",t:{"No link provider found":{v:["リンクプロバイダーが見つかりません"]},"Write a message …":{v:["メッセージを書く ..."]}}},{l:"ko",t:{"Message limit of %n character reached":{p:"Message limit of %n characters reached",v:["메시지 제한 %n자에 도달"]},"No link provider found":{v:["링크 제공자 없음"]},"Write a message …":{v:["메시지 작성..."]}}},{l:"lo",t:{"Message limit of %n character reached":{p:"Message limit of %n characters reached",v:["ຮອດຂີດຈຳກັດຂໍ້ຄວາມ %n ໂຕອັກສອນແລ້ວ"]},"No link provider found":{v:["ບໍ່ພົບຜູ້ໃຫ້ບໍລິການລິງ"]},"Write a message …":{v:["ຂຽນຂໍ້ຄວາມ…"]}}},{l:"lt-LT",t:{}},{l:"lv",t:{}},{l:"mk",t:{"Message limit of %n character reached":{p:"Message limit of %n characters reached",v:["Достигнат е лимит од %n карактер","Достигнат е лимит од %n карактери за порака"]},"No link provider found":{v:["Не е пронајден давател на линк"]},"Write a message …":{v:["Напиши порака …"]}}},{l:"my",t:{}},{l:"nb",t:{"No link provider found":{v:["Finner ingen lenkeleverandør"]},"Write a message …":{v:["Skriv en melding..."]}}},{l:"nl",t:{"Message limit of %n character reached":{p:"Message limit of %n characters reached",v:["Berichtlimiet van %n teken bereikt","Berichtlimiet van %n tekens bereikt"]},"No link provider found":{v:["Geen link provider gevonden"]},"Write a message …":{v:["Schrijf een bericht …"]}}},{l:"oc",t:{}},{l:"pl",t:{"No link provider found":{v:["Nie znaleziono dostawcy linków"]},"Write a message …":{v:["Napisz wiadomość…"]}}},{l:"pt-BR",t:{"Message limit of %n character reached":{p:"Message limit of %n characters reached",v:["Limite de mensagem de %n caractere atingido","Limite de mensagem de %n de caracteres atingido","Limite de mensagem de %n caracteres atingido"]},"No link provider found":{v:["Nenhum provedor de link encontrado"]},"Write a message …":{v:["Escreva uma mensagem …"]}}},{l:"pt-PT",t:{"Message limit of %n character reached":{p:"Message limit of %n characters reached",v:["Limite de mensagem de %n carácter atingido","Limite de mensagem de %n caracteres atingido","Limite de mensagem de %n caracteres atingido"]},"No link provider found":{v:["Nenhum fornecedor de link encontrado"]},"Write a message …":{v:["Escreva uma mensagem..."]}}},{l:"ro",t:{"No link provider found":{v:["Nu s-a găsit un provider pentru linkuri"]},"Write a message …":{v:["Scrieți un mesaj ..."]}}},{l:"ru",t:{"Message limit of %n character reached":{p:"Message limit of %n characters reached",v:["Достигнут лимит в %n символ","Достигнут лимит в %n символа","Достигнут лимит в %n символов","Достигнут лимит в %n символов"]},"No link provider found":{v:["Поставщик ссылок не найден"]},"Write a message …":{v:["Напишите сообщение …"]}}},{l:"sk",t:{"No link provider found":{v:["Žiaden odkaz poskytovateľa nebol nájdený"]},"Write a message …":{v:["Napíšte správu…"]}}},{l:"sl",t:{}},{l:"sr",t:{"Message limit of %n character reached":{p:"Message limit of %n characters reached",v:["Достигнуто је ограничење величине поруке од %n карактер","Достигнуто је ограничење величине поруке од %n карактера","Достигнуто је ограничење величине поруке од %n карактера"]},"No link provider found":{v:["Није пронађен ниједан пружалац линка"]},"Write a message …":{v:["Напишите поруку…"]}}},{l:"sv",t:{"No link provider found":{v:["Ingen länkleverantör hittades"]},"Write a message …":{v:["Skriv ett meddelande …"]}}},{l:"tr",t:{"Message limit of %n character reached":{p:"Message limit of %n characters reached",v:["İleti için %n karakter sayısı sınırına ulaşıldı","İleti için %n karakter sayısı sınırına ulaşıldı"]},"No link provider found":{v:["Bağlantı hizmeti sağlayıcısı bulunamadı"]},"Write a message …":{v:["Bir ileti yazın…"]}}},{l:"uk",t:{"Message limit of %n character reached":{p:"Message limit of %n characters reached",v:["Досягнуто обмеження на довжину повідомлення у %n символ.","Досягнуто обмеження на довжину повідомлення у %n символи.","Досягнуто обмеження на довжину повідомлення у%n символів.","Досягнуто обмеження на довжину повідомлення у %n символів."]},"No link provider found":{v:["Не наведено посилання"]},"Write a message …":{v:["Створити повідомлення …"]}}},{l:"uz",t:{"Message limit of %n character reached":{p:"Message limit of %n characters reached",v:[" %n ta belgidan iborat xabar chegarasiga yetdi"]},"No link provider found":{v:["Hech qanday havola provayderi topilmadi"]},"Write a message …":{v:["Xabar yozish..."]}}},{l:"zh-CN",t:{"No link provider found":{v:["未找到任何链接提供者"]},"Write a message …":{v:["编写信息 ..."]}}},{l:"zh-HK",t:{"Message limit of %n character reached":{p:"Message limit of %n characters reached",v:["已達到訊息最多 %n 字元限制"]},"No link provider found":{v:["找不到連結提供者"]},"Write a message …":{v:["編寫訊息 …"]}}},{l:"zh-TW",t:{"No link provider found":{v:["找不到連結提供者"]},"Write a message …":{v:["編寫訊息……"]}}}],tu=[{l:"ar",t:{"More items …":{v:["عناصر أخرى ..."]}}},{l:"ast",t:{"More items …":{v:["Más elementos…"]}}},{l:"br",t:{}},{l:"ca",t:{"More items …":{v:["Més artícles..."]}}},{l:"cs",t:{"More items …":{v:["Další položky …"]}}},{l:"cs-CZ",t:{"More items …":{v:["Další položky…"]}}},{l:"da",t:{"More items …":{v:["Flere elementer ..."]}}},{l:"de",t:{"More items …":{v:["Weitere Elemente …"]}}},{l:"de-DE",t:{"More items …":{v:["Weitere Elemente …"]}}},{l:"el",t:{"More items …":{v:["Περισσότερα στοιχεία …"]}}},{l:"en-GB",t:{"More items …":{v:["More items …"]}}},{l:"eo",t:{}},{l:"es",t:{"More items …":{v:["Más ítems ..."]}}},{l:"es-AR",t:{"More items …":{v:["Más elementos..."]}}},{l:"es-EC",t:{"More items …":{v:["Más elementos..."]}}},{l:"es-MX",t:{"More items …":{v:["Más Elementos ..."]}}},{l:"et-EE",t:{"More items …":{v:["Vaata veel …"]}}},{l:"eu",t:{"More items …":{v:["Elementu gehiago …"]}}},{l:"fa",t:{"More items …":{v:["موارد بیشتر ..."]}}},{l:"fi",t:{"More items …":{v:["Lisää kohteita…"]}}},{l:"fr",t:{"More items …":{v:["Plus d'éléments..."]}}},{l:"ga",t:{"More items …":{v:["Tuilleadh míreanna …"]}}},{l:"gl",t:{"More items …":{v:["Máis elementos…"]}}},{l:"he",t:{"More items …":{v:["פריטים נוספים…"]}}},{l:"hu",t:{"More items …":{v:["További elemek..."]}}},{l:"id",t:{"More items …":{v:["Item lainnya…"]}}},{l:"is",t:{"More items …":{v:["Fleiri atriði …"]}}},{l:"it",t:{"More items …":{v:["Più elementi ..."]}}},{l:"ja",t:{"More items …":{v:["他のアイテム …"]}}},{l:"ja-JP",t:{"More items …":{v:["他のアイテム"]}}},{l:"ko",t:{"More items …":{v:["항목 더 보기..."]}}},{l:"lo",t:{"More items …":{v:["ລາຍການເພີ່ມເຕີມ…"]}}},{l:"lt-LT",t:{}},{l:"lv",t:{}},{l:"mk",t:{"More items …":{v:["Повеќе елементи …"]}}},{l:"my",t:{}},{l:"nb",t:{"More items …":{v:["Flere gjenstander..."]}}},{l:"nl",t:{"More items …":{v:["Meer items …"]}}},{l:"oc",t:{}},{l:"pl",t:{"More items …":{v:["Więcej pozycji…"]}}},{l:"pt-BR",t:{"More items …":{v:["Mais itens …"]}}},{l:"pt-PT",t:{"More items …":{v:["Mais itens…"]}}},{l:"ro",t:{"More items …":{v:["Mai multe articole ..."]}}},{l:"ru",t:{"More items …":{v:["Больше элементов …"]}}},{l:"sk",t:{"More items …":{v:["Viac položiek..."]}}},{l:"sl",t:{"More items …":{v:["Več predmetov ..."]}}},{l:"sr",t:{"More items …":{v:["Још ставки..."]}}},{l:"sv",t:{"More items …":{v:["Fler objekt …"]}}},{l:"tr",t:{"More items …":{v:["Diğer ögeler…"]}}},{l:"uk",t:{"More items …":{v:["Більше …"]}}},{l:"uz",t:{"More items …":{v:["Yana elementlar..."]}}},{l:"zh-CN",t:{"More items …":{v:["更多项目…"]}}},{l:"zh-HK",t:{"More items …":{v:["更多項目 …"]}}},{l:"zh-TW",t:{"More items …":{v:["更多項目……"]}}}],au=[{l:"ar",t:{"No emoji found":{v:["لم يتم العثور على أي إيموجي emoji"]}}},{l:"ast",t:{"No emoji found":{v:["Nun s'atopó nengún fustaxe"]}}},{l:"br",t:{"No emoji found":{v:["Emoji ebet kavet"]}}},{l:"ca",t:{"No emoji found":{v:["No s'ha trobat cap emoji"]}}},{l:"cs",t:{"No emoji found":{v:["Nenalezeno žádné emoji"]}}},{l:"cs-CZ",t:{"No emoji found":{v:["Nenalezeno žádné emoji"]}}},{l:"da",t:{"No emoji found":{v:["Ingen emoji fundet"]}}},{l:"de",t:{"No emoji found":{v:["Kein Emoji gefunden"]}}},{l:"de-DE",t:{"No emoji found":{v:["Kein Emoji gefunden"]}}},{l:"el",t:{"No emoji found":{v:["Δεν βρέθηκε emoji"]}}},{l:"en-GB",t:{"No emoji found":{v:["No emoji found"]}}},{l:"eo",t:{"No emoji found":{v:["La emoĝio forestas"]}}},{l:"es",t:{"No emoji found":{v:["No se encontró ningún emoji"]}}},{l:"es-AR",t:{"No emoji found":{v:["No se encontró ningún emoji"]}}},{l:"es-EC",t:{"No emoji found":{v:["No se encontró ningún emoji"]}}},{l:"es-MX",t:{"No emoji found":{v:["No se encontró ningún emoji"]}}},{l:"et-EE",t:{"No emoji found":{v:["Emojit ei leitud"]}}},{l:"eu",t:{"No emoji found":{v:["Ez da emojirik aurkitu"]}}},{l:"fa",t:{"No emoji found":{v:["هیچ شکلکی یافت نشد"]}}},{l:"fi",t:{"No emoji found":{v:["Emojia ei löytynyt"]}}},{l:"fr",t:{"No emoji found":{v:["Pas d’émoji trouvé"]}}},{l:"ga",t:{"No emoji found":{v:["Níor aimsíodh emoji"]}}},{l:"gl",t:{"No emoji found":{v:["Non se atopou ningún «emoji»"]}}},{l:"he",t:{"No emoji found":{v:["לא נמצא אמוג׳י"]}}},{l:"hu",t:{"No emoji found":{v:["Nem található emodzsi"]}}},{l:"id",t:{"No emoji found":{v:["Tidak ada emoji yang ditemukan"]}}},{l:"is",t:{"No emoji found":{v:["Ekkert tjáningartákn fannst"]}}},{l:"it",t:{"No emoji found":{v:["Nessun emoji trovato"]}}},{l:"ja",t:{"No emoji found":{v:["絵文字が見つかりません"]}}},{l:"ja-JP",t:{"No emoji found":{v:["絵文字が見つかりません"]}}},{l:"ko",t:{"No emoji found":{v:["이모지 없음"]}}},{l:"lo",t:{"No emoji found":{v:["ບໍ່ພົບອີໂມຈິ"]}}},{l:"lt-LT",t:{"No emoji found":{v:["Nerasta jaustukų"]}}},{l:"lv",t:{}},{l:"mk",t:{"No emoji found":{v:["Не се пронајдени емотикони"]}}},{l:"my",t:{"No emoji found":{v:["အီမိုဂျီ ရှာဖွေမတွေ့နိုင်ပါ"]}}},{l:"nb",t:{"No emoji found":{v:["Fant ingen emoji"]}}},{l:"nl",t:{"No emoji found":{v:["Geen emoji gevonden"]}}},{l:"oc",t:{}},{l:"pl",t:{"No emoji found":{v:["Nie znaleziono emoji"]}}},{l:"pt-BR",t:{"No emoji found":{v:["Nenhum emoji encontrado"]}}},{l:"pt-PT",t:{"No emoji found":{v:["Nenhum emoji encontrado"]}}},{l:"ro",t:{"No emoji found":{v:["Nu s-a găsit niciun emoji"]}}},{l:"ru",t:{"No emoji found":{v:["Эмодзи не найдено"]}}},{l:"sk",t:{"No emoji found":{v:["Nenašli sa žiadne emodži"]}}},{l:"sl",t:{"No emoji found":{v:["Ni najdenih izraznih ikon"]}}},{l:"sr",t:{"No emoji found":{v:["Није пронађен ниједан емођи"]}}},{l:"sv",t:{"No emoji found":{v:["Hittade inga emojis"]}}},{l:"tr",t:{"No emoji found":{v:["Herhangi bir emoji bulunamadı"]}}},{l:"uk",t:{"No emoji found":{v:["Емоційки відсутні"]}}},{l:"uz",t:{"No emoji found":{v:["Hech qanday emoji topilmadi"]}}},{l:"zh-CN",t:{"No emoji found":{v:["表情未找到"]}}},{l:"zh-HK",t:{"No emoji found":{v:["未找到表情符號"]}}},{l:"zh-TW",t:{"No emoji found":{v:["未找到表情符號"]}}}],ou=[{l:"ar",t:{'Open link to "{resourceName}"':{v:['إفتَح الرابط إلى "{resourceName}"']}}},{l:"ast",t:{'Open link to "{resourceName}"':{v:["Abrir l'enllaz a «{resourceName}»"]}}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{'Open link to "{resourceName}"':{v:["Otevřít odkaz na „{resourceName}“"]}}},{l:"cs-CZ",t:{'Open link to "{resourceName}"':{v:["Otevřít odkaz na „{resourceName}“"]}}},{l:"da",t:{'Open link to "{resourceName}"':{v:['Åbn link til "{resourceName}"']}}},{l:"de",t:{'Open link to "{resourceName}"':{v:['Link zu "{resourceName}" öffnen']}}},{l:"de-DE",t:{'Open link to "{resourceName}"':{v:['Link zu "{resourceName}" öffnen']}}},{l:"el",t:{'Open link to "{resourceName}"':{v:['Άνοιγμα συνδέσμου για "{resourceName}"']}}},{l:"en-GB",t:{'Open link to "{resourceName}"':{v:['Open link to "{resourceName}"']}}},{l:"eo",t:{}},{l:"es",t:{'Open link to "{resourceName}"':{v:['Abrir enlace a "{resourceName}"']}}},{l:"es-AR",t:{'Open link to "{resourceName}"':{v:['Abrir enlace a "{resourceName}"']}}},{l:"es-EC",t:{'Open link to "{resourceName}"':{v:['Abrir enlace a "{resourceName}"']}}},{l:"es-MX",t:{'Open link to "{resourceName}"':{v:['Abrir enlace a "{resourceName}"']}}},{l:"et-EE",t:{'Open link to "{resourceName}"':{v:["Ava link „{resourceName}“"]}}},{l:"eu",t:{'Open link to "{resourceName}"':{v:['Ireki "{resourceName}" esteka']}}},{l:"fa",t:{'Open link to "{resourceName}"':{v:["باز کردن پیوند به «{resourceName}»"]}}},{l:"fi",t:{'Open link to "{resourceName}"':{v:['Avaa linkki "{resourceName}"']}}},{l:"fr",t:{'Open link to "{resourceName}"':{v:['Ouvrir le lien vers "{resourceName}"']}}},{l:"ga",t:{'Open link to "{resourceName}"':{v:['Oscail nasc chuig "{resourceName}"']}}},{l:"gl",t:{'Open link to "{resourceName}"':{v:["Abrir a ligazón a «{resourceName}»"]}}},{l:"he",t:{'Open link to "{resourceName}"':{v:["פתיחת קישור אל „{resourceName}”"]}}},{l:"hu",t:{}},{l:"id",t:{'Open link to "{resourceName}"':{v:['Buka tautan ke "{resourceName}"']}}},{l:"is",t:{'Open link to "{resourceName}"':{v:['Opna tengil í "{resourceName}"']}}},{l:"it",t:{'Open link to "{resourceName}"':{v:['Apri il link a "{resourceName}"']}}},{l:"ja",t:{'Open link to "{resourceName}"':{v:['"{resourceName}" へのリンクを開く']}}},{l:"ja-JP",t:{'Open link to "{resourceName}"':{v:['"{resourceName}" へのリンクを開く']}}},{l:"ko",t:{'Open link to "{resourceName}"':{v:['"{resourceName}"의 링크 열기']}}},{l:"lo",t:{'Open link to "{resourceName}"':{v:["ເປີດລິງໄປທີ່ “{resourceName}”"]}}},{l:"lt-LT",t:{}},{l:"lv",t:{}},{l:"mk",t:{'Open link to "{resourceName}"':{v:['Отвори линк до "{resourceName}"']}}},{l:"my",t:{}},{l:"nb",t:{'Open link to "{resourceName}"':{v:['Åpne lenken til "{resourceName}"']}}},{l:"nl",t:{'Open link to "{resourceName}"':{v:['Link naar "{resourceName}" openen']}}},{l:"oc",t:{}},{l:"pl",t:{'Open link to "{resourceName}"':{v:['Otwórz link do "{resourceName}"']}}},{l:"pt-BR",t:{'Open link to "{resourceName}"':{v:['Abrir o link para "{resourceName}"']}}},{l:"pt-PT",t:{'Open link to "{resourceName}"':{v:['Abrir link para "{resourceName}"']}}},{l:"ro",t:{'Open link to "{resourceName}"':{v:['Deschide linkul la "{resourceName}"']}}},{l:"ru",t:{'Open link to "{resourceName}"':{v:['Открыть ссылку на "{resourceName}"']}}},{l:"sk",t:{'Open link to "{resourceName}"':{v:['Otvoriť link v "{resourceName}"']}}},{l:"sl",t:{}},{l:"sr",t:{'Open link to "{resourceName}"':{v:["Отвори линк на „{resourceName}”"]}}},{l:"sv",t:{'Open link to "{resourceName}"':{v:['Öppna länken till "{resourceName}"']}}},{l:"tr",t:{'Open link to "{resourceName}"':{v:['Bağlantıyı "{resourceName}" üzerine aç']}}},{l:"uk",t:{'Open link to "{resourceName}"':{v:['Відкрити посилання на "{resourceName}"']}}},{l:"uz",t:{'Open link to "{resourceName}"':{v:[' "{resourceName}" ga havolani ochish']}}},{l:"zh-CN",t:{'Open link to "{resourceName}"':{v:["打开 “{resourceName}” 的链接"]}}},{l:"zh-HK",t:{'Open link to "{resourceName}"':{v:["開啟到「{resourceName}」的連結"]}}},{l:"zh-TW",t:{'Open link to "{resourceName}"':{v:["開啟到「{resourceName}」的連結"]}}}],iu=[{l:"ar",t:{"Provider icon":{v:["أيقونة المزوّد"]}}},{l:"ast",t:{"Provider icon":{v:["Iconu del fornidor"]}}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{"Provider icon":{v:["Ikona poskytovatele"]}}},{l:"cs-CZ",t:{"Provider icon":{v:["Ikona poskytovatele"]}}},{l:"da",t:{"Provider icon":{v:["Udbyder ikon"]}}},{l:"de",t:{"Provider icon":{v:["Anbietersymbol"]}}},{l:"de-DE",t:{"Provider icon":{v:["Anbietersymbol"]}}},{l:"el",t:{"Provider icon":{v:["Εικονίδιο παρόχου"]}}},{l:"en-GB",t:{"Provider icon":{v:["Provider icon"]}}},{l:"eo",t:{}},{l:"es",t:{"Provider icon":{v:["Ícono del proveedor"]}}},{l:"es-AR",t:{"Provider icon":{v:["Ícono del proveedor"]}}},{l:"es-EC",t:{"Provider icon":{v:["Ícono del proveedor"]}}},{l:"es-MX",t:{"Provider icon":{v:["Ícono del proveedor"]}}},{l:"et-EE",t:{"Provider icon":{v:["Teenusepakkuja ikoon"]}}},{l:"eu",t:{"Provider icon":{v:["Hornitzailearen ikonoa"]}}},{l:"fa",t:{"Provider icon":{v:["آیکون ارائه دهنده"]}}},{l:"fi",t:{"Provider icon":{v:["Palveluntarjoajan kuvake"]}}},{l:"fr",t:{"Provider icon":{v:["Icône du fournisseur"]}}},{l:"ga",t:{"Provider icon":{v:["Deilbhín soláthraí"]}}},{l:"gl",t:{"Provider icon":{v:["Icona do provedor"]}}},{l:"he",t:{"Provider icon":{v:["סמל ספק"]}}},{l:"hu",t:{}},{l:"id",t:{"Provider icon":{v:["Ikon penyedia"]}}},{l:"is",t:{"Provider icon":{v:["Táknmynd þjónustuveitu"]}}},{l:"it",t:{"Provider icon":{v:["Icona del provider"]}}},{l:"ja",t:{"Provider icon":{v:["プロバイダーのアイコン"]}}},{l:"ja-JP",t:{"Provider icon":{v:["プロバイダーのアイコン"]}}},{l:"ko",t:{"Provider icon":{v:["제공자 아이콘"]}}},{l:"lo",t:{"Provider icon":{v:["ໄອຄອນຜູ້ໃຫ້ບໍລິການ"]}}},{l:"lt-LT",t:{}},{l:"lv",t:{}},{l:"mk",t:{"Provider icon":{v:["Икона на давател"]}}},{l:"my",t:{}},{l:"nb",t:{"Provider icon":{v:["Leverandørikon"]}}},{l:"nl",t:{"Provider icon":{v:["Provider-pictogram"]}}},{l:"oc",t:{}},{l:"pl",t:{"Provider icon":{v:["Dostawca ikony"]}}},{l:"pt-BR",t:{"Provider icon":{v:["Ícone do provedor"]}}},{l:"pt-PT",t:{"Provider icon":{v:["Ícone do fornecedor"]}}},{l:"ro",t:{"Provider icon":{v:["Provider pentru icon"]}}},{l:"ru",t:{"Provider icon":{v:["Значок поставщика"]}}},{l:"sk",t:{"Provider icon":{v:["Ikonka poskytovateľa"]}}},{l:"sl",t:{}},{l:"sr",t:{"Provider icon":{v:["Икона пружаоца"]}}},{l:"sv",t:{"Provider icon":{v:["Leverantörsikon"]}}},{l:"tr",t:{"Provider icon":{v:["Hizmet sağlayıcı simgesi"]}}},{l:"uk",t:{"Provider icon":{v:["Піктограма постачальника"]}}},{l:"uz",t:{"Provider icon":{v:["Provayder belgisi"]}}},{l:"zh-CN",t:{"Provider icon":{v:["提供者图标"]}}},{l:"zh-HK",t:{"Provider icon":{v:["提供者圖示"]}}},{l:"zh-TW",t:{"Provider icon":{v:["提供者圖示"]}}}],ru=[{l:"ar",t:{"Related team resources":{v:["موارد للفريق ذات صلة"]},"View team":{v:["عرض الفريق"]}}},{l:"ast",t:{"Related team resources":{v:["Recursos rellacionaos colos equipos"]},"View team":{v:["Ver l'equipu"]}}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{"Related team resources":{v:["Související prostředky kolektivu"]},"View team":{v:["Zobrazit kolektiv"]}}},{l:"cs-CZ",t:{}},{l:"da",t:{"Related team resources":{v:["Relaterede teamressourcer"]},"View team":{v:["Se teamet"]}}},{l:"de",t:{"Related team resources":{v:["Verwandte Team-Ressourcen"]},"View team":{v:["Team anzeigen"]}}},{l:"de-DE",t:{"Related team resources":{v:["Verwandte Team-Ressourcen"]},"View team":{v:["Team anzeigen"]}}},{l:"el",t:{"Related team resources":{v:["Σχετικοί πόροι ομάδας"]},"View team":{v:["Προβολή ομάδας"]}}},{l:"en-GB",t:{"Related team resources":{v:["Related team resources"]},"View team":{v:["View team"]}}},{l:"eo",t:{}},{l:"es",t:{"Related team resources":{v:["Recursos de equipo relacionados"]},"View team":{v:["Ver equipo"]}}},{l:"es-AR",t:{"Related team resources":{v:["Recursos de equipo relacionados"]},"View team":{v:["Ver equipo"]}}},{l:"es-EC",t:{}},{l:"es-MX",t:{"Related team resources":{v:["Recursos de equipo relacionados"]},"View team":{v:["Ver equipo"]}}},{l:"et-EE",t:{"Related team resources":{v:["Tiimi seotud ressursid"]},"View team":{v:["Vaata tiimi"]}}},{l:"eu",t:{}},{l:"fa",t:{"Related team resources":{v:["منابع تیمی مرتبط"]},"View team":{v:["مشاهده گروه"]}}},{l:"fi",t:{"Related team resources":{v:["Liittyvät tiimiresurssit"]},"View team":{v:["Näytä tiimi"]}}},{l:"fr",t:{"Related team resources":{v:["Ressources d'équipe associées"]},"View team":{v:["Voir l'équipe"]}}},{l:"ga",t:{"Related team resources":{v:["Acmhainní foirne gaolmhara"]},"View team":{v:["Féach ar an bhfoireann"]}}},{l:"gl",t:{"Related team resources":{v:["Recursos de equipo relacionados"]},"View team":{v:["Ver o equipo"]}}},{l:"he",t:{}},{l:"hu",t:{}},{l:"id",t:{}},{l:"is",t:{"Related team resources":{v:["Tengd tilföng teymis"]},"View team":{v:["Skoða teymi"]}}},{l:"it",t:{}},{l:"ja",t:{"Related team resources":{v:["チームの関連リソース"]},"View team":{v:["チームを表示"]}}},{l:"ja-JP",t:{"Related team resources":{v:["チームの関連リソース"]},"View team":{v:["チームを表示"]}}},{l:"ko",t:{"Related team resources":{v:["관련 팀 리소스"]},"View team":{v:["팀 보기"]}}},{l:"lo",t:{"Related team resources":{v:["ຊັບພະຍາກອນຂອງທີມທີ່ກ່ຽວຂ້ອງ"]},"View team":{v:["ເບິ່ງທີມ"]}}},{l:"lt-LT",t:{}},{l:"lv",t:{}},{l:"mk",t:{"Related team resources":{v:["Поврзани ресурси на тимот"]},"View team":{v:["Прикажи тим"]}}},{l:"my",t:{}},{l:"nb",t:{"Related team resources":{v:["Relaterte lagressurser"]},"View team":{v:["Se lag"]}}},{l:"nl",t:{"Related team resources":{v:["Verwante teambronnen"]},"View team":{v:["Team bekijken"]}}},{l:"oc",t:{}},{l:"pl",t:{"Related team resources":{v:["Powiązane zasoby grupowe"]},"View team":{v:["Zobacz grupę"]}}},{l:"pt-BR",t:{"Related team resources":{v:["Recursos de equipe relacionados"]},"View team":{v:["Ver equipe"]}}},{l:"pt-PT",t:{"Related team resources":{v:["Recursos relacionados com a equipa"]},"View team":{v:["Ver equipa"]}}},{l:"ro",t:{}},{l:"ru",t:{"Related team resources":{v:["Связанные командные ресурсы"]},"View team":{v:["Просмотр команды"]}}},{l:"sk",t:{"Related team resources":{v:["Súvisiace tímové zdroje"]},"View team":{v:["Zobraziť tím"]}}},{l:"sl",t:{}},{l:"sr",t:{"Related team resources":{v:["Повезани тимски ресурси"]},"View team":{v:["Прикажи тим"]}}},{l:"sv",t:{"Related team resources":{v:["Relaterade teamresurser"]},"View team":{v:["Visa team"]}}},{l:"tr",t:{"Related team resources":{v:["İlgili takım kaynakları"]},"View team":{v:["Takımı görüntüle"]}}},{l:"uk",t:{"Related team resources":{v:["Пов'язані ресурси команди"]},"View team":{v:["Переглянути команду"]}}},{l:"uz",t:{"Related team resources":{v:["Tegishli jamoa resurslari"]},"View team":{v:["Jamoani ko'rish"]}}},{l:"zh-CN",t:{"Related team resources":{v:["相关团队资源"]},"View team":{v:["查看团队"]}}},{l:"zh-HK",t:{"Related team resources":{v:["相關團隊資源"]},"View team":{v:["查看團隊"]}}},{l:"zh-TW",t:{"Related team resources":{v:["相關團隊資源"]},"View team":{v:["檢視團隊"]}}}],lu=[{l:"ar",t:{Search:{v:["بحث"]}}},{l:"ast",t:{Search:{v:["Buscar"]}}},{l:"br",t:{Search:{v:["Klask"]}}},{l:"ca",t:{Search:{v:["Cerca"]}}},{l:"cs",t:{Search:{v:["Hledat"]}}},{l:"cs-CZ",t:{Search:{v:["Hledat"]}}},{l:"da",t:{Search:{v:["Søg"]}}},{l:"de",t:{Search:{v:["Suche"]}}},{l:"de-DE",t:{Search:{v:["Suche"]}}},{l:"el",t:{Search:{v:["Αναζήτηση"]}}},{l:"en-GB",t:{Search:{v:["Search"]}}},{l:"eo",t:{Search:{v:["Serĉi"]}}},{l:"es",t:{Search:{v:["Buscar"]}}},{l:"es-AR",t:{Search:{v:["Buscar"]}}},{l:"es-EC",t:{Search:{v:["Buscar"]}}},{l:"es-MX",t:{Search:{v:["Buscar"]}}},{l:"et-EE",t:{Search:{v:["Otsing"]}}},{l:"eu",t:{Search:{v:["Bilatu"]}}},{l:"fa",t:{Search:{v:["جستجو"]}}},{l:"fi",t:{Search:{v:["Etsi"]}}},{l:"fr",t:{Search:{v:["Rechercher"]}}},{l:"ga",t:{Search:{v:["Cuardach"]}}},{l:"gl",t:{Search:{v:["Buscar"]}}},{l:"he",t:{Search:{v:["חיפוש"]}}},{l:"hu",t:{Search:{v:["Keresés"]}}},{l:"id",t:{Search:{v:["Cari"]}}},{l:"is",t:{Search:{v:["Leita"]}}},{l:"it",t:{Search:{v:["Cerca"]}}},{l:"ja",t:{Search:{v:["検索"]}}},{l:"ja-JP",t:{Search:{v:["検索"]}}},{l:"ko",t:{Search:{v:["검색"]}}},{l:"lo",t:{Search:{v:["ຄົ້ນຫາ"]}}},{l:"lt-LT",t:{Search:{v:["Ieškoti"]}}},{l:"lv",t:{}},{l:"mk",t:{Search:{v:["Барај"]}}},{l:"my",t:{Search:{v:["ရှာဖွေရန်"]}}},{l:"nb",t:{Search:{v:["Søk"]}}},{l:"nl",t:{Search:{v:["Zoeken"]}}},{l:"oc",t:{}},{l:"pl",t:{Search:{v:["Szukaj"]}}},{l:"pt-BR",t:{Search:{v:["Pesquisar"]}}},{l:"pt-PT",t:{Search:{v:["Pesquisar"]}}},{l:"ro",t:{Search:{v:["Căutare"]}}},{l:"ru",t:{Search:{v:["Поиск"]}}},{l:"sk",t:{Search:{v:["Hľadať"]}}},{l:"sl",t:{Search:{v:["Iskanje"]}}},{l:"sr",t:{Search:{v:["Претражи"]}}},{l:"sv",t:{Search:{v:["Sök"]}}},{l:"tr",t:{Search:{v:["Ara"]}}},{l:"uk",t:{Search:{v:["Пошук"]}}},{l:"uz",t:{Search:{v:["Qidiruv"]}}},{l:"zh-CN",t:{Search:{v:["搜索"]}}},{l:"zh-HK",t:{Search:{v:["搜尋"]}}},{l:"zh-TW",t:{Search:{v:["搜尋"]}}}],su=[{l:"ar",t:{"Select provider":{v:["اختر مزود"]}}},{l:"ast",t:{"Select provider":{v:["Seleicionar el fornidor"]}}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{"Select provider":{v:["Vybrat poskytovatele"]}}},{l:"cs-CZ",t:{"Select provider":{v:["Vybrat poskytovatele"]}}},{l:"da",t:{"Select provider":{v:["Vælg udbyder"]}}},{l:"de",t:{"Select provider":{v:["Anbieter auswählen"]}}},{l:"de-DE",t:{"Select provider":{v:["Anbieter auswählen"]}}},{l:"el",t:{"Select provider":{v:["Επιλογή παρόχου"]}}},{l:"en-GB",t:{"Select provider":{v:["Select provider"]}}},{l:"eo",t:{}},{l:"es",t:{"Select provider":{v:["Seleccione proveedor"]}}},{l:"es-AR",t:{"Select provider":{v:["Elija proveedor"]}}},{l:"es-EC",t:{"Select provider":{v:["Seleccionar proveedor"]}}},{l:"es-MX",t:{"Select provider":{v:["Seleccionar proveedor"]}}},{l:"et-EE",t:{"Select provider":{v:["Vali teenuspakkuja"]}}},{l:"eu",t:{"Select provider":{v:["Hautatu hornitzailea"]}}},{l:"fa",t:{"Select provider":{v:["ارائه دهنده را انتخاب کنید"]}}},{l:"fi",t:{"Select provider":{v:["Valitse tarjoaja"]}}},{l:"fr",t:{"Select provider":{v:["Sélectionner un fournisseur"]}}},{l:"ga",t:{"Select provider":{v:["Roghnaigh soláthraí"]}}},{l:"gl",t:{"Select provider":{v:["Seleccione o provedor"]}}},{l:"he",t:{"Select provider":{v:["בחירת ספק"]}}},{l:"hu",t:{}},{l:"id",t:{"Select provider":{v:["Pilih penyedia"]}}},{l:"is",t:{"Select provider":{v:["Veldu þjónustuveitu"]}}},{l:"it",t:{"Select provider":{v:["Selezionare il provider"]}}},{l:"ja",t:{"Select provider":{v:["プロバイダーを選択"]}}},{l:"ja-JP",t:{"Select provider":{v:["プロバイダーを選択"]}}},{l:"ko",t:{"Select provider":{v:["제공자 선택"]}}},{l:"lo",t:{"Select provider":{v:["ເລືອກຜູ້ໃຫ້ບໍລິການ"]}}},{l:"lt-LT",t:{}},{l:"lv",t:{}},{l:"mk",t:{"Select provider":{v:["Избери провајдер"]}}},{l:"my",t:{}},{l:"nb",t:{"Select provider":{v:["Velg leverandør"]}}},{l:"nl",t:{"Select provider":{v:["Selecteer provider"]}}},{l:"oc",t:{}},{l:"pl",t:{"Select provider":{v:["Wybierz dostawcę"]}}},{l:"pt-BR",t:{"Select provider":{v:["Selecione provedor"]}}},{l:"pt-PT",t:{"Select provider":{v:["Selecionar fornecedor"]}}},{l:"ro",t:{"Select provider":{v:["Selectați providerul"]}}},{l:"ru",t:{"Select provider":{v:["Выбрать поставщика"]}}},{l:"sk",t:{"Select provider":{v:["Vybrať poskytovateľa"]}}},{l:"sl",t:{}},{l:"sr",t:{"Select provider":{v:["Изаберите пружаоца"]}}},{l:"sv",t:{"Select provider":{v:["Välj leverantör"]}}},{l:"tr",t:{"Select provider":{v:["Hizmet sağlayıcı seçin"]}}},{l:"uk",t:{"Select provider":{v:["Виберіть постачальника"]}}},{l:"uz",t:{"Select provider":{v:["Provayderni tanlang"]}}},{l:"zh-CN",t:{"Select provider":{v:["选择提供者"]}}},{l:"zh-HK",t:{"Select provider":{v:["選擇提供者"]}}},{l:"zh-TW",t:{"Select provider":{v:["選取提供者"]}}}],nu=[{l:"ar",t:{Submit:{v:["إرسال"]}}},{l:"ast",t:{Submit:{v:["Unviar"]}}},{l:"br",t:{}},{l:"ca",t:{Submit:{v:["Envia"]}}},{l:"cs",t:{Submit:{v:["Odeslat"]}}},{l:"cs-CZ",t:{Submit:{v:["Odeslat"]}}},{l:"da",t:{Submit:{v:["Send"]}}},{l:"de",t:{Submit:{v:["Einreichen"]}}},{l:"de-DE",t:{Submit:{v:["Einreichen"]}}},{l:"el",t:{Submit:{v:["Υποβολή"]}}},{l:"en-GB",t:{Submit:{v:["Submit"]}}},{l:"eo",t:{}},{l:"es",t:{Submit:{v:["Enviar"]}}},{l:"es-AR",t:{Submit:{v:["Enviar"]}}},{l:"es-EC",t:{Submit:{v:["Enviar"]}}},{l:"es-MX",t:{Submit:{v:["Enviar"]}}},{l:"et-EE",t:{Submit:{v:["Saada"]}}},{l:"eu",t:{Submit:{v:["Bidali"]}}},{l:"fa",t:{Submit:{v:["ارسال"]}}},{l:"fi",t:{Submit:{v:["Lähetä"]}}},{l:"fr",t:{Submit:{v:["Valider"]}}},{l:"ga",t:{Submit:{v:["Cuir isteach"]}}},{l:"gl",t:{Submit:{v:["Enviar"]}}},{l:"he",t:{Submit:{v:["הגשה"]}}},{l:"hu",t:{Submit:{v:["Beküldés"]}}},{l:"id",t:{Submit:{v:["Kirimkan"]}}},{l:"is",t:{Submit:{v:["Senda inn"]}}},{l:"it",t:{Submit:{v:["Invia"]}}},{l:"ja",t:{Submit:{v:["提出"]}}},{l:"ja-JP",t:{Submit:{v:["提出"]}}},{l:"ko",t:{Submit:{v:["제출"]}}},{l:"lo",t:{Submit:{v:["ສົ່ງ"]}}},{l:"lt-LT",t:{Submit:{v:["Pateikti"]}}},{l:"lv",t:{}},{l:"mk",t:{Submit:{v:["Испрати"]}}},{l:"my",t:{Submit:{v:["တင်သွင်းရန်"]}}},{l:"nb",t:{Submit:{v:["Send"]}}},{l:"nl",t:{Submit:{v:["Indienen"]}}},{l:"oc",t:{}},{l:"pl",t:{Submit:{v:["Wyślij"]}}},{l:"pt-BR",t:{Submit:{v:["Enviar"]}}},{l:"pt-PT",t:{Submit:{v:["Submeter"]}}},{l:"ro",t:{Submit:{v:["Trimiteți"]}}},{l:"ru",t:{Submit:{v:["Утвердить"]}}},{l:"sk",t:{Submit:{v:["Odoslať"]}}},{l:"sl",t:{Submit:{v:["Pošlji"]}}},{l:"sr",t:{Submit:{v:["Поднеси"]}}},{l:"sv",t:{Submit:{v:["Skicka"]}}},{l:"tr",t:{Submit:{v:["Gönder"]}}},{l:"uk",t:{Submit:{v:["Надіслати"]}}},{l:"uz",t:{Submit:{v:["Yuborish"]}}},{l:"zh-CN",t:{Submit:{v:["提交"]}}},{l:"zh-HK",t:{Submit:{v:["提交"]}}},{l:"zh-TW",t:{Submit:{v:["遞交"]}}}],vu=[{l:"ar",t:{"Unable to search the group":{v:["تعذّر البحث في المجموعة"]}}},{l:"ast",t:{"Unable to search the group":{v:["Nun ye posible buscar el grupu"]}}},{l:"br",t:{"Unable to search the group":{v:["Dibosupl eo klask ar strollad"]}}},{l:"ca",t:{"Unable to search the group":{v:["No es pot cercar el grup"]}}},{l:"cs",t:{"Unable to search the group":{v:["Nedaří se hledat skupinu"]}}},{l:"cs-CZ",t:{"Unable to search the group":{v:["Nedaří se hledat skupinu"]}}},{l:"da",t:{"Unable to search the group":{v:["Kan ikke søge på denne gruppe"]}}},{l:"de",t:{"Unable to search the group":{v:["Die Gruppe kann nicht durchsucht werden"]}}},{l:"de-DE",t:{"Unable to search the group":{v:["Die Gruppe kann nicht durchsucht werden"]}}},{l:"el",t:{"Unable to search the group":{v:["Δεν είναι δυνατή η αναζήτηση της ομάδας"]}}},{l:"en-GB",t:{"Unable to search the group":{v:["Unable to search the group"]}}},{l:"eo",t:{"Unable to search the group":{v:["Ne eblas serĉi en la grupo"]}}},{l:"es",t:{"Unable to search the group":{v:["No es posible buscar en el grupo"]}}},{l:"es-AR",t:{"Unable to search the group":{v:["No se puede buscar el grupo"]}}},{l:"es-EC",t:{"Unable to search the group":{v:["No se puede buscar en el grupo"]}}},{l:"es-MX",t:{"Unable to search the group":{v:["No fue posible buscar en el grupo"]}}},{l:"et-EE",t:{"Unable to search the group":{v:["Gruppi ei ole võimalik otsida"]}}},{l:"eu",t:{"Unable to search the group":{v:["Ezin izan da taldea bilatu"]}}},{l:"fa",t:{"Unable to search the group":{v:["امکان جستجوی گروه وجود ندارد"]}}},{l:"fi",t:{"Unable to search the group":{v:["Ryhmää ei voi hakea"]}}},{l:"fr",t:{"Unable to search the group":{v:["Impossible de chercher le groupe"]}}},{l:"ga",t:{"Unable to search the group":{v:["Ní féidir an grúpa a chuardach"]}}},{l:"gl",t:{"Unable to search the group":{v:["Non foi posíbel buscar o grupo"]}}},{l:"he",t:{"Unable to search the group":{v:["לא ניתן לחפש בקבוצה"]}}},{l:"hu",t:{"Unable to search the group":{v:["A csoport nem kereshető"]}}},{l:"id",t:{"Unable to search the group":{v:["Tidak dapat mencari dalam grup"]}}},{l:"is",t:{"Unable to search the group":{v:["Get ekki leitað í hópnum"]}}},{l:"it",t:{"Unable to search the group":{v:["Impossibile cercare il gruppo"]}}},{l:"ja",t:{"Unable to search the group":{v:["グループを検索できません"]}}},{l:"ja-JP",t:{"Unable to search the group":{v:["グループを検索できません"]}}},{l:"ko",t:{"Unable to search the group":{v:["그룹을 검색할 수 없음"]}}},{l:"lo",t:{"Unable to search the group":{v:["ບໍ່ສາມາດຄົ້ນຫາກຸ່ມໄດ້"]}}},{l:"lt-LT",t:{"Unable to search the group":{v:["Nepavyko atlikti paiešką grupėje"]}}},{l:"lv",t:{}},{l:"mk",t:{"Unable to search the group":{v:["Неможе да се пронајде групата"]}}},{l:"my",t:{"Unable to search the group":{v:["အဖွဲ့အား ရှာဖွေ၍ မရနိုင်ပါ"]}}},{l:"nb",t:{"Unable to search the group":{v:["Kunne ikke søke i gruppen"]}}},{l:"nl",t:{"Unable to search the group":{v:["Kan niet zoeken in de groep"]}}},{l:"oc",t:{}},{l:"pl",t:{"Unable to search the group":{v:["Nie można przeszukać grupy"]}}},{l:"pt-BR",t:{"Unable to search the group":{v:["Não foi possível pesquisar o grupo"]}}},{l:"pt-PT",t:{"Unable to search the group":{v:["Não é possível pesquisar o grupo"]}}},{l:"ro",t:{"Unable to search the group":{v:["Imposibilitatea de a căuta în grup"]}}},{l:"ru",t:{"Unable to search the group":{v:["Невозможно найти группу"]}}},{l:"sk",t:{"Unable to search the group":{v:["Skupinu sa nepodarilo nájsť"]}}},{l:"sl",t:{"Unable to search the group":{v:["Ni mogoče iskati po skupini"]}}},{l:"sr",t:{"Unable to search the group":{v:["Група не може да се претражи"]}}},{l:"sv",t:{"Unable to search the group":{v:["Kunde inte söka i gruppen"]}}},{l:"tr",t:{"Unable to search the group":{v:["Grupta arama yapılamadı"]}}},{l:"uk",t:{"Unable to search the group":{v:["Неможливо шукати в групі"]}}},{l:"uz",t:{"Unable to search the group":{v:["Guruhni qidirish imkonsiz"]}}},{l:"zh-CN",t:{"Unable to search the group":{v:["无法搜索分组"]}}},{l:"zh-HK",t:{"Unable to search the group":{v:["無法搜尋群組"]}}},{l:"zh-TW",t:{"Unable to search the group":{v:["無法搜尋群組"]}}}],Eu=[{l:"ar",t:{"Undo changes":{v:["تراجَع عن التغييرات"]}}},{l:"ast",t:{"Undo changes":{v:["Desfacer los cambeos"]}}},{l:"br",t:{}},{l:"ca",t:{"Undo changes":{v:["Desfés els canvis"]}}},{l:"cs",t:{"Undo changes":{v:["Vzít změny zpět"]}}},{l:"cs-CZ",t:{"Undo changes":{v:["Vzít změny zpět"]}}},{l:"da",t:{"Undo changes":{v:["Fortryd ændringer"]}}},{l:"de",t:{"Undo changes":{v:["Änderungen rückgängig machen"]}}},{l:"de-DE",t:{"Undo changes":{v:["Änderungen rückgängig machen"]}}},{l:"el",t:{"Undo changes":{v:["Αναίρεση Αλλαγών"]}}},{l:"en-GB",t:{"Undo changes":{v:["Undo changes"]}}},{l:"eo",t:{}},{l:"es",t:{"Undo changes":{v:["Deshacer cambios"]}}},{l:"es-AR",t:{"Undo changes":{v:["Deshacer cambios"]}}},{l:"es-EC",t:{"Undo changes":{v:["Deshacer cambios"]}}},{l:"es-MX",t:{"Undo changes":{v:["Deshacer cambios"]}}},{l:"et-EE",t:{"Undo changes":{v:["Pööra muudatused tagasi"]}}},{l:"eu",t:{"Undo changes":{v:["Aldaketak desegin"]}}},{l:"fa",t:{"Undo changes":{v:["لغو تغییرات"]}}},{l:"fi",t:{"Undo changes":{v:["Kumoa muutokset"]}}},{l:"fr",t:{"Undo changes":{v:["Annuler les changements"]}}},{l:"ga",t:{"Undo changes":{v:["Cealaigh athruithe"]}}},{l:"gl",t:{"Undo changes":{v:["Desfacer os cambios"]}}},{l:"he",t:{"Undo changes":{v:["ביטול שינויים"]}}},{l:"hu",t:{"Undo changes":{v:["Változtatások visszavonása"]}}},{l:"id",t:{"Undo changes":{v:["Urungkan perubahan"]}}},{l:"is",t:{"Undo changes":{v:["Afturkalla breytingar"]}}},{l:"it",t:{"Undo changes":{v:["Cancella i cambiamenti"]}}},{l:"ja",t:{"Undo changes":{v:["変更を取り消し"]}}},{l:"ja-JP",t:{"Undo changes":{v:["変更を取り消し"]}}},{l:"ko",t:{"Undo changes":{v:["변경 되돌리기"]}}},{l:"lo",t:{"Undo changes":{v:["ຍ້ອນຄືນການປ່ຽນແປງ"]}}},{l:"lt-LT",t:{}},{l:"lv",t:{}},{l:"mk",t:{"Undo changes":{v:["Врати ги промените"]}}},{l:"my",t:{}},{l:"nb",t:{"Undo changes":{v:["Tilbakestill endringer"]}}},{l:"nl",t:{"Undo changes":{v:["Wijzigingen ongedaan maken"]}}},{l:"oc",t:{}},{l:"pl",t:{"Undo changes":{v:["Cofnij zmiany"]}}},{l:"pt-BR",t:{"Undo changes":{v:["Desfazer modificações"]}}},{l:"pt-PT",t:{"Undo changes":{v:["Anular alterações"]}}},{l:"ro",t:{"Undo changes":{v:["Anularea modificărilor"]}}},{l:"ru",t:{"Undo changes":{v:["Отменить изменения"]}}},{l:"sk",t:{"Undo changes":{v:["Vrátiť zmeny"]}}},{l:"sl",t:{"Undo changes":{v:["Razveljavi spremembe"]}}},{l:"sr",t:{"Undo changes":{v:["Поништи измене"]}}},{l:"sv",t:{"Undo changes":{v:["Ångra ändringar"]}}},{l:"tr",t:{"Undo changes":{v:["Değişiklikleri geri al"]}}},{l:"uk",t:{"Undo changes":{v:["Скасувати зміни"]}}},{l:"uz",t:{"Undo changes":{v:["O'zgarishlarni bekor qilish"]}}},{l:"zh-CN",t:{"Undo changes":{v:["撤销更改"]}}},{l:"zh-HK",t:{"Undo changes":{v:["取消更改"]}}},{l:"zh-TW",t:{"Undo changes":{v:["還原變更"]}}}];window._nc_vue_element_id=window._nc_vue_element_id??0;function cu(){return`nc-vue-${window._nc_vue_element_id++}`}export{J as A,U as B,au as C,K as D,T as E,G as F,X as G,Eu as H,Q as I,Z as J,Y as K,V as L,tu as M,ou as N,ru as O,q as P,eu as Q,w as R,vu as S,S as _,b as a,P as b,cu as c,y as d,n as e,g as f,j as g,c as h,f as i,W as j,nu as k,I as l,H as m,N as n,C as o,R as p,O as q,z as r,_ as s,M as t,L as u,su as v,iu as w,$ as x,lu as y,uu as z}; +//# sourceMappingURL=createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs.map diff --git a/dist/createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs.license b/dist/createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs.license similarity index 100% rename from dist/createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs.license rename to dist/createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs.license diff --git a/dist/createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs.map b/dist/createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs.map similarity index 62% rename from dist/createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs.map rename to dist/createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs.map index 1f24a058db03b..18b8dbef63025 100644 --- a/dist/createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs.map +++ b/dist/createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs","sources":["../node_modules/@nextcloud/router/dist/index.mjs","../node_modules/@nextcloud/vue/dist/chunks/_plugin-vue_export-helper-1tPrXgE0.mjs","../node_modules/@nextcloud/l10n/dist/gettext.mjs","../node_modules/@nextcloud/vue/dist/chunks/_l10n-DrTiip5c.mjs","../node_modules/@nextcloud/vue/dist/chunks/createElementId-DhjFt1I9.mjs"],"sourcesContent":["function linkTo(app, file) {\n return generateFilePath(app, \"\", file);\n}\nconst linkToRemoteBase = (service) => \"/remote.php/\" + service;\nconst generateRemoteUrl = (service, options) => {\n const baseURL = options?.baseURL ?? getBaseUrl();\n return baseURL + linkToRemoteBase(service);\n};\nconst generateOcsUrl = (url, params, options) => {\n const allOptions = Object.assign({\n ocsVersion: 2\n }, options || {});\n const version = allOptions.ocsVersion === 1 ? 1 : 2;\n const baseURL = options?.baseURL ?? getBaseUrl();\n return baseURL + \"/ocs/v\" + version + \".php\" + _generateUrlPath(url, params, options);\n};\nconst _generateUrlPath = (url, params, options) => {\n const allOptions = Object.assign({\n escape: true\n }, options || {});\n const _build = function(text, vars) {\n vars = vars || {};\n return text.replace(\n /{([^{}]*)}/g,\n function(a, b) {\n const r = vars[b];\n if (allOptions.escape) {\n return typeof r === \"string\" || typeof r === \"number\" ? encodeURIComponent(r.toString()) : encodeURIComponent(a);\n } else {\n return typeof r === \"string\" || typeof r === \"number\" ? r.toString() : a;\n }\n }\n );\n };\n if (url.charAt(0) !== \"/\") {\n url = \"/\" + url;\n }\n return _build(url, params || {});\n};\nconst generateUrl = (url, params, options) => {\n const allOptions = Object.assign({\n noRewrite: false\n }, options || {});\n const baseOrRootURL = options?.baseURL ?? getRootUrl();\n if (window?.OC?.config?.modRewriteWorking === true && !allOptions.noRewrite) {\n return baseOrRootURL + _generateUrlPath(url, params, options);\n }\n return baseOrRootURL + \"/index.php\" + _generateUrlPath(url, params, options);\n};\nconst imagePath = (app, file) => {\n if (!file.includes(\".\")) {\n return generateFilePath(app, \"img\", `${file}.svg`);\n }\n return generateFilePath(app, \"img\", file);\n};\nconst generateFilePath = (app, type, file) => {\n const isCore = window?.OC?.coreApps?.includes(app) ?? false;\n const isPHP = file.slice(-3) === \"php\";\n let link = getRootUrl();\n if (isPHP && !isCore) {\n link += `/index.php/apps/${app}`;\n if (type) {\n link += `/${encodeURI(type)}`;\n }\n if (file !== \"index.php\") {\n link += `/${file}`;\n }\n } else if (!isPHP && !isCore) {\n link = getAppRootUrl(app);\n if (type) {\n link += `/${type}/`;\n }\n if (link.at(-1) !== \"/\") {\n link += \"/\";\n }\n link += file;\n } else {\n if ((app === \"settings\" || app === \"core\" || app === \"search\") && type === \"ajax\") {\n link += \"/index.php\";\n }\n if (app) {\n link += `/${app}`;\n }\n if (type) {\n link += `/${type}`;\n }\n link += `/${file}`;\n }\n return link;\n};\nconst getBaseUrl = () => window.location.protocol + \"//\" + window.location.host + getRootUrl();\nfunction getRootUrl() {\n let webroot = window._oc_webroot;\n if (typeof webroot === \"undefined\") {\n webroot = location.pathname;\n const pos = webroot.indexOf(\"/index.php/\");\n if (pos !== -1) {\n webroot = webroot.slice(0, pos);\n } else {\n const index = webroot.indexOf(\"/\", 1);\n webroot = webroot.slice(0, index > 0 ? index : void 0);\n }\n }\n return webroot;\n}\nfunction getAppRootUrl(app) {\n const webroots = window._oc_appswebroots ?? {};\n return webroots[app] ?? \"\";\n}\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nfunction generateAvatarUrl(user, options) {\n const size = (options?.size || 64) <= 64 ? 64 : 512;\n const guestUrl = options?.isGuestUser ? \"/guest\" : \"\";\n const themeUrl = options?.isDarkTheme ? \"/dark\" : \"\";\n return generateUrl(`/avatar${guestUrl}/{user}/{size}${themeUrl}`, {\n user,\n size\n });\n}\nexport {\n generateAvatarUrl,\n generateFilePath,\n generateOcsUrl,\n generateRemoteUrl,\n generateUrl,\n getAppRootUrl,\n getBaseUrl,\n getRootUrl,\n imagePath,\n linkTo\n};\n//# sourceMappingURL=index.mjs.map\n","const _export_sfc = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\nexport {\n _export_sfc as _\n};\n//# sourceMappingURL=_plugin-vue_export-helper-1tPrXgE0.mjs.map\n","import { a as getLanguage, e as getPlural, t as translate, d as translatePlural } from \"./chunks/translation-DoG5ZELJ.mjs\";\n/*!\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nclass GettextWrapper {\n bundle;\n constructor(pluralFunction) {\n this.bundle = {\n pluralFunction,\n translations: {}\n };\n }\n /**\n * Append new translations to the wrapper.\n *\n * This is useful if translations should be added on demand,\n * e.g. depending on component usage.\n *\n * @param bundle - The new translation bundle to append\n */\n addTranslations(bundle) {\n const dict = Object.values(bundle.translations[\"\"] ?? {}).map(({ msgid, msgid_plural: msgidPlural, msgstr }) => {\n if (msgidPlural !== void 0) {\n return [`_${msgid}_::_${msgidPlural}_`, msgstr];\n }\n return [msgid, msgstr[0]];\n });\n this.bundle.translations = {\n ...this.bundle.translations,\n ...Object.fromEntries(dict)\n };\n }\n /**\n * Get translated string (singular form), optionally with placeholders\n *\n * @param original original string to translate\n * @param placeholders map of placeholder key to value\n */\n gettext(original, placeholders = {}) {\n return translate(\"\", original, placeholders, void 0, { bundle: this.bundle });\n }\n /**\n * Get translated string with plural forms\n *\n * @param singular Singular text form\n * @param plural Plural text form to be used if `count` requires it\n * @param count The number to insert into the text\n * @param placeholders optional map of placeholder key to value\n */\n ngettext(singular, plural, count, placeholders = {}) {\n return translatePlural(\"\", singular, plural, count, placeholders, { bundle: this.bundle });\n }\n}\nclass GettextBuilder {\n debug = false;\n language = \"en\";\n translations = {};\n setLanguage(language) {\n this.language = language;\n return this;\n }\n /**\n * Try to detect locale from context with `en` as fallback value\n * This only works within a Nextcloud page context.\n *\n * @deprecated use `detectLanguage` instead.\n */\n detectLocale() {\n return this.detectLanguage();\n }\n /**\n * Try to detect locale from context with `en` as fallback value.\n * This only works within a Nextcloud page context.\n */\n detectLanguage() {\n return this.setLanguage(getLanguage().replace(\"-\", \"_\"));\n }\n /**\n * Register a new translation bundle for a specified language.\n *\n * Please note that existing translations for that language will be overwritten.\n *\n * @param language - Language this is the translation for\n * @param data - The translation bundle\n */\n addTranslation(language, data) {\n this.translations[language] = data;\n return this;\n }\n enableDebugMode() {\n this.debug = true;\n return this;\n }\n build() {\n if (this.debug) {\n console.debug(`Creating gettext instance for language ${this.language}`);\n }\n const wrapper = new GettextWrapper((n) => getPlural(n, this.language));\n if (this.language in this.translations) {\n wrapper.addTranslations(this.translations[this.language]);\n }\n return wrapper;\n }\n}\nfunction getGettextBuilder() {\n return new GettextBuilder();\n}\nexport {\n getGettextBuilder\n};\n//# sourceMappingURL=gettext.mjs.map\n","import { getLanguage } from \"@nextcloud/l10n\";\nimport { getGettextBuilder } from \"@nextcloud/l10n/gettext\";\n/*!\n * SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst gettext = getGettextBuilder().detectLanguage().build();\nconst n = (...args) => gettext.ngettext(...args);\nconst t = (...args) => gettext.gettext(...args);\nfunction register(...chunks) {\n for (const chunk of chunks) {\n if (chunk.registered) {\n continue;\n }\n for (const { l: language, t: translations } of chunk) {\n if (language !== getLanguage() || !translations) {\n continue;\n }\n const decompressed = Object.fromEntries(Object.entries(translations).map(([id, value]) => [\n id,\n {\n msgid: id,\n msgid_plural: value.p,\n msgstr: value.v\n }\n ]));\n gettext.addTranslations({\n translations: {\n \"\": decompressed\n }\n });\n }\n chunk.registered = true;\n }\n}\nconst t0 = [{ \"l\": \"ar\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (مقيد)\"] }, \"Select a tag\": { \"v\": [\"اختر وسم\"] } } }, { \"l\": \"ast\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (restrinxóse)\"] }, \"Select a tag\": { \"v\": [\"Seleicionar una etiqueta\"] } } }, { \"l\": \"br\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (bevennet)\"] }, \"Select a tag\": { \"v\": [\"Choaz ur c'hlav\"] } } }, { \"l\": \"ca\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (restringit)\"] }, \"Select a tag\": { \"v\": [\"Seleccioneu una etiqueta\"] } } }, { \"l\": \"cs\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (omezené)\"] }, \"Select a tag\": { \"v\": [\"Vybrat štítek\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (omezené)\"] }, \"Select a tag\": { \"v\": [\"Vybrat štítek\"] } } }, { \"l\": \"da\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (begrænset)\"] }, \"Select a tag\": { \"v\": [\"Vælg et mærke\"] } } }, { \"l\": \"de\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (eingeschränkt)\"] }, \"Select a tag\": { \"v\": [\"Schlagwort auswählen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (eingeschränkt)\"] }, \"Select a tag\": { \"v\": [\"Schlagwort auswählen\"] } } }, { \"l\": \"el\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (περιορισμένο)\"] }, \"Select a tag\": { \"v\": [\"Επιλογή ετικέτας\"] } } }, { \"l\": \"en-GB\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (restricted)\"] }, \"Select a tag\": { \"v\": [\"Select a tag\"] } } }, { \"l\": \"eo\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (limigita)\"] }, \"Select a tag\": { \"v\": [\"Elektu etikedon\"] } } }, { \"l\": \"es\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (restringido)\"] }, \"Select a tag\": { \"v\": [\"Seleccione una etiqueta\"] } } }, { \"l\": \"es-AR\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (restringido)\"] }, \"Select a tag\": { \"v\": [\"Elija una etiqueta\"] } } }, { \"l\": \"es-EC\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (restricted)\"] }, \"Select a tag\": { \"v\": [\"Seleccionar una etiqueta\"] } } }, { \"l\": \"es-MX\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (restringido)\"] }, \"Select a tag\": { \"v\": [\"Seleccionar una etiqueta\"] } } }, { \"l\": \"et-EE\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (piiratud)\"] }, \"Select a tag\": { \"v\": [\"Vali silt\"] } } }, { \"l\": \"eu\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (mugatua)\"] }, \"Select a tag\": { \"v\": [\"Hautatu etiketa bat\"] } } }, { \"l\": \"fa\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} محدود شده\"] }, \"Select a tag\": { \"v\": [\"انتخاب یک برچسب\"] } } }, { \"l\": \"fi\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (rajoitettu)\"] }, \"Select a tag\": { \"v\": [\"Valitse tunniste\"] } } }, { \"l\": \"fr\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (restreint)\"] }, \"Select a tag\": { \"v\": [\"Sélectionnez une balise\"] } } }, { \"l\": \"ga\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (srianta)\"] }, \"Select a tag\": { \"v\": [\"Roghnaigh clib\"] } } }, { \"l\": \"gl\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (restrinxido)\"] }, \"Select a tag\": { \"v\": [\"Seleccione unha etiqueta\"] } } }, { \"l\": \"he\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (מוגבל)\"] }, \"Select a tag\": { \"v\": [\"בחירת תגית\"] } } }, { \"l\": \"hu\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (korlátozott)\"] }, \"Select a tag\": { \"v\": [\"Válasszon címkét\"] } } }, { \"l\": \"id\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (dibatasi)\"] }, \"Select a tag\": { \"v\": [\"Pilih tag\"] } } }, { \"l\": \"is\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (takmarkað)\"] }, \"Select a tag\": { \"v\": [\"Veldu merki\"] } } }, { \"l\": \"it\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (limitato)\"] }, \"Select a tag\": { \"v\": [\"Seleziona un'etichetta\"] } } }, { \"l\": \"ja\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (制限付)\"] }, \"Select a tag\": { \"v\": [\"タグを選択\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (制限付)\"] }, \"Select a tag\": { \"v\": [\"タグを選択\"] } } }, { \"l\": \"ko\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag}(제한)\"] }, \"Select a tag\": { \"v\": [\"태그 선택\"] } } }, { \"l\": \"lo\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (ຈຳກັດ)\"] }, \"Select a tag\": { \"v\": [\"ເລືອກແທັກ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (apribota)\"] }, \"Select a tag\": { \"v\": [\"Pasirinkti žymę\"] } } }, { \"l\": \"lv\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (ierobežots)\"] }, \"Select a tag\": { \"v\": [\"Izvēlēties birku\"] } } }, { \"l\": \"mk\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (ограничено)\"] }, \"Select a tag\": { \"v\": [\"Избери ознака\"] } } }, { \"l\": \"my\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (ကန့်သတ်)\"] }, \"Select a tag\": { \"v\": [\"tag ရွေးချယ်ရန်\"] } } }, { \"l\": \"nb\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (beskyttet)\"] }, \"Select a tag\": { \"v\": [\"Velg en merkelapp\"] } } }, { \"l\": \"nl\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (beperkt)\"] }, \"Select a tag\": { \"v\": [\"Selecteer een label\"] } } }, { \"l\": \"oc\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (limit)\"] }, \"Select a tag\": { \"v\": [\"Seleccionar una etiqueta\"] } } }, { \"l\": \"pl\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (ograniczona)\"] }, \"Select a tag\": { \"v\": [\"Wybierz etykietę\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (restrito)\"] }, \"Select a tag\": { \"v\": [\"Selecione uma etiqueta\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (restrito)\"] }, \"Select a tag\": { \"v\": [\"Selecionar uma etiqueta\"] } } }, { \"l\": \"ro\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (restricționat)\"] }, \"Select a tag\": { \"v\": [\"Selectați o etichetă\"] } } }, { \"l\": \"ru\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (ограниченное)\"] }, \"Select a tag\": { \"v\": [\"Выберите метку\"] } } }, { \"l\": \"sk\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (obmedzený)\"] }, \"Select a tag\": { \"v\": [\"Vybrať štítok\"] } } }, { \"l\": \"sl\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (omejeno)\"] }, \"Select a tag\": { \"v\": [\"Izbor oznake\"] } } }, { \"l\": \"sr\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (ограничено)\"] }, \"Select a tag\": { \"v\": [\"Изаберите ознаку\"] } } }, { \"l\": \"sv\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (begränsad)\"] }, \"Select a tag\": { \"v\": [\"Välj en tag\"] } } }, { \"l\": \"tr\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (kısıtlanmış)\"] }, \"Select a tag\": { \"v\": [\"Bir etiket seçin\"] } } }, { \"l\": \"uk\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (обмежений)\"] }, \"Select a tag\": { \"v\": [\"Виберіть позначку\"] } } }, { \"l\": \"uz\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (cheklangan)\"] }, \"Select a tag\": { \"v\": [\"Teg tanlang\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (受限)\"] }, \"Select a tag\": { \"v\": [\"选择一个标签\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (受限)\"] }, \"Select a tag\": { \"v\": [\"選擇標籤\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag}(受限)\"] }, \"Select a tag\": { \"v\": [\"選擇標籤\"] } } }];\nconst t2 = [{ \"l\": \"ar\", \"t\": { \"a few seconds ago\": { \"v\": [\"منذ عدة ثوانٍ\"] }, \"sec. ago\": { \"v\": [\"ثانية مضت\"] }, \"seconds ago\": { \"v\": [\"ثوانٍ مضت\"] } } }, { \"l\": \"ast\", \"t\": { \"a few seconds ago\": { \"v\": [\"hai unos segundos\"] }, \"sec. ago\": { \"v\": [\"hai segs\"] }, \"seconds ago\": { \"v\": [\"hai segundos\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"a few seconds ago\": { \"v\": [\"před několika sekundami\"] }, \"sec. ago\": { \"v\": [\"sek. před\"] }, \"seconds ago\": { \"v\": [\"sekund předtím\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"a few seconds ago\": { \"v\": [\"před několika sekundami\"] }, \"sec. ago\": { \"v\": [\"sek. před\"] }, \"seconds ago\": { \"v\": [\"sekund předtím\"] } } }, { \"l\": \"da\", \"t\": { \"a few seconds ago\": { \"v\": [\"et par sekunder siden\"] }, \"sec. ago\": { \"v\": [\"sek. siden\"] }, \"seconds ago\": { \"v\": [\"sekunder siden\"] } } }, { \"l\": \"de\", \"t\": { \"a few seconds ago\": { \"v\": [\"vor ein paar Sekunden\"] }, \"sec. ago\": { \"v\": [\"Sek. zuvor\"] }, \"seconds ago\": { \"v\": [\"Sekunden zuvor\"] } } }, { \"l\": \"de-DE\", \"t\": { \"a few seconds ago\": { \"v\": [\"vor ein paar Sekunden\"] }, \"sec. ago\": { \"v\": [\"Sek. zuvor\"] }, \"seconds ago\": { \"v\": [\"Sekunden zuvor\"] } } }, { \"l\": \"el\", \"t\": { \"a few seconds ago\": { \"v\": [\"πριν λίγα δευτερόλεπτα\"] }, \"sec. ago\": { \"v\": [\"δευτ. πριν\"] }, \"seconds ago\": { \"v\": [\"δευτερόλεπτα πριν\"] } } }, { \"l\": \"en-GB\", \"t\": { \"a few seconds ago\": { \"v\": [\"a few seconds ago\"] }, \"sec. ago\": { \"v\": [\"sec. ago\"] }, \"seconds ago\": { \"v\": [\"seconds ago\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"a few seconds ago\": { \"v\": [\"hace unos pocos segundos\"] }, \"sec. ago\": { \"v\": [\"hace segundos\"] }, \"seconds ago\": { \"v\": [\"segundos atrás\"] } } }, { \"l\": \"es-AR\", \"t\": { \"a few seconds ago\": { \"v\": [\"hace unos segundos\"] }, \"sec. ago\": { \"v\": [\"seg. atrás\"] }, \"seconds ago\": { \"v\": [\"segundos atrás\"] } } }, { \"l\": \"es-EC\", \"t\": { \"a few seconds ago\": { \"v\": [\"hace unos segundos\"] }, \"sec. ago\": { \"v\": [\"hace segundos\"] }, \"seconds ago\": { \"v\": [\"Segundos atrás\"] } } }, { \"l\": \"es-MX\", \"t\": { \"a few seconds ago\": { \"v\": [\"hace unos segundos\"] }, \"sec. ago\": { \"v\": [\"seg. atrás\"] }, \"seconds ago\": { \"v\": [\"segundos atrás\"] } } }, { \"l\": \"et-EE\", \"t\": { \"a few seconds ago\": { \"v\": [\"mõni sekund tagasi\"] }, \"sec. ago\": { \"v\": [\"sek. tagasi\"] }, \"seconds ago\": { \"v\": [\"sekundit tagasi\"] } } }, { \"l\": \"eu\", \"t\": { \"a few seconds ago\": { \"v\": [\"duela segundo batzuk\"] }, \"sec. ago\": { \"v\": [\"duela seg.\"] }, \"seconds ago\": { \"v\": [\"duela segundo\"] } } }, { \"l\": \"fa\", \"t\": { \"a few seconds ago\": { \"v\": [\"چند ثانیه پیش\"] }, \"sec. ago\": { \"v\": [\"چند ثانیه پیش\"] }, \"seconds ago\": { \"v\": [\"چند ثانیه پیش\"] } } }, { \"l\": \"fi\", \"t\": { \"a few seconds ago\": { \"v\": [\"muutamia sekunteja sitten\"] }, \"sec. ago\": { \"v\": [\"sek. sitten\"] }, \"seconds ago\": { \"v\": [\"sekunteja sitten\"] } } }, { \"l\": \"fr\", \"t\": { \"a few seconds ago\": { \"v\": [\"il y a quelques instants\"] }, \"sec. ago\": { \"v\": [\"il y a qq. sec.\"] }, \"seconds ago\": { \"v\": [\"il y a quelques secondes\"] } } }, { \"l\": \"ga\", \"t\": { \"a few seconds ago\": { \"v\": [\"cúpla soicind ó shin\"] }, \"sec. ago\": { \"v\": [\"soic. ó shin\"] }, \"seconds ago\": { \"v\": [\"soicind ó shin\"] } } }, { \"l\": \"gl\", \"t\": { \"a few seconds ago\": { \"v\": [\"hai uns segundos\"] }, \"sec. ago\": { \"v\": [\"segs. atrás\"] }, \"seconds ago\": { \"v\": [\"segundos atrás\"] } } }, { \"l\": \"he\", \"t\": { \"a few seconds ago\": { \"v\": [\"לפני מספר שניות\"] }, \"sec. ago\": { \"v\": [\"לפני מספר שניות\"] }, \"seconds ago\": { \"v\": [\"לפני מס׳ שניות\"] } } }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": { \"a few seconds ago\": { \"v\": [\"beberapa detik yang lalu\"] }, \"sec. ago\": { \"v\": [\"dtk. yang lalu\"] }, \"seconds ago\": { \"v\": [\"beberapa detik lalu\"] } } }, { \"l\": \"is\", \"t\": { \"a few seconds ago\": { \"v\": [\"fyrir örfáum sekúndum síðan\"] }, \"sec. ago\": { \"v\": [\"sek. síðan\"] }, \"seconds ago\": { \"v\": [\"sekúndum síðan\"] } } }, { \"l\": \"it\", \"t\": { \"a few seconds ago\": { \"v\": [\"pochi secondi fa\"] }, \"sec. ago\": { \"v\": [\"sec. fa\"] }, \"seconds ago\": { \"v\": [\"secondi fa\"] } } }, { \"l\": \"ja\", \"t\": { \"a few seconds ago\": { \"v\": [\"数秒前\"] }, \"sec. ago\": { \"v\": [\"秒前\"] }, \"seconds ago\": { \"v\": [\"数秒前\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"a few seconds ago\": { \"v\": [\"数秒前\"] }, \"sec. ago\": { \"v\": [\"秒前\"] }, \"seconds ago\": { \"v\": [\"数秒前\"] } } }, { \"l\": \"ko\", \"t\": { \"a few seconds ago\": { \"v\": [\"방금 전\"] }, \"sec. ago\": { \"v\": [\"몇 초 전\"] }, \"seconds ago\": { \"v\": [\"초 전\"] } } }, { \"l\": \"lo\", \"t\": { \"a few seconds ago\": { \"v\": [\"ສອງສາມວິນາທີກ່ອນ\"] }, \"sec. ago\": { \"v\": [\"ວິ. ກ່ອນ\"] }, \"seconds ago\": { \"v\": [\"ວິນາທີກ່ອນ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"a few seconds ago\": { \"v\": [\"пред неколку секунди\"] }, \"sec. ago\": { \"v\": [\"секунда\"] }, \"seconds ago\": { \"v\": [\"секунди\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"a few seconds ago\": { \"v\": [\"noen få sekunder siden\"] }, \"sec. ago\": { \"v\": [\"sek. siden\"] }, \"seconds ago\": { \"v\": [\"sekunder siden\"] } } }, { \"l\": \"nl\", \"t\": { \"a few seconds ago\": { \"v\": [\"enkele seconden geleden\"] }, \"sec. ago\": { \"v\": [\"sec. geleden\"] }, \"seconds ago\": { \"v\": [\"seconden geleden\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"a few seconds ago\": { \"v\": [\"kilka sekund temu\"] }, \"sec. ago\": { \"v\": [\"sek. temu\"] }, \"seconds ago\": { \"v\": [\"sekund temu\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"a few seconds ago\": { \"v\": [\"há alguns segundos\"] }, \"sec. ago\": { \"v\": [\"seg. atrás\"] }, \"seconds ago\": { \"v\": [\"segundos atrás\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"a few seconds ago\": { \"v\": [\"há alguns segundos\"] }, \"sec. ago\": { \"v\": [\"seg. atrás\"] }, \"seconds ago\": { \"v\": [\"segundos atrás\"] } } }, { \"l\": \"ro\", \"t\": { \"a few seconds ago\": { \"v\": [\"acum câteva secunde\"] }, \"sec. ago\": { \"v\": [\"sec. în urmă\"] }, \"seconds ago\": { \"v\": [\"secunde în urmă\"] } } }, { \"l\": \"ru\", \"t\": { \"a few seconds ago\": { \"v\": [\"несколько секунд назад\"] }, \"sec. ago\": { \"v\": [\"сек. назад\"] }, \"seconds ago\": { \"v\": [\"секунд назад\"] } } }, { \"l\": \"sk\", \"t\": { \"a few seconds ago\": { \"v\": [\"pred chvíľou\"] }, \"sec. ago\": { \"v\": [\"pred pár sekundami\"] }, \"seconds ago\": { \"v\": [\"pred sekundami\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"a few seconds ago\": { \"v\": [\"пре неколико секунди\"] }, \"sec. ago\": { \"v\": [\"сек. раније\"] }, \"seconds ago\": { \"v\": [\"секунди раније\"] } } }, { \"l\": \"sv\", \"t\": { \"a few seconds ago\": { \"v\": [\"några sekunder sedan\"] }, \"sec. ago\": { \"v\": [\"sek. sedan\"] }, \"seconds ago\": { \"v\": [\"sekunder sedan\"] } } }, { \"l\": \"tr\", \"t\": { \"a few seconds ago\": { \"v\": [\"birkaç saniye önce\"] }, \"sec. ago\": { \"v\": [\"sn. önce\"] }, \"seconds ago\": { \"v\": [\"saniye önce\"] } } }, { \"l\": \"uk\", \"t\": { \"a few seconds ago\": { \"v\": [\"декілька секунд тому\"] }, \"sec. ago\": { \"v\": [\"с тому\"] }, \"seconds ago\": { \"v\": [\"с тому\"] } } }, { \"l\": \"uz\", \"t\": { \"a few seconds ago\": { \"v\": [\"bir necha soniya oldin\"] }, \"sec. ago\": { \"v\": [\"sek. oldin\"] }, \"seconds ago\": { \"v\": [\"soniyalar oldin\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"a few seconds ago\": { \"v\": [\"几秒前\"] }, \"sec. ago\": { \"v\": [\"几秒前\"] }, \"seconds ago\": { \"v\": [\"几秒前\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"a few seconds ago\": { \"v\": [\"幾秒前\"] }, \"sec. ago\": { \"v\": [\"秒前\"] }, \"seconds ago\": { \"v\": [\"秒前\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"a few seconds ago\": { \"v\": [\"幾秒前\"] }, \"sec. ago\": { \"v\": [\"秒前\"] }, \"seconds ago\": { \"v\": [\"秒前\"] } } }];\nconst t3 = [{ \"l\": \"ar\", \"t\": { \"Acapulco\": { \"v\": [\"بازلائي مطفي\"] }, \"Blue Violet\": { \"v\": [\"بنفسجي مشعشع\"] }, \"Boston Blue\": { \"v\": [\"سماوي مطفي\"] }, \"Deluge\": { \"v\": [\"بنفسجي مطفي\"] }, \"Feldspar\": { \"v\": [\"وردي صخري\"] }, \"Gold\": { \"v\": [\"ذهبي\"] }, \"Mariner\": { \"v\": [\"أزرق بحري\"] }, \"Nextcloud blue\": { \"v\": [\"أزرق نكست كلاود\"] }, \"Olivine\": { \"v\": [\"زيتي\"] }, \"Purple\": { \"v\": [\"بنفسجي\"] }, \"Rosy brown\": { \"v\": [\"بُنِّي زهري\"] }, \"Whiskey\": { \"v\": [\"نبيذي\"] } } }, { \"l\": \"ast\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulcu\"] }, \"Blue Violet\": { \"v\": [\"Viola azulao\"] }, \"Boston Blue\": { \"v\": [\"Azul Boston\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Oru\"] }, \"Mariner\": { \"v\": [\"Marineru\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud azul\"] }, \"Olivine\": { \"v\": [\"Olivina\"] }, \"Purple\": { \"v\": [\"Moráu\"] }, \"Rosy brown\": { \"v\": [\"Marrón arrosao\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Acapulco\": { \"v\": [\"Akapulko\"] }, \"Black\": { \"v\": [\"Černá\"] }, \"Blue Violet\": { \"v\": [\"Modrofialová\"] }, \"Boston Blue\": { \"v\": [\"Bostonská modrá\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Živicová\"] }, \"Gold\": { \"v\": [\"Zlatá\"] }, \"Mariner\": { \"v\": [\"Námořnická\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud modrá\"] }, \"Olivine\": { \"v\": [\"Olivínová\"] }, \"Purple\": { \"v\": [\"Fialová\"] }, \"Rosy brown\": { \"v\": [\"Růžovohnědá\"] }, \"Whiskey\": { \"v\": [\"Whisky\"] }, \"White\": { \"v\": [\"Bílá\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Acapulco\": { \"v\": [\"Akapulko\"] }, \"Blue Violet\": { \"v\": [\"Modrofialová\"] }, \"Boston Blue\": { \"v\": [\"Bostonská modrá\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Živicová\"] }, \"Gold\": { \"v\": [\"Zlatá\"] }, \"Mariner\": { \"v\": [\"Námořnická\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud modrá\"] }, \"Olivine\": { \"v\": [\"Olivínová\"] }, \"Purple\": { \"v\": [\"Fialová\"] }, \"Rosy brown\": { \"v\": [\"Růžovohnědá\"] }, \"Whiskey\": { \"v\": [\"Whisky\"] } } }, { \"l\": \"da\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Sort\"] }, \"Blue Violet\": { \"v\": [\"Blue Violet\"] }, \"Boston Blue\": { \"v\": [\"Boston Blue\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Guld\"] }, \"Mariner\": { \"v\": [\"Mariner\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud blue\"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"Lilla\"] }, \"Rosy brown\": { \"v\": [\"Rosy brown\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"Hvid\"] } } }, { \"l\": \"de\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Schwarz\"] }, \"Blue Violet\": { \"v\": [\"Blau Violett\"] }, \"Boston Blue\": { \"v\": [\"Boston-Blau\"] }, \"Deluge\": { \"v\": [\"Sintflut\"] }, \"Feldspar\": { \"v\": [\"Feldspat\"] }, \"Gold\": { \"v\": [\"Gold\"] }, \"Mariner\": { \"v\": [\"Seemann\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud Blau\"] }, \"Olivine\": { \"v\": [\"Olivin\"] }, \"Purple\": { \"v\": [\"Lila\"] }, \"Rosy brown\": { \"v\": [\"Rosiges Braun\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"Weiß\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Schwarz\"] }, \"Blue Violet\": { \"v\": [\"Blau Violett\"] }, \"Boston Blue\": { \"v\": [\"Boston-Blau\"] }, \"Deluge\": { \"v\": [\"Sintflut\"] }, \"Feldspar\": { \"v\": [\"Feldspat\"] }, \"Gold\": { \"v\": [\"Gold\"] }, \"Mariner\": { \"v\": [\"Seemann\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud Blau\"] }, \"Olivine\": { \"v\": [\"Olivin\"] }, \"Purple\": { \"v\": [\"Lila\"] }, \"Rosy brown\": { \"v\": [\"Rosiges Braun\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"Weiß\"] } } }, { \"l\": \"el\", \"t\": { \"Acapulco\": { \"v\": [\"Ακαπούλκο\"] }, \"Black\": { \"v\": [\"Μαύρο\"] }, \"Blue Violet\": { \"v\": [\"Μπλε Βιολέτ\"] }, \"Boston Blue\": { \"v\": [\"Μπλε Βοστώνης\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Χρυσό\"] }, \"Mariner\": { \"v\": [\"Mariner\"] }, \"Nextcloud blue\": { \"v\": [\"Μπλε Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"Μωβ\"] }, \"Rosy brown\": { \"v\": [\"Ροζ καφέ\"] }, \"Whiskey\": { \"v\": [\"Ουίσκι\"] }, \"White\": { \"v\": [\"Λευκό\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Black\"] }, \"Blue Violet\": { \"v\": [\"Blue Violet\"] }, \"Boston Blue\": { \"v\": [\"Boston Blue\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Gold\"] }, \"Mariner\": { \"v\": [\"Mariner\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud blue\"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"Purple\"] }, \"Rosy brown\": { \"v\": [\"Rosy brown\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"White\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Violeta Azul\"] }, \"Boston Blue\": { \"v\": [\"Azul Boston\"] }, \"Deluge\": { \"v\": [\"Diluvio\"] }, \"Feldspar\": { \"v\": [\"Feldespato\"] }, \"Gold\": { \"v\": [\"Oro\"] }, \"Mariner\": { \"v\": [\"Marinero\"] }, \"Nextcloud blue\": { \"v\": [\"Azul Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivino\"] }, \"Purple\": { \"v\": [\"Púrpura\"] }, \"Rosy brown\": { \"v\": [\"Marrón rosáceo\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Violeta Azul\"] }, \"Boston Blue\": { \"v\": [\"Azul Boston\"] }, \"Deluge\": { \"v\": [\"Diluvio\"] }, \"Feldspar\": { \"v\": [\"Feldespato\"] }, \"Gold\": { \"v\": [\"Oro\"] }, \"Mariner\": { \"v\": [\"Marinero\"] }, \"Nextcloud blue\": { \"v\": [\"Azul Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivino\"] }, \"Purple\": { \"v\": [\"Púrpura\"] }, \"Rosy brown\": { \"v\": [\"Marrón rosáceo\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] } } }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Violeta Azul\"] }, \"Boston Blue\": { \"v\": [\"Azul Boston\"] }, \"Deluge\": { \"v\": [\"Diluvio\"] }, \"Feldspar\": { \"v\": [\"Feldespato\"] }, \"Gold\": { \"v\": [\"Oro\"] }, \"Mariner\": { \"v\": [\"Marinero\"] }, \"Nextcloud blue\": { \"v\": [\"Azul Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivino\"] }, \"Purple\": { \"v\": [\"Púrpura\"] }, \"Rosy brown\": { \"v\": [\"Marrón rosáceo\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco meresinine\"] }, \"Black\": { \"v\": [\"Must\"] }, \"Blue Violet\": { \"v\": [\"Sinakasvioletne\"] }, \"Boston Blue\": { \"v\": [\"Bostoni rohekassinine\"] }, \"Deluge\": { \"v\": [\"Tulvavee lilla\"] }, \"Feldspar\": { \"v\": [\"Põlevkivipruun\"] }, \"Gold\": { \"v\": [\"Kuldne\"] }, \"Mariner\": { \"v\": [\"Meresinine\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloudi sinine\"] }, \"Olivine\": { \"v\": [\"Oliiviroheline\"] }, \"Purple\": { \"v\": [\"Purpurpunane\"] }, \"Rosy brown\": { \"v\": [\"Roosikarva pruun\"] }, \"Whiskey\": { \"v\": [\"Viskikarva kollakaspruun\"] }, \"White\": { \"v\": [\"Valge\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"Acapulco\": { \"v\": [\"آکاپولکو\"] }, \"Blue Violet\": { \"v\": [\"بنفش آبی\"] }, \"Boston Blue\": { \"v\": [\"آبی بوستونی\"] }, \"Deluge\": { \"v\": [\"سیل\"] }, \"Feldspar\": { \"v\": [\"فلدسپات\"] }, \"Gold\": { \"v\": [\"طلا\"] }, \"Mariner\": { \"v\": [\"مارینر\"] }, \"Nextcloud blue\": { \"v\": [\"نکس کلود آبی\"] }, \"Olivine\": { \"v\": [\"الیوین\"] }, \"Purple\": { \"v\": [\"بنفش\"] }, \"Rosy brown\": { \"v\": [\"قهوه‌ای رز\"] }, \"Whiskey\": { \"v\": [\"ویسکی\"] } } }, { \"l\": \"fi\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Sinivioletti\"] }, \"Boston Blue\": { \"v\": [\"Bostoninsininen\"] }, \"Deluge\": { \"v\": [\"Tulva\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Kulta\"] }, \"Mariner\": { \"v\": [\"Merenkulkija\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloudin sininen\"] }, \"Olivine\": { \"v\": [\"Oliviini\"] }, \"Purple\": { \"v\": [\"Purppura\"] }, \"Rosy brown\": { \"v\": [\"Ruusunruskea\"] }, \"Whiskey\": { \"v\": [\"Viski\"] } } }, { \"l\": \"fr\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Bleu violet\"] }, \"Boston Blue\": { \"v\": [\"Bleu de Boston\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Doré\"] }, \"Mariner\": { \"v\": [\"Marin\"] }, \"Nextcloud blue\": { \"v\": [\"Bleu Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"Violet\"] }, \"Rosy brown\": { \"v\": [\"Brun rosé\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] } } }, { \"l\": \"ga\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Dubh\"] }, \"Blue Violet\": { \"v\": [\"Gorm Violet\"] }, \"Boston Blue\": { \"v\": [\"Bostún Gorm\"] }, \"Deluge\": { \"v\": [\"Díle\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Óir\"] }, \"Mariner\": { \"v\": [\"Mairnéalach\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud gorm\"] }, \"Olivine\": { \"v\": [\"Olaivín\"] }, \"Purple\": { \"v\": [\"Corcra\"] }, \"Rosy brown\": { \"v\": [\"Rosach donn\"] }, \"Whiskey\": { \"v\": [\"Fuisce\"] }, \"White\": { \"v\": [\"Bán\"] } } }, { \"l\": \"gl\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Negro\"] }, \"Blue Violet\": { \"v\": [\"Azul violeta\"] }, \"Boston Blue\": { \"v\": [\"Azul Boston\"] }, \"Deluge\": { \"v\": [\"Dioivo\"] }, \"Feldspar\": { \"v\": [\"Feldespato\"] }, \"Gold\": { \"v\": [\"Ouro\"] }, \"Mariner\": { \"v\": [\"Marino\"] }, \"Nextcloud blue\": { \"v\": [\"Azul Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivina\"] }, \"Purple\": { \"v\": [\"Púrpura\"] }, \"Rosy brown\": { \"v\": [\"Pardo rosado\"] }, \"Whiskey\": { \"v\": [\"Whisky\"] }, \"White\": { \"v\": [\"Branco\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": { \"Gold\": { \"v\": [\"Emas\"] }, \"Nextcloud blue\": { \"v\": [\"Biru Nextcloud\"] }, \"Purple\": { \"v\": [\"Ungu\"] } } }, { \"l\": \"is\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Bláklukka\"] }, \"Boston Blue\": { \"v\": [\"Bostonblátt\"] }, \"Deluge\": { \"v\": [\"Fjólublátt\"] }, \"Feldspar\": { \"v\": [\"Feldspat\"] }, \"Gold\": { \"v\": [\"Gull\"] }, \"Mariner\": { \"v\": [\"Sjóarablátt\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud blátt\"] }, \"Olivine\": { \"v\": [\"Ólivín\"] }, \"Purple\": { \"v\": [\"Purpurablátt\"] }, \"Rosy brown\": { \"v\": [\"Rósabrúnt\"] }, \"Whiskey\": { \"v\": [\"Viský\"] } } }, { \"l\": \"it\", \"t\": { \"Gold\": { \"v\": [\"Oro\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud blue\"] }, \"Purple\": { \"v\": [\"Viola\"] } } }, { \"l\": \"ja\", \"t\": { \"Acapulco\": { \"v\": [\"アカプルコ\"] }, \"Black\": { \"v\": [\"黒\"] }, \"Blue Violet\": { \"v\": [\"ブルーバイオレット\"] }, \"Boston Blue\": { \"v\": [\"ボストンブルー\"] }, \"Deluge\": { \"v\": [\"豪雨\"] }, \"Feldspar\": { \"v\": [\"長石\"] }, \"Gold\": { \"v\": [\"黄金\"] }, \"Mariner\": { \"v\": [\"船乗り\"] }, \"Nextcloud blue\": { \"v\": [\"ネクストクラウド・ブルー\"] }, \"Olivine\": { \"v\": [\"カンラン石\"] }, \"Purple\": { \"v\": [\"紫色\"] }, \"Rosy brown\": { \"v\": [\"バラ色\"] }, \"Whiskey\": { \"v\": [\"ウイスキー\"] }, \"White\": { \"v\": [\"白\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Acapulco\": { \"v\": [\"アカプルコ\"] }, \"Blue Violet\": { \"v\": [\"ブルーバイオレット\"] }, \"Boston Blue\": { \"v\": [\"ボストンブルー\"] }, \"Deluge\": { \"v\": [\"豪雨\"] }, \"Feldspar\": { \"v\": [\"長石\"] }, \"Gold\": { \"v\": [\"黄金\"] }, \"Mariner\": { \"v\": [\"船乗り\"] }, \"Nextcloud blue\": { \"v\": [\"ネクストクラウド・ブルー\"] }, \"Olivine\": { \"v\": [\"カンラン石\"] }, \"Purple\": { \"v\": [\"紫色\"] }, \"Rosy brown\": { \"v\": [\"バラ色\"] }, \"Whiskey\": { \"v\": [\"ウイスキー\"] } } }, { \"l\": \"ko\", \"t\": { \"Acapulco\": { \"v\": [\"아카풀코\"] }, \"Blue Violet\": { \"v\": [\"푸른 보라\"] }, \"Boston Blue\": { \"v\": [\"보스턴 블루\"] }, \"Deluge\": { \"v\": [\"폭우\"] }, \"Feldspar\": { \"v\": [\"장석\"] }, \"Gold\": { \"v\": [\"금\"] }, \"Mariner\": { \"v\": [\"뱃사람\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud 파랑\"] }, \"Olivine\": { \"v\": [\"감람석\"] }, \"Purple\": { \"v\": [\"보라\"] }, \"Rosy brown\": { \"v\": [\"로지 브라운\"] }, \"Whiskey\": { \"v\": [\"위스키\"] } } }, { \"l\": \"lo\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"ສີດຳ\"] }, \"Blue Violet\": { \"v\": [\"Blue Violet\"] }, \"Boston Blue\": { \"v\": [\"Boston Blue\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"ສີຄຳ\"] }, \"Mariner\": { \"v\": [\"Mariner\"] }, \"Nextcloud blue\": { \"v\": [\"ສີຟ້າ Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"ສີມ່ວງ\"] }, \"Rosy brown\": { \"v\": [\"Rosy brown\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"ສີຂາວ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Acapulco\": { \"v\": [\"Акапулко\"] }, \"Black\": { \"v\": [\"Црно\"] }, \"Blue Violet\": { \"v\": [\"Сино Виолетова\"] }, \"Boston Blue\": { \"v\": [\"Бостон Сина\"] }, \"Deluge\": { \"v\": [\"Делуџ\"] }, \"Feldspar\": { \"v\": [\"Фелдспар\"] }, \"Gold\": { \"v\": [\"Златна\"] }, \"Mariner\": { \"v\": [\"Маринер\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud сина\"] }, \"Olivine\": { \"v\": [\"Оливин\"] }, \"Purple\": { \"v\": [\"Виолетова\"] }, \"Rosy brown\": { \"v\": [\"Розево-кафеава\"] }, \"Whiskey\": { \"v\": [\"Виски\"] }, \"White\": { \"v\": [\"Бела\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Blå fiolett\"] }, \"Boston Blue\": { \"v\": [\"Boston blå\"] }, \"Deluge\": { \"v\": [\"Syndflod\"] }, \"Feldspar\": { \"v\": [\"Feltspat\"] }, \"Gold\": { \"v\": [\"Gull\"] }, \"Mariner\": { \"v\": [\"Mariner\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud-blå\"] }, \"Olivine\": { \"v\": [\"Olivin\"] }, \"Purple\": { \"v\": [\"Lilla\"] }, \"Rosy brown\": { \"v\": [\"Rosenrød brun\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] } } }, { \"l\": \"nl\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Zwart\"] }, \"Blue Violet\": { \"v\": [\"Blauw Paars\"] }, \"Boston Blue\": { \"v\": [\"Boston Blauw\"] }, \"Deluge\": { \"v\": [\"Overlopen\"] }, \"Feldspar\": { \"v\": [\"Veldspaat\"] }, \"Gold\": { \"v\": [\"Goud\"] }, \"Mariner\": { \"v\": [\"Marineblauw\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud blauw\"] }, \"Olivine\": { \"v\": [\"Olivijn\"] }, \"Purple\": { \"v\": [\"Paars\"] }, \"Rosy brown\": { \"v\": [\"Rozig bruin\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"Wit\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Niebieski fiolet\"] }, \"Boston Blue\": { \"v\": [\"Błękit Bostonu\"] }, \"Deluge\": { \"v\": [\"Potop\"] }, \"Feldspar\": { \"v\": [\"Skaleń\"] }, \"Gold\": { \"v\": [\"Złote\"] }, \"Mariner\": { \"v\": [\"Marynarz\"] }, \"Nextcloud blue\": { \"v\": [\"Niebieskie Nextcloud\"] }, \"Olivine\": { \"v\": [\"Oliwin\"] }, \"Purple\": { \"v\": [\"Fioletowy\"] }, \"Rosy brown\": { \"v\": [\"Różowy brąz\"] }, \"Whiskey\": { \"v\": [\"Whisky\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Preto\"] }, \"Blue Violet\": { \"v\": [\"Violeta Azul\"] }, \"Boston Blue\": { \"v\": [\"Azul Boston\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspato\"] }, \"Gold\": { \"v\": [\"Ouro\"] }, \"Mariner\": { \"v\": [\"Marinheiro\"] }, \"Nextcloud blue\": { \"v\": [\"Azul Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivina\"] }, \"Purple\": { \"v\": [\"Roxo\"] }, \"Rosy brown\": { \"v\": [\"Castanho rosado\"] }, \"Whiskey\": { \"v\": [\"Uísque\"] }, \"White\": { \"v\": [\"Branco\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Azul violeta\"] }, \"Boston Blue\": { \"v\": [\"Azul Boston\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Ouro\"] }, \"Mariner\": { \"v\": [\"Mariner\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud azul\"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"Púrpura\"] }, \"Rosy brown\": { \"v\": [\"Castanho rosado\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] } } }, { \"l\": \"ro\", \"t\": { \"Gold\": { \"v\": [\"Aur\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud albastru\"] }, \"Purple\": { \"v\": [\"Purpuriu\"] } } }, { \"l\": \"ru\", \"t\": { \"Acapulco\": { \"v\": [\"Акапулько\"] }, \"Blue Violet\": { \"v\": [\"Синий фиолет\"] }, \"Boston Blue\": { \"v\": [\"Синий Бостон\"] }, \"Deluge\": { \"v\": [\"Перламутрово-фиолетовый\"] }, \"Feldspar\": { \"v\": [\"Античная латунь\"] }, \"Gold\": { \"v\": [\"Золотой\"] }, \"Mariner\": { \"v\": [\"Морской\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud голубой\"] }, \"Olivine\": { \"v\": [\" Оливковый\"] }, \"Purple\": { \"v\": [\"Фиолетовый\"] }, \"Rosy brown\": { \"v\": [\"Розово-коричневый\"] }, \"Whiskey\": { \"v\": [\"Виски\"] } } }, { \"l\": \"sk\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Modro fialová\"] }, \"Boston Blue\": { \"v\": [\"Bostonská modrá\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Živec\"] }, \"Gold\": { \"v\": [\"Zlatá\"] }, \"Mariner\": { \"v\": [\"Námorník\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud modrá\"] }, \"Olivine\": { \"v\": [\"Olivová\"] }, \"Purple\": { \"v\": [\"Fialová\"] }, \"Rosy brown\": { \"v\": [\"Ružovo hnedá\"] }, \"Whiskey\": { \"v\": [\"Whisky\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Acapulco\": { \"v\": [\"Акапулко\"] }, \"Black\": { \"v\": [\"Црно\"] }, \"Blue Violet\": { \"v\": [\"Плаво љубичаста\"] }, \"Boston Blue\": { \"v\": [\"Бостон плава\"] }, \"Deluge\": { \"v\": [\"Поплава\"] }, \"Feldspar\": { \"v\": [\"Фелдспар\"] }, \"Gold\": { \"v\": [\"Злато\"] }, \"Mariner\": { \"v\": [\"Морнар\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud плава\"] }, \"Olivine\": { \"v\": [\"Маслинаста\"] }, \"Purple\": { \"v\": [\"Пурпурна\"] }, \"Rosy brown\": { \"v\": [\"Роси браон\"] }, \"Whiskey\": { \"v\": [\"Виски\"] }, \"White\": { \"v\": [\"Бело\"] } } }, { \"l\": \"sv\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Blåviolett\"] }, \"Boston Blue\": { \"v\": [\"Bostonblå\"] }, \"Deluge\": { \"v\": [\"Skyfallsblå\"] }, \"Feldspar\": { \"v\": [\"Feldspat\"] }, \"Gold\": { \"v\": [\"Guld\"] }, \"Mariner\": { \"v\": [\"Marinblå\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud-blå\"] }, \"Olivine\": { \"v\": [\"Olivin\"] }, \"Purple\": { \"v\": [\"Lila\"] }, \"Rosy brown\": { \"v\": [\"Rosabrun\"] }, \"Whiskey\": { \"v\": [\"Whisky\"] } } }, { \"l\": \"tr\", \"t\": { \"Acapulco\": { \"v\": [\"Akapulko\"] }, \"Black\": { \"v\": [\"Siyah\"] }, \"Blue Violet\": { \"v\": [\"Mavi mor\"] }, \"Boston Blue\": { \"v\": [\"Boston mavisi\"] }, \"Deluge\": { \"v\": [\"Sel\"] }, \"Feldspar\": { \"v\": [\"Feldispat\"] }, \"Gold\": { \"v\": [\"Altın\"] }, \"Mariner\": { \"v\": [\"Denizci\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud mavi\"] }, \"Olivine\": { \"v\": [\"Zeytinlik\"] }, \"Purple\": { \"v\": [\"Mor\"] }, \"Rosy brown\": { \"v\": [\"Kırmızımsı kahverengi\"] }, \"Whiskey\": { \"v\": [\"Viski\"] }, \"White\": { \"v\": [\"Beyaz\"] } } }, { \"l\": \"uk\", \"t\": { \"Acapulco\": { \"v\": [\"Акапулько\"] }, \"Blue Violet\": { \"v\": [\"Блакитна фіалка\"] }, \"Boston Blue\": { \"v\": [\"Бостонський синій\"] }, \"Deluge\": { \"v\": [\"Злива\"] }, \"Feldspar\": { \"v\": [\"Польові шпати\"] }, \"Gold\": { \"v\": [\"Золотий\"] }, \"Mariner\": { \"v\": [\"Морський\"] }, \"Nextcloud blue\": { \"v\": [\"Блакитний Nextcloud\"] }, \"Olivine\": { \"v\": [\"Олива\"] }, \"Purple\": { \"v\": [\"Фіолетовий\"] }, \"Rosy brown\": { \"v\": [\"Темно-рожевий\"] }, \"Whiskey\": { \"v\": [\"Кола\"] } } }, { \"l\": \"uz\", \"t\": { \"Acapulco\": { \"v\": [\"Akapulko\"] }, \"Black\": { \"v\": [\"Qora\"] }, \"Blue Violet\": { \"v\": [\"Moviy binafsha\"] }, \"Boston Blue\": { \"v\": [\"Boston ko'k\"] }, \"Deluge\": { \"v\": [\"To'fon\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Oltin\"] }, \"Mariner\": { \"v\": [\"Dengizchi\"] }, \"Nextcloud blue\": { \"v\": [\"Ko'k Nextcloud \"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"Binafsha\"] }, \"Rosy brown\": { \"v\": [\"Qizil jigarrang\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"Oq\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"瓦罗兰特蓝\"] }, \"Boston Blue\": { \"v\": [\"波士顿蓝\"] }, \"Deluge\": { \"v\": [\"洪水色\"] }, \"Feldspar\": { \"v\": [\"长石\"] }, \"Gold\": { \"v\": [\"金色\"] }, \"Mariner\": { \"v\": [\"水手\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud 蓝\"] }, \"Olivine\": { \"v\": [\"橄榄石色\"] }, \"Purple\": { \"v\": [\"紫色\"] }, \"Rosy brown\": { \"v\": [\"玫瑰棕色\"] }, \"Whiskey\": { \"v\": [\"威士忌\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Acapulco\": { \"v\": [\"阿卡普爾科\"] }, \"Black\": { \"v\": [\"黑色\"] }, \"Blue Violet\": { \"v\": [\"藍紫色\"] }, \"Boston Blue\": { \"v\": [\"波士頓藍\"] }, \"Deluge\": { \"v\": [\"大洪水\"] }, \"Feldspar\": { \"v\": [\"長石\"] }, \"Gold\": { \"v\": [\"Gold\"] }, \"Mariner\": { \"v\": [\"海軍藍\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud 藍色\"] }, \"Olivine\": { \"v\": [\"橄欖石色\"] }, \"Purple\": { \"v\": [\"紫色\"] }, \"Rosy brown\": { \"v\": [\"玫瑰棕色\"] }, \"Whiskey\": { \"v\": [\"威士忌\"] }, \"White\": { \"v\": [\"白色\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"藍紫色\"] }, \"Boston Blue\": { \"v\": [\"波士頓藍\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"長石\"] }, \"Gold\": { \"v\": [\"金色\"] }, \"Mariner\": { \"v\": [\"海軍藍\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud 藍色\"] }, \"Olivine\": { \"v\": [\"橄欖石色\"] }, \"Purple\": { \"v\": [\"紫色\"] }, \"Rosy brown\": { \"v\": [\"玫瑰棕色\"] }, \"Whiskey\": { \"v\": [\"威士忌\"] } } }];\nconst t4 = [{ \"l\": \"ar\", \"t\": { \"Actions\": { \"v\": [\"إجراءات\"] } } }, { \"l\": \"ast\", \"t\": { \"Actions\": { \"v\": [\"Aiciones\"] } } }, { \"l\": \"br\", \"t\": { \"Actions\": { \"v\": [\"Oberioù\"] } } }, { \"l\": \"ca\", \"t\": { \"Actions\": { \"v\": [\"Accions\"] } } }, { \"l\": \"cs\", \"t\": { \"Actions\": { \"v\": [\"Akce\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Actions\": { \"v\": [\"Akce\"] } } }, { \"l\": \"da\", \"t\": { \"Actions\": { \"v\": [\"Handlinger\"] } } }, { \"l\": \"de\", \"t\": { \"Actions\": { \"v\": [\"Aktionen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Actions\": { \"v\": [\"Aktionen\"] } } }, { \"l\": \"el\", \"t\": { \"Actions\": { \"v\": [\"Ενέργειες\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Actions\": { \"v\": [\"Actions\"] } } }, { \"l\": \"eo\", \"t\": { \"Actions\": { \"v\": [\"Agoj\"] } } }, { \"l\": \"es\", \"t\": { \"Actions\": { \"v\": [\"Acciones\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Actions\": { \"v\": [\"Acciones\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Actions\": { \"v\": [\"Acciones\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Actions\": { \"v\": [\"Acciones\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Actions\": { \"v\": [\"Tegevus\"] } } }, { \"l\": \"eu\", \"t\": { \"Actions\": { \"v\": [\"Ekintzak\"] } } }, { \"l\": \"fa\", \"t\": { \"Actions\": { \"v\": [\"کنش‌ها\"] } } }, { \"l\": \"fi\", \"t\": { \"Actions\": { \"v\": [\"Toiminnot\"] } } }, { \"l\": \"fr\", \"t\": { \"Actions\": { \"v\": [\"Actions\"] } } }, { \"l\": \"ga\", \"t\": { \"Actions\": { \"v\": [\"Gníomhartha\"] } } }, { \"l\": \"gl\", \"t\": { \"Actions\": { \"v\": [\"Accións\"] } } }, { \"l\": \"he\", \"t\": { \"Actions\": { \"v\": [\"פעולות\"] } } }, { \"l\": \"hu\", \"t\": { \"Actions\": { \"v\": [\"Műveletek\"] } } }, { \"l\": \"id\", \"t\": { \"Actions\": { \"v\": [\"Tindakan\"] } } }, { \"l\": \"is\", \"t\": { \"Actions\": { \"v\": [\"Aðgerðir\"] } } }, { \"l\": \"it\", \"t\": { \"Actions\": { \"v\": [\"Azioni\"] } } }, { \"l\": \"ja\", \"t\": { \"Actions\": { \"v\": [\"操作\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Actions\": { \"v\": [\"操作\"] } } }, { \"l\": \"ko\", \"t\": { \"Actions\": { \"v\": [\"동작\"] } } }, { \"l\": \"lo\", \"t\": { \"Actions\": { \"v\": [\"ການກະທຳ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Actions\": { \"v\": [\"Veiksmai\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Actions\": { \"v\": [\"Акции\"] } } }, { \"l\": \"my\", \"t\": { \"Actions\": { \"v\": [\"လုပ်ဆောင်ချက်များ\"] } } }, { \"l\": \"nb\", \"t\": { \"Actions\": { \"v\": [\"Handlinger\"] } } }, { \"l\": \"nl\", \"t\": { \"Actions\": { \"v\": [\"Acties\"] } } }, { \"l\": \"oc\", \"t\": { \"Actions\": { \"v\": [\"Accions\"] } } }, { \"l\": \"pl\", \"t\": { \"Actions\": { \"v\": [\"Działania\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Actions\": { \"v\": [\"Ações\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Actions\": { \"v\": [\"Ações\"] } } }, { \"l\": \"ro\", \"t\": { \"Actions\": { \"v\": [\"Acțiuni\"] } } }, { \"l\": \"ru\", \"t\": { \"Actions\": { \"v\": [\"Действия \"] } } }, { \"l\": \"sk\", \"t\": { \"Actions\": { \"v\": [\"Akcie\"] } } }, { \"l\": \"sl\", \"t\": { \"Actions\": { \"v\": [\"Dejanja\"] } } }, { \"l\": \"sr\", \"t\": { \"Actions\": { \"v\": [\"Радње\"] } } }, { \"l\": \"sv\", \"t\": { \"Actions\": { \"v\": [\"Åtgärder\"] } } }, { \"l\": \"tr\", \"t\": { \"Actions\": { \"v\": [\"İşlemler\"] } } }, { \"l\": \"uk\", \"t\": { \"Actions\": { \"v\": [\"Дії\"] } } }, { \"l\": \"uz\", \"t\": { \"Actions\": { \"v\": [\"Harakatlar\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Actions\": { \"v\": [\"行为\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Actions\": { \"v\": [\"動作\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Actions\": { \"v\": [\"動作\"] } } }];\nconst t5 = [{ \"l\": \"ar\", \"t\": { \"Activities\": { \"v\": [\"سجل الأنشطة\"] }, \"Animals & Nature\": { \"v\": [\"الحيوانات والطبيعة\"] }, \"Custom\": { \"v\": [\"مُخصَّص\"] }, \"Dark skin tone\": { \"v\": [\"أسمر البُشرة\"] }, \"Emoji picker\": { \"v\": [\"لاقط الإيموجي\"] }, \"Flags\": { \"v\": [\"الأعلام\"] }, \"Food & Drink\": { \"v\": [\"الطعام والشراب\"] }, \"Frequently used\": { \"v\": [\"شائعة الاستعمال\"] }, \"Light skin tone\": { \"v\": [\"فاتح البُشرة\"] }, \"Medium dark skin tone\": { \"v\": [\"بشرة متوسطة الاسمرار\"] }, \"Medium light skin tone\": { \"v\": [\"بشرة متوسطة البياض\"] }, \"Medium skin tone\": { \"v\": [\"بشرة وسطية اللون\"] }, \"Neutral skin color\": { \"v\": [\"لون بُشرة طبيعي\"] }, \"Objects\": { \"v\": [\"أشياء\"] }, \"People & Body\": { \"v\": [\"أشخاص و أجسام\"] }, \"Pick an emoji\": { \"v\": [\"إختَر رمز إيموجي emoji\"] }, \"Search emoji\": { \"v\": [\"البحث عن إيموجي emoji\"] }, \"Search results\": { \"v\": [\"نتائج البحث\"] }, \"Selected\": { \"v\": [\"محدّدة\"] }, \"Skin tone\": { \"v\": [\"لون البُشرة\"] }, \"Smileys & Emotion\": { \"v\": [\"وجوهٌ ضاحكة و مشاعر\"] }, \"Symbols\": { \"v\": [\"رموز\"] }, \"Travel & Places\": { \"v\": [\"سفر و أماكن\"] } } }, { \"l\": \"ast\", \"t\": { \"Activities\": { \"v\": [\"Actividaes\"] }, \"Animals & Nature\": { \"v\": [\"Animales y natura\"] }, \"Custom\": { \"v\": [\"Personalizar\"] }, \"Dark skin tone\": { \"v\": [\"Tonu d'aspeutu escuru\"] }, \"Emoji picker\": { \"v\": [\"Selector de fustaxes\"] }, \"Flags\": { \"v\": [\"Banderes\"] }, \"Food & Drink\": { \"v\": [\"Cómida y bébora\"] }, \"Frequently used\": { \"v\": [\"D'usu frecuente\"] }, \"Light skin tone\": { \"v\": [\"Tonu d'aspeutu claru\"] }, \"Medium dark skin tone\": { \"v\": [\"Tonu d'aspeutu medio escuru\"] }, \"Medium light skin tone\": { \"v\": [\"Tonu d'aspeutu medio claru\"] }, \"Medium skin tone\": { \"v\": [\"Tonu d'aspeutu mediu\"] }, \"Neutral skin color\": { \"v\": [\"Color d'aspeutu neutral\"] }, \"Objects\": { \"v\": [\"Oxetos\"] }, \"People & Body\": { \"v\": [\"Persones y cuerpu\"] }, \"Pick an emoji\": { \"v\": [\"Escueyi un fustaxe\"] }, \"Search emoji\": { \"v\": [\"Buscar nos fustaxes\"] }, \"Search results\": { \"v\": [\"Resultaos de la busca\"] }, \"Selected\": { \"v\": [\"Na seleición\"] }, \"Skin tone\": { \"v\": [\"Tonu d'aspeutu\"] }, \"Smileys & Emotion\": { \"v\": [\"Sorrises y emociones\"] }, \"Symbols\": { \"v\": [\"Símbolos\"] }, \"Travel & Places\": { \"v\": [\"Viaxes y llugares\"] } } }, { \"l\": \"br\", \"t\": { \"Activities\": { \"v\": [\"Oberiantizoù\"] }, \"Animals & Nature\": { \"v\": [\"Loened & Natur\"] }, \"Custom\": { \"v\": [\"Personelañ\"] }, \"Flags\": { \"v\": [\"Bannieloù\"] }, \"Food & Drink\": { \"v\": [\"Boued & Evajoù\"] }, \"Frequently used\": { \"v\": [\"Implijet alies\"] }, \"Objects\": { \"v\": [\"Traoù\"] }, \"People & Body\": { \"v\": [\"Tud & Korf\"] }, \"Pick an emoji\": { \"v\": [\"Choaz un emoji\"] }, \"Search results\": { \"v\": [\"Disoc'hoù an enklask\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileyioù & Fromoù\"] }, \"Symbols\": { \"v\": [\"Arouezioù\"] }, \"Travel & Places\": { \"v\": [\"Beaj & Lec'hioù\"] } } }, { \"l\": \"ca\", \"t\": { \"Activities\": { \"v\": [\"Activitats\"] }, \"Animals & Nature\": { \"v\": [\"Animals i natura\"] }, \"Custom\": { \"v\": [\"Personalitzat\"] }, \"Flags\": { \"v\": [\"Marques\"] }, \"Food & Drink\": { \"v\": [\"Menjar i begudes\"] }, \"Frequently used\": { \"v\": [\"Utilitzats recentment\"] }, \"Objects\": { \"v\": [\"Objectes\"] }, \"People & Body\": { \"v\": [\"Persones i cos\"] }, \"Pick an emoji\": { \"v\": [\"Trieu un emoji\"] }, \"Search results\": { \"v\": [\"Resultats de cerca\"] }, \"Smileys & Emotion\": { \"v\": [\"Cares i emocions\"] }, \"Symbols\": { \"v\": [\"Símbols\"] }, \"Travel & Places\": { \"v\": [\"Viatges i llocs\"] } } }, { \"l\": \"cs\", \"t\": { \"Activities\": { \"v\": [\"Aktivity\"] }, \"Animals & Nature\": { \"v\": [\"Zvířata a příroda\"] }, \"Custom\": { \"v\": [\"Uživatelsky určené\"] }, \"Dark skin tone\": { \"v\": [\"Tmavý tělový tón\"] }, \"Emoji picker\": { \"v\": [\"Výběr emotikon\"] }, \"Flags\": { \"v\": [\"Příznaky\"] }, \"Food & Drink\": { \"v\": [\"Jídlo a pití\"] }, \"Frequently used\": { \"v\": [\"Často používané\"] }, \"Light skin tone\": { \"v\": [\"Světlý tělový tón\"] }, \"Medium dark skin tone\": { \"v\": [\"Středně tmavý tělový tón\"] }, \"Medium light skin tone\": { \"v\": [\"Středně světlý tělový tón\"] }, \"Medium skin tone\": { \"v\": [\"Střední tělový tón\"] }, \"Neutral skin color\": { \"v\": [\"Neutrální tělová barva\"] }, \"Objects\": { \"v\": [\"Objekty\"] }, \"People & Body\": { \"v\": [\"Lidé a tělo\"] }, \"Pick an emoji\": { \"v\": [\"Vybrat emoji\"] }, \"Search emoji\": { \"v\": [\"Hledat emoji\"] }, \"Search results\": { \"v\": [\"Výsledky hledání\"] }, \"Selected\": { \"v\": [\"Vybráno\"] }, \"Skin tone\": { \"v\": [\"Tělový tón\"] }, \"Smileys & Emotion\": { \"v\": [\"Úsměvy a emoce\"] }, \"Symbols\": { \"v\": [\"Symboly\"] }, \"Travel & Places\": { \"v\": [\"Cestování a místa\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Activities\": { \"v\": [\"Aktivity\"] }, \"Animals & Nature\": { \"v\": [\"Zvířata a příroda\"] }, \"Custom\": { \"v\": [\"Uživatelsky určené\"] }, \"Dark skin tone\": { \"v\": [\"Tmavý tělový tón\"] }, \"Emoji picker\": { \"v\": [\"Výběr emotikon\"] }, \"Flags\": { \"v\": [\"Příznaky\"] }, \"Food & Drink\": { \"v\": [\"Jídlo a pití\"] }, \"Frequently used\": { \"v\": [\"Často používané\"] }, \"Light skin tone\": { \"v\": [\"Světlý tělový tón\"] }, \"Medium dark skin tone\": { \"v\": [\"Středně tmavý tělový tón\"] }, \"Medium light skin tone\": { \"v\": [\"Středně světlý tělový tón\"] }, \"Medium skin tone\": { \"v\": [\"Střední tělový tón\"] }, \"Neutral skin color\": { \"v\": [\"Neutřální tělová barva\"] }, \"Objects\": { \"v\": [\"Objekty\"] }, \"People & Body\": { \"v\": [\"Lidé a tělo\"] }, \"Pick an emoji\": { \"v\": [\"Vybrat emoji\"] }, \"Search emoji\": { \"v\": [\"Hledat emoji\"] }, \"Search results\": { \"v\": [\"Výsledky hledání\"] }, \"Selected\": { \"v\": [\"Vybráno\"] }, \"Skin tone\": { \"v\": [\"Tělový tón\"] }, \"Smileys & Emotion\": { \"v\": [\"Úsměvy a emoce\"] }, \"Symbols\": { \"v\": [\"Symboly\"] }, \"Travel & Places\": { \"v\": [\"Cestování a místa\"] } } }, { \"l\": \"da\", \"t\": { \"Activities\": { \"v\": [\"Aktiviteter\"] }, \"Animals & Nature\": { \"v\": [\"Dyr & Natur\"] }, \"Custom\": { \"v\": [\"Brugerdefineret\"] }, \"Dark skin tone\": { \"v\": [\"Mørk skin tone\"] }, \"Emoji picker\": { \"v\": [\"Emoji vælger\"] }, \"Flags\": { \"v\": [\"Flag\"] }, \"Food & Drink\": { \"v\": [\"Mad & Drikke\"] }, \"Frequently used\": { \"v\": [\"Ofte brugt\"] }, \"Light skin tone\": { \"v\": [\"Lys skin tone\"] }, \"Medium dark skin tone\": { \"v\": [\"Medium mørk skin tone\"] }, \"Medium light skin tone\": { \"v\": [\"Medium lys skin tone\"] }, \"Medium skin tone\": { \"v\": [\"Medium skin tone\"] }, \"Neutral skin color\": { \"v\": [\"Neutral skin color\"] }, \"Objects\": { \"v\": [\"Objekter\"] }, \"People & Body\": { \"v\": [\"Mennesker & Menneskekroppen\"] }, \"Pick an emoji\": { \"v\": [\"Vælg en emoji\"] }, \"Search emoji\": { \"v\": [\"Søg emoji\"] }, \"Search results\": { \"v\": [\"Søgeresultater\"] }, \"Selected\": { \"v\": [\"Valgt\"] }, \"Skin tone\": { \"v\": [\"Skin tone\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Emotion\"] }, \"Symbols\": { \"v\": [\"Symboler\"] }, \"Travel & Places\": { \"v\": [\"Rejser & Rejsemål\"] } } }, { \"l\": \"de\", \"t\": { \"Activities\": { \"v\": [\"Aktivitäten\"] }, \"Animals & Nature\": { \"v\": [\"Tiere & Natur\"] }, \"Custom\": { \"v\": [\"Benutzerdefiniert\"] }, \"Dark skin tone\": { \"v\": [\"Dunkler Hautfarbton\"] }, \"Emoji picker\": { \"v\": [\"Emoji-Auswahl\"] }, \"Flags\": { \"v\": [\"Flaggen\"] }, \"Food & Drink\": { \"v\": [\"Essen & Trinken\"] }, \"Frequently used\": { \"v\": [\"Häufig verwendet\"] }, \"Light skin tone\": { \"v\": [\"Heller Hautfarbton\"] }, \"Medium dark skin tone\": { \"v\": [\"Mitteldunkler Hautfarbton\"] }, \"Medium light skin tone\": { \"v\": [\"Mittelheller Hautfarbton\"] }, \"Medium skin tone\": { \"v\": [\"Mittlerer Hautfarbton\"] }, \"Neutral skin color\": { \"v\": [\"Neutraler Hautfarbton\"] }, \"Objects\": { \"v\": [\"Objekte\"] }, \"People & Body\": { \"v\": [\"Menschen & Körper\"] }, \"Pick an emoji\": { \"v\": [\"Ein Emoji auswählen\"] }, \"Search emoji\": { \"v\": [\"Emoji suchen\"] }, \"Search results\": { \"v\": [\"Suchergebnisse\"] }, \"Selected\": { \"v\": [\"Ausgewählt\"] }, \"Skin tone\": { \"v\": [\"Hautfarbton\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Emotionen\"] }, \"Symbols\": { \"v\": [\"Symbole\"] }, \"Travel & Places\": { \"v\": [\"Reisen & Orte\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Activities\": { \"v\": [\"Aktivitäten\"] }, \"Animals & Nature\": { \"v\": [\"Tiere & Natur\"] }, \"Custom\": { \"v\": [\"Benutzerdefiniert\"] }, \"Dark skin tone\": { \"v\": [\"Dunkler Hautfarbton\"] }, \"Emoji picker\": { \"v\": [\"Emoji-Auswahl\"] }, \"Flags\": { \"v\": [\"Flaggen\"] }, \"Food & Drink\": { \"v\": [\"Essen & Trinken\"] }, \"Frequently used\": { \"v\": [\"Häufig verwendet\"] }, \"Light skin tone\": { \"v\": [\"Heller Hautfarbton\"] }, \"Medium dark skin tone\": { \"v\": [\"Mitteldunkler Hautfarbton\"] }, \"Medium light skin tone\": { \"v\": [\"Mittelheller Hautfarbton\"] }, \"Medium skin tone\": { \"v\": [\"Mittlerer Hautfarbton\"] }, \"Neutral skin color\": { \"v\": [\"Neutraler Hautfarbton\"] }, \"Objects\": { \"v\": [\"Objekte\"] }, \"People & Body\": { \"v\": [\"Menschen & Körper\"] }, \"Pick an emoji\": { \"v\": [\"Ein Emoji auswählen\"] }, \"Search emoji\": { \"v\": [\"Emoji suchen\"] }, \"Search results\": { \"v\": [\"Suchergebnisse\"] }, \"Selected\": { \"v\": [\"Ausgewählt\"] }, \"Skin tone\": { \"v\": [\"Hautfarbton\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Emotionen\"] }, \"Symbols\": { \"v\": [\"Symbole\"] }, \"Travel & Places\": { \"v\": [\"Reisen & Orte\"] } } }, { \"l\": \"el\", \"t\": { \"Activities\": { \"v\": [\"Δραστηριότητες\"] }, \"Animals & Nature\": { \"v\": [\"Ζώα & Φύση\"] }, \"Custom\": { \"v\": [\"Προσαρμογή\"] }, \"Dark skin tone\": { \"v\": [\"Σκούρο θέμα\"] }, \"Emoji picker\": { \"v\": [\"Επιλογέας emoji\"] }, \"Flags\": { \"v\": [\"Σημαίες\"] }, \"Food & Drink\": { \"v\": [\"Φαγητό & Ποτό\"] }, \"Frequently used\": { \"v\": [\"Συχνά χρησιμοποιούμενο\"] }, \"Light skin tone\": { \"v\": [\"Ανοιχτό θέμα\"] }, \"Medium dark skin tone\": { \"v\": [\"Μέτριο σκούρο θέμα\"] }, \"Medium light skin tone\": { \"v\": [\"Μέτριο ανοιχτό θέμα\"] }, \"Medium skin tone\": { \"v\": [\"Μέτριος τόνος θέματος\"] }, \"Neutral skin color\": { \"v\": [\"Ουδέτερο χρώμα θέματος\"] }, \"Objects\": { \"v\": [\"Αντικείμενα\"] }, \"People & Body\": { \"v\": [\"Άνθρωποι & Σώμα\"] }, \"Pick an emoji\": { \"v\": [\"Επιλέξτε ένα emoji\"] }, \"Search emoji\": { \"v\": [\"Αναζήτηση emoji\"] }, \"Search results\": { \"v\": [\"Αποτελέσματα αναζήτησης\"] }, \"Selected\": { \"v\": [\"Επιλεγμένο\"] }, \"Skin tone\": { \"v\": [\"Τόνος δέρματος\"] }, \"Smileys & Emotion\": { \"v\": [\"Φατσούλες & Συναίσθημα\"] }, \"Symbols\": { \"v\": [\"Σύμβολα\"] }, \"Travel & Places\": { \"v\": [\"Ταξίδια & Τοποθεσίες\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Activities\": { \"v\": [\"Activities\"] }, \"Animals & Nature\": { \"v\": [\"Animals & Nature\"] }, \"Custom\": { \"v\": [\"Custom\"] }, \"Dark skin tone\": { \"v\": [\"Dark skin tone\"] }, \"Emoji picker\": { \"v\": [\"Emoji picker\"] }, \"Flags\": { \"v\": [\"Flags\"] }, \"Food & Drink\": { \"v\": [\"Food & Drink\"] }, \"Frequently used\": { \"v\": [\"Frequently used\"] }, \"Light skin tone\": { \"v\": [\"Light skin tone\"] }, \"Medium dark skin tone\": { \"v\": [\"Medium dark skin tone\"] }, \"Medium light skin tone\": { \"v\": [\"Medium light skin tone\"] }, \"Medium skin tone\": { \"v\": [\"Medium skin tone\"] }, \"Neutral skin color\": { \"v\": [\"Neutral skin colour\"] }, \"Objects\": { \"v\": [\"Objects\"] }, \"People & Body\": { \"v\": [\"People & Body\"] }, \"Pick an emoji\": { \"v\": [\"Pick an emoji\"] }, \"Search emoji\": { \"v\": [\"Search emoji\"] }, \"Search results\": { \"v\": [\"Search results\"] }, \"Selected\": { \"v\": [\"Selected\"] }, \"Skin tone\": { \"v\": [\"Skin tone\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Emotion\"] }, \"Symbols\": { \"v\": [\"Symbols\"] }, \"Travel & Places\": { \"v\": [\"Travel & Places\"] } } }, { \"l\": \"eo\", \"t\": { \"Activities\": { \"v\": [\"Aktiveco\"] }, \"Animals & Nature\": { \"v\": [\"Bestoj & Naturo\"] }, \"Custom\": { \"v\": [\"Propra\"] }, \"Flags\": { \"v\": [\"Flagoj\"] }, \"Food & Drink\": { \"v\": [\"Manĝaĵo & Trinkaĵo\"] }, \"Frequently used\": { \"v\": [\"Ofte uzataj\"] }, \"Objects\": { \"v\": [\"Objektoj\"] }, \"People & Body\": { \"v\": [\"Homoj & Korpo\"] }, \"Pick an emoji\": { \"v\": [\"Elekti emoĝion \"] }, \"Search results\": { \"v\": [\"Serĉrezultoj\"] }, \"Smileys & Emotion\": { \"v\": [\"Ridoj kaj Emocioj\"] }, \"Symbols\": { \"v\": [\"Signoj\"] }, \"Travel & Places\": { \"v\": [\"Vojaĵoj & Lokoj\"] } } }, { \"l\": \"es\", \"t\": { \"Activities\": { \"v\": [\"Actividades\"] }, \"Animals & Nature\": { \"v\": [\"Animales y naturaleza\"] }, \"Custom\": { \"v\": [\"Personalizado\"] }, \"Dark skin tone\": { \"v\": [\"Tono de piel obscuro\"] }, \"Emoji picker\": { \"v\": [\"Selector de emojis\"] }, \"Flags\": { \"v\": [\"Banderas\"] }, \"Food & Drink\": { \"v\": [\"Comida y bebida\"] }, \"Frequently used\": { \"v\": [\"Usado con frecuencia\"] }, \"Light skin tone\": { \"v\": [\"Tono de piel claro\"] }, \"Medium dark skin tone\": { \"v\": [\"Tono de piel medio oscuro\"] }, \"Medium light skin tone\": { \"v\": [\"Tono de piel medio claro\"] }, \"Medium skin tone\": { \"v\": [\"Tono de piel medio\"] }, \"Neutral skin color\": { \"v\": [\"Color de piel neutral\"] }, \"Objects\": { \"v\": [\"Objetos\"] }, \"People & Body\": { \"v\": [\"Personas y Cuerpo\"] }, \"Pick an emoji\": { \"v\": [\"Elegir un emoji\"] }, \"Search emoji\": { \"v\": [\"Buscar emoji\"] }, \"Search results\": { \"v\": [\"Resultados de la búsqueda\"] }, \"Selected\": { \"v\": [\"Seleccionado\"] }, \"Skin tone\": { \"v\": [\"Tono de piel\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys y emoticonos\"] }, \"Symbols\": { \"v\": [\"Símbolos\"] }, \"Travel & Places\": { \"v\": [\"Viajes y lugares\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Activities\": { \"v\": [\"Actividades\"] }, \"Animals & Nature\": { \"v\": [\"Animales y Naturaleza\"] }, \"Custom\": { \"v\": [\"Personalizado\"] }, \"Dark skin tone\": { \"v\": [\"Tono de piel oscuro\"] }, \"Emoji picker\": { \"v\": [\"Selector de emojis\"] }, \"Flags\": { \"v\": [\"Marcas\"] }, \"Food & Drink\": { \"v\": [\"Comida y Bebida\"] }, \"Frequently used\": { \"v\": [\"Usados frecuentemente\"] }, \"Light skin tone\": { \"v\": [\"Tono de piel claro\"] }, \"Medium dark skin tone\": { \"v\": [\"Tono de piel medio oscuro\"] }, \"Medium light skin tone\": { \"v\": [\"Tono de piel medio claro\"] }, \"Medium skin tone\": { \"v\": [\"Tono de piel medio\"] }, \"Neutral skin color\": { \"v\": [\"Color de piel neutral\"] }, \"Objects\": { \"v\": [\"Objetos\"] }, \"People & Body\": { \"v\": [\"Personas y Cuerpo\"] }, \"Pick an emoji\": { \"v\": [\"Elija un emoji\"] }, \"Search emoji\": { \"v\": [\"Buscar emoji\"] }, \"Search results\": { \"v\": [\"Resultados de la búsqueda\"] }, \"Selected\": { \"v\": [\"Seleccionado\"] }, \"Skin tone\": { \"v\": [\"Tono de piel\"] }, \"Smileys & Emotion\": { \"v\": [\"Caritas y Emociones\"] }, \"Symbols\": { \"v\": [\"Símbolos\"] }, \"Travel & Places\": { \"v\": [\"Viajes y Lugares\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Activities\": { \"v\": [\"Actividades\"] }, \"Animals & Nature\": { \"v\": [\"Animales y Naturaleza\"] }, \"Custom\": { \"v\": [\"Personalizado\"] }, \"Flags\": { \"v\": [\"Marcas\"] }, \"Food & Drink\": { \"v\": [\"Comida y Bebida\"] }, \"Frequently used\": { \"v\": [\"Frecuentemente utilizado\"] }, \"Objects\": { \"v\": [\"Objetos\"] }, \"People & Body\": { \"v\": [\"Personas y Cuerpo\"] }, \"Pick an emoji\": { \"v\": [\"Seleccionar un emoji\"] }, \"Search emoji\": { \"v\": [\"Buscar emoji\"] }, \"Search results\": { \"v\": [\"Resultados de búsqueda\"] }, \"Smileys & Emotion\": { \"v\": [\"Caritas y Emociones\"] }, \"Symbols\": { \"v\": [\"Símbolos\"] }, \"Travel & Places\": { \"v\": [\"Viajes y Lugares\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Activities\": { \"v\": [\"Actividades\"] }, \"Animals & Nature\": { \"v\": [\"Animales y naturaleza\"] }, \"Custom\": { \"v\": [\"Personalizado\"] }, \"Dark skin tone\": { \"v\": [\"Tono de piel oscuro\"] }, \"Emoji picker\": { \"v\": [\"Selector de emojis\"] }, \"Flags\": { \"v\": [\"Banderas\"] }, \"Food & Drink\": { \"v\": [\"Comida y Bebida\"] }, \"Frequently used\": { \"v\": [\"Usado frecuentemente\"] }, \"Light skin tone\": { \"v\": [\"Tono de piel claro\"] }, \"Medium dark skin tone\": { \"v\": [\"Tono de piel medio oscuro\"] }, \"Medium light skin tone\": { \"v\": [\"Tono de piel medio claro\"] }, \"Medium skin tone\": { \"v\": [\"Tono de piel medio\"] }, \"Neutral skin color\": { \"v\": [\"Color de piel neutral\"] }, \"Objects\": { \"v\": [\"Objetos\"] }, \"People & Body\": { \"v\": [\"Personas y cuerpos\"] }, \"Pick an emoji\": { \"v\": [\"Seleccionar un emoji\"] }, \"Search emoji\": { \"v\": [\"Buscar emoji\"] }, \"Search results\": { \"v\": [\"Resultados de la búsqueda\"] }, \"Selected\": { \"v\": [\"Seleccionado\"] }, \"Skin tone\": { \"v\": [\"Tono de piel\"] }, \"Smileys & Emotion\": { \"v\": [\"Caritas y Emociones\"] }, \"Symbols\": { \"v\": [\"Símbolos\"] }, \"Travel & Places\": { \"v\": [\"Viajes y lugares\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Activities\": { \"v\": [\"Tegevused\"] }, \"Animals & Nature\": { \"v\": [\"Loomad ja loodus\"] }, \"Custom\": { \"v\": [\"Kohanda\"] }, \"Dark skin tone\": { \"v\": [\"Kesta tume toon\"] }, \"Emoji picker\": { \"v\": [\"Emojide valija\"] }, \"Flags\": { \"v\": [\"Lipud\"] }, \"Food & Drink\": { \"v\": [\"Söök ja jook\"] }, \"Frequently used\": { \"v\": [\"Sageli kasutatud\"] }, \"Light skin tone\": { \"v\": [\"Kesta hele toon\"] }, \"Medium dark skin tone\": { \"v\": [\"Kesta keskmiselt tume toon\"] }, \"Medium light skin tone\": { \"v\": [\"Kesta keskmiselt hele toon\"] }, \"Medium skin tone\": { \"v\": [\"Kesta keskmine toon\"] }, \"Neutral skin color\": { \"v\": [\"Kesta neutraalne toon\"] }, \"Objects\": { \"v\": [\"Objektid\"] }, \"People & Body\": { \"v\": [\"Inimesed ja keha\"] }, \"Pick an emoji\": { \"v\": [\"Vali emoji\"] }, \"Search emoji\": { \"v\": [\"Otsi emojit\"] }, \"Search results\": { \"v\": [\"Otsi tulemustest\"] }, \"Selected\": { \"v\": [\"Valitud\"] }, \"Skin tone\": { \"v\": [\"Kesta toon\"] }, \"Smileys & Emotion\": { \"v\": [\"Smailid ja emotsioonid\"] }, \"Symbols\": { \"v\": [\"Sümbolid\"] }, \"Travel & Places\": { \"v\": [\"Reisimine ja kohad\"] } } }, { \"l\": \"eu\", \"t\": { \"Activities\": { \"v\": [\"Jarduerak\"] }, \"Animals & Nature\": { \"v\": [\"Animaliak eta Natura\"] }, \"Custom\": { \"v\": [\"Pertsonalizatua\"] }, \"Flags\": { \"v\": [\"Banderak\"] }, \"Food & Drink\": { \"v\": [\"Janaria eta edariak\"] }, \"Frequently used\": { \"v\": [\"Askotan erabilia\"] }, \"Objects\": { \"v\": [\"Objektuak\"] }, \"People & Body\": { \"v\": [\"Jendea eta gorputza\"] }, \"Pick an emoji\": { \"v\": [\"Hautatu emoji bat\"] }, \"Search emoji\": { \"v\": [\"Bilatu emojiak\"] }, \"Search results\": { \"v\": [\"Bilaketa emaitzak\"] }, \"Selected\": { \"v\": [\"Hautatuta\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileyak eta emozioa\"] }, \"Symbols\": { \"v\": [\"Sinboloak\"] }, \"Travel & Places\": { \"v\": [\"Bidaiak eta lekuak\"] } } }, { \"l\": \"fa\", \"t\": { \"Activities\": { \"v\": [\"فعالیت‌ها\"] }, \"Animals & Nature\": { \"v\": [\"حیوانات و طبیعت\"] }, \"Custom\": { \"v\": [\"سفارشی\"] }, \"Dark skin tone\": { \"v\": [\"رنگ پوسته تیره\"] }, \"Emoji picker\": { \"v\": [\"انتخاب‌گر شکلک\"] }, \"Flags\": { \"v\": [\"پرچم‌ها\"] }, \"Food & Drink\": { \"v\": [\"غذا و نوشیدنی\"] }, \"Frequently used\": { \"v\": [\"پرکاربرد\"] }, \"Light skin tone\": { \"v\": [\"رنگ پوسته روشن\"] }, \"Medium dark skin tone\": { \"v\": [\"رنگ پوسته تیره متوسط\"] }, \"Medium light skin tone\": { \"v\": [\"رنگ پوسته روشن متوسط\"] }, \"Medium skin tone\": { \"v\": [\"رنگ پوسته متوسط\"] }, \"Neutral skin color\": { \"v\": [\"رنگ پوسته خنثی\"] }, \"Objects\": { \"v\": [\"اشیاء\"] }, \"People & Body\": { \"v\": [\"مردم و بدن\"] }, \"Pick an emoji\": { \"v\": [\"انتخاب شکلک\"] }, \"Search emoji\": { \"v\": [\"جستجوی شکلک\"] }, \"Search results\": { \"v\": [\"نتایج جستجو\"] }, \"Selected\": { \"v\": [\"انتخاب شده\"] }, \"Skin tone\": { \"v\": [\"رنگ پوسته\"] }, \"Smileys & Emotion\": { \"v\": [\"شکلک‌ها و احساسات\"] }, \"Symbols\": { \"v\": [\"نمادها\"] }, \"Travel & Places\": { \"v\": [\"سفر و مکان‌ها\"] } } }, { \"l\": \"fi\", \"t\": { \"Activities\": { \"v\": [\"Aktiviteetit\"] }, \"Animals & Nature\": { \"v\": [\"Eläimet & luonto\"] }, \"Custom\": { \"v\": [\"Mukautettu\"] }, \"Dark skin tone\": { \"v\": [\"Tumma ihonväri\"] }, \"Emoji picker\": { \"v\": [\"Emojivalitsin\"] }, \"Flags\": { \"v\": [\"Liput\"] }, \"Food & Drink\": { \"v\": [\"Ruoka & juoma\"] }, \"Frequently used\": { \"v\": [\"Usein käytetyt\"] }, \"Light skin tone\": { \"v\": [\"Vaalea ihonväri\"] }, \"Medium dark skin tone\": { \"v\": [\"Keskitumma ihonväri\"] }, \"Medium light skin tone\": { \"v\": [\"Keskivaalea ihonväri\"] }, \"Medium skin tone\": { \"v\": [\"Keskimääräinen ihonväri\"] }, \"Neutral skin color\": { \"v\": [\"Neutraali ihonväri\"] }, \"Objects\": { \"v\": [\"Esineet & asiat\"] }, \"People & Body\": { \"v\": [\"Ihmiset & keho\"] }, \"Pick an emoji\": { \"v\": [\"Valitse emoji\"] }, \"Search emoji\": { \"v\": [\"Etsi emojia\"] }, \"Search results\": { \"v\": [\"Hakutulokset\"] }, \"Selected\": { \"v\": [\"Valittu\"] }, \"Skin tone\": { \"v\": [\"Ihonväri\"] }, \"Smileys & Emotion\": { \"v\": [\"Hymiöt & tunteet\"] }, \"Symbols\": { \"v\": [\"Symbolit\"] }, \"Travel & Places\": { \"v\": [\"Matkustus & kohteet\"] } } }, { \"l\": \"fr\", \"t\": { \"Activities\": { \"v\": [\"Activités\"] }, \"Animals & Nature\": { \"v\": [\"Animaux & Nature\"] }, \"Custom\": { \"v\": [\"Personnalisé\"] }, \"Dark skin tone\": { \"v\": [\"Teint de peau foncé\"] }, \"Emoji picker\": { \"v\": [\"Sélecteur d'émojis\"] }, \"Flags\": { \"v\": [\"Drapeaux\"] }, \"Food & Drink\": { \"v\": [\"Nourriture & Boissons\"] }, \"Frequently used\": { \"v\": [\"Utilisés fréquemment\"] }, \"Light skin tone\": { \"v\": [\"Teint de peau clair\"] }, \"Medium dark skin tone\": { \"v\": [\"Teint de peau moyennement foncé\"] }, \"Medium light skin tone\": { \"v\": [\"Teint de peau moyennement clair\"] }, \"Medium skin tone\": { \"v\": [\"Teint de peau moyen\"] }, \"Neutral skin color\": { \"v\": [\"Teint de peau neutre\"] }, \"Objects\": { \"v\": [\"Objets\"] }, \"People & Body\": { \"v\": [\"Personnes & Corps\"] }, \"Pick an emoji\": { \"v\": [\"Choisissez un émoji\"] }, \"Search emoji\": { \"v\": [\"Rechercher un emoji\"] }, \"Search results\": { \"v\": [\"Résultats de recherche\"] }, \"Selected\": { \"v\": [\"sélectionné\"] }, \"Skin tone\": { \"v\": [\"Teint de peau\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Émotions\"] }, \"Symbols\": { \"v\": [\"Symboles\"] }, \"Travel & Places\": { \"v\": [\"Voyage & Lieux\"] } } }, { \"l\": \"ga\", \"t\": { \"Activities\": { \"v\": [\"Gníomhaíochtaí\"] }, \"Animals & Nature\": { \"v\": [\"Ainmhithe & Dúlra\"] }, \"Custom\": { \"v\": [\"Saincheaptha\"] }, \"Dark skin tone\": { \"v\": [\"Ton craiceann dorcha\"] }, \"Emoji picker\": { \"v\": [\"Roghnóir Emoji\"] }, \"Flags\": { \"v\": [\"Bratacha\"] }, \"Food & Drink\": { \"v\": [\"Bia & Deoch\"] }, \"Frequently used\": { \"v\": [\"Úsáidtear go minic\"] }, \"Light skin tone\": { \"v\": [\"Ton craiceann éadrom\"] }, \"Medium dark skin tone\": { \"v\": [\"Ton craiceann meánach dorcha\"] }, \"Medium light skin tone\": { \"v\": [\"Ton craiceann meánach éadrom\"] }, \"Medium skin tone\": { \"v\": [\"Ton craiceann meánach\"] }, \"Neutral skin color\": { \"v\": [\"Dath craiceann neodrach\"] }, \"Objects\": { \"v\": [\"Réada\"] }, \"People & Body\": { \"v\": [\"Daoine & Corp\"] }, \"Pick an emoji\": { \"v\": [\"Roghnaigh emoji\"] }, \"Search emoji\": { \"v\": [\"Cuardaigh emoji\"] }, \"Search results\": { \"v\": [\"Torthaí cuardaigh\"] }, \"Selected\": { \"v\": [\"Roghnaithe\"] }, \"Skin tone\": { \"v\": [\"Ton craicinn\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Mothúchán\"] }, \"Symbols\": { \"v\": [\"Siombailí\"] }, \"Travel & Places\": { \"v\": [\"Taisteal & Áiteanna\"] } } }, { \"l\": \"gl\", \"t\": { \"Activities\": { \"v\": [\"Actividades\"] }, \"Animals & Nature\": { \"v\": [\"Animais e natureza\"] }, \"Custom\": { \"v\": [\"Personalizado\"] }, \"Dark skin tone\": { \"v\": [\"Ton de pel escuro\"] }, \"Emoji picker\": { \"v\": [\"Selector de «emojis»\"] }, \"Flags\": { \"v\": [\"Bandeiras\"] }, \"Food & Drink\": { \"v\": [\"Comida e bebida\"] }, \"Frequently used\": { \"v\": [\"Usado con frecuencia\"] }, \"Light skin tone\": { \"v\": [\"Ton de pel claro\"] }, \"Medium dark skin tone\": { \"v\": [\"Ton de pel medio escuro\"] }, \"Medium light skin tone\": { \"v\": [\"Ton de pel medio claro\"] }, \"Medium skin tone\": { \"v\": [\"Ton de pel medio\"] }, \"Neutral skin color\": { \"v\": [\"Cor de pel neutra\"] }, \"Objects\": { \"v\": [\"Obxectos\"] }, \"People & Body\": { \"v\": [\"Persoas e corpo\"] }, \"Pick an emoji\": { \"v\": [\"Escolla un «emoji»\"] }, \"Search emoji\": { \"v\": [\"Buscar «emoji»\"] }, \"Search results\": { \"v\": [\"Resultados da busca\"] }, \"Selected\": { \"v\": [\"Seleccionado\"] }, \"Skin tone\": { \"v\": [\"Ton de pel\"] }, \"Smileys & Emotion\": { \"v\": [\"Sorrisos e emocións\"] }, \"Symbols\": { \"v\": [\"Símbolos\"] }, \"Travel & Places\": { \"v\": [\"Viaxes e lugares\"] } } }, { \"l\": \"he\", \"t\": { \"Activities\": { \"v\": [\"פעילויות\"] }, \"Animals & Nature\": { \"v\": [\"חיות וטבע\"] }, \"Custom\": { \"v\": [\"בהתאמה אישית\"] }, \"Flags\": { \"v\": [\"דגלים\"] }, \"Food & Drink\": { \"v\": [\"מזון ומשקאות\"] }, \"Frequently used\": { \"v\": [\"בשימוש תדיר\"] }, \"Objects\": { \"v\": [\"חפצים\"] }, \"People & Body\": { \"v\": [\"אנשים וגוף\"] }, \"Pick an emoji\": { \"v\": [\"נא לבחור אמוג׳י\"] }, \"Search emoji\": { \"v\": [\"חיפוש אמוג׳י\"] }, \"Search results\": { \"v\": [\"תוצאות חיפוש\"] }, \"Smileys & Emotion\": { \"v\": [\"חייכנים ורגשונים\"] }, \"Symbols\": { \"v\": [\"סמלים\"] }, \"Travel & Places\": { \"v\": [\"טיולים ומקומות\"] } } }, { \"l\": \"hu\", \"t\": { \"Activities\": { \"v\": [\"Tevékenységek\"] }, \"Animals & Nature\": { \"v\": [\"Állatok és természet\"] }, \"Custom\": { \"v\": [\"Egyéni\"] }, \"Flags\": { \"v\": [\"Zászlók\"] }, \"Food & Drink\": { \"v\": [\"Étel és ital\"] }, \"Frequently used\": { \"v\": [\"Gyakran használt\"] }, \"Objects\": { \"v\": [\"Tárgyak\"] }, \"People & Body\": { \"v\": [\"Emberek és test\"] }, \"Pick an emoji\": { \"v\": [\"Válasszon egy emodzsit\"] }, \"Search results\": { \"v\": [\"Találatok\"] }, \"Smileys & Emotion\": { \"v\": [\"Mosolyok és érzelmek\"] }, \"Symbols\": { \"v\": [\"Szimbólumok\"] }, \"Travel & Places\": { \"v\": [\"Utazás és helyek\"] } } }, { \"l\": \"id\", \"t\": { \"Activities\": { \"v\": [\"Aktivitas\"] }, \"Animals & Nature\": { \"v\": [\"Satwa dan Alam\"] }, \"Custom\": { \"v\": [\"Khusus\"] }, \"Flags\": { \"v\": [\"Tanda\"] }, \"Food & Drink\": { \"v\": [\"Makanan dan Minuman\"] }, \"Frequently used\": { \"v\": [\"Sering digunakan\"] }, \"Objects\": { \"v\": [\"Objek\"] }, \"People & Body\": { \"v\": [\"Orang & Badan\"] }, \"Pick an emoji\": { \"v\": [\"Pilih emoji\"] }, \"Search emoji\": { \"v\": [\"Cari emoji\"] }, \"Search results\": { \"v\": [\"Hasil pencarian\"] }, \"Selected\": { \"v\": [\"Dipilih\"] }, \"Smileys & Emotion\": { \"v\": [\"Senyuman & Perasaan\"] }, \"Symbols\": { \"v\": [\"Simbol\"] }, \"Travel & Places\": { \"v\": [\"Perjalanan & Tempat\"] } } }, { \"l\": \"is\", \"t\": { \"Activities\": { \"v\": [\"Aðgerðir\"] }, \"Animals & Nature\": { \"v\": [\"Dýr og náttúra\"] }, \"Custom\": { \"v\": [\"Sérsniðið\"] }, \"Dark skin tone\": { \"v\": [\"Dökkur húðlitur\"] }, \"Emoji picker\": { \"v\": [\"Emoji-táknmyndaval\"] }, \"Flags\": { \"v\": [\"Flögg\"] }, \"Food & Drink\": { \"v\": [\"Matur og drykkur\"] }, \"Frequently used\": { \"v\": [\"Oftast notað\"] }, \"Light skin tone\": { \"v\": [\"Ljós húðlitur\"] }, \"Medium dark skin tone\": { \"v\": [\"Meðaldökkur húðlitur\"] }, \"Medium light skin tone\": { \"v\": [\"Meðalljós húðlitur\"] }, \"Medium skin tone\": { \"v\": [\"Meðaltónn húðar\"] }, \"Neutral skin color\": { \"v\": [\"Hlutlaus húðlitur\"] }, \"Objects\": { \"v\": [\"Hlutir\"] }, \"People & Body\": { \"v\": [\"Fólk og líkami\"] }, \"Pick an emoji\": { \"v\": [\"Veldu tjáningartákn\"] }, \"Search emoji\": { \"v\": [\"Leita að tjáningartákni\"] }, \"Search results\": { \"v\": [\"Leitarniðurstöður\"] }, \"Selected\": { \"v\": [\"Valið\"] }, \"Skin tone\": { \"v\": [\"Húðlitur\"] }, \"Smileys & Emotion\": { \"v\": [\"Broskallar og tilfinningar\"] }, \"Symbols\": { \"v\": [\"Tákn\"] }, \"Travel & Places\": { \"v\": [\"Staðir og ferðalög\"] } } }, { \"l\": \"it\", \"t\": { \"Activities\": { \"v\": [\"Attività\"] }, \"Animals & Nature\": { \"v\": [\"Animali e natura\"] }, \"Custom\": { \"v\": [\"Personalizzato\"] }, \"Flags\": { \"v\": [\"Bandiere\"] }, \"Food & Drink\": { \"v\": [\"Cibo e bevande\"] }, \"Frequently used\": { \"v\": [\"Usati di frequente\"] }, \"Objects\": { \"v\": [\"Oggetti\"] }, \"People & Body\": { \"v\": [\"Persone e corpo\"] }, \"Pick an emoji\": { \"v\": [\"Scegli un emoji\"] }, \"Search emoji\": { \"v\": [\"Ricerca emoji\"] }, \"Search results\": { \"v\": [\"Risultati di ricerca\"] }, \"Selected\": { \"v\": [\"Selezionato\"] }, \"Smileys & Emotion\": { \"v\": [\"Faccine ed emozioni\"] }, \"Symbols\": { \"v\": [\"Simboli\"] }, \"Travel & Places\": { \"v\": [\"Viaggi e luoghi\"] } } }, { \"l\": \"ja\", \"t\": { \"Activities\": { \"v\": [\"アクティビティ\"] }, \"Animals & Nature\": { \"v\": [\"動物と自然\"] }, \"Custom\": { \"v\": [\"カスタム\"] }, \"Dark skin tone\": { \"v\": [\"暗い肌のトーン\"] }, \"Emoji picker\": { \"v\": [\"絵文字ピッカー\"] }, \"Flags\": { \"v\": [\"国旗\"] }, \"Food & Drink\": { \"v\": [\"食べ物と飲み物\"] }, \"Frequently used\": { \"v\": [\"よく使うもの\"] }, \"Light skin tone\": { \"v\": [\"明るい肌のトーン\"] }, \"Medium dark skin tone\": { \"v\": [\"やや暗い肌のトーン\"] }, \"Medium light skin tone\": { \"v\": [\"やや明るい肌のトーン\"] }, \"Medium skin tone\": { \"v\": [\"中間の肌のトーン\"] }, \"Neutral skin color\": { \"v\": [\"ニュートラルな肌の色\"] }, \"Objects\": { \"v\": [\"物\"] }, \"People & Body\": { \"v\": [\"様々な人と体の部位\"] }, \"Pick an emoji\": { \"v\": [\"絵文字を選択\"] }, \"Search emoji\": { \"v\": [\"絵文字を検索\"] }, \"Search results\": { \"v\": [\"検索結果\"] }, \"Selected\": { \"v\": [\"選択済み\"] }, \"Skin tone\": { \"v\": [\"肌のトーン\"] }, \"Smileys & Emotion\": { \"v\": [\"感情表現\"] }, \"Symbols\": { \"v\": [\"記号\"] }, \"Travel & Places\": { \"v\": [\"旅行と場所\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Activities\": { \"v\": [\"アクティビティ\"] }, \"Animals & Nature\": { \"v\": [\"動物と自然\"] }, \"Custom\": { \"v\": [\"カスタム\"] }, \"Dark skin tone\": { \"v\": [\"暗い肌のトーン\"] }, \"Emoji picker\": { \"v\": [\"絵文字ピッカー\"] }, \"Flags\": { \"v\": [\"国旗\"] }, \"Food & Drink\": { \"v\": [\"食べ物と飲み物\"] }, \"Frequently used\": { \"v\": [\"よく使うもの\"] }, \"Light skin tone\": { \"v\": [\"明るい肌のトーン\"] }, \"Medium dark skin tone\": { \"v\": [\"やや暗い肌のトーン\"] }, \"Medium light skin tone\": { \"v\": [\"やや明るい肌のトーン\"] }, \"Medium skin tone\": { \"v\": [\"中間の肌のトーン\"] }, \"Neutral skin color\": { \"v\": [\"ニュートラルな肌の色\"] }, \"Objects\": { \"v\": [\"物\"] }, \"People & Body\": { \"v\": [\"様々な人と体の部位\"] }, \"Pick an emoji\": { \"v\": [\"絵文字を選択\"] }, \"Search emoji\": { \"v\": [\"絵文字を検索\"] }, \"Search results\": { \"v\": [\"検索結果\"] }, \"Selected\": { \"v\": [\"選択済み\"] }, \"Skin tone\": { \"v\": [\"肌のトーン\"] }, \"Smileys & Emotion\": { \"v\": [\"感情表現\"] }, \"Symbols\": { \"v\": [\"記号\"] }, \"Travel & Places\": { \"v\": [\"旅行と場所\"] } } }, { \"l\": \"ko\", \"t\": { \"Activities\": { \"v\": [\"활동\"] }, \"Animals & Nature\": { \"v\": [\"동물 & 자연\"] }, \"Custom\": { \"v\": [\"맞춤 설정\"] }, \"Dark skin tone\": { \"v\": [\"어두운 피부 톤\"] }, \"Emoji picker\": { \"v\": [\"이모지 선택기\"] }, \"Flags\": { \"v\": [\"깃발\"] }, \"Food & Drink\": { \"v\": [\"음식 & 음료\"] }, \"Frequently used\": { \"v\": [\"자주 쓰임\"] }, \"Light skin tone\": { \"v\": [\"밝은 피부 톤\"] }, \"Medium dark skin tone\": { \"v\": [\"약간 어두운 피부 톤\"] }, \"Medium light skin tone\": { \"v\": [\"약간 밝은 피부 톤\"] }, \"Medium skin tone\": { \"v\": [\"중간 피부 톤\"] }, \"Neutral skin color\": { \"v\": [\"중성적 피부 톤\"] }, \"Objects\": { \"v\": [\"물체\"] }, \"People & Body\": { \"v\": [\"사람 & 신체\"] }, \"Pick an emoji\": { \"v\": [\"이모지 선택\"] }, \"Search emoji\": { \"v\": [\"이모지 검색\"] }, \"Search results\": { \"v\": [\"검색 결과\"] }, \"Selected\": { \"v\": [\"선택됨\"] }, \"Skin tone\": { \"v\": [\"피부 톤\"] }, \"Smileys & Emotion\": { \"v\": [\"스마일리 & 이모티콘\"] }, \"Symbols\": { \"v\": [\"기호\"] }, \"Travel & Places\": { \"v\": [\"여행 & 장소\"] } } }, { \"l\": \"lo\", \"t\": { \"Activities\": { \"v\": [\"ກິດຈະກຳ\"] }, \"Animals & Nature\": { \"v\": [\"ສັດ ແລະ ທຳມະຊາດ\"] }, \"Custom\": { \"v\": [\"ກຳນົດເອງ\"] }, \"Dark skin tone\": { \"v\": [\"ໂຕນສີຜິວເຂັ້ມ\"] }, \"Emoji picker\": { \"v\": [\"ໂຕເລືອກອີໂມຈິ\"] }, \"Flags\": { \"v\": [\"ທຸງ\"] }, \"Food & Drink\": { \"v\": [\"ອາຫານ ແລະ ເຄື່ອງດື່ມ\"] }, \"Frequently used\": { \"v\": [\"ໃຊ້ງານເລື້ອຍໆ\"] }, \"Light skin tone\": { \"v\": [\"ໂຕນສີຜິວອ່ອນ\"] }, \"Medium dark skin tone\": { \"v\": [\"ໂຕນສີຜິວເຂັ້ມປານກາງ\"] }, \"Medium light skin tone\": { \"v\": [\"ໂຕນສີຜິວອ່ອນປານກາງ\"] }, \"Medium skin tone\": { \"v\": [\"ໂຕນສີຜິວປານກາງ\"] }, \"Neutral skin color\": { \"v\": [\"ສີຜິວເປັນກາງ\"] }, \"Objects\": { \"v\": [\"ວັດຖຸ\"] }, \"People & Body\": { \"v\": [\"ຄົນ ແລະ ຮ່າງກາຍ\"] }, \"Pick an emoji\": { \"v\": [\"ເລືອກອີໂມຈິ\"] }, \"Search emoji\": { \"v\": [\"ຄົ້ນຫາອີໂມຈິ\"] }, \"Search results\": { \"v\": [\"ຜົນການຄົ້ນຫາ\"] }, \"Selected\": { \"v\": [\"ເລືອກແລ້ວ\"] }, \"Skin tone\": { \"v\": [\"ໂຕນສີຜິວ\"] }, \"Smileys & Emotion\": { \"v\": [\"ໜ້າຍິ້ມ ແລະ ອາລົມ\"] }, \"Symbols\": { \"v\": [\"ສັນຍາລັກ\"] }, \"Travel & Places\": { \"v\": [\"ການເດີນທາງ ແລະ ສະຖານທີ່\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Activities\": { \"v\": [\"Veiklos\"] }, \"Animals & Nature\": { \"v\": [\"Gyvūnai ir gamta\"] }, \"Custom\": { \"v\": [\"Tinkinti\"] }, \"Flags\": { \"v\": [\"Vėliavos\"] }, \"Food & Drink\": { \"v\": [\"Maistas ir gėrimai\"] }, \"Frequently used\": { \"v\": [\"Dažniausiai naudoti\"] }, \"Objects\": { \"v\": [\"Objektai\"] }, \"People & Body\": { \"v\": [\"Žmonės ir kūnas\"] }, \"Pick an emoji\": { \"v\": [\"Pasirinkti jaustuką\"] }, \"Search results\": { \"v\": [\"Paieškos rezultatai\"] }, \"Smileys & Emotion\": { \"v\": [\"Šypsenos ir emocijos\"] }, \"Symbols\": { \"v\": [\"Simboliai\"] }, \"Travel & Places\": { \"v\": [\"Kelionės ir vietos\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Activities\": { \"v\": [\"Активности\"] }, \"Animals & Nature\": { \"v\": [\"Животни & Природа\"] }, \"Custom\": { \"v\": [\"Прилагодени\"] }, \"Dark skin tone\": { \"v\": [\"Темна боја на кожа\"] }, \"Emoji picker\": { \"v\": [\"Избор на emoji\"] }, \"Flags\": { \"v\": [\"Знамиња\"] }, \"Food & Drink\": { \"v\": [\"Храна & Пијалоци\"] }, \"Frequently used\": { \"v\": [\"Најчесто користени\"] }, \"Light skin tone\": { \"v\": [\"Светла кожа\"] }, \"Medium dark skin tone\": { \"v\": [\"Средно темна кожа\"] }, \"Medium light skin tone\": { \"v\": [\"Средно светла кожа\"] }, \"Medium skin tone\": { \"v\": [\"Средна кожа\"] }, \"Neutral skin color\": { \"v\": [\"Неутрална боја на кожа\"] }, \"Objects\": { \"v\": [\"Објекти\"] }, \"People & Body\": { \"v\": [\"Луѓе & Тело\"] }, \"Pick an emoji\": { \"v\": [\"Избери емотикон\"] }, \"Search emoji\": { \"v\": [\"Барај emoji\"] }, \"Search results\": { \"v\": [\"Резултати од барувањето\"] }, \"Selected\": { \"v\": [\"Избрано\"] }, \"Skin tone\": { \"v\": [\"Боја на кожа\"] }, \"Smileys & Emotion\": { \"v\": [\"Смешковци & Емотикони\"] }, \"Symbols\": { \"v\": [\"Симболи\"] }, \"Travel & Places\": { \"v\": [\"Патувања & Места\"] } } }, { \"l\": \"my\", \"t\": { \"Activities\": { \"v\": [\"ပြုလုပ်ဆောင်တာများ\"] }, \"Animals & Nature\": { \"v\": [\"တိရစ္ဆာန်များနှင့် သဘာဝ\"] }, \"Custom\": { \"v\": [\"အလိုကျချိန်ညှိမှု\"] }, \"Flags\": { \"v\": [\"အလံများ\"] }, \"Food & Drink\": { \"v\": [\"အစားအသောက်\"] }, \"Frequently used\": { \"v\": [\"မကြာခဏအသုံးပြုသော\"] }, \"Objects\": { \"v\": [\"အရာဝတ္ထုများ\"] }, \"People & Body\": { \"v\": [\"လူပုဂ္ဂိုလ်များနှင့် ခန္ဓာကိုယ်\"] }, \"Pick an emoji\": { \"v\": [\"အီမိုဂျီရွေးရန်\"] }, \"Search results\": { \"v\": [\"ရှာဖွေမှု ရလဒ်များ\"] }, \"Smileys & Emotion\": { \"v\": [\"စမိုင်လီများနှင့် အီမိုရှင်း\"] }, \"Symbols\": { \"v\": [\"သင်္ကေတများ\"] }, \"Travel & Places\": { \"v\": [\"ခရီးသွားလာခြင်းနှင့် နေရာများ\"] } } }, { \"l\": \"nb\", \"t\": { \"Activities\": { \"v\": [\"Aktiviteter\"] }, \"Animals & Nature\": { \"v\": [\"Dyr og natur\"] }, \"Custom\": { \"v\": [\"Tilpasset\"] }, \"Dark skin tone\": { \"v\": [\"Mørk hudtone\"] }, \"Emoji picker\": { \"v\": [\"Emoji-velger\"] }, \"Flags\": { \"v\": [\"Flagg\"] }, \"Food & Drink\": { \"v\": [\"Mat og drikke\"] }, \"Frequently used\": { \"v\": [\"Ofte brukt\"] }, \"Light skin tone\": { \"v\": [\"Lys hudtone\"] }, \"Medium dark skin tone\": { \"v\": [\"Middels mørk hudtone\"] }, \"Medium light skin tone\": { \"v\": [\"Middels lys hudtone\"] }, \"Medium skin tone\": { \"v\": [\"Middels hudtone\"] }, \"Neutral skin color\": { \"v\": [\"Nøytral hudfarge\"] }, \"Objects\": { \"v\": [\"Objekter\"] }, \"People & Body\": { \"v\": [\"Mennesker og kropp\"] }, \"Pick an emoji\": { \"v\": [\"Velg en emoji\"] }, \"Search emoji\": { \"v\": [\"Søk emoji\"] }, \"Search results\": { \"v\": [\"Søkeresultater\"] }, \"Selected\": { \"v\": [\"Valgt\"] }, \"Skin tone\": { \"v\": [\"Hudtone\"] }, \"Smileys & Emotion\": { \"v\": [\"Smilefjes og følelser\"] }, \"Symbols\": { \"v\": [\"Symboler\"] }, \"Travel & Places\": { \"v\": [\"Reise og steder\"] } } }, { \"l\": \"nl\", \"t\": { \"Activities\": { \"v\": [\"Activiteiten\"] }, \"Animals & Nature\": { \"v\": [\"Dieren & Natuur\"] }, \"Custom\": { \"v\": [\"Aangepast\"] }, \"Dark skin tone\": { \"v\": [\"Donkere huidskleur\"] }, \"Emoji picker\": { \"v\": [\"Emoji-kiezer\"] }, \"Flags\": { \"v\": [\"Vlaggen\"] }, \"Food & Drink\": { \"v\": [\"Eten & Drinken\"] }, \"Frequently used\": { \"v\": [\"Vaak gebruikt\"] }, \"Light skin tone\": { \"v\": [\"Lichte huidskleur\"] }, \"Medium dark skin tone\": { \"v\": [\"Gemiddeld donkere huidskleur\"] }, \"Medium light skin tone\": { \"v\": [\"Gemiddeld lichte huidskleur\"] }, \"Medium skin tone\": { \"v\": [\"Gemiddelde huidskleur\"] }, \"Neutral skin color\": { \"v\": [\"Neutrale huidskleur\"] }, \"Objects\": { \"v\": [\"Objecten\"] }, \"People & Body\": { \"v\": [\"Mensen & Lichaam\"] }, \"Pick an emoji\": { \"v\": [\"Kies een emoji\"] }, \"Search emoji\": { \"v\": [\"Emoji zoeken\"] }, \"Search results\": { \"v\": [\"Zoekresultaten\"] }, \"Selected\": { \"v\": [\"Geselecteerd\"] }, \"Skin tone\": { \"v\": [\"Huidskleur\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Emotie\"] }, \"Symbols\": { \"v\": [\"Symbolen\"] }, \"Travel & Places\": { \"v\": [\"Reizen & Plaatsen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Activities\": { \"v\": [\"Aktywność\"] }, \"Animals & Nature\": { \"v\": [\"Zwierzęta i natura\"] }, \"Custom\": { \"v\": [\"Zwyczajne\"] }, \"Dark skin tone\": { \"v\": [\"Ciemna tonacja\"] }, \"Emoji picker\": { \"v\": [\"Wybierz Emoji\"] }, \"Flags\": { \"v\": [\"Flagi\"] }, \"Food & Drink\": { \"v\": [\"Jedzenie i picie\"] }, \"Frequently used\": { \"v\": [\"Często używane\"] }, \"Light skin tone\": { \"v\": [\"Jasny odcień skóry\"] }, \"Medium dark skin tone\": { \"v\": [\"Średnio ciemny odcień skóry\"] }, \"Medium light skin tone\": { \"v\": [\"Średnio jasny odcień skóry\"] }, \"Medium skin tone\": { \"v\": [\"Średni odcień skóry\"] }, \"Neutral skin color\": { \"v\": [\"Neutralny kolor skróry\"] }, \"Objects\": { \"v\": [\"Obiekty\"] }, \"People & Body\": { \"v\": [\"Ludzie i ciało\"] }, \"Pick an emoji\": { \"v\": [\"Wybierz emoji\"] }, \"Search emoji\": { \"v\": [\"Szukaj emoji\"] }, \"Search results\": { \"v\": [\"Wyniki wyszukiwania\"] }, \"Selected\": { \"v\": [\"Wybrane\"] }, \"Skin tone\": { \"v\": [\"Kolor skóry\"] }, \"Smileys & Emotion\": { \"v\": [\"Buźki i emotikony\"] }, \"Symbols\": { \"v\": [\"Symbole\"] }, \"Travel & Places\": { \"v\": [\"Podróże i miejsca\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Activities\": { \"v\": [\"Atividades\"] }, \"Animals & Nature\": { \"v\": [\"Animais & Natureza\"] }, \"Custom\": { \"v\": [\"Personalizados\"] }, \"Dark skin tone\": { \"v\": [\"Tom de pele escuro\"] }, \"Emoji picker\": { \"v\": [\"Seletor de emoji\"] }, \"Flags\": { \"v\": [\"Bandeiras\"] }, \"Food & Drink\": { \"v\": [\"Comida & Bebida\"] }, \"Frequently used\": { \"v\": [\"Mais usados\"] }, \"Light skin tone\": { \"v\": [\"Tom de pele claro\"] }, \"Medium dark skin tone\": { \"v\": [\"Tom de pele meio escuro\"] }, \"Medium light skin tone\": { \"v\": [\"Tom de pele meio claro\"] }, \"Medium skin tone\": { \"v\": [\"Tom de pele médio\"] }, \"Neutral skin color\": { \"v\": [\"Tom de pele neutro\"] }, \"Objects\": { \"v\": [\"Objetos\"] }, \"People & Body\": { \"v\": [\"Pessoas & Corpo\"] }, \"Pick an emoji\": { \"v\": [\"Escolha um emoji\"] }, \"Search emoji\": { \"v\": [\"Pesquisar emoji\"] }, \"Search results\": { \"v\": [\"Resultados da pesquisa\"] }, \"Selected\": { \"v\": [\"Selecionado\"] }, \"Skin tone\": { \"v\": [\"Tom de pele\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Emoções\"] }, \"Symbols\": { \"v\": [\"Símbolos\"] }, \"Travel & Places\": { \"v\": [\"Viagem & Lugares\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Activities\": { \"v\": [\"Atividades\"] }, \"Animals & Nature\": { \"v\": [\"Animais e Natureza\"] }, \"Custom\": { \"v\": [\"Personalizado\"] }, \"Dark skin tone\": { \"v\": [\"Tom de pele escuro\"] }, \"Emoji picker\": { \"v\": [\"seletor de emoji\"] }, \"Flags\": { \"v\": [\"Bandeiras\"] }, \"Food & Drink\": { \"v\": [\"Comida e Bebida\"] }, \"Frequently used\": { \"v\": [\"Mais utilizados\"] }, \"Light skin tone\": { \"v\": [\"Tom de pele claro\"] }, \"Medium dark skin tone\": { \"v\": [\"Tom de pele escuro médio\"] }, \"Medium light skin tone\": { \"v\": [\"Tom de pele claro médio\"] }, \"Medium skin tone\": { \"v\": [\"Tom de pele médio\"] }, \"Neutral skin color\": { \"v\": [\"Cor de pele neutra\"] }, \"Objects\": { \"v\": [\"Objetos\"] }, \"People & Body\": { \"v\": [\"Pessoas e Corpo\"] }, \"Pick an emoji\": { \"v\": [\"Escolha um emoji\"] }, \"Search emoji\": { \"v\": [\"Pesquisar emoji\"] }, \"Search results\": { \"v\": [\"Resultados da pesquisa\"] }, \"Selected\": { \"v\": [\"Selecionado\"] }, \"Skin tone\": { \"v\": [\"Tom de pele\"] }, \"Smileys & Emotion\": { \"v\": [\"Sorrisos e Emoções\"] }, \"Symbols\": { \"v\": [\"Símbolos\"] }, \"Travel & Places\": { \"v\": [\"Viagens e Lugares\"] } } }, { \"l\": \"ro\", \"t\": { \"Activities\": { \"v\": [\"Activități\"] }, \"Animals & Nature\": { \"v\": [\"Animale și natură\"] }, \"Custom\": { \"v\": [\"Personalizat\"] }, \"Flags\": { \"v\": [\"Marcaje\"] }, \"Food & Drink\": { \"v\": [\"Alimente și băuturi\"] }, \"Frequently used\": { \"v\": [\"Utilizate frecvent\"] }, \"Objects\": { \"v\": [\"Obiecte\"] }, \"People & Body\": { \"v\": [\"Oameni și corp\"] }, \"Pick an emoji\": { \"v\": [\"Alege un emoji\"] }, \"Search emoji\": { \"v\": [\"Căutare emoji\"] }, \"Search results\": { \"v\": [\"Rezultatele căutării\"] }, \"Selected\": { \"v\": [\"Selectat\"] }, \"Smileys & Emotion\": { \"v\": [\"Zâmbete și emoții\"] }, \"Symbols\": { \"v\": [\"Simboluri\"] }, \"Travel & Places\": { \"v\": [\"Călătorii și locuri\"] } } }, { \"l\": \"ru\", \"t\": { \"Activities\": { \"v\": [\"События\"] }, \"Animals & Nature\": { \"v\": [\"Животные и природа \"] }, \"Custom\": { \"v\": [\"Пользовательское\"] }, \"Dark skin tone\": { \"v\": [\"Темный оттенок\"] }, \"Emoji picker\": { \"v\": [\"Подборщик эмодзи\"] }, \"Flags\": { \"v\": [\"Флаги\"] }, \"Food & Drink\": { \"v\": [\"Еда, напиток\"] }, \"Frequently used\": { \"v\": [\"Часто используемый\"] }, \"Light skin tone\": { \"v\": [\"Светлый оттенок\"] }, \"Medium dark skin tone\": { \"v\": [\"Средний темный оттенок\"] }, \"Medium light skin tone\": { \"v\": [\"Средний светлый оттенок\"] }, \"Medium skin tone\": { \"v\": [\"Средний оттенок\"] }, \"Neutral skin color\": { \"v\": [\"Нейтральный оттенок\"] }, \"Objects\": { \"v\": [\"Объекты\"] }, \"People & Body\": { \"v\": [\"Люди и тело\"] }, \"Pick an emoji\": { \"v\": [\"Выберите эмодзи\"] }, \"Search emoji\": { \"v\": [\"Поиск эмодзи\"] }, \"Search results\": { \"v\": [\"Результаты поиска\"] }, \"Selected\": { \"v\": [\"Выбрано\"] }, \"Skin tone\": { \"v\": [\"Оттенок скина\"] }, \"Smileys & Emotion\": { \"v\": [\"Смайлики и эмоции\"] }, \"Symbols\": { \"v\": [\"Символы\"] }, \"Travel & Places\": { \"v\": [\"Путешествия и места\"] } } }, { \"l\": \"sk\", \"t\": { \"Activities\": { \"v\": [\"Aktivity\"] }, \"Animals & Nature\": { \"v\": [\"Zvieratá a príroda\"] }, \"Custom\": { \"v\": [\"Vlastné\"] }, \"Dark skin tone\": { \"v\": [\"Tmavý vzhľad\"] }, \"Emoji picker\": { \"v\": [\"Výber emodži\"] }, \"Flags\": { \"v\": [\"Vlajky\"] }, \"Food & Drink\": { \"v\": [\"Jedlo a nápoje\"] }, \"Frequently used\": { \"v\": [\"Často používané\"] }, \"Light skin tone\": { \"v\": [\"Svetlý vzhľad\"] }, \"Medium dark skin tone\": { \"v\": [\"Stredne tmavý vzhľad\"] }, \"Medium light skin tone\": { \"v\": [\"Stredne svetlý vzhľad\"] }, \"Medium skin tone\": { \"v\": [\"Stredný vzhľad\"] }, \"Neutral skin color\": { \"v\": [\"Neutrálny vzhľad\"] }, \"Objects\": { \"v\": [\"Objekty\"] }, \"People & Body\": { \"v\": [\"Ľudia a telo\"] }, \"Pick an emoji\": { \"v\": [\"Vybrať emodži\"] }, \"Search emoji\": { \"v\": [\"Vyhľadať emoji\"] }, \"Search results\": { \"v\": [\"Výsledky vyhľadávania\"] }, \"Selected\": { \"v\": [\"Vybraný\"] }, \"Skin tone\": { \"v\": [\"Vzhľad\"] }, \"Smileys & Emotion\": { \"v\": [\"Smajlíky a emócie\"] }, \"Symbols\": { \"v\": [\"Symboly\"] }, \"Travel & Places\": { \"v\": [\"Cestovanie a miesta\"] } } }, { \"l\": \"sl\", \"t\": { \"Activities\": { \"v\": [\"Dejavnosti\"] }, \"Animals & Nature\": { \"v\": [\"Živali in Narava\"] }, \"Custom\": { \"v\": [\"Po meri\"] }, \"Flags\": { \"v\": [\"Zastavice\"] }, \"Food & Drink\": { \"v\": [\"Hrana in Pijača\"] }, \"Frequently used\": { \"v\": [\"Pogostost uporabe\"] }, \"Objects\": { \"v\": [\"Predmeti\"] }, \"People & Body\": { \"v\": [\"Ljudje in Telo\"] }, \"Pick an emoji\": { \"v\": [\"Izbor izrazne ikone\"] }, \"Search results\": { \"v\": [\"Zadetki iskanja\"] }, \"Smileys & Emotion\": { \"v\": [\"Izrazne ikone\"] }, \"Symbols\": { \"v\": [\"Simboli\"] }, \"Travel & Places\": { \"v\": [\"Potovanja in Kraji\"] } } }, { \"l\": \"sr\", \"t\": { \"Activities\": { \"v\": [\"Активности\"] }, \"Animals & Nature\": { \"v\": [\"Животиње и природа\"] }, \"Custom\": { \"v\": [\"Произвољно\"] }, \"Dark skin tone\": { \"v\": [\"Тамни тен коже\"] }, \"Emoji picker\": { \"v\": [\"Бирач емођија\"] }, \"Flags\": { \"v\": [\"Заставе\"] }, \"Food & Drink\": { \"v\": [\"Храна и пиће\"] }, \"Frequently used\": { \"v\": [\"Често коришћено\"] }, \"Light skin tone\": { \"v\": [\"Светли тен коже\"] }, \"Medium dark skin tone\": { \"v\": [\"Средње тамни тен коже\"] }, \"Medium light skin tone\": { \"v\": [\"Средње светли тен коже\"] }, \"Medium skin tone\": { \"v\": [\"Средњи тен коже\"] }, \"Neutral skin color\": { \"v\": [\"Неутрална боја коже\"] }, \"Objects\": { \"v\": [\"Предмети\"] }, \"People & Body\": { \"v\": [\"Људи и тело\"] }, \"Pick an emoji\": { \"v\": [\"Изаберите емођи\"] }, \"Search emoji\": { \"v\": [\"Претражи емођи\"] }, \"Search results\": { \"v\": [\"Резултати претраге\"] }, \"Selected\": { \"v\": [\"Изабрано\"] }, \"Skin tone\": { \"v\": [\"Тен коже\"] }, \"Smileys & Emotion\": { \"v\": [\"Смајлији и емоције\"] }, \"Symbols\": { \"v\": [\"Симболи\"] }, \"Travel & Places\": { \"v\": [\"Путовање и места\"] } } }, { \"l\": \"sv\", \"t\": { \"Activities\": { \"v\": [\"Aktiviteter\"] }, \"Animals & Nature\": { \"v\": [\"Djur & Natur\"] }, \"Custom\": { \"v\": [\"Anpassad\"] }, \"Dark skin tone\": { \"v\": [\"Mörk hudton\"] }, \"Emoji picker\": { \"v\": [\"Emoji-väljare\"] }, \"Flags\": { \"v\": [\"Flaggor\"] }, \"Food & Drink\": { \"v\": [\"Mat & Dryck\"] }, \"Frequently used\": { \"v\": [\"Används ofta\"] }, \"Light skin tone\": { \"v\": [\"Ljus hudton\"] }, \"Medium dark skin tone\": { \"v\": [\"Medium mörk hudton\"] }, \"Medium light skin tone\": { \"v\": [\"Medium ljus hudton\"] }, \"Medium skin tone\": { \"v\": [\"Medium hudton\"] }, \"Neutral skin color\": { \"v\": [\"Neutral hudfärg\"] }, \"Objects\": { \"v\": [\"Objekt\"] }, \"People & Body\": { \"v\": [\"Kropp & Själ\"] }, \"Pick an emoji\": { \"v\": [\"Välj en emoji\"] }, \"Search emoji\": { \"v\": [\"Sök emoji\"] }, \"Search results\": { \"v\": [\"Sökresultat\"] }, \"Selected\": { \"v\": [\"Vald\"] }, \"Skin tone\": { \"v\": [\"Hudton\"] }, \"Smileys & Emotion\": { \"v\": [\"Selfies & Känslor\"] }, \"Symbols\": { \"v\": [\"Symboler\"] }, \"Travel & Places\": { \"v\": [\"Resor & Sevärdigheter\"] } } }, { \"l\": \"tr\", \"t\": { \"Activities\": { \"v\": [\"Etkinlikler\"] }, \"Animals & Nature\": { \"v\": [\"Hayvanlar ve doğa\"] }, \"Custom\": { \"v\": [\"Özel\"] }, \"Dark skin tone\": { \"v\": [\"Koyu deri rengi\"] }, \"Emoji picker\": { \"v\": [\"Emoji seçici\"] }, \"Flags\": { \"v\": [\"Bayraklar\"] }, \"Food & Drink\": { \"v\": [\"Yeme ve içme\"] }, \"Frequently used\": { \"v\": [\"Sık kullanılanlar\"] }, \"Light skin tone\": { \"v\": [\"Açık deri rengi\"] }, \"Medium dark skin tone\": { \"v\": [\"Orta koyu deri rengi\"] }, \"Medium light skin tone\": { \"v\": [\"Orta açık deri rengi\"] }, \"Medium skin tone\": { \"v\": [\"Orta deri rengi\"] }, \"Neutral skin color\": { \"v\": [\"Nötr deri rengi\"] }, \"Objects\": { \"v\": [\"Nesneler\"] }, \"People & Body\": { \"v\": [\"İnsanlar ve beden\"] }, \"Pick an emoji\": { \"v\": [\"Bir emoji seçin\"] }, \"Search emoji\": { \"v\": [\"Emoji ara\"] }, \"Search results\": { \"v\": [\"Arama sonuçları\"] }, \"Selected\": { \"v\": [\"Seçilmiş\"] }, \"Skin tone\": { \"v\": [\"Deri rengi\"] }, \"Smileys & Emotion\": { \"v\": [\"İfadeler ve duygular\"] }, \"Symbols\": { \"v\": [\"Simgeler\"] }, \"Travel & Places\": { \"v\": [\"Gezi ve yerler\"] } } }, { \"l\": \"uk\", \"t\": { \"Activities\": { \"v\": [\"Діяльність\"] }, \"Animals & Nature\": { \"v\": [\"Тварини та природа\"] }, \"Custom\": { \"v\": [\"Власне\"] }, \"Dark skin tone\": { \"v\": [\"Смаглявий\"] }, \"Emoji picker\": { \"v\": [\"Вибір емоційки\"] }, \"Flags\": { \"v\": [\"Прапори\"] }, \"Food & Drink\": { \"v\": [\"Їжа та напої\"] }, \"Frequently used\": { \"v\": [\"Найчастіші\"] }, \"Light skin tone\": { \"v\": [\"Світла шкіра\"] }, \"Medium dark skin tone\": { \"v\": [\"Какао\"] }, \"Medium light skin tone\": { \"v\": [\"Лате\"] }, \"Medium skin tone\": { \"v\": [\"Середній колір шкіри\"] }, \"Neutral skin color\": { \"v\": [\"Нейтральний колір шкіри\"] }, \"Objects\": { \"v\": [\"Об'єкти\"] }, \"People & Body\": { \"v\": [\"Люди та жести\"] }, \"Pick an emoji\": { \"v\": [\"Виберіть емоційку\"] }, \"Search emoji\": { \"v\": [\"Шукати емоційки\"] }, \"Search results\": { \"v\": [\"Результати пошуку\"] }, \"Selected\": { \"v\": [\"Вибрано\"] }, \"Skin tone\": { \"v\": [\"Колір шкіри\"] }, \"Smileys & Emotion\": { \"v\": [\"Смайли та емоції\"] }, \"Symbols\": { \"v\": [\"Символи\"] }, \"Travel & Places\": { \"v\": [\"Поїздки та місця\"] } } }, { \"l\": \"uz\", \"t\": { \"Activities\": { \"v\": [\"Faolliklar\"] }, \"Animals & Nature\": { \"v\": [\"Hayvonlar va Tabiat\"] }, \"Custom\": { \"v\": [\"Moslashtirilgan\"] }, \"Dark skin tone\": { \"v\": [\"Qora rangdagi qoplama\"] }, \"Emoji picker\": { \"v\": [\"Emoji tanlagich\"] }, \"Flags\": { \"v\": [\"Bayroqlar\"] }, \"Food & Drink\": { \"v\": [\"Oziq-ovqat va ichimliklar\"] }, \"Frequently used\": { \"v\": [\"Tez-tez ishlatiladi\"] }, \"Light skin tone\": { \"v\": [\"Yorug` rangdagi qoplama\"] }, \"Medium dark skin tone\": { \"v\": [\"O`rtacha qorong`u rangdagi qoplama\"] }, \"Medium light skin tone\": { \"v\": [\"O`rtacha yorug`lik rangdagi qoplama\"] }, \"Medium skin tone\": { \"v\": [\"O`rtacha rangdagi qoplama\"] }, \"Neutral skin color\": { \"v\": [\"Neytral rang\"] }, \"Objects\": { \"v\": [\"Obyekt\"] }, \"People & Body\": { \"v\": [\"Odamlar va Tana\"] }, \"Pick an emoji\": { \"v\": [\"Emojini tanlang\"] }, \"Search emoji\": { \"v\": [\"Emoji qidirish\"] }, \"Search results\": { \"v\": [\"Qidiruv natijalari\"] }, \"Selected\": { \"v\": [\"Tanlangan\"] }, \"Skin tone\": { \"v\": [\"Odatiy rangdagi qoplama\"] }, \"Smileys & Emotion\": { \"v\": [\"Smayllar va Hissiyotlar\"] }, \"Symbols\": { \"v\": [\"Belgilar\"] }, \"Travel & Places\": { \"v\": [\"Sayohat va Joylar\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Activities\": { \"v\": [\"活动\"] }, \"Animals & Nature\": { \"v\": [\"动物 & 自然\"] }, \"Custom\": { \"v\": [\"自定义\"] }, \"Dark skin tone\": { \"v\": [\"深色皮肤\"] }, \"Emoji picker\": { \"v\": [\"表情拾取器\"] }, \"Flags\": { \"v\": [\"旗帜\"] }, \"Food & Drink\": { \"v\": [\"食物 & 饮品\"] }, \"Frequently used\": { \"v\": [\"经常使用\"] }, \"Light skin tone\": { \"v\": [\"浅色皮肤\"] }, \"Medium dark skin tone\": { \"v\": [\"中等深色皮肤\"] }, \"Medium light skin tone\": { \"v\": [\"中等浅色皮肤\"] }, \"Medium skin tone\": { \"v\": [\"中等皮肤\"] }, \"Neutral skin color\": { \"v\": [\"中性皮肤颜色\"] }, \"Objects\": { \"v\": [\"物体\"] }, \"People & Body\": { \"v\": [\"人 & 身体\"] }, \"Pick an emoji\": { \"v\": [\"选择一个表情\"] }, \"Search emoji\": { \"v\": [\"搜索表情\"] }, \"Search results\": { \"v\": [\"搜索结果\"] }, \"Selected\": { \"v\": [\"选择\"] }, \"Skin tone\": { \"v\": [\"皮肤\"] }, \"Smileys & Emotion\": { \"v\": [\"笑脸 & 情感\"] }, \"Symbols\": { \"v\": [\"符号\"] }, \"Travel & Places\": { \"v\": [\"旅游 & 地点\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Activities\": { \"v\": [\"活動\"] }, \"Animals & Nature\": { \"v\": [\"動物與自然\"] }, \"Custom\": { \"v\": [\"自定義\"] }, \"Dark skin tone\": { \"v\": [\"深膚色\"] }, \"Emoji picker\": { \"v\": [\"表情符號選擇器\"] }, \"Flags\": { \"v\": [\"旗幟\"] }, \"Food & Drink\": { \"v\": [\"食物與飲料\"] }, \"Frequently used\": { \"v\": [\"經常使用\"] }, \"Light skin tone\": { \"v\": [\"淺膚色\"] }, \"Medium dark skin tone\": { \"v\": [\"中等深膚色\"] }, \"Medium light skin tone\": { \"v\": [\"中等淺膚色\"] }, \"Medium skin tone\": { \"v\": [\"中等膚色\"] }, \"Neutral skin color\": { \"v\": [\"中性色膚色\"] }, \"Objects\": { \"v\": [\"物件\"] }, \"People & Body\": { \"v\": [\"人物\"] }, \"Pick an emoji\": { \"v\": [\"選擇表情符號\"] }, \"Search emoji\": { \"v\": [\"搜尋表情符號\"] }, \"Search results\": { \"v\": [\"搜尋結果\"] }, \"Selected\": { \"v\": [\"已選\"] }, \"Skin tone\": { \"v\": [\"膚色\"] }, \"Smileys & Emotion\": { \"v\": [\"表情\"] }, \"Symbols\": { \"v\": [\"標誌\"] }, \"Travel & Places\": { \"v\": [\"旅遊與景點\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Activities\": { \"v\": [\"活動\"] }, \"Animals & Nature\": { \"v\": [\"動物與自然\"] }, \"Custom\": { \"v\": [\"自定義\"] }, \"Dark skin tone\": { \"v\": [\"深膚色\"] }, \"Emoji picker\": { \"v\": [\"表情符號挑選器\"] }, \"Flags\": { \"v\": [\"旗幟\"] }, \"Food & Drink\": { \"v\": [\"食物與飲料\"] }, \"Frequently used\": { \"v\": [\"最近使用\"] }, \"Light skin tone\": { \"v\": [\"淺膚色\"] }, \"Medium dark skin tone\": { \"v\": [\"中等深膚色\"] }, \"Medium light skin tone\": { \"v\": [\"中等淺膚色\"] }, \"Medium skin tone\": { \"v\": [\"中等膚色\"] }, \"Neutral skin color\": { \"v\": [\"中性膚色\"] }, \"Objects\": { \"v\": [\"物件\"] }, \"People & Body\": { \"v\": [\"人物\"] }, \"Pick an emoji\": { \"v\": [\"選擇表情符號\"] }, \"Search emoji\": { \"v\": [\"搜尋表情符號\"] }, \"Search results\": { \"v\": [\"搜尋結果\"] }, \"Selected\": { \"v\": [\"已選取\"] }, \"Skin tone\": { \"v\": [\"膚色\"] }, \"Smileys & Emotion\": { \"v\": [\"表情\"] }, \"Symbols\": { \"v\": [\"標誌\"] }, \"Travel & Places\": { \"v\": [\"旅遊與景點\"] } } }];\nconst t6 = [{ \"l\": \"ar\", \"t\": { \"Add to a project\": { \"v\": [\"أضف إلى مشروع\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"ربط عناصر بمشروع لتسهيل العثور عليها\"] }, \"Failed to add the item to the project\": { \"v\": [\"تعذر ربط عنصر بمشروع\"] }, \"Failed to create a project\": { \"v\": [\"تعذر إنشاء مشروع\"] }, \"Failed to rename the project\": { \"v\": [\"تعذّر تغيير اسم المشروع\"] }, \"Type to search for existing projects\": { \"v\": [\"أكتُب للبحث في المشاريع الموجودة\"] } } }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Add to a project\": { \"v\": [\"Přidat do projektu\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Připojte položky k projektu, čímž budou snáze dohledatelné\"] }, \"Failed to add the item to the project\": { \"v\": [\"Položku se nepodařilo přidat do projektu\"] }, \"Failed to create a project\": { \"v\": [\"Projekt se nepodařilo vytvořit\"] }, \"Failed to rename the project\": { \"v\": [\"Projekt se nepodařilo přejmenovat\"] }, \"Type to search for existing projects\": { \"v\": [\"Psaním vyhledávejte existující projekty\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Add to a project\": { \"v\": [\"Tilføj til et projekt\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Forbind elementer til et projekt for at gøre dem nemmere at finde\"] }, \"Failed to add the item to the project\": { \"v\": [\"Kunne ikke føje elementet til projektet\"] }, \"Failed to create a project\": { \"v\": [\"Kunne ikke oprette et projekt\"] }, \"Failed to rename the project\": { \"v\": [\"Projektet kunne ikke omdøbes\"] }, \"Type to search for existing projects\": { \"v\": [\"Skriv for at søge efter eksisterende projekter\"] } } }, { \"l\": \"de\", \"t\": { \"Add to a project\": { \"v\": [\"Einem Projekt hinzufügen\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Verbinde Elemente mit einem Projekt, um sie leichter zu finden\"] }, \"Failed to add the item to the project\": { \"v\": [\"Das Element konnte nicht zum Projekt hinzugefügt werden\"] }, \"Failed to create a project\": { \"v\": [\"Projekt konnte nicht erstellt werden\"] }, \"Failed to rename the project\": { \"v\": [\"Das Projekt konnte nicht umbenannt werden\"] }, \"Type to search for existing projects\": { \"v\": [\"Tippen, um nach vorhandenen Projekten zu suchen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Add to a project\": { \"v\": [\"Einem Projekt hinzufügen\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Verbinden Sie Elemente mit einem Projekt, um sie leichter zu finden\"] }, \"Failed to add the item to the project\": { \"v\": [\"Das Element konnte nicht zum Projekt hinzugefügt werden\"] }, \"Failed to create a project\": { \"v\": [\"Projekt konnte nicht erstellt werden\"] }, \"Failed to rename the project\": { \"v\": [\"Das Projekt konnte nicht umbenannt werden\"] }, \"Type to search for existing projects\": { \"v\": [\"Tippen, um nach vorhandenen Projekten zu suchen\"] } } }, { \"l\": \"el\", \"t\": { \"Add to a project\": { \"v\": [\"Προσθήκη σε ένα έργο\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Συνδέστε αντικείμενα σε ένα έργο για να τα βρίσκετε πιο εύκολα\"] }, \"Failed to add the item to the project\": { \"v\": [\"Αποτυχία προσθήκης του αντικειμένου στο έργο\"] }, \"Failed to create a project\": { \"v\": [\"Αποτυχία δημιουργίας έργου\"] }, \"Failed to rename the project\": { \"v\": [\"Αποτυχία μετονομασίας του έργου\"] }, \"Type to search for existing projects\": { \"v\": [\"Πληκτρολογήστε για αναζήτηση υπαρχόντων έργων\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Add to a project\": { \"v\": [\"Add to a project\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Connect items to a project to make them easier to find\"] }, \"Failed to add the item to the project\": { \"v\": [\"Failed to add the item to the project\"] }, \"Failed to create a project\": { \"v\": [\"Failed to create a project\"] }, \"Failed to rename the project\": { \"v\": [\"Failed to rename the project\"] }, \"Type to search for existing projects\": { \"v\": [\"Type to search for existing projects\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": { \"Add to a project\": { \"v\": [\"Agregar a un proyecto\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Conecte items a un proyecto para hacerlos más fáciles de encontrar\"] }, \"Failed to add the item to the project\": { \"v\": [\"No se pudo agregar el elemento al proyecto\"] }, \"Failed to create a project\": { \"v\": [\"No se pudo crear un proyecto\"] }, \"Failed to rename the project\": { \"v\": [\"No se pudo renombrar el proyecto\"] }, \"Type to search for existing projects\": { \"v\": [\"Escriba para buscar proyectos existentes\"] } } }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": { \"Add to a project\": { \"v\": [\"Agregar a un proyecto\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Conecte elementos a un proyecto para hacerlos más fáciles de encontrar\"] }, \"Failed to add the item to the project\": { \"v\": [\"No se pudo agregar el elemento al proyecto\"] }, \"Failed to create a project\": { \"v\": [\"No se pudo crear el proyecto\"] }, \"Failed to rename the project\": { \"v\": [\"No se pudo renombrar el proyecto\"] }, \"Type to search for existing projects\": { \"v\": [\"Escriba para buscar proyectos existentes\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Add to a project\": { \"v\": [\"Lisa projekti\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Selleks, et objekte oleks lihtsam leida, seo nad projektiga\"] }, \"Failed to add the item to the project\": { \"v\": [\"Objekti lisamine projekti ei õnnestunud\"] }, \"Failed to create a project\": { \"v\": [\"Projekti loomine ei õnnestunud\"] }, \"Failed to rename the project\": { \"v\": [\"Projekti nime muutmine ei õnnestunud\"] }, \"Type to search for existing projects\": { \"v\": [\"Olemasolevate projektide otsimiseks kirjuta\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"Add to a project\": { \"v\": [\"افزودن به پروژه\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"برای پیدا کردن راحت‌تر، مواردی را به پروژه متصل کنید\"] }, \"Failed to add the item to the project\": { \"v\": [\"موارد به پروژه اضافه نشد\"] }, \"Failed to create a project\": { \"v\": [\"ایجاد پروژه نامؤفق بود\"] }, \"Failed to rename the project\": { \"v\": [\"تغییر نام پروژه انجام نشد\"] }, \"Type to search for existing projects\": { \"v\": [\"برای جستجوی پروژه‌های موجود تایپ کنید\"] } } }, { \"l\": \"fi\", \"t\": { \"Add to a project\": { \"v\": [\"Lisää projektiin\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Yhdistä kohteet projektiin, jotta ne olisivat helpompia löytää\"] }, \"Failed to add the item to the project\": { \"v\": [\"Kohteiden lisääminen projektiin epäonnistui\"] }, \"Failed to create a project\": { \"v\": [\"Projektin luominen epäonnistui\"] }, \"Failed to rename the project\": { \"v\": [\"Projektin nimeäminen epäonnistui\"] }, \"Type to search for existing projects\": { \"v\": [\"Kirjoita etsiäksesi olemassaolevia projekteja\"] } } }, { \"l\": \"fr\", \"t\": { \"Add to a project\": { \"v\": [\"Ajouter à un projet\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Connectez des éléments à un projet pour les retrouver plus facilement\"] }, \"Failed to add the item to the project\": { \"v\": [\"Impossible d'ajouter l'élément au projet\"] }, \"Failed to create a project\": { \"v\": [\"Impossible de créer un projet\"] }, \"Failed to rename the project\": { \"v\": [\"Impossible de renommer le projet\"] }, \"Type to search for existing projects\": { \"v\": [\"Tapez pour rechercher des projets existants\"] } } }, { \"l\": \"ga\", \"t\": { \"Add to a project\": { \"v\": [\"Cuir le tionscadal\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Ceangail míreanna le tionscadal chun iad a dhéanamh níos éasca iad a aimsiú\"] }, \"Failed to add the item to the project\": { \"v\": [\"Theip ar an mír a chur leis an tionscadal\"] }, \"Failed to create a project\": { \"v\": [\"Theip ar thionscadal a chruthú\"] }, \"Failed to rename the project\": { \"v\": [\"Theip ar an tionscadal a athainmniú\"] }, \"Type to search for existing projects\": { \"v\": [\"Clóscríobh chun tionscadail atá ann cheana a chuardach\"] } } }, { \"l\": \"gl\", \"t\": { \"Add to a project\": { \"v\": [\"Engadir a un proxecto\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Conectar elementos a un proxecto para facelos máis doados de atopar\"] }, \"Failed to add the item to the project\": { \"v\": [\"Produciuse un fallo ao engadir o elemento ao proxecto\"] }, \"Failed to create a project\": { \"v\": [\"Produciuse un fallo ao crear un proxecto\"] }, \"Failed to rename the project\": { \"v\": [\"Produciuse un fallo ao cambiarlle o nome ao proxecto\"] }, \"Type to search for existing projects\": { \"v\": [\"Escriba para buscar proxectos existentes\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": {} }, { \"l\": \"is\", \"t\": { \"Add to a project\": { \"v\": [\"Bæta við verkefni\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Tengdu atriði við verkefni til að gera einfaldara að finna þau\"] }, \"Failed to add the item to the project\": { \"v\": [\"Mistókst að bæta atriðinu í verkefnið\"] }, \"Failed to create a project\": { \"v\": [\"Mistókst að útbúa verkefni\"] }, \"Failed to rename the project\": { \"v\": [\"Mistókst að endurnefna verkefnið\"] }, \"Type to search for existing projects\": { \"v\": [\"Skrifaðu hér til að leita að fyrirliggjandi verkefnum\"] } } }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Add to a project\": { \"v\": [\"プロジェクトに追加する\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"項目をプロジェクトに接続して検索しやすくする\"] }, \"Failed to add the item to the project\": { \"v\": [\"プロジェクトへのアイテムの追加に失敗しました\"] }, \"Failed to create a project\": { \"v\": [\"プロジェクトの作成に失敗しました\"] }, \"Failed to rename the project\": { \"v\": [\"プロジェクトの名前変更に失敗しました\"] }, \"Type to search for existing projects\": { \"v\": [\"既存のプロジェクトを検索するために入力します\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": { \"Add to a project\": { \"v\": [\"프로젝트에 추가\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"항목을 더 쉽게 찾을 수 있도록 프로젝트에 연결하세요.\"] }, \"Failed to add the item to the project\": { \"v\": [\"항목을 프로젝트에 추가하는 데 실패함\"] }, \"Failed to create a project\": { \"v\": [\"프로젝트를 만드는 데 실패함\"] }, \"Failed to rename the project\": { \"v\": [\"프로젝트의 이름을 바꾸는 데 실패함\"] }, \"Type to search for existing projects\": { \"v\": [\"입력하여 프로젝트를 검색\"] } } }, { \"l\": \"lo\", \"t\": { \"Add to a project\": { \"v\": [\"ເພີ່ມໃສ່ໂຄງການ\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"ເຊື່ອມຕໍ່ລາຍການຕ່າງໆໃສ່ໂຄງການ ເພື່ອເຮັດໃຫ້ຊອກຫາງ່າຍຂຶ້ນ\"] }, \"Failed to add the item to the project\": { \"v\": [\"ບໍ່ສາມາດເພີ່ມລາຍການໃສ່ໂຄງການໄດ້\"] }, \"Failed to create a project\": { \"v\": [\"ບໍ່ສາມາດສ້າງໂຄງການໄດ້\"] }, \"Failed to rename the project\": { \"v\": [\"ບໍ່ສາມາດປ່ຽນຊື່ໂຄງການໄດ້\"] }, \"Type to search for existing projects\": { \"v\": [\"ພິມເພື່ອຄົ້ນຫາໂຄງການທີ່ມີຢູ່\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Add to a project\": { \"v\": [\"Додај во проект\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Поврзете ги елементите со проект за да биде полесно да се најдат\"] }, \"Failed to add the item to the project\": { \"v\": [\"Неуспешно додавање на елементот во проектот\"] }, \"Failed to create a project\": { \"v\": [\"Неуспешно креирање на проект\"] }, \"Failed to rename the project\": { \"v\": [\"Неуспешно преименување на проектот\"] }, \"Type to search for existing projects\": { \"v\": [\"Пишувај за пребарување постоечки проекти\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Add to a project\": { \"v\": [\"Legge til i et prosjekt\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Koble elementer til et prosjekt for å gjøre det enklere å finne dem\"] }, \"Failed to add the item to the project\": { \"v\": [\"Kan ikke legge til elementet i prosjektet\"] }, \"Failed to create a project\": { \"v\": [\"Kan ikke opprette et prosjekt\"] }, \"Failed to rename the project\": { \"v\": [\"Kunne ikke gi prosjektet nytt navn\"] }, \"Type to search for existing projects\": { \"v\": [\"Skriv for å søke for eksisterende prosjekter\"] } } }, { \"l\": \"nl\", \"t\": { \"Add to a project\": { \"v\": [\"Toevoegen aan een project\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Items aan een project koppelen om ze eenvoudiger te vinden\"] }, \"Failed to add the item to the project\": { \"v\": [\"Toevoegen van item aan project mislukt\"] }, \"Failed to create a project\": { \"v\": [\"Project aanmaken mislukt\"] }, \"Failed to rename the project\": { \"v\": [\"Project hernoemen mislukt\"] }, \"Type to search for existing projects\": { \"v\": [\"Typ om te zoeken naar bestaande projecten\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Add to a project\": { \"v\": [\"Dodaj do projektu\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Połącz elementy z projektem, aby ułatwić ich znalezienie\"] }, \"Failed to add the item to the project\": { \"v\": [\"Nie udało się dodać elementu do projektu\"] }, \"Failed to create a project\": { \"v\": [\"Nie udało się utworzyć projektu\"] }, \"Failed to rename the project\": { \"v\": [\"Nie udało się zmienić nazwy projektu\"] }, \"Type to search for existing projects\": { \"v\": [\"Wpisz, aby wyszukać istniejące projekty\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Add to a project\": { \"v\": [\"Adicionar a um projeto\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Conectar itens a um projeto para encontrá-los mais facilmente\"] }, \"Failed to add the item to the project\": { \"v\": [\"Falha ao adicionar itens ao projeto\"] }, \"Failed to create a project\": { \"v\": [\"Falha ao criar um projeto\"] }, \"Failed to rename the project\": { \"v\": [\"Falha ao renomear o projeto\"] }, \"Type to search for existing projects\": { \"v\": [\"Digite para pesquisar projetos existentes\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Add to a project\": { \"v\": [\"Adicionar a um projeto\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Ligar itens a um projeto para serem mais facilmente encontrados\"] }, \"Failed to add the item to the project\": { \"v\": [\"Não foi possível adicionar item ao projeto\"] }, \"Failed to create a project\": { \"v\": [\"Não foi possível criar um projeto\"] }, \"Failed to rename the project\": { \"v\": [\"Não foi possível alterar o nome do projeto\"] }, \"Type to search for existing projects\": { \"v\": [\"Digite para procurar projetos existentes\"] } } }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Add to a project\": { \"v\": [\"Добавить в проект\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Подключайте элементы к проекту, чтобы их было легче найти\"] }, \"Failed to add the item to the project\": { \"v\": [\"Не удалось добавить элемент в проект\"] }, \"Failed to create a project\": { \"v\": [\"Не удалось создать проект\"] }, \"Failed to rename the project\": { \"v\": [\"Не удалось переименовать проект\"] }, \"Type to search for existing projects\": { \"v\": [\"Введите для поиска существующих проектов\"] } } }, { \"l\": \"sk\", \"t\": { \"Add to a project\": { \"v\": [\"Pridať do projektu\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Pridať položky do projektu pre jednoduchšie vyhľadávanie\"] }, \"Failed to add the item to the project\": { \"v\": [\"Nepodarilo sa pridať položku do projektu\"] }, \"Failed to create a project\": { \"v\": [\"Nepodarilo sa vytvoriť projekt\"] }, \"Failed to rename the project\": { \"v\": [\"Nepodarilo sa premenovať projekt\"] }, \"Type to search for existing projects\": { \"v\": [\"Začnite písať pre vyhľadávanie v existujúcich projektoch\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Add to a project\": { \"v\": [\"Додај у пројекат\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Повезује ставке у пројекат како би се лакше пронашле\"] }, \"Failed to add the item to the project\": { \"v\": [\"Није успело додавање ставке у пројекат\"] }, \"Failed to create a project\": { \"v\": [\"Није успело креирање пројекта\"] }, \"Failed to rename the project\": { \"v\": [\"Није успела промена имена пројекта\"] }, \"Type to search for existing projects\": { \"v\": [\"Куцајте да претражите постојеће пројекте\"] } } }, { \"l\": \"sv\", \"t\": { \"Add to a project\": { \"v\": [\"Lägg till i ett projekt\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Anslut objekt till ett projekt för att göra dem lättare att hitta\"] }, \"Failed to add the item to the project\": { \"v\": [\"Det gick inte att lägga till objektet i projektet\"] }, \"Failed to create a project\": { \"v\": [\"Det gick inte att skapa ett projekt\"] }, \"Failed to rename the project\": { \"v\": [\"Kunde inte byta namn på projektet\"] }, \"Type to search for existing projects\": { \"v\": [\"Skriv för att söka efter befintliga projekt\"] } } }, { \"l\": \"tr\", \"t\": { \"Add to a project\": { \"v\": [\"Bir projeye ekle\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Ögeleri daha kolay bulmak için bir proje ile ilişkilendirin\"] }, \"Failed to add the item to the project\": { \"v\": [\"Öge projeye eklenemedi\"] }, \"Failed to create a project\": { \"v\": [\"Bir proje oluşturulamadı\"] }, \"Failed to rename the project\": { \"v\": [\"Proje yeniden adlandırılamadı\"] }, \"Type to search for existing projects\": { \"v\": [\"Var olan projeleri aramak için yazmaya başlayın\"] } } }, { \"l\": \"uk\", \"t\": { \"Add to a project\": { \"v\": [\"Додати до проєкту\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Приєднайте ресурси до проєкту для швидшого пошуку\"] }, \"Failed to add the item to the project\": { \"v\": [\"Не вдалося приєднати ресурс до проєкту\"] }, \"Failed to create a project\": { \"v\": [\"Не вдалося створити проєкт\"] }, \"Failed to rename the project\": { \"v\": [\"Не вдалося перейменувати проєкт\"] }, \"Type to search for existing projects\": { \"v\": [\"Почніть вводити, щоб знайти проєкт\"] } } }, { \"l\": \"uz\", \"t\": { \"Add to a project\": { \"v\": [\"Loyihaga qo'shish\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Elementlarni topishni osonlashtirish uchun ularni loyihaga ulang\"] }, \"Failed to add the item to the project\": { \"v\": [\"Ob'ektni loyihaga qo'shib bo'lmadi\"] }, \"Failed to create a project\": { \"v\": [\"Loyiha yaratib bo‘lmadi\"] }, \"Failed to rename the project\": { \"v\": [\"Loyiha nomini o‘zgartirib bo‘lmadi\"] }, \"Type to search for existing projects\": { \"v\": [\"Mavjud loyihalarni qidirish uchun kiriting\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Add to a project\": { \"v\": [\"添加至一个项目\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"将条目连接至一个项目以易于查找\"] }, \"Failed to add the item to the project\": { \"v\": [\"添加条目至项目失败\"] }, \"Failed to create a project\": { \"v\": [\"创建项目失败\"] }, \"Failed to rename the project\": { \"v\": [\"重命名项目失败\"] }, \"Type to search for existing projects\": { \"v\": [\"输入以搜索现存项目\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Add to a project\": { \"v\": [\"添加到方案中\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"將項目連接到方案中,以便更容易找到。\"] }, \"Failed to add the item to the project\": { \"v\": [\"無法將項目添加到方案中\"] }, \"Failed to create a project\": { \"v\": [\"無法創建方案\"] }, \"Failed to rename the project\": { \"v\": [\"無法重命名方案\"] }, \"Type to search for existing projects\": { \"v\": [\"輸入以搜索現有方案\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Add to a project\": { \"v\": [\"新增至專案中\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"將項目連結至專案中以方便尋找\"] }, \"Failed to add the item to the project\": { \"v\": [\"新增項目至專案失敗\"] }, \"Failed to create a project\": { \"v\": [\"建立專案失敗\"] }, \"Failed to rename the project\": { \"v\": [\"重新命名專案失敗\"] }, \"Type to search for existing projects\": { \"v\": [\"輸入以搜尋既有專案\"] } } }];\nconst t8 = [{ \"l\": \"ar\", \"t\": { \"Any link\": { \"v\": [\"أيَّ رابط\"] } } }, { \"l\": \"ast\", \"t\": { \"Any link\": { \"v\": [\"Cualesquier enllaz\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Any link\": { \"v\": [\"Jakýkoli odkaz\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Any link\": { \"v\": [\"Jakýkoli odkaz\"] } } }, { \"l\": \"da\", \"t\": { \"Any link\": { \"v\": [\"Ethvert link\"] } } }, { \"l\": \"de\", \"t\": { \"Any link\": { \"v\": [\"Irgendein Link\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Any link\": { \"v\": [\"Irgendein Link\"] } } }, { \"l\": \"el\", \"t\": { \"Any link\": { \"v\": [\"Οποιοσδήποτε σύνδεσμος\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Any link\": { \"v\": [\"Any link\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Any link\": { \"v\": [\"Cualquier enlace\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Any link\": { \"v\": [\"Cualquier enlace\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Any link\": { \"v\": [\"Cualquier enlace\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Any link\": { \"v\": [\"Cualquier enlace\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Any link\": { \"v\": [\"Mistahes link\"] } } }, { \"l\": \"eu\", \"t\": { \"Any link\": { \"v\": [\"Edozein esteka\"] } } }, { \"l\": \"fa\", \"t\": { \"Any link\": { \"v\": [\"هر پیوندی\"] } } }, { \"l\": \"fi\", \"t\": { \"Any link\": { \"v\": [\"Mikä tahansa linkki\"] } } }, { \"l\": \"fr\", \"t\": { \"Any link\": { \"v\": [\"N'importe quel lien\"] } } }, { \"l\": \"ga\", \"t\": { \"Any link\": { \"v\": [\"Aon nasc\"] } } }, { \"l\": \"gl\", \"t\": { \"Any link\": { \"v\": [\"Calquera ligazón\"] } } }, { \"l\": \"he\", \"t\": { \"Any link\": { \"v\": [\"קישור כלשהו\"] } } }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": { \"Any link\": { \"v\": [\"Semua tautan\"] } } }, { \"l\": \"is\", \"t\": { \"Any link\": { \"v\": [\"Einhver tengill\"] } } }, { \"l\": \"it\", \"t\": { \"Any link\": { \"v\": [\"Qualsiasi link\"] } } }, { \"l\": \"ja\", \"t\": { \"Any link\": { \"v\": [\"任意のリンク\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Any link\": { \"v\": [\"任意のリンク\"] } } }, { \"l\": \"ko\", \"t\": { \"Any link\": { \"v\": [\"아무 링크\"] } } }, { \"l\": \"lo\", \"t\": { \"Any link\": { \"v\": [\"ລິງໃດກໍໄດ້\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Any link\": { \"v\": [\"Секој линк\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Any link\": { \"v\": [\"Enhver lenke\"] } } }, { \"l\": \"nl\", \"t\": { \"Any link\": { \"v\": [\"Elke link\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Any link\": { \"v\": [\"Dowolny link\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Any link\": { \"v\": [\"Qualquer link\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Any link\": { \"v\": [\"Qualquer hiperligação\"] } } }, { \"l\": \"ro\", \"t\": { \"Any link\": { \"v\": [\"Orice link\"] } } }, { \"l\": \"ru\", \"t\": { \"Any link\": { \"v\": [\"Любая ссылка\"] } } }, { \"l\": \"sk\", \"t\": { \"Any link\": { \"v\": [\"Akýkoľvek odkaz\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Any link\": { \"v\": [\"Било који линк\"] } } }, { \"l\": \"sv\", \"t\": { \"Any link\": { \"v\": [\"Vilken länk som helst\"] } } }, { \"l\": \"tr\", \"t\": { \"Any link\": { \"v\": [\"Herhangi bir bağlantı\"] } } }, { \"l\": \"uk\", \"t\": { \"Any link\": { \"v\": [\"Будь-яке посилання\"] } } }, { \"l\": \"uz\", \"t\": { \"Any link\": { \"v\": [\"Har qanday havola\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Any link\": { \"v\": [\"任何链接\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Any link\": { \"v\": [\"任何連結\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Any link\": { \"v\": [\"任何連結\"] } } }];\nconst t9 = [{ \"l\": \"ar\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"أيّ مادة تمت مشاركتها مع نفس المجموعة من الأشخاص سيتم عرضها هنا\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"خطأ في الحصول على الموارد ذات الصلة. يرجى الاتصال بمشرف النظام عندك إذا كان لديك أيّ أسئلة.\"] }, \"Related resources\": { \"v\": [\"مصادر ذات صلة\"] } } }, { \"l\": \"ast\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Equí va apaecer tolo que compartas col mesmu grupu de persones\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Hebo un error al consiguir los recursos rellacionaos. Ponte en contautu col alministrador del sistema si tienes dalguna entruga.\"] }, \"Related resources\": { \"v\": [\"Recursos rellacionao\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Qualsevol cosa compartida amb el mateix grup de persones es mostrarà aquí\"] }, \"Related resources\": { \"v\": [\"Recursos relacionats\"] } } }, { \"l\": \"cs\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Cokoli nasdíleného stejné skupině lidí se zobrazí zde\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Chyba při získávání souvisejících prostředků. Pokud máte jakékoli dotazy, obraťte se na správce vámi využívaného systému.\"] }, \"Related resources\": { \"v\": [\"Související prostředky\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Cokoli nasdíleného stejné skupině lidí se zobrazí zde\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Chyba při získávání souvisejících prostředků. Pokud máte jakékoli dotazy, obraťte se na správce vámi využívaného systému.\"] }, \"Related resources\": { \"v\": [\"Související prostředky\"] } } }, { \"l\": \"da\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Alt der deles med samme gruppe af personer vil vises her\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Fejl ved hentning af relaterede ressourcer. Kontakt venligst din systemadministrator, hvis du har spørgsmål.\"] }, \"Related resources\": { \"v\": [\"Relaterede emner\"] } } }, { \"l\": \"de\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Alles, das mit derselben Gruppe von Personen geteilt wird, wird hier angezeigt\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Fehler beim Abrufen verwandter Ressourcen. Bei Fragen wende dich bitte an deinen Systemadministrator.\"] }, \"Related resources\": { \"v\": [\"Verwandte Ressourcen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Alles, das mit derselben Gruppe von Personen geteilt wird, wird hier angezeigt\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Fehler beim Abrufen verwandter Ressourcen. Bei Fragen wenden Sie sich bitte an Ihre Systemadministration.\"] }, \"Related resources\": { \"v\": [\"Verwandte Ressourcen\"] } } }, { \"l\": \"el\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Οτιδήποτε μοιράζεται με την ίδια ομάδα ατόμων θα εμφανίζεται εδώ\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Σφάλμα λήψης σχετικών πόρων. Παρακαλούμε επικοινωνήστε με τον διαχειριστή του συστήματός σας εάν έχετε οποιεσδήποτε ερωτήσεις.\"] }, \"Related resources\": { \"v\": [\"Σχετικοί πόροι\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Anything shared with the same group of people will show up here\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Error getting related resources. Please contact your system administrator if you have any questions.\"] }, \"Related resources\": { \"v\": [\"Related resources\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Cualquier cosa que esté compartida con el mismo grupo de personas se mostrará aquí\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Error al obtener recursos relacionados. Por favor, contacte a su administrador del sistema si tiene alguna pregunta.\"] }, \"Related resources\": { \"v\": [\"Recursos relacionados\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Cualquier cosa compartida con el mismo grupo de personas aparecerá aquí.\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Error al obtener recursos relacionados. Por favor, contacte a su administrador del sistema si tiene alguna pregunta.\"] }, \"Related resources\": { \"v\": [\"Recursos relacionados\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Cualquier cosa compartida con el mismo grupo de personas aparecerá aquí.\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Error al obtener recursos relacionados. Por favor, contacta a tu administrador del sistema si tienes alguna pregunta.\"] }, \"Related resources\": { \"v\": [\"Recursos relacionados\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Todo lo que se comparta con el mismo grupo de personas se mostrará aquí\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Error al obtener recursos relacionados. Por favor contacte al administrador si tiene alguna pregunta.\"] }, \"Related resources\": { \"v\": [\"Recursos relacionados\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Siin kuvatakse kõik, mida jagatakse sama kasutajagrupiga\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Viga seotud ressursside saamisel. Küsimuste korral võtke ühendust oma süsteemiadministraatoriga.\"] }, \"Related resources\": { \"v\": [\"Seotud ressursid\"] } } }, { \"l\": \"eu\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Pertsona-talde berarekin partekatutako edozer agertuko da hemen\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Errore bat gertatu da erlazionatutako baliabideak eskuratzean. Jarri harremanetan zure sistemaren administratzailearekin galderarik baduzu.\"] }, \"Related resources\": { \"v\": [\"Erlazionatutako baliabideak\"] } } }, { \"l\": \"fa\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"هر چیزی که با گروه مشابهی هم‌رسانی شود در این قسمت نمایش می‌یابد\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"خطا در دریافت منابع مرتبط. لطفاً در صورت داشتن هر گونه سؤال با مدیر سیستم خود تماس بگیرید.\"] }, \"Related resources\": { \"v\": [\"منابع مرتبط\"] } } }, { \"l\": \"fi\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Kaikki saman ryhmän kesken jaettu näkyy tässä\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Virhe resurssien haussa. Ota yhteyttä järjestelmän ylläpitäjään, mikäli sinulla on kysyttävää.\"] }, \"Related resources\": { \"v\": [\"Liittyvät resurssit\"] } } }, { \"l\": \"fr\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Tout ce qui est partagé avec le même groupe de personnes apparaîtra ici\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Erreur lors de la récupération des ressources liées. Contactez votre administrateur système pour répondre à vos éventuelles questions.\"] }, \"Related resources\": { \"v\": [\"Ressources liées\"] } } }, { \"l\": \"ga\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Taispeánfar aon rud a roinntear leis an ngrúpa céanna daoine anseo\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Earráid agus acmhainní gaolmhara á bhfáil. Déan teagmháil le riarthóir do chórais má tá aon cheist agat.\"] }, \"Related resources\": { \"v\": [\"Acmhainní gaolmhara\"] } } }, { \"l\": \"gl\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Todo o que se comparta co mesmo grupo de persoas aparecerá aquí\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Produciuse un erro ao obter os recursos relacionados. Póñase en contacto coa administración do seu sistema se ten algunha dúbida.\"] }, \"Related resources\": { \"v\": [\"Recursos relacionados\"] } } }, { \"l\": \"he\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"כל מה שמשותף עם אותה קבוצת האנשים יופיע כאן\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"שגיאה בקבלת המשאבים הקשורים. נא ליצור קשר עם הנהלת המערכת אם יש לך שאלות.\"] }, \"Related resources\": { \"v\": [\"משאבים קשורים\"] } } }, { \"l\": \"hu\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Minden, amit ugyanazzal a csoporttal oszt meg, itt fog megjelenni\"] }, \"Related resources\": { \"v\": [\"Kapcsolódó erőforrások\"] } } }, { \"l\": \"id\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Apa pun yang dibagikan dengan grup orang yang sama akan muncul di sini\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Kesalahan saat mengambil sumber daya terkait. Hubungi administrator sistem Anda jika ada pertanyaan.\"] }, \"Related resources\": { \"v\": [\"Sumber daya terkait\"] } } }, { \"l\": \"is\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Allt sem deilt er með sama hópi fólks mun birtast hér\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Villa við að sækja tengd tilföng. Hafðu samband við kerfisstjórann þinn ef þú ert með einhverjar spurningar.\"] }, \"Related resources\": { \"v\": [\"Tengd tilföng\"] } } }, { \"l\": \"it\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Tutto ciò che è stato condiviso con lo stesso gruppo di persone viene visualizzato qui\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Errore nell'ottenere le risorse correlate. Per qualsiasi domanda, contattare l'amministratore di sistema.\"] }, \"Related resources\": { \"v\": [\"Risorse correlate\"] } } }, { \"l\": \"ja\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"同じグループで共有しているものは、全てここに表示されます\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"関連リソースの取得エラー。ご不明な点がございましたら、システム管理者にお問い合わせください。\"] }, \"Related resources\": { \"v\": [\"関連リソース\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"同じグループで共有しているものは、全てここに表示されます\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"関連リソースの取得エラー。ご不明な点がございましたら、システム管理者にお問い合わせください。\"] }, \"Related resources\": { \"v\": [\"関連リソース\"] } } }, { \"l\": \"ko\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"같은 그룹의 사용자와 공유된 모든 것들이 이곳에 나타납니다.\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"관련 리소스를 가져오는 중 오류가 발생했습니다. 궁금한 것이 있는 경우 시스템 관리자에게 연락해 주세요.\"] }, \"Related resources\": { \"v\": [\"관련 리소스\"] } } }, { \"l\": \"lo\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"ທຸກຢ່າງທີ່ແບ່ງປັນກັບກຸ່ມຄົນດຽວກັນຈະສະແດງຢູ່ບ່ອນນີ້\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"ເກີດຂໍ້ຜິດພາດໃນການເອີ້ນຂໍ້ມູນຊັບພະຍາກອນທີ່ກ່ຽວຂ້ອງ. ກະລຸນາຕິດຕໍ່ຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານ ຖ້າທ່ານມີຄຳຖາມ.\"] }, \"Related resources\": { \"v\": [\"ຊັບພະຍາກອນທີ່ກ່ຽວຂ້ອງ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Сè што е споделено со истата група луѓе ќе се појави овде\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Грешка при добивање поврзани ресурси. Ве молиме контактирајте го вашиот систем администратор ако имате прашања.\"] }, \"Related resources\": { \"v\": [\"Поврзани ресурси\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Alt som er delt med den samme gruppen vil vises her\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Feil ved henting av relaterte ressurser. Kontakt systemansvarlig hvis du har spørsmål.\"] }, \"Related resources\": { \"v\": [\"Relaterte ressurser\"] } } }, { \"l\": \"nl\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Alles dat gedeeld is met dezelfde groep mensen zal hier getoond worden\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Fout bij het ophalen van gerelateerde bronnen. Neem contact op met uw systeembeheerder als u vragen heeft.\"] }, \"Related resources\": { \"v\": [\"Gerelateerde bronnen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Tutaj pojawi się wszystko, co zostało udostępnione tej samej grupie osób\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Błąd podczas pobierania powiązanych zasobów. Jeśli masz jakiekolwiek pytania, skontaktuj się z administratorem systemu.\"] }, \"Related resources\": { \"v\": [\"Powiązane zasoby\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Qualquer coisa compartilhada com o mesmo grupo de pessoas aparecerá aqui\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Erro ao obter recursos relacionados. Por favor, entre em contato com o administrador do sistema se tiver alguma dúvida.\"] }, \"Related resources\": { \"v\": [\"Recursos relacionados\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Qualquer coisa partilhada com o mesmo grupo de pessoas irá aparecer aqui\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Erro ao obter os recursos relacionados. Por favor, contacte o administrador do sistema se tiver quaisquer perguntas.\"] }, \"Related resources\": { \"v\": [\"Recursos relacionados\"] } } }, { \"l\": \"ro\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Tot ceea ce este partajat cu același grup de persoane va fi afișat aici\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Eroare la preluarea resurselor adiționale. Vă rugăm să contactați administratorul pentru întrebări.\"] }, \"Related resources\": { \"v\": [\"Resurse legate\"] } } }, { \"l\": \"ru\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Всё, чем поделились с той же группой людей, будет отображаться здесь\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Ошибка при получении связанных ресурсов. Если у вас есть какие-либо вопросы, обратитесь к системному администратору.\"] }, \"Related resources\": { \"v\": [\"Связанные ресурсы\"] } } }, { \"l\": \"sk\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Tu sa zobrazí čokoľvek zdieľané s rovnakou skupinou ľudí\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Chyba pri získavaní súvisiacich zdrojov. V prípade otázok kontaktujte prosím svojho systemového administrátora.\"] }, \"Related resources\": { \"v\": [\"Súvisiace zdroje\"] } } }, { \"l\": \"sl\", \"t\": { \"Related resources\": { \"v\": [\"Povezani viri\"] } } }, { \"l\": \"sr\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Све што се дели са истом групом људи ће се појавити овде\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Грешка код прибављања везаних ресурса. Молимо вас да се обратите администратору ако имате питања.\"] }, \"Related resources\": { \"v\": [\"Повезани ресурси\"] } } }, { \"l\": \"sv\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Något som delats med samma grupp av personer kommer att visas här\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Det gick inte att hämta relaterade resurser. Kontakta din systemadministratör om du har några frågor.\"] }, \"Related resources\": { \"v\": [\"Relaterade resurser\"] } } }, { \"l\": \"tr\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Aynı kişi grubu ile paylaşılan herşey burada görüntülenir\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"İlgili kaynaklara ulaşılırken sorun çıktı. Herhangi bir sorunuz varsa lütfen sistem yöneticiniz ile görüşün \"] }, \"Related resources\": { \"v\": [\"İlgili kaynaklar\"] } } }, { \"l\": \"uk\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Будь-що доступне для цієї же групи людей буде показано тут\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Помилка під час отримання пов'язаних ресурсів. Будь ласка, сконтактуйте з системним адміністратором, якщо у вас виникли запитання.\"] }, \"Related resources\": { \"v\": [\"Пов'язані ресурси\"] } } }, { \"l\": \"uz\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Xuddi shu guruhdagi odamlarga ulashilgan hamma narsa shu yerda chiqadi\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Tegishli manbalarni olishda xatolik yuz berdi. Savollaringiz bo'lsa, tizim administratoriga murojaat qiling.\"] }, \"Related resources\": { \"v\": [\"Tegishli manbalar\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"与同组用户分享的所有内容都会显示于此\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"获取相关资源出现错误。如果你有任何问题,请联系系统管理员。\"] }, \"Related resources\": { \"v\": [\"相关资源\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"與同一組人共享的任何內容都會顯示在此處\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"取得相關資源時發生錯誤。如果有任何問題,請聯絡系統管理員。\"] }, \"Related resources\": { \"v\": [\"相關資源\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"與相同群組分享的所有內容都會顯示於此\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"取得相關資源時發生錯誤。如果有任何問題,請聯絡系統管理員。\"] }, \"Related resources\": { \"v\": [\"相關資源\"] } } }];\nconst t10 = [{ \"l\": \"ar\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"صورة الملف الشخصي الرمزية لــ {displayName} \"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"صورة الملف الشخصي الرمزية لــ {displayName}، {status}\"] } } }, { \"l\": \"ast\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de: {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de: {displayName}, {status}\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"cs\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Zástupný obrázek uživatele {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Zástupný obrázek uživatele {displayName}, {status}\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Zástupný obrázek uživatele {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Zástupný obrázek uživatele {displayName}, {status}\"] } } }, { \"l\": \"da\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar af {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar af {displayName}, {status}\"] } } }, { \"l\": \"de\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar von {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar von {displayName}, {status}\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar von {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar von {displayName}, {status}\"] } } }, { \"l\": \"el\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Άβαταρ του {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Άβαταρ του {displayName}, {status}\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar of {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar of {displayName}, {status}\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar {displayName}, {status}\"] } } }, { \"l\": \"eu\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName}-(e)n irudia\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName} -(e)n irudia, {status}\"] } } }, { \"l\": \"fa\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"آواتار {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"آواتار {displayName} ، {status}\"] } } }, { \"l\": \"fi\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName}n avatar\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}n avatar, {status}\"] } } }, { \"l\": \"fr\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"ga\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"gl\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"he\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"תמונה ייצוגית של {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"תמונה ייצוגית של {displayName}, {status}\"] } } }, { \"l\": \"hu\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} profilképe\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName} profilképe, {status}\"] } } }, { \"l\": \"id\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar {displayName}, {status}\"] } } }, { \"l\": \"is\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Auðkennismynd fyrir {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Auðkennismynd fyrir {displayName}, {status}\"] } } }, { \"l\": \"it\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar di {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar di {displayName}, {status}\"] } } }, { \"l\": \"ja\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} のアバター\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}, {status} のアバター\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} のアバター\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}, {status} のアバター\"] } } }, { \"l\": \"ko\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName}님의 아바타\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}, {status}님의 아바타\"] } } }, { \"l\": \"lo\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"ຮູບແທນຕົວຂອງ {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"ຮູບແທນຕົວຂອງ {displayName}, {status}\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Аватар на {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Аватар на {displayName}, {status}\"] } } }, { \"l\": \"my\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} ၏ ကိုယ်ပွား\"] } } }, { \"l\": \"nb\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avataren til {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}'s avatar, {status}\"] } } }, { \"l\": \"nl\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar van {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar van {displayName}, {status}\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Awatar {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Awatar {displayName}, {status}\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"ro\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatarul lui {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatarul lui {displayName}, {status}\"] } } }, { \"l\": \"ru\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Аватар {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Фотография {displayName}, {status}\"] } } }, { \"l\": \"sk\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar {displayName}, {status}\"] } } }, { \"l\": \"sl\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Podoba {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Prikazna slika {displayName}, {status}\"] } } }, { \"l\": \"sr\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Аватар за {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar za {displayName}, {status}\"] } } }, { \"l\": \"sv\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName}s avatar\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}s avatar, {status}\"] } } }, { \"l\": \"tr\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} avatarı\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}, {status} avatarı\"] } } }, { \"l\": \"uk\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Аватар {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Аватар {displayName}, {status}\"] } } }, { \"l\": \"uz\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\" {displayName}Avatari\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}, {status} Avatari\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName}的头像\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}的头像,{status}\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} 的頭像\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName} 的頭像,{status}\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} 的大頭照\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}, {status} 的大頭照\"] } } }];\nconst t11 = [{ \"l\": \"ar\", \"t\": { \"away\": { \"v\": [\"غير موجود\"] }, \"busy\": { \"v\": [\"مشغول\"] }, \"do not disturb\": { \"v\": [\"يُرجى عدم الإزعاج\"] }, \"invisible\": { \"v\": [\"غير مرئي\"] }, \"offline\": { \"v\": [\"غير متصل\"] }, \"online\": { \"v\": [\"متصل\"] } } }, { \"l\": \"ast\", \"t\": { \"away\": { \"v\": [\"ausente\"] }, \"busy\": { \"v\": [\"ocupáu\"] }, \"do not disturb\": { \"v\": [\"nun molestar\"] }, \"invisible\": { \"v\": [\"invisible\"] }, \"offline\": { \"v\": [\"desconectáu\"] }, \"online\": { \"v\": [\"en llinia\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"away\": { \"v\": [\"pryč\"] }, \"busy\": { \"v\": [\"zaneprádněn(a)\"] }, \"do not disturb\": { \"v\": [\"nerušit\"] }, \"invisible\": { \"v\": [\"neviditelné\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"away\": { \"v\": [\"pryč\"] }, \"busy\": { \"v\": [\"zaneprádněn(a)\"] }, \"do not disturb\": { \"v\": [\"nerušit\"] }, \"invisible\": { \"v\": [\"neviditelné\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"da\", \"t\": { \"away\": { \"v\": [\"væk\"] }, \"busy\": { \"v\": [\"optaget\"] }, \"do not disturb\": { \"v\": [\"forstyr ikke\"] }, \"invisible\": { \"v\": [\"usynlig\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"de\", \"t\": { \"away\": { \"v\": [\"Abwesend\"] }, \"busy\": { \"v\": [\"Beschäftigt\"] }, \"do not disturb\": { \"v\": [\"Bitte nicht stören\"] }, \"invisible\": { \"v\": [\"Unsichtbar\"] }, \"offline\": { \"v\": [\"Offline\"] }, \"online\": { \"v\": [\"Online\"] } } }, { \"l\": \"de-DE\", \"t\": { \"away\": { \"v\": [\"Abwesend\"] }, \"busy\": { \"v\": [\"Beschäftigt\"] }, \"do not disturb\": { \"v\": [\"Bitte nicht stören\"] }, \"invisible\": { \"v\": [\"Unsichtbar\"] }, \"offline\": { \"v\": [\"Offline\"] }, \"online\": { \"v\": [\"Online\"] } } }, { \"l\": \"el\", \"t\": { \"away\": { \"v\": [\"μακριά\"] }, \"busy\": { \"v\": [\"απασχολημένος\"] }, \"do not disturb\": { \"v\": [\"μην ενοχλείτε\"] }, \"invisible\": { \"v\": [\"αόρατο\"] }, \"offline\": { \"v\": [\"εκτός σύνδεσης\"] }, \"online\": { \"v\": [\"συνδεδεμένος\"] } } }, { \"l\": \"en-GB\", \"t\": { \"away\": { \"v\": [\"away\"] }, \"busy\": { \"v\": [\"busy\"] }, \"do not disturb\": { \"v\": [\"do not disturb\"] }, \"invisible\": { \"v\": [\"invisible\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"away\": { \"v\": [\"ausente\"] }, \"busy\": { \"v\": [\"ocupado\"] }, \"do not disturb\": { \"v\": [\"no molestar\"] }, \"invisible\": { \"v\": [\"invisible\"] }, \"offline\": { \"v\": [\"fuera de línea\"] }, \"online\": { \"v\": [\"en línea\"] } } }, { \"l\": \"es-AR\", \"t\": { \"away\": { \"v\": [\"ausente\"] }, \"busy\": { \"v\": [\"ocupado\"] }, \"do not disturb\": { \"v\": [\"no molestar\"] }, \"invisible\": { \"v\": [\"invisible\"] }, \"offline\": { \"v\": [\"desconectado\"] }, \"online\": { \"v\": [\"en línea\"] } } }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": { \"away\": { \"v\": [\"ausente\"] }, \"busy\": { \"v\": [\"ocupado\"] }, \"do not disturb\": { \"v\": [\"no molestar\"] }, \"invisible\": { \"v\": [\"invisible\"] }, \"offline\": { \"v\": [\"fuera de línea\"] }, \"online\": { \"v\": [\"en línea\"] } } }, { \"l\": \"et-EE\", \"t\": { \"away\": { \"v\": [\"eemal\"] }, \"busy\": { \"v\": [\"hõivatud\"] }, \"do not disturb\": { \"v\": [\"ära sega\"] }, \"invisible\": { \"v\": [\"nähtamatu\"] }, \"offline\": { \"v\": [\"pole võrgus\"] }, \"online\": { \"v\": [\"võrgus\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"away\": { \"v\": [\"دور از دستگاه\"] }, \"busy\": { \"v\": [\"مشغول\"] }, \"do not disturb\": { \"v\": [\"مزاحم نشوید\"] }, \"invisible\": { \"v\": [\"مخفی\"] }, \"offline\": { \"v\": [\"برون‌خط\"] }, \"online\": { \"v\": [\"برخط\"] } } }, { \"l\": \"fi\", \"t\": { \"away\": { \"v\": [\"poissa\"] }, \"busy\": { \"v\": [\"varattu\"] }, \"do not disturb\": { \"v\": [\"älä häiritse\"] }, \"invisible\": { \"v\": [\"näkymätön\"] }, \"offline\": { \"v\": [\"ei linjalla\"] }, \"online\": { \"v\": [\"linjalla\"] } } }, { \"l\": \"fr\", \"t\": { \"away\": { \"v\": [\"absent\"] }, \"busy\": { \"v\": [\"occupé\"] }, \"do not disturb\": { \"v\": [\"ne pas déranger\"] }, \"invisible\": { \"v\": [\"invisible\"] }, \"offline\": { \"v\": [\"hors ligne\"] }, \"online\": { \"v\": [\"en ligne\"] } } }, { \"l\": \"ga\", \"t\": { \"away\": { \"v\": [\"ar shiúl\"] }, \"busy\": { \"v\": [\"gnóthach\"] }, \"do not disturb\": { \"v\": [\"ná cur as\"] }, \"invisible\": { \"v\": [\"dofheicthe\"] }, \"offline\": { \"v\": [\"as líne\"] }, \"online\": { \"v\": [\"ar líne\"] } } }, { \"l\": \"gl\", \"t\": { \"away\": { \"v\": [\"ausente\"] }, \"busy\": { \"v\": [\"ocupado\"] }, \"do not disturb\": { \"v\": [\"non molestar\"] }, \"invisible\": { \"v\": [\"invisíbel\"] }, \"offline\": { \"v\": [\"desconectado\"] }, \"online\": { \"v\": [\"conectado\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": { \"away\": { \"v\": [\"tidak tersedia\"] }, \"do not disturb\": { \"v\": [\"jangan ganggu\"] }, \"offline\": { \"v\": [\"luring\"] }, \"online\": { \"v\": [\"daring\"] } } }, { \"l\": \"is\", \"t\": { \"away\": { \"v\": [\"í burtu\"] }, \"busy\": { \"v\": [\"upptekin/n\"] }, \"do not disturb\": { \"v\": [\"ekki ónáða\"] }, \"invisible\": { \"v\": [\"ósýnilegt\"] }, \"offline\": { \"v\": [\"ónettengt\"] }, \"online\": { \"v\": [\"nettengt\"] } } }, { \"l\": \"it\", \"t\": { \"away\": { \"v\": [\"via\"] }, \"do not disturb\": { \"v\": [\"non disturbare\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"ja\", \"t\": { \"away\": { \"v\": [\"離れる\"] }, \"busy\": { \"v\": [\"ビジー\"] }, \"do not disturb\": { \"v\": [\"邪魔をしないでください\"] }, \"invisible\": { \"v\": [\"不可視\"] }, \"offline\": { \"v\": [\"オフライン\"] }, \"online\": { \"v\": [\"オンライン\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"away\": { \"v\": [\"離れる\"] }, \"busy\": { \"v\": [\"ビジー\"] }, \"do not disturb\": { \"v\": [\"邪魔をしないでください\"] }, \"invisible\": { \"v\": [\"不可視\"] }, \"offline\": { \"v\": [\"オフライン\"] }, \"online\": { \"v\": [\"オンライン\"] } } }, { \"l\": \"ko\", \"t\": { \"away\": { \"v\": [\"자리 비움\"] }, \"busy\": { \"v\": [\"바쁨\"] }, \"do not disturb\": { \"v\": [\"방해 금지\"] }, \"invisible\": { \"v\": [\"보이지 않음\"] }, \"offline\": { \"v\": [\"오프라인\"] }, \"online\": { \"v\": [\"온라인\"] } } }, { \"l\": \"lo\", \"t\": { \"away\": { \"v\": [\"ບໍ່ຢູ່\"] }, \"busy\": { \"v\": [\"ບໍ່ວ່າງ\"] }, \"do not disturb\": { \"v\": [\"ຫ້າມລົບກວນ\"] }, \"invisible\": { \"v\": [\"ບໍ່ສະແດງ\"] }, \"offline\": { \"v\": [\"ອອບໄລນ໌\"] }, \"online\": { \"v\": [\"ອອນໄລນ໌\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"away\": { \"v\": [\"оддалечен\"] }, \"busy\": { \"v\": [\"зафатен\"] }, \"do not disturb\": { \"v\": [\"не вознемирувај\"] }, \"invisible\": { \"v\": [\"невидливо\"] }, \"offline\": { \"v\": [\"офлајн\"] }, \"online\": { \"v\": [\"онлајн\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"away\": { \"v\": [\"borte\"] }, \"busy\": { \"v\": [\"opptatt\"] }, \"do not disturb\": { \"v\": [\"ikke forstyrr\"] }, \"invisible\": { \"v\": [\"usynlig\"] }, \"offline\": { \"v\": [\"frakoblet\"] }, \"online\": { \"v\": [\"tilkoblet\"] } } }, { \"l\": \"nl\", \"t\": { \"away\": { \"v\": [\"weg\"] }, \"busy\": { \"v\": [\"bezig\"] }, \"do not disturb\": { \"v\": [\"niet storen\"] }, \"invisible\": { \"v\": [\"Onzichtbaar\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"away\": { \"v\": [\"stąd\"] }, \"busy\": { \"v\": [\"zajęty\"] }, \"do not disturb\": { \"v\": [\"nie przeszkadzać\"] }, \"invisible\": { \"v\": [\"niewidzialny\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"away\": { \"v\": [\"ausente\"] }, \"busy\": { \"v\": [\"ocupado\"] }, \"do not disturb\": { \"v\": [\"não perturbe\"] }, \"invisible\": { \"v\": [\"invisível\"] }, \"offline\": { \"v\": [\"off-line\"] }, \"online\": { \"v\": [\"on-line\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"away\": { \"v\": [\"longe\"] }, \"busy\": { \"v\": [\"ocupado\"] }, \"do not disturb\": { \"v\": [\"não incomodar\"] }, \"invisible\": { \"v\": [\"invisível\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"ro\", \"t\": { \"away\": { \"v\": [\"plecat\"] }, \"do not disturb\": { \"v\": [\"nu deranjați\"] }, \"offline\": { \"v\": [\"deconectat\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"ru\", \"t\": { \"away\": { \"v\": [\"отсутствие\"] }, \"busy\": { \"v\": [\"занятый\"] }, \"do not disturb\": { \"v\": [\"не беспокоить\"] }, \"invisible\": { \"v\": [\"невидимый\"] }, \"offline\": { \"v\": [\"офлайн\"] }, \"online\": { \"v\": [\"онлайн\"] } } }, { \"l\": \"sk\", \"t\": { \"away\": { \"v\": [\"neprítomný\"] }, \"busy\": { \"v\": [\"zaneprázdnený\"] }, \"do not disturb\": { \"v\": [\"nerušiť\"] }, \"invisible\": { \"v\": [\"neviditeľný\"] }, \"offline\": { \"v\": [\"Odpojený - offline\"] }, \"online\": { \"v\": [\"Pripojený - online\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"away\": { \"v\": [\"одсутан\"] }, \"busy\": { \"v\": [\"заузет\"] }, \"do not disturb\": { \"v\": [\"не узнемиравај\"] }, \"invisible\": { \"v\": [\"невидљиво\"] }, \"offline\": { \"v\": [\"ван мреже\"] }, \"online\": { \"v\": [\"на мрежи\"] } } }, { \"l\": \"sv\", \"t\": { \"away\": { \"v\": [\"borta\"] }, \"busy\": { \"v\": [\"upptagen\"] }, \"do not disturb\": { \"v\": [\"stör ej\"] }, \"invisible\": { \"v\": [\"osynlig\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"tr\", \"t\": { \"away\": { \"v\": [\"Uzakta\"] }, \"busy\": { \"v\": [\"Meşgul\"] }, \"do not disturb\": { \"v\": [\"Rahatsız etmeyin\"] }, \"invisible\": { \"v\": [\"görünmez\"] }, \"offline\": { \"v\": [\"Çevrim dışı\"] }, \"online\": { \"v\": [\"Çevrim içi\"] } } }, { \"l\": \"uk\", \"t\": { \"away\": { \"v\": [\"відсутній\"] }, \"busy\": { \"v\": [\"зайнято\"] }, \"do not disturb\": { \"v\": [\"не турбувати\"] }, \"invisible\": { \"v\": [\"Невидимий\"] }, \"offline\": { \"v\": [\"не в мережі\"] }, \"online\": { \"v\": [\"в мережі\"] } } }, { \"l\": \"uz\", \"t\": { \"away\": { \"v\": [\"uzoqda\"] }, \"busy\": { \"v\": [\"band\"] }, \"do not disturb\": { \"v\": [\"bezovta qilmang\"] }, \"invisible\": { \"v\": [\"ko'rinmas\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"away\": { \"v\": [\"离开\"] }, \"busy\": { \"v\": [\"繁忙\"] }, \"do not disturb\": { \"v\": [\"请勿打扰\"] }, \"invisible\": { \"v\": [\"隐藏的\"] }, \"offline\": { \"v\": [\"离线\"] }, \"online\": { \"v\": [\"在线\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"away\": { \"v\": [\"離開\"] }, \"busy\": { \"v\": [\"忙碌\"] }, \"do not disturb\": { \"v\": [\"請勿打擾\"] }, \"invisible\": { \"v\": [\"隐藏的\"] }, \"offline\": { \"v\": [\"離線\"] }, \"online\": { \"v\": [\"在線\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"away\": { \"v\": [\"離開\"] }, \"busy\": { \"v\": [\"忙碌\"] }, \"do not disturb\": { \"v\": [\"請勿打擾\"] }, \"invisible\": { \"v\": [\"不可見\"] }, \"offline\": { \"v\": [\"離線\"] }, \"online\": { \"v\": [\"線上\"] } } }];\nconst t12 = [{ \"l\": \"ar\", \"t\": { \"Back to provider selection\": { \"v\": [\"عودة إلى اختيار المزوّد\"] }, \"Close Smart Picker\": { \"v\": [\"إغلاق المحدد الذكي\"] }, \"Smart Picker\": { \"v\": [\"اللاقط الذكي smart picker\"] } } }, { \"l\": \"ast\", \"t\": { \"Back to provider selection\": { \"v\": [\"Volver a la seleición de fornidores\"] }, \"Close Smart Picker\": { \"v\": [\"Zarrar la seleición intelixente\"] }, \"Smart Picker\": { \"v\": [\"Selector intelixente\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Back to provider selection\": { \"v\": [\"Zpět na výběr poskytovatele\"] }, \"Close Smart Picker\": { \"v\": [\"Zavřít inteligentní výběr\"] }, \"Smart Picker\": { \"v\": [\"Inteligentní výběr\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Back to provider selection\": { \"v\": [\"Zpět na výběr poskytovatele\"] }, \"Close Smart Picker\": { \"v\": [\"Zavřít inteligentní výběr\"] }, \"Smart Picker\": { \"v\": [\"Inteligentní výběr\"] } } }, { \"l\": \"da\", \"t\": { \"Back to provider selection\": { \"v\": [\"Tilbage til udbydervalg\"] }, \"Close Smart Picker\": { \"v\": [\"Luk Smart Vælger\"] }, \"Smart Picker\": { \"v\": [\"Smart Vælger\"] } } }, { \"l\": \"de\", \"t\": { \"Back to provider selection\": { \"v\": [\"Zurück zur Anbieterauswahl\"] }, \"Close Smart Picker\": { \"v\": [\"Smart Picker schließen\"] }, \"Smart Picker\": { \"v\": [\"Smart Picker\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Back to provider selection\": { \"v\": [\"Zurück zur Anbieterauswahl\"] }, \"Close Smart Picker\": { \"v\": [\"Smart Picker schließen\"] }, \"Smart Picker\": { \"v\": [\"Smart Picker\"] } } }, { \"l\": \"el\", \"t\": { \"Back to provider selection\": { \"v\": [\"Επιστροφή στην επιλογή παρόχου\"] }, \"Close Smart Picker\": { \"v\": [\"Κλείσιμο Έξυπνης Επιλογής\"] }, \"Smart Picker\": { \"v\": [\"Έξυπνη Επιλογή\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Back to provider selection\": { \"v\": [\"Back to provider selection\"] }, \"Close Smart Picker\": { \"v\": [\"Close Smart Picker\"] }, \"Smart Picker\": { \"v\": [\"Smart Picker\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Back to provider selection\": { \"v\": [\"Volver a la selección de proveedor\"] }, \"Close Smart Picker\": { \"v\": [\"Cerrar selector inteligente\"] }, \"Smart Picker\": { \"v\": [\"Selector inteligente\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Back to provider selection\": { \"v\": [\"Volver a la selección de proveedor\"] }, \"Close Smart Picker\": { \"v\": [\"Cerrar selector inteligente\"] }, \"Smart Picker\": { \"v\": [\"Selector inteligente\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Back to provider selection\": { \"v\": [\"Volver a la selección de proveedor\"] }, \"Close Smart Picker\": { \"v\": [\"Cerrar selector inteligente\"] }, \"Smart Picker\": { \"v\": [\"Selector inteligente\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Back to provider selection\": { \"v\": [\"Volver a la selección de proveedor\"] }, \"Close Smart Picker\": { \"v\": [\"Cerrar selector inteligente\"] }, \"Smart Picker\": { \"v\": [\"Selector inteligente\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Back to provider selection\": { \"v\": [\"Tagasi teenusepakkuja valiku juurde\"] }, \"Close Smart Picker\": { \"v\": [\"Sulge nutikas valija\"] }, \"Smart Picker\": { \"v\": [\"Nutikas valija\"] } } }, { \"l\": \"eu\", \"t\": { \"Back to provider selection\": { \"v\": [\"Itzuli hornitzaileen hautapenera\"] }, \"Close Smart Picker\": { \"v\": [\"Itxi hautatzaile adimenduna\"] }, \"Smart Picker\": { \"v\": [\"Hautatzaile adimenduna\"] } } }, { \"l\": \"fa\", \"t\": { \"Back to provider selection\": { \"v\": [\"بازگشت به انتخاب ارائه دهنده\"] }, \"Close Smart Picker\": { \"v\": [\"بستن انتخاب‌گر هوشمند\"] }, \"Smart Picker\": { \"v\": [\"انتخابگر هوشمند\"] } } }, { \"l\": \"fi\", \"t\": { \"Back to provider selection\": { \"v\": [\"Takaisin toimittajavalintaan\"] }, \"Close Smart Picker\": { \"v\": [\"Sulje älykas valitsin\"] }, \"Smart Picker\": { \"v\": [\"Älykäs valitsin\"] } } }, { \"l\": \"fr\", \"t\": { \"Back to provider selection\": { \"v\": [\"Revenir à la sélection du fournisseur\"] }, \"Close Smart Picker\": { \"v\": [\"Fermer le sélecteur intelligent\"] }, \"Smart Picker\": { \"v\": [\"Sélecteur intelligent\"] } } }, { \"l\": \"ga\", \"t\": { \"Back to provider selection\": { \"v\": [\"Ar ais go roghnú soláthróra\"] }, \"Close Smart Picker\": { \"v\": [\"Dún Piocálaí Cliste\"] }, \"Smart Picker\": { \"v\": [\"Roghnóir Cliste\"] } } }, { \"l\": \"gl\", \"t\": { \"Back to provider selection\": { \"v\": [\"Volver á selección do provedor\"] }, \"Close Smart Picker\": { \"v\": [\"Pechar o Selector intelixente\"] }, \"Smart Picker\": { \"v\": [\"Selector intelixente\"] } } }, { \"l\": \"he\", \"t\": { \"Back to provider selection\": { \"v\": [\"חזרה לבחירת ספק\"] }, \"Close Smart Picker\": { \"v\": [\"סגירת הבורר החכם\"] }, \"Smart Picker\": { \"v\": [\"בורר חכם\"] } } }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": { \"Back to provider selection\": { \"v\": [\"Kembali ke pemilihan penyedia\"] }, \"Close Smart Picker\": { \"v\": [\"Tutup Pemilih Cerdas\"] }, \"Smart Picker\": { \"v\": [\"Pemilih Cerdas\"] } } }, { \"l\": \"is\", \"t\": { \"Back to provider selection\": { \"v\": [\"Til baka í val á þjónustuveitu\"] }, \"Close Smart Picker\": { \"v\": [\"Loka snjall-veljara\"] }, \"Smart Picker\": { \"v\": [\"Snjall-veljari\"] } } }, { \"l\": \"it\", \"t\": { \"Back to provider selection\": { \"v\": [\"Torna alla selezione del provider\"] }, \"Close Smart Picker\": { \"v\": [\"Chiudere lo Smart Picker\"] }, \"Smart Picker\": { \"v\": [\"Picker intelligente\"] } } }, { \"l\": \"ja\", \"t\": { \"Back to provider selection\": { \"v\": [\"プロバイダーの選択に戻る\"] }, \"Close Smart Picker\": { \"v\": [\"スマートピッカーを閉じる\"] }, \"Smart Picker\": { \"v\": [\"スマートピッカー\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Back to provider selection\": { \"v\": [\"プロバイダーの選択に戻る\"] }, \"Close Smart Picker\": { \"v\": [\"スマートピッカーを閉じる\"] }, \"Smart Picker\": { \"v\": [\"スマートピッカー\"] } } }, { \"l\": \"ko\", \"t\": { \"Back to provider selection\": { \"v\": [\"제공자 선택으로 돌아가기\"] }, \"Close Smart Picker\": { \"v\": [\"스마트 선택기 닫기\"] }, \"Smart Picker\": { \"v\": [\"스마트 선택기\"] } } }, { \"l\": \"lo\", \"t\": { \"Back to provider selection\": { \"v\": [\"ກັບໄປທີ່ການເລືອກຜູ້ໃຫ້ບໍລິການ\"] }, \"Close Smart Picker\": { \"v\": [\"ປິດໂຕເລືອກອັດສະລິຍະ\"] }, \"Smart Picker\": { \"v\": [\"ໂຕເລືອກອັດສະລິຍະ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Back to provider selection\": { \"v\": [\"Назад до избор на провајдер\"] }, \"Close Smart Picker\": { \"v\": [\"Затвори паметен избирач\"] }, \"Smart Picker\": { \"v\": [\"Паметен избирач\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Back to provider selection\": { \"v\": [\"Tilbake til leverandørvalg\"] }, \"Close Smart Picker\": { \"v\": [\"Lukk Smart Velger\"] }, \"Smart Picker\": { \"v\": [\"Smart Velger\"] } } }, { \"l\": \"nl\", \"t\": { \"Back to provider selection\": { \"v\": [\"Terug naar provider selectie\"] }, \"Close Smart Picker\": { \"v\": [\"Slimme Kiezer sluiten\"] }, \"Smart Picker\": { \"v\": [\"Slimme Kiezer\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Back to provider selection\": { \"v\": [\"Powrót do wyboru dostawcy\"] }, \"Close Smart Picker\": { \"v\": [\"Zamknij inteligentny selektor\"] }, \"Smart Picker\": { \"v\": [\"Inteligentne wybieranie\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Back to provider selection\": { \"v\": [\"Voltar para seleção de provedor\"] }, \"Close Smart Picker\": { \"v\": [\"Fechar Seletor Inteligente\"] }, \"Smart Picker\": { \"v\": [\"Seletor Inteligente\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Back to provider selection\": { \"v\": [\"Voltar à seleção de fornecedor\"] }, \"Close Smart Picker\": { \"v\": ['Fechar \"Smart Picker\"'] }, \"Smart Picker\": { \"v\": [\"Smart Picker\"] } } }, { \"l\": \"ro\", \"t\": { \"Back to provider selection\": { \"v\": [\"Înapoi la selecția providerului\"] }, \"Close Smart Picker\": { \"v\": [\"Închide Smart Picker\"] }, \"Smart Picker\": { \"v\": [\"Smart Picker\"] } } }, { \"l\": \"ru\", \"t\": { \"Back to provider selection\": { \"v\": [\"Вернуться к выбору провайдера\"] }, \"Close Smart Picker\": { \"v\": [\"Закрыть интеллектуальный выбор\"] }, \"Smart Picker\": { \"v\": [\"Умный выбор\"] } } }, { \"l\": \"sk\", \"t\": { \"Back to provider selection\": { \"v\": [\"Späť na výber poskytovateľa\"] }, \"Close Smart Picker\": { \"v\": [\"Zavrieť inteligentný výber\"] }, \"Smart Picker\": { \"v\": [\"Inteligentný výber\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Back to provider selection\": { \"v\": [\"Назад на избор пружаоца\"] }, \"Close Smart Picker\": { \"v\": [\"Затвори паметни бирач\"] }, \"Smart Picker\": { \"v\": [\"Паметни бирач\"] } } }, { \"l\": \"sv\", \"t\": { \"Back to provider selection\": { \"v\": [\"Tillbaka till leverantörsval\"] }, \"Close Smart Picker\": { \"v\": [\"Stäng Smart Picker\"] }, \"Smart Picker\": { \"v\": [\"Smart Picker\"] } } }, { \"l\": \"tr\", \"t\": { \"Back to provider selection\": { \"v\": [\"Hizmet sağlayıcı seçimine dön\"] }, \"Close Smart Picker\": { \"v\": [\"Akıllı seçimi kapat\"] }, \"Smart Picker\": { \"v\": [\"Akıllı seçim\"] } } }, { \"l\": \"uk\", \"t\": { \"Back to provider selection\": { \"v\": [\"Назад до вибору постачальника\"] }, \"Close Smart Picker\": { \"v\": [\"Закрити асистент вибору\"] }, \"Smart Picker\": { \"v\": [\"Асистент вибору\"] } } }, { \"l\": \"uz\", \"t\": { \"Back to provider selection\": { \"v\": [\"Provayder tanloviga qaytish\"] }, \"Close Smart Picker\": { \"v\": [\"Smart Picker-ni yoping\"] }, \"Smart Picker\": { \"v\": [\"Aqlli tanlovchi\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Back to provider selection\": { \"v\": [\"返回至提供者选择列表\"] }, \"Close Smart Picker\": { \"v\": [\"关闭智能拾取器\"] }, \"Smart Picker\": { \"v\": [\"智能拾取器\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Back to provider selection\": { \"v\": [\"回到提供者選擇\"] }, \"Close Smart Picker\": { \"v\": [\"關閉 Smart Picker\"] }, \"Smart Picker\": { \"v\": [\"Smart Picker\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Back to provider selection\": { \"v\": [\"回到提供者選擇\"] }, \"Close Smart Picker\": { \"v\": [\"關閉智慧型挑選器\"] }, \"Smart Picker\": { \"v\": [\"智慧型挑選器\"] } } }];\nconst t14 = [{ \"l\": \"ar\", \"t\": { \"Cancel changes\": { \"v\": [\"إلغاء التغييرات\"] }, \"Confirm changes\": { \"v\": [\"تأكيد التغييرات\"] } } }, { \"l\": \"ast\", \"t\": { \"Cancel changes\": { \"v\": [\"Encaboxar los cambeos\"] }, \"Confirm changes\": { \"v\": [\"Confirmar los cambeos\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancel·la els canvis\"] }, \"Confirm changes\": { \"v\": [\"Confirmeu els canvis\"] } } }, { \"l\": \"cs\", \"t\": { \"Cancel changes\": { \"v\": [\"Zrušit změny\"] }, \"Confirm changes\": { \"v\": [\"Potvrdit změny\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Cancel changes\": { \"v\": [\"Zrušit změny\"] }, \"Confirm changes\": { \"v\": [\"Potvrdit změny\"] } } }, { \"l\": \"da\", \"t\": { \"Cancel changes\": { \"v\": [\"Annuller ændringer\"] }, \"Confirm changes\": { \"v\": [\"Bekræft ændringer\"] } } }, { \"l\": \"de\", \"t\": { \"Cancel changes\": { \"v\": [\"Änderungen verwerfen\"] }, \"Confirm changes\": { \"v\": [\"Änderungen bestätigen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Cancel changes\": { \"v\": [\"Änderungen verwerfen\"] }, \"Confirm changes\": { \"v\": [\"Änderungen bestätigen\"] } } }, { \"l\": \"el\", \"t\": { \"Cancel changes\": { \"v\": [\"Ακύρωση αλλαγών\"] }, \"Confirm changes\": { \"v\": [\"Επιβεβαίωση αλλαγών\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancel changes\"] }, \"Confirm changes\": { \"v\": [\"Confirm changes\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancelar cambios\"] }, \"Confirm changes\": { \"v\": [\"Confirmar cambios\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancelar cambios\"] }, \"Confirm changes\": { \"v\": [\"Confirmar cambios\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancelar cambios\"] }, \"Confirm changes\": { \"v\": [\"Confirmar cambios\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancelar cambios\"] }, \"Confirm changes\": { \"v\": [\"Confirmar cambios\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Cancel changes\": { \"v\": [\"Tühista muudatused\"] }, \"Confirm changes\": { \"v\": [\"Kinnitage muudatused\"] } } }, { \"l\": \"eu\", \"t\": { \"Cancel changes\": { \"v\": [\"Ezeztatu aldaketak\"] }, \"Confirm changes\": { \"v\": [\"Baieztatu aldaketak\"] } } }, { \"l\": \"fa\", \"t\": { \"Cancel changes\": { \"v\": [\"لغو تغییرات\"] }, \"Confirm changes\": { \"v\": [\"تایید تغییرات\"] } } }, { \"l\": \"fi\", \"t\": { \"Cancel changes\": { \"v\": [\"Peruuta muutokset\"] }, \"Confirm changes\": { \"v\": [\"Vahvista muutokset\"] } } }, { \"l\": \"fr\", \"t\": { \"Cancel changes\": { \"v\": [\"Annuler les modifications\"] }, \"Confirm changes\": { \"v\": [\"Confirmer les modifications\"] } } }, { \"l\": \"ga\", \"t\": { \"Cancel changes\": { \"v\": [\"Cealaigh athruithe\"] }, \"Confirm changes\": { \"v\": [\"Deimhnigh na hathruithe\"] } } }, { \"l\": \"gl\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancelar os cambios\"] }, \"Confirm changes\": { \"v\": [\"Confirma os cambios\"] } } }, { \"l\": \"he\", \"t\": { \"Cancel changes\": { \"v\": [\"ביטול שינויים\"] }, \"Confirm changes\": { \"v\": [\"אישור השינויים\"] } } }, { \"l\": \"hu\", \"t\": { \"Cancel changes\": { \"v\": [\"Változtatások elvetése\"] }, \"Confirm changes\": { \"v\": [\"Változtatások megerősítése\"] } } }, { \"l\": \"id\", \"t\": { \"Cancel changes\": { \"v\": [\"Batalkan perubahan\"] }, \"Confirm changes\": { \"v\": [\"Konfirmasikan perubahan\"] } } }, { \"l\": \"is\", \"t\": { \"Cancel changes\": { \"v\": [\"Hætta við breytingar\"] }, \"Confirm changes\": { \"v\": [\"Staðfesta breytingar\"] } } }, { \"l\": \"it\", \"t\": { \"Cancel changes\": { \"v\": [\"Annulla modifiche\"] }, \"Confirm changes\": { \"v\": [\"Conferma modifiche\"] } } }, { \"l\": \"ja\", \"t\": { \"Cancel changes\": { \"v\": [\"変更をキャンセル\"] }, \"Confirm changes\": { \"v\": [\"変更を承認\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Cancel changes\": { \"v\": [\"変更をキャンセル\"] }, \"Confirm changes\": { \"v\": [\"変更を承認\"] } } }, { \"l\": \"ko\", \"t\": { \"Cancel changes\": { \"v\": [\"변경 취소\"] }, \"Confirm changes\": { \"v\": [\"변경 사항 확인\"] } } }, { \"l\": \"lo\", \"t\": { \"Cancel changes\": { \"v\": [\"ຍົກເລີກການປ່ຽນແປງ\"] }, \"Confirm changes\": { \"v\": [\"ຢືນຢັນການປ່ຽນແປງ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Cancel changes\": { \"v\": [\"Откажи ги промените\"] }, \"Confirm changes\": { \"v\": [\"Потврди ги промените\"] } } }, { \"l\": \"my\", \"t\": { \"Cancel changes\": { \"v\": [\"ပြောင်းလဲမှုများ ပယ်ဖျက်ရန်\"] }, \"Confirm changes\": { \"v\": [\"ပြောင်းလဲမှုများ အတည်ပြုရန်\"] } } }, { \"l\": \"nb\", \"t\": { \"Cancel changes\": { \"v\": [\"Avbryt endringer\"] }, \"Confirm changes\": { \"v\": [\"Bekreft endringer\"] } } }, { \"l\": \"nl\", \"t\": { \"Cancel changes\": { \"v\": [\"Wijzigingen annuleren\"] }, \"Confirm changes\": { \"v\": [\"Wijzigingen bevestigen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Cancel changes\": { \"v\": [\"Anuluj zmiany\"] }, \"Confirm changes\": { \"v\": [\"Potwierdź zmiany\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancelar alterações\"] }, \"Confirm changes\": { \"v\": [\"Confirmar alterações\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancelar alterações\"] }, \"Confirm changes\": { \"v\": [\"Confirmar alterações\"] } } }, { \"l\": \"ro\", \"t\": { \"Cancel changes\": { \"v\": [\"Anulează modificările\"] }, \"Confirm changes\": { \"v\": [\"Confirmați modificările\"] } } }, { \"l\": \"ru\", \"t\": { \"Cancel changes\": { \"v\": [\"Отменить изменения\"] }, \"Confirm changes\": { \"v\": [\"Подтвердить изменения\"] } } }, { \"l\": \"sk\", \"t\": { \"Cancel changes\": { \"v\": [\"Zrušiť zmeny\"] }, \"Confirm changes\": { \"v\": [\"Potvrdiť zmeny\"] } } }, { \"l\": \"sl\", \"t\": { \"Cancel changes\": { \"v\": [\"Prekliči spremembe\"] }, \"Confirm changes\": { \"v\": [\"Potrdi spremembe\"] } } }, { \"l\": \"sr\", \"t\": { \"Cancel changes\": { \"v\": [\"Откажи измене\"] }, \"Confirm changes\": { \"v\": [\"Потврдите измене\"] } } }, { \"l\": \"sv\", \"t\": { \"Cancel changes\": { \"v\": [\"Avbryt ändringar\"] }, \"Confirm changes\": { \"v\": [\"Bekräfta ändringar\"] } } }, { \"l\": \"tr\", \"t\": { \"Cancel changes\": { \"v\": [\"Değişiklikleri iptal et\"] }, \"Confirm changes\": { \"v\": [\"Değişiklikleri onayla\"] } } }, { \"l\": \"uk\", \"t\": { \"Cancel changes\": { \"v\": [\"Скасувати зміни\"] }, \"Confirm changes\": { \"v\": [\"Підтвердити зміни\"] } } }, { \"l\": \"uz\", \"t\": { \"Cancel changes\": { \"v\": [\"O'zgarishlarni bekor qilish\"] }, \"Confirm changes\": { \"v\": [\"O'zgarishlarni tasdiqlang\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Cancel changes\": { \"v\": [\"取消更改\"] }, \"Confirm changes\": { \"v\": [\"确认更改\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Cancel changes\": { \"v\": [\"取消更改\"] }, \"Confirm changes\": { \"v\": [\"確認更改\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Cancel changes\": { \"v\": [\"取消變更\"] }, \"Confirm changes\": { \"v\": [\"確認變更\"] } } }];\nconst t15 = [{ \"l\": \"ar\", \"t\": { \"Change name\": { \"v\": [\"تغيير الاسم\"] }, \"Close sidebar\": { \"v\": [\"قفل الشريط الجانبي\"] }, \"Favorite\": { \"v\": [\"المفضلة\"] }, \"Open sidebar\": { \"v\": [\"إفتَح الشريط الجانبي\"] } } }, { \"l\": \"ast\", \"t\": { \"Change name\": { \"v\": [\"Camudar el nome\"] }, \"Close sidebar\": { \"v\": [\"Zarrar la barra llateral\"] }, \"Favorite\": { \"v\": [\"Favoritu\"] }, \"Open sidebar\": { \"v\": [\"Abrir la barra llateral\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Close sidebar\": { \"v\": [\"Tancar la barra lateral\"] }, \"Favorite\": { \"v\": [\"Preferit\"] } } }, { \"l\": \"cs\", \"t\": { \"Change name\": { \"v\": [\"Změnit název\"] }, \"Close sidebar\": { \"v\": [\"Zavřít postranní panel\"] }, \"Favorite\": { \"v\": [\"Oblíbené\"] }, \"Open sidebar\": { \"v\": [\"Otevřít postranní panel\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Change name\": { \"v\": [\"Změnit název\"] }, \"Close sidebar\": { \"v\": [\"Zavřít postranní panel\"] }, \"Favorite\": { \"v\": [\"Oblíbené\"] } } }, { \"l\": \"da\", \"t\": { \"Change name\": { \"v\": [\"Ændre navn\"] }, \"Close sidebar\": { \"v\": [\"Luk sidepanel\"] }, \"Favorite\": { \"v\": [\"Favorit\"] }, \"Open sidebar\": { \"v\": [\"Åbn sidepanel\"] } } }, { \"l\": \"de\", \"t\": { \"Change name\": { \"v\": [\"Namen ändern\"] }, \"Close sidebar\": { \"v\": [\"Seitenleiste schließen\"] }, \"Favorite\": { \"v\": [\"Favorit\"] }, \"Open sidebar\": { \"v\": [\"Seitenleiste öffnen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Change name\": { \"v\": [\"Namen ändern\"] }, \"Close sidebar\": { \"v\": [\"Seitenleiste schließen\"] }, \"Favorite\": { \"v\": [\"Favorit\"] }, \"Open sidebar\": { \"v\": [\"Seitenleiste öffnen\"] } } }, { \"l\": \"el\", \"t\": { \"Change name\": { \"v\": [\"Αλλαγή ονόματος\"] }, \"Close sidebar\": { \"v\": [\"Κλείσιμο πλευρικής μπάρας\"] }, \"Favorite\": { \"v\": [\"Αγαπημένα\"] }, \"Open sidebar\": { \"v\": [\"Άνοιγμα πλευρικής μπάρας\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Change name\": { \"v\": [\"Change name\"] }, \"Close sidebar\": { \"v\": [\"Close sidebar\"] }, \"Favorite\": { \"v\": [\"Favourite\"] }, \"Open sidebar\": { \"v\": [\"Open sidebar\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Change name\": { \"v\": [\"Cambiar nombre\"] }, \"Close sidebar\": { \"v\": [\"Cerrar barra lateral\"] }, \"Favorite\": { \"v\": [\"Favorito\"] }, \"Open sidebar\": { \"v\": [\"Abrir barra lateral\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Change name\": { \"v\": [\"Cambiar nombre\"] }, \"Close sidebar\": { \"v\": [\"Cerrar barra lateral\"] }, \"Favorite\": { \"v\": [\"Favorito\"] }, \"Open sidebar\": { \"v\": [\"Abrir barra lateral\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Change name\": { \"v\": [\"Cambiar nombre\"] }, \"Close sidebar\": { \"v\": [\"Cerrar barra lateral\"] }, \"Favorite\": { \"v\": [\"Favorito\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Change name\": { \"v\": [\"Cambiar nombre\"] }, \"Close sidebar\": { \"v\": [\"Cerrar barra lateral\"] }, \"Favorite\": { \"v\": [\"Favorito\"] }, \"Open sidebar\": { \"v\": [\"Abrir barra lateral\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Change name\": { \"v\": [\"Muuda nime\"] }, \"Close sidebar\": { \"v\": [\"Sulge külgriba\"] }, \"Favorite\": { \"v\": [\"Lemmik\"] }, \"Open sidebar\": { \"v\": [\"Ava külgriba\"] } } }, { \"l\": \"eu\", \"t\": { \"Change name\": { \"v\": [\"Aldatu izena\"] }, \"Close sidebar\": { \"v\": [\"Itxi albo-barra\"] }, \"Favorite\": { \"v\": [\"Gogokoa\"] } } }, { \"l\": \"fa\", \"t\": { \"Change name\": { \"v\": [\"تغییر نام\"] }, \"Close sidebar\": { \"v\": [\"بستن نوار کناری\"] }, \"Favorite\": { \"v\": [\"مورد علاقه\"] }, \"Open sidebar\": { \"v\": [\"باز کردن نوار کنار\"] } } }, { \"l\": \"fi\", \"t\": { \"Change name\": { \"v\": [\"Vaihda nimi\"] }, \"Close sidebar\": { \"v\": [\"Sulje sivupalkki\"] }, \"Favorite\": { \"v\": [\"Suosikki\"] }, \"Open sidebar\": { \"v\": [\"Avaa sivupalkki\"] } } }, { \"l\": \"fr\", \"t\": { \"Change name\": { \"v\": [\"Modifier le nom\"] }, \"Close sidebar\": { \"v\": [\"Fermer la barre latérale\"] }, \"Favorite\": { \"v\": [\"Favori\"] }, \"Open sidebar\": { \"v\": [\"Ouvrir la barre latérale\"] } } }, { \"l\": \"ga\", \"t\": { \"Change name\": { \"v\": [\"Athrú ainm\"] }, \"Close sidebar\": { \"v\": [\"Dún barra taoibh\"] }, \"Favorite\": { \"v\": [\"is fearr leat\"] }, \"Open sidebar\": { \"v\": [\"Oscail barra taoibh\"] } } }, { \"l\": \"gl\", \"t\": { \"Change name\": { \"v\": [\"Cambiar o nome\"] }, \"Close sidebar\": { \"v\": [\"Pechar a barra lateral\"] }, \"Favorite\": { \"v\": [\"Favorito\"] }, \"Open sidebar\": { \"v\": [\"Abrir a barra lateral\"] } } }, { \"l\": \"he\", \"t\": { \"Change name\": { \"v\": [\"החלפת שם\"] }, \"Close sidebar\": { \"v\": [\"סגירת סרגל הצד\"] }, \"Favorite\": { \"v\": [\"למועדפים\"] } } }, { \"l\": \"hu\", \"t\": { \"Close sidebar\": { \"v\": [\"Oldalsáv bezárása\"] }, \"Favorite\": { \"v\": [\"Kedvenc\"] } } }, { \"l\": \"id\", \"t\": { \"Change name\": { \"v\": [\"Ubah nama\"] }, \"Close sidebar\": { \"v\": [\"Tutup bilah sisi\"] }, \"Favorite\": { \"v\": [\"Favorit\"] } } }, { \"l\": \"is\", \"t\": { \"Change name\": { \"v\": [\"Breyta nafni\"] }, \"Close sidebar\": { \"v\": [\"Loka hliðarstiku\"] }, \"Favorite\": { \"v\": [\"Eftirlæti\"] }, \"Open sidebar\": { \"v\": [\"Opna hliðarspjald\"] } } }, { \"l\": \"it\", \"t\": { \"Change name\": { \"v\": [\"Cambia nome\"] }, \"Close sidebar\": { \"v\": [\"Chiudi la barra laterale\"] }, \"Favorite\": { \"v\": [\"Preferito\"] } } }, { \"l\": \"ja\", \"t\": { \"Change name\": { \"v\": [\"名前の変更\"] }, \"Close sidebar\": { \"v\": [\"サイドバーを閉じる\"] }, \"Favorite\": { \"v\": [\"お気に入り\"] }, \"Open sidebar\": { \"v\": [\"サイドバーを開く\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Change name\": { \"v\": [\"名前の変更\"] }, \"Close sidebar\": { \"v\": [\"サイドバーを閉じる\"] }, \"Favorite\": { \"v\": [\"お気に入り\"] }, \"Open sidebar\": { \"v\": [\"サイドバーを開く\"] } } }, { \"l\": \"ko\", \"t\": { \"Change name\": { \"v\": [\"이름 변경\"] }, \"Close sidebar\": { \"v\": [\"사이드바 닫기\"] }, \"Favorite\": { \"v\": [\"즐겨찾기\"] }, \"Open sidebar\": { \"v\": [\"사이드바 열기\"] } } }, { \"l\": \"lo\", \"t\": { \"Change name\": { \"v\": [\"ປ່ຽນຊື່\"] }, \"Close sidebar\": { \"v\": [\"ປິດແຖບດ້ານຂ້າງ\"] }, \"Favorite\": { \"v\": [\"ລາຍການທີ່ມັກ\"] }, \"Open sidebar\": { \"v\": [\"ເປີດແຖບດ້ານຂ້າງ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Change name\": { \"v\": [\"Промени име\"] }, \"Close sidebar\": { \"v\": [\"Затвори странична лента\"] }, \"Favorite\": { \"v\": [\"Фаворити\"] }, \"Open sidebar\": { \"v\": [\"Отвори странична лента\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Change name\": { \"v\": [\"Endre navn\"] }, \"Close sidebar\": { \"v\": [\"Lukk sidepanel\"] }, \"Favorite\": { \"v\": [\"Favoritt\"] }, \"Open sidebar\": { \"v\": [\"Åpne sidefelt\"] } } }, { \"l\": \"nl\", \"t\": { \"Change name\": { \"v\": [\"Naam wijzigen\"] }, \"Close sidebar\": { \"v\": [\"Zijbalk sluiten\"] }, \"Favorite\": { \"v\": [\"Favoriet\"] }, \"Open sidebar\": { \"v\": [\"Zijbalk openen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Change name\": { \"v\": [\"Zmień nazwę\"] }, \"Close sidebar\": { \"v\": [\"Zamknij pasek boczny\"] }, \"Favorite\": { \"v\": [\"Ulubiony\"] }, \"Open sidebar\": { \"v\": [\"Otwórz pasek boczny\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Change name\": { \"v\": [\"Mudar nome\"] }, \"Close sidebar\": { \"v\": [\"Fechar barra lateral\"] }, \"Favorite\": { \"v\": [\"Favorito\"] }, \"Open sidebar\": { \"v\": [\"Abrir barra lateral\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Change name\": { \"v\": [\"Alterar nome\"] }, \"Close sidebar\": { \"v\": [\"Fechar barra lateral\"] }, \"Favorite\": { \"v\": [\"Favorito\"] }, \"Open sidebar\": { \"v\": [\"Abrir barra lateral\"] } } }, { \"l\": \"ro\", \"t\": { \"Change name\": { \"v\": [\"Modifică numele\"] }, \"Close sidebar\": { \"v\": [\"Închide bara laterală\"] }, \"Favorite\": { \"v\": [\"Favorit\"] } } }, { \"l\": \"ru\", \"t\": { \"Change name\": { \"v\": [\"Изменить имя\"] }, \"Close sidebar\": { \"v\": [\"Закрыть сайдбар\"] }, \"Favorite\": { \"v\": [\"Избранное\"] }, \"Open sidebar\": { \"v\": [\"Открыть боковую панель\"] } } }, { \"l\": \"sk\", \"t\": { \"Change name\": { \"v\": [\"Zmeniť názov\"] }, \"Close sidebar\": { \"v\": [\"Zavrieť bočný panel\"] }, \"Favorite\": { \"v\": [\"Obľúbené\"] }, \"Open sidebar\": { \"v\": [\"Otvoriť bočný panel\"] } } }, { \"l\": \"sl\", \"t\": { \"Close sidebar\": { \"v\": [\"Zapri stransko vrstico\"] }, \"Favorite\": { \"v\": [\"Priljubljeno\"] } } }, { \"l\": \"sr\", \"t\": { \"Change name\": { \"v\": [\"Измени назив\"] }, \"Close sidebar\": { \"v\": [\"Затвори бочну траку\"] }, \"Favorite\": { \"v\": [\"Омиљени\"] }, \"Open sidebar\": { \"v\": [\"Отвори бочну траку\"] } } }, { \"l\": \"sv\", \"t\": { \"Change name\": { \"v\": [\"Ändra namn\"] }, \"Close sidebar\": { \"v\": [\"Stäng sidofältet\"] }, \"Favorite\": { \"v\": [\"Favorit\"] }, \"Open sidebar\": { \"v\": [\"Öppna sidofältet\"] } } }, { \"l\": \"tr\", \"t\": { \"Change name\": { \"v\": [\"Adı değiştir\"] }, \"Close sidebar\": { \"v\": [\"Yan çubuğu kapat\"] }, \"Favorite\": { \"v\": [\"Sık kullanılanlara ekle\"] }, \"Open sidebar\": { \"v\": [\"Yan çubuğu aç\"] } } }, { \"l\": \"uk\", \"t\": { \"Change name\": { \"v\": [\"Змінити назву\"] }, \"Close sidebar\": { \"v\": [\"Закрити бічну панель\"] }, \"Favorite\": { \"v\": [\"Із зірочкою\"] }, \"Open sidebar\": { \"v\": [\"Бокове меню\"] } } }, { \"l\": \"uz\", \"t\": { \"Change name\": { \"v\": [\"Ismni o'zgartirish\"] }, \"Close sidebar\": { \"v\": [\"Yon panelni yoping\"] }, \"Favorite\": { \"v\": [\"Tanlangan\"] }, \"Open sidebar\": { \"v\": [\"Yon panelni oching\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Change name\": { \"v\": [\"修改名称\"] }, \"Close sidebar\": { \"v\": [\"关闭侧边栏\"] }, \"Favorite\": { \"v\": [\"喜爱\"] }, \"Open sidebar\": { \"v\": [\"打开侧边栏\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Change name\": { \"v\": [\"更改名稱\"] }, \"Close sidebar\": { \"v\": [\"關閉側邊欄\"] }, \"Favorite\": { \"v\": [\"喜愛\"] }, \"Open sidebar\": { \"v\": [\"打開側邊欄\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Change name\": { \"v\": [\"變更名稱\"] }, \"Close sidebar\": { \"v\": [\"關閉側邊欄\"] }, \"Favorite\": { \"v\": [\"最愛\"] }, \"Open sidebar\": { \"v\": [\"開啟側邊欄\"] } } }];\nconst t16 = [{ \"l\": \"ar\", \"t\": { \"Clear search\": { \"v\": [\"محو البحث\"] } } }, { \"l\": \"ast\", \"t\": { \"Clear search\": { \"v\": [\"Borrar la busca\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Clear search\": { \"v\": [\"Vyčistit vyhledávání\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Clear search\": { \"v\": [\"Vyčistit vyhledávání\"] } } }, { \"l\": \"da\", \"t\": { \"Clear search\": { \"v\": [\"Ryd søgning\"] } } }, { \"l\": \"de\", \"t\": { \"Clear search\": { \"v\": [\"Suche leeren\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Clear search\": { \"v\": [\"Suche leeren\"] } } }, { \"l\": \"el\", \"t\": { \"Clear search\": { \"v\": [\"Εκκαθάριση αναζήτησης\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Clear search\": { \"v\": [\"Clear search\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Clear search\": { \"v\": [\"Limpiar búsqueda\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Clear search\": { \"v\": [\"Limpiar búsqueda\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Clear search\": { \"v\": [\"Limpiar búsqueda\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Clear search\": { \"v\": [\"Limpiar búsqueda\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Clear search\": { \"v\": [\"Tühjenda otsing\"] } } }, { \"l\": \"eu\", \"t\": { \"Clear search\": { \"v\": [\"Garbitu bilaketa\"] } } }, { \"l\": \"fa\", \"t\": { \"Clear search\": { \"v\": [\"پاک کردن جستجو\"] } } }, { \"l\": \"fi\", \"t\": { \"Clear search\": { \"v\": [\"Tyhjennä haku\"] } } }, { \"l\": \"fr\", \"t\": { \"Clear search\": { \"v\": [\"Effacer la recherche\"] } } }, { \"l\": \"ga\", \"t\": { \"Clear search\": { \"v\": [\"Glan cuardach\"] } } }, { \"l\": \"gl\", \"t\": { \"Clear search\": { \"v\": [\"Limpar a busca\"] } } }, { \"l\": \"he\", \"t\": { \"Clear search\": { \"v\": [\"פינוי חיפוש\"] } } }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": { \"Clear search\": { \"v\": [\"Bersihkan pencarian\"] } } }, { \"l\": \"is\", \"t\": { \"Clear search\": { \"v\": [\"Hreinsa leit\"] } } }, { \"l\": \"it\", \"t\": { \"Clear search\": { \"v\": [\"online\"] } } }, { \"l\": \"ja\", \"t\": { \"Clear search\": { \"v\": [\"検索をクリア\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Clear search\": { \"v\": [\"検索をクリア\"] } } }, { \"l\": \"ko\", \"t\": { \"Clear search\": { \"v\": [\"검색 지우기\"] } } }, { \"l\": \"lo\", \"t\": { \"Clear search\": { \"v\": [\"ລຶບການຄົ້ນຫາ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Clear search\": { \"v\": [\"Исчисти пребарување\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Clear search\": { \"v\": [\"Tøm søk\"] } } }, { \"l\": \"nl\", \"t\": { \"Clear search\": { \"v\": [\"Zoekopdracht wissen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Clear search\": { \"v\": [\"Wyczyść wyszukiwanie\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Clear search\": { \"v\": [\"Limpar pesquisa\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Clear search\": { \"v\": [\"Limpar pesquisa\"] } } }, { \"l\": \"ro\", \"t\": { \"Clear search\": { \"v\": [\"Șterge căutarea\"] } } }, { \"l\": \"ru\", \"t\": { \"Clear search\": { \"v\": [\"Очистить поиск\"] } } }, { \"l\": \"sk\", \"t\": { \"Clear search\": { \"v\": [\"Vymazať vyhľadávanie\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Clear search\": { \"v\": [\"Обриши претрагу\"] } } }, { \"l\": \"sv\", \"t\": { \"Clear search\": { \"v\": [\"Rensa sökning\"] } } }, { \"l\": \"tr\", \"t\": { \"Clear search\": { \"v\": [\"Aramayı temizle\"] } } }, { \"l\": \"uk\", \"t\": { \"Clear search\": { \"v\": [\"Очистити пошук\"] } } }, { \"l\": \"uz\", \"t\": { \"Clear search\": { \"v\": [\"Qidiruvni tozalash\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Clear search\": { \"v\": [\"清除搜索\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Clear search\": { \"v\": [\"清除搜索\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Clear search\": { \"v\": [\"清除搜尋\"] } } }];\nconst t17 = [{ \"l\": \"ar\", \"t\": { \"Clear selected\": { \"v\": [\"محو المحدّد\"] }, \"Deselect {option}\": { \"v\": [\"إلغاء تحديد {option}\"] }, \"No results\": { \"v\": [\"ليس هناك أية نتيجة\"] }, \"Options\": { \"v\": [\"خيارات\"] } } }, { \"l\": \"ast\", \"t\": { \"Clear selected\": { \"v\": [\"Borrar lo seleicionao\"] }, \"Deselect {option}\": { \"v\": [\"Deseleicionar «{option}»\"] }, \"No results\": { \"v\": [\"Nun hai nengún resultáu\"] }, \"Options\": { \"v\": [\"Opciones\"] } } }, { \"l\": \"br\", \"t\": { \"No results\": { \"v\": [\"Disoc'h ebet\"] } } }, { \"l\": \"ca\", \"t\": { \"No results\": { \"v\": [\"Sense resultats\"] } } }, { \"l\": \"cs\", \"t\": { \"Clear selected\": { \"v\": [\"Vyčistit vybrané\"] }, \"Deselect {option}\": { \"v\": [\"Zrušit výběr {option}\"] }, \"No results\": { \"v\": [\"Nic nenalezeno\"] }, \"Options\": { \"v\": [\"Možnosti\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Clear selected\": { \"v\": [\"Vyčistit vybrané\"] }, \"Deselect {option}\": { \"v\": [\"Zrušit výběr {option}\"] }, \"No results\": { \"v\": [\"Nic nenalezeno\"] }, \"Options\": { \"v\": [\"Možnosti\"] } } }, { \"l\": \"da\", \"t\": { \"Clear selected\": { \"v\": [\"Ryd valgt\"] }, \"Deselect {option}\": { \"v\": [\"Fravælg {option}\"] }, \"No results\": { \"v\": [\"Ingen resultater\"] }, \"Options\": { \"v\": [\"Indstillinger\"] } } }, { \"l\": \"de\", \"t\": { \"Clear selected\": { \"v\": [\"Auswahl leeren\"] }, \"Deselect {option}\": { \"v\": [\"{option} abwählen\"] }, \"No results\": { \"v\": [\"Keine Ergebnisse\"] }, \"Options\": { \"v\": [\"Optionen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Clear selected\": { \"v\": [\"Auswahl leeren\"] }, \"Deselect {option}\": { \"v\": [\"{option} abwählen\"] }, \"No results\": { \"v\": [\"Keine Ergebnisse\"] }, \"Options\": { \"v\": [\"Optionen\"] } } }, { \"l\": \"el\", \"t\": { \"Clear selected\": { \"v\": [\"Εκκαθάριση επιλογής\"] }, \"Deselect {option}\": { \"v\": [\"Αποεπιλογή {option}\"] }, \"No results\": { \"v\": [\"Κανένα αποτέλεσμα\"] }, \"Options\": { \"v\": [\"Επιλογές\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Clear selected\": { \"v\": [\"Clear selected\"] }, \"Deselect {option}\": { \"v\": [\"Deselect {option}\"] }, \"No results\": { \"v\": [\"No results\"] }, \"Options\": { \"v\": [\"Options\"] } } }, { \"l\": \"eo\", \"t\": { \"No results\": { \"v\": [\"La rezulto forestas\"] } } }, { \"l\": \"es\", \"t\": { \"Clear selected\": { \"v\": [\"Limpiar selección\"] }, \"Deselect {option}\": { \"v\": [\"Deseleccionar {option}\"] }, \"No results\": { \"v\": [\" Ningún resultado\"] }, \"Options\": { \"v\": [\"Opciones\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Clear selected\": { \"v\": [\"Limpiar selección\"] }, \"Deselect {option}\": { \"v\": [\"Deseleccionar {option}\"] }, \"No results\": { \"v\": [\"Sin resultados\"] }, \"Options\": { \"v\": [\"Opciones\"] } } }, { \"l\": \"es-EC\", \"t\": { \"No results\": { \"v\": [\"Sin resultados\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Clear selected\": { \"v\": [\"Limpiar selección\"] }, \"Deselect {option}\": { \"v\": [\"Deseleccionar {option}\"] }, \"No results\": { \"v\": [\"Sin resultados\"] }, \"Options\": { \"v\": [\"Opciones\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Clear selected\": { \"v\": [\"Tühjenad valik\"] }, \"Deselect {option}\": { \"v\": [\"Eemalda {option} valik\"] }, \"No results\": { \"v\": [\"Tulemusi pole\"] }, \"Options\": { \"v\": [\"Valikud\"] } } }, { \"l\": \"eu\", \"t\": { \"No results\": { \"v\": [\"Emaitzarik ez\"] } } }, { \"l\": \"fa\", \"t\": { \"Clear selected\": { \"v\": [\"پاک کردن مورد انتخاب شده\"] }, \"Deselect {option}\": { \"v\": [\"لغو انتخاب {option}\"] }, \"No results\": { \"v\": [\"بدون هیچ نتیجه‌ای\"] }, \"Options\": { \"v\": [\"گزینه‌ها\"] } } }, { \"l\": \"fi\", \"t\": { \"Clear selected\": { \"v\": [\"Tyhjennä valitut\"] }, \"Deselect {option}\": { \"v\": [\"Poista valinta {option}\"] }, \"No results\": { \"v\": [\"Ei tuloksia\"] }, \"Options\": { \"v\": [\"Valinnat\"] } } }, { \"l\": \"fr\", \"t\": { \"Clear selected\": { \"v\": [\"Vider la sélection\"] }, \"Deselect {option}\": { \"v\": [\"Désélectionner {option}\"] }, \"No results\": { \"v\": [\"Aucun résultat\"] }, \"Options\": { \"v\": [\"Options\"] } } }, { \"l\": \"ga\", \"t\": { \"Clear selected\": { \"v\": [\"Glan roghnaithe\"] }, \"Deselect {option}\": { \"v\": [\"Díroghnaigh {option}\"] }, \"No results\": { \"v\": [\"Gan torthaí\"] }, \"Options\": { \"v\": [\"Roghanna\"] } } }, { \"l\": \"gl\", \"t\": { \"Clear selected\": { \"v\": [\"Limpar o seleccionado\"] }, \"Deselect {option}\": { \"v\": [\"Desmarcar {option}\"] }, \"No results\": { \"v\": [\"Sen resultados\"] }, \"Options\": { \"v\": [\"Opcións\"] } } }, { \"l\": \"he\", \"t\": { \"No results\": { \"v\": [\"אין תוצאות\"] } } }, { \"l\": \"hu\", \"t\": { \"No results\": { \"v\": [\"Nincs találat\"] } } }, { \"l\": \"id\", \"t\": { \"Clear selected\": { \"v\": [\"Hapus terpilih\"] }, \"Deselect {option}\": { \"v\": [\"Batalkan pemilihan {option}\"] }, \"No results\": { \"v\": [\"Tidak ada hasil\"] } } }, { \"l\": \"is\", \"t\": { \"Clear selected\": { \"v\": [\"Hreinsa valið\"] }, \"Deselect {option}\": { \"v\": [\"Afvelja {option}\"] }, \"No results\": { \"v\": [\"Engar niðurstöður\"] }, \"Options\": { \"v\": [\"Valkostir\"] } } }, { \"l\": \"it\", \"t\": { \"Clear selected\": { \"v\": [\"Cancella selezionati\"] }, \"Deselect {option}\": { \"v\": [\"Deselezionare {option}\"] }, \"No results\": { \"v\": [\"Nessun risultato\"] } } }, { \"l\": \"ja\", \"t\": { \"Clear selected\": { \"v\": [\"選択を解除\"] }, \"Deselect {option}\": { \"v\": [\"{option} の選択を解除\"] }, \"No results\": { \"v\": [\"結果無し\"] }, \"Options\": { \"v\": [\"オプション\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Clear selected\": { \"v\": [\"選択を解除\"] }, \"Deselect {option}\": { \"v\": [\"{option} の選択を解除\"] }, \"No results\": { \"v\": [\"結果無し\"] }, \"Options\": { \"v\": [\"オプション\"] } } }, { \"l\": \"ko\", \"t\": { \"Clear selected\": { \"v\": [\"선택 항목 지우기\"] }, \"Deselect {option}\": { \"v\": [\"{option} 선택 해제\"] }, \"No results\": { \"v\": [\"결과 없음\"] }, \"Options\": { \"v\": [\"옵션\"] } } }, { \"l\": \"lo\", \"t\": { \"Clear selected\": { \"v\": [\"ລຶບສິ່ງທີ່ເລືອກ\"] }, \"Deselect {option}\": { \"v\": [\"ຍົກເລີກການເລືອກ {option}\"] }, \"No results\": { \"v\": [\"ບໍ່ມີຜົນລັບ\"] }, \"Options\": { \"v\": [\"ຕົວເລືອກ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"No results\": { \"v\": [\"Nėra rezultatų\"] } } }, { \"l\": \"lv\", \"t\": { \"No results\": { \"v\": [\"Nav rezultātu\"] } } }, { \"l\": \"mk\", \"t\": { \"Clear selected\": { \"v\": [\"Исчисти означени\"] }, \"Deselect {option}\": { \"v\": [\"Откажи избор на {option}\"] }, \"No results\": { \"v\": [\"Нема резултати\"] }, \"Options\": { \"v\": [\"Опции\"] } } }, { \"l\": \"my\", \"t\": { \"No results\": { \"v\": [\"ရလဒ်မရှိပါ\"] } } }, { \"l\": \"nb\", \"t\": { \"Clear selected\": { \"v\": [\"Tøm merket\"] }, \"Deselect {option}\": { \"v\": [\"Opphev valg {option}\"] }, \"No results\": { \"v\": [\"Ingen resultater\"] }, \"Options\": { \"v\": [\"Alternativer\"] } } }, { \"l\": \"nl\", \"t\": { \"Clear selected\": { \"v\": [\"Selectie wissen\"] }, \"Deselect {option}\": { \"v\": [\"Selectie {option} opheffen\"] }, \"No results\": { \"v\": [\"Geen resultaten\"] }, \"Options\": { \"v\": [\"Opties\"] } } }, { \"l\": \"oc\", \"t\": { \"No results\": { \"v\": [\"Cap de resultat\"] } } }, { \"l\": \"pl\", \"t\": { \"Clear selected\": { \"v\": [\"Wyczyść wybrane\"] }, \"Deselect {option}\": { \"v\": [\"Odznacz {option}\"] }, \"No results\": { \"v\": [\"Brak wyników\"] }, \"Options\": { \"v\": [\"Opcje\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Clear selected\": { \"v\": [\"Limpar selecionado\"] }, \"Deselect {option}\": { \"v\": [\"Desselecionar {option}\"] }, \"No results\": { \"v\": [\"Sem resultados\"] }, \"Options\": { \"v\": [\"Opções\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Clear selected\": { \"v\": [\"Limpeza selecionada\"] }, \"Deselect {option}\": { \"v\": [\"Desmarcar {option}\"] }, \"No results\": { \"v\": [\"Sem resultados\"] }, \"Options\": { \"v\": [\"Opções\"] } } }, { \"l\": \"ro\", \"t\": { \"Clear selected\": { \"v\": [\"Șterge selecția\"] }, \"Deselect {option}\": { \"v\": [\"Deselctează {option}\"] }, \"No results\": { \"v\": [\"Nu există rezultate\"] } } }, { \"l\": \"ru\", \"t\": { \"Clear selected\": { \"v\": [\"Очистить выбранный\"] }, \"Deselect {option}\": { \"v\": [\"Отменить выбор {option}\"] }, \"No results\": { \"v\": [\"Результаты отсуствуют\"] }, \"Options\": { \"v\": [\"Варианты\"] } } }, { \"l\": \"sk\", \"t\": { \"Clear selected\": { \"v\": [\"Vymazať vybraté\"] }, \"Deselect {option}\": { \"v\": [\"Zrušiť výber {option}\"] }, \"No results\": { \"v\": [\"Žiadne výsledky\"] }, \"Options\": { \"v\": [\"možnosti\"] } } }, { \"l\": \"sl\", \"t\": { \"No results\": { \"v\": [\"Ni zadetkov\"] } } }, { \"l\": \"sr\", \"t\": { \"Clear selected\": { \"v\": [\"Обриши изабрано\"] }, \"Deselect {option}\": { \"v\": [\"Уклони избор {option}\"] }, \"No results\": { \"v\": [\"Нема резултата\"] }, \"Options\": { \"v\": [\"Опције\"] } } }, { \"l\": \"sv\", \"t\": { \"Clear selected\": { \"v\": [\"Rensa val\"] }, \"Deselect {option}\": { \"v\": [\"Avmarkera {option}\"] }, \"No results\": { \"v\": [\"Inga resultat\"] }, \"Options\": { \"v\": [\"Alternativ\"] } } }, { \"l\": \"tr\", \"t\": { \"Clear selected\": { \"v\": [\"Seçilmişleri temizle\"] }, \"Deselect {option}\": { \"v\": [\"{option} bırak\"] }, \"No results\": { \"v\": [\"Herhangi bir sonuç bulunamadı\"] }, \"Options\": { \"v\": [\"Seçenekler\"] } } }, { \"l\": \"uk\", \"t\": { \"Clear selected\": { \"v\": [\"Очистити вибране\"] }, \"Deselect {option}\": { \"v\": [\"Зняти вибір {option}\"] }, \"No results\": { \"v\": [\"Відсутні результати\"] }, \"Options\": { \"v\": [\"Параметри\"] } } }, { \"l\": \"uz\", \"t\": { \"Clear selected\": { \"v\": [\"Tanlanganni tozalash\"] }, \"Deselect {option}\": { \"v\": [\"{option}tanlovni bekor qiling\"] }, \"No results\": { \"v\": [\"Natija yoʻq\"] }, \"Options\": { \"v\": [\"Variantlar\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Clear selected\": { \"v\": [\"清除所选\"] }, \"Deselect {option}\": { \"v\": [\"取消选择 {option}\"] }, \"No results\": { \"v\": [\"无结果\"] }, \"Options\": { \"v\": [\"选项\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Clear selected\": { \"v\": [\"清除所選項目\"] }, \"Deselect {option}\": { \"v\": [\"取消選擇 {option}\"] }, \"No results\": { \"v\": [\"無結果\"] }, \"Options\": { \"v\": [\"選項\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Clear selected\": { \"v\": [\"清除選定項目\"] }, \"Deselect {option}\": { \"v\": [\"取消選取 {option}\"] }, \"No results\": { \"v\": [\"無結果\"] }, \"Options\": { \"v\": [\"選項\"] } } }];\nconst t19 = [{ \"l\": \"ar\", \"t\": { \"Close\": { \"v\": [\"إغلاق\"] } } }, { \"l\": \"ast\", \"t\": { \"Close\": { \"v\": [\"Zarrar\"] } } }, { \"l\": \"br\", \"t\": { \"Close\": { \"v\": [\"Serriñ\"] } } }, { \"l\": \"ca\", \"t\": { \"Close\": { \"v\": [\"Tanca\"] } } }, { \"l\": \"cs\", \"t\": { \"Close\": { \"v\": [\"Zavřít\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Close\": { \"v\": [\"Zavřít\"] } } }, { \"l\": \"da\", \"t\": { \"Close\": { \"v\": [\"Luk\"] } } }, { \"l\": \"de\", \"t\": { \"Close\": { \"v\": [\"Schließen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Close\": { \"v\": [\"Schließen\"] } } }, { \"l\": \"el\", \"t\": { \"Close\": { \"v\": [\"Κλείσιμο\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Close\": { \"v\": [\"Close\"] } } }, { \"l\": \"eo\", \"t\": { \"Close\": { \"v\": [\"Fermu\"] } } }, { \"l\": \"es\", \"t\": { \"Close\": { \"v\": [\"Cerrar\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Close\": { \"v\": [\"Cerrar\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Close\": { \"v\": [\"Cerrar\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Close\": { \"v\": [\"Cerrar\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Close\": { \"v\": [\"Sulge\"] } } }, { \"l\": \"eu\", \"t\": { \"Close\": { \"v\": [\"Itxi\"] } } }, { \"l\": \"fa\", \"t\": { \"Close\": { \"v\": [\"بستن\"] } } }, { \"l\": \"fi\", \"t\": { \"Close\": { \"v\": [\"Sulje\"] } } }, { \"l\": \"fr\", \"t\": { \"Close\": { \"v\": [\"Fermer\"] } } }, { \"l\": \"ga\", \"t\": { \"Close\": { \"v\": [\"Dún\"] } } }, { \"l\": \"gl\", \"t\": { \"Close\": { \"v\": [\"Pechar\"] } } }, { \"l\": \"he\", \"t\": { \"Close\": { \"v\": [\"סגירה\"] } } }, { \"l\": \"hu\", \"t\": { \"Close\": { \"v\": [\"Bezárás\"] } } }, { \"l\": \"id\", \"t\": { \"Close\": { \"v\": [\"Tutup\"] } } }, { \"l\": \"is\", \"t\": { \"Close\": { \"v\": [\"Loka\"] } } }, { \"l\": \"it\", \"t\": { \"Close\": { \"v\": [\"Chiudi\"] } } }, { \"l\": \"ja\", \"t\": { \"Close\": { \"v\": [\"閉じる\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Close\": { \"v\": [\"閉じる\"] } } }, { \"l\": \"ko\", \"t\": { \"Close\": { \"v\": [\"닫기\"] } } }, { \"l\": \"lo\", \"t\": { \"Close\": { \"v\": [\"ປິດ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Close\": { \"v\": [\"Užverti\"] } } }, { \"l\": \"lv\", \"t\": { \"Close\": { \"v\": [\"Aizvērt\"] } } }, { \"l\": \"mk\", \"t\": { \"Close\": { \"v\": [\"Затвори\"] } } }, { \"l\": \"my\", \"t\": { \"Close\": { \"v\": [\"ပိတ်ရန်\"] } } }, { \"l\": \"nb\", \"t\": { \"Close\": { \"v\": [\"Lukk\"] } } }, { \"l\": \"nl\", \"t\": { \"Close\": { \"v\": [\"Sluiten\"] } } }, { \"l\": \"oc\", \"t\": { \"Close\": { \"v\": [\"Tampar\"] } } }, { \"l\": \"pl\", \"t\": { \"Close\": { \"v\": [\"Zamknij\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Close\": { \"v\": [\"Fechar\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Close\": { \"v\": [\"Fechar\"] } } }, { \"l\": \"ro\", \"t\": { \"Close\": { \"v\": [\"Închideți\"] } } }, { \"l\": \"ru\", \"t\": { \"Close\": { \"v\": [\"Закрыть\"] } } }, { \"l\": \"sk\", \"t\": { \"Close\": { \"v\": [\"Zavrieť\"] } } }, { \"l\": \"sl\", \"t\": { \"Close\": { \"v\": [\"Zapri\"] } } }, { \"l\": \"sr\", \"t\": { \"Close\": { \"v\": [\"Затвори\"] } } }, { \"l\": \"sv\", \"t\": { \"Close\": { \"v\": [\"Stäng\"] } } }, { \"l\": \"tr\", \"t\": { \"Close\": { \"v\": [\"Kapat\"] } } }, { \"l\": \"uk\", \"t\": { \"Close\": { \"v\": [\"Закрити\"] } } }, { \"l\": \"uz\", \"t\": { \"Close\": { \"v\": [\"Yopish\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Close\": { \"v\": [\"关闭\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Close\": { \"v\": [\"關閉\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Close\": { \"v\": [\"關閉\"] } } }];\nconst t21 = [{ \"l\": \"ar\", \"t\": { \"Collapse menu\": { \"v\": [\"طي القائمة\"] }, \"Open menu\": { \"v\": [\"إفتَح القائمة\"] } } }, { \"l\": \"ast\", \"t\": { \"Collapse menu\": { \"v\": [\"Recoyer el menú\"] }, \"Open menu\": { \"v\": [\"Abrir le menú\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Collapse menu\": { \"v\": [\"Sbalit nabídku\"] }, \"Open menu\": { \"v\": [\"Otevřít nabídku\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Collapse menu\": { \"v\": [\"Sbalit nabídku\"] }, \"Open menu\": { \"v\": [\"Otevřít nabídku\"] } } }, { \"l\": \"da\", \"t\": { \"Collapse menu\": { \"v\": [\"Skjul menuen\"] }, \"Open menu\": { \"v\": [\"Åben menu\"] } } }, { \"l\": \"de\", \"t\": { \"Collapse menu\": { \"v\": [\"Menü einklappen\"] }, \"Open menu\": { \"v\": [\"Menü öffnen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Collapse menu\": { \"v\": [\"Menü einklappen\"] }, \"Open menu\": { \"v\": [\"Menü öffnen\"] } } }, { \"l\": \"el\", \"t\": { \"Collapse menu\": { \"v\": [\"Σύμπτυξη μενού\"] }, \"Open menu\": { \"v\": [\"Άνοιγμα μενού\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Collapse menu\": { \"v\": [\"Collapse menu\"] }, \"Open menu\": { \"v\": [\"Open menu\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Collapse menu\": { \"v\": [\"Ocultar menú\"] }, \"Open menu\": { \"v\": [\"Abrir menú\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Collapse menu\": { \"v\": [\"Ocultar menú\"] }, \"Open menu\": { \"v\": [\"Abrir menú\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Collapse menu\": { \"v\": [\"Ocultar menú\"] }, \"Open menu\": { \"v\": [\"Abrir menú\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Collapse menu\": { \"v\": [\"Ocultar menú\"] }, \"Open menu\": { \"v\": [\"Abrir menú\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Collapse menu\": { \"v\": [\"Menüü kokkuklappimine\"] }, \"Open menu\": { \"v\": [\"Ava menüü\"] } } }, { \"l\": \"eu\", \"t\": { \"Collapse menu\": { \"v\": [\"Tolestu menua\"] }, \"Open menu\": { \"v\": [\"Ireki menua\"] } } }, { \"l\": \"fa\", \"t\": { \"Collapse menu\": { \"v\": [\"بستن فهرست\"] }, \"Open menu\": { \"v\": [\"باز کردن فهرست\"] } } }, { \"l\": \"fi\", \"t\": { \"Collapse menu\": { \"v\": [\"Supista valikko\"] }, \"Open menu\": { \"v\": [\"Avaa valikko\"] } } }, { \"l\": \"fr\", \"t\": { \"Collapse menu\": { \"v\": [\"Réduire le menu\"] }, \"Open menu\": { \"v\": [\"Ouvrir le menu\"] } } }, { \"l\": \"ga\", \"t\": { \"Collapse menu\": { \"v\": [\"Roghchlár Laghdaigh\"] }, \"Open menu\": { \"v\": [\"Roghchlár a oscailt\"] } } }, { \"l\": \"gl\", \"t\": { \"Collapse menu\": { \"v\": [\"Contraer o menú\"] }, \"Open menu\": { \"v\": [\"Abrir o menú\"] } } }, { \"l\": \"he\", \"t\": { \"Collapse menu\": { \"v\": [\"צמצום התפריט\"] }, \"Open menu\": { \"v\": [\"פתיחת תפריט\"] } } }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": { \"Collapse menu\": { \"v\": [\"Ciutkan menu\"] }, \"Open menu\": { \"v\": [\"Buka menu\"] } } }, { \"l\": \"is\", \"t\": { \"Collapse menu\": { \"v\": [\"Fella valmynd saman\"] }, \"Open menu\": { \"v\": [\"Opna valmynd\"] } } }, { \"l\": \"it\", \"t\": { \"Collapse menu\": { \"v\": [\"Chiudi Menu\"] }, \"Open menu\": { \"v\": [\"Apri il menu\"] } } }, { \"l\": \"ja\", \"t\": { \"Collapse menu\": { \"v\": [\"メニューの折りたたみ\"] }, \"Open menu\": { \"v\": [\"メニューを開く\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Collapse menu\": { \"v\": [\"メニューの折りたたみ\"] }, \"Open menu\": { \"v\": [\"メニューを開く\"] } } }, { \"l\": \"ko\", \"t\": { \"Collapse menu\": { \"v\": [\"메뉴 접기\"] }, \"Open menu\": { \"v\": [\"메뉴 열기\"] } } }, { \"l\": \"lo\", \"t\": { \"Collapse menu\": { \"v\": [\"ຫຍໍ້ເມນູ\"] }, \"Open menu\": { \"v\": [\"ເປີດເມນູ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Collapse menu\": { \"v\": [\"Скриј мени\"] }, \"Open menu\": { \"v\": [\"Отвори мени\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Collapse menu\": { \"v\": [\"Skjul meny\"] }, \"Open menu\": { \"v\": [\"Åpne meny\"] } } }, { \"l\": \"nl\", \"t\": { \"Collapse menu\": { \"v\": [\"Menu inklappen\"] }, \"Open menu\": { \"v\": [\"Menu openen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Collapse menu\": { \"v\": [\"Zwiń menu\"] }, \"Open menu\": { \"v\": [\"Otwórz menu\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Collapse menu\": { \"v\": [\"Recolher menu\"] }, \"Open menu\": { \"v\": [\"Abrir menu\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Collapse menu\": { \"v\": [\"Ocultar menu\"] }, \"Open menu\": { \"v\": [\"Abrir menu\"] } } }, { \"l\": \"ro\", \"t\": { \"Collapse menu\": { \"v\": [\"Restrânge meniul\"] }, \"Open menu\": { \"v\": [\"Deschide meniul\"] } } }, { \"l\": \"ru\", \"t\": { \"Collapse menu\": { \"v\": [\"Свернуть меню\"] }, \"Open menu\": { \"v\": [\"Открыть меню\"] } } }, { \"l\": \"sk\", \"t\": { \"Collapse menu\": { \"v\": [\"Zbaliť menu\"] }, \"Open menu\": { \"v\": [\"Otvoriť menu\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Collapse menu\": { \"v\": [\"Сажми мени\"] }, \"Open menu\": { \"v\": [\"Отвори мени\"] } } }, { \"l\": \"sv\", \"t\": { \"Collapse menu\": { \"v\": [\"Dölj menyn\"] }, \"Open menu\": { \"v\": [\"Öppna menyn\"] } } }, { \"l\": \"tr\", \"t\": { \"Collapse menu\": { \"v\": [\"Menüyü daralt\"] }, \"Open menu\": { \"v\": [\"Menüyü aç\"] } } }, { \"l\": \"uk\", \"t\": { \"Collapse menu\": { \"v\": [\"Згорнути меню\"] }, \"Open menu\": { \"v\": [\"Відкрити меню\"] } } }, { \"l\": \"uz\", \"t\": { \"Collapse menu\": { \"v\": [\"Menyuni yig‘ish\"] }, \"Open menu\": { \"v\": [\"Menyuni oching\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Collapse menu\": { \"v\": [\"收起菜单\"] }, \"Open menu\": { \"v\": [\"打开菜单\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Collapse menu\": { \"v\": [\"折疊選單\"] }, \"Open menu\": { \"v\": [\"開啟選單\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Collapse menu\": { \"v\": [\"折疊選單\"] }, \"Open menu\": { \"v\": [\"開啟選單\"] } } }];\nconst t22 = [{ \"l\": \"ar\", \"t\": {} }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Copied\": { \"v\": [\"Zkopírováno\"] }, \"Copy to clipboard\": { \"v\": [\"Zkopírovat do schránky\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": {} }, { \"l\": \"de\", \"t\": { \"Copied\": { \"v\": [\"Kopiert\"] }, \"Copy to clipboard\": { \"v\": [\"In die Zwischenablage kopieren\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Copied\": { \"v\": [\"Kopiert\"] }, \"Copy to clipboard\": { \"v\": [\"In die Zwischenablage kopieren\"] } } }, { \"l\": \"el\", \"t\": {} }, { \"l\": \"en-GB\", \"t\": { \"Copied\": { \"v\": [\"Copied\"] }, \"Copy to clipboard\": { \"v\": [\"Copy to clipboard\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": {} }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": {} }, { \"l\": \"et-EE\", \"t\": { \"Copied\": { \"v\": [\"Kopeeritud\"] }, \"Copy to clipboard\": { \"v\": [\"Kopeeri lõikelauale\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": {} }, { \"l\": \"fi\", \"t\": {} }, { \"l\": \"fr\", \"t\": {} }, { \"l\": \"ga\", \"t\": { \"Copied\": { \"v\": [\"Cóipeáilte\"] }, \"Copy to clipboard\": { \"v\": [\"Cóipeáil chuig an ghearrthaisce\"] } } }, { \"l\": \"gl\", \"t\": { \"Copied\": { \"v\": [\"Copiado\"] }, \"Copy to clipboard\": { \"v\": [\"Copiar ao portapapeis\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": {} }, { \"l\": \"is\", \"t\": {} }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Copied\": { \"v\": [\"コピーされました\"] }, \"Copy to clipboard\": { \"v\": [\"クリップボードにコピー\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": {} }, { \"l\": \"lo\", \"t\": { \"Copied\": { \"v\": [\"ສຳເນົາແລ້ວ\"] }, \"Copy to clipboard\": { \"v\": [\"ສຳເນົາໃສ່ຄລິບບອດ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": {} }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": {} }, { \"l\": \"nl\", \"t\": {} }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": {} }, { \"l\": \"pt-BR\", \"t\": { \"Copied\": { \"v\": [\"Copiado\"] }, \"Copy to clipboard\": { \"v\": [\"Copiar para a área de transferência\"] } } }, { \"l\": \"pt-PT\", \"t\": {} }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": {} }, { \"l\": \"sk\", \"t\": {} }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": {} }, { \"l\": \"sv\", \"t\": {} }, { \"l\": \"tr\", \"t\": { \"Copied\": { \"v\": [\"Kopyalandı\"] }, \"Copy to clipboard\": { \"v\": [\"Panoya kopyalandı\"] } } }, { \"l\": \"uk\", \"t\": {} }, { \"l\": \"uz\", \"t\": {} }, { \"l\": \"zh-CN\", \"t\": {} }, { \"l\": \"zh-HK\", \"t\": { \"Copied\": { \"v\": [\"已被複製\"] }, \"Copy to clipboard\": { \"v\": [\"複製到剪貼簿\"] } } }, { \"l\": \"zh-TW\", \"t\": {} }];\nconst t23 = [{ \"l\": \"ar\", \"t\": { \"Edit item\": { \"v\": [\"تعديل عنصر\"] } } }, { \"l\": \"ast\", \"t\": { \"Edit item\": { \"v\": [\"Editar l'elementu\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Edit item\": { \"v\": [\"Edita l'element\"] } } }, { \"l\": \"cs\", \"t\": { \"Edit item\": { \"v\": [\"Upravit položku\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Edit item\": { \"v\": [\"Upravit položku\"] } } }, { \"l\": \"da\", \"t\": { \"Edit item\": { \"v\": [\"Rediger emne\"] } } }, { \"l\": \"de\", \"t\": { \"Edit item\": { \"v\": [\"Element bearbeiten\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Edit item\": { \"v\": [\"Element bearbeiten\"] } } }, { \"l\": \"el\", \"t\": { \"Edit item\": { \"v\": [\"Επεξεργασία αντικειμένου\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Edit item\": { \"v\": [\"Edit item\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Edit item\": { \"v\": [\"Editar elemento\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Edit item\": { \"v\": [\"Editar elemento\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Edit item\": { \"v\": [\"Editar elemento\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Edit item\": { \"v\": [\"Editar elemento\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Edit item\": { \"v\": [\"Muuda objekti\"] } } }, { \"l\": \"eu\", \"t\": { \"Edit item\": { \"v\": [\"Editatu elementua\"] } } }, { \"l\": \"fa\", \"t\": { \"Edit item\": { \"v\": [\"ویرایش مورد\"] } } }, { \"l\": \"fi\", \"t\": { \"Edit item\": { \"v\": [\"Muokkaa kohdetta\"] } } }, { \"l\": \"fr\", \"t\": { \"Edit item\": { \"v\": [\"Éditer l'élément\"] } } }, { \"l\": \"ga\", \"t\": { \"Edit item\": { \"v\": [\"Cuir mír in eagar\"] } } }, { \"l\": \"gl\", \"t\": { \"Edit item\": { \"v\": [\"Editar o elemento\"] } } }, { \"l\": \"he\", \"t\": { \"Edit item\": { \"v\": [\"עריכת פריט\"] } } }, { \"l\": \"hu\", \"t\": { \"Edit item\": { \"v\": [\"Elem szerkesztése\"] } } }, { \"l\": \"id\", \"t\": { \"Edit item\": { \"v\": [\"Edit item\"] } } }, { \"l\": \"is\", \"t\": { \"Edit item\": { \"v\": [\"Breyta atriði\"] } } }, { \"l\": \"it\", \"t\": { \"Edit item\": { \"v\": [\"Modifica l'elemento\"] } } }, { \"l\": \"ja\", \"t\": { \"Edit item\": { \"v\": [\"編集\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Edit item\": { \"v\": [\"編集\"] } } }, { \"l\": \"ko\", \"t\": { \"Edit item\": { \"v\": [\"항목 수정\"] } } }, { \"l\": \"lo\", \"t\": { \"Edit item\": { \"v\": [\"ແກ້ໄຂລາຍການ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Edit item\": { \"v\": [\"Уреди\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Edit item\": { \"v\": [\"Rediger\"] } } }, { \"l\": \"nl\", \"t\": { \"Edit item\": { \"v\": [\"Item bewerken\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Edit item\": { \"v\": [\"Edytuj element\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Edit item\": { \"v\": [\"Editar item\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Edit item\": { \"v\": [\"Editar item\"] } } }, { \"l\": \"ro\", \"t\": { \"Edit item\": { \"v\": [\"Editați elementul\"] } } }, { \"l\": \"ru\", \"t\": { \"Edit item\": { \"v\": [\"Изменить элемент\"] } } }, { \"l\": \"sk\", \"t\": { \"Edit item\": { \"v\": [\"Upraviť položku\"] } } }, { \"l\": \"sl\", \"t\": { \"Edit item\": { \"v\": [\"Uredi predmet\"] } } }, { \"l\": \"sr\", \"t\": { \"Edit item\": { \"v\": [\"Уреди ставку\"] } } }, { \"l\": \"sv\", \"t\": { \"Edit item\": { \"v\": [\"Redigera objekt\"] } } }, { \"l\": \"tr\", \"t\": { \"Edit item\": { \"v\": [\"Ögeyi düzenle\"] } } }, { \"l\": \"uk\", \"t\": { \"Edit item\": { \"v\": [\"Редагувати елемент\"] } } }, { \"l\": \"uz\", \"t\": { \"Edit item\": { \"v\": [\"Elementni tahrirlash\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Edit item\": { \"v\": [\"编辑项目\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Edit item\": { \"v\": [\"編輯項目\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Edit item\": { \"v\": [\"編輯項目\"] } } }];\nconst t25 = [{ \"l\": \"ar\", \"t\": { \"Enter link\": { \"v\": [\"أدخِل الرابط\"] } } }, { \"l\": \"ast\", \"t\": { \"Enter link\": { \"v\": [\"Introducir l'enllaz\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Enter link\": { \"v\": [\"Zadat odkaz\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Enter link\": { \"v\": [\"Zadat odkaz\"] } } }, { \"l\": \"da\", \"t\": { \"Enter link\": { \"v\": [\"Indtast link\"] } } }, { \"l\": \"de\", \"t\": { \"Enter link\": { \"v\": [\"Link eingeben\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Enter link\": { \"v\": [\"Link eingeben\"] } } }, { \"l\": \"el\", \"t\": { \"Enter link\": { \"v\": [\"Εισάγετε σύνδεσμο\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Enter link\": { \"v\": [\"Enter link\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Enter link\": { \"v\": [\"Ingrese enlace\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Enter link\": { \"v\": [\"Ingresar enlace\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Enter link\": { \"v\": [\"Ingresar enlace\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Enter link\": { \"v\": [\"Ingresar enlace\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Enter link\": { \"v\": [\"Sisesta link\"] } } }, { \"l\": \"eu\", \"t\": { \"Enter link\": { \"v\": [\"Sartu esteka\"] } } }, { \"l\": \"fa\", \"t\": { \"Enter link\": { \"v\": [\"لینک را وارد کنید\"] } } }, { \"l\": \"fi\", \"t\": { \"Enter link\": { \"v\": [\"Kirjoita linkki\"] } } }, { \"l\": \"fr\", \"t\": { \"Enter link\": { \"v\": [\"Saisissez le lien\"] } } }, { \"l\": \"ga\", \"t\": { \"Enter link\": { \"v\": [\"Cuir isteach nasc\"] } } }, { \"l\": \"gl\", \"t\": { \"Enter link\": { \"v\": [\"Introducir a ligazón\"] } } }, { \"l\": \"he\", \"t\": { \"Enter link\": { \"v\": [\"מילוי קישור\"] } } }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": { \"Enter link\": { \"v\": [\"Masukkan tautan\"] } } }, { \"l\": \"is\", \"t\": { \"Enter link\": { \"v\": [\"Settu inn tengil\"] } } }, { \"l\": \"it\", \"t\": { \"Enter link\": { \"v\": [\"Inserire il link\"] } } }, { \"l\": \"ja\", \"t\": { \"Enter link\": { \"v\": [\"リンクを入力する\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Enter link\": { \"v\": [\"リンクを入力する\"] } } }, { \"l\": \"ko\", \"t\": { \"Enter link\": { \"v\": [\"링크 입력\"] } } }, { \"l\": \"lo\", \"t\": { \"Enter link\": { \"v\": [\"ປ້ອນລິງ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Enter link\": { \"v\": [\"Внеси линк\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Enter link\": { \"v\": [\"Skriv inn lenken\"] } } }, { \"l\": \"nl\", \"t\": { \"Enter link\": { \"v\": [\"Link invoeren\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Enter link\": { \"v\": [\"Wprowadź link\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Enter link\": { \"v\": [\"Insira o link\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Enter link\": { \"v\": [\"Inserir hiperligação\"] } } }, { \"l\": \"ro\", \"t\": { \"Enter link\": { \"v\": [\"Introduceți link-ul\"] } } }, { \"l\": \"ru\", \"t\": { \"Enter link\": { \"v\": [\"Введите ссылку\"] } } }, { \"l\": \"sk\", \"t\": { \"Enter link\": { \"v\": [\"Vložiť link\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Enter link\": { \"v\": [\"Унесите линк\"] } } }, { \"l\": \"sv\", \"t\": { \"Enter link\": { \"v\": [\"Ange länk\"] } } }, { \"l\": \"tr\", \"t\": { \"Enter link\": { \"v\": [\"Bağlantıyı yazın\"] } } }, { \"l\": \"uk\", \"t\": { \"Enter link\": { \"v\": [\"Зазначте посилання\"] } } }, { \"l\": \"uz\", \"t\": { \"Enter link\": { \"v\": [\"Havolani kiriting\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Enter link\": { \"v\": [\"输入链接\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Enter link\": { \"v\": [\"輸入連結\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Enter link\": { \"v\": [\"輸入連結\"] } } }];\nconst t28 = [{ \"l\": \"ar\", \"t\": { \"Hide details\": { \"v\": [\"أخفِ التفاصيل\"] }, \"Rename project\": { \"v\": [\"تغيير اسم المشروع\"] }, \"Show details\": { \"v\": [\"أظهِر التفاصيل\"] } } }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Hide details\": { \"v\": [\"Skrýt podrobnosti\"] }, \"Rename project\": { \"v\": [\"Přejmenovat projekt\"] }, \"Show details\": { \"v\": [\"Zobrazit podrobnosti\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Hide details\": { \"v\": [\"Skjul detaljer\"] }, \"Rename project\": { \"v\": [\"Omdøb projekt\"] }, \"Show details\": { \"v\": [\"Vis detaljer\"] } } }, { \"l\": \"de\", \"t\": { \"Hide details\": { \"v\": [\"Details ausblenden\"] }, \"Rename project\": { \"v\": [\"Projekt umbenennen\"] }, \"Show details\": { \"v\": [\"Details anzeigen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Hide details\": { \"v\": [\"Details ausblenden\"] }, \"Rename project\": { \"v\": [\"Projekt umbenennen\"] }, \"Show details\": { \"v\": [\"Details anzeigen\"] } } }, { \"l\": \"el\", \"t\": { \"Hide details\": { \"v\": [\"Απόκρυψη λεπτομερειών\"] }, \"Rename project\": { \"v\": [\"Μετονομασία έργου\"] }, \"Show details\": { \"v\": [\"Εμφάνιση λεπτομερειών\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Hide details\": { \"v\": [\"Hide details\"] }, \"Rename project\": { \"v\": [\"Rename project\"] }, \"Show details\": { \"v\": [\"Show details\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": { \"Hide details\": { \"v\": [\"Ocultar detalles\"] }, \"Rename project\": { \"v\": [\"Renombrar proyecto\"] }, \"Show details\": { \"v\": [\"Mostrar detalles\"] } } }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": { \"Hide details\": { \"v\": [\"Ocultar detalles\"] }, \"Rename project\": { \"v\": [\"Renombrar proyecto\"] }, \"Show details\": { \"v\": [\"Mostrar detalles\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Hide details\": { \"v\": [\"Peida üksikasjad\"] }, \"Rename project\": { \"v\": [\"Muuda projekti nime\"] }, \"Show details\": { \"v\": [\"Näita üksikasju\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"Hide details\": { \"v\": [\"پنهان کردن جزئیات\"] }, \"Rename project\": { \"v\": [\"تغییر نام پروژه\"] }, \"Show details\": { \"v\": [\"نمایش جزئیات\"] } } }, { \"l\": \"fi\", \"t\": { \"Hide details\": { \"v\": [\"Piilota yksityiskohdat\"] }, \"Rename project\": { \"v\": [\"Nimeä projekti\"] }, \"Show details\": { \"v\": [\"Näytä yksityiskohdat\"] } } }, { \"l\": \"fr\", \"t\": { \"Hide details\": { \"v\": [\"Masquer les détails\"] }, \"Rename project\": { \"v\": [\"Renommer le projet\"] }, \"Show details\": { \"v\": [\"Afficher les détails\"] } } }, { \"l\": \"ga\", \"t\": { \"Hide details\": { \"v\": [\"Folaigh sonraí\"] }, \"Rename project\": { \"v\": [\"Athainmnigh an tionscadal\"] }, \"Show details\": { \"v\": [\"Taispeáin sonraí\"] } } }, { \"l\": \"gl\", \"t\": { \"Hide details\": { \"v\": [\"Agochar os detalles\"] }, \"Rename project\": { \"v\": [\"Cambiar o nome do proxecto\"] }, \"Show details\": { \"v\": [\"Amosar os detalles\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": {} }, { \"l\": \"is\", \"t\": { \"Hide details\": { \"v\": [\"Fela nánari upplýsingar\"] }, \"Rename project\": { \"v\": [\"Endurnefna verkefni\"] }, \"Show details\": { \"v\": [\"Birta nánari upplýsingar\"] } } }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Hide details\": { \"v\": [\"詳細を非表示\"] }, \"Rename project\": { \"v\": [\"プロジェクト名を変更\"] }, \"Show details\": { \"v\": [\"詳細の表示\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": { \"Hide details\": { \"v\": [\"세부 사항 숨기기\"] }, \"Rename project\": { \"v\": [\"프로젝트 이름 변경\"] }, \"Show details\": { \"v\": [\"세부 사항 보기\"] } } }, { \"l\": \"lo\", \"t\": { \"Hide details\": { \"v\": [\"ເຊື່ອງລາຍລະອຽດ\"] }, \"Rename project\": { \"v\": [\"ປ່ຽນຊື່ໂຄງການ\"] }, \"Show details\": { \"v\": [\"ສະແດງລາຍລະອຽດ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Hide details\": { \"v\": [\"Сокриј детали\"] }, \"Rename project\": { \"v\": [\"Преименувај проект\"] }, \"Show details\": { \"v\": [\"Прикажи детали\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Hide details\": { \"v\": [\"Skjul detaljer\"] }, \"Rename project\": { \"v\": [\"Gi prosjekt nytt navn\"] }, \"Show details\": { \"v\": [\"Vis detaljer\"] } } }, { \"l\": \"nl\", \"t\": { \"Hide details\": { \"v\": [\"Details verbergen\"] }, \"Rename project\": { \"v\": [\"Project hernoemen\"] }, \"Show details\": { \"v\": [\"Details weergeven\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Hide details\": { \"v\": [\"Ukryj szczegóły\"] }, \"Rename project\": { \"v\": [\"Zmień nazwę projektu\"] }, \"Show details\": { \"v\": [\"Pokaż szczegóły\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Hide details\": { \"v\": [\"Ocultar detalhes\"] }, \"Rename project\": { \"v\": [\"Renomear projeto\"] }, \"Show details\": { \"v\": [\"Mostrar detalhes\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Hide details\": { \"v\": [\"Ocultar detalhes\"] }, \"Rename project\": { \"v\": [\"Alterar nome do projeto\"] }, \"Show details\": { \"v\": [\"Ver detalhes\"] } } }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Hide details\": { \"v\": [\"Скрыть подробности\"] }, \"Rename project\": { \"v\": [\"Переименовать проект\"] }, \"Show details\": { \"v\": [\"Показать детали\"] } } }, { \"l\": \"sk\", \"t\": { \"Hide details\": { \"v\": [\"Skryť detaily\"] }, \"Rename project\": { \"v\": [\"Premenovať projekt\"] }, \"Show details\": { \"v\": [\"Zobraziť detaily\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Hide details\": { \"v\": [\"Сакриј детаље\"] }, \"Rename project\": { \"v\": [\"Промени име пројекта\"] }, \"Show details\": { \"v\": [\"Прикажи детаље\"] } } }, { \"l\": \"sv\", \"t\": { \"Hide details\": { \"v\": [\"Göm detaljer\"] }, \"Rename project\": { \"v\": [\"Byt namn på projektet\"] }, \"Show details\": { \"v\": [\"Visa detaljer\"] } } }, { \"l\": \"tr\", \"t\": { \"Hide details\": { \"v\": [\"Ayrıntıları gizle\"] }, \"Rename project\": { \"v\": [\"Projeyi yeniden adlandır\"] }, \"Show details\": { \"v\": [\"Ayrıntıları görüntüle\"] } } }, { \"l\": \"uk\", \"t\": { \"Hide details\": { \"v\": [\"Сховати деталі\"] }, \"Rename project\": { \"v\": [\"Перейменувати проєкт\"] }, \"Show details\": { \"v\": [\"Показати деталі\"] } } }, { \"l\": \"uz\", \"t\": { \"Hide details\": { \"v\": [\"Tafsilotlarni yashirish\"] }, \"Rename project\": { \"v\": [\"Loyiha nomini o'zgartirish\"] }, \"Show details\": { \"v\": [\"Tafsilotlarni ko'rsatish\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Hide details\": { \"v\": [\"隐藏细节\"] }, \"Rename project\": { \"v\": [\"重命名项目\"] }, \"Show details\": { \"v\": [\"显示细节\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Hide details\": { \"v\": [\"隱藏詳情\"] }, \"Rename project\": { \"v\": [\"重命名方案\"] }, \"Show details\": { \"v\": [\"顯示詳情\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Hide details\": { \"v\": [\"隱藏詳細資料\"] }, \"Rename project\": { \"v\": [\"重新命名專案\"] }, \"Show details\": { \"v\": [\"顯示詳細資訊\"] } } }];\nconst t32 = [{ \"l\": \"ar\", \"t\": { 'Load more \"{options}\"': { \"v\": ['تحميل المزيد من \"{options}\" '] }, \"Raw link {options}\": { \"v\": [\" الرابط الخام raw link ـ {options}\"] }, \"Start typing to search\": { \"v\": [\"إبدإ كتابة مفردات البحث\"] } } }, { \"l\": \"ast\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"Cargar más «{options}»\"] }, \"Raw link {options}\": { \"v\": [\"Enllaz en bruto {optiones}\"] }, \"Start typing to search\": { \"v\": [\"Comienza a escribir pa buscar\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"Načíst další „{options}“\"] }, \"Raw link {options}\": { \"v\": [\"Holý odkaz {options}\"] }, \"Start typing to search\": { \"v\": [\"Vyhledávejte psaním\"] } } }, { \"l\": \"cs-CZ\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"Načíst další „{options}“\"] }, \"Raw link {options}\": { \"v\": [\"Holý odkaz {options}\"] }, \"Start typing to search\": { \"v\": [\"Vyhledávejte psaním\"] } } }, { \"l\": \"da\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Indlæs flere \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Rå link {options}\"] }, \"Start typing to search\": { \"v\": [\"Begynd at skrive for at søge\"] } } }, { \"l\": \"de\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Weitere \"{options}\" laden'] }, \"Raw link {options}\": { \"v\": [\"Unverarbeiteter Link {options}\"] }, \"Start typing to search\": { \"v\": [\"Mit der Eingabe beginnen, um zu suchen\"] } } }, { \"l\": \"de-DE\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Weitere \"{options}\" laden'] }, \"Raw link {options}\": { \"v\": [\"Unverarbeiteter Link {options}\"] }, \"Start typing to search\": { \"v\": [\"Mit der Eingabe beginnen, um zu suchen\"] } } }, { \"l\": \"el\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Φόρτωση περισσότερων \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Ακατέργαστος σύνδεσμος {options}\"] }, \"Start typing to search\": { \"v\": [\"Ξεκινήστε να πληκτρολογείτε για αναζήτηση\"] } } }, { \"l\": \"en-GB\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Load more \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Raw link {options}\"] }, \"Start typing to search\": { \"v\": [\"Start typing to search\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Cargar más \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Enlace directo {options}\"] }, \"Start typing to search\": { \"v\": [\"Comience a escribir para buscar\"] } } }, { \"l\": \"es-AR\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Cargar más \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Enlace directo {options}\"] }, \"Start typing to search\": { \"v\": [\"Comience a escribir para buscar\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Raw link {options}\": { \"v\": [\"Enlace directo {options}\"] }, \"Start typing to search\": { \"v\": [\"Comienza a escribir para buscar\"] } } }, { \"l\": \"es-MX\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Cargar más \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Enlace directo {options}\"] }, \"Start typing to search\": { \"v\": [\"Comience a escribir para buscar\"] } } }, { \"l\": \"et-EE\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"Laadi veel „{options}“\"] }, \"Raw link {options}\": { \"v\": [\"Töötlemata link: {options}\"] }, \"Start typing to search\": { \"v\": [\"Alusta otsinguks sisestamist\"] } } }, { \"l\": \"eu\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Kargatu \"{options}\" gehiago'] }, \"Raw link {options}\": { \"v\": [\"Formaturik gabeko esteka {aukerak}\"] }, \"Start typing to search\": { \"v\": [\"Hasi idazten bilatzeko\"] } } }, { \"l\": \"fa\", \"t\": { 'Load more \"{options}\"': { \"v\": ['بارگذاری بیشتر \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"پیوند خام {options}\"] }, \"Start typing to search\": { \"v\": [\"برای جستجو تایپ کنید\"] } } }, { \"l\": \"fi\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Lataa lisää \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Raaka linkki {options}\"] }, \"Start typing to search\": { \"v\": [\"Aloita kirjoittaminen hakeaksesi\"] } } }, { \"l\": \"fr\", \"t\": { 'Load more \"{options}\"': { \"v\": [`Charger d'avantage \"{options}\"`] }, \"Raw link {options}\": { \"v\": [\"Lien brut {options}\"] }, \"Start typing to search\": { \"v\": [\"Commencez à écrire pour rechercher\"] } } }, { \"l\": \"ga\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Luchtaigh tuilleadh \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Nasc amh {roghanna}\"] }, \"Start typing to search\": { \"v\": [\"Tosaigh ag clóscríobh chun cuardach a dhéanamh\"] } } }, { \"l\": \"gl\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"Cargar máis «{options}»\"] }, \"Raw link {options}\": { \"v\": [\"Ligazón sen procesar {options}\"] }, \"Start typing to search\": { \"v\": [\"Comece a escribir para buscar\"] } } }, { \"l\": \"he\", \"t\": { \"Raw link {options}\": { \"v\": [\"קישור גולמי {options}\"] }, \"Start typing to search\": { \"v\": [\"התחלת הקלדה מחפשת\"] } } }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Muat \"{options}\" lainnya'] }, \"Raw link {options}\": { \"v\": [\"Tautan mentah {options}\"] }, \"Start typing to search\": { \"v\": [\"Ketik untuk mulai mencari\"] } } }, { \"l\": \"is\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Hlaða inn fleiri \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Hrár tengill {options}\"] }, \"Start typing to search\": { \"v\": [\"Byrjaðu að skrifa til að leita\"] } } }, { \"l\": \"it\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Carica più \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Raw link {options}\"] }, \"Start typing to search\": { \"v\": [\"Iniziare a digitare per effettuare la ricerca\"] } } }, { \"l\": \"ja\", \"t\": { 'Load more \"{options}\"': { \"v\": ['\"{options}\" をもっと読み込む'] }, \"Raw link {options}\": { \"v\": [\"未加工のリンク {options}\"] }, \"Start typing to search\": { \"v\": [\"入力を開始して検索します\"] } } }, { \"l\": \"ja-JP\", \"t\": { 'Load more \"{options}\"': { \"v\": ['\"{options}\" をもっと読み込む'] }, \"Raw link {options}\": { \"v\": [\"未加工のリンク {options}\"] }, \"Start typing to search\": { \"v\": [\"入力を開始して検索します\"] } } }, { \"l\": \"ko\", \"t\": { 'Load more \"{options}\"': { \"v\": ['\"{options}\" 더 불러오기'] }, \"Raw link {options}\": { \"v\": [\"{options} 원본 링크\"] }, \"Start typing to search\": { \"v\": [\"입력하여 검색\"] } } }, { \"l\": \"lo\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"ໂຫຼດ “{options}” ເພີ່ມເຕີມ\"] }, \"Raw link {options}\": { \"v\": [\"ລິງດິບ {options}\"] }, \"Start typing to search\": { \"v\": [\"ເລີ່ມພິມເພື່ອຄົ້ນຫາ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Вчитај повеќе \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Суров линк {options}\"] }, \"Start typing to search\": { \"v\": [\"Почни да пишуваш за пребарување\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Last inn flere \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Rå lenke {options}\"] }, \"Start typing to search\": { \"v\": [\"Start å skrive for å søke\"] } } }, { \"l\": \"nl\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Meer \"{options}\" laden'] }, \"Raw link {options}\": { \"v\": [\"Ruwe link {options}\"] }, \"Start typing to search\": { \"v\": [\"Start met typen om te zoeken\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Załaduj więcej \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Surowy odnośnik {options}\"] }, \"Start typing to search\": { \"v\": [\"Zacznij pisać, aby wyszukać\"] } } }, { \"l\": \"pt-BR\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Carregar mais \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Link bruto {options}\"] }, \"Start typing to search\": { \"v\": [\"Comece a digitar para pesquisar\"] } } }, { \"l\": \"pt-PT\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Carregar mais \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Link inicial {options}\"] }, \"Start typing to search\": { \"v\": [\"Comece a digitar para pesquisar\"] } } }, { \"l\": \"ro\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Încarcă mai multe \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Link brut {options}\"] }, \"Start typing to search\": { \"v\": [\"Tastați pentru căutare\"] } } }, { \"l\": \"ru\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Загрузить больше \"{options}\"\"'] }, \"Raw link {options}\": { \"v\": [\"Необработанная ссылка {options}\"] }, \"Start typing to search\": { \"v\": [\"Начните вводить текст для поиска\"] } } }, { \"l\": \"sk\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Načítať viac \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Raw odkaz {options}\"] }, \"Start typing to search\": { \"v\": [\"Začnite písať pre vyhľadávanie\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"Учитај још „{options}”\"] }, \"Raw link {options}\": { \"v\": [\"Сирови линк {options}\"] }, \"Start typing to search\": { \"v\": [\"Покрените претрагу куцањем\"] } } }, { \"l\": \"sv\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Ladda fler \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Oformaterad länk {options}\"] }, \"Start typing to search\": { \"v\": [\"Börja skriva för att söka\"] } } }, { \"l\": \"tr\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Diğer \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Ham bağlantı {options}\"] }, \"Start typing to search\": { \"v\": [\"Aramak için yazmaya başlayın\"] } } }, { \"l\": \"uk\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Завантажити більше \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Пряме посилання {options}\"] }, \"Start typing to search\": { \"v\": [\"Почніть вводити для пошуку\"] } } }, { \"l\": \"uz\", \"t\": { 'Load more \"{options}\"': { \"v\": [`Ko'proq yuklash \"{options}\"`] }, \"Raw link {options}\": { \"v\": [\" {options}satr havolasi\"] }, \"Start typing to search\": { \"v\": [\"Qidirish uchun yozishni boshlang\"] } } }, { \"l\": \"zh-CN\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"加载更多 “{options}”\"] }, \"Raw link {options}\": { \"v\": [\"原始链接 {options}\"] }, \"Start typing to search\": { \"v\": [\"开始输入以进行搜索\"] } } }, { \"l\": \"zh-HK\", \"t\": { 'Load more \"{options}\"': { \"v\": ['載入更多 \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"原始連結 {options}\"] }, \"Start typing to search\": { \"v\": [\"開始輸入以進行搜尋\"] } } }, { \"l\": \"zh-TW\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"載入更多「{options}」\"] }, \"Raw link {options}\": { \"v\": [\"原始連結 {options}\"] }, \"Start typing to search\": { \"v\": [\"開始輸入以進行搜尋\"] } } }];\nconst t34 = [{ \"l\": \"ar\", \"t\": { \"No link provider found\": { \"v\": [\"لا يوجد أيّ مزود روابط link provider\"] }, \"Write a message …\": { \"v\": [\"أكتب رسالة ...\"] } } }, { \"l\": \"ast\", \"t\": { \"No link provider found\": { \"v\": [\"Nun s'atopó nengún fornidor d'enllaces\"] }, \"Write a message …\": { \"v\": [\"Escribi un mensaxe…\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Dosaženo limitu počtu %n znaku zprávy\", \"Dosaženo limitu počtu %n znaků zprávy\", \"Dosaženo limitu počtu %n znaků zprávy\", \"Dosaženo limitu počtu %n znaků zprávy\"] }, \"No link provider found\": { \"v\": [\"Nenalezen žádný poskytovatel odkazů\"] }, \"Write a message …\": { \"v\": [\"Napište zprávu …\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"No link provider found\": { \"v\": [\"Nenalezen žádný poskytovatel odkazů\"] }, \"Write a message …\": { \"v\": [\"Napsat zprávu…\"] } } }, { \"l\": \"da\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Beskedgrænsen på %n tegn er nået\", \"Beskedgrænsen på %n tegn er nået\"] }, \"No link provider found\": { \"v\": [\"Ingen linkudbyder fundet\"] }, \"Write a message …\": { \"v\": [\"Skriv en besked ...\"] } } }, { \"l\": \"de\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Nachrichtenlimit von %n Zeichen erreicht\", \"Nachrichtenlimit von %n Zeichen erreicht\"] }, \"No link provider found\": { \"v\": [\"Kein Linkanbieter gefunden\"] }, \"Write a message …\": { \"v\": [\"Nachricht schreiben …\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Nachrichtenlimit von %n Zeichen erreicht\", \"Nachrichtenlimit von %n Zeichen erreicht\"] }, \"No link provider found\": { \"v\": [\"Kein Linkanbieter gefunden\"] }, \"Write a message …\": { \"v\": [\"Nachricht schreiben …\"] } } }, { \"l\": \"el\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Έφτασε το όριο μηνύματος των %n χαρακτήρων\", \"Έφτασε το όριο μηνύματος των %n χαρακτήρων\"] }, \"No link provider found\": { \"v\": [\"Δεν βρέθηκε πάροχος συνδέσμου\"] }, \"Write a message …\": { \"v\": [\"Γράψτε ένα μήνυμα …\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Message limit of %n character reached\", \"Message limit of %n characters reached\"] }, \"No link provider found\": { \"v\": [\"No link provider found\"] }, \"Write a message …\": { \"v\": [\"Write a message …\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"No link provider found\": { \"v\": [\"No se encontró ningún proveedor de enlaces\"] }, \"Write a message …\": { \"v\": [\"Escriba un mensaje ...\"] } } }, { \"l\": \"es-AR\", \"t\": { \"No link provider found\": { \"v\": [\"No se encontró ningún proveedor de enlaces\"] }, \"Write a message …\": { \"v\": [\"Escriba un mensaje ...\"] } } }, { \"l\": \"es-EC\", \"t\": { \"No link provider found\": { \"v\": [\"No se encontró ningún proveedor de enlaces\"] } } }, { \"l\": \"es-MX\", \"t\": { \"No link provider found\": { \"v\": [\"No se encontró ningún proveedor de enlaces\"] }, \"Write a message …\": { \"v\": [\"Escriba un mensaje ...\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Sõnumi piirarv %n tähemärk on käes\", \"Sõnumi piirarv %n tähemärki on käes\"] }, \"No link provider found\": { \"v\": [\"Lingi pakkujat ei leitud\"] }, \"Write a message …\": { \"v\": [\"Koosta sõnum …\"] } } }, { \"l\": \"eu\", \"t\": { \"No link provider found\": { \"v\": [\"Ez da aurkitu esteka-hornitzailerik\"] }, \"Write a message …\": { \"v\": [\"Idatzi mezu bat…\"] } } }, { \"l\": \"fa\", \"t\": { \"No link provider found\": { \"v\": [\"هیچ ارائه‌دهنده پیوندی یافت نشد\"] }, \"Write a message …\": { \"v\": [\"یک پیام بنویسید ...\"] } } }, { \"l\": \"fi\", \"t\": { \"No link provider found\": { \"v\": [\"Linkin tarjoajia ei löydetty\"] }, \"Write a message …\": { \"v\": [\"Kirjoita viesti…\"] } } }, { \"l\": \"fr\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Limite de messages de %n caractère atteinte\", \"Limite de messages de %n caractères atteinte\", \"Limite de messages de %n caractères atteinte\"] }, \"No link provider found\": { \"v\": [\"Aucun fournisseur de lien trouvé\"] }, \"Write a message …\": { \"v\": [\"Ecrire un message...\"] } } }, { \"l\": \"ga\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Sroicheadh ​​teorainn teachtaireachta de %n carachtar\", \"Sroicheadh ​​teorainn teachtaireachta de %n carachtar\", \"Sroicheadh ​​teorainn teachtaireachta de %n carachtar\", \"Sroicheadh ​​teorainn teachtaireachta de %n carachtar\", \"Sroicheadh ​​teorainn teachtaireachta de %n carachtar\"] }, \"No link provider found\": { \"v\": [\"Níor aimsíodh aon soláthraí naisc\"] }, \"Write a message …\": { \"v\": [\"Scríobh teachtaireacht …\"] } } }, { \"l\": \"gl\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Acadouse o límite de %n caracter por mensaxe\", \"Acadouse o límite de %n caracteres por mensaxe\"] }, \"No link provider found\": { \"v\": [\"Non se atopou ningún provedor de ligazóns\"] }, \"Write a message …\": { \"v\": [\"Escribir unha mensaxe…\"] } } }, { \"l\": \"he\", \"t\": { \"No link provider found\": { \"v\": [\"לא נמצא ספק קישורים\"] } } }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": { \"No link provider found\": { \"v\": [\"Tidak ada penyedia tautan yang ditemukan\"] }, \"Write a message …\": { \"v\": [\"Tulis pesan ...\"] } } }, { \"l\": \"is\", \"t\": { \"No link provider found\": { \"v\": [\"Engin tenglaveita fannst\"] }, \"Write a message …\": { \"v\": [\"Skrifaðu skilaboð …\"] } } }, { \"l\": \"it\", \"t\": { \"No link provider found\": { \"v\": [\"Nessun fornitore di link trovato\"] }, \"Write a message …\": { \"v\": [\"Scrivi un messaggio ...\"] } } }, { \"l\": \"ja\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"メッセージの%n文字の制限に達しました\"] }, \"No link provider found\": { \"v\": [\"リンクプロバイダーが見つかりません\"] }, \"Write a message …\": { \"v\": [\"メッセージを書く ...\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"No link provider found\": { \"v\": [\"リンクプロバイダーが見つかりません\"] }, \"Write a message …\": { \"v\": [\"メッセージを書く ...\"] } } }, { \"l\": \"ko\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"메시지 제한 %n자에 도달\"] }, \"No link provider found\": { \"v\": [\"링크 제공자 없음\"] }, \"Write a message …\": { \"v\": [\"메시지 작성...\"] } } }, { \"l\": \"lo\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"ຮອດຂີດຈຳກັດຂໍ້ຄວາມ %n ໂຕອັກສອນແລ້ວ\"] }, \"No link provider found\": { \"v\": [\"ບໍ່ພົບຜູ້ໃຫ້ບໍລິການລິງ\"] }, \"Write a message …\": { \"v\": [\"ຂຽນຂໍ້ຄວາມ…\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Достигнат е лимит од %n карактер\", \"Достигнат е лимит од %n карактери за порака\"] }, \"No link provider found\": { \"v\": [\"Не е пронајден давател на линк\"] }, \"Write a message …\": { \"v\": [\"Напиши порака …\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"No link provider found\": { \"v\": [\"Finner ingen lenkeleverandør\"] }, \"Write a message …\": { \"v\": [\"Skriv en melding...\"] } } }, { \"l\": \"nl\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Berichtlimiet van %n teken bereikt\", \"Berichtlimiet van %n tekens bereikt\"] }, \"No link provider found\": { \"v\": [\"Geen link provider gevonden\"] }, \"Write a message …\": { \"v\": [\"Schrijf een bericht …\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"No link provider found\": { \"v\": [\"Nie znaleziono dostawcy linków\"] }, \"Write a message …\": { \"v\": [\"Napisz wiadomość…\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Limite de mensagem de %n caractere atingido\", \"Limite de mensagem de %n de caracteres atingido\", \"Limite de mensagem de %n caracteres atingido\"] }, \"No link provider found\": { \"v\": [\"Nenhum provedor de link encontrado\"] }, \"Write a message …\": { \"v\": [\"Escreva uma mensagem …\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Limite de mensagem de %n carácter atingido\", \"Limite de mensagem de %n caracteres atingido\", \"Limite de mensagem de %n caracteres atingido\"] }, \"No link provider found\": { \"v\": [\"Nenhum fornecedor de link encontrado\"] }, \"Write a message …\": { \"v\": [\"Escreva uma mensagem...\"] } } }, { \"l\": \"ro\", \"t\": { \"No link provider found\": { \"v\": [\"Nu s-a găsit un provider pentru linkuri\"] }, \"Write a message …\": { \"v\": [\"Scrieți un mesaj ...\"] } } }, { \"l\": \"ru\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Достигнут лимит в %n символ\", \"Достигнут лимит в %n символа\", \"Достигнут лимит в %n символов\", \"Достигнут лимит в %n символов\"] }, \"No link provider found\": { \"v\": [\"Поставщик ссылок не найден\"] }, \"Write a message …\": { \"v\": [\"Напишите сообщение …\"] } } }, { \"l\": \"sk\", \"t\": { \"No link provider found\": { \"v\": [\"Žiaden odkaz poskytovateľa nebol nájdený\"] }, \"Write a message …\": { \"v\": [\"Napíšte správu…\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Достигнуто је ограничење величине поруке од %n карактер\", \"Достигнуто је ограничење величине поруке од %n карактера\", \"Достигнуто је ограничење величине поруке од %n карактера\"] }, \"No link provider found\": { \"v\": [\"Није пронађен ниједан пружалац линка\"] }, \"Write a message …\": { \"v\": [\"Напишите поруку…\"] } } }, { \"l\": \"sv\", \"t\": { \"No link provider found\": { \"v\": [\"Ingen länkleverantör hittades\"] }, \"Write a message …\": { \"v\": [\"Skriv ett meddelande …\"] } } }, { \"l\": \"tr\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"İleti için %n karakter sayısı sınırına ulaşıldı\", \"İleti için %n karakter sayısı sınırına ulaşıldı\"] }, \"No link provider found\": { \"v\": [\"Bağlantı hizmeti sağlayıcısı bulunamadı\"] }, \"Write a message …\": { \"v\": [\"Bir ileti yazın…\"] } } }, { \"l\": \"uk\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Досягнуто обмеження на довжину повідомлення у %n символ.\", \"Досягнуто обмеження на довжину повідомлення у %n символи.\", \"Досягнуто обмеження на довжину повідомлення у%n символів.\", \"Досягнуто обмеження на довжину повідомлення у %n символів.\"] }, \"No link provider found\": { \"v\": [\"Не наведено посилання\"] }, \"Write a message …\": { \"v\": [\"Створити повідомлення …\"] } } }, { \"l\": \"uz\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\" %n ta belgidan iborat xabar chegarasiga yetdi\"] }, \"No link provider found\": { \"v\": [\"Hech qanday havola provayderi topilmadi\"] }, \"Write a message …\": { \"v\": [\"Xabar yozish...\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"No link provider found\": { \"v\": [\"未找到任何链接提供者\"] }, \"Write a message …\": { \"v\": [\"编写信息 ...\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"已達到訊息最多 %n 字元限制\"] }, \"No link provider found\": { \"v\": [\"找不到連結提供者\"] }, \"Write a message …\": { \"v\": [\"編寫訊息 …\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"No link provider found\": { \"v\": [\"找不到連結提供者\"] }, \"Write a message …\": { \"v\": [\"編寫訊息……\"] } } }];\nconst t35 = [{ \"l\": \"ar\", \"t\": { \"More items …\": { \"v\": [\"عناصر أخرى ...\"] } } }, { \"l\": \"ast\", \"t\": { \"More items …\": { \"v\": [\"Más elementos…\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"More items …\": { \"v\": [\"Més artícles...\"] } } }, { \"l\": \"cs\", \"t\": { \"More items …\": { \"v\": [\"Další položky …\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"More items …\": { \"v\": [\"Další položky…\"] } } }, { \"l\": \"da\", \"t\": { \"More items …\": { \"v\": [\"Flere elementer ...\"] } } }, { \"l\": \"de\", \"t\": { \"More items …\": { \"v\": [\"Weitere Elemente …\"] } } }, { \"l\": \"de-DE\", \"t\": { \"More items …\": { \"v\": [\"Weitere Elemente …\"] } } }, { \"l\": \"el\", \"t\": { \"More items …\": { \"v\": [\"Περισσότερα στοιχεία …\"] } } }, { \"l\": \"en-GB\", \"t\": { \"More items …\": { \"v\": [\"More items …\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"More items …\": { \"v\": [\"Más ítems ...\"] } } }, { \"l\": \"es-AR\", \"t\": { \"More items …\": { \"v\": [\"Más elementos...\"] } } }, { \"l\": \"es-EC\", \"t\": { \"More items …\": { \"v\": [\"Más elementos...\"] } } }, { \"l\": \"es-MX\", \"t\": { \"More items …\": { \"v\": [\"Más Elementos ...\"] } } }, { \"l\": \"et-EE\", \"t\": { \"More items …\": { \"v\": [\"Vaata veel …\"] } } }, { \"l\": \"eu\", \"t\": { \"More items …\": { \"v\": [\"Elementu gehiago …\"] } } }, { \"l\": \"fa\", \"t\": { \"More items …\": { \"v\": [\"موارد بیشتر ...\"] } } }, { \"l\": \"fi\", \"t\": { \"More items …\": { \"v\": [\"Lisää kohteita…\"] } } }, { \"l\": \"fr\", \"t\": { \"More items …\": { \"v\": [\"Plus d'éléments...\"] } } }, { \"l\": \"ga\", \"t\": { \"More items …\": { \"v\": [\"Tuilleadh míreanna …\"] } } }, { \"l\": \"gl\", \"t\": { \"More items …\": { \"v\": [\"Máis elementos…\"] } } }, { \"l\": \"he\", \"t\": { \"More items …\": { \"v\": [\"פריטים נוספים…\"] } } }, { \"l\": \"hu\", \"t\": { \"More items …\": { \"v\": [\"További elemek...\"] } } }, { \"l\": \"id\", \"t\": { \"More items …\": { \"v\": [\"Item lainnya…\"] } } }, { \"l\": \"is\", \"t\": { \"More items …\": { \"v\": [\"Fleiri atriði …\"] } } }, { \"l\": \"it\", \"t\": { \"More items …\": { \"v\": [\"Più elementi ...\"] } } }, { \"l\": \"ja\", \"t\": { \"More items …\": { \"v\": [\"他のアイテム …\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"More items …\": { \"v\": [\"他のアイテム\"] } } }, { \"l\": \"ko\", \"t\": { \"More items …\": { \"v\": [\"항목 더 보기...\"] } } }, { \"l\": \"lo\", \"t\": { \"More items …\": { \"v\": [\"ລາຍການເພີ່ມເຕີມ…\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"More items …\": { \"v\": [\"Повеќе елементи …\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"More items …\": { \"v\": [\"Flere gjenstander...\"] } } }, { \"l\": \"nl\", \"t\": { \"More items …\": { \"v\": [\"Meer items …\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"More items …\": { \"v\": [\"Więcej pozycji…\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"More items …\": { \"v\": [\"Mais itens …\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"More items …\": { \"v\": [\"Mais itens…\"] } } }, { \"l\": \"ro\", \"t\": { \"More items …\": { \"v\": [\"Mai multe articole ...\"] } } }, { \"l\": \"ru\", \"t\": { \"More items …\": { \"v\": [\"Больше элементов …\"] } } }, { \"l\": \"sk\", \"t\": { \"More items …\": { \"v\": [\"Viac položiek...\"] } } }, { \"l\": \"sl\", \"t\": { \"More items …\": { \"v\": [\"Več predmetov ...\"] } } }, { \"l\": \"sr\", \"t\": { \"More items …\": { \"v\": [\"Још ставки...\"] } } }, { \"l\": \"sv\", \"t\": { \"More items …\": { \"v\": [\"Fler objekt …\"] } } }, { \"l\": \"tr\", \"t\": { \"More items …\": { \"v\": [\"Diğer ögeler…\"] } } }, { \"l\": \"uk\", \"t\": { \"More items …\": { \"v\": [\"Більше …\"] } } }, { \"l\": \"uz\", \"t\": { \"More items …\": { \"v\": [\"Yana elementlar...\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"More items …\": { \"v\": [\"更多项目…\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"More items …\": { \"v\": [\"更多項目 …\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"More items …\": { \"v\": [\"更多項目……\"] } } }];\nconst t37 = [{ \"l\": \"ar\", \"t\": { \"No emoji found\": { \"v\": [\"لم يتم العثور على أي إيموجي emoji\"] } } }, { \"l\": \"ast\", \"t\": { \"No emoji found\": { \"v\": [\"Nun s'atopó nengún fustaxe\"] } } }, { \"l\": \"br\", \"t\": { \"No emoji found\": { \"v\": [\"Emoji ebet kavet\"] } } }, { \"l\": \"ca\", \"t\": { \"No emoji found\": { \"v\": [\"No s'ha trobat cap emoji\"] } } }, { \"l\": \"cs\", \"t\": { \"No emoji found\": { \"v\": [\"Nenalezeno žádné emoji\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"No emoji found\": { \"v\": [\"Nenalezeno žádné emoji\"] } } }, { \"l\": \"da\", \"t\": { \"No emoji found\": { \"v\": [\"Ingen emoji fundet\"] } } }, { \"l\": \"de\", \"t\": { \"No emoji found\": { \"v\": [\"Kein Emoji gefunden\"] } } }, { \"l\": \"de-DE\", \"t\": { \"No emoji found\": { \"v\": [\"Kein Emoji gefunden\"] } } }, { \"l\": \"el\", \"t\": { \"No emoji found\": { \"v\": [\"Δεν βρέθηκε emoji\"] } } }, { \"l\": \"en-GB\", \"t\": { \"No emoji found\": { \"v\": [\"No emoji found\"] } } }, { \"l\": \"eo\", \"t\": { \"No emoji found\": { \"v\": [\"La emoĝio forestas\"] } } }, { \"l\": \"es\", \"t\": { \"No emoji found\": { \"v\": [\"No se encontró ningún emoji\"] } } }, { \"l\": \"es-AR\", \"t\": { \"No emoji found\": { \"v\": [\"No se encontró ningún emoji\"] } } }, { \"l\": \"es-EC\", \"t\": { \"No emoji found\": { \"v\": [\"No se encontró ningún emoji\"] } } }, { \"l\": \"es-MX\", \"t\": { \"No emoji found\": { \"v\": [\"No se encontró ningún emoji\"] } } }, { \"l\": \"et-EE\", \"t\": { \"No emoji found\": { \"v\": [\"Emojit ei leitud\"] } } }, { \"l\": \"eu\", \"t\": { \"No emoji found\": { \"v\": [\"Ez da emojirik aurkitu\"] } } }, { \"l\": \"fa\", \"t\": { \"No emoji found\": { \"v\": [\"هیچ شکلکی یافت نشد\"] } } }, { \"l\": \"fi\", \"t\": { \"No emoji found\": { \"v\": [\"Emojia ei löytynyt\"] } } }, { \"l\": \"fr\", \"t\": { \"No emoji found\": { \"v\": [\"Pas d’émoji trouvé\"] } } }, { \"l\": \"ga\", \"t\": { \"No emoji found\": { \"v\": [\"Níor aimsíodh emoji\"] } } }, { \"l\": \"gl\", \"t\": { \"No emoji found\": { \"v\": [\"Non se atopou ningún «emoji»\"] } } }, { \"l\": \"he\", \"t\": { \"No emoji found\": { \"v\": [\"לא נמצא אמוג׳י\"] } } }, { \"l\": \"hu\", \"t\": { \"No emoji found\": { \"v\": [\"Nem található emodzsi\"] } } }, { \"l\": \"id\", \"t\": { \"No emoji found\": { \"v\": [\"Tidak ada emoji yang ditemukan\"] } } }, { \"l\": \"is\", \"t\": { \"No emoji found\": { \"v\": [\"Ekkert tjáningartákn fannst\"] } } }, { \"l\": \"it\", \"t\": { \"No emoji found\": { \"v\": [\"Nessun emoji trovato\"] } } }, { \"l\": \"ja\", \"t\": { \"No emoji found\": { \"v\": [\"絵文字が見つかりません\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"No emoji found\": { \"v\": [\"絵文字が見つかりません\"] } } }, { \"l\": \"ko\", \"t\": { \"No emoji found\": { \"v\": [\"이모지 없음\"] } } }, { \"l\": \"lo\", \"t\": { \"No emoji found\": { \"v\": [\"ບໍ່ພົບອີໂມຈິ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"No emoji found\": { \"v\": [\"Nerasta jaustukų\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"No emoji found\": { \"v\": [\"Не се пронајдени емотикони\"] } } }, { \"l\": \"my\", \"t\": { \"No emoji found\": { \"v\": [\"အီမိုဂျီ ရှာဖွေမတွေ့နိုင်ပါ\"] } } }, { \"l\": \"nb\", \"t\": { \"No emoji found\": { \"v\": [\"Fant ingen emoji\"] } } }, { \"l\": \"nl\", \"t\": { \"No emoji found\": { \"v\": [\"Geen emoji gevonden\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"No emoji found\": { \"v\": [\"Nie znaleziono emoji\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"No emoji found\": { \"v\": [\"Nenhum emoji encontrado\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"No emoji found\": { \"v\": [\"Nenhum emoji encontrado\"] } } }, { \"l\": \"ro\", \"t\": { \"No emoji found\": { \"v\": [\"Nu s-a găsit niciun emoji\"] } } }, { \"l\": \"ru\", \"t\": { \"No emoji found\": { \"v\": [\"Эмодзи не найдено\"] } } }, { \"l\": \"sk\", \"t\": { \"No emoji found\": { \"v\": [\"Nenašli sa žiadne emodži\"] } } }, { \"l\": \"sl\", \"t\": { \"No emoji found\": { \"v\": [\"Ni najdenih izraznih ikon\"] } } }, { \"l\": \"sr\", \"t\": { \"No emoji found\": { \"v\": [\"Није пронађен ниједан емођи\"] } } }, { \"l\": \"sv\", \"t\": { \"No emoji found\": { \"v\": [\"Hittade inga emojis\"] } } }, { \"l\": \"tr\", \"t\": { \"No emoji found\": { \"v\": [\"Herhangi bir emoji bulunamadı\"] } } }, { \"l\": \"uk\", \"t\": { \"No emoji found\": { \"v\": [\"Емоційки відсутні\"] } } }, { \"l\": \"uz\", \"t\": { \"No emoji found\": { \"v\": [\"Hech qanday emoji topilmadi\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"No emoji found\": { \"v\": [\"表情未找到\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"No emoji found\": { \"v\": [\"未找到表情符號\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"No emoji found\": { \"v\": [\"未找到表情符號\"] } } }];\nconst t38 = [{ \"l\": \"ar\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['إفتَح الرابط إلى \"{resourceName}\"'] } } }, { \"l\": \"ast\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"Abrir l'enllaz a «{resourceName}»\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"Otevřít odkaz na „{resourceName}“\"] } } }, { \"l\": \"cs-CZ\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"Otevřít odkaz na „{resourceName}“\"] } } }, { \"l\": \"da\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Åbn link til \"{resourceName}\"'] } } }, { \"l\": \"de\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Link zu \"{resourceName}\" öffnen'] } } }, { \"l\": \"de-DE\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Link zu \"{resourceName}\" öffnen'] } } }, { \"l\": \"el\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Άνοιγμα συνδέσμου για \"{resourceName}\"'] } } }, { \"l\": \"en-GB\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Open link to \"{resourceName}\"'] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Abrir enlace a \"{resourceName}\"'] } } }, { \"l\": \"es-AR\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Abrir enlace a \"{resourceName}\"'] } } }, { \"l\": \"es-EC\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Abrir enlace a \"{resourceName}\"'] } } }, { \"l\": \"es-MX\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Abrir enlace a \"{resourceName}\"'] } } }, { \"l\": \"et-EE\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"Ava link „{resourceName}“\"] } } }, { \"l\": \"eu\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Ireki \"{resourceName}\" esteka'] } } }, { \"l\": \"fa\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"باز کردن پیوند به «{resourceName}»\"] } } }, { \"l\": \"fi\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Avaa linkki \"{resourceName}\"'] } } }, { \"l\": \"fr\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Ouvrir le lien vers \"{resourceName}\"'] } } }, { \"l\": \"ga\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Oscail nasc chuig \"{resourceName}\"'] } } }, { \"l\": \"gl\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"Abrir a ligazón a «{resourceName}»\"] } } }, { \"l\": \"he\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"פתיחת קישור אל „{resourceName}”\"] } } }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Buka tautan ke \"{resourceName}\"'] } } }, { \"l\": \"is\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Opna tengil í \"{resourceName}\"'] } } }, { \"l\": \"it\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Apri il link a \"{resourceName}\"'] } } }, { \"l\": \"ja\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['\"{resourceName}\" へのリンクを開く'] } } }, { \"l\": \"ja-JP\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['\"{resourceName}\" へのリンクを開く'] } } }, { \"l\": \"ko\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['\"{resourceName}\"의 링크 열기'] } } }, { \"l\": \"lo\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"ເປີດລິງໄປທີ່ “{resourceName}”\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Отвори линк до \"{resourceName}\"'] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Åpne lenken til \"{resourceName}\"'] } } }, { \"l\": \"nl\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Link naar \"{resourceName}\" openen'] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Otwórz link do \"{resourceName}\"'] } } }, { \"l\": \"pt-BR\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Abrir o link para \"{resourceName}\"'] } } }, { \"l\": \"pt-PT\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Abrir link para \"{resourceName}\"'] } } }, { \"l\": \"ro\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Deschide linkul la \"{resourceName}\"'] } } }, { \"l\": \"ru\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Открыть ссылку на \"{resourceName}\"'] } } }, { \"l\": \"sk\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Otvoriť link v \"{resourceName}\"'] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"Отвори линк на „{resourceName}”\"] } } }, { \"l\": \"sv\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Öppna länken till \"{resourceName}\"'] } } }, { \"l\": \"tr\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Bağlantıyı \"{resourceName}\" üzerine aç'] } } }, { \"l\": \"uk\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Відкрити посилання на \"{resourceName}\"'] } } }, { \"l\": \"uz\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [' \"{resourceName}\" ga havolani ochish'] } } }, { \"l\": \"zh-CN\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"打开 “{resourceName}” 的链接\"] } } }, { \"l\": \"zh-HK\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"開啟到「{resourceName}」的連結\"] } } }, { \"l\": \"zh-TW\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"開啟到「{resourceName}」的連結\"] } } }];\nconst t40 = [{ \"l\": \"ar\", \"t\": { \"Provider icon\": { \"v\": [\"أيقونة المزوّد\"] } } }, { \"l\": \"ast\", \"t\": { \"Provider icon\": { \"v\": [\"Iconu del fornidor\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Provider icon\": { \"v\": [\"Ikona poskytovatele\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Provider icon\": { \"v\": [\"Ikona poskytovatele\"] } } }, { \"l\": \"da\", \"t\": { \"Provider icon\": { \"v\": [\"Udbyder ikon\"] } } }, { \"l\": \"de\", \"t\": { \"Provider icon\": { \"v\": [\"Anbietersymbol\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Provider icon\": { \"v\": [\"Anbietersymbol\"] } } }, { \"l\": \"el\", \"t\": { \"Provider icon\": { \"v\": [\"Εικονίδιο παρόχου\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Provider icon\": { \"v\": [\"Provider icon\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Provider icon\": { \"v\": [\"Ícono del proveedor\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Provider icon\": { \"v\": [\"Ícono del proveedor\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Provider icon\": { \"v\": [\"Ícono del proveedor\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Provider icon\": { \"v\": [\"Ícono del proveedor\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Provider icon\": { \"v\": [\"Teenusepakkuja ikoon\"] } } }, { \"l\": \"eu\", \"t\": { \"Provider icon\": { \"v\": [\"Hornitzailearen ikonoa\"] } } }, { \"l\": \"fa\", \"t\": { \"Provider icon\": { \"v\": [\"آیکون ارائه دهنده\"] } } }, { \"l\": \"fi\", \"t\": { \"Provider icon\": { \"v\": [\"Palveluntarjoajan kuvake\"] } } }, { \"l\": \"fr\", \"t\": { \"Provider icon\": { \"v\": [\"Icône du fournisseur\"] } } }, { \"l\": \"ga\", \"t\": { \"Provider icon\": { \"v\": [\"Deilbhín soláthraí\"] } } }, { \"l\": \"gl\", \"t\": { \"Provider icon\": { \"v\": [\"Icona do provedor\"] } } }, { \"l\": \"he\", \"t\": { \"Provider icon\": { \"v\": [\"סמל ספק\"] } } }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": { \"Provider icon\": { \"v\": [\"Ikon penyedia\"] } } }, { \"l\": \"is\", \"t\": { \"Provider icon\": { \"v\": [\"Táknmynd þjónustuveitu\"] } } }, { \"l\": \"it\", \"t\": { \"Provider icon\": { \"v\": [\"Icona del provider\"] } } }, { \"l\": \"ja\", \"t\": { \"Provider icon\": { \"v\": [\"プロバイダーのアイコン\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Provider icon\": { \"v\": [\"プロバイダーのアイコン\"] } } }, { \"l\": \"ko\", \"t\": { \"Provider icon\": { \"v\": [\"제공자 아이콘\"] } } }, { \"l\": \"lo\", \"t\": { \"Provider icon\": { \"v\": [\"ໄອຄອນຜູ້ໃຫ້ບໍລິການ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Provider icon\": { \"v\": [\"Икона на давател\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Provider icon\": { \"v\": [\"Leverandørikon\"] } } }, { \"l\": \"nl\", \"t\": { \"Provider icon\": { \"v\": [\"Provider-pictogram\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Provider icon\": { \"v\": [\"Dostawca ikony\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Provider icon\": { \"v\": [\"Ícone do provedor\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Provider icon\": { \"v\": [\"Ícone do fornecedor\"] } } }, { \"l\": \"ro\", \"t\": { \"Provider icon\": { \"v\": [\"Provider pentru icon\"] } } }, { \"l\": \"ru\", \"t\": { \"Provider icon\": { \"v\": [\"Значок поставщика\"] } } }, { \"l\": \"sk\", \"t\": { \"Provider icon\": { \"v\": [\"Ikonka poskytovateľa\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Provider icon\": { \"v\": [\"Икона пружаоца\"] } } }, { \"l\": \"sv\", \"t\": { \"Provider icon\": { \"v\": [\"Leverantörsikon\"] } } }, { \"l\": \"tr\", \"t\": { \"Provider icon\": { \"v\": [\"Hizmet sağlayıcı simgesi\"] } } }, { \"l\": \"uk\", \"t\": { \"Provider icon\": { \"v\": [\"Піктограма постачальника\"] } } }, { \"l\": \"uz\", \"t\": { \"Provider icon\": { \"v\": [\"Provayder belgisi\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Provider icon\": { \"v\": [\"提供者图标\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Provider icon\": { \"v\": [\"提供者圖示\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Provider icon\": { \"v\": [\"提供者圖示\"] } } }];\nconst t41 = [{ \"l\": \"ar\", \"t\": { \"Related team resources\": { \"v\": [\"موارد للفريق ذات صلة\"] }, \"View team\": { \"v\": [\"عرض الفريق\"] } } }, { \"l\": \"ast\", \"t\": { \"Related team resources\": { \"v\": [\"Recursos rellacionaos colos equipos\"] }, \"View team\": { \"v\": [\"Ver l'equipu\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Related team resources\": { \"v\": [\"Související prostředky kolektivu\"] }, \"View team\": { \"v\": [\"Zobrazit kolektiv\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Related team resources\": { \"v\": [\"Relaterede teamressourcer\"] }, \"View team\": { \"v\": [\"Se teamet\"] } } }, { \"l\": \"de\", \"t\": { \"Related team resources\": { \"v\": [\"Verwandte Team-Ressourcen\"] }, \"View team\": { \"v\": [\"Team anzeigen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Related team resources\": { \"v\": [\"Verwandte Team-Ressourcen\"] }, \"View team\": { \"v\": [\"Team anzeigen\"] } } }, { \"l\": \"el\", \"t\": { \"Related team resources\": { \"v\": [\"Σχετικοί πόροι ομάδας\"] }, \"View team\": { \"v\": [\"Προβολή ομάδας\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Related team resources\": { \"v\": [\"Related team resources\"] }, \"View team\": { \"v\": [\"View team\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Related team resources\": { \"v\": [\"Recursos de equipo relacionados\"] }, \"View team\": { \"v\": [\"Ver equipo\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Related team resources\": { \"v\": [\"Recursos de equipo relacionados\"] }, \"View team\": { \"v\": [\"Ver equipo\"] } } }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": { \"Related team resources\": { \"v\": [\"Recursos de equipo relacionados\"] }, \"View team\": { \"v\": [\"Ver equipo\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Related team resources\": { \"v\": [\"Tiimi seotud ressursid\"] }, \"View team\": { \"v\": [\"Vaata tiimi\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"Related team resources\": { \"v\": [\"منابع تیمی مرتبط\"] }, \"View team\": { \"v\": [\"مشاهده گروه\"] } } }, { \"l\": \"fi\", \"t\": { \"Related team resources\": { \"v\": [\"Liittyvät tiimiresurssit\"] }, \"View team\": { \"v\": [\"Näytä tiimi\"] } } }, { \"l\": \"fr\", \"t\": { \"Related team resources\": { \"v\": [\"Ressources d'équipe associées\"] }, \"View team\": { \"v\": [\"Voir l'équipe\"] } } }, { \"l\": \"ga\", \"t\": { \"Related team resources\": { \"v\": [\"Acmhainní foirne gaolmhara\"] }, \"View team\": { \"v\": [\"Féach ar an bhfoireann\"] } } }, { \"l\": \"gl\", \"t\": { \"Related team resources\": { \"v\": [\"Recursos de equipo relacionados\"] }, \"View team\": { \"v\": [\"Ver o equipo\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": {} }, { \"l\": \"is\", \"t\": { \"Related team resources\": { \"v\": [\"Tengd tilföng teymis\"] }, \"View team\": { \"v\": [\"Skoða teymi\"] } } }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Related team resources\": { \"v\": [\"チームの関連リソース\"] }, \"View team\": { \"v\": [\"チームを表示\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Related team resources\": { \"v\": [\"チームの関連リソース\"] }, \"View team\": { \"v\": [\"チームを表示\"] } } }, { \"l\": \"ko\", \"t\": { \"Related team resources\": { \"v\": [\"관련 팀 리소스\"] }, \"View team\": { \"v\": [\"팀 보기\"] } } }, { \"l\": \"lo\", \"t\": { \"Related team resources\": { \"v\": [\"ຊັບພະຍາກອນຂອງທີມທີ່ກ່ຽວຂ້ອງ\"] }, \"View team\": { \"v\": [\"ເບິ່ງທີມ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Related team resources\": { \"v\": [\"Поврзани ресурси на тимот\"] }, \"View team\": { \"v\": [\"Прикажи тим\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Related team resources\": { \"v\": [\"Relaterte lagressurser\"] }, \"View team\": { \"v\": [\"Se lag\"] } } }, { \"l\": \"nl\", \"t\": { \"Related team resources\": { \"v\": [\"Verwante teambronnen\"] }, \"View team\": { \"v\": [\"Team bekijken\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Related team resources\": { \"v\": [\"Powiązane zasoby grupowe\"] }, \"View team\": { \"v\": [\"Zobacz grupę\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Related team resources\": { \"v\": [\"Recursos de equipe relacionados\"] }, \"View team\": { \"v\": [\"Ver equipe\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Related team resources\": { \"v\": [\"Recursos relacionados com a equipa\"] }, \"View team\": { \"v\": [\"Ver equipa\"] } } }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Related team resources\": { \"v\": [\"Связанные командные ресурсы\"] }, \"View team\": { \"v\": [\"Просмотр команды\"] } } }, { \"l\": \"sk\", \"t\": { \"Related team resources\": { \"v\": [\"Súvisiace tímové zdroje\"] }, \"View team\": { \"v\": [\"Zobraziť tím\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Related team resources\": { \"v\": [\"Повезани тимски ресурси\"] }, \"View team\": { \"v\": [\"Прикажи тим\"] } } }, { \"l\": \"sv\", \"t\": { \"Related team resources\": { \"v\": [\"Relaterade teamresurser\"] }, \"View team\": { \"v\": [\"Visa team\"] } } }, { \"l\": \"tr\", \"t\": { \"Related team resources\": { \"v\": [\"İlgili takım kaynakları\"] }, \"View team\": { \"v\": [\"Takımı görüntüle\"] } } }, { \"l\": \"uk\", \"t\": { \"Related team resources\": { \"v\": [\"Пов'язані ресурси команди\"] }, \"View team\": { \"v\": [\"Переглянути команду\"] } } }, { \"l\": \"uz\", \"t\": { \"Related team resources\": { \"v\": [\"Tegishli jamoa resurslari\"] }, \"View team\": { \"v\": [\"Jamoani ko'rish\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Related team resources\": { \"v\": [\"相关团队资源\"] }, \"View team\": { \"v\": [\"查看团队\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Related team resources\": { \"v\": [\"相關團隊資源\"] }, \"View team\": { \"v\": [\"查看團隊\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Related team resources\": { \"v\": [\"相關團隊資源\"] }, \"View team\": { \"v\": [\"檢視團隊\"] } } }];\nconst t42 = [{ \"l\": \"ar\", \"t\": { \"Search\": { \"v\": [\"بحث\"] } } }, { \"l\": \"ast\", \"t\": { \"Search\": { \"v\": [\"Buscar\"] } } }, { \"l\": \"br\", \"t\": { \"Search\": { \"v\": [\"Klask\"] } } }, { \"l\": \"ca\", \"t\": { \"Search\": { \"v\": [\"Cerca\"] } } }, { \"l\": \"cs\", \"t\": { \"Search\": { \"v\": [\"Hledat\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Search\": { \"v\": [\"Hledat\"] } } }, { \"l\": \"da\", \"t\": { \"Search\": { \"v\": [\"Søg\"] } } }, { \"l\": \"de\", \"t\": { \"Search\": { \"v\": [\"Suche\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Search\": { \"v\": [\"Suche\"] } } }, { \"l\": \"el\", \"t\": { \"Search\": { \"v\": [\"Αναζήτηση\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Search\": { \"v\": [\"Search\"] } } }, { \"l\": \"eo\", \"t\": { \"Search\": { \"v\": [\"Serĉi\"] } } }, { \"l\": \"es\", \"t\": { \"Search\": { \"v\": [\"Buscar\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Search\": { \"v\": [\"Buscar\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Search\": { \"v\": [\"Buscar\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Search\": { \"v\": [\"Buscar\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Search\": { \"v\": [\"Otsing\"] } } }, { \"l\": \"eu\", \"t\": { \"Search\": { \"v\": [\"Bilatu\"] } } }, { \"l\": \"fa\", \"t\": { \"Search\": { \"v\": [\"جستجو\"] } } }, { \"l\": \"fi\", \"t\": { \"Search\": { \"v\": [\"Etsi\"] } } }, { \"l\": \"fr\", \"t\": { \"Search\": { \"v\": [\"Rechercher\"] } } }, { \"l\": \"ga\", \"t\": { \"Search\": { \"v\": [\"Cuardach\"] } } }, { \"l\": \"gl\", \"t\": { \"Search\": { \"v\": [\"Buscar\"] } } }, { \"l\": \"he\", \"t\": { \"Search\": { \"v\": [\"חיפוש\"] } } }, { \"l\": \"hu\", \"t\": { \"Search\": { \"v\": [\"Keresés\"] } } }, { \"l\": \"id\", \"t\": { \"Search\": { \"v\": [\"Cari\"] } } }, { \"l\": \"is\", \"t\": { \"Search\": { \"v\": [\"Leita\"] } } }, { \"l\": \"it\", \"t\": { \"Search\": { \"v\": [\"Cerca\"] } } }, { \"l\": \"ja\", \"t\": { \"Search\": { \"v\": [\"検索\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Search\": { \"v\": [\"検索\"] } } }, { \"l\": \"ko\", \"t\": { \"Search\": { \"v\": [\"검색\"] } } }, { \"l\": \"lo\", \"t\": { \"Search\": { \"v\": [\"ຄົ້ນຫາ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Search\": { \"v\": [\"Ieškoti\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Search\": { \"v\": [\"Барај\"] } } }, { \"l\": \"my\", \"t\": { \"Search\": { \"v\": [\"ရှာဖွေရန်\"] } } }, { \"l\": \"nb\", \"t\": { \"Search\": { \"v\": [\"Søk\"] } } }, { \"l\": \"nl\", \"t\": { \"Search\": { \"v\": [\"Zoeken\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Search\": { \"v\": [\"Szukaj\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Search\": { \"v\": [\"Pesquisar\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Search\": { \"v\": [\"Pesquisar\"] } } }, { \"l\": \"ro\", \"t\": { \"Search\": { \"v\": [\"Căutare\"] } } }, { \"l\": \"ru\", \"t\": { \"Search\": { \"v\": [\"Поиск\"] } } }, { \"l\": \"sk\", \"t\": { \"Search\": { \"v\": [\"Hľadať\"] } } }, { \"l\": \"sl\", \"t\": { \"Search\": { \"v\": [\"Iskanje\"] } } }, { \"l\": \"sr\", \"t\": { \"Search\": { \"v\": [\"Претражи\"] } } }, { \"l\": \"sv\", \"t\": { \"Search\": { \"v\": [\"Sök\"] } } }, { \"l\": \"tr\", \"t\": { \"Search\": { \"v\": [\"Ara\"] } } }, { \"l\": \"uk\", \"t\": { \"Search\": { \"v\": [\"Пошук\"] } } }, { \"l\": \"uz\", \"t\": { \"Search\": { \"v\": [\"Qidiruv\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Search\": { \"v\": [\"搜索\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Search\": { \"v\": [\"搜尋\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Search\": { \"v\": [\"搜尋\"] } } }];\nconst t45 = [{ \"l\": \"ar\", \"t\": { \"Select provider\": { \"v\": [\"اختر مزود\"] } } }, { \"l\": \"ast\", \"t\": { \"Select provider\": { \"v\": [\"Seleicionar el fornidor\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Select provider\": { \"v\": [\"Vybrat poskytovatele\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Select provider\": { \"v\": [\"Vybrat poskytovatele\"] } } }, { \"l\": \"da\", \"t\": { \"Select provider\": { \"v\": [\"Vælg udbyder\"] } } }, { \"l\": \"de\", \"t\": { \"Select provider\": { \"v\": [\"Anbieter auswählen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Select provider\": { \"v\": [\"Anbieter auswählen\"] } } }, { \"l\": \"el\", \"t\": { \"Select provider\": { \"v\": [\"Επιλογή παρόχου\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Select provider\": { \"v\": [\"Select provider\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Select provider\": { \"v\": [\"Seleccione proveedor\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Select provider\": { \"v\": [\"Elija proveedor\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Select provider\": { \"v\": [\"Seleccionar proveedor\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Select provider\": { \"v\": [\"Seleccionar proveedor\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Select provider\": { \"v\": [\"Vali teenuspakkuja\"] } } }, { \"l\": \"eu\", \"t\": { \"Select provider\": { \"v\": [\"Hautatu hornitzailea\"] } } }, { \"l\": \"fa\", \"t\": { \"Select provider\": { \"v\": [\"ارائه دهنده را انتخاب کنید\"] } } }, { \"l\": \"fi\", \"t\": { \"Select provider\": { \"v\": [\"Valitse tarjoaja\"] } } }, { \"l\": \"fr\", \"t\": { \"Select provider\": { \"v\": [\"Sélectionner un fournisseur\"] } } }, { \"l\": \"ga\", \"t\": { \"Select provider\": { \"v\": [\"Roghnaigh soláthraí\"] } } }, { \"l\": \"gl\", \"t\": { \"Select provider\": { \"v\": [\"Seleccione o provedor\"] } } }, { \"l\": \"he\", \"t\": { \"Select provider\": { \"v\": [\"בחירת ספק\"] } } }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": { \"Select provider\": { \"v\": [\"Pilih penyedia\"] } } }, { \"l\": \"is\", \"t\": { \"Select provider\": { \"v\": [\"Veldu þjónustuveitu\"] } } }, { \"l\": \"it\", \"t\": { \"Select provider\": { \"v\": [\"Selezionare il provider\"] } } }, { \"l\": \"ja\", \"t\": { \"Select provider\": { \"v\": [\"プロバイダーを選択\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Select provider\": { \"v\": [\"プロバイダーを選択\"] } } }, { \"l\": \"ko\", \"t\": { \"Select provider\": { \"v\": [\"제공자 선택\"] } } }, { \"l\": \"lo\", \"t\": { \"Select provider\": { \"v\": [\"ເລືອກຜູ້ໃຫ້ບໍລິການ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Select provider\": { \"v\": [\"Избери провајдер\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Select provider\": { \"v\": [\"Velg leverandør\"] } } }, { \"l\": \"nl\", \"t\": { \"Select provider\": { \"v\": [\"Selecteer provider\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Select provider\": { \"v\": [\"Wybierz dostawcę\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Select provider\": { \"v\": [\"Selecione provedor\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Select provider\": { \"v\": [\"Selecionar fornecedor\"] } } }, { \"l\": \"ro\", \"t\": { \"Select provider\": { \"v\": [\"Selectați providerul\"] } } }, { \"l\": \"ru\", \"t\": { \"Select provider\": { \"v\": [\"Выбрать поставщика\"] } } }, { \"l\": \"sk\", \"t\": { \"Select provider\": { \"v\": [\"Vybrať poskytovateľa\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Select provider\": { \"v\": [\"Изаберите пружаоца\"] } } }, { \"l\": \"sv\", \"t\": { \"Select provider\": { \"v\": [\"Välj leverantör\"] } } }, { \"l\": \"tr\", \"t\": { \"Select provider\": { \"v\": [\"Hizmet sağlayıcı seçin\"] } } }, { \"l\": \"uk\", \"t\": { \"Select provider\": { \"v\": [\"Виберіть постачальника\"] } } }, { \"l\": \"uz\", \"t\": { \"Select provider\": { \"v\": [\"Provayderni tanlang\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Select provider\": { \"v\": [\"选择提供者\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Select provider\": { \"v\": [\"選擇提供者\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Select provider\": { \"v\": [\"選取提供者\"] } } }];\nconst t48 = [{ \"l\": \"ar\", \"t\": { \"Submit\": { \"v\": [\"إرسال\"] } } }, { \"l\": \"ast\", \"t\": { \"Submit\": { \"v\": [\"Unviar\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Submit\": { \"v\": [\"Envia\"] } } }, { \"l\": \"cs\", \"t\": { \"Submit\": { \"v\": [\"Odeslat\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Submit\": { \"v\": [\"Odeslat\"] } } }, { \"l\": \"da\", \"t\": { \"Submit\": { \"v\": [\"Send\"] } } }, { \"l\": \"de\", \"t\": { \"Submit\": { \"v\": [\"Einreichen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Submit\": { \"v\": [\"Einreichen\"] } } }, { \"l\": \"el\", \"t\": { \"Submit\": { \"v\": [\"Υποβολή\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Submit\": { \"v\": [\"Submit\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Submit\": { \"v\": [\"Enviar\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Submit\": { \"v\": [\"Enviar\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Submit\": { \"v\": [\"Enviar\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Submit\": { \"v\": [\"Enviar\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Submit\": { \"v\": [\"Saada\"] } } }, { \"l\": \"eu\", \"t\": { \"Submit\": { \"v\": [\"Bidali\"] } } }, { \"l\": \"fa\", \"t\": { \"Submit\": { \"v\": [\"ارسال\"] } } }, { \"l\": \"fi\", \"t\": { \"Submit\": { \"v\": [\"Lähetä\"] } } }, { \"l\": \"fr\", \"t\": { \"Submit\": { \"v\": [\"Valider\"] } } }, { \"l\": \"ga\", \"t\": { \"Submit\": { \"v\": [\"Cuir isteach\"] } } }, { \"l\": \"gl\", \"t\": { \"Submit\": { \"v\": [\"Enviar\"] } } }, { \"l\": \"he\", \"t\": { \"Submit\": { \"v\": [\"הגשה\"] } } }, { \"l\": \"hu\", \"t\": { \"Submit\": { \"v\": [\"Beküldés\"] } } }, { \"l\": \"id\", \"t\": { \"Submit\": { \"v\": [\"Kirimkan\"] } } }, { \"l\": \"is\", \"t\": { \"Submit\": { \"v\": [\"Senda inn\"] } } }, { \"l\": \"it\", \"t\": { \"Submit\": { \"v\": [\"Invia\"] } } }, { \"l\": \"ja\", \"t\": { \"Submit\": { \"v\": [\"提出\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Submit\": { \"v\": [\"提出\"] } } }, { \"l\": \"ko\", \"t\": { \"Submit\": { \"v\": [\"제출\"] } } }, { \"l\": \"lo\", \"t\": { \"Submit\": { \"v\": [\"ສົ່ງ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Submit\": { \"v\": [\"Pateikti\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Submit\": { \"v\": [\"Испрати\"] } } }, { \"l\": \"my\", \"t\": { \"Submit\": { \"v\": [\"တင်သွင်းရန်\"] } } }, { \"l\": \"nb\", \"t\": { \"Submit\": { \"v\": [\"Send\"] } } }, { \"l\": \"nl\", \"t\": { \"Submit\": { \"v\": [\"Indienen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Submit\": { \"v\": [\"Wyślij\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Submit\": { \"v\": [\"Enviar\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Submit\": { \"v\": [\"Submeter\"] } } }, { \"l\": \"ro\", \"t\": { \"Submit\": { \"v\": [\"Trimiteți\"] } } }, { \"l\": \"ru\", \"t\": { \"Submit\": { \"v\": [\"Утвердить\"] } } }, { \"l\": \"sk\", \"t\": { \"Submit\": { \"v\": [\"Odoslať\"] } } }, { \"l\": \"sl\", \"t\": { \"Submit\": { \"v\": [\"Pošlji\"] } } }, { \"l\": \"sr\", \"t\": { \"Submit\": { \"v\": [\"Поднеси\"] } } }, { \"l\": \"sv\", \"t\": { \"Submit\": { \"v\": [\"Skicka\"] } } }, { \"l\": \"tr\", \"t\": { \"Submit\": { \"v\": [\"Gönder\"] } } }, { \"l\": \"uk\", \"t\": { \"Submit\": { \"v\": [\"Надіслати\"] } } }, { \"l\": \"uz\", \"t\": { \"Submit\": { \"v\": [\"Yuborish\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Submit\": { \"v\": [\"提交\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Submit\": { \"v\": [\"提交\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Submit\": { \"v\": [\"遞交\"] } } }];\nconst t49 = [{ \"l\": \"ar\", \"t\": { \"Unable to search the group\": { \"v\": [\"تعذّر البحث في المجموعة\"] } } }, { \"l\": \"ast\", \"t\": { \"Unable to search the group\": { \"v\": [\"Nun ye posible buscar el grupu\"] } } }, { \"l\": \"br\", \"t\": { \"Unable to search the group\": { \"v\": [\"Dibosupl eo klask ar strollad\"] } } }, { \"l\": \"ca\", \"t\": { \"Unable to search the group\": { \"v\": [\"No es pot cercar el grup\"] } } }, { \"l\": \"cs\", \"t\": { \"Unable to search the group\": { \"v\": [\"Nedaří se hledat skupinu\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Unable to search the group\": { \"v\": [\"Nedaří se hledat skupinu\"] } } }, { \"l\": \"da\", \"t\": { \"Unable to search the group\": { \"v\": [\"Kan ikke søge på denne gruppe\"] } } }, { \"l\": \"de\", \"t\": { \"Unable to search the group\": { \"v\": [\"Die Gruppe kann nicht durchsucht werden\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Unable to search the group\": { \"v\": [\"Die Gruppe kann nicht durchsucht werden\"] } } }, { \"l\": \"el\", \"t\": { \"Unable to search the group\": { \"v\": [\"Δεν είναι δυνατή η αναζήτηση της ομάδας\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Unable to search the group\": { \"v\": [\"Unable to search the group\"] } } }, { \"l\": \"eo\", \"t\": { \"Unable to search the group\": { \"v\": [\"Ne eblas serĉi en la grupo\"] } } }, { \"l\": \"es\", \"t\": { \"Unable to search the group\": { \"v\": [\"No es posible buscar en el grupo\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Unable to search the group\": { \"v\": [\"No se puede buscar el grupo\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Unable to search the group\": { \"v\": [\"No se puede buscar en el grupo\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Unable to search the group\": { \"v\": [\"No fue posible buscar en el grupo\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Unable to search the group\": { \"v\": [\"Gruppi ei ole võimalik otsida\"] } } }, { \"l\": \"eu\", \"t\": { \"Unable to search the group\": { \"v\": [\"Ezin izan da taldea bilatu\"] } } }, { \"l\": \"fa\", \"t\": { \"Unable to search the group\": { \"v\": [\"امکان جستجوی گروه وجود ندارد\"] } } }, { \"l\": \"fi\", \"t\": { \"Unable to search the group\": { \"v\": [\"Ryhmää ei voi hakea\"] } } }, { \"l\": \"fr\", \"t\": { \"Unable to search the group\": { \"v\": [\"Impossible de chercher le groupe\"] } } }, { \"l\": \"ga\", \"t\": { \"Unable to search the group\": { \"v\": [\"Ní féidir an grúpa a chuardach\"] } } }, { \"l\": \"gl\", \"t\": { \"Unable to search the group\": { \"v\": [\"Non foi posíbel buscar o grupo\"] } } }, { \"l\": \"he\", \"t\": { \"Unable to search the group\": { \"v\": [\"לא ניתן לחפש בקבוצה\"] } } }, { \"l\": \"hu\", \"t\": { \"Unable to search the group\": { \"v\": [\"A csoport nem kereshető\"] } } }, { \"l\": \"id\", \"t\": { \"Unable to search the group\": { \"v\": [\"Tidak dapat mencari dalam grup\"] } } }, { \"l\": \"is\", \"t\": { \"Unable to search the group\": { \"v\": [\"Get ekki leitað í hópnum\"] } } }, { \"l\": \"it\", \"t\": { \"Unable to search the group\": { \"v\": [\"Impossibile cercare il gruppo\"] } } }, { \"l\": \"ja\", \"t\": { \"Unable to search the group\": { \"v\": [\"グループを検索できません\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Unable to search the group\": { \"v\": [\"グループを検索できません\"] } } }, { \"l\": \"ko\", \"t\": { \"Unable to search the group\": { \"v\": [\"그룹을 검색할 수 없음\"] } } }, { \"l\": \"lo\", \"t\": { \"Unable to search the group\": { \"v\": [\"ບໍ່ສາມາດຄົ້ນຫາກຸ່ມໄດ້\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Unable to search the group\": { \"v\": [\"Nepavyko atlikti paiešką grupėje\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Unable to search the group\": { \"v\": [\"Неможе да се пронајде групата\"] } } }, { \"l\": \"my\", \"t\": { \"Unable to search the group\": { \"v\": [\"အဖွဲ့အား ရှာဖွေ၍ မရနိုင်ပါ\"] } } }, { \"l\": \"nb\", \"t\": { \"Unable to search the group\": { \"v\": [\"Kunne ikke søke i gruppen\"] } } }, { \"l\": \"nl\", \"t\": { \"Unable to search the group\": { \"v\": [\"Kan niet zoeken in de groep\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Unable to search the group\": { \"v\": [\"Nie można przeszukać grupy\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Unable to search the group\": { \"v\": [\"Não foi possível pesquisar o grupo\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Unable to search the group\": { \"v\": [\"Não é possível pesquisar o grupo\"] } } }, { \"l\": \"ro\", \"t\": { \"Unable to search the group\": { \"v\": [\"Imposibilitatea de a căuta în grup\"] } } }, { \"l\": \"ru\", \"t\": { \"Unable to search the group\": { \"v\": [\"Невозможно найти группу\"] } } }, { \"l\": \"sk\", \"t\": { \"Unable to search the group\": { \"v\": [\"Skupinu sa nepodarilo nájsť\"] } } }, { \"l\": \"sl\", \"t\": { \"Unable to search the group\": { \"v\": [\"Ni mogoče iskati po skupini\"] } } }, { \"l\": \"sr\", \"t\": { \"Unable to search the group\": { \"v\": [\"Група не може да се претражи\"] } } }, { \"l\": \"sv\", \"t\": { \"Unable to search the group\": { \"v\": [\"Kunde inte söka i gruppen\"] } } }, { \"l\": \"tr\", \"t\": { \"Unable to search the group\": { \"v\": [\"Grupta arama yapılamadı\"] } } }, { \"l\": \"uk\", \"t\": { \"Unable to search the group\": { \"v\": [\"Неможливо шукати в групі\"] } } }, { \"l\": \"uz\", \"t\": { \"Unable to search the group\": { \"v\": [\"Guruhni qidirish imkonsiz\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Unable to search the group\": { \"v\": [\"无法搜索分组\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Unable to search the group\": { \"v\": [\"無法搜尋群組\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Unable to search the group\": { \"v\": [\"無法搜尋群組\"] } } }];\nconst t50 = [{ \"l\": \"ar\", \"t\": { \"Undo changes\": { \"v\": [\"تراجَع عن التغييرات\"] } } }, { \"l\": \"ast\", \"t\": { \"Undo changes\": { \"v\": [\"Desfacer los cambeos\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Undo changes\": { \"v\": [\"Desfés els canvis\"] } } }, { \"l\": \"cs\", \"t\": { \"Undo changes\": { \"v\": [\"Vzít změny zpět\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Undo changes\": { \"v\": [\"Vzít změny zpět\"] } } }, { \"l\": \"da\", \"t\": { \"Undo changes\": { \"v\": [\"Fortryd ændringer\"] } } }, { \"l\": \"de\", \"t\": { \"Undo changes\": { \"v\": [\"Änderungen rückgängig machen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Undo changes\": { \"v\": [\"Änderungen rückgängig machen\"] } } }, { \"l\": \"el\", \"t\": { \"Undo changes\": { \"v\": [\"Αναίρεση Αλλαγών\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Undo changes\": { \"v\": [\"Undo changes\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Undo changes\": { \"v\": [\"Deshacer cambios\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Undo changes\": { \"v\": [\"Deshacer cambios\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Undo changes\": { \"v\": [\"Deshacer cambios\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Undo changes\": { \"v\": [\"Deshacer cambios\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Undo changes\": { \"v\": [\"Pööra muudatused tagasi\"] } } }, { \"l\": \"eu\", \"t\": { \"Undo changes\": { \"v\": [\"Aldaketak desegin\"] } } }, { \"l\": \"fa\", \"t\": { \"Undo changes\": { \"v\": [\"لغو تغییرات\"] } } }, { \"l\": \"fi\", \"t\": { \"Undo changes\": { \"v\": [\"Kumoa muutokset\"] } } }, { \"l\": \"fr\", \"t\": { \"Undo changes\": { \"v\": [\"Annuler les changements\"] } } }, { \"l\": \"ga\", \"t\": { \"Undo changes\": { \"v\": [\"Cealaigh athruithe\"] } } }, { \"l\": \"gl\", \"t\": { \"Undo changes\": { \"v\": [\"Desfacer os cambios\"] } } }, { \"l\": \"he\", \"t\": { \"Undo changes\": { \"v\": [\"ביטול שינויים\"] } } }, { \"l\": \"hu\", \"t\": { \"Undo changes\": { \"v\": [\"Változtatások visszavonása\"] } } }, { \"l\": \"id\", \"t\": { \"Undo changes\": { \"v\": [\"Urungkan perubahan\"] } } }, { \"l\": \"is\", \"t\": { \"Undo changes\": { \"v\": [\"Afturkalla breytingar\"] } } }, { \"l\": \"it\", \"t\": { \"Undo changes\": { \"v\": [\"Cancella i cambiamenti\"] } } }, { \"l\": \"ja\", \"t\": { \"Undo changes\": { \"v\": [\"変更を取り消し\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Undo changes\": { \"v\": [\"変更を取り消し\"] } } }, { \"l\": \"ko\", \"t\": { \"Undo changes\": { \"v\": [\"변경 되돌리기\"] } } }, { \"l\": \"lo\", \"t\": { \"Undo changes\": { \"v\": [\"ຍ້ອນຄືນການປ່ຽນແປງ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Undo changes\": { \"v\": [\"Врати ги промените\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Undo changes\": { \"v\": [\"Tilbakestill endringer\"] } } }, { \"l\": \"nl\", \"t\": { \"Undo changes\": { \"v\": [\"Wijzigingen ongedaan maken\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Undo changes\": { \"v\": [\"Cofnij zmiany\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Undo changes\": { \"v\": [\"Desfazer modificações\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Undo changes\": { \"v\": [\"Anular alterações\"] } } }, { \"l\": \"ro\", \"t\": { \"Undo changes\": { \"v\": [\"Anularea modificărilor\"] } } }, { \"l\": \"ru\", \"t\": { \"Undo changes\": { \"v\": [\"Отменить изменения\"] } } }, { \"l\": \"sk\", \"t\": { \"Undo changes\": { \"v\": [\"Vrátiť zmeny\"] } } }, { \"l\": \"sl\", \"t\": { \"Undo changes\": { \"v\": [\"Razveljavi spremembe\"] } } }, { \"l\": \"sr\", \"t\": { \"Undo changes\": { \"v\": [\"Поништи измене\"] } } }, { \"l\": \"sv\", \"t\": { \"Undo changes\": { \"v\": [\"Ångra ändringar\"] } } }, { \"l\": \"tr\", \"t\": { \"Undo changes\": { \"v\": [\"Değişiklikleri geri al\"] } } }, { \"l\": \"uk\", \"t\": { \"Undo changes\": { \"v\": [\"Скасувати зміни\"] } } }, { \"l\": \"uz\", \"t\": { \"Undo changes\": { \"v\": [\"O'zgarishlarni bekor qilish\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Undo changes\": { \"v\": [\"撤销更改\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Undo changes\": { \"v\": [\"取消更改\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Undo changes\": { \"v\": [\"還原變更\"] } } }];\nexport {\n t41 as A,\n t9 as B,\n t15 as C,\n t8 as D,\n t45 as E,\n t40 as F,\n t25 as G,\n t32 as H,\n t19 as I,\n t12 as J,\n t as a,\n t2 as b,\n t22 as c,\n t17 as d,\n t49 as e,\n t0 as f,\n t14 as g,\n t48 as h,\n t10 as i,\n t42 as j,\n t37 as k,\n t16 as l,\n t5 as m,\n t35 as n,\n t4 as o,\n t34 as p,\n n as q,\n register as r,\n t28 as s,\n t3 as t,\n t6 as u,\n t21 as v,\n t50 as w,\n t23 as x,\n t11 as y,\n t38 as z\n};\n//# sourceMappingURL=_l10n-DrTiip5c.mjs.map\n","window._nc_vue_element_id = window._nc_vue_element_id ?? 0;\nfunction createElementId() {\n return `nc-vue-${window._nc_vue_element_id++}`;\n}\nexport {\n createElementId as c\n};\n//# sourceMappingURL=createElementId-DhjFt1I9.mjs.map\n"],"names":["linkToRemoteBase","service","generateRemoteUrl","options","getBaseUrl","generateOcsUrl","url","params","version","_generateUrlPath","allOptions","_build","text","vars","a","b","r","generateUrl","baseOrRootURL","getRootUrl","imagePath","app","file","generateFilePath","type","isCore","isPHP","link","getAppRootUrl","webroot","pos","index","_export_sfc","sfc","props","target","key","val","GettextWrapper","pluralFunction","bundle","dict","msgid","msgidPlural","msgstr","original","placeholders","translate","singular","plural","count","translatePlural","GettextBuilder","language","getLanguage","data","wrapper","n","getPlural","getGettextBuilder","gettext","args","t","register","chunks","chunk","translations","decompressed","id","value","t0","t2","t3","t4","t5","t6","t8","t9","t10","t11","t12","t14","t15","t16","t17","t19","t21","t22","t23","t25","t28","t32","t34","t35","t37","t38","t40","t41","t42","t45","t48","t49","t50","createElementId"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4]} \ No newline at end of file +{"version":3,"file":"createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs","sources":["../node_modules/@nextcloud/router/dist/index.mjs","../node_modules/@nextcloud/vue/dist/chunks/_plugin-vue_export-helper-1tPrXgE0.mjs","../node_modules/@nextcloud/l10n/dist/gettext.mjs","../node_modules/@nextcloud/vue/dist/chunks/_l10n-DrTiip5c.mjs","../node_modules/@nextcloud/vue/dist/chunks/createElementId-DhjFt1I9.mjs"],"sourcesContent":["function linkTo(app, file) {\n return generateFilePath(app, \"\", file);\n}\nconst linkToRemoteBase = (service) => \"/remote.php/\" + service;\nconst generateRemoteUrl = (service, options) => {\n const baseURL = options?.baseURL ?? getBaseUrl();\n return baseURL + linkToRemoteBase(service);\n};\nconst generateOcsUrl = (url, params, options) => {\n const allOptions = Object.assign({\n ocsVersion: 2\n }, options || {});\n const version = allOptions.ocsVersion === 1 ? 1 : 2;\n const baseURL = options?.baseURL ?? getBaseUrl();\n return baseURL + \"/ocs/v\" + version + \".php\" + _generateUrlPath(url, params, options);\n};\nconst _generateUrlPath = (url, params, options) => {\n const allOptions = Object.assign({\n escape: true\n }, options || {});\n const _build = function(text, vars) {\n vars = vars || {};\n return text.replace(\n /{([^{}]*)}/g,\n function(a, b) {\n const r = vars[b];\n if (allOptions.escape) {\n return typeof r === \"string\" || typeof r === \"number\" ? encodeURIComponent(r.toString()) : encodeURIComponent(a);\n } else {\n return typeof r === \"string\" || typeof r === \"number\" ? r.toString() : a;\n }\n }\n );\n };\n if (url.charAt(0) !== \"/\") {\n url = \"/\" + url;\n }\n return _build(url, params || {});\n};\nconst generateUrl = (url, params, options) => {\n const allOptions = Object.assign({\n noRewrite: false\n }, options || {});\n const baseOrRootURL = options?.baseURL ?? getRootUrl();\n if (window?.OC?.config?.modRewriteWorking === true && !allOptions.noRewrite) {\n return baseOrRootURL + _generateUrlPath(url, params, options);\n }\n return baseOrRootURL + \"/index.php\" + _generateUrlPath(url, params, options);\n};\nconst imagePath = (app, file) => {\n if (!file.includes(\".\")) {\n return generateFilePath(app, \"img\", `${file}.svg`);\n }\n return generateFilePath(app, \"img\", file);\n};\nconst generateFilePath = (app, type, file) => {\n const isCore = window?.OC?.coreApps?.includes(app) ?? false;\n const isPHP = file.slice(-3) === \"php\";\n let link = getRootUrl();\n if (isPHP && !isCore) {\n link += `/index.php/apps/${app}`;\n if (type) {\n link += `/${encodeURI(type)}`;\n }\n if (file !== \"index.php\") {\n link += `/${file}`;\n }\n } else if (!isPHP && !isCore) {\n link = getAppRootUrl(app);\n if (type) {\n link += `/${type}/`;\n }\n if (link.at(-1) !== \"/\") {\n link += \"/\";\n }\n link += file;\n } else {\n if ((app === \"settings\" || app === \"core\" || app === \"search\") && type === \"ajax\") {\n link += \"/index.php\";\n }\n if (app) {\n link += `/${app}`;\n }\n if (type) {\n link += `/${type}`;\n }\n link += `/${file}`;\n }\n return link;\n};\nconst getBaseUrl = () => window.location.protocol + \"//\" + window.location.host + getRootUrl();\nfunction getRootUrl() {\n let webroot = window._oc_webroot;\n if (typeof webroot === \"undefined\") {\n webroot = location.pathname;\n const pos = webroot.indexOf(\"/index.php/\");\n if (pos !== -1) {\n webroot = webroot.slice(0, pos);\n } else {\n const index = webroot.indexOf(\"/\", 1);\n webroot = webroot.slice(0, index > 0 ? index : void 0);\n }\n }\n return webroot;\n}\nfunction getAppRootUrl(app) {\n const webroots = window._oc_appswebroots ?? {};\n return webroots[app] ?? \"\";\n}\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nfunction generateAvatarUrl(user, options) {\n const size = (options?.size || 64) <= 64 ? 64 : 512;\n const guestUrl = options?.isGuestUser ? \"/guest\" : \"\";\n const themeUrl = options?.isDarkTheme ? \"/dark\" : \"\";\n return generateUrl(`/avatar${guestUrl}/{user}/{size}${themeUrl}`, {\n user,\n size\n });\n}\nexport {\n generateAvatarUrl,\n generateFilePath,\n generateOcsUrl,\n generateRemoteUrl,\n generateUrl,\n getAppRootUrl,\n getBaseUrl,\n getRootUrl,\n imagePath,\n linkTo\n};\n//# sourceMappingURL=index.mjs.map\n","const _export_sfc = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\nexport {\n _export_sfc as _\n};\n//# sourceMappingURL=_plugin-vue_export-helper-1tPrXgE0.mjs.map\n","import { a as getLanguage, e as getPlural, t as translate, d as translatePlural } from \"./chunks/translation-DoG5ZELJ.mjs\";\n/*!\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nclass GettextWrapper {\n bundle;\n constructor(pluralFunction) {\n this.bundle = {\n pluralFunction,\n translations: {}\n };\n }\n /**\n * Append new translations to the wrapper.\n *\n * This is useful if translations should be added on demand,\n * e.g. depending on component usage.\n *\n * @param bundle - The new translation bundle to append\n */\n addTranslations(bundle) {\n const dict = Object.values(bundle.translations[\"\"] ?? {}).map(({ msgid, msgid_plural: msgidPlural, msgstr }) => {\n if (msgidPlural !== void 0) {\n return [`_${msgid}_::_${msgidPlural}_`, msgstr];\n }\n return [msgid, msgstr[0]];\n });\n this.bundle.translations = {\n ...this.bundle.translations,\n ...Object.fromEntries(dict)\n };\n }\n /**\n * Get translated string (singular form), optionally with placeholders\n *\n * @param original original string to translate\n * @param placeholders map of placeholder key to value\n */\n gettext(original, placeholders = {}) {\n return translate(\"\", original, placeholders, void 0, { bundle: this.bundle });\n }\n /**\n * Get translated string with plural forms\n *\n * @param singular Singular text form\n * @param plural Plural text form to be used if `count` requires it\n * @param count The number to insert into the text\n * @param placeholders optional map of placeholder key to value\n */\n ngettext(singular, plural, count, placeholders = {}) {\n return translatePlural(\"\", singular, plural, count, placeholders, { bundle: this.bundle });\n }\n}\nclass GettextBuilder {\n debug = false;\n language = \"en\";\n translations = {};\n setLanguage(language) {\n this.language = language;\n return this;\n }\n /**\n * Try to detect locale from context with `en` as fallback value\n * This only works within a Nextcloud page context.\n *\n * @deprecated use `detectLanguage` instead.\n */\n detectLocale() {\n return this.detectLanguage();\n }\n /**\n * Try to detect locale from context with `en` as fallback value.\n * This only works within a Nextcloud page context.\n */\n detectLanguage() {\n return this.setLanguage(getLanguage().replace(\"-\", \"_\"));\n }\n /**\n * Register a new translation bundle for a specified language.\n *\n * Please note that existing translations for that language will be overwritten.\n *\n * @param language - Language this is the translation for\n * @param data - The translation bundle\n */\n addTranslation(language, data) {\n this.translations[language] = data;\n return this;\n }\n enableDebugMode() {\n this.debug = true;\n return this;\n }\n build() {\n if (this.debug) {\n console.debug(`Creating gettext instance for language ${this.language}`);\n }\n const wrapper = new GettextWrapper((n) => getPlural(n, this.language));\n if (this.language in this.translations) {\n wrapper.addTranslations(this.translations[this.language]);\n }\n return wrapper;\n }\n}\nfunction getGettextBuilder() {\n return new GettextBuilder();\n}\nexport {\n getGettextBuilder\n};\n//# sourceMappingURL=gettext.mjs.map\n","import { getLanguage } from \"@nextcloud/l10n\";\nimport { getGettextBuilder } from \"@nextcloud/l10n/gettext\";\n/*!\n * SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst gettext = getGettextBuilder().detectLanguage().build();\nconst n = (...args) => gettext.ngettext(...args);\nconst t = (...args) => gettext.gettext(...args);\nfunction register(...chunks) {\n for (const chunk of chunks) {\n if (chunk.registered) {\n continue;\n }\n for (const { l: language, t: translations } of chunk) {\n if (language !== getLanguage() || !translations) {\n continue;\n }\n const decompressed = Object.fromEntries(Object.entries(translations).map(([id, value]) => [\n id,\n {\n msgid: id,\n msgid_plural: value.p,\n msgstr: value.v\n }\n ]));\n gettext.addTranslations({\n translations: {\n \"\": decompressed\n }\n });\n }\n chunk.registered = true;\n }\n}\nconst t0 = [{ \"l\": \"ar\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (مقيد)\"] }, \"Select a tag\": { \"v\": [\"اختر وسم\"] } } }, { \"l\": \"ast\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (restrinxóse)\"] }, \"Select a tag\": { \"v\": [\"Seleicionar una etiqueta\"] } } }, { \"l\": \"br\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (bevennet)\"] }, \"Select a tag\": { \"v\": [\"Choaz ur c'hlav\"] } } }, { \"l\": \"ca\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (restringit)\"] }, \"Select a tag\": { \"v\": [\"Seleccioneu una etiqueta\"] } } }, { \"l\": \"cs\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (omezené)\"] }, \"Select a tag\": { \"v\": [\"Vybrat štítek\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (omezené)\"] }, \"Select a tag\": { \"v\": [\"Vybrat štítek\"] } } }, { \"l\": \"da\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (begrænset)\"] }, \"Select a tag\": { \"v\": [\"Vælg et mærke\"] } } }, { \"l\": \"de\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (eingeschränkt)\"] }, \"Select a tag\": { \"v\": [\"Schlagwort auswählen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (eingeschränkt)\"] }, \"Select a tag\": { \"v\": [\"Schlagwort auswählen\"] } } }, { \"l\": \"el\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (περιορισμένο)\"] }, \"Select a tag\": { \"v\": [\"Επιλογή ετικέτας\"] } } }, { \"l\": \"en-GB\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (restricted)\"] }, \"Select a tag\": { \"v\": [\"Select a tag\"] } } }, { \"l\": \"eo\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (limigita)\"] }, \"Select a tag\": { \"v\": [\"Elektu etikedon\"] } } }, { \"l\": \"es\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (restringido)\"] }, \"Select a tag\": { \"v\": [\"Seleccione una etiqueta\"] } } }, { \"l\": \"es-AR\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (restringido)\"] }, \"Select a tag\": { \"v\": [\"Elija una etiqueta\"] } } }, { \"l\": \"es-EC\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (restricted)\"] }, \"Select a tag\": { \"v\": [\"Seleccionar una etiqueta\"] } } }, { \"l\": \"es-MX\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (restringido)\"] }, \"Select a tag\": { \"v\": [\"Seleccionar una etiqueta\"] } } }, { \"l\": \"et-EE\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (piiratud)\"] }, \"Select a tag\": { \"v\": [\"Vali silt\"] } } }, { \"l\": \"eu\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (mugatua)\"] }, \"Select a tag\": { \"v\": [\"Hautatu etiketa bat\"] } } }, { \"l\": \"fa\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} محدود شده\"] }, \"Select a tag\": { \"v\": [\"انتخاب یک برچسب\"] } } }, { \"l\": \"fi\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (rajoitettu)\"] }, \"Select a tag\": { \"v\": [\"Valitse tunniste\"] } } }, { \"l\": \"fr\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (restreint)\"] }, \"Select a tag\": { \"v\": [\"Sélectionnez une balise\"] } } }, { \"l\": \"ga\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (srianta)\"] }, \"Select a tag\": { \"v\": [\"Roghnaigh clib\"] } } }, { \"l\": \"gl\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (restrinxido)\"] }, \"Select a tag\": { \"v\": [\"Seleccione unha etiqueta\"] } } }, { \"l\": \"he\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (מוגבל)\"] }, \"Select a tag\": { \"v\": [\"בחירת תגית\"] } } }, { \"l\": \"hu\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (korlátozott)\"] }, \"Select a tag\": { \"v\": [\"Válasszon címkét\"] } } }, { \"l\": \"id\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (dibatasi)\"] }, \"Select a tag\": { \"v\": [\"Pilih tag\"] } } }, { \"l\": \"is\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (takmarkað)\"] }, \"Select a tag\": { \"v\": [\"Veldu merki\"] } } }, { \"l\": \"it\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (limitato)\"] }, \"Select a tag\": { \"v\": [\"Seleziona un'etichetta\"] } } }, { \"l\": \"ja\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (制限付)\"] }, \"Select a tag\": { \"v\": [\"タグを選択\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (制限付)\"] }, \"Select a tag\": { \"v\": [\"タグを選択\"] } } }, { \"l\": \"ko\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag}(제한)\"] }, \"Select a tag\": { \"v\": [\"태그 선택\"] } } }, { \"l\": \"lo\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (ຈຳກັດ)\"] }, \"Select a tag\": { \"v\": [\"ເລືອກແທັກ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (apribota)\"] }, \"Select a tag\": { \"v\": [\"Pasirinkti žymę\"] } } }, { \"l\": \"lv\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (ierobežots)\"] }, \"Select a tag\": { \"v\": [\"Izvēlēties birku\"] } } }, { \"l\": \"mk\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (ограничено)\"] }, \"Select a tag\": { \"v\": [\"Избери ознака\"] } } }, { \"l\": \"my\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (ကန့်သတ်)\"] }, \"Select a tag\": { \"v\": [\"tag ရွေးချယ်ရန်\"] } } }, { \"l\": \"nb\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (beskyttet)\"] }, \"Select a tag\": { \"v\": [\"Velg en merkelapp\"] } } }, { \"l\": \"nl\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (beperkt)\"] }, \"Select a tag\": { \"v\": [\"Selecteer een label\"] } } }, { \"l\": \"oc\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (limit)\"] }, \"Select a tag\": { \"v\": [\"Seleccionar una etiqueta\"] } } }, { \"l\": \"pl\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (ograniczona)\"] }, \"Select a tag\": { \"v\": [\"Wybierz etykietę\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (restrito)\"] }, \"Select a tag\": { \"v\": [\"Selecione uma etiqueta\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (restrito)\"] }, \"Select a tag\": { \"v\": [\"Selecionar uma etiqueta\"] } } }, { \"l\": \"ro\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (restricționat)\"] }, \"Select a tag\": { \"v\": [\"Selectați o etichetă\"] } } }, { \"l\": \"ru\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (ограниченное)\"] }, \"Select a tag\": { \"v\": [\"Выберите метку\"] } } }, { \"l\": \"sk\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (obmedzený)\"] }, \"Select a tag\": { \"v\": [\"Vybrať štítok\"] } } }, { \"l\": \"sl\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (omejeno)\"] }, \"Select a tag\": { \"v\": [\"Izbor oznake\"] } } }, { \"l\": \"sr\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (ограничено)\"] }, \"Select a tag\": { \"v\": [\"Изаберите ознаку\"] } } }, { \"l\": \"sv\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (begränsad)\"] }, \"Select a tag\": { \"v\": [\"Välj en tag\"] } } }, { \"l\": \"tr\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (kısıtlanmış)\"] }, \"Select a tag\": { \"v\": [\"Bir etiket seçin\"] } } }, { \"l\": \"uk\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (обмежений)\"] }, \"Select a tag\": { \"v\": [\"Виберіть позначку\"] } } }, { \"l\": \"uz\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (cheklangan)\"] }, \"Select a tag\": { \"v\": [\"Teg tanlang\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (受限)\"] }, \"Select a tag\": { \"v\": [\"选择一个标签\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag} (受限)\"] }, \"Select a tag\": { \"v\": [\"選擇標籤\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"{tag} (restricted)\": { \"v\": [\"{tag}(受限)\"] }, \"Select a tag\": { \"v\": [\"選擇標籤\"] } } }];\nconst t2 = [{ \"l\": \"ar\", \"t\": { \"a few seconds ago\": { \"v\": [\"منذ عدة ثوانٍ\"] }, \"sec. ago\": { \"v\": [\"ثانية مضت\"] }, \"seconds ago\": { \"v\": [\"ثوانٍ مضت\"] } } }, { \"l\": \"ast\", \"t\": { \"a few seconds ago\": { \"v\": [\"hai unos segundos\"] }, \"sec. ago\": { \"v\": [\"hai segs\"] }, \"seconds ago\": { \"v\": [\"hai segundos\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"a few seconds ago\": { \"v\": [\"před několika sekundami\"] }, \"sec. ago\": { \"v\": [\"sek. před\"] }, \"seconds ago\": { \"v\": [\"sekund předtím\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"a few seconds ago\": { \"v\": [\"před několika sekundami\"] }, \"sec. ago\": { \"v\": [\"sek. před\"] }, \"seconds ago\": { \"v\": [\"sekund předtím\"] } } }, { \"l\": \"da\", \"t\": { \"a few seconds ago\": { \"v\": [\"et par sekunder siden\"] }, \"sec. ago\": { \"v\": [\"sek. siden\"] }, \"seconds ago\": { \"v\": [\"sekunder siden\"] } } }, { \"l\": \"de\", \"t\": { \"a few seconds ago\": { \"v\": [\"vor ein paar Sekunden\"] }, \"sec. ago\": { \"v\": [\"Sek. zuvor\"] }, \"seconds ago\": { \"v\": [\"Sekunden zuvor\"] } } }, { \"l\": \"de-DE\", \"t\": { \"a few seconds ago\": { \"v\": [\"vor ein paar Sekunden\"] }, \"sec. ago\": { \"v\": [\"Sek. zuvor\"] }, \"seconds ago\": { \"v\": [\"Sekunden zuvor\"] } } }, { \"l\": \"el\", \"t\": { \"a few seconds ago\": { \"v\": [\"πριν λίγα δευτερόλεπτα\"] }, \"sec. ago\": { \"v\": [\"δευτ. πριν\"] }, \"seconds ago\": { \"v\": [\"δευτερόλεπτα πριν\"] } } }, { \"l\": \"en-GB\", \"t\": { \"a few seconds ago\": { \"v\": [\"a few seconds ago\"] }, \"sec. ago\": { \"v\": [\"sec. ago\"] }, \"seconds ago\": { \"v\": [\"seconds ago\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"a few seconds ago\": { \"v\": [\"hace unos pocos segundos\"] }, \"sec. ago\": { \"v\": [\"hace segundos\"] }, \"seconds ago\": { \"v\": [\"segundos atrás\"] } } }, { \"l\": \"es-AR\", \"t\": { \"a few seconds ago\": { \"v\": [\"hace unos segundos\"] }, \"sec. ago\": { \"v\": [\"seg. atrás\"] }, \"seconds ago\": { \"v\": [\"segundos atrás\"] } } }, { \"l\": \"es-EC\", \"t\": { \"a few seconds ago\": { \"v\": [\"hace unos segundos\"] }, \"sec. ago\": { \"v\": [\"hace segundos\"] }, \"seconds ago\": { \"v\": [\"Segundos atrás\"] } } }, { \"l\": \"es-MX\", \"t\": { \"a few seconds ago\": { \"v\": [\"hace unos segundos\"] }, \"sec. ago\": { \"v\": [\"seg. atrás\"] }, \"seconds ago\": { \"v\": [\"segundos atrás\"] } } }, { \"l\": \"et-EE\", \"t\": { \"a few seconds ago\": { \"v\": [\"mõni sekund tagasi\"] }, \"sec. ago\": { \"v\": [\"sek. tagasi\"] }, \"seconds ago\": { \"v\": [\"sekundit tagasi\"] } } }, { \"l\": \"eu\", \"t\": { \"a few seconds ago\": { \"v\": [\"duela segundo batzuk\"] }, \"sec. ago\": { \"v\": [\"duela seg.\"] }, \"seconds ago\": { \"v\": [\"duela segundo\"] } } }, { \"l\": \"fa\", \"t\": { \"a few seconds ago\": { \"v\": [\"چند ثانیه پیش\"] }, \"sec. ago\": { \"v\": [\"چند ثانیه پیش\"] }, \"seconds ago\": { \"v\": [\"چند ثانیه پیش\"] } } }, { \"l\": \"fi\", \"t\": { \"a few seconds ago\": { \"v\": [\"muutamia sekunteja sitten\"] }, \"sec. ago\": { \"v\": [\"sek. sitten\"] }, \"seconds ago\": { \"v\": [\"sekunteja sitten\"] } } }, { \"l\": \"fr\", \"t\": { \"a few seconds ago\": { \"v\": [\"il y a quelques instants\"] }, \"sec. ago\": { \"v\": [\"il y a qq. sec.\"] }, \"seconds ago\": { \"v\": [\"il y a quelques secondes\"] } } }, { \"l\": \"ga\", \"t\": { \"a few seconds ago\": { \"v\": [\"cúpla soicind ó shin\"] }, \"sec. ago\": { \"v\": [\"soic. ó shin\"] }, \"seconds ago\": { \"v\": [\"soicind ó shin\"] } } }, { \"l\": \"gl\", \"t\": { \"a few seconds ago\": { \"v\": [\"hai uns segundos\"] }, \"sec. ago\": { \"v\": [\"segs. atrás\"] }, \"seconds ago\": { \"v\": [\"segundos atrás\"] } } }, { \"l\": \"he\", \"t\": { \"a few seconds ago\": { \"v\": [\"לפני מספר שניות\"] }, \"sec. ago\": { \"v\": [\"לפני מספר שניות\"] }, \"seconds ago\": { \"v\": [\"לפני מס׳ שניות\"] } } }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": { \"a few seconds ago\": { \"v\": [\"beberapa detik yang lalu\"] }, \"sec. ago\": { \"v\": [\"dtk. yang lalu\"] }, \"seconds ago\": { \"v\": [\"beberapa detik lalu\"] } } }, { \"l\": \"is\", \"t\": { \"a few seconds ago\": { \"v\": [\"fyrir örfáum sekúndum síðan\"] }, \"sec. ago\": { \"v\": [\"sek. síðan\"] }, \"seconds ago\": { \"v\": [\"sekúndum síðan\"] } } }, { \"l\": \"it\", \"t\": { \"a few seconds ago\": { \"v\": [\"pochi secondi fa\"] }, \"sec. ago\": { \"v\": [\"sec. fa\"] }, \"seconds ago\": { \"v\": [\"secondi fa\"] } } }, { \"l\": \"ja\", \"t\": { \"a few seconds ago\": { \"v\": [\"数秒前\"] }, \"sec. ago\": { \"v\": [\"秒前\"] }, \"seconds ago\": { \"v\": [\"数秒前\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"a few seconds ago\": { \"v\": [\"数秒前\"] }, \"sec. ago\": { \"v\": [\"秒前\"] }, \"seconds ago\": { \"v\": [\"数秒前\"] } } }, { \"l\": \"ko\", \"t\": { \"a few seconds ago\": { \"v\": [\"방금 전\"] }, \"sec. ago\": { \"v\": [\"몇 초 전\"] }, \"seconds ago\": { \"v\": [\"초 전\"] } } }, { \"l\": \"lo\", \"t\": { \"a few seconds ago\": { \"v\": [\"ສອງສາມວິນາທີກ່ອນ\"] }, \"sec. ago\": { \"v\": [\"ວິ. ກ່ອນ\"] }, \"seconds ago\": { \"v\": [\"ວິນາທີກ່ອນ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"a few seconds ago\": { \"v\": [\"пред неколку секунди\"] }, \"sec. ago\": { \"v\": [\"секунда\"] }, \"seconds ago\": { \"v\": [\"секунди\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"a few seconds ago\": { \"v\": [\"noen få sekunder siden\"] }, \"sec. ago\": { \"v\": [\"sek. siden\"] }, \"seconds ago\": { \"v\": [\"sekunder siden\"] } } }, { \"l\": \"nl\", \"t\": { \"a few seconds ago\": { \"v\": [\"enkele seconden geleden\"] }, \"sec. ago\": { \"v\": [\"sec. geleden\"] }, \"seconds ago\": { \"v\": [\"seconden geleden\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"a few seconds ago\": { \"v\": [\"kilka sekund temu\"] }, \"sec. ago\": { \"v\": [\"sek. temu\"] }, \"seconds ago\": { \"v\": [\"sekund temu\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"a few seconds ago\": { \"v\": [\"há alguns segundos\"] }, \"sec. ago\": { \"v\": [\"seg. atrás\"] }, \"seconds ago\": { \"v\": [\"segundos atrás\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"a few seconds ago\": { \"v\": [\"há alguns segundos\"] }, \"sec. ago\": { \"v\": [\"seg. atrás\"] }, \"seconds ago\": { \"v\": [\"segundos atrás\"] } } }, { \"l\": \"ro\", \"t\": { \"a few seconds ago\": { \"v\": [\"acum câteva secunde\"] }, \"sec. ago\": { \"v\": [\"sec. în urmă\"] }, \"seconds ago\": { \"v\": [\"secunde în urmă\"] } } }, { \"l\": \"ru\", \"t\": { \"a few seconds ago\": { \"v\": [\"несколько секунд назад\"] }, \"sec. ago\": { \"v\": [\"сек. назад\"] }, \"seconds ago\": { \"v\": [\"секунд назад\"] } } }, { \"l\": \"sk\", \"t\": { \"a few seconds ago\": { \"v\": [\"pred chvíľou\"] }, \"sec. ago\": { \"v\": [\"pred pár sekundami\"] }, \"seconds ago\": { \"v\": [\"pred sekundami\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"a few seconds ago\": { \"v\": [\"пре неколико секунди\"] }, \"sec. ago\": { \"v\": [\"сек. раније\"] }, \"seconds ago\": { \"v\": [\"секунди раније\"] } } }, { \"l\": \"sv\", \"t\": { \"a few seconds ago\": { \"v\": [\"några sekunder sedan\"] }, \"sec. ago\": { \"v\": [\"sek. sedan\"] }, \"seconds ago\": { \"v\": [\"sekunder sedan\"] } } }, { \"l\": \"tr\", \"t\": { \"a few seconds ago\": { \"v\": [\"birkaç saniye önce\"] }, \"sec. ago\": { \"v\": [\"sn. önce\"] }, \"seconds ago\": { \"v\": [\"saniye önce\"] } } }, { \"l\": \"uk\", \"t\": { \"a few seconds ago\": { \"v\": [\"декілька секунд тому\"] }, \"sec. ago\": { \"v\": [\"с тому\"] }, \"seconds ago\": { \"v\": [\"с тому\"] } } }, { \"l\": \"uz\", \"t\": { \"a few seconds ago\": { \"v\": [\"bir necha soniya oldin\"] }, \"sec. ago\": { \"v\": [\"sek. oldin\"] }, \"seconds ago\": { \"v\": [\"soniyalar oldin\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"a few seconds ago\": { \"v\": [\"几秒前\"] }, \"sec. ago\": { \"v\": [\"几秒前\"] }, \"seconds ago\": { \"v\": [\"几秒前\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"a few seconds ago\": { \"v\": [\"幾秒前\"] }, \"sec. ago\": { \"v\": [\"秒前\"] }, \"seconds ago\": { \"v\": [\"秒前\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"a few seconds ago\": { \"v\": [\"幾秒前\"] }, \"sec. ago\": { \"v\": [\"秒前\"] }, \"seconds ago\": { \"v\": [\"秒前\"] } } }];\nconst t3 = [{ \"l\": \"ar\", \"t\": { \"Acapulco\": { \"v\": [\"بازلائي مطفي\"] }, \"Blue Violet\": { \"v\": [\"بنفسجي مشعشع\"] }, \"Boston Blue\": { \"v\": [\"سماوي مطفي\"] }, \"Deluge\": { \"v\": [\"بنفسجي مطفي\"] }, \"Feldspar\": { \"v\": [\"وردي صخري\"] }, \"Gold\": { \"v\": [\"ذهبي\"] }, \"Mariner\": { \"v\": [\"أزرق بحري\"] }, \"Nextcloud blue\": { \"v\": [\"أزرق نكست كلاود\"] }, \"Olivine\": { \"v\": [\"زيتي\"] }, \"Purple\": { \"v\": [\"بنفسجي\"] }, \"Rosy brown\": { \"v\": [\"بُنِّي زهري\"] }, \"Whiskey\": { \"v\": [\"نبيذي\"] } } }, { \"l\": \"ast\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulcu\"] }, \"Blue Violet\": { \"v\": [\"Viola azulao\"] }, \"Boston Blue\": { \"v\": [\"Azul Boston\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Oru\"] }, \"Mariner\": { \"v\": [\"Marineru\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud azul\"] }, \"Olivine\": { \"v\": [\"Olivina\"] }, \"Purple\": { \"v\": [\"Moráu\"] }, \"Rosy brown\": { \"v\": [\"Marrón arrosao\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Acapulco\": { \"v\": [\"Akapulko\"] }, \"Black\": { \"v\": [\"Černá\"] }, \"Blue Violet\": { \"v\": [\"Modrofialová\"] }, \"Boston Blue\": { \"v\": [\"Bostonská modrá\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Živicová\"] }, \"Gold\": { \"v\": [\"Zlatá\"] }, \"Mariner\": { \"v\": [\"Námořnická\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud modrá\"] }, \"Olivine\": { \"v\": [\"Olivínová\"] }, \"Purple\": { \"v\": [\"Fialová\"] }, \"Rosy brown\": { \"v\": [\"Růžovohnědá\"] }, \"Whiskey\": { \"v\": [\"Whisky\"] }, \"White\": { \"v\": [\"Bílá\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Acapulco\": { \"v\": [\"Akapulko\"] }, \"Blue Violet\": { \"v\": [\"Modrofialová\"] }, \"Boston Blue\": { \"v\": [\"Bostonská modrá\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Živicová\"] }, \"Gold\": { \"v\": [\"Zlatá\"] }, \"Mariner\": { \"v\": [\"Námořnická\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud modrá\"] }, \"Olivine\": { \"v\": [\"Olivínová\"] }, \"Purple\": { \"v\": [\"Fialová\"] }, \"Rosy brown\": { \"v\": [\"Růžovohnědá\"] }, \"Whiskey\": { \"v\": [\"Whisky\"] } } }, { \"l\": \"da\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Sort\"] }, \"Blue Violet\": { \"v\": [\"Blue Violet\"] }, \"Boston Blue\": { \"v\": [\"Boston Blue\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Guld\"] }, \"Mariner\": { \"v\": [\"Mariner\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud blue\"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"Lilla\"] }, \"Rosy brown\": { \"v\": [\"Rosy brown\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"Hvid\"] } } }, { \"l\": \"de\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Schwarz\"] }, \"Blue Violet\": { \"v\": [\"Blau Violett\"] }, \"Boston Blue\": { \"v\": [\"Boston-Blau\"] }, \"Deluge\": { \"v\": [\"Sintflut\"] }, \"Feldspar\": { \"v\": [\"Feldspat\"] }, \"Gold\": { \"v\": [\"Gold\"] }, \"Mariner\": { \"v\": [\"Seemann\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud Blau\"] }, \"Olivine\": { \"v\": [\"Olivin\"] }, \"Purple\": { \"v\": [\"Lila\"] }, \"Rosy brown\": { \"v\": [\"Rosiges Braun\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"Weiß\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Schwarz\"] }, \"Blue Violet\": { \"v\": [\"Blau Violett\"] }, \"Boston Blue\": { \"v\": [\"Boston-Blau\"] }, \"Deluge\": { \"v\": [\"Sintflut\"] }, \"Feldspar\": { \"v\": [\"Feldspat\"] }, \"Gold\": { \"v\": [\"Gold\"] }, \"Mariner\": { \"v\": [\"Seemann\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud Blau\"] }, \"Olivine\": { \"v\": [\"Olivin\"] }, \"Purple\": { \"v\": [\"Lila\"] }, \"Rosy brown\": { \"v\": [\"Rosiges Braun\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"Weiß\"] } } }, { \"l\": \"el\", \"t\": { \"Acapulco\": { \"v\": [\"Ακαπούλκο\"] }, \"Black\": { \"v\": [\"Μαύρο\"] }, \"Blue Violet\": { \"v\": [\"Μπλε Βιολέτ\"] }, \"Boston Blue\": { \"v\": [\"Μπλε Βοστώνης\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Χρυσό\"] }, \"Mariner\": { \"v\": [\"Mariner\"] }, \"Nextcloud blue\": { \"v\": [\"Μπλε Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"Μωβ\"] }, \"Rosy brown\": { \"v\": [\"Ροζ καφέ\"] }, \"Whiskey\": { \"v\": [\"Ουίσκι\"] }, \"White\": { \"v\": [\"Λευκό\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Black\"] }, \"Blue Violet\": { \"v\": [\"Blue Violet\"] }, \"Boston Blue\": { \"v\": [\"Boston Blue\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Gold\"] }, \"Mariner\": { \"v\": [\"Mariner\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud blue\"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"Purple\"] }, \"Rosy brown\": { \"v\": [\"Rosy brown\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"White\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Violeta Azul\"] }, \"Boston Blue\": { \"v\": [\"Azul Boston\"] }, \"Deluge\": { \"v\": [\"Diluvio\"] }, \"Feldspar\": { \"v\": [\"Feldespato\"] }, \"Gold\": { \"v\": [\"Oro\"] }, \"Mariner\": { \"v\": [\"Marinero\"] }, \"Nextcloud blue\": { \"v\": [\"Azul Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivino\"] }, \"Purple\": { \"v\": [\"Púrpura\"] }, \"Rosy brown\": { \"v\": [\"Marrón rosáceo\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Violeta Azul\"] }, \"Boston Blue\": { \"v\": [\"Azul Boston\"] }, \"Deluge\": { \"v\": [\"Diluvio\"] }, \"Feldspar\": { \"v\": [\"Feldespato\"] }, \"Gold\": { \"v\": [\"Oro\"] }, \"Mariner\": { \"v\": [\"Marinero\"] }, \"Nextcloud blue\": { \"v\": [\"Azul Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivino\"] }, \"Purple\": { \"v\": [\"Púrpura\"] }, \"Rosy brown\": { \"v\": [\"Marrón rosáceo\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] } } }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Violeta Azul\"] }, \"Boston Blue\": { \"v\": [\"Azul Boston\"] }, \"Deluge\": { \"v\": [\"Diluvio\"] }, \"Feldspar\": { \"v\": [\"Feldespato\"] }, \"Gold\": { \"v\": [\"Oro\"] }, \"Mariner\": { \"v\": [\"Marinero\"] }, \"Nextcloud blue\": { \"v\": [\"Azul Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivino\"] }, \"Purple\": { \"v\": [\"Púrpura\"] }, \"Rosy brown\": { \"v\": [\"Marrón rosáceo\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco meresinine\"] }, \"Black\": { \"v\": [\"Must\"] }, \"Blue Violet\": { \"v\": [\"Sinakasvioletne\"] }, \"Boston Blue\": { \"v\": [\"Bostoni rohekassinine\"] }, \"Deluge\": { \"v\": [\"Tulvavee lilla\"] }, \"Feldspar\": { \"v\": [\"Põlevkivipruun\"] }, \"Gold\": { \"v\": [\"Kuldne\"] }, \"Mariner\": { \"v\": [\"Meresinine\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloudi sinine\"] }, \"Olivine\": { \"v\": [\"Oliiviroheline\"] }, \"Purple\": { \"v\": [\"Purpurpunane\"] }, \"Rosy brown\": { \"v\": [\"Roosikarva pruun\"] }, \"Whiskey\": { \"v\": [\"Viskikarva kollakaspruun\"] }, \"White\": { \"v\": [\"Valge\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"Acapulco\": { \"v\": [\"آکاپولکو\"] }, \"Blue Violet\": { \"v\": [\"بنفش آبی\"] }, \"Boston Blue\": { \"v\": [\"آبی بوستونی\"] }, \"Deluge\": { \"v\": [\"سیل\"] }, \"Feldspar\": { \"v\": [\"فلدسپات\"] }, \"Gold\": { \"v\": [\"طلا\"] }, \"Mariner\": { \"v\": [\"مارینر\"] }, \"Nextcloud blue\": { \"v\": [\"نکس کلود آبی\"] }, \"Olivine\": { \"v\": [\"الیوین\"] }, \"Purple\": { \"v\": [\"بنفش\"] }, \"Rosy brown\": { \"v\": [\"قهوه‌ای رز\"] }, \"Whiskey\": { \"v\": [\"ویسکی\"] } } }, { \"l\": \"fi\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Sinivioletti\"] }, \"Boston Blue\": { \"v\": [\"Bostoninsininen\"] }, \"Deluge\": { \"v\": [\"Tulva\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Kulta\"] }, \"Mariner\": { \"v\": [\"Merenkulkija\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloudin sininen\"] }, \"Olivine\": { \"v\": [\"Oliviini\"] }, \"Purple\": { \"v\": [\"Purppura\"] }, \"Rosy brown\": { \"v\": [\"Ruusunruskea\"] }, \"Whiskey\": { \"v\": [\"Viski\"] } } }, { \"l\": \"fr\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Bleu violet\"] }, \"Boston Blue\": { \"v\": [\"Bleu de Boston\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Doré\"] }, \"Mariner\": { \"v\": [\"Marin\"] }, \"Nextcloud blue\": { \"v\": [\"Bleu Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"Violet\"] }, \"Rosy brown\": { \"v\": [\"Brun rosé\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] } } }, { \"l\": \"ga\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Dubh\"] }, \"Blue Violet\": { \"v\": [\"Gorm Violet\"] }, \"Boston Blue\": { \"v\": [\"Bostún Gorm\"] }, \"Deluge\": { \"v\": [\"Díle\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Óir\"] }, \"Mariner\": { \"v\": [\"Mairnéalach\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud gorm\"] }, \"Olivine\": { \"v\": [\"Olaivín\"] }, \"Purple\": { \"v\": [\"Corcra\"] }, \"Rosy brown\": { \"v\": [\"Rosach donn\"] }, \"Whiskey\": { \"v\": [\"Fuisce\"] }, \"White\": { \"v\": [\"Bán\"] } } }, { \"l\": \"gl\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Negro\"] }, \"Blue Violet\": { \"v\": [\"Azul violeta\"] }, \"Boston Blue\": { \"v\": [\"Azul Boston\"] }, \"Deluge\": { \"v\": [\"Dioivo\"] }, \"Feldspar\": { \"v\": [\"Feldespato\"] }, \"Gold\": { \"v\": [\"Ouro\"] }, \"Mariner\": { \"v\": [\"Marino\"] }, \"Nextcloud blue\": { \"v\": [\"Azul Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivina\"] }, \"Purple\": { \"v\": [\"Púrpura\"] }, \"Rosy brown\": { \"v\": [\"Pardo rosado\"] }, \"Whiskey\": { \"v\": [\"Whisky\"] }, \"White\": { \"v\": [\"Branco\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": { \"Gold\": { \"v\": [\"Emas\"] }, \"Nextcloud blue\": { \"v\": [\"Biru Nextcloud\"] }, \"Purple\": { \"v\": [\"Ungu\"] } } }, { \"l\": \"is\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Bláklukka\"] }, \"Boston Blue\": { \"v\": [\"Bostonblátt\"] }, \"Deluge\": { \"v\": [\"Fjólublátt\"] }, \"Feldspar\": { \"v\": [\"Feldspat\"] }, \"Gold\": { \"v\": [\"Gull\"] }, \"Mariner\": { \"v\": [\"Sjóarablátt\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud blátt\"] }, \"Olivine\": { \"v\": [\"Ólivín\"] }, \"Purple\": { \"v\": [\"Purpurablátt\"] }, \"Rosy brown\": { \"v\": [\"Rósabrúnt\"] }, \"Whiskey\": { \"v\": [\"Viský\"] } } }, { \"l\": \"it\", \"t\": { \"Gold\": { \"v\": [\"Oro\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud blue\"] }, \"Purple\": { \"v\": [\"Viola\"] } } }, { \"l\": \"ja\", \"t\": { \"Acapulco\": { \"v\": [\"アカプルコ\"] }, \"Black\": { \"v\": [\"黒\"] }, \"Blue Violet\": { \"v\": [\"ブルーバイオレット\"] }, \"Boston Blue\": { \"v\": [\"ボストンブルー\"] }, \"Deluge\": { \"v\": [\"豪雨\"] }, \"Feldspar\": { \"v\": [\"長石\"] }, \"Gold\": { \"v\": [\"黄金\"] }, \"Mariner\": { \"v\": [\"船乗り\"] }, \"Nextcloud blue\": { \"v\": [\"ネクストクラウド・ブルー\"] }, \"Olivine\": { \"v\": [\"カンラン石\"] }, \"Purple\": { \"v\": [\"紫色\"] }, \"Rosy brown\": { \"v\": [\"バラ色\"] }, \"Whiskey\": { \"v\": [\"ウイスキー\"] }, \"White\": { \"v\": [\"白\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Acapulco\": { \"v\": [\"アカプルコ\"] }, \"Blue Violet\": { \"v\": [\"ブルーバイオレット\"] }, \"Boston Blue\": { \"v\": [\"ボストンブルー\"] }, \"Deluge\": { \"v\": [\"豪雨\"] }, \"Feldspar\": { \"v\": [\"長石\"] }, \"Gold\": { \"v\": [\"黄金\"] }, \"Mariner\": { \"v\": [\"船乗り\"] }, \"Nextcloud blue\": { \"v\": [\"ネクストクラウド・ブルー\"] }, \"Olivine\": { \"v\": [\"カンラン石\"] }, \"Purple\": { \"v\": [\"紫色\"] }, \"Rosy brown\": { \"v\": [\"バラ色\"] }, \"Whiskey\": { \"v\": [\"ウイスキー\"] } } }, { \"l\": \"ko\", \"t\": { \"Acapulco\": { \"v\": [\"아카풀코\"] }, \"Blue Violet\": { \"v\": [\"푸른 보라\"] }, \"Boston Blue\": { \"v\": [\"보스턴 블루\"] }, \"Deluge\": { \"v\": [\"폭우\"] }, \"Feldspar\": { \"v\": [\"장석\"] }, \"Gold\": { \"v\": [\"금\"] }, \"Mariner\": { \"v\": [\"뱃사람\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud 파랑\"] }, \"Olivine\": { \"v\": [\"감람석\"] }, \"Purple\": { \"v\": [\"보라\"] }, \"Rosy brown\": { \"v\": [\"로지 브라운\"] }, \"Whiskey\": { \"v\": [\"위스키\"] } } }, { \"l\": \"lo\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"ສີດຳ\"] }, \"Blue Violet\": { \"v\": [\"Blue Violet\"] }, \"Boston Blue\": { \"v\": [\"Boston Blue\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"ສີຄຳ\"] }, \"Mariner\": { \"v\": [\"Mariner\"] }, \"Nextcloud blue\": { \"v\": [\"ສີຟ້າ Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"ສີມ່ວງ\"] }, \"Rosy brown\": { \"v\": [\"Rosy brown\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"ສີຂາວ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Acapulco\": { \"v\": [\"Акапулко\"] }, \"Black\": { \"v\": [\"Црно\"] }, \"Blue Violet\": { \"v\": [\"Сино Виолетова\"] }, \"Boston Blue\": { \"v\": [\"Бостон Сина\"] }, \"Deluge\": { \"v\": [\"Делуџ\"] }, \"Feldspar\": { \"v\": [\"Фелдспар\"] }, \"Gold\": { \"v\": [\"Златна\"] }, \"Mariner\": { \"v\": [\"Маринер\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud сина\"] }, \"Olivine\": { \"v\": [\"Оливин\"] }, \"Purple\": { \"v\": [\"Виолетова\"] }, \"Rosy brown\": { \"v\": [\"Розево-кафеава\"] }, \"Whiskey\": { \"v\": [\"Виски\"] }, \"White\": { \"v\": [\"Бела\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Blå fiolett\"] }, \"Boston Blue\": { \"v\": [\"Boston blå\"] }, \"Deluge\": { \"v\": [\"Syndflod\"] }, \"Feldspar\": { \"v\": [\"Feltspat\"] }, \"Gold\": { \"v\": [\"Gull\"] }, \"Mariner\": { \"v\": [\"Mariner\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud-blå\"] }, \"Olivine\": { \"v\": [\"Olivin\"] }, \"Purple\": { \"v\": [\"Lilla\"] }, \"Rosy brown\": { \"v\": [\"Rosenrød brun\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] } } }, { \"l\": \"nl\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Zwart\"] }, \"Blue Violet\": { \"v\": [\"Blauw Paars\"] }, \"Boston Blue\": { \"v\": [\"Boston Blauw\"] }, \"Deluge\": { \"v\": [\"Overlopen\"] }, \"Feldspar\": { \"v\": [\"Veldspaat\"] }, \"Gold\": { \"v\": [\"Goud\"] }, \"Mariner\": { \"v\": [\"Marineblauw\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud blauw\"] }, \"Olivine\": { \"v\": [\"Olivijn\"] }, \"Purple\": { \"v\": [\"Paars\"] }, \"Rosy brown\": { \"v\": [\"Rozig bruin\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"Wit\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Niebieski fiolet\"] }, \"Boston Blue\": { \"v\": [\"Błękit Bostonu\"] }, \"Deluge\": { \"v\": [\"Potop\"] }, \"Feldspar\": { \"v\": [\"Skaleń\"] }, \"Gold\": { \"v\": [\"Złote\"] }, \"Mariner\": { \"v\": [\"Marynarz\"] }, \"Nextcloud blue\": { \"v\": [\"Niebieskie Nextcloud\"] }, \"Olivine\": { \"v\": [\"Oliwin\"] }, \"Purple\": { \"v\": [\"Fioletowy\"] }, \"Rosy brown\": { \"v\": [\"Różowy brąz\"] }, \"Whiskey\": { \"v\": [\"Whisky\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Preto\"] }, \"Blue Violet\": { \"v\": [\"Violeta Azul\"] }, \"Boston Blue\": { \"v\": [\"Azul Boston\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspato\"] }, \"Gold\": { \"v\": [\"Ouro\"] }, \"Mariner\": { \"v\": [\"Marinheiro\"] }, \"Nextcloud blue\": { \"v\": [\"Azul Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivina\"] }, \"Purple\": { \"v\": [\"Roxo\"] }, \"Rosy brown\": { \"v\": [\"Castanho rosado\"] }, \"Whiskey\": { \"v\": [\"Uísque\"] }, \"White\": { \"v\": [\"Branco\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Azul violeta\"] }, \"Boston Blue\": { \"v\": [\"Azul Boston\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Ouro\"] }, \"Mariner\": { \"v\": [\"Mariner\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud azul\"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"Púrpura\"] }, \"Rosy brown\": { \"v\": [\"Castanho rosado\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] } } }, { \"l\": \"ro\", \"t\": { \"Gold\": { \"v\": [\"Aur\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud albastru\"] }, \"Purple\": { \"v\": [\"Purpuriu\"] } } }, { \"l\": \"ru\", \"t\": { \"Acapulco\": { \"v\": [\"Акапулько\"] }, \"Blue Violet\": { \"v\": [\"Синий фиолет\"] }, \"Boston Blue\": { \"v\": [\"Синий Бостон\"] }, \"Deluge\": { \"v\": [\"Перламутрово-фиолетовый\"] }, \"Feldspar\": { \"v\": [\"Античная латунь\"] }, \"Gold\": { \"v\": [\"Золотой\"] }, \"Mariner\": { \"v\": [\"Морской\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud голубой\"] }, \"Olivine\": { \"v\": [\" Оливковый\"] }, \"Purple\": { \"v\": [\"Фиолетовый\"] }, \"Rosy brown\": { \"v\": [\"Розово-коричневый\"] }, \"Whiskey\": { \"v\": [\"Виски\"] } } }, { \"l\": \"sk\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Modro fialová\"] }, \"Boston Blue\": { \"v\": [\"Bostonská modrá\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Živec\"] }, \"Gold\": { \"v\": [\"Zlatá\"] }, \"Mariner\": { \"v\": [\"Námorník\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud modrá\"] }, \"Olivine\": { \"v\": [\"Olivová\"] }, \"Purple\": { \"v\": [\"Fialová\"] }, \"Rosy brown\": { \"v\": [\"Ružovo hnedá\"] }, \"Whiskey\": { \"v\": [\"Whisky\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Acapulco\": { \"v\": [\"Акапулко\"] }, \"Black\": { \"v\": [\"Црно\"] }, \"Blue Violet\": { \"v\": [\"Плаво љубичаста\"] }, \"Boston Blue\": { \"v\": [\"Бостон плава\"] }, \"Deluge\": { \"v\": [\"Поплава\"] }, \"Feldspar\": { \"v\": [\"Фелдспар\"] }, \"Gold\": { \"v\": [\"Злато\"] }, \"Mariner\": { \"v\": [\"Морнар\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud плава\"] }, \"Olivine\": { \"v\": [\"Маслинаста\"] }, \"Purple\": { \"v\": [\"Пурпурна\"] }, \"Rosy brown\": { \"v\": [\"Роси браон\"] }, \"Whiskey\": { \"v\": [\"Виски\"] }, \"White\": { \"v\": [\"Бело\"] } } }, { \"l\": \"sv\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Blåviolett\"] }, \"Boston Blue\": { \"v\": [\"Bostonblå\"] }, \"Deluge\": { \"v\": [\"Skyfallsblå\"] }, \"Feldspar\": { \"v\": [\"Feldspat\"] }, \"Gold\": { \"v\": [\"Guld\"] }, \"Mariner\": { \"v\": [\"Marinblå\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud-blå\"] }, \"Olivine\": { \"v\": [\"Olivin\"] }, \"Purple\": { \"v\": [\"Lila\"] }, \"Rosy brown\": { \"v\": [\"Rosabrun\"] }, \"Whiskey\": { \"v\": [\"Whisky\"] } } }, { \"l\": \"tr\", \"t\": { \"Acapulco\": { \"v\": [\"Akapulko\"] }, \"Black\": { \"v\": [\"Siyah\"] }, \"Blue Violet\": { \"v\": [\"Mavi mor\"] }, \"Boston Blue\": { \"v\": [\"Boston mavisi\"] }, \"Deluge\": { \"v\": [\"Sel\"] }, \"Feldspar\": { \"v\": [\"Feldispat\"] }, \"Gold\": { \"v\": [\"Altın\"] }, \"Mariner\": { \"v\": [\"Denizci\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud mavi\"] }, \"Olivine\": { \"v\": [\"Zeytinlik\"] }, \"Purple\": { \"v\": [\"Mor\"] }, \"Rosy brown\": { \"v\": [\"Kırmızımsı kahverengi\"] }, \"Whiskey\": { \"v\": [\"Viski\"] }, \"White\": { \"v\": [\"Beyaz\"] } } }, { \"l\": \"uk\", \"t\": { \"Acapulco\": { \"v\": [\"Акапулько\"] }, \"Blue Violet\": { \"v\": [\"Блакитна фіалка\"] }, \"Boston Blue\": { \"v\": [\"Бостонський синій\"] }, \"Deluge\": { \"v\": [\"Злива\"] }, \"Feldspar\": { \"v\": [\"Польові шпати\"] }, \"Gold\": { \"v\": [\"Золотий\"] }, \"Mariner\": { \"v\": [\"Морський\"] }, \"Nextcloud blue\": { \"v\": [\"Блакитний Nextcloud\"] }, \"Olivine\": { \"v\": [\"Олива\"] }, \"Purple\": { \"v\": [\"Фіолетовий\"] }, \"Rosy brown\": { \"v\": [\"Темно-рожевий\"] }, \"Whiskey\": { \"v\": [\"Кола\"] } } }, { \"l\": \"uz\", \"t\": { \"Acapulco\": { \"v\": [\"Akapulko\"] }, \"Black\": { \"v\": [\"Qora\"] }, \"Blue Violet\": { \"v\": [\"Moviy binafsha\"] }, \"Boston Blue\": { \"v\": [\"Boston ko'k\"] }, \"Deluge\": { \"v\": [\"To'fon\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Oltin\"] }, \"Mariner\": { \"v\": [\"Dengizchi\"] }, \"Nextcloud blue\": { \"v\": [\"Ko'k Nextcloud \"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"Binafsha\"] }, \"Rosy brown\": { \"v\": [\"Qizil jigarrang\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"Oq\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"瓦罗兰特蓝\"] }, \"Boston Blue\": { \"v\": [\"波士顿蓝\"] }, \"Deluge\": { \"v\": [\"洪水色\"] }, \"Feldspar\": { \"v\": [\"长石\"] }, \"Gold\": { \"v\": [\"金色\"] }, \"Mariner\": { \"v\": [\"水手\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud 蓝\"] }, \"Olivine\": { \"v\": [\"橄榄石色\"] }, \"Purple\": { \"v\": [\"紫色\"] }, \"Rosy brown\": { \"v\": [\"玫瑰棕色\"] }, \"Whiskey\": { \"v\": [\"威士忌\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Acapulco\": { \"v\": [\"阿卡普爾科\"] }, \"Black\": { \"v\": [\"黑色\"] }, \"Blue Violet\": { \"v\": [\"藍紫色\"] }, \"Boston Blue\": { \"v\": [\"波士頓藍\"] }, \"Deluge\": { \"v\": [\"大洪水\"] }, \"Feldspar\": { \"v\": [\"長石\"] }, \"Gold\": { \"v\": [\"Gold\"] }, \"Mariner\": { \"v\": [\"海軍藍\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud 藍色\"] }, \"Olivine\": { \"v\": [\"橄欖石色\"] }, \"Purple\": { \"v\": [\"紫色\"] }, \"Rosy brown\": { \"v\": [\"玫瑰棕色\"] }, \"Whiskey\": { \"v\": [\"威士忌\"] }, \"White\": { \"v\": [\"白色\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"藍紫色\"] }, \"Boston Blue\": { \"v\": [\"波士頓藍\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"長石\"] }, \"Gold\": { \"v\": [\"金色\"] }, \"Mariner\": { \"v\": [\"海軍藍\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud 藍色\"] }, \"Olivine\": { \"v\": [\"橄欖石色\"] }, \"Purple\": { \"v\": [\"紫色\"] }, \"Rosy brown\": { \"v\": [\"玫瑰棕色\"] }, \"Whiskey\": { \"v\": [\"威士忌\"] } } }];\nconst t4 = [{ \"l\": \"ar\", \"t\": { \"Actions\": { \"v\": [\"إجراءات\"] } } }, { \"l\": \"ast\", \"t\": { \"Actions\": { \"v\": [\"Aiciones\"] } } }, { \"l\": \"br\", \"t\": { \"Actions\": { \"v\": [\"Oberioù\"] } } }, { \"l\": \"ca\", \"t\": { \"Actions\": { \"v\": [\"Accions\"] } } }, { \"l\": \"cs\", \"t\": { \"Actions\": { \"v\": [\"Akce\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Actions\": { \"v\": [\"Akce\"] } } }, { \"l\": \"da\", \"t\": { \"Actions\": { \"v\": [\"Handlinger\"] } } }, { \"l\": \"de\", \"t\": { \"Actions\": { \"v\": [\"Aktionen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Actions\": { \"v\": [\"Aktionen\"] } } }, { \"l\": \"el\", \"t\": { \"Actions\": { \"v\": [\"Ενέργειες\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Actions\": { \"v\": [\"Actions\"] } } }, { \"l\": \"eo\", \"t\": { \"Actions\": { \"v\": [\"Agoj\"] } } }, { \"l\": \"es\", \"t\": { \"Actions\": { \"v\": [\"Acciones\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Actions\": { \"v\": [\"Acciones\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Actions\": { \"v\": [\"Acciones\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Actions\": { \"v\": [\"Acciones\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Actions\": { \"v\": [\"Tegevus\"] } } }, { \"l\": \"eu\", \"t\": { \"Actions\": { \"v\": [\"Ekintzak\"] } } }, { \"l\": \"fa\", \"t\": { \"Actions\": { \"v\": [\"کنش‌ها\"] } } }, { \"l\": \"fi\", \"t\": { \"Actions\": { \"v\": [\"Toiminnot\"] } } }, { \"l\": \"fr\", \"t\": { \"Actions\": { \"v\": [\"Actions\"] } } }, { \"l\": \"ga\", \"t\": { \"Actions\": { \"v\": [\"Gníomhartha\"] } } }, { \"l\": \"gl\", \"t\": { \"Actions\": { \"v\": [\"Accións\"] } } }, { \"l\": \"he\", \"t\": { \"Actions\": { \"v\": [\"פעולות\"] } } }, { \"l\": \"hu\", \"t\": { \"Actions\": { \"v\": [\"Műveletek\"] } } }, { \"l\": \"id\", \"t\": { \"Actions\": { \"v\": [\"Tindakan\"] } } }, { \"l\": \"is\", \"t\": { \"Actions\": { \"v\": [\"Aðgerðir\"] } } }, { \"l\": \"it\", \"t\": { \"Actions\": { \"v\": [\"Azioni\"] } } }, { \"l\": \"ja\", \"t\": { \"Actions\": { \"v\": [\"操作\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Actions\": { \"v\": [\"操作\"] } } }, { \"l\": \"ko\", \"t\": { \"Actions\": { \"v\": [\"동작\"] } } }, { \"l\": \"lo\", \"t\": { \"Actions\": { \"v\": [\"ການກະທຳ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Actions\": { \"v\": [\"Veiksmai\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Actions\": { \"v\": [\"Акции\"] } } }, { \"l\": \"my\", \"t\": { \"Actions\": { \"v\": [\"လုပ်ဆောင်ချက်များ\"] } } }, { \"l\": \"nb\", \"t\": { \"Actions\": { \"v\": [\"Handlinger\"] } } }, { \"l\": \"nl\", \"t\": { \"Actions\": { \"v\": [\"Acties\"] } } }, { \"l\": \"oc\", \"t\": { \"Actions\": { \"v\": [\"Accions\"] } } }, { \"l\": \"pl\", \"t\": { \"Actions\": { \"v\": [\"Działania\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Actions\": { \"v\": [\"Ações\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Actions\": { \"v\": [\"Ações\"] } } }, { \"l\": \"ro\", \"t\": { \"Actions\": { \"v\": [\"Acțiuni\"] } } }, { \"l\": \"ru\", \"t\": { \"Actions\": { \"v\": [\"Действия \"] } } }, { \"l\": \"sk\", \"t\": { \"Actions\": { \"v\": [\"Akcie\"] } } }, { \"l\": \"sl\", \"t\": { \"Actions\": { \"v\": [\"Dejanja\"] } } }, { \"l\": \"sr\", \"t\": { \"Actions\": { \"v\": [\"Радње\"] } } }, { \"l\": \"sv\", \"t\": { \"Actions\": { \"v\": [\"Åtgärder\"] } } }, { \"l\": \"tr\", \"t\": { \"Actions\": { \"v\": [\"İşlemler\"] } } }, { \"l\": \"uk\", \"t\": { \"Actions\": { \"v\": [\"Дії\"] } } }, { \"l\": \"uz\", \"t\": { \"Actions\": { \"v\": [\"Harakatlar\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Actions\": { \"v\": [\"行为\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Actions\": { \"v\": [\"動作\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Actions\": { \"v\": [\"動作\"] } } }];\nconst t5 = [{ \"l\": \"ar\", \"t\": { \"Activities\": { \"v\": [\"سجل الأنشطة\"] }, \"Animals & Nature\": { \"v\": [\"الحيوانات والطبيعة\"] }, \"Custom\": { \"v\": [\"مُخصَّص\"] }, \"Dark skin tone\": { \"v\": [\"أسمر البُشرة\"] }, \"Emoji picker\": { \"v\": [\"لاقط الإيموجي\"] }, \"Flags\": { \"v\": [\"الأعلام\"] }, \"Food & Drink\": { \"v\": [\"الطعام والشراب\"] }, \"Frequently used\": { \"v\": [\"شائعة الاستعمال\"] }, \"Light skin tone\": { \"v\": [\"فاتح البُشرة\"] }, \"Medium dark skin tone\": { \"v\": [\"بشرة متوسطة الاسمرار\"] }, \"Medium light skin tone\": { \"v\": [\"بشرة متوسطة البياض\"] }, \"Medium skin tone\": { \"v\": [\"بشرة وسطية اللون\"] }, \"Neutral skin color\": { \"v\": [\"لون بُشرة طبيعي\"] }, \"Objects\": { \"v\": [\"أشياء\"] }, \"People & Body\": { \"v\": [\"أشخاص و أجسام\"] }, \"Pick an emoji\": { \"v\": [\"إختَر رمز إيموجي emoji\"] }, \"Search emoji\": { \"v\": [\"البحث عن إيموجي emoji\"] }, \"Search results\": { \"v\": [\"نتائج البحث\"] }, \"Selected\": { \"v\": [\"محدّدة\"] }, \"Skin tone\": { \"v\": [\"لون البُشرة\"] }, \"Smileys & Emotion\": { \"v\": [\"وجوهٌ ضاحكة و مشاعر\"] }, \"Symbols\": { \"v\": [\"رموز\"] }, \"Travel & Places\": { \"v\": [\"سفر و أماكن\"] } } }, { \"l\": \"ast\", \"t\": { \"Activities\": { \"v\": [\"Actividaes\"] }, \"Animals & Nature\": { \"v\": [\"Animales y natura\"] }, \"Custom\": { \"v\": [\"Personalizar\"] }, \"Dark skin tone\": { \"v\": [\"Tonu d'aspeutu escuru\"] }, \"Emoji picker\": { \"v\": [\"Selector de fustaxes\"] }, \"Flags\": { \"v\": [\"Banderes\"] }, \"Food & Drink\": { \"v\": [\"Cómida y bébora\"] }, \"Frequently used\": { \"v\": [\"D'usu frecuente\"] }, \"Light skin tone\": { \"v\": [\"Tonu d'aspeutu claru\"] }, \"Medium dark skin tone\": { \"v\": [\"Tonu d'aspeutu medio escuru\"] }, \"Medium light skin tone\": { \"v\": [\"Tonu d'aspeutu medio claru\"] }, \"Medium skin tone\": { \"v\": [\"Tonu d'aspeutu mediu\"] }, \"Neutral skin color\": { \"v\": [\"Color d'aspeutu neutral\"] }, \"Objects\": { \"v\": [\"Oxetos\"] }, \"People & Body\": { \"v\": [\"Persones y cuerpu\"] }, \"Pick an emoji\": { \"v\": [\"Escueyi un fustaxe\"] }, \"Search emoji\": { \"v\": [\"Buscar nos fustaxes\"] }, \"Search results\": { \"v\": [\"Resultaos de la busca\"] }, \"Selected\": { \"v\": [\"Na seleición\"] }, \"Skin tone\": { \"v\": [\"Tonu d'aspeutu\"] }, \"Smileys & Emotion\": { \"v\": [\"Sorrises y emociones\"] }, \"Symbols\": { \"v\": [\"Símbolos\"] }, \"Travel & Places\": { \"v\": [\"Viaxes y llugares\"] } } }, { \"l\": \"br\", \"t\": { \"Activities\": { \"v\": [\"Oberiantizoù\"] }, \"Animals & Nature\": { \"v\": [\"Loened & Natur\"] }, \"Custom\": { \"v\": [\"Personelañ\"] }, \"Flags\": { \"v\": [\"Bannieloù\"] }, \"Food & Drink\": { \"v\": [\"Boued & Evajoù\"] }, \"Frequently used\": { \"v\": [\"Implijet alies\"] }, \"Objects\": { \"v\": [\"Traoù\"] }, \"People & Body\": { \"v\": [\"Tud & Korf\"] }, \"Pick an emoji\": { \"v\": [\"Choaz un emoji\"] }, \"Search results\": { \"v\": [\"Disoc'hoù an enklask\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileyioù & Fromoù\"] }, \"Symbols\": { \"v\": [\"Arouezioù\"] }, \"Travel & Places\": { \"v\": [\"Beaj & Lec'hioù\"] } } }, { \"l\": \"ca\", \"t\": { \"Activities\": { \"v\": [\"Activitats\"] }, \"Animals & Nature\": { \"v\": [\"Animals i natura\"] }, \"Custom\": { \"v\": [\"Personalitzat\"] }, \"Flags\": { \"v\": [\"Marques\"] }, \"Food & Drink\": { \"v\": [\"Menjar i begudes\"] }, \"Frequently used\": { \"v\": [\"Utilitzats recentment\"] }, \"Objects\": { \"v\": [\"Objectes\"] }, \"People & Body\": { \"v\": [\"Persones i cos\"] }, \"Pick an emoji\": { \"v\": [\"Trieu un emoji\"] }, \"Search results\": { \"v\": [\"Resultats de cerca\"] }, \"Smileys & Emotion\": { \"v\": [\"Cares i emocions\"] }, \"Symbols\": { \"v\": [\"Símbols\"] }, \"Travel & Places\": { \"v\": [\"Viatges i llocs\"] } } }, { \"l\": \"cs\", \"t\": { \"Activities\": { \"v\": [\"Aktivity\"] }, \"Animals & Nature\": { \"v\": [\"Zvířata a příroda\"] }, \"Custom\": { \"v\": [\"Uživatelsky určené\"] }, \"Dark skin tone\": { \"v\": [\"Tmavý tělový tón\"] }, \"Emoji picker\": { \"v\": [\"Výběr emotikon\"] }, \"Flags\": { \"v\": [\"Příznaky\"] }, \"Food & Drink\": { \"v\": [\"Jídlo a pití\"] }, \"Frequently used\": { \"v\": [\"Často používané\"] }, \"Light skin tone\": { \"v\": [\"Světlý tělový tón\"] }, \"Medium dark skin tone\": { \"v\": [\"Středně tmavý tělový tón\"] }, \"Medium light skin tone\": { \"v\": [\"Středně světlý tělový tón\"] }, \"Medium skin tone\": { \"v\": [\"Střední tělový tón\"] }, \"Neutral skin color\": { \"v\": [\"Neutrální tělová barva\"] }, \"Objects\": { \"v\": [\"Objekty\"] }, \"People & Body\": { \"v\": [\"Lidé a tělo\"] }, \"Pick an emoji\": { \"v\": [\"Vybrat emoji\"] }, \"Search emoji\": { \"v\": [\"Hledat emoji\"] }, \"Search results\": { \"v\": [\"Výsledky hledání\"] }, \"Selected\": { \"v\": [\"Vybráno\"] }, \"Skin tone\": { \"v\": [\"Tělový tón\"] }, \"Smileys & Emotion\": { \"v\": [\"Úsměvy a emoce\"] }, \"Symbols\": { \"v\": [\"Symboly\"] }, \"Travel & Places\": { \"v\": [\"Cestování a místa\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Activities\": { \"v\": [\"Aktivity\"] }, \"Animals & Nature\": { \"v\": [\"Zvířata a příroda\"] }, \"Custom\": { \"v\": [\"Uživatelsky určené\"] }, \"Dark skin tone\": { \"v\": [\"Tmavý tělový tón\"] }, \"Emoji picker\": { \"v\": [\"Výběr emotikon\"] }, \"Flags\": { \"v\": [\"Příznaky\"] }, \"Food & Drink\": { \"v\": [\"Jídlo a pití\"] }, \"Frequently used\": { \"v\": [\"Často používané\"] }, \"Light skin tone\": { \"v\": [\"Světlý tělový tón\"] }, \"Medium dark skin tone\": { \"v\": [\"Středně tmavý tělový tón\"] }, \"Medium light skin tone\": { \"v\": [\"Středně světlý tělový tón\"] }, \"Medium skin tone\": { \"v\": [\"Střední tělový tón\"] }, \"Neutral skin color\": { \"v\": [\"Neutřální tělová barva\"] }, \"Objects\": { \"v\": [\"Objekty\"] }, \"People & Body\": { \"v\": [\"Lidé a tělo\"] }, \"Pick an emoji\": { \"v\": [\"Vybrat emoji\"] }, \"Search emoji\": { \"v\": [\"Hledat emoji\"] }, \"Search results\": { \"v\": [\"Výsledky hledání\"] }, \"Selected\": { \"v\": [\"Vybráno\"] }, \"Skin tone\": { \"v\": [\"Tělový tón\"] }, \"Smileys & Emotion\": { \"v\": [\"Úsměvy a emoce\"] }, \"Symbols\": { \"v\": [\"Symboly\"] }, \"Travel & Places\": { \"v\": [\"Cestování a místa\"] } } }, { \"l\": \"da\", \"t\": { \"Activities\": { \"v\": [\"Aktiviteter\"] }, \"Animals & Nature\": { \"v\": [\"Dyr & Natur\"] }, \"Custom\": { \"v\": [\"Brugerdefineret\"] }, \"Dark skin tone\": { \"v\": [\"Mørk skin tone\"] }, \"Emoji picker\": { \"v\": [\"Emoji vælger\"] }, \"Flags\": { \"v\": [\"Flag\"] }, \"Food & Drink\": { \"v\": [\"Mad & Drikke\"] }, \"Frequently used\": { \"v\": [\"Ofte brugt\"] }, \"Light skin tone\": { \"v\": [\"Lys skin tone\"] }, \"Medium dark skin tone\": { \"v\": [\"Medium mørk skin tone\"] }, \"Medium light skin tone\": { \"v\": [\"Medium lys skin tone\"] }, \"Medium skin tone\": { \"v\": [\"Medium skin tone\"] }, \"Neutral skin color\": { \"v\": [\"Neutral skin color\"] }, \"Objects\": { \"v\": [\"Objekter\"] }, \"People & Body\": { \"v\": [\"Mennesker & Menneskekroppen\"] }, \"Pick an emoji\": { \"v\": [\"Vælg en emoji\"] }, \"Search emoji\": { \"v\": [\"Søg emoji\"] }, \"Search results\": { \"v\": [\"Søgeresultater\"] }, \"Selected\": { \"v\": [\"Valgt\"] }, \"Skin tone\": { \"v\": [\"Skin tone\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Emotion\"] }, \"Symbols\": { \"v\": [\"Symboler\"] }, \"Travel & Places\": { \"v\": [\"Rejser & Rejsemål\"] } } }, { \"l\": \"de\", \"t\": { \"Activities\": { \"v\": [\"Aktivitäten\"] }, \"Animals & Nature\": { \"v\": [\"Tiere & Natur\"] }, \"Custom\": { \"v\": [\"Benutzerdefiniert\"] }, \"Dark skin tone\": { \"v\": [\"Dunkler Hautfarbton\"] }, \"Emoji picker\": { \"v\": [\"Emoji-Auswahl\"] }, \"Flags\": { \"v\": [\"Flaggen\"] }, \"Food & Drink\": { \"v\": [\"Essen & Trinken\"] }, \"Frequently used\": { \"v\": [\"Häufig verwendet\"] }, \"Light skin tone\": { \"v\": [\"Heller Hautfarbton\"] }, \"Medium dark skin tone\": { \"v\": [\"Mitteldunkler Hautfarbton\"] }, \"Medium light skin tone\": { \"v\": [\"Mittelheller Hautfarbton\"] }, \"Medium skin tone\": { \"v\": [\"Mittlerer Hautfarbton\"] }, \"Neutral skin color\": { \"v\": [\"Neutraler Hautfarbton\"] }, \"Objects\": { \"v\": [\"Objekte\"] }, \"People & Body\": { \"v\": [\"Menschen & Körper\"] }, \"Pick an emoji\": { \"v\": [\"Ein Emoji auswählen\"] }, \"Search emoji\": { \"v\": [\"Emoji suchen\"] }, \"Search results\": { \"v\": [\"Suchergebnisse\"] }, \"Selected\": { \"v\": [\"Ausgewählt\"] }, \"Skin tone\": { \"v\": [\"Hautfarbton\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Emotionen\"] }, \"Symbols\": { \"v\": [\"Symbole\"] }, \"Travel & Places\": { \"v\": [\"Reisen & Orte\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Activities\": { \"v\": [\"Aktivitäten\"] }, \"Animals & Nature\": { \"v\": [\"Tiere & Natur\"] }, \"Custom\": { \"v\": [\"Benutzerdefiniert\"] }, \"Dark skin tone\": { \"v\": [\"Dunkler Hautfarbton\"] }, \"Emoji picker\": { \"v\": [\"Emoji-Auswahl\"] }, \"Flags\": { \"v\": [\"Flaggen\"] }, \"Food & Drink\": { \"v\": [\"Essen & Trinken\"] }, \"Frequently used\": { \"v\": [\"Häufig verwendet\"] }, \"Light skin tone\": { \"v\": [\"Heller Hautfarbton\"] }, \"Medium dark skin tone\": { \"v\": [\"Mitteldunkler Hautfarbton\"] }, \"Medium light skin tone\": { \"v\": [\"Mittelheller Hautfarbton\"] }, \"Medium skin tone\": { \"v\": [\"Mittlerer Hautfarbton\"] }, \"Neutral skin color\": { \"v\": [\"Neutraler Hautfarbton\"] }, \"Objects\": { \"v\": [\"Objekte\"] }, \"People & Body\": { \"v\": [\"Menschen & Körper\"] }, \"Pick an emoji\": { \"v\": [\"Ein Emoji auswählen\"] }, \"Search emoji\": { \"v\": [\"Emoji suchen\"] }, \"Search results\": { \"v\": [\"Suchergebnisse\"] }, \"Selected\": { \"v\": [\"Ausgewählt\"] }, \"Skin tone\": { \"v\": [\"Hautfarbton\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Emotionen\"] }, \"Symbols\": { \"v\": [\"Symbole\"] }, \"Travel & Places\": { \"v\": [\"Reisen & Orte\"] } } }, { \"l\": \"el\", \"t\": { \"Activities\": { \"v\": [\"Δραστηριότητες\"] }, \"Animals & Nature\": { \"v\": [\"Ζώα & Φύση\"] }, \"Custom\": { \"v\": [\"Προσαρμογή\"] }, \"Dark skin tone\": { \"v\": [\"Σκούρο θέμα\"] }, \"Emoji picker\": { \"v\": [\"Επιλογέας emoji\"] }, \"Flags\": { \"v\": [\"Σημαίες\"] }, \"Food & Drink\": { \"v\": [\"Φαγητό & Ποτό\"] }, \"Frequently used\": { \"v\": [\"Συχνά χρησιμοποιούμενο\"] }, \"Light skin tone\": { \"v\": [\"Ανοιχτό θέμα\"] }, \"Medium dark skin tone\": { \"v\": [\"Μέτριο σκούρο θέμα\"] }, \"Medium light skin tone\": { \"v\": [\"Μέτριο ανοιχτό θέμα\"] }, \"Medium skin tone\": { \"v\": [\"Μέτριος τόνος θέματος\"] }, \"Neutral skin color\": { \"v\": [\"Ουδέτερο χρώμα θέματος\"] }, \"Objects\": { \"v\": [\"Αντικείμενα\"] }, \"People & Body\": { \"v\": [\"Άνθρωποι & Σώμα\"] }, \"Pick an emoji\": { \"v\": [\"Επιλέξτε ένα emoji\"] }, \"Search emoji\": { \"v\": [\"Αναζήτηση emoji\"] }, \"Search results\": { \"v\": [\"Αποτελέσματα αναζήτησης\"] }, \"Selected\": { \"v\": [\"Επιλεγμένο\"] }, \"Skin tone\": { \"v\": [\"Τόνος δέρματος\"] }, \"Smileys & Emotion\": { \"v\": [\"Φατσούλες & Συναίσθημα\"] }, \"Symbols\": { \"v\": [\"Σύμβολα\"] }, \"Travel & Places\": { \"v\": [\"Ταξίδια & Τοποθεσίες\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Activities\": { \"v\": [\"Activities\"] }, \"Animals & Nature\": { \"v\": [\"Animals & Nature\"] }, \"Custom\": { \"v\": [\"Custom\"] }, \"Dark skin tone\": { \"v\": [\"Dark skin tone\"] }, \"Emoji picker\": { \"v\": [\"Emoji picker\"] }, \"Flags\": { \"v\": [\"Flags\"] }, \"Food & Drink\": { \"v\": [\"Food & Drink\"] }, \"Frequently used\": { \"v\": [\"Frequently used\"] }, \"Light skin tone\": { \"v\": [\"Light skin tone\"] }, \"Medium dark skin tone\": { \"v\": [\"Medium dark skin tone\"] }, \"Medium light skin tone\": { \"v\": [\"Medium light skin tone\"] }, \"Medium skin tone\": { \"v\": [\"Medium skin tone\"] }, \"Neutral skin color\": { \"v\": [\"Neutral skin colour\"] }, \"Objects\": { \"v\": [\"Objects\"] }, \"People & Body\": { \"v\": [\"People & Body\"] }, \"Pick an emoji\": { \"v\": [\"Pick an emoji\"] }, \"Search emoji\": { \"v\": [\"Search emoji\"] }, \"Search results\": { \"v\": [\"Search results\"] }, \"Selected\": { \"v\": [\"Selected\"] }, \"Skin tone\": { \"v\": [\"Skin tone\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Emotion\"] }, \"Symbols\": { \"v\": [\"Symbols\"] }, \"Travel & Places\": { \"v\": [\"Travel & Places\"] } } }, { \"l\": \"eo\", \"t\": { \"Activities\": { \"v\": [\"Aktiveco\"] }, \"Animals & Nature\": { \"v\": [\"Bestoj & Naturo\"] }, \"Custom\": { \"v\": [\"Propra\"] }, \"Flags\": { \"v\": [\"Flagoj\"] }, \"Food & Drink\": { \"v\": [\"Manĝaĵo & Trinkaĵo\"] }, \"Frequently used\": { \"v\": [\"Ofte uzataj\"] }, \"Objects\": { \"v\": [\"Objektoj\"] }, \"People & Body\": { \"v\": [\"Homoj & Korpo\"] }, \"Pick an emoji\": { \"v\": [\"Elekti emoĝion \"] }, \"Search results\": { \"v\": [\"Serĉrezultoj\"] }, \"Smileys & Emotion\": { \"v\": [\"Ridoj kaj Emocioj\"] }, \"Symbols\": { \"v\": [\"Signoj\"] }, \"Travel & Places\": { \"v\": [\"Vojaĵoj & Lokoj\"] } } }, { \"l\": \"es\", \"t\": { \"Activities\": { \"v\": [\"Actividades\"] }, \"Animals & Nature\": { \"v\": [\"Animales y naturaleza\"] }, \"Custom\": { \"v\": [\"Personalizado\"] }, \"Dark skin tone\": { \"v\": [\"Tono de piel obscuro\"] }, \"Emoji picker\": { \"v\": [\"Selector de emojis\"] }, \"Flags\": { \"v\": [\"Banderas\"] }, \"Food & Drink\": { \"v\": [\"Comida y bebida\"] }, \"Frequently used\": { \"v\": [\"Usado con frecuencia\"] }, \"Light skin tone\": { \"v\": [\"Tono de piel claro\"] }, \"Medium dark skin tone\": { \"v\": [\"Tono de piel medio oscuro\"] }, \"Medium light skin tone\": { \"v\": [\"Tono de piel medio claro\"] }, \"Medium skin tone\": { \"v\": [\"Tono de piel medio\"] }, \"Neutral skin color\": { \"v\": [\"Color de piel neutral\"] }, \"Objects\": { \"v\": [\"Objetos\"] }, \"People & Body\": { \"v\": [\"Personas y Cuerpo\"] }, \"Pick an emoji\": { \"v\": [\"Elegir un emoji\"] }, \"Search emoji\": { \"v\": [\"Buscar emoji\"] }, \"Search results\": { \"v\": [\"Resultados de la búsqueda\"] }, \"Selected\": { \"v\": [\"Seleccionado\"] }, \"Skin tone\": { \"v\": [\"Tono de piel\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys y emoticonos\"] }, \"Symbols\": { \"v\": [\"Símbolos\"] }, \"Travel & Places\": { \"v\": [\"Viajes y lugares\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Activities\": { \"v\": [\"Actividades\"] }, \"Animals & Nature\": { \"v\": [\"Animales y Naturaleza\"] }, \"Custom\": { \"v\": [\"Personalizado\"] }, \"Dark skin tone\": { \"v\": [\"Tono de piel oscuro\"] }, \"Emoji picker\": { \"v\": [\"Selector de emojis\"] }, \"Flags\": { \"v\": [\"Marcas\"] }, \"Food & Drink\": { \"v\": [\"Comida y Bebida\"] }, \"Frequently used\": { \"v\": [\"Usados frecuentemente\"] }, \"Light skin tone\": { \"v\": [\"Tono de piel claro\"] }, \"Medium dark skin tone\": { \"v\": [\"Tono de piel medio oscuro\"] }, \"Medium light skin tone\": { \"v\": [\"Tono de piel medio claro\"] }, \"Medium skin tone\": { \"v\": [\"Tono de piel medio\"] }, \"Neutral skin color\": { \"v\": [\"Color de piel neutral\"] }, \"Objects\": { \"v\": [\"Objetos\"] }, \"People & Body\": { \"v\": [\"Personas y Cuerpo\"] }, \"Pick an emoji\": { \"v\": [\"Elija un emoji\"] }, \"Search emoji\": { \"v\": [\"Buscar emoji\"] }, \"Search results\": { \"v\": [\"Resultados de la búsqueda\"] }, \"Selected\": { \"v\": [\"Seleccionado\"] }, \"Skin tone\": { \"v\": [\"Tono de piel\"] }, \"Smileys & Emotion\": { \"v\": [\"Caritas y Emociones\"] }, \"Symbols\": { \"v\": [\"Símbolos\"] }, \"Travel & Places\": { \"v\": [\"Viajes y Lugares\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Activities\": { \"v\": [\"Actividades\"] }, \"Animals & Nature\": { \"v\": [\"Animales y Naturaleza\"] }, \"Custom\": { \"v\": [\"Personalizado\"] }, \"Flags\": { \"v\": [\"Marcas\"] }, \"Food & Drink\": { \"v\": [\"Comida y Bebida\"] }, \"Frequently used\": { \"v\": [\"Frecuentemente utilizado\"] }, \"Objects\": { \"v\": [\"Objetos\"] }, \"People & Body\": { \"v\": [\"Personas y Cuerpo\"] }, \"Pick an emoji\": { \"v\": [\"Seleccionar un emoji\"] }, \"Search emoji\": { \"v\": [\"Buscar emoji\"] }, \"Search results\": { \"v\": [\"Resultados de búsqueda\"] }, \"Smileys & Emotion\": { \"v\": [\"Caritas y Emociones\"] }, \"Symbols\": { \"v\": [\"Símbolos\"] }, \"Travel & Places\": { \"v\": [\"Viajes y Lugares\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Activities\": { \"v\": [\"Actividades\"] }, \"Animals & Nature\": { \"v\": [\"Animales y naturaleza\"] }, \"Custom\": { \"v\": [\"Personalizado\"] }, \"Dark skin tone\": { \"v\": [\"Tono de piel oscuro\"] }, \"Emoji picker\": { \"v\": [\"Selector de emojis\"] }, \"Flags\": { \"v\": [\"Banderas\"] }, \"Food & Drink\": { \"v\": [\"Comida y Bebida\"] }, \"Frequently used\": { \"v\": [\"Usado frecuentemente\"] }, \"Light skin tone\": { \"v\": [\"Tono de piel claro\"] }, \"Medium dark skin tone\": { \"v\": [\"Tono de piel medio oscuro\"] }, \"Medium light skin tone\": { \"v\": [\"Tono de piel medio claro\"] }, \"Medium skin tone\": { \"v\": [\"Tono de piel medio\"] }, \"Neutral skin color\": { \"v\": [\"Color de piel neutral\"] }, \"Objects\": { \"v\": [\"Objetos\"] }, \"People & Body\": { \"v\": [\"Personas y cuerpos\"] }, \"Pick an emoji\": { \"v\": [\"Seleccionar un emoji\"] }, \"Search emoji\": { \"v\": [\"Buscar emoji\"] }, \"Search results\": { \"v\": [\"Resultados de la búsqueda\"] }, \"Selected\": { \"v\": [\"Seleccionado\"] }, \"Skin tone\": { \"v\": [\"Tono de piel\"] }, \"Smileys & Emotion\": { \"v\": [\"Caritas y Emociones\"] }, \"Symbols\": { \"v\": [\"Símbolos\"] }, \"Travel & Places\": { \"v\": [\"Viajes y lugares\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Activities\": { \"v\": [\"Tegevused\"] }, \"Animals & Nature\": { \"v\": [\"Loomad ja loodus\"] }, \"Custom\": { \"v\": [\"Kohanda\"] }, \"Dark skin tone\": { \"v\": [\"Kesta tume toon\"] }, \"Emoji picker\": { \"v\": [\"Emojide valija\"] }, \"Flags\": { \"v\": [\"Lipud\"] }, \"Food & Drink\": { \"v\": [\"Söök ja jook\"] }, \"Frequently used\": { \"v\": [\"Sageli kasutatud\"] }, \"Light skin tone\": { \"v\": [\"Kesta hele toon\"] }, \"Medium dark skin tone\": { \"v\": [\"Kesta keskmiselt tume toon\"] }, \"Medium light skin tone\": { \"v\": [\"Kesta keskmiselt hele toon\"] }, \"Medium skin tone\": { \"v\": [\"Kesta keskmine toon\"] }, \"Neutral skin color\": { \"v\": [\"Kesta neutraalne toon\"] }, \"Objects\": { \"v\": [\"Objektid\"] }, \"People & Body\": { \"v\": [\"Inimesed ja keha\"] }, \"Pick an emoji\": { \"v\": [\"Vali emoji\"] }, \"Search emoji\": { \"v\": [\"Otsi emojit\"] }, \"Search results\": { \"v\": [\"Otsi tulemustest\"] }, \"Selected\": { \"v\": [\"Valitud\"] }, \"Skin tone\": { \"v\": [\"Kesta toon\"] }, \"Smileys & Emotion\": { \"v\": [\"Smailid ja emotsioonid\"] }, \"Symbols\": { \"v\": [\"Sümbolid\"] }, \"Travel & Places\": { \"v\": [\"Reisimine ja kohad\"] } } }, { \"l\": \"eu\", \"t\": { \"Activities\": { \"v\": [\"Jarduerak\"] }, \"Animals & Nature\": { \"v\": [\"Animaliak eta Natura\"] }, \"Custom\": { \"v\": [\"Pertsonalizatua\"] }, \"Flags\": { \"v\": [\"Banderak\"] }, \"Food & Drink\": { \"v\": [\"Janaria eta edariak\"] }, \"Frequently used\": { \"v\": [\"Askotan erabilia\"] }, \"Objects\": { \"v\": [\"Objektuak\"] }, \"People & Body\": { \"v\": [\"Jendea eta gorputza\"] }, \"Pick an emoji\": { \"v\": [\"Hautatu emoji bat\"] }, \"Search emoji\": { \"v\": [\"Bilatu emojiak\"] }, \"Search results\": { \"v\": [\"Bilaketa emaitzak\"] }, \"Selected\": { \"v\": [\"Hautatuta\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileyak eta emozioa\"] }, \"Symbols\": { \"v\": [\"Sinboloak\"] }, \"Travel & Places\": { \"v\": [\"Bidaiak eta lekuak\"] } } }, { \"l\": \"fa\", \"t\": { \"Activities\": { \"v\": [\"فعالیت‌ها\"] }, \"Animals & Nature\": { \"v\": [\"حیوانات و طبیعت\"] }, \"Custom\": { \"v\": [\"سفارشی\"] }, \"Dark skin tone\": { \"v\": [\"رنگ پوسته تیره\"] }, \"Emoji picker\": { \"v\": [\"انتخاب‌گر شکلک\"] }, \"Flags\": { \"v\": [\"پرچم‌ها\"] }, \"Food & Drink\": { \"v\": [\"غذا و نوشیدنی\"] }, \"Frequently used\": { \"v\": [\"پرکاربرد\"] }, \"Light skin tone\": { \"v\": [\"رنگ پوسته روشن\"] }, \"Medium dark skin tone\": { \"v\": [\"رنگ پوسته تیره متوسط\"] }, \"Medium light skin tone\": { \"v\": [\"رنگ پوسته روشن متوسط\"] }, \"Medium skin tone\": { \"v\": [\"رنگ پوسته متوسط\"] }, \"Neutral skin color\": { \"v\": [\"رنگ پوسته خنثی\"] }, \"Objects\": { \"v\": [\"اشیاء\"] }, \"People & Body\": { \"v\": [\"مردم و بدن\"] }, \"Pick an emoji\": { \"v\": [\"انتخاب شکلک\"] }, \"Search emoji\": { \"v\": [\"جستجوی شکلک\"] }, \"Search results\": { \"v\": [\"نتایج جستجو\"] }, \"Selected\": { \"v\": [\"انتخاب شده\"] }, \"Skin tone\": { \"v\": [\"رنگ پوسته\"] }, \"Smileys & Emotion\": { \"v\": [\"شکلک‌ها و احساسات\"] }, \"Symbols\": { \"v\": [\"نمادها\"] }, \"Travel & Places\": { \"v\": [\"سفر و مکان‌ها\"] } } }, { \"l\": \"fi\", \"t\": { \"Activities\": { \"v\": [\"Aktiviteetit\"] }, \"Animals & Nature\": { \"v\": [\"Eläimet & luonto\"] }, \"Custom\": { \"v\": [\"Mukautettu\"] }, \"Dark skin tone\": { \"v\": [\"Tumma ihonväri\"] }, \"Emoji picker\": { \"v\": [\"Emojivalitsin\"] }, \"Flags\": { \"v\": [\"Liput\"] }, \"Food & Drink\": { \"v\": [\"Ruoka & juoma\"] }, \"Frequently used\": { \"v\": [\"Usein käytetyt\"] }, \"Light skin tone\": { \"v\": [\"Vaalea ihonväri\"] }, \"Medium dark skin tone\": { \"v\": [\"Keskitumma ihonväri\"] }, \"Medium light skin tone\": { \"v\": [\"Keskivaalea ihonväri\"] }, \"Medium skin tone\": { \"v\": [\"Keskimääräinen ihonväri\"] }, \"Neutral skin color\": { \"v\": [\"Neutraali ihonväri\"] }, \"Objects\": { \"v\": [\"Esineet & asiat\"] }, \"People & Body\": { \"v\": [\"Ihmiset & keho\"] }, \"Pick an emoji\": { \"v\": [\"Valitse emoji\"] }, \"Search emoji\": { \"v\": [\"Etsi emojia\"] }, \"Search results\": { \"v\": [\"Hakutulokset\"] }, \"Selected\": { \"v\": [\"Valittu\"] }, \"Skin tone\": { \"v\": [\"Ihonväri\"] }, \"Smileys & Emotion\": { \"v\": [\"Hymiöt & tunteet\"] }, \"Symbols\": { \"v\": [\"Symbolit\"] }, \"Travel & Places\": { \"v\": [\"Matkustus & kohteet\"] } } }, { \"l\": \"fr\", \"t\": { \"Activities\": { \"v\": [\"Activités\"] }, \"Animals & Nature\": { \"v\": [\"Animaux & Nature\"] }, \"Custom\": { \"v\": [\"Personnalisé\"] }, \"Dark skin tone\": { \"v\": [\"Teint de peau foncé\"] }, \"Emoji picker\": { \"v\": [\"Sélecteur d'émojis\"] }, \"Flags\": { \"v\": [\"Drapeaux\"] }, \"Food & Drink\": { \"v\": [\"Nourriture & Boissons\"] }, \"Frequently used\": { \"v\": [\"Utilisés fréquemment\"] }, \"Light skin tone\": { \"v\": [\"Teint de peau clair\"] }, \"Medium dark skin tone\": { \"v\": [\"Teint de peau moyennement foncé\"] }, \"Medium light skin tone\": { \"v\": [\"Teint de peau moyennement clair\"] }, \"Medium skin tone\": { \"v\": [\"Teint de peau moyen\"] }, \"Neutral skin color\": { \"v\": [\"Teint de peau neutre\"] }, \"Objects\": { \"v\": [\"Objets\"] }, \"People & Body\": { \"v\": [\"Personnes & Corps\"] }, \"Pick an emoji\": { \"v\": [\"Choisissez un émoji\"] }, \"Search emoji\": { \"v\": [\"Rechercher un emoji\"] }, \"Search results\": { \"v\": [\"Résultats de recherche\"] }, \"Selected\": { \"v\": [\"sélectionné\"] }, \"Skin tone\": { \"v\": [\"Teint de peau\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Émotions\"] }, \"Symbols\": { \"v\": [\"Symboles\"] }, \"Travel & Places\": { \"v\": [\"Voyage & Lieux\"] } } }, { \"l\": \"ga\", \"t\": { \"Activities\": { \"v\": [\"Gníomhaíochtaí\"] }, \"Animals & Nature\": { \"v\": [\"Ainmhithe & Dúlra\"] }, \"Custom\": { \"v\": [\"Saincheaptha\"] }, \"Dark skin tone\": { \"v\": [\"Ton craiceann dorcha\"] }, \"Emoji picker\": { \"v\": [\"Roghnóir Emoji\"] }, \"Flags\": { \"v\": [\"Bratacha\"] }, \"Food & Drink\": { \"v\": [\"Bia & Deoch\"] }, \"Frequently used\": { \"v\": [\"Úsáidtear go minic\"] }, \"Light skin tone\": { \"v\": [\"Ton craiceann éadrom\"] }, \"Medium dark skin tone\": { \"v\": [\"Ton craiceann meánach dorcha\"] }, \"Medium light skin tone\": { \"v\": [\"Ton craiceann meánach éadrom\"] }, \"Medium skin tone\": { \"v\": [\"Ton craiceann meánach\"] }, \"Neutral skin color\": { \"v\": [\"Dath craiceann neodrach\"] }, \"Objects\": { \"v\": [\"Réada\"] }, \"People & Body\": { \"v\": [\"Daoine & Corp\"] }, \"Pick an emoji\": { \"v\": [\"Roghnaigh emoji\"] }, \"Search emoji\": { \"v\": [\"Cuardaigh emoji\"] }, \"Search results\": { \"v\": [\"Torthaí cuardaigh\"] }, \"Selected\": { \"v\": [\"Roghnaithe\"] }, \"Skin tone\": { \"v\": [\"Ton craicinn\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Mothúchán\"] }, \"Symbols\": { \"v\": [\"Siombailí\"] }, \"Travel & Places\": { \"v\": [\"Taisteal & Áiteanna\"] } } }, { \"l\": \"gl\", \"t\": { \"Activities\": { \"v\": [\"Actividades\"] }, \"Animals & Nature\": { \"v\": [\"Animais e natureza\"] }, \"Custom\": { \"v\": [\"Personalizado\"] }, \"Dark skin tone\": { \"v\": [\"Ton de pel escuro\"] }, \"Emoji picker\": { \"v\": [\"Selector de «emojis»\"] }, \"Flags\": { \"v\": [\"Bandeiras\"] }, \"Food & Drink\": { \"v\": [\"Comida e bebida\"] }, \"Frequently used\": { \"v\": [\"Usado con frecuencia\"] }, \"Light skin tone\": { \"v\": [\"Ton de pel claro\"] }, \"Medium dark skin tone\": { \"v\": [\"Ton de pel medio escuro\"] }, \"Medium light skin tone\": { \"v\": [\"Ton de pel medio claro\"] }, \"Medium skin tone\": { \"v\": [\"Ton de pel medio\"] }, \"Neutral skin color\": { \"v\": [\"Cor de pel neutra\"] }, \"Objects\": { \"v\": [\"Obxectos\"] }, \"People & Body\": { \"v\": [\"Persoas e corpo\"] }, \"Pick an emoji\": { \"v\": [\"Escolla un «emoji»\"] }, \"Search emoji\": { \"v\": [\"Buscar «emoji»\"] }, \"Search results\": { \"v\": [\"Resultados da busca\"] }, \"Selected\": { \"v\": [\"Seleccionado\"] }, \"Skin tone\": { \"v\": [\"Ton de pel\"] }, \"Smileys & Emotion\": { \"v\": [\"Sorrisos e emocións\"] }, \"Symbols\": { \"v\": [\"Símbolos\"] }, \"Travel & Places\": { \"v\": [\"Viaxes e lugares\"] } } }, { \"l\": \"he\", \"t\": { \"Activities\": { \"v\": [\"פעילויות\"] }, \"Animals & Nature\": { \"v\": [\"חיות וטבע\"] }, \"Custom\": { \"v\": [\"בהתאמה אישית\"] }, \"Flags\": { \"v\": [\"דגלים\"] }, \"Food & Drink\": { \"v\": [\"מזון ומשקאות\"] }, \"Frequently used\": { \"v\": [\"בשימוש תדיר\"] }, \"Objects\": { \"v\": [\"חפצים\"] }, \"People & Body\": { \"v\": [\"אנשים וגוף\"] }, \"Pick an emoji\": { \"v\": [\"נא לבחור אמוג׳י\"] }, \"Search emoji\": { \"v\": [\"חיפוש אמוג׳י\"] }, \"Search results\": { \"v\": [\"תוצאות חיפוש\"] }, \"Smileys & Emotion\": { \"v\": [\"חייכנים ורגשונים\"] }, \"Symbols\": { \"v\": [\"סמלים\"] }, \"Travel & Places\": { \"v\": [\"טיולים ומקומות\"] } } }, { \"l\": \"hu\", \"t\": { \"Activities\": { \"v\": [\"Tevékenységek\"] }, \"Animals & Nature\": { \"v\": [\"Állatok és természet\"] }, \"Custom\": { \"v\": [\"Egyéni\"] }, \"Flags\": { \"v\": [\"Zászlók\"] }, \"Food & Drink\": { \"v\": [\"Étel és ital\"] }, \"Frequently used\": { \"v\": [\"Gyakran használt\"] }, \"Objects\": { \"v\": [\"Tárgyak\"] }, \"People & Body\": { \"v\": [\"Emberek és test\"] }, \"Pick an emoji\": { \"v\": [\"Válasszon egy emodzsit\"] }, \"Search results\": { \"v\": [\"Találatok\"] }, \"Smileys & Emotion\": { \"v\": [\"Mosolyok és érzelmek\"] }, \"Symbols\": { \"v\": [\"Szimbólumok\"] }, \"Travel & Places\": { \"v\": [\"Utazás és helyek\"] } } }, { \"l\": \"id\", \"t\": { \"Activities\": { \"v\": [\"Aktivitas\"] }, \"Animals & Nature\": { \"v\": [\"Satwa dan Alam\"] }, \"Custom\": { \"v\": [\"Khusus\"] }, \"Flags\": { \"v\": [\"Tanda\"] }, \"Food & Drink\": { \"v\": [\"Makanan dan Minuman\"] }, \"Frequently used\": { \"v\": [\"Sering digunakan\"] }, \"Objects\": { \"v\": [\"Objek\"] }, \"People & Body\": { \"v\": [\"Orang & Badan\"] }, \"Pick an emoji\": { \"v\": [\"Pilih emoji\"] }, \"Search emoji\": { \"v\": [\"Cari emoji\"] }, \"Search results\": { \"v\": [\"Hasil pencarian\"] }, \"Selected\": { \"v\": [\"Dipilih\"] }, \"Smileys & Emotion\": { \"v\": [\"Senyuman & Perasaan\"] }, \"Symbols\": { \"v\": [\"Simbol\"] }, \"Travel & Places\": { \"v\": [\"Perjalanan & Tempat\"] } } }, { \"l\": \"is\", \"t\": { \"Activities\": { \"v\": [\"Aðgerðir\"] }, \"Animals & Nature\": { \"v\": [\"Dýr og náttúra\"] }, \"Custom\": { \"v\": [\"Sérsniðið\"] }, \"Dark skin tone\": { \"v\": [\"Dökkur húðlitur\"] }, \"Emoji picker\": { \"v\": [\"Emoji-táknmyndaval\"] }, \"Flags\": { \"v\": [\"Flögg\"] }, \"Food & Drink\": { \"v\": [\"Matur og drykkur\"] }, \"Frequently used\": { \"v\": [\"Oftast notað\"] }, \"Light skin tone\": { \"v\": [\"Ljós húðlitur\"] }, \"Medium dark skin tone\": { \"v\": [\"Meðaldökkur húðlitur\"] }, \"Medium light skin tone\": { \"v\": [\"Meðalljós húðlitur\"] }, \"Medium skin tone\": { \"v\": [\"Meðaltónn húðar\"] }, \"Neutral skin color\": { \"v\": [\"Hlutlaus húðlitur\"] }, \"Objects\": { \"v\": [\"Hlutir\"] }, \"People & Body\": { \"v\": [\"Fólk og líkami\"] }, \"Pick an emoji\": { \"v\": [\"Veldu tjáningartákn\"] }, \"Search emoji\": { \"v\": [\"Leita að tjáningartákni\"] }, \"Search results\": { \"v\": [\"Leitarniðurstöður\"] }, \"Selected\": { \"v\": [\"Valið\"] }, \"Skin tone\": { \"v\": [\"Húðlitur\"] }, \"Smileys & Emotion\": { \"v\": [\"Broskallar og tilfinningar\"] }, \"Symbols\": { \"v\": [\"Tákn\"] }, \"Travel & Places\": { \"v\": [\"Staðir og ferðalög\"] } } }, { \"l\": \"it\", \"t\": { \"Activities\": { \"v\": [\"Attività\"] }, \"Animals & Nature\": { \"v\": [\"Animali e natura\"] }, \"Custom\": { \"v\": [\"Personalizzato\"] }, \"Flags\": { \"v\": [\"Bandiere\"] }, \"Food & Drink\": { \"v\": [\"Cibo e bevande\"] }, \"Frequently used\": { \"v\": [\"Usati di frequente\"] }, \"Objects\": { \"v\": [\"Oggetti\"] }, \"People & Body\": { \"v\": [\"Persone e corpo\"] }, \"Pick an emoji\": { \"v\": [\"Scegli un emoji\"] }, \"Search emoji\": { \"v\": [\"Ricerca emoji\"] }, \"Search results\": { \"v\": [\"Risultati di ricerca\"] }, \"Selected\": { \"v\": [\"Selezionato\"] }, \"Smileys & Emotion\": { \"v\": [\"Faccine ed emozioni\"] }, \"Symbols\": { \"v\": [\"Simboli\"] }, \"Travel & Places\": { \"v\": [\"Viaggi e luoghi\"] } } }, { \"l\": \"ja\", \"t\": { \"Activities\": { \"v\": [\"アクティビティ\"] }, \"Animals & Nature\": { \"v\": [\"動物と自然\"] }, \"Custom\": { \"v\": [\"カスタム\"] }, \"Dark skin tone\": { \"v\": [\"暗い肌のトーン\"] }, \"Emoji picker\": { \"v\": [\"絵文字ピッカー\"] }, \"Flags\": { \"v\": [\"国旗\"] }, \"Food & Drink\": { \"v\": [\"食べ物と飲み物\"] }, \"Frequently used\": { \"v\": [\"よく使うもの\"] }, \"Light skin tone\": { \"v\": [\"明るい肌のトーン\"] }, \"Medium dark skin tone\": { \"v\": [\"やや暗い肌のトーン\"] }, \"Medium light skin tone\": { \"v\": [\"やや明るい肌のトーン\"] }, \"Medium skin tone\": { \"v\": [\"中間の肌のトーン\"] }, \"Neutral skin color\": { \"v\": [\"ニュートラルな肌の色\"] }, \"Objects\": { \"v\": [\"物\"] }, \"People & Body\": { \"v\": [\"様々な人と体の部位\"] }, \"Pick an emoji\": { \"v\": [\"絵文字を選択\"] }, \"Search emoji\": { \"v\": [\"絵文字を検索\"] }, \"Search results\": { \"v\": [\"検索結果\"] }, \"Selected\": { \"v\": [\"選択済み\"] }, \"Skin tone\": { \"v\": [\"肌のトーン\"] }, \"Smileys & Emotion\": { \"v\": [\"感情表現\"] }, \"Symbols\": { \"v\": [\"記号\"] }, \"Travel & Places\": { \"v\": [\"旅行と場所\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Activities\": { \"v\": [\"アクティビティ\"] }, \"Animals & Nature\": { \"v\": [\"動物と自然\"] }, \"Custom\": { \"v\": [\"カスタム\"] }, \"Dark skin tone\": { \"v\": [\"暗い肌のトーン\"] }, \"Emoji picker\": { \"v\": [\"絵文字ピッカー\"] }, \"Flags\": { \"v\": [\"国旗\"] }, \"Food & Drink\": { \"v\": [\"食べ物と飲み物\"] }, \"Frequently used\": { \"v\": [\"よく使うもの\"] }, \"Light skin tone\": { \"v\": [\"明るい肌のトーン\"] }, \"Medium dark skin tone\": { \"v\": [\"やや暗い肌のトーン\"] }, \"Medium light skin tone\": { \"v\": [\"やや明るい肌のトーン\"] }, \"Medium skin tone\": { \"v\": [\"中間の肌のトーン\"] }, \"Neutral skin color\": { \"v\": [\"ニュートラルな肌の色\"] }, \"Objects\": { \"v\": [\"物\"] }, \"People & Body\": { \"v\": [\"様々な人と体の部位\"] }, \"Pick an emoji\": { \"v\": [\"絵文字を選択\"] }, \"Search emoji\": { \"v\": [\"絵文字を検索\"] }, \"Search results\": { \"v\": [\"検索結果\"] }, \"Selected\": { \"v\": [\"選択済み\"] }, \"Skin tone\": { \"v\": [\"肌のトーン\"] }, \"Smileys & Emotion\": { \"v\": [\"感情表現\"] }, \"Symbols\": { \"v\": [\"記号\"] }, \"Travel & Places\": { \"v\": [\"旅行と場所\"] } } }, { \"l\": \"ko\", \"t\": { \"Activities\": { \"v\": [\"활동\"] }, \"Animals & Nature\": { \"v\": [\"동물 & 자연\"] }, \"Custom\": { \"v\": [\"맞춤 설정\"] }, \"Dark skin tone\": { \"v\": [\"어두운 피부 톤\"] }, \"Emoji picker\": { \"v\": [\"이모지 선택기\"] }, \"Flags\": { \"v\": [\"깃발\"] }, \"Food & Drink\": { \"v\": [\"음식 & 음료\"] }, \"Frequently used\": { \"v\": [\"자주 쓰임\"] }, \"Light skin tone\": { \"v\": [\"밝은 피부 톤\"] }, \"Medium dark skin tone\": { \"v\": [\"약간 어두운 피부 톤\"] }, \"Medium light skin tone\": { \"v\": [\"약간 밝은 피부 톤\"] }, \"Medium skin tone\": { \"v\": [\"중간 피부 톤\"] }, \"Neutral skin color\": { \"v\": [\"중성적 피부 톤\"] }, \"Objects\": { \"v\": [\"물체\"] }, \"People & Body\": { \"v\": [\"사람 & 신체\"] }, \"Pick an emoji\": { \"v\": [\"이모지 선택\"] }, \"Search emoji\": { \"v\": [\"이모지 검색\"] }, \"Search results\": { \"v\": [\"검색 결과\"] }, \"Selected\": { \"v\": [\"선택됨\"] }, \"Skin tone\": { \"v\": [\"피부 톤\"] }, \"Smileys & Emotion\": { \"v\": [\"스마일리 & 이모티콘\"] }, \"Symbols\": { \"v\": [\"기호\"] }, \"Travel & Places\": { \"v\": [\"여행 & 장소\"] } } }, { \"l\": \"lo\", \"t\": { \"Activities\": { \"v\": [\"ກິດຈະກຳ\"] }, \"Animals & Nature\": { \"v\": [\"ສັດ ແລະ ທຳມະຊາດ\"] }, \"Custom\": { \"v\": [\"ກຳນົດເອງ\"] }, \"Dark skin tone\": { \"v\": [\"ໂຕນສີຜິວເຂັ້ມ\"] }, \"Emoji picker\": { \"v\": [\"ໂຕເລືອກອີໂມຈິ\"] }, \"Flags\": { \"v\": [\"ທຸງ\"] }, \"Food & Drink\": { \"v\": [\"ອາຫານ ແລະ ເຄື່ອງດື່ມ\"] }, \"Frequently used\": { \"v\": [\"ໃຊ້ງານເລື້ອຍໆ\"] }, \"Light skin tone\": { \"v\": [\"ໂຕນສີຜິວອ່ອນ\"] }, \"Medium dark skin tone\": { \"v\": [\"ໂຕນສີຜິວເຂັ້ມປານກາງ\"] }, \"Medium light skin tone\": { \"v\": [\"ໂຕນສີຜິວອ່ອນປານກາງ\"] }, \"Medium skin tone\": { \"v\": [\"ໂຕນສີຜິວປານກາງ\"] }, \"Neutral skin color\": { \"v\": [\"ສີຜິວເປັນກາງ\"] }, \"Objects\": { \"v\": [\"ວັດຖຸ\"] }, \"People & Body\": { \"v\": [\"ຄົນ ແລະ ຮ່າງກາຍ\"] }, \"Pick an emoji\": { \"v\": [\"ເລືອກອີໂມຈິ\"] }, \"Search emoji\": { \"v\": [\"ຄົ້ນຫາອີໂມຈິ\"] }, \"Search results\": { \"v\": [\"ຜົນການຄົ້ນຫາ\"] }, \"Selected\": { \"v\": [\"ເລືອກແລ້ວ\"] }, \"Skin tone\": { \"v\": [\"ໂຕນສີຜິວ\"] }, \"Smileys & Emotion\": { \"v\": [\"ໜ້າຍິ້ມ ແລະ ອາລົມ\"] }, \"Symbols\": { \"v\": [\"ສັນຍາລັກ\"] }, \"Travel & Places\": { \"v\": [\"ການເດີນທາງ ແລະ ສະຖານທີ່\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Activities\": { \"v\": [\"Veiklos\"] }, \"Animals & Nature\": { \"v\": [\"Gyvūnai ir gamta\"] }, \"Custom\": { \"v\": [\"Tinkinti\"] }, \"Flags\": { \"v\": [\"Vėliavos\"] }, \"Food & Drink\": { \"v\": [\"Maistas ir gėrimai\"] }, \"Frequently used\": { \"v\": [\"Dažniausiai naudoti\"] }, \"Objects\": { \"v\": [\"Objektai\"] }, \"People & Body\": { \"v\": [\"Žmonės ir kūnas\"] }, \"Pick an emoji\": { \"v\": [\"Pasirinkti jaustuką\"] }, \"Search results\": { \"v\": [\"Paieškos rezultatai\"] }, \"Smileys & Emotion\": { \"v\": [\"Šypsenos ir emocijos\"] }, \"Symbols\": { \"v\": [\"Simboliai\"] }, \"Travel & Places\": { \"v\": [\"Kelionės ir vietos\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Activities\": { \"v\": [\"Активности\"] }, \"Animals & Nature\": { \"v\": [\"Животни & Природа\"] }, \"Custom\": { \"v\": [\"Прилагодени\"] }, \"Dark skin tone\": { \"v\": [\"Темна боја на кожа\"] }, \"Emoji picker\": { \"v\": [\"Избор на emoji\"] }, \"Flags\": { \"v\": [\"Знамиња\"] }, \"Food & Drink\": { \"v\": [\"Храна & Пијалоци\"] }, \"Frequently used\": { \"v\": [\"Најчесто користени\"] }, \"Light skin tone\": { \"v\": [\"Светла кожа\"] }, \"Medium dark skin tone\": { \"v\": [\"Средно темна кожа\"] }, \"Medium light skin tone\": { \"v\": [\"Средно светла кожа\"] }, \"Medium skin tone\": { \"v\": [\"Средна кожа\"] }, \"Neutral skin color\": { \"v\": [\"Неутрална боја на кожа\"] }, \"Objects\": { \"v\": [\"Објекти\"] }, \"People & Body\": { \"v\": [\"Луѓе & Тело\"] }, \"Pick an emoji\": { \"v\": [\"Избери емотикон\"] }, \"Search emoji\": { \"v\": [\"Барај emoji\"] }, \"Search results\": { \"v\": [\"Резултати од барувањето\"] }, \"Selected\": { \"v\": [\"Избрано\"] }, \"Skin tone\": { \"v\": [\"Боја на кожа\"] }, \"Smileys & Emotion\": { \"v\": [\"Смешковци & Емотикони\"] }, \"Symbols\": { \"v\": [\"Симболи\"] }, \"Travel & Places\": { \"v\": [\"Патувања & Места\"] } } }, { \"l\": \"my\", \"t\": { \"Activities\": { \"v\": [\"ပြုလုပ်ဆောင်တာများ\"] }, \"Animals & Nature\": { \"v\": [\"တိရစ္ဆာန်များနှင့် သဘာဝ\"] }, \"Custom\": { \"v\": [\"အလိုကျချိန်ညှိမှု\"] }, \"Flags\": { \"v\": [\"အလံများ\"] }, \"Food & Drink\": { \"v\": [\"အစားအသောက်\"] }, \"Frequently used\": { \"v\": [\"မကြာခဏအသုံးပြုသော\"] }, \"Objects\": { \"v\": [\"အရာဝတ္ထုများ\"] }, \"People & Body\": { \"v\": [\"လူပုဂ္ဂိုလ်များနှင့် ခန္ဓာကိုယ်\"] }, \"Pick an emoji\": { \"v\": [\"အီမိုဂျီရွေးရန်\"] }, \"Search results\": { \"v\": [\"ရှာဖွေမှု ရလဒ်များ\"] }, \"Smileys & Emotion\": { \"v\": [\"စမိုင်လီများနှင့် အီမိုရှင်း\"] }, \"Symbols\": { \"v\": [\"သင်္ကေတများ\"] }, \"Travel & Places\": { \"v\": [\"ခရီးသွားလာခြင်းနှင့် နေရာများ\"] } } }, { \"l\": \"nb\", \"t\": { \"Activities\": { \"v\": [\"Aktiviteter\"] }, \"Animals & Nature\": { \"v\": [\"Dyr og natur\"] }, \"Custom\": { \"v\": [\"Tilpasset\"] }, \"Dark skin tone\": { \"v\": [\"Mørk hudtone\"] }, \"Emoji picker\": { \"v\": [\"Emoji-velger\"] }, \"Flags\": { \"v\": [\"Flagg\"] }, \"Food & Drink\": { \"v\": [\"Mat og drikke\"] }, \"Frequently used\": { \"v\": [\"Ofte brukt\"] }, \"Light skin tone\": { \"v\": [\"Lys hudtone\"] }, \"Medium dark skin tone\": { \"v\": [\"Middels mørk hudtone\"] }, \"Medium light skin tone\": { \"v\": [\"Middels lys hudtone\"] }, \"Medium skin tone\": { \"v\": [\"Middels hudtone\"] }, \"Neutral skin color\": { \"v\": [\"Nøytral hudfarge\"] }, \"Objects\": { \"v\": [\"Objekter\"] }, \"People & Body\": { \"v\": [\"Mennesker og kropp\"] }, \"Pick an emoji\": { \"v\": [\"Velg en emoji\"] }, \"Search emoji\": { \"v\": [\"Søk emoji\"] }, \"Search results\": { \"v\": [\"Søkeresultater\"] }, \"Selected\": { \"v\": [\"Valgt\"] }, \"Skin tone\": { \"v\": [\"Hudtone\"] }, \"Smileys & Emotion\": { \"v\": [\"Smilefjes og følelser\"] }, \"Symbols\": { \"v\": [\"Symboler\"] }, \"Travel & Places\": { \"v\": [\"Reise og steder\"] } } }, { \"l\": \"nl\", \"t\": { \"Activities\": { \"v\": [\"Activiteiten\"] }, \"Animals & Nature\": { \"v\": [\"Dieren & Natuur\"] }, \"Custom\": { \"v\": [\"Aangepast\"] }, \"Dark skin tone\": { \"v\": [\"Donkere huidskleur\"] }, \"Emoji picker\": { \"v\": [\"Emoji-kiezer\"] }, \"Flags\": { \"v\": [\"Vlaggen\"] }, \"Food & Drink\": { \"v\": [\"Eten & Drinken\"] }, \"Frequently used\": { \"v\": [\"Vaak gebruikt\"] }, \"Light skin tone\": { \"v\": [\"Lichte huidskleur\"] }, \"Medium dark skin tone\": { \"v\": [\"Gemiddeld donkere huidskleur\"] }, \"Medium light skin tone\": { \"v\": [\"Gemiddeld lichte huidskleur\"] }, \"Medium skin tone\": { \"v\": [\"Gemiddelde huidskleur\"] }, \"Neutral skin color\": { \"v\": [\"Neutrale huidskleur\"] }, \"Objects\": { \"v\": [\"Objecten\"] }, \"People & Body\": { \"v\": [\"Mensen & Lichaam\"] }, \"Pick an emoji\": { \"v\": [\"Kies een emoji\"] }, \"Search emoji\": { \"v\": [\"Emoji zoeken\"] }, \"Search results\": { \"v\": [\"Zoekresultaten\"] }, \"Selected\": { \"v\": [\"Geselecteerd\"] }, \"Skin tone\": { \"v\": [\"Huidskleur\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Emotie\"] }, \"Symbols\": { \"v\": [\"Symbolen\"] }, \"Travel & Places\": { \"v\": [\"Reizen & Plaatsen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Activities\": { \"v\": [\"Aktywność\"] }, \"Animals & Nature\": { \"v\": [\"Zwierzęta i natura\"] }, \"Custom\": { \"v\": [\"Zwyczajne\"] }, \"Dark skin tone\": { \"v\": [\"Ciemna tonacja\"] }, \"Emoji picker\": { \"v\": [\"Wybierz Emoji\"] }, \"Flags\": { \"v\": [\"Flagi\"] }, \"Food & Drink\": { \"v\": [\"Jedzenie i picie\"] }, \"Frequently used\": { \"v\": [\"Często używane\"] }, \"Light skin tone\": { \"v\": [\"Jasny odcień skóry\"] }, \"Medium dark skin tone\": { \"v\": [\"Średnio ciemny odcień skóry\"] }, \"Medium light skin tone\": { \"v\": [\"Średnio jasny odcień skóry\"] }, \"Medium skin tone\": { \"v\": [\"Średni odcień skóry\"] }, \"Neutral skin color\": { \"v\": [\"Neutralny kolor skróry\"] }, \"Objects\": { \"v\": [\"Obiekty\"] }, \"People & Body\": { \"v\": [\"Ludzie i ciało\"] }, \"Pick an emoji\": { \"v\": [\"Wybierz emoji\"] }, \"Search emoji\": { \"v\": [\"Szukaj emoji\"] }, \"Search results\": { \"v\": [\"Wyniki wyszukiwania\"] }, \"Selected\": { \"v\": [\"Wybrane\"] }, \"Skin tone\": { \"v\": [\"Kolor skóry\"] }, \"Smileys & Emotion\": { \"v\": [\"Buźki i emotikony\"] }, \"Symbols\": { \"v\": [\"Symbole\"] }, \"Travel & Places\": { \"v\": [\"Podróże i miejsca\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Activities\": { \"v\": [\"Atividades\"] }, \"Animals & Nature\": { \"v\": [\"Animais & Natureza\"] }, \"Custom\": { \"v\": [\"Personalizados\"] }, \"Dark skin tone\": { \"v\": [\"Tom de pele escuro\"] }, \"Emoji picker\": { \"v\": [\"Seletor de emoji\"] }, \"Flags\": { \"v\": [\"Bandeiras\"] }, \"Food & Drink\": { \"v\": [\"Comida & Bebida\"] }, \"Frequently used\": { \"v\": [\"Mais usados\"] }, \"Light skin tone\": { \"v\": [\"Tom de pele claro\"] }, \"Medium dark skin tone\": { \"v\": [\"Tom de pele meio escuro\"] }, \"Medium light skin tone\": { \"v\": [\"Tom de pele meio claro\"] }, \"Medium skin tone\": { \"v\": [\"Tom de pele médio\"] }, \"Neutral skin color\": { \"v\": [\"Tom de pele neutro\"] }, \"Objects\": { \"v\": [\"Objetos\"] }, \"People & Body\": { \"v\": [\"Pessoas & Corpo\"] }, \"Pick an emoji\": { \"v\": [\"Escolha um emoji\"] }, \"Search emoji\": { \"v\": [\"Pesquisar emoji\"] }, \"Search results\": { \"v\": [\"Resultados da pesquisa\"] }, \"Selected\": { \"v\": [\"Selecionado\"] }, \"Skin tone\": { \"v\": [\"Tom de pele\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Emoções\"] }, \"Symbols\": { \"v\": [\"Símbolos\"] }, \"Travel & Places\": { \"v\": [\"Viagem & Lugares\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Activities\": { \"v\": [\"Atividades\"] }, \"Animals & Nature\": { \"v\": [\"Animais e Natureza\"] }, \"Custom\": { \"v\": [\"Personalizado\"] }, \"Dark skin tone\": { \"v\": [\"Tom de pele escuro\"] }, \"Emoji picker\": { \"v\": [\"seletor de emoji\"] }, \"Flags\": { \"v\": [\"Bandeiras\"] }, \"Food & Drink\": { \"v\": [\"Comida e Bebida\"] }, \"Frequently used\": { \"v\": [\"Mais utilizados\"] }, \"Light skin tone\": { \"v\": [\"Tom de pele claro\"] }, \"Medium dark skin tone\": { \"v\": [\"Tom de pele escuro médio\"] }, \"Medium light skin tone\": { \"v\": [\"Tom de pele claro médio\"] }, \"Medium skin tone\": { \"v\": [\"Tom de pele médio\"] }, \"Neutral skin color\": { \"v\": [\"Cor de pele neutra\"] }, \"Objects\": { \"v\": [\"Objetos\"] }, \"People & Body\": { \"v\": [\"Pessoas e Corpo\"] }, \"Pick an emoji\": { \"v\": [\"Escolha um emoji\"] }, \"Search emoji\": { \"v\": [\"Pesquisar emoji\"] }, \"Search results\": { \"v\": [\"Resultados da pesquisa\"] }, \"Selected\": { \"v\": [\"Selecionado\"] }, \"Skin tone\": { \"v\": [\"Tom de pele\"] }, \"Smileys & Emotion\": { \"v\": [\"Sorrisos e Emoções\"] }, \"Symbols\": { \"v\": [\"Símbolos\"] }, \"Travel & Places\": { \"v\": [\"Viagens e Lugares\"] } } }, { \"l\": \"ro\", \"t\": { \"Activities\": { \"v\": [\"Activități\"] }, \"Animals & Nature\": { \"v\": [\"Animale și natură\"] }, \"Custom\": { \"v\": [\"Personalizat\"] }, \"Flags\": { \"v\": [\"Marcaje\"] }, \"Food & Drink\": { \"v\": [\"Alimente și băuturi\"] }, \"Frequently used\": { \"v\": [\"Utilizate frecvent\"] }, \"Objects\": { \"v\": [\"Obiecte\"] }, \"People & Body\": { \"v\": [\"Oameni și corp\"] }, \"Pick an emoji\": { \"v\": [\"Alege un emoji\"] }, \"Search emoji\": { \"v\": [\"Căutare emoji\"] }, \"Search results\": { \"v\": [\"Rezultatele căutării\"] }, \"Selected\": { \"v\": [\"Selectat\"] }, \"Smileys & Emotion\": { \"v\": [\"Zâmbete și emoții\"] }, \"Symbols\": { \"v\": [\"Simboluri\"] }, \"Travel & Places\": { \"v\": [\"Călătorii și locuri\"] } } }, { \"l\": \"ru\", \"t\": { \"Activities\": { \"v\": [\"События\"] }, \"Animals & Nature\": { \"v\": [\"Животные и природа \"] }, \"Custom\": { \"v\": [\"Пользовательское\"] }, \"Dark skin tone\": { \"v\": [\"Темный оттенок\"] }, \"Emoji picker\": { \"v\": [\"Подборщик эмодзи\"] }, \"Flags\": { \"v\": [\"Флаги\"] }, \"Food & Drink\": { \"v\": [\"Еда, напиток\"] }, \"Frequently used\": { \"v\": [\"Часто используемый\"] }, \"Light skin tone\": { \"v\": [\"Светлый оттенок\"] }, \"Medium dark skin tone\": { \"v\": [\"Средний темный оттенок\"] }, \"Medium light skin tone\": { \"v\": [\"Средний светлый оттенок\"] }, \"Medium skin tone\": { \"v\": [\"Средний оттенок\"] }, \"Neutral skin color\": { \"v\": [\"Нейтральный оттенок\"] }, \"Objects\": { \"v\": [\"Объекты\"] }, \"People & Body\": { \"v\": [\"Люди и тело\"] }, \"Pick an emoji\": { \"v\": [\"Выберите эмодзи\"] }, \"Search emoji\": { \"v\": [\"Поиск эмодзи\"] }, \"Search results\": { \"v\": [\"Результаты поиска\"] }, \"Selected\": { \"v\": [\"Выбрано\"] }, \"Skin tone\": { \"v\": [\"Оттенок скина\"] }, \"Smileys & Emotion\": { \"v\": [\"Смайлики и эмоции\"] }, \"Symbols\": { \"v\": [\"Символы\"] }, \"Travel & Places\": { \"v\": [\"Путешествия и места\"] } } }, { \"l\": \"sk\", \"t\": { \"Activities\": { \"v\": [\"Aktivity\"] }, \"Animals & Nature\": { \"v\": [\"Zvieratá a príroda\"] }, \"Custom\": { \"v\": [\"Vlastné\"] }, \"Dark skin tone\": { \"v\": [\"Tmavý vzhľad\"] }, \"Emoji picker\": { \"v\": [\"Výber emodži\"] }, \"Flags\": { \"v\": [\"Vlajky\"] }, \"Food & Drink\": { \"v\": [\"Jedlo a nápoje\"] }, \"Frequently used\": { \"v\": [\"Často používané\"] }, \"Light skin tone\": { \"v\": [\"Svetlý vzhľad\"] }, \"Medium dark skin tone\": { \"v\": [\"Stredne tmavý vzhľad\"] }, \"Medium light skin tone\": { \"v\": [\"Stredne svetlý vzhľad\"] }, \"Medium skin tone\": { \"v\": [\"Stredný vzhľad\"] }, \"Neutral skin color\": { \"v\": [\"Neutrálny vzhľad\"] }, \"Objects\": { \"v\": [\"Objekty\"] }, \"People & Body\": { \"v\": [\"Ľudia a telo\"] }, \"Pick an emoji\": { \"v\": [\"Vybrať emodži\"] }, \"Search emoji\": { \"v\": [\"Vyhľadať emoji\"] }, \"Search results\": { \"v\": [\"Výsledky vyhľadávania\"] }, \"Selected\": { \"v\": [\"Vybraný\"] }, \"Skin tone\": { \"v\": [\"Vzhľad\"] }, \"Smileys & Emotion\": { \"v\": [\"Smajlíky a emócie\"] }, \"Symbols\": { \"v\": [\"Symboly\"] }, \"Travel & Places\": { \"v\": [\"Cestovanie a miesta\"] } } }, { \"l\": \"sl\", \"t\": { \"Activities\": { \"v\": [\"Dejavnosti\"] }, \"Animals & Nature\": { \"v\": [\"Živali in Narava\"] }, \"Custom\": { \"v\": [\"Po meri\"] }, \"Flags\": { \"v\": [\"Zastavice\"] }, \"Food & Drink\": { \"v\": [\"Hrana in Pijača\"] }, \"Frequently used\": { \"v\": [\"Pogostost uporabe\"] }, \"Objects\": { \"v\": [\"Predmeti\"] }, \"People & Body\": { \"v\": [\"Ljudje in Telo\"] }, \"Pick an emoji\": { \"v\": [\"Izbor izrazne ikone\"] }, \"Search results\": { \"v\": [\"Zadetki iskanja\"] }, \"Smileys & Emotion\": { \"v\": [\"Izrazne ikone\"] }, \"Symbols\": { \"v\": [\"Simboli\"] }, \"Travel & Places\": { \"v\": [\"Potovanja in Kraji\"] } } }, { \"l\": \"sr\", \"t\": { \"Activities\": { \"v\": [\"Активности\"] }, \"Animals & Nature\": { \"v\": [\"Животиње и природа\"] }, \"Custom\": { \"v\": [\"Произвољно\"] }, \"Dark skin tone\": { \"v\": [\"Тамни тен коже\"] }, \"Emoji picker\": { \"v\": [\"Бирач емођија\"] }, \"Flags\": { \"v\": [\"Заставе\"] }, \"Food & Drink\": { \"v\": [\"Храна и пиће\"] }, \"Frequently used\": { \"v\": [\"Често коришћено\"] }, \"Light skin tone\": { \"v\": [\"Светли тен коже\"] }, \"Medium dark skin tone\": { \"v\": [\"Средње тамни тен коже\"] }, \"Medium light skin tone\": { \"v\": [\"Средње светли тен коже\"] }, \"Medium skin tone\": { \"v\": [\"Средњи тен коже\"] }, \"Neutral skin color\": { \"v\": [\"Неутрална боја коже\"] }, \"Objects\": { \"v\": [\"Предмети\"] }, \"People & Body\": { \"v\": [\"Људи и тело\"] }, \"Pick an emoji\": { \"v\": [\"Изаберите емођи\"] }, \"Search emoji\": { \"v\": [\"Претражи емођи\"] }, \"Search results\": { \"v\": [\"Резултати претраге\"] }, \"Selected\": { \"v\": [\"Изабрано\"] }, \"Skin tone\": { \"v\": [\"Тен коже\"] }, \"Smileys & Emotion\": { \"v\": [\"Смајлији и емоције\"] }, \"Symbols\": { \"v\": [\"Симболи\"] }, \"Travel & Places\": { \"v\": [\"Путовање и места\"] } } }, { \"l\": \"sv\", \"t\": { \"Activities\": { \"v\": [\"Aktiviteter\"] }, \"Animals & Nature\": { \"v\": [\"Djur & Natur\"] }, \"Custom\": { \"v\": [\"Anpassad\"] }, \"Dark skin tone\": { \"v\": [\"Mörk hudton\"] }, \"Emoji picker\": { \"v\": [\"Emoji-väljare\"] }, \"Flags\": { \"v\": [\"Flaggor\"] }, \"Food & Drink\": { \"v\": [\"Mat & Dryck\"] }, \"Frequently used\": { \"v\": [\"Används ofta\"] }, \"Light skin tone\": { \"v\": [\"Ljus hudton\"] }, \"Medium dark skin tone\": { \"v\": [\"Medium mörk hudton\"] }, \"Medium light skin tone\": { \"v\": [\"Medium ljus hudton\"] }, \"Medium skin tone\": { \"v\": [\"Medium hudton\"] }, \"Neutral skin color\": { \"v\": [\"Neutral hudfärg\"] }, \"Objects\": { \"v\": [\"Objekt\"] }, \"People & Body\": { \"v\": [\"Kropp & Själ\"] }, \"Pick an emoji\": { \"v\": [\"Välj en emoji\"] }, \"Search emoji\": { \"v\": [\"Sök emoji\"] }, \"Search results\": { \"v\": [\"Sökresultat\"] }, \"Selected\": { \"v\": [\"Vald\"] }, \"Skin tone\": { \"v\": [\"Hudton\"] }, \"Smileys & Emotion\": { \"v\": [\"Selfies & Känslor\"] }, \"Symbols\": { \"v\": [\"Symboler\"] }, \"Travel & Places\": { \"v\": [\"Resor & Sevärdigheter\"] } } }, { \"l\": \"tr\", \"t\": { \"Activities\": { \"v\": [\"Etkinlikler\"] }, \"Animals & Nature\": { \"v\": [\"Hayvanlar ve doğa\"] }, \"Custom\": { \"v\": [\"Özel\"] }, \"Dark skin tone\": { \"v\": [\"Koyu deri rengi\"] }, \"Emoji picker\": { \"v\": [\"Emoji seçici\"] }, \"Flags\": { \"v\": [\"Bayraklar\"] }, \"Food & Drink\": { \"v\": [\"Yeme ve içme\"] }, \"Frequently used\": { \"v\": [\"Sık kullanılanlar\"] }, \"Light skin tone\": { \"v\": [\"Açık deri rengi\"] }, \"Medium dark skin tone\": { \"v\": [\"Orta koyu deri rengi\"] }, \"Medium light skin tone\": { \"v\": [\"Orta açık deri rengi\"] }, \"Medium skin tone\": { \"v\": [\"Orta deri rengi\"] }, \"Neutral skin color\": { \"v\": [\"Nötr deri rengi\"] }, \"Objects\": { \"v\": [\"Nesneler\"] }, \"People & Body\": { \"v\": [\"İnsanlar ve beden\"] }, \"Pick an emoji\": { \"v\": [\"Bir emoji seçin\"] }, \"Search emoji\": { \"v\": [\"Emoji ara\"] }, \"Search results\": { \"v\": [\"Arama sonuçları\"] }, \"Selected\": { \"v\": [\"Seçilmiş\"] }, \"Skin tone\": { \"v\": [\"Deri rengi\"] }, \"Smileys & Emotion\": { \"v\": [\"İfadeler ve duygular\"] }, \"Symbols\": { \"v\": [\"Simgeler\"] }, \"Travel & Places\": { \"v\": [\"Gezi ve yerler\"] } } }, { \"l\": \"uk\", \"t\": { \"Activities\": { \"v\": [\"Діяльність\"] }, \"Animals & Nature\": { \"v\": [\"Тварини та природа\"] }, \"Custom\": { \"v\": [\"Власне\"] }, \"Dark skin tone\": { \"v\": [\"Смаглявий\"] }, \"Emoji picker\": { \"v\": [\"Вибір емоційки\"] }, \"Flags\": { \"v\": [\"Прапори\"] }, \"Food & Drink\": { \"v\": [\"Їжа та напої\"] }, \"Frequently used\": { \"v\": [\"Найчастіші\"] }, \"Light skin tone\": { \"v\": [\"Світла шкіра\"] }, \"Medium dark skin tone\": { \"v\": [\"Какао\"] }, \"Medium light skin tone\": { \"v\": [\"Лате\"] }, \"Medium skin tone\": { \"v\": [\"Середній колір шкіри\"] }, \"Neutral skin color\": { \"v\": [\"Нейтральний колір шкіри\"] }, \"Objects\": { \"v\": [\"Об'єкти\"] }, \"People & Body\": { \"v\": [\"Люди та жести\"] }, \"Pick an emoji\": { \"v\": [\"Виберіть емоційку\"] }, \"Search emoji\": { \"v\": [\"Шукати емоційки\"] }, \"Search results\": { \"v\": [\"Результати пошуку\"] }, \"Selected\": { \"v\": [\"Вибрано\"] }, \"Skin tone\": { \"v\": [\"Колір шкіри\"] }, \"Smileys & Emotion\": { \"v\": [\"Смайли та емоції\"] }, \"Symbols\": { \"v\": [\"Символи\"] }, \"Travel & Places\": { \"v\": [\"Поїздки та місця\"] } } }, { \"l\": \"uz\", \"t\": { \"Activities\": { \"v\": [\"Faolliklar\"] }, \"Animals & Nature\": { \"v\": [\"Hayvonlar va Tabiat\"] }, \"Custom\": { \"v\": [\"Moslashtirilgan\"] }, \"Dark skin tone\": { \"v\": [\"Qora rangdagi qoplama\"] }, \"Emoji picker\": { \"v\": [\"Emoji tanlagich\"] }, \"Flags\": { \"v\": [\"Bayroqlar\"] }, \"Food & Drink\": { \"v\": [\"Oziq-ovqat va ichimliklar\"] }, \"Frequently used\": { \"v\": [\"Tez-tez ishlatiladi\"] }, \"Light skin tone\": { \"v\": [\"Yorug` rangdagi qoplama\"] }, \"Medium dark skin tone\": { \"v\": [\"O`rtacha qorong`u rangdagi qoplama\"] }, \"Medium light skin tone\": { \"v\": [\"O`rtacha yorug`lik rangdagi qoplama\"] }, \"Medium skin tone\": { \"v\": [\"O`rtacha rangdagi qoplama\"] }, \"Neutral skin color\": { \"v\": [\"Neytral rang\"] }, \"Objects\": { \"v\": [\"Obyekt\"] }, \"People & Body\": { \"v\": [\"Odamlar va Tana\"] }, \"Pick an emoji\": { \"v\": [\"Emojini tanlang\"] }, \"Search emoji\": { \"v\": [\"Emoji qidirish\"] }, \"Search results\": { \"v\": [\"Qidiruv natijalari\"] }, \"Selected\": { \"v\": [\"Tanlangan\"] }, \"Skin tone\": { \"v\": [\"Odatiy rangdagi qoplama\"] }, \"Smileys & Emotion\": { \"v\": [\"Smayllar va Hissiyotlar\"] }, \"Symbols\": { \"v\": [\"Belgilar\"] }, \"Travel & Places\": { \"v\": [\"Sayohat va Joylar\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Activities\": { \"v\": [\"活动\"] }, \"Animals & Nature\": { \"v\": [\"动物 & 自然\"] }, \"Custom\": { \"v\": [\"自定义\"] }, \"Dark skin tone\": { \"v\": [\"深色皮肤\"] }, \"Emoji picker\": { \"v\": [\"表情拾取器\"] }, \"Flags\": { \"v\": [\"旗帜\"] }, \"Food & Drink\": { \"v\": [\"食物 & 饮品\"] }, \"Frequently used\": { \"v\": [\"经常使用\"] }, \"Light skin tone\": { \"v\": [\"浅色皮肤\"] }, \"Medium dark skin tone\": { \"v\": [\"中等深色皮肤\"] }, \"Medium light skin tone\": { \"v\": [\"中等浅色皮肤\"] }, \"Medium skin tone\": { \"v\": [\"中等皮肤\"] }, \"Neutral skin color\": { \"v\": [\"中性皮肤颜色\"] }, \"Objects\": { \"v\": [\"物体\"] }, \"People & Body\": { \"v\": [\"人 & 身体\"] }, \"Pick an emoji\": { \"v\": [\"选择一个表情\"] }, \"Search emoji\": { \"v\": [\"搜索表情\"] }, \"Search results\": { \"v\": [\"搜索结果\"] }, \"Selected\": { \"v\": [\"选择\"] }, \"Skin tone\": { \"v\": [\"皮肤\"] }, \"Smileys & Emotion\": { \"v\": [\"笑脸 & 情感\"] }, \"Symbols\": { \"v\": [\"符号\"] }, \"Travel & Places\": { \"v\": [\"旅游 & 地点\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Activities\": { \"v\": [\"活動\"] }, \"Animals & Nature\": { \"v\": [\"動物與自然\"] }, \"Custom\": { \"v\": [\"自定義\"] }, \"Dark skin tone\": { \"v\": [\"深膚色\"] }, \"Emoji picker\": { \"v\": [\"表情符號選擇器\"] }, \"Flags\": { \"v\": [\"旗幟\"] }, \"Food & Drink\": { \"v\": [\"食物與飲料\"] }, \"Frequently used\": { \"v\": [\"經常使用\"] }, \"Light skin tone\": { \"v\": [\"淺膚色\"] }, \"Medium dark skin tone\": { \"v\": [\"中等深膚色\"] }, \"Medium light skin tone\": { \"v\": [\"中等淺膚色\"] }, \"Medium skin tone\": { \"v\": [\"中等膚色\"] }, \"Neutral skin color\": { \"v\": [\"中性色膚色\"] }, \"Objects\": { \"v\": [\"物件\"] }, \"People & Body\": { \"v\": [\"人物\"] }, \"Pick an emoji\": { \"v\": [\"選擇表情符號\"] }, \"Search emoji\": { \"v\": [\"搜尋表情符號\"] }, \"Search results\": { \"v\": [\"搜尋結果\"] }, \"Selected\": { \"v\": [\"已選\"] }, \"Skin tone\": { \"v\": [\"膚色\"] }, \"Smileys & Emotion\": { \"v\": [\"表情\"] }, \"Symbols\": { \"v\": [\"標誌\"] }, \"Travel & Places\": { \"v\": [\"旅遊與景點\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Activities\": { \"v\": [\"活動\"] }, \"Animals & Nature\": { \"v\": [\"動物與自然\"] }, \"Custom\": { \"v\": [\"自定義\"] }, \"Dark skin tone\": { \"v\": [\"深膚色\"] }, \"Emoji picker\": { \"v\": [\"表情符號挑選器\"] }, \"Flags\": { \"v\": [\"旗幟\"] }, \"Food & Drink\": { \"v\": [\"食物與飲料\"] }, \"Frequently used\": { \"v\": [\"最近使用\"] }, \"Light skin tone\": { \"v\": [\"淺膚色\"] }, \"Medium dark skin tone\": { \"v\": [\"中等深膚色\"] }, \"Medium light skin tone\": { \"v\": [\"中等淺膚色\"] }, \"Medium skin tone\": { \"v\": [\"中等膚色\"] }, \"Neutral skin color\": { \"v\": [\"中性膚色\"] }, \"Objects\": { \"v\": [\"物件\"] }, \"People & Body\": { \"v\": [\"人物\"] }, \"Pick an emoji\": { \"v\": [\"選擇表情符號\"] }, \"Search emoji\": { \"v\": [\"搜尋表情符號\"] }, \"Search results\": { \"v\": [\"搜尋結果\"] }, \"Selected\": { \"v\": [\"已選取\"] }, \"Skin tone\": { \"v\": [\"膚色\"] }, \"Smileys & Emotion\": { \"v\": [\"表情\"] }, \"Symbols\": { \"v\": [\"標誌\"] }, \"Travel & Places\": { \"v\": [\"旅遊與景點\"] } } }];\nconst t6 = [{ \"l\": \"ar\", \"t\": { \"Add to a project\": { \"v\": [\"أضف إلى مشروع\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"ربط عناصر بمشروع لتسهيل العثور عليها\"] }, \"Failed to add the item to the project\": { \"v\": [\"تعذر ربط عنصر بمشروع\"] }, \"Failed to create a project\": { \"v\": [\"تعذر إنشاء مشروع\"] }, \"Failed to rename the project\": { \"v\": [\"تعذّر تغيير اسم المشروع\"] }, \"Type to search for existing projects\": { \"v\": [\"أكتُب للبحث في المشاريع الموجودة\"] } } }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Add to a project\": { \"v\": [\"Přidat do projektu\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Připojte položky k projektu, čímž budou snáze dohledatelné\"] }, \"Failed to add the item to the project\": { \"v\": [\"Položku se nepodařilo přidat do projektu\"] }, \"Failed to create a project\": { \"v\": [\"Projekt se nepodařilo vytvořit\"] }, \"Failed to rename the project\": { \"v\": [\"Projekt se nepodařilo přejmenovat\"] }, \"Type to search for existing projects\": { \"v\": [\"Psaním vyhledávejte existující projekty\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Add to a project\": { \"v\": [\"Tilføj til et projekt\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Forbind elementer til et projekt for at gøre dem nemmere at finde\"] }, \"Failed to add the item to the project\": { \"v\": [\"Kunne ikke føje elementet til projektet\"] }, \"Failed to create a project\": { \"v\": [\"Kunne ikke oprette et projekt\"] }, \"Failed to rename the project\": { \"v\": [\"Projektet kunne ikke omdøbes\"] }, \"Type to search for existing projects\": { \"v\": [\"Skriv for at søge efter eksisterende projekter\"] } } }, { \"l\": \"de\", \"t\": { \"Add to a project\": { \"v\": [\"Einem Projekt hinzufügen\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Verbinde Elemente mit einem Projekt, um sie leichter zu finden\"] }, \"Failed to add the item to the project\": { \"v\": [\"Das Element konnte nicht zum Projekt hinzugefügt werden\"] }, \"Failed to create a project\": { \"v\": [\"Projekt konnte nicht erstellt werden\"] }, \"Failed to rename the project\": { \"v\": [\"Das Projekt konnte nicht umbenannt werden\"] }, \"Type to search for existing projects\": { \"v\": [\"Tippen, um nach vorhandenen Projekten zu suchen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Add to a project\": { \"v\": [\"Einem Projekt hinzufügen\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Verbinden Sie Elemente mit einem Projekt, um sie leichter zu finden\"] }, \"Failed to add the item to the project\": { \"v\": [\"Das Element konnte nicht zum Projekt hinzugefügt werden\"] }, \"Failed to create a project\": { \"v\": [\"Projekt konnte nicht erstellt werden\"] }, \"Failed to rename the project\": { \"v\": [\"Das Projekt konnte nicht umbenannt werden\"] }, \"Type to search for existing projects\": { \"v\": [\"Tippen, um nach vorhandenen Projekten zu suchen\"] } } }, { \"l\": \"el\", \"t\": { \"Add to a project\": { \"v\": [\"Προσθήκη σε ένα έργο\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Συνδέστε αντικείμενα σε ένα έργο για να τα βρίσκετε πιο εύκολα\"] }, \"Failed to add the item to the project\": { \"v\": [\"Αποτυχία προσθήκης του αντικειμένου στο έργο\"] }, \"Failed to create a project\": { \"v\": [\"Αποτυχία δημιουργίας έργου\"] }, \"Failed to rename the project\": { \"v\": [\"Αποτυχία μετονομασίας του έργου\"] }, \"Type to search for existing projects\": { \"v\": [\"Πληκτρολογήστε για αναζήτηση υπαρχόντων έργων\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Add to a project\": { \"v\": [\"Add to a project\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Connect items to a project to make them easier to find\"] }, \"Failed to add the item to the project\": { \"v\": [\"Failed to add the item to the project\"] }, \"Failed to create a project\": { \"v\": [\"Failed to create a project\"] }, \"Failed to rename the project\": { \"v\": [\"Failed to rename the project\"] }, \"Type to search for existing projects\": { \"v\": [\"Type to search for existing projects\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": { \"Add to a project\": { \"v\": [\"Agregar a un proyecto\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Conecte items a un proyecto para hacerlos más fáciles de encontrar\"] }, \"Failed to add the item to the project\": { \"v\": [\"No se pudo agregar el elemento al proyecto\"] }, \"Failed to create a project\": { \"v\": [\"No se pudo crear un proyecto\"] }, \"Failed to rename the project\": { \"v\": [\"No se pudo renombrar el proyecto\"] }, \"Type to search for existing projects\": { \"v\": [\"Escriba para buscar proyectos existentes\"] } } }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": { \"Add to a project\": { \"v\": [\"Agregar a un proyecto\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Conecte elementos a un proyecto para hacerlos más fáciles de encontrar\"] }, \"Failed to add the item to the project\": { \"v\": [\"No se pudo agregar el elemento al proyecto\"] }, \"Failed to create a project\": { \"v\": [\"No se pudo crear el proyecto\"] }, \"Failed to rename the project\": { \"v\": [\"No se pudo renombrar el proyecto\"] }, \"Type to search for existing projects\": { \"v\": [\"Escriba para buscar proyectos existentes\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Add to a project\": { \"v\": [\"Lisa projekti\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Selleks, et objekte oleks lihtsam leida, seo nad projektiga\"] }, \"Failed to add the item to the project\": { \"v\": [\"Objekti lisamine projekti ei õnnestunud\"] }, \"Failed to create a project\": { \"v\": [\"Projekti loomine ei õnnestunud\"] }, \"Failed to rename the project\": { \"v\": [\"Projekti nime muutmine ei õnnestunud\"] }, \"Type to search for existing projects\": { \"v\": [\"Olemasolevate projektide otsimiseks kirjuta\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"Add to a project\": { \"v\": [\"افزودن به پروژه\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"برای پیدا کردن راحت‌تر، مواردی را به پروژه متصل کنید\"] }, \"Failed to add the item to the project\": { \"v\": [\"موارد به پروژه اضافه نشد\"] }, \"Failed to create a project\": { \"v\": [\"ایجاد پروژه نامؤفق بود\"] }, \"Failed to rename the project\": { \"v\": [\"تغییر نام پروژه انجام نشد\"] }, \"Type to search for existing projects\": { \"v\": [\"برای جستجوی پروژه‌های موجود تایپ کنید\"] } } }, { \"l\": \"fi\", \"t\": { \"Add to a project\": { \"v\": [\"Lisää projektiin\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Yhdistä kohteet projektiin, jotta ne olisivat helpompia löytää\"] }, \"Failed to add the item to the project\": { \"v\": [\"Kohteiden lisääminen projektiin epäonnistui\"] }, \"Failed to create a project\": { \"v\": [\"Projektin luominen epäonnistui\"] }, \"Failed to rename the project\": { \"v\": [\"Projektin nimeäminen epäonnistui\"] }, \"Type to search for existing projects\": { \"v\": [\"Kirjoita etsiäksesi olemassaolevia projekteja\"] } } }, { \"l\": \"fr\", \"t\": { \"Add to a project\": { \"v\": [\"Ajouter à un projet\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Connectez des éléments à un projet pour les retrouver plus facilement\"] }, \"Failed to add the item to the project\": { \"v\": [\"Impossible d'ajouter l'élément au projet\"] }, \"Failed to create a project\": { \"v\": [\"Impossible de créer un projet\"] }, \"Failed to rename the project\": { \"v\": [\"Impossible de renommer le projet\"] }, \"Type to search for existing projects\": { \"v\": [\"Tapez pour rechercher des projets existants\"] } } }, { \"l\": \"ga\", \"t\": { \"Add to a project\": { \"v\": [\"Cuir le tionscadal\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Ceangail míreanna le tionscadal chun iad a dhéanamh níos éasca iad a aimsiú\"] }, \"Failed to add the item to the project\": { \"v\": [\"Theip ar an mír a chur leis an tionscadal\"] }, \"Failed to create a project\": { \"v\": [\"Theip ar thionscadal a chruthú\"] }, \"Failed to rename the project\": { \"v\": [\"Theip ar an tionscadal a athainmniú\"] }, \"Type to search for existing projects\": { \"v\": [\"Clóscríobh chun tionscadail atá ann cheana a chuardach\"] } } }, { \"l\": \"gl\", \"t\": { \"Add to a project\": { \"v\": [\"Engadir a un proxecto\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Conectar elementos a un proxecto para facelos máis doados de atopar\"] }, \"Failed to add the item to the project\": { \"v\": [\"Produciuse un fallo ao engadir o elemento ao proxecto\"] }, \"Failed to create a project\": { \"v\": [\"Produciuse un fallo ao crear un proxecto\"] }, \"Failed to rename the project\": { \"v\": [\"Produciuse un fallo ao cambiarlle o nome ao proxecto\"] }, \"Type to search for existing projects\": { \"v\": [\"Escriba para buscar proxectos existentes\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": {} }, { \"l\": \"is\", \"t\": { \"Add to a project\": { \"v\": [\"Bæta við verkefni\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Tengdu atriði við verkefni til að gera einfaldara að finna þau\"] }, \"Failed to add the item to the project\": { \"v\": [\"Mistókst að bæta atriðinu í verkefnið\"] }, \"Failed to create a project\": { \"v\": [\"Mistókst að útbúa verkefni\"] }, \"Failed to rename the project\": { \"v\": [\"Mistókst að endurnefna verkefnið\"] }, \"Type to search for existing projects\": { \"v\": [\"Skrifaðu hér til að leita að fyrirliggjandi verkefnum\"] } } }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Add to a project\": { \"v\": [\"プロジェクトに追加する\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"項目をプロジェクトに接続して検索しやすくする\"] }, \"Failed to add the item to the project\": { \"v\": [\"プロジェクトへのアイテムの追加に失敗しました\"] }, \"Failed to create a project\": { \"v\": [\"プロジェクトの作成に失敗しました\"] }, \"Failed to rename the project\": { \"v\": [\"プロジェクトの名前変更に失敗しました\"] }, \"Type to search for existing projects\": { \"v\": [\"既存のプロジェクトを検索するために入力します\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": { \"Add to a project\": { \"v\": [\"프로젝트에 추가\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"항목을 더 쉽게 찾을 수 있도록 프로젝트에 연결하세요.\"] }, \"Failed to add the item to the project\": { \"v\": [\"항목을 프로젝트에 추가하는 데 실패함\"] }, \"Failed to create a project\": { \"v\": [\"프로젝트를 만드는 데 실패함\"] }, \"Failed to rename the project\": { \"v\": [\"프로젝트의 이름을 바꾸는 데 실패함\"] }, \"Type to search for existing projects\": { \"v\": [\"입력하여 프로젝트를 검색\"] } } }, { \"l\": \"lo\", \"t\": { \"Add to a project\": { \"v\": [\"ເພີ່ມໃສ່ໂຄງການ\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"ເຊື່ອມຕໍ່ລາຍການຕ່າງໆໃສ່ໂຄງການ ເພື່ອເຮັດໃຫ້ຊອກຫາງ່າຍຂຶ້ນ\"] }, \"Failed to add the item to the project\": { \"v\": [\"ບໍ່ສາມາດເພີ່ມລາຍການໃສ່ໂຄງການໄດ້\"] }, \"Failed to create a project\": { \"v\": [\"ບໍ່ສາມາດສ້າງໂຄງການໄດ້\"] }, \"Failed to rename the project\": { \"v\": [\"ບໍ່ສາມາດປ່ຽນຊື່ໂຄງການໄດ້\"] }, \"Type to search for existing projects\": { \"v\": [\"ພິມເພື່ອຄົ້ນຫາໂຄງການທີ່ມີຢູ່\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Add to a project\": { \"v\": [\"Додај во проект\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Поврзете ги елементите со проект за да биде полесно да се најдат\"] }, \"Failed to add the item to the project\": { \"v\": [\"Неуспешно додавање на елементот во проектот\"] }, \"Failed to create a project\": { \"v\": [\"Неуспешно креирање на проект\"] }, \"Failed to rename the project\": { \"v\": [\"Неуспешно преименување на проектот\"] }, \"Type to search for existing projects\": { \"v\": [\"Пишувај за пребарување постоечки проекти\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Add to a project\": { \"v\": [\"Legge til i et prosjekt\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Koble elementer til et prosjekt for å gjøre det enklere å finne dem\"] }, \"Failed to add the item to the project\": { \"v\": [\"Kan ikke legge til elementet i prosjektet\"] }, \"Failed to create a project\": { \"v\": [\"Kan ikke opprette et prosjekt\"] }, \"Failed to rename the project\": { \"v\": [\"Kunne ikke gi prosjektet nytt navn\"] }, \"Type to search for existing projects\": { \"v\": [\"Skriv for å søke for eksisterende prosjekter\"] } } }, { \"l\": \"nl\", \"t\": { \"Add to a project\": { \"v\": [\"Toevoegen aan een project\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Items aan een project koppelen om ze eenvoudiger te vinden\"] }, \"Failed to add the item to the project\": { \"v\": [\"Toevoegen van item aan project mislukt\"] }, \"Failed to create a project\": { \"v\": [\"Project aanmaken mislukt\"] }, \"Failed to rename the project\": { \"v\": [\"Project hernoemen mislukt\"] }, \"Type to search for existing projects\": { \"v\": [\"Typ om te zoeken naar bestaande projecten\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Add to a project\": { \"v\": [\"Dodaj do projektu\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Połącz elementy z projektem, aby ułatwić ich znalezienie\"] }, \"Failed to add the item to the project\": { \"v\": [\"Nie udało się dodać elementu do projektu\"] }, \"Failed to create a project\": { \"v\": [\"Nie udało się utworzyć projektu\"] }, \"Failed to rename the project\": { \"v\": [\"Nie udało się zmienić nazwy projektu\"] }, \"Type to search for existing projects\": { \"v\": [\"Wpisz, aby wyszukać istniejące projekty\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Add to a project\": { \"v\": [\"Adicionar a um projeto\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Conectar itens a um projeto para encontrá-los mais facilmente\"] }, \"Failed to add the item to the project\": { \"v\": [\"Falha ao adicionar itens ao projeto\"] }, \"Failed to create a project\": { \"v\": [\"Falha ao criar um projeto\"] }, \"Failed to rename the project\": { \"v\": [\"Falha ao renomear o projeto\"] }, \"Type to search for existing projects\": { \"v\": [\"Digite para pesquisar projetos existentes\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Add to a project\": { \"v\": [\"Adicionar a um projeto\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Ligar itens a um projeto para serem mais facilmente encontrados\"] }, \"Failed to add the item to the project\": { \"v\": [\"Não foi possível adicionar item ao projeto\"] }, \"Failed to create a project\": { \"v\": [\"Não foi possível criar um projeto\"] }, \"Failed to rename the project\": { \"v\": [\"Não foi possível alterar o nome do projeto\"] }, \"Type to search for existing projects\": { \"v\": [\"Digite para procurar projetos existentes\"] } } }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Add to a project\": { \"v\": [\"Добавить в проект\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Подключайте элементы к проекту, чтобы их было легче найти\"] }, \"Failed to add the item to the project\": { \"v\": [\"Не удалось добавить элемент в проект\"] }, \"Failed to create a project\": { \"v\": [\"Не удалось создать проект\"] }, \"Failed to rename the project\": { \"v\": [\"Не удалось переименовать проект\"] }, \"Type to search for existing projects\": { \"v\": [\"Введите для поиска существующих проектов\"] } } }, { \"l\": \"sk\", \"t\": { \"Add to a project\": { \"v\": [\"Pridať do projektu\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Pridať položky do projektu pre jednoduchšie vyhľadávanie\"] }, \"Failed to add the item to the project\": { \"v\": [\"Nepodarilo sa pridať položku do projektu\"] }, \"Failed to create a project\": { \"v\": [\"Nepodarilo sa vytvoriť projekt\"] }, \"Failed to rename the project\": { \"v\": [\"Nepodarilo sa premenovať projekt\"] }, \"Type to search for existing projects\": { \"v\": [\"Začnite písať pre vyhľadávanie v existujúcich projektoch\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Add to a project\": { \"v\": [\"Додај у пројекат\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Повезује ставке у пројекат како би се лакше пронашле\"] }, \"Failed to add the item to the project\": { \"v\": [\"Није успело додавање ставке у пројекат\"] }, \"Failed to create a project\": { \"v\": [\"Није успело креирање пројекта\"] }, \"Failed to rename the project\": { \"v\": [\"Није успела промена имена пројекта\"] }, \"Type to search for existing projects\": { \"v\": [\"Куцајте да претражите постојеће пројекте\"] } } }, { \"l\": \"sv\", \"t\": { \"Add to a project\": { \"v\": [\"Lägg till i ett projekt\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Anslut objekt till ett projekt för att göra dem lättare att hitta\"] }, \"Failed to add the item to the project\": { \"v\": [\"Det gick inte att lägga till objektet i projektet\"] }, \"Failed to create a project\": { \"v\": [\"Det gick inte att skapa ett projekt\"] }, \"Failed to rename the project\": { \"v\": [\"Kunde inte byta namn på projektet\"] }, \"Type to search for existing projects\": { \"v\": [\"Skriv för att söka efter befintliga projekt\"] } } }, { \"l\": \"tr\", \"t\": { \"Add to a project\": { \"v\": [\"Bir projeye ekle\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Ögeleri daha kolay bulmak için bir proje ile ilişkilendirin\"] }, \"Failed to add the item to the project\": { \"v\": [\"Öge projeye eklenemedi\"] }, \"Failed to create a project\": { \"v\": [\"Bir proje oluşturulamadı\"] }, \"Failed to rename the project\": { \"v\": [\"Proje yeniden adlandırılamadı\"] }, \"Type to search for existing projects\": { \"v\": [\"Var olan projeleri aramak için yazmaya başlayın\"] } } }, { \"l\": \"uk\", \"t\": { \"Add to a project\": { \"v\": [\"Додати до проєкту\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Приєднайте ресурси до проєкту для швидшого пошуку\"] }, \"Failed to add the item to the project\": { \"v\": [\"Не вдалося приєднати ресурс до проєкту\"] }, \"Failed to create a project\": { \"v\": [\"Не вдалося створити проєкт\"] }, \"Failed to rename the project\": { \"v\": [\"Не вдалося перейменувати проєкт\"] }, \"Type to search for existing projects\": { \"v\": [\"Почніть вводити, щоб знайти проєкт\"] } } }, { \"l\": \"uz\", \"t\": { \"Add to a project\": { \"v\": [\"Loyihaga qo'shish\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Elementlarni topishni osonlashtirish uchun ularni loyihaga ulang\"] }, \"Failed to add the item to the project\": { \"v\": [\"Ob'ektni loyihaga qo'shib bo'lmadi\"] }, \"Failed to create a project\": { \"v\": [\"Loyiha yaratib bo‘lmadi\"] }, \"Failed to rename the project\": { \"v\": [\"Loyiha nomini o‘zgartirib bo‘lmadi\"] }, \"Type to search for existing projects\": { \"v\": [\"Mavjud loyihalarni qidirish uchun kiriting\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Add to a project\": { \"v\": [\"添加至一个项目\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"将条目连接至一个项目以易于查找\"] }, \"Failed to add the item to the project\": { \"v\": [\"添加条目至项目失败\"] }, \"Failed to create a project\": { \"v\": [\"创建项目失败\"] }, \"Failed to rename the project\": { \"v\": [\"重命名项目失败\"] }, \"Type to search for existing projects\": { \"v\": [\"输入以搜索现存项目\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Add to a project\": { \"v\": [\"添加到方案中\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"將項目連接到方案中,以便更容易找到。\"] }, \"Failed to add the item to the project\": { \"v\": [\"無法將項目添加到方案中\"] }, \"Failed to create a project\": { \"v\": [\"無法創建方案\"] }, \"Failed to rename the project\": { \"v\": [\"無法重命名方案\"] }, \"Type to search for existing projects\": { \"v\": [\"輸入以搜索現有方案\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Add to a project\": { \"v\": [\"新增至專案中\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"將項目連結至專案中以方便尋找\"] }, \"Failed to add the item to the project\": { \"v\": [\"新增項目至專案失敗\"] }, \"Failed to create a project\": { \"v\": [\"建立專案失敗\"] }, \"Failed to rename the project\": { \"v\": [\"重新命名專案失敗\"] }, \"Type to search for existing projects\": { \"v\": [\"輸入以搜尋既有專案\"] } } }];\nconst t8 = [{ \"l\": \"ar\", \"t\": { \"Any link\": { \"v\": [\"أيَّ رابط\"] } } }, { \"l\": \"ast\", \"t\": { \"Any link\": { \"v\": [\"Cualesquier enllaz\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Any link\": { \"v\": [\"Jakýkoli odkaz\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Any link\": { \"v\": [\"Jakýkoli odkaz\"] } } }, { \"l\": \"da\", \"t\": { \"Any link\": { \"v\": [\"Ethvert link\"] } } }, { \"l\": \"de\", \"t\": { \"Any link\": { \"v\": [\"Irgendein Link\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Any link\": { \"v\": [\"Irgendein Link\"] } } }, { \"l\": \"el\", \"t\": { \"Any link\": { \"v\": [\"Οποιοσδήποτε σύνδεσμος\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Any link\": { \"v\": [\"Any link\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Any link\": { \"v\": [\"Cualquier enlace\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Any link\": { \"v\": [\"Cualquier enlace\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Any link\": { \"v\": [\"Cualquier enlace\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Any link\": { \"v\": [\"Cualquier enlace\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Any link\": { \"v\": [\"Mistahes link\"] } } }, { \"l\": \"eu\", \"t\": { \"Any link\": { \"v\": [\"Edozein esteka\"] } } }, { \"l\": \"fa\", \"t\": { \"Any link\": { \"v\": [\"هر پیوندی\"] } } }, { \"l\": \"fi\", \"t\": { \"Any link\": { \"v\": [\"Mikä tahansa linkki\"] } } }, { \"l\": \"fr\", \"t\": { \"Any link\": { \"v\": [\"N'importe quel lien\"] } } }, { \"l\": \"ga\", \"t\": { \"Any link\": { \"v\": [\"Aon nasc\"] } } }, { \"l\": \"gl\", \"t\": { \"Any link\": { \"v\": [\"Calquera ligazón\"] } } }, { \"l\": \"he\", \"t\": { \"Any link\": { \"v\": [\"קישור כלשהו\"] } } }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": { \"Any link\": { \"v\": [\"Semua tautan\"] } } }, { \"l\": \"is\", \"t\": { \"Any link\": { \"v\": [\"Einhver tengill\"] } } }, { \"l\": \"it\", \"t\": { \"Any link\": { \"v\": [\"Qualsiasi link\"] } } }, { \"l\": \"ja\", \"t\": { \"Any link\": { \"v\": [\"任意のリンク\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Any link\": { \"v\": [\"任意のリンク\"] } } }, { \"l\": \"ko\", \"t\": { \"Any link\": { \"v\": [\"아무 링크\"] } } }, { \"l\": \"lo\", \"t\": { \"Any link\": { \"v\": [\"ລິງໃດກໍໄດ້\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Any link\": { \"v\": [\"Секој линк\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Any link\": { \"v\": [\"Enhver lenke\"] } } }, { \"l\": \"nl\", \"t\": { \"Any link\": { \"v\": [\"Elke link\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Any link\": { \"v\": [\"Dowolny link\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Any link\": { \"v\": [\"Qualquer link\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Any link\": { \"v\": [\"Qualquer hiperligação\"] } } }, { \"l\": \"ro\", \"t\": { \"Any link\": { \"v\": [\"Orice link\"] } } }, { \"l\": \"ru\", \"t\": { \"Any link\": { \"v\": [\"Любая ссылка\"] } } }, { \"l\": \"sk\", \"t\": { \"Any link\": { \"v\": [\"Akýkoľvek odkaz\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Any link\": { \"v\": [\"Било који линк\"] } } }, { \"l\": \"sv\", \"t\": { \"Any link\": { \"v\": [\"Vilken länk som helst\"] } } }, { \"l\": \"tr\", \"t\": { \"Any link\": { \"v\": [\"Herhangi bir bağlantı\"] } } }, { \"l\": \"uk\", \"t\": { \"Any link\": { \"v\": [\"Будь-яке посилання\"] } } }, { \"l\": \"uz\", \"t\": { \"Any link\": { \"v\": [\"Har qanday havola\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Any link\": { \"v\": [\"任何链接\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Any link\": { \"v\": [\"任何連結\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Any link\": { \"v\": [\"任何連結\"] } } }];\nconst t9 = [{ \"l\": \"ar\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"أيّ مادة تمت مشاركتها مع نفس المجموعة من الأشخاص سيتم عرضها هنا\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"خطأ في الحصول على الموارد ذات الصلة. يرجى الاتصال بمشرف النظام عندك إذا كان لديك أيّ أسئلة.\"] }, \"Related resources\": { \"v\": [\"مصادر ذات صلة\"] } } }, { \"l\": \"ast\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Equí va apaecer tolo que compartas col mesmu grupu de persones\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Hebo un error al consiguir los recursos rellacionaos. Ponte en contautu col alministrador del sistema si tienes dalguna entruga.\"] }, \"Related resources\": { \"v\": [\"Recursos rellacionao\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Qualsevol cosa compartida amb el mateix grup de persones es mostrarà aquí\"] }, \"Related resources\": { \"v\": [\"Recursos relacionats\"] } } }, { \"l\": \"cs\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Cokoli nasdíleného stejné skupině lidí se zobrazí zde\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Chyba při získávání souvisejících prostředků. Pokud máte jakékoli dotazy, obraťte se na správce vámi využívaného systému.\"] }, \"Related resources\": { \"v\": [\"Související prostředky\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Cokoli nasdíleného stejné skupině lidí se zobrazí zde\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Chyba při získávání souvisejících prostředků. Pokud máte jakékoli dotazy, obraťte se na správce vámi využívaného systému.\"] }, \"Related resources\": { \"v\": [\"Související prostředky\"] } } }, { \"l\": \"da\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Alt der deles med samme gruppe af personer vil vises her\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Fejl ved hentning af relaterede ressourcer. Kontakt venligst din systemadministrator, hvis du har spørgsmål.\"] }, \"Related resources\": { \"v\": [\"Relaterede emner\"] } } }, { \"l\": \"de\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Alles, das mit derselben Gruppe von Personen geteilt wird, wird hier angezeigt\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Fehler beim Abrufen verwandter Ressourcen. Bei Fragen wende dich bitte an deinen Systemadministrator.\"] }, \"Related resources\": { \"v\": [\"Verwandte Ressourcen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Alles, das mit derselben Gruppe von Personen geteilt wird, wird hier angezeigt\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Fehler beim Abrufen verwandter Ressourcen. Bei Fragen wenden Sie sich bitte an Ihre Systemadministration.\"] }, \"Related resources\": { \"v\": [\"Verwandte Ressourcen\"] } } }, { \"l\": \"el\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Οτιδήποτε μοιράζεται με την ίδια ομάδα ατόμων θα εμφανίζεται εδώ\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Σφάλμα λήψης σχετικών πόρων. Παρακαλούμε επικοινωνήστε με τον διαχειριστή του συστήματός σας εάν έχετε οποιεσδήποτε ερωτήσεις.\"] }, \"Related resources\": { \"v\": [\"Σχετικοί πόροι\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Anything shared with the same group of people will show up here\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Error getting related resources. Please contact your system administrator if you have any questions.\"] }, \"Related resources\": { \"v\": [\"Related resources\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Cualquier cosa que esté compartida con el mismo grupo de personas se mostrará aquí\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Error al obtener recursos relacionados. Por favor, contacte a su administrador del sistema si tiene alguna pregunta.\"] }, \"Related resources\": { \"v\": [\"Recursos relacionados\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Cualquier cosa compartida con el mismo grupo de personas aparecerá aquí.\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Error al obtener recursos relacionados. Por favor, contacte a su administrador del sistema si tiene alguna pregunta.\"] }, \"Related resources\": { \"v\": [\"Recursos relacionados\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Cualquier cosa compartida con el mismo grupo de personas aparecerá aquí.\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Error al obtener recursos relacionados. Por favor, contacta a tu administrador del sistema si tienes alguna pregunta.\"] }, \"Related resources\": { \"v\": [\"Recursos relacionados\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Todo lo que se comparta con el mismo grupo de personas se mostrará aquí\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Error al obtener recursos relacionados. Por favor contacte al administrador si tiene alguna pregunta.\"] }, \"Related resources\": { \"v\": [\"Recursos relacionados\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Siin kuvatakse kõik, mida jagatakse sama kasutajagrupiga\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Viga seotud ressursside saamisel. Küsimuste korral võtke ühendust oma süsteemiadministraatoriga.\"] }, \"Related resources\": { \"v\": [\"Seotud ressursid\"] } } }, { \"l\": \"eu\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Pertsona-talde berarekin partekatutako edozer agertuko da hemen\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Errore bat gertatu da erlazionatutako baliabideak eskuratzean. Jarri harremanetan zure sistemaren administratzailearekin galderarik baduzu.\"] }, \"Related resources\": { \"v\": [\"Erlazionatutako baliabideak\"] } } }, { \"l\": \"fa\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"هر چیزی که با گروه مشابهی هم‌رسانی شود در این قسمت نمایش می‌یابد\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"خطا در دریافت منابع مرتبط. لطفاً در صورت داشتن هر گونه سؤال با مدیر سیستم خود تماس بگیرید.\"] }, \"Related resources\": { \"v\": [\"منابع مرتبط\"] } } }, { \"l\": \"fi\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Kaikki saman ryhmän kesken jaettu näkyy tässä\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Virhe resurssien haussa. Ota yhteyttä järjestelmän ylläpitäjään, mikäli sinulla on kysyttävää.\"] }, \"Related resources\": { \"v\": [\"Liittyvät resurssit\"] } } }, { \"l\": \"fr\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Tout ce qui est partagé avec le même groupe de personnes apparaîtra ici\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Erreur lors de la récupération des ressources liées. Contactez votre administrateur système pour répondre à vos éventuelles questions.\"] }, \"Related resources\": { \"v\": [\"Ressources liées\"] } } }, { \"l\": \"ga\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Taispeánfar aon rud a roinntear leis an ngrúpa céanna daoine anseo\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Earráid agus acmhainní gaolmhara á bhfáil. Déan teagmháil le riarthóir do chórais má tá aon cheist agat.\"] }, \"Related resources\": { \"v\": [\"Acmhainní gaolmhara\"] } } }, { \"l\": \"gl\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Todo o que se comparta co mesmo grupo de persoas aparecerá aquí\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Produciuse un erro ao obter os recursos relacionados. Póñase en contacto coa administración do seu sistema se ten algunha dúbida.\"] }, \"Related resources\": { \"v\": [\"Recursos relacionados\"] } } }, { \"l\": \"he\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"כל מה שמשותף עם אותה קבוצת האנשים יופיע כאן\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"שגיאה בקבלת המשאבים הקשורים. נא ליצור קשר עם הנהלת המערכת אם יש לך שאלות.\"] }, \"Related resources\": { \"v\": [\"משאבים קשורים\"] } } }, { \"l\": \"hu\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Minden, amit ugyanazzal a csoporttal oszt meg, itt fog megjelenni\"] }, \"Related resources\": { \"v\": [\"Kapcsolódó erőforrások\"] } } }, { \"l\": \"id\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Apa pun yang dibagikan dengan grup orang yang sama akan muncul di sini\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Kesalahan saat mengambil sumber daya terkait. Hubungi administrator sistem Anda jika ada pertanyaan.\"] }, \"Related resources\": { \"v\": [\"Sumber daya terkait\"] } } }, { \"l\": \"is\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Allt sem deilt er með sama hópi fólks mun birtast hér\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Villa við að sækja tengd tilföng. Hafðu samband við kerfisstjórann þinn ef þú ert með einhverjar spurningar.\"] }, \"Related resources\": { \"v\": [\"Tengd tilföng\"] } } }, { \"l\": \"it\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Tutto ciò che è stato condiviso con lo stesso gruppo di persone viene visualizzato qui\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Errore nell'ottenere le risorse correlate. Per qualsiasi domanda, contattare l'amministratore di sistema.\"] }, \"Related resources\": { \"v\": [\"Risorse correlate\"] } } }, { \"l\": \"ja\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"同じグループで共有しているものは、全てここに表示されます\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"関連リソースの取得エラー。ご不明な点がございましたら、システム管理者にお問い合わせください。\"] }, \"Related resources\": { \"v\": [\"関連リソース\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"同じグループで共有しているものは、全てここに表示されます\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"関連リソースの取得エラー。ご不明な点がございましたら、システム管理者にお問い合わせください。\"] }, \"Related resources\": { \"v\": [\"関連リソース\"] } } }, { \"l\": \"ko\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"같은 그룹의 사용자와 공유된 모든 것들이 이곳에 나타납니다.\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"관련 리소스를 가져오는 중 오류가 발생했습니다. 궁금한 것이 있는 경우 시스템 관리자에게 연락해 주세요.\"] }, \"Related resources\": { \"v\": [\"관련 리소스\"] } } }, { \"l\": \"lo\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"ທຸກຢ່າງທີ່ແບ່ງປັນກັບກຸ່ມຄົນດຽວກັນຈະສະແດງຢູ່ບ່ອນນີ້\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"ເກີດຂໍ້ຜິດພາດໃນການເອີ້ນຂໍ້ມູນຊັບພະຍາກອນທີ່ກ່ຽວຂ້ອງ. ກະລຸນາຕິດຕໍ່ຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານ ຖ້າທ່ານມີຄຳຖາມ.\"] }, \"Related resources\": { \"v\": [\"ຊັບພະຍາກອນທີ່ກ່ຽວຂ້ອງ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Сè што е споделено со истата група луѓе ќе се појави овде\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Грешка при добивање поврзани ресурси. Ве молиме контактирајте го вашиот систем администратор ако имате прашања.\"] }, \"Related resources\": { \"v\": [\"Поврзани ресурси\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Alt som er delt med den samme gruppen vil vises her\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Feil ved henting av relaterte ressurser. Kontakt systemansvarlig hvis du har spørsmål.\"] }, \"Related resources\": { \"v\": [\"Relaterte ressurser\"] } } }, { \"l\": \"nl\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Alles dat gedeeld is met dezelfde groep mensen zal hier getoond worden\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Fout bij het ophalen van gerelateerde bronnen. Neem contact op met uw systeembeheerder als u vragen heeft.\"] }, \"Related resources\": { \"v\": [\"Gerelateerde bronnen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Tutaj pojawi się wszystko, co zostało udostępnione tej samej grupie osób\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Błąd podczas pobierania powiązanych zasobów. Jeśli masz jakiekolwiek pytania, skontaktuj się z administratorem systemu.\"] }, \"Related resources\": { \"v\": [\"Powiązane zasoby\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Qualquer coisa compartilhada com o mesmo grupo de pessoas aparecerá aqui\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Erro ao obter recursos relacionados. Por favor, entre em contato com o administrador do sistema se tiver alguma dúvida.\"] }, \"Related resources\": { \"v\": [\"Recursos relacionados\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Qualquer coisa partilhada com o mesmo grupo de pessoas irá aparecer aqui\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Erro ao obter os recursos relacionados. Por favor, contacte o administrador do sistema se tiver quaisquer perguntas.\"] }, \"Related resources\": { \"v\": [\"Recursos relacionados\"] } } }, { \"l\": \"ro\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Tot ceea ce este partajat cu același grup de persoane va fi afișat aici\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Eroare la preluarea resurselor adiționale. Vă rugăm să contactați administratorul pentru întrebări.\"] }, \"Related resources\": { \"v\": [\"Resurse legate\"] } } }, { \"l\": \"ru\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Всё, чем поделились с той же группой людей, будет отображаться здесь\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Ошибка при получении связанных ресурсов. Если у вас есть какие-либо вопросы, обратитесь к системному администратору.\"] }, \"Related resources\": { \"v\": [\"Связанные ресурсы\"] } } }, { \"l\": \"sk\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Tu sa zobrazí čokoľvek zdieľané s rovnakou skupinou ľudí\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Chyba pri získavaní súvisiacich zdrojov. V prípade otázok kontaktujte prosím svojho systemového administrátora.\"] }, \"Related resources\": { \"v\": [\"Súvisiace zdroje\"] } } }, { \"l\": \"sl\", \"t\": { \"Related resources\": { \"v\": [\"Povezani viri\"] } } }, { \"l\": \"sr\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Све што се дели са истом групом људи ће се појавити овде\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Грешка код прибављања везаних ресурса. Молимо вас да се обратите администратору ако имате питања.\"] }, \"Related resources\": { \"v\": [\"Повезани ресурси\"] } } }, { \"l\": \"sv\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Något som delats med samma grupp av personer kommer att visas här\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Det gick inte att hämta relaterade resurser. Kontakta din systemadministratör om du har några frågor.\"] }, \"Related resources\": { \"v\": [\"Relaterade resurser\"] } } }, { \"l\": \"tr\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Aynı kişi grubu ile paylaşılan herşey burada görüntülenir\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"İlgili kaynaklara ulaşılırken sorun çıktı. Herhangi bir sorunuz varsa lütfen sistem yöneticiniz ile görüşün \"] }, \"Related resources\": { \"v\": [\"İlgili kaynaklar\"] } } }, { \"l\": \"uk\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Будь-що доступне для цієї же групи людей буде показано тут\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Помилка під час отримання пов'язаних ресурсів. Будь ласка, сконтактуйте з системним адміністратором, якщо у вас виникли запитання.\"] }, \"Related resources\": { \"v\": [\"Пов'язані ресурси\"] } } }, { \"l\": \"uz\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Xuddi shu guruhdagi odamlarga ulashilgan hamma narsa shu yerda chiqadi\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Tegishli manbalarni olishda xatolik yuz berdi. Savollaringiz bo'lsa, tizim administratoriga murojaat qiling.\"] }, \"Related resources\": { \"v\": [\"Tegishli manbalar\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"与同组用户分享的所有内容都会显示于此\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"获取相关资源出现错误。如果你有任何问题,请联系系统管理员。\"] }, \"Related resources\": { \"v\": [\"相关资源\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"與同一組人共享的任何內容都會顯示在此處\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"取得相關資源時發生錯誤。如果有任何問題,請聯絡系統管理員。\"] }, \"Related resources\": { \"v\": [\"相關資源\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"與相同群組分享的所有內容都會顯示於此\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"取得相關資源時發生錯誤。如果有任何問題,請聯絡系統管理員。\"] }, \"Related resources\": { \"v\": [\"相關資源\"] } } }];\nconst t10 = [{ \"l\": \"ar\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"صورة الملف الشخصي الرمزية لــ {displayName} \"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"صورة الملف الشخصي الرمزية لــ {displayName}، {status}\"] } } }, { \"l\": \"ast\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de: {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de: {displayName}, {status}\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"cs\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Zástupný obrázek uživatele {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Zástupný obrázek uživatele {displayName}, {status}\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Zástupný obrázek uživatele {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Zástupný obrázek uživatele {displayName}, {status}\"] } } }, { \"l\": \"da\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar af {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar af {displayName}, {status}\"] } } }, { \"l\": \"de\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar von {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar von {displayName}, {status}\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar von {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar von {displayName}, {status}\"] } } }, { \"l\": \"el\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Άβαταρ του {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Άβαταρ του {displayName}, {status}\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar of {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar of {displayName}, {status}\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar {displayName}, {status}\"] } } }, { \"l\": \"eu\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName}-(e)n irudia\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName} -(e)n irudia, {status}\"] } } }, { \"l\": \"fa\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"آواتار {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"آواتار {displayName} ، {status}\"] } } }, { \"l\": \"fi\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName}n avatar\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}n avatar, {status}\"] } } }, { \"l\": \"fr\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"ga\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"gl\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"he\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"תמונה ייצוגית של {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"תמונה ייצוגית של {displayName}, {status}\"] } } }, { \"l\": \"hu\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} profilképe\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName} profilképe, {status}\"] } } }, { \"l\": \"id\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar {displayName}, {status}\"] } } }, { \"l\": \"is\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Auðkennismynd fyrir {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Auðkennismynd fyrir {displayName}, {status}\"] } } }, { \"l\": \"it\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar di {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar di {displayName}, {status}\"] } } }, { \"l\": \"ja\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} のアバター\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}, {status} のアバター\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} のアバター\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}, {status} のアバター\"] } } }, { \"l\": \"ko\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName}님의 아바타\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}, {status}님의 아바타\"] } } }, { \"l\": \"lo\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"ຮູບແທນຕົວຂອງ {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"ຮູບແທນຕົວຂອງ {displayName}, {status}\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Аватар на {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Аватар на {displayName}, {status}\"] } } }, { \"l\": \"my\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} ၏ ကိုယ်ပွား\"] } } }, { \"l\": \"nb\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avataren til {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}'s avatar, {status}\"] } } }, { \"l\": \"nl\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar van {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar van {displayName}, {status}\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Awatar {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Awatar {displayName}, {status}\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"ro\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatarul lui {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatarul lui {displayName}, {status}\"] } } }, { \"l\": \"ru\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Аватар {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Фотография {displayName}, {status}\"] } } }, { \"l\": \"sk\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar {displayName}, {status}\"] } } }, { \"l\": \"sl\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Podoba {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Prikazna slika {displayName}, {status}\"] } } }, { \"l\": \"sr\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Аватар за {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar za {displayName}, {status}\"] } } }, { \"l\": \"sv\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName}s avatar\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}s avatar, {status}\"] } } }, { \"l\": \"tr\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} avatarı\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}, {status} avatarı\"] } } }, { \"l\": \"uk\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Аватар {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Аватар {displayName}, {status}\"] } } }, { \"l\": \"uz\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\" {displayName}Avatari\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}, {status} Avatari\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName}的头像\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}的头像,{status}\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} 的頭像\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName} 的頭像,{status}\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} 的大頭照\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}, {status} 的大頭照\"] } } }];\nconst t11 = [{ \"l\": \"ar\", \"t\": { \"away\": { \"v\": [\"غير موجود\"] }, \"busy\": { \"v\": [\"مشغول\"] }, \"do not disturb\": { \"v\": [\"يُرجى عدم الإزعاج\"] }, \"invisible\": { \"v\": [\"غير مرئي\"] }, \"offline\": { \"v\": [\"غير متصل\"] }, \"online\": { \"v\": [\"متصل\"] } } }, { \"l\": \"ast\", \"t\": { \"away\": { \"v\": [\"ausente\"] }, \"busy\": { \"v\": [\"ocupáu\"] }, \"do not disturb\": { \"v\": [\"nun molestar\"] }, \"invisible\": { \"v\": [\"invisible\"] }, \"offline\": { \"v\": [\"desconectáu\"] }, \"online\": { \"v\": [\"en llinia\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"away\": { \"v\": [\"pryč\"] }, \"busy\": { \"v\": [\"zaneprádněn(a)\"] }, \"do not disturb\": { \"v\": [\"nerušit\"] }, \"invisible\": { \"v\": [\"neviditelné\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"away\": { \"v\": [\"pryč\"] }, \"busy\": { \"v\": [\"zaneprádněn(a)\"] }, \"do not disturb\": { \"v\": [\"nerušit\"] }, \"invisible\": { \"v\": [\"neviditelné\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"da\", \"t\": { \"away\": { \"v\": [\"væk\"] }, \"busy\": { \"v\": [\"optaget\"] }, \"do not disturb\": { \"v\": [\"forstyr ikke\"] }, \"invisible\": { \"v\": [\"usynlig\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"de\", \"t\": { \"away\": { \"v\": [\"Abwesend\"] }, \"busy\": { \"v\": [\"Beschäftigt\"] }, \"do not disturb\": { \"v\": [\"Bitte nicht stören\"] }, \"invisible\": { \"v\": [\"Unsichtbar\"] }, \"offline\": { \"v\": [\"Offline\"] }, \"online\": { \"v\": [\"Online\"] } } }, { \"l\": \"de-DE\", \"t\": { \"away\": { \"v\": [\"Abwesend\"] }, \"busy\": { \"v\": [\"Beschäftigt\"] }, \"do not disturb\": { \"v\": [\"Bitte nicht stören\"] }, \"invisible\": { \"v\": [\"Unsichtbar\"] }, \"offline\": { \"v\": [\"Offline\"] }, \"online\": { \"v\": [\"Online\"] } } }, { \"l\": \"el\", \"t\": { \"away\": { \"v\": [\"μακριά\"] }, \"busy\": { \"v\": [\"απασχολημένος\"] }, \"do not disturb\": { \"v\": [\"μην ενοχλείτε\"] }, \"invisible\": { \"v\": [\"αόρατο\"] }, \"offline\": { \"v\": [\"εκτός σύνδεσης\"] }, \"online\": { \"v\": [\"συνδεδεμένος\"] } } }, { \"l\": \"en-GB\", \"t\": { \"away\": { \"v\": [\"away\"] }, \"busy\": { \"v\": [\"busy\"] }, \"do not disturb\": { \"v\": [\"do not disturb\"] }, \"invisible\": { \"v\": [\"invisible\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"away\": { \"v\": [\"ausente\"] }, \"busy\": { \"v\": [\"ocupado\"] }, \"do not disturb\": { \"v\": [\"no molestar\"] }, \"invisible\": { \"v\": [\"invisible\"] }, \"offline\": { \"v\": [\"fuera de línea\"] }, \"online\": { \"v\": [\"en línea\"] } } }, { \"l\": \"es-AR\", \"t\": { \"away\": { \"v\": [\"ausente\"] }, \"busy\": { \"v\": [\"ocupado\"] }, \"do not disturb\": { \"v\": [\"no molestar\"] }, \"invisible\": { \"v\": [\"invisible\"] }, \"offline\": { \"v\": [\"desconectado\"] }, \"online\": { \"v\": [\"en línea\"] } } }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": { \"away\": { \"v\": [\"ausente\"] }, \"busy\": { \"v\": [\"ocupado\"] }, \"do not disturb\": { \"v\": [\"no molestar\"] }, \"invisible\": { \"v\": [\"invisible\"] }, \"offline\": { \"v\": [\"fuera de línea\"] }, \"online\": { \"v\": [\"en línea\"] } } }, { \"l\": \"et-EE\", \"t\": { \"away\": { \"v\": [\"eemal\"] }, \"busy\": { \"v\": [\"hõivatud\"] }, \"do not disturb\": { \"v\": [\"ära sega\"] }, \"invisible\": { \"v\": [\"nähtamatu\"] }, \"offline\": { \"v\": [\"pole võrgus\"] }, \"online\": { \"v\": [\"võrgus\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"away\": { \"v\": [\"دور از دستگاه\"] }, \"busy\": { \"v\": [\"مشغول\"] }, \"do not disturb\": { \"v\": [\"مزاحم نشوید\"] }, \"invisible\": { \"v\": [\"مخفی\"] }, \"offline\": { \"v\": [\"برون‌خط\"] }, \"online\": { \"v\": [\"برخط\"] } } }, { \"l\": \"fi\", \"t\": { \"away\": { \"v\": [\"poissa\"] }, \"busy\": { \"v\": [\"varattu\"] }, \"do not disturb\": { \"v\": [\"älä häiritse\"] }, \"invisible\": { \"v\": [\"näkymätön\"] }, \"offline\": { \"v\": [\"ei linjalla\"] }, \"online\": { \"v\": [\"linjalla\"] } } }, { \"l\": \"fr\", \"t\": { \"away\": { \"v\": [\"absent\"] }, \"busy\": { \"v\": [\"occupé\"] }, \"do not disturb\": { \"v\": [\"ne pas déranger\"] }, \"invisible\": { \"v\": [\"invisible\"] }, \"offline\": { \"v\": [\"hors ligne\"] }, \"online\": { \"v\": [\"en ligne\"] } } }, { \"l\": \"ga\", \"t\": { \"away\": { \"v\": [\"ar shiúl\"] }, \"busy\": { \"v\": [\"gnóthach\"] }, \"do not disturb\": { \"v\": [\"ná cur as\"] }, \"invisible\": { \"v\": [\"dofheicthe\"] }, \"offline\": { \"v\": [\"as líne\"] }, \"online\": { \"v\": [\"ar líne\"] } } }, { \"l\": \"gl\", \"t\": { \"away\": { \"v\": [\"ausente\"] }, \"busy\": { \"v\": [\"ocupado\"] }, \"do not disturb\": { \"v\": [\"non molestar\"] }, \"invisible\": { \"v\": [\"invisíbel\"] }, \"offline\": { \"v\": [\"desconectado\"] }, \"online\": { \"v\": [\"conectado\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": { \"away\": { \"v\": [\"tidak tersedia\"] }, \"do not disturb\": { \"v\": [\"jangan ganggu\"] }, \"offline\": { \"v\": [\"luring\"] }, \"online\": { \"v\": [\"daring\"] } } }, { \"l\": \"is\", \"t\": { \"away\": { \"v\": [\"í burtu\"] }, \"busy\": { \"v\": [\"upptekin/n\"] }, \"do not disturb\": { \"v\": [\"ekki ónáða\"] }, \"invisible\": { \"v\": [\"ósýnilegt\"] }, \"offline\": { \"v\": [\"ónettengt\"] }, \"online\": { \"v\": [\"nettengt\"] } } }, { \"l\": \"it\", \"t\": { \"away\": { \"v\": [\"via\"] }, \"do not disturb\": { \"v\": [\"non disturbare\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"ja\", \"t\": { \"away\": { \"v\": [\"離れる\"] }, \"busy\": { \"v\": [\"ビジー\"] }, \"do not disturb\": { \"v\": [\"邪魔をしないでください\"] }, \"invisible\": { \"v\": [\"不可視\"] }, \"offline\": { \"v\": [\"オフライン\"] }, \"online\": { \"v\": [\"オンライン\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"away\": { \"v\": [\"離れる\"] }, \"busy\": { \"v\": [\"ビジー\"] }, \"do not disturb\": { \"v\": [\"邪魔をしないでください\"] }, \"invisible\": { \"v\": [\"不可視\"] }, \"offline\": { \"v\": [\"オフライン\"] }, \"online\": { \"v\": [\"オンライン\"] } } }, { \"l\": \"ko\", \"t\": { \"away\": { \"v\": [\"자리 비움\"] }, \"busy\": { \"v\": [\"바쁨\"] }, \"do not disturb\": { \"v\": [\"방해 금지\"] }, \"invisible\": { \"v\": [\"보이지 않음\"] }, \"offline\": { \"v\": [\"오프라인\"] }, \"online\": { \"v\": [\"온라인\"] } } }, { \"l\": \"lo\", \"t\": { \"away\": { \"v\": [\"ບໍ່ຢູ່\"] }, \"busy\": { \"v\": [\"ບໍ່ວ່າງ\"] }, \"do not disturb\": { \"v\": [\"ຫ້າມລົບກວນ\"] }, \"invisible\": { \"v\": [\"ບໍ່ສະແດງ\"] }, \"offline\": { \"v\": [\"ອອບໄລນ໌\"] }, \"online\": { \"v\": [\"ອອນໄລນ໌\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"away\": { \"v\": [\"оддалечен\"] }, \"busy\": { \"v\": [\"зафатен\"] }, \"do not disturb\": { \"v\": [\"не вознемирувај\"] }, \"invisible\": { \"v\": [\"невидливо\"] }, \"offline\": { \"v\": [\"офлајн\"] }, \"online\": { \"v\": [\"онлајн\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"away\": { \"v\": [\"borte\"] }, \"busy\": { \"v\": [\"opptatt\"] }, \"do not disturb\": { \"v\": [\"ikke forstyrr\"] }, \"invisible\": { \"v\": [\"usynlig\"] }, \"offline\": { \"v\": [\"frakoblet\"] }, \"online\": { \"v\": [\"tilkoblet\"] } } }, { \"l\": \"nl\", \"t\": { \"away\": { \"v\": [\"weg\"] }, \"busy\": { \"v\": [\"bezig\"] }, \"do not disturb\": { \"v\": [\"niet storen\"] }, \"invisible\": { \"v\": [\"Onzichtbaar\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"away\": { \"v\": [\"stąd\"] }, \"busy\": { \"v\": [\"zajęty\"] }, \"do not disturb\": { \"v\": [\"nie przeszkadzać\"] }, \"invisible\": { \"v\": [\"niewidzialny\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"away\": { \"v\": [\"ausente\"] }, \"busy\": { \"v\": [\"ocupado\"] }, \"do not disturb\": { \"v\": [\"não perturbe\"] }, \"invisible\": { \"v\": [\"invisível\"] }, \"offline\": { \"v\": [\"off-line\"] }, \"online\": { \"v\": [\"on-line\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"away\": { \"v\": [\"longe\"] }, \"busy\": { \"v\": [\"ocupado\"] }, \"do not disturb\": { \"v\": [\"não incomodar\"] }, \"invisible\": { \"v\": [\"invisível\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"ro\", \"t\": { \"away\": { \"v\": [\"plecat\"] }, \"do not disturb\": { \"v\": [\"nu deranjați\"] }, \"offline\": { \"v\": [\"deconectat\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"ru\", \"t\": { \"away\": { \"v\": [\"отсутствие\"] }, \"busy\": { \"v\": [\"занятый\"] }, \"do not disturb\": { \"v\": [\"не беспокоить\"] }, \"invisible\": { \"v\": [\"невидимый\"] }, \"offline\": { \"v\": [\"офлайн\"] }, \"online\": { \"v\": [\"онлайн\"] } } }, { \"l\": \"sk\", \"t\": { \"away\": { \"v\": [\"neprítomný\"] }, \"busy\": { \"v\": [\"zaneprázdnený\"] }, \"do not disturb\": { \"v\": [\"nerušiť\"] }, \"invisible\": { \"v\": [\"neviditeľný\"] }, \"offline\": { \"v\": [\"Odpojený - offline\"] }, \"online\": { \"v\": [\"Pripojený - online\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"away\": { \"v\": [\"одсутан\"] }, \"busy\": { \"v\": [\"заузет\"] }, \"do not disturb\": { \"v\": [\"не узнемиравај\"] }, \"invisible\": { \"v\": [\"невидљиво\"] }, \"offline\": { \"v\": [\"ван мреже\"] }, \"online\": { \"v\": [\"на мрежи\"] } } }, { \"l\": \"sv\", \"t\": { \"away\": { \"v\": [\"borta\"] }, \"busy\": { \"v\": [\"upptagen\"] }, \"do not disturb\": { \"v\": [\"stör ej\"] }, \"invisible\": { \"v\": [\"osynlig\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"tr\", \"t\": { \"away\": { \"v\": [\"Uzakta\"] }, \"busy\": { \"v\": [\"Meşgul\"] }, \"do not disturb\": { \"v\": [\"Rahatsız etmeyin\"] }, \"invisible\": { \"v\": [\"görünmez\"] }, \"offline\": { \"v\": [\"Çevrim dışı\"] }, \"online\": { \"v\": [\"Çevrim içi\"] } } }, { \"l\": \"uk\", \"t\": { \"away\": { \"v\": [\"відсутній\"] }, \"busy\": { \"v\": [\"зайнято\"] }, \"do not disturb\": { \"v\": [\"не турбувати\"] }, \"invisible\": { \"v\": [\"Невидимий\"] }, \"offline\": { \"v\": [\"не в мережі\"] }, \"online\": { \"v\": [\"в мережі\"] } } }, { \"l\": \"uz\", \"t\": { \"away\": { \"v\": [\"uzoqda\"] }, \"busy\": { \"v\": [\"band\"] }, \"do not disturb\": { \"v\": [\"bezovta qilmang\"] }, \"invisible\": { \"v\": [\"ko'rinmas\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"away\": { \"v\": [\"离开\"] }, \"busy\": { \"v\": [\"繁忙\"] }, \"do not disturb\": { \"v\": [\"请勿打扰\"] }, \"invisible\": { \"v\": [\"隐藏的\"] }, \"offline\": { \"v\": [\"离线\"] }, \"online\": { \"v\": [\"在线\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"away\": { \"v\": [\"離開\"] }, \"busy\": { \"v\": [\"忙碌\"] }, \"do not disturb\": { \"v\": [\"請勿打擾\"] }, \"invisible\": { \"v\": [\"隐藏的\"] }, \"offline\": { \"v\": [\"離線\"] }, \"online\": { \"v\": [\"在線\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"away\": { \"v\": [\"離開\"] }, \"busy\": { \"v\": [\"忙碌\"] }, \"do not disturb\": { \"v\": [\"請勿打擾\"] }, \"invisible\": { \"v\": [\"不可見\"] }, \"offline\": { \"v\": [\"離線\"] }, \"online\": { \"v\": [\"線上\"] } } }];\nconst t12 = [{ \"l\": \"ar\", \"t\": { \"Back to provider selection\": { \"v\": [\"عودة إلى اختيار المزوّد\"] }, \"Close Smart Picker\": { \"v\": [\"إغلاق المحدد الذكي\"] }, \"Smart Picker\": { \"v\": [\"اللاقط الذكي smart picker\"] } } }, { \"l\": \"ast\", \"t\": { \"Back to provider selection\": { \"v\": [\"Volver a la seleición de fornidores\"] }, \"Close Smart Picker\": { \"v\": [\"Zarrar la seleición intelixente\"] }, \"Smart Picker\": { \"v\": [\"Selector intelixente\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Back to provider selection\": { \"v\": [\"Zpět na výběr poskytovatele\"] }, \"Close Smart Picker\": { \"v\": [\"Zavřít inteligentní výběr\"] }, \"Smart Picker\": { \"v\": [\"Inteligentní výběr\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Back to provider selection\": { \"v\": [\"Zpět na výběr poskytovatele\"] }, \"Close Smart Picker\": { \"v\": [\"Zavřít inteligentní výběr\"] }, \"Smart Picker\": { \"v\": [\"Inteligentní výběr\"] } } }, { \"l\": \"da\", \"t\": { \"Back to provider selection\": { \"v\": [\"Tilbage til udbydervalg\"] }, \"Close Smart Picker\": { \"v\": [\"Luk Smart Vælger\"] }, \"Smart Picker\": { \"v\": [\"Smart Vælger\"] } } }, { \"l\": \"de\", \"t\": { \"Back to provider selection\": { \"v\": [\"Zurück zur Anbieterauswahl\"] }, \"Close Smart Picker\": { \"v\": [\"Smart Picker schließen\"] }, \"Smart Picker\": { \"v\": [\"Smart Picker\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Back to provider selection\": { \"v\": [\"Zurück zur Anbieterauswahl\"] }, \"Close Smart Picker\": { \"v\": [\"Smart Picker schließen\"] }, \"Smart Picker\": { \"v\": [\"Smart Picker\"] } } }, { \"l\": \"el\", \"t\": { \"Back to provider selection\": { \"v\": [\"Επιστροφή στην επιλογή παρόχου\"] }, \"Close Smart Picker\": { \"v\": [\"Κλείσιμο Έξυπνης Επιλογής\"] }, \"Smart Picker\": { \"v\": [\"Έξυπνη Επιλογή\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Back to provider selection\": { \"v\": [\"Back to provider selection\"] }, \"Close Smart Picker\": { \"v\": [\"Close Smart Picker\"] }, \"Smart Picker\": { \"v\": [\"Smart Picker\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Back to provider selection\": { \"v\": [\"Volver a la selección de proveedor\"] }, \"Close Smart Picker\": { \"v\": [\"Cerrar selector inteligente\"] }, \"Smart Picker\": { \"v\": [\"Selector inteligente\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Back to provider selection\": { \"v\": [\"Volver a la selección de proveedor\"] }, \"Close Smart Picker\": { \"v\": [\"Cerrar selector inteligente\"] }, \"Smart Picker\": { \"v\": [\"Selector inteligente\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Back to provider selection\": { \"v\": [\"Volver a la selección de proveedor\"] }, \"Close Smart Picker\": { \"v\": [\"Cerrar selector inteligente\"] }, \"Smart Picker\": { \"v\": [\"Selector inteligente\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Back to provider selection\": { \"v\": [\"Volver a la selección de proveedor\"] }, \"Close Smart Picker\": { \"v\": [\"Cerrar selector inteligente\"] }, \"Smart Picker\": { \"v\": [\"Selector inteligente\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Back to provider selection\": { \"v\": [\"Tagasi teenusepakkuja valiku juurde\"] }, \"Close Smart Picker\": { \"v\": [\"Sulge nutikas valija\"] }, \"Smart Picker\": { \"v\": [\"Nutikas valija\"] } } }, { \"l\": \"eu\", \"t\": { \"Back to provider selection\": { \"v\": [\"Itzuli hornitzaileen hautapenera\"] }, \"Close Smart Picker\": { \"v\": [\"Itxi hautatzaile adimenduna\"] }, \"Smart Picker\": { \"v\": [\"Hautatzaile adimenduna\"] } } }, { \"l\": \"fa\", \"t\": { \"Back to provider selection\": { \"v\": [\"بازگشت به انتخاب ارائه دهنده\"] }, \"Close Smart Picker\": { \"v\": [\"بستن انتخاب‌گر هوشمند\"] }, \"Smart Picker\": { \"v\": [\"انتخابگر هوشمند\"] } } }, { \"l\": \"fi\", \"t\": { \"Back to provider selection\": { \"v\": [\"Takaisin toimittajavalintaan\"] }, \"Close Smart Picker\": { \"v\": [\"Sulje älykas valitsin\"] }, \"Smart Picker\": { \"v\": [\"Älykäs valitsin\"] } } }, { \"l\": \"fr\", \"t\": { \"Back to provider selection\": { \"v\": [\"Revenir à la sélection du fournisseur\"] }, \"Close Smart Picker\": { \"v\": [\"Fermer le sélecteur intelligent\"] }, \"Smart Picker\": { \"v\": [\"Sélecteur intelligent\"] } } }, { \"l\": \"ga\", \"t\": { \"Back to provider selection\": { \"v\": [\"Ar ais go roghnú soláthróra\"] }, \"Close Smart Picker\": { \"v\": [\"Dún Piocálaí Cliste\"] }, \"Smart Picker\": { \"v\": [\"Roghnóir Cliste\"] } } }, { \"l\": \"gl\", \"t\": { \"Back to provider selection\": { \"v\": [\"Volver á selección do provedor\"] }, \"Close Smart Picker\": { \"v\": [\"Pechar o Selector intelixente\"] }, \"Smart Picker\": { \"v\": [\"Selector intelixente\"] } } }, { \"l\": \"he\", \"t\": { \"Back to provider selection\": { \"v\": [\"חזרה לבחירת ספק\"] }, \"Close Smart Picker\": { \"v\": [\"סגירת הבורר החכם\"] }, \"Smart Picker\": { \"v\": [\"בורר חכם\"] } } }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": { \"Back to provider selection\": { \"v\": [\"Kembali ke pemilihan penyedia\"] }, \"Close Smart Picker\": { \"v\": [\"Tutup Pemilih Cerdas\"] }, \"Smart Picker\": { \"v\": [\"Pemilih Cerdas\"] } } }, { \"l\": \"is\", \"t\": { \"Back to provider selection\": { \"v\": [\"Til baka í val á þjónustuveitu\"] }, \"Close Smart Picker\": { \"v\": [\"Loka snjall-veljara\"] }, \"Smart Picker\": { \"v\": [\"Snjall-veljari\"] } } }, { \"l\": \"it\", \"t\": { \"Back to provider selection\": { \"v\": [\"Torna alla selezione del provider\"] }, \"Close Smart Picker\": { \"v\": [\"Chiudere lo Smart Picker\"] }, \"Smart Picker\": { \"v\": [\"Picker intelligente\"] } } }, { \"l\": \"ja\", \"t\": { \"Back to provider selection\": { \"v\": [\"プロバイダーの選択に戻る\"] }, \"Close Smart Picker\": { \"v\": [\"スマートピッカーを閉じる\"] }, \"Smart Picker\": { \"v\": [\"スマートピッカー\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Back to provider selection\": { \"v\": [\"プロバイダーの選択に戻る\"] }, \"Close Smart Picker\": { \"v\": [\"スマートピッカーを閉じる\"] }, \"Smart Picker\": { \"v\": [\"スマートピッカー\"] } } }, { \"l\": \"ko\", \"t\": { \"Back to provider selection\": { \"v\": [\"제공자 선택으로 돌아가기\"] }, \"Close Smart Picker\": { \"v\": [\"스마트 선택기 닫기\"] }, \"Smart Picker\": { \"v\": [\"스마트 선택기\"] } } }, { \"l\": \"lo\", \"t\": { \"Back to provider selection\": { \"v\": [\"ກັບໄປທີ່ການເລືອກຜູ້ໃຫ້ບໍລິການ\"] }, \"Close Smart Picker\": { \"v\": [\"ປິດໂຕເລືອກອັດສະລິຍະ\"] }, \"Smart Picker\": { \"v\": [\"ໂຕເລືອກອັດສະລິຍະ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Back to provider selection\": { \"v\": [\"Назад до избор на провајдер\"] }, \"Close Smart Picker\": { \"v\": [\"Затвори паметен избирач\"] }, \"Smart Picker\": { \"v\": [\"Паметен избирач\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Back to provider selection\": { \"v\": [\"Tilbake til leverandørvalg\"] }, \"Close Smart Picker\": { \"v\": [\"Lukk Smart Velger\"] }, \"Smart Picker\": { \"v\": [\"Smart Velger\"] } } }, { \"l\": \"nl\", \"t\": { \"Back to provider selection\": { \"v\": [\"Terug naar provider selectie\"] }, \"Close Smart Picker\": { \"v\": [\"Slimme Kiezer sluiten\"] }, \"Smart Picker\": { \"v\": [\"Slimme Kiezer\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Back to provider selection\": { \"v\": [\"Powrót do wyboru dostawcy\"] }, \"Close Smart Picker\": { \"v\": [\"Zamknij inteligentny selektor\"] }, \"Smart Picker\": { \"v\": [\"Inteligentne wybieranie\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Back to provider selection\": { \"v\": [\"Voltar para seleção de provedor\"] }, \"Close Smart Picker\": { \"v\": [\"Fechar Seletor Inteligente\"] }, \"Smart Picker\": { \"v\": [\"Seletor Inteligente\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Back to provider selection\": { \"v\": [\"Voltar à seleção de fornecedor\"] }, \"Close Smart Picker\": { \"v\": ['Fechar \"Smart Picker\"'] }, \"Smart Picker\": { \"v\": [\"Smart Picker\"] } } }, { \"l\": \"ro\", \"t\": { \"Back to provider selection\": { \"v\": [\"Înapoi la selecția providerului\"] }, \"Close Smart Picker\": { \"v\": [\"Închide Smart Picker\"] }, \"Smart Picker\": { \"v\": [\"Smart Picker\"] } } }, { \"l\": \"ru\", \"t\": { \"Back to provider selection\": { \"v\": [\"Вернуться к выбору провайдера\"] }, \"Close Smart Picker\": { \"v\": [\"Закрыть интеллектуальный выбор\"] }, \"Smart Picker\": { \"v\": [\"Умный выбор\"] } } }, { \"l\": \"sk\", \"t\": { \"Back to provider selection\": { \"v\": [\"Späť na výber poskytovateľa\"] }, \"Close Smart Picker\": { \"v\": [\"Zavrieť inteligentný výber\"] }, \"Smart Picker\": { \"v\": [\"Inteligentný výber\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Back to provider selection\": { \"v\": [\"Назад на избор пружаоца\"] }, \"Close Smart Picker\": { \"v\": [\"Затвори паметни бирач\"] }, \"Smart Picker\": { \"v\": [\"Паметни бирач\"] } } }, { \"l\": \"sv\", \"t\": { \"Back to provider selection\": { \"v\": [\"Tillbaka till leverantörsval\"] }, \"Close Smart Picker\": { \"v\": [\"Stäng Smart Picker\"] }, \"Smart Picker\": { \"v\": [\"Smart Picker\"] } } }, { \"l\": \"tr\", \"t\": { \"Back to provider selection\": { \"v\": [\"Hizmet sağlayıcı seçimine dön\"] }, \"Close Smart Picker\": { \"v\": [\"Akıllı seçimi kapat\"] }, \"Smart Picker\": { \"v\": [\"Akıllı seçim\"] } } }, { \"l\": \"uk\", \"t\": { \"Back to provider selection\": { \"v\": [\"Назад до вибору постачальника\"] }, \"Close Smart Picker\": { \"v\": [\"Закрити асистент вибору\"] }, \"Smart Picker\": { \"v\": [\"Асистент вибору\"] } } }, { \"l\": \"uz\", \"t\": { \"Back to provider selection\": { \"v\": [\"Provayder tanloviga qaytish\"] }, \"Close Smart Picker\": { \"v\": [\"Smart Picker-ni yoping\"] }, \"Smart Picker\": { \"v\": [\"Aqlli tanlovchi\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Back to provider selection\": { \"v\": [\"返回至提供者选择列表\"] }, \"Close Smart Picker\": { \"v\": [\"关闭智能拾取器\"] }, \"Smart Picker\": { \"v\": [\"智能拾取器\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Back to provider selection\": { \"v\": [\"回到提供者選擇\"] }, \"Close Smart Picker\": { \"v\": [\"關閉 Smart Picker\"] }, \"Smart Picker\": { \"v\": [\"Smart Picker\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Back to provider selection\": { \"v\": [\"回到提供者選擇\"] }, \"Close Smart Picker\": { \"v\": [\"關閉智慧型挑選器\"] }, \"Smart Picker\": { \"v\": [\"智慧型挑選器\"] } } }];\nconst t14 = [{ \"l\": \"ar\", \"t\": { \"Cancel changes\": { \"v\": [\"إلغاء التغييرات\"] }, \"Confirm changes\": { \"v\": [\"تأكيد التغييرات\"] } } }, { \"l\": \"ast\", \"t\": { \"Cancel changes\": { \"v\": [\"Encaboxar los cambeos\"] }, \"Confirm changes\": { \"v\": [\"Confirmar los cambeos\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancel·la els canvis\"] }, \"Confirm changes\": { \"v\": [\"Confirmeu els canvis\"] } } }, { \"l\": \"cs\", \"t\": { \"Cancel changes\": { \"v\": [\"Zrušit změny\"] }, \"Confirm changes\": { \"v\": [\"Potvrdit změny\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Cancel changes\": { \"v\": [\"Zrušit změny\"] }, \"Confirm changes\": { \"v\": [\"Potvrdit změny\"] } } }, { \"l\": \"da\", \"t\": { \"Cancel changes\": { \"v\": [\"Annuller ændringer\"] }, \"Confirm changes\": { \"v\": [\"Bekræft ændringer\"] } } }, { \"l\": \"de\", \"t\": { \"Cancel changes\": { \"v\": [\"Änderungen verwerfen\"] }, \"Confirm changes\": { \"v\": [\"Änderungen bestätigen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Cancel changes\": { \"v\": [\"Änderungen verwerfen\"] }, \"Confirm changes\": { \"v\": [\"Änderungen bestätigen\"] } } }, { \"l\": \"el\", \"t\": { \"Cancel changes\": { \"v\": [\"Ακύρωση αλλαγών\"] }, \"Confirm changes\": { \"v\": [\"Επιβεβαίωση αλλαγών\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancel changes\"] }, \"Confirm changes\": { \"v\": [\"Confirm changes\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancelar cambios\"] }, \"Confirm changes\": { \"v\": [\"Confirmar cambios\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancelar cambios\"] }, \"Confirm changes\": { \"v\": [\"Confirmar cambios\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancelar cambios\"] }, \"Confirm changes\": { \"v\": [\"Confirmar cambios\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancelar cambios\"] }, \"Confirm changes\": { \"v\": [\"Confirmar cambios\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Cancel changes\": { \"v\": [\"Tühista muudatused\"] }, \"Confirm changes\": { \"v\": [\"Kinnitage muudatused\"] } } }, { \"l\": \"eu\", \"t\": { \"Cancel changes\": { \"v\": [\"Ezeztatu aldaketak\"] }, \"Confirm changes\": { \"v\": [\"Baieztatu aldaketak\"] } } }, { \"l\": \"fa\", \"t\": { \"Cancel changes\": { \"v\": [\"لغو تغییرات\"] }, \"Confirm changes\": { \"v\": [\"تایید تغییرات\"] } } }, { \"l\": \"fi\", \"t\": { \"Cancel changes\": { \"v\": [\"Peruuta muutokset\"] }, \"Confirm changes\": { \"v\": [\"Vahvista muutokset\"] } } }, { \"l\": \"fr\", \"t\": { \"Cancel changes\": { \"v\": [\"Annuler les modifications\"] }, \"Confirm changes\": { \"v\": [\"Confirmer les modifications\"] } } }, { \"l\": \"ga\", \"t\": { \"Cancel changes\": { \"v\": [\"Cealaigh athruithe\"] }, \"Confirm changes\": { \"v\": [\"Deimhnigh na hathruithe\"] } } }, { \"l\": \"gl\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancelar os cambios\"] }, \"Confirm changes\": { \"v\": [\"Confirma os cambios\"] } } }, { \"l\": \"he\", \"t\": { \"Cancel changes\": { \"v\": [\"ביטול שינויים\"] }, \"Confirm changes\": { \"v\": [\"אישור השינויים\"] } } }, { \"l\": \"hu\", \"t\": { \"Cancel changes\": { \"v\": [\"Változtatások elvetése\"] }, \"Confirm changes\": { \"v\": [\"Változtatások megerősítése\"] } } }, { \"l\": \"id\", \"t\": { \"Cancel changes\": { \"v\": [\"Batalkan perubahan\"] }, \"Confirm changes\": { \"v\": [\"Konfirmasikan perubahan\"] } } }, { \"l\": \"is\", \"t\": { \"Cancel changes\": { \"v\": [\"Hætta við breytingar\"] }, \"Confirm changes\": { \"v\": [\"Staðfesta breytingar\"] } } }, { \"l\": \"it\", \"t\": { \"Cancel changes\": { \"v\": [\"Annulla modifiche\"] }, \"Confirm changes\": { \"v\": [\"Conferma modifiche\"] } } }, { \"l\": \"ja\", \"t\": { \"Cancel changes\": { \"v\": [\"変更をキャンセル\"] }, \"Confirm changes\": { \"v\": [\"変更を承認\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Cancel changes\": { \"v\": [\"変更をキャンセル\"] }, \"Confirm changes\": { \"v\": [\"変更を承認\"] } } }, { \"l\": \"ko\", \"t\": { \"Cancel changes\": { \"v\": [\"변경 취소\"] }, \"Confirm changes\": { \"v\": [\"변경 사항 확인\"] } } }, { \"l\": \"lo\", \"t\": { \"Cancel changes\": { \"v\": [\"ຍົກເລີກການປ່ຽນແປງ\"] }, \"Confirm changes\": { \"v\": [\"ຢືນຢັນການປ່ຽນແປງ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Cancel changes\": { \"v\": [\"Откажи ги промените\"] }, \"Confirm changes\": { \"v\": [\"Потврди ги промените\"] } } }, { \"l\": \"my\", \"t\": { \"Cancel changes\": { \"v\": [\"ပြောင်းလဲမှုများ ပယ်ဖျက်ရန်\"] }, \"Confirm changes\": { \"v\": [\"ပြောင်းလဲမှုများ အတည်ပြုရန်\"] } } }, { \"l\": \"nb\", \"t\": { \"Cancel changes\": { \"v\": [\"Avbryt endringer\"] }, \"Confirm changes\": { \"v\": [\"Bekreft endringer\"] } } }, { \"l\": \"nl\", \"t\": { \"Cancel changes\": { \"v\": [\"Wijzigingen annuleren\"] }, \"Confirm changes\": { \"v\": [\"Wijzigingen bevestigen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Cancel changes\": { \"v\": [\"Anuluj zmiany\"] }, \"Confirm changes\": { \"v\": [\"Potwierdź zmiany\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancelar alterações\"] }, \"Confirm changes\": { \"v\": [\"Confirmar alterações\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancelar alterações\"] }, \"Confirm changes\": { \"v\": [\"Confirmar alterações\"] } } }, { \"l\": \"ro\", \"t\": { \"Cancel changes\": { \"v\": [\"Anulează modificările\"] }, \"Confirm changes\": { \"v\": [\"Confirmați modificările\"] } } }, { \"l\": \"ru\", \"t\": { \"Cancel changes\": { \"v\": [\"Отменить изменения\"] }, \"Confirm changes\": { \"v\": [\"Подтвердить изменения\"] } } }, { \"l\": \"sk\", \"t\": { \"Cancel changes\": { \"v\": [\"Zrušiť zmeny\"] }, \"Confirm changes\": { \"v\": [\"Potvrdiť zmeny\"] } } }, { \"l\": \"sl\", \"t\": { \"Cancel changes\": { \"v\": [\"Prekliči spremembe\"] }, \"Confirm changes\": { \"v\": [\"Potrdi spremembe\"] } } }, { \"l\": \"sr\", \"t\": { \"Cancel changes\": { \"v\": [\"Откажи измене\"] }, \"Confirm changes\": { \"v\": [\"Потврдите измене\"] } } }, { \"l\": \"sv\", \"t\": { \"Cancel changes\": { \"v\": [\"Avbryt ändringar\"] }, \"Confirm changes\": { \"v\": [\"Bekräfta ändringar\"] } } }, { \"l\": \"tr\", \"t\": { \"Cancel changes\": { \"v\": [\"Değişiklikleri iptal et\"] }, \"Confirm changes\": { \"v\": [\"Değişiklikleri onayla\"] } } }, { \"l\": \"uk\", \"t\": { \"Cancel changes\": { \"v\": [\"Скасувати зміни\"] }, \"Confirm changes\": { \"v\": [\"Підтвердити зміни\"] } } }, { \"l\": \"uz\", \"t\": { \"Cancel changes\": { \"v\": [\"O'zgarishlarni bekor qilish\"] }, \"Confirm changes\": { \"v\": [\"O'zgarishlarni tasdiqlang\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Cancel changes\": { \"v\": [\"取消更改\"] }, \"Confirm changes\": { \"v\": [\"确认更改\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Cancel changes\": { \"v\": [\"取消更改\"] }, \"Confirm changes\": { \"v\": [\"確認更改\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Cancel changes\": { \"v\": [\"取消變更\"] }, \"Confirm changes\": { \"v\": [\"確認變更\"] } } }];\nconst t15 = [{ \"l\": \"ar\", \"t\": { \"Change name\": { \"v\": [\"تغيير الاسم\"] }, \"Close sidebar\": { \"v\": [\"قفل الشريط الجانبي\"] }, \"Favorite\": { \"v\": [\"المفضلة\"] }, \"Open sidebar\": { \"v\": [\"إفتَح الشريط الجانبي\"] } } }, { \"l\": \"ast\", \"t\": { \"Change name\": { \"v\": [\"Camudar el nome\"] }, \"Close sidebar\": { \"v\": [\"Zarrar la barra llateral\"] }, \"Favorite\": { \"v\": [\"Favoritu\"] }, \"Open sidebar\": { \"v\": [\"Abrir la barra llateral\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Close sidebar\": { \"v\": [\"Tancar la barra lateral\"] }, \"Favorite\": { \"v\": [\"Preferit\"] } } }, { \"l\": \"cs\", \"t\": { \"Change name\": { \"v\": [\"Změnit název\"] }, \"Close sidebar\": { \"v\": [\"Zavřít postranní panel\"] }, \"Favorite\": { \"v\": [\"Oblíbené\"] }, \"Open sidebar\": { \"v\": [\"Otevřít postranní panel\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Change name\": { \"v\": [\"Změnit název\"] }, \"Close sidebar\": { \"v\": [\"Zavřít postranní panel\"] }, \"Favorite\": { \"v\": [\"Oblíbené\"] } } }, { \"l\": \"da\", \"t\": { \"Change name\": { \"v\": [\"Ændre navn\"] }, \"Close sidebar\": { \"v\": [\"Luk sidepanel\"] }, \"Favorite\": { \"v\": [\"Favorit\"] }, \"Open sidebar\": { \"v\": [\"Åbn sidepanel\"] } } }, { \"l\": \"de\", \"t\": { \"Change name\": { \"v\": [\"Namen ändern\"] }, \"Close sidebar\": { \"v\": [\"Seitenleiste schließen\"] }, \"Favorite\": { \"v\": [\"Favorit\"] }, \"Open sidebar\": { \"v\": [\"Seitenleiste öffnen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Change name\": { \"v\": [\"Namen ändern\"] }, \"Close sidebar\": { \"v\": [\"Seitenleiste schließen\"] }, \"Favorite\": { \"v\": [\"Favorit\"] }, \"Open sidebar\": { \"v\": [\"Seitenleiste öffnen\"] } } }, { \"l\": \"el\", \"t\": { \"Change name\": { \"v\": [\"Αλλαγή ονόματος\"] }, \"Close sidebar\": { \"v\": [\"Κλείσιμο πλευρικής μπάρας\"] }, \"Favorite\": { \"v\": [\"Αγαπημένα\"] }, \"Open sidebar\": { \"v\": [\"Άνοιγμα πλευρικής μπάρας\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Change name\": { \"v\": [\"Change name\"] }, \"Close sidebar\": { \"v\": [\"Close sidebar\"] }, \"Favorite\": { \"v\": [\"Favourite\"] }, \"Open sidebar\": { \"v\": [\"Open sidebar\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Change name\": { \"v\": [\"Cambiar nombre\"] }, \"Close sidebar\": { \"v\": [\"Cerrar barra lateral\"] }, \"Favorite\": { \"v\": [\"Favorito\"] }, \"Open sidebar\": { \"v\": [\"Abrir barra lateral\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Change name\": { \"v\": [\"Cambiar nombre\"] }, \"Close sidebar\": { \"v\": [\"Cerrar barra lateral\"] }, \"Favorite\": { \"v\": [\"Favorito\"] }, \"Open sidebar\": { \"v\": [\"Abrir barra lateral\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Change name\": { \"v\": [\"Cambiar nombre\"] }, \"Close sidebar\": { \"v\": [\"Cerrar barra lateral\"] }, \"Favorite\": { \"v\": [\"Favorito\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Change name\": { \"v\": [\"Cambiar nombre\"] }, \"Close sidebar\": { \"v\": [\"Cerrar barra lateral\"] }, \"Favorite\": { \"v\": [\"Favorito\"] }, \"Open sidebar\": { \"v\": [\"Abrir barra lateral\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Change name\": { \"v\": [\"Muuda nime\"] }, \"Close sidebar\": { \"v\": [\"Sulge külgriba\"] }, \"Favorite\": { \"v\": [\"Lemmik\"] }, \"Open sidebar\": { \"v\": [\"Ava külgriba\"] } } }, { \"l\": \"eu\", \"t\": { \"Change name\": { \"v\": [\"Aldatu izena\"] }, \"Close sidebar\": { \"v\": [\"Itxi albo-barra\"] }, \"Favorite\": { \"v\": [\"Gogokoa\"] } } }, { \"l\": \"fa\", \"t\": { \"Change name\": { \"v\": [\"تغییر نام\"] }, \"Close sidebar\": { \"v\": [\"بستن نوار کناری\"] }, \"Favorite\": { \"v\": [\"مورد علاقه\"] }, \"Open sidebar\": { \"v\": [\"باز کردن نوار کنار\"] } } }, { \"l\": \"fi\", \"t\": { \"Change name\": { \"v\": [\"Vaihda nimi\"] }, \"Close sidebar\": { \"v\": [\"Sulje sivupalkki\"] }, \"Favorite\": { \"v\": [\"Suosikki\"] }, \"Open sidebar\": { \"v\": [\"Avaa sivupalkki\"] } } }, { \"l\": \"fr\", \"t\": { \"Change name\": { \"v\": [\"Modifier le nom\"] }, \"Close sidebar\": { \"v\": [\"Fermer la barre latérale\"] }, \"Favorite\": { \"v\": [\"Favori\"] }, \"Open sidebar\": { \"v\": [\"Ouvrir la barre latérale\"] } } }, { \"l\": \"ga\", \"t\": { \"Change name\": { \"v\": [\"Athrú ainm\"] }, \"Close sidebar\": { \"v\": [\"Dún barra taoibh\"] }, \"Favorite\": { \"v\": [\"is fearr leat\"] }, \"Open sidebar\": { \"v\": [\"Oscail barra taoibh\"] } } }, { \"l\": \"gl\", \"t\": { \"Change name\": { \"v\": [\"Cambiar o nome\"] }, \"Close sidebar\": { \"v\": [\"Pechar a barra lateral\"] }, \"Favorite\": { \"v\": [\"Favorito\"] }, \"Open sidebar\": { \"v\": [\"Abrir a barra lateral\"] } } }, { \"l\": \"he\", \"t\": { \"Change name\": { \"v\": [\"החלפת שם\"] }, \"Close sidebar\": { \"v\": [\"סגירת סרגל הצד\"] }, \"Favorite\": { \"v\": [\"למועדפים\"] } } }, { \"l\": \"hu\", \"t\": { \"Close sidebar\": { \"v\": [\"Oldalsáv bezárása\"] }, \"Favorite\": { \"v\": [\"Kedvenc\"] } } }, { \"l\": \"id\", \"t\": { \"Change name\": { \"v\": [\"Ubah nama\"] }, \"Close sidebar\": { \"v\": [\"Tutup bilah sisi\"] }, \"Favorite\": { \"v\": [\"Favorit\"] } } }, { \"l\": \"is\", \"t\": { \"Change name\": { \"v\": [\"Breyta nafni\"] }, \"Close sidebar\": { \"v\": [\"Loka hliðarstiku\"] }, \"Favorite\": { \"v\": [\"Eftirlæti\"] }, \"Open sidebar\": { \"v\": [\"Opna hliðarspjald\"] } } }, { \"l\": \"it\", \"t\": { \"Change name\": { \"v\": [\"Cambia nome\"] }, \"Close sidebar\": { \"v\": [\"Chiudi la barra laterale\"] }, \"Favorite\": { \"v\": [\"Preferito\"] } } }, { \"l\": \"ja\", \"t\": { \"Change name\": { \"v\": [\"名前の変更\"] }, \"Close sidebar\": { \"v\": [\"サイドバーを閉じる\"] }, \"Favorite\": { \"v\": [\"お気に入り\"] }, \"Open sidebar\": { \"v\": [\"サイドバーを開く\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Change name\": { \"v\": [\"名前の変更\"] }, \"Close sidebar\": { \"v\": [\"サイドバーを閉じる\"] }, \"Favorite\": { \"v\": [\"お気に入り\"] }, \"Open sidebar\": { \"v\": [\"サイドバーを開く\"] } } }, { \"l\": \"ko\", \"t\": { \"Change name\": { \"v\": [\"이름 변경\"] }, \"Close sidebar\": { \"v\": [\"사이드바 닫기\"] }, \"Favorite\": { \"v\": [\"즐겨찾기\"] }, \"Open sidebar\": { \"v\": [\"사이드바 열기\"] } } }, { \"l\": \"lo\", \"t\": { \"Change name\": { \"v\": [\"ປ່ຽນຊື່\"] }, \"Close sidebar\": { \"v\": [\"ປິດແຖບດ້ານຂ້າງ\"] }, \"Favorite\": { \"v\": [\"ລາຍການທີ່ມັກ\"] }, \"Open sidebar\": { \"v\": [\"ເປີດແຖບດ້ານຂ້າງ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Change name\": { \"v\": [\"Промени име\"] }, \"Close sidebar\": { \"v\": [\"Затвори странична лента\"] }, \"Favorite\": { \"v\": [\"Фаворити\"] }, \"Open sidebar\": { \"v\": [\"Отвори странична лента\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Change name\": { \"v\": [\"Endre navn\"] }, \"Close sidebar\": { \"v\": [\"Lukk sidepanel\"] }, \"Favorite\": { \"v\": [\"Favoritt\"] }, \"Open sidebar\": { \"v\": [\"Åpne sidefelt\"] } } }, { \"l\": \"nl\", \"t\": { \"Change name\": { \"v\": [\"Naam wijzigen\"] }, \"Close sidebar\": { \"v\": [\"Zijbalk sluiten\"] }, \"Favorite\": { \"v\": [\"Favoriet\"] }, \"Open sidebar\": { \"v\": [\"Zijbalk openen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Change name\": { \"v\": [\"Zmień nazwę\"] }, \"Close sidebar\": { \"v\": [\"Zamknij pasek boczny\"] }, \"Favorite\": { \"v\": [\"Ulubiony\"] }, \"Open sidebar\": { \"v\": [\"Otwórz pasek boczny\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Change name\": { \"v\": [\"Mudar nome\"] }, \"Close sidebar\": { \"v\": [\"Fechar barra lateral\"] }, \"Favorite\": { \"v\": [\"Favorito\"] }, \"Open sidebar\": { \"v\": [\"Abrir barra lateral\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Change name\": { \"v\": [\"Alterar nome\"] }, \"Close sidebar\": { \"v\": [\"Fechar barra lateral\"] }, \"Favorite\": { \"v\": [\"Favorito\"] }, \"Open sidebar\": { \"v\": [\"Abrir barra lateral\"] } } }, { \"l\": \"ro\", \"t\": { \"Change name\": { \"v\": [\"Modifică numele\"] }, \"Close sidebar\": { \"v\": [\"Închide bara laterală\"] }, \"Favorite\": { \"v\": [\"Favorit\"] } } }, { \"l\": \"ru\", \"t\": { \"Change name\": { \"v\": [\"Изменить имя\"] }, \"Close sidebar\": { \"v\": [\"Закрыть сайдбар\"] }, \"Favorite\": { \"v\": [\"Избранное\"] }, \"Open sidebar\": { \"v\": [\"Открыть боковую панель\"] } } }, { \"l\": \"sk\", \"t\": { \"Change name\": { \"v\": [\"Zmeniť názov\"] }, \"Close sidebar\": { \"v\": [\"Zavrieť bočný panel\"] }, \"Favorite\": { \"v\": [\"Obľúbené\"] }, \"Open sidebar\": { \"v\": [\"Otvoriť bočný panel\"] } } }, { \"l\": \"sl\", \"t\": { \"Close sidebar\": { \"v\": [\"Zapri stransko vrstico\"] }, \"Favorite\": { \"v\": [\"Priljubljeno\"] } } }, { \"l\": \"sr\", \"t\": { \"Change name\": { \"v\": [\"Измени назив\"] }, \"Close sidebar\": { \"v\": [\"Затвори бочну траку\"] }, \"Favorite\": { \"v\": [\"Омиљени\"] }, \"Open sidebar\": { \"v\": [\"Отвори бочну траку\"] } } }, { \"l\": \"sv\", \"t\": { \"Change name\": { \"v\": [\"Ändra namn\"] }, \"Close sidebar\": { \"v\": [\"Stäng sidofältet\"] }, \"Favorite\": { \"v\": [\"Favorit\"] }, \"Open sidebar\": { \"v\": [\"Öppna sidofältet\"] } } }, { \"l\": \"tr\", \"t\": { \"Change name\": { \"v\": [\"Adı değiştir\"] }, \"Close sidebar\": { \"v\": [\"Yan çubuğu kapat\"] }, \"Favorite\": { \"v\": [\"Sık kullanılanlara ekle\"] }, \"Open sidebar\": { \"v\": [\"Yan çubuğu aç\"] } } }, { \"l\": \"uk\", \"t\": { \"Change name\": { \"v\": [\"Змінити назву\"] }, \"Close sidebar\": { \"v\": [\"Закрити бічну панель\"] }, \"Favorite\": { \"v\": [\"Із зірочкою\"] }, \"Open sidebar\": { \"v\": [\"Бокове меню\"] } } }, { \"l\": \"uz\", \"t\": { \"Change name\": { \"v\": [\"Ismni o'zgartirish\"] }, \"Close sidebar\": { \"v\": [\"Yon panelni yoping\"] }, \"Favorite\": { \"v\": [\"Tanlangan\"] }, \"Open sidebar\": { \"v\": [\"Yon panelni oching\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Change name\": { \"v\": [\"修改名称\"] }, \"Close sidebar\": { \"v\": [\"关闭侧边栏\"] }, \"Favorite\": { \"v\": [\"喜爱\"] }, \"Open sidebar\": { \"v\": [\"打开侧边栏\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Change name\": { \"v\": [\"更改名稱\"] }, \"Close sidebar\": { \"v\": [\"關閉側邊欄\"] }, \"Favorite\": { \"v\": [\"喜愛\"] }, \"Open sidebar\": { \"v\": [\"打開側邊欄\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Change name\": { \"v\": [\"變更名稱\"] }, \"Close sidebar\": { \"v\": [\"關閉側邊欄\"] }, \"Favorite\": { \"v\": [\"最愛\"] }, \"Open sidebar\": { \"v\": [\"開啟側邊欄\"] } } }];\nconst t16 = [{ \"l\": \"ar\", \"t\": { \"Clear search\": { \"v\": [\"محو البحث\"] } } }, { \"l\": \"ast\", \"t\": { \"Clear search\": { \"v\": [\"Borrar la busca\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Clear search\": { \"v\": [\"Vyčistit vyhledávání\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Clear search\": { \"v\": [\"Vyčistit vyhledávání\"] } } }, { \"l\": \"da\", \"t\": { \"Clear search\": { \"v\": [\"Ryd søgning\"] } } }, { \"l\": \"de\", \"t\": { \"Clear search\": { \"v\": [\"Suche leeren\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Clear search\": { \"v\": [\"Suche leeren\"] } } }, { \"l\": \"el\", \"t\": { \"Clear search\": { \"v\": [\"Εκκαθάριση αναζήτησης\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Clear search\": { \"v\": [\"Clear search\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Clear search\": { \"v\": [\"Limpiar búsqueda\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Clear search\": { \"v\": [\"Limpiar búsqueda\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Clear search\": { \"v\": [\"Limpiar búsqueda\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Clear search\": { \"v\": [\"Limpiar búsqueda\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Clear search\": { \"v\": [\"Tühjenda otsing\"] } } }, { \"l\": \"eu\", \"t\": { \"Clear search\": { \"v\": [\"Garbitu bilaketa\"] } } }, { \"l\": \"fa\", \"t\": { \"Clear search\": { \"v\": [\"پاک کردن جستجو\"] } } }, { \"l\": \"fi\", \"t\": { \"Clear search\": { \"v\": [\"Tyhjennä haku\"] } } }, { \"l\": \"fr\", \"t\": { \"Clear search\": { \"v\": [\"Effacer la recherche\"] } } }, { \"l\": \"ga\", \"t\": { \"Clear search\": { \"v\": [\"Glan cuardach\"] } } }, { \"l\": \"gl\", \"t\": { \"Clear search\": { \"v\": [\"Limpar a busca\"] } } }, { \"l\": \"he\", \"t\": { \"Clear search\": { \"v\": [\"פינוי חיפוש\"] } } }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": { \"Clear search\": { \"v\": [\"Bersihkan pencarian\"] } } }, { \"l\": \"is\", \"t\": { \"Clear search\": { \"v\": [\"Hreinsa leit\"] } } }, { \"l\": \"it\", \"t\": { \"Clear search\": { \"v\": [\"online\"] } } }, { \"l\": \"ja\", \"t\": { \"Clear search\": { \"v\": [\"検索をクリア\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Clear search\": { \"v\": [\"検索をクリア\"] } } }, { \"l\": \"ko\", \"t\": { \"Clear search\": { \"v\": [\"검색 지우기\"] } } }, { \"l\": \"lo\", \"t\": { \"Clear search\": { \"v\": [\"ລຶບການຄົ້ນຫາ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Clear search\": { \"v\": [\"Исчисти пребарување\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Clear search\": { \"v\": [\"Tøm søk\"] } } }, { \"l\": \"nl\", \"t\": { \"Clear search\": { \"v\": [\"Zoekopdracht wissen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Clear search\": { \"v\": [\"Wyczyść wyszukiwanie\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Clear search\": { \"v\": [\"Limpar pesquisa\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Clear search\": { \"v\": [\"Limpar pesquisa\"] } } }, { \"l\": \"ro\", \"t\": { \"Clear search\": { \"v\": [\"Șterge căutarea\"] } } }, { \"l\": \"ru\", \"t\": { \"Clear search\": { \"v\": [\"Очистить поиск\"] } } }, { \"l\": \"sk\", \"t\": { \"Clear search\": { \"v\": [\"Vymazať vyhľadávanie\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Clear search\": { \"v\": [\"Обриши претрагу\"] } } }, { \"l\": \"sv\", \"t\": { \"Clear search\": { \"v\": [\"Rensa sökning\"] } } }, { \"l\": \"tr\", \"t\": { \"Clear search\": { \"v\": [\"Aramayı temizle\"] } } }, { \"l\": \"uk\", \"t\": { \"Clear search\": { \"v\": [\"Очистити пошук\"] } } }, { \"l\": \"uz\", \"t\": { \"Clear search\": { \"v\": [\"Qidiruvni tozalash\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Clear search\": { \"v\": [\"清除搜索\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Clear search\": { \"v\": [\"清除搜索\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Clear search\": { \"v\": [\"清除搜尋\"] } } }];\nconst t17 = [{ \"l\": \"ar\", \"t\": { \"Clear selected\": { \"v\": [\"محو المحدّد\"] }, \"Deselect {option}\": { \"v\": [\"إلغاء تحديد {option}\"] }, \"No results\": { \"v\": [\"ليس هناك أية نتيجة\"] }, \"Options\": { \"v\": [\"خيارات\"] } } }, { \"l\": \"ast\", \"t\": { \"Clear selected\": { \"v\": [\"Borrar lo seleicionao\"] }, \"Deselect {option}\": { \"v\": [\"Deseleicionar «{option}»\"] }, \"No results\": { \"v\": [\"Nun hai nengún resultáu\"] }, \"Options\": { \"v\": [\"Opciones\"] } } }, { \"l\": \"br\", \"t\": { \"No results\": { \"v\": [\"Disoc'h ebet\"] } } }, { \"l\": \"ca\", \"t\": { \"No results\": { \"v\": [\"Sense resultats\"] } } }, { \"l\": \"cs\", \"t\": { \"Clear selected\": { \"v\": [\"Vyčistit vybrané\"] }, \"Deselect {option}\": { \"v\": [\"Zrušit výběr {option}\"] }, \"No results\": { \"v\": [\"Nic nenalezeno\"] }, \"Options\": { \"v\": [\"Možnosti\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Clear selected\": { \"v\": [\"Vyčistit vybrané\"] }, \"Deselect {option}\": { \"v\": [\"Zrušit výběr {option}\"] }, \"No results\": { \"v\": [\"Nic nenalezeno\"] }, \"Options\": { \"v\": [\"Možnosti\"] } } }, { \"l\": \"da\", \"t\": { \"Clear selected\": { \"v\": [\"Ryd valgt\"] }, \"Deselect {option}\": { \"v\": [\"Fravælg {option}\"] }, \"No results\": { \"v\": [\"Ingen resultater\"] }, \"Options\": { \"v\": [\"Indstillinger\"] } } }, { \"l\": \"de\", \"t\": { \"Clear selected\": { \"v\": [\"Auswahl leeren\"] }, \"Deselect {option}\": { \"v\": [\"{option} abwählen\"] }, \"No results\": { \"v\": [\"Keine Ergebnisse\"] }, \"Options\": { \"v\": [\"Optionen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Clear selected\": { \"v\": [\"Auswahl leeren\"] }, \"Deselect {option}\": { \"v\": [\"{option} abwählen\"] }, \"No results\": { \"v\": [\"Keine Ergebnisse\"] }, \"Options\": { \"v\": [\"Optionen\"] } } }, { \"l\": \"el\", \"t\": { \"Clear selected\": { \"v\": [\"Εκκαθάριση επιλογής\"] }, \"Deselect {option}\": { \"v\": [\"Αποεπιλογή {option}\"] }, \"No results\": { \"v\": [\"Κανένα αποτέλεσμα\"] }, \"Options\": { \"v\": [\"Επιλογές\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Clear selected\": { \"v\": [\"Clear selected\"] }, \"Deselect {option}\": { \"v\": [\"Deselect {option}\"] }, \"No results\": { \"v\": [\"No results\"] }, \"Options\": { \"v\": [\"Options\"] } } }, { \"l\": \"eo\", \"t\": { \"No results\": { \"v\": [\"La rezulto forestas\"] } } }, { \"l\": \"es\", \"t\": { \"Clear selected\": { \"v\": [\"Limpiar selección\"] }, \"Deselect {option}\": { \"v\": [\"Deseleccionar {option}\"] }, \"No results\": { \"v\": [\" Ningún resultado\"] }, \"Options\": { \"v\": [\"Opciones\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Clear selected\": { \"v\": [\"Limpiar selección\"] }, \"Deselect {option}\": { \"v\": [\"Deseleccionar {option}\"] }, \"No results\": { \"v\": [\"Sin resultados\"] }, \"Options\": { \"v\": [\"Opciones\"] } } }, { \"l\": \"es-EC\", \"t\": { \"No results\": { \"v\": [\"Sin resultados\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Clear selected\": { \"v\": [\"Limpiar selección\"] }, \"Deselect {option}\": { \"v\": [\"Deseleccionar {option}\"] }, \"No results\": { \"v\": [\"Sin resultados\"] }, \"Options\": { \"v\": [\"Opciones\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Clear selected\": { \"v\": [\"Tühjenad valik\"] }, \"Deselect {option}\": { \"v\": [\"Eemalda {option} valik\"] }, \"No results\": { \"v\": [\"Tulemusi pole\"] }, \"Options\": { \"v\": [\"Valikud\"] } } }, { \"l\": \"eu\", \"t\": { \"No results\": { \"v\": [\"Emaitzarik ez\"] } } }, { \"l\": \"fa\", \"t\": { \"Clear selected\": { \"v\": [\"پاک کردن مورد انتخاب شده\"] }, \"Deselect {option}\": { \"v\": [\"لغو انتخاب {option}\"] }, \"No results\": { \"v\": [\"بدون هیچ نتیجه‌ای\"] }, \"Options\": { \"v\": [\"گزینه‌ها\"] } } }, { \"l\": \"fi\", \"t\": { \"Clear selected\": { \"v\": [\"Tyhjennä valitut\"] }, \"Deselect {option}\": { \"v\": [\"Poista valinta {option}\"] }, \"No results\": { \"v\": [\"Ei tuloksia\"] }, \"Options\": { \"v\": [\"Valinnat\"] } } }, { \"l\": \"fr\", \"t\": { \"Clear selected\": { \"v\": [\"Vider la sélection\"] }, \"Deselect {option}\": { \"v\": [\"Désélectionner {option}\"] }, \"No results\": { \"v\": [\"Aucun résultat\"] }, \"Options\": { \"v\": [\"Options\"] } } }, { \"l\": \"ga\", \"t\": { \"Clear selected\": { \"v\": [\"Glan roghnaithe\"] }, \"Deselect {option}\": { \"v\": [\"Díroghnaigh {option}\"] }, \"No results\": { \"v\": [\"Gan torthaí\"] }, \"Options\": { \"v\": [\"Roghanna\"] } } }, { \"l\": \"gl\", \"t\": { \"Clear selected\": { \"v\": [\"Limpar o seleccionado\"] }, \"Deselect {option}\": { \"v\": [\"Desmarcar {option}\"] }, \"No results\": { \"v\": [\"Sen resultados\"] }, \"Options\": { \"v\": [\"Opcións\"] } } }, { \"l\": \"he\", \"t\": { \"No results\": { \"v\": [\"אין תוצאות\"] } } }, { \"l\": \"hu\", \"t\": { \"No results\": { \"v\": [\"Nincs találat\"] } } }, { \"l\": \"id\", \"t\": { \"Clear selected\": { \"v\": [\"Hapus terpilih\"] }, \"Deselect {option}\": { \"v\": [\"Batalkan pemilihan {option}\"] }, \"No results\": { \"v\": [\"Tidak ada hasil\"] } } }, { \"l\": \"is\", \"t\": { \"Clear selected\": { \"v\": [\"Hreinsa valið\"] }, \"Deselect {option}\": { \"v\": [\"Afvelja {option}\"] }, \"No results\": { \"v\": [\"Engar niðurstöður\"] }, \"Options\": { \"v\": [\"Valkostir\"] } } }, { \"l\": \"it\", \"t\": { \"Clear selected\": { \"v\": [\"Cancella selezionati\"] }, \"Deselect {option}\": { \"v\": [\"Deselezionare {option}\"] }, \"No results\": { \"v\": [\"Nessun risultato\"] } } }, { \"l\": \"ja\", \"t\": { \"Clear selected\": { \"v\": [\"選択を解除\"] }, \"Deselect {option}\": { \"v\": [\"{option} の選択を解除\"] }, \"No results\": { \"v\": [\"結果無し\"] }, \"Options\": { \"v\": [\"オプション\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Clear selected\": { \"v\": [\"選択を解除\"] }, \"Deselect {option}\": { \"v\": [\"{option} の選択を解除\"] }, \"No results\": { \"v\": [\"結果無し\"] }, \"Options\": { \"v\": [\"オプション\"] } } }, { \"l\": \"ko\", \"t\": { \"Clear selected\": { \"v\": [\"선택 항목 지우기\"] }, \"Deselect {option}\": { \"v\": [\"{option} 선택 해제\"] }, \"No results\": { \"v\": [\"결과 없음\"] }, \"Options\": { \"v\": [\"옵션\"] } } }, { \"l\": \"lo\", \"t\": { \"Clear selected\": { \"v\": [\"ລຶບສິ່ງທີ່ເລືອກ\"] }, \"Deselect {option}\": { \"v\": [\"ຍົກເລີກການເລືອກ {option}\"] }, \"No results\": { \"v\": [\"ບໍ່ມີຜົນລັບ\"] }, \"Options\": { \"v\": [\"ຕົວເລືອກ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"No results\": { \"v\": [\"Nėra rezultatų\"] } } }, { \"l\": \"lv\", \"t\": { \"No results\": { \"v\": [\"Nav rezultātu\"] } } }, { \"l\": \"mk\", \"t\": { \"Clear selected\": { \"v\": [\"Исчисти означени\"] }, \"Deselect {option}\": { \"v\": [\"Откажи избор на {option}\"] }, \"No results\": { \"v\": [\"Нема резултати\"] }, \"Options\": { \"v\": [\"Опции\"] } } }, { \"l\": \"my\", \"t\": { \"No results\": { \"v\": [\"ရလဒ်မရှိပါ\"] } } }, { \"l\": \"nb\", \"t\": { \"Clear selected\": { \"v\": [\"Tøm merket\"] }, \"Deselect {option}\": { \"v\": [\"Opphev valg {option}\"] }, \"No results\": { \"v\": [\"Ingen resultater\"] }, \"Options\": { \"v\": [\"Alternativer\"] } } }, { \"l\": \"nl\", \"t\": { \"Clear selected\": { \"v\": [\"Selectie wissen\"] }, \"Deselect {option}\": { \"v\": [\"Selectie {option} opheffen\"] }, \"No results\": { \"v\": [\"Geen resultaten\"] }, \"Options\": { \"v\": [\"Opties\"] } } }, { \"l\": \"oc\", \"t\": { \"No results\": { \"v\": [\"Cap de resultat\"] } } }, { \"l\": \"pl\", \"t\": { \"Clear selected\": { \"v\": [\"Wyczyść wybrane\"] }, \"Deselect {option}\": { \"v\": [\"Odznacz {option}\"] }, \"No results\": { \"v\": [\"Brak wyników\"] }, \"Options\": { \"v\": [\"Opcje\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Clear selected\": { \"v\": [\"Limpar selecionado\"] }, \"Deselect {option}\": { \"v\": [\"Desselecionar {option}\"] }, \"No results\": { \"v\": [\"Sem resultados\"] }, \"Options\": { \"v\": [\"Opções\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Clear selected\": { \"v\": [\"Limpeza selecionada\"] }, \"Deselect {option}\": { \"v\": [\"Desmarcar {option}\"] }, \"No results\": { \"v\": [\"Sem resultados\"] }, \"Options\": { \"v\": [\"Opções\"] } } }, { \"l\": \"ro\", \"t\": { \"Clear selected\": { \"v\": [\"Șterge selecția\"] }, \"Deselect {option}\": { \"v\": [\"Deselctează {option}\"] }, \"No results\": { \"v\": [\"Nu există rezultate\"] } } }, { \"l\": \"ru\", \"t\": { \"Clear selected\": { \"v\": [\"Очистить выбранный\"] }, \"Deselect {option}\": { \"v\": [\"Отменить выбор {option}\"] }, \"No results\": { \"v\": [\"Результаты отсуствуют\"] }, \"Options\": { \"v\": [\"Варианты\"] } } }, { \"l\": \"sk\", \"t\": { \"Clear selected\": { \"v\": [\"Vymazať vybraté\"] }, \"Deselect {option}\": { \"v\": [\"Zrušiť výber {option}\"] }, \"No results\": { \"v\": [\"Žiadne výsledky\"] }, \"Options\": { \"v\": [\"možnosti\"] } } }, { \"l\": \"sl\", \"t\": { \"No results\": { \"v\": [\"Ni zadetkov\"] } } }, { \"l\": \"sr\", \"t\": { \"Clear selected\": { \"v\": [\"Обриши изабрано\"] }, \"Deselect {option}\": { \"v\": [\"Уклони избор {option}\"] }, \"No results\": { \"v\": [\"Нема резултата\"] }, \"Options\": { \"v\": [\"Опције\"] } } }, { \"l\": \"sv\", \"t\": { \"Clear selected\": { \"v\": [\"Rensa val\"] }, \"Deselect {option}\": { \"v\": [\"Avmarkera {option}\"] }, \"No results\": { \"v\": [\"Inga resultat\"] }, \"Options\": { \"v\": [\"Alternativ\"] } } }, { \"l\": \"tr\", \"t\": { \"Clear selected\": { \"v\": [\"Seçilmişleri temizle\"] }, \"Deselect {option}\": { \"v\": [\"{option} bırak\"] }, \"No results\": { \"v\": [\"Herhangi bir sonuç bulunamadı\"] }, \"Options\": { \"v\": [\"Seçenekler\"] } } }, { \"l\": \"uk\", \"t\": { \"Clear selected\": { \"v\": [\"Очистити вибране\"] }, \"Deselect {option}\": { \"v\": [\"Зняти вибір {option}\"] }, \"No results\": { \"v\": [\"Відсутні результати\"] }, \"Options\": { \"v\": [\"Параметри\"] } } }, { \"l\": \"uz\", \"t\": { \"Clear selected\": { \"v\": [\"Tanlanganni tozalash\"] }, \"Deselect {option}\": { \"v\": [\"{option}tanlovni bekor qiling\"] }, \"No results\": { \"v\": [\"Natija yoʻq\"] }, \"Options\": { \"v\": [\"Variantlar\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Clear selected\": { \"v\": [\"清除所选\"] }, \"Deselect {option}\": { \"v\": [\"取消选择 {option}\"] }, \"No results\": { \"v\": [\"无结果\"] }, \"Options\": { \"v\": [\"选项\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Clear selected\": { \"v\": [\"清除所選項目\"] }, \"Deselect {option}\": { \"v\": [\"取消選擇 {option}\"] }, \"No results\": { \"v\": [\"無結果\"] }, \"Options\": { \"v\": [\"選項\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Clear selected\": { \"v\": [\"清除選定項目\"] }, \"Deselect {option}\": { \"v\": [\"取消選取 {option}\"] }, \"No results\": { \"v\": [\"無結果\"] }, \"Options\": { \"v\": [\"選項\"] } } }];\nconst t19 = [{ \"l\": \"ar\", \"t\": { \"Close\": { \"v\": [\"إغلاق\"] } } }, { \"l\": \"ast\", \"t\": { \"Close\": { \"v\": [\"Zarrar\"] } } }, { \"l\": \"br\", \"t\": { \"Close\": { \"v\": [\"Serriñ\"] } } }, { \"l\": \"ca\", \"t\": { \"Close\": { \"v\": [\"Tanca\"] } } }, { \"l\": \"cs\", \"t\": { \"Close\": { \"v\": [\"Zavřít\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Close\": { \"v\": [\"Zavřít\"] } } }, { \"l\": \"da\", \"t\": { \"Close\": { \"v\": [\"Luk\"] } } }, { \"l\": \"de\", \"t\": { \"Close\": { \"v\": [\"Schließen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Close\": { \"v\": [\"Schließen\"] } } }, { \"l\": \"el\", \"t\": { \"Close\": { \"v\": [\"Κλείσιμο\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Close\": { \"v\": [\"Close\"] } } }, { \"l\": \"eo\", \"t\": { \"Close\": { \"v\": [\"Fermu\"] } } }, { \"l\": \"es\", \"t\": { \"Close\": { \"v\": [\"Cerrar\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Close\": { \"v\": [\"Cerrar\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Close\": { \"v\": [\"Cerrar\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Close\": { \"v\": [\"Cerrar\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Close\": { \"v\": [\"Sulge\"] } } }, { \"l\": \"eu\", \"t\": { \"Close\": { \"v\": [\"Itxi\"] } } }, { \"l\": \"fa\", \"t\": { \"Close\": { \"v\": [\"بستن\"] } } }, { \"l\": \"fi\", \"t\": { \"Close\": { \"v\": [\"Sulje\"] } } }, { \"l\": \"fr\", \"t\": { \"Close\": { \"v\": [\"Fermer\"] } } }, { \"l\": \"ga\", \"t\": { \"Close\": { \"v\": [\"Dún\"] } } }, { \"l\": \"gl\", \"t\": { \"Close\": { \"v\": [\"Pechar\"] } } }, { \"l\": \"he\", \"t\": { \"Close\": { \"v\": [\"סגירה\"] } } }, { \"l\": \"hu\", \"t\": { \"Close\": { \"v\": [\"Bezárás\"] } } }, { \"l\": \"id\", \"t\": { \"Close\": { \"v\": [\"Tutup\"] } } }, { \"l\": \"is\", \"t\": { \"Close\": { \"v\": [\"Loka\"] } } }, { \"l\": \"it\", \"t\": { \"Close\": { \"v\": [\"Chiudi\"] } } }, { \"l\": \"ja\", \"t\": { \"Close\": { \"v\": [\"閉じる\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Close\": { \"v\": [\"閉じる\"] } } }, { \"l\": \"ko\", \"t\": { \"Close\": { \"v\": [\"닫기\"] } } }, { \"l\": \"lo\", \"t\": { \"Close\": { \"v\": [\"ປິດ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Close\": { \"v\": [\"Užverti\"] } } }, { \"l\": \"lv\", \"t\": { \"Close\": { \"v\": [\"Aizvērt\"] } } }, { \"l\": \"mk\", \"t\": { \"Close\": { \"v\": [\"Затвори\"] } } }, { \"l\": \"my\", \"t\": { \"Close\": { \"v\": [\"ပိတ်ရန်\"] } } }, { \"l\": \"nb\", \"t\": { \"Close\": { \"v\": [\"Lukk\"] } } }, { \"l\": \"nl\", \"t\": { \"Close\": { \"v\": [\"Sluiten\"] } } }, { \"l\": \"oc\", \"t\": { \"Close\": { \"v\": [\"Tampar\"] } } }, { \"l\": \"pl\", \"t\": { \"Close\": { \"v\": [\"Zamknij\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Close\": { \"v\": [\"Fechar\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Close\": { \"v\": [\"Fechar\"] } } }, { \"l\": \"ro\", \"t\": { \"Close\": { \"v\": [\"Închideți\"] } } }, { \"l\": \"ru\", \"t\": { \"Close\": { \"v\": [\"Закрыть\"] } } }, { \"l\": \"sk\", \"t\": { \"Close\": { \"v\": [\"Zavrieť\"] } } }, { \"l\": \"sl\", \"t\": { \"Close\": { \"v\": [\"Zapri\"] } } }, { \"l\": \"sr\", \"t\": { \"Close\": { \"v\": [\"Затвори\"] } } }, { \"l\": \"sv\", \"t\": { \"Close\": { \"v\": [\"Stäng\"] } } }, { \"l\": \"tr\", \"t\": { \"Close\": { \"v\": [\"Kapat\"] } } }, { \"l\": \"uk\", \"t\": { \"Close\": { \"v\": [\"Закрити\"] } } }, { \"l\": \"uz\", \"t\": { \"Close\": { \"v\": [\"Yopish\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Close\": { \"v\": [\"关闭\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Close\": { \"v\": [\"關閉\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Close\": { \"v\": [\"關閉\"] } } }];\nconst t21 = [{ \"l\": \"ar\", \"t\": { \"Collapse menu\": { \"v\": [\"طي القائمة\"] }, \"Open menu\": { \"v\": [\"إفتَح القائمة\"] } } }, { \"l\": \"ast\", \"t\": { \"Collapse menu\": { \"v\": [\"Recoyer el menú\"] }, \"Open menu\": { \"v\": [\"Abrir le menú\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Collapse menu\": { \"v\": [\"Sbalit nabídku\"] }, \"Open menu\": { \"v\": [\"Otevřít nabídku\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Collapse menu\": { \"v\": [\"Sbalit nabídku\"] }, \"Open menu\": { \"v\": [\"Otevřít nabídku\"] } } }, { \"l\": \"da\", \"t\": { \"Collapse menu\": { \"v\": [\"Skjul menuen\"] }, \"Open menu\": { \"v\": [\"Åben menu\"] } } }, { \"l\": \"de\", \"t\": { \"Collapse menu\": { \"v\": [\"Menü einklappen\"] }, \"Open menu\": { \"v\": [\"Menü öffnen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Collapse menu\": { \"v\": [\"Menü einklappen\"] }, \"Open menu\": { \"v\": [\"Menü öffnen\"] } } }, { \"l\": \"el\", \"t\": { \"Collapse menu\": { \"v\": [\"Σύμπτυξη μενού\"] }, \"Open menu\": { \"v\": [\"Άνοιγμα μενού\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Collapse menu\": { \"v\": [\"Collapse menu\"] }, \"Open menu\": { \"v\": [\"Open menu\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Collapse menu\": { \"v\": [\"Ocultar menú\"] }, \"Open menu\": { \"v\": [\"Abrir menú\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Collapse menu\": { \"v\": [\"Ocultar menú\"] }, \"Open menu\": { \"v\": [\"Abrir menú\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Collapse menu\": { \"v\": [\"Ocultar menú\"] }, \"Open menu\": { \"v\": [\"Abrir menú\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Collapse menu\": { \"v\": [\"Ocultar menú\"] }, \"Open menu\": { \"v\": [\"Abrir menú\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Collapse menu\": { \"v\": [\"Menüü kokkuklappimine\"] }, \"Open menu\": { \"v\": [\"Ava menüü\"] } } }, { \"l\": \"eu\", \"t\": { \"Collapse menu\": { \"v\": [\"Tolestu menua\"] }, \"Open menu\": { \"v\": [\"Ireki menua\"] } } }, { \"l\": \"fa\", \"t\": { \"Collapse menu\": { \"v\": [\"بستن فهرست\"] }, \"Open menu\": { \"v\": [\"باز کردن فهرست\"] } } }, { \"l\": \"fi\", \"t\": { \"Collapse menu\": { \"v\": [\"Supista valikko\"] }, \"Open menu\": { \"v\": [\"Avaa valikko\"] } } }, { \"l\": \"fr\", \"t\": { \"Collapse menu\": { \"v\": [\"Réduire le menu\"] }, \"Open menu\": { \"v\": [\"Ouvrir le menu\"] } } }, { \"l\": \"ga\", \"t\": { \"Collapse menu\": { \"v\": [\"Roghchlár Laghdaigh\"] }, \"Open menu\": { \"v\": [\"Roghchlár a oscailt\"] } } }, { \"l\": \"gl\", \"t\": { \"Collapse menu\": { \"v\": [\"Contraer o menú\"] }, \"Open menu\": { \"v\": [\"Abrir o menú\"] } } }, { \"l\": \"he\", \"t\": { \"Collapse menu\": { \"v\": [\"צמצום התפריט\"] }, \"Open menu\": { \"v\": [\"פתיחת תפריט\"] } } }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": { \"Collapse menu\": { \"v\": [\"Ciutkan menu\"] }, \"Open menu\": { \"v\": [\"Buka menu\"] } } }, { \"l\": \"is\", \"t\": { \"Collapse menu\": { \"v\": [\"Fella valmynd saman\"] }, \"Open menu\": { \"v\": [\"Opna valmynd\"] } } }, { \"l\": \"it\", \"t\": { \"Collapse menu\": { \"v\": [\"Chiudi Menu\"] }, \"Open menu\": { \"v\": [\"Apri il menu\"] } } }, { \"l\": \"ja\", \"t\": { \"Collapse menu\": { \"v\": [\"メニューの折りたたみ\"] }, \"Open menu\": { \"v\": [\"メニューを開く\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Collapse menu\": { \"v\": [\"メニューの折りたたみ\"] }, \"Open menu\": { \"v\": [\"メニューを開く\"] } } }, { \"l\": \"ko\", \"t\": { \"Collapse menu\": { \"v\": [\"메뉴 접기\"] }, \"Open menu\": { \"v\": [\"메뉴 열기\"] } } }, { \"l\": \"lo\", \"t\": { \"Collapse menu\": { \"v\": [\"ຫຍໍ້ເມນູ\"] }, \"Open menu\": { \"v\": [\"ເປີດເມນູ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Collapse menu\": { \"v\": [\"Скриј мени\"] }, \"Open menu\": { \"v\": [\"Отвори мени\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Collapse menu\": { \"v\": [\"Skjul meny\"] }, \"Open menu\": { \"v\": [\"Åpne meny\"] } } }, { \"l\": \"nl\", \"t\": { \"Collapse menu\": { \"v\": [\"Menu inklappen\"] }, \"Open menu\": { \"v\": [\"Menu openen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Collapse menu\": { \"v\": [\"Zwiń menu\"] }, \"Open menu\": { \"v\": [\"Otwórz menu\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Collapse menu\": { \"v\": [\"Recolher menu\"] }, \"Open menu\": { \"v\": [\"Abrir menu\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Collapse menu\": { \"v\": [\"Ocultar menu\"] }, \"Open menu\": { \"v\": [\"Abrir menu\"] } } }, { \"l\": \"ro\", \"t\": { \"Collapse menu\": { \"v\": [\"Restrânge meniul\"] }, \"Open menu\": { \"v\": [\"Deschide meniul\"] } } }, { \"l\": \"ru\", \"t\": { \"Collapse menu\": { \"v\": [\"Свернуть меню\"] }, \"Open menu\": { \"v\": [\"Открыть меню\"] } } }, { \"l\": \"sk\", \"t\": { \"Collapse menu\": { \"v\": [\"Zbaliť menu\"] }, \"Open menu\": { \"v\": [\"Otvoriť menu\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Collapse menu\": { \"v\": [\"Сажми мени\"] }, \"Open menu\": { \"v\": [\"Отвори мени\"] } } }, { \"l\": \"sv\", \"t\": { \"Collapse menu\": { \"v\": [\"Dölj menyn\"] }, \"Open menu\": { \"v\": [\"Öppna menyn\"] } } }, { \"l\": \"tr\", \"t\": { \"Collapse menu\": { \"v\": [\"Menüyü daralt\"] }, \"Open menu\": { \"v\": [\"Menüyü aç\"] } } }, { \"l\": \"uk\", \"t\": { \"Collapse menu\": { \"v\": [\"Згорнути меню\"] }, \"Open menu\": { \"v\": [\"Відкрити меню\"] } } }, { \"l\": \"uz\", \"t\": { \"Collapse menu\": { \"v\": [\"Menyuni yig‘ish\"] }, \"Open menu\": { \"v\": [\"Menyuni oching\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Collapse menu\": { \"v\": [\"收起菜单\"] }, \"Open menu\": { \"v\": [\"打开菜单\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Collapse menu\": { \"v\": [\"折疊選單\"] }, \"Open menu\": { \"v\": [\"開啟選單\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Collapse menu\": { \"v\": [\"折疊選單\"] }, \"Open menu\": { \"v\": [\"開啟選單\"] } } }];\nconst t22 = [{ \"l\": \"ar\", \"t\": {} }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Copied\": { \"v\": [\"Zkopírováno\"] }, \"Copy to clipboard\": { \"v\": [\"Zkopírovat do schránky\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": {} }, { \"l\": \"de\", \"t\": { \"Copied\": { \"v\": [\"Kopiert\"] }, \"Copy to clipboard\": { \"v\": [\"In die Zwischenablage kopieren\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Copied\": { \"v\": [\"Kopiert\"] }, \"Copy to clipboard\": { \"v\": [\"In die Zwischenablage kopieren\"] } } }, { \"l\": \"el\", \"t\": {} }, { \"l\": \"en-GB\", \"t\": { \"Copied\": { \"v\": [\"Copied\"] }, \"Copy to clipboard\": { \"v\": [\"Copy to clipboard\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": {} }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": {} }, { \"l\": \"et-EE\", \"t\": { \"Copied\": { \"v\": [\"Kopeeritud\"] }, \"Copy to clipboard\": { \"v\": [\"Kopeeri lõikelauale\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": {} }, { \"l\": \"fi\", \"t\": {} }, { \"l\": \"fr\", \"t\": {} }, { \"l\": \"ga\", \"t\": { \"Copied\": { \"v\": [\"Cóipeáilte\"] }, \"Copy to clipboard\": { \"v\": [\"Cóipeáil chuig an ghearrthaisce\"] } } }, { \"l\": \"gl\", \"t\": { \"Copied\": { \"v\": [\"Copiado\"] }, \"Copy to clipboard\": { \"v\": [\"Copiar ao portapapeis\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": {} }, { \"l\": \"is\", \"t\": {} }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Copied\": { \"v\": [\"コピーされました\"] }, \"Copy to clipboard\": { \"v\": [\"クリップボードにコピー\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": {} }, { \"l\": \"lo\", \"t\": { \"Copied\": { \"v\": [\"ສຳເນົາແລ້ວ\"] }, \"Copy to clipboard\": { \"v\": [\"ສຳເນົາໃສ່ຄລິບບອດ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": {} }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": {} }, { \"l\": \"nl\", \"t\": {} }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": {} }, { \"l\": \"pt-BR\", \"t\": { \"Copied\": { \"v\": [\"Copiado\"] }, \"Copy to clipboard\": { \"v\": [\"Copiar para a área de transferência\"] } } }, { \"l\": \"pt-PT\", \"t\": {} }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": {} }, { \"l\": \"sk\", \"t\": {} }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": {} }, { \"l\": \"sv\", \"t\": {} }, { \"l\": \"tr\", \"t\": { \"Copied\": { \"v\": [\"Kopyalandı\"] }, \"Copy to clipboard\": { \"v\": [\"Panoya kopyalandı\"] } } }, { \"l\": \"uk\", \"t\": {} }, { \"l\": \"uz\", \"t\": {} }, { \"l\": \"zh-CN\", \"t\": {} }, { \"l\": \"zh-HK\", \"t\": { \"Copied\": { \"v\": [\"已被複製\"] }, \"Copy to clipboard\": { \"v\": [\"複製到剪貼簿\"] } } }, { \"l\": \"zh-TW\", \"t\": {} }];\nconst t23 = [{ \"l\": \"ar\", \"t\": { \"Edit item\": { \"v\": [\"تعديل عنصر\"] } } }, { \"l\": \"ast\", \"t\": { \"Edit item\": { \"v\": [\"Editar l'elementu\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Edit item\": { \"v\": [\"Edita l'element\"] } } }, { \"l\": \"cs\", \"t\": { \"Edit item\": { \"v\": [\"Upravit položku\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Edit item\": { \"v\": [\"Upravit položku\"] } } }, { \"l\": \"da\", \"t\": { \"Edit item\": { \"v\": [\"Rediger emne\"] } } }, { \"l\": \"de\", \"t\": { \"Edit item\": { \"v\": [\"Element bearbeiten\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Edit item\": { \"v\": [\"Element bearbeiten\"] } } }, { \"l\": \"el\", \"t\": { \"Edit item\": { \"v\": [\"Επεξεργασία αντικειμένου\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Edit item\": { \"v\": [\"Edit item\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Edit item\": { \"v\": [\"Editar elemento\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Edit item\": { \"v\": [\"Editar elemento\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Edit item\": { \"v\": [\"Editar elemento\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Edit item\": { \"v\": [\"Editar elemento\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Edit item\": { \"v\": [\"Muuda objekti\"] } } }, { \"l\": \"eu\", \"t\": { \"Edit item\": { \"v\": [\"Editatu elementua\"] } } }, { \"l\": \"fa\", \"t\": { \"Edit item\": { \"v\": [\"ویرایش مورد\"] } } }, { \"l\": \"fi\", \"t\": { \"Edit item\": { \"v\": [\"Muokkaa kohdetta\"] } } }, { \"l\": \"fr\", \"t\": { \"Edit item\": { \"v\": [\"Éditer l'élément\"] } } }, { \"l\": \"ga\", \"t\": { \"Edit item\": { \"v\": [\"Cuir mír in eagar\"] } } }, { \"l\": \"gl\", \"t\": { \"Edit item\": { \"v\": [\"Editar o elemento\"] } } }, { \"l\": \"he\", \"t\": { \"Edit item\": { \"v\": [\"עריכת פריט\"] } } }, { \"l\": \"hu\", \"t\": { \"Edit item\": { \"v\": [\"Elem szerkesztése\"] } } }, { \"l\": \"id\", \"t\": { \"Edit item\": { \"v\": [\"Edit item\"] } } }, { \"l\": \"is\", \"t\": { \"Edit item\": { \"v\": [\"Breyta atriði\"] } } }, { \"l\": \"it\", \"t\": { \"Edit item\": { \"v\": [\"Modifica l'elemento\"] } } }, { \"l\": \"ja\", \"t\": { \"Edit item\": { \"v\": [\"編集\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Edit item\": { \"v\": [\"編集\"] } } }, { \"l\": \"ko\", \"t\": { \"Edit item\": { \"v\": [\"항목 수정\"] } } }, { \"l\": \"lo\", \"t\": { \"Edit item\": { \"v\": [\"ແກ້ໄຂລາຍການ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Edit item\": { \"v\": [\"Уреди\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Edit item\": { \"v\": [\"Rediger\"] } } }, { \"l\": \"nl\", \"t\": { \"Edit item\": { \"v\": [\"Item bewerken\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Edit item\": { \"v\": [\"Edytuj element\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Edit item\": { \"v\": [\"Editar item\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Edit item\": { \"v\": [\"Editar item\"] } } }, { \"l\": \"ro\", \"t\": { \"Edit item\": { \"v\": [\"Editați elementul\"] } } }, { \"l\": \"ru\", \"t\": { \"Edit item\": { \"v\": [\"Изменить элемент\"] } } }, { \"l\": \"sk\", \"t\": { \"Edit item\": { \"v\": [\"Upraviť položku\"] } } }, { \"l\": \"sl\", \"t\": { \"Edit item\": { \"v\": [\"Uredi predmet\"] } } }, { \"l\": \"sr\", \"t\": { \"Edit item\": { \"v\": [\"Уреди ставку\"] } } }, { \"l\": \"sv\", \"t\": { \"Edit item\": { \"v\": [\"Redigera objekt\"] } } }, { \"l\": \"tr\", \"t\": { \"Edit item\": { \"v\": [\"Ögeyi düzenle\"] } } }, { \"l\": \"uk\", \"t\": { \"Edit item\": { \"v\": [\"Редагувати елемент\"] } } }, { \"l\": \"uz\", \"t\": { \"Edit item\": { \"v\": [\"Elementni tahrirlash\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Edit item\": { \"v\": [\"编辑项目\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Edit item\": { \"v\": [\"編輯項目\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Edit item\": { \"v\": [\"編輯項目\"] } } }];\nconst t25 = [{ \"l\": \"ar\", \"t\": { \"Enter link\": { \"v\": [\"أدخِل الرابط\"] } } }, { \"l\": \"ast\", \"t\": { \"Enter link\": { \"v\": [\"Introducir l'enllaz\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Enter link\": { \"v\": [\"Zadat odkaz\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Enter link\": { \"v\": [\"Zadat odkaz\"] } } }, { \"l\": \"da\", \"t\": { \"Enter link\": { \"v\": [\"Indtast link\"] } } }, { \"l\": \"de\", \"t\": { \"Enter link\": { \"v\": [\"Link eingeben\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Enter link\": { \"v\": [\"Link eingeben\"] } } }, { \"l\": \"el\", \"t\": { \"Enter link\": { \"v\": [\"Εισάγετε σύνδεσμο\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Enter link\": { \"v\": [\"Enter link\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Enter link\": { \"v\": [\"Ingrese enlace\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Enter link\": { \"v\": [\"Ingresar enlace\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Enter link\": { \"v\": [\"Ingresar enlace\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Enter link\": { \"v\": [\"Ingresar enlace\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Enter link\": { \"v\": [\"Sisesta link\"] } } }, { \"l\": \"eu\", \"t\": { \"Enter link\": { \"v\": [\"Sartu esteka\"] } } }, { \"l\": \"fa\", \"t\": { \"Enter link\": { \"v\": [\"لینک را وارد کنید\"] } } }, { \"l\": \"fi\", \"t\": { \"Enter link\": { \"v\": [\"Kirjoita linkki\"] } } }, { \"l\": \"fr\", \"t\": { \"Enter link\": { \"v\": [\"Saisissez le lien\"] } } }, { \"l\": \"ga\", \"t\": { \"Enter link\": { \"v\": [\"Cuir isteach nasc\"] } } }, { \"l\": \"gl\", \"t\": { \"Enter link\": { \"v\": [\"Introducir a ligazón\"] } } }, { \"l\": \"he\", \"t\": { \"Enter link\": { \"v\": [\"מילוי קישור\"] } } }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": { \"Enter link\": { \"v\": [\"Masukkan tautan\"] } } }, { \"l\": \"is\", \"t\": { \"Enter link\": { \"v\": [\"Settu inn tengil\"] } } }, { \"l\": \"it\", \"t\": { \"Enter link\": { \"v\": [\"Inserire il link\"] } } }, { \"l\": \"ja\", \"t\": { \"Enter link\": { \"v\": [\"リンクを入力する\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Enter link\": { \"v\": [\"リンクを入力する\"] } } }, { \"l\": \"ko\", \"t\": { \"Enter link\": { \"v\": [\"링크 입력\"] } } }, { \"l\": \"lo\", \"t\": { \"Enter link\": { \"v\": [\"ປ້ອນລິງ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Enter link\": { \"v\": [\"Внеси линк\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Enter link\": { \"v\": [\"Skriv inn lenken\"] } } }, { \"l\": \"nl\", \"t\": { \"Enter link\": { \"v\": [\"Link invoeren\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Enter link\": { \"v\": [\"Wprowadź link\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Enter link\": { \"v\": [\"Insira o link\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Enter link\": { \"v\": [\"Inserir hiperligação\"] } } }, { \"l\": \"ro\", \"t\": { \"Enter link\": { \"v\": [\"Introduceți link-ul\"] } } }, { \"l\": \"ru\", \"t\": { \"Enter link\": { \"v\": [\"Введите ссылку\"] } } }, { \"l\": \"sk\", \"t\": { \"Enter link\": { \"v\": [\"Vložiť link\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Enter link\": { \"v\": [\"Унесите линк\"] } } }, { \"l\": \"sv\", \"t\": { \"Enter link\": { \"v\": [\"Ange länk\"] } } }, { \"l\": \"tr\", \"t\": { \"Enter link\": { \"v\": [\"Bağlantıyı yazın\"] } } }, { \"l\": \"uk\", \"t\": { \"Enter link\": { \"v\": [\"Зазначте посилання\"] } } }, { \"l\": \"uz\", \"t\": { \"Enter link\": { \"v\": [\"Havolani kiriting\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Enter link\": { \"v\": [\"输入链接\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Enter link\": { \"v\": [\"輸入連結\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Enter link\": { \"v\": [\"輸入連結\"] } } }];\nconst t28 = [{ \"l\": \"ar\", \"t\": { \"Hide details\": { \"v\": [\"أخفِ التفاصيل\"] }, \"Rename project\": { \"v\": [\"تغيير اسم المشروع\"] }, \"Show details\": { \"v\": [\"أظهِر التفاصيل\"] } } }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Hide details\": { \"v\": [\"Skrýt podrobnosti\"] }, \"Rename project\": { \"v\": [\"Přejmenovat projekt\"] }, \"Show details\": { \"v\": [\"Zobrazit podrobnosti\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Hide details\": { \"v\": [\"Skjul detaljer\"] }, \"Rename project\": { \"v\": [\"Omdøb projekt\"] }, \"Show details\": { \"v\": [\"Vis detaljer\"] } } }, { \"l\": \"de\", \"t\": { \"Hide details\": { \"v\": [\"Details ausblenden\"] }, \"Rename project\": { \"v\": [\"Projekt umbenennen\"] }, \"Show details\": { \"v\": [\"Details anzeigen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Hide details\": { \"v\": [\"Details ausblenden\"] }, \"Rename project\": { \"v\": [\"Projekt umbenennen\"] }, \"Show details\": { \"v\": [\"Details anzeigen\"] } } }, { \"l\": \"el\", \"t\": { \"Hide details\": { \"v\": [\"Απόκρυψη λεπτομερειών\"] }, \"Rename project\": { \"v\": [\"Μετονομασία έργου\"] }, \"Show details\": { \"v\": [\"Εμφάνιση λεπτομερειών\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Hide details\": { \"v\": [\"Hide details\"] }, \"Rename project\": { \"v\": [\"Rename project\"] }, \"Show details\": { \"v\": [\"Show details\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": { \"Hide details\": { \"v\": [\"Ocultar detalles\"] }, \"Rename project\": { \"v\": [\"Renombrar proyecto\"] }, \"Show details\": { \"v\": [\"Mostrar detalles\"] } } }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": { \"Hide details\": { \"v\": [\"Ocultar detalles\"] }, \"Rename project\": { \"v\": [\"Renombrar proyecto\"] }, \"Show details\": { \"v\": [\"Mostrar detalles\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Hide details\": { \"v\": [\"Peida üksikasjad\"] }, \"Rename project\": { \"v\": [\"Muuda projekti nime\"] }, \"Show details\": { \"v\": [\"Näita üksikasju\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"Hide details\": { \"v\": [\"پنهان کردن جزئیات\"] }, \"Rename project\": { \"v\": [\"تغییر نام پروژه\"] }, \"Show details\": { \"v\": [\"نمایش جزئیات\"] } } }, { \"l\": \"fi\", \"t\": { \"Hide details\": { \"v\": [\"Piilota yksityiskohdat\"] }, \"Rename project\": { \"v\": [\"Nimeä projekti\"] }, \"Show details\": { \"v\": [\"Näytä yksityiskohdat\"] } } }, { \"l\": \"fr\", \"t\": { \"Hide details\": { \"v\": [\"Masquer les détails\"] }, \"Rename project\": { \"v\": [\"Renommer le projet\"] }, \"Show details\": { \"v\": [\"Afficher les détails\"] } } }, { \"l\": \"ga\", \"t\": { \"Hide details\": { \"v\": [\"Folaigh sonraí\"] }, \"Rename project\": { \"v\": [\"Athainmnigh an tionscadal\"] }, \"Show details\": { \"v\": [\"Taispeáin sonraí\"] } } }, { \"l\": \"gl\", \"t\": { \"Hide details\": { \"v\": [\"Agochar os detalles\"] }, \"Rename project\": { \"v\": [\"Cambiar o nome do proxecto\"] }, \"Show details\": { \"v\": [\"Amosar os detalles\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": {} }, { \"l\": \"is\", \"t\": { \"Hide details\": { \"v\": [\"Fela nánari upplýsingar\"] }, \"Rename project\": { \"v\": [\"Endurnefna verkefni\"] }, \"Show details\": { \"v\": [\"Birta nánari upplýsingar\"] } } }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Hide details\": { \"v\": [\"詳細を非表示\"] }, \"Rename project\": { \"v\": [\"プロジェクト名を変更\"] }, \"Show details\": { \"v\": [\"詳細の表示\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": { \"Hide details\": { \"v\": [\"세부 사항 숨기기\"] }, \"Rename project\": { \"v\": [\"프로젝트 이름 변경\"] }, \"Show details\": { \"v\": [\"세부 사항 보기\"] } } }, { \"l\": \"lo\", \"t\": { \"Hide details\": { \"v\": [\"ເຊື່ອງລາຍລະອຽດ\"] }, \"Rename project\": { \"v\": [\"ປ່ຽນຊື່ໂຄງການ\"] }, \"Show details\": { \"v\": [\"ສະແດງລາຍລະອຽດ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Hide details\": { \"v\": [\"Сокриј детали\"] }, \"Rename project\": { \"v\": [\"Преименувај проект\"] }, \"Show details\": { \"v\": [\"Прикажи детали\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Hide details\": { \"v\": [\"Skjul detaljer\"] }, \"Rename project\": { \"v\": [\"Gi prosjekt nytt navn\"] }, \"Show details\": { \"v\": [\"Vis detaljer\"] } } }, { \"l\": \"nl\", \"t\": { \"Hide details\": { \"v\": [\"Details verbergen\"] }, \"Rename project\": { \"v\": [\"Project hernoemen\"] }, \"Show details\": { \"v\": [\"Details weergeven\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Hide details\": { \"v\": [\"Ukryj szczegóły\"] }, \"Rename project\": { \"v\": [\"Zmień nazwę projektu\"] }, \"Show details\": { \"v\": [\"Pokaż szczegóły\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Hide details\": { \"v\": [\"Ocultar detalhes\"] }, \"Rename project\": { \"v\": [\"Renomear projeto\"] }, \"Show details\": { \"v\": [\"Mostrar detalhes\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Hide details\": { \"v\": [\"Ocultar detalhes\"] }, \"Rename project\": { \"v\": [\"Alterar nome do projeto\"] }, \"Show details\": { \"v\": [\"Ver detalhes\"] } } }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Hide details\": { \"v\": [\"Скрыть подробности\"] }, \"Rename project\": { \"v\": [\"Переименовать проект\"] }, \"Show details\": { \"v\": [\"Показать детали\"] } } }, { \"l\": \"sk\", \"t\": { \"Hide details\": { \"v\": [\"Skryť detaily\"] }, \"Rename project\": { \"v\": [\"Premenovať projekt\"] }, \"Show details\": { \"v\": [\"Zobraziť detaily\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Hide details\": { \"v\": [\"Сакриј детаље\"] }, \"Rename project\": { \"v\": [\"Промени име пројекта\"] }, \"Show details\": { \"v\": [\"Прикажи детаље\"] } } }, { \"l\": \"sv\", \"t\": { \"Hide details\": { \"v\": [\"Göm detaljer\"] }, \"Rename project\": { \"v\": [\"Byt namn på projektet\"] }, \"Show details\": { \"v\": [\"Visa detaljer\"] } } }, { \"l\": \"tr\", \"t\": { \"Hide details\": { \"v\": [\"Ayrıntıları gizle\"] }, \"Rename project\": { \"v\": [\"Projeyi yeniden adlandır\"] }, \"Show details\": { \"v\": [\"Ayrıntıları görüntüle\"] } } }, { \"l\": \"uk\", \"t\": { \"Hide details\": { \"v\": [\"Сховати деталі\"] }, \"Rename project\": { \"v\": [\"Перейменувати проєкт\"] }, \"Show details\": { \"v\": [\"Показати деталі\"] } } }, { \"l\": \"uz\", \"t\": { \"Hide details\": { \"v\": [\"Tafsilotlarni yashirish\"] }, \"Rename project\": { \"v\": [\"Loyiha nomini o'zgartirish\"] }, \"Show details\": { \"v\": [\"Tafsilotlarni ko'rsatish\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Hide details\": { \"v\": [\"隐藏细节\"] }, \"Rename project\": { \"v\": [\"重命名项目\"] }, \"Show details\": { \"v\": [\"显示细节\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Hide details\": { \"v\": [\"隱藏詳情\"] }, \"Rename project\": { \"v\": [\"重命名方案\"] }, \"Show details\": { \"v\": [\"顯示詳情\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Hide details\": { \"v\": [\"隱藏詳細資料\"] }, \"Rename project\": { \"v\": [\"重新命名專案\"] }, \"Show details\": { \"v\": [\"顯示詳細資訊\"] } } }];\nconst t32 = [{ \"l\": \"ar\", \"t\": { 'Load more \"{options}\"': { \"v\": ['تحميل المزيد من \"{options}\" '] }, \"Raw link {options}\": { \"v\": [\" الرابط الخام raw link ـ {options}\"] }, \"Start typing to search\": { \"v\": [\"إبدإ كتابة مفردات البحث\"] } } }, { \"l\": \"ast\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"Cargar más «{options}»\"] }, \"Raw link {options}\": { \"v\": [\"Enllaz en bruto {optiones}\"] }, \"Start typing to search\": { \"v\": [\"Comienza a escribir pa buscar\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"Načíst další „{options}“\"] }, \"Raw link {options}\": { \"v\": [\"Holý odkaz {options}\"] }, \"Start typing to search\": { \"v\": [\"Vyhledávejte psaním\"] } } }, { \"l\": \"cs-CZ\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"Načíst další „{options}“\"] }, \"Raw link {options}\": { \"v\": [\"Holý odkaz {options}\"] }, \"Start typing to search\": { \"v\": [\"Vyhledávejte psaním\"] } } }, { \"l\": \"da\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Indlæs flere \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Rå link {options}\"] }, \"Start typing to search\": { \"v\": [\"Begynd at skrive for at søge\"] } } }, { \"l\": \"de\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Weitere \"{options}\" laden'] }, \"Raw link {options}\": { \"v\": [\"Unverarbeiteter Link {options}\"] }, \"Start typing to search\": { \"v\": [\"Mit der Eingabe beginnen, um zu suchen\"] } } }, { \"l\": \"de-DE\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Weitere \"{options}\" laden'] }, \"Raw link {options}\": { \"v\": [\"Unverarbeiteter Link {options}\"] }, \"Start typing to search\": { \"v\": [\"Mit der Eingabe beginnen, um zu suchen\"] } } }, { \"l\": \"el\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Φόρτωση περισσότερων \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Ακατέργαστος σύνδεσμος {options}\"] }, \"Start typing to search\": { \"v\": [\"Ξεκινήστε να πληκτρολογείτε για αναζήτηση\"] } } }, { \"l\": \"en-GB\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Load more \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Raw link {options}\"] }, \"Start typing to search\": { \"v\": [\"Start typing to search\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Cargar más \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Enlace directo {options}\"] }, \"Start typing to search\": { \"v\": [\"Comience a escribir para buscar\"] } } }, { \"l\": \"es-AR\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Cargar más \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Enlace directo {options}\"] }, \"Start typing to search\": { \"v\": [\"Comience a escribir para buscar\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Raw link {options}\": { \"v\": [\"Enlace directo {options}\"] }, \"Start typing to search\": { \"v\": [\"Comienza a escribir para buscar\"] } } }, { \"l\": \"es-MX\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Cargar más \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Enlace directo {options}\"] }, \"Start typing to search\": { \"v\": [\"Comience a escribir para buscar\"] } } }, { \"l\": \"et-EE\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"Laadi veel „{options}“\"] }, \"Raw link {options}\": { \"v\": [\"Töötlemata link: {options}\"] }, \"Start typing to search\": { \"v\": [\"Alusta otsinguks sisestamist\"] } } }, { \"l\": \"eu\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Kargatu \"{options}\" gehiago'] }, \"Raw link {options}\": { \"v\": [\"Formaturik gabeko esteka {aukerak}\"] }, \"Start typing to search\": { \"v\": [\"Hasi idazten bilatzeko\"] } } }, { \"l\": \"fa\", \"t\": { 'Load more \"{options}\"': { \"v\": ['بارگذاری بیشتر \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"پیوند خام {options}\"] }, \"Start typing to search\": { \"v\": [\"برای جستجو تایپ کنید\"] } } }, { \"l\": \"fi\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Lataa lisää \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Raaka linkki {options}\"] }, \"Start typing to search\": { \"v\": [\"Aloita kirjoittaminen hakeaksesi\"] } } }, { \"l\": \"fr\", \"t\": { 'Load more \"{options}\"': { \"v\": [`Charger d'avantage \"{options}\"`] }, \"Raw link {options}\": { \"v\": [\"Lien brut {options}\"] }, \"Start typing to search\": { \"v\": [\"Commencez à écrire pour rechercher\"] } } }, { \"l\": \"ga\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Luchtaigh tuilleadh \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Nasc amh {roghanna}\"] }, \"Start typing to search\": { \"v\": [\"Tosaigh ag clóscríobh chun cuardach a dhéanamh\"] } } }, { \"l\": \"gl\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"Cargar máis «{options}»\"] }, \"Raw link {options}\": { \"v\": [\"Ligazón sen procesar {options}\"] }, \"Start typing to search\": { \"v\": [\"Comece a escribir para buscar\"] } } }, { \"l\": \"he\", \"t\": { \"Raw link {options}\": { \"v\": [\"קישור גולמי {options}\"] }, \"Start typing to search\": { \"v\": [\"התחלת הקלדה מחפשת\"] } } }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Muat \"{options}\" lainnya'] }, \"Raw link {options}\": { \"v\": [\"Tautan mentah {options}\"] }, \"Start typing to search\": { \"v\": [\"Ketik untuk mulai mencari\"] } } }, { \"l\": \"is\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Hlaða inn fleiri \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Hrár tengill {options}\"] }, \"Start typing to search\": { \"v\": [\"Byrjaðu að skrifa til að leita\"] } } }, { \"l\": \"it\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Carica più \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Raw link {options}\"] }, \"Start typing to search\": { \"v\": [\"Iniziare a digitare per effettuare la ricerca\"] } } }, { \"l\": \"ja\", \"t\": { 'Load more \"{options}\"': { \"v\": ['\"{options}\" をもっと読み込む'] }, \"Raw link {options}\": { \"v\": [\"未加工のリンク {options}\"] }, \"Start typing to search\": { \"v\": [\"入力を開始して検索します\"] } } }, { \"l\": \"ja-JP\", \"t\": { 'Load more \"{options}\"': { \"v\": ['\"{options}\" をもっと読み込む'] }, \"Raw link {options}\": { \"v\": [\"未加工のリンク {options}\"] }, \"Start typing to search\": { \"v\": [\"入力を開始して検索します\"] } } }, { \"l\": \"ko\", \"t\": { 'Load more \"{options}\"': { \"v\": ['\"{options}\" 더 불러오기'] }, \"Raw link {options}\": { \"v\": [\"{options} 원본 링크\"] }, \"Start typing to search\": { \"v\": [\"입력하여 검색\"] } } }, { \"l\": \"lo\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"ໂຫຼດ “{options}” ເພີ່ມເຕີມ\"] }, \"Raw link {options}\": { \"v\": [\"ລິງດິບ {options}\"] }, \"Start typing to search\": { \"v\": [\"ເລີ່ມພິມເພື່ອຄົ້ນຫາ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Вчитај повеќе \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Суров линк {options}\"] }, \"Start typing to search\": { \"v\": [\"Почни да пишуваш за пребарување\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Last inn flere \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Rå lenke {options}\"] }, \"Start typing to search\": { \"v\": [\"Start å skrive for å søke\"] } } }, { \"l\": \"nl\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Meer \"{options}\" laden'] }, \"Raw link {options}\": { \"v\": [\"Ruwe link {options}\"] }, \"Start typing to search\": { \"v\": [\"Start met typen om te zoeken\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Załaduj więcej \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Surowy odnośnik {options}\"] }, \"Start typing to search\": { \"v\": [\"Zacznij pisać, aby wyszukać\"] } } }, { \"l\": \"pt-BR\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Carregar mais \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Link bruto {options}\"] }, \"Start typing to search\": { \"v\": [\"Comece a digitar para pesquisar\"] } } }, { \"l\": \"pt-PT\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Carregar mais \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Link inicial {options}\"] }, \"Start typing to search\": { \"v\": [\"Comece a digitar para pesquisar\"] } } }, { \"l\": \"ro\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Încarcă mai multe \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Link brut {options}\"] }, \"Start typing to search\": { \"v\": [\"Tastați pentru căutare\"] } } }, { \"l\": \"ru\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Загрузить больше \"{options}\"\"'] }, \"Raw link {options}\": { \"v\": [\"Необработанная ссылка {options}\"] }, \"Start typing to search\": { \"v\": [\"Начните вводить текст для поиска\"] } } }, { \"l\": \"sk\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Načítať viac \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Raw odkaz {options}\"] }, \"Start typing to search\": { \"v\": [\"Začnite písať pre vyhľadávanie\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"Учитај још „{options}”\"] }, \"Raw link {options}\": { \"v\": [\"Сирови линк {options}\"] }, \"Start typing to search\": { \"v\": [\"Покрените претрагу куцањем\"] } } }, { \"l\": \"sv\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Ladda fler \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Oformaterad länk {options}\"] }, \"Start typing to search\": { \"v\": [\"Börja skriva för att söka\"] } } }, { \"l\": \"tr\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Diğer \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Ham bağlantı {options}\"] }, \"Start typing to search\": { \"v\": [\"Aramak için yazmaya başlayın\"] } } }, { \"l\": \"uk\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Завантажити більше \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Пряме посилання {options}\"] }, \"Start typing to search\": { \"v\": [\"Почніть вводити для пошуку\"] } } }, { \"l\": \"uz\", \"t\": { 'Load more \"{options}\"': { \"v\": [`Ko'proq yuklash \"{options}\"`] }, \"Raw link {options}\": { \"v\": [\" {options}satr havolasi\"] }, \"Start typing to search\": { \"v\": [\"Qidirish uchun yozishni boshlang\"] } } }, { \"l\": \"zh-CN\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"加载更多 “{options}”\"] }, \"Raw link {options}\": { \"v\": [\"原始链接 {options}\"] }, \"Start typing to search\": { \"v\": [\"开始输入以进行搜索\"] } } }, { \"l\": \"zh-HK\", \"t\": { 'Load more \"{options}\"': { \"v\": ['載入更多 \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"原始連結 {options}\"] }, \"Start typing to search\": { \"v\": [\"開始輸入以進行搜尋\"] } } }, { \"l\": \"zh-TW\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"載入更多「{options}」\"] }, \"Raw link {options}\": { \"v\": [\"原始連結 {options}\"] }, \"Start typing to search\": { \"v\": [\"開始輸入以進行搜尋\"] } } }];\nconst t34 = [{ \"l\": \"ar\", \"t\": { \"No link provider found\": { \"v\": [\"لا يوجد أيّ مزود روابط link provider\"] }, \"Write a message …\": { \"v\": [\"أكتب رسالة ...\"] } } }, { \"l\": \"ast\", \"t\": { \"No link provider found\": { \"v\": [\"Nun s'atopó nengún fornidor d'enllaces\"] }, \"Write a message …\": { \"v\": [\"Escribi un mensaxe…\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Dosaženo limitu počtu %n znaku zprávy\", \"Dosaženo limitu počtu %n znaků zprávy\", \"Dosaženo limitu počtu %n znaků zprávy\", \"Dosaženo limitu počtu %n znaků zprávy\"] }, \"No link provider found\": { \"v\": [\"Nenalezen žádný poskytovatel odkazů\"] }, \"Write a message …\": { \"v\": [\"Napište zprávu …\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"No link provider found\": { \"v\": [\"Nenalezen žádný poskytovatel odkazů\"] }, \"Write a message …\": { \"v\": [\"Napsat zprávu…\"] } } }, { \"l\": \"da\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Beskedgrænsen på %n tegn er nået\", \"Beskedgrænsen på %n tegn er nået\"] }, \"No link provider found\": { \"v\": [\"Ingen linkudbyder fundet\"] }, \"Write a message …\": { \"v\": [\"Skriv en besked ...\"] } } }, { \"l\": \"de\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Nachrichtenlimit von %n Zeichen erreicht\", \"Nachrichtenlimit von %n Zeichen erreicht\"] }, \"No link provider found\": { \"v\": [\"Kein Linkanbieter gefunden\"] }, \"Write a message …\": { \"v\": [\"Nachricht schreiben …\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Nachrichtenlimit von %n Zeichen erreicht\", \"Nachrichtenlimit von %n Zeichen erreicht\"] }, \"No link provider found\": { \"v\": [\"Kein Linkanbieter gefunden\"] }, \"Write a message …\": { \"v\": [\"Nachricht schreiben …\"] } } }, { \"l\": \"el\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Έφτασε το όριο μηνύματος των %n χαρακτήρων\", \"Έφτασε το όριο μηνύματος των %n χαρακτήρων\"] }, \"No link provider found\": { \"v\": [\"Δεν βρέθηκε πάροχος συνδέσμου\"] }, \"Write a message …\": { \"v\": [\"Γράψτε ένα μήνυμα …\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Message limit of %n character reached\", \"Message limit of %n characters reached\"] }, \"No link provider found\": { \"v\": [\"No link provider found\"] }, \"Write a message …\": { \"v\": [\"Write a message …\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"No link provider found\": { \"v\": [\"No se encontró ningún proveedor de enlaces\"] }, \"Write a message …\": { \"v\": [\"Escriba un mensaje ...\"] } } }, { \"l\": \"es-AR\", \"t\": { \"No link provider found\": { \"v\": [\"No se encontró ningún proveedor de enlaces\"] }, \"Write a message …\": { \"v\": [\"Escriba un mensaje ...\"] } } }, { \"l\": \"es-EC\", \"t\": { \"No link provider found\": { \"v\": [\"No se encontró ningún proveedor de enlaces\"] } } }, { \"l\": \"es-MX\", \"t\": { \"No link provider found\": { \"v\": [\"No se encontró ningún proveedor de enlaces\"] }, \"Write a message …\": { \"v\": [\"Escriba un mensaje ...\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Sõnumi piirarv %n tähemärk on käes\", \"Sõnumi piirarv %n tähemärki on käes\"] }, \"No link provider found\": { \"v\": [\"Lingi pakkujat ei leitud\"] }, \"Write a message …\": { \"v\": [\"Koosta sõnum …\"] } } }, { \"l\": \"eu\", \"t\": { \"No link provider found\": { \"v\": [\"Ez da aurkitu esteka-hornitzailerik\"] }, \"Write a message …\": { \"v\": [\"Idatzi mezu bat…\"] } } }, { \"l\": \"fa\", \"t\": { \"No link provider found\": { \"v\": [\"هیچ ارائه‌دهنده پیوندی یافت نشد\"] }, \"Write a message …\": { \"v\": [\"یک پیام بنویسید ...\"] } } }, { \"l\": \"fi\", \"t\": { \"No link provider found\": { \"v\": [\"Linkin tarjoajia ei löydetty\"] }, \"Write a message …\": { \"v\": [\"Kirjoita viesti…\"] } } }, { \"l\": \"fr\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Limite de messages de %n caractère atteinte\", \"Limite de messages de %n caractères atteinte\", \"Limite de messages de %n caractères atteinte\"] }, \"No link provider found\": { \"v\": [\"Aucun fournisseur de lien trouvé\"] }, \"Write a message …\": { \"v\": [\"Ecrire un message...\"] } } }, { \"l\": \"ga\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Sroicheadh ​​teorainn teachtaireachta de %n carachtar\", \"Sroicheadh ​​teorainn teachtaireachta de %n carachtar\", \"Sroicheadh ​​teorainn teachtaireachta de %n carachtar\", \"Sroicheadh ​​teorainn teachtaireachta de %n carachtar\", \"Sroicheadh ​​teorainn teachtaireachta de %n carachtar\"] }, \"No link provider found\": { \"v\": [\"Níor aimsíodh aon soláthraí naisc\"] }, \"Write a message …\": { \"v\": [\"Scríobh teachtaireacht …\"] } } }, { \"l\": \"gl\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Acadouse o límite de %n caracter por mensaxe\", \"Acadouse o límite de %n caracteres por mensaxe\"] }, \"No link provider found\": { \"v\": [\"Non se atopou ningún provedor de ligazóns\"] }, \"Write a message …\": { \"v\": [\"Escribir unha mensaxe…\"] } } }, { \"l\": \"he\", \"t\": { \"No link provider found\": { \"v\": [\"לא נמצא ספק קישורים\"] } } }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": { \"No link provider found\": { \"v\": [\"Tidak ada penyedia tautan yang ditemukan\"] }, \"Write a message …\": { \"v\": [\"Tulis pesan ...\"] } } }, { \"l\": \"is\", \"t\": { \"No link provider found\": { \"v\": [\"Engin tenglaveita fannst\"] }, \"Write a message …\": { \"v\": [\"Skrifaðu skilaboð …\"] } } }, { \"l\": \"it\", \"t\": { \"No link provider found\": { \"v\": [\"Nessun fornitore di link trovato\"] }, \"Write a message …\": { \"v\": [\"Scrivi un messaggio ...\"] } } }, { \"l\": \"ja\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"メッセージの%n文字の制限に達しました\"] }, \"No link provider found\": { \"v\": [\"リンクプロバイダーが見つかりません\"] }, \"Write a message …\": { \"v\": [\"メッセージを書く ...\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"No link provider found\": { \"v\": [\"リンクプロバイダーが見つかりません\"] }, \"Write a message …\": { \"v\": [\"メッセージを書く ...\"] } } }, { \"l\": \"ko\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"메시지 제한 %n자에 도달\"] }, \"No link provider found\": { \"v\": [\"링크 제공자 없음\"] }, \"Write a message …\": { \"v\": [\"메시지 작성...\"] } } }, { \"l\": \"lo\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"ຮອດຂີດຈຳກັດຂໍ້ຄວາມ %n ໂຕອັກສອນແລ້ວ\"] }, \"No link provider found\": { \"v\": [\"ບໍ່ພົບຜູ້ໃຫ້ບໍລິການລິງ\"] }, \"Write a message …\": { \"v\": [\"ຂຽນຂໍ້ຄວາມ…\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Достигнат е лимит од %n карактер\", \"Достигнат е лимит од %n карактери за порака\"] }, \"No link provider found\": { \"v\": [\"Не е пронајден давател на линк\"] }, \"Write a message …\": { \"v\": [\"Напиши порака …\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"No link provider found\": { \"v\": [\"Finner ingen lenkeleverandør\"] }, \"Write a message …\": { \"v\": [\"Skriv en melding...\"] } } }, { \"l\": \"nl\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Berichtlimiet van %n teken bereikt\", \"Berichtlimiet van %n tekens bereikt\"] }, \"No link provider found\": { \"v\": [\"Geen link provider gevonden\"] }, \"Write a message …\": { \"v\": [\"Schrijf een bericht …\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"No link provider found\": { \"v\": [\"Nie znaleziono dostawcy linków\"] }, \"Write a message …\": { \"v\": [\"Napisz wiadomość…\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Limite de mensagem de %n caractere atingido\", \"Limite de mensagem de %n de caracteres atingido\", \"Limite de mensagem de %n caracteres atingido\"] }, \"No link provider found\": { \"v\": [\"Nenhum provedor de link encontrado\"] }, \"Write a message …\": { \"v\": [\"Escreva uma mensagem …\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Limite de mensagem de %n carácter atingido\", \"Limite de mensagem de %n caracteres atingido\", \"Limite de mensagem de %n caracteres atingido\"] }, \"No link provider found\": { \"v\": [\"Nenhum fornecedor de link encontrado\"] }, \"Write a message …\": { \"v\": [\"Escreva uma mensagem...\"] } } }, { \"l\": \"ro\", \"t\": { \"No link provider found\": { \"v\": [\"Nu s-a găsit un provider pentru linkuri\"] }, \"Write a message …\": { \"v\": [\"Scrieți un mesaj ...\"] } } }, { \"l\": \"ru\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Достигнут лимит в %n символ\", \"Достигнут лимит в %n символа\", \"Достигнут лимит в %n символов\", \"Достигнут лимит в %n символов\"] }, \"No link provider found\": { \"v\": [\"Поставщик ссылок не найден\"] }, \"Write a message …\": { \"v\": [\"Напишите сообщение …\"] } } }, { \"l\": \"sk\", \"t\": { \"No link provider found\": { \"v\": [\"Žiaden odkaz poskytovateľa nebol nájdený\"] }, \"Write a message …\": { \"v\": [\"Napíšte správu…\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Достигнуто је ограничење величине поруке од %n карактер\", \"Достигнуто је ограничење величине поруке од %n карактера\", \"Достигнуто је ограничење величине поруке од %n карактера\"] }, \"No link provider found\": { \"v\": [\"Није пронађен ниједан пружалац линка\"] }, \"Write a message …\": { \"v\": [\"Напишите поруку…\"] } } }, { \"l\": \"sv\", \"t\": { \"No link provider found\": { \"v\": [\"Ingen länkleverantör hittades\"] }, \"Write a message …\": { \"v\": [\"Skriv ett meddelande …\"] } } }, { \"l\": \"tr\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"İleti için %n karakter sayısı sınırına ulaşıldı\", \"İleti için %n karakter sayısı sınırına ulaşıldı\"] }, \"No link provider found\": { \"v\": [\"Bağlantı hizmeti sağlayıcısı bulunamadı\"] }, \"Write a message …\": { \"v\": [\"Bir ileti yazın…\"] } } }, { \"l\": \"uk\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Досягнуто обмеження на довжину повідомлення у %n символ.\", \"Досягнуто обмеження на довжину повідомлення у %n символи.\", \"Досягнуто обмеження на довжину повідомлення у%n символів.\", \"Досягнуто обмеження на довжину повідомлення у %n символів.\"] }, \"No link provider found\": { \"v\": [\"Не наведено посилання\"] }, \"Write a message …\": { \"v\": [\"Створити повідомлення …\"] } } }, { \"l\": \"uz\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\" %n ta belgidan iborat xabar chegarasiga yetdi\"] }, \"No link provider found\": { \"v\": [\"Hech qanday havola provayderi topilmadi\"] }, \"Write a message …\": { \"v\": [\"Xabar yozish...\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"No link provider found\": { \"v\": [\"未找到任何链接提供者\"] }, \"Write a message …\": { \"v\": [\"编写信息 ...\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"已達到訊息最多 %n 字元限制\"] }, \"No link provider found\": { \"v\": [\"找不到連結提供者\"] }, \"Write a message …\": { \"v\": [\"編寫訊息 …\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"No link provider found\": { \"v\": [\"找不到連結提供者\"] }, \"Write a message …\": { \"v\": [\"編寫訊息……\"] } } }];\nconst t35 = [{ \"l\": \"ar\", \"t\": { \"More items …\": { \"v\": [\"عناصر أخرى ...\"] } } }, { \"l\": \"ast\", \"t\": { \"More items …\": { \"v\": [\"Más elementos…\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"More items …\": { \"v\": [\"Més artícles...\"] } } }, { \"l\": \"cs\", \"t\": { \"More items …\": { \"v\": [\"Další položky …\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"More items …\": { \"v\": [\"Další položky…\"] } } }, { \"l\": \"da\", \"t\": { \"More items …\": { \"v\": [\"Flere elementer ...\"] } } }, { \"l\": \"de\", \"t\": { \"More items …\": { \"v\": [\"Weitere Elemente …\"] } } }, { \"l\": \"de-DE\", \"t\": { \"More items …\": { \"v\": [\"Weitere Elemente …\"] } } }, { \"l\": \"el\", \"t\": { \"More items …\": { \"v\": [\"Περισσότερα στοιχεία …\"] } } }, { \"l\": \"en-GB\", \"t\": { \"More items …\": { \"v\": [\"More items …\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"More items …\": { \"v\": [\"Más ítems ...\"] } } }, { \"l\": \"es-AR\", \"t\": { \"More items …\": { \"v\": [\"Más elementos...\"] } } }, { \"l\": \"es-EC\", \"t\": { \"More items …\": { \"v\": [\"Más elementos...\"] } } }, { \"l\": \"es-MX\", \"t\": { \"More items …\": { \"v\": [\"Más Elementos ...\"] } } }, { \"l\": \"et-EE\", \"t\": { \"More items …\": { \"v\": [\"Vaata veel …\"] } } }, { \"l\": \"eu\", \"t\": { \"More items …\": { \"v\": [\"Elementu gehiago …\"] } } }, { \"l\": \"fa\", \"t\": { \"More items …\": { \"v\": [\"موارد بیشتر ...\"] } } }, { \"l\": \"fi\", \"t\": { \"More items …\": { \"v\": [\"Lisää kohteita…\"] } } }, { \"l\": \"fr\", \"t\": { \"More items …\": { \"v\": [\"Plus d'éléments...\"] } } }, { \"l\": \"ga\", \"t\": { \"More items …\": { \"v\": [\"Tuilleadh míreanna …\"] } } }, { \"l\": \"gl\", \"t\": { \"More items …\": { \"v\": [\"Máis elementos…\"] } } }, { \"l\": \"he\", \"t\": { \"More items …\": { \"v\": [\"פריטים נוספים…\"] } } }, { \"l\": \"hu\", \"t\": { \"More items …\": { \"v\": [\"További elemek...\"] } } }, { \"l\": \"id\", \"t\": { \"More items …\": { \"v\": [\"Item lainnya…\"] } } }, { \"l\": \"is\", \"t\": { \"More items …\": { \"v\": [\"Fleiri atriði …\"] } } }, { \"l\": \"it\", \"t\": { \"More items …\": { \"v\": [\"Più elementi ...\"] } } }, { \"l\": \"ja\", \"t\": { \"More items …\": { \"v\": [\"他のアイテム …\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"More items …\": { \"v\": [\"他のアイテム\"] } } }, { \"l\": \"ko\", \"t\": { \"More items …\": { \"v\": [\"항목 더 보기...\"] } } }, { \"l\": \"lo\", \"t\": { \"More items …\": { \"v\": [\"ລາຍການເພີ່ມເຕີມ…\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"More items …\": { \"v\": [\"Повеќе елементи …\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"More items …\": { \"v\": [\"Flere gjenstander...\"] } } }, { \"l\": \"nl\", \"t\": { \"More items …\": { \"v\": [\"Meer items …\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"More items …\": { \"v\": [\"Więcej pozycji…\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"More items …\": { \"v\": [\"Mais itens …\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"More items …\": { \"v\": [\"Mais itens…\"] } } }, { \"l\": \"ro\", \"t\": { \"More items …\": { \"v\": [\"Mai multe articole ...\"] } } }, { \"l\": \"ru\", \"t\": { \"More items …\": { \"v\": [\"Больше элементов …\"] } } }, { \"l\": \"sk\", \"t\": { \"More items …\": { \"v\": [\"Viac položiek...\"] } } }, { \"l\": \"sl\", \"t\": { \"More items …\": { \"v\": [\"Več predmetov ...\"] } } }, { \"l\": \"sr\", \"t\": { \"More items …\": { \"v\": [\"Још ставки...\"] } } }, { \"l\": \"sv\", \"t\": { \"More items …\": { \"v\": [\"Fler objekt …\"] } } }, { \"l\": \"tr\", \"t\": { \"More items …\": { \"v\": [\"Diğer ögeler…\"] } } }, { \"l\": \"uk\", \"t\": { \"More items …\": { \"v\": [\"Більше …\"] } } }, { \"l\": \"uz\", \"t\": { \"More items …\": { \"v\": [\"Yana elementlar...\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"More items …\": { \"v\": [\"更多项目…\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"More items …\": { \"v\": [\"更多項目 …\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"More items …\": { \"v\": [\"更多項目……\"] } } }];\nconst t37 = [{ \"l\": \"ar\", \"t\": { \"No emoji found\": { \"v\": [\"لم يتم العثور على أي إيموجي emoji\"] } } }, { \"l\": \"ast\", \"t\": { \"No emoji found\": { \"v\": [\"Nun s'atopó nengún fustaxe\"] } } }, { \"l\": \"br\", \"t\": { \"No emoji found\": { \"v\": [\"Emoji ebet kavet\"] } } }, { \"l\": \"ca\", \"t\": { \"No emoji found\": { \"v\": [\"No s'ha trobat cap emoji\"] } } }, { \"l\": \"cs\", \"t\": { \"No emoji found\": { \"v\": [\"Nenalezeno žádné emoji\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"No emoji found\": { \"v\": [\"Nenalezeno žádné emoji\"] } } }, { \"l\": \"da\", \"t\": { \"No emoji found\": { \"v\": [\"Ingen emoji fundet\"] } } }, { \"l\": \"de\", \"t\": { \"No emoji found\": { \"v\": [\"Kein Emoji gefunden\"] } } }, { \"l\": \"de-DE\", \"t\": { \"No emoji found\": { \"v\": [\"Kein Emoji gefunden\"] } } }, { \"l\": \"el\", \"t\": { \"No emoji found\": { \"v\": [\"Δεν βρέθηκε emoji\"] } } }, { \"l\": \"en-GB\", \"t\": { \"No emoji found\": { \"v\": [\"No emoji found\"] } } }, { \"l\": \"eo\", \"t\": { \"No emoji found\": { \"v\": [\"La emoĝio forestas\"] } } }, { \"l\": \"es\", \"t\": { \"No emoji found\": { \"v\": [\"No se encontró ningún emoji\"] } } }, { \"l\": \"es-AR\", \"t\": { \"No emoji found\": { \"v\": [\"No se encontró ningún emoji\"] } } }, { \"l\": \"es-EC\", \"t\": { \"No emoji found\": { \"v\": [\"No se encontró ningún emoji\"] } } }, { \"l\": \"es-MX\", \"t\": { \"No emoji found\": { \"v\": [\"No se encontró ningún emoji\"] } } }, { \"l\": \"et-EE\", \"t\": { \"No emoji found\": { \"v\": [\"Emojit ei leitud\"] } } }, { \"l\": \"eu\", \"t\": { \"No emoji found\": { \"v\": [\"Ez da emojirik aurkitu\"] } } }, { \"l\": \"fa\", \"t\": { \"No emoji found\": { \"v\": [\"هیچ شکلکی یافت نشد\"] } } }, { \"l\": \"fi\", \"t\": { \"No emoji found\": { \"v\": [\"Emojia ei löytynyt\"] } } }, { \"l\": \"fr\", \"t\": { \"No emoji found\": { \"v\": [\"Pas d’émoji trouvé\"] } } }, { \"l\": \"ga\", \"t\": { \"No emoji found\": { \"v\": [\"Níor aimsíodh emoji\"] } } }, { \"l\": \"gl\", \"t\": { \"No emoji found\": { \"v\": [\"Non se atopou ningún «emoji»\"] } } }, { \"l\": \"he\", \"t\": { \"No emoji found\": { \"v\": [\"לא נמצא אמוג׳י\"] } } }, { \"l\": \"hu\", \"t\": { \"No emoji found\": { \"v\": [\"Nem található emodzsi\"] } } }, { \"l\": \"id\", \"t\": { \"No emoji found\": { \"v\": [\"Tidak ada emoji yang ditemukan\"] } } }, { \"l\": \"is\", \"t\": { \"No emoji found\": { \"v\": [\"Ekkert tjáningartákn fannst\"] } } }, { \"l\": \"it\", \"t\": { \"No emoji found\": { \"v\": [\"Nessun emoji trovato\"] } } }, { \"l\": \"ja\", \"t\": { \"No emoji found\": { \"v\": [\"絵文字が見つかりません\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"No emoji found\": { \"v\": [\"絵文字が見つかりません\"] } } }, { \"l\": \"ko\", \"t\": { \"No emoji found\": { \"v\": [\"이모지 없음\"] } } }, { \"l\": \"lo\", \"t\": { \"No emoji found\": { \"v\": [\"ບໍ່ພົບອີໂມຈິ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"No emoji found\": { \"v\": [\"Nerasta jaustukų\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"No emoji found\": { \"v\": [\"Не се пронајдени емотикони\"] } } }, { \"l\": \"my\", \"t\": { \"No emoji found\": { \"v\": [\"အီမိုဂျီ ရှာဖွေမတွေ့နိုင်ပါ\"] } } }, { \"l\": \"nb\", \"t\": { \"No emoji found\": { \"v\": [\"Fant ingen emoji\"] } } }, { \"l\": \"nl\", \"t\": { \"No emoji found\": { \"v\": [\"Geen emoji gevonden\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"No emoji found\": { \"v\": [\"Nie znaleziono emoji\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"No emoji found\": { \"v\": [\"Nenhum emoji encontrado\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"No emoji found\": { \"v\": [\"Nenhum emoji encontrado\"] } } }, { \"l\": \"ro\", \"t\": { \"No emoji found\": { \"v\": [\"Nu s-a găsit niciun emoji\"] } } }, { \"l\": \"ru\", \"t\": { \"No emoji found\": { \"v\": [\"Эмодзи не найдено\"] } } }, { \"l\": \"sk\", \"t\": { \"No emoji found\": { \"v\": [\"Nenašli sa žiadne emodži\"] } } }, { \"l\": \"sl\", \"t\": { \"No emoji found\": { \"v\": [\"Ni najdenih izraznih ikon\"] } } }, { \"l\": \"sr\", \"t\": { \"No emoji found\": { \"v\": [\"Није пронађен ниједан емођи\"] } } }, { \"l\": \"sv\", \"t\": { \"No emoji found\": { \"v\": [\"Hittade inga emojis\"] } } }, { \"l\": \"tr\", \"t\": { \"No emoji found\": { \"v\": [\"Herhangi bir emoji bulunamadı\"] } } }, { \"l\": \"uk\", \"t\": { \"No emoji found\": { \"v\": [\"Емоційки відсутні\"] } } }, { \"l\": \"uz\", \"t\": { \"No emoji found\": { \"v\": [\"Hech qanday emoji topilmadi\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"No emoji found\": { \"v\": [\"表情未找到\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"No emoji found\": { \"v\": [\"未找到表情符號\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"No emoji found\": { \"v\": [\"未找到表情符號\"] } } }];\nconst t38 = [{ \"l\": \"ar\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['إفتَح الرابط إلى \"{resourceName}\"'] } } }, { \"l\": \"ast\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"Abrir l'enllaz a «{resourceName}»\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"Otevřít odkaz na „{resourceName}“\"] } } }, { \"l\": \"cs-CZ\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"Otevřít odkaz na „{resourceName}“\"] } } }, { \"l\": \"da\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Åbn link til \"{resourceName}\"'] } } }, { \"l\": \"de\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Link zu \"{resourceName}\" öffnen'] } } }, { \"l\": \"de-DE\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Link zu \"{resourceName}\" öffnen'] } } }, { \"l\": \"el\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Άνοιγμα συνδέσμου για \"{resourceName}\"'] } } }, { \"l\": \"en-GB\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Open link to \"{resourceName}\"'] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Abrir enlace a \"{resourceName}\"'] } } }, { \"l\": \"es-AR\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Abrir enlace a \"{resourceName}\"'] } } }, { \"l\": \"es-EC\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Abrir enlace a \"{resourceName}\"'] } } }, { \"l\": \"es-MX\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Abrir enlace a \"{resourceName}\"'] } } }, { \"l\": \"et-EE\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"Ava link „{resourceName}“\"] } } }, { \"l\": \"eu\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Ireki \"{resourceName}\" esteka'] } } }, { \"l\": \"fa\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"باز کردن پیوند به «{resourceName}»\"] } } }, { \"l\": \"fi\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Avaa linkki \"{resourceName}\"'] } } }, { \"l\": \"fr\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Ouvrir le lien vers \"{resourceName}\"'] } } }, { \"l\": \"ga\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Oscail nasc chuig \"{resourceName}\"'] } } }, { \"l\": \"gl\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"Abrir a ligazón a «{resourceName}»\"] } } }, { \"l\": \"he\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"פתיחת קישור אל „{resourceName}”\"] } } }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Buka tautan ke \"{resourceName}\"'] } } }, { \"l\": \"is\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Opna tengil í \"{resourceName}\"'] } } }, { \"l\": \"it\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Apri il link a \"{resourceName}\"'] } } }, { \"l\": \"ja\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['\"{resourceName}\" へのリンクを開く'] } } }, { \"l\": \"ja-JP\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['\"{resourceName}\" へのリンクを開く'] } } }, { \"l\": \"ko\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['\"{resourceName}\"의 링크 열기'] } } }, { \"l\": \"lo\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"ເປີດລິງໄປທີ່ “{resourceName}”\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Отвори линк до \"{resourceName}\"'] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Åpne lenken til \"{resourceName}\"'] } } }, { \"l\": \"nl\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Link naar \"{resourceName}\" openen'] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Otwórz link do \"{resourceName}\"'] } } }, { \"l\": \"pt-BR\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Abrir o link para \"{resourceName}\"'] } } }, { \"l\": \"pt-PT\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Abrir link para \"{resourceName}\"'] } } }, { \"l\": \"ro\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Deschide linkul la \"{resourceName}\"'] } } }, { \"l\": \"ru\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Открыть ссылку на \"{resourceName}\"'] } } }, { \"l\": \"sk\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Otvoriť link v \"{resourceName}\"'] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"Отвори линк на „{resourceName}”\"] } } }, { \"l\": \"sv\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Öppna länken till \"{resourceName}\"'] } } }, { \"l\": \"tr\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Bağlantıyı \"{resourceName}\" üzerine aç'] } } }, { \"l\": \"uk\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Відкрити посилання на \"{resourceName}\"'] } } }, { \"l\": \"uz\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [' \"{resourceName}\" ga havolani ochish'] } } }, { \"l\": \"zh-CN\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"打开 “{resourceName}” 的链接\"] } } }, { \"l\": \"zh-HK\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"開啟到「{resourceName}」的連結\"] } } }, { \"l\": \"zh-TW\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"開啟到「{resourceName}」的連結\"] } } }];\nconst t40 = [{ \"l\": \"ar\", \"t\": { \"Provider icon\": { \"v\": [\"أيقونة المزوّد\"] } } }, { \"l\": \"ast\", \"t\": { \"Provider icon\": { \"v\": [\"Iconu del fornidor\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Provider icon\": { \"v\": [\"Ikona poskytovatele\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Provider icon\": { \"v\": [\"Ikona poskytovatele\"] } } }, { \"l\": \"da\", \"t\": { \"Provider icon\": { \"v\": [\"Udbyder ikon\"] } } }, { \"l\": \"de\", \"t\": { \"Provider icon\": { \"v\": [\"Anbietersymbol\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Provider icon\": { \"v\": [\"Anbietersymbol\"] } } }, { \"l\": \"el\", \"t\": { \"Provider icon\": { \"v\": [\"Εικονίδιο παρόχου\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Provider icon\": { \"v\": [\"Provider icon\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Provider icon\": { \"v\": [\"Ícono del proveedor\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Provider icon\": { \"v\": [\"Ícono del proveedor\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Provider icon\": { \"v\": [\"Ícono del proveedor\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Provider icon\": { \"v\": [\"Ícono del proveedor\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Provider icon\": { \"v\": [\"Teenusepakkuja ikoon\"] } } }, { \"l\": \"eu\", \"t\": { \"Provider icon\": { \"v\": [\"Hornitzailearen ikonoa\"] } } }, { \"l\": \"fa\", \"t\": { \"Provider icon\": { \"v\": [\"آیکون ارائه دهنده\"] } } }, { \"l\": \"fi\", \"t\": { \"Provider icon\": { \"v\": [\"Palveluntarjoajan kuvake\"] } } }, { \"l\": \"fr\", \"t\": { \"Provider icon\": { \"v\": [\"Icône du fournisseur\"] } } }, { \"l\": \"ga\", \"t\": { \"Provider icon\": { \"v\": [\"Deilbhín soláthraí\"] } } }, { \"l\": \"gl\", \"t\": { \"Provider icon\": { \"v\": [\"Icona do provedor\"] } } }, { \"l\": \"he\", \"t\": { \"Provider icon\": { \"v\": [\"סמל ספק\"] } } }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": { \"Provider icon\": { \"v\": [\"Ikon penyedia\"] } } }, { \"l\": \"is\", \"t\": { \"Provider icon\": { \"v\": [\"Táknmynd þjónustuveitu\"] } } }, { \"l\": \"it\", \"t\": { \"Provider icon\": { \"v\": [\"Icona del provider\"] } } }, { \"l\": \"ja\", \"t\": { \"Provider icon\": { \"v\": [\"プロバイダーのアイコン\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Provider icon\": { \"v\": [\"プロバイダーのアイコン\"] } } }, { \"l\": \"ko\", \"t\": { \"Provider icon\": { \"v\": [\"제공자 아이콘\"] } } }, { \"l\": \"lo\", \"t\": { \"Provider icon\": { \"v\": [\"ໄອຄອນຜູ້ໃຫ້ບໍລິການ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Provider icon\": { \"v\": [\"Икона на давател\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Provider icon\": { \"v\": [\"Leverandørikon\"] } } }, { \"l\": \"nl\", \"t\": { \"Provider icon\": { \"v\": [\"Provider-pictogram\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Provider icon\": { \"v\": [\"Dostawca ikony\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Provider icon\": { \"v\": [\"Ícone do provedor\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Provider icon\": { \"v\": [\"Ícone do fornecedor\"] } } }, { \"l\": \"ro\", \"t\": { \"Provider icon\": { \"v\": [\"Provider pentru icon\"] } } }, { \"l\": \"ru\", \"t\": { \"Provider icon\": { \"v\": [\"Значок поставщика\"] } } }, { \"l\": \"sk\", \"t\": { \"Provider icon\": { \"v\": [\"Ikonka poskytovateľa\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Provider icon\": { \"v\": [\"Икона пружаоца\"] } } }, { \"l\": \"sv\", \"t\": { \"Provider icon\": { \"v\": [\"Leverantörsikon\"] } } }, { \"l\": \"tr\", \"t\": { \"Provider icon\": { \"v\": [\"Hizmet sağlayıcı simgesi\"] } } }, { \"l\": \"uk\", \"t\": { \"Provider icon\": { \"v\": [\"Піктограма постачальника\"] } } }, { \"l\": \"uz\", \"t\": { \"Provider icon\": { \"v\": [\"Provayder belgisi\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Provider icon\": { \"v\": [\"提供者图标\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Provider icon\": { \"v\": [\"提供者圖示\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Provider icon\": { \"v\": [\"提供者圖示\"] } } }];\nconst t41 = [{ \"l\": \"ar\", \"t\": { \"Related team resources\": { \"v\": [\"موارد للفريق ذات صلة\"] }, \"View team\": { \"v\": [\"عرض الفريق\"] } } }, { \"l\": \"ast\", \"t\": { \"Related team resources\": { \"v\": [\"Recursos rellacionaos colos equipos\"] }, \"View team\": { \"v\": [\"Ver l'equipu\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Related team resources\": { \"v\": [\"Související prostředky kolektivu\"] }, \"View team\": { \"v\": [\"Zobrazit kolektiv\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Related team resources\": { \"v\": [\"Relaterede teamressourcer\"] }, \"View team\": { \"v\": [\"Se teamet\"] } } }, { \"l\": \"de\", \"t\": { \"Related team resources\": { \"v\": [\"Verwandte Team-Ressourcen\"] }, \"View team\": { \"v\": [\"Team anzeigen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Related team resources\": { \"v\": [\"Verwandte Team-Ressourcen\"] }, \"View team\": { \"v\": [\"Team anzeigen\"] } } }, { \"l\": \"el\", \"t\": { \"Related team resources\": { \"v\": [\"Σχετικοί πόροι ομάδας\"] }, \"View team\": { \"v\": [\"Προβολή ομάδας\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Related team resources\": { \"v\": [\"Related team resources\"] }, \"View team\": { \"v\": [\"View team\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Related team resources\": { \"v\": [\"Recursos de equipo relacionados\"] }, \"View team\": { \"v\": [\"Ver equipo\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Related team resources\": { \"v\": [\"Recursos de equipo relacionados\"] }, \"View team\": { \"v\": [\"Ver equipo\"] } } }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": { \"Related team resources\": { \"v\": [\"Recursos de equipo relacionados\"] }, \"View team\": { \"v\": [\"Ver equipo\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Related team resources\": { \"v\": [\"Tiimi seotud ressursid\"] }, \"View team\": { \"v\": [\"Vaata tiimi\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"Related team resources\": { \"v\": [\"منابع تیمی مرتبط\"] }, \"View team\": { \"v\": [\"مشاهده گروه\"] } } }, { \"l\": \"fi\", \"t\": { \"Related team resources\": { \"v\": [\"Liittyvät tiimiresurssit\"] }, \"View team\": { \"v\": [\"Näytä tiimi\"] } } }, { \"l\": \"fr\", \"t\": { \"Related team resources\": { \"v\": [\"Ressources d'équipe associées\"] }, \"View team\": { \"v\": [\"Voir l'équipe\"] } } }, { \"l\": \"ga\", \"t\": { \"Related team resources\": { \"v\": [\"Acmhainní foirne gaolmhara\"] }, \"View team\": { \"v\": [\"Féach ar an bhfoireann\"] } } }, { \"l\": \"gl\", \"t\": { \"Related team resources\": { \"v\": [\"Recursos de equipo relacionados\"] }, \"View team\": { \"v\": [\"Ver o equipo\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": {} }, { \"l\": \"is\", \"t\": { \"Related team resources\": { \"v\": [\"Tengd tilföng teymis\"] }, \"View team\": { \"v\": [\"Skoða teymi\"] } } }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Related team resources\": { \"v\": [\"チームの関連リソース\"] }, \"View team\": { \"v\": [\"チームを表示\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Related team resources\": { \"v\": [\"チームの関連リソース\"] }, \"View team\": { \"v\": [\"チームを表示\"] } } }, { \"l\": \"ko\", \"t\": { \"Related team resources\": { \"v\": [\"관련 팀 리소스\"] }, \"View team\": { \"v\": [\"팀 보기\"] } } }, { \"l\": \"lo\", \"t\": { \"Related team resources\": { \"v\": [\"ຊັບພະຍາກອນຂອງທີມທີ່ກ່ຽວຂ້ອງ\"] }, \"View team\": { \"v\": [\"ເບິ່ງທີມ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Related team resources\": { \"v\": [\"Поврзани ресурси на тимот\"] }, \"View team\": { \"v\": [\"Прикажи тим\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Related team resources\": { \"v\": [\"Relaterte lagressurser\"] }, \"View team\": { \"v\": [\"Se lag\"] } } }, { \"l\": \"nl\", \"t\": { \"Related team resources\": { \"v\": [\"Verwante teambronnen\"] }, \"View team\": { \"v\": [\"Team bekijken\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Related team resources\": { \"v\": [\"Powiązane zasoby grupowe\"] }, \"View team\": { \"v\": [\"Zobacz grupę\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Related team resources\": { \"v\": [\"Recursos de equipe relacionados\"] }, \"View team\": { \"v\": [\"Ver equipe\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Related team resources\": { \"v\": [\"Recursos relacionados com a equipa\"] }, \"View team\": { \"v\": [\"Ver equipa\"] } } }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Related team resources\": { \"v\": [\"Связанные командные ресурсы\"] }, \"View team\": { \"v\": [\"Просмотр команды\"] } } }, { \"l\": \"sk\", \"t\": { \"Related team resources\": { \"v\": [\"Súvisiace tímové zdroje\"] }, \"View team\": { \"v\": [\"Zobraziť tím\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Related team resources\": { \"v\": [\"Повезани тимски ресурси\"] }, \"View team\": { \"v\": [\"Прикажи тим\"] } } }, { \"l\": \"sv\", \"t\": { \"Related team resources\": { \"v\": [\"Relaterade teamresurser\"] }, \"View team\": { \"v\": [\"Visa team\"] } } }, { \"l\": \"tr\", \"t\": { \"Related team resources\": { \"v\": [\"İlgili takım kaynakları\"] }, \"View team\": { \"v\": [\"Takımı görüntüle\"] } } }, { \"l\": \"uk\", \"t\": { \"Related team resources\": { \"v\": [\"Пов'язані ресурси команди\"] }, \"View team\": { \"v\": [\"Переглянути команду\"] } } }, { \"l\": \"uz\", \"t\": { \"Related team resources\": { \"v\": [\"Tegishli jamoa resurslari\"] }, \"View team\": { \"v\": [\"Jamoani ko'rish\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Related team resources\": { \"v\": [\"相关团队资源\"] }, \"View team\": { \"v\": [\"查看团队\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Related team resources\": { \"v\": [\"相關團隊資源\"] }, \"View team\": { \"v\": [\"查看團隊\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Related team resources\": { \"v\": [\"相關團隊資源\"] }, \"View team\": { \"v\": [\"檢視團隊\"] } } }];\nconst t42 = [{ \"l\": \"ar\", \"t\": { \"Search\": { \"v\": [\"بحث\"] } } }, { \"l\": \"ast\", \"t\": { \"Search\": { \"v\": [\"Buscar\"] } } }, { \"l\": \"br\", \"t\": { \"Search\": { \"v\": [\"Klask\"] } } }, { \"l\": \"ca\", \"t\": { \"Search\": { \"v\": [\"Cerca\"] } } }, { \"l\": \"cs\", \"t\": { \"Search\": { \"v\": [\"Hledat\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Search\": { \"v\": [\"Hledat\"] } } }, { \"l\": \"da\", \"t\": { \"Search\": { \"v\": [\"Søg\"] } } }, { \"l\": \"de\", \"t\": { \"Search\": { \"v\": [\"Suche\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Search\": { \"v\": [\"Suche\"] } } }, { \"l\": \"el\", \"t\": { \"Search\": { \"v\": [\"Αναζήτηση\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Search\": { \"v\": [\"Search\"] } } }, { \"l\": \"eo\", \"t\": { \"Search\": { \"v\": [\"Serĉi\"] } } }, { \"l\": \"es\", \"t\": { \"Search\": { \"v\": [\"Buscar\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Search\": { \"v\": [\"Buscar\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Search\": { \"v\": [\"Buscar\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Search\": { \"v\": [\"Buscar\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Search\": { \"v\": [\"Otsing\"] } } }, { \"l\": \"eu\", \"t\": { \"Search\": { \"v\": [\"Bilatu\"] } } }, { \"l\": \"fa\", \"t\": { \"Search\": { \"v\": [\"جستجو\"] } } }, { \"l\": \"fi\", \"t\": { \"Search\": { \"v\": [\"Etsi\"] } } }, { \"l\": \"fr\", \"t\": { \"Search\": { \"v\": [\"Rechercher\"] } } }, { \"l\": \"ga\", \"t\": { \"Search\": { \"v\": [\"Cuardach\"] } } }, { \"l\": \"gl\", \"t\": { \"Search\": { \"v\": [\"Buscar\"] } } }, { \"l\": \"he\", \"t\": { \"Search\": { \"v\": [\"חיפוש\"] } } }, { \"l\": \"hu\", \"t\": { \"Search\": { \"v\": [\"Keresés\"] } } }, { \"l\": \"id\", \"t\": { \"Search\": { \"v\": [\"Cari\"] } } }, { \"l\": \"is\", \"t\": { \"Search\": { \"v\": [\"Leita\"] } } }, { \"l\": \"it\", \"t\": { \"Search\": { \"v\": [\"Cerca\"] } } }, { \"l\": \"ja\", \"t\": { \"Search\": { \"v\": [\"検索\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Search\": { \"v\": [\"検索\"] } } }, { \"l\": \"ko\", \"t\": { \"Search\": { \"v\": [\"검색\"] } } }, { \"l\": \"lo\", \"t\": { \"Search\": { \"v\": [\"ຄົ້ນຫາ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Search\": { \"v\": [\"Ieškoti\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Search\": { \"v\": [\"Барај\"] } } }, { \"l\": \"my\", \"t\": { \"Search\": { \"v\": [\"ရှာဖွေရန်\"] } } }, { \"l\": \"nb\", \"t\": { \"Search\": { \"v\": [\"Søk\"] } } }, { \"l\": \"nl\", \"t\": { \"Search\": { \"v\": [\"Zoeken\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Search\": { \"v\": [\"Szukaj\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Search\": { \"v\": [\"Pesquisar\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Search\": { \"v\": [\"Pesquisar\"] } } }, { \"l\": \"ro\", \"t\": { \"Search\": { \"v\": [\"Căutare\"] } } }, { \"l\": \"ru\", \"t\": { \"Search\": { \"v\": [\"Поиск\"] } } }, { \"l\": \"sk\", \"t\": { \"Search\": { \"v\": [\"Hľadať\"] } } }, { \"l\": \"sl\", \"t\": { \"Search\": { \"v\": [\"Iskanje\"] } } }, { \"l\": \"sr\", \"t\": { \"Search\": { \"v\": [\"Претражи\"] } } }, { \"l\": \"sv\", \"t\": { \"Search\": { \"v\": [\"Sök\"] } } }, { \"l\": \"tr\", \"t\": { \"Search\": { \"v\": [\"Ara\"] } } }, { \"l\": \"uk\", \"t\": { \"Search\": { \"v\": [\"Пошук\"] } } }, { \"l\": \"uz\", \"t\": { \"Search\": { \"v\": [\"Qidiruv\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Search\": { \"v\": [\"搜索\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Search\": { \"v\": [\"搜尋\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Search\": { \"v\": [\"搜尋\"] } } }];\nconst t45 = [{ \"l\": \"ar\", \"t\": { \"Select provider\": { \"v\": [\"اختر مزود\"] } } }, { \"l\": \"ast\", \"t\": { \"Select provider\": { \"v\": [\"Seleicionar el fornidor\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Select provider\": { \"v\": [\"Vybrat poskytovatele\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Select provider\": { \"v\": [\"Vybrat poskytovatele\"] } } }, { \"l\": \"da\", \"t\": { \"Select provider\": { \"v\": [\"Vælg udbyder\"] } } }, { \"l\": \"de\", \"t\": { \"Select provider\": { \"v\": [\"Anbieter auswählen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Select provider\": { \"v\": [\"Anbieter auswählen\"] } } }, { \"l\": \"el\", \"t\": { \"Select provider\": { \"v\": [\"Επιλογή παρόχου\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Select provider\": { \"v\": [\"Select provider\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Select provider\": { \"v\": [\"Seleccione proveedor\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Select provider\": { \"v\": [\"Elija proveedor\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Select provider\": { \"v\": [\"Seleccionar proveedor\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Select provider\": { \"v\": [\"Seleccionar proveedor\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Select provider\": { \"v\": [\"Vali teenuspakkuja\"] } } }, { \"l\": \"eu\", \"t\": { \"Select provider\": { \"v\": [\"Hautatu hornitzailea\"] } } }, { \"l\": \"fa\", \"t\": { \"Select provider\": { \"v\": [\"ارائه دهنده را انتخاب کنید\"] } } }, { \"l\": \"fi\", \"t\": { \"Select provider\": { \"v\": [\"Valitse tarjoaja\"] } } }, { \"l\": \"fr\", \"t\": { \"Select provider\": { \"v\": [\"Sélectionner un fournisseur\"] } } }, { \"l\": \"ga\", \"t\": { \"Select provider\": { \"v\": [\"Roghnaigh soláthraí\"] } } }, { \"l\": \"gl\", \"t\": { \"Select provider\": { \"v\": [\"Seleccione o provedor\"] } } }, { \"l\": \"he\", \"t\": { \"Select provider\": { \"v\": [\"בחירת ספק\"] } } }, { \"l\": \"hu\", \"t\": {} }, { \"l\": \"id\", \"t\": { \"Select provider\": { \"v\": [\"Pilih penyedia\"] } } }, { \"l\": \"is\", \"t\": { \"Select provider\": { \"v\": [\"Veldu þjónustuveitu\"] } } }, { \"l\": \"it\", \"t\": { \"Select provider\": { \"v\": [\"Selezionare il provider\"] } } }, { \"l\": \"ja\", \"t\": { \"Select provider\": { \"v\": [\"プロバイダーを選択\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Select provider\": { \"v\": [\"プロバイダーを選択\"] } } }, { \"l\": \"ko\", \"t\": { \"Select provider\": { \"v\": [\"제공자 선택\"] } } }, { \"l\": \"lo\", \"t\": { \"Select provider\": { \"v\": [\"ເລືອກຜູ້ໃຫ້ບໍລິການ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Select provider\": { \"v\": [\"Избери провајдер\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Select provider\": { \"v\": [\"Velg leverandør\"] } } }, { \"l\": \"nl\", \"t\": { \"Select provider\": { \"v\": [\"Selecteer provider\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Select provider\": { \"v\": [\"Wybierz dostawcę\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Select provider\": { \"v\": [\"Selecione provedor\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Select provider\": { \"v\": [\"Selecionar fornecedor\"] } } }, { \"l\": \"ro\", \"t\": { \"Select provider\": { \"v\": [\"Selectați providerul\"] } } }, { \"l\": \"ru\", \"t\": { \"Select provider\": { \"v\": [\"Выбрать поставщика\"] } } }, { \"l\": \"sk\", \"t\": { \"Select provider\": { \"v\": [\"Vybrať poskytovateľa\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Select provider\": { \"v\": [\"Изаберите пружаоца\"] } } }, { \"l\": \"sv\", \"t\": { \"Select provider\": { \"v\": [\"Välj leverantör\"] } } }, { \"l\": \"tr\", \"t\": { \"Select provider\": { \"v\": [\"Hizmet sağlayıcı seçin\"] } } }, { \"l\": \"uk\", \"t\": { \"Select provider\": { \"v\": [\"Виберіть постачальника\"] } } }, { \"l\": \"uz\", \"t\": { \"Select provider\": { \"v\": [\"Provayderni tanlang\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Select provider\": { \"v\": [\"选择提供者\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Select provider\": { \"v\": [\"選擇提供者\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Select provider\": { \"v\": [\"選取提供者\"] } } }];\nconst t48 = [{ \"l\": \"ar\", \"t\": { \"Submit\": { \"v\": [\"إرسال\"] } } }, { \"l\": \"ast\", \"t\": { \"Submit\": { \"v\": [\"Unviar\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Submit\": { \"v\": [\"Envia\"] } } }, { \"l\": \"cs\", \"t\": { \"Submit\": { \"v\": [\"Odeslat\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Submit\": { \"v\": [\"Odeslat\"] } } }, { \"l\": \"da\", \"t\": { \"Submit\": { \"v\": [\"Send\"] } } }, { \"l\": \"de\", \"t\": { \"Submit\": { \"v\": [\"Einreichen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Submit\": { \"v\": [\"Einreichen\"] } } }, { \"l\": \"el\", \"t\": { \"Submit\": { \"v\": [\"Υποβολή\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Submit\": { \"v\": [\"Submit\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Submit\": { \"v\": [\"Enviar\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Submit\": { \"v\": [\"Enviar\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Submit\": { \"v\": [\"Enviar\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Submit\": { \"v\": [\"Enviar\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Submit\": { \"v\": [\"Saada\"] } } }, { \"l\": \"eu\", \"t\": { \"Submit\": { \"v\": [\"Bidali\"] } } }, { \"l\": \"fa\", \"t\": { \"Submit\": { \"v\": [\"ارسال\"] } } }, { \"l\": \"fi\", \"t\": { \"Submit\": { \"v\": [\"Lähetä\"] } } }, { \"l\": \"fr\", \"t\": { \"Submit\": { \"v\": [\"Valider\"] } } }, { \"l\": \"ga\", \"t\": { \"Submit\": { \"v\": [\"Cuir isteach\"] } } }, { \"l\": \"gl\", \"t\": { \"Submit\": { \"v\": [\"Enviar\"] } } }, { \"l\": \"he\", \"t\": { \"Submit\": { \"v\": [\"הגשה\"] } } }, { \"l\": \"hu\", \"t\": { \"Submit\": { \"v\": [\"Beküldés\"] } } }, { \"l\": \"id\", \"t\": { \"Submit\": { \"v\": [\"Kirimkan\"] } } }, { \"l\": \"is\", \"t\": { \"Submit\": { \"v\": [\"Senda inn\"] } } }, { \"l\": \"it\", \"t\": { \"Submit\": { \"v\": [\"Invia\"] } } }, { \"l\": \"ja\", \"t\": { \"Submit\": { \"v\": [\"提出\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Submit\": { \"v\": [\"提出\"] } } }, { \"l\": \"ko\", \"t\": { \"Submit\": { \"v\": [\"제출\"] } } }, { \"l\": \"lo\", \"t\": { \"Submit\": { \"v\": [\"ສົ່ງ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Submit\": { \"v\": [\"Pateikti\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Submit\": { \"v\": [\"Испрати\"] } } }, { \"l\": \"my\", \"t\": { \"Submit\": { \"v\": [\"တင်သွင်းရန်\"] } } }, { \"l\": \"nb\", \"t\": { \"Submit\": { \"v\": [\"Send\"] } } }, { \"l\": \"nl\", \"t\": { \"Submit\": { \"v\": [\"Indienen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Submit\": { \"v\": [\"Wyślij\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Submit\": { \"v\": [\"Enviar\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Submit\": { \"v\": [\"Submeter\"] } } }, { \"l\": \"ro\", \"t\": { \"Submit\": { \"v\": [\"Trimiteți\"] } } }, { \"l\": \"ru\", \"t\": { \"Submit\": { \"v\": [\"Утвердить\"] } } }, { \"l\": \"sk\", \"t\": { \"Submit\": { \"v\": [\"Odoslať\"] } } }, { \"l\": \"sl\", \"t\": { \"Submit\": { \"v\": [\"Pošlji\"] } } }, { \"l\": \"sr\", \"t\": { \"Submit\": { \"v\": [\"Поднеси\"] } } }, { \"l\": \"sv\", \"t\": { \"Submit\": { \"v\": [\"Skicka\"] } } }, { \"l\": \"tr\", \"t\": { \"Submit\": { \"v\": [\"Gönder\"] } } }, { \"l\": \"uk\", \"t\": { \"Submit\": { \"v\": [\"Надіслати\"] } } }, { \"l\": \"uz\", \"t\": { \"Submit\": { \"v\": [\"Yuborish\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Submit\": { \"v\": [\"提交\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Submit\": { \"v\": [\"提交\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Submit\": { \"v\": [\"遞交\"] } } }];\nconst t49 = [{ \"l\": \"ar\", \"t\": { \"Unable to search the group\": { \"v\": [\"تعذّر البحث في المجموعة\"] } } }, { \"l\": \"ast\", \"t\": { \"Unable to search the group\": { \"v\": [\"Nun ye posible buscar el grupu\"] } } }, { \"l\": \"br\", \"t\": { \"Unable to search the group\": { \"v\": [\"Dibosupl eo klask ar strollad\"] } } }, { \"l\": \"ca\", \"t\": { \"Unable to search the group\": { \"v\": [\"No es pot cercar el grup\"] } } }, { \"l\": \"cs\", \"t\": { \"Unable to search the group\": { \"v\": [\"Nedaří se hledat skupinu\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Unable to search the group\": { \"v\": [\"Nedaří se hledat skupinu\"] } } }, { \"l\": \"da\", \"t\": { \"Unable to search the group\": { \"v\": [\"Kan ikke søge på denne gruppe\"] } } }, { \"l\": \"de\", \"t\": { \"Unable to search the group\": { \"v\": [\"Die Gruppe kann nicht durchsucht werden\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Unable to search the group\": { \"v\": [\"Die Gruppe kann nicht durchsucht werden\"] } } }, { \"l\": \"el\", \"t\": { \"Unable to search the group\": { \"v\": [\"Δεν είναι δυνατή η αναζήτηση της ομάδας\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Unable to search the group\": { \"v\": [\"Unable to search the group\"] } } }, { \"l\": \"eo\", \"t\": { \"Unable to search the group\": { \"v\": [\"Ne eblas serĉi en la grupo\"] } } }, { \"l\": \"es\", \"t\": { \"Unable to search the group\": { \"v\": [\"No es posible buscar en el grupo\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Unable to search the group\": { \"v\": [\"No se puede buscar el grupo\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Unable to search the group\": { \"v\": [\"No se puede buscar en el grupo\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Unable to search the group\": { \"v\": [\"No fue posible buscar en el grupo\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Unable to search the group\": { \"v\": [\"Gruppi ei ole võimalik otsida\"] } } }, { \"l\": \"eu\", \"t\": { \"Unable to search the group\": { \"v\": [\"Ezin izan da taldea bilatu\"] } } }, { \"l\": \"fa\", \"t\": { \"Unable to search the group\": { \"v\": [\"امکان جستجوی گروه وجود ندارد\"] } } }, { \"l\": \"fi\", \"t\": { \"Unable to search the group\": { \"v\": [\"Ryhmää ei voi hakea\"] } } }, { \"l\": \"fr\", \"t\": { \"Unable to search the group\": { \"v\": [\"Impossible de chercher le groupe\"] } } }, { \"l\": \"ga\", \"t\": { \"Unable to search the group\": { \"v\": [\"Ní féidir an grúpa a chuardach\"] } } }, { \"l\": \"gl\", \"t\": { \"Unable to search the group\": { \"v\": [\"Non foi posíbel buscar o grupo\"] } } }, { \"l\": \"he\", \"t\": { \"Unable to search the group\": { \"v\": [\"לא ניתן לחפש בקבוצה\"] } } }, { \"l\": \"hu\", \"t\": { \"Unable to search the group\": { \"v\": [\"A csoport nem kereshető\"] } } }, { \"l\": \"id\", \"t\": { \"Unable to search the group\": { \"v\": [\"Tidak dapat mencari dalam grup\"] } } }, { \"l\": \"is\", \"t\": { \"Unable to search the group\": { \"v\": [\"Get ekki leitað í hópnum\"] } } }, { \"l\": \"it\", \"t\": { \"Unable to search the group\": { \"v\": [\"Impossibile cercare il gruppo\"] } } }, { \"l\": \"ja\", \"t\": { \"Unable to search the group\": { \"v\": [\"グループを検索できません\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Unable to search the group\": { \"v\": [\"グループを検索できません\"] } } }, { \"l\": \"ko\", \"t\": { \"Unable to search the group\": { \"v\": [\"그룹을 검색할 수 없음\"] } } }, { \"l\": \"lo\", \"t\": { \"Unable to search the group\": { \"v\": [\"ບໍ່ສາມາດຄົ້ນຫາກຸ່ມໄດ້\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Unable to search the group\": { \"v\": [\"Nepavyko atlikti paiešką grupėje\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Unable to search the group\": { \"v\": [\"Неможе да се пронајде групата\"] } } }, { \"l\": \"my\", \"t\": { \"Unable to search the group\": { \"v\": [\"အဖွဲ့အား ရှာဖွေ၍ မရနိုင်ပါ\"] } } }, { \"l\": \"nb\", \"t\": { \"Unable to search the group\": { \"v\": [\"Kunne ikke søke i gruppen\"] } } }, { \"l\": \"nl\", \"t\": { \"Unable to search the group\": { \"v\": [\"Kan niet zoeken in de groep\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Unable to search the group\": { \"v\": [\"Nie można przeszukać grupy\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Unable to search the group\": { \"v\": [\"Não foi possível pesquisar o grupo\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Unable to search the group\": { \"v\": [\"Não é possível pesquisar o grupo\"] } } }, { \"l\": \"ro\", \"t\": { \"Unable to search the group\": { \"v\": [\"Imposibilitatea de a căuta în grup\"] } } }, { \"l\": \"ru\", \"t\": { \"Unable to search the group\": { \"v\": [\"Невозможно найти группу\"] } } }, { \"l\": \"sk\", \"t\": { \"Unable to search the group\": { \"v\": [\"Skupinu sa nepodarilo nájsť\"] } } }, { \"l\": \"sl\", \"t\": { \"Unable to search the group\": { \"v\": [\"Ni mogoče iskati po skupini\"] } } }, { \"l\": \"sr\", \"t\": { \"Unable to search the group\": { \"v\": [\"Група не може да се претражи\"] } } }, { \"l\": \"sv\", \"t\": { \"Unable to search the group\": { \"v\": [\"Kunde inte söka i gruppen\"] } } }, { \"l\": \"tr\", \"t\": { \"Unable to search the group\": { \"v\": [\"Grupta arama yapılamadı\"] } } }, { \"l\": \"uk\", \"t\": { \"Unable to search the group\": { \"v\": [\"Неможливо шукати в групі\"] } } }, { \"l\": \"uz\", \"t\": { \"Unable to search the group\": { \"v\": [\"Guruhni qidirish imkonsiz\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Unable to search the group\": { \"v\": [\"无法搜索分组\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Unable to search the group\": { \"v\": [\"無法搜尋群組\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Unable to search the group\": { \"v\": [\"無法搜尋群組\"] } } }];\nconst t50 = [{ \"l\": \"ar\", \"t\": { \"Undo changes\": { \"v\": [\"تراجَع عن التغييرات\"] } } }, { \"l\": \"ast\", \"t\": { \"Undo changes\": { \"v\": [\"Desfacer los cambeos\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Undo changes\": { \"v\": [\"Desfés els canvis\"] } } }, { \"l\": \"cs\", \"t\": { \"Undo changes\": { \"v\": [\"Vzít změny zpět\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Undo changes\": { \"v\": [\"Vzít změny zpět\"] } } }, { \"l\": \"da\", \"t\": { \"Undo changes\": { \"v\": [\"Fortryd ændringer\"] } } }, { \"l\": \"de\", \"t\": { \"Undo changes\": { \"v\": [\"Änderungen rückgängig machen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Undo changes\": { \"v\": [\"Änderungen rückgängig machen\"] } } }, { \"l\": \"el\", \"t\": { \"Undo changes\": { \"v\": [\"Αναίρεση Αλλαγών\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Undo changes\": { \"v\": [\"Undo changes\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Undo changes\": { \"v\": [\"Deshacer cambios\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Undo changes\": { \"v\": [\"Deshacer cambios\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Undo changes\": { \"v\": [\"Deshacer cambios\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Undo changes\": { \"v\": [\"Deshacer cambios\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Undo changes\": { \"v\": [\"Pööra muudatused tagasi\"] } } }, { \"l\": \"eu\", \"t\": { \"Undo changes\": { \"v\": [\"Aldaketak desegin\"] } } }, { \"l\": \"fa\", \"t\": { \"Undo changes\": { \"v\": [\"لغو تغییرات\"] } } }, { \"l\": \"fi\", \"t\": { \"Undo changes\": { \"v\": [\"Kumoa muutokset\"] } } }, { \"l\": \"fr\", \"t\": { \"Undo changes\": { \"v\": [\"Annuler les changements\"] } } }, { \"l\": \"ga\", \"t\": { \"Undo changes\": { \"v\": [\"Cealaigh athruithe\"] } } }, { \"l\": \"gl\", \"t\": { \"Undo changes\": { \"v\": [\"Desfacer os cambios\"] } } }, { \"l\": \"he\", \"t\": { \"Undo changes\": { \"v\": [\"ביטול שינויים\"] } } }, { \"l\": \"hu\", \"t\": { \"Undo changes\": { \"v\": [\"Változtatások visszavonása\"] } } }, { \"l\": \"id\", \"t\": { \"Undo changes\": { \"v\": [\"Urungkan perubahan\"] } } }, { \"l\": \"is\", \"t\": { \"Undo changes\": { \"v\": [\"Afturkalla breytingar\"] } } }, { \"l\": \"it\", \"t\": { \"Undo changes\": { \"v\": [\"Cancella i cambiamenti\"] } } }, { \"l\": \"ja\", \"t\": { \"Undo changes\": { \"v\": [\"変更を取り消し\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Undo changes\": { \"v\": [\"変更を取り消し\"] } } }, { \"l\": \"ko\", \"t\": { \"Undo changes\": { \"v\": [\"변경 되돌리기\"] } } }, { \"l\": \"lo\", \"t\": { \"Undo changes\": { \"v\": [\"ຍ້ອນຄືນການປ່ຽນແປງ\"] } } }, { \"l\": \"lt-LT\", \"t\": {} }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Undo changes\": { \"v\": [\"Врати ги промените\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Undo changes\": { \"v\": [\"Tilbakestill endringer\"] } } }, { \"l\": \"nl\", \"t\": { \"Undo changes\": { \"v\": [\"Wijzigingen ongedaan maken\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Undo changes\": { \"v\": [\"Cofnij zmiany\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Undo changes\": { \"v\": [\"Desfazer modificações\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Undo changes\": { \"v\": [\"Anular alterações\"] } } }, { \"l\": \"ro\", \"t\": { \"Undo changes\": { \"v\": [\"Anularea modificărilor\"] } } }, { \"l\": \"ru\", \"t\": { \"Undo changes\": { \"v\": [\"Отменить изменения\"] } } }, { \"l\": \"sk\", \"t\": { \"Undo changes\": { \"v\": [\"Vrátiť zmeny\"] } } }, { \"l\": \"sl\", \"t\": { \"Undo changes\": { \"v\": [\"Razveljavi spremembe\"] } } }, { \"l\": \"sr\", \"t\": { \"Undo changes\": { \"v\": [\"Поништи измене\"] } } }, { \"l\": \"sv\", \"t\": { \"Undo changes\": { \"v\": [\"Ångra ändringar\"] } } }, { \"l\": \"tr\", \"t\": { \"Undo changes\": { \"v\": [\"Değişiklikleri geri al\"] } } }, { \"l\": \"uk\", \"t\": { \"Undo changes\": { \"v\": [\"Скасувати зміни\"] } } }, { \"l\": \"uz\", \"t\": { \"Undo changes\": { \"v\": [\"O'zgarishlarni bekor qilish\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Undo changes\": { \"v\": [\"撤销更改\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Undo changes\": { \"v\": [\"取消更改\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Undo changes\": { \"v\": [\"還原變更\"] } } }];\nexport {\n t41 as A,\n t9 as B,\n t15 as C,\n t8 as D,\n t45 as E,\n t40 as F,\n t25 as G,\n t32 as H,\n t19 as I,\n t12 as J,\n t as a,\n t2 as b,\n t22 as c,\n t17 as d,\n t49 as e,\n t0 as f,\n t14 as g,\n t48 as h,\n t10 as i,\n t42 as j,\n t37 as k,\n t16 as l,\n t5 as m,\n t35 as n,\n t4 as o,\n t34 as p,\n n as q,\n register as r,\n t28 as s,\n t3 as t,\n t6 as u,\n t21 as v,\n t50 as w,\n t23 as x,\n t11 as y,\n t38 as z\n};\n//# sourceMappingURL=_l10n-DrTiip5c.mjs.map\n","window._nc_vue_element_id = window._nc_vue_element_id ?? 0;\nfunction createElementId() {\n return `nc-vue-${window._nc_vue_element_id++}`;\n}\nexport {\n createElementId as c\n};\n//# sourceMappingURL=createElementId-DhjFt1I9.mjs.map\n"],"names":["linkToRemoteBase","service","generateRemoteUrl","options","getBaseUrl","generateOcsUrl","url","params","version","_generateUrlPath","allOptions","_build","text","vars","a","b","r","generateUrl","baseOrRootURL","getRootUrl","imagePath","app","file","generateFilePath","type","isCore","isPHP","link","getAppRootUrl","webroot","pos","index","_export_sfc","sfc","props","target","key","val","GettextWrapper","pluralFunction","bundle","dict","msgid","msgidPlural","msgstr","original","placeholders","translate","singular","plural","count","translatePlural","GettextBuilder","language","getLanguage","data","wrapper","n","getPlural","getGettextBuilder","gettext","args","t","register","chunks","chunk","translations","decompressed","id","value","t0","t2","t3","t4","t5","t6","t8","t9","t10","t11","t12","t14","t15","t16","t17","t19","t21","t22","t23","t25","t28","t32","t34","t35","t37","t38","t40","t41","t42","t45","t48","t49","t50","createElementId"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4]} \ No newline at end of file diff --git a/dist/createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs.map.license b/dist/createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs.map.license similarity index 100% rename from dist/createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs.map.license rename to dist/createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs.map.license diff --git a/dist/dav-Bns9Alug.chunk.mjs b/dist/dav-Bns9Alug.chunk.mjs deleted file mode 100644 index 556dd4cfd778c..0000000000000 --- a/dist/dav-Bns9Alug.chunk.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import{a as w,b as h,o as g}from"./index-6_gsQFyp.chunk.mjs";import{b as y}from"./createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs";import{i as u,b}from"./index-xFugdZPW.chunk.mjs";import{a as E,u as D}from"./index-DY1sONrk.chunk.mjs";import{l as m,N,a as $,b as T,P as i}from"./index-BKfQ4diD.chunk.mjs";function R(e=""){let t=i.NONE;return e&&(e.includes("G")&&(t|=i.READ),e.includes("W")&&(t|=i.WRITE),e.includes("CK")&&(t|=i.CREATE),e.includes("NV")&&(t|=i.UPDATE),e.includes("D")&&(t|=i.DELETE),e.includes("R")&&(t|=i.SHARE)),t}const _=["d:getcontentlength","d:getcontenttype","d:getetag","d:getlastmodified","d:creationdate","d:displayname","d:quota-available-bytes","d:resourcetype","nc:has-preview","nc:is-encrypted","nc:mount-type","oc:comments-unread","oc:favorite","oc:fileid","oc:owner-display-name","oc:owner-id","oc:permissions","oc:size"],f={d:"DAV:",nc:"http://nextcloud.org/ns",oc:"http://owncloud.org/ns",ocs:"http://open-collaboration-services.org/ns"};function S(e,t={nc:"http://nextcloud.org/ns"}){typeof window._nc_dav_properties>"u"&&(window._nc_dav_properties=[..._],window._nc_dav_namespaces={...f});const s={...window._nc_dav_namespaces,...t};if(window._nc_dav_properties.find(n=>n===e))return m.warn(`${e} already registered`,{prop:e}),!1;if(e.startsWith("<")||e.split(":").length!==2)return m.error(`${e} is not valid. See example: 'oc:fileid'`,{prop:e}),!1;const o=e.split(":")[0];return s[o]?(window._nc_dav_properties.push(e),window._nc_dav_namespaces=s,!0):(m.error(`${e} namespace unknown`,{prop:e,namespaces:s}),!1)}function W(){return typeof window._nc_dav_properties>"u"&&(window._nc_dav_properties=[..._]),window._nc_dav_properties.map(e=>`<${e} />`).join(" ")}function j(){return typeof window._nc_dav_namespaces>"u"&&(window._nc_dav_namespaces={...f}),Object.keys(window._nc_dav_namespaces).map(e=>`xmlns:${e}="${window._nc_dav_namespaces?.[e]}"`).join(" ")}function x(){return u()?`/files/${b()}`:`/files/${w()?.uid}`}const A=x();function q(){const e=y("dav");return u()?e.replace("remote.php","public.php"):e}const v=q();function z(e=v,t={}){const s=E(e,{headers:t});function o(n){s.setHeaders({...t,"X-Requested-With":"XMLHttpRequest",requesttoken:n??""})}return g(o),o(h()),D().patch("fetch",(n,a)=>{const r=a.headers;return r?.method&&(a.method=r.method,delete r.method),fetch(n,a)}),s}function C(e,t=A,s=v){let o=w()?.uid;if(u())o=o??"anonymous";else if(!o)throw new Error("No user id found");const n=e.props,a=R(n?.permissions),r=String(n?.["owner-id"]||o),l=n.fileid||0,d=new Date(Date.parse(e.lastmod)),c=new Date(Date.parse(n.creationdate)),p={id:l,source:`${s}${e.filename}`,mtime:!isNaN(d.getTime())&&d.getTime()!==0?d:void 0,crtime:!isNaN(c.getTime())&&c.getTime()!==0?c:void 0,mime:e.mime||"application/octet-stream",displayname:n.displayname!==void 0?String(n.displayname):void 0,size:n?.size||Number.parseInt(n.getcontentlength||"0"),status:l<0?N.FAILED:void 0,permissions:a,owner:r,root:t,attributes:{...e,...n,hasPreview:n?.["has-preview"]}};return delete p.attributes?.props,e.type==="file"?new $(p):new T(p)}export{j as a,W as b,S as c,v as d,z as g,C as r}; -//# sourceMappingURL=dav-Bns9Alug.chunk.mjs.map diff --git a/dist/dav-CsGtFpls.chunk.mjs b/dist/dav-CsGtFpls.chunk.mjs new file mode 100644 index 0000000000000..6ec901e911d16 --- /dev/null +++ b/dist/dav-CsGtFpls.chunk.mjs @@ -0,0 +1,2 @@ +import{a as w,b as h,o as g}from"./index-Bndk0DrU.chunk.mjs";import{d as y}from"./createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs";import{i as u,g as E}from"./public-uQ6dl0vH.chunk.mjs";import{a as b,u as D}from"./index-BGtOTwEf.chunk.mjs";import{l as m,N,a as $,b as T,P as i}from"./index-CfoF28kA.chunk.mjs";function R(e=""){let t=i.NONE;return e&&(e.includes("G")&&(t|=i.READ),e.includes("W")&&(t|=i.WRITE),e.includes("CK")&&(t|=i.CREATE),e.includes("NV")&&(t|=i.UPDATE),e.includes("D")&&(t|=i.DELETE),e.includes("R")&&(t|=i.SHARE)),t}const _=["d:getcontentlength","d:getcontenttype","d:getetag","d:getlastmodified","d:creationdate","d:displayname","d:quota-available-bytes","d:resourcetype","nc:has-preview","nc:is-encrypted","nc:mount-type","oc:comments-unread","oc:favorite","oc:fileid","oc:owner-display-name","oc:owner-id","oc:permissions","oc:size"],f={d:"DAV:",nc:"http://nextcloud.org/ns",oc:"http://owncloud.org/ns",ocs:"http://open-collaboration-services.org/ns"};function S(e,t={nc:"http://nextcloud.org/ns"}){typeof window._nc_dav_properties>"u"&&(window._nc_dav_properties=[..._],window._nc_dav_namespaces={...f});const s={...window._nc_dav_namespaces,...t};if(window._nc_dav_properties.find(n=>n===e))return m.warn(`${e} already registered`,{prop:e}),!1;if(e.startsWith("<")||e.split(":").length!==2)return m.error(`${e} is not valid. See example: 'oc:fileid'`,{prop:e}),!1;const o=e.split(":")[0];return s[o]?(window._nc_dav_properties.push(e),window._nc_dav_namespaces=s,!0):(m.error(`${e} namespace unknown`,{prop:e,namespaces:s}),!1)}function W(){return typeof window._nc_dav_properties>"u"&&(window._nc_dav_properties=[..._]),window._nc_dav_properties.map(e=>`<${e} />`).join(" ")}function j(){return typeof window._nc_dav_namespaces>"u"&&(window._nc_dav_namespaces={...f}),Object.keys(window._nc_dav_namespaces).map(e=>`xmlns:${e}="${window._nc_dav_namespaces?.[e]}"`).join(" ")}function x(){return u()?`/files/${E()}`:`/files/${w()?.uid}`}const A=x();function q(){const e=y("dav");return u()?e.replace("remote.php","public.php"):e}const v=q();function z(e=v,t={}){const s=b(e,{headers:t});function o(n){s.setHeaders({...t,"X-Requested-With":"XMLHttpRequest",requesttoken:n??""})}return g(o),o(h()),D().patch("fetch",(n,a)=>{const r=a.headers;return r?.method&&(a.method=r.method,delete r.method),fetch(n,a)}),s}function C(e,t=A,s=v){let o=w()?.uid;if(u())o=o??"anonymous";else if(!o)throw new Error("No user id found");const n=e.props,a=R(n?.permissions),r=String(n?.["owner-id"]||o),l=n.fileid||0,d=new Date(Date.parse(e.lastmod)),c=new Date(Date.parse(n.creationdate)),p={id:l,source:`${s}${e.filename}`,mtime:!isNaN(d.getTime())&&d.getTime()!==0?d:void 0,crtime:!isNaN(c.getTime())&&c.getTime()!==0?c:void 0,mime:e.mime||"application/octet-stream",displayname:n.displayname!==void 0?String(n.displayname):void 0,size:n?.size||Number.parseInt(n.getcontentlength||"0"),status:l<0?N.FAILED:void 0,permissions:a,owner:r,root:t,attributes:{...e,...n,hasPreview:n?.["has-preview"]}};return delete p.attributes?.props,e.type==="file"?new $(p):new T(p)}export{j as a,W as b,S as c,v as d,z as g,C as r}; +//# sourceMappingURL=dav-CsGtFpls.chunk.mjs.map diff --git a/dist/dav-Bns9Alug.chunk.mjs.license b/dist/dav-CsGtFpls.chunk.mjs.license similarity index 100% rename from dist/dav-Bns9Alug.chunk.mjs.license rename to dist/dav-CsGtFpls.chunk.mjs.license diff --git a/dist/dav-Bns9Alug.chunk.mjs.map b/dist/dav-CsGtFpls.chunk.mjs.map similarity index 98% rename from dist/dav-Bns9Alug.chunk.mjs.map rename to dist/dav-CsGtFpls.chunk.mjs.map index 36b336ca061af..b90970b350088 100644 --- a/dist/dav-Bns9Alug.chunk.mjs.map +++ b/dist/dav-CsGtFpls.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"dav-Bns9Alug.chunk.mjs","sources":["../node_modules/@nextcloud/files/dist/dav.mjs"],"sourcesContent":["import { getCurrentUser, onRequestTokenUpdate, getRequestToken } from \"@nextcloud/auth\";\nimport { generateRemoteUrl } from \"@nextcloud/router\";\nimport { isPublicShare, getSharingToken } from \"@nextcloud/sharing/public\";\nimport { createClient, getPatcher } from \"webdav\";\nimport { P as Permission, l as logger, c as NodeStatus, a as File, b as Folder } from \"./chunks/folder-CeyZUHai.mjs\";\n/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction parsePermissions(permString = \"\") {\n let permissions = Permission.NONE;\n if (!permString) {\n return permissions;\n }\n if (permString.includes(\"G\")) {\n permissions |= Permission.READ;\n }\n if (permString.includes(\"W\")) {\n permissions |= Permission.WRITE;\n }\n if (permString.includes(\"CK\")) {\n permissions |= Permission.CREATE;\n }\n if (permString.includes(\"NV\")) {\n permissions |= Permission.UPDATE;\n }\n if (permString.includes(\"D\")) {\n permissions |= Permission.DELETE;\n }\n if (permString.includes(\"R\")) {\n permissions |= Permission.SHARE;\n }\n return permissions;\n}\nconst defaultDavProperties = [\n \"d:getcontentlength\",\n \"d:getcontenttype\",\n \"d:getetag\",\n \"d:getlastmodified\",\n \"d:creationdate\",\n \"d:displayname\",\n \"d:quota-available-bytes\",\n \"d:resourcetype\",\n \"nc:has-preview\",\n \"nc:is-encrypted\",\n \"nc:mount-type\",\n \"oc:comments-unread\",\n \"oc:favorite\",\n \"oc:fileid\",\n \"oc:owner-display-name\",\n \"oc:owner-id\",\n \"oc:permissions\",\n \"oc:size\"\n];\nconst defaultDavNamespaces = {\n d: \"DAV:\",\n nc: \"http://nextcloud.org/ns\",\n oc: \"http://owncloud.org/ns\",\n ocs: \"http://open-collaboration-services.org/ns\"\n};\nfunction registerDavProperty(prop, namespace = { nc: \"http://nextcloud.org/ns\" }) {\n if (typeof window._nc_dav_properties === \"undefined\") {\n window._nc_dav_properties = [...defaultDavProperties];\n window._nc_dav_namespaces = { ...defaultDavNamespaces };\n }\n const namespaces = { ...window._nc_dav_namespaces, ...namespace };\n if (window._nc_dav_properties.find((search) => search === prop)) {\n logger.warn(`${prop} already registered`, { prop });\n return false;\n }\n if (prop.startsWith(\"<\") || prop.split(\":\").length !== 2) {\n logger.error(`${prop} is not valid. See example: 'oc:fileid'`, { prop });\n return false;\n }\n const ns = prop.split(\":\")[0];\n if (!namespaces[ns]) {\n logger.error(`${prop} namespace unknown`, { prop, namespaces });\n return false;\n }\n window._nc_dav_properties.push(prop);\n window._nc_dav_namespaces = namespaces;\n return true;\n}\nfunction getDavProperties() {\n if (typeof window._nc_dav_properties === \"undefined\") {\n window._nc_dav_properties = [...defaultDavProperties];\n }\n return window._nc_dav_properties.map((prop) => `<${prop} />`).join(\" \");\n}\nfunction getDavNameSpaces() {\n if (typeof window._nc_dav_namespaces === \"undefined\") {\n window._nc_dav_namespaces = { ...defaultDavNamespaces };\n }\n return Object.keys(window._nc_dav_namespaces).map((ns) => `xmlns:${ns}=\"${window._nc_dav_namespaces?.[ns]}\"`).join(\" \");\n}\nfunction getDefaultPropfind() {\n return `\n\t\t\n\t\t\t\n\t\t\t\t${getDavProperties()}\n\t\t\t\n\t\t`;\n}\nfunction getFavoritesReport() {\n return `\n\t\t\n\t\t\t\n\t\t\t\t${getDavProperties()}\n\t\t\t\n\t\t\t\n\t\t\t\t1\n\t\t\t\n\t\t`;\n}\nfunction getRecentSearch(lastModified) {\n return `\n\n\t\n\t\t\n\t\t\t\n\t\t\t\t${getDavProperties()}\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t/files/${getCurrentUser()?.uid}/\n\t\t\t\tinfinity\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\thttpd/unix-directory\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t0\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t${lastModified}\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t100\n\t\t\t0\n\t\t\n\t\n`;\n}\nfunction getRootPath() {\n if (isPublicShare()) {\n return `/files/${getSharingToken()}`;\n }\n return `/files/${getCurrentUser()?.uid}`;\n}\nconst defaultRootPath = getRootPath();\nfunction getRemoteURL() {\n const url = generateRemoteUrl(\"dav\");\n if (isPublicShare()) {\n return url.replace(\"remote.php\", \"public.php\");\n }\n return url;\n}\nconst defaultRemoteURL = getRemoteURL();\nfunction getClient(remoteURL = defaultRemoteURL, headers = {}) {\n const client = createClient(remoteURL, { headers });\n function setHeaders(token) {\n client.setHeaders({\n ...headers,\n // Add this so the server knows it is an request from the browser\n \"X-Requested-With\": \"XMLHttpRequest\",\n // Inject user auth\n requesttoken: token ?? \"\"\n });\n }\n onRequestTokenUpdate(setHeaders);\n setHeaders(getRequestToken());\n const patcher = getPatcher();\n patcher.patch(\"fetch\", (url, options) => {\n const headers2 = options.headers;\n if (headers2?.method) {\n options.method = headers2.method;\n delete headers2.method;\n }\n return fetch(url, options);\n });\n return client;\n}\nasync function getFavoriteNodes(options = {}) {\n const client = options.client ?? getClient();\n const path = options.path ?? \"/\";\n const davRoot = options.davRoot ?? defaultRootPath;\n const contentsResponse = await client.getDirectoryContents(`${davRoot}${path}`, {\n signal: options.signal,\n details: true,\n data: getFavoritesReport(),\n headers: {\n // see getClient for patched webdav client\n method: \"REPORT\"\n },\n includeSelf: true\n });\n return contentsResponse.data.filter((node) => node.filename !== path).map((result) => resultToNode(result, davRoot));\n}\nfunction resultToNode(node, filesRoot = defaultRootPath, remoteURL = defaultRemoteURL) {\n let userId = getCurrentUser()?.uid;\n if (isPublicShare()) {\n userId = userId ?? \"anonymous\";\n } else if (!userId) {\n throw new Error(\"No user id found\");\n }\n const props = node.props;\n const permissions = parsePermissions(props?.permissions);\n const owner = String(props?.[\"owner-id\"] || userId);\n const id = props.fileid || 0;\n const mtime = new Date(Date.parse(node.lastmod));\n const crtime = new Date(Date.parse(props.creationdate));\n const nodeData = {\n id,\n source: `${remoteURL}${node.filename}`,\n mtime: !isNaN(mtime.getTime()) && mtime.getTime() !== 0 ? mtime : void 0,\n crtime: !isNaN(crtime.getTime()) && crtime.getTime() !== 0 ? crtime : void 0,\n mime: node.mime || \"application/octet-stream\",\n // Manually cast to work around for https://github.com/perry-mitchell/webdav-client/pull/380\n displayname: props.displayname !== void 0 ? String(props.displayname) : void 0,\n size: props?.size || Number.parseInt(props.getcontentlength || \"0\"),\n // The fileid is set to -1 for failed requests\n status: id < 0 ? NodeStatus.FAILED : void 0,\n permissions,\n owner,\n root: filesRoot,\n attributes: {\n ...node,\n ...props,\n hasPreview: props?.[\"has-preview\"]\n }\n };\n delete nodeData.attributes?.props;\n return node.type === \"file\" ? new File(nodeData) : new Folder(nodeData);\n}\nexport {\n defaultDavNamespaces,\n defaultDavProperties,\n defaultRemoteURL,\n defaultRootPath,\n getClient,\n getDavNameSpaces,\n getDavProperties,\n getDefaultPropfind,\n getFavoriteNodes,\n getFavoritesReport,\n getRecentSearch,\n getRemoteURL,\n getRootPath,\n parsePermissions,\n registerDavProperty,\n resultToNode\n};\n//# sourceMappingURL=dav.mjs.map\n"],"names":["parsePermissions","permString","permissions","Permission","defaultDavProperties","defaultDavNamespaces","registerDavProperty","prop","namespace","namespaces","search","logger","ns","getDavProperties","getDavNameSpaces","getRootPath","isPublicShare","getSharingToken","getCurrentUser","defaultRootPath","getRemoteURL","url","generateRemoteUrl","defaultRemoteURL","getClient","remoteURL","headers","client","createClient","setHeaders","token","onRequestTokenUpdate","getRequestToken","getPatcher","options","headers2","resultToNode","node","filesRoot","userId","props","owner","id","mtime","crtime","nodeData","NodeStatus","File","Folder"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file +{"version":3,"file":"dav-CsGtFpls.chunk.mjs","sources":["../node_modules/@nextcloud/files/dist/dav.mjs"],"sourcesContent":["import { getCurrentUser, onRequestTokenUpdate, getRequestToken } from \"@nextcloud/auth\";\nimport { generateRemoteUrl } from \"@nextcloud/router\";\nimport { isPublicShare, getSharingToken } from \"@nextcloud/sharing/public\";\nimport { createClient, getPatcher } from \"webdav\";\nimport { P as Permission, l as logger, c as NodeStatus, a as File, b as Folder } from \"./chunks/folder-CeyZUHai.mjs\";\n/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction parsePermissions(permString = \"\") {\n let permissions = Permission.NONE;\n if (!permString) {\n return permissions;\n }\n if (permString.includes(\"G\")) {\n permissions |= Permission.READ;\n }\n if (permString.includes(\"W\")) {\n permissions |= Permission.WRITE;\n }\n if (permString.includes(\"CK\")) {\n permissions |= Permission.CREATE;\n }\n if (permString.includes(\"NV\")) {\n permissions |= Permission.UPDATE;\n }\n if (permString.includes(\"D\")) {\n permissions |= Permission.DELETE;\n }\n if (permString.includes(\"R\")) {\n permissions |= Permission.SHARE;\n }\n return permissions;\n}\nconst defaultDavProperties = [\n \"d:getcontentlength\",\n \"d:getcontenttype\",\n \"d:getetag\",\n \"d:getlastmodified\",\n \"d:creationdate\",\n \"d:displayname\",\n \"d:quota-available-bytes\",\n \"d:resourcetype\",\n \"nc:has-preview\",\n \"nc:is-encrypted\",\n \"nc:mount-type\",\n \"oc:comments-unread\",\n \"oc:favorite\",\n \"oc:fileid\",\n \"oc:owner-display-name\",\n \"oc:owner-id\",\n \"oc:permissions\",\n \"oc:size\"\n];\nconst defaultDavNamespaces = {\n d: \"DAV:\",\n nc: \"http://nextcloud.org/ns\",\n oc: \"http://owncloud.org/ns\",\n ocs: \"http://open-collaboration-services.org/ns\"\n};\nfunction registerDavProperty(prop, namespace = { nc: \"http://nextcloud.org/ns\" }) {\n if (typeof window._nc_dav_properties === \"undefined\") {\n window._nc_dav_properties = [...defaultDavProperties];\n window._nc_dav_namespaces = { ...defaultDavNamespaces };\n }\n const namespaces = { ...window._nc_dav_namespaces, ...namespace };\n if (window._nc_dav_properties.find((search) => search === prop)) {\n logger.warn(`${prop} already registered`, { prop });\n return false;\n }\n if (prop.startsWith(\"<\") || prop.split(\":\").length !== 2) {\n logger.error(`${prop} is not valid. See example: 'oc:fileid'`, { prop });\n return false;\n }\n const ns = prop.split(\":\")[0];\n if (!namespaces[ns]) {\n logger.error(`${prop} namespace unknown`, { prop, namespaces });\n return false;\n }\n window._nc_dav_properties.push(prop);\n window._nc_dav_namespaces = namespaces;\n return true;\n}\nfunction getDavProperties() {\n if (typeof window._nc_dav_properties === \"undefined\") {\n window._nc_dav_properties = [...defaultDavProperties];\n }\n return window._nc_dav_properties.map((prop) => `<${prop} />`).join(\" \");\n}\nfunction getDavNameSpaces() {\n if (typeof window._nc_dav_namespaces === \"undefined\") {\n window._nc_dav_namespaces = { ...defaultDavNamespaces };\n }\n return Object.keys(window._nc_dav_namespaces).map((ns) => `xmlns:${ns}=\"${window._nc_dav_namespaces?.[ns]}\"`).join(\" \");\n}\nfunction getDefaultPropfind() {\n return `\n\t\t\n\t\t\t\n\t\t\t\t${getDavProperties()}\n\t\t\t\n\t\t`;\n}\nfunction getFavoritesReport() {\n return `\n\t\t\n\t\t\t\n\t\t\t\t${getDavProperties()}\n\t\t\t\n\t\t\t\n\t\t\t\t1\n\t\t\t\n\t\t`;\n}\nfunction getRecentSearch(lastModified) {\n return `\n\n\t\n\t\t\n\t\t\t\n\t\t\t\t${getDavProperties()}\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t/files/${getCurrentUser()?.uid}/\n\t\t\t\tinfinity\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\thttpd/unix-directory\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t0\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t${lastModified}\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t100\n\t\t\t0\n\t\t\n\t\n`;\n}\nfunction getRootPath() {\n if (isPublicShare()) {\n return `/files/${getSharingToken()}`;\n }\n return `/files/${getCurrentUser()?.uid}`;\n}\nconst defaultRootPath = getRootPath();\nfunction getRemoteURL() {\n const url = generateRemoteUrl(\"dav\");\n if (isPublicShare()) {\n return url.replace(\"remote.php\", \"public.php\");\n }\n return url;\n}\nconst defaultRemoteURL = getRemoteURL();\nfunction getClient(remoteURL = defaultRemoteURL, headers = {}) {\n const client = createClient(remoteURL, { headers });\n function setHeaders(token) {\n client.setHeaders({\n ...headers,\n // Add this so the server knows it is an request from the browser\n \"X-Requested-With\": \"XMLHttpRequest\",\n // Inject user auth\n requesttoken: token ?? \"\"\n });\n }\n onRequestTokenUpdate(setHeaders);\n setHeaders(getRequestToken());\n const patcher = getPatcher();\n patcher.patch(\"fetch\", (url, options) => {\n const headers2 = options.headers;\n if (headers2?.method) {\n options.method = headers2.method;\n delete headers2.method;\n }\n return fetch(url, options);\n });\n return client;\n}\nasync function getFavoriteNodes(options = {}) {\n const client = options.client ?? getClient();\n const path = options.path ?? \"/\";\n const davRoot = options.davRoot ?? defaultRootPath;\n const contentsResponse = await client.getDirectoryContents(`${davRoot}${path}`, {\n signal: options.signal,\n details: true,\n data: getFavoritesReport(),\n headers: {\n // see getClient for patched webdav client\n method: \"REPORT\"\n },\n includeSelf: true\n });\n return contentsResponse.data.filter((node) => node.filename !== path).map((result) => resultToNode(result, davRoot));\n}\nfunction resultToNode(node, filesRoot = defaultRootPath, remoteURL = defaultRemoteURL) {\n let userId = getCurrentUser()?.uid;\n if (isPublicShare()) {\n userId = userId ?? \"anonymous\";\n } else if (!userId) {\n throw new Error(\"No user id found\");\n }\n const props = node.props;\n const permissions = parsePermissions(props?.permissions);\n const owner = String(props?.[\"owner-id\"] || userId);\n const id = props.fileid || 0;\n const mtime = new Date(Date.parse(node.lastmod));\n const crtime = new Date(Date.parse(props.creationdate));\n const nodeData = {\n id,\n source: `${remoteURL}${node.filename}`,\n mtime: !isNaN(mtime.getTime()) && mtime.getTime() !== 0 ? mtime : void 0,\n crtime: !isNaN(crtime.getTime()) && crtime.getTime() !== 0 ? crtime : void 0,\n mime: node.mime || \"application/octet-stream\",\n // Manually cast to work around for https://github.com/perry-mitchell/webdav-client/pull/380\n displayname: props.displayname !== void 0 ? String(props.displayname) : void 0,\n size: props?.size || Number.parseInt(props.getcontentlength || \"0\"),\n // The fileid is set to -1 for failed requests\n status: id < 0 ? NodeStatus.FAILED : void 0,\n permissions,\n owner,\n root: filesRoot,\n attributes: {\n ...node,\n ...props,\n hasPreview: props?.[\"has-preview\"]\n }\n };\n delete nodeData.attributes?.props;\n return node.type === \"file\" ? new File(nodeData) : new Folder(nodeData);\n}\nexport {\n defaultDavNamespaces,\n defaultDavProperties,\n defaultRemoteURL,\n defaultRootPath,\n getClient,\n getDavNameSpaces,\n getDavProperties,\n getDefaultPropfind,\n getFavoriteNodes,\n getFavoritesReport,\n getRecentSearch,\n getRemoteURL,\n getRootPath,\n parsePermissions,\n registerDavProperty,\n resultToNode\n};\n//# sourceMappingURL=dav.mjs.map\n"],"names":["parsePermissions","permString","permissions","Permission","defaultDavProperties","defaultDavNamespaces","registerDavProperty","prop","namespace","namespaces","search","logger","ns","getDavProperties","getDavNameSpaces","getRootPath","isPublicShare","getSharingToken","getCurrentUser","defaultRootPath","getRemoteURL","url","generateRemoteUrl","defaultRemoteURL","getClient","remoteURL","headers","client","createClient","setHeaders","token","onRequestTokenUpdate","getRequestToken","getPatcher","options","headers2","resultToNode","node","filesRoot","userId","props","owner","id","mtime","crtime","nodeData","NodeStatus","File","Folder"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/dist/dav-Bns9Alug.chunk.mjs.map.license b/dist/dav-CsGtFpls.chunk.mjs.map.license similarity index 100% rename from dist/dav-Bns9Alug.chunk.mjs.map.license rename to dist/dav-CsGtFpls.chunk.mjs.map.license diff --git a/dist/dav-settings-admin-caldav.css b/dist/dav-settings-admin-caldav.css index bc152b00ebe52..83048de742e0b 100644 --- a/dist/dav-settings-admin-caldav.css +++ b/dist/dav-settings-admin-caldav.css @@ -1,5 +1,5 @@ /* extracted by css-entry-points-plugin */ @import './dav-dav-settings-admin-caldav-7NASuukx.chunk.css'; -@import './mdi-BYHcrfvW.chunk.css'; +@import './Web-BYHcrfvW.chunk.css'; @import './NcCheckboxRadioSwitch-BCSKF7Tk-BgdwjgMO.chunk.css'; @import './ContentCopy-D7mIRwIy.chunk.css'; \ No newline at end of file diff --git a/dist/dav-settings-admin-caldav.mjs b/dist/dav-settings-admin-caldav.mjs index d5ace14d7956e..a3938d4c1f1cb 100644 --- a/dist/dav-settings-admin-caldav.mjs +++ b/dist/dav-settings-admin-caldav.mjs @@ -1,2 +1,2 @@ -import{c as g,f as v,o as y,w as l,k as n,e as m,g as c,t as r,h as b}from"./runtime-dom.esm-bundler-BrYCUcZF.chunk.mjs";import{c as R}from"./index-BfylblLb.chunk.mjs";import{l as i,a as E}from"./index-xFugdZPW.chunk.mjs";import{t as p}from"./translation-DoG5ZELJ-gw0g4US-.chunk.mjs";import{g as C}from"./createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs";import{N as S}from"./NcCheckboxRadioSwitch-BCSKF7Tk-yPckcGKs.chunk.mjs";import{N as V}from"./ContentCopy-DVkZwwZt.chunk.mjs";import"./index-6_gsQFyp.chunk.mjs";import"./string_decoder-BO00msnV.chunk.mjs";import"./mdi-D55n0uzy.chunk.mjs";const h=i("dav","userSyncCalendarsDocUrl","#"),k={name:"CalDavSettings",components:{NcCheckboxRadioSwitch:S,NcSettingsSection:V},setup(){return{t:p}},data(){return{userSyncCalendarsDocUrl:h,sendInvitations:i("dav","sendInvitations"),generateBirthdayCalendar:i("dav","generateBirthdayCalendar"),sendEventReminders:i("dav","sendEventReminders"),sendEventRemindersToSharedUsers:i("dav","sendEventRemindersToSharedUsers"),sendEventRemindersPush:i("dav","sendEventRemindersPush")}},computed:{hint(){return p("dav","Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}.").replace("{calendarappstoreopen}",'').replace("{calendardocopen}",``).replace(/\{linkclose\}/g,"")},sendInvitationsHelpText(){return p("dav","Please make sure to properly set up {emailopen}the email server{linkclose}.").replace("{emailopen}",'').replace("{linkclose}","")},sendEventRemindersHelpText(){return p("dav","Please make sure to properly set up {emailopen}the email server{linkclose}.").replace("{emailopen}",'').replace("{linkclose}","")}},watch:{generateBirthdayCalendar(d){const e=d?"/apps/dav/enableBirthdayCalendar":"/apps/dav/disableBirthdayCalendar";R.post(C(e))},sendInvitations(d){OCP.AppConfig.setValue("dav","sendInvitations",d?"yes":"no")},sendEventReminders(d){OCP.AppConfig.setValue("dav","sendEventReminders",d?"yes":"no")},sendEventRemindersToSharedUsers(d){OCP.AppConfig.setValue("dav","sendEventRemindersToSharedUsers",d?"yes":"no")},sendEventRemindersPush(d){OCP.AppConfig.setValue("dav","sendEventRemindersPush",d?"yes":"no")}}},T=["innerHTML"],w=["innerHTML"],U=["innerHTML"],_={class:"indented"},P={class:"indented"};function H(d,e,x,t,a,u){const o=v("NcCheckboxRadioSwitch"),f=v("NcSettingsSection");return y(),g(f,{name:t.t("dav","Calendar server"),"doc-url":a.userSyncCalendarsDocUrl},{default:l(()=>[n("p",{class:"settings-hint",innerHTML:u.hint},null,8,T),n("p",null,[m(o,{id:"caldavSendInvitations",modelValue:a.sendInvitations,"onUpdate:modelValue":e[0]||(e[0]=s=>a.sendInvitations=s),type:"switch"},{default:l(()=>[c(r(t.t("dav","Send invitations to attendees")),1)]),_:1},8,["modelValue"]),n("em",{innerHTML:u.sendInvitationsHelpText},null,8,w)]),n("p",null,[m(o,{id:"caldavGenerateBirthdayCalendar",modelValue:a.generateBirthdayCalendar,"onUpdate:modelValue":e[1]||(e[1]=s=>a.generateBirthdayCalendar=s),type:"switch",class:"checkbox"},{default:l(()=>[c(r(t.t("dav","Automatically generate a birthday calendar")),1)]),_:1},8,["modelValue"]),n("em",null,r(t.t("dav","Birthday calendars will be generated by a background job.")),1),e[5]||(e[5]=n("br",null,null,-1)),n("em",null,r(t.t("dav","Hence they will not be available immediately after enabling but will show up after some time.")),1)]),n("p",null,[m(o,{id:"caldavSendEventReminders",modelValue:a.sendEventReminders,"onUpdate:modelValue":e[2]||(e[2]=s=>a.sendEventReminders=s),type:"switch"},{default:l(()=>[c(r(t.t("dav","Send notifications for events")),1)]),_:1},8,["modelValue"]),n("em",{innerHTML:u.sendEventRemindersHelpText},null,8,U),e[6]||(e[6]=n("br",null,null,-1)),n("em",null,r(t.t("dav","Notifications are sent via background jobs, so these must occur often enough.")),1)]),n("p",_,[m(o,{id:"caldavSendEventRemindersToSharedGroupMembers",modelValue:a.sendEventRemindersToSharedUsers,"onUpdate:modelValue":e[3]||(e[3]=s=>a.sendEventRemindersToSharedUsers=s),type:"switch",disabled:!a.sendEventReminders},{default:l(()=>[c(r(t.t("dav","Send reminder notifications to calendar sharees as well")),1)]),_:1},8,["modelValue","disabled"]),n("em",null,r(t.t("dav","Reminders are always sent to organizers and attendees.")),1)]),n("p",P,[m(o,{id:"caldavSendEventRemindersPush",modelValue:a.sendEventRemindersPush,"onUpdate:modelValue":e[4]||(e[4]=s=>a.sendEventRemindersPush=s),type:"switch",disabled:!a.sendEventReminders},{default:l(()=>[c(r(t.t("dav","Enable notifications for events via push")),1)]),_:1},8,["modelValue","disabled"])])]),_:1},8,["name","doc-url"])}const I=E(k,[["render",H],["__scopeId","data-v-84465bd0"]]),B=b(I);B.mount("#settings-admin-caldav"); +import{c as g,f as v,o as y,w as l,k as n,e as m,g as c,t as r,h as b}from"./runtime-dom.esm-bundler-DdtEg5E9.chunk.mjs";import{c as R}from"./index-DVH_Kr3Q.chunk.mjs";import{l as i,a as E}from"./index-DCpg1aui.chunk.mjs";import{t as p}from"./string_decoder-vT-u9WbV.chunk.mjs";import{g as C}from"./createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs";import{N as S}from"./NcCheckboxRadioSwitch-BCSKF7Tk-B1Kcz6gU.chunk.mjs";import{N as V}from"./ContentCopy-s5fS3y5J.chunk.mjs";import"./index-Bndk0DrU.chunk.mjs";import"./public-uQ6dl0vH.chunk.mjs";import"./Web-aYJacExm.chunk.mjs";const h=i("dav","userSyncCalendarsDocUrl","#"),k={name:"CalDavSettings",components:{NcCheckboxRadioSwitch:S,NcSettingsSection:V},setup(){return{t:p}},data(){return{userSyncCalendarsDocUrl:h,sendInvitations:i("dav","sendInvitations"),generateBirthdayCalendar:i("dav","generateBirthdayCalendar"),sendEventReminders:i("dav","sendEventReminders"),sendEventRemindersToSharedUsers:i("dav","sendEventRemindersToSharedUsers"),sendEventRemindersPush:i("dav","sendEventRemindersPush")}},computed:{hint(){return p("dav","Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}.").replace("{calendarappstoreopen}",'').replace("{calendardocopen}",``).replace(/\{linkclose\}/g,"")},sendInvitationsHelpText(){return p("dav","Please make sure to properly set up {emailopen}the email server{linkclose}.").replace("{emailopen}",'').replace("{linkclose}","")},sendEventRemindersHelpText(){return p("dav","Please make sure to properly set up {emailopen}the email server{linkclose}.").replace("{emailopen}",'').replace("{linkclose}","")}},watch:{generateBirthdayCalendar(d){const e=d?"/apps/dav/enableBirthdayCalendar":"/apps/dav/disableBirthdayCalendar";R.post(C(e))},sendInvitations(d){OCP.AppConfig.setValue("dav","sendInvitations",d?"yes":"no")},sendEventReminders(d){OCP.AppConfig.setValue("dav","sendEventReminders",d?"yes":"no")},sendEventRemindersToSharedUsers(d){OCP.AppConfig.setValue("dav","sendEventRemindersToSharedUsers",d?"yes":"no")},sendEventRemindersPush(d){OCP.AppConfig.setValue("dav","sendEventRemindersPush",d?"yes":"no")}}},T=["innerHTML"],w=["innerHTML"],U=["innerHTML"],_={class:"indented"},P={class:"indented"};function H(d,e,x,t,a,u){const o=v("NcCheckboxRadioSwitch"),f=v("NcSettingsSection");return y(),g(f,{name:t.t("dav","Calendar server"),"doc-url":a.userSyncCalendarsDocUrl},{default:l(()=>[n("p",{class:"settings-hint",innerHTML:u.hint},null,8,T),n("p",null,[m(o,{id:"caldavSendInvitations",modelValue:a.sendInvitations,"onUpdate:modelValue":e[0]||(e[0]=s=>a.sendInvitations=s),type:"switch"},{default:l(()=>[c(r(t.t("dav","Send invitations to attendees")),1)]),_:1},8,["modelValue"]),n("em",{innerHTML:u.sendInvitationsHelpText},null,8,w)]),n("p",null,[m(o,{id:"caldavGenerateBirthdayCalendar",modelValue:a.generateBirthdayCalendar,"onUpdate:modelValue":e[1]||(e[1]=s=>a.generateBirthdayCalendar=s),type:"switch",class:"checkbox"},{default:l(()=>[c(r(t.t("dav","Automatically generate a birthday calendar")),1)]),_:1},8,["modelValue"]),n("em",null,r(t.t("dav","Birthday calendars will be generated by a background job.")),1),e[5]||(e[5]=n("br",null,null,-1)),n("em",null,r(t.t("dav","Hence they will not be available immediately after enabling but will show up after some time.")),1)]),n("p",null,[m(o,{id:"caldavSendEventReminders",modelValue:a.sendEventReminders,"onUpdate:modelValue":e[2]||(e[2]=s=>a.sendEventReminders=s),type:"switch"},{default:l(()=>[c(r(t.t("dav","Send notifications for events")),1)]),_:1},8,["modelValue"]),n("em",{innerHTML:u.sendEventRemindersHelpText},null,8,U),e[6]||(e[6]=n("br",null,null,-1)),n("em",null,r(t.t("dav","Notifications are sent via background jobs, so these must occur often enough.")),1)]),n("p",_,[m(o,{id:"caldavSendEventRemindersToSharedGroupMembers",modelValue:a.sendEventRemindersToSharedUsers,"onUpdate:modelValue":e[3]||(e[3]=s=>a.sendEventRemindersToSharedUsers=s),type:"switch",disabled:!a.sendEventReminders},{default:l(()=>[c(r(t.t("dav","Send reminder notifications to calendar sharees as well")),1)]),_:1},8,["modelValue","disabled"]),n("em",null,r(t.t("dav","Reminders are always sent to organizers and attendees.")),1)]),n("p",P,[m(o,{id:"caldavSendEventRemindersPush",modelValue:a.sendEventRemindersPush,"onUpdate:modelValue":e[4]||(e[4]=s=>a.sendEventRemindersPush=s),type:"switch",disabled:!a.sendEventReminders},{default:l(()=>[c(r(t.t("dav","Enable notifications for events via push")),1)]),_:1},8,["modelValue","disabled"])])]),_:1},8,["name","doc-url"])}const I=E(k,[["render",H],["__scopeId","data-v-84465bd0"]]),B=b(I);B.mount("#settings-admin-caldav"); //# sourceMappingURL=dav-settings-admin-caldav.mjs.map diff --git a/dist/dav-settings-admin-caldav.mjs.map b/dist/dav-settings-admin-caldav.mjs.map index 53ede87152972..4f9290388e42a 100644 --- a/dist/dav-settings-admin-caldav.mjs.map +++ b/dist/dav-settings-admin-caldav.mjs.map @@ -1 +1 @@ -{"version":3,"file":"dav-settings-admin-caldav.mjs","sources":["../build/frontend/apps/dav/src/views/CalDavSettings.vue","../build/frontend/apps/dav/src/settings-admin.ts"],"sourcesContent":["\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { createApp } from 'vue'\nimport CalDavSettings from './views/CalDavSettings.vue'\n\nconst app = createApp(CalDavSettings)\napp.mount('#settings-admin-caldav')\n"],"names":["userSyncCalendarsDocUrl","loadState","_sfc_main","NcCheckboxRadioSwitch","NcSettingsSection","t","value","baseUrl","axios","generateUrl","_hoisted_4","_hoisted_5","_createBlock","_component_NcSettingsSection","$setup","$data","_createElementVNode","$options","_createVNode","_component_NcCheckboxRadioSwitch","$event","_hoisted_2","_hoisted_3","app","createApp","CalDavSettings"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"dav-settings-admin-caldav.mjs","sources":["../build/frontend/apps/dav/src/views/CalDavSettings.vue","../build/frontend/apps/dav/src/settings-admin.ts"],"sourcesContent":["\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { createApp } from 'vue'\nimport CalDavSettings from './views/CalDavSettings.vue'\n\nconst app = createApp(CalDavSettings)\napp.mount('#settings-admin-caldav')\n"],"names":["userSyncCalendarsDocUrl","loadState","_sfc_main","NcCheckboxRadioSwitch","NcSettingsSection","t","value","baseUrl","axios","generateUrl","_hoisted_4","_hoisted_5","_createBlock","_component_NcSettingsSection","$setup","$data","_createElementVNode","$options","_createVNode","_component_NcCheckboxRadioSwitch","$event","_hoisted_2","_hoisted_3","app","createApp","CalDavSettings"],"mappings":"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"} \ No newline at end of file diff --git a/dist/dav-settings-admin-example-content.css b/dist/dav-settings-admin-example-content.css index 393ee4f1cec37..97849ee92320a 100644 --- a/dist/dav-settings-admin-example-content.css +++ b/dist/dav-settings-admin-example-content.css @@ -1,20 +1,23 @@ /* extracted by css-entry-points-plugin */ @import './dav-dav-settings-admin-example-content-BWzlcBW1.chunk.css'; -@import './NcNoteCard-CVhtNL04-DopLwvn9.chunk.css'; -@import './mdi-BYHcrfvW.chunk.css'; -@import './index-JpgrUA2Z-PxDoi4mB.chunk.css'; +@import './AccountOutline-Bx-uhVVO.chunk.css'; +@import './NcModal-MC_HktJd-YC6kxNbR.chunk.css'; @import './NcDateTime-DXOHXnuu.chunk.css'; +@import './Web-BYHcrfvW.chunk.css'; @import './NcSelect-Czzsi3P_-DxGOLvnt.chunk.css'; @import './NcInputField-Bwsh2aHY-_gyGHRGx.chunk.css'; -@import './NcCheckboxRadioSwitch-BCSKF7Tk-BgdwjgMO.chunk.css'; +@import './mdi-Jq77EThs.chunk.css'; +@import './index-JpgrUA2Z-CX17yN4T.chunk.css'; +@import './NcContent-BR_nMwKN-BSxKRQfD.chunk.css'; @import './index-DoZPzs7J.chunk.css'; -@import './PencilOutline-Bq_6hmXG.chunk.css'; -@import './NcAvatar-DmUGApWA-B-07Svbi.chunk.css'; -@import './NcRichText-CBMtJzE_-Ctfl9_Xi.chunk.css'; @import './NcPasswordField-djttkA5Q-2EzJaBaw.chunk.css'; @import './NcBreadcrumbs-DYfGaSjT-CLvNFon0.chunk.css'; +@import './PencilOutline-Bq_6hmXG.chunk.css'; +@import './NcAvatar-DmUGApWA-B-07Svbi.chunk.css'; @import './NcColorPicker-Kc0JqRtp-BOLDG5h-.chunk.css'; @import './NcEmojiPicker-pM4Pg2yq-BHtXoCfG.chunk.css'; +@import './NcCheckboxRadioSwitch-BCSKF7Tk-BgdwjgMO.chunk.css'; +@import './NcRichText-CBMtJzE_-DAm7eJJb.chunk.css'; @import './index-BrN_nqOS.chunk.css'; @import './TrayArrowDown-CMlC-wJV.chunk.css'; @import './NcGuestContent-j8ai4O1K-D0718NyY.chunk.css'; diff --git a/dist/dav-settings-admin-example-content.mjs b/dist/dav-settings-admin-example-content.mjs index 74394955194e5..c9b023a47fb1c 100644 --- a/dist/dav-settings-admin-example-content.mjs +++ b/dist/dav-settings-admin-example-content.mjs @@ -1,2 +1,2 @@ -import{j as d,o as l,k as m,l as h,t as u,z,b as U,c as y,u as x,w as n,e as r,m as S,f as p,g,h as Z}from"./runtime-dom.esm-bundler-BrYCUcZF.chunk.mjs";import{a as w,l as k}from"./index-xFugdZPW.chunk.mjs";import{t as c}from"./translation-DoG5ZELJ-gw0g4US-.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-CAvY10OW.chunk.mjs";import{c as B}from"./NcNoteCard-CVhtNL04-hwuc093N.chunk.mjs";import"./index-DZnagzmP.chunk.mjs";import{g as C}from"./createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs";import"./NcBreadcrumbs-DYfGaSjT-DHeGymVL.chunk.mjs";import{N as H,e as M,a as _}from"./index-JpgrUA2Z-BFiKKJ1W.chunk.mjs";import"./NcAvatar-DmUGApWA-DBHt6M62.chunk.mjs";import"./NcRichText-CBMtJzE_-bvZFA37H.chunk.mjs";import"./mdi-D55n0uzy.chunk.mjs";import"./index-6_gsQFyp.chunk.mjs";import{N as L}from"./NcCheckboxRadioSwitch-BCSKF7Tk-yPckcGKs.chunk.mjs";import"./NcColorPicker-Kc0JqRtp-VtydDeG1.chunk.mjs";import{D as T,s as j}from"./TrayArrowDown-DV7s2Yis.chunk.mjs";import"./NcSelect-Czzsi3P_-DLFUGW7z.chunk.mjs";import"./NcEmojiPicker-pM4Pg2yq-C_Dpe77I.chunk.mjs";import"./index-BZk0T9Q-.chunk.mjs";/* empty css */import"./NcInputField-Bwsh2aHY-CHbAfY0u.chunk.mjs";import"./NcPasswordField-djttkA5Q-2g87vOpY.chunk.mjs";import{c as E}from"./index-BfylblLb.chunk.mjs";import"./TrashCanOutline-CvWRJ8GE.chunk.mjs";import{N as q}from"./ContentCopy-DVkZwwZt.chunk.mjs";import"./NcUserBubble-DPAmU2_J-BCvWAzcB.chunk.mjs";import"./PencilOutline-DCq8EKwg.chunk.mjs";import"./colors-Go3zmZRD-DU6ImAGi.chunk.mjs";import{l as I}from"./logger-CKJsLJ9Y.chunk.mjs";import"./string_decoder-BO00msnV.chunk.mjs";const G='',J={name:"AccountIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},K=["aria-hidden","aria-label"],P=["fill","width","height"],Q={d:"M12,4A4,4 0 0,1 16,8A4,4 0 0,1 12,12A4,4 0 0,1 8,8A4,4 0 0,1 12,4M12,14C16.42,14 20,15.79 20,18V20H4V18C4,15.79 7.58,14 12,14Z"},W={key:0};function X(a,e,t,i,o,s){return l(),d("span",z(a.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon account-icon",role:"img",onClick:e[0]||(e[0]=v=>a.$emit("click",v))}),[(l(),d("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[m("path",Q,[t.title?(l(),d("title",W,u(t.title),1)):h("",!0)])],8,P))],16,K)}const Y=w(J,[["render",X]]),ee={name:"RestoreIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},te=["aria-hidden","aria-label"],ae=["fill","width","height"],oe={d:"M13,3A9,9 0 0,0 4,12H1L4.89,15.89L4.96,16.03L9,12H6A7,7 0 0,1 13,5A7,7 0 0,1 20,12A7,7 0 0,1 13,19C11.07,19 9.32,18.21 8.06,16.94L6.64,18.36C8.27,20 10.5,21 13,21A9,9 0 0,0 22,12A9,9 0 0,0 13,3Z"},le={key:0};function ne(a,e,t,i,o,s){return l(),d("span",z(a.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon restore-icon",role:"img",onClick:e[0]||(e[0]=v=>a.$emit("click",v))}),[(l(),d("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[m("path",oe,[t.title?(l(),d("title",le,u(t.title),1)):h("",!0)])],8,ae))],16,te)}const R=w(ee,[["render",ne]]),ie={name:"TrayArrowUpIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},se=["aria-hidden","aria-label"],re=["fill","width","height"],ce={d:"M2 12H4V17H20V12H22V17C22 18.11 21.11 19 20 19H4C2.9 19 2 18.11 2 17V12M12 2L6.46 7.46L7.88 8.88L11 5.75V15H13V5.75L16.13 8.88L17.55 7.45L12 2Z"},de={key:0};function pe(a,e,t,i,o,s){return l(),d("span",z(a.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon tray-arrow-up-icon",role:"img",onClick:e[0]||(e[0]=v=>a.$emit("click",v))}),[(l(),d("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[m("path",ce,[t.title?(l(),d("title",de,u(t.title),1)):h("",!0)])],8,re))],16,se)}const $=w(ie,[["render",pe]]),ue={class:"download-button"},me={class:"download-button__label"},ve=U({__name:"ExampleContentDownloadButton",props:{href:{}},setup(a){return(e,t)=>(l(),y(x(B),{variant:"tertiary",href:a.href},{icon:n(()=>[S(e.$slots,"icon",{},void 0,!0)]),default:n(()=>[m("div",ue,[m("span",me,[S(e.$slots,"default",{},void 0,!0)]),r(T,{class:"download-button__icon",size:20})])]),_:3},8,["href"]))}}),O=w(ve,[["__scopeId","data-v-be40807a"]]),he=k("dav","enableDefaultContact",!1),fe=k("dav","hasCustomDefaultContact",!1),ge={name:"ExampleContactSettings",components:{NcDialog:H,NcButton:B,NcCheckboxRadioSwitch:L,IconUpload:$,IconRestore:R,IconAccount:Y,ExampleContentDownloadButton:O},setup(){return{t:c}},data(){return{enableDefaultContact:he,hasCustomDefaultContact:fe,isModalOpen:!1,loading:!1,buttons:[{label:c("dav","Cancel"),icon:G,callback:()=>{this.isModalOpen=!1}},{label:c("dav","Import"),icon:j,variant:"primary",callback:()=>{this.clickImportInput()}}]}},computed:{downloadUrl(){return C("/apps/dav/api/defaultcontact/contact")}},methods:{updateEnableDefaultContact(){E.put(C("apps/dav/api/defaultcontact/config"),{allow:!this.enableDefaultContact}).then(()=>{this.enableDefaultContact=!this.enableDefaultContact}).catch(()=>{_(c("dav","Error while saving settings"))})},toggleModal(){this.isModalOpen=!this.isModalOpen},clickImportInput(){this.$refs.exampleContactImportInput.click()},resetContact(){this.loading=!0,E.put(C("/apps/dav/api/defaultcontact/contact")).then(()=>{this.hasCustomDefaultContact=!1,M(c("dav","Contact reset successfully"))}).catch(a=>{I.error("Error importing contact:",{error:a}),_(c("dav","Error while resetting contact"))}).finally(()=>{this.loading=!1})},processFile(a){this.loading=!0;const e=a.target.files[0],t=new FileReader;t.onload=async()=>{this.isModalOpen=!1;try{await E.put(C("/apps/dav/api/defaultcontact/contact"),{contactData:t.result}),this.hasCustomDefaultContact=!0,M(c("dav","Contact imported successfully"))}catch(i){I.error("Error importing contact:",{error:i}),_(c("dav","Error while importing contact"))}finally{this.loading=!1,a.target.value=""}},t.readAsText(e)}}},Ce={class:"example-contact-settings"},we={key:0,class:"example-contact-settings__buttons"},be=["disabled"];function xe(a,e,t,i,o,s){const v=p("NcCheckboxRadioSwitch"),A=p("IconAccount"),N=p("ExampleContentDownloadButton"),D=p("IconUpload"),b=p("NcButton"),V=p("IconRestore"),F=p("NcDialog");return l(),d("div",Ce,[r(v,{"model-value":o.enableDefaultContact,type:"switch","onUpdate:modelValue":s.updateEnableDefaultContact},{default:n(()=>[g(u(i.t("dav","Add example contact to user's address book when they first log in")),1)]),_:1},8,["model-value","onUpdate:modelValue"]),o.enableDefaultContact?(l(),d("div",we,[r(N,{href:s.downloadUrl},{icon:n(()=>[r(A,{size:20})]),default:n(()=>[e[2]||(e[2]=g(" example_contact.vcf ",-1))]),_:1},8,["href"]),r(b,{variant:"secondary",onClick:s.toggleModal},{icon:n(()=>[r(D,{size:20})]),default:n(()=>[g(" "+u(i.t("dav","Import contact")),1)]),_:1},8,["onClick"]),o.hasCustomDefaultContact?(l(),y(b,{key:0,variant:"tertiary",onClick:s.resetContact},{icon:n(()=>[r(V,{size:20})]),default:n(()=>[g(" "+u(i.t("dav","Reset to default")),1)]),_:1},8,["onClick"])):h("",!0)])):h("",!0),r(F,{open:o.isModalOpen,"onUpdate:open":e[0]||(e[0]=f=>o.isModalOpen=f),name:i.t("dav","Import contacts"),buttons:o.buttons},{default:n(()=>[m("div",null,[m("p",null,u(i.t("dav","Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?")),1)])]),_:1},8,["open","name","buttons"]),m("input",{id:"example-contact-import",ref:"exampleContactImportInput",disabled:o.loading,type:"file",accept:".vcf",class:"hidden-visually",onChange:e[1]||(e[1]=(...f)=>s.processFile&&s.processFile(...f))},null,40,be)])}const ye=w(ge,[["render",xe],["__scopeId","data-v-b21a902d"]]),_e={name:"CalendarBlankIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ee=["aria-hidden","aria-label"],ke=["fill","width","height"],Ie={d:"M19,19H5V8H19M16,1V3H8V1H6V3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3H18V1"},De={key:0};function Me(a,e,t,i,o,s){return l(),d("span",z(a.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon calendar-blank-icon",role:"img",onClick:e[0]||(e[0]=v=>a.$emit("click",v))}),[(l(),d("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[m("path",Ie,[t.title?(l(),d("title",De,u(t.title),1)):h("",!0)])],8,ke))],16,Ee)}const ze=w(_e,[["render",Me]]);async function Ae(a){const e=C("/apps/dav/api/exampleEvent/enable");await E.post(e,{enable:a})}async function Ne(a){const e=C("/apps/dav/api/exampleEvent/event");await E.post(e,{ics:a})}async function Ve(){const a=C("/apps/dav/api/exampleEvent/event");await E.delete(a)}const Fe={name:"ExampleEventSettings",components:{NcButton:B,NcCheckboxRadioSwitch:L,NcDialog:H,IconCalendarBlank:ze,IconUpload:$,IconRestore:R,ExampleContentDownloadButton:O},setup(){return{t:c}},data(){return{createExampleEvent:k("dav","create_example_event",!1),hasCustomEvent:k("dav","has_custom_example_event",!1),showImportModal:!1,uploading:!1,deleting:!1,savingConfig:!1,selectedFile:void 0}},computed:{downloadUrl(){return C("/apps/dav/api/exampleEvent/event")}},methods:{selectFile(){this.selectedFile=this.$refs["event-file"]?.files[0]},async updateCreateExampleEvent(){this.savingConfig=!0;const a=!this.createExampleEvent;try{await Ae(a)}catch(e){_(c("dav","Failed to save example event creation setting")),I.error("Failed to save example event creation setting",{error:e,enable:a})}finally{this.savingConfig=!1}this.createExampleEvent=a},uploadCustomEvent(){if(!this.selectedFile)return;this.uploading=!0;const a=new FileReader;a.addEventListener("load",async()=>{const e=a.result;try{await Ne(e)}catch(t){_(c("dav","Failed to upload the example event")),I.error("Failed to upload example ICS",{error:t,ics:e});return}finally{this.uploading=!1}M(c("dav","Custom example event was saved successfully")),this.showImportModal=!1,this.hasCustomEvent=!0}),a.readAsText(this.selectedFile)},async deleteCustomEvent(){this.deleting=!0;try{await Ve()}catch(a){_(c("dav","Failed to delete the custom example event")),I.error("Failed to delete the custom example event",{error:a});return}finally{this.deleting=!1}M(c("dav","Custom example event was deleted successfully")),this.hasCustomEvent=!1}}},Be={class:"example-event-settings"},Se={key:0,class:"example-event-settings__buttons"},Ue={class:"import-event-modal"},He=["disabled"],Le={class:"import-event-modal__buttons"};function Re(a,e,t,i,o,s){const v=p("NcCheckboxRadioSwitch"),A=p("IconCalendarBlank"),N=p("ExampleContentDownloadButton"),D=p("IconUpload"),b=p("NcButton"),V=p("IconRestore"),F=p("NcDialog");return l(),d("div",Be,[r(v,{"model-value":o.createExampleEvent,disabled:o.savingConfig,type:"switch","onUpdate:modelValue":s.updateCreateExampleEvent},{default:n(()=>[g(u(i.t("dav","Add example event to user's calendar when they first log in")),1)]),_:1},8,["model-value","disabled","onUpdate:modelValue"]),o.createExampleEvent?(l(),d("div",Se,[r(N,{href:s.downloadUrl},{icon:n(()=>[r(A,{size:20})]),default:n(()=>[e[4]||(e[4]=g(" example_event.ics ",-1))]),_:1},8,["href"]),r(b,{variant:"secondary",onClick:e[0]||(e[0]=f=>o.showImportModal=!0)},{icon:n(()=>[r(D,{size:20})]),default:n(()=>[g(" "+u(i.t("dav","Import calendar event")),1)]),_:1}),o.hasCustomEvent?(l(),y(b,{key:0,variant:"tertiary",disabled:o.deleting,onClick:s.deleteCustomEvent},{icon:n(()=>[r(V,{size:20})]),default:n(()=>[g(" "+u(i.t("dav","Reset to default")),1)]),_:1},8,["disabled","onClick"])):h("",!0)])):h("",!0),r(F,{open:o.showImportModal,"onUpdate:open":e[3]||(e[3]=f=>o.showImportModal=f),name:i.t("dav","Import calendar event")},{default:n(()=>[m("div",Ue,[m("p",null,u(i.t("dav","Uploading a new event will overwrite the existing one.")),1),m("input",{ref:"event-file",disabled:o.uploading,type:"file",accept:".ics,text/calendar",class:"import-event-modal__file-picker",onChange:e[1]||(e[1]=(...f)=>s.selectFile&&s.selectFile(...f))},null,40,He),m("div",Le,[r(b,{disabled:o.uploading||!o.selectedFile,variant:"primary",onClick:e[2]||(e[2]=f=>s.uploadCustomEvent())},{icon:n(()=>[r(D,{size:20})]),default:n(()=>[g(" "+u(i.t("dav","Upload event")),1)]),_:1},8,["disabled"])])])]),_:1},8,["open","name"])])}const $e=w(Fe,[["render",Re],["__scopeId","data-v-1d9256f4"]]),Oe=U({__name:"ExampleContentSettingsSection",setup(a){const e=k("dav","contactsEnabled"),t=k("dav","calendarEnabled");return(i,o)=>(l(),y(x(q),{id:"example-content",name:x(c)("dav","Example content"),description:x(c)("dav","Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content.")},{default:n(()=>[x(e)?(l(),y(ye,{key:0})):h("",!0),x(t)?(l(),y($e,{key:1})):h("",!0)]),_:1},8,["name","description"]))}}),Ze=Z(Oe);Ze.mount("#settings-example-content"); +import{j as d,o as l,k as m,l as h,t as u,z,b as U,c as y,u as x,w as n,e as r,m as S,f as p,g,h as Z}from"./runtime-dom.esm-bundler-DdtEg5E9.chunk.mjs";import{a as w,l as k}from"./index-DCpg1aui.chunk.mjs";import{t as c}from"./string_decoder-vT-u9WbV.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-BNncp1Y1.chunk.mjs";import{b as B}from"./AccountOutline-BlW-6JqD.chunk.mjs";import"./index-FxQbLoUx.chunk.mjs";import{g as C}from"./createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs";import"./NcBreadcrumbs-DYfGaSjT-BPFs0jvP.chunk.mjs";import"./NcModal-MC_HktJd-DqeuH-fk.chunk.mjs";import"./NcAvatar-DmUGApWA-xbPVEdSn.chunk.mjs";import"./NcContent-BR_nMwKN-DuxjkyFF.chunk.mjs";import"./Web-aYJacExm.chunk.mjs";import"./index-Bndk0DrU.chunk.mjs";import{N as H}from"./NcCheckboxRadioSwitch-BCSKF7Tk-B1Kcz6gU.chunk.mjs";import"./NcColorPicker-Kc0JqRtp-G7GArS5K.chunk.mjs";import{D as T,s as j}from"./TrayArrowDown-CEVYjTiD.chunk.mjs";import{N as L,e as M,a as _}from"./index-JpgrUA2Z-BXxDc_if.chunk.mjs";import"./NcSelect-Czzsi3P_-BKaYvmLF.chunk.mjs";import"./NcEmojiPicker-pM4Pg2yq-CYkSkF_Y.chunk.mjs";import"./index-QzsMEHKe.chunk.mjs";import"./NcRichText-CBMtJzE_-BrKByk17.chunk.mjs";/* empty css */import"./NcInputField-Bwsh2aHY-Cz27INBW.chunk.mjs";import"./mdi-BpC5Cj53.chunk.mjs";import"./NcPasswordField-djttkA5Q-Dz7uhHFj.chunk.mjs";import{c as E}from"./index-DVH_Kr3Q.chunk.mjs";import"./TrashCanOutline-DglPBhgI.chunk.mjs";import{N as q}from"./ContentCopy-s5fS3y5J.chunk.mjs";import"./NcUserBubble-DPAmU2_J-D9jxXA1V.chunk.mjs";import"./PencilOutline-BSRAQiy1.chunk.mjs";import"./colors-Go3zmZRD-DNxaZwS4.chunk.mjs";import{l as I}from"./logger-BIjspx2Q.chunk.mjs";import"./public-uQ6dl0vH.chunk.mjs";const G='',J={name:"AccountIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},K=["aria-hidden","aria-label"],P=["fill","width","height"],Q={d:"M12,4A4,4 0 0,1 16,8A4,4 0 0,1 12,12A4,4 0 0,1 8,8A4,4 0 0,1 12,4M12,14C16.42,14 20,15.79 20,18V20H4V18C4,15.79 7.58,14 12,14Z"},W={key:0};function X(a,e,t,i,o,s){return l(),d("span",z(a.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon account-icon",role:"img",onClick:e[0]||(e[0]=v=>a.$emit("click",v))}),[(l(),d("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[m("path",Q,[t.title?(l(),d("title",W,u(t.title),1)):h("",!0)])],8,P))],16,K)}const Y=w(J,[["render",X]]),ee={name:"RestoreIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},te=["aria-hidden","aria-label"],ae=["fill","width","height"],oe={d:"M13,3A9,9 0 0,0 4,12H1L4.89,15.89L4.96,16.03L9,12H6A7,7 0 0,1 13,5A7,7 0 0,1 20,12A7,7 0 0,1 13,19C11.07,19 9.32,18.21 8.06,16.94L6.64,18.36C8.27,20 10.5,21 13,21A9,9 0 0,0 22,12A9,9 0 0,0 13,3Z"},le={key:0};function ne(a,e,t,i,o,s){return l(),d("span",z(a.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon restore-icon",role:"img",onClick:e[0]||(e[0]=v=>a.$emit("click",v))}),[(l(),d("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[m("path",oe,[t.title?(l(),d("title",le,u(t.title),1)):h("",!0)])],8,ae))],16,te)}const R=w(ee,[["render",ne]]),ie={name:"TrayArrowUpIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},se=["aria-hidden","aria-label"],re=["fill","width","height"],ce={d:"M2 12H4V17H20V12H22V17C22 18.11 21.11 19 20 19H4C2.9 19 2 18.11 2 17V12M12 2L6.46 7.46L7.88 8.88L11 5.75V15H13V5.75L16.13 8.88L17.55 7.45L12 2Z"},de={key:0};function pe(a,e,t,i,o,s){return l(),d("span",z(a.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon tray-arrow-up-icon",role:"img",onClick:e[0]||(e[0]=v=>a.$emit("click",v))}),[(l(),d("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[m("path",ce,[t.title?(l(),d("title",de,u(t.title),1)):h("",!0)])],8,re))],16,se)}const $=w(ie,[["render",pe]]),ue={class:"download-button"},me={class:"download-button__label"},ve=U({__name:"ExampleContentDownloadButton",props:{href:{}},setup(a){return(e,t)=>(l(),y(x(B),{variant:"tertiary",href:a.href},{icon:n(()=>[S(e.$slots,"icon",{},void 0,!0)]),default:n(()=>[m("div",ue,[m("span",me,[S(e.$slots,"default",{},void 0,!0)]),r(T,{class:"download-button__icon",size:20})])]),_:3},8,["href"]))}}),O=w(ve,[["__scopeId","data-v-be40807a"]]),he=k("dav","enableDefaultContact",!1),fe=k("dav","hasCustomDefaultContact",!1),ge={name:"ExampleContactSettings",components:{NcDialog:L,NcButton:B,NcCheckboxRadioSwitch:H,IconUpload:$,IconRestore:R,IconAccount:Y,ExampleContentDownloadButton:O},setup(){return{t:c}},data(){return{enableDefaultContact:he,hasCustomDefaultContact:fe,isModalOpen:!1,loading:!1,buttons:[{label:c("dav","Cancel"),icon:G,callback:()=>{this.isModalOpen=!1}},{label:c("dav","Import"),icon:j,variant:"primary",callback:()=>{this.clickImportInput()}}]}},computed:{downloadUrl(){return C("/apps/dav/api/defaultcontact/contact")}},methods:{updateEnableDefaultContact(){E.put(C("apps/dav/api/defaultcontact/config"),{allow:!this.enableDefaultContact}).then(()=>{this.enableDefaultContact=!this.enableDefaultContact}).catch(()=>{_(c("dav","Error while saving settings"))})},toggleModal(){this.isModalOpen=!this.isModalOpen},clickImportInput(){this.$refs.exampleContactImportInput.click()},resetContact(){this.loading=!0,E.put(C("/apps/dav/api/defaultcontact/contact")).then(()=>{this.hasCustomDefaultContact=!1,M(c("dav","Contact reset successfully"))}).catch(a=>{I.error("Error importing contact:",{error:a}),_(c("dav","Error while resetting contact"))}).finally(()=>{this.loading=!1})},processFile(a){this.loading=!0;const e=a.target.files[0],t=new FileReader;t.onload=async()=>{this.isModalOpen=!1;try{await E.put(C("/apps/dav/api/defaultcontact/contact"),{contactData:t.result}),this.hasCustomDefaultContact=!0,M(c("dav","Contact imported successfully"))}catch(i){I.error("Error importing contact:",{error:i}),_(c("dav","Error while importing contact"))}finally{this.loading=!1,a.target.value=""}},t.readAsText(e)}}},Ce={class:"example-contact-settings"},we={key:0,class:"example-contact-settings__buttons"},be=["disabled"];function xe(a,e,t,i,o,s){const v=p("NcCheckboxRadioSwitch"),A=p("IconAccount"),N=p("ExampleContentDownloadButton"),D=p("IconUpload"),b=p("NcButton"),V=p("IconRestore"),F=p("NcDialog");return l(),d("div",Ce,[r(v,{"model-value":o.enableDefaultContact,type:"switch","onUpdate:modelValue":s.updateEnableDefaultContact},{default:n(()=>[g(u(i.t("dav","Add example contact to user's address book when they first log in")),1)]),_:1},8,["model-value","onUpdate:modelValue"]),o.enableDefaultContact?(l(),d("div",we,[r(N,{href:s.downloadUrl},{icon:n(()=>[r(A,{size:20})]),default:n(()=>[e[2]||(e[2]=g(" example_contact.vcf ",-1))]),_:1},8,["href"]),r(b,{variant:"secondary",onClick:s.toggleModal},{icon:n(()=>[r(D,{size:20})]),default:n(()=>[g(" "+u(i.t("dav","Import contact")),1)]),_:1},8,["onClick"]),o.hasCustomDefaultContact?(l(),y(b,{key:0,variant:"tertiary",onClick:s.resetContact},{icon:n(()=>[r(V,{size:20})]),default:n(()=>[g(" "+u(i.t("dav","Reset to default")),1)]),_:1},8,["onClick"])):h("",!0)])):h("",!0),r(F,{open:o.isModalOpen,"onUpdate:open":e[0]||(e[0]=f=>o.isModalOpen=f),name:i.t("dav","Import contacts"),buttons:o.buttons},{default:n(()=>[m("div",null,[m("p",null,u(i.t("dav","Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?")),1)])]),_:1},8,["open","name","buttons"]),m("input",{id:"example-contact-import",ref:"exampleContactImportInput",disabled:o.loading,type:"file",accept:".vcf",class:"hidden-visually",onChange:e[1]||(e[1]=(...f)=>s.processFile&&s.processFile(...f))},null,40,be)])}const ye=w(ge,[["render",xe],["__scopeId","data-v-b21a902d"]]),_e={name:"CalendarBlankIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ee=["aria-hidden","aria-label"],ke=["fill","width","height"],Ie={d:"M19,19H5V8H19M16,1V3H8V1H6V3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3H18V1"},De={key:0};function Me(a,e,t,i,o,s){return l(),d("span",z(a.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon calendar-blank-icon",role:"img",onClick:e[0]||(e[0]=v=>a.$emit("click",v))}),[(l(),d("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[m("path",Ie,[t.title?(l(),d("title",De,u(t.title),1)):h("",!0)])],8,ke))],16,Ee)}const ze=w(_e,[["render",Me]]);async function Ae(a){const e=C("/apps/dav/api/exampleEvent/enable");await E.post(e,{enable:a})}async function Ne(a){const e=C("/apps/dav/api/exampleEvent/event");await E.post(e,{ics:a})}async function Ve(){const a=C("/apps/dav/api/exampleEvent/event");await E.delete(a)}const Fe={name:"ExampleEventSettings",components:{NcButton:B,NcCheckboxRadioSwitch:H,NcDialog:L,IconCalendarBlank:ze,IconUpload:$,IconRestore:R,ExampleContentDownloadButton:O},setup(){return{t:c}},data(){return{createExampleEvent:k("dav","create_example_event",!1),hasCustomEvent:k("dav","has_custom_example_event",!1),showImportModal:!1,uploading:!1,deleting:!1,savingConfig:!1,selectedFile:void 0}},computed:{downloadUrl(){return C("/apps/dav/api/exampleEvent/event")}},methods:{selectFile(){this.selectedFile=this.$refs["event-file"]?.files[0]},async updateCreateExampleEvent(){this.savingConfig=!0;const a=!this.createExampleEvent;try{await Ae(a)}catch(e){_(c("dav","Failed to save example event creation setting")),I.error("Failed to save example event creation setting",{error:e,enable:a})}finally{this.savingConfig=!1}this.createExampleEvent=a},uploadCustomEvent(){if(!this.selectedFile)return;this.uploading=!0;const a=new FileReader;a.addEventListener("load",async()=>{const e=a.result;try{await Ne(e)}catch(t){_(c("dav","Failed to upload the example event")),I.error("Failed to upload example ICS",{error:t,ics:e});return}finally{this.uploading=!1}M(c("dav","Custom example event was saved successfully")),this.showImportModal=!1,this.hasCustomEvent=!0}),a.readAsText(this.selectedFile)},async deleteCustomEvent(){this.deleting=!0;try{await Ve()}catch(a){_(c("dav","Failed to delete the custom example event")),I.error("Failed to delete the custom example event",{error:a});return}finally{this.deleting=!1}M(c("dav","Custom example event was deleted successfully")),this.hasCustomEvent=!1}}},Be={class:"example-event-settings"},Se={key:0,class:"example-event-settings__buttons"},Ue={class:"import-event-modal"},He=["disabled"],Le={class:"import-event-modal__buttons"};function Re(a,e,t,i,o,s){const v=p("NcCheckboxRadioSwitch"),A=p("IconCalendarBlank"),N=p("ExampleContentDownloadButton"),D=p("IconUpload"),b=p("NcButton"),V=p("IconRestore"),F=p("NcDialog");return l(),d("div",Be,[r(v,{"model-value":o.createExampleEvent,disabled:o.savingConfig,type:"switch","onUpdate:modelValue":s.updateCreateExampleEvent},{default:n(()=>[g(u(i.t("dav","Add example event to user's calendar when they first log in")),1)]),_:1},8,["model-value","disabled","onUpdate:modelValue"]),o.createExampleEvent?(l(),d("div",Se,[r(N,{href:s.downloadUrl},{icon:n(()=>[r(A,{size:20})]),default:n(()=>[e[4]||(e[4]=g(" example_event.ics ",-1))]),_:1},8,["href"]),r(b,{variant:"secondary",onClick:e[0]||(e[0]=f=>o.showImportModal=!0)},{icon:n(()=>[r(D,{size:20})]),default:n(()=>[g(" "+u(i.t("dav","Import calendar event")),1)]),_:1}),o.hasCustomEvent?(l(),y(b,{key:0,variant:"tertiary",disabled:o.deleting,onClick:s.deleteCustomEvent},{icon:n(()=>[r(V,{size:20})]),default:n(()=>[g(" "+u(i.t("dav","Reset to default")),1)]),_:1},8,["disabled","onClick"])):h("",!0)])):h("",!0),r(F,{open:o.showImportModal,"onUpdate:open":e[3]||(e[3]=f=>o.showImportModal=f),name:i.t("dav","Import calendar event")},{default:n(()=>[m("div",Ue,[m("p",null,u(i.t("dav","Uploading a new event will overwrite the existing one.")),1),m("input",{ref:"event-file",disabled:o.uploading,type:"file",accept:".ics,text/calendar",class:"import-event-modal__file-picker",onChange:e[1]||(e[1]=(...f)=>s.selectFile&&s.selectFile(...f))},null,40,He),m("div",Le,[r(b,{disabled:o.uploading||!o.selectedFile,variant:"primary",onClick:e[2]||(e[2]=f=>s.uploadCustomEvent())},{icon:n(()=>[r(D,{size:20})]),default:n(()=>[g(" "+u(i.t("dav","Upload event")),1)]),_:1},8,["disabled"])])])]),_:1},8,["open","name"])])}const $e=w(Fe,[["render",Re],["__scopeId","data-v-1d9256f4"]]),Oe=U({__name:"ExampleContentSettingsSection",setup(a){const e=k("dav","contactsEnabled"),t=k("dav","calendarEnabled");return(i,o)=>(l(),y(x(q),{id:"example-content",name:x(c)("dav","Example content"),description:x(c)("dav","Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content.")},{default:n(()=>[x(e)?(l(),y(ye,{key:0})):h("",!0),x(t)?(l(),y($e,{key:1})):h("",!0)]),_:1},8,["name","description"]))}}),Ze=Z(Oe);Ze.mount("#settings-example-content"); //# sourceMappingURL=dav-settings-admin-example-content.mjs.map diff --git a/dist/dav-settings-admin-example-content.mjs.map b/dist/dav-settings-admin-example-content.mjs.map index e8c47851dc634..ef4dbe7ab998f 100644 --- a/dist/dav-settings-admin-example-content.mjs.map +++ b/dist/dav-settings-admin-example-content.mjs.map @@ -1 +1 @@ -{"version":3,"file":"dav-settings-admin-example-content.mjs","sources":["../node_modules/@mdi/svg/svg/cancel.svg?raw","../node_modules/vue-material-design-icons/Account.vue","../node_modules/vue-material-design-icons/Restore.vue","../node_modules/vue-material-design-icons/TrayArrowUp.vue","../build/frontend/apps/dav/src/components/ExampleContentDownloadButton.vue","../build/frontend/apps/dav/src/components/ExampleContactSettings.vue","../node_modules/vue-material-design-icons/CalendarBlank.vue","../build/frontend/apps/dav/src/service/ExampleEventService.ts","../build/frontend/apps/dav/src/components/ExampleEventSettings.vue","../build/frontend/apps/dav/src/views/ExampleContentSettingsSection.vue","../build/frontend/apps/dav/src/settings-admin-example-content.ts"],"sourcesContent":["export default \"\"","\n\n","\n\n","\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n","/**\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios from '@nextcloud/axios'\nimport { generateUrl } from '@nextcloud/router'\n\n/**\n * Configure the creation of example events on a user's first login.\n *\n * @param enable - Whether to enable or disable the feature.\n */\nexport async function setCreateExampleEvent(enable: boolean): Promise {\n\tconst url = generateUrl('/apps/dav/api/exampleEvent/enable')\n\tawait axios.post(url, {\n\t\tenable,\n\t})\n}\n\n/**\n * Upload a custom example event.\n *\n * @param ics - The ICS data of the event.\n */\nexport async function uploadExampleEvent(ics: string): Promise {\n\tconst url = generateUrl('/apps/dav/api/exampleEvent/event')\n\tawait axios.post(url, {\n\t\tics,\n\t})\n}\n\n/**\n * Delete a previously uploaded custom example event.\n */\nexport async function deleteExampleEvent(): Promise {\n\tconst url = generateUrl('/apps/dav/api/exampleEvent/event')\n\tawait axios.delete(url)\n}\n","\n\n\n\n\n\n\n","\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { createApp } from 'vue'\nimport ExampleContentSettingsSection from './views/ExampleContentSettingsSection.vue'\n\nconst app = createApp(ExampleContentSettingsSection)\napp.mount('#settings-example-content')\n"],"names":["IconCancel","_sfc_main","_hoisted_3","_createElementBlock","_mergeProps","_ctx","$props","_cache","$event","_createElementVNode","_openBlock","_createBlock","_unref","NcButton","__props","_renderSlot","_hoisted_1","_hoisted_2","_createVNode","IconDownload","enableDefaultContact","loadState","hasCustomDefaultContact","NcDialog","NcCheckboxRadioSwitch","IconUpload","IconRestore","IconAccount","ExampleContentDownloadButton","t","IconCheck","generateUrl","axios","showError","showSuccess","error","logger","event","file","reader","_component_NcCheckboxRadioSwitch","$data","$options","$setup","_component_ExampleContentDownloadButton","_component_IconAccount","_component_NcButton","_component_IconUpload","_createTextVNode","_component_IconRestore","_component_NcDialog","args","setCreateExampleEvent","enable","url","uploadExampleEvent","ics","deleteExampleEvent","IconCalendarBlank","ExampleEventService.setCreateExampleEvent","ExampleEventService.uploadExampleEvent","ExampleEventService.deleteExampleEvent","_hoisted_5","_component_IconCalendarBlank","hasContactsApp","hasCalendarApp","NcSettingsSection","ExampleContactSettings","ExampleEventSettings","app","createApp","ExampleContentSettingsSection"],"mappings":"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","x_google_ignoreList":[0,1,2,3,6]} \ No newline at end of file +{"version":3,"file":"dav-settings-admin-example-content.mjs","sources":["../node_modules/@mdi/svg/svg/cancel.svg?raw","../node_modules/vue-material-design-icons/Account.vue","../node_modules/vue-material-design-icons/Restore.vue","../node_modules/vue-material-design-icons/TrayArrowUp.vue","../build/frontend/apps/dav/src/components/ExampleContentDownloadButton.vue","../build/frontend/apps/dav/src/components/ExampleContactSettings.vue","../node_modules/vue-material-design-icons/CalendarBlank.vue","../build/frontend/apps/dav/src/service/ExampleEventService.ts","../build/frontend/apps/dav/src/components/ExampleEventSettings.vue","../build/frontend/apps/dav/src/views/ExampleContentSettingsSection.vue","../build/frontend/apps/dav/src/settings-admin-example-content.ts"],"sourcesContent":["export default \"\"","\n\n","\n\n","\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n","/**\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios from '@nextcloud/axios'\nimport { generateUrl } from '@nextcloud/router'\n\n/**\n * Configure the creation of example events on a user's first login.\n *\n * @param enable - Whether to enable or disable the feature.\n */\nexport async function setCreateExampleEvent(enable: boolean): Promise {\n\tconst url = generateUrl('/apps/dav/api/exampleEvent/enable')\n\tawait axios.post(url, {\n\t\tenable,\n\t})\n}\n\n/**\n * Upload a custom example event.\n *\n * @param ics - The ICS data of the event.\n */\nexport async function uploadExampleEvent(ics: string): Promise {\n\tconst url = generateUrl('/apps/dav/api/exampleEvent/event')\n\tawait axios.post(url, {\n\t\tics,\n\t})\n}\n\n/**\n * Delete a previously uploaded custom example event.\n */\nexport async function deleteExampleEvent(): Promise {\n\tconst url = generateUrl('/apps/dav/api/exampleEvent/event')\n\tawait axios.delete(url)\n}\n","\n\n\n\n\n\n\n","\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { createApp } from 'vue'\nimport ExampleContentSettingsSection from './views/ExampleContentSettingsSection.vue'\n\nconst app = createApp(ExampleContentSettingsSection)\napp.mount('#settings-example-content')\n"],"names":["IconCancel","_sfc_main","_hoisted_3","_createElementBlock","_mergeProps","_ctx","$props","_cache","$event","_createElementVNode","_openBlock","_createBlock","_unref","NcButton","__props","_renderSlot","_hoisted_1","_hoisted_2","_createVNode","IconDownload","enableDefaultContact","loadState","hasCustomDefaultContact","NcDialog","NcCheckboxRadioSwitch","IconUpload","IconRestore","IconAccount","ExampleContentDownloadButton","t","IconCheck","generateUrl","axios","showError","showSuccess","error","logger","event","file","reader","_component_NcCheckboxRadioSwitch","$data","$options","$setup","_component_ExampleContentDownloadButton","_component_IconAccount","_component_NcButton","_component_IconUpload","_createTextVNode","_component_IconRestore","_component_NcDialog","args","setCreateExampleEvent","enable","url","uploadExampleEvent","ics","deleteExampleEvent","IconCalendarBlank","ExampleEventService.setCreateExampleEvent","ExampleEventService.uploadExampleEvent","ExampleEventService.deleteExampleEvent","_hoisted_5","_component_IconCalendarBlank","hasContactsApp","hasCalendarApp","NcSettingsSection","ExampleContactSettings","ExampleEventSettings","app","createApp","ExampleContentSettingsSection"],"mappings":"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","x_google_ignoreList":[0,1,2,3,6]} \ No newline at end of file diff --git a/dist/dav-settings-personal-availability.css b/dist/dav-settings-personal-availability.css index a740f687ef30e..e47aa85e1a36b 100644 --- a/dist/dav-settings-personal-availability.css +++ b/dist/dav-settings-personal-availability.css @@ -1,21 +1,24 @@ /* extracted by css-entry-points-plugin */ @import './dav-dav-settings-personal-availability-CTwf8DDv.chunk.css'; @import './ContentCopy-D7mIRwIy.chunk.css'; -@import './NcNoteCard-CVhtNL04-DopLwvn9.chunk.css'; -@import './mdi-BYHcrfvW.chunk.css'; -@import './index-JpgrUA2Z-PxDoi4mB.chunk.css'; +@import './AccountOutline-Bx-uhVVO.chunk.css'; +@import './NcModal-MC_HktJd-YC6kxNbR.chunk.css'; +@import './Web-BYHcrfvW.chunk.css'; +@import './mdi-Jq77EThs.chunk.css'; +@import './index-JpgrUA2Z-CX17yN4T.chunk.css'; @import './NcDateTime-DXOHXnuu.chunk.css'; @import './NcInputField-Bwsh2aHY-_gyGHRGx.chunk.css'; @import './NcPasswordField-djttkA5Q-2EzJaBaw.chunk.css'; @import './NcBreadcrumbs-DYfGaSjT-CLvNFon0.chunk.css'; @import './NcSelect-Czzsi3P_-DxGOLvnt.chunk.css'; -@import './NcCheckboxRadioSwitch-BCSKF7Tk-BgdwjgMO.chunk.css'; +@import './NcContent-BR_nMwKN-BSxKRQfD.chunk.css'; @import './index-DoZPzs7J.chunk.css'; @import './PencilOutline-Bq_6hmXG.chunk.css'; @import './NcAvatar-DmUGApWA-B-07Svbi.chunk.css'; -@import './NcRichText-CBMtJzE_-Ctfl9_Xi.chunk.css'; @import './NcColorPicker-Kc0JqRtp-BOLDG5h-.chunk.css'; @import './NcEmojiPicker-pM4Pg2yq-BHtXoCfG.chunk.css'; +@import './NcCheckboxRadioSwitch-BCSKF7Tk-BgdwjgMO.chunk.css'; +@import './NcRichText-CBMtJzE_-DAm7eJJb.chunk.css'; @import './index-BrN_nqOS.chunk.css'; @import './TrayArrowDown-CMlC-wJV.chunk.css'; @import './NcGuestContent-j8ai4O1K-D0718NyY.chunk.css'; diff --git a/dist/dav-settings-personal-availability.mjs b/dist/dav-settings-personal-availability.mjs index 5466a63cfb1e3..856cc77ddcbc1 100644 --- a/dist/dav-settings-personal-availability.mjs +++ b/dist/dav-settings-personal-availability.mjs @@ -1,4 +1,4 @@ -import{f as G,j,o as B,k as it,e as v,t as tt,w as et,g as Yt,H as ye,F as Wt,C as Ft,c as Bt,l as le,b as ue,r as yt,A as Se,u as E,h as Ae}from"./runtime-dom.esm-bundler-BrYCUcZF.chunk.mjs";import{a as de,l as Vt,g as ge}from"./index-xFugdZPW.chunk.mjs";import{t as D}from"./translation-DoG5ZELJ-gw0g4US-.chunk.mjs";import{N as Gt}from"./ContentCopy-DVkZwwZt.chunk.mjs";import{d as De,a as Pt,g as Ee,b as _e,o as be}from"./index-6_gsQFyp.chunk.mjs";import{c as ht}from"./index-BfylblLb.chunk.mjs";import{e as Lt,a as vt,U as Ue}from"./index-JpgrUA2Z-BFiKKJ1W.chunk.mjs";import{a as mt,b as Ce}from"./createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs";import{S as Ye}from"./ShareType-suoNfd7y.chunk.mjs";import{c as Ht}from"./NcNoteCard-CVhtNL04-hwuc093N.chunk.mjs";import{N as ce}from"./NcBreadcrumbs-DYfGaSjT-DHeGymVL.chunk.mjs";import{N as ve,b as Oe,P as we}from"./index-DZnagzmP.chunk.mjs";import{_ as Me,D as Ne}from"./TrashCanOutline-CvWRJ8GE.chunk.mjs";import{l as W}from"./logger-CKJsLJ9Y.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-CAvY10OW.chunk.mjs";import"./NcAvatar-DmUGApWA-DBHt6M62.chunk.mjs";import"./NcRichText-CBMtJzE_-bvZFA37H.chunk.mjs";import"./mdi-D55n0uzy.chunk.mjs";import{N as xe}from"./NcCheckboxRadioSwitch-BCSKF7Tk-yPckcGKs.chunk.mjs";import"./NcColorPicker-Kc0JqRtp-VtydDeG1.chunk.mjs";import"./TrayArrowDown-DV7s2Yis.chunk.mjs";import"./NcSelect-Czzsi3P_-DLFUGW7z.chunk.mjs";import"./NcEmojiPicker-pM4Pg2yq-C_Dpe77I.chunk.mjs";import"./index-BZk0T9Q-.chunk.mjs";/* empty css */import"./NcInputField-Bwsh2aHY-CHbAfY0u.chunk.mjs";import"./NcPasswordField-djttkA5Q-2g87vOpY.chunk.mjs";import"./NcUserBubble-DPAmU2_J-BCvWAzcB.chunk.mjs";import"./PencilOutline-DCq8EKwg.chunk.mjs";import"./colors-Go3zmZRD-DU6ImAGi.chunk.mjs";import{a as Ie,l as ke}from"./index-DY1sONrk.chunk.mjs";import"./string_decoder-BO00msnV.chunk.mjs";function Kt(a){const t=a.getFullYear(),e=(a.getMonth()+1).toString().padStart(2,"0"),s=a.getDate().toString().padStart(2,"0");return`${t}-${e}-${s}`}const Be={name:"AbsenceForm",components:{NcButton:Ht,NcTextField:Me,NcTextArea:Oe,NcDateTimePickerNative:ce,NcSelectUsers:ve},setup(){return{t:D}},data(){const{firstDay:a,lastDay:t,status:e,message:s,replacementUserId:r,replacementUserDisplayName:i}=Vt("dav","absence",{});return{loading:!1,status:e??"",message:s??"",firstDay:a?new Date(a):new Date,lastDay:t?new Date(t):null,replacementUserId:r,replacementUser:r?{user:r,displayName:i}:null,searchLoading:!1,options:[]}},computed:{valid(){const a=new Date(this.firstDay?.getTime()),t=new Date(this.lastDay?.getTime());return a?.setHours(0,0,0,0),t?.setHours(0,0,0,0),!!this.firstDay&&!!this.lastDay&&!!this.status&&!!this.message&&t>=a}},methods:{resetForm(){this.status="",this.message="",this.firstDay=new Date,this.lastDay=null},formatForMultiselect(a){return{user:a.uuid||a.value.shareWith,displayName:a.name||a.label,subtitle:a.dsc|""}},async asyncFind(a){this.searchLoading=!0,await this.debounceGetSuggestions(a.trim())},async getSuggestions(a){const t=[Ye.User];let e=null;try{e=await ht.get(mt("apps/files_sharing/api/v1/sharees"),{params:{format:"json",itemType:"file",search:a,shareType:t}})}catch(d){W.error("Error fetching suggestions",{error:d});return}const s=e.data.ocs.data,r=e.data.ocs.data.exact;s.exact=[];const i=r.users,o=s.users;W.info("AbsenceForm raw suggestions",{rawExactSuggestions:i,rawSuggestions:o});const n=i.map(d=>this.formatForMultiselect(d)),l=o.map(d=>this.formatForMultiselect(d)),u=n.concat(l),c=u.reduce((d,m)=>(m.displayName&&(d[m.displayName]||(d[m.displayName]=0),d[m.displayName]++),d),{});this.options=u.map(d=>c[d.displayName]>1&&!d.desc?{...d,desc:d.shareWithDisplayNameUnique}:d),this.searchLoading=!1,W.info("AbsenseForm suggestions",{options:this.options})},debounceGetSuggestions:De(function(...a){this.getSuggestions(...a)},300),async saveForm(){if(this.valid){this.loading=!0;try{await ht.post(mt("/apps/dav/api/v1/outOfOffice/{userId}",{userId:Pt().uid}),{firstDay:Kt(this.firstDay),lastDay:Kt(this.lastDay),status:this.status,message:this.message,replacementUserId:this.replacementUser?.user??null}),Lt(D("dav","Absence saved"))}catch(a){vt(D("dav","Failed to save your absence settings")),W.error("Could not save absence",{error:a})}finally{this.loading=!1}}},async clearAbsence(){this.loading=!0;try{await ht.delete(mt("/apps/dav/api/v1/outOfOffice/{userId}",{userId:Pt().uid})),this.resetForm(),Lt(D("dav","Absence cleared"))}catch(a){vt(D("dav","Failed to clear your absence settings")),W.error("Could not clear absence",{error:a})}finally{this.loading=!1}}}},Pe={class:"absence__dates"},Le={for:"replacement-search-input"},ze={class:"absence__buttons"};function Ve(a,t,e,s,r,i){const o=G("NcDateTimePickerNative"),n=G("NcSelectUsers"),l=G("NcTextField"),u=G("NcTextArea"),c=G("NcButton");return B(),j("form",{class:"absence",onSubmit:t[5]||(t[5]=ye((...d)=>i.saveForm&&i.saveForm(...d),["prevent"]))},[it("div",Pe,[v(o,{id:"absence-first-day",modelValue:r.firstDay,"onUpdate:modelValue":t[0]||(t[0]=d=>r.firstDay=d),label:s.t("dav","First day"),class:"absence__dates__picker",required:!0},null,8,["modelValue","label"]),v(o,{id:"absence-last-day",modelValue:r.lastDay,"onUpdate:modelValue":t[1]||(t[1]=d=>r.lastDay=d),label:s.t("dav","Last day (inclusive)"),class:"absence__dates__picker",required:!0},null,8,["modelValue","label"])]),it("label",Le,tt(s.t("dav","Out of office replacement (optional)")),1),v(n,{modelValue:r.replacementUser,"onUpdate:modelValue":t[2]||(t[2]=d=>r.replacementUser=d),"input-id":"replacement-search-input",loading:r.searchLoading,placeholder:s.t("dav","Name of the replacement"),options:r.options,onSearch:i.asyncFind},null,8,["modelValue","loading","placeholder","options","onSearch"]),v(l,{modelValue:r.status,"onUpdate:modelValue":t[3]||(t[3]=d=>r.status=d),label:s.t("dav","Short absence status"),required:!0},null,8,["modelValue","label"]),v(u,{modelValue:r.message,"onUpdate:modelValue":t[4]||(t[4]=d=>r.message=d),label:s.t("dav","Long absence Message"),required:!0},null,8,["modelValue","label"]),it("div",ze,[v(c,{disabled:r.loading||!i.valid,variant:"primary",type:"submit"},{default:et(()=>[Yt(tt(s.t("dav","Save")),1)]),_:1},8,["disabled"]),v(c,{disabled:r.loading||!i.valid,variant:"error",onClick:i.clearAbsence},{default:et(()=>[Yt(tt(s.t("dav","Disable absence")),1)]),_:1},8,["disabled","onClick"])])],32)}const He=de(Be,[["render",Ve],["__scopeId","data-v-2db4c3c8"]]);var at={},dt={},qt;function je(){return qt||(qt=1,Object.defineProperty(dt,"__esModule",{value:!0}),dt.zonesMap=dt.defaultStart=void 0,dt.defaultStart="19700101T000000",dt.zonesMap=new Map([["Africa/Abidjan",{s:{f:"+0000",n:"GMT"}}],["Africa/Accra",{s:{f:"+0000",n:"GMT"}}],["Africa/Addis_Ababa",{s:{f:"+0300",n:"EAT"}}],["Africa/Algiers",{s:{f:"+0100",n:"CET"}}],["Africa/Asmara",{s:{f:"+0300",n:"EAT"}}],["Africa/Bamako",{s:{f:"+0000",n:"GMT"}}],["Africa/Bangui",{s:{f:"+0100",n:"WAT"}}],["Africa/Banjul",{s:{f:"+0000",n:"GMT"}}],["Africa/Bissau",{s:{f:"+0000",n:"GMT"}}],["Africa/Blantyre",{s:{f:"+0200",n:"CAT"}}],["Africa/Brazzaville",{s:{f:"+0100",n:"WAT"}}],["Africa/Bujumbura",{s:{f:"+0200",n:"CAT"}}],["Africa/Cairo",{s:{f:"+0200",n:"EET"}}],["Africa/Casablanca",{s:{f:"+0100",n:"+01"}}],["Africa/Ceuta",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Africa/Conakry",{s:{f:"+0000",n:"GMT"}}],["Africa/Dakar",{s:{f:"+0000",n:"GMT"}}],["Africa/Dar_es_Salaam",{s:{f:"+0300",n:"EAT"}}],["Africa/Djibouti",{s:{f:"+0300",n:"EAT"}}],["Africa/Douala",{s:{f:"+0100",n:"WAT"}}],["Africa/El_Aaiun",{s:{f:"+0100",n:"+01"}}],["Africa/Freetown",{s:{f:"+0000",n:"GMT"}}],["Africa/Gaborone",{s:{f:"+0200",n:"CAT"}}],["Africa/Harare",{s:{f:"+0200",n:"CAT"}}],["Africa/Johannesburg",{s:{f:"+0200",n:"SAST"}}],["Africa/Juba",{s:{f:"+0300",n:"EAT"}}],["Africa/Kampala",{s:{f:"+0300",n:"EAT"}}],["Africa/Khartoum",{s:{f:"+0200",n:"CAT"}}],["Africa/Kigali",{s:{f:"+0200",n:"CAT"}}],["Africa/Kinshasa",{s:{f:"+0100",n:"WAT"}}],["Africa/Lagos",{s:{f:"+0100",n:"WAT"}}],["Africa/Libreville",{s:{f:"+0100",n:"WAT"}}],["Africa/Lome",{s:{f:"+0000",n:"GMT"}}],["Africa/Luanda",{s:{f:"+0100",n:"WAT"}}],["Africa/Lubumbashi",{s:{f:"+0200",n:"CAT"}}],["Africa/Lusaka",{s:{f:"+0200",n:"CAT"}}],["Africa/Malabo",{s:{f:"+0100",n:"WAT"}}],["Africa/Maputo",{s:{f:"+0200",n:"CAT"}}],["Africa/Maseru",{s:{f:"+0200",n:"SAST"}}],["Africa/Mbabane",{s:{f:"+0200",n:"SAST"}}],["Africa/Mogadishu",{s:{f:"+0300",n:"EAT"}}],["Africa/Monrovia",{s:{f:"+0000",n:"GMT"}}],["Africa/Nairobi",{s:{f:"+0300",n:"EAT"}}],["Africa/Ndjamena",{s:{f:"+0100",n:"WAT"}}],["Africa/Niamey",{s:{f:"+0100",n:"WAT"}}],["Africa/Nouakchott",{s:{f:"+0000",n:"GMT"}}],["Africa/Ouagadougou",{s:{f:"+0000",n:"GMT"}}],["Africa/Porto-Novo",{s:{f:"+0100",n:"WAT"}}],["Africa/Sao_Tome",{s:{f:"+0100",n:"WAT"}}],["Africa/Tripoli",{s:{f:"+0200",n:"EET"}}],["Africa/Tunis",{s:{f:"+0100",n:"CET"}}],["Africa/Windhoek",{s:{f:"+0200",n:"CAT"}}],["America/Adak",{s:{f:"-0900",t:"-1000",n:"HST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-1000",t:"-0900",n:"HDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Anchorage",{s:{f:"-0800",t:"-0900",n:"AKST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0900",t:"-0800",n:"AKDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Anguilla",{s:{f:"-0400",n:"AST"}}],["America/Antigua",{s:{f:"-0400",n:"AST"}}],["America/Araguaina",{s:{f:"-0300",n:"-03"}}],["America/Argentina/Buenos_Aires",{s:{f:"-0300",n:"-03"}}],["America/Argentina/Catamarca",{s:{f:"-0300",n:"-03"}}],["America/Argentina/Cordoba",{s:{f:"-0300",n:"-03"}}],["America/Argentina/Jujuy",{s:{f:"-0300",n:"-03"}}],["America/Argentina/La_Rioja",{s:{f:"-0300",n:"-03"}}],["America/Argentina/Mendoza",{s:{f:"-0300",n:"-03"}}],["America/Argentina/Rio_Gallegos",{s:{f:"-0300",n:"-03"}}],["America/Argentina/Salta",{s:{f:"-0300",n:"-03"}}],["America/Argentina/San_Juan",{s:{f:"-0300",n:"-03"}}],["America/Argentina/San_Luis",{s:{f:"-0300",n:"-03"}}],["America/Argentina/Tucuman",{s:{f:"-0300",n:"-03"}}],["America/Argentina/Ushuaia",{s:{f:"-0300",n:"-03"}}],["America/Aruba",{s:{f:"-0400",n:"AST"}}],["America/Asuncion",{s:{f:"-0300",t:"-0400",n:"-04",s:"19700322T000000",r:{m:3,d:"4SU"}},d:{f:"-0400",t:"-0300",n:"-03",s:"19701004T000000",r:{m:10,d:"1SU"}}}],["America/Atikokan",{s:{f:"-0500",n:"EST"}}],["America/Bahia_Banderas",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700405T020000",r:{m:4,d:"1SU"}}}],["America/Bahia",{s:{f:"-0300",n:"-03"}}],["America/Barbados",{s:{f:"-0400",n:"AST"}}],["America/Belem",{s:{f:"-0300",n:"-03"}}],["America/Belize",{s:{f:"-0600",n:"CST"}}],["America/Blanc-Sablon",{s:{f:"-0400",n:"AST"}}],["America/Boa_Vista",{s:{f:"-0400",n:"-04"}}],["America/Bogota",{s:{f:"-0500",n:"-05"}}],["America/Boise",{s:{f:"-0600",t:"-0700",n:"MST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0700",t:"-0600",n:"MDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Cambridge_Bay",{s:{f:"-0600",t:"-0700",n:"MST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0700",t:"-0600",n:"MDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Campo_Grande",{s:{f:"-0400",n:"-04",s:"19700215T000000",r:{m:2,d:"3SU"}},d:{f:"-0400",t:"-0300",n:"-03",s:"19701101T000000",r:{m:11,d:"1SU"}}}],["America/Cancun",{s:{f:"-0500",n:"EST"}}],["America/Caracas",{s:{f:"-0400",n:"-04"}}],["America/Cayenne",{s:{f:"-0300",n:"-03"}}],["America/Cayman",{s:{f:"-0500",n:"EST"}}],["America/Chicago",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Chihuahua",{s:{f:"-0600",t:"-0700",n:"MST",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"-0700",t:"-0600",n:"MDT",s:"19700405T020000",r:{m:4,d:"1SU"}}}],["America/Costa_Rica",{s:{f:"-0600",n:"CST"}}],["America/Creston",{s:{f:"-0700",n:"MST"}}],["America/Cuiaba",{s:{f:"-0400",n:"-04",s:"19700215T000000",r:{m:2,d:"3SU"}},d:{f:"-0400",t:"-0300",n:"-03",s:"19701101T000000",r:{m:11,d:"1SU"}}}],["America/Curacao",{s:{f:"-0400",n:"AST"}}],["America/Danmarkshavn",{s:{f:"+0000",n:"GMT"}}],["America/Dawson_Creek",{s:{f:"-0700",n:"MST"}}],["America/Dawson",{s:{f:"-0700",t:"-0800",n:"PST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0800",t:"-0700",n:"PDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Denver",{s:{f:"-0600",t:"-0700",n:"MST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0700",t:"-0600",n:"MDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Detroit",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Dominica",{s:{f:"-0400",n:"AST"}}],["America/Edmonton",{s:{f:"-0600",t:"-0700",n:"MST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0700",t:"-0600",n:"MDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Eirunepe",{s:{f:"-0500",n:"-05"}}],["America/El_Salvador",{s:{f:"-0600",n:"CST"}}],["America/Fort_Nelson",{s:{f:"-0700",n:"MST"}}],["America/Fortaleza",{s:{f:"-0300",n:"-03"}}],["America/Glace_Bay",{s:{f:"-0300",t:"-0400",n:"AST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0400",t:"-0300",n:"ADT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Godthab",{s:{f:"-0200",t:"-0300",n:"-03",s:"19701024T230000",r:{m:10,d:"-1SA"}},d:{f:"-0300",t:"-0200",n:"-02",s:"19700328T220000",r:{m:3,d:"-1SA"}}}],["America/Goose_Bay",{s:{f:"-0300",t:"-0400",n:"AST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0400",t:"-0300",n:"ADT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Grand_Turk",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Grenada",{s:{f:"-0400",n:"AST"}}],["America/Guadeloupe",{s:{f:"-0400",n:"AST"}}],["America/Guatemala",{s:{f:"-0600",n:"CST"}}],["America/Guayaquil",{s:{f:"-0500",n:"-05"}}],["America/Guyana",{s:{f:"-0400",n:"-04"}}],["America/Halifax",{s:{f:"-0300",t:"-0400",n:"AST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0400",t:"-0300",n:"ADT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Havana",{s:{f:"-0400",t:"-0500",n:"CST",s:"19701101T010000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"CDT",s:"19700308T000000",r:{m:3,d:"2SU"}}}],["America/Hermosillo",{s:{f:"-0700",n:"MST"}}],["America/Indiana/Indianapolis",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Indiana/Knox",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Indiana/Marengo",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Indiana/Petersburg",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Indiana/Tell_City",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Indiana/Vevay",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Indiana/Vincennes",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Indiana/Winamac",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Inuvik",{s:{f:"-0600",t:"-0700",n:"MST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0700",t:"-0600",n:"MDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Iqaluit",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Jamaica",{s:{f:"-0500",n:"EST"}}],["America/Juneau",{s:{f:"-0800",t:"-0900",n:"AKST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0900",t:"-0800",n:"AKDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Kentucky/Louisville",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Kentucky/Monticello",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Kralendijk",{s:{f:"-0400",n:"AST"}}],["America/La_Paz",{s:{f:"-0400",n:"-04"}}],["America/Lima",{s:{f:"-0500",n:"-05"}}],["America/Los_Angeles",{s:{f:"-0700",t:"-0800",n:"PST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0800",t:"-0700",n:"PDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Lower_Princes",{s:{f:"-0400",n:"AST"}}],["America/Maceio",{s:{f:"-0300",n:"-03"}}],["America/Managua",{s:{f:"-0600",n:"CST"}}],["America/Manaus",{s:{f:"-0400",n:"-04"}}],["America/Marigot",{s:{f:"-0400",n:"AST"}}],["America/Martinique",{s:{f:"-0400",n:"AST"}}],["America/Matamoros",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Mazatlan",{s:{f:"-0600",t:"-0700",n:"MST",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"-0700",t:"-0600",n:"MDT",s:"19700405T020000",r:{m:4,d:"1SU"}}}],["America/Menominee",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Merida",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700405T020000",r:{m:4,d:"1SU"}}}],["America/Metlakatla",{s:{f:"-0800",t:"-0900",n:"AKST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0900",t:"-0800",n:"AKDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Mexico_City",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700405T020000",r:{m:4,d:"1SU"}}}],["America/Miquelon",{s:{f:"-0200",t:"-0300",n:"-03",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0300",t:"-0200",n:"-02",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Moncton",{s:{f:"-0300",t:"-0400",n:"AST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0400",t:"-0300",n:"ADT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Monterrey",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700405T020000",r:{m:4,d:"1SU"}}}],["America/Montevideo",{s:{f:"-0300",n:"-03"}}],["America/Montserrat",{s:{f:"-0400",n:"AST"}}],["America/Nassau",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/New_York",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Nipigon",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Nome",{s:{f:"-0800",t:"-0900",n:"AKST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0900",t:"-0800",n:"AKDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Noronha",{s:{f:"-0200",n:"-02"}}],["America/North_Dakota/Beulah",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/North_Dakota/Center",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/North_Dakota/New_Salem",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Ojinaga",{s:{f:"-0600",t:"-0700",n:"MST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0700",t:"-0600",n:"MDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Panama",{s:{f:"-0500",n:"EST"}}],["America/Pangnirtung",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Paramaribo",{s:{f:"-0300",n:"-03"}}],["America/Phoenix",{s:{f:"-0700",n:"MST"}}],["America/Port_of_Spain",{s:{f:"-0400",n:"AST"}}],["America/Port-au-Prince",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Porto_Velho",{s:{f:"-0400",n:"-04"}}],["America/Puerto_Rico",{s:{f:"-0400",n:"AST"}}],["America/Punta_Arenas",{s:{f:"-0300",n:"-03"}}],["America/Rainy_River",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Rankin_Inlet",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Recife",{s:{f:"-0300",n:"-03"}}],["America/Regina",{s:{f:"-0600",n:"CST"}}],["America/Resolute",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Rio_Branco",{s:{f:"-0500",n:"-05"}}],["America/Santarem",{s:{f:"-0300",n:"-03"}}],["America/Santiago",{s:{f:"-0300",t:"-0400",n:"-04",s:"19700405T000000",r:{m:4,d:"1SU"}},d:{f:"-0400",t:"-0300",n:"-03",s:"19700906T000000",r:{m:9,d:"1SU"}}}],["America/Santo_Domingo",{s:{f:"-0400",n:"AST"}}],["America/Sao_Paulo",{s:{f:"-0300",n:"-03",s:"19700215T000000",r:{m:2,d:"3SU"}},d:{f:"-0300",t:"-0200",n:"-02",s:"19701101T000000",r:{m:11,d:"1SU"}}}],["America/Scoresbysund",{s:{f:"+0000",t:"-0100",n:"-01",s:"19701025T010000",r:{m:10,d:"-1SU"}},d:{f:"-0100",t:"+0000",n:"+00",s:"19700329T000000",r:{m:3,d:"-1SU"}}}],["America/Sitka",{s:{f:"-0800",t:"-0900",n:"AKST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0900",t:"-0800",n:"AKDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/St_Barthelemy",{s:{f:"-0400",n:"AST"}}],["America/St_Johns",{s:{f:"-0230",t:"-0330",n:"NST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0330",t:"-0230",n:"NDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/St_Kitts",{s:{f:"-0400",n:"AST"}}],["America/St_Lucia",{s:{f:"-0400",n:"AST"}}],["America/St_Thomas",{s:{f:"-0400",n:"AST"}}],["America/St_Vincent",{s:{f:"-0400",n:"AST"}}],["America/Swift_Current",{s:{f:"-0600",n:"CST"}}],["America/Tegucigalpa",{s:{f:"-0600",n:"CST"}}],["America/Thule",{s:{f:"-0300",t:"-0400",n:"AST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0400",t:"-0300",n:"ADT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Thunder_Bay",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Tijuana",{s:{f:"-0700",t:"-0800",n:"PST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0800",t:"-0700",n:"PDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Toronto",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Tortola",{s:{f:"-0400",n:"AST"}}],["America/Vancouver",{s:{f:"-0700",t:"-0800",n:"PST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0800",t:"-0700",n:"PDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Whitehorse",{s:{f:"-0700",t:"-0800",n:"PST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0800",t:"-0700",n:"PDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Winnipeg",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Yakutat",{s:{f:"-0800",t:"-0900",n:"AKST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0900",t:"-0800",n:"AKDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Yellowknife",{s:{f:"-0600",t:"-0700",n:"MST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0700",t:"-0600",n:"MDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["Antarctica/Casey",{s:{f:"+0800",n:"+08"}}],["Antarctica/Davis",{s:{f:"+0700",n:"+07"}}],["Antarctica/DumontDUrville",{s:{f:"+1000",n:"+10"}}],["Antarctica/Macquarie",{s:{f:"+1100",n:"+11"}}],["Antarctica/Mawson",{s:{f:"+0500",n:"+05"}}],["Antarctica/McMurdo",{s:{f:"+1300",t:"+1200",n:"NZST",s:"19700405T030000",r:{m:4,d:"1SU"}},d:{f:"+1200",t:"+1300",n:"NZDT",s:"19700927T020000",r:{m:9,d:"-1SU"}}}],["Antarctica/Palmer",{s:{f:"-0300",n:"-03"}}],["Antarctica/Rothera",{s:{f:"-0300",n:"-03"}}],["Antarctica/Syowa",{s:{f:"+0300",n:"+03"}}],["Antarctica/Troll",{s:{f:"+0200",t:"+0000",n:"+00",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0000",t:"+0200",n:"+02",s:"19700329T010000",r:{m:3,d:"-1SU"}}}],["Antarctica/Vostok",{s:{f:"+0600",n:"+06"}}],["Arctic/Longyearbyen",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Asia/Aden",{s:{f:"+0300",n:"+03"}}],["Asia/Almaty",{s:{f:"+0600",n:"+06"}}],["Asia/Amman",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701030T010000",r:{m:10,d:"-1FR"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700326T235959",r:{m:3,d:"-1TH"}}}],["Asia/Anadyr",{s:{f:"+1200",n:"+12"}}],["Asia/Aqtau",{s:{f:"+0500",n:"+05"}}],["Asia/Aqtobe",{s:{f:"+0500",n:"+05"}}],["Asia/Ashgabat",{s:{f:"+0500",n:"+05"}}],["Asia/Atyrau",{s:{f:"+0500",n:"+05"}}],["Asia/Baghdad",{s:{f:"+0300",n:"+03"}}],["Asia/Bahrain",{s:{f:"+0300",n:"+03"}}],["Asia/Baku",{s:{f:"+0400",n:"+04"}}],["Asia/Bangkok",{s:{f:"+0700",n:"+07"}}],["Asia/Barnaul",{s:{f:"+0700",n:"+07"}}],["Asia/Beirut",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T000000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T000000",r:{m:3,d:"-1SU"}}}],["Asia/Bishkek",{s:{f:"+0600",n:"+06"}}],["Asia/Brunei",{s:{f:"+0800",n:"+08"}}],["Asia/Chita",{s:{f:"+0900",n:"+09"}}],["Asia/Choibalsan",{s:{f:"+0800",n:"+08"}}],["Asia/Colombo",{s:{f:"+0530",n:"+0530"}}],["Asia/Damascus",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701030T000000",r:{m:10,d:"-1FR"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700327T000000",r:{m:3,d:"-1FR"}}}],["Asia/Dhaka",{s:{f:"+0600",n:"+06"}}],["Asia/Dili",{s:{f:"+0900",n:"+09"}}],["Asia/Dubai",{s:{f:"+0400",n:"+04"}}],["Asia/Dushanbe",{s:{f:"+0500",n:"+05"}}],["Asia/Famagusta",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Asia/Gaza",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701031T010000",r:{m:10,d:"-1SA"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700328T010000",r:{m:3,d:"4SA"}}}],["Asia/Hebron",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701031T010000",r:{m:10,d:"-1SA"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700328T010000",r:{m:3,d:"4SA"}}}],["Asia/Ho_Chi_Minh",{s:{f:"+0700",n:"+07"}}],["Asia/Hong_Kong",{s:{f:"+0800",n:"HKT"}}],["Asia/Hovd",{s:{f:"+0700",n:"+07"}}],["Asia/Irkutsk",{s:{f:"+0800",n:"+08"}}],["Asia/Istanbul",{s:{f:"+0300",n:"+03"}}],["Asia/Jakarta",{s:{f:"+0700",n:"WIB"}}],["Asia/Jayapura",{s:{f:"+0900",n:"WIT"}}],["Asia/Jerusalem",{s:{f:"+0300",t:"+0200",n:"IST",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"IDT",s:"19700327T020000",r:{m:3,d:"-1FR"}}}],["Asia/Kabul",{s:{f:"+0430",n:"+0430"}}],["Asia/Kamchatka",{s:{f:"+1200",n:"+12"}}],["Asia/Karachi",{s:{f:"+0500",n:"PKT"}}],["Asia/Kathmandu",{s:{f:"+0545",n:"+0545"}}],["Asia/Khandyga",{s:{f:"+0900",n:"+09"}}],["Asia/Kolkata",{s:{f:"+0530",n:"IST"}}],["Asia/Krasnoyarsk",{s:{f:"+0700",n:"+07"}}],["Asia/Kuala_Lumpur",{s:{f:"+0800",n:"+08"}}],["Asia/Kuching",{s:{f:"+0800",n:"+08"}}],["Asia/Kuwait",{s:{f:"+0300",n:"+03"}}],["Asia/Macau",{s:{f:"+0800",n:"CST"}}],["Asia/Magadan",{s:{f:"+1100",n:"+11"}}],["Asia/Makassar",{s:{f:"+0800",n:"WITA"}}],["Asia/Manila",{s:{f:"+0800",n:"PST"}}],["Asia/Muscat",{s:{f:"+0400",n:"+04"}}],["Asia/Nicosia",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Asia/Novokuznetsk",{s:{f:"+0700",n:"+07"}}],["Asia/Novosibirsk",{s:{f:"+0700",n:"+07"}}],["Asia/Omsk",{s:{f:"+0600",n:"+06"}}],["Asia/Oral",{s:{f:"+0500",n:"+05"}}],["Asia/Phnom_Penh",{s:{f:"+0700",n:"+07"}}],["Asia/Pontianak",{s:{f:"+0700",n:"WIB"}}],["Asia/Pyongyang",{s:{f:"+0900",n:"KST"}}],["Asia/Qatar",{s:{f:"+0300",n:"+03"}}],["Asia/Qyzylorda",{s:{f:"+0600",n:"+06"}}],["Asia/Riyadh",{s:{f:"+0300",n:"+03"}}],["Asia/Sakhalin",{s:{f:"+1100",n:"+11"}}],["Asia/Samarkand",{s:{f:"+0500",n:"+05"}}],["Asia/Seoul",{s:{f:"+0900",n:"KST"}}],["Asia/Shanghai",{s:{f:"+0800",n:"CST"}}],["Asia/Singapore",{s:{f:"+0800",n:"+08"}}],["Asia/Srednekolymsk",{s:{f:"+1100",n:"+11"}}],["Asia/Taipei",{s:{f:"+0800",n:"CST"}}],["Asia/Tashkent",{s:{f:"+0500",n:"+05"}}],["Asia/Tbilisi",{s:{f:"+0400",n:"+04"}}],["Asia/Tehran",{s:{f:"+0430",t:"+0330",n:"+0330",s:"19700921T000000",r:{m:9,d:"3SU"}},d:{f:"+0330",t:"+0430",n:"+0430",s:"19700321T000000",r:{m:3,d:"3SU"}}}],["Asia/Thimphu",{s:{f:"+0600",n:"+06"}}],["Asia/Tokyo",{s:{f:"+0900",n:"JST"}}],["Asia/Tomsk",{s:{f:"+0700",n:"+07"}}],["Asia/Ulaanbaatar",{s:{f:"+0800",n:"+08"}}],["Asia/Urumqi",{s:{f:"+0600",n:"+06"}}],["Asia/Ust-Nera",{s:{f:"+1000",n:"+10"}}],["Asia/Vientiane",{s:{f:"+0700",n:"+07"}}],["Asia/Vladivostok",{s:{f:"+1000",n:"+10"}}],["Asia/Yakutsk",{s:{f:"+0900",n:"+09"}}],["Asia/Yangon",{s:{f:"+0630",n:"+0630"}}],["Asia/Yekaterinburg",{s:{f:"+0500",n:"+05"}}],["Asia/Yerevan",{s:{f:"+0400",n:"+04"}}],["Atlantic/Azores",{s:{f:"+0000",t:"-0100",n:"-01",s:"19701025T010000",r:{m:10,d:"-1SU"}},d:{f:"-0100",t:"+0000",n:"+00",s:"19700329T000000",r:{m:3,d:"-1SU"}}}],["Atlantic/Bermuda",{s:{f:"-0300",t:"-0400",n:"AST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0400",t:"-0300",n:"ADT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["Atlantic/Canary",{s:{f:"+0100",t:"+0000",n:"WET",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"+0000",t:"+0100",n:"WEST",s:"19700329T010000",r:{m:3,d:"-1SU"}}}],["Atlantic/Cape_Verde",{s:{f:"-0100",n:"-01"}}],["Atlantic/Faroe",{s:{f:"+0100",t:"+0000",n:"WET",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"+0000",t:"+0100",n:"WEST",s:"19700329T010000",r:{m:3,d:"-1SU"}}}],["Atlantic/Madeira",{s:{f:"+0100",t:"+0000",n:"WET",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"+0000",t:"+0100",n:"WEST",s:"19700329T010000",r:{m:3,d:"-1SU"}}}],["Atlantic/Reykjavik",{s:{f:"+0000",n:"GMT"}}],["Atlantic/South_Georgia",{s:{f:"-0200",n:"-02"}}],["Atlantic/St_Helena",{s:{f:"+0000",n:"GMT"}}],["Atlantic/Stanley",{s:{f:"-0300",n:"-03"}}],["Australia/Adelaide",{s:{f:"+1030",t:"+0930",n:"ACST",s:"19700405T030000",r:{m:4,d:"1SU"}},d:{f:"+0930",t:"+1030",n:"ACDT",s:"19701004T020000",r:{m:10,d:"1SU"}}}],["Australia/Brisbane",{s:{f:"+1000",n:"AEST"}}],["Australia/Broken_Hill",{s:{f:"+1030",t:"+0930",n:"ACST",s:"19700405T030000",r:{m:4,d:"1SU"}},d:{f:"+0930",t:"+1030",n:"ACDT",s:"19701004T020000",r:{m:10,d:"1SU"}}}],["Australia/Currie",{s:{f:"+1100",t:"+1000",n:"AEST",s:"19700405T030000",r:{m:4,d:"1SU"}},d:{f:"+1000",t:"+1100",n:"AEDT",s:"19701004T020000",r:{m:10,d:"1SU"}}}],["Australia/Darwin",{s:{f:"+0930",n:"ACST"}}],["Australia/Eucla",{s:{f:"+0845",n:"+0845"}}],["Australia/Hobart",{s:{f:"+1100",t:"+1000",n:"AEST",s:"19700405T030000",r:{m:4,d:"1SU"}},d:{f:"+1000",t:"+1100",n:"AEDT",s:"19701004T020000",r:{m:10,d:"1SU"}}}],["Australia/Lindeman",{s:{f:"+1000",n:"AEST"}}],["Australia/Lord_Howe",{s:{f:"+1100",t:"+1030",n:"+1030",s:"19700405T020000",r:{m:4,d:"1SU"}},d:{f:"+1030",t:"+1100",n:"+11",s:"19701004T020000",r:{m:10,d:"1SU"}}}],["Australia/Melbourne",{s:{f:"+1100",t:"+1000",n:"AEST",s:"19700405T030000",r:{m:4,d:"1SU"}},d:{f:"+1000",t:"+1100",n:"AEDT",s:"19701004T020000",r:{m:10,d:"1SU"}}}],["Australia/Perth",{s:{f:"+0800",n:"AWST"}}],["Australia/Sydney",{s:{f:"+1100",t:"+1000",n:"AEST",s:"19700405T030000",r:{m:4,d:"1SU"}},d:{f:"+1000",t:"+1100",n:"AEDT",s:"19701004T020000",r:{m:10,d:"1SU"}}}],["Etc/GMT-0",{s:{f:"+0000",n:"GMT"}}],["Etc/GMT-1",{s:{f:"-0100",n:"-01"}}],["Etc/GMT-10",{s:{f:"-1000",n:"-10"}}],["Etc/GMT-11",{s:{f:"-1100",n:"-11"}}],["Etc/GMT-12",{s:{f:"-1200",n:"-12"}}],["Etc/GMT-2",{s:{f:"-0200",n:"-02"}}],["Etc/GMT-3",{s:{f:"-0300",n:"-03"}}],["Etc/GMT-4",{s:{f:"-0400",n:"-04"}}],["Etc/GMT-5",{s:{f:"-0500",n:"-05"}}],["Etc/GMT-6",{s:{f:"-0600",n:"-06"}}],["Etc/GMT-7",{s:{f:"-0700",n:"-07"}}],["Etc/GMT-8",{s:{f:"-0800",n:"-08"}}],["Etc/GMT-9",{s:{f:"-0900",n:"-09"}}],["Etc/GMT",{s:{f:"+0000",n:"GMT"}}],["Etc/GMT+0",{s:{f:"+0000",n:"GMT"}}],["Etc/GMT+1",{s:{f:"+0100",n:"+01"}}],["Etc/GMT+10",{s:{f:"+1000",n:"+10"}}],["Etc/GMT+11",{s:{f:"+1100",n:"+11"}}],["Etc/GMT+12",{s:{f:"+1200",n:"+12"}}],["Etc/GMT+13",{s:{f:"+1300",n:"+13"}}],["Etc/GMT+14",{s:{f:"+1400",n:"+14"}}],["Etc/GMT+2",{s:{f:"+0200",n:"+02"}}],["Etc/GMT+3",{s:{f:"+0300",n:"+03"}}],["Etc/GMT+4",{s:{f:"+0400",n:"+04"}}],["Etc/GMT+5",{s:{f:"+0500",n:"+05"}}],["Etc/GMT+6",{s:{f:"+0600",n:"+06"}}],["Etc/GMT+7",{s:{f:"+0700",n:"+07"}}],["Etc/GMT+8",{s:{f:"+0800",n:"+08"}}],["Etc/GMT+9",{s:{f:"+0900",n:"+09"}}],["Etc/GMT0",{s:{f:"+0000",n:"GMT"}}],["Etc/Greenwich",{s:{f:"+0000",n:"GMT"}}],["Etc/UCT",{s:{f:"+0000",n:"UCT"}}],["Etc/Universal",{s:{f:"+0000",n:"UTC"}}],["Etc/UTC",{s:{f:"+0000",n:"UTC"}}],["Etc/Zulu",{s:{f:"+0000",n:"UTC"}}],["Europe/Amsterdam",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Andorra",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Astrakhan",{s:{f:"+0400",n:"+04"}}],["Europe/Athens",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Belgrade",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Berlin",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Bratislava",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Brussels",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Bucharest",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Budapest",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Busingen",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Chisinau",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Copenhagen",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Dublin",{s:{f:"+0100",t:"+0000",n:"GMT",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"+0000",t:"+0100",n:"IST",s:"19700329T010000",r:{m:3,d:"-1SU"}}}],["Europe/Gibraltar",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Guernsey",{s:{f:"+0100",t:"+0000",n:"GMT",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"+0000",t:"+0100",n:"BST",s:"19700329T010000",r:{m:3,d:"-1SU"}}}],["Europe/Helsinki",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Isle_of_Man",{s:{f:"+0100",t:"+0000",n:"GMT",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"+0000",t:"+0100",n:"BST",s:"19700329T010000",r:{m:3,d:"-1SU"}}}],["Europe/Istanbul",{s:{f:"+0300",n:"+03"}}],["Europe/Jersey",{s:{f:"+0100",t:"+0000",n:"GMT",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"+0000",t:"+0100",n:"BST",s:"19700329T010000",r:{m:3,d:"-1SU"}}}],["Europe/Kaliningrad",{s:{f:"+0200",n:"EET"}}],["Europe/Kiev",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Kirov",{s:{f:"+0300",n:"+03"}}],["Europe/Lisbon",{s:{f:"+0100",t:"+0000",n:"WET",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"+0000",t:"+0100",n:"WEST",s:"19700329T010000",r:{m:3,d:"-1SU"}}}],["Europe/Ljubljana",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/London",{s:{f:"+0100",t:"+0000",n:"GMT",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"+0000",t:"+0100",n:"BST",s:"19700329T010000",r:{m:3,d:"-1SU"}}}],["Europe/Luxembourg",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Madrid",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Malta",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Mariehamn",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Minsk",{s:{f:"+0300",n:"+03"}}],["Europe/Monaco",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Moscow",{s:{f:"+0300",n:"MSK"}}],["Europe/Nicosia",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Oslo",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Paris",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Podgorica",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Prague",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Riga",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Rome",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Samara",{s:{f:"+0400",n:"+04"}}],["Europe/San_Marino",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Sarajevo",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Saratov",{s:{f:"+0400",n:"+04"}}],["Europe/Simferopol",{s:{f:"+0300",n:"MSK"}}],["Europe/Skopje",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Sofia",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Stockholm",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Tallinn",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Tirane",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Ulyanovsk",{s:{f:"+0400",n:"+04"}}],["Europe/Uzhgorod",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Vaduz",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Vatican",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Vienna",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Vilnius",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Volgograd",{s:{f:"+0400",n:"+04"}}],["Europe/Warsaw",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Zagreb",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Zaporozhye",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Zurich",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Indian/Antananarivo",{s:{f:"+0300",n:"EAT"}}],["Indian/Chagos",{s:{f:"+0600",n:"+06"}}],["Indian/Christmas",{s:{f:"+0700",n:"+07"}}],["Indian/Cocos",{s:{f:"+0630",n:"+0630"}}],["Indian/Comoro",{s:{f:"+0300",n:"EAT"}}],["Indian/Kerguelen",{s:{f:"+0500",n:"+05"}}],["Indian/Mahe",{s:{f:"+0400",n:"+04"}}],["Indian/Maldives",{s:{f:"+0500",n:"+05"}}],["Indian/Mauritius",{s:{f:"+0400",n:"+04"}}],["Indian/Mayotte",{s:{f:"+0300",n:"EAT"}}],["Indian/Reunion",{s:{f:"+0400",n:"+04"}}],["Pacific/Apia",{s:{f:"+1400",t:"+1300",n:"+13",s:"19700405T040000",r:{m:4,d:"1SU"}},d:{f:"+1300",t:"+1400",n:"+14",s:"19700927T030000",r:{m:9,d:"-1SU"}}}],["Pacific/Auckland",{s:{f:"+1300",t:"+1200",n:"NZST",s:"19700405T030000",r:{m:4,d:"1SU"}},d:{f:"+1200",t:"+1300",n:"NZDT",s:"19700927T020000",r:{m:9,d:"-1SU"}}}],["Pacific/Bougainville",{s:{f:"+1100",n:"+11"}}],["Pacific/Chatham",{s:{f:"+1345",t:"+1245",n:"+1245",s:"19700405T034500",r:{m:4,d:"1SU"}},d:{f:"+1245",t:"+1345",n:"+1345",s:"19700927T024500",r:{m:9,d:"-1SU"}}}],["Pacific/Chuuk",{s:{f:"+1000",n:"+10"}}],["Pacific/Easter",{s:{f:"-0500",t:"-0600",n:"-06",s:"19700404T220000",r:{m:4,d:"1SA"}},d:{f:"-0600",t:"-0500",n:"-05",s:"19700905T220000",r:{m:9,d:"1SA"}}}],["Pacific/Efate",{s:{f:"+1100",n:"+11"}}],["Pacific/Enderbury",{s:{f:"+1300",n:"+13"}}],["Pacific/Fakaofo",{s:{f:"+1300",n:"+13"}}],["Pacific/Fiji",{s:{f:"+1300",t:"+1200",n:"+12",s:"19700118T030000",r:{m:1,d:"-2SU"}},d:{f:"+1200",t:"+1300",n:"+13",s:"19701101T020000",r:{m:11,d:"1SU"}}}],["Pacific/Funafuti",{s:{f:"+1200",n:"+12"}}],["Pacific/Galapagos",{s:{f:"-0600",n:"-06"}}],["Pacific/Gambier",{s:{f:"-0900",n:"-09"}}],["Pacific/Guadalcanal",{s:{f:"+1100",n:"+11"}}],["Pacific/Guam",{s:{f:"+1000",n:"ChST"}}],["Pacific/Honolulu",{s:{f:"-1000",n:"HST"}}],["Pacific/Kiritimati",{s:{f:"+1400",n:"+14"}}],["Pacific/Kosrae",{s:{f:"+1100",n:"+11"}}],["Pacific/Kwajalein",{s:{f:"+1200",n:"+12"}}],["Pacific/Majuro",{s:{f:"+1200",n:"+12"}}],["Pacific/Marquesas",{s:{f:"-0930",n:"-0930"}}],["Pacific/Midway",{s:{f:"-1100",n:"SST"}}],["Pacific/Nauru",{s:{f:"+1200",n:"+12"}}],["Pacific/Niue",{s:{f:"-1100",n:"-11"}}],["Pacific/Norfolk",{s:{f:"+1100",n:"+11"}}],["Pacific/Noumea",{s:{f:"+1100",n:"+11"}}],["Pacific/Pago_Pago",{s:{f:"-1100",n:"SST"}}],["Pacific/Palau",{s:{f:"+0900",n:"+09"}}],["Pacific/Pitcairn",{s:{f:"-0800",n:"-08"}}],["Pacific/Pohnpei",{s:{f:"+1100",n:"+11"}}],["Pacific/Port_Moresby",{s:{f:"+1000",n:"+10"}}],["Pacific/Rarotonga",{s:{f:"-1000",n:"-10"}}],["Pacific/Saipan",{s:{f:"+1000",n:"ChST"}}],["Pacific/Tahiti",{s:{f:"-1000",n:"-10"}}],["Pacific/Tarawa",{s:{f:"+1200",n:"+12"}}],["Pacific/Tongatapu",{s:{f:"+1300",n:"+13"}}],["Pacific/Wake",{s:{f:"+1200",n:"+12"}}],["Pacific/Wallis",{s:{f:"+1200",n:"+12"}}]])),dt}var Zt;function Re(){if(Zt)return at;Zt=1,Object.defineProperty(at,"__esModule",{value:!0}),at.getZoneString=at.getZoneLines=void 0;const a=je();function t(r){const{n:i,f:o,t:n,r:l,s:u}=r;return[`TZNAME:${i}`,`TZOFFSETFROM:${o}`,`TZOFFSETTO:${n||o}`,`DTSTART:${u||a.defaultStart}`,...l?[`RRULE:FREQ=${l.f||"YEARLY"};BYMONTH=${l.m};BYDAY=${l.d}`]:[]]}function e(r,i=!0){const o=a.zonesMap.get(r);if(o){const{s:n,d:l}=o;return[...i?["BEGIN:VTIMEZONE"]:[],`TZID:${r}`,"BEGIN:STANDARD",...t(n),"END:STANDARD",...l?["BEGIN:DAYLIGHT",...t(l),"END:DAYLIGHT"]:[],...i?["END:VTIMEZONE"]:[]]}}at.getZoneLines=e;function s(r,i=!0){return e(r,i)?.join(`\r +import{f as G,j,o as B,k as it,e as v,t as tt,w as et,g as Yt,H as ye,F as Wt,C as Ft,c as Bt,l as le,b as ue,r as yt,A as Se,u as E,h as Ae}from"./runtime-dom.esm-bundler-DdtEg5E9.chunk.mjs";import{a as de,l as Vt,g as ge}from"./index-DCpg1aui.chunk.mjs";import{t as D}from"./string_decoder-vT-u9WbV.chunk.mjs";import{N as Gt}from"./ContentCopy-s5fS3y5J.chunk.mjs";import{d as De,a as Pt,g as Ee,b as _e,o as be}from"./index-Bndk0DrU.chunk.mjs";import{c as ht}from"./index-DVH_Kr3Q.chunk.mjs";import{e as Lt,a as vt}from"./index-JpgrUA2Z-BXxDc_if.chunk.mjs";import{a as mt,d as Ue}from"./createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs";import{S as Ce}from"./ShareType-suoNfd7y.chunk.mjs";import{b as Ht}from"./AccountOutline-BlW-6JqD.chunk.mjs";import{N as ce}from"./NcBreadcrumbs-DYfGaSjT-BPFs0jvP.chunk.mjs";import{N as Ye,b as ve,P as Oe}from"./index-FxQbLoUx.chunk.mjs";import{_ as we,D as Me}from"./TrashCanOutline-DglPBhgI.chunk.mjs";import{l as W}from"./logger-BIjspx2Q.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-BNncp1Y1.chunk.mjs";import{K as Ne}from"./NcModal-MC_HktJd-DqeuH-fk.chunk.mjs";import"./NcAvatar-DmUGApWA-xbPVEdSn.chunk.mjs";import"./NcContent-BR_nMwKN-DuxjkyFF.chunk.mjs";import"./Web-aYJacExm.chunk.mjs";import{N as xe}from"./NcCheckboxRadioSwitch-BCSKF7Tk-B1Kcz6gU.chunk.mjs";import"./NcColorPicker-Kc0JqRtp-G7GArS5K.chunk.mjs";import"./TrayArrowDown-CEVYjTiD.chunk.mjs";import"./NcSelect-Czzsi3P_-BKaYvmLF.chunk.mjs";import"./NcEmojiPicker-pM4Pg2yq-CYkSkF_Y.chunk.mjs";import"./index-QzsMEHKe.chunk.mjs";import"./NcRichText-CBMtJzE_-BrKByk17.chunk.mjs";/* empty css */import"./NcInputField-Bwsh2aHY-Cz27INBW.chunk.mjs";import"./mdi-BpC5Cj53.chunk.mjs";import"./NcPasswordField-djttkA5Q-Dz7uhHFj.chunk.mjs";import"./NcUserBubble-DPAmU2_J-D9jxXA1V.chunk.mjs";import"./PencilOutline-BSRAQiy1.chunk.mjs";import"./colors-Go3zmZRD-DNxaZwS4.chunk.mjs";import{a as Ie,l as ke}from"./index-BGtOTwEf.chunk.mjs";import"./public-uQ6dl0vH.chunk.mjs";function Kt(a){const t=a.getFullYear(),e=(a.getMonth()+1).toString().padStart(2,"0"),s=a.getDate().toString().padStart(2,"0");return`${t}-${e}-${s}`}const Be={name:"AbsenceForm",components:{NcButton:Ht,NcTextField:we,NcTextArea:ve,NcDateTimePickerNative:ce,NcSelectUsers:Ye},setup(){return{t:D}},data(){const{firstDay:a,lastDay:t,status:e,message:s,replacementUserId:r,replacementUserDisplayName:i}=Vt("dav","absence",{});return{loading:!1,status:e??"",message:s??"",firstDay:a?new Date(a):new Date,lastDay:t?new Date(t):null,replacementUserId:r,replacementUser:r?{user:r,displayName:i}:null,searchLoading:!1,options:[]}},computed:{valid(){const a=new Date(this.firstDay?.getTime()),t=new Date(this.lastDay?.getTime());return a?.setHours(0,0,0,0),t?.setHours(0,0,0,0),!!this.firstDay&&!!this.lastDay&&!!this.status&&!!this.message&&t>=a}},methods:{resetForm(){this.status="",this.message="",this.firstDay=new Date,this.lastDay=null},formatForMultiselect(a){return{user:a.uuid||a.value.shareWith,displayName:a.name||a.label,subtitle:a.dsc|""}},async asyncFind(a){this.searchLoading=!0,await this.debounceGetSuggestions(a.trim())},async getSuggestions(a){const t=[Ce.User];let e=null;try{e=await ht.get(mt("apps/files_sharing/api/v1/sharees"),{params:{format:"json",itemType:"file",search:a,shareType:t}})}catch(d){W.error("Error fetching suggestions",{error:d});return}const s=e.data.ocs.data,r=e.data.ocs.data.exact;s.exact=[];const i=r.users,o=s.users;W.info("AbsenceForm raw suggestions",{rawExactSuggestions:i,rawSuggestions:o});const n=i.map(d=>this.formatForMultiselect(d)),l=o.map(d=>this.formatForMultiselect(d)),u=n.concat(l),c=u.reduce((d,m)=>(m.displayName&&(d[m.displayName]||(d[m.displayName]=0),d[m.displayName]++),d),{});this.options=u.map(d=>c[d.displayName]>1&&!d.desc?{...d,desc:d.shareWithDisplayNameUnique}:d),this.searchLoading=!1,W.info("AbsenseForm suggestions",{options:this.options})},debounceGetSuggestions:De(function(...a){this.getSuggestions(...a)},300),async saveForm(){if(this.valid){this.loading=!0;try{await ht.post(mt("/apps/dav/api/v1/outOfOffice/{userId}",{userId:Pt().uid}),{firstDay:Kt(this.firstDay),lastDay:Kt(this.lastDay),status:this.status,message:this.message,replacementUserId:this.replacementUser?.user??null}),Lt(D("dav","Absence saved"))}catch(a){vt(D("dav","Failed to save your absence settings")),W.error("Could not save absence",{error:a})}finally{this.loading=!1}}},async clearAbsence(){this.loading=!0;try{await ht.delete(mt("/apps/dav/api/v1/outOfOffice/{userId}",{userId:Pt().uid})),this.resetForm(),Lt(D("dav","Absence cleared"))}catch(a){vt(D("dav","Failed to clear your absence settings")),W.error("Could not clear absence",{error:a})}finally{this.loading=!1}}}},Pe={class:"absence__dates"},Le={for:"replacement-search-input"},ze={class:"absence__buttons"};function Ve(a,t,e,s,r,i){const o=G("NcDateTimePickerNative"),n=G("NcSelectUsers"),l=G("NcTextField"),u=G("NcTextArea"),c=G("NcButton");return B(),j("form",{class:"absence",onSubmit:t[5]||(t[5]=ye((...d)=>i.saveForm&&i.saveForm(...d),["prevent"]))},[it("div",Pe,[v(o,{id:"absence-first-day",modelValue:r.firstDay,"onUpdate:modelValue":t[0]||(t[0]=d=>r.firstDay=d),label:s.t("dav","First day"),class:"absence__dates__picker",required:!0},null,8,["modelValue","label"]),v(o,{id:"absence-last-day",modelValue:r.lastDay,"onUpdate:modelValue":t[1]||(t[1]=d=>r.lastDay=d),label:s.t("dav","Last day (inclusive)"),class:"absence__dates__picker",required:!0},null,8,["modelValue","label"])]),it("label",Le,tt(s.t("dav","Out of office replacement (optional)")),1),v(n,{modelValue:r.replacementUser,"onUpdate:modelValue":t[2]||(t[2]=d=>r.replacementUser=d),"input-id":"replacement-search-input",loading:r.searchLoading,placeholder:s.t("dav","Name of the replacement"),options:r.options,onSearch:i.asyncFind},null,8,["modelValue","loading","placeholder","options","onSearch"]),v(l,{modelValue:r.status,"onUpdate:modelValue":t[3]||(t[3]=d=>r.status=d),label:s.t("dav","Short absence status"),required:!0},null,8,["modelValue","label"]),v(u,{modelValue:r.message,"onUpdate:modelValue":t[4]||(t[4]=d=>r.message=d),label:s.t("dav","Long absence Message"),required:!0},null,8,["modelValue","label"]),it("div",ze,[v(c,{disabled:r.loading||!i.valid,variant:"primary",type:"submit"},{default:et(()=>[Yt(tt(s.t("dav","Save")),1)]),_:1},8,["disabled"]),v(c,{disabled:r.loading||!i.valid,variant:"error",onClick:i.clearAbsence},{default:et(()=>[Yt(tt(s.t("dav","Disable absence")),1)]),_:1},8,["disabled","onClick"])])],32)}const He=de(Be,[["render",Ve],["__scopeId","data-v-2db4c3c8"]]);var at={},dt={},qt;function je(){return qt||(qt=1,Object.defineProperty(dt,"__esModule",{value:!0}),dt.zonesMap=dt.defaultStart=void 0,dt.defaultStart="19700101T000000",dt.zonesMap=new Map([["Africa/Abidjan",{s:{f:"+0000",n:"GMT"}}],["Africa/Accra",{s:{f:"+0000",n:"GMT"}}],["Africa/Addis_Ababa",{s:{f:"+0300",n:"EAT"}}],["Africa/Algiers",{s:{f:"+0100",n:"CET"}}],["Africa/Asmara",{s:{f:"+0300",n:"EAT"}}],["Africa/Bamako",{s:{f:"+0000",n:"GMT"}}],["Africa/Bangui",{s:{f:"+0100",n:"WAT"}}],["Africa/Banjul",{s:{f:"+0000",n:"GMT"}}],["Africa/Bissau",{s:{f:"+0000",n:"GMT"}}],["Africa/Blantyre",{s:{f:"+0200",n:"CAT"}}],["Africa/Brazzaville",{s:{f:"+0100",n:"WAT"}}],["Africa/Bujumbura",{s:{f:"+0200",n:"CAT"}}],["Africa/Cairo",{s:{f:"+0200",n:"EET"}}],["Africa/Casablanca",{s:{f:"+0100",n:"+01"}}],["Africa/Ceuta",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Africa/Conakry",{s:{f:"+0000",n:"GMT"}}],["Africa/Dakar",{s:{f:"+0000",n:"GMT"}}],["Africa/Dar_es_Salaam",{s:{f:"+0300",n:"EAT"}}],["Africa/Djibouti",{s:{f:"+0300",n:"EAT"}}],["Africa/Douala",{s:{f:"+0100",n:"WAT"}}],["Africa/El_Aaiun",{s:{f:"+0100",n:"+01"}}],["Africa/Freetown",{s:{f:"+0000",n:"GMT"}}],["Africa/Gaborone",{s:{f:"+0200",n:"CAT"}}],["Africa/Harare",{s:{f:"+0200",n:"CAT"}}],["Africa/Johannesburg",{s:{f:"+0200",n:"SAST"}}],["Africa/Juba",{s:{f:"+0300",n:"EAT"}}],["Africa/Kampala",{s:{f:"+0300",n:"EAT"}}],["Africa/Khartoum",{s:{f:"+0200",n:"CAT"}}],["Africa/Kigali",{s:{f:"+0200",n:"CAT"}}],["Africa/Kinshasa",{s:{f:"+0100",n:"WAT"}}],["Africa/Lagos",{s:{f:"+0100",n:"WAT"}}],["Africa/Libreville",{s:{f:"+0100",n:"WAT"}}],["Africa/Lome",{s:{f:"+0000",n:"GMT"}}],["Africa/Luanda",{s:{f:"+0100",n:"WAT"}}],["Africa/Lubumbashi",{s:{f:"+0200",n:"CAT"}}],["Africa/Lusaka",{s:{f:"+0200",n:"CAT"}}],["Africa/Malabo",{s:{f:"+0100",n:"WAT"}}],["Africa/Maputo",{s:{f:"+0200",n:"CAT"}}],["Africa/Maseru",{s:{f:"+0200",n:"SAST"}}],["Africa/Mbabane",{s:{f:"+0200",n:"SAST"}}],["Africa/Mogadishu",{s:{f:"+0300",n:"EAT"}}],["Africa/Monrovia",{s:{f:"+0000",n:"GMT"}}],["Africa/Nairobi",{s:{f:"+0300",n:"EAT"}}],["Africa/Ndjamena",{s:{f:"+0100",n:"WAT"}}],["Africa/Niamey",{s:{f:"+0100",n:"WAT"}}],["Africa/Nouakchott",{s:{f:"+0000",n:"GMT"}}],["Africa/Ouagadougou",{s:{f:"+0000",n:"GMT"}}],["Africa/Porto-Novo",{s:{f:"+0100",n:"WAT"}}],["Africa/Sao_Tome",{s:{f:"+0100",n:"WAT"}}],["Africa/Tripoli",{s:{f:"+0200",n:"EET"}}],["Africa/Tunis",{s:{f:"+0100",n:"CET"}}],["Africa/Windhoek",{s:{f:"+0200",n:"CAT"}}],["America/Adak",{s:{f:"-0900",t:"-1000",n:"HST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-1000",t:"-0900",n:"HDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Anchorage",{s:{f:"-0800",t:"-0900",n:"AKST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0900",t:"-0800",n:"AKDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Anguilla",{s:{f:"-0400",n:"AST"}}],["America/Antigua",{s:{f:"-0400",n:"AST"}}],["America/Araguaina",{s:{f:"-0300",n:"-03"}}],["America/Argentina/Buenos_Aires",{s:{f:"-0300",n:"-03"}}],["America/Argentina/Catamarca",{s:{f:"-0300",n:"-03"}}],["America/Argentina/Cordoba",{s:{f:"-0300",n:"-03"}}],["America/Argentina/Jujuy",{s:{f:"-0300",n:"-03"}}],["America/Argentina/La_Rioja",{s:{f:"-0300",n:"-03"}}],["America/Argentina/Mendoza",{s:{f:"-0300",n:"-03"}}],["America/Argentina/Rio_Gallegos",{s:{f:"-0300",n:"-03"}}],["America/Argentina/Salta",{s:{f:"-0300",n:"-03"}}],["America/Argentina/San_Juan",{s:{f:"-0300",n:"-03"}}],["America/Argentina/San_Luis",{s:{f:"-0300",n:"-03"}}],["America/Argentina/Tucuman",{s:{f:"-0300",n:"-03"}}],["America/Argentina/Ushuaia",{s:{f:"-0300",n:"-03"}}],["America/Aruba",{s:{f:"-0400",n:"AST"}}],["America/Asuncion",{s:{f:"-0300",t:"-0400",n:"-04",s:"19700322T000000",r:{m:3,d:"4SU"}},d:{f:"-0400",t:"-0300",n:"-03",s:"19701004T000000",r:{m:10,d:"1SU"}}}],["America/Atikokan",{s:{f:"-0500",n:"EST"}}],["America/Bahia_Banderas",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700405T020000",r:{m:4,d:"1SU"}}}],["America/Bahia",{s:{f:"-0300",n:"-03"}}],["America/Barbados",{s:{f:"-0400",n:"AST"}}],["America/Belem",{s:{f:"-0300",n:"-03"}}],["America/Belize",{s:{f:"-0600",n:"CST"}}],["America/Blanc-Sablon",{s:{f:"-0400",n:"AST"}}],["America/Boa_Vista",{s:{f:"-0400",n:"-04"}}],["America/Bogota",{s:{f:"-0500",n:"-05"}}],["America/Boise",{s:{f:"-0600",t:"-0700",n:"MST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0700",t:"-0600",n:"MDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Cambridge_Bay",{s:{f:"-0600",t:"-0700",n:"MST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0700",t:"-0600",n:"MDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Campo_Grande",{s:{f:"-0400",n:"-04",s:"19700215T000000",r:{m:2,d:"3SU"}},d:{f:"-0400",t:"-0300",n:"-03",s:"19701101T000000",r:{m:11,d:"1SU"}}}],["America/Cancun",{s:{f:"-0500",n:"EST"}}],["America/Caracas",{s:{f:"-0400",n:"-04"}}],["America/Cayenne",{s:{f:"-0300",n:"-03"}}],["America/Cayman",{s:{f:"-0500",n:"EST"}}],["America/Chicago",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Chihuahua",{s:{f:"-0600",t:"-0700",n:"MST",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"-0700",t:"-0600",n:"MDT",s:"19700405T020000",r:{m:4,d:"1SU"}}}],["America/Costa_Rica",{s:{f:"-0600",n:"CST"}}],["America/Creston",{s:{f:"-0700",n:"MST"}}],["America/Cuiaba",{s:{f:"-0400",n:"-04",s:"19700215T000000",r:{m:2,d:"3SU"}},d:{f:"-0400",t:"-0300",n:"-03",s:"19701101T000000",r:{m:11,d:"1SU"}}}],["America/Curacao",{s:{f:"-0400",n:"AST"}}],["America/Danmarkshavn",{s:{f:"+0000",n:"GMT"}}],["America/Dawson_Creek",{s:{f:"-0700",n:"MST"}}],["America/Dawson",{s:{f:"-0700",t:"-0800",n:"PST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0800",t:"-0700",n:"PDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Denver",{s:{f:"-0600",t:"-0700",n:"MST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0700",t:"-0600",n:"MDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Detroit",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Dominica",{s:{f:"-0400",n:"AST"}}],["America/Edmonton",{s:{f:"-0600",t:"-0700",n:"MST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0700",t:"-0600",n:"MDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Eirunepe",{s:{f:"-0500",n:"-05"}}],["America/El_Salvador",{s:{f:"-0600",n:"CST"}}],["America/Fort_Nelson",{s:{f:"-0700",n:"MST"}}],["America/Fortaleza",{s:{f:"-0300",n:"-03"}}],["America/Glace_Bay",{s:{f:"-0300",t:"-0400",n:"AST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0400",t:"-0300",n:"ADT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Godthab",{s:{f:"-0200",t:"-0300",n:"-03",s:"19701024T230000",r:{m:10,d:"-1SA"}},d:{f:"-0300",t:"-0200",n:"-02",s:"19700328T220000",r:{m:3,d:"-1SA"}}}],["America/Goose_Bay",{s:{f:"-0300",t:"-0400",n:"AST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0400",t:"-0300",n:"ADT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Grand_Turk",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Grenada",{s:{f:"-0400",n:"AST"}}],["America/Guadeloupe",{s:{f:"-0400",n:"AST"}}],["America/Guatemala",{s:{f:"-0600",n:"CST"}}],["America/Guayaquil",{s:{f:"-0500",n:"-05"}}],["America/Guyana",{s:{f:"-0400",n:"-04"}}],["America/Halifax",{s:{f:"-0300",t:"-0400",n:"AST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0400",t:"-0300",n:"ADT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Havana",{s:{f:"-0400",t:"-0500",n:"CST",s:"19701101T010000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"CDT",s:"19700308T000000",r:{m:3,d:"2SU"}}}],["America/Hermosillo",{s:{f:"-0700",n:"MST"}}],["America/Indiana/Indianapolis",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Indiana/Knox",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Indiana/Marengo",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Indiana/Petersburg",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Indiana/Tell_City",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Indiana/Vevay",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Indiana/Vincennes",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Indiana/Winamac",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Inuvik",{s:{f:"-0600",t:"-0700",n:"MST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0700",t:"-0600",n:"MDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Iqaluit",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Jamaica",{s:{f:"-0500",n:"EST"}}],["America/Juneau",{s:{f:"-0800",t:"-0900",n:"AKST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0900",t:"-0800",n:"AKDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Kentucky/Louisville",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Kentucky/Monticello",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Kralendijk",{s:{f:"-0400",n:"AST"}}],["America/La_Paz",{s:{f:"-0400",n:"-04"}}],["America/Lima",{s:{f:"-0500",n:"-05"}}],["America/Los_Angeles",{s:{f:"-0700",t:"-0800",n:"PST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0800",t:"-0700",n:"PDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Lower_Princes",{s:{f:"-0400",n:"AST"}}],["America/Maceio",{s:{f:"-0300",n:"-03"}}],["America/Managua",{s:{f:"-0600",n:"CST"}}],["America/Manaus",{s:{f:"-0400",n:"-04"}}],["America/Marigot",{s:{f:"-0400",n:"AST"}}],["America/Martinique",{s:{f:"-0400",n:"AST"}}],["America/Matamoros",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Mazatlan",{s:{f:"-0600",t:"-0700",n:"MST",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"-0700",t:"-0600",n:"MDT",s:"19700405T020000",r:{m:4,d:"1SU"}}}],["America/Menominee",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Merida",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700405T020000",r:{m:4,d:"1SU"}}}],["America/Metlakatla",{s:{f:"-0800",t:"-0900",n:"AKST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0900",t:"-0800",n:"AKDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Mexico_City",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700405T020000",r:{m:4,d:"1SU"}}}],["America/Miquelon",{s:{f:"-0200",t:"-0300",n:"-03",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0300",t:"-0200",n:"-02",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Moncton",{s:{f:"-0300",t:"-0400",n:"AST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0400",t:"-0300",n:"ADT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Monterrey",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700405T020000",r:{m:4,d:"1SU"}}}],["America/Montevideo",{s:{f:"-0300",n:"-03"}}],["America/Montserrat",{s:{f:"-0400",n:"AST"}}],["America/Nassau",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/New_York",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Nipigon",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Nome",{s:{f:"-0800",t:"-0900",n:"AKST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0900",t:"-0800",n:"AKDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Noronha",{s:{f:"-0200",n:"-02"}}],["America/North_Dakota/Beulah",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/North_Dakota/Center",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/North_Dakota/New_Salem",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Ojinaga",{s:{f:"-0600",t:"-0700",n:"MST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0700",t:"-0600",n:"MDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Panama",{s:{f:"-0500",n:"EST"}}],["America/Pangnirtung",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Paramaribo",{s:{f:"-0300",n:"-03"}}],["America/Phoenix",{s:{f:"-0700",n:"MST"}}],["America/Port_of_Spain",{s:{f:"-0400",n:"AST"}}],["America/Port-au-Prince",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Porto_Velho",{s:{f:"-0400",n:"-04"}}],["America/Puerto_Rico",{s:{f:"-0400",n:"AST"}}],["America/Punta_Arenas",{s:{f:"-0300",n:"-03"}}],["America/Rainy_River",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Rankin_Inlet",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Recife",{s:{f:"-0300",n:"-03"}}],["America/Regina",{s:{f:"-0600",n:"CST"}}],["America/Resolute",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Rio_Branco",{s:{f:"-0500",n:"-05"}}],["America/Santarem",{s:{f:"-0300",n:"-03"}}],["America/Santiago",{s:{f:"-0300",t:"-0400",n:"-04",s:"19700405T000000",r:{m:4,d:"1SU"}},d:{f:"-0400",t:"-0300",n:"-03",s:"19700906T000000",r:{m:9,d:"1SU"}}}],["America/Santo_Domingo",{s:{f:"-0400",n:"AST"}}],["America/Sao_Paulo",{s:{f:"-0300",n:"-03",s:"19700215T000000",r:{m:2,d:"3SU"}},d:{f:"-0300",t:"-0200",n:"-02",s:"19701101T000000",r:{m:11,d:"1SU"}}}],["America/Scoresbysund",{s:{f:"+0000",t:"-0100",n:"-01",s:"19701025T010000",r:{m:10,d:"-1SU"}},d:{f:"-0100",t:"+0000",n:"+00",s:"19700329T000000",r:{m:3,d:"-1SU"}}}],["America/Sitka",{s:{f:"-0800",t:"-0900",n:"AKST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0900",t:"-0800",n:"AKDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/St_Barthelemy",{s:{f:"-0400",n:"AST"}}],["America/St_Johns",{s:{f:"-0230",t:"-0330",n:"NST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0330",t:"-0230",n:"NDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/St_Kitts",{s:{f:"-0400",n:"AST"}}],["America/St_Lucia",{s:{f:"-0400",n:"AST"}}],["America/St_Thomas",{s:{f:"-0400",n:"AST"}}],["America/St_Vincent",{s:{f:"-0400",n:"AST"}}],["America/Swift_Current",{s:{f:"-0600",n:"CST"}}],["America/Tegucigalpa",{s:{f:"-0600",n:"CST"}}],["America/Thule",{s:{f:"-0300",t:"-0400",n:"AST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0400",t:"-0300",n:"ADT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Thunder_Bay",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Tijuana",{s:{f:"-0700",t:"-0800",n:"PST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0800",t:"-0700",n:"PDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Toronto",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Tortola",{s:{f:"-0400",n:"AST"}}],["America/Vancouver",{s:{f:"-0700",t:"-0800",n:"PST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0800",t:"-0700",n:"PDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Whitehorse",{s:{f:"-0700",t:"-0800",n:"PST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0800",t:"-0700",n:"PDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Winnipeg",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Yakutat",{s:{f:"-0800",t:"-0900",n:"AKST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0900",t:"-0800",n:"AKDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Yellowknife",{s:{f:"-0600",t:"-0700",n:"MST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0700",t:"-0600",n:"MDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["Antarctica/Casey",{s:{f:"+0800",n:"+08"}}],["Antarctica/Davis",{s:{f:"+0700",n:"+07"}}],["Antarctica/DumontDUrville",{s:{f:"+1000",n:"+10"}}],["Antarctica/Macquarie",{s:{f:"+1100",n:"+11"}}],["Antarctica/Mawson",{s:{f:"+0500",n:"+05"}}],["Antarctica/McMurdo",{s:{f:"+1300",t:"+1200",n:"NZST",s:"19700405T030000",r:{m:4,d:"1SU"}},d:{f:"+1200",t:"+1300",n:"NZDT",s:"19700927T020000",r:{m:9,d:"-1SU"}}}],["Antarctica/Palmer",{s:{f:"-0300",n:"-03"}}],["Antarctica/Rothera",{s:{f:"-0300",n:"-03"}}],["Antarctica/Syowa",{s:{f:"+0300",n:"+03"}}],["Antarctica/Troll",{s:{f:"+0200",t:"+0000",n:"+00",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0000",t:"+0200",n:"+02",s:"19700329T010000",r:{m:3,d:"-1SU"}}}],["Antarctica/Vostok",{s:{f:"+0600",n:"+06"}}],["Arctic/Longyearbyen",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Asia/Aden",{s:{f:"+0300",n:"+03"}}],["Asia/Almaty",{s:{f:"+0600",n:"+06"}}],["Asia/Amman",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701030T010000",r:{m:10,d:"-1FR"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700326T235959",r:{m:3,d:"-1TH"}}}],["Asia/Anadyr",{s:{f:"+1200",n:"+12"}}],["Asia/Aqtau",{s:{f:"+0500",n:"+05"}}],["Asia/Aqtobe",{s:{f:"+0500",n:"+05"}}],["Asia/Ashgabat",{s:{f:"+0500",n:"+05"}}],["Asia/Atyrau",{s:{f:"+0500",n:"+05"}}],["Asia/Baghdad",{s:{f:"+0300",n:"+03"}}],["Asia/Bahrain",{s:{f:"+0300",n:"+03"}}],["Asia/Baku",{s:{f:"+0400",n:"+04"}}],["Asia/Bangkok",{s:{f:"+0700",n:"+07"}}],["Asia/Barnaul",{s:{f:"+0700",n:"+07"}}],["Asia/Beirut",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T000000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T000000",r:{m:3,d:"-1SU"}}}],["Asia/Bishkek",{s:{f:"+0600",n:"+06"}}],["Asia/Brunei",{s:{f:"+0800",n:"+08"}}],["Asia/Chita",{s:{f:"+0900",n:"+09"}}],["Asia/Choibalsan",{s:{f:"+0800",n:"+08"}}],["Asia/Colombo",{s:{f:"+0530",n:"+0530"}}],["Asia/Damascus",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701030T000000",r:{m:10,d:"-1FR"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700327T000000",r:{m:3,d:"-1FR"}}}],["Asia/Dhaka",{s:{f:"+0600",n:"+06"}}],["Asia/Dili",{s:{f:"+0900",n:"+09"}}],["Asia/Dubai",{s:{f:"+0400",n:"+04"}}],["Asia/Dushanbe",{s:{f:"+0500",n:"+05"}}],["Asia/Famagusta",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Asia/Gaza",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701031T010000",r:{m:10,d:"-1SA"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700328T010000",r:{m:3,d:"4SA"}}}],["Asia/Hebron",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701031T010000",r:{m:10,d:"-1SA"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700328T010000",r:{m:3,d:"4SA"}}}],["Asia/Ho_Chi_Minh",{s:{f:"+0700",n:"+07"}}],["Asia/Hong_Kong",{s:{f:"+0800",n:"HKT"}}],["Asia/Hovd",{s:{f:"+0700",n:"+07"}}],["Asia/Irkutsk",{s:{f:"+0800",n:"+08"}}],["Asia/Istanbul",{s:{f:"+0300",n:"+03"}}],["Asia/Jakarta",{s:{f:"+0700",n:"WIB"}}],["Asia/Jayapura",{s:{f:"+0900",n:"WIT"}}],["Asia/Jerusalem",{s:{f:"+0300",t:"+0200",n:"IST",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"IDT",s:"19700327T020000",r:{m:3,d:"-1FR"}}}],["Asia/Kabul",{s:{f:"+0430",n:"+0430"}}],["Asia/Kamchatka",{s:{f:"+1200",n:"+12"}}],["Asia/Karachi",{s:{f:"+0500",n:"PKT"}}],["Asia/Kathmandu",{s:{f:"+0545",n:"+0545"}}],["Asia/Khandyga",{s:{f:"+0900",n:"+09"}}],["Asia/Kolkata",{s:{f:"+0530",n:"IST"}}],["Asia/Krasnoyarsk",{s:{f:"+0700",n:"+07"}}],["Asia/Kuala_Lumpur",{s:{f:"+0800",n:"+08"}}],["Asia/Kuching",{s:{f:"+0800",n:"+08"}}],["Asia/Kuwait",{s:{f:"+0300",n:"+03"}}],["Asia/Macau",{s:{f:"+0800",n:"CST"}}],["Asia/Magadan",{s:{f:"+1100",n:"+11"}}],["Asia/Makassar",{s:{f:"+0800",n:"WITA"}}],["Asia/Manila",{s:{f:"+0800",n:"PST"}}],["Asia/Muscat",{s:{f:"+0400",n:"+04"}}],["Asia/Nicosia",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Asia/Novokuznetsk",{s:{f:"+0700",n:"+07"}}],["Asia/Novosibirsk",{s:{f:"+0700",n:"+07"}}],["Asia/Omsk",{s:{f:"+0600",n:"+06"}}],["Asia/Oral",{s:{f:"+0500",n:"+05"}}],["Asia/Phnom_Penh",{s:{f:"+0700",n:"+07"}}],["Asia/Pontianak",{s:{f:"+0700",n:"WIB"}}],["Asia/Pyongyang",{s:{f:"+0900",n:"KST"}}],["Asia/Qatar",{s:{f:"+0300",n:"+03"}}],["Asia/Qyzylorda",{s:{f:"+0600",n:"+06"}}],["Asia/Riyadh",{s:{f:"+0300",n:"+03"}}],["Asia/Sakhalin",{s:{f:"+1100",n:"+11"}}],["Asia/Samarkand",{s:{f:"+0500",n:"+05"}}],["Asia/Seoul",{s:{f:"+0900",n:"KST"}}],["Asia/Shanghai",{s:{f:"+0800",n:"CST"}}],["Asia/Singapore",{s:{f:"+0800",n:"+08"}}],["Asia/Srednekolymsk",{s:{f:"+1100",n:"+11"}}],["Asia/Taipei",{s:{f:"+0800",n:"CST"}}],["Asia/Tashkent",{s:{f:"+0500",n:"+05"}}],["Asia/Tbilisi",{s:{f:"+0400",n:"+04"}}],["Asia/Tehran",{s:{f:"+0430",t:"+0330",n:"+0330",s:"19700921T000000",r:{m:9,d:"3SU"}},d:{f:"+0330",t:"+0430",n:"+0430",s:"19700321T000000",r:{m:3,d:"3SU"}}}],["Asia/Thimphu",{s:{f:"+0600",n:"+06"}}],["Asia/Tokyo",{s:{f:"+0900",n:"JST"}}],["Asia/Tomsk",{s:{f:"+0700",n:"+07"}}],["Asia/Ulaanbaatar",{s:{f:"+0800",n:"+08"}}],["Asia/Urumqi",{s:{f:"+0600",n:"+06"}}],["Asia/Ust-Nera",{s:{f:"+1000",n:"+10"}}],["Asia/Vientiane",{s:{f:"+0700",n:"+07"}}],["Asia/Vladivostok",{s:{f:"+1000",n:"+10"}}],["Asia/Yakutsk",{s:{f:"+0900",n:"+09"}}],["Asia/Yangon",{s:{f:"+0630",n:"+0630"}}],["Asia/Yekaterinburg",{s:{f:"+0500",n:"+05"}}],["Asia/Yerevan",{s:{f:"+0400",n:"+04"}}],["Atlantic/Azores",{s:{f:"+0000",t:"-0100",n:"-01",s:"19701025T010000",r:{m:10,d:"-1SU"}},d:{f:"-0100",t:"+0000",n:"+00",s:"19700329T000000",r:{m:3,d:"-1SU"}}}],["Atlantic/Bermuda",{s:{f:"-0300",t:"-0400",n:"AST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0400",t:"-0300",n:"ADT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["Atlantic/Canary",{s:{f:"+0100",t:"+0000",n:"WET",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"+0000",t:"+0100",n:"WEST",s:"19700329T010000",r:{m:3,d:"-1SU"}}}],["Atlantic/Cape_Verde",{s:{f:"-0100",n:"-01"}}],["Atlantic/Faroe",{s:{f:"+0100",t:"+0000",n:"WET",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"+0000",t:"+0100",n:"WEST",s:"19700329T010000",r:{m:3,d:"-1SU"}}}],["Atlantic/Madeira",{s:{f:"+0100",t:"+0000",n:"WET",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"+0000",t:"+0100",n:"WEST",s:"19700329T010000",r:{m:3,d:"-1SU"}}}],["Atlantic/Reykjavik",{s:{f:"+0000",n:"GMT"}}],["Atlantic/South_Georgia",{s:{f:"-0200",n:"-02"}}],["Atlantic/St_Helena",{s:{f:"+0000",n:"GMT"}}],["Atlantic/Stanley",{s:{f:"-0300",n:"-03"}}],["Australia/Adelaide",{s:{f:"+1030",t:"+0930",n:"ACST",s:"19700405T030000",r:{m:4,d:"1SU"}},d:{f:"+0930",t:"+1030",n:"ACDT",s:"19701004T020000",r:{m:10,d:"1SU"}}}],["Australia/Brisbane",{s:{f:"+1000",n:"AEST"}}],["Australia/Broken_Hill",{s:{f:"+1030",t:"+0930",n:"ACST",s:"19700405T030000",r:{m:4,d:"1SU"}},d:{f:"+0930",t:"+1030",n:"ACDT",s:"19701004T020000",r:{m:10,d:"1SU"}}}],["Australia/Currie",{s:{f:"+1100",t:"+1000",n:"AEST",s:"19700405T030000",r:{m:4,d:"1SU"}},d:{f:"+1000",t:"+1100",n:"AEDT",s:"19701004T020000",r:{m:10,d:"1SU"}}}],["Australia/Darwin",{s:{f:"+0930",n:"ACST"}}],["Australia/Eucla",{s:{f:"+0845",n:"+0845"}}],["Australia/Hobart",{s:{f:"+1100",t:"+1000",n:"AEST",s:"19700405T030000",r:{m:4,d:"1SU"}},d:{f:"+1000",t:"+1100",n:"AEDT",s:"19701004T020000",r:{m:10,d:"1SU"}}}],["Australia/Lindeman",{s:{f:"+1000",n:"AEST"}}],["Australia/Lord_Howe",{s:{f:"+1100",t:"+1030",n:"+1030",s:"19700405T020000",r:{m:4,d:"1SU"}},d:{f:"+1030",t:"+1100",n:"+11",s:"19701004T020000",r:{m:10,d:"1SU"}}}],["Australia/Melbourne",{s:{f:"+1100",t:"+1000",n:"AEST",s:"19700405T030000",r:{m:4,d:"1SU"}},d:{f:"+1000",t:"+1100",n:"AEDT",s:"19701004T020000",r:{m:10,d:"1SU"}}}],["Australia/Perth",{s:{f:"+0800",n:"AWST"}}],["Australia/Sydney",{s:{f:"+1100",t:"+1000",n:"AEST",s:"19700405T030000",r:{m:4,d:"1SU"}},d:{f:"+1000",t:"+1100",n:"AEDT",s:"19701004T020000",r:{m:10,d:"1SU"}}}],["Etc/GMT-0",{s:{f:"+0000",n:"GMT"}}],["Etc/GMT-1",{s:{f:"-0100",n:"-01"}}],["Etc/GMT-10",{s:{f:"-1000",n:"-10"}}],["Etc/GMT-11",{s:{f:"-1100",n:"-11"}}],["Etc/GMT-12",{s:{f:"-1200",n:"-12"}}],["Etc/GMT-2",{s:{f:"-0200",n:"-02"}}],["Etc/GMT-3",{s:{f:"-0300",n:"-03"}}],["Etc/GMT-4",{s:{f:"-0400",n:"-04"}}],["Etc/GMT-5",{s:{f:"-0500",n:"-05"}}],["Etc/GMT-6",{s:{f:"-0600",n:"-06"}}],["Etc/GMT-7",{s:{f:"-0700",n:"-07"}}],["Etc/GMT-8",{s:{f:"-0800",n:"-08"}}],["Etc/GMT-9",{s:{f:"-0900",n:"-09"}}],["Etc/GMT",{s:{f:"+0000",n:"GMT"}}],["Etc/GMT+0",{s:{f:"+0000",n:"GMT"}}],["Etc/GMT+1",{s:{f:"+0100",n:"+01"}}],["Etc/GMT+10",{s:{f:"+1000",n:"+10"}}],["Etc/GMT+11",{s:{f:"+1100",n:"+11"}}],["Etc/GMT+12",{s:{f:"+1200",n:"+12"}}],["Etc/GMT+13",{s:{f:"+1300",n:"+13"}}],["Etc/GMT+14",{s:{f:"+1400",n:"+14"}}],["Etc/GMT+2",{s:{f:"+0200",n:"+02"}}],["Etc/GMT+3",{s:{f:"+0300",n:"+03"}}],["Etc/GMT+4",{s:{f:"+0400",n:"+04"}}],["Etc/GMT+5",{s:{f:"+0500",n:"+05"}}],["Etc/GMT+6",{s:{f:"+0600",n:"+06"}}],["Etc/GMT+7",{s:{f:"+0700",n:"+07"}}],["Etc/GMT+8",{s:{f:"+0800",n:"+08"}}],["Etc/GMT+9",{s:{f:"+0900",n:"+09"}}],["Etc/GMT0",{s:{f:"+0000",n:"GMT"}}],["Etc/Greenwich",{s:{f:"+0000",n:"GMT"}}],["Etc/UCT",{s:{f:"+0000",n:"UCT"}}],["Etc/Universal",{s:{f:"+0000",n:"UTC"}}],["Etc/UTC",{s:{f:"+0000",n:"UTC"}}],["Etc/Zulu",{s:{f:"+0000",n:"UTC"}}],["Europe/Amsterdam",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Andorra",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Astrakhan",{s:{f:"+0400",n:"+04"}}],["Europe/Athens",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Belgrade",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Berlin",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Bratislava",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Brussels",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Bucharest",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Budapest",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Busingen",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Chisinau",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Copenhagen",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Dublin",{s:{f:"+0100",t:"+0000",n:"GMT",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"+0000",t:"+0100",n:"IST",s:"19700329T010000",r:{m:3,d:"-1SU"}}}],["Europe/Gibraltar",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Guernsey",{s:{f:"+0100",t:"+0000",n:"GMT",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"+0000",t:"+0100",n:"BST",s:"19700329T010000",r:{m:3,d:"-1SU"}}}],["Europe/Helsinki",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Isle_of_Man",{s:{f:"+0100",t:"+0000",n:"GMT",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"+0000",t:"+0100",n:"BST",s:"19700329T010000",r:{m:3,d:"-1SU"}}}],["Europe/Istanbul",{s:{f:"+0300",n:"+03"}}],["Europe/Jersey",{s:{f:"+0100",t:"+0000",n:"GMT",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"+0000",t:"+0100",n:"BST",s:"19700329T010000",r:{m:3,d:"-1SU"}}}],["Europe/Kaliningrad",{s:{f:"+0200",n:"EET"}}],["Europe/Kiev",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Kirov",{s:{f:"+0300",n:"+03"}}],["Europe/Lisbon",{s:{f:"+0100",t:"+0000",n:"WET",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"+0000",t:"+0100",n:"WEST",s:"19700329T010000",r:{m:3,d:"-1SU"}}}],["Europe/Ljubljana",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/London",{s:{f:"+0100",t:"+0000",n:"GMT",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"+0000",t:"+0100",n:"BST",s:"19700329T010000",r:{m:3,d:"-1SU"}}}],["Europe/Luxembourg",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Madrid",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Malta",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Mariehamn",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Minsk",{s:{f:"+0300",n:"+03"}}],["Europe/Monaco",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Moscow",{s:{f:"+0300",n:"MSK"}}],["Europe/Nicosia",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Oslo",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Paris",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Podgorica",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Prague",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Riga",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Rome",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Samara",{s:{f:"+0400",n:"+04"}}],["Europe/San_Marino",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Sarajevo",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Saratov",{s:{f:"+0400",n:"+04"}}],["Europe/Simferopol",{s:{f:"+0300",n:"MSK"}}],["Europe/Skopje",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Sofia",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Stockholm",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Tallinn",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Tirane",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Ulyanovsk",{s:{f:"+0400",n:"+04"}}],["Europe/Uzhgorod",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Vaduz",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Vatican",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Vienna",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Vilnius",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Volgograd",{s:{f:"+0400",n:"+04"}}],["Europe/Warsaw",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Zagreb",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Zaporozhye",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Zurich",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Indian/Antananarivo",{s:{f:"+0300",n:"EAT"}}],["Indian/Chagos",{s:{f:"+0600",n:"+06"}}],["Indian/Christmas",{s:{f:"+0700",n:"+07"}}],["Indian/Cocos",{s:{f:"+0630",n:"+0630"}}],["Indian/Comoro",{s:{f:"+0300",n:"EAT"}}],["Indian/Kerguelen",{s:{f:"+0500",n:"+05"}}],["Indian/Mahe",{s:{f:"+0400",n:"+04"}}],["Indian/Maldives",{s:{f:"+0500",n:"+05"}}],["Indian/Mauritius",{s:{f:"+0400",n:"+04"}}],["Indian/Mayotte",{s:{f:"+0300",n:"EAT"}}],["Indian/Reunion",{s:{f:"+0400",n:"+04"}}],["Pacific/Apia",{s:{f:"+1400",t:"+1300",n:"+13",s:"19700405T040000",r:{m:4,d:"1SU"}},d:{f:"+1300",t:"+1400",n:"+14",s:"19700927T030000",r:{m:9,d:"-1SU"}}}],["Pacific/Auckland",{s:{f:"+1300",t:"+1200",n:"NZST",s:"19700405T030000",r:{m:4,d:"1SU"}},d:{f:"+1200",t:"+1300",n:"NZDT",s:"19700927T020000",r:{m:9,d:"-1SU"}}}],["Pacific/Bougainville",{s:{f:"+1100",n:"+11"}}],["Pacific/Chatham",{s:{f:"+1345",t:"+1245",n:"+1245",s:"19700405T034500",r:{m:4,d:"1SU"}},d:{f:"+1245",t:"+1345",n:"+1345",s:"19700927T024500",r:{m:9,d:"-1SU"}}}],["Pacific/Chuuk",{s:{f:"+1000",n:"+10"}}],["Pacific/Easter",{s:{f:"-0500",t:"-0600",n:"-06",s:"19700404T220000",r:{m:4,d:"1SA"}},d:{f:"-0600",t:"-0500",n:"-05",s:"19700905T220000",r:{m:9,d:"1SA"}}}],["Pacific/Efate",{s:{f:"+1100",n:"+11"}}],["Pacific/Enderbury",{s:{f:"+1300",n:"+13"}}],["Pacific/Fakaofo",{s:{f:"+1300",n:"+13"}}],["Pacific/Fiji",{s:{f:"+1300",t:"+1200",n:"+12",s:"19700118T030000",r:{m:1,d:"-2SU"}},d:{f:"+1200",t:"+1300",n:"+13",s:"19701101T020000",r:{m:11,d:"1SU"}}}],["Pacific/Funafuti",{s:{f:"+1200",n:"+12"}}],["Pacific/Galapagos",{s:{f:"-0600",n:"-06"}}],["Pacific/Gambier",{s:{f:"-0900",n:"-09"}}],["Pacific/Guadalcanal",{s:{f:"+1100",n:"+11"}}],["Pacific/Guam",{s:{f:"+1000",n:"ChST"}}],["Pacific/Honolulu",{s:{f:"-1000",n:"HST"}}],["Pacific/Kiritimati",{s:{f:"+1400",n:"+14"}}],["Pacific/Kosrae",{s:{f:"+1100",n:"+11"}}],["Pacific/Kwajalein",{s:{f:"+1200",n:"+12"}}],["Pacific/Majuro",{s:{f:"+1200",n:"+12"}}],["Pacific/Marquesas",{s:{f:"-0930",n:"-0930"}}],["Pacific/Midway",{s:{f:"-1100",n:"SST"}}],["Pacific/Nauru",{s:{f:"+1200",n:"+12"}}],["Pacific/Niue",{s:{f:"-1100",n:"-11"}}],["Pacific/Norfolk",{s:{f:"+1100",n:"+11"}}],["Pacific/Noumea",{s:{f:"+1100",n:"+11"}}],["Pacific/Pago_Pago",{s:{f:"-1100",n:"SST"}}],["Pacific/Palau",{s:{f:"+0900",n:"+09"}}],["Pacific/Pitcairn",{s:{f:"-0800",n:"-08"}}],["Pacific/Pohnpei",{s:{f:"+1100",n:"+11"}}],["Pacific/Port_Moresby",{s:{f:"+1000",n:"+10"}}],["Pacific/Rarotonga",{s:{f:"-1000",n:"-10"}}],["Pacific/Saipan",{s:{f:"+1000",n:"ChST"}}],["Pacific/Tahiti",{s:{f:"-1000",n:"-10"}}],["Pacific/Tarawa",{s:{f:"+1200",n:"+12"}}],["Pacific/Tongatapu",{s:{f:"+1300",n:"+13"}}],["Pacific/Wake",{s:{f:"+1200",n:"+12"}}],["Pacific/Wallis",{s:{f:"+1200",n:"+12"}}]])),dt}var Zt;function Re(){if(Zt)return at;Zt=1,Object.defineProperty(at,"__esModule",{value:!0}),at.getZoneString=at.getZoneLines=void 0;const a=je();function t(r){const{n:i,f:o,t:n,r:l,s:u}=r;return[`TZNAME:${i}`,`TZOFFSETFROM:${o}`,`TZOFFSETTO:${n||o}`,`DTSTART:${u||a.defaultStart}`,...l?[`RRULE:FREQ=${l.f||"YEARLY"};BYMONTH=${l.m};BYDAY=${l.d}`]:[]]}function e(r,i=!0){const o=a.zonesMap.get(r);if(o){const{s:n,d:l}=o;return[...i?["BEGIN:VTIMEZONE"]:[],`TZID:${r}`,"BEGIN:STANDARD",...t(n),"END:STANDARD",...l?["BEGIN:DAYLIGHT",...t(l),"END:DAYLIGHT"]:[],...i?["END:VTIMEZONE"]:[]]}}at.getZoneLines=e;function s(r,i=!0){return e(r,i)?.join(`\r `)}return at.getZoneString=s,at}var We=Re();class Mt{static fromString(t){return new Mt(t)}constructor(t){this.value=t}icaltype="binary";decodeValue(){return this._b64_decode(this.value)}setEncodedValue(t){this.value=this._b64_encode(t)}_b64_encode(t){let e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",s,r,i,o,n,l,u,c,d=0,m=0,p="",y=[];if(!t)return t;do s=t.charCodeAt(d++),r=t.charCodeAt(d++),i=t.charCodeAt(d++),c=s<<16|r<<8|i,o=c>>18&63,n=c>>12&63,l=c>>6&63,u=c&63,y[m++]=e.charAt(o)+e.charAt(n)+e.charAt(l)+e.charAt(u);while(d>16&255,r=c>>8&255,i=c&255,l==64?y[m++]=String.fromCharCode(s):u==64?y[m++]=String.fromCharCode(s,r):y[m++]=String.fromCharCode(s,r,i);while(ds)-(e0?-1:0}toString(){return this.start+"/"+(this.end||this.duration)}toJSON(){return[this.start.toString(),(this.end||this.duration).toString()]}toICALString(){return this.start.toICALString()+"/"+(this.end||this.duration).toICALString()}}class h{static _dowCache={};static _wnCache={};static daysInMonth(t,e){let s=[0,31,28,31,30,31,30,31,31,30,31,30,31],r=30;return t<1||t>12||(r=s[t],t==2&&(r+=h.isLeapYear(e))),r}static isLeapYear(t){return t<=1752?t%4==0:t%4==0&&t%100!=0||t%400==0}static fromDayOfYear(t,e){let s=e,r=t,i=new h;i.auto_normalize=!1;let o=h.isLeapYear(s)?1:0;if(r<1)return s--,o=h.isLeapYear(s)?1:0,r+=h.daysInYearPassedMonth[o][12],h.fromDayOfYear(r,s);if(r>h.daysInYearPassedMonth[o][12])return o=h.isLeapYear(s)?1:0,r-=h.daysInYearPassedMonth[o][12],s++,h.fromDayOfYear(r,s);i.year=s,i.isDate=!0;for(let n=11;n>=0;n--)if(r>h.daysInYearPassedMonth[o][n]){i.month=n+1,i.day=r-h.daysInYearPassedMonth[o][n];break}return i.auto_normalize=!0,i}static fromStringv2(t){return new h({year:parseInt(t.slice(0,4),10),month:parseInt(t.slice(5,7),10),day:parseInt(t.slice(8,10),10),isDate:!0})}static fromDateString(t){return new h({year:O(t.slice(0,4)),month:O(t.slice(5,7)),day:O(t.slice(8,10)),isDate:!0})}static fromDateTimeString(t,e){if(t.length<19)throw new Error('invalid date-time value: "'+t+'"');let s,r;t.slice(-1)==="Z"?s=T.utcTimezone:e&&(r=e.getParameter("tzid"),e.parent&&(e.parent.name==="standard"||e.parent.name==="daylight"?s=T.localTimezone:r&&(s=e.parent.getTimeZoneByID(r))));const i={year:O(t.slice(0,4)),month:O(t.slice(5,7)),day:O(t.slice(8,10)),hour:O(t.slice(11,13)),minute:O(t.slice(14,16)),second:O(t.slice(17,19))};return r&&!s&&(i.timezone=r),new h(i,s)}static fromString(t,e){return t.length>10?h.fromDateTimeString(t,e):h.fromDateString(t)}static fromJSDate(t,e){return new h().fromJSDate(t,e)}static fromData=function(t,e){return new h().fromData(t,e)};static now(){return h.fromJSDate(new Date,!1)}static weekOneStarts(t,e){let s=h.fromData({year:t,month:1,day:1,isDate:!0}),r=s.dayOfWeek(),i=e||h.DEFAULT_WEEK_START;return r>h.THURSDAY&&(s.day+=7),i>h.THURSDAY&&(s.day-=7),s.day-=r-i,s}static getDominicalLetter(t){let e="GFEDCBA",s=(t+(t/4|0)+(t/400|0)-(t/100|0)-1)%7;return h.isLeapYear(t)?e[(s+6)%7]+e[s]:e[s]}static#t=null;static get epochTime(){return this.#t||(this.#t=h.fromData({year:1970,month:1,day:1,hour:0,minute:0,second:0,isDate:!1,timezone:"Z"})),this.#t}static _cmp_attr(t,e,s){return t[s]>e[s]?1:t[s]=0){n.day=1,i!=0&&i--,o=n.day;let l=n.dayOfWeek(),u=t-l;u<0&&(u+=7),o+=u,o-=t,r=t}else{n.day=s;let l=n.dayOfWeek();i++,r=l-t,r<0&&(r+=7),r=s-r}return r+=i*7,o+r}isNthWeekDay(t,e){let s=this.dayOfWeek();return e===0&&s===t||this.nthWeekDay(t,e)===this.day}weekNumber(t){let e=(this.year<<12)+(this.month<<8)+(this.day<<3)+t;if(e in h._wnCache)return h._wnCache[e];let s,r=this.clone();r.isDate=!0;let i=this.year;r.month==12&&r.day>25?(s=h.weekOneStarts(i+1,t),r.compare(s)<0?s=h.weekOneStarts(i,t):i++):(s=h.weekOneStarts(i,t),r.compare(s)<0&&(s=h.weekOneStarts(--i,t)));let o=r.subtractDate(s).toSeconds()/86400,n=C(o/7)+1;return h._wnCache[e]=n,n}addDuration(t){let e=t.isNegative?-1:1,s=this.second,r=this.minute,i=this.hour,o=this.day;s+=e*t.seconds,r+=e*t.minutes,i+=e*t.hours,o+=e*t.days,o+=e*7*t.weeks,this.second=s,this.minute=r,this.hour=i,this.day=o,this._cachedUnixTime=null}subtractDate(t){let e=this.toUnixTime()+this.utcOffset(),s=t.toUnixTime()+t.utcOffset();return M.fromSeconds(e-s)}subtractDateTz(t){let e=this.toUnixTime(),s=t.toUnixTime();return M.fromSeconds(e-s)}compare(t){if(t instanceof K)return-1*t.compare(this);{let e=this.toUnixTime(),s=t.toUnixTime();return e>s?1:s>e?-1:0}}compareDateOnlyTz(t,e){let s=this.convertToZone(e),r=t.convertToZone(e),i=0;return(i=h._cmp_attr(s,r,"year"))!=0||(i=h._cmp_attr(s,r,"month"))!=0||(i=h._cmp_attr(s,r,"day"))!=0,i}convertToZone(t){let e=this.clone(),s=this.zone.tzid==t.tzid;return!this.isDate&&!s&&T.convert_time(e,this.zone,t),e.zone=t,e}utcOffset(){return this.zone==T.localTimezone||this.zone==T.utcTimezone?0:this.zone.utcOffset(this)}toICALString(){let t=this.toString();return t.length>10?b.icalendar.value["date-time"].toICAL(t):b.icalendar.value.date.toICAL(t)}toString(){let t=this.year+"-"+k(this.month)+"-"+k(this.day);return this.isDate||(t+="T"+k(this.hour)+":"+k(this.minute)+":"+k(this.second),this.zone===T.utcTimezone&&(t+="Z")),t}toJSDate(){return this.zone==T.localTimezone?this.isDate?new Date(this.year,this.month-1,this.day):new Date(this.year,this.month-1,this.day,this.hour,this.minute,this.second,0):new Date(this.toUnixTime()*1e3)}_normalize(){return this._time.isDate&&(this._time.hour=0,this._time.minute=0,this._time.second=0),this.adjust(0,0,0,0),this}adjust(t,e,s,r,i){let o,n,l=0,u=0,c,d,m,p,y,f=i||this._time;if(f.isDate||(c=f.second+r,f.second=c%60,o=C(c/60),f.second<0&&(f.second+=60,o--),d=f.minute+s+o,f.minute=d%60,n=C(d/60),f.minute<0&&(f.minute+=60,n--),m=f.hour+e+n,f.hour=m%24,l=C(m/24),f.hour<0&&(f.hour+=24,l--)),f.month>12?u=C((f.month-1)/12):f.month<1&&(u=C(f.month/12)-1),f.year+=u,f.month-=12*u,p=f.day+t+l,p>0)for(;y=h.daysInMonth(f.month,f.year),!(p<=y);)f.month++,f.month>12&&(f.year++,f.month=1),p-=y;else for(;p<=0;)f.month==1?(f.year--,f.month=12):f.month--,p+=h.daysInMonth(f.month,f.year);return f.day=p,this._cachedUnixTime=null,this}fromUnixTime(t){this.zone=T.utcTimezone;let e=new Date(t*1e3);this.year=e.getUTCFullYear(),this.month=e.getUTCMonth()+1,this.day=e.getUTCDate(),this._time.isDate?(this.hour=0,this.minute=0,this.second=0):(this.hour=e.getUTCHours(),this.minute=e.getUTCMinutes(),this.second=e.getUTCSeconds()),this._cachedUnixTime=null}toUnixTime(){if(this._cachedUnixTime!==null)return this._cachedUnixTime;let t=this.utcOffset(),e=Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second-t);return this._cachedUnixTime=e/1e3,this._cachedUnixTime}toJSON(){let t=["year","month","day","hour","minute","second","isDate"],e=Object.create(null),s=0,r=t.length,i;for(;s1)throw new rt("invalid ical body. component began but did not end");return t=null,e.length==1?e[0]:e}g.property=function(a,t){let e={component:[[],[]],designSet:t||b.defaultSet};return g._handleContentLine(a,e),e.component[1][0]},g.component=function(a){return g(a)};class rt extends Error{name=this.constructor.name}g.ParserError=rt,g._handleContentLine=function(a,t){let e=a.indexOf(St),s=a.indexOf(Nt),r,i,o,n,l={};s!==-1&&e!==-1&&s>e&&(s=-1);let u;if(s!==-1){if(o=a.slice(0,Math.max(0,s)).toLowerCase(),u=g._parseParameters(a.slice(Math.max(0,s)),0,t.designSet),u[2]==-1)throw new rt("Invalid parameters in '"+a+"'");l=u[0];let U;if(typeof u[1]=="string"?U=u[1].length:U=u[1].reduce((ct,st)=>ct+st.length,0),r=U+u[2]+s,(i=a.slice(Math.max(0,r)).indexOf(St))!==-1)n=a.slice(Math.max(0,r+i+1));else throw new rt("Missing parameter value in '"+a+"'")}else if(e!==-1){if(o=a.slice(0,Math.max(0,e)).toLowerCase(),n=a.slice(Math.max(0,e+1)),o==="begin"){let U=[n.toLowerCase(),[],[]];t.stack.length===1?t.component.push(U):t.component[2].push(U),t.stack.push(t.component),t.component=U,t.designSet||(t.designSet=b.getDesignSet(t.component[0]));return}else if(o==="end"){t.component=t.stack.pop();return}}else throw new rt('invalid line (no token ";" or ":") "'+a+'"');let c,d=!1,m=!1,p,y,f;t.designSet.propertyGroups&&o.indexOf(".")!==-1?(y=o.split("."),l.group=y[0],f=y[1]):f=o,f in t.designSet.property&&(p=t.designSet.property[f],"multiValue"in p&&(d=p.multiValue),"structuredValue"in p&&(m=p.structuredValue),n&&"detectType"in p&&(c=p.detectType(n))),c||("value"in l?c=l.value.toLowerCase():p?c=p.defaultType:c=Je),delete l.value;let A;d&&m?(n=g._parseMultiValue(n,m,c,[],d,t.designSet,m),A=[f,l,c,n]):d?(A=[f,l,c],g._parseMultiValue(n,d,c,A,null,t.designSet,!1)):m?(n=g._parseMultiValue(n,m,c,[],null,t.designSet,m),A=[f,l,c,n]):(n=g._parseValue(n,c,t.designSet,!1),A=[f,l,c,n]),t.component[0]==="vcard"&&t.component[1].length===0&&!(o==="version"&&n==="4.0")&&(t.designSet=b.getDesignSet("vcard3")),t.component[1].push(A)},g._parseValue=function(a,t,e,s){return t in e.value&&"fromICAL"in e.value[t]?e.value[t].fromICAL(a,s):a},g._parseParameters=function(a,t,e){let s=t,r=0,i=Ze,o={},n,l,u,c=-1,d,m,p;for(;r!==!1&&(r=a.indexOf(i,r+1))!==-1;){if(n=a.slice(s+1,r),n.length==0)throw new rt("Empty parameter name in '"+a+"'");if(l=n.toLowerCase(),p=!1,m=!1,l in e.param&&e.param[l].valueType?d=e.param[l].valueType:d=$e,l in e.param&&(m=e.param[l].multiValue,e.param[l].multiValueSeparateDQuote&&(p=g._rfc6868Escape('"'+m+'"'))),a[r+1]==='"'){if(c=r+2,r=a.indexOf('"',c),m&&r!=-1){let A=!0;for(;A;)a[r+1]==m&&a[r+2]=='"'?r=a.indexOf('"',r+3):A=!1}if(r===-1)throw new rt('invalid line (no matching double quote) "'+a+'"');u=a.slice(c,r),s=a.indexOf(Nt,r);let f=a.indexOf(St,r);(s===-1||f!==-1&&s>f)&&(r=!1)}else{c=r+1;let f=a.indexOf(Nt,c),A=a.indexOf(St,c);A!==-1&&f>A?(f=A,r=!1):f===-1?(A===-1?f=a.length:f=A,r=!1):(s=f,r=f),u=a.slice(c,f)}const y=u.length;if(u=g._rfc6868Escape(u),c+=y-u.length,m){let f=p||m;u=g._parseMultiValue(u,f,d,[],null,e)}else u=g._parseValue(u,d,e);m&&l in o?Array.isArray(o[l])?o[l].push(u):o[l]=[o[l],u]:o[l]=u}return[o,u,c]},g._rfc6868Escape=function(a){return a.replace(/\^['n^]/g,function(t){return Xe[t]})},g._parseMultiValue=function(a,t,e,s,r,i,o){let n=0,l=0,u;if(t.length===0)return a;for(;(n=he(a,t,l))!==-1;)u=a.slice(l,n),r?u=g._parseMultiValue(u,r,e,[],null,i,o):u=g._parseValue(u,e,i,o),s.push(u),l=n+t.length;return u=a.slice(l),r?u=g._parseMultiValue(u,r,e,[],null,i,o):u=g._parseValue(u,e,i,o),s.push(u),s.length==1?s[0]:s},g._eachLine=function(a,t){let e=a.length,s=a.search(qe),r=s,i,o,n;do r=a.indexOf(` `,s)+1,r>1&&a[r-2]==="\r"?n=2:n=1,r===0&&(r=e,n=0),o=a[s],o===" "||o===" "?i+=a.slice(s+1,r-n):(i&&t(null,i),i=a.slice(s,r-n)),s=r;while(r!==e);i=i.trim(),i.length&&t(null,i)};const Qe=["tzid","location","tznames","latitude","longitude"];class T{static _compare_change_fn(t,e){return t.yeare.year?1:t.monthe.month?1:t.daye.day?1:t.houre.hour?1:t.minutee.minute?1:t.seconde.second?1:0}static convert_time(t,e,s){if(t.isDate||e.tzid==s.tzid||e==T.localTimezone||s==T.localTimezone)return t.zone=s,t;let r=e.utcOffset(t);return t.adjust(0,0,0,-r),r=s.utcOffset(t),t.adjust(0,0,0,r),null}static fromData(t){return new T().fromData(t)}static#t=null;static get utcTimezone(){return this.#t||(this.#t=T.fromData({tzid:"UTC"})),this.#t}static#e=null;static get localTimezone(){return this.#e||(this.#e=T.fromData({tzid:"floating"})),this.#e}static adjust_change(t,e,s,r,i){return h.prototype.adjust.call(t,e,s,r,i,t)}static _minimumExpansionYear=-1;static EXTRA_COVERAGE=5;constructor(t){this.wrappedJSObject=this,this.fromData(t)}tzid="";location="";tznames="";latitude=0;longitude=0;component=null;expandedUntilYear=0;icalclass="icaltimezone";fromData(t){if(this.expandedUntilYear=0,this.changes=[],t instanceof z)this.component=t;else{if(t&&"component"in t)if(typeof t.component=="string"){let e=g(t.component);this.component=new z(e)}else t.component instanceof z?this.component=t.component:this.component=null;for(let e of Qe)t&&e in t&&(this[e]=t[e])}return this.component instanceof z&&!this.tzid&&(this.tzid=this.component.getFirstPropertyValue("tzid")),this}utcOffset(t){if(this==T.utcTimezone||this==T.localTimezone||(this._ensureCoverage(t.year),!this.changes.length))return 0;let e={year:t.year,month:t.month,day:t.day,hour:t.hour,minute:t.minute,second:t.second},s=this._findNearbyChange(e),r=-1,i=1;for(;;){let n=lt(this.changes[s],!0);if(n.utcOffset=0?r=s:i=-1,i==-1&&r!=-1)break;if(s+=i,s<0)return 0;if(s>=this.changes.length)break}let o=this.changes[r];if(o.utcOffset-o.prevUtcOffset<0&&r>0){let n=lt(o,!0);if(T.adjust_change(n,0,0,0,n.prevUtcOffset),T._compare_change_fn(e,n)<0){let l=this.changes[r-1],u=!1;o.is_daylight!=u&&l.is_daylight==u&&(o=l)}}return o.utcOffset}_findNearbyChange(t){let e=nt(this.changes,t,T._compare_change_fn);return e>=this.changes.length?this.changes.length-1:e}_ensureCoverage(t){if(T._minimumExpansionYear==-1){let s=h.now();T._minimumExpansionYear=s.year}let e=t;if(ee||!d));)i.year=d.year,i.month=d.month,i.day=d.day,i.hour=d.hour,i.minute=d.minute,i.second=d.second,i.isDate=d.isDate,T.adjust_change(i,0,0,0,-i.prevUtcOffset),s.push(i)}}return s}toString(){return this.tznames?this.tznames:this.tzid}}let N=null;const Ot={get count(){return N===null?0:Object.keys(N).length},reset:function(){N=Object.create(null);let a=T.utcTimezone;N.Z=a,N.UTC=a,N.GMT=a},_hard_reset:function(){N=null},has:function(a){return N===null?!1:!!N[a]},get:function(a){return N===null&&this.reset(),N[a]},register:function(a,t){if(N===null&&this.reset(),typeof a=="string"&&t instanceof T&&([a,t]=[t,a]),t||(a instanceof T?t=a.tzid:a.name==="vtimezone"&&(a=new T(a),t=a.tzid)),!t)throw new TypeError("Neither a timezone nor a name was passed");if(a instanceof T)N[t]=a;else throw new TypeError("timezone must be ICAL.Timezone or ICAL.Component")},remove:function(a){return N===null?null:delete N[a]}};function t0(a){let t,e,s,r,i;if(!a||a.name!=="vcalendar")return a;for(t=a.getAllSubcomponents(),e=[],s={},i=0;i"u"))return a instanceof t?a:new t(a)}function he(a,t,e){for(;(e=a.indexOf(t,e))!==-1;)if(e>0&&a[e-1]==="\\")e+=1;else return e;return-1}function nt(a,t,e){if(!a.length)return 0;let s=0,r=a.length-1,i,o;for(;s<=r;)if(i=s+Math.floor((r-s)/2),o=e(t,a[i]),o<0)r=i-1;else if(o>0)s=i+1;else break;return o<0?i:o>0?i+1:i}function lt(a,t){if(!a||typeof a!="object")return a;if(a instanceof Date)return new Date(a.getTime());if("clone"in a)return a.clone();if(Array.isArray(a)){let e=[];for(let s=0;s65535?2:1:(t+=L.newLineChar+" "+e.slice(0,Math.max(0,s)),e=e.slice(Math.max(0,s)),s=r=0)}return t.slice(L.newLineChar.length+1)}function k(a){switch(typeof a!="string"&&(typeof a=="number"&&(a=parseInt(a)),a=String(a)),a.length){case 0:return"00";case 1:return"0"+a;default:return a}}function C(a){return a<0?Math.ceil(a):Math.floor(a)}function ut(a,t){for(let e in a){let s=Object.getOwnPropertyDescriptor(a,e);s&&!Object.getOwnPropertyDescriptor(t,e)&&Object.defineProperty(t,e,s)}return t}var e0=Object.freeze({__proto__:null,binsearchInsert:nt,clone:lt,extend:ut,foldline:me,formatClassType:q,isStrictlyNaN:ft,pad2:k,strictParseInt:O,trunc:C,unescapedIndexOf:he,updateTimezones:t0});class V{static fromString(t){let e={};return e.factor=t[0]==="+"?1:-1,e.hours=O(t.slice(1,3)),e.minutes=O(t.slice(4,6)),new V(e)}static fromSeconds(t){let e=new V;return e.fromSeconds(t),e}constructor(t){this.fromData(t)}hours=0;minutes=0;factor=1;icaltype="utc-offset";clone(){return V.fromSeconds(this.toSeconds())}fromData(t){if(t)for(let[e,s]of Object.entries(t))this[e]=s;this._normalize()}fromSeconds(t){let e=Math.abs(t);return this.factor=t<0?-1:1,this.hours=C(e/3600),e-=this.hours*3600,this.minutes=C(e/60),this}toSeconds(){return this.factor*(60*this.minutes+3600*this.hours)}compare(t){let e=this.toSeconds(),s=t.toSeconds();return(e>s)-(s>e)}_normalize(){let t=this.toSeconds(),e=this.factor;for(;t<-43200;)t+=97200;for(;t>50400;)t-=97200;this.fromSeconds(t),t==0&&(this.factor=e)}toICALString(){return b.icalendar.value["utc-offset"].toICAL(this.toString())}toString(){return(this.factor==1?"+":"-")+k(this.hours)+":"+k(this.minutes)}}class Q extends h{static fromDateAndOrTimeString(t,e){function s(f,A,U){return f?O(f.slice(A,A+U)):null}let r=t.split("T"),i=r[0],o=r[1],n=o?b.vcard.value.time._splitZone(o):[],l=n[0],u=n[1],c=i?i.length:0,d=u?u.length:0,m=i&&i[0]=="-"&&i[1]=="-",p=u&&u[0]=="-",y={year:m?null:s(i,0,4),month:m&&(c==4||c==7)?s(i,2,2):c==7||c==10?s(i,5,2):null,day:c==5?s(i,3,2):c==7&&m?s(i,5,2):c==10?s(i,8,2):null,hour:p?null:s(u,0,2),minute:p&&d==3?s(u,1,2):d>4?p?s(u,1,2):s(u,3,2):null,second:d==4?s(u,2,2):d==6?s(u,4,2):d==8?s(u,6,2):null};return l=="Z"?l=T.utcTimezone:l&&l[3]==":"?l=V.fromString(l):l=null,new Q(y,l,e)}constructor(t,e,s){super(t,e),this.icaltype=s||"date-and-or-time"}icalclass="vcardtime";icaltype="date-and-or-time";clone(){return new Q(this._time,this.zone,this.icaltype)}_normalize(){return this}utcOffset(){return this.zone instanceof V?this.zone.toSeconds():h.prototype.utcOffset.apply(this,arguments)}toICALString(){return b.vcard.value[this.icaltype].toICAL(this.toString())}toString(){let t=this.year,e=this.month,s=this.day,r=this.hour,i=this.minute,o=this.second,n=t!==null,l=e!==null,u=s!==null,c=r!==null,d=i!==null,m=o!==null,p=(n?k(t)+(l||u?"-":""):l||u?"--":"")+(l?k(e):"")+(u?"-"+k(s):""),y=(c?k(r):"-")+(c&&d?":":"")+(d?k(i):"")+(!c&&!d?"-":"")+(d&&m?":":"")+(m?k(o):""),f;switch(this.zone===T.utcTimezone?f="Z":this.zone instanceof V?f=this.zone.toString():this.zone===T.localTimezone?f="":this.zone instanceof T?f=V.fromSeconds(this.zone.utcOffset(this)).toString():f="",this.icaltype){case"time":return y+f;case"date-and-or-time":case"date-time":return p+(y=="--"?"":"T"+y+f);case"date":return p}return null}}class R{static _indexMap={BYSECOND:0,BYMINUTE:1,BYHOUR:2,BYDAY:3,BYMONTHDAY:4,BYYEARDAY:5,BYWEEKNO:6,BYMONTH:7,BYSETPOS:8};static _expandMap={SECONDLY:[1,1,1,1,1,1,1,1],MINUTELY:[2,1,1,1,1,1,1,1],HOURLY:[2,2,1,1,1,1,1,1],DAILY:[2,2,2,1,1,1,1,1],WEEKLY:[2,2,2,2,3,3,1,1],MONTHLY:[2,2,2,2,2,3,3,1],YEARLY:[2,2,2,2,2,2,2,2]};static UNKNOWN=0;static CONTRACT=1;static EXPAND=2;static ILLEGAL=3;constructor(t){this.fromData(t)}completed=!1;rule=null;dtstart=null;last=null;occurrence_number=0;by_indices=null;initialized=!1;by_data=null;days=null;days_index=0;fromData(t){if(this.rule=q(t.rule,w),!this.rule)throw new Error("iterator requires a (ICAL.Recur) rule");if(this.dtstart=q(t.dtstart,h),!this.dtstart)throw new Error("iterator requires a (ICAL.Time) dtstart");if(t.by_data?this.by_data=t.by_data:this.by_data=lt(this.rule.parts,!0),t.occurrence_number&&(this.occurrence_number=t.occurrence_number),this.days=t.days||[],t.last&&(this.last=q(t.last,h)),this.by_indices=t.by_indices,this.by_indices||(this.by_indices={BYSECOND:0,BYMINUTE:0,BYHOUR:0,BYDAY:0,BYMONTH:0,BYWEEKNO:0,BYMONTHDAY:0}),this.initialized=t.initialized||!1,!this.initialized)try{this.init()}catch(e){if(e instanceof At)this.completed=!0;else throw e}}init(){this.initialized=!0,this.last=this.dtstart.clone();let t=this.by_data;if("BYDAY"in t&&this.sort_byday_rules(t.BYDAY),"BYYEARDAY"in t&&("BYMONTH"in t||"BYWEEKNO"in t||"BYMONTHDAY"in t))throw new Error("Invalid BYYEARDAY rule");if("BYWEEKNO"in t&&"BYMONTHDAY"in t)throw new Error("BYWEEKNO does not fit to BYMONTHDAY");if(this.rule.freq=="MONTHLY"&&("BYYEARDAY"in t||"BYWEEKNO"in t))throw new Error("For MONTHLY recurrences neither BYYEARDAY nor BYWEEKNO may appear");if(this.rule.freq=="WEEKLY"&&("BYYEARDAY"in t||"BYMONTHDAY"in t))throw new Error("For WEEKLY recurrences neither BYMONTHDAY nor BYYEARDAY may appear");if(this.rule.freq!="YEARLY"&&"BYYEARDAY"in t)throw new Error("BYYEARDAY may only appear in YEARLY rules");if(this.last.second=this.setup_defaults("BYSECOND","SECONDLY",this.dtstart.second),this.last.minute=this.setup_defaults("BYMINUTE","MINUTELY",this.dtstart.minute),this.last.hour=this.setup_defaults("BYHOUR","HOURLY",this.dtstart.hour),this.last.day=this.setup_defaults("BYMONTHDAY","DAILY",this.dtstart.day),this.last.month=this.setup_defaults("BYMONTH","MONTHLY",this.dtstart.month),this.rule.freq=="WEEKLY")if("BYDAY"in t){let[,e]=this.ruleDayOfWeek(t.BYDAY[0],this.rule.wkst),s=e-this.last.dayOfWeek(this.rule.wkst);(this.last.dayOfWeek(this.rule.wkst)=0||s<0)&&(this.last.day+=s)}else{let e=w.numericDayToIcalDay(this.dtstart.dayOfWeek());t.BYDAY=[e]}if(this.rule.freq=="YEARLY"){const e=this.rule.until?this.rule.until.year:2e4;for(;this.last.year<=e&&(this.expand_year_days(this.last.year),!(this.days.length>0));)this.increment_year(this.rule.interval);if(this.days.length==0)throw new At;if(!this._nextByYearDay()&&!this.next_year()&&!this.next_year()&&!this.next_year())throw new At}if(this.rule.freq=="MONTHLY"){if(this.has_by_data("BYDAY")){let e=null,s=this.last.clone(),r=h.daysInMonth(this.last.month,this.last.year);for(let i of this.by_data.BYDAY){this.last=s.clone();let[o,n]=this.ruleDayOfWeek(i),l=this.last.nthWeekDay(n,o);if(o>=6||o<=-6)throw new Error("Malformed values in BYDAY part");if(l>r||l<=0){if(e&&e.month==s.month)continue;for(;l>r||l<=0;)this.increment_month(),r=h.daysInMonth(this.last.month,this.last.year),l=this.last.nthWeekDay(n,o)}this.last.day=l,(!e||this.last.compare(e)<0)&&(e=this.last.clone())}if(this.last=e.clone(),this.has_by_data("BYMONTHDAY")&&this._byDayAndMonthDay(!0),this.last.day>r||this.last.day==0)throw new Error("Malformed values in BYDAY part")}else if(this.has_by_data("BYMONTHDAY")){this.last.day=1;let e=this.normalizeByMonthDayRules(this.last.year,this.last.month,this.rule.parts.BYMONTHDAY).filter(s=>s>=this.last.day);if(e.length)this.last.day=e[0],this.by_data.BYMONTHDAY=e;else if(!this.next_month()&&!this.next_month()&&!this.next_month())throw new At}}}next(t=!1){let e=this.last?this.last.clone():null;if((this.rule.count&&this.occurrence_number>=this.rule.count||this.rule.until&&this.last.compare(this.rule.until)>0)&&(this.completed=!0),this.completed)return null;if(this.occurrence_number==0&&this.last.compare(this.dtstart)>=0)return this.occurrence_number++,this.last;let s,r=0;do switch(s=1,this.rule.freq){case"SECONDLY":this.next_second();break;case"MINUTELY":this.next_minute();break;case"HOURLY":this.next_hour();break;case"DAILY":this.next_day();break;case"WEEKLY":this.next_week();break;case"MONTHLY":if(s=this.next_month(),s)r=0;else if(++r==336)return this.completed=!0,null;break;case"YEARLY":if(s=this.next_year(),s)r=0;else if(++r==28)return this.completed=!0,null;break;default:return null}while(!this.check_contracting_rules()||this.last.compare(this.dtstart)<0||!s);if(this.last.compare(e)==0){if(t)throw new Error("Same occurrence found twice, protecting you from death by recursion");this.next(!0)}return this.rule.until&&this.last.compare(this.rule.until)>0?(this.completed=!0,null):(this.occurrence_number++,this.last)}next_second(){return this.next_generic("BYSECOND","SECONDLY","second","minute")}increment_second(t){return this.increment_generic(t,"second",60,"minute")}next_minute(){return this.next_generic("BYMINUTE","MINUTELY","minute","hour","next_second")}increment_minute(t){return this.increment_generic(t,"minute",60,"hour")}next_hour(){return this.next_generic("BYHOUR","HOURLY","hour","monthday","next_minute")}increment_hour(t){this.increment_generic(t,"hour",24,"monthday")}next_day(){let t=this.rule.freq=="DAILY";return this.next_hour()==0||(t?this.increment_monthday(this.rule.interval):this.increment_monthday(1)),0}next_week(){let t=0;if(this.next_weekday_by_week()==0)return t;if(this.has_by_data("BYWEEKNO")){this.by_indices.BYWEEKNO++,this.by_indices.BYWEEKNO==this.by_data.BYWEEKNO.length&&(this.by_indices.BYWEEKNO=0,t=1),this.last.month=1,this.last.day=1;let e=this.by_data.BYWEEKNO[this.by_indices.BYWEEKNO];this.last.day+=7*e,t&&this.increment_year(1)}else this.increment_monthday(7*this.rule.interval);return t}normalizeByMonthDayRules(t,e,s){let r=h.daysInMonth(e,t),i=[],o=0,n=s.length,l;for(;or)){if(l<0)l=r+(l+1);else if(l===0)continue;i.indexOf(l)===-1&&i.push(l)}}return i.sort(function(u,c){return u-c})}_byDayAndMonthDay(t){let e,s=this.by_data.BYDAY,r,i=0,o,n=s.length,l=0,u,c=this,d=this.last.day;function m(){for(u=h.daysInMonth(c.last.month,c.last.year),e=c.normalizeByMonthDayRules(c.last.year,c.last.month,c.by_data.BYMONTHDAY),o=e.length;e[i]<=d&&!(t&&e[i]==d)&&iu){p();continue}let f=e[i++];if(f>=r)d=f;else{p();continue}for(let A=0;Ae&&(this.last.day=1,this.increment_month(),this.is_day_in_byday(this.last)?(!this.has_by_data("BYSETPOS")||this.check_set_position(1))&&(t=1):t=0)}else if(this.has_by_data("BYMONTHDAY")){if(this.by_indices.BYMONTHDAY++,this.by_indices.BYMONTHDAY>=this.by_data.BYMONTHDAY.length&&(this.by_indices.BYMONTHDAY=0,this.increment_month(),this.by_indices.BYMONTHDAY>=this.by_data.BYMONTHDAY.length))return 0;let e=h.daysInMonth(this.last.month,this.last.year),s=this.by_data.BYMONTHDAY[this.by_indices.BYMONTHDAY];s<0&&(s=e+s+1),s>e?(this.last.day=1,t=this.is_day_in_byday(this.last)):this.last.day=s}else{this.increment_month();let e=h.daysInMonth(this.last.month,this.last.year);this.by_data.BYMONTHDAY[0]>e?t=0:this.last.day=this.by_data.BYMONTHDAY[0]}return t}next_weekday_by_week(){let t=0;if(this.next_hour()==0)return t;if(!this.has_by_data("BYDAY"))return 1;for(;;){let e=new h;this.by_indices.BYDAY++,this.by_indices.BYDAY==Object.keys(this.by_data.BYDAY).length&&(this.by_indices.BYDAY=0,t=1);let s=this.by_data.BYDAY[this.by_indices.BYDAY],r=this.ruleDayOfWeek(s)[1];r-=this.rule.wkst,r<0&&(r+=7),e.year=this.last.year,e.month=this.last.month,e.day=this.last.day;let i=e.startDoyWeek(this.rule.wkst);if(r+i<1&&!t)continue;let o=h.fromDayOfYear(i+r,this.last.year);return this.last.year=o.year,this.last.month=o.month,this.last.day=o.day,t}}next_year(){return this.next_hour()==0||(this.days.length==0||++this.days_index==this.days.length)&&(this.days_index=0,this.increment_year(this.rule.interval),this.has_by_data("BYMONTHDAY")&&(this.by_data.BYMONTHDAY=this.normalizeByMonthDayRules(this.last.year,this.last.month,this.rule.parts.BYMONTHDAY)),this.expand_year_days(this.last.year),this.days.length==0)?0:this._nextByYearDay()}_nextByYearDay(){let t=this.days[this.days_index],e=this.last.year;if(Math.abs(t)==366&&!h.isLeapYear(this.last.year))return 0;t<1&&(t+=1,e+=1);let s=h.fromDayOfYear(t,e);return this.last.day=s.day,this.last.month=s.month,1}ruleDayOfWeek(t,e){let s=t.match(/([+-]?[0-9])?(MO|TU|WE|TH|FR|SA|SU)/);if(s){let r=parseInt(s[1]||0,10);return t=w.icalDayToNumericDay(s[2],e),[r,t]}else return[0,0]}next_generic(t,e,s,r,i){let o=t in this.by_data,n=this.rule.freq==e,l=0;if(i&&this[i]()==0)return l;if(o){this.by_indices[t]++;let u=this.by_data[t];this.by_indices[t]==u.length&&(this.by_indices[t]=0,l=1),this.last[s]=u[this.by_indices[t]]}else n&&this["increment_"+s](this.rule.interval);return o&&l&&n&&this["increment_"+r](1),l}increment_monthday(t){for(let e=0;es&&(this.last.day-=s,this.increment_month())}}increment_month(){if(this.last.day=1,this.has_by_data("BYMONTH"))this.by_indices.BYMONTH++,this.by_indices.BYMONTH==this.by_data.BYMONTH.length&&(this.by_indices.BYMONTH=0,this.increment_year(1)),this.last.month=this.by_data.BYMONTH[this.by_indices.BYMONTH];else{this.rule.freq=="MONTHLY"?this.last.month+=this.rule.interval:this.last.month++,this.last.month--;let t=C(this.last.month/12);this.last.month%=12,this.last.month++,t!=0&&this.increment_year(t)}this.has_by_data("BYMONTHDAY")&&(this.by_data.BYMONTHDAY=this.normalizeByMonthDayRules(this.last.year,this.last.month,this.rule.parts.BYMONTHDAY))}increment_year(t){this.last.day=1,this.last.year+=t}increment_generic(t,e,s,r){this.last[e]+=t;let i=C(this.last[e]/s);this.last[e]%=s,i!=0&&this["increment_"+r](i)}has_by_data(t){return t in this.rule.parts}expand_year_days(t){let e=new h;this.days=[];let s={},r=["BYDAY","BYWEEKNO","BYMONTHDAY","BYMONTH","BYYEARDAY"];for(let n of r)n in this.rule.parts&&(s[n]=this.rule.parts[n]);if("BYMONTH"in s&&"BYWEEKNO"in s){let n=1,l={};e.year=t,e.isDate=!0;for(let u=0;u0?(A=U+(y-1)*7,A<=l&&this.days.push(c+A)):(A=ct+(y+1)*7,A>0&&this.days.push(c+A))}}this.days.sort(function(n,l){return n-l})}else if(i==2&&"BYDAY"in s&&"BYMONTHDAY"in s){let n=this.expand_by_day(t);for(let l of n){let u=h.fromDayOfYear(l,t);this.by_data.BYMONTHDAY.indexOf(u.day)>=0&&this.days.push(l)}}else if(i==3&&"BYDAY"in s&&"BYMONTHDAY"in s&&"BYMONTH"in s){let n=this.expand_by_day(t);for(let l of n){let u=h.fromDayOfYear(l,t);this.by_data.BYMONTH.indexOf(u.month)>=0&&this.by_data.BYMONTHDAY.indexOf(u.day)>=0&&this.days.push(l)}}else if(i==2&&"BYDAY"in s&&"BYWEEKNO"in s){let n=this.expand_by_day(t);for(let l of n){let u=h.fromDayOfYear(l,t).weekNumber(this.rule.wkst);this.by_data.BYWEEKNO.indexOf(u)&&this.days.push(l)}}else if(!(i==3&&"BYDAY"in s&&"BYWEEKNO"in s&&"BYMONTHDAY"in s))if(i==1&&"BYYEARDAY"in s)this.days=this.days.concat(this.by_data.BYYEARDAY);else if(i==2&&"BYYEARDAY"in s&&"BYDAY"in s){let n=h.isLeapYear(t)?366:365,l=new Set(this.expand_by_day(t));for(let u of this.by_data.BYYEARDAY)u<0&&(u+=n+1),l.has(u)&&this.days.push(u)}else this.days=[]}let o=h.isLeapYear(t)?366:365;return this.days.sort((n,l)=>(n<0&&(n+=o+1),l<0&&(l+=o+1),n-l)),0}expand_by_day(t){let e=[],s=this.last.clone();s.year=t,s.month=1,s.day=1,s.isDate=!0;let r=s.dayOfWeek();s.month=12,s.day=31,s.isDate=!0;let i=s.dayOfWeek(),o=s.dayOfYear();for(let n of this.by_data.BYDAY){let l=this.ruleDayOfWeek(n),u=l[0],c=l[1];if(u==0){let d=(c+7-r)%7+1;for(let m=d;m<=o;m+=7)e.push(m)}else if(u>0){let d;c>=r?d=c-r+1:d=c-r+8,e.push(d+(u-1)*7)}else{let d;u=-u,c<=i?d=o-i+c:d=o-i+c-7,e.push(d-(u-1)*7)}}return e}is_day_in_byday(t){if(this.by_data.BYDAY)for(let e of this.by_data.BYDAY){let s=this.ruleDayOfWeek(e),r=s[0],i=s[1],o=t.dayOfWeek();if(r==0&&i==o||t.nthWeekDay(i,r)==t.day)return 1}return 0}check_set_position(t){return this.has_by_data("BYSETPOS")?this.by_data.BYSETPOS.indexOf(t)!==-1:!1}sort_byday_rules(t){for(let e=0;ei){let o=t[e];t[e]=t[s],t[s]=o}}}check_contract_restriction(t,e){let s=R._indexMap[t],r=R._expandMap[this.rule.freq][s],i=!1;if(t in this.by_data&&r==R.CONTRACT){let o=this.by_data[t];for(let n of o)if(n==e){i=!0;break}}else i=!0;return i}check_contracting_rules(){let t=this.last.dayOfWeek(),e=this.last.weekNumber(this.rule.wkst),s=this.last.dayOfYear();return this.check_contract_restriction("BYSECOND",this.last.second)&&this.check_contract_restriction("BYMINUTE",this.last.minute)&&this.check_contract_restriction("BYHOUR",this.last.hour)&&this.check_contract_restriction("BYDAY",w.numericDayToIcalDay(t))&&this.check_contract_restriction("BYWEEKNO",e)&&this.check_contract_restriction("BYMONTHDAY",this.last.day)&&this.check_contract_restriction("BYMONTH",this.last.month)&&this.check_contract_restriction("BYYEARDAY",s)}setup_defaults(t,e,s){let r=R._indexMap[t];return R._expandMap[this.rule.freq][r]!=R.CONTRACT&&(t in this.by_data||(this.by_data[t]=[s]),this.rule.freq!=e)?this.by_data[t][0]:s}toJSON(){let t=Object.create(null);return t.initialized=this.initialized,t.rule=this.rule.toJSON(),t.dtstart=this.dtstart.toJSON(),t.by_data=this.by_data,t.days=this.days,t.last=this.last.toJSON(),t.by_indices=this.by_indices,t.occurrence_number=this.occurrence_number,t}}class At extends Error{constructor(){super("Recurrence rule has no valid occurrences")}}const s0=/^(SU|MO|TU|WE|TH|FR|SA)$/,a0=/^([+-])?(5[0-3]|[1-4][0-9]|[1-9])?(SU|MO|TU|WE|TH|FR|SA)$/,fe={SU:h.SUNDAY,MO:h.MONDAY,TU:h.TUESDAY,WE:h.WEDNESDAY,TH:h.THURSDAY,FR:h.FRIDAY,SA:h.SATURDAY},r0=Object.fromEntries(Object.entries(fe).map(a=>a.reverse())),Jt=["SECONDLY","MINUTELY","HOURLY","DAILY","WEEKLY","MONTHLY","YEARLY"];class w{static fromString(t){let e=this._stringToData(t,!1);return new w(e)}static fromData(t){return new w(t)}static _stringToData(t,e){let s=Object.create(null),r=t.split(";"),i=r.length;for(let o=0;o7&&(r-=7),r0[r]}constructor(t){this.wrappedJSObject=this,this.parts={},t&&typeof t=="object"&&this.fromData(t)}parts=null;interval=1;wkst=h.MONDAY;until=null;count=null;freq=null;icalclass="icalrecur";icaltype="recur";iterator(t){return new R({rule:this,dtstart:t})}clone(){return new w(this.toJSON())}isFinite(){return!!(this.count||this.until)}isByCount(){return!!(this.count&&!this.until)}addComponent(t,e){let s=t.toUpperCase();s in this.parts?this.parts[s].push(e):this.parts[s]=[e]}setComponent(t,e){this.parts[t.toUpperCase()]=e.slice()}getComponent(t){let e=t.toUpperCase();return e in this.parts?this.parts[e].slice():[]}getNextOccurrence(t,e){let s=this.iterator(t),r;do r=s.next();while(r&&r.compare(e)<=0);return r&&e.zone&&(r.zone=e.zone),r}fromData(t){for(let e in t){let s=e.toUpperCase();s in It?Array.isArray(t[e])?this.parts[s]=t[e]:this.parts[s]=[t[e]]:this[e]=t[e]}this.interval&&typeof this.interval!="number"&&xt.INTERVAL(this.interval,this),this.wkst&&typeof this.wkst!="number"&&(this.wkst=w.icalDayToNumericDay(this.wkst)),this.until&&!(this.until instanceof h)&&(this.until=h.fromString(this.until))}toJSON(){let t=Object.create(null);t.freq=this.freq,this.count&&(t.count=this.count),this.interval>1&&(t.interval=this.interval);for(let[e,s]of Object.entries(this.parts))Array.isArray(s)&&s.length==1?t[e.toLowerCase()]=s[0]:t[e.toLowerCase()]=lt(s);return this.until&&(t.until=this.until.toString()),"wkst"in this&&this.wkst!==h.DEFAULT_WEEK_START&&(t.wkst=w.numericDayToIcalDay(this.wkst)),t}toString(){let t="FREQ="+this.freq;this.count&&(t+=";COUNT="+this.count),this.interval>1&&(t+=";INTERVAL="+this.interval);for(let[e,s]of Object.entries(this.parts))t+=";"+e+"="+s;return this.until&&(t+=";UNTIL="+this.until.toICALString()),"wkst"in this&&this.wkst!==h.DEFAULT_WEEK_START&&(t+=";WKST="+w.numericDayToIcalDay(this.wkst)),t}}function Z(a,t,e,s){let r=s;if(s[0]==="+"&&(r=s.slice(1)),r=O(r),t!==void 0&&s '+t);if(e!==void 0&&s>e)throw new Error(a+': invalid value "'+s+'" must be < '+t);return r}const xt={FREQ:function(a,t,e){if(Jt.indexOf(a)!==-1)t.freq=a;else throw new Error('invalid frequency "'+a+'" expected: "'+Jt.join(", ")+'"')},COUNT:function(a,t,e){t.count=O(a)},INTERVAL:function(a,t,e){t.interval=O(a),t.interval<1&&(t.interval=1)},UNTIL:function(a,t,e){a.length>10?t.until=b.icalendar.value["date-time"].fromICAL(a):t.until=b.icalendar.value.date.fromICAL(a),e||(t.until=h.fromString(t.until))},WKST:function(a,t,e){if(s0.test(a))t.wkst=w.icalDayToNumericDay(a);else throw new Error('invalid WKST value "'+a+'"')}},It={BYSECOND:Z.bind(void 0,"BYSECOND",0,60),BYMINUTE:Z.bind(void 0,"BYMINUTE",0,59),BYHOUR:Z.bind(void 0,"BYHOUR",0,23),BYDAY:function(a){if(a0.test(a))return a;throw new Error('invalid BYDAY value "'+a+'"')},BYMONTHDAY:Z.bind(void 0,"BYMONTHDAY",-31,31),BYYEARDAY:Z.bind(void 0,"BYYEARDAY",-366,366),BYWEEKNO:Z.bind(void 0,"BYWEEKNO",-53,53),BYMONTH:Z.bind(void 0,"BYMONTH",1,12),BYSETPOS:Z.bind(void 0,"BYSETPOS",-366,366)},i0=/\\\\|\\;|\\,|\\[Nn]/g,n0=/\\|;|,|\n/g,$t=/\\\\|\\,|\\[Nn]/g,Xt=/\\|,|\n/g;function zt(a,t){return{matches:/.*/,fromICAL:function(e,s){return l0(e,a,s)},toICAL:function(e,s){let r=t;return s&&(r=new RegExp(r.source+"|"+s,r.flags)),e.replace(r,function(i){switch(i){case"\\":return"\\\\";case";":return"\\;";case",":return"\\,";case` @@ -6,7 +6,7 @@ import{f as G,j,o as B,k as it,e as v,t as tt,w as et,g as Yt,H as ye,F as Wt,C `;default:return a}}function l0(a,t,e){return a.indexOf("\\")===-1?a:(e&&(t=new RegExp(t.source+"|\\\\"+e,t.flags)),a.replace(t,o0))}let jt={categories:pt,url:I,version:S,uid:S},Rt={boolean:{values:["TRUE","FALSE"],fromICAL:function(a){switch(a){case"TRUE":return!0;case"FALSE":return!1;default:return!1}},toICAL:function(a){return a?"TRUE":"FALSE"}},float:{matches:/^[+-]?\d+\.\d+$/,fromICAL:function(a){let t=parseFloat(a);return ft(t)?0:t},toICAL:function(a){return String(a)}},integer:{fromICAL:function(a){let t=parseInt(a);return ft(t)?0:t},toICAL:function(a){return String(a)}},"utc-offset":{toICAL:function(a){return a.length<7?a.slice(0,3)+a.slice(4,6):a.slice(0,3)+a.slice(4,6)+a.slice(7,9)},fromICAL:function(a){return a.length<6?a.slice(0,3)+":"+a.slice(3,5):a.slice(0,3)+":"+a.slice(3,5)+":"+a.slice(5,7)},decorate:function(a){return V.fromString(a)},undecorate:function(a){return a.toString()}}},u0={cutype:{values:["INDIVIDUAL","GROUP","RESOURCE","ROOM","UNKNOWN"],allowXName:!0,allowIanaToken:!0},"delegated-from":{valueType:"cal-address",multiValue:",",multiValueSeparateDQuote:!0},"delegated-to":{valueType:"cal-address",multiValue:",",multiValueSeparateDQuote:!0},encoding:{values:["8BIT","BASE64"]},fbtype:{values:["FREE","BUSY","BUSY-UNAVAILABLE","BUSY-TENTATIVE"],allowXName:!0,allowIanaToken:!0},member:{valueType:"cal-address",multiValue:",",multiValueSeparateDQuote:!0},partstat:{values:["NEEDS-ACTION","ACCEPTED","DECLINED","TENTATIVE","DELEGATED","COMPLETED","IN-PROCESS"],allowXName:!0,allowIanaToken:!0},range:{values:["THISANDFUTURE"]},related:{values:["START","END"]},reltype:{values:["PARENT","CHILD","SIBLING"],allowXName:!0,allowIanaToken:!0},role:{values:["REQ-PARTICIPANT","CHAIR","OPT-PARTICIPANT","NON-PARTICIPANT"],allowXName:!0,allowIanaToken:!0},rsvp:{values:["TRUE","FALSE"]},"sent-by":{valueType:"cal-address"},tzid:{matches:/^\//},value:{values:["binary","boolean","cal-address","date","date-time","duration","float","integer","period","recur","text","time","uri","utc-offset"],allowXName:!0,allowIanaToken:!0}};const x=ut(Rt,{text:zt(i0,n0),uri:{},binary:{decorate:function(a){return Mt.fromString(a)},undecorate:function(a){return a.toString()}},"cal-address":{},date:{decorate:function(a,t){return h.fromDateString(a,t)},undecorate:function(a){return a.toString()},fromICAL:function(a){return a.slice(0,4)+"-"+a.slice(4,6)+"-"+a.slice(6,8)},toICAL:function(a){let t=a.length;return t==10?a.slice(0,4)+a.slice(5,7)+a.slice(8,10):t>=19?x["date-time"].toICAL(a):a}},"date-time":{fromICAL:function(a){{let t=a.slice(0,4)+"-"+a.slice(4,6)+"-"+a.slice(6,8)+"T"+a.slice(9,11)+":"+a.slice(11,13)+":"+a.slice(13,15);return a[15]&&a[15]==="Z"&&(t+="Z"),t}},toICAL:function(a){if(a.length>=19){let t=a.slice(0,4)+a.slice(5,7)+a.slice(8,13)+a.slice(14,16)+a.slice(17,19);return a[19]&&a[19]==="Z"&&(t+="Z"),t}else return a},decorate:function(a,t){return h.fromDateTimeString(a,t)},undecorate:function(a){return a.toString()}},duration:{decorate:function(a){return M.fromString(a)},undecorate:function(a){return a.toString()}},period:{fromICAL:function(a){let t=a.split("/");return t[0]=x["date-time"].fromICAL(t[0]),M.isValueString(t[1])||(t[1]=x["date-time"].fromICAL(t[1])),t},toICAL:function(a){return a=a.slice(),a[0]=x["date-time"].toICAL(a[0]),M.isValueString(a[1])||(a[1]=x["date-time"].toICAL(a[1])),a.join("/")},decorate:function(a,t){return K.fromJSON(a,t,!1)},undecorate:function(a){return a.toJSON()}},recur:{fromICAL:function(a){return w._stringToData(a,!0)},toICAL:function(a){let t="";for(let[e,s]of Object.entries(a))e=="until"?s.length>10?s=x["date-time"].toICAL(s):s=x.date.toICAL(s):e=="wkst"?typeof s=="number"&&(s=w.numericDayToIcalDay(s)):Array.isArray(s)&&(s=s.join(",")),t+=e.toUpperCase()+"="+s+";";return t.slice(0,Math.max(0,t.length-1))},decorate:function(a){return w.fromData(a)},undecorate:function(a){return a.toJSON()}},time:{fromICAL:function(a){if(a.length<6)return a;let t=a.slice(0,2)+":"+a.slice(2,4)+":"+a.slice(4,6);return a[6]==="Z"&&(t+="Z"),t},toICAL:function(a){if(a.length<8)return a;let t=a.slice(0,2)+a.slice(3,5)+a.slice(6,8);return a[8]==="Z"&&(t+="Z"),t}}});let d0=ut(jt,{action:S,attach:{defaultType:"uri"},attendee:{defaultType:"cal-address"},calscale:S,class:S,comment:S,completed:Et,contact:S,created:Et,description:S,dtend:Dt,dtstamp:Et,dtstart:Dt,due:Dt,duration:{defaultType:"duration"},exdate:{defaultType:"date-time",allowedTypes:["date-time","date"],multiValue:","},exrule:te,freebusy:{defaultType:"period",multiValue:","},geo:{defaultType:"float",structuredValue:";"},"last-modified":Et,location:S,method:S,organizer:{defaultType:"cal-address"},"percent-complete":gt,priority:gt,prodid:S,"related-to":S,repeat:gt,rdate:{defaultType:"date-time",allowedTypes:["date-time","date","period"],multiValue:",",detectType:function(a){return a.indexOf("/")!==-1?"period":a.indexOf("T")===-1?"date":"date-time"}},"recurrence-id":Dt,resources:pt,"request-status":wt,rrule:te,sequence:gt,status:S,summary:S,transp:S,trigger:{defaultType:"duration",allowedTypes:["duration","date-time"]},tzoffsetfrom:Qt,tzoffsetto:Qt,tzurl:I,tzid:S,tzname:S});const P=ut(Rt,{text:zt($t,Xt),uri:zt($t,Xt),date:{decorate:function(a){return Q.fromDateAndOrTimeString(a,"date")},undecorate:function(a){return a.toString()},fromICAL:function(a){return a.length==8?x.date.fromICAL(a):a[0]=="-"&&a.length==6?a.slice(0,4)+"-"+a.slice(4):a},toICAL:function(a){return a.length==10?x.date.toICAL(a):a[0]=="-"&&a.length==7?a.slice(0,4)+a.slice(5):a}},time:{decorate:function(a){return Q.fromDateAndOrTimeString("T"+a,"time")},undecorate:function(a){return a.toString()},fromICAL:function(a){let t=P.time._splitZone(a,!0),e=t[0],s=t[1];return s.length==6?s=s.slice(0,2)+":"+s.slice(2,4)+":"+s.slice(4,6):s.length==4&&s[0]!="-"?s=s.slice(0,2)+":"+s.slice(2,4):s.length==5&&(s=s.slice(0,3)+":"+s.slice(3,5)),e.length==5&&(e[0]=="-"||e[0]=="+")&&(e=e.slice(0,3)+":"+e.slice(3)),s+e},toICAL:function(a){let t=P.time._splitZone(a),e=t[0],s=t[1];return s.length==8?s=s.slice(0,2)+s.slice(3,5)+s.slice(6,8):s.length==5&&s[0]!="-"?s=s.slice(0,2)+s.slice(3,5):s.length==6&&(s=s.slice(0,3)+s.slice(4,6)),e.length==6&&(e[0]=="-"||e[0]=="+")&&(e=e.slice(0,3)+e.slice(4)),s+e},_splitZone:function(a,t){let e=a.length-1,s=a.length-(t?5:6),r=a[s],i,o;return a[e]=="Z"?(i=a[e],o=a.slice(0,Math.max(0,e))):a.length>6&&(r=="-"||r=="+")?(i=a.slice(s),o=a.slice(0,Math.max(0,s))):(i="",o=a),[i,o]}},"date-time":{decorate:function(a){return Q.fromDateAndOrTimeString(a,"date-time")},undecorate:function(a){return a.toString()},fromICAL:function(a){return P["date-and-or-time"].fromICAL(a)},toICAL:function(a){return P["date-and-or-time"].toICAL(a)}},"date-and-or-time":{decorate:function(a){return Q.fromDateAndOrTimeString(a,"date-and-or-time")},undecorate:function(a){return a.toString()},fromICAL:function(a){let t=a.split("T");return(t[0]?P.date.fromICAL(t[0]):"")+(t[1]?"T"+P.time.fromICAL(t[1]):"")},toICAL:function(a){let t=a.split("T");return P.date.toICAL(t[0])+(t[1]?"T"+P.time.toICAL(t[1]):"")}},timestamp:x["date-time"],"language-tag":{matches:/^[a-zA-Z0-9-]+$/},"phone-number":{fromICAL:function(a){return Array.from(a).filter(function(t){return t==="\\"?void 0:t}).join("")},toICAL:function(a){return Array.from(a).map(function(t){return t===","||t===";"?"\\"+t:t}).join("")}}});let c0={type:{valueType:"text",multiValue:","},value:{values:["text","uri","date","time","date-time","date-and-or-time","timestamp","boolean","integer","float","utc-offset","language-tag"],allowXName:!0,allowIanaToken:!0}},h0=ut(jt,{adr:{defaultType:"text",structuredValue:";",multiValue:","},anniversary:ee,bday:ee,caladruri:I,caluri:I,clientpidmap:wt,email:S,fburl:I,fn:S,gender:wt,geo:I,impp:I,key:I,kind:S,lang:{defaultType:"language-tag"},logo:I,member:I,n:{defaultType:"text",structuredValue:";",multiValue:","},nickname:pt,note:S,org:{defaultType:"text",structuredValue:";"},photo:I,related:I,rev:{defaultType:"timestamp"},role:S,sound:I,source:I,tel:{defaultType:"uri",allowedTypes:["uri","text"]},title:S,tz:{defaultType:"text",allowedTypes:["text","utc-offset","uri"]},xml:S}),m0=ut(Rt,{binary:x.binary,date:P.date,"date-time":P["date-time"],"phone-number":P["phone-number"],uri:x.uri,text:P.text,time:x.time,vcard:x.text,"utc-offset":{toICAL:function(a){return a.slice(0,7)},fromICAL:function(a){return a.slice(0,7)},decorate:function(a){return V.fromString(a)},undecorate:function(a){return a.toString()}}}),f0={type:{valueType:"text",multiValue:","},value:{values:["text","uri","date","date-time","phone-number","time","boolean","integer","float","utc-offset","vcard","binary"],allowXName:!0,allowIanaToken:!0}},p0=ut(jt,{fn:S,n:{defaultType:"text",structuredValue:";",multiValue:","},nickname:pt,photo:{defaultType:"binary",allowedTypes:["binary","uri"]},bday:{defaultType:"date-time",allowedTypes:["date-time","date"],detectType:function(a){return a.indexOf("T")===-1?"date":"date-time"}},adr:{defaultType:"text",structuredValue:";",multiValue:","},label:S,tel:{defaultType:"phone-number"},email:S,mailer:S,tz:{defaultType:"utc-offset",allowedTypes:["utc-offset","text"]},geo:{defaultType:"float",structuredValue:";"},title:S,role:S,logo:{defaultType:"binary",allowedTypes:["binary","uri"]},agent:{defaultType:"vcard",allowedTypes:["vcard","text","uri"]},org:wt,note:pt,prodid:S,rev:{defaultType:"date-time",allowedTypes:["date-time","date"],detectType:function(a){return a.indexOf("T")===-1?"date":"date-time"}},"sort-string":S,sound:{defaultType:"binary",allowedTypes:["binary","uri"]},class:S,key:{defaultType:"binary",allowedTypes:["binary","text"]}}),F={name:"ical",value:x,param:u0,property:d0,propertyGroups:!1},se={name:"vcard4",value:P,param:c0,property:h0,propertyGroups:!0},ae={name:"vcard3",value:m0,param:f0,property:p0,propertyGroups:!0};const b={strict:!0,defaultSet:F,defaultType:"unknown",components:{vcard:se,vcard3:ae,vevent:F,vtodo:F,vjournal:F,valarm:F,vtimezone:F,daylight:F,standard:F},icalendar:F,vcard:se,vcard3:ae,getDesignSet:function(a){return a&&a in b.components?b.components[a]:b.defaultSet}},Ct=`\r `,re="unknown",T0={'"':"^'","\n":"^n","^":"^^"};function _(a){typeof a[0]=="string"&&(a=[a]);let t=0,e=a.length,s="";for(;t0&&!(a[1][0][0]==="version"&&a[1][0][3]==="4.0")&&(n="vcard3"),t=t||b.getDesignSet(n);i0&&typeof t[0]=="object"&&"icaltype"in t[0]&&this.resetType(t[0].icaltype),this.isDecorated)for(;s=0;o--)(!s||i[o][$]===s)&&this._removeObjectByIndex(t,r,o)}addSubcomponent(t){this._components||(this._components=[],this._hydratedComponentCount=0),t.parent&&t.parent.removeSubcomponent(t);let e=this.jCal[X].push(t.jCal);return this._components[e-1]=t,this._hydratedComponentCount++,t.parent=this,t}removeSubcomponent(t){let e=this._removeObject(X,"_components",t);return e&&this._hydratedComponentCount--,e}removeAllSubcomponents(t){let e=this._removeAllObjects(X,"_components",t);return this._hydratedComponentCount=0,e}addProperty(t){if(!(t instanceof ot))throw new TypeError("must be instance of ICAL.Property");this._properties||(this._properties=[],this._hydratedPropertyCount=0),t.parent&&t.parent.removeProperty(t);let e=this.jCal[H].push(t.jCal);return this._properties[e-1]=t,this._hydratedPropertyCount++,t.parent=this,t}addPropertyWithValue(t,e){let s=new ot(t);return s.setValue(e),this.addProperty(s),s}updatePropertyWithValue(t,e){let s=this.getFirstProperty(t);return s?s.setValue(e):s=this.addPropertyWithValue(t,e),s}removeProperty(t){let e=this._removeObject(H,"_properties",t);return e&&this._hydratedPropertyCount--,e}removeAllProperties(t){let e=this._removeAllObjects(H,"_properties",t);return this._hydratedPropertyCount=0,e}toJSON(){return this.jCal}toString(){return _.component(this.jCal,this._designSet)}getTimeZoneByID(t){if(this.parent)return this.parent.getTimeZoneByID(t);if(!this._timezoneCache)return null;if(this._timezoneCache.has(t))return this._timezoneCache.get(t);const e=this.getAllSubcomponents("vtimezone");for(const s of e)if(s.getFirstProperty("tzid").getFirstValue()===t){const r=new T({component:s,tzid:t});return this._timezoneCache.set(t,r),r}return null}}class pe{constructor(t){this.ruleDates=[],this.exDates=[],this.fromData(t)}complete=!1;ruleIterators=null;ruleDates=null;exDates=null;ruleDateInc=0;exDateInc=0;exDate=null;ruleDate=null;dtstart=null;last=null;fromData(t){let e=q(t.dtstart,h);if(e)this.dtstart=e;else throw new Error(".dtstart (ICAL.Time) must be given");if(t.component)this._init(t.component);else{if(this.last=q(t.last,h)||e.clone(),!t.ruleIterators)throw new Error(".ruleIterators or .component must be given");this.ruleIterators=t.ruleIterators.map(function(s){return q(s,R)}),this.ruleDateInc=t.ruleDateInc,this.exDateInc=t.exDateInc,t.ruleDates&&(this.ruleDates=t.ruleDates.map(s=>q(s,h)),this.ruleDate=this.ruleDates[this.ruleDateInc]),t.exDates&&(this.exDates=t.exDates.map(s=>q(s,h)),this.exDate=this.exDates[this.exDateInc]),typeof t.complete<"u"&&(this.complete=t.complete)}}_compare_special(t,e){return!t.isDate&&e.isDate?new h({year:t.year,month:t.month,day:t.day}).compare(e):t.compare(e)}next(){let t,e,s,r=500,i=0;for(;;){if(i++>r)throw new Error("max tries have occurred, rule may be impossible to fulfill.");if(e=this.ruleDate,t=this._nextRecurrenceIter(this.last),!e&&!t){this.complete=!0;break}if((!e||t&&e.compare(t.last)>0)&&(e=t.last.clone(),t.next()),this.ruleDate===e&&this._nextRuleDay(),this.last=e,this.exDate&&(s=this._compare_special(this.last,this.exDate),s>0&&this._nextExDay(),s===0)){this._nextExDay();continue}return this.last}}toJSON(){function t(s){return s.toJSON()}let e=Object.create(null);return e.ruleIterators=this.ruleIterators.map(t),this.ruleDates&&(e.ruleDates=this.ruleDates.map(t)),this.exDates&&(e.exDates=this.exDates.map(t)),e.ruleDateInc=this.ruleDateInc,e.exDateInc=this.exDateInc,e.last=this.last.toJSON(),e.dtstart=this.dtstart.toJSON(),e.complete=this.complete,e}_extractDates(t,e){let s=[],r=t.getAllProperties(e);for(let i=0,o=r.length;iu.compare(c));s.splice(l,0,n)}return s}_init(t){if(this.ruleIterators=[],this.last=this.dtstart.clone(),!t.hasProperty("rdate")&&!t.hasProperty("rrule")&&!t.hasProperty("recurrence-id")){this.ruleDate=this.last.clone(),this.complete=!0;return}if(t.hasProperty("rdate")&&(this.ruleDates=this._extractDates(t,"rdate"),this.ruleDates[0]&&this.ruleDates[0].compare(this.dtstart)<0?(this.ruleDateInc=0,this.last=this.ruleDates[0].clone()):this.ruleDateInc=nt(this.ruleDates,this.last,(e,s)=>e.compare(s)),this.ruleDate=this.ruleDates[this.ruleDateInc]),t.hasProperty("rrule")){let e=t.getAllProperties("rrule"),s=0,r=e.length,i,o;for(;s0)&&(o=s)}return o}}class Tt{constructor(t,e){t instanceof z||(e=t,t=null),t?this.component=t:this.component=new z("vevent"),this._rangeExceptionCache=Object.create(null),this.exceptions=Object.create(null),this.rangeExceptions=[],e&&e.strictExceptions&&(this.strictExceptions=e.strictExceptions),e&&e.exceptions?e.exceptions.forEach(this.relateException,this):this.component.parent&&!this.isRecurrenceException()&&this.component.parent.getAllSubcomponents("vevent").forEach(function(s){s.hasProperty("recurrence-id")&&this.relateException(s)},this)}static THISANDFUTURE="THISANDFUTURE";exceptions=null;strictExceptions=!1;relateException(t){if(this.isRecurrenceException())throw new Error("cannot relate exception to exceptions");if(t instanceof z&&(t=new Tt(t)),this.strictExceptions&&t.uid!==this.uid)throw new Error("attempted to relate unrelated exception");let e=t.recurrenceId.toString();if(this.exceptions[e]=t,t.modifiesFuture()){let s=[t.recurrenceId.toUnixTime(),e],r=nt(this.rangeExceptions,s,ne);this.rangeExceptions.splice(r,0,s)}}modifiesFuture(){return this.component.hasProperty("recurrence-id")?this.component.getFirstProperty("recurrence-id").getParameter("range")===Tt.THISANDFUTURE:!1}findRangeException(t){if(!this.rangeExceptions.length)return null;let e=t.toUnixTime(),s=nt(this.rangeExceptions,[e],ne);if(s-=1,s<0)return null;let r=this.rangeExceptions[s];return et[0]?1:t[0]>a[0]?-1:0}class A0{constructor(t){typeof t>"u"&&(t={});for(let[e,s]of Object.entries(t))this[e]=s}parseEvent=!0;parseTimezone=!0;oncomplete=function(){};onerror=function(t){};ontimezone=function(t){};onevent=function(t){};process(t){typeof t=="string"&&(t=g(t)),t instanceof z||(t=new z(t));let e=t.getAllSubcomponents(),s=0,r=e.length,i;for(;s"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");kt=crypto.getRandomValues.bind(crypto)}return kt(D0)}const _0=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),oe={randomUUID:_0};function b0(a,t,e){a=a||{};const s=a.random??a.rng?.()??E0();if(s.length<16)throw new Error("Random bytes length must be >= 16");return s[6]=s[6]&15|64,s[8]=s[8]&63|128,g0(s)}function U0(a,t,e){return oe.randomUUID&&!a?oe.randomUUID():b0(a)}const C0=(a,t)=>{const e=a.__vccOpts||a;for(const[s,r]of t)e[s]=r;return e},Y0={name:"CalendarAvailability",components:{NcDateTimePickerNative:ce,NcButton:Ht,IconAdd:we,IconDelete:Ne},props:{slots:{type:Object,required:!0},loading:{type:Boolean,default:!1},l10nTo:{type:String,required:!0},l10nDeleteSlot:{type:String,required:!0},l10nEmptyDay:{type:String,required:!0},l10nAddSlot:{type:String,required:!0},l10nWeekDayListLabel:{type:String,default:"Weekdays"},l10nMonday:{type:String,required:!0},l10nTuesday:{type:String,required:!0},l10nWednesday:{type:String,required:!0},l10nThursday:{type:String,required:!0},l10nFriday:{type:String,required:!0},l10nSaturday:{type:String,required:!0},l10nSunday:{type:String,required:!0},l10nStartPickerLabel:{type:Function,default:a=>`Pick a start time for ${a}`},l10nEndPickerLabel:{type:Function,default:a=>`Pick a end time for ${a}`}},data(){return{internalSlots:this.slotsToInternalData(this.slots)}},watch:{slots(){this.internalSlots=this.slotsToInternalData(this.slots)}},methods:{timeStampSlotsToDateObjectSlots(a){return a.map(t=>({start:new Date(t.start*1e3),end:new Date(t.end*1e3)}))},slotsToInternalData(){const a=[{id:"MO",displayName:this.l10nMonday,slots:this.timeStampSlotsToDateObjectSlots(this.slots.MO)},{id:"TU",displayName:this.l10nTuesday,slots:this.timeStampSlotsToDateObjectSlots(this.slots.TU)},{id:"WE",displayName:this.l10nWednesday,slots:this.timeStampSlotsToDateObjectSlots(this.slots.WE)},{id:"TH",displayName:this.l10nThursday,slots:this.timeStampSlotsToDateObjectSlots(this.slots.TH)},{id:"FR",displayName:this.l10nFriday,slots:this.timeStampSlotsToDateObjectSlots(this.slots.FR)},{id:"SA",displayName:this.l10nSaturday,slots:this.timeStampSlotsToDateObjectSlots(this.slots.SA)}],t={id:"SU",displayName:this.l10nSunday,slots:this.timeStampSlotsToDateObjectSlots(this.slots.SU)};return Ue()===1?[...a,t]:[t,...a]},internalDataToSlots(){const a={};return this.internalSlots.forEach(({id:t,slots:e})=>{a[t]=e.map(s=>({start:Math.round(s.start.getTime()/1e3),end:Math.round(s.end.getTime()/1e3)}))}),a},addSlot(a){const t=new Date;t.setHours(9,0,0,0);const e=new Date;e.setHours(17,0,0,0),a.slots.push({start:t,end:e}),this.onChangeSlots()},removeSlot(a,t){a.slots.splice(t,1),this.onChangeSlots()},onChangeSlots(){this.$emit("update:slots",this.internalDataToSlots())}}},v0=["aria-label"],O0={class:"label-weekday"},w0=["id"],M0={class:"availability-slot-group"},N0={class:"to-text"},x0={key:0,class:"empty-content"};function I0(a,t,e,s,r,i){const o=G("NcDateTimePickerNative"),n=G("IconDelete"),l=G("NcButton"),u=G("IconAdd");return B(),j("ul",{class:"week-day-container","aria-label":e.l10nWeekDayListLabel},[(B(!0),j(Wt,null,Ft(r.internalSlots,c=>(B(),j("li",{key:`day-label-${c.id}`,class:"day-container"},[it("div",O0,[it("span",{id:c.displayName+"-label"},tt(c.displayName),9,w0)]),(B(),j("div",{key:`day-slots-${c.id}`,class:"availability-slots"},[it("div",M0,[(B(!0),j(Wt,null,Ft(c.slots,(d,m)=>(B(),j("div",{key:`slot-${c.id}-${m}`,class:"availability-slot"},[v(o,{id:`start-${c.id}-${m}`,modelValue:d.start,"onUpdate:modelValue":p=>d.start=p,type:"time",label:e.l10nStartPickerLabel?.(c.displayName),"hide-label":!0,class:"start-date",onChange:i.onChangeSlots},null,8,["id","modelValue","onUpdate:modelValue","label","onChange"]),it("span",N0,tt(e.l10nTo),1),v(o,{id:`end-${c.id}-${m}`,modelValue:d.end,"onUpdate:modelValue":p=>d.end=p,type:"time",label:e.l10nEndPickerLabel?.(c.displayName),"hide-label":!0,class:"end-date",onChange:i.onChangeSlots},null,8,["id","modelValue","onUpdate:modelValue","label","onChange"]),(B(),Bt(l,{key:`slot-${c.id}-${m}-btn`,type:"tertiary",class:"button","aria-label":e.l10nDeleteSlot,title:e.l10nDeleteSlot,onClick:p=>i.removeSlot(c,m)},{icon:et(()=>[v(n,{size:20})]),_:2},1032,["aria-label","title","onClick"]))]))),128))]),c.slots.length===0?(B(),j("span",x0,tt(e.l10nEmptyDay),1)):le("",!0)])),(B(),Bt(l,{key:`add-slot-${c.id}`,disabled:e.loading,class:"add-another button",title:e.l10nAddSlot,"aria-label":e.l10nAddSlot,onClick:d=>i.addSlot(c)},{icon:et(()=>[v(u,{size:20})]),_:2},1032,["disabled","title","aria-label","onClick"]))]))),128))],8,v0)}const k0=C0(Y0,[["render",I0],["__scopeId","data-v-3ef03e87"]]),B0=Ee().detectUser().setApp("@nextcloud/calendar-availability-vue").build();function P0(){return{MO:[],TU:[],WE:[],TH:[],FR:[],SA:[],SU:[]}}function L0(a){const t=L.parse(a),e=new L.Component(t),s=e.getFirstSubcomponent("vavailability");let r;const i=e.getFirstSubcomponent("vtimezone");i&&(r=i.getFirstProperty("tzid").getFirstValue());const o=s.getAllSubcomponents("available"),n=P0();return o.forEach(l=>{const u=l.getFirstProperty("dtstart").getFirstValue(),c=l.getFirstProperty("dtend").getFirstValue(),d=l.getFirstProperty("rrule"),m=new Date;m.setHours(u.hour,u.minute,0,0);const p=new Date;if(p.setHours(c.hour,c.minute,0,0),d.getFirstValue().freq!=="WEEKLY"){B0.warn("rrule not supported",{rrule:d.toICALString()});return}d.getFirstValue().getComponent("BYDAY").forEach(y=>{n[y].push({start:m.getTime()/1e3,end:p.getTime()/1e3})})}),{slots:n,timezoneId:r}}function z0(a,t){const e=new L.Component("vcalendar");e.addPropertyWithValue("prodid","Nextcloud DAV app");const s=We.getZoneString(t);if(s){const o=new L.Component(L.parse(s));e.addSubcomponent(o)}else{const o=new L.Component("vtimezone");o.addPropertyWithValue("tzid",t),e.addSubcomponent(o)}const r=new L.Component("vavailability"),i=a.reduce((o,n)=>{const l=new Date(n.start*1e3),u=new Date(n.end*1e3),c=[l.getHours(),l.getMinutes(),u.getHours(),u.getMinutes()].join("-");return{...o,[c]:[...o[c]??[],n]}},{});return Object.keys(i).map(o=>{const n=i[o],l=n[0].start,u=n[0].end,c=n.map(m=>m.day).filter((m,p,y)=>y.indexOf(m)===p),d=new L.Component("available");return d.addPropertyWithValue("dtstart",L.Time.fromJSDate(new Date(l*1e3),!1)).setParameter("tzid",t),d.addPropertyWithValue("dtend",L.Time.fromJSDate(new Date(u*1e3),!1)).setParameter("tzid",t),d.addPropertyWithValue("uid",U0()),d.addPropertyWithValue("rrule",{freq:"WEEKLY",byday:c}),d}).map(r.addSubcomponent.bind(r)),e.addSubcomponent(r),e.toString()}let Ut;function Te(){if(!Ut){const a=Ce(`dav/calendars/${Pt().uid}`);Ut=Ie(a);const t=e=>{Ut.setHeaders({"X-Requested-With":"XMLHttpRequest",requesttoken:e??""})};be(t),t(_e())}return Ut}function V0(){return{MO:[],TU:[],WE:[],TH:[],FR:[],SA:[],SU:[]}}async function H0(){const a=await Te().customRequest("inbox",{method:"PROPFIND",data:` +`,Binary:Mt,Component:z,ComponentParser:A0,Duration:M,Event:Tt,Period:K,Property:ot,Recur:w,RecurExpansion:pe,RecurIterator:R,Time:h,Timezone:T,TimezoneService:Ot,UtcOffset:V,VCardTime:Q,parse:g,stringify:_,design:b,helpers:e0};const Y=[];for(let a=0;a<256;++a)Y.push((a+256).toString(16).slice(1));function g0(a,t=0){return(Y[a[t+0]]+Y[a[t+1]]+Y[a[t+2]]+Y[a[t+3]]+"-"+Y[a[t+4]]+Y[a[t+5]]+"-"+Y[a[t+6]]+Y[a[t+7]]+"-"+Y[a[t+8]]+Y[a[t+9]]+"-"+Y[a[t+10]]+Y[a[t+11]]+Y[a[t+12]]+Y[a[t+13]]+Y[a[t+14]]+Y[a[t+15]]).toLowerCase()}let kt;const D0=new Uint8Array(16);function E0(){if(!kt){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");kt=crypto.getRandomValues.bind(crypto)}return kt(D0)}const _0=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),oe={randomUUID:_0};function b0(a,t,e){a=a||{};const s=a.random??a.rng?.()??E0();if(s.length<16)throw new Error("Random bytes length must be >= 16");return s[6]=s[6]&15|64,s[8]=s[8]&63|128,g0(s)}function U0(a,t,e){return oe.randomUUID&&!a?oe.randomUUID():b0(a)}const C0=(a,t)=>{const e=a.__vccOpts||a;for(const[s,r]of t)e[s]=r;return e},Y0={name:"CalendarAvailability",components:{NcDateTimePickerNative:ce,NcButton:Ht,IconAdd:Oe,IconDelete:Me},props:{slots:{type:Object,required:!0},loading:{type:Boolean,default:!1},l10nTo:{type:String,required:!0},l10nDeleteSlot:{type:String,required:!0},l10nEmptyDay:{type:String,required:!0},l10nAddSlot:{type:String,required:!0},l10nWeekDayListLabel:{type:String,default:"Weekdays"},l10nMonday:{type:String,required:!0},l10nTuesday:{type:String,required:!0},l10nWednesday:{type:String,required:!0},l10nThursday:{type:String,required:!0},l10nFriday:{type:String,required:!0},l10nSaturday:{type:String,required:!0},l10nSunday:{type:String,required:!0},l10nStartPickerLabel:{type:Function,default:a=>`Pick a start time for ${a}`},l10nEndPickerLabel:{type:Function,default:a=>`Pick a end time for ${a}`}},data(){return{internalSlots:this.slotsToInternalData(this.slots)}},watch:{slots(){this.internalSlots=this.slotsToInternalData(this.slots)}},methods:{timeStampSlotsToDateObjectSlots(a){return a.map(t=>({start:new Date(t.start*1e3),end:new Date(t.end*1e3)}))},slotsToInternalData(){const a=[{id:"MO",displayName:this.l10nMonday,slots:this.timeStampSlotsToDateObjectSlots(this.slots.MO)},{id:"TU",displayName:this.l10nTuesday,slots:this.timeStampSlotsToDateObjectSlots(this.slots.TU)},{id:"WE",displayName:this.l10nWednesday,slots:this.timeStampSlotsToDateObjectSlots(this.slots.WE)},{id:"TH",displayName:this.l10nThursday,slots:this.timeStampSlotsToDateObjectSlots(this.slots.TH)},{id:"FR",displayName:this.l10nFriday,slots:this.timeStampSlotsToDateObjectSlots(this.slots.FR)},{id:"SA",displayName:this.l10nSaturday,slots:this.timeStampSlotsToDateObjectSlots(this.slots.SA)}],t={id:"SU",displayName:this.l10nSunday,slots:this.timeStampSlotsToDateObjectSlots(this.slots.SU)};return Ne()===1?[...a,t]:[t,...a]},internalDataToSlots(){const a={};return this.internalSlots.forEach(({id:t,slots:e})=>{a[t]=e.map(s=>({start:Math.round(s.start.getTime()/1e3),end:Math.round(s.end.getTime()/1e3)}))}),a},addSlot(a){const t=new Date;t.setHours(9,0,0,0);const e=new Date;e.setHours(17,0,0,0),a.slots.push({start:t,end:e}),this.onChangeSlots()},removeSlot(a,t){a.slots.splice(t,1),this.onChangeSlots()},onChangeSlots(){this.$emit("update:slots",this.internalDataToSlots())}}},v0=["aria-label"],O0={class:"label-weekday"},w0=["id"],M0={class:"availability-slot-group"},N0={class:"to-text"},x0={key:0,class:"empty-content"};function I0(a,t,e,s,r,i){const o=G("NcDateTimePickerNative"),n=G("IconDelete"),l=G("NcButton"),u=G("IconAdd");return B(),j("ul",{class:"week-day-container","aria-label":e.l10nWeekDayListLabel},[(B(!0),j(Wt,null,Ft(r.internalSlots,c=>(B(),j("li",{key:`day-label-${c.id}`,class:"day-container"},[it("div",O0,[it("span",{id:c.displayName+"-label"},tt(c.displayName),9,w0)]),(B(),j("div",{key:`day-slots-${c.id}`,class:"availability-slots"},[it("div",M0,[(B(!0),j(Wt,null,Ft(c.slots,(d,m)=>(B(),j("div",{key:`slot-${c.id}-${m}`,class:"availability-slot"},[v(o,{id:`start-${c.id}-${m}`,modelValue:d.start,"onUpdate:modelValue":p=>d.start=p,type:"time",label:e.l10nStartPickerLabel?.(c.displayName),"hide-label":!0,class:"start-date",onChange:i.onChangeSlots},null,8,["id","modelValue","onUpdate:modelValue","label","onChange"]),it("span",N0,tt(e.l10nTo),1),v(o,{id:`end-${c.id}-${m}`,modelValue:d.end,"onUpdate:modelValue":p=>d.end=p,type:"time",label:e.l10nEndPickerLabel?.(c.displayName),"hide-label":!0,class:"end-date",onChange:i.onChangeSlots},null,8,["id","modelValue","onUpdate:modelValue","label","onChange"]),(B(),Bt(l,{key:`slot-${c.id}-${m}-btn`,type:"tertiary",class:"button","aria-label":e.l10nDeleteSlot,title:e.l10nDeleteSlot,onClick:p=>i.removeSlot(c,m)},{icon:et(()=>[v(n,{size:20})]),_:2},1032,["aria-label","title","onClick"]))]))),128))]),c.slots.length===0?(B(),j("span",x0,tt(e.l10nEmptyDay),1)):le("",!0)])),(B(),Bt(l,{key:`add-slot-${c.id}`,disabled:e.loading,class:"add-another button",title:e.l10nAddSlot,"aria-label":e.l10nAddSlot,onClick:d=>i.addSlot(c)},{icon:et(()=>[v(u,{size:20})]),_:2},1032,["disabled","title","aria-label","onClick"]))]))),128))],8,v0)}const k0=C0(Y0,[["render",I0],["__scopeId","data-v-3ef03e87"]]),B0=Ee().detectUser().setApp("@nextcloud/calendar-availability-vue").build();function P0(){return{MO:[],TU:[],WE:[],TH:[],FR:[],SA:[],SU:[]}}function L0(a){const t=L.parse(a),e=new L.Component(t),s=e.getFirstSubcomponent("vavailability");let r;const i=e.getFirstSubcomponent("vtimezone");i&&(r=i.getFirstProperty("tzid").getFirstValue());const o=s.getAllSubcomponents("available"),n=P0();return o.forEach(l=>{const u=l.getFirstProperty("dtstart").getFirstValue(),c=l.getFirstProperty("dtend").getFirstValue(),d=l.getFirstProperty("rrule"),m=new Date;m.setHours(u.hour,u.minute,0,0);const p=new Date;if(p.setHours(c.hour,c.minute,0,0),d.getFirstValue().freq!=="WEEKLY"){B0.warn("rrule not supported",{rrule:d.toICALString()});return}d.getFirstValue().getComponent("BYDAY").forEach(y=>{n[y].push({start:m.getTime()/1e3,end:p.getTime()/1e3})})}),{slots:n,timezoneId:r}}function z0(a,t){const e=new L.Component("vcalendar");e.addPropertyWithValue("prodid","Nextcloud DAV app");const s=We.getZoneString(t);if(s){const o=new L.Component(L.parse(s));e.addSubcomponent(o)}else{const o=new L.Component("vtimezone");o.addPropertyWithValue("tzid",t),e.addSubcomponent(o)}const r=new L.Component("vavailability"),i=a.reduce((o,n)=>{const l=new Date(n.start*1e3),u=new Date(n.end*1e3),c=[l.getHours(),l.getMinutes(),u.getHours(),u.getMinutes()].join("-");return{...o,[c]:[...o[c]??[],n]}},{});return Object.keys(i).map(o=>{const n=i[o],l=n[0].start,u=n[0].end,c=n.map(m=>m.day).filter((m,p,y)=>y.indexOf(m)===p),d=new L.Component("available");return d.addPropertyWithValue("dtstart",L.Time.fromJSDate(new Date(l*1e3),!1)).setParameter("tzid",t),d.addPropertyWithValue("dtend",L.Time.fromJSDate(new Date(u*1e3),!1)).setParameter("tzid",t),d.addPropertyWithValue("uid",U0()),d.addPropertyWithValue("rrule",{freq:"WEEKLY",byday:c}),d}).map(r.addSubcomponent.bind(r)),e.addSubcomponent(r),e.toString()}let Ut;function Te(){if(!Ut){const a=Ue(`dav/calendars/${Pt().uid}`);Ut=Ie(a);const t=e=>{Ut.setHeaders({"X-Requested-With":"XMLHttpRequest",requesttoken:e??""})};be(t),t(_e())}return Ut}function V0(){return{MO:[],TU:[],WE:[],TH:[],FR:[],SA:[],SU:[]}}async function H0(){const a=await Te().customRequest("inbox",{method:"PROPFIND",data:` diff --git a/dist/dav-settings-personal-availability.mjs.map b/dist/dav-settings-personal-availability.mjs.map index aa048da007657..aef859793cae1 100644 --- a/dist/dav-settings-personal-availability.mjs.map +++ b/dist/dav-settings-personal-availability.mjs.map @@ -1 +1 @@ -{"version":3,"file":"dav-settings-personal-availability.mjs","sources":["../build/frontend/apps/dav/src/utils/date.ts","../build/frontend/apps/dav/src/components/AbsenceForm.vue","../node_modules/icalzone/dist/zones.js","../node_modules/icalzone/dist/index.js","../node_modules/ical.js/dist/ical.js","../node_modules/@nextcloud/calendar-availability-vue/node_modules/uuid/dist-browser/stringify.js","../node_modules/@nextcloud/calendar-availability-vue/node_modules/uuid/dist-browser/rng.js","../node_modules/@nextcloud/calendar-availability-vue/node_modules/uuid/dist-browser/native.js","../node_modules/@nextcloud/calendar-availability-vue/node_modules/uuid/dist-browser/v4.js","../node_modules/@nextcloud/calendar-availability-vue/dist/index.mjs","../build/frontend/apps/dav/src/dav/client.ts","../build/frontend/apps/dav/src/service/CalendarService.ts","../build/frontend/apps/dav/src/service/PreferenceService.ts","../build/frontend/apps/dav/src/components/AvailabilityForm.vue","../build/frontend/apps/dav/src/views/UserAvailability.vue","../build/frontend/apps/dav/src/settings-personal-availability.ts"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * Format a date as 'YYYY-MM-DD'.\n *\n * @param date - A date instance to format.\n */\nexport function formatDateAsYMD(date: Date): `${number}-${number}-${number}` {\n\tconst year = date.getFullYear()\n\tconst month = (date.getMonth() + 1).toString().padStart(2, '0') as `${number}`\n\tconst day = date.getDate().toString().padStart(2, '0') as `${number}`\n\treturn `${year}-${month}-${day}`\n}\n","\n\n\n\n\n\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.zonesMap = exports.defaultStart = void 0;\nexports.defaultStart = \"19700101T000000\";\nexports.zonesMap = new Map([\n [\n \"Africa/Abidjan\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Africa/Accra\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Africa/Addis_Ababa\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"EAT\"\n }\n }\n ],\n [\n \"Africa/Algiers\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"CET\"\n }\n }\n ],\n [\n \"Africa/Asmara\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"EAT\"\n }\n }\n ],\n [\n \"Africa/Bamako\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Africa/Bangui\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"WAT\"\n }\n }\n ],\n [\n \"Africa/Banjul\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Africa/Bissau\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Africa/Blantyre\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"CAT\"\n }\n }\n ],\n [\n \"Africa/Brazzaville\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"WAT\"\n }\n }\n ],\n [\n \"Africa/Bujumbura\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"CAT\"\n }\n }\n ],\n [\n \"Africa/Cairo\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"EET\"\n }\n }\n ],\n [\n \"Africa/Casablanca\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"+01\"\n }\n }\n ],\n [\n \"Africa/Ceuta\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Africa/Conakry\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Africa/Dakar\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Africa/Dar_es_Salaam\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"EAT\"\n }\n }\n ],\n [\n \"Africa/Djibouti\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"EAT\"\n }\n }\n ],\n [\n \"Africa/Douala\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"WAT\"\n }\n }\n ],\n [\n \"Africa/El_Aaiun\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"+01\"\n }\n }\n ],\n [\n \"Africa/Freetown\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Africa/Gaborone\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"CAT\"\n }\n }\n ],\n [\n \"Africa/Harare\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"CAT\"\n }\n }\n ],\n [\n \"Africa/Johannesburg\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"SAST\"\n }\n }\n ],\n [\n \"Africa/Juba\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"EAT\"\n }\n }\n ],\n [\n \"Africa/Kampala\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"EAT\"\n }\n }\n ],\n [\n \"Africa/Khartoum\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"CAT\"\n }\n }\n ],\n [\n \"Africa/Kigali\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"CAT\"\n }\n }\n ],\n [\n \"Africa/Kinshasa\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"WAT\"\n }\n }\n ],\n [\n \"Africa/Lagos\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"WAT\"\n }\n }\n ],\n [\n \"Africa/Libreville\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"WAT\"\n }\n }\n ],\n [\n \"Africa/Lome\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Africa/Luanda\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"WAT\"\n }\n }\n ],\n [\n \"Africa/Lubumbashi\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"CAT\"\n }\n }\n ],\n [\n \"Africa/Lusaka\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"CAT\"\n }\n }\n ],\n [\n \"Africa/Malabo\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"WAT\"\n }\n }\n ],\n [\n \"Africa/Maputo\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"CAT\"\n }\n }\n ],\n [\n \"Africa/Maseru\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"SAST\"\n }\n }\n ],\n [\n \"Africa/Mbabane\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"SAST\"\n }\n }\n ],\n [\n \"Africa/Mogadishu\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"EAT\"\n }\n }\n ],\n [\n \"Africa/Monrovia\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Africa/Nairobi\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"EAT\"\n }\n }\n ],\n [\n \"Africa/Ndjamena\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"WAT\"\n }\n }\n ],\n [\n \"Africa/Niamey\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"WAT\"\n }\n }\n ],\n [\n \"Africa/Nouakchott\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Africa/Ouagadougou\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Africa/Porto-Novo\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"WAT\"\n }\n }\n ],\n [\n \"Africa/Sao_Tome\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"WAT\"\n }\n }\n ],\n [\n \"Africa/Tripoli\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"EET\"\n }\n }\n ],\n [\n \"Africa/Tunis\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"CET\"\n }\n }\n ],\n [\n \"Africa/Windhoek\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"CAT\"\n }\n }\n ],\n [\n \"America/Adak\",\n {\n \"s\": {\n \"f\": \"-0900\",\n \"t\": \"-1000\",\n \"n\": \"HST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-1000\",\n \"t\": \"-0900\",\n \"n\": \"HDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Anchorage\",\n {\n \"s\": {\n \"f\": \"-0800\",\n \"t\": \"-0900\",\n \"n\": \"AKST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0900\",\n \"t\": \"-0800\",\n \"n\": \"AKDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Anguilla\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Antigua\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Araguaina\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Argentina/Buenos_Aires\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Argentina/Catamarca\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Argentina/Cordoba\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Argentina/Jujuy\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Argentina/La_Rioja\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Argentina/Mendoza\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Argentina/Rio_Gallegos\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Argentina/Salta\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Argentina/San_Juan\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Argentina/San_Luis\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Argentina/Tucuman\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Argentina/Ushuaia\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Aruba\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Asuncion\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"t\": \"-0400\",\n \"n\": \"-04\",\n \"s\": \"19700322T000000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"4SU\"\n }\n },\n \"d\": {\n \"f\": \"-0400\",\n \"t\": \"-0300\",\n \"n\": \"-03\",\n \"s\": \"19701004T000000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"America/Atikokan\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"n\": \"EST\"\n }\n }\n ],\n [\n \"America/Bahia_Banderas\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700405T020000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"America/Bahia\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Barbados\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Belem\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Belize\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"n\": \"CST\"\n }\n }\n ],\n [\n \"America/Blanc-Sablon\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Boa_Vista\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"-04\"\n }\n }\n ],\n [\n \"America/Bogota\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"n\": \"-05\"\n }\n }\n ],\n [\n \"America/Boise\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"t\": \"-0700\",\n \"n\": \"MST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0700\",\n \"t\": \"-0600\",\n \"n\": \"MDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Cambridge_Bay\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"t\": \"-0700\",\n \"n\": \"MST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0700\",\n \"t\": \"-0600\",\n \"n\": \"MDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Campo_Grande\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"-04\",\n \"s\": \"19700215T000000\",\n \"r\": {\n \"m\": 2,\n \"d\": \"3SU\"\n }\n },\n \"d\": {\n \"f\": \"-0400\",\n \"t\": \"-0300\",\n \"n\": \"-03\",\n \"s\": \"19701101T000000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"America/Cancun\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"n\": \"EST\"\n }\n }\n ],\n [\n \"America/Caracas\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"-04\"\n }\n }\n ],\n [\n \"America/Cayenne\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Cayman\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"n\": \"EST\"\n }\n }\n ],\n [\n \"America/Chicago\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Chihuahua\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"t\": \"-0700\",\n \"n\": \"MST\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0700\",\n \"t\": \"-0600\",\n \"n\": \"MDT\",\n \"s\": \"19700405T020000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"America/Costa_Rica\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"n\": \"CST\"\n }\n }\n ],\n [\n \"America/Creston\",\n {\n \"s\": {\n \"f\": \"-0700\",\n \"n\": \"MST\"\n }\n }\n ],\n [\n \"America/Cuiaba\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"-04\",\n \"s\": \"19700215T000000\",\n \"r\": {\n \"m\": 2,\n \"d\": \"3SU\"\n }\n },\n \"d\": {\n \"f\": \"-0400\",\n \"t\": \"-0300\",\n \"n\": \"-03\",\n \"s\": \"19701101T000000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"America/Curacao\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Danmarkshavn\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"America/Dawson_Creek\",\n {\n \"s\": {\n \"f\": \"-0700\",\n \"n\": \"MST\"\n }\n }\n ],\n [\n \"America/Dawson\",\n {\n \"s\": {\n \"f\": \"-0700\",\n \"t\": \"-0800\",\n \"n\": \"PST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0800\",\n \"t\": \"-0700\",\n \"n\": \"PDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Denver\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"t\": \"-0700\",\n \"n\": \"MST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0700\",\n \"t\": \"-0600\",\n \"n\": \"MDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Detroit\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Dominica\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Edmonton\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"t\": \"-0700\",\n \"n\": \"MST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0700\",\n \"t\": \"-0600\",\n \"n\": \"MDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Eirunepe\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"n\": \"-05\"\n }\n }\n ],\n [\n \"America/El_Salvador\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"n\": \"CST\"\n }\n }\n ],\n [\n \"America/Fort_Nelson\",\n {\n \"s\": {\n \"f\": \"-0700\",\n \"n\": \"MST\"\n }\n }\n ],\n [\n \"America/Fortaleza\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Glace_Bay\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"t\": \"-0400\",\n \"n\": \"AST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0400\",\n \"t\": \"-0300\",\n \"n\": \"ADT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Godthab\",\n {\n \"s\": {\n \"f\": \"-0200\",\n \"t\": \"-0300\",\n \"n\": \"-03\",\n \"s\": \"19701024T230000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SA\"\n }\n },\n \"d\": {\n \"f\": \"-0300\",\n \"t\": \"-0200\",\n \"n\": \"-02\",\n \"s\": \"19700328T220000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SA\"\n }\n }\n }\n ],\n [\n \"America/Goose_Bay\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"t\": \"-0400\",\n \"n\": \"AST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0400\",\n \"t\": \"-0300\",\n \"n\": \"ADT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Grand_Turk\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Grenada\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Guadeloupe\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Guatemala\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"n\": \"CST\"\n }\n }\n ],\n [\n \"America/Guayaquil\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"n\": \"-05\"\n }\n }\n ],\n [\n \"America/Guyana\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"-04\"\n }\n }\n ],\n [\n \"America/Halifax\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"t\": \"-0400\",\n \"n\": \"AST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0400\",\n \"t\": \"-0300\",\n \"n\": \"ADT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Havana\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"CST\",\n \"s\": \"19701101T010000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"CDT\",\n \"s\": \"19700308T000000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Hermosillo\",\n {\n \"s\": {\n \"f\": \"-0700\",\n \"n\": \"MST\"\n }\n }\n ],\n [\n \"America/Indiana/Indianapolis\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Indiana/Knox\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Indiana/Marengo\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Indiana/Petersburg\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Indiana/Tell_City\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Indiana/Vevay\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Indiana/Vincennes\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Indiana/Winamac\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Inuvik\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"t\": \"-0700\",\n \"n\": \"MST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0700\",\n \"t\": \"-0600\",\n \"n\": \"MDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Iqaluit\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Jamaica\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"n\": \"EST\"\n }\n }\n ],\n [\n \"America/Juneau\",\n {\n \"s\": {\n \"f\": \"-0800\",\n \"t\": \"-0900\",\n \"n\": \"AKST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0900\",\n \"t\": \"-0800\",\n \"n\": \"AKDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Kentucky/Louisville\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Kentucky/Monticello\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Kralendijk\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/La_Paz\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"-04\"\n }\n }\n ],\n [\n \"America/Lima\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"n\": \"-05\"\n }\n }\n ],\n [\n \"America/Los_Angeles\",\n {\n \"s\": {\n \"f\": \"-0700\",\n \"t\": \"-0800\",\n \"n\": \"PST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0800\",\n \"t\": \"-0700\",\n \"n\": \"PDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Lower_Princes\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Maceio\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Managua\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"n\": \"CST\"\n }\n }\n ],\n [\n \"America/Manaus\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"-04\"\n }\n }\n ],\n [\n \"America/Marigot\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Martinique\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Matamoros\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Mazatlan\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"t\": \"-0700\",\n \"n\": \"MST\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0700\",\n \"t\": \"-0600\",\n \"n\": \"MDT\",\n \"s\": \"19700405T020000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"America/Menominee\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Merida\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700405T020000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"America/Metlakatla\",\n {\n \"s\": {\n \"f\": \"-0800\",\n \"t\": \"-0900\",\n \"n\": \"AKST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0900\",\n \"t\": \"-0800\",\n \"n\": \"AKDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Mexico_City\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700405T020000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"America/Miquelon\",\n {\n \"s\": {\n \"f\": \"-0200\",\n \"t\": \"-0300\",\n \"n\": \"-03\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0300\",\n \"t\": \"-0200\",\n \"n\": \"-02\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Moncton\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"t\": \"-0400\",\n \"n\": \"AST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0400\",\n \"t\": \"-0300\",\n \"n\": \"ADT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Monterrey\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700405T020000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"America/Montevideo\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Montserrat\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Nassau\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/New_York\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Nipigon\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Nome\",\n {\n \"s\": {\n \"f\": \"-0800\",\n \"t\": \"-0900\",\n \"n\": \"AKST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0900\",\n \"t\": \"-0800\",\n \"n\": \"AKDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Noronha\",\n {\n \"s\": {\n \"f\": \"-0200\",\n \"n\": \"-02\"\n }\n }\n ],\n [\n \"America/North_Dakota/Beulah\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/North_Dakota/Center\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/North_Dakota/New_Salem\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Ojinaga\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"t\": \"-0700\",\n \"n\": \"MST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0700\",\n \"t\": \"-0600\",\n \"n\": \"MDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Panama\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"n\": \"EST\"\n }\n }\n ],\n [\n \"America/Pangnirtung\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Paramaribo\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Phoenix\",\n {\n \"s\": {\n \"f\": \"-0700\",\n \"n\": \"MST\"\n }\n }\n ],\n [\n \"America/Port_of_Spain\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Port-au-Prince\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Porto_Velho\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"-04\"\n }\n }\n ],\n [\n \"America/Puerto_Rico\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Punta_Arenas\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Rainy_River\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Rankin_Inlet\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Recife\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Regina\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"n\": \"CST\"\n }\n }\n ],\n [\n \"America/Resolute\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Rio_Branco\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"n\": \"-05\"\n }\n }\n ],\n [\n \"America/Santarem\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Santiago\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"t\": \"-0400\",\n \"n\": \"-04\",\n \"s\": \"19700405T000000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0400\",\n \"t\": \"-0300\",\n \"n\": \"-03\",\n \"s\": \"19700906T000000\",\n \"r\": {\n \"m\": 9,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"America/Santo_Domingo\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Sao_Paulo\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\",\n \"s\": \"19700215T000000\",\n \"r\": {\n \"m\": 2,\n \"d\": \"3SU\"\n }\n },\n \"d\": {\n \"f\": \"-0300\",\n \"t\": \"-0200\",\n \"n\": \"-02\",\n \"s\": \"19701101T000000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"America/Scoresbysund\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"t\": \"-0100\",\n \"n\": \"-01\",\n \"s\": \"19701025T010000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0100\",\n \"t\": \"+0000\",\n \"n\": \"+00\",\n \"s\": \"19700329T000000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"America/Sitka\",\n {\n \"s\": {\n \"f\": \"-0800\",\n \"t\": \"-0900\",\n \"n\": \"AKST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0900\",\n \"t\": \"-0800\",\n \"n\": \"AKDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/St_Barthelemy\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/St_Johns\",\n {\n \"s\": {\n \"f\": \"-0230\",\n \"t\": \"-0330\",\n \"n\": \"NST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0330\",\n \"t\": \"-0230\",\n \"n\": \"NDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/St_Kitts\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/St_Lucia\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/St_Thomas\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/St_Vincent\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Swift_Current\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"n\": \"CST\"\n }\n }\n ],\n [\n \"America/Tegucigalpa\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"n\": \"CST\"\n }\n }\n ],\n [\n \"America/Thule\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"t\": \"-0400\",\n \"n\": \"AST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0400\",\n \"t\": \"-0300\",\n \"n\": \"ADT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Thunder_Bay\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Tijuana\",\n {\n \"s\": {\n \"f\": \"-0700\",\n \"t\": \"-0800\",\n \"n\": \"PST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0800\",\n \"t\": \"-0700\",\n \"n\": \"PDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Toronto\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Tortola\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Vancouver\",\n {\n \"s\": {\n \"f\": \"-0700\",\n \"t\": \"-0800\",\n \"n\": \"PST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0800\",\n \"t\": \"-0700\",\n \"n\": \"PDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Whitehorse\",\n {\n \"s\": {\n \"f\": \"-0700\",\n \"t\": \"-0800\",\n \"n\": \"PST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0800\",\n \"t\": \"-0700\",\n \"n\": \"PDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Winnipeg\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Yakutat\",\n {\n \"s\": {\n \"f\": \"-0800\",\n \"t\": \"-0900\",\n \"n\": \"AKST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0900\",\n \"t\": \"-0800\",\n \"n\": \"AKDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Yellowknife\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"t\": \"-0700\",\n \"n\": \"MST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0700\",\n \"t\": \"-0600\",\n \"n\": \"MDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"Antarctica/Casey\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"+08\"\n }\n }\n ],\n [\n \"Antarctica/Davis\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"+07\"\n }\n }\n ],\n [\n \"Antarctica/DumontDUrville\",\n {\n \"s\": {\n \"f\": \"+1000\",\n \"n\": \"+10\"\n }\n }\n ],\n [\n \"Antarctica/Macquarie\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"n\": \"+11\"\n }\n }\n ],\n [\n \"Antarctica/Mawson\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"+05\"\n }\n }\n ],\n [\n \"Antarctica/McMurdo\",\n {\n \"s\": {\n \"f\": \"+1300\",\n \"t\": \"+1200\",\n \"n\": \"NZST\",\n \"s\": \"19700405T030000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"+1200\",\n \"t\": \"+1300\",\n \"n\": \"NZDT\",\n \"s\": \"19700927T020000\",\n \"r\": {\n \"m\": 9,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Antarctica/Palmer\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"Antarctica/Rothera\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"Antarctica/Syowa\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"+03\"\n }\n }\n ],\n [\n \"Antarctica/Troll\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0000\",\n \"n\": \"+00\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0000\",\n \"t\": \"+0200\",\n \"n\": \"+02\",\n \"s\": \"19700329T010000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Antarctica/Vostok\",\n {\n \"s\": {\n \"f\": \"+0600\",\n \"n\": \"+06\"\n }\n }\n ],\n [\n \"Arctic/Longyearbyen\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Asia/Aden\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"+03\"\n }\n }\n ],\n [\n \"Asia/Almaty\",\n {\n \"s\": {\n \"f\": \"+0600\",\n \"n\": \"+06\"\n }\n }\n ],\n [\n \"Asia/Amman\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701030T010000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1FR\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700326T235959\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1TH\"\n }\n }\n }\n ],\n [\n \"Asia/Anadyr\",\n {\n \"s\": {\n \"f\": \"+1200\",\n \"n\": \"+12\"\n }\n }\n ],\n [\n \"Asia/Aqtau\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"+05\"\n }\n }\n ],\n [\n \"Asia/Aqtobe\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"+05\"\n }\n }\n ],\n [\n \"Asia/Ashgabat\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"+05\"\n }\n }\n ],\n [\n \"Asia/Atyrau\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"+05\"\n }\n }\n ],\n [\n \"Asia/Baghdad\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"+03\"\n }\n }\n ],\n [\n \"Asia/Bahrain\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"+03\"\n }\n }\n ],\n [\n \"Asia/Baku\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Asia/Bangkok\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"+07\"\n }\n }\n ],\n [\n \"Asia/Barnaul\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"+07\"\n }\n }\n ],\n [\n \"Asia/Beirut\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T000000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T000000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Asia/Bishkek\",\n {\n \"s\": {\n \"f\": \"+0600\",\n \"n\": \"+06\"\n }\n }\n ],\n [\n \"Asia/Brunei\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"+08\"\n }\n }\n ],\n [\n \"Asia/Chita\",\n {\n \"s\": {\n \"f\": \"+0900\",\n \"n\": \"+09\"\n }\n }\n ],\n [\n \"Asia/Choibalsan\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"+08\"\n }\n }\n ],\n [\n \"Asia/Colombo\",\n {\n \"s\": {\n \"f\": \"+0530\",\n \"n\": \"+0530\"\n }\n }\n ],\n [\n \"Asia/Damascus\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701030T000000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1FR\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700327T000000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1FR\"\n }\n }\n }\n ],\n [\n \"Asia/Dhaka\",\n {\n \"s\": {\n \"f\": \"+0600\",\n \"n\": \"+06\"\n }\n }\n ],\n [\n \"Asia/Dili\",\n {\n \"s\": {\n \"f\": \"+0900\",\n \"n\": \"+09\"\n }\n }\n ],\n [\n \"Asia/Dubai\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Asia/Dushanbe\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"+05\"\n }\n }\n ],\n [\n \"Asia/Famagusta\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Asia/Gaza\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701031T010000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SA\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700328T010000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"4SA\"\n }\n }\n }\n ],\n [\n \"Asia/Hebron\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701031T010000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SA\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700328T010000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"4SA\"\n }\n }\n }\n ],\n [\n \"Asia/Ho_Chi_Minh\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"+07\"\n }\n }\n ],\n [\n \"Asia/Hong_Kong\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"HKT\"\n }\n }\n ],\n [\n \"Asia/Hovd\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"+07\"\n }\n }\n ],\n [\n \"Asia/Irkutsk\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"+08\"\n }\n }\n ],\n [\n \"Asia/Istanbul\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"+03\"\n }\n }\n ],\n [\n \"Asia/Jakarta\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"WIB\"\n }\n }\n ],\n [\n \"Asia/Jayapura\",\n {\n \"s\": {\n \"f\": \"+0900\",\n \"n\": \"WIT\"\n }\n }\n ],\n [\n \"Asia/Jerusalem\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"IST\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"IDT\",\n \"s\": \"19700327T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1FR\"\n }\n }\n }\n ],\n [\n \"Asia/Kabul\",\n {\n \"s\": {\n \"f\": \"+0430\",\n \"n\": \"+0430\"\n }\n }\n ],\n [\n \"Asia/Kamchatka\",\n {\n \"s\": {\n \"f\": \"+1200\",\n \"n\": \"+12\"\n }\n }\n ],\n [\n \"Asia/Karachi\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"PKT\"\n }\n }\n ],\n [\n \"Asia/Kathmandu\",\n {\n \"s\": {\n \"f\": \"+0545\",\n \"n\": \"+0545\"\n }\n }\n ],\n [\n \"Asia/Khandyga\",\n {\n \"s\": {\n \"f\": \"+0900\",\n \"n\": \"+09\"\n }\n }\n ],\n [\n \"Asia/Kolkata\",\n {\n \"s\": {\n \"f\": \"+0530\",\n \"n\": \"IST\"\n }\n }\n ],\n [\n \"Asia/Krasnoyarsk\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"+07\"\n }\n }\n ],\n [\n \"Asia/Kuala_Lumpur\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"+08\"\n }\n }\n ],\n [\n \"Asia/Kuching\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"+08\"\n }\n }\n ],\n [\n \"Asia/Kuwait\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"+03\"\n }\n }\n ],\n [\n \"Asia/Macau\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"CST\"\n }\n }\n ],\n [\n \"Asia/Magadan\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"n\": \"+11\"\n }\n }\n ],\n [\n \"Asia/Makassar\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"WITA\"\n }\n }\n ],\n [\n \"Asia/Manila\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"PST\"\n }\n }\n ],\n [\n \"Asia/Muscat\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Asia/Nicosia\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Asia/Novokuznetsk\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"+07\"\n }\n }\n ],\n [\n \"Asia/Novosibirsk\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"+07\"\n }\n }\n ],\n [\n \"Asia/Omsk\",\n {\n \"s\": {\n \"f\": \"+0600\",\n \"n\": \"+06\"\n }\n }\n ],\n [\n \"Asia/Oral\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"+05\"\n }\n }\n ],\n [\n \"Asia/Phnom_Penh\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"+07\"\n }\n }\n ],\n [\n \"Asia/Pontianak\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"WIB\"\n }\n }\n ],\n [\n \"Asia/Pyongyang\",\n {\n \"s\": {\n \"f\": \"+0900\",\n \"n\": \"KST\"\n }\n }\n ],\n [\n \"Asia/Qatar\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"+03\"\n }\n }\n ],\n [\n \"Asia/Qyzylorda\",\n {\n \"s\": {\n \"f\": \"+0600\",\n \"n\": \"+06\"\n }\n }\n ],\n [\n \"Asia/Riyadh\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"+03\"\n }\n }\n ],\n [\n \"Asia/Sakhalin\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"n\": \"+11\"\n }\n }\n ],\n [\n \"Asia/Samarkand\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"+05\"\n }\n }\n ],\n [\n \"Asia/Seoul\",\n {\n \"s\": {\n \"f\": \"+0900\",\n \"n\": \"KST\"\n }\n }\n ],\n [\n \"Asia/Shanghai\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"CST\"\n }\n }\n ],\n [\n \"Asia/Singapore\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"+08\"\n }\n }\n ],\n [\n \"Asia/Srednekolymsk\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"n\": \"+11\"\n }\n }\n ],\n [\n \"Asia/Taipei\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"CST\"\n }\n }\n ],\n [\n \"Asia/Tashkent\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"+05\"\n }\n }\n ],\n [\n \"Asia/Tbilisi\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Asia/Tehran\",\n {\n \"s\": {\n \"f\": \"+0430\",\n \"t\": \"+0330\",\n \"n\": \"+0330\",\n \"s\": \"19700921T000000\",\n \"r\": {\n \"m\": 9,\n \"d\": \"3SU\"\n }\n },\n \"d\": {\n \"f\": \"+0330\",\n \"t\": \"+0430\",\n \"n\": \"+0430\",\n \"s\": \"19700321T000000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"3SU\"\n }\n }\n }\n ],\n [\n \"Asia/Thimphu\",\n {\n \"s\": {\n \"f\": \"+0600\",\n \"n\": \"+06\"\n }\n }\n ],\n [\n \"Asia/Tokyo\",\n {\n \"s\": {\n \"f\": \"+0900\",\n \"n\": \"JST\"\n }\n }\n ],\n [\n \"Asia/Tomsk\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"+07\"\n }\n }\n ],\n [\n \"Asia/Ulaanbaatar\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"+08\"\n }\n }\n ],\n [\n \"Asia/Urumqi\",\n {\n \"s\": {\n \"f\": \"+0600\",\n \"n\": \"+06\"\n }\n }\n ],\n [\n \"Asia/Ust-Nera\",\n {\n \"s\": {\n \"f\": \"+1000\",\n \"n\": \"+10\"\n }\n }\n ],\n [\n \"Asia/Vientiane\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"+07\"\n }\n }\n ],\n [\n \"Asia/Vladivostok\",\n {\n \"s\": {\n \"f\": \"+1000\",\n \"n\": \"+10\"\n }\n }\n ],\n [\n \"Asia/Yakutsk\",\n {\n \"s\": {\n \"f\": \"+0900\",\n \"n\": \"+09\"\n }\n }\n ],\n [\n \"Asia/Yangon\",\n {\n \"s\": {\n \"f\": \"+0630\",\n \"n\": \"+0630\"\n }\n }\n ],\n [\n \"Asia/Yekaterinburg\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"+05\"\n }\n }\n ],\n [\n \"Asia/Yerevan\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Atlantic/Azores\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"t\": \"-0100\",\n \"n\": \"-01\",\n \"s\": \"19701025T010000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0100\",\n \"t\": \"+0000\",\n \"n\": \"+00\",\n \"s\": \"19700329T000000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Atlantic/Bermuda\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"t\": \"-0400\",\n \"n\": \"AST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0400\",\n \"t\": \"-0300\",\n \"n\": \"ADT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"Atlantic/Canary\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"t\": \"+0000\",\n \"n\": \"WET\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0000\",\n \"t\": \"+0100\",\n \"n\": \"WEST\",\n \"s\": \"19700329T010000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Atlantic/Cape_Verde\",\n {\n \"s\": {\n \"f\": \"-0100\",\n \"n\": \"-01\"\n }\n }\n ],\n [\n \"Atlantic/Faroe\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"t\": \"+0000\",\n \"n\": \"WET\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0000\",\n \"t\": \"+0100\",\n \"n\": \"WEST\",\n \"s\": \"19700329T010000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Atlantic/Madeira\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"t\": \"+0000\",\n \"n\": \"WET\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0000\",\n \"t\": \"+0100\",\n \"n\": \"WEST\",\n \"s\": \"19700329T010000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Atlantic/Reykjavik\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Atlantic/South_Georgia\",\n {\n \"s\": {\n \"f\": \"-0200\",\n \"n\": \"-02\"\n }\n }\n ],\n [\n \"Atlantic/St_Helena\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Atlantic/Stanley\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"Australia/Adelaide\",\n {\n \"s\": {\n \"f\": \"+1030\",\n \"t\": \"+0930\",\n \"n\": \"ACST\",\n \"s\": \"19700405T030000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0930\",\n \"t\": \"+1030\",\n \"n\": \"ACDT\",\n \"s\": \"19701004T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"Australia/Brisbane\",\n {\n \"s\": {\n \"f\": \"+1000\",\n \"n\": \"AEST\"\n }\n }\n ],\n [\n \"Australia/Broken_Hill\",\n {\n \"s\": {\n \"f\": \"+1030\",\n \"t\": \"+0930\",\n \"n\": \"ACST\",\n \"s\": \"19700405T030000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0930\",\n \"t\": \"+1030\",\n \"n\": \"ACDT\",\n \"s\": \"19701004T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"Australia/Currie\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"t\": \"+1000\",\n \"n\": \"AEST\",\n \"s\": \"19700405T030000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"+1000\",\n \"t\": \"+1100\",\n \"n\": \"AEDT\",\n \"s\": \"19701004T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"Australia/Darwin\",\n {\n \"s\": {\n \"f\": \"+0930\",\n \"n\": \"ACST\"\n }\n }\n ],\n [\n \"Australia/Eucla\",\n {\n \"s\": {\n \"f\": \"+0845\",\n \"n\": \"+0845\"\n }\n }\n ],\n [\n \"Australia/Hobart\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"t\": \"+1000\",\n \"n\": \"AEST\",\n \"s\": \"19700405T030000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"+1000\",\n \"t\": \"+1100\",\n \"n\": \"AEDT\",\n \"s\": \"19701004T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"Australia/Lindeman\",\n {\n \"s\": {\n \"f\": \"+1000\",\n \"n\": \"AEST\"\n }\n }\n ],\n [\n \"Australia/Lord_Howe\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"t\": \"+1030\",\n \"n\": \"+1030\",\n \"s\": \"19700405T020000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"+1030\",\n \"t\": \"+1100\",\n \"n\": \"+11\",\n \"s\": \"19701004T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"Australia/Melbourne\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"t\": \"+1000\",\n \"n\": \"AEST\",\n \"s\": \"19700405T030000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"+1000\",\n \"t\": \"+1100\",\n \"n\": \"AEDT\",\n \"s\": \"19701004T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"Australia/Perth\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"AWST\"\n }\n }\n ],\n [\n \"Australia/Sydney\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"t\": \"+1000\",\n \"n\": \"AEST\",\n \"s\": \"19700405T030000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"+1000\",\n \"t\": \"+1100\",\n \"n\": \"AEDT\",\n \"s\": \"19701004T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"Etc/GMT-0\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Etc/GMT-1\",\n {\n \"s\": {\n \"f\": \"-0100\",\n \"n\": \"-01\"\n }\n }\n ],\n [\n \"Etc/GMT-10\",\n {\n \"s\": {\n \"f\": \"-1000\",\n \"n\": \"-10\"\n }\n }\n ],\n [\n \"Etc/GMT-11\",\n {\n \"s\": {\n \"f\": \"-1100\",\n \"n\": \"-11\"\n }\n }\n ],\n [\n \"Etc/GMT-12\",\n {\n \"s\": {\n \"f\": \"-1200\",\n \"n\": \"-12\"\n }\n }\n ],\n [\n \"Etc/GMT-2\",\n {\n \"s\": {\n \"f\": \"-0200\",\n \"n\": \"-02\"\n }\n }\n ],\n [\n \"Etc/GMT-3\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"Etc/GMT-4\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"-04\"\n }\n }\n ],\n [\n \"Etc/GMT-5\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"n\": \"-05\"\n }\n }\n ],\n [\n \"Etc/GMT-6\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"n\": \"-06\"\n }\n }\n ],\n [\n \"Etc/GMT-7\",\n {\n \"s\": {\n \"f\": \"-0700\",\n \"n\": \"-07\"\n }\n }\n ],\n [\n \"Etc/GMT-8\",\n {\n \"s\": {\n \"f\": \"-0800\",\n \"n\": \"-08\"\n }\n }\n ],\n [\n \"Etc/GMT-9\",\n {\n \"s\": {\n \"f\": \"-0900\",\n \"n\": \"-09\"\n }\n }\n ],\n [\n \"Etc/GMT\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Etc/GMT+0\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Etc/GMT+1\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"+01\"\n }\n }\n ],\n [\n \"Etc/GMT+10\",\n {\n \"s\": {\n \"f\": \"+1000\",\n \"n\": \"+10\"\n }\n }\n ],\n [\n \"Etc/GMT+11\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"n\": \"+11\"\n }\n }\n ],\n [\n \"Etc/GMT+12\",\n {\n \"s\": {\n \"f\": \"+1200\",\n \"n\": \"+12\"\n }\n }\n ],\n [\n \"Etc/GMT+13\",\n {\n \"s\": {\n \"f\": \"+1300\",\n \"n\": \"+13\"\n }\n }\n ],\n [\n \"Etc/GMT+14\",\n {\n \"s\": {\n \"f\": \"+1400\",\n \"n\": \"+14\"\n }\n }\n ],\n [\n \"Etc/GMT+2\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"+02\"\n }\n }\n ],\n [\n \"Etc/GMT+3\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"+03\"\n }\n }\n ],\n [\n \"Etc/GMT+4\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Etc/GMT+5\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"+05\"\n }\n }\n ],\n [\n \"Etc/GMT+6\",\n {\n \"s\": {\n \"f\": \"+0600\",\n \"n\": \"+06\"\n }\n }\n ],\n [\n \"Etc/GMT+7\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"+07\"\n }\n }\n ],\n [\n \"Etc/GMT+8\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"+08\"\n }\n }\n ],\n [\n \"Etc/GMT+9\",\n {\n \"s\": {\n \"f\": \"+0900\",\n \"n\": \"+09\"\n }\n }\n ],\n [\n \"Etc/GMT0\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Etc/Greenwich\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Etc/UCT\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"UCT\"\n }\n }\n ],\n [\n \"Etc/Universal\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"UTC\"\n }\n }\n ],\n [\n \"Etc/UTC\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"UTC\"\n }\n }\n ],\n [\n \"Etc/Zulu\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"UTC\"\n }\n }\n ],\n [\n \"Europe/Amsterdam\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Andorra\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Astrakhan\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Europe/Athens\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Belgrade\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Berlin\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Bratislava\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Brussels\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Bucharest\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Budapest\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Busingen\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Chisinau\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Copenhagen\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Dublin\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"t\": \"+0000\",\n \"n\": \"GMT\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0000\",\n \"t\": \"+0100\",\n \"n\": \"IST\",\n \"s\": \"19700329T010000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Gibraltar\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Guernsey\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"t\": \"+0000\",\n \"n\": \"GMT\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0000\",\n \"t\": \"+0100\",\n \"n\": \"BST\",\n \"s\": \"19700329T010000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Helsinki\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Isle_of_Man\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"t\": \"+0000\",\n \"n\": \"GMT\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0000\",\n \"t\": \"+0100\",\n \"n\": \"BST\",\n \"s\": \"19700329T010000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Istanbul\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"+03\"\n }\n }\n ],\n [\n \"Europe/Jersey\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"t\": \"+0000\",\n \"n\": \"GMT\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0000\",\n \"t\": \"+0100\",\n \"n\": \"BST\",\n \"s\": \"19700329T010000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Kaliningrad\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"EET\"\n }\n }\n ],\n [\n \"Europe/Kiev\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Kirov\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"+03\"\n }\n }\n ],\n [\n \"Europe/Lisbon\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"t\": \"+0000\",\n \"n\": \"WET\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0000\",\n \"t\": \"+0100\",\n \"n\": \"WEST\",\n \"s\": \"19700329T010000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Ljubljana\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/London\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"t\": \"+0000\",\n \"n\": \"GMT\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0000\",\n \"t\": \"+0100\",\n \"n\": \"BST\",\n \"s\": \"19700329T010000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Luxembourg\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Madrid\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Malta\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Mariehamn\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Minsk\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"+03\"\n }\n }\n ],\n [\n \"Europe/Monaco\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Moscow\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"MSK\"\n }\n }\n ],\n [\n \"Europe/Nicosia\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Oslo\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Paris\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Podgorica\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Prague\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Riga\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Rome\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Samara\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Europe/San_Marino\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Sarajevo\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Saratov\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Europe/Simferopol\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"MSK\"\n }\n }\n ],\n [\n \"Europe/Skopje\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Sofia\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Stockholm\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Tallinn\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Tirane\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Ulyanovsk\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Europe/Uzhgorod\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Vaduz\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Vatican\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Vienna\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Vilnius\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Volgograd\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Europe/Warsaw\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Zagreb\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Zaporozhye\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Zurich\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Indian/Antananarivo\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"EAT\"\n }\n }\n ],\n [\n \"Indian/Chagos\",\n {\n \"s\": {\n \"f\": \"+0600\",\n \"n\": \"+06\"\n }\n }\n ],\n [\n \"Indian/Christmas\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"+07\"\n }\n }\n ],\n [\n \"Indian/Cocos\",\n {\n \"s\": {\n \"f\": \"+0630\",\n \"n\": \"+0630\"\n }\n }\n ],\n [\n \"Indian/Comoro\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"EAT\"\n }\n }\n ],\n [\n \"Indian/Kerguelen\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"+05\"\n }\n }\n ],\n [\n \"Indian/Mahe\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Indian/Maldives\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"+05\"\n }\n }\n ],\n [\n \"Indian/Mauritius\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Indian/Mayotte\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"EAT\"\n }\n }\n ],\n [\n \"Indian/Reunion\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Pacific/Apia\",\n {\n \"s\": {\n \"f\": \"+1400\",\n \"t\": \"+1300\",\n \"n\": \"+13\",\n \"s\": \"19700405T040000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"+1300\",\n \"t\": \"+1400\",\n \"n\": \"+14\",\n \"s\": \"19700927T030000\",\n \"r\": {\n \"m\": 9,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Pacific/Auckland\",\n {\n \"s\": {\n \"f\": \"+1300\",\n \"t\": \"+1200\",\n \"n\": \"NZST\",\n \"s\": \"19700405T030000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"+1200\",\n \"t\": \"+1300\",\n \"n\": \"NZDT\",\n \"s\": \"19700927T020000\",\n \"r\": {\n \"m\": 9,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Pacific/Bougainville\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"n\": \"+11\"\n }\n }\n ],\n [\n \"Pacific/Chatham\",\n {\n \"s\": {\n \"f\": \"+1345\",\n \"t\": \"+1245\",\n \"n\": \"+1245\",\n \"s\": \"19700405T034500\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"+1245\",\n \"t\": \"+1345\",\n \"n\": \"+1345\",\n \"s\": \"19700927T024500\",\n \"r\": {\n \"m\": 9,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Pacific/Chuuk\",\n {\n \"s\": {\n \"f\": \"+1000\",\n \"n\": \"+10\"\n }\n }\n ],\n [\n \"Pacific/Easter\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"-06\",\n \"s\": \"19700404T220000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SA\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"-05\",\n \"s\": \"19700905T220000\",\n \"r\": {\n \"m\": 9,\n \"d\": \"1SA\"\n }\n }\n }\n ],\n [\n \"Pacific/Efate\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"n\": \"+11\"\n }\n }\n ],\n [\n \"Pacific/Enderbury\",\n {\n \"s\": {\n \"f\": \"+1300\",\n \"n\": \"+13\"\n }\n }\n ],\n [\n \"Pacific/Fakaofo\",\n {\n \"s\": {\n \"f\": \"+1300\",\n \"n\": \"+13\"\n }\n }\n ],\n [\n \"Pacific/Fiji\",\n {\n \"s\": {\n \"f\": \"+1300\",\n \"t\": \"+1200\",\n \"n\": \"+12\",\n \"s\": \"19700118T030000\",\n \"r\": {\n \"m\": 1,\n \"d\": \"-2SU\"\n }\n },\n \"d\": {\n \"f\": \"+1200\",\n \"t\": \"+1300\",\n \"n\": \"+13\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"Pacific/Funafuti\",\n {\n \"s\": {\n \"f\": \"+1200\",\n \"n\": \"+12\"\n }\n }\n ],\n [\n \"Pacific/Galapagos\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"n\": \"-06\"\n }\n }\n ],\n [\n \"Pacific/Gambier\",\n {\n \"s\": {\n \"f\": \"-0900\",\n \"n\": \"-09\"\n }\n }\n ],\n [\n \"Pacific/Guadalcanal\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"n\": \"+11\"\n }\n }\n ],\n [\n \"Pacific/Guam\",\n {\n \"s\": {\n \"f\": \"+1000\",\n \"n\": \"ChST\"\n }\n }\n ],\n [\n \"Pacific/Honolulu\",\n {\n \"s\": {\n \"f\": \"-1000\",\n \"n\": \"HST\"\n }\n }\n ],\n [\n \"Pacific/Kiritimati\",\n {\n \"s\": {\n \"f\": \"+1400\",\n \"n\": \"+14\"\n }\n }\n ],\n [\n \"Pacific/Kosrae\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"n\": \"+11\"\n }\n }\n ],\n [\n \"Pacific/Kwajalein\",\n {\n \"s\": {\n \"f\": \"+1200\",\n \"n\": \"+12\"\n }\n }\n ],\n [\n \"Pacific/Majuro\",\n {\n \"s\": {\n \"f\": \"+1200\",\n \"n\": \"+12\"\n }\n }\n ],\n [\n \"Pacific/Marquesas\",\n {\n \"s\": {\n \"f\": \"-0930\",\n \"n\": \"-0930\"\n }\n }\n ],\n [\n \"Pacific/Midway\",\n {\n \"s\": {\n \"f\": \"-1100\",\n \"n\": \"SST\"\n }\n }\n ],\n [\n \"Pacific/Nauru\",\n {\n \"s\": {\n \"f\": \"+1200\",\n \"n\": \"+12\"\n }\n }\n ],\n [\n \"Pacific/Niue\",\n {\n \"s\": {\n \"f\": \"-1100\",\n \"n\": \"-11\"\n }\n }\n ],\n [\n \"Pacific/Norfolk\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"n\": \"+11\"\n }\n }\n ],\n [\n \"Pacific/Noumea\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"n\": \"+11\"\n }\n }\n ],\n [\n \"Pacific/Pago_Pago\",\n {\n \"s\": {\n \"f\": \"-1100\",\n \"n\": \"SST\"\n }\n }\n ],\n [\n \"Pacific/Palau\",\n {\n \"s\": {\n \"f\": \"+0900\",\n \"n\": \"+09\"\n }\n }\n ],\n [\n \"Pacific/Pitcairn\",\n {\n \"s\": {\n \"f\": \"-0800\",\n \"n\": \"-08\"\n }\n }\n ],\n [\n \"Pacific/Pohnpei\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"n\": \"+11\"\n }\n }\n ],\n [\n \"Pacific/Port_Moresby\",\n {\n \"s\": {\n \"f\": \"+1000\",\n \"n\": \"+10\"\n }\n }\n ],\n [\n \"Pacific/Rarotonga\",\n {\n \"s\": {\n \"f\": \"-1000\",\n \"n\": \"-10\"\n }\n }\n ],\n [\n \"Pacific/Saipan\",\n {\n \"s\": {\n \"f\": \"+1000\",\n \"n\": \"ChST\"\n }\n }\n ],\n [\n \"Pacific/Tahiti\",\n {\n \"s\": {\n \"f\": \"-1000\",\n \"n\": \"-10\"\n }\n }\n ],\n [\n \"Pacific/Tarawa\",\n {\n \"s\": {\n \"f\": \"+1200\",\n \"n\": \"+12\"\n }\n }\n ],\n [\n \"Pacific/Tongatapu\",\n {\n \"s\": {\n \"f\": \"+1300\",\n \"n\": \"+13\"\n }\n }\n ],\n [\n \"Pacific/Wake\",\n {\n \"s\": {\n \"f\": \"+1200\",\n \"n\": \"+12\"\n }\n }\n ],\n [\n \"Pacific/Wallis\",\n {\n \"s\": {\n \"f\": \"+1200\",\n \"n\": \"+12\"\n }\n }\n ]\n]);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getZoneString = exports.getZoneLines = void 0;\nconst zones_1 = require(\"./zones\"); // This module must be generated with `yarn run build-zones`.\nfunction renderZoneSub(data) {\n const { n, f, t, r, s } = data;\n return [\n `TZNAME:${n}`,\n `TZOFFSETFROM:${f}`,\n `TZOFFSETTO:${t || f}`,\n `DTSTART:${s || zones_1.defaultStart}`,\n ...(r ? [`RRULE:FREQ=${r.f || 'YEARLY'};BYMONTH=${r.m};BYDAY=${r.d}`] : []),\n ];\n}\n/**\n * Tries to resolve a given time zone to iCalendar time zone component\n * (`VTIMEZONE`) as string array (usually for further processing).\n * @param zoneName Time zone name (e.g. `America/Los_Angeles`)\n * @param includeWrapper Set to `false` to avoid including lines for\n * `BEGIN:VTIMEZONE` and `END:VTIMEZONE`.\n * @returns Lines of the iCalendar time zone component (`VTIMEZONE`), each line\n * individually as an array of strings.\n */\nfunction getZoneLines(zoneName, includeWrapper = true) {\n const zoneData = zones_1.zonesMap.get(zoneName);\n if (zoneData) {\n const { s, d } = zoneData;\n const lines = [\n ...(includeWrapper ? ['BEGIN:VTIMEZONE'] : []),\n `TZID:${zoneName}`,\n // `X-LIC-LOCATION:${zoneName}`, // Who uses this?\n 'BEGIN:STANDARD',\n ...renderZoneSub(s),\n 'END:STANDARD',\n ...(d ? [\n 'BEGIN:DAYLIGHT',\n ...renderZoneSub(d),\n 'END:DAYLIGHT',\n ] : []),\n ...(includeWrapper ? ['END:VTIMEZONE'] : []),\n ];\n return lines;\n }\n}\nexports.getZoneLines = getZoneLines;\n/**\n * Tries to resolve a given time zone to iCalendar time zone component\n * (`VTIMEZONE`) as string.\n * @param zoneName Time zone name (e.g. `America/Los_Angeles`)\n * @param includeWrapper Set to `false` to avoid including lines for\n * `BEGIN:VTIMEZONE` and `END:VTIMEZONE`.\n * @returns The iCalendar time zone component (`VTIMEZONE`) as string\n * with `\\r\\n` line breaks.\n */\nfunction getZoneString(zoneName, includeWrapper = true) {\n const lines = getZoneLines(zoneName, includeWrapper);\n return lines === null || lines === void 0 ? void 0 : lines.join('\\r\\n');\n}\nexports.getZoneString = getZoneString;\n","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch */\n\n/**\n * Represents the BINARY value type, which contains extra methods for encoding and decoding.\n *\n * @memberof ICAL\n */\nclass Binary {\n /**\n * Creates a binary value from the given string.\n *\n * @param {String} aString The binary value string\n * @return {Binary} The binary value instance\n */\n static fromString(aString) {\n return new Binary(aString);\n }\n\n /**\n * Creates a new ICAL.Binary instance\n *\n * @param {String} aValue The binary data for this value\n */\n constructor(aValue) {\n this.value = aValue;\n }\n\n /**\n * The type name, to be used in the jCal object.\n * @default \"binary\"\n * @constant\n */\n icaltype = \"binary\";\n\n /**\n * Base64 decode the current value\n *\n * @return {String} The base64-decoded value\n */\n decodeValue() {\n return this._b64_decode(this.value);\n }\n\n /**\n * Encodes the passed parameter with base64 and sets the internal\n * value to the result.\n *\n * @param {String} aValue The raw binary value to encode\n */\n setEncodedValue(aValue) {\n this.value = this._b64_encode(aValue);\n }\n\n _b64_encode(data) {\n // http://kevin.vanzonneveld.net\n // + original by: Tyler Akins (http://rumkin.com)\n // + improved by: Bayron Guevara\n // + improved by: Thunder.m\n // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)\n // + bugfixed by: Pellentesque Malesuada\n // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)\n // + improved by: Rafał Kukawski (http://kukawski.pl)\n // * example 1: base64_encode('Kevin van Zonneveld');\n // * returns 1: 'S2V2aW4gdmFuIFpvbm5ldmVsZA=='\n // mozilla has this native\n // - but breaks in 2.0.0.12!\n //if (typeof this.window['atob'] == 'function') {\n // return atob(data);\n //}\n let b64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\" +\n \"abcdefghijklmnopqrstuvwxyz0123456789+/=\";\n let o1, o2, o3, h1, h2, h3, h4, bits, i = 0,\n ac = 0,\n enc = \"\",\n tmp_arr = [];\n\n if (!data) {\n return data;\n }\n\n do { // pack three octets into four hexets\n o1 = data.charCodeAt(i++);\n o2 = data.charCodeAt(i++);\n o3 = data.charCodeAt(i++);\n\n bits = o1 << 16 | o2 << 8 | o3;\n\n h1 = bits >> 18 & 0x3f;\n h2 = bits >> 12 & 0x3f;\n h3 = bits >> 6 & 0x3f;\n h4 = bits & 0x3f;\n\n // use hexets to index into b64, and append result to encoded string\n tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);\n } while (i < data.length);\n\n enc = tmp_arr.join('');\n\n let r = data.length % 3;\n\n return (r ? enc.slice(0, r - 3) : enc) + '==='.slice(r || 3);\n\n }\n\n _b64_decode(data) {\n // http://kevin.vanzonneveld.net\n // + original by: Tyler Akins (http://rumkin.com)\n // + improved by: Thunder.m\n // + input by: Aman Gupta\n // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)\n // + bugfixed by: Onno Marsman\n // + bugfixed by: Pellentesque Malesuada\n // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)\n // + input by: Brett Zamir (http://brett-zamir.me)\n // + bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)\n // * example 1: base64_decode('S2V2aW4gdmFuIFpvbm5ldmVsZA==');\n // * returns 1: 'Kevin van Zonneveld'\n // mozilla has this native\n // - but breaks in 2.0.0.12!\n //if (typeof this.window['btoa'] == 'function') {\n // return btoa(data);\n //}\n let b64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\" +\n \"abcdefghijklmnopqrstuvwxyz0123456789+/=\";\n let o1, o2, o3, h1, h2, h3, h4, bits, i = 0,\n ac = 0,\n dec = \"\",\n tmp_arr = [];\n\n if (!data) {\n return data;\n }\n\n data += '';\n\n do { // unpack four hexets into three octets using index points in b64\n h1 = b64.indexOf(data.charAt(i++));\n h2 = b64.indexOf(data.charAt(i++));\n h3 = b64.indexOf(data.charAt(i++));\n h4 = b64.indexOf(data.charAt(i++));\n\n bits = h1 << 18 | h2 << 12 | h3 << 6 | h4;\n\n o1 = bits >> 16 & 0xff;\n o2 = bits >> 8 & 0xff;\n o3 = bits & 0xff;\n\n if (h3 == 64) {\n tmp_arr[ac++] = String.fromCharCode(o1);\n } else if (h4 == 64) {\n tmp_arr[ac++] = String.fromCharCode(o1, o2);\n } else {\n tmp_arr[ac++] = String.fromCharCode(o1, o2, o3);\n }\n } while (i < data.length);\n\n dec = tmp_arr.join('');\n\n return dec;\n }\n\n /**\n * The string representation of this value\n * @return {String}\n */\n toString() {\n return this.value;\n }\n}\n\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch */\n\n\nconst DURATION_LETTERS = /([PDWHMTS]{1,1})/;\nconst DATA_PROPS_TO_COPY = [\"weeks\", \"days\", \"hours\", \"minutes\", \"seconds\", \"isNegative\"];\n\n/**\n * This class represents the \"duration\" value type, with various calculation\n * and manipulation methods.\n *\n * @memberof ICAL\n */\nclass Duration {\n /**\n * Returns a new ICAL.Duration instance from the passed seconds value.\n *\n * @param {Number} aSeconds The seconds to create the instance from\n * @return {Duration} The newly created duration instance\n */\n static fromSeconds(aSeconds) {\n return (new Duration()).fromSeconds(aSeconds);\n }\n\n /**\n * Checks if the given string is an iCalendar duration value.\n *\n * @param {String} value The raw ical value\n * @return {Boolean} True, if the given value is of the\n * duration ical type\n */\n static isValueString(string) {\n return (string[0] === 'P' || string[1] === 'P');\n }\n\n /**\n * Creates a new {@link ICAL.Duration} instance from the passed string.\n *\n * @param {String} aStr The string to parse\n * @return {Duration} The created duration instance\n */\n static fromString(aStr) {\n let pos = 0;\n let dict = Object.create(null);\n let chunks = 0;\n\n while ((pos = aStr.search(DURATION_LETTERS)) !== -1) {\n let type = aStr[pos];\n let numeric = aStr.slice(0, Math.max(0, pos));\n aStr = aStr.slice(pos + 1);\n\n chunks += parseDurationChunk(type, numeric, dict);\n }\n\n if (chunks < 2) {\n // There must be at least a chunk with \"P\" and some unit chunk\n throw new Error(\n 'invalid duration value: Not enough duration components in \"' + aStr + '\"'\n );\n }\n\n return new Duration(dict);\n }\n\n /**\n * Creates a new ICAL.Duration instance from the given data object.\n *\n * @param {Object} aData An object with members of the duration\n * @param {Number=} aData.weeks Duration in weeks\n * @param {Number=} aData.days Duration in days\n * @param {Number=} aData.hours Duration in hours\n * @param {Number=} aData.minutes Duration in minutes\n * @param {Number=} aData.seconds Duration in seconds\n * @param {Boolean=} aData.isNegative If true, the duration is negative\n * @return {Duration} The createad duration instance\n */\n static fromData(aData) {\n return new Duration(aData);\n }\n\n /**\n * Creates a new ICAL.Duration instance.\n *\n * @param {Object} data An object with members of the duration\n * @param {Number=} data.weeks Duration in weeks\n * @param {Number=} data.days Duration in days\n * @param {Number=} data.hours Duration in hours\n * @param {Number=} data.minutes Duration in minutes\n * @param {Number=} data.seconds Duration in seconds\n * @param {Boolean=} data.isNegative If true, the duration is negative\n */\n constructor(data) {\n this.wrappedJSObject = this;\n this.fromData(data);\n }\n\n /**\n * The weeks in this duration\n * @type {Number}\n * @default 0\n */\n weeks = 0;\n\n /**\n * The days in this duration\n * @type {Number}\n * @default 0\n */\n days = 0;\n\n /**\n * The days in this duration\n * @type {Number}\n * @default 0\n */\n hours = 0;\n\n /**\n * The minutes in this duration\n * @type {Number}\n * @default 0\n */\n minutes = 0;\n\n /**\n * The seconds in this duration\n * @type {Number}\n * @default 0\n */\n seconds = 0;\n\n /**\n * The seconds in this duration\n * @type {Boolean}\n * @default false\n */\n isNegative = false;\n\n /**\n * The class identifier.\n * @constant\n * @type {String}\n * @default \"icalduration\"\n */\n icalclass = \"icalduration\";\n\n /**\n * The type name, to be used in the jCal object.\n * @constant\n * @type {String}\n * @default \"duration\"\n */\n icaltype = \"duration\";\n\n /**\n * Returns a clone of the duration object.\n *\n * @return {Duration} The cloned object\n */\n clone() {\n return Duration.fromData(this);\n }\n\n /**\n * The duration value expressed as a number of seconds.\n *\n * @return {Number} The duration value in seconds\n */\n toSeconds() {\n let seconds = this.seconds + 60 * this.minutes + 3600 * this.hours +\n 86400 * this.days + 7 * 86400 * this.weeks;\n return (this.isNegative ? -seconds : seconds);\n }\n\n /**\n * Reads the passed seconds value into this duration object. Afterwards,\n * members like {@link ICAL.Duration#days days} and {@link ICAL.Duration#weeks weeks} will be set up\n * accordingly.\n *\n * @param {Number} aSeconds The duration value in seconds\n * @return {Duration} Returns this instance\n */\n fromSeconds(aSeconds) {\n let secs = Math.abs(aSeconds);\n\n this.isNegative = (aSeconds < 0);\n this.days = trunc(secs / 86400);\n\n // If we have a flat number of weeks, use them.\n if (this.days % 7 == 0) {\n this.weeks = this.days / 7;\n this.days = 0;\n } else {\n this.weeks = 0;\n }\n\n secs -= (this.days + 7 * this.weeks) * 86400;\n\n this.hours = trunc(secs / 3600);\n secs -= this.hours * 3600;\n\n this.minutes = trunc(secs / 60);\n secs -= this.minutes * 60;\n\n this.seconds = secs;\n return this;\n }\n\n /**\n * Sets up the current instance using members from the passed data object.\n *\n * @param {Object} aData An object with members of the duration\n * @param {Number=} aData.weeks Duration in weeks\n * @param {Number=} aData.days Duration in days\n * @param {Number=} aData.hours Duration in hours\n * @param {Number=} aData.minutes Duration in minutes\n * @param {Number=} aData.seconds Duration in seconds\n * @param {Boolean=} aData.isNegative If true, the duration is negative\n */\n fromData(aData) {\n for (let prop of DATA_PROPS_TO_COPY) {\n if (aData && prop in aData) {\n this[prop] = aData[prop];\n } else {\n this[prop] = 0;\n }\n }\n }\n\n /**\n * Resets the duration instance to the default values, i.e. PT0S\n */\n reset() {\n this.isNegative = false;\n this.weeks = 0;\n this.days = 0;\n this.hours = 0;\n this.minutes = 0;\n this.seconds = 0;\n }\n\n /**\n * Compares the duration instance with another one.\n *\n * @param {Duration} aOther The instance to compare with\n * @return {Number} -1, 0 or 1 for less/equal/greater\n */\n compare(aOther) {\n let thisSeconds = this.toSeconds();\n let otherSeconds = aOther.toSeconds();\n return (thisSeconds > otherSeconds) - (thisSeconds < otherSeconds);\n }\n\n /**\n * Normalizes the duration instance. For example, a duration with a value\n * of 61 seconds will be normalized to 1 minute and 1 second.\n */\n normalize() {\n this.fromSeconds(this.toSeconds());\n }\n\n /**\n * The string representation of this duration.\n * @return {String}\n */\n toString() {\n if (this.toSeconds() == 0) {\n return \"PT0S\";\n } else {\n let str = \"\";\n if (this.isNegative) str += \"-\";\n str += \"P\";\n let hasWeeks = false;\n if (this.weeks) {\n if (this.days || this.hours || this.minutes || this.seconds) {\n str += (this.weeks * 7 + this.days) + \"D\";\n } else {\n str += (this.weeks + \"W\");\n hasWeeks = true;\n }\n } else if (this.days) {\n str += (this.days + \"D\");\n }\n\n if (!hasWeeks) {\n if (this.hours || this.minutes || this.seconds) {\n str += \"T\";\n if (this.hours) {\n str += this.hours + \"H\";\n }\n\n if (this.minutes) {\n str += this.minutes + \"M\";\n }\n\n if (this.seconds) {\n str += this.seconds + \"S\";\n }\n }\n }\n\n return str;\n }\n }\n\n /**\n * The iCalendar string representation of this duration.\n * @return {String}\n */\n toICALString() {\n return this.toString();\n }\n}\n\n/**\n * Internal helper function to handle a chunk of a duration.\n *\n * @private\n * @param {String} letter type of duration chunk\n * @param {String} number numeric value or -/+\n * @param {Object} dict target to assign values to\n */\nfunction parseDurationChunk(letter, number, object) {\n let type;\n switch (letter) {\n case 'P':\n if (number && number === '-') {\n object.isNegative = true;\n } else {\n object.isNegative = false;\n }\n // period\n break;\n case 'D':\n type = 'days';\n break;\n case 'W':\n type = 'weeks';\n break;\n case 'H':\n type = 'hours';\n break;\n case 'M':\n type = 'minutes';\n break;\n case 'S':\n type = 'seconds';\n break;\n default:\n // Not a valid chunk\n return 0;\n }\n\n if (type) {\n if (!number && number !== 0) {\n throw new Error(\n 'invalid duration value: Missing number before \"' + letter + '\"'\n );\n }\n let num = parseInt(number, 10);\n if (isStrictlyNaN(num)) {\n throw new Error(\n 'invalid duration value: Invalid number \"' + number + '\" before \"' + letter + '\"'\n );\n }\n object[type] = num;\n }\n\n return 1;\n}\n\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch */\n\n\n/**\n * This lets typescript resolve our custom types in the\n * generated d.ts files (jsdoc typedefs are converted to typescript types).\n * Ignore prevents the typedefs from being documented more than once.\n * @ignore\n * @typedef {import(\"./types.js\").jCalComponent} jCalComponent\n * Imports the 'occurrenceDetails' type from the \"types.js\" module\n */\n\n/**\n * This class represents the \"period\" value type, with various calculation and manipulation methods.\n *\n * @memberof ICAL\n */\nclass Period {\n /**\n * Creates a new {@link ICAL.Period} instance from the passed string.\n *\n * @param {String} str The string to parse\n * @param {Property} prop The property this period will be on\n * @return {Period} The created period instance\n */\n static fromString(str, prop) {\n let parts = str.split('/');\n\n if (parts.length !== 2) {\n throw new Error(\n 'Invalid string value: \"' + str + '\" must contain a \"/\" char.'\n );\n }\n\n let options = {\n start: Time.fromDateTimeString(parts[0], prop)\n };\n\n let end = parts[1];\n\n if (Duration.isValueString(end)) {\n options.duration = Duration.fromString(end);\n } else {\n options.end = Time.fromDateTimeString(end, prop);\n }\n\n return new Period(options);\n }\n\n /**\n * Creates a new {@link ICAL.Period} instance from the given data object.\n * The passed data object cannot contain both and end date and a duration.\n *\n * @param {Object} aData An object with members of the period\n * @param {Time=} aData.start The start of the period\n * @param {Time=} aData.end The end of the period\n * @param {Duration=} aData.duration The duration of the period\n * @return {Period} The period instance\n */\n static fromData(aData) {\n return new Period(aData);\n }\n\n /**\n * Returns a new period instance from the given jCal data array. The first\n * member is always the start date string, the second member is either a\n * duration or end date string.\n *\n * @param {jCalComponent} aData The jCal data array\n * @param {Property} aProp The property this jCal data is on\n * @param {Boolean} aLenient If true, data value can be both date and date-time\n * @return {Period} The period instance\n */\n static fromJSON(aData, aProp, aLenient) {\n function fromDateOrDateTimeString(aValue, dateProp) {\n if (aLenient) {\n return Time.fromString(aValue, dateProp);\n } else {\n return Time.fromDateTimeString(aValue, dateProp);\n }\n }\n\n if (Duration.isValueString(aData[1])) {\n return Period.fromData({\n start: fromDateOrDateTimeString(aData[0], aProp),\n duration: Duration.fromString(aData[1])\n });\n } else {\n return Period.fromData({\n start: fromDateOrDateTimeString(aData[0], aProp),\n end: fromDateOrDateTimeString(aData[1], aProp)\n });\n }\n }\n\n /**\n * Creates a new ICAL.Period instance. The passed data object cannot contain both and end date and\n * a duration.\n *\n * @param {Object} aData An object with members of the period\n * @param {Time=} aData.start The start of the period\n * @param {Time=} aData.end The end of the period\n * @param {Duration=} aData.duration The duration of the period\n */\n constructor(aData) {\n this.wrappedJSObject = this;\n\n if (aData && 'start' in aData) {\n if (aData.start && !(aData.start instanceof Time)) {\n throw new TypeError('.start must be an instance of ICAL.Time');\n }\n this.start = aData.start;\n }\n\n if (aData && aData.end && aData.duration) {\n throw new Error('cannot accept both end and duration');\n }\n\n if (aData && 'end' in aData) {\n if (aData.end && !(aData.end instanceof Time)) {\n throw new TypeError('.end must be an instance of ICAL.Time');\n }\n this.end = aData.end;\n }\n\n if (aData && 'duration' in aData) {\n if (aData.duration && !(aData.duration instanceof Duration)) {\n throw new TypeError('.duration must be an instance of ICAL.Duration');\n }\n this.duration = aData.duration;\n }\n }\n\n\n /**\n * The start of the period\n * @type {Time}\n */\n start = null;\n\n /**\n * The end of the period\n * @type {Time}\n */\n end = null;\n\n /**\n * The duration of the period\n * @type {Duration}\n */\n duration = null;\n\n /**\n * The class identifier.\n * @constant\n * @type {String}\n * @default \"icalperiod\"\n */\n icalclass = \"icalperiod\";\n\n /**\n * The type name, to be used in the jCal object.\n * @constant\n * @type {String}\n * @default \"period\"\n */\n icaltype = \"period\";\n\n /**\n * Returns a clone of the duration object.\n *\n * @return {Period} The cloned object\n */\n clone() {\n return Period.fromData({\n start: this.start ? this.start.clone() : null,\n end: this.end ? this.end.clone() : null,\n duration: this.duration ? this.duration.clone() : null\n });\n }\n\n /**\n * Calculates the duration of the period, either directly or by subtracting\n * start from end date.\n *\n * @return {Duration} The calculated duration\n */\n getDuration() {\n if (this.duration) {\n return this.duration;\n } else {\n return this.end.subtractDate(this.start);\n }\n }\n\n /**\n * Calculates the end date of the period, either directly or by adding\n * duration to start date.\n *\n * @return {Time} The calculated end date\n */\n getEnd() {\n if (this.end) {\n return this.end;\n } else {\n let end = this.start.clone();\n end.addDuration(this.duration);\n return end;\n }\n }\n\n /**\n * Compare this period with a date or other period. To maintain the logic where a.compare(b)\n * returns 1 when a > b, this function will return 1 when the period is after the date, 0 when the\n * date is within the period, and -1 when the period is before the date. When comparing two\n * periods, as soon as they overlap in any way this will return 0.\n *\n * @param {Time|Period} dt The date or other period to compare with\n */\n compare(dt) {\n if (dt.compare(this.start) < 0) {\n return 1;\n } else if (dt.compare(this.getEnd()) > 0) {\n return -1;\n } else {\n return 0;\n }\n }\n\n /**\n * The string representation of this period.\n * @return {String}\n */\n toString() {\n return this.start + \"/\" + (this.end || this.duration);\n }\n\n /**\n * The jCal representation of this period type.\n * @return {Object}\n */\n toJSON() {\n return [this.start.toString(), (this.end || this.duration).toString()];\n }\n\n /**\n * The iCalendar string representation of this period.\n * @return {String}\n */\n toICALString() {\n return this.start.toICALString() + \"/\" +\n (this.end || this.duration).toICALString();\n }\n}\n\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch */\n\n\n/**\n * This lets typescript resolve our custom types in the\n * generated d.ts files (jsdoc typedefs are converted to typescript types).\n * Ignore prevents the typedefs from being documented more than once.\n *\n * @ignore\n * @typedef {import(\"./types.js\").weekDay} weekDay\n * Imports the 'weekDay' type from the \"types.js\" module\n *\n * @ignore\n * @typedef {import(\"./types.js\").timeInit} timeInit\n * Imports the 'timeInit' type from the \"types.js\" module\n */\n\n/**\n * @classdesc\n * iCalendar Time representation (similar to JS Date object). Fully\n * independent of system (OS) timezone / time. Unlike JS Date, the month\n * January is 1, not zero.\n *\n * @example\n * var time = new ICAL.Time({\n * year: 2012,\n * month: 10,\n * day: 11\n * minute: 0,\n * second: 0,\n * isDate: false\n * });\n *\n *\n * @memberof ICAL\n*/\nclass Time {\n static _dowCache = {};\n static _wnCache = {};\n\n /**\n * Returns the days in the given month\n *\n * @param {Number} month The month to check\n * @param {Number} year The year to check\n * @return {Number} The number of days in the month\n */\n static daysInMonth(month, year) {\n let _daysInMonth = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n let days = 30;\n\n if (month < 1 || month > 12) return days;\n\n days = _daysInMonth[month];\n\n if (month == 2) {\n days += Time.isLeapYear(year);\n }\n\n return days;\n }\n\n /**\n * Checks if the year is a leap year\n *\n * @param {Number} year The year to check\n * @return {Boolean} True, if the year is a leap year\n */\n static isLeapYear(year) {\n if (year <= 1752) {\n return ((year % 4) == 0);\n } else {\n return (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0));\n }\n }\n\n /**\n * Create a new ICAL.Time from the day of year and year. The date is returned\n * in floating timezone.\n *\n * @param {Number} aDayOfYear The day of year\n * @param {Number} aYear The year to create the instance in\n * @return {Time} The created instance with the calculated date\n */\n static fromDayOfYear(aDayOfYear, aYear) {\n let year = aYear;\n let doy = aDayOfYear;\n let tt = new Time();\n tt.auto_normalize = false;\n let is_leap = (Time.isLeapYear(year) ? 1 : 0);\n\n if (doy < 1) {\n year--;\n is_leap = (Time.isLeapYear(year) ? 1 : 0);\n doy += Time.daysInYearPassedMonth[is_leap][12];\n return Time.fromDayOfYear(doy, year);\n } else if (doy > Time.daysInYearPassedMonth[is_leap][12]) {\n is_leap = (Time.isLeapYear(year) ? 1 : 0);\n doy -= Time.daysInYearPassedMonth[is_leap][12];\n year++;\n return Time.fromDayOfYear(doy, year);\n }\n\n tt.year = year;\n tt.isDate = true;\n\n for (let month = 11; month >= 0; month--) {\n if (doy > Time.daysInYearPassedMonth[is_leap][month]) {\n tt.month = month + 1;\n tt.day = doy - Time.daysInYearPassedMonth[is_leap][month];\n break;\n }\n }\n\n tt.auto_normalize = true;\n return tt;\n }\n\n /**\n * Returns a new ICAL.Time instance from a date string, e.g 2015-01-02.\n *\n * @deprecated Use {@link ICAL.Time.fromDateString} instead\n * @param {String} str The string to create from\n * @return {Time} The date/time instance\n */\n static fromStringv2(str) {\n return new Time({\n year: parseInt(str.slice(0, 4), 10),\n month: parseInt(str.slice(5, 7), 10),\n day: parseInt(str.slice(8, 10), 10),\n isDate: true\n });\n }\n\n /**\n * Returns a new ICAL.Time instance from a date string, e.g 2015-01-02.\n *\n * @param {String} aValue The string to create from\n * @return {Time} The date/time instance\n */\n static fromDateString(aValue) {\n // Dates should have no timezone.\n // Google likes to sometimes specify Z on dates\n // we specifically ignore that to avoid issues.\n\n // YYYY-MM-DD\n // 2012-10-10\n return new Time({\n year: strictParseInt(aValue.slice(0, 4)),\n month: strictParseInt(aValue.slice(5, 7)),\n day: strictParseInt(aValue.slice(8, 10)),\n isDate: true\n });\n }\n\n /**\n * Returns a new ICAL.Time instance from a date-time string, e.g\n * 2015-01-02T03:04:05. If a property is specified, the timezone is set up\n * from the property's TZID parameter.\n *\n * @param {String} aValue The string to create from\n * @param {Property=} prop The property the date belongs to\n * @return {Time} The date/time instance\n */\n static fromDateTimeString(aValue, prop) {\n if (aValue.length < 19) {\n throw new Error(\n 'invalid date-time value: \"' + aValue + '\"'\n );\n }\n\n let zone;\n let zoneId;\n\n if (aValue.slice(-1) === 'Z') {\n zone = Timezone.utcTimezone;\n } else if (prop) {\n zoneId = prop.getParameter('tzid');\n\n if (prop.parent) {\n if (prop.parent.name === 'standard' || prop.parent.name === 'daylight') {\n // Per RFC 5545 3.8.2.4 and 3.8.2.2, start/end date-times within\n // these components MUST be specified in local time.\n zone = Timezone.localTimezone;\n } else if (zoneId) {\n // If the desired time zone is defined within the component tree,\n // fetch its definition and prefer that.\n zone = prop.parent.getTimeZoneByID(zoneId);\n }\n }\n }\n\n const timeData = {\n year: strictParseInt(aValue.slice(0, 4)),\n month: strictParseInt(aValue.slice(5, 7)),\n day: strictParseInt(aValue.slice(8, 10)),\n hour: strictParseInt(aValue.slice(11, 13)),\n minute: strictParseInt(aValue.slice(14, 16)),\n second: strictParseInt(aValue.slice(17, 19)),\n };\n\n // Although RFC 5545 requires that all TZIDs used within a file have a\n // corresponding time zone definition, we may not be parsing the full file\n // or we may be dealing with a non-compliant file; in either case, we can\n // check our own time zone service for the TZID in a last-ditch effort.\n if (zoneId && !zone) {\n timeData.timezone = zoneId;\n }\n\n // 2012-10-10T10:10:10(Z)?\n return new Time(timeData, zone);\n }\n\n /**\n * Returns a new ICAL.Time instance from a date or date-time string,\n *\n * @param {String} aValue The string to create from\n * @param {Property=} prop The property the date belongs to\n * @return {Time} The date/time instance\n */\n static fromString(aValue, aProperty) {\n if (aValue.length > 10) {\n return Time.fromDateTimeString(aValue, aProperty);\n } else {\n return Time.fromDateString(aValue);\n }\n }\n\n /**\n * Creates a new ICAL.Time instance from the given Javascript Date.\n *\n * @param {?Date} aDate The Javascript Date to read, or null to reset\n * @param {Boolean} [useUTC=false] If true, the UTC values of the date will be used\n */\n static fromJSDate(aDate, useUTC) {\n let tt = new Time();\n return tt.fromJSDate(aDate, useUTC);\n }\n\n /**\n * Creates a new ICAL.Time instance from the the passed data object.\n *\n * @param {timeInit} aData Time initialization\n * @param {Timezone=} aZone Timezone this position occurs in\n */\n static fromData = function fromData(aData, aZone) {\n let t = new Time();\n return t.fromData(aData, aZone);\n };\n\n /**\n * Creates a new ICAL.Time instance from the current moment.\n * The instance is “floating” - has no timezone relation.\n * To create an instance considering the time zone, call\n * ICAL.Time.fromJSDate(new Date(), true)\n * @return {Time}\n */\n static now() {\n return Time.fromJSDate(new Date(), false);\n }\n\n /**\n * Returns the date on which ISO week number 1 starts.\n *\n * @see Time#weekNumber\n * @param {Number} aYear The year to search in\n * @param {weekDay=} aWeekStart The week start weekday, used for calculation.\n * @return {Time} The date on which week number 1 starts\n */\n static weekOneStarts(aYear, aWeekStart) {\n let t = Time.fromData({\n year: aYear,\n month: 1,\n day: 1,\n isDate: true\n });\n\n let dow = t.dayOfWeek();\n let wkst = aWeekStart || Time.DEFAULT_WEEK_START;\n if (dow > Time.THURSDAY) {\n t.day += 7;\n }\n if (wkst > Time.THURSDAY) {\n t.day -= 7;\n }\n\n t.day -= dow - wkst;\n\n return t;\n }\n\n /**\n * Get the dominical letter for the given year. Letters range from A - G for\n * common years, and AG to GF for leap years.\n *\n * @param {Number} yr The year to retrieve the letter for\n * @return {String} The dominical letter.\n */\n static getDominicalLetter(yr) {\n let LTRS = \"GFEDCBA\";\n let dom = (yr + (yr / 4 | 0) + (yr / 400 | 0) - (yr / 100 | 0) - 1) % 7;\n let isLeap = Time.isLeapYear(yr);\n if (isLeap) {\n return LTRS[(dom + 6) % 7] + LTRS[dom];\n } else {\n return LTRS[dom];\n }\n }\n\n static #epochTime = null;\n /**\n * January 1st, 1970 as an ICAL.Time.\n * @type {Time}\n * @constant\n * @instance\n */\n static get epochTime() {\n if (!this.#epochTime) {\n this.#epochTime = Time.fromData({\n year: 1970,\n month: 1,\n day: 1,\n hour: 0,\n minute: 0,\n second: 0,\n isDate: false,\n timezone: \"Z\"\n });\n }\n return this.#epochTime;\n }\n\n static _cmp_attr(a, b, attr) {\n if (a[attr] > b[attr]) return 1;\n if (a[attr] < b[attr]) return -1;\n return 0;\n }\n\n /**\n * The days that have passed in the year after a given month. The array has\n * two members, one being an array of passed days for non-leap years, the\n * other analog for leap years.\n * @example\n * var isLeapYear = ICAL.Time.isLeapYear(year);\n * var passedDays = ICAL.Time.daysInYearPassedMonth[isLeapYear][month];\n * @type {Array.>}\n */\n static daysInYearPassedMonth = [\n [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365],\n [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366]\n ];\n\n static SUNDAY = 1;\n static MONDAY = 2;\n static TUESDAY = 3;\n static WEDNESDAY = 4;\n static THURSDAY = 5;\n static FRIDAY = 6;\n static SATURDAY = 7;\n\n /**\n * The default weekday for the WKST part.\n * @constant\n * @default ICAL.Time.MONDAY\n */\n static DEFAULT_WEEK_START = 2; // MONDAY\n\n /**\n * Creates a new ICAL.Time instance.\n *\n * @param {timeInit} data Time initialization\n * @param {Timezone} zone timezone this position occurs in\n */\n constructor(data, zone) {\n this.wrappedJSObject = this;\n\n /**\n * @type {timeInit}\n * @private\n */\n this._time = Object.create(null);\n\n /* time defaults */\n this._time.year = 0;\n this._time.month = 1;\n this._time.day = 1;\n this._time.hour = 0;\n this._time.minute = 0;\n this._time.second = 0;\n this._time.isDate = false;\n\n this.fromData(data, zone);\n }\n\n /**\n * The class identifier.\n * @constant\n * @type {String}\n * @default \"icaltime\"\n */\n icalclass = \"icaltime\";\n _cachedUnixTime = null;\n\n /**\n * The type name, to be used in the jCal object. This value may change and\n * is strictly defined by the {@link ICAL.Time#isDate isDate} member.\n * @type {String}\n * @default \"date-time\"\n */\n get icaltype() {\n return this.isDate ? 'date' : 'date-time';\n }\n\n /**\n * The timezone for this time.\n * @type {Timezone}\n */\n zone = null;\n\n /**\n * Internal uses to indicate that a change has been made and the next read\n * operation must attempt to normalize the value (for example changing the\n * day to 33).\n *\n * @type {Boolean}\n * @private\n */\n _pendingNormalization = false;\n\n /**\n * The year of this date.\n * @type {Number}\n */\n get year() {\n return this._getTimeAttr('year');\n }\n\n set year(val) {\n this._setTimeAttr('year', val);\n }\n\n /**\n * The month of this date.\n * @type {Number}\n */\n get month() {\n return this._getTimeAttr('month');\n }\n\n set month(val) {\n this._setTimeAttr('month', val);\n }\n\n /**\n * The day of this date.\n * @type {Number}\n */\n get day() {\n return this._getTimeAttr('day');\n }\n\n set day(val) {\n this._setTimeAttr('day', val);\n }\n\n /**\n * The hour of this date-time.\n * @type {Number}\n */\n get hour() {\n return this._getTimeAttr('hour');\n }\n\n set hour(val) {\n this._setTimeAttr('hour', val);\n }\n\n /**\n * The minute of this date-time.\n * @type {Number}\n */\n get minute() {\n return this._getTimeAttr('minute');\n }\n\n set minute(val) {\n this._setTimeAttr('minute', val);\n }\n\n /**\n * The second of this date-time.\n * @type {Number}\n */\n get second() {\n return this._getTimeAttr('second');\n }\n\n set second(val) {\n this._setTimeAttr('second', val);\n }\n\n /**\n * If true, the instance represents a date (as opposed to a date-time)\n * @type {Boolean}\n */\n get isDate() {\n return this._getTimeAttr('isDate');\n }\n\n set isDate(val) {\n this._setTimeAttr('isDate', val);\n }\n\n /**\n * @private\n * @param {String} attr Attribute to get (one of: year, month,\n * day, hour, minute, second, isDate)\n * @return {Number|Boolean} Current value for the attribute\n */\n _getTimeAttr(attr) {\n if (this._pendingNormalization) {\n this._normalize();\n this._pendingNormalization = false;\n }\n\n return this._time[attr];\n }\n\n /**\n * @private\n * @param {String} attr Attribute to set (one of: year, month,\n * day, hour, minute, second, isDate)\n * @param {Number|Boolean} val New value for the attribute\n */\n _setTimeAttr(attr, val) {\n // Check if isDate will be set and if was not set to normalize date.\n // This avoids losing days when seconds, minutes and hours are zeroed\n // what normalize will do when time is a date.\n if (attr === \"isDate\" && val && !this._time.isDate) {\n this.adjust(0, 0, 0, 0);\n }\n this._cachedUnixTime = null;\n this._pendingNormalization = true;\n this._time[attr] = val;\n }\n\n /**\n * Returns a clone of the time object.\n *\n * @return {Time} The cloned object\n */\n clone() {\n return new Time(this._time, this.zone);\n }\n\n /**\n * Reset the time instance to epoch time\n */\n reset() {\n this.fromData(Time.epochTime);\n this.zone = Timezone.utcTimezone;\n }\n\n /**\n * Reset the time instance to the given date/time values.\n *\n * @param {Number} year The year to set\n * @param {Number} month The month to set\n * @param {Number} day The day to set\n * @param {Number} hour The hour to set\n * @param {Number} minute The minute to set\n * @param {Number} second The second to set\n * @param {Timezone} timezone The timezone to set\n */\n resetTo(year, month, day, hour, minute, second, timezone) {\n this.fromData({\n year: year,\n month: month,\n day: day,\n hour: hour,\n minute: minute,\n second: second,\n zone: timezone\n });\n }\n\n /**\n * Set up the current instance from the Javascript date value.\n *\n * @param {?Date} aDate The Javascript Date to read, or null to reset\n * @param {Boolean} [useUTC=false] If true, the UTC values of the date will be used\n */\n fromJSDate(aDate, useUTC) {\n if (!aDate) {\n this.reset();\n } else {\n if (useUTC) {\n this.zone = Timezone.utcTimezone;\n this.year = aDate.getUTCFullYear();\n this.month = aDate.getUTCMonth() + 1;\n this.day = aDate.getUTCDate();\n this.hour = aDate.getUTCHours();\n this.minute = aDate.getUTCMinutes();\n this.second = aDate.getUTCSeconds();\n } else {\n this.zone = Timezone.localTimezone;\n this.year = aDate.getFullYear();\n this.month = aDate.getMonth() + 1;\n this.day = aDate.getDate();\n this.hour = aDate.getHours();\n this.minute = aDate.getMinutes();\n this.second = aDate.getSeconds();\n }\n }\n this._cachedUnixTime = null;\n return this;\n }\n\n /**\n * Sets up the current instance using members from the passed data object.\n *\n * @param {timeInit} aData Time initialization\n * @param {Timezone=} aZone Timezone this position occurs in\n */\n fromData(aData, aZone) {\n if (aData) {\n for (let [key, value] of Object.entries(aData)) {\n // ical type cannot be set\n if (key === 'icaltype') continue;\n this[key] = value;\n }\n }\n\n if (aZone) {\n this.zone = aZone;\n }\n\n if (aData && !(\"isDate\" in aData)) {\n this.isDate = !(\"hour\" in aData);\n } else if (aData && (\"isDate\" in aData)) {\n this.isDate = aData.isDate;\n }\n\n if (aData && \"timezone\" in aData) {\n let zone = TimezoneService.get(\n aData.timezone\n );\n\n this.zone = zone || Timezone.localTimezone;\n }\n\n if (aData && \"zone\" in aData) {\n this.zone = aData.zone;\n }\n\n if (!this.zone) {\n this.zone = Timezone.localTimezone;\n }\n\n this._cachedUnixTime = null;\n return this;\n }\n\n /**\n * Calculate the day of week.\n * @param {weekDay=} aWeekStart\n * The week start weekday, defaults to SUNDAY\n * @return {weekDay}\n */\n dayOfWeek(aWeekStart) {\n let firstDow = aWeekStart || Time.SUNDAY;\n let dowCacheKey = (this.year << 12) + (this.month << 8) + (this.day << 3) + firstDow;\n if (dowCacheKey in Time._dowCache) {\n return Time._dowCache[dowCacheKey];\n }\n\n // Using Zeller's algorithm\n let q = this.day;\n let m = this.month + (this.month < 3 ? 12 : 0);\n let Y = this.year - (this.month < 3 ? 1 : 0);\n\n let h = (q + Y + trunc(((m + 1) * 26) / 10) + trunc(Y / 4));\n { // eslint-disable-line no-constant-condition\n h += trunc(Y / 100) * 6 + trunc(Y / 400);\n }\n\n // Normalize to 1 = wkst\n h = ((h + 7 - firstDow) % 7) + 1;\n Time._dowCache[dowCacheKey] = h;\n return h;\n }\n\n /**\n * Calculate the day of year.\n * @return {Number}\n */\n dayOfYear() {\n let is_leap = (Time.isLeapYear(this.year) ? 1 : 0);\n let diypm = Time.daysInYearPassedMonth;\n return diypm[is_leap][this.month - 1] + this.day;\n }\n\n /**\n * Returns a copy of the current date/time, rewound to the start of the\n * week. The resulting ICAL.Time instance is of icaltype date, even if this\n * is a date-time.\n *\n * @param {weekDay=} aWeekStart\n * The week start weekday, defaults to SUNDAY\n * @return {Time} The start of the week (cloned)\n */\n startOfWeek(aWeekStart) {\n let firstDow = aWeekStart || Time.SUNDAY;\n let result = this.clone();\n result.day -= ((this.dayOfWeek() + 7 - firstDow) % 7);\n result.isDate = true;\n result.hour = 0;\n result.minute = 0;\n result.second = 0;\n return result;\n }\n\n /**\n * Returns a copy of the current date/time, shifted to the end of the week.\n * The resulting ICAL.Time instance is of icaltype date, even if this is a\n * date-time.\n *\n * @param {weekDay=} aWeekStart\n * The week start weekday, defaults to SUNDAY\n * @return {Time} The end of the week (cloned)\n */\n endOfWeek(aWeekStart) {\n let firstDow = aWeekStart || Time.SUNDAY;\n let result = this.clone();\n result.day += (7 - this.dayOfWeek() + firstDow - Time.SUNDAY) % 7;\n result.isDate = true;\n result.hour = 0;\n result.minute = 0;\n result.second = 0;\n return result;\n }\n\n /**\n * Returns a copy of the current date/time, rewound to the start of the\n * month. The resulting ICAL.Time instance is of icaltype date, even if\n * this is a date-time.\n *\n * @return {Time} The start of the month (cloned)\n */\n startOfMonth() {\n let result = this.clone();\n result.day = 1;\n result.isDate = true;\n result.hour = 0;\n result.minute = 0;\n result.second = 0;\n return result;\n }\n\n /**\n * Returns a copy of the current date/time, shifted to the end of the\n * month. The resulting ICAL.Time instance is of icaltype date, even if\n * this is a date-time.\n *\n * @return {Time} The end of the month (cloned)\n */\n endOfMonth() {\n let result = this.clone();\n result.day = Time.daysInMonth(result.month, result.year);\n result.isDate = true;\n result.hour = 0;\n result.minute = 0;\n result.second = 0;\n return result;\n }\n\n /**\n * Returns a copy of the current date/time, rewound to the start of the\n * year. The resulting ICAL.Time instance is of icaltype date, even if\n * this is a date-time.\n *\n * @return {Time} The start of the year (cloned)\n */\n startOfYear() {\n let result = this.clone();\n result.day = 1;\n result.month = 1;\n result.isDate = true;\n result.hour = 0;\n result.minute = 0;\n result.second = 0;\n return result;\n }\n\n /**\n * Returns a copy of the current date/time, shifted to the end of the\n * year. The resulting ICAL.Time instance is of icaltype date, even if\n * this is a date-time.\n *\n * @return {Time} The end of the year (cloned)\n */\n endOfYear() {\n let result = this.clone();\n result.day = 31;\n result.month = 12;\n result.isDate = true;\n result.hour = 0;\n result.minute = 0;\n result.second = 0;\n return result;\n }\n\n /**\n * First calculates the start of the week, then returns the day of year for\n * this date. If the day falls into the previous year, the day is zero or negative.\n *\n * @param {weekDay=} aFirstDayOfWeek\n * The week start weekday, defaults to SUNDAY\n * @return {Number} The calculated day of year\n */\n startDoyWeek(aFirstDayOfWeek) {\n let firstDow = aFirstDayOfWeek || Time.SUNDAY;\n let delta = this.dayOfWeek() - firstDow;\n if (delta < 0) delta += 7;\n return this.dayOfYear() - delta;\n }\n\n /**\n * Get the dominical letter for the current year. Letters range from A - G\n * for common years, and AG to GF for leap years.\n *\n * @param {Number} yr The year to retrieve the letter for\n * @return {String} The dominical letter.\n */\n getDominicalLetter() {\n return Time.getDominicalLetter(this.year);\n }\n\n /**\n * Finds the nthWeekDay relative to the current month (not day). The\n * returned value is a day relative the month that this month belongs to so\n * 1 would indicate the first of the month and 40 would indicate a day in\n * the following month.\n *\n * @param {Number} aDayOfWeek Day of the week see the day name constants\n * @param {Number} aPos Nth occurrence of a given week day values\n * of 1 and 0 both indicate the first weekday of that type. aPos may\n * be either positive or negative\n *\n * @return {Number} numeric value indicating a day relative\n * to the current month of this time object\n */\n nthWeekDay(aDayOfWeek, aPos) {\n let daysInMonth = Time.daysInMonth(this.month, this.year);\n let weekday;\n let pos = aPos;\n\n let start = 0;\n\n let otherDay = this.clone();\n\n if (pos >= 0) {\n otherDay.day = 1;\n\n // because 0 means no position has been given\n // 1 and 0 indicate the same day.\n if (pos != 0) {\n // remove the extra numeric value\n pos--;\n }\n\n // set current start offset to current day.\n start = otherDay.day;\n\n // find the current day of week\n let startDow = otherDay.dayOfWeek();\n\n // calculate the difference between current\n // day of the week and desired day of the week\n let offset = aDayOfWeek - startDow;\n\n\n // if the offset goes into the past\n // week we add 7 so it goes into the next\n // week. We only want to go forward in time here.\n if (offset < 0)\n // this is really important otherwise we would\n // end up with dates from in the past.\n offset += 7;\n\n // add offset to start so start is the same\n // day of the week as the desired day of week.\n start += offset;\n\n // because we are going to add (and multiply)\n // the numeric value of the day we subtract it\n // from the start position so not to add it twice.\n start -= aDayOfWeek;\n\n // set week day\n weekday = aDayOfWeek;\n } else {\n\n // then we set it to the last day in the current month\n otherDay.day = daysInMonth;\n\n // find the ends weekday\n let endDow = otherDay.dayOfWeek();\n\n pos++;\n\n weekday = (endDow - aDayOfWeek);\n\n if (weekday < 0) {\n weekday += 7;\n }\n\n weekday = daysInMonth - weekday;\n }\n\n weekday += pos * 7;\n\n return start + weekday;\n }\n\n /**\n * Checks if current time is the nth weekday, relative to the current\n * month. Will always return false when rule resolves outside of current\n * month.\n *\n * @param {weekDay} aDayOfWeek Day of week to check\n * @param {Number} aPos Relative position\n * @return {Boolean} True, if it is the nth weekday\n */\n isNthWeekDay(aDayOfWeek, aPos) {\n let dow = this.dayOfWeek();\n\n if (aPos === 0 && dow === aDayOfWeek) {\n return true;\n }\n\n // get pos\n let day = this.nthWeekDay(aDayOfWeek, aPos);\n\n if (day === this.day) {\n return true;\n }\n\n return false;\n }\n\n /**\n * Calculates the ISO 8601 week number. The first week of a year is the\n * week that contains the first Thursday. The year can have 53 weeks, if\n * January 1st is a Friday.\n *\n * Note there are regions where the first week of the year is the one that\n * starts on January 1st, which may offset the week number. Also, if a\n * different week start is specified, this will also affect the week\n * number.\n *\n * @see Time.weekOneStarts\n * @param {weekDay} aWeekStart The weekday the week starts with\n * @return {Number} The ISO week number\n */\n weekNumber(aWeekStart) {\n let wnCacheKey = (this.year << 12) + (this.month << 8) + (this.day << 3) + aWeekStart;\n if (wnCacheKey in Time._wnCache) {\n return Time._wnCache[wnCacheKey];\n }\n // This function courtesty of Julian Bucknall, published under the MIT license\n // http://www.boyet.com/articles/publishedarticles/calculatingtheisoweeknumb.html\n // plus some fixes to be able to use different week starts.\n let week1;\n\n let dt = this.clone();\n dt.isDate = true;\n let isoyear = this.year;\n\n if (dt.month == 12 && dt.day > 25) {\n week1 = Time.weekOneStarts(isoyear + 1, aWeekStart);\n if (dt.compare(week1) < 0) {\n week1 = Time.weekOneStarts(isoyear, aWeekStart);\n } else {\n isoyear++;\n }\n } else {\n week1 = Time.weekOneStarts(isoyear, aWeekStart);\n if (dt.compare(week1) < 0) {\n week1 = Time.weekOneStarts(--isoyear, aWeekStart);\n }\n }\n\n let daysBetween = (dt.subtractDate(week1).toSeconds() / 86400);\n let answer = trunc(daysBetween / 7) + 1;\n Time._wnCache[wnCacheKey] = answer;\n return answer;\n }\n\n /**\n * Adds the duration to the current time. The instance is modified in\n * place.\n *\n * @param {Duration} aDuration The duration to add\n */\n addDuration(aDuration) {\n let mult = (aDuration.isNegative ? -1 : 1);\n\n // because of the duration optimizations it is much\n // more efficient to grab all the values up front\n // then set them directly (which will avoid a normalization call).\n // So we don't actually normalize until we need it.\n let second = this.second;\n let minute = this.minute;\n let hour = this.hour;\n let day = this.day;\n\n second += mult * aDuration.seconds;\n minute += mult * aDuration.minutes;\n hour += mult * aDuration.hours;\n day += mult * aDuration.days;\n day += mult * 7 * aDuration.weeks;\n\n this.second = second;\n this.minute = minute;\n this.hour = hour;\n this.day = day;\n\n this._cachedUnixTime = null;\n }\n\n /**\n * Subtract the date details (_excluding_ timezone). Useful for finding\n * the relative difference between two time objects excluding their\n * timezone differences.\n *\n * @param {Time} aDate The date to subtract\n * @return {Duration} The difference as a duration\n */\n subtractDate(aDate) {\n let unixTime = this.toUnixTime() + this.utcOffset();\n let other = aDate.toUnixTime() + aDate.utcOffset();\n return Duration.fromSeconds(unixTime - other);\n }\n\n /**\n * Subtract the date details, taking timezones into account.\n *\n * @param {Time} aDate The date to subtract\n * @return {Duration} The difference in duration\n */\n subtractDateTz(aDate) {\n let unixTime = this.toUnixTime();\n let other = aDate.toUnixTime();\n return Duration.fromSeconds(unixTime - other);\n }\n\n /**\n * Compares the ICAL.Time instance with another one, or a period.\n *\n * @param {Time|Period} aOther The instance to compare with\n * @return {Number} -1, 0 or 1 for less/equal/greater\n */\n compare(other) {\n if (other instanceof Period) {\n return -1 * other.compare(this);\n } else {\n let a = this.toUnixTime();\n let b = other.toUnixTime();\n\n if (a > b) return 1;\n if (b > a) return -1;\n return 0;\n }\n }\n\n /**\n * Compares only the date part of this instance with another one.\n *\n * @param {Time} other The instance to compare with\n * @param {Timezone} tz The timezone to compare in\n * @return {Number} -1, 0 or 1 for less/equal/greater\n */\n compareDateOnlyTz(other, tz) {\n let a = this.convertToZone(tz);\n let b = other.convertToZone(tz);\n let rc = 0;\n\n if ((rc = Time._cmp_attr(a, b, \"year\")) != 0) return rc;\n if ((rc = Time._cmp_attr(a, b, \"month\")) != 0) return rc;\n if ((rc = Time._cmp_attr(a, b, \"day\")) != 0) return rc;\n\n return rc;\n }\n\n /**\n * Convert the instance into another timezone. The returned ICAL.Time\n * instance is always a copy.\n *\n * @param {Timezone} zone The zone to convert to\n * @return {Time} The copy, converted to the zone\n */\n convertToZone(zone) {\n let copy = this.clone();\n let zone_equals = (this.zone.tzid == zone.tzid);\n\n if (!this.isDate && !zone_equals) {\n Timezone.convert_time(copy, this.zone, zone);\n }\n\n copy.zone = zone;\n return copy;\n }\n\n /**\n * Calculates the UTC offset of the current date/time in the timezone it is\n * in.\n *\n * @return {Number} UTC offset in seconds\n */\n utcOffset() {\n if (this.zone == Timezone.localTimezone ||\n this.zone == Timezone.utcTimezone) {\n return 0;\n } else {\n return this.zone.utcOffset(this);\n }\n }\n\n /**\n * Returns an RFC 5545 compliant ical representation of this object.\n *\n * @return {String} ical date/date-time\n */\n toICALString() {\n let string = this.toString();\n\n if (string.length > 10) {\n return design.icalendar.value['date-time'].toICAL(string);\n } else {\n return design.icalendar.value.date.toICAL(string);\n }\n }\n\n /**\n * The string representation of this date/time, in jCal form\n * (including : and - separators).\n * @return {String}\n */\n toString() {\n let result = this.year + '-' +\n pad2(this.month) + '-' +\n pad2(this.day);\n\n if (!this.isDate) {\n result += 'T' + pad2(this.hour) + ':' +\n pad2(this.minute) + ':' +\n pad2(this.second);\n\n if (this.zone === Timezone.utcTimezone) {\n result += 'Z';\n }\n }\n\n return result;\n }\n\n /**\n * Converts the current instance to a Javascript date\n * @return {Date}\n */\n toJSDate() {\n if (this.zone == Timezone.localTimezone) {\n if (this.isDate) {\n return new Date(this.year, this.month - 1, this.day);\n } else {\n return new Date(this.year, this.month - 1, this.day,\n this.hour, this.minute, this.second, 0);\n }\n } else {\n return new Date(this.toUnixTime() * 1000);\n }\n }\n\n _normalize() {\n if (this._time.isDate) {\n this._time.hour = 0;\n this._time.minute = 0;\n this._time.second = 0;\n }\n this.adjust(0, 0, 0, 0);\n\n return this;\n }\n\n /**\n * Adjust the date/time by the given offset\n *\n * @param {Number} aExtraDays The extra amount of days\n * @param {Number} aExtraHours The extra amount of hours\n * @param {Number} aExtraMinutes The extra amount of minutes\n * @param {Number} aExtraSeconds The extra amount of seconds\n * @param {Number=} aTime The time to adjust, defaults to the\n * current instance.\n */\n adjust(aExtraDays, aExtraHours, aExtraMinutes, aExtraSeconds, aTime) {\n\n let minutesOverflow, hoursOverflow,\n daysOverflow = 0, yearsOverflow = 0;\n\n let second, minute, hour, day;\n let daysInMonth;\n\n let time = aTime || this._time;\n\n if (!time.isDate) {\n second = time.second + aExtraSeconds;\n time.second = second % 60;\n minutesOverflow = trunc(second / 60);\n if (time.second < 0) {\n time.second += 60;\n minutesOverflow--;\n }\n\n minute = time.minute + aExtraMinutes + minutesOverflow;\n time.minute = minute % 60;\n hoursOverflow = trunc(minute / 60);\n if (time.minute < 0) {\n time.minute += 60;\n hoursOverflow--;\n }\n\n hour = time.hour + aExtraHours + hoursOverflow;\n\n time.hour = hour % 24;\n daysOverflow = trunc(hour / 24);\n if (time.hour < 0) {\n time.hour += 24;\n daysOverflow--;\n }\n }\n\n\n // Adjust month and year first, because we need to know what month the day\n // is in before adjusting it.\n if (time.month > 12) {\n yearsOverflow = trunc((time.month - 1) / 12);\n } else if (time.month < 1) {\n yearsOverflow = trunc(time.month / 12) - 1;\n }\n\n time.year += yearsOverflow;\n time.month -= 12 * yearsOverflow;\n\n // Now take care of the days (and adjust month if needed)\n day = time.day + aExtraDays + daysOverflow;\n\n if (day > 0) {\n for (;;) {\n daysInMonth = Time.daysInMonth(time.month, time.year);\n if (day <= daysInMonth) {\n break;\n }\n\n time.month++;\n if (time.month > 12) {\n time.year++;\n time.month = 1;\n }\n\n day -= daysInMonth;\n }\n } else {\n while (day <= 0) {\n if (time.month == 1) {\n time.year--;\n time.month = 12;\n } else {\n time.month--;\n }\n\n day += Time.daysInMonth(time.month, time.year);\n }\n }\n\n time.day = day;\n\n this._cachedUnixTime = null;\n return this;\n }\n\n /**\n * Sets up the current instance from unix time, the number of seconds since\n * January 1st, 1970.\n *\n * @param {Number} seconds The seconds to set up with\n */\n fromUnixTime(seconds) {\n this.zone = Timezone.utcTimezone;\n // We could use `fromJSDate` here, but this is about twice as fast.\n // We could also clone `epochTime` and use `adjust` for a more\n // ical.js-centric approach, but this is about 100 times as fast.\n let date = new Date(seconds * 1000);\n this.year = date.getUTCFullYear();\n this.month = date.getUTCMonth() + 1;\n this.day = date.getUTCDate();\n if (this._time.isDate) {\n this.hour = 0;\n this.minute = 0;\n this.second = 0;\n } else {\n this.hour = date.getUTCHours();\n this.minute = date.getUTCMinutes();\n this.second = date.getUTCSeconds();\n }\n\n this._cachedUnixTime = null;\n }\n\n /**\n * Converts the current instance to seconds since January 1st 1970.\n *\n * @return {Number} Seconds since 1970\n */\n toUnixTime() {\n if (this._cachedUnixTime !== null) {\n return this._cachedUnixTime;\n }\n let offset = this.utcOffset();\n\n // we use the offset trick to ensure\n // that we are getting the actual UTC time\n let ms = Date.UTC(\n this.year,\n this.month - 1,\n this.day,\n this.hour,\n this.minute,\n this.second - offset\n );\n\n // seconds\n this._cachedUnixTime = ms / 1000;\n return this._cachedUnixTime;\n }\n\n /**\n * Converts time to into Object which can be serialized then re-created\n * using the constructor.\n *\n * @example\n * // toJSON will automatically be called\n * var json = JSON.stringify(mytime);\n *\n * var deserialized = JSON.parse(json);\n *\n * var time = new ICAL.Time(deserialized);\n *\n * @return {Object}\n */\n toJSON() {\n let copy = [\n 'year',\n 'month',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'isDate'\n ];\n\n let result = Object.create(null);\n\n let i = 0;\n let len = copy.length;\n let prop;\n\n for (; i < len; i++) {\n prop = copy[i];\n result[prop] = this[prop];\n }\n\n if (this.zone) {\n result.timezone = this.zone.tzid;\n }\n\n return result;\n }\n}\n\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch */\n\n\n/**\n * This lets typescript resolve our custom types in the\n * generated d.ts files (jsdoc typedefs are converted to typescript types).\n * Ignore prevents the typedefs from being documented more than once.\n *\n * @ignore\n * @typedef {import(\"./types.js\").parserState} parserState\n * Imports the 'parserState' type from the \"types.js\" module\n * @typedef {import(\"./types.js\").designSet} designSet\n * Imports the 'designSet' type from the \"types.js\" module\n */\n\nconst CHAR = /[^ \\t]/;\nconst VALUE_DELIMITER = ':';\nconst PARAM_DELIMITER = ';';\nconst PARAM_NAME_DELIMITER = '=';\nconst DEFAULT_VALUE_TYPE$1 = 'unknown';\nconst DEFAULT_PARAM_TYPE = 'text';\nconst RFC6868_REPLACE_MAP$1 = { \"^'\": '\"', \"^n\": \"\\n\", \"^^\": \"^\" };\n\n/**\n * Parses iCalendar or vCard data into a raw jCal object. Consult\n * documentation on the {@tutorial layers|layers of parsing} for more\n * details.\n *\n * @function ICAL.parse\n * @memberof ICAL\n * @variation function\n * @todo Fix the API to be more clear on the return type\n * @param {String} input The string data to parse\n * @return {Object|Object[]} A single jCal object, or an array thereof\n */\nfunction parse(input) {\n let state = {};\n let root = state.component = [];\n\n state.stack = [root];\n\n parse._eachLine(input, function(err, line) {\n parse._handleContentLine(line, state);\n });\n\n\n // when there are still items on the stack\n // throw a fatal error, a component was not closed\n // correctly in that case.\n if (state.stack.length > 1) {\n throw new ParserError(\n 'invalid ical body. component began but did not end'\n );\n }\n\n state = null;\n\n return (root.length == 1 ? root[0] : root);\n}\n\n/**\n * Parse an iCalendar property value into the jCal for a single property\n *\n * @function ICAL.parse.property\n * @param {String} str\n * The iCalendar property string to parse\n * @param {designSet=} designSet\n * The design data to use for this property\n * @return {Object}\n * The jCal Object containing the property\n */\nparse.property = function(str, designSet) {\n let state = {\n component: [[], []],\n designSet: designSet || design.defaultSet\n };\n parse._handleContentLine(str, state);\n return state.component[1][0];\n};\n\n/**\n * Convenience method to parse a component. You can use ICAL.parse() directly\n * instead.\n *\n * @function ICAL.parse.component\n * @see ICAL.parse(function)\n * @param {String} str The iCalendar component string to parse\n * @return {Object} The jCal Object containing the component\n */\nparse.component = function(str) {\n return parse(str);\n};\n\n\n/**\n * An error that occurred during parsing.\n *\n * @param {String} message The error message\n * @memberof ICAL.parse\n * @extends {Error}\n */\nclass ParserError extends Error {\n name = this.constructor.name;\n}\n\n// classes & constants\nparse.ParserError = ParserError;\n\n\n/**\n * Handles a single line of iCalendar/vCard, updating the state.\n *\n * @private\n * @function ICAL.parse._handleContentLine\n * @param {String} line The content line to process\n * @param {parserState} state The current state of the line parsing\n */\nparse._handleContentLine = function(line, state) {\n // break up the parts of the line\n let valuePos = line.indexOf(VALUE_DELIMITER);\n let paramPos = line.indexOf(PARAM_DELIMITER);\n\n let lastParamIndex;\n let lastValuePos;\n\n // name of property or begin/end\n let name;\n let value;\n // params is only overridden if paramPos !== -1.\n // we can't do params = params || {} later on\n // because it sacrifices ops.\n let params = {};\n\n /**\n * Different property cases\n *\n *\n * 1. RRULE:FREQ=foo\n * // FREQ= is not a param but the value\n *\n * 2. ATTENDEE;ROLE=REQ-PARTICIPANT;\n * // ROLE= is a param because : has not happened yet\n */\n // when the parameter delimiter is after the\n // value delimiter then it is not a parameter.\n\n if ((paramPos !== -1 && valuePos !== -1)) {\n // when the parameter delimiter is after the\n // value delimiter then it is not a parameter.\n if (paramPos > valuePos) {\n paramPos = -1;\n }\n }\n\n let parsedParams;\n if (paramPos !== -1) {\n name = line.slice(0, Math.max(0, paramPos)).toLowerCase();\n parsedParams = parse._parseParameters(line.slice(Math.max(0, paramPos)), 0, state.designSet);\n if (parsedParams[2] == -1) {\n throw new ParserError(\"Invalid parameters in '\" + line + \"'\");\n }\n params = parsedParams[0];\n // Handle parameter values with multiple entries\n let parsedParamLength;\n if (typeof parsedParams[1] === 'string') {\n parsedParamLength = parsedParams[1].length;\n } else {\n parsedParamLength = parsedParams[1].reduce((accumulator, currentValue) => {\n return accumulator + currentValue.length;\n }, 0);\n }\n lastParamIndex = parsedParamLength + parsedParams[2] + paramPos;\n if ((lastValuePos =\n line.slice(Math.max(0, lastParamIndex)).indexOf(VALUE_DELIMITER)) !== -1) {\n value = line.slice(Math.max(0, lastParamIndex + lastValuePos + 1));\n } else {\n throw new ParserError(\"Missing parameter value in '\" + line + \"'\");\n }\n } else if (valuePos !== -1) {\n // without parmeters (BEGIN:VCAENDAR, CLASS:PUBLIC)\n name = line.slice(0, Math.max(0, valuePos)).toLowerCase();\n value = line.slice(Math.max(0, valuePos + 1));\n\n if (name === 'begin') {\n let newComponent = [value.toLowerCase(), [], []];\n if (state.stack.length === 1) {\n state.component.push(newComponent);\n } else {\n state.component[2].push(newComponent);\n }\n state.stack.push(state.component);\n state.component = newComponent;\n if (!state.designSet) {\n state.designSet = design.getDesignSet(state.component[0]);\n }\n return;\n } else if (name === 'end') {\n state.component = state.stack.pop();\n return;\n }\n // If it is not begin/end, then this is a property with an empty value,\n // which should be considered valid.\n } else {\n /**\n * Invalid line.\n * The rational to throw an error is we will\n * never be certain that the rest of the file\n * is sane and it is unlikely that we can serialize\n * the result correctly either.\n */\n throw new ParserError(\n 'invalid line (no token \";\" or \":\") \"' + line + '\"'\n );\n }\n\n let valueType;\n let multiValue = false;\n let structuredValue = false;\n let propertyDetails;\n let splitName;\n let ungroupedName;\n\n // fetch the ungrouped part of the name\n if (state.designSet.propertyGroups && name.indexOf('.') !== -1) {\n splitName = name.split('.');\n params.group = splitName[0];\n ungroupedName = splitName[1];\n } else {\n ungroupedName = name;\n }\n\n if (ungroupedName in state.designSet.property) {\n propertyDetails = state.designSet.property[ungroupedName];\n\n if ('multiValue' in propertyDetails) {\n multiValue = propertyDetails.multiValue;\n }\n\n if ('structuredValue' in propertyDetails) {\n structuredValue = propertyDetails.structuredValue;\n }\n\n if (value && 'detectType' in propertyDetails) {\n valueType = propertyDetails.detectType(value);\n }\n }\n\n // attempt to determine value\n if (!valueType) {\n if (!('value' in params)) {\n if (propertyDetails) {\n valueType = propertyDetails.defaultType;\n } else {\n valueType = DEFAULT_VALUE_TYPE$1;\n }\n } else {\n // possible to avoid this?\n valueType = params.value.toLowerCase();\n }\n }\n\n delete params.value;\n\n /**\n * Note on `var result` juggling:\n *\n * I observed that building the array in pieces has adverse\n * effects on performance, so where possible we inline the creation.\n * It is a little ugly but resulted in ~2000 additional ops/sec.\n */\n\n let result;\n if (multiValue && structuredValue) {\n value = parse._parseMultiValue(value, structuredValue, valueType, [], multiValue, state.designSet, structuredValue);\n result = [ungroupedName, params, valueType, value];\n } else if (multiValue) {\n result = [ungroupedName, params, valueType];\n parse._parseMultiValue(value, multiValue, valueType, result, null, state.designSet, false);\n } else if (structuredValue) {\n value = parse._parseMultiValue(value, structuredValue, valueType, [], null, state.designSet, structuredValue);\n result = [ungroupedName, params, valueType, value];\n } else {\n value = parse._parseValue(value, valueType, state.designSet, false);\n result = [ungroupedName, params, valueType, value];\n }\n // rfc6350 requires that in vCard 4.0 the first component is the VERSION\n // component with as value 4.0, note that 3.0 does not have this requirement.\n if (state.component[0] === 'vcard' && state.component[1].length === 0 &&\n !(name === 'version' && value === '4.0')) {\n state.designSet = design.getDesignSet(\"vcard3\");\n }\n state.component[1].push(result);\n};\n\n/**\n * Parse a value from the raw value into the jCard/jCal value.\n *\n * @private\n * @function ICAL.parse._parseValue\n * @param {String} value Original value\n * @param {String} type Type of value\n * @param {Object} designSet The design data to use for this value\n * @return {Object} varies on type\n */\nparse._parseValue = function(value, type, designSet, structuredValue) {\n if (type in designSet.value && 'fromICAL' in designSet.value[type]) {\n return designSet.value[type].fromICAL(value, structuredValue);\n }\n return value;\n};\n\n/**\n * Parse parameters from a string to object.\n *\n * @function ICAL.parse._parseParameters\n * @private\n * @param {String} line A single unfolded line\n * @param {Number} start Position to start looking for properties\n * @param {Object} designSet The design data to use for this property\n * @return {Array} Array containing key/valye pairs of parsed parameters, the\n * parsed value, and the position of the last parameter found\n */\nparse._parseParameters = function(line, start, designSet) {\n let lastParam = start;\n let pos = 0;\n let delim = PARAM_NAME_DELIMITER;\n let result = {};\n let name, lcname;\n let value, valuePos = -1;\n let type, multiValue, mvdelim;\n\n // find the next '=' sign\n // use lastParam and pos to find name\n // check if \" is used if so get value from \"->\"\n // then increment pos to find next ;\n\n while ((pos !== false) &&\n (pos = line.indexOf(delim, pos + 1)) !== -1) {\n\n name = line.slice(lastParam + 1, pos);\n if (name.length == 0) {\n throw new ParserError(\"Empty parameter name in '\" + line + \"'\");\n }\n lcname = name.toLowerCase();\n mvdelim = false;\n multiValue = false;\n\n if (lcname in designSet.param && designSet.param[lcname].valueType) {\n type = designSet.param[lcname].valueType;\n } else {\n type = DEFAULT_PARAM_TYPE;\n }\n\n if (lcname in designSet.param) {\n multiValue = designSet.param[lcname].multiValue;\n if (designSet.param[lcname].multiValueSeparateDQuote) {\n mvdelim = parse._rfc6868Escape('\"' + multiValue + '\"');\n }\n }\n\n let nextChar = line[pos + 1];\n if (nextChar === '\"') {\n valuePos = pos + 2;\n pos = line.indexOf('\"', valuePos);\n if (multiValue && pos != -1) {\n let extendedValue = true;\n while (extendedValue) {\n if (line[pos + 1] == multiValue && line[pos + 2] == '\"') {\n pos = line.indexOf('\"', pos + 3);\n } else {\n extendedValue = false;\n }\n }\n }\n if (pos === -1) {\n throw new ParserError(\n 'invalid line (no matching double quote) \"' + line + '\"'\n );\n }\n value = line.slice(valuePos, pos);\n lastParam = line.indexOf(PARAM_DELIMITER, pos);\n let propValuePos = line.indexOf(VALUE_DELIMITER, pos);\n // if either no next parameter or delimeter in property value, let's stop here\n if (lastParam === -1 || (propValuePos !== -1 && lastParam > propValuePos)) {\n pos = false;\n }\n } else {\n valuePos = pos + 1;\n\n // move to next \";\"\n let nextPos = line.indexOf(PARAM_DELIMITER, valuePos);\n let propValuePos = line.indexOf(VALUE_DELIMITER, valuePos);\n if (propValuePos !== -1 && nextPos > propValuePos) {\n // this is a delimiter in the property value, let's stop here\n nextPos = propValuePos;\n pos = false;\n } else if (nextPos === -1) {\n // no \";\"\n if (propValuePos === -1) {\n nextPos = line.length;\n } else {\n nextPos = propValuePos;\n }\n pos = false;\n } else {\n lastParam = nextPos;\n pos = nextPos;\n }\n\n value = line.slice(valuePos, nextPos);\n }\n\n const length_before = value.length;\n value = parse._rfc6868Escape(value);\n valuePos += length_before - value.length;\n if (multiValue) {\n let delimiter = mvdelim || multiValue;\n value = parse._parseMultiValue(value, delimiter, type, [], null, designSet);\n } else {\n value = parse._parseValue(value, type, designSet);\n }\n\n if (multiValue && (lcname in result)) {\n if (Array.isArray(result[lcname])) {\n result[lcname].push(value);\n } else {\n result[lcname] = [\n result[lcname],\n value\n ];\n }\n } else {\n result[lcname] = value;\n }\n }\n return [result, value, valuePos];\n};\n\n/**\n * Internal helper for rfc6868. Exposing this on ICAL.parse so that\n * hackers can disable the rfc6868 parsing if the really need to.\n *\n * @function ICAL.parse._rfc6868Escape\n * @param {String} val The value to escape\n * @return {String} The escaped value\n */\nparse._rfc6868Escape = function(val) {\n return val.replace(/\\^['n^]/g, function(x) {\n return RFC6868_REPLACE_MAP$1[x];\n });\n};\n\n/**\n * Parse a multi value string. This function is used either for parsing\n * actual multi-value property's values, or for handling parameter values. It\n * can be used for both multi-value properties and structured value properties.\n *\n * @private\n * @function ICAL.parse._parseMultiValue\n * @param {String} buffer The buffer containing the full value\n * @param {String} delim The multi-value delimiter\n * @param {String} type The value type to be parsed\n * @param {Array.} result The array to append results to, varies on value type\n * @param {String} innerMulti The inner delimiter to split each value with\n * @param {designSet} designSet The design data for this value\n * @return {?|Array.} Either an array of results, or the first result\n */\nparse._parseMultiValue = function(buffer, delim, type, result, innerMulti, designSet, structuredValue) {\n let pos = 0;\n let lastPos = 0;\n let value;\n if (delim.length === 0) {\n return buffer;\n }\n\n // split each piece\n while ((pos = unescapedIndexOf(buffer, delim, lastPos)) !== -1) {\n value = buffer.slice(lastPos, pos);\n if (innerMulti) {\n value = parse._parseMultiValue(value, innerMulti, type, [], null, designSet, structuredValue);\n } else {\n value = parse._parseValue(value, type, designSet, structuredValue);\n }\n result.push(value);\n lastPos = pos + delim.length;\n }\n\n // on the last piece take the rest of string\n value = buffer.slice(lastPos);\n if (innerMulti) {\n value = parse._parseMultiValue(value, innerMulti, type, [], null, designSet, structuredValue);\n } else {\n value = parse._parseValue(value, type, designSet, structuredValue);\n }\n result.push(value);\n\n return result.length == 1 ? result[0] : result;\n};\n\n/**\n * Process a complete buffer of iCalendar/vCard data line by line, correctly\n * unfolding content. Each line will be processed with the given callback\n *\n * @private\n * @function ICAL.parse._eachLine\n * @param {String} buffer The buffer to process\n * @param {function(?String, String)} callback The callback for each line\n */\nparse._eachLine = function(buffer, callback) {\n let len = buffer.length;\n let lastPos = buffer.search(CHAR);\n let pos = lastPos;\n let line;\n let firstChar;\n\n let newlineOffset;\n\n do {\n pos = buffer.indexOf('\\n', lastPos) + 1;\n\n if (pos > 1 && buffer[pos - 2] === '\\r') {\n newlineOffset = 2;\n } else {\n newlineOffset = 1;\n }\n\n if (pos === 0) {\n pos = len;\n newlineOffset = 0;\n }\n\n firstChar = buffer[lastPos];\n\n if (firstChar === ' ' || firstChar === '\\t') {\n // add to line\n line += buffer.slice(lastPos + 1, pos - newlineOffset);\n } else {\n if (line)\n callback(null, line);\n // push line\n line = buffer.slice(lastPos, pos - newlineOffset);\n }\n\n lastPos = pos;\n } while (pos !== len);\n\n // extra ending line\n line = line.trim();\n\n if (line.length)\n callback(null, line);\n};\n\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch */\n\n\nconst OPTIONS = [\"tzid\", \"location\", \"tznames\", \"latitude\", \"longitude\"];\n\n/**\n * Timezone representation.\n *\n * @example\n * var vcalendar;\n * var timezoneComp = vcalendar.getFirstSubcomponent('vtimezone');\n * var tzid = timezoneComp.getFirstPropertyValue('tzid');\n *\n * var timezone = new ICAL.Timezone({\n * component: timezoneComp,\n * tzid\n * });\n *\n * @memberof ICAL\n */\nclass Timezone {\n static _compare_change_fn(a, b) {\n if (a.year < b.year) return -1;\n else if (a.year > b.year) return 1;\n\n if (a.month < b.month) return -1;\n else if (a.month > b.month) return 1;\n\n if (a.day < b.day) return -1;\n else if (a.day > b.day) return 1;\n\n if (a.hour < b.hour) return -1;\n else if (a.hour > b.hour) return 1;\n\n if (a.minute < b.minute) return -1;\n else if (a.minute > b.minute) return 1;\n\n if (a.second < b.second) return -1;\n else if (a.second > b.second) return 1;\n\n return 0;\n }\n\n /**\n * Convert the date/time from one zone to the next.\n *\n * @param {Time} tt The time to convert\n * @param {Timezone} from_zone The source zone to convert from\n * @param {Timezone} to_zone The target zone to convert to\n * @return {Time} The converted date/time object\n */\n static convert_time(tt, from_zone, to_zone) {\n if (tt.isDate ||\n from_zone.tzid == to_zone.tzid ||\n from_zone == Timezone.localTimezone ||\n to_zone == Timezone.localTimezone) {\n tt.zone = to_zone;\n return tt;\n }\n\n let utcOffset = from_zone.utcOffset(tt);\n tt.adjust(0, 0, 0, - utcOffset);\n\n utcOffset = to_zone.utcOffset(tt);\n tt.adjust(0, 0, 0, utcOffset);\n\n return null;\n }\n\n /**\n * Creates a new ICAL.Timezone instance from the passed data object.\n *\n * @param {Component|Object} aData options for class\n * @param {String|Component} aData.component\n * If aData is a simple object, then this member can be set to either a\n * string containing the component data, or an already parsed\n * ICAL.Component\n * @param {String} aData.tzid The timezone identifier\n * @param {String} aData.location The timezone locationw\n * @param {String} aData.tznames An alternative string representation of the\n * timezone\n * @param {Number} aData.latitude The latitude of the timezone\n * @param {Number} aData.longitude The longitude of the timezone\n */\n static fromData(aData) {\n let tt = new Timezone();\n return tt.fromData(aData);\n }\n\n /**\n * The instance describing the UTC timezone\n * @type {Timezone}\n * @constant\n * @instance\n */\n static #utcTimezone = null;\n static get utcTimezone() {\n if (!this.#utcTimezone) {\n this.#utcTimezone = Timezone.fromData({\n tzid: \"UTC\"\n });\n }\n return this.#utcTimezone;\n }\n\n /**\n * The instance describing the local timezone\n * @type {Timezone}\n * @constant\n * @instance\n */\n static #localTimezone = null;\n static get localTimezone() {\n if (!this.#localTimezone) {\n this.#localTimezone = Timezone.fromData({\n tzid: \"floating\"\n });\n }\n return this.#localTimezone;\n }\n\n /**\n * Adjust a timezone change object.\n * @private\n * @param {Object} change The timezone change object\n * @param {Number} days The extra amount of days\n * @param {Number} hours The extra amount of hours\n * @param {Number} minutes The extra amount of minutes\n * @param {Number} seconds The extra amount of seconds\n */\n static adjust_change(change, days, hours, minutes, seconds) {\n return Time.prototype.adjust.call(\n change,\n days,\n hours,\n minutes,\n seconds,\n change\n );\n }\n\n static _minimumExpansionYear = -1;\n static EXTRA_COVERAGE = 5;\n\n /**\n * Creates a new ICAL.Timezone instance, by passing in a tzid and component.\n *\n * @param {Component|Object} data options for class\n * @param {String|Component} data.component\n * If data is a simple object, then this member can be set to either a\n * string containing the component data, or an already parsed\n * ICAL.Component\n * @param {String} data.tzid The timezone identifier\n * @param {String} data.location The timezone locationw\n * @param {String} data.tznames An alternative string representation of the\n * timezone\n * @param {Number} data.latitude The latitude of the timezone\n * @param {Number} data.longitude The longitude of the timezone\n */\n constructor(data) {\n this.wrappedJSObject = this;\n this.fromData(data);\n }\n\n\n /**\n * Timezone identifier\n * @type {String}\n */\n tzid = \"\";\n\n /**\n * Timezone location\n * @type {String}\n */\n location = \"\";\n\n /**\n * Alternative timezone name, for the string representation\n * @type {String}\n */\n tznames = \"\";\n\n /**\n * The primary latitude for the timezone.\n * @type {Number}\n */\n latitude = 0.0;\n\n /**\n * The primary longitude for the timezone.\n * @type {Number}\n */\n longitude = 0.0;\n\n /**\n * The vtimezone component for this timezone.\n * @type {Component}\n */\n component = null;\n\n /**\n * The year this timezone has been expanded to. All timezone transition\n * dates until this year are known and can be used for calculation\n *\n * @private\n * @type {Number}\n */\n expandedUntilYear = 0;\n\n /**\n * The class identifier.\n * @constant\n * @type {String}\n * @default \"icaltimezone\"\n */\n icalclass = \"icaltimezone\";\n\n /**\n * Sets up the current instance using members from the passed data object.\n *\n * @param {Component|Object} aData options for class\n * @param {String|Component} aData.component\n * If aData is a simple object, then this member can be set to either a\n * string containing the component data, or an already parsed\n * ICAL.Component\n * @param {String} aData.tzid The timezone identifier\n * @param {String} aData.location The timezone locationw\n * @param {String} aData.tznames An alternative string representation of the\n * timezone\n * @param {Number} aData.latitude The latitude of the timezone\n * @param {Number} aData.longitude The longitude of the timezone\n */\n fromData(aData) {\n this.expandedUntilYear = 0;\n this.changes = [];\n\n if (aData instanceof Component) {\n // Either a component is passed directly\n this.component = aData;\n } else {\n // Otherwise the component may be in the data object\n if (aData && \"component\" in aData) {\n if (typeof aData.component == \"string\") {\n // If a string was passed, parse it as a component\n let jCal = parse(aData.component);\n this.component = new Component(jCal);\n } else if (aData.component instanceof Component) {\n // If it was a component already, then just set it\n this.component = aData.component;\n } else {\n // Otherwise just null out the component\n this.component = null;\n }\n }\n\n // Copy remaining passed properties\n for (let prop of OPTIONS) {\n if (aData && prop in aData) {\n this[prop] = aData[prop];\n }\n }\n }\n\n // If we have a component but no TZID, attempt to get it from the\n // component's properties.\n if (this.component instanceof Component && !this.tzid) {\n this.tzid = this.component.getFirstPropertyValue('tzid');\n }\n\n return this;\n }\n\n /**\n * Finds the utcOffset the given time would occur in this timezone.\n *\n * @param {Time} tt The time to check for\n * @return {Number} utc offset in seconds\n */\n utcOffset(tt) {\n if (this == Timezone.utcTimezone || this == Timezone.localTimezone) {\n return 0;\n }\n\n this._ensureCoverage(tt.year);\n\n if (!this.changes.length) {\n return 0;\n }\n\n let tt_change = {\n year: tt.year,\n month: tt.month,\n day: tt.day,\n hour: tt.hour,\n minute: tt.minute,\n second: tt.second\n };\n\n let change_num = this._findNearbyChange(tt_change);\n let change_num_to_use = -1;\n let step = 1;\n\n // TODO: replace with bin search?\n for (;;) {\n let change = clone(this.changes[change_num], true);\n if (change.utcOffset < change.prevUtcOffset) {\n Timezone.adjust_change(change, 0, 0, 0, change.utcOffset);\n } else {\n Timezone.adjust_change(change, 0, 0, 0,\n change.prevUtcOffset);\n }\n\n let cmp = Timezone._compare_change_fn(tt_change, change);\n\n if (cmp >= 0) {\n change_num_to_use = change_num;\n } else {\n step = -1;\n }\n\n if (step == -1 && change_num_to_use != -1) {\n break;\n }\n\n change_num += step;\n\n if (change_num < 0) {\n return 0;\n }\n\n if (change_num >= this.changes.length) {\n break;\n }\n }\n\n let zone_change = this.changes[change_num_to_use];\n let utcOffset_change = zone_change.utcOffset - zone_change.prevUtcOffset;\n\n if (utcOffset_change < 0 && change_num_to_use > 0) {\n let tmp_change = clone(zone_change, true);\n Timezone.adjust_change(tmp_change, 0, 0, 0, tmp_change.prevUtcOffset);\n\n if (Timezone._compare_change_fn(tt_change, tmp_change) < 0) {\n let prev_zone_change = this.changes[change_num_to_use - 1];\n\n let want_daylight = false; // TODO\n\n if (zone_change.is_daylight != want_daylight &&\n prev_zone_change.is_daylight == want_daylight) {\n zone_change = prev_zone_change;\n }\n }\n }\n\n // TODO return is_daylight?\n return zone_change.utcOffset;\n }\n\n _findNearbyChange(change) {\n // find the closest match\n let idx = binsearchInsert(\n this.changes,\n change,\n Timezone._compare_change_fn\n );\n\n if (idx >= this.changes.length) {\n return this.changes.length - 1;\n }\n\n return idx;\n }\n\n _ensureCoverage(aYear) {\n if (Timezone._minimumExpansionYear == -1) {\n let today = Time.now();\n Timezone._minimumExpansionYear = today.year;\n }\n\n let changesEndYear = aYear;\n if (changesEndYear < Timezone._minimumExpansionYear) {\n changesEndYear = Timezone._minimumExpansionYear;\n }\n\n changesEndYear += Timezone.EXTRA_COVERAGE;\n\n if (!this.changes.length || this.expandedUntilYear < aYear) {\n let subcomps = this.component.getAllSubcomponents();\n let compLen = subcomps.length;\n let compIdx = 0;\n\n for (; compIdx < compLen; compIdx++) {\n this._expandComponent(\n subcomps[compIdx], changesEndYear, this.changes\n );\n }\n\n this.changes.sort(Timezone._compare_change_fn);\n this.expandedUntilYear = changesEndYear;\n }\n }\n\n _expandComponent(aComponent, aYear, changes) {\n if (!aComponent.hasProperty(\"dtstart\") ||\n !aComponent.hasProperty(\"tzoffsetto\") ||\n !aComponent.hasProperty(\"tzoffsetfrom\")) {\n return null;\n }\n\n let dtstart = aComponent.getFirstProperty(\"dtstart\").getFirstValue();\n let change;\n\n function convert_tzoffset(offset) {\n return offset.factor * (offset.hours * 3600 + offset.minutes * 60);\n }\n\n function init_changes() {\n let changebase = {};\n changebase.is_daylight = (aComponent.name == \"daylight\");\n changebase.utcOffset = convert_tzoffset(\n aComponent.getFirstProperty(\"tzoffsetto\").getFirstValue()\n );\n\n changebase.prevUtcOffset = convert_tzoffset(\n aComponent.getFirstProperty(\"tzoffsetfrom\").getFirstValue()\n );\n\n return changebase;\n }\n\n if (!aComponent.hasProperty(\"rrule\") && !aComponent.hasProperty(\"rdate\")) {\n change = init_changes();\n change.year = dtstart.year;\n change.month = dtstart.month;\n change.day = dtstart.day;\n change.hour = dtstart.hour;\n change.minute = dtstart.minute;\n change.second = dtstart.second;\n\n Timezone.adjust_change(change, 0, 0, 0, -change.prevUtcOffset);\n changes.push(change);\n } else {\n let props = aComponent.getAllProperties(\"rdate\");\n for (let rdate of props) {\n let time = rdate.getFirstValue();\n change = init_changes();\n\n change.year = time.year;\n change.month = time.month;\n change.day = time.day;\n\n if (time.isDate) {\n change.hour = dtstart.hour;\n change.minute = dtstart.minute;\n change.second = dtstart.second;\n\n if (dtstart.zone != Timezone.utcTimezone) {\n Timezone.adjust_change(change, 0, 0, 0, -change.prevUtcOffset);\n }\n } else {\n change.hour = time.hour;\n change.minute = time.minute;\n change.second = time.second;\n\n if (time.zone != Timezone.utcTimezone) {\n Timezone.adjust_change(change, 0, 0, 0, -change.prevUtcOffset);\n }\n }\n\n changes.push(change);\n }\n\n let rrule = aComponent.getFirstProperty(\"rrule\");\n\n if (rrule) {\n rrule = rrule.getFirstValue();\n change = init_changes();\n\n if (rrule.until && rrule.until.zone == Timezone.utcTimezone) {\n rrule.until.adjust(0, 0, 0, change.prevUtcOffset);\n rrule.until.zone = Timezone.localTimezone;\n }\n\n let iterator = rrule.iterator(dtstart);\n\n let occ;\n while ((occ = iterator.next())) {\n change = init_changes();\n if (occ.year > aYear || !occ) {\n break;\n }\n\n change.year = occ.year;\n change.month = occ.month;\n change.day = occ.day;\n change.hour = occ.hour;\n change.minute = occ.minute;\n change.second = occ.second;\n change.isDate = occ.isDate;\n\n Timezone.adjust_change(change, 0, 0, 0, -change.prevUtcOffset);\n changes.push(change);\n }\n }\n }\n\n return changes;\n }\n\n /**\n * The string representation of this timezone.\n * @return {String}\n */\n toString() {\n return (this.tznames ? this.tznames : this.tzid);\n }\n}\n\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch */\n\n\nlet zones = null;\n\n/**\n * @classdesc\n * Singleton class to contain timezones. Right now it is all manual registry in\n * the future we may use this class to download timezone information or handle\n * loading pre-expanded timezones.\n *\n * @exports module:ICAL.TimezoneService\n * @memberof ICAL\n */\nconst TimezoneService = {\n get count() {\n if (zones === null) {\n return 0;\n }\n\n return Object.keys(zones).length;\n },\n\n reset: function() {\n zones = Object.create(null);\n let utc = Timezone.utcTimezone;\n\n zones.Z = utc;\n zones.UTC = utc;\n zones.GMT = utc;\n },\n _hard_reset: function() {\n zones = null;\n },\n\n /**\n * Checks if timezone id has been registered.\n *\n * @param {String} tzid Timezone identifier (e.g. America/Los_Angeles)\n * @return {Boolean} False, when not present\n */\n has: function(tzid) {\n if (zones === null) {\n return false;\n }\n\n return !!zones[tzid];\n },\n\n /**\n * Returns a timezone by its tzid if present.\n *\n * @param {String} tzid Timezone identifier (e.g. America/Los_Angeles)\n * @return {Timezone | undefined} The timezone, or undefined if not found\n */\n get: function(tzid) {\n if (zones === null) {\n this.reset();\n }\n\n return zones[tzid];\n },\n\n /**\n * Registers a timezone object or component.\n *\n * @param {Component|Timezone} timezone\n * The initialized zone or vtimezone.\n *\n * @param {String=} name\n * The name of the timezone. Defaults to the component's TZID if not\n * passed.\n */\n register: function(timezone, name) {\n if (zones === null) {\n this.reset();\n }\n\n // This avoids a breaking change by the change of argument order\n // TODO remove in v3\n if (typeof timezone === \"string\" && name instanceof Timezone) {\n [timezone, name] = [name, timezone];\n }\n\n if (!name) {\n if (timezone instanceof Timezone) {\n name = timezone.tzid;\n } else {\n if (timezone.name === 'vtimezone') {\n timezone = new Timezone(timezone);\n name = timezone.tzid;\n }\n }\n }\n\n if (!name) {\n throw new TypeError(\"Neither a timezone nor a name was passed\");\n }\n\n if (timezone instanceof Timezone) {\n zones[name] = timezone;\n } else {\n throw new TypeError('timezone must be ICAL.Timezone or ICAL.Component');\n }\n },\n\n /**\n * Removes a timezone by its tzid from the list.\n *\n * @param {String} tzid Timezone identifier (e.g. America/Los_Angeles)\n * @return {?Timezone} The removed timezone, or null if not registered\n */\n remove: function(tzid) {\n if (zones === null) {\n return null;\n }\n\n return (delete zones[tzid]);\n }\n};\n\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch */\n\n\n/**\n * Helper functions used in various places within ical.js\n * @module ICAL.helpers\n */\n\n/**\n * Compiles a list of all referenced TZIDs in all subcomponents and\n * removes any extra VTIMEZONE subcomponents. In addition, if any TZIDs\n * are referenced by a component, but a VTIMEZONE does not exist,\n * an attempt will be made to generate a VTIMEZONE using ICAL.TimezoneService.\n *\n * @param {Component} vcal The top-level VCALENDAR component.\n * @return {Component} The ICAL.Component that was passed in.\n */\nfunction updateTimezones(vcal) {\n let allsubs, properties, vtimezones, reqTzid, i;\n\n if (!vcal || vcal.name !== \"vcalendar\") {\n //not a top-level vcalendar component\n return vcal;\n }\n\n //Store vtimezone subcomponents in an object reference by tzid.\n //Store properties from everything else in another array\n allsubs = vcal.getAllSubcomponents();\n properties = [];\n vtimezones = {};\n for (i = 0; i < allsubs.length; i++) {\n if (allsubs[i].name === \"vtimezone\") {\n let tzid = allsubs[i].getFirstProperty(\"tzid\").getFirstValue();\n vtimezones[tzid] = allsubs[i];\n } else {\n properties = properties.concat(allsubs[i].getAllProperties());\n }\n }\n\n //create an object with one entry for each required tz\n reqTzid = {};\n for (i = 0; i < properties.length; i++) {\n let tzid = properties[i].getParameter(\"tzid\");\n if (tzid) {\n reqTzid[tzid] = true;\n }\n }\n\n //delete any vtimezones that are not on the reqTzid list.\n for (let [tzid, comp] of Object.entries(vtimezones)) {\n if (!reqTzid[tzid]) {\n vcal.removeSubcomponent(comp);\n }\n }\n\n //create any missing, but registered timezones\n for (let tzid of Object.keys(reqTzid)) {\n if (!vtimezones[tzid] && TimezoneService.has(tzid)) {\n vcal.addSubcomponent(TimezoneService.get(tzid).component);\n }\n }\n\n return vcal;\n}\n\n/**\n * Checks if the given type is of the number type and also NaN.\n *\n * @param {Number} number The number to check\n * @return {Boolean} True, if the number is strictly NaN\n */\nfunction isStrictlyNaN(number) {\n return typeof(number) === 'number' && isNaN(number);\n}\n\n/**\n * Parses a string value that is expected to be an integer, when the valid is\n * not an integer throws a decoration error.\n *\n * @param {String} string Raw string input\n * @return {Number} Parsed integer\n */\nfunction strictParseInt(string) {\n let result = parseInt(string, 10);\n\n if (isStrictlyNaN(result)) {\n throw new Error(\n 'Could not extract integer from \"' + string + '\"'\n );\n }\n\n return result;\n}\n\n/**\n * Creates or returns a class instance of a given type with the initialization\n * data if the data is not already an instance of the given type.\n *\n * @example\n * var time = new ICAL.Time(...);\n * var result = ICAL.helpers.formatClassType(time, ICAL.Time);\n *\n * (result instanceof ICAL.Time)\n * // => true\n *\n * result = ICAL.helpers.formatClassType({}, ICAL.Time);\n * (result isntanceof ICAL.Time)\n * // => true\n *\n *\n * @param {Object} data object initialization data\n * @param {Object} type object type (like ICAL.Time)\n * @return {?} An instance of the found type.\n */\nfunction formatClassType(data, type) {\n if (typeof(data) === 'undefined') {\n return undefined;\n }\n\n if (data instanceof type) {\n return data;\n }\n return new type(data);\n}\n\n/**\n * Identical to indexOf but will only match values when they are not preceded\n * by a backslash character.\n *\n * @param {String} buffer String to search\n * @param {String} search Value to look for\n * @param {Number} pos Start position\n * @return {Number} The position, or -1 if not found\n */\nfunction unescapedIndexOf(buffer, search, pos) {\n while ((pos = buffer.indexOf(search, pos)) !== -1) {\n if (pos > 0 && buffer[pos - 1] === '\\\\') {\n pos += 1;\n } else {\n return pos;\n }\n }\n return -1;\n}\n\n/**\n * Find the index for insertion using binary search.\n *\n * @param {Array} list The list to search\n * @param {?} seekVal The value to insert\n * @param {function(?,?)} cmpfunc The comparison func, that can\n * compare two seekVals\n * @return {Number} The insert position\n */\nfunction binsearchInsert(list, seekVal, cmpfunc) {\n if (!list.length)\n return 0;\n\n let low = 0, high = list.length - 1,\n mid, cmpval;\n\n while (low <= high) {\n mid = low + Math.floor((high - low) / 2);\n cmpval = cmpfunc(seekVal, list[mid]);\n\n if (cmpval < 0)\n high = mid - 1;\n else if (cmpval > 0)\n low = mid + 1;\n else\n break;\n }\n\n if (cmpval < 0)\n return mid; // insertion is displacing, so use mid outright.\n else if (cmpval > 0)\n return mid + 1;\n else\n return mid;\n}\n\n/**\n * Clone the passed object or primitive. By default a shallow clone will be\n * executed.\n *\n * @param {*} aSrc The thing to clone\n * @param {Boolean=} aDeep If true, a deep clone will be performed\n * @return {*} The copy of the thing\n */\nfunction clone(aSrc, aDeep) {\n if (!aSrc || typeof aSrc != \"object\") {\n return aSrc;\n } else if (aSrc instanceof Date) {\n return new Date(aSrc.getTime());\n } else if (\"clone\" in aSrc) {\n return aSrc.clone();\n } else if (Array.isArray(aSrc)) {\n let arr = [];\n for (let i = 0; i < aSrc.length; i++) {\n arr.push(aDeep ? clone(aSrc[i], true) : aSrc[i]);\n }\n return arr;\n } else {\n let obj = {};\n for (let [name, value] of Object.entries(aSrc)) {\n if (aDeep) {\n obj[name] = clone(value, true);\n } else {\n obj[name] = value;\n }\n }\n return obj;\n }\n}\n\n/**\n * Performs iCalendar line folding. A line ending character is inserted and\n * the next line begins with a whitespace.\n *\n * @example\n * SUMMARY:This line will be fold\n * ed right in the middle of a word.\n *\n * @param {String} aLine The line to fold\n * @return {String} The folded line\n */\nfunction foldline(aLine) {\n let result = \"\";\n let line = aLine || \"\", pos = 0, line_length = 0;\n //pos counts position in line for the UTF-16 presentation\n //line_length counts the bytes for the UTF-8 presentation\n while (line.length) {\n let cp = line.codePointAt(pos);\n if (cp < 128) ++line_length;\n else if (cp < 2048) line_length += 2;//needs 2 UTF-8 bytes\n else if (cp < 65536) line_length += 3;\n else line_length += 4; //cp is less than 1114112\n if (line_length < ICALmodule.foldLength + 1)\n pos += cp > 65535 ? 2 : 1;\n else {\n result += ICALmodule.newLineChar + \" \" + line.slice(0, Math.max(0, pos));\n line = line.slice(Math.max(0, pos));\n pos = line_length = 0;\n }\n }\n return result.slice(ICALmodule.newLineChar.length + 1);\n}\n\n/**\n * Pads the given string or number with zeros so it will have at least two\n * characters.\n *\n * @param {String|Number} data The string or number to pad\n * @return {String} The number padded as a string\n */\nfunction pad2(data) {\n if (typeof(data) !== 'string') {\n // handle fractions.\n if (typeof(data) === 'number') {\n data = parseInt(data);\n }\n data = String(data);\n }\n\n let len = data.length;\n\n switch (len) {\n case 0:\n return '00';\n case 1:\n return '0' + data;\n default:\n return data;\n }\n}\n\n/**\n * Truncates the given number, correctly handling negative numbers.\n *\n * @param {Number} number The number to truncate\n * @return {Number} The truncated number\n */\nfunction trunc(number) {\n return (number < 0 ? Math.ceil(number) : Math.floor(number));\n}\n\n/**\n * Poor-man's cross-browser object extension. Doesn't support all the\n * features, but enough for our usage. Note that the target's properties are\n * not overwritten with the source properties.\n *\n * @example\n * var child = ICAL.helpers.extend(parent, {\n * \"bar\": 123\n * });\n *\n * @param {Object} source The object to extend\n * @param {Object} target The object to extend with\n * @return {Object} Returns the target.\n */\nfunction extend(source, target) {\n for (let key in source) {\n let descr = Object.getOwnPropertyDescriptor(source, key);\n if (descr && !Object.getOwnPropertyDescriptor(target, key)) {\n Object.defineProperty(target, key, descr);\n }\n }\n return target;\n}\n\nvar helpers = /*#__PURE__*/Object.freeze({\n __proto__: null,\n binsearchInsert: binsearchInsert,\n clone: clone,\n extend: extend,\n foldline: foldline,\n formatClassType: formatClassType,\n isStrictlyNaN: isStrictlyNaN,\n pad2: pad2,\n strictParseInt: strictParseInt,\n trunc: trunc,\n unescapedIndexOf: unescapedIndexOf,\n updateTimezones: updateTimezones\n});\n\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch */\n\n\n/**\n * This class represents the \"utc-offset\" value type, with various calculation and manipulation\n * methods.\n *\n * @memberof ICAL\n */\nclass UtcOffset {\n /**\n * Creates a new {@link ICAL.UtcOffset} instance from the passed string.\n *\n * @param {String} aString The string to parse\n * @return {Duration} The created utc-offset instance\n */\n static fromString(aString) {\n // -05:00\n let options = {};\n //TODO: support seconds per rfc5545 ?\n options.factor = (aString[0] === '+') ? 1 : -1;\n options.hours = strictParseInt(aString.slice(1, 3));\n options.minutes = strictParseInt(aString.slice(4, 6));\n\n return new UtcOffset(options);\n }\n\n /**\n * Creates a new {@link ICAL.UtcOffset} instance from the passed seconds\n * value.\n *\n * @param {Number} aSeconds The number of seconds to convert\n */\n static fromSeconds(aSeconds) {\n let instance = new UtcOffset();\n instance.fromSeconds(aSeconds);\n return instance;\n }\n\n /**\n * Creates a new ICAL.UtcOffset instance.\n *\n * @param {Object} aData An object with members of the utc offset\n * @param {Number=} aData.hours The hours for the utc offset\n * @param {Number=} aData.minutes The minutes in the utc offset\n * @param {Number=} aData.factor The factor for the utc-offset, either -1 or 1\n */\n constructor(aData) {\n this.fromData(aData);\n }\n\n /**\n * The hours in the utc-offset\n * @type {Number}\n */\n hours = 0;\n\n /**\n * The minutes in the utc-offset\n * @type {Number}\n */\n minutes = 0;\n\n /**\n * The sign of the utc offset, 1 for positive offset, -1 for negative\n * offsets.\n * @type {Number}\n */\n factor = 1;\n\n /**\n * The type name, to be used in the jCal object.\n * @constant\n * @type {String}\n * @default \"utc-offset\"\n */\n icaltype = \"utc-offset\";\n\n /**\n * Returns a clone of the utc offset object.\n *\n * @return {UtcOffset} The cloned object\n */\n clone() {\n return UtcOffset.fromSeconds(this.toSeconds());\n }\n\n /**\n * Sets up the current instance using members from the passed data object.\n *\n * @param {Object} aData An object with members of the utc offset\n * @param {Number=} aData.hours The hours for the utc offset\n * @param {Number=} aData.minutes The minutes in the utc offset\n * @param {Number=} aData.factor The factor for the utc-offset, either -1 or 1\n */\n fromData(aData) {\n if (aData) {\n for (let [key, value] of Object.entries(aData)) {\n this[key] = value;\n }\n }\n this._normalize();\n }\n\n /**\n * Sets up the current instance from the given seconds value. The seconds\n * value is truncated to the minute. Offsets are wrapped when the world\n * ends, the hour after UTC+14:00 is UTC-12:00.\n *\n * @param {Number} aSeconds The seconds to convert into an offset\n */\n fromSeconds(aSeconds) {\n let secs = Math.abs(aSeconds);\n\n this.factor = aSeconds < 0 ? -1 : 1;\n this.hours = trunc(secs / 3600);\n\n secs -= (this.hours * 3600);\n this.minutes = trunc(secs / 60);\n return this;\n }\n\n /**\n * Convert the current offset to a value in seconds\n *\n * @return {Number} The offset in seconds\n */\n toSeconds() {\n return this.factor * (60 * this.minutes + 3600 * this.hours);\n }\n\n /**\n * Compare this utc offset with another one.\n *\n * @param {UtcOffset} other The other offset to compare with\n * @return {Number} -1, 0 or 1 for less/equal/greater\n */\n compare(other) {\n let a = this.toSeconds();\n let b = other.toSeconds();\n return (a > b) - (b > a);\n }\n\n _normalize() {\n // Range: 97200 seconds (with 1 hour inbetween)\n let secs = this.toSeconds();\n let factor = this.factor;\n while (secs < -43200) { // = UTC-12:00\n secs += 97200;\n }\n while (secs > 50400) { // = UTC+14:00\n secs -= 97200;\n }\n\n this.fromSeconds(secs);\n\n // Avoid changing the factor when on zero seconds\n if (secs == 0) {\n this.factor = factor;\n }\n }\n\n /**\n * The iCalendar string representation of this utc-offset.\n * @return {String}\n */\n toICALString() {\n return design.icalendar.value['utc-offset'].toICAL(this.toString());\n }\n\n /**\n * The string representation of this utc-offset.\n * @return {String}\n */\n toString() {\n return (this.factor == 1 ? \"+\" : \"-\") + pad2(this.hours) + ':' + pad2(this.minutes);\n }\n}\n\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch */\n\n\n/**\n * Describes a vCard time, which has slight differences to the ICAL.Time.\n * Properties can be null if not specified, for example for dates with\n * reduced accuracy or truncation.\n *\n * Note that currently not all methods are correctly re-implemented for\n * VCardTime. For example, comparison will have undefined results when some\n * members are null.\n *\n * Also, normalization is not yet implemented for this class!\n *\n * @memberof ICAL\n * @extends {Time}\n */\nclass VCardTime extends Time {\n /**\n * Returns a new ICAL.VCardTime instance from a date and/or time string.\n *\n * @param {String} aValue The string to create from\n * @param {String} aIcalType The type for this instance, e.g. date-and-or-time\n * @return {VCardTime} The date/time instance\n */\n static fromDateAndOrTimeString(aValue, aIcalType) {\n function part(v, s, e) {\n return v ? strictParseInt(v.slice(s, s + e)) : null;\n }\n let parts = aValue.split('T');\n let dt = parts[0], tmz = parts[1];\n let splitzone = tmz ? design.vcard.value.time._splitZone(tmz) : [];\n let zone = splitzone[0], tm = splitzone[1];\n\n let dtlen = dt ? dt.length : 0;\n let tmlen = tm ? tm.length : 0;\n\n let hasDashDate = dt && dt[0] == '-' && dt[1] == '-';\n let hasDashTime = tm && tm[0] == '-';\n\n let o = {\n year: hasDashDate ? null : part(dt, 0, 4),\n month: hasDashDate && (dtlen == 4 || dtlen == 7) ? part(dt, 2, 2) : dtlen == 7 ? part(dt, 5, 2) : dtlen == 10 ? part(dt, 5, 2) : null,\n day: dtlen == 5 ? part(dt, 3, 2) : dtlen == 7 && hasDashDate ? part(dt, 5, 2) : dtlen == 10 ? part(dt, 8, 2) : null,\n\n hour: hasDashTime ? null : part(tm, 0, 2),\n minute: hasDashTime && tmlen == 3 ? part(tm, 1, 2) : tmlen > 4 ? hasDashTime ? part(tm, 1, 2) : part(tm, 3, 2) : null,\n second: tmlen == 4 ? part(tm, 2, 2) : tmlen == 6 ? part(tm, 4, 2) : tmlen == 8 ? part(tm, 6, 2) : null\n };\n\n if (zone == 'Z') {\n zone = Timezone.utcTimezone;\n } else if (zone && zone[3] == ':') {\n zone = UtcOffset.fromString(zone);\n } else {\n zone = null;\n }\n\n return new VCardTime(o, zone, aIcalType);\n }\n\n\n /**\n * Creates a new ICAL.VCardTime instance.\n *\n * @param {Object} data The data for the time instance\n * @param {Number=} data.year The year for this date\n * @param {Number=} data.month The month for this date\n * @param {Number=} data.day The day for this date\n * @param {Number=} data.hour The hour for this date\n * @param {Number=} data.minute The minute for this date\n * @param {Number=} data.second The second for this date\n * @param {Timezone|UtcOffset} zone The timezone to use\n * @param {String} icaltype The type for this date/time object\n */\n constructor(data, zone, icaltype) {\n super(data, zone);\n this.icaltype = icaltype || \"date-and-or-time\";\n }\n\n /**\n * The class identifier.\n * @constant\n * @type {String}\n * @default \"vcardtime\"\n */\n icalclass = \"vcardtime\";\n\n /**\n * The type name, to be used in the jCal object.\n * @type {String}\n * @default \"date-and-or-time\"\n */\n icaltype = \"date-and-or-time\";\n\n /**\n * Returns a clone of the vcard date/time object.\n *\n * @return {VCardTime} The cloned object\n */\n clone() {\n return new VCardTime(this._time, this.zone, this.icaltype);\n }\n\n _normalize() {\n return this;\n }\n\n /**\n * @inheritdoc\n */\n utcOffset() {\n if (this.zone instanceof UtcOffset) {\n return this.zone.toSeconds();\n } else {\n return Time.prototype.utcOffset.apply(this, arguments);\n }\n }\n\n /**\n * Returns an RFC 6350 compliant representation of this object.\n *\n * @return {String} vcard date/time string\n */\n toICALString() {\n return design.vcard.value[this.icaltype].toICAL(this.toString());\n }\n\n /**\n * The string representation of this date/time, in jCard form\n * (including : and - separators).\n * @return {String}\n */\n toString() {\n let y = this.year, m = this.month, d = this.day;\n let h = this.hour, mm = this.minute, s = this.second;\n\n let hasYear = y !== null, hasMonth = m !== null, hasDay = d !== null;\n let hasHour = h !== null, hasMinute = mm !== null, hasSecond = s !== null;\n\n let datepart = (hasYear ? pad2(y) + (hasMonth || hasDay ? '-' : '') : (hasMonth || hasDay ? '--' : '')) +\n (hasMonth ? pad2(m) : '') +\n (hasDay ? '-' + pad2(d) : '');\n let timepart = (hasHour ? pad2(h) : '-') + (hasHour && hasMinute ? ':' : '') +\n (hasMinute ? pad2(mm) : '') + (!hasHour && !hasMinute ? '-' : '') +\n (hasMinute && hasSecond ? ':' : '') +\n (hasSecond ? pad2(s) : '');\n\n let zone;\n if (this.zone === Timezone.utcTimezone) {\n zone = 'Z';\n } else if (this.zone instanceof UtcOffset) {\n zone = this.zone.toString();\n } else if (this.zone === Timezone.localTimezone) {\n zone = '';\n } else if (this.zone instanceof Timezone) {\n let offset = UtcOffset.fromSeconds(this.zone.utcOffset(this));\n zone = offset.toString();\n } else {\n zone = '';\n }\n\n switch (this.icaltype) {\n case \"time\":\n return timepart + zone;\n case \"date-and-or-time\":\n case \"date-time\":\n return datepart + (timepart == '--' ? '' : 'T' + timepart + zone);\n case \"date\":\n return datepart;\n }\n return null;\n }\n}\n\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch */\n\n\n/**\n * This lets typescript resolve our custom types in the\n * generated d.ts files (jsdoc typedefs are converted to typescript types).\n * Ignore prevents the typedefs from being documented more than once.\n *\n * @ignore\n * @typedef {import(\"./types.js\").weekDay} weekDay\n * Imports the 'weekDay' type from the \"types.js\" module\n */\n\n/**\n * An iterator for a single recurrence rule. This class usually doesn't have to be instanciated\n * directly, the convenience method {@link ICAL.Recur#iterator} can be used.\n *\n * @memberof ICAL\n */\nclass RecurIterator {\n static _indexMap = {\n \"BYSECOND\": 0,\n \"BYMINUTE\": 1,\n \"BYHOUR\": 2,\n \"BYDAY\": 3,\n \"BYMONTHDAY\": 4,\n \"BYYEARDAY\": 5,\n \"BYWEEKNO\": 6,\n \"BYMONTH\": 7,\n \"BYSETPOS\": 8\n };\n\n static _expandMap = {\n \"SECONDLY\": [1, 1, 1, 1, 1, 1, 1, 1],\n \"MINUTELY\": [2, 1, 1, 1, 1, 1, 1, 1],\n \"HOURLY\": [2, 2, 1, 1, 1, 1, 1, 1],\n \"DAILY\": [2, 2, 2, 1, 1, 1, 1, 1],\n \"WEEKLY\": [2, 2, 2, 2, 3, 3, 1, 1],\n \"MONTHLY\": [2, 2, 2, 2, 2, 3, 3, 1],\n \"YEARLY\": [2, 2, 2, 2, 2, 2, 2, 2]\n };\n\n static UNKNOWN = 0;\n static CONTRACT = 1;\n static EXPAND = 2;\n static ILLEGAL = 3;\n\n /**\n * Creates a new ICAL.RecurIterator instance. The options object may contain additional members\n * when resuming iteration from a previous run.\n *\n * @param {Object} options The iterator options\n * @param {Recur} options.rule The rule to iterate.\n * @param {Time} options.dtstart The start date of the event.\n * @param {Boolean=} options.initialized When true, assume that options are\n * from a previously constructed iterator. Initialization will not be\n * repeated.\n */\n constructor(options) {\n this.fromData(options);\n }\n\n /**\n * True when iteration is finished.\n * @type {Boolean}\n */\n completed = false;\n\n /**\n * The rule that is being iterated\n * @type {Recur}\n */\n rule = null;\n\n /**\n * The start date of the event being iterated.\n * @type {Time}\n */\n dtstart = null;\n\n /**\n * The last occurrence that was returned from the\n * {@link RecurIterator#next} method.\n * @type {Time}\n */\n last = null;\n\n /**\n * The sequence number from the occurrence\n * @type {Number}\n */\n occurrence_number = 0;\n\n /**\n * The indices used for the {@link ICAL.RecurIterator#by_data} object.\n * @type {Object}\n * @private\n */\n by_indices = null;\n\n /**\n * If true, the iterator has already been initialized\n * @type {Boolean}\n * @private\n */\n initialized = false;\n\n /**\n * The initializd by-data.\n * @type {Object}\n * @private\n */\n by_data = null;\n\n /**\n * The expanded yeardays\n * @type {Array}\n * @private\n */\n days = null;\n\n /**\n * The index in the {@link ICAL.RecurIterator#days} array.\n * @type {Number}\n * @private\n */\n days_index = 0;\n\n /**\n * Initialize the recurrence iterator from the passed data object. This\n * method is usually not called directly, you can initialize the iterator\n * through the constructor.\n *\n * @param {Object} options The iterator options\n * @param {Recur} options.rule The rule to iterate.\n * @param {Time} options.dtstart The start date of the event.\n * @param {Boolean=} options.initialized When true, assume that options are\n * from a previously constructed iterator. Initialization will not be\n * repeated.\n */\n fromData(options) {\n this.rule = formatClassType(options.rule, Recur);\n\n if (!this.rule) {\n throw new Error('iterator requires a (ICAL.Recur) rule');\n }\n\n this.dtstart = formatClassType(options.dtstart, Time);\n\n if (!this.dtstart) {\n throw new Error('iterator requires a (ICAL.Time) dtstart');\n }\n\n if (options.by_data) {\n this.by_data = options.by_data;\n } else {\n this.by_data = clone(this.rule.parts, true);\n }\n\n if (options.occurrence_number)\n this.occurrence_number = options.occurrence_number;\n\n this.days = options.days || [];\n if (options.last) {\n this.last = formatClassType(options.last, Time);\n }\n\n this.by_indices = options.by_indices;\n\n if (!this.by_indices) {\n this.by_indices = {\n \"BYSECOND\": 0,\n \"BYMINUTE\": 0,\n \"BYHOUR\": 0,\n \"BYDAY\": 0,\n \"BYMONTH\": 0,\n \"BYWEEKNO\": 0,\n \"BYMONTHDAY\": 0\n };\n }\n\n this.initialized = options.initialized || false;\n\n if (!this.initialized) {\n try {\n this.init();\n } catch (e) {\n if (e instanceof InvalidRecurrenceRuleError) {\n // Init may error if there are no possible recurrence instances from\n // the rule, but we don't want to bubble this error up. Instead, we\n // create an empty iterator.\n this.completed = true;\n } else {\n // Propagate other errors to consumers.\n throw e;\n }\n }\n }\n }\n\n /**\n * Initialize the iterator\n * @private\n */\n init() {\n this.initialized = true;\n this.last = this.dtstart.clone();\n let parts = this.by_data;\n\n if (\"BYDAY\" in parts) {\n // libical does this earlier when the rule is loaded, but we postpone to\n // now so we can preserve the original order.\n this.sort_byday_rules(parts.BYDAY);\n }\n\n // The BYYEARDAY may only appear with BYDAY\n if (\"BYYEARDAY\" in parts) {\n if (\"BYMONTH\" in parts || \"BYWEEKNO\" in parts ||\n \"BYMONTHDAY\" in parts) {\n throw new Error(\"Invalid BYYEARDAY rule\");\n }\n }\n\n // BYWEEKNO and BYMONTHDAY rule parts may not both appear\n if (\"BYWEEKNO\" in parts && \"BYMONTHDAY\" in parts) {\n throw new Error(\"BYWEEKNO does not fit to BYMONTHDAY\");\n }\n\n // For MONTHLY recurrences (FREQ=MONTHLY) neither BYYEARDAY nor\n // BYWEEKNO may appear.\n if (this.rule.freq == \"MONTHLY\" &&\n (\"BYYEARDAY\" in parts || \"BYWEEKNO\" in parts)) {\n throw new Error(\"For MONTHLY recurrences neither BYYEARDAY nor BYWEEKNO may appear\");\n }\n\n // For WEEKLY recurrences (FREQ=WEEKLY) neither BYMONTHDAY nor\n // BYYEARDAY may appear.\n if (this.rule.freq == \"WEEKLY\" &&\n (\"BYYEARDAY\" in parts || \"BYMONTHDAY\" in parts)) {\n throw new Error(\"For WEEKLY recurrences neither BYMONTHDAY nor BYYEARDAY may appear\");\n }\n\n // BYYEARDAY may only appear in YEARLY rules\n if (this.rule.freq != \"YEARLY\" && \"BYYEARDAY\" in parts) {\n throw new Error(\"BYYEARDAY may only appear in YEARLY rules\");\n }\n\n this.last.second = this.setup_defaults(\"BYSECOND\", \"SECONDLY\", this.dtstart.second);\n this.last.minute = this.setup_defaults(\"BYMINUTE\", \"MINUTELY\", this.dtstart.minute);\n this.last.hour = this.setup_defaults(\"BYHOUR\", \"HOURLY\", this.dtstart.hour);\n this.last.day = this.setup_defaults(\"BYMONTHDAY\", \"DAILY\", this.dtstart.day);\n this.last.month = this.setup_defaults(\"BYMONTH\", \"MONTHLY\", this.dtstart.month);\n\n if (this.rule.freq == \"WEEKLY\") {\n if (\"BYDAY\" in parts) {\n let [, dow] = this.ruleDayOfWeek(parts.BYDAY[0], this.rule.wkst);\n let wkdy = dow - this.last.dayOfWeek(this.rule.wkst);\n if ((this.last.dayOfWeek(this.rule.wkst) < dow && wkdy >= 0) || wkdy < 0) {\n // Initial time is after first day of BYDAY data\n this.last.day += wkdy;\n }\n } else {\n let dayName = Recur.numericDayToIcalDay(this.dtstart.dayOfWeek());\n parts.BYDAY = [dayName];\n }\n }\n\n if (this.rule.freq == \"YEARLY\") {\n // Some yearly recurrence rules may be specific enough to not actually\n // occur on a yearly basis, e.g. the 29th day of February or the fifth\n // Monday of a given month. The standard isn't clear on the intended\n // behavior in these cases, but `libical` at least will iterate until it\n // finds a matching year.\n // CAREFUL: Some rules may specify an occurrence that can never happen,\n // e.g. the first Monday of April so long as it falls on the 15th\n // through the 21st. Detecting these is non-trivial, so ensure that we\n // stop iterating at some point.\n const untilYear = this.rule.until ? this.rule.until.year : 20000;\n while (this.last.year <= untilYear) {\n this.expand_year_days(this.last.year);\n if (this.days.length > 0) {\n break;\n }\n this.increment_year(this.rule.interval);\n }\n\n if (this.days.length == 0) {\n throw new InvalidRecurrenceRuleError();\n }\n\n // If there's no occurrence in this year, try the following years. This\n // would only happen looking for day 366 or -366.\n if (!this._nextByYearDay() && !this.next_year() && !this.next_year() && !this.next_year()) {\n // This should not be possible, but just in case it is, stop.\n throw new InvalidRecurrenceRuleError();\n }\n }\n\n if (this.rule.freq == \"MONTHLY\") {\n if (this.has_by_data(\"BYDAY\")) {\n let tempLast = null;\n let initLast = this.last.clone();\n let daysInMonth = Time.daysInMonth(this.last.month, this.last.year);\n\n // Check every weekday in BYDAY with relative dow and pos.\n for (let bydow of this.by_data.BYDAY) {\n this.last = initLast.clone();\n let [pos, dow] = this.ruleDayOfWeek(bydow);\n let dayOfMonth = this.last.nthWeekDay(dow, pos);\n\n // If |pos| >= 6, the byday is invalid for a monthly rule.\n if (pos >= 6 || pos <= -6) {\n throw new Error(\"Malformed values in BYDAY part\");\n }\n\n // If a Byday with pos=+/-5 is not in the current month it\n // must be searched in the next months.\n if (dayOfMonth > daysInMonth || dayOfMonth <= 0) {\n // Skip if we have already found a \"last\" in this month.\n if (tempLast && tempLast.month == initLast.month) {\n continue;\n }\n while (dayOfMonth > daysInMonth || dayOfMonth <= 0) {\n this.increment_month();\n daysInMonth = Time.daysInMonth(this.last.month, this.last.year);\n dayOfMonth = this.last.nthWeekDay(dow, pos);\n }\n }\n\n this.last.day = dayOfMonth;\n if (!tempLast || this.last.compare(tempLast) < 0) {\n tempLast = this.last.clone();\n }\n }\n this.last = tempLast.clone();\n\n //XXX: This feels like a hack, but we need to initialize\n // the BYMONTHDAY case correctly and byDayAndMonthDay handles\n // this case. It accepts a special flag which will avoid incrementing\n // the initial value without the flag days that match the start time\n // would be missed.\n if (this.has_by_data('BYMONTHDAY')) {\n this._byDayAndMonthDay(true);\n }\n\n if (this.last.day > daysInMonth || this.last.day == 0) {\n throw new Error(\"Malformed values in BYDAY part\");\n }\n } else if (this.has_by_data(\"BYMONTHDAY\")) {\n // Change the day value so that normalisation won't change the month.\n this.last.day = 1;\n\n // Get a sorted list of days in the starting month that match the rule.\n let normalized = this.normalizeByMonthDayRules(\n this.last.year,\n this.last.month,\n this.rule.parts.BYMONTHDAY\n ).filter(d => d >= this.last.day);\n\n if (normalized.length) {\n // There's at least one valid day, use it.\n this.last.day = normalized[0];\n this.by_data.BYMONTHDAY = normalized;\n } else {\n // There's no occurrence in this month, find the next valid month.\n // The longest possible sequence of skipped months is February-April-June,\n // so we might need to call next_month up to three times.\n if (!this.next_month() && !this.next_month() && !this.next_month()) {\n throw new InvalidRecurrenceRuleError();\n }\n }\n }\n }\n }\n\n /**\n * Retrieve the next occurrence from the iterator.\n * @return {Time}\n */\n next(again = false) {\n let before = (this.last ? this.last.clone() : null);\n\n if ((this.rule.count && this.occurrence_number >= this.rule.count) ||\n (this.rule.until && this.last.compare(this.rule.until) > 0)) {\n this.completed = true;\n }\n\n if (this.completed) {\n return null;\n }\n\n if (this.occurrence_number == 0 && this.last.compare(this.dtstart) >= 0) {\n // First of all, give the instance that was initialized\n this.occurrence_number++;\n return this.last;\n }\n\n let valid;\n let invalid_count = 0;\n do {\n valid = 1;\n\n switch (this.rule.freq) {\n case \"SECONDLY\":\n this.next_second();\n break;\n case \"MINUTELY\":\n this.next_minute();\n break;\n case \"HOURLY\":\n this.next_hour();\n break;\n case \"DAILY\":\n this.next_day();\n break;\n case \"WEEKLY\":\n this.next_week();\n break;\n case \"MONTHLY\":\n valid = this.next_month();\n if (valid) {\n invalid_count = 0;\n } else if (++invalid_count == 336) {\n // We've been through all 91 month variations and not found a recurrence. Stop.\n // (12 months and 29-day February × 7 starting days.)\n this.completed = true;\n return null;\n }\n break;\n case \"YEARLY\":\n valid = this.next_year();\n if (valid) {\n invalid_count = 0;\n } else if (++invalid_count == 28) {\n // We've been through all 14 year variations and not found a recurrence. Stop.\n // (365-day and 366-day years × 7 starting days.)\n this.completed = true;\n return null;\n }\n break;\n\n default:\n return null;\n }\n } while (!this.check_contracting_rules() ||\n this.last.compare(this.dtstart) < 0 ||\n !valid);\n\n if (this.last.compare(before) == 0) {\n if (again) {\n throw new Error(\"Same occurrence found twice, protecting you from death by recursion\");\n }\n this.next(true);\n }\n\n if (this.rule.until && this.last.compare(this.rule.until) > 0) {\n this.completed = true;\n return null;\n } else {\n this.occurrence_number++;\n return this.last;\n }\n }\n\n next_second() {\n return this.next_generic(\"BYSECOND\", \"SECONDLY\", \"second\", \"minute\");\n }\n\n increment_second(inc) {\n return this.increment_generic(inc, \"second\", 60, \"minute\");\n }\n\n next_minute() {\n return this.next_generic(\"BYMINUTE\", \"MINUTELY\",\n \"minute\", \"hour\", \"next_second\");\n }\n\n increment_minute(inc) {\n return this.increment_generic(inc, \"minute\", 60, \"hour\");\n }\n\n next_hour() {\n return this.next_generic(\"BYHOUR\", \"HOURLY\", \"hour\",\n \"monthday\", \"next_minute\");\n }\n\n increment_hour(inc) {\n this.increment_generic(inc, \"hour\", 24, \"monthday\");\n }\n\n next_day() {\n let this_freq = (this.rule.freq == \"DAILY\");\n\n if (this.next_hour() == 0) {\n return 0;\n }\n\n if (this_freq) {\n this.increment_monthday(this.rule.interval);\n } else {\n this.increment_monthday(1);\n }\n\n return 0;\n }\n\n next_week() {\n let end_of_data = 0;\n\n if (this.next_weekday_by_week() == 0) {\n return end_of_data;\n }\n\n if (this.has_by_data(\"BYWEEKNO\")) {\n this.by_indices.BYWEEKNO++;\n\n if (this.by_indices.BYWEEKNO == this.by_data.BYWEEKNO.length) {\n this.by_indices.BYWEEKNO = 0;\n end_of_data = 1;\n }\n\n // HACK should be first month of the year\n this.last.month = 1;\n this.last.day = 1;\n\n let week_no = this.by_data.BYWEEKNO[this.by_indices.BYWEEKNO];\n\n this.last.day += 7 * week_no;\n\n if (end_of_data) {\n this.increment_year(1);\n }\n } else {\n // Jump to the next week\n this.increment_monthday(7 * this.rule.interval);\n }\n\n return end_of_data;\n }\n\n /**\n * Normalize each by day rule for a given year/month.\n * Takes into account ordering and negative rules\n *\n * @private\n * @param {Number} year Current year.\n * @param {Number} month Current month.\n * @param {Array} rules Array of rules.\n *\n * @return {Array} sorted and normalized rules.\n * Negative rules will be expanded to their\n * correct positive values for easier processing.\n */\n normalizeByMonthDayRules(year, month, rules) {\n let daysInMonth = Time.daysInMonth(month, year);\n\n // XXX: This is probably bad for performance to allocate\n // a new array for each month we scan, if possible\n // we should try to optimize this...\n let newRules = [];\n\n let ruleIdx = 0;\n let len = rules.length;\n let rule;\n\n for (; ruleIdx < len; ruleIdx++) {\n rule = parseInt(rules[ruleIdx], 10);\n if (isNaN(rule)) {\n throw new Error('Invalid BYMONTHDAY value');\n }\n\n // if this rule falls outside of given\n // month discard it.\n if (Math.abs(rule) > daysInMonth) {\n continue;\n }\n\n // negative case\n if (rule < 0) {\n // we add (not subtract it is a negative number)\n // one from the rule because 1 === last day of month\n rule = daysInMonth + (rule + 1);\n } else if (rule === 0) {\n // skip zero: it is invalid.\n continue;\n }\n\n // only add unique items...\n if (newRules.indexOf(rule) === -1) {\n newRules.push(rule);\n }\n\n }\n\n // unique and sort\n return newRules.sort(function(a, b) { return a - b; });\n }\n\n /**\n * NOTES:\n * We are given a list of dates in the month (BYMONTHDAY) (23, etc..)\n * Also we are given a list of days (BYDAY) (MO, 2SU, etc..) when\n * both conditions match a given date (this.last.day) iteration stops.\n *\n * @private\n * @param {Boolean=} isInit When given true will not increment the\n * current day (this.last).\n */\n _byDayAndMonthDay(isInit) {\n let byMonthDay; // setup in initMonth\n let byDay = this.by_data.BYDAY;\n\n let date;\n let dateIdx = 0;\n let dateLen; // setup in initMonth\n let dayLen = byDay.length;\n\n // we are not valid by default\n let dataIsValid = 0;\n\n let daysInMonth;\n let self = this;\n // we need a copy of this, because a DateTime gets normalized\n // automatically if the day is out of range. At some points we\n // set the last day to 0 to start counting.\n let lastDay = this.last.day;\n\n function initMonth() {\n daysInMonth = Time.daysInMonth(\n self.last.month, self.last.year\n );\n\n byMonthDay = self.normalizeByMonthDayRules(\n self.last.year,\n self.last.month,\n self.by_data.BYMONTHDAY\n );\n\n dateLen = byMonthDay.length;\n\n // For the case of more than one occurrence in one month\n // we have to be sure to start searching after the last\n // found date or at the last BYMONTHDAY, unless we are\n // initializing the iterator because in this case we have\n // to consider the last found date too.\n while (byMonthDay[dateIdx] <= lastDay &&\n !(isInit && byMonthDay[dateIdx] == lastDay) &&\n dateIdx < dateLen - 1) {\n dateIdx++;\n }\n }\n\n function nextMonth() {\n // since the day is incremented at the start\n // of the loop below, we need to start at 0\n lastDay = 0;\n self.increment_month();\n dateIdx = 0;\n initMonth();\n }\n\n initMonth();\n\n // should come after initMonth\n if (isInit) {\n lastDay -= 1;\n }\n\n // Use a counter to avoid an infinite loop with malformed rules.\n // Stop checking after 4 years so we consider also a leap year.\n let monthsCounter = 48;\n\n while (!dataIsValid && monthsCounter) {\n monthsCounter--;\n // increment the current date. This is really\n // important otherwise we may fall into the infinite\n // loop trap. The initial date takes care of the case\n // where the current date is the date we are looking\n // for.\n date = lastDay + 1;\n\n if (date > daysInMonth) {\n nextMonth();\n continue;\n }\n\n // find next date\n let next = byMonthDay[dateIdx++];\n\n // this logic is dependent on the BYMONTHDAYS\n // being in order (which is done by #normalizeByMonthDayRules)\n if (next >= date) {\n // if the next month day is in the future jump to it.\n lastDay = next;\n } else {\n // in this case the 'next' monthday has past\n // we must move to the month.\n nextMonth();\n continue;\n }\n\n // Now we can loop through the day rules to see\n // if one matches the current month date.\n for (let dayIdx = 0; dayIdx < dayLen; dayIdx++) {\n let parts = this.ruleDayOfWeek(byDay[dayIdx]);\n let pos = parts[0];\n let dow = parts[1];\n\n this.last.day = lastDay;\n if (this.last.isNthWeekDay(dow, pos)) {\n // when we find the valid one we can mark\n // the conditions as met and break the loop.\n // (Because we have this condition above\n // it will also break the parent loop).\n dataIsValid = 1;\n break;\n }\n }\n\n // It is completely possible that the combination\n // cannot be matched in the current month.\n // When we reach the end of possible combinations\n // in the current month we iterate to the next one.\n // since dateIdx is incremented right after getting\n // \"next\", we don't need dateLen -1 here.\n if (!dataIsValid && dateIdx === dateLen) {\n nextMonth();\n continue;\n }\n }\n\n if (monthsCounter <= 0) {\n // Checked 4 years without finding a Byday that matches\n // a Bymonthday. Maybe the rule is not correct.\n throw new Error(\"Malformed values in BYDAY combined with BYMONTHDAY parts\");\n }\n\n\n return dataIsValid;\n }\n\n next_month() {\n let data_valid = 1;\n\n if (this.next_hour() == 0) {\n return data_valid;\n }\n\n if (this.has_by_data(\"BYDAY\") && this.has_by_data(\"BYMONTHDAY\")) {\n data_valid = this._byDayAndMonthDay();\n } else if (this.has_by_data(\"BYDAY\")) {\n let daysInMonth = Time.daysInMonth(this.last.month, this.last.year);\n let setpos = 0;\n let setpos_total = 0;\n\n if (this.has_by_data(\"BYSETPOS\")) {\n let last_day = this.last.day;\n for (let day = 1; day <= daysInMonth; day++) {\n this.last.day = day;\n if (this.is_day_in_byday(this.last)) {\n setpos_total++;\n if (day <= last_day) {\n setpos++;\n }\n }\n }\n this.last.day = last_day;\n }\n\n data_valid = 0;\n let day;\n for (day = this.last.day + 1; day <= daysInMonth; day++) {\n this.last.day = day;\n\n if (this.is_day_in_byday(this.last)) {\n if (!this.has_by_data(\"BYSETPOS\") ||\n this.check_set_position(++setpos) ||\n this.check_set_position(setpos - setpos_total - 1)) {\n\n data_valid = 1;\n break;\n }\n }\n }\n\n if (day > daysInMonth) {\n this.last.day = 1;\n this.increment_month();\n\n if (this.is_day_in_byday(this.last)) {\n if (!this.has_by_data(\"BYSETPOS\") || this.check_set_position(1)) {\n data_valid = 1;\n }\n } else {\n data_valid = 0;\n }\n }\n } else if (this.has_by_data(\"BYMONTHDAY\")) {\n this.by_indices.BYMONTHDAY++;\n\n if (this.by_indices.BYMONTHDAY >= this.by_data.BYMONTHDAY.length) {\n this.by_indices.BYMONTHDAY = 0;\n this.increment_month();\n if (this.by_indices.BYMONTHDAY >= this.by_data.BYMONTHDAY.length) {\n return 0;\n }\n }\n\n let daysInMonth = Time.daysInMonth(this.last.month, this.last.year);\n let day = this.by_data.BYMONTHDAY[this.by_indices.BYMONTHDAY];\n\n if (day < 0) {\n day = daysInMonth + day + 1;\n }\n\n if (day > daysInMonth) {\n this.last.day = 1;\n data_valid = this.is_day_in_byday(this.last);\n } else {\n this.last.day = day;\n }\n } else {\n this.increment_month();\n let daysInMonth = Time.daysInMonth(this.last.month, this.last.year);\n if (this.by_data.BYMONTHDAY[0] > daysInMonth) {\n data_valid = 0;\n } else {\n this.last.day = this.by_data.BYMONTHDAY[0];\n }\n }\n\n return data_valid;\n }\n\n next_weekday_by_week() {\n let end_of_data = 0;\n\n if (this.next_hour() == 0) {\n return end_of_data;\n }\n\n if (!this.has_by_data(\"BYDAY\")) {\n return 1;\n }\n\n for (;;) {\n let tt = new Time();\n this.by_indices.BYDAY++;\n\n if (this.by_indices.BYDAY == Object.keys(this.by_data.BYDAY).length) {\n this.by_indices.BYDAY = 0;\n end_of_data = 1;\n }\n\n let coded_day = this.by_data.BYDAY[this.by_indices.BYDAY];\n let parts = this.ruleDayOfWeek(coded_day);\n let dow = parts[1];\n\n dow -= this.rule.wkst;\n\n if (dow < 0) {\n dow += 7;\n }\n\n tt.year = this.last.year;\n tt.month = this.last.month;\n tt.day = this.last.day;\n\n let startOfWeek = tt.startDoyWeek(this.rule.wkst);\n\n if (dow + startOfWeek < 1) {\n // The selected date is in the previous year\n if (!end_of_data) {\n continue;\n }\n }\n\n let next = Time.fromDayOfYear(startOfWeek + dow, this.last.year);\n\n /**\n * The normalization horrors below are due to\n * the fact that when the year/month/day changes\n * it can effect the other operations that come after.\n */\n this.last.year = next.year;\n this.last.month = next.month;\n this.last.day = next.day;\n\n return end_of_data;\n }\n }\n\n next_year() {\n if (this.next_hour() == 0) {\n return 0;\n }\n\n if (this.days.length == 0 || ++this.days_index == this.days.length) {\n this.days_index = 0;\n this.increment_year(this.rule.interval);\n if (this.has_by_data(\"BYMONTHDAY\")) {\n this.by_data.BYMONTHDAY = this.normalizeByMonthDayRules(\n this.last.year,\n this.last.month,\n this.rule.parts.BYMONTHDAY\n );\n }\n this.expand_year_days(this.last.year);\n if (this.days.length == 0) {\n return 0;\n }\n }\n\n return this._nextByYearDay();\n }\n\n _nextByYearDay() {\n let doy = this.days[this.days_index];\n let year = this.last.year;\n\n if (Math.abs(doy) == 366 && !Time.isLeapYear(this.last.year)) {\n return 0;\n }\n\n if (doy < 1) {\n // Time.fromDayOfYear(doy, year) indexes relative to the\n // start of the given year. That is different from the\n // semantics of BYYEARDAY where negative indexes are an\n // offset from the end of the given year.\n doy += 1;\n year += 1;\n }\n let next = Time.fromDayOfYear(doy, year);\n this.last.day = next.day;\n this.last.month = next.month;\n\n return 1;\n }\n\n /**\n * @param dow (eg: '1TU', '-1MO')\n * @param {weekDay=} aWeekStart The week start weekday\n * @return [pos, numericDow] (eg: [1, 3]) numericDow is relative to aWeekStart\n */\n ruleDayOfWeek(dow, aWeekStart) {\n let matches = dow.match(/([+-]?[0-9])?(MO|TU|WE|TH|FR|SA|SU)/);\n if (matches) {\n let pos = parseInt(matches[1] || 0, 10);\n dow = Recur.icalDayToNumericDay(matches[2], aWeekStart);\n return [pos, dow];\n } else {\n return [0, 0];\n }\n }\n\n next_generic(aRuleType, aInterval, aDateAttr, aFollowingAttr, aPreviousIncr) {\n let has_by_rule = (aRuleType in this.by_data);\n let this_freq = (this.rule.freq == aInterval);\n let end_of_data = 0;\n\n if (aPreviousIncr && this[aPreviousIncr]() == 0) {\n return end_of_data;\n }\n\n if (has_by_rule) {\n this.by_indices[aRuleType]++;\n let dta = this.by_data[aRuleType];\n\n if (this.by_indices[aRuleType] == dta.length) {\n this.by_indices[aRuleType] = 0;\n end_of_data = 1;\n }\n this.last[aDateAttr] = dta[this.by_indices[aRuleType]];\n } else if (this_freq) {\n this[\"increment_\" + aDateAttr](this.rule.interval);\n }\n\n if (has_by_rule && end_of_data && this_freq) {\n this[\"increment_\" + aFollowingAttr](1);\n }\n\n return end_of_data;\n }\n\n increment_monthday(inc) {\n for (let i = 0; i < inc; i++) {\n let daysInMonth = Time.daysInMonth(this.last.month, this.last.year);\n this.last.day++;\n\n if (this.last.day > daysInMonth) {\n this.last.day -= daysInMonth;\n this.increment_month();\n }\n }\n }\n\n increment_month() {\n this.last.day = 1;\n if (this.has_by_data(\"BYMONTH\")) {\n this.by_indices.BYMONTH++;\n\n if (this.by_indices.BYMONTH == this.by_data.BYMONTH.length) {\n this.by_indices.BYMONTH = 0;\n this.increment_year(1);\n }\n\n this.last.month = this.by_data.BYMONTH[this.by_indices.BYMONTH];\n } else {\n if (this.rule.freq == \"MONTHLY\") {\n this.last.month += this.rule.interval;\n } else {\n this.last.month++;\n }\n\n this.last.month--;\n let years = trunc(this.last.month / 12);\n this.last.month %= 12;\n this.last.month++;\n\n if (years != 0) {\n this.increment_year(years);\n }\n }\n\n if (this.has_by_data(\"BYMONTHDAY\")) {\n this.by_data.BYMONTHDAY = this.normalizeByMonthDayRules(\n this.last.year,\n this.last.month,\n this.rule.parts.BYMONTHDAY\n );\n }\n }\n\n increment_year(inc) {\n // Don't jump into the next month if this.last is Feb 29.\n this.last.day = 1;\n this.last.year += inc;\n }\n\n increment_generic(inc, aDateAttr, aFactor, aNextIncrement) {\n this.last[aDateAttr] += inc;\n let nextunit = trunc(this.last[aDateAttr] / aFactor);\n this.last[aDateAttr] %= aFactor;\n if (nextunit != 0) {\n this[\"increment_\" + aNextIncrement](nextunit);\n }\n }\n\n has_by_data(aRuleType) {\n return (aRuleType in this.rule.parts);\n }\n\n expand_year_days(aYear) {\n let t = new Time();\n this.days = [];\n\n // We need our own copy with a few keys set\n let parts = {};\n let rules = [\"BYDAY\", \"BYWEEKNO\", \"BYMONTHDAY\", \"BYMONTH\", \"BYYEARDAY\"];\n for (let part of rules) {\n if (part in this.rule.parts) {\n parts[part] = this.rule.parts[part];\n }\n }\n\n if (\"BYMONTH\" in parts && \"BYWEEKNO\" in parts) {\n let valid = 1;\n let validWeeks = {};\n t.year = aYear;\n t.isDate = true;\n\n for (let monthIdx = 0; monthIdx < this.by_data.BYMONTH.length; monthIdx++) {\n let month = this.by_data.BYMONTH[monthIdx];\n t.month = month;\n t.day = 1;\n let first_week = t.weekNumber(this.rule.wkst);\n t.day = Time.daysInMonth(month, aYear);\n let last_week = t.weekNumber(this.rule.wkst);\n for (monthIdx = first_week; monthIdx < last_week; monthIdx++) {\n validWeeks[monthIdx] = 1;\n }\n }\n\n for (let weekIdx = 0; weekIdx < this.by_data.BYWEEKNO.length && valid; weekIdx++) {\n let weekno = this.by_data.BYWEEKNO[weekIdx];\n if (weekno < 52) {\n valid &= validWeeks[weekIdx];\n } else {\n valid = 0;\n }\n }\n\n if (valid) {\n delete parts.BYMONTH;\n } else {\n delete parts.BYWEEKNO;\n }\n }\n\n let partCount = Object.keys(parts).length;\n\n if (partCount == 0) {\n let t1 = this.dtstart.clone();\n t1.year = this.last.year;\n this.days.push(t1.dayOfYear());\n } else if (partCount == 1 && \"BYMONTH\" in parts) {\n for (let month of this.by_data.BYMONTH) {\n let t2 = this.dtstart.clone();\n t2.year = aYear;\n t2.month = month;\n t2.isDate = true;\n this.days.push(t2.dayOfYear());\n }\n } else if (partCount == 1 && \"BYMONTHDAY\" in parts) {\n for (let monthday of this.by_data.BYMONTHDAY) {\n let t3 = this.dtstart.clone();\n if (monthday < 0) {\n let daysInMonth = Time.daysInMonth(t3.month, aYear);\n monthday = monthday + daysInMonth + 1;\n }\n t3.day = monthday;\n t3.year = aYear;\n t3.isDate = true;\n this.days.push(t3.dayOfYear());\n }\n } else if (partCount == 2 &&\n \"BYMONTHDAY\" in parts &&\n \"BYMONTH\" in parts) {\n for (let month of this.by_data.BYMONTH) {\n let daysInMonth = Time.daysInMonth(month, aYear);\n for (let monthday of this.by_data.BYMONTHDAY) {\n if (monthday < 0) {\n monthday = monthday + daysInMonth + 1;\n }\n t.day = monthday;\n t.month = month;\n t.year = aYear;\n t.isDate = true;\n\n this.days.push(t.dayOfYear());\n }\n }\n } else if (partCount == 1 && \"BYWEEKNO\" in parts) ; else if (partCount == 2 &&\n \"BYWEEKNO\" in parts &&\n \"BYMONTHDAY\" in parts) ; else if (partCount == 1 && \"BYDAY\" in parts) {\n this.days = this.days.concat(this.expand_by_day(aYear));\n } else if (partCount == 2 && \"BYDAY\" in parts && \"BYMONTH\" in parts) {\n for (let month of this.by_data.BYMONTH) {\n let daysInMonth = Time.daysInMonth(month, aYear);\n\n t.year = aYear;\n t.month = month;\n t.day = 1;\n t.isDate = true;\n\n let first_dow = t.dayOfWeek();\n let doy_offset = t.dayOfYear() - 1;\n\n t.day = daysInMonth;\n let last_dow = t.dayOfWeek();\n\n if (this.has_by_data(\"BYSETPOS\")) {\n let by_month_day = [];\n for (let day = 1; day <= daysInMonth; day++) {\n t.day = day;\n if (this.is_day_in_byday(t)) {\n by_month_day.push(day);\n }\n }\n\n for (let spIndex = 0; spIndex < by_month_day.length; spIndex++) {\n if (this.check_set_position(spIndex + 1) ||\n this.check_set_position(spIndex - by_month_day.length)) {\n this.days.push(doy_offset + by_month_day[spIndex]);\n }\n }\n } else {\n for (let coded_day of this.by_data.BYDAY) {\n let bydayParts = this.ruleDayOfWeek(coded_day);\n let pos = bydayParts[0];\n let dow = bydayParts[1];\n let month_day;\n\n let first_matching_day = ((dow + 7 - first_dow) % 7) + 1;\n let last_matching_day = daysInMonth - ((last_dow + 7 - dow) % 7);\n\n if (pos == 0) {\n for (let day = first_matching_day; day <= daysInMonth; day += 7) {\n this.days.push(doy_offset + day);\n }\n } else if (pos > 0) {\n month_day = first_matching_day + (pos - 1) * 7;\n\n if (month_day <= daysInMonth) {\n this.days.push(doy_offset + month_day);\n }\n } else {\n month_day = last_matching_day + (pos + 1) * 7;\n\n if (month_day > 0) {\n this.days.push(doy_offset + month_day);\n }\n }\n }\n }\n }\n // Return dates in order of occurrence (1,2,3,...) instead\n // of by groups of weekdays (1,8,15,...,2,9,16,...).\n this.days.sort(function(a, b) { return a - b; }); // Comparator function allows to sort numbers.\n } else if (partCount == 2 && \"BYDAY\" in parts && \"BYMONTHDAY\" in parts) {\n let expandedDays = this.expand_by_day(aYear);\n\n for (let day of expandedDays) {\n let tt = Time.fromDayOfYear(day, aYear);\n if (this.by_data.BYMONTHDAY.indexOf(tt.day) >= 0) {\n this.days.push(day);\n }\n }\n } else if (partCount == 3 &&\n \"BYDAY\" in parts &&\n \"BYMONTHDAY\" in parts &&\n \"BYMONTH\" in parts) {\n let expandedDays = this.expand_by_day(aYear);\n\n for (let day of expandedDays) {\n let tt = Time.fromDayOfYear(day, aYear);\n\n if (this.by_data.BYMONTH.indexOf(tt.month) >= 0 &&\n this.by_data.BYMONTHDAY.indexOf(tt.day) >= 0) {\n this.days.push(day);\n }\n }\n } else if (partCount == 2 && \"BYDAY\" in parts && \"BYWEEKNO\" in parts) {\n let expandedDays = this.expand_by_day(aYear);\n\n for (let day of expandedDays) {\n let tt = Time.fromDayOfYear(day, aYear);\n let weekno = tt.weekNumber(this.rule.wkst);\n\n if (this.by_data.BYWEEKNO.indexOf(weekno)) {\n this.days.push(day);\n }\n }\n } else if (partCount == 3 &&\n \"BYDAY\" in parts &&\n \"BYWEEKNO\" in parts &&\n \"BYMONTHDAY\" in parts) ; else if (partCount == 1 && \"BYYEARDAY\" in parts) {\n this.days = this.days.concat(this.by_data.BYYEARDAY);\n } else if (partCount == 2 && \"BYYEARDAY\" in parts && \"BYDAY\" in parts) {\n let daysInYear = Time.isLeapYear(aYear) ? 366 : 365;\n let expandedDays = new Set(this.expand_by_day(aYear));\n\n for (let doy of this.by_data.BYYEARDAY) {\n if (doy < 0) {\n doy += daysInYear + 1;\n }\n\n if (expandedDays.has(doy)) {\n this.days.push(doy);\n }\n }\n } else {\n this.days = [];\n }\n\n let daysInYear = Time.isLeapYear(aYear) ? 366 : 365;\n this.days.sort((a, b) => {\n if (a < 0) a += daysInYear + 1;\n if (b < 0) b += daysInYear + 1;\n return a - b;\n });\n\n return 0;\n }\n\n expand_by_day(aYear) {\n\n let days_list = [];\n let tmp = this.last.clone();\n\n tmp.year = aYear;\n tmp.month = 1;\n tmp.day = 1;\n tmp.isDate = true;\n\n let start_dow = tmp.dayOfWeek();\n\n tmp.month = 12;\n tmp.day = 31;\n tmp.isDate = true;\n\n let end_dow = tmp.dayOfWeek();\n let end_year_day = tmp.dayOfYear();\n\n for (let day of this.by_data.BYDAY) {\n let parts = this.ruleDayOfWeek(day);\n let pos = parts[0];\n let dow = parts[1];\n\n if (pos == 0) {\n let tmp_start_doy = ((dow + 7 - start_dow) % 7) + 1;\n\n for (let doy = tmp_start_doy; doy <= end_year_day; doy += 7) {\n days_list.push(doy);\n }\n\n } else if (pos > 0) {\n let first;\n if (dow >= start_dow) {\n first = dow - start_dow + 1;\n } else {\n first = dow - start_dow + 8;\n }\n\n days_list.push(first + (pos - 1) * 7);\n } else {\n let last;\n pos = -pos;\n\n if (dow <= end_dow) {\n last = end_year_day - end_dow + dow;\n } else {\n last = end_year_day - end_dow + dow - 7;\n }\n\n days_list.push(last - (pos - 1) * 7);\n }\n }\n return days_list;\n }\n\n is_day_in_byday(tt) {\n if (this.by_data.BYDAY) {\n for (let day of this.by_data.BYDAY) {\n let parts = this.ruleDayOfWeek(day);\n let pos = parts[0];\n let dow = parts[1];\n let this_dow = tt.dayOfWeek();\n\n if ((pos == 0 && dow == this_dow) ||\n (tt.nthWeekDay(dow, pos) == tt.day)) {\n return 1;\n }\n }\n }\n\n return 0;\n }\n\n /**\n * Checks if given value is in BYSETPOS.\n *\n * @private\n * @param {Numeric} aPos position to check for.\n * @return {Boolean} false unless BYSETPOS rules exist\n * and the given value is present in rules.\n */\n check_set_position(aPos) {\n if (this.has_by_data('BYSETPOS')) {\n let idx = this.by_data.BYSETPOS.indexOf(aPos);\n // negative numbers are not false-y\n return idx !== -1;\n }\n return false;\n }\n\n sort_byday_rules(aRules) {\n for (let i = 0; i < aRules.length; i++) {\n for (let j = 0; j < i; j++) {\n let one = this.ruleDayOfWeek(aRules[j], this.rule.wkst)[1];\n let two = this.ruleDayOfWeek(aRules[i], this.rule.wkst)[1];\n\n if (one > two) {\n let tmp = aRules[i];\n aRules[i] = aRules[j];\n aRules[j] = tmp;\n }\n }\n }\n }\n\n check_contract_restriction(aRuleType, v) {\n let indexMapValue = RecurIterator._indexMap[aRuleType];\n let ruleMapValue = RecurIterator._expandMap[this.rule.freq][indexMapValue];\n let pass = false;\n\n if (aRuleType in this.by_data &&\n ruleMapValue == RecurIterator.CONTRACT) {\n\n let ruleType = this.by_data[aRuleType];\n\n for (let bydata of ruleType) {\n if (bydata == v) {\n pass = true;\n break;\n }\n }\n } else {\n // Not a contracting byrule or has no data, test passes\n pass = true;\n }\n return pass;\n }\n\n check_contracting_rules() {\n let dow = this.last.dayOfWeek();\n let weekNo = this.last.weekNumber(this.rule.wkst);\n let doy = this.last.dayOfYear();\n\n return (this.check_contract_restriction(\"BYSECOND\", this.last.second) &&\n this.check_contract_restriction(\"BYMINUTE\", this.last.minute) &&\n this.check_contract_restriction(\"BYHOUR\", this.last.hour) &&\n this.check_contract_restriction(\"BYDAY\", Recur.numericDayToIcalDay(dow)) &&\n this.check_contract_restriction(\"BYWEEKNO\", weekNo) &&\n this.check_contract_restriction(\"BYMONTHDAY\", this.last.day) &&\n this.check_contract_restriction(\"BYMONTH\", this.last.month) &&\n this.check_contract_restriction(\"BYYEARDAY\", doy));\n }\n\n setup_defaults(aRuleType, req, deftime) {\n let indexMapValue = RecurIterator._indexMap[aRuleType];\n let ruleMapValue = RecurIterator._expandMap[this.rule.freq][indexMapValue];\n\n if (ruleMapValue != RecurIterator.CONTRACT) {\n if (!(aRuleType in this.by_data)) {\n this.by_data[aRuleType] = [deftime];\n }\n if (this.rule.freq != req) {\n return this.by_data[aRuleType][0];\n }\n }\n return deftime;\n }\n\n /**\n * Convert iterator into a serialize-able object. Will preserve current\n * iteration sequence to ensure the seamless continuation of the recurrence\n * rule.\n * @return {Object}\n */\n toJSON() {\n let result = Object.create(null);\n\n result.initialized = this.initialized;\n result.rule = this.rule.toJSON();\n result.dtstart = this.dtstart.toJSON();\n result.by_data = this.by_data;\n result.days = this.days;\n result.last = this.last.toJSON();\n result.by_indices = this.by_indices;\n result.occurrence_number = this.occurrence_number;\n\n return result;\n }\n}\n\n/**\n * An error indicating that a recurrence rule is invalid and produces no\n * occurrences.\n *\n * @extends {Error}\n * @class\n */\nclass InvalidRecurrenceRuleError extends Error {\n constructor() {\n super(\"Recurrence rule has no valid occurrences\");\n }\n}\n\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch */\n\n\n/**\n * This lets typescript resolve our custom types in the\n * generated d.ts files (jsdoc typedefs are converted to typescript types).\n * Ignore prevents the typedefs from being documented more than once.\n *\n * @ignore\n * @typedef {import(\"./types.js\").weekDay} weekDay\n * Imports the 'weekDay' type from the \"types.js\" module\n * @typedef {import(\"./types.js\").frequencyValues} frequencyValues\n * Imports the 'frequencyValues' type from the \"types.js\" module\n */\n\nconst VALID_DAY_NAMES = /^(SU|MO|TU|WE|TH|FR|SA)$/;\nconst VALID_BYDAY_PART = /^([+-])?(5[0-3]|[1-4][0-9]|[1-9])?(SU|MO|TU|WE|TH|FR|SA)$/;\nconst DOW_MAP = {\n SU: Time.SUNDAY,\n MO: Time.MONDAY,\n TU: Time.TUESDAY,\n WE: Time.WEDNESDAY,\n TH: Time.THURSDAY,\n FR: Time.FRIDAY,\n SA: Time.SATURDAY\n};\n\nconst REVERSE_DOW_MAP = Object.fromEntries(Object.entries(DOW_MAP).map(entry => entry.reverse()));\n\nconst ALLOWED_FREQ = ['SECONDLY', 'MINUTELY', 'HOURLY',\n 'DAILY', 'WEEKLY', 'MONTHLY', 'YEARLY'];\n\n/**\n * This class represents the \"recur\" value type, used for example by RRULE. It provides methods to\n * calculate occurrences among others.\n *\n * @memberof ICAL\n */\nclass Recur {\n /**\n * Creates a new {@link ICAL.Recur} instance from the passed string.\n *\n * @param {String} string The string to parse\n * @return {Recur} The created recurrence instance\n */\n static fromString(string) {\n let data = this._stringToData(string, false);\n return new Recur(data);\n }\n\n /**\n * Creates a new {@link ICAL.Recur} instance using members from the passed\n * data object.\n *\n * @param {Object} aData An object with members of the recurrence\n * @param {frequencyValues=} aData.freq The frequency value\n * @param {Number=} aData.interval The INTERVAL value\n * @param {weekDay=} aData.wkst The week start value\n * @param {Time=} aData.until The end of the recurrence set\n * @param {Number=} aData.count The number of occurrences\n * @param {Array.=} aData.bysecond The seconds for the BYSECOND part\n * @param {Array.=} aData.byminute The minutes for the BYMINUTE part\n * @param {Array.=} aData.byhour The hours for the BYHOUR part\n * @param {Array.=} aData.byday The BYDAY values\n * @param {Array.=} aData.bymonthday The days for the BYMONTHDAY part\n * @param {Array.=} aData.byyearday The days for the BYYEARDAY part\n * @param {Array.=} aData.byweekno The weeks for the BYWEEKNO part\n * @param {Array.=} aData.bymonth The month for the BYMONTH part\n * @param {Array.=} aData.bysetpos The positionals for the BYSETPOS part\n */\n static fromData(aData) {\n return new Recur(aData);\n }\n\n /**\n * Converts a recurrence string to a data object, suitable for the fromData\n * method.\n *\n * @private\n * @param {String} string The string to parse\n * @param {Boolean} fmtIcal If true, the string is considered to be an\n * iCalendar string\n * @return {Recur} The recurrence instance\n */\n static _stringToData(string, fmtIcal) {\n let dict = Object.create(null);\n\n // split is slower in FF but fast enough.\n // v8 however this is faster then manual split?\n let values = string.split(';');\n let len = values.length;\n\n for (let i = 0; i < len; i++) {\n let parts = values[i].split('=');\n let ucname = parts[0].toUpperCase();\n let lcname = parts[0].toLowerCase();\n let name = (fmtIcal ? lcname : ucname);\n let value = parts[1];\n\n if (ucname in partDesign) {\n let partArr = value.split(',');\n let partSet = new Set();\n\n for (let part of partArr) {\n partSet.add(partDesign[ucname](part));\n }\n partArr = [...partSet];\n\n dict[name] = (partArr.length == 1 ? partArr[0] : partArr);\n } else if (ucname in optionDesign) {\n optionDesign[ucname](value, dict, fmtIcal);\n } else {\n // Don't swallow unknown values. Just set them as they are.\n dict[lcname] = value;\n }\n }\n\n return dict;\n }\n\n /**\n * Convert an ical representation of a day (SU, MO, etc..)\n * into a numeric value of that day.\n *\n * @param {String} string The iCalendar day name\n * @param {weekDay=} aWeekStart\n * The week start weekday, defaults to SUNDAY\n * @return {Number} Numeric value of given day\n */\n static icalDayToNumericDay(string, aWeekStart) {\n //XXX: this is here so we can deal\n // with possibly invalid string values.\n let firstDow = aWeekStart || Time.SUNDAY;\n return ((DOW_MAP[string] - firstDow + 7) % 7) + 1;\n }\n\n /**\n * Convert a numeric day value into its ical representation (SU, MO, etc..)\n *\n * @param {Number} num Numeric value of given day\n * @param {weekDay=} aWeekStart\n * The week start weekday, defaults to SUNDAY\n * @return {String} The ICAL day value, e.g SU,MO,...\n */\n static numericDayToIcalDay(num, aWeekStart) {\n //XXX: this is here so we can deal with possibly invalid number values.\n // Also, this allows consistent mapping between day numbers and day\n // names for external users.\n let firstDow = aWeekStart || Time.SUNDAY;\n let dow = (num + firstDow - Time.SUNDAY);\n if (dow > 7) {\n dow -= 7;\n }\n return REVERSE_DOW_MAP[dow];\n }\n\n /**\n * Create a new instance of the Recur class.\n *\n * @param {Object} data An object with members of the recurrence\n * @param {frequencyValues=} data.freq The frequency value\n * @param {Number=} data.interval The INTERVAL value\n * @param {weekDay=} data.wkst The week start value\n * @param {Time=} data.until The end of the recurrence set\n * @param {Number=} data.count The number of occurrences\n * @param {Array.=} data.bysecond The seconds for the BYSECOND part\n * @param {Array.=} data.byminute The minutes for the BYMINUTE part\n * @param {Array.=} data.byhour The hours for the BYHOUR part\n * @param {Array.=} data.byday The BYDAY values\n * @param {Array.=} data.bymonthday The days for the BYMONTHDAY part\n * @param {Array.=} data.byyearday The days for the BYYEARDAY part\n * @param {Array.=} data.byweekno The weeks for the BYWEEKNO part\n * @param {Array.=} data.bymonth The month for the BYMONTH part\n * @param {Array.=} data.bysetpos The positionals for the BYSETPOS part\n */\n constructor(data) {\n this.wrappedJSObject = this;\n this.parts = {};\n\n if (data && typeof(data) === 'object') {\n this.fromData(data);\n }\n }\n\n /**\n * An object holding the BY-parts of the recurrence rule\n * @memberof ICAL.Recur\n * @typedef {Object} byParts\n * @property {Array.=} BYSECOND The seconds for the BYSECOND part\n * @property {Array.=} BYMINUTE The minutes for the BYMINUTE part\n * @property {Array.=} BYHOUR The hours for the BYHOUR part\n * @property {Array.=} BYDAY The BYDAY values\n * @property {Array.=} BYMONTHDAY The days for the BYMONTHDAY part\n * @property {Array.=} BYYEARDAY The days for the BYYEARDAY part\n * @property {Array.=} BYWEEKNO The weeks for the BYWEEKNO part\n * @property {Array.=} BYMONTH The month for the BYMONTH part\n * @property {Array.=} BYSETPOS The positionals for the BYSETPOS part\n */\n\n /**\n * An object holding the BY-parts of the recurrence rule\n * @type {byParts}\n */\n parts = null;\n\n /**\n * The interval value for the recurrence rule.\n * @type {Number}\n */\n interval = 1;\n\n /**\n * The week start day\n *\n * @type {weekDay}\n * @default ICAL.Time.MONDAY\n */\n wkst = Time.MONDAY;\n\n /**\n * The end of the recurrence\n * @type {?Time}\n */\n until = null;\n\n /**\n * The maximum number of occurrences\n * @type {?Number}\n */\n count = null;\n\n /**\n * The frequency value.\n * @type {frequencyValues}\n */\n freq = null;\n\n /**\n * The class identifier.\n * @constant\n * @type {String}\n * @default \"icalrecur\"\n */\n icalclass = \"icalrecur\";\n\n /**\n * The type name, to be used in the jCal object.\n * @constant\n * @type {String}\n * @default \"recur\"\n */\n icaltype = \"recur\";\n\n /**\n * Create a new iterator for this recurrence rule. The passed start date\n * must be the start date of the event, not the start of the range to\n * search in.\n *\n * @example\n * let recur = comp.getFirstPropertyValue('rrule');\n * let dtstart = comp.getFirstPropertyValue('dtstart');\n * let iter = recur.iterator(dtstart);\n * for (let next = iter.next(); next; next = iter.next()) {\n * if (next.compare(rangeStart) < 0) {\n * continue;\n * }\n * console.log(next.toString());\n * }\n *\n * @param {Time} aStart The item's start date\n * @return {RecurIterator} The recurrence iterator\n */\n iterator(aStart) {\n return new RecurIterator({\n rule: this,\n dtstart: aStart\n });\n }\n\n /**\n * Returns a clone of the recurrence object.\n *\n * @return {Recur} The cloned object\n */\n clone() {\n return new Recur(this.toJSON());\n }\n\n /**\n * Checks if the current rule is finite, i.e. has a count or until part.\n *\n * @return {Boolean} True, if the rule is finite\n */\n isFinite() {\n return !!(this.count || this.until);\n }\n\n /**\n * Checks if the current rule has a count part, and not limited by an until\n * part.\n *\n * @return {Boolean} True, if the rule is by count\n */\n isByCount() {\n return !!(this.count && !this.until);\n }\n\n /**\n * Adds a component (part) to the recurrence rule. This is not a component\n * in the sense of {@link ICAL.Component}, but a part of the recurrence\n * rule, i.e. BYMONTH.\n *\n * @param {String} aType The name of the component part\n * @param {Array|String} aValue The component value\n */\n addComponent(aType, aValue) {\n let ucname = aType.toUpperCase();\n if (ucname in this.parts) {\n this.parts[ucname].push(aValue);\n } else {\n this.parts[ucname] = [aValue];\n }\n }\n\n /**\n * Sets the component value for the given by-part.\n *\n * @param {String} aType The component part name\n * @param {Array} aValues The component values\n */\n setComponent(aType, aValues) {\n this.parts[aType.toUpperCase()] = aValues.slice();\n }\n\n /**\n * Gets (a copy) of the requested component value.\n *\n * @param {String} aType The component part name\n * @return {Array} The component part value\n */\n getComponent(aType) {\n let ucname = aType.toUpperCase();\n return (ucname in this.parts ? this.parts[ucname].slice() : []);\n }\n\n /**\n * Retrieves the next occurrence after the given recurrence id. See the\n * guide on {@tutorial terminology} for more details.\n *\n * NOTE: Currently, this method iterates all occurrences from the start\n * date. It should not be called in a loop for performance reasons. If you\n * would like to get more than one occurrence, you can iterate the\n * occurrences manually, see the example on the\n * {@link ICAL.Recur#iterator iterator} method.\n *\n * @param {Time} aStartTime The start of the event series\n * @param {Time} aRecurrenceId The date of the last occurrence\n * @return {Time} The next occurrence after\n */\n getNextOccurrence(aStartTime, aRecurrenceId) {\n let iter = this.iterator(aStartTime);\n let next;\n\n do {\n next = iter.next();\n } while (next && next.compare(aRecurrenceId) <= 0);\n\n if (next && aRecurrenceId.zone) {\n next.zone = aRecurrenceId.zone;\n }\n\n return next;\n }\n\n /**\n * Sets up the current instance using members from the passed data object.\n *\n * @param {Object} data An object with members of the recurrence\n * @param {frequencyValues=} data.freq The frequency value\n * @param {Number=} data.interval The INTERVAL value\n * @param {weekDay=} data.wkst The week start value\n * @param {Time=} data.until The end of the recurrence set\n * @param {Number=} data.count The number of occurrences\n * @param {Array.=} data.bysecond The seconds for the BYSECOND part\n * @param {Array.=} data.byminute The minutes for the BYMINUTE part\n * @param {Array.=} data.byhour The hours for the BYHOUR part\n * @param {Array.=} data.byday The BYDAY values\n * @param {Array.=} data.bymonthday The days for the BYMONTHDAY part\n * @param {Array.=} data.byyearday The days for the BYYEARDAY part\n * @param {Array.=} data.byweekno The weeks for the BYWEEKNO part\n * @param {Array.=} data.bymonth The month for the BYMONTH part\n * @param {Array.=} data.bysetpos The positionals for the BYSETPOS part\n */\n fromData(data) {\n for (let key in data) {\n let uckey = key.toUpperCase();\n\n if (uckey in partDesign) {\n if (Array.isArray(data[key])) {\n this.parts[uckey] = data[key];\n } else {\n this.parts[uckey] = [data[key]];\n }\n } else {\n this[key] = data[key];\n }\n }\n\n if (this.interval && typeof this.interval != \"number\") {\n optionDesign.INTERVAL(this.interval, this);\n }\n\n if (this.wkst && typeof this.wkst != \"number\") {\n this.wkst = Recur.icalDayToNumericDay(this.wkst);\n }\n\n if (this.until && !(this.until instanceof Time)) {\n this.until = Time.fromString(this.until);\n }\n }\n\n /**\n * The jCal representation of this recurrence type.\n * @return {Object}\n */\n toJSON() {\n let res = Object.create(null);\n res.freq = this.freq;\n\n if (this.count) {\n res.count = this.count;\n }\n\n if (this.interval > 1) {\n res.interval = this.interval;\n }\n\n for (let [k, kparts] of Object.entries(this.parts)) {\n if (Array.isArray(kparts) && kparts.length == 1) {\n res[k.toLowerCase()] = kparts[0];\n } else {\n res[k.toLowerCase()] = clone(kparts);\n }\n }\n\n if (this.until) {\n res.until = this.until.toString();\n }\n if ('wkst' in this && this.wkst !== Time.DEFAULT_WEEK_START) {\n res.wkst = Recur.numericDayToIcalDay(this.wkst);\n }\n return res;\n }\n\n /**\n * The string representation of this recurrence rule.\n * @return {String}\n */\n toString() {\n // TODO retain order\n let str = \"FREQ=\" + this.freq;\n if (this.count) {\n str += \";COUNT=\" + this.count;\n }\n if (this.interval > 1) {\n str += \";INTERVAL=\" + this.interval;\n }\n for (let [k, v] of Object.entries(this.parts)) {\n str += \";\" + k + \"=\" + v;\n }\n if (this.until) {\n str += ';UNTIL=' + this.until.toICALString();\n }\n if ('wkst' in this && this.wkst !== Time.DEFAULT_WEEK_START) {\n str += ';WKST=' + Recur.numericDayToIcalDay(this.wkst);\n }\n return str;\n }\n}\n\nfunction parseNumericValue(type, min, max, value) {\n let result = value;\n\n if (value[0] === '+') {\n result = value.slice(1);\n }\n\n result = strictParseInt(result);\n\n if (min !== undefined && value < min) {\n throw new Error(\n type + ': invalid value \"' + value + '\" must be > ' + min\n );\n }\n\n if (max !== undefined && value > max) {\n throw new Error(\n type + ': invalid value \"' + value + '\" must be < ' + min\n );\n }\n\n return result;\n}\n\nconst optionDesign = {\n FREQ: function(value, dict, fmtIcal) {\n // yes this is actually equal or faster then regex.\n // upside here is we can enumerate the valid values.\n if (ALLOWED_FREQ.indexOf(value) !== -1) {\n dict.freq = value;\n } else {\n throw new Error(\n 'invalid frequency \"' + value + '\" expected: \"' +\n ALLOWED_FREQ.join(', ') + '\"'\n );\n }\n },\n\n COUNT: function(value, dict, fmtIcal) {\n dict.count = strictParseInt(value);\n },\n\n INTERVAL: function(value, dict, fmtIcal) {\n dict.interval = strictParseInt(value);\n if (dict.interval < 1) {\n // 0 or negative values are not allowed, some engines seem to generate\n // it though. Assume 1 instead.\n dict.interval = 1;\n }\n },\n\n UNTIL: function(value, dict, fmtIcal) {\n if (value.length > 10) {\n dict.until = design.icalendar.value['date-time'].fromICAL(value);\n } else {\n dict.until = design.icalendar.value.date.fromICAL(value);\n }\n if (!fmtIcal) {\n dict.until = Time.fromString(dict.until);\n }\n },\n\n WKST: function(value, dict, fmtIcal) {\n if (VALID_DAY_NAMES.test(value)) {\n dict.wkst = Recur.icalDayToNumericDay(value);\n } else {\n throw new Error('invalid WKST value \"' + value + '\"');\n }\n }\n};\n\nconst partDesign = {\n BYSECOND: parseNumericValue.bind(undefined, 'BYSECOND', 0, 60),\n BYMINUTE: parseNumericValue.bind(undefined, 'BYMINUTE', 0, 59),\n BYHOUR: parseNumericValue.bind(undefined, 'BYHOUR', 0, 23),\n BYDAY: function(value) {\n if (VALID_BYDAY_PART.test(value)) {\n return value;\n } else {\n throw new Error('invalid BYDAY value \"' + value + '\"');\n }\n },\n BYMONTHDAY: parseNumericValue.bind(undefined, 'BYMONTHDAY', -31, 31),\n BYYEARDAY: parseNumericValue.bind(undefined, 'BYYEARDAY', -366, 366),\n BYWEEKNO: parseNumericValue.bind(undefined, 'BYWEEKNO', -53, 53),\n BYMONTH: parseNumericValue.bind(undefined, 'BYMONTH', 1, 12),\n BYSETPOS: parseNumericValue.bind(undefined, 'BYSETPOS', -366, 366)\n};\n\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch */\n\n\n/**\n * This lets typescript resolve our custom types in the\n * generated d.ts files (jsdoc typedefs are converted to typescript types).\n * Ignore prevents the typedefs from being documented more than once.\n * @ignore\n * @typedef {import(\"./types.js\").designSet} designSet\n * Imports the 'designSet' type from the \"types.js\" module\n */\n\n/** @module ICAL.design */\n\nconst FROM_ICAL_NEWLINE = /\\\\\\\\|\\\\;|\\\\,|\\\\[Nn]/g;\nconst TO_ICAL_NEWLINE = /\\\\|;|,|\\n/g;\nconst FROM_VCARD_NEWLINE = /\\\\\\\\|\\\\,|\\\\[Nn]/g;\nconst TO_VCARD_NEWLINE = /\\\\|,|\\n/g;\n\nfunction createTextType(fromNewline, toNewline) {\n let result = {\n matches: /.*/,\n\n fromICAL: function(aValue, structuredEscape) {\n return replaceNewline(aValue, fromNewline, structuredEscape);\n },\n\n toICAL: function(aValue, structuredEscape) {\n let regEx = toNewline;\n if (structuredEscape)\n regEx = new RegExp(regEx.source + '|' + structuredEscape, regEx.flags);\n return aValue.replace(regEx, function(str) {\n switch (str) {\n case \"\\\\\":\n return \"\\\\\\\\\";\n case \";\":\n return \"\\\\;\";\n case \",\":\n return \"\\\\,\";\n case \"\\n\":\n return \"\\\\n\";\n /* c8 ignore next 2 */\n default:\n return str;\n }\n });\n }\n };\n return result;\n}\n\n// default types used multiple times\nconst DEFAULT_TYPE_TEXT = { defaultType: \"text\" };\nconst DEFAULT_TYPE_TEXT_MULTI = { defaultType: \"text\", multiValue: \",\" };\nconst DEFAULT_TYPE_TEXT_STRUCTURED = { defaultType: \"text\", structuredValue: \";\" };\nconst DEFAULT_TYPE_INTEGER = { defaultType: \"integer\" };\nconst DEFAULT_TYPE_DATETIME_DATE = { defaultType: \"date-time\", allowedTypes: [\"date-time\", \"date\"] };\nconst DEFAULT_TYPE_DATETIME = { defaultType: \"date-time\" };\nconst DEFAULT_TYPE_URI = { defaultType: \"uri\" };\nconst DEFAULT_TYPE_UTCOFFSET = { defaultType: \"utc-offset\" };\nconst DEFAULT_TYPE_RECUR = { defaultType: \"recur\" };\nconst DEFAULT_TYPE_DATE_ANDOR_TIME = { defaultType: \"date-and-or-time\", allowedTypes: [\"date-time\", \"date\", \"text\"] };\n\nfunction replaceNewlineReplace(string) {\n switch (string) {\n case \"\\\\\\\\\":\n return \"\\\\\";\n case \"\\\\;\":\n return \";\";\n case \"\\\\,\":\n return \",\";\n case \"\\\\n\":\n case \"\\\\N\":\n return \"\\n\";\n /* c8 ignore next 2 */\n default:\n return string;\n }\n}\n\nfunction replaceNewline(value, newline, structuredEscape) {\n // avoid regex when possible.\n if (value.indexOf('\\\\') === -1) {\n return value;\n }\n if (structuredEscape)\n newline = new RegExp(newline.source + '|\\\\\\\\' + structuredEscape, newline.flags);\n return value.replace(newline, replaceNewlineReplace);\n}\n\nlet commonProperties = {\n \"categories\": DEFAULT_TYPE_TEXT_MULTI,\n \"url\": DEFAULT_TYPE_URI,\n \"version\": DEFAULT_TYPE_TEXT,\n \"uid\": DEFAULT_TYPE_TEXT\n};\n\nlet commonValues = {\n \"boolean\": {\n values: [\"TRUE\", \"FALSE\"],\n\n fromICAL: function(aValue) {\n switch (aValue) {\n case 'TRUE':\n return true;\n case 'FALSE':\n return false;\n default:\n //TODO: parser warning\n return false;\n }\n },\n\n toICAL: function(aValue) {\n if (aValue) {\n return 'TRUE';\n }\n return 'FALSE';\n }\n\n },\n float: {\n matches: /^[+-]?\\d+\\.\\d+$/,\n\n fromICAL: function(aValue) {\n let parsed = parseFloat(aValue);\n if (isStrictlyNaN(parsed)) {\n // TODO: parser warning\n return 0.0;\n }\n return parsed;\n },\n\n toICAL: function(aValue) {\n return String(aValue);\n }\n },\n integer: {\n fromICAL: function(aValue) {\n let parsed = parseInt(aValue);\n if (isStrictlyNaN(parsed)) {\n return 0;\n }\n return parsed;\n },\n\n toICAL: function(aValue) {\n return String(aValue);\n }\n },\n \"utc-offset\": {\n toICAL: function(aValue) {\n if (aValue.length < 7) {\n // no seconds\n // -0500\n return aValue.slice(0, 3) +\n aValue.slice(4, 6);\n } else {\n // seconds\n // -050000\n return aValue.slice(0, 3) +\n aValue.slice(4, 6) +\n aValue.slice(7, 9);\n }\n },\n\n fromICAL: function(aValue) {\n if (aValue.length < 6) {\n // no seconds\n // -05:00\n return aValue.slice(0, 3) + ':' +\n aValue.slice(3, 5);\n } else {\n // seconds\n // -05:00:00\n return aValue.slice(0, 3) + ':' +\n aValue.slice(3, 5) + ':' +\n aValue.slice(5, 7);\n }\n },\n\n decorate: function(aValue) {\n return UtcOffset.fromString(aValue);\n },\n\n undecorate: function(aValue) {\n return aValue.toString();\n }\n }\n};\n\nlet icalParams = {\n // Although the syntax is DQUOTE uri DQUOTE, I don't think we should\n // enforce anything aside from it being a valid content line.\n //\n // At least some params require - if multi values are used - DQUOTEs\n // for each of its values - e.g. delegated-from=\"uri1\",\"uri2\"\n // To indicate this, I introduced the new k/v pair\n // multiValueSeparateDQuote: true\n //\n // \"ALTREP\": { ... },\n\n // CN just wants a param-value\n // \"CN\": { ... }\n\n \"cutype\": {\n values: [\"INDIVIDUAL\", \"GROUP\", \"RESOURCE\", \"ROOM\", \"UNKNOWN\"],\n allowXName: true,\n allowIanaToken: true\n },\n\n \"delegated-from\": {\n valueType: \"cal-address\",\n multiValue: \",\",\n multiValueSeparateDQuote: true\n },\n \"delegated-to\": {\n valueType: \"cal-address\",\n multiValue: \",\",\n multiValueSeparateDQuote: true\n },\n // \"DIR\": { ... }, // See ALTREP\n \"encoding\": {\n values: [\"8BIT\", \"BASE64\"]\n },\n // \"FMTTYPE\": { ... }, // See ALTREP\n \"fbtype\": {\n values: [\"FREE\", \"BUSY\", \"BUSY-UNAVAILABLE\", \"BUSY-TENTATIVE\"],\n allowXName: true,\n allowIanaToken: true\n },\n // \"LANGUAGE\": { ... }, // See ALTREP\n \"member\": {\n valueType: \"cal-address\",\n multiValue: \",\",\n multiValueSeparateDQuote: true\n },\n \"partstat\": {\n // TODO These values are actually different per-component\n values: [\"NEEDS-ACTION\", \"ACCEPTED\", \"DECLINED\", \"TENTATIVE\",\n \"DELEGATED\", \"COMPLETED\", \"IN-PROCESS\"],\n allowXName: true,\n allowIanaToken: true\n },\n \"range\": {\n values: [\"THISANDFUTURE\"]\n },\n \"related\": {\n values: [\"START\", \"END\"]\n },\n \"reltype\": {\n values: [\"PARENT\", \"CHILD\", \"SIBLING\"],\n allowXName: true,\n allowIanaToken: true\n },\n \"role\": {\n values: [\"REQ-PARTICIPANT\", \"CHAIR\",\n \"OPT-PARTICIPANT\", \"NON-PARTICIPANT\"],\n allowXName: true,\n allowIanaToken: true\n },\n \"rsvp\": {\n values: [\"TRUE\", \"FALSE\"]\n },\n \"sent-by\": {\n valueType: \"cal-address\"\n },\n \"tzid\": {\n matches: /^\\//\n },\n \"value\": {\n // since the value here is a 'type' lowercase is used.\n values: [\"binary\", \"boolean\", \"cal-address\", \"date\", \"date-time\",\n \"duration\", \"float\", \"integer\", \"period\", \"recur\", \"text\",\n \"time\", \"uri\", \"utc-offset\"],\n allowXName: true,\n allowIanaToken: true\n }\n};\n\n// When adding a value here, be sure to add it to the parameter types!\nconst icalValues = extend(commonValues, {\n text: createTextType(FROM_ICAL_NEWLINE, TO_ICAL_NEWLINE),\n\n uri: {\n // TODO\n /* ... */\n },\n\n \"binary\": {\n decorate: function(aString) {\n return Binary.fromString(aString);\n },\n\n undecorate: function(aBinary) {\n return aBinary.toString();\n }\n },\n \"cal-address\": {\n // needs to be an uri\n },\n \"date\": {\n decorate: function(aValue, aProp) {\n if (design.strict) {\n return Time.fromDateString(aValue, aProp);\n } else {\n return Time.fromString(aValue, aProp);\n }\n },\n\n /**\n * undecorates a time object.\n */\n undecorate: function(aValue) {\n return aValue.toString();\n },\n\n fromICAL: function(aValue) {\n // from: 20120901\n // to: 2012-09-01\n if (!design.strict && aValue.length >= 15) {\n // This is probably a date-time, e.g. 20120901T130000Z\n return icalValues[\"date-time\"].fromICAL(aValue);\n } else {\n return aValue.slice(0, 4) + '-' +\n aValue.slice(4, 6) + '-' +\n aValue.slice(6, 8);\n }\n },\n\n toICAL: function(aValue) {\n // from: 2012-09-01\n // to: 20120901\n let len = aValue.length;\n\n if (len == 10) {\n return aValue.slice(0, 4) +\n aValue.slice(5, 7) +\n aValue.slice(8, 10);\n } else if (len >= 19) {\n return icalValues[\"date-time\"].toICAL(aValue);\n } else {\n //TODO: serialize warning?\n return aValue;\n }\n\n }\n },\n \"date-time\": {\n fromICAL: function(aValue) {\n // from: 20120901T130000\n // to: 2012-09-01T13:00:00\n if (!design.strict && aValue.length == 8) {\n // This is probably a date, e.g. 20120901\n return icalValues.date.fromICAL(aValue);\n } else {\n let result = aValue.slice(0, 4) + '-' +\n aValue.slice(4, 6) + '-' +\n aValue.slice(6, 8) + 'T' +\n aValue.slice(9, 11) + ':' +\n aValue.slice(11, 13) + ':' +\n aValue.slice(13, 15);\n\n if (aValue[15] && aValue[15] === 'Z') {\n result += 'Z';\n }\n\n return result;\n }\n },\n\n toICAL: function(aValue) {\n // from: 2012-09-01T13:00:00\n // to: 20120901T130000\n let len = aValue.length;\n\n if (len == 10 && !design.strict) {\n return icalValues.date.toICAL(aValue);\n } else if (len >= 19) {\n let result = aValue.slice(0, 4) +\n aValue.slice(5, 7) +\n // grab the (DDTHH) segment\n aValue.slice(8, 13) +\n // MM\n aValue.slice(14, 16) +\n // SS\n aValue.slice(17, 19);\n\n if (aValue[19] && aValue[19] === 'Z') {\n result += 'Z';\n }\n return result;\n } else {\n // TODO: error\n return aValue;\n }\n },\n\n decorate: function(aValue, aProp) {\n if (design.strict) {\n return Time.fromDateTimeString(aValue, aProp);\n } else {\n return Time.fromString(aValue, aProp);\n }\n },\n\n undecorate: function(aValue) {\n return aValue.toString();\n }\n },\n duration: {\n decorate: function(aValue) {\n return Duration.fromString(aValue);\n },\n undecorate: function(aValue) {\n return aValue.toString();\n }\n },\n period: {\n fromICAL: function(string) {\n let parts = string.split('/');\n parts[0] = icalValues['date-time'].fromICAL(parts[0]);\n\n if (!Duration.isValueString(parts[1])) {\n parts[1] = icalValues['date-time'].fromICAL(parts[1]);\n }\n\n return parts;\n },\n\n toICAL: function(parts) {\n parts = parts.slice();\n if (!design.strict && parts[0].length == 10) {\n parts[0] = icalValues.date.toICAL(parts[0]);\n } else {\n parts[0] = icalValues['date-time'].toICAL(parts[0]);\n }\n\n if (!Duration.isValueString(parts[1])) {\n if (!design.strict && parts[1].length == 10) {\n parts[1] = icalValues.date.toICAL(parts[1]);\n } else {\n parts[1] = icalValues['date-time'].toICAL(parts[1]);\n }\n }\n\n return parts.join(\"/\");\n },\n\n decorate: function(aValue, aProp) {\n return Period.fromJSON(aValue, aProp, !design.strict);\n },\n\n undecorate: function(aValue) {\n return aValue.toJSON();\n }\n },\n recur: {\n fromICAL: function(string) {\n return Recur._stringToData(string, true);\n },\n\n toICAL: function(data) {\n let str = \"\";\n for (let [k, val] of Object.entries(data)) {\n if (k == \"until\") {\n if (val.length > 10) {\n val = icalValues['date-time'].toICAL(val);\n } else {\n val = icalValues.date.toICAL(val);\n }\n } else if (k == \"wkst\") {\n if (typeof val === 'number') {\n val = Recur.numericDayToIcalDay(val);\n }\n } else if (Array.isArray(val)) {\n val = val.join(\",\");\n }\n str += k.toUpperCase() + \"=\" + val + \";\";\n }\n return str.slice(0, Math.max(0, str.length - 1));\n },\n\n decorate: function decorate(aValue) {\n return Recur.fromData(aValue);\n },\n\n undecorate: function(aRecur) {\n return aRecur.toJSON();\n }\n },\n\n time: {\n fromICAL: function(aValue) {\n // from: MMHHSS(Z)?\n // to: HH:MM:SS(Z)?\n if (aValue.length < 6) {\n // TODO: parser exception?\n return aValue;\n }\n\n // HH::MM::SSZ?\n let result = aValue.slice(0, 2) + ':' +\n aValue.slice(2, 4) + ':' +\n aValue.slice(4, 6);\n\n if (aValue[6] === 'Z') {\n result += 'Z';\n }\n\n return result;\n },\n\n toICAL: function(aValue) {\n // from: HH:MM:SS(Z)?\n // to: MMHHSS(Z)?\n if (aValue.length < 8) {\n //TODO: error\n return aValue;\n }\n\n let result = aValue.slice(0, 2) +\n aValue.slice(3, 5) +\n aValue.slice(6, 8);\n\n if (aValue[8] === 'Z') {\n result += 'Z';\n }\n\n return result;\n }\n }\n});\n\nlet icalProperties = extend(commonProperties, {\n\n \"action\": DEFAULT_TYPE_TEXT,\n \"attach\": { defaultType: \"uri\" },\n \"attendee\": { defaultType: \"cal-address\" },\n \"calscale\": DEFAULT_TYPE_TEXT,\n \"class\": DEFAULT_TYPE_TEXT,\n \"comment\": DEFAULT_TYPE_TEXT,\n \"completed\": DEFAULT_TYPE_DATETIME,\n \"contact\": DEFAULT_TYPE_TEXT,\n \"created\": DEFAULT_TYPE_DATETIME,\n \"description\": DEFAULT_TYPE_TEXT,\n \"dtend\": DEFAULT_TYPE_DATETIME_DATE,\n \"dtstamp\": DEFAULT_TYPE_DATETIME,\n \"dtstart\": DEFAULT_TYPE_DATETIME_DATE,\n \"due\": DEFAULT_TYPE_DATETIME_DATE,\n \"duration\": { defaultType: \"duration\" },\n \"exdate\": {\n defaultType: \"date-time\",\n allowedTypes: [\"date-time\", \"date\"],\n multiValue: ','\n },\n \"exrule\": DEFAULT_TYPE_RECUR,\n \"freebusy\": { defaultType: \"period\", multiValue: \",\" },\n \"geo\": { defaultType: \"float\", structuredValue: \";\" },\n \"last-modified\": DEFAULT_TYPE_DATETIME,\n \"location\": DEFAULT_TYPE_TEXT,\n \"method\": DEFAULT_TYPE_TEXT,\n \"organizer\": { defaultType: \"cal-address\" },\n \"percent-complete\": DEFAULT_TYPE_INTEGER,\n \"priority\": DEFAULT_TYPE_INTEGER,\n \"prodid\": DEFAULT_TYPE_TEXT,\n \"related-to\": DEFAULT_TYPE_TEXT,\n \"repeat\": DEFAULT_TYPE_INTEGER,\n \"rdate\": {\n defaultType: \"date-time\",\n allowedTypes: [\"date-time\", \"date\", \"period\"],\n multiValue: ',',\n detectType: function(string) {\n if (string.indexOf('/') !== -1) {\n return 'period';\n }\n return (string.indexOf('T') === -1) ? 'date' : 'date-time';\n }\n },\n \"recurrence-id\": DEFAULT_TYPE_DATETIME_DATE,\n \"resources\": DEFAULT_TYPE_TEXT_MULTI,\n \"request-status\": DEFAULT_TYPE_TEXT_STRUCTURED,\n \"rrule\": DEFAULT_TYPE_RECUR,\n \"sequence\": DEFAULT_TYPE_INTEGER,\n \"status\": DEFAULT_TYPE_TEXT,\n \"summary\": DEFAULT_TYPE_TEXT,\n \"transp\": DEFAULT_TYPE_TEXT,\n \"trigger\": { defaultType: \"duration\", allowedTypes: [\"duration\", \"date-time\"] },\n \"tzoffsetfrom\": DEFAULT_TYPE_UTCOFFSET,\n \"tzoffsetto\": DEFAULT_TYPE_UTCOFFSET,\n \"tzurl\": DEFAULT_TYPE_URI,\n \"tzid\": DEFAULT_TYPE_TEXT,\n \"tzname\": DEFAULT_TYPE_TEXT\n});\n\n// When adding a value here, be sure to add it to the parameter types!\nconst vcardValues = extend(commonValues, {\n text: createTextType(FROM_VCARD_NEWLINE, TO_VCARD_NEWLINE),\n uri: createTextType(FROM_VCARD_NEWLINE, TO_VCARD_NEWLINE),\n\n date: {\n decorate: function(aValue) {\n return VCardTime.fromDateAndOrTimeString(aValue, \"date\");\n },\n undecorate: function(aValue) {\n return aValue.toString();\n },\n fromICAL: function(aValue) {\n if (aValue.length == 8) {\n return icalValues.date.fromICAL(aValue);\n } else if (aValue[0] == '-' && aValue.length == 6) {\n return aValue.slice(0, 4) + '-' + aValue.slice(4);\n } else {\n return aValue;\n }\n },\n toICAL: function(aValue) {\n if (aValue.length == 10) {\n return icalValues.date.toICAL(aValue);\n } else if (aValue[0] == '-' && aValue.length == 7) {\n return aValue.slice(0, 4) + aValue.slice(5);\n } else {\n return aValue;\n }\n }\n },\n\n time: {\n decorate: function(aValue) {\n return VCardTime.fromDateAndOrTimeString(\"T\" + aValue, \"time\");\n },\n undecorate: function(aValue) {\n return aValue.toString();\n },\n fromICAL: function(aValue) {\n let splitzone = vcardValues.time._splitZone(aValue, true);\n let zone = splitzone[0], value = splitzone[1];\n\n //console.log(\"SPLIT: \",splitzone);\n\n if (value.length == 6) {\n value = value.slice(0, 2) + ':' +\n value.slice(2, 4) + ':' +\n value.slice(4, 6);\n } else if (value.length == 4 && value[0] != '-') {\n value = value.slice(0, 2) + ':' + value.slice(2, 4);\n } else if (value.length == 5) {\n value = value.slice(0, 3) + ':' + value.slice(3, 5);\n }\n\n if (zone.length == 5 && (zone[0] == '-' || zone[0] == '+')) {\n zone = zone.slice(0, 3) + ':' + zone.slice(3);\n }\n\n return value + zone;\n },\n\n toICAL: function(aValue) {\n let splitzone = vcardValues.time._splitZone(aValue);\n let zone = splitzone[0], value = splitzone[1];\n\n if (value.length == 8) {\n value = value.slice(0, 2) +\n value.slice(3, 5) +\n value.slice(6, 8);\n } else if (value.length == 5 && value[0] != '-') {\n value = value.slice(0, 2) + value.slice(3, 5);\n } else if (value.length == 6) {\n value = value.slice(0, 3) + value.slice(4, 6);\n }\n\n if (zone.length == 6 && (zone[0] == '-' || zone[0] == '+')) {\n zone = zone.slice(0, 3) + zone.slice(4);\n }\n\n return value + zone;\n },\n\n _splitZone: function(aValue, isFromIcal) {\n let lastChar = aValue.length - 1;\n let signChar = aValue.length - (isFromIcal ? 5 : 6);\n let sign = aValue[signChar];\n let zone, value;\n\n if (aValue[lastChar] == 'Z') {\n zone = aValue[lastChar];\n value = aValue.slice(0, Math.max(0, lastChar));\n } else if (aValue.length > 6 && (sign == '-' || sign == '+')) {\n zone = aValue.slice(signChar);\n value = aValue.slice(0, Math.max(0, signChar));\n } else {\n zone = \"\";\n value = aValue;\n }\n\n return [zone, value];\n }\n },\n\n \"date-time\": {\n decorate: function(aValue) {\n return VCardTime.fromDateAndOrTimeString(aValue, \"date-time\");\n },\n\n undecorate: function(aValue) {\n return aValue.toString();\n },\n\n fromICAL: function(aValue) {\n return vcardValues['date-and-or-time'].fromICAL(aValue);\n },\n\n toICAL: function(aValue) {\n return vcardValues['date-and-or-time'].toICAL(aValue);\n }\n },\n\n \"date-and-or-time\": {\n decorate: function(aValue) {\n return VCardTime.fromDateAndOrTimeString(aValue, \"date-and-or-time\");\n },\n\n undecorate: function(aValue) {\n return aValue.toString();\n },\n\n fromICAL: function(aValue) {\n let parts = aValue.split('T');\n return (parts[0] ? vcardValues.date.fromICAL(parts[0]) : '') +\n (parts[1] ? 'T' + vcardValues.time.fromICAL(parts[1]) : '');\n },\n\n toICAL: function(aValue) {\n let parts = aValue.split('T');\n return vcardValues.date.toICAL(parts[0]) +\n (parts[1] ? 'T' + vcardValues.time.toICAL(parts[1]) : '');\n\n }\n },\n timestamp: icalValues['date-time'],\n \"language-tag\": {\n matches: /^[a-zA-Z0-9-]+$/ // Could go with a more strict regex here\n },\n \"phone-number\": {\n fromICAL: function(aValue) {\n return Array.from(aValue).filter(function(c) {\n return c === '\\\\' ? undefined : c;\n }).join('');\n },\n toICAL: function(aValue) {\n return Array.from(aValue).map(function(c) {\n return c === ',' || c === \";\" ? '\\\\' + c : c;\n }).join('');\n }\n }\n});\n\nlet vcardParams = {\n \"type\": {\n valueType: \"text\",\n multiValue: \",\"\n },\n \"value\": {\n // since the value here is a 'type' lowercase is used.\n values: [\"text\", \"uri\", \"date\", \"time\", \"date-time\", \"date-and-or-time\",\n \"timestamp\", \"boolean\", \"integer\", \"float\", \"utc-offset\",\n \"language-tag\"],\n allowXName: true,\n allowIanaToken: true\n }\n};\n\nlet vcardProperties = extend(commonProperties, {\n \"adr\": { defaultType: \"text\", structuredValue: \";\", multiValue: \",\" },\n \"anniversary\": DEFAULT_TYPE_DATE_ANDOR_TIME,\n \"bday\": DEFAULT_TYPE_DATE_ANDOR_TIME,\n \"caladruri\": DEFAULT_TYPE_URI,\n \"caluri\": DEFAULT_TYPE_URI,\n \"clientpidmap\": DEFAULT_TYPE_TEXT_STRUCTURED,\n \"email\": DEFAULT_TYPE_TEXT,\n \"fburl\": DEFAULT_TYPE_URI,\n \"fn\": DEFAULT_TYPE_TEXT,\n \"gender\": DEFAULT_TYPE_TEXT_STRUCTURED,\n \"geo\": DEFAULT_TYPE_URI,\n \"impp\": DEFAULT_TYPE_URI,\n \"key\": DEFAULT_TYPE_URI,\n \"kind\": DEFAULT_TYPE_TEXT,\n \"lang\": { defaultType: \"language-tag\" },\n \"logo\": DEFAULT_TYPE_URI,\n \"member\": DEFAULT_TYPE_URI,\n \"n\": { defaultType: \"text\", structuredValue: \";\", multiValue: \",\" },\n \"nickname\": DEFAULT_TYPE_TEXT_MULTI,\n \"note\": DEFAULT_TYPE_TEXT,\n \"org\": { defaultType: \"text\", structuredValue: \";\" },\n \"photo\": DEFAULT_TYPE_URI,\n \"related\": DEFAULT_TYPE_URI,\n \"rev\": { defaultType: \"timestamp\" },\n \"role\": DEFAULT_TYPE_TEXT,\n \"sound\": DEFAULT_TYPE_URI,\n \"source\": DEFAULT_TYPE_URI,\n \"tel\": { defaultType: \"uri\", allowedTypes: [\"uri\", \"text\"] },\n \"title\": DEFAULT_TYPE_TEXT,\n \"tz\": { defaultType: \"text\", allowedTypes: [\"text\", \"utc-offset\", \"uri\"] },\n \"xml\": DEFAULT_TYPE_TEXT\n});\n\nlet vcard3Values = extend(commonValues, {\n binary: icalValues.binary,\n date: vcardValues.date,\n \"date-time\": vcardValues[\"date-time\"],\n \"phone-number\": vcardValues[\"phone-number\"],\n uri: icalValues.uri,\n text: vcardValues.text,\n time: icalValues.time,\n vcard: icalValues.text,\n \"utc-offset\": {\n toICAL: function(aValue) {\n return aValue.slice(0, 7);\n },\n\n fromICAL: function(aValue) {\n return aValue.slice(0, 7);\n },\n\n decorate: function(aValue) {\n return UtcOffset.fromString(aValue);\n },\n\n undecorate: function(aValue) {\n return aValue.toString();\n }\n }\n});\n\nlet vcard3Params = {\n \"type\": {\n valueType: \"text\",\n multiValue: \",\"\n },\n \"value\": {\n // since the value here is a 'type' lowercase is used.\n values: [\"text\", \"uri\", \"date\", \"date-time\", \"phone-number\", \"time\",\n \"boolean\", \"integer\", \"float\", \"utc-offset\", \"vcard\", \"binary\"],\n allowXName: true,\n allowIanaToken: true\n }\n};\n\nlet vcard3Properties = extend(commonProperties, {\n fn: DEFAULT_TYPE_TEXT,\n n: { defaultType: \"text\", structuredValue: \";\", multiValue: \",\" },\n nickname: DEFAULT_TYPE_TEXT_MULTI,\n photo: { defaultType: \"binary\", allowedTypes: [\"binary\", \"uri\"] },\n bday: {\n defaultType: \"date-time\",\n allowedTypes: [\"date-time\", \"date\"],\n detectType: function(string) {\n return (string.indexOf('T') === -1) ? 'date' : 'date-time';\n }\n },\n\n adr: { defaultType: \"text\", structuredValue: \";\", multiValue: \",\" },\n label: DEFAULT_TYPE_TEXT,\n\n tel: { defaultType: \"phone-number\" },\n email: DEFAULT_TYPE_TEXT,\n mailer: DEFAULT_TYPE_TEXT,\n\n tz: { defaultType: \"utc-offset\", allowedTypes: [\"utc-offset\", \"text\"] },\n geo: { defaultType: \"float\", structuredValue: \";\" },\n\n title: DEFAULT_TYPE_TEXT,\n role: DEFAULT_TYPE_TEXT,\n logo: { defaultType: \"binary\", allowedTypes: [\"binary\", \"uri\"] },\n agent: { defaultType: \"vcard\", allowedTypes: [\"vcard\", \"text\", \"uri\"] },\n org: DEFAULT_TYPE_TEXT_STRUCTURED,\n\n note: DEFAULT_TYPE_TEXT_MULTI,\n prodid: DEFAULT_TYPE_TEXT,\n rev: {\n defaultType: \"date-time\",\n allowedTypes: [\"date-time\", \"date\"],\n detectType: function(string) {\n return (string.indexOf('T') === -1) ? 'date' : 'date-time';\n }\n },\n \"sort-string\": DEFAULT_TYPE_TEXT,\n sound: { defaultType: \"binary\", allowedTypes: [\"binary\", \"uri\"] },\n\n class: DEFAULT_TYPE_TEXT,\n key: { defaultType: \"binary\", allowedTypes: [\"binary\", \"text\"] }\n});\n\n/**\n * iCalendar design set\n * @type {designSet}\n */\nlet icalSet = {\n name: \"ical\",\n value: icalValues,\n param: icalParams,\n property: icalProperties,\n propertyGroups: false\n};\n\n/**\n * vCard 4.0 design set\n * @type {designSet}\n */\nlet vcardSet = {\n name: \"vcard4\",\n value: vcardValues,\n param: vcardParams,\n property: vcardProperties,\n propertyGroups: true\n};\n\n/**\n * vCard 3.0 design set\n * @type {designSet}\n */\nlet vcard3Set = {\n name: \"vcard3\",\n value: vcard3Values,\n param: vcard3Params,\n property: vcard3Properties,\n propertyGroups: true\n};\n\n/**\n * The design data, used by the parser to determine types for properties and\n * other metadata needed to produce correct jCard/jCal data.\n *\n * @alias ICAL.design\n * @exports module:ICAL.design\n */\nconst design = {\n /**\n * Can be set to false to make the parser more lenient.\n */\n strict: true,\n\n /**\n * The default set for new properties and components if none is specified.\n * @type {designSet}\n */\n defaultSet: icalSet,\n\n /**\n * The default type for unknown properties\n * @type {String}\n */\n defaultType: 'unknown',\n\n /**\n * Holds the design set for known top-level components\n *\n * @type {Object}\n * @property {designSet} vcard vCard VCARD\n * @property {designSet} vevent iCalendar VEVENT\n * @property {designSet} vtodo iCalendar VTODO\n * @property {designSet} vjournal iCalendar VJOURNAL\n * @property {designSet} valarm iCalendar VALARM\n * @property {designSet} vtimezone iCalendar VTIMEZONE\n * @property {designSet} daylight iCalendar DAYLIGHT\n * @property {designSet} standard iCalendar STANDARD\n *\n * @example\n * let propertyName = 'fn';\n * let componentDesign = ICAL.design.components.vcard;\n * let propertyDetails = componentDesign.property[propertyName];\n * if (propertyDetails.defaultType == 'text') {\n * // Yep, sure is...\n * }\n */\n components: {\n vcard: vcardSet,\n vcard3: vcard3Set,\n vevent: icalSet,\n vtodo: icalSet,\n vjournal: icalSet,\n valarm: icalSet,\n vtimezone: icalSet,\n daylight: icalSet,\n standard: icalSet\n },\n\n\n /**\n * The design set for iCalendar (rfc5545/rfc7265) components.\n * @type {designSet}\n */\n icalendar: icalSet,\n\n /**\n * The design set for vCard (rfc6350/rfc7095) components.\n * @type {designSet}\n */\n vcard: vcardSet,\n\n /**\n * The design set for vCard (rfc2425/rfc2426/rfc7095) components.\n * @type {designSet}\n */\n vcard3: vcard3Set,\n\n /**\n * Gets the design set for the given component name.\n *\n * @param {String} componentName The name of the component\n * @return {designSet} The design set for the component\n */\n getDesignSet: function(componentName) {\n let isInDesign = componentName && componentName in design.components;\n return isInDesign ? design.components[componentName] : design.defaultSet;\n }\n};\n\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch */\n\n\n/**\n * This lets typescript resolve our custom types in the\n * generated d.ts files (jsdoc typedefs are converted to typescript types).\n * Ignore prevents the typedefs from being documented more than once.\n *\n * @ignore\n * @typedef {import(\"./types.js\").designSet} designSet\n * Imports the 'designSet' type from the \"types.js\" module\n */\n\nconst LINE_ENDING = '\\r\\n';\nconst DEFAULT_VALUE_TYPE = 'unknown';\nconst RFC6868_REPLACE_MAP = { '\"': \"^'\", \"\\n\": \"^n\", \"^\": \"^^\" };\n\n/**\n * Convert a full jCal/jCard array into a iCalendar/vCard string.\n *\n * @function ICAL.stringify\n * @variation function\n * @param {Array} jCal The jCal/jCard document\n * @return {String} The stringified iCalendar/vCard document\n */\nfunction stringify(jCal) {\n if (typeof jCal[0] == \"string\") {\n // This is a single component\n jCal = [jCal];\n }\n\n let i = 0;\n let len = jCal.length;\n let result = '';\n\n for (; i < len; i++) {\n result += stringify.component(jCal[i]) + LINE_ENDING;\n }\n\n return result;\n}\n\n/**\n * Converts an jCal component array into a ICAL string.\n * Recursive will resolve sub-components.\n *\n * Exact component/property order is not saved all\n * properties will come before subcomponents.\n *\n * @function ICAL.stringify.component\n * @param {Array} component\n * jCal/jCard fragment of a component\n * @param {designSet} designSet\n * The design data to use for this component\n * @return {String} The iCalendar/vCard string\n */\nstringify.component = function(component, designSet) {\n let name = component[0].toUpperCase();\n let result = 'BEGIN:' + name + LINE_ENDING;\n\n let props = component[1];\n let propIdx = 0;\n let propLen = props.length;\n\n let designSetName = component[0];\n // rfc6350 requires that in vCard 4.0 the first component is the VERSION\n // component with as value 4.0, note that 3.0 does not have this requirement.\n if (designSetName === 'vcard' && component[1].length > 0 &&\n !(component[1][0][0] === \"version\" && component[1][0][3] === \"4.0\")) {\n designSetName = \"vcard3\";\n }\n designSet = designSet || design.getDesignSet(designSetName);\n\n for (; propIdx < propLen; propIdx++) {\n result += stringify.property(props[propIdx], designSet) + LINE_ENDING;\n }\n\n // Ignore subcomponents if none exist, e.g. in vCard.\n let comps = component[2] || [];\n let compIdx = 0;\n let compLen = comps.length;\n\n for (; compIdx < compLen; compIdx++) {\n result += stringify.component(comps[compIdx], designSet) + LINE_ENDING;\n }\n\n result += 'END:' + name;\n return result;\n};\n\n/**\n * Converts a single jCal/jCard property to a iCalendar/vCard string.\n *\n * @function ICAL.stringify.property\n * @param {Array} property\n * jCal/jCard property array\n * @param {designSet} designSet\n * The design data to use for this property\n * @param {Boolean} noFold\n * If true, the line is not folded\n * @return {String} The iCalendar/vCard string\n */\nstringify.property = function(property, designSet, noFold) {\n let name = property[0].toUpperCase();\n let jsName = property[0];\n let params = property[1];\n\n if (!designSet) {\n designSet = design.defaultSet;\n }\n\n let groupName = params.group;\n let line;\n if (designSet.propertyGroups && groupName) {\n line = groupName.toUpperCase() + \".\" + name;\n } else {\n line = name;\n }\n\n for (let [paramName, value] of Object.entries(params)) {\n if (designSet.propertyGroups && paramName == 'group') {\n continue;\n }\n\n let paramDesign = designSet.param[paramName];\n let multiValue = paramDesign && paramDesign.multiValue;\n if (multiValue && Array.isArray(value)) {\n value = value.map(function(val) {\n val = stringify._rfc6868Unescape(val);\n val = stringify.paramPropertyValue(val, paramDesign.multiValueSeparateDQuote);\n return val;\n });\n value = stringify.multiValue(value, multiValue, \"unknown\", null, designSet);\n } else {\n value = stringify._rfc6868Unescape(value);\n value = stringify.paramPropertyValue(value);\n }\n\n line += ';' + paramName.toUpperCase() + '=' + value;\n }\n\n if (property.length === 3) {\n // If there are no values, we must assume a blank value\n return line + ':';\n }\n\n let valueType = property[2];\n\n let propDetails;\n let multiValue = false;\n let structuredValue = false;\n let isDefault = false;\n\n if (jsName in designSet.property) {\n propDetails = designSet.property[jsName];\n\n if ('multiValue' in propDetails) {\n multiValue = propDetails.multiValue;\n }\n\n if (('structuredValue' in propDetails) && Array.isArray(property[3])) {\n structuredValue = propDetails.structuredValue;\n }\n\n if ('defaultType' in propDetails) {\n if (valueType === propDetails.defaultType) {\n isDefault = true;\n }\n } else {\n if (valueType === DEFAULT_VALUE_TYPE) {\n isDefault = true;\n }\n }\n } else {\n if (valueType === DEFAULT_VALUE_TYPE) {\n isDefault = true;\n }\n }\n\n // push the VALUE property if type is not the default\n // for the current property.\n if (!isDefault) {\n // value will never contain ;/:/, so we don't escape it here.\n line += ';VALUE=' + valueType.toUpperCase();\n }\n\n line += ':';\n\n if (multiValue && structuredValue) {\n line += stringify.multiValue(\n property[3], structuredValue, valueType, multiValue, designSet, structuredValue\n );\n } else if (multiValue) {\n line += stringify.multiValue(\n property.slice(3), multiValue, valueType, null, designSet, false\n );\n } else if (structuredValue) {\n line += stringify.multiValue(\n property[3], structuredValue, valueType, null, designSet, structuredValue\n );\n } else {\n line += stringify.value(property[3], valueType, designSet, false);\n }\n\n return noFold ? line : foldline(line);\n};\n\n/**\n * Handles escaping of property values that may contain:\n *\n * COLON (:), SEMICOLON (;), or COMMA (,)\n *\n * If any of the above are present the result is wrapped\n * in double quotes.\n *\n * @function ICAL.stringify.paramPropertyValue\n * @param {String} value Raw property value\n * @param {boolean} force If value should be escaped even when unnecessary\n * @return {String} Given or escaped value when needed\n */\nstringify.paramPropertyValue = function(value, force) {\n if (!force &&\n (value.indexOf(',') === -1) &&\n (value.indexOf(':') === -1) &&\n (value.indexOf(';') === -1)) {\n\n return value;\n }\n\n return '\"' + value + '\"';\n};\n\n/**\n * Converts an array of ical values into a single\n * string based on a type and a delimiter value (like \",\").\n *\n * @function ICAL.stringify.multiValue\n * @param {Array} values List of values to convert\n * @param {String} delim Used to join the values (\",\", \";\", \":\")\n * @param {String} type Lowecase ical value type\n * (like boolean, date-time, etc..)\n * @param {?String} innerMulti If set, each value will again be processed\n * Used for structured values\n * @param {designSet} designSet\n * The design data to use for this property\n *\n * @return {String} iCalendar/vCard string for value\n */\nstringify.multiValue = function(values, delim, type, innerMulti, designSet, structuredValue) {\n let result = '';\n let len = values.length;\n let i = 0;\n\n for (; i < len; i++) {\n if (innerMulti && Array.isArray(values[i])) {\n result += stringify.multiValue(values[i], innerMulti, type, null, designSet, structuredValue);\n } else {\n result += stringify.value(values[i], type, designSet, structuredValue);\n }\n\n if (i !== (len - 1)) {\n result += delim;\n }\n }\n\n return result;\n};\n\n/**\n * Processes a single ical value runs the associated \"toICAL\" method from the\n * design value type if available to convert the value.\n *\n * @function ICAL.stringify.value\n * @param {String|Number} value A formatted value\n * @param {String} type Lowercase iCalendar/vCard value type\n * (like boolean, date-time, etc..)\n * @return {String} iCalendar/vCard value for single value\n */\nstringify.value = function(value, type, designSet, structuredValue) {\n if (type in designSet.value && 'toICAL' in designSet.value[type]) {\n return designSet.value[type].toICAL(value, structuredValue);\n }\n return value;\n};\n\n/**\n * Internal helper for rfc6868. Exposing this on ICAL.stringify so that\n * hackers can disable the rfc6868 parsing if the really need to.\n *\n * @param {String} val The value to unescape\n * @return {String} The escaped value\n */\nstringify._rfc6868Unescape = function(val) {\n return val.replace(/[\\n^\"]/g, function(x) {\n return RFC6868_REPLACE_MAP[x];\n });\n};\n\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch */\n\nconst NAME_INDEX$1 = 0;\nconst PROP_INDEX = 1;\nconst TYPE_INDEX = 2;\nconst VALUE_INDEX = 3;\n\n/**\n * This lets typescript resolve our custom types in the\n * generated d.ts files (jsdoc typedefs are converted to typescript types).\n * Ignore prevents the typedefs from being documented more than once.\n * @ignore\n * @typedef {import(\"./types.js\").designSet} designSet\n * Imports the 'designSet' type from the \"types.js\" module\n * @typedef {import(\"./types.js\").Geo} Geo\n * Imports the 'Geo' type from the \"types.js\" module\n */\n\n/**\n * Provides a layer on top of the raw jCal object for manipulating a single property, with its\n * parameters and value.\n *\n * @memberof ICAL\n */\nclass Property {\n /**\n * Create an {@link ICAL.Property} by parsing the passed iCalendar string.\n *\n * @param {String} str The iCalendar string to parse\n * @param {designSet=} designSet The design data to use for this property\n * @return {Property} The created iCalendar property\n */\n static fromString(str, designSet) {\n return new Property(parse.property(str, designSet));\n }\n\n /**\n * Creates a new ICAL.Property instance.\n *\n * It is important to note that mutations done in the wrapper directly mutate the jCal object used\n * to initialize.\n *\n * Can also be used to create new properties by passing the name of the property (as a String).\n *\n * @param {Array|String} jCal Raw jCal representation OR the new name of the property\n * @param {Component=} parent Parent component\n */\n constructor(jCal, parent) {\n this._parent = parent || null;\n\n if (typeof(jCal) === 'string') {\n // We are creating the property by name and need to detect the type\n this.jCal = [jCal, {}, design.defaultType];\n this.jCal[TYPE_INDEX] = this.getDefaultType();\n } else {\n this.jCal = jCal;\n }\n this._updateType();\n }\n\n /**\n * The value type for this property\n * @type {String}\n */\n get type() {\n return this.jCal[TYPE_INDEX];\n }\n\n /**\n * The name of this property, in lowercase.\n * @type {String}\n */\n get name() {\n return this.jCal[NAME_INDEX$1];\n }\n\n /**\n * The parent component for this property.\n * @type {Component}\n */\n get parent() {\n return this._parent;\n }\n\n set parent(p) {\n // Before setting the parent, check if the design set has changed. If it\n // has, we later need to update the type if it was unknown before.\n let designSetChanged = !this._parent || (p && p._designSet != this._parent._designSet);\n\n this._parent = p;\n\n if (this.type == design.defaultType && designSetChanged) {\n this.jCal[TYPE_INDEX] = this.getDefaultType();\n this._updateType();\n }\n }\n\n /**\n * The design set for this property, e.g. icalendar vs vcard\n *\n * @type {designSet}\n * @private\n */\n get _designSet() {\n return this.parent ? this.parent._designSet : design.defaultSet;\n }\n\n /**\n * Updates the type metadata from the current jCal type and design set.\n *\n * @private\n */\n _updateType() {\n let designSet = this._designSet;\n\n if (this.type in designSet.value) {\n if ('decorate' in designSet.value[this.type]) {\n this.isDecorated = true;\n } else {\n this.isDecorated = false;\n }\n\n if (this.name in designSet.property) {\n this.isMultiValue = ('multiValue' in designSet.property[this.name]);\n this.isStructuredValue = ('structuredValue' in designSet.property[this.name]);\n }\n }\n }\n\n /**\n * Hydrate a single value. The act of hydrating means turning the raw jCal\n * value into a potentially wrapped object, for example {@link ICAL.Time}.\n *\n * @private\n * @param {Number} index The index of the value to hydrate\n * @return {?Object} The decorated value.\n */\n _hydrateValue(index) {\n if (this._values && this._values[index]) {\n return this._values[index];\n }\n\n // for the case where there is no value.\n if (this.jCal.length <= (VALUE_INDEX + index)) {\n return null;\n }\n\n if (this.isDecorated) {\n if (!this._values) {\n this._values = [];\n }\n return (this._values[index] = this._decorate(\n this.jCal[VALUE_INDEX + index]\n ));\n } else {\n return this.jCal[VALUE_INDEX + index];\n }\n }\n\n /**\n * Decorate a single value, returning its wrapped object. This is used by\n * the hydrate function to actually wrap the value.\n *\n * @private\n * @param {?} value The value to decorate\n * @return {Object} The decorated value\n */\n _decorate(value) {\n return this._designSet.value[this.type].decorate(value, this);\n }\n\n /**\n * Undecorate a single value, returning its raw jCal data.\n *\n * @private\n * @param {Object} value The value to undecorate\n * @return {?} The undecorated value\n */\n _undecorate(value) {\n return this._designSet.value[this.type].undecorate(value, this);\n }\n\n /**\n * Sets the value at the given index while also hydrating it. The passed\n * value can either be a decorated or undecorated value.\n *\n * @private\n * @param {?} value The value to set\n * @param {Number} index The index to set it at\n */\n _setDecoratedValue(value, index) {\n if (!this._values) {\n this._values = [];\n }\n\n if (typeof(value) === 'object' && 'icaltype' in value) {\n // decorated value\n this.jCal[VALUE_INDEX + index] = this._undecorate(value);\n this._values[index] = value;\n } else {\n // undecorated value\n this.jCal[VALUE_INDEX + index] = value;\n this._values[index] = this._decorate(value);\n }\n }\n\n /**\n * Gets a parameter on the property.\n *\n * @param {String} name Parameter name (lowercase)\n * @return {Array|String} Parameter value\n */\n getParameter(name) {\n if (name in this.jCal[PROP_INDEX]) {\n return this.jCal[PROP_INDEX][name];\n } else {\n return undefined;\n }\n }\n\n /**\n * Gets first parameter on the property.\n *\n * @param {String} name Parameter name (lowercase)\n * @return {String} Parameter value\n */\n getFirstParameter(name) {\n let parameters = this.getParameter(name);\n\n if (Array.isArray(parameters)) {\n return parameters[0];\n }\n\n return parameters;\n }\n\n /**\n * Sets a parameter on the property.\n *\n * @param {String} name The parameter name\n * @param {Array|String} value The parameter value\n */\n setParameter(name, value) {\n let lcname = name.toLowerCase();\n if (typeof value === \"string\" &&\n lcname in this._designSet.param &&\n 'multiValue' in this._designSet.param[lcname]) {\n value = [value];\n }\n this.jCal[PROP_INDEX][name] = value;\n }\n\n /**\n * Removes a parameter\n *\n * @param {String} name The parameter name\n */\n removeParameter(name) {\n delete this.jCal[PROP_INDEX][name];\n }\n\n /**\n * Get the default type based on this property's name.\n *\n * @return {String} The default type for this property\n */\n getDefaultType() {\n let name = this.jCal[NAME_INDEX$1];\n let designSet = this._designSet;\n\n if (name in designSet.property) {\n let details = designSet.property[name];\n if ('defaultType' in details) {\n return details.defaultType;\n }\n }\n return design.defaultType;\n }\n\n /**\n * Sets type of property and clears out any existing values of the current\n * type.\n *\n * @param {String} type New iCAL type (see design.*.values)\n */\n resetType(type) {\n this.removeAllValues();\n this.jCal[TYPE_INDEX] = type;\n this._updateType();\n }\n\n /**\n * Finds the first property value.\n *\n * @return {Binary | Duration | Period |\n * Recur | Time | UtcOffset | Geo | string | null} First property value\n */\n getFirstValue() {\n return this._hydrateValue(0);\n }\n\n /**\n * Gets all values on the property.\n *\n * NOTE: this creates an array during each call.\n *\n * @return {Array} List of values\n */\n getValues() {\n let len = this.jCal.length - VALUE_INDEX;\n\n if (len < 1) {\n // it is possible for a property to have no value.\n return [];\n }\n\n let i = 0;\n let result = [];\n\n for (; i < len; i++) {\n result[i] = this._hydrateValue(i);\n }\n\n return result;\n }\n\n /**\n * Removes all values from this property\n */\n removeAllValues() {\n if (this._values) {\n this._values.length = 0;\n }\n this.jCal.length = 3;\n }\n\n /**\n * Sets the values of the property. Will overwrite the existing values.\n * This can only be used for multi-value properties.\n *\n * @param {Array} values An array of values\n */\n setValues(values) {\n if (!this.isMultiValue) {\n throw new Error(\n this.name + ': does not not support mulitValue.\\n' +\n 'override isMultiValue'\n );\n }\n\n let len = values.length;\n let i = 0;\n this.removeAllValues();\n\n if (len > 0 &&\n typeof(values[0]) === 'object' &&\n 'icaltype' in values[0]) {\n this.resetType(values[0].icaltype);\n }\n\n if (this.isDecorated) {\n for (; i < len; i++) {\n this._setDecoratedValue(values[i], i);\n }\n } else {\n for (; i < len; i++) {\n this.jCal[VALUE_INDEX + i] = values[i];\n }\n }\n }\n\n /**\n * Sets the current value of the property. If this is a multi-value\n * property, all other values will be removed.\n *\n * @param {String|Object} value New property value.\n */\n setValue(value) {\n this.removeAllValues();\n if (typeof(value) === 'object' && 'icaltype' in value) {\n this.resetType(value.icaltype);\n }\n\n if (this.isDecorated) {\n this._setDecoratedValue(value, 0);\n } else {\n this.jCal[VALUE_INDEX] = value;\n }\n }\n\n /**\n * Returns the Object representation of this component. The returned object\n * is a live jCal object and should be cloned if modified.\n * @return {Object}\n */\n toJSON() {\n return this.jCal;\n }\n\n /**\n * The string representation of this component.\n * @return {String}\n */\n toICALString() {\n return stringify.property(\n this.jCal, this._designSet, true\n );\n }\n}\n\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch */\n\n\n/**\n * This lets typescript resolve our custom types in the\n * generated d.ts files (jsdoc typedefs are converted to typescript types).\n * Ignore prevents the typedefs from being documented more than once.\n * @ignore\n * @typedef {import(\"./types.js\").designSet} designSet\n * Imports the 'designSet' type from the \"types.js\" module\n * @typedef {import(\"./types.js\").Geo} Geo\n * Imports the 'Geo' type from the \"types.js\" module\n */\n\nconst NAME_INDEX = 0;\nconst PROPERTY_INDEX = 1;\nconst COMPONENT_INDEX = 2;\n\nconst PROPERTY_NAME_INDEX = 0;\nconst PROPERTY_VALUE_INDEX = 3;\n\n/**\n * Wraps a jCal component, adding convenience methods to add, remove and update subcomponents and\n * properties.\n *\n * @memberof ICAL\n */\nclass Component {\n /**\n * Create an {@link ICAL.Component} by parsing the passed iCalendar string.\n *\n * @param {String} str The iCalendar string to parse\n */\n static fromString(str) {\n return new Component(parse.component(str));\n }\n\n /**\n * Creates a new Component instance.\n *\n * @param {Array|String} jCal Raw jCal component data OR name of new\n * component\n * @param {Component=} parent Parent component to associate\n */\n constructor(jCal, parent) {\n if (typeof(jCal) === 'string') {\n // jCal spec (name, properties, components)\n jCal = [jCal, [], []];\n }\n\n // mostly for legacy reasons.\n this.jCal = jCal;\n\n this.parent = parent || null;\n\n if (!this.parent && this.name === 'vcalendar') {\n this._timezoneCache = new Map();\n }\n }\n\n /**\n * Hydrated properties are inserted into the _properties array at the same\n * position as in the jCal array, so it is possible that the array contains\n * undefined values for unhydrdated properties. To avoid iterating the\n * array when checking if all properties have been hydrated, we save the\n * count here.\n *\n * @type {Number}\n * @private\n */\n _hydratedPropertyCount = 0;\n\n /**\n * The same count as for _hydratedPropertyCount, but for subcomponents\n *\n * @type {Number}\n * @private\n */\n _hydratedComponentCount = 0;\n\n /**\n * A cache of hydrated time zone objects which may be used by consumers, keyed\n * by time zone ID.\n *\n * @type {Map}\n * @private\n */\n _timezoneCache = null;\n\n /**\n * @private\n */\n _components = null;\n\n /**\n * @private\n */\n _properties = null;\n\n /**\n * The name of this component\n *\n * @type {String}\n */\n get name() {\n return this.jCal[NAME_INDEX];\n }\n\n /**\n * The design set for this component, e.g. icalendar vs vcard\n *\n * @type {designSet}\n * @private\n */\n get _designSet() {\n let parentDesign = this.parent && this.parent._designSet;\n if (!parentDesign && this.name == \"vcard\") {\n // We can't decide on vcard3 vs vcard4 just based on the component name, the version number is\n // in the version property. We also can't use hydrated properties here because it would lead\n // to recursion, but the spec says that the version property needs to be the very first one.\n let versionProp = this.jCal[PROPERTY_INDEX]?.[0];\n\n if (versionProp && versionProp[PROPERTY_NAME_INDEX] == \"version\" && versionProp[PROPERTY_VALUE_INDEX] == \"3.0\") {\n return design.getDesignSet(\"vcard3\");\n }\n }\n\n return parentDesign || design.getDesignSet(this.name);\n }\n\n /**\n * @private\n */\n _hydrateComponent(index) {\n if (!this._components) {\n this._components = [];\n this._hydratedComponentCount = 0;\n }\n\n if (this._components[index]) {\n return this._components[index];\n }\n\n let comp = new Component(\n this.jCal[COMPONENT_INDEX][index],\n this\n );\n\n this._hydratedComponentCount++;\n return (this._components[index] = comp);\n }\n\n /**\n * @private\n */\n _hydrateProperty(index) {\n if (!this._properties) {\n this._properties = [];\n this._hydratedPropertyCount = 0;\n }\n\n if (this._properties[index]) {\n return this._properties[index];\n }\n\n let prop = new Property(\n this.jCal[PROPERTY_INDEX][index],\n this\n );\n\n this._hydratedPropertyCount++;\n return (this._properties[index] = prop);\n }\n\n /**\n * Finds first sub component, optionally filtered by name.\n *\n * @param {String=} name Optional name to filter by\n * @return {?Component} The found subcomponent\n */\n getFirstSubcomponent(name) {\n if (name) {\n let i = 0;\n let comps = this.jCal[COMPONENT_INDEX];\n let len = comps.length;\n\n for (; i < len; i++) {\n if (comps[i][NAME_INDEX] === name) {\n let result = this._hydrateComponent(i);\n return result;\n }\n }\n } else {\n if (this.jCal[COMPONENT_INDEX].length) {\n return this._hydrateComponent(0);\n }\n }\n\n // ensure we return a value (strict mode)\n return null;\n }\n\n /**\n * Finds all sub components, optionally filtering by name.\n *\n * @param {String=} name Optional name to filter by\n * @return {Component[]} The found sub components\n */\n getAllSubcomponents(name) {\n let jCalLen = this.jCal[COMPONENT_INDEX].length;\n let i = 0;\n\n if (name) {\n let comps = this.jCal[COMPONENT_INDEX];\n let result = [];\n\n for (; i < jCalLen; i++) {\n if (name === comps[i][NAME_INDEX]) {\n result.push(\n this._hydrateComponent(i)\n );\n }\n }\n return result;\n } else {\n if (!this._components ||\n (this._hydratedComponentCount !== jCalLen)) {\n for (; i < jCalLen; i++) {\n this._hydrateComponent(i);\n }\n }\n\n return this._components || [];\n }\n }\n\n /**\n * Returns true when a named property exists.\n *\n * @param {String} name The property name\n * @return {Boolean} True, when property is found\n */\n hasProperty(name) {\n let props = this.jCal[PROPERTY_INDEX];\n let len = props.length;\n\n let i = 0;\n for (; i < len; i++) {\n // 0 is property name\n if (props[i][NAME_INDEX] === name) {\n return true;\n }\n }\n\n return false;\n }\n\n /**\n * Finds the first property, optionally with the given name.\n *\n * @param {String=} name Lowercase property name\n * @return {?Property} The found property\n */\n getFirstProperty(name) {\n if (name) {\n let i = 0;\n let props = this.jCal[PROPERTY_INDEX];\n let len = props.length;\n\n for (; i < len; i++) {\n if (props[i][NAME_INDEX] === name) {\n let result = this._hydrateProperty(i);\n return result;\n }\n }\n } else {\n if (this.jCal[PROPERTY_INDEX].length) {\n return this._hydrateProperty(0);\n }\n }\n\n return null;\n }\n\n /**\n * Returns first property's value, if available.\n *\n * @param {String=} name Lowercase property name\n * @return {Binary | Duration | Period |\n * Recur | Time | UtcOffset | Geo | string | null} The found property value.\n */\n getFirstPropertyValue(name) {\n let prop = this.getFirstProperty(name);\n if (prop) {\n return prop.getFirstValue();\n }\n\n return null;\n }\n\n /**\n * Get all properties in the component, optionally filtered by name.\n *\n * @param {String=} name Lowercase property name\n * @return {Property[]} List of properties\n */\n getAllProperties(name) {\n let jCalLen = this.jCal[PROPERTY_INDEX].length;\n let i = 0;\n\n if (name) {\n let props = this.jCal[PROPERTY_INDEX];\n let result = [];\n\n for (; i < jCalLen; i++) {\n if (name === props[i][NAME_INDEX]) {\n result.push(\n this._hydrateProperty(i)\n );\n }\n }\n return result;\n } else {\n if (!this._properties ||\n (this._hydratedPropertyCount !== jCalLen)) {\n for (; i < jCalLen; i++) {\n this._hydrateProperty(i);\n }\n }\n\n return this._properties || [];\n }\n }\n\n /**\n * @private\n */\n _removeObjectByIndex(jCalIndex, cache, index) {\n cache = cache || [];\n // remove cached version\n if (cache[index]) {\n let obj = cache[index];\n if (\"parent\" in obj) {\n obj.parent = null;\n }\n }\n\n cache.splice(index, 1);\n\n // remove it from the jCal\n this.jCal[jCalIndex].splice(index, 1);\n }\n\n /**\n * @private\n */\n _removeObject(jCalIndex, cache, nameOrObject) {\n let i = 0;\n let objects = this.jCal[jCalIndex];\n let len = objects.length;\n let cached = this[cache];\n\n if (typeof(nameOrObject) === 'string') {\n for (; i < len; i++) {\n if (objects[i][NAME_INDEX] === nameOrObject) {\n this._removeObjectByIndex(jCalIndex, cached, i);\n return true;\n }\n }\n } else if (cached) {\n for (; i < len; i++) {\n if (cached[i] && cached[i] === nameOrObject) {\n this._removeObjectByIndex(jCalIndex, cached, i);\n return true;\n }\n }\n }\n\n return false;\n }\n\n /**\n * @private\n */\n _removeAllObjects(jCalIndex, cache, name) {\n let cached = this[cache];\n\n // Unfortunately we have to run through all children to reset their\n // parent property.\n let objects = this.jCal[jCalIndex];\n let i = objects.length - 1;\n\n // descending search required because splice\n // is used and will effect the indices.\n for (; i >= 0; i--) {\n if (!name || objects[i][NAME_INDEX] === name) {\n this._removeObjectByIndex(jCalIndex, cached, i);\n }\n }\n }\n\n /**\n * Adds a single sub component.\n *\n * @param {Component} component The component to add\n * @return {Component} The passed in component\n */\n addSubcomponent(component) {\n if (!this._components) {\n this._components = [];\n this._hydratedComponentCount = 0;\n }\n\n if (component.parent) {\n component.parent.removeSubcomponent(component);\n }\n\n let idx = this.jCal[COMPONENT_INDEX].push(component.jCal);\n this._components[idx - 1] = component;\n this._hydratedComponentCount++;\n component.parent = this;\n return component;\n }\n\n /**\n * Removes a single component by name or the instance of a specific\n * component.\n *\n * @param {Component|String} nameOrComp Name of component, or component\n * @return {Boolean} True when comp is removed\n */\n removeSubcomponent(nameOrComp) {\n let removed = this._removeObject(COMPONENT_INDEX, '_components', nameOrComp);\n if (removed) {\n this._hydratedComponentCount--;\n }\n return removed;\n }\n\n /**\n * Removes all components or (if given) all components by a particular\n * name.\n *\n * @param {String=} name Lowercase component name\n */\n removeAllSubcomponents(name) {\n let removed = this._removeAllObjects(COMPONENT_INDEX, '_components', name);\n this._hydratedComponentCount = 0;\n return removed;\n }\n\n /**\n * Adds an {@link ICAL.Property} to the component.\n *\n * @param {Property} property The property to add\n * @return {Property} The passed in property\n */\n addProperty(property) {\n if (!(property instanceof Property)) {\n throw new TypeError('must be instance of ICAL.Property');\n }\n\n if (!this._properties) {\n this._properties = [];\n this._hydratedPropertyCount = 0;\n }\n\n if (property.parent) {\n property.parent.removeProperty(property);\n }\n\n let idx = this.jCal[PROPERTY_INDEX].push(property.jCal);\n this._properties[idx - 1] = property;\n this._hydratedPropertyCount++;\n property.parent = this;\n return property;\n }\n\n /**\n * Helper method to add a property with a value to the component.\n *\n * @param {String} name Property name to add\n * @param {String|Number|Object} value Property value\n * @return {Property} The created property\n */\n addPropertyWithValue(name, value) {\n let prop = new Property(name);\n prop.setValue(value);\n\n this.addProperty(prop);\n\n return prop;\n }\n\n /**\n * Helper method that will update or create a property of the given name\n * and sets its value. If multiple properties with the given name exist,\n * only the first is updated.\n *\n * @param {String} name Property name to update\n * @param {String|Number|Object} value Property value\n * @return {Property} The created property\n */\n updatePropertyWithValue(name, value) {\n let prop = this.getFirstProperty(name);\n\n if (prop) {\n prop.setValue(value);\n } else {\n prop = this.addPropertyWithValue(name, value);\n }\n\n return prop;\n }\n\n /**\n * Removes a single property by name or the instance of the specific\n * property.\n *\n * @param {String|Property} nameOrProp Property name or instance to remove\n * @return {Boolean} True, when deleted\n */\n removeProperty(nameOrProp) {\n let removed = this._removeObject(PROPERTY_INDEX, '_properties', nameOrProp);\n if (removed) {\n this._hydratedPropertyCount--;\n }\n return removed;\n }\n\n /**\n * Removes all properties associated with this component, optionally\n * filtered by name.\n *\n * @param {String=} name Lowercase property name\n * @return {Boolean} True, when deleted\n */\n removeAllProperties(name) {\n let removed = this._removeAllObjects(PROPERTY_INDEX, '_properties', name);\n this._hydratedPropertyCount = 0;\n return removed;\n }\n\n /**\n * Returns the Object representation of this component. The returned object\n * is a live jCal object and should be cloned if modified.\n * @return {Object}\n */\n toJSON() {\n return this.jCal;\n }\n\n /**\n * The string representation of this component.\n * @return {String}\n */\n toString() {\n return stringify.component(\n this.jCal, this._designSet\n );\n }\n\n /**\n * Retrieve a time zone definition from the component tree, if any is present.\n * If the tree contains no time zone definitions or the TZID cannot be\n * matched, returns null.\n *\n * @param {String} tzid The ID of the time zone to retrieve\n * @return {Timezone} The time zone corresponding to the ID, or null\n */\n getTimeZoneByID(tzid) {\n // VTIMEZONE components can only appear as a child of the VCALENDAR\n // component; walk the tree if we're not the root.\n if (this.parent) {\n return this.parent.getTimeZoneByID(tzid);\n }\n\n // If there is no time zone cache, we are probably parsing an incomplete\n // file and will have no time zone definitions.\n if (!this._timezoneCache) {\n return null;\n }\n\n if (this._timezoneCache.has(tzid)) {\n return this._timezoneCache.get(tzid);\n }\n\n // If the time zone is not already cached, hydrate it from the\n // subcomponents.\n const zones = this.getAllSubcomponents('vtimezone');\n for (const zone of zones) {\n if (zone.getFirstProperty('tzid').getFirstValue() === tzid) {\n const hydratedZone = new Timezone({\n component: zone,\n tzid: tzid,\n });\n\n this._timezoneCache.set(tzid, hydratedZone);\n\n return hydratedZone;\n }\n }\n\n // Per the standard, we should always have a time zone defined in a file\n // for any referenced TZID, but don't blow up if the file is invalid.\n return null;\n }\n}\n\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch */\n\n\n/**\n * Primary class for expanding recurring rules. Can take multiple rrules, rdates, exdate(s) and\n * iterate (in order) over each next occurrence.\n *\n * Once initialized this class can also be serialized saved and continue iteration from the last\n * point.\n *\n * NOTE: it is intended that this class is to be used with {@link ICAL.Event} which handles recurrence\n * exceptions.\n *\n * @example\n * // assuming event is a parsed ical component\n * var event;\n *\n * var expand = new ICAL.RecurExpansion({\n * component: event,\n * dtstart: event.getFirstPropertyValue('dtstart')\n * });\n *\n * // remember there are infinite rules so it is a good idea to limit the scope of the iterations\n * // then resume later on.\n *\n * // next is always an ICAL.Time or null\n * var next;\n *\n * while (someCondition && (next = expand.next())) {\n * // do something with next\n * }\n *\n * // save instance for later\n * var json = JSON.stringify(expand);\n *\n * //...\n *\n * // NOTE: if the component's properties have changed you will need to rebuild the class and start\n * // over. This only works when the component's recurrence info is the same.\n * var expand = new ICAL.RecurExpansion(JSON.parse(json));\n *\n * @memberof ICAL\n */\nclass RecurExpansion {\n /**\n * Creates a new ICAL.RecurExpansion instance.\n *\n * The options object can be filled with the specified initial values. It can also contain\n * additional members, as a result of serializing a previous expansion state, as shown in the\n * example.\n *\n * @param {Object} options\n * Recurrence expansion options\n * @param {Time} options.dtstart\n * Start time of the event\n * @param {Component=} options.component\n * Component for expansion, required if not resuming.\n */\n constructor(options) {\n this.ruleDates = [];\n this.exDates = [];\n this.fromData(options);\n }\n\n /**\n * True when iteration is fully completed.\n * @type {Boolean}\n */\n complete = false;\n\n /**\n * Array of rrule iterators.\n *\n * @type {RecurIterator[]}\n * @private\n */\n ruleIterators = null;\n\n /**\n * Array of rdate instances.\n *\n * @type {Time[]}\n * @private\n */\n ruleDates = null;\n\n /**\n * Array of exdate instances.\n *\n * @type {Time[]}\n * @private\n */\n exDates = null;\n\n /**\n * Current position in ruleDates array.\n * @type {Number}\n * @private\n */\n ruleDateInc = 0;\n\n /**\n * Current position in exDates array\n * @type {Number}\n * @private\n */\n exDateInc = 0;\n\n /**\n * Current negative date.\n *\n * @type {Time}\n * @private\n */\n exDate = null;\n\n /**\n * Current additional date.\n *\n * @type {Time}\n * @private\n */\n ruleDate = null;\n\n /**\n * Start date of recurring rules.\n *\n * @type {Time}\n */\n dtstart = null;\n\n /**\n * Last expanded time\n *\n * @type {Time}\n */\n last = null;\n\n /**\n * Initialize the recurrence expansion from the data object. The options\n * object may also contain additional members, see the\n * {@link ICAL.RecurExpansion constructor} for more details.\n *\n * @param {Object} options\n * Recurrence expansion options\n * @param {Time} options.dtstart\n * Start time of the event\n * @param {Component=} options.component\n * Component for expansion, required if not resuming.\n */\n fromData(options) {\n let start = formatClassType(options.dtstart, Time);\n\n if (!start) {\n throw new Error('.dtstart (ICAL.Time) must be given');\n } else {\n this.dtstart = start;\n }\n\n if (options.component) {\n this._init(options.component);\n } else {\n this.last = formatClassType(options.last, Time) || start.clone();\n\n if (!options.ruleIterators) {\n throw new Error('.ruleIterators or .component must be given');\n }\n\n this.ruleIterators = options.ruleIterators.map(function(item) {\n return formatClassType(item, RecurIterator);\n });\n\n this.ruleDateInc = options.ruleDateInc;\n this.exDateInc = options.exDateInc;\n\n if (options.ruleDates) {\n this.ruleDates = options.ruleDates.map(item => formatClassType(item, Time));\n this.ruleDate = this.ruleDates[this.ruleDateInc];\n }\n\n if (options.exDates) {\n this.exDates = options.exDates.map(item => formatClassType(item, Time));\n this.exDate = this.exDates[this.exDateInc];\n }\n\n if (typeof(options.complete) !== 'undefined') {\n this.complete = options.complete;\n }\n }\n }\n\n /**\n * Compare two ICAL.Time objects. When the second parameter is a DATE and the first parameter is\n * DATE-TIME, strip the time and compare only the days.\n *\n * @private\n * @param {Time} a The one object to compare\n * @param {Time} b The other object to compare\n */\n _compare_special(a, b) {\n if (!a.isDate && b.isDate)\n return new Time({ year: a.year, month: a.month, day: a.day }).compare(b);\n return a.compare(b);\n }\n\n /**\n * Retrieve the next occurrence in the series.\n * @return {Time}\n */\n next() {\n let iter;\n let next;\n let compare;\n\n let maxTries = 500;\n let currentTry = 0;\n\n while (true) {\n if (currentTry++ > maxTries) {\n throw new Error(\n 'max tries have occurred, rule may be impossible to fulfill.'\n );\n }\n\n next = this.ruleDate;\n iter = this._nextRecurrenceIter(this.last);\n\n // no more matches\n // because we increment the rule day or rule\n // _after_ we choose a value this should be\n // the only spot where we need to worry about the\n // end of events.\n if (!next && !iter) {\n // there are no more iterators or rdates\n this.complete = true;\n break;\n }\n\n // no next rule day or recurrence rule is first.\n if (!next || (iter && next.compare(iter.last) > 0)) {\n // must be cloned, recur will reuse the time element.\n next = iter.last.clone();\n // move to next so we can continue\n iter.next();\n }\n\n // if the ruleDate is still next increment it.\n if (this.ruleDate === next) {\n this._nextRuleDay();\n }\n\n this.last = next;\n\n // check the negative rules\n if (this.exDate) {\n // EXDATE can be in DATE format, but DTSTART is in DATE-TIME format\n compare = this._compare_special(this.last, this.exDate);\n\n if (compare > 0) {\n this._nextExDay();\n }\n\n // if the current rule is excluded skip it.\n if (compare === 0) {\n this._nextExDay();\n continue;\n }\n }\n\n //XXX: The spec states that after we resolve the final\n // list of dates we execute exdate this seems somewhat counter\n // intuitive to what I have seen most servers do so for now\n // I exclude based on the original date not the one that may\n // have been modified by the exception.\n return this.last;\n }\n }\n\n /**\n * Converts object into a serialize-able format. This format can be passed\n * back into the expansion to resume iteration.\n * @return {Object}\n */\n toJSON() {\n function toJSON(item) {\n return item.toJSON();\n }\n\n let result = Object.create(null);\n result.ruleIterators = this.ruleIterators.map(toJSON);\n\n if (this.ruleDates) {\n result.ruleDates = this.ruleDates.map(toJSON);\n }\n\n if (this.exDates) {\n result.exDates = this.exDates.map(toJSON);\n }\n\n result.ruleDateInc = this.ruleDateInc;\n result.exDateInc = this.exDateInc;\n result.last = this.last.toJSON();\n result.dtstart = this.dtstart.toJSON();\n result.complete = this.complete;\n\n return result;\n }\n\n /**\n * Extract all dates from the properties in the given component. The\n * properties will be filtered by the property name.\n *\n * @private\n * @param {Component} component The component to search in\n * @param {String} propertyName The property name to search for\n * @return {Time[]} The extracted dates.\n */\n _extractDates(component, propertyName) {\n let result = [];\n let props = component.getAllProperties(propertyName);\n\n for (let i = 0, len = props.length; i < len; i++) {\n for (let prop of props[i].getValues()) {\n let idx = binsearchInsert(\n result,\n prop,\n (a, b) => a.compare(b)\n );\n\n // ordered insert\n result.splice(idx, 0, prop);\n }\n }\n\n return result;\n }\n\n /**\n * Initialize the recurrence expansion.\n *\n * @private\n * @param {Component} component The component to initialize from.\n */\n _init(component) {\n this.ruleIterators = [];\n\n this.last = this.dtstart.clone();\n\n // to provide api consistency non-recurring\n // events can also use the iterator though it will\n // only return a single time.\n if (!component.hasProperty('rdate') &&\n !component.hasProperty('rrule') &&\n !component.hasProperty('recurrence-id')) {\n this.ruleDate = this.last.clone();\n this.complete = true;\n return;\n }\n\n if (component.hasProperty('rdate')) {\n this.ruleDates = this._extractDates(component, 'rdate');\n\n // special hack for cases where first rdate is prior\n // to the start date. We only check for the first rdate.\n // This is mostly for google's crazy recurring date logic\n // (contacts birthdays).\n if ((this.ruleDates[0]) &&\n (this.ruleDates[0].compare(this.dtstart) < 0)) {\n\n this.ruleDateInc = 0;\n this.last = this.ruleDates[0].clone();\n } else {\n this.ruleDateInc = binsearchInsert(\n this.ruleDates,\n this.last,\n (a, b) => a.compare(b)\n );\n }\n\n this.ruleDate = this.ruleDates[this.ruleDateInc];\n }\n\n if (component.hasProperty('rrule')) {\n let rules = component.getAllProperties('rrule');\n let i = 0;\n let len = rules.length;\n\n let rule;\n let iter;\n\n for (; i < len; i++) {\n rule = rules[i].getFirstValue();\n iter = rule.iterator(this.dtstart);\n this.ruleIterators.push(iter);\n\n // increment to the next occurrence so future\n // calls to next return times beyond the initial iteration.\n // XXX: I find this suspicious might be a bug?\n iter.next();\n }\n }\n\n if (component.hasProperty('exdate')) {\n this.exDates = this._extractDates(component, 'exdate');\n // if we have a .last day we increment the index to beyond it.\n // When DTSTART is in DATE-TIME format, EXDATE is in DATE format and EXDATE is\n // the date of DTSTART, _compare_special finds this out and compareTime fails.\n this.exDateInc = binsearchInsert(\n this.exDates,\n this.last,\n this._compare_special\n );\n\n this.exDate = this.exDates[this.exDateInc];\n }\n }\n\n /**\n * Advance to the next exdate\n * @private\n */\n _nextExDay() {\n this.exDate = this.exDates[++this.exDateInc];\n }\n\n /**\n * Advance to the next rule date\n * @private\n */\n _nextRuleDay() {\n this.ruleDate = this.ruleDates[++this.ruleDateInc];\n }\n\n /**\n * Find and return the recurrence rule with the most recent event and\n * return it.\n *\n * @private\n * @return {?RecurIterator} Found iterator.\n */\n _nextRecurrenceIter() {\n let iters = this.ruleIterators;\n\n if (iters.length === 0) {\n return null;\n }\n\n let len = iters.length;\n let iter;\n let iterTime;\n let iterIdx = 0;\n let chosenIter;\n\n // loop through each iterator\n for (; iterIdx < len; iterIdx++) {\n iter = iters[iterIdx];\n iterTime = iter.last;\n\n // if iteration is complete\n // then we must exclude it from\n // the search and remove it.\n if (iter.completed) {\n len--;\n if (iterIdx !== 0) {\n iterIdx--;\n }\n iters.splice(iterIdx, 1);\n continue;\n }\n\n // find the most recent possible choice\n if (!chosenIter || chosenIter.last.compare(iterTime) > 0) {\n // that iterator is saved\n chosenIter = iter;\n }\n }\n\n // the chosen iterator is returned but not mutated\n // this iterator contains the most recent event.\n return chosenIter;\n }\n}\n\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch */\n\n\n/**\n * This lets typescript resolve our custom types in the\n * generated d.ts files (jsdoc typedefs are converted to typescript types).\n * Ignore prevents the typedefs from being documented more than once.\n * @ignore\n * @typedef {import(\"./types.js\").frequencyValues} frequencyValues\n * Imports the 'frequencyValues' type from the \"types.js\" module\n * @typedef {import(\"./types.js\").occurrenceDetails} occurrenceDetails\n * Imports the 'occurrenceDetails' type from the \"types.js\" module\n */\n\n/**\n * ICAL.js is organized into multiple layers. The bottom layer is a raw jCal\n * object, followed by the component/property layer. The highest level is the\n * event representation, which this class is part of. See the\n * {@tutorial layers} guide for more details.\n *\n * @memberof ICAL\n */\nclass Event {\n /**\n * Creates a new ICAL.Event instance.\n *\n * @param {Component=} component The ICAL.Component to base this event on\n * @param {Object} [options] Options for this event\n * @param {Boolean=} options.strictExceptions When true, will verify exceptions are related by\n * their UUID\n * @param {Array=} options.exceptions\n * Exceptions to this event, either as components or events. If not\n * specified exceptions will automatically be set in relation of\n * component's parent\n */\n constructor(component, options) {\n if (!(component instanceof Component)) {\n options = component;\n component = null;\n }\n\n if (component) {\n this.component = component;\n } else {\n this.component = new Component('vevent');\n }\n\n this._rangeExceptionCache = Object.create(null);\n this.exceptions = Object.create(null);\n this.rangeExceptions = [];\n\n if (options && options.strictExceptions) {\n this.strictExceptions = options.strictExceptions;\n }\n\n if (options && options.exceptions) {\n options.exceptions.forEach(this.relateException, this);\n } else if (this.component.parent && !this.isRecurrenceException()) {\n this.component.parent.getAllSubcomponents('vevent').forEach(function(event) {\n if (event.hasProperty('recurrence-id')) {\n this.relateException(event);\n }\n }, this);\n }\n }\n\n\n static THISANDFUTURE = 'THISANDFUTURE';\n\n /**\n * List of related event exceptions.\n *\n * @type {Event[]}\n */\n exceptions = null;\n\n /**\n * When true, will verify exceptions are related by their UUID.\n *\n * @type {Boolean}\n */\n strictExceptions = false;\n\n /**\n * Relates a given event exception to this object. If the given component\n * does not share the UID of this event it cannot be related and will throw\n * an exception.\n *\n * If this component is an exception it cannot have other exceptions\n * related to it.\n *\n * @param {Component|Event} obj Component or event\n */\n relateException(obj) {\n if (this.isRecurrenceException()) {\n throw new Error('cannot relate exception to exceptions');\n }\n\n if (obj instanceof Component) {\n obj = new Event(obj);\n }\n\n if (this.strictExceptions && obj.uid !== this.uid) {\n throw new Error('attempted to relate unrelated exception');\n }\n\n let id = obj.recurrenceId.toString();\n\n // we don't sort or manage exceptions directly\n // here the recurrence expander handles that.\n this.exceptions[id] = obj;\n\n // index RANGE=THISANDFUTURE exceptions so we can\n // look them up later in getOccurrenceDetails.\n if (obj.modifiesFuture()) {\n let item = [\n obj.recurrenceId.toUnixTime(), id\n ];\n\n // we keep them sorted so we can find the nearest\n // value later on...\n let idx = binsearchInsert(\n this.rangeExceptions,\n item,\n compareRangeException\n );\n\n this.rangeExceptions.splice(idx, 0, item);\n }\n }\n\n /**\n * Checks if this record is an exception and has the RANGE=THISANDFUTURE\n * value.\n *\n * @return {Boolean} True, when exception is within range\n */\n modifiesFuture() {\n if (!this.component.hasProperty('recurrence-id')) {\n return false;\n }\n\n let range = this.component.getFirstProperty('recurrence-id').getParameter('range');\n return range === Event.THISANDFUTURE;\n }\n\n /**\n * Finds the range exception nearest to the given date.\n *\n * @param {Time} time usually an occurrence time of an event\n * @return {?Event} the related event/exception or null\n */\n findRangeException(time) {\n if (!this.rangeExceptions.length) {\n return null;\n }\n\n let utc = time.toUnixTime();\n let idx = binsearchInsert(\n this.rangeExceptions,\n [utc],\n compareRangeException\n );\n\n idx -= 1;\n\n // occurs before\n if (idx < 0) {\n return null;\n }\n\n let rangeItem = this.rangeExceptions[idx];\n\n /* c8 ignore next 4 */\n if (utc < rangeItem[0]) {\n // sanity check only\n return null;\n }\n\n return rangeItem[1];\n }\n\n /**\n * Returns the occurrence details based on its start time. If the\n * occurrence has an exception will return the details for that exception.\n *\n * NOTE: this method is intend to be used in conjunction\n * with the {@link ICAL.Event#iterator iterator} method.\n *\n * @param {Time} occurrence time occurrence\n * @return {occurrenceDetails} Information about the occurrence\n */\n getOccurrenceDetails(occurrence) {\n let id = occurrence.toString();\n let utcId = occurrence.convertToZone(Timezone.utcTimezone).toString();\n let item;\n let result = {\n //XXX: Clone?\n recurrenceId: occurrence\n };\n\n if (id in this.exceptions) {\n item = result.item = this.exceptions[id];\n result.startDate = item.startDate;\n result.endDate = item.endDate;\n result.item = item;\n } else if (utcId in this.exceptions) {\n item = this.exceptions[utcId];\n result.startDate = item.startDate;\n result.endDate = item.endDate;\n result.item = item;\n } else {\n // range exceptions (RANGE=THISANDFUTURE) have a\n // lower priority then direct exceptions but\n // must be accounted for first. Their item is\n // always the first exception with the range prop.\n let rangeExceptionId = this.findRangeException(\n occurrence\n );\n let end;\n\n if (rangeExceptionId) {\n let exception = this.exceptions[rangeExceptionId];\n\n // range exception must modify standard time\n // by the difference (if any) in start/end times.\n result.item = exception;\n\n let startDiff = this._rangeExceptionCache[rangeExceptionId];\n\n if (!startDiff) {\n let original = exception.recurrenceId.clone();\n let newStart = exception.startDate.clone();\n\n // zones must be same otherwise subtract may be incorrect.\n original.zone = newStart.zone;\n startDiff = newStart.subtractDate(original);\n\n this._rangeExceptionCache[rangeExceptionId] = startDiff;\n }\n\n let start = occurrence.clone();\n start.zone = exception.startDate.zone;\n start.addDuration(startDiff);\n\n end = start.clone();\n end.addDuration(exception.duration);\n\n result.startDate = start;\n result.endDate = end;\n } else {\n // no range exception standard expansion\n end = occurrence.clone();\n end.addDuration(this.duration);\n\n result.endDate = end;\n result.startDate = occurrence;\n result.item = this;\n }\n }\n\n return result;\n }\n\n /**\n * Builds a recur expansion instance for a specific point in time (defaults\n * to startDate).\n *\n * @param {Time=} startTime Starting point for expansion\n * @return {RecurExpansion} Expansion object\n */\n iterator(startTime) {\n return new RecurExpansion({\n component: this.component,\n dtstart: startTime || this.startDate\n });\n }\n\n /**\n * Checks if the event is recurring\n *\n * @return {Boolean} True, if event is recurring\n */\n isRecurring() {\n let comp = this.component;\n return comp.hasProperty('rrule') || comp.hasProperty('rdate');\n }\n\n /**\n * Checks if the event describes a recurrence exception. See\n * {@tutorial terminology} for details.\n *\n * @return {Boolean} True, if the event describes a recurrence exception\n */\n isRecurrenceException() {\n return this.component.hasProperty('recurrence-id');\n }\n\n /**\n * Returns the types of recurrences this event may have.\n *\n * Returned as an object with the following possible keys:\n *\n * - YEARLY\n * - MONTHLY\n * - WEEKLY\n * - DAILY\n * - MINUTELY\n * - SECONDLY\n *\n * @return {Object.}\n * Object of recurrence flags\n */\n getRecurrenceTypes() {\n let rules = this.component.getAllProperties('rrule');\n let i = 0;\n let len = rules.length;\n let result = Object.create(null);\n\n for (; i < len; i++) {\n let value = rules[i].getFirstValue();\n result[value.freq] = true;\n }\n\n return result;\n }\n\n /**\n * The uid of this event\n * @type {String}\n */\n get uid() {\n return this._firstProp('uid');\n }\n\n set uid(value) {\n this._setProp('uid', value);\n }\n\n /**\n * The start date\n * @type {Time}\n */\n get startDate() {\n return this._firstProp('dtstart');\n }\n\n set startDate(value) {\n this._setTime('dtstart', value);\n }\n\n /**\n * The end date. This can be the result directly from the property, or the\n * end date calculated from start date and duration. Setting the property\n * will remove any duration properties.\n * @type {Time}\n */\n get endDate() {\n let endDate = this._firstProp('dtend');\n if (!endDate) {\n let duration = this._firstProp('duration');\n endDate = this.startDate.clone();\n if (duration) {\n endDate.addDuration(duration);\n } else if (endDate.isDate) {\n endDate.day += 1;\n }\n }\n return endDate;\n }\n\n set endDate(value) {\n if (this.component.hasProperty('duration')) {\n this.component.removeProperty('duration');\n }\n this._setTime('dtend', value);\n }\n\n /**\n * The duration. This can be the result directly from the property, or the\n * duration calculated from start date and end date. Setting the property\n * will remove any `dtend` properties.\n * @type {Duration}\n */\n get duration() {\n let duration = this._firstProp('duration');\n if (!duration) {\n return this.endDate.subtractDateTz(this.startDate);\n }\n return duration;\n }\n\n set duration(value) {\n if (this.component.hasProperty('dtend')) {\n this.component.removeProperty('dtend');\n }\n\n this._setProp('duration', value);\n }\n\n /**\n * The location of the event.\n * @type {String}\n */\n get location() {\n return this._firstProp('location');\n }\n\n set location(value) {\n this._setProp('location', value);\n }\n\n /**\n * The attendees in the event\n * @type {Property[]}\n */\n get attendees() {\n //XXX: This is way lame we should have a better\n // data structure for this later.\n return this.component.getAllProperties('attendee');\n }\n\n /**\n * The event summary\n * @type {String}\n */\n get summary() {\n return this._firstProp('summary');\n }\n\n set summary(value) {\n this._setProp('summary', value);\n }\n\n /**\n * The event description.\n * @type {String}\n */\n get description() {\n return this._firstProp('description');\n }\n\n set description(value) {\n this._setProp('description', value);\n }\n\n /**\n * The event color from [rfc7986](https://datatracker.ietf.org/doc/html/rfc7986)\n * @type {String}\n */\n get color() {\n return this._firstProp('color');\n }\n\n set color(value) {\n this._setProp('color', value);\n }\n\n /**\n * The organizer value as an uri. In most cases this is a mailto: uri, but\n * it can also be something else, like urn:uuid:...\n * @type {String}\n */\n get organizer() {\n return this._firstProp('organizer');\n }\n\n set organizer(value) {\n this._setProp('organizer', value);\n }\n\n /**\n * The sequence value for this event. Used for scheduling\n * see {@tutorial terminology}.\n * @type {Number}\n */\n get sequence() {\n return this._firstProp('sequence');\n }\n\n set sequence(value) {\n this._setProp('sequence', value);\n }\n\n /**\n * The recurrence id for this event. See {@tutorial terminology} for details.\n * @type {Time}\n */\n get recurrenceId() {\n return this._firstProp('recurrence-id');\n }\n\n set recurrenceId(value) {\n this._setTime('recurrence-id', value);\n }\n\n /**\n * Set/update a time property's value.\n * This will also update the TZID of the property.\n *\n * TODO: this method handles the case where we are switching\n * from a known timezone to an implied timezone (one without TZID).\n * This does _not_ handle the case of moving between a known\n * (by TimezoneService) timezone to an unknown timezone...\n *\n * We will not add/remove/update the VTIMEZONE subcomponents\n * leading to invalid ICAL data...\n * @private\n * @param {String} propName The property name\n * @param {Time} time The time to set\n */\n _setTime(propName, time) {\n let prop = this.component.getFirstProperty(propName);\n\n if (!prop) {\n prop = new Property(propName);\n this.component.addProperty(prop);\n }\n\n // utc and local don't get a tzid\n if (\n time.zone === Timezone.localTimezone ||\n time.zone === Timezone.utcTimezone\n ) {\n // remove the tzid\n prop.removeParameter('tzid');\n } else {\n prop.setParameter('tzid', time.zone.tzid);\n }\n\n prop.setValue(time);\n }\n\n _setProp(name, value) {\n this.component.updatePropertyWithValue(name, value);\n }\n\n _firstProp(name) {\n return this.component.getFirstPropertyValue(name);\n }\n\n /**\n * The string representation of this event.\n * @return {String}\n */\n toString() {\n return this.component.toString();\n }\n}\n\nfunction compareRangeException(a, b) {\n if (a[0] > b[0]) return 1;\n if (b[0] > a[0]) return -1;\n return 0;\n}\n\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch */\n\n\n/**\n * The ComponentParser is used to process a String or jCal Object,\n * firing callbacks for various found components, as well as completion.\n *\n * @example\n * var options = {\n * // when false no events will be emitted for type\n * parseEvent: true,\n * parseTimezone: true\n * };\n *\n * var parser = new ICAL.ComponentParser(options);\n *\n * parser.onevent(eventComponent) {\n * //...\n * }\n *\n * // ontimezone, etc...\n *\n * parser.oncomplete = function() {\n *\n * };\n *\n * parser.process(stringOrComponent);\n *\n * @memberof ICAL\n */\nclass ComponentParser {\n /**\n * Creates a new ICAL.ComponentParser instance.\n *\n * @param {Object=} options Component parser options\n * @param {Boolean} options.parseEvent Whether events should be parsed\n * @param {Boolean} options.parseTimezeone Whether timezones should be parsed\n */\n constructor(options) {\n if (typeof(options) === 'undefined') {\n options = {};\n }\n\n for (let [key, value] of Object.entries(options)) {\n this[key] = value;\n }\n }\n\n /**\n * When true, parse events\n *\n * @type {Boolean}\n */\n parseEvent = true;\n\n /**\n * When true, parse timezones\n *\n * @type {Boolean}\n */\n parseTimezone = true;\n\n\n /* SAX like events here for reference */\n\n /**\n * Fired when parsing is complete\n * @callback\n */\n oncomplete = /* c8 ignore next */ function() {};\n\n /**\n * Fired if an error occurs during parsing.\n *\n * @callback\n * @param {Error} err details of error\n */\n onerror = /* c8 ignore next */ function(err) {};\n\n /**\n * Fired when a top level component (VTIMEZONE) is found\n *\n * @callback\n * @param {Timezone} component Timezone object\n */\n ontimezone = /* c8 ignore next */ function(component) {};\n\n /**\n * Fired when a top level component (VEVENT) is found.\n *\n * @callback\n * @param {Event} component Top level component\n */\n onevent = /* c8 ignore next */ function(component) {};\n\n /**\n * Process a string or parse ical object. This function itself will return\n * nothing but will start the parsing process.\n *\n * Events must be registered prior to calling this method.\n *\n * @param {Component|String|Object} ical The component to process,\n * either in its final form, as a jCal Object, or string representation\n */\n process(ical) {\n //TODO: this is sync now in the future we will have a incremental parser.\n if (typeof(ical) === 'string') {\n ical = parse(ical);\n }\n\n if (!(ical instanceof Component)) {\n ical = new Component(ical);\n }\n\n let components = ical.getAllSubcomponents();\n let i = 0;\n let len = components.length;\n let component;\n\n for (; i < len; i++) {\n component = components[i];\n\n switch (component.name) {\n case 'vtimezone':\n if (this.parseTimezone) {\n let tzid = component.getFirstPropertyValue('tzid');\n if (tzid) {\n this.ontimezone(new Timezone({\n tzid: tzid,\n component: component\n }));\n }\n }\n break;\n case 'vevent':\n if (this.parseEvent) {\n this.onevent(new Event(component));\n }\n break;\n default:\n continue;\n }\n }\n\n //XXX: ideally we should do a \"nextTick\" here\n // so in all cases this is actually async.\n this.oncomplete();\n }\n}\n\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch */\n\n\n/**\n * The main ICAL module. Provides access to everything else.\n *\n * @alias ICAL\n * @namespace ICAL\n * @property {ICAL.design} design\n * @property {ICAL.helpers} helpers\n */\nvar ICALmodule = {\n /**\n * The number of characters before iCalendar line folding should occur\n * @type {Number}\n * @default 75\n */\n foldLength: 75,\n\n debug: false,\n\n /**\n * The character(s) to be used for a newline. The default value is provided by\n * rfc5545.\n * @type {String}\n * @default \"\\r\\n\"\n */\n newLineChar: '\\r\\n',\n\n Binary,\n Component,\n ComponentParser,\n Duration,\n Event,\n Period,\n Property,\n Recur,\n RecurExpansion,\n RecurIterator,\n Time,\n Timezone,\n TimezoneService,\n UtcOffset,\n VCardTime,\n\n parse,\n stringify,\n\n design,\n helpers\n};\n\nexport { ICALmodule as default };\n","import validate from './validate.js';\nconst byteToHex = [];\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nexport function unsafeStringify(arr, offset = 0) {\n return (byteToHex[arr[offset + 0]] +\n byteToHex[arr[offset + 1]] +\n byteToHex[arr[offset + 2]] +\n byteToHex[arr[offset + 3]] +\n '-' +\n byteToHex[arr[offset + 4]] +\n byteToHex[arr[offset + 5]] +\n '-' +\n byteToHex[arr[offset + 6]] +\n byteToHex[arr[offset + 7]] +\n '-' +\n byteToHex[arr[offset + 8]] +\n byteToHex[arr[offset + 9]] +\n '-' +\n byteToHex[arr[offset + 10]] +\n byteToHex[arr[offset + 11]] +\n byteToHex[arr[offset + 12]] +\n byteToHex[arr[offset + 13]] +\n byteToHex[arr[offset + 14]] +\n byteToHex[arr[offset + 15]]).toLowerCase();\n}\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset);\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n return uuid;\n}\nexport default stringify;\n","let getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n if (!getRandomValues) {\n if (typeof crypto === 'undefined' || !crypto.getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n getRandomValues = crypto.getRandomValues.bind(crypto);\n }\n return getRandomValues(rnds8);\n}\n","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default { randomUUID };\n","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\nfunction _v4(options, buf, offset) {\n options = options || {};\n const rnds = options.random ?? options.rng?.() ?? rng();\n if (rnds.length < 16) {\n throw new Error('Random bytes length must be >= 16');\n }\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n if (buf) {\n offset = offset || 0;\n if (offset < 0 || offset + 16 > buf.length) {\n throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);\n }\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n return buf;\n }\n return unsafeStringify(rnds);\n}\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n return _v4(options, buf, offset);\n}\nexport default v4;\n","import './assets/index-CkcnNJJ0.css';\nimport { NcButton, NcDateTimePickerNative } from \"@nextcloud/vue\";\nimport IconDelete from \"vue-material-design-icons/TrashCanOutline.vue\";\nimport IconAdd from \"vue-material-design-icons/Plus.vue\";\nimport { getFirstDay } from \"@nextcloud/l10n\";\nimport { resolveComponent, createElementBlock, openBlock, Fragment, renderList, createElementVNode, createBlock, toDisplayString, createCommentVNode, createVNode, withCtx } from \"vue\";\nimport { getZoneString } from \"icalzone\";\nimport ICAL from \"ical.js\";\nimport { v4 } from \"uuid\";\nimport { getLoggerBuilder } from \"@nextcloud/logger\";\nconst _export_sfc = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\nconst _sfc_main = {\n name: \"CalendarAvailability\",\n components: {\n NcDateTimePickerNative,\n NcButton,\n IconAdd,\n IconDelete\n },\n props: {\n slots: {\n type: Object,\n required: true\n },\n loading: {\n type: Boolean,\n default: false\n },\n l10nTo: {\n type: String,\n required: true\n },\n l10nDeleteSlot: {\n type: String,\n required: true\n },\n l10nEmptyDay: {\n type: String,\n required: true\n },\n l10nAddSlot: {\n type: String,\n required: true\n },\n l10nWeekDayListLabel: {\n type: String,\n default: \"Weekdays\"\n },\n l10nMonday: {\n type: String,\n required: true\n },\n l10nTuesday: {\n type: String,\n required: true\n },\n l10nWednesday: {\n type: String,\n required: true\n },\n l10nThursday: {\n type: String,\n required: true\n },\n l10nFriday: {\n type: String,\n required: true\n },\n l10nSaturday: {\n type: String,\n required: true\n },\n l10nSunday: {\n type: String,\n required: true\n },\n l10nStartPickerLabel: {\n type: Function,\n default: (dayName) => `Pick a start time for ${dayName}`\n },\n l10nEndPickerLabel: {\n type: Function,\n default: (dayName) => `Pick a end time for ${dayName}`\n }\n },\n data() {\n return {\n internalSlots: this.slotsToInternalData(this.slots)\n };\n },\n watch: {\n slots() {\n this.internalSlots = this.slotsToInternalData(this.slots);\n }\n },\n methods: {\n timeStampSlotsToDateObjectSlots(slots) {\n return slots.map((slot) => ({\n start: new Date(slot.start * 1e3),\n end: new Date(slot.end * 1e3)\n }));\n },\n slotsToInternalData() {\n const moToSa = [\n {\n id: \"MO\",\n displayName: this.l10nMonday,\n slots: this.timeStampSlotsToDateObjectSlots(this.slots.MO)\n },\n {\n id: \"TU\",\n displayName: this.l10nTuesday,\n slots: this.timeStampSlotsToDateObjectSlots(this.slots.TU)\n },\n {\n id: \"WE\",\n displayName: this.l10nWednesday,\n slots: this.timeStampSlotsToDateObjectSlots(this.slots.WE)\n },\n {\n id: \"TH\",\n displayName: this.l10nThursday,\n slots: this.timeStampSlotsToDateObjectSlots(this.slots.TH)\n },\n {\n id: \"FR\",\n displayName: this.l10nFriday,\n slots: this.timeStampSlotsToDateObjectSlots(this.slots.FR)\n },\n {\n id: \"SA\",\n displayName: this.l10nSaturday,\n slots: this.timeStampSlotsToDateObjectSlots(this.slots.SA)\n }\n ];\n const sunday = {\n id: \"SU\",\n displayName: this.l10nSunday,\n slots: this.timeStampSlotsToDateObjectSlots(this.slots.SU)\n };\n return getFirstDay() === 1 ? [...moToSa, sunday] : [sunday, ...moToSa];\n },\n internalDataToSlots() {\n const converted = {};\n this.internalSlots.forEach(({ id, slots }) => {\n converted[id] = slots.map((slot) => ({\n start: Math.round(slot.start.getTime() / 1e3),\n end: Math.round(slot.end.getTime() / 1e3)\n }));\n });\n return converted;\n },\n addSlot(day) {\n const start = /* @__PURE__ */ new Date();\n start.setHours(9, 0, 0, 0);\n const end = /* @__PURE__ */ new Date();\n end.setHours(17, 0, 0, 0);\n day.slots.push({\n start,\n end\n });\n this.onChangeSlots();\n },\n removeSlot(day, idx) {\n day.slots.splice(idx, 1);\n this.onChangeSlots();\n },\n onChangeSlots() {\n this.$emit(\"update:slots\", this.internalDataToSlots());\n }\n }\n};\nconst _hoisted_1 = [\"aria-label\"];\nconst _hoisted_2 = { class: \"label-weekday\" };\nconst _hoisted_3 = [\"id\"];\nconst _hoisted_4 = { class: \"availability-slot-group\" };\nconst _hoisted_5 = { class: \"to-text\" };\nconst _hoisted_6 = {\n key: 0,\n class: \"empty-content\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcDateTimePickerNative = resolveComponent(\"NcDateTimePickerNative\");\n const _component_IconDelete = resolveComponent(\"IconDelete\");\n const _component_NcButton = resolveComponent(\"NcButton\");\n const _component_IconAdd = resolveComponent(\"IconAdd\");\n return openBlock(), createElementBlock(\"ul\", {\n class: \"week-day-container\",\n \"aria-label\": $props.l10nWeekDayListLabel\n }, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($data.internalSlots, (day) => {\n return openBlock(), createElementBlock(\"li\", {\n key: `day-label-${day.id}`,\n class: \"day-container\"\n }, [\n createElementVNode(\"div\", _hoisted_2, [\n createElementVNode(\"span\", {\n id: day.displayName + \"-label\"\n }, toDisplayString(day.displayName), 9, _hoisted_3)\n ]),\n (openBlock(), createElementBlock(\"div\", {\n key: `day-slots-${day.id}`,\n class: \"availability-slots\"\n }, [\n createElementVNode(\"div\", _hoisted_4, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(day.slots, (slot, idx) => {\n return openBlock(), createElementBlock(\"div\", {\n key: `slot-${day.id}-${idx}`,\n class: \"availability-slot\"\n }, [\n createVNode(_component_NcDateTimePickerNative, {\n id: `start-${day.id}-${idx}`,\n modelValue: slot.start,\n \"onUpdate:modelValue\": ($event) => slot.start = $event,\n type: \"time\",\n label: $props.l10nStartPickerLabel?.(day.displayName),\n \"hide-label\": true,\n class: \"start-date\",\n onChange: $options.onChangeSlots\n }, null, 8, [\"id\", \"modelValue\", \"onUpdate:modelValue\", \"label\", \"onChange\"]),\n createElementVNode(\"span\", _hoisted_5, toDisplayString($props.l10nTo), 1),\n createVNode(_component_NcDateTimePickerNative, {\n id: `end-${day.id}-${idx}`,\n modelValue: slot.end,\n \"onUpdate:modelValue\": ($event) => slot.end = $event,\n type: \"time\",\n label: $props.l10nEndPickerLabel?.(day.displayName),\n \"hide-label\": true,\n class: \"end-date\",\n onChange: $options.onChangeSlots\n }, null, 8, [\"id\", \"modelValue\", \"onUpdate:modelValue\", \"label\", \"onChange\"]),\n (openBlock(), createBlock(_component_NcButton, {\n key: `slot-${day.id}-${idx}-btn`,\n type: \"tertiary\",\n class: \"button\",\n \"aria-label\": $props.l10nDeleteSlot,\n title: $props.l10nDeleteSlot,\n onClick: ($event) => $options.removeSlot(day, idx)\n }, {\n icon: withCtx(() => [\n createVNode(_component_IconDelete, { size: 20 })\n ]),\n _: 2\n }, 1032, [\"aria-label\", \"title\", \"onClick\"]))\n ]);\n }), 128))\n ]),\n day.slots.length === 0 ? (openBlock(), createElementBlock(\"span\", _hoisted_6, toDisplayString($props.l10nEmptyDay), 1)) : createCommentVNode(\"\", true)\n ])),\n (openBlock(), createBlock(_component_NcButton, {\n key: `add-slot-${day.id}`,\n disabled: $props.loading,\n class: \"add-another button\",\n title: $props.l10nAddSlot,\n \"aria-label\": $props.l10nAddSlot,\n onClick: ($event) => $options.addSlot(day)\n }, {\n icon: withCtx(() => [\n createVNode(_component_IconAdd, { size: 20 })\n ]),\n _: 2\n }, 1032, [\"disabled\", \"title\", \"aria-label\", \"onClick\"]))\n ]);\n }), 128))\n ], 8, _hoisted_1);\n}\nconst CalendarAvailability = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-3ef03e87\"]]);\nconst logger = getLoggerBuilder().detectUser().setApp(\"@nextcloud/calendar-availability-vue\").build();\nfunction getEmptySlots() {\n return {\n MO: [],\n TU: [],\n WE: [],\n TH: [],\n FR: [],\n SA: [],\n SU: []\n };\n}\nfunction vavailabilityToSlots(vavailability) {\n const parsedIcal = ICAL.parse(vavailability);\n const vcalendarComp = new ICAL.Component(parsedIcal);\n const vavailabilityComp = vcalendarComp.getFirstSubcomponent(\"vavailability\");\n let timezoneId;\n const timezoneComp = vcalendarComp.getFirstSubcomponent(\"vtimezone\");\n if (timezoneComp) {\n timezoneId = timezoneComp.getFirstProperty(\"tzid\").getFirstValue();\n }\n const availableComps = vavailabilityComp.getAllSubcomponents(\"available\");\n const slots = getEmptySlots();\n availableComps.forEach((availableComp) => {\n const startIcalDate = availableComp.getFirstProperty(\"dtstart\").getFirstValue();\n const endIcalDate = availableComp.getFirstProperty(\"dtend\").getFirstValue();\n const rrule = availableComp.getFirstProperty(\"rrule\");\n const start = /* @__PURE__ */ new Date();\n start.setHours(startIcalDate.hour, startIcalDate.minute, 0, 0);\n const end = /* @__PURE__ */ new Date();\n end.setHours(endIcalDate.hour, endIcalDate.minute, 0, 0);\n if (rrule.getFirstValue().freq !== \"WEEKLY\") {\n logger.warn(\"rrule not supported\", {\n rrule: rrule.toICALString()\n });\n return;\n }\n rrule.getFirstValue().getComponent(\"BYDAY\").forEach((day) => {\n slots[day].push({\n start: start.getTime() / 1e3,\n end: end.getTime() / 1e3\n });\n });\n });\n return {\n slots,\n timezoneId\n };\n}\nfunction slotsToVavailability(slots, timezoneId) {\n const vcalendarComp = new ICAL.Component(\"vcalendar\");\n vcalendarComp.addPropertyWithValue(\"prodid\", \"Nextcloud DAV app\");\n const predefinedTimezoneIcal = getZoneString(timezoneId);\n if (predefinedTimezoneIcal) {\n const timezoneComp = new ICAL.Component(ICAL.parse(predefinedTimezoneIcal));\n vcalendarComp.addSubcomponent(timezoneComp);\n } else {\n const timezoneComp = new ICAL.Component(\"vtimezone\");\n timezoneComp.addPropertyWithValue(\"tzid\", timezoneId);\n vcalendarComp.addSubcomponent(timezoneComp);\n }\n const vavailabilityComp = new ICAL.Component(\"vavailability\");\n const deduplicated = slots.reduce((acc, slot) => {\n const start = new Date(slot.start * 1e3);\n const end = new Date(slot.end * 1e3);\n const key = [\n start.getHours(),\n start.getMinutes(),\n end.getHours(),\n end.getMinutes()\n ].join(\"-\");\n return {\n ...acc,\n [key]: [...acc[key] ?? [], slot]\n };\n }, {});\n Object.keys(deduplicated).map((key) => {\n const slots2 = deduplicated[key];\n const start = slots2[0].start;\n const end = slots2[0].end;\n const days = slots2.map((slot) => slot.day).filter((day, index, self) => self.indexOf(day) === index);\n const availableComp = new ICAL.Component(\"available\");\n const startTimeProp = availableComp.addPropertyWithValue(\"dtstart\", ICAL.Time.fromJSDate(new Date(start * 1e3), false));\n startTimeProp.setParameter(\"tzid\", timezoneId);\n const endTimeProp = availableComp.addPropertyWithValue(\"dtend\", ICAL.Time.fromJSDate(new Date(end * 1e3), false));\n endTimeProp.setParameter(\"tzid\", timezoneId);\n availableComp.addPropertyWithValue(\"uid\", v4());\n availableComp.addPropertyWithValue(\"rrule\", {\n freq: \"WEEKLY\",\n byday: days\n });\n return availableComp;\n }).map(vavailabilityComp.addSubcomponent.bind(vavailabilityComp));\n vcalendarComp.addSubcomponent(vavailabilityComp);\n return vcalendarComp.toString();\n}\nexport {\n CalendarAvailability,\n getEmptySlots,\n slotsToVavailability,\n vavailabilityToSlots\n};\n//# sourceMappingURL=index.mjs.map\n","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { WebDAVClient } from 'webdav'\n\nimport { getCurrentUser, getRequestToken, onRequestTokenUpdate } from '@nextcloud/auth'\nimport { generateRemoteUrl } from '@nextcloud/router'\nimport { createClient } from 'webdav'\n\nlet client: WebDAVClient | undefined = undefined\n\n/**\n * Get the WebDAV client for the current user on the calendars endpoint.\n */\nexport function getClient(): WebDAVClient {\n\tif (!client) {\n\t\t// init webdav client\n\t\tconst remote = generateRemoteUrl(`dav/calendars/${getCurrentUser()!.uid}`)\n\t\tclient = createClient(remote)\n\n\t\t// set CSRF token header\n\t\tconst setHeaders = (token) => {\n\t\t\tclient!.setHeaders({\n\t\t\t\t// Add this so the server knows it is an request from the browser\n\t\t\t\t'X-Requested-With': 'XMLHttpRequest',\n\t\t\t\t// Inject user auth\n\t\t\t\trequesttoken: token ?? '',\n\t\t\t})\n\t\t}\n\n\t\t// refresh headers when request token changes\n\t\tonRequestTokenUpdate(setHeaders)\n\t\tsetHeaders(getRequestToken())\n\t}\n\n\treturn client\n}\n","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport {\n\tslotsToVavailability,\n\tvavailabilityToSlots,\n} from '@nextcloud/calendar-availability-vue'\nimport { parseXML } from 'webdav'\nimport { getClient } from '../dav/client.ts'\nimport { logger } from './logger.ts'\n\n/**\n * Get an object representing empty time slots for each day of the week.\n */\nexport function getEmptySlots() {\n\treturn {\n\t\tMO: [],\n\t\tTU: [],\n\t\tWE: [],\n\t\tTH: [],\n\t\tFR: [],\n\t\tSA: [],\n\t\tSU: [],\n\t}\n}\n\n/**\n * Find the availability of the schedule inbox.\n */\nexport async function findScheduleInboxAvailability() {\n\tconst response = await getClient().customRequest('inbox', {\n\t\tmethod: 'PROPFIND',\n\t\tdata: `\n\t\t\t\n\t\t\t \n\t\t\t\t\n\t\t\t \n\t\t\t`,\n\t})\n\n\tconst xml = await parseXML(await response.text())\n\n\tif (!xml) {\n\t\treturn undefined\n\t}\n\n\tconst availability = xml?.multistatus?.response[0]?.propstat?.prop['calendar-availability']\n\tif (!availability) {\n\t\treturn undefined\n\t}\n\n\treturn vavailabilityToSlots(availability)\n}\n\n/**\n * Save the availability of the schedule inbox.\n *\n * @param slots - The availability slots to save.\n * @param timezoneId - The timezone identifier.\n */\nexport async function saveScheduleInboxAvailability(slots, timezoneId) {\n\tconst all = [...Object.keys(slots).flatMap((dayId) => slots[dayId].map((slot) => ({\n\t\t...slot,\n\t\tday: dayId,\n\t})))]\n\n\tconst vavailability = slotsToVavailability(all, timezoneId)\n\n\tlogger.debug('New availability ical created', {\n\t\tvavailability,\n\t})\n\n\tawait getClient().customRequest('inbox', {\n\t\tmethod: 'PROPPATCH',\n\t\tdata: `\n\t\t\t\n\t\t\t \n\t\t\t\t\n\t\t\t\t ${vavailability}\n\t\t\t\t\n\t\t\t \n\t\t\t`,\n\t})\n}\n","/*!\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\n\n/**\n * Enable user status automation based on availability\n */\nexport async function enableUserStatusAutomation(): Promise {\n\tawait axios.post(\n\t\tgenerateOcsUrl('/apps/provisioning_api/api/v1/config/users/{appId}/{configKey}', {\n\t\t\tappId: 'dav',\n\t\t\tconfigKey: 'user_status_automation',\n\t\t}),\n\t\t{\n\t\t\tconfigValue: 'yes',\n\t\t},\n\t)\n}\n\n/**\n * Disable user status automation based on availability\n */\nexport async function disableUserStatusAutomation(): Promise {\n\tawait axios.delete(generateOcsUrl('/apps/provisioning_api/api/v1/config/users/{appId}/{configKey}', {\n\t\tappId: 'dav',\n\t\tconfigKey: 'user_status_automation',\n\t}))\n}\n","\n\n\n\n\n\n\n","\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { createApp } from 'vue'\nimport UserAvailability from './views/UserAvailability.vue'\n\nconst app = createApp(UserAvailability)\napp.mount('#settings-personal-availability')\n"],"names":["formatDateAsYMD","date","year","month","day","_sfc_main","NcButton","NcTextField","NcTextArea","NcDateTimePickerNative","NcSelectUsers","t","firstDay","lastDay","status","message","replacementUserId","replacementUserDisplayName","loadState","result","query","search","shareType","ShareType","request","axios","generateOcsUrl","error","logger","data","exact","rawExactSuggestions","rawSuggestions","exactSuggestions","share","suggestions","allSuggestions","nameCounts","item","debounce","args","getCurrentUser","showSuccess","showError","_hoisted_1","_hoisted_2","_hoisted_3","_createElementBlock","$options","_createElementVNode","_createVNode","_component_NcDateTimePickerNative","$data","$event","$setup","_toDisplayString","_component_NcSelectUsers","_component_NcTextField","_component_NcTextArea","_component_NcButton","zones","dist","zones_1","require$$0","renderZoneSub","n","f","r","s","getZoneLines","zoneName","includeWrapper","zoneData","d","getZoneString","Binary","aString","aValue","b64","o1","o2","o3","h1","h2","h3","h4","bits","i","ac","enc","tmp_arr","dec","DURATION_LETTERS","DATA_PROPS_TO_COPY","Duration","aSeconds","string","aStr","pos","dict","chunks","type","numeric","parseDurationChunk","aData","seconds","secs","trunc","prop","aOther","thisSeconds","otherSeconds","str","hasWeeks","letter","number","object","num","isStrictlyNaN","Period","parts","options","Time","end","aProp","aLenient","fromDateOrDateTimeString","dateProp","dt","_daysInMonth","days","aDayOfYear","aYear","doy","tt","is_leap","strictParseInt","zone","zoneId","Timezone","timeData","aProperty","aDate","useUTC","aZone","aWeekStart","dow","wkst","yr","LTRS","dom","#epochTime","a","b","attr","val","hour","minute","second","timezone","key","value","TimezoneService","firstDow","dowCacheKey","q","m","Y","h","aFirstDayOfWeek","delta","aDayOfWeek","aPos","daysInMonth","weekday","start","otherDay","startDow","offset","endDow","wnCacheKey","week1","isoyear","daysBetween","answer","aDuration","mult","unixTime","other","tz","rc","copy","zone_equals","design","pad2","aExtraDays","aExtraHours","aExtraMinutes","aExtraSeconds","aTime","minutesOverflow","hoursOverflow","daysOverflow","yearsOverflow","time","ms","len","CHAR","VALUE_DELIMITER","PARAM_DELIMITER","PARAM_NAME_DELIMITER","DEFAULT_VALUE_TYPE$1","DEFAULT_PARAM_TYPE","RFC6868_REPLACE_MAP$1","parse","input","state","root","err","line","ParserError","designSet","valuePos","paramPos","lastParamIndex","lastValuePos","name","params","parsedParams","parsedParamLength","accumulator","currentValue","newComponent","valueType","multiValue","structuredValue","propertyDetails","splitName","ungroupedName","lastParam","delim","lcname","mvdelim","extendedValue","propValuePos","nextPos","length_before","delimiter","x","buffer","innerMulti","lastPos","unescapedIndexOf","callback","firstChar","newlineOffset","OPTIONS","from_zone","to_zone","utcOffset","#utcTimezone","#localTimezone","change","hours","minutes","Component","jCal","tt_change","change_num","change_num_to_use","step","clone","zone_change","tmp_change","prev_zone_change","want_daylight","idx","binsearchInsert","today","changesEndYear","subcomps","compLen","compIdx","aComponent","changes","dtstart","convert_tzoffset","init_changes","changebase","props","rdate","rrule","iterator","occ","utc","tzid","updateTimezones","vcal","allsubs","properties","vtimezones","reqTzid","comp","formatClassType","list","seekVal","cmpfunc","low","high","mid","cmpval","aSrc","aDeep","arr","obj","foldline","aLine","line_length","cp","ICALmodule","extend","source","target","descr","helpers","UtcOffset","instance","factor","VCardTime","aIcalType","part","v","e","tmz","splitzone","tm","dtlen","tmlen","hasDashDate","hasDashTime","o","icaltype","y","mm","hasYear","hasMonth","hasDay","hasHour","hasMinute","hasSecond","datepart","timepart","RecurIterator","Recur","InvalidRecurrenceRuleError","wkdy","dayName","untilYear","tempLast","initLast","bydow","dayOfMonth","normalized","again","before","valid","invalid_count","inc","this_freq","end_of_data","week_no","rules","newRules","ruleIdx","rule","isInit","byMonthDay","byDay","dateIdx","dateLen","dayLen","dataIsValid","self","initMonth","nextMonth","monthsCounter","next","dayIdx","data_valid","setpos","setpos_total","last_day","coded_day","startOfWeek","matches","aRuleType","aInterval","aDateAttr","aFollowingAttr","aPreviousIncr","has_by_rule","dta","years","aFactor","aNextIncrement","nextunit","validWeeks","monthIdx","first_week","last_week","weekIdx","partCount","t1","t2","monthday","t3","first_dow","doy_offset","last_dow","by_month_day","spIndex","bydayParts","month_day","first_matching_day","last_matching_day","expandedDays","weekno","daysInYear","days_list","tmp","start_dow","end_dow","end_year_day","tmp_start_doy","first","last","this_dow","aRules","j","one","two","indexMapValue","ruleMapValue","pass","ruleType","bydata","weekNo","req","deftime","VALID_DAY_NAMES","VALID_BYDAY_PART","DOW_MAP","REVERSE_DOW_MAP","entry","ALLOWED_FREQ","fmtIcal","values","ucname","partDesign","partArr","partSet","optionDesign","aStart","aType","aValues","aStartTime","aRecurrenceId","iter","uckey","res","k","kparts","parseNumericValue","min","max","FROM_ICAL_NEWLINE","TO_ICAL_NEWLINE","FROM_VCARD_NEWLINE","TO_VCARD_NEWLINE","createTextType","fromNewline","toNewline","structuredEscape","replaceNewline","regEx","DEFAULT_TYPE_TEXT","DEFAULT_TYPE_TEXT_MULTI","DEFAULT_TYPE_TEXT_STRUCTURED","DEFAULT_TYPE_INTEGER","DEFAULT_TYPE_DATETIME_DATE","DEFAULT_TYPE_DATETIME","DEFAULT_TYPE_URI","DEFAULT_TYPE_UTCOFFSET","DEFAULT_TYPE_RECUR","DEFAULT_TYPE_DATE_ANDOR_TIME","replaceNewlineReplace","newline","commonProperties","commonValues","parsed","icalParams","icalValues","aBinary","aRecur","icalProperties","vcardValues","isFromIcal","lastChar","signChar","sign","c","vcardParams","vcardProperties","vcard3Values","vcard3Params","vcard3Properties","icalSet","vcardSet","vcard3Set","componentName","LINE_ENDING","DEFAULT_VALUE_TYPE","RFC6868_REPLACE_MAP","stringify","component","propIdx","propLen","designSetName","comps","property","noFold","jsName","groupName","paramName","paramDesign","propDetails","isDefault","force","NAME_INDEX$1","PROP_INDEX","TYPE_INDEX","VALUE_INDEX","Property","parent","p","designSetChanged","index","parameters","details","NAME_INDEX","PROPERTY_INDEX","COMPONENT_INDEX","PROPERTY_NAME_INDEX","PROPERTY_VALUE_INDEX","parentDesign","versionProp","jCalLen","jCalIndex","cache","nameOrObject","objects","cached","nameOrComp","removed","nameOrProp","hydratedZone","RecurExpansion","compare","maxTries","currentTry","toJSON","propertyName","iters","iterTime","iterIdx","chosenIter","Event","event","id","compareRangeException","rangeItem","occurrence","utcId","rangeExceptionId","exception","startDiff","original","newStart","startTime","endDate","duration","propName","ComponentParser","ical","components","byteToHex","unsafeStringify","getRandomValues","rnds8","rng","randomUUID","native","_v4","buf","rnds","v4","_export_sfc","sfc","IconAdd","IconDelete","slots","slot","moToSa","sunday","getFirstDay","converted","_hoisted_4","_hoisted_5","_hoisted_6","_sfc_render","_ctx","_cache","$props","resolveComponent","_component_IconDelete","_component_IconAdd","openBlock","createElementBlock","Fragment","renderList","createElementVNode","toDisplayString","createVNode","createBlock","withCtx","createCommentVNode","CalendarAvailability","getLoggerBuilder","getEmptySlots","vavailabilityToSlots","vavailability","parsedIcal","ICAL","vcalendarComp","vavailabilityComp","timezoneId","timezoneComp","availableComps","availableComp","startIcalDate","endIcalDate","slotsToVavailability","predefinedTimezoneIcal","deduplicated","acc","slots2","client","getClient","remote","generateRemoteUrl","createClient","setHeaders","token","onRequestTokenUpdate","getRequestToken","findScheduleInboxAvailability","response","xml","parseXML","availability","saveScheduleInboxAvailability","all","dayId","enableUserStatusAutomation","disableUserStatusAutomation","getCapabilities","loading","ref","saving","automated","onMounted","slotData","save","_unref","NcCheckboxRadioSwitch","hideAbsenceSettings","NcSettingsSection","AvailabilityForm","_createBlock","AbsenceForm","app","createApp","UserAvailability"],"mappings":"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EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,uBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,MACrB,CACA,GAEI,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,MACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,MACrB,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iCACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,8BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,4BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,0BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,6BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,4BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iCACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,0BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,6BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,6BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,4BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,4BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,yBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,uBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,wBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,uBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,uBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,uBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,+BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,uBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,0BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,6BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,4BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,wBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,4BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,0BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,8BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,8BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,wBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,8BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,8BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,iCACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,wBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,yBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,uBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,uBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,wBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,uBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,wBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,wBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,4BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,uBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,OACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,OACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,OACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,MACrB,CACA,GAEI,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,QACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,QACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,OACrB,CACA,GAEI,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,yBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,MACrB,CACA,GAEI,CACI,wBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,MACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,OACrB,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,MACrB,CACA,GAEI,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,QACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,MACrB,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,UACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,WACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,UACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,UACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,WACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,OACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,uBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,QACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,QACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,MACrB,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,OACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,uBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,MACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,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","x_google_ignoreList":[2,3,4,5,6,7,8,9]} \ No newline at end of file +{"version":3,"file":"dav-settings-personal-availability.mjs","sources":["../build/frontend/apps/dav/src/utils/date.ts","../build/frontend/apps/dav/src/components/AbsenceForm.vue","../node_modules/icalzone/dist/zones.js","../node_modules/icalzone/dist/index.js","../node_modules/ical.js/dist/ical.js","../node_modules/@nextcloud/calendar-availability-vue/node_modules/uuid/dist-browser/stringify.js","../node_modules/@nextcloud/calendar-availability-vue/node_modules/uuid/dist-browser/rng.js","../node_modules/@nextcloud/calendar-availability-vue/node_modules/uuid/dist-browser/native.js","../node_modules/@nextcloud/calendar-availability-vue/node_modules/uuid/dist-browser/v4.js","../node_modules/@nextcloud/calendar-availability-vue/dist/index.mjs","../build/frontend/apps/dav/src/dav/client.ts","../build/frontend/apps/dav/src/service/CalendarService.ts","../build/frontend/apps/dav/src/service/PreferenceService.ts","../build/frontend/apps/dav/src/components/AvailabilityForm.vue","../build/frontend/apps/dav/src/views/UserAvailability.vue","../build/frontend/apps/dav/src/settings-personal-availability.ts"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * Format a date as 'YYYY-MM-DD'.\n *\n * @param date - A date instance to format.\n */\nexport function formatDateAsYMD(date: Date): `${number}-${number}-${number}` {\n\tconst year = date.getFullYear()\n\tconst month = (date.getMonth() + 1).toString().padStart(2, '0') as `${number}`\n\tconst day = date.getDate().toString().padStart(2, '0') as `${number}`\n\treturn `${year}-${month}-${day}`\n}\n","\n\n\n\n\n\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.zonesMap = exports.defaultStart = void 0;\nexports.defaultStart = \"19700101T000000\";\nexports.zonesMap = new Map([\n [\n \"Africa/Abidjan\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Africa/Accra\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Africa/Addis_Ababa\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"EAT\"\n }\n }\n ],\n [\n \"Africa/Algiers\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"CET\"\n }\n }\n ],\n [\n \"Africa/Asmara\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"EAT\"\n }\n }\n ],\n [\n \"Africa/Bamako\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Africa/Bangui\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"WAT\"\n }\n }\n ],\n [\n \"Africa/Banjul\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Africa/Bissau\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Africa/Blantyre\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"CAT\"\n }\n }\n ],\n [\n \"Africa/Brazzaville\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"WAT\"\n }\n }\n ],\n [\n \"Africa/Bujumbura\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"CAT\"\n }\n }\n ],\n [\n \"Africa/Cairo\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"EET\"\n }\n }\n ],\n [\n \"Africa/Casablanca\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"+01\"\n }\n }\n ],\n [\n \"Africa/Ceuta\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Africa/Conakry\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Africa/Dakar\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Africa/Dar_es_Salaam\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"EAT\"\n }\n }\n ],\n [\n \"Africa/Djibouti\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"EAT\"\n }\n }\n ],\n [\n \"Africa/Douala\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"WAT\"\n }\n }\n ],\n [\n \"Africa/El_Aaiun\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"+01\"\n }\n }\n ],\n [\n \"Africa/Freetown\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Africa/Gaborone\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"CAT\"\n }\n }\n ],\n [\n \"Africa/Harare\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"CAT\"\n }\n }\n ],\n [\n \"Africa/Johannesburg\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"SAST\"\n }\n }\n ],\n [\n \"Africa/Juba\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"EAT\"\n }\n }\n ],\n [\n \"Africa/Kampala\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"EAT\"\n }\n }\n ],\n [\n \"Africa/Khartoum\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"CAT\"\n }\n }\n ],\n [\n \"Africa/Kigali\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"CAT\"\n }\n }\n ],\n [\n \"Africa/Kinshasa\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"WAT\"\n }\n }\n ],\n [\n \"Africa/Lagos\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"WAT\"\n }\n }\n ],\n [\n \"Africa/Libreville\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"WAT\"\n }\n }\n ],\n [\n \"Africa/Lome\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Africa/Luanda\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"WAT\"\n }\n }\n ],\n [\n \"Africa/Lubumbashi\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"CAT\"\n }\n }\n ],\n [\n \"Africa/Lusaka\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"CAT\"\n }\n }\n ],\n [\n \"Africa/Malabo\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"WAT\"\n }\n }\n ],\n [\n \"Africa/Maputo\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"CAT\"\n }\n }\n ],\n [\n \"Africa/Maseru\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"SAST\"\n }\n }\n ],\n [\n \"Africa/Mbabane\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"SAST\"\n }\n }\n ],\n [\n \"Africa/Mogadishu\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"EAT\"\n }\n }\n ],\n [\n \"Africa/Monrovia\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Africa/Nairobi\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"EAT\"\n }\n }\n ],\n [\n \"Africa/Ndjamena\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"WAT\"\n }\n }\n ],\n [\n \"Africa/Niamey\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"WAT\"\n }\n }\n ],\n [\n \"Africa/Nouakchott\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Africa/Ouagadougou\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Africa/Porto-Novo\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"WAT\"\n }\n }\n ],\n [\n \"Africa/Sao_Tome\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"WAT\"\n }\n }\n ],\n [\n \"Africa/Tripoli\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"EET\"\n }\n }\n ],\n [\n \"Africa/Tunis\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"CET\"\n }\n }\n ],\n [\n \"Africa/Windhoek\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"CAT\"\n }\n }\n ],\n [\n \"America/Adak\",\n {\n \"s\": {\n \"f\": \"-0900\",\n \"t\": \"-1000\",\n \"n\": \"HST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-1000\",\n \"t\": \"-0900\",\n \"n\": \"HDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Anchorage\",\n {\n \"s\": {\n \"f\": \"-0800\",\n \"t\": \"-0900\",\n \"n\": \"AKST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0900\",\n \"t\": \"-0800\",\n \"n\": \"AKDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Anguilla\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Antigua\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Araguaina\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Argentina/Buenos_Aires\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Argentina/Catamarca\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Argentina/Cordoba\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Argentina/Jujuy\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Argentina/La_Rioja\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Argentina/Mendoza\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Argentina/Rio_Gallegos\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Argentina/Salta\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Argentina/San_Juan\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Argentina/San_Luis\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Argentina/Tucuman\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Argentina/Ushuaia\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Aruba\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Asuncion\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"t\": \"-0400\",\n \"n\": \"-04\",\n \"s\": \"19700322T000000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"4SU\"\n }\n },\n \"d\": {\n \"f\": \"-0400\",\n \"t\": \"-0300\",\n \"n\": \"-03\",\n \"s\": \"19701004T000000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"America/Atikokan\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"n\": \"EST\"\n }\n }\n ],\n [\n \"America/Bahia_Banderas\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700405T020000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"America/Bahia\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Barbados\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Belem\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Belize\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"n\": \"CST\"\n }\n }\n ],\n [\n \"America/Blanc-Sablon\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Boa_Vista\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"-04\"\n }\n }\n ],\n [\n \"America/Bogota\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"n\": \"-05\"\n }\n }\n ],\n [\n \"America/Boise\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"t\": \"-0700\",\n \"n\": \"MST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0700\",\n \"t\": \"-0600\",\n \"n\": \"MDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Cambridge_Bay\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"t\": \"-0700\",\n \"n\": \"MST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0700\",\n \"t\": \"-0600\",\n \"n\": \"MDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Campo_Grande\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"-04\",\n \"s\": \"19700215T000000\",\n \"r\": {\n \"m\": 2,\n \"d\": \"3SU\"\n }\n },\n \"d\": {\n \"f\": \"-0400\",\n \"t\": \"-0300\",\n \"n\": \"-03\",\n \"s\": \"19701101T000000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"America/Cancun\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"n\": \"EST\"\n }\n }\n ],\n [\n \"America/Caracas\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"-04\"\n }\n }\n ],\n [\n \"America/Cayenne\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Cayman\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"n\": \"EST\"\n }\n }\n ],\n [\n \"America/Chicago\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Chihuahua\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"t\": \"-0700\",\n \"n\": \"MST\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0700\",\n \"t\": \"-0600\",\n \"n\": \"MDT\",\n \"s\": \"19700405T020000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"America/Costa_Rica\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"n\": \"CST\"\n }\n }\n ],\n [\n \"America/Creston\",\n {\n \"s\": {\n \"f\": \"-0700\",\n \"n\": \"MST\"\n }\n }\n ],\n [\n \"America/Cuiaba\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"-04\",\n \"s\": \"19700215T000000\",\n \"r\": {\n \"m\": 2,\n \"d\": \"3SU\"\n }\n },\n \"d\": {\n \"f\": \"-0400\",\n \"t\": \"-0300\",\n \"n\": \"-03\",\n \"s\": \"19701101T000000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"America/Curacao\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Danmarkshavn\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"America/Dawson_Creek\",\n {\n \"s\": {\n \"f\": \"-0700\",\n \"n\": \"MST\"\n }\n }\n ],\n [\n \"America/Dawson\",\n {\n \"s\": {\n \"f\": \"-0700\",\n \"t\": \"-0800\",\n \"n\": \"PST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0800\",\n \"t\": \"-0700\",\n \"n\": \"PDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Denver\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"t\": \"-0700\",\n \"n\": \"MST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0700\",\n \"t\": \"-0600\",\n \"n\": \"MDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Detroit\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Dominica\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Edmonton\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"t\": \"-0700\",\n \"n\": \"MST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0700\",\n \"t\": \"-0600\",\n \"n\": \"MDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Eirunepe\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"n\": \"-05\"\n }\n }\n ],\n [\n \"America/El_Salvador\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"n\": \"CST\"\n }\n }\n ],\n [\n \"America/Fort_Nelson\",\n {\n \"s\": {\n \"f\": \"-0700\",\n \"n\": \"MST\"\n }\n }\n ],\n [\n \"America/Fortaleza\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Glace_Bay\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"t\": \"-0400\",\n \"n\": \"AST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0400\",\n \"t\": \"-0300\",\n \"n\": \"ADT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Godthab\",\n {\n \"s\": {\n \"f\": \"-0200\",\n \"t\": \"-0300\",\n \"n\": \"-03\",\n \"s\": \"19701024T230000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SA\"\n }\n },\n \"d\": {\n \"f\": \"-0300\",\n \"t\": \"-0200\",\n \"n\": \"-02\",\n \"s\": \"19700328T220000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SA\"\n }\n }\n }\n ],\n [\n \"America/Goose_Bay\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"t\": \"-0400\",\n \"n\": \"AST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0400\",\n \"t\": \"-0300\",\n \"n\": \"ADT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Grand_Turk\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Grenada\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Guadeloupe\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Guatemala\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"n\": \"CST\"\n }\n }\n ],\n [\n \"America/Guayaquil\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"n\": \"-05\"\n }\n }\n ],\n [\n \"America/Guyana\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"-04\"\n }\n }\n ],\n [\n \"America/Halifax\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"t\": \"-0400\",\n \"n\": \"AST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0400\",\n \"t\": \"-0300\",\n \"n\": \"ADT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Havana\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"CST\",\n \"s\": \"19701101T010000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"CDT\",\n \"s\": \"19700308T000000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Hermosillo\",\n {\n \"s\": {\n \"f\": \"-0700\",\n \"n\": \"MST\"\n }\n }\n ],\n [\n \"America/Indiana/Indianapolis\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Indiana/Knox\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Indiana/Marengo\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Indiana/Petersburg\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Indiana/Tell_City\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Indiana/Vevay\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Indiana/Vincennes\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Indiana/Winamac\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Inuvik\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"t\": \"-0700\",\n \"n\": \"MST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0700\",\n \"t\": \"-0600\",\n \"n\": \"MDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Iqaluit\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Jamaica\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"n\": \"EST\"\n }\n }\n ],\n [\n \"America/Juneau\",\n {\n \"s\": {\n \"f\": \"-0800\",\n \"t\": \"-0900\",\n \"n\": \"AKST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0900\",\n \"t\": \"-0800\",\n \"n\": \"AKDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Kentucky/Louisville\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Kentucky/Monticello\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Kralendijk\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/La_Paz\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"-04\"\n }\n }\n ],\n [\n \"America/Lima\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"n\": \"-05\"\n }\n }\n ],\n [\n \"America/Los_Angeles\",\n {\n \"s\": {\n \"f\": \"-0700\",\n \"t\": \"-0800\",\n \"n\": \"PST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0800\",\n \"t\": \"-0700\",\n \"n\": \"PDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Lower_Princes\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Maceio\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Managua\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"n\": \"CST\"\n }\n }\n ],\n [\n \"America/Manaus\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"-04\"\n }\n }\n ],\n [\n \"America/Marigot\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Martinique\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Matamoros\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Mazatlan\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"t\": \"-0700\",\n \"n\": \"MST\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0700\",\n \"t\": \"-0600\",\n \"n\": \"MDT\",\n \"s\": \"19700405T020000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"America/Menominee\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Merida\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700405T020000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"America/Metlakatla\",\n {\n \"s\": {\n \"f\": \"-0800\",\n \"t\": \"-0900\",\n \"n\": \"AKST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0900\",\n \"t\": \"-0800\",\n \"n\": \"AKDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Mexico_City\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700405T020000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"America/Miquelon\",\n {\n \"s\": {\n \"f\": \"-0200\",\n \"t\": \"-0300\",\n \"n\": \"-03\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0300\",\n \"t\": \"-0200\",\n \"n\": \"-02\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Moncton\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"t\": \"-0400\",\n \"n\": \"AST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0400\",\n \"t\": \"-0300\",\n \"n\": \"ADT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Monterrey\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700405T020000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"America/Montevideo\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Montserrat\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Nassau\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/New_York\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Nipigon\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Nome\",\n {\n \"s\": {\n \"f\": \"-0800\",\n \"t\": \"-0900\",\n \"n\": \"AKST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0900\",\n \"t\": \"-0800\",\n \"n\": \"AKDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Noronha\",\n {\n \"s\": {\n \"f\": \"-0200\",\n \"n\": \"-02\"\n }\n }\n ],\n [\n \"America/North_Dakota/Beulah\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/North_Dakota/Center\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/North_Dakota/New_Salem\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Ojinaga\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"t\": \"-0700\",\n \"n\": \"MST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0700\",\n \"t\": \"-0600\",\n \"n\": \"MDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Panama\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"n\": \"EST\"\n }\n }\n ],\n [\n \"America/Pangnirtung\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Paramaribo\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Phoenix\",\n {\n \"s\": {\n \"f\": \"-0700\",\n \"n\": \"MST\"\n }\n }\n ],\n [\n \"America/Port_of_Spain\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Port-au-Prince\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Porto_Velho\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"-04\"\n }\n }\n ],\n [\n \"America/Puerto_Rico\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Punta_Arenas\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Rainy_River\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Rankin_Inlet\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Recife\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Regina\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"n\": \"CST\"\n }\n }\n ],\n [\n \"America/Resolute\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Rio_Branco\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"n\": \"-05\"\n }\n }\n ],\n [\n \"America/Santarem\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Santiago\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"t\": \"-0400\",\n \"n\": \"-04\",\n \"s\": \"19700405T000000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0400\",\n \"t\": \"-0300\",\n \"n\": \"-03\",\n \"s\": \"19700906T000000\",\n \"r\": {\n \"m\": 9,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"America/Santo_Domingo\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Sao_Paulo\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\",\n \"s\": \"19700215T000000\",\n \"r\": {\n \"m\": 2,\n \"d\": \"3SU\"\n }\n },\n \"d\": {\n \"f\": \"-0300\",\n \"t\": \"-0200\",\n \"n\": \"-02\",\n \"s\": \"19701101T000000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"America/Scoresbysund\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"t\": \"-0100\",\n \"n\": \"-01\",\n \"s\": \"19701025T010000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0100\",\n \"t\": \"+0000\",\n \"n\": \"+00\",\n \"s\": \"19700329T000000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"America/Sitka\",\n {\n \"s\": {\n \"f\": \"-0800\",\n \"t\": \"-0900\",\n \"n\": \"AKST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0900\",\n \"t\": \"-0800\",\n \"n\": \"AKDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/St_Barthelemy\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/St_Johns\",\n {\n \"s\": {\n \"f\": \"-0230\",\n \"t\": \"-0330\",\n \"n\": \"NST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0330\",\n \"t\": \"-0230\",\n \"n\": \"NDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/St_Kitts\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/St_Lucia\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/St_Thomas\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/St_Vincent\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Swift_Current\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"n\": \"CST\"\n }\n }\n ],\n [\n \"America/Tegucigalpa\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"n\": \"CST\"\n }\n }\n ],\n [\n \"America/Thule\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"t\": \"-0400\",\n \"n\": \"AST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0400\",\n \"t\": \"-0300\",\n \"n\": \"ADT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Thunder_Bay\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Tijuana\",\n {\n \"s\": {\n \"f\": \"-0700\",\n \"t\": \"-0800\",\n \"n\": \"PST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0800\",\n \"t\": \"-0700\",\n \"n\": \"PDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Toronto\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Tortola\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Vancouver\",\n {\n \"s\": {\n \"f\": \"-0700\",\n \"t\": \"-0800\",\n \"n\": \"PST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0800\",\n \"t\": \"-0700\",\n \"n\": \"PDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Whitehorse\",\n {\n \"s\": {\n \"f\": \"-0700\",\n \"t\": \"-0800\",\n \"n\": \"PST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0800\",\n \"t\": \"-0700\",\n \"n\": \"PDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Winnipeg\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Yakutat\",\n {\n \"s\": {\n \"f\": \"-0800\",\n \"t\": \"-0900\",\n \"n\": \"AKST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0900\",\n \"t\": \"-0800\",\n \"n\": \"AKDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Yellowknife\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"t\": \"-0700\",\n \"n\": \"MST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0700\",\n \"t\": \"-0600\",\n \"n\": \"MDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"Antarctica/Casey\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"+08\"\n }\n }\n ],\n [\n \"Antarctica/Davis\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"+07\"\n }\n }\n ],\n [\n \"Antarctica/DumontDUrville\",\n {\n \"s\": {\n \"f\": \"+1000\",\n \"n\": \"+10\"\n }\n }\n ],\n [\n \"Antarctica/Macquarie\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"n\": \"+11\"\n }\n }\n ],\n [\n \"Antarctica/Mawson\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"+05\"\n }\n }\n ],\n [\n \"Antarctica/McMurdo\",\n {\n \"s\": {\n \"f\": \"+1300\",\n \"t\": \"+1200\",\n \"n\": \"NZST\",\n \"s\": \"19700405T030000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"+1200\",\n \"t\": \"+1300\",\n \"n\": \"NZDT\",\n \"s\": \"19700927T020000\",\n \"r\": {\n \"m\": 9,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Antarctica/Palmer\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"Antarctica/Rothera\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"Antarctica/Syowa\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"+03\"\n }\n }\n ],\n [\n \"Antarctica/Troll\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0000\",\n \"n\": \"+00\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0000\",\n \"t\": \"+0200\",\n \"n\": \"+02\",\n \"s\": \"19700329T010000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Antarctica/Vostok\",\n {\n \"s\": {\n \"f\": \"+0600\",\n \"n\": \"+06\"\n }\n }\n ],\n [\n \"Arctic/Longyearbyen\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Asia/Aden\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"+03\"\n }\n }\n ],\n [\n \"Asia/Almaty\",\n {\n \"s\": {\n \"f\": \"+0600\",\n \"n\": \"+06\"\n }\n }\n ],\n [\n \"Asia/Amman\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701030T010000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1FR\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700326T235959\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1TH\"\n }\n }\n }\n ],\n [\n \"Asia/Anadyr\",\n {\n \"s\": {\n \"f\": \"+1200\",\n \"n\": \"+12\"\n }\n }\n ],\n [\n \"Asia/Aqtau\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"+05\"\n }\n }\n ],\n [\n \"Asia/Aqtobe\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"+05\"\n }\n }\n ],\n [\n \"Asia/Ashgabat\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"+05\"\n }\n }\n ],\n [\n \"Asia/Atyrau\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"+05\"\n }\n }\n ],\n [\n \"Asia/Baghdad\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"+03\"\n }\n }\n ],\n [\n \"Asia/Bahrain\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"+03\"\n }\n }\n ],\n [\n \"Asia/Baku\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Asia/Bangkok\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"+07\"\n }\n }\n ],\n [\n \"Asia/Barnaul\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"+07\"\n }\n }\n ],\n [\n \"Asia/Beirut\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T000000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T000000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Asia/Bishkek\",\n {\n \"s\": {\n \"f\": \"+0600\",\n \"n\": \"+06\"\n }\n }\n ],\n [\n \"Asia/Brunei\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"+08\"\n }\n }\n ],\n [\n \"Asia/Chita\",\n {\n \"s\": {\n \"f\": \"+0900\",\n \"n\": \"+09\"\n }\n }\n ],\n [\n \"Asia/Choibalsan\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"+08\"\n }\n }\n ],\n [\n \"Asia/Colombo\",\n {\n \"s\": {\n \"f\": \"+0530\",\n \"n\": \"+0530\"\n }\n }\n ],\n [\n \"Asia/Damascus\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701030T000000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1FR\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700327T000000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1FR\"\n }\n }\n }\n ],\n [\n \"Asia/Dhaka\",\n {\n \"s\": {\n \"f\": \"+0600\",\n \"n\": \"+06\"\n }\n }\n ],\n [\n \"Asia/Dili\",\n {\n \"s\": {\n \"f\": \"+0900\",\n \"n\": \"+09\"\n }\n }\n ],\n [\n \"Asia/Dubai\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Asia/Dushanbe\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"+05\"\n }\n }\n ],\n [\n \"Asia/Famagusta\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Asia/Gaza\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701031T010000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SA\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700328T010000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"4SA\"\n }\n }\n }\n ],\n [\n \"Asia/Hebron\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701031T010000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SA\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700328T010000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"4SA\"\n }\n }\n }\n ],\n [\n \"Asia/Ho_Chi_Minh\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"+07\"\n }\n }\n ],\n [\n \"Asia/Hong_Kong\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"HKT\"\n }\n }\n ],\n [\n \"Asia/Hovd\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"+07\"\n }\n }\n ],\n [\n \"Asia/Irkutsk\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"+08\"\n }\n }\n ],\n [\n \"Asia/Istanbul\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"+03\"\n }\n }\n ],\n [\n \"Asia/Jakarta\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"WIB\"\n }\n }\n ],\n [\n \"Asia/Jayapura\",\n {\n \"s\": {\n \"f\": \"+0900\",\n \"n\": \"WIT\"\n }\n }\n ],\n [\n \"Asia/Jerusalem\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"IST\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"IDT\",\n \"s\": \"19700327T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1FR\"\n }\n }\n }\n ],\n [\n \"Asia/Kabul\",\n {\n \"s\": {\n \"f\": \"+0430\",\n \"n\": \"+0430\"\n }\n }\n ],\n [\n \"Asia/Kamchatka\",\n {\n \"s\": {\n \"f\": \"+1200\",\n \"n\": \"+12\"\n }\n }\n ],\n [\n \"Asia/Karachi\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"PKT\"\n }\n }\n ],\n [\n \"Asia/Kathmandu\",\n {\n \"s\": {\n \"f\": \"+0545\",\n \"n\": \"+0545\"\n }\n }\n ],\n [\n \"Asia/Khandyga\",\n {\n \"s\": {\n \"f\": \"+0900\",\n \"n\": \"+09\"\n }\n }\n ],\n [\n \"Asia/Kolkata\",\n {\n \"s\": {\n \"f\": \"+0530\",\n \"n\": \"IST\"\n }\n }\n ],\n [\n \"Asia/Krasnoyarsk\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"+07\"\n }\n }\n ],\n [\n \"Asia/Kuala_Lumpur\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"+08\"\n }\n }\n ],\n [\n \"Asia/Kuching\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"+08\"\n }\n }\n ],\n [\n \"Asia/Kuwait\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"+03\"\n }\n }\n ],\n [\n \"Asia/Macau\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"CST\"\n }\n }\n ],\n [\n \"Asia/Magadan\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"n\": \"+11\"\n }\n }\n ],\n [\n \"Asia/Makassar\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"WITA\"\n }\n }\n ],\n [\n \"Asia/Manila\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"PST\"\n }\n }\n ],\n [\n \"Asia/Muscat\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Asia/Nicosia\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Asia/Novokuznetsk\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"+07\"\n }\n }\n ],\n [\n \"Asia/Novosibirsk\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"+07\"\n }\n }\n ],\n [\n \"Asia/Omsk\",\n {\n \"s\": {\n \"f\": \"+0600\",\n \"n\": \"+06\"\n }\n }\n ],\n [\n \"Asia/Oral\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"+05\"\n }\n }\n ],\n [\n \"Asia/Phnom_Penh\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"+07\"\n }\n }\n ],\n [\n \"Asia/Pontianak\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"WIB\"\n }\n }\n ],\n [\n \"Asia/Pyongyang\",\n {\n \"s\": {\n \"f\": \"+0900\",\n \"n\": \"KST\"\n }\n }\n ],\n [\n \"Asia/Qatar\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"+03\"\n }\n }\n ],\n [\n \"Asia/Qyzylorda\",\n {\n \"s\": {\n \"f\": \"+0600\",\n \"n\": \"+06\"\n }\n }\n ],\n [\n \"Asia/Riyadh\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"+03\"\n }\n }\n ],\n [\n \"Asia/Sakhalin\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"n\": \"+11\"\n }\n }\n ],\n [\n \"Asia/Samarkand\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"+05\"\n }\n }\n ],\n [\n \"Asia/Seoul\",\n {\n \"s\": {\n \"f\": \"+0900\",\n \"n\": \"KST\"\n }\n }\n ],\n [\n \"Asia/Shanghai\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"CST\"\n }\n }\n ],\n [\n \"Asia/Singapore\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"+08\"\n }\n }\n ],\n [\n \"Asia/Srednekolymsk\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"n\": \"+11\"\n }\n }\n ],\n [\n \"Asia/Taipei\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"CST\"\n }\n }\n ],\n [\n \"Asia/Tashkent\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"+05\"\n }\n }\n ],\n [\n \"Asia/Tbilisi\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Asia/Tehran\",\n {\n \"s\": {\n \"f\": \"+0430\",\n \"t\": \"+0330\",\n \"n\": \"+0330\",\n \"s\": \"19700921T000000\",\n \"r\": {\n \"m\": 9,\n \"d\": \"3SU\"\n }\n },\n \"d\": {\n \"f\": \"+0330\",\n \"t\": \"+0430\",\n \"n\": \"+0430\",\n \"s\": \"19700321T000000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"3SU\"\n }\n }\n }\n ],\n [\n \"Asia/Thimphu\",\n {\n \"s\": {\n \"f\": \"+0600\",\n \"n\": \"+06\"\n }\n }\n ],\n [\n \"Asia/Tokyo\",\n {\n \"s\": {\n \"f\": \"+0900\",\n \"n\": \"JST\"\n }\n }\n ],\n [\n \"Asia/Tomsk\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"+07\"\n }\n }\n ],\n [\n \"Asia/Ulaanbaatar\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"+08\"\n }\n }\n ],\n [\n \"Asia/Urumqi\",\n {\n \"s\": {\n \"f\": \"+0600\",\n \"n\": \"+06\"\n }\n }\n ],\n [\n \"Asia/Ust-Nera\",\n {\n \"s\": {\n \"f\": \"+1000\",\n \"n\": \"+10\"\n }\n }\n ],\n [\n \"Asia/Vientiane\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"+07\"\n }\n }\n ],\n [\n \"Asia/Vladivostok\",\n {\n \"s\": {\n \"f\": \"+1000\",\n \"n\": \"+10\"\n }\n }\n ],\n [\n \"Asia/Yakutsk\",\n {\n \"s\": {\n \"f\": \"+0900\",\n \"n\": \"+09\"\n }\n }\n ],\n [\n \"Asia/Yangon\",\n {\n \"s\": {\n \"f\": \"+0630\",\n \"n\": \"+0630\"\n }\n }\n ],\n [\n \"Asia/Yekaterinburg\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"+05\"\n }\n }\n ],\n [\n \"Asia/Yerevan\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Atlantic/Azores\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"t\": \"-0100\",\n \"n\": \"-01\",\n \"s\": \"19701025T010000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0100\",\n \"t\": \"+0000\",\n \"n\": \"+00\",\n \"s\": \"19700329T000000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Atlantic/Bermuda\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"t\": \"-0400\",\n \"n\": \"AST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0400\",\n \"t\": \"-0300\",\n \"n\": \"ADT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"Atlantic/Canary\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"t\": \"+0000\",\n \"n\": \"WET\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0000\",\n \"t\": \"+0100\",\n \"n\": \"WEST\",\n \"s\": \"19700329T010000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Atlantic/Cape_Verde\",\n {\n \"s\": {\n \"f\": \"-0100\",\n \"n\": \"-01\"\n }\n }\n ],\n [\n \"Atlantic/Faroe\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"t\": \"+0000\",\n \"n\": \"WET\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0000\",\n \"t\": \"+0100\",\n \"n\": \"WEST\",\n \"s\": \"19700329T010000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Atlantic/Madeira\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"t\": \"+0000\",\n \"n\": \"WET\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0000\",\n \"t\": \"+0100\",\n \"n\": \"WEST\",\n \"s\": \"19700329T010000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Atlantic/Reykjavik\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Atlantic/South_Georgia\",\n {\n \"s\": {\n \"f\": \"-0200\",\n \"n\": \"-02\"\n }\n }\n ],\n [\n \"Atlantic/St_Helena\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Atlantic/Stanley\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"Australia/Adelaide\",\n {\n \"s\": {\n \"f\": \"+1030\",\n \"t\": \"+0930\",\n \"n\": \"ACST\",\n \"s\": \"19700405T030000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0930\",\n \"t\": \"+1030\",\n \"n\": \"ACDT\",\n \"s\": \"19701004T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"Australia/Brisbane\",\n {\n \"s\": {\n \"f\": \"+1000\",\n \"n\": \"AEST\"\n }\n }\n ],\n [\n \"Australia/Broken_Hill\",\n {\n \"s\": {\n \"f\": \"+1030\",\n \"t\": \"+0930\",\n \"n\": \"ACST\",\n \"s\": \"19700405T030000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0930\",\n \"t\": \"+1030\",\n \"n\": \"ACDT\",\n \"s\": \"19701004T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"Australia/Currie\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"t\": \"+1000\",\n \"n\": \"AEST\",\n \"s\": \"19700405T030000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"+1000\",\n \"t\": \"+1100\",\n \"n\": \"AEDT\",\n \"s\": \"19701004T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"Australia/Darwin\",\n {\n \"s\": {\n \"f\": \"+0930\",\n \"n\": \"ACST\"\n }\n }\n ],\n [\n \"Australia/Eucla\",\n {\n \"s\": {\n \"f\": \"+0845\",\n \"n\": \"+0845\"\n }\n }\n ],\n [\n \"Australia/Hobart\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"t\": \"+1000\",\n \"n\": \"AEST\",\n \"s\": \"19700405T030000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"+1000\",\n \"t\": \"+1100\",\n \"n\": \"AEDT\",\n \"s\": \"19701004T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"Australia/Lindeman\",\n {\n \"s\": {\n \"f\": \"+1000\",\n \"n\": \"AEST\"\n }\n }\n ],\n [\n \"Australia/Lord_Howe\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"t\": \"+1030\",\n \"n\": \"+1030\",\n \"s\": \"19700405T020000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"+1030\",\n \"t\": \"+1100\",\n \"n\": \"+11\",\n \"s\": \"19701004T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"Australia/Melbourne\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"t\": \"+1000\",\n \"n\": \"AEST\",\n \"s\": \"19700405T030000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"+1000\",\n \"t\": \"+1100\",\n \"n\": \"AEDT\",\n \"s\": \"19701004T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"Australia/Perth\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"AWST\"\n }\n }\n ],\n [\n \"Australia/Sydney\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"t\": \"+1000\",\n \"n\": \"AEST\",\n \"s\": \"19700405T030000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"+1000\",\n \"t\": \"+1100\",\n \"n\": \"AEDT\",\n \"s\": \"19701004T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"Etc/GMT-0\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Etc/GMT-1\",\n {\n \"s\": {\n \"f\": \"-0100\",\n \"n\": \"-01\"\n }\n }\n ],\n [\n \"Etc/GMT-10\",\n {\n \"s\": {\n \"f\": \"-1000\",\n \"n\": \"-10\"\n }\n }\n ],\n [\n \"Etc/GMT-11\",\n {\n \"s\": {\n \"f\": \"-1100\",\n \"n\": \"-11\"\n }\n }\n ],\n [\n \"Etc/GMT-12\",\n {\n \"s\": {\n \"f\": \"-1200\",\n \"n\": \"-12\"\n }\n }\n ],\n [\n \"Etc/GMT-2\",\n {\n \"s\": {\n \"f\": \"-0200\",\n \"n\": \"-02\"\n }\n }\n ],\n [\n \"Etc/GMT-3\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"Etc/GMT-4\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"-04\"\n }\n }\n ],\n [\n \"Etc/GMT-5\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"n\": \"-05\"\n }\n }\n ],\n [\n \"Etc/GMT-6\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"n\": \"-06\"\n }\n }\n ],\n [\n \"Etc/GMT-7\",\n {\n \"s\": {\n \"f\": \"-0700\",\n \"n\": \"-07\"\n }\n }\n ],\n [\n \"Etc/GMT-8\",\n {\n \"s\": {\n \"f\": \"-0800\",\n \"n\": \"-08\"\n }\n }\n ],\n [\n \"Etc/GMT-9\",\n {\n \"s\": {\n \"f\": \"-0900\",\n \"n\": \"-09\"\n }\n }\n ],\n [\n \"Etc/GMT\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Etc/GMT+0\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Etc/GMT+1\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"+01\"\n }\n }\n ],\n [\n \"Etc/GMT+10\",\n {\n \"s\": {\n \"f\": \"+1000\",\n \"n\": \"+10\"\n }\n }\n ],\n [\n \"Etc/GMT+11\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"n\": \"+11\"\n }\n }\n ],\n [\n \"Etc/GMT+12\",\n {\n \"s\": {\n \"f\": \"+1200\",\n \"n\": \"+12\"\n }\n }\n ],\n [\n \"Etc/GMT+13\",\n {\n \"s\": {\n \"f\": \"+1300\",\n \"n\": \"+13\"\n }\n }\n ],\n [\n \"Etc/GMT+14\",\n {\n \"s\": {\n \"f\": \"+1400\",\n \"n\": \"+14\"\n }\n }\n ],\n [\n \"Etc/GMT+2\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"+02\"\n }\n }\n ],\n [\n \"Etc/GMT+3\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"+03\"\n }\n }\n ],\n [\n \"Etc/GMT+4\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Etc/GMT+5\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"+05\"\n }\n }\n ],\n [\n \"Etc/GMT+6\",\n {\n \"s\": {\n \"f\": \"+0600\",\n \"n\": \"+06\"\n }\n }\n ],\n [\n \"Etc/GMT+7\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"+07\"\n }\n }\n ],\n [\n \"Etc/GMT+8\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"+08\"\n }\n }\n ],\n [\n \"Etc/GMT+9\",\n {\n \"s\": {\n \"f\": \"+0900\",\n \"n\": \"+09\"\n }\n }\n ],\n [\n \"Etc/GMT0\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Etc/Greenwich\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Etc/UCT\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"UCT\"\n }\n }\n ],\n [\n \"Etc/Universal\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"UTC\"\n }\n }\n ],\n [\n \"Etc/UTC\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"UTC\"\n }\n }\n ],\n [\n \"Etc/Zulu\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"UTC\"\n }\n }\n ],\n [\n \"Europe/Amsterdam\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Andorra\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Astrakhan\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Europe/Athens\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Belgrade\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Berlin\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Bratislava\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Brussels\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Bucharest\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Budapest\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Busingen\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Chisinau\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Copenhagen\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Dublin\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"t\": \"+0000\",\n \"n\": \"GMT\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0000\",\n \"t\": \"+0100\",\n \"n\": \"IST\",\n \"s\": \"19700329T010000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Gibraltar\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Guernsey\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"t\": \"+0000\",\n \"n\": \"GMT\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0000\",\n \"t\": \"+0100\",\n \"n\": \"BST\",\n \"s\": \"19700329T010000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Helsinki\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Isle_of_Man\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"t\": \"+0000\",\n \"n\": \"GMT\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0000\",\n \"t\": \"+0100\",\n \"n\": \"BST\",\n \"s\": \"19700329T010000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Istanbul\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"+03\"\n }\n }\n ],\n [\n \"Europe/Jersey\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"t\": \"+0000\",\n \"n\": \"GMT\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0000\",\n \"t\": \"+0100\",\n \"n\": \"BST\",\n \"s\": \"19700329T010000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Kaliningrad\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"EET\"\n }\n }\n ],\n [\n \"Europe/Kiev\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Kirov\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"+03\"\n }\n }\n ],\n [\n \"Europe/Lisbon\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"t\": \"+0000\",\n \"n\": \"WET\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0000\",\n \"t\": \"+0100\",\n \"n\": \"WEST\",\n \"s\": \"19700329T010000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Ljubljana\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/London\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"t\": \"+0000\",\n \"n\": \"GMT\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0000\",\n \"t\": \"+0100\",\n \"n\": \"BST\",\n \"s\": \"19700329T010000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Luxembourg\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Madrid\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Malta\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Mariehamn\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Minsk\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"+03\"\n }\n }\n ],\n [\n \"Europe/Monaco\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Moscow\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"MSK\"\n }\n }\n ],\n [\n \"Europe/Nicosia\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Oslo\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Paris\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Podgorica\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Prague\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Riga\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Rome\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Samara\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Europe/San_Marino\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Sarajevo\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Saratov\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Europe/Simferopol\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"MSK\"\n }\n }\n ],\n [\n \"Europe/Skopje\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Sofia\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Stockholm\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Tallinn\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Tirane\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Ulyanovsk\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Europe/Uzhgorod\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Vaduz\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Vatican\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Vienna\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Vilnius\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Volgograd\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Europe/Warsaw\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Zagreb\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Zaporozhye\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Zurich\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Indian/Antananarivo\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"EAT\"\n }\n }\n ],\n [\n \"Indian/Chagos\",\n {\n \"s\": {\n \"f\": \"+0600\",\n \"n\": \"+06\"\n }\n }\n ],\n [\n \"Indian/Christmas\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"+07\"\n }\n }\n ],\n [\n \"Indian/Cocos\",\n {\n \"s\": {\n \"f\": \"+0630\",\n \"n\": \"+0630\"\n }\n }\n ],\n [\n \"Indian/Comoro\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"EAT\"\n }\n }\n ],\n [\n \"Indian/Kerguelen\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"+05\"\n }\n }\n ],\n [\n \"Indian/Mahe\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Indian/Maldives\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"+05\"\n }\n }\n ],\n [\n \"Indian/Mauritius\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Indian/Mayotte\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"EAT\"\n }\n }\n ],\n [\n \"Indian/Reunion\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Pacific/Apia\",\n {\n \"s\": {\n \"f\": \"+1400\",\n \"t\": \"+1300\",\n \"n\": \"+13\",\n \"s\": \"19700405T040000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"+1300\",\n \"t\": \"+1400\",\n \"n\": \"+14\",\n \"s\": \"19700927T030000\",\n \"r\": {\n \"m\": 9,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Pacific/Auckland\",\n {\n \"s\": {\n \"f\": \"+1300\",\n \"t\": \"+1200\",\n \"n\": \"NZST\",\n \"s\": \"19700405T030000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"+1200\",\n \"t\": \"+1300\",\n \"n\": \"NZDT\",\n \"s\": \"19700927T020000\",\n \"r\": {\n \"m\": 9,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Pacific/Bougainville\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"n\": \"+11\"\n }\n }\n ],\n [\n \"Pacific/Chatham\",\n {\n \"s\": {\n \"f\": \"+1345\",\n \"t\": \"+1245\",\n \"n\": \"+1245\",\n \"s\": \"19700405T034500\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"+1245\",\n \"t\": \"+1345\",\n \"n\": \"+1345\",\n \"s\": \"19700927T024500\",\n \"r\": {\n \"m\": 9,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Pacific/Chuuk\",\n {\n \"s\": {\n \"f\": \"+1000\",\n \"n\": \"+10\"\n }\n }\n ],\n [\n \"Pacific/Easter\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"-06\",\n \"s\": \"19700404T220000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SA\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"-05\",\n \"s\": \"19700905T220000\",\n \"r\": {\n \"m\": 9,\n \"d\": \"1SA\"\n }\n }\n }\n ],\n [\n \"Pacific/Efate\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"n\": \"+11\"\n }\n }\n ],\n [\n \"Pacific/Enderbury\",\n {\n \"s\": {\n \"f\": \"+1300\",\n \"n\": \"+13\"\n }\n }\n ],\n [\n \"Pacific/Fakaofo\",\n {\n \"s\": {\n \"f\": \"+1300\",\n \"n\": \"+13\"\n }\n }\n ],\n [\n \"Pacific/Fiji\",\n {\n \"s\": {\n \"f\": \"+1300\",\n \"t\": \"+1200\",\n \"n\": \"+12\",\n \"s\": \"19700118T030000\",\n \"r\": {\n \"m\": 1,\n \"d\": \"-2SU\"\n }\n },\n \"d\": {\n \"f\": \"+1200\",\n \"t\": \"+1300\",\n \"n\": \"+13\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"Pacific/Funafuti\",\n {\n \"s\": {\n \"f\": \"+1200\",\n \"n\": \"+12\"\n }\n }\n ],\n [\n \"Pacific/Galapagos\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"n\": \"-06\"\n }\n }\n ],\n [\n \"Pacific/Gambier\",\n {\n \"s\": {\n \"f\": \"-0900\",\n \"n\": \"-09\"\n }\n }\n ],\n [\n \"Pacific/Guadalcanal\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"n\": \"+11\"\n }\n }\n ],\n [\n \"Pacific/Guam\",\n {\n \"s\": {\n \"f\": \"+1000\",\n \"n\": \"ChST\"\n }\n }\n ],\n [\n \"Pacific/Honolulu\",\n {\n \"s\": {\n \"f\": \"-1000\",\n \"n\": \"HST\"\n }\n }\n ],\n [\n \"Pacific/Kiritimati\",\n {\n \"s\": {\n \"f\": \"+1400\",\n \"n\": \"+14\"\n }\n }\n ],\n [\n \"Pacific/Kosrae\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"n\": \"+11\"\n }\n }\n ],\n [\n \"Pacific/Kwajalein\",\n {\n \"s\": {\n \"f\": \"+1200\",\n \"n\": \"+12\"\n }\n }\n ],\n [\n \"Pacific/Majuro\",\n {\n \"s\": {\n \"f\": \"+1200\",\n \"n\": \"+12\"\n }\n }\n ],\n [\n \"Pacific/Marquesas\",\n {\n \"s\": {\n \"f\": \"-0930\",\n \"n\": \"-0930\"\n }\n }\n ],\n [\n \"Pacific/Midway\",\n {\n \"s\": {\n \"f\": \"-1100\",\n \"n\": \"SST\"\n }\n }\n ],\n [\n \"Pacific/Nauru\",\n {\n \"s\": {\n \"f\": \"+1200\",\n \"n\": \"+12\"\n }\n }\n ],\n [\n \"Pacific/Niue\",\n {\n \"s\": {\n \"f\": \"-1100\",\n \"n\": \"-11\"\n }\n }\n ],\n [\n \"Pacific/Norfolk\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"n\": \"+11\"\n }\n }\n ],\n [\n \"Pacific/Noumea\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"n\": \"+11\"\n }\n }\n ],\n [\n \"Pacific/Pago_Pago\",\n {\n \"s\": {\n \"f\": \"-1100\",\n \"n\": \"SST\"\n }\n }\n ],\n [\n \"Pacific/Palau\",\n {\n \"s\": {\n \"f\": \"+0900\",\n \"n\": \"+09\"\n }\n }\n ],\n [\n \"Pacific/Pitcairn\",\n {\n \"s\": {\n \"f\": \"-0800\",\n \"n\": \"-08\"\n }\n }\n ],\n [\n \"Pacific/Pohnpei\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"n\": \"+11\"\n }\n }\n ],\n [\n \"Pacific/Port_Moresby\",\n {\n \"s\": {\n \"f\": \"+1000\",\n \"n\": \"+10\"\n }\n }\n ],\n [\n \"Pacific/Rarotonga\",\n {\n \"s\": {\n \"f\": \"-1000\",\n \"n\": \"-10\"\n }\n }\n ],\n [\n \"Pacific/Saipan\",\n {\n \"s\": {\n \"f\": \"+1000\",\n \"n\": \"ChST\"\n }\n }\n ],\n [\n \"Pacific/Tahiti\",\n {\n \"s\": {\n \"f\": \"-1000\",\n \"n\": \"-10\"\n }\n }\n ],\n [\n \"Pacific/Tarawa\",\n {\n \"s\": {\n \"f\": \"+1200\",\n \"n\": \"+12\"\n }\n }\n ],\n [\n \"Pacific/Tongatapu\",\n {\n \"s\": {\n \"f\": \"+1300\",\n \"n\": \"+13\"\n }\n }\n ],\n [\n \"Pacific/Wake\",\n {\n \"s\": {\n \"f\": \"+1200\",\n \"n\": \"+12\"\n }\n }\n ],\n [\n \"Pacific/Wallis\",\n {\n \"s\": {\n \"f\": \"+1200\",\n \"n\": \"+12\"\n }\n }\n ]\n]);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getZoneString = exports.getZoneLines = void 0;\nconst zones_1 = require(\"./zones\"); // This module must be generated with `yarn run build-zones`.\nfunction renderZoneSub(data) {\n const { n, f, t, r, s } = data;\n return [\n `TZNAME:${n}`,\n `TZOFFSETFROM:${f}`,\n `TZOFFSETTO:${t || f}`,\n `DTSTART:${s || zones_1.defaultStart}`,\n ...(r ? [`RRULE:FREQ=${r.f || 'YEARLY'};BYMONTH=${r.m};BYDAY=${r.d}`] : []),\n ];\n}\n/**\n * Tries to resolve a given time zone to iCalendar time zone component\n * (`VTIMEZONE`) as string array (usually for further processing).\n * @param zoneName Time zone name (e.g. `America/Los_Angeles`)\n * @param includeWrapper Set to `false` to avoid including lines for\n * `BEGIN:VTIMEZONE` and `END:VTIMEZONE`.\n * @returns Lines of the iCalendar time zone component (`VTIMEZONE`), each line\n * individually as an array of strings.\n */\nfunction getZoneLines(zoneName, includeWrapper = true) {\n const zoneData = zones_1.zonesMap.get(zoneName);\n if (zoneData) {\n const { s, d } = zoneData;\n const lines = [\n ...(includeWrapper ? ['BEGIN:VTIMEZONE'] : []),\n `TZID:${zoneName}`,\n // `X-LIC-LOCATION:${zoneName}`, // Who uses this?\n 'BEGIN:STANDARD',\n ...renderZoneSub(s),\n 'END:STANDARD',\n ...(d ? [\n 'BEGIN:DAYLIGHT',\n ...renderZoneSub(d),\n 'END:DAYLIGHT',\n ] : []),\n ...(includeWrapper ? ['END:VTIMEZONE'] : []),\n ];\n return lines;\n }\n}\nexports.getZoneLines = getZoneLines;\n/**\n * Tries to resolve a given time zone to iCalendar time zone component\n * (`VTIMEZONE`) as string.\n * @param zoneName Time zone name (e.g. `America/Los_Angeles`)\n * @param includeWrapper Set to `false` to avoid including lines for\n * `BEGIN:VTIMEZONE` and `END:VTIMEZONE`.\n * @returns The iCalendar time zone component (`VTIMEZONE`) as string\n * with `\\r\\n` line breaks.\n */\nfunction getZoneString(zoneName, includeWrapper = true) {\n const lines = getZoneLines(zoneName, includeWrapper);\n return lines === null || lines === void 0 ? void 0 : lines.join('\\r\\n');\n}\nexports.getZoneString = getZoneString;\n","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch */\n\n/**\n * Represents the BINARY value type, which contains extra methods for encoding and decoding.\n *\n * @memberof ICAL\n */\nclass Binary {\n /**\n * Creates a binary value from the given string.\n *\n * @param {String} aString The binary value string\n * @return {Binary} The binary value instance\n */\n static fromString(aString) {\n return new Binary(aString);\n }\n\n /**\n * Creates a new ICAL.Binary instance\n *\n * @param {String} aValue The binary data for this value\n */\n constructor(aValue) {\n this.value = aValue;\n }\n\n /**\n * The type name, to be used in the jCal object.\n * @default \"binary\"\n * @constant\n */\n icaltype = \"binary\";\n\n /**\n * Base64 decode the current value\n *\n * @return {String} The base64-decoded value\n */\n decodeValue() {\n return this._b64_decode(this.value);\n }\n\n /**\n * Encodes the passed parameter with base64 and sets the internal\n * value to the result.\n *\n * @param {String} aValue The raw binary value to encode\n */\n setEncodedValue(aValue) {\n this.value = this._b64_encode(aValue);\n }\n\n _b64_encode(data) {\n // http://kevin.vanzonneveld.net\n // + original by: Tyler Akins (http://rumkin.com)\n // + improved by: Bayron Guevara\n // + improved by: Thunder.m\n // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)\n // + bugfixed by: Pellentesque Malesuada\n // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)\n // + improved by: Rafał Kukawski (http://kukawski.pl)\n // * example 1: base64_encode('Kevin van Zonneveld');\n // * returns 1: 'S2V2aW4gdmFuIFpvbm5ldmVsZA=='\n // mozilla has this native\n // - but breaks in 2.0.0.12!\n //if (typeof this.window['atob'] == 'function') {\n // return atob(data);\n //}\n let b64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\" +\n \"abcdefghijklmnopqrstuvwxyz0123456789+/=\";\n let o1, o2, o3, h1, h2, h3, h4, bits, i = 0,\n ac = 0,\n enc = \"\",\n tmp_arr = [];\n\n if (!data) {\n return data;\n }\n\n do { // pack three octets into four hexets\n o1 = data.charCodeAt(i++);\n o2 = data.charCodeAt(i++);\n o3 = data.charCodeAt(i++);\n\n bits = o1 << 16 | o2 << 8 | o3;\n\n h1 = bits >> 18 & 0x3f;\n h2 = bits >> 12 & 0x3f;\n h3 = bits >> 6 & 0x3f;\n h4 = bits & 0x3f;\n\n // use hexets to index into b64, and append result to encoded string\n tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);\n } while (i < data.length);\n\n enc = tmp_arr.join('');\n\n let r = data.length % 3;\n\n return (r ? enc.slice(0, r - 3) : enc) + '==='.slice(r || 3);\n\n }\n\n _b64_decode(data) {\n // http://kevin.vanzonneveld.net\n // + original by: Tyler Akins (http://rumkin.com)\n // + improved by: Thunder.m\n // + input by: Aman Gupta\n // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)\n // + bugfixed by: Onno Marsman\n // + bugfixed by: Pellentesque Malesuada\n // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)\n // + input by: Brett Zamir (http://brett-zamir.me)\n // + bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)\n // * example 1: base64_decode('S2V2aW4gdmFuIFpvbm5ldmVsZA==');\n // * returns 1: 'Kevin van Zonneveld'\n // mozilla has this native\n // - but breaks in 2.0.0.12!\n //if (typeof this.window['btoa'] == 'function') {\n // return btoa(data);\n //}\n let b64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\" +\n \"abcdefghijklmnopqrstuvwxyz0123456789+/=\";\n let o1, o2, o3, h1, h2, h3, h4, bits, i = 0,\n ac = 0,\n dec = \"\",\n tmp_arr = [];\n\n if (!data) {\n return data;\n }\n\n data += '';\n\n do { // unpack four hexets into three octets using index points in b64\n h1 = b64.indexOf(data.charAt(i++));\n h2 = b64.indexOf(data.charAt(i++));\n h3 = b64.indexOf(data.charAt(i++));\n h4 = b64.indexOf(data.charAt(i++));\n\n bits = h1 << 18 | h2 << 12 | h3 << 6 | h4;\n\n o1 = bits >> 16 & 0xff;\n o2 = bits >> 8 & 0xff;\n o3 = bits & 0xff;\n\n if (h3 == 64) {\n tmp_arr[ac++] = String.fromCharCode(o1);\n } else if (h4 == 64) {\n tmp_arr[ac++] = String.fromCharCode(o1, o2);\n } else {\n tmp_arr[ac++] = String.fromCharCode(o1, o2, o3);\n }\n } while (i < data.length);\n\n dec = tmp_arr.join('');\n\n return dec;\n }\n\n /**\n * The string representation of this value\n * @return {String}\n */\n toString() {\n return this.value;\n }\n}\n\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch */\n\n\nconst DURATION_LETTERS = /([PDWHMTS]{1,1})/;\nconst DATA_PROPS_TO_COPY = [\"weeks\", \"days\", \"hours\", \"minutes\", \"seconds\", \"isNegative\"];\n\n/**\n * This class represents the \"duration\" value type, with various calculation\n * and manipulation methods.\n *\n * @memberof ICAL\n */\nclass Duration {\n /**\n * Returns a new ICAL.Duration instance from the passed seconds value.\n *\n * @param {Number} aSeconds The seconds to create the instance from\n * @return {Duration} The newly created duration instance\n */\n static fromSeconds(aSeconds) {\n return (new Duration()).fromSeconds(aSeconds);\n }\n\n /**\n * Checks if the given string is an iCalendar duration value.\n *\n * @param {String} value The raw ical value\n * @return {Boolean} True, if the given value is of the\n * duration ical type\n */\n static isValueString(string) {\n return (string[0] === 'P' || string[1] === 'P');\n }\n\n /**\n * Creates a new {@link ICAL.Duration} instance from the passed string.\n *\n * @param {String} aStr The string to parse\n * @return {Duration} The created duration instance\n */\n static fromString(aStr) {\n let pos = 0;\n let dict = Object.create(null);\n let chunks = 0;\n\n while ((pos = aStr.search(DURATION_LETTERS)) !== -1) {\n let type = aStr[pos];\n let numeric = aStr.slice(0, Math.max(0, pos));\n aStr = aStr.slice(pos + 1);\n\n chunks += parseDurationChunk(type, numeric, dict);\n }\n\n if (chunks < 2) {\n // There must be at least a chunk with \"P\" and some unit chunk\n throw new Error(\n 'invalid duration value: Not enough duration components in \"' + aStr + '\"'\n );\n }\n\n return new Duration(dict);\n }\n\n /**\n * Creates a new ICAL.Duration instance from the given data object.\n *\n * @param {Object} aData An object with members of the duration\n * @param {Number=} aData.weeks Duration in weeks\n * @param {Number=} aData.days Duration in days\n * @param {Number=} aData.hours Duration in hours\n * @param {Number=} aData.minutes Duration in minutes\n * @param {Number=} aData.seconds Duration in seconds\n * @param {Boolean=} aData.isNegative If true, the duration is negative\n * @return {Duration} The createad duration instance\n */\n static fromData(aData) {\n return new Duration(aData);\n }\n\n /**\n * Creates a new ICAL.Duration instance.\n *\n * @param {Object} data An object with members of the duration\n * @param {Number=} data.weeks Duration in weeks\n * @param {Number=} data.days Duration in days\n * @param {Number=} data.hours Duration in hours\n * @param {Number=} data.minutes Duration in minutes\n * @param {Number=} data.seconds Duration in seconds\n * @param {Boolean=} data.isNegative If true, the duration is negative\n */\n constructor(data) {\n this.wrappedJSObject = this;\n this.fromData(data);\n }\n\n /**\n * The weeks in this duration\n * @type {Number}\n * @default 0\n */\n weeks = 0;\n\n /**\n * The days in this duration\n * @type {Number}\n * @default 0\n */\n days = 0;\n\n /**\n * The days in this duration\n * @type {Number}\n * @default 0\n */\n hours = 0;\n\n /**\n * The minutes in this duration\n * @type {Number}\n * @default 0\n */\n minutes = 0;\n\n /**\n * The seconds in this duration\n * @type {Number}\n * @default 0\n */\n seconds = 0;\n\n /**\n * The seconds in this duration\n * @type {Boolean}\n * @default false\n */\n isNegative = false;\n\n /**\n * The class identifier.\n * @constant\n * @type {String}\n * @default \"icalduration\"\n */\n icalclass = \"icalduration\";\n\n /**\n * The type name, to be used in the jCal object.\n * @constant\n * @type {String}\n * @default \"duration\"\n */\n icaltype = \"duration\";\n\n /**\n * Returns a clone of the duration object.\n *\n * @return {Duration} The cloned object\n */\n clone() {\n return Duration.fromData(this);\n }\n\n /**\n * The duration value expressed as a number of seconds.\n *\n * @return {Number} The duration value in seconds\n */\n toSeconds() {\n let seconds = this.seconds + 60 * this.minutes + 3600 * this.hours +\n 86400 * this.days + 7 * 86400 * this.weeks;\n return (this.isNegative ? -seconds : seconds);\n }\n\n /**\n * Reads the passed seconds value into this duration object. Afterwards,\n * members like {@link ICAL.Duration#days days} and {@link ICAL.Duration#weeks weeks} will be set up\n * accordingly.\n *\n * @param {Number} aSeconds The duration value in seconds\n * @return {Duration} Returns this instance\n */\n fromSeconds(aSeconds) {\n let secs = Math.abs(aSeconds);\n\n this.isNegative = (aSeconds < 0);\n this.days = trunc(secs / 86400);\n\n // If we have a flat number of weeks, use them.\n if (this.days % 7 == 0) {\n this.weeks = this.days / 7;\n this.days = 0;\n } else {\n this.weeks = 0;\n }\n\n secs -= (this.days + 7 * this.weeks) * 86400;\n\n this.hours = trunc(secs / 3600);\n secs -= this.hours * 3600;\n\n this.minutes = trunc(secs / 60);\n secs -= this.minutes * 60;\n\n this.seconds = secs;\n return this;\n }\n\n /**\n * Sets up the current instance using members from the passed data object.\n *\n * @param {Object} aData An object with members of the duration\n * @param {Number=} aData.weeks Duration in weeks\n * @param {Number=} aData.days Duration in days\n * @param {Number=} aData.hours Duration in hours\n * @param {Number=} aData.minutes Duration in minutes\n * @param {Number=} aData.seconds Duration in seconds\n * @param {Boolean=} aData.isNegative If true, the duration is negative\n */\n fromData(aData) {\n for (let prop of DATA_PROPS_TO_COPY) {\n if (aData && prop in aData) {\n this[prop] = aData[prop];\n } else {\n this[prop] = 0;\n }\n }\n }\n\n /**\n * Resets the duration instance to the default values, i.e. PT0S\n */\n reset() {\n this.isNegative = false;\n this.weeks = 0;\n this.days = 0;\n this.hours = 0;\n this.minutes = 0;\n this.seconds = 0;\n }\n\n /**\n * Compares the duration instance with another one.\n *\n * @param {Duration} aOther The instance to compare with\n * @return {Number} -1, 0 or 1 for less/equal/greater\n */\n compare(aOther) {\n let thisSeconds = this.toSeconds();\n let otherSeconds = aOther.toSeconds();\n return (thisSeconds > otherSeconds) - (thisSeconds < otherSeconds);\n }\n\n /**\n * Normalizes the duration instance. For example, a duration with a value\n * of 61 seconds will be normalized to 1 minute and 1 second.\n */\n normalize() {\n this.fromSeconds(this.toSeconds());\n }\n\n /**\n * The string representation of this duration.\n * @return {String}\n */\n toString() {\n if (this.toSeconds() == 0) {\n return \"PT0S\";\n } else {\n let str = \"\";\n if (this.isNegative) str += \"-\";\n str += \"P\";\n let hasWeeks = false;\n if (this.weeks) {\n if (this.days || this.hours || this.minutes || this.seconds) {\n str += (this.weeks * 7 + this.days) + \"D\";\n } else {\n str += (this.weeks + \"W\");\n hasWeeks = true;\n }\n } else if (this.days) {\n str += (this.days + \"D\");\n }\n\n if (!hasWeeks) {\n if (this.hours || this.minutes || this.seconds) {\n str += \"T\";\n if (this.hours) {\n str += this.hours + \"H\";\n }\n\n if (this.minutes) {\n str += this.minutes + \"M\";\n }\n\n if (this.seconds) {\n str += this.seconds + \"S\";\n }\n }\n }\n\n return str;\n }\n }\n\n /**\n * The iCalendar string representation of this duration.\n * @return {String}\n */\n toICALString() {\n return this.toString();\n }\n}\n\n/**\n * Internal helper function to handle a chunk of a duration.\n *\n * @private\n * @param {String} letter type of duration chunk\n * @param {String} number numeric value or -/+\n * @param {Object} dict target to assign values to\n */\nfunction parseDurationChunk(letter, number, object) {\n let type;\n switch (letter) {\n case 'P':\n if (number && number === '-') {\n object.isNegative = true;\n } else {\n object.isNegative = false;\n }\n // period\n break;\n case 'D':\n type = 'days';\n break;\n case 'W':\n type = 'weeks';\n break;\n case 'H':\n type = 'hours';\n break;\n case 'M':\n type = 'minutes';\n break;\n case 'S':\n type = 'seconds';\n break;\n default:\n // Not a valid chunk\n return 0;\n }\n\n if (type) {\n if (!number && number !== 0) {\n throw new Error(\n 'invalid duration value: Missing number before \"' + letter + '\"'\n );\n }\n let num = parseInt(number, 10);\n if (isStrictlyNaN(num)) {\n throw new Error(\n 'invalid duration value: Invalid number \"' + number + '\" before \"' + letter + '\"'\n );\n }\n object[type] = num;\n }\n\n return 1;\n}\n\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch */\n\n\n/**\n * This lets typescript resolve our custom types in the\n * generated d.ts files (jsdoc typedefs are converted to typescript types).\n * Ignore prevents the typedefs from being documented more than once.\n * @ignore\n * @typedef {import(\"./types.js\").jCalComponent} jCalComponent\n * Imports the 'occurrenceDetails' type from the \"types.js\" module\n */\n\n/**\n * This class represents the \"period\" value type, with various calculation and manipulation methods.\n *\n * @memberof ICAL\n */\nclass Period {\n /**\n * Creates a new {@link ICAL.Period} instance from the passed string.\n *\n * @param {String} str The string to parse\n * @param {Property} prop The property this period will be on\n * @return {Period} The created period instance\n */\n static fromString(str, prop) {\n let parts = str.split('/');\n\n if (parts.length !== 2) {\n throw new Error(\n 'Invalid string value: \"' + str + '\" must contain a \"/\" char.'\n );\n }\n\n let options = {\n start: Time.fromDateTimeString(parts[0], prop)\n };\n\n let end = parts[1];\n\n if (Duration.isValueString(end)) {\n options.duration = Duration.fromString(end);\n } else {\n options.end = Time.fromDateTimeString(end, prop);\n }\n\n return new Period(options);\n }\n\n /**\n * Creates a new {@link ICAL.Period} instance from the given data object.\n * The passed data object cannot contain both and end date and a duration.\n *\n * @param {Object} aData An object with members of the period\n * @param {Time=} aData.start The start of the period\n * @param {Time=} aData.end The end of the period\n * @param {Duration=} aData.duration The duration of the period\n * @return {Period} The period instance\n */\n static fromData(aData) {\n return new Period(aData);\n }\n\n /**\n * Returns a new period instance from the given jCal data array. The first\n * member is always the start date string, the second member is either a\n * duration or end date string.\n *\n * @param {jCalComponent} aData The jCal data array\n * @param {Property} aProp The property this jCal data is on\n * @param {Boolean} aLenient If true, data value can be both date and date-time\n * @return {Period} The period instance\n */\n static fromJSON(aData, aProp, aLenient) {\n function fromDateOrDateTimeString(aValue, dateProp) {\n if (aLenient) {\n return Time.fromString(aValue, dateProp);\n } else {\n return Time.fromDateTimeString(aValue, dateProp);\n }\n }\n\n if (Duration.isValueString(aData[1])) {\n return Period.fromData({\n start: fromDateOrDateTimeString(aData[0], aProp),\n duration: Duration.fromString(aData[1])\n });\n } else {\n return Period.fromData({\n start: fromDateOrDateTimeString(aData[0], aProp),\n end: fromDateOrDateTimeString(aData[1], aProp)\n });\n }\n }\n\n /**\n * Creates a new ICAL.Period instance. The passed data object cannot contain both and end date and\n * a duration.\n *\n * @param {Object} aData An object with members of the period\n * @param {Time=} aData.start The start of the period\n * @param {Time=} aData.end The end of the period\n * @param {Duration=} aData.duration The duration of the period\n */\n constructor(aData) {\n this.wrappedJSObject = this;\n\n if (aData && 'start' in aData) {\n if (aData.start && !(aData.start instanceof Time)) {\n throw new TypeError('.start must be an instance of ICAL.Time');\n }\n this.start = aData.start;\n }\n\n if (aData && aData.end && aData.duration) {\n throw new Error('cannot accept both end and duration');\n }\n\n if (aData && 'end' in aData) {\n if (aData.end && !(aData.end instanceof Time)) {\n throw new TypeError('.end must be an instance of ICAL.Time');\n }\n this.end = aData.end;\n }\n\n if (aData && 'duration' in aData) {\n if (aData.duration && !(aData.duration instanceof Duration)) {\n throw new TypeError('.duration must be an instance of ICAL.Duration');\n }\n this.duration = aData.duration;\n }\n }\n\n\n /**\n * The start of the period\n * @type {Time}\n */\n start = null;\n\n /**\n * The end of the period\n * @type {Time}\n */\n end = null;\n\n /**\n * The duration of the period\n * @type {Duration}\n */\n duration = null;\n\n /**\n * The class identifier.\n * @constant\n * @type {String}\n * @default \"icalperiod\"\n */\n icalclass = \"icalperiod\";\n\n /**\n * The type name, to be used in the jCal object.\n * @constant\n * @type {String}\n * @default \"period\"\n */\n icaltype = \"period\";\n\n /**\n * Returns a clone of the duration object.\n *\n * @return {Period} The cloned object\n */\n clone() {\n return Period.fromData({\n start: this.start ? this.start.clone() : null,\n end: this.end ? this.end.clone() : null,\n duration: this.duration ? this.duration.clone() : null\n });\n }\n\n /**\n * Calculates the duration of the period, either directly or by subtracting\n * start from end date.\n *\n * @return {Duration} The calculated duration\n */\n getDuration() {\n if (this.duration) {\n return this.duration;\n } else {\n return this.end.subtractDate(this.start);\n }\n }\n\n /**\n * Calculates the end date of the period, either directly or by adding\n * duration to start date.\n *\n * @return {Time} The calculated end date\n */\n getEnd() {\n if (this.end) {\n return this.end;\n } else {\n let end = this.start.clone();\n end.addDuration(this.duration);\n return end;\n }\n }\n\n /**\n * Compare this period with a date or other period. To maintain the logic where a.compare(b)\n * returns 1 when a > b, this function will return 1 when the period is after the date, 0 when the\n * date is within the period, and -1 when the period is before the date. When comparing two\n * periods, as soon as they overlap in any way this will return 0.\n *\n * @param {Time|Period} dt The date or other period to compare with\n */\n compare(dt) {\n if (dt.compare(this.start) < 0) {\n return 1;\n } else if (dt.compare(this.getEnd()) > 0) {\n return -1;\n } else {\n return 0;\n }\n }\n\n /**\n * The string representation of this period.\n * @return {String}\n */\n toString() {\n return this.start + \"/\" + (this.end || this.duration);\n }\n\n /**\n * The jCal representation of this period type.\n * @return {Object}\n */\n toJSON() {\n return [this.start.toString(), (this.end || this.duration).toString()];\n }\n\n /**\n * The iCalendar string representation of this period.\n * @return {String}\n */\n toICALString() {\n return this.start.toICALString() + \"/\" +\n (this.end || this.duration).toICALString();\n }\n}\n\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch */\n\n\n/**\n * This lets typescript resolve our custom types in the\n * generated d.ts files (jsdoc typedefs are converted to typescript types).\n * Ignore prevents the typedefs from being documented more than once.\n *\n * @ignore\n * @typedef {import(\"./types.js\").weekDay} weekDay\n * Imports the 'weekDay' type from the \"types.js\" module\n *\n * @ignore\n * @typedef {import(\"./types.js\").timeInit} timeInit\n * Imports the 'timeInit' type from the \"types.js\" module\n */\n\n/**\n * @classdesc\n * iCalendar Time representation (similar to JS Date object). Fully\n * independent of system (OS) timezone / time. Unlike JS Date, the month\n * January is 1, not zero.\n *\n * @example\n * var time = new ICAL.Time({\n * year: 2012,\n * month: 10,\n * day: 11\n * minute: 0,\n * second: 0,\n * isDate: false\n * });\n *\n *\n * @memberof ICAL\n*/\nclass Time {\n static _dowCache = {};\n static _wnCache = {};\n\n /**\n * Returns the days in the given month\n *\n * @param {Number} month The month to check\n * @param {Number} year The year to check\n * @return {Number} The number of days in the month\n */\n static daysInMonth(month, year) {\n let _daysInMonth = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n let days = 30;\n\n if (month < 1 || month > 12) return days;\n\n days = _daysInMonth[month];\n\n if (month == 2) {\n days += Time.isLeapYear(year);\n }\n\n return days;\n }\n\n /**\n * Checks if the year is a leap year\n *\n * @param {Number} year The year to check\n * @return {Boolean} True, if the year is a leap year\n */\n static isLeapYear(year) {\n if (year <= 1752) {\n return ((year % 4) == 0);\n } else {\n return (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0));\n }\n }\n\n /**\n * Create a new ICAL.Time from the day of year and year. The date is returned\n * in floating timezone.\n *\n * @param {Number} aDayOfYear The day of year\n * @param {Number} aYear The year to create the instance in\n * @return {Time} The created instance with the calculated date\n */\n static fromDayOfYear(aDayOfYear, aYear) {\n let year = aYear;\n let doy = aDayOfYear;\n let tt = new Time();\n tt.auto_normalize = false;\n let is_leap = (Time.isLeapYear(year) ? 1 : 0);\n\n if (doy < 1) {\n year--;\n is_leap = (Time.isLeapYear(year) ? 1 : 0);\n doy += Time.daysInYearPassedMonth[is_leap][12];\n return Time.fromDayOfYear(doy, year);\n } else if (doy > Time.daysInYearPassedMonth[is_leap][12]) {\n is_leap = (Time.isLeapYear(year) ? 1 : 0);\n doy -= Time.daysInYearPassedMonth[is_leap][12];\n year++;\n return Time.fromDayOfYear(doy, year);\n }\n\n tt.year = year;\n tt.isDate = true;\n\n for (let month = 11; month >= 0; month--) {\n if (doy > Time.daysInYearPassedMonth[is_leap][month]) {\n tt.month = month + 1;\n tt.day = doy - Time.daysInYearPassedMonth[is_leap][month];\n break;\n }\n }\n\n tt.auto_normalize = true;\n return tt;\n }\n\n /**\n * Returns a new ICAL.Time instance from a date string, e.g 2015-01-02.\n *\n * @deprecated Use {@link ICAL.Time.fromDateString} instead\n * @param {String} str The string to create from\n * @return {Time} The date/time instance\n */\n static fromStringv2(str) {\n return new Time({\n year: parseInt(str.slice(0, 4), 10),\n month: parseInt(str.slice(5, 7), 10),\n day: parseInt(str.slice(8, 10), 10),\n isDate: true\n });\n }\n\n /**\n * Returns a new ICAL.Time instance from a date string, e.g 2015-01-02.\n *\n * @param {String} aValue The string to create from\n * @return {Time} The date/time instance\n */\n static fromDateString(aValue) {\n // Dates should have no timezone.\n // Google likes to sometimes specify Z on dates\n // we specifically ignore that to avoid issues.\n\n // YYYY-MM-DD\n // 2012-10-10\n return new Time({\n year: strictParseInt(aValue.slice(0, 4)),\n month: strictParseInt(aValue.slice(5, 7)),\n day: strictParseInt(aValue.slice(8, 10)),\n isDate: true\n });\n }\n\n /**\n * Returns a new ICAL.Time instance from a date-time string, e.g\n * 2015-01-02T03:04:05. If a property is specified, the timezone is set up\n * from the property's TZID parameter.\n *\n * @param {String} aValue The string to create from\n * @param {Property=} prop The property the date belongs to\n * @return {Time} The date/time instance\n */\n static fromDateTimeString(aValue, prop) {\n if (aValue.length < 19) {\n throw new Error(\n 'invalid date-time value: \"' + aValue + '\"'\n );\n }\n\n let zone;\n let zoneId;\n\n if (aValue.slice(-1) === 'Z') {\n zone = Timezone.utcTimezone;\n } else if (prop) {\n zoneId = prop.getParameter('tzid');\n\n if (prop.parent) {\n if (prop.parent.name === 'standard' || prop.parent.name === 'daylight') {\n // Per RFC 5545 3.8.2.4 and 3.8.2.2, start/end date-times within\n // these components MUST be specified in local time.\n zone = Timezone.localTimezone;\n } else if (zoneId) {\n // If the desired time zone is defined within the component tree,\n // fetch its definition and prefer that.\n zone = prop.parent.getTimeZoneByID(zoneId);\n }\n }\n }\n\n const timeData = {\n year: strictParseInt(aValue.slice(0, 4)),\n month: strictParseInt(aValue.slice(5, 7)),\n day: strictParseInt(aValue.slice(8, 10)),\n hour: strictParseInt(aValue.slice(11, 13)),\n minute: strictParseInt(aValue.slice(14, 16)),\n second: strictParseInt(aValue.slice(17, 19)),\n };\n\n // Although RFC 5545 requires that all TZIDs used within a file have a\n // corresponding time zone definition, we may not be parsing the full file\n // or we may be dealing with a non-compliant file; in either case, we can\n // check our own time zone service for the TZID in a last-ditch effort.\n if (zoneId && !zone) {\n timeData.timezone = zoneId;\n }\n\n // 2012-10-10T10:10:10(Z)?\n return new Time(timeData, zone);\n }\n\n /**\n * Returns a new ICAL.Time instance from a date or date-time string,\n *\n * @param {String} aValue The string to create from\n * @param {Property=} prop The property the date belongs to\n * @return {Time} The date/time instance\n */\n static fromString(aValue, aProperty) {\n if (aValue.length > 10) {\n return Time.fromDateTimeString(aValue, aProperty);\n } else {\n return Time.fromDateString(aValue);\n }\n }\n\n /**\n * Creates a new ICAL.Time instance from the given Javascript Date.\n *\n * @param {?Date} aDate The Javascript Date to read, or null to reset\n * @param {Boolean} [useUTC=false] If true, the UTC values of the date will be used\n */\n static fromJSDate(aDate, useUTC) {\n let tt = new Time();\n return tt.fromJSDate(aDate, useUTC);\n }\n\n /**\n * Creates a new ICAL.Time instance from the the passed data object.\n *\n * @param {timeInit} aData Time initialization\n * @param {Timezone=} aZone Timezone this position occurs in\n */\n static fromData = function fromData(aData, aZone) {\n let t = new Time();\n return t.fromData(aData, aZone);\n };\n\n /**\n * Creates a new ICAL.Time instance from the current moment.\n * The instance is “floating” - has no timezone relation.\n * To create an instance considering the time zone, call\n * ICAL.Time.fromJSDate(new Date(), true)\n * @return {Time}\n */\n static now() {\n return Time.fromJSDate(new Date(), false);\n }\n\n /**\n * Returns the date on which ISO week number 1 starts.\n *\n * @see Time#weekNumber\n * @param {Number} aYear The year to search in\n * @param {weekDay=} aWeekStart The week start weekday, used for calculation.\n * @return {Time} The date on which week number 1 starts\n */\n static weekOneStarts(aYear, aWeekStart) {\n let t = Time.fromData({\n year: aYear,\n month: 1,\n day: 1,\n isDate: true\n });\n\n let dow = t.dayOfWeek();\n let wkst = aWeekStart || Time.DEFAULT_WEEK_START;\n if (dow > Time.THURSDAY) {\n t.day += 7;\n }\n if (wkst > Time.THURSDAY) {\n t.day -= 7;\n }\n\n t.day -= dow - wkst;\n\n return t;\n }\n\n /**\n * Get the dominical letter for the given year. Letters range from A - G for\n * common years, and AG to GF for leap years.\n *\n * @param {Number} yr The year to retrieve the letter for\n * @return {String} The dominical letter.\n */\n static getDominicalLetter(yr) {\n let LTRS = \"GFEDCBA\";\n let dom = (yr + (yr / 4 | 0) + (yr / 400 | 0) - (yr / 100 | 0) - 1) % 7;\n let isLeap = Time.isLeapYear(yr);\n if (isLeap) {\n return LTRS[(dom + 6) % 7] + LTRS[dom];\n } else {\n return LTRS[dom];\n }\n }\n\n static #epochTime = null;\n /**\n * January 1st, 1970 as an ICAL.Time.\n * @type {Time}\n * @constant\n * @instance\n */\n static get epochTime() {\n if (!this.#epochTime) {\n this.#epochTime = Time.fromData({\n year: 1970,\n month: 1,\n day: 1,\n hour: 0,\n minute: 0,\n second: 0,\n isDate: false,\n timezone: \"Z\"\n });\n }\n return this.#epochTime;\n }\n\n static _cmp_attr(a, b, attr) {\n if (a[attr] > b[attr]) return 1;\n if (a[attr] < b[attr]) return -1;\n return 0;\n }\n\n /**\n * The days that have passed in the year after a given month. The array has\n * two members, one being an array of passed days for non-leap years, the\n * other analog for leap years.\n * @example\n * var isLeapYear = ICAL.Time.isLeapYear(year);\n * var passedDays = ICAL.Time.daysInYearPassedMonth[isLeapYear][month];\n * @type {Array.>}\n */\n static daysInYearPassedMonth = [\n [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365],\n [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366]\n ];\n\n static SUNDAY = 1;\n static MONDAY = 2;\n static TUESDAY = 3;\n static WEDNESDAY = 4;\n static THURSDAY = 5;\n static FRIDAY = 6;\n static SATURDAY = 7;\n\n /**\n * The default weekday for the WKST part.\n * @constant\n * @default ICAL.Time.MONDAY\n */\n static DEFAULT_WEEK_START = 2; // MONDAY\n\n /**\n * Creates a new ICAL.Time instance.\n *\n * @param {timeInit} data Time initialization\n * @param {Timezone} zone timezone this position occurs in\n */\n constructor(data, zone) {\n this.wrappedJSObject = this;\n\n /**\n * @type {timeInit}\n * @private\n */\n this._time = Object.create(null);\n\n /* time defaults */\n this._time.year = 0;\n this._time.month = 1;\n this._time.day = 1;\n this._time.hour = 0;\n this._time.minute = 0;\n this._time.second = 0;\n this._time.isDate = false;\n\n this.fromData(data, zone);\n }\n\n /**\n * The class identifier.\n * @constant\n * @type {String}\n * @default \"icaltime\"\n */\n icalclass = \"icaltime\";\n _cachedUnixTime = null;\n\n /**\n * The type name, to be used in the jCal object. This value may change and\n * is strictly defined by the {@link ICAL.Time#isDate isDate} member.\n * @type {String}\n * @default \"date-time\"\n */\n get icaltype() {\n return this.isDate ? 'date' : 'date-time';\n }\n\n /**\n * The timezone for this time.\n * @type {Timezone}\n */\n zone = null;\n\n /**\n * Internal uses to indicate that a change has been made and the next read\n * operation must attempt to normalize the value (for example changing the\n * day to 33).\n *\n * @type {Boolean}\n * @private\n */\n _pendingNormalization = false;\n\n /**\n * The year of this date.\n * @type {Number}\n */\n get year() {\n return this._getTimeAttr('year');\n }\n\n set year(val) {\n this._setTimeAttr('year', val);\n }\n\n /**\n * The month of this date.\n * @type {Number}\n */\n get month() {\n return this._getTimeAttr('month');\n }\n\n set month(val) {\n this._setTimeAttr('month', val);\n }\n\n /**\n * The day of this date.\n * @type {Number}\n */\n get day() {\n return this._getTimeAttr('day');\n }\n\n set day(val) {\n this._setTimeAttr('day', val);\n }\n\n /**\n * The hour of this date-time.\n * @type {Number}\n */\n get hour() {\n return this._getTimeAttr('hour');\n }\n\n set hour(val) {\n this._setTimeAttr('hour', val);\n }\n\n /**\n * The minute of this date-time.\n * @type {Number}\n */\n get minute() {\n return this._getTimeAttr('minute');\n }\n\n set minute(val) {\n this._setTimeAttr('minute', val);\n }\n\n /**\n * The second of this date-time.\n * @type {Number}\n */\n get second() {\n return this._getTimeAttr('second');\n }\n\n set second(val) {\n this._setTimeAttr('second', val);\n }\n\n /**\n * If true, the instance represents a date (as opposed to a date-time)\n * @type {Boolean}\n */\n get isDate() {\n return this._getTimeAttr('isDate');\n }\n\n set isDate(val) {\n this._setTimeAttr('isDate', val);\n }\n\n /**\n * @private\n * @param {String} attr Attribute to get (one of: year, month,\n * day, hour, minute, second, isDate)\n * @return {Number|Boolean} Current value for the attribute\n */\n _getTimeAttr(attr) {\n if (this._pendingNormalization) {\n this._normalize();\n this._pendingNormalization = false;\n }\n\n return this._time[attr];\n }\n\n /**\n * @private\n * @param {String} attr Attribute to set (one of: year, month,\n * day, hour, minute, second, isDate)\n * @param {Number|Boolean} val New value for the attribute\n */\n _setTimeAttr(attr, val) {\n // Check if isDate will be set and if was not set to normalize date.\n // This avoids losing days when seconds, minutes and hours are zeroed\n // what normalize will do when time is a date.\n if (attr === \"isDate\" && val && !this._time.isDate) {\n this.adjust(0, 0, 0, 0);\n }\n this._cachedUnixTime = null;\n this._pendingNormalization = true;\n this._time[attr] = val;\n }\n\n /**\n * Returns a clone of the time object.\n *\n * @return {Time} The cloned object\n */\n clone() {\n return new Time(this._time, this.zone);\n }\n\n /**\n * Reset the time instance to epoch time\n */\n reset() {\n this.fromData(Time.epochTime);\n this.zone = Timezone.utcTimezone;\n }\n\n /**\n * Reset the time instance to the given date/time values.\n *\n * @param {Number} year The year to set\n * @param {Number} month The month to set\n * @param {Number} day The day to set\n * @param {Number} hour The hour to set\n * @param {Number} minute The minute to set\n * @param {Number} second The second to set\n * @param {Timezone} timezone The timezone to set\n */\n resetTo(year, month, day, hour, minute, second, timezone) {\n this.fromData({\n year: year,\n month: month,\n day: day,\n hour: hour,\n minute: minute,\n second: second,\n zone: timezone\n });\n }\n\n /**\n * Set up the current instance from the Javascript date value.\n *\n * @param {?Date} aDate The Javascript Date to read, or null to reset\n * @param {Boolean} [useUTC=false] If true, the UTC values of the date will be used\n */\n fromJSDate(aDate, useUTC) {\n if (!aDate) {\n this.reset();\n } else {\n if (useUTC) {\n this.zone = Timezone.utcTimezone;\n this.year = aDate.getUTCFullYear();\n this.month = aDate.getUTCMonth() + 1;\n this.day = aDate.getUTCDate();\n this.hour = aDate.getUTCHours();\n this.minute = aDate.getUTCMinutes();\n this.second = aDate.getUTCSeconds();\n } else {\n this.zone = Timezone.localTimezone;\n this.year = aDate.getFullYear();\n this.month = aDate.getMonth() + 1;\n this.day = aDate.getDate();\n this.hour = aDate.getHours();\n this.minute = aDate.getMinutes();\n this.second = aDate.getSeconds();\n }\n }\n this._cachedUnixTime = null;\n return this;\n }\n\n /**\n * Sets up the current instance using members from the passed data object.\n *\n * @param {timeInit} aData Time initialization\n * @param {Timezone=} aZone Timezone this position occurs in\n */\n fromData(aData, aZone) {\n if (aData) {\n for (let [key, value] of Object.entries(aData)) {\n // ical type cannot be set\n if (key === 'icaltype') continue;\n this[key] = value;\n }\n }\n\n if (aZone) {\n this.zone = aZone;\n }\n\n if (aData && !(\"isDate\" in aData)) {\n this.isDate = !(\"hour\" in aData);\n } else if (aData && (\"isDate\" in aData)) {\n this.isDate = aData.isDate;\n }\n\n if (aData && \"timezone\" in aData) {\n let zone = TimezoneService.get(\n aData.timezone\n );\n\n this.zone = zone || Timezone.localTimezone;\n }\n\n if (aData && \"zone\" in aData) {\n this.zone = aData.zone;\n }\n\n if (!this.zone) {\n this.zone = Timezone.localTimezone;\n }\n\n this._cachedUnixTime = null;\n return this;\n }\n\n /**\n * Calculate the day of week.\n * @param {weekDay=} aWeekStart\n * The week start weekday, defaults to SUNDAY\n * @return {weekDay}\n */\n dayOfWeek(aWeekStart) {\n let firstDow = aWeekStart || Time.SUNDAY;\n let dowCacheKey = (this.year << 12) + (this.month << 8) + (this.day << 3) + firstDow;\n if (dowCacheKey in Time._dowCache) {\n return Time._dowCache[dowCacheKey];\n }\n\n // Using Zeller's algorithm\n let q = this.day;\n let m = this.month + (this.month < 3 ? 12 : 0);\n let Y = this.year - (this.month < 3 ? 1 : 0);\n\n let h = (q + Y + trunc(((m + 1) * 26) / 10) + trunc(Y / 4));\n { // eslint-disable-line no-constant-condition\n h += trunc(Y / 100) * 6 + trunc(Y / 400);\n }\n\n // Normalize to 1 = wkst\n h = ((h + 7 - firstDow) % 7) + 1;\n Time._dowCache[dowCacheKey] = h;\n return h;\n }\n\n /**\n * Calculate the day of year.\n * @return {Number}\n */\n dayOfYear() {\n let is_leap = (Time.isLeapYear(this.year) ? 1 : 0);\n let diypm = Time.daysInYearPassedMonth;\n return diypm[is_leap][this.month - 1] + this.day;\n }\n\n /**\n * Returns a copy of the current date/time, rewound to the start of the\n * week. The resulting ICAL.Time instance is of icaltype date, even if this\n * is a date-time.\n *\n * @param {weekDay=} aWeekStart\n * The week start weekday, defaults to SUNDAY\n * @return {Time} The start of the week (cloned)\n */\n startOfWeek(aWeekStart) {\n let firstDow = aWeekStart || Time.SUNDAY;\n let result = this.clone();\n result.day -= ((this.dayOfWeek() + 7 - firstDow) % 7);\n result.isDate = true;\n result.hour = 0;\n result.minute = 0;\n result.second = 0;\n return result;\n }\n\n /**\n * Returns a copy of the current date/time, shifted to the end of the week.\n * The resulting ICAL.Time instance is of icaltype date, even if this is a\n * date-time.\n *\n * @param {weekDay=} aWeekStart\n * The week start weekday, defaults to SUNDAY\n * @return {Time} The end of the week (cloned)\n */\n endOfWeek(aWeekStart) {\n let firstDow = aWeekStart || Time.SUNDAY;\n let result = this.clone();\n result.day += (7 - this.dayOfWeek() + firstDow - Time.SUNDAY) % 7;\n result.isDate = true;\n result.hour = 0;\n result.minute = 0;\n result.second = 0;\n return result;\n }\n\n /**\n * Returns a copy of the current date/time, rewound to the start of the\n * month. The resulting ICAL.Time instance is of icaltype date, even if\n * this is a date-time.\n *\n * @return {Time} The start of the month (cloned)\n */\n startOfMonth() {\n let result = this.clone();\n result.day = 1;\n result.isDate = true;\n result.hour = 0;\n result.minute = 0;\n result.second = 0;\n return result;\n }\n\n /**\n * Returns a copy of the current date/time, shifted to the end of the\n * month. The resulting ICAL.Time instance is of icaltype date, even if\n * this is a date-time.\n *\n * @return {Time} The end of the month (cloned)\n */\n endOfMonth() {\n let result = this.clone();\n result.day = Time.daysInMonth(result.month, result.year);\n result.isDate = true;\n result.hour = 0;\n result.minute = 0;\n result.second = 0;\n return result;\n }\n\n /**\n * Returns a copy of the current date/time, rewound to the start of the\n * year. The resulting ICAL.Time instance is of icaltype date, even if\n * this is a date-time.\n *\n * @return {Time} The start of the year (cloned)\n */\n startOfYear() {\n let result = this.clone();\n result.day = 1;\n result.month = 1;\n result.isDate = true;\n result.hour = 0;\n result.minute = 0;\n result.second = 0;\n return result;\n }\n\n /**\n * Returns a copy of the current date/time, shifted to the end of the\n * year. The resulting ICAL.Time instance is of icaltype date, even if\n * this is a date-time.\n *\n * @return {Time} The end of the year (cloned)\n */\n endOfYear() {\n let result = this.clone();\n result.day = 31;\n result.month = 12;\n result.isDate = true;\n result.hour = 0;\n result.minute = 0;\n result.second = 0;\n return result;\n }\n\n /**\n * First calculates the start of the week, then returns the day of year for\n * this date. If the day falls into the previous year, the day is zero or negative.\n *\n * @param {weekDay=} aFirstDayOfWeek\n * The week start weekday, defaults to SUNDAY\n * @return {Number} The calculated day of year\n */\n startDoyWeek(aFirstDayOfWeek) {\n let firstDow = aFirstDayOfWeek || Time.SUNDAY;\n let delta = this.dayOfWeek() - firstDow;\n if (delta < 0) delta += 7;\n return this.dayOfYear() - delta;\n }\n\n /**\n * Get the dominical letter for the current year. Letters range from A - G\n * for common years, and AG to GF for leap years.\n *\n * @param {Number} yr The year to retrieve the letter for\n * @return {String} The dominical letter.\n */\n getDominicalLetter() {\n return Time.getDominicalLetter(this.year);\n }\n\n /**\n * Finds the nthWeekDay relative to the current month (not day). The\n * returned value is a day relative the month that this month belongs to so\n * 1 would indicate the first of the month and 40 would indicate a day in\n * the following month.\n *\n * @param {Number} aDayOfWeek Day of the week see the day name constants\n * @param {Number} aPos Nth occurrence of a given week day values\n * of 1 and 0 both indicate the first weekday of that type. aPos may\n * be either positive or negative\n *\n * @return {Number} numeric value indicating a day relative\n * to the current month of this time object\n */\n nthWeekDay(aDayOfWeek, aPos) {\n let daysInMonth = Time.daysInMonth(this.month, this.year);\n let weekday;\n let pos = aPos;\n\n let start = 0;\n\n let otherDay = this.clone();\n\n if (pos >= 0) {\n otherDay.day = 1;\n\n // because 0 means no position has been given\n // 1 and 0 indicate the same day.\n if (pos != 0) {\n // remove the extra numeric value\n pos--;\n }\n\n // set current start offset to current day.\n start = otherDay.day;\n\n // find the current day of week\n let startDow = otherDay.dayOfWeek();\n\n // calculate the difference between current\n // day of the week and desired day of the week\n let offset = aDayOfWeek - startDow;\n\n\n // if the offset goes into the past\n // week we add 7 so it goes into the next\n // week. We only want to go forward in time here.\n if (offset < 0)\n // this is really important otherwise we would\n // end up with dates from in the past.\n offset += 7;\n\n // add offset to start so start is the same\n // day of the week as the desired day of week.\n start += offset;\n\n // because we are going to add (and multiply)\n // the numeric value of the day we subtract it\n // from the start position so not to add it twice.\n start -= aDayOfWeek;\n\n // set week day\n weekday = aDayOfWeek;\n } else {\n\n // then we set it to the last day in the current month\n otherDay.day = daysInMonth;\n\n // find the ends weekday\n let endDow = otherDay.dayOfWeek();\n\n pos++;\n\n weekday = (endDow - aDayOfWeek);\n\n if (weekday < 0) {\n weekday += 7;\n }\n\n weekday = daysInMonth - weekday;\n }\n\n weekday += pos * 7;\n\n return start + weekday;\n }\n\n /**\n * Checks if current time is the nth weekday, relative to the current\n * month. Will always return false when rule resolves outside of current\n * month.\n *\n * @param {weekDay} aDayOfWeek Day of week to check\n * @param {Number} aPos Relative position\n * @return {Boolean} True, if it is the nth weekday\n */\n isNthWeekDay(aDayOfWeek, aPos) {\n let dow = this.dayOfWeek();\n\n if (aPos === 0 && dow === aDayOfWeek) {\n return true;\n }\n\n // get pos\n let day = this.nthWeekDay(aDayOfWeek, aPos);\n\n if (day === this.day) {\n return true;\n }\n\n return false;\n }\n\n /**\n * Calculates the ISO 8601 week number. The first week of a year is the\n * week that contains the first Thursday. The year can have 53 weeks, if\n * January 1st is a Friday.\n *\n * Note there are regions where the first week of the year is the one that\n * starts on January 1st, which may offset the week number. Also, if a\n * different week start is specified, this will also affect the week\n * number.\n *\n * @see Time.weekOneStarts\n * @param {weekDay} aWeekStart The weekday the week starts with\n * @return {Number} The ISO week number\n */\n weekNumber(aWeekStart) {\n let wnCacheKey = (this.year << 12) + (this.month << 8) + (this.day << 3) + aWeekStart;\n if (wnCacheKey in Time._wnCache) {\n return Time._wnCache[wnCacheKey];\n }\n // This function courtesty of Julian Bucknall, published under the MIT license\n // http://www.boyet.com/articles/publishedarticles/calculatingtheisoweeknumb.html\n // plus some fixes to be able to use different week starts.\n let week1;\n\n let dt = this.clone();\n dt.isDate = true;\n let isoyear = this.year;\n\n if (dt.month == 12 && dt.day > 25) {\n week1 = Time.weekOneStarts(isoyear + 1, aWeekStart);\n if (dt.compare(week1) < 0) {\n week1 = Time.weekOneStarts(isoyear, aWeekStart);\n } else {\n isoyear++;\n }\n } else {\n week1 = Time.weekOneStarts(isoyear, aWeekStart);\n if (dt.compare(week1) < 0) {\n week1 = Time.weekOneStarts(--isoyear, aWeekStart);\n }\n }\n\n let daysBetween = (dt.subtractDate(week1).toSeconds() / 86400);\n let answer = trunc(daysBetween / 7) + 1;\n Time._wnCache[wnCacheKey] = answer;\n return answer;\n }\n\n /**\n * Adds the duration to the current time. The instance is modified in\n * place.\n *\n * @param {Duration} aDuration The duration to add\n */\n addDuration(aDuration) {\n let mult = (aDuration.isNegative ? -1 : 1);\n\n // because of the duration optimizations it is much\n // more efficient to grab all the values up front\n // then set them directly (which will avoid a normalization call).\n // So we don't actually normalize until we need it.\n let second = this.second;\n let minute = this.minute;\n let hour = this.hour;\n let day = this.day;\n\n second += mult * aDuration.seconds;\n minute += mult * aDuration.minutes;\n hour += mult * aDuration.hours;\n day += mult * aDuration.days;\n day += mult * 7 * aDuration.weeks;\n\n this.second = second;\n this.minute = minute;\n this.hour = hour;\n this.day = day;\n\n this._cachedUnixTime = null;\n }\n\n /**\n * Subtract the date details (_excluding_ timezone). Useful for finding\n * the relative difference between two time objects excluding their\n * timezone differences.\n *\n * @param {Time} aDate The date to subtract\n * @return {Duration} The difference as a duration\n */\n subtractDate(aDate) {\n let unixTime = this.toUnixTime() + this.utcOffset();\n let other = aDate.toUnixTime() + aDate.utcOffset();\n return Duration.fromSeconds(unixTime - other);\n }\n\n /**\n * Subtract the date details, taking timezones into account.\n *\n * @param {Time} aDate The date to subtract\n * @return {Duration} The difference in duration\n */\n subtractDateTz(aDate) {\n let unixTime = this.toUnixTime();\n let other = aDate.toUnixTime();\n return Duration.fromSeconds(unixTime - other);\n }\n\n /**\n * Compares the ICAL.Time instance with another one, or a period.\n *\n * @param {Time|Period} aOther The instance to compare with\n * @return {Number} -1, 0 or 1 for less/equal/greater\n */\n compare(other) {\n if (other instanceof Period) {\n return -1 * other.compare(this);\n } else {\n let a = this.toUnixTime();\n let b = other.toUnixTime();\n\n if (a > b) return 1;\n if (b > a) return -1;\n return 0;\n }\n }\n\n /**\n * Compares only the date part of this instance with another one.\n *\n * @param {Time} other The instance to compare with\n * @param {Timezone} tz The timezone to compare in\n * @return {Number} -1, 0 or 1 for less/equal/greater\n */\n compareDateOnlyTz(other, tz) {\n let a = this.convertToZone(tz);\n let b = other.convertToZone(tz);\n let rc = 0;\n\n if ((rc = Time._cmp_attr(a, b, \"year\")) != 0) return rc;\n if ((rc = Time._cmp_attr(a, b, \"month\")) != 0) return rc;\n if ((rc = Time._cmp_attr(a, b, \"day\")) != 0) return rc;\n\n return rc;\n }\n\n /**\n * Convert the instance into another timezone. The returned ICAL.Time\n * instance is always a copy.\n *\n * @param {Timezone} zone The zone to convert to\n * @return {Time} The copy, converted to the zone\n */\n convertToZone(zone) {\n let copy = this.clone();\n let zone_equals = (this.zone.tzid == zone.tzid);\n\n if (!this.isDate && !zone_equals) {\n Timezone.convert_time(copy, this.zone, zone);\n }\n\n copy.zone = zone;\n return copy;\n }\n\n /**\n * Calculates the UTC offset of the current date/time in the timezone it is\n * in.\n *\n * @return {Number} UTC offset in seconds\n */\n utcOffset() {\n if (this.zone == Timezone.localTimezone ||\n this.zone == Timezone.utcTimezone) {\n return 0;\n } else {\n return this.zone.utcOffset(this);\n }\n }\n\n /**\n * Returns an RFC 5545 compliant ical representation of this object.\n *\n * @return {String} ical date/date-time\n */\n toICALString() {\n let string = this.toString();\n\n if (string.length > 10) {\n return design.icalendar.value['date-time'].toICAL(string);\n } else {\n return design.icalendar.value.date.toICAL(string);\n }\n }\n\n /**\n * The string representation of this date/time, in jCal form\n * (including : and - separators).\n * @return {String}\n */\n toString() {\n let result = this.year + '-' +\n pad2(this.month) + '-' +\n pad2(this.day);\n\n if (!this.isDate) {\n result += 'T' + pad2(this.hour) + ':' +\n pad2(this.minute) + ':' +\n pad2(this.second);\n\n if (this.zone === Timezone.utcTimezone) {\n result += 'Z';\n }\n }\n\n return result;\n }\n\n /**\n * Converts the current instance to a Javascript date\n * @return {Date}\n */\n toJSDate() {\n if (this.zone == Timezone.localTimezone) {\n if (this.isDate) {\n return new Date(this.year, this.month - 1, this.day);\n } else {\n return new Date(this.year, this.month - 1, this.day,\n this.hour, this.minute, this.second, 0);\n }\n } else {\n return new Date(this.toUnixTime() * 1000);\n }\n }\n\n _normalize() {\n if (this._time.isDate) {\n this._time.hour = 0;\n this._time.minute = 0;\n this._time.second = 0;\n }\n this.adjust(0, 0, 0, 0);\n\n return this;\n }\n\n /**\n * Adjust the date/time by the given offset\n *\n * @param {Number} aExtraDays The extra amount of days\n * @param {Number} aExtraHours The extra amount of hours\n * @param {Number} aExtraMinutes The extra amount of minutes\n * @param {Number} aExtraSeconds The extra amount of seconds\n * @param {Number=} aTime The time to adjust, defaults to the\n * current instance.\n */\n adjust(aExtraDays, aExtraHours, aExtraMinutes, aExtraSeconds, aTime) {\n\n let minutesOverflow, hoursOverflow,\n daysOverflow = 0, yearsOverflow = 0;\n\n let second, minute, hour, day;\n let daysInMonth;\n\n let time = aTime || this._time;\n\n if (!time.isDate) {\n second = time.second + aExtraSeconds;\n time.second = second % 60;\n minutesOverflow = trunc(second / 60);\n if (time.second < 0) {\n time.second += 60;\n minutesOverflow--;\n }\n\n minute = time.minute + aExtraMinutes + minutesOverflow;\n time.minute = minute % 60;\n hoursOverflow = trunc(minute / 60);\n if (time.minute < 0) {\n time.minute += 60;\n hoursOverflow--;\n }\n\n hour = time.hour + aExtraHours + hoursOverflow;\n\n time.hour = hour % 24;\n daysOverflow = trunc(hour / 24);\n if (time.hour < 0) {\n time.hour += 24;\n daysOverflow--;\n }\n }\n\n\n // Adjust month and year first, because we need to know what month the day\n // is in before adjusting it.\n if (time.month > 12) {\n yearsOverflow = trunc((time.month - 1) / 12);\n } else if (time.month < 1) {\n yearsOverflow = trunc(time.month / 12) - 1;\n }\n\n time.year += yearsOverflow;\n time.month -= 12 * yearsOverflow;\n\n // Now take care of the days (and adjust month if needed)\n day = time.day + aExtraDays + daysOverflow;\n\n if (day > 0) {\n for (;;) {\n daysInMonth = Time.daysInMonth(time.month, time.year);\n if (day <= daysInMonth) {\n break;\n }\n\n time.month++;\n if (time.month > 12) {\n time.year++;\n time.month = 1;\n }\n\n day -= daysInMonth;\n }\n } else {\n while (day <= 0) {\n if (time.month == 1) {\n time.year--;\n time.month = 12;\n } else {\n time.month--;\n }\n\n day += Time.daysInMonth(time.month, time.year);\n }\n }\n\n time.day = day;\n\n this._cachedUnixTime = null;\n return this;\n }\n\n /**\n * Sets up the current instance from unix time, the number of seconds since\n * January 1st, 1970.\n *\n * @param {Number} seconds The seconds to set up with\n */\n fromUnixTime(seconds) {\n this.zone = Timezone.utcTimezone;\n // We could use `fromJSDate` here, but this is about twice as fast.\n // We could also clone `epochTime` and use `adjust` for a more\n // ical.js-centric approach, but this is about 100 times as fast.\n let date = new Date(seconds * 1000);\n this.year = date.getUTCFullYear();\n this.month = date.getUTCMonth() + 1;\n this.day = date.getUTCDate();\n if (this._time.isDate) {\n this.hour = 0;\n this.minute = 0;\n this.second = 0;\n } else {\n this.hour = date.getUTCHours();\n this.minute = date.getUTCMinutes();\n this.second = date.getUTCSeconds();\n }\n\n this._cachedUnixTime = null;\n }\n\n /**\n * Converts the current instance to seconds since January 1st 1970.\n *\n * @return {Number} Seconds since 1970\n */\n toUnixTime() {\n if (this._cachedUnixTime !== null) {\n return this._cachedUnixTime;\n }\n let offset = this.utcOffset();\n\n // we use the offset trick to ensure\n // that we are getting the actual UTC time\n let ms = Date.UTC(\n this.year,\n this.month - 1,\n this.day,\n this.hour,\n this.minute,\n this.second - offset\n );\n\n // seconds\n this._cachedUnixTime = ms / 1000;\n return this._cachedUnixTime;\n }\n\n /**\n * Converts time to into Object which can be serialized then re-created\n * using the constructor.\n *\n * @example\n * // toJSON will automatically be called\n * var json = JSON.stringify(mytime);\n *\n * var deserialized = JSON.parse(json);\n *\n * var time = new ICAL.Time(deserialized);\n *\n * @return {Object}\n */\n toJSON() {\n let copy = [\n 'year',\n 'month',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'isDate'\n ];\n\n let result = Object.create(null);\n\n let i = 0;\n let len = copy.length;\n let prop;\n\n for (; i < len; i++) {\n prop = copy[i];\n result[prop] = this[prop];\n }\n\n if (this.zone) {\n result.timezone = this.zone.tzid;\n }\n\n return result;\n }\n}\n\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch */\n\n\n/**\n * This lets typescript resolve our custom types in the\n * generated d.ts files (jsdoc typedefs are converted to typescript types).\n * Ignore prevents the typedefs from being documented more than once.\n *\n * @ignore\n * @typedef {import(\"./types.js\").parserState} parserState\n * Imports the 'parserState' type from the \"types.js\" module\n * @typedef {import(\"./types.js\").designSet} designSet\n * Imports the 'designSet' type from the \"types.js\" module\n */\n\nconst CHAR = /[^ \\t]/;\nconst VALUE_DELIMITER = ':';\nconst PARAM_DELIMITER = ';';\nconst PARAM_NAME_DELIMITER = '=';\nconst DEFAULT_VALUE_TYPE$1 = 'unknown';\nconst DEFAULT_PARAM_TYPE = 'text';\nconst RFC6868_REPLACE_MAP$1 = { \"^'\": '\"', \"^n\": \"\\n\", \"^^\": \"^\" };\n\n/**\n * Parses iCalendar or vCard data into a raw jCal object. Consult\n * documentation on the {@tutorial layers|layers of parsing} for more\n * details.\n *\n * @function ICAL.parse\n * @memberof ICAL\n * @variation function\n * @todo Fix the API to be more clear on the return type\n * @param {String} input The string data to parse\n * @return {Object|Object[]} A single jCal object, or an array thereof\n */\nfunction parse(input) {\n let state = {};\n let root = state.component = [];\n\n state.stack = [root];\n\n parse._eachLine(input, function(err, line) {\n parse._handleContentLine(line, state);\n });\n\n\n // when there are still items on the stack\n // throw a fatal error, a component was not closed\n // correctly in that case.\n if (state.stack.length > 1) {\n throw new ParserError(\n 'invalid ical body. component began but did not end'\n );\n }\n\n state = null;\n\n return (root.length == 1 ? root[0] : root);\n}\n\n/**\n * Parse an iCalendar property value into the jCal for a single property\n *\n * @function ICAL.parse.property\n * @param {String} str\n * The iCalendar property string to parse\n * @param {designSet=} designSet\n * The design data to use for this property\n * @return {Object}\n * The jCal Object containing the property\n */\nparse.property = function(str, designSet) {\n let state = {\n component: [[], []],\n designSet: designSet || design.defaultSet\n };\n parse._handleContentLine(str, state);\n return state.component[1][0];\n};\n\n/**\n * Convenience method to parse a component. You can use ICAL.parse() directly\n * instead.\n *\n * @function ICAL.parse.component\n * @see ICAL.parse(function)\n * @param {String} str The iCalendar component string to parse\n * @return {Object} The jCal Object containing the component\n */\nparse.component = function(str) {\n return parse(str);\n};\n\n\n/**\n * An error that occurred during parsing.\n *\n * @param {String} message The error message\n * @memberof ICAL.parse\n * @extends {Error}\n */\nclass ParserError extends Error {\n name = this.constructor.name;\n}\n\n// classes & constants\nparse.ParserError = ParserError;\n\n\n/**\n * Handles a single line of iCalendar/vCard, updating the state.\n *\n * @private\n * @function ICAL.parse._handleContentLine\n * @param {String} line The content line to process\n * @param {parserState} state The current state of the line parsing\n */\nparse._handleContentLine = function(line, state) {\n // break up the parts of the line\n let valuePos = line.indexOf(VALUE_DELIMITER);\n let paramPos = line.indexOf(PARAM_DELIMITER);\n\n let lastParamIndex;\n let lastValuePos;\n\n // name of property or begin/end\n let name;\n let value;\n // params is only overridden if paramPos !== -1.\n // we can't do params = params || {} later on\n // because it sacrifices ops.\n let params = {};\n\n /**\n * Different property cases\n *\n *\n * 1. RRULE:FREQ=foo\n * // FREQ= is not a param but the value\n *\n * 2. ATTENDEE;ROLE=REQ-PARTICIPANT;\n * // ROLE= is a param because : has not happened yet\n */\n // when the parameter delimiter is after the\n // value delimiter then it is not a parameter.\n\n if ((paramPos !== -1 && valuePos !== -1)) {\n // when the parameter delimiter is after the\n // value delimiter then it is not a parameter.\n if (paramPos > valuePos) {\n paramPos = -1;\n }\n }\n\n let parsedParams;\n if (paramPos !== -1) {\n name = line.slice(0, Math.max(0, paramPos)).toLowerCase();\n parsedParams = parse._parseParameters(line.slice(Math.max(0, paramPos)), 0, state.designSet);\n if (parsedParams[2] == -1) {\n throw new ParserError(\"Invalid parameters in '\" + line + \"'\");\n }\n params = parsedParams[0];\n // Handle parameter values with multiple entries\n let parsedParamLength;\n if (typeof parsedParams[1] === 'string') {\n parsedParamLength = parsedParams[1].length;\n } else {\n parsedParamLength = parsedParams[1].reduce((accumulator, currentValue) => {\n return accumulator + currentValue.length;\n }, 0);\n }\n lastParamIndex = parsedParamLength + parsedParams[2] + paramPos;\n if ((lastValuePos =\n line.slice(Math.max(0, lastParamIndex)).indexOf(VALUE_DELIMITER)) !== -1) {\n value = line.slice(Math.max(0, lastParamIndex + lastValuePos + 1));\n } else {\n throw new ParserError(\"Missing parameter value in '\" + line + \"'\");\n }\n } else if (valuePos !== -1) {\n // without parmeters (BEGIN:VCAENDAR, CLASS:PUBLIC)\n name = line.slice(0, Math.max(0, valuePos)).toLowerCase();\n value = line.slice(Math.max(0, valuePos + 1));\n\n if (name === 'begin') {\n let newComponent = [value.toLowerCase(), [], []];\n if (state.stack.length === 1) {\n state.component.push(newComponent);\n } else {\n state.component[2].push(newComponent);\n }\n state.stack.push(state.component);\n state.component = newComponent;\n if (!state.designSet) {\n state.designSet = design.getDesignSet(state.component[0]);\n }\n return;\n } else if (name === 'end') {\n state.component = state.stack.pop();\n return;\n }\n // If it is not begin/end, then this is a property with an empty value,\n // which should be considered valid.\n } else {\n /**\n * Invalid line.\n * The rational to throw an error is we will\n * never be certain that the rest of the file\n * is sane and it is unlikely that we can serialize\n * the result correctly either.\n */\n throw new ParserError(\n 'invalid line (no token \";\" or \":\") \"' + line + '\"'\n );\n }\n\n let valueType;\n let multiValue = false;\n let structuredValue = false;\n let propertyDetails;\n let splitName;\n let ungroupedName;\n\n // fetch the ungrouped part of the name\n if (state.designSet.propertyGroups && name.indexOf('.') !== -1) {\n splitName = name.split('.');\n params.group = splitName[0];\n ungroupedName = splitName[1];\n } else {\n ungroupedName = name;\n }\n\n if (ungroupedName in state.designSet.property) {\n propertyDetails = state.designSet.property[ungroupedName];\n\n if ('multiValue' in propertyDetails) {\n multiValue = propertyDetails.multiValue;\n }\n\n if ('structuredValue' in propertyDetails) {\n structuredValue = propertyDetails.structuredValue;\n }\n\n if (value && 'detectType' in propertyDetails) {\n valueType = propertyDetails.detectType(value);\n }\n }\n\n // attempt to determine value\n if (!valueType) {\n if (!('value' in params)) {\n if (propertyDetails) {\n valueType = propertyDetails.defaultType;\n } else {\n valueType = DEFAULT_VALUE_TYPE$1;\n }\n } else {\n // possible to avoid this?\n valueType = params.value.toLowerCase();\n }\n }\n\n delete params.value;\n\n /**\n * Note on `var result` juggling:\n *\n * I observed that building the array in pieces has adverse\n * effects on performance, so where possible we inline the creation.\n * It is a little ugly but resulted in ~2000 additional ops/sec.\n */\n\n let result;\n if (multiValue && structuredValue) {\n value = parse._parseMultiValue(value, structuredValue, valueType, [], multiValue, state.designSet, structuredValue);\n result = [ungroupedName, params, valueType, value];\n } else if (multiValue) {\n result = [ungroupedName, params, valueType];\n parse._parseMultiValue(value, multiValue, valueType, result, null, state.designSet, false);\n } else if (structuredValue) {\n value = parse._parseMultiValue(value, structuredValue, valueType, [], null, state.designSet, structuredValue);\n result = [ungroupedName, params, valueType, value];\n } else {\n value = parse._parseValue(value, valueType, state.designSet, false);\n result = [ungroupedName, params, valueType, value];\n }\n // rfc6350 requires that in vCard 4.0 the first component is the VERSION\n // component with as value 4.0, note that 3.0 does not have this requirement.\n if (state.component[0] === 'vcard' && state.component[1].length === 0 &&\n !(name === 'version' && value === '4.0')) {\n state.designSet = design.getDesignSet(\"vcard3\");\n }\n state.component[1].push(result);\n};\n\n/**\n * Parse a value from the raw value into the jCard/jCal value.\n *\n * @private\n * @function ICAL.parse._parseValue\n * @param {String} value Original value\n * @param {String} type Type of value\n * @param {Object} designSet The design data to use for this value\n * @return {Object} varies on type\n */\nparse._parseValue = function(value, type, designSet, structuredValue) {\n if (type in designSet.value && 'fromICAL' in designSet.value[type]) {\n return designSet.value[type].fromICAL(value, structuredValue);\n }\n return value;\n};\n\n/**\n * Parse parameters from a string to object.\n *\n * @function ICAL.parse._parseParameters\n * @private\n * @param {String} line A single unfolded line\n * @param {Number} start Position to start looking for properties\n * @param {Object} designSet The design data to use for this property\n * @return {Array} Array containing key/valye pairs of parsed parameters, the\n * parsed value, and the position of the last parameter found\n */\nparse._parseParameters = function(line, start, designSet) {\n let lastParam = start;\n let pos = 0;\n let delim = PARAM_NAME_DELIMITER;\n let result = {};\n let name, lcname;\n let value, valuePos = -1;\n let type, multiValue, mvdelim;\n\n // find the next '=' sign\n // use lastParam and pos to find name\n // check if \" is used if so get value from \"->\"\n // then increment pos to find next ;\n\n while ((pos !== false) &&\n (pos = line.indexOf(delim, pos + 1)) !== -1) {\n\n name = line.slice(lastParam + 1, pos);\n if (name.length == 0) {\n throw new ParserError(\"Empty parameter name in '\" + line + \"'\");\n }\n lcname = name.toLowerCase();\n mvdelim = false;\n multiValue = false;\n\n if (lcname in designSet.param && designSet.param[lcname].valueType) {\n type = designSet.param[lcname].valueType;\n } else {\n type = DEFAULT_PARAM_TYPE;\n }\n\n if (lcname in designSet.param) {\n multiValue = designSet.param[lcname].multiValue;\n if (designSet.param[lcname].multiValueSeparateDQuote) {\n mvdelim = parse._rfc6868Escape('\"' + multiValue + '\"');\n }\n }\n\n let nextChar = line[pos + 1];\n if (nextChar === '\"') {\n valuePos = pos + 2;\n pos = line.indexOf('\"', valuePos);\n if (multiValue && pos != -1) {\n let extendedValue = true;\n while (extendedValue) {\n if (line[pos + 1] == multiValue && line[pos + 2] == '\"') {\n pos = line.indexOf('\"', pos + 3);\n } else {\n extendedValue = false;\n }\n }\n }\n if (pos === -1) {\n throw new ParserError(\n 'invalid line (no matching double quote) \"' + line + '\"'\n );\n }\n value = line.slice(valuePos, pos);\n lastParam = line.indexOf(PARAM_DELIMITER, pos);\n let propValuePos = line.indexOf(VALUE_DELIMITER, pos);\n // if either no next parameter or delimeter in property value, let's stop here\n if (lastParam === -1 || (propValuePos !== -1 && lastParam > propValuePos)) {\n pos = false;\n }\n } else {\n valuePos = pos + 1;\n\n // move to next \";\"\n let nextPos = line.indexOf(PARAM_DELIMITER, valuePos);\n let propValuePos = line.indexOf(VALUE_DELIMITER, valuePos);\n if (propValuePos !== -1 && nextPos > propValuePos) {\n // this is a delimiter in the property value, let's stop here\n nextPos = propValuePos;\n pos = false;\n } else if (nextPos === -1) {\n // no \";\"\n if (propValuePos === -1) {\n nextPos = line.length;\n } else {\n nextPos = propValuePos;\n }\n pos = false;\n } else {\n lastParam = nextPos;\n pos = nextPos;\n }\n\n value = line.slice(valuePos, nextPos);\n }\n\n const length_before = value.length;\n value = parse._rfc6868Escape(value);\n valuePos += length_before - value.length;\n if (multiValue) {\n let delimiter = mvdelim || multiValue;\n value = parse._parseMultiValue(value, delimiter, type, [], null, designSet);\n } else {\n value = parse._parseValue(value, type, designSet);\n }\n\n if (multiValue && (lcname in result)) {\n if (Array.isArray(result[lcname])) {\n result[lcname].push(value);\n } else {\n result[lcname] = [\n result[lcname],\n value\n ];\n }\n } else {\n result[lcname] = value;\n }\n }\n return [result, value, valuePos];\n};\n\n/**\n * Internal helper for rfc6868. Exposing this on ICAL.parse so that\n * hackers can disable the rfc6868 parsing if the really need to.\n *\n * @function ICAL.parse._rfc6868Escape\n * @param {String} val The value to escape\n * @return {String} The escaped value\n */\nparse._rfc6868Escape = function(val) {\n return val.replace(/\\^['n^]/g, function(x) {\n return RFC6868_REPLACE_MAP$1[x];\n });\n};\n\n/**\n * Parse a multi value string. This function is used either for parsing\n * actual multi-value property's values, or for handling parameter values. It\n * can be used for both multi-value properties and structured value properties.\n *\n * @private\n * @function ICAL.parse._parseMultiValue\n * @param {String} buffer The buffer containing the full value\n * @param {String} delim The multi-value delimiter\n * @param {String} type The value type to be parsed\n * @param {Array.} result The array to append results to, varies on value type\n * @param {String} innerMulti The inner delimiter to split each value with\n * @param {designSet} designSet The design data for this value\n * @return {?|Array.} Either an array of results, or the first result\n */\nparse._parseMultiValue = function(buffer, delim, type, result, innerMulti, designSet, structuredValue) {\n let pos = 0;\n let lastPos = 0;\n let value;\n if (delim.length === 0) {\n return buffer;\n }\n\n // split each piece\n while ((pos = unescapedIndexOf(buffer, delim, lastPos)) !== -1) {\n value = buffer.slice(lastPos, pos);\n if (innerMulti) {\n value = parse._parseMultiValue(value, innerMulti, type, [], null, designSet, structuredValue);\n } else {\n value = parse._parseValue(value, type, designSet, structuredValue);\n }\n result.push(value);\n lastPos = pos + delim.length;\n }\n\n // on the last piece take the rest of string\n value = buffer.slice(lastPos);\n if (innerMulti) {\n value = parse._parseMultiValue(value, innerMulti, type, [], null, designSet, structuredValue);\n } else {\n value = parse._parseValue(value, type, designSet, structuredValue);\n }\n result.push(value);\n\n return result.length == 1 ? result[0] : result;\n};\n\n/**\n * Process a complete buffer of iCalendar/vCard data line by line, correctly\n * unfolding content. Each line will be processed with the given callback\n *\n * @private\n * @function ICAL.parse._eachLine\n * @param {String} buffer The buffer to process\n * @param {function(?String, String)} callback The callback for each line\n */\nparse._eachLine = function(buffer, callback) {\n let len = buffer.length;\n let lastPos = buffer.search(CHAR);\n let pos = lastPos;\n let line;\n let firstChar;\n\n let newlineOffset;\n\n do {\n pos = buffer.indexOf('\\n', lastPos) + 1;\n\n if (pos > 1 && buffer[pos - 2] === '\\r') {\n newlineOffset = 2;\n } else {\n newlineOffset = 1;\n }\n\n if (pos === 0) {\n pos = len;\n newlineOffset = 0;\n }\n\n firstChar = buffer[lastPos];\n\n if (firstChar === ' ' || firstChar === '\\t') {\n // add to line\n line += buffer.slice(lastPos + 1, pos - newlineOffset);\n } else {\n if (line)\n callback(null, line);\n // push line\n line = buffer.slice(lastPos, pos - newlineOffset);\n }\n\n lastPos = pos;\n } while (pos !== len);\n\n // extra ending line\n line = line.trim();\n\n if (line.length)\n callback(null, line);\n};\n\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch */\n\n\nconst OPTIONS = [\"tzid\", \"location\", \"tznames\", \"latitude\", \"longitude\"];\n\n/**\n * Timezone representation.\n *\n * @example\n * var vcalendar;\n * var timezoneComp = vcalendar.getFirstSubcomponent('vtimezone');\n * var tzid = timezoneComp.getFirstPropertyValue('tzid');\n *\n * var timezone = new ICAL.Timezone({\n * component: timezoneComp,\n * tzid\n * });\n *\n * @memberof ICAL\n */\nclass Timezone {\n static _compare_change_fn(a, b) {\n if (a.year < b.year) return -1;\n else if (a.year > b.year) return 1;\n\n if (a.month < b.month) return -1;\n else if (a.month > b.month) return 1;\n\n if (a.day < b.day) return -1;\n else if (a.day > b.day) return 1;\n\n if (a.hour < b.hour) return -1;\n else if (a.hour > b.hour) return 1;\n\n if (a.minute < b.minute) return -1;\n else if (a.minute > b.minute) return 1;\n\n if (a.second < b.second) return -1;\n else if (a.second > b.second) return 1;\n\n return 0;\n }\n\n /**\n * Convert the date/time from one zone to the next.\n *\n * @param {Time} tt The time to convert\n * @param {Timezone} from_zone The source zone to convert from\n * @param {Timezone} to_zone The target zone to convert to\n * @return {Time} The converted date/time object\n */\n static convert_time(tt, from_zone, to_zone) {\n if (tt.isDate ||\n from_zone.tzid == to_zone.tzid ||\n from_zone == Timezone.localTimezone ||\n to_zone == Timezone.localTimezone) {\n tt.zone = to_zone;\n return tt;\n }\n\n let utcOffset = from_zone.utcOffset(tt);\n tt.adjust(0, 0, 0, - utcOffset);\n\n utcOffset = to_zone.utcOffset(tt);\n tt.adjust(0, 0, 0, utcOffset);\n\n return null;\n }\n\n /**\n * Creates a new ICAL.Timezone instance from the passed data object.\n *\n * @param {Component|Object} aData options for class\n * @param {String|Component} aData.component\n * If aData is a simple object, then this member can be set to either a\n * string containing the component data, or an already parsed\n * ICAL.Component\n * @param {String} aData.tzid The timezone identifier\n * @param {String} aData.location The timezone locationw\n * @param {String} aData.tznames An alternative string representation of the\n * timezone\n * @param {Number} aData.latitude The latitude of the timezone\n * @param {Number} aData.longitude The longitude of the timezone\n */\n static fromData(aData) {\n let tt = new Timezone();\n return tt.fromData(aData);\n }\n\n /**\n * The instance describing the UTC timezone\n * @type {Timezone}\n * @constant\n * @instance\n */\n static #utcTimezone = null;\n static get utcTimezone() {\n if (!this.#utcTimezone) {\n this.#utcTimezone = Timezone.fromData({\n tzid: \"UTC\"\n });\n }\n return this.#utcTimezone;\n }\n\n /**\n * The instance describing the local timezone\n * @type {Timezone}\n * @constant\n * @instance\n */\n static #localTimezone = null;\n static get localTimezone() {\n if (!this.#localTimezone) {\n this.#localTimezone = Timezone.fromData({\n tzid: \"floating\"\n });\n }\n return this.#localTimezone;\n }\n\n /**\n * Adjust a timezone change object.\n * @private\n * @param {Object} change The timezone change object\n * @param {Number} days The extra amount of days\n * @param {Number} hours The extra amount of hours\n * @param {Number} minutes The extra amount of minutes\n * @param {Number} seconds The extra amount of seconds\n */\n static adjust_change(change, days, hours, minutes, seconds) {\n return Time.prototype.adjust.call(\n change,\n days,\n hours,\n minutes,\n seconds,\n change\n );\n }\n\n static _minimumExpansionYear = -1;\n static EXTRA_COVERAGE = 5;\n\n /**\n * Creates a new ICAL.Timezone instance, by passing in a tzid and component.\n *\n * @param {Component|Object} data options for class\n * @param {String|Component} data.component\n * If data is a simple object, then this member can be set to either a\n * string containing the component data, or an already parsed\n * ICAL.Component\n * @param {String} data.tzid The timezone identifier\n * @param {String} data.location The timezone locationw\n * @param {String} data.tznames An alternative string representation of the\n * timezone\n * @param {Number} data.latitude The latitude of the timezone\n * @param {Number} data.longitude The longitude of the timezone\n */\n constructor(data) {\n this.wrappedJSObject = this;\n this.fromData(data);\n }\n\n\n /**\n * Timezone identifier\n * @type {String}\n */\n tzid = \"\";\n\n /**\n * Timezone location\n * @type {String}\n */\n location = \"\";\n\n /**\n * Alternative timezone name, for the string representation\n * @type {String}\n */\n tznames = \"\";\n\n /**\n * The primary latitude for the timezone.\n * @type {Number}\n */\n latitude = 0.0;\n\n /**\n * The primary longitude for the timezone.\n * @type {Number}\n */\n longitude = 0.0;\n\n /**\n * The vtimezone component for this timezone.\n * @type {Component}\n */\n component = null;\n\n /**\n * The year this timezone has been expanded to. All timezone transition\n * dates until this year are known and can be used for calculation\n *\n * @private\n * @type {Number}\n */\n expandedUntilYear = 0;\n\n /**\n * The class identifier.\n * @constant\n * @type {String}\n * @default \"icaltimezone\"\n */\n icalclass = \"icaltimezone\";\n\n /**\n * Sets up the current instance using members from the passed data object.\n *\n * @param {Component|Object} aData options for class\n * @param {String|Component} aData.component\n * If aData is a simple object, then this member can be set to either a\n * string containing the component data, or an already parsed\n * ICAL.Component\n * @param {String} aData.tzid The timezone identifier\n * @param {String} aData.location The timezone locationw\n * @param {String} aData.tznames An alternative string representation of the\n * timezone\n * @param {Number} aData.latitude The latitude of the timezone\n * @param {Number} aData.longitude The longitude of the timezone\n */\n fromData(aData) {\n this.expandedUntilYear = 0;\n this.changes = [];\n\n if (aData instanceof Component) {\n // Either a component is passed directly\n this.component = aData;\n } else {\n // Otherwise the component may be in the data object\n if (aData && \"component\" in aData) {\n if (typeof aData.component == \"string\") {\n // If a string was passed, parse it as a component\n let jCal = parse(aData.component);\n this.component = new Component(jCal);\n } else if (aData.component instanceof Component) {\n // If it was a component already, then just set it\n this.component = aData.component;\n } else {\n // Otherwise just null out the component\n this.component = null;\n }\n }\n\n // Copy remaining passed properties\n for (let prop of OPTIONS) {\n if (aData && prop in aData) {\n this[prop] = aData[prop];\n }\n }\n }\n\n // If we have a component but no TZID, attempt to get it from the\n // component's properties.\n if (this.component instanceof Component && !this.tzid) {\n this.tzid = this.component.getFirstPropertyValue('tzid');\n }\n\n return this;\n }\n\n /**\n * Finds the utcOffset the given time would occur in this timezone.\n *\n * @param {Time} tt The time to check for\n * @return {Number} utc offset in seconds\n */\n utcOffset(tt) {\n if (this == Timezone.utcTimezone || this == Timezone.localTimezone) {\n return 0;\n }\n\n this._ensureCoverage(tt.year);\n\n if (!this.changes.length) {\n return 0;\n }\n\n let tt_change = {\n year: tt.year,\n month: tt.month,\n day: tt.day,\n hour: tt.hour,\n minute: tt.minute,\n second: tt.second\n };\n\n let change_num = this._findNearbyChange(tt_change);\n let change_num_to_use = -1;\n let step = 1;\n\n // TODO: replace with bin search?\n for (;;) {\n let change = clone(this.changes[change_num], true);\n if (change.utcOffset < change.prevUtcOffset) {\n Timezone.adjust_change(change, 0, 0, 0, change.utcOffset);\n } else {\n Timezone.adjust_change(change, 0, 0, 0,\n change.prevUtcOffset);\n }\n\n let cmp = Timezone._compare_change_fn(tt_change, change);\n\n if (cmp >= 0) {\n change_num_to_use = change_num;\n } else {\n step = -1;\n }\n\n if (step == -1 && change_num_to_use != -1) {\n break;\n }\n\n change_num += step;\n\n if (change_num < 0) {\n return 0;\n }\n\n if (change_num >= this.changes.length) {\n break;\n }\n }\n\n let zone_change = this.changes[change_num_to_use];\n let utcOffset_change = zone_change.utcOffset - zone_change.prevUtcOffset;\n\n if (utcOffset_change < 0 && change_num_to_use > 0) {\n let tmp_change = clone(zone_change, true);\n Timezone.adjust_change(tmp_change, 0, 0, 0, tmp_change.prevUtcOffset);\n\n if (Timezone._compare_change_fn(tt_change, tmp_change) < 0) {\n let prev_zone_change = this.changes[change_num_to_use - 1];\n\n let want_daylight = false; // TODO\n\n if (zone_change.is_daylight != want_daylight &&\n prev_zone_change.is_daylight == want_daylight) {\n zone_change = prev_zone_change;\n }\n }\n }\n\n // TODO return is_daylight?\n return zone_change.utcOffset;\n }\n\n _findNearbyChange(change) {\n // find the closest match\n let idx = binsearchInsert(\n this.changes,\n change,\n Timezone._compare_change_fn\n );\n\n if (idx >= this.changes.length) {\n return this.changes.length - 1;\n }\n\n return idx;\n }\n\n _ensureCoverage(aYear) {\n if (Timezone._minimumExpansionYear == -1) {\n let today = Time.now();\n Timezone._minimumExpansionYear = today.year;\n }\n\n let changesEndYear = aYear;\n if (changesEndYear < Timezone._minimumExpansionYear) {\n changesEndYear = Timezone._minimumExpansionYear;\n }\n\n changesEndYear += Timezone.EXTRA_COVERAGE;\n\n if (!this.changes.length || this.expandedUntilYear < aYear) {\n let subcomps = this.component.getAllSubcomponents();\n let compLen = subcomps.length;\n let compIdx = 0;\n\n for (; compIdx < compLen; compIdx++) {\n this._expandComponent(\n subcomps[compIdx], changesEndYear, this.changes\n );\n }\n\n this.changes.sort(Timezone._compare_change_fn);\n this.expandedUntilYear = changesEndYear;\n }\n }\n\n _expandComponent(aComponent, aYear, changes) {\n if (!aComponent.hasProperty(\"dtstart\") ||\n !aComponent.hasProperty(\"tzoffsetto\") ||\n !aComponent.hasProperty(\"tzoffsetfrom\")) {\n return null;\n }\n\n let dtstart = aComponent.getFirstProperty(\"dtstart\").getFirstValue();\n let change;\n\n function convert_tzoffset(offset) {\n return offset.factor * (offset.hours * 3600 + offset.minutes * 60);\n }\n\n function init_changes() {\n let changebase = {};\n changebase.is_daylight = (aComponent.name == \"daylight\");\n changebase.utcOffset = convert_tzoffset(\n aComponent.getFirstProperty(\"tzoffsetto\").getFirstValue()\n );\n\n changebase.prevUtcOffset = convert_tzoffset(\n aComponent.getFirstProperty(\"tzoffsetfrom\").getFirstValue()\n );\n\n return changebase;\n }\n\n if (!aComponent.hasProperty(\"rrule\") && !aComponent.hasProperty(\"rdate\")) {\n change = init_changes();\n change.year = dtstart.year;\n change.month = dtstart.month;\n change.day = dtstart.day;\n change.hour = dtstart.hour;\n change.minute = dtstart.minute;\n change.second = dtstart.second;\n\n Timezone.adjust_change(change, 0, 0, 0, -change.prevUtcOffset);\n changes.push(change);\n } else {\n let props = aComponent.getAllProperties(\"rdate\");\n for (let rdate of props) {\n let time = rdate.getFirstValue();\n change = init_changes();\n\n change.year = time.year;\n change.month = time.month;\n change.day = time.day;\n\n if (time.isDate) {\n change.hour = dtstart.hour;\n change.minute = dtstart.minute;\n change.second = dtstart.second;\n\n if (dtstart.zone != Timezone.utcTimezone) {\n Timezone.adjust_change(change, 0, 0, 0, -change.prevUtcOffset);\n }\n } else {\n change.hour = time.hour;\n change.minute = time.minute;\n change.second = time.second;\n\n if (time.zone != Timezone.utcTimezone) {\n Timezone.adjust_change(change, 0, 0, 0, -change.prevUtcOffset);\n }\n }\n\n changes.push(change);\n }\n\n let rrule = aComponent.getFirstProperty(\"rrule\");\n\n if (rrule) {\n rrule = rrule.getFirstValue();\n change = init_changes();\n\n if (rrule.until && rrule.until.zone == Timezone.utcTimezone) {\n rrule.until.adjust(0, 0, 0, change.prevUtcOffset);\n rrule.until.zone = Timezone.localTimezone;\n }\n\n let iterator = rrule.iterator(dtstart);\n\n let occ;\n while ((occ = iterator.next())) {\n change = init_changes();\n if (occ.year > aYear || !occ) {\n break;\n }\n\n change.year = occ.year;\n change.month = occ.month;\n change.day = occ.day;\n change.hour = occ.hour;\n change.minute = occ.minute;\n change.second = occ.second;\n change.isDate = occ.isDate;\n\n Timezone.adjust_change(change, 0, 0, 0, -change.prevUtcOffset);\n changes.push(change);\n }\n }\n }\n\n return changes;\n }\n\n /**\n * The string representation of this timezone.\n * @return {String}\n */\n toString() {\n return (this.tznames ? this.tznames : this.tzid);\n }\n}\n\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch */\n\n\nlet zones = null;\n\n/**\n * @classdesc\n * Singleton class to contain timezones. Right now it is all manual registry in\n * the future we may use this class to download timezone information or handle\n * loading pre-expanded timezones.\n *\n * @exports module:ICAL.TimezoneService\n * @memberof ICAL\n */\nconst TimezoneService = {\n get count() {\n if (zones === null) {\n return 0;\n }\n\n return Object.keys(zones).length;\n },\n\n reset: function() {\n zones = Object.create(null);\n let utc = Timezone.utcTimezone;\n\n zones.Z = utc;\n zones.UTC = utc;\n zones.GMT = utc;\n },\n _hard_reset: function() {\n zones = null;\n },\n\n /**\n * Checks if timezone id has been registered.\n *\n * @param {String} tzid Timezone identifier (e.g. America/Los_Angeles)\n * @return {Boolean} False, when not present\n */\n has: function(tzid) {\n if (zones === null) {\n return false;\n }\n\n return !!zones[tzid];\n },\n\n /**\n * Returns a timezone by its tzid if present.\n *\n * @param {String} tzid Timezone identifier (e.g. America/Los_Angeles)\n * @return {Timezone | undefined} The timezone, or undefined if not found\n */\n get: function(tzid) {\n if (zones === null) {\n this.reset();\n }\n\n return zones[tzid];\n },\n\n /**\n * Registers a timezone object or component.\n *\n * @param {Component|Timezone} timezone\n * The initialized zone or vtimezone.\n *\n * @param {String=} name\n * The name of the timezone. Defaults to the component's TZID if not\n * passed.\n */\n register: function(timezone, name) {\n if (zones === null) {\n this.reset();\n }\n\n // This avoids a breaking change by the change of argument order\n // TODO remove in v3\n if (typeof timezone === \"string\" && name instanceof Timezone) {\n [timezone, name] = [name, timezone];\n }\n\n if (!name) {\n if (timezone instanceof Timezone) {\n name = timezone.tzid;\n } else {\n if (timezone.name === 'vtimezone') {\n timezone = new Timezone(timezone);\n name = timezone.tzid;\n }\n }\n }\n\n if (!name) {\n throw new TypeError(\"Neither a timezone nor a name was passed\");\n }\n\n if (timezone instanceof Timezone) {\n zones[name] = timezone;\n } else {\n throw new TypeError('timezone must be ICAL.Timezone or ICAL.Component');\n }\n },\n\n /**\n * Removes a timezone by its tzid from the list.\n *\n * @param {String} tzid Timezone identifier (e.g. America/Los_Angeles)\n * @return {?Timezone} The removed timezone, or null if not registered\n */\n remove: function(tzid) {\n if (zones === null) {\n return null;\n }\n\n return (delete zones[tzid]);\n }\n};\n\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch */\n\n\n/**\n * Helper functions used in various places within ical.js\n * @module ICAL.helpers\n */\n\n/**\n * Compiles a list of all referenced TZIDs in all subcomponents and\n * removes any extra VTIMEZONE subcomponents. In addition, if any TZIDs\n * are referenced by a component, but a VTIMEZONE does not exist,\n * an attempt will be made to generate a VTIMEZONE using ICAL.TimezoneService.\n *\n * @param {Component} vcal The top-level VCALENDAR component.\n * @return {Component} The ICAL.Component that was passed in.\n */\nfunction updateTimezones(vcal) {\n let allsubs, properties, vtimezones, reqTzid, i;\n\n if (!vcal || vcal.name !== \"vcalendar\") {\n //not a top-level vcalendar component\n return vcal;\n }\n\n //Store vtimezone subcomponents in an object reference by tzid.\n //Store properties from everything else in another array\n allsubs = vcal.getAllSubcomponents();\n properties = [];\n vtimezones = {};\n for (i = 0; i < allsubs.length; i++) {\n if (allsubs[i].name === \"vtimezone\") {\n let tzid = allsubs[i].getFirstProperty(\"tzid\").getFirstValue();\n vtimezones[tzid] = allsubs[i];\n } else {\n properties = properties.concat(allsubs[i].getAllProperties());\n }\n }\n\n //create an object with one entry for each required tz\n reqTzid = {};\n for (i = 0; i < properties.length; i++) {\n let tzid = properties[i].getParameter(\"tzid\");\n if (tzid) {\n reqTzid[tzid] = true;\n }\n }\n\n //delete any vtimezones that are not on the reqTzid list.\n for (let [tzid, comp] of Object.entries(vtimezones)) {\n if (!reqTzid[tzid]) {\n vcal.removeSubcomponent(comp);\n }\n }\n\n //create any missing, but registered timezones\n for (let tzid of Object.keys(reqTzid)) {\n if (!vtimezones[tzid] && TimezoneService.has(tzid)) {\n vcal.addSubcomponent(TimezoneService.get(tzid).component);\n }\n }\n\n return vcal;\n}\n\n/**\n * Checks if the given type is of the number type and also NaN.\n *\n * @param {Number} number The number to check\n * @return {Boolean} True, if the number is strictly NaN\n */\nfunction isStrictlyNaN(number) {\n return typeof(number) === 'number' && isNaN(number);\n}\n\n/**\n * Parses a string value that is expected to be an integer, when the valid is\n * not an integer throws a decoration error.\n *\n * @param {String} string Raw string input\n * @return {Number} Parsed integer\n */\nfunction strictParseInt(string) {\n let result = parseInt(string, 10);\n\n if (isStrictlyNaN(result)) {\n throw new Error(\n 'Could not extract integer from \"' + string + '\"'\n );\n }\n\n return result;\n}\n\n/**\n * Creates or returns a class instance of a given type with the initialization\n * data if the data is not already an instance of the given type.\n *\n * @example\n * var time = new ICAL.Time(...);\n * var result = ICAL.helpers.formatClassType(time, ICAL.Time);\n *\n * (result instanceof ICAL.Time)\n * // => true\n *\n * result = ICAL.helpers.formatClassType({}, ICAL.Time);\n * (result isntanceof ICAL.Time)\n * // => true\n *\n *\n * @param {Object} data object initialization data\n * @param {Object} type object type (like ICAL.Time)\n * @return {?} An instance of the found type.\n */\nfunction formatClassType(data, type) {\n if (typeof(data) === 'undefined') {\n return undefined;\n }\n\n if (data instanceof type) {\n return data;\n }\n return new type(data);\n}\n\n/**\n * Identical to indexOf but will only match values when they are not preceded\n * by a backslash character.\n *\n * @param {String} buffer String to search\n * @param {String} search Value to look for\n * @param {Number} pos Start position\n * @return {Number} The position, or -1 if not found\n */\nfunction unescapedIndexOf(buffer, search, pos) {\n while ((pos = buffer.indexOf(search, pos)) !== -1) {\n if (pos > 0 && buffer[pos - 1] === '\\\\') {\n pos += 1;\n } else {\n return pos;\n }\n }\n return -1;\n}\n\n/**\n * Find the index for insertion using binary search.\n *\n * @param {Array} list The list to search\n * @param {?} seekVal The value to insert\n * @param {function(?,?)} cmpfunc The comparison func, that can\n * compare two seekVals\n * @return {Number} The insert position\n */\nfunction binsearchInsert(list, seekVal, cmpfunc) {\n if (!list.length)\n return 0;\n\n let low = 0, high = list.length - 1,\n mid, cmpval;\n\n while (low <= high) {\n mid = low + Math.floor((high - low) / 2);\n cmpval = cmpfunc(seekVal, list[mid]);\n\n if (cmpval < 0)\n high = mid - 1;\n else if (cmpval > 0)\n low = mid + 1;\n else\n break;\n }\n\n if (cmpval < 0)\n return mid; // insertion is displacing, so use mid outright.\n else if (cmpval > 0)\n return mid + 1;\n else\n return mid;\n}\n\n/**\n * Clone the passed object or primitive. By default a shallow clone will be\n * executed.\n *\n * @param {*} aSrc The thing to clone\n * @param {Boolean=} aDeep If true, a deep clone will be performed\n * @return {*} The copy of the thing\n */\nfunction clone(aSrc, aDeep) {\n if (!aSrc || typeof aSrc != \"object\") {\n return aSrc;\n } else if (aSrc instanceof Date) {\n return new Date(aSrc.getTime());\n } else if (\"clone\" in aSrc) {\n return aSrc.clone();\n } else if (Array.isArray(aSrc)) {\n let arr = [];\n for (let i = 0; i < aSrc.length; i++) {\n arr.push(aDeep ? clone(aSrc[i], true) : aSrc[i]);\n }\n return arr;\n } else {\n let obj = {};\n for (let [name, value] of Object.entries(aSrc)) {\n if (aDeep) {\n obj[name] = clone(value, true);\n } else {\n obj[name] = value;\n }\n }\n return obj;\n }\n}\n\n/**\n * Performs iCalendar line folding. A line ending character is inserted and\n * the next line begins with a whitespace.\n *\n * @example\n * SUMMARY:This line will be fold\n * ed right in the middle of a word.\n *\n * @param {String} aLine The line to fold\n * @return {String} The folded line\n */\nfunction foldline(aLine) {\n let result = \"\";\n let line = aLine || \"\", pos = 0, line_length = 0;\n //pos counts position in line for the UTF-16 presentation\n //line_length counts the bytes for the UTF-8 presentation\n while (line.length) {\n let cp = line.codePointAt(pos);\n if (cp < 128) ++line_length;\n else if (cp < 2048) line_length += 2;//needs 2 UTF-8 bytes\n else if (cp < 65536) line_length += 3;\n else line_length += 4; //cp is less than 1114112\n if (line_length < ICALmodule.foldLength + 1)\n pos += cp > 65535 ? 2 : 1;\n else {\n result += ICALmodule.newLineChar + \" \" + line.slice(0, Math.max(0, pos));\n line = line.slice(Math.max(0, pos));\n pos = line_length = 0;\n }\n }\n return result.slice(ICALmodule.newLineChar.length + 1);\n}\n\n/**\n * Pads the given string or number with zeros so it will have at least two\n * characters.\n *\n * @param {String|Number} data The string or number to pad\n * @return {String} The number padded as a string\n */\nfunction pad2(data) {\n if (typeof(data) !== 'string') {\n // handle fractions.\n if (typeof(data) === 'number') {\n data = parseInt(data);\n }\n data = String(data);\n }\n\n let len = data.length;\n\n switch (len) {\n case 0:\n return '00';\n case 1:\n return '0' + data;\n default:\n return data;\n }\n}\n\n/**\n * Truncates the given number, correctly handling negative numbers.\n *\n * @param {Number} number The number to truncate\n * @return {Number} The truncated number\n */\nfunction trunc(number) {\n return (number < 0 ? Math.ceil(number) : Math.floor(number));\n}\n\n/**\n * Poor-man's cross-browser object extension. Doesn't support all the\n * features, but enough for our usage. Note that the target's properties are\n * not overwritten with the source properties.\n *\n * @example\n * var child = ICAL.helpers.extend(parent, {\n * \"bar\": 123\n * });\n *\n * @param {Object} source The object to extend\n * @param {Object} target The object to extend with\n * @return {Object} Returns the target.\n */\nfunction extend(source, target) {\n for (let key in source) {\n let descr = Object.getOwnPropertyDescriptor(source, key);\n if (descr && !Object.getOwnPropertyDescriptor(target, key)) {\n Object.defineProperty(target, key, descr);\n }\n }\n return target;\n}\n\nvar helpers = /*#__PURE__*/Object.freeze({\n __proto__: null,\n binsearchInsert: binsearchInsert,\n clone: clone,\n extend: extend,\n foldline: foldline,\n formatClassType: formatClassType,\n isStrictlyNaN: isStrictlyNaN,\n pad2: pad2,\n strictParseInt: strictParseInt,\n trunc: trunc,\n unescapedIndexOf: unescapedIndexOf,\n updateTimezones: updateTimezones\n});\n\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch */\n\n\n/**\n * This class represents the \"utc-offset\" value type, with various calculation and manipulation\n * methods.\n *\n * @memberof ICAL\n */\nclass UtcOffset {\n /**\n * Creates a new {@link ICAL.UtcOffset} instance from the passed string.\n *\n * @param {String} aString The string to parse\n * @return {Duration} The created utc-offset instance\n */\n static fromString(aString) {\n // -05:00\n let options = {};\n //TODO: support seconds per rfc5545 ?\n options.factor = (aString[0] === '+') ? 1 : -1;\n options.hours = strictParseInt(aString.slice(1, 3));\n options.minutes = strictParseInt(aString.slice(4, 6));\n\n return new UtcOffset(options);\n }\n\n /**\n * Creates a new {@link ICAL.UtcOffset} instance from the passed seconds\n * value.\n *\n * @param {Number} aSeconds The number of seconds to convert\n */\n static fromSeconds(aSeconds) {\n let instance = new UtcOffset();\n instance.fromSeconds(aSeconds);\n return instance;\n }\n\n /**\n * Creates a new ICAL.UtcOffset instance.\n *\n * @param {Object} aData An object with members of the utc offset\n * @param {Number=} aData.hours The hours for the utc offset\n * @param {Number=} aData.minutes The minutes in the utc offset\n * @param {Number=} aData.factor The factor for the utc-offset, either -1 or 1\n */\n constructor(aData) {\n this.fromData(aData);\n }\n\n /**\n * The hours in the utc-offset\n * @type {Number}\n */\n hours = 0;\n\n /**\n * The minutes in the utc-offset\n * @type {Number}\n */\n minutes = 0;\n\n /**\n * The sign of the utc offset, 1 for positive offset, -1 for negative\n * offsets.\n * @type {Number}\n */\n factor = 1;\n\n /**\n * The type name, to be used in the jCal object.\n * @constant\n * @type {String}\n * @default \"utc-offset\"\n */\n icaltype = \"utc-offset\";\n\n /**\n * Returns a clone of the utc offset object.\n *\n * @return {UtcOffset} The cloned object\n */\n clone() {\n return UtcOffset.fromSeconds(this.toSeconds());\n }\n\n /**\n * Sets up the current instance using members from the passed data object.\n *\n * @param {Object} aData An object with members of the utc offset\n * @param {Number=} aData.hours The hours for the utc offset\n * @param {Number=} aData.minutes The minutes in the utc offset\n * @param {Number=} aData.factor The factor for the utc-offset, either -1 or 1\n */\n fromData(aData) {\n if (aData) {\n for (let [key, value] of Object.entries(aData)) {\n this[key] = value;\n }\n }\n this._normalize();\n }\n\n /**\n * Sets up the current instance from the given seconds value. The seconds\n * value is truncated to the minute. Offsets are wrapped when the world\n * ends, the hour after UTC+14:00 is UTC-12:00.\n *\n * @param {Number} aSeconds The seconds to convert into an offset\n */\n fromSeconds(aSeconds) {\n let secs = Math.abs(aSeconds);\n\n this.factor = aSeconds < 0 ? -1 : 1;\n this.hours = trunc(secs / 3600);\n\n secs -= (this.hours * 3600);\n this.minutes = trunc(secs / 60);\n return this;\n }\n\n /**\n * Convert the current offset to a value in seconds\n *\n * @return {Number} The offset in seconds\n */\n toSeconds() {\n return this.factor * (60 * this.minutes + 3600 * this.hours);\n }\n\n /**\n * Compare this utc offset with another one.\n *\n * @param {UtcOffset} other The other offset to compare with\n * @return {Number} -1, 0 or 1 for less/equal/greater\n */\n compare(other) {\n let a = this.toSeconds();\n let b = other.toSeconds();\n return (a > b) - (b > a);\n }\n\n _normalize() {\n // Range: 97200 seconds (with 1 hour inbetween)\n let secs = this.toSeconds();\n let factor = this.factor;\n while (secs < -43200) { // = UTC-12:00\n secs += 97200;\n }\n while (secs > 50400) { // = UTC+14:00\n secs -= 97200;\n }\n\n this.fromSeconds(secs);\n\n // Avoid changing the factor when on zero seconds\n if (secs == 0) {\n this.factor = factor;\n }\n }\n\n /**\n * The iCalendar string representation of this utc-offset.\n * @return {String}\n */\n toICALString() {\n return design.icalendar.value['utc-offset'].toICAL(this.toString());\n }\n\n /**\n * The string representation of this utc-offset.\n * @return {String}\n */\n toString() {\n return (this.factor == 1 ? \"+\" : \"-\") + pad2(this.hours) + ':' + pad2(this.minutes);\n }\n}\n\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch */\n\n\n/**\n * Describes a vCard time, which has slight differences to the ICAL.Time.\n * Properties can be null if not specified, for example for dates with\n * reduced accuracy or truncation.\n *\n * Note that currently not all methods are correctly re-implemented for\n * VCardTime. For example, comparison will have undefined results when some\n * members are null.\n *\n * Also, normalization is not yet implemented for this class!\n *\n * @memberof ICAL\n * @extends {Time}\n */\nclass VCardTime extends Time {\n /**\n * Returns a new ICAL.VCardTime instance from a date and/or time string.\n *\n * @param {String} aValue The string to create from\n * @param {String} aIcalType The type for this instance, e.g. date-and-or-time\n * @return {VCardTime} The date/time instance\n */\n static fromDateAndOrTimeString(aValue, aIcalType) {\n function part(v, s, e) {\n return v ? strictParseInt(v.slice(s, s + e)) : null;\n }\n let parts = aValue.split('T');\n let dt = parts[0], tmz = parts[1];\n let splitzone = tmz ? design.vcard.value.time._splitZone(tmz) : [];\n let zone = splitzone[0], tm = splitzone[1];\n\n let dtlen = dt ? dt.length : 0;\n let tmlen = tm ? tm.length : 0;\n\n let hasDashDate = dt && dt[0] == '-' && dt[1] == '-';\n let hasDashTime = tm && tm[0] == '-';\n\n let o = {\n year: hasDashDate ? null : part(dt, 0, 4),\n month: hasDashDate && (dtlen == 4 || dtlen == 7) ? part(dt, 2, 2) : dtlen == 7 ? part(dt, 5, 2) : dtlen == 10 ? part(dt, 5, 2) : null,\n day: dtlen == 5 ? part(dt, 3, 2) : dtlen == 7 && hasDashDate ? part(dt, 5, 2) : dtlen == 10 ? part(dt, 8, 2) : null,\n\n hour: hasDashTime ? null : part(tm, 0, 2),\n minute: hasDashTime && tmlen == 3 ? part(tm, 1, 2) : tmlen > 4 ? hasDashTime ? part(tm, 1, 2) : part(tm, 3, 2) : null,\n second: tmlen == 4 ? part(tm, 2, 2) : tmlen == 6 ? part(tm, 4, 2) : tmlen == 8 ? part(tm, 6, 2) : null\n };\n\n if (zone == 'Z') {\n zone = Timezone.utcTimezone;\n } else if (zone && zone[3] == ':') {\n zone = UtcOffset.fromString(zone);\n } else {\n zone = null;\n }\n\n return new VCardTime(o, zone, aIcalType);\n }\n\n\n /**\n * Creates a new ICAL.VCardTime instance.\n *\n * @param {Object} data The data for the time instance\n * @param {Number=} data.year The year for this date\n * @param {Number=} data.month The month for this date\n * @param {Number=} data.day The day for this date\n * @param {Number=} data.hour The hour for this date\n * @param {Number=} data.minute The minute for this date\n * @param {Number=} data.second The second for this date\n * @param {Timezone|UtcOffset} zone The timezone to use\n * @param {String} icaltype The type for this date/time object\n */\n constructor(data, zone, icaltype) {\n super(data, zone);\n this.icaltype = icaltype || \"date-and-or-time\";\n }\n\n /**\n * The class identifier.\n * @constant\n * @type {String}\n * @default \"vcardtime\"\n */\n icalclass = \"vcardtime\";\n\n /**\n * The type name, to be used in the jCal object.\n * @type {String}\n * @default \"date-and-or-time\"\n */\n icaltype = \"date-and-or-time\";\n\n /**\n * Returns a clone of the vcard date/time object.\n *\n * @return {VCardTime} The cloned object\n */\n clone() {\n return new VCardTime(this._time, this.zone, this.icaltype);\n }\n\n _normalize() {\n return this;\n }\n\n /**\n * @inheritdoc\n */\n utcOffset() {\n if (this.zone instanceof UtcOffset) {\n return this.zone.toSeconds();\n } else {\n return Time.prototype.utcOffset.apply(this, arguments);\n }\n }\n\n /**\n * Returns an RFC 6350 compliant representation of this object.\n *\n * @return {String} vcard date/time string\n */\n toICALString() {\n return design.vcard.value[this.icaltype].toICAL(this.toString());\n }\n\n /**\n * The string representation of this date/time, in jCard form\n * (including : and - separators).\n * @return {String}\n */\n toString() {\n let y = this.year, m = this.month, d = this.day;\n let h = this.hour, mm = this.minute, s = this.second;\n\n let hasYear = y !== null, hasMonth = m !== null, hasDay = d !== null;\n let hasHour = h !== null, hasMinute = mm !== null, hasSecond = s !== null;\n\n let datepart = (hasYear ? pad2(y) + (hasMonth || hasDay ? '-' : '') : (hasMonth || hasDay ? '--' : '')) +\n (hasMonth ? pad2(m) : '') +\n (hasDay ? '-' + pad2(d) : '');\n let timepart = (hasHour ? pad2(h) : '-') + (hasHour && hasMinute ? ':' : '') +\n (hasMinute ? pad2(mm) : '') + (!hasHour && !hasMinute ? '-' : '') +\n (hasMinute && hasSecond ? ':' : '') +\n (hasSecond ? pad2(s) : '');\n\n let zone;\n if (this.zone === Timezone.utcTimezone) {\n zone = 'Z';\n } else if (this.zone instanceof UtcOffset) {\n zone = this.zone.toString();\n } else if (this.zone === Timezone.localTimezone) {\n zone = '';\n } else if (this.zone instanceof Timezone) {\n let offset = UtcOffset.fromSeconds(this.zone.utcOffset(this));\n zone = offset.toString();\n } else {\n zone = '';\n }\n\n switch (this.icaltype) {\n case \"time\":\n return timepart + zone;\n case \"date-and-or-time\":\n case \"date-time\":\n return datepart + (timepart == '--' ? '' : 'T' + timepart + zone);\n case \"date\":\n return datepart;\n }\n return null;\n }\n}\n\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch */\n\n\n/**\n * This lets typescript resolve our custom types in the\n * generated d.ts files (jsdoc typedefs are converted to typescript types).\n * Ignore prevents the typedefs from being documented more than once.\n *\n * @ignore\n * @typedef {import(\"./types.js\").weekDay} weekDay\n * Imports the 'weekDay' type from the \"types.js\" module\n */\n\n/**\n * An iterator for a single recurrence rule. This class usually doesn't have to be instanciated\n * directly, the convenience method {@link ICAL.Recur#iterator} can be used.\n *\n * @memberof ICAL\n */\nclass RecurIterator {\n static _indexMap = {\n \"BYSECOND\": 0,\n \"BYMINUTE\": 1,\n \"BYHOUR\": 2,\n \"BYDAY\": 3,\n \"BYMONTHDAY\": 4,\n \"BYYEARDAY\": 5,\n \"BYWEEKNO\": 6,\n \"BYMONTH\": 7,\n \"BYSETPOS\": 8\n };\n\n static _expandMap = {\n \"SECONDLY\": [1, 1, 1, 1, 1, 1, 1, 1],\n \"MINUTELY\": [2, 1, 1, 1, 1, 1, 1, 1],\n \"HOURLY\": [2, 2, 1, 1, 1, 1, 1, 1],\n \"DAILY\": [2, 2, 2, 1, 1, 1, 1, 1],\n \"WEEKLY\": [2, 2, 2, 2, 3, 3, 1, 1],\n \"MONTHLY\": [2, 2, 2, 2, 2, 3, 3, 1],\n \"YEARLY\": [2, 2, 2, 2, 2, 2, 2, 2]\n };\n\n static UNKNOWN = 0;\n static CONTRACT = 1;\n static EXPAND = 2;\n static ILLEGAL = 3;\n\n /**\n * Creates a new ICAL.RecurIterator instance. The options object may contain additional members\n * when resuming iteration from a previous run.\n *\n * @param {Object} options The iterator options\n * @param {Recur} options.rule The rule to iterate.\n * @param {Time} options.dtstart The start date of the event.\n * @param {Boolean=} options.initialized When true, assume that options are\n * from a previously constructed iterator. Initialization will not be\n * repeated.\n */\n constructor(options) {\n this.fromData(options);\n }\n\n /**\n * True when iteration is finished.\n * @type {Boolean}\n */\n completed = false;\n\n /**\n * The rule that is being iterated\n * @type {Recur}\n */\n rule = null;\n\n /**\n * The start date of the event being iterated.\n * @type {Time}\n */\n dtstart = null;\n\n /**\n * The last occurrence that was returned from the\n * {@link RecurIterator#next} method.\n * @type {Time}\n */\n last = null;\n\n /**\n * The sequence number from the occurrence\n * @type {Number}\n */\n occurrence_number = 0;\n\n /**\n * The indices used for the {@link ICAL.RecurIterator#by_data} object.\n * @type {Object}\n * @private\n */\n by_indices = null;\n\n /**\n * If true, the iterator has already been initialized\n * @type {Boolean}\n * @private\n */\n initialized = false;\n\n /**\n * The initializd by-data.\n * @type {Object}\n * @private\n */\n by_data = null;\n\n /**\n * The expanded yeardays\n * @type {Array}\n * @private\n */\n days = null;\n\n /**\n * The index in the {@link ICAL.RecurIterator#days} array.\n * @type {Number}\n * @private\n */\n days_index = 0;\n\n /**\n * Initialize the recurrence iterator from the passed data object. This\n * method is usually not called directly, you can initialize the iterator\n * through the constructor.\n *\n * @param {Object} options The iterator options\n * @param {Recur} options.rule The rule to iterate.\n * @param {Time} options.dtstart The start date of the event.\n * @param {Boolean=} options.initialized When true, assume that options are\n * from a previously constructed iterator. Initialization will not be\n * repeated.\n */\n fromData(options) {\n this.rule = formatClassType(options.rule, Recur);\n\n if (!this.rule) {\n throw new Error('iterator requires a (ICAL.Recur) rule');\n }\n\n this.dtstart = formatClassType(options.dtstart, Time);\n\n if (!this.dtstart) {\n throw new Error('iterator requires a (ICAL.Time) dtstart');\n }\n\n if (options.by_data) {\n this.by_data = options.by_data;\n } else {\n this.by_data = clone(this.rule.parts, true);\n }\n\n if (options.occurrence_number)\n this.occurrence_number = options.occurrence_number;\n\n this.days = options.days || [];\n if (options.last) {\n this.last = formatClassType(options.last, Time);\n }\n\n this.by_indices = options.by_indices;\n\n if (!this.by_indices) {\n this.by_indices = {\n \"BYSECOND\": 0,\n \"BYMINUTE\": 0,\n \"BYHOUR\": 0,\n \"BYDAY\": 0,\n \"BYMONTH\": 0,\n \"BYWEEKNO\": 0,\n \"BYMONTHDAY\": 0\n };\n }\n\n this.initialized = options.initialized || false;\n\n if (!this.initialized) {\n try {\n this.init();\n } catch (e) {\n if (e instanceof InvalidRecurrenceRuleError) {\n // Init may error if there are no possible recurrence instances from\n // the rule, but we don't want to bubble this error up. Instead, we\n // create an empty iterator.\n this.completed = true;\n } else {\n // Propagate other errors to consumers.\n throw e;\n }\n }\n }\n }\n\n /**\n * Initialize the iterator\n * @private\n */\n init() {\n this.initialized = true;\n this.last = this.dtstart.clone();\n let parts = this.by_data;\n\n if (\"BYDAY\" in parts) {\n // libical does this earlier when the rule is loaded, but we postpone to\n // now so we can preserve the original order.\n this.sort_byday_rules(parts.BYDAY);\n }\n\n // The BYYEARDAY may only appear with BYDAY\n if (\"BYYEARDAY\" in parts) {\n if (\"BYMONTH\" in parts || \"BYWEEKNO\" in parts ||\n \"BYMONTHDAY\" in parts) {\n throw new Error(\"Invalid BYYEARDAY rule\");\n }\n }\n\n // BYWEEKNO and BYMONTHDAY rule parts may not both appear\n if (\"BYWEEKNO\" in parts && \"BYMONTHDAY\" in parts) {\n throw new Error(\"BYWEEKNO does not fit to BYMONTHDAY\");\n }\n\n // For MONTHLY recurrences (FREQ=MONTHLY) neither BYYEARDAY nor\n // BYWEEKNO may appear.\n if (this.rule.freq == \"MONTHLY\" &&\n (\"BYYEARDAY\" in parts || \"BYWEEKNO\" in parts)) {\n throw new Error(\"For MONTHLY recurrences neither BYYEARDAY nor BYWEEKNO may appear\");\n }\n\n // For WEEKLY recurrences (FREQ=WEEKLY) neither BYMONTHDAY nor\n // BYYEARDAY may appear.\n if (this.rule.freq == \"WEEKLY\" &&\n (\"BYYEARDAY\" in parts || \"BYMONTHDAY\" in parts)) {\n throw new Error(\"For WEEKLY recurrences neither BYMONTHDAY nor BYYEARDAY may appear\");\n }\n\n // BYYEARDAY may only appear in YEARLY rules\n if (this.rule.freq != \"YEARLY\" && \"BYYEARDAY\" in parts) {\n throw new Error(\"BYYEARDAY may only appear in YEARLY rules\");\n }\n\n this.last.second = this.setup_defaults(\"BYSECOND\", \"SECONDLY\", this.dtstart.second);\n this.last.minute = this.setup_defaults(\"BYMINUTE\", \"MINUTELY\", this.dtstart.minute);\n this.last.hour = this.setup_defaults(\"BYHOUR\", \"HOURLY\", this.dtstart.hour);\n this.last.day = this.setup_defaults(\"BYMONTHDAY\", \"DAILY\", this.dtstart.day);\n this.last.month = this.setup_defaults(\"BYMONTH\", \"MONTHLY\", this.dtstart.month);\n\n if (this.rule.freq == \"WEEKLY\") {\n if (\"BYDAY\" in parts) {\n let [, dow] = this.ruleDayOfWeek(parts.BYDAY[0], this.rule.wkst);\n let wkdy = dow - this.last.dayOfWeek(this.rule.wkst);\n if ((this.last.dayOfWeek(this.rule.wkst) < dow && wkdy >= 0) || wkdy < 0) {\n // Initial time is after first day of BYDAY data\n this.last.day += wkdy;\n }\n } else {\n let dayName = Recur.numericDayToIcalDay(this.dtstart.dayOfWeek());\n parts.BYDAY = [dayName];\n }\n }\n\n if (this.rule.freq == \"YEARLY\") {\n // Some yearly recurrence rules may be specific enough to not actually\n // occur on a yearly basis, e.g. the 29th day of February or the fifth\n // Monday of a given month. The standard isn't clear on the intended\n // behavior in these cases, but `libical` at least will iterate until it\n // finds a matching year.\n // CAREFUL: Some rules may specify an occurrence that can never happen,\n // e.g. the first Monday of April so long as it falls on the 15th\n // through the 21st. Detecting these is non-trivial, so ensure that we\n // stop iterating at some point.\n const untilYear = this.rule.until ? this.rule.until.year : 20000;\n while (this.last.year <= untilYear) {\n this.expand_year_days(this.last.year);\n if (this.days.length > 0) {\n break;\n }\n this.increment_year(this.rule.interval);\n }\n\n if (this.days.length == 0) {\n throw new InvalidRecurrenceRuleError();\n }\n\n // If there's no occurrence in this year, try the following years. This\n // would only happen looking for day 366 or -366.\n if (!this._nextByYearDay() && !this.next_year() && !this.next_year() && !this.next_year()) {\n // This should not be possible, but just in case it is, stop.\n throw new InvalidRecurrenceRuleError();\n }\n }\n\n if (this.rule.freq == \"MONTHLY\") {\n if (this.has_by_data(\"BYDAY\")) {\n let tempLast = null;\n let initLast = this.last.clone();\n let daysInMonth = Time.daysInMonth(this.last.month, this.last.year);\n\n // Check every weekday in BYDAY with relative dow and pos.\n for (let bydow of this.by_data.BYDAY) {\n this.last = initLast.clone();\n let [pos, dow] = this.ruleDayOfWeek(bydow);\n let dayOfMonth = this.last.nthWeekDay(dow, pos);\n\n // If |pos| >= 6, the byday is invalid for a monthly rule.\n if (pos >= 6 || pos <= -6) {\n throw new Error(\"Malformed values in BYDAY part\");\n }\n\n // If a Byday with pos=+/-5 is not in the current month it\n // must be searched in the next months.\n if (dayOfMonth > daysInMonth || dayOfMonth <= 0) {\n // Skip if we have already found a \"last\" in this month.\n if (tempLast && tempLast.month == initLast.month) {\n continue;\n }\n while (dayOfMonth > daysInMonth || dayOfMonth <= 0) {\n this.increment_month();\n daysInMonth = Time.daysInMonth(this.last.month, this.last.year);\n dayOfMonth = this.last.nthWeekDay(dow, pos);\n }\n }\n\n this.last.day = dayOfMonth;\n if (!tempLast || this.last.compare(tempLast) < 0) {\n tempLast = this.last.clone();\n }\n }\n this.last = tempLast.clone();\n\n //XXX: This feels like a hack, but we need to initialize\n // the BYMONTHDAY case correctly and byDayAndMonthDay handles\n // this case. It accepts a special flag which will avoid incrementing\n // the initial value without the flag days that match the start time\n // would be missed.\n if (this.has_by_data('BYMONTHDAY')) {\n this._byDayAndMonthDay(true);\n }\n\n if (this.last.day > daysInMonth || this.last.day == 0) {\n throw new Error(\"Malformed values in BYDAY part\");\n }\n } else if (this.has_by_data(\"BYMONTHDAY\")) {\n // Change the day value so that normalisation won't change the month.\n this.last.day = 1;\n\n // Get a sorted list of days in the starting month that match the rule.\n let normalized = this.normalizeByMonthDayRules(\n this.last.year,\n this.last.month,\n this.rule.parts.BYMONTHDAY\n ).filter(d => d >= this.last.day);\n\n if (normalized.length) {\n // There's at least one valid day, use it.\n this.last.day = normalized[0];\n this.by_data.BYMONTHDAY = normalized;\n } else {\n // There's no occurrence in this month, find the next valid month.\n // The longest possible sequence of skipped months is February-April-June,\n // so we might need to call next_month up to three times.\n if (!this.next_month() && !this.next_month() && !this.next_month()) {\n throw new InvalidRecurrenceRuleError();\n }\n }\n }\n }\n }\n\n /**\n * Retrieve the next occurrence from the iterator.\n * @return {Time}\n */\n next(again = false) {\n let before = (this.last ? this.last.clone() : null);\n\n if ((this.rule.count && this.occurrence_number >= this.rule.count) ||\n (this.rule.until && this.last.compare(this.rule.until) > 0)) {\n this.completed = true;\n }\n\n if (this.completed) {\n return null;\n }\n\n if (this.occurrence_number == 0 && this.last.compare(this.dtstart) >= 0) {\n // First of all, give the instance that was initialized\n this.occurrence_number++;\n return this.last;\n }\n\n let valid;\n let invalid_count = 0;\n do {\n valid = 1;\n\n switch (this.rule.freq) {\n case \"SECONDLY\":\n this.next_second();\n break;\n case \"MINUTELY\":\n this.next_minute();\n break;\n case \"HOURLY\":\n this.next_hour();\n break;\n case \"DAILY\":\n this.next_day();\n break;\n case \"WEEKLY\":\n this.next_week();\n break;\n case \"MONTHLY\":\n valid = this.next_month();\n if (valid) {\n invalid_count = 0;\n } else if (++invalid_count == 336) {\n // We've been through all 91 month variations and not found a recurrence. Stop.\n // (12 months and 29-day February × 7 starting days.)\n this.completed = true;\n return null;\n }\n break;\n case \"YEARLY\":\n valid = this.next_year();\n if (valid) {\n invalid_count = 0;\n } else if (++invalid_count == 28) {\n // We've been through all 14 year variations and not found a recurrence. Stop.\n // (365-day and 366-day years × 7 starting days.)\n this.completed = true;\n return null;\n }\n break;\n\n default:\n return null;\n }\n } while (!this.check_contracting_rules() ||\n this.last.compare(this.dtstart) < 0 ||\n !valid);\n\n if (this.last.compare(before) == 0) {\n if (again) {\n throw new Error(\"Same occurrence found twice, protecting you from death by recursion\");\n }\n this.next(true);\n }\n\n if (this.rule.until && this.last.compare(this.rule.until) > 0) {\n this.completed = true;\n return null;\n } else {\n this.occurrence_number++;\n return this.last;\n }\n }\n\n next_second() {\n return this.next_generic(\"BYSECOND\", \"SECONDLY\", \"second\", \"minute\");\n }\n\n increment_second(inc) {\n return this.increment_generic(inc, \"second\", 60, \"minute\");\n }\n\n next_minute() {\n return this.next_generic(\"BYMINUTE\", \"MINUTELY\",\n \"minute\", \"hour\", \"next_second\");\n }\n\n increment_minute(inc) {\n return this.increment_generic(inc, \"minute\", 60, \"hour\");\n }\n\n next_hour() {\n return this.next_generic(\"BYHOUR\", \"HOURLY\", \"hour\",\n \"monthday\", \"next_minute\");\n }\n\n increment_hour(inc) {\n this.increment_generic(inc, \"hour\", 24, \"monthday\");\n }\n\n next_day() {\n let this_freq = (this.rule.freq == \"DAILY\");\n\n if (this.next_hour() == 0) {\n return 0;\n }\n\n if (this_freq) {\n this.increment_monthday(this.rule.interval);\n } else {\n this.increment_monthday(1);\n }\n\n return 0;\n }\n\n next_week() {\n let end_of_data = 0;\n\n if (this.next_weekday_by_week() == 0) {\n return end_of_data;\n }\n\n if (this.has_by_data(\"BYWEEKNO\")) {\n this.by_indices.BYWEEKNO++;\n\n if (this.by_indices.BYWEEKNO == this.by_data.BYWEEKNO.length) {\n this.by_indices.BYWEEKNO = 0;\n end_of_data = 1;\n }\n\n // HACK should be first month of the year\n this.last.month = 1;\n this.last.day = 1;\n\n let week_no = this.by_data.BYWEEKNO[this.by_indices.BYWEEKNO];\n\n this.last.day += 7 * week_no;\n\n if (end_of_data) {\n this.increment_year(1);\n }\n } else {\n // Jump to the next week\n this.increment_monthday(7 * this.rule.interval);\n }\n\n return end_of_data;\n }\n\n /**\n * Normalize each by day rule for a given year/month.\n * Takes into account ordering and negative rules\n *\n * @private\n * @param {Number} year Current year.\n * @param {Number} month Current month.\n * @param {Array} rules Array of rules.\n *\n * @return {Array} sorted and normalized rules.\n * Negative rules will be expanded to their\n * correct positive values for easier processing.\n */\n normalizeByMonthDayRules(year, month, rules) {\n let daysInMonth = Time.daysInMonth(month, year);\n\n // XXX: This is probably bad for performance to allocate\n // a new array for each month we scan, if possible\n // we should try to optimize this...\n let newRules = [];\n\n let ruleIdx = 0;\n let len = rules.length;\n let rule;\n\n for (; ruleIdx < len; ruleIdx++) {\n rule = parseInt(rules[ruleIdx], 10);\n if (isNaN(rule)) {\n throw new Error('Invalid BYMONTHDAY value');\n }\n\n // if this rule falls outside of given\n // month discard it.\n if (Math.abs(rule) > daysInMonth) {\n continue;\n }\n\n // negative case\n if (rule < 0) {\n // we add (not subtract it is a negative number)\n // one from the rule because 1 === last day of month\n rule = daysInMonth + (rule + 1);\n } else if (rule === 0) {\n // skip zero: it is invalid.\n continue;\n }\n\n // only add unique items...\n if (newRules.indexOf(rule) === -1) {\n newRules.push(rule);\n }\n\n }\n\n // unique and sort\n return newRules.sort(function(a, b) { return a - b; });\n }\n\n /**\n * NOTES:\n * We are given a list of dates in the month (BYMONTHDAY) (23, etc..)\n * Also we are given a list of days (BYDAY) (MO, 2SU, etc..) when\n * both conditions match a given date (this.last.day) iteration stops.\n *\n * @private\n * @param {Boolean=} isInit When given true will not increment the\n * current day (this.last).\n */\n _byDayAndMonthDay(isInit) {\n let byMonthDay; // setup in initMonth\n let byDay = this.by_data.BYDAY;\n\n let date;\n let dateIdx = 0;\n let dateLen; // setup in initMonth\n let dayLen = byDay.length;\n\n // we are not valid by default\n let dataIsValid = 0;\n\n let daysInMonth;\n let self = this;\n // we need a copy of this, because a DateTime gets normalized\n // automatically if the day is out of range. At some points we\n // set the last day to 0 to start counting.\n let lastDay = this.last.day;\n\n function initMonth() {\n daysInMonth = Time.daysInMonth(\n self.last.month, self.last.year\n );\n\n byMonthDay = self.normalizeByMonthDayRules(\n self.last.year,\n self.last.month,\n self.by_data.BYMONTHDAY\n );\n\n dateLen = byMonthDay.length;\n\n // For the case of more than one occurrence in one month\n // we have to be sure to start searching after the last\n // found date or at the last BYMONTHDAY, unless we are\n // initializing the iterator because in this case we have\n // to consider the last found date too.\n while (byMonthDay[dateIdx] <= lastDay &&\n !(isInit && byMonthDay[dateIdx] == lastDay) &&\n dateIdx < dateLen - 1) {\n dateIdx++;\n }\n }\n\n function nextMonth() {\n // since the day is incremented at the start\n // of the loop below, we need to start at 0\n lastDay = 0;\n self.increment_month();\n dateIdx = 0;\n initMonth();\n }\n\n initMonth();\n\n // should come after initMonth\n if (isInit) {\n lastDay -= 1;\n }\n\n // Use a counter to avoid an infinite loop with malformed rules.\n // Stop checking after 4 years so we consider also a leap year.\n let monthsCounter = 48;\n\n while (!dataIsValid && monthsCounter) {\n monthsCounter--;\n // increment the current date. This is really\n // important otherwise we may fall into the infinite\n // loop trap. The initial date takes care of the case\n // where the current date is the date we are looking\n // for.\n date = lastDay + 1;\n\n if (date > daysInMonth) {\n nextMonth();\n continue;\n }\n\n // find next date\n let next = byMonthDay[dateIdx++];\n\n // this logic is dependent on the BYMONTHDAYS\n // being in order (which is done by #normalizeByMonthDayRules)\n if (next >= date) {\n // if the next month day is in the future jump to it.\n lastDay = next;\n } else {\n // in this case the 'next' monthday has past\n // we must move to the month.\n nextMonth();\n continue;\n }\n\n // Now we can loop through the day rules to see\n // if one matches the current month date.\n for (let dayIdx = 0; dayIdx < dayLen; dayIdx++) {\n let parts = this.ruleDayOfWeek(byDay[dayIdx]);\n let pos = parts[0];\n let dow = parts[1];\n\n this.last.day = lastDay;\n if (this.last.isNthWeekDay(dow, pos)) {\n // when we find the valid one we can mark\n // the conditions as met and break the loop.\n // (Because we have this condition above\n // it will also break the parent loop).\n dataIsValid = 1;\n break;\n }\n }\n\n // It is completely possible that the combination\n // cannot be matched in the current month.\n // When we reach the end of possible combinations\n // in the current month we iterate to the next one.\n // since dateIdx is incremented right after getting\n // \"next\", we don't need dateLen -1 here.\n if (!dataIsValid && dateIdx === dateLen) {\n nextMonth();\n continue;\n }\n }\n\n if (monthsCounter <= 0) {\n // Checked 4 years without finding a Byday that matches\n // a Bymonthday. Maybe the rule is not correct.\n throw new Error(\"Malformed values in BYDAY combined with BYMONTHDAY parts\");\n }\n\n\n return dataIsValid;\n }\n\n next_month() {\n let data_valid = 1;\n\n if (this.next_hour() == 0) {\n return data_valid;\n }\n\n if (this.has_by_data(\"BYDAY\") && this.has_by_data(\"BYMONTHDAY\")) {\n data_valid = this._byDayAndMonthDay();\n } else if (this.has_by_data(\"BYDAY\")) {\n let daysInMonth = Time.daysInMonth(this.last.month, this.last.year);\n let setpos = 0;\n let setpos_total = 0;\n\n if (this.has_by_data(\"BYSETPOS\")) {\n let last_day = this.last.day;\n for (let day = 1; day <= daysInMonth; day++) {\n this.last.day = day;\n if (this.is_day_in_byday(this.last)) {\n setpos_total++;\n if (day <= last_day) {\n setpos++;\n }\n }\n }\n this.last.day = last_day;\n }\n\n data_valid = 0;\n let day;\n for (day = this.last.day + 1; day <= daysInMonth; day++) {\n this.last.day = day;\n\n if (this.is_day_in_byday(this.last)) {\n if (!this.has_by_data(\"BYSETPOS\") ||\n this.check_set_position(++setpos) ||\n this.check_set_position(setpos - setpos_total - 1)) {\n\n data_valid = 1;\n break;\n }\n }\n }\n\n if (day > daysInMonth) {\n this.last.day = 1;\n this.increment_month();\n\n if (this.is_day_in_byday(this.last)) {\n if (!this.has_by_data(\"BYSETPOS\") || this.check_set_position(1)) {\n data_valid = 1;\n }\n } else {\n data_valid = 0;\n }\n }\n } else if (this.has_by_data(\"BYMONTHDAY\")) {\n this.by_indices.BYMONTHDAY++;\n\n if (this.by_indices.BYMONTHDAY >= this.by_data.BYMONTHDAY.length) {\n this.by_indices.BYMONTHDAY = 0;\n this.increment_month();\n if (this.by_indices.BYMONTHDAY >= this.by_data.BYMONTHDAY.length) {\n return 0;\n }\n }\n\n let daysInMonth = Time.daysInMonth(this.last.month, this.last.year);\n let day = this.by_data.BYMONTHDAY[this.by_indices.BYMONTHDAY];\n\n if (day < 0) {\n day = daysInMonth + day + 1;\n }\n\n if (day > daysInMonth) {\n this.last.day = 1;\n data_valid = this.is_day_in_byday(this.last);\n } else {\n this.last.day = day;\n }\n } else {\n this.increment_month();\n let daysInMonth = Time.daysInMonth(this.last.month, this.last.year);\n if (this.by_data.BYMONTHDAY[0] > daysInMonth) {\n data_valid = 0;\n } else {\n this.last.day = this.by_data.BYMONTHDAY[0];\n }\n }\n\n return data_valid;\n }\n\n next_weekday_by_week() {\n let end_of_data = 0;\n\n if (this.next_hour() == 0) {\n return end_of_data;\n }\n\n if (!this.has_by_data(\"BYDAY\")) {\n return 1;\n }\n\n for (;;) {\n let tt = new Time();\n this.by_indices.BYDAY++;\n\n if (this.by_indices.BYDAY == Object.keys(this.by_data.BYDAY).length) {\n this.by_indices.BYDAY = 0;\n end_of_data = 1;\n }\n\n let coded_day = this.by_data.BYDAY[this.by_indices.BYDAY];\n let parts = this.ruleDayOfWeek(coded_day);\n let dow = parts[1];\n\n dow -= this.rule.wkst;\n\n if (dow < 0) {\n dow += 7;\n }\n\n tt.year = this.last.year;\n tt.month = this.last.month;\n tt.day = this.last.day;\n\n let startOfWeek = tt.startDoyWeek(this.rule.wkst);\n\n if (dow + startOfWeek < 1) {\n // The selected date is in the previous year\n if (!end_of_data) {\n continue;\n }\n }\n\n let next = Time.fromDayOfYear(startOfWeek + dow, this.last.year);\n\n /**\n * The normalization horrors below are due to\n * the fact that when the year/month/day changes\n * it can effect the other operations that come after.\n */\n this.last.year = next.year;\n this.last.month = next.month;\n this.last.day = next.day;\n\n return end_of_data;\n }\n }\n\n next_year() {\n if (this.next_hour() == 0) {\n return 0;\n }\n\n if (this.days.length == 0 || ++this.days_index == this.days.length) {\n this.days_index = 0;\n this.increment_year(this.rule.interval);\n if (this.has_by_data(\"BYMONTHDAY\")) {\n this.by_data.BYMONTHDAY = this.normalizeByMonthDayRules(\n this.last.year,\n this.last.month,\n this.rule.parts.BYMONTHDAY\n );\n }\n this.expand_year_days(this.last.year);\n if (this.days.length == 0) {\n return 0;\n }\n }\n\n return this._nextByYearDay();\n }\n\n _nextByYearDay() {\n let doy = this.days[this.days_index];\n let year = this.last.year;\n\n if (Math.abs(doy) == 366 && !Time.isLeapYear(this.last.year)) {\n return 0;\n }\n\n if (doy < 1) {\n // Time.fromDayOfYear(doy, year) indexes relative to the\n // start of the given year. That is different from the\n // semantics of BYYEARDAY where negative indexes are an\n // offset from the end of the given year.\n doy += 1;\n year += 1;\n }\n let next = Time.fromDayOfYear(doy, year);\n this.last.day = next.day;\n this.last.month = next.month;\n\n return 1;\n }\n\n /**\n * @param dow (eg: '1TU', '-1MO')\n * @param {weekDay=} aWeekStart The week start weekday\n * @return [pos, numericDow] (eg: [1, 3]) numericDow is relative to aWeekStart\n */\n ruleDayOfWeek(dow, aWeekStart) {\n let matches = dow.match(/([+-]?[0-9])?(MO|TU|WE|TH|FR|SA|SU)/);\n if (matches) {\n let pos = parseInt(matches[1] || 0, 10);\n dow = Recur.icalDayToNumericDay(matches[2], aWeekStart);\n return [pos, dow];\n } else {\n return [0, 0];\n }\n }\n\n next_generic(aRuleType, aInterval, aDateAttr, aFollowingAttr, aPreviousIncr) {\n let has_by_rule = (aRuleType in this.by_data);\n let this_freq = (this.rule.freq == aInterval);\n let end_of_data = 0;\n\n if (aPreviousIncr && this[aPreviousIncr]() == 0) {\n return end_of_data;\n }\n\n if (has_by_rule) {\n this.by_indices[aRuleType]++;\n let dta = this.by_data[aRuleType];\n\n if (this.by_indices[aRuleType] == dta.length) {\n this.by_indices[aRuleType] = 0;\n end_of_data = 1;\n }\n this.last[aDateAttr] = dta[this.by_indices[aRuleType]];\n } else if (this_freq) {\n this[\"increment_\" + aDateAttr](this.rule.interval);\n }\n\n if (has_by_rule && end_of_data && this_freq) {\n this[\"increment_\" + aFollowingAttr](1);\n }\n\n return end_of_data;\n }\n\n increment_monthday(inc) {\n for (let i = 0; i < inc; i++) {\n let daysInMonth = Time.daysInMonth(this.last.month, this.last.year);\n this.last.day++;\n\n if (this.last.day > daysInMonth) {\n this.last.day -= daysInMonth;\n this.increment_month();\n }\n }\n }\n\n increment_month() {\n this.last.day = 1;\n if (this.has_by_data(\"BYMONTH\")) {\n this.by_indices.BYMONTH++;\n\n if (this.by_indices.BYMONTH == this.by_data.BYMONTH.length) {\n this.by_indices.BYMONTH = 0;\n this.increment_year(1);\n }\n\n this.last.month = this.by_data.BYMONTH[this.by_indices.BYMONTH];\n } else {\n if (this.rule.freq == \"MONTHLY\") {\n this.last.month += this.rule.interval;\n } else {\n this.last.month++;\n }\n\n this.last.month--;\n let years = trunc(this.last.month / 12);\n this.last.month %= 12;\n this.last.month++;\n\n if (years != 0) {\n this.increment_year(years);\n }\n }\n\n if (this.has_by_data(\"BYMONTHDAY\")) {\n this.by_data.BYMONTHDAY = this.normalizeByMonthDayRules(\n this.last.year,\n this.last.month,\n this.rule.parts.BYMONTHDAY\n );\n }\n }\n\n increment_year(inc) {\n // Don't jump into the next month if this.last is Feb 29.\n this.last.day = 1;\n this.last.year += inc;\n }\n\n increment_generic(inc, aDateAttr, aFactor, aNextIncrement) {\n this.last[aDateAttr] += inc;\n let nextunit = trunc(this.last[aDateAttr] / aFactor);\n this.last[aDateAttr] %= aFactor;\n if (nextunit != 0) {\n this[\"increment_\" + aNextIncrement](nextunit);\n }\n }\n\n has_by_data(aRuleType) {\n return (aRuleType in this.rule.parts);\n }\n\n expand_year_days(aYear) {\n let t = new Time();\n this.days = [];\n\n // We need our own copy with a few keys set\n let parts = {};\n let rules = [\"BYDAY\", \"BYWEEKNO\", \"BYMONTHDAY\", \"BYMONTH\", \"BYYEARDAY\"];\n for (let part of rules) {\n if (part in this.rule.parts) {\n parts[part] = this.rule.parts[part];\n }\n }\n\n if (\"BYMONTH\" in parts && \"BYWEEKNO\" in parts) {\n let valid = 1;\n let validWeeks = {};\n t.year = aYear;\n t.isDate = true;\n\n for (let monthIdx = 0; monthIdx < this.by_data.BYMONTH.length; monthIdx++) {\n let month = this.by_data.BYMONTH[monthIdx];\n t.month = month;\n t.day = 1;\n let first_week = t.weekNumber(this.rule.wkst);\n t.day = Time.daysInMonth(month, aYear);\n let last_week = t.weekNumber(this.rule.wkst);\n for (monthIdx = first_week; monthIdx < last_week; monthIdx++) {\n validWeeks[monthIdx] = 1;\n }\n }\n\n for (let weekIdx = 0; weekIdx < this.by_data.BYWEEKNO.length && valid; weekIdx++) {\n let weekno = this.by_data.BYWEEKNO[weekIdx];\n if (weekno < 52) {\n valid &= validWeeks[weekIdx];\n } else {\n valid = 0;\n }\n }\n\n if (valid) {\n delete parts.BYMONTH;\n } else {\n delete parts.BYWEEKNO;\n }\n }\n\n let partCount = Object.keys(parts).length;\n\n if (partCount == 0) {\n let t1 = this.dtstart.clone();\n t1.year = this.last.year;\n this.days.push(t1.dayOfYear());\n } else if (partCount == 1 && \"BYMONTH\" in parts) {\n for (let month of this.by_data.BYMONTH) {\n let t2 = this.dtstart.clone();\n t2.year = aYear;\n t2.month = month;\n t2.isDate = true;\n this.days.push(t2.dayOfYear());\n }\n } else if (partCount == 1 && \"BYMONTHDAY\" in parts) {\n for (let monthday of this.by_data.BYMONTHDAY) {\n let t3 = this.dtstart.clone();\n if (monthday < 0) {\n let daysInMonth = Time.daysInMonth(t3.month, aYear);\n monthday = monthday + daysInMonth + 1;\n }\n t3.day = monthday;\n t3.year = aYear;\n t3.isDate = true;\n this.days.push(t3.dayOfYear());\n }\n } else if (partCount == 2 &&\n \"BYMONTHDAY\" in parts &&\n \"BYMONTH\" in parts) {\n for (let month of this.by_data.BYMONTH) {\n let daysInMonth = Time.daysInMonth(month, aYear);\n for (let monthday of this.by_data.BYMONTHDAY) {\n if (monthday < 0) {\n monthday = monthday + daysInMonth + 1;\n }\n t.day = monthday;\n t.month = month;\n t.year = aYear;\n t.isDate = true;\n\n this.days.push(t.dayOfYear());\n }\n }\n } else if (partCount == 1 && \"BYWEEKNO\" in parts) ; else if (partCount == 2 &&\n \"BYWEEKNO\" in parts &&\n \"BYMONTHDAY\" in parts) ; else if (partCount == 1 && \"BYDAY\" in parts) {\n this.days = this.days.concat(this.expand_by_day(aYear));\n } else if (partCount == 2 && \"BYDAY\" in parts && \"BYMONTH\" in parts) {\n for (let month of this.by_data.BYMONTH) {\n let daysInMonth = Time.daysInMonth(month, aYear);\n\n t.year = aYear;\n t.month = month;\n t.day = 1;\n t.isDate = true;\n\n let first_dow = t.dayOfWeek();\n let doy_offset = t.dayOfYear() - 1;\n\n t.day = daysInMonth;\n let last_dow = t.dayOfWeek();\n\n if (this.has_by_data(\"BYSETPOS\")) {\n let by_month_day = [];\n for (let day = 1; day <= daysInMonth; day++) {\n t.day = day;\n if (this.is_day_in_byday(t)) {\n by_month_day.push(day);\n }\n }\n\n for (let spIndex = 0; spIndex < by_month_day.length; spIndex++) {\n if (this.check_set_position(spIndex + 1) ||\n this.check_set_position(spIndex - by_month_day.length)) {\n this.days.push(doy_offset + by_month_day[spIndex]);\n }\n }\n } else {\n for (let coded_day of this.by_data.BYDAY) {\n let bydayParts = this.ruleDayOfWeek(coded_day);\n let pos = bydayParts[0];\n let dow = bydayParts[1];\n let month_day;\n\n let first_matching_day = ((dow + 7 - first_dow) % 7) + 1;\n let last_matching_day = daysInMonth - ((last_dow + 7 - dow) % 7);\n\n if (pos == 0) {\n for (let day = first_matching_day; day <= daysInMonth; day += 7) {\n this.days.push(doy_offset + day);\n }\n } else if (pos > 0) {\n month_day = first_matching_day + (pos - 1) * 7;\n\n if (month_day <= daysInMonth) {\n this.days.push(doy_offset + month_day);\n }\n } else {\n month_day = last_matching_day + (pos + 1) * 7;\n\n if (month_day > 0) {\n this.days.push(doy_offset + month_day);\n }\n }\n }\n }\n }\n // Return dates in order of occurrence (1,2,3,...) instead\n // of by groups of weekdays (1,8,15,...,2,9,16,...).\n this.days.sort(function(a, b) { return a - b; }); // Comparator function allows to sort numbers.\n } else if (partCount == 2 && \"BYDAY\" in parts && \"BYMONTHDAY\" in parts) {\n let expandedDays = this.expand_by_day(aYear);\n\n for (let day of expandedDays) {\n let tt = Time.fromDayOfYear(day, aYear);\n if (this.by_data.BYMONTHDAY.indexOf(tt.day) >= 0) {\n this.days.push(day);\n }\n }\n } else if (partCount == 3 &&\n \"BYDAY\" in parts &&\n \"BYMONTHDAY\" in parts &&\n \"BYMONTH\" in parts) {\n let expandedDays = this.expand_by_day(aYear);\n\n for (let day of expandedDays) {\n let tt = Time.fromDayOfYear(day, aYear);\n\n if (this.by_data.BYMONTH.indexOf(tt.month) >= 0 &&\n this.by_data.BYMONTHDAY.indexOf(tt.day) >= 0) {\n this.days.push(day);\n }\n }\n } else if (partCount == 2 && \"BYDAY\" in parts && \"BYWEEKNO\" in parts) {\n let expandedDays = this.expand_by_day(aYear);\n\n for (let day of expandedDays) {\n let tt = Time.fromDayOfYear(day, aYear);\n let weekno = tt.weekNumber(this.rule.wkst);\n\n if (this.by_data.BYWEEKNO.indexOf(weekno)) {\n this.days.push(day);\n }\n }\n } else if (partCount == 3 &&\n \"BYDAY\" in parts &&\n \"BYWEEKNO\" in parts &&\n \"BYMONTHDAY\" in parts) ; else if (partCount == 1 && \"BYYEARDAY\" in parts) {\n this.days = this.days.concat(this.by_data.BYYEARDAY);\n } else if (partCount == 2 && \"BYYEARDAY\" in parts && \"BYDAY\" in parts) {\n let daysInYear = Time.isLeapYear(aYear) ? 366 : 365;\n let expandedDays = new Set(this.expand_by_day(aYear));\n\n for (let doy of this.by_data.BYYEARDAY) {\n if (doy < 0) {\n doy += daysInYear + 1;\n }\n\n if (expandedDays.has(doy)) {\n this.days.push(doy);\n }\n }\n } else {\n this.days = [];\n }\n\n let daysInYear = Time.isLeapYear(aYear) ? 366 : 365;\n this.days.sort((a, b) => {\n if (a < 0) a += daysInYear + 1;\n if (b < 0) b += daysInYear + 1;\n return a - b;\n });\n\n return 0;\n }\n\n expand_by_day(aYear) {\n\n let days_list = [];\n let tmp = this.last.clone();\n\n tmp.year = aYear;\n tmp.month = 1;\n tmp.day = 1;\n tmp.isDate = true;\n\n let start_dow = tmp.dayOfWeek();\n\n tmp.month = 12;\n tmp.day = 31;\n tmp.isDate = true;\n\n let end_dow = tmp.dayOfWeek();\n let end_year_day = tmp.dayOfYear();\n\n for (let day of this.by_data.BYDAY) {\n let parts = this.ruleDayOfWeek(day);\n let pos = parts[0];\n let dow = parts[1];\n\n if (pos == 0) {\n let tmp_start_doy = ((dow + 7 - start_dow) % 7) + 1;\n\n for (let doy = tmp_start_doy; doy <= end_year_day; doy += 7) {\n days_list.push(doy);\n }\n\n } else if (pos > 0) {\n let first;\n if (dow >= start_dow) {\n first = dow - start_dow + 1;\n } else {\n first = dow - start_dow + 8;\n }\n\n days_list.push(first + (pos - 1) * 7);\n } else {\n let last;\n pos = -pos;\n\n if (dow <= end_dow) {\n last = end_year_day - end_dow + dow;\n } else {\n last = end_year_day - end_dow + dow - 7;\n }\n\n days_list.push(last - (pos - 1) * 7);\n }\n }\n return days_list;\n }\n\n is_day_in_byday(tt) {\n if (this.by_data.BYDAY) {\n for (let day of this.by_data.BYDAY) {\n let parts = this.ruleDayOfWeek(day);\n let pos = parts[0];\n let dow = parts[1];\n let this_dow = tt.dayOfWeek();\n\n if ((pos == 0 && dow == this_dow) ||\n (tt.nthWeekDay(dow, pos) == tt.day)) {\n return 1;\n }\n }\n }\n\n return 0;\n }\n\n /**\n * Checks if given value is in BYSETPOS.\n *\n * @private\n * @param {Numeric} aPos position to check for.\n * @return {Boolean} false unless BYSETPOS rules exist\n * and the given value is present in rules.\n */\n check_set_position(aPos) {\n if (this.has_by_data('BYSETPOS')) {\n let idx = this.by_data.BYSETPOS.indexOf(aPos);\n // negative numbers are not false-y\n return idx !== -1;\n }\n return false;\n }\n\n sort_byday_rules(aRules) {\n for (let i = 0; i < aRules.length; i++) {\n for (let j = 0; j < i; j++) {\n let one = this.ruleDayOfWeek(aRules[j], this.rule.wkst)[1];\n let two = this.ruleDayOfWeek(aRules[i], this.rule.wkst)[1];\n\n if (one > two) {\n let tmp = aRules[i];\n aRules[i] = aRules[j];\n aRules[j] = tmp;\n }\n }\n }\n }\n\n check_contract_restriction(aRuleType, v) {\n let indexMapValue = RecurIterator._indexMap[aRuleType];\n let ruleMapValue = RecurIterator._expandMap[this.rule.freq][indexMapValue];\n let pass = false;\n\n if (aRuleType in this.by_data &&\n ruleMapValue == RecurIterator.CONTRACT) {\n\n let ruleType = this.by_data[aRuleType];\n\n for (let bydata of ruleType) {\n if (bydata == v) {\n pass = true;\n break;\n }\n }\n } else {\n // Not a contracting byrule or has no data, test passes\n pass = true;\n }\n return pass;\n }\n\n check_contracting_rules() {\n let dow = this.last.dayOfWeek();\n let weekNo = this.last.weekNumber(this.rule.wkst);\n let doy = this.last.dayOfYear();\n\n return (this.check_contract_restriction(\"BYSECOND\", this.last.second) &&\n this.check_contract_restriction(\"BYMINUTE\", this.last.minute) &&\n this.check_contract_restriction(\"BYHOUR\", this.last.hour) &&\n this.check_contract_restriction(\"BYDAY\", Recur.numericDayToIcalDay(dow)) &&\n this.check_contract_restriction(\"BYWEEKNO\", weekNo) &&\n this.check_contract_restriction(\"BYMONTHDAY\", this.last.day) &&\n this.check_contract_restriction(\"BYMONTH\", this.last.month) &&\n this.check_contract_restriction(\"BYYEARDAY\", doy));\n }\n\n setup_defaults(aRuleType, req, deftime) {\n let indexMapValue = RecurIterator._indexMap[aRuleType];\n let ruleMapValue = RecurIterator._expandMap[this.rule.freq][indexMapValue];\n\n if (ruleMapValue != RecurIterator.CONTRACT) {\n if (!(aRuleType in this.by_data)) {\n this.by_data[aRuleType] = [deftime];\n }\n if (this.rule.freq != req) {\n return this.by_data[aRuleType][0];\n }\n }\n return deftime;\n }\n\n /**\n * Convert iterator into a serialize-able object. Will preserve current\n * iteration sequence to ensure the seamless continuation of the recurrence\n * rule.\n * @return {Object}\n */\n toJSON() {\n let result = Object.create(null);\n\n result.initialized = this.initialized;\n result.rule = this.rule.toJSON();\n result.dtstart = this.dtstart.toJSON();\n result.by_data = this.by_data;\n result.days = this.days;\n result.last = this.last.toJSON();\n result.by_indices = this.by_indices;\n result.occurrence_number = this.occurrence_number;\n\n return result;\n }\n}\n\n/**\n * An error indicating that a recurrence rule is invalid and produces no\n * occurrences.\n *\n * @extends {Error}\n * @class\n */\nclass InvalidRecurrenceRuleError extends Error {\n constructor() {\n super(\"Recurrence rule has no valid occurrences\");\n }\n}\n\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch */\n\n\n/**\n * This lets typescript resolve our custom types in the\n * generated d.ts files (jsdoc typedefs are converted to typescript types).\n * Ignore prevents the typedefs from being documented more than once.\n *\n * @ignore\n * @typedef {import(\"./types.js\").weekDay} weekDay\n * Imports the 'weekDay' type from the \"types.js\" module\n * @typedef {import(\"./types.js\").frequencyValues} frequencyValues\n * Imports the 'frequencyValues' type from the \"types.js\" module\n */\n\nconst VALID_DAY_NAMES = /^(SU|MO|TU|WE|TH|FR|SA)$/;\nconst VALID_BYDAY_PART = /^([+-])?(5[0-3]|[1-4][0-9]|[1-9])?(SU|MO|TU|WE|TH|FR|SA)$/;\nconst DOW_MAP = {\n SU: Time.SUNDAY,\n MO: Time.MONDAY,\n TU: Time.TUESDAY,\n WE: Time.WEDNESDAY,\n TH: Time.THURSDAY,\n FR: Time.FRIDAY,\n SA: Time.SATURDAY\n};\n\nconst REVERSE_DOW_MAP = Object.fromEntries(Object.entries(DOW_MAP).map(entry => entry.reverse()));\n\nconst ALLOWED_FREQ = ['SECONDLY', 'MINUTELY', 'HOURLY',\n 'DAILY', 'WEEKLY', 'MONTHLY', 'YEARLY'];\n\n/**\n * This class represents the \"recur\" value type, used for example by RRULE. It provides methods to\n * calculate occurrences among others.\n *\n * @memberof ICAL\n */\nclass Recur {\n /**\n * Creates a new {@link ICAL.Recur} instance from the passed string.\n *\n * @param {String} string The string to parse\n * @return {Recur} The created recurrence instance\n */\n static fromString(string) {\n let data = this._stringToData(string, false);\n return new Recur(data);\n }\n\n /**\n * Creates a new {@link ICAL.Recur} instance using members from the passed\n * data object.\n *\n * @param {Object} aData An object with members of the recurrence\n * @param {frequencyValues=} aData.freq The frequency value\n * @param {Number=} aData.interval The INTERVAL value\n * @param {weekDay=} aData.wkst The week start value\n * @param {Time=} aData.until The end of the recurrence set\n * @param {Number=} aData.count The number of occurrences\n * @param {Array.=} aData.bysecond The seconds for the BYSECOND part\n * @param {Array.=} aData.byminute The minutes for the BYMINUTE part\n * @param {Array.=} aData.byhour The hours for the BYHOUR part\n * @param {Array.=} aData.byday The BYDAY values\n * @param {Array.=} aData.bymonthday The days for the BYMONTHDAY part\n * @param {Array.=} aData.byyearday The days for the BYYEARDAY part\n * @param {Array.=} aData.byweekno The weeks for the BYWEEKNO part\n * @param {Array.=} aData.bymonth The month for the BYMONTH part\n * @param {Array.=} aData.bysetpos The positionals for the BYSETPOS part\n */\n static fromData(aData) {\n return new Recur(aData);\n }\n\n /**\n * Converts a recurrence string to a data object, suitable for the fromData\n * method.\n *\n * @private\n * @param {String} string The string to parse\n * @param {Boolean} fmtIcal If true, the string is considered to be an\n * iCalendar string\n * @return {Recur} The recurrence instance\n */\n static _stringToData(string, fmtIcal) {\n let dict = Object.create(null);\n\n // split is slower in FF but fast enough.\n // v8 however this is faster then manual split?\n let values = string.split(';');\n let len = values.length;\n\n for (let i = 0; i < len; i++) {\n let parts = values[i].split('=');\n let ucname = parts[0].toUpperCase();\n let lcname = parts[0].toLowerCase();\n let name = (fmtIcal ? lcname : ucname);\n let value = parts[1];\n\n if (ucname in partDesign) {\n let partArr = value.split(',');\n let partSet = new Set();\n\n for (let part of partArr) {\n partSet.add(partDesign[ucname](part));\n }\n partArr = [...partSet];\n\n dict[name] = (partArr.length == 1 ? partArr[0] : partArr);\n } else if (ucname in optionDesign) {\n optionDesign[ucname](value, dict, fmtIcal);\n } else {\n // Don't swallow unknown values. Just set them as they are.\n dict[lcname] = value;\n }\n }\n\n return dict;\n }\n\n /**\n * Convert an ical representation of a day (SU, MO, etc..)\n * into a numeric value of that day.\n *\n * @param {String} string The iCalendar day name\n * @param {weekDay=} aWeekStart\n * The week start weekday, defaults to SUNDAY\n * @return {Number} Numeric value of given day\n */\n static icalDayToNumericDay(string, aWeekStart) {\n //XXX: this is here so we can deal\n // with possibly invalid string values.\n let firstDow = aWeekStart || Time.SUNDAY;\n return ((DOW_MAP[string] - firstDow + 7) % 7) + 1;\n }\n\n /**\n * Convert a numeric day value into its ical representation (SU, MO, etc..)\n *\n * @param {Number} num Numeric value of given day\n * @param {weekDay=} aWeekStart\n * The week start weekday, defaults to SUNDAY\n * @return {String} The ICAL day value, e.g SU,MO,...\n */\n static numericDayToIcalDay(num, aWeekStart) {\n //XXX: this is here so we can deal with possibly invalid number values.\n // Also, this allows consistent mapping between day numbers and day\n // names for external users.\n let firstDow = aWeekStart || Time.SUNDAY;\n let dow = (num + firstDow - Time.SUNDAY);\n if (dow > 7) {\n dow -= 7;\n }\n return REVERSE_DOW_MAP[dow];\n }\n\n /**\n * Create a new instance of the Recur class.\n *\n * @param {Object} data An object with members of the recurrence\n * @param {frequencyValues=} data.freq The frequency value\n * @param {Number=} data.interval The INTERVAL value\n * @param {weekDay=} data.wkst The week start value\n * @param {Time=} data.until The end of the recurrence set\n * @param {Number=} data.count The number of occurrences\n * @param {Array.=} data.bysecond The seconds for the BYSECOND part\n * @param {Array.=} data.byminute The minutes for the BYMINUTE part\n * @param {Array.=} data.byhour The hours for the BYHOUR part\n * @param {Array.=} data.byday The BYDAY values\n * @param {Array.=} data.bymonthday The days for the BYMONTHDAY part\n * @param {Array.=} data.byyearday The days for the BYYEARDAY part\n * @param {Array.=} data.byweekno The weeks for the BYWEEKNO part\n * @param {Array.=} data.bymonth The month for the BYMONTH part\n * @param {Array.=} data.bysetpos The positionals for the BYSETPOS part\n */\n constructor(data) {\n this.wrappedJSObject = this;\n this.parts = {};\n\n if (data && typeof(data) === 'object') {\n this.fromData(data);\n }\n }\n\n /**\n * An object holding the BY-parts of the recurrence rule\n * @memberof ICAL.Recur\n * @typedef {Object} byParts\n * @property {Array.=} BYSECOND The seconds for the BYSECOND part\n * @property {Array.=} BYMINUTE The minutes for the BYMINUTE part\n * @property {Array.=} BYHOUR The hours for the BYHOUR part\n * @property {Array.=} BYDAY The BYDAY values\n * @property {Array.=} BYMONTHDAY The days for the BYMONTHDAY part\n * @property {Array.=} BYYEARDAY The days for the BYYEARDAY part\n * @property {Array.=} BYWEEKNO The weeks for the BYWEEKNO part\n * @property {Array.=} BYMONTH The month for the BYMONTH part\n * @property {Array.=} BYSETPOS The positionals for the BYSETPOS part\n */\n\n /**\n * An object holding the BY-parts of the recurrence rule\n * @type {byParts}\n */\n parts = null;\n\n /**\n * The interval value for the recurrence rule.\n * @type {Number}\n */\n interval = 1;\n\n /**\n * The week start day\n *\n * @type {weekDay}\n * @default ICAL.Time.MONDAY\n */\n wkst = Time.MONDAY;\n\n /**\n * The end of the recurrence\n * @type {?Time}\n */\n until = null;\n\n /**\n * The maximum number of occurrences\n * @type {?Number}\n */\n count = null;\n\n /**\n * The frequency value.\n * @type {frequencyValues}\n */\n freq = null;\n\n /**\n * The class identifier.\n * @constant\n * @type {String}\n * @default \"icalrecur\"\n */\n icalclass = \"icalrecur\";\n\n /**\n * The type name, to be used in the jCal object.\n * @constant\n * @type {String}\n * @default \"recur\"\n */\n icaltype = \"recur\";\n\n /**\n * Create a new iterator for this recurrence rule. The passed start date\n * must be the start date of the event, not the start of the range to\n * search in.\n *\n * @example\n * let recur = comp.getFirstPropertyValue('rrule');\n * let dtstart = comp.getFirstPropertyValue('dtstart');\n * let iter = recur.iterator(dtstart);\n * for (let next = iter.next(); next; next = iter.next()) {\n * if (next.compare(rangeStart) < 0) {\n * continue;\n * }\n * console.log(next.toString());\n * }\n *\n * @param {Time} aStart The item's start date\n * @return {RecurIterator} The recurrence iterator\n */\n iterator(aStart) {\n return new RecurIterator({\n rule: this,\n dtstart: aStart\n });\n }\n\n /**\n * Returns a clone of the recurrence object.\n *\n * @return {Recur} The cloned object\n */\n clone() {\n return new Recur(this.toJSON());\n }\n\n /**\n * Checks if the current rule is finite, i.e. has a count or until part.\n *\n * @return {Boolean} True, if the rule is finite\n */\n isFinite() {\n return !!(this.count || this.until);\n }\n\n /**\n * Checks if the current rule has a count part, and not limited by an until\n * part.\n *\n * @return {Boolean} True, if the rule is by count\n */\n isByCount() {\n return !!(this.count && !this.until);\n }\n\n /**\n * Adds a component (part) to the recurrence rule. This is not a component\n * in the sense of {@link ICAL.Component}, but a part of the recurrence\n * rule, i.e. BYMONTH.\n *\n * @param {String} aType The name of the component part\n * @param {Array|String} aValue The component value\n */\n addComponent(aType, aValue) {\n let ucname = aType.toUpperCase();\n if (ucname in this.parts) {\n this.parts[ucname].push(aValue);\n } else {\n this.parts[ucname] = [aValue];\n }\n }\n\n /**\n * Sets the component value for the given by-part.\n *\n * @param {String} aType The component part name\n * @param {Array} aValues The component values\n */\n setComponent(aType, aValues) {\n this.parts[aType.toUpperCase()] = aValues.slice();\n }\n\n /**\n * Gets (a copy) of the requested component value.\n *\n * @param {String} aType The component part name\n * @return {Array} The component part value\n */\n getComponent(aType) {\n let ucname = aType.toUpperCase();\n return (ucname in this.parts ? this.parts[ucname].slice() : []);\n }\n\n /**\n * Retrieves the next occurrence after the given recurrence id. See the\n * guide on {@tutorial terminology} for more details.\n *\n * NOTE: Currently, this method iterates all occurrences from the start\n * date. It should not be called in a loop for performance reasons. If you\n * would like to get more than one occurrence, you can iterate the\n * occurrences manually, see the example on the\n * {@link ICAL.Recur#iterator iterator} method.\n *\n * @param {Time} aStartTime The start of the event series\n * @param {Time} aRecurrenceId The date of the last occurrence\n * @return {Time} The next occurrence after\n */\n getNextOccurrence(aStartTime, aRecurrenceId) {\n let iter = this.iterator(aStartTime);\n let next;\n\n do {\n next = iter.next();\n } while (next && next.compare(aRecurrenceId) <= 0);\n\n if (next && aRecurrenceId.zone) {\n next.zone = aRecurrenceId.zone;\n }\n\n return next;\n }\n\n /**\n * Sets up the current instance using members from the passed data object.\n *\n * @param {Object} data An object with members of the recurrence\n * @param {frequencyValues=} data.freq The frequency value\n * @param {Number=} data.interval The INTERVAL value\n * @param {weekDay=} data.wkst The week start value\n * @param {Time=} data.until The end of the recurrence set\n * @param {Number=} data.count The number of occurrences\n * @param {Array.=} data.bysecond The seconds for the BYSECOND part\n * @param {Array.=} data.byminute The minutes for the BYMINUTE part\n * @param {Array.=} data.byhour The hours for the BYHOUR part\n * @param {Array.=} data.byday The BYDAY values\n * @param {Array.=} data.bymonthday The days for the BYMONTHDAY part\n * @param {Array.=} data.byyearday The days for the BYYEARDAY part\n * @param {Array.=} data.byweekno The weeks for the BYWEEKNO part\n * @param {Array.=} data.bymonth The month for the BYMONTH part\n * @param {Array.=} data.bysetpos The positionals for the BYSETPOS part\n */\n fromData(data) {\n for (let key in data) {\n let uckey = key.toUpperCase();\n\n if (uckey in partDesign) {\n if (Array.isArray(data[key])) {\n this.parts[uckey] = data[key];\n } else {\n this.parts[uckey] = [data[key]];\n }\n } else {\n this[key] = data[key];\n }\n }\n\n if (this.interval && typeof this.interval != \"number\") {\n optionDesign.INTERVAL(this.interval, this);\n }\n\n if (this.wkst && typeof this.wkst != \"number\") {\n this.wkst = Recur.icalDayToNumericDay(this.wkst);\n }\n\n if (this.until && !(this.until instanceof Time)) {\n this.until = Time.fromString(this.until);\n }\n }\n\n /**\n * The jCal representation of this recurrence type.\n * @return {Object}\n */\n toJSON() {\n let res = Object.create(null);\n res.freq = this.freq;\n\n if (this.count) {\n res.count = this.count;\n }\n\n if (this.interval > 1) {\n res.interval = this.interval;\n }\n\n for (let [k, kparts] of Object.entries(this.parts)) {\n if (Array.isArray(kparts) && kparts.length == 1) {\n res[k.toLowerCase()] = kparts[0];\n } else {\n res[k.toLowerCase()] = clone(kparts);\n }\n }\n\n if (this.until) {\n res.until = this.until.toString();\n }\n if ('wkst' in this && this.wkst !== Time.DEFAULT_WEEK_START) {\n res.wkst = Recur.numericDayToIcalDay(this.wkst);\n }\n return res;\n }\n\n /**\n * The string representation of this recurrence rule.\n * @return {String}\n */\n toString() {\n // TODO retain order\n let str = \"FREQ=\" + this.freq;\n if (this.count) {\n str += \";COUNT=\" + this.count;\n }\n if (this.interval > 1) {\n str += \";INTERVAL=\" + this.interval;\n }\n for (let [k, v] of Object.entries(this.parts)) {\n str += \";\" + k + \"=\" + v;\n }\n if (this.until) {\n str += ';UNTIL=' + this.until.toICALString();\n }\n if ('wkst' in this && this.wkst !== Time.DEFAULT_WEEK_START) {\n str += ';WKST=' + Recur.numericDayToIcalDay(this.wkst);\n }\n return str;\n }\n}\n\nfunction parseNumericValue(type, min, max, value) {\n let result = value;\n\n if (value[0] === '+') {\n result = value.slice(1);\n }\n\n result = strictParseInt(result);\n\n if (min !== undefined && value < min) {\n throw new Error(\n type + ': invalid value \"' + value + '\" must be > ' + min\n );\n }\n\n if (max !== undefined && value > max) {\n throw new Error(\n type + ': invalid value \"' + value + '\" must be < ' + min\n );\n }\n\n return result;\n}\n\nconst optionDesign = {\n FREQ: function(value, dict, fmtIcal) {\n // yes this is actually equal or faster then regex.\n // upside here is we can enumerate the valid values.\n if (ALLOWED_FREQ.indexOf(value) !== -1) {\n dict.freq = value;\n } else {\n throw new Error(\n 'invalid frequency \"' + value + '\" expected: \"' +\n ALLOWED_FREQ.join(', ') + '\"'\n );\n }\n },\n\n COUNT: function(value, dict, fmtIcal) {\n dict.count = strictParseInt(value);\n },\n\n INTERVAL: function(value, dict, fmtIcal) {\n dict.interval = strictParseInt(value);\n if (dict.interval < 1) {\n // 0 or negative values are not allowed, some engines seem to generate\n // it though. Assume 1 instead.\n dict.interval = 1;\n }\n },\n\n UNTIL: function(value, dict, fmtIcal) {\n if (value.length > 10) {\n dict.until = design.icalendar.value['date-time'].fromICAL(value);\n } else {\n dict.until = design.icalendar.value.date.fromICAL(value);\n }\n if (!fmtIcal) {\n dict.until = Time.fromString(dict.until);\n }\n },\n\n WKST: function(value, dict, fmtIcal) {\n if (VALID_DAY_NAMES.test(value)) {\n dict.wkst = Recur.icalDayToNumericDay(value);\n } else {\n throw new Error('invalid WKST value \"' + value + '\"');\n }\n }\n};\n\nconst partDesign = {\n BYSECOND: parseNumericValue.bind(undefined, 'BYSECOND', 0, 60),\n BYMINUTE: parseNumericValue.bind(undefined, 'BYMINUTE', 0, 59),\n BYHOUR: parseNumericValue.bind(undefined, 'BYHOUR', 0, 23),\n BYDAY: function(value) {\n if (VALID_BYDAY_PART.test(value)) {\n return value;\n } else {\n throw new Error('invalid BYDAY value \"' + value + '\"');\n }\n },\n BYMONTHDAY: parseNumericValue.bind(undefined, 'BYMONTHDAY', -31, 31),\n BYYEARDAY: parseNumericValue.bind(undefined, 'BYYEARDAY', -366, 366),\n BYWEEKNO: parseNumericValue.bind(undefined, 'BYWEEKNO', -53, 53),\n BYMONTH: parseNumericValue.bind(undefined, 'BYMONTH', 1, 12),\n BYSETPOS: parseNumericValue.bind(undefined, 'BYSETPOS', -366, 366)\n};\n\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch */\n\n\n/**\n * This lets typescript resolve our custom types in the\n * generated d.ts files (jsdoc typedefs are converted to typescript types).\n * Ignore prevents the typedefs from being documented more than once.\n * @ignore\n * @typedef {import(\"./types.js\").designSet} designSet\n * Imports the 'designSet' type from the \"types.js\" module\n */\n\n/** @module ICAL.design */\n\nconst FROM_ICAL_NEWLINE = /\\\\\\\\|\\\\;|\\\\,|\\\\[Nn]/g;\nconst TO_ICAL_NEWLINE = /\\\\|;|,|\\n/g;\nconst FROM_VCARD_NEWLINE = /\\\\\\\\|\\\\,|\\\\[Nn]/g;\nconst TO_VCARD_NEWLINE = /\\\\|,|\\n/g;\n\nfunction createTextType(fromNewline, toNewline) {\n let result = {\n matches: /.*/,\n\n fromICAL: function(aValue, structuredEscape) {\n return replaceNewline(aValue, fromNewline, structuredEscape);\n },\n\n toICAL: function(aValue, structuredEscape) {\n let regEx = toNewline;\n if (structuredEscape)\n regEx = new RegExp(regEx.source + '|' + structuredEscape, regEx.flags);\n return aValue.replace(regEx, function(str) {\n switch (str) {\n case \"\\\\\":\n return \"\\\\\\\\\";\n case \";\":\n return \"\\\\;\";\n case \",\":\n return \"\\\\,\";\n case \"\\n\":\n return \"\\\\n\";\n /* c8 ignore next 2 */\n default:\n return str;\n }\n });\n }\n };\n return result;\n}\n\n// default types used multiple times\nconst DEFAULT_TYPE_TEXT = { defaultType: \"text\" };\nconst DEFAULT_TYPE_TEXT_MULTI = { defaultType: \"text\", multiValue: \",\" };\nconst DEFAULT_TYPE_TEXT_STRUCTURED = { defaultType: \"text\", structuredValue: \";\" };\nconst DEFAULT_TYPE_INTEGER = { defaultType: \"integer\" };\nconst DEFAULT_TYPE_DATETIME_DATE = { defaultType: \"date-time\", allowedTypes: [\"date-time\", \"date\"] };\nconst DEFAULT_TYPE_DATETIME = { defaultType: \"date-time\" };\nconst DEFAULT_TYPE_URI = { defaultType: \"uri\" };\nconst DEFAULT_TYPE_UTCOFFSET = { defaultType: \"utc-offset\" };\nconst DEFAULT_TYPE_RECUR = { defaultType: \"recur\" };\nconst DEFAULT_TYPE_DATE_ANDOR_TIME = { defaultType: \"date-and-or-time\", allowedTypes: [\"date-time\", \"date\", \"text\"] };\n\nfunction replaceNewlineReplace(string) {\n switch (string) {\n case \"\\\\\\\\\":\n return \"\\\\\";\n case \"\\\\;\":\n return \";\";\n case \"\\\\,\":\n return \",\";\n case \"\\\\n\":\n case \"\\\\N\":\n return \"\\n\";\n /* c8 ignore next 2 */\n default:\n return string;\n }\n}\n\nfunction replaceNewline(value, newline, structuredEscape) {\n // avoid regex when possible.\n if (value.indexOf('\\\\') === -1) {\n return value;\n }\n if (structuredEscape)\n newline = new RegExp(newline.source + '|\\\\\\\\' + structuredEscape, newline.flags);\n return value.replace(newline, replaceNewlineReplace);\n}\n\nlet commonProperties = {\n \"categories\": DEFAULT_TYPE_TEXT_MULTI,\n \"url\": DEFAULT_TYPE_URI,\n \"version\": DEFAULT_TYPE_TEXT,\n \"uid\": DEFAULT_TYPE_TEXT\n};\n\nlet commonValues = {\n \"boolean\": {\n values: [\"TRUE\", \"FALSE\"],\n\n fromICAL: function(aValue) {\n switch (aValue) {\n case 'TRUE':\n return true;\n case 'FALSE':\n return false;\n default:\n //TODO: parser warning\n return false;\n }\n },\n\n toICAL: function(aValue) {\n if (aValue) {\n return 'TRUE';\n }\n return 'FALSE';\n }\n\n },\n float: {\n matches: /^[+-]?\\d+\\.\\d+$/,\n\n fromICAL: function(aValue) {\n let parsed = parseFloat(aValue);\n if (isStrictlyNaN(parsed)) {\n // TODO: parser warning\n return 0.0;\n }\n return parsed;\n },\n\n toICAL: function(aValue) {\n return String(aValue);\n }\n },\n integer: {\n fromICAL: function(aValue) {\n let parsed = parseInt(aValue);\n if (isStrictlyNaN(parsed)) {\n return 0;\n }\n return parsed;\n },\n\n toICAL: function(aValue) {\n return String(aValue);\n }\n },\n \"utc-offset\": {\n toICAL: function(aValue) {\n if (aValue.length < 7) {\n // no seconds\n // -0500\n return aValue.slice(0, 3) +\n aValue.slice(4, 6);\n } else {\n // seconds\n // -050000\n return aValue.slice(0, 3) +\n aValue.slice(4, 6) +\n aValue.slice(7, 9);\n }\n },\n\n fromICAL: function(aValue) {\n if (aValue.length < 6) {\n // no seconds\n // -05:00\n return aValue.slice(0, 3) + ':' +\n aValue.slice(3, 5);\n } else {\n // seconds\n // -05:00:00\n return aValue.slice(0, 3) + ':' +\n aValue.slice(3, 5) + ':' +\n aValue.slice(5, 7);\n }\n },\n\n decorate: function(aValue) {\n return UtcOffset.fromString(aValue);\n },\n\n undecorate: function(aValue) {\n return aValue.toString();\n }\n }\n};\n\nlet icalParams = {\n // Although the syntax is DQUOTE uri DQUOTE, I don't think we should\n // enforce anything aside from it being a valid content line.\n //\n // At least some params require - if multi values are used - DQUOTEs\n // for each of its values - e.g. delegated-from=\"uri1\",\"uri2\"\n // To indicate this, I introduced the new k/v pair\n // multiValueSeparateDQuote: true\n //\n // \"ALTREP\": { ... },\n\n // CN just wants a param-value\n // \"CN\": { ... }\n\n \"cutype\": {\n values: [\"INDIVIDUAL\", \"GROUP\", \"RESOURCE\", \"ROOM\", \"UNKNOWN\"],\n allowXName: true,\n allowIanaToken: true\n },\n\n \"delegated-from\": {\n valueType: \"cal-address\",\n multiValue: \",\",\n multiValueSeparateDQuote: true\n },\n \"delegated-to\": {\n valueType: \"cal-address\",\n multiValue: \",\",\n multiValueSeparateDQuote: true\n },\n // \"DIR\": { ... }, // See ALTREP\n \"encoding\": {\n values: [\"8BIT\", \"BASE64\"]\n },\n // \"FMTTYPE\": { ... }, // See ALTREP\n \"fbtype\": {\n values: [\"FREE\", \"BUSY\", \"BUSY-UNAVAILABLE\", \"BUSY-TENTATIVE\"],\n allowXName: true,\n allowIanaToken: true\n },\n // \"LANGUAGE\": { ... }, // See ALTREP\n \"member\": {\n valueType: \"cal-address\",\n multiValue: \",\",\n multiValueSeparateDQuote: true\n },\n \"partstat\": {\n // TODO These values are actually different per-component\n values: [\"NEEDS-ACTION\", \"ACCEPTED\", \"DECLINED\", \"TENTATIVE\",\n \"DELEGATED\", \"COMPLETED\", \"IN-PROCESS\"],\n allowXName: true,\n allowIanaToken: true\n },\n \"range\": {\n values: [\"THISANDFUTURE\"]\n },\n \"related\": {\n values: [\"START\", \"END\"]\n },\n \"reltype\": {\n values: [\"PARENT\", \"CHILD\", \"SIBLING\"],\n allowXName: true,\n allowIanaToken: true\n },\n \"role\": {\n values: [\"REQ-PARTICIPANT\", \"CHAIR\",\n \"OPT-PARTICIPANT\", \"NON-PARTICIPANT\"],\n allowXName: true,\n allowIanaToken: true\n },\n \"rsvp\": {\n values: [\"TRUE\", \"FALSE\"]\n },\n \"sent-by\": {\n valueType: \"cal-address\"\n },\n \"tzid\": {\n matches: /^\\//\n },\n \"value\": {\n // since the value here is a 'type' lowercase is used.\n values: [\"binary\", \"boolean\", \"cal-address\", \"date\", \"date-time\",\n \"duration\", \"float\", \"integer\", \"period\", \"recur\", \"text\",\n \"time\", \"uri\", \"utc-offset\"],\n allowXName: true,\n allowIanaToken: true\n }\n};\n\n// When adding a value here, be sure to add it to the parameter types!\nconst icalValues = extend(commonValues, {\n text: createTextType(FROM_ICAL_NEWLINE, TO_ICAL_NEWLINE),\n\n uri: {\n // TODO\n /* ... */\n },\n\n \"binary\": {\n decorate: function(aString) {\n return Binary.fromString(aString);\n },\n\n undecorate: function(aBinary) {\n return aBinary.toString();\n }\n },\n \"cal-address\": {\n // needs to be an uri\n },\n \"date\": {\n decorate: function(aValue, aProp) {\n if (design.strict) {\n return Time.fromDateString(aValue, aProp);\n } else {\n return Time.fromString(aValue, aProp);\n }\n },\n\n /**\n * undecorates a time object.\n */\n undecorate: function(aValue) {\n return aValue.toString();\n },\n\n fromICAL: function(aValue) {\n // from: 20120901\n // to: 2012-09-01\n if (!design.strict && aValue.length >= 15) {\n // This is probably a date-time, e.g. 20120901T130000Z\n return icalValues[\"date-time\"].fromICAL(aValue);\n } else {\n return aValue.slice(0, 4) + '-' +\n aValue.slice(4, 6) + '-' +\n aValue.slice(6, 8);\n }\n },\n\n toICAL: function(aValue) {\n // from: 2012-09-01\n // to: 20120901\n let len = aValue.length;\n\n if (len == 10) {\n return aValue.slice(0, 4) +\n aValue.slice(5, 7) +\n aValue.slice(8, 10);\n } else if (len >= 19) {\n return icalValues[\"date-time\"].toICAL(aValue);\n } else {\n //TODO: serialize warning?\n return aValue;\n }\n\n }\n },\n \"date-time\": {\n fromICAL: function(aValue) {\n // from: 20120901T130000\n // to: 2012-09-01T13:00:00\n if (!design.strict && aValue.length == 8) {\n // This is probably a date, e.g. 20120901\n return icalValues.date.fromICAL(aValue);\n } else {\n let result = aValue.slice(0, 4) + '-' +\n aValue.slice(4, 6) + '-' +\n aValue.slice(6, 8) + 'T' +\n aValue.slice(9, 11) + ':' +\n aValue.slice(11, 13) + ':' +\n aValue.slice(13, 15);\n\n if (aValue[15] && aValue[15] === 'Z') {\n result += 'Z';\n }\n\n return result;\n }\n },\n\n toICAL: function(aValue) {\n // from: 2012-09-01T13:00:00\n // to: 20120901T130000\n let len = aValue.length;\n\n if (len == 10 && !design.strict) {\n return icalValues.date.toICAL(aValue);\n } else if (len >= 19) {\n let result = aValue.slice(0, 4) +\n aValue.slice(5, 7) +\n // grab the (DDTHH) segment\n aValue.slice(8, 13) +\n // MM\n aValue.slice(14, 16) +\n // SS\n aValue.slice(17, 19);\n\n if (aValue[19] && aValue[19] === 'Z') {\n result += 'Z';\n }\n return result;\n } else {\n // TODO: error\n return aValue;\n }\n },\n\n decorate: function(aValue, aProp) {\n if (design.strict) {\n return Time.fromDateTimeString(aValue, aProp);\n } else {\n return Time.fromString(aValue, aProp);\n }\n },\n\n undecorate: function(aValue) {\n return aValue.toString();\n }\n },\n duration: {\n decorate: function(aValue) {\n return Duration.fromString(aValue);\n },\n undecorate: function(aValue) {\n return aValue.toString();\n }\n },\n period: {\n fromICAL: function(string) {\n let parts = string.split('/');\n parts[0] = icalValues['date-time'].fromICAL(parts[0]);\n\n if (!Duration.isValueString(parts[1])) {\n parts[1] = icalValues['date-time'].fromICAL(parts[1]);\n }\n\n return parts;\n },\n\n toICAL: function(parts) {\n parts = parts.slice();\n if (!design.strict && parts[0].length == 10) {\n parts[0] = icalValues.date.toICAL(parts[0]);\n } else {\n parts[0] = icalValues['date-time'].toICAL(parts[0]);\n }\n\n if (!Duration.isValueString(parts[1])) {\n if (!design.strict && parts[1].length == 10) {\n parts[1] = icalValues.date.toICAL(parts[1]);\n } else {\n parts[1] = icalValues['date-time'].toICAL(parts[1]);\n }\n }\n\n return parts.join(\"/\");\n },\n\n decorate: function(aValue, aProp) {\n return Period.fromJSON(aValue, aProp, !design.strict);\n },\n\n undecorate: function(aValue) {\n return aValue.toJSON();\n }\n },\n recur: {\n fromICAL: function(string) {\n return Recur._stringToData(string, true);\n },\n\n toICAL: function(data) {\n let str = \"\";\n for (let [k, val] of Object.entries(data)) {\n if (k == \"until\") {\n if (val.length > 10) {\n val = icalValues['date-time'].toICAL(val);\n } else {\n val = icalValues.date.toICAL(val);\n }\n } else if (k == \"wkst\") {\n if (typeof val === 'number') {\n val = Recur.numericDayToIcalDay(val);\n }\n } else if (Array.isArray(val)) {\n val = val.join(\",\");\n }\n str += k.toUpperCase() + \"=\" + val + \";\";\n }\n return str.slice(0, Math.max(0, str.length - 1));\n },\n\n decorate: function decorate(aValue) {\n return Recur.fromData(aValue);\n },\n\n undecorate: function(aRecur) {\n return aRecur.toJSON();\n }\n },\n\n time: {\n fromICAL: function(aValue) {\n // from: MMHHSS(Z)?\n // to: HH:MM:SS(Z)?\n if (aValue.length < 6) {\n // TODO: parser exception?\n return aValue;\n }\n\n // HH::MM::SSZ?\n let result = aValue.slice(0, 2) + ':' +\n aValue.slice(2, 4) + ':' +\n aValue.slice(4, 6);\n\n if (aValue[6] === 'Z') {\n result += 'Z';\n }\n\n return result;\n },\n\n toICAL: function(aValue) {\n // from: HH:MM:SS(Z)?\n // to: MMHHSS(Z)?\n if (aValue.length < 8) {\n //TODO: error\n return aValue;\n }\n\n let result = aValue.slice(0, 2) +\n aValue.slice(3, 5) +\n aValue.slice(6, 8);\n\n if (aValue[8] === 'Z') {\n result += 'Z';\n }\n\n return result;\n }\n }\n});\n\nlet icalProperties = extend(commonProperties, {\n\n \"action\": DEFAULT_TYPE_TEXT,\n \"attach\": { defaultType: \"uri\" },\n \"attendee\": { defaultType: \"cal-address\" },\n \"calscale\": DEFAULT_TYPE_TEXT,\n \"class\": DEFAULT_TYPE_TEXT,\n \"comment\": DEFAULT_TYPE_TEXT,\n \"completed\": DEFAULT_TYPE_DATETIME,\n \"contact\": DEFAULT_TYPE_TEXT,\n \"created\": DEFAULT_TYPE_DATETIME,\n \"description\": DEFAULT_TYPE_TEXT,\n \"dtend\": DEFAULT_TYPE_DATETIME_DATE,\n \"dtstamp\": DEFAULT_TYPE_DATETIME,\n \"dtstart\": DEFAULT_TYPE_DATETIME_DATE,\n \"due\": DEFAULT_TYPE_DATETIME_DATE,\n \"duration\": { defaultType: \"duration\" },\n \"exdate\": {\n defaultType: \"date-time\",\n allowedTypes: [\"date-time\", \"date\"],\n multiValue: ','\n },\n \"exrule\": DEFAULT_TYPE_RECUR,\n \"freebusy\": { defaultType: \"period\", multiValue: \",\" },\n \"geo\": { defaultType: \"float\", structuredValue: \";\" },\n \"last-modified\": DEFAULT_TYPE_DATETIME,\n \"location\": DEFAULT_TYPE_TEXT,\n \"method\": DEFAULT_TYPE_TEXT,\n \"organizer\": { defaultType: \"cal-address\" },\n \"percent-complete\": DEFAULT_TYPE_INTEGER,\n \"priority\": DEFAULT_TYPE_INTEGER,\n \"prodid\": DEFAULT_TYPE_TEXT,\n \"related-to\": DEFAULT_TYPE_TEXT,\n \"repeat\": DEFAULT_TYPE_INTEGER,\n \"rdate\": {\n defaultType: \"date-time\",\n allowedTypes: [\"date-time\", \"date\", \"period\"],\n multiValue: ',',\n detectType: function(string) {\n if (string.indexOf('/') !== -1) {\n return 'period';\n }\n return (string.indexOf('T') === -1) ? 'date' : 'date-time';\n }\n },\n \"recurrence-id\": DEFAULT_TYPE_DATETIME_DATE,\n \"resources\": DEFAULT_TYPE_TEXT_MULTI,\n \"request-status\": DEFAULT_TYPE_TEXT_STRUCTURED,\n \"rrule\": DEFAULT_TYPE_RECUR,\n \"sequence\": DEFAULT_TYPE_INTEGER,\n \"status\": DEFAULT_TYPE_TEXT,\n \"summary\": DEFAULT_TYPE_TEXT,\n \"transp\": DEFAULT_TYPE_TEXT,\n \"trigger\": { defaultType: \"duration\", allowedTypes: [\"duration\", \"date-time\"] },\n \"tzoffsetfrom\": DEFAULT_TYPE_UTCOFFSET,\n \"tzoffsetto\": DEFAULT_TYPE_UTCOFFSET,\n \"tzurl\": DEFAULT_TYPE_URI,\n \"tzid\": DEFAULT_TYPE_TEXT,\n \"tzname\": DEFAULT_TYPE_TEXT\n});\n\n// When adding a value here, be sure to add it to the parameter types!\nconst vcardValues = extend(commonValues, {\n text: createTextType(FROM_VCARD_NEWLINE, TO_VCARD_NEWLINE),\n uri: createTextType(FROM_VCARD_NEWLINE, TO_VCARD_NEWLINE),\n\n date: {\n decorate: function(aValue) {\n return VCardTime.fromDateAndOrTimeString(aValue, \"date\");\n },\n undecorate: function(aValue) {\n return aValue.toString();\n },\n fromICAL: function(aValue) {\n if (aValue.length == 8) {\n return icalValues.date.fromICAL(aValue);\n } else if (aValue[0] == '-' && aValue.length == 6) {\n return aValue.slice(0, 4) + '-' + aValue.slice(4);\n } else {\n return aValue;\n }\n },\n toICAL: function(aValue) {\n if (aValue.length == 10) {\n return icalValues.date.toICAL(aValue);\n } else if (aValue[0] == '-' && aValue.length == 7) {\n return aValue.slice(0, 4) + aValue.slice(5);\n } else {\n return aValue;\n }\n }\n },\n\n time: {\n decorate: function(aValue) {\n return VCardTime.fromDateAndOrTimeString(\"T\" + aValue, \"time\");\n },\n undecorate: function(aValue) {\n return aValue.toString();\n },\n fromICAL: function(aValue) {\n let splitzone = vcardValues.time._splitZone(aValue, true);\n let zone = splitzone[0], value = splitzone[1];\n\n //console.log(\"SPLIT: \",splitzone);\n\n if (value.length == 6) {\n value = value.slice(0, 2) + ':' +\n value.slice(2, 4) + ':' +\n value.slice(4, 6);\n } else if (value.length == 4 && value[0] != '-') {\n value = value.slice(0, 2) + ':' + value.slice(2, 4);\n } else if (value.length == 5) {\n value = value.slice(0, 3) + ':' + value.slice(3, 5);\n }\n\n if (zone.length == 5 && (zone[0] == '-' || zone[0] == '+')) {\n zone = zone.slice(0, 3) + ':' + zone.slice(3);\n }\n\n return value + zone;\n },\n\n toICAL: function(aValue) {\n let splitzone = vcardValues.time._splitZone(aValue);\n let zone = splitzone[0], value = splitzone[1];\n\n if (value.length == 8) {\n value = value.slice(0, 2) +\n value.slice(3, 5) +\n value.slice(6, 8);\n } else if (value.length == 5 && value[0] != '-') {\n value = value.slice(0, 2) + value.slice(3, 5);\n } else if (value.length == 6) {\n value = value.slice(0, 3) + value.slice(4, 6);\n }\n\n if (zone.length == 6 && (zone[0] == '-' || zone[0] == '+')) {\n zone = zone.slice(0, 3) + zone.slice(4);\n }\n\n return value + zone;\n },\n\n _splitZone: function(aValue, isFromIcal) {\n let lastChar = aValue.length - 1;\n let signChar = aValue.length - (isFromIcal ? 5 : 6);\n let sign = aValue[signChar];\n let zone, value;\n\n if (aValue[lastChar] == 'Z') {\n zone = aValue[lastChar];\n value = aValue.slice(0, Math.max(0, lastChar));\n } else if (aValue.length > 6 && (sign == '-' || sign == '+')) {\n zone = aValue.slice(signChar);\n value = aValue.slice(0, Math.max(0, signChar));\n } else {\n zone = \"\";\n value = aValue;\n }\n\n return [zone, value];\n }\n },\n\n \"date-time\": {\n decorate: function(aValue) {\n return VCardTime.fromDateAndOrTimeString(aValue, \"date-time\");\n },\n\n undecorate: function(aValue) {\n return aValue.toString();\n },\n\n fromICAL: function(aValue) {\n return vcardValues['date-and-or-time'].fromICAL(aValue);\n },\n\n toICAL: function(aValue) {\n return vcardValues['date-and-or-time'].toICAL(aValue);\n }\n },\n\n \"date-and-or-time\": {\n decorate: function(aValue) {\n return VCardTime.fromDateAndOrTimeString(aValue, \"date-and-or-time\");\n },\n\n undecorate: function(aValue) {\n return aValue.toString();\n },\n\n fromICAL: function(aValue) {\n let parts = aValue.split('T');\n return (parts[0] ? vcardValues.date.fromICAL(parts[0]) : '') +\n (parts[1] ? 'T' + vcardValues.time.fromICAL(parts[1]) : '');\n },\n\n toICAL: function(aValue) {\n let parts = aValue.split('T');\n return vcardValues.date.toICAL(parts[0]) +\n (parts[1] ? 'T' + vcardValues.time.toICAL(parts[1]) : '');\n\n }\n },\n timestamp: icalValues['date-time'],\n \"language-tag\": {\n matches: /^[a-zA-Z0-9-]+$/ // Could go with a more strict regex here\n },\n \"phone-number\": {\n fromICAL: function(aValue) {\n return Array.from(aValue).filter(function(c) {\n return c === '\\\\' ? undefined : c;\n }).join('');\n },\n toICAL: function(aValue) {\n return Array.from(aValue).map(function(c) {\n return c === ',' || c === \";\" ? '\\\\' + c : c;\n }).join('');\n }\n }\n});\n\nlet vcardParams = {\n \"type\": {\n valueType: \"text\",\n multiValue: \",\"\n },\n \"value\": {\n // since the value here is a 'type' lowercase is used.\n values: [\"text\", \"uri\", \"date\", \"time\", \"date-time\", \"date-and-or-time\",\n \"timestamp\", \"boolean\", \"integer\", \"float\", \"utc-offset\",\n \"language-tag\"],\n allowXName: true,\n allowIanaToken: true\n }\n};\n\nlet vcardProperties = extend(commonProperties, {\n \"adr\": { defaultType: \"text\", structuredValue: \";\", multiValue: \",\" },\n \"anniversary\": DEFAULT_TYPE_DATE_ANDOR_TIME,\n \"bday\": DEFAULT_TYPE_DATE_ANDOR_TIME,\n \"caladruri\": DEFAULT_TYPE_URI,\n \"caluri\": DEFAULT_TYPE_URI,\n \"clientpidmap\": DEFAULT_TYPE_TEXT_STRUCTURED,\n \"email\": DEFAULT_TYPE_TEXT,\n \"fburl\": DEFAULT_TYPE_URI,\n \"fn\": DEFAULT_TYPE_TEXT,\n \"gender\": DEFAULT_TYPE_TEXT_STRUCTURED,\n \"geo\": DEFAULT_TYPE_URI,\n \"impp\": DEFAULT_TYPE_URI,\n \"key\": DEFAULT_TYPE_URI,\n \"kind\": DEFAULT_TYPE_TEXT,\n \"lang\": { defaultType: \"language-tag\" },\n \"logo\": DEFAULT_TYPE_URI,\n \"member\": DEFAULT_TYPE_URI,\n \"n\": { defaultType: \"text\", structuredValue: \";\", multiValue: \",\" },\n \"nickname\": DEFAULT_TYPE_TEXT_MULTI,\n \"note\": DEFAULT_TYPE_TEXT,\n \"org\": { defaultType: \"text\", structuredValue: \";\" },\n \"photo\": DEFAULT_TYPE_URI,\n \"related\": DEFAULT_TYPE_URI,\n \"rev\": { defaultType: \"timestamp\" },\n \"role\": DEFAULT_TYPE_TEXT,\n \"sound\": DEFAULT_TYPE_URI,\n \"source\": DEFAULT_TYPE_URI,\n \"tel\": { defaultType: \"uri\", allowedTypes: [\"uri\", \"text\"] },\n \"title\": DEFAULT_TYPE_TEXT,\n \"tz\": { defaultType: \"text\", allowedTypes: [\"text\", \"utc-offset\", \"uri\"] },\n \"xml\": DEFAULT_TYPE_TEXT\n});\n\nlet vcard3Values = extend(commonValues, {\n binary: icalValues.binary,\n date: vcardValues.date,\n \"date-time\": vcardValues[\"date-time\"],\n \"phone-number\": vcardValues[\"phone-number\"],\n uri: icalValues.uri,\n text: vcardValues.text,\n time: icalValues.time,\n vcard: icalValues.text,\n \"utc-offset\": {\n toICAL: function(aValue) {\n return aValue.slice(0, 7);\n },\n\n fromICAL: function(aValue) {\n return aValue.slice(0, 7);\n },\n\n decorate: function(aValue) {\n return UtcOffset.fromString(aValue);\n },\n\n undecorate: function(aValue) {\n return aValue.toString();\n }\n }\n});\n\nlet vcard3Params = {\n \"type\": {\n valueType: \"text\",\n multiValue: \",\"\n },\n \"value\": {\n // since the value here is a 'type' lowercase is used.\n values: [\"text\", \"uri\", \"date\", \"date-time\", \"phone-number\", \"time\",\n \"boolean\", \"integer\", \"float\", \"utc-offset\", \"vcard\", \"binary\"],\n allowXName: true,\n allowIanaToken: true\n }\n};\n\nlet vcard3Properties = extend(commonProperties, {\n fn: DEFAULT_TYPE_TEXT,\n n: { defaultType: \"text\", structuredValue: \";\", multiValue: \",\" },\n nickname: DEFAULT_TYPE_TEXT_MULTI,\n photo: { defaultType: \"binary\", allowedTypes: [\"binary\", \"uri\"] },\n bday: {\n defaultType: \"date-time\",\n allowedTypes: [\"date-time\", \"date\"],\n detectType: function(string) {\n return (string.indexOf('T') === -1) ? 'date' : 'date-time';\n }\n },\n\n adr: { defaultType: \"text\", structuredValue: \";\", multiValue: \",\" },\n label: DEFAULT_TYPE_TEXT,\n\n tel: { defaultType: \"phone-number\" },\n email: DEFAULT_TYPE_TEXT,\n mailer: DEFAULT_TYPE_TEXT,\n\n tz: { defaultType: \"utc-offset\", allowedTypes: [\"utc-offset\", \"text\"] },\n geo: { defaultType: \"float\", structuredValue: \";\" },\n\n title: DEFAULT_TYPE_TEXT,\n role: DEFAULT_TYPE_TEXT,\n logo: { defaultType: \"binary\", allowedTypes: [\"binary\", \"uri\"] },\n agent: { defaultType: \"vcard\", allowedTypes: [\"vcard\", \"text\", \"uri\"] },\n org: DEFAULT_TYPE_TEXT_STRUCTURED,\n\n note: DEFAULT_TYPE_TEXT_MULTI,\n prodid: DEFAULT_TYPE_TEXT,\n rev: {\n defaultType: \"date-time\",\n allowedTypes: [\"date-time\", \"date\"],\n detectType: function(string) {\n return (string.indexOf('T') === -1) ? 'date' : 'date-time';\n }\n },\n \"sort-string\": DEFAULT_TYPE_TEXT,\n sound: { defaultType: \"binary\", allowedTypes: [\"binary\", \"uri\"] },\n\n class: DEFAULT_TYPE_TEXT,\n key: { defaultType: \"binary\", allowedTypes: [\"binary\", \"text\"] }\n});\n\n/**\n * iCalendar design set\n * @type {designSet}\n */\nlet icalSet = {\n name: \"ical\",\n value: icalValues,\n param: icalParams,\n property: icalProperties,\n propertyGroups: false\n};\n\n/**\n * vCard 4.0 design set\n * @type {designSet}\n */\nlet vcardSet = {\n name: \"vcard4\",\n value: vcardValues,\n param: vcardParams,\n property: vcardProperties,\n propertyGroups: true\n};\n\n/**\n * vCard 3.0 design set\n * @type {designSet}\n */\nlet vcard3Set = {\n name: \"vcard3\",\n value: vcard3Values,\n param: vcard3Params,\n property: vcard3Properties,\n propertyGroups: true\n};\n\n/**\n * The design data, used by the parser to determine types for properties and\n * other metadata needed to produce correct jCard/jCal data.\n *\n * @alias ICAL.design\n * @exports module:ICAL.design\n */\nconst design = {\n /**\n * Can be set to false to make the parser more lenient.\n */\n strict: true,\n\n /**\n * The default set for new properties and components if none is specified.\n * @type {designSet}\n */\n defaultSet: icalSet,\n\n /**\n * The default type for unknown properties\n * @type {String}\n */\n defaultType: 'unknown',\n\n /**\n * Holds the design set for known top-level components\n *\n * @type {Object}\n * @property {designSet} vcard vCard VCARD\n * @property {designSet} vevent iCalendar VEVENT\n * @property {designSet} vtodo iCalendar VTODO\n * @property {designSet} vjournal iCalendar VJOURNAL\n * @property {designSet} valarm iCalendar VALARM\n * @property {designSet} vtimezone iCalendar VTIMEZONE\n * @property {designSet} daylight iCalendar DAYLIGHT\n * @property {designSet} standard iCalendar STANDARD\n *\n * @example\n * let propertyName = 'fn';\n * let componentDesign = ICAL.design.components.vcard;\n * let propertyDetails = componentDesign.property[propertyName];\n * if (propertyDetails.defaultType == 'text') {\n * // Yep, sure is...\n * }\n */\n components: {\n vcard: vcardSet,\n vcard3: vcard3Set,\n vevent: icalSet,\n vtodo: icalSet,\n vjournal: icalSet,\n valarm: icalSet,\n vtimezone: icalSet,\n daylight: icalSet,\n standard: icalSet\n },\n\n\n /**\n * The design set for iCalendar (rfc5545/rfc7265) components.\n * @type {designSet}\n */\n icalendar: icalSet,\n\n /**\n * The design set for vCard (rfc6350/rfc7095) components.\n * @type {designSet}\n */\n vcard: vcardSet,\n\n /**\n * The design set for vCard (rfc2425/rfc2426/rfc7095) components.\n * @type {designSet}\n */\n vcard3: vcard3Set,\n\n /**\n * Gets the design set for the given component name.\n *\n * @param {String} componentName The name of the component\n * @return {designSet} The design set for the component\n */\n getDesignSet: function(componentName) {\n let isInDesign = componentName && componentName in design.components;\n return isInDesign ? design.components[componentName] : design.defaultSet;\n }\n};\n\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch */\n\n\n/**\n * This lets typescript resolve our custom types in the\n * generated d.ts files (jsdoc typedefs are converted to typescript types).\n * Ignore prevents the typedefs from being documented more than once.\n *\n * @ignore\n * @typedef {import(\"./types.js\").designSet} designSet\n * Imports the 'designSet' type from the \"types.js\" module\n */\n\nconst LINE_ENDING = '\\r\\n';\nconst DEFAULT_VALUE_TYPE = 'unknown';\nconst RFC6868_REPLACE_MAP = { '\"': \"^'\", \"\\n\": \"^n\", \"^\": \"^^\" };\n\n/**\n * Convert a full jCal/jCard array into a iCalendar/vCard string.\n *\n * @function ICAL.stringify\n * @variation function\n * @param {Array} jCal The jCal/jCard document\n * @return {String} The stringified iCalendar/vCard document\n */\nfunction stringify(jCal) {\n if (typeof jCal[0] == \"string\") {\n // This is a single component\n jCal = [jCal];\n }\n\n let i = 0;\n let len = jCal.length;\n let result = '';\n\n for (; i < len; i++) {\n result += stringify.component(jCal[i]) + LINE_ENDING;\n }\n\n return result;\n}\n\n/**\n * Converts an jCal component array into a ICAL string.\n * Recursive will resolve sub-components.\n *\n * Exact component/property order is not saved all\n * properties will come before subcomponents.\n *\n * @function ICAL.stringify.component\n * @param {Array} component\n * jCal/jCard fragment of a component\n * @param {designSet} designSet\n * The design data to use for this component\n * @return {String} The iCalendar/vCard string\n */\nstringify.component = function(component, designSet) {\n let name = component[0].toUpperCase();\n let result = 'BEGIN:' + name + LINE_ENDING;\n\n let props = component[1];\n let propIdx = 0;\n let propLen = props.length;\n\n let designSetName = component[0];\n // rfc6350 requires that in vCard 4.0 the first component is the VERSION\n // component with as value 4.0, note that 3.0 does not have this requirement.\n if (designSetName === 'vcard' && component[1].length > 0 &&\n !(component[1][0][0] === \"version\" && component[1][0][3] === \"4.0\")) {\n designSetName = \"vcard3\";\n }\n designSet = designSet || design.getDesignSet(designSetName);\n\n for (; propIdx < propLen; propIdx++) {\n result += stringify.property(props[propIdx], designSet) + LINE_ENDING;\n }\n\n // Ignore subcomponents if none exist, e.g. in vCard.\n let comps = component[2] || [];\n let compIdx = 0;\n let compLen = comps.length;\n\n for (; compIdx < compLen; compIdx++) {\n result += stringify.component(comps[compIdx], designSet) + LINE_ENDING;\n }\n\n result += 'END:' + name;\n return result;\n};\n\n/**\n * Converts a single jCal/jCard property to a iCalendar/vCard string.\n *\n * @function ICAL.stringify.property\n * @param {Array} property\n * jCal/jCard property array\n * @param {designSet} designSet\n * The design data to use for this property\n * @param {Boolean} noFold\n * If true, the line is not folded\n * @return {String} The iCalendar/vCard string\n */\nstringify.property = function(property, designSet, noFold) {\n let name = property[0].toUpperCase();\n let jsName = property[0];\n let params = property[1];\n\n if (!designSet) {\n designSet = design.defaultSet;\n }\n\n let groupName = params.group;\n let line;\n if (designSet.propertyGroups && groupName) {\n line = groupName.toUpperCase() + \".\" + name;\n } else {\n line = name;\n }\n\n for (let [paramName, value] of Object.entries(params)) {\n if (designSet.propertyGroups && paramName == 'group') {\n continue;\n }\n\n let paramDesign = designSet.param[paramName];\n let multiValue = paramDesign && paramDesign.multiValue;\n if (multiValue && Array.isArray(value)) {\n value = value.map(function(val) {\n val = stringify._rfc6868Unescape(val);\n val = stringify.paramPropertyValue(val, paramDesign.multiValueSeparateDQuote);\n return val;\n });\n value = stringify.multiValue(value, multiValue, \"unknown\", null, designSet);\n } else {\n value = stringify._rfc6868Unescape(value);\n value = stringify.paramPropertyValue(value);\n }\n\n line += ';' + paramName.toUpperCase() + '=' + value;\n }\n\n if (property.length === 3) {\n // If there are no values, we must assume a blank value\n return line + ':';\n }\n\n let valueType = property[2];\n\n let propDetails;\n let multiValue = false;\n let structuredValue = false;\n let isDefault = false;\n\n if (jsName in designSet.property) {\n propDetails = designSet.property[jsName];\n\n if ('multiValue' in propDetails) {\n multiValue = propDetails.multiValue;\n }\n\n if (('structuredValue' in propDetails) && Array.isArray(property[3])) {\n structuredValue = propDetails.structuredValue;\n }\n\n if ('defaultType' in propDetails) {\n if (valueType === propDetails.defaultType) {\n isDefault = true;\n }\n } else {\n if (valueType === DEFAULT_VALUE_TYPE) {\n isDefault = true;\n }\n }\n } else {\n if (valueType === DEFAULT_VALUE_TYPE) {\n isDefault = true;\n }\n }\n\n // push the VALUE property if type is not the default\n // for the current property.\n if (!isDefault) {\n // value will never contain ;/:/, so we don't escape it here.\n line += ';VALUE=' + valueType.toUpperCase();\n }\n\n line += ':';\n\n if (multiValue && structuredValue) {\n line += stringify.multiValue(\n property[3], structuredValue, valueType, multiValue, designSet, structuredValue\n );\n } else if (multiValue) {\n line += stringify.multiValue(\n property.slice(3), multiValue, valueType, null, designSet, false\n );\n } else if (structuredValue) {\n line += stringify.multiValue(\n property[3], structuredValue, valueType, null, designSet, structuredValue\n );\n } else {\n line += stringify.value(property[3], valueType, designSet, false);\n }\n\n return noFold ? line : foldline(line);\n};\n\n/**\n * Handles escaping of property values that may contain:\n *\n * COLON (:), SEMICOLON (;), or COMMA (,)\n *\n * If any of the above are present the result is wrapped\n * in double quotes.\n *\n * @function ICAL.stringify.paramPropertyValue\n * @param {String} value Raw property value\n * @param {boolean} force If value should be escaped even when unnecessary\n * @return {String} Given or escaped value when needed\n */\nstringify.paramPropertyValue = function(value, force) {\n if (!force &&\n (value.indexOf(',') === -1) &&\n (value.indexOf(':') === -1) &&\n (value.indexOf(';') === -1)) {\n\n return value;\n }\n\n return '\"' + value + '\"';\n};\n\n/**\n * Converts an array of ical values into a single\n * string based on a type and a delimiter value (like \",\").\n *\n * @function ICAL.stringify.multiValue\n * @param {Array} values List of values to convert\n * @param {String} delim Used to join the values (\",\", \";\", \":\")\n * @param {String} type Lowecase ical value type\n * (like boolean, date-time, etc..)\n * @param {?String} innerMulti If set, each value will again be processed\n * Used for structured values\n * @param {designSet} designSet\n * The design data to use for this property\n *\n * @return {String} iCalendar/vCard string for value\n */\nstringify.multiValue = function(values, delim, type, innerMulti, designSet, structuredValue) {\n let result = '';\n let len = values.length;\n let i = 0;\n\n for (; i < len; i++) {\n if (innerMulti && Array.isArray(values[i])) {\n result += stringify.multiValue(values[i], innerMulti, type, null, designSet, structuredValue);\n } else {\n result += stringify.value(values[i], type, designSet, structuredValue);\n }\n\n if (i !== (len - 1)) {\n result += delim;\n }\n }\n\n return result;\n};\n\n/**\n * Processes a single ical value runs the associated \"toICAL\" method from the\n * design value type if available to convert the value.\n *\n * @function ICAL.stringify.value\n * @param {String|Number} value A formatted value\n * @param {String} type Lowercase iCalendar/vCard value type\n * (like boolean, date-time, etc..)\n * @return {String} iCalendar/vCard value for single value\n */\nstringify.value = function(value, type, designSet, structuredValue) {\n if (type in designSet.value && 'toICAL' in designSet.value[type]) {\n return designSet.value[type].toICAL(value, structuredValue);\n }\n return value;\n};\n\n/**\n * Internal helper for rfc6868. Exposing this on ICAL.stringify so that\n * hackers can disable the rfc6868 parsing if the really need to.\n *\n * @param {String} val The value to unescape\n * @return {String} The escaped value\n */\nstringify._rfc6868Unescape = function(val) {\n return val.replace(/[\\n^\"]/g, function(x) {\n return RFC6868_REPLACE_MAP[x];\n });\n};\n\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch */\n\nconst NAME_INDEX$1 = 0;\nconst PROP_INDEX = 1;\nconst TYPE_INDEX = 2;\nconst VALUE_INDEX = 3;\n\n/**\n * This lets typescript resolve our custom types in the\n * generated d.ts files (jsdoc typedefs are converted to typescript types).\n * Ignore prevents the typedefs from being documented more than once.\n * @ignore\n * @typedef {import(\"./types.js\").designSet} designSet\n * Imports the 'designSet' type from the \"types.js\" module\n * @typedef {import(\"./types.js\").Geo} Geo\n * Imports the 'Geo' type from the \"types.js\" module\n */\n\n/**\n * Provides a layer on top of the raw jCal object for manipulating a single property, with its\n * parameters and value.\n *\n * @memberof ICAL\n */\nclass Property {\n /**\n * Create an {@link ICAL.Property} by parsing the passed iCalendar string.\n *\n * @param {String} str The iCalendar string to parse\n * @param {designSet=} designSet The design data to use for this property\n * @return {Property} The created iCalendar property\n */\n static fromString(str, designSet) {\n return new Property(parse.property(str, designSet));\n }\n\n /**\n * Creates a new ICAL.Property instance.\n *\n * It is important to note that mutations done in the wrapper directly mutate the jCal object used\n * to initialize.\n *\n * Can also be used to create new properties by passing the name of the property (as a String).\n *\n * @param {Array|String} jCal Raw jCal representation OR the new name of the property\n * @param {Component=} parent Parent component\n */\n constructor(jCal, parent) {\n this._parent = parent || null;\n\n if (typeof(jCal) === 'string') {\n // We are creating the property by name and need to detect the type\n this.jCal = [jCal, {}, design.defaultType];\n this.jCal[TYPE_INDEX] = this.getDefaultType();\n } else {\n this.jCal = jCal;\n }\n this._updateType();\n }\n\n /**\n * The value type for this property\n * @type {String}\n */\n get type() {\n return this.jCal[TYPE_INDEX];\n }\n\n /**\n * The name of this property, in lowercase.\n * @type {String}\n */\n get name() {\n return this.jCal[NAME_INDEX$1];\n }\n\n /**\n * The parent component for this property.\n * @type {Component}\n */\n get parent() {\n return this._parent;\n }\n\n set parent(p) {\n // Before setting the parent, check if the design set has changed. If it\n // has, we later need to update the type if it was unknown before.\n let designSetChanged = !this._parent || (p && p._designSet != this._parent._designSet);\n\n this._parent = p;\n\n if (this.type == design.defaultType && designSetChanged) {\n this.jCal[TYPE_INDEX] = this.getDefaultType();\n this._updateType();\n }\n }\n\n /**\n * The design set for this property, e.g. icalendar vs vcard\n *\n * @type {designSet}\n * @private\n */\n get _designSet() {\n return this.parent ? this.parent._designSet : design.defaultSet;\n }\n\n /**\n * Updates the type metadata from the current jCal type and design set.\n *\n * @private\n */\n _updateType() {\n let designSet = this._designSet;\n\n if (this.type in designSet.value) {\n if ('decorate' in designSet.value[this.type]) {\n this.isDecorated = true;\n } else {\n this.isDecorated = false;\n }\n\n if (this.name in designSet.property) {\n this.isMultiValue = ('multiValue' in designSet.property[this.name]);\n this.isStructuredValue = ('structuredValue' in designSet.property[this.name]);\n }\n }\n }\n\n /**\n * Hydrate a single value. The act of hydrating means turning the raw jCal\n * value into a potentially wrapped object, for example {@link ICAL.Time}.\n *\n * @private\n * @param {Number} index The index of the value to hydrate\n * @return {?Object} The decorated value.\n */\n _hydrateValue(index) {\n if (this._values && this._values[index]) {\n return this._values[index];\n }\n\n // for the case where there is no value.\n if (this.jCal.length <= (VALUE_INDEX + index)) {\n return null;\n }\n\n if (this.isDecorated) {\n if (!this._values) {\n this._values = [];\n }\n return (this._values[index] = this._decorate(\n this.jCal[VALUE_INDEX + index]\n ));\n } else {\n return this.jCal[VALUE_INDEX + index];\n }\n }\n\n /**\n * Decorate a single value, returning its wrapped object. This is used by\n * the hydrate function to actually wrap the value.\n *\n * @private\n * @param {?} value The value to decorate\n * @return {Object} The decorated value\n */\n _decorate(value) {\n return this._designSet.value[this.type].decorate(value, this);\n }\n\n /**\n * Undecorate a single value, returning its raw jCal data.\n *\n * @private\n * @param {Object} value The value to undecorate\n * @return {?} The undecorated value\n */\n _undecorate(value) {\n return this._designSet.value[this.type].undecorate(value, this);\n }\n\n /**\n * Sets the value at the given index while also hydrating it. The passed\n * value can either be a decorated or undecorated value.\n *\n * @private\n * @param {?} value The value to set\n * @param {Number} index The index to set it at\n */\n _setDecoratedValue(value, index) {\n if (!this._values) {\n this._values = [];\n }\n\n if (typeof(value) === 'object' && 'icaltype' in value) {\n // decorated value\n this.jCal[VALUE_INDEX + index] = this._undecorate(value);\n this._values[index] = value;\n } else {\n // undecorated value\n this.jCal[VALUE_INDEX + index] = value;\n this._values[index] = this._decorate(value);\n }\n }\n\n /**\n * Gets a parameter on the property.\n *\n * @param {String} name Parameter name (lowercase)\n * @return {Array|String} Parameter value\n */\n getParameter(name) {\n if (name in this.jCal[PROP_INDEX]) {\n return this.jCal[PROP_INDEX][name];\n } else {\n return undefined;\n }\n }\n\n /**\n * Gets first parameter on the property.\n *\n * @param {String} name Parameter name (lowercase)\n * @return {String} Parameter value\n */\n getFirstParameter(name) {\n let parameters = this.getParameter(name);\n\n if (Array.isArray(parameters)) {\n return parameters[0];\n }\n\n return parameters;\n }\n\n /**\n * Sets a parameter on the property.\n *\n * @param {String} name The parameter name\n * @param {Array|String} value The parameter value\n */\n setParameter(name, value) {\n let lcname = name.toLowerCase();\n if (typeof value === \"string\" &&\n lcname in this._designSet.param &&\n 'multiValue' in this._designSet.param[lcname]) {\n value = [value];\n }\n this.jCal[PROP_INDEX][name] = value;\n }\n\n /**\n * Removes a parameter\n *\n * @param {String} name The parameter name\n */\n removeParameter(name) {\n delete this.jCal[PROP_INDEX][name];\n }\n\n /**\n * Get the default type based on this property's name.\n *\n * @return {String} The default type for this property\n */\n getDefaultType() {\n let name = this.jCal[NAME_INDEX$1];\n let designSet = this._designSet;\n\n if (name in designSet.property) {\n let details = designSet.property[name];\n if ('defaultType' in details) {\n return details.defaultType;\n }\n }\n return design.defaultType;\n }\n\n /**\n * Sets type of property and clears out any existing values of the current\n * type.\n *\n * @param {String} type New iCAL type (see design.*.values)\n */\n resetType(type) {\n this.removeAllValues();\n this.jCal[TYPE_INDEX] = type;\n this._updateType();\n }\n\n /**\n * Finds the first property value.\n *\n * @return {Binary | Duration | Period |\n * Recur | Time | UtcOffset | Geo | string | null} First property value\n */\n getFirstValue() {\n return this._hydrateValue(0);\n }\n\n /**\n * Gets all values on the property.\n *\n * NOTE: this creates an array during each call.\n *\n * @return {Array} List of values\n */\n getValues() {\n let len = this.jCal.length - VALUE_INDEX;\n\n if (len < 1) {\n // it is possible for a property to have no value.\n return [];\n }\n\n let i = 0;\n let result = [];\n\n for (; i < len; i++) {\n result[i] = this._hydrateValue(i);\n }\n\n return result;\n }\n\n /**\n * Removes all values from this property\n */\n removeAllValues() {\n if (this._values) {\n this._values.length = 0;\n }\n this.jCal.length = 3;\n }\n\n /**\n * Sets the values of the property. Will overwrite the existing values.\n * This can only be used for multi-value properties.\n *\n * @param {Array} values An array of values\n */\n setValues(values) {\n if (!this.isMultiValue) {\n throw new Error(\n this.name + ': does not not support mulitValue.\\n' +\n 'override isMultiValue'\n );\n }\n\n let len = values.length;\n let i = 0;\n this.removeAllValues();\n\n if (len > 0 &&\n typeof(values[0]) === 'object' &&\n 'icaltype' in values[0]) {\n this.resetType(values[0].icaltype);\n }\n\n if (this.isDecorated) {\n for (; i < len; i++) {\n this._setDecoratedValue(values[i], i);\n }\n } else {\n for (; i < len; i++) {\n this.jCal[VALUE_INDEX + i] = values[i];\n }\n }\n }\n\n /**\n * Sets the current value of the property. If this is a multi-value\n * property, all other values will be removed.\n *\n * @param {String|Object} value New property value.\n */\n setValue(value) {\n this.removeAllValues();\n if (typeof(value) === 'object' && 'icaltype' in value) {\n this.resetType(value.icaltype);\n }\n\n if (this.isDecorated) {\n this._setDecoratedValue(value, 0);\n } else {\n this.jCal[VALUE_INDEX] = value;\n }\n }\n\n /**\n * Returns the Object representation of this component. The returned object\n * is a live jCal object and should be cloned if modified.\n * @return {Object}\n */\n toJSON() {\n return this.jCal;\n }\n\n /**\n * The string representation of this component.\n * @return {String}\n */\n toICALString() {\n return stringify.property(\n this.jCal, this._designSet, true\n );\n }\n}\n\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch */\n\n\n/**\n * This lets typescript resolve our custom types in the\n * generated d.ts files (jsdoc typedefs are converted to typescript types).\n * Ignore prevents the typedefs from being documented more than once.\n * @ignore\n * @typedef {import(\"./types.js\").designSet} designSet\n * Imports the 'designSet' type from the \"types.js\" module\n * @typedef {import(\"./types.js\").Geo} Geo\n * Imports the 'Geo' type from the \"types.js\" module\n */\n\nconst NAME_INDEX = 0;\nconst PROPERTY_INDEX = 1;\nconst COMPONENT_INDEX = 2;\n\nconst PROPERTY_NAME_INDEX = 0;\nconst PROPERTY_VALUE_INDEX = 3;\n\n/**\n * Wraps a jCal component, adding convenience methods to add, remove and update subcomponents and\n * properties.\n *\n * @memberof ICAL\n */\nclass Component {\n /**\n * Create an {@link ICAL.Component} by parsing the passed iCalendar string.\n *\n * @param {String} str The iCalendar string to parse\n */\n static fromString(str) {\n return new Component(parse.component(str));\n }\n\n /**\n * Creates a new Component instance.\n *\n * @param {Array|String} jCal Raw jCal component data OR name of new\n * component\n * @param {Component=} parent Parent component to associate\n */\n constructor(jCal, parent) {\n if (typeof(jCal) === 'string') {\n // jCal spec (name, properties, components)\n jCal = [jCal, [], []];\n }\n\n // mostly for legacy reasons.\n this.jCal = jCal;\n\n this.parent = parent || null;\n\n if (!this.parent && this.name === 'vcalendar') {\n this._timezoneCache = new Map();\n }\n }\n\n /**\n * Hydrated properties are inserted into the _properties array at the same\n * position as in the jCal array, so it is possible that the array contains\n * undefined values for unhydrdated properties. To avoid iterating the\n * array when checking if all properties have been hydrated, we save the\n * count here.\n *\n * @type {Number}\n * @private\n */\n _hydratedPropertyCount = 0;\n\n /**\n * The same count as for _hydratedPropertyCount, but for subcomponents\n *\n * @type {Number}\n * @private\n */\n _hydratedComponentCount = 0;\n\n /**\n * A cache of hydrated time zone objects which may be used by consumers, keyed\n * by time zone ID.\n *\n * @type {Map}\n * @private\n */\n _timezoneCache = null;\n\n /**\n * @private\n */\n _components = null;\n\n /**\n * @private\n */\n _properties = null;\n\n /**\n * The name of this component\n *\n * @type {String}\n */\n get name() {\n return this.jCal[NAME_INDEX];\n }\n\n /**\n * The design set for this component, e.g. icalendar vs vcard\n *\n * @type {designSet}\n * @private\n */\n get _designSet() {\n let parentDesign = this.parent && this.parent._designSet;\n if (!parentDesign && this.name == \"vcard\") {\n // We can't decide on vcard3 vs vcard4 just based on the component name, the version number is\n // in the version property. We also can't use hydrated properties here because it would lead\n // to recursion, but the spec says that the version property needs to be the very first one.\n let versionProp = this.jCal[PROPERTY_INDEX]?.[0];\n\n if (versionProp && versionProp[PROPERTY_NAME_INDEX] == \"version\" && versionProp[PROPERTY_VALUE_INDEX] == \"3.0\") {\n return design.getDesignSet(\"vcard3\");\n }\n }\n\n return parentDesign || design.getDesignSet(this.name);\n }\n\n /**\n * @private\n */\n _hydrateComponent(index) {\n if (!this._components) {\n this._components = [];\n this._hydratedComponentCount = 0;\n }\n\n if (this._components[index]) {\n return this._components[index];\n }\n\n let comp = new Component(\n this.jCal[COMPONENT_INDEX][index],\n this\n );\n\n this._hydratedComponentCount++;\n return (this._components[index] = comp);\n }\n\n /**\n * @private\n */\n _hydrateProperty(index) {\n if (!this._properties) {\n this._properties = [];\n this._hydratedPropertyCount = 0;\n }\n\n if (this._properties[index]) {\n return this._properties[index];\n }\n\n let prop = new Property(\n this.jCal[PROPERTY_INDEX][index],\n this\n );\n\n this._hydratedPropertyCount++;\n return (this._properties[index] = prop);\n }\n\n /**\n * Finds first sub component, optionally filtered by name.\n *\n * @param {String=} name Optional name to filter by\n * @return {?Component} The found subcomponent\n */\n getFirstSubcomponent(name) {\n if (name) {\n let i = 0;\n let comps = this.jCal[COMPONENT_INDEX];\n let len = comps.length;\n\n for (; i < len; i++) {\n if (comps[i][NAME_INDEX] === name) {\n let result = this._hydrateComponent(i);\n return result;\n }\n }\n } else {\n if (this.jCal[COMPONENT_INDEX].length) {\n return this._hydrateComponent(0);\n }\n }\n\n // ensure we return a value (strict mode)\n return null;\n }\n\n /**\n * Finds all sub components, optionally filtering by name.\n *\n * @param {String=} name Optional name to filter by\n * @return {Component[]} The found sub components\n */\n getAllSubcomponents(name) {\n let jCalLen = this.jCal[COMPONENT_INDEX].length;\n let i = 0;\n\n if (name) {\n let comps = this.jCal[COMPONENT_INDEX];\n let result = [];\n\n for (; i < jCalLen; i++) {\n if (name === comps[i][NAME_INDEX]) {\n result.push(\n this._hydrateComponent(i)\n );\n }\n }\n return result;\n } else {\n if (!this._components ||\n (this._hydratedComponentCount !== jCalLen)) {\n for (; i < jCalLen; i++) {\n this._hydrateComponent(i);\n }\n }\n\n return this._components || [];\n }\n }\n\n /**\n * Returns true when a named property exists.\n *\n * @param {String} name The property name\n * @return {Boolean} True, when property is found\n */\n hasProperty(name) {\n let props = this.jCal[PROPERTY_INDEX];\n let len = props.length;\n\n let i = 0;\n for (; i < len; i++) {\n // 0 is property name\n if (props[i][NAME_INDEX] === name) {\n return true;\n }\n }\n\n return false;\n }\n\n /**\n * Finds the first property, optionally with the given name.\n *\n * @param {String=} name Lowercase property name\n * @return {?Property} The found property\n */\n getFirstProperty(name) {\n if (name) {\n let i = 0;\n let props = this.jCal[PROPERTY_INDEX];\n let len = props.length;\n\n for (; i < len; i++) {\n if (props[i][NAME_INDEX] === name) {\n let result = this._hydrateProperty(i);\n return result;\n }\n }\n } else {\n if (this.jCal[PROPERTY_INDEX].length) {\n return this._hydrateProperty(0);\n }\n }\n\n return null;\n }\n\n /**\n * Returns first property's value, if available.\n *\n * @param {String=} name Lowercase property name\n * @return {Binary | Duration | Period |\n * Recur | Time | UtcOffset | Geo | string | null} The found property value.\n */\n getFirstPropertyValue(name) {\n let prop = this.getFirstProperty(name);\n if (prop) {\n return prop.getFirstValue();\n }\n\n return null;\n }\n\n /**\n * Get all properties in the component, optionally filtered by name.\n *\n * @param {String=} name Lowercase property name\n * @return {Property[]} List of properties\n */\n getAllProperties(name) {\n let jCalLen = this.jCal[PROPERTY_INDEX].length;\n let i = 0;\n\n if (name) {\n let props = this.jCal[PROPERTY_INDEX];\n let result = [];\n\n for (; i < jCalLen; i++) {\n if (name === props[i][NAME_INDEX]) {\n result.push(\n this._hydrateProperty(i)\n );\n }\n }\n return result;\n } else {\n if (!this._properties ||\n (this._hydratedPropertyCount !== jCalLen)) {\n for (; i < jCalLen; i++) {\n this._hydrateProperty(i);\n }\n }\n\n return this._properties || [];\n }\n }\n\n /**\n * @private\n */\n _removeObjectByIndex(jCalIndex, cache, index) {\n cache = cache || [];\n // remove cached version\n if (cache[index]) {\n let obj = cache[index];\n if (\"parent\" in obj) {\n obj.parent = null;\n }\n }\n\n cache.splice(index, 1);\n\n // remove it from the jCal\n this.jCal[jCalIndex].splice(index, 1);\n }\n\n /**\n * @private\n */\n _removeObject(jCalIndex, cache, nameOrObject) {\n let i = 0;\n let objects = this.jCal[jCalIndex];\n let len = objects.length;\n let cached = this[cache];\n\n if (typeof(nameOrObject) === 'string') {\n for (; i < len; i++) {\n if (objects[i][NAME_INDEX] === nameOrObject) {\n this._removeObjectByIndex(jCalIndex, cached, i);\n return true;\n }\n }\n } else if (cached) {\n for (; i < len; i++) {\n if (cached[i] && cached[i] === nameOrObject) {\n this._removeObjectByIndex(jCalIndex, cached, i);\n return true;\n }\n }\n }\n\n return false;\n }\n\n /**\n * @private\n */\n _removeAllObjects(jCalIndex, cache, name) {\n let cached = this[cache];\n\n // Unfortunately we have to run through all children to reset their\n // parent property.\n let objects = this.jCal[jCalIndex];\n let i = objects.length - 1;\n\n // descending search required because splice\n // is used and will effect the indices.\n for (; i >= 0; i--) {\n if (!name || objects[i][NAME_INDEX] === name) {\n this._removeObjectByIndex(jCalIndex, cached, i);\n }\n }\n }\n\n /**\n * Adds a single sub component.\n *\n * @param {Component} component The component to add\n * @return {Component} The passed in component\n */\n addSubcomponent(component) {\n if (!this._components) {\n this._components = [];\n this._hydratedComponentCount = 0;\n }\n\n if (component.parent) {\n component.parent.removeSubcomponent(component);\n }\n\n let idx = this.jCal[COMPONENT_INDEX].push(component.jCal);\n this._components[idx - 1] = component;\n this._hydratedComponentCount++;\n component.parent = this;\n return component;\n }\n\n /**\n * Removes a single component by name or the instance of a specific\n * component.\n *\n * @param {Component|String} nameOrComp Name of component, or component\n * @return {Boolean} True when comp is removed\n */\n removeSubcomponent(nameOrComp) {\n let removed = this._removeObject(COMPONENT_INDEX, '_components', nameOrComp);\n if (removed) {\n this._hydratedComponentCount--;\n }\n return removed;\n }\n\n /**\n * Removes all components or (if given) all components by a particular\n * name.\n *\n * @param {String=} name Lowercase component name\n */\n removeAllSubcomponents(name) {\n let removed = this._removeAllObjects(COMPONENT_INDEX, '_components', name);\n this._hydratedComponentCount = 0;\n return removed;\n }\n\n /**\n * Adds an {@link ICAL.Property} to the component.\n *\n * @param {Property} property The property to add\n * @return {Property} The passed in property\n */\n addProperty(property) {\n if (!(property instanceof Property)) {\n throw new TypeError('must be instance of ICAL.Property');\n }\n\n if (!this._properties) {\n this._properties = [];\n this._hydratedPropertyCount = 0;\n }\n\n if (property.parent) {\n property.parent.removeProperty(property);\n }\n\n let idx = this.jCal[PROPERTY_INDEX].push(property.jCal);\n this._properties[idx - 1] = property;\n this._hydratedPropertyCount++;\n property.parent = this;\n return property;\n }\n\n /**\n * Helper method to add a property with a value to the component.\n *\n * @param {String} name Property name to add\n * @param {String|Number|Object} value Property value\n * @return {Property} The created property\n */\n addPropertyWithValue(name, value) {\n let prop = new Property(name);\n prop.setValue(value);\n\n this.addProperty(prop);\n\n return prop;\n }\n\n /**\n * Helper method that will update or create a property of the given name\n * and sets its value. If multiple properties with the given name exist,\n * only the first is updated.\n *\n * @param {String} name Property name to update\n * @param {String|Number|Object} value Property value\n * @return {Property} The created property\n */\n updatePropertyWithValue(name, value) {\n let prop = this.getFirstProperty(name);\n\n if (prop) {\n prop.setValue(value);\n } else {\n prop = this.addPropertyWithValue(name, value);\n }\n\n return prop;\n }\n\n /**\n * Removes a single property by name or the instance of the specific\n * property.\n *\n * @param {String|Property} nameOrProp Property name or instance to remove\n * @return {Boolean} True, when deleted\n */\n removeProperty(nameOrProp) {\n let removed = this._removeObject(PROPERTY_INDEX, '_properties', nameOrProp);\n if (removed) {\n this._hydratedPropertyCount--;\n }\n return removed;\n }\n\n /**\n * Removes all properties associated with this component, optionally\n * filtered by name.\n *\n * @param {String=} name Lowercase property name\n * @return {Boolean} True, when deleted\n */\n removeAllProperties(name) {\n let removed = this._removeAllObjects(PROPERTY_INDEX, '_properties', name);\n this._hydratedPropertyCount = 0;\n return removed;\n }\n\n /**\n * Returns the Object representation of this component. The returned object\n * is a live jCal object and should be cloned if modified.\n * @return {Object}\n */\n toJSON() {\n return this.jCal;\n }\n\n /**\n * The string representation of this component.\n * @return {String}\n */\n toString() {\n return stringify.component(\n this.jCal, this._designSet\n );\n }\n\n /**\n * Retrieve a time zone definition from the component tree, if any is present.\n * If the tree contains no time zone definitions or the TZID cannot be\n * matched, returns null.\n *\n * @param {String} tzid The ID of the time zone to retrieve\n * @return {Timezone} The time zone corresponding to the ID, or null\n */\n getTimeZoneByID(tzid) {\n // VTIMEZONE components can only appear as a child of the VCALENDAR\n // component; walk the tree if we're not the root.\n if (this.parent) {\n return this.parent.getTimeZoneByID(tzid);\n }\n\n // If there is no time zone cache, we are probably parsing an incomplete\n // file and will have no time zone definitions.\n if (!this._timezoneCache) {\n return null;\n }\n\n if (this._timezoneCache.has(tzid)) {\n return this._timezoneCache.get(tzid);\n }\n\n // If the time zone is not already cached, hydrate it from the\n // subcomponents.\n const zones = this.getAllSubcomponents('vtimezone');\n for (const zone of zones) {\n if (zone.getFirstProperty('tzid').getFirstValue() === tzid) {\n const hydratedZone = new Timezone({\n component: zone,\n tzid: tzid,\n });\n\n this._timezoneCache.set(tzid, hydratedZone);\n\n return hydratedZone;\n }\n }\n\n // Per the standard, we should always have a time zone defined in a file\n // for any referenced TZID, but don't blow up if the file is invalid.\n return null;\n }\n}\n\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch */\n\n\n/**\n * Primary class for expanding recurring rules. Can take multiple rrules, rdates, exdate(s) and\n * iterate (in order) over each next occurrence.\n *\n * Once initialized this class can also be serialized saved and continue iteration from the last\n * point.\n *\n * NOTE: it is intended that this class is to be used with {@link ICAL.Event} which handles recurrence\n * exceptions.\n *\n * @example\n * // assuming event is a parsed ical component\n * var event;\n *\n * var expand = new ICAL.RecurExpansion({\n * component: event,\n * dtstart: event.getFirstPropertyValue('dtstart')\n * });\n *\n * // remember there are infinite rules so it is a good idea to limit the scope of the iterations\n * // then resume later on.\n *\n * // next is always an ICAL.Time or null\n * var next;\n *\n * while (someCondition && (next = expand.next())) {\n * // do something with next\n * }\n *\n * // save instance for later\n * var json = JSON.stringify(expand);\n *\n * //...\n *\n * // NOTE: if the component's properties have changed you will need to rebuild the class and start\n * // over. This only works when the component's recurrence info is the same.\n * var expand = new ICAL.RecurExpansion(JSON.parse(json));\n *\n * @memberof ICAL\n */\nclass RecurExpansion {\n /**\n * Creates a new ICAL.RecurExpansion instance.\n *\n * The options object can be filled with the specified initial values. It can also contain\n * additional members, as a result of serializing a previous expansion state, as shown in the\n * example.\n *\n * @param {Object} options\n * Recurrence expansion options\n * @param {Time} options.dtstart\n * Start time of the event\n * @param {Component=} options.component\n * Component for expansion, required if not resuming.\n */\n constructor(options) {\n this.ruleDates = [];\n this.exDates = [];\n this.fromData(options);\n }\n\n /**\n * True when iteration is fully completed.\n * @type {Boolean}\n */\n complete = false;\n\n /**\n * Array of rrule iterators.\n *\n * @type {RecurIterator[]}\n * @private\n */\n ruleIterators = null;\n\n /**\n * Array of rdate instances.\n *\n * @type {Time[]}\n * @private\n */\n ruleDates = null;\n\n /**\n * Array of exdate instances.\n *\n * @type {Time[]}\n * @private\n */\n exDates = null;\n\n /**\n * Current position in ruleDates array.\n * @type {Number}\n * @private\n */\n ruleDateInc = 0;\n\n /**\n * Current position in exDates array\n * @type {Number}\n * @private\n */\n exDateInc = 0;\n\n /**\n * Current negative date.\n *\n * @type {Time}\n * @private\n */\n exDate = null;\n\n /**\n * Current additional date.\n *\n * @type {Time}\n * @private\n */\n ruleDate = null;\n\n /**\n * Start date of recurring rules.\n *\n * @type {Time}\n */\n dtstart = null;\n\n /**\n * Last expanded time\n *\n * @type {Time}\n */\n last = null;\n\n /**\n * Initialize the recurrence expansion from the data object. The options\n * object may also contain additional members, see the\n * {@link ICAL.RecurExpansion constructor} for more details.\n *\n * @param {Object} options\n * Recurrence expansion options\n * @param {Time} options.dtstart\n * Start time of the event\n * @param {Component=} options.component\n * Component for expansion, required if not resuming.\n */\n fromData(options) {\n let start = formatClassType(options.dtstart, Time);\n\n if (!start) {\n throw new Error('.dtstart (ICAL.Time) must be given');\n } else {\n this.dtstart = start;\n }\n\n if (options.component) {\n this._init(options.component);\n } else {\n this.last = formatClassType(options.last, Time) || start.clone();\n\n if (!options.ruleIterators) {\n throw new Error('.ruleIterators or .component must be given');\n }\n\n this.ruleIterators = options.ruleIterators.map(function(item) {\n return formatClassType(item, RecurIterator);\n });\n\n this.ruleDateInc = options.ruleDateInc;\n this.exDateInc = options.exDateInc;\n\n if (options.ruleDates) {\n this.ruleDates = options.ruleDates.map(item => formatClassType(item, Time));\n this.ruleDate = this.ruleDates[this.ruleDateInc];\n }\n\n if (options.exDates) {\n this.exDates = options.exDates.map(item => formatClassType(item, Time));\n this.exDate = this.exDates[this.exDateInc];\n }\n\n if (typeof(options.complete) !== 'undefined') {\n this.complete = options.complete;\n }\n }\n }\n\n /**\n * Compare two ICAL.Time objects. When the second parameter is a DATE and the first parameter is\n * DATE-TIME, strip the time and compare only the days.\n *\n * @private\n * @param {Time} a The one object to compare\n * @param {Time} b The other object to compare\n */\n _compare_special(a, b) {\n if (!a.isDate && b.isDate)\n return new Time({ year: a.year, month: a.month, day: a.day }).compare(b);\n return a.compare(b);\n }\n\n /**\n * Retrieve the next occurrence in the series.\n * @return {Time}\n */\n next() {\n let iter;\n let next;\n let compare;\n\n let maxTries = 500;\n let currentTry = 0;\n\n while (true) {\n if (currentTry++ > maxTries) {\n throw new Error(\n 'max tries have occurred, rule may be impossible to fulfill.'\n );\n }\n\n next = this.ruleDate;\n iter = this._nextRecurrenceIter(this.last);\n\n // no more matches\n // because we increment the rule day or rule\n // _after_ we choose a value this should be\n // the only spot where we need to worry about the\n // end of events.\n if (!next && !iter) {\n // there are no more iterators or rdates\n this.complete = true;\n break;\n }\n\n // no next rule day or recurrence rule is first.\n if (!next || (iter && next.compare(iter.last) > 0)) {\n // must be cloned, recur will reuse the time element.\n next = iter.last.clone();\n // move to next so we can continue\n iter.next();\n }\n\n // if the ruleDate is still next increment it.\n if (this.ruleDate === next) {\n this._nextRuleDay();\n }\n\n this.last = next;\n\n // check the negative rules\n if (this.exDate) {\n // EXDATE can be in DATE format, but DTSTART is in DATE-TIME format\n compare = this._compare_special(this.last, this.exDate);\n\n if (compare > 0) {\n this._nextExDay();\n }\n\n // if the current rule is excluded skip it.\n if (compare === 0) {\n this._nextExDay();\n continue;\n }\n }\n\n //XXX: The spec states that after we resolve the final\n // list of dates we execute exdate this seems somewhat counter\n // intuitive to what I have seen most servers do so for now\n // I exclude based on the original date not the one that may\n // have been modified by the exception.\n return this.last;\n }\n }\n\n /**\n * Converts object into a serialize-able format. This format can be passed\n * back into the expansion to resume iteration.\n * @return {Object}\n */\n toJSON() {\n function toJSON(item) {\n return item.toJSON();\n }\n\n let result = Object.create(null);\n result.ruleIterators = this.ruleIterators.map(toJSON);\n\n if (this.ruleDates) {\n result.ruleDates = this.ruleDates.map(toJSON);\n }\n\n if (this.exDates) {\n result.exDates = this.exDates.map(toJSON);\n }\n\n result.ruleDateInc = this.ruleDateInc;\n result.exDateInc = this.exDateInc;\n result.last = this.last.toJSON();\n result.dtstart = this.dtstart.toJSON();\n result.complete = this.complete;\n\n return result;\n }\n\n /**\n * Extract all dates from the properties in the given component. The\n * properties will be filtered by the property name.\n *\n * @private\n * @param {Component} component The component to search in\n * @param {String} propertyName The property name to search for\n * @return {Time[]} The extracted dates.\n */\n _extractDates(component, propertyName) {\n let result = [];\n let props = component.getAllProperties(propertyName);\n\n for (let i = 0, len = props.length; i < len; i++) {\n for (let prop of props[i].getValues()) {\n let idx = binsearchInsert(\n result,\n prop,\n (a, b) => a.compare(b)\n );\n\n // ordered insert\n result.splice(idx, 0, prop);\n }\n }\n\n return result;\n }\n\n /**\n * Initialize the recurrence expansion.\n *\n * @private\n * @param {Component} component The component to initialize from.\n */\n _init(component) {\n this.ruleIterators = [];\n\n this.last = this.dtstart.clone();\n\n // to provide api consistency non-recurring\n // events can also use the iterator though it will\n // only return a single time.\n if (!component.hasProperty('rdate') &&\n !component.hasProperty('rrule') &&\n !component.hasProperty('recurrence-id')) {\n this.ruleDate = this.last.clone();\n this.complete = true;\n return;\n }\n\n if (component.hasProperty('rdate')) {\n this.ruleDates = this._extractDates(component, 'rdate');\n\n // special hack for cases where first rdate is prior\n // to the start date. We only check for the first rdate.\n // This is mostly for google's crazy recurring date logic\n // (contacts birthdays).\n if ((this.ruleDates[0]) &&\n (this.ruleDates[0].compare(this.dtstart) < 0)) {\n\n this.ruleDateInc = 0;\n this.last = this.ruleDates[0].clone();\n } else {\n this.ruleDateInc = binsearchInsert(\n this.ruleDates,\n this.last,\n (a, b) => a.compare(b)\n );\n }\n\n this.ruleDate = this.ruleDates[this.ruleDateInc];\n }\n\n if (component.hasProperty('rrule')) {\n let rules = component.getAllProperties('rrule');\n let i = 0;\n let len = rules.length;\n\n let rule;\n let iter;\n\n for (; i < len; i++) {\n rule = rules[i].getFirstValue();\n iter = rule.iterator(this.dtstart);\n this.ruleIterators.push(iter);\n\n // increment to the next occurrence so future\n // calls to next return times beyond the initial iteration.\n // XXX: I find this suspicious might be a bug?\n iter.next();\n }\n }\n\n if (component.hasProperty('exdate')) {\n this.exDates = this._extractDates(component, 'exdate');\n // if we have a .last day we increment the index to beyond it.\n // When DTSTART is in DATE-TIME format, EXDATE is in DATE format and EXDATE is\n // the date of DTSTART, _compare_special finds this out and compareTime fails.\n this.exDateInc = binsearchInsert(\n this.exDates,\n this.last,\n this._compare_special\n );\n\n this.exDate = this.exDates[this.exDateInc];\n }\n }\n\n /**\n * Advance to the next exdate\n * @private\n */\n _nextExDay() {\n this.exDate = this.exDates[++this.exDateInc];\n }\n\n /**\n * Advance to the next rule date\n * @private\n */\n _nextRuleDay() {\n this.ruleDate = this.ruleDates[++this.ruleDateInc];\n }\n\n /**\n * Find and return the recurrence rule with the most recent event and\n * return it.\n *\n * @private\n * @return {?RecurIterator} Found iterator.\n */\n _nextRecurrenceIter() {\n let iters = this.ruleIterators;\n\n if (iters.length === 0) {\n return null;\n }\n\n let len = iters.length;\n let iter;\n let iterTime;\n let iterIdx = 0;\n let chosenIter;\n\n // loop through each iterator\n for (; iterIdx < len; iterIdx++) {\n iter = iters[iterIdx];\n iterTime = iter.last;\n\n // if iteration is complete\n // then we must exclude it from\n // the search and remove it.\n if (iter.completed) {\n len--;\n if (iterIdx !== 0) {\n iterIdx--;\n }\n iters.splice(iterIdx, 1);\n continue;\n }\n\n // find the most recent possible choice\n if (!chosenIter || chosenIter.last.compare(iterTime) > 0) {\n // that iterator is saved\n chosenIter = iter;\n }\n }\n\n // the chosen iterator is returned but not mutated\n // this iterator contains the most recent event.\n return chosenIter;\n }\n}\n\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch */\n\n\n/**\n * This lets typescript resolve our custom types in the\n * generated d.ts files (jsdoc typedefs are converted to typescript types).\n * Ignore prevents the typedefs from being documented more than once.\n * @ignore\n * @typedef {import(\"./types.js\").frequencyValues} frequencyValues\n * Imports the 'frequencyValues' type from the \"types.js\" module\n * @typedef {import(\"./types.js\").occurrenceDetails} occurrenceDetails\n * Imports the 'occurrenceDetails' type from the \"types.js\" module\n */\n\n/**\n * ICAL.js is organized into multiple layers. The bottom layer is a raw jCal\n * object, followed by the component/property layer. The highest level is the\n * event representation, which this class is part of. See the\n * {@tutorial layers} guide for more details.\n *\n * @memberof ICAL\n */\nclass Event {\n /**\n * Creates a new ICAL.Event instance.\n *\n * @param {Component=} component The ICAL.Component to base this event on\n * @param {Object} [options] Options for this event\n * @param {Boolean=} options.strictExceptions When true, will verify exceptions are related by\n * their UUID\n * @param {Array=} options.exceptions\n * Exceptions to this event, either as components or events. If not\n * specified exceptions will automatically be set in relation of\n * component's parent\n */\n constructor(component, options) {\n if (!(component instanceof Component)) {\n options = component;\n component = null;\n }\n\n if (component) {\n this.component = component;\n } else {\n this.component = new Component('vevent');\n }\n\n this._rangeExceptionCache = Object.create(null);\n this.exceptions = Object.create(null);\n this.rangeExceptions = [];\n\n if (options && options.strictExceptions) {\n this.strictExceptions = options.strictExceptions;\n }\n\n if (options && options.exceptions) {\n options.exceptions.forEach(this.relateException, this);\n } else if (this.component.parent && !this.isRecurrenceException()) {\n this.component.parent.getAllSubcomponents('vevent').forEach(function(event) {\n if (event.hasProperty('recurrence-id')) {\n this.relateException(event);\n }\n }, this);\n }\n }\n\n\n static THISANDFUTURE = 'THISANDFUTURE';\n\n /**\n * List of related event exceptions.\n *\n * @type {Event[]}\n */\n exceptions = null;\n\n /**\n * When true, will verify exceptions are related by their UUID.\n *\n * @type {Boolean}\n */\n strictExceptions = false;\n\n /**\n * Relates a given event exception to this object. If the given component\n * does not share the UID of this event it cannot be related and will throw\n * an exception.\n *\n * If this component is an exception it cannot have other exceptions\n * related to it.\n *\n * @param {Component|Event} obj Component or event\n */\n relateException(obj) {\n if (this.isRecurrenceException()) {\n throw new Error('cannot relate exception to exceptions');\n }\n\n if (obj instanceof Component) {\n obj = new Event(obj);\n }\n\n if (this.strictExceptions && obj.uid !== this.uid) {\n throw new Error('attempted to relate unrelated exception');\n }\n\n let id = obj.recurrenceId.toString();\n\n // we don't sort or manage exceptions directly\n // here the recurrence expander handles that.\n this.exceptions[id] = obj;\n\n // index RANGE=THISANDFUTURE exceptions so we can\n // look them up later in getOccurrenceDetails.\n if (obj.modifiesFuture()) {\n let item = [\n obj.recurrenceId.toUnixTime(), id\n ];\n\n // we keep them sorted so we can find the nearest\n // value later on...\n let idx = binsearchInsert(\n this.rangeExceptions,\n item,\n compareRangeException\n );\n\n this.rangeExceptions.splice(idx, 0, item);\n }\n }\n\n /**\n * Checks if this record is an exception and has the RANGE=THISANDFUTURE\n * value.\n *\n * @return {Boolean} True, when exception is within range\n */\n modifiesFuture() {\n if (!this.component.hasProperty('recurrence-id')) {\n return false;\n }\n\n let range = this.component.getFirstProperty('recurrence-id').getParameter('range');\n return range === Event.THISANDFUTURE;\n }\n\n /**\n * Finds the range exception nearest to the given date.\n *\n * @param {Time} time usually an occurrence time of an event\n * @return {?Event} the related event/exception or null\n */\n findRangeException(time) {\n if (!this.rangeExceptions.length) {\n return null;\n }\n\n let utc = time.toUnixTime();\n let idx = binsearchInsert(\n this.rangeExceptions,\n [utc],\n compareRangeException\n );\n\n idx -= 1;\n\n // occurs before\n if (idx < 0) {\n return null;\n }\n\n let rangeItem = this.rangeExceptions[idx];\n\n /* c8 ignore next 4 */\n if (utc < rangeItem[0]) {\n // sanity check only\n return null;\n }\n\n return rangeItem[1];\n }\n\n /**\n * Returns the occurrence details based on its start time. If the\n * occurrence has an exception will return the details for that exception.\n *\n * NOTE: this method is intend to be used in conjunction\n * with the {@link ICAL.Event#iterator iterator} method.\n *\n * @param {Time} occurrence time occurrence\n * @return {occurrenceDetails} Information about the occurrence\n */\n getOccurrenceDetails(occurrence) {\n let id = occurrence.toString();\n let utcId = occurrence.convertToZone(Timezone.utcTimezone).toString();\n let item;\n let result = {\n //XXX: Clone?\n recurrenceId: occurrence\n };\n\n if (id in this.exceptions) {\n item = result.item = this.exceptions[id];\n result.startDate = item.startDate;\n result.endDate = item.endDate;\n result.item = item;\n } else if (utcId in this.exceptions) {\n item = this.exceptions[utcId];\n result.startDate = item.startDate;\n result.endDate = item.endDate;\n result.item = item;\n } else {\n // range exceptions (RANGE=THISANDFUTURE) have a\n // lower priority then direct exceptions but\n // must be accounted for first. Their item is\n // always the first exception with the range prop.\n let rangeExceptionId = this.findRangeException(\n occurrence\n );\n let end;\n\n if (rangeExceptionId) {\n let exception = this.exceptions[rangeExceptionId];\n\n // range exception must modify standard time\n // by the difference (if any) in start/end times.\n result.item = exception;\n\n let startDiff = this._rangeExceptionCache[rangeExceptionId];\n\n if (!startDiff) {\n let original = exception.recurrenceId.clone();\n let newStart = exception.startDate.clone();\n\n // zones must be same otherwise subtract may be incorrect.\n original.zone = newStart.zone;\n startDiff = newStart.subtractDate(original);\n\n this._rangeExceptionCache[rangeExceptionId] = startDiff;\n }\n\n let start = occurrence.clone();\n start.zone = exception.startDate.zone;\n start.addDuration(startDiff);\n\n end = start.clone();\n end.addDuration(exception.duration);\n\n result.startDate = start;\n result.endDate = end;\n } else {\n // no range exception standard expansion\n end = occurrence.clone();\n end.addDuration(this.duration);\n\n result.endDate = end;\n result.startDate = occurrence;\n result.item = this;\n }\n }\n\n return result;\n }\n\n /**\n * Builds a recur expansion instance for a specific point in time (defaults\n * to startDate).\n *\n * @param {Time=} startTime Starting point for expansion\n * @return {RecurExpansion} Expansion object\n */\n iterator(startTime) {\n return new RecurExpansion({\n component: this.component,\n dtstart: startTime || this.startDate\n });\n }\n\n /**\n * Checks if the event is recurring\n *\n * @return {Boolean} True, if event is recurring\n */\n isRecurring() {\n let comp = this.component;\n return comp.hasProperty('rrule') || comp.hasProperty('rdate');\n }\n\n /**\n * Checks if the event describes a recurrence exception. See\n * {@tutorial terminology} for details.\n *\n * @return {Boolean} True, if the event describes a recurrence exception\n */\n isRecurrenceException() {\n return this.component.hasProperty('recurrence-id');\n }\n\n /**\n * Returns the types of recurrences this event may have.\n *\n * Returned as an object with the following possible keys:\n *\n * - YEARLY\n * - MONTHLY\n * - WEEKLY\n * - DAILY\n * - MINUTELY\n * - SECONDLY\n *\n * @return {Object.}\n * Object of recurrence flags\n */\n getRecurrenceTypes() {\n let rules = this.component.getAllProperties('rrule');\n let i = 0;\n let len = rules.length;\n let result = Object.create(null);\n\n for (; i < len; i++) {\n let value = rules[i].getFirstValue();\n result[value.freq] = true;\n }\n\n return result;\n }\n\n /**\n * The uid of this event\n * @type {String}\n */\n get uid() {\n return this._firstProp('uid');\n }\n\n set uid(value) {\n this._setProp('uid', value);\n }\n\n /**\n * The start date\n * @type {Time}\n */\n get startDate() {\n return this._firstProp('dtstart');\n }\n\n set startDate(value) {\n this._setTime('dtstart', value);\n }\n\n /**\n * The end date. This can be the result directly from the property, or the\n * end date calculated from start date and duration. Setting the property\n * will remove any duration properties.\n * @type {Time}\n */\n get endDate() {\n let endDate = this._firstProp('dtend');\n if (!endDate) {\n let duration = this._firstProp('duration');\n endDate = this.startDate.clone();\n if (duration) {\n endDate.addDuration(duration);\n } else if (endDate.isDate) {\n endDate.day += 1;\n }\n }\n return endDate;\n }\n\n set endDate(value) {\n if (this.component.hasProperty('duration')) {\n this.component.removeProperty('duration');\n }\n this._setTime('dtend', value);\n }\n\n /**\n * The duration. This can be the result directly from the property, or the\n * duration calculated from start date and end date. Setting the property\n * will remove any `dtend` properties.\n * @type {Duration}\n */\n get duration() {\n let duration = this._firstProp('duration');\n if (!duration) {\n return this.endDate.subtractDateTz(this.startDate);\n }\n return duration;\n }\n\n set duration(value) {\n if (this.component.hasProperty('dtend')) {\n this.component.removeProperty('dtend');\n }\n\n this._setProp('duration', value);\n }\n\n /**\n * The location of the event.\n * @type {String}\n */\n get location() {\n return this._firstProp('location');\n }\n\n set location(value) {\n this._setProp('location', value);\n }\n\n /**\n * The attendees in the event\n * @type {Property[]}\n */\n get attendees() {\n //XXX: This is way lame we should have a better\n // data structure for this later.\n return this.component.getAllProperties('attendee');\n }\n\n /**\n * The event summary\n * @type {String}\n */\n get summary() {\n return this._firstProp('summary');\n }\n\n set summary(value) {\n this._setProp('summary', value);\n }\n\n /**\n * The event description.\n * @type {String}\n */\n get description() {\n return this._firstProp('description');\n }\n\n set description(value) {\n this._setProp('description', value);\n }\n\n /**\n * The event color from [rfc7986](https://datatracker.ietf.org/doc/html/rfc7986)\n * @type {String}\n */\n get color() {\n return this._firstProp('color');\n }\n\n set color(value) {\n this._setProp('color', value);\n }\n\n /**\n * The organizer value as an uri. In most cases this is a mailto: uri, but\n * it can also be something else, like urn:uuid:...\n * @type {String}\n */\n get organizer() {\n return this._firstProp('organizer');\n }\n\n set organizer(value) {\n this._setProp('organizer', value);\n }\n\n /**\n * The sequence value for this event. Used for scheduling\n * see {@tutorial terminology}.\n * @type {Number}\n */\n get sequence() {\n return this._firstProp('sequence');\n }\n\n set sequence(value) {\n this._setProp('sequence', value);\n }\n\n /**\n * The recurrence id for this event. See {@tutorial terminology} for details.\n * @type {Time}\n */\n get recurrenceId() {\n return this._firstProp('recurrence-id');\n }\n\n set recurrenceId(value) {\n this._setTime('recurrence-id', value);\n }\n\n /**\n * Set/update a time property's value.\n * This will also update the TZID of the property.\n *\n * TODO: this method handles the case where we are switching\n * from a known timezone to an implied timezone (one without TZID).\n * This does _not_ handle the case of moving between a known\n * (by TimezoneService) timezone to an unknown timezone...\n *\n * We will not add/remove/update the VTIMEZONE subcomponents\n * leading to invalid ICAL data...\n * @private\n * @param {String} propName The property name\n * @param {Time} time The time to set\n */\n _setTime(propName, time) {\n let prop = this.component.getFirstProperty(propName);\n\n if (!prop) {\n prop = new Property(propName);\n this.component.addProperty(prop);\n }\n\n // utc and local don't get a tzid\n if (\n time.zone === Timezone.localTimezone ||\n time.zone === Timezone.utcTimezone\n ) {\n // remove the tzid\n prop.removeParameter('tzid');\n } else {\n prop.setParameter('tzid', time.zone.tzid);\n }\n\n prop.setValue(time);\n }\n\n _setProp(name, value) {\n this.component.updatePropertyWithValue(name, value);\n }\n\n _firstProp(name) {\n return this.component.getFirstPropertyValue(name);\n }\n\n /**\n * The string representation of this event.\n * @return {String}\n */\n toString() {\n return this.component.toString();\n }\n}\n\nfunction compareRangeException(a, b) {\n if (a[0] > b[0]) return 1;\n if (b[0] > a[0]) return -1;\n return 0;\n}\n\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch */\n\n\n/**\n * The ComponentParser is used to process a String or jCal Object,\n * firing callbacks for various found components, as well as completion.\n *\n * @example\n * var options = {\n * // when false no events will be emitted for type\n * parseEvent: true,\n * parseTimezone: true\n * };\n *\n * var parser = new ICAL.ComponentParser(options);\n *\n * parser.onevent(eventComponent) {\n * //...\n * }\n *\n * // ontimezone, etc...\n *\n * parser.oncomplete = function() {\n *\n * };\n *\n * parser.process(stringOrComponent);\n *\n * @memberof ICAL\n */\nclass ComponentParser {\n /**\n * Creates a new ICAL.ComponentParser instance.\n *\n * @param {Object=} options Component parser options\n * @param {Boolean} options.parseEvent Whether events should be parsed\n * @param {Boolean} options.parseTimezeone Whether timezones should be parsed\n */\n constructor(options) {\n if (typeof(options) === 'undefined') {\n options = {};\n }\n\n for (let [key, value] of Object.entries(options)) {\n this[key] = value;\n }\n }\n\n /**\n * When true, parse events\n *\n * @type {Boolean}\n */\n parseEvent = true;\n\n /**\n * When true, parse timezones\n *\n * @type {Boolean}\n */\n parseTimezone = true;\n\n\n /* SAX like events here for reference */\n\n /**\n * Fired when parsing is complete\n * @callback\n */\n oncomplete = /* c8 ignore next */ function() {};\n\n /**\n * Fired if an error occurs during parsing.\n *\n * @callback\n * @param {Error} err details of error\n */\n onerror = /* c8 ignore next */ function(err) {};\n\n /**\n * Fired when a top level component (VTIMEZONE) is found\n *\n * @callback\n * @param {Timezone} component Timezone object\n */\n ontimezone = /* c8 ignore next */ function(component) {};\n\n /**\n * Fired when a top level component (VEVENT) is found.\n *\n * @callback\n * @param {Event} component Top level component\n */\n onevent = /* c8 ignore next */ function(component) {};\n\n /**\n * Process a string or parse ical object. This function itself will return\n * nothing but will start the parsing process.\n *\n * Events must be registered prior to calling this method.\n *\n * @param {Component|String|Object} ical The component to process,\n * either in its final form, as a jCal Object, or string representation\n */\n process(ical) {\n //TODO: this is sync now in the future we will have a incremental parser.\n if (typeof(ical) === 'string') {\n ical = parse(ical);\n }\n\n if (!(ical instanceof Component)) {\n ical = new Component(ical);\n }\n\n let components = ical.getAllSubcomponents();\n let i = 0;\n let len = components.length;\n let component;\n\n for (; i < len; i++) {\n component = components[i];\n\n switch (component.name) {\n case 'vtimezone':\n if (this.parseTimezone) {\n let tzid = component.getFirstPropertyValue('tzid');\n if (tzid) {\n this.ontimezone(new Timezone({\n tzid: tzid,\n component: component\n }));\n }\n }\n break;\n case 'vevent':\n if (this.parseEvent) {\n this.onevent(new Event(component));\n }\n break;\n default:\n continue;\n }\n }\n\n //XXX: ideally we should do a \"nextTick\" here\n // so in all cases this is actually async.\n this.oncomplete();\n }\n}\n\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch */\n\n\n/**\n * The main ICAL module. Provides access to everything else.\n *\n * @alias ICAL\n * @namespace ICAL\n * @property {ICAL.design} design\n * @property {ICAL.helpers} helpers\n */\nvar ICALmodule = {\n /**\n * The number of characters before iCalendar line folding should occur\n * @type {Number}\n * @default 75\n */\n foldLength: 75,\n\n debug: false,\n\n /**\n * The character(s) to be used for a newline. The default value is provided by\n * rfc5545.\n * @type {String}\n * @default \"\\r\\n\"\n */\n newLineChar: '\\r\\n',\n\n Binary,\n Component,\n ComponentParser,\n Duration,\n Event,\n Period,\n Property,\n Recur,\n RecurExpansion,\n RecurIterator,\n Time,\n Timezone,\n TimezoneService,\n UtcOffset,\n VCardTime,\n\n parse,\n stringify,\n\n design,\n helpers\n};\n\nexport { ICALmodule as default };\n","import validate from './validate.js';\nconst byteToHex = [];\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nexport function unsafeStringify(arr, offset = 0) {\n return (byteToHex[arr[offset + 0]] +\n byteToHex[arr[offset + 1]] +\n byteToHex[arr[offset + 2]] +\n byteToHex[arr[offset + 3]] +\n '-' +\n byteToHex[arr[offset + 4]] +\n byteToHex[arr[offset + 5]] +\n '-' +\n byteToHex[arr[offset + 6]] +\n byteToHex[arr[offset + 7]] +\n '-' +\n byteToHex[arr[offset + 8]] +\n byteToHex[arr[offset + 9]] +\n '-' +\n byteToHex[arr[offset + 10]] +\n byteToHex[arr[offset + 11]] +\n byteToHex[arr[offset + 12]] +\n byteToHex[arr[offset + 13]] +\n byteToHex[arr[offset + 14]] +\n byteToHex[arr[offset + 15]]).toLowerCase();\n}\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset);\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n return uuid;\n}\nexport default stringify;\n","let getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n if (!getRandomValues) {\n if (typeof crypto === 'undefined' || !crypto.getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n getRandomValues = crypto.getRandomValues.bind(crypto);\n }\n return getRandomValues(rnds8);\n}\n","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default { randomUUID };\n","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\nfunction _v4(options, buf, offset) {\n options = options || {};\n const rnds = options.random ?? options.rng?.() ?? rng();\n if (rnds.length < 16) {\n throw new Error('Random bytes length must be >= 16');\n }\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n if (buf) {\n offset = offset || 0;\n if (offset < 0 || offset + 16 > buf.length) {\n throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);\n }\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n return buf;\n }\n return unsafeStringify(rnds);\n}\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n return _v4(options, buf, offset);\n}\nexport default v4;\n","import './assets/index-CkcnNJJ0.css';\nimport { NcButton, NcDateTimePickerNative } from \"@nextcloud/vue\";\nimport IconDelete from \"vue-material-design-icons/TrashCanOutline.vue\";\nimport IconAdd from \"vue-material-design-icons/Plus.vue\";\nimport { getFirstDay } from \"@nextcloud/l10n\";\nimport { resolveComponent, createElementBlock, openBlock, Fragment, renderList, createElementVNode, createBlock, toDisplayString, createCommentVNode, createVNode, withCtx } from \"vue\";\nimport { getZoneString } from \"icalzone\";\nimport ICAL from \"ical.js\";\nimport { v4 } from \"uuid\";\nimport { getLoggerBuilder } from \"@nextcloud/logger\";\nconst _export_sfc = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\nconst _sfc_main = {\n name: \"CalendarAvailability\",\n components: {\n NcDateTimePickerNative,\n NcButton,\n IconAdd,\n IconDelete\n },\n props: {\n slots: {\n type: Object,\n required: true\n },\n loading: {\n type: Boolean,\n default: false\n },\n l10nTo: {\n type: String,\n required: true\n },\n l10nDeleteSlot: {\n type: String,\n required: true\n },\n l10nEmptyDay: {\n type: String,\n required: true\n },\n l10nAddSlot: {\n type: String,\n required: true\n },\n l10nWeekDayListLabel: {\n type: String,\n default: \"Weekdays\"\n },\n l10nMonday: {\n type: String,\n required: true\n },\n l10nTuesday: {\n type: String,\n required: true\n },\n l10nWednesday: {\n type: String,\n required: true\n },\n l10nThursday: {\n type: String,\n required: true\n },\n l10nFriday: {\n type: String,\n required: true\n },\n l10nSaturday: {\n type: String,\n required: true\n },\n l10nSunday: {\n type: String,\n required: true\n },\n l10nStartPickerLabel: {\n type: Function,\n default: (dayName) => `Pick a start time for ${dayName}`\n },\n l10nEndPickerLabel: {\n type: Function,\n default: (dayName) => `Pick a end time for ${dayName}`\n }\n },\n data() {\n return {\n internalSlots: this.slotsToInternalData(this.slots)\n };\n },\n watch: {\n slots() {\n this.internalSlots = this.slotsToInternalData(this.slots);\n }\n },\n methods: {\n timeStampSlotsToDateObjectSlots(slots) {\n return slots.map((slot) => ({\n start: new Date(slot.start * 1e3),\n end: new Date(slot.end * 1e3)\n }));\n },\n slotsToInternalData() {\n const moToSa = [\n {\n id: \"MO\",\n displayName: this.l10nMonday,\n slots: this.timeStampSlotsToDateObjectSlots(this.slots.MO)\n },\n {\n id: \"TU\",\n displayName: this.l10nTuesday,\n slots: this.timeStampSlotsToDateObjectSlots(this.slots.TU)\n },\n {\n id: \"WE\",\n displayName: this.l10nWednesday,\n slots: this.timeStampSlotsToDateObjectSlots(this.slots.WE)\n },\n {\n id: \"TH\",\n displayName: this.l10nThursday,\n slots: this.timeStampSlotsToDateObjectSlots(this.slots.TH)\n },\n {\n id: \"FR\",\n displayName: this.l10nFriday,\n slots: this.timeStampSlotsToDateObjectSlots(this.slots.FR)\n },\n {\n id: \"SA\",\n displayName: this.l10nSaturday,\n slots: this.timeStampSlotsToDateObjectSlots(this.slots.SA)\n }\n ];\n const sunday = {\n id: \"SU\",\n displayName: this.l10nSunday,\n slots: this.timeStampSlotsToDateObjectSlots(this.slots.SU)\n };\n return getFirstDay() === 1 ? [...moToSa, sunday] : [sunday, ...moToSa];\n },\n internalDataToSlots() {\n const converted = {};\n this.internalSlots.forEach(({ id, slots }) => {\n converted[id] = slots.map((slot) => ({\n start: Math.round(slot.start.getTime() / 1e3),\n end: Math.round(slot.end.getTime() / 1e3)\n }));\n });\n return converted;\n },\n addSlot(day) {\n const start = /* @__PURE__ */ new Date();\n start.setHours(9, 0, 0, 0);\n const end = /* @__PURE__ */ new Date();\n end.setHours(17, 0, 0, 0);\n day.slots.push({\n start,\n end\n });\n this.onChangeSlots();\n },\n removeSlot(day, idx) {\n day.slots.splice(idx, 1);\n this.onChangeSlots();\n },\n onChangeSlots() {\n this.$emit(\"update:slots\", this.internalDataToSlots());\n }\n }\n};\nconst _hoisted_1 = [\"aria-label\"];\nconst _hoisted_2 = { class: \"label-weekday\" };\nconst _hoisted_3 = [\"id\"];\nconst _hoisted_4 = { class: \"availability-slot-group\" };\nconst _hoisted_5 = { class: \"to-text\" };\nconst _hoisted_6 = {\n key: 0,\n class: \"empty-content\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcDateTimePickerNative = resolveComponent(\"NcDateTimePickerNative\");\n const _component_IconDelete = resolveComponent(\"IconDelete\");\n const _component_NcButton = resolveComponent(\"NcButton\");\n const _component_IconAdd = resolveComponent(\"IconAdd\");\n return openBlock(), createElementBlock(\"ul\", {\n class: \"week-day-container\",\n \"aria-label\": $props.l10nWeekDayListLabel\n }, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($data.internalSlots, (day) => {\n return openBlock(), createElementBlock(\"li\", {\n key: `day-label-${day.id}`,\n class: \"day-container\"\n }, [\n createElementVNode(\"div\", _hoisted_2, [\n createElementVNode(\"span\", {\n id: day.displayName + \"-label\"\n }, toDisplayString(day.displayName), 9, _hoisted_3)\n ]),\n (openBlock(), createElementBlock(\"div\", {\n key: `day-slots-${day.id}`,\n class: \"availability-slots\"\n }, [\n createElementVNode(\"div\", _hoisted_4, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(day.slots, (slot, idx) => {\n return openBlock(), createElementBlock(\"div\", {\n key: `slot-${day.id}-${idx}`,\n class: \"availability-slot\"\n }, [\n createVNode(_component_NcDateTimePickerNative, {\n id: `start-${day.id}-${idx}`,\n modelValue: slot.start,\n \"onUpdate:modelValue\": ($event) => slot.start = $event,\n type: \"time\",\n label: $props.l10nStartPickerLabel?.(day.displayName),\n \"hide-label\": true,\n class: \"start-date\",\n onChange: $options.onChangeSlots\n }, null, 8, [\"id\", \"modelValue\", \"onUpdate:modelValue\", \"label\", \"onChange\"]),\n createElementVNode(\"span\", _hoisted_5, toDisplayString($props.l10nTo), 1),\n createVNode(_component_NcDateTimePickerNative, {\n id: `end-${day.id}-${idx}`,\n modelValue: slot.end,\n \"onUpdate:modelValue\": ($event) => slot.end = $event,\n type: \"time\",\n label: $props.l10nEndPickerLabel?.(day.displayName),\n \"hide-label\": true,\n class: \"end-date\",\n onChange: $options.onChangeSlots\n }, null, 8, [\"id\", \"modelValue\", \"onUpdate:modelValue\", \"label\", \"onChange\"]),\n (openBlock(), createBlock(_component_NcButton, {\n key: `slot-${day.id}-${idx}-btn`,\n type: \"tertiary\",\n class: \"button\",\n \"aria-label\": $props.l10nDeleteSlot,\n title: $props.l10nDeleteSlot,\n onClick: ($event) => $options.removeSlot(day, idx)\n }, {\n icon: withCtx(() => [\n createVNode(_component_IconDelete, { size: 20 })\n ]),\n _: 2\n }, 1032, [\"aria-label\", \"title\", \"onClick\"]))\n ]);\n }), 128))\n ]),\n day.slots.length === 0 ? (openBlock(), createElementBlock(\"span\", _hoisted_6, toDisplayString($props.l10nEmptyDay), 1)) : createCommentVNode(\"\", true)\n ])),\n (openBlock(), createBlock(_component_NcButton, {\n key: `add-slot-${day.id}`,\n disabled: $props.loading,\n class: \"add-another button\",\n title: $props.l10nAddSlot,\n \"aria-label\": $props.l10nAddSlot,\n onClick: ($event) => $options.addSlot(day)\n }, {\n icon: withCtx(() => [\n createVNode(_component_IconAdd, { size: 20 })\n ]),\n _: 2\n }, 1032, [\"disabled\", \"title\", \"aria-label\", \"onClick\"]))\n ]);\n }), 128))\n ], 8, _hoisted_1);\n}\nconst CalendarAvailability = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-3ef03e87\"]]);\nconst logger = getLoggerBuilder().detectUser().setApp(\"@nextcloud/calendar-availability-vue\").build();\nfunction getEmptySlots() {\n return {\n MO: [],\n TU: [],\n WE: [],\n TH: [],\n FR: [],\n SA: [],\n SU: []\n };\n}\nfunction vavailabilityToSlots(vavailability) {\n const parsedIcal = ICAL.parse(vavailability);\n const vcalendarComp = new ICAL.Component(parsedIcal);\n const vavailabilityComp = vcalendarComp.getFirstSubcomponent(\"vavailability\");\n let timezoneId;\n const timezoneComp = vcalendarComp.getFirstSubcomponent(\"vtimezone\");\n if (timezoneComp) {\n timezoneId = timezoneComp.getFirstProperty(\"tzid\").getFirstValue();\n }\n const availableComps = vavailabilityComp.getAllSubcomponents(\"available\");\n const slots = getEmptySlots();\n availableComps.forEach((availableComp) => {\n const startIcalDate = availableComp.getFirstProperty(\"dtstart\").getFirstValue();\n const endIcalDate = availableComp.getFirstProperty(\"dtend\").getFirstValue();\n const rrule = availableComp.getFirstProperty(\"rrule\");\n const start = /* @__PURE__ */ new Date();\n start.setHours(startIcalDate.hour, startIcalDate.minute, 0, 0);\n const end = /* @__PURE__ */ new Date();\n end.setHours(endIcalDate.hour, endIcalDate.minute, 0, 0);\n if (rrule.getFirstValue().freq !== \"WEEKLY\") {\n logger.warn(\"rrule not supported\", {\n rrule: rrule.toICALString()\n });\n return;\n }\n rrule.getFirstValue().getComponent(\"BYDAY\").forEach((day) => {\n slots[day].push({\n start: start.getTime() / 1e3,\n end: end.getTime() / 1e3\n });\n });\n });\n return {\n slots,\n timezoneId\n };\n}\nfunction slotsToVavailability(slots, timezoneId) {\n const vcalendarComp = new ICAL.Component(\"vcalendar\");\n vcalendarComp.addPropertyWithValue(\"prodid\", \"Nextcloud DAV app\");\n const predefinedTimezoneIcal = getZoneString(timezoneId);\n if (predefinedTimezoneIcal) {\n const timezoneComp = new ICAL.Component(ICAL.parse(predefinedTimezoneIcal));\n vcalendarComp.addSubcomponent(timezoneComp);\n } else {\n const timezoneComp = new ICAL.Component(\"vtimezone\");\n timezoneComp.addPropertyWithValue(\"tzid\", timezoneId);\n vcalendarComp.addSubcomponent(timezoneComp);\n }\n const vavailabilityComp = new ICAL.Component(\"vavailability\");\n const deduplicated = slots.reduce((acc, slot) => {\n const start = new Date(slot.start * 1e3);\n const end = new Date(slot.end * 1e3);\n const key = [\n start.getHours(),\n start.getMinutes(),\n end.getHours(),\n end.getMinutes()\n ].join(\"-\");\n return {\n ...acc,\n [key]: [...acc[key] ?? [], slot]\n };\n }, {});\n Object.keys(deduplicated).map((key) => {\n const slots2 = deduplicated[key];\n const start = slots2[0].start;\n const end = slots2[0].end;\n const days = slots2.map((slot) => slot.day).filter((day, index, self) => self.indexOf(day) === index);\n const availableComp = new ICAL.Component(\"available\");\n const startTimeProp = availableComp.addPropertyWithValue(\"dtstart\", ICAL.Time.fromJSDate(new Date(start * 1e3), false));\n startTimeProp.setParameter(\"tzid\", timezoneId);\n const endTimeProp = availableComp.addPropertyWithValue(\"dtend\", ICAL.Time.fromJSDate(new Date(end * 1e3), false));\n endTimeProp.setParameter(\"tzid\", timezoneId);\n availableComp.addPropertyWithValue(\"uid\", v4());\n availableComp.addPropertyWithValue(\"rrule\", {\n freq: \"WEEKLY\",\n byday: days\n });\n return availableComp;\n }).map(vavailabilityComp.addSubcomponent.bind(vavailabilityComp));\n vcalendarComp.addSubcomponent(vavailabilityComp);\n return vcalendarComp.toString();\n}\nexport {\n CalendarAvailability,\n getEmptySlots,\n slotsToVavailability,\n vavailabilityToSlots\n};\n//# sourceMappingURL=index.mjs.map\n","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { WebDAVClient } from 'webdav'\n\nimport { getCurrentUser, getRequestToken, onRequestTokenUpdate } from '@nextcloud/auth'\nimport { generateRemoteUrl } from '@nextcloud/router'\nimport { createClient } from 'webdav'\n\nlet client: WebDAVClient | undefined = undefined\n\n/**\n * Get the WebDAV client for the current user on the calendars endpoint.\n */\nexport function getClient(): WebDAVClient {\n\tif (!client) {\n\t\t// init webdav client\n\t\tconst remote = generateRemoteUrl(`dav/calendars/${getCurrentUser()!.uid}`)\n\t\tclient = createClient(remote)\n\n\t\t// set CSRF token header\n\t\tconst setHeaders = (token) => {\n\t\t\tclient!.setHeaders({\n\t\t\t\t// Add this so the server knows it is an request from the browser\n\t\t\t\t'X-Requested-With': 'XMLHttpRequest',\n\t\t\t\t// Inject user auth\n\t\t\t\trequesttoken: token ?? '',\n\t\t\t})\n\t\t}\n\n\t\t// refresh headers when request token changes\n\t\tonRequestTokenUpdate(setHeaders)\n\t\tsetHeaders(getRequestToken())\n\t}\n\n\treturn client\n}\n","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport {\n\tslotsToVavailability,\n\tvavailabilityToSlots,\n} from '@nextcloud/calendar-availability-vue'\nimport { parseXML } from 'webdav'\nimport { getClient } from '../dav/client.ts'\nimport { logger } from './logger.ts'\n\n/**\n * Get an object representing empty time slots for each day of the week.\n */\nexport function getEmptySlots() {\n\treturn {\n\t\tMO: [],\n\t\tTU: [],\n\t\tWE: [],\n\t\tTH: [],\n\t\tFR: [],\n\t\tSA: [],\n\t\tSU: [],\n\t}\n}\n\n/**\n * Find the availability of the schedule inbox.\n */\nexport async function findScheduleInboxAvailability() {\n\tconst response = await getClient().customRequest('inbox', {\n\t\tmethod: 'PROPFIND',\n\t\tdata: `\n\t\t\t\n\t\t\t \n\t\t\t\t\n\t\t\t \n\t\t\t`,\n\t})\n\n\tconst xml = await parseXML(await response.text())\n\n\tif (!xml) {\n\t\treturn undefined\n\t}\n\n\tconst availability = xml?.multistatus?.response[0]?.propstat?.prop['calendar-availability']\n\tif (!availability) {\n\t\treturn undefined\n\t}\n\n\treturn vavailabilityToSlots(availability)\n}\n\n/**\n * Save the availability of the schedule inbox.\n *\n * @param slots - The availability slots to save.\n * @param timezoneId - The timezone identifier.\n */\nexport async function saveScheduleInboxAvailability(slots, timezoneId) {\n\tconst all = [...Object.keys(slots).flatMap((dayId) => slots[dayId].map((slot) => ({\n\t\t...slot,\n\t\tday: dayId,\n\t})))]\n\n\tconst vavailability = slotsToVavailability(all, timezoneId)\n\n\tlogger.debug('New availability ical created', {\n\t\tvavailability,\n\t})\n\n\tawait getClient().customRequest('inbox', {\n\t\tmethod: 'PROPPATCH',\n\t\tdata: `\n\t\t\t\n\t\t\t \n\t\t\t\t\n\t\t\t\t ${vavailability}\n\t\t\t\t\n\t\t\t \n\t\t\t`,\n\t})\n}\n","/*!\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\n\n/**\n * Enable user status automation based on availability\n */\nexport async function enableUserStatusAutomation(): Promise {\n\tawait axios.post(\n\t\tgenerateOcsUrl('/apps/provisioning_api/api/v1/config/users/{appId}/{configKey}', {\n\t\t\tappId: 'dav',\n\t\t\tconfigKey: 'user_status_automation',\n\t\t}),\n\t\t{\n\t\t\tconfigValue: 'yes',\n\t\t},\n\t)\n}\n\n/**\n * Disable user status automation based on availability\n */\nexport async function disableUserStatusAutomation(): Promise {\n\tawait axios.delete(generateOcsUrl('/apps/provisioning_api/api/v1/config/users/{appId}/{configKey}', {\n\t\tappId: 'dav',\n\t\tconfigKey: 'user_status_automation',\n\t}))\n}\n","\n\n\n\n\n\n\n","\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { createApp } from 'vue'\nimport UserAvailability from './views/UserAvailability.vue'\n\nconst app = createApp(UserAvailability)\napp.mount('#settings-personal-availability')\n"],"names":["formatDateAsYMD","date","year","month","day","_sfc_main","NcButton","NcTextField","NcTextArea","NcDateTimePickerNative","NcSelectUsers","t","firstDay","lastDay","status","message","replacementUserId","replacementUserDisplayName","loadState","result","query","search","shareType","ShareType","request","axios","generateOcsUrl","error","logger","data","exact","rawExactSuggestions","rawSuggestions","exactSuggestions","share","suggestions","allSuggestions","nameCounts","item","debounce","args","getCurrentUser","showSuccess","showError","_hoisted_1","_hoisted_2","_hoisted_3","_createElementBlock","$options","_createElementVNode","_createVNode","_component_NcDateTimePickerNative","$data","$event","$setup","_toDisplayString","_component_NcSelectUsers","_component_NcTextField","_component_NcTextArea","_component_NcButton","zones","dist","zones_1","require$$0","renderZoneSub","n","f","r","s","getZoneLines","zoneName","includeWrapper","zoneData","d","getZoneString","Binary","aString","aValue","b64","o1","o2","o3","h1","h2","h3","h4","bits","i","ac","enc","tmp_arr","dec","DURATION_LETTERS","DATA_PROPS_TO_COPY","Duration","aSeconds","string","aStr","pos","dict","chunks","type","numeric","parseDurationChunk","aData","seconds","secs","trunc","prop","aOther","thisSeconds","otherSeconds","str","hasWeeks","letter","number","object","num","isStrictlyNaN","Period","parts","options","Time","end","aProp","aLenient","fromDateOrDateTimeString","dateProp","dt","_daysInMonth","days","aDayOfYear","aYear","doy","tt","is_leap","strictParseInt","zone","zoneId","Timezone","timeData","aProperty","aDate","useUTC","aZone","aWeekStart","dow","wkst","yr","LTRS","dom","#epochTime","a","b","attr","val","hour","minute","second","timezone","key","value","TimezoneService","firstDow","dowCacheKey","q","m","Y","h","aFirstDayOfWeek","delta","aDayOfWeek","aPos","daysInMonth","weekday","start","otherDay","startDow","offset","endDow","wnCacheKey","week1","isoyear","daysBetween","answer","aDuration","mult","unixTime","other","tz","rc","copy","zone_equals","design","pad2","aExtraDays","aExtraHours","aExtraMinutes","aExtraSeconds","aTime","minutesOverflow","hoursOverflow","daysOverflow","yearsOverflow","time","ms","len","CHAR","VALUE_DELIMITER","PARAM_DELIMITER","PARAM_NAME_DELIMITER","DEFAULT_VALUE_TYPE$1","DEFAULT_PARAM_TYPE","RFC6868_REPLACE_MAP$1","parse","input","state","root","err","line","ParserError","designSet","valuePos","paramPos","lastParamIndex","lastValuePos","name","params","parsedParams","parsedParamLength","accumulator","currentValue","newComponent","valueType","multiValue","structuredValue","propertyDetails","splitName","ungroupedName","lastParam","delim","lcname","mvdelim","extendedValue","propValuePos","nextPos","length_before","delimiter","x","buffer","innerMulti","lastPos","unescapedIndexOf","callback","firstChar","newlineOffset","OPTIONS","from_zone","to_zone","utcOffset","#utcTimezone","#localTimezone","change","hours","minutes","Component","jCal","tt_change","change_num","change_num_to_use","step","clone","zone_change","tmp_change","prev_zone_change","want_daylight","idx","binsearchInsert","today","changesEndYear","subcomps","compLen","compIdx","aComponent","changes","dtstart","convert_tzoffset","init_changes","changebase","props","rdate","rrule","iterator","occ","utc","tzid","updateTimezones","vcal","allsubs","properties","vtimezones","reqTzid","comp","formatClassType","list","seekVal","cmpfunc","low","high","mid","cmpval","aSrc","aDeep","arr","obj","foldline","aLine","line_length","cp","ICALmodule","extend","source","target","descr","helpers","UtcOffset","instance","factor","VCardTime","aIcalType","part","v","e","tmz","splitzone","tm","dtlen","tmlen","hasDashDate","hasDashTime","o","icaltype","y","mm","hasYear","hasMonth","hasDay","hasHour","hasMinute","hasSecond","datepart","timepart","RecurIterator","Recur","InvalidRecurrenceRuleError","wkdy","dayName","untilYear","tempLast","initLast","bydow","dayOfMonth","normalized","again","before","valid","invalid_count","inc","this_freq","end_of_data","week_no","rules","newRules","ruleIdx","rule","isInit","byMonthDay","byDay","dateIdx","dateLen","dayLen","dataIsValid","self","initMonth","nextMonth","monthsCounter","next","dayIdx","data_valid","setpos","setpos_total","last_day","coded_day","startOfWeek","matches","aRuleType","aInterval","aDateAttr","aFollowingAttr","aPreviousIncr","has_by_rule","dta","years","aFactor","aNextIncrement","nextunit","validWeeks","monthIdx","first_week","last_week","weekIdx","partCount","t1","t2","monthday","t3","first_dow","doy_offset","last_dow","by_month_day","spIndex","bydayParts","month_day","first_matching_day","last_matching_day","expandedDays","weekno","daysInYear","days_list","tmp","start_dow","end_dow","end_year_day","tmp_start_doy","first","last","this_dow","aRules","j","one","two","indexMapValue","ruleMapValue","pass","ruleType","bydata","weekNo","req","deftime","VALID_DAY_NAMES","VALID_BYDAY_PART","DOW_MAP","REVERSE_DOW_MAP","entry","ALLOWED_FREQ","fmtIcal","values","ucname","partDesign","partArr","partSet","optionDesign","aStart","aType","aValues","aStartTime","aRecurrenceId","iter","uckey","res","k","kparts","parseNumericValue","min","max","FROM_ICAL_NEWLINE","TO_ICAL_NEWLINE","FROM_VCARD_NEWLINE","TO_VCARD_NEWLINE","createTextType","fromNewline","toNewline","structuredEscape","replaceNewline","regEx","DEFAULT_TYPE_TEXT","DEFAULT_TYPE_TEXT_MULTI","DEFAULT_TYPE_TEXT_STRUCTURED","DEFAULT_TYPE_INTEGER","DEFAULT_TYPE_DATETIME_DATE","DEFAULT_TYPE_DATETIME","DEFAULT_TYPE_URI","DEFAULT_TYPE_UTCOFFSET","DEFAULT_TYPE_RECUR","DEFAULT_TYPE_DATE_ANDOR_TIME","replaceNewlineReplace","newline","commonProperties","commonValues","parsed","icalParams","icalValues","aBinary","aRecur","icalProperties","vcardValues","isFromIcal","lastChar","signChar","sign","c","vcardParams","vcardProperties","vcard3Values","vcard3Params","vcard3Properties","icalSet","vcardSet","vcard3Set","componentName","LINE_ENDING","DEFAULT_VALUE_TYPE","RFC6868_REPLACE_MAP","stringify","component","propIdx","propLen","designSetName","comps","property","noFold","jsName","groupName","paramName","paramDesign","propDetails","isDefault","force","NAME_INDEX$1","PROP_INDEX","TYPE_INDEX","VALUE_INDEX","Property","parent","p","designSetChanged","index","parameters","details","NAME_INDEX","PROPERTY_INDEX","COMPONENT_INDEX","PROPERTY_NAME_INDEX","PROPERTY_VALUE_INDEX","parentDesign","versionProp","jCalLen","jCalIndex","cache","nameOrObject","objects","cached","nameOrComp","removed","nameOrProp","hydratedZone","RecurExpansion","compare","maxTries","currentTry","toJSON","propertyName","iters","iterTime","iterIdx","chosenIter","Event","event","id","compareRangeException","rangeItem","occurrence","utcId","rangeExceptionId","exception","startDiff","original","newStart","startTime","endDate","duration","propName","ComponentParser","ical","components","byteToHex","unsafeStringify","getRandomValues","rnds8","rng","randomUUID","native","_v4","buf","rnds","v4","_export_sfc","sfc","IconAdd","IconDelete","slots","slot","moToSa","sunday","getFirstDay","converted","_hoisted_4","_hoisted_5","_hoisted_6","_sfc_render","_ctx","_cache","$props","resolveComponent","_component_IconDelete","_component_IconAdd","openBlock","createElementBlock","Fragment","renderList","createElementVNode","toDisplayString","createVNode","createBlock","withCtx","createCommentVNode","CalendarAvailability","getLoggerBuilder","getEmptySlots","vavailabilityToSlots","vavailability","parsedIcal","ICAL","vcalendarComp","vavailabilityComp","timezoneId","timezoneComp","availableComps","availableComp","startIcalDate","endIcalDate","slotsToVavailability","predefinedTimezoneIcal","deduplicated","acc","slots2","client","getClient","remote","generateRemoteUrl","createClient","setHeaders","token","onRequestTokenUpdate","getRequestToken","findScheduleInboxAvailability","response","xml","parseXML","availability","saveScheduleInboxAvailability","all","dayId","enableUserStatusAutomation","disableUserStatusAutomation","getCapabilities","loading","ref","saving","automated","onMounted","slotData","save","_unref","NcCheckboxRadioSwitch","hideAbsenceSettings","NcSettingsSection","AvailabilityForm","_createBlock","AbsenceForm","app","createApp","UserAvailability"],"mappings":"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EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,uBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,MACrB,CACA,GAEI,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,MACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,MACrB,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iCACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,8BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,4BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,0BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,6BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,4BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iCACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,0BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,6BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,6BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,4BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,4BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,yBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,uBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,wBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,uBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,uBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,uBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,+BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,uBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,0BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,6BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,4BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,wBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,4BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,0BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,8BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,8BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,wBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,8BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,8BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,iCACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,wBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,yBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,uBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,uBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,wBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,uBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,wBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,wBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,4BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,uBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,OACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,OACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,OACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,MACrB,CACA,GAEI,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,QACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,QACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,OACrB,CACA,GAEI,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,yBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,MACrB,CACA,GAEI,CACI,wBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,MACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,OACrB,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,MACrB,CACA,GAEI,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,QACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,MACrB,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,UACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,WACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,UACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,UACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,WACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,OACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,uBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,QACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,QACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,CACA,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,MACzB,GAEY,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,KACzB,CACA,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,MACrB,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,OACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,uBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,MACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,KACrB,CACA,GAEI,CACI,iBACA,CACI,EAAK,CACD,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","x_google_ignoreList":[2,3,4,5,6,7,8,9]} \ No newline at end of file diff --git a/dist/encryption-encryption.css b/dist/encryption-encryption.css index 479cce9a196fe..9b77b260d2bfd 100644 --- a/dist/encryption-encryption.css +++ b/dist/encryption-encryption.css @@ -1,4 +1,6 @@ /* extracted by css-entry-points-plugin */ -@import './NcNoteCard-CVhtNL04-DopLwvn9.chunk.css'; -@import './mdi-BYHcrfvW.chunk.css'; -@import './index-JpgrUA2Z-PxDoi4mB.chunk.css'; \ No newline at end of file +@import './AccountOutline-Bx-uhVVO.chunk.css'; +@import './NcModal-MC_HktJd-YC6kxNbR.chunk.css'; +@import './Web-BYHcrfvW.chunk.css'; +@import './mdi-Jq77EThs.chunk.css'; +@import './index-JpgrUA2Z-CX17yN4T.chunk.css'; \ No newline at end of file diff --git a/dist/encryption-encryption.mjs b/dist/encryption-encryption.mjs index 5977f99ee967f..78bc91a959c8b 100644 --- a/dist/encryption-encryption.mjs +++ b/dist/encryption-encryption.mjs @@ -1,2 +1,2 @@ -import{a as o}from"./index-6_gsQFyp.chunk.mjs";import{c as a}from"./index-BfylblLb.chunk.mjs";import{s as i}from"./index-JpgrUA2Z-BFiKKJ1W.chunk.mjs";import{g as r}from"./createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs";import"./runtime-dom.esm-bundler-BrYCUcZF.chunk.mjs";import"./string_decoder-BO00msnV.chunk.mjs";import"./index-xFugdZPW.chunk.mjs";import"./NcNoteCard-CVhtNL04-hwuc093N.chunk.mjs";import"./translation-DoG5ZELJ-gw0g4US-.chunk.mjs";import"./mdi-D55n0uzy.chunk.mjs";window.addEventListener("DOMContentLoaded",async function(){if(o()===null)return;const{data:t}=await a.get(r("/apps/encryption/ajax/getStatus"));t.status==="interactionNeeded"&&i(t.data.message)}); +import{a as o}from"./index-Bndk0DrU.chunk.mjs";import{c as i}from"./index-DVH_Kr3Q.chunk.mjs";import{s as r}from"./index-JpgrUA2Z-BXxDc_if.chunk.mjs";import{g as a}from"./createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs";import"./runtime-dom.esm-bundler-DdtEg5E9.chunk.mjs";import"./public-uQ6dl0vH.chunk.mjs";import"./index-DCpg1aui.chunk.mjs";import"./NcModal-MC_HktJd-DqeuH-fk.chunk.mjs";import"./AccountOutline-BlW-6JqD.chunk.mjs";import"./string_decoder-vT-u9WbV.chunk.mjs";import"./Web-aYJacExm.chunk.mjs";import"./mdi-BpC5Cj53.chunk.mjs";window.addEventListener("DOMContentLoaded",async function(){if(o()===null)return;const{data:t}=await i.get(a("/apps/encryption/ajax/getStatus"));t.status==="interactionNeeded"&&r(t.data.message)}); //# sourceMappingURL=encryption-encryption.mjs.map diff --git a/dist/encryption-encryption.mjs.map b/dist/encryption-encryption.mjs.map index ee8c10b507558..186e720307986 100644 --- a/dist/encryption-encryption.mjs.map +++ b/dist/encryption-encryption.mjs.map @@ -1 +1 @@ -{"version":3,"file":"encryption-encryption.mjs","sources":["../build/frontend/apps/encryption/src/encryption.ts"],"sourcesContent":["/*!\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport axios from '@nextcloud/axios'\nimport { showWarning } from '@nextcloud/dialogs'\nimport { generateUrl } from '@nextcloud/router'\n\nwindow.addEventListener('DOMContentLoaded', async function() {\n\tif (getCurrentUser() === null) {\n\t\t// skip for public pages\n\t\treturn\n\t}\n\n\tconst { data } = await axios.get(generateUrl('/apps/encryption/ajax/getStatus'))\n\tif (data.status === 'interactionNeeded') {\n\t\tshowWarning(data.data.message)\n\t}\n})\n"],"names":["getCurrentUser","data","axios","generateUrl","showWarning"],"mappings":"geAUA,OAAO,iBAAiB,mBAAoB,gBAAiB,CAC5D,GAAIA,EAAA,IAAqB,KAExB,OAGD,KAAM,CAAE,KAAAC,GAAS,MAAMC,EAAM,IAAIC,EAAY,iCAAiC,CAAC,EAC3EF,EAAK,SAAW,qBACnBG,EAAYH,EAAK,KAAK,OAAO,CAE/B,CAAC"} \ No newline at end of file +{"version":3,"file":"encryption-encryption.mjs","sources":["../build/frontend/apps/encryption/src/encryption.ts"],"sourcesContent":["/*!\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport axios from '@nextcloud/axios'\nimport { showWarning } from '@nextcloud/dialogs'\nimport { generateUrl } from '@nextcloud/router'\n\nwindow.addEventListener('DOMContentLoaded', async function() {\n\tif (getCurrentUser() === null) {\n\t\t// skip for public pages\n\t\treturn\n\t}\n\n\tconst { data } = await axios.get(generateUrl('/apps/encryption/ajax/getStatus'))\n\tif (data.status === 'interactionNeeded') {\n\t\tshowWarning(data.data.message)\n\t}\n})\n"],"names":["getCurrentUser","data","axios","generateUrl","showWarning"],"mappings":"4hBAUA,OAAO,iBAAiB,mBAAoB,gBAAiB,CAC5D,GAAIA,EAAA,IAAqB,KAExB,OAGD,KAAM,CAAE,KAAAC,GAAS,MAAMC,EAAM,IAAIC,EAAY,iCAAiC,CAAC,EAC3EF,EAAK,SAAW,qBACnBG,EAAYH,EAAK,KAAK,OAAO,CAE/B,CAAC"} \ No newline at end of file diff --git a/dist/encryption-settings_admin.css b/dist/encryption-settings_admin.css index 714f015ca4f95..65f1d5a55ee97 100644 --- a/dist/encryption-settings_admin.css +++ b/dist/encryption-settings_admin.css @@ -1,20 +1,23 @@ /* extracted by css-entry-points-plugin */ @import './encryption-encryption-settings_admin-FcStFC2D.chunk.css'; -@import './NcNoteCard-CVhtNL04-DopLwvn9.chunk.css'; -@import './mdi-BYHcrfvW.chunk.css'; -@import './index-JpgrUA2Z-PxDoi4mB.chunk.css'; +@import './AccountOutline-Bx-uhVVO.chunk.css'; +@import './NcModal-MC_HktJd-YC6kxNbR.chunk.css'; @import './NcDateTime-DXOHXnuu.chunk.css'; +@import './Web-BYHcrfvW.chunk.css'; @import './NcSelect-Czzsi3P_-DxGOLvnt.chunk.css'; @import './NcInputField-Bwsh2aHY-_gyGHRGx.chunk.css'; -@import './NcCheckboxRadioSwitch-BCSKF7Tk-BgdwjgMO.chunk.css'; +@import './mdi-Jq77EThs.chunk.css'; +@import './index-JpgrUA2Z-CX17yN4T.chunk.css'; +@import './NcContent-BR_nMwKN-BSxKRQfD.chunk.css'; @import './index-DoZPzs7J.chunk.css'; -@import './PencilOutline-Bq_6hmXG.chunk.css'; -@import './NcAvatar-DmUGApWA-B-07Svbi.chunk.css'; -@import './NcRichText-CBMtJzE_-Ctfl9_Xi.chunk.css'; @import './NcPasswordField-djttkA5Q-2EzJaBaw.chunk.css'; @import './NcBreadcrumbs-DYfGaSjT-CLvNFon0.chunk.css'; +@import './PencilOutline-Bq_6hmXG.chunk.css'; +@import './NcAvatar-DmUGApWA-B-07Svbi.chunk.css'; @import './NcColorPicker-Kc0JqRtp-BOLDG5h-.chunk.css'; @import './NcEmojiPicker-pM4Pg2yq-BHtXoCfG.chunk.css'; +@import './NcCheckboxRadioSwitch-BCSKF7Tk-BgdwjgMO.chunk.css'; +@import './NcRichText-CBMtJzE_-DAm7eJJb.chunk.css'; @import './index-BrN_nqOS.chunk.css'; @import './TrayArrowDown-CMlC-wJV.chunk.css'; @import './NcGuestContent-j8ai4O1K-D0718NyY.chunk.css'; diff --git a/dist/encryption-settings_admin.mjs b/dist/encryption-settings_admin.mjs index ee7dcd0e67643..f25e2f290ac76 100644 --- a/dist/encryption-settings_admin.mjs +++ b/dist/encryption-settings_admin.mjs @@ -1,2 +1,2 @@ -import{b as k,q as x,r as i,s as H,c as f,o as d,u as e,w as c,g,t as w,v as A,x as q,j as P,e as p,l as h,H as K,n as j,F as D,k as F,h as I}from"./runtime-dom.esm-bundler-BrYCUcZF.chunk.mjs";import{a as M,l as z}from"./index-xFugdZPW.chunk.mjs";import{t as o}from"./translation-DoG5ZELJ-gw0g4US-.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-CAvY10OW.chunk.mjs";import{c as U,N as S}from"./NcNoteCard-CVhtNL04-hwuc093N.chunk.mjs";import"./index-DZnagzmP.chunk.mjs";import{g as E}from"./createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs";import"./NcBreadcrumbs-DYfGaSjT-DHeGymVL.chunk.mjs";import{w as B,e as $}from"./index-JpgrUA2Z-BFiKKJ1W.chunk.mjs";import"./NcAvatar-DmUGApWA-DBHt6M62.chunk.mjs";import"./NcRichText-CBMtJzE_-bvZFA37H.chunk.mjs";import"./mdi-D55n0uzy.chunk.mjs";import"./index-6_gsQFyp.chunk.mjs";import{N as O}from"./NcCheckboxRadioSwitch-BCSKF7Tk-yPckcGKs.chunk.mjs";import"./NcColorPicker-Kc0JqRtp-VtydDeG1.chunk.mjs";import"./TrayArrowDown-DV7s2Yis.chunk.mjs";import"./NcSelect-Czzsi3P_-DLFUGW7z.chunk.mjs";import"./NcEmojiPicker-pM4Pg2yq-C_Dpe77I.chunk.mjs";import"./index-BZk0T9Q-.chunk.mjs";/* empty css */import"./NcInputField-Bwsh2aHY-CHbAfY0u.chunk.mjs";import{N as V}from"./NcPasswordField-djttkA5Q-2g87vOpY.chunk.mjs";import{c as R}from"./index-BfylblLb.chunk.mjs";import"./TrashCanOutline-CvWRJ8GE.chunk.mjs";import{N as T}from"./ContentCopy-DVkZwwZt.chunk.mjs";import"./NcUserBubble-DPAmU2_J-BCvWAzcB.chunk.mjs";import"./PencilOutline-DCq8EKwg.chunk.mjs";import"./colors-Go3zmZRD-DU6ImAGi.chunk.mjs";import{N,l as C,I as G}from"./types-C3HF-oQj.chunk.mjs";import"./string_decoder-BO00msnV.chunk.mjs";const J=k({__name:"SettingsAdminHomeStorage",props:{modelValue:{type:Boolean,required:!0},modelModifiers:{}},emits:["update:modelValue"],setup(b){const a=x(b,"modelValue"),s=i(!1);return H(a,()=>{s.value=!0}),B(a,async(t,n)=>{if(t===n){s.value=!1;return}try{await R.post(E("/apps/encryption/ajax/setEncryptHomeStorage"),{encryptHomeStorage:t})}finally{s.value=!1}},{debounce:800}),(t,n)=>(d(),f(e(O),{modelValue:a.value,"onUpdate:modelValue":n[0]||(n[0]=r=>a.value=r),loading:s.value,description:e(o)("encryption","Enabling this option encrypts all files stored on the main storage, otherwise only files on external storage will be encrypted"),type:"switch"},{default:c(()=>[g(w(e(o)("encryption","Encrypt the home storage")),1)]),_:1},8,["modelValue","loading","description"]))}}),L=k({__name:"SettingsAdminRecoveryKey",props:{modelValue:{type:Boolean,required:!0},modelModifiers:{}},emits:["update:modelValue"],setup(b){const a=x(b,"modelValue"),s=A("form"),t=i(!1),n=i(!1),r=i(""),l=i(""),v=q(()=>r.value===l.value);async function _(){if(!t.value&&v.value){n.value=!1,t.value=!0;try{const{data:m}=await R.post(E("/apps/encryption/ajax/adminRecovery"),{adminEnableRecovery:!a.value,recoveryPassword:r.value,confirmPassword:l.value});a.value=!a.value,r.value=l.value="",s.value?.reset(),m.data.message&&$(m.data.message)}catch(m){n.value=!0,C.error("Failed to update recovery key settings",{error:m})}finally{t.value=!1}}}return(m,u)=>(d(),P("form",{ref:"form",onSubmit:K(_,["prevent"])},[p(e(N),{label:a.value?e(o)("encryption","Disable recovery key"):e(o)("encryption","Enable recovery key"),description:e(o)("encryption","The recovery key is an additional encryption key used to encrypt files. It is used to recover files from an account if the password is forgotten.")},{default:c(()=>[p(e(V),{modelValue:r.value,"onUpdate:modelValue":u[0]||(u[0]=y=>r.value=y),required:"",name:"password",label:e(o)("encryption","Recovery key password")},null,8,["modelValue","label"]),p(e(V),{modelValue:l.value,"onUpdate:modelValue":u[1]||(u[1]=y=>l.value=y),required:"",name:"confirmPassword",error:!!l.value&&!v.value,"helper-text":v.value||!l.value?"":e(o)("encryption","Passwords do not match fields"),label:e(o)("encryption","Repeat recovery key password")},null,8,["modelValue","error","helper-text","label"]),p(e(U),{type:"submit",variant:a.value?"error":"primary"},{default:c(()=>[g(w(a.value?e(o)("encryption","Disable recovery key"):e(o)("encryption","Enable recovery key")),1)]),_:1},8,["variant"]),n.value?(d(),f(e(S),{key:0,type:"error"},{default:c(()=>[g(w(e(o)("encryption","An error occurred while updating the recovery key settings. Please try again.")),1)]),_:1})):h("",!0)]),_:1},8,["label","description"])],544))}}),Q=k({__name:"SettingsAdminRecoveryKeyChange",setup(b){const a=A("form"),s=i(!1),t=i(!1),n=i(""),r=i(""),l=i(""),v=q(()=>r.value===l.value);async function _(){if(!s.value&&v.value){t.value=!1,s.value=!0;try{await R.post(E("/apps/encryption/ajax/changeRecoveryPassword"),{oldPassword:n.value,newPassword:r.value,confirmPassword:l.value}),n.value=r.value=l.value="",a.value?.reset()}catch(m){t.value=!0,C.error("Failed to update recovery key settings",{error:m})}finally{s.value=!1}}}return(m,u)=>(d(),P("form",{ref:"form",class:j(m.$style.settingsAdminRecoveryKeyChange),onSubmit:K(_,["prevent"])},[p(e(N),{label:e(o)("encryption","Change recovery key password")},{default:c(()=>[p(e(V),{modelValue:n.value,"onUpdate:modelValue":u[0]||(u[0]=y=>n.value=y),required:"",name:"oldPassword",label:e(o)("encryption","Old recovery key password")},null,8,["modelValue","label"]),p(e(V),{modelValue:r.value,"onUpdate:modelValue":u[1]||(u[1]=y=>r.value=y),required:"",name:"password",label:e(o)("encryption","New recovery key password")},null,8,["modelValue","label"]),p(e(V),{modelValue:l.value,"onUpdate:modelValue":u[2]||(u[2]=y=>l.value=y),required:"",name:"confirmPassword",error:!v.value&&!!l.value,"helper-text":v.value||!l.value?"":e(o)("encryption","Passwords do not match fields"),label:e(o)("encryption","Repeat new recovery key password")},null,8,["modelValue","error","helper-text","label"]),p(e(U),{type:"submit",variant:"primary"},{default:c(()=>[g(w(e(o)("encryption","Change recovery key password")),1)]),_:1}),t.value?(d(),f(e(S),{key:0,type:"error"},{default:c(()=>[g(w(e(o)("encryption","An error occurred while changing the recovery key password. Please try again.")),1)]),_:1})):h("",!0)]),_:1},8,["label"])],34))}}),W="_settingsAdminRecoveryKeyChange_12rwr_2",X={settingsAdminRecoveryKeyChange:W},Y={$style:X},Z=M(Q,[["__cssModules",Y]]),ee=k({__name:"SettingsAdmin",setup(b){const a=z("encryption","adminSettings"),s=i(a.encryptHomeStorage),t=i(a.recoveryEnabled);return(n,r)=>(d(),f(e(T),{name:e(o)("encryption","Default encryption module")},{default:c(()=>[e(a).initStatus===e(G).NotInitialized&&!e(a).masterKeyEnabled?(d(),f(e(S),{key:0,type:"warning"},{default:c(()=>[g(w(e(o)("encryption","Encryption app is enabled but your keys are not initialized, please log-out and log-in again")),1)]),_:1})):(d(),P(D,{key:1},[p(J,{modelValue:s.value,"onUpdate:modelValue":r[0]||(r[0]=l=>s.value=l)},null,8,["modelValue"]),r[2]||(r[2]=F("br",null,null,-1)),e(a).masterKeyEnabled?(d(),f(L,{key:0,modelValue:t.value,"onUpdate:modelValue":r[1]||(r[1]=l=>t.value=l)},null,8,["modelValue"])):h("",!0),e(a).masterKeyEnabled&&t.value?(d(),f(Z,{key:1})):h("",!0)],64))]),_:1},8,["name"]))}}),ae=I(ee);ae.mount("#encryption-settings-section"); +import{b as k,q as x,r as i,s as H,c as f,o as p,u as e,w as c,g,t as w,v as A,x as q,j as P,e as d,l as h,H as K,n as j,F as D,k as F,h as I}from"./runtime-dom.esm-bundler-DdtEg5E9.chunk.mjs";import{a as M,l as z}from"./index-DCpg1aui.chunk.mjs";import{t as o}from"./string_decoder-vT-u9WbV.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-BNncp1Y1.chunk.mjs";import{b as U}from"./AccountOutline-BlW-6JqD.chunk.mjs";import"./index-FxQbLoUx.chunk.mjs";import{g as S}from"./createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs";import"./NcBreadcrumbs-DYfGaSjT-BPFs0jvP.chunk.mjs";import{w as B}from"./NcModal-MC_HktJd-DqeuH-fk.chunk.mjs";import"./NcAvatar-DmUGApWA-xbPVEdSn.chunk.mjs";import"./NcContent-BR_nMwKN-DuxjkyFF.chunk.mjs";import"./Web-aYJacExm.chunk.mjs";import"./index-Bndk0DrU.chunk.mjs";import{N as $}from"./NcCheckboxRadioSwitch-BCSKF7Tk-B1Kcz6gU.chunk.mjs";import"./NcColorPicker-Kc0JqRtp-G7GArS5K.chunk.mjs";import"./TrayArrowDown-CEVYjTiD.chunk.mjs";import{e as O}from"./index-JpgrUA2Z-BXxDc_if.chunk.mjs";import"./NcSelect-Czzsi3P_-BKaYvmLF.chunk.mjs";import"./NcEmojiPicker-pM4Pg2yq-CYkSkF_Y.chunk.mjs";import"./index-QzsMEHKe.chunk.mjs";import"./NcRichText-CBMtJzE_-BrKByk17.chunk.mjs";/* empty css */import"./NcInputField-Bwsh2aHY-Cz27INBW.chunk.mjs";import{N as E}from"./mdi-BpC5Cj53.chunk.mjs";import{N as V}from"./NcPasswordField-djttkA5Q-Dz7uhHFj.chunk.mjs";import{c as R}from"./index-DVH_Kr3Q.chunk.mjs";import"./TrashCanOutline-DglPBhgI.chunk.mjs";import{N as T}from"./ContentCopy-s5fS3y5J.chunk.mjs";import"./NcUserBubble-DPAmU2_J-D9jxXA1V.chunk.mjs";import"./PencilOutline-BSRAQiy1.chunk.mjs";import"./colors-Go3zmZRD-DNxaZwS4.chunk.mjs";import{N as C,l as N,I as G}from"./types-CFcDejvb.chunk.mjs";import"./public-uQ6dl0vH.chunk.mjs";const J=k({__name:"SettingsAdminHomeStorage",props:{modelValue:{type:Boolean,required:!0},modelModifiers:{}},emits:["update:modelValue"],setup(b){const a=x(b,"modelValue"),s=i(!1);return H(a,()=>{s.value=!0}),B(a,async(t,n)=>{if(t===n){s.value=!1;return}try{await R.post(S("/apps/encryption/ajax/setEncryptHomeStorage"),{encryptHomeStorage:t})}finally{s.value=!1}},{debounce:800}),(t,n)=>(p(),f(e($),{modelValue:a.value,"onUpdate:modelValue":n[0]||(n[0]=r=>a.value=r),loading:s.value,description:e(o)("encryption","Enabling this option encrypts all files stored on the main storage, otherwise only files on external storage will be encrypted"),type:"switch"},{default:c(()=>[g(w(e(o)("encryption","Encrypt the home storage")),1)]),_:1},8,["modelValue","loading","description"]))}}),L=k({__name:"SettingsAdminRecoveryKey",props:{modelValue:{type:Boolean,required:!0},modelModifiers:{}},emits:["update:modelValue"],setup(b){const a=x(b,"modelValue"),s=A("form"),t=i(!1),n=i(!1),r=i(""),l=i(""),v=q(()=>r.value===l.value);async function _(){if(!t.value&&v.value){n.value=!1,t.value=!0;try{const{data:m}=await R.post(S("/apps/encryption/ajax/adminRecovery"),{adminEnableRecovery:!a.value,recoveryPassword:r.value,confirmPassword:l.value});a.value=!a.value,r.value=l.value="",s.value?.reset(),m.data.message&&O(m.data.message)}catch(m){n.value=!0,N.error("Failed to update recovery key settings",{error:m})}finally{t.value=!1}}}return(m,u)=>(p(),P("form",{ref:"form",onSubmit:K(_,["prevent"])},[d(e(C),{label:a.value?e(o)("encryption","Disable recovery key"):e(o)("encryption","Enable recovery key"),description:e(o)("encryption","The recovery key is an additional encryption key used to encrypt files. It is used to recover files from an account if the password is forgotten.")},{default:c(()=>[d(e(V),{modelValue:r.value,"onUpdate:modelValue":u[0]||(u[0]=y=>r.value=y),required:"",name:"password",label:e(o)("encryption","Recovery key password")},null,8,["modelValue","label"]),d(e(V),{modelValue:l.value,"onUpdate:modelValue":u[1]||(u[1]=y=>l.value=y),required:"",name:"confirmPassword",error:!!l.value&&!v.value,"helper-text":v.value||!l.value?"":e(o)("encryption","Passwords do not match fields"),label:e(o)("encryption","Repeat recovery key password")},null,8,["modelValue","error","helper-text","label"]),d(e(U),{type:"submit",variant:a.value?"error":"primary"},{default:c(()=>[g(w(a.value?e(o)("encryption","Disable recovery key"):e(o)("encryption","Enable recovery key")),1)]),_:1},8,["variant"]),n.value?(p(),f(e(E),{key:0,type:"error"},{default:c(()=>[g(w(e(o)("encryption","An error occurred while updating the recovery key settings. Please try again.")),1)]),_:1})):h("",!0)]),_:1},8,["label","description"])],544))}}),Q=k({__name:"SettingsAdminRecoveryKeyChange",setup(b){const a=A("form"),s=i(!1),t=i(!1),n=i(""),r=i(""),l=i(""),v=q(()=>r.value===l.value);async function _(){if(!s.value&&v.value){t.value=!1,s.value=!0;try{await R.post(S("/apps/encryption/ajax/changeRecoveryPassword"),{oldPassword:n.value,newPassword:r.value,confirmPassword:l.value}),n.value=r.value=l.value="",a.value?.reset()}catch(m){t.value=!0,N.error("Failed to update recovery key settings",{error:m})}finally{s.value=!1}}}return(m,u)=>(p(),P("form",{ref:"form",class:j(m.$style.settingsAdminRecoveryKeyChange),onSubmit:K(_,["prevent"])},[d(e(C),{label:e(o)("encryption","Change recovery key password")},{default:c(()=>[d(e(V),{modelValue:n.value,"onUpdate:modelValue":u[0]||(u[0]=y=>n.value=y),required:"",name:"oldPassword",label:e(o)("encryption","Old recovery key password")},null,8,["modelValue","label"]),d(e(V),{modelValue:r.value,"onUpdate:modelValue":u[1]||(u[1]=y=>r.value=y),required:"",name:"password",label:e(o)("encryption","New recovery key password")},null,8,["modelValue","label"]),d(e(V),{modelValue:l.value,"onUpdate:modelValue":u[2]||(u[2]=y=>l.value=y),required:"",name:"confirmPassword",error:!v.value&&!!l.value,"helper-text":v.value||!l.value?"":e(o)("encryption","Passwords do not match fields"),label:e(o)("encryption","Repeat new recovery key password")},null,8,["modelValue","error","helper-text","label"]),d(e(U),{type:"submit",variant:"primary"},{default:c(()=>[g(w(e(o)("encryption","Change recovery key password")),1)]),_:1}),t.value?(p(),f(e(E),{key:0,type:"error"},{default:c(()=>[g(w(e(o)("encryption","An error occurred while changing the recovery key password. Please try again.")),1)]),_:1})):h("",!0)]),_:1},8,["label"])],34))}}),W="_settingsAdminRecoveryKeyChange_12rwr_2",X={settingsAdminRecoveryKeyChange:W},Y={$style:X},Z=M(Q,[["__cssModules",Y]]),ee=k({__name:"SettingsAdmin",setup(b){const a=z("encryption","adminSettings"),s=i(a.encryptHomeStorage),t=i(a.recoveryEnabled);return(n,r)=>(p(),f(e(T),{name:e(o)("encryption","Default encryption module")},{default:c(()=>[e(a).initStatus===e(G).NotInitialized&&!e(a).masterKeyEnabled?(p(),f(e(E),{key:0,type:"warning"},{default:c(()=>[g(w(e(o)("encryption","Encryption app is enabled but your keys are not initialized, please log-out and log-in again")),1)]),_:1})):(p(),P(D,{key:1},[d(J,{modelValue:s.value,"onUpdate:modelValue":r[0]||(r[0]=l=>s.value=l)},null,8,["modelValue"]),r[2]||(r[2]=F("br",null,null,-1)),e(a).masterKeyEnabled?(p(),f(L,{key:0,modelValue:t.value,"onUpdate:modelValue":r[1]||(r[1]=l=>t.value=l)},null,8,["modelValue"])):h("",!0),e(a).masterKeyEnabled&&t.value?(p(),f(Z,{key:1})):h("",!0)],64))]),_:1},8,["name"]))}}),ae=I(ee);ae.mount("#encryption-settings-section"); //# sourceMappingURL=encryption-settings_admin.mjs.map diff --git a/dist/encryption-settings_admin.mjs.map b/dist/encryption-settings_admin.mjs.map index 28bc7cc4a23f5..abe2466c28b32 100644 --- a/dist/encryption-settings_admin.mjs.map +++ b/dist/encryption-settings_admin.mjs.map @@ -1 +1 @@ -{"version":3,"file":"encryption-settings_admin.mjs","sources":["../build/frontend/apps/encryption/src/components/SettingsAdminHomeStorage.vue","../build/frontend/apps/encryption/src/components/SettingsAdminRecoveryKey.vue","../build/frontend/apps/encryption/src/components/SettingsAdminRecoveryKeyChange.vue","../build/frontend/apps/encryption/src/views/SettingsAdmin.vue","../build/frontend/apps/encryption/src/settings-admin.ts"],"sourcesContent":["\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n","/*!\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { createApp } from 'vue'\nimport SettingsAdmin from './views/SettingsAdmin.vue'\n\nconst app = createApp(SettingsAdmin)\napp.mount('#encryption-settings-section')\n"],"names":["encryptHomeStorage","_useModel","__props","isSavingHomeStorageEncryption","ref","watch","watchDebounced","oldValue","axios","generateUrl","_createBlock","_unref","NcCheckboxRadioSwitch","$event","t","recoveryEnabled","formElement","useTemplateRef","isLoading","hasError","password","confirmPassword","passwordMatch","computed","onSubmit","data","showSuccess","error","logger","_createElementBlock","_createVNode","NcFormGroup","NcPasswordField","NcButton","NcNoteCard","oldPassword","_normalizeClass","$style","adminSettings","loadState","NcSettingsSection","InitStatus","_Fragment","SettingsAdminHomeStorage","_createElementVNode","SettingsAdminRecoveryKey","SettingsAdminRecoveryKeyChange","app","createApp","SettingsAdmin"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"encryption-settings_admin.mjs","sources":["../build/frontend/apps/encryption/src/components/SettingsAdminHomeStorage.vue","../build/frontend/apps/encryption/src/components/SettingsAdminRecoveryKey.vue","../build/frontend/apps/encryption/src/components/SettingsAdminRecoveryKeyChange.vue","../build/frontend/apps/encryption/src/views/SettingsAdmin.vue","../build/frontend/apps/encryption/src/settings-admin.ts"],"sourcesContent":["\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n","/*!\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { createApp } from 'vue'\nimport SettingsAdmin from './views/SettingsAdmin.vue'\n\nconst app = createApp(SettingsAdmin)\napp.mount('#encryption-settings-section')\n"],"names":["encryptHomeStorage","_useModel","__props","isSavingHomeStorageEncryption","ref","watch","watchDebounced","oldValue","axios","generateUrl","_createBlock","_unref","NcCheckboxRadioSwitch","$event","t","recoveryEnabled","formElement","useTemplateRef","isLoading","hasError","password","confirmPassword","passwordMatch","computed","onSubmit","data","showSuccess","error","logger","_createElementBlock","_createVNode","NcFormGroup","NcPasswordField","NcButton","NcNoteCard","oldPassword","_normalizeClass","$style","adminSettings","loadState","NcSettingsSection","InitStatus","_Fragment","SettingsAdminHomeStorage","_createElementVNode","SettingsAdminRecoveryKey","SettingsAdminRecoveryKeyChange","app","createApp","SettingsAdmin"],"mappings":"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"} \ No newline at end of file diff --git a/dist/encryption-settings_personal.css b/dist/encryption-settings_personal.css index 46b8d0497d89c..82319313384c7 100644 --- a/dist/encryption-settings_personal.css +++ b/dist/encryption-settings_personal.css @@ -1,20 +1,23 @@ /* extracted by css-entry-points-plugin */ -@import './NcNoteCard-CVhtNL04-DopLwvn9.chunk.css'; -@import './mdi-BYHcrfvW.chunk.css'; -@import './index-JpgrUA2Z-PxDoi4mB.chunk.css'; +@import './AccountOutline-Bx-uhVVO.chunk.css'; +@import './NcModal-MC_HktJd-YC6kxNbR.chunk.css'; +@import './Web-BYHcrfvW.chunk.css'; +@import './mdi-Jq77EThs.chunk.css'; +@import './index-JpgrUA2Z-CX17yN4T.chunk.css'; @import './ContentCopy-D7mIRwIy.chunk.css'; @import './NcDateTime-DXOHXnuu.chunk.css'; @import './NcSelect-Czzsi3P_-DxGOLvnt.chunk.css'; @import './NcInputField-Bwsh2aHY-_gyGHRGx.chunk.css'; -@import './NcCheckboxRadioSwitch-BCSKF7Tk-BgdwjgMO.chunk.css'; +@import './NcContent-BR_nMwKN-BSxKRQfD.chunk.css'; @import './index-DoZPzs7J.chunk.css'; -@import './PencilOutline-Bq_6hmXG.chunk.css'; -@import './NcAvatar-DmUGApWA-B-07Svbi.chunk.css'; -@import './NcRichText-CBMtJzE_-Ctfl9_Xi.chunk.css'; @import './NcPasswordField-djttkA5Q-2EzJaBaw.chunk.css'; @import './NcBreadcrumbs-DYfGaSjT-CLvNFon0.chunk.css'; +@import './PencilOutline-Bq_6hmXG.chunk.css'; +@import './NcAvatar-DmUGApWA-B-07Svbi.chunk.css'; @import './NcColorPicker-Kc0JqRtp-BOLDG5h-.chunk.css'; @import './NcEmojiPicker-pM4Pg2yq-BHtXoCfG.chunk.css'; +@import './NcCheckboxRadioSwitch-BCSKF7Tk-BgdwjgMO.chunk.css'; +@import './NcRichText-CBMtJzE_-DAm7eJJb.chunk.css'; @import './index-BrN_nqOS.chunk.css'; @import './TrayArrowDown-CMlC-wJV.chunk.css'; @import './NcGuestContent-j8ai4O1K-D0718NyY.chunk.css'; diff --git a/dist/encryption-settings_personal.mjs b/dist/encryption-settings_personal.mjs index e7e1097616639..2045d62ee1486 100644 --- a/dist/encryption-settings_personal.mjs +++ b/dist/encryption-settings_personal.mjs @@ -1,2 +1,2 @@ -import{b,v as x,r as l,j as N,o as p,e as v,w as d,c as u,l as E,u as e,g as f,t as g,H as j,q as F,s as I,h as z}from"./runtime-dom.esm-bundler-BrYCUcZF.chunk.mjs";import{c as w,i as S}from"./index-BfylblLb.chunk.mjs";import{a as U,w as B,d as K,c as R}from"./index-JpgrUA2Z-BFiKKJ1W.chunk.mjs";import{l as q}from"./index-xFugdZPW.chunk.mjs";import{t as r}from"./translation-DoG5ZELJ-gw0g4US-.chunk.mjs";import{g as _}from"./createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs";import{N as V,c as C}from"./NcNoteCard-CVhtNL04-hwuc093N.chunk.mjs";import{N as T}from"./ContentCopy-DVkZwwZt.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-CAvY10OW.chunk.mjs";import"./index-DZnagzmP.chunk.mjs";import"./NcBreadcrumbs-DYfGaSjT-DHeGymVL.chunk.mjs";import"./NcAvatar-DmUGApWA-DBHt6M62.chunk.mjs";import"./NcRichText-CBMtJzE_-bvZFA37H.chunk.mjs";import"./mdi-D55n0uzy.chunk.mjs";import"./index-6_gsQFyp.chunk.mjs";import{N as H}from"./NcCheckboxRadioSwitch-BCSKF7Tk-yPckcGKs.chunk.mjs";import"./NcColorPicker-Kc0JqRtp-VtydDeG1.chunk.mjs";import"./TrayArrowDown-DV7s2Yis.chunk.mjs";import"./NcSelect-Czzsi3P_-DLFUGW7z.chunk.mjs";import"./NcEmojiPicker-pM4Pg2yq-C_Dpe77I.chunk.mjs";import"./index-BZk0T9Q-.chunk.mjs";import{N as M,I as h,l as O}from"./types-C3HF-oQj.chunk.mjs";/* empty css */import"./NcInputField-Bwsh2aHY-CHbAfY0u.chunk.mjs";import{N as k}from"./NcPasswordField-djttkA5Q-2g87vOpY.chunk.mjs";import"./TrashCanOutline-CvWRJ8GE.chunk.mjs";import"./NcUserBubble-DPAmU2_J-BCvWAzcB.chunk.mjs";import"./PencilOutline-DCq8EKwg.chunk.mjs";import"./colors-Go3zmZRD-DU6ImAGi.chunk.mjs";import"./string_decoder-BO00msnV.chunk.mjs";const Y=b({__name:"SettingsPersonalChangePrivateKey",props:{recoveryEnabledForUser:{type:Boolean}},emits:["updated"],setup(c,{emit:a}){const s=a,i=x("form"),t=l(!1),o=l(!1),n=l(""),y=l("");async function P(){if(!t.value){t.value=!0,o.value=!1;try{await w.post(_("/apps/encryption/ajax/updatePrivateKeyPassword"),{oldPassword:n.value,newPassword:y.value}),n.value=y.value="",i.value?.reset(),s("updated")}catch(m){S(m)&&m.response&&m.response.data?.data?.message&&U(m.response.data.data.message),o.value=!0}finally{t.value=!1}}}return(m,J)=>(p(),N("form",{ref:"form",onSubmit:j(P,["prevent"])},[v(e(M),{label:e(r)("encryption","Update private key password"),description:e(r)("encryption","Your private key password no longer matches your log-in password. Set your old private key password to your current log-in password.")},{default:d(()=>[c.recoveryEnabledForUser?(p(),u(e(V),{key:0},{default:d(()=>[f(g(e(r)("encryption","If you do not remember your old password you can ask your administrator to recover your files.")),1)]),_:1})):E("",!0),v(e(k),{label:e(r)("encryption","Old log-in password")},null,8,["label"]),v(e(k),{label:e(r)("encryption","Current log-in password")},null,8,["label"]),v(e(C),{type:"submit",variant:"primary"},{default:d(()=>[f(g(e(r)("encryption","Update")),1)]),_:1})]),_:1},8,["label","description"])],544))}}),A=b({__name:"SettingsPersonalEnableRecovery",props:{modelValue:{type:Boolean,required:!0},modelModifiers:{}},emits:["update:modelValue"],setup(c){const a=F(c,"modelValue"),s=l(!1);return I(a,()=>{s.value=!0}),B([a],async([i],[t])=>{if(i===t){s.value=!1;return}const o=K(r("encryption","Updating recovery keys. This can take some time…"));try{await w.post(_("/apps/encryption/ajax/userSetRecovery"),{userEnableRecovery:a.value})}catch(n){a.value=t,S(n)&&n.response&&n.response.data?.data?.message&&U(n.response.data.data.message)}finally{o.hideToast(),s.value=!1}},{debounce:800}),(i,t)=>(p(),u(e(H),{modelValue:a.value,"onUpdate:modelValue":t[0]||(t[0]=o=>a.value=o),type:"switch",loading:s.value,description:e(r)("encryption","Enabling this option will allow you to reobtain access to your encrypted files in case of password loss")},{default:d(()=>[f(g(e(r)("encryption","Enable password recovery")),1)]),_:1},8,["modelValue","loading","description"]))}}),D=b({__name:"SettingsPersonal",setup(c){const a=q("encryption","personalSettings"),s=l(a.initialized),i=l(a.recoveryEnabledForUser);async function t(){try{const{data:o}=await w.get(_("/apps/encryption/ajax/getStatus"));s.value=o.initStatus,o.data.message&&R(o.data.message)}catch(o){O.error("Failed to fetch current encryption status",{error:o})}}return(o,n)=>(p(),u(e(T),{name:e(r)("encryption","Basic encryption module")},{default:d(()=>[s.value===e(h).NotInitialized?(p(),u(e(V),{key:0,type:"warning"},{default:d(()=>[f(g(e(r)("encryption","Encryption app is enabled but your keys are not initialized, please log-out and log-in again")),1)]),_:1})):s.value===e(h).InitExecuted?(p(),u(Y,{key:1,"recovery-enabled-for-user":i.value,onUpdated:t},null,8,["recovery-enabled-for-user"])):e(a).recoveryEnabled&&e(a).privateKeySet?(p(),u(A,{key:2,modelValue:i.value,"onUpdate:modelValue":n[0]||(n[0]=y=>i.value=y)},null,8,["modelValue"])):E("",!0)]),_:1},8,["name"]))}}),G=z(D);G.mount("#encryption-settings-section"); +import{b,v as x,r as l,j as N,o as p,e as v,w as d,c as u,l as E,u as e,g as f,t as g,H as j,q as F,s as I,h as z}from"./runtime-dom.esm-bundler-DdtEg5E9.chunk.mjs";import{c as w,i as S}from"./index-DVH_Kr3Q.chunk.mjs";import{a as U,d as B,c as K}from"./index-JpgrUA2Z-BXxDc_if.chunk.mjs";import{l as R}from"./index-DCpg1aui.chunk.mjs";import{t}from"./string_decoder-vT-u9WbV.chunk.mjs";import{g as _}from"./createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs";import{N as V}from"./mdi-BpC5Cj53.chunk.mjs";import{N as q}from"./ContentCopy-s5fS3y5J.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-BNncp1Y1.chunk.mjs";import{b as C}from"./AccountOutline-BlW-6JqD.chunk.mjs";import"./index-FxQbLoUx.chunk.mjs";import"./NcBreadcrumbs-DYfGaSjT-BPFs0jvP.chunk.mjs";import{w as T}from"./NcModal-MC_HktJd-DqeuH-fk.chunk.mjs";import"./NcAvatar-DmUGApWA-xbPVEdSn.chunk.mjs";import"./NcContent-BR_nMwKN-DuxjkyFF.chunk.mjs";import"./Web-aYJacExm.chunk.mjs";import"./index-Bndk0DrU.chunk.mjs";import{N as H}from"./NcCheckboxRadioSwitch-BCSKF7Tk-B1Kcz6gU.chunk.mjs";import"./NcColorPicker-Kc0JqRtp-G7GArS5K.chunk.mjs";import"./TrayArrowDown-CEVYjTiD.chunk.mjs";import"./NcSelect-Czzsi3P_-BKaYvmLF.chunk.mjs";import"./NcEmojiPicker-pM4Pg2yq-CYkSkF_Y.chunk.mjs";import"./index-QzsMEHKe.chunk.mjs";import"./NcRichText-CBMtJzE_-BrKByk17.chunk.mjs";import{N as M,I as h,l as O}from"./types-CFcDejvb.chunk.mjs";/* empty css */import"./NcInputField-Bwsh2aHY-Cz27INBW.chunk.mjs";import{N as k}from"./NcPasswordField-djttkA5Q-Dz7uhHFj.chunk.mjs";import"./TrashCanOutline-DglPBhgI.chunk.mjs";import"./NcUserBubble-DPAmU2_J-D9jxXA1V.chunk.mjs";import"./PencilOutline-BSRAQiy1.chunk.mjs";import"./colors-Go3zmZRD-DNxaZwS4.chunk.mjs";import"./public-uQ6dl0vH.chunk.mjs";const Y=b({__name:"SettingsPersonalChangePrivateKey",props:{recoveryEnabledForUser:{type:Boolean}},emits:["updated"],setup(c,{emit:a}){const s=a,i=x("form"),r=l(!1),o=l(!1),n=l(""),y=l("");async function P(){if(!r.value){r.value=!0,o.value=!1;try{await w.post(_("/apps/encryption/ajax/updatePrivateKeyPassword"),{oldPassword:n.value,newPassword:y.value}),n.value=y.value="",i.value?.reset(),s("updated")}catch(m){S(m)&&m.response&&m.response.data?.data?.message&&U(m.response.data.data.message),o.value=!0}finally{r.value=!1}}}return(m,J)=>(p(),N("form",{ref:"form",onSubmit:j(P,["prevent"])},[v(e(M),{label:e(t)("encryption","Update private key password"),description:e(t)("encryption","Your private key password no longer matches your log-in password. Set your old private key password to your current log-in password.")},{default:d(()=>[c.recoveryEnabledForUser?(p(),u(e(V),{key:0},{default:d(()=>[f(g(e(t)("encryption","If you do not remember your old password you can ask your administrator to recover your files.")),1)]),_:1})):E("",!0),v(e(k),{label:e(t)("encryption","Old log-in password")},null,8,["label"]),v(e(k),{label:e(t)("encryption","Current log-in password")},null,8,["label"]),v(e(C),{type:"submit",variant:"primary"},{default:d(()=>[f(g(e(t)("encryption","Update")),1)]),_:1})]),_:1},8,["label","description"])],544))}}),A=b({__name:"SettingsPersonalEnableRecovery",props:{modelValue:{type:Boolean,required:!0},modelModifiers:{}},emits:["update:modelValue"],setup(c){const a=F(c,"modelValue"),s=l(!1);return I(a,()=>{s.value=!0}),T([a],async([i],[r])=>{if(i===r){s.value=!1;return}const o=B(t("encryption","Updating recovery keys. This can take some time…"));try{await w.post(_("/apps/encryption/ajax/userSetRecovery"),{userEnableRecovery:a.value})}catch(n){a.value=r,S(n)&&n.response&&n.response.data?.data?.message&&U(n.response.data.data.message)}finally{o.hideToast(),s.value=!1}},{debounce:800}),(i,r)=>(p(),u(e(H),{modelValue:a.value,"onUpdate:modelValue":r[0]||(r[0]=o=>a.value=o),type:"switch",loading:s.value,description:e(t)("encryption","Enabling this option will allow you to reobtain access to your encrypted files in case of password loss")},{default:d(()=>[f(g(e(t)("encryption","Enable password recovery")),1)]),_:1},8,["modelValue","loading","description"]))}}),D=b({__name:"SettingsPersonal",setup(c){const a=R("encryption","personalSettings"),s=l(a.initialized),i=l(a.recoveryEnabledForUser);async function r(){try{const{data:o}=await w.get(_("/apps/encryption/ajax/getStatus"));s.value=o.initStatus,o.data.message&&K(o.data.message)}catch(o){O.error("Failed to fetch current encryption status",{error:o})}}return(o,n)=>(p(),u(e(q),{name:e(t)("encryption","Basic encryption module")},{default:d(()=>[s.value===e(h).NotInitialized?(p(),u(e(V),{key:0,type:"warning"},{default:d(()=>[f(g(e(t)("encryption","Encryption app is enabled but your keys are not initialized, please log-out and log-in again")),1)]),_:1})):s.value===e(h).InitExecuted?(p(),u(Y,{key:1,"recovery-enabled-for-user":i.value,onUpdated:r},null,8,["recovery-enabled-for-user"])):e(a).recoveryEnabled&&e(a).privateKeySet?(p(),u(A,{key:2,modelValue:i.value,"onUpdate:modelValue":n[0]||(n[0]=y=>i.value=y)},null,8,["modelValue"])):E("",!0)]),_:1},8,["name"]))}}),G=z(D);G.mount("#encryption-settings-section"); //# sourceMappingURL=encryption-settings_personal.mjs.map diff --git a/dist/encryption-settings_personal.mjs.map b/dist/encryption-settings_personal.mjs.map index c86fb8748c965..67bbe4538106c 100644 --- a/dist/encryption-settings_personal.mjs.map +++ b/dist/encryption-settings_personal.mjs.map @@ -1 +1 @@ -{"version":3,"file":"encryption-settings_personal.mjs","sources":["../build/frontend/apps/encryption/src/components/SettingsPersonalChangePrivateKey.vue","../build/frontend/apps/encryption/src/components/SettingsPersonalEnableRecovery.vue","../build/frontend/apps/encryption/src/views/SettingsPersonal.vue","../build/frontend/apps/encryption/src/settings-personal.ts"],"sourcesContent":["\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","/*!\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { createApp } from 'vue'\nimport SettingsPersonal from './views/SettingsPersonal.vue'\n\nconst app = createApp(SettingsPersonal)\napp.mount('#encryption-settings-section')\n"],"names":["emit","__emit","formElement","useTemplateRef","isLoading","ref","hasError","oldPrivateKeyPassword","newPrivateKeyPassword","onSubmit","axios","generateUrl","error","isAxiosError","showError","_createElementBlock","_createVNode","_unref","NcFormGroup","t","__props","_createBlock","NcNoteCard","NcPasswordField","NcButton","userEnableRecovery","_useModel","watch","watchDebounced","newValue","oldValue","toast","showLoading","NcCheckboxRadioSwitch","$event","personalSettings","loadState","initialized","recoveryEnabledForUser","reloadStatus","data","showInfo","logger","NcSettingsSection","InitStatus","SettingsPersonalChangePrivateKey","SettingsPersonalEnableRecovery","app","createApp","SettingsPersonal"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"encryption-settings_personal.mjs","sources":["../build/frontend/apps/encryption/src/components/SettingsPersonalChangePrivateKey.vue","../build/frontend/apps/encryption/src/components/SettingsPersonalEnableRecovery.vue","../build/frontend/apps/encryption/src/views/SettingsPersonal.vue","../build/frontend/apps/encryption/src/settings-personal.ts"],"sourcesContent":["\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","/*!\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { createApp } from 'vue'\nimport SettingsPersonal from './views/SettingsPersonal.vue'\n\nconst app = createApp(SettingsPersonal)\napp.mount('#encryption-settings-section')\n"],"names":["emit","__emit","formElement","useTemplateRef","isLoading","ref","hasError","oldPrivateKeyPassword","newPrivateKeyPassword","onSubmit","axios","generateUrl","error","isAxiosError","showError","_createElementBlock","_createVNode","_unref","NcFormGroup","t","__props","_createBlock","NcNoteCard","NcPasswordField","NcButton","userEnableRecovery","_useModel","watch","watchDebounced","newValue","oldValue","toast","showLoading","NcCheckboxRadioSwitch","$event","personalSettings","loadState","initialized","recoveryEnabledForUser","reloadStatus","data","showInfo","logger","NcSettingsSection","InitStatus","SettingsPersonalChangePrivateKey","SettingsPersonalEnableRecovery","app","createApp","SettingsPersonal"],"mappings":"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"} \ No newline at end of file diff --git a/dist/federatedfilesharing-init-files.css b/dist/federatedfilesharing-init-files.css index 914a15646b82b..3dd10eb1e8fe4 100644 --- a/dist/federatedfilesharing-init-files.css +++ b/dist/federatedfilesharing-init-files.css @@ -1,7 +1,9 @@ /* extracted by css-entry-points-plugin */ @import './federatedfilesharing-federatedfilesharing-init-files-DrBRJAfw.chunk.css'; -@import './NcNoteCard-CVhtNL04-DopLwvn9.chunk.css'; -@import './mdi-BYHcrfvW.chunk.css'; -@import './index-JpgrUA2Z-PxDoi4mB.chunk.css'; +@import './AccountOutline-Bx-uhVVO.chunk.css'; +@import './NcModal-MC_HktJd-YC6kxNbR.chunk.css'; +@import './Web-BYHcrfvW.chunk.css'; +@import './mdi-Jq77EThs.chunk.css'; +@import './index-JpgrUA2Z-CX17yN4T.chunk.css'; @import './NcInputField-Bwsh2aHY-_gyGHRGx.chunk.css'; @import './NcPasswordField-djttkA5Q-2EzJaBaw.chunk.css'; \ No newline at end of file diff --git a/dist/federatedfilesharing-init-files.mjs b/dist/federatedfilesharing-init-files.mjs index 5cd981b090974..09057493e1c03 100644 --- a/dist/federatedfilesharing-init-files.mjs +++ b/dist/federatedfilesharing-init-files.mjs @@ -1,2 +1,2 @@ -import{c as d,i as _}from"./index-BfylblLb.chunk.mjs";import{N as y,b,c as R,a as w}from"./index-JpgrUA2Z-BFiKKJ1W.chunk.mjs";import{s as v}from"./index-6_gsQFyp.chunk.mjs";import{a as D,l as S}from"./index-xFugdZPW.chunk.mjs";import{t}from"./translation-DoG5ZELJ-gw0g4US-.chunk.mjs";import{g as m}from"./createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs";import{N as O}from"./NcPasswordField-djttkA5Q-2g87vOpY.chunk.mjs";import{b as k,r as C,x as P,c as u,o as h,w as q,k as x,l as F,t as N,u as i,n as E}from"./runtime-dom.esm-bundler-BrYCUcZF.chunk.mjs";import{l as M}from"./logger-Cp6RU9KJ.chunk.mjs";import"./string_decoder-BO00msnV.chunk.mjs";import"./NcNoteCard-CVhtNL04-hwuc093N.chunk.mjs";import"./mdi-D55n0uzy.chunk.mjs";import"./NcInputField-Bwsh2aHY-CHbAfY0u.chunk.mjs";const T=k({__name:"RemoteShareDialog",props:{name:{},owner:{},remote:{},passwordRequired:{type:Boolean}},emits:["close"],setup(e,{emit:r}){const s=e,a=r,o=C(""),n=P(()=>[{label:t("federatedfilesharing","Cancel"),callback:()=>a("close",!1)},{label:t("federatedfilesharing","Add remote share"),type:s.passwordRequired?"submit":void 0,variant:"primary",callback:()=>a("close",!0,o.value)}]);return(p,l)=>(h(),u(i(y),{buttons:n.value,"is-form":e.passwordRequired,name:i(t)("federatedfilesharing","Remote share"),onSubmit:l[1]||(l[1]=f=>a("close",!0,o.value))},{default:q(()=>[x("p",null,N(i(t)("federatedfilesharing","Do you want to add the remote share {name} from {owner}@{remote}?",{name:e.name,owner:e.owner,remote:e.remote})),1),e.passwordRequired?(h(),u(i(O),{key:0,modelValue:o.value,"onUpdate:modelValue":l[0]||(l[0]=f=>o.value=f),class:E(p.$style.remoteShareDialog__password),label:i(t)("federatedfilesharing","Remote share password")},null,8,["modelValue","class","label"])):F("",!0)]),_:1},8,["buttons","is-form","name"]))}}),U="_remoteShareDialog__password_1ccpy_2",V={remoteShareDialog__password:U},$={$style:V},j=D(T,[["__cssModules",$]]);async function I(e,r,s,a=!1){const[o,n]=await b(j,{name:e,owner:r,remote:s,passwordRequired:a});if(a&&o)return n;if(!o)throw new Error("Dialog was cancelled")}window.addEventListener("DOMContentLoaded",()=>{L(),S("federatedfilesharing","notificationsEnabled",!0)!==!0&&A(),v("notifications:action:executed",({action:e,notification:r})=>{r.app==="files_sharing"&&r.object_type==="remote_share"&&e.type==="POST"&&c()})});function c(){if(!window?.OCP?.Files?.Router?.goToRoute){window.location.reload();return}window.OCP.Files.Router.goToRoute(null,{...window.OCP.Files.Router.params,fileid:void 0},{...window.OCP.Files.Router.query,dir:"/",openfile:void 0})}function L(){const e=window.OC.Util.History.parseUrlQuery();if(e.remote&&e.token&&e.name){const r=(s,a)=>{s!==!1&&d.post(m("apps/federatedfilesharing/askForFederatedShare"),{remote:a.remote,token:a.token,owner:a.owner,ownerDisplayName:a.ownerDisplayName||a.owner,name:a.name,password:a.password||""}).then(({data:o})=>{Object.hasOwn(o,"legacyMount")?c():R(o.message)}).catch(o=>{M.error("Error while processing incoming share",{error:o}),_(o)&&o.response.data.message?w(o.response.data.message):w(t("federatedfilesharing","Incoming share could not be processed"))})};location.hash="",e.passwordProtected=parseInt(e.protected,10)===1,g(e,e.passwordProtected,r)}}async function A(){const{data:e}=await d.get(m("/apps/files_sharing/api/externalShares"));for(let r=0;rc())})}function g(e,r,s){const a=e.ownerDisplayName||e.owner,o=e.name,n=e.remote.replace(/^https?:\/\//,"").replace(/\/$/,"");I(o,a,n,r).then(p=>s(!0,{...e,password:p})).catch(()=>s(!1,e))} +import{c as d,i as _}from"./index-DVH_Kr3Q.chunk.mjs";import{N as y,b,c as R,a as w}from"./index-JpgrUA2Z-BXxDc_if.chunk.mjs";import{s as v}from"./index-Bndk0DrU.chunk.mjs";import{a as D,l as S}from"./index-DCpg1aui.chunk.mjs";import{t}from"./string_decoder-vT-u9WbV.chunk.mjs";import{g as m}from"./createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs";import{N as O}from"./NcPasswordField-djttkA5Q-Dz7uhHFj.chunk.mjs";import{b as k,r as C,x as P,c as u,o as h,w as q,k as x,l as F,t as N,u as i,n as E}from"./runtime-dom.esm-bundler-DdtEg5E9.chunk.mjs";import{l as M}from"./logger-Z3HfytLa.chunk.mjs";import"./public-uQ6dl0vH.chunk.mjs";import"./NcModal-MC_HktJd-DqeuH-fk.chunk.mjs";import"./AccountOutline-BlW-6JqD.chunk.mjs";import"./Web-aYJacExm.chunk.mjs";import"./mdi-BpC5Cj53.chunk.mjs";import"./NcInputField-Bwsh2aHY-Cz27INBW.chunk.mjs";const T=k({__name:"RemoteShareDialog",props:{name:{},owner:{},remote:{},passwordRequired:{type:Boolean}},emits:["close"],setup(e,{emit:r}){const s=e,a=r,o=C(""),n=P(()=>[{label:t("federatedfilesharing","Cancel"),callback:()=>a("close",!1)},{label:t("federatedfilesharing","Add remote share"),type:s.passwordRequired?"submit":void 0,variant:"primary",callback:()=>a("close",!0,o.value)}]);return(p,l)=>(h(),u(i(y),{buttons:n.value,"is-form":e.passwordRequired,name:i(t)("federatedfilesharing","Remote share"),onSubmit:l[1]||(l[1]=f=>a("close",!0,o.value))},{default:q(()=>[x("p",null,N(i(t)("federatedfilesharing","Do you want to add the remote share {name} from {owner}@{remote}?",{name:e.name,owner:e.owner,remote:e.remote})),1),e.passwordRequired?(h(),u(i(O),{key:0,modelValue:o.value,"onUpdate:modelValue":l[0]||(l[0]=f=>o.value=f),class:E(p.$style.remoteShareDialog__password),label:i(t)("federatedfilesharing","Remote share password")},null,8,["modelValue","class","label"])):F("",!0)]),_:1},8,["buttons","is-form","name"]))}}),U="_remoteShareDialog__password_1ccpy_2",V={remoteShareDialog__password:U},$={$style:V},j=D(T,[["__cssModules",$]]);async function I(e,r,s,a=!1){const[o,n]=await b(j,{name:e,owner:r,remote:s,passwordRequired:a});if(a&&o)return n;if(!o)throw new Error("Dialog was cancelled")}window.addEventListener("DOMContentLoaded",()=>{L(),S("federatedfilesharing","notificationsEnabled",!0)!==!0&&A(),v("notifications:action:executed",({action:e,notification:r})=>{r.app==="files_sharing"&&r.object_type==="remote_share"&&e.type==="POST"&&c()})});function c(){if(!window?.OCP?.Files?.Router?.goToRoute){window.location.reload();return}window.OCP.Files.Router.goToRoute(null,{...window.OCP.Files.Router.params,fileid:void 0},{...window.OCP.Files.Router.query,dir:"/",openfile:void 0})}function L(){const e=window.OC.Util.History.parseUrlQuery();if(e.remote&&e.token&&e.name){const r=(s,a)=>{s!==!1&&d.post(m("apps/federatedfilesharing/askForFederatedShare"),{remote:a.remote,token:a.token,owner:a.owner,ownerDisplayName:a.ownerDisplayName||a.owner,name:a.name,password:a.password||""}).then(({data:o})=>{Object.hasOwn(o,"legacyMount")?c():R(o.message)}).catch(o=>{M.error("Error while processing incoming share",{error:o}),_(o)&&o.response.data.message?w(o.response.data.message):w(t("federatedfilesharing","Incoming share could not be processed"))})};location.hash="",e.passwordProtected=parseInt(e.protected,10)===1,g(e,e.passwordProtected,r)}}async function A(){const{data:e}=await d.get(m("/apps/files_sharing/api/externalShares"));for(let r=0;rc())})}function g(e,r,s){const a=e.ownerDisplayName||e.owner,o=e.name,n=e.remote.replace(/^https?:\/\//,"").replace(/\/$/,"");I(o,a,n,r).then(p=>s(!0,{...e,password:p})).catch(()=>s(!1,e))} //# sourceMappingURL=federatedfilesharing-init-files.mjs.map diff --git a/dist/federatedfilesharing-init-files.mjs.map b/dist/federatedfilesharing-init-files.mjs.map index 7812ae7f49533..e80da825981a6 100644 --- a/dist/federatedfilesharing-init-files.mjs.map +++ b/dist/federatedfilesharing-init-files.mjs.map @@ -1 +1 @@ -{"version":3,"file":"federatedfilesharing-init-files.mjs","sources":["../build/frontend/apps/federatedfilesharing/src/components/RemoteShareDialog.vue","../build/frontend/apps/federatedfilesharing/src/services/dialogService.ts","../build/frontend/apps/federatedfilesharing/src/init-files.js"],"sourcesContent":["\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { spawnDialog } from '@nextcloud/vue/functions/dialog'\nimport RemoteShareDialog from '../components/RemoteShareDialog.vue'\n\n/**\n * Open a dialog to ask the user whether to add a remote share.\n *\n * @param name The name of the share\n * @param owner The owner of the share\n * @param remote The remote address\n * @param passwordRequired True if the share is password protected\n */\nexport async function showRemoteShareDialog(\n\tname: string,\n\towner: string,\n\tremote: string,\n\tpasswordRequired = false,\n): Promise {\n\tconst [status, password] = await spawnDialog(RemoteShareDialog, {\n\t\tname,\n\t\towner,\n\t\tremote,\n\t\tpasswordRequired,\n\t})\n\n\tif (passwordRequired && status) {\n\t\treturn password as string\n\t} else if (status) {\n\t\treturn\n\t} else {\n\t\tthrow new Error('Dialog was cancelled')\n\t}\n}\n","/**\n * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-FileCopyrightText: 2014-2016 ownCloud, Inc.\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios, { isAxiosError } from '@nextcloud/axios'\nimport { showError, showInfo } from '@nextcloud/dialogs'\nimport { subscribe } from '@nextcloud/event-bus'\nimport { loadState } from '@nextcloud/initial-state'\nimport { t } from '@nextcloud/l10n'\nimport { generateUrl } from '@nextcloud/router'\nimport { showRemoteShareDialog } from './services/dialogService.ts'\nimport logger from './services/logger.ts'\n\nwindow.addEventListener('DOMContentLoaded', () => {\n\tprocessIncomingShareFromUrl()\n\n\tif (loadState('federatedfilesharing', 'notificationsEnabled', true) !== true) {\n\t\t// No notification app, display the modal\n\t\tprocessSharesToConfirm()\n\t}\n\n\tsubscribe('notifications:action:executed', ({ action, notification }) => {\n\t\tif (notification.app === 'files_sharing' && notification.object_type === 'remote_share' && action.type === 'POST') {\n\t\t\t// User accepted a remote share reload\n\t\t\treloadFilesList()\n\t\t}\n\t})\n})\n\n/**\n * Reload the files list to show accepted shares\n */\nfunction reloadFilesList() {\n\tif (!window?.OCP?.Files?.Router?.goToRoute) {\n\t\t// No router, just reload the page\n\t\twindow.location.reload()\n\t\treturn\n\t}\n\n\t// Let's redirect to the root as any accepted share would be there\n\twindow.OCP.Files.Router.goToRoute(\n\t\tnull,\n\t\t{ ...window.OCP.Files.Router.params, fileid: undefined },\n\t\t{ ...window.OCP.Files.Router.query, dir: '/', openfile: undefined },\n\t)\n}\n\n/**\n * Process incoming remote share that might have been passed\n * through the URL\n */\nfunction processIncomingShareFromUrl() {\n\tconst params = window.OC.Util.History.parseUrlQuery()\n\n\t// manually add server-to-server share\n\tif (params.remote && params.token && params.name) {\n\t\tconst callbackAddShare = (result, share) => {\n\t\t\tif (result === false) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\taxios.post(\n\t\t\t\tgenerateUrl('apps/federatedfilesharing/askForFederatedShare'),\n\t\t\t\t{\n\t\t\t\t\tremote: share.remote,\n\t\t\t\t\ttoken: share.token,\n\t\t\t\t\towner: share.owner,\n\t\t\t\t\townerDisplayName: share.ownerDisplayName || share.owner,\n\t\t\t\t\tname: share.name,\n\t\t\t\t\tpassword: share.password || '',\n\t\t\t\t},\n\t\t\t).then(({ data }) => {\n\t\t\t\tif (Object.hasOwn(data, 'legacyMount')) {\n\t\t\t\t\treloadFilesList()\n\t\t\t\t} else {\n\t\t\t\t\tshowInfo(data.message)\n\t\t\t\t}\n\t\t\t}).catch((error) => {\n\t\t\t\tlogger.error('Error while processing incoming share', { error })\n\n\t\t\t\tif (isAxiosError(error) && error.response.data.message) {\n\t\t\t\t\tshowError(error.response.data.message)\n\t\t\t\t} else {\n\t\t\t\t\tshowError(t('federatedfilesharing', 'Incoming share could not be processed'))\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\n\t\t// clear hash, it is unlikely that it contain any extra parameters\n\t\tlocation.hash = ''\n\t\tparams.passwordProtected = parseInt(params.protected, 10) === 1\n\t\tshowAddExternalDialog(\n\t\t\tparams,\n\t\t\tparams.passwordProtected,\n\t\t\tcallbackAddShare,\n\t\t)\n\t}\n}\n\n/**\n * Retrieve a list of remote shares that need to be approved\n */\nasync function processSharesToConfirm() {\n\t// check for new server-to-server shares which need to be approved\n\tconst { data: shares } = await axios.get(generateUrl('/apps/files_sharing/api/externalShares'))\n\tfor (let index = 0; index < shares.length; ++index) {\n\t\tshowAddExternalDialog(\n\t\t\tshares[index],\n\t\t\tfalse,\n\t\t\tfunction(result, share) {\n\t\t\t\tif (result === false) {\n\t\t\t\t\t// Delete\n\t\t\t\t\taxios.delete(generateUrl('/apps/files_sharing/api/externalShares/' + share.id))\n\t\t\t\t} else {\n\t\t\t\t\t// Accept\n\t\t\t\t\taxios.post(generateUrl('/apps/files_sharing/api/externalShares'), { id: share.id })\n\t\t\t\t\t\t.then(() => reloadFilesList())\n\t\t\t\t}\n\t\t\t},\n\t\t)\n\t}\n}\n\n/**\n * Shows \"add external share\" dialog.\n *\n * @param {object} share the share\n * @param {string} share.remote remote server URL\n * @param {string} share.owner owner name\n * @param {string} share.name name of the shared folder\n * @param {string} share.token authentication token\n * @param {boolean} passwordProtected true if the share is password protected\n * @param {Function} callback the callback\n */\nfunction showAddExternalDialog(share, passwordProtected, callback) {\n\tconst owner = share.ownerDisplayName || share.owner\n\tconst name = share.name\n\n\t// Clean up the remote URL for display\n\tconst remote = share.remote\n\t\t.replace(/^https?:\\/\\//, '') // remove http:// or https://\n\t\t.replace(/\\/$/, '') // remove trailing slash\n\n\tshowRemoteShareDialog(name, owner, remote, passwordProtected)\n\t\t.then((password) => callback(true, { ...share, password }))\n\t\t.catch(() => callback(false, share))\n}\n"],"names":["props","__props","emit","__emit","password","ref","buttons","computed","t","_createBlock","_unref","NcDialog","_cache","$event","_createElementVNode","NcPasswordField","_normalizeClass","$style","showRemoteShareDialog","name","owner","remote","passwordRequired","status","spawnDialog","RemoteShareDialog","processIncomingShareFromUrl","loadState","processSharesToConfirm","subscribe","action","notification","reloadFilesList","params","callbackAddShare","result","share","axios","generateUrl","data","showInfo","error","logger","isAxiosError","showError","showAddExternalDialog","shares","index","passwordProtected","callback"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"federatedfilesharing-init-files.mjs","sources":["../build/frontend/apps/federatedfilesharing/src/components/RemoteShareDialog.vue","../build/frontend/apps/federatedfilesharing/src/services/dialogService.ts","../build/frontend/apps/federatedfilesharing/src/init-files.js"],"sourcesContent":["\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { spawnDialog } from '@nextcloud/vue/functions/dialog'\nimport RemoteShareDialog from '../components/RemoteShareDialog.vue'\n\n/**\n * Open a dialog to ask the user whether to add a remote share.\n *\n * @param name The name of the share\n * @param owner The owner of the share\n * @param remote The remote address\n * @param passwordRequired True if the share is password protected\n */\nexport async function showRemoteShareDialog(\n\tname: string,\n\towner: string,\n\tremote: string,\n\tpasswordRequired = false,\n): Promise {\n\tconst [status, password] = await spawnDialog(RemoteShareDialog, {\n\t\tname,\n\t\towner,\n\t\tremote,\n\t\tpasswordRequired,\n\t})\n\n\tif (passwordRequired && status) {\n\t\treturn password as string\n\t} else if (status) {\n\t\treturn\n\t} else {\n\t\tthrow new Error('Dialog was cancelled')\n\t}\n}\n","/**\n * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-FileCopyrightText: 2014-2016 ownCloud, Inc.\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios, { isAxiosError } from '@nextcloud/axios'\nimport { showError, showInfo } from '@nextcloud/dialogs'\nimport { subscribe } from '@nextcloud/event-bus'\nimport { loadState } from '@nextcloud/initial-state'\nimport { t } from '@nextcloud/l10n'\nimport { generateUrl } from '@nextcloud/router'\nimport { showRemoteShareDialog } from './services/dialogService.ts'\nimport logger from './services/logger.ts'\n\nwindow.addEventListener('DOMContentLoaded', () => {\n\tprocessIncomingShareFromUrl()\n\n\tif (loadState('federatedfilesharing', 'notificationsEnabled', true) !== true) {\n\t\t// No notification app, display the modal\n\t\tprocessSharesToConfirm()\n\t}\n\n\tsubscribe('notifications:action:executed', ({ action, notification }) => {\n\t\tif (notification.app === 'files_sharing' && notification.object_type === 'remote_share' && action.type === 'POST') {\n\t\t\t// User accepted a remote share reload\n\t\t\treloadFilesList()\n\t\t}\n\t})\n})\n\n/**\n * Reload the files list to show accepted shares\n */\nfunction reloadFilesList() {\n\tif (!window?.OCP?.Files?.Router?.goToRoute) {\n\t\t// No router, just reload the page\n\t\twindow.location.reload()\n\t\treturn\n\t}\n\n\t// Let's redirect to the root as any accepted share would be there\n\twindow.OCP.Files.Router.goToRoute(\n\t\tnull,\n\t\t{ ...window.OCP.Files.Router.params, fileid: undefined },\n\t\t{ ...window.OCP.Files.Router.query, dir: '/', openfile: undefined },\n\t)\n}\n\n/**\n * Process incoming remote share that might have been passed\n * through the URL\n */\nfunction processIncomingShareFromUrl() {\n\tconst params = window.OC.Util.History.parseUrlQuery()\n\n\t// manually add server-to-server share\n\tif (params.remote && params.token && params.name) {\n\t\tconst callbackAddShare = (result, share) => {\n\t\t\tif (result === false) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\taxios.post(\n\t\t\t\tgenerateUrl('apps/federatedfilesharing/askForFederatedShare'),\n\t\t\t\t{\n\t\t\t\t\tremote: share.remote,\n\t\t\t\t\ttoken: share.token,\n\t\t\t\t\towner: share.owner,\n\t\t\t\t\townerDisplayName: share.ownerDisplayName || share.owner,\n\t\t\t\t\tname: share.name,\n\t\t\t\t\tpassword: share.password || '',\n\t\t\t\t},\n\t\t\t).then(({ data }) => {\n\t\t\t\tif (Object.hasOwn(data, 'legacyMount')) {\n\t\t\t\t\treloadFilesList()\n\t\t\t\t} else {\n\t\t\t\t\tshowInfo(data.message)\n\t\t\t\t}\n\t\t\t}).catch((error) => {\n\t\t\t\tlogger.error('Error while processing incoming share', { error })\n\n\t\t\t\tif (isAxiosError(error) && error.response.data.message) {\n\t\t\t\t\tshowError(error.response.data.message)\n\t\t\t\t} else {\n\t\t\t\t\tshowError(t('federatedfilesharing', 'Incoming share could not be processed'))\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\n\t\t// clear hash, it is unlikely that it contain any extra parameters\n\t\tlocation.hash = ''\n\t\tparams.passwordProtected = parseInt(params.protected, 10) === 1\n\t\tshowAddExternalDialog(\n\t\t\tparams,\n\t\t\tparams.passwordProtected,\n\t\t\tcallbackAddShare,\n\t\t)\n\t}\n}\n\n/**\n * Retrieve a list of remote shares that need to be approved\n */\nasync function processSharesToConfirm() {\n\t// check for new server-to-server shares which need to be approved\n\tconst { data: shares } = await axios.get(generateUrl('/apps/files_sharing/api/externalShares'))\n\tfor (let index = 0; index < shares.length; ++index) {\n\t\tshowAddExternalDialog(\n\t\t\tshares[index],\n\t\t\tfalse,\n\t\t\tfunction(result, share) {\n\t\t\t\tif (result === false) {\n\t\t\t\t\t// Delete\n\t\t\t\t\taxios.delete(generateUrl('/apps/files_sharing/api/externalShares/' + share.id))\n\t\t\t\t} else {\n\t\t\t\t\t// Accept\n\t\t\t\t\taxios.post(generateUrl('/apps/files_sharing/api/externalShares'), { id: share.id })\n\t\t\t\t\t\t.then(() => reloadFilesList())\n\t\t\t\t}\n\t\t\t},\n\t\t)\n\t}\n}\n\n/**\n * Shows \"add external share\" dialog.\n *\n * @param {object} share the share\n * @param {string} share.remote remote server URL\n * @param {string} share.owner owner name\n * @param {string} share.name name of the shared folder\n * @param {string} share.token authentication token\n * @param {boolean} passwordProtected true if the share is password protected\n * @param {Function} callback the callback\n */\nfunction showAddExternalDialog(share, passwordProtected, callback) {\n\tconst owner = share.ownerDisplayName || share.owner\n\tconst name = share.name\n\n\t// Clean up the remote URL for display\n\tconst remote = share.remote\n\t\t.replace(/^https?:\\/\\//, '') // remove http:// or https://\n\t\t.replace(/\\/$/, '') // remove trailing slash\n\n\tshowRemoteShareDialog(name, owner, remote, passwordProtected)\n\t\t.then((password) => callback(true, { ...share, password }))\n\t\t.catch(() => callback(false, share))\n}\n"],"names":["props","__props","emit","__emit","password","ref","buttons","computed","t","_createBlock","_unref","NcDialog","_cache","$event","_createElementVNode","NcPasswordField","_normalizeClass","$style","showRemoteShareDialog","name","owner","remote","passwordRequired","status","spawnDialog","RemoteShareDialog","processIncomingShareFromUrl","loadState","processSharesToConfirm","subscribe","action","notification","reloadFilesList","params","callbackAddShare","result","share","axios","generateUrl","data","showInfo","error","logger","isAxiosError","showError","showAddExternalDialog","shares","index","passwordProtected","callback"],"mappings":"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"} \ No newline at end of file diff --git a/dist/federatedfilesharing-settings-admin.css b/dist/federatedfilesharing-settings-admin.css index 3e253f1e89a70..983c8c27d5320 100644 --- a/dist/federatedfilesharing-settings-admin.css +++ b/dist/federatedfilesharing-settings-admin.css @@ -1,8 +1,10 @@ /* extracted by css-entry-points-plugin */ @import './federatedfilesharing-federatedfilesharing-settings-admin-DhbMDSZa.chunk.css'; -@import './NcNoteCard-CVhtNL04-DopLwvn9.chunk.css'; -@import './mdi-BYHcrfvW.chunk.css'; -@import './index-JpgrUA2Z-PxDoi4mB.chunk.css'; +@import './AccountOutline-Bx-uhVVO.chunk.css'; +@import './NcModal-MC_HktJd-YC6kxNbR.chunk.css'; +@import './Web-BYHcrfvW.chunk.css'; +@import './mdi-Jq77EThs.chunk.css'; +@import './index-JpgrUA2Z-CX17yN4T.chunk.css'; @import './NcInputField-Bwsh2aHY-_gyGHRGx.chunk.css'; @import './NcPasswordField-djttkA5Q-2EzJaBaw.chunk.css'; @import './NcCheckboxRadioSwitch-BCSKF7Tk-BgdwjgMO.chunk.css'; diff --git a/dist/federatedfilesharing-settings-admin.mjs b/dist/federatedfilesharing-settings-admin.mjs index f591783b5023f..3fb219c76b11d 100644 --- a/dist/federatedfilesharing-settings-admin.mjs +++ b/dist/federatedfilesharing-settings-admin.mjs @@ -1,2 +1,2 @@ -import{l as s,a as V}from"./index-xFugdZPW.chunk.mjs";import{b as U,I as G,c as g,o as c,w as i,e as f,l as m,k as h,u as a,g as u,t as l,h as T}from"./runtime-dom.esm-bundler-BrYCUcZF.chunk.mjs";import{c as x}from"./index-BfylblLb.chunk.mjs";import{a as v,h as b}from"./index-JpgrUA2Z-BFiKKJ1W.chunk.mjs";import{t as e}from"./translation-DoG5ZELJ-gw0g4US-.chunk.mjs";import{c as C}from"./index-cDQt1Drw.chunk.mjs";import{a as D}from"./createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs";import{N as p}from"./NcCheckboxRadioSwitch-BCSKF7Tk-yPckcGKs.chunk.mjs";import{N as I}from"./ContentCopy-DVkZwwZt.chunk.mjs";import{l as S}from"./logger-Cp6RU9KJ.chunk.mjs";import"./modulepreload-polyfill-BxzAKjcf.chunk.mjs";import"./index-6_gsQFyp.chunk.mjs";import"./string_decoder-BO00msnV.chunk.mjs";import"./NcNoteCard-CVhtNL04-hwuc093N.chunk.mjs";import"./mdi-D55n0uzy.chunk.mjs";import"./NcPasswordField-djttkA5Q-2g87vOpY.chunk.mjs";import"./NcInputField-Bwsh2aHY-CHbAfY0u.chunk.mjs";const j={class:"settings-subsection"},q={class:"settings-subsection__name"},F=U({__name:"AdminSettings",setup(R){const E=s("federatedfilesharing","sharingFederatedDocUrl"),y=new Proxy({outgoingServer2serverShareEnabled:[s("federatedfilesharing","outgoingServer2serverShareEnabled"),"outgoing_server2server_share_enabled"],incomingServer2serverShareEnabled:[s("federatedfilesharing","incomingServer2serverShareEnabled"),"incoming_server2server_share_enabled"],outgoingServer2serverGroupShareEnabled:[s("federatedfilesharing","outgoingServer2serverGroupShareEnabled"),"outgoing_server2server_group_share_enabled"],incomingServer2serverGroupShareEnabled:[s("federatedfilesharing","incomingServer2serverGroupShareEnabled"),"incoming_server2server_group_share_enabled"],federatedGroupSharingSupported:[s("federatedfilesharing","federatedGroupSharingSupported"),"federated_group_sharing_supported"],federatedTrustedShareAutoAccept:[s("federatedfilesharing","federatedTrustedShareAutoAccept"),"federatedTrustedShareAutoAccept"],lookupServerEnabled:[s("federatedfilesharing","lookupServerEnabled"),"lookupServerEnabled"],lookupServerUploadEnabled:[s("federatedfilesharing","lookupServerUploadEnabled"),"lookupServerUploadEnabled"]},{get(d,o){return d[o]?.[0]},set(d,o,t){return o in d?(d[o][0]=t,k(d[o][1],t),!0):!1}}),r=G(y);async function _(d){if(d===!1)return r.lookupServerUploadEnabled=!1;await b({name:e("federatedfilesharing","Confirm data upload to lookup server"),text:e("federatedfilesharing",'When enabled, all account properties (e.g. email address) with scope visibility set to "published", will be automatically synced and transmitted to an external system and made available in a public, global address book.'),labelConfirm:e("federatedfilesharing","Enable data upload"),labelReject:e("federatedfilesharing","Disable upload"),severity:"warning"}).then(()=>{r.lookupServerUploadEnabled=!0}).catch(()=>{r.lookupServerUploadEnabled=!1})}async function w(d){if(d===!1)return r.lookupServerEnabled=!1;await b({name:e("federatedfilesharing","Confirm querying lookup server"),text:e("federatedfilesharing","When enabled, the search input when creating shares will be sent to an external system that provides a public and global address book.")+e("federatedfilesharing","This is used to retrieve the federated cloud ID to make federated sharing easier.")+e("federatedfilesharing","Moreover, email addresses of users might be sent to that system in order to verify them."),labelConfirm:e("federatedfilesharing","Enable querying"),labelReject:e("federatedfilesharing","Disable querying"),severity:"warning"}).then(()=>{r.lookupServerEnabled=!0}).catch(()=>{r.lookupServerEnabled=!1})}async function k(d,o){await C();const t=D("/apps/provisioning_api/api/v1/config/apps/{appId}/{key}",{appId:"files_sharing",key:d}),A=o?"yes":"no";try{const{data:n}=await x.post(t,{value:A});if(n.ocs.meta.status!=="ok")if(n.ocs.meta.message)v(n.ocs.meta.message),S.error("Error updating federated files sharing config",{error:n.ocs});else throw new Error(`Failed to update federatedfilesharing config, ${n.ocs.meta.statuscode}`)}catch(n){S.error("Error updating federated files sharing config",{error:n}),v(e("federatedfilesharing","Unable to update federated files sharing config"))}}return(d,o)=>(c(),g(a(I),{name:a(e)("federatedfilesharing","Federated Cloud Sharing"),description:a(e)("federatedfilesharing","Adjust how people can share between servers. This includes shares between people on this server as well if they are using federated sharing."),"doc-url":a(E)},{default:i(()=>[f(a(p),{modelValue:r.outgoingServer2serverShareEnabled,"onUpdate:modelValue":o[0]||(o[0]=t=>r.outgoingServer2serverShareEnabled=t),type:"switch"},{default:i(()=>[u(l(a(e)("federatedfilesharing","Allow people on this server to send shares to other servers (this option also allows WebDAV access to public shares)")),1)]),_:1},8,["modelValue"]),f(a(p),{modelValue:r.incomingServer2serverShareEnabled,"onUpdate:modelValue":o[1]||(o[1]=t=>r.incomingServer2serverShareEnabled=t),type:"switch"},{default:i(()=>[u(l(a(e)("federatedfilesharing","Allow people on this server to receive shares from other servers")),1)]),_:1},8,["modelValue"]),r.federatedGroupSharingSupported?(c(),g(a(p),{key:0,modelValue:r.outgoingServer2serverGroupShareEnabled,"onUpdate:modelValue":o[2]||(o[2]=t=>r.outgoingServer2serverGroupShareEnabled=t),type:"switch"},{default:i(()=>[u(l(a(e)("federatedfilesharing","Allow people on this server to send shares to groups on other servers")),1)]),_:1},8,["modelValue"])):m("",!0),r.federatedGroupSharingSupported?(c(),g(a(p),{key:1,modelValue:r.incomingServer2serverGroupShareEnabled,"onUpdate:modelValue":o[3]||(o[3]=t=>r.incomingServer2serverGroupShareEnabled=t),type:"switch"},{default:i(()=>[u(l(a(e)("federatedfilesharing","Allow people on this server to receive group shares from other servers")),1)]),_:1},8,["modelValue"])):m("",!0),h("fieldset",null,[h("legend",null,l(a(e)("federatedfilesharing","The lookup server is only available for global scale.")),1),f(a(p),{type:"switch","model-value":r.lookupServerEnabled,disabled:"","onUpdate:modelValue":w},{default:i(()=>[u(l(a(e)("federatedfilesharing","Search global and public address book for people")),1)]),_:1},8,["model-value"]),f(a(p),{type:"switch","model-value":r.lookupServerUploadEnabled,disabled:"","onUpdate:modelValue":_},{default:i(()=>[u(l(a(e)("federatedfilesharing","Allow people to publish their data to a global and public address book")),1)]),_:1},8,["model-value"])]),h("div",j,[h("h3",q,l(a(e)("federatedfilesharing","Trusted federation")),1),f(a(p),{modelValue:r.federatedTrustedShareAutoAccept,"onUpdate:modelValue":o[4]||(o[4]=t=>r.federatedTrustedShareAutoAccept=t),type:"switch"},{default:i(()=>[u(l(a(e)("federatedfilesharing","Automatically accept shares from trusted federated accounts and groups by default")),1)]),_:1},8,["modelValue"])])]),_:1},8,["name","description","doc-url"]))}}),W=V(F,[["__scopeId","data-v-5ef41235"]]),N=s("federatedfilesharing","internalOnly",!1);N||T(W).mount("#vue-admin-federated"); +import{l as s,a as V}from"./index-DCpg1aui.chunk.mjs";import{b as U,J as G,c as g,o as c,w as i,e as f,l as m,k as h,u as a,g as u,t as l,h as T}from"./runtime-dom.esm-bundler-DdtEg5E9.chunk.mjs";import{c as x}from"./index-DVH_Kr3Q.chunk.mjs";import{a as v,f as b}from"./index-JpgrUA2Z-BXxDc_if.chunk.mjs";import{t as e}from"./string_decoder-vT-u9WbV.chunk.mjs";import{c as C}from"./index-CEFiUoek.chunk.mjs";import{a as D}from"./createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs";import{N as p}from"./NcCheckboxRadioSwitch-BCSKF7Tk-B1Kcz6gU.chunk.mjs";import{N as I}from"./ContentCopy-s5fS3y5J.chunk.mjs";import{l as S}from"./logger-Z3HfytLa.chunk.mjs";import"./modulepreload-polyfill-BxzAKjcf.chunk.mjs";import"./index-Bndk0DrU.chunk.mjs";import"./public-uQ6dl0vH.chunk.mjs";import"./NcModal-MC_HktJd-DqeuH-fk.chunk.mjs";import"./AccountOutline-BlW-6JqD.chunk.mjs";import"./Web-aYJacExm.chunk.mjs";import"./mdi-BpC5Cj53.chunk.mjs";import"./NcPasswordField-djttkA5Q-Dz7uhHFj.chunk.mjs";import"./NcInputField-Bwsh2aHY-Cz27INBW.chunk.mjs";const j={class:"settings-subsection"},q={class:"settings-subsection__name"},F=U({__name:"AdminSettings",setup(R){const E=s("federatedfilesharing","sharingFederatedDocUrl"),y=new Proxy({outgoingServer2serverShareEnabled:[s("federatedfilesharing","outgoingServer2serverShareEnabled"),"outgoing_server2server_share_enabled"],incomingServer2serverShareEnabled:[s("federatedfilesharing","incomingServer2serverShareEnabled"),"incoming_server2server_share_enabled"],outgoingServer2serverGroupShareEnabled:[s("federatedfilesharing","outgoingServer2serverGroupShareEnabled"),"outgoing_server2server_group_share_enabled"],incomingServer2serverGroupShareEnabled:[s("federatedfilesharing","incomingServer2serverGroupShareEnabled"),"incoming_server2server_group_share_enabled"],federatedGroupSharingSupported:[s("federatedfilesharing","federatedGroupSharingSupported"),"federated_group_sharing_supported"],federatedTrustedShareAutoAccept:[s("federatedfilesharing","federatedTrustedShareAutoAccept"),"federatedTrustedShareAutoAccept"],lookupServerEnabled:[s("federatedfilesharing","lookupServerEnabled"),"lookupServerEnabled"],lookupServerUploadEnabled:[s("federatedfilesharing","lookupServerUploadEnabled"),"lookupServerUploadEnabled"]},{get(d,o){return d[o]?.[0]},set(d,o,t){return o in d?(d[o][0]=t,k(d[o][1],t),!0):!1}}),r=G(y);async function _(d){if(d===!1)return r.lookupServerUploadEnabled=!1;await b({name:e("federatedfilesharing","Confirm data upload to lookup server"),text:e("federatedfilesharing",'When enabled, all account properties (e.g. email address) with scope visibility set to "published", will be automatically synced and transmitted to an external system and made available in a public, global address book.'),labelConfirm:e("federatedfilesharing","Enable data upload"),labelReject:e("federatedfilesharing","Disable upload"),severity:"warning"}).then(()=>{r.lookupServerUploadEnabled=!0}).catch(()=>{r.lookupServerUploadEnabled=!1})}async function w(d){if(d===!1)return r.lookupServerEnabled=!1;await b({name:e("federatedfilesharing","Confirm querying lookup server"),text:e("federatedfilesharing","When enabled, the search input when creating shares will be sent to an external system that provides a public and global address book.")+e("federatedfilesharing","This is used to retrieve the federated cloud ID to make federated sharing easier.")+e("federatedfilesharing","Moreover, email addresses of users might be sent to that system in order to verify them."),labelConfirm:e("federatedfilesharing","Enable querying"),labelReject:e("federatedfilesharing","Disable querying"),severity:"warning"}).then(()=>{r.lookupServerEnabled=!0}).catch(()=>{r.lookupServerEnabled=!1})}async function k(d,o){await C();const t=D("/apps/provisioning_api/api/v1/config/apps/{appId}/{key}",{appId:"files_sharing",key:d}),A=o?"yes":"no";try{const{data:n}=await x.post(t,{value:A});if(n.ocs.meta.status!=="ok")if(n.ocs.meta.message)v(n.ocs.meta.message),S.error("Error updating federated files sharing config",{error:n.ocs});else throw new Error(`Failed to update federatedfilesharing config, ${n.ocs.meta.statuscode}`)}catch(n){S.error("Error updating federated files sharing config",{error:n}),v(e("federatedfilesharing","Unable to update federated files sharing config"))}}return(d,o)=>(c(),g(a(I),{name:a(e)("federatedfilesharing","Federated Cloud Sharing"),description:a(e)("federatedfilesharing","Adjust how people can share between servers. This includes shares between people on this server as well if they are using federated sharing."),"doc-url":a(E)},{default:i(()=>[f(a(p),{modelValue:r.outgoingServer2serverShareEnabled,"onUpdate:modelValue":o[0]||(o[0]=t=>r.outgoingServer2serverShareEnabled=t),type:"switch"},{default:i(()=>[u(l(a(e)("federatedfilesharing","Allow people on this server to send shares to other servers (this option also allows WebDAV access to public shares)")),1)]),_:1},8,["modelValue"]),f(a(p),{modelValue:r.incomingServer2serverShareEnabled,"onUpdate:modelValue":o[1]||(o[1]=t=>r.incomingServer2serverShareEnabled=t),type:"switch"},{default:i(()=>[u(l(a(e)("federatedfilesharing","Allow people on this server to receive shares from other servers")),1)]),_:1},8,["modelValue"]),r.federatedGroupSharingSupported?(c(),g(a(p),{key:0,modelValue:r.outgoingServer2serverGroupShareEnabled,"onUpdate:modelValue":o[2]||(o[2]=t=>r.outgoingServer2serverGroupShareEnabled=t),type:"switch"},{default:i(()=>[u(l(a(e)("federatedfilesharing","Allow people on this server to send shares to groups on other servers")),1)]),_:1},8,["modelValue"])):m("",!0),r.federatedGroupSharingSupported?(c(),g(a(p),{key:1,modelValue:r.incomingServer2serverGroupShareEnabled,"onUpdate:modelValue":o[3]||(o[3]=t=>r.incomingServer2serverGroupShareEnabled=t),type:"switch"},{default:i(()=>[u(l(a(e)("federatedfilesharing","Allow people on this server to receive group shares from other servers")),1)]),_:1},8,["modelValue"])):m("",!0),h("fieldset",null,[h("legend",null,l(a(e)("federatedfilesharing","The lookup server is only available for global scale.")),1),f(a(p),{type:"switch","model-value":r.lookupServerEnabled,disabled:"","onUpdate:modelValue":w},{default:i(()=>[u(l(a(e)("federatedfilesharing","Search global and public address book for people")),1)]),_:1},8,["model-value"]),f(a(p),{type:"switch","model-value":r.lookupServerUploadEnabled,disabled:"","onUpdate:modelValue":_},{default:i(()=>[u(l(a(e)("federatedfilesharing","Allow people to publish their data to a global and public address book")),1)]),_:1},8,["model-value"])]),h("div",j,[h("h3",q,l(a(e)("federatedfilesharing","Trusted federation")),1),f(a(p),{modelValue:r.federatedTrustedShareAutoAccept,"onUpdate:modelValue":o[4]||(o[4]=t=>r.federatedTrustedShareAutoAccept=t),type:"switch"},{default:i(()=>[u(l(a(e)("federatedfilesharing","Automatically accept shares from trusted federated accounts and groups by default")),1)]),_:1},8,["modelValue"])])]),_:1},8,["name","description","doc-url"]))}}),W=V(F,[["__scopeId","data-v-5ef41235"]]),N=s("federatedfilesharing","internalOnly",!1);N||T(W).mount("#vue-admin-federated"); //# sourceMappingURL=federatedfilesharing-settings-admin.mjs.map diff --git a/dist/federatedfilesharing-settings-admin.mjs.map b/dist/federatedfilesharing-settings-admin.mjs.map index cb66292c9cf44..0565c6d6ce52f 100644 --- a/dist/federatedfilesharing-settings-admin.mjs.map +++ b/dist/federatedfilesharing-settings-admin.mjs.map @@ -1 +1 @@ -{"version":3,"file":"federatedfilesharing-settings-admin.mjs","sources":["../build/frontend/apps/federatedfilesharing/src/components/AdminSettings.vue","../build/frontend/apps/federatedfilesharing/src/settings-admin.ts"],"sourcesContent":["\n\n\n\n\n\n\n","/*!\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { loadState } from '@nextcloud/initial-state'\nimport { createApp } from 'vue'\nimport AdminSettings from './components/AdminSettings.vue'\n\nimport 'vite/modulepreload-polyfill'\n\nconst internalOnly = loadState('federatedfilesharing', 'internalOnly', false)\n\nif (!internalOnly) {\n\tconst app = createApp(AdminSettings)\n\tapp.mount('#vue-admin-federated')\n}\n"],"names":["sharingFederatedDocUrl","loadState","internalState","target","prop","value","updateAppConfig","state","reactive","showLookupServerUploadConfirmation","showConfirmation","t","showLookupServerConfirmation","key","confirmPassword","url","generateOcsUrl","stringValue","data","axios","showError","logger","error","_createBlock","_unref","NcSettingsSection","_createVNode","NcCheckboxRadioSwitch","_cache","$event","_createElementVNode","_hoisted_1","_hoisted_2","_toDisplayString","internalOnly","createApp","AdminSettings"],"mappings":"6jCAmBA,MAAMA,EAAyBC,EAAkB,uBAAwB,wBAAwB,EAE3FC,EAAgB,IAAI,MAAM,CAC/B,kCAAmC,CAClCD,EAAmB,uBAAwB,mCAAmC,EAC9E,sCAAA,EAED,kCAAmC,CAClCA,EAAmB,uBAAwB,mCAAmC,EAC9E,sCAAA,EAED,uCAAwC,CACvCA,EAAmB,uBAAwB,wCAAwC,EACnF,4CAAA,EAED,uCAAwC,CACvCA,EAAmB,uBAAwB,wCAAwC,EACnF,4CAAA,EAED,+BAAgC,CAC/BA,EAAmB,uBAAwB,gCAAgC,EAC3E,mCAAA,EAED,gCAAiC,CAChCA,EAAmB,uBAAwB,iCAAiC,EAC5E,iCAAA,EAED,oBAAqB,CACpBA,EAAmB,uBAAwB,qBAAqB,EAChE,qBAAA,EAED,0BAA2B,CAC1BA,EAAmB,uBAAwB,2BAA2B,EACtE,2BAAA,CACD,EACE,CACF,IAAIE,EAAQC,EAAM,CACjB,OAAOD,EAAOC,CAAI,IAAI,CAAC,CACxB,EACA,IAAID,EAAQC,EAAMC,EAAO,CACxB,OAAID,KAAQD,GACXA,EAAOC,CAAI,EAAE,CAAC,EAAIC,EAClBC,EAAgBH,EAAOC,CAAI,EAAE,CAAC,EAAGC,CAAK,EAC/B,IAED,EACR,CAAA,CACA,EAEKE,EAAQC,EAAkCN,CAAsB,EAOtE,eAAeO,EAAmCJ,EAAgB,CAEjE,GAAIA,IAAU,GACb,OAAOE,EAAM,0BAA4B,GAG1C,MAAMG,EAAiB,CACtB,KAAMC,EAAE,uBAAwB,sCAAsC,EACtE,KAAMA,EAAE,uBAAwB,6NAA6N,EAC7P,aAAcA,EAAE,uBAAwB,oBAAoB,EAC5D,YAAaA,EAAE,uBAAwB,gBAAgB,EACvD,SAAU,SAAA,CACV,EAAE,KAAK,IAAM,CACbJ,EAAM,0BAA4B,EACnC,CAAC,EAAE,MAAM,IAAM,CACdA,EAAM,0BAA4B,EACnC,CAAC,CACF,CAOA,eAAeK,EAA6BP,EAAgB,CAE3D,GAAIA,IAAU,GACb,OAAOE,EAAM,oBAAsB,GAGpC,MAAMG,EAAiB,CACtB,KAAMC,EAAE,uBAAwB,gCAAgC,EAChE,KAAMA,EAAE,uBAAwB,wIAAwI,EACrKA,EAAE,uBAAwB,mFAAmF,EAC7GA,EAAE,uBAAwB,0FAA0F,EACvH,aAAcA,EAAE,uBAAwB,iBAAiB,EACzD,YAAaA,EAAE,uBAAwB,kBAAkB,EACzD,SAAU,SAAA,CACV,EAAE,KAAK,IAAM,CACbJ,EAAM,oBAAsB,EAC7B,CAAC,EAAE,MAAM,IAAM,CACdA,EAAM,oBAAsB,EAC7B,CAAC,CACF,CAQA,eAAeD,EAAgBO,EAAaR,EAAgB,CAC3D,MAAMS,EAAA,EAEN,MAAMC,EAAMC,EAAe,0DAA2D,CACrF,MAAO,gBACP,IAAAH,CAAA,CACA,EAEKI,EAAcZ,EAAQ,MAAQ,KACpC,GAAI,CACH,KAAM,CAAE,KAAAa,CAAA,EAAS,MAAMC,EAAM,KAAkBJ,EAAK,CACnD,MAAOE,CAAA,CACP,EACD,GAAIC,EAAK,IAAI,KAAK,SAAW,KAC5B,GAAIA,EAAK,IAAI,KAAK,QACjBE,EAAUF,EAAK,IAAI,KAAK,OAAO,EAC/BG,EAAO,MAAM,gDAAiD,CAAE,MAAOH,EAAK,IAAK,MAEjF,OAAM,IAAI,MAAM,iDAAiDA,EAAK,IAAI,KAAK,UAAU,EAAE,CAG9F,OAASI,EAAO,CACfD,EAAO,MAAM,gDAAiD,CAAE,MAAAC,CAAA,CAAO,EACvEF,EAAUT,EAAE,uBAAwB,iDAAiD,CAAC,CACvF,CACD,mBAICY,EA6DoBC,EAAAC,CAAA,EAAA,CA5DlB,KAAMD,EAAAb,CAAA,EAAC,uBAAA,yBAAA,EACP,YAAaa,EAAAb,CAAA,EAAC,uBAAA,8IAAA,EACd,UAASa,EAAAxB,CAAA,CAAA,aACV,IAIwB,CAJxB0B,EAIwBF,EAAAG,CAAA,EAAA,CAHd,WAAApB,EAAM,kCAAN,sBAAAqB,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAAtB,EAAM,kCAAiCsB,GAChD,KAAK,QAAA,aACL,IAAuJ,KAApJL,EAAAb,CAAA,EAAC,uBAAA,sHAAA,CAAA,EAAA,CAAA,CAAA,0BAGLe,EAIwBF,EAAAG,CAAA,EAAA,CAHd,WAAApB,EAAM,kCAAN,sBAAAqB,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAAtB,EAAM,kCAAiCsB,GAChD,KAAK,QAAA,aACL,IAAmG,KAAhGL,EAAAb,CAAA,EAAC,uBAAA,kEAAA,CAAA,EAAA,CAAA,CAAA,0BAIEJ,EAAM,oCADbgB,EAKwBC,EAAAG,CAAA,EAAA,OAHd,WAAApB,EAAM,uCAAN,sBAAAqB,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAAtB,EAAM,uCAAsCsB,GACrD,KAAK,QAAA,aACL,IAAwG,KAArGL,EAAAb,CAAA,EAAC,uBAAA,uEAAA,CAAA,EAAA,CAAA,CAAA,oCAIEJ,EAAM,oCADbgB,EAKwBC,EAAAG,CAAA,EAAA,OAHd,WAAApB,EAAM,uCAAN,sBAAAqB,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAAtB,EAAM,uCAAsCsB,GACrD,KAAK,QAAA,aACL,IAAyG,KAAtGL,EAAAb,CAAA,EAAC,uBAAA,wEAAA,CAAA,EAAA,CAAA,CAAA,oCAGLmB,EAkBW,WAAA,KAAA,CAjBVA,EAAyG,gBAA9FN,EAAAb,CAAA,EAAC,uBAAA,uDAAA,CAAA,EAAA,CAAA,EAEZe,EAMwBF,EAAAG,CAAA,EAAA,CALvB,KAAK,SACJ,cAAapB,EAAM,oBACpB,SAAA,GACC,sBAAoBK,CAAA,aACrB,IAAmF,KAAhFY,EAAAb,CAAA,EAAC,uBAAA,kDAAA,CAAA,EAAA,CAAA,CAAA,2BAGLe,EAMwBF,EAAAG,CAAA,EAAA,CALvB,KAAK,SACJ,cAAapB,EAAM,0BACpB,SAAA,GACC,sBAAoBE,CAAA,aACrB,IAAyG,KAAtGe,EAAAb,CAAA,EAAC,uBAAA,wEAAA,CAAA,EAAA,CAAA,CAAA,6BAKNmB,EASM,MATNC,EASM,CARLD,EAEK,KAFLE,EAEKC,EADDT,EAAAb,CAAA,EAAC,uBAAA,oBAAA,CAAA,EAAA,CAAA,EAELe,EAIwBF,EAAAG,CAAA,EAAA,CAHd,WAAApB,EAAM,gCAAN,sBAAAqB,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAAtB,EAAM,gCAA+BsB,GAC9C,KAAK,QAAA,aACL,IAAoH,KAAjHL,EAAAb,CAAA,EAAC,uBAAA,mFAAA,CAAA,EAAA,CAAA,CAAA,oHC1MFuB,EAAejC,EAAU,uBAAwB,eAAgB,EAAK,EAEvEiC,GACQC,EAAUC,CAAa,EAC/B,MAAM,sBAAsB"} \ No newline at end of file +{"version":3,"file":"federatedfilesharing-settings-admin.mjs","sources":["../build/frontend/apps/federatedfilesharing/src/components/AdminSettings.vue","../build/frontend/apps/federatedfilesharing/src/settings-admin.ts"],"sourcesContent":["\n\n\n\n\n\n\n","/*!\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { loadState } from '@nextcloud/initial-state'\nimport { createApp } from 'vue'\nimport AdminSettings from './components/AdminSettings.vue'\n\nimport 'vite/modulepreload-polyfill'\n\nconst internalOnly = loadState('federatedfilesharing', 'internalOnly', false)\n\nif (!internalOnly) {\n\tconst app = createApp(AdminSettings)\n\tapp.mount('#vue-admin-federated')\n}\n"],"names":["sharingFederatedDocUrl","loadState","internalState","target","prop","value","updateAppConfig","state","reactive","showLookupServerUploadConfirmation","showConfirmation","t","showLookupServerConfirmation","key","confirmPassword","url","generateOcsUrl","stringValue","data","axios","showError","logger","error","_createBlock","_unref","NcSettingsSection","_createVNode","NcCheckboxRadioSwitch","_cache","$event","_createElementVNode","_hoisted_1","_hoisted_2","_toDisplayString","internalOnly","createApp","AdminSettings"],"mappings":"ynCAmBA,MAAMA,EAAyBC,EAAkB,uBAAwB,wBAAwB,EAE3FC,EAAgB,IAAI,MAAM,CAC/B,kCAAmC,CAClCD,EAAmB,uBAAwB,mCAAmC,EAC9E,sCAAA,EAED,kCAAmC,CAClCA,EAAmB,uBAAwB,mCAAmC,EAC9E,sCAAA,EAED,uCAAwC,CACvCA,EAAmB,uBAAwB,wCAAwC,EACnF,4CAAA,EAED,uCAAwC,CACvCA,EAAmB,uBAAwB,wCAAwC,EACnF,4CAAA,EAED,+BAAgC,CAC/BA,EAAmB,uBAAwB,gCAAgC,EAC3E,mCAAA,EAED,gCAAiC,CAChCA,EAAmB,uBAAwB,iCAAiC,EAC5E,iCAAA,EAED,oBAAqB,CACpBA,EAAmB,uBAAwB,qBAAqB,EAChE,qBAAA,EAED,0BAA2B,CAC1BA,EAAmB,uBAAwB,2BAA2B,EACtE,2BAAA,CACD,EACE,CACF,IAAIE,EAAQC,EAAM,CACjB,OAAOD,EAAOC,CAAI,IAAI,CAAC,CACxB,EACA,IAAID,EAAQC,EAAMC,EAAO,CACxB,OAAID,KAAQD,GACXA,EAAOC,CAAI,EAAE,CAAC,EAAIC,EAClBC,EAAgBH,EAAOC,CAAI,EAAE,CAAC,EAAGC,CAAK,EAC/B,IAED,EACR,CAAA,CACA,EAEKE,EAAQC,EAAkCN,CAAsB,EAOtE,eAAeO,EAAmCJ,EAAgB,CAEjE,GAAIA,IAAU,GACb,OAAOE,EAAM,0BAA4B,GAG1C,MAAMG,EAAiB,CACtB,KAAMC,EAAE,uBAAwB,sCAAsC,EACtE,KAAMA,EAAE,uBAAwB,6NAA6N,EAC7P,aAAcA,EAAE,uBAAwB,oBAAoB,EAC5D,YAAaA,EAAE,uBAAwB,gBAAgB,EACvD,SAAU,SAAA,CACV,EAAE,KAAK,IAAM,CACbJ,EAAM,0BAA4B,EACnC,CAAC,EAAE,MAAM,IAAM,CACdA,EAAM,0BAA4B,EACnC,CAAC,CACF,CAOA,eAAeK,EAA6BP,EAAgB,CAE3D,GAAIA,IAAU,GACb,OAAOE,EAAM,oBAAsB,GAGpC,MAAMG,EAAiB,CACtB,KAAMC,EAAE,uBAAwB,gCAAgC,EAChE,KAAMA,EAAE,uBAAwB,wIAAwI,EACrKA,EAAE,uBAAwB,mFAAmF,EAC7GA,EAAE,uBAAwB,0FAA0F,EACvH,aAAcA,EAAE,uBAAwB,iBAAiB,EACzD,YAAaA,EAAE,uBAAwB,kBAAkB,EACzD,SAAU,SAAA,CACV,EAAE,KAAK,IAAM,CACbJ,EAAM,oBAAsB,EAC7B,CAAC,EAAE,MAAM,IAAM,CACdA,EAAM,oBAAsB,EAC7B,CAAC,CACF,CAQA,eAAeD,EAAgBO,EAAaR,EAAgB,CAC3D,MAAMS,EAAA,EAEN,MAAMC,EAAMC,EAAe,0DAA2D,CACrF,MAAO,gBACP,IAAAH,CAAA,CACA,EAEKI,EAAcZ,EAAQ,MAAQ,KACpC,GAAI,CACH,KAAM,CAAE,KAAAa,CAAA,EAAS,MAAMC,EAAM,KAAkBJ,EAAK,CACnD,MAAOE,CAAA,CACP,EACD,GAAIC,EAAK,IAAI,KAAK,SAAW,KAC5B,GAAIA,EAAK,IAAI,KAAK,QACjBE,EAAUF,EAAK,IAAI,KAAK,OAAO,EAC/BG,EAAO,MAAM,gDAAiD,CAAE,MAAOH,EAAK,IAAK,MAEjF,OAAM,IAAI,MAAM,iDAAiDA,EAAK,IAAI,KAAK,UAAU,EAAE,CAG9F,OAASI,EAAO,CACfD,EAAO,MAAM,gDAAiD,CAAE,MAAAC,CAAA,CAAO,EACvEF,EAAUT,EAAE,uBAAwB,iDAAiD,CAAC,CACvF,CACD,mBAICY,EA6DoBC,EAAAC,CAAA,EAAA,CA5DlB,KAAMD,EAAAb,CAAA,EAAC,uBAAA,yBAAA,EACP,YAAaa,EAAAb,CAAA,EAAC,uBAAA,8IAAA,EACd,UAASa,EAAAxB,CAAA,CAAA,aACV,IAIwB,CAJxB0B,EAIwBF,EAAAG,CAAA,EAAA,CAHd,WAAApB,EAAM,kCAAN,sBAAAqB,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAAtB,EAAM,kCAAiCsB,GAChD,KAAK,QAAA,aACL,IAAuJ,KAApJL,EAAAb,CAAA,EAAC,uBAAA,sHAAA,CAAA,EAAA,CAAA,CAAA,0BAGLe,EAIwBF,EAAAG,CAAA,EAAA,CAHd,WAAApB,EAAM,kCAAN,sBAAAqB,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAAtB,EAAM,kCAAiCsB,GAChD,KAAK,QAAA,aACL,IAAmG,KAAhGL,EAAAb,CAAA,EAAC,uBAAA,kEAAA,CAAA,EAAA,CAAA,CAAA,0BAIEJ,EAAM,oCADbgB,EAKwBC,EAAAG,CAAA,EAAA,OAHd,WAAApB,EAAM,uCAAN,sBAAAqB,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAAtB,EAAM,uCAAsCsB,GACrD,KAAK,QAAA,aACL,IAAwG,KAArGL,EAAAb,CAAA,EAAC,uBAAA,uEAAA,CAAA,EAAA,CAAA,CAAA,oCAIEJ,EAAM,oCADbgB,EAKwBC,EAAAG,CAAA,EAAA,OAHd,WAAApB,EAAM,uCAAN,sBAAAqB,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAAtB,EAAM,uCAAsCsB,GACrD,KAAK,QAAA,aACL,IAAyG,KAAtGL,EAAAb,CAAA,EAAC,uBAAA,wEAAA,CAAA,EAAA,CAAA,CAAA,oCAGLmB,EAkBW,WAAA,KAAA,CAjBVA,EAAyG,gBAA9FN,EAAAb,CAAA,EAAC,uBAAA,uDAAA,CAAA,EAAA,CAAA,EAEZe,EAMwBF,EAAAG,CAAA,EAAA,CALvB,KAAK,SACJ,cAAapB,EAAM,oBACpB,SAAA,GACC,sBAAoBK,CAAA,aACrB,IAAmF,KAAhFY,EAAAb,CAAA,EAAC,uBAAA,kDAAA,CAAA,EAAA,CAAA,CAAA,2BAGLe,EAMwBF,EAAAG,CAAA,EAAA,CALvB,KAAK,SACJ,cAAapB,EAAM,0BACpB,SAAA,GACC,sBAAoBE,CAAA,aACrB,IAAyG,KAAtGe,EAAAb,CAAA,EAAC,uBAAA,wEAAA,CAAA,EAAA,CAAA,CAAA,6BAKNmB,EASM,MATNC,EASM,CARLD,EAEK,KAFLE,EAEKC,EADDT,EAAAb,CAAA,EAAC,uBAAA,oBAAA,CAAA,EAAA,CAAA,EAELe,EAIwBF,EAAAG,CAAA,EAAA,CAHd,WAAApB,EAAM,gCAAN,sBAAAqB,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAAtB,EAAM,gCAA+BsB,GAC9C,KAAK,QAAA,aACL,IAAoH,KAAjHL,EAAAb,CAAA,EAAC,uBAAA,mFAAA,CAAA,EAAA,CAAA,CAAA,oHC1MFuB,EAAejC,EAAU,uBAAwB,eAAgB,EAAK,EAEvEiC,GACQC,EAAUC,CAAa,EAC/B,MAAM,sBAAsB"} \ No newline at end of file diff --git a/dist/federatedfilesharing-settings-personal.css b/dist/federatedfilesharing-settings-personal.css index c96fd89b0b3d4..f36f80a3eee8a 100644 --- a/dist/federatedfilesharing-settings-personal.css +++ b/dist/federatedfilesharing-settings-personal.css @@ -1,7 +1,9 @@ /* extracted by css-entry-points-plugin */ @import './federatedfilesharing-federatedfilesharing-settings-personal-BHJOs-_N.chunk.css'; -@import './NcNoteCard-CVhtNL04-DopLwvn9.chunk.css'; -@import './mdi-BYHcrfvW.chunk.css'; -@import './index-JpgrUA2Z-PxDoi4mB.chunk.css'; +@import './AccountOutline-Bx-uhVVO.chunk.css'; +@import './NcModal-MC_HktJd-YC6kxNbR.chunk.css'; +@import './Web-BYHcrfvW.chunk.css'; +@import './mdi-Jq77EThs.chunk.css'; +@import './index-JpgrUA2Z-CX17yN4T.chunk.css'; @import './NcInputField-Bwsh2aHY-_gyGHRGx.chunk.css'; @import './ContentCopy-D7mIRwIy.chunk.css'; \ No newline at end of file diff --git a/dist/federatedfilesharing-settings-personal.mjs b/dist/federatedfilesharing-settings-personal.mjs index 573e04b7bf2c4..55d29c495b486 100644 --- a/dist/federatedfilesharing-settings-personal.mjs +++ b/dist/federatedfilesharing-settings-personal.mjs @@ -1,10 +1,10 @@ -import{j as s,o,k as i,l as I,t as l,z as S,b as j,r as z,x as w,c as _,w as r,e as u,u as e,g as f,F as J,K,h as W}from"./runtime-dom.esm-bundler-BrYCUcZF.chunk.mjs";import{e as H}from"./index-JpgrUA2Z-BFiKKJ1W.chunk.mjs";import{a as M,l as h}from"./index-xFugdZPW.chunk.mjs";import{t as a}from"./translation-DoG5ZELJ-gw0g4US-.chunk.mjs";import{i as x}from"./createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs";import{c as b}from"./NcNoteCard-CVhtNL04-hwuc093N.chunk.mjs";import{N as q}from"./NcInputField-Bwsh2aHY-CHbAfY0u.chunk.mjs";import{I as E,N as G}from"./ContentCopy-DVkZwwZt.chunk.mjs";import"./modulepreload-polyfill-BxzAKjcf.chunk.mjs";import"./index-6_gsQFyp.chunk.mjs";import"./mdi-D55n0uzy.chunk.mjs";const Q={name:"CheckIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},V=["aria-hidden","aria-label"],X=["fill","width","height"],ee={d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"},ae={key:0};function te(d,n,t,k,p,v){return o(),s("span",S(d.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon check-icon",role:"img",onClick:n[0]||(n[0]=m=>d.$emit("click",m))}),[(o(),s("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[i("path",ee,[t.title?(o(),s("title",ae,l(t.title),1)):I("",!0)])],8,X))],16,V)}const ie=M(Q,[["render",te]]),re={name:"WebIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},le=["aria-hidden","aria-label"],oe=["fill","width","height"],ne={d:"M16.36,14C16.44,13.34 16.5,12.68 16.5,12C16.5,11.32 16.44,10.66 16.36,10H19.74C19.9,10.64 20,11.31 20,12C20,12.69 19.9,13.36 19.74,14M14.59,19.56C15.19,18.45 15.65,17.25 15.97,16H18.92C17.96,17.65 16.43,18.93 14.59,19.56M14.34,14H9.66C9.56,13.34 9.5,12.68 9.5,12C9.5,11.32 9.56,10.65 9.66,10H14.34C14.43,10.65 14.5,11.32 14.5,12C14.5,12.68 14.43,13.34 14.34,14M12,19.96C11.17,18.76 10.5,17.43 10.09,16H13.91C13.5,17.43 12.83,18.76 12,19.96M8,8H5.08C6.03,6.34 7.57,5.06 9.4,4.44C8.8,5.55 8.35,6.75 8,8M5.08,16H8C8.35,17.25 8.8,18.45 9.4,19.56C7.57,18.93 6.03,17.65 5.08,16M4.26,14C4.1,13.36 4,12.69 4,12C4,11.31 4.1,10.64 4.26,10H7.64C7.56,10.66 7.5,11.32 7.5,12C7.5,12.68 7.56,13.34 7.64,14M12,4.03C12.83,5.23 13.5,6.57 13.91,8H10.09C10.5,6.57 11.17,5.23 12,4.03M18.92,8H15.97C15.65,6.75 15.19,5.55 14.59,4.44C16.43,5.07 17.96,6.34 18.92,8M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z"},se={key:0};function de(d,n,t,k,p,v){return o(),s("span",S(d.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon web-icon",role:"img",onClick:n[0]||(n[0]=m=>d.$emit("click",m))}),[(o(),s("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[i("path",ne,[t.title?(o(),s("title",se,l(t.title),1)):I("",!0)])],8,oe))],16,le)}const ce=M(re,[["render",de]]),ue={class:"social-button"},fe=["src"],he=["src"],pe=["src"],me={style:{margin:"10px 0"}},ge=["href"],Ce=j({__name:"PersonalSettings",setup(d){const n=window.OC.theme.productName,t=h("federatedfilesharing","color"),k=h("federatedfilesharing","textColor"),p=h("federatedfilesharing","cloudId"),v=h("federatedfilesharing","docUrlFederated"),m=h("federatedfilesharing","logoPath"),g=h("federatedfilesharing","reference"),F=x("core","facebook"),L=x("core","mastodon"),D=x("core","bluesky"),U=a("federatedfilesharing","Share with me through my #Nextcloud Federated Cloud ID, see {url}",{url:g}),R=a("federatedfilesharing","Share with me through my #Nextcloud Federated Cloud ID"),A=`https://mastodon.social/?text=${encodeURIComponent(R)}&url=${encodeURIComponent(g)}`,B=`https://www.facebook.com/sharer/sharer.php?u=${encodeURIComponent(g)}`,T=`https://bsky.app/intent/compose?text=${encodeURIComponent(U)}`,O=new URL(m,location.origin),y=z(!1),C=z(!1),$=w(()=>` +import{j as g,o as i,k as r,l as F,t as l,z as H,b as J,r as N,x as y,c as w,w as t,e as s,u as e,g as d,F as W,I as Z,h as q}from"./runtime-dom.esm-bundler-DdtEg5E9.chunk.mjs";import{e as z}from"./index-JpgrUA2Z-BXxDc_if.chunk.mjs";import{a as L,l as c}from"./index-DCpg1aui.chunk.mjs";import{t as a}from"./string_decoder-vT-u9WbV.chunk.mjs";import{i as C}from"./createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs";import{b as m}from"./AccountOutline-BlW-6JqD.chunk.mjs";import{N as E}from"./NcInputField-Bwsh2aHY-Cz27INBW.chunk.mjs";import{I as G,N as K}from"./ContentCopy-s5fS3y5J.chunk.mjs";import{W as Q}from"./Web-aYJacExm.chunk.mjs";import"./modulepreload-polyfill-BxzAKjcf.chunk.mjs";import"./index-Bndk0DrU.chunk.mjs";import"./NcModal-MC_HktJd-DqeuH-fk.chunk.mjs";import"./mdi-BpC5Cj53.chunk.mjs";const V={name:"CheckIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},X=["aria-hidden","aria-label"],ee=["fill","width","height"],ae={d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"},re={key:0};function te(b,u,o,_,h,x){return i(),g("span",H(b.$attrs,{"aria-hidden":o.title?null:"true","aria-label":o.title,class:"material-design-icon check-icon",role:"img",onClick:u[0]||(u[0]=v=>b.$emit("click",v))}),[(i(),g("svg",{fill:o.fillColor,class:"material-design-icon__svg",width:o.size,height:o.size,viewBox:"0 0 24 24"},[r("path",ae,[o.title?(i(),g("title",re,l(o.title),1)):F("",!0)])],8,ee))],16,X)}const oe=L(V,[["render",te]]),le={class:"social-button"},ie=["src"],ne=["src"],se=["src"],de={style:{margin:"10px 0"}},ce=["href"],ue=J({__name:"PersonalSettings",setup(b){const u=window.OC.theme.productName,o=c("federatedfilesharing","color"),_=c("federatedfilesharing","textColor"),h=c("federatedfilesharing","cloudId"),x=c("federatedfilesharing","docUrlFederated"),v=c("federatedfilesharing","logoPath"),f=c("federatedfilesharing","reference"),S=C("core","facebook"),D=C("core","mastodon"),U=C("core","bluesky"),M=a("federatedfilesharing","Share with me through my #Nextcloud Federated Cloud ID, see {url}",{url:f}),R=a("federatedfilesharing","Share with me through my #Nextcloud Federated Cloud ID"),T=`https://mastodon.social/?text=${encodeURIComponent(R)}&url=${encodeURIComponent(f)}`,B=`https://www.facebook.com/sharer/sharer.php?u=${encodeURIComponent(f)}`,O=`https://bsky.app/intent/compose?text=${encodeURIComponent(M)}`,P=new URL(v,location.origin),k=N(!1),p=N(!1),I=y(()=>` padding:10px; - background-color:${t}; - color:${k}; + background-color:${o}; + color:${_}; border-radius:3px; - padding-inline-start:4px;`),N=`background-image:url(${O});width:50px;height:30px;position:relative;top:8px;background-size:contain;display:inline-block;background-repeat:no-repeat; background-position: center center;`,P=w(()=>` - + padding-inline-start:4px;`),$=`background-image:url(${P});width:50px;height:30px;position:relative;top:8px;background-size:contain;display:inline-block;background-repeat:no-repeat; background-position: center center;`,Y=y(()=>` + ${a("federatedfilesharing","Share with me via Nextcloud")} -`),Y=w(()=>C.value?a("federatedfilesharing","Cloud ID copied"):a("federatedfilesharing","Copy"));async function Z(){try{await navigator.clipboard.writeText(p),H(a("federatedfilesharing","Cloud ID copied"))}catch{window.prompt(a("federatedfilesharing","Clipboard not available. Please copy the cloud ID manually."),p)}C.value=!0,H(a("federatedfilesharing","Copied!")),setTimeout(()=>{C.value=!1},2e3)}return(ve,c)=>(o(),_(e(G),{name:e(a)("federatedfilesharing","Federated Cloud"),description:e(a)("federatedfilesharing","You can share with anyone who uses a {productName} server or other Open Cloud Mesh (OCM) compatible servers and services! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com",{productName:e(n)}),"doc-url":e(v)},{default:r(()=>[u(e(q),{class:"federated-cloud__cloud-id",readonly:"",label:e(a)("federatedfilesharing","Your Federated Cloud ID"),"model-value":e(p),success:C.value,"show-trailing-button":"","trailing-button-label":Y.value,onTrailingButtonClick:Z},{"trailing-button-icon":r(()=>[C.value?(o(),_(ie,{key:0,size:20,"fill-color":"var(--color-border-success)"})):(o(),_(E,{key:1,size:20}))]),_:1},8,["label","model-value","success","trailing-button-label"]),i("p",ue,[f(l(e(a)("federatedfilesharing","Share it so your friends can share files with you:")),1),c[1]||(c[1]=i("br",null,null,-1)),u(e(b),{href:T},{icon:r(()=>[i("img",{class:"social-button__icon",src:e(D)},null,8,fe)]),default:r(()=>[f(l(e(a)("federatedfilesharing","Bluesky"))+" ",1)]),_:1}),u(e(b),{href:B},{icon:r(()=>[i("img",{class:"social-button__icon social-button__icon--bright",src:e(F)},null,8,he)]),default:r(()=>[f(l(e(a)("federatedfilesharing","Facebook"))+" ",1)]),_:1}),u(e(b),{href:A},{icon:r(()=>[i("img",{class:"social-button__icon",src:e(L)},null,8,pe)]),default:r(()=>[f(l(e(a)("federatedfilesharing","Mastodon"))+" ",1)]),_:1}),u(e(b),{class:"social-button__website-button",onClick:c[0]||(c[0]=ye=>y.value=!y.value)},{icon:r(()=>[u(ce,{size:20})]),default:r(()=>[f(" "+l(e(a)("federatedfilesharing","Add to your website")),1)]),_:1})]),y.value?(o(),s(J,{key:0},[i("p",me,[i("a",{target:"_blank",rel:"noreferrer noopener",href:e(g),style:K($.value)},[i("span",{style:N}),f(" "+l(e(a)("federatedfilesharing","Share with me via {productName}",{productName:e(n)})),1)],12,ge)]),i("div",null,[i("p",null,l(e(a)("federatedfilesharing","HTML Code:")),1),c[2]||(c[2]=i("br",null,null,-1)),i("pre",null,[i("code",null,l(P.value),1)])])],64)):I("",!0)]),_:1},8,["name","description","doc-url"]))}}),be=M(Ce,[["__scopeId","data-v-29d7360e"]]),ke=W(be);ke.mount("#vue-personal-federated"); +`),j=y(()=>p.value?a("federatedfilesharing","Cloud ID copied"):a("federatedfilesharing","Copy"));async function A(){try{await navigator.clipboard.writeText(h),z(a("federatedfilesharing","Cloud ID copied"))}catch{window.prompt(a("federatedfilesharing","Clipboard not available. Please copy the cloud ID manually."),h)}p.value=!0,z(a("federatedfilesharing","Copied!")),setTimeout(()=>{p.value=!1},2e3)}return(he,n)=>(i(),w(e(K),{name:e(a)("federatedfilesharing","Federated Cloud"),description:e(a)("federatedfilesharing","You can share with anyone who uses a {productName} server or other Open Cloud Mesh (OCM) compatible servers and services! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com",{productName:e(u)}),"doc-url":e(x)},{default:t(()=>[s(e(E),{class:"federated-cloud__cloud-id",readonly:"",label:e(a)("federatedfilesharing","Your Federated Cloud ID"),"model-value":e(h),success:p.value,"show-trailing-button":"","trailing-button-label":j.value,onTrailingButtonClick:A},{"trailing-button-icon":t(()=>[p.value?(i(),w(oe,{key:0,size:20,"fill-color":"var(--color-border-success)"})):(i(),w(G,{key:1,size:20}))]),_:1},8,["label","model-value","success","trailing-button-label"]),r("p",le,[d(l(e(a)("federatedfilesharing","Share it so your friends can share files with you:")),1),n[1]||(n[1]=r("br",null,null,-1)),s(e(m),{href:O},{icon:t(()=>[r("img",{class:"social-button__icon",src:e(U)},null,8,ie)]),default:t(()=>[d(l(e(a)("federatedfilesharing","Bluesky"))+" ",1)]),_:1}),s(e(m),{href:B},{icon:t(()=>[r("img",{class:"social-button__icon social-button__icon--bright",src:e(S)},null,8,ne)]),default:t(()=>[d(l(e(a)("federatedfilesharing","Facebook"))+" ",1)]),_:1}),s(e(m),{href:T},{icon:t(()=>[r("img",{class:"social-button__icon",src:e(D)},null,8,se)]),default:t(()=>[d(l(e(a)("federatedfilesharing","Mastodon"))+" ",1)]),_:1}),s(e(m),{class:"social-button__website-button",onClick:n[0]||(n[0]=me=>k.value=!k.value)},{icon:t(()=>[s(Q,{size:20})]),default:t(()=>[d(" "+l(e(a)("federatedfilesharing","Add to your website")),1)]),_:1})]),k.value?(i(),g(W,{key:0},[r("p",de,[r("a",{target:"_blank",rel:"noreferrer noopener",href:e(f),style:Z(I.value)},[r("span",{style:$}),d(" "+l(e(a)("federatedfilesharing","Share with me via {productName}",{productName:e(u)})),1)],12,ce)]),r("div",null,[r("p",null,l(e(a)("federatedfilesharing","HTML Code:")),1),n[2]||(n[2]=r("br",null,null,-1)),r("pre",null,[r("code",null,l(Y.value),1)])])],64)):F("",!0)]),_:1},8,["name","description","doc-url"]))}}),fe=L(ue,[["__scopeId","data-v-29d7360e"]]),pe=q(fe);pe.mount("#vue-personal-federated"); //# sourceMappingURL=federatedfilesharing-settings-personal.mjs.map diff --git a/dist/federatedfilesharing-settings-personal.mjs.map b/dist/federatedfilesharing-settings-personal.mjs.map index b4279d1069493..3314834b05d36 100644 --- a/dist/federatedfilesharing-settings-personal.mjs.map +++ b/dist/federatedfilesharing-settings-personal.mjs.map @@ -1 +1 @@ -{"version":3,"file":"federatedfilesharing-settings-personal.mjs","sources":["../node_modules/vue-material-design-icons/Check.vue","../node_modules/vue-material-design-icons/Web.vue","../build/frontend/apps/federatedfilesharing/src/components/PersonalSettings.vue","../build/frontend/apps/federatedfilesharing/src/settings-personal.ts"],"sourcesContent":["\n\n","\n\n","\n\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { createApp } from 'vue'\nimport PersonalSettings from './components/PersonalSettings.vue'\n\nimport 'vite/modulepreload-polyfill'\n\nconst app = createApp(PersonalSettings)\napp.mount('#vue-personal-federated')\n"],"names":["_sfc_main","_hoisted_3","_createElementBlock","_mergeProps","_ctx","$props","_cache","$event","_createElementVNode","_openBlock","productName","color","loadState","textColor","cloudId","docUrlFederated","logoPath","reference","urlFacebookIcon","imagePath","urlMastodonIcon","urlBlueSkyIcon","messageWithURL","t","messageWithoutURL","shareMastodonUrl","shareFacebookUrl","shareBlueSkyUrl","logoPathAbsolute","showHtml","ref","isCopied","backgroundStyle","computed","linkStyle","htmlCode","copyLinkTooltip","copyCloudId","showSuccess","_createBlock","_unref","NcSettingsSection","_createVNode","NcInputField","IconCheck","IconClipboard","_hoisted_1","NcButton","_createTextVNode","_toDisplayString","IconWeb","_Fragment","_hoisted_5","app","createApp","PersonalSettings"],"mappings":"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","x_google_ignoreList":[0,1]} \ No newline at end of file +{"version":3,"file":"federatedfilesharing-settings-personal.mjs","sources":["../node_modules/vue-material-design-icons/Check.vue","../build/frontend/apps/federatedfilesharing/src/components/PersonalSettings.vue","../build/frontend/apps/federatedfilesharing/src/settings-personal.ts"],"sourcesContent":["\n\n","\n\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { createApp } from 'vue'\nimport PersonalSettings from './components/PersonalSettings.vue'\n\nimport 'vite/modulepreload-polyfill'\n\nconst app = createApp(PersonalSettings)\napp.mount('#vue-personal-federated')\n"],"names":["_sfc_main","_hoisted_3","_createElementBlock","_mergeProps","_ctx","$props","_cache","$event","_createElementVNode","_openBlock","productName","color","loadState","textColor","cloudId","docUrlFederated","logoPath","reference","urlFacebookIcon","imagePath","urlMastodonIcon","urlBlueSkyIcon","messageWithURL","t","messageWithoutURL","shareMastodonUrl","shareFacebookUrl","shareBlueSkyUrl","logoPathAbsolute","showHtml","ref","isCopied","backgroundStyle","computed","linkStyle","htmlCode","copyLinkTooltip","copyCloudId","showSuccess","_createBlock","_unref","NcSettingsSection","_createVNode","NcInputField","IconCheck","IconClipboard","_hoisted_1","NcButton","_createTextVNode","_toDisplayString","IconWeb","_Fragment","_hoisted_5","app","createApp","PersonalSettings"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/dist/federation-settings-admin.css b/dist/federation-settings-admin.css index 1290f6d350d52..2ebd5ccbd5902 100644 --- a/dist/federation-settings-admin.css +++ b/dist/federation-settings-admin.css @@ -1,7 +1,9 @@ /* extracted by css-entry-points-plugin */ @import './federation-federation-settings-admin-BS5o4xuy.chunk.css'; -@import './NcNoteCard-CVhtNL04-DopLwvn9.chunk.css'; +@import './AccountOutline-Bx-uhVVO.chunk.css'; +@import './mdi-Jq77EThs.chunk.css'; @import './ContentCopy-D7mIRwIy.chunk.css'; -@import './mdi-BYHcrfvW.chunk.css'; -@import './index-JpgrUA2Z-PxDoi4mB.chunk.css'; +@import './NcModal-MC_HktJd-YC6kxNbR.chunk.css'; +@import './Web-BYHcrfvW.chunk.css'; +@import './index-JpgrUA2Z-CX17yN4T.chunk.css'; @import './NcInputField-Bwsh2aHY-_gyGHRGx.chunk.css'; \ No newline at end of file diff --git a/dist/federation-settings-admin.mjs b/dist/federation-settings-admin.mjs index 6da5f8829b2d4..1c7d966c791bb 100644 --- a/dist/federation-settings-admin.mjs +++ b/dist/federation-settings-admin.mjs @@ -1,2 +1,2 @@ -import{b as g,v as D,r as w,j as U,o as l,k as T,t as F,u as t,n as u,e as c,w as h,H as L,J as k,x as p,c as S,l as O,T as P,F as R,C as K,h as V}from"./runtime-dom.esm-bundler-BrYCUcZF.chunk.mjs";import{a as E,l as q}from"./index-xFugdZPW.chunk.mjs";import{t as r}from"./translation-DoG5ZELJ-gw0g4US-.chunk.mjs";import{a as y,c as b,N as z}from"./NcNoteCard-CVhtNL04-hwuc093N.chunk.mjs";import{N as G}from"./ContentCopy-DVkZwwZt.chunk.mjs";import{e as B,a as M,b as j,d as H,N as J,f as W}from"./mdi-D55n0uzy.chunk.mjs";import{e as Q,a as A}from"./index-JpgrUA2Z-BFiKKJ1W.chunk.mjs";import{_ as X}from"./TrashCanOutline-CvWRJ8GE.chunk.mjs";import{c as $,i as Y}from"./index-BfylblLb.chunk.mjs";import{a as N}from"./createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs";import{g as Z}from"./index-6_gsQFyp.chunk.mjs";import"./NcInputField-Bwsh2aHY-CHbAfY0u.chunk.mjs";import"./string_decoder-BO00msnV.chunk.mjs";const d=Object.freeze({STATUS_OK:1,STATUS_PENDING:2,STATUS_FAILURE:3,STATUS_ACCESS_REVOKED:4});class I extends Error{}async function ee(a){try{const{data:i}=await $.post(N("apps/federation/trusted-servers"),{url:a}),s=i.ocs.data;return{id:s.id,url:s.url,status:d.STATUS_PENDING}}catch(i){throw x(i)}}async function te(a){try{await $.delete(N(`apps/federation/trusted-servers/${a}`))}catch(i){throw x(i)}}function x(a){return Y(a)&&a.response?.data?.ocs?new I(a.response.data.ocs.meta.message,{cause:a}):a}const C=Z().setApp("federation").build(),re=g({__name:"AddTrustedServerForm",emits:["add"],setup(a,{emit:i}){const s=i,v=D("form"),n=w("");async function m(){try{const e=await ee(n.value);n.value="",s("add",e),k(()=>v.value?.reset()),Q(r("federation","Added to the list of trusted servers"))}catch(e){C.error("Failed to add trusted server",{error:e}),e instanceof I?A(e.message):A(r("federation","Could not add trusted server. Please try again later."))}}return(e,o)=>(l(),U("form",{ref:"form",onSubmit:L(m,["prevent"])},[T("h3",{class:u(e.$style.addTrustedServerForm__heading)},F(t(r)("federation","Add trusted server")),3),T("div",{class:u(e.$style.addTrustedServerForm__wrapper)},[c(t(X),{modelValue:n.value,"onUpdate:modelValue":o[0]||(o[0]=_=>n.value=_),label:t(r)("federation","Server url"),placeholder:"https://…",required:"",type:"url"},null,8,["modelValue","label"]),c(t(b),{class:u(e.$style.addTrustedServerForm__submitButton),"aria-label":t(r)("federation","Add"),title:t(r)("federation","Add"),type:"submit",variant:"primary"},{icon:h(()=>[c(t(y),{path:t(B)},null,8,["path"])]),_:1},8,["class","aria-label","title"])],2)],544))}}),se="_addTrustedServerForm__heading_14ngv_2",ae="_addTrustedServerForm__wrapper_14ngv_7",ie="_addTrustedServerForm__submitButton_14ngv_14",ne={addTrustedServerForm__heading:se,addTrustedServerForm__wrapper:ae,addTrustedServerForm__submitButton:ie},de={$style:ne},oe=E(re,[["__cssModules",de]]),le=["textContent"],ue=g({__name:"TrustedServer",props:{server:{}},emits:["delete"],setup(a,{emit:i}){const s=a,v=i,n=w(!1),m=p(()=>s.server.status===d.STATUS_FAILURE),e=p(()=>{switch(s.server.status){case d.STATUS_OK:return H;case d.STATUS_PENDING:case d.STATUS_ACCESS_REVOKED:return j;case d.STATUS_FAILURE:default:return M}}),o=p(()=>{switch(s.server.status){case d.STATUS_OK:return[r("federation","Server ok"),r("federation","User list was exchanged at least once successfully with the remote server.")];case d.STATUS_PENDING:return[r("federation","Server pending"),r("federation","Waiting for shared secret or initial user list exchange.")];case d.STATUS_ACCESS_REVOKED:return[r("federation","Server access revoked"),r("federation","Server access revoked")];case d.STATUS_FAILURE:default:return[r("federation","Server failure"),r("federation","Connection to the remote server failed or the remote server is misconfigured.")]}});async function _(){try{n.value=!0,await te(s.server.id),v("delete",s.server)}catch(f){n.value=!1,C.error("Failed to delete trusted server",{error:f}),A(r("federation","Failed to delete trusted server. Please try again later."))}}return(f,Fe)=>(l(),U("li",{class:u(f.$style.trustedServer)},[c(t(y),{class:u({[f.$style.trustedServer__icon_error]:m.value}),path:e.value,name:o.value[0],title:o.value[1]},null,8,["class","path","name","title"]),T("code",{class:u(f.$style.trustedServer__url),textContent:F(a.server.url)},null,10,le),c(t(b),{"aria-label":t(r)("federation","Delete"),title:t(r)("federation","Delete"),disabled:n.value,onClick:_},{icon:h(()=>[n.value?(l(),S(t(J),{key:0})):(l(),S(t(y),{key:1,path:t(W)},null,8,["path"]))]),_:1},8,["aria-label","title","disabled"])],2))}}),ce="_trustedServer_1wqey_2",_e="_trustedServer__icon_error_1wqey_15",ve="_trustedServer__url_1wqey_19",me={trustedServer:ce,trustedServer__icon_error:_e,trustedServer__url:ve},fe={$style:me},Se=E(ue,[["__cssModules",fe]]),pe=g({__name:"AdminSettings",setup(a){const i=q("federation","adminSettings"),s=w(i.trustedServers),v=p(()=>s.value.some(e=>e.status===d.STATUS_PENDING));async function n(e){s.value.unshift(e)}function m(e){s.value=s.value.filter(o=>o.id!==e.id)}return(e,o)=>(l(),S(t(G),{name:t(r)("federation","Trusted servers"),"doc-url":t(i).docUrl,description:t(r)("federation","Federation allows you to connect with other trusted servers to exchange the account directory. For example this will be used to auto-complete external accounts for federated sharing. It is not necessary to add a server as trusted server in order to create a federated share.")},{default:h(()=>[v.value?(l(),S(t(z),{key:0,type:"info",text:t(r)("federation","Each server must validate the other. This process may require a few cron cycles.")},null,8,["text"])):O("",!0),c(P,{class:u(e.$style.federationAdminSettings__trustedServersList),"aria-label":t(r)("federation","Trusted servers"),tag:"ul","enter-from-class":e.$style.transition_hidden,"enter-active-class":e.$style.transition_active,"leave-active-class":e.$style.transition_active,"leave-to-class":e.$style.transition_hidden},{default:h(()=>[(l(!0),U(R,null,K(s.value,_=>(l(),S(Se,{key:_.id,class:u(e.$style.federationAdminSettings__trustedServersListItem),server:_,onDelete:m},null,8,["class","server"]))),128))]),_:1},8,["class","aria-label","enter-from-class","enter-active-class","leave-active-class","leave-to-class"]),c(oe,{onAdd:n})]),_:1},8,["name","doc-url","description"]))}}),he="_federationAdminSettings__trustedServersList_z3uvu_2",Te="_federationAdminSettings__trustedServersListItem_z3uvu_9",ye="_transition_active_z3uvu_13",Ae="_transition_hidden_z3uvu_17",ge={federationAdminSettings__trustedServersList:he,federationAdminSettings__trustedServersListItem:Te,transition_active:ye,transition_hidden:Ae},we={$style:ge},Ue=E(pe,[["__cssModules",we]]),Ee=V(Ue);Ee.mount("#federation-admin-settings"); +import{b as g,v as D,r as w,j as U,o as l,k as T,t as E,u as t,n as u,e as c,w as h,H as L,K as k,x as p,c as S,l as K,T as O,F as P,C as R,h as V}from"./runtime-dom.esm-bundler-DdtEg5E9.chunk.mjs";import{a as b,l as q}from"./index-DCpg1aui.chunk.mjs";import{t as r}from"./string_decoder-vT-u9WbV.chunk.mjs";import{e as z,a as G,b as B,d as M,f as j,N as H}from"./mdi-BpC5Cj53.chunk.mjs";import{N as W}from"./ContentCopy-s5fS3y5J.chunk.mjs";import{e as J,a as y}from"./index-JpgrUA2Z-BXxDc_if.chunk.mjs";import{N as A,b as F}from"./AccountOutline-BlW-6JqD.chunk.mjs";import{_ as Q}from"./TrashCanOutline-DglPBhgI.chunk.mjs";import{c as $,i as X}from"./index-DVH_Kr3Q.chunk.mjs";import{a as N}from"./createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs";import{g as Y}from"./index-Bndk0DrU.chunk.mjs";import{N as Z}from"./Web-aYJacExm.chunk.mjs";import"./NcModal-MC_HktJd-DqeuH-fk.chunk.mjs";import"./NcInputField-Bwsh2aHY-Cz27INBW.chunk.mjs";import"./public-uQ6dl0vH.chunk.mjs";const o=Object.freeze({STATUS_OK:1,STATUS_PENDING:2,STATUS_FAILURE:3,STATUS_ACCESS_REVOKED:4});class I extends Error{}async function ee(a){try{const{data:i}=await $.post(N("apps/federation/trusted-servers"),{url:a}),s=i.ocs.data;return{id:s.id,url:s.url,status:o.STATUS_PENDING}}catch(i){throw x(i)}}async function te(a){try{await $.delete(N(`apps/federation/trusted-servers/${a}`))}catch(i){throw x(i)}}function x(a){return X(a)&&a.response?.data?.ocs?new I(a.response.data.ocs.meta.message,{cause:a}):a}const C=Y().setApp("federation").build(),re=g({__name:"AddTrustedServerForm",emits:["add"],setup(a,{emit:i}){const s=i,v=D("form"),n=w("");async function m(){try{const e=await ee(n.value);n.value="",s("add",e),k(()=>v.value?.reset()),J(r("federation","Added to the list of trusted servers"))}catch(e){C.error("Failed to add trusted server",{error:e}),e instanceof I?y(e.message):y(r("federation","Could not add trusted server. Please try again later."))}}return(e,d)=>(l(),U("form",{ref:"form",onSubmit:L(m,["prevent"])},[T("h3",{class:u(e.$style.addTrustedServerForm__heading)},E(t(r)("federation","Add trusted server")),3),T("div",{class:u(e.$style.addTrustedServerForm__wrapper)},[c(t(Q),{modelValue:n.value,"onUpdate:modelValue":d[0]||(d[0]=_=>n.value=_),label:t(r)("federation","Server url"),placeholder:"https://…",required:"",type:"url"},null,8,["modelValue","label"]),c(t(F),{class:u(e.$style.addTrustedServerForm__submitButton),"aria-label":t(r)("federation","Add"),title:t(r)("federation","Add"),type:"submit",variant:"primary"},{icon:h(()=>[c(t(A),{path:t(z)},null,8,["path"])]),_:1},8,["class","aria-label","title"])],2)],544))}}),se="_addTrustedServerForm__heading_14ngv_2",ae="_addTrustedServerForm__wrapper_14ngv_7",ie="_addTrustedServerForm__submitButton_14ngv_14",ne={addTrustedServerForm__heading:se,addTrustedServerForm__wrapper:ae,addTrustedServerForm__submitButton:ie},oe={$style:ne},de=b(re,[["__cssModules",oe]]),le=["textContent"],ue=g({__name:"TrustedServer",props:{server:{}},emits:["delete"],setup(a,{emit:i}){const s=a,v=i,n=w(!1),m=p(()=>s.server.status===o.STATUS_FAILURE),e=p(()=>{switch(s.server.status){case o.STATUS_OK:return M;case o.STATUS_PENDING:case o.STATUS_ACCESS_REVOKED:return B;case o.STATUS_FAILURE:default:return G}}),d=p(()=>{switch(s.server.status){case o.STATUS_OK:return[r("federation","Server ok"),r("federation","User list was exchanged at least once successfully with the remote server.")];case o.STATUS_PENDING:return[r("federation","Server pending"),r("federation","Waiting for shared secret or initial user list exchange.")];case o.STATUS_ACCESS_REVOKED:return[r("federation","Server access revoked"),r("federation","Server access revoked")];case o.STATUS_FAILURE:default:return[r("federation","Server failure"),r("federation","Connection to the remote server failed or the remote server is misconfigured.")]}});async function _(){try{n.value=!0,await te(s.server.id),v("delete",s.server)}catch(f){n.value=!1,C.error("Failed to delete trusted server",{error:f}),y(r("federation","Failed to delete trusted server. Please try again later."))}}return(f,Ee)=>(l(),U("li",{class:u(f.$style.trustedServer)},[c(t(A),{class:u({[f.$style.trustedServer__icon_error]:m.value}),path:e.value,name:d.value[0],title:d.value[1]},null,8,["class","path","name","title"]),T("code",{class:u(f.$style.trustedServer__url),textContent:E(a.server.url)},null,10,le),c(t(F),{"aria-label":t(r)("federation","Delete"),title:t(r)("federation","Delete"),disabled:n.value,onClick:_},{icon:h(()=>[n.value?(l(),S(t(Z),{key:0})):(l(),S(t(A),{key:1,path:t(j)},null,8,["path"]))]),_:1},8,["aria-label","title","disabled"])],2))}}),ce="_trustedServer_1wqey_2",_e="_trustedServer__icon_error_1wqey_15",ve="_trustedServer__url_1wqey_19",me={trustedServer:ce,trustedServer__icon_error:_e,trustedServer__url:ve},fe={$style:me},Se=b(ue,[["__cssModules",fe]]),pe=g({__name:"AdminSettings",setup(a){const i=q("federation","adminSettings"),s=w(i.trustedServers),v=p(()=>s.value.some(e=>e.status===o.STATUS_PENDING));async function n(e){s.value.unshift(e)}function m(e){s.value=s.value.filter(d=>d.id!==e.id)}return(e,d)=>(l(),S(t(W),{name:t(r)("federation","Trusted servers"),"doc-url":t(i).docUrl,description:t(r)("federation","Federation allows you to connect with other trusted servers to exchange the account directory. For example this will be used to auto-complete external accounts for federated sharing. It is not necessary to add a server as trusted server in order to create a federated share.")},{default:h(()=>[v.value?(l(),S(t(H),{key:0,type:"info",text:t(r)("federation","Each server must validate the other. This process may require a few cron cycles.")},null,8,["text"])):K("",!0),c(O,{class:u(e.$style.federationAdminSettings__trustedServersList),"aria-label":t(r)("federation","Trusted servers"),tag:"ul","enter-from-class":e.$style.transition_hidden,"enter-active-class":e.$style.transition_active,"leave-active-class":e.$style.transition_active,"leave-to-class":e.$style.transition_hidden},{default:h(()=>[(l(!0),U(P,null,R(s.value,_=>(l(),S(Se,{key:_.id,class:u(e.$style.federationAdminSettings__trustedServersListItem),server:_,onDelete:m},null,8,["class","server"]))),128))]),_:1},8,["class","aria-label","enter-from-class","enter-active-class","leave-active-class","leave-to-class"]),c(de,{onAdd:n})]),_:1},8,["name","doc-url","description"]))}}),he="_federationAdminSettings__trustedServersList_z3uvu_2",Te="_federationAdminSettings__trustedServersListItem_z3uvu_9",ye="_transition_active_z3uvu_13",Ae="_transition_hidden_z3uvu_17",ge={federationAdminSettings__trustedServersList:he,federationAdminSettings__trustedServersListItem:Te,transition_active:ye,transition_hidden:Ae},we={$style:ge},Ue=b(pe,[["__cssModules",we]]),be=V(Ue);be.mount("#federation-admin-settings"); //# sourceMappingURL=federation-settings-admin.mjs.map diff --git a/dist/federation-settings-admin.mjs.map b/dist/federation-settings-admin.mjs.map index 65e0b715cd04d..4da32711f8bd2 100644 --- a/dist/federation-settings-admin.mjs.map +++ b/dist/federation-settings-admin.mjs.map @@ -1 +1 @@ -{"version":3,"file":"federation-settings-admin.mjs","sources":["../build/frontend/apps/federation/src/services/api.ts","../build/frontend/apps/federation/src/services/logger.ts","../build/frontend/apps/federation/src/components/AddTrustedServerForm.vue","../build/frontend/apps/federation/src/components/TrustedServer.vue","../build/frontend/apps/federation/src/views/AdminSettings.vue","../build/frontend/apps/federation/src/settings-admin.ts"],"sourcesContent":["/*!\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { OCSResponse } from '@nextcloud/typings/ocs'\n\nimport axios, { isAxiosError } from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\n\nexport const TrustedServerStatus = Object.freeze({\n\t/** after a user list was exchanged at least once successfully */\n\tSTATUS_OK: 1,\n\t/** waiting for shared secret or initial user list exchange */\n\tSTATUS_PENDING: 2,\n\t/** something went wrong, misconfigured server, software bug,... user interaction needed */\n\tSTATUS_FAILURE: 3,\n\t/** remote server revoked access */\n\tSTATUS_ACCESS_REVOKED: 4,\n})\n\nexport interface ITrustedServer {\n\tid: number\n\turl: string\n\tstatus: typeof TrustedServerStatus[keyof typeof TrustedServerStatus]\n}\n\nexport class ApiError extends Error {}\n\n/**\n * Add a new trusted server\n *\n * @param url - The new URL to add\n */\nexport async function addServer(url: string): Promise {\n\ttry {\n\t\tconst { data } = await axios.post>>(\n\t\t\tgenerateOcsUrl('apps/federation/trusted-servers'),\n\t\t\t{ url },\n\t\t)\n\n\t\tconst serverData = data.ocs.data\n\t\treturn {\n\t\t\tid: serverData.id,\n\t\t\turl: serverData.url,\n\t\t\tstatus: TrustedServerStatus.STATUS_PENDING,\n\t\t}\n\t} catch (error) {\n\t\tthrow mapError(error)\n\t}\n}\n\n/**\n * @param id - The id of the trusted server to remove\n */\nexport async function deleteServer(id: number): Promise {\n\ttry {\n\t\tawait axios.delete(generateOcsUrl(`apps/federation/trusted-servers/${id}`))\n\t} catch (error) {\n\t\tthrow mapError(error)\n\t}\n}\n\n/**\n * Error handling for API calls\n *\n * @param error - The catch error\n */\nfunction mapError(error: unknown): ApiError | unknown {\n\tif (isAxiosError(error) && error.response?.data?.ocs) {\n\t\treturn new ApiError((error.response.data as OCSResponse).ocs.meta.message, { cause: error })\n\t}\n\treturn error\n}\n","/*!\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport const logger = getLoggerBuilder().setApp('federation').build()\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","/*!\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { createApp } from 'vue'\nimport AdminSettings from './views/AdminSettings.vue'\n\nconst app = createApp(AdminSettings)\napp.mount('#federation-admin-settings')\n"],"names":["TrustedServerStatus","ApiError","addServer","url","data","axios","generateOcsUrl","serverData","error","mapError","deleteServer","id","isAxiosError","logger","getLoggerBuilder","emit","__emit","formElement","useTemplateRef","newServerUrl","ref","onAdd","server","nextTick","showSuccess","t","showError","_createElementBlock","_createElementVNode","_normalizeClass","$style","_unref","_createVNode","NcTextField","$event","NcButton","NcIconSvgWrapper","mdiPlus","props","__props","isLoading","hasError","computed","serverIcon","mdiCheckNetworkOutline","mdiHelpNetworkOutline","mdiCloseNetworkOutline","serverStatus","onDelete","_toDisplayString","_createBlock","NcLoadingIcon","mdiTrashCanOutline","adminSettings","loadState","trustedServers","showPendingServerInfo","s","NcSettingsSection","NcNoteCard","_TransitionGroup","_Fragment","_renderList","TrustedServer","AddTrustedServerForm","app","createApp","AdminSettings"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"federation-settings-admin.mjs","sources":["../build/frontend/apps/federation/src/services/api.ts","../build/frontend/apps/federation/src/services/logger.ts","../build/frontend/apps/federation/src/components/AddTrustedServerForm.vue","../build/frontend/apps/federation/src/components/TrustedServer.vue","../build/frontend/apps/federation/src/views/AdminSettings.vue","../build/frontend/apps/federation/src/settings-admin.ts"],"sourcesContent":["/*!\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { OCSResponse } from '@nextcloud/typings/ocs'\n\nimport axios, { isAxiosError } from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\n\nexport const TrustedServerStatus = Object.freeze({\n\t/** after a user list was exchanged at least once successfully */\n\tSTATUS_OK: 1,\n\t/** waiting for shared secret or initial user list exchange */\n\tSTATUS_PENDING: 2,\n\t/** something went wrong, misconfigured server, software bug,... user interaction needed */\n\tSTATUS_FAILURE: 3,\n\t/** remote server revoked access */\n\tSTATUS_ACCESS_REVOKED: 4,\n})\n\nexport interface ITrustedServer {\n\tid: number\n\turl: string\n\tstatus: typeof TrustedServerStatus[keyof typeof TrustedServerStatus]\n}\n\nexport class ApiError extends Error {}\n\n/**\n * Add a new trusted server\n *\n * @param url - The new URL to add\n */\nexport async function addServer(url: string): Promise {\n\ttry {\n\t\tconst { data } = await axios.post>>(\n\t\t\tgenerateOcsUrl('apps/federation/trusted-servers'),\n\t\t\t{ url },\n\t\t)\n\n\t\tconst serverData = data.ocs.data\n\t\treturn {\n\t\t\tid: serverData.id,\n\t\t\turl: serverData.url,\n\t\t\tstatus: TrustedServerStatus.STATUS_PENDING,\n\t\t}\n\t} catch (error) {\n\t\tthrow mapError(error)\n\t}\n}\n\n/**\n * @param id - The id of the trusted server to remove\n */\nexport async function deleteServer(id: number): Promise {\n\ttry {\n\t\tawait axios.delete(generateOcsUrl(`apps/federation/trusted-servers/${id}`))\n\t} catch (error) {\n\t\tthrow mapError(error)\n\t}\n}\n\n/**\n * Error handling for API calls\n *\n * @param error - The catch error\n */\nfunction mapError(error: unknown): ApiError | unknown {\n\tif (isAxiosError(error) && error.response?.data?.ocs) {\n\t\treturn new ApiError((error.response.data as OCSResponse).ocs.meta.message, { cause: error })\n\t}\n\treturn error\n}\n","/*!\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport const logger = getLoggerBuilder().setApp('federation').build()\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","/*!\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { createApp } from 'vue'\nimport AdminSettings from './views/AdminSettings.vue'\n\nconst app = createApp(AdminSettings)\napp.mount('#federation-admin-settings')\n"],"names":["TrustedServerStatus","ApiError","addServer","url","data","axios","generateOcsUrl","serverData","error","mapError","deleteServer","id","isAxiosError","logger","getLoggerBuilder","emit","__emit","formElement","useTemplateRef","newServerUrl","ref","onAdd","server","nextTick","showSuccess","t","showError","_createElementBlock","_createElementVNode","_normalizeClass","$style","_unref","_createVNode","NcTextField","$event","NcButton","NcIconSvgWrapper","mdiPlus","props","__props","isLoading","hasError","computed","serverIcon","mdiCheckNetworkOutline","mdiHelpNetworkOutline","mdiCloseNetworkOutline","serverStatus","onDelete","_toDisplayString","_createBlock","NcLoadingIcon","mdiTrashCanOutline","adminSettings","loadState","trustedServers","showPendingServerInfo","s","NcSettingsSection","NcNoteCard","_TransitionGroup","_Fragment","_renderList","TrustedServer","AddTrustedServerForm","app","createApp","AdminSettings"],"mappings":"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"} \ No newline at end of file diff --git a/dist/files_external-auth_rsa.mjs b/dist/files_external-auth_rsa.mjs index 1fec5ec9472da..8dada2c926784 100644 --- a/dist/files_external-auth_rsa.mjs +++ b/dist/files_external-auth_rsa.mjs @@ -1,3 +1,3 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=[window.OC.filePath('', '', 'dist/AuthMechanismRsa-e40gyg0q.chunk.mjs'),window.OC.filePath('', '', 'dist/runtime-dom.esm-bundler-BrYCUcZF.chunk.mjs'),window.OC.filePath('', '', 'dist/index-BfylblLb.chunk.mjs'),window.OC.filePath('', '', 'dist/index-6_gsQFyp.chunk.mjs'),window.OC.filePath('', '', 'dist/string_decoder-BO00msnV.chunk.mjs'),window.OC.filePath('', '', 'dist/createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs'),window.OC.filePath('', '', 'dist/translation-DoG5ZELJ-gw0g4US-.chunk.mjs'),window.OC.filePath('', '', 'dist/index-JpgrUA2Z-BFiKKJ1W.chunk.mjs'),window.OC.filePath('', '', 'dist/index-xFugdZPW.chunk.mjs'),window.OC.filePath('', '', 'dist/NcNoteCard-CVhtNL04-hwuc093N.chunk.mjs'),window.OC.filePath('', '', 'dist/NcNoteCard-CVhtNL04-DopLwvn9.chunk.css'),window.OC.filePath('', '', 'dist/mdi-D55n0uzy.chunk.mjs'),window.OC.filePath('', '', 'dist/mdi-BYHcrfvW.chunk.css'),window.OC.filePath('', '', 'dist/index-JpgrUA2Z-PxDoi4mB.chunk.css'),window.OC.filePath('', '', 'dist/NcSelect-Czzsi3P_-DLFUGW7z.chunk.mjs'),window.OC.filePath('', '', 'dist/NcSelect-Czzsi3P_-DxGOLvnt.chunk.css'),window.OC.filePath('', '', 'dist/NcCheckboxRadioSwitch-BCSKF7Tk-yPckcGKs.chunk.mjs'),window.OC.filePath('', '', 'dist/NcCheckboxRadioSwitch-BCSKF7Tk-BgdwjgMO.chunk.css'),window.OC.filePath('', '', 'dist/NcPasswordField-djttkA5Q-2g87vOpY.chunk.mjs'),window.OC.filePath('', '', 'dist/NcInputField-Bwsh2aHY-CHbAfY0u.chunk.mjs'),window.OC.filePath('', '', 'dist/NcInputField-Bwsh2aHY-_gyGHRGx.chunk.css'),window.OC.filePath('', '', 'dist/NcPasswordField-djttkA5Q-2EzJaBaw.chunk.css'),window.OC.filePath('', '', 'dist/TrashCanOutline-CvWRJ8GE.chunk.mjs'),window.OC.filePath('', '', 'dist/types-BoPN4zt3.chunk.mjs'),window.OC.filePath('', '', 'dist/logger-CrDakPzW.chunk.mjs')])))=>i.map(i=>d[i]); -import{_ as t}from"./index-xFugdZPW.chunk.mjs";import{d as a,a as i}from"./runtime-dom.esm-bundler-BrYCUcZF.chunk.mjs";const r=i(()=>t(()=>import("./AuthMechanismRsa-e40gyg0q.chunk.mjs").then(e=>e.A),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24]),import.meta.url)),s=a(r,{shadowRoot:!1});customElements.define("files_external-auth-mechanism-rsa",s),window.OCA.FilesExternal.AuthMechanism.registerHandler({id:"rsa",tagName:"files_external-auth-mechanism-rsa",enabled(e){return e.scheme==="publickey"&&e.identifier==="publickey::rsa"}}); +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=[window.OC.filePath('', '', 'dist/AuthMechanismRsa-BQFNdXT1.chunk.mjs'),window.OC.filePath('', '', 'dist/runtime-dom.esm-bundler-DdtEg5E9.chunk.mjs'),window.OC.filePath('', '', 'dist/index-DVH_Kr3Q.chunk.mjs'),window.OC.filePath('', '', 'dist/index-Bndk0DrU.chunk.mjs'),window.OC.filePath('', '', 'dist/public-uQ6dl0vH.chunk.mjs'),window.OC.filePath('', '', 'dist/index-DCpg1aui.chunk.mjs'),window.OC.filePath('', '', 'dist/createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs'),window.OC.filePath('', '', 'dist/string_decoder-vT-u9WbV.chunk.mjs'),window.OC.filePath('', '', 'dist/index-JpgrUA2Z-BXxDc_if.chunk.mjs'),window.OC.filePath('', '', 'dist/NcModal-MC_HktJd-DqeuH-fk.chunk.mjs'),window.OC.filePath('', '', 'dist/AccountOutline-BlW-6JqD.chunk.mjs'),window.OC.filePath('', '', 'dist/AccountOutline-Bx-uhVVO.chunk.css'),window.OC.filePath('', '', 'dist/NcModal-MC_HktJd-YC6kxNbR.chunk.css'),window.OC.filePath('', '', 'dist/Web-aYJacExm.chunk.mjs'),window.OC.filePath('', '', 'dist/Web-BYHcrfvW.chunk.css'),window.OC.filePath('', '', 'dist/mdi-BpC5Cj53.chunk.mjs'),window.OC.filePath('', '', 'dist/mdi-Jq77EThs.chunk.css'),window.OC.filePath('', '', 'dist/index-JpgrUA2Z-CX17yN4T.chunk.css'),window.OC.filePath('', '', 'dist/NcSelect-Czzsi3P_-BKaYvmLF.chunk.mjs'),window.OC.filePath('', '', 'dist/NcSelect-Czzsi3P_-DxGOLvnt.chunk.css'),window.OC.filePath('', '', 'dist/NcCheckboxRadioSwitch-BCSKF7Tk-B1Kcz6gU.chunk.mjs'),window.OC.filePath('', '', 'dist/NcCheckboxRadioSwitch-BCSKF7Tk-BgdwjgMO.chunk.css'),window.OC.filePath('', '', 'dist/NcPasswordField-djttkA5Q-Dz7uhHFj.chunk.mjs'),window.OC.filePath('', '', 'dist/NcInputField-Bwsh2aHY-Cz27INBW.chunk.mjs'),window.OC.filePath('', '', 'dist/NcInputField-Bwsh2aHY-_gyGHRGx.chunk.css'),window.OC.filePath('', '', 'dist/NcPasswordField-djttkA5Q-2EzJaBaw.chunk.css'),window.OC.filePath('', '', 'dist/TrashCanOutline-DglPBhgI.chunk.mjs'),window.OC.filePath('', '', 'dist/types-BqUbz9dh.chunk.mjs'),window.OC.filePath('', '', 'dist/logger-resIultJ.chunk.mjs')])))=>i.map(i=>d[i]); +import{_ as t}from"./index-DCpg1aui.chunk.mjs";import{d as a,a as i}from"./runtime-dom.esm-bundler-DdtEg5E9.chunk.mjs";const r=i(()=>t(()=>import("./AuthMechanismRsa-BQFNdXT1.chunk.mjs").then(e=>e.A),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28]),import.meta.url)),s=a(r,{shadowRoot:!1});customElements.define("files_external-auth-mechanism-rsa",s),window.OCA.FilesExternal.AuthMechanism.registerHandler({id:"rsa",tagName:"files_external-auth-mechanism-rsa",enabled(e){return e.scheme==="publickey"&&e.identifier==="publickey::rsa"}}); //# sourceMappingURL=files_external-auth_rsa.mjs.map diff --git a/dist/files_external-auth_rsa.mjs.map b/dist/files_external-auth_rsa.mjs.map index 54a3566de7b56..1dc72def5d9f8 100644 --- a/dist/files_external-auth_rsa.mjs.map +++ b/dist/files_external-auth_rsa.mjs.map @@ -1 +1 @@ -{"version":3,"mappings":";uHASA,MAAMA,EAAmBC,EAAqB,UAAM,OAAO,uCAA8B,OAAAC,KAAA,uGAAC,EACpFC,EAA4BC,EAAoBJ,EAAkB,CAAE,WAAY,GAAO,EAC7F,eAAe,OAAO,oCAAqCG,CAAyB,EAEpF,OAAO,IAAI,cAAc,cAAe,gBAAgB,CACvD,GAAI,MACJ,QAAS,oCACT,QAAQE,EAA+B,CACtC,OAAOA,EAAc,SAAW,aAAeA,EAAc,aAAe,gBAC7E,CACD,CAAC","names":["AuthMechanismRsa","defineAsyncComponent","n","AuthMechanismRsaComponent","defineCustomElement","authMechanism"],"ignoreList":[],"sources":["../build/frontend/apps/files_external/src/auth-rsa.ts"],"sourcesContent":["/*!\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { IAuthMechanism } from './types.ts'\n\nimport { defineAsyncComponent, defineCustomElement } from 'vue'\n\nconst AuthMechanismRsa = defineAsyncComponent(() => import('./views/AuthMechanismRsa.vue'))\nconst AuthMechanismRsaComponent = defineCustomElement(AuthMechanismRsa, { shadowRoot: false })\ncustomElements.define('files_external-auth-mechanism-rsa', AuthMechanismRsaComponent)\n\nwindow.OCA.FilesExternal.AuthMechanism!.registerHandler({\n\tid: 'rsa',\n\ttagName: 'files_external-auth-mechanism-rsa',\n\tenabled(authMechanism: IAuthMechanism) {\n\t\treturn authMechanism.scheme === 'publickey' && authMechanism.identifier === 'publickey::rsa'\n\t},\n})\n"],"file":"files_external-auth_rsa.mjs"} \ No newline at end of file +{"version":3,"mappings":";uHASA,MAAMA,EAAmBC,EAAqB,UAAM,OAAO,uCAA8B,OAAAC,KAAA,mHAAC,EACpFC,EAA4BC,EAAoBJ,EAAkB,CAAE,WAAY,GAAO,EAC7F,eAAe,OAAO,oCAAqCG,CAAyB,EAEpF,OAAO,IAAI,cAAc,cAAe,gBAAgB,CACvD,GAAI,MACJ,QAAS,oCACT,QAAQE,EAA+B,CACtC,OAAOA,EAAc,SAAW,aAAeA,EAAc,aAAe,gBAC7E,CACD,CAAC","names":["AuthMechanismRsa","defineAsyncComponent","n","AuthMechanismRsaComponent","defineCustomElement","authMechanism"],"ignoreList":[],"sources":["../build/frontend/apps/files_external/src/auth-rsa.ts"],"sourcesContent":["/*!\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { IAuthMechanism } from './types.ts'\n\nimport { defineAsyncComponent, defineCustomElement } from 'vue'\n\nconst AuthMechanismRsa = defineAsyncComponent(() => import('./views/AuthMechanismRsa.vue'))\nconst AuthMechanismRsaComponent = defineCustomElement(AuthMechanismRsa, { shadowRoot: false })\ncustomElements.define('files_external-auth-mechanism-rsa', AuthMechanismRsaComponent)\n\nwindow.OCA.FilesExternal.AuthMechanism!.registerHandler({\n\tid: 'rsa',\n\ttagName: 'files_external-auth-mechanism-rsa',\n\tenabled(authMechanism: IAuthMechanism) {\n\t\treturn authMechanism.scheme === 'publickey' && authMechanism.identifier === 'publickey::rsa'\n\t},\n})\n"],"file":"files_external-auth_rsa.mjs"} \ No newline at end of file diff --git a/dist/files_external-init.css b/dist/files_external-init.css index fc9651323c330..e6d611eddabca 100644 --- a/dist/files_external-init.css +++ b/dist/files_external-init.css @@ -1,7 +1,9 @@ /* extracted by css-entry-points-plugin */ @import './files_external-files_external-init-BKogpXqd.chunk.css'; -@import './NcNoteCard-CVhtNL04-DopLwvn9.chunk.css'; -@import './mdi-BYHcrfvW.chunk.css'; -@import './index-JpgrUA2Z-PxDoi4mB.chunk.css'; +@import './AccountOutline-Bx-uhVVO.chunk.css'; +@import './NcModal-MC_HktJd-YC6kxNbR.chunk.css'; +@import './Web-BYHcrfvW.chunk.css'; +@import './mdi-Jq77EThs.chunk.css'; +@import './index-JpgrUA2Z-CX17yN4T.chunk.css'; @import './NcInputField-Bwsh2aHY-_gyGHRGx.chunk.css'; @import './NcPasswordField-djttkA5Q-2EzJaBaw.chunk.css'; \ No newline at end of file diff --git a/dist/files_external-init.mjs b/dist/files_external-init.mjs index a2ab395b8d9c0..849943b596ac7 100644 --- a/dist/files_external-init.mjs +++ b/dist/files_external-init.mjs @@ -1,3 +1,3 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=[window.OC.filePath('', '', 'dist/CredentialsDialog-DRqXEuS4.chunk.mjs'),window.OC.filePath('', '', 'dist/translation-DoG5ZELJ-gw0g4US-.chunk.mjs'),window.OC.filePath('', '', 'dist/index-6_gsQFyp.chunk.mjs'),window.OC.filePath('', '', 'dist/index-JpgrUA2Z-BFiKKJ1W.chunk.mjs'),window.OC.filePath('', '', 'dist/index-xFugdZPW.chunk.mjs'),window.OC.filePath('', '', 'dist/runtime-dom.esm-bundler-BrYCUcZF.chunk.mjs'),window.OC.filePath('', '', 'dist/createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs'),window.OC.filePath('', '', 'dist/NcNoteCard-CVhtNL04-hwuc093N.chunk.mjs'),window.OC.filePath('', '', 'dist/NcNoteCard-CVhtNL04-DopLwvn9.chunk.css'),window.OC.filePath('', '', 'dist/mdi-D55n0uzy.chunk.mjs'),window.OC.filePath('', '', 'dist/mdi-BYHcrfvW.chunk.css'),window.OC.filePath('', '', 'dist/index-JpgrUA2Z-PxDoi4mB.chunk.css'),window.OC.filePath('', '', 'dist/NcPasswordField-djttkA5Q-2g87vOpY.chunk.mjs'),window.OC.filePath('', '', 'dist/index-BfylblLb.chunk.mjs'),window.OC.filePath('', '', 'dist/string_decoder-BO00msnV.chunk.mjs'),window.OC.filePath('', '', 'dist/NcInputField-Bwsh2aHY-CHbAfY0u.chunk.mjs'),window.OC.filePath('', '', 'dist/NcInputField-Bwsh2aHY-_gyGHRGx.chunk.css'),window.OC.filePath('', '', 'dist/NcPasswordField-djttkA5Q-2EzJaBaw.chunk.css'),window.OC.filePath('', '', 'dist/TrashCanOutline-CvWRJ8GE.chunk.mjs')])))=>i.map(i=>d[i]); -import{F as E,c as f,D as x,b as h,P as d,g as V,V as M,C as w,f as c}from"./index-BKfQ4diD.chunk.mjs";import{_ as L,l as S}from"./index-xFugdZPW.chunk.mjs";import{t as s}from"./translation-DoG5ZELJ-gw0g4US-.chunk.mjs";import{c as l}from"./index-BfylblLb.chunk.mjs";import{b as T,e as _,a as b,s as A,h as N}from"./index-JpgrUA2Z-BFiKKJ1W.chunk.mjs";import{e as y,a as u}from"./index-6_gsQFyp.chunk.mjs";import{a as P,P as k}from"./index-cDQt1Drw.chunk.mjs";import{g as m,a as D,b as v}from"./createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs";import{S as a}from"./types-BoPN4zt3.chunk.mjs";import{a as I}from"./runtime-dom.esm-bundler-BrYCUcZF.chunk.mjs";import"./string_decoder-BO00msnV.chunk.mjs";import"./NcNoteCard-CVhtNL04-hwuc093N.chunk.mjs";import"./mdi-D55n0uzy.chunk.mjs";import"./NcPasswordField-djttkA5Q-2g87vOpY.chunk.mjs";import"./NcInputField-Bwsh2aHY-CHbAfY0u.chunk.mjs";const O='',R='';function H(e){return e.status===void 0||e.status===a.Success?!1:e.userProvided||e.authMechanism==="password::global::user"}function C(e){if(e.type===E.File)return!1;const t=e.attributes;return!t.scope||!t.backend?!1:t.scope==="personal"||t.scope==="system"}P(l);async function F(e,t,n){const r=(await l.request({method:"PUT",url:m("apps/files_external/userglobalstorages/{id}",{id:e.attributes.id}),confirmPassword:k.Strict,data:{backendOptions:{user:t,password:n}}})).data;return r.status!==a.Success?(b(s("files_external","Unable to update this external storage config. {statusMessage}",{statusMessage:r?.statusMessage||""})),null):(_(s("files_external","New configuration successfully saved")),e.attributes.config=r,y("files:node:updated",e),!0)}const U="credentials-external-storage",$=new f({id:U,displayName:()=>s("files","Enter missing credentials"),iconSvgInline:()=>R,enabled:({nodes:e})=>{if(e.length!==1||!e[0])return!1;const t=e[0];if(!C(t))return!1;const n=t.attributes?.config||{};return!!H(n)},async exec({nodes:e}){const{login:t,password:n}=await T(I(()=>L(()=>import("./CredentialsDialog-DRqXEuS4.chunk.mjs"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]),import.meta.url)))??{};if(t&&n)try{await F(e[0],t,n),_(s("files_external","Credentials successfully set"))}catch(r){b(s("files_external","Error while setting credentials: {error}",{error:r.message}))}return null},order:-1e3,default:x.DEFAULT,inline:()=>!0}),B='',o=`/files/${u()?.uid}`;function Z(e){const t=(e.path+"/"+e.name).replace(/^\//gm,"");return new h({id:e.id,source:v("dav"+o+"/"+t),root:o,owner:u()?.uid||null,permissions:e.config.status!==a.Success?d.NONE:e?.permissions||d.READ,attributes:{displayName:t,...e}})}async function j(){const e=(await l.get(D("apps/files_external/api/v1/mounts"))).data.ocs.data.map(Z);return{folder:new h({id:0,source:v("dav"+o),root:o,owner:u()?.uid||null,permissions:d.READ}),contents:e}}function q(e,t=!0){const n=t?"userglobalstorages":"userstorages";return l.get(m(`apps/files_external/${n}/${e}?testOnly=false`))}const W=new f({id:"check-external-storage",displayName:()=>"",iconSvgInline:()=>"",enabled:({nodes:e})=>e.every(t=>C(t)===!0),exec:async()=>null,async renderInline({nodes:e}){if(e.length!==1||!e[0])return null;const t=e[0],n=document.createElement("span");n.className="files-list__row-status",n.innerHTML=s("files_external","Checking storage …");let r;try{const{data:i}=await q(t.attributes.id,t.attributes.scope==="system");if(r=i,t.attributes.config=r,y("files:node:updated",t),r.status!==a.Success)throw new Error(r?.statusMessage||s("files_external","There was an error with this external storage."));n.remove()}catch(i){i.response&&!r&&A(s("files_external","We were unable to check the external storage {basename}",{basename:t.basename})),n.innerHTML="";const g=r?H(r):!1,p=document.createElement("span");p.classList.add(`files-list__row-status--${g?"warning":"error"}`),g||(n.innerHTML=B,n.title=i.message),n.prepend(p)}return n},order:10}),Y=new f({id:"open-in-files-external-storage",displayName:({nodes:e})=>(e?.[0]?.attributes?.config||{status:a.Indeterminate}).status!==a.Success?s("files_external","Examine this faulty external storage configuration"):s("files","Open in Files"),iconSvgInline:()=>"",enabled:({view:e})=>e.id==="extstoragemounts",async exec({nodes:e}){if(e[0]?.attributes?.config?.status!==a.Success){if(await N({name:s("files_external","External mount error"),text:s("files_external","There was an error with this external storage. Do you want to review this mount point config in the settings page?"),labelConfirm:s("files_external","Open settings"),labelReject:s("files_external","Ignore")})===!0){const t=u()?.isAdmin?"admin":"user";window.location.href=m(`/settings/${t}/externalstorages`)}return null}return window.OCP.Files.Router.goToRoute(null,{view:"files"},{dir:e[0].path}),null},order:-1e3,default:x.HIDDEN}),z=S("files_external","allowUserMounting",!1),G=V();G.register(new M({id:"extstoragemounts",name:s("files_external","External storage"),caption:s("files_external","List of external storage."),emptyCaption:z?s("files_external","There is no external storage configured. You can configure them in your Personal settings."):s("files_external","There is no external storage configured and you don't have the permission to configure them."),emptyTitle:s("files_external","No external storage"),icon:O,order:30,columns:[new w({id:"storage-type",title:s("files_external","Storage type"),render(e){const t=e.attributes?.backend||s("files_external","Unknown"),n=document.createElement("span");return n.textContent=t,n}}),new w({id:"scope",title:s("files_external","Scope"),render(e){const t=document.createElement("span");let n=s("files_external","Personal");return e.attributes?.scope==="system"&&(n=s("files_external","System")),t.textContent=n,t}})],getContents:j})),c($),c(W),c(Y); +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=[window.OC.filePath('', '', 'dist/CredentialsDialog-DeDiIW45.chunk.mjs'),window.OC.filePath('', '', 'dist/string_decoder-vT-u9WbV.chunk.mjs'),window.OC.filePath('', '', 'dist/index-Bndk0DrU.chunk.mjs'),window.OC.filePath('', '', 'dist/index-JpgrUA2Z-BXxDc_if.chunk.mjs'),window.OC.filePath('', '', 'dist/index-DCpg1aui.chunk.mjs'),window.OC.filePath('', '', 'dist/runtime-dom.esm-bundler-DdtEg5E9.chunk.mjs'),window.OC.filePath('', '', 'dist/createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs'),window.OC.filePath('', '', 'dist/NcModal-MC_HktJd-DqeuH-fk.chunk.mjs'),window.OC.filePath('', '', 'dist/AccountOutline-BlW-6JqD.chunk.mjs'),window.OC.filePath('', '', 'dist/AccountOutline-Bx-uhVVO.chunk.css'),window.OC.filePath('', '', 'dist/NcModal-MC_HktJd-YC6kxNbR.chunk.css'),window.OC.filePath('', '', 'dist/Web-aYJacExm.chunk.mjs'),window.OC.filePath('', '', 'dist/Web-BYHcrfvW.chunk.css'),window.OC.filePath('', '', 'dist/mdi-BpC5Cj53.chunk.mjs'),window.OC.filePath('', '', 'dist/mdi-Jq77EThs.chunk.css'),window.OC.filePath('', '', 'dist/index-JpgrUA2Z-CX17yN4T.chunk.css'),window.OC.filePath('', '', 'dist/NcPasswordField-djttkA5Q-Dz7uhHFj.chunk.mjs'),window.OC.filePath('', '', 'dist/index-DVH_Kr3Q.chunk.mjs'),window.OC.filePath('', '', 'dist/public-uQ6dl0vH.chunk.mjs'),window.OC.filePath('', '', 'dist/NcInputField-Bwsh2aHY-Cz27INBW.chunk.mjs'),window.OC.filePath('', '', 'dist/NcInputField-Bwsh2aHY-_gyGHRGx.chunk.css'),window.OC.filePath('', '', 'dist/NcPasswordField-djttkA5Q-2EzJaBaw.chunk.css'),window.OC.filePath('', '', 'dist/TrashCanOutline-DglPBhgI.chunk.mjs')])))=>i.map(i=>d[i]); +import{F as E,c as f,D as x,b as h,P as d,g as V,V as M,C as w,f as c}from"./index-CfoF28kA.chunk.mjs";import{_ as L,l as S}from"./index-DCpg1aui.chunk.mjs";import{t as s}from"./string_decoder-vT-u9WbV.chunk.mjs";import{c as l}from"./index-DVH_Kr3Q.chunk.mjs";import{b as T,e as _,a as b,s as A,f as N}from"./index-JpgrUA2Z-BXxDc_if.chunk.mjs";import{e as y,a as u}from"./index-Bndk0DrU.chunk.mjs";import{a as P,P as k}from"./index-CEFiUoek.chunk.mjs";import{g as m,a as D,d as v}from"./createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs";import{S as a}from"./types-BqUbz9dh.chunk.mjs";import{a as I}from"./runtime-dom.esm-bundler-DdtEg5E9.chunk.mjs";import"./public-uQ6dl0vH.chunk.mjs";import"./NcModal-MC_HktJd-DqeuH-fk.chunk.mjs";import"./AccountOutline-BlW-6JqD.chunk.mjs";import"./Web-aYJacExm.chunk.mjs";import"./mdi-BpC5Cj53.chunk.mjs";import"./NcPasswordField-djttkA5Q-Dz7uhHFj.chunk.mjs";import"./NcInputField-Bwsh2aHY-Cz27INBW.chunk.mjs";const O='',R='';function H(e){return e.status===void 0||e.status===a.Success?!1:e.userProvided||e.authMechanism==="password::global::user"}function C(e){if(e.type===E.File)return!1;const t=e.attributes;return!t.scope||!t.backend?!1:t.scope==="personal"||t.scope==="system"}P(l);async function F(e,t,n){const r=(await l.request({method:"PUT",url:m("apps/files_external/userglobalstorages/{id}",{id:e.attributes.id}),confirmPassword:k.Strict,data:{backendOptions:{user:t,password:n}}})).data;return r.status!==a.Success?(b(s("files_external","Unable to update this external storage config. {statusMessage}",{statusMessage:r?.statusMessage||""})),null):(_(s("files_external","New configuration successfully saved")),e.attributes.config=r,y("files:node:updated",e),!0)}const U="credentials-external-storage",$=new f({id:U,displayName:()=>s("files","Enter missing credentials"),iconSvgInline:()=>R,enabled:({nodes:e})=>{if(e.length!==1||!e[0])return!1;const t=e[0];if(!C(t))return!1;const n=t.attributes?.config||{};return!!H(n)},async exec({nodes:e}){const{login:t,password:n}=await T(I(()=>L(()=>import("./CredentialsDialog-DeDiIW45.chunk.mjs"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]),import.meta.url)))??{};if(t&&n)try{await F(e[0],t,n),_(s("files_external","Credentials successfully set"))}catch(r){b(s("files_external","Error while setting credentials: {error}",{error:r.message}))}return null},order:-1e3,default:x.DEFAULT,inline:()=>!0}),B='',o=`/files/${u()?.uid}`;function Z(e){const t=(e.path+"/"+e.name).replace(/^\//gm,"");return new h({id:e.id,source:v("dav"+o+"/"+t),root:o,owner:u()?.uid||null,permissions:e.config.status!==a.Success?d.NONE:e?.permissions||d.READ,attributes:{displayName:t,...e}})}async function j(){const e=(await l.get(D("apps/files_external/api/v1/mounts"))).data.ocs.data.map(Z);return{folder:new h({id:0,source:v("dav"+o),root:o,owner:u()?.uid||null,permissions:d.READ}),contents:e}}function q(e,t=!0){const n=t?"userglobalstorages":"userstorages";return l.get(m(`apps/files_external/${n}/${e}?testOnly=false`))}const W=new f({id:"check-external-storage",displayName:()=>"",iconSvgInline:()=>"",enabled:({nodes:e})=>e.every(t=>C(t)===!0),exec:async()=>null,async renderInline({nodes:e}){if(e.length!==1||!e[0])return null;const t=e[0],n=document.createElement("span");n.className="files-list__row-status",n.innerHTML=s("files_external","Checking storage …");let r;try{const{data:i}=await q(t.attributes.id,t.attributes.scope==="system");if(r=i,t.attributes.config=r,y("files:node:updated",t),r.status!==a.Success)throw new Error(r?.statusMessage||s("files_external","There was an error with this external storage."));n.remove()}catch(i){i.response&&!r&&A(s("files_external","We were unable to check the external storage {basename}",{basename:t.basename})),n.innerHTML="";const g=r?H(r):!1,p=document.createElement("span");p.classList.add(`files-list__row-status--${g?"warning":"error"}`),g||(n.innerHTML=B,n.title=i.message),n.prepend(p)}return n},order:10}),Y=new f({id:"open-in-files-external-storage",displayName:({nodes:e})=>(e?.[0]?.attributes?.config||{status:a.Indeterminate}).status!==a.Success?s("files_external","Examine this faulty external storage configuration"):s("files","Open in Files"),iconSvgInline:()=>"",enabled:({view:e})=>e.id==="extstoragemounts",async exec({nodes:e}){if(e[0]?.attributes?.config?.status!==a.Success){if(await N({name:s("files_external","External mount error"),text:s("files_external","There was an error with this external storage. Do you want to review this mount point config in the settings page?"),labelConfirm:s("files_external","Open settings"),labelReject:s("files_external","Ignore")})===!0){const t=u()?.isAdmin?"admin":"user";window.location.href=m(`/settings/${t}/externalstorages`)}return null}return window.OCP.Files.Router.goToRoute(null,{view:"files"},{dir:e[0].path}),null},order:-1e3,default:x.HIDDEN}),z=S("files_external","allowUserMounting",!1),G=V();G.register(new M({id:"extstoragemounts",name:s("files_external","External storage"),caption:s("files_external","List of external storage."),emptyCaption:z?s("files_external","There is no external storage configured. You can configure them in your Personal settings."):s("files_external","There is no external storage configured and you don't have the permission to configure them."),emptyTitle:s("files_external","No external storage"),icon:O,order:30,columns:[new w({id:"storage-type",title:s("files_external","Storage type"),render(e){const t=e.attributes?.backend||s("files_external","Unknown"),n=document.createElement("span");return n.textContent=t,n}}),new w({id:"scope",title:s("files_external","Scope"),render(e){const t=document.createElement("span");let n=s("files_external","Personal");return e.attributes?.scope==="system"&&(n=s("files_external","System")),t.textContent=n,t}})],getContents:j})),c($),c(W),c(Y); //# sourceMappingURL=files_external-init.mjs.map diff --git a/dist/files_external-init.mjs.map b/dist/files_external-init.mjs.map index 34da59caf67f0..631aee3895615 100644 --- a/dist/files_external-init.mjs.map +++ b/dist/files_external-init.mjs.map @@ -1 +1 @@ -{"version":3,"mappings":"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","names":["FolderNetworkSvg","LoginSvg","isMissingAuthConfig","config","StorageStatus","isNodeExternalStorage","node","FileType","attributes","addPasswordConfirmationInterceptors","axios","setCredentials","login","password","generateUrl","PwdConfirmationMode","showError","t","showSuccess","emit","ACTION_CREDENTIALS_EXTERNAL_STORAGE","action","FileAction","nodes","spawnDialog","defineAsyncComponent","error","DefaultType","AlertSvg","rootPath","getCurrentUser","entryToFolder","ocsEntry","path","Folder","generateRemoteUrl","Permission","getContents","contents","generateOcsUrl","getStatus","id","global","type","span","data","showWarning","isWarning","overlay","view","showConfirmation","scope","allowUserMounting","loadState","Navigation","getNavigation","View","Column","backend","registerFileAction","enterCredentialsAction","inlineStorageCheckAction","openInFilesAction"],"ignoreList":[0,1,5],"sources":["../node_modules/@mdi/svg/svg/folder-network-outline.svg?raw","../node_modules/@mdi/svg/svg/login.svg?raw","../build/frontend/apps/files_external/src/utils/credentialsUtils.ts","../build/frontend/apps/files_external/src/utils/externalStorageUtils.ts","../build/frontend/apps/files_external/src/actions/enterCredentialsAction.ts","../node_modules/@mdi/svg/svg/alert-circle.svg?raw","../build/frontend/apps/files_external/src/services/externalStorage.ts","../build/frontend/apps/files_external/src/actions/inlineStorageCheckAction.ts","../build/frontend/apps/files_external/src/actions/openInFilesAction.ts","../build/frontend/apps/files_external/src/init-files.ts"],"sourcesContent":["export default \"\"","export default \"\"","/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { IStorage } from '../types.ts'\n\nimport { StorageStatus } from '../types.ts'\n\n/**\n * Check if the given storage configuration is missing authentication configuration\n *\n * @param config - The storage configuration to check\n */\nexport function isMissingAuthConfig(config: IStorage) {\n\t// If we don't know the status, assume it is ok\n\tif (config.status === undefined || config.status === StorageStatus.Success) {\n\t\treturn false\n\t}\n\n\treturn config.userProvided || config.authMechanism === 'password::global::user'\n}\n","/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { INode } from '@nextcloud/files'\nimport type { MountEntry } from '../services/externalStorage.ts'\n\nimport { FileType } from '@nextcloud/files'\n\n/**\n * Check if the given node represents an external storage mount\n *\n * @param node - The node to check\n */\nexport function isNodeExternalStorage(node: INode) {\n\t// Not a folder, not a storage\n\tif (node.type === FileType.File) {\n\t\treturn false\n\t}\n\n\t// No backend or scope, not a storage\n\tconst attributes = node.attributes as MountEntry\n\tif (!attributes.scope || !attributes.backend) {\n\t\treturn false\n\t}\n\n\t// Specific markers that we're sure are ext storage only\n\treturn attributes.scope === 'personal' || attributes.scope === 'system'\n}\n","/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { AxiosResponse } from '@nextcloud/axios'\nimport type { INode } from '@nextcloud/files'\nimport type { IStorage } from '../types.ts'\n\nimport LoginSvg from '@mdi/svg/svg/login.svg?raw'\nimport axios from '@nextcloud/axios'\nimport { showError, showSuccess } from '@nextcloud/dialogs'\nimport { emit } from '@nextcloud/event-bus'\nimport { DefaultType, FileAction } from '@nextcloud/files'\nimport { t } from '@nextcloud/l10n'\nimport { addPasswordConfirmationInterceptors, PwdConfirmationMode } from '@nextcloud/password-confirmation'\nimport { generateUrl } from '@nextcloud/router'\nimport { spawnDialog } from '@nextcloud/vue/functions/dialog'\nimport { defineAsyncComponent } from 'vue'\nimport { StorageStatus } from '../types.ts'\nimport { isMissingAuthConfig } from '../utils/credentialsUtils.ts'\nimport { isNodeExternalStorage } from '../utils/externalStorageUtils.ts'\n\n// Add password confirmation interceptors as\n// the backend requires the user to confirm their password\naddPasswordConfirmationInterceptors(axios)\n\n/**\n * Set credentials for external storage\n *\n * @param node The node for which to set the credentials\n * @param login The username\n * @param password The password\n */\nasync function setCredentials(node: INode, login: string, password: string): Promise {\n\tconst configResponse = await axios.request({\n\t\tmethod: 'PUT',\n\t\turl: generateUrl('apps/files_external/userglobalstorages/{id}', { id: node.attributes.id }),\n\t\tconfirmPassword: PwdConfirmationMode.Strict,\n\t\tdata: {\n\t\t\tbackendOptions: { user: login, password },\n\t\t},\n\t}) as AxiosResponse\n\n\tconst config = configResponse.data\n\tif (config.status !== StorageStatus.Success) {\n\t\tshowError(t('files_external', 'Unable to update this external storage config. {statusMessage}', {\n\t\t\tstatusMessage: config?.statusMessage || '',\n\t\t}))\n\t\treturn null\n\t}\n\n\t// Success update config attribute\n\tshowSuccess(t('files_external', 'New configuration successfully saved'))\n\tnode.attributes.config = config\n\temit('files:node:updated', node)\n\n\treturn true\n}\n\nexport const ACTION_CREDENTIALS_EXTERNAL_STORAGE = 'credentials-external-storage'\n\nexport const action = new FileAction({\n\tid: ACTION_CREDENTIALS_EXTERNAL_STORAGE,\n\tdisplayName: () => t('files', 'Enter missing credentials'),\n\ticonSvgInline: () => LoginSvg,\n\n\tenabled: ({ nodes }) => {\n\t\t// Only works on single node\n\t\tif (nodes.length !== 1 || !nodes[0]) {\n\t\t\treturn false\n\t\t}\n\n\t\tconst node = nodes[0]\n\t\tif (!isNodeExternalStorage(node)) {\n\t\t\treturn false\n\t\t}\n\n\t\tconst config = (node.attributes?.config || {}) as IStorage\n\t\tif (isMissingAuthConfig(config)) {\n\t\t\treturn true\n\t\t}\n\n\t\treturn false\n\t},\n\n\tasync exec({ nodes }) {\n\t\tconst { login, password } = await spawnDialog(defineAsyncComponent(() => import('../views/CredentialsDialog.vue'))) ?? {}\n\t\tif (login && password) {\n\t\t\ttry {\n\t\t\t\tawait setCredentials(nodes[0]!, login, password)\n\t\t\t\tshowSuccess(t('files_external', 'Credentials successfully set'))\n\t\t\t} catch (error) {\n\t\t\t\tshowError(t('files_external', 'Error while setting credentials: {error}', {\n\t\t\t\t\terror: (error as Error).message,\n\t\t\t\t}))\n\t\t\t}\n\t\t}\n\n\t\treturn null\n\t},\n\n\t// Before openFolderAction\n\torder: -1000,\n\tdefault: DefaultType.DEFAULT,\n\tinline: () => true,\n})\n","export default \"\"","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { AxiosResponse } from '@nextcloud/axios'\nimport type { ContentsWithRoot } from '@nextcloud/files'\nimport type { OCSResponse } from '@nextcloud/typings/ocs'\nimport type { IStorage } from '../types.ts'\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport axios from '@nextcloud/axios'\nimport { Folder, Permission } from '@nextcloud/files'\nimport { generateOcsUrl, generateRemoteUrl, generateUrl } from '@nextcloud/router'\nimport { StorageStatus } from '../types.ts'\n\nexport const rootPath = `/files/${getCurrentUser()?.uid}`\n\n/**\n * https://github.com/nextcloud/server/blob/ac2bc2384efe3c15ff987b87a7432bc60d545c67/apps/files_external/lib/Controller/ApiController.php#L71-L97\n */\nexport type MountEntry = {\n\tname: string\n\tpath: string\n\ttype: 'dir'\n\tbackend: 'SFTP'\n\tscope: 'system' | 'personal'\n\tpermissions: number\n\tid: number\n\tclass: string\n\tconfig: IStorage\n}\n\n/**\n * Convert an OCS api result (mount entry) to a Folder instance\n *\n * @param ocsEntry - The OCS mount entry\n */\nfunction entryToFolder(ocsEntry: MountEntry): Folder {\n\tconst path = (ocsEntry.path + '/' + ocsEntry.name).replace(/^\\//gm, '')\n\treturn new Folder({\n\t\tid: ocsEntry.id,\n\t\tsource: generateRemoteUrl('dav' + rootPath + '/' + path),\n\t\troot: rootPath,\n\t\towner: getCurrentUser()?.uid || null,\n\t\tpermissions: ocsEntry.config.status !== StorageStatus.Success\n\t\t\t? Permission.NONE\n\t\t\t: ocsEntry?.permissions || Permission.READ,\n\t\tattributes: {\n\t\t\tdisplayName: path,\n\t\t\t...ocsEntry,\n\t\t},\n\t})\n}\n\n/**\n * Fetch the contents of external storage mounts\n */\nexport async function getContents(): Promise {\n\tconst response = await axios.get(generateOcsUrl('apps/files_external/api/v1/mounts')) as AxiosResponse>\n\tconst contents = response.data.ocs.data.map(entryToFolder)\n\n\treturn {\n\t\tfolder: new Folder({\n\t\t\tid: 0,\n\t\t\tsource: generateRemoteUrl('dav' + rootPath),\n\t\t\troot: rootPath,\n\t\t\towner: getCurrentUser()?.uid || null,\n\t\t\tpermissions: Permission.READ,\n\t\t}),\n\t\tcontents,\n\t}\n}\n\n/**\n * Get the status of an external storage mount\n *\n * @param id - The storage ID\n * @param global - Whether the storage is global or user specific\n */\nexport function getStatus(id: number, global = true) {\n\tconst type = global ? 'userglobalstorages' : 'userstorages'\n\treturn axios.get(generateUrl(`apps/files_external/${type}/${id}?testOnly=false`)) as Promise>\n}\n","/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { AxiosError } from '@nextcloud/axios'\nimport type { IStorage } from '../types.ts'\n\nimport AlertSvg from '@mdi/svg/svg/alert-circle.svg?raw'\nimport { showWarning } from '@nextcloud/dialogs'\nimport { emit } from '@nextcloud/event-bus'\nimport { FileAction } from '@nextcloud/files'\nimport { t } from '@nextcloud/l10n'\nimport { getStatus } from '../services/externalStorage.ts'\nimport { StorageStatus } from '../types.ts'\nimport { isMissingAuthConfig } from '../utils/credentialsUtils.ts'\nimport { isNodeExternalStorage } from '../utils/externalStorageUtils.ts'\n\nimport '../css/fileEntryStatus.scss'\n\nexport const action = new FileAction({\n\tid: 'check-external-storage',\n\tdisplayName: () => '',\n\ticonSvgInline: () => '',\n\n\tenabled: ({ nodes }) => {\n\t\treturn nodes.every((node) => isNodeExternalStorage(node) === true)\n\t},\n\texec: async () => null,\n\n\t/**\n\t * Use this function to check the storage availability\n\t * We then update the node attributes directly.\n\t *\n\t * @param context - The action context\n\t * @param context.nodes - The node to render inline\n\t */\n\tasync renderInline({ nodes }) {\n\t\tif (nodes.length !== 1 || !nodes[0]) {\n\t\t\treturn null\n\t\t}\n\n\t\tconst node = nodes[0]\n\t\tconst span = document.createElement('span')\n\t\tspan.className = 'files-list__row-status'\n\t\tspan.innerHTML = t('files_external', 'Checking storage …')\n\n\t\tlet config: IStorage | undefined\n\t\ttry {\n\t\t\tconst { data } = await getStatus(node.attributes.id, node.attributes.scope === 'system')\n\t\t\tconfig = data\n\t\t\tnode.attributes.config = config\n\t\t\temit('files:node:updated', node)\n\n\t\t\tif (config.status !== StorageStatus.Success) {\n\t\t\t\tthrow new Error(config?.statusMessage || t('files_external', 'There was an error with this external storage.'))\n\t\t\t}\n\n\t\t\tspan.remove()\n\t\t} catch (error) {\n\t\t\t// If axios failed or if something else prevented\n\t\t\t// us from getting the config\n\t\t\tif ((error as AxiosError).response && !config) {\n\t\t\t\tshowWarning(t('files_external', 'We were unable to check the external storage {basename}', {\n\t\t\t\t\tbasename: node.basename,\n\t\t\t\t}))\n\t\t\t}\n\n\t\t\t// Reset inline status\n\t\t\tspan.innerHTML = ''\n\n\t\t\t// Checking if we really have an error\n\t\t\tconst isWarning = !config ? false : isMissingAuthConfig(config)\n\t\t\tconst overlay = document.createElement('span')\n\t\t\toverlay.classList.add(`files-list__row-status--${isWarning ? 'warning' : 'error'}`)\n\n\t\t\t// Only show an icon for errors, warning like missing credentials\n\t\t\t// have a dedicated inline action button\n\t\t\tif (!isWarning) {\n\t\t\t\tspan.innerHTML = AlertSvg\n\t\t\t\tspan.title = (error as Error).message\n\t\t\t}\n\n\t\t\tspan.prepend(overlay)\n\t\t}\n\n\t\treturn span\n\t},\n\n\torder: 10,\n})\n","/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { IStorage } from '../types.ts'\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { showConfirmation } from '@nextcloud/dialogs'\nimport { DefaultType, FileAction } from '@nextcloud/files'\nimport { t } from '@nextcloud/l10n'\nimport { generateUrl } from '@nextcloud/router'\nimport { StorageStatus } from '../types.ts'\n\nexport const action = new FileAction({\n\tid: 'open-in-files-external-storage',\n\tdisplayName: ({ nodes }) => {\n\t\tconst config = nodes?.[0]?.attributes?.config as IStorage || { status: StorageStatus.Indeterminate }\n\t\tif (config.status !== StorageStatus.Success) {\n\t\t\treturn t('files_external', 'Examine this faulty external storage configuration')\n\t\t}\n\t\treturn t('files', 'Open in Files')\n\t},\n\ticonSvgInline: () => '',\n\n\tenabled: ({ view }) => view.id === 'extstoragemounts',\n\n\tasync exec({ nodes }) {\n\t\tconst config = nodes[0]?.attributes?.config as IStorage\n\t\tif (config?.status !== StorageStatus.Success) {\n\t\t\tconst redirect = await showConfirmation({\n\t\t\t\tname: t('files_external', 'External mount error'),\n\t\t\t\ttext: t('files_external', 'There was an error with this external storage. Do you want to review this mount point config in the settings page?'),\n\t\t\t\tlabelConfirm: t('files_external', 'Open settings'),\n\t\t\t\tlabelReject: t('files_external', 'Ignore'),\n\t\t\t})\n\t\t\tif (redirect === true) {\n\t\t\t\tconst scope = getCurrentUser()?.isAdmin ? 'admin' : 'user'\n\t\t\t\twindow.location.href = generateUrl(`/settings/${scope}/externalstorages`)\n\t\t\t}\n\t\t\treturn null\n\t\t}\n\n\t\t// Do not use fileid as we don't have that information\n\t\t// from the external storage api\n\t\twindow.OCP.Files.Router.goToRoute(\n\t\t\tnull, // use default route\n\t\t\t{ view: 'files' },\n\t\t\t{ dir: nodes[0].path },\n\t\t)\n\t\treturn null\n\t},\n\n\t// Before openFolderAction\n\torder: -1000,\n\tdefault: DefaultType.HIDDEN,\n})\n","/*\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport FolderNetworkSvg from '@mdi/svg/svg/folder-network-outline.svg?raw'\nimport { Column, getNavigation, registerFileAction, View } from '@nextcloud/files'\nimport { loadState } from '@nextcloud/initial-state'\nimport { translate as t } from '@nextcloud/l10n'\nimport { action as enterCredentialsAction } from './actions/enterCredentialsAction.ts'\nimport { action as inlineStorageCheckAction } from './actions/inlineStorageCheckAction.ts'\nimport { action as openInFilesAction } from './actions/openInFilesAction.ts'\nimport { getContents } from './services/externalStorage.ts'\n\nconst allowUserMounting = loadState('files_external', 'allowUserMounting', false)\n\n// Register view\nconst Navigation = getNavigation()\nNavigation.register(new View({\n\tid: 'extstoragemounts',\n\tname: t('files_external', 'External storage'),\n\tcaption: t('files_external', 'List of external storage.'),\n\n\temptyCaption: allowUserMounting\n\t\t? t('files_external', 'There is no external storage configured. You can configure them in your Personal settings.')\n\t\t: t('files_external', 'There is no external storage configured and you don\\'t have the permission to configure them.'),\n\temptyTitle: t('files_external', 'No external storage'),\n\n\ticon: FolderNetworkSvg,\n\torder: 30,\n\n\tcolumns: [\n\t\tnew Column({\n\t\t\tid: 'storage-type',\n\t\t\ttitle: t('files_external', 'Storage type'),\n\t\t\trender(node) {\n\t\t\t\tconst backend = node.attributes?.backend || t('files_external', 'Unknown')\n\t\t\t\tconst span = document.createElement('span')\n\t\t\t\tspan.textContent = backend\n\t\t\t\treturn span\n\t\t\t},\n\t\t}),\n\t\tnew Column({\n\t\t\tid: 'scope',\n\t\t\ttitle: t('files_external', 'Scope'),\n\t\t\trender(node) {\n\t\t\t\tconst span = document.createElement('span')\n\t\t\t\tlet scope = t('files_external', 'Personal')\n\t\t\t\tif (node.attributes?.scope === 'system') {\n\t\t\t\t\tscope = t('files_external', 'System')\n\t\t\t\t}\n\t\t\t\tspan.textContent = scope\n\t\t\t\treturn span\n\t\t\t},\n\t\t}),\n\t],\n\n\tgetContents,\n}))\n\n// Register actions\nregisterFileAction(enterCredentialsAction)\nregisterFileAction(inlineStorageCheckAction)\nregisterFileAction(openInFilesAction)\n"],"file":"files_external-init.mjs"} \ No newline at end of file +{"version":3,"mappings":"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","names":["FolderNetworkSvg","LoginSvg","isMissingAuthConfig","config","StorageStatus","isNodeExternalStorage","node","FileType","attributes","addPasswordConfirmationInterceptors","axios","setCredentials","login","password","generateUrl","PwdConfirmationMode","showError","t","showSuccess","emit","ACTION_CREDENTIALS_EXTERNAL_STORAGE","action","FileAction","nodes","spawnDialog","defineAsyncComponent","error","DefaultType","AlertSvg","rootPath","getCurrentUser","entryToFolder","ocsEntry","path","Folder","generateRemoteUrl","Permission","getContents","contents","generateOcsUrl","getStatus","id","global","type","span","data","showWarning","isWarning","overlay","view","showConfirmation","scope","allowUserMounting","loadState","Navigation","getNavigation","View","Column","backend","registerFileAction","enterCredentialsAction","inlineStorageCheckAction","openInFilesAction"],"ignoreList":[0,1,5],"sources":["../node_modules/@mdi/svg/svg/folder-network-outline.svg?raw","../node_modules/@mdi/svg/svg/login.svg?raw","../build/frontend/apps/files_external/src/utils/credentialsUtils.ts","../build/frontend/apps/files_external/src/utils/externalStorageUtils.ts","../build/frontend/apps/files_external/src/actions/enterCredentialsAction.ts","../node_modules/@mdi/svg/svg/alert-circle.svg?raw","../build/frontend/apps/files_external/src/services/externalStorage.ts","../build/frontend/apps/files_external/src/actions/inlineStorageCheckAction.ts","../build/frontend/apps/files_external/src/actions/openInFilesAction.ts","../build/frontend/apps/files_external/src/init-files.ts"],"sourcesContent":["export default \"\"","export default \"\"","/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { IStorage } from '../types.ts'\n\nimport { StorageStatus } from '../types.ts'\n\n/**\n * Check if the given storage configuration is missing authentication configuration\n *\n * @param config - The storage configuration to check\n */\nexport function isMissingAuthConfig(config: IStorage) {\n\t// If we don't know the status, assume it is ok\n\tif (config.status === undefined || config.status === StorageStatus.Success) {\n\t\treturn false\n\t}\n\n\treturn config.userProvided || config.authMechanism === 'password::global::user'\n}\n","/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { INode } from '@nextcloud/files'\nimport type { MountEntry } from '../services/externalStorage.ts'\n\nimport { FileType } from '@nextcloud/files'\n\n/**\n * Check if the given node represents an external storage mount\n *\n * @param node - The node to check\n */\nexport function isNodeExternalStorage(node: INode) {\n\t// Not a folder, not a storage\n\tif (node.type === FileType.File) {\n\t\treturn false\n\t}\n\n\t// No backend or scope, not a storage\n\tconst attributes = node.attributes as MountEntry\n\tif (!attributes.scope || !attributes.backend) {\n\t\treturn false\n\t}\n\n\t// Specific markers that we're sure are ext storage only\n\treturn attributes.scope === 'personal' || attributes.scope === 'system'\n}\n","/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { AxiosResponse } from '@nextcloud/axios'\nimport type { INode } from '@nextcloud/files'\nimport type { IStorage } from '../types.ts'\n\nimport LoginSvg from '@mdi/svg/svg/login.svg?raw'\nimport axios from '@nextcloud/axios'\nimport { showError, showSuccess } from '@nextcloud/dialogs'\nimport { emit } from '@nextcloud/event-bus'\nimport { DefaultType, FileAction } from '@nextcloud/files'\nimport { t } from '@nextcloud/l10n'\nimport { addPasswordConfirmationInterceptors, PwdConfirmationMode } from '@nextcloud/password-confirmation'\nimport { generateUrl } from '@nextcloud/router'\nimport { spawnDialog } from '@nextcloud/vue/functions/dialog'\nimport { defineAsyncComponent } from 'vue'\nimport { StorageStatus } from '../types.ts'\nimport { isMissingAuthConfig } from '../utils/credentialsUtils.ts'\nimport { isNodeExternalStorage } from '../utils/externalStorageUtils.ts'\n\n// Add password confirmation interceptors as\n// the backend requires the user to confirm their password\naddPasswordConfirmationInterceptors(axios)\n\n/**\n * Set credentials for external storage\n *\n * @param node The node for which to set the credentials\n * @param login The username\n * @param password The password\n */\nasync function setCredentials(node: INode, login: string, password: string): Promise {\n\tconst configResponse = await axios.request({\n\t\tmethod: 'PUT',\n\t\turl: generateUrl('apps/files_external/userglobalstorages/{id}', { id: node.attributes.id }),\n\t\tconfirmPassword: PwdConfirmationMode.Strict,\n\t\tdata: {\n\t\t\tbackendOptions: { user: login, password },\n\t\t},\n\t}) as AxiosResponse\n\n\tconst config = configResponse.data\n\tif (config.status !== StorageStatus.Success) {\n\t\tshowError(t('files_external', 'Unable to update this external storage config. {statusMessage}', {\n\t\t\tstatusMessage: config?.statusMessage || '',\n\t\t}))\n\t\treturn null\n\t}\n\n\t// Success update config attribute\n\tshowSuccess(t('files_external', 'New configuration successfully saved'))\n\tnode.attributes.config = config\n\temit('files:node:updated', node)\n\n\treturn true\n}\n\nexport const ACTION_CREDENTIALS_EXTERNAL_STORAGE = 'credentials-external-storage'\n\nexport const action = new FileAction({\n\tid: ACTION_CREDENTIALS_EXTERNAL_STORAGE,\n\tdisplayName: () => t('files', 'Enter missing credentials'),\n\ticonSvgInline: () => LoginSvg,\n\n\tenabled: ({ nodes }) => {\n\t\t// Only works on single node\n\t\tif (nodes.length !== 1 || !nodes[0]) {\n\t\t\treturn false\n\t\t}\n\n\t\tconst node = nodes[0]\n\t\tif (!isNodeExternalStorage(node)) {\n\t\t\treturn false\n\t\t}\n\n\t\tconst config = (node.attributes?.config || {}) as IStorage\n\t\tif (isMissingAuthConfig(config)) {\n\t\t\treturn true\n\t\t}\n\n\t\treturn false\n\t},\n\n\tasync exec({ nodes }) {\n\t\tconst { login, password } = await spawnDialog(defineAsyncComponent(() => import('../views/CredentialsDialog.vue'))) ?? {}\n\t\tif (login && password) {\n\t\t\ttry {\n\t\t\t\tawait setCredentials(nodes[0]!, login, password)\n\t\t\t\tshowSuccess(t('files_external', 'Credentials successfully set'))\n\t\t\t} catch (error) {\n\t\t\t\tshowError(t('files_external', 'Error while setting credentials: {error}', {\n\t\t\t\t\terror: (error as Error).message,\n\t\t\t\t}))\n\t\t\t}\n\t\t}\n\n\t\treturn null\n\t},\n\n\t// Before openFolderAction\n\torder: -1000,\n\tdefault: DefaultType.DEFAULT,\n\tinline: () => true,\n})\n","export default \"\"","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { AxiosResponse } from '@nextcloud/axios'\nimport type { ContentsWithRoot } from '@nextcloud/files'\nimport type { OCSResponse } from '@nextcloud/typings/ocs'\nimport type { IStorage } from '../types.ts'\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport axios from '@nextcloud/axios'\nimport { Folder, Permission } from '@nextcloud/files'\nimport { generateOcsUrl, generateRemoteUrl, generateUrl } from '@nextcloud/router'\nimport { StorageStatus } from '../types.ts'\n\nexport const rootPath = `/files/${getCurrentUser()?.uid}`\n\n/**\n * https://github.com/nextcloud/server/blob/ac2bc2384efe3c15ff987b87a7432bc60d545c67/apps/files_external/lib/Controller/ApiController.php#L71-L97\n */\nexport type MountEntry = {\n\tname: string\n\tpath: string\n\ttype: 'dir'\n\tbackend: 'SFTP'\n\tscope: 'system' | 'personal'\n\tpermissions: number\n\tid: number\n\tclass: string\n\tconfig: IStorage\n}\n\n/**\n * Convert an OCS api result (mount entry) to a Folder instance\n *\n * @param ocsEntry - The OCS mount entry\n */\nfunction entryToFolder(ocsEntry: MountEntry): Folder {\n\tconst path = (ocsEntry.path + '/' + ocsEntry.name).replace(/^\\//gm, '')\n\treturn new Folder({\n\t\tid: ocsEntry.id,\n\t\tsource: generateRemoteUrl('dav' + rootPath + '/' + path),\n\t\troot: rootPath,\n\t\towner: getCurrentUser()?.uid || null,\n\t\tpermissions: ocsEntry.config.status !== StorageStatus.Success\n\t\t\t? Permission.NONE\n\t\t\t: ocsEntry?.permissions || Permission.READ,\n\t\tattributes: {\n\t\t\tdisplayName: path,\n\t\t\t...ocsEntry,\n\t\t},\n\t})\n}\n\n/**\n * Fetch the contents of external storage mounts\n */\nexport async function getContents(): Promise {\n\tconst response = await axios.get(generateOcsUrl('apps/files_external/api/v1/mounts')) as AxiosResponse>\n\tconst contents = response.data.ocs.data.map(entryToFolder)\n\n\treturn {\n\t\tfolder: new Folder({\n\t\t\tid: 0,\n\t\t\tsource: generateRemoteUrl('dav' + rootPath),\n\t\t\troot: rootPath,\n\t\t\towner: getCurrentUser()?.uid || null,\n\t\t\tpermissions: Permission.READ,\n\t\t}),\n\t\tcontents,\n\t}\n}\n\n/**\n * Get the status of an external storage mount\n *\n * @param id - The storage ID\n * @param global - Whether the storage is global or user specific\n */\nexport function getStatus(id: number, global = true) {\n\tconst type = global ? 'userglobalstorages' : 'userstorages'\n\treturn axios.get(generateUrl(`apps/files_external/${type}/${id}?testOnly=false`)) as Promise>\n}\n","/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { AxiosError } from '@nextcloud/axios'\nimport type { IStorage } from '../types.ts'\n\nimport AlertSvg from '@mdi/svg/svg/alert-circle.svg?raw'\nimport { showWarning } from '@nextcloud/dialogs'\nimport { emit } from '@nextcloud/event-bus'\nimport { FileAction } from '@nextcloud/files'\nimport { t } from '@nextcloud/l10n'\nimport { getStatus } from '../services/externalStorage.ts'\nimport { StorageStatus } from '../types.ts'\nimport { isMissingAuthConfig } from '../utils/credentialsUtils.ts'\nimport { isNodeExternalStorage } from '../utils/externalStorageUtils.ts'\n\nimport '../css/fileEntryStatus.scss'\n\nexport const action = new FileAction({\n\tid: 'check-external-storage',\n\tdisplayName: () => '',\n\ticonSvgInline: () => '',\n\n\tenabled: ({ nodes }) => {\n\t\treturn nodes.every((node) => isNodeExternalStorage(node) === true)\n\t},\n\texec: async () => null,\n\n\t/**\n\t * Use this function to check the storage availability\n\t * We then update the node attributes directly.\n\t *\n\t * @param context - The action context\n\t * @param context.nodes - The node to render inline\n\t */\n\tasync renderInline({ nodes }) {\n\t\tif (nodes.length !== 1 || !nodes[0]) {\n\t\t\treturn null\n\t\t}\n\n\t\tconst node = nodes[0]\n\t\tconst span = document.createElement('span')\n\t\tspan.className = 'files-list__row-status'\n\t\tspan.innerHTML = t('files_external', 'Checking storage …')\n\n\t\tlet config: IStorage | undefined\n\t\ttry {\n\t\t\tconst { data } = await getStatus(node.attributes.id, node.attributes.scope === 'system')\n\t\t\tconfig = data\n\t\t\tnode.attributes.config = config\n\t\t\temit('files:node:updated', node)\n\n\t\t\tif (config.status !== StorageStatus.Success) {\n\t\t\t\tthrow new Error(config?.statusMessage || t('files_external', 'There was an error with this external storage.'))\n\t\t\t}\n\n\t\t\tspan.remove()\n\t\t} catch (error) {\n\t\t\t// If axios failed or if something else prevented\n\t\t\t// us from getting the config\n\t\t\tif ((error as AxiosError).response && !config) {\n\t\t\t\tshowWarning(t('files_external', 'We were unable to check the external storage {basename}', {\n\t\t\t\t\tbasename: node.basename,\n\t\t\t\t}))\n\t\t\t}\n\n\t\t\t// Reset inline status\n\t\t\tspan.innerHTML = ''\n\n\t\t\t// Checking if we really have an error\n\t\t\tconst isWarning = !config ? false : isMissingAuthConfig(config)\n\t\t\tconst overlay = document.createElement('span')\n\t\t\toverlay.classList.add(`files-list__row-status--${isWarning ? 'warning' : 'error'}`)\n\n\t\t\t// Only show an icon for errors, warning like missing credentials\n\t\t\t// have a dedicated inline action button\n\t\t\tif (!isWarning) {\n\t\t\t\tspan.innerHTML = AlertSvg\n\t\t\t\tspan.title = (error as Error).message\n\t\t\t}\n\n\t\t\tspan.prepend(overlay)\n\t\t}\n\n\t\treturn span\n\t},\n\n\torder: 10,\n})\n","/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { IStorage } from '../types.ts'\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { showConfirmation } from '@nextcloud/dialogs'\nimport { DefaultType, FileAction } from '@nextcloud/files'\nimport { t } from '@nextcloud/l10n'\nimport { generateUrl } from '@nextcloud/router'\nimport { StorageStatus } from '../types.ts'\n\nexport const action = new FileAction({\n\tid: 'open-in-files-external-storage',\n\tdisplayName: ({ nodes }) => {\n\t\tconst config = nodes?.[0]?.attributes?.config as IStorage || { status: StorageStatus.Indeterminate }\n\t\tif (config.status !== StorageStatus.Success) {\n\t\t\treturn t('files_external', 'Examine this faulty external storage configuration')\n\t\t}\n\t\treturn t('files', 'Open in Files')\n\t},\n\ticonSvgInline: () => '',\n\n\tenabled: ({ view }) => view.id === 'extstoragemounts',\n\n\tasync exec({ nodes }) {\n\t\tconst config = nodes[0]?.attributes?.config as IStorage\n\t\tif (config?.status !== StorageStatus.Success) {\n\t\t\tconst redirect = await showConfirmation({\n\t\t\t\tname: t('files_external', 'External mount error'),\n\t\t\t\ttext: t('files_external', 'There was an error with this external storage. Do you want to review this mount point config in the settings page?'),\n\t\t\t\tlabelConfirm: t('files_external', 'Open settings'),\n\t\t\t\tlabelReject: t('files_external', 'Ignore'),\n\t\t\t})\n\t\t\tif (redirect === true) {\n\t\t\t\tconst scope = getCurrentUser()?.isAdmin ? 'admin' : 'user'\n\t\t\t\twindow.location.href = generateUrl(`/settings/${scope}/externalstorages`)\n\t\t\t}\n\t\t\treturn null\n\t\t}\n\n\t\t// Do not use fileid as we don't have that information\n\t\t// from the external storage api\n\t\twindow.OCP.Files.Router.goToRoute(\n\t\t\tnull, // use default route\n\t\t\t{ view: 'files' },\n\t\t\t{ dir: nodes[0].path },\n\t\t)\n\t\treturn null\n\t},\n\n\t// Before openFolderAction\n\torder: -1000,\n\tdefault: DefaultType.HIDDEN,\n})\n","/*\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport FolderNetworkSvg from '@mdi/svg/svg/folder-network-outline.svg?raw'\nimport { Column, getNavigation, registerFileAction, View } from '@nextcloud/files'\nimport { loadState } from '@nextcloud/initial-state'\nimport { translate as t } from '@nextcloud/l10n'\nimport { action as enterCredentialsAction } from './actions/enterCredentialsAction.ts'\nimport { action as inlineStorageCheckAction } from './actions/inlineStorageCheckAction.ts'\nimport { action as openInFilesAction } from './actions/openInFilesAction.ts'\nimport { getContents } from './services/externalStorage.ts'\n\nconst allowUserMounting = loadState('files_external', 'allowUserMounting', false)\n\n// Register view\nconst Navigation = getNavigation()\nNavigation.register(new View({\n\tid: 'extstoragemounts',\n\tname: t('files_external', 'External storage'),\n\tcaption: t('files_external', 'List of external storage.'),\n\n\temptyCaption: allowUserMounting\n\t\t? t('files_external', 'There is no external storage configured. You can configure them in your Personal settings.')\n\t\t: t('files_external', 'There is no external storage configured and you don\\'t have the permission to configure them.'),\n\temptyTitle: t('files_external', 'No external storage'),\n\n\ticon: FolderNetworkSvg,\n\torder: 30,\n\n\tcolumns: [\n\t\tnew Column({\n\t\t\tid: 'storage-type',\n\t\t\ttitle: t('files_external', 'Storage type'),\n\t\t\trender(node) {\n\t\t\t\tconst backend = node.attributes?.backend || t('files_external', 'Unknown')\n\t\t\t\tconst span = document.createElement('span')\n\t\t\t\tspan.textContent = backend\n\t\t\t\treturn span\n\t\t\t},\n\t\t}),\n\t\tnew Column({\n\t\t\tid: 'scope',\n\t\t\ttitle: t('files_external', 'Scope'),\n\t\t\trender(node) {\n\t\t\t\tconst span = document.createElement('span')\n\t\t\t\tlet scope = t('files_external', 'Personal')\n\t\t\t\tif (node.attributes?.scope === 'system') {\n\t\t\t\t\tscope = t('files_external', 'System')\n\t\t\t\t}\n\t\t\t\tspan.textContent = scope\n\t\t\t\treturn span\n\t\t\t},\n\t\t}),\n\t],\n\n\tgetContents,\n}))\n\n// Register actions\nregisterFileAction(enterCredentialsAction)\nregisterFileAction(inlineStorageCheckAction)\nregisterFileAction(openInFilesAction)\n"],"file":"files_external-init.mjs"} \ No newline at end of file diff --git a/dist/files_external-init_settings.mjs b/dist/files_external-init_settings.mjs index 11520fc0a47a8..df73796ea55b6 100644 --- a/dist/files_external-init_settings.mjs +++ b/dist/files_external-init_settings.mjs @@ -1,2 +1,2 @@ -import{l as s}from"./logger-CrDakPzW.chunk.mjs";import"./index-6_gsQFyp.chunk.mjs";class t{#e=new Map;registerHandler(e){this.#e.has(e.id)&&s.warn(`Auth mechanism handler with id '${e.id}' is already registered`),this.#e.set(e.id,e)}getHandler(e){return this.#e.values().find(i=>i.enabled(e))}}window.OCA.FilesExternal??={},window.OCA.FilesExternal.AuthMechanism=new t; +import{l as s}from"./logger-resIultJ.chunk.mjs";import"./index-Bndk0DrU.chunk.mjs";class t{#e=new Map;registerHandler(e){this.#e.has(e.id)&&s.warn(`Auth mechanism handler with id '${e.id}' is already registered`),this.#e.set(e.id,e)}getHandler(e){return this.#e.values().find(i=>i.enabled(e))}}window.OCA.FilesExternal??={},window.OCA.FilesExternal.AuthMechanism=new t; //# sourceMappingURL=files_external-init_settings.mjs.map diff --git a/dist/files_external-settings.css b/dist/files_external-settings.css index 1e686a1439347..167fd15ccdb1a 100644 --- a/dist/files_external-settings.css +++ b/dist/files_external-settings.css @@ -1,21 +1,24 @@ /* extracted by css-entry-points-plugin */ @import './files_external-files_external-settings-DF-XZBpX.chunk.css'; -@import './mdi-BYHcrfvW.chunk.css'; -@import './NcNoteCard-CVhtNL04-DopLwvn9.chunk.css'; -@import './index-JpgrUA2Z-PxDoi4mB.chunk.css'; +@import './AccountOutline-Bx-uhVVO.chunk.css'; +@import './mdi-Jq77EThs.chunk.css'; +@import './NcModal-MC_HktJd-YC6kxNbR.chunk.css'; +@import './Web-BYHcrfvW.chunk.css'; @import './NcSelect-Czzsi3P_-DxGOLvnt.chunk.css'; @import './index-DoZPzs7J.chunk.css'; @import './ContentCopy-D7mIRwIy.chunk.css'; +@import './index-JpgrUA2Z-CX17yN4T.chunk.css'; @import './NcInputField-Bwsh2aHY-_gyGHRGx.chunk.css'; @import './NcDateTime-DXOHXnuu.chunk.css'; -@import './NcCheckboxRadioSwitch-BCSKF7Tk-BgdwjgMO.chunk.css'; -@import './PencilOutline-Bq_6hmXG.chunk.css'; -@import './NcAvatar-DmUGApWA-B-07Svbi.chunk.css'; -@import './NcRichText-CBMtJzE_-Ctfl9_Xi.chunk.css'; +@import './NcContent-BR_nMwKN-BSxKRQfD.chunk.css'; @import './NcPasswordField-djttkA5Q-2EzJaBaw.chunk.css'; @import './NcBreadcrumbs-DYfGaSjT-CLvNFon0.chunk.css'; +@import './PencilOutline-Bq_6hmXG.chunk.css'; +@import './NcAvatar-DmUGApWA-B-07Svbi.chunk.css'; @import './NcColorPicker-Kc0JqRtp-BOLDG5h-.chunk.css'; @import './NcEmojiPicker-pM4Pg2yq-BHtXoCfG.chunk.css'; +@import './NcCheckboxRadioSwitch-BCSKF7Tk-BgdwjgMO.chunk.css'; +@import './NcRichText-CBMtJzE_-DAm7eJJb.chunk.css'; @import './index-BrN_nqOS.chunk.css'; @import './TrayArrowDown-CMlC-wJV.chunk.css'; @import './NcGuestContent-j8ai4O1K-D0718NyY.chunk.css'; diff --git a/dist/files_external-settings.mjs b/dist/files_external-settings.mjs index 86cc8ae6c4257..a553522974af5 100644 --- a/dist/files_external-settings.mjs +++ b/dist/files_external-settings.mjs @@ -1,2 +1,2 @@ -import{d as he,c as xe}from"./pinia-CRsofGP7.chunk.mjs";import{I as we,x as C,a1 as K,a5 as Z,b as $,q as B,r as M,c as V,o as u,u as e,p as L,s as Q,j as h,l as T,n as x,k as y,t as v,F as S,N as Ve,C as q,E as z,G as W,a0 as ne,e as b,w,g as k,U as I,H as ke,h as Se}from"./runtime-dom.esm-bundler-BrYCUcZF.chunk.mjs";import{N as ue,l as Ce,n as Me,o as Ae,p as Ue,f as $e,q as Te,e as qe}from"./mdi-D55n0uzy.chunk.mjs";import{a as E,l as A}from"./index-xFugdZPW.chunk.mjs";import{t as n,b as Ee}from"./translation-DoG5ZELJ-gw0g4US-.chunk.mjs";import{c as P,a as F,N as oe}from"./NcNoteCard-CVhtNL04-hwuc093N.chunk.mjs";import"./index-BZk0T9Q-.chunk.mjs";import{N as de}from"./ContentCopy-DVkZwwZt.chunk.mjs";import{l as Oe,N as Pe,b as Ne,e as X,a as ee}from"./index-JpgrUA2Z-BFiKKJ1W.chunk.mjs";import{N as ae}from"./NcSelect-Czzsi3P_-DLFUGW7z.chunk.mjs";import{_ as ce}from"./TrashCanOutline-CvWRJ8GE.chunk.mjs";import{c as U}from"./index-BfylblLb.chunk.mjs";import{g as R}from"./createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs";import{N as Re,a as Fe}from"./index-DZnagzmP.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-CAvY10OW.chunk.mjs";import"./NcBreadcrumbs-DYfGaSjT-DHeGymVL.chunk.mjs";import"./NcAvatar-DmUGApWA-DBHt6M62.chunk.mjs";import"./NcRichText-CBMtJzE_-bvZFA37H.chunk.mjs";import"./index-6_gsQFyp.chunk.mjs";import{N}from"./NcCheckboxRadioSwitch-BCSKF7Tk-yPckcGKs.chunk.mjs";import"./NcColorPicker-Kc0JqRtp-VtydDeG1.chunk.mjs";import"./TrayArrowDown-DV7s2Yis.chunk.mjs";import"./NcEmojiPicker-pM4Pg2yq-C_Dpe77I.chunk.mjs";/* empty css */import"./NcInputField-Bwsh2aHY-CHbAfY0u.chunk.mjs";import{N as Be}from"./NcPasswordField-djttkA5Q-2g87vOpY.chunk.mjs";import{N as je}from"./NcUserBubble-DPAmU2_J-BCvWAzcB.chunk.mjs";import"./PencilOutline-DCq8EKwg.chunk.mjs";import"./colors-Go3zmZRD-DU6ImAGi.chunk.mjs";import{_ as _e}from"./AuthMechanismRsa-e40gyg0q.chunk.mjs";import{C as H,a as me,M as j,S as D,b as De,c as He}from"./types-BoPN4zt3.chunk.mjs";import{a as pe,P as G}from"./index-cDQt1Drw.chunk.mjs";import{l as fe}from"./logger-CrDakPzW.chunk.mjs";import"./string_decoder-BO00msnV.chunk.mjs";const Ge='',Y=we(new Map);function ge(s){const a=C(()=>K(s).map(l=>({id:`user:${l}`,user:l,displayName:Y.get(l)||l})));return Z(async()=>{const l=K(s).filter(r=>!Y.has(r));if(l.length>0){const{data:r}=await U.post(R("/displaynames"),{users:l});for(const[c,_]of Object.entries(r.users))Y.set(c,_)}}),a}function Ie(s){return C(()=>K(s).map(ve))}function ve(s){return{id:s,isNoUser:!0,displayName:s,iconSvg:Ge}}const Qe=$({__name:"ApplicableEntities",props:{groups:{default:()=>[]},groupsModifiers:{},users:{default:()=>[]},usersModifiers:{}},emits:["update:groups","update:users"],setup(s){const a=B(s,"groups"),l=B(s,"users"),r=M([]),c=ge(l),_=Ie(a),o=C({get(){return[..._.value,...c.value]},set(p){l.value=p.filter(d=>d.user).map(d=>d.user),a.value=p.filter(d=>d.isNoUser).map(d=>d.id)}}),i=Oe(t,500);async function t(p){const{data:d}=await U.get(R("apps/files_external/ajax/applicable"),{params:{pattern:p,limit:20}}),m=[...r.value.map(f=>[f.id,f]),...Object.entries(d.groups).map(([f,g])=>[f,{...ve(f),displayName:g}]),...Object.entries(d.users).map(([f,g])=>[`user:${f}`,{id:`user:${f}`,user:f,displayName:g}])];r.value=[...new Map(m).values()]}return(p,d)=>(u(),V(e(Re),{modelValue:o.value,"onUpdate:modelValue":d[0]||(d[0]=m=>o.value=m),"keep-open":"",multiple:"",options:r.value,"input-label":e(n)("files_external","Restrict to"),onSearch:e(i)},null,8,["modelValue","options","input-label","onSearch"]))}}),Le=$({__name:"AuthMechanismConfiguration",props:L({authMechanism:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(s){const a=B(s,"modelValue"),l=s,r=C(()=>{if(!l.authMechanism.configuration)return;const t=Object.entries(l.authMechanism.configuration).filter(([,p])=>!(p.flags&H.UserProvided));return Object.fromEntries(t)}),c=C(()=>window.OCA.FilesExternal.AuthMechanism.getHandler(l.authMechanism)),_=C(()=>{if(!r.value)return!1;for(const t of Object.values(r.value))if(!(t.flags&H.Hidden||t.flags&H.UserProvided))return!0;return!1}),o=M(!1);Z(async()=>{c.value&&(o.value=!0,await window.customElements.whenDefined(c.value.tagName),o.value=!1)}),Q(r,()=>{for(const t in r.value)t in a.value||(a.value[t]=r.value[t]?.type===me.Boolean?!1:"")});function i(t){const p=[t.detail].flat()[0];a.value={...a.value,...p}}return(t,p)=>_.value?(u(),h("fieldset",{key:0,class:x(t.$style.authMechanismConfiguration)},[y("legend",null,v(e(n)("files_external","Authentication")),1),c.value?(u(),h(S,{key:0},[o.value?(u(),V(e(ue),{key:0})):(u(),V(Ve(c.value.tagName),{key:1,".modelValue":a.value,".authMechanism":s.authMechanism,"onUpdate:modelValue":i},null,40,[".modelValue",".authMechanism"]))],64)):(u(!0),h(S,{key:1},q(r.value,(d,m)=>z((u(),V(_e,{key:d.value,modelValue:a.value[m],"onUpdate:modelValue":f=>a.value[m]=f,"config-key":m,"config-option":d},null,8,["modelValue","onUpdate:modelValue","config-key","config-option"])),[[W,!(d.flags&e(H).Hidden)]])),128))],2)):T("",!0)}}),Ze="_authMechanismConfiguration_kpcpy_2",ze={authMechanismConfiguration:Ze},We={$style:ze},Ye=E(Le,[["__cssModules",We]]),Je=$({__name:"BackendConfiguration",props:L({configuration:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(s){const a=B(s,"modelValue"),l=s;return Q(()=>l.configuration,()=>{for(const r in l.configuration)r in a.value||(a.value[r]=l.configuration[r]?.type===me.Boolean?!1:"")}),(r,c)=>(u(),h("fieldset",{class:x(r.$style.backendConfiguration)},[y("legend",null,v(e(n)("files_external","Storage configuration")),1),(u(!0),h(S,null,q(s.configuration,(_,o)=>z((u(),V(_e,{key:_.value,modelValue:a.value[o],"onUpdate:modelValue":i=>a.value[o]=i,"config-key":o,"config-option":_},null,8,["modelValue","onUpdate:modelValue","config-key","config-option"])),[[W,!(_.flags&e(H).Hidden)]])),128))],2))}}),Ke="_backendConfiguration_1sf6y_2",Xe={backendConfiguration:Ke},ea={$style:Xe},aa=E(Je,[["__cssModules",ea]]),la=["id","aria-labelledby"],ta=$({__name:"MountOptions",props:{modelValue:{required:!0},modelModifiers:{}},emits:["update:modelValue"],setup(s){const a=B(s,"modelValue");Z(()=>{Object.keys(a.value).length===0&&(a.value.encrypt=!0,a.value.previews=!0,a.value.enable_sharing=!1,a.value.filesystem_check_changes=j.OncePerRequest,a.value.encoding_compatibility=!1,a.value.readonly=!1)});const{hasEncryption:l}=A("files_external","settings"),r=ne(),c=ne(),_=M(!1),o=[{label:n("files_external","Never"),value:j.Never},{label:n("files_external","Once every direct access"),value:j.OncePerRequest},{label:n("files_external","Always"),value:j.Always}],i=C({get(){return o.find(t=>t.value===a.value.filesystem_check_changes)},set(t){a.value.filesystem_check_changes=t?.value??j.OncePerRequest}});return(t,p)=>(u(),h("div",{class:x(t.$style.mountOptions)},[b(e(P),{id:e(r),"aria-controls":e(c),"aria-expanded":_.value,variant:"tertiary-no-background",onClick:p[0]||(p[0]=d=>_.value=!_.value)},{icon:w(()=>[b(e(F),{directional:"",path:_.value?e(Ce):e(Me)},null,8,["path"])]),default:w(()=>[k(" "+v(e(n)("files_external","Mount options")),1)]),_:1},8,["id","aria-controls","aria-expanded"]),z(y("fieldset",{id:e(c),class:x(t.$style.mountOptions__fieldset),"aria-labelledby":e(r)},[b(e(ae),{modelValue:i.value,"onUpdate:modelValue":p[1]||(p[1]=d=>i.value=d),"input-label":e(n)("files_external","Check filesystem changes"),options:o},null,8,["modelValue","input-label"]),b(e(N),{modelValue:s.modelValue.readonly,"onUpdate:modelValue":p[2]||(p[2]=d=>s.modelValue.readonly=d),type:"switch"},{default:w(()=>[k(v(e(n)("files_external","Read only")),1)]),_:1},8,["modelValue"]),b(e(N),{modelValue:s.modelValue.previews,"onUpdate:modelValue":p[3]||(p[3]=d=>s.modelValue.previews=d),type:"switch"},{default:w(()=>[k(v(e(n)("files_external","Enable previews")),1)]),_:1},8,["modelValue"]),b(e(N),{modelValue:s.modelValue.enable_sharing,"onUpdate:modelValue":p[4]||(p[4]=d=>s.modelValue.enable_sharing=d),type:"switch"},{default:w(()=>[k(v(e(n)("files_external","Enable sharing")),1)]),_:1},8,["modelValue"]),e(l)?(u(),V(e(N),{key:0,modelValue:s.modelValue.encrypt,"onUpdate:modelValue":p[5]||(p[5]=d=>s.modelValue.encrypt=d),type:"switch"},{default:w(()=>[k(v(e(n)("files_external","Enable encryption")),1)]),_:1},8,["modelValue"])):T("",!0),b(e(N),{modelValue:s.modelValue.encoding_compatibility,"onUpdate:modelValue":p[6]||(p[6]=d=>s.modelValue.encoding_compatibility=d),type:"switch"},{default:w(()=>[k(v(e(n)("files_external","Compatibility with Mac NFD encoding (slow)")),1)]),_:1},8,["modelValue"])],10,la),[[W,_.value]])],2))}}),sa="_mountOptions_1fqyb_2",na="_mountOptions__fieldset_1fqyb_12",oa={mountOptions:sa,mountOptions__fieldset:na},ia={$style:oa},ra=E(ta,[["__cssModules",ia]]),{isAdmin:ie}=A("files_external","settings"),ua=A("files_external","allowedBackends"),re=A("files_external","backends").filter(s=>ua.includes(s.identifier)),da=A("files_external","authMechanisms"),ca=$({__name:"AddExternalStorageDialog",props:L({storage:{default:()=>({backendOptions:{},mountOptions:{},type:ie?"system":"personal"})}},{open:{type:Boolean,default:!0},openModifiers:{}}),emits:L(["close"],["update:open"]),setup(s){const a=B(s,"open"),l=M(structuredClone(I(s.storage)));Z(()=>{a.value&&(l.value=structuredClone(I(s.storage)))});const r=C({get(){return re.find(o=>o.identifier===l.value.backend)},set(o){l.value.backend=o?.identifier}}),c=C(()=>da.filter(({scheme:o})=>r.value?.authSchemes[o])),_=C({get(){return c.value.find(o=>o.identifier===l.value.authMechanism)},set(o){l.value.authMechanism=o?.identifier}});return Q(c,()=>{c.value.length===1&&(l.value.authMechanism=c.value[0].identifier)}),(o,i)=>(u(),V(e(Pe),{open:a.value,"onUpdate:open":[i[9]||(i[9]=t=>a.value=t),i[11]||(i[11]=t=>t||o.$emit("close"))],"is-form":"","content-classes":o.$style.externalStorageDialog,name:l.value.id?e(n)("files_external","Edit storage"):e(n)("files_external","Add storage"),onSubmit:i[10]||(i[10]=t=>o.$emit("close",l.value))},{actions:w(()=>[s.storage.id?(u(),V(e(P),{key:0,onClick:i[8]||(i[8]=t=>o.$emit("close"))},{default:w(()=>[k(v(e(n)("files_external","Cancel")),1)]),_:1})):T("",!0),b(e(P),{variant:"primary",type:"submit"},{default:w(()=>[k(v(s.storage.id?e(n)("files_external","Edit"):e(n)("files_external","Create")),1)]),_:1})]),default:w(()=>[b(e(ce),{modelValue:l.value.mountPoint,"onUpdate:modelValue":i[0]||(i[0]=t=>l.value.mountPoint=t),label:e(n)("files_external","Folder name"),required:""},null,8,["modelValue","label"]),b(ra,{modelValue:l.value.mountOptions,"onUpdate:modelValue":i[1]||(i[1]=t=>l.value.mountOptions=t)},null,8,["modelValue"]),e(ie)?(u(),V(Qe,{key:0,groups:l.value.applicableGroups,"onUpdate:groups":i[2]||(i[2]=t=>l.value.applicableGroups=t),users:l.value.applicableUsers,"onUpdate:users":i[3]||(i[3]=t=>l.value.applicableUsers=t)},null,8,["groups","users"])):T("",!0),b(e(ae),{modelValue:r.value,"onUpdate:modelValue":i[4]||(i[4]=t=>r.value=t),options:e(re),disabled:!!(l.value.id&&l.value.backend),"input-label":e(n)("files_external","External storage"),label:"name",required:""},null,8,["modelValue","options","disabled","input-label"]),b(e(ae),{modelValue:_.value,"onUpdate:modelValue":i[5]||(i[5]=t=>_.value=t),options:c.value,disabled:!l.value.backend||c.value.length<=1||!!(l.value.id&&l.value.authMechanism),"input-label":e(n)("files_external","Authentication"),label:"name",required:""},null,8,["modelValue","options","disabled","input-label"]),r.value?(u(),V(aa,{key:1,modelValue:l.value.backendOptions,"onUpdate:modelValue":i[6]||(i[6]=t=>l.value.backendOptions=t),class:x(o.$style.externalStorageDialog__configuration),configuration:r.value.configuration},null,8,["modelValue","class","configuration"])):T("",!0),_.value?(u(),V(Ye,{key:2,modelValue:l.value.backendOptions,"onUpdate:modelValue":i[7]||(i[7]=t=>l.value.backendOptions=t),class:x(o.$style.externalStorageDialog__configuration),"auth-mechanism":_.value},null,8,["modelValue","class","auth-mechanism"])):T("",!0)]),_:1},8,["open","content-classes","name"]))}}),_a="_externalStorageDialog_9wew8_2",ma="_externalStorageDialog__configuration_9wew8_9",pa={externalStorageDialog:_a,externalStorageDialog__configuration:ma},fa={$style:pa},be=E(ca,[["__cssModules",fa]]),{isAdmin:ga}=A("files_external","settings"),le=he("files_external--storages",()=>{const s=M([]),a=M([]);async function l(m){const f=R("apps/files_external/globalstorages"),{data:g}=await U.post(f,I(m),{confirmPassword:G.Strict});s.value.push(g)}async function r(m){const f=R("apps/files_external/userstorages"),{data:g}=await U.post(f,I(m),{confirmPassword:G.Strict});a.value.push(g)}async function c(m){await U.delete(p(m),{confirmPassword:G.Strict}),m.type==="personal"?a.value=a.value.filter(f=>f.id!==m.id):s.value=s.value.filter(f=>f.id!==m.id)}async function _(m){const{data:f}=await U.put(p(m),I(m),{confirmPassword:G.Strict});d(f)}async function o(m){const{data:f}=await U.get(p(m));d(f)}return t(),{globalStorages:s,userStorages:a,createGlobalStorage:l,createUserStorage:r,deleteStorage:c,reloadStorage:o,updateStorage:_};async function i(m){const f=`apps/files_external/${m}`,{data:g}=await U.get(R(f));return Object.values(g)}async function t(){pe(U),ga?s.value=await i("globalstorages"):(a.value=await i("userstorages"),s.value=await i("userglobalstorages"))}function p(m){const f=m.type==="personal"?"userstorages":"globalstorages";return R(`apps/files_external/${f}/${m.id}`)}function d(m){if(m.type==="personal"){const f=a.value.findIndex(g=>g.id===m.id);a.value.splice(f,1,m)}else{const f=s.value.findIndex(g=>g.id===m.id);s.value.splice(f,1,m)}}}),va={class:"hidden-visually"},ba={key:0},ya=$({__name:"ExternalStorageTableRow",props:{storage:{},isAdmin:{type:Boolean}},setup(s){const a=s,l=le(),r=A("files_external","backends"),c=C(()=>r.find(g=>g.identifier===a.storage.backend).name),_=A("files_external","authMechanisms"),o=C(()=>_.find(g=>g.identifier===a.storage.authMechanism).name),i=M(!1),t=C(()=>{if(i.value)return{icon:"loading",label:n("files_external","Checking …")};const g=a.storage.status??D.Indeterminate,te=a.storage.statusMessage||De[g],O=He[g],se=g===D.NetworkError||g===D.Timeout,ye=!se&&g!==D.Success&&g!==D.Indeterminate;return{icon:O,label:te,isWarning:se,isError:ye}}),p=ge(()=>a.storage.applicableUsers||[]);async function d(){await l.deleteStorage(a.storage)}async function m(){const g=await Ne(be,{storage:a.storage});g&&await l.updateStorage(g)}async function f(){i.value=!0;try{await l.reloadStorage(a.storage)}finally{i.value=!1}}return(g,te)=>(u(),h("tr",{class:x(g.$style.storageTableRow)},[y("td",null,[y("span",va,v(t.value.label),1),b(e(P),{"aria-label":e(n)("files_external","Recheck status"),title:t.value.label,variant:"tertiary-no-background",onClick:f},{icon:w(()=>[t.value.icon==="loading"?(u(),V(e(ue),{key:0})):(u(),V(e(F),{key:1,class:x({[g.$style.storageTableRow__status_error]:t.value.isError,[g.$style.storageTableRow__status_warning]:t.value.isWarning}),path:t.value.icon},null,8,["class","path"]))]),_:1},8,["aria-label","title"])]),y("td",null,v(s.storage.mountPoint),1),y("td",null,v(c.value),1),y("td",null,v(o.value),1),s.isAdmin?(u(),h("td",ba,[y("div",{class:x(g.$style.storageTableRow__cellApplicable)},[(u(!0),h(S,null,q(s.storage.applicableGroups,O=>(u(),V(e(Fe),{key:O,"icon-path":e(Ae),"no-close":"",text:O},null,8,["icon-path","text"]))),128)),(u(!0),h(S,null,q(e(p),O=>(u(),V(e(je),{key:O.user,"display-name":O.displayName,size:24,user:O.user},null,8,["display-name","user"]))),128))],2)])):T("",!0),y("td",null,[s.isAdmin||s.storage.type==="personal"?(u(),h("div",{key:0,class:x(g.$style.storageTableRow__cellActions)},[b(e(P),{"aria-label":e(n)("files_external","Edit"),title:e(n)("files_external","Edit"),onClick:m},{icon:w(()=>[b(e(F),{path:e(Ue)},null,8,["path"])]),_:1},8,["aria-label","title"]),b(e(P),{"aria-label":e(n)("files_external","Delete"),title:e(n)("files_external","Delete"),variant:"error",onClick:d},{icon:w(()=>[b(e(F),{path:e($e)},null,8,["path"])]),_:1},8,["aria-label","title"])],2)):(u(),V(e(F),{key:1,inline:"",path:e(Te),name:e(n)("files_external","System provided storage"),title:e(n)("files_external","System provided storage")},null,8,["path","name","title"]))])],2))}}),ha="_storageTableRow__cellActions_1k62p_2",xa="_storageTableRow__cellApplicable_1k62p_7",wa="_storageTableRow__status_warning_1k62p_17",Va="_storageTableRow__status_error_1k62p_21",ka={storageTableRow__cellActions:ha,storageTableRow__cellApplicable:xa,storageTableRow__status_warning:wa,storageTableRow__status_error:Va},Sa={$style:ka},Ca=E(ya,[["__cssModules",Sa]]),Ma=["aria-label"],Aa={class:"hidden-visually"},Ua={key:0},$a={class:"hidden-visually"},Ta=$({__name:"ExternalStorageTable",setup(s){const a=le(),{isAdmin:l}=A("files_external","settings"),r=C(()=>l?a.globalStorages:[...a.userStorages,...a.globalStorages]);return(c,_)=>(u(),h("table",{class:x(c.$style.storageTable),"aria-label":e(n)("files_external","External storages")},[y("thead",{class:x(c.$style.storageTable__header)},[y("tr",null,[y("th",{class:x(c.$style.storageTable__headerStatus)},[y("span",Aa,v(e(n)("files_external","Status")),1)],2),y("th",{class:x(c.$style.storageTable__headerFolder)},v(e(n)("files_external","Folder name")),3),y("th",{class:x(c.$style.storageTable__headerBackend)},v(e(n)("files_external","External storage")),3),y("th",{class:x(c.$style.storageTable__headerAuthentication)},v(e(n)("files_external","Authentication")),3),e(l)?(u(),h("th",Ua,v(e(n)("files_external","Restricted to")),1)):T("",!0),y("th",{class:x(c.$style.storageTable__headerActions)},[y("span",$a,v(e(n)("files_external","Actions")),1)],2)])],2),y("tbody",null,[(u(!0),h(S,null,q(r.value,o=>(u(),V(Ca,{key:o.id,"is-admin":e(l),storage:o},null,8,["is-admin","storage"]))),128))])],10,Ma))}}),qa="_storageTable_1dqte_2",Ea="_storageTable__header_1dqte_11",Oa="_storageTable__headerStatus_1dqte_16",Pa="_storageTable__headerFolder_1dqte_20",Na="_storageTable__headerBackend_1dqte_24",Ra="_storageTable__headerFAuthentication_1dqte_28",Fa="_storageTable__headerActions_1dqte_32",Ba={storageTable:qa,storageTable__header:Ea,storageTable__headerStatus:Oa,storageTable__headerFolder:Pa,storageTable__headerBackend:Na,storageTable__headerFAuthentication:Ra,storageTable__headerActions:Fa},ja={$style:Ba},Da=E(Ta,[["__cssModules",ja]]),Ha=$({__name:"UserMountSettings",setup(s){const a=A("files_external","user-mounting"),l=A("files_external","backends"),r=M(a.allowUserMounting),c=M(a.allowedBackends);return Q(r,()=>{const _=!r.value;window.OCP.AppConfig.setValue("files_external","allow_user_mounting",r.value?"yes":"no",{success:()=>X(n("files_external","Saved")),error:()=>{r.value=_,ee(n("files_external","Error while saving"))}})}),Q(c,(_,o)=>{window.OCP.AppConfig.setValue("files_external","user_mounting_backends",_.join(","),{success:()=>X(n("files_external","Saved allowed backends")),error:()=>{ee(n("files_external","Failed to save allowed backends")),c.value=o}})}),(_,o)=>(u(),h("form",null,[y("h3",{class:x(_.$style.userMountSettings__heading)},v(e(n)("files_external","Advanced options for external storage mounts")),3),b(e(N),{modelValue:r.value,"onUpdate:modelValue":o[0]||(o[0]=i=>r.value=i),type:"switch"},{default:w(()=>[k(v(e(n)("files_external","Allow people to mount external storage")),1)]),_:1},8,["modelValue"]),z(y("fieldset",{class:x(_.$style.userMountSettings__backends)},[y("legend",null,v(e(n)("files_external","External storage backends people are allowed to mount")),1),(u(!0),h(S,null,q(e(l),i=>(u(),V(e(N),{key:i.identifier,modelValue:c.value,"onUpdate:modelValue":o[1]||(o[1]=t=>c.value=t),value:i.identifier,name:"allowUserMountingBackends[]"},{default:w(()=>[k(v(i.name),1)]),_:2},1032,["modelValue","value"]))),128))],2),[[W,r.value]])]))}}),Ga="_userMountSettings__heading_59moz_2",Ia="_userMountSettings__backends_59moz_9",Qa={userMountSettings__heading:Ga,userMountSettings__backends:Ia},La={$style:Qa},Za=E(Ha,[["__cssModules",La]]);const za=["aria-label"],Wa=$({__name:"ExternalStoragesSection",setup(s){const a=A("files_external","settings",{docUrl:"",dependencyIssues:{messages:null,modules:null},isAdmin:!1}),l=le(),r=a.dependencyIssues?.messages??[],c=a.dependencyIssues?.modules??{},_=M(!1),o=M();async function i(t){if(_.value=!1,!!t)try{a.isAdmin?await l.createGlobalStorage(t):await l.createUserStorage(t),o.value=void 0}catch(p){fe.error("Failed to add external storage",{error:p}),_.value=!0}}return(t,p)=>(u(),V(e(de),{"doc-url":e(a).docUrl,name:e(n)("files_external","External storage"),description:e(n)("files_external","External storage enables you to mount external storage services and devices as secondary Nextcloud storage devices.")+(e(a).isAdmin?" "+e(n)("files_external","You may also allow people to mount their own external storage services."):"")},{default:w(()=>[(u(!0),h(S,null,q(e(r),(d,m)=>(u(),V(e(oe),{key:m,type:"error"},{default:w(()=>[k(v(d),1)]),_:2},1024))),128)),(u(!0),h(S,null,q(e(c),(d,m)=>(u(),V(e(oe),{key:m,type:"warning"},{default:w(()=>[y("p",null,[m==="curl"?(u(),h(S,{key:0},[k(v(e(n)("files_external","The cURL support in PHP is not enabled or installed.")),1)],64)):m==="ftp"?(u(),h(S,{key:1},[k(v(e(n)("files_external","The FTP support in PHP is not enabled or installed.")),1)],64)):(u(),h(S,{key:2},[k(v(e(n)("files_external","{module} is not installed.",{module:m})),1)],64)),k(" "+v(e(Ee)("files_external","Please ask your system administrator to install it as otherwise mounting the following backend is not possible:","Please ask your system administrator to install it as otherwise mounting the following backends is not possible:",d.length)),1)]),y("ul",{class:x(t.$style.externalStoragesSection__dependantList),"aria-label":e(n)("files_external","Dependant backends")},[(u(!0),h(S,null,q(d,f=>(u(),h("li",{key:f},v(f),1))),128))],10,za)]),_:2},1024))),128)),T("",!0),b(Da),b(e(P),{class:x(t.$style.externalStoragesSection__newStorageButton),variant:"primary",onClick:p[0]||(p[0]=d=>_.value=!_.value)},{icon:w(()=>[b(e(F),{path:e(qe)},null,8,["path"])]),default:w(()=>[k(" "+v(e(n)("files_external","Add external storage")),1)]),_:1},8,["class"]),b(be,{modelValue:o.value,"onUpdate:modelValue":p[1]||(p[1]=d=>o.value=d),open:_.value,"onUpdate:open":p[2]||(p[2]=d=>_.value=d),onClose:i},null,8,["modelValue","open"]),e(a).isAdmin?(u(),V(Za,{key:1})):T("",!0)]),_:1},8,["doc-url","name","description"]))}}),Ya="_externalStoragesSection__dependantList_atsmn_2",Ja="_externalStoragesSection__newStorageButton_atsmn_7",Ka={externalStoragesSection__dependantList:Ya,externalStoragesSection__newStorageButton:Ja},Xa={$style:Ka},el=E(Wa,[["__cssModules",Xa]]),al=$({__name:"GlobalCredentialsSection",setup(s){const a=A("files_external","global-credentials"),l=M(!1),r=M(a.user),c=M(a.password);pe(U);async function _(){try{l.value=!0;const{data:o}=await U.post(R("apps/files_external/globalcredentials"),{uid:a.uid,user:r.value,password:c.value},{confirmPassword:G.Strict});if(o){X(n("files_external","Global credentials saved"));return}}catch(o){fe.error(o)}finally{l.value=!1}ee(n("files_external","Could not save global credentials")),r.value=a.user,c.value=a.password}return(o,i)=>(u(),V(e(de),{name:e(n)("files_external","Global credentials"),description:e(n)("files_external","Global credentials can be used to authenticate with multiple external storages that have the same credentials.")},{default:w(()=>[y("form",{id:"global_credentials",class:x(o.$style.globalCredentialsSectionForm),autocomplete:"false",onSubmit:ke(_,["prevent"])},[b(e(ce),{modelValue:r.value,"onUpdate:modelValue":i[0]||(i[0]=t=>r.value=t),name:"username",autocomplete:"false",label:e(n)("files_external","Login")},null,8,["modelValue","label"]),b(e(Be),{modelValue:c.value,"onUpdate:modelValue":i[1]||(i[1]=t=>c.value=t),name:"password",autocomplete:"false",label:e(n)("files_external","Password")},null,8,["modelValue","label"]),b(e(P),{class:x(o.$style.globalCredentialsSectionForm__submit),disabled:l.value,variant:"primary",type:"submit"},{default:w(()=>[k(v(l.value?e(n)("files_external","Saving …"):e(n)("files_external","Save")),1)]),_:1},8,["class","disabled"])],34)]),_:1},8,["name","description"]))}}),ll="_globalCredentialsSectionForm_bgjv2_2",tl="_globalCredentialsSectionForm__submit_bgjv2_10",sl={globalCredentialsSectionForm:ll,globalCredentialsSectionForm__submit:tl},nl={$style:sl},ol=E(al,[["__cssModules",nl]]),il=$({__name:"FilesExternalSettings",setup(s){return(a,l)=>(u(),h(S,null,[b(el),b(ol)],64))}}),rl=xe(),J=Se(il);J.config.idPrefix="files-external",J.use(rl),J.mount("#files-external"); +import{d as he,c as xe}from"./pinia-BtpwTVd6.chunk.mjs";import{J as we,x as C,a0 as K,a9 as Z,b as U,q as B,r as M,c as V,o as u,u as e,p as L,s as Q,j as h,l as T,n as x,k as y,t as v,F as S,L as Ve,C as q,E as z,G as W,$ as ne,e as b,w,g as k,V as I,H as ke,h as Se}from"./runtime-dom.esm-bundler-DdtEg5E9.chunk.mjs";import{l as Ce,n as Me,o as Ae,p as $e,f as Ue,q as Te,N as oe,e as qe}from"./mdi-BpC5Cj53.chunk.mjs";import{a as E,l as A}from"./index-DCpg1aui.chunk.mjs";import{t as n,b as Ee}from"./string_decoder-vT-u9WbV.chunk.mjs";import{b as P,N as F}from"./AccountOutline-BlW-6JqD.chunk.mjs";import"./index-QzsMEHKe.chunk.mjs";import{N as ue}from"./ContentCopy-s5fS3y5J.chunk.mjs";import{N as Oe,b as Pe,e as X,a as ee}from"./index-JpgrUA2Z-BXxDc_if.chunk.mjs";import{N as ae}from"./NcSelect-Czzsi3P_-BKaYvmLF.chunk.mjs";import{_ as de}from"./TrashCanOutline-DglPBhgI.chunk.mjs";import{c as $}from"./index-DVH_Kr3Q.chunk.mjs";import{g as R}from"./createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs";import{N as Ne,a as Re}from"./index-FxQbLoUx.chunk.mjs";import{k as Fe}from"./NcModal-MC_HktJd-DqeuH-fk.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-BNncp1Y1.chunk.mjs";import"./NcBreadcrumbs-DYfGaSjT-BPFs0jvP.chunk.mjs";import"./NcAvatar-DmUGApWA-xbPVEdSn.chunk.mjs";import"./NcContent-BR_nMwKN-DuxjkyFF.chunk.mjs";import{N as ce}from"./Web-aYJacExm.chunk.mjs";import"./index-Bndk0DrU.chunk.mjs";import{N}from"./NcCheckboxRadioSwitch-BCSKF7Tk-B1Kcz6gU.chunk.mjs";import"./NcColorPicker-Kc0JqRtp-G7GArS5K.chunk.mjs";import"./TrayArrowDown-CEVYjTiD.chunk.mjs";import"./NcEmojiPicker-pM4Pg2yq-CYkSkF_Y.chunk.mjs";import"./NcRichText-CBMtJzE_-BrKByk17.chunk.mjs";/* empty css */import"./NcInputField-Bwsh2aHY-Cz27INBW.chunk.mjs";import{N as Be}from"./NcPasswordField-djttkA5Q-Dz7uhHFj.chunk.mjs";import{N as je}from"./NcUserBubble-DPAmU2_J-D9jxXA1V.chunk.mjs";import"./PencilOutline-BSRAQiy1.chunk.mjs";import"./colors-Go3zmZRD-DNxaZwS4.chunk.mjs";import{_ as _e}from"./AuthMechanismRsa-BQFNdXT1.chunk.mjs";import{C as H,a as me,M as j,S as D,b as De,c as He}from"./types-BqUbz9dh.chunk.mjs";import{a as pe,P as G}from"./index-CEFiUoek.chunk.mjs";import{l as fe}from"./logger-resIultJ.chunk.mjs";import"./public-uQ6dl0vH.chunk.mjs";const Ge='',J=we(new Map);function ge(s){const a=C(()=>K(s).map(l=>({id:`user:${l}`,user:l,displayName:J.get(l)||l})));return Z(async()=>{const l=K(s).filter(r=>!J.has(r));if(l.length>0){const{data:r}=await $.post(R("/displaynames"),{users:l});for(const[c,_]of Object.entries(r.users))J.set(c,_)}}),a}function Ie(s){return C(()=>K(s).map(ve))}function ve(s){return{id:s,isNoUser:!0,displayName:s,iconSvg:Ge}}const Qe=U({__name:"ApplicableEntities",props:{groups:{default:()=>[]},groupsModifiers:{},users:{default:()=>[]},usersModifiers:{}},emits:["update:groups","update:users"],setup(s){const a=B(s,"groups"),l=B(s,"users"),r=M([]),c=ge(l),_=Ie(a),o=C({get(){return[..._.value,...c.value]},set(p){l.value=p.filter(d=>d.user).map(d=>d.user),a.value=p.filter(d=>d.isNoUser).map(d=>d.id)}}),i=Fe(t,500);async function t(p){const{data:d}=await $.get(R("apps/files_external/ajax/applicable"),{params:{pattern:p,limit:20}}),m=[...r.value.map(f=>[f.id,f]),...Object.entries(d.groups).map(([f,g])=>[f,{...ve(f),displayName:g}]),...Object.entries(d.users).map(([f,g])=>[`user:${f}`,{id:`user:${f}`,user:f,displayName:g}])];r.value=[...new Map(m).values()]}return(p,d)=>(u(),V(e(Ne),{modelValue:o.value,"onUpdate:modelValue":d[0]||(d[0]=m=>o.value=m),"keep-open":"",multiple:"",options:r.value,"input-label":e(n)("files_external","Restrict to"),onSearch:e(i)},null,8,["modelValue","options","input-label","onSearch"]))}}),Le=U({__name:"AuthMechanismConfiguration",props:L({authMechanism:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(s){const a=B(s,"modelValue"),l=s,r=C(()=>{if(!l.authMechanism.configuration)return;const t=Object.entries(l.authMechanism.configuration).filter(([,p])=>!(p.flags&H.UserProvided));return Object.fromEntries(t)}),c=C(()=>window.OCA.FilesExternal.AuthMechanism.getHandler(l.authMechanism)),_=C(()=>{if(!r.value)return!1;for(const t of Object.values(r.value))if(!(t.flags&H.Hidden||t.flags&H.UserProvided))return!0;return!1}),o=M(!1);Z(async()=>{c.value&&(o.value=!0,await window.customElements.whenDefined(c.value.tagName),o.value=!1)}),Q(r,()=>{for(const t in r.value)t in a.value||(a.value[t]=r.value[t]?.type===me.Boolean?!1:"")});function i(t){const p=[t.detail].flat()[0];a.value={...a.value,...p}}return(t,p)=>_.value?(u(),h("fieldset",{key:0,class:x(t.$style.authMechanismConfiguration)},[y("legend",null,v(e(n)("files_external","Authentication")),1),c.value?(u(),h(S,{key:0},[o.value?(u(),V(e(ce),{key:0})):(u(),V(Ve(c.value.tagName),{key:1,".modelValue":a.value,".authMechanism":s.authMechanism,"onUpdate:modelValue":i},null,40,[".modelValue",".authMechanism"]))],64)):(u(!0),h(S,{key:1},q(r.value,(d,m)=>z((u(),V(_e,{key:d.value,modelValue:a.value[m],"onUpdate:modelValue":f=>a.value[m]=f,"config-key":m,"config-option":d},null,8,["modelValue","onUpdate:modelValue","config-key","config-option"])),[[W,!(d.flags&e(H).Hidden)]])),128))],2)):T("",!0)}}),Ze="_authMechanismConfiguration_kpcpy_2",ze={authMechanismConfiguration:Ze},We={$style:ze},Je=E(Le,[["__cssModules",We]]),Ye=U({__name:"BackendConfiguration",props:L({configuration:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(s){const a=B(s,"modelValue"),l=s;return Q(()=>l.configuration,()=>{for(const r in l.configuration)r in a.value||(a.value[r]=l.configuration[r]?.type===me.Boolean?!1:"")}),(r,c)=>(u(),h("fieldset",{class:x(r.$style.backendConfiguration)},[y("legend",null,v(e(n)("files_external","Storage configuration")),1),(u(!0),h(S,null,q(s.configuration,(_,o)=>z((u(),V(_e,{key:_.value,modelValue:a.value[o],"onUpdate:modelValue":i=>a.value[o]=i,"config-key":o,"config-option":_},null,8,["modelValue","onUpdate:modelValue","config-key","config-option"])),[[W,!(_.flags&e(H).Hidden)]])),128))],2))}}),Ke="_backendConfiguration_1sf6y_2",Xe={backendConfiguration:Ke},ea={$style:Xe},aa=E(Ye,[["__cssModules",ea]]),la=["id","aria-labelledby"],ta=U({__name:"MountOptions",props:{modelValue:{required:!0},modelModifiers:{}},emits:["update:modelValue"],setup(s){const a=B(s,"modelValue");Z(()=>{Object.keys(a.value).length===0&&(a.value.encrypt=!0,a.value.previews=!0,a.value.enable_sharing=!1,a.value.filesystem_check_changes=j.OncePerRequest,a.value.encoding_compatibility=!1,a.value.readonly=!1)});const{hasEncryption:l}=A("files_external","settings"),r=ne(),c=ne(),_=M(!1),o=[{label:n("files_external","Never"),value:j.Never},{label:n("files_external","Once every direct access"),value:j.OncePerRequest},{label:n("files_external","Always"),value:j.Always}],i=C({get(){return o.find(t=>t.value===a.value.filesystem_check_changes)},set(t){a.value.filesystem_check_changes=t?.value??j.OncePerRequest}});return(t,p)=>(u(),h("div",{class:x(t.$style.mountOptions)},[b(e(P),{id:e(r),"aria-controls":e(c),"aria-expanded":_.value,variant:"tertiary-no-background",onClick:p[0]||(p[0]=d=>_.value=!_.value)},{icon:w(()=>[b(e(F),{directional:"",path:_.value?e(Ce):e(Me)},null,8,["path"])]),default:w(()=>[k(" "+v(e(n)("files_external","Mount options")),1)]),_:1},8,["id","aria-controls","aria-expanded"]),z(y("fieldset",{id:e(c),class:x(t.$style.mountOptions__fieldset),"aria-labelledby":e(r)},[b(e(ae),{modelValue:i.value,"onUpdate:modelValue":p[1]||(p[1]=d=>i.value=d),"input-label":e(n)("files_external","Check filesystem changes"),options:o},null,8,["modelValue","input-label"]),b(e(N),{modelValue:s.modelValue.readonly,"onUpdate:modelValue":p[2]||(p[2]=d=>s.modelValue.readonly=d),type:"switch"},{default:w(()=>[k(v(e(n)("files_external","Read only")),1)]),_:1},8,["modelValue"]),b(e(N),{modelValue:s.modelValue.previews,"onUpdate:modelValue":p[3]||(p[3]=d=>s.modelValue.previews=d),type:"switch"},{default:w(()=>[k(v(e(n)("files_external","Enable previews")),1)]),_:1},8,["modelValue"]),b(e(N),{modelValue:s.modelValue.enable_sharing,"onUpdate:modelValue":p[4]||(p[4]=d=>s.modelValue.enable_sharing=d),type:"switch"},{default:w(()=>[k(v(e(n)("files_external","Enable sharing")),1)]),_:1},8,["modelValue"]),e(l)?(u(),V(e(N),{key:0,modelValue:s.modelValue.encrypt,"onUpdate:modelValue":p[5]||(p[5]=d=>s.modelValue.encrypt=d),type:"switch"},{default:w(()=>[k(v(e(n)("files_external","Enable encryption")),1)]),_:1},8,["modelValue"])):T("",!0),b(e(N),{modelValue:s.modelValue.encoding_compatibility,"onUpdate:modelValue":p[6]||(p[6]=d=>s.modelValue.encoding_compatibility=d),type:"switch"},{default:w(()=>[k(v(e(n)("files_external","Compatibility with Mac NFD encoding (slow)")),1)]),_:1},8,["modelValue"])],10,la),[[W,_.value]])],2))}}),sa="_mountOptions_1fqyb_2",na="_mountOptions__fieldset_1fqyb_12",oa={mountOptions:sa,mountOptions__fieldset:na},ia={$style:oa},ra=E(ta,[["__cssModules",ia]]),{isAdmin:ie}=A("files_external","settings"),ua=A("files_external","allowedBackends"),re=A("files_external","backends").filter(s=>ua.includes(s.identifier)),da=A("files_external","authMechanisms"),ca=U({__name:"AddExternalStorageDialog",props:L({storage:{default:()=>({backendOptions:{},mountOptions:{},type:ie?"system":"personal"})}},{open:{type:Boolean,default:!0},openModifiers:{}}),emits:L(["close"],["update:open"]),setup(s){const a=B(s,"open"),l=M(structuredClone(I(s.storage)));Z(()=>{a.value&&(l.value=structuredClone(I(s.storage)))});const r=C({get(){return re.find(o=>o.identifier===l.value.backend)},set(o){l.value.backend=o?.identifier}}),c=C(()=>da.filter(({scheme:o})=>r.value?.authSchemes[o])),_=C({get(){return c.value.find(o=>o.identifier===l.value.authMechanism)},set(o){l.value.authMechanism=o?.identifier}});return Q(c,()=>{c.value.length===1&&(l.value.authMechanism=c.value[0].identifier)}),(o,i)=>(u(),V(e(Oe),{open:a.value,"onUpdate:open":[i[9]||(i[9]=t=>a.value=t),i[11]||(i[11]=t=>t||o.$emit("close"))],"is-form":"","content-classes":o.$style.externalStorageDialog,name:l.value.id?e(n)("files_external","Edit storage"):e(n)("files_external","Add storage"),onSubmit:i[10]||(i[10]=t=>o.$emit("close",l.value))},{actions:w(()=>[s.storage.id?(u(),V(e(P),{key:0,onClick:i[8]||(i[8]=t=>o.$emit("close"))},{default:w(()=>[k(v(e(n)("files_external","Cancel")),1)]),_:1})):T("",!0),b(e(P),{variant:"primary",type:"submit"},{default:w(()=>[k(v(s.storage.id?e(n)("files_external","Edit"):e(n)("files_external","Create")),1)]),_:1})]),default:w(()=>[b(e(de),{modelValue:l.value.mountPoint,"onUpdate:modelValue":i[0]||(i[0]=t=>l.value.mountPoint=t),label:e(n)("files_external","Folder name"),required:""},null,8,["modelValue","label"]),b(ra,{modelValue:l.value.mountOptions,"onUpdate:modelValue":i[1]||(i[1]=t=>l.value.mountOptions=t)},null,8,["modelValue"]),e(ie)?(u(),V(Qe,{key:0,groups:l.value.applicableGroups,"onUpdate:groups":i[2]||(i[2]=t=>l.value.applicableGroups=t),users:l.value.applicableUsers,"onUpdate:users":i[3]||(i[3]=t=>l.value.applicableUsers=t)},null,8,["groups","users"])):T("",!0),b(e(ae),{modelValue:r.value,"onUpdate:modelValue":i[4]||(i[4]=t=>r.value=t),options:e(re),disabled:!!(l.value.id&&l.value.backend),"input-label":e(n)("files_external","External storage"),label:"name",required:""},null,8,["modelValue","options","disabled","input-label"]),b(e(ae),{modelValue:_.value,"onUpdate:modelValue":i[5]||(i[5]=t=>_.value=t),options:c.value,disabled:!l.value.backend||c.value.length<=1||!!(l.value.id&&l.value.authMechanism),"input-label":e(n)("files_external","Authentication"),label:"name",required:""},null,8,["modelValue","options","disabled","input-label"]),r.value?(u(),V(aa,{key:1,modelValue:l.value.backendOptions,"onUpdate:modelValue":i[6]||(i[6]=t=>l.value.backendOptions=t),class:x(o.$style.externalStorageDialog__configuration),configuration:r.value.configuration},null,8,["modelValue","class","configuration"])):T("",!0),_.value?(u(),V(Je,{key:2,modelValue:l.value.backendOptions,"onUpdate:modelValue":i[7]||(i[7]=t=>l.value.backendOptions=t),class:x(o.$style.externalStorageDialog__configuration),"auth-mechanism":_.value},null,8,["modelValue","class","auth-mechanism"])):T("",!0)]),_:1},8,["open","content-classes","name"]))}}),_a="_externalStorageDialog_9wew8_2",ma="_externalStorageDialog__configuration_9wew8_9",pa={externalStorageDialog:_a,externalStorageDialog__configuration:ma},fa={$style:pa},be=E(ca,[["__cssModules",fa]]),{isAdmin:ga}=A("files_external","settings"),le=he("files_external--storages",()=>{const s=M([]),a=M([]);async function l(m){const f=R("apps/files_external/globalstorages"),{data:g}=await $.post(f,I(m),{confirmPassword:G.Strict});s.value.push(g)}async function r(m){const f=R("apps/files_external/userstorages"),{data:g}=await $.post(f,I(m),{confirmPassword:G.Strict});a.value.push(g)}async function c(m){await $.delete(p(m),{confirmPassword:G.Strict}),m.type==="personal"?a.value=a.value.filter(f=>f.id!==m.id):s.value=s.value.filter(f=>f.id!==m.id)}async function _(m){const{data:f}=await $.put(p(m),I(m),{confirmPassword:G.Strict});d(f)}async function o(m){const{data:f}=await $.get(p(m));d(f)}return t(),{globalStorages:s,userStorages:a,createGlobalStorage:l,createUserStorage:r,deleteStorage:c,reloadStorage:o,updateStorage:_};async function i(m){const f=`apps/files_external/${m}`,{data:g}=await $.get(R(f));return Object.values(g)}async function t(){pe($),ga?s.value=await i("globalstorages"):(a.value=await i("userstorages"),s.value=await i("userglobalstorages"))}function p(m){const f=m.type==="personal"?"userstorages":"globalstorages";return R(`apps/files_external/${f}/${m.id}`)}function d(m){if(m.type==="personal"){const f=a.value.findIndex(g=>g.id===m.id);a.value.splice(f,1,m)}else{const f=s.value.findIndex(g=>g.id===m.id);s.value.splice(f,1,m)}}}),va={class:"hidden-visually"},ba={key:0},ya=U({__name:"ExternalStorageTableRow",props:{storage:{},isAdmin:{type:Boolean}},setup(s){const a=s,l=le(),r=A("files_external","backends"),c=C(()=>r.find(g=>g.identifier===a.storage.backend).name),_=A("files_external","authMechanisms"),o=C(()=>_.find(g=>g.identifier===a.storage.authMechanism).name),i=M(!1),t=C(()=>{if(i.value)return{icon:"loading",label:n("files_external","Checking …")};const g=a.storage.status??D.Indeterminate,te=a.storage.statusMessage||De[g],O=He[g],se=g===D.NetworkError||g===D.Timeout,ye=!se&&g!==D.Success&&g!==D.Indeterminate;return{icon:O,label:te,isWarning:se,isError:ye}}),p=ge(()=>a.storage.applicableUsers||[]);async function d(){await l.deleteStorage(a.storage)}async function m(){const g=await Pe(be,{storage:a.storage});g&&await l.updateStorage(g)}async function f(){i.value=!0;try{await l.reloadStorage(a.storage)}finally{i.value=!1}}return(g,te)=>(u(),h("tr",{class:x(g.$style.storageTableRow)},[y("td",null,[y("span",va,v(t.value.label),1),b(e(P),{"aria-label":e(n)("files_external","Recheck status"),title:t.value.label,variant:"tertiary-no-background",onClick:f},{icon:w(()=>[t.value.icon==="loading"?(u(),V(e(ce),{key:0})):(u(),V(e(F),{key:1,class:x({[g.$style.storageTableRow__status_error]:t.value.isError,[g.$style.storageTableRow__status_warning]:t.value.isWarning}),path:t.value.icon},null,8,["class","path"]))]),_:1},8,["aria-label","title"])]),y("td",null,v(s.storage.mountPoint),1),y("td",null,v(c.value),1),y("td",null,v(o.value),1),s.isAdmin?(u(),h("td",ba,[y("div",{class:x(g.$style.storageTableRow__cellApplicable)},[(u(!0),h(S,null,q(s.storage.applicableGroups,O=>(u(),V(e(Re),{key:O,"icon-path":e(Ae),"no-close":"",text:O},null,8,["icon-path","text"]))),128)),(u(!0),h(S,null,q(e(p),O=>(u(),V(e(je),{key:O.user,"display-name":O.displayName,size:24,user:O.user},null,8,["display-name","user"]))),128))],2)])):T("",!0),y("td",null,[s.isAdmin||s.storage.type==="personal"?(u(),h("div",{key:0,class:x(g.$style.storageTableRow__cellActions)},[b(e(P),{"aria-label":e(n)("files_external","Edit"),title:e(n)("files_external","Edit"),onClick:m},{icon:w(()=>[b(e(F),{path:e($e)},null,8,["path"])]),_:1},8,["aria-label","title"]),b(e(P),{"aria-label":e(n)("files_external","Delete"),title:e(n)("files_external","Delete"),variant:"error",onClick:d},{icon:w(()=>[b(e(F),{path:e(Ue)},null,8,["path"])]),_:1},8,["aria-label","title"])],2)):(u(),V(e(F),{key:1,inline:"",path:e(Te),name:e(n)("files_external","System provided storage"),title:e(n)("files_external","System provided storage")},null,8,["path","name","title"]))])],2))}}),ha="_storageTableRow__cellActions_1k62p_2",xa="_storageTableRow__cellApplicable_1k62p_7",wa="_storageTableRow__status_warning_1k62p_17",Va="_storageTableRow__status_error_1k62p_21",ka={storageTableRow__cellActions:ha,storageTableRow__cellApplicable:xa,storageTableRow__status_warning:wa,storageTableRow__status_error:Va},Sa={$style:ka},Ca=E(ya,[["__cssModules",Sa]]),Ma=["aria-label"],Aa={class:"hidden-visually"},$a={key:0},Ua={class:"hidden-visually"},Ta=U({__name:"ExternalStorageTable",setup(s){const a=le(),{isAdmin:l}=A("files_external","settings"),r=C(()=>l?a.globalStorages:[...a.userStorages,...a.globalStorages]);return(c,_)=>(u(),h("table",{class:x(c.$style.storageTable),"aria-label":e(n)("files_external","External storages")},[y("thead",{class:x(c.$style.storageTable__header)},[y("tr",null,[y("th",{class:x(c.$style.storageTable__headerStatus)},[y("span",Aa,v(e(n)("files_external","Status")),1)],2),y("th",{class:x(c.$style.storageTable__headerFolder)},v(e(n)("files_external","Folder name")),3),y("th",{class:x(c.$style.storageTable__headerBackend)},v(e(n)("files_external","External storage")),3),y("th",{class:x(c.$style.storageTable__headerAuthentication)},v(e(n)("files_external","Authentication")),3),e(l)?(u(),h("th",$a,v(e(n)("files_external","Restricted to")),1)):T("",!0),y("th",{class:x(c.$style.storageTable__headerActions)},[y("span",Ua,v(e(n)("files_external","Actions")),1)],2)])],2),y("tbody",null,[(u(!0),h(S,null,q(r.value,o=>(u(),V(Ca,{key:o.id,"is-admin":e(l),storage:o},null,8,["is-admin","storage"]))),128))])],10,Ma))}}),qa="_storageTable_1dqte_2",Ea="_storageTable__header_1dqte_11",Oa="_storageTable__headerStatus_1dqte_16",Pa="_storageTable__headerFolder_1dqte_20",Na="_storageTable__headerBackend_1dqte_24",Ra="_storageTable__headerFAuthentication_1dqte_28",Fa="_storageTable__headerActions_1dqte_32",Ba={storageTable:qa,storageTable__header:Ea,storageTable__headerStatus:Oa,storageTable__headerFolder:Pa,storageTable__headerBackend:Na,storageTable__headerFAuthentication:Ra,storageTable__headerActions:Fa},ja={$style:Ba},Da=E(Ta,[["__cssModules",ja]]),Ha=U({__name:"UserMountSettings",setup(s){const a=A("files_external","user-mounting"),l=A("files_external","backends"),r=M(a.allowUserMounting),c=M(a.allowedBackends);return Q(r,()=>{const _=!r.value;window.OCP.AppConfig.setValue("files_external","allow_user_mounting",r.value?"yes":"no",{success:()=>X(n("files_external","Saved")),error:()=>{r.value=_,ee(n("files_external","Error while saving"))}})}),Q(c,(_,o)=>{window.OCP.AppConfig.setValue("files_external","user_mounting_backends",_.join(","),{success:()=>X(n("files_external","Saved allowed backends")),error:()=>{ee(n("files_external","Failed to save allowed backends")),c.value=o}})}),(_,o)=>(u(),h("form",null,[y("h3",{class:x(_.$style.userMountSettings__heading)},v(e(n)("files_external","Advanced options for external storage mounts")),3),b(e(N),{modelValue:r.value,"onUpdate:modelValue":o[0]||(o[0]=i=>r.value=i),type:"switch"},{default:w(()=>[k(v(e(n)("files_external","Allow people to mount external storage")),1)]),_:1},8,["modelValue"]),z(y("fieldset",{class:x(_.$style.userMountSettings__backends)},[y("legend",null,v(e(n)("files_external","External storage backends people are allowed to mount")),1),(u(!0),h(S,null,q(e(l),i=>(u(),V(e(N),{key:i.identifier,modelValue:c.value,"onUpdate:modelValue":o[1]||(o[1]=t=>c.value=t),value:i.identifier,name:"allowUserMountingBackends[]"},{default:w(()=>[k(v(i.name),1)]),_:2},1032,["modelValue","value"]))),128))],2),[[W,r.value]])]))}}),Ga="_userMountSettings__heading_59moz_2",Ia="_userMountSettings__backends_59moz_9",Qa={userMountSettings__heading:Ga,userMountSettings__backends:Ia},La={$style:Qa},Za=E(Ha,[["__cssModules",La]]);const za=["aria-label"],Wa=U({__name:"ExternalStoragesSection",setup(s){const a=A("files_external","settings",{docUrl:"",dependencyIssues:{messages:null,modules:null},isAdmin:!1}),l=le(),r=a.dependencyIssues?.messages??[],c=a.dependencyIssues?.modules??{},_=M(!1),o=M();async function i(t){if(_.value=!1,!!t)try{a.isAdmin?await l.createGlobalStorage(t):await l.createUserStorage(t),o.value=void 0}catch(p){fe.error("Failed to add external storage",{error:p}),_.value=!0}}return(t,p)=>(u(),V(e(ue),{"doc-url":e(a).docUrl,name:e(n)("files_external","External storage"),description:e(n)("files_external","External storage enables you to mount external storage services and devices as secondary Nextcloud storage devices.")+(e(a).isAdmin?" "+e(n)("files_external","You may also allow people to mount their own external storage services."):"")},{default:w(()=>[(u(!0),h(S,null,q(e(r),(d,m)=>(u(),V(e(oe),{key:m,type:"error"},{default:w(()=>[k(v(d),1)]),_:2},1024))),128)),(u(!0),h(S,null,q(e(c),(d,m)=>(u(),V(e(oe),{key:m,type:"warning"},{default:w(()=>[y("p",null,[m==="curl"?(u(),h(S,{key:0},[k(v(e(n)("files_external","The cURL support in PHP is not enabled or installed.")),1)],64)):m==="ftp"?(u(),h(S,{key:1},[k(v(e(n)("files_external","The FTP support in PHP is not enabled or installed.")),1)],64)):(u(),h(S,{key:2},[k(v(e(n)("files_external","{module} is not installed.",{module:m})),1)],64)),k(" "+v(e(Ee)("files_external","Please ask your system administrator to install it as otherwise mounting the following backend is not possible:","Please ask your system administrator to install it as otherwise mounting the following backends is not possible:",d.length)),1)]),y("ul",{class:x(t.$style.externalStoragesSection__dependantList),"aria-label":e(n)("files_external","Dependant backends")},[(u(!0),h(S,null,q(d,f=>(u(),h("li",{key:f},v(f),1))),128))],10,za)]),_:2},1024))),128)),T("",!0),b(Da),b(e(P),{class:x(t.$style.externalStoragesSection__newStorageButton),variant:"primary",onClick:p[0]||(p[0]=d=>_.value=!_.value)},{icon:w(()=>[b(e(F),{path:e(qe)},null,8,["path"])]),default:w(()=>[k(" "+v(e(n)("files_external","Add external storage")),1)]),_:1},8,["class"]),b(be,{modelValue:o.value,"onUpdate:modelValue":p[1]||(p[1]=d=>o.value=d),open:_.value,"onUpdate:open":p[2]||(p[2]=d=>_.value=d),onClose:i},null,8,["modelValue","open"]),e(a).isAdmin?(u(),V(Za,{key:1})):T("",!0)]),_:1},8,["doc-url","name","description"]))}}),Ja="_externalStoragesSection__dependantList_atsmn_2",Ya="_externalStoragesSection__newStorageButton_atsmn_7",Ka={externalStoragesSection__dependantList:Ja,externalStoragesSection__newStorageButton:Ya},Xa={$style:Ka},el=E(Wa,[["__cssModules",Xa]]),al=U({__name:"GlobalCredentialsSection",setup(s){const a=A("files_external","global-credentials"),l=M(!1),r=M(a.user),c=M(a.password);pe($);async function _(){try{l.value=!0;const{data:o}=await $.post(R("apps/files_external/globalcredentials"),{uid:a.uid,user:r.value,password:c.value},{confirmPassword:G.Strict});if(o){X(n("files_external","Global credentials saved"));return}}catch(o){fe.error(o)}finally{l.value=!1}ee(n("files_external","Could not save global credentials")),r.value=a.user,c.value=a.password}return(o,i)=>(u(),V(e(ue),{name:e(n)("files_external","Global credentials"),description:e(n)("files_external","Global credentials can be used to authenticate with multiple external storages that have the same credentials.")},{default:w(()=>[y("form",{id:"global_credentials",class:x(o.$style.globalCredentialsSectionForm),autocomplete:"false",onSubmit:ke(_,["prevent"])},[b(e(de),{modelValue:r.value,"onUpdate:modelValue":i[0]||(i[0]=t=>r.value=t),name:"username",autocomplete:"false",label:e(n)("files_external","Login")},null,8,["modelValue","label"]),b(e(Be),{modelValue:c.value,"onUpdate:modelValue":i[1]||(i[1]=t=>c.value=t),name:"password",autocomplete:"false",label:e(n)("files_external","Password")},null,8,["modelValue","label"]),b(e(P),{class:x(o.$style.globalCredentialsSectionForm__submit),disabled:l.value,variant:"primary",type:"submit"},{default:w(()=>[k(v(l.value?e(n)("files_external","Saving …"):e(n)("files_external","Save")),1)]),_:1},8,["class","disabled"])],34)]),_:1},8,["name","description"]))}}),ll="_globalCredentialsSectionForm_bgjv2_2",tl="_globalCredentialsSectionForm__submit_bgjv2_10",sl={globalCredentialsSectionForm:ll,globalCredentialsSectionForm__submit:tl},nl={$style:sl},ol=E(al,[["__cssModules",nl]]),il=U({__name:"FilesExternalSettings",setup(s){return(a,l)=>(u(),h(S,null,[b(el),b(ol)],64))}}),rl=xe(),Y=Se(il);Y.config.idPrefix="files-external",Y.use(rl),Y.mount("#files-external"); //# sourceMappingURL=files_external-settings.mjs.map diff --git a/dist/files_external-settings.mjs.map b/dist/files_external-settings.mjs.map index 1b73de85cb8c4..3330975b6239e 100644 --- a/dist/files_external-settings.mjs.map +++ b/dist/files_external-settings.mjs.map @@ -1 +1 @@ -{"version":3,"file":"files_external-settings.mjs","sources":["../node_modules/@mdi/svg/svg/account-group-outline.svg?raw","../build/frontend/apps/files_external/src/composables/useEntities.ts","../build/frontend/apps/files_external/src/components/AddExternalStorageDialog/ApplicableEntities.vue","../build/frontend/apps/files_external/src/components/AddExternalStorageDialog/AuthMechanismConfiguration.vue","../build/frontend/apps/files_external/src/components/AddExternalStorageDialog/BackendConfiguration.vue","../build/frontend/apps/files_external/src/components/AddExternalStorageDialog/MountOptions.vue","../build/frontend/apps/files_external/src/components/AddExternalStorageDialog/AddExternalStorageDialog.vue","../build/frontend/apps/files_external/src/store/storages.ts","../build/frontend/apps/files_external/src/components/ExternalStorageTableRow.vue","../build/frontend/apps/files_external/src/components/ExternalStorageTable.vue","../build/frontend/apps/files_external/src/components/UserMountSettings.vue","../build/frontend/apps/files_external/src/views/ExternalStoragesSection.vue","../build/frontend/apps/files_external/src/views/GlobalCredentialsSection.vue","../build/frontend/apps/files_external/src/views/FilesExternalSettings.vue","../build/frontend/apps/files_external/src/settings-main.ts"],"sourcesContent":["export default \"\"","/*!\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { MaybeRefOrGetter } from 'vue'\n\nimport svgAccountGroupOutline from '@mdi/svg/svg/account-group-outline.svg?raw'\nimport axios from '@nextcloud/axios'\nimport { generateUrl } from '@nextcloud/router'\nimport { computed, reactive, toValue, watchEffect } from 'vue'\n\nconst displayNames = reactive(new Map())\n\n/**\n * Fetch and provide user display names for given UIDs\n *\n * @param uids - The user ids to fetch display names for\n */\nexport function useUsers(uids: MaybeRefOrGetter) {\n\tconst users = computed(() => toValue(uids).map((uid) => ({\n\t\tid: `user:${uid}`,\n\t\tuser: uid,\n\t\tdisplayName: displayNames.get(uid) || uid,\n\t})))\n\n\twatchEffect(async () => {\n\t\tconst missingUsers = toValue(uids).filter((uid) => !displayNames.has(uid))\n\t\tif (missingUsers.length > 0) {\n\t\t\tconst { data } = await axios.post(generateUrl('/displaynames'), {\n\t\t\t\tusers: missingUsers,\n\t\t\t})\n\t\t\tfor (const [uid, displayName] of Object.entries(data.users)) {\n\t\t\t\tdisplayNames.set(uid, displayName as string)\n\t\t\t}\n\t\t}\n\t})\n\n\treturn users\n}\n\n/**\n * Map group ids to IUserData objects\n *\n * @param gids - The group ids to create entities for\n */\nexport function useGroups(gids: MaybeRefOrGetter) {\n\treturn computed(() => toValue(gids).map(mapGroupToUserData))\n}\n\n/**\n * Map a group id to an IUserData object\n *\n * @param gid - The group id to map\n */\nexport function mapGroupToUserData(gid: string) {\n\treturn {\n\t\tid: gid,\n\t\tisNoUser: true,\n\t\tdisplayName: gid,\n\t\ticonSvg: svgAccountGroupOutline,\n\t}\n}\n","\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n\n\n\n","/*!\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { IStorage } from '../types.d.ts'\n\nimport axios from '@nextcloud/axios'\nimport { loadState } from '@nextcloud/initial-state'\nimport { addPasswordConfirmationInterceptors, PwdConfirmationMode } from '@nextcloud/password-confirmation'\nimport { generateUrl } from '@nextcloud/router'\nimport { defineStore } from 'pinia'\nimport { ref, toRaw } from 'vue'\n\nconst { isAdmin } = loadState<{ isAdmin: boolean }>('files_external', 'settings')\n\nexport const useStorages = defineStore('files_external--storages', () => {\n\tconst globalStorages = ref([])\n\tconst userStorages = ref([])\n\n\t/**\n\t * Create a new global storage\n\t *\n\t * @param storage - The storage to create\n\t */\n\tasync function createGlobalStorage(storage: Partial) {\n\t\tconst url = generateUrl('apps/files_external/globalstorages')\n\t\tconst { data } = await axios.post(\n\t\t\turl,\n\t\t\ttoRaw(storage),\n\t\t\t{ confirmPassword: PwdConfirmationMode.Strict },\n\t\t)\n\t\tglobalStorages.value.push(data)\n\t}\n\n\t/**\n\t * Create a new global storage\n\t *\n\t * @param storage - The storage to create\n\t */\n\tasync function createUserStorage(storage: Partial) {\n\t\tconst url = generateUrl('apps/files_external/userstorages')\n\t\tconst { data } = await axios.post(\n\t\t\turl,\n\t\t\ttoRaw(storage),\n\t\t\t{ confirmPassword: PwdConfirmationMode.Strict },\n\t\t)\n\t\tuserStorages.value.push(data)\n\t}\n\n\t/**\n\t * Delete a storage\n\t *\n\t * @param storage - The storage to delete\n\t */\n\tasync function deleteStorage(storage: IStorage) {\n\t\tawait axios.delete(getUrl(storage), {\n\t\t\tconfirmPassword: PwdConfirmationMode.Strict,\n\t\t})\n\n\t\tif (storage.type === 'personal') {\n\t\t\tuserStorages.value = userStorages.value.filter((s) => s.id !== storage.id)\n\t\t} else {\n\t\t\tglobalStorages.value = globalStorages.value.filter((s) => s.id !== storage.id)\n\t\t}\n\t}\n\n\t/**\n\t * Update an existing storage\n\t *\n\t * @param storage - The storage to update\n\t */\n\tasync function updateStorage(storage: IStorage) {\n\t\tconst { data } = await axios.put(\n\t\t\tgetUrl(storage),\n\t\t\ttoRaw(storage),\n\t\t\t{ confirmPassword: PwdConfirmationMode.Strict },\n\t\t)\n\n\t\toverrideStorage(data)\n\t}\n\n\t/**\n\t * Reload a storage from the server\n\t *\n\t * @param storage - The storage to reload\n\t */\n\tasync function reloadStorage(storage: IStorage) {\n\t\tconst { data } = await axios.get(getUrl(storage))\n\t\toverrideStorage(data)\n\t}\n\n\t// initialize the store\n\tinitialize()\n\n\treturn {\n\t\tglobalStorages,\n\t\tuserStorages,\n\n\t\tcreateGlobalStorage,\n\t\tcreateUserStorage,\n\t\tdeleteStorage,\n\t\treloadStorage,\n\t\tupdateStorage,\n\t}\n\n\t/**\n\t * @param type - The type of storages to load\n\t */\n\tasync function loadStorages(type: string) {\n\t\tconst url = `apps/files_external/${type}`\n\t\tconst { data } = await axios.get>(generateUrl(url))\n\t\treturn Object.values(data)\n\t}\n\n\t/**\n\t * Load the storages based on the user role\n\t */\n\tasync function initialize() {\n\t\taddPasswordConfirmationInterceptors(axios)\n\n\t\tif (isAdmin) {\n\t\t\tglobalStorages.value = await loadStorages('globalstorages')\n\t\t} else {\n\t\t\tuserStorages.value = await loadStorages('userstorages')\n\t\t\tglobalStorages.value = await loadStorages('userglobalstorages')\n\t\t}\n\t}\n\n\t/**\n\t * @param storage - The storage to get the URL for\n\t */\n\tfunction getUrl(storage: IStorage) {\n\t\tconst type = storage.type === 'personal' ? 'userstorages' : 'globalstorages'\n\t\treturn generateUrl(`apps/files_external/${type}/${storage.id}`)\n\t}\n\n\t/**\n\t * Override a storage in the store\n\t *\n\t * @param storage - The storage save\n\t */\n\tfunction overrideStorage(storage: IStorage) {\n\t\tif (storage.type === 'personal') {\n\t\t\tconst index = userStorages.value.findIndex((s) => s.id === storage.id)\n\t\t\tuserStorages.value.splice(index, 1, storage)\n\t\t} else {\n\t\t\tconst index = globalStorages.value.findIndex((s) => s.id === storage.id)\n\t\t\tglobalStorages.value.splice(index, 1, storage)\n\t\t}\n\t}\n})\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n","/*!\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { createPinia } from 'pinia'\nimport { createApp } from 'vue'\nimport FilesExternalApp from './views/FilesExternalSettings.vue'\n\nconst pinia = createPinia()\nconst app = createApp(FilesExternalApp)\napp.config.idPrefix = 'files-external'\napp.use(pinia)\napp.mount('#files-external')\n"],"names":["svgAccountGroupOutline","displayNames","reactive","useUsers","uids","users","computed","toValue","uid","watchEffect","missingUsers","data","axios","generateUrl","displayName","useGroups","gids","mapGroupToUserData","gid","groups","_useModel","__props","entities","ref","selectedUsers","selectedGroups","model","value","u","g","debouncedSearch","useDebounceFn","onSearch","pattern","newEntries","e","id","_createBlock","_unref","NcSelectUsers","$event","t","modelValue","props","configuration","entries","option","ConfigurationFlag","customComponent","hasConfiguration","isLoadingCustomComponent","watch","key","ConfigurationType","onUpdateModelValue","event","config","_createElementBlock","_normalizeClass","$style","_createElementVNode","_Fragment","NcLoadingIcon","_resolveDynamicComponent","_openBlock","_renderList","configOption","configKey","ConfigurationEntry","_vShow","mountOptions","MountOptionsCheckFilesystem","hasEncryption","loadState","idButton","useId","idFieldset","isExpanded","checkFilesystemOptions","checkFilesystem","_createVNode","NcButton","_cache","NcIconSvgWrapper","mdiChevronDown","mdiChevronRight","_createTextVNode","NcSelect","NcCheckboxRadioSwitch","isAdmin","allowedBackendIds","backends","b","allAuthMechanisms","open","internalStorage","toRaw","backend","authMechanisms","scheme","authMechanism","a","NcDialog","$emit","_toDisplayString","NcTextField","MountOptions","ApplicableEntities","BackendConfiguration","AuthMechanismConfiguration","useStorages","defineStore","globalStorages","userStorages","createGlobalStorage","storage","url","PwdConfirmationMode","createUserStorage","deleteStorage","getUrl","s","updateStorage","overrideStorage","reloadStorage","initialize","loadStorages","type","addPasswordConfirmationInterceptors","index","store","backendName","authMechanismName","checkingStatus","status","StorageStatus","label","StorageStatusMessage","icon","StorageStatusIcons","isWarning","isError","onDelete","onEdit","spawnDialog","AddExternalStorageDialog","reloadStatus","_hoisted_1","_hoisted_2","group","NcChip","mdiAccountGroupOutline","user","NcUserBubble","mdiPencilOutline","mdiTrashCanOutline","mdiInformationOutline","storages","_hoisted_4","ExternalStorageTableRow","userMounting","availableBackends","allowUserMounting","allowedBackends","backupValue","showSuccess","showError","newValue","oldValue","settings","dependencyIssues","missingModules","showDialog","newStorage","addStorage","error","logger","NcSettingsSection","message","NcNoteCard","dependants","module","n","ExternalStorageTable","mdiPlus","UserMountSettings","globalCredentials","loading","username","password","onSubmit","NcPasswordField","ExternalStoragesSection","GlobalCredentialsSection","pinia","createPinia","app","createApp","FilesExternalApp"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file +{"version":3,"file":"files_external-settings.mjs","sources":["../node_modules/@mdi/svg/svg/account-group-outline.svg?raw","../build/frontend/apps/files_external/src/composables/useEntities.ts","../build/frontend/apps/files_external/src/components/AddExternalStorageDialog/ApplicableEntities.vue","../build/frontend/apps/files_external/src/components/AddExternalStorageDialog/AuthMechanismConfiguration.vue","../build/frontend/apps/files_external/src/components/AddExternalStorageDialog/BackendConfiguration.vue","../build/frontend/apps/files_external/src/components/AddExternalStorageDialog/MountOptions.vue","../build/frontend/apps/files_external/src/components/AddExternalStorageDialog/AddExternalStorageDialog.vue","../build/frontend/apps/files_external/src/store/storages.ts","../build/frontend/apps/files_external/src/components/ExternalStorageTableRow.vue","../build/frontend/apps/files_external/src/components/ExternalStorageTable.vue","../build/frontend/apps/files_external/src/components/UserMountSettings.vue","../build/frontend/apps/files_external/src/views/ExternalStoragesSection.vue","../build/frontend/apps/files_external/src/views/GlobalCredentialsSection.vue","../build/frontend/apps/files_external/src/views/FilesExternalSettings.vue","../build/frontend/apps/files_external/src/settings-main.ts"],"sourcesContent":["export default \"\"","/*!\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { MaybeRefOrGetter } from 'vue'\n\nimport svgAccountGroupOutline from '@mdi/svg/svg/account-group-outline.svg?raw'\nimport axios from '@nextcloud/axios'\nimport { generateUrl } from '@nextcloud/router'\nimport { computed, reactive, toValue, watchEffect } from 'vue'\n\nconst displayNames = reactive(new Map())\n\n/**\n * Fetch and provide user display names for given UIDs\n *\n * @param uids - The user ids to fetch display names for\n */\nexport function useUsers(uids: MaybeRefOrGetter) {\n\tconst users = computed(() => toValue(uids).map((uid) => ({\n\t\tid: `user:${uid}`,\n\t\tuser: uid,\n\t\tdisplayName: displayNames.get(uid) || uid,\n\t})))\n\n\twatchEffect(async () => {\n\t\tconst missingUsers = toValue(uids).filter((uid) => !displayNames.has(uid))\n\t\tif (missingUsers.length > 0) {\n\t\t\tconst { data } = await axios.post(generateUrl('/displaynames'), {\n\t\t\t\tusers: missingUsers,\n\t\t\t})\n\t\t\tfor (const [uid, displayName] of Object.entries(data.users)) {\n\t\t\t\tdisplayNames.set(uid, displayName as string)\n\t\t\t}\n\t\t}\n\t})\n\n\treturn users\n}\n\n/**\n * Map group ids to IUserData objects\n *\n * @param gids - The group ids to create entities for\n */\nexport function useGroups(gids: MaybeRefOrGetter) {\n\treturn computed(() => toValue(gids).map(mapGroupToUserData))\n}\n\n/**\n * Map a group id to an IUserData object\n *\n * @param gid - The group id to map\n */\nexport function mapGroupToUserData(gid: string) {\n\treturn {\n\t\tid: gid,\n\t\tisNoUser: true,\n\t\tdisplayName: gid,\n\t\ticonSvg: svgAccountGroupOutline,\n\t}\n}\n","\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n\n\n\n","/*!\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { IStorage } from '../types.d.ts'\n\nimport axios from '@nextcloud/axios'\nimport { loadState } from '@nextcloud/initial-state'\nimport { addPasswordConfirmationInterceptors, PwdConfirmationMode } from '@nextcloud/password-confirmation'\nimport { generateUrl } from '@nextcloud/router'\nimport { defineStore } from 'pinia'\nimport { ref, toRaw } from 'vue'\n\nconst { isAdmin } = loadState<{ isAdmin: boolean }>('files_external', 'settings')\n\nexport const useStorages = defineStore('files_external--storages', () => {\n\tconst globalStorages = ref([])\n\tconst userStorages = ref([])\n\n\t/**\n\t * Create a new global storage\n\t *\n\t * @param storage - The storage to create\n\t */\n\tasync function createGlobalStorage(storage: Partial) {\n\t\tconst url = generateUrl('apps/files_external/globalstorages')\n\t\tconst { data } = await axios.post(\n\t\t\turl,\n\t\t\ttoRaw(storage),\n\t\t\t{ confirmPassword: PwdConfirmationMode.Strict },\n\t\t)\n\t\tglobalStorages.value.push(data)\n\t}\n\n\t/**\n\t * Create a new global storage\n\t *\n\t * @param storage - The storage to create\n\t */\n\tasync function createUserStorage(storage: Partial) {\n\t\tconst url = generateUrl('apps/files_external/userstorages')\n\t\tconst { data } = await axios.post(\n\t\t\turl,\n\t\t\ttoRaw(storage),\n\t\t\t{ confirmPassword: PwdConfirmationMode.Strict },\n\t\t)\n\t\tuserStorages.value.push(data)\n\t}\n\n\t/**\n\t * Delete a storage\n\t *\n\t * @param storage - The storage to delete\n\t */\n\tasync function deleteStorage(storage: IStorage) {\n\t\tawait axios.delete(getUrl(storage), {\n\t\t\tconfirmPassword: PwdConfirmationMode.Strict,\n\t\t})\n\n\t\tif (storage.type === 'personal') {\n\t\t\tuserStorages.value = userStorages.value.filter((s) => s.id !== storage.id)\n\t\t} else {\n\t\t\tglobalStorages.value = globalStorages.value.filter((s) => s.id !== storage.id)\n\t\t}\n\t}\n\n\t/**\n\t * Update an existing storage\n\t *\n\t * @param storage - The storage to update\n\t */\n\tasync function updateStorage(storage: IStorage) {\n\t\tconst { data } = await axios.put(\n\t\t\tgetUrl(storage),\n\t\t\ttoRaw(storage),\n\t\t\t{ confirmPassword: PwdConfirmationMode.Strict },\n\t\t)\n\n\t\toverrideStorage(data)\n\t}\n\n\t/**\n\t * Reload a storage from the server\n\t *\n\t * @param storage - The storage to reload\n\t */\n\tasync function reloadStorage(storage: IStorage) {\n\t\tconst { data } = await axios.get(getUrl(storage))\n\t\toverrideStorage(data)\n\t}\n\n\t// initialize the store\n\tinitialize()\n\n\treturn {\n\t\tglobalStorages,\n\t\tuserStorages,\n\n\t\tcreateGlobalStorage,\n\t\tcreateUserStorage,\n\t\tdeleteStorage,\n\t\treloadStorage,\n\t\tupdateStorage,\n\t}\n\n\t/**\n\t * @param type - The type of storages to load\n\t */\n\tasync function loadStorages(type: string) {\n\t\tconst url = `apps/files_external/${type}`\n\t\tconst { data } = await axios.get>(generateUrl(url))\n\t\treturn Object.values(data)\n\t}\n\n\t/**\n\t * Load the storages based on the user role\n\t */\n\tasync function initialize() {\n\t\taddPasswordConfirmationInterceptors(axios)\n\n\t\tif (isAdmin) {\n\t\t\tglobalStorages.value = await loadStorages('globalstorages')\n\t\t} else {\n\t\t\tuserStorages.value = await loadStorages('userstorages')\n\t\t\tglobalStorages.value = await loadStorages('userglobalstorages')\n\t\t}\n\t}\n\n\t/**\n\t * @param storage - The storage to get the URL for\n\t */\n\tfunction getUrl(storage: IStorage) {\n\t\tconst type = storage.type === 'personal' ? 'userstorages' : 'globalstorages'\n\t\treturn generateUrl(`apps/files_external/${type}/${storage.id}`)\n\t}\n\n\t/**\n\t * Override a storage in the store\n\t *\n\t * @param storage - The storage save\n\t */\n\tfunction overrideStorage(storage: IStorage) {\n\t\tif (storage.type === 'personal') {\n\t\t\tconst index = userStorages.value.findIndex((s) => s.id === storage.id)\n\t\t\tuserStorages.value.splice(index, 1, storage)\n\t\t} else {\n\t\t\tconst index = globalStorages.value.findIndex((s) => s.id === storage.id)\n\t\t\tglobalStorages.value.splice(index, 1, storage)\n\t\t}\n\t}\n})\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n","/*!\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { createPinia } from 'pinia'\nimport { createApp } from 'vue'\nimport FilesExternalApp from './views/FilesExternalSettings.vue'\n\nconst pinia = createPinia()\nconst app = createApp(FilesExternalApp)\napp.config.idPrefix = 'files-external'\napp.use(pinia)\napp.mount('#files-external')\n"],"names":["svgAccountGroupOutline","displayNames","reactive","useUsers","uids","users","computed","toValue","uid","watchEffect","missingUsers","data","axios","generateUrl","displayName","useGroups","gids","mapGroupToUserData","gid","groups","_useModel","__props","entities","ref","selectedUsers","selectedGroups","model","value","u","g","debouncedSearch","useDebounceFn","onSearch","pattern","newEntries","e","id","_createBlock","_unref","NcSelectUsers","$event","t","modelValue","props","configuration","entries","option","ConfigurationFlag","customComponent","hasConfiguration","isLoadingCustomComponent","watch","key","ConfigurationType","onUpdateModelValue","event","config","_createElementBlock","_normalizeClass","$style","_createElementVNode","_Fragment","NcLoadingIcon","_resolveDynamicComponent","_openBlock","_renderList","configOption","configKey","ConfigurationEntry","_vShow","mountOptions","MountOptionsCheckFilesystem","hasEncryption","loadState","idButton","useId","idFieldset","isExpanded","checkFilesystemOptions","checkFilesystem","_createVNode","NcButton","_cache","NcIconSvgWrapper","mdiChevronDown","mdiChevronRight","_createTextVNode","NcSelect","NcCheckboxRadioSwitch","isAdmin","allowedBackendIds","backends","b","allAuthMechanisms","open","internalStorage","toRaw","backend","authMechanisms","scheme","authMechanism","a","NcDialog","$emit","_toDisplayString","NcTextField","MountOptions","ApplicableEntities","BackendConfiguration","AuthMechanismConfiguration","useStorages","defineStore","globalStorages","userStorages","createGlobalStorage","storage","url","PwdConfirmationMode","createUserStorage","deleteStorage","getUrl","s","updateStorage","overrideStorage","reloadStorage","initialize","loadStorages","type","addPasswordConfirmationInterceptors","index","store","backendName","authMechanismName","checkingStatus","status","StorageStatus","label","StorageStatusMessage","icon","StorageStatusIcons","isWarning","isError","onDelete","onEdit","spawnDialog","AddExternalStorageDialog","reloadStatus","_hoisted_1","_hoisted_2","group","NcChip","mdiAccountGroupOutline","user","NcUserBubble","mdiPencilOutline","mdiTrashCanOutline","mdiInformationOutline","storages","_hoisted_4","ExternalStorageTableRow","userMounting","availableBackends","allowUserMounting","allowedBackends","backupValue","showSuccess","showError","newValue","oldValue","settings","dependencyIssues","missingModules","showDialog","newStorage","addStorage","error","logger","NcSettingsSection","message","NcNoteCard","dependants","module","n","ExternalStorageTable","mdiPlus","UserMountSettings","globalCredentials","loading","username","password","onSubmit","NcPasswordField","ExternalStoragesSection","GlobalCredentialsSection","pinia","createPinia","app","createApp","FilesExternalApp"],"mappings":"4vEAAA,MAAAA,GAAe,2jCCYTC,EAAeC,GAAS,IAAI,GAAqB,EAOhD,SAASC,GAASC,EAAkC,CAC1D,MAAMC,EAAQC,EAAS,IAAMC,EAAQH,CAAI,EAAE,IAAKI,IAAS,CACxD,GAAI,QAAQA,CAAG,GACf,KAAMA,EACN,YAAaP,EAAa,IAAIO,CAAG,GAAKA,CAAA,EACrC,CAAC,EAEH,OAAAC,EAAY,SAAY,CACvB,MAAMC,EAAeH,EAAQH,CAAI,EAAE,OAAQI,GAAQ,CAACP,EAAa,IAAIO,CAAG,CAAC,EACzE,GAAIE,EAAa,OAAS,EAAG,CAC5B,KAAM,CAAE,KAAAC,GAAS,MAAMC,EAAM,KAAKC,EAAY,eAAe,EAAG,CAC/D,MAAOH,CAAA,CACP,EACD,SAAW,CAACF,EAAKM,CAAW,IAAK,OAAO,QAAQH,EAAK,KAAK,EACzDV,EAAa,IAAIO,EAAKM,CAAqB,CAE7C,CACD,CAAC,EAEMT,CACR,CAOO,SAASU,GAAUC,EAAkC,CAC3D,OAAOV,EAAS,IAAMC,EAAQS,CAAI,EAAE,IAAIC,EAAkB,CAAC,CAC5D,CAOO,SAASA,GAAmBC,EAAa,CAC/C,MAAO,CACN,GAAIA,EACJ,SAAU,GACV,YAAaA,EACb,QAASlB,EAAA,CAEX,qLC9CA,MAAMmB,EAASC,EAAqBC,EAAC,QAA+B,EAC9DhB,EAAQe,EAAqBC,EAAC,OAA8B,EAE5DC,EAAWC,EAAiB,EAAE,EAC9BC,EAAgBrB,GAASE,CAAK,EAC9BoB,EAAiBV,GAAUI,CAAM,EAEjCO,EAAQpB,EAAS,CACtB,KAAM,CACL,MAAO,CAAC,GAAGmB,EAAe,MAAO,GAAGD,EAAc,KAAK,CACxD,EACA,IAAIG,EAAoB,CACvBtB,EAAM,MAAQsB,EAAM,OAAQC,GAAMA,EAAE,IAAI,EAAE,IAAKA,GAAMA,EAAE,IAAK,EAC5DT,EAAO,MAAQQ,EAAM,OAAQE,GAAMA,EAAE,QAAQ,EAAE,IAAKA,GAAMA,EAAE,EAAE,CAC/D,CAAA,CACA,EAEKC,EAAkBC,GAAcC,EAAU,GAAG,EAOnD,eAAeA,EAASC,EAAiB,CACxC,KAAM,CAAE,KAAAtB,CAAA,EAAS,MAAMC,EAAM,IAC5BC,EAAY,qCAAqC,EACjD,CAAE,OAAQ,CAAE,QAAAoB,EAAS,MAAO,GAAG,CAAE,EAG5BC,EAAa,CAClB,GAAGZ,EAAS,MAAM,IAAKa,GAAM,CAACA,EAAE,GAAIA,CAAC,CAAC,EACtC,GAAG,OAAO,QAAQxB,EAAK,MAAM,EAC3B,IAAI,CAAC,CAACyB,EAAItB,CAAW,IAAM,CAACsB,EAAI,CAAE,GAAGnB,GAAmBmB,CAAE,EAAG,YAAAtB,CAAA,CAAa,CAAC,EAC7E,GAAG,OAAO,QAAQH,EAAK,KAAK,EAC1B,IAAI,CAAC,CAACyB,EAAItB,CAAW,IAAM,CAAC,QAAQsB,CAAE,GAAI,CAAE,GAAI,QAAQA,CAAE,GAAI,KAAMA,EAAI,YAAAtB,EAAa,CAAC,CAAA,EAGzFQ,EAAS,MAAQ,CAAC,GAAG,IAAI,IAAIY,CAAU,EAAE,QAAQ,CAClD,mBAICG,EAM6BC,EAAAC,EAAA,EAAA,YALnBb,EAAA,2CAAAA,EAAK,MAAAc,GACd,YAAA,GACA,SAAA,GACC,QAASlB,EAAA,MACT,cAAagB,EAAAG,CAAA,EAAC,iBAAA,aAAA,EACd,SAAQH,EAAAR,CAAA,CAAA,wNCnDX,MAAMY,EAAatB,EAA6CC,EAAA,YAAmB,EAE7EsB,EAAQtB,EAIRuB,EAAgBtC,EAAS,IAAM,CACpC,GAAI,CAACqC,EAAM,cAAc,cACxB,OAGD,MAAME,EAAU,OAAO,QAAQF,EAAM,cAAc,aAAa,EAC9D,OAAO,CAAC,CAAA,CAAGG,CAAM,IAAM,EAAEA,EAAO,MAAQC,EAAkB,aAAa,EACzE,OAAO,OAAO,YAAYF,CAAO,CAClC,CAAC,EAEKG,EAAkB1C,EAAS,IAAM,OAAO,IAAI,cAAc,cAAe,WAAWqC,EAAM,aAAa,CAAC,EACxGM,EAAmB3C,EAAS,IAAM,CACvC,GAAI,CAACsC,EAAc,MAClB,MAAO,GAER,UAAWE,KAAU,OAAO,OAAOF,EAAc,KAAK,EACrD,GAAK,EAAAE,EAAO,MAAQC,EAAkB,QAAYD,EAAO,MAAQC,EAAkB,cAInF,MAAO,GAER,MAAO,EACR,CAAC,EAEKG,EAA2B3B,EAAI,EAAK,EAC1Cd,EAAY,SAAY,CACnBuC,EAAgB,QACnBE,EAAyB,MAAQ,GACjC,MAAM,OAAO,eAAe,YAAYF,EAAgB,MAAM,OAAO,EACrEE,EAAyB,MAAQ,GAEnC,CAAC,EAEDC,EAAMP,EAAe,IAAM,CAC1B,UAAWQ,KAAOR,EAAc,MACzBQ,KAAOV,EAAW,QACvBA,EAAW,MAAMU,CAAG,EAAIR,EAAc,MAAMQ,CAAG,GAAG,OAASC,GAAkB,QAC1E,GACA,GAGN,CAAC,EAOD,SAASC,EAAmBC,EAAoB,CAC/C,MAAMC,EAAS,CAACD,EAAM,MAAM,EAAE,KAAA,EAAO,CAAC,EACtCb,EAAW,MAAQ,CAAE,GAAGA,EAAW,MAAO,GAAGc,CAAA,CAC9C,cAIiBP,EAAA,WAAhBQ,EAyBW,WAAA,OAzBwB,MAAKC,EAAEC,EAAAA,OAAO,0BAA0B,CAAA,GAC1EC,EAES,gBADLtB,EAAAG,CAAA,EAAC,iBAAA,gBAAA,CAAA,EAAA,CAAA,EAGWO,EAAA,WAAhBS,EASWI,EAAA,CAAA,IAAA,GAAA,CARWX,EAAA,WAArBb,EAAiDC,EAAAwB,EAAA,EAAA,CAAA,IAAA,EAAA,QAEjDzB,EAK2C0B,GAJrCf,EAAA,MAAgB,OAAO,EAAA,OAE3B,cAAiBN,EAAA,MACjB,iBAAoBrB,EAAA,cACpB,sBAAmBiC,CAAA,oDAIrBU,EAAA,EAAA,EAAAP,EAMkBI,EAAA,CAAA,IAAA,GAAAI,EALmBrB,EAAA,MAAa,CAAzCsB,EAAcC,WADvB9B,EAMkB+B,GAAA,CAHhB,IAAKF,EAAa,MACV,WAAAxB,EAAA,MAAWyB,CAAS,EAApB,sBAAA3B,GAAAE,EAAA,MAAWyB,CAAS,EAAA3B,EAC5B,aAAA2B,EACA,gBAAAD,CAAA,8EAJS,CAAAG,EAAA,EAAAH,EAAa,MAAQ5B,EAAAS,CAAA,EAAkB,OAAM,CAAA,uSClF3D,MAAML,EAAatB,EAA6CC,EAAA,YAAmB,EAE7EsB,EAAQtB,EAId,OAAA8B,EAAM,IAAMR,EAAM,cAAe,IAAM,CACtC,UAAWS,KAAOT,EAAM,cACjBS,KAAOV,EAAW,QACvBA,EAAW,MAAMU,CAAG,EAAIT,EAAM,cAAcS,CAAG,GAAG,OAASC,GAAkB,QAC1E,GACA,GAGN,CAAC,cAIAI,EAYW,WAAA,CAZA,MAAKC,EAAEC,EAAAA,OAAO,oBAAoB,CAAA,GAC5CC,EAES,gBADLtB,EAAAG,CAAA,EAAC,iBAAA,uBAAA,CAAA,EAAA,CAAA,GAGLuB,EAAA,EAAA,EAAAP,EAMiCI,EAAA,KAAAI,EALE5C,EAAA,cAAa,CAAxC6C,EAAcC,WADtB9B,EAMiC+B,GAAA,CAH/B,IAAKF,EAAa,MACV,WAAAxB,EAAA,MAAWyB,CAAS,EAApB,sBAAA3B,GAAAE,EAAA,MAAWyB,CAAS,EAAA3B,EAC5B,aAAY2B,EACZ,gBAAeD,CAAA,8EAJN,CAAAG,EAAA,EAAAH,EAAa,MAAQ5B,EAAAS,CAAA,EAAkB,OAAM,CAAA,gRCpB1D,MAAMuB,EAAelD,EAAmCC,EAAA,YAAmB,EAC3EZ,EAAY,IAAM,CACb,OAAO,KAAK6D,EAAa,KAAK,EAAE,SAAW,IAC9CA,EAAa,MAAM,QAAU,GAC7BA,EAAa,MAAM,SAAW,GAC9BA,EAAa,MAAM,eAAiB,GACpCA,EAAa,MAAM,yBAA2BC,EAA4B,eAC1ED,EAAa,MAAM,uBAAyB,GAC5CA,EAAa,MAAM,SAAW,GAEhC,CAAC,EAED,KAAM,CAAE,cAAAE,CAAA,EAAkBC,EAAsC,iBAAkB,UAAU,EAEtFC,EAAWC,GAAA,EACXC,EAAaD,GAAA,EAEbE,EAAatD,EAAI,EAAK,EAEtBuD,EAAyB,CAC9B,CACC,MAAOrC,EAAE,iBAAkB,OAAO,EAClC,MAAO8B,EAA4B,KAAA,EAEpC,CACC,MAAO9B,EAAE,iBAAkB,0BAA0B,EACrD,MAAO8B,EAA4B,cAAA,EAEpC,CACC,MAAO9B,EAAE,iBAAkB,QAAQ,EACnC,MAAO8B,EAA4B,MAAA,CACpC,EAEKQ,EAAkBzE,EAAS,CAChC,KAAM,CACL,OAAOwE,EAAuB,KAAMhC,GAAWA,EAAO,QAAUwB,EAAa,MAAM,wBAAwB,CAC5G,EACA,IAAI3C,EAAO,CACV2C,EAAa,MAAM,yBAA2B3C,GAAO,OAAS4C,EAA4B,cAC3F,CAAA,CACA,oBAKAd,EAuCM,MAAA,CAvCA,MAAKC,EAAEC,EAAAA,OAAO,YAAY,CAAA,GAC/BqB,EAUW1C,EAAA2C,CAAA,EAAA,CATT,GAAI3C,EAAAoC,CAAA,EACJ,gBAAepC,EAAAsC,CAAA,EACf,gBAAeC,EAAA,MAChB,QAAQ,yBACP,QAAKK,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA1C,GAAEqC,EAAA,MAAU,CAAIA,EAAA,MAAA,GACX,OACV,IAAsF,CAAtFG,EAAsF1C,EAAA6C,CAAA,EAAA,CAApE,YAAA,GAAa,KAAMN,EAAA,MAAavC,EAAA8C,EAAA,EAAiB9C,EAAA+C,EAAA,CAAA,+BACzD,IACX,CADWC,EAAA,MACRhD,EAAAG,CAAA,EAAC,iBAAA,eAAA,CAAA,EAAA,CAAA,CAAA,oDAGLmB,EAyBW,WAAA,CAvBT,GAAItB,EAAAsC,CAAA,EACJ,MAAKlB,EAAEC,EAAAA,OAAO,sBAAsB,EACpC,kBAAiBrB,EAAAoC,CAAA,CAAA,GAClBM,EAGqC1C,EAAAiD,EAAA,EAAA,YAF3BR,EAAA,2CAAAA,EAAe,MAAAvC,GACvB,cAAaF,EAAAG,CAAA,EAAC,iBAAA,0BAAA,EACd,QAASqC,CAAA,uCAEXE,EAEwB1C,EAAAkD,CAAA,EAAA,CAFQ,WAAAnE,EAAA,WAAW,SAAX,sBAAA6D,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA1C,GAAAnB,EAAA,WAAW,SAAQmB,GAAE,KAAK,QAAA,aACzD,IAAsC,KAAnCF,EAAAG,CAAA,EAAC,iBAAA,WAAA,CAAA,EAAA,CAAA,CAAA,0BAELuC,EAEwB1C,EAAAkD,CAAA,EAAA,CAFQ,WAAAnE,EAAA,WAAW,SAAX,sBAAA6D,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA1C,GAAAnB,EAAA,WAAW,SAAQmB,GAAE,KAAK,QAAA,aACzD,IAA4C,KAAzCF,EAAAG,CAAA,EAAC,iBAAA,iBAAA,CAAA,EAAA,CAAA,CAAA,0BAELuC,EAEwB1C,EAAAkD,CAAA,EAAA,CAFQ,WAAAnE,EAAA,WAAW,eAAX,sBAAA6D,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA1C,GAAAnB,EAAA,WAAW,eAAcmB,GAAE,KAAK,QAAA,aAC/D,IAA2C,KAAxCF,EAAAG,CAAA,EAAC,iBAAA,gBAAA,CAAA,EAAA,CAAA,CAAA,0BAEwBH,EAAAkC,CAAA,OAA7BnC,EAEwBC,EAAAkD,CAAA,EAAA,OAF6B,WAAAnE,EAAA,WAAW,QAAX,sBAAA6D,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA1C,GAAAnB,EAAA,WAAW,QAAOmB,GAAE,KAAK,QAAA,aAC7E,IAA8C,KAA3CF,EAAAG,CAAA,EAAC,iBAAA,mBAAA,CAAA,EAAA,CAAA,CAAA,oCAELuC,EAEwB1C,EAAAkD,CAAA,EAAA,CAFQ,WAAAnE,EAAA,WAAW,uBAAX,sBAAA6D,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA1C,GAAAnB,EAAA,WAAW,uBAAsBmB,GAAE,KAAK,QAAA,aACvE,IAAuE,KAApEF,EAAAG,CAAA,EAAC,iBAAA,4CAAA,CAAA,EAAA,CAAA,CAAA,sCAtBGoC,EAAA,KAAU,CAAA,yKCrEf,CAAA,QAAEY,EAAA,EAAYhB,EAAgC,iBAAkB,UAAU,EAC1EiB,GAAoBjB,EAAoB,iBAAkB,iBAAiB,EAC3EkB,GAAWlB,EAAsB,iBAAkB,UAAU,EACjE,OAAQmB,GAAMF,GAAkB,SAASE,EAAE,UAAU,CAAC,EAElDC,GAAoBpB,EAA4B,iBAAkB,gBAAgB,2OAiBxF,MAAMqB,EAAO1E,EAAoBC,EAAC,MAAyB,EAYrD0E,EAAkBxE,EAAI,gBAAgByE,EAAM3E,EAAA,OAAO,CAAC,CAAC,EAC3DZ,EAAY,IAAM,CACbqF,EAAK,QACRC,EAAgB,MAAQ,gBAAgBC,EAAM3E,EAAA,OAAO,CAAC,EAExD,CAAC,EAED,MAAM4E,EAAU3F,EAAS,CACxB,KAAM,CACL,OAAOqF,GAAS,KAAMC,GAAMA,EAAE,aAAeG,EAAgB,MAAM,OAAO,CAC3E,EACA,IAAIpE,EAAkB,CACrBoE,EAAgB,MAAM,QAAUpE,GAAO,UACxC,CAAA,CACA,EAEKuE,EAAiB5F,EAAS,IAAMuF,GACpC,OAAO,CAAC,CAAE,OAAAM,CAAA,IAAaF,EAAQ,OAAO,YAAYE,CAAM,CAAC,CAAC,EACtDC,EAAgB9F,EAAS,CAC9B,KAAM,CACL,OAAO4F,EAAe,MAAM,KAAMG,GAAMA,EAAE,aAAeN,EAAgB,MAAM,aAAa,CAC7F,EACA,IAAIpE,EAAwB,CAC3BoE,EAAgB,MAAM,cAAgBpE,GAAO,UAC9C,CAAA,CACA,EAGD,OAAAwB,EAAM+C,EAAgB,IAAM,CACvBA,EAAe,MAAM,SAAW,IACnCH,EAAgB,MAAM,cAAgBG,EAAe,MAAM,CAAC,EAAG,WAEjE,CAAC,cAIA7D,EAwDWC,EAAAgE,EAAA,EAAA,CAvDF,KAAMR,EAAA,sCAAAA,EAAI,MAAAtD,GAKJ0C,EAAA,EAAA,IAAAA,EAAA,EAAA,EAAA1C,GAAAA,GAAU+D,EAAAA,MAAK,OAAA,EAAA,EAJ7B,UAAA,GACC,kBAAiB5C,EAAAA,OAAO,sBACxB,KAAMoC,EAAA,MAAgB,GAAKzD,EAAAG,CAAA,mCAAsCH,EAAAG,CAAA,EAAC,iBAAA,aAAA,EAClE,SAAMyC,EAAA,EAAA,IAAAA,EAAA,EAAA,EAAA1C,GAAE+D,EAAAA,MAAK,QAAUR,EAAA,KAAe,EAAA,GA0C5B,UACV,IAEW,CAFK1E,EAAA,QAAQ,QAAxBgB,EAEWC,EAAA2C,CAAA,EAAA,OAFkB,uBAAOsB,EAAAA,MAAK,OAAA,EAAA,aACxC,IAAmC,KAAhCjE,EAAAG,CAAA,EAAC,iBAAA,QAAA,CAAA,EAAA,CAAA,CAAA,mBAGLuC,EAEW1C,EAAA2C,CAAA,EAAA,CAFD,QAAQ,UAAU,KAAK,QAAA,aAChC,IAA8E,CAA3EK,EAAAkB,EAAAnF,EAAA,QAAQ,GAAKiB,EAAAG,CAAA,2BAA8BH,EAAAG,CAAA,EAAC,iBAAA,QAAA,CAAA,EAAA,CAAA,CAAA,qBA9CjD,IAGY,CAHZuC,EAGY1C,EAAAmE,EAAA,EAAA,CAFF,WAAAV,EAAA,MAAgB,WAAhB,sBAAAb,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA1C,GAAAuD,EAAA,MAAgB,WAAUvD,GAClC,MAAOF,EAAAG,CAAA,EAAC,iBAAA,aAAA,EACT,SAAA,EAAA,iCAEDuC,EAAuD0B,GAAA,CAAhC,WAAAX,EAAA,MAAgB,aAAhB,sBAAAb,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA1C,GAAAuD,EAAA,MAAgB,aAAYvD,EAAA,yBAG5CF,EAAAmD,EAAA,OADPpD,EAGmDsE,GAAA,OAD1C,OAAQZ,EAAA,MAAgB,iBAAhB,kBAAAb,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA1C,GAAAuD,EAAA,MAAgB,iBAAgBvD,GACxC,MAAOuD,EAAA,MAAgB,gBAAhB,iBAAAb,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA1C,GAAAuD,EAAA,MAAgB,gBAAevD,EAAA,uCAE/CwC,EAMY1C,EAAAiD,EAAA,EAAA,YALFU,EAAA,2CAAAA,EAAO,MAAAzD,GACf,QAASF,EAAAqD,EAAA,EACT,YAAaI,EAAA,MAAgB,IAAMA,EAAA,MAAgB,SACnD,cAAazD,EAAAG,CAAA,EAAC,iBAAA,kBAAA,EACf,MAAM,OACN,SAAA,EAAA,4DAEDuC,EAMY1C,EAAAiD,EAAA,EAAA,YALFa,EAAA,2CAAAA,EAAa,MAAA5D,GACrB,QAAS0D,EAAA,MACT,SAAQ,CAAGH,EAAA,MAAgB,SAAWG,EAAA,MAAe,QAAM,GAAA,CAAA,EAAYH,QAAgB,IAAMA,EAAA,MAAgB,eAC7G,cAAazD,EAAAG,CAAA,EAAC,iBAAA,gBAAA,EACf,MAAM,OACN,SAAA,EAAA,4DAGMwD,EAAA,WADP5D,EAI0CuE,GAAA,OAFhC,WAAAb,EAAA,MAAgB,eAAhB,sBAAAb,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA1C,GAAAuD,EAAA,MAAgB,eAAcvD,GACtC,MAAKkB,EAAEC,EAAAA,OAAO,oCAAoC,EAClD,cAAesC,EAAA,MAAQ,aAAA,2DAGlBG,EAAA,WADP/D,EAImCwE,GAAA,OAFzB,WAAAd,EAAA,MAAgB,eAAhB,sBAAAb,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA1C,GAAAuD,EAAA,MAAgB,eAAcvD,GACtC,MAAKkB,EAAEC,EAAAA,OAAO,oCAAoC,EAClD,iBAAgByC,EAAA,KAAA,uTC7Gd,CAAE,QAAAX,EAAA,EAAYhB,EAAgC,iBAAkB,UAAU,EAEnEqC,GAAcC,GAAY,2BAA4B,IAAM,CACxE,MAAMC,EAAiBzF,EAAgB,EAAE,EACnC0F,EAAe1F,EAAgB,EAAE,EAOvC,eAAe2F,EAAoBC,EAA4B,CAC9D,MAAMC,EAAMvG,EAAY,oCAAoC,EACtD,CAAE,KAAAF,CAAA,EAAS,MAAMC,EAAM,KAC5BwG,EACApB,EAAMmB,CAAO,EACb,CAAE,gBAAiBE,EAAoB,MAAA,CAAO,EAE/CL,EAAe,MAAM,KAAKrG,CAAI,CAC/B,CAOA,eAAe2G,EAAkBH,EAA4B,CAC5D,MAAMC,EAAMvG,EAAY,kCAAkC,EACpD,CAAE,KAAAF,CAAA,EAAS,MAAMC,EAAM,KAC5BwG,EACApB,EAAMmB,CAAO,EACb,CAAE,gBAAiBE,EAAoB,MAAA,CAAO,EAE/CJ,EAAa,MAAM,KAAKtG,CAAI,CAC7B,CAOA,eAAe4G,EAAcJ,EAAmB,CAC/C,MAAMvG,EAAM,OAAO4G,EAAOL,CAAO,EAAG,CACnC,gBAAiBE,EAAoB,MAAA,CACrC,EAEGF,EAAQ,OAAS,WACpBF,EAAa,MAAQA,EAAa,MAAM,OAAQQ,GAAMA,EAAE,KAAON,EAAQ,EAAE,EAEzEH,EAAe,MAAQA,EAAe,MAAM,OAAQS,GAAMA,EAAE,KAAON,EAAQ,EAAE,CAE/E,CAOA,eAAeO,EAAcP,EAAmB,CAC/C,KAAM,CAAE,KAAAxG,CAAA,EAAS,MAAMC,EAAM,IAC5B4G,EAAOL,CAAO,EACdnB,EAAMmB,CAAO,EACb,CAAE,gBAAiBE,EAAoB,MAAA,CAAO,EAG/CM,EAAgBhH,CAAI,CACrB,CAOA,eAAeiH,EAAcT,EAAmB,CAC/C,KAAM,CAAE,KAAAxG,GAAS,MAAMC,EAAM,IAAI4G,EAAOL,CAAO,CAAC,EAChDQ,EAAgBhH,CAAI,CACrB,CAGA,OAAAkH,EAAA,EAEO,CACN,eAAAb,EACA,aAAAC,EAEA,oBAAAC,EACA,kBAAAI,EACA,cAAAC,EACA,cAAAK,EACA,cAAAF,CAAA,EAMD,eAAeI,EAAaC,EAAc,CACzC,MAAMX,EAAM,uBAAuBW,CAAI,GACjC,CAAE,KAAApH,GAAS,MAAMC,EAAM,IAA8BC,EAAYuG,CAAG,CAAC,EAC3E,OAAO,OAAO,OAAOzG,CAAI,CAC1B,CAKA,eAAekH,GAAa,CAC3BG,GAAoCpH,CAAK,EAErC6E,GACHuB,EAAe,MAAQ,MAAMc,EAAa,gBAAgB,GAE1Db,EAAa,MAAQ,MAAMa,EAAa,cAAc,EACtDd,EAAe,MAAQ,MAAMc,EAAa,oBAAoB,EAEhE,CAKA,SAASN,EAAOL,EAAmB,CAClC,MAAMY,EAAOZ,EAAQ,OAAS,WAAa,eAAiB,iBAC5D,OAAOtG,EAAY,uBAAuBkH,CAAI,IAAIZ,EAAQ,EAAE,EAAE,CAC/D,CAOA,SAASQ,EAAgBR,EAAmB,CAC3C,GAAIA,EAAQ,OAAS,WAAY,CAChC,MAAMc,EAAQhB,EAAa,MAAM,UAAWQ,GAAMA,EAAE,KAAON,EAAQ,EAAE,EACrEF,EAAa,MAAM,OAAOgB,EAAO,EAAGd,CAAO,CAC5C,KAAO,CACN,MAAMc,EAAQjB,EAAe,MAAM,UAAWS,GAAMA,EAAE,KAAON,EAAQ,EAAE,EACvEH,EAAe,MAAM,OAAOiB,EAAO,EAAGd,CAAO,CAC9C,CACD,CACD,CAAC,oICnID,MAAMxE,EAAQtB,EAKR6G,EAAQpB,GAAA,EAERnB,EAAWlB,EAAsB,iBAAkB,UAAU,EAC7D0D,EAAc7H,EAAS,IAAMqF,EAAS,KAAMC,GAAMA,EAAE,aAAejD,EAAM,QAAQ,OAAO,EAAG,IAAI,EAE/FuD,EAAiBzB,EAAsB,iBAAkB,gBAAgB,EACzE2D,EAAoB9H,EAAS,IAAM4F,EAAe,KAAMG,GAAMA,EAAE,aAAe1D,EAAM,QAAQ,aAAa,EAAG,IAAI,EAEjH0F,EAAiB9G,EAAI,EAAK,EAC1B+G,EAAShI,EAAS,IAAM,CAC7B,GAAI+H,EAAe,MAClB,MAAO,CACN,KAAM,UACN,MAAO5F,EAAE,iBAAkB,YAAY,CAAA,EAIzC,MAAM6F,EAAS3F,EAAM,QAAQ,QAAU4F,EAAc,cAC/CC,GAAQ7F,EAAM,QAAQ,eAAiB8F,GAAqBH,CAAM,EAClEI,EAAOC,GAAmBL,CAAM,EAEhCM,GAAYN,IAAWC,EAAc,cAAgBD,IAAWC,EAAc,QAC9EM,GAAU,CAACD,IAAaN,IAAWC,EAAc,SAAWD,IAAWC,EAAc,cAE3F,MAAO,CAAE,KAAAG,EAAM,MAAAF,GAAO,UAAAI,GAAW,QAAAC,EAAA,CAClC,CAAC,EAEKxI,EAAQF,GAAS,IAAMwC,EAAM,QAAQ,iBAAmB,EAAE,EAKhE,eAAemG,GAAW,CACzB,MAAMZ,EAAM,cAAcvF,EAAM,OAAO,CACxC,CAKA,eAAeoG,GAAS,CACvB,MAAM5B,EAAU,MAAM6B,GAAYC,GAA0B,CAC3D,QAAStG,EAAM,OAAA,CACf,EAEIwE,GAGL,MAAMe,EAAM,cAAcf,CAAmB,CAC9C,CAKA,eAAe+B,GAAe,CAC7Bb,EAAe,MAAQ,GACvB,GAAI,CACH,MAAMH,EAAM,cAAcvF,EAAM,OAAO,CACxC,QAAA,CACC0F,EAAe,MAAQ,EACxB,CACD,oBAIC5E,EAkEK,KAAA,CAlEA,MAAKC,EAAEC,EAAAA,OAAO,eAAe,CAAA,GACjCC,EAkBK,KAAA,KAAA,CAjBJA,EAAuD,OAAvDuF,GAAuD3C,EAAtB8B,EAAA,MAAO,KAAK,EAAA,CAAA,EAC7CtD,EAeW1C,EAAA2C,CAAA,EAAA,CAdT,aAAY3C,EAAAG,CAAA,EAAC,iBAAA,gBAAA,EACb,MAAO6F,EAAA,MAAO,MACf,QAAQ,yBACP,QAAOY,CAAA,GACG,OACV,IAAkD,CAA7BZ,EAAA,MAAO,OAAI,eAAhCjG,EAAkDC,EAAAwB,EAAA,EAAA,CAAA,IAAA,CAAA,CAAA,QAClDzB,EAMuBC,EAAA6C,CAAA,EAAA,OAJrB,MAAKzB,EAAA,CAAYC,CAAAA,EAAAA,OAAO,6BAA6B,EAAG2E,EAAA,MAAO,QAAiB3E,CAAAA,EAAAA,OAAO,+BAA+B,EAAG2E,EAAA,MAAO,SAAA,GAIhI,KAAMA,EAAA,MAAO,IAAA,+DAIlB1E,EAAiC,KAAA,KAAA4C,EAA1BnF,EAAA,QAAQ,UAAU,EAAA,CAAA,EACzBuC,EAA0B,YAAnBuE,EAAA,KAAW,EAAA,CAAA,EAClBvE,EAAgC,YAAzBwE,EAAA,KAAiB,EAAA,CAAA,EACd/G,EAAA,aAAVoC,EAeK,KAAA2F,GAAA,CAdJxF,EAaM,MAAA,CAbA,MAAKF,EAAEC,EAAAA,OAAO,+BAA+B,CAAA,IAClDK,EAAA,EAAA,EAAAP,EAKiBI,EAAA,KAAAI,EAJA5C,EAAA,QAAQ,iBAAjBgI,QADRhH,EAKiBC,EAAAgH,EAAA,EAAA,CAHf,IAAKD,EACL,YAAW/G,EAAAiH,EAAA,EACZ,WAAA,GACC,KAAMF,CAAA,8CACR5F,EAKqBI,EAAA,KAAAI,EAJL3B,EAAAjC,CAAA,EAARmJ,QADRnH,EAKqBC,EAAAmH,EAAA,EAAA,CAHnB,IAAKD,EAAK,KACV,eAAcA,EAAK,YACnB,KAAM,GACN,KAAMA,EAAK,IAAA,0DAGf5F,EA0BK,KAAA,KAAA,CAzBOvC,EAAA,SAAWA,EAAA,QAAQ,OAAI,gBAAlCoC,EAkBM,MAAA,OAlB8C,MAAKC,EAAEC,EAAAA,OAAO,4BAA4B,CAAA,GAC7FqB,EAOW1C,EAAA2C,CAAA,EAAA,CANT,aAAY3C,EAAAG,CAAA,EAAC,iBAAA,MAAA,EACb,MAAOH,EAAAG,CAAA,EAAC,iBAAA,MAAA,EACR,QAAOsG,CAAA,GACG,OACV,IAA6C,CAA7C/D,EAA6C1C,EAAA6C,CAAA,EAAA,CAA1B,KAAM7C,EAAAoH,EAAA,GAAgB,KAAA,EAAA,CAAA,MAAA,CAAA,CAAA,kCAG3C1E,EAQW1C,EAAA2C,CAAA,EAAA,CAPT,aAAY3C,EAAAG,CAAA,EAAC,iBAAA,QAAA,EACb,MAAOH,EAAAG,CAAA,EAAC,iBAAA,QAAA,EACT,QAAQ,QACP,QAAOqG,CAAA,GACG,OACV,IAA+C,CAA/C9D,EAA+C1C,EAAA6C,CAAA,EAAA,CAA5B,KAAM7C,EAAAqH,EAAA,GAAkB,KAAA,EAAA,CAAA,MAAA,CAAA,CAAA,4CAI9CtH,EAK2DC,EAAA6C,CAAA,EAAA,OAH1D,OAAA,GACC,KAAM7C,EAAAsH,EAAA,EACN,KAAMtH,EAAAG,CAAA,EAAC,iBAAA,yBAAA,EACP,MAAOH,EAAAG,CAAA,EAAC,iBAAA,yBAAA,CAAA,giBC7Ib,MAAMyF,EAAQpB,GAAA,EACR,CAAE,QAAArB,CAAA,EAAYhB,EAAgC,iBAAkB,UAAU,EAC1EoF,EAAWvJ,EAAS,IACrBmF,EACIyC,EAAM,eAEN,CACN,GAAGA,EAAM,aACT,GAAGA,EAAM,cAAA,CAGX,oBAIAzE,EAkCQ,QAAA,CAlCA,MAAKC,EAAEC,EAAAA,OAAO,YAAY,EAAG,aAAYrB,EAAAG,CAAA,EAAC,iBAAA,mBAAA,CAAA,GACjDmB,EAyBQ,QAAA,CAzBA,MAAKF,EAAEC,EAAAA,OAAO,oBAAoB,CAAA,GACzCC,EAuBK,KAAA,KAAA,CAtBJA,EAIK,KAAA,CAJA,MAAKF,EAAEC,EAAAA,OAAO,0BAA0B,CAAA,GAC5CC,EAEO,OAFPwF,GAEO5C,EADHlE,EAAAG,CAAA,EAAC,iBAAA,QAAA,CAAA,EAAA,CAAA,CAAA,KAGNmB,EAEK,KAAA,CAFA,MAAKF,EAAEC,EAAAA,OAAO,0BAA0B,CAAA,IACzCrB,EAAAG,CAAA,EAAC,iBAAA,aAAA,CAAA,EAAA,CAAA,EAELmB,EAEK,KAAA,CAFA,MAAKF,EAAEC,EAAAA,OAAO,2BAA2B,CAAA,IAC1CrB,EAAAG,CAAA,EAAC,iBAAA,kBAAA,CAAA,EAAA,CAAA,EAELmB,EAEK,KAAA,CAFA,MAAKF,EAAEC,EAAAA,OAAO,kCAAkC,CAAA,IACjDrB,EAAAG,CAAA,EAAC,iBAAA,gBAAA,CAAA,EAAA,CAAA,EAEKH,EAAAmD,CAAA,GAAVzB,EAAA,EAAAP,EAEK,UADDnB,EAAAG,CAAA,EAAC,iBAAA,eAAA,CAAA,EAAA,CAAA,YAELmB,EAIK,KAAA,CAJA,MAAKF,EAAEC,EAAAA,OAAO,2BAA2B,CAAA,GAC7CC,EAEO,OAFPkG,GAEOtD,EADHlE,EAAAG,CAAA,EAAC,iBAAA,SAAA,CAAA,EAAA,CAAA,CAAA,WAKRmB,EAMQ,QAAA,KAAA,QALPH,EAIsBI,EAAA,KAAAI,EAHH4F,EAAA,MAAX1C,QADR9E,EAIsB0H,GAAA,CAFpB,IAAK5C,EAAQ,GACb,WAAA7E,EAAAmD,CAAA,EACA,QAAA0B,CAAA,ynBC9CL,MAAM6C,EAAevF,EAGlB,iBAAkB,eAAe,EAE9BwF,EAAoBxF,EAAsB,iBAAkB,UAAU,EACtEyF,EAAoB3I,EAAIyI,EAAa,iBAAiB,EACtDG,EAAkB5I,EAAcyI,EAAa,eAAe,EAKlE,OAAA7G,EAAM+G,EAAmB,IAAM,CAC9B,MAAME,EAAc,CAACF,EAAkB,MACvC,OAAO,IAAI,UAAU,SACpB,iBACA,sBACAA,EAAkB,MAAQ,MAAQ,KAClC,CACC,QAAS,IAAMG,EAAY5H,EAAE,iBAAkB,OAAO,CAAC,EACvD,MAAO,IAAM,CACZyH,EAAkB,MAAQE,EAC1BE,GAAU7H,EAAE,iBAAkB,oBAAoB,CAAC,CACpD,CAAA,CACD,CAEF,CAAC,EAQDU,EAAMgH,EAAiB,CAACI,EAAUC,IAAa,CAE9C,OAAO,IAAI,UAAU,SACpB,iBACA,yBACAD,EAAS,KAAK,GAAG,EACjB,CACC,QAAS,IAAMF,EAAY5H,EAAE,iBAAkB,wBAAwB,CAAC,EACxE,MAAO,IAAM,CACZ6H,GAAU7H,EAAE,iBAAkB,iCAAiC,CAAC,EAChE0H,EAAgB,MAAQK,CACzB,CAAA,CACD,CAEF,CAAC,cAIA/G,EAsBO,OAAA,KAAA,CArBNG,EAEK,KAAA,CAFA,MAAKF,EAAEC,EAAAA,OAAO,0BAA0B,CAAA,IACzCrB,EAAAG,CAAA,EAAC,iBAAA,8CAAA,CAAA,EAAA,CAAA,EAGLuC,EAEwB1C,EAAAkD,CAAA,EAAA,YAFQ0E,EAAA,2CAAAA,EAAiB,MAAA1H,GAAE,KAAK,QAAA,aACvD,IAAmE,KAAhEF,EAAAG,CAAA,EAAC,iBAAA,wCAAA,CAAA,EAAA,CAAA,CAAA,4BAGLmB,EAYW,WAAA,CAZ2B,MAAKF,EAAEC,EAAAA,OAAO,2BAA2B,CAAA,GAC9EC,EAES,gBADLtB,EAAAG,CAAA,EAAC,iBAAA,uDAAA,CAAA,EAAA,CAAA,SAELgB,EAOwBI,EAAA,KAAAI,EANL3B,EAAA2H,CAAA,EAAXhE,QADR5D,EAOwBC,EAAAkD,CAAA,EAAA,CALtB,IAAKS,EAAQ,sBACLkE,EAAA,2CAAAA,EAAe,MAAA3H,GACvB,MAAOyD,EAAQ,WAChB,KAAK,6BAAA,aACL,IAAkB,CAAfX,EAAAkB,EAAAP,EAAQ,IAAI,EAAA,CAAA,CAAA,qDAVCiE,EAAA,KAAiB,CAAA,4MH5DrC,wEISA,MAAMO,EAAWhG,EAAU,iBAAkB,WAAY,CACxD,OAAQ,GACR,iBAAkB,CACjB,SAAU,KACV,QAAS,IAAA,EAEV,QAAS,EAAA,CACT,EAEKyD,EAAQpB,GAAA,EAGR4D,EAAmBD,EAAS,kBAAkB,UAAY,CAAA,EAE1DE,EAAiBF,EAAS,kBAAkB,SAAW,CAAA,EAEvDG,EAAarJ,EAAI,EAAK,EACtBsJ,EAAatJ,EAAA,EAOnB,eAAeuJ,EAAW3D,EAA6B,CAEtD,GADAyD,EAAW,MAAQ,GACf,CAAA,CAACzD,EAIL,GAAI,CACCsD,EAAS,QACZ,MAAMvC,EAAM,oBAAoBf,CAAO,EAEvC,MAAMe,EAAM,kBAAkBf,CAAO,EAEtC0D,EAAW,MAAQ,MACpB,OAASE,EAAO,CACfC,GAAO,MAAM,iCAAkC,CAAE,MAAAD,CAAA,CAAO,EACxDH,EAAW,MAAQ,EACpB,CACD,mBAICvI,EAyEoBC,EAAA2I,EAAA,EAAA,CAxElB,UAAS3I,EAAAmI,CAAA,EAAS,OAClB,KAAMnI,EAAAG,CAAA,EAAC,iBAAA,kBAAA,EACP,YAAiBH,EAAAG,CAAA,EAAC,iBAAA,qHAAA,GAAiJH,EAAAmI,CAAA,EAAS,YAAqBnI,EAAAG,CAAA,EAAC,iBAAA,yEAAA,kBAQlM,IAA0C,EAD3CuB,EAAA,EAAA,EAAAP,EAKaI,EAAA,KAAAI,EAJa3B,EAAAoI,CAAA,EAAgB,CAAlCQ,EAASjD,SADjB5F,EAKaC,EAAA6I,EAAA,EAAA,CAHX,IAAKlD,EACN,KAAK,OAAA,aACL,IAAa,KAAViD,CAAO,EAAA,CAAA,CAAA,uBAIXlH,EAAA,EAAA,EAAAP,EA0BaI,EAAA,KAAAI,EAzBmB3B,EAAAqI,CAAA,EAAc,CAArCS,EAAYC,SADrBhJ,EA0BaC,EAAA6I,EAAA,EAAA,CAxBX,IAAKE,EACN,KAAK,SAAA,aACL,IAgBI,CAhBJzH,EAgBI,IAAA,KAAA,CAfayH,IAAM,YAAtB5H,EAEWI,EAAA,CAAA,IAAA,GAAA,KADPvB,EAAAG,CAAA,EAAC,iBAAA,sDAAA,CAAA,EAAA,CAAA,CAAA,OAEgB4I,IAAM,WAA3B5H,EAEWI,EAAA,CAAA,IAAA,GAAA,KADPvB,EAAAG,CAAA,EAAC,iBAAA,qDAAA,CAAA,EAAA,CAAA,CAAA,YAELgB,EAEWI,EAAA,CAAA,IAAA,GAAA,CADPyB,EAAAkB,EAAAlE,EAAAG,CAAA,iDAAoD,OAAA4I,EAAM,CAAA,EAAA,CAAA,CAAA,OACnD/F,EAAA,MACRhD,EAAAgJ,EAAA,wPAAgRF,EAAW,MAAA,QAO/RxH,EAIK,KAAA,CAJA,MAAKF,EAAEC,EAAAA,OAAO,sCAAsC,EAAG,aAAYrB,EAAAG,CAAA,EAAC,iBAAA,oBAAA,CAAA,UACxEgB,EAEKI,EAAA,KAAAI,EAFiBmH,EAAXnF,IAAXjC,EAAA,EAAAP,EAEK,KAAA,CAF8B,IAAKwC,CAAA,IACpCA,CAAO,EAAA,CAAA,gDAcbjB,EAAwBuG,EAAA,EAExBvG,EAQW1C,EAAA2C,CAAA,EAAA,CAPT,MAAKvB,EAAEC,EAAAA,OAAO,yCAAyC,EACxD,QAAQ,UACP,QAAKuB,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA1C,GAAEoI,EAAA,MAAU,CAAIA,EAAA,MAAA,GACX,OACV,IAAoC,CAApC5F,EAAoC1C,EAAA6C,CAAA,EAAA,CAAjB,KAAM7C,EAAAkJ,EAAA,GAAO,KAAA,EAAA,CAAA,MAAA,CAAA,CAAA,aACtB,IACX,CADWlG,EAAA,MACRhD,EAAAG,CAAA,EAAC,iBAAA,sBAAA,CAAA,EAAA,CAAA,CAAA,qBAGLuC,EAGuBiE,GAAA,YAFb4B,EAAA,2CAAAA,EAAU,MAAArI,GACX,KAAMoI,EAAA,qCAAAA,EAAU,MAAApI,GACvB,QAAOsI,CAAA,gCAEgBxI,EAAAmI,CAAA,EAAS,aAAlCpI,EAA6CoJ,GAAA,CAAA,IAAA,CAAA,CAAA,mWCzH/C,MAAMC,EAAoBjH,EAIvB,iBAAkB,oBAAoB,EAEnCkH,EAAUpK,EAAI,EAAK,EACnBqK,EAAWrK,EAAImK,EAAkB,IAAI,EACrCG,EAAWtK,EAAImK,EAAkB,QAAQ,EAE/C1D,GAAoCpH,CAAK,EAKzC,eAAekL,GAAW,CACzB,GAAI,CACHH,EAAQ,MAAQ,GAChB,KAAM,CAAE,KAAAhL,GAAS,MAAMC,EAAM,KAAcC,EAAY,uCAAuC,EAAG,CAEhG,IAAK6K,EAAkB,IACvB,KAAME,EAAS,MACf,SAAUC,EAAS,KAAA,EACjB,CAAE,gBAAiBxE,EAAoB,OAAQ,EAClD,GAAI1G,EAAM,CACT0J,EAAY5H,EAAE,iBAAkB,0BAA0B,CAAC,EAC3D,MACD,CACD,OAASN,EAAG,CACX6I,GAAO,MAAM7I,CAAU,CAExB,QAAA,CACCwJ,EAAQ,MAAQ,EACjB,CAEArB,GAAU7H,EAAE,iBAAkB,mCAAmC,CAAC,EAClEmJ,EAAS,MAAQF,EAAkB,KACnCG,EAAS,MAAQH,EAAkB,QACpC,mBAICrJ,EA0BoBC,EAAA2I,EAAA,EAAA,CAzBlB,KAAM3I,EAAAG,CAAA,EAAC,iBAAA,oBAAA,EACP,YAAaH,EAAAG,CAAA,EAAC,iBAAA,gHAAA,CAAA,aACf,IAsBO,CAtBPmB,EAsBO,OAAA,CArBN,GAAG,qBACF,MAAKF,EAAEC,EAAAA,OAAO,4BAA4B,EAC3C,aAAa,QACZ,YAAgBmI,EAAQ,CAAA,SAAA,CAAA,CAAA,GACzB9G,EAIyC1C,EAAAmE,EAAA,EAAA,YAH/BmF,EAAA,2CAAAA,EAAQ,MAAApJ,GACjB,KAAK,WACL,aAAa,QACZ,MAAOF,EAAAG,CAAA,EAAC,iBAAA,OAAA,CAAA,iCACVuC,EAI4C1C,EAAAyJ,EAAA,EAAA,YAHlCF,EAAA,2CAAAA,EAAQ,MAAArJ,GACjB,KAAK,WACL,aAAa,QACZ,MAAOF,EAAAG,CAAA,EAAC,iBAAA,UAAA,CAAA,iCACVuC,EAMW1C,EAAA2C,CAAA,EAAA,CALT,MAAKvB,EAAEC,EAAAA,OAAO,oCAAoC,EAClD,SAAUgI,EAAA,MACX,QAAQ,UACR,KAAK,QAAA,aACL,IAA6E,KAA1EA,EAAA,MAAUrJ,EAAAG,CAAA,EAAC,iBAAA,UAAA,EAAiCH,EAAAG,CAAA,EAAC,iBAAA,MAAA,CAAA,EAAA,CAAA,CAAA,8WC1EnDuC,EAA2BgH,EAAA,EAC3BhH,EAA4BiH,EAAA,CAAA,UCFvBC,GAAQC,GAAA,EACRC,EAAMC,GAAUC,EAAgB,EACtCF,EAAI,OAAO,SAAW,iBACtBA,EAAI,IAAIF,EAAK,EACbE,EAAI,MAAM,iBAAiB","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/dist/files_reminders-init.css b/dist/files_reminders-init.css index d1c1169864904..ff4dec022156c 100644 --- a/dist/files_reminders-init.css +++ b/dist/files_reminders-init.css @@ -1,20 +1,23 @@ /* extracted by css-entry-points-plugin */ @import './files_reminders-files_reminders-init-DFVBcfn7.chunk.css'; -@import './NcNoteCard-CVhtNL04-DopLwvn9.chunk.css'; -@import './mdi-BYHcrfvW.chunk.css'; -@import './index-JpgrUA2Z-PxDoi4mB.chunk.css'; +@import './AccountOutline-Bx-uhVVO.chunk.css'; +@import './NcModal-MC_HktJd-YC6kxNbR.chunk.css'; @import './NcDateTime-DXOHXnuu.chunk.css'; +@import './Web-BYHcrfvW.chunk.css'; @import './NcSelect-Czzsi3P_-DxGOLvnt.chunk.css'; @import './NcInputField-Bwsh2aHY-_gyGHRGx.chunk.css'; -@import './NcCheckboxRadioSwitch-BCSKF7Tk-BgdwjgMO.chunk.css'; +@import './mdi-Jq77EThs.chunk.css'; +@import './index-JpgrUA2Z-CX17yN4T.chunk.css'; +@import './NcContent-BR_nMwKN-BSxKRQfD.chunk.css'; @import './index-DoZPzs7J.chunk.css'; -@import './PencilOutline-Bq_6hmXG.chunk.css'; -@import './NcAvatar-DmUGApWA-B-07Svbi.chunk.css'; -@import './NcRichText-CBMtJzE_-Ctfl9_Xi.chunk.css'; @import './NcPasswordField-djttkA5Q-2EzJaBaw.chunk.css'; @import './NcBreadcrumbs-DYfGaSjT-CLvNFon0.chunk.css'; +@import './PencilOutline-Bq_6hmXG.chunk.css'; +@import './NcAvatar-DmUGApWA-B-07Svbi.chunk.css'; @import './NcColorPicker-Kc0JqRtp-BOLDG5h-.chunk.css'; @import './NcEmojiPicker-pM4Pg2yq-BHtXoCfG.chunk.css'; +@import './NcCheckboxRadioSwitch-BCSKF7Tk-BgdwjgMO.chunk.css'; +@import './NcRichText-CBMtJzE_-DAm7eJJb.chunk.css'; @import './index-BrN_nqOS.chunk.css'; @import './TrayArrowDown-CMlC-wJV.chunk.css'; @import './NcGuestContent-j8ai4O1K-D0718NyY.chunk.css'; diff --git a/dist/files_reminders-init.mjs b/dist/files_reminders-init.mjs index 6f1f6c6c4cbd0..bd13b6f73a593 100644 --- a/dist/files_reminders-init.mjs +++ b/dist/files_reminders-init.mjs @@ -1,2 +1,2 @@ -import{c as g,f as l}from"./index-BKfQ4diD.chunk.mjs";import{c as X}from"./dav-Bns9Alug.chunk.mjs";import{e as L,g as K}from"./index-6_gsQFyp.chunk.mjs";import{a as Y,t as i}from"./translation-DoG5ZELJ-gw0g4US-.chunk.mjs";import{c as $}from"./index-BfylblLb.chunk.mjs";import{a as R}from"./createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs";import{_ as ee}from"./NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-CAvY10OW.chunk.mjs";import{N as F,c as N}from"./NcNoteCard-CVhtNL04-hwuc093N.chunk.mjs";import"./index-DZnagzmP.chunk.mjs";import{N as te}from"./NcBreadcrumbs-DYfGaSjT-DHeGymVL.chunk.mjs";import{N as re,a as f,e as H,b as ie}from"./index-JpgrUA2Z-BFiKKJ1W.chunk.mjs";import"./NcAvatar-DmUGApWA-DBHt6M62.chunk.mjs";import"./NcRichText-CBMtJzE_-bvZFA37H.chunk.mjs";import"./mdi-D55n0uzy.chunk.mjs";import"./NcCheckboxRadioSwitch-BCSKF7Tk-yPckcGKs.chunk.mjs";import"./NcColorPicker-Kc0JqRtp-VtydDeG1.chunk.mjs";import"./TrayArrowDown-DV7s2Yis.chunk.mjs";import"./NcSelect-Czzsi3P_-DLFUGW7z.chunk.mjs";import"./NcEmojiPicker-pM4Pg2yq-C_Dpe77I.chunk.mjs";import"./index-BZk0T9Q-.chunk.mjs";/* empty css */import"./NcInputField-Bwsh2aHY-CHbAfY0u.chunk.mjs";import"./NcPasswordField-djttkA5Q-2g87vOpY.chunk.mjs";import"./TrashCanOutline-CvWRJ8GE.chunk.mjs";import"./ContentCopy-DVkZwwZt.chunk.mjs";import"./NcUserBubble-DPAmU2_J-BCvWAzcB.chunk.mjs";import"./PencilOutline-DCq8EKwg.chunk.mjs";import"./colors-Go3zmZRD-DU6ImAGi.chunk.mjs";import{b as ae,r as m,Z as ne,A as se,c as y,l as I,o as b,w as o,k as de,H as oe,e as D,u as n,g as u,t as c}from"./runtime-dom.esm-bundler-BrYCUcZF.chunk.mjs";import{a as le}from"./index-xFugdZPW.chunk.mjs";import"./string_decoder-BO00msnV.chunk.mjs";import"./index-DY1sONrk.chunk.mjs";const me='';async function B(e,t){const r=R("/apps/files_reminders/api/v1/{fileId}",{fileId:e});return(await $.put(r,{dueDate:t.toISOString()})).data.ocs.data}async function W(e){const t=R("/apps/files_reminders/api/v1/{fileId}",{fileId:e});return(await $.delete(t)).data.ocs.data}var p=(e=>(e.LaterToday="later-today",e.Tomorrow="tomorrow",e.ThisWeekend="this-weekend",e.NextWeek="next-week",e))(p||{});function M(){const e=new Date;return e.setHours(0,0,0,0),e.setDate(e.getDate()-e.getDay()+1),new Date(e)}function V(e){new Date(e).setHours(0,0,0,0);const t=new Date(e.getFullYear(),0,1,0,0,0,0),r=(e.getTime()-t.getTime())/864e5;return Math.ceil((r+t.getDay()+1)/7)}function ue(e,t){return V(e)===V(t)&&e.getFullYear()===t.getFullYear()}function ce(e,t){return e.getDate()===t.getDate()&&e.getMonth()===t.getMonth()&&e.getFullYear()===t.getFullYear()}function _(e){return{"later-today":()=>{const t=new Date,r=new Date;r.setHours(18,0,0,0);const s=new Date;return s.setHours(17,0,0,0),t>=s?null:r},tomorrow:()=>{const t=new Date,r=new Date;return r.setDate(t.getDate()+1),r.setHours(8,0,0,0),r},"this-weekend":()=>{const t=new Date;if([5,6,0].includes(t.getDay()))return null;const r=new Date,s=M();return r.setDate(s.getDate()+5),r.setHours(8,0,0,0),r},"next-week":()=>{if(new Date().getDay()===0)return null;const t=new Date,r=M();return t.setDate(r.getDate()+7),t.setHours(8,0,0,0),t}}[e]()}function fe(){const e=new Date,t=new Date;return t.setHours(e.getHours()+2,0,0,0),t}function P(e){let t={hour:"numeric",minute:"2-digit"};const r=new Date;return ce(e,r)||(t={...t,weekday:"short"}),ue(e,r)||(t={...t,month:"short",day:"numeric"}),e.getFullYear()!==r.getFullYear()&&(t={...t,year:"numeric"}),e.toLocaleString(Y(),t)}function h(e){let t={month:"long",day:"numeric",weekday:"long",hour:"numeric",minute:"2-digit"};const r=new Date;return e.getFullYear()!==r.getFullYear()&&(t={...t,year:"numeric"}),e.toLocaleString(Y(),t)}const ge=new g({id:"clear-reminder",displayName:()=>i("files_reminders","Clear reminder"),title:({nodes:e})=>{const t=e.at(0),r=new Date(t.attributes["reminder-due-date"]);return`${i("files_reminders","Clear reminder")} – ${h(r)}`},iconSvgInline:()=>me,enabled:({nodes:e})=>e.length!==1?!1:!!e.at(0).attributes["reminder-due-date"],async exec({nodes:e}){const t=e.at(0);if(t.fileid)try{return await W(t.fileid),t.attributes["reminder-due-date"]="",L("files:node:updated",t),!0}catch{return!1}return null},order:19}),E='',S=K().setApp("files_reminders").detectUser().build(),pe=ae({__name:"SetCustomReminderModal",props:{node:{}},emits:["close"],setup(e,{emit:t}){const r=e,s=t,k=m(!1),C=m(!1),w=m(!0),d=m(),x=m(new Date);ne(()=>{const a=r.node.attributes["reminder-due-date"]?new Date(r.node.attributes["reminder-due-date"]):void 0;k.value=!!a,w.value=!0,C.value=!0,d.value=a??fe(),x.value=new Date}),se(()=>{const a=document.getElementById("set-custom-reminder");a.focus(),k.value||a.showPicker()});async function j(){if(!(d.value instanceof Date)||isNaN(d.value.getTime())){f(i("files_reminders","Please choose a valid date & time"));return}try{await B(r.node.fileid,d.value);const a=r.node.clone();a.attributes["reminder-due-date"]=d.value.toISOString(),L("files:node:updated",a),H(i("files_reminders",'Reminder set for "{fileName}"',{fileName:r.node.displayname})),v()}catch(a){S.error("Failed to set reminder",{error:a}),f(i("files_reminders","Failed to set reminder"))}}async function G(){try{await W(r.node.fileid);const a=r.node.clone();a.attributes["reminder-due-date"]="",L("files:node:updated",a),H(i("files_reminders",'Reminder cleared for "{fileName}"',{fileName:r.node.displayname})),v()}catch(a){S.error("Failed to clear reminder",{error:a}),f(i("files_reminders","Failed to clear reminder"))}}function v(){C.value=!1,s("close")}function J(){const a=document.getElementById("set-custom-reminder");w.value=a.checkValidity()}return(a,A)=>C.value?(b(),y(n(re),{key:0,name:n(i)("files_reminders","Set reminder for '{fileName}'",{fileName:e.node.displayname}),"out-transition":"",size:"small","close-on-click-outside":"",onClosing:v},{actions:o(()=>[D(n(N),{variant:"tertiary",onClick:v},{default:o(()=>[u(c(n(i)("files_reminders","Cancel")),1)]),_:1}),k.value?(b(),y(n(N),{key:0,onClick:G},{default:o(()=>[u(c(n(i)("files_reminders","Clear reminder")),1)]),_:1})):I("",!0),D(n(N),{disabled:!w.value,variant:"primary",form:"set-custom-reminder-form",type:"submit"},{default:o(()=>[u(c(n(i)("files_reminders","Set reminder")),1)]),_:1},8,["disabled"])]),default:o(()=>[de("form",{id:"set-custom-reminder-form",class:"custom-reminder-modal",onSubmit:oe(j,["prevent"])},[D(n(te),{id:"set-custom-reminder",modelValue:d.value,"onUpdate:modelValue":A[0]||(A[0]=Q=>d.value=Q),label:n(i)("files_reminders","Reminder at custom date & time"),min:x.value,required:!0,type:"datetime-local",onInput:J},null,8,["modelValue","label","min"]),w.value&&d.value?(b(),y(n(F),{key:0,type:"info"},{default:o(()=>[u(c(n(i)("files_reminders","We will remind you of this file"))+" ",1),D(n(ee),{timestamp:d.value},null,8,["timestamp"])]),_:1})):(b(),y(n(F),{key:1,type:"error"},{default:o(()=>[u(c(n(i)("files_reminders","Please choose a valid date & time")),1)]),_:1}))],32)]),_:1},8,["name"])):I("",!0)}}),we=le(pe,[["__scopeId","data-v-a860b574"]]);async function Z(e){await ie(we,{node:e})}const ve=new g({id:"reminder-status",inline:()=>!0,displayName:()=>"",title:({nodes:e})=>{const t=e.at(0),r=new Date(t.attributes["reminder-due-date"]);return`${i("files_reminders","Reminder set")} – ${h(r)}`},iconSvgInline:()=>E,enabled:({nodes:e})=>e.length!==1?!1:!!e.at(0).attributes["reminder-due-date"],async exec({nodes:e}){const t=e.at(0);return await Z(t),null},order:-15}),ye='',T="set-reminder-menu",be=new g({id:T,displayName:()=>i("files_reminders","Set reminder"),iconSvgInline:()=>E,enabled:({nodes:e,view:t})=>t.id==="trashbin"||e.length!==1?!1:e.at(0).attributes["reminder-due-date"]!==void 0,async exec(){return null},order:20}),De=new g({id:"set-reminder-custom",displayName:()=>i("files_reminders","Custom reminder"),title:()=>i("files_reminders","Reminder at custom date & time"),iconSvgInline:()=>ye,enabled:({nodes:e,view:t})=>t.id==="trashbin"||e.length!==1?!1:e.at(0).attributes["reminder-due-date"]!==void 0,parent:T,async exec({nodes:e}){const t=e.at(0);return Z(t),null},order:22}),O={dateTimePreset:p.LaterToday,label:i("files_reminders","Later today"),ariaLabel:i("files_reminders","Set reminder for later today"),dateString:"",verboseDateString:""},U={dateTimePreset:p.Tomorrow,label:i("files_reminders","Tomorrow"),ariaLabel:i("files_reminders","Set reminder for tomorrow"),dateString:"",verboseDateString:""},q={dateTimePreset:p.ThisWeekend,label:i("files_reminders","This weekend"),ariaLabel:i("files_reminders","Set reminder for this weekend"),dateString:"",verboseDateString:""},z={dateTimePreset:p.NextWeek,label:i("files_reminders","Next week"),ariaLabel:i("files_reminders","Set reminder for next week"),dateString:"",verboseDateString:""};function Le(e){return new g({id:`set-reminder-${e.dateTimePreset}`,displayName:()=>`${e.label} – ${e.dateString}`,title:()=>`${e.ariaLabel} – ${e.verboseDateString}`,iconSvgInline:()=>"",enabled:({nodes:t,view:r})=>r.id==="trashbin"||t.length!==1?!1:t.at(0).attributes["reminder-due-date"]!==void 0&&!!_(e.dateTimePreset),parent:T,async exec({nodes:t}){const r=t.at(0);if(!r.fileid)return S.error("Failed to set reminder, missing file id"),f(i("files_reminders","Failed to set reminder")),null;try{const s=_(e.dateTimePreset);await B(r.fileid,s),r.attributes["reminder-due-date"]=s.toISOString(),L("files:node:updated",r),H(i("files_reminders",'Reminder set for "{fileName}"',{fileName:r.basename}))}catch(s){S.error("Failed to set reminder",{error:s}),f(i("files_reminders","Failed to set reminder"))}return null},order:21})}[O,U,q,z].forEach(e=>{const t=_(e.dateTimePreset);t&&(e.dateString=P(t),e.verboseDateString=h(t),setInterval(()=>{const r=_(e.dateTimePreset);r&&(e.dateString=P(r),e.verboseDateString=h(r))},1e3*30*60))});const _e=[O,U,q,z].map(Le);X("nc:reminder-due-date",{nc:"http://nextcloud.org/ns"}),l(ve),l(ge),l(be),l(De),_e.forEach(e=>l(e)); +import{c as p,f as l}from"./index-CfoF28kA.chunk.mjs";import{c as X}from"./dav-CsGtFpls.chunk.mjs";import{e as L,g as K}from"./index-Bndk0DrU.chunk.mjs";import{a as Y,t as i}from"./string_decoder-vT-u9WbV.chunk.mjs";import{c as $}from"./index-DVH_Kr3Q.chunk.mjs";import{a as R}from"./createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs";import{_ as ee}from"./NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-BNncp1Y1.chunk.mjs";import{b as N}from"./AccountOutline-BlW-6JqD.chunk.mjs";import"./index-FxQbLoUx.chunk.mjs";import{N as te}from"./NcBreadcrumbs-DYfGaSjT-BPFs0jvP.chunk.mjs";import"./NcModal-MC_HktJd-DqeuH-fk.chunk.mjs";import"./NcAvatar-DmUGApWA-xbPVEdSn.chunk.mjs";import"./NcContent-BR_nMwKN-DuxjkyFF.chunk.mjs";import"./Web-aYJacExm.chunk.mjs";import"./NcCheckboxRadioSwitch-BCSKF7Tk-B1Kcz6gU.chunk.mjs";import"./NcColorPicker-Kc0JqRtp-G7GArS5K.chunk.mjs";import"./TrayArrowDown-CEVYjTiD.chunk.mjs";import{N as re,a as f,e as H,b as ie}from"./index-JpgrUA2Z-BXxDc_if.chunk.mjs";import"./NcSelect-Czzsi3P_-BKaYvmLF.chunk.mjs";import"./NcEmojiPicker-pM4Pg2yq-CYkSkF_Y.chunk.mjs";import"./index-QzsMEHKe.chunk.mjs";import"./NcRichText-CBMtJzE_-BrKByk17.chunk.mjs";/* empty css */import"./NcInputField-Bwsh2aHY-Cz27INBW.chunk.mjs";import{N as A}from"./mdi-BpC5Cj53.chunk.mjs";import"./NcPasswordField-djttkA5Q-Dz7uhHFj.chunk.mjs";import"./TrashCanOutline-DglPBhgI.chunk.mjs";import"./ContentCopy-s5fS3y5J.chunk.mjs";import"./NcUserBubble-DPAmU2_J-D9jxXA1V.chunk.mjs";import"./PencilOutline-BSRAQiy1.chunk.mjs";import"./colors-Go3zmZRD-DNxaZwS4.chunk.mjs";import{b as ae,r as m,M as ne,A as se,c as y,l as F,o as b,w as d,k as oe,H as de,e as D,u as n,g as u,t as c}from"./runtime-dom.esm-bundler-DdtEg5E9.chunk.mjs";import{a as le}from"./index-DCpg1aui.chunk.mjs";import"./public-uQ6dl0vH.chunk.mjs";import"./index-BGtOTwEf.chunk.mjs";const me='';async function B(e,t){const r=R("/apps/files_reminders/api/v1/{fileId}",{fileId:e});return(await $.put(r,{dueDate:t.toISOString()})).data.ocs.data}async function W(e){const t=R("/apps/files_reminders/api/v1/{fileId}",{fileId:e});return(await $.delete(t)).data.ocs.data}var g=(e=>(e.LaterToday="later-today",e.Tomorrow="tomorrow",e.ThisWeekend="this-weekend",e.NextWeek="next-week",e))(g||{});function I(){const e=new Date;return e.setHours(0,0,0,0),e.setDate(e.getDate()-e.getDay()+1),new Date(e)}function V(e){new Date(e).setHours(0,0,0,0);const t=new Date(e.getFullYear(),0,1,0,0,0,0),r=(e.getTime()-t.getTime())/864e5;return Math.ceil((r+t.getDay()+1)/7)}function ue(e,t){return V(e)===V(t)&&e.getFullYear()===t.getFullYear()}function ce(e,t){return e.getDate()===t.getDate()&&e.getMonth()===t.getMonth()&&e.getFullYear()===t.getFullYear()}function _(e){return{"later-today":()=>{const t=new Date,r=new Date;r.setHours(18,0,0,0);const s=new Date;return s.setHours(17,0,0,0),t>=s?null:r},tomorrow:()=>{const t=new Date,r=new Date;return r.setDate(t.getDate()+1),r.setHours(8,0,0,0),r},"this-weekend":()=>{const t=new Date;if([5,6,0].includes(t.getDay()))return null;const r=new Date,s=I();return r.setDate(s.getDate()+5),r.setHours(8,0,0,0),r},"next-week":()=>{if(new Date().getDay()===0)return null;const t=new Date,r=I();return t.setDate(r.getDate()+7),t.setHours(8,0,0,0),t}}[e]()}function fe(){const e=new Date,t=new Date;return t.setHours(e.getHours()+2,0,0,0),t}function P(e){let t={hour:"numeric",minute:"2-digit"};const r=new Date;return ce(e,r)||(t={...t,weekday:"short"}),ue(e,r)||(t={...t,month:"short",day:"numeric"}),e.getFullYear()!==r.getFullYear()&&(t={...t,year:"numeric"}),e.toLocaleString(Y(),t)}function h(e){let t={month:"long",day:"numeric",weekday:"long",hour:"numeric",minute:"2-digit"};const r=new Date;return e.getFullYear()!==r.getFullYear()&&(t={...t,year:"numeric"}),e.toLocaleString(Y(),t)}const pe=new p({id:"clear-reminder",displayName:()=>i("files_reminders","Clear reminder"),title:({nodes:e})=>{const t=e.at(0),r=new Date(t.attributes["reminder-due-date"]);return`${i("files_reminders","Clear reminder")} – ${h(r)}`},iconSvgInline:()=>me,enabled:({nodes:e})=>e.length!==1?!1:!!e.at(0).attributes["reminder-due-date"],async exec({nodes:e}){const t=e.at(0);if(t.fileid)try{return await W(t.fileid),t.attributes["reminder-due-date"]="",L("files:node:updated",t),!0}catch{return!1}return null},order:19}),E='',S=K().setApp("files_reminders").detectUser().build(),ge=ae({__name:"SetCustomReminderModal",props:{node:{}},emits:["close"],setup(e,{emit:t}){const r=e,s=t,k=m(!1),C=m(!1),w=m(!0),o=m(),x=m(new Date);ne(()=>{const a=r.node.attributes["reminder-due-date"]?new Date(r.node.attributes["reminder-due-date"]):void 0;k.value=!!a,w.value=!0,C.value=!0,o.value=a??fe(),x.value=new Date}),se(()=>{const a=document.getElementById("set-custom-reminder");a.focus(),k.value||a.showPicker()});async function j(){if(!(o.value instanceof Date)||isNaN(o.value.getTime())){f(i("files_reminders","Please choose a valid date & time"));return}try{await B(r.node.fileid,o.value);const a=r.node.clone();a.attributes["reminder-due-date"]=o.value.toISOString(),L("files:node:updated",a),H(i("files_reminders",'Reminder set for "{fileName}"',{fileName:r.node.displayname})),v()}catch(a){S.error("Failed to set reminder",{error:a}),f(i("files_reminders","Failed to set reminder"))}}async function G(){try{await W(r.node.fileid);const a=r.node.clone();a.attributes["reminder-due-date"]="",L("files:node:updated",a),H(i("files_reminders",'Reminder cleared for "{fileName}"',{fileName:r.node.displayname})),v()}catch(a){S.error("Failed to clear reminder",{error:a}),f(i("files_reminders","Failed to clear reminder"))}}function v(){C.value=!1,s("close")}function J(){const a=document.getElementById("set-custom-reminder");w.value=a.checkValidity()}return(a,M)=>C.value?(b(),y(n(re),{key:0,name:n(i)("files_reminders","Set reminder for '{fileName}'",{fileName:e.node.displayname}),"out-transition":"",size:"small","close-on-click-outside":"",onClosing:v},{actions:d(()=>[D(n(N),{variant:"tertiary",onClick:v},{default:d(()=>[u(c(n(i)("files_reminders","Cancel")),1)]),_:1}),k.value?(b(),y(n(N),{key:0,onClick:G},{default:d(()=>[u(c(n(i)("files_reminders","Clear reminder")),1)]),_:1})):F("",!0),D(n(N),{disabled:!w.value,variant:"primary",form:"set-custom-reminder-form",type:"submit"},{default:d(()=>[u(c(n(i)("files_reminders","Set reminder")),1)]),_:1},8,["disabled"])]),default:d(()=>[oe("form",{id:"set-custom-reminder-form",class:"custom-reminder-modal",onSubmit:de(j,["prevent"])},[D(n(te),{id:"set-custom-reminder",modelValue:o.value,"onUpdate:modelValue":M[0]||(M[0]=Q=>o.value=Q),label:n(i)("files_reminders","Reminder at custom date & time"),min:x.value,required:!0,type:"datetime-local",onInput:J},null,8,["modelValue","label","min"]),w.value&&o.value?(b(),y(n(A),{key:0,type:"info"},{default:d(()=>[u(c(n(i)("files_reminders","We will remind you of this file"))+" ",1),D(n(ee),{timestamp:o.value},null,8,["timestamp"])]),_:1})):(b(),y(n(A),{key:1,type:"error"},{default:d(()=>[u(c(n(i)("files_reminders","Please choose a valid date & time")),1)]),_:1}))],32)]),_:1},8,["name"])):F("",!0)}}),we=le(ge,[["__scopeId","data-v-a860b574"]]);async function O(e){await ie(we,{node:e})}const ve=new p({id:"reminder-status",inline:()=>!0,displayName:()=>"",title:({nodes:e})=>{const t=e.at(0),r=new Date(t.attributes["reminder-due-date"]);return`${i("files_reminders","Reminder set")} – ${h(r)}`},iconSvgInline:()=>E,enabled:({nodes:e})=>e.length!==1?!1:!!e.at(0).attributes["reminder-due-date"],async exec({nodes:e}){const t=e.at(0);return await O(t),null},order:-15}),ye='',T="set-reminder-menu",be=new p({id:T,displayName:()=>i("files_reminders","Set reminder"),iconSvgInline:()=>E,enabled:({nodes:e,view:t})=>t.id==="trashbin"||e.length!==1?!1:e.at(0).attributes["reminder-due-date"]!==void 0,async exec(){return null},order:20}),De=new p({id:"set-reminder-custom",displayName:()=>i("files_reminders","Custom reminder"),title:()=>i("files_reminders","Reminder at custom date & time"),iconSvgInline:()=>ye,enabled:({nodes:e,view:t})=>t.id==="trashbin"||e.length!==1?!1:e.at(0).attributes["reminder-due-date"]!==void 0,parent:T,async exec({nodes:e}){const t=e.at(0);return O(t),null},order:22}),Z={dateTimePreset:g.LaterToday,label:i("files_reminders","Later today"),ariaLabel:i("files_reminders","Set reminder for later today"),dateString:"",verboseDateString:""},U={dateTimePreset:g.Tomorrow,label:i("files_reminders","Tomorrow"),ariaLabel:i("files_reminders","Set reminder for tomorrow"),dateString:"",verboseDateString:""},q={dateTimePreset:g.ThisWeekend,label:i("files_reminders","This weekend"),ariaLabel:i("files_reminders","Set reminder for this weekend"),dateString:"",verboseDateString:""},z={dateTimePreset:g.NextWeek,label:i("files_reminders","Next week"),ariaLabel:i("files_reminders","Set reminder for next week"),dateString:"",verboseDateString:""};function Le(e){return new p({id:`set-reminder-${e.dateTimePreset}`,displayName:()=>`${e.label} – ${e.dateString}`,title:()=>`${e.ariaLabel} – ${e.verboseDateString}`,iconSvgInline:()=>"",enabled:({nodes:t,view:r})=>r.id==="trashbin"||t.length!==1?!1:t.at(0).attributes["reminder-due-date"]!==void 0&&!!_(e.dateTimePreset),parent:T,async exec({nodes:t}){const r=t.at(0);if(!r.fileid)return S.error("Failed to set reminder, missing file id"),f(i("files_reminders","Failed to set reminder")),null;try{const s=_(e.dateTimePreset);await B(r.fileid,s),r.attributes["reminder-due-date"]=s.toISOString(),L("files:node:updated",r),H(i("files_reminders",'Reminder set for "{fileName}"',{fileName:r.basename}))}catch(s){S.error("Failed to set reminder",{error:s}),f(i("files_reminders","Failed to set reminder"))}return null},order:21})}[Z,U,q,z].forEach(e=>{const t=_(e.dateTimePreset);t&&(e.dateString=P(t),e.verboseDateString=h(t),setInterval(()=>{const r=_(e.dateTimePreset);r&&(e.dateString=P(r),e.verboseDateString=h(r))},1e3*30*60))});const _e=[Z,U,q,z].map(Le);X("nc:reminder-due-date",{nc:"http://nextcloud.org/ns"}),l(ve),l(pe),l(be),l(De),_e.forEach(e=>l(e)); //# sourceMappingURL=files_reminders-init.mjs.map diff --git a/dist/files_reminders-init.mjs.map b/dist/files_reminders-init.mjs.map index b9136033ccdc0..10e560c79ef75 100644 --- a/dist/files_reminders-init.mjs.map +++ b/dist/files_reminders-init.mjs.map @@ -1 +1 @@ -{"version":3,"file":"files_reminders-init.mjs","sources":["../node_modules/@mdi/svg/svg/alarm-off.svg?raw","../build/frontend/apps/files_reminders/src/services/reminderService.ts","../build/frontend/apps/files_reminders/src/shared/utils.ts","../build/frontend/apps/files_reminders/src/files_actions/clearReminderAction.ts","../node_modules/@mdi/svg/svg/alarm.svg?raw","../build/frontend/apps/files_reminders/src/shared/logger.ts","../build/frontend/apps/files_reminders/src/components/SetCustomReminderModal.vue","../build/frontend/apps/files_reminders/src/services/customPicker.ts","../build/frontend/apps/files_reminders/src/files_actions/reminderStatusAction.ts","../node_modules/@mdi/svg/svg/calendar-clock.svg?raw","../build/frontend/apps/files_reminders/src/files_actions/setReminderMenuAction.ts","../build/frontend/apps/files_reminders/src/files_actions/setReminderCustomAction.ts","../build/frontend/apps/files_reminders/src/files_actions/setReminderSuggestionActions.ts","../build/frontend/apps/files_reminders/src/files-init.ts"],"sourcesContent":["export default \"\"","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\n\ninterface Reminder {\n\tdueDate: null | Date\n}\n\n/**\n * Get the reminder for a specific file\n *\n * @param fileId - The file id to get the reminder for\n */\nexport async function getReminder(fileId: number): Promise {\n\tconst url = generateOcsUrl('/apps/files_reminders/api/v1/{fileId}', { fileId })\n\tconst response = await axios.get(url)\n\tconst dueDate = response.data.ocs.data.dueDate ? new Date(response.data.ocs.data.dueDate) : null\n\n\treturn {\n\t\tdueDate,\n\t}\n}\n\n/**\n * Set a reminder for a specific file\n *\n * @param fileId - The file id to set the reminder for\n * @param dueDate - The due date for the reminder\n */\nexport async function setReminder(fileId: number, dueDate: Date): Promise<[]> {\n\tconst url = generateOcsUrl('/apps/files_reminders/api/v1/{fileId}', { fileId })\n\n\tconst response = await axios.put(url, {\n\t\tdueDate: dueDate.toISOString(), // timezone of string is always UTC\n\t})\n\n\treturn response.data.ocs.data\n}\n\n/**\n * Clear the reminder for a specific file\n *\n * @param fileId - The file id to clear the reminder for\n */\nexport async function clearReminder(fileId: number): Promise<[]> {\n\tconst url = generateOcsUrl('/apps/files_reminders/api/v1/{fileId}', { fileId })\n\tconst response = await axios.delete(url)\n\n\treturn response.data.ocs.data\n}\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCanonicalLocale } from '@nextcloud/l10n'\n\nexport enum DateTimePreset {\n\tLaterToday = 'later-today',\n\tTomorrow = 'tomorrow',\n\tThisWeekend = 'this-weekend',\n\tNextWeek = 'next-week',\n}\n\n/**\n *\n */\nfunction getFirstWorkdayOfWeek() {\n\tconst now = new Date()\n\tnow.setHours(0, 0, 0, 0)\n\tnow.setDate(now.getDate() - now.getDay() + 1)\n\treturn new Date(now)\n}\n\n/**\n *\n * @param date\n */\nfunction getWeek(date: Date) {\n\tconst dateClone = new Date(date)\n\tdateClone.setHours(0, 0, 0, 0)\n\tconst firstDayOfYear = new Date(date.getFullYear(), 0, 1, 0, 0, 0, 0)\n\tconst daysFromFirstDay = (date.getTime() - firstDayOfYear.getTime()) / 86400000\n\treturn Math.ceil((daysFromFirstDay + firstDayOfYear.getDay() + 1) / 7)\n}\n\n/**\n *\n * @param a\n * @param b\n */\nfunction isSameWeek(a: Date, b: Date) {\n\treturn getWeek(a) === getWeek(b)\n\t\t&& a.getFullYear() === b.getFullYear()\n}\n\n/**\n *\n * @param a\n * @param b\n */\nfunction isSameDate(a: Date, b: Date) {\n\treturn a.getDate() === b.getDate()\n\t\t&& a.getMonth() === b.getMonth()\n\t\t&& a.getFullYear() === b.getFullYear()\n}\n\n/**\n *\n * @param dateTime\n */\nexport function getDateTime(dateTime: DateTimePreset): null | Date {\n\tconst matchPreset: Record null | Date> = {\n\t\t[DateTimePreset.LaterToday]: () => {\n\t\t\tconst now = new Date()\n\t\t\tconst evening = new Date()\n\t\t\tevening.setHours(18, 0, 0, 0)\n\t\t\tconst cutoff = new Date()\n\t\t\tcutoff.setHours(17, 0, 0, 0)\n\t\t\tif (now >= cutoff) {\n\t\t\t\treturn null\n\t\t\t}\n\t\t\treturn evening\n\t\t},\n\n\t\t[DateTimePreset.Tomorrow]: () => {\n\t\t\tconst now = new Date()\n\t\t\tconst day = new Date()\n\t\t\tday.setDate(now.getDate() + 1)\n\t\t\tday.setHours(8, 0, 0, 0)\n\t\t\treturn day\n\t\t},\n\n\t\t[DateTimePreset.ThisWeekend]: () => {\n\t\t\tconst today = new Date()\n\t\t\tif (\n\t\t\t\t[\n\t\t\t\t\t5, // Friday\n\t\t\t\t\t6, // Saturday\n\t\t\t\t\t0, // Sunday\n\t\t\t\t].includes(today.getDay())\n\t\t\t) {\n\t\t\t\treturn null\n\t\t\t}\n\t\t\tconst saturday = new Date()\n\t\t\tconst firstWorkdayOfWeek = getFirstWorkdayOfWeek()\n\t\t\tsaturday.setDate(firstWorkdayOfWeek.getDate() + 5)\n\t\t\tsaturday.setHours(8, 0, 0, 0)\n\t\t\treturn saturday\n\t\t},\n\n\t\t[DateTimePreset.NextWeek]: () => {\n\t\t\tconst today = new Date()\n\t\t\tif (today.getDay() === 0) { // Sunday\n\t\t\t\treturn null\n\t\t\t}\n\t\t\tconst workday = new Date()\n\t\t\tconst firstWorkdayOfWeek = getFirstWorkdayOfWeek()\n\t\t\tworkday.setDate(firstWorkdayOfWeek.getDate() + 7)\n\t\t\tworkday.setHours(8, 0, 0, 0)\n\t\t\treturn workday\n\t\t},\n\t}\n\n\treturn matchPreset[dateTime]()\n}\n\n/**\n *\n */\nexport function getInitialCustomDueDate(): Date {\n\tconst now = new Date()\n\tconst dueDate = new Date()\n\tdueDate.setHours(now.getHours() + 2, 0, 0, 0)\n\treturn dueDate\n}\n\n/**\n *\n * @param dueDate\n */\nexport function getDateString(dueDate: Date): string {\n\tlet formatOptions: Intl.DateTimeFormatOptions = {\n\t\thour: 'numeric',\n\t\tminute: '2-digit',\n\t}\n\n\tconst today = new Date()\n\n\tif (!isSameDate(dueDate, today)) {\n\t\tformatOptions = {\n\t\t\t...formatOptions,\n\t\t\tweekday: 'short',\n\t\t}\n\t}\n\n\tif (!isSameWeek(dueDate, today)) {\n\t\tformatOptions = {\n\t\t\t...formatOptions,\n\t\t\tmonth: 'short',\n\t\t\tday: 'numeric',\n\t\t}\n\t}\n\n\tif (dueDate.getFullYear() !== today.getFullYear()) {\n\t\tformatOptions = {\n\t\t\t...formatOptions,\n\t\t\tyear: 'numeric',\n\t\t}\n\t}\n\n\treturn dueDate.toLocaleString(\n\t\tgetCanonicalLocale(),\n\t\tformatOptions,\n\t)\n}\n\n/**\n *\n * @param dueDate\n */\nexport function getVerboseDateString(dueDate: Date): string {\n\tlet formatOptions: Intl.DateTimeFormatOptions = {\n\t\tmonth: 'long',\n\t\tday: 'numeric',\n\t\tweekday: 'long',\n\t\thour: 'numeric',\n\t\tminute: '2-digit',\n\t}\n\n\tconst today = new Date()\n\n\tif (dueDate.getFullYear() !== today.getFullYear()) {\n\t\tformatOptions = {\n\t\t\t...formatOptions,\n\t\t\tyear: 'numeric',\n\t\t}\n\t}\n\n\treturn dueDate.toLocaleString(\n\t\tgetCanonicalLocale(),\n\t\tformatOptions,\n\t)\n}\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport AlarmOffSvg from '@mdi/svg/svg/alarm-off.svg?raw'\nimport { emit } from '@nextcloud/event-bus'\nimport { FileAction } from '@nextcloud/files'\nimport { t } from '@nextcloud/l10n'\nimport { clearReminder } from '../services/reminderService.ts'\nimport { getVerboseDateString } from '../shared/utils.ts'\n\nexport const action = new FileAction({\n\tid: 'clear-reminder',\n\n\tdisplayName: () => t('files_reminders', 'Clear reminder'),\n\n\ttitle: ({ nodes }) => {\n\t\tconst node = nodes.at(0)!\n\t\tconst dueDate = new Date(node.attributes['reminder-due-date'])\n\t\treturn `${t('files_reminders', 'Clear reminder')} – ${getVerboseDateString(dueDate)}`\n\t},\n\n\ticonSvgInline: () => AlarmOffSvg,\n\n\tenabled: ({ nodes }) => {\n\t\t// Only allow on a single node\n\t\tif (nodes.length !== 1) {\n\t\t\treturn false\n\t\t}\n\t\tconst node = nodes.at(0)!\n\t\tconst dueDate = node.attributes['reminder-due-date']\n\t\treturn Boolean(dueDate)\n\t},\n\n\tasync exec({ nodes }) {\n\t\tconst node = nodes.at(0)!\n\t\tif (node.fileid) {\n\t\t\ttry {\n\t\t\t\tawait clearReminder(node.fileid)\n\t\t\t\tnode.attributes['reminder-due-date'] = ''\n\t\t\t\temit('files:node:updated', node)\n\t\t\t\treturn true\n\t\t\t} catch {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn null\n\t},\n\n\torder: 19,\n})\n","export default \"\"","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport const logger = getLoggerBuilder()\n\t.setApp('files_reminders')\n\t.detectUser()\n\t.build()\n","\n\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { INode } from '@nextcloud/files'\n\nimport { spawnDialog } from '@nextcloud/vue'\nimport SetCustomReminderModal from '../components/SetCustomReminderModal.vue'\n\n/**\n * @param node - The file or folder node to set the custom reminder for\n */\nexport async function pickCustomDate(node: INode): Promise {\n\tawait spawnDialog(SetCustomReminderModal, {\n\t\tnode,\n\t})\n}\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport AlarmSvg from '@mdi/svg/svg/alarm.svg?raw'\nimport { FileAction } from '@nextcloud/files'\nimport { t } from '@nextcloud/l10n'\nimport { pickCustomDate } from '../services/customPicker.ts'\nimport { getVerboseDateString } from '../shared/utils.ts'\n\nexport const action = new FileAction({\n\tid: 'reminder-status',\n\n\tinline: () => true,\n\n\tdisplayName: () => '',\n\n\ttitle: ({ nodes }) => {\n\t\tconst node = nodes.at(0)!\n\t\tconst dueDate = new Date(node.attributes['reminder-due-date'])\n\t\treturn `${t('files_reminders', 'Reminder set')} – ${getVerboseDateString(dueDate)}`\n\t},\n\n\ticonSvgInline: () => AlarmSvg,\n\n\tenabled: ({ nodes }) => {\n\t\t// Only allow on a single node\n\t\tif (nodes.length !== 1) {\n\t\t\treturn false\n\t\t}\n\n\t\tconst node = nodes.at(0)!\n\t\tconst dueDate = node.attributes['reminder-due-date']\n\t\treturn Boolean(dueDate)\n\t},\n\n\tasync exec({ nodes }) {\n\t\tconst node = nodes.at(0)!\n\t\tawait pickCustomDate(node)\n\t\treturn null\n\t},\n\n\torder: -15,\n})\n","export default \"\"","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport AlarmSvg from '@mdi/svg/svg/alarm.svg?raw'\nimport { FileAction } from '@nextcloud/files'\nimport { translate as t } from '@nextcloud/l10n'\n\nexport const SET_REMINDER_MENU_ID = 'set-reminder-menu'\n\nexport const action = new FileAction({\n\tid: SET_REMINDER_MENU_ID,\n\tdisplayName: () => t('files_reminders', 'Set reminder'),\n\ticonSvgInline: () => AlarmSvg,\n\n\tenabled: ({ nodes, view }) => {\n\t\tif (view.id === 'trashbin') {\n\t\t\treturn false\n\t\t}\n\t\t// Only allow on a single INode\n\t\tif (nodes.length !== 1) {\n\t\t\treturn false\n\t\t}\n\t\tconst node = nodes.at(0)!\n\t\tconst dueDate = node.attributes['reminder-due-date']\n\t\treturn dueDate !== undefined\n\t},\n\n\tasync exec() {\n\t\treturn null\n\t},\n\n\torder: 20,\n})\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport CalendarClockSvg from '@mdi/svg/svg/calendar-clock.svg?raw'\nimport { FileAction } from '@nextcloud/files'\nimport { t } from '@nextcloud/l10n'\nimport { pickCustomDate } from '../services/customPicker.ts'\nimport { SET_REMINDER_MENU_ID } from './setReminderMenuAction.ts'\n\nexport const action = new FileAction({\n\tid: 'set-reminder-custom',\n\tdisplayName: () => t('files_reminders', 'Custom reminder'),\n\ttitle: () => t('files_reminders', 'Reminder at custom date & time'),\n\ticonSvgInline: () => CalendarClockSvg,\n\n\tenabled: ({ nodes, view }) => {\n\t\tif (view.id === 'trashbin') {\n\t\t\treturn false\n\t\t}\n\t\t// Only allow on a single INode\n\t\tif (nodes.length !== 1) {\n\t\t\treturn false\n\t\t}\n\t\tconst node = nodes.at(0)!\n\t\tconst dueDate = node.attributes['reminder-due-date']\n\t\treturn dueDate !== undefined\n\t},\n\n\tparent: SET_REMINDER_MENU_ID,\n\n\tasync exec({ nodes }) {\n\t\tconst node = nodes.at(0)!\n\t\tpickCustomDate(node)\n\t\treturn null\n\t},\n\n\t// After presets\n\torder: 22,\n})\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { showError, showSuccess } from '@nextcloud/dialogs'\nimport { emit } from '@nextcloud/event-bus'\nimport { FileAction } from '@nextcloud/files'\nimport { t } from '@nextcloud/l10n'\nimport { setReminder } from '../services/reminderService.ts'\nimport { logger } from '../shared/logger.ts'\nimport { DateTimePreset, getDateString, getDateTime, getVerboseDateString } from '../shared/utils.ts'\nimport { SET_REMINDER_MENU_ID } from './setReminderMenuAction.ts'\n\nimport './setReminderSuggestionActions.scss'\n\ninterface ReminderOption {\n\tdateTimePreset: DateTimePreset\n\tlabel: string\n\tariaLabel: string\n\tdateString?: string\n\tverboseDateString?: string\n\taction?: () => Promise\n}\n\nconst laterToday: ReminderOption = {\n\tdateTimePreset: DateTimePreset.LaterToday,\n\tlabel: t('files_reminders', 'Later today'),\n\tariaLabel: t('files_reminders', 'Set reminder for later today'),\n\tdateString: '',\n\tverboseDateString: '',\n}\n\nconst tomorrow: ReminderOption = {\n\tdateTimePreset: DateTimePreset.Tomorrow,\n\tlabel: t('files_reminders', 'Tomorrow'),\n\tariaLabel: t('files_reminders', 'Set reminder for tomorrow'),\n\tdateString: '',\n\tverboseDateString: '',\n}\n\nconst thisWeekend: ReminderOption = {\n\tdateTimePreset: DateTimePreset.ThisWeekend,\n\tlabel: t('files_reminders', 'This weekend'),\n\tariaLabel: t('files_reminders', 'Set reminder for this weekend'),\n\tdateString: '',\n\tverboseDateString: '',\n}\n\nconst nextWeek: ReminderOption = {\n\tdateTimePreset: DateTimePreset.NextWeek,\n\tlabel: t('files_reminders', 'Next week'),\n\tariaLabel: t('files_reminders', 'Set reminder for next week'),\n\tdateString: '',\n\tverboseDateString: '',\n}\n\n/**\n * Generate a file action for the given option\n *\n * @param option The option to generate the action for\n * @return The file action or null if the option should not be shown\n */\nfunction generateFileAction(option: ReminderOption): FileAction | null {\n\treturn new FileAction({\n\t\tid: `set-reminder-${option.dateTimePreset}`,\n\t\tdisplayName: () => `${option.label} – ${option.dateString}`,\n\t\ttitle: () => `${option.ariaLabel} – ${option.verboseDateString}`,\n\n\t\t// Empty svg to hide the icon\n\t\ticonSvgInline: () => '',\n\n\t\tenabled: ({ nodes, view }) => {\n\t\t\tif (view.id === 'trashbin') {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\t// Only allow on a single INode\n\t\t\tif (nodes.length !== 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tconst node = nodes.at(0)!\n\t\t\tconst dueDate = node.attributes['reminder-due-date']\n\t\t\treturn dueDate !== undefined && Boolean(getDateTime(option.dateTimePreset))\n\t\t},\n\n\t\tparent: SET_REMINDER_MENU_ID,\n\n\t\tasync exec({ nodes }) {\n\t\t\t// Can't really happen, but just in case™\n\t\t\tconst node = nodes.at(0)!\n\t\t\tif (!node.fileid) {\n\t\t\t\tlogger.error('Failed to set reminder, missing file id')\n\t\t\t\tshowError(t('files_reminders', 'Failed to set reminder'))\n\t\t\t\treturn null\n\t\t\t}\n\n\t\t\t// Set the reminder\n\t\t\ttry {\n\t\t\t\tconst dateTime = getDateTime(option.dateTimePreset)!\n\t\t\t\tawait setReminder(node.fileid, dateTime)\n\t\t\t\tnode.attributes['reminder-due-date'] = dateTime.toISOString()\n\t\t\t\temit('files:node:updated', node)\n\t\t\t\tshowSuccess(t('files_reminders', 'Reminder set for \"{fileName}\"', { fileName: node.basename }))\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error('Failed to set reminder', { error })\n\t\t\t\tshowError(t('files_reminders', 'Failed to set reminder'))\n\t\t\t}\n\t\t\t// Silent success as we display our own notification\n\t\t\treturn null\n\t\t},\n\n\t\torder: 21,\n\t})\n}\n\n[laterToday, tomorrow, thisWeekend, nextWeek].forEach((option) => {\n\t// Generate the initial date string\n\tconst dateTime = getDateTime(option.dateTimePreset)\n\tif (!dateTime) {\n\t\treturn\n\t}\n\toption.dateString = getDateString(dateTime)\n\toption.verboseDateString = getVerboseDateString(dateTime)\n\n\t// Update the date string every 30 minutes\n\tsetInterval(() => {\n\t\tconst dateTime = getDateTime(option.dateTimePreset)\n\t\tif (!dateTime) {\n\t\t\treturn\n\t\t}\n\n\t\t// update the submenu remind options strings\n\t\toption.dateString = getDateString(dateTime)\n\t\toption.verboseDateString = getVerboseDateString(dateTime)\n\t}, 1000 * 30 * 60)\n})\n\n// Generate the default preset actions\nexport const actions = [laterToday, tomorrow, thisWeekend, nextWeek]\n\t.map(generateFileAction) as FileAction[]\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { registerFileAction } from '@nextcloud/files'\nimport { registerDavProperty } from '@nextcloud/files/dav'\nimport { action as clearAction } from './files_actions/clearReminderAction.ts'\nimport { action as statusAction } from './files_actions/reminderStatusAction.ts'\nimport { action as customAction } from './files_actions/setReminderCustomAction.ts'\nimport { action as menuAction } from './files_actions/setReminderMenuAction.ts'\nimport { actions as suggestionActions } from './files_actions/setReminderSuggestionActions.ts'\n\nregisterDavProperty('nc:reminder-due-date', { nc: 'http://nextcloud.org/ns' })\n\nregisterFileAction(statusAction)\nregisterFileAction(clearAction)\nregisterFileAction(menuAction)\nregisterFileAction(customAction)\nsuggestionActions.forEach((action) => registerFileAction(action))\n"],"names":["AlarmOffSvg","setReminder","fileId","dueDate","url","generateOcsUrl","axios","clearReminder","DateTimePreset","getFirstWorkdayOfWeek","now","getWeek","date","firstDayOfYear","daysFromFirstDay","isSameWeek","a","b","isSameDate","getDateTime","dateTime","evening","cutoff","day","today","saturday","firstWorkdayOfWeek","workday","getInitialCustomDueDate","getDateString","formatOptions","getCanonicalLocale","getVerboseDateString","action","FileAction","t","nodes","node","emit","AlarmSvg","logger","getLoggerBuilder","props","__props","__emit","hasDueDate","ref","opened","isValid","customDueDate","nowDate","onBeforeMount","onMounted","input","setCustom","showError","emitEventBus","showSuccess","onClose","error","clear","onInput","_createBlock","_unref","NcDialog","_createVNode","NcButton","_createElementVNode","NcDateTimePickerNative","$event","NcNoteCard","_createTextVNode","_toDisplayString","NcDateTime","pickCustomDate","spawnDialog","SetCustomReminderModal","CalendarClockSvg","SET_REMINDER_MENU_ID","view","laterToday","tomorrow","thisWeekend","nextWeek","generateFileAction","option","actions","registerDavProperty","registerFileAction","statusAction","clearAction","menuAction","customAction","suggestionActions"],"mappings":"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","x_google_ignoreList":[0,4,9]} \ No newline at end of file +{"version":3,"file":"files_reminders-init.mjs","sources":["../node_modules/@mdi/svg/svg/alarm-off.svg?raw","../build/frontend/apps/files_reminders/src/services/reminderService.ts","../build/frontend/apps/files_reminders/src/shared/utils.ts","../build/frontend/apps/files_reminders/src/files_actions/clearReminderAction.ts","../node_modules/@mdi/svg/svg/alarm.svg?raw","../build/frontend/apps/files_reminders/src/shared/logger.ts","../build/frontend/apps/files_reminders/src/components/SetCustomReminderModal.vue","../build/frontend/apps/files_reminders/src/services/customPicker.ts","../build/frontend/apps/files_reminders/src/files_actions/reminderStatusAction.ts","../node_modules/@mdi/svg/svg/calendar-clock.svg?raw","../build/frontend/apps/files_reminders/src/files_actions/setReminderMenuAction.ts","../build/frontend/apps/files_reminders/src/files_actions/setReminderCustomAction.ts","../build/frontend/apps/files_reminders/src/files_actions/setReminderSuggestionActions.ts","../build/frontend/apps/files_reminders/src/files-init.ts"],"sourcesContent":["export default \"\"","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\n\ninterface Reminder {\n\tdueDate: null | Date\n}\n\n/**\n * Get the reminder for a specific file\n *\n * @param fileId - The file id to get the reminder for\n */\nexport async function getReminder(fileId: number): Promise {\n\tconst url = generateOcsUrl('/apps/files_reminders/api/v1/{fileId}', { fileId })\n\tconst response = await axios.get(url)\n\tconst dueDate = response.data.ocs.data.dueDate ? new Date(response.data.ocs.data.dueDate) : null\n\n\treturn {\n\t\tdueDate,\n\t}\n}\n\n/**\n * Set a reminder for a specific file\n *\n * @param fileId - The file id to set the reminder for\n * @param dueDate - The due date for the reminder\n */\nexport async function setReminder(fileId: number, dueDate: Date): Promise<[]> {\n\tconst url = generateOcsUrl('/apps/files_reminders/api/v1/{fileId}', { fileId })\n\n\tconst response = await axios.put(url, {\n\t\tdueDate: dueDate.toISOString(), // timezone of string is always UTC\n\t})\n\n\treturn response.data.ocs.data\n}\n\n/**\n * Clear the reminder for a specific file\n *\n * @param fileId - The file id to clear the reminder for\n */\nexport async function clearReminder(fileId: number): Promise<[]> {\n\tconst url = generateOcsUrl('/apps/files_reminders/api/v1/{fileId}', { fileId })\n\tconst response = await axios.delete(url)\n\n\treturn response.data.ocs.data\n}\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCanonicalLocale } from '@nextcloud/l10n'\n\nexport enum DateTimePreset {\n\tLaterToday = 'later-today',\n\tTomorrow = 'tomorrow',\n\tThisWeekend = 'this-weekend',\n\tNextWeek = 'next-week',\n}\n\n/**\n *\n */\nfunction getFirstWorkdayOfWeek() {\n\tconst now = new Date()\n\tnow.setHours(0, 0, 0, 0)\n\tnow.setDate(now.getDate() - now.getDay() + 1)\n\treturn new Date(now)\n}\n\n/**\n *\n * @param date\n */\nfunction getWeek(date: Date) {\n\tconst dateClone = new Date(date)\n\tdateClone.setHours(0, 0, 0, 0)\n\tconst firstDayOfYear = new Date(date.getFullYear(), 0, 1, 0, 0, 0, 0)\n\tconst daysFromFirstDay = (date.getTime() - firstDayOfYear.getTime()) / 86400000\n\treturn Math.ceil((daysFromFirstDay + firstDayOfYear.getDay() + 1) / 7)\n}\n\n/**\n *\n * @param a\n * @param b\n */\nfunction isSameWeek(a: Date, b: Date) {\n\treturn getWeek(a) === getWeek(b)\n\t\t&& a.getFullYear() === b.getFullYear()\n}\n\n/**\n *\n * @param a\n * @param b\n */\nfunction isSameDate(a: Date, b: Date) {\n\treturn a.getDate() === b.getDate()\n\t\t&& a.getMonth() === b.getMonth()\n\t\t&& a.getFullYear() === b.getFullYear()\n}\n\n/**\n *\n * @param dateTime\n */\nexport function getDateTime(dateTime: DateTimePreset): null | Date {\n\tconst matchPreset: Record null | Date> = {\n\t\t[DateTimePreset.LaterToday]: () => {\n\t\t\tconst now = new Date()\n\t\t\tconst evening = new Date()\n\t\t\tevening.setHours(18, 0, 0, 0)\n\t\t\tconst cutoff = new Date()\n\t\t\tcutoff.setHours(17, 0, 0, 0)\n\t\t\tif (now >= cutoff) {\n\t\t\t\treturn null\n\t\t\t}\n\t\t\treturn evening\n\t\t},\n\n\t\t[DateTimePreset.Tomorrow]: () => {\n\t\t\tconst now = new Date()\n\t\t\tconst day = new Date()\n\t\t\tday.setDate(now.getDate() + 1)\n\t\t\tday.setHours(8, 0, 0, 0)\n\t\t\treturn day\n\t\t},\n\n\t\t[DateTimePreset.ThisWeekend]: () => {\n\t\t\tconst today = new Date()\n\t\t\tif (\n\t\t\t\t[\n\t\t\t\t\t5, // Friday\n\t\t\t\t\t6, // Saturday\n\t\t\t\t\t0, // Sunday\n\t\t\t\t].includes(today.getDay())\n\t\t\t) {\n\t\t\t\treturn null\n\t\t\t}\n\t\t\tconst saturday = new Date()\n\t\t\tconst firstWorkdayOfWeek = getFirstWorkdayOfWeek()\n\t\t\tsaturday.setDate(firstWorkdayOfWeek.getDate() + 5)\n\t\t\tsaturday.setHours(8, 0, 0, 0)\n\t\t\treturn saturday\n\t\t},\n\n\t\t[DateTimePreset.NextWeek]: () => {\n\t\t\tconst today = new Date()\n\t\t\tif (today.getDay() === 0) { // Sunday\n\t\t\t\treturn null\n\t\t\t}\n\t\t\tconst workday = new Date()\n\t\t\tconst firstWorkdayOfWeek = getFirstWorkdayOfWeek()\n\t\t\tworkday.setDate(firstWorkdayOfWeek.getDate() + 7)\n\t\t\tworkday.setHours(8, 0, 0, 0)\n\t\t\treturn workday\n\t\t},\n\t}\n\n\treturn matchPreset[dateTime]()\n}\n\n/**\n *\n */\nexport function getInitialCustomDueDate(): Date {\n\tconst now = new Date()\n\tconst dueDate = new Date()\n\tdueDate.setHours(now.getHours() + 2, 0, 0, 0)\n\treturn dueDate\n}\n\n/**\n *\n * @param dueDate\n */\nexport function getDateString(dueDate: Date): string {\n\tlet formatOptions: Intl.DateTimeFormatOptions = {\n\t\thour: 'numeric',\n\t\tminute: '2-digit',\n\t}\n\n\tconst today = new Date()\n\n\tif (!isSameDate(dueDate, today)) {\n\t\tformatOptions = {\n\t\t\t...formatOptions,\n\t\t\tweekday: 'short',\n\t\t}\n\t}\n\n\tif (!isSameWeek(dueDate, today)) {\n\t\tformatOptions = {\n\t\t\t...formatOptions,\n\t\t\tmonth: 'short',\n\t\t\tday: 'numeric',\n\t\t}\n\t}\n\n\tif (dueDate.getFullYear() !== today.getFullYear()) {\n\t\tformatOptions = {\n\t\t\t...formatOptions,\n\t\t\tyear: 'numeric',\n\t\t}\n\t}\n\n\treturn dueDate.toLocaleString(\n\t\tgetCanonicalLocale(),\n\t\tformatOptions,\n\t)\n}\n\n/**\n *\n * @param dueDate\n */\nexport function getVerboseDateString(dueDate: Date): string {\n\tlet formatOptions: Intl.DateTimeFormatOptions = {\n\t\tmonth: 'long',\n\t\tday: 'numeric',\n\t\tweekday: 'long',\n\t\thour: 'numeric',\n\t\tminute: '2-digit',\n\t}\n\n\tconst today = new Date()\n\n\tif (dueDate.getFullYear() !== today.getFullYear()) {\n\t\tformatOptions = {\n\t\t\t...formatOptions,\n\t\t\tyear: 'numeric',\n\t\t}\n\t}\n\n\treturn dueDate.toLocaleString(\n\t\tgetCanonicalLocale(),\n\t\tformatOptions,\n\t)\n}\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport AlarmOffSvg from '@mdi/svg/svg/alarm-off.svg?raw'\nimport { emit } from '@nextcloud/event-bus'\nimport { FileAction } from '@nextcloud/files'\nimport { t } from '@nextcloud/l10n'\nimport { clearReminder } from '../services/reminderService.ts'\nimport { getVerboseDateString } from '../shared/utils.ts'\n\nexport const action = new FileAction({\n\tid: 'clear-reminder',\n\n\tdisplayName: () => t('files_reminders', 'Clear reminder'),\n\n\ttitle: ({ nodes }) => {\n\t\tconst node = nodes.at(0)!\n\t\tconst dueDate = new Date(node.attributes['reminder-due-date'])\n\t\treturn `${t('files_reminders', 'Clear reminder')} – ${getVerboseDateString(dueDate)}`\n\t},\n\n\ticonSvgInline: () => AlarmOffSvg,\n\n\tenabled: ({ nodes }) => {\n\t\t// Only allow on a single node\n\t\tif (nodes.length !== 1) {\n\t\t\treturn false\n\t\t}\n\t\tconst node = nodes.at(0)!\n\t\tconst dueDate = node.attributes['reminder-due-date']\n\t\treturn Boolean(dueDate)\n\t},\n\n\tasync exec({ nodes }) {\n\t\tconst node = nodes.at(0)!\n\t\tif (node.fileid) {\n\t\t\ttry {\n\t\t\t\tawait clearReminder(node.fileid)\n\t\t\t\tnode.attributes['reminder-due-date'] = ''\n\t\t\t\temit('files:node:updated', node)\n\t\t\t\treturn true\n\t\t\t} catch {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn null\n\t},\n\n\torder: 19,\n})\n","export default \"\"","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport const logger = getLoggerBuilder()\n\t.setApp('files_reminders')\n\t.detectUser()\n\t.build()\n","\n\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { INode } from '@nextcloud/files'\n\nimport { spawnDialog } from '@nextcloud/vue'\nimport SetCustomReminderModal from '../components/SetCustomReminderModal.vue'\n\n/**\n * @param node - The file or folder node to set the custom reminder for\n */\nexport async function pickCustomDate(node: INode): Promise {\n\tawait spawnDialog(SetCustomReminderModal, {\n\t\tnode,\n\t})\n}\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport AlarmSvg from '@mdi/svg/svg/alarm.svg?raw'\nimport { FileAction } from '@nextcloud/files'\nimport { t } from '@nextcloud/l10n'\nimport { pickCustomDate } from '../services/customPicker.ts'\nimport { getVerboseDateString } from '../shared/utils.ts'\n\nexport const action = new FileAction({\n\tid: 'reminder-status',\n\n\tinline: () => true,\n\n\tdisplayName: () => '',\n\n\ttitle: ({ nodes }) => {\n\t\tconst node = nodes.at(0)!\n\t\tconst dueDate = new Date(node.attributes['reminder-due-date'])\n\t\treturn `${t('files_reminders', 'Reminder set')} – ${getVerboseDateString(dueDate)}`\n\t},\n\n\ticonSvgInline: () => AlarmSvg,\n\n\tenabled: ({ nodes }) => {\n\t\t// Only allow on a single node\n\t\tif (nodes.length !== 1) {\n\t\t\treturn false\n\t\t}\n\n\t\tconst node = nodes.at(0)!\n\t\tconst dueDate = node.attributes['reminder-due-date']\n\t\treturn Boolean(dueDate)\n\t},\n\n\tasync exec({ nodes }) {\n\t\tconst node = nodes.at(0)!\n\t\tawait pickCustomDate(node)\n\t\treturn null\n\t},\n\n\torder: -15,\n})\n","export default \"\"","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport AlarmSvg from '@mdi/svg/svg/alarm.svg?raw'\nimport { FileAction } from '@nextcloud/files'\nimport { translate as t } from '@nextcloud/l10n'\n\nexport const SET_REMINDER_MENU_ID = 'set-reminder-menu'\n\nexport const action = new FileAction({\n\tid: SET_REMINDER_MENU_ID,\n\tdisplayName: () => t('files_reminders', 'Set reminder'),\n\ticonSvgInline: () => AlarmSvg,\n\n\tenabled: ({ nodes, view }) => {\n\t\tif (view.id === 'trashbin') {\n\t\t\treturn false\n\t\t}\n\t\t// Only allow on a single INode\n\t\tif (nodes.length !== 1) {\n\t\t\treturn false\n\t\t}\n\t\tconst node = nodes.at(0)!\n\t\tconst dueDate = node.attributes['reminder-due-date']\n\t\treturn dueDate !== undefined\n\t},\n\n\tasync exec() {\n\t\treturn null\n\t},\n\n\torder: 20,\n})\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport CalendarClockSvg from '@mdi/svg/svg/calendar-clock.svg?raw'\nimport { FileAction } from '@nextcloud/files'\nimport { t } from '@nextcloud/l10n'\nimport { pickCustomDate } from '../services/customPicker.ts'\nimport { SET_REMINDER_MENU_ID } from './setReminderMenuAction.ts'\n\nexport const action = new FileAction({\n\tid: 'set-reminder-custom',\n\tdisplayName: () => t('files_reminders', 'Custom reminder'),\n\ttitle: () => t('files_reminders', 'Reminder at custom date & time'),\n\ticonSvgInline: () => CalendarClockSvg,\n\n\tenabled: ({ nodes, view }) => {\n\t\tif (view.id === 'trashbin') {\n\t\t\treturn false\n\t\t}\n\t\t// Only allow on a single INode\n\t\tif (nodes.length !== 1) {\n\t\t\treturn false\n\t\t}\n\t\tconst node = nodes.at(0)!\n\t\tconst dueDate = node.attributes['reminder-due-date']\n\t\treturn dueDate !== undefined\n\t},\n\n\tparent: SET_REMINDER_MENU_ID,\n\n\tasync exec({ nodes }) {\n\t\tconst node = nodes.at(0)!\n\t\tpickCustomDate(node)\n\t\treturn null\n\t},\n\n\t// After presets\n\torder: 22,\n})\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { showError, showSuccess } from '@nextcloud/dialogs'\nimport { emit } from '@nextcloud/event-bus'\nimport { FileAction } from '@nextcloud/files'\nimport { t } from '@nextcloud/l10n'\nimport { setReminder } from '../services/reminderService.ts'\nimport { logger } from '../shared/logger.ts'\nimport { DateTimePreset, getDateString, getDateTime, getVerboseDateString } from '../shared/utils.ts'\nimport { SET_REMINDER_MENU_ID } from './setReminderMenuAction.ts'\n\nimport './setReminderSuggestionActions.scss'\n\ninterface ReminderOption {\n\tdateTimePreset: DateTimePreset\n\tlabel: string\n\tariaLabel: string\n\tdateString?: string\n\tverboseDateString?: string\n\taction?: () => Promise\n}\n\nconst laterToday: ReminderOption = {\n\tdateTimePreset: DateTimePreset.LaterToday,\n\tlabel: t('files_reminders', 'Later today'),\n\tariaLabel: t('files_reminders', 'Set reminder for later today'),\n\tdateString: '',\n\tverboseDateString: '',\n}\n\nconst tomorrow: ReminderOption = {\n\tdateTimePreset: DateTimePreset.Tomorrow,\n\tlabel: t('files_reminders', 'Tomorrow'),\n\tariaLabel: t('files_reminders', 'Set reminder for tomorrow'),\n\tdateString: '',\n\tverboseDateString: '',\n}\n\nconst thisWeekend: ReminderOption = {\n\tdateTimePreset: DateTimePreset.ThisWeekend,\n\tlabel: t('files_reminders', 'This weekend'),\n\tariaLabel: t('files_reminders', 'Set reminder for this weekend'),\n\tdateString: '',\n\tverboseDateString: '',\n}\n\nconst nextWeek: ReminderOption = {\n\tdateTimePreset: DateTimePreset.NextWeek,\n\tlabel: t('files_reminders', 'Next week'),\n\tariaLabel: t('files_reminders', 'Set reminder for next week'),\n\tdateString: '',\n\tverboseDateString: '',\n}\n\n/**\n * Generate a file action for the given option\n *\n * @param option The option to generate the action for\n * @return The file action or null if the option should not be shown\n */\nfunction generateFileAction(option: ReminderOption): FileAction | null {\n\treturn new FileAction({\n\t\tid: `set-reminder-${option.dateTimePreset}`,\n\t\tdisplayName: () => `${option.label} – ${option.dateString}`,\n\t\ttitle: () => `${option.ariaLabel} – ${option.verboseDateString}`,\n\n\t\t// Empty svg to hide the icon\n\t\ticonSvgInline: () => '',\n\n\t\tenabled: ({ nodes, view }) => {\n\t\t\tif (view.id === 'trashbin') {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\t// Only allow on a single INode\n\t\t\tif (nodes.length !== 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tconst node = nodes.at(0)!\n\t\t\tconst dueDate = node.attributes['reminder-due-date']\n\t\t\treturn dueDate !== undefined && Boolean(getDateTime(option.dateTimePreset))\n\t\t},\n\n\t\tparent: SET_REMINDER_MENU_ID,\n\n\t\tasync exec({ nodes }) {\n\t\t\t// Can't really happen, but just in case™\n\t\t\tconst node = nodes.at(0)!\n\t\t\tif (!node.fileid) {\n\t\t\t\tlogger.error('Failed to set reminder, missing file id')\n\t\t\t\tshowError(t('files_reminders', 'Failed to set reminder'))\n\t\t\t\treturn null\n\t\t\t}\n\n\t\t\t// Set the reminder\n\t\t\ttry {\n\t\t\t\tconst dateTime = getDateTime(option.dateTimePreset)!\n\t\t\t\tawait setReminder(node.fileid, dateTime)\n\t\t\t\tnode.attributes['reminder-due-date'] = dateTime.toISOString()\n\t\t\t\temit('files:node:updated', node)\n\t\t\t\tshowSuccess(t('files_reminders', 'Reminder set for \"{fileName}\"', { fileName: node.basename }))\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error('Failed to set reminder', { error })\n\t\t\t\tshowError(t('files_reminders', 'Failed to set reminder'))\n\t\t\t}\n\t\t\t// Silent success as we display our own notification\n\t\t\treturn null\n\t\t},\n\n\t\torder: 21,\n\t})\n}\n\n[laterToday, tomorrow, thisWeekend, nextWeek].forEach((option) => {\n\t// Generate the initial date string\n\tconst dateTime = getDateTime(option.dateTimePreset)\n\tif (!dateTime) {\n\t\treturn\n\t}\n\toption.dateString = getDateString(dateTime)\n\toption.verboseDateString = getVerboseDateString(dateTime)\n\n\t// Update the date string every 30 minutes\n\tsetInterval(() => {\n\t\tconst dateTime = getDateTime(option.dateTimePreset)\n\t\tif (!dateTime) {\n\t\t\treturn\n\t\t}\n\n\t\t// update the submenu remind options strings\n\t\toption.dateString = getDateString(dateTime)\n\t\toption.verboseDateString = getVerboseDateString(dateTime)\n\t}, 1000 * 30 * 60)\n})\n\n// Generate the default preset actions\nexport const actions = [laterToday, tomorrow, thisWeekend, nextWeek]\n\t.map(generateFileAction) as FileAction[]\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { registerFileAction } from '@nextcloud/files'\nimport { registerDavProperty } from '@nextcloud/files/dav'\nimport { action as clearAction } from './files_actions/clearReminderAction.ts'\nimport { action as statusAction } from './files_actions/reminderStatusAction.ts'\nimport { action as customAction } from './files_actions/setReminderCustomAction.ts'\nimport { action as menuAction } from './files_actions/setReminderMenuAction.ts'\nimport { actions as suggestionActions } from './files_actions/setReminderSuggestionActions.ts'\n\nregisterDavProperty('nc:reminder-due-date', { nc: 'http://nextcloud.org/ns' })\n\nregisterFileAction(statusAction)\nregisterFileAction(clearAction)\nregisterFileAction(menuAction)\nregisterFileAction(customAction)\nsuggestionActions.forEach((action) => registerFileAction(action))\n"],"names":["AlarmOffSvg","setReminder","fileId","dueDate","url","generateOcsUrl","axios","clearReminder","DateTimePreset","getFirstWorkdayOfWeek","now","getWeek","date","firstDayOfYear","daysFromFirstDay","isSameWeek","a","b","isSameDate","getDateTime","dateTime","evening","cutoff","day","today","saturday","firstWorkdayOfWeek","workday","getInitialCustomDueDate","getDateString","formatOptions","getCanonicalLocale","getVerboseDateString","action","FileAction","t","nodes","node","emit","AlarmSvg","logger","getLoggerBuilder","props","__props","__emit","hasDueDate","ref","opened","isValid","customDueDate","nowDate","onBeforeMount","onMounted","input","setCustom","showError","emitEventBus","showSuccess","onClose","error","clear","onInput","_createBlock","_unref","NcDialog","_createVNode","NcButton","_createElementVNode","NcDateTimePickerNative","$event","NcNoteCard","_createTextVNode","_toDisplayString","NcDateTime","pickCustomDate","spawnDialog","SetCustomReminderModal","CalendarClockSvg","SET_REMINDER_MENU_ID","view","laterToday","tomorrow","thisWeekend","nextWeek","generateFileAction","option","actions","registerDavProperty","registerFileAction","statusAction","clearAction","menuAction","customAction","suggestionActions"],"mappings":"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","x_google_ignoreList":[0,4,9]} \ No newline at end of file diff --git a/dist/files_trashbin-init.css b/dist/files_trashbin-init.css index fa97024503a4f..b1bf17ada335a 100644 --- a/dist/files_trashbin-init.css +++ b/dist/files_trashbin-init.css @@ -1,8 +1,10 @@ /* extracted by css-entry-points-plugin */ @import './files_trashbin-files_trashbin-init-nOmQ7X71.chunk.css'; -@import './NcNoteCard-CVhtNL04-DopLwvn9.chunk.css'; -@import './mdi-BYHcrfvW.chunk.css'; -@import './index-JpgrUA2Z-PxDoi4mB.chunk.css'; +@import './AccountOutline-Bx-uhVVO.chunk.css'; +@import './NcModal-MC_HktJd-YC6kxNbR.chunk.css'; +@import './Web-BYHcrfvW.chunk.css'; +@import './mdi-Jq77EThs.chunk.css'; +@import './index-JpgrUA2Z-CX17yN4T.chunk.css'; @import './PencilOutline-Bq_6hmXG.chunk.css'; @import './NcDateTime-DXOHXnuu.chunk.css'; @import './NcAvatar-DmUGApWA-B-07Svbi.chunk.css'; diff --git a/dist/files_trashbin-init.mjs b/dist/files_trashbin-init.mjs index 9fcff575b84b5..70940ee152ea0 100644 --- a/dist/files_trashbin-init.mjs +++ b/dist/files_trashbin-init.mjs @@ -1,12 +1,12 @@ -import{C as m,V as _,c as v,P as x,d as V,g as H,e as A,f as C}from"./index-BKfQ4diD.chunk.mjs";import{a as o,g as N,e as u}from"./index-6_gsQFyp.chunk.mjs";import{c as b,i as E}from"./index-BfylblLb.chunk.mjs";import{f as S,a as p,e as $,g as I}from"./index-JpgrUA2Z-BFiKKJ1W.chunk.mjs";import{t as n,g as y,a as f}from"./translation-DoG5ZELJ-gw0g4US-.chunk.mjs";import{d as D,e as L,l as M}from"./index-xFugdZPW.chunk.mjs";import{g as T,b as k}from"./createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs";import{g as F,a as B,b as U,r as P,d as O}from"./dav-Bns9Alug.chunk.mjs";import{h as R}from"./runtime-dom.esm-bundler-BrYCUcZF.chunk.mjs";import{N as q}from"./NcUserBubble-DPAmU2_J-BCvWAzcB.chunk.mjs";import"./string_decoder-BO00msnV.chunk.mjs";import"./NcNoteCard-CVhtNL04-hwuc093N.chunk.mjs";import"./mdi-D55n0uzy.chunk.mjs";import"./index-DY1sONrk.chunk.mjs";import"./colors-Go3zmZRD-DU6ImAGi.chunk.mjs";import"./NcAvatar-DmUGApWA-DBHt6M62.chunk.mjs";import"./PencilOutline-DCq8EKwg.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-CAvY10OW.chunk.mjs";const z='',K='',w=`/trashbin/${o()?.uid}/trash`,Y=F(),Z=` - +import{C as m,V as _,c as v,P as x,d as V,g as H,e as A,f as C}from"./index-CfoF28kA.chunk.mjs";import{a as o,g as N,e as u}from"./index-Bndk0DrU.chunk.mjs";import{c as p,i as E}from"./index-DVH_Kr3Q.chunk.mjs";import{a as b,e as S,g as $}from"./index-JpgrUA2Z-BXxDc_if.chunk.mjs";import{t as n,g as y,a as f}from"./string_decoder-vT-u9WbV.chunk.mjs";import{d as I,e as D,l as L}from"./index-DCpg1aui.chunk.mjs";import{g as M,d as T}from"./createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs";import{g as k,a as F,b as B,r as U,d as P}from"./dav-CsGtFpls.chunk.mjs";import{f as O}from"./NcModal-MC_HktJd-DqeuH-fk.chunk.mjs";import{h as R}from"./runtime-dom.esm-bundler-DdtEg5E9.chunk.mjs";import{N as q}from"./NcUserBubble-DPAmU2_J-D9jxXA1V.chunk.mjs";import"./public-uQ6dl0vH.chunk.mjs";import"./AccountOutline-BlW-6JqD.chunk.mjs";import"./Web-aYJacExm.chunk.mjs";import"./mdi-BpC5Cj53.chunk.mjs";import"./index-BGtOTwEf.chunk.mjs";import"./NcAvatar-DmUGApWA-xbPVEdSn.chunk.mjs";import"./colors-Go3zmZRD-DNxaZwS4.chunk.mjs";import"./PencilOutline-BSRAQiy1.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-BNncp1Y1.chunk.mjs";const z='',K='',w=`/trashbin/${o()?.uid}/trash`,Y=k(),Z=` + - ${U()} + ${B()} -`;function j(i){const e=P(i,w);return e.attributes.previewUrl=T("/apps/files_trashbin/preview?fileId={fileid}&x=32&y=32",{fileid:e.fileid}),e}async function G(i="/"){const e=(await Y.getDirectoryContents(`${w}${i}`,{details:!0,data:Z,includeSelf:!0})).data.map(j),[t]=e.splice(e.findIndex(s=>s.path===i),1);return{folder:t,contents:e}}const J=new m({id:"files_trashbin--original-location",title:n("files_trashbin","Original location"),render(i){const e=l(i),t=document.createElement("span");return t.title=e,t.textContent=e,t},sort(i,e){const t=l(i),s=l(e);return t.localeCompare(s,[y(),f()],{numeric:!0,usage:"sort"})}}),Q=new m({id:"files_trashbin--deleted-by",title:n("files_trashbin","Deleted by"),render(i){const{userId:e,displayName:t,label:s}=d(i);if(s){const a=document.createElement("span");return a.textContent=s,a}const r=document.createElement("div");return R(q,{size:32,user:e??void 0,displayName:t??e}).mount(r),r},sort(i,e){const t=d(i),s=t.label??t.displayName??t.userId,r=d(e),a=r.label??r.displayName??r.userId;return s.localeCompare(a,[y(),f()],{numeric:!0,usage:"sort"})}}),W=new m({id:"files_trashbin--deleted",title:n("files_trashbin","Deleted"),render(i){const e=i.attributes?.["trashbin-deletion-time"]||(i?.mtime?.getTime()??0)/1e3,t=document.createElement("span");if(e){const s=Intl.DateTimeFormat([f()],{dateStyle:"long",timeStyle:"short"}),r=new Date(e*1e3);return t.title=s.format(r),t.textContent=S(r,{ignoreSeconds:n("files","few seconds ago")}),t}return t.textContent=n("files_trashbin","A long time ago"),t},sort(i,e){const t=i.attributes?.["trashbin-deletion-time"]||(i?.mtime?.getTime()??0)/1e3;return(e.attributes?.["trashbin-deletion-time"]||(e?.mtime?.getTime()??0)/1e3)-t}});function l(i){const e=c(i.attributes?.["trashbin-original-location"]);if(!e)return n("files_trashbin","Unknown");const t=D(e);return t==="/"||t==="."?n("files_trashbin","All files"):t.replace(/^\//,"")}function d(i){const e=c(i.attributes?.["trashbin-deleted-by-id"]),t=c(i.attributes?.["trashbin-deleted-by-display-name"]);let s;const r=o()?.uid;return e===r&&(s=n("files_trashbin","You")),!e&&!t&&(s=n("files_trashbin","Unknown")),{userId:e,displayName:t,label:s}}function c(i){return i?String(i):null}const h="trashbin",X=new _({id:h,name:n("files_trashbin","Deleted files"),caption:n("files_trashbin","List of files that have been deleted."),emptyTitle:n("files_trashbin","No deleted files"),emptyCaption:n("files_trashbin","Files and folders you have deleted will show up here"),icon:K,order:50,sticky:!0,defaultSortKey:"deleted",columns:[J,Q,W],getContents:G}),g=N().setApp("files_trashbin").detectUser().build(),ee=new v({id:"restore",displayName(){return n("files_trashbin","Restore")},iconSvgInline:()=>z,enabled({nodes:i,view:e}){return e.id!==h?!1:i.length>0&&i.map(t=>t.permissions).every(t=>!!(t&x.READ))},async exec({nodes:i}){const e=i[0];try{const t=k(L(`dav/trashbin/${o().uid}/restore/${e.basename}`));return await b.request({method:"MOVE",url:e.encodedSource,headers:{destination:t}}),u("files:node:deleted",e),!0}catch(t){return E(t)&&t.response?.status===507&&p(n("files_trashbin","Not enough free space to restore the file/folder")),g.error("Failed to restore node",{error:t,node:e}),!1}},async execBatch({nodes:i,view:e,folder:t,contents:s}){return Promise.all(i.map(r=>this.exec({nodes:[r],view:e,folder:t,contents:s})))},order:1,inline:()=>!0});async function te(){try{return await b.delete(`${O}/trashbin/${o().uid}/trash`),$(n("files_trashbin","All files have been permanently deleted")),!0}catch(i){return p(n("files_trashbin","Failed to empty deleted files")),g.error("Failed to empty deleted files",{error:i}),!1}}const ie=new V({id:"empty-trash",displayName:()=>n("files_trashbin","Empty deleted files"),order:0,enabled({view:i,folder:e,contents:t}){return i.id!==h||!M("files_trashbin","config").allow_delete?!1:t.length>0&&e.path==="/"},async exec({contents:i}){return await new Promise(e=>{I(n("files_trashbin","Confirm permanent deletion")).setSeverity("warning").setText(n("files_trashbin","Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone.")).setButtons([{label:n("files_trashbin","Cancel"),variant:"secondary",callback:()=>e(!1)},{label:n("files_trashbin","Empty deleted files"),variant:"error",callback:()=>e(!0)}]).build().show().then(()=>{e(!1)})})===!0&&await te()&&i.forEach(e=>u("files:node:deleted",e)),null}}),ne=H();ne.register(X),A(ie),C(ee); +`;function j(i){const e=U(i,w);return e.attributes.previewUrl=M("/apps/files_trashbin/preview?fileId={fileid}&x=32&y=32",{fileid:e.fileid}),e}async function G(i="/"){const e=(await Y.getDirectoryContents(`${w}${i}`,{details:!0,data:Z,includeSelf:!0})).data.map(j),[t]=e.splice(e.findIndex(s=>s.path===i),1);return{folder:t,contents:e}}const J=new m({id:"files_trashbin--original-location",title:n("files_trashbin","Original location"),render(i){const e=l(i),t=document.createElement("span");return t.title=e,t.textContent=e,t},sort(i,e){const t=l(i),s=l(e);return t.localeCompare(s,[y(),f()],{numeric:!0,usage:"sort"})}}),Q=new m({id:"files_trashbin--deleted-by",title:n("files_trashbin","Deleted by"),render(i){const{userId:e,displayName:t,label:s}=d(i);if(s){const a=document.createElement("span");return a.textContent=s,a}const r=document.createElement("div");return R(q,{size:32,user:e??void 0,displayName:t??e}).mount(r),r},sort(i,e){const t=d(i),s=t.label??t.displayName??t.userId,r=d(e),a=r.label??r.displayName??r.userId;return s.localeCompare(a,[y(),f()],{numeric:!0,usage:"sort"})}}),W=new m({id:"files_trashbin--deleted",title:n("files_trashbin","Deleted"),render(i){const e=i.attributes?.["trashbin-deletion-time"]||(i?.mtime?.getTime()??0)/1e3,t=document.createElement("span");if(e){const s=Intl.DateTimeFormat([f()],{dateStyle:"long",timeStyle:"short"}),r=new Date(e*1e3);return t.title=s.format(r),t.textContent=O(r,{ignoreSeconds:n("files","few seconds ago")}),t}return t.textContent=n("files_trashbin","A long time ago"),t},sort(i,e){const t=i.attributes?.["trashbin-deletion-time"]||(i?.mtime?.getTime()??0)/1e3;return(e.attributes?.["trashbin-deletion-time"]||(e?.mtime?.getTime()??0)/1e3)-t}});function l(i){const e=c(i.attributes?.["trashbin-original-location"]);if(!e)return n("files_trashbin","Unknown");const t=I(e);return t==="/"||t==="."?n("files_trashbin","All files"):t.replace(/^\//,"")}function d(i){const e=c(i.attributes?.["trashbin-deleted-by-id"]),t=c(i.attributes?.["trashbin-deleted-by-display-name"]);let s;const r=o()?.uid;return e===r&&(s=n("files_trashbin","You")),!e&&!t&&(s=n("files_trashbin","Unknown")),{userId:e,displayName:t,label:s}}function c(i){return i?String(i):null}const h="trashbin",X=new _({id:h,name:n("files_trashbin","Deleted files"),caption:n("files_trashbin","List of files that have been deleted."),emptyTitle:n("files_trashbin","No deleted files"),emptyCaption:n("files_trashbin","Files and folders you have deleted will show up here"),icon:K,order:50,sticky:!0,defaultSortKey:"deleted",columns:[J,Q,W],getContents:G}),g=N().setApp("files_trashbin").detectUser().build(),ee=new v({id:"restore",displayName(){return n("files_trashbin","Restore")},iconSvgInline:()=>z,enabled({nodes:i,view:e}){return e.id!==h?!1:i.length>0&&i.map(t=>t.permissions).every(t=>!!(t&x.READ))},async exec({nodes:i}){const e=i[0];try{const t=T(D(`dav/trashbin/${o().uid}/restore/${e.basename}`));return await p.request({method:"MOVE",url:e.encodedSource,headers:{destination:t}}),u("files:node:deleted",e),!0}catch(t){return E(t)&&t.response?.status===507&&b(n("files_trashbin","Not enough free space to restore the file/folder")),g.error("Failed to restore node",{error:t,node:e}),!1}},async execBatch({nodes:i,view:e,folder:t,contents:s}){return Promise.all(i.map(r=>this.exec({nodes:[r],view:e,folder:t,contents:s})))},order:1,inline:()=>!0});async function te(){try{return await p.delete(`${P}/trashbin/${o().uid}/trash`),S(n("files_trashbin","All files have been permanently deleted")),!0}catch(i){return b(n("files_trashbin","Failed to empty deleted files")),g.error("Failed to empty deleted files",{error:i}),!1}}const ie=new V({id:"empty-trash",displayName:()=>n("files_trashbin","Empty deleted files"),order:0,enabled({view:i,folder:e,contents:t}){return i.id!==h||!L("files_trashbin","config").allow_delete?!1:t.length>0&&e.path==="/"},async exec({contents:i}){return await new Promise(e=>{$(n("files_trashbin","Confirm permanent deletion")).setSeverity("warning").setText(n("files_trashbin","Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone.")).setButtons([{label:n("files_trashbin","Cancel"),variant:"secondary",callback:()=>e(!1)},{label:n("files_trashbin","Empty deleted files"),variant:"error",callback:()=>e(!0)}]).build().show().then(()=>{e(!1)})})===!0&&await te()&&i.forEach(e=>u("files:node:deleted",e)),null}}),ne=H();ne.register(X),A(ie),C(ee); //# sourceMappingURL=files_trashbin-init.mjs.map diff --git a/dist/files_trashbin-init.mjs.map b/dist/files_trashbin-init.mjs.map index 0b6d73ab87d7e..f453e21436601 100644 --- a/dist/files_trashbin-init.mjs.map +++ b/dist/files_trashbin-init.mjs.map @@ -1 +1 @@ -{"version":3,"file":"files_trashbin-init.mjs","sources":["../node_modules/@mdi/svg/svg/history.svg?raw","../node_modules/@mdi/svg/svg/trash-can-outline.svg?raw","../build/frontend/apps/files_trashbin/src/services/client.ts","../build/frontend/apps/files_trashbin/src/services/trashbin.ts","../build/frontend/apps/files_trashbin/src/files_views/columns.ts","../build/frontend/apps/files_trashbin/src/files_views/trashbinView.ts","../build/frontend/apps/files_trashbin/src/logger.ts","../build/frontend/apps/files_trashbin/src/files_actions/restoreAction.ts","../build/frontend/apps/files_trashbin/src/services/api.ts","../build/frontend/apps/files_trashbin/src/files_listActions/emptyTrashAction.ts","../build/frontend/apps/files_trashbin/src/files-init.ts"],"sourcesContent":["export default \"\"","export default \"\"","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { getClient } from '@nextcloud/files/dav'\n\nexport const rootPath = `/trashbin/${getCurrentUser()?.uid}/trash`\n\nexport const client = getClient()\n","/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { ContentsWithRoot, Folder, Node } from '@nextcloud/files'\nimport type { FileStat, ResponseDataDetailed } from 'webdav'\n\nimport { resultToNode as davResultToNode, getDavNameSpaces, getDavProperties } from '@nextcloud/files/dav'\nimport { generateUrl } from '@nextcloud/router'\nimport { client, rootPath } from './client.ts'\n\nconst data = `\n\n\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t${getDavProperties()}\n\t\n`\n\n/**\n * Converts a WebDAV file stat to a File or Folder\n * This will fix the preview URL attribute for trashbin items\n *\n * @param stat - The file stat object from WebDAV response\n */\nfunction resultToNode(stat: FileStat): Node {\n\tconst node = davResultToNode(stat, rootPath)\n\tnode.attributes.previewUrl = generateUrl('/apps/files_trashbin/preview?fileId={fileid}&x=32&y=32', { fileid: node.fileid })\n\treturn node\n}\n\n/**\n * Get the contents of a trashbin folder\n *\n * @param path - The path of the trashbin folder to get contents from\n */\nexport async function getContents(path = '/'): Promise {\n\tconst contentsResponse = await client.getDirectoryContents(`${rootPath}${path}`, {\n\t\tdetails: true,\n\t\tdata,\n\t\tincludeSelf: true,\n\t}) as ResponseDataDetailed\n\n\tconst contents = contentsResponse.data.map(resultToNode)\n\tconst [folder] = contents.splice(contents.findIndex((node) => node.path === path), 1)\n\n\treturn {\n\t\tfolder: folder as Folder,\n\t\tcontents,\n\t}\n}\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { Node } from '@nextcloud/files'\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { Column } from '@nextcloud/files'\nimport { formatRelativeTime, getCanonicalLocale, getLanguage, t } from '@nextcloud/l10n'\nimport { dirname } from '@nextcloud/paths'\nimport { createApp } from 'vue'\nimport NcUserBubble from '@nextcloud/vue/components/NcUserBubble'\n\nexport const originalLocation = new Column({\n\tid: 'files_trashbin--original-location',\n\ttitle: t('files_trashbin', 'Original location'),\n\trender(node) {\n\t\tconst originalLocation = parseOriginalLocation(node)\n\t\tconst span = document.createElement('span')\n\t\tspan.title = originalLocation\n\t\tspan.textContent = originalLocation\n\t\treturn span\n\t},\n\tsort(nodeA, nodeB) {\n\t\tconst locationA = parseOriginalLocation(nodeA)\n\t\tconst locationB = parseOriginalLocation(nodeB)\n\t\treturn locationA.localeCompare(locationB, [getLanguage(), getCanonicalLocale()], { numeric: true, usage: 'sort' })\n\t},\n})\n\nexport const deletedBy = new Column({\n\tid: 'files_trashbin--deleted-by',\n\ttitle: t('files_trashbin', 'Deleted by'),\n\trender(node) {\n\t\tconst { userId, displayName, label } = parseDeletedBy(node)\n\t\tif (label) {\n\t\t\tconst span = document.createElement('span')\n\t\t\tspan.textContent = label\n\t\t\treturn span\n\t\t}\n\n\t\tconst el = document.createElement('div')\n\t\tcreateApp(NcUserBubble, {\n\t\t\tsize: 32,\n\t\t\tuser: userId ?? undefined,\n\t\t\tdisplayName: displayName ?? userId,\n\t\t}).mount(el)\n\t\treturn el\n\t},\n\tsort(nodeA, nodeB) {\n\t\tconst deletedByA = parseDeletedBy(nodeA)\n\t\tconst deletedbyALabel = deletedByA.label ?? deletedByA.displayName ?? deletedByA.userId\n\t\tconst deletedByB = parseDeletedBy(nodeB)\n\t\tconst deletedByBLabel = deletedByB.label ?? deletedByB.displayName ?? deletedByB.userId\n\t\t// label is set if uid and display name are unset - if label is unset at least uid or display name is set.\n\t\treturn deletedbyALabel!.localeCompare(deletedByBLabel!, [getLanguage(), getCanonicalLocale()], { numeric: true, usage: 'sort' })\n\t},\n})\n\nexport const deleted = new Column({\n\tid: 'files_trashbin--deleted',\n\ttitle: t('files_trashbin', 'Deleted'),\n\n\trender(node) {\n\t\tconst deletionTime = node.attributes?.['trashbin-deletion-time'] || ((node?.mtime?.getTime() ?? 0) / 1000)\n\t\tconst span = document.createElement('span')\n\t\tif (deletionTime) {\n\t\t\tconst formatter = Intl.DateTimeFormat([getCanonicalLocale()], { dateStyle: 'long', timeStyle: 'short' })\n\t\t\tconst timestamp = new Date(deletionTime * 1000)\n\n\t\t\tspan.title = formatter.format(timestamp)\n\t\t\tspan.textContent = formatRelativeTime(timestamp, { ignoreSeconds: t('files', 'few seconds ago') })\n\t\t\treturn span\n\t\t}\n\n\t\t// Unknown deletion time\n\t\tspan.textContent = t('files_trashbin', 'A long time ago')\n\t\treturn span\n\t},\n\n\tsort(nodeA, nodeB) {\n\t\t// deletion time is a unix timestamp while mtime is a JS Date -> we need to align the numbers (seconds vs milliseconds)\n\t\tconst deletionTimeA = nodeA.attributes?.['trashbin-deletion-time'] || ((nodeA?.mtime?.getTime() ?? 0) / 1000)\n\t\tconst deletionTimeB = nodeB.attributes?.['trashbin-deletion-time'] || ((nodeB?.mtime?.getTime() ?? 0) / 1000)\n\t\treturn deletionTimeB - deletionTimeA\n\t},\n})\n\n/**\n * Get the original file location of a trashbin file.\n *\n * @param node The node to parse\n */\nfunction parseOriginalLocation(node: Node): string {\n\tconst path = stringOrNull(node.attributes?.['trashbin-original-location'])\n\tif (!path) {\n\t\treturn t('files_trashbin', 'Unknown')\n\t}\n\n\tconst dir = dirname(path)\n\tif (dir === '/' || dir === '.') { // Node is in root folder\n\t\treturn t('files_trashbin', 'All files')\n\t}\n\n\treturn dir.replace(/^\\//, '')\n}\n\n/**\n * Parse a trashbin file to get information about the user that deleted the file.\n *\n * @param node The node to parse\n */\nfunction parseDeletedBy(node: Node) {\n\tconst userId = stringOrNull(node.attributes?.['trashbin-deleted-by-id'])\n\tconst displayName = stringOrNull(node.attributes?.['trashbin-deleted-by-display-name'])\n\n\tlet label: string | undefined\n\tconst currentUserId = getCurrentUser()?.uid\n\tif (userId === currentUserId) {\n\t\tlabel = t('files_trashbin', 'You')\n\t}\n\tif (!userId && !displayName) {\n\t\tlabel = t('files_trashbin', 'Unknown')\n\t}\n\n\treturn {\n\t\tuserId,\n\t\tdisplayName,\n\t\tlabel,\n\t}\n}\n\n/**\n * If the attribute is given it will be stringified and returned - otherwise null is returned.\n *\n * @param attribute The attribute to check\n */\nfunction stringOrNull(attribute: unknown): string | null {\n\tif (attribute) {\n\t\treturn String(attribute)\n\t}\n\treturn null\n}\n","/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport svgDelete from '@mdi/svg/svg/trash-can-outline.svg?raw'\nimport { View } from '@nextcloud/files'\nimport { t } from '@nextcloud/l10n'\nimport { getContents } from '../services/trashbin.ts'\nimport { deleted, deletedBy, originalLocation } from './columns.ts'\n\nexport const TRASHBIN_VIEW_ID = 'trashbin'\n\nexport const trashbinView = new View({\n\tid: TRASHBIN_VIEW_ID,\n\tname: t('files_trashbin', 'Deleted files'),\n\tcaption: t('files_trashbin', 'List of files that have been deleted.'),\n\n\temptyTitle: t('files_trashbin', 'No deleted files'),\n\temptyCaption: t('files_trashbin', 'Files and folders you have deleted will show up here'),\n\n\ticon: svgDelete,\n\torder: 50,\n\tsticky: true,\n\n\tdefaultSortKey: 'deleted',\n\n\tcolumns: [\n\t\toriginalLocation,\n\t\tdeletedBy,\n\t\tdeleted,\n\t],\n\n\tgetContents,\n})\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport const logger = getLoggerBuilder()\n\t.setApp('files_trashbin')\n\t.detectUser()\n\t.build()\n","/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport svgHistory from '@mdi/svg/svg/history.svg?raw'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport axios, { isAxiosError } from '@nextcloud/axios'\nimport { showError } from '@nextcloud/dialogs'\nimport { emit } from '@nextcloud/event-bus'\nimport { FileAction, Permission } from '@nextcloud/files'\nimport { t } from '@nextcloud/l10n'\nimport { encodePath } from '@nextcloud/paths'\nimport { generateRemoteUrl } from '@nextcloud/router'\nimport { TRASHBIN_VIEW_ID } from '../files_views/trashbinView.ts'\nimport { logger } from '../logger.ts'\n\nexport const restoreAction = new FileAction({\n\tid: 'restore',\n\n\tdisplayName() {\n\t\treturn t('files_trashbin', 'Restore')\n\t},\n\n\ticonSvgInline: () => svgHistory,\n\n\tenabled({ nodes, view }) {\n\t\t// Only available in the trashbin view\n\t\tif (view.id !== TRASHBIN_VIEW_ID) {\n\t\t\treturn false\n\t\t}\n\n\t\t// Only available if all nodes have read permission\n\t\treturn nodes.length > 0\n\t\t\t&& nodes\n\t\t\t\t.map((node) => node.permissions)\n\t\t\t\t.every((permission) => Boolean(permission & Permission.READ))\n\t},\n\n\tasync exec({ nodes }) {\n\t\tconst node = nodes[0]\n\t\ttry {\n\t\t\tconst destination = generateRemoteUrl(encodePath(`dav/trashbin/${getCurrentUser()!.uid}/restore/${node.basename}`))\n\t\t\tawait axios.request({\n\t\t\t\tmethod: 'MOVE',\n\t\t\t\turl: node.encodedSource,\n\t\t\t\theaders: {\n\t\t\t\t\tdestination,\n\t\t\t\t},\n\t\t\t})\n\n\t\t\t// Let's pretend the file is deleted since\n\t\t\t// we don't know the restored location\n\t\t\temit('files:node:deleted', node)\n\t\t\treturn true\n\t\t} catch (error) {\n\t\t\tif (isAxiosError(error) && error.response?.status === 507) {\n\t\t\t\tshowError(t('files_trashbin', 'Not enough free space to restore the file/folder'))\n\t\t\t}\n\t\t\tlogger.error('Failed to restore node', { error, node })\n\t\t\treturn false\n\t\t}\n\t},\n\n\tasync execBatch({ nodes, view, folder, contents }) {\n\t\treturn Promise.all(nodes.map((node) => this.exec({ nodes: [node], view, folder, contents })))\n\t},\n\n\torder: 1,\n\n\tinline: () => true,\n})\n","/**\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport axios from '@nextcloud/axios'\nimport { showError, showSuccess } from '@nextcloud/dialogs'\nimport { defaultRemoteURL } from '@nextcloud/files/dav'\nimport { t } from '@nextcloud/l10n'\nimport { logger } from '../logger.ts'\n\n/**\n * Send API request to empty the trashbin.\n * Returns true if request succeeded - otherwise false is returned.\n */\nexport async function emptyTrash(): Promise {\n\ttry {\n\t\tawait axios.delete(`${defaultRemoteURL}/trashbin/${getCurrentUser()!.uid}/trash`)\n\t\tshowSuccess(t('files_trashbin', 'All files have been permanently deleted'))\n\t\treturn true\n\t} catch (error) {\n\t\tshowError(t('files_trashbin', 'Failed to empty deleted files'))\n\t\tlogger.error('Failed to empty deleted files', { error })\n\t\treturn false\n\t}\n}\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getDialogBuilder } from '@nextcloud/dialogs'\nimport { emit } from '@nextcloud/event-bus'\nimport { FileListAction } from '@nextcloud/files'\nimport { loadState } from '@nextcloud/initial-state'\nimport { t } from '@nextcloud/l10n'\nimport { TRASHBIN_VIEW_ID } from '../files_views/trashbinView.ts'\nimport { emptyTrash } from '../services/api.ts'\n\nexport type FilesTrashbinConfigState = {\n\tallow_delete: boolean\n}\n\nexport const emptyTrashAction = new FileListAction({\n\tid: 'empty-trash',\n\n\tdisplayName: () => t('files_trashbin', 'Empty deleted files'),\n\torder: 0,\n\n\tenabled({ view, folder, contents }) {\n\t\tif (view.id !== TRASHBIN_VIEW_ID) {\n\t\t\treturn false\n\t\t}\n\n\t\tconst config = loadState('files_trashbin', 'config')\n\t\tif (!config.allow_delete) {\n\t\t\treturn false\n\t\t}\n\n\t\treturn contents.length > 0 && folder.path === '/'\n\t},\n\n\tasync exec({ contents }): Promise {\n\t\tconst askConfirmation = new Promise((resolve) => {\n\t\t\tconst dialog = getDialogBuilder(t('files_trashbin', 'Confirm permanent deletion'))\n\t\t\t\t.setSeverity('warning')\n\t\t\t\t// TODO Add note for groupfolders\n\t\t\t\t.setText(t('files_trashbin', 'Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone.'))\n\t\t\t\t.setButtons([\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: t('files_trashbin', 'Cancel'),\n\t\t\t\t\t\tvariant: 'secondary',\n\t\t\t\t\t\tcallback: () => resolve(false),\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: t('files_trashbin', 'Empty deleted files'),\n\t\t\t\t\t\tvariant: 'error',\n\t\t\t\t\t\tcallback: () => resolve(true),\n\t\t\t\t\t},\n\t\t\t\t])\n\t\t\t\t.build()\n\t\t\tdialog.show().then(() => {\n\t\t\t\tresolve(false)\n\t\t\t})\n\t\t})\n\n\t\tconst result = await askConfirmation\n\t\tif (result === true) {\n\t\t\tif (await emptyTrash()) {\n\t\t\t\tcontents.forEach((node) => emit('files:node:deleted', node))\n\t\t\t}\n\t\t\treturn null\n\t\t}\n\n\t\treturn null\n\t},\n})\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getNavigation, registerFileAction, registerFileListAction } from '@nextcloud/files'\nimport { restoreAction } from './files_actions/restoreAction.ts'\nimport { emptyTrashAction } from './files_listActions/emptyTrashAction.ts'\nimport { trashbinView } from './files_views/trashbinView.ts'\n\nimport './trashbin.scss'\n\nconst Navigation = getNavigation()\nNavigation.register(trashbinView)\n\nregisterFileListAction(emptyTrashAction)\nregisterFileAction(restoreAction)\n"],"names":["svgHistory","svgDelete","rootPath","getCurrentUser","client","getClient","data","getDavNameSpaces","getDavProperties","resultToNode","stat","node","davResultToNode","generateUrl","getContents","path","contents","folder","originalLocation","Column","t","parseOriginalLocation","span","nodeA","nodeB","locationA","locationB","getLanguage","getCanonicalLocale","deletedBy","userId","displayName","label","parseDeletedBy","el","createApp","NcUserBubble","deletedByA","deletedbyALabel","deletedByB","deletedByBLabel","deleted","deletionTime","formatter","timestamp","formatRelativeTime","deletionTimeA","stringOrNull","dir","dirname","currentUserId","attribute","TRASHBIN_VIEW_ID","trashbinView","View","logger","getLoggerBuilder","restoreAction","FileAction","nodes","view","permission","Permission","destination","generateRemoteUrl","encodePath","axios","emit","error","isAxiosError","showError","emptyTrash","defaultRemoteURL","showSuccess","emptyTrashAction","FileListAction","loadState","resolve","getDialogBuilder","Navigation","getNavigation","registerFileListAction","registerFileAction"],"mappings":"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","x_google_ignoreList":[0,1]} \ No newline at end of file +{"version":3,"file":"files_trashbin-init.mjs","sources":["../node_modules/@mdi/svg/svg/history.svg?raw","../node_modules/@mdi/svg/svg/trash-can-outline.svg?raw","../build/frontend/apps/files_trashbin/src/services/client.ts","../build/frontend/apps/files_trashbin/src/services/trashbin.ts","../build/frontend/apps/files_trashbin/src/files_views/columns.ts","../build/frontend/apps/files_trashbin/src/files_views/trashbinView.ts","../build/frontend/apps/files_trashbin/src/logger.ts","../build/frontend/apps/files_trashbin/src/files_actions/restoreAction.ts","../build/frontend/apps/files_trashbin/src/services/api.ts","../build/frontend/apps/files_trashbin/src/files_listActions/emptyTrashAction.ts","../build/frontend/apps/files_trashbin/src/files-init.ts"],"sourcesContent":["export default \"\"","export default \"\"","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { getClient } from '@nextcloud/files/dav'\n\nexport const rootPath = `/trashbin/${getCurrentUser()?.uid}/trash`\n\nexport const client = getClient()\n","/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { ContentsWithRoot, Folder, Node } from '@nextcloud/files'\nimport type { FileStat, ResponseDataDetailed } from 'webdav'\n\nimport { resultToNode as davResultToNode, getDavNameSpaces, getDavProperties } from '@nextcloud/files/dav'\nimport { generateUrl } from '@nextcloud/router'\nimport { client, rootPath } from './client.ts'\n\nconst data = `\n\n\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t${getDavProperties()}\n\t\n`\n\n/**\n * Converts a WebDAV file stat to a File or Folder\n * This will fix the preview URL attribute for trashbin items\n *\n * @param stat - The file stat object from WebDAV response\n */\nfunction resultToNode(stat: FileStat): Node {\n\tconst node = davResultToNode(stat, rootPath)\n\tnode.attributes.previewUrl = generateUrl('/apps/files_trashbin/preview?fileId={fileid}&x=32&y=32', { fileid: node.fileid })\n\treturn node\n}\n\n/**\n * Get the contents of a trashbin folder\n *\n * @param path - The path of the trashbin folder to get contents from\n */\nexport async function getContents(path = '/'): Promise {\n\tconst contentsResponse = await client.getDirectoryContents(`${rootPath}${path}`, {\n\t\tdetails: true,\n\t\tdata,\n\t\tincludeSelf: true,\n\t}) as ResponseDataDetailed\n\n\tconst contents = contentsResponse.data.map(resultToNode)\n\tconst [folder] = contents.splice(contents.findIndex((node) => node.path === path), 1)\n\n\treturn {\n\t\tfolder: folder as Folder,\n\t\tcontents,\n\t}\n}\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { Node } from '@nextcloud/files'\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { Column } from '@nextcloud/files'\nimport { formatRelativeTime, getCanonicalLocale, getLanguage, t } from '@nextcloud/l10n'\nimport { dirname } from '@nextcloud/paths'\nimport { createApp } from 'vue'\nimport NcUserBubble from '@nextcloud/vue/components/NcUserBubble'\n\nexport const originalLocation = new Column({\n\tid: 'files_trashbin--original-location',\n\ttitle: t('files_trashbin', 'Original location'),\n\trender(node) {\n\t\tconst originalLocation = parseOriginalLocation(node)\n\t\tconst span = document.createElement('span')\n\t\tspan.title = originalLocation\n\t\tspan.textContent = originalLocation\n\t\treturn span\n\t},\n\tsort(nodeA, nodeB) {\n\t\tconst locationA = parseOriginalLocation(nodeA)\n\t\tconst locationB = parseOriginalLocation(nodeB)\n\t\treturn locationA.localeCompare(locationB, [getLanguage(), getCanonicalLocale()], { numeric: true, usage: 'sort' })\n\t},\n})\n\nexport const deletedBy = new Column({\n\tid: 'files_trashbin--deleted-by',\n\ttitle: t('files_trashbin', 'Deleted by'),\n\trender(node) {\n\t\tconst { userId, displayName, label } = parseDeletedBy(node)\n\t\tif (label) {\n\t\t\tconst span = document.createElement('span')\n\t\t\tspan.textContent = label\n\t\t\treturn span\n\t\t}\n\n\t\tconst el = document.createElement('div')\n\t\tcreateApp(NcUserBubble, {\n\t\t\tsize: 32,\n\t\t\tuser: userId ?? undefined,\n\t\t\tdisplayName: displayName ?? userId,\n\t\t}).mount(el)\n\t\treturn el\n\t},\n\tsort(nodeA, nodeB) {\n\t\tconst deletedByA = parseDeletedBy(nodeA)\n\t\tconst deletedbyALabel = deletedByA.label ?? deletedByA.displayName ?? deletedByA.userId\n\t\tconst deletedByB = parseDeletedBy(nodeB)\n\t\tconst deletedByBLabel = deletedByB.label ?? deletedByB.displayName ?? deletedByB.userId\n\t\t// label is set if uid and display name are unset - if label is unset at least uid or display name is set.\n\t\treturn deletedbyALabel!.localeCompare(deletedByBLabel!, [getLanguage(), getCanonicalLocale()], { numeric: true, usage: 'sort' })\n\t},\n})\n\nexport const deleted = new Column({\n\tid: 'files_trashbin--deleted',\n\ttitle: t('files_trashbin', 'Deleted'),\n\n\trender(node) {\n\t\tconst deletionTime = node.attributes?.['trashbin-deletion-time'] || ((node?.mtime?.getTime() ?? 0) / 1000)\n\t\tconst span = document.createElement('span')\n\t\tif (deletionTime) {\n\t\t\tconst formatter = Intl.DateTimeFormat([getCanonicalLocale()], { dateStyle: 'long', timeStyle: 'short' })\n\t\t\tconst timestamp = new Date(deletionTime * 1000)\n\n\t\t\tspan.title = formatter.format(timestamp)\n\t\t\tspan.textContent = formatRelativeTime(timestamp, { ignoreSeconds: t('files', 'few seconds ago') })\n\t\t\treturn span\n\t\t}\n\n\t\t// Unknown deletion time\n\t\tspan.textContent = t('files_trashbin', 'A long time ago')\n\t\treturn span\n\t},\n\n\tsort(nodeA, nodeB) {\n\t\t// deletion time is a unix timestamp while mtime is a JS Date -> we need to align the numbers (seconds vs milliseconds)\n\t\tconst deletionTimeA = nodeA.attributes?.['trashbin-deletion-time'] || ((nodeA?.mtime?.getTime() ?? 0) / 1000)\n\t\tconst deletionTimeB = nodeB.attributes?.['trashbin-deletion-time'] || ((nodeB?.mtime?.getTime() ?? 0) / 1000)\n\t\treturn deletionTimeB - deletionTimeA\n\t},\n})\n\n/**\n * Get the original file location of a trashbin file.\n *\n * @param node The node to parse\n */\nfunction parseOriginalLocation(node: Node): string {\n\tconst path = stringOrNull(node.attributes?.['trashbin-original-location'])\n\tif (!path) {\n\t\treturn t('files_trashbin', 'Unknown')\n\t}\n\n\tconst dir = dirname(path)\n\tif (dir === '/' || dir === '.') { // Node is in root folder\n\t\treturn t('files_trashbin', 'All files')\n\t}\n\n\treturn dir.replace(/^\\//, '')\n}\n\n/**\n * Parse a trashbin file to get information about the user that deleted the file.\n *\n * @param node The node to parse\n */\nfunction parseDeletedBy(node: Node) {\n\tconst userId = stringOrNull(node.attributes?.['trashbin-deleted-by-id'])\n\tconst displayName = stringOrNull(node.attributes?.['trashbin-deleted-by-display-name'])\n\n\tlet label: string | undefined\n\tconst currentUserId = getCurrentUser()?.uid\n\tif (userId === currentUserId) {\n\t\tlabel = t('files_trashbin', 'You')\n\t}\n\tif (!userId && !displayName) {\n\t\tlabel = t('files_trashbin', 'Unknown')\n\t}\n\n\treturn {\n\t\tuserId,\n\t\tdisplayName,\n\t\tlabel,\n\t}\n}\n\n/**\n * If the attribute is given it will be stringified and returned - otherwise null is returned.\n *\n * @param attribute The attribute to check\n */\nfunction stringOrNull(attribute: unknown): string | null {\n\tif (attribute) {\n\t\treturn String(attribute)\n\t}\n\treturn null\n}\n","/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport svgDelete from '@mdi/svg/svg/trash-can-outline.svg?raw'\nimport { View } from '@nextcloud/files'\nimport { t } from '@nextcloud/l10n'\nimport { getContents } from '../services/trashbin.ts'\nimport { deleted, deletedBy, originalLocation } from './columns.ts'\n\nexport const TRASHBIN_VIEW_ID = 'trashbin'\n\nexport const trashbinView = new View({\n\tid: TRASHBIN_VIEW_ID,\n\tname: t('files_trashbin', 'Deleted files'),\n\tcaption: t('files_trashbin', 'List of files that have been deleted.'),\n\n\temptyTitle: t('files_trashbin', 'No deleted files'),\n\temptyCaption: t('files_trashbin', 'Files and folders you have deleted will show up here'),\n\n\ticon: svgDelete,\n\torder: 50,\n\tsticky: true,\n\n\tdefaultSortKey: 'deleted',\n\n\tcolumns: [\n\t\toriginalLocation,\n\t\tdeletedBy,\n\t\tdeleted,\n\t],\n\n\tgetContents,\n})\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport const logger = getLoggerBuilder()\n\t.setApp('files_trashbin')\n\t.detectUser()\n\t.build()\n","/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport svgHistory from '@mdi/svg/svg/history.svg?raw'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport axios, { isAxiosError } from '@nextcloud/axios'\nimport { showError } from '@nextcloud/dialogs'\nimport { emit } from '@nextcloud/event-bus'\nimport { FileAction, Permission } from '@nextcloud/files'\nimport { t } from '@nextcloud/l10n'\nimport { encodePath } from '@nextcloud/paths'\nimport { generateRemoteUrl } from '@nextcloud/router'\nimport { TRASHBIN_VIEW_ID } from '../files_views/trashbinView.ts'\nimport { logger } from '../logger.ts'\n\nexport const restoreAction = new FileAction({\n\tid: 'restore',\n\n\tdisplayName() {\n\t\treturn t('files_trashbin', 'Restore')\n\t},\n\n\ticonSvgInline: () => svgHistory,\n\n\tenabled({ nodes, view }) {\n\t\t// Only available in the trashbin view\n\t\tif (view.id !== TRASHBIN_VIEW_ID) {\n\t\t\treturn false\n\t\t}\n\n\t\t// Only available if all nodes have read permission\n\t\treturn nodes.length > 0\n\t\t\t&& nodes\n\t\t\t\t.map((node) => node.permissions)\n\t\t\t\t.every((permission) => Boolean(permission & Permission.READ))\n\t},\n\n\tasync exec({ nodes }) {\n\t\tconst node = nodes[0]\n\t\ttry {\n\t\t\tconst destination = generateRemoteUrl(encodePath(`dav/trashbin/${getCurrentUser()!.uid}/restore/${node.basename}`))\n\t\t\tawait axios.request({\n\t\t\t\tmethod: 'MOVE',\n\t\t\t\turl: node.encodedSource,\n\t\t\t\theaders: {\n\t\t\t\t\tdestination,\n\t\t\t\t},\n\t\t\t})\n\n\t\t\t// Let's pretend the file is deleted since\n\t\t\t// we don't know the restored location\n\t\t\temit('files:node:deleted', node)\n\t\t\treturn true\n\t\t} catch (error) {\n\t\t\tif (isAxiosError(error) && error.response?.status === 507) {\n\t\t\t\tshowError(t('files_trashbin', 'Not enough free space to restore the file/folder'))\n\t\t\t}\n\t\t\tlogger.error('Failed to restore node', { error, node })\n\t\t\treturn false\n\t\t}\n\t},\n\n\tasync execBatch({ nodes, view, folder, contents }) {\n\t\treturn Promise.all(nodes.map((node) => this.exec({ nodes: [node], view, folder, contents })))\n\t},\n\n\torder: 1,\n\n\tinline: () => true,\n})\n","/**\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport axios from '@nextcloud/axios'\nimport { showError, showSuccess } from '@nextcloud/dialogs'\nimport { defaultRemoteURL } from '@nextcloud/files/dav'\nimport { t } from '@nextcloud/l10n'\nimport { logger } from '../logger.ts'\n\n/**\n * Send API request to empty the trashbin.\n * Returns true if request succeeded - otherwise false is returned.\n */\nexport async function emptyTrash(): Promise {\n\ttry {\n\t\tawait axios.delete(`${defaultRemoteURL}/trashbin/${getCurrentUser()!.uid}/trash`)\n\t\tshowSuccess(t('files_trashbin', 'All files have been permanently deleted'))\n\t\treturn true\n\t} catch (error) {\n\t\tshowError(t('files_trashbin', 'Failed to empty deleted files'))\n\t\tlogger.error('Failed to empty deleted files', { error })\n\t\treturn false\n\t}\n}\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getDialogBuilder } from '@nextcloud/dialogs'\nimport { emit } from '@nextcloud/event-bus'\nimport { FileListAction } from '@nextcloud/files'\nimport { loadState } from '@nextcloud/initial-state'\nimport { t } from '@nextcloud/l10n'\nimport { TRASHBIN_VIEW_ID } from '../files_views/trashbinView.ts'\nimport { emptyTrash } from '../services/api.ts'\n\nexport type FilesTrashbinConfigState = {\n\tallow_delete: boolean\n}\n\nexport const emptyTrashAction = new FileListAction({\n\tid: 'empty-trash',\n\n\tdisplayName: () => t('files_trashbin', 'Empty deleted files'),\n\torder: 0,\n\n\tenabled({ view, folder, contents }) {\n\t\tif (view.id !== TRASHBIN_VIEW_ID) {\n\t\t\treturn false\n\t\t}\n\n\t\tconst config = loadState('files_trashbin', 'config')\n\t\tif (!config.allow_delete) {\n\t\t\treturn false\n\t\t}\n\n\t\treturn contents.length > 0 && folder.path === '/'\n\t},\n\n\tasync exec({ contents }): Promise {\n\t\tconst askConfirmation = new Promise((resolve) => {\n\t\t\tconst dialog = getDialogBuilder(t('files_trashbin', 'Confirm permanent deletion'))\n\t\t\t\t.setSeverity('warning')\n\t\t\t\t// TODO Add note for groupfolders\n\t\t\t\t.setText(t('files_trashbin', 'Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone.'))\n\t\t\t\t.setButtons([\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: t('files_trashbin', 'Cancel'),\n\t\t\t\t\t\tvariant: 'secondary',\n\t\t\t\t\t\tcallback: () => resolve(false),\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: t('files_trashbin', 'Empty deleted files'),\n\t\t\t\t\t\tvariant: 'error',\n\t\t\t\t\t\tcallback: () => resolve(true),\n\t\t\t\t\t},\n\t\t\t\t])\n\t\t\t\t.build()\n\t\t\tdialog.show().then(() => {\n\t\t\t\tresolve(false)\n\t\t\t})\n\t\t})\n\n\t\tconst result = await askConfirmation\n\t\tif (result === true) {\n\t\t\tif (await emptyTrash()) {\n\t\t\t\tcontents.forEach((node) => emit('files:node:deleted', node))\n\t\t\t}\n\t\t\treturn null\n\t\t}\n\n\t\treturn null\n\t},\n})\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getNavigation, registerFileAction, registerFileListAction } from '@nextcloud/files'\nimport { restoreAction } from './files_actions/restoreAction.ts'\nimport { emptyTrashAction } from './files_listActions/emptyTrashAction.ts'\nimport { trashbinView } from './files_views/trashbinView.ts'\n\nimport './trashbin.scss'\n\nconst Navigation = getNavigation()\nNavigation.register(trashbinView)\n\nregisterFileListAction(emptyTrashAction)\nregisterFileAction(restoreAction)\n"],"names":["svgHistory","svgDelete","rootPath","getCurrentUser","client","getClient","data","getDavNameSpaces","getDavProperties","resultToNode","stat","node","davResultToNode","generateUrl","getContents","path","contents","folder","originalLocation","Column","t","parseOriginalLocation","span","nodeA","nodeB","locationA","locationB","getLanguage","getCanonicalLocale","deletedBy","userId","displayName","label","parseDeletedBy","el","createApp","NcUserBubble","deletedByA","deletedbyALabel","deletedByB","deletedByBLabel","deleted","deletionTime","formatter","timestamp","formatRelativeTime","deletionTimeA","stringOrNull","dir","dirname","currentUserId","attribute","TRASHBIN_VIEW_ID","trashbinView","View","logger","getLoggerBuilder","restoreAction","FileAction","nodes","view","permission","Permission","destination","generateRemoteUrl","encodePath","axios","emit","error","isAxiosError","showError","emptyTrash","defaultRemoteURL","showSuccess","emptyTrashAction","FileListAction","loadState","resolve","getDialogBuilder","Navigation","getNavigation","registerFileListAction","registerFileAction"],"mappings":"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","x_google_ignoreList":[0,1]} \ No newline at end of file diff --git a/dist/files_versions-sidebar-tab.mjs b/dist/files_versions-sidebar-tab.mjs index f0c9b725ff6ca..f2043e0e80735 100644 --- a/dist/files_versions-sidebar-tab.mjs +++ b/dist/files_versions-sidebar-tab.mjs @@ -1,3 +1,3 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=[window.OC.filePath('', '', 'dist/FilesVersionsSidebarTab-Cug-mCDO.chunk.mjs'),window.OC.filePath('', '', 'dist/index-JpgrUA2Z-BFiKKJ1W.chunk.mjs'),window.OC.filePath('', '', 'dist/index-xFugdZPW.chunk.mjs'),window.OC.filePath('', '', 'dist/runtime-dom.esm-bundler-BrYCUcZF.chunk.mjs'),window.OC.filePath('', '', 'dist/createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs'),window.OC.filePath('', '', 'dist/translation-DoG5ZELJ-gw0g4US-.chunk.mjs'),window.OC.filePath('', '', 'dist/index-6_gsQFyp.chunk.mjs'),window.OC.filePath('', '', 'dist/NcNoteCard-CVhtNL04-hwuc093N.chunk.mjs'),window.OC.filePath('', '', 'dist/NcNoteCard-CVhtNL04-DopLwvn9.chunk.css'),window.OC.filePath('', '', 'dist/mdi-D55n0uzy.chunk.mjs'),window.OC.filePath('', '', 'dist/mdi-BYHcrfvW.chunk.css'),window.OC.filePath('', '', 'dist/index-JpgrUA2Z-PxDoi4mB.chunk.css'),window.OC.filePath('', '', 'dist/index-BKfQ4diD.chunk.mjs'),window.OC.filePath('', '', 'dist/string_decoder-BO00msnV.chunk.mjs'),window.OC.filePath('', '', 'dist/NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-CAvY10OW.chunk.mjs'),window.OC.filePath('', '', 'dist/NcDateTime-DXOHXnuu.chunk.css'),window.OC.filePath('', '', 'dist/NcAvatar-DmUGApWA-DBHt6M62.chunk.mjs'),window.OC.filePath('', '', 'dist/index-BfylblLb.chunk.mjs'),window.OC.filePath('', '', 'dist/colors-Go3zmZRD-DU6ImAGi.chunk.mjs'),window.OC.filePath('', '', 'dist/PencilOutline-DCq8EKwg.chunk.mjs'),window.OC.filePath('', '', 'dist/PencilOutline-Bq_6hmXG.chunk.css'),window.OC.filePath('', '', 'dist/NcAvatar-DmUGApWA-B-07Svbi.chunk.css'),window.OC.filePath('', '', 'dist/TrayArrowDown-DV7s2Yis.chunk.mjs'),window.OC.filePath('', '', 'dist/TrayArrowDown-CMlC-wJV.chunk.css'),window.OC.filePath('', '', 'dist/TrashCanOutline-CvWRJ8GE.chunk.mjs'),window.OC.filePath('', '', 'dist/NcInputField-Bwsh2aHY-CHbAfY0u.chunk.mjs'),window.OC.filePath('', '', 'dist/NcInputField-Bwsh2aHY-_gyGHRGx.chunk.css'),window.OC.filePath('', '', 'dist/dav-Bns9Alug.chunk.mjs'),window.OC.filePath('', '', 'dist/index-DY1sONrk.chunk.mjs'),window.OC.filePath('', '', 'dist/files_versions-FilesVersionsSidebarTab-wDg6mXet.chunk.css')])))=>i.map(i=>d[i]); -import{i,_ as s}from"./index-xFugdZPW.chunk.mjs";import{r as t,F as r}from"./index-BKfQ4diD.chunk.mjs";import{t as m}from"./translation-DoG5ZELJ-gw0g4US-.chunk.mjs";import{d as n,a}from"./runtime-dom.esm-bundler-BrYCUcZF.chunk.mjs";import"./index-6_gsQFyp.chunk.mjs";import"./string_decoder-BO00msnV.chunk.mjs";const d='',o="files-versions_sidebar-tab",p=a(()=>s(()=>import("./FilesVersionsSidebarTab-Cug-mCDO.chunk.mjs"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29]),import.meta.url));t({id:"files_versions",order:90,displayName:m("files_versions","Versions"),iconSvgInline:d,enabled({node:e}){return i()||e.type!==r.File?!1:(l(),!0)},tagName:o});function l(){window.customElements.get(o)||window.customElements.define(o,n(p,{shadowRoot:!1}))} +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=[window.OC.filePath('', '', 'dist/FilesVersionsSidebarTab-DyksVutL.chunk.mjs'),window.OC.filePath('', '', 'dist/index-JpgrUA2Z-BXxDc_if.chunk.mjs'),window.OC.filePath('', '', 'dist/index-DCpg1aui.chunk.mjs'),window.OC.filePath('', '', 'dist/runtime-dom.esm-bundler-DdtEg5E9.chunk.mjs'),window.OC.filePath('', '', 'dist/createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs'),window.OC.filePath('', '', 'dist/string_decoder-vT-u9WbV.chunk.mjs'),window.OC.filePath('', '', 'dist/index-Bndk0DrU.chunk.mjs'),window.OC.filePath('', '', 'dist/NcModal-MC_HktJd-DqeuH-fk.chunk.mjs'),window.OC.filePath('', '', 'dist/AccountOutline-BlW-6JqD.chunk.mjs'),window.OC.filePath('', '', 'dist/AccountOutline-Bx-uhVVO.chunk.css'),window.OC.filePath('', '', 'dist/NcModal-MC_HktJd-YC6kxNbR.chunk.css'),window.OC.filePath('', '', 'dist/Web-aYJacExm.chunk.mjs'),window.OC.filePath('', '', 'dist/Web-BYHcrfvW.chunk.css'),window.OC.filePath('', '', 'dist/mdi-BpC5Cj53.chunk.mjs'),window.OC.filePath('', '', 'dist/mdi-Jq77EThs.chunk.css'),window.OC.filePath('', '', 'dist/index-JpgrUA2Z-CX17yN4T.chunk.css'),window.OC.filePath('', '', 'dist/index-CfoF28kA.chunk.mjs'),window.OC.filePath('', '', 'dist/public-uQ6dl0vH.chunk.mjs'),window.OC.filePath('', '', 'dist/NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U-BNncp1Y1.chunk.mjs'),window.OC.filePath('', '', 'dist/NcDateTime-DXOHXnuu.chunk.css'),window.OC.filePath('', '', 'dist/NcAvatar-DmUGApWA-xbPVEdSn.chunk.mjs'),window.OC.filePath('', '', 'dist/index-DVH_Kr3Q.chunk.mjs'),window.OC.filePath('', '', 'dist/colors-Go3zmZRD-DNxaZwS4.chunk.mjs'),window.OC.filePath('', '', 'dist/PencilOutline-BSRAQiy1.chunk.mjs'),window.OC.filePath('', '', 'dist/PencilOutline-Bq_6hmXG.chunk.css'),window.OC.filePath('', '', 'dist/NcAvatar-DmUGApWA-B-07Svbi.chunk.css'),window.OC.filePath('', '', 'dist/TrayArrowDown-CEVYjTiD.chunk.mjs'),window.OC.filePath('', '', 'dist/TrayArrowDown-CMlC-wJV.chunk.css'),window.OC.filePath('', '', 'dist/TrashCanOutline-DglPBhgI.chunk.mjs'),window.OC.filePath('', '', 'dist/NcInputField-Bwsh2aHY-Cz27INBW.chunk.mjs'),window.OC.filePath('', '', 'dist/NcInputField-Bwsh2aHY-_gyGHRGx.chunk.css'),window.OC.filePath('', '', 'dist/dav-CsGtFpls.chunk.mjs'),window.OC.filePath('', '', 'dist/index-BGtOTwEf.chunk.mjs'),window.OC.filePath('', '', 'dist/files_versions-FilesVersionsSidebarTab-wDg6mXet.chunk.css')])))=>i.map(i=>d[i]); +import{_ as i}from"./index-DCpg1aui.chunk.mjs";import{r as s,F as r}from"./index-CfoF28kA.chunk.mjs";import{t}from"./string_decoder-vT-u9WbV.chunk.mjs";import{i as m}from"./public-uQ6dl0vH.chunk.mjs";import{d as n,a}from"./runtime-dom.esm-bundler-DdtEg5E9.chunk.mjs";import"./index-Bndk0DrU.chunk.mjs";const d='',o="files-versions_sidebar-tab",p=a(()=>i(()=>import("./FilesVersionsSidebarTab-DyksVutL.chunk.mjs"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33]),import.meta.url));s({id:"files_versions",order:90,displayName:t("files_versions","Versions"),iconSvgInline:d,enabled({node:e}){return m()||e.type!==r.File?!1:(l(),!0)},tagName:o});function l(){window.customElements.get(o)||window.customElements.define(o,n(p,{shadowRoot:!1}))} //# sourceMappingURL=files_versions-sidebar-tab.mjs.map diff --git a/dist/files_versions-sidebar-tab.mjs.map b/dist/files_versions-sidebar-tab.mjs.map index 2268133c4e15f..c5f65d0965fa1 100644 --- a/dist/files_versions-sidebar-tab.mjs.map +++ b/dist/files_versions-sidebar-tab.mjs.map @@ -1 +1 @@ -{"version":3,"mappings":";uTAAA,MAAAA,EAAe,+VCWTC,EAAU,6BACVC,EAA0BC,EAAqB,UAAM,OAAO,8CAAqC,qHAAC,EAExGC,EAAmB,CAClB,GAAI,iBACJ,MAAO,GACP,YAAaC,EAAE,iBAAkB,UAAU,EAC3C,cAAeL,EACf,QAAQ,CAAE,KAAAM,GAAQ,CAIjB,OAHIC,KAGAD,EAAK,OAASE,EAAS,KACnB,IAGRC,EAAA,EACO,GACR,EACA,QAAAR,CACD,CAAC,EAKD,SAASQ,GAAW,CACf,OAAO,eAAe,IAAIR,CAAO,GAKrC,OAAO,eAAe,OAAOA,EAASS,EAAoBR,EAAyB,CAClF,WAAY,GACZ,CAAC,CACH","names":["BackupRestore","tagName","FilesVersionsSidebarTab","defineAsyncComponent","registerSidebarTab","t","node","isPublicShare","FileType","setupTab","defineCustomElement"],"ignoreList":[0],"sources":["../node_modules/@mdi/svg/svg/backup-restore.svg?raw","../build/frontend/apps/files_versions/src/sidebar_tab.ts"],"sourcesContent":["export default \"\"","/*!\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport BackupRestore from '@mdi/svg/svg/backup-restore.svg?raw'\nimport { FileType, registerSidebarTab } from '@nextcloud/files'\nimport { t } from '@nextcloud/l10n'\nimport { isPublicShare } from '@nextcloud/sharing/public'\nimport { defineAsyncComponent, defineCustomElement } from 'vue'\n\nconst tagName = 'files-versions_sidebar-tab'\nconst FilesVersionsSidebarTab = defineAsyncComponent(() => import('./views/FilesVersionsSidebarTab.vue'))\n\nregisterSidebarTab({\n\tid: 'files_versions',\n\torder: 90,\n\tdisplayName: t('files_versions', 'Versions'),\n\ticonSvgInline: BackupRestore,\n\tenabled({ node }) {\n\t\tif (isPublicShare()) {\n\t\t\treturn false\n\t\t}\n\t\tif (node.type !== FileType.File) {\n\t\t\treturn false\n\t\t}\n\t\t// setup tab\n\t\tsetupTab()\n\t\treturn true\n\t},\n\ttagName,\n})\n\n/**\n * Setup the custom element for the Files Versions sidebar tab.\n */\nfunction setupTab() {\n\tif (window.customElements.get(tagName)) {\n\t\t// already defined\n\t\treturn\n\t}\n\n\twindow.customElements.define(tagName, defineCustomElement(FilesVersionsSidebarTab, {\n\t\tshadowRoot: false,\n\t}))\n}\n"],"file":"files_versions-sidebar-tab.mjs"} \ No newline at end of file +{"version":3,"mappings":";8SAAA,MAAAA,EAAe,+VCWTC,EAAU,6BACVC,EAA0BC,EAAqB,UAAM,OAAO,8CAAqC,iIAAC,EAExGC,EAAmB,CAClB,GAAI,iBACJ,MAAO,GACP,YAAaC,EAAE,iBAAkB,UAAU,EAC3C,cAAeL,EACf,QAAQ,CAAE,KAAAM,GAAQ,CAIjB,OAHIC,KAGAD,EAAK,OAASE,EAAS,KACnB,IAGRC,EAAA,EACO,GACR,EACA,QAAAR,CACD,CAAC,EAKD,SAASQ,GAAW,CACf,OAAO,eAAe,IAAIR,CAAO,GAKrC,OAAO,eAAe,OAAOA,EAASS,EAAoBR,EAAyB,CAClF,WAAY,GACZ,CAAC,CACH","names":["BackupRestore","tagName","FilesVersionsSidebarTab","defineAsyncComponent","registerSidebarTab","t","node","isPublicShare","FileType","setupTab","defineCustomElement"],"ignoreList":[0],"sources":["../node_modules/@mdi/svg/svg/backup-restore.svg?raw","../build/frontend/apps/files_versions/src/sidebar_tab.ts"],"sourcesContent":["export default \"\"","/*!\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport BackupRestore from '@mdi/svg/svg/backup-restore.svg?raw'\nimport { FileType, registerSidebarTab } from '@nextcloud/files'\nimport { t } from '@nextcloud/l10n'\nimport { isPublicShare } from '@nextcloud/sharing/public'\nimport { defineAsyncComponent, defineCustomElement } from 'vue'\n\nconst tagName = 'files-versions_sidebar-tab'\nconst FilesVersionsSidebarTab = defineAsyncComponent(() => import('./views/FilesVersionsSidebarTab.vue'))\n\nregisterSidebarTab({\n\tid: 'files_versions',\n\torder: 90,\n\tdisplayName: t('files_versions', 'Versions'),\n\ticonSvgInline: BackupRestore,\n\tenabled({ node }) {\n\t\tif (isPublicShare()) {\n\t\t\treturn false\n\t\t}\n\t\tif (node.type !== FileType.File) {\n\t\t\treturn false\n\t\t}\n\t\t// setup tab\n\t\tsetupTab()\n\t\treturn true\n\t},\n\ttagName,\n})\n\n/**\n * Setup the custom element for the Files Versions sidebar tab.\n */\nfunction setupTab() {\n\tif (window.customElements.get(tagName)) {\n\t\t// already defined\n\t\treturn\n\t}\n\n\twindow.customElements.define(tagName, defineCustomElement(FilesVersionsSidebarTab, {\n\t\tshadowRoot: false,\n\t}))\n}\n"],"file":"files_versions-sidebar-tab.mjs"} \ No newline at end of file diff --git a/dist/index-DY1sONrk.chunk.mjs b/dist/index-BGtOTwEf.chunk.mjs similarity index 99% rename from dist/index-DY1sONrk.chunk.mjs rename to dist/index-BGtOTwEf.chunk.mjs index f0a377badc08e..3c8529228e87e 100644 --- a/dist/index-DY1sONrk.chunk.mjs +++ b/dist/index-BGtOTwEf.chunk.mjs @@ -1,4 +1,4 @@ -import{ad as lt}from"./runtime-dom.esm-bundler-BrYCUcZF.chunk.mjs";import{p as ft}from"./index-6_gsQFyp.chunk.mjs";var At={},$e={2:n=>{function t(s,i,h){s instanceof RegExp&&(s=e(s,h)),i instanceof RegExp&&(i=e(i,h));var u=r(s,i,h);return u&&{start:u[0],end:u[1],pre:h.slice(0,u[0]),body:h.slice(u[0]+s.length,u[1]),post:h.slice(u[1]+i.length)}}function e(s,i){var h=i.match(s);return h?h[0]:null}function r(s,i,h){var u,m,l,o,c,a=h.indexOf(s),g=h.indexOf(i,a+1),f=a;if(a>=0&&g>0){for(u=[],l=h.length;f>=0&&!c;)f==a?(u.push(f),a=h.indexOf(s,f+1)):u.length==1?c=[u.pop(),g]:((m=u.pop())=0?a:g;u.length&&(c=[l,o])}return c}n.exports=t,t.range=r},101:function(n,t,e){var r;n=e.nmd(n),(function(s){var i=(n&&n.exports,typeof lt=="object"&<);i.global!==i&&i.window;var h=function(c){this.message=c};(h.prototype=new Error).name="InvalidCharacterError";var u=function(c){throw new h(c)},m="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",l=/[\t\n\f\r ]/g,o={encode:function(c){c=String(c),/[^\0-\xFF]/.test(c)&&u("The string to be encoded contains characters outside of the Latin1 range.");for(var a,g,f,d,y=c.length%3,A="",p=-1,v=c.length-y;++p>18&63)+m.charAt(d>>12&63)+m.charAt(d>>6&63)+m.charAt(63&d);return y==2?(a=c.charCodeAt(p)<<8,g=c.charCodeAt(++p),A+=m.charAt((d=a+g)>>10)+m.charAt(d>>4&63)+m.charAt(d<<2&63)+"="):y==1&&(d=c.charCodeAt(p),A+=m.charAt(d>>2)+m.charAt(d<<4&63)+"=="),A},decode:function(c){var a=(c=String(c).replace(l,"")).length;a%4==0&&(a=(c=c.replace(/==?$/,"")).length),(a%4==1||/[^+a-zA-Z0-9/]/.test(c))&&u("Invalid character: the string to be decoded is not correctly encoded.");for(var g,f,d=0,y="",A=-1;++A>(-2*d&6)));return y},version:"1.0.0"};(r=function(){return o}.call(t,e,t,n))===void 0||(n.exports=r)})()},172:(n,t)=>{t.d=function(e){if(!e)return 0;for(var r=(e=e.toString()).length,s=e.length;s--;){var i=e.charCodeAt(s);56320<=i&&i<=57343&&s--,127{var t={utf8:{stringToBytes:function(e){return t.bin.stringToBytes(unescape(encodeURIComponent(e)))},bytesToString:function(e){return decodeURIComponent(escape(t.bin.bytesToString(e)))}},bin:{stringToBytes:function(e){for(var r=[],s=0;s{var t,e;t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",e={rotl:function(r,s){return r<>>32-s},rotr:function(r,s){return r<<32-s|r>>>s},endian:function(r){if(r.constructor==Number)return 16711935&e.rotl(r,8)|4278255360&e.rotl(r,24);for(var s=0;s0;r--)s.push(Math.floor(256*Math.random()));return s},bytesToWords:function(r){for(var s=[],i=0,h=0;i>>5]|=r[i]<<24-h%32;return s},wordsToBytes:function(r){for(var s=[],i=0;i<32*r.length;i+=8)s.push(r[i>>>5]>>>24-i%32&255);return s},bytesToHex:function(r){for(var s=[],i=0;i>>4).toString(16)),s.push((15&r[i]).toString(16));return s.join("")},hexToBytes:function(r){for(var s=[],i=0;i>>6*(3-u)&63)):s.push("=");return s.join("")},base64ToBytes:function(r){r=r.replace(/[^A-Z0-9+\/]/gi,"");for(var s=[],i=0,h=0;i>>6-2*h);return s}},n.exports=e},635:(n,t,e)=>{const r=e(31),s=e(338),i=e(221);n.exports={XMLParser:s,XMLValidator:r,XMLBuilder:i}},118:n=>{n.exports=function(t){return typeof t=="function"?t:Array.isArray(t)?e=>{for(const r of t)if(typeof r=="string"&&e===r||r instanceof RegExp&&r.test(e))return!0}:()=>!1}},705:(n,t)=>{const e=":A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",r="["+e+"]["+e+"\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*",s=new RegExp("^"+r+"$");t.isExist=function(i){return i!==void 0},t.isEmptyObject=function(i){return Object.keys(i).length===0},t.merge=function(i,h,u){if(h){const m=Object.keys(h),l=m.length;for(let o=0;o{const r=e(705),s={allowBooleanAttributes:!1,unpairedTags:[]};function i(p){return p===" "||p===" "||p===` +import{ag as lt}from"./runtime-dom.esm-bundler-DdtEg5E9.chunk.mjs";import{p as ft}from"./index-Bndk0DrU.chunk.mjs";var At={},$e={2:n=>{function t(s,i,h){s instanceof RegExp&&(s=e(s,h)),i instanceof RegExp&&(i=e(i,h));var u=r(s,i,h);return u&&{start:u[0],end:u[1],pre:h.slice(0,u[0]),body:h.slice(u[0]+s.length,u[1]),post:h.slice(u[1]+i.length)}}function e(s,i){var h=i.match(s);return h?h[0]:null}function r(s,i,h){var u,m,l,o,c,a=h.indexOf(s),g=h.indexOf(i,a+1),f=a;if(a>=0&&g>0){for(u=[],l=h.length;f>=0&&!c;)f==a?(u.push(f),a=h.indexOf(s,f+1)):u.length==1?c=[u.pop(),g]:((m=u.pop())=0?a:g;u.length&&(c=[l,o])}return c}n.exports=t,t.range=r},101:function(n,t,e){var r;n=e.nmd(n),(function(s){var i=(n&&n.exports,typeof lt=="object"&<);i.global!==i&&i.window;var h=function(c){this.message=c};(h.prototype=new Error).name="InvalidCharacterError";var u=function(c){throw new h(c)},m="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",l=/[\t\n\f\r ]/g,o={encode:function(c){c=String(c),/[^\0-\xFF]/.test(c)&&u("The string to be encoded contains characters outside of the Latin1 range.");for(var a,g,f,d,y=c.length%3,A="",p=-1,v=c.length-y;++p>18&63)+m.charAt(d>>12&63)+m.charAt(d>>6&63)+m.charAt(63&d);return y==2?(a=c.charCodeAt(p)<<8,g=c.charCodeAt(++p),A+=m.charAt((d=a+g)>>10)+m.charAt(d>>4&63)+m.charAt(d<<2&63)+"="):y==1&&(d=c.charCodeAt(p),A+=m.charAt(d>>2)+m.charAt(d<<4&63)+"=="),A},decode:function(c){var a=(c=String(c).replace(l,"")).length;a%4==0&&(a=(c=c.replace(/==?$/,"")).length),(a%4==1||/[^+a-zA-Z0-9/]/.test(c))&&u("Invalid character: the string to be decoded is not correctly encoded.");for(var g,f,d=0,y="",A=-1;++A>(-2*d&6)));return y},version:"1.0.0"};(r=function(){return o}.call(t,e,t,n))===void 0||(n.exports=r)})()},172:(n,t)=>{t.d=function(e){if(!e)return 0;for(var r=(e=e.toString()).length,s=e.length;s--;){var i=e.charCodeAt(s);56320<=i&&i<=57343&&s--,127{var t={utf8:{stringToBytes:function(e){return t.bin.stringToBytes(unescape(encodeURIComponent(e)))},bytesToString:function(e){return decodeURIComponent(escape(t.bin.bytesToString(e)))}},bin:{stringToBytes:function(e){for(var r=[],s=0;s{var t,e;t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",e={rotl:function(r,s){return r<>>32-s},rotr:function(r,s){return r<<32-s|r>>>s},endian:function(r){if(r.constructor==Number)return 16711935&e.rotl(r,8)|4278255360&e.rotl(r,24);for(var s=0;s0;r--)s.push(Math.floor(256*Math.random()));return s},bytesToWords:function(r){for(var s=[],i=0,h=0;i>>5]|=r[i]<<24-h%32;return s},wordsToBytes:function(r){for(var s=[],i=0;i<32*r.length;i+=8)s.push(r[i>>>5]>>>24-i%32&255);return s},bytesToHex:function(r){for(var s=[],i=0;i>>4).toString(16)),s.push((15&r[i]).toString(16));return s.join("")},hexToBytes:function(r){for(var s=[],i=0;i>>6*(3-u)&63)):s.push("=");return s.join("")},base64ToBytes:function(r){r=r.replace(/[^A-Z0-9+\/]/gi,"");for(var s=[],i=0,h=0;i>>6-2*h);return s}},n.exports=e},635:(n,t,e)=>{const r=e(31),s=e(338),i=e(221);n.exports={XMLParser:s,XMLValidator:r,XMLBuilder:i}},118:n=>{n.exports=function(t){return typeof t=="function"?t:Array.isArray(t)?e=>{for(const r of t)if(typeof r=="string"&&e===r||r instanceof RegExp&&r.test(e))return!0}:()=>!1}},705:(n,t)=>{const e=":A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",r="["+e+"]["+e+"\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*",s=new RegExp("^"+r+"$");t.isExist=function(i){return i!==void 0},t.isEmptyObject=function(i){return Object.keys(i).length===0},t.merge=function(i,h,u){if(h){const m=Object.keys(h),l=m.length;for(let o=0;o{const r=e(705),s={allowBooleanAttributes:!1,unpairedTags:[]};function i(p){return p===" "||p===" "||p===` `||p==="\r"}function h(p,v){const x=v;for(;v5&&P==="xml")return f("InvalidXml","XML declaration allowed only at the start of the document.",y(p,v));if(p[v]=="?"&&p[v+1]==">"){v++;break}}return v}function u(p,v){if(p.length>v+5&&p[v+1]==="-"&&p[v+2]==="-"){for(v+=3;v"){v+=2;break}}else if(p.length>v+8&&p[v+1]==="D"&&p[v+2]==="O"&&p[v+3]==="C"&&p[v+4]==="T"&&p[v+5]==="Y"&&p[v+6]==="P"&&p[v+7]==="E"){let x=1;for(v+=8;v"&&(x--,x===0))break}else if(p.length>v+9&&p[v+1]==="["&&p[v+2]==="C"&&p[v+3]==="D"&&p[v+4]==="A"&&p[v+5]==="T"&&p[v+6]==="A"&&p[v+7]==="["){for(v+=8;v"){v+=2;break}}return v}t.validate=function(p,v){v=Object.assign({},s,v);const x=[];let P=!1,b=!1;p[0]==="\uFEFF"&&(p=p.substr(1));for(let w=0;w"&&p[w]!==" "&&p[w]!==" "&&p[w]!==` `&&p[w]!=="\r";w++)j+=p[w];if(j=j.trim(),j[j.length-1]==="/"&&(j=j.substring(0,j.length-1),w--),O=j,!r.isName(O)){let $;return $=j.trim().length===0?"Invalid space after '<'.":"Tag '"+j+"' is an invalid name.",f("InvalidTag",$,y(p,w))}const S=o(p,w);if(S===!1)return f("InvalidAttr","Attributes for '"+j+"' have open quote.",y(p,w));let N=S.value;if(w=S.index,N[N.length-1]==="/"){const $=w-N.length;N=N.substring(0,N.length-1);const C=a(N,v);if(C!==!0)return f(C.err.code,C.err.msg,y(p,$+C.err.line));P=!0}else if(T){if(!S.tagClosed)return f("InvalidTag","Closing tag '"+j+"' doesn't have proper closing.",y(p,w));if(N.trim().length>0)return f("InvalidTag","Closing tag '"+j+"' can't have attributes or invalid starting.",y(p,E));if(x.length===0)return f("InvalidTag","Closing tag '"+j+"' has not been opened.",y(p,E));{const $=x.pop();if(j!==$.tagName){let C=y(p,$.tagStartPos);return f("InvalidTag","Expected closing tag '"+$.tagName+"' (opened in line "+C.line+", col "+C.col+") instead of closing tag '"+j+"'.",y(p,E))}x.length==0&&(b=!0)}}else{const $=a(N,v);if($!==!0)return f($.err.code,$.err.msg,y(p,w-N.length+$.err.line));if(b===!0)return f("InvalidXml","Multiple possible root nodes found.",y(p,w));v.unpairedTags.indexOf(j)!==-1||x.push({tagName:j,tagStartPos:E}),P=!0}for(w++;w0)||f("InvalidXml","Invalid '"+JSON.stringify(x.map((w=>w.tagName)),null,4).replace(/\r?\n/g,"")+"' found.",{line:1,col:1}):f("InvalidXml","Start tag expected.",1)};const m='"',l="'";function o(p,v){let x="",P="",b=!1;for(;v"&&P===""){b=!0;break}x+=p[v]}return P===""&&{value:x,index:v,tagClosed:b}}const c=new RegExp(`(\\s*)([^\\s=]+)(\\s*=)?(\\s*(['"])(([\\s\\S])*?)\\5)?`,"g");function a(p,v){const x=r.getAllMatches(p,c),P={};for(let b=0;b{const r=e(87),s=e(118),i={attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,cdataPropName:!1,format:!1,indentBy:" ",suppressEmptyNode:!1,suppressUnpairedNode:!0,suppressBooleanAttributes:!0,tagValueProcessor:function(o,c){return c},attributeValueProcessor:function(o,c){return c},preserveOrder:!1,commentPropName:!1,unpairedTags:[],entities:[{regex:new RegExp("&","g"),val:"&"},{regex:new RegExp(">","g"),val:">"},{regex:new RegExp("<","g"),val:"<"},{regex:new RegExp("'","g"),val:"'"},{regex:new RegExp('"',"g"),val:"""}],processEntities:!0,stopNodes:[],oneListGroup:!1};function h(o){this.options=Object.assign({},i,o),this.options.ignoreAttributes===!0||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.ignoreAttributesFn=s(this.options.ignoreAttributes),this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=l),this.processTextOrObjNode=u,this.options.format?(this.indentate=m,this.tagEndChar=`> `,this.newLine=` @@ -8,4 +8,4 @@ import{ad as lt}from"./runtime-dom.esm-bundler-BrYCUcZF.chunk.mjs";import{p as f caused by: ${X.fullStack(e)}`:t.stack??""}static info(t){Pt(t);const e={},r=X.cause(t);return r&&Object.assign(e,X.info(r)),t._info&&Object.assign(e,t._info),e}toString(){let t=this.name||this.constructor.name||this.constructor.prototype.name;return this.message&&(t=`${t}: ${this.message}`),t}}var Re=I(47),gt=I.n(Re);const qt="__PATH_SEPARATOR_POSIX__",Zt="__PATH_SEPARATOR_WINDOWS__";function R(n){try{const t=n.replace(/\//g,qt).replace(/\\\\/g,Zt);return encodeURIComponent(t).split(Zt).join("\\\\").split(qt).join("/")}catch(t){throw new X(t,"Failed encoding path")}}function Xt(n){return n.startsWith("/")?n:"/"+n}function ct(n){let t=n;return t[0]!=="/"&&(t="/"+t),/^.+\/$/.test(t)&&(t=t.substr(0,t.length-1)),t}function Le(n){let t=new(ke())(n).pathname;return t.length<=0&&(t="/"),ct(t)}function L(){for(var n=arguments.length,t=new Array(n),e=0;e1){var i=r.shift();r[0]=i+r[0]}r[0].match(/^file:\/\/\//)?r[0]=r[0].replace(/^([^/:]+):\/*/,"$1:///"):r[0]=r[0].replace(/^([^/:]+):\/*/,"$1://");for(var h=0;h0&&(u=u.replace(/^[\/]+/,"")),u=h0?"?":"")+l.join("&")})(typeof arguments[0]=="object"?arguments[0]:[].slice.call(arguments))})(t.reduce(((r,s,i)=>((i===0||s!=="/"||s==="/"&&r[r.length-1]!=="/")&&r.push(s),r)),[]))}var _e=I(542),st=I.n(_e);const Fe="abcdef0123456789";function Yt(n,t){const e=n.url.replace("//",""),r=e.indexOf("/")==-1?"/":e.slice(e.indexOf("/")),s=n.method?n.method.toUpperCase():"GET",i=!!/(^|,)\s*auth\s*($|,)/.test(t.qop)&&"auth",h=`00000000${t.nc}`.slice(-8),u=(function(a,g,f,d,y,A,p){const v=p||st()(`${g}:${f}:${d}`);return a&&a.toLowerCase()==="md5-sess"?st()(`${v}:${y}:${A}`):v})(t.algorithm,t.username,t.realm,t.password,t.nonce,t.cnonce,t.ha1),m=st()(`${s}:${r}`),l=i?st()(`${u}:${t.nonce}:${h}:${t.cnonce}:${i}:${m}`):st()(`${u}:${t.nonce}:${m}`),o={username:t.username,realm:t.realm,nonce:t.nonce,uri:r,qop:i,response:l,nc:h,cnonce:t.cnonce,algorithm:t.algorithm,opaque:t.opaque},c=[];for(const a in o)o[a]&&(a==="qop"||a==="nc"||a==="algorithm"?c.push(`${a}=${o[a]}`):c.push(`${a}="${o[a]}"`));return`Digest ${c.join(", ")}`}function le(n){return(n.headers&&n.headers.get("www-authenticate")||"").split(/\s/)[0].toLowerCase()==="digest"}var Ue=I(101),pe=I.n(Ue);function Kt(n){return pe().decode(n)}function Ht(n,t){var e;return`Basic ${e=`${n}:${t}`,pe().encode(e)}`}const dt=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope?self:typeof window<"u"?window:globalThis,Me=dt.fetch.bind(dt),De=dt.Request,Be=dt.Response;let q=(function(n){return n.Auto="auto",n.Digest="digest",n.None="none",n.Password="password",n.Token="token",n})({}),tt=(function(n){return n.DataTypeNoLength="data-type-no-length",n.InvalidAuthType="invalid-auth-type",n.InvalidOutputFormat="invalid-output-format",n.LinkUnsupportedAuthType="link-unsupported-auth",n.InvalidUpdateRange="invalid-update-range",n.NotSupported="not-supported",n})({});function fe(n,t,e,r,s){switch(n.authType){case q.Auto:t&&e&&(n.headers.Authorization=Ht(t,e));break;case q.Digest:n.digest=(function(h,u,m){return{username:h,password:u,ha1:m,nc:0,algorithm:"md5",hasDigestAuth:!1}})(t,e,s);break;case q.None:break;case q.Password:n.headers.Authorization=Ht(t,e);break;case q.Token:n.headers.Authorization=`${(i=r).token_type} ${i.access_token}`;break;default:throw new X({info:{code:tt.InvalidAuthType}},`Invalid auth type: ${n.authType}`)}var i}I(345),I(800);const Jt="@@HOTPATCHER",ze=()=>{};function Nt(n){return{original:n,methods:[n],final:!1}}class Ve{constructor(){this._configuration={registry:{},getEmptyAction:"null"},this.__type__=Jt}get configuration(){return this._configuration}get getEmptyAction(){return this.configuration.getEmptyAction}set getEmptyAction(t){this.configuration.getEmptyAction=t}control(t){let e=arguments.length>1&&arguments[1]!==void 0&&arguments[1];if(!t||t.__type__!==Jt)throw new Error("Failed taking control of target HotPatcher instance: Invalid type or object");return Object.keys(t.configuration.registry).forEach((r=>{this.configuration.registry.hasOwnProperty(r)?e&&(this.configuration.registry[r]=Object.assign({},t.configuration.registry[r])):this.configuration.registry[r]=Object.assign({},t.configuration.registry[r])})),t._configuration=this.configuration,this}execute(t){const e=this.get(t)||ze;for(var r=arguments.length,s=new Array(r>1?r-1:0),i=1;i0;)l=[s.shift().apply(o,l)];return l[0]}})(...e.methods)}isPatched(t){return!!this.configuration.registry[t]}patch(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const{chain:s=!1}=r;if(this.configuration.registry[t]&&this.configuration.registry[t].final)throw new Error(`Failed patching '${t}': Method marked as being final`);if(typeof e!="function")throw new Error(`Failed patching '${t}': Provided method is not a function`);if(s)this.configuration.registry[t]?this.configuration.registry[t].methods.push(e):this.configuration.registry[t]=Nt(e);else if(this.isPatched(t)){const{original:i}=this.configuration.registry[t];this.configuration.registry[t]=Object.assign(Nt(e),{original:i})}else this.configuration.registry[t]=Nt(e);return this}patchInline(t,e){this.isPatched(t)||this.patch(t,e);for(var r=arguments.length,s=new Array(r>2?r-2:0),i=2;i1?e-1:0),s=1;s{this.patch(t,i,{chain:!0})})),this}restore(t){if(!this.isPatched(t))throw new Error(`Failed restoring method: No method present for key: ${t}`);if(typeof this.configuration.registry[t].original!="function")throw new Error(`Failed restoring method: Original method not found or of invalid type for key: ${t}`);return this.configuration.registry[t].methods=[this.configuration.registry[t].original],this}setFinal(t){if(!this.configuration.registry.hasOwnProperty(t))throw new Error(`Failed marking '${t}' as final: No method found for key`);return this.configuration.registry[t].final=!0,this}}let Ot=null;function ge(){return Ot||(Ot=new Ve),Ot}function mt(n){return(function(t){if(typeof t!="object"||t===null||Object.prototype.toString.call(t)!="[object Object]")return!1;if(Object.getPrototypeOf(t)===null)return!0;let e=t;for(;Object.getPrototypeOf(e)!==null;)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(t)===e})(n)?Object.assign({},n):Object.setPrototypeOf(Object.assign({},n),Object.getPrototypeOf(n))}function Qt(){for(var n=arguments.length,t=new Array(n),e=0;e0;){const i=s.shift();r=r?de(r,i):mt(i)}return r}function de(n,t){const e=mt(n);return Object.keys(t).forEach((r=>{e.hasOwnProperty(r)?Array.isArray(t[r])?e[r]=Array.isArray(e[r])?[...e[r],...t[r]]:[...t[r]]:typeof t[r]=="object"&&t[r]?e[r]=typeof e[r]=="object"&&e[r]?de(e[r],t[r]):mt(t[r]):e[r]=t[r]:e[r]=t[r]})),e}function We(n){const t={};for(const e of n.keys())t[e]=n.get(e);return t}function It(){for(var n=arguments.length,t=new Array(n),e=0;e(Object.keys(i).forEach((h=>{const u=h.toLowerCase();r.hasOwnProperty(u)?s[r[u]]=i[h]:(r[u]=h,s[h]=i[h])})),s)),{})}I(805);const Ge=typeof ArrayBuffer=="function",{toString:qe}=Object.prototype;function me(n){return Ge&&(n instanceof ArrayBuffer||qe.call(n)==="[object ArrayBuffer]")}function ye(n){return n!=null&&n.constructor!=null&&typeof n.constructor.isBuffer=="function"&&n.constructor.isBuffer(n)}function _t(n){return function(){for(var t=[],e=0;et.patchInline("fetch",Me,e.url,(function(r){let s={};const i={method:r.method};if(r.headers&&(s=It(s,r.headers)),r.data!==void 0){const[h,u]=(function(m){if(typeof m=="string")return[m,{}];if(ye(m))return[m,{}];if(me(m))return[m,{}];if(m&&typeof m=="object")return[JSON.stringify(m),{"content-type":"application/json"}];throw new Error("Unable to convert request body: Unexpected body type: "+typeof m)})(r.data);i.body=h,s=It(s,u)}return r.signal&&(i.signal=r.signal),r.withCredentials&&(i.credentials="include"),i.headers=s,i})(e))),n)}var Xe=I(285);const vt=n=>{if(typeof n!="string")throw new TypeError("invalid pattern");if(n.length>65536)throw new TypeError("pattern is too long")},Ye={"[:alnum:]":["\\p{L}\\p{Nl}\\p{Nd}",!0],"[:alpha:]":["\\p{L}\\p{Nl}",!0],"[:ascii:]":["\\x00-\\x7f",!1],"[:blank:]":["\\p{Zs}\\t",!0],"[:cntrl:]":["\\p{Cc}",!0],"[:digit:]":["\\p{Nd}",!0],"[:graph:]":["\\p{Z}\\p{C}",!0,!0],"[:lower:]":["\\p{Ll}",!0],"[:print:]":["\\p{C}",!0],"[:punct:]":["\\p{P}",!0],"[:space:]":["\\p{Z}\\t\\r\\n\\v\\f",!0],"[:upper:]":["\\p{Lu}",!0],"[:word:]":["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}",!0],"[:xdigit:]":["A-Fa-f0-9",!1]},it=n=>n.replace(/[[\]\\-]/g,"\\$&"),te=n=>n.join(""),Ke=(n,t)=>{const e=t;if(n.charAt(e)!=="[")throw new Error("not in a brace expression");const r=[],s=[];let i=e+1,h=!1,u=!1,m=!1,l=!1,o=e,c="";t:for(;ic?r.push(it(c)+"-"+it(d)):d===c&&r.push(it(d)),c="",i++):n.startsWith("-]",i+1)?(r.push(it(d+"-")),i+=2):n.startsWith("-",i+1)?(c=d,i+=2):(r.push(it(d)),i++)}else m=!0,i++}else l=!0,i++}if(o1&&arguments[1]!==void 0?arguments[1]:{};return t?n.replace(/\[([^\/\\])\]/g,"$1"):n.replace(/((?!\\).|^)\[([^\/\\])\]/g,"$1$2").replace(/\\([^\/])/g,"$1")},He=new Set(["!","?","+","*","@"]),ee=n=>He.has(n),Et="(?!\\.)",Je=new Set(["[","."]),Qe=new Set(["..","."]),tn=new Set("().*{}+?[]^$\\!"),Ft="[^/]",ne=Ft+"*?",re=Ft+"+?";class G{type;#n;#r;#s=!1;#t=[];#e;#i;#u;#a=!1;#o;#c;#l=!1;constructor(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};this.type=t,t&&(this.#r=!0),this.#e=e,this.#n=this.#e?this.#e.#n:this,this.#o=this.#n===this?r:this.#n.#o,this.#u=this.#n===this?[]:this.#n.#u,t!=="!"||this.#n.#a||this.#u.push(this),this.#i=this.#e?this.#e.#t.length:0}get hasMagic(){if(this.#r!==void 0)return this.#r;for(const t of this.#t)if(typeof t!="string"&&(t.type||t.hasMagic))return this.#r=!0;return this.#r}toString(){return this.#c!==void 0?this.#c:this.type?this.#c=this.type+"("+this.#t.map((t=>String(t))).join("|")+")":this.#c=this.#t.map((t=>String(t))).join("")}#f(){if(this!==this.#n)throw new Error("should only call on root");if(this.#a)return this;let t;for(this.toString(),this.#a=!0;t=this.#u.pop();){if(t.type!=="!")continue;let e=t,r=e.#e;for(;r;){for(let s=e.#i+1;!r.type&&stypeof e=="string"?e:e.toJSON())):[this.type,...this.#t.map((e=>e.toJSON()))];return this.isStart()&&!this.type&&t.unshift([]),this.isEnd()&&(this===this.#n||this.#n.#a&&this.#e?.type==="!")&&t.push({}),t}isStart(){if(this.#n===this)return!0;if(!this.#e?.isStart())return!1;if(this.#i===0)return!0;const t=this.#e;for(let e=0;e1&&arguments[1]!==void 0?arguments[1]:{};const r=new G(null,void 0,e);return G.#h(t,r,0,e),r}toMMPattern(){if(this!==this.#n)return this.#n.toMMPattern();const t=this.toString(),[e,r,s,i]=this.toRegExpSource();if(!(s||this.#r||this.#o.nocase&&!this.#o.nocaseMagicOnly&&t.toUpperCase()!==t.toLowerCase()))return r;const h=(this.#o.nocase?"i":"")+(i?"u":"");return Object.assign(new RegExp(`^${e}$`,h),{_src:e,_glob:t})}get options(){return this.#o}toRegExpSource(t){const e=t??!!this.#o.dot;if(this.#n===this&&this.#f(),!this.type){const m=this.isStart()&&this.isEnd(),l=this.#t.map((a=>{const[g,f,d,y]=typeof a=="string"?G.#g(a,this.#r,m):a.toRegExpSource(t);return this.#r=this.#r||d,this.#s=this.#s||y,g})).join("");let o="";if(this.isStart()&&typeof this.#t[0]=="string"&&(this.#t.length!==1||!Qe.has(this.#t[0]))){const a=Je,g=e&&a.has(l.charAt(0))||l.startsWith("\\.")&&a.has(l.charAt(2))||l.startsWith("\\.\\.")&&a.has(l.charAt(4)),f=!e&&!t&&a.has(l.charAt(0));o=g?"(?!(?:^|/)\\.\\.?(?:$|/))":f?Et:""}let c="";return this.isEnd()&&this.#n.#a&&this.#e?.type==="!"&&(c="(?:$|\\/)"),[o+l+c,at(l),this.#r=!!this.#r,this.#s]}const r=this.type==="*"||this.type==="+",s=this.type==="!"?"(?:(?!(?:":"(?:";let i=this.#p(e);if(this.isStart()&&this.isEnd()&&!i&&this.type!=="!"){const m=this.toString();return this.#t=[m],this.type=null,this.#r=void 0,[m,at(this.toString()),!1,!1]}let h=!r||t||e?"":this.#p(!0);h===i&&(h=""),h&&(i=`(?:${i})(?:${h})*?`);let u="";return u=this.type==="!"&&this.#l?(this.isStart()&&!e?Et:"")+re:s+i+(this.type==="!"?"))"+(!this.isStart()||e||t?"":Et)+ne+")":this.type==="@"?")":this.type==="?"?")?":this.type==="+"&&h?")":this.type==="*"&&h?")?":`)${this.type}`),[u,at(i),this.#r=!!this.#r,this.#s]}#p(t){return this.#t.map((e=>{if(typeof e=="string")throw new Error("string type in extglob ast??");const[r,s,i,h]=e.toRegExpSource(t);return this.#s=this.#s||h,r})).filter((e=>!(this.isStart()&&this.isEnd()&&!e))).join("|")}static#g(t,e){let r=arguments.length>2&&arguments[2]!==void 0&&arguments[2],s=!1,i="",h=!1;for(let u=0;u2&&arguments[2]!==void 0?arguments[2]:{};return vt(t),!(!e.nocomment&&t.charAt(0)==="#")&&new bt(t,e).match(n)},en=/^\*+([^+@!?\*\[\(]*)$/,nn=n=>t=>!t.startsWith(".")&&t.endsWith(n),rn=n=>t=>t.endsWith(n),on=n=>(n=n.toLowerCase(),t=>!t.startsWith(".")&&t.toLowerCase().endsWith(n)),sn=n=>(n=n.toLowerCase(),t=>t.toLowerCase().endsWith(n)),an=/^\*+\.\*+$/,un=n=>!n.startsWith(".")&&n.includes("."),cn=n=>n!=="."&&n!==".."&&n.includes("."),hn=/^\.\*+$/,ln=n=>n!=="."&&n!==".."&&n.startsWith("."),pn=/^\*+$/,fn=n=>n.length!==0&&!n.startsWith("."),gn=n=>n.length!==0&&n!=="."&&n!=="..",dn=/^\?+([^+@!?\*\[\(]*)?$/,mn=n=>{let[t,e=""]=n;const r=be([t]);return e?(e=e.toLowerCase(),s=>r(s)&&s.toLowerCase().endsWith(e)):r},yn=n=>{let[t,e=""]=n;const r=we([t]);return e?(e=e.toLowerCase(),s=>r(s)&&s.toLowerCase().endsWith(e)):r},vn=n=>{let[t,e=""]=n;const r=we([t]);return e?s=>r(s)&&s.endsWith(e):r},bn=n=>{let[t,e=""]=n;const r=be([t]);return e?s=>r(s)&&s.endsWith(e):r},be=n=>{let[t]=n;const e=t.length;return r=>r.length===e&&!r.startsWith(".")},we=n=>{let[t]=n;const e=t.length;return r=>r.length===e&&r!=="."&&r!==".."},xe=typeof ft=="object"&&ft?typeof At=="object"&&At&&At.__MINIMATCH_TESTING_PLATFORM__||ft.platform:"posix";W.sep=xe==="win32"?"\\":"/";const H=Symbol("globstar **");W.GLOBSTAR=H,W.filter=function(n){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return e=>W(e,n,t)};const K=function(n){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return Object.assign({},n,t)};W.defaults=n=>{if(!n||typeof n!="object"||!Object.keys(n).length)return W;const t=W;return Object.assign((function(e,r){return t(e,r,K(n,arguments.length>2&&arguments[2]!==void 0?arguments[2]:{}))}),{Minimatch:class extends t.Minimatch{constructor(e){super(e,K(n,arguments.length>1&&arguments[1]!==void 0?arguments[1]:{}))}static defaults(e){return t.defaults(K(n,e)).Minimatch}},AST:class extends t.AST{constructor(e,r){super(e,r,K(n,arguments.length>2&&arguments[2]!==void 0?arguments[2]:{}))}static fromGlob(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return t.AST.fromGlob(e,K(n,r))}},unescape:function(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return t.unescape(e,K(n,r))},escape:function(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return t.escape(e,K(n,r))},filter:function(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return t.filter(e,K(n,r))},defaults:e=>t.defaults(K(n,e)),makeRe:function(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return t.makeRe(e,K(n,r))},braceExpand:function(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return t.braceExpand(e,K(n,r))},match:function(e,r){let s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return t.match(e,r,K(n,s))},sep:t.sep,GLOBSTAR:H})};const Ae=function(n){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return vt(n),t.nobrace||!/\{(?:(?!\{).)*\}/.test(n)?[n]:Xe(n)};W.braceExpand=Ae,W.makeRe=function(n){return new bt(n,arguments.length>1&&arguments[1]!==void 0?arguments[1]:{}).makeRe()},W.match=function(n,t){const e=new bt(t,arguments.length>2&&arguments[2]!==void 0?arguments[2]:{});return n=n.filter((r=>e.match(r))),e.options.nonull&&!n.length&&n.push(t),n};const oe=/[?*]|[+@!]\(.*?\)|\[|\]/;class bt{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;regexp;constructor(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};vt(t),e=e||{},this.options=e,this.pattern=t,this.platform=e.platform||xe,this.isWindows=this.platform==="win32",this.windowsPathsNoEscape=!!e.windowsPathsNoEscape||e.allowWindowsEscape===!1,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\/g,"/")),this.preserveMultipleSlashes=!!e.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!e.nonegate,this.comment=!1,this.empty=!1,this.partial=!!e.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=e.windowsNoMagicRoot!==void 0?e.windowsNoMagicRoot:!(!this.isWindows||!this.nocase),this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(const t of this.set)for(const e of t)if(typeof e!="string")return!0;return!1}debug(){}make(){const t=this.pattern,e=this.options;if(!e.nocomment&&t.charAt(0)==="#")return void(this.comment=!0);if(!t)return void(this.empty=!0);this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],e.debug&&(this.debug=function(){return console.error(...arguments)}),this.debug(this.pattern,this.globSet);const r=this.globSet.map((i=>this.slashSplit(i)));this.globParts=this.preprocess(r),this.debug(this.pattern,this.globParts);let s=this.globParts.map(((i,h,u)=>{if(this.isWindows&&this.windowsNoMagicRoot){const m=!(i[0]!==""||i[1]!==""||i[2]!=="?"&&oe.test(i[2])||oe.test(i[3])),l=/^[a-z]:/i.test(i[0]);if(m)return[...i.slice(0,4),...i.slice(4).map((o=>this.parse(o)))];if(l)return[i[0],...i.slice(1).map((o=>this.parse(o)))]}return i.map((m=>this.parse(m)))}));if(this.debug(this.pattern,s),this.set=s.filter((i=>i.indexOf(!1)===-1)),this.isWindows)for(let i=0;i=2?(t=this.firstPhasePreProcess(t),t=this.secondPhasePreProcess(t)):t=e>=1?this.levelOneOptimize(t):this.adjascentGlobstarOptimize(t),t}adjascentGlobstarOptimize(t){return t.map((e=>{let r=-1;for(;(r=e.indexOf("**",r+1))!==-1;){let s=r;for(;e[s+1]==="**";)s++;s!==r&&e.splice(r,s-r)}return e}))}levelOneOptimize(t){return t.map((e=>(e=e.reduce(((r,s)=>{const i=r[r.length-1];return s==="**"&&i==="**"?r:s===".."&&i&&i!==".."&&i!=="."&&i!=="**"?(r.pop(),r):(r.push(s),r)}),[])).length===0?[""]:e))}levelTwoFileOptimize(t){Array.isArray(t)||(t=this.slashSplit(t));let e=!1;do{if(e=!1,!this.preserveMultipleSlashes){for(let s=1;ss&&r.splice(s+1,h-s);let u=r[s+1];const m=r[s+2],l=r[s+3];if(u!==".."||!m||m==="."||m===".."||!l||l==="."||l==="..")continue;e=!0,r.splice(s,1);const o=r.slice(0);o[s]="**",t.push(o),s--}if(!this.preserveMultipleSlashes){for(let h=1;he.length))}partsMatch(t,e){let r=arguments.length>2&&arguments[2]!==void 0&&arguments[2],s=0,i=0,h=[],u="";for(;s2&&arguments[2]!==void 0&&arguments[2];const s=this.options;if(this.isWindows){const d=typeof t[0]=="string"&&/^[a-z]:$/i.test(t[0]),y=!d&&t[0]===""&&t[1]===""&&t[2]==="?"&&/^[a-z]:$/i.test(t[3]),A=typeof e[0]=="string"&&/^[a-z]:$/i.test(e[0]),p=y?3:d?0:void 0,v=!A&&e[0]===""&&e[1]===""&&e[2]==="?"&&typeof e[3]=="string"&&/^[a-z]:$/i.test(e[3])?3:A?0:void 0;if(typeof p=="number"&&typeof v=="number"){const[x,P]=[t[p],e[v]];x.toLowerCase()===P.toLowerCase()&&(e[v]=x,v>p?e=e.slice(v):p>v&&(t=t.slice(p)))}}const{optimizationLevel:i=1}=this.options;i>=2&&(t=this.levelTwoFileOptimize(t)),this.debug("matchOne",this,{file:t,pattern:e}),this.debug("matchOne",t.length,e.length);for(var h=0,u=0,m=t.length,l=e.length;h>> no match, partial?`,t,a,e,g),a!==m))}let d;if(typeof o=="string"?(d=c===o,this.debug("string match",o,c,d)):(d=o.test(c),this.debug("pattern match",o,c,d)),!d)return!1}if(h===m&&u===l)return!0;if(h===m)return r;if(u===l)return h===m-1&&t[h]==="";throw new Error("wtf?")}braceExpand(){return Ae(this.pattern,this.options)}parse(t){vt(t);const e=this.options;if(t==="**")return H;if(t==="")return"";let r,s=null;(r=t.match(pn))?s=e.dot?gn:fn:(r=t.match(en))?s=(e.nocase?e.dot?sn:on:e.dot?rn:nn)(r[1]):(r=t.match(dn))?s=(e.nocase?e.dot?yn:mn:e.dot?vn:bn)(r):(r=t.match(an))?s=e.dot?cn:un:(r=t.match(hn))&&(s=ln);const i=G.fromGlob(t,this.options).toMMPattern();return s&&typeof i=="object"&&Reflect.defineProperty(i,"test",{value:s}),i}makeRe(){if(this.regexp||this.regexp===!1)return this.regexp;const t=this.set;if(!t.length)return this.regexp=!1,this.regexp;const e=this.options,r=e.noglobstar?"[^/]*?":e.dot?"(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?":"(?:(?!(?:\\/|^)\\.).)*?",s=new Set(e.nocase?["i"]:[]);let i=t.map((m=>{const l=m.map((o=>{if(o instanceof RegExp)for(const c of o.flags.split(""))s.add(c);return typeof o=="string"?o.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"):o===H?H:o._src}));return l.forEach(((o,c)=>{const a=l[c+1],g=l[c-1];o===H&&g!==H&&(g===void 0?a!==void 0&&a!==H?l[c+1]="(?:\\/|"+r+"\\/)?"+a:l[c]=r:a===void 0?l[c-1]=g+"(?:\\/|"+r+")?":a!==H&&(l[c-1]=g+"(?:\\/|\\/"+r+"\\/)"+a,l[c+1]=H))})),l.filter((o=>o!==H)).join("/")})).join("|");const[h,u]=t.length>1?["(?:",")"]:["",""];i="^"+h+i+u+"$",this.negate&&(i="^(?!"+i+").+$");try{this.regexp=new RegExp(i,[...s].join(""))}catch{this.regexp=!1}return this.regexp}slashSplit(t){return this.preserveMultipleSlashes?t.split("/"):this.isWindows&&/^\/\/[^\/]+/.test(t)?["",...t.split(/\/+/)]:t.split(/\/+/)}match(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.partial;if(this.debug("match",t,this.pattern),this.comment)return!1;if(this.empty)return t==="";if(t==="/"&&e)return!0;const r=this.options;this.isWindows&&(t=t.split("\\").join("/"));const s=this.slashSplit(t);this.debug(this.pattern,"split",s);const i=this.set;this.debug(this.pattern,"set",i);let h=s[s.length-1];if(!h)for(let u=s.length-2;!h&&u>=0;u--)h=s[u];for(let u=0;u1&&arguments[1]!==void 0?arguments[1]:""}Invalid response: ${n.status} ${n.statusText}`);return t.status=n.status,t.response=n,t}function B(n,t){const{status:e}=t;if(e===401&&n.digest)return t;if(e>=400)throw Ut(t);return t}function nt(n,t){return arguments.length>2&&arguments[2]!==void 0&&arguments[2]?{data:t,headers:n.headers?We(n.headers):{},status:n.status,statusText:n.statusText}:t}W.AST=G,W.Minimatch=bt,W.escape=function(n){let{windowsPathsNoEscape:t=!1}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return t?n.replace(/[?*()[\]]/g,"[$&]"):n.replace(/[?*()[\]\\]/g,"\\$&")},W.unescape=at;const wn=(se=function(n,t,e){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};const s=D({url:L(n.remoteURL,R(t)),method:"COPY",headers:{Destination:L(n.remoteURL,R(e)),Overwrite:r.overwrite===!1?"F":"T",Depth:r.shallow?"0":"infinity"}},n,r);return h=function(u){B(n,u)},(i=M(s,n))&&i.then||(i=Promise.resolve(i)),h?i.then(h):i;var i,h},function(){for(var n=[],t=0;t2&&arguments[2]!==void 0?arguments[2]:rt.Original;const r=Q().get(n,t);return e==="array"&&Array.isArray(r)===!1?[r]:e==="object"&&Array.isArray(r)?r[0]:r}function ht(n){return new Promise((t=>{t((function(e){const{multistatus:r}=e;if(r==="")return{multistatus:{response:[]}};if(!r)throw new Error("Invalid response: No root multistatus found");const s={multistatus:Array.isArray(r)?r[0]:r};return Q().set(s,"multistatus.response",pt(s,"multistatus.response",rt.Array)),Q().set(s,"multistatus.response",Q().get(s,"multistatus.response").map((i=>(function(h){const u=Object.assign({},h);return u.status?Q().set(u,"status",pt(u,"status",rt.Object)):(Q().set(u,"propstat",pt(u,"propstat",rt.Object)),Q().set(u,"propstat.prop",pt(u,"propstat.prop",rt.Object))),u})(i)))),s})(new Mt.XMLParser({allowBooleanAttributes:!0,attributeNamePrefix:"",textNodeName:"text",ignoreAttributes:!1,removeNSPrefix:!0,numberParseOptions:{hex:!0,leadingZeros:!1},attributeValueProcessor:(e,r,s)=>r==="true"||r==="false"?r==="true":r,tagValueProcessor(e,r,s){if(!s.endsWith("propstat.prop.displayname"))return r}}).parse(n)))}))}function xt(n,t){let e=arguments.length>2&&arguments[2]!==void 0&&arguments[2];const{getlastmodified:r=null,getcontentlength:s="0",resourcetype:i=null,getcontenttype:h=null,getetag:u=null}=n,m=i&&typeof i=="object"&&i.collection!==void 0?"directory":"file",l={filename:t,basename:gt().basename(t),lastmod:r,size:parseInt(s,10),type:m,etag:typeof u=="string"?u.replace(/"/g,""):null};return m==="file"&&(l.mime=h&&typeof h=="string"?h.split(";")[0]:""),e&&(n.displayname!==void 0&&(n.displayname=String(n.displayname)),l.props=n),l}function Pe(n,t){let e=arguments.length>2&&arguments[2]!==void 0&&arguments[2],r=null;try{n.multistatus.response[0].propstat&&(r=n.multistatus.response[0])}catch{}if(!r)throw new Error("Failed getting item stat: bad response");const{propstat:{prop:s,status:i}}=r,[h,u,m]=i.split(" ",3),l=parseInt(u,10);if(l>=400){const o=new Error(`Invalid response: ${l} ${m}`);throw o.status=l,o}return xt(s,ct(t),e)}function Ne(n){switch(String(n)){case"-3":return"unlimited";case"-2":case"-1":return"unknown";default:return parseInt(String(n),10)}}function Tt(n,t,e){return e?t?t(n):n:(n&&n.then||(n=Promise.resolve(n)),t?n.then(t):n)}const Dt=(function(n){return function(){for(var t=[],e=0;e2&&arguments[2]!==void 0?arguments[2]:{};const{details:r=!1}=e,s=D({url:L(n.remoteURL,R(t)),method:"PROPFIND",headers:{Accept:"text/plain,application/xml",Depth:"0"}},n,e);return Tt(M(s,n),(function(i){return B(n,i),Tt(i.text(),(function(h){return Tt(ht(h),(function(u){const m=Pe(u,t,r);return nt(i,m,r)}))}))}))}));function Oe(n,t,e){return e?t?t(n):n:(n&&n.then||(n=Promise.resolve(n)),t?n.then(t):n)}const An=Ee((function(n,t){let e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const r=(function(i){if(!i||i==="/")return[];let h=i;const u=[];do u.push(h),h=gt().dirname(h);while(h&&h!=="/");return u})(ct(t));r.sort(((i,h)=>i.length>h.length?1:h.length>i.length?-1:0));let s=!1;return(function(i,h,u){if(typeof i[ae]=="function"){let d=function(y){try{for(;!(m=c.next()).done;)if((y=h(m.value))&&y.then){if(!ue(y))return void y.then(d,o||(o=Z.bind(null,l=new ot,2)));y=y.v}l?Z(l,1,y):l=y}catch(A){Z(l||(l=new ot),2,A)}};var m,l,o,c=i[ae]();if(d(),c.return){var a=function(y){try{m.done||c.return()}catch{}return y};if(l&&l.then)return l.then(a,(function(y){throw a(y)}));a()}return l}if(!("length"in i))throw new TypeError("Object is not iterable");for(var g=[],f=0;f2&&arguments[2]!==void 0?arguments[2]:{};if(e.recursive===!0)return An(n,t,e);const r=D({url:L(n.remoteURL,(s=R(t),s.endsWith("/")?s:s+"/")),method:"MKCOL"},n,e);var s;return Oe(M(r,n),(function(i){B(n,i)}))}));var Nn=I(388),ce=I.n(Nn);const On=(function(n){return function(){for(var t=[],e=0;e2&&arguments[2]!==void 0?arguments[2]:{};const r={};if(typeof e.range=="object"&&typeof e.range.start=="number"){let u=`bytes=${e.range.start}-`;typeof e.range.end=="number"&&(u=`${u}${e.range.end}`),r.Range=u}const s=D({url:L(n.remoteURL,R(t)),method:"GET",headers:r},n,e);return h=function(u){if(B(n,u),r.Range&&u.status!==206){const m=new Error(`Invalid response code for partial request: ${u.status}`);throw m.status=u.status,m}return e.callback&&setTimeout((()=>{e.callback(u)}),0),u.body},(i=M(s,n))&&i.then||(i=Promise.resolve(i)),h?i.then(h):i;var i,h})),En=()=>{},Tn=(function(n){return function(){for(var t=[],e=0;e2&&arguments[2]!==void 0?arguments[2]:{};const r=D({url:L(n.remoteURL,R(t)),method:"DELETE"},n,e);return i=function(h){B(n,h)},(s=M(r,n))&&s.then||(s=Promise.resolve(s)),i?s.then(i):s;var s,i})),Sn=(function(n){return function(){for(var t=[],e=0;e2&&arguments[2]!==void 0?arguments[2]:{};return(function(r,s){try{var i=(h=Dt(n,t,e),u=function(){return!0},m?u?u(h):h:(h&&h.then||(h=Promise.resolve(h)),u?h.then(u):h))}catch(l){return s(l)}var h,u,m;return i&&i.then?i.then(void 0,s):i})(0,(function(r){if(r.status===404)return!1;throw r}))}));function jt(n,t,e){return e?t?t(n):n:(n&&n.then||(n=Promise.resolve(n)),t?n.then(t):n)}const Cn=(function(n){return function(){for(var t=[],e=0;e2&&arguments[2]!==void 0?arguments[2]:{};const r=D({url:L(n.remoteURL,R(t),"/"),method:"PROPFIND",headers:{Accept:"text/plain,application/xml",Depth:e.deep?"infinity":"1"}},n,e);return jt(M(r,n),(function(s){return B(n,s),jt(s.text(),(function(i){if(!i)throw new Error("Failed parsing directory contents: Empty response");return jt(ht(i),(function(h){const u=Xt(t);let m=(function(l,o,c){let a=arguments.length>3&&arguments[3]!==void 0&&arguments[3],g=arguments.length>4&&arguments[4]!==void 0&&arguments[4];const f=gt().join(o,"/"),{multistatus:{response:d}}=l,y=d.map((A=>{const p=(function(x){try{return x.replace(/^https?:\/\/[^\/]+/,"")}catch(P){throw new X(P,"Failed normalising HREF")}})(A.href),{propstat:{prop:v}}=A;return xt(v,f==="/"?decodeURIComponent(ct(p)):ct(gt().relative(decodeURIComponent(f),decodeURIComponent(p))),a)}));return g?y:y.filter((A=>A.basename&&(A.type==="file"||A.filename!==c.replace(/\/$/,""))))})(h,Xt(n.remoteBasePath||n.remotePath),u,e.details,e.includeSelf);return e.glob&&(m=(function(l,o){return l.filter((c=>W(c.filename,o,{matchBase:!0})))})(m,e.glob)),nt(s,m,e.details)}))}))}))}));function Bt(n){return function(){for(var t=[],e=0;e2&&arguments[2]!==void 0?arguments[2]:{};const r=D({url:L(n.remoteURL,R(t)),method:"GET",headers:{Accept:"text/plain"},transformResponse:[Rn]},n,e);return wt(M(r,n),(function(s){return B(n,s),wt(s.text(),(function(i){return nt(s,i,e.details)}))}))}));function wt(n,t,e){return e?t?t(n):n:(n&&n.then||(n=Promise.resolve(n)),t?n.then(t):n)}const In=Bt((function(n,t){let e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const r=D({url:L(n.remoteURL,R(t)),method:"GET"},n,e);return wt(M(r,n),(function(s){let i;return B(n,s),(function(h,u){var m=h();return m&&m.then?m.then(u):u()})((function(){return wt(s.arrayBuffer(),(function(h){i=h}))}),(function(){return nt(s,i,e.details)}))}))})),kn=Bt((function(n,t){let e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const{format:r="binary"}=e;if(r!=="binary"&&r!=="text")throw new X({info:{code:tt.InvalidOutputFormat}},`Invalid output format: ${r}`);return r==="text"?$n(n,t,e):In(n,t,e)})),Rn=n=>n;function Ln(n){return new Mt.XMLBuilder({attributeNamePrefix:"@_",format:!0,ignoreAttributes:!1,suppressEmptyNode:!0}).build(Te({lockinfo:{"@_xmlns:d":"DAV:",lockscope:{exclusive:{}},locktype:{write:{}},owner:{href:n}}},"d"))}function Te(n,t){const e={...n};for(const r in e)e.hasOwnProperty(r)&&(e[r]&&typeof e[r]=="object"&&r.indexOf(":")===-1?(e[`${t}:${r}`]=Te(e[r],t),delete e[r]):/^@_/.test(r)===!1&&(e[`${t}:${r}`]=e[r],delete e[r]));return e}function Lt(n,t,e){return e?t?t(n):n:(n&&n.then||(n=Promise.resolve(n)),t?n.then(t):n)}function je(n){return function(){for(var t=[],e=0;e3&&arguments[3]!==void 0?arguments[3]:{};const s=D({url:L(n.remoteURL,R(t)),method:"UNLOCK",headers:{"Lock-Token":e}},n,r);return Lt(M(s,n),(function(i){if(B(n,i),i.status!==204&&i.status!==200)throw Ut(i)}))})),Fn=je((function(n,t){let e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const{refreshToken:r,timeout:s=Un}=e,i={Accept:"text/plain,application/xml",Timeout:s};r&&(i.If=r);const h=D({url:L(n.remoteURL,R(t)),method:"LOCK",headers:i,data:Ln(n.contactHref)},n,e);return Lt(M(h,n),(function(u){return B(n,u),Lt(u.text(),(function(m){const l=(a=m,new Mt.XMLParser({removeNSPrefix:!0,parseAttributeValue:!0,parseTagValue:!0}).parse(a)),o=Q().get(l,"prop.lockdiscovery.activelock.locktoken.href"),c=Q().get(l,"prop.lockdiscovery.activelock.timeout");var a;if(!o)throw Ut(u,"No lock token received: ");return{token:o,serverTimeout:c}}))}))})),Un="Infinite, Second-4100000000";function St(n,t,e){return e?t?t(n):n:(n&&n.then||(n=Promise.resolve(n)),t?n.then(t):n)}const Mn=(function(n){return function(){for(var t=[],e=0;e1&&arguments[1]!==void 0?arguments[1]:{};const e=t.path||"/",r=D({url:L(n.remoteURL,e),method:"PROPFIND",headers:{Accept:"text/plain,application/xml",Depth:"0"}},n,t);return St(M(r,n),(function(s){return B(n,s),St(s.text(),(function(i){return St(ht(i),(function(h){const u=(function(m){try{const[l]=m.multistatus.response,{propstat:{prop:{"quota-used-bytes":o,"quota-available-bytes":c}}}=l;return o!==void 0&&c!==void 0?{used:parseInt(String(o),10),available:Ne(c)}:null}catch{}return null})(h);return nt(s,u,t.details)}))}))}))}));function Ct(n,t,e){return e?t?t(n):n:(n&&n.then||(n=Promise.resolve(n)),t?n.then(t):n)}const Dn=(function(n){return function(){for(var t=[],e=0;e2&&arguments[2]!==void 0?arguments[2]:{};const{details:r=!1}=e,s=D({url:L(n.remoteURL,R(t)),method:"SEARCH",headers:{Accept:"text/plain,application/xml","Content-Type":n.headers["Content-Type"]||"application/xml; charset=utf-8"}},n,e);return Ct(M(s,n),(function(i){return B(n,i),Ct(i.text(),(function(h){return Ct(ht(h),(function(u){const m=(function(l,o,c){const a={truncated:!1,results:[]};return a.truncated=l.multistatus.response.some((g=>(g.status||g.propstat?.status).split(" ",3)?.[1]==="507"&&g.href.replace(/\/$/,"").endsWith(R(o).replace(/\/$/,"")))),l.multistatus.response.forEach((g=>{if(g.propstat===void 0)return;const f=g.href.split("/").map(decodeURIComponent).join("/");a.results.push(xt(g.propstat.prop,f,c))})),a})(u,t,r);return nt(i,m,r)}))}))}))})),Bn=(function(n){return function(){for(var t=[],e=0;e3&&arguments[3]!==void 0?arguments[3]:{};const s=D({url:L(n.remoteURL,R(t)),method:"MOVE",headers:{Destination:L(n.remoteURL,R(e)),Overwrite:r.overwrite===!1?"F":"T"}},n,r);return h=function(u){B(n,u)},(i=M(s,n))&&i.then||(i=Promise.resolve(i)),h?i.then(h):i;var i,h}));var zn=I(172);const Vn=(function(n){return function(){for(var t=[],e=0;e3&&arguments[3]!==void 0?arguments[3]:{};const{contentLength:s=!0,overwrite:i=!0}=r,h={"Content-Type":"application/octet-stream"};s===!1||(h["Content-Length"]=typeof s=="number"?`${s}`:`${(function(o){if(me(o))return o.byteLength;if(ye(o))return o.length;if(typeof o=="string")return(0,zn.d)(o);throw new X({info:{code:tt.DataTypeNoLength}},"Cannot calculate data length: Invalid type")})(e)}`),i||(h["If-None-Match"]="*");const u=D({url:L(n.remoteURL,R(t)),method:"PUT",headers:h,data:e},n,r);return l=function(o){try{B(n,o)}catch(c){const a=c;if(a.status!==412||i)throw a;return!1}return!0},(m=M(u,n))&&m.then||(m=Promise.resolve(m)),l?m.then(l):m;var m,l})),Se=(function(n){return function(){for(var t=[],e=0;e2&&arguments[2]!==void 0?arguments[2]:{};const r=D({url:L(n.remoteURL,R(t)),method:"OPTIONS"},n,e);return i=function(h){try{B(n,h)}catch(u){throw u}return{compliance:(h.headers.get("DAV")??"").split(",").map((u=>u.trim())),server:h.headers.get("Server")??""}},(s=M(r,n))&&s.then||(s=Promise.resolve(s)),i?s.then(i):s;var s,i}));function ut(n,t,e){return e?t?t(n):n:(n&&n.then||(n=Promise.resolve(n)),t?n.then(t):n)}const Wn=zt((function(n,t,e,r,s){let i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{};if(e>r||e<0)throw new X({info:{code:tt.InvalidUpdateRange}},`Invalid update range ${e} for partial update`);const h={"Content-Type":"application/octet-stream","Content-Length":""+(r-e+1),"Content-Range":`bytes ${e}-${r}/*`},u=D({url:L(n.remoteURL,R(t)),method:"PUT",headers:h,data:s},n,i);return ut(M(u,n),(function(m){B(n,m)}))}));function he(n,t){var e=n();return e&&e.then?e.then(t):t(e)}const Gn=zt((function(n,t,e,r,s){let i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{};if(e>r||e<0)throw new X({info:{code:tt.InvalidUpdateRange}},`Invalid update range ${e} for partial update`);const h={"Content-Type":"application/x-sabredav-partialupdate","Content-Length":""+(r-e+1),"X-Update-Range":`bytes=${e}-${r}`},u=D({url:L(n.remoteURL,R(t)),method:"PATCH",headers:h,data:s},n,i);return ut(M(u,n),(function(m){B(n,m)}))}));function zt(n){return function(){for(var t=[],e=0;e5&&arguments[5]!==void 0?arguments[5]:{};return ut(Se(n,t,i),(function(h){let u=!1;return he((function(){if(h.compliance.includes("sabredav-partialupdate"))return ut(Gn(n,t,e,r,s,i),(function(m){return u=!0,m}))}),(function(m){let l=!1;return u?m:he((function(){if(h.server.includes("Apache")&&h.compliance.includes(""))return ut(Wn(n,t,e,r,s,i),(function(o){return l=!0,o}))}),(function(o){if(l)return o;throw new X({info:{code:tt.NotSupported}},"Not supported")}))}))}))})),Zn="https://github.com/perry-mitchell/webdav-client/blob/master/LOCK_CONTACT.md";function Xn(n){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{authType:e=null,remoteBasePath:r,contactHref:s=Zn,ha1:i,headers:h={},httpAgent:u,httpsAgent:m,password:l,token:o,username:c,withCredentials:a}=t;let g=e;g||(g=c||l?q.Password:q.None);const f={authType:g,remoteBasePath:r,contactHref:s,ha1:i,headers:Object.assign({},h),httpAgent:u,httpsAgent:m,password:l,remotePath:Le(n),remoteURL:n,token:o,username:c,withCredentials:a};return fe(f,c,l,o,i),{copyFile:(d,y,A)=>wn(f,d,y,A),createDirectory:(d,y)=>Rt(f,d,y),createReadStream:(d,y)=>(function(A,p){let v=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const x=new(ce()).PassThrough;return On(A,p,v).then((P=>{P.pipe(x)})).catch((P=>{x.emit("error",P)})),x})(f,d,y),createWriteStream:(d,y,A)=>(function(p,v){let x=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},P=arguments.length>3&&arguments[3]!==void 0?arguments[3]:En;const b=new(ce()).PassThrough,O={};x.overwrite===!1&&(O["If-None-Match"]="*");const w=D({url:L(p.remoteURL,R(v)),method:"PUT",headers:O,data:b,maxRedirects:0},p,x);return M(w,p).then((E=>B(p,E))).then((E=>{setTimeout((()=>{P(E)}),0)})).catch((E=>{b.emit("error",E)})),b})(f,d,y,A),customRequest:(d,y)=>Tn(f,d,y),deleteFile:(d,y)=>jn(f,d,y),exists:(d,y)=>Sn(f,d,y),getDirectoryContents:(d,y)=>Cn(f,d,y),getFileContents:(d,y)=>kn(f,d,y),getFileDownloadLink:d=>(function(y,A){let p=L(y.remoteURL,R(A));const v=/^https:/i.test(p)?"https":"http";switch(y.authType){case q.None:break;case q.Password:{const x=Kt(y.headers.Authorization.replace(/^Basic /i,"").trim());p=p.replace(/^https?:\/\//,`${v}://${x}@`);break}default:throw new X({info:{code:tt.LinkUnsupportedAuthType}},`Unsupported auth type for file link: ${y.authType}`)}return p})(f,d),getFileUploadLink:d=>(function(y,A){let p=`${L(y.remoteURL,R(A))}?Content-Type=application/octet-stream`;const v=/^https:/i.test(p)?"https":"http";switch(y.authType){case q.None:break;case q.Password:{const x=Kt(y.headers.Authorization.replace(/^Basic /i,"").trim());p=p.replace(/^https?:\/\//,`${v}://${x}@`);break}default:throw new X({info:{code:tt.LinkUnsupportedAuthType}},`Unsupported auth type for file link: ${y.authType}`)}return p})(f,d),getHeaders:()=>Object.assign({},f.headers),getQuota:d=>Mn(f,d),lock:(d,y)=>Fn(f,d,y),moveFile:(d,y,A)=>Bn(f,d,y,A),putFileContents:(d,y,A)=>Vn(f,d,y,A),partialUpdateFileContents:(d,y,A,p,v)=>qn(f,d,y,A,p,v),getDAVCompliance:d=>Se(f,d),search:(d,y)=>Dn(f,d,y),setHeaders:d=>{f.headers=Object.assign({},d)},stat:(d,y)=>Dt(f,d,y),unlock:(d,y,A)=>_n(f,d,y,A)}}J.hT,J.O4,J.Kd,J.YK;var Hn=J.UU,Jn=J.Gu;J.ky;var Qn=J.h4;J.ch,J.hq,J.i5;export{Hn as a,Qn as l,Jn as u}; -//# sourceMappingURL=index-DY1sONrk.chunk.mjs.map +//# sourceMappingURL=index-BGtOTwEf.chunk.mjs.map diff --git a/dist/index-DY1sONrk.chunk.mjs.license b/dist/index-BGtOTwEf.chunk.mjs.license similarity index 100% rename from dist/index-DY1sONrk.chunk.mjs.license rename to dist/index-BGtOTwEf.chunk.mjs.license diff --git a/dist/index-DY1sONrk.chunk.mjs.map b/dist/index-BGtOTwEf.chunk.mjs.map similarity index 99% rename from dist/index-DY1sONrk.chunk.mjs.map rename to dist/index-BGtOTwEf.chunk.mjs.map index 7b386ce6f4b53..7ce86bcac7ad0 100644 --- a/dist/index-DY1sONrk.chunk.mjs.map +++ b/dist/index-BGtOTwEf.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"index-DY1sONrk.chunk.mjs","sources":["../node_modules/webdav/dist/web/index.js"],"sourcesContent":["/*! For license information please see index.js.LICENSE.txt */\nvar t={2:t=>{function e(t,e,o){t instanceof RegExp&&(t=n(t,o)),e instanceof RegExp&&(e=n(e,o));var i=r(t,e,o);return i&&{start:i[0],end:i[1],pre:o.slice(0,i[0]),body:o.slice(i[0]+t.length,i[1]),post:o.slice(i[1]+e.length)}}function n(t,e){var n=e.match(t);return n?n[0]:null}function r(t,e,n){var r,o,i,s,a,u=n.indexOf(t),c=n.indexOf(e,u+1),l=u;if(u>=0&&c>0){for(r=[],i=n.length;l>=0&&!a;)l==u?(r.push(l),u=n.indexOf(t,l+1)):1==r.length?a=[r.pop(),c]:((o=r.pop())=0?u:c;r.length&&(a=[i,s])}return a}t.exports=e,e.range=r},101:function(t,e,n){var r;t=n.nmd(t),function(o){var i=(t&&t.exports,\"object\"==typeof global&&global);i.global!==i&&i.window;var s=function(t){this.message=t};(s.prototype=new Error).name=\"InvalidCharacterError\";var a=function(t){throw new s(t)},u=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",c=/[\\t\\n\\f\\r ]/g,l={encode:function(t){t=String(t),/[^\\0-\\xFF]/.test(t)&&a(\"The string to be encoded contains characters outside of the Latin1 range.\");for(var e,n,r,o,i=t.length%3,s=\"\",c=-1,l=t.length-i;++c>18&63)+u.charAt(o>>12&63)+u.charAt(o>>6&63)+u.charAt(63&o);return 2==i?(e=t.charCodeAt(c)<<8,n=t.charCodeAt(++c),s+=u.charAt((o=e+n)>>10)+u.charAt(o>>4&63)+u.charAt(o<<2&63)+\"=\"):1==i&&(o=t.charCodeAt(c),s+=u.charAt(o>>2)+u.charAt(o<<4&63)+\"==\"),s},decode:function(t){var e=(t=String(t).replace(c,\"\")).length;e%4==0&&(e=(t=t.replace(/==?$/,\"\")).length),(e%4==1||/[^+a-zA-Z0-9/]/.test(t))&&a(\"Invalid character: the string to be decoded is not correctly encoded.\");for(var n,r,o=0,i=\"\",s=-1;++s>(-2*o&6)));return i},version:\"1.0.0\"};void 0===(r=function(){return l}.call(e,n,e,t))||(t.exports=r)}()},172:(t,e)=>{e.d=function(t){if(!t)return 0;for(var e=(t=t.toString()).length,n=t.length;n--;){var r=t.charCodeAt(n);56320<=r&&r<=57343&&n--,127{var e={utf8:{stringToBytes:function(t){return e.bin.stringToBytes(unescape(encodeURIComponent(t)))},bytesToString:function(t){return decodeURIComponent(escape(e.bin.bytesToString(t)))}},bin:{stringToBytes:function(t){for(var e=[],n=0;n{var e,n;e=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",n={rotl:function(t,e){return t<>>32-e},rotr:function(t,e){return t<<32-e|t>>>e},endian:function(t){if(t.constructor==Number)return 16711935&n.rotl(t,8)|4278255360&n.rotl(t,24);for(var e=0;e0;t--)e.push(Math.floor(256*Math.random()));return e},bytesToWords:function(t){for(var e=[],n=0,r=0;n>>5]|=t[n]<<24-r%32;return e},wordsToBytes:function(t){for(var e=[],n=0;n<32*t.length;n+=8)e.push(t[n>>>5]>>>24-n%32&255);return e},bytesToHex:function(t){for(var e=[],n=0;n>>4).toString(16)),e.push((15&t[n]).toString(16));return e.join(\"\")},hexToBytes:function(t){for(var e=[],n=0;n>>6*(3-i)&63)):n.push(\"=\");return n.join(\"\")},base64ToBytes:function(t){t=t.replace(/[^A-Z0-9+\\/]/gi,\"\");for(var n=[],r=0,o=0;r>>6-2*o);return n}},t.exports=n},635:(t,e,n)=>{const r=n(31),o=n(338),i=n(221);t.exports={XMLParser:o,XMLValidator:r,XMLBuilder:i}},118:t=>{t.exports=function(t){return\"function\"==typeof t?t:Array.isArray(t)?e=>{for(const n of t){if(\"string\"==typeof n&&e===n)return!0;if(n instanceof RegExp&&n.test(e))return!0}}:()=>!1}},705:(t,e)=>{const n=\":A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\",r=\"[\"+n+\"][\"+n+\"\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*\",o=new RegExp(\"^\"+r+\"$\");e.isExist=function(t){return void 0!==t},e.isEmptyObject=function(t){return 0===Object.keys(t).length},e.merge=function(t,e,n){if(e){const r=Object.keys(e),o=r.length;for(let i=0;i{const r=n(705),o={allowBooleanAttributes:!1,unpairedTags:[]};function i(t){return\" \"===t||\"\\t\"===t||\"\\n\"===t||\"\\r\"===t}function s(t,e){const n=e;for(;e5&&\"xml\"===r)return d(\"InvalidXml\",\"XML declaration allowed only at the start of the document.\",m(t,e));if(\"?\"==t[e]&&\">\"==t[e+1]){e++;break}}return e}function a(t,e){if(t.length>e+5&&\"-\"===t[e+1]&&\"-\"===t[e+2]){for(e+=3;e\"===t[e+2]){e+=2;break}}else if(t.length>e+8&&\"D\"===t[e+1]&&\"O\"===t[e+2]&&\"C\"===t[e+3]&&\"T\"===t[e+4]&&\"Y\"===t[e+5]&&\"P\"===t[e+6]&&\"E\"===t[e+7]){let n=1;for(e+=8;e\"===t[e]&&(n--,0===n))break}else if(t.length>e+9&&\"[\"===t[e+1]&&\"C\"===t[e+2]&&\"D\"===t[e+3]&&\"A\"===t[e+4]&&\"T\"===t[e+5]&&\"A\"===t[e+6]&&\"[\"===t[e+7])for(e+=8;e\"===t[e+2]){e+=2;break}return e}e.validate=function(t,e){e=Object.assign({},o,e);const n=[];let u=!1,c=!1;\"\\ufeff\"===t[0]&&(t=t.substr(1));for(let o=0;o\"!==t[o]&&\" \"!==t[o]&&\"\\t\"!==t[o]&&\"\\n\"!==t[o]&&\"\\r\"!==t[o];o++)v+=t[o];if(v=v.trim(),\"/\"===v[v.length-1]&&(v=v.substring(0,v.length-1),o--),h=v,!r.isName(h)){let e;return e=0===v.trim().length?\"Invalid space after '<'.\":\"Tag '\"+v+\"' is an invalid name.\",d(\"InvalidTag\",e,m(t,o))}const b=l(t,o);if(!1===b)return d(\"InvalidAttr\",\"Attributes for '\"+v+\"' have open quote.\",m(t,o));let w=b.value;if(o=b.index,\"/\"===w[w.length-1]){const n=o-w.length;w=w.substring(0,w.length-1);const r=p(w,e);if(!0!==r)return d(r.err.code,r.err.msg,m(t,n+r.err.line));u=!0}else if(y){if(!b.tagClosed)return d(\"InvalidTag\",\"Closing tag '\"+v+\"' doesn't have proper closing.\",m(t,o));if(w.trim().length>0)return d(\"InvalidTag\",\"Closing tag '\"+v+\"' can't have attributes or invalid starting.\",m(t,g));if(0===n.length)return d(\"InvalidTag\",\"Closing tag '\"+v+\"' has not been opened.\",m(t,g));{const e=n.pop();if(v!==e.tagName){let n=m(t,e.tagStartPos);return d(\"InvalidTag\",\"Expected closing tag '\"+e.tagName+\"' (opened in line \"+n.line+\", col \"+n.col+\") instead of closing tag '\"+v+\"'.\",m(t,g))}0==n.length&&(c=!0)}}else{const r=p(w,e);if(!0!==r)return d(r.err.code,r.err.msg,m(t,o-w.length+r.err.line));if(!0===c)return d(\"InvalidXml\",\"Multiple possible root nodes found.\",m(t,o));-1!==e.unpairedTags.indexOf(v)||n.push({tagName:v,tagStartPos:g}),u=!0}for(o++;o0)||d(\"InvalidXml\",\"Invalid '\"+JSON.stringify(n.map((t=>t.tagName)),null,4).replace(/\\r?\\n/g,\"\")+\"' found.\",{line:1,col:1}):d(\"InvalidXml\",\"Start tag expected.\",1)};const u='\"',c=\"'\";function l(t,e){let n=\"\",r=\"\",o=!1;for(;e\"===t[e]&&\"\"===r){o=!0;break}n+=t[e]}return\"\"===r&&{value:n,index:e,tagClosed:o}}const h=new RegExp(\"(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*(['\\\"])(([\\\\s\\\\S])*?)\\\\5)?\",\"g\");function p(t,e){const n=r.getAllMatches(t,h),o={};for(let t=0;t{const r=n(87),o=n(118),i={attributeNamePrefix:\"@_\",attributesGroupName:!1,textNodeName:\"#text\",ignoreAttributes:!0,cdataPropName:!1,format:!1,indentBy:\" \",suppressEmptyNode:!1,suppressUnpairedNode:!0,suppressBooleanAttributes:!0,tagValueProcessor:function(t,e){return e},attributeValueProcessor:function(t,e){return e},preserveOrder:!1,commentPropName:!1,unpairedTags:[],entities:[{regex:new RegExp(\"&\",\"g\"),val:\"&\"},{regex:new RegExp(\">\",\"g\"),val:\">\"},{regex:new RegExp(\"<\",\"g\"),val:\"<\"},{regex:new RegExp(\"'\",\"g\"),val:\"'\"},{regex:new RegExp('\"',\"g\"),val:\""\"}],processEntities:!0,stopNodes:[],oneListGroup:!1};function s(t){this.options=Object.assign({},i,t),!0===this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.ignoreAttributesFn=o(this.options.ignoreAttributes),this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=c),this.processTextOrObjNode=a,this.options.format?(this.indentate=u,this.tagEndChar=\">\\n\",this.newLine=\"\\n\"):(this.indentate=function(){return\"\"},this.tagEndChar=\">\",this.newLine=\"\")}function a(t,e,n,r){const o=this.j2x(t,n+1,r.concat(e));return void 0!==t[this.options.textNodeName]&&1===Object.keys(t).length?this.buildTextValNode(t[this.options.textNodeName],e,o.attrStr,n):this.buildObjectNode(o.val,e,o.attrStr,n)}function u(t){return this.options.indentBy.repeat(t)}function c(t){return!(!t.startsWith(this.options.attributeNamePrefix)||t===this.options.textNodeName)&&t.substr(this.attrPrefixLen)}s.prototype.build=function(t){return this.options.preserveOrder?r(t,this.options):(Array.isArray(t)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(t={[this.options.arrayNodeName]:t}),this.j2x(t,0,[]).val)},s.prototype.j2x=function(t,e,n){let r=\"\",o=\"\";const i=n.join(\".\");for(let s in t)if(Object.prototype.hasOwnProperty.call(t,s))if(void 0===t[s])this.isAttribute(s)&&(o+=\"\");else if(null===t[s])this.isAttribute(s)?o+=\"\":\"?\"===s[0]?o+=this.indentate(e)+\"<\"+s+\"?\"+this.tagEndChar:o+=this.indentate(e)+\"<\"+s+\"/\"+this.tagEndChar;else if(t[s]instanceof Date)o+=this.buildTextValNode(t[s],s,\"\",e);else if(\"object\"!=typeof t[s]){const n=this.isAttribute(s);if(n&&!this.ignoreAttributesFn(n,i))r+=this.buildAttrPairStr(n,\"\"+t[s]);else if(!n)if(s===this.options.textNodeName){let e=this.options.tagValueProcessor(s,\"\"+t[s]);o+=this.replaceEntitiesValue(e)}else o+=this.buildTextValNode(t[s],s,\"\",e)}else if(Array.isArray(t[s])){const r=t[s].length;let i=\"\",a=\"\";for(let u=0;u\"+t+o}},s.prototype.closeTag=function(t){let e=\"\";return-1!==this.options.unpairedTags.indexOf(t)?this.options.suppressUnpairedNode||(e=\"/\"):e=this.options.suppressEmptyNode?\"/\":`>`+this.newLine;if(!1!==this.options.commentPropName&&e===this.options.commentPropName)return this.indentate(r)+`\\x3c!--${t}--\\x3e`+this.newLine;if(\"?\"===e[0])return this.indentate(r)+\"<\"+e+n+\"?\"+this.tagEndChar;{let o=this.options.tagValueProcessor(e,t);return o=this.replaceEntitiesValue(o),\"\"===o?this.indentate(r)+\"<\"+e+n+this.closeTag(e)+this.tagEndChar:this.indentate(r)+\"<\"+e+n+\">\"+o+\"0&&this.options.processEntities)for(let e=0;e{function e(t,s,a,u){let c=\"\",l=!1;for(let h=0;h`,l=!1;continue}if(f===s.commentPropName){c+=u+`\\x3c!--${p[f][0][s.textNodeName]}--\\x3e`,l=!0;continue}if(\"?\"===f[0]){const t=r(p[\":@\"],s),e=\"?xml\"===f?\"\":u;let n=p[f][0][s.textNodeName];n=0!==n.length?\" \"+n:\"\",c+=e+`<${f}${n}${t}?>`,l=!0;continue}let g=u;\"\"!==g&&(g+=s.indentBy);const m=u+`<${f}${r(p[\":@\"],s)}`,y=e(p[f],s,d,g);-1!==s.unpairedTags.indexOf(f)?s.suppressUnpairedNode?c+=m+\">\":c+=m+\"/>\":y&&0!==y.length||!s.suppressEmptyNode?y&&y.endsWith(\">\")?c+=m+`>${y}${u}`:(c+=m+\">\",y&&\"\"!==u&&(y.includes(\"/>\")||y.includes(\"`):c+=m+\"/>\",l=!0}return c}function n(t){const e=Object.keys(t);for(let n=0;n0&&e.processEntities)for(let n=0;n0&&(r=\"\\n\"),e(t,n,\"\",r)}},193:(t,e,n)=>{const r=n(705);function o(t,e){let n=\"\";for(;e\"===t[e]){if(p?\"-\"===t[e-1]&&\"-\"===t[e-2]&&(p=!1,r--):r--,0===r)break}else\"[\"===t[e]?h=!0:f+=t[e];else{if(h&&s(t,e)){let r,i;e+=7,[r,i,e]=o(t,e+1),-1===i.indexOf(\"&\")&&(n[l(r)]={regx:RegExp(`&${r};`,\"g\"),val:i})}else if(h&&a(t,e))e+=8;else if(h&&u(t,e))e+=8;else if(h&&c(t,e))e+=9;else{if(!i)throw new Error(\"Invalid DOCTYPE\");p=!0}r++,f=\"\"}if(0!==r)throw new Error(\"Unclosed DOCTYPE\")}return{entities:n,i:e}}},63:(t,e)=>{const n={preserveOrder:!1,attributeNamePrefix:\"@_\",attributesGroupName:!1,textNodeName:\"#text\",ignoreAttributes:!0,removeNSPrefix:!1,allowBooleanAttributes:!1,parseTagValue:!0,parseAttributeValue:!1,trimValues:!0,cdataPropName:!1,numberParseOptions:{hex:!0,leadingZeros:!0,eNotation:!0},tagValueProcessor:function(t,e){return e},attributeValueProcessor:function(t,e){return e},stopNodes:[],alwaysCreateTextNode:!1,isArray:()=>!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(t,e,n){return t}};e.buildOptions=function(t){return Object.assign({},n,t)},e.defaultOptions=n},299:(t,e,n)=>{const r=n(705),o=n(365),i=n(193),s=n(494),a=n(118);function u(t){const e=Object.keys(t);for(let n=0;n0)){s||(t=this.replaceEntitiesValue(t));const r=this.options.tagValueProcessor(e,t,n,o,i);return null==r?t:typeof r!=typeof t||r!==t?r:this.options.trimValues||t.trim()===t?x(t,this.options.parseTagValue,this.options.numberParseOptions):t}}function l(t){if(this.options.removeNSPrefix){const e=t.split(\":\"),n=\"/\"===t.charAt(0)?\"/\":\"\";if(\"xmlns\"===e[0])return\"\";2===e.length&&(t=n+e[1])}return t}const h=new RegExp(\"([^\\\\s=]+)\\\\s*(=\\\\s*(['\\\"])([\\\\s\\\\S]*?)\\\\3)?\",\"gm\");function p(t,e,n){if(!0!==this.options.ignoreAttributes&&\"string\"==typeof t){const n=r.getAllMatches(t,h),o=n.length,i={};for(let t=0;t\",a,\"Closing Tag is not closed.\");let o=t.substring(a+2,e).trim();if(this.options.removeNSPrefix){const t=o.indexOf(\":\");-1!==t&&(o=o.substr(t+1))}this.options.transformTagName&&(o=this.options.transformTagName(o)),n&&(r=this.saveTextToParentTag(r,n,s));const i=s.substring(s.lastIndexOf(\".\")+1);if(o&&-1!==this.options.unpairedTags.indexOf(o))throw new Error(`Unpaired tag can not be used as closing tag: `);let u=0;i&&-1!==this.options.unpairedTags.indexOf(i)?(u=s.lastIndexOf(\".\",s.lastIndexOf(\".\")-1),this.tagsNodeStack.pop()):u=s.lastIndexOf(\".\"),s=s.substring(0,u),n=this.tagsNodeStack.pop(),r=\"\",a=e}else if(\"?\"===t[a+1]){let e=b(t,a,!1,\"?>\");if(!e)throw new Error(\"Pi Tag is not closed.\");if(r=this.saveTextToParentTag(r,n,s),this.options.ignoreDeclaration&&\"?xml\"===e.tagName||this.options.ignorePiTags);else{const t=new o(e.tagName);t.add(this.options.textNodeName,\"\"),e.tagName!==e.tagExp&&e.attrExpPresent&&(t[\":@\"]=this.buildAttributesMap(e.tagExp,s,e.tagName)),this.addChild(n,t,s)}a=e.closeIndex+1}else if(\"!--\"===t.substr(a+1,3)){const e=v(t,\"--\\x3e\",a+4,\"Comment is not closed.\");if(this.options.commentPropName){const o=t.substring(a+4,e-2);r=this.saveTextToParentTag(r,n,s),n.add(this.options.commentPropName,[{[this.options.textNodeName]:o}])}a=e}else if(\"!D\"===t.substr(a+1,2)){const e=i(t,a);this.docTypeEntities=e.entities,a=e.i}else if(\"![\"===t.substr(a+1,2)){const e=v(t,\"]]>\",a,\"CDATA is not closed.\")-2,o=t.substring(a+9,e);r=this.saveTextToParentTag(r,n,s);let i=this.parseTextData(o,n.tagname,s,!0,!1,!0,!0);null==i&&(i=\"\"),this.options.cdataPropName?n.add(this.options.cdataPropName,[{[this.options.textNodeName]:o}]):n.add(this.options.textNodeName,i),a=e+2}else{let i=b(t,a,this.options.removeNSPrefix),u=i.tagName;const c=i.rawTagName;let l=i.tagExp,h=i.attrExpPresent,p=i.closeIndex;this.options.transformTagName&&(u=this.options.transformTagName(u)),n&&r&&\"!xml\"!==n.tagname&&(r=this.saveTextToParentTag(r,n,s,!1));const f=n;if(f&&-1!==this.options.unpairedTags.indexOf(f.tagname)&&(n=this.tagsNodeStack.pop(),s=s.substring(0,s.lastIndexOf(\".\"))),u!==e.tagname&&(s+=s?\".\"+u:u),this.isItStopNode(this.options.stopNodes,s,u)){let e=\"\";if(l.length>0&&l.lastIndexOf(\"/\")===l.length-1)\"/\"===u[u.length-1]?(u=u.substr(0,u.length-1),s=s.substr(0,s.length-1),l=u):l=l.substr(0,l.length-1),a=i.closeIndex;else if(-1!==this.options.unpairedTags.indexOf(u))a=i.closeIndex;else{const n=this.readStopNodeData(t,c,p+1);if(!n)throw new Error(`Unexpected end of ${c}`);a=n.i,e=n.tagContent}const r=new o(u);u!==l&&h&&(r[\":@\"]=this.buildAttributesMap(l,s,u)),e&&(e=this.parseTextData(e,u,s,!0,h,!0,!0)),s=s.substr(0,s.lastIndexOf(\".\")),r.add(this.options.textNodeName,e),this.addChild(n,r,s)}else{if(l.length>0&&l.lastIndexOf(\"/\")===l.length-1){\"/\"===u[u.length-1]?(u=u.substr(0,u.length-1),s=s.substr(0,s.length-1),l=u):l=l.substr(0,l.length-1),this.options.transformTagName&&(u=this.options.transformTagName(u));const t=new o(u);u!==l&&h&&(t[\":@\"]=this.buildAttributesMap(l,s,u)),this.addChild(n,t,s),s=s.substr(0,s.lastIndexOf(\".\"))}else{const t=new o(u);this.tagsNodeStack.push(n),u!==l&&h&&(t[\":@\"]=this.buildAttributesMap(l,s,u)),this.addChild(n,t,s),n=t}r=\"\",a=p}}else r+=t[a];return e.child};function d(t,e,n){const r=this.options.updateTag(e.tagname,n,e[\":@\"]);!1===r||(\"string\"==typeof r?(e.tagname=r,t.addChild(e)):t.addChild(e))}const g=function(t){if(this.options.processEntities){for(let e in this.docTypeEntities){const n=this.docTypeEntities[e];t=t.replace(n.regx,n.val)}for(let e in this.lastEntities){const n=this.lastEntities[e];t=t.replace(n.regex,n.val)}if(this.options.htmlEntities)for(let e in this.htmlEntities){const n=this.htmlEntities[e];t=t.replace(n.regex,n.val)}t=t.replace(this.ampEntity.regex,this.ampEntity.val)}return t};function m(t,e,n,r){return t&&(void 0===r&&(r=0===Object.keys(e.child).length),void 0!==(t=this.parseTextData(t,e.tagname,n,!1,!!e[\":@\"]&&0!==Object.keys(e[\":@\"]).length,r))&&\"\"!==t&&e.add(this.options.textNodeName,t),t=\"\"),t}function y(t,e,n){const r=\"*.\"+n;for(const n in t){const o=t[n];if(r===o||e===o)return!0}return!1}function v(t,e,n,r){const o=t.indexOf(e,n);if(-1===o)throw new Error(r);return o+e.length-1}function b(t,e,n){const r=function(t,e){let n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:\">\",o=\"\";for(let i=e;i3&&void 0!==arguments[3]?arguments[3]:\">\");if(!r)return;let o=r.data;const i=r.index,s=o.search(/\\s/);let a=o,u=!0;-1!==s&&(a=o.substring(0,s),o=o.substring(s+1).trimStart());const c=a;if(n){const t=a.indexOf(\":\");-1!==t&&(a=a.substr(t+1),u=a!==r.data.substr(t+1))}return{tagName:a,tagExp:o,closeIndex:i,attrExpPresent:u,rawTagName:c}}function w(t,e,n){const r=n;let o=1;for(;n\",n,`${e} is not closed`);if(t.substring(n+2,i).trim()===e&&(o--,0===o))return{tagContent:t.substring(r,n),i};n=i}else if(\"?\"===t[n+1])n=v(t,\"?>\",n+1,\"StopNode is not closed.\");else if(\"!--\"===t.substr(n+1,3))n=v(t,\"--\\x3e\",n+3,\"StopNode is not closed.\");else if(\"![\"===t.substr(n+1,2))n=v(t,\"]]>\",n,\"StopNode is not closed.\")-2;else{const r=b(t,n,\">\");r&&((r&&r.tagName)===e&&\"/\"!==r.tagExp[r.tagExp.length-1]&&o++,n=r.closeIndex)}}function x(t,e,n){if(e&&\"string\"==typeof t){const e=t.trim();return\"true\"===e||\"false\"!==e&&s(t,n)}return r.isExist(t)?t:\"\"}t.exports=class{constructor(t){this.options=t,this.currentNode=null,this.tagsNodeStack=[],this.docTypeEntities={},this.lastEntities={apos:{regex:/&(apos|#39|#x27);/g,val:\"'\"},gt:{regex:/&(gt|#62|#x3E);/g,val:\">\"},lt:{regex:/&(lt|#60|#x3C);/g,val:\"<\"},quot:{regex:/&(quot|#34|#x22);/g,val:'\"'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:\"&\"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:\" \"},cent:{regex:/&(cent|#162);/g,val:\"¢\"},pound:{regex:/&(pound|#163);/g,val:\"£\"},yen:{regex:/&(yen|#165);/g,val:\"¥\"},euro:{regex:/&(euro|#8364);/g,val:\"€\"},copyright:{regex:/&(copy|#169);/g,val:\"©\"},reg:{regex:/&(reg|#174);/g,val:\"®\"},inr:{regex:/&(inr|#8377);/g,val:\"₹\"},num_dec:{regex:/&#([0-9]{1,7});/g,val:(t,e)=>String.fromCharCode(Number.parseInt(e,10))},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:(t,e)=>String.fromCharCode(Number.parseInt(e,16))}},this.addExternalEntities=u,this.parseXml=f,this.parseTextData=c,this.resolveNameSpace=l,this.buildAttributesMap=p,this.isItStopNode=y,this.replaceEntitiesValue=g,this.readStopNodeData=w,this.saveTextToParentTag=m,this.addChild=d,this.ignoreAttributesFn=a(this.options.ignoreAttributes)}}},338:(t,e,n)=>{const{buildOptions:r}=n(63),o=n(299),{prettify:i}=n(728),s=n(31);t.exports=class{constructor(t){this.externalEntities={},this.options=r(t)}parse(t,e){if(\"string\"==typeof t);else{if(!t.toString)throw new Error(\"XML data is accepted in String or Bytes[] form.\");t=t.toString()}if(e){!0===e&&(e={});const n=s.validate(t,e);if(!0!==n)throw Error(`${n.err.msg}:${n.err.line}:${n.err.col}`)}const n=new o(this.options);n.addExternalEntities(this.externalEntities);const r=n.parseXml(t);return this.options.preserveOrder||void 0===r?r:i(r,this.options)}addEntity(t,e){if(-1!==e.indexOf(\"&\"))throw new Error(\"Entity value can't have '&'\");if(-1!==t.indexOf(\"&\")||-1!==t.indexOf(\";\"))throw new Error(\"An entity must be set without '&' and ';'. Eg. use '#xD' for ' '\");if(\"&\"===e)throw new Error(\"An entity with value '&' is not permitted\");this.externalEntities[t]=e}}},728:(t,e)=>{function n(t,e,s){let a;const u={};for(let c=0;c0&&(u[e.textNodeName]=a):void 0!==a&&(u[e.textNodeName]=a),u}function r(t){const e=Object.keys(t);for(let t=0;t{t.exports=class{constructor(t){this.tagname=t,this.child=[],this[\":@\"]={}}add(t,e){\"__proto__\"===t&&(t=\"#__proto__\"),this.child.push({[t]:e})}addChild(t){\"__proto__\"===t.tagname&&(t.tagname=\"#__proto__\"),t[\":@\"]&&Object.keys(t[\":@\"]).length>0?this.child.push({[t.tagname]:t.child,\":@\":t[\":@\"]}):this.child.push({[t.tagname]:t.child})}}},135:t=>{function e(t){return!!t.constructor&&\"function\"==typeof t.constructor.isBuffer&&t.constructor.isBuffer(t)}t.exports=function(t){return null!=t&&(e(t)||function(t){return\"function\"==typeof t.readFloatLE&&\"function\"==typeof t.slice&&e(t.slice(0,0))}(t)||!!t._isBuffer)}},542:(t,e,n)=>{!function(){var e=n(298),r=n(526).utf8,o=n(135),i=n(526).bin,s=function(t,n){t.constructor==String?t=n&&\"binary\"===n.encoding?i.stringToBytes(t):r.stringToBytes(t):o(t)?t=Array.prototype.slice.call(t,0):Array.isArray(t)||t.constructor===Uint8Array||(t=t.toString());for(var a=e.bytesToWords(t),u=8*t.length,c=1732584193,l=-271733879,h=-1732584194,p=271733878,f=0;f>>24)|4278255360&(a[f]<<24|a[f]>>>8);a[u>>>5]|=128<>>9<<4)]=u;var d=s._ff,g=s._gg,m=s._hh,y=s._ii;for(f=0;f>>0,l=l+b>>>0,h=h+w>>>0,p=p+x>>>0}return e.endian([c,l,h,p])};s._ff=function(t,e,n,r,o,i,s){var a=t+(e&n|~e&r)+(o>>>0)+s;return(a<>>32-i)+e},s._gg=function(t,e,n,r,o,i,s){var a=t+(e&r|n&~r)+(o>>>0)+s;return(a<>>32-i)+e},s._hh=function(t,e,n,r,o,i,s){var a=t+(e^n^r)+(o>>>0)+s;return(a<>>32-i)+e},s._ii=function(t,e,n,r,o,i,s){var a=t+(n^(e|~r))+(o>>>0)+s;return(a<>>32-i)+e},s._blocksize=16,s._digestsize=16,t.exports=function(t,n){if(null==t)throw new Error(\"Illegal argument \"+t);var r=e.wordsToBytes(s(t,n));return n&&n.asBytes?r:n&&n.asString?i.bytesToString(r):e.bytesToHex(r)}}()},285:(t,e,n)=>{var r=n(2);t.exports=function(t){return t?(\"{}\"===t.substr(0,2)&&(t=\"\\\\{\\\\}\"+t.substr(2)),m(function(t){return t.split(\"\\\\\\\\\").join(o).split(\"\\\\{\").join(i).split(\"\\\\}\").join(s).split(\"\\\\,\").join(a).split(\"\\\\.\").join(u)}(t),!0).map(l)):[]};var o=\"\\0SLASH\"+Math.random()+\"\\0\",i=\"\\0OPEN\"+Math.random()+\"\\0\",s=\"\\0CLOSE\"+Math.random()+\"\\0\",a=\"\\0COMMA\"+Math.random()+\"\\0\",u=\"\\0PERIOD\"+Math.random()+\"\\0\";function c(t){return parseInt(t,10)==t?parseInt(t,10):t.charCodeAt(0)}function l(t){return t.split(o).join(\"\\\\\").split(i).join(\"{\").split(s).join(\"}\").split(a).join(\",\").split(u).join(\".\")}function h(t){if(!t)return[\"\"];var e=[],n=r(\"{\",\"}\",t);if(!n)return t.split(\",\");var o=n.pre,i=n.body,s=n.post,a=o.split(\",\");a[a.length-1]+=\"{\"+i+\"}\";var u=h(s);return s.length&&(a[a.length-1]+=u.shift(),a.push.apply(a,u)),e.push.apply(e,a),e}function p(t){return\"{\"+t+\"}\"}function f(t){return/^-?0\\d/.test(t)}function d(t,e){return t<=e}function g(t,e){return t>=e}function m(t,e){var n=[],o=r(\"{\",\"}\",t);if(!o)return[t];var i=o.pre,a=o.post.length?m(o.post,!1):[\"\"];if(/\\$$/.test(o.pre))for(var u=0;u=0;if(!x&&!N)return o.post.match(/,.*\\}/)?m(t=o.pre+\"{\"+o.body+s+o.post):[t];if(x)y=o.body.split(/\\.\\./);else if(1===(y=h(o.body)).length&&1===(y=m(y[0],!1).map(p)).length)return a.map((function(t){return o.pre+y[0]+t}));if(x){var A=c(y[0]),P=c(y[1]),O=Math.max(y[0].length,y[1].length),E=3==y.length?Math.abs(c(y[2])):1,T=d;P0){var I=new Array(C+1).join(\"0\");$=S<0?\"-\"+I+$.slice(1):I+$}}v.push($)}}else{v=[];for(var k=0;k{function e(t){return e=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},e(t)}function n(t){var e=\"function\"==typeof Map?new Map:void 0;return n=function(t){if(null===t||(n=t,-1===Function.toString.call(n).indexOf(\"[native code]\")))return t;var n;if(\"function\"!=typeof t)throw new TypeError(\"Super expression must either be null or a function\");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,s)}function s(){return r(t,arguments,i(this).constructor)}return s.prototype=Object.create(t.prototype,{constructor:{value:s,enumerable:!1,writable:!0,configurable:!0}}),o(s,t)},n(t)}function r(t,e,n){return r=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}()?Reflect.construct:function(t,e,n){var r=[null];r.push.apply(r,e);var i=new(Function.bind.apply(t,r));return n&&o(i,n.prototype),i},r.apply(null,arguments)}function o(t,e){return o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},o(t,e)}function i(t){return i=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},i(t)}var s=function(t){function n(t){var r;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,n),(r=function(t,n){return!n||\"object\"!==e(n)&&\"function\"!=typeof n?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):n}(this,i(n).call(this,t))).name=\"ObjectPrototypeMutationError\",r}return function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(n,t),n}(n(Error));function a(t,n){for(var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},o=n.split(\".\"),i=o.length,s=function(e){var n=o[e];if(!t)return{v:void 0};if(\"+\"===n){if(Array.isArray(t))return{v:t.map((function(n,i){var s=o.slice(e+1);return s.length>0?a(n,s.join(\".\"),r):r(t,i,o,e)}))};var i=o.slice(0,e).join(\".\");throw new Error(\"Object at wildcard (\".concat(i,\") is not an array\"))}t=r(t,n,o,e)},u=0;u2&&void 0!==arguments[2]?arguments[2]:{};if(\"object\"!=e(t)||null===t)return!1;if(void 0===n)return!1;if(\"number\"==typeof n)return n in t;try{var o=!1;return a(t,n,(function(t,e,n,i){if(!u(n,i))return t&&t[e];o=r.own?t.hasOwnProperty(e):e in t})),o}catch(t){return!1}},hasOwn:function(t,e,n){return this.has(t,e,n||{own:!0})},isIn:function(t,n,r){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(\"object\"!=e(t)||null===t)return!1;if(void 0===n)return!1;try{var i=!1,s=!1;return a(t,n,(function(t,n,o,a){return i=i||t===r||!!t&&t[n]===r,s=u(o,a)&&\"object\"===e(t)&&n in t,t&&t[n]})),o.validPath?i&&s:i}catch(t){return!1}},ObjectPrototypeMutationError:s}},47:(t,e,n)=>{var r=n(410),o=function(t){return\"string\"==typeof t};function i(t,e){for(var n=[],r=0;r=-1&&!e;n--){var r=n>=0?arguments[n]:process.cwd();if(!o(r))throw new TypeError(\"Arguments to path.resolve must be strings\");r&&(t=r+\"/\"+t,e=\"/\"===r.charAt(0))}return(e?\"/\":\"\")+(t=i(t.split(\"/\"),!e).join(\"/\"))||\".\"},a.normalize=function(t){var e=a.isAbsolute(t),n=\"/\"===t.substr(-1);return(t=i(t.split(\"/\"),!e).join(\"/\"))||e||(t=\".\"),t&&n&&(t+=\"/\"),(e?\"/\":\"\")+t},a.isAbsolute=function(t){return\"/\"===t.charAt(0)},a.join=function(){for(var t=\"\",e=0;e=0&&\"\"===t[n];n--);return e>n?[]:t.slice(e,n+1)}t=a.resolve(t).substr(1),e=a.resolve(e).substr(1);for(var r=n(t.split(\"/\")),o=n(e.split(\"/\")),i=Math.min(r.length,o.length),s=i,u=0;u{var n=Object.prototype.hasOwnProperty;function r(t){try{return decodeURIComponent(t.replace(/\\+/g,\" \"))}catch(t){return null}}function o(t){try{return encodeURIComponent(t)}catch(t){return null}}e.stringify=function(t,e){e=e||\"\";var r,i,s=[];for(i in\"string\"!=typeof e&&(e=\"?\"),t)if(n.call(t,i)){if((r=t[i])||null!=r&&!isNaN(r)||(r=\"\"),i=o(i),r=o(r),null===i||null===r)continue;s.push(i+\"=\"+r)}return s.length?e+s.join(\"&\"):\"\"},e.parse=function(t){for(var e,n=/([^=?#&]+)=?([^&]*)/g,o={};e=n.exec(t);){var i=r(e[1]),s=r(e[2]);null===i||null===s||i in o||(o[i]=s)}return o}},670:t=>{t.exports=function(t,e){if(e=e.split(\":\")[0],!(t=+t))return!1;switch(e){case\"http\":case\"ws\":return 80!==t;case\"https\":case\"wss\":return 443!==t;case\"ftp\":return 21!==t;case\"gopher\":return 70!==t;case\"file\":return!1}return 0!==t}},494:t=>{const e=/^[-+]?0x[a-fA-F0-9]+$/,n=/^([\\-\\+])?(0*)(\\.[0-9]+([eE]\\-?[0-9]+)?|[0-9]+(\\.[0-9]+([eE]\\-?[0-9]+)?)?)$/;!Number.parseInt&&window.parseInt&&(Number.parseInt=window.parseInt),!Number.parseFloat&&window.parseFloat&&(Number.parseFloat=window.parseFloat);const r={hex:!0,leadingZeros:!0,decimalPoint:\".\",eNotation:!0};t.exports=function(t){let o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(o=Object.assign({},r,o),!t||\"string\"!=typeof t)return t;let i=t.trim();if(void 0!==o.skipLike&&o.skipLike.test(i))return t;if(o.hex&&e.test(i))return Number.parseInt(i,16);{const e=n.exec(i);if(e){const n=e[1],r=e[2];let a=(s=e[3])&&-1!==s.indexOf(\".\")?(\".\"===(s=s.replace(/0+$/,\"\"))?s=\"0\":\".\"===s[0]?s=\"0\"+s:\".\"===s[s.length-1]&&(s=s.substr(0,s.length-1)),s):s;const u=e[4]||e[6];if(!o.leadingZeros&&r.length>0&&n&&\".\"!==i[2])return t;if(!o.leadingZeros&&r.length>0&&!n&&\".\"!==i[1])return t;{const e=Number(i),s=\"\"+e;return-1!==s.search(/[eE]/)||u?o.eNotation?e:t:-1!==i.indexOf(\".\")?\"0\"===s&&\"\"===a||s===a||n&&s===\"-\"+a?e:t:r?a===s||n+a===s?e:t:i===s||i===n+s?e:t}}return t}var s}},737:(t,e,n)=>{var r=n(670),o=n(647),i=/^[\\x00-\\x20\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff]+/,s=/[\\n\\r\\t]/g,a=/^[A-Za-z][A-Za-z0-9+-.]*:\\/\\//,u=/:\\d+$/,c=/^([a-z][a-z0-9.+-]*:)?(\\/\\/)?([\\\\/]+)?([\\S\\s]*)/i,l=/^[a-zA-Z]:/;function h(t){return(t||\"\").toString().replace(i,\"\")}var p=[[\"#\",\"hash\"],[\"?\",\"query\"],function(t,e){return g(e.protocol)?t.replace(/\\\\/g,\"/\"):t},[\"/\",\"pathname\"],[\"@\",\"auth\",1],[NaN,\"host\",void 0,1,1],[/:(\\d*)$/,\"port\",void 0,1],[NaN,\"hostname\",void 0,1,1]],f={hash:1,query:1};function d(t){var e,n=(\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:{}).location||{},r={},o=typeof(t=t||n);if(\"blob:\"===t.protocol)r=new y(unescape(t.pathname),{});else if(\"string\"===o)for(e in r=new y(t,{}),f)delete r[e];else if(\"object\"===o){for(e in t)e in f||(r[e]=t[e]);void 0===r.slashes&&(r.slashes=a.test(t.href))}return r}function g(t){return\"file:\"===t||\"ftp:\"===t||\"http:\"===t||\"https:\"===t||\"ws:\"===t||\"wss:\"===t}function m(t,e){t=(t=h(t)).replace(s,\"\"),e=e||{};var n,r=c.exec(t),o=r[1]?r[1].toLowerCase():\"\",i=!!r[2],a=!!r[3],u=0;return i?a?(n=r[2]+r[3]+r[4],u=r[2].length+r[3].length):(n=r[2]+r[4],u=r[2].length):a?(n=r[3]+r[4],u=r[3].length):n=r[4],\"file:\"===o?u>=2&&(n=n.slice(2)):g(o)?n=r[4]:o?i&&(n=n.slice(2)):u>=2&&g(e.protocol)&&(n=r[4]),{protocol:o,slashes:i||g(o),slashesCount:u,rest:n}}function y(t,e,n){if(t=(t=h(t)).replace(s,\"\"),!(this instanceof y))return new y(t,e,n);var i,a,u,c,f,v,b=p.slice(),w=typeof e,x=this,N=0;for(\"object\"!==w&&\"string\"!==w&&(n=e,e=null),n&&\"function\"!=typeof n&&(n=o.parse),i=!(a=m(t||\"\",e=d(e))).protocol&&!a.slashes,x.slashes=a.slashes||i&&e.slashes,x.protocol=a.protocol||e.protocol||\"\",t=a.rest,(\"file:\"===a.protocol&&(2!==a.slashesCount||l.test(t))||!a.slashes&&(a.protocol||a.slashesCount<2||!g(x.protocol)))&&(b[3]=[/(.*)/,\"pathname\"]);N{},388:()=>{},805:()=>{},345:()=>{},800:()=>{}},e={};function n(r){var o=e[r];if(void 0!==o)return o.exports;var i=e[r]={id:r,loaded:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.loaded=!0,i.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n.nmd=t=>(t.paths=[],t.children||(t.children=[]),t);var r={};n.d(r,{hT:()=>C,O4:()=>I,Kd:()=>S,YK:()=>$,UU:()=>en,Gu:()=>F,ky:()=>oe,h4:()=>ne,ch:()=>re,hq:()=>Xt,i5:()=>ie});var o=n(737),i=n.n(o);function s(t){if(!a(t))throw new Error(\"Parameter was not an error\")}function a(t){return!!t&&\"object\"==typeof t&&\"[object Error]\"===(e=t,Object.prototype.toString.call(e))||t instanceof Error;var e}class u extends Error{constructor(t,e){const n=[...arguments],{options:r,shortMessage:o}=function(t){let e,n=\"\";if(0===t.length)e={};else if(a(t[0]))e={cause:t[0]},n=t.slice(1).join(\" \")||\"\";else if(t[0]&&\"object\"==typeof t[0])e=Object.assign({},t[0]),n=t.slice(1).join(\" \")||\"\";else{if(\"string\"!=typeof t[0])throw new Error(\"Invalid arguments passed to Layerr\");e={},n=n=t.join(\" \")||\"\"}return{options:e,shortMessage:n}}(n);let i=o;if(r.cause&&(i=`${i}: ${r.cause.message}`),super(i),this.message=i,r.name&&\"string\"==typeof r.name?this.name=r.name:this.name=\"Layerr\",r.cause&&Object.defineProperty(this,\"_cause\",{value:r.cause}),Object.defineProperty(this,\"_info\",{value:{}}),r.info&&\"object\"==typeof r.info&&Object.assign(this._info,r.info),Error.captureStackTrace){const t=r.constructorOpt||this.constructor;Error.captureStackTrace(this,t)}}static cause(t){return s(t),t._cause&&a(t._cause)?t._cause:null}static fullStack(t){s(t);const e=u.cause(t);return e?`${t.stack}\\ncaused by: ${u.fullStack(e)}`:t.stack??\"\"}static info(t){s(t);const e={},n=u.cause(t);return n&&Object.assign(e,u.info(n)),t._info&&Object.assign(e,t._info),e}toString(){let t=this.name||this.constructor.name||this.constructor.prototype.name;return this.message&&(t=`${t}: ${this.message}`),t}}var c=n(47),l=n.n(c);const h=\"__PATH_SEPARATOR_POSIX__\",p=\"__PATH_SEPARATOR_WINDOWS__\";function f(t){try{const e=t.replace(/\\//g,h).replace(/\\\\\\\\/g,p);return encodeURIComponent(e).split(p).join(\"\\\\\\\\\").split(h).join(\"/\")}catch(t){throw new u(t,\"Failed encoding path\")}}function d(t){return t.startsWith(\"/\")?t:\"/\"+t}function g(t){let e=t;return\"/\"!==e[0]&&(e=\"/\"+e),/^.+\\/$/.test(e)&&(e=e.substr(0,e.length-1)),e}function m(t){let e=new(i())(t).pathname;return e.length<=0&&(e=\"/\"),g(e)}function y(){for(var t=arguments.length,e=new Array(t),n=0;n1){var n=t.shift();t[0]=n+t[0]}t[0].match(/^file:\\/\\/\\//)?t[0]=t[0].replace(/^([^/:]+):\\/*/,\"$1:///\"):t[0]=t[0].replace(/^([^/:]+):\\/*/,\"$1://\");for(var r=0;r0&&(o=o.replace(/^[\\/]+/,\"\")),o=r0?\"?\":\"\")+s.join(\"&\")}(\"object\"==typeof arguments[0]?arguments[0]:[].slice.call(arguments))}(e.reduce(((t,e,n)=>((0===n||\"/\"!==e||\"/\"===e&&\"/\"!==t[t.length-1])&&t.push(e),t)),[]))}var v=n(542),b=n.n(v);const w=\"abcdef0123456789\";function x(t,e){const n=t.url.replace(\"//\",\"\"),r=-1==n.indexOf(\"/\")?\"/\":n.slice(n.indexOf(\"/\")),o=t.method?t.method.toUpperCase():\"GET\",i=!!/(^|,)\\s*auth\\s*($|,)/.test(e.qop)&&\"auth\",s=`00000000${e.nc}`.slice(-8),a=function(t,e,n,r,o,i,s){const a=s||b()(`${e}:${n}:${r}`);return t&&\"md5-sess\"===t.toLowerCase()?b()(`${a}:${o}:${i}`):a}(e.algorithm,e.username,e.realm,e.password,e.nonce,e.cnonce,e.ha1),u=b()(`${o}:${r}`),c=i?b()(`${a}:${e.nonce}:${s}:${e.cnonce}:${i}:${u}`):b()(`${a}:${e.nonce}:${u}`),l={username:e.username,realm:e.realm,nonce:e.nonce,uri:r,qop:i,response:c,nc:s,cnonce:e.cnonce,algorithm:e.algorithm,opaque:e.opaque},h=[];for(const t in l)l[t]&&(\"qop\"===t||\"nc\"===t||\"algorithm\"===t?h.push(`${t}=${l[t]}`):h.push(`${t}=\"${l[t]}\"`));return`Digest ${h.join(\", \")}`}function N(t){return\"digest\"===(t.headers&&t.headers.get(\"www-authenticate\")||\"\").split(/\\s/)[0].toLowerCase()}var A=n(101),P=n.n(A);function O(t){return P().decode(t)}function E(t,e){var n;return`Basic ${n=`${t}:${e}`,P().encode(n)}`}const T=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:\"undefined\"!=typeof window?window:globalThis,j=T.fetch.bind(T),S=(T.Headers,T.Request),$=T.Response;let C=function(t){return t.Auto=\"auto\",t.Digest=\"digest\",t.None=\"none\",t.Password=\"password\",t.Token=\"token\",t}({}),I=function(t){return t.DataTypeNoLength=\"data-type-no-length\",t.InvalidAuthType=\"invalid-auth-type\",t.InvalidOutputFormat=\"invalid-output-format\",t.LinkUnsupportedAuthType=\"link-unsupported-auth\",t.InvalidUpdateRange=\"invalid-update-range\",t.NotSupported=\"not-supported\",t}({});function k(t,e,n,r,o){switch(t.authType){case C.Auto:e&&n&&(t.headers.Authorization=E(e,n));break;case C.Digest:t.digest=function(t,e,n){return{username:t,password:e,ha1:n,nc:0,algorithm:\"md5\",hasDigestAuth:!1}}(e,n,o);break;case C.None:break;case C.Password:t.headers.Authorization=E(e,n);break;case C.Token:t.headers.Authorization=`${(i=r).token_type} ${i.access_token}`;break;default:throw new u({info:{code:I.InvalidAuthType}},`Invalid auth type: ${t.authType}`)}var i}n(345),n(800);const R=\"@@HOTPATCHER\",L=()=>{};function _(t){return{original:t,methods:[t],final:!1}}class M{constructor(){this._configuration={registry:{},getEmptyAction:\"null\"},this.__type__=R}get configuration(){return this._configuration}get getEmptyAction(){return this.configuration.getEmptyAction}set getEmptyAction(t){this.configuration.getEmptyAction=t}control(t){let e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!t||t.__type__!==R)throw new Error(\"Failed taking control of target HotPatcher instance: Invalid type or object\");return Object.keys(t.configuration.registry).forEach((n=>{this.configuration.registry.hasOwnProperty(n)?e&&(this.configuration.registry[n]=Object.assign({},t.configuration.registry[n])):this.configuration.registry[n]=Object.assign({},t.configuration.registry[n])})),t._configuration=this.configuration,this}execute(t){const e=this.get(t)||L;for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o0;)o=[e.shift().apply(i,o)];return o[0]}}(...e.methods)}isPatched(t){return!!this.configuration.registry[t]}patch(t,e){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const{chain:r=!1}=n;if(this.configuration.registry[t]&&this.configuration.registry[t].final)throw new Error(`Failed patching '${t}': Method marked as being final`);if(\"function\"!=typeof e)throw new Error(`Failed patching '${t}': Provided method is not a function`);if(r)this.configuration.registry[t]?this.configuration.registry[t].methods.push(e):this.configuration.registry[t]=_(e);else if(this.isPatched(t)){const{original:n}=this.configuration.registry[t];this.configuration.registry[t]=Object.assign(_(e),{original:n})}else this.configuration.registry[t]=_(e);return this}patchInline(t,e){this.isPatched(t)||this.patch(t,e);for(var n=arguments.length,r=new Array(n>2?n-2:0),o=2;o1?e-1:0),r=1;r{this.patch(t,e,{chain:!0})})),this}restore(t){if(!this.isPatched(t))throw new Error(`Failed restoring method: No method present for key: ${t}`);if(\"function\"!=typeof this.configuration.registry[t].original)throw new Error(`Failed restoring method: Original method not found or of invalid type for key: ${t}`);return this.configuration.registry[t].methods=[this.configuration.registry[t].original],this}setFinal(t){if(!this.configuration.registry.hasOwnProperty(t))throw new Error(`Failed marking '${t}' as final: No method found for key`);return this.configuration.registry[t].final=!0,this}}let U=null;function F(){return U||(U=new M),U}function D(t){return function(t){if(\"object\"!=typeof t||null===t||\"[object Object]\"!=Object.prototype.toString.call(t))return!1;if(null===Object.getPrototypeOf(t))return!0;let e=t;for(;null!==Object.getPrototypeOf(e);)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(t)===e}(t)?Object.assign({},t):Object.setPrototypeOf(Object.assign({},t),Object.getPrototypeOf(t))}function B(){for(var t=arguments.length,e=new Array(t),n=0;n0;){const t=o.shift();r=r?V(r,t):D(t)}return r}function V(t,e){const n=D(t);return Object.keys(e).forEach((t=>{n.hasOwnProperty(t)?Array.isArray(e[t])?n[t]=Array.isArray(n[t])?[...n[t],...e[t]]:[...e[t]]:\"object\"==typeof e[t]&&e[t]?n[t]=\"object\"==typeof n[t]&&n[t]?V(n[t],e[t]):D(e[t]):n[t]=e[t]:n[t]=e[t]})),n}function W(t){const e={};for(const n of t.keys())e[n]=t.get(n);return e}function z(){for(var t=arguments.length,e=new Array(t),n=0;n(Object.keys(e).forEach((n=>{const o=n.toLowerCase();r.hasOwnProperty(o)?t[r[o]]=e[n]:(r[o]=n,t[n]=e[n])})),t)),{})}n(805);const G=\"function\"==typeof ArrayBuffer,{toString:q}=Object.prototype;function H(t){return G&&(t instanceof ArrayBuffer||\"[object ArrayBuffer]\"===q.call(t))}function X(t){return null!=t&&null!=t.constructor&&\"function\"==typeof t.constructor.isBuffer&&t.constructor.isBuffer(t)}function Z(t){return function(){for(var e=[],n=0;ne.patchInline(\"fetch\",j,t.url,function(t){let e={};const n={method:t.method};if(t.headers&&(e=z(e,t.headers)),void 0!==t.data){const[r,o]=function(t){if(\"string\"==typeof t)return[t,{}];if(X(t))return[t,{}];if(H(t))return[t,{}];if(t&&\"object\"==typeof t)return[JSON.stringify(t),{\"content-type\":\"application/json\"}];throw new Error(\"Unable to convert request body: Unexpected body type: \"+typeof t)}(t.data);n.body=r,e=z(e,o)}return t.signal&&(n.signal=t.signal),t.withCredentials&&(n.credentials=\"include\"),n.headers=e,n}(t))),t)}var nt=n(285);const rt=t=>{if(\"string\"!=typeof t)throw new TypeError(\"invalid pattern\");if(t.length>65536)throw new TypeError(\"pattern is too long\")},ot={\"[:alnum:]\":[\"\\\\p{L}\\\\p{Nl}\\\\p{Nd}\",!0],\"[:alpha:]\":[\"\\\\p{L}\\\\p{Nl}\",!0],\"[:ascii:]\":[\"\\\\x00-\\\\x7f\",!1],\"[:blank:]\":[\"\\\\p{Zs}\\\\t\",!0],\"[:cntrl:]\":[\"\\\\p{Cc}\",!0],\"[:digit:]\":[\"\\\\p{Nd}\",!0],\"[:graph:]\":[\"\\\\p{Z}\\\\p{C}\",!0,!0],\"[:lower:]\":[\"\\\\p{Ll}\",!0],\"[:print:]\":[\"\\\\p{C}\",!0],\"[:punct:]\":[\"\\\\p{P}\",!0],\"[:space:]\":[\"\\\\p{Z}\\\\t\\\\r\\\\n\\\\v\\\\f\",!0],\"[:upper:]\":[\"\\\\p{Lu}\",!0],\"[:word:]\":[\"\\\\p{L}\\\\p{Nl}\\\\p{Nd}\\\\p{Pc}\",!0],\"[:xdigit:]\":[\"A-Fa-f0-9\",!1]},it=t=>t.replace(/[[\\]\\\\-]/g,\"\\\\$&\"),st=t=>t.join(\"\"),at=(t,e)=>{const n=e;if(\"[\"!==t.charAt(n))throw new Error(\"not in a brace expression\");const r=[],o=[];let i=n+1,s=!1,a=!1,u=!1,c=!1,l=n,h=\"\";t:for(;ih?r.push(it(h)+\"-\"+it(e)):e===h&&r.push(it(e)),h=\"\",i++):t.startsWith(\"-]\",i+1)?(r.push(it(e+\"-\")),i+=2):t.startsWith(\"-\",i+1)?(h=e,i+=2):(r.push(it(e)),i++)}else u=!0,i++}else c=!0,i++}if(l1&&void 0!==arguments[1]?arguments[1]:{};return e?t.replace(/\\[([^\\/\\\\])\\]/g,\"$1\"):t.replace(/((?!\\\\).|^)\\[([^\\/\\\\])\\]/g,\"$1$2\").replace(/\\\\([^\\/])/g,\"$1\")},ct=new Set([\"!\",\"?\",\"+\",\"*\",\"@\"]),lt=t=>ct.has(t),ht=\"(?!\\\\.)\",pt=new Set([\"[\",\".\"]),ft=new Set([\"..\",\".\"]),dt=new Set(\"().*{}+?[]^$\\\\!\"),gt=\"[^/]\",mt=gt+\"*?\",yt=gt+\"+?\";class vt{type;#t;#e;#n=!1;#r=[];#o;#i;#s;#a=!1;#u;#c;#l=!1;constructor(t,e){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.type=t,t&&(this.#e=!0),this.#o=e,this.#t=this.#o?this.#o.#t:this,this.#u=this.#t===this?n:this.#t.#u,this.#s=this.#t===this?[]:this.#t.#s,\"!\"!==t||this.#t.#a||this.#s.push(this),this.#i=this.#o?this.#o.#r.length:0}get hasMagic(){if(void 0!==this.#e)return this.#e;for(const t of this.#r)if(\"string\"!=typeof t&&(t.type||t.hasMagic))return this.#e=!0;return this.#e}toString(){return void 0!==this.#c?this.#c:this.type?this.#c=this.type+\"(\"+this.#r.map((t=>String(t))).join(\"|\")+\")\":this.#c=this.#r.map((t=>String(t))).join(\"\")}#h(){if(this!==this.#t)throw new Error(\"should only call on root\");if(this.#a)return this;let t;for(this.toString(),this.#a=!0;t=this.#s.pop();){if(\"!\"!==t.type)continue;let e=t,n=e.#o;for(;n;){for(let r=e.#i+1;!n.type&&r\"string\"==typeof t?t:t.toJSON())):[this.type,...this.#r.map((t=>t.toJSON()))];return this.isStart()&&!this.type&&t.unshift([]),this.isEnd()&&(this===this.#t||this.#t.#a&&\"!\"===this.#o?.type)&&t.push({}),t}isStart(){if(this.#t===this)return!0;if(!this.#o?.isStart())return!1;if(0===this.#i)return!0;const t=this.#o;for(let e=0;e1&&void 0!==arguments[1]?arguments[1]:{};const n=new vt(null,void 0,e);return vt.#p(t,n,0,e),n}toMMPattern(){if(this!==this.#t)return this.#t.toMMPattern();const t=this.toString(),[e,n,r,o]=this.toRegExpSource();if(!(r||this.#e||this.#u.nocase&&!this.#u.nocaseMagicOnly&&t.toUpperCase()!==t.toLowerCase()))return n;const i=(this.#u.nocase?\"i\":\"\")+(o?\"u\":\"\");return Object.assign(new RegExp(`^${e}$`,i),{_src:e,_glob:t})}get options(){return this.#u}toRegExpSource(t){const e=t??!!this.#u.dot;if(this.#t===this&&this.#h(),!this.type){const n=this.isStart()&&this.isEnd(),r=this.#r.map((e=>{const[r,o,i,s]=\"string\"==typeof e?vt.#f(e,this.#e,n):e.toRegExpSource(t);return this.#e=this.#e||i,this.#n=this.#n||s,r})).join(\"\");let o=\"\";if(this.isStart()&&\"string\"==typeof this.#r[0]&&(1!==this.#r.length||!ft.has(this.#r[0]))){const n=pt,i=e&&n.has(r.charAt(0))||r.startsWith(\"\\\\.\")&&n.has(r.charAt(2))||r.startsWith(\"\\\\.\\\\.\")&&n.has(r.charAt(4)),s=!e&&!t&&n.has(r.charAt(0));o=i?\"(?!(?:^|/)\\\\.\\\\.?(?:$|/))\":s?ht:\"\"}let i=\"\";return this.isEnd()&&this.#t.#a&&\"!\"===this.#o?.type&&(i=\"(?:$|\\\\/)\"),[o+r+i,ut(r),this.#e=!!this.#e,this.#n]}const n=\"*\"===this.type||\"+\"===this.type,r=\"!\"===this.type?\"(?:(?!(?:\":\"(?:\";let o=this.#d(e);if(this.isStart()&&this.isEnd()&&!o&&\"!\"!==this.type){const t=this.toString();return this.#r=[t],this.type=null,this.#e=void 0,[t,ut(this.toString()),!1,!1]}let i=!n||t||e?\"\":this.#d(!0);i===o&&(i=\"\"),i&&(o=`(?:${o})(?:${i})*?`);let s=\"\";return s=\"!\"===this.type&&this.#l?(this.isStart()&&!e?ht:\"\")+yt:r+o+(\"!\"===this.type?\"))\"+(!this.isStart()||e||t?\"\":ht)+mt+\")\":\"@\"===this.type?\")\":\"?\"===this.type?\")?\":\"+\"===this.type&&i?\")\":\"*\"===this.type&&i?\")?\":`)${this.type}`),[s,ut(o),this.#e=!!this.#e,this.#n]}#d(t){return this.#r.map((e=>{if(\"string\"==typeof e)throw new Error(\"string type in extglob ast??\");const[n,r,o,i]=e.toRegExpSource(t);return this.#n=this.#n||i,n})).filter((t=>!(this.isStart()&&this.isEnd()&&!t))).join(\"|\")}static#f(t,e){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=!1,o=\"\",i=!1;for(let s=0;s2&&void 0!==arguments[2]?arguments[2]:{};return rt(e),!(!n.nocomment&&\"#\"===e.charAt(0))&&new Gt(e,n).match(t)},wt=/^\\*+([^+@!?\\*\\[\\(]*)$/,xt=t=>e=>!e.startsWith(\".\")&&e.endsWith(t),Nt=t=>e=>e.endsWith(t),At=t=>(t=t.toLowerCase(),e=>!e.startsWith(\".\")&&e.toLowerCase().endsWith(t)),Pt=t=>(t=t.toLowerCase(),e=>e.toLowerCase().endsWith(t)),Ot=/^\\*+\\.\\*+$/,Et=t=>!t.startsWith(\".\")&&t.includes(\".\"),Tt=t=>\".\"!==t&&\"..\"!==t&&t.includes(\".\"),jt=/^\\.\\*+$/,St=t=>\".\"!==t&&\"..\"!==t&&t.startsWith(\".\"),$t=/^\\*+$/,Ct=t=>0!==t.length&&!t.startsWith(\".\"),It=t=>0!==t.length&&\".\"!==t&&\"..\"!==t,kt=/^\\?+([^+@!?\\*\\[\\(]*)?$/,Rt=t=>{let[e,n=\"\"]=t;const r=Ut([e]);return n?(n=n.toLowerCase(),t=>r(t)&&t.toLowerCase().endsWith(n)):r},Lt=t=>{let[e,n=\"\"]=t;const r=Ft([e]);return n?(n=n.toLowerCase(),t=>r(t)&&t.toLowerCase().endsWith(n)):r},_t=t=>{let[e,n=\"\"]=t;const r=Ft([e]);return n?t=>r(t)&&t.endsWith(n):r},Mt=t=>{let[e,n=\"\"]=t;const r=Ut([e]);return n?t=>r(t)&&t.endsWith(n):r},Ut=t=>{let[e]=t;const n=e.length;return t=>t.length===n&&!t.startsWith(\".\")},Ft=t=>{let[e]=t;const n=e.length;return t=>t.length===n&&\".\"!==t&&\"..\"!==t},Dt=\"object\"==typeof process&&process?\"object\"==typeof process.env&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:\"posix\";bt.sep=\"win32\"===Dt?\"\\\\\":\"/\";const Bt=Symbol(\"globstar **\");bt.GLOBSTAR=Bt,bt.filter=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return n=>bt(n,t,e)};const Vt=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object.assign({},t,e)};bt.defaults=t=>{if(!t||\"object\"!=typeof t||!Object.keys(t).length)return bt;const e=bt;return Object.assign((function(n,r){return e(n,r,Vt(t,arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}))}),{Minimatch:class extends e.Minimatch{constructor(e){super(e,Vt(t,arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}))}static defaults(n){return e.defaults(Vt(t,n)).Minimatch}},AST:class extends e.AST{constructor(e,n){super(e,n,Vt(t,arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}))}static fromGlob(n){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.AST.fromGlob(n,Vt(t,r))}},unescape:function(n){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.unescape(n,Vt(t,r))},escape:function(n){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.escape(n,Vt(t,r))},filter:function(n){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.filter(n,Vt(t,r))},defaults:n=>e.defaults(Vt(t,n)),makeRe:function(n){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.makeRe(n,Vt(t,r))},braceExpand:function(n){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.braceExpand(n,Vt(t,r))},match:function(n,r){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return e.match(n,r,Vt(t,o))},sep:e.sep,GLOBSTAR:Bt})};const Wt=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return rt(t),e.nobrace||!/\\{(?:(?!\\{).)*\\}/.test(t)?[t]:nt(t)};bt.braceExpand=Wt,bt.makeRe=function(t){return new Gt(t,arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).makeRe()},bt.match=function(t,e){const n=new Gt(e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:{});return t=t.filter((t=>n.match(t))),n.options.nonull&&!t.length&&t.push(e),t};const zt=/[?*]|[+@!]\\(.*?\\)|\\[|\\]/;class Gt{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;regexp;constructor(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};rt(t),e=e||{},this.options=e,this.pattern=t,this.platform=e.platform||Dt,this.isWindows=\"win32\"===this.platform,this.windowsPathsNoEscape=!!e.windowsPathsNoEscape||!1===e.allowWindowsEscape,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\\\/g,\"/\")),this.preserveMultipleSlashes=!!e.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!e.nonegate,this.comment=!1,this.empty=!1,this.partial=!!e.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=void 0!==e.windowsNoMagicRoot?e.windowsNoMagicRoot:!(!this.isWindows||!this.nocase),this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(const t of this.set)for(const e of t)if(\"string\"!=typeof e)return!0;return!1}debug(){}make(){const t=this.pattern,e=this.options;if(!e.nocomment&&\"#\"===t.charAt(0))return void(this.comment=!0);if(!t)return void(this.empty=!0);this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],e.debug&&(this.debug=function(){return console.error(...arguments)}),this.debug(this.pattern,this.globSet);const n=this.globSet.map((t=>this.slashSplit(t)));this.globParts=this.preprocess(n),this.debug(this.pattern,this.globParts);let r=this.globParts.map(((t,e,n)=>{if(this.isWindows&&this.windowsNoMagicRoot){const e=!(\"\"!==t[0]||\"\"!==t[1]||\"?\"!==t[2]&&zt.test(t[2])||zt.test(t[3])),n=/^[a-z]:/i.test(t[0]);if(e)return[...t.slice(0,4),...t.slice(4).map((t=>this.parse(t)))];if(n)return[t[0],...t.slice(1).map((t=>this.parse(t)))]}return t.map((t=>this.parse(t)))}));if(this.debug(this.pattern,r),this.set=r.filter((t=>-1===t.indexOf(!1))),this.isWindows)for(let t=0;t=2?(t=this.firstPhasePreProcess(t),t=this.secondPhasePreProcess(t)):t=e>=1?this.levelOneOptimize(t):this.adjascentGlobstarOptimize(t),t}adjascentGlobstarOptimize(t){return t.map((t=>{let e=-1;for(;-1!==(e=t.indexOf(\"**\",e+1));){let n=e;for(;\"**\"===t[n+1];)n++;n!==e&&t.splice(e,n-e)}return t}))}levelOneOptimize(t){return t.map((t=>0===(t=t.reduce(((t,e)=>{const n=t[t.length-1];return\"**\"===e&&\"**\"===n?t:\"..\"===e&&n&&\"..\"!==n&&\".\"!==n&&\"**\"!==n?(t.pop(),t):(t.push(e),t)}),[])).length?[\"\"]:t))}levelTwoFileOptimize(t){Array.isArray(t)||(t=this.slashSplit(t));let e=!1;do{if(e=!1,!this.preserveMultipleSlashes){for(let n=1;nr&&n.splice(r+1,o-r);let i=n[r+1];const s=n[r+2],a=n[r+3];if(\"..\"!==i)continue;if(!s||\".\"===s||\"..\"===s||!a||\".\"===a||\"..\"===a)continue;e=!0,n.splice(r,1);const u=n.slice(0);u[r]=\"**\",t.push(u),r--}if(!this.preserveMultipleSlashes){for(let t=1;tt.length))}partsMatch(t,e){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=0,o=0,i=[],s=\"\";for(;r2&&void 0!==arguments[2]&&arguments[2];const r=this.options;if(this.isWindows){const n=\"string\"==typeof t[0]&&/^[a-z]:$/i.test(t[0]),r=!n&&\"\"===t[0]&&\"\"===t[1]&&\"?\"===t[2]&&/^[a-z]:$/i.test(t[3]),o=\"string\"==typeof e[0]&&/^[a-z]:$/i.test(e[0]),i=r?3:n?0:void 0,s=!o&&\"\"===e[0]&&\"\"===e[1]&&\"?\"===e[2]&&\"string\"==typeof e[3]&&/^[a-z]:$/i.test(e[3])?3:o?0:void 0;if(\"number\"==typeof i&&\"number\"==typeof s){const[n,r]=[t[i],e[s]];n.toLowerCase()===r.toLowerCase()&&(e[s]=n,s>i?e=e.slice(s):i>s&&(t=t.slice(i)))}}const{optimizationLevel:o=1}=this.options;o>=2&&(t=this.levelTwoFileOptimize(t)),this.debug(\"matchOne\",this,{file:t,pattern:e}),this.debug(\"matchOne\",t.length,e.length);for(var i=0,s=0,a=t.length,u=e.length;i>> no match, partial?\",t,h,e,p),h!==a))}let o;if(\"string\"==typeof c?(o=l===c,this.debug(\"string match\",c,l,o)):(o=c.test(l),this.debug(\"pattern match\",c,l,o)),!o)return!1}if(i===a&&s===u)return!0;if(i===a)return n;if(s===u)return i===a-1&&\"\"===t[i];throw new Error(\"wtf?\")}braceExpand(){return Wt(this.pattern,this.options)}parse(t){rt(t);const e=this.options;if(\"**\"===t)return Bt;if(\"\"===t)return\"\";let n,r=null;(n=t.match($t))?r=e.dot?It:Ct:(n=t.match(wt))?r=(e.nocase?e.dot?Pt:At:e.dot?Nt:xt)(n[1]):(n=t.match(kt))?r=(e.nocase?e.dot?Lt:Rt:e.dot?_t:Mt)(n):(n=t.match(Ot))?r=e.dot?Tt:Et:(n=t.match(jt))&&(r=St);const o=vt.fromGlob(t,this.options).toMMPattern();return r&&\"object\"==typeof o&&Reflect.defineProperty(o,\"test\",{value:r}),o}makeRe(){if(this.regexp||!1===this.regexp)return this.regexp;const t=this.set;if(!t.length)return this.regexp=!1,this.regexp;const e=this.options,n=e.noglobstar?\"[^/]*?\":e.dot?\"(?:(?!(?:\\\\/|^)(?:\\\\.{1,2})($|\\\\/)).)*?\":\"(?:(?!(?:\\\\/|^)\\\\.).)*?\",r=new Set(e.nocase?[\"i\"]:[]);let o=t.map((t=>{const e=t.map((t=>{if(t instanceof RegExp)for(const e of t.flags.split(\"\"))r.add(e);return\"string\"==typeof t?t.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g,\"\\\\$&\"):t===Bt?Bt:t._src}));return e.forEach(((t,r)=>{const o=e[r+1],i=e[r-1];t===Bt&&i!==Bt&&(void 0===i?void 0!==o&&o!==Bt?e[r+1]=\"(?:\\\\/|\"+n+\"\\\\/)?\"+o:e[r]=n:void 0===o?e[r-1]=i+\"(?:\\\\/|\"+n+\")?\":o!==Bt&&(e[r-1]=i+\"(?:\\\\/|\\\\/\"+n+\"\\\\/)\"+o,e[r+1]=Bt))})),e.filter((t=>t!==Bt)).join(\"/\")})).join(\"|\");const[i,s]=t.length>1?[\"(?:\",\")\"]:[\"\",\"\"];o=\"^\"+i+o+s+\"$\",this.negate&&(o=\"^(?!\"+o+\").+$\");try{this.regexp=new RegExp(o,[...r].join(\"\"))}catch(t){this.regexp=!1}return this.regexp}slashSplit(t){return this.preserveMultipleSlashes?t.split(\"/\"):this.isWindows&&/^\\/\\/[^\\/]+/.test(t)?[\"\",...t.split(/\\/+/)]:t.split(/\\/+/)}match(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.partial;if(this.debug(\"match\",t,this.pattern),this.comment)return!1;if(this.empty)return\"\"===t;if(\"/\"===t&&e)return!0;const n=this.options;this.isWindows&&(t=t.split(\"\\\\\").join(\"/\"));const r=this.slashSplit(t);this.debug(this.pattern,\"split\",r);const o=this.set;this.debug(this.pattern,\"set\",o);let i=r[r.length-1];if(!i)for(let t=r.length-2;!i&&t>=0;t--)i=r[t];for(let t=0;t1&&void 0!==arguments[1]?arguments[1]:\"\"}Invalid response: ${t.status} ${t.statusText}`);return e.status=t.status,e.response=t,e}function Ht(t,e){const{status:n}=e;if(401===n&&t.digest)return e;if(n>=400)throw qt(e);return e}function Xt(t,e){return arguments.length>2&&void 0!==arguments[2]&&arguments[2]?{data:e,headers:t.headers?W(t.headers):{},status:t.status,statusText:t.statusText}:e}bt.AST=vt,bt.Minimatch=Gt,bt.escape=function(t){let{windowsPathsNoEscape:e=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e?t.replace(/[?*()[\\]]/g,\"[$&]\"):t.replace(/[?*()[\\]\\\\]/g,\"\\\\$&\")},bt.unescape=ut;const Zt=(Yt=function(t,e,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const o=tt({url:y(t.remoteURL,f(e)),method:\"COPY\",headers:{Destination:y(t.remoteURL,f(n)),Overwrite:!1===r.overwrite?\"F\":\"T\",Depth:r.shallow?\"0\":\"infinity\"}},t,r);return s=function(e){Ht(t,e)},(i=Q(o,t))&&i.then||(i=Promise.resolve(i)),s?i.then(s):i;var i,s},function(){for(var t=[],e=0;e2&&void 0!==arguments[2]?arguments[2]:te.Original;const r=Qt().get(t,e);return\"array\"===n&&!1===Array.isArray(r)?[r]:\"object\"===n&&Array.isArray(r)?r[0]:r}function ne(t){return new Promise((e=>{e(function(t){const{multistatus:e}=t;if(\"\"===e)return{multistatus:{response:[]}};if(!e)throw new Error(\"Invalid response: No root multistatus found\");const n={multistatus:Array.isArray(e)?e[0]:e};return Qt().set(n,\"multistatus.response\",ee(n,\"multistatus.response\",te.Array)),Qt().set(n,\"multistatus.response\",Qt().get(n,\"multistatus.response\").map((t=>function(t){const e=Object.assign({},t);return e.status?Qt().set(e,\"status\",ee(e,\"status\",te.Object)):(Qt().set(e,\"propstat\",ee(e,\"propstat\",te.Object)),Qt().set(e,\"propstat.prop\",ee(e,\"propstat.prop\",te.Object))),e}(t)))),n}(new Kt.XMLParser({allowBooleanAttributes:!0,attributeNamePrefix:\"\",textNodeName:\"text\",ignoreAttributes:!1,removeNSPrefix:!0,numberParseOptions:{hex:!0,leadingZeros:!1},attributeValueProcessor:(t,e,n)=>\"true\"===e||\"false\"===e?\"true\"===e:e,tagValueProcessor(t,e,n){if(!n.endsWith(\"propstat.prop.displayname\"))return e}}).parse(t)))}))}function re(t,e){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];const{getlastmodified:r=null,getcontentlength:o=\"0\",resourcetype:i=null,getcontenttype:s=null,getetag:a=null}=t,u=i&&\"object\"==typeof i&&void 0!==i.collection?\"directory\":\"file\",c={filename:e,basename:l().basename(e),lastmod:r,size:parseInt(o,10),type:u,etag:\"string\"==typeof a?a.replace(/\"/g,\"\"):null};return\"file\"===u&&(c.mime=s&&\"string\"==typeof s?s.split(\";\")[0]:\"\"),n&&(void 0!==t.displayname&&(t.displayname=String(t.displayname)),c.props=t),c}function oe(t,e){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=null;try{t.multistatus.response[0].propstat&&(r=t.multistatus.response[0])}catch(t){}if(!r)throw new Error(\"Failed getting item stat: bad response\");const{propstat:{prop:o,status:i}}=r,[s,a,u]=i.split(\" \",3),c=parseInt(a,10);if(c>=400){const t=new Error(`Invalid response: ${c} ${u}`);throw t.status=c,t}return re(o,g(e),n)}function ie(t){switch(String(t)){case\"-3\":return\"unlimited\";case\"-2\":case\"-1\":return\"unknown\";default:return parseInt(String(t),10)}}function se(t,e,n){return n?e?e(t):t:(t&&t.then||(t=Promise.resolve(t)),e?t.then(e):t)}const ae=function(t){return function(){for(var e=[],n=0;n2&&void 0!==arguments[2]?arguments[2]:{};const{details:r=!1}=n,o=tt({url:y(t.remoteURL,f(e)),method:\"PROPFIND\",headers:{Accept:\"text/plain,application/xml\",Depth:\"0\"}},t,n);return se(Q(o,t),(function(n){return Ht(t,n),se(n.text(),(function(t){return se(ne(t),(function(t){const o=oe(t,e,r);return Xt(n,o,r)}))}))}))}));function ue(t,e,n){return n?e?e(t):t:(t&&t.then||(t=Promise.resolve(t)),e?t.then(e):t)}const ce=le((function(t,e){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const r=function(t){if(!t||\"/\"===t)return[];let e=t;const n=[];do{n.push(e),e=l().dirname(e)}while(e&&\"/\"!==e);return n}(g(e));r.sort(((t,e)=>t.length>e.length?1:e.length>t.length?-1:0));let o=!1;return function(t,e,n){if(\"function\"==typeof t[fe]){var r,o,i,s=t[fe]();function l(t){try{for(;!(r=s.next()).done;)if((t=e(r.value))&&t.then){if(!me(t))return void t.then(l,i||(i=de.bind(null,o=new ge,2)));t=t.v}o?de(o,1,t):o=t}catch(t){de(o||(o=new ge),2,t)}}if(l(),s.return){var a=function(t){try{r.done||s.return()}catch(t){}return t};if(o&&o.then)return o.then(a,(function(t){throw a(t)}));a()}return o}if(!(\"length\"in t))throw new TypeError(\"Object is not iterable\");for(var u=[],c=0;c2&&void 0!==arguments[2]?arguments[2]:{};if(!0===n.recursive)return ce(t,e,n);const r=tt({url:y(t.remoteURL,(o=f(e),o.endsWith(\"/\")?o:o+\"/\")),method:\"MKCOL\"},t,n);var o;return ue(Q(r,t),(function(e){Ht(t,e)}))}));var ve=n(388),be=n.n(ve);const we=function(t){return function(){for(var e=[],n=0;n2&&void 0!==arguments[2]?arguments[2]:{};const r={};if(\"object\"==typeof n.range&&\"number\"==typeof n.range.start){let t=`bytes=${n.range.start}-`;\"number\"==typeof n.range.end&&(t=`${t}${n.range.end}`),r.Range=t}const o=tt({url:y(t.remoteURL,f(e)),method:\"GET\",headers:r},t,n);return s=function(e){if(Ht(t,e),r.Range&&206!==e.status){const t=new Error(`Invalid response code for partial request: ${e.status}`);throw t.status=e.status,t}return n.callback&&setTimeout((()=>{n.callback(e)}),0),e.body},(i=Q(o,t))&&i.then||(i=Promise.resolve(i)),s?i.then(s):i;var i,s})),xe=()=>{},Ne=function(t){return function(){for(var e=[],n=0;n2&&void 0!==arguments[2]?arguments[2]:{};const r=tt({url:y(t.remoteURL,f(e)),method:\"DELETE\"},t,n);return i=function(e){Ht(t,e)},(o=Q(r,t))&&o.then||(o=Promise.resolve(o)),i?o.then(i):o;var o,i})),Pe=function(t){return function(){for(var e=[],n=0;n2&&void 0!==arguments[2]?arguments[2]:{};return function(r,o){try{var i=(s=ae(t,e,n),a=function(){return!0},u?a?a(s):s:(s&&s.then||(s=Promise.resolve(s)),a?s.then(a):s))}catch(t){return o(t)}var s,a,u;return i&&i.then?i.then(void 0,o):i}(0,(function(t){if(404===t.status)return!1;throw t}))}));function Oe(t,e,n){return n?e?e(t):t:(t&&t.then||(t=Promise.resolve(t)),e?t.then(e):t)}const Ee=function(t){return function(){for(var e=[],n=0;n2&&void 0!==arguments[2]?arguments[2]:{};const r=tt({url:y(t.remoteURL,f(e),\"/\"),method:\"PROPFIND\",headers:{Accept:\"text/plain,application/xml\",Depth:n.deep?\"infinity\":\"1\"}},t,n);return Oe(Q(r,t),(function(r){return Ht(t,r),Oe(r.text(),(function(o){if(!o)throw new Error(\"Failed parsing directory contents: Empty response\");return Oe(ne(o),(function(o){const i=d(e);let s=function(t,e,n){let r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],o=arguments.length>4&&void 0!==arguments[4]&&arguments[4];const i=l().join(e,\"/\"),{multistatus:{response:s}}=t,a=s.map((t=>{const e=function(t){try{return t.replace(/^https?:\\/\\/[^\\/]+/,\"\")}catch(t){throw new u(t,\"Failed normalising HREF\")}}(t.href),{propstat:{prop:n}}=t;return re(n,\"/\"===i?decodeURIComponent(g(e)):g(l().relative(decodeURIComponent(i),decodeURIComponent(e))),r)}));return o?a:a.filter((t=>t.basename&&(\"file\"===t.type||t.filename!==n.replace(/\\/$/,\"\"))))}(o,d(t.remoteBasePath||t.remotePath),i,n.details,n.includeSelf);return n.glob&&(s=function(t,e){return t.filter((t=>bt(t.filename,e,{matchBase:!0})))}(s,n.glob)),Xt(r,s,n.details)}))}))}))}));function Te(t){return function(){for(var e=[],n=0;n2&&void 0!==arguments[2]?arguments[2]:{};const r=tt({url:y(t.remoteURL,f(e)),method:\"GET\",headers:{Accept:\"text/plain\"},transformResponse:[Ie]},t,n);return Se(Q(r,t),(function(e){return Ht(t,e),Se(e.text(),(function(t){return Xt(e,t,n.details)}))}))}));function Se(t,e,n){return n?e?e(t):t:(t&&t.then||(t=Promise.resolve(t)),e?t.then(e):t)}const $e=Te((function(t,e){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const r=tt({url:y(t.remoteURL,f(e)),method:\"GET\"},t,n);return Se(Q(r,t),(function(e){let r;return Ht(t,e),function(t,e){var n=t();return n&&n.then?n.then(e):e()}((function(){return Se(e.arrayBuffer(),(function(t){r=t}))}),(function(){return Xt(e,r,n.details)}))}))})),Ce=Te((function(t,e){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const{format:r=\"binary\"}=n;if(\"binary\"!==r&&\"text\"!==r)throw new u({info:{code:I.InvalidOutputFormat}},`Invalid output format: ${r}`);return\"text\"===r?je(t,e,n):$e(t,e,n)})),Ie=t=>t;function ke(t){return new Kt.XMLBuilder({attributeNamePrefix:\"@_\",format:!0,ignoreAttributes:!1,suppressEmptyNode:!0}).build(Re({lockinfo:{\"@_xmlns:d\":\"DAV:\",lockscope:{exclusive:{}},locktype:{write:{}},owner:{href:t}}},\"d\"))}function Re(t,e){const n={...t};for(const t in n)n.hasOwnProperty(t)&&(n[t]&&\"object\"==typeof n[t]&&-1===t.indexOf(\":\")?(n[`${e}:${t}`]=Re(n[t],e),delete n[t]):!1===/^@_/.test(t)&&(n[`${e}:${t}`]=n[t],delete n[t]));return n}function Le(t,e,n){return n?e?e(t):t:(t&&t.then||(t=Promise.resolve(t)),e?t.then(e):t)}function _e(t){return function(){for(var e=[],n=0;n3&&void 0!==arguments[3]?arguments[3]:{};const o=tt({url:y(t.remoteURL,f(e)),method:\"UNLOCK\",headers:{\"Lock-Token\":n}},t,r);return Le(Q(o,t),(function(e){if(Ht(t,e),204!==e.status&&200!==e.status)throw qt(e)}))})),Ue=_e((function(t,e){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const{refreshToken:r,timeout:o=Fe}=n,i={Accept:\"text/plain,application/xml\",Timeout:o};r&&(i.If=r);const s=tt({url:y(t.remoteURL,f(e)),method:\"LOCK\",headers:i,data:ke(t.contactHref)},t,n);return Le(Q(s,t),(function(e){return Ht(t,e),Le(e.text(),(function(t){const n=(i=t,new Kt.XMLParser({removeNSPrefix:!0,parseAttributeValue:!0,parseTagValue:!0}).parse(i)),r=Qt().get(n,\"prop.lockdiscovery.activelock.locktoken.href\"),o=Qt().get(n,\"prop.lockdiscovery.activelock.timeout\");var i;if(!r)throw qt(e,\"No lock token received: \");return{token:r,serverTimeout:o}}))}))})),Fe=\"Infinite, Second-4100000000\";function De(t,e,n){return n?e?e(t):t:(t&&t.then||(t=Promise.resolve(t)),e?t.then(e):t)}const Be=function(t){return function(){for(var e=[],n=0;n1&&void 0!==arguments[1]?arguments[1]:{};const n=e.path||\"/\",r=tt({url:y(t.remoteURL,n),method:\"PROPFIND\",headers:{Accept:\"text/plain,application/xml\",Depth:\"0\"}},t,e);return De(Q(r,t),(function(n){return Ht(t,n),De(n.text(),(function(t){return De(ne(t),(function(t){const r=function(t){try{const[e]=t.multistatus.response,{propstat:{prop:{\"quota-used-bytes\":n,\"quota-available-bytes\":r}}}=e;return void 0!==n&&void 0!==r?{used:parseInt(String(n),10),available:ie(r)}:null}catch(t){}return null}(t);return Xt(n,r,e.details)}))}))}))}));function Ve(t,e,n){return n?e?e(t):t:(t&&t.then||(t=Promise.resolve(t)),e?t.then(e):t)}const We=function(t){return function(){for(var e=[],n=0;n2&&void 0!==arguments[2]?arguments[2]:{};const{details:r=!1}=n,o=tt({url:y(t.remoteURL,f(e)),method:\"SEARCH\",headers:{Accept:\"text/plain,application/xml\",\"Content-Type\":t.headers[\"Content-Type\"]||\"application/xml; charset=utf-8\"}},t,n);return Ve(Q(o,t),(function(n){return Ht(t,n),Ve(n.text(),(function(t){return Ve(ne(t),(function(t){const o=function(t,e,n){const r={truncated:!1,results:[]};return r.truncated=t.multistatus.response.some((t=>\"507\"===(t.status||t.propstat?.status).split(\" \",3)?.[1]&&t.href.replace(/\\/$/,\"\").endsWith(f(e).replace(/\\/$/,\"\")))),t.multistatus.response.forEach((t=>{if(void 0===t.propstat)return;const e=t.href.split(\"/\").map(decodeURIComponent).join(\"/\");r.results.push(re(t.propstat.prop,e,n))})),r}(t,e,r);return Xt(n,o,r)}))}))}))})),ze=function(t){return function(){for(var e=[],n=0;n3&&void 0!==arguments[3]?arguments[3]:{};const o=tt({url:y(t.remoteURL,f(e)),method:\"MOVE\",headers:{Destination:y(t.remoteURL,f(n)),Overwrite:!1===r.overwrite?\"F\":\"T\"}},t,r);return s=function(e){Ht(t,e)},(i=Q(o,t))&&i.then||(i=Promise.resolve(i)),s?i.then(s):i;var i,s}));var Ge=n(172);const qe=function(t){return function(){for(var e=[],n=0;n3&&void 0!==arguments[3]?arguments[3]:{};const{contentLength:o=!0,overwrite:i=!0}=r,s={\"Content-Type\":\"application/octet-stream\"};!1===o||(s[\"Content-Length\"]=\"number\"==typeof o?`${o}`:`${function(t){if(H(t))return t.byteLength;if(X(t))return t.length;if(\"string\"==typeof t)return(0,Ge.d)(t);throw new u({info:{code:I.DataTypeNoLength}},\"Cannot calculate data length: Invalid type\")}(n)}`),i||(s[\"If-None-Match\"]=\"*\");const a=tt({url:y(t.remoteURL,f(e)),method:\"PUT\",headers:s,data:n},t,r);return l=function(e){try{Ht(t,e)}catch(t){const e=t;if(412!==e.status||i)throw e;return!1}return!0},(c=Q(a,t))&&c.then||(c=Promise.resolve(c)),l?c.then(l):c;var c,l})),He=function(t){return function(){for(var e=[],n=0;n2&&void 0!==arguments[2]?arguments[2]:{};const r=tt({url:y(t.remoteURL,f(e)),method:\"OPTIONS\"},t,n);return i=function(e){try{Ht(t,e)}catch(t){throw t}return{compliance:(e.headers.get(\"DAV\")??\"\").split(\",\").map((t=>t.trim())),server:e.headers.get(\"Server\")??\"\"}},(o=Q(r,t))&&o.then||(o=Promise.resolve(o)),i?o.then(i):o;var o,i}));function Xe(t,e,n){return n?e?e(t):t:(t&&t.then||(t=Promise.resolve(t)),e?t.then(e):t)}const Ze=Je((function(t,e,n,r,o){let i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};if(n>r||n<0)throw new u({info:{code:I.InvalidUpdateRange}},`Invalid update range ${n} for partial update`);const s={\"Content-Type\":\"application/octet-stream\",\"Content-Length\":\"\"+(r-n+1),\"Content-Range\":`bytes ${n}-${r}/*`},a=tt({url:y(t.remoteURL,f(e)),method:\"PUT\",headers:s,data:o},t,i);return Xe(Q(a,t),(function(e){Ht(t,e)}))}));function Ye(t,e){var n=t();return n&&n.then?n.then(e):e(n)}const Ke=Je((function(t,e,n,r,o){let i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};if(n>r||n<0)throw new u({info:{code:I.InvalidUpdateRange}},`Invalid update range ${n} for partial update`);const s={\"Content-Type\":\"application/x-sabredav-partialupdate\",\"Content-Length\":\"\"+(r-n+1),\"X-Update-Range\":`bytes=${n}-${r}`},a=tt({url:y(t.remoteURL,f(e)),method:\"PATCH\",headers:s,data:o},t,i);return Xe(Q(a,t),(function(e){Ht(t,e)}))}));function Je(t){return function(){for(var e=[],n=0;n5&&void 0!==arguments[5]?arguments[5]:{};return Xe(He(t,e,i),(function(s){let a=!1;return Ye((function(){if(s.compliance.includes(\"sabredav-partialupdate\"))return Xe(Ke(t,e,n,r,o,i),(function(t){return a=!0,t}))}),(function(c){let l=!1;return a?c:Ye((function(){if(s.server.includes(\"Apache\")&&s.compliance.includes(\"\"))return Xe(Ze(t,e,n,r,o,i),(function(t){return l=!0,t}))}),(function(t){if(l)return t;throw new u({info:{code:I.NotSupported}},\"Not supported\")}))}))}))})),tn=\"https://github.com/perry-mitchell/webdav-client/blob/master/LOCK_CONTACT.md\";function en(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{authType:n=null,remoteBasePath:r,contactHref:o=tn,ha1:i,headers:s={},httpAgent:a,httpsAgent:c,password:l,token:h,username:p,withCredentials:d}=e;let g=n;g||(g=p||l?C.Password:C.None);const v={authType:g,remoteBasePath:r,contactHref:o,ha1:i,headers:Object.assign({},s),httpAgent:a,httpsAgent:c,password:l,remotePath:m(t),remoteURL:t,token:h,username:p,withCredentials:d};return k(v,p,l,h,i),{copyFile:(t,e,n)=>Zt(v,t,e,n),createDirectory:(t,e)=>ye(v,t,e),createReadStream:(t,e)=>function(t,e){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const r=new(0,be().PassThrough);return we(t,e,n).then((t=>{t.pipe(r)})).catch((t=>{r.emit(\"error\",t)})),r}(v,t,e),createWriteStream:(t,e,n)=>function(t,e){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:xe;const o=new(0,be().PassThrough),i={};!1===n.overwrite&&(i[\"If-None-Match\"]=\"*\");const s=tt({url:y(t.remoteURL,f(e)),method:\"PUT\",headers:i,data:o,maxRedirects:0},t,n);return Q(s,t).then((e=>Ht(t,e))).then((t=>{setTimeout((()=>{r(t)}),0)})).catch((t=>{o.emit(\"error\",t)})),o}(v,t,e,n),customRequest:(t,e)=>Ne(v,t,e),deleteFile:(t,e)=>Ae(v,t,e),exists:(t,e)=>Pe(v,t,e),getDirectoryContents:(t,e)=>Ee(v,t,e),getFileContents:(t,e)=>Ce(v,t,e),getFileDownloadLink:t=>function(t,e){let n=y(t.remoteURL,f(e));const r=/^https:/i.test(n)?\"https\":\"http\";switch(t.authType){case C.None:break;case C.Password:{const e=O(t.headers.Authorization.replace(/^Basic /i,\"\").trim());n=n.replace(/^https?:\\/\\//,`${r}://${e}@`);break}default:throw new u({info:{code:I.LinkUnsupportedAuthType}},`Unsupported auth type for file link: ${t.authType}`)}return n}(v,t),getFileUploadLink:t=>function(t,e){let n=`${y(t.remoteURL,f(e))}?Content-Type=application/octet-stream`;const r=/^https:/i.test(n)?\"https\":\"http\";switch(t.authType){case C.None:break;case C.Password:{const e=O(t.headers.Authorization.replace(/^Basic /i,\"\").trim());n=n.replace(/^https?:\\/\\//,`${r}://${e}@`);break}default:throw new u({info:{code:I.LinkUnsupportedAuthType}},`Unsupported auth type for file link: ${t.authType}`)}return n}(v,t),getHeaders:()=>Object.assign({},v.headers),getQuota:t=>Be(v,t),lock:(t,e)=>Ue(v,t,e),moveFile:(t,e,n)=>ze(v,t,e,n),putFileContents:(t,e,n)=>qe(v,t,e,n),partialUpdateFileContents:(t,e,n,r,o)=>Qe(v,t,e,n,r,o),getDAVCompliance:t=>He(v,t),search:(t,e)=>We(v,t,e),setHeaders:t=>{v.headers=Object.assign({},t)},stat:(t,e)=>ae(v,t,e),unlock:(t,e,n)=>Me(v,t,e,n)}}var nn=r.hT,rn=r.O4,on=r.Kd,sn=r.YK,an=r.UU,un=r.Gu,cn=r.ky,ln=r.h4,hn=r.ch,pn=r.hq,fn=r.i5;export{nn as AuthType,rn as ErrorCode,on as Request,sn as Response,an as createClient,un as getPatcher,cn as parseStat,ln as parseXML,hn as prepareFileFromProps,pn as processResponsePayload,fn as translateDiskSpace};"],"names":["t","e","o","n","i","r","s","a","u","c","l","global","d","m","g","y","v","h","b","w","p","f","x","N","A","P","O","E","T","j","S","$","C","I","k","process","en","F","oe","ne","re","Xt","ie","R","L","_","M","U","D","B","V","W","z","G","q","H","X","Z","Y","K","et","J","Q","tt","nt","rt","ot","it","st","at","ut","ct","lt","ht","pt","ft","dt","gt","mt","yt","vt","#t","#e","#n","#r","#o","#s","#u","#c","#l","#h","#p","#f","#d","bt","Gt","wt","xt","Nt","At","Pt","Ot","Et","Tt","jt","St","$t","Ct","It","kt","Rt","Ut","Lt","Ft","_t","Mt","Dt","define_process_env_default","Bt","Vt","Wt","zt","qt","Ht","Zt","Yt","Kt","Jt","Qt","te","ee","se","ae","ue","ce","le","fe","me","de","ge","pe","ye","he","ve","be","we","xe","Ne","Ae","Pe","Oe","Ee","Te","je","Ie","Se","$e","Ce","ke","Re","Le","_e","Me","Ue","Fe","De","Be","Ve","We","ze","Ge","qe","He","Xe","Ze","Je","Ye","Ke","Qe","tn","an","un","ln"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file +{"version":3,"file":"index-BGtOTwEf.chunk.mjs","sources":["../node_modules/webdav/dist/web/index.js"],"sourcesContent":["/*! For license information please see index.js.LICENSE.txt */\nvar t={2:t=>{function e(t,e,o){t instanceof RegExp&&(t=n(t,o)),e instanceof RegExp&&(e=n(e,o));var i=r(t,e,o);return i&&{start:i[0],end:i[1],pre:o.slice(0,i[0]),body:o.slice(i[0]+t.length,i[1]),post:o.slice(i[1]+e.length)}}function n(t,e){var n=e.match(t);return n?n[0]:null}function r(t,e,n){var r,o,i,s,a,u=n.indexOf(t),c=n.indexOf(e,u+1),l=u;if(u>=0&&c>0){for(r=[],i=n.length;l>=0&&!a;)l==u?(r.push(l),u=n.indexOf(t,l+1)):1==r.length?a=[r.pop(),c]:((o=r.pop())=0?u:c;r.length&&(a=[i,s])}return a}t.exports=e,e.range=r},101:function(t,e,n){var r;t=n.nmd(t),function(o){var i=(t&&t.exports,\"object\"==typeof global&&global);i.global!==i&&i.window;var s=function(t){this.message=t};(s.prototype=new Error).name=\"InvalidCharacterError\";var a=function(t){throw new s(t)},u=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",c=/[\\t\\n\\f\\r ]/g,l={encode:function(t){t=String(t),/[^\\0-\\xFF]/.test(t)&&a(\"The string to be encoded contains characters outside of the Latin1 range.\");for(var e,n,r,o,i=t.length%3,s=\"\",c=-1,l=t.length-i;++c>18&63)+u.charAt(o>>12&63)+u.charAt(o>>6&63)+u.charAt(63&o);return 2==i?(e=t.charCodeAt(c)<<8,n=t.charCodeAt(++c),s+=u.charAt((o=e+n)>>10)+u.charAt(o>>4&63)+u.charAt(o<<2&63)+\"=\"):1==i&&(o=t.charCodeAt(c),s+=u.charAt(o>>2)+u.charAt(o<<4&63)+\"==\"),s},decode:function(t){var e=(t=String(t).replace(c,\"\")).length;e%4==0&&(e=(t=t.replace(/==?$/,\"\")).length),(e%4==1||/[^+a-zA-Z0-9/]/.test(t))&&a(\"Invalid character: the string to be decoded is not correctly encoded.\");for(var n,r,o=0,i=\"\",s=-1;++s>(-2*o&6)));return i},version:\"1.0.0\"};void 0===(r=function(){return l}.call(e,n,e,t))||(t.exports=r)}()},172:(t,e)=>{e.d=function(t){if(!t)return 0;for(var e=(t=t.toString()).length,n=t.length;n--;){var r=t.charCodeAt(n);56320<=r&&r<=57343&&n--,127{var e={utf8:{stringToBytes:function(t){return e.bin.stringToBytes(unescape(encodeURIComponent(t)))},bytesToString:function(t){return decodeURIComponent(escape(e.bin.bytesToString(t)))}},bin:{stringToBytes:function(t){for(var e=[],n=0;n{var e,n;e=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",n={rotl:function(t,e){return t<>>32-e},rotr:function(t,e){return t<<32-e|t>>>e},endian:function(t){if(t.constructor==Number)return 16711935&n.rotl(t,8)|4278255360&n.rotl(t,24);for(var e=0;e0;t--)e.push(Math.floor(256*Math.random()));return e},bytesToWords:function(t){for(var e=[],n=0,r=0;n>>5]|=t[n]<<24-r%32;return e},wordsToBytes:function(t){for(var e=[],n=0;n<32*t.length;n+=8)e.push(t[n>>>5]>>>24-n%32&255);return e},bytesToHex:function(t){for(var e=[],n=0;n>>4).toString(16)),e.push((15&t[n]).toString(16));return e.join(\"\")},hexToBytes:function(t){for(var e=[],n=0;n>>6*(3-i)&63)):n.push(\"=\");return n.join(\"\")},base64ToBytes:function(t){t=t.replace(/[^A-Z0-9+\\/]/gi,\"\");for(var n=[],r=0,o=0;r>>6-2*o);return n}},t.exports=n},635:(t,e,n)=>{const r=n(31),o=n(338),i=n(221);t.exports={XMLParser:o,XMLValidator:r,XMLBuilder:i}},118:t=>{t.exports=function(t){return\"function\"==typeof t?t:Array.isArray(t)?e=>{for(const n of t){if(\"string\"==typeof n&&e===n)return!0;if(n instanceof RegExp&&n.test(e))return!0}}:()=>!1}},705:(t,e)=>{const n=\":A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\",r=\"[\"+n+\"][\"+n+\"\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*\",o=new RegExp(\"^\"+r+\"$\");e.isExist=function(t){return void 0!==t},e.isEmptyObject=function(t){return 0===Object.keys(t).length},e.merge=function(t,e,n){if(e){const r=Object.keys(e),o=r.length;for(let i=0;i{const r=n(705),o={allowBooleanAttributes:!1,unpairedTags:[]};function i(t){return\" \"===t||\"\\t\"===t||\"\\n\"===t||\"\\r\"===t}function s(t,e){const n=e;for(;e5&&\"xml\"===r)return d(\"InvalidXml\",\"XML declaration allowed only at the start of the document.\",m(t,e));if(\"?\"==t[e]&&\">\"==t[e+1]){e++;break}}return e}function a(t,e){if(t.length>e+5&&\"-\"===t[e+1]&&\"-\"===t[e+2]){for(e+=3;e\"===t[e+2]){e+=2;break}}else if(t.length>e+8&&\"D\"===t[e+1]&&\"O\"===t[e+2]&&\"C\"===t[e+3]&&\"T\"===t[e+4]&&\"Y\"===t[e+5]&&\"P\"===t[e+6]&&\"E\"===t[e+7]){let n=1;for(e+=8;e\"===t[e]&&(n--,0===n))break}else if(t.length>e+9&&\"[\"===t[e+1]&&\"C\"===t[e+2]&&\"D\"===t[e+3]&&\"A\"===t[e+4]&&\"T\"===t[e+5]&&\"A\"===t[e+6]&&\"[\"===t[e+7])for(e+=8;e\"===t[e+2]){e+=2;break}return e}e.validate=function(t,e){e=Object.assign({},o,e);const n=[];let u=!1,c=!1;\"\\ufeff\"===t[0]&&(t=t.substr(1));for(let o=0;o\"!==t[o]&&\" \"!==t[o]&&\"\\t\"!==t[o]&&\"\\n\"!==t[o]&&\"\\r\"!==t[o];o++)v+=t[o];if(v=v.trim(),\"/\"===v[v.length-1]&&(v=v.substring(0,v.length-1),o--),h=v,!r.isName(h)){let e;return e=0===v.trim().length?\"Invalid space after '<'.\":\"Tag '\"+v+\"' is an invalid name.\",d(\"InvalidTag\",e,m(t,o))}const b=l(t,o);if(!1===b)return d(\"InvalidAttr\",\"Attributes for '\"+v+\"' have open quote.\",m(t,o));let w=b.value;if(o=b.index,\"/\"===w[w.length-1]){const n=o-w.length;w=w.substring(0,w.length-1);const r=p(w,e);if(!0!==r)return d(r.err.code,r.err.msg,m(t,n+r.err.line));u=!0}else if(y){if(!b.tagClosed)return d(\"InvalidTag\",\"Closing tag '\"+v+\"' doesn't have proper closing.\",m(t,o));if(w.trim().length>0)return d(\"InvalidTag\",\"Closing tag '\"+v+\"' can't have attributes or invalid starting.\",m(t,g));if(0===n.length)return d(\"InvalidTag\",\"Closing tag '\"+v+\"' has not been opened.\",m(t,g));{const e=n.pop();if(v!==e.tagName){let n=m(t,e.tagStartPos);return d(\"InvalidTag\",\"Expected closing tag '\"+e.tagName+\"' (opened in line \"+n.line+\", col \"+n.col+\") instead of closing tag '\"+v+\"'.\",m(t,g))}0==n.length&&(c=!0)}}else{const r=p(w,e);if(!0!==r)return d(r.err.code,r.err.msg,m(t,o-w.length+r.err.line));if(!0===c)return d(\"InvalidXml\",\"Multiple possible root nodes found.\",m(t,o));-1!==e.unpairedTags.indexOf(v)||n.push({tagName:v,tagStartPos:g}),u=!0}for(o++;o0)||d(\"InvalidXml\",\"Invalid '\"+JSON.stringify(n.map((t=>t.tagName)),null,4).replace(/\\r?\\n/g,\"\")+\"' found.\",{line:1,col:1}):d(\"InvalidXml\",\"Start tag expected.\",1)};const u='\"',c=\"'\";function l(t,e){let n=\"\",r=\"\",o=!1;for(;e\"===t[e]&&\"\"===r){o=!0;break}n+=t[e]}return\"\"===r&&{value:n,index:e,tagClosed:o}}const h=new RegExp(\"(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*(['\\\"])(([\\\\s\\\\S])*?)\\\\5)?\",\"g\");function p(t,e){const n=r.getAllMatches(t,h),o={};for(let t=0;t{const r=n(87),o=n(118),i={attributeNamePrefix:\"@_\",attributesGroupName:!1,textNodeName:\"#text\",ignoreAttributes:!0,cdataPropName:!1,format:!1,indentBy:\" \",suppressEmptyNode:!1,suppressUnpairedNode:!0,suppressBooleanAttributes:!0,tagValueProcessor:function(t,e){return e},attributeValueProcessor:function(t,e){return e},preserveOrder:!1,commentPropName:!1,unpairedTags:[],entities:[{regex:new RegExp(\"&\",\"g\"),val:\"&\"},{regex:new RegExp(\">\",\"g\"),val:\">\"},{regex:new RegExp(\"<\",\"g\"),val:\"<\"},{regex:new RegExp(\"'\",\"g\"),val:\"'\"},{regex:new RegExp('\"',\"g\"),val:\""\"}],processEntities:!0,stopNodes:[],oneListGroup:!1};function s(t){this.options=Object.assign({},i,t),!0===this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.ignoreAttributesFn=o(this.options.ignoreAttributes),this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=c),this.processTextOrObjNode=a,this.options.format?(this.indentate=u,this.tagEndChar=\">\\n\",this.newLine=\"\\n\"):(this.indentate=function(){return\"\"},this.tagEndChar=\">\",this.newLine=\"\")}function a(t,e,n,r){const o=this.j2x(t,n+1,r.concat(e));return void 0!==t[this.options.textNodeName]&&1===Object.keys(t).length?this.buildTextValNode(t[this.options.textNodeName],e,o.attrStr,n):this.buildObjectNode(o.val,e,o.attrStr,n)}function u(t){return this.options.indentBy.repeat(t)}function c(t){return!(!t.startsWith(this.options.attributeNamePrefix)||t===this.options.textNodeName)&&t.substr(this.attrPrefixLen)}s.prototype.build=function(t){return this.options.preserveOrder?r(t,this.options):(Array.isArray(t)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(t={[this.options.arrayNodeName]:t}),this.j2x(t,0,[]).val)},s.prototype.j2x=function(t,e,n){let r=\"\",o=\"\";const i=n.join(\".\");for(let s in t)if(Object.prototype.hasOwnProperty.call(t,s))if(void 0===t[s])this.isAttribute(s)&&(o+=\"\");else if(null===t[s])this.isAttribute(s)?o+=\"\":\"?\"===s[0]?o+=this.indentate(e)+\"<\"+s+\"?\"+this.tagEndChar:o+=this.indentate(e)+\"<\"+s+\"/\"+this.tagEndChar;else if(t[s]instanceof Date)o+=this.buildTextValNode(t[s],s,\"\",e);else if(\"object\"!=typeof t[s]){const n=this.isAttribute(s);if(n&&!this.ignoreAttributesFn(n,i))r+=this.buildAttrPairStr(n,\"\"+t[s]);else if(!n)if(s===this.options.textNodeName){let e=this.options.tagValueProcessor(s,\"\"+t[s]);o+=this.replaceEntitiesValue(e)}else o+=this.buildTextValNode(t[s],s,\"\",e)}else if(Array.isArray(t[s])){const r=t[s].length;let i=\"\",a=\"\";for(let u=0;u\"+t+o}},s.prototype.closeTag=function(t){let e=\"\";return-1!==this.options.unpairedTags.indexOf(t)?this.options.suppressUnpairedNode||(e=\"/\"):e=this.options.suppressEmptyNode?\"/\":`>`+this.newLine;if(!1!==this.options.commentPropName&&e===this.options.commentPropName)return this.indentate(r)+`\\x3c!--${t}--\\x3e`+this.newLine;if(\"?\"===e[0])return this.indentate(r)+\"<\"+e+n+\"?\"+this.tagEndChar;{let o=this.options.tagValueProcessor(e,t);return o=this.replaceEntitiesValue(o),\"\"===o?this.indentate(r)+\"<\"+e+n+this.closeTag(e)+this.tagEndChar:this.indentate(r)+\"<\"+e+n+\">\"+o+\"0&&this.options.processEntities)for(let e=0;e{function e(t,s,a,u){let c=\"\",l=!1;for(let h=0;h`,l=!1;continue}if(f===s.commentPropName){c+=u+`\\x3c!--${p[f][0][s.textNodeName]}--\\x3e`,l=!0;continue}if(\"?\"===f[0]){const t=r(p[\":@\"],s),e=\"?xml\"===f?\"\":u;let n=p[f][0][s.textNodeName];n=0!==n.length?\" \"+n:\"\",c+=e+`<${f}${n}${t}?>`,l=!0;continue}let g=u;\"\"!==g&&(g+=s.indentBy);const m=u+`<${f}${r(p[\":@\"],s)}`,y=e(p[f],s,d,g);-1!==s.unpairedTags.indexOf(f)?s.suppressUnpairedNode?c+=m+\">\":c+=m+\"/>\":y&&0!==y.length||!s.suppressEmptyNode?y&&y.endsWith(\">\")?c+=m+`>${y}${u}`:(c+=m+\">\",y&&\"\"!==u&&(y.includes(\"/>\")||y.includes(\"`):c+=m+\"/>\",l=!0}return c}function n(t){const e=Object.keys(t);for(let n=0;n0&&e.processEntities)for(let n=0;n0&&(r=\"\\n\"),e(t,n,\"\",r)}},193:(t,e,n)=>{const r=n(705);function o(t,e){let n=\"\";for(;e\"===t[e]){if(p?\"-\"===t[e-1]&&\"-\"===t[e-2]&&(p=!1,r--):r--,0===r)break}else\"[\"===t[e]?h=!0:f+=t[e];else{if(h&&s(t,e)){let r,i;e+=7,[r,i,e]=o(t,e+1),-1===i.indexOf(\"&\")&&(n[l(r)]={regx:RegExp(`&${r};`,\"g\"),val:i})}else if(h&&a(t,e))e+=8;else if(h&&u(t,e))e+=8;else if(h&&c(t,e))e+=9;else{if(!i)throw new Error(\"Invalid DOCTYPE\");p=!0}r++,f=\"\"}if(0!==r)throw new Error(\"Unclosed DOCTYPE\")}return{entities:n,i:e}}},63:(t,e)=>{const n={preserveOrder:!1,attributeNamePrefix:\"@_\",attributesGroupName:!1,textNodeName:\"#text\",ignoreAttributes:!0,removeNSPrefix:!1,allowBooleanAttributes:!1,parseTagValue:!0,parseAttributeValue:!1,trimValues:!0,cdataPropName:!1,numberParseOptions:{hex:!0,leadingZeros:!0,eNotation:!0},tagValueProcessor:function(t,e){return e},attributeValueProcessor:function(t,e){return e},stopNodes:[],alwaysCreateTextNode:!1,isArray:()=>!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(t,e,n){return t}};e.buildOptions=function(t){return Object.assign({},n,t)},e.defaultOptions=n},299:(t,e,n)=>{const r=n(705),o=n(365),i=n(193),s=n(494),a=n(118);function u(t){const e=Object.keys(t);for(let n=0;n0)){s||(t=this.replaceEntitiesValue(t));const r=this.options.tagValueProcessor(e,t,n,o,i);return null==r?t:typeof r!=typeof t||r!==t?r:this.options.trimValues||t.trim()===t?x(t,this.options.parseTagValue,this.options.numberParseOptions):t}}function l(t){if(this.options.removeNSPrefix){const e=t.split(\":\"),n=\"/\"===t.charAt(0)?\"/\":\"\";if(\"xmlns\"===e[0])return\"\";2===e.length&&(t=n+e[1])}return t}const h=new RegExp(\"([^\\\\s=]+)\\\\s*(=\\\\s*(['\\\"])([\\\\s\\\\S]*?)\\\\3)?\",\"gm\");function p(t,e,n){if(!0!==this.options.ignoreAttributes&&\"string\"==typeof t){const n=r.getAllMatches(t,h),o=n.length,i={};for(let t=0;t\",a,\"Closing Tag is not closed.\");let o=t.substring(a+2,e).trim();if(this.options.removeNSPrefix){const t=o.indexOf(\":\");-1!==t&&(o=o.substr(t+1))}this.options.transformTagName&&(o=this.options.transformTagName(o)),n&&(r=this.saveTextToParentTag(r,n,s));const i=s.substring(s.lastIndexOf(\".\")+1);if(o&&-1!==this.options.unpairedTags.indexOf(o))throw new Error(`Unpaired tag can not be used as closing tag: `);let u=0;i&&-1!==this.options.unpairedTags.indexOf(i)?(u=s.lastIndexOf(\".\",s.lastIndexOf(\".\")-1),this.tagsNodeStack.pop()):u=s.lastIndexOf(\".\"),s=s.substring(0,u),n=this.tagsNodeStack.pop(),r=\"\",a=e}else if(\"?\"===t[a+1]){let e=b(t,a,!1,\"?>\");if(!e)throw new Error(\"Pi Tag is not closed.\");if(r=this.saveTextToParentTag(r,n,s),this.options.ignoreDeclaration&&\"?xml\"===e.tagName||this.options.ignorePiTags);else{const t=new o(e.tagName);t.add(this.options.textNodeName,\"\"),e.tagName!==e.tagExp&&e.attrExpPresent&&(t[\":@\"]=this.buildAttributesMap(e.tagExp,s,e.tagName)),this.addChild(n,t,s)}a=e.closeIndex+1}else if(\"!--\"===t.substr(a+1,3)){const e=v(t,\"--\\x3e\",a+4,\"Comment is not closed.\");if(this.options.commentPropName){const o=t.substring(a+4,e-2);r=this.saveTextToParentTag(r,n,s),n.add(this.options.commentPropName,[{[this.options.textNodeName]:o}])}a=e}else if(\"!D\"===t.substr(a+1,2)){const e=i(t,a);this.docTypeEntities=e.entities,a=e.i}else if(\"![\"===t.substr(a+1,2)){const e=v(t,\"]]>\",a,\"CDATA is not closed.\")-2,o=t.substring(a+9,e);r=this.saveTextToParentTag(r,n,s);let i=this.parseTextData(o,n.tagname,s,!0,!1,!0,!0);null==i&&(i=\"\"),this.options.cdataPropName?n.add(this.options.cdataPropName,[{[this.options.textNodeName]:o}]):n.add(this.options.textNodeName,i),a=e+2}else{let i=b(t,a,this.options.removeNSPrefix),u=i.tagName;const c=i.rawTagName;let l=i.tagExp,h=i.attrExpPresent,p=i.closeIndex;this.options.transformTagName&&(u=this.options.transformTagName(u)),n&&r&&\"!xml\"!==n.tagname&&(r=this.saveTextToParentTag(r,n,s,!1));const f=n;if(f&&-1!==this.options.unpairedTags.indexOf(f.tagname)&&(n=this.tagsNodeStack.pop(),s=s.substring(0,s.lastIndexOf(\".\"))),u!==e.tagname&&(s+=s?\".\"+u:u),this.isItStopNode(this.options.stopNodes,s,u)){let e=\"\";if(l.length>0&&l.lastIndexOf(\"/\")===l.length-1)\"/\"===u[u.length-1]?(u=u.substr(0,u.length-1),s=s.substr(0,s.length-1),l=u):l=l.substr(0,l.length-1),a=i.closeIndex;else if(-1!==this.options.unpairedTags.indexOf(u))a=i.closeIndex;else{const n=this.readStopNodeData(t,c,p+1);if(!n)throw new Error(`Unexpected end of ${c}`);a=n.i,e=n.tagContent}const r=new o(u);u!==l&&h&&(r[\":@\"]=this.buildAttributesMap(l,s,u)),e&&(e=this.parseTextData(e,u,s,!0,h,!0,!0)),s=s.substr(0,s.lastIndexOf(\".\")),r.add(this.options.textNodeName,e),this.addChild(n,r,s)}else{if(l.length>0&&l.lastIndexOf(\"/\")===l.length-1){\"/\"===u[u.length-1]?(u=u.substr(0,u.length-1),s=s.substr(0,s.length-1),l=u):l=l.substr(0,l.length-1),this.options.transformTagName&&(u=this.options.transformTagName(u));const t=new o(u);u!==l&&h&&(t[\":@\"]=this.buildAttributesMap(l,s,u)),this.addChild(n,t,s),s=s.substr(0,s.lastIndexOf(\".\"))}else{const t=new o(u);this.tagsNodeStack.push(n),u!==l&&h&&(t[\":@\"]=this.buildAttributesMap(l,s,u)),this.addChild(n,t,s),n=t}r=\"\",a=p}}else r+=t[a];return e.child};function d(t,e,n){const r=this.options.updateTag(e.tagname,n,e[\":@\"]);!1===r||(\"string\"==typeof r?(e.tagname=r,t.addChild(e)):t.addChild(e))}const g=function(t){if(this.options.processEntities){for(let e in this.docTypeEntities){const n=this.docTypeEntities[e];t=t.replace(n.regx,n.val)}for(let e in this.lastEntities){const n=this.lastEntities[e];t=t.replace(n.regex,n.val)}if(this.options.htmlEntities)for(let e in this.htmlEntities){const n=this.htmlEntities[e];t=t.replace(n.regex,n.val)}t=t.replace(this.ampEntity.regex,this.ampEntity.val)}return t};function m(t,e,n,r){return t&&(void 0===r&&(r=0===Object.keys(e.child).length),void 0!==(t=this.parseTextData(t,e.tagname,n,!1,!!e[\":@\"]&&0!==Object.keys(e[\":@\"]).length,r))&&\"\"!==t&&e.add(this.options.textNodeName,t),t=\"\"),t}function y(t,e,n){const r=\"*.\"+n;for(const n in t){const o=t[n];if(r===o||e===o)return!0}return!1}function v(t,e,n,r){const o=t.indexOf(e,n);if(-1===o)throw new Error(r);return o+e.length-1}function b(t,e,n){const r=function(t,e){let n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:\">\",o=\"\";for(let i=e;i3&&void 0!==arguments[3]?arguments[3]:\">\");if(!r)return;let o=r.data;const i=r.index,s=o.search(/\\s/);let a=o,u=!0;-1!==s&&(a=o.substring(0,s),o=o.substring(s+1).trimStart());const c=a;if(n){const t=a.indexOf(\":\");-1!==t&&(a=a.substr(t+1),u=a!==r.data.substr(t+1))}return{tagName:a,tagExp:o,closeIndex:i,attrExpPresent:u,rawTagName:c}}function w(t,e,n){const r=n;let o=1;for(;n\",n,`${e} is not closed`);if(t.substring(n+2,i).trim()===e&&(o--,0===o))return{tagContent:t.substring(r,n),i};n=i}else if(\"?\"===t[n+1])n=v(t,\"?>\",n+1,\"StopNode is not closed.\");else if(\"!--\"===t.substr(n+1,3))n=v(t,\"--\\x3e\",n+3,\"StopNode is not closed.\");else if(\"![\"===t.substr(n+1,2))n=v(t,\"]]>\",n,\"StopNode is not closed.\")-2;else{const r=b(t,n,\">\");r&&((r&&r.tagName)===e&&\"/\"!==r.tagExp[r.tagExp.length-1]&&o++,n=r.closeIndex)}}function x(t,e,n){if(e&&\"string\"==typeof t){const e=t.trim();return\"true\"===e||\"false\"!==e&&s(t,n)}return r.isExist(t)?t:\"\"}t.exports=class{constructor(t){this.options=t,this.currentNode=null,this.tagsNodeStack=[],this.docTypeEntities={},this.lastEntities={apos:{regex:/&(apos|#39|#x27);/g,val:\"'\"},gt:{regex:/&(gt|#62|#x3E);/g,val:\">\"},lt:{regex:/&(lt|#60|#x3C);/g,val:\"<\"},quot:{regex:/&(quot|#34|#x22);/g,val:'\"'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:\"&\"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:\" \"},cent:{regex:/&(cent|#162);/g,val:\"¢\"},pound:{regex:/&(pound|#163);/g,val:\"£\"},yen:{regex:/&(yen|#165);/g,val:\"¥\"},euro:{regex:/&(euro|#8364);/g,val:\"€\"},copyright:{regex:/&(copy|#169);/g,val:\"©\"},reg:{regex:/&(reg|#174);/g,val:\"®\"},inr:{regex:/&(inr|#8377);/g,val:\"₹\"},num_dec:{regex:/&#([0-9]{1,7});/g,val:(t,e)=>String.fromCharCode(Number.parseInt(e,10))},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:(t,e)=>String.fromCharCode(Number.parseInt(e,16))}},this.addExternalEntities=u,this.parseXml=f,this.parseTextData=c,this.resolveNameSpace=l,this.buildAttributesMap=p,this.isItStopNode=y,this.replaceEntitiesValue=g,this.readStopNodeData=w,this.saveTextToParentTag=m,this.addChild=d,this.ignoreAttributesFn=a(this.options.ignoreAttributes)}}},338:(t,e,n)=>{const{buildOptions:r}=n(63),o=n(299),{prettify:i}=n(728),s=n(31);t.exports=class{constructor(t){this.externalEntities={},this.options=r(t)}parse(t,e){if(\"string\"==typeof t);else{if(!t.toString)throw new Error(\"XML data is accepted in String or Bytes[] form.\");t=t.toString()}if(e){!0===e&&(e={});const n=s.validate(t,e);if(!0!==n)throw Error(`${n.err.msg}:${n.err.line}:${n.err.col}`)}const n=new o(this.options);n.addExternalEntities(this.externalEntities);const r=n.parseXml(t);return this.options.preserveOrder||void 0===r?r:i(r,this.options)}addEntity(t,e){if(-1!==e.indexOf(\"&\"))throw new Error(\"Entity value can't have '&'\");if(-1!==t.indexOf(\"&\")||-1!==t.indexOf(\";\"))throw new Error(\"An entity must be set without '&' and ';'. Eg. use '#xD' for ' '\");if(\"&\"===e)throw new Error(\"An entity with value '&' is not permitted\");this.externalEntities[t]=e}}},728:(t,e)=>{function n(t,e,s){let a;const u={};for(let c=0;c0&&(u[e.textNodeName]=a):void 0!==a&&(u[e.textNodeName]=a),u}function r(t){const e=Object.keys(t);for(let t=0;t{t.exports=class{constructor(t){this.tagname=t,this.child=[],this[\":@\"]={}}add(t,e){\"__proto__\"===t&&(t=\"#__proto__\"),this.child.push({[t]:e})}addChild(t){\"__proto__\"===t.tagname&&(t.tagname=\"#__proto__\"),t[\":@\"]&&Object.keys(t[\":@\"]).length>0?this.child.push({[t.tagname]:t.child,\":@\":t[\":@\"]}):this.child.push({[t.tagname]:t.child})}}},135:t=>{function e(t){return!!t.constructor&&\"function\"==typeof t.constructor.isBuffer&&t.constructor.isBuffer(t)}t.exports=function(t){return null!=t&&(e(t)||function(t){return\"function\"==typeof t.readFloatLE&&\"function\"==typeof t.slice&&e(t.slice(0,0))}(t)||!!t._isBuffer)}},542:(t,e,n)=>{!function(){var e=n(298),r=n(526).utf8,o=n(135),i=n(526).bin,s=function(t,n){t.constructor==String?t=n&&\"binary\"===n.encoding?i.stringToBytes(t):r.stringToBytes(t):o(t)?t=Array.prototype.slice.call(t,0):Array.isArray(t)||t.constructor===Uint8Array||(t=t.toString());for(var a=e.bytesToWords(t),u=8*t.length,c=1732584193,l=-271733879,h=-1732584194,p=271733878,f=0;f>>24)|4278255360&(a[f]<<24|a[f]>>>8);a[u>>>5]|=128<>>9<<4)]=u;var d=s._ff,g=s._gg,m=s._hh,y=s._ii;for(f=0;f>>0,l=l+b>>>0,h=h+w>>>0,p=p+x>>>0}return e.endian([c,l,h,p])};s._ff=function(t,e,n,r,o,i,s){var a=t+(e&n|~e&r)+(o>>>0)+s;return(a<>>32-i)+e},s._gg=function(t,e,n,r,o,i,s){var a=t+(e&r|n&~r)+(o>>>0)+s;return(a<>>32-i)+e},s._hh=function(t,e,n,r,o,i,s){var a=t+(e^n^r)+(o>>>0)+s;return(a<>>32-i)+e},s._ii=function(t,e,n,r,o,i,s){var a=t+(n^(e|~r))+(o>>>0)+s;return(a<>>32-i)+e},s._blocksize=16,s._digestsize=16,t.exports=function(t,n){if(null==t)throw new Error(\"Illegal argument \"+t);var r=e.wordsToBytes(s(t,n));return n&&n.asBytes?r:n&&n.asString?i.bytesToString(r):e.bytesToHex(r)}}()},285:(t,e,n)=>{var r=n(2);t.exports=function(t){return t?(\"{}\"===t.substr(0,2)&&(t=\"\\\\{\\\\}\"+t.substr(2)),m(function(t){return t.split(\"\\\\\\\\\").join(o).split(\"\\\\{\").join(i).split(\"\\\\}\").join(s).split(\"\\\\,\").join(a).split(\"\\\\.\").join(u)}(t),!0).map(l)):[]};var o=\"\\0SLASH\"+Math.random()+\"\\0\",i=\"\\0OPEN\"+Math.random()+\"\\0\",s=\"\\0CLOSE\"+Math.random()+\"\\0\",a=\"\\0COMMA\"+Math.random()+\"\\0\",u=\"\\0PERIOD\"+Math.random()+\"\\0\";function c(t){return parseInt(t,10)==t?parseInt(t,10):t.charCodeAt(0)}function l(t){return t.split(o).join(\"\\\\\").split(i).join(\"{\").split(s).join(\"}\").split(a).join(\",\").split(u).join(\".\")}function h(t){if(!t)return[\"\"];var e=[],n=r(\"{\",\"}\",t);if(!n)return t.split(\",\");var o=n.pre,i=n.body,s=n.post,a=o.split(\",\");a[a.length-1]+=\"{\"+i+\"}\";var u=h(s);return s.length&&(a[a.length-1]+=u.shift(),a.push.apply(a,u)),e.push.apply(e,a),e}function p(t){return\"{\"+t+\"}\"}function f(t){return/^-?0\\d/.test(t)}function d(t,e){return t<=e}function g(t,e){return t>=e}function m(t,e){var n=[],o=r(\"{\",\"}\",t);if(!o)return[t];var i=o.pre,a=o.post.length?m(o.post,!1):[\"\"];if(/\\$$/.test(o.pre))for(var u=0;u=0;if(!x&&!N)return o.post.match(/,.*\\}/)?m(t=o.pre+\"{\"+o.body+s+o.post):[t];if(x)y=o.body.split(/\\.\\./);else if(1===(y=h(o.body)).length&&1===(y=m(y[0],!1).map(p)).length)return a.map((function(t){return o.pre+y[0]+t}));if(x){var A=c(y[0]),P=c(y[1]),O=Math.max(y[0].length,y[1].length),E=3==y.length?Math.abs(c(y[2])):1,T=d;P0){var I=new Array(C+1).join(\"0\");$=S<0?\"-\"+I+$.slice(1):I+$}}v.push($)}}else{v=[];for(var k=0;k{function e(t){return e=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},e(t)}function n(t){var e=\"function\"==typeof Map?new Map:void 0;return n=function(t){if(null===t||(n=t,-1===Function.toString.call(n).indexOf(\"[native code]\")))return t;var n;if(\"function\"!=typeof t)throw new TypeError(\"Super expression must either be null or a function\");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,s)}function s(){return r(t,arguments,i(this).constructor)}return s.prototype=Object.create(t.prototype,{constructor:{value:s,enumerable:!1,writable:!0,configurable:!0}}),o(s,t)},n(t)}function r(t,e,n){return r=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}()?Reflect.construct:function(t,e,n){var r=[null];r.push.apply(r,e);var i=new(Function.bind.apply(t,r));return n&&o(i,n.prototype),i},r.apply(null,arguments)}function o(t,e){return o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},o(t,e)}function i(t){return i=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},i(t)}var s=function(t){function n(t){var r;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,n),(r=function(t,n){return!n||\"object\"!==e(n)&&\"function\"!=typeof n?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):n}(this,i(n).call(this,t))).name=\"ObjectPrototypeMutationError\",r}return function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(n,t),n}(n(Error));function a(t,n){for(var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},o=n.split(\".\"),i=o.length,s=function(e){var n=o[e];if(!t)return{v:void 0};if(\"+\"===n){if(Array.isArray(t))return{v:t.map((function(n,i){var s=o.slice(e+1);return s.length>0?a(n,s.join(\".\"),r):r(t,i,o,e)}))};var i=o.slice(0,e).join(\".\");throw new Error(\"Object at wildcard (\".concat(i,\") is not an array\"))}t=r(t,n,o,e)},u=0;u2&&void 0!==arguments[2]?arguments[2]:{};if(\"object\"!=e(t)||null===t)return!1;if(void 0===n)return!1;if(\"number\"==typeof n)return n in t;try{var o=!1;return a(t,n,(function(t,e,n,i){if(!u(n,i))return t&&t[e];o=r.own?t.hasOwnProperty(e):e in t})),o}catch(t){return!1}},hasOwn:function(t,e,n){return this.has(t,e,n||{own:!0})},isIn:function(t,n,r){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(\"object\"!=e(t)||null===t)return!1;if(void 0===n)return!1;try{var i=!1,s=!1;return a(t,n,(function(t,n,o,a){return i=i||t===r||!!t&&t[n]===r,s=u(o,a)&&\"object\"===e(t)&&n in t,t&&t[n]})),o.validPath?i&&s:i}catch(t){return!1}},ObjectPrototypeMutationError:s}},47:(t,e,n)=>{var r=n(410),o=function(t){return\"string\"==typeof t};function i(t,e){for(var n=[],r=0;r=-1&&!e;n--){var r=n>=0?arguments[n]:process.cwd();if(!o(r))throw new TypeError(\"Arguments to path.resolve must be strings\");r&&(t=r+\"/\"+t,e=\"/\"===r.charAt(0))}return(e?\"/\":\"\")+(t=i(t.split(\"/\"),!e).join(\"/\"))||\".\"},a.normalize=function(t){var e=a.isAbsolute(t),n=\"/\"===t.substr(-1);return(t=i(t.split(\"/\"),!e).join(\"/\"))||e||(t=\".\"),t&&n&&(t+=\"/\"),(e?\"/\":\"\")+t},a.isAbsolute=function(t){return\"/\"===t.charAt(0)},a.join=function(){for(var t=\"\",e=0;e=0&&\"\"===t[n];n--);return e>n?[]:t.slice(e,n+1)}t=a.resolve(t).substr(1),e=a.resolve(e).substr(1);for(var r=n(t.split(\"/\")),o=n(e.split(\"/\")),i=Math.min(r.length,o.length),s=i,u=0;u{var n=Object.prototype.hasOwnProperty;function r(t){try{return decodeURIComponent(t.replace(/\\+/g,\" \"))}catch(t){return null}}function o(t){try{return encodeURIComponent(t)}catch(t){return null}}e.stringify=function(t,e){e=e||\"\";var r,i,s=[];for(i in\"string\"!=typeof e&&(e=\"?\"),t)if(n.call(t,i)){if((r=t[i])||null!=r&&!isNaN(r)||(r=\"\"),i=o(i),r=o(r),null===i||null===r)continue;s.push(i+\"=\"+r)}return s.length?e+s.join(\"&\"):\"\"},e.parse=function(t){for(var e,n=/([^=?#&]+)=?([^&]*)/g,o={};e=n.exec(t);){var i=r(e[1]),s=r(e[2]);null===i||null===s||i in o||(o[i]=s)}return o}},670:t=>{t.exports=function(t,e){if(e=e.split(\":\")[0],!(t=+t))return!1;switch(e){case\"http\":case\"ws\":return 80!==t;case\"https\":case\"wss\":return 443!==t;case\"ftp\":return 21!==t;case\"gopher\":return 70!==t;case\"file\":return!1}return 0!==t}},494:t=>{const e=/^[-+]?0x[a-fA-F0-9]+$/,n=/^([\\-\\+])?(0*)(\\.[0-9]+([eE]\\-?[0-9]+)?|[0-9]+(\\.[0-9]+([eE]\\-?[0-9]+)?)?)$/;!Number.parseInt&&window.parseInt&&(Number.parseInt=window.parseInt),!Number.parseFloat&&window.parseFloat&&(Number.parseFloat=window.parseFloat);const r={hex:!0,leadingZeros:!0,decimalPoint:\".\",eNotation:!0};t.exports=function(t){let o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(o=Object.assign({},r,o),!t||\"string\"!=typeof t)return t;let i=t.trim();if(void 0!==o.skipLike&&o.skipLike.test(i))return t;if(o.hex&&e.test(i))return Number.parseInt(i,16);{const e=n.exec(i);if(e){const n=e[1],r=e[2];let a=(s=e[3])&&-1!==s.indexOf(\".\")?(\".\"===(s=s.replace(/0+$/,\"\"))?s=\"0\":\".\"===s[0]?s=\"0\"+s:\".\"===s[s.length-1]&&(s=s.substr(0,s.length-1)),s):s;const u=e[4]||e[6];if(!o.leadingZeros&&r.length>0&&n&&\".\"!==i[2])return t;if(!o.leadingZeros&&r.length>0&&!n&&\".\"!==i[1])return t;{const e=Number(i),s=\"\"+e;return-1!==s.search(/[eE]/)||u?o.eNotation?e:t:-1!==i.indexOf(\".\")?\"0\"===s&&\"\"===a||s===a||n&&s===\"-\"+a?e:t:r?a===s||n+a===s?e:t:i===s||i===n+s?e:t}}return t}var s}},737:(t,e,n)=>{var r=n(670),o=n(647),i=/^[\\x00-\\x20\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff]+/,s=/[\\n\\r\\t]/g,a=/^[A-Za-z][A-Za-z0-9+-.]*:\\/\\//,u=/:\\d+$/,c=/^([a-z][a-z0-9.+-]*:)?(\\/\\/)?([\\\\/]+)?([\\S\\s]*)/i,l=/^[a-zA-Z]:/;function h(t){return(t||\"\").toString().replace(i,\"\")}var p=[[\"#\",\"hash\"],[\"?\",\"query\"],function(t,e){return g(e.protocol)?t.replace(/\\\\/g,\"/\"):t},[\"/\",\"pathname\"],[\"@\",\"auth\",1],[NaN,\"host\",void 0,1,1],[/:(\\d*)$/,\"port\",void 0,1],[NaN,\"hostname\",void 0,1,1]],f={hash:1,query:1};function d(t){var e,n=(\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:{}).location||{},r={},o=typeof(t=t||n);if(\"blob:\"===t.protocol)r=new y(unescape(t.pathname),{});else if(\"string\"===o)for(e in r=new y(t,{}),f)delete r[e];else if(\"object\"===o){for(e in t)e in f||(r[e]=t[e]);void 0===r.slashes&&(r.slashes=a.test(t.href))}return r}function g(t){return\"file:\"===t||\"ftp:\"===t||\"http:\"===t||\"https:\"===t||\"ws:\"===t||\"wss:\"===t}function m(t,e){t=(t=h(t)).replace(s,\"\"),e=e||{};var n,r=c.exec(t),o=r[1]?r[1].toLowerCase():\"\",i=!!r[2],a=!!r[3],u=0;return i?a?(n=r[2]+r[3]+r[4],u=r[2].length+r[3].length):(n=r[2]+r[4],u=r[2].length):a?(n=r[3]+r[4],u=r[3].length):n=r[4],\"file:\"===o?u>=2&&(n=n.slice(2)):g(o)?n=r[4]:o?i&&(n=n.slice(2)):u>=2&&g(e.protocol)&&(n=r[4]),{protocol:o,slashes:i||g(o),slashesCount:u,rest:n}}function y(t,e,n){if(t=(t=h(t)).replace(s,\"\"),!(this instanceof y))return new y(t,e,n);var i,a,u,c,f,v,b=p.slice(),w=typeof e,x=this,N=0;for(\"object\"!==w&&\"string\"!==w&&(n=e,e=null),n&&\"function\"!=typeof n&&(n=o.parse),i=!(a=m(t||\"\",e=d(e))).protocol&&!a.slashes,x.slashes=a.slashes||i&&e.slashes,x.protocol=a.protocol||e.protocol||\"\",t=a.rest,(\"file:\"===a.protocol&&(2!==a.slashesCount||l.test(t))||!a.slashes&&(a.protocol||a.slashesCount<2||!g(x.protocol)))&&(b[3]=[/(.*)/,\"pathname\"]);N{},388:()=>{},805:()=>{},345:()=>{},800:()=>{}},e={};function n(r){var o=e[r];if(void 0!==o)return o.exports;var i=e[r]={id:r,loaded:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.loaded=!0,i.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n.nmd=t=>(t.paths=[],t.children||(t.children=[]),t);var r={};n.d(r,{hT:()=>C,O4:()=>I,Kd:()=>S,YK:()=>$,UU:()=>en,Gu:()=>F,ky:()=>oe,h4:()=>ne,ch:()=>re,hq:()=>Xt,i5:()=>ie});var o=n(737),i=n.n(o);function s(t){if(!a(t))throw new Error(\"Parameter was not an error\")}function a(t){return!!t&&\"object\"==typeof t&&\"[object Error]\"===(e=t,Object.prototype.toString.call(e))||t instanceof Error;var e}class u extends Error{constructor(t,e){const n=[...arguments],{options:r,shortMessage:o}=function(t){let e,n=\"\";if(0===t.length)e={};else if(a(t[0]))e={cause:t[0]},n=t.slice(1).join(\" \")||\"\";else if(t[0]&&\"object\"==typeof t[0])e=Object.assign({},t[0]),n=t.slice(1).join(\" \")||\"\";else{if(\"string\"!=typeof t[0])throw new Error(\"Invalid arguments passed to Layerr\");e={},n=n=t.join(\" \")||\"\"}return{options:e,shortMessage:n}}(n);let i=o;if(r.cause&&(i=`${i}: ${r.cause.message}`),super(i),this.message=i,r.name&&\"string\"==typeof r.name?this.name=r.name:this.name=\"Layerr\",r.cause&&Object.defineProperty(this,\"_cause\",{value:r.cause}),Object.defineProperty(this,\"_info\",{value:{}}),r.info&&\"object\"==typeof r.info&&Object.assign(this._info,r.info),Error.captureStackTrace){const t=r.constructorOpt||this.constructor;Error.captureStackTrace(this,t)}}static cause(t){return s(t),t._cause&&a(t._cause)?t._cause:null}static fullStack(t){s(t);const e=u.cause(t);return e?`${t.stack}\\ncaused by: ${u.fullStack(e)}`:t.stack??\"\"}static info(t){s(t);const e={},n=u.cause(t);return n&&Object.assign(e,u.info(n)),t._info&&Object.assign(e,t._info),e}toString(){let t=this.name||this.constructor.name||this.constructor.prototype.name;return this.message&&(t=`${t}: ${this.message}`),t}}var c=n(47),l=n.n(c);const h=\"__PATH_SEPARATOR_POSIX__\",p=\"__PATH_SEPARATOR_WINDOWS__\";function f(t){try{const e=t.replace(/\\//g,h).replace(/\\\\\\\\/g,p);return encodeURIComponent(e).split(p).join(\"\\\\\\\\\").split(h).join(\"/\")}catch(t){throw new u(t,\"Failed encoding path\")}}function d(t){return t.startsWith(\"/\")?t:\"/\"+t}function g(t){let e=t;return\"/\"!==e[0]&&(e=\"/\"+e),/^.+\\/$/.test(e)&&(e=e.substr(0,e.length-1)),e}function m(t){let e=new(i())(t).pathname;return e.length<=0&&(e=\"/\"),g(e)}function y(){for(var t=arguments.length,e=new Array(t),n=0;n1){var n=t.shift();t[0]=n+t[0]}t[0].match(/^file:\\/\\/\\//)?t[0]=t[0].replace(/^([^/:]+):\\/*/,\"$1:///\"):t[0]=t[0].replace(/^([^/:]+):\\/*/,\"$1://\");for(var r=0;r0&&(o=o.replace(/^[\\/]+/,\"\")),o=r0?\"?\":\"\")+s.join(\"&\")}(\"object\"==typeof arguments[0]?arguments[0]:[].slice.call(arguments))}(e.reduce(((t,e,n)=>((0===n||\"/\"!==e||\"/\"===e&&\"/\"!==t[t.length-1])&&t.push(e),t)),[]))}var v=n(542),b=n.n(v);const w=\"abcdef0123456789\";function x(t,e){const n=t.url.replace(\"//\",\"\"),r=-1==n.indexOf(\"/\")?\"/\":n.slice(n.indexOf(\"/\")),o=t.method?t.method.toUpperCase():\"GET\",i=!!/(^|,)\\s*auth\\s*($|,)/.test(e.qop)&&\"auth\",s=`00000000${e.nc}`.slice(-8),a=function(t,e,n,r,o,i,s){const a=s||b()(`${e}:${n}:${r}`);return t&&\"md5-sess\"===t.toLowerCase()?b()(`${a}:${o}:${i}`):a}(e.algorithm,e.username,e.realm,e.password,e.nonce,e.cnonce,e.ha1),u=b()(`${o}:${r}`),c=i?b()(`${a}:${e.nonce}:${s}:${e.cnonce}:${i}:${u}`):b()(`${a}:${e.nonce}:${u}`),l={username:e.username,realm:e.realm,nonce:e.nonce,uri:r,qop:i,response:c,nc:s,cnonce:e.cnonce,algorithm:e.algorithm,opaque:e.opaque},h=[];for(const t in l)l[t]&&(\"qop\"===t||\"nc\"===t||\"algorithm\"===t?h.push(`${t}=${l[t]}`):h.push(`${t}=\"${l[t]}\"`));return`Digest ${h.join(\", \")}`}function N(t){return\"digest\"===(t.headers&&t.headers.get(\"www-authenticate\")||\"\").split(/\\s/)[0].toLowerCase()}var A=n(101),P=n.n(A);function O(t){return P().decode(t)}function E(t,e){var n;return`Basic ${n=`${t}:${e}`,P().encode(n)}`}const T=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:\"undefined\"!=typeof window?window:globalThis,j=T.fetch.bind(T),S=(T.Headers,T.Request),$=T.Response;let C=function(t){return t.Auto=\"auto\",t.Digest=\"digest\",t.None=\"none\",t.Password=\"password\",t.Token=\"token\",t}({}),I=function(t){return t.DataTypeNoLength=\"data-type-no-length\",t.InvalidAuthType=\"invalid-auth-type\",t.InvalidOutputFormat=\"invalid-output-format\",t.LinkUnsupportedAuthType=\"link-unsupported-auth\",t.InvalidUpdateRange=\"invalid-update-range\",t.NotSupported=\"not-supported\",t}({});function k(t,e,n,r,o){switch(t.authType){case C.Auto:e&&n&&(t.headers.Authorization=E(e,n));break;case C.Digest:t.digest=function(t,e,n){return{username:t,password:e,ha1:n,nc:0,algorithm:\"md5\",hasDigestAuth:!1}}(e,n,o);break;case C.None:break;case C.Password:t.headers.Authorization=E(e,n);break;case C.Token:t.headers.Authorization=`${(i=r).token_type} ${i.access_token}`;break;default:throw new u({info:{code:I.InvalidAuthType}},`Invalid auth type: ${t.authType}`)}var i}n(345),n(800);const R=\"@@HOTPATCHER\",L=()=>{};function _(t){return{original:t,methods:[t],final:!1}}class M{constructor(){this._configuration={registry:{},getEmptyAction:\"null\"},this.__type__=R}get configuration(){return this._configuration}get getEmptyAction(){return this.configuration.getEmptyAction}set getEmptyAction(t){this.configuration.getEmptyAction=t}control(t){let e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!t||t.__type__!==R)throw new Error(\"Failed taking control of target HotPatcher instance: Invalid type or object\");return Object.keys(t.configuration.registry).forEach((n=>{this.configuration.registry.hasOwnProperty(n)?e&&(this.configuration.registry[n]=Object.assign({},t.configuration.registry[n])):this.configuration.registry[n]=Object.assign({},t.configuration.registry[n])})),t._configuration=this.configuration,this}execute(t){const e=this.get(t)||L;for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o0;)o=[e.shift().apply(i,o)];return o[0]}}(...e.methods)}isPatched(t){return!!this.configuration.registry[t]}patch(t,e){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const{chain:r=!1}=n;if(this.configuration.registry[t]&&this.configuration.registry[t].final)throw new Error(`Failed patching '${t}': Method marked as being final`);if(\"function\"!=typeof e)throw new Error(`Failed patching '${t}': Provided method is not a function`);if(r)this.configuration.registry[t]?this.configuration.registry[t].methods.push(e):this.configuration.registry[t]=_(e);else if(this.isPatched(t)){const{original:n}=this.configuration.registry[t];this.configuration.registry[t]=Object.assign(_(e),{original:n})}else this.configuration.registry[t]=_(e);return this}patchInline(t,e){this.isPatched(t)||this.patch(t,e);for(var n=arguments.length,r=new Array(n>2?n-2:0),o=2;o1?e-1:0),r=1;r{this.patch(t,e,{chain:!0})})),this}restore(t){if(!this.isPatched(t))throw new Error(`Failed restoring method: No method present for key: ${t}`);if(\"function\"!=typeof this.configuration.registry[t].original)throw new Error(`Failed restoring method: Original method not found or of invalid type for key: ${t}`);return this.configuration.registry[t].methods=[this.configuration.registry[t].original],this}setFinal(t){if(!this.configuration.registry.hasOwnProperty(t))throw new Error(`Failed marking '${t}' as final: No method found for key`);return this.configuration.registry[t].final=!0,this}}let U=null;function F(){return U||(U=new M),U}function D(t){return function(t){if(\"object\"!=typeof t||null===t||\"[object Object]\"!=Object.prototype.toString.call(t))return!1;if(null===Object.getPrototypeOf(t))return!0;let e=t;for(;null!==Object.getPrototypeOf(e);)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(t)===e}(t)?Object.assign({},t):Object.setPrototypeOf(Object.assign({},t),Object.getPrototypeOf(t))}function B(){for(var t=arguments.length,e=new Array(t),n=0;n0;){const t=o.shift();r=r?V(r,t):D(t)}return r}function V(t,e){const n=D(t);return Object.keys(e).forEach((t=>{n.hasOwnProperty(t)?Array.isArray(e[t])?n[t]=Array.isArray(n[t])?[...n[t],...e[t]]:[...e[t]]:\"object\"==typeof e[t]&&e[t]?n[t]=\"object\"==typeof n[t]&&n[t]?V(n[t],e[t]):D(e[t]):n[t]=e[t]:n[t]=e[t]})),n}function W(t){const e={};for(const n of t.keys())e[n]=t.get(n);return e}function z(){for(var t=arguments.length,e=new Array(t),n=0;n(Object.keys(e).forEach((n=>{const o=n.toLowerCase();r.hasOwnProperty(o)?t[r[o]]=e[n]:(r[o]=n,t[n]=e[n])})),t)),{})}n(805);const G=\"function\"==typeof ArrayBuffer,{toString:q}=Object.prototype;function H(t){return G&&(t instanceof ArrayBuffer||\"[object ArrayBuffer]\"===q.call(t))}function X(t){return null!=t&&null!=t.constructor&&\"function\"==typeof t.constructor.isBuffer&&t.constructor.isBuffer(t)}function Z(t){return function(){for(var e=[],n=0;ne.patchInline(\"fetch\",j,t.url,function(t){let e={};const n={method:t.method};if(t.headers&&(e=z(e,t.headers)),void 0!==t.data){const[r,o]=function(t){if(\"string\"==typeof t)return[t,{}];if(X(t))return[t,{}];if(H(t))return[t,{}];if(t&&\"object\"==typeof t)return[JSON.stringify(t),{\"content-type\":\"application/json\"}];throw new Error(\"Unable to convert request body: Unexpected body type: \"+typeof t)}(t.data);n.body=r,e=z(e,o)}return t.signal&&(n.signal=t.signal),t.withCredentials&&(n.credentials=\"include\"),n.headers=e,n}(t))),t)}var nt=n(285);const rt=t=>{if(\"string\"!=typeof t)throw new TypeError(\"invalid pattern\");if(t.length>65536)throw new TypeError(\"pattern is too long\")},ot={\"[:alnum:]\":[\"\\\\p{L}\\\\p{Nl}\\\\p{Nd}\",!0],\"[:alpha:]\":[\"\\\\p{L}\\\\p{Nl}\",!0],\"[:ascii:]\":[\"\\\\x00-\\\\x7f\",!1],\"[:blank:]\":[\"\\\\p{Zs}\\\\t\",!0],\"[:cntrl:]\":[\"\\\\p{Cc}\",!0],\"[:digit:]\":[\"\\\\p{Nd}\",!0],\"[:graph:]\":[\"\\\\p{Z}\\\\p{C}\",!0,!0],\"[:lower:]\":[\"\\\\p{Ll}\",!0],\"[:print:]\":[\"\\\\p{C}\",!0],\"[:punct:]\":[\"\\\\p{P}\",!0],\"[:space:]\":[\"\\\\p{Z}\\\\t\\\\r\\\\n\\\\v\\\\f\",!0],\"[:upper:]\":[\"\\\\p{Lu}\",!0],\"[:word:]\":[\"\\\\p{L}\\\\p{Nl}\\\\p{Nd}\\\\p{Pc}\",!0],\"[:xdigit:]\":[\"A-Fa-f0-9\",!1]},it=t=>t.replace(/[[\\]\\\\-]/g,\"\\\\$&\"),st=t=>t.join(\"\"),at=(t,e)=>{const n=e;if(\"[\"!==t.charAt(n))throw new Error(\"not in a brace expression\");const r=[],o=[];let i=n+1,s=!1,a=!1,u=!1,c=!1,l=n,h=\"\";t:for(;ih?r.push(it(h)+\"-\"+it(e)):e===h&&r.push(it(e)),h=\"\",i++):t.startsWith(\"-]\",i+1)?(r.push(it(e+\"-\")),i+=2):t.startsWith(\"-\",i+1)?(h=e,i+=2):(r.push(it(e)),i++)}else u=!0,i++}else c=!0,i++}if(l1&&void 0!==arguments[1]?arguments[1]:{};return e?t.replace(/\\[([^\\/\\\\])\\]/g,\"$1\"):t.replace(/((?!\\\\).|^)\\[([^\\/\\\\])\\]/g,\"$1$2\").replace(/\\\\([^\\/])/g,\"$1\")},ct=new Set([\"!\",\"?\",\"+\",\"*\",\"@\"]),lt=t=>ct.has(t),ht=\"(?!\\\\.)\",pt=new Set([\"[\",\".\"]),ft=new Set([\"..\",\".\"]),dt=new Set(\"().*{}+?[]^$\\\\!\"),gt=\"[^/]\",mt=gt+\"*?\",yt=gt+\"+?\";class vt{type;#t;#e;#n=!1;#r=[];#o;#i;#s;#a=!1;#u;#c;#l=!1;constructor(t,e){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.type=t,t&&(this.#e=!0),this.#o=e,this.#t=this.#o?this.#o.#t:this,this.#u=this.#t===this?n:this.#t.#u,this.#s=this.#t===this?[]:this.#t.#s,\"!\"!==t||this.#t.#a||this.#s.push(this),this.#i=this.#o?this.#o.#r.length:0}get hasMagic(){if(void 0!==this.#e)return this.#e;for(const t of this.#r)if(\"string\"!=typeof t&&(t.type||t.hasMagic))return this.#e=!0;return this.#e}toString(){return void 0!==this.#c?this.#c:this.type?this.#c=this.type+\"(\"+this.#r.map((t=>String(t))).join(\"|\")+\")\":this.#c=this.#r.map((t=>String(t))).join(\"\")}#h(){if(this!==this.#t)throw new Error(\"should only call on root\");if(this.#a)return this;let t;for(this.toString(),this.#a=!0;t=this.#s.pop();){if(\"!\"!==t.type)continue;let e=t,n=e.#o;for(;n;){for(let r=e.#i+1;!n.type&&r\"string\"==typeof t?t:t.toJSON())):[this.type,...this.#r.map((t=>t.toJSON()))];return this.isStart()&&!this.type&&t.unshift([]),this.isEnd()&&(this===this.#t||this.#t.#a&&\"!\"===this.#o?.type)&&t.push({}),t}isStart(){if(this.#t===this)return!0;if(!this.#o?.isStart())return!1;if(0===this.#i)return!0;const t=this.#o;for(let e=0;e1&&void 0!==arguments[1]?arguments[1]:{};const n=new vt(null,void 0,e);return vt.#p(t,n,0,e),n}toMMPattern(){if(this!==this.#t)return this.#t.toMMPattern();const t=this.toString(),[e,n,r,o]=this.toRegExpSource();if(!(r||this.#e||this.#u.nocase&&!this.#u.nocaseMagicOnly&&t.toUpperCase()!==t.toLowerCase()))return n;const i=(this.#u.nocase?\"i\":\"\")+(o?\"u\":\"\");return Object.assign(new RegExp(`^${e}$`,i),{_src:e,_glob:t})}get options(){return this.#u}toRegExpSource(t){const e=t??!!this.#u.dot;if(this.#t===this&&this.#h(),!this.type){const n=this.isStart()&&this.isEnd(),r=this.#r.map((e=>{const[r,o,i,s]=\"string\"==typeof e?vt.#f(e,this.#e,n):e.toRegExpSource(t);return this.#e=this.#e||i,this.#n=this.#n||s,r})).join(\"\");let o=\"\";if(this.isStart()&&\"string\"==typeof this.#r[0]&&(1!==this.#r.length||!ft.has(this.#r[0]))){const n=pt,i=e&&n.has(r.charAt(0))||r.startsWith(\"\\\\.\")&&n.has(r.charAt(2))||r.startsWith(\"\\\\.\\\\.\")&&n.has(r.charAt(4)),s=!e&&!t&&n.has(r.charAt(0));o=i?\"(?!(?:^|/)\\\\.\\\\.?(?:$|/))\":s?ht:\"\"}let i=\"\";return this.isEnd()&&this.#t.#a&&\"!\"===this.#o?.type&&(i=\"(?:$|\\\\/)\"),[o+r+i,ut(r),this.#e=!!this.#e,this.#n]}const n=\"*\"===this.type||\"+\"===this.type,r=\"!\"===this.type?\"(?:(?!(?:\":\"(?:\";let o=this.#d(e);if(this.isStart()&&this.isEnd()&&!o&&\"!\"!==this.type){const t=this.toString();return this.#r=[t],this.type=null,this.#e=void 0,[t,ut(this.toString()),!1,!1]}let i=!n||t||e?\"\":this.#d(!0);i===o&&(i=\"\"),i&&(o=`(?:${o})(?:${i})*?`);let s=\"\";return s=\"!\"===this.type&&this.#l?(this.isStart()&&!e?ht:\"\")+yt:r+o+(\"!\"===this.type?\"))\"+(!this.isStart()||e||t?\"\":ht)+mt+\")\":\"@\"===this.type?\")\":\"?\"===this.type?\")?\":\"+\"===this.type&&i?\")\":\"*\"===this.type&&i?\")?\":`)${this.type}`),[s,ut(o),this.#e=!!this.#e,this.#n]}#d(t){return this.#r.map((e=>{if(\"string\"==typeof e)throw new Error(\"string type in extglob ast??\");const[n,r,o,i]=e.toRegExpSource(t);return this.#n=this.#n||i,n})).filter((t=>!(this.isStart()&&this.isEnd()&&!t))).join(\"|\")}static#f(t,e){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=!1,o=\"\",i=!1;for(let s=0;s2&&void 0!==arguments[2]?arguments[2]:{};return rt(e),!(!n.nocomment&&\"#\"===e.charAt(0))&&new Gt(e,n).match(t)},wt=/^\\*+([^+@!?\\*\\[\\(]*)$/,xt=t=>e=>!e.startsWith(\".\")&&e.endsWith(t),Nt=t=>e=>e.endsWith(t),At=t=>(t=t.toLowerCase(),e=>!e.startsWith(\".\")&&e.toLowerCase().endsWith(t)),Pt=t=>(t=t.toLowerCase(),e=>e.toLowerCase().endsWith(t)),Ot=/^\\*+\\.\\*+$/,Et=t=>!t.startsWith(\".\")&&t.includes(\".\"),Tt=t=>\".\"!==t&&\"..\"!==t&&t.includes(\".\"),jt=/^\\.\\*+$/,St=t=>\".\"!==t&&\"..\"!==t&&t.startsWith(\".\"),$t=/^\\*+$/,Ct=t=>0!==t.length&&!t.startsWith(\".\"),It=t=>0!==t.length&&\".\"!==t&&\"..\"!==t,kt=/^\\?+([^+@!?\\*\\[\\(]*)?$/,Rt=t=>{let[e,n=\"\"]=t;const r=Ut([e]);return n?(n=n.toLowerCase(),t=>r(t)&&t.toLowerCase().endsWith(n)):r},Lt=t=>{let[e,n=\"\"]=t;const r=Ft([e]);return n?(n=n.toLowerCase(),t=>r(t)&&t.toLowerCase().endsWith(n)):r},_t=t=>{let[e,n=\"\"]=t;const r=Ft([e]);return n?t=>r(t)&&t.endsWith(n):r},Mt=t=>{let[e,n=\"\"]=t;const r=Ut([e]);return n?t=>r(t)&&t.endsWith(n):r},Ut=t=>{let[e]=t;const n=e.length;return t=>t.length===n&&!t.startsWith(\".\")},Ft=t=>{let[e]=t;const n=e.length;return t=>t.length===n&&\".\"!==t&&\"..\"!==t},Dt=\"object\"==typeof process&&process?\"object\"==typeof process.env&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:\"posix\";bt.sep=\"win32\"===Dt?\"\\\\\":\"/\";const Bt=Symbol(\"globstar **\");bt.GLOBSTAR=Bt,bt.filter=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return n=>bt(n,t,e)};const Vt=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object.assign({},t,e)};bt.defaults=t=>{if(!t||\"object\"!=typeof t||!Object.keys(t).length)return bt;const e=bt;return Object.assign((function(n,r){return e(n,r,Vt(t,arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}))}),{Minimatch:class extends e.Minimatch{constructor(e){super(e,Vt(t,arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}))}static defaults(n){return e.defaults(Vt(t,n)).Minimatch}},AST:class extends e.AST{constructor(e,n){super(e,n,Vt(t,arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}))}static fromGlob(n){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.AST.fromGlob(n,Vt(t,r))}},unescape:function(n){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.unescape(n,Vt(t,r))},escape:function(n){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.escape(n,Vt(t,r))},filter:function(n){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.filter(n,Vt(t,r))},defaults:n=>e.defaults(Vt(t,n)),makeRe:function(n){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.makeRe(n,Vt(t,r))},braceExpand:function(n){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.braceExpand(n,Vt(t,r))},match:function(n,r){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return e.match(n,r,Vt(t,o))},sep:e.sep,GLOBSTAR:Bt})};const Wt=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return rt(t),e.nobrace||!/\\{(?:(?!\\{).)*\\}/.test(t)?[t]:nt(t)};bt.braceExpand=Wt,bt.makeRe=function(t){return new Gt(t,arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).makeRe()},bt.match=function(t,e){const n=new Gt(e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:{});return t=t.filter((t=>n.match(t))),n.options.nonull&&!t.length&&t.push(e),t};const zt=/[?*]|[+@!]\\(.*?\\)|\\[|\\]/;class Gt{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;regexp;constructor(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};rt(t),e=e||{},this.options=e,this.pattern=t,this.platform=e.platform||Dt,this.isWindows=\"win32\"===this.platform,this.windowsPathsNoEscape=!!e.windowsPathsNoEscape||!1===e.allowWindowsEscape,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\\\/g,\"/\")),this.preserveMultipleSlashes=!!e.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!e.nonegate,this.comment=!1,this.empty=!1,this.partial=!!e.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=void 0!==e.windowsNoMagicRoot?e.windowsNoMagicRoot:!(!this.isWindows||!this.nocase),this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(const t of this.set)for(const e of t)if(\"string\"!=typeof e)return!0;return!1}debug(){}make(){const t=this.pattern,e=this.options;if(!e.nocomment&&\"#\"===t.charAt(0))return void(this.comment=!0);if(!t)return void(this.empty=!0);this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],e.debug&&(this.debug=function(){return console.error(...arguments)}),this.debug(this.pattern,this.globSet);const n=this.globSet.map((t=>this.slashSplit(t)));this.globParts=this.preprocess(n),this.debug(this.pattern,this.globParts);let r=this.globParts.map(((t,e,n)=>{if(this.isWindows&&this.windowsNoMagicRoot){const e=!(\"\"!==t[0]||\"\"!==t[1]||\"?\"!==t[2]&&zt.test(t[2])||zt.test(t[3])),n=/^[a-z]:/i.test(t[0]);if(e)return[...t.slice(0,4),...t.slice(4).map((t=>this.parse(t)))];if(n)return[t[0],...t.slice(1).map((t=>this.parse(t)))]}return t.map((t=>this.parse(t)))}));if(this.debug(this.pattern,r),this.set=r.filter((t=>-1===t.indexOf(!1))),this.isWindows)for(let t=0;t=2?(t=this.firstPhasePreProcess(t),t=this.secondPhasePreProcess(t)):t=e>=1?this.levelOneOptimize(t):this.adjascentGlobstarOptimize(t),t}adjascentGlobstarOptimize(t){return t.map((t=>{let e=-1;for(;-1!==(e=t.indexOf(\"**\",e+1));){let n=e;for(;\"**\"===t[n+1];)n++;n!==e&&t.splice(e,n-e)}return t}))}levelOneOptimize(t){return t.map((t=>0===(t=t.reduce(((t,e)=>{const n=t[t.length-1];return\"**\"===e&&\"**\"===n?t:\"..\"===e&&n&&\"..\"!==n&&\".\"!==n&&\"**\"!==n?(t.pop(),t):(t.push(e),t)}),[])).length?[\"\"]:t))}levelTwoFileOptimize(t){Array.isArray(t)||(t=this.slashSplit(t));let e=!1;do{if(e=!1,!this.preserveMultipleSlashes){for(let n=1;nr&&n.splice(r+1,o-r);let i=n[r+1];const s=n[r+2],a=n[r+3];if(\"..\"!==i)continue;if(!s||\".\"===s||\"..\"===s||!a||\".\"===a||\"..\"===a)continue;e=!0,n.splice(r,1);const u=n.slice(0);u[r]=\"**\",t.push(u),r--}if(!this.preserveMultipleSlashes){for(let t=1;tt.length))}partsMatch(t,e){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=0,o=0,i=[],s=\"\";for(;r2&&void 0!==arguments[2]&&arguments[2];const r=this.options;if(this.isWindows){const n=\"string\"==typeof t[0]&&/^[a-z]:$/i.test(t[0]),r=!n&&\"\"===t[0]&&\"\"===t[1]&&\"?\"===t[2]&&/^[a-z]:$/i.test(t[3]),o=\"string\"==typeof e[0]&&/^[a-z]:$/i.test(e[0]),i=r?3:n?0:void 0,s=!o&&\"\"===e[0]&&\"\"===e[1]&&\"?\"===e[2]&&\"string\"==typeof e[3]&&/^[a-z]:$/i.test(e[3])?3:o?0:void 0;if(\"number\"==typeof i&&\"number\"==typeof s){const[n,r]=[t[i],e[s]];n.toLowerCase()===r.toLowerCase()&&(e[s]=n,s>i?e=e.slice(s):i>s&&(t=t.slice(i)))}}const{optimizationLevel:o=1}=this.options;o>=2&&(t=this.levelTwoFileOptimize(t)),this.debug(\"matchOne\",this,{file:t,pattern:e}),this.debug(\"matchOne\",t.length,e.length);for(var i=0,s=0,a=t.length,u=e.length;i>> no match, partial?\",t,h,e,p),h!==a))}let o;if(\"string\"==typeof c?(o=l===c,this.debug(\"string match\",c,l,o)):(o=c.test(l),this.debug(\"pattern match\",c,l,o)),!o)return!1}if(i===a&&s===u)return!0;if(i===a)return n;if(s===u)return i===a-1&&\"\"===t[i];throw new Error(\"wtf?\")}braceExpand(){return Wt(this.pattern,this.options)}parse(t){rt(t);const e=this.options;if(\"**\"===t)return Bt;if(\"\"===t)return\"\";let n,r=null;(n=t.match($t))?r=e.dot?It:Ct:(n=t.match(wt))?r=(e.nocase?e.dot?Pt:At:e.dot?Nt:xt)(n[1]):(n=t.match(kt))?r=(e.nocase?e.dot?Lt:Rt:e.dot?_t:Mt)(n):(n=t.match(Ot))?r=e.dot?Tt:Et:(n=t.match(jt))&&(r=St);const o=vt.fromGlob(t,this.options).toMMPattern();return r&&\"object\"==typeof o&&Reflect.defineProperty(o,\"test\",{value:r}),o}makeRe(){if(this.regexp||!1===this.regexp)return this.regexp;const t=this.set;if(!t.length)return this.regexp=!1,this.regexp;const e=this.options,n=e.noglobstar?\"[^/]*?\":e.dot?\"(?:(?!(?:\\\\/|^)(?:\\\\.{1,2})($|\\\\/)).)*?\":\"(?:(?!(?:\\\\/|^)\\\\.).)*?\",r=new Set(e.nocase?[\"i\"]:[]);let o=t.map((t=>{const e=t.map((t=>{if(t instanceof RegExp)for(const e of t.flags.split(\"\"))r.add(e);return\"string\"==typeof t?t.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g,\"\\\\$&\"):t===Bt?Bt:t._src}));return e.forEach(((t,r)=>{const o=e[r+1],i=e[r-1];t===Bt&&i!==Bt&&(void 0===i?void 0!==o&&o!==Bt?e[r+1]=\"(?:\\\\/|\"+n+\"\\\\/)?\"+o:e[r]=n:void 0===o?e[r-1]=i+\"(?:\\\\/|\"+n+\")?\":o!==Bt&&(e[r-1]=i+\"(?:\\\\/|\\\\/\"+n+\"\\\\/)\"+o,e[r+1]=Bt))})),e.filter((t=>t!==Bt)).join(\"/\")})).join(\"|\");const[i,s]=t.length>1?[\"(?:\",\")\"]:[\"\",\"\"];o=\"^\"+i+o+s+\"$\",this.negate&&(o=\"^(?!\"+o+\").+$\");try{this.regexp=new RegExp(o,[...r].join(\"\"))}catch(t){this.regexp=!1}return this.regexp}slashSplit(t){return this.preserveMultipleSlashes?t.split(\"/\"):this.isWindows&&/^\\/\\/[^\\/]+/.test(t)?[\"\",...t.split(/\\/+/)]:t.split(/\\/+/)}match(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.partial;if(this.debug(\"match\",t,this.pattern),this.comment)return!1;if(this.empty)return\"\"===t;if(\"/\"===t&&e)return!0;const n=this.options;this.isWindows&&(t=t.split(\"\\\\\").join(\"/\"));const r=this.slashSplit(t);this.debug(this.pattern,\"split\",r);const o=this.set;this.debug(this.pattern,\"set\",o);let i=r[r.length-1];if(!i)for(let t=r.length-2;!i&&t>=0;t--)i=r[t];for(let t=0;t1&&void 0!==arguments[1]?arguments[1]:\"\"}Invalid response: ${t.status} ${t.statusText}`);return e.status=t.status,e.response=t,e}function Ht(t,e){const{status:n}=e;if(401===n&&t.digest)return e;if(n>=400)throw qt(e);return e}function Xt(t,e){return arguments.length>2&&void 0!==arguments[2]&&arguments[2]?{data:e,headers:t.headers?W(t.headers):{},status:t.status,statusText:t.statusText}:e}bt.AST=vt,bt.Minimatch=Gt,bt.escape=function(t){let{windowsPathsNoEscape:e=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e?t.replace(/[?*()[\\]]/g,\"[$&]\"):t.replace(/[?*()[\\]\\\\]/g,\"\\\\$&\")},bt.unescape=ut;const Zt=(Yt=function(t,e,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const o=tt({url:y(t.remoteURL,f(e)),method:\"COPY\",headers:{Destination:y(t.remoteURL,f(n)),Overwrite:!1===r.overwrite?\"F\":\"T\",Depth:r.shallow?\"0\":\"infinity\"}},t,r);return s=function(e){Ht(t,e)},(i=Q(o,t))&&i.then||(i=Promise.resolve(i)),s?i.then(s):i;var i,s},function(){for(var t=[],e=0;e2&&void 0!==arguments[2]?arguments[2]:te.Original;const r=Qt().get(t,e);return\"array\"===n&&!1===Array.isArray(r)?[r]:\"object\"===n&&Array.isArray(r)?r[0]:r}function ne(t){return new Promise((e=>{e(function(t){const{multistatus:e}=t;if(\"\"===e)return{multistatus:{response:[]}};if(!e)throw new Error(\"Invalid response: No root multistatus found\");const n={multistatus:Array.isArray(e)?e[0]:e};return Qt().set(n,\"multistatus.response\",ee(n,\"multistatus.response\",te.Array)),Qt().set(n,\"multistatus.response\",Qt().get(n,\"multistatus.response\").map((t=>function(t){const e=Object.assign({},t);return e.status?Qt().set(e,\"status\",ee(e,\"status\",te.Object)):(Qt().set(e,\"propstat\",ee(e,\"propstat\",te.Object)),Qt().set(e,\"propstat.prop\",ee(e,\"propstat.prop\",te.Object))),e}(t)))),n}(new Kt.XMLParser({allowBooleanAttributes:!0,attributeNamePrefix:\"\",textNodeName:\"text\",ignoreAttributes:!1,removeNSPrefix:!0,numberParseOptions:{hex:!0,leadingZeros:!1},attributeValueProcessor:(t,e,n)=>\"true\"===e||\"false\"===e?\"true\"===e:e,tagValueProcessor(t,e,n){if(!n.endsWith(\"propstat.prop.displayname\"))return e}}).parse(t)))}))}function re(t,e){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];const{getlastmodified:r=null,getcontentlength:o=\"0\",resourcetype:i=null,getcontenttype:s=null,getetag:a=null}=t,u=i&&\"object\"==typeof i&&void 0!==i.collection?\"directory\":\"file\",c={filename:e,basename:l().basename(e),lastmod:r,size:parseInt(o,10),type:u,etag:\"string\"==typeof a?a.replace(/\"/g,\"\"):null};return\"file\"===u&&(c.mime=s&&\"string\"==typeof s?s.split(\";\")[0]:\"\"),n&&(void 0!==t.displayname&&(t.displayname=String(t.displayname)),c.props=t),c}function oe(t,e){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=null;try{t.multistatus.response[0].propstat&&(r=t.multistatus.response[0])}catch(t){}if(!r)throw new Error(\"Failed getting item stat: bad response\");const{propstat:{prop:o,status:i}}=r,[s,a,u]=i.split(\" \",3),c=parseInt(a,10);if(c>=400){const t=new Error(`Invalid response: ${c} ${u}`);throw t.status=c,t}return re(o,g(e),n)}function ie(t){switch(String(t)){case\"-3\":return\"unlimited\";case\"-2\":case\"-1\":return\"unknown\";default:return parseInt(String(t),10)}}function se(t,e,n){return n?e?e(t):t:(t&&t.then||(t=Promise.resolve(t)),e?t.then(e):t)}const ae=function(t){return function(){for(var e=[],n=0;n2&&void 0!==arguments[2]?arguments[2]:{};const{details:r=!1}=n,o=tt({url:y(t.remoteURL,f(e)),method:\"PROPFIND\",headers:{Accept:\"text/plain,application/xml\",Depth:\"0\"}},t,n);return se(Q(o,t),(function(n){return Ht(t,n),se(n.text(),(function(t){return se(ne(t),(function(t){const o=oe(t,e,r);return Xt(n,o,r)}))}))}))}));function ue(t,e,n){return n?e?e(t):t:(t&&t.then||(t=Promise.resolve(t)),e?t.then(e):t)}const ce=le((function(t,e){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const r=function(t){if(!t||\"/\"===t)return[];let e=t;const n=[];do{n.push(e),e=l().dirname(e)}while(e&&\"/\"!==e);return n}(g(e));r.sort(((t,e)=>t.length>e.length?1:e.length>t.length?-1:0));let o=!1;return function(t,e,n){if(\"function\"==typeof t[fe]){var r,o,i,s=t[fe]();function l(t){try{for(;!(r=s.next()).done;)if((t=e(r.value))&&t.then){if(!me(t))return void t.then(l,i||(i=de.bind(null,o=new ge,2)));t=t.v}o?de(o,1,t):o=t}catch(t){de(o||(o=new ge),2,t)}}if(l(),s.return){var a=function(t){try{r.done||s.return()}catch(t){}return t};if(o&&o.then)return o.then(a,(function(t){throw a(t)}));a()}return o}if(!(\"length\"in t))throw new TypeError(\"Object is not iterable\");for(var u=[],c=0;c2&&void 0!==arguments[2]?arguments[2]:{};if(!0===n.recursive)return ce(t,e,n);const r=tt({url:y(t.remoteURL,(o=f(e),o.endsWith(\"/\")?o:o+\"/\")),method:\"MKCOL\"},t,n);var o;return ue(Q(r,t),(function(e){Ht(t,e)}))}));var ve=n(388),be=n.n(ve);const we=function(t){return function(){for(var e=[],n=0;n2&&void 0!==arguments[2]?arguments[2]:{};const r={};if(\"object\"==typeof n.range&&\"number\"==typeof n.range.start){let t=`bytes=${n.range.start}-`;\"number\"==typeof n.range.end&&(t=`${t}${n.range.end}`),r.Range=t}const o=tt({url:y(t.remoteURL,f(e)),method:\"GET\",headers:r},t,n);return s=function(e){if(Ht(t,e),r.Range&&206!==e.status){const t=new Error(`Invalid response code for partial request: ${e.status}`);throw t.status=e.status,t}return n.callback&&setTimeout((()=>{n.callback(e)}),0),e.body},(i=Q(o,t))&&i.then||(i=Promise.resolve(i)),s?i.then(s):i;var i,s})),xe=()=>{},Ne=function(t){return function(){for(var e=[],n=0;n2&&void 0!==arguments[2]?arguments[2]:{};const r=tt({url:y(t.remoteURL,f(e)),method:\"DELETE\"},t,n);return i=function(e){Ht(t,e)},(o=Q(r,t))&&o.then||(o=Promise.resolve(o)),i?o.then(i):o;var o,i})),Pe=function(t){return function(){for(var e=[],n=0;n2&&void 0!==arguments[2]?arguments[2]:{};return function(r,o){try{var i=(s=ae(t,e,n),a=function(){return!0},u?a?a(s):s:(s&&s.then||(s=Promise.resolve(s)),a?s.then(a):s))}catch(t){return o(t)}var s,a,u;return i&&i.then?i.then(void 0,o):i}(0,(function(t){if(404===t.status)return!1;throw t}))}));function Oe(t,e,n){return n?e?e(t):t:(t&&t.then||(t=Promise.resolve(t)),e?t.then(e):t)}const Ee=function(t){return function(){for(var e=[],n=0;n2&&void 0!==arguments[2]?arguments[2]:{};const r=tt({url:y(t.remoteURL,f(e),\"/\"),method:\"PROPFIND\",headers:{Accept:\"text/plain,application/xml\",Depth:n.deep?\"infinity\":\"1\"}},t,n);return Oe(Q(r,t),(function(r){return Ht(t,r),Oe(r.text(),(function(o){if(!o)throw new Error(\"Failed parsing directory contents: Empty response\");return Oe(ne(o),(function(o){const i=d(e);let s=function(t,e,n){let r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],o=arguments.length>4&&void 0!==arguments[4]&&arguments[4];const i=l().join(e,\"/\"),{multistatus:{response:s}}=t,a=s.map((t=>{const e=function(t){try{return t.replace(/^https?:\\/\\/[^\\/]+/,\"\")}catch(t){throw new u(t,\"Failed normalising HREF\")}}(t.href),{propstat:{prop:n}}=t;return re(n,\"/\"===i?decodeURIComponent(g(e)):g(l().relative(decodeURIComponent(i),decodeURIComponent(e))),r)}));return o?a:a.filter((t=>t.basename&&(\"file\"===t.type||t.filename!==n.replace(/\\/$/,\"\"))))}(o,d(t.remoteBasePath||t.remotePath),i,n.details,n.includeSelf);return n.glob&&(s=function(t,e){return t.filter((t=>bt(t.filename,e,{matchBase:!0})))}(s,n.glob)),Xt(r,s,n.details)}))}))}))}));function Te(t){return function(){for(var e=[],n=0;n2&&void 0!==arguments[2]?arguments[2]:{};const r=tt({url:y(t.remoteURL,f(e)),method:\"GET\",headers:{Accept:\"text/plain\"},transformResponse:[Ie]},t,n);return Se(Q(r,t),(function(e){return Ht(t,e),Se(e.text(),(function(t){return Xt(e,t,n.details)}))}))}));function Se(t,e,n){return n?e?e(t):t:(t&&t.then||(t=Promise.resolve(t)),e?t.then(e):t)}const $e=Te((function(t,e){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const r=tt({url:y(t.remoteURL,f(e)),method:\"GET\"},t,n);return Se(Q(r,t),(function(e){let r;return Ht(t,e),function(t,e){var n=t();return n&&n.then?n.then(e):e()}((function(){return Se(e.arrayBuffer(),(function(t){r=t}))}),(function(){return Xt(e,r,n.details)}))}))})),Ce=Te((function(t,e){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const{format:r=\"binary\"}=n;if(\"binary\"!==r&&\"text\"!==r)throw new u({info:{code:I.InvalidOutputFormat}},`Invalid output format: ${r}`);return\"text\"===r?je(t,e,n):$e(t,e,n)})),Ie=t=>t;function ke(t){return new Kt.XMLBuilder({attributeNamePrefix:\"@_\",format:!0,ignoreAttributes:!1,suppressEmptyNode:!0}).build(Re({lockinfo:{\"@_xmlns:d\":\"DAV:\",lockscope:{exclusive:{}},locktype:{write:{}},owner:{href:t}}},\"d\"))}function Re(t,e){const n={...t};for(const t in n)n.hasOwnProperty(t)&&(n[t]&&\"object\"==typeof n[t]&&-1===t.indexOf(\":\")?(n[`${e}:${t}`]=Re(n[t],e),delete n[t]):!1===/^@_/.test(t)&&(n[`${e}:${t}`]=n[t],delete n[t]));return n}function Le(t,e,n){return n?e?e(t):t:(t&&t.then||(t=Promise.resolve(t)),e?t.then(e):t)}function _e(t){return function(){for(var e=[],n=0;n3&&void 0!==arguments[3]?arguments[3]:{};const o=tt({url:y(t.remoteURL,f(e)),method:\"UNLOCK\",headers:{\"Lock-Token\":n}},t,r);return Le(Q(o,t),(function(e){if(Ht(t,e),204!==e.status&&200!==e.status)throw qt(e)}))})),Ue=_e((function(t,e){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const{refreshToken:r,timeout:o=Fe}=n,i={Accept:\"text/plain,application/xml\",Timeout:o};r&&(i.If=r);const s=tt({url:y(t.remoteURL,f(e)),method:\"LOCK\",headers:i,data:ke(t.contactHref)},t,n);return Le(Q(s,t),(function(e){return Ht(t,e),Le(e.text(),(function(t){const n=(i=t,new Kt.XMLParser({removeNSPrefix:!0,parseAttributeValue:!0,parseTagValue:!0}).parse(i)),r=Qt().get(n,\"prop.lockdiscovery.activelock.locktoken.href\"),o=Qt().get(n,\"prop.lockdiscovery.activelock.timeout\");var i;if(!r)throw qt(e,\"No lock token received: \");return{token:r,serverTimeout:o}}))}))})),Fe=\"Infinite, Second-4100000000\";function De(t,e,n){return n?e?e(t):t:(t&&t.then||(t=Promise.resolve(t)),e?t.then(e):t)}const Be=function(t){return function(){for(var e=[],n=0;n1&&void 0!==arguments[1]?arguments[1]:{};const n=e.path||\"/\",r=tt({url:y(t.remoteURL,n),method:\"PROPFIND\",headers:{Accept:\"text/plain,application/xml\",Depth:\"0\"}},t,e);return De(Q(r,t),(function(n){return Ht(t,n),De(n.text(),(function(t){return De(ne(t),(function(t){const r=function(t){try{const[e]=t.multistatus.response,{propstat:{prop:{\"quota-used-bytes\":n,\"quota-available-bytes\":r}}}=e;return void 0!==n&&void 0!==r?{used:parseInt(String(n),10),available:ie(r)}:null}catch(t){}return null}(t);return Xt(n,r,e.details)}))}))}))}));function Ve(t,e,n){return n?e?e(t):t:(t&&t.then||(t=Promise.resolve(t)),e?t.then(e):t)}const We=function(t){return function(){for(var e=[],n=0;n2&&void 0!==arguments[2]?arguments[2]:{};const{details:r=!1}=n,o=tt({url:y(t.remoteURL,f(e)),method:\"SEARCH\",headers:{Accept:\"text/plain,application/xml\",\"Content-Type\":t.headers[\"Content-Type\"]||\"application/xml; charset=utf-8\"}},t,n);return Ve(Q(o,t),(function(n){return Ht(t,n),Ve(n.text(),(function(t){return Ve(ne(t),(function(t){const o=function(t,e,n){const r={truncated:!1,results:[]};return r.truncated=t.multistatus.response.some((t=>\"507\"===(t.status||t.propstat?.status).split(\" \",3)?.[1]&&t.href.replace(/\\/$/,\"\").endsWith(f(e).replace(/\\/$/,\"\")))),t.multistatus.response.forEach((t=>{if(void 0===t.propstat)return;const e=t.href.split(\"/\").map(decodeURIComponent).join(\"/\");r.results.push(re(t.propstat.prop,e,n))})),r}(t,e,r);return Xt(n,o,r)}))}))}))})),ze=function(t){return function(){for(var e=[],n=0;n3&&void 0!==arguments[3]?arguments[3]:{};const o=tt({url:y(t.remoteURL,f(e)),method:\"MOVE\",headers:{Destination:y(t.remoteURL,f(n)),Overwrite:!1===r.overwrite?\"F\":\"T\"}},t,r);return s=function(e){Ht(t,e)},(i=Q(o,t))&&i.then||(i=Promise.resolve(i)),s?i.then(s):i;var i,s}));var Ge=n(172);const qe=function(t){return function(){for(var e=[],n=0;n3&&void 0!==arguments[3]?arguments[3]:{};const{contentLength:o=!0,overwrite:i=!0}=r,s={\"Content-Type\":\"application/octet-stream\"};!1===o||(s[\"Content-Length\"]=\"number\"==typeof o?`${o}`:`${function(t){if(H(t))return t.byteLength;if(X(t))return t.length;if(\"string\"==typeof t)return(0,Ge.d)(t);throw new u({info:{code:I.DataTypeNoLength}},\"Cannot calculate data length: Invalid type\")}(n)}`),i||(s[\"If-None-Match\"]=\"*\");const a=tt({url:y(t.remoteURL,f(e)),method:\"PUT\",headers:s,data:n},t,r);return l=function(e){try{Ht(t,e)}catch(t){const e=t;if(412!==e.status||i)throw e;return!1}return!0},(c=Q(a,t))&&c.then||(c=Promise.resolve(c)),l?c.then(l):c;var c,l})),He=function(t){return function(){for(var e=[],n=0;n2&&void 0!==arguments[2]?arguments[2]:{};const r=tt({url:y(t.remoteURL,f(e)),method:\"OPTIONS\"},t,n);return i=function(e){try{Ht(t,e)}catch(t){throw t}return{compliance:(e.headers.get(\"DAV\")??\"\").split(\",\").map((t=>t.trim())),server:e.headers.get(\"Server\")??\"\"}},(o=Q(r,t))&&o.then||(o=Promise.resolve(o)),i?o.then(i):o;var o,i}));function Xe(t,e,n){return n?e?e(t):t:(t&&t.then||(t=Promise.resolve(t)),e?t.then(e):t)}const Ze=Je((function(t,e,n,r,o){let i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};if(n>r||n<0)throw new u({info:{code:I.InvalidUpdateRange}},`Invalid update range ${n} for partial update`);const s={\"Content-Type\":\"application/octet-stream\",\"Content-Length\":\"\"+(r-n+1),\"Content-Range\":`bytes ${n}-${r}/*`},a=tt({url:y(t.remoteURL,f(e)),method:\"PUT\",headers:s,data:o},t,i);return Xe(Q(a,t),(function(e){Ht(t,e)}))}));function Ye(t,e){var n=t();return n&&n.then?n.then(e):e(n)}const Ke=Je((function(t,e,n,r,o){let i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};if(n>r||n<0)throw new u({info:{code:I.InvalidUpdateRange}},`Invalid update range ${n} for partial update`);const s={\"Content-Type\":\"application/x-sabredav-partialupdate\",\"Content-Length\":\"\"+(r-n+1),\"X-Update-Range\":`bytes=${n}-${r}`},a=tt({url:y(t.remoteURL,f(e)),method:\"PATCH\",headers:s,data:o},t,i);return Xe(Q(a,t),(function(e){Ht(t,e)}))}));function Je(t){return function(){for(var e=[],n=0;n5&&void 0!==arguments[5]?arguments[5]:{};return Xe(He(t,e,i),(function(s){let a=!1;return Ye((function(){if(s.compliance.includes(\"sabredav-partialupdate\"))return Xe(Ke(t,e,n,r,o,i),(function(t){return a=!0,t}))}),(function(c){let l=!1;return a?c:Ye((function(){if(s.server.includes(\"Apache\")&&s.compliance.includes(\"\"))return Xe(Ze(t,e,n,r,o,i),(function(t){return l=!0,t}))}),(function(t){if(l)return t;throw new u({info:{code:I.NotSupported}},\"Not supported\")}))}))}))})),tn=\"https://github.com/perry-mitchell/webdav-client/blob/master/LOCK_CONTACT.md\";function en(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{authType:n=null,remoteBasePath:r,contactHref:o=tn,ha1:i,headers:s={},httpAgent:a,httpsAgent:c,password:l,token:h,username:p,withCredentials:d}=e;let g=n;g||(g=p||l?C.Password:C.None);const v={authType:g,remoteBasePath:r,contactHref:o,ha1:i,headers:Object.assign({},s),httpAgent:a,httpsAgent:c,password:l,remotePath:m(t),remoteURL:t,token:h,username:p,withCredentials:d};return k(v,p,l,h,i),{copyFile:(t,e,n)=>Zt(v,t,e,n),createDirectory:(t,e)=>ye(v,t,e),createReadStream:(t,e)=>function(t,e){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const r=new(0,be().PassThrough);return we(t,e,n).then((t=>{t.pipe(r)})).catch((t=>{r.emit(\"error\",t)})),r}(v,t,e),createWriteStream:(t,e,n)=>function(t,e){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:xe;const o=new(0,be().PassThrough),i={};!1===n.overwrite&&(i[\"If-None-Match\"]=\"*\");const s=tt({url:y(t.remoteURL,f(e)),method:\"PUT\",headers:i,data:o,maxRedirects:0},t,n);return Q(s,t).then((e=>Ht(t,e))).then((t=>{setTimeout((()=>{r(t)}),0)})).catch((t=>{o.emit(\"error\",t)})),o}(v,t,e,n),customRequest:(t,e)=>Ne(v,t,e),deleteFile:(t,e)=>Ae(v,t,e),exists:(t,e)=>Pe(v,t,e),getDirectoryContents:(t,e)=>Ee(v,t,e),getFileContents:(t,e)=>Ce(v,t,e),getFileDownloadLink:t=>function(t,e){let n=y(t.remoteURL,f(e));const r=/^https:/i.test(n)?\"https\":\"http\";switch(t.authType){case C.None:break;case C.Password:{const e=O(t.headers.Authorization.replace(/^Basic /i,\"\").trim());n=n.replace(/^https?:\\/\\//,`${r}://${e}@`);break}default:throw new u({info:{code:I.LinkUnsupportedAuthType}},`Unsupported auth type for file link: ${t.authType}`)}return n}(v,t),getFileUploadLink:t=>function(t,e){let n=`${y(t.remoteURL,f(e))}?Content-Type=application/octet-stream`;const r=/^https:/i.test(n)?\"https\":\"http\";switch(t.authType){case C.None:break;case C.Password:{const e=O(t.headers.Authorization.replace(/^Basic /i,\"\").trim());n=n.replace(/^https?:\\/\\//,`${r}://${e}@`);break}default:throw new u({info:{code:I.LinkUnsupportedAuthType}},`Unsupported auth type for file link: ${t.authType}`)}return n}(v,t),getHeaders:()=>Object.assign({},v.headers),getQuota:t=>Be(v,t),lock:(t,e)=>Ue(v,t,e),moveFile:(t,e,n)=>ze(v,t,e,n),putFileContents:(t,e,n)=>qe(v,t,e,n),partialUpdateFileContents:(t,e,n,r,o)=>Qe(v,t,e,n,r,o),getDAVCompliance:t=>He(v,t),search:(t,e)=>We(v,t,e),setHeaders:t=>{v.headers=Object.assign({},t)},stat:(t,e)=>ae(v,t,e),unlock:(t,e,n)=>Me(v,t,e,n)}}var nn=r.hT,rn=r.O4,on=r.Kd,sn=r.YK,an=r.UU,un=r.Gu,cn=r.ky,ln=r.h4,hn=r.ch,pn=r.hq,fn=r.i5;export{nn as AuthType,rn as ErrorCode,on as Request,sn as Response,an as createClient,un as getPatcher,cn as parseStat,ln as parseXML,hn as prepareFileFromProps,pn as processResponsePayload,fn as translateDiskSpace};"],"names":["t","e","o","n","i","r","s","a","u","c","l","global","d","m","g","y","v","h","b","w","p","f","x","N","A","P","O","E","T","j","S","$","C","I","k","process","en","F","oe","ne","re","Xt","ie","R","L","_","M","U","D","B","V","W","z","G","q","H","X","Z","Y","K","et","J","Q","tt","nt","rt","ot","it","st","at","ut","ct","lt","ht","pt","ft","dt","gt","mt","yt","vt","#t","#e","#n","#r","#o","#s","#u","#c","#l","#h","#p","#f","#d","bt","Gt","wt","xt","Nt","At","Pt","Ot","Et","Tt","jt","St","$t","Ct","It","kt","Rt","Ut","Lt","Ft","_t","Mt","Dt","define_process_env_default","Bt","Vt","Wt","zt","qt","Ht","Zt","Yt","Kt","Jt","Qt","te","ee","se","ae","ue","ce","le","fe","me","de","ge","pe","ye","he","ve","be","we","xe","Ne","Ae","Pe","Oe","Ee","Te","je","Ie","Se","$e","Ce","ke","Re","Le","_e","Me","Ue","Fe","De","Be","Ve","We","ze","Ge","qe","He","Xe","Ze","Je","Ye","Ke","Qe","tn","an","un","ln"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/dist/index-DY1sONrk.chunk.mjs.map.license b/dist/index-BGtOTwEf.chunk.mjs.map.license similarity index 100% rename from dist/index-DY1sONrk.chunk.mjs.map.license rename to dist/index-BGtOTwEf.chunk.mjs.map.license diff --git a/dist/index-6_gsQFyp.chunk.mjs b/dist/index-Bndk0DrU.chunk.mjs similarity index 98% rename from dist/index-6_gsQFyp.chunk.mjs rename to dist/index-Bndk0DrU.chunk.mjs index f38b17b8db419..d5758ccb062e8 100644 --- a/dist/index-6_gsQFyp.chunk.mjs +++ b/dist/index-Bndk0DrU.chunk.mjs @@ -1,5 +1,5 @@ var Fe=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function re(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}function le(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}var ne={exports:{}},h=ne.exports={},L,R;function X(){throw new Error("setTimeout has not been defined")}function k(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?L=setTimeout:L=X}catch{L=X}try{typeof clearTimeout=="function"?R=clearTimeout:R=k}catch{R=k}})();function se(r){if(L===setTimeout)return setTimeout(r,0);if((L===X||!L)&&setTimeout)return L=setTimeout,setTimeout(r,0);try{return L(r,0)}catch{try{return L.call(null,r,0)}catch{return L.call(this,r,0)}}}function pe(r){if(R===clearTimeout)return clearTimeout(r);if((R===k||!R)&&clearTimeout)return R=clearTimeout,clearTimeout(r);try{return R(r)}catch{try{return R.call(null,r)}catch{return R.call(this,r)}}}var N=[],v=!1,T,y=-1;function fe(){!v||!T||(v=!1,T.length?N=T.concat(N):y=-1,N.length&&ie())}function ie(){if(!v){var r=se(fe);v=!0;for(var e=N.length;e;){for(T=N,N=[];++y1)for(var n=1;nconsole.error("SEMVER",...e):()=>{},D}var _,W;function ce(){if(W)return _;W=1;const r="2.0.0",e=256,n=Number.MAX_SAFE_INTEGER||9007199254740991,o=16,u=e-6;return _={MAX_LENGTH:e,MAX_SAFE_COMPONENT_LENGTH:o,MAX_SAFE_BUILD_LENGTH:u,MAX_SAFE_INTEGER:n,RELEASE_TYPES:["major","premajor","minor","preminor","patch","prepatch","prerelease"],SEMVER_SPEC_VERSION:r,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2},_}var C={exports:{}},z;function Le(){return z||(z=1,(function(r,e){const{MAX_SAFE_COMPONENT_LENGTH:n,MAX_SAFE_BUILD_LENGTH:o,MAX_LENGTH:u}=ce(),d=ae();e=r.exports={};const f=e.re=[],I=e.safeRe=[],s=e.src=[],i=e.safeSrc=[],t=e.t={};let c=0;const E="[a-zA-Z0-9-]",p=[["\\s",1],["\\d",u],[E,o]],he=g=>{for(const[m,A]of p)g=g.split(`${m}*`).join(`${m}{0,${A}}`).split(`${m}+`).join(`${m}{1,${A}}`);return g},a=(g,m,A)=>{const V=he(m),w=c++;d(g,w,m),t[g]=w,s[w]=m,i[w]=V,f[w]=new RegExp(m,A?"g":void 0),I[w]=new RegExp(V,A?"g":void 0)};a("NUMERICIDENTIFIER","0|[1-9]\\d*"),a("NUMERICIDENTIFIERLOOSE","\\d+"),a("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${E}*`),a("MAINVERSION",`(${s[t.NUMERICIDENTIFIER]})\\.(${s[t.NUMERICIDENTIFIER]})\\.(${s[t.NUMERICIDENTIFIER]})`),a("MAINVERSIONLOOSE",`(${s[t.NUMERICIDENTIFIERLOOSE]})\\.(${s[t.NUMERICIDENTIFIERLOOSE]})\\.(${s[t.NUMERICIDENTIFIERLOOSE]})`),a("PRERELEASEIDENTIFIER",`(?:${s[t.NONNUMERICIDENTIFIER]}|${s[t.NUMERICIDENTIFIER]})`),a("PRERELEASEIDENTIFIERLOOSE",`(?:${s[t.NONNUMERICIDENTIFIER]}|${s[t.NUMERICIDENTIFIERLOOSE]})`),a("PRERELEASE",`(?:-(${s[t.PRERELEASEIDENTIFIER]}(?:\\.${s[t.PRERELEASEIDENTIFIER]})*))`),a("PRERELEASELOOSE",`(?:-?(${s[t.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${s[t.PRERELEASEIDENTIFIERLOOSE]})*))`),a("BUILDIDENTIFIER",`${E}+`),a("BUILD",`(?:\\+(${s[t.BUILDIDENTIFIER]}(?:\\.${s[t.BUILDIDENTIFIER]})*))`),a("FULLPLAIN",`v?${s[t.MAINVERSION]}${s[t.PRERELEASE]}?${s[t.BUILD]}?`),a("FULL",`^${s[t.FULLPLAIN]}$`),a("LOOSEPLAIN",`[v=\\s]*${s[t.MAINVERSIONLOOSE]}${s[t.PRERELEASELOOSE]}?${s[t.BUILD]}?`),a("LOOSE",`^${s[t.LOOSEPLAIN]}$`),a("GTLT","((?:<|>)?=?)"),a("XRANGEIDENTIFIERLOOSE",`${s[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),a("XRANGEIDENTIFIER",`${s[t.NUMERICIDENTIFIER]}|x|X|\\*`),a("XRANGEPLAIN",`[v=\\s]*(${s[t.XRANGEIDENTIFIER]})(?:\\.(${s[t.XRANGEIDENTIFIER]})(?:\\.(${s[t.XRANGEIDENTIFIER]})(?:${s[t.PRERELEASE]})?${s[t.BUILD]}?)?)?`),a("XRANGEPLAINLOOSE",`[v=\\s]*(${s[t.XRANGEIDENTIFIERLOOSE]})(?:\\.(${s[t.XRANGEIDENTIFIERLOOSE]})(?:\\.(${s[t.XRANGEIDENTIFIERLOOSE]})(?:${s[t.PRERELEASELOOSE]})?${s[t.BUILD]}?)?)?`),a("XRANGE",`^${s[t.GTLT]}\\s*${s[t.XRANGEPLAIN]}$`),a("XRANGELOOSE",`^${s[t.GTLT]}\\s*${s[t.XRANGEPLAINLOOSE]}$`),a("COERCEPLAIN",`(^|[^\\d])(\\d{1,${n}})(?:\\.(\\d{1,${n}}))?(?:\\.(\\d{1,${n}}))?`),a("COERCE",`${s[t.COERCEPLAIN]}(?:$|[^\\d])`),a("COERCEFULL",s[t.COERCEPLAIN]+`(?:${s[t.PRERELEASE]})?(?:${s[t.BUILD]})?(?:$|[^\\d])`),a("COERCERTL",s[t.COERCE],!0),a("COERCERTLFULL",s[t.COERCEFULL],!0),a("LONETILDE","(?:~>?)"),a("TILDETRIM",`(\\s*)${s[t.LONETILDE]}\\s+`,!0),e.tildeTrimReplace="$1~",a("TILDE",`^${s[t.LONETILDE]}${s[t.XRANGEPLAIN]}$`),a("TILDELOOSE",`^${s[t.LONETILDE]}${s[t.XRANGEPLAINLOOSE]}$`),a("LONECARET","(?:\\^)"),a("CARETTRIM",`(\\s*)${s[t.LONECARET]}\\s+`,!0),e.caretTrimReplace="$1^",a("CARET",`^${s[t.LONECARET]}${s[t.XRANGEPLAIN]}$`),a("CARETLOOSE",`^${s[t.LONECARET]}${s[t.XRANGEPLAINLOOSE]}$`),a("COMPARATORLOOSE",`^${s[t.GTLT]}\\s*(${s[t.LOOSEPLAIN]})$|^$`),a("COMPARATOR",`^${s[t.GTLT]}\\s*(${s[t.FULLPLAIN]})$|^$`),a("COMPARATORTRIM",`(\\s*)${s[t.GTLT]}\\s*(${s[t.LOOSEPLAIN]}|${s[t.XRANGEPLAIN]})`,!0),e.comparatorTrimReplace="$1$2$3",a("HYPHENRANGE",`^\\s*(${s[t.XRANGEPLAIN]})\\s+-\\s+(${s[t.XRANGEPLAIN]})\\s*$`),a("HYPHENRANGELOOSE",`^\\s*(${s[t.XRANGEPLAINLOOSE]})\\s+-\\s+(${s[t.XRANGEPLAINLOOSE]})\\s*$`),a("STAR","(<|>)?=?\\s*\\*"),a("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),a("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")})(C,C.exports)),C.exports}var F,K;function Re(){if(K)return F;K=1;const r=Object.freeze({loose:!0}),e=Object.freeze({});return F=n=>n?typeof n!="object"?r:n:e,F}var G,Y;function me(){if(Y)return G;Y=1;const r=/^[0-9]+$/,e=(n,o)=>{if(typeof n=="number"&&typeof o=="number")return n===o?0:ne(o,n)},G}var M,q;function Ee(){if(q)return M;q=1;const r=ae(),{MAX_LENGTH:e,MAX_SAFE_INTEGER:n}=ce(),{safeRe:o,t:u}=Le(),d=Re(),{compareIdentifiers:f}=me();class I{constructor(i,t){if(t=d(t),i instanceof I){if(i.loose===!!t.loose&&i.includePrerelease===!!t.includePrerelease)return i;i=i.version}else if(typeof i!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof i}".`);if(i.length>e)throw new TypeError(`version is longer than ${e} characters`);r("SemVer",i,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;const c=i.trim().match(t.loose?o[u.LOOSE]:o[u.FULL]);if(!c)throw new TypeError(`Invalid Version: ${i}`);if(this.raw=i,this.major=+c[1],this.minor=+c[2],this.patch=+c[3],this.major>n||this.major<0)throw new TypeError("Invalid major version");if(this.minor>n||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>n||this.patch<0)throw new TypeError("Invalid patch version");c[4]?this.prerelease=c[4].split(".").map(E=>{if(/^[0-9]+$/.test(E)){const p=+E;if(p>=0&&pi.major?1:this.minori.minor?1:this.patchi.patch?1:0}comparePre(i){if(i instanceof I||(i=new I(i,this.options)),this.prerelease.length&&!i.prerelease.length)return-1;if(!this.prerelease.length&&i.prerelease.length)return 1;if(!this.prerelease.length&&!i.prerelease.length)return 0;let t=0;do{const c=this.prerelease[t],E=i.prerelease[t];if(r("prerelease compare",t,c,E),c===void 0&&E===void 0)return 0;if(E===void 0)return 1;if(c===void 0)return-1;if(c!==E)return f(c,E)}while(++t)}compareBuild(i){i instanceof I||(i=new I(i,this.options));let t=0;do{const c=this.build[t],E=i.build[t];if(r("build compare",t,c,E),c===void 0&&E===void 0)return 0;if(E===void 0)return 1;if(c===void 0)return-1;if(c!==E)return f(c,E)}while(++t)}inc(i,t,c){if(i.startsWith("pre")){if(!t&&c===!1)throw new Error("invalid increment argument: identifier is empty");if(t){const E=`-${t}`.match(this.options.loose?o[u.PRERELEASELOOSE]:o[u.PRERELEASE]);if(!E||E[1]!==t)throw new Error(`invalid identifier: ${t}`)}}switch(i){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",t,c);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",t,c);break;case"prepatch":this.prerelease.length=0,this.inc("patch",t,c),this.inc("pre",t,c);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",t,c),this.inc("pre",t,c);break;case"release":if(this.prerelease.length===0)throw new Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{const E=Number(c)?1:0;if(this.prerelease.length===0)this.prerelease=[E];else{let p=this.prerelease.length;for(;--p>=0;)typeof this.prerelease[p]=="number"&&(this.prerelease[p]++,p=-2);if(p===-1){if(t===this.prerelease.join(".")&&c===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(E)}}if(t){let p=[t,E];c===!1&&(p=[t]),f(this.prerelease[0],t)===0?isNaN(this.prerelease[1])&&(this.prerelease=p):this.prerelease=p}break}default:throw new Error(`invalid increment argument: ${i}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}}return M=I,M}var U,Z;function Oe(){if(Z)return U;Z=1;const r=Ee();return U=(e,n)=>new r(e,n).major,U}var Ne=Oe();const J=re(Ne);var x,Q;function Te(){if(Q)return x;Q=1;const r=Ee();return x=(e,n,o=!1)=>{if(e instanceof r)return e;try{return new r(e,n)}catch(u){if(!o)return null;throw u}},x}var j,ee;function ge(){if(ee)return j;ee=1;const r=Te();return j=(e,n)=>{const o=r(e,n);return o?o.version:null},j}var we=ge();const $e=re(we);class ve{bus;constructor(e){typeof e.getVersion!="function"||!$e(e.getVersion())?console.warn("Proxying an event bus with an unknown or invalid version"):J(e.getVersion())!==J(this.getVersion())&&console.warn("Proxying an event bus of version "+e.getVersion()+" with "+this.getVersion()),this.bus=e}getVersion(){return"3.3.3"}subscribe(e,n){this.bus.subscribe(e,n)}unsubscribe(e,n){this.bus.unsubscribe(e,n)}emit(e,...n){this.bus.emit(e,...n)}}class Ae{handlers=new Map;getVersion(){return"3.3.3"}subscribe(e,n){this.handlers.set(e,(this.handlers.get(e)||[]).concat(n))}unsubscribe(e,n){this.handlers.set(e,(this.handlers.get(e)||[]).filter(o=>o!==n))}emit(e,...n){(this.handlers.get(e)||[]).forEach(o=>{try{o(n[0])}catch(u){console.error("could not invoke event listener",u)}})}}let b=null;function B(){return b!==null?b:typeof window>"u"?new Proxy({},{get:()=>()=>console.error("Window not available, EventBus can not be established!")}):(window.OC?._eventBus&&typeof window._nc_event_bus>"u"&&(console.warn("found old event bus instance at OC._eventBus. Update your version!"),window._nc_event_bus=window.OC._eventBus),typeof window?._nc_event_bus<"u"?b=new ve(window._nc_event_bus):b=window._nc_event_bus=new Ae,b)}function be(r,e){B().subscribe(r,e)}function Ge(r,e){B().unsubscribe(r,e)}function Me(r,...e){B().emit(r,...e)}class P{static GLOBAL_SCOPE_VOLATILE="nextcloud_vol";static GLOBAL_SCOPE_PERSISTENT="nextcloud_per";scope;wrapped;constructor(e,n,o){this.scope=`${o?P.GLOBAL_SCOPE_PERSISTENT:P.GLOBAL_SCOPE_VOLATILE}_${btoa(e)}_`,this.wrapped=n}scopeKey(e){return`${this.scope}${e}`}setItem(e,n){this.wrapped.setItem(this.scopeKey(e),n)}getItem(e){return this.wrapped.getItem(this.scopeKey(e))}removeItem(e){this.wrapped.removeItem(this.scopeKey(e))}clear(){Object.keys(this.wrapped).filter(e=>e.startsWith(this.scope)).map(this.wrapped.removeItem.bind(this.wrapped))}}class Se{appId;persisted=!1;clearedOnLogout=!1;constructor(e){this.appId=e}persist(e=!0){return this.persisted=e,this}clearOnLogout(e=!0){return this.clearedOnLogout=e,this}build(){return new P(this.appId,this.persisted?window.localStorage:window.sessionStorage,!this.clearedOnLogout)}}function ye(r){return new Se(r)}let S;const ue=[];function Ue(){return S===void 0&&(S=document.head.dataset.requesttoken??null),S}function xe(r){ue.push(r)}be("csrf-token-update",r=>{S=r.token,ue.forEach(e=>{try{e(S)}catch(n){console.error("Error updating CSRF token observer",n)}})});ye("public").persist().build();let $;function te(r,e){return r?r.getAttribute(e):null}function Pe(){if($!==void 0)return $;const r=document?.getElementsByTagName("head")[0];if(!r)return null;const e=te(r,"data-user");return e===null?($=null,$):($={uid:e,displayName:te(r,"data-user-displayname"),isAdmin:!!window._oc_isadmin},$)}function je(r,e=100,n={}){if(typeof r!="function")throw new TypeError(`Expected the first parameter to be a function, got \`${typeof r}\`.`);if(e<0)throw new RangeError("`wait` must not be negative.");if(typeof n=="boolean")throw new TypeError("The `options` parameter must be an object, not a boolean. Use `{immediate: true}` instead.");const{immediate:o}=n;let u,d,f,I,s;function i(){const E=u,p=d;return u=void 0,d=void 0,s=r.apply(E,p),s}function t(){const E=Date.now()-I;E=0?f=setTimeout(t,e-E):(f=void 0,o||(s=i()))}const c=function(...E){if(u&&this!==u&&Object.getPrototypeOf(this)===Object.getPrototypeOf(u))throw new Error("Debounced method called with different contexts of the same prototype.");u=this,d=E,I=Date.now();const p=o&&!f;if(f||(f=setTimeout(t,e)),p)return s=i(),s};return Object.defineProperty(c,"isPending",{get(){return f!==void 0}}),c.clear=()=>{f&&(clearTimeout(f),f=void 0,u=void 0,d=void 0)},c.flush=()=>{f&&c.trigger()},c.trigger=()=>{s=i(),c.clear()},c}var l=(r=>(r[r.Debug=0]="Debug",r[r.Info=1]="Info",r[r.Warn=2]="Warn",r[r.Error=3]="Error",r[r.Fatal=4]="Fatal",r))(l||{});class De{context;constructor(e){this.context=e||{}}formatMessage(e,n,o){let u="["+l[n].toUpperCase()+"] ";return o&&o.app&&(u+=o.app+": "),typeof e=="string"?u+e:(u+=`Unexpected ${e.name}`,e.message&&(u+=` "${e.message}"`),n===l.Debug&&e.stack&&(u+=` Stack trace: -${e.stack}`),u)}log(e,n,o){if(!(typeof this.context?.level=="number"&&e{document.readyState==="complete"||document.readyState==="interactive"?(e.context.level=window._oc_config?.loglevel??l.Warn,window._oc_debug&&(e.context.level=l.Debug),document.removeEventListener("readystatechange",n)):document.addEventListener("readystatechange",n)};return n(),this}build(){return this.context.level===void 0&&this.detectLogLevel(),this.factory(this.context)}}function Xe(){return new Ce(_e)}export{Pe as a,Ue as b,re as c,je as d,Me as e,ye as f,Xe as g,Fe as h,xe as o,de as p,be as s,Ge as u}; -//# sourceMappingURL=index-6_gsQFyp.chunk.mjs.map +${e.stack}`),u)}log(e,n,o){if(!(typeof this.context?.level=="number"&&e{document.readyState==="complete"||document.readyState==="interactive"?(e.context.level=window._oc_config?.loglevel??l.Warn,window._oc_debug&&(e.context.level=l.Debug),document.removeEventListener("readystatechange",n)):document.addEventListener("readystatechange",n)};return n(),this}build(){return this.context.level===void 0&&this.detectLogLevel(),this.factory(this.context)}}function Xe(){return new Ce(_e)}export{Pe as a,Ue as b,ye as c,je as d,Me as e,re as f,Xe as g,Fe as h,xe as o,de as p,be as s,Ge as u}; +//# sourceMappingURL=index-Bndk0DrU.chunk.mjs.map diff --git a/dist/index-6_gsQFyp.chunk.mjs.license b/dist/index-Bndk0DrU.chunk.mjs.license similarity index 100% rename from dist/index-6_gsQFyp.chunk.mjs.license rename to dist/index-Bndk0DrU.chunk.mjs.license diff --git a/dist/index-6_gsQFyp.chunk.mjs.map b/dist/index-Bndk0DrU.chunk.mjs.map similarity index 99% rename from dist/index-6_gsQFyp.chunk.mjs.map rename to dist/index-Bndk0DrU.chunk.mjs.map index 6409e9215e545..43e0bb3254693 100644 --- a/dist/index-6_gsQFyp.chunk.mjs.map +++ b/dist/index-Bndk0DrU.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"index-6_gsQFyp.chunk.mjs","sources":["../node_modules/vite-plugin-node-polyfills/shims/process/dist/index.js","../node_modules/semver/internal/debug.js","../node_modules/semver/internal/constants.js","../node_modules/semver/internal/re.js","../node_modules/semver/internal/parse-options.js","../node_modules/semver/internal/identifiers.js","../node_modules/semver/classes/semver.js","../node_modules/semver/functions/major.js","../node_modules/semver/functions/parse.js","../node_modules/semver/functions/valid.js","../node_modules/@nextcloud/event-bus/dist/index.mjs","../node_modules/@nextcloud/browser-storage/dist/ScopedStorage.js","../node_modules/@nextcloud/browser-storage/dist/StorageBuilder.js","../node_modules/@nextcloud/browser-storage/dist/index.js","../node_modules/@nextcloud/auth/dist/index.mjs","../node_modules/debounce/index.js","../node_modules/@nextcloud/logger/dist/index.mjs"],"sourcesContent":["function getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nvar browser = {exports: {}};\n\n// shim for using process in browser\nvar process = browser.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ());\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] };\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\nvar browserExports = browser.exports;\nconst process$1 = /*@__PURE__*/getDefaultExportFromCjs(browserExports);\n\nexport { process$1 as default, process$1 as process };\n//# sourceMappingURL=index.js.map\n","'use strict'\n\nconst debug = (\n typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n : () => {}\n\nmodule.exports = debug\n","'use strict'\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n/* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\n// Max safe length for a build identifier. The max length minus 6 characters for\n// the shortest version with a build 0.0.0+BUILD.\nconst MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6\n\nconst RELEASE_TYPES = [\n 'major',\n 'premajor',\n 'minor',\n 'preminor',\n 'patch',\n 'prepatch',\n 'prerelease',\n]\n\nmodule.exports = {\n MAX_LENGTH,\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_SAFE_INTEGER,\n RELEASE_TYPES,\n SEMVER_SPEC_VERSION,\n FLAG_INCLUDE_PRERELEASE: 0b001,\n FLAG_LOOSE: 0b010,\n}\n","'use strict'\n\nconst {\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_LENGTH,\n} = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst safeRe = exports.safeRe = []\nconst src = exports.src = []\nconst safeSrc = exports.safeSrc = []\nconst t = exports.t = {}\nlet R = 0\n\nconst LETTERDASHNUMBER = '[a-zA-Z0-9-]'\n\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nconst safeRegexReplacements = [\n ['\\\\s', 1],\n ['\\\\d', MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n]\n\nconst makeSafeRegex = (value) => {\n for (const [token, max] of safeRegexReplacements) {\n value = value\n .split(`${token}*`).join(`${token}{0,${max}}`)\n .split(`${token}+`).join(`${token}{1,${max}}`)\n }\n return value\n}\n\nconst createToken = (name, value, isGlobal) => {\n const safe = makeSafeRegex(value)\n const index = R++\n debug(name, index, value)\n t[name] = index\n src[index] = value\n safeSrc[index] = safe\n re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n safeRe[index] = new RegExp(safe, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '\\\\d+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`)\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n// Non-numberic identifiers include numberic identifiers but can be longer.\n// Therefore non-numberic identifiers must go first.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NONNUMERICIDENTIFIER]\n}|${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NONNUMERICIDENTIFIER]\n}|${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', `${LETTERDASHNUMBER}+`)\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:${src[t.PRERELEASE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:${src[t.PRERELEASELOOSE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCEPLAIN', `${'(^|[^\\\\d])' +\n '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`)\ncreateToken('COERCE', `${src[t.COERCEPLAIN]}(?:$|[^\\\\d])`)\ncreateToken('COERCEFULL', src[t.COERCEPLAIN] +\n `(?:${src[t.PRERELEASE]})?` +\n `(?:${src[t.BUILD]})?` +\n `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\ncreateToken('COERCERTLFULL', src[t.COERCEFULL], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAIN]})` +\n `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$')\n","'use strict'\n\n// parse out just the options we care about\nconst looseOption = Object.freeze({ loose: true })\nconst emptyOpts = Object.freeze({ })\nconst parseOptions = options => {\n if (!options) {\n return emptyOpts\n }\n\n if (typeof options !== 'object') {\n return looseOption\n }\n\n return options\n}\nmodule.exports = parseOptions\n","'use strict'\n\nconst numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n if (typeof a === 'number' && typeof b === 'number') {\n return a === b ? 0 : a < b ? -1 : 1\n }\n\n const anum = numeric.test(a)\n const bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n compareIdentifiers,\n rcompareIdentifiers,\n}\n","'use strict'\n\nconst debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst parseOptions = require('../internal/parse-options')\nconst { compareIdentifiers } = require('../internal/identifiers')\nclass SemVer {\n constructor (version, options) {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose &&\n version.includePrerelease === !!options.includePrerelease) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n )\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease\n\n const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n }\n\n format () {\n this.version = `${this.major}.${this.minor}.${this.patch}`\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join('.')}`\n }\n return this.version\n }\n\n toString () {\n return this.version\n }\n\n compare (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n if (typeof other === 'string' && other === this.version) {\n return 0\n }\n other = new SemVer(other, this.options)\n }\n\n if (other.version === this.version) {\n return 0\n }\n\n return this.compareMain(other) || this.comparePre(other)\n }\n\n compareMain (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n if (this.major < other.major) {\n return -1\n }\n if (this.major > other.major) {\n return 1\n }\n if (this.minor < other.minor) {\n return -1\n }\n if (this.minor > other.minor) {\n return 1\n }\n if (this.patch < other.patch) {\n return -1\n }\n if (this.patch > other.patch) {\n return 1\n }\n return 0\n }\n\n comparePre (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n let i = 0\n do {\n const a = this.prerelease[i]\n const b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n compareBuild (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n let i = 0\n do {\n const a = this.build[i]\n const b = other.build[i]\n debug('build compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc (release, identifier, identifierBase) {\n if (release.startsWith('pre')) {\n if (!identifier && identifierBase === false) {\n throw new Error('invalid increment argument: identifier is empty')\n }\n // Avoid an invalid semver results\n if (identifier) {\n const match = `-${identifier}`.match(this.options.loose ? re[t.PRERELEASELOOSE] : re[t.PRERELEASE])\n if (!match || match[1] !== identifier) {\n throw new Error(`invalid identifier: ${identifier}`)\n }\n }\n }\n\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier, identifierBase)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier, identifierBase)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier, identifierBase)\n this.inc('pre', identifier, identifierBase)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier, identifierBase)\n }\n this.inc('pre', identifier, identifierBase)\n break\n case 'release':\n if (this.prerelease.length === 0) {\n throw new Error(`version ${this.raw} is not a prerelease`)\n }\n this.prerelease.length = 0\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (\n this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0\n ) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case 'pre': {\n const base = Number(identifierBase) ? 1 : 0\n\n if (this.prerelease.length === 0) {\n this.prerelease = [base]\n } else {\n let i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n if (identifier === this.prerelease.join('.') && identifierBase === false) {\n throw new Error('invalid increment argument: identifier already exists')\n }\n this.prerelease.push(base)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n let prerelease = [identifier, base]\n if (identifierBase === false) {\n prerelease = [identifier]\n }\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = prerelease\n }\n } else {\n this.prerelease = prerelease\n }\n }\n break\n }\n default:\n throw new Error(`invalid increment argument: ${release}`)\n }\n this.raw = this.format()\n if (this.build.length) {\n this.raw += `+${this.build.join('.')}`\n }\n return this\n }\n}\n\nmodule.exports = SemVer\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst major = (a, loose) => new SemVer(a, loose).major\nmodule.exports = major\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst parse = (version, options, throwErrors = false) => {\n if (version instanceof SemVer) {\n return version\n }\n try {\n return new SemVer(version, options)\n } catch (er) {\n if (!throwErrors) {\n return null\n }\n throw er\n }\n}\n\nmodule.exports = parse\n","'use strict'\n\nconst parse = require('./parse')\nconst valid = (version, options) => {\n const v = parse(version, options)\n return v ? v.version : null\n}\nmodule.exports = valid\n","import major from \"semver/functions/major.js\";\nimport valid from \"semver/functions/valid.js\";\n/*!\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nclass ProxyBus {\n bus;\n constructor(bus2) {\n if (typeof bus2.getVersion !== \"function\" || !valid(bus2.getVersion())) {\n console.warn(\"Proxying an event bus with an unknown or invalid version\");\n } else if (major(bus2.getVersion()) !== major(this.getVersion())) {\n console.warn(\n \"Proxying an event bus of version \" + bus2.getVersion() + \" with \" + this.getVersion()\n );\n }\n this.bus = bus2;\n }\n getVersion() {\n return \"3.3.3\";\n }\n subscribe(name, handler) {\n this.bus.subscribe(name, handler);\n }\n unsubscribe(name, handler) {\n this.bus.unsubscribe(name, handler);\n }\n emit(name, ...event) {\n this.bus.emit(name, ...event);\n }\n}\n/*!\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nclass SimpleBus {\n handlers = /* @__PURE__ */ new Map();\n getVersion() {\n return \"3.3.3\";\n }\n subscribe(name, handler) {\n this.handlers.set(\n name,\n (this.handlers.get(name) || []).concat(\n handler\n )\n );\n }\n unsubscribe(name, handler) {\n this.handlers.set(\n name,\n (this.handlers.get(name) || []).filter((h) => h !== handler)\n );\n }\n emit(name, ...event) {\n const handlers = this.handlers.get(name) || [];\n handlers.forEach((h) => {\n try {\n ;\n h(event[0]);\n } catch (e) {\n console.error(\"could not invoke event listener\", e);\n }\n });\n }\n}\n/*!\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nlet bus = null;\nfunction getBus() {\n if (bus !== null) {\n return bus;\n }\n if (typeof window === \"undefined\") {\n return new Proxy({}, {\n get: () => {\n return () => console.error(\n \"Window not available, EventBus can not be established!\"\n );\n }\n });\n }\n if (window.OC?._eventBus && typeof window._nc_event_bus === \"undefined\") {\n console.warn(\n \"found old event bus instance at OC._eventBus. Update your version!\"\n );\n window._nc_event_bus = window.OC._eventBus;\n }\n if (typeof window?._nc_event_bus !== \"undefined\") {\n bus = new ProxyBus(window._nc_event_bus);\n } else {\n bus = window._nc_event_bus = new SimpleBus();\n }\n return bus;\n}\nfunction subscribe(name, handler) {\n getBus().subscribe(name, handler);\n}\nfunction unsubscribe(name, handler) {\n getBus().unsubscribe(name, handler);\n}\nfunction emit(name, ...event) {\n getBus().emit(name, ...event);\n}\nexport {\n ProxyBus,\n SimpleBus,\n emit,\n subscribe,\n unsubscribe\n};\n//# sourceMappingURL=index.mjs.map\n","/*\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nexport default class ScopedStorage {\n static GLOBAL_SCOPE_VOLATILE = 'nextcloud_vol';\n static GLOBAL_SCOPE_PERSISTENT = 'nextcloud_per';\n scope;\n wrapped;\n constructor(scope, wrapped, persistent) {\n this.scope = `${persistent ? ScopedStorage.GLOBAL_SCOPE_PERSISTENT : ScopedStorage.GLOBAL_SCOPE_VOLATILE}_${btoa(scope)}_`;\n this.wrapped = wrapped;\n }\n scopeKey(key) {\n return `${this.scope}${key}`;\n }\n setItem(key, value) {\n this.wrapped.setItem(this.scopeKey(key), value);\n }\n getItem(key) {\n return this.wrapped.getItem(this.scopeKey(key));\n }\n removeItem(key) {\n this.wrapped.removeItem(this.scopeKey(key));\n }\n clear() {\n Object.keys(this.wrapped)\n .filter((key) => key.startsWith(this.scope))\n .map(this.wrapped.removeItem.bind(this.wrapped));\n }\n}\n","/*\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nimport ScopedStorage from \"./ScopedStorage.js\";\nexport default class StorageBuilder {\n appId;\n persisted = false;\n clearedOnLogout = false;\n constructor(appId) {\n this.appId = appId;\n }\n persist(persist = true) {\n this.persisted = persist;\n return this;\n }\n clearOnLogout(clear = true) {\n this.clearedOnLogout = clear;\n return this;\n }\n build() {\n return new ScopedStorage(this.appId, this.persisted ? window.localStorage : window.sessionStorage, !this.clearedOnLogout);\n }\n}\n","/*\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nimport ScopedStorage from \"./ScopedStorage.js\";\nimport StorageBuilder from \"./StorageBuilder.js\";\n/**\n * Get the storage builder for an app\n *\n * @param appId App ID to scope storage\n */\nexport function getBuilder(appId) {\n return new StorageBuilder(appId);\n}\n/**\n * Clear values from storage\n *\n * @param storage The storage to clear\n * @param pred Callback to check if value should be cleared\n */\nfunction clearStorage(storage, pred) {\n Object.keys(storage)\n .filter((k) => pred ? pred(k) : true)\n .map(storage.removeItem.bind(storage));\n}\n/**\n * Clear all values from all storages\n */\nexport function clearAll() {\n const storages = [\n window.sessionStorage,\n window.localStorage,\n ];\n storages.map((s) => clearStorage(s));\n}\n/**\n * Clear ony non persistent values\n */\nexport function clearNonPersistent() {\n const storages = [\n window.sessionStorage,\n window.localStorage,\n ];\n storages.map((s) => clearStorage(s, (k) => !k.startsWith(ScopedStorage.GLOBAL_SCOPE_PERSISTENT)));\n}\n","import { subscribe, emit } from \"@nextcloud/event-bus\";\nimport { getBuilder } from \"@nextcloud/browser-storage\";\nlet token;\nconst observers = [];\nfunction getRequestToken() {\n if (token === void 0) {\n token = document.head.dataset.requesttoken ?? null;\n }\n return token;\n}\nfunction onRequestTokenUpdate(observer) {\n observers.push(observer);\n}\nsubscribe(\"csrf-token-update\", (e) => {\n token = e.token;\n observers.forEach((observer) => {\n try {\n observer(token);\n } catch (error) {\n console.error(\"Error updating CSRF token observer\", error);\n }\n });\n});\nfunction getCSPNonce() {\n const meta = document?.querySelector('meta[name=\"csp-nonce\"]');\n if (!meta) {\n const token2 = getRequestToken();\n return token2 ? btoa(token2) : void 0;\n }\n return meta.nonce;\n}\n/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nconst browserStorage = getBuilder(\"public\").persist().build();\nclass GuestUser {\n _displayName;\n uid;\n isAdmin;\n constructor() {\n if (!browserStorage.getItem(\"guestUid\")) {\n browserStorage.setItem(\"guestUid\", randomUUID());\n }\n this._displayName = browserStorage.getItem(\"guestNickname\") || \"\";\n this.uid = browserStorage.getItem(\"guestUid\") || randomUUID();\n this.isAdmin = false;\n subscribe(\"user:info:changed\", (guest) => {\n this._displayName = guest.displayName;\n browserStorage.setItem(\"guestNickname\", guest.displayName || \"\");\n });\n }\n get displayName() {\n return this._displayName;\n }\n set displayName(displayName) {\n this._displayName = displayName;\n browserStorage.setItem(\"guestNickname\", displayName);\n emit(\"user:info:changed\", this);\n }\n}\nlet currentUser$1;\nfunction getGuestUser() {\n if (!currentUser$1) {\n currentUser$1 = new GuestUser();\n }\n return currentUser$1;\n}\nfunction getGuestNickname() {\n return getGuestUser()?.displayName || null;\n}\nfunction setGuestNickname(nickname) {\n if (!nickname || nickname.trim().length === 0) {\n throw new Error(\"Nickname cannot be empty\");\n }\n getGuestUser().displayName = nickname;\n}\nfunction randomUUID() {\n if (globalThis.crypto?.randomUUID) {\n return globalThis.crypto.randomUUID();\n }\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, (c) => {\n const r = Math.random() * 16 | 0;\n const v = c === \"x\" ? r : r & 3 | 8;\n return v.toString(16);\n });\n}\nlet currentUser;\nfunction getAttribute(el, attribute) {\n if (el) {\n return el.getAttribute(attribute);\n }\n return null;\n}\nfunction getCurrentUser() {\n if (currentUser !== void 0) {\n return currentUser;\n }\n const head = document?.getElementsByTagName(\"head\")[0];\n if (!head) {\n return null;\n }\n const uid = getAttribute(head, \"data-user\");\n if (uid === null) {\n currentUser = null;\n return currentUser;\n }\n currentUser = {\n uid,\n displayName: getAttribute(head, \"data-user-displayname\"),\n isAdmin: !!window._oc_isadmin\n };\n return currentUser;\n}\nexport {\n getCSPNonce,\n getCurrentUser,\n getGuestNickname,\n getGuestUser,\n getRequestToken,\n onRequestTokenUpdate,\n setGuestNickname\n};\n//# sourceMappingURL=index.mjs.map\n","export default function debounce(function_, wait = 100, options = {}) {\n\tif (typeof function_ !== 'function') {\n\t\tthrow new TypeError(`Expected the first parameter to be a function, got \\`${typeof function_}\\`.`);\n\t}\n\n\tif (wait < 0) {\n\t\tthrow new RangeError('`wait` must not be negative.');\n\t}\n\n\tif (typeof options === 'boolean') {\n\t\tthrow new TypeError('The `options` parameter must be an object, not a boolean. Use `{immediate: true}` instead.');\n\t}\n\n\tconst {immediate} = options;\n\n\tlet storedContext;\n\tlet storedArguments;\n\tlet timeoutId;\n\tlet timestamp;\n\tlet result;\n\n\tfunction run() {\n\t\tconst callContext = storedContext;\n\t\tconst callArguments = storedArguments;\n\t\tstoredContext = undefined;\n\t\tstoredArguments = undefined;\n\t\tresult = function_.apply(callContext, callArguments);\n\t\treturn result;\n\t}\n\n\tfunction later() {\n\t\tconst last = Date.now() - timestamp;\n\n\t\tif (last < wait && last >= 0) {\n\t\t\ttimeoutId = setTimeout(later, wait - last);\n\t\t} else {\n\t\t\ttimeoutId = undefined;\n\n\t\t\tif (!immediate) {\n\t\t\t\tresult = run();\n\t\t\t}\n\t\t}\n\t}\n\n\tconst debounced = function (...arguments_) {\n\t\tif (\n\t\t\tstoredContext\n\t\t\t&& this !== storedContext\n\t\t\t&& Object.getPrototypeOf(this) === Object.getPrototypeOf(storedContext)\n\t\t) {\n\t\t\tthrow new Error('Debounced method called with different contexts of the same prototype.');\n\t\t}\n\n\t\tstoredContext = this; // eslint-disable-line unicorn/no-this-assignment\n\t\tstoredArguments = arguments_;\n\t\ttimestamp = Date.now();\n\n\t\tconst callNow = immediate && !timeoutId;\n\n\t\tif (!timeoutId) {\n\t\t\ttimeoutId = setTimeout(later, wait);\n\t\t}\n\n\t\tif (callNow) {\n\t\t\tresult = run();\n\t\t\treturn result;\n\t\t}\n\n\t\treturn undefined;\n\t};\n\n\tObject.defineProperty(debounced, 'isPending', {\n\t\tget() {\n\t\t\treturn timeoutId !== undefined;\n\t\t},\n\t});\n\n\tdebounced.clear = () => {\n\t\tif (!timeoutId) {\n\t\t\treturn;\n\t\t}\n\n\t\tclearTimeout(timeoutId);\n\t\ttimeoutId = undefined;\n\t\tstoredContext = undefined;\n\t\tstoredArguments = undefined;\n\t};\n\n\tdebounced.flush = () => {\n\t\tif (!timeoutId) {\n\t\t\treturn;\n\t\t}\n\n\t\tdebounced.trigger();\n\t};\n\n\tdebounced.trigger = () => {\n\t\tresult = run();\n\n\t\tdebounced.clear();\n\t};\n\n\treturn debounced;\n}\n","import { getCurrentUser } from \"@nextcloud/auth\";\nvar LogLevel = /* @__PURE__ */ ((LogLevel2) => {\n LogLevel2[LogLevel2[\"Debug\"] = 0] = \"Debug\";\n LogLevel2[LogLevel2[\"Info\"] = 1] = \"Info\";\n LogLevel2[LogLevel2[\"Warn\"] = 2] = \"Warn\";\n LogLevel2[LogLevel2[\"Error\"] = 3] = \"Error\";\n LogLevel2[LogLevel2[\"Fatal\"] = 4] = \"Fatal\";\n return LogLevel2;\n})(LogLevel || {});\nclass ConsoleLogger {\n context;\n constructor(context) {\n this.context = context || {};\n }\n formatMessage(message, level, context) {\n let msg = \"[\" + LogLevel[level].toUpperCase() + \"] \";\n if (context && context.app) {\n msg += context.app + \": \";\n }\n if (typeof message === \"string\") return msg + message;\n msg += `Unexpected ${message.name}`;\n if (message.message) msg += ` \"${message.message}\"`;\n if (level === LogLevel.Debug && message.stack) msg += `\n\nStack trace:\n${message.stack}`;\n return msg;\n }\n log(level, message, context) {\n if (typeof this.context?.level === \"number\" && level < this.context?.level) {\n return;\n }\n if (typeof message === \"object\" && context?.error === void 0) {\n context.error = message;\n }\n switch (level) {\n case LogLevel.Debug:\n console.debug(this.formatMessage(message, LogLevel.Debug, context), context);\n break;\n case LogLevel.Info:\n console.info(this.formatMessage(message, LogLevel.Info, context), context);\n break;\n case LogLevel.Warn:\n console.warn(this.formatMessage(message, LogLevel.Warn, context), context);\n break;\n case LogLevel.Error:\n console.error(this.formatMessage(message, LogLevel.Error, context), context);\n break;\n case LogLevel.Fatal:\n default:\n console.error(this.formatMessage(message, LogLevel.Fatal, context), context);\n break;\n }\n }\n debug(message, context) {\n this.log(LogLevel.Debug, message, Object.assign({}, this.context, context));\n }\n info(message, context) {\n this.log(LogLevel.Info, message, Object.assign({}, this.context, context));\n }\n warn(message, context) {\n this.log(LogLevel.Warn, message, Object.assign({}, this.context, context));\n }\n error(message, context) {\n this.log(LogLevel.Error, message, Object.assign({}, this.context, context));\n }\n fatal(message, context) {\n this.log(LogLevel.Fatal, message, Object.assign({}, this.context, context));\n }\n}\nfunction buildConsoleLogger(context) {\n return new ConsoleLogger(context);\n}\nclass LoggerBuilder {\n context;\n factory;\n constructor(factory) {\n this.context = {};\n this.factory = factory;\n }\n /**\n * Set the app name within the logging context\n *\n * @param appId App name\n */\n setApp(appId) {\n this.context.app = appId;\n return this;\n }\n /**\n * Set the logging level within the logging context\n *\n * @param level Logging level\n */\n setLogLevel(level) {\n this.context.level = level;\n return this;\n }\n /* eslint-disable jsdoc/no-undefined-types */\n /**\n * Set the user id within the logging context\n * @param uid User ID\n * @see {@link detectUser}\n */\n /* eslint-enable jsdoc/no-undefined-types */\n setUid(uid) {\n this.context.uid = uid;\n return this;\n }\n /**\n * Detect the currently logged in user and set the user id within the logging context\n */\n detectUser() {\n const user = getCurrentUser();\n if (user !== null) {\n this.context.uid = user.uid;\n }\n return this;\n }\n /**\n * Detect and use logging level configured in nextcloud config\n */\n detectLogLevel() {\n const self = this;\n const onLoaded = () => {\n if (document.readyState === \"complete\" || document.readyState === \"interactive\") {\n self.context.level = window._oc_config?.loglevel ?? LogLevel.Warn;\n if (window._oc_debug) {\n self.context.level = LogLevel.Debug;\n }\n document.removeEventListener(\"readystatechange\", onLoaded);\n } else {\n document.addEventListener(\"readystatechange\", onLoaded);\n }\n };\n onLoaded();\n return this;\n }\n /** Build a logger using the logging context and factory */\n build() {\n if (this.context.level === void 0) {\n this.detectLogLevel();\n }\n return this.factory(this.context);\n }\n}\nfunction getLoggerBuilder() {\n return new LoggerBuilder(buildConsoleLogger);\n}\nfunction getLogger() {\n return getLoggerBuilder().build();\n}\nexport {\n LogLevel,\n getLogger,\n getLoggerBuilder\n};\n//# sourceMappingURL=index.mjs.map\n"],"names":["getDefaultExportFromCjs","x","browser","process","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","runClearTimeout","marker","queue","draining","currentQueue","queueIndex","cleanUpNextTick","drainQueue","timeout","len","args","i","Item","array","noop","name","dir","browserExports","process$1","debug_1","define_process_env_default","SEMVER_SPEC_VERSION","MAX_LENGTH","MAX_SAFE_INTEGER","MAX_SAFE_COMPONENT_LENGTH","MAX_SAFE_BUILD_LENGTH","constants","require$$0","debug","require$$1","exports","module","re","safeRe","src","safeSrc","R","LETTERDASHNUMBER","safeRegexReplacements","makeSafeRegex","value","token","max","createToken","isGlobal","safe","index","looseOption","emptyOpts","parseOptions_1","options","numeric","compareIdentifiers","a","b","anum","bnum","identifiers","t","require$$2","parseOptions","require$$3","require$$4","SemVer","version","m","id","num","other","release","identifier","identifierBase","match","base","prerelease","semver","major_1","loose","parse_1","throwErrors","er","parse","valid_1","v","ProxyBus","bus2","valid","major","handler","event","SimpleBus","h","e","bus","getBus","subscribe","unsubscribe","emit","ScopedStorage","scope","wrapped","persistent","key","StorageBuilder","appId","persist","clear","getBuilder","observers","getRequestToken","onRequestTokenUpdate","observer","error","currentUser","getAttribute","el","attribute","getCurrentUser","head","uid","debounce","function_","wait","immediate","storedContext","storedArguments","timeoutId","timestamp","result","run","callContext","callArguments","later","last","debounced","arguments_","callNow","LogLevel","LogLevel2","ConsoleLogger","context","message","level","msg","buildConsoleLogger","LoggerBuilder","factory","user","self","onLoaded","getLoggerBuilder"],"mappings":"uNAAA,SAASA,GAAyBC,EAAG,CACpC,OAAOA,GAAKA,EAAE,YAAc,OAAO,UAAU,eAAe,KAAKA,EAAG,SAAS,EAAIA,EAAE,QAAaA,CACjG,CAEA,IAAIC,GAAU,CAAC,QAAS,EAAC,EAGrBC,EAAUD,GAAQ,QAAU,CAAA,EAO5BE,EACAC,EAEJ,SAASC,GAAmB,CACxB,MAAM,IAAI,MAAM,iCAAiC,CACrD,CACA,SAASC,GAAuB,CAC5B,MAAM,IAAI,MAAM,mCAAmC,CACvD,EACC,UAAY,CACT,GAAI,CACI,OAAO,YAAe,WACtBH,EAAmB,WAEnBA,EAAmBE,CAE3B,MAAY,CACRF,EAAmBE,CACvB,CACA,GAAI,CACI,OAAO,cAAiB,WACxBD,EAAqB,aAErBA,EAAqBE,CAE7B,MAAY,CACRF,EAAqBE,CACzB,CACJ,GAAA,EACA,SAASC,GAAWC,EAAK,CACrB,GAAIL,IAAqB,WAErB,OAAO,WAAWK,EAAK,CAAC,EAG5B,IAAKL,IAAqBE,GAAoB,CAACF,IAAqB,WAChE,OAAAA,EAAmB,WACZ,WAAWK,EAAK,CAAC,EAE5B,GAAI,CAEA,OAAOL,EAAiBK,EAAK,CAAC,CAClC,MAAU,CACN,GAAI,CAEA,OAAOL,EAAiB,KAAK,KAAMK,EAAK,CAAC,CAC7C,MAAU,CAEN,OAAOL,EAAiB,KAAK,KAAMK,EAAK,CAAC,CAC7C,CACJ,CAGJ,CACA,SAASC,GAAgBC,EAAQ,CAC7B,GAAIN,IAAuB,aAEvB,OAAO,aAAaM,CAAM,EAG9B,IAAKN,IAAuBE,GAAuB,CAACF,IAAuB,aACvE,OAAAA,EAAqB,aACd,aAAaM,CAAM,EAE9B,GAAI,CAEA,OAAON,EAAmBM,CAAM,CACpC,MAAW,CACP,GAAI,CAEA,OAAON,EAAmB,KAAK,KAAMM,CAAM,CAC/C,MAAW,CAGP,OAAON,EAAmB,KAAK,KAAMM,CAAM,CAC/C,CACJ,CAIJ,CACA,IAAIC,EAAQ,CAAA,EACRC,EAAW,GACXC,EACAC,EAAa,GAEjB,SAASC,IAAkB,CACnB,CAACH,GAAY,CAACC,IAGlBD,EAAW,GACPC,EAAa,OACbF,EAAQE,EAAa,OAAOF,CAAK,EAEjCG,EAAa,GAEbH,EAAM,QACNK,GAAA,EAER,CAEA,SAASA,IAAa,CAClB,GAAI,CAAAJ,EAGJ,CAAA,IAAIK,EAAUV,GAAWQ,EAAe,EACxCH,EAAW,GAGX,QADIM,EAAMP,EAAM,OACVO,GAAK,CAGP,IAFAL,EAAeF,EACfA,EAAQ,CAAA,EACD,EAAEG,EAAaI,GACdL,GACAA,EAAaC,CAAU,EAAE,IAAA,EAGjCA,EAAa,GACbI,EAAMP,EAAM,MAChB,CACAE,EAAe,KACfD,EAAW,GACXH,GAAgBQ,CAAO,EAC3B,CAEAf,EAAQ,SAAW,SAAUM,EAAK,CAC9B,IAAIW,EAAO,IAAI,MAAM,UAAU,OAAS,CAAC,EACzC,GAAI,UAAU,OAAS,EACnB,QAASC,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAClCD,EAAKC,EAAI,CAAC,EAAI,UAAUA,CAAC,EAGjCT,EAAM,KAAK,IAAIU,GAAKb,EAAKW,CAAI,CAAC,EAC1BR,EAAM,SAAW,GAAK,CAACC,GACvBL,GAAWS,EAAU,CAE7B,EAGA,SAASK,GAAKb,EAAKc,EAAO,CACtB,KAAK,IAAMd,EACX,KAAK,MAAQc,CACjB,CACAD,GAAK,UAAU,IAAM,UAAY,CAC7B,KAAK,IAAI,MAAM,KAAM,KAAK,KAAK,CACnC,EACAnB,EAAQ,MAAQ,UAChBA,EAAQ,QAAU,GAClBA,EAAQ,IAAM,CAAA,EACdA,EAAQ,KAAO,CAAA,EACfA,EAAQ,QAAU,GAClBA,EAAQ,SAAW,CAAA,EAEnB,SAASqB,GAAO,CAAC,CAEjBrB,EAAQ,GAAKqB,EACbrB,EAAQ,YAAcqB,EACtBrB,EAAQ,KAAOqB,EACfrB,EAAQ,IAAMqB,EACdrB,EAAQ,eAAiBqB,EACzBrB,EAAQ,mBAAqBqB,EAC7BrB,EAAQ,KAAOqB,EACfrB,EAAQ,gBAAkBqB,EAC1BrB,EAAQ,oBAAsBqB,EAE9BrB,EAAQ,UAAY,SAAUsB,EAAM,CAAE,MAAO,CAAA,CAAG,EAEhDtB,EAAQ,QAAU,SAAUsB,EAAM,CAC9B,MAAM,IAAI,MAAM,kCAAkC,CACtD,EAEAtB,EAAQ,IAAM,UAAY,CAAE,MAAO,GAAI,EACvCA,EAAQ,MAAQ,SAAUuB,EAAK,CAC3B,MAAM,IAAI,MAAM,gCAAgC,CACpD,EACAvB,EAAQ,MAAQ,UAAW,CAAE,MAAO,EAAG,EAEvC,IAAIwB,GAAiBzB,GAAQ,QAC7B,MAAM0B,MAAiDD,EAAc,mDCtLrE,OAAAE,EAPE,OAAO1B,IAAY,UACnB2B,GACAA,EAAY,YACZ,cAAc,KAAKA,EAAY,UAAU,EACvC,IAAIV,IAAS,QAAQ,MAAM,SAAU,GAAGA,CAAI,EAC5C,IAAM,CAAC,4CCJX,MAAMW,EAAsB,QAEtBC,EAAa,IACbC,EAAmB,OAAO,kBACL,iBAGrBC,EAA4B,GAI5BC,EAAwBH,EAAa,EAY3C,OAAAI,EAAiB,CACf,WAAAJ,EACA,0BAAAE,EACA,sBAAAC,EACA,iBAAAF,EACA,cAfoB,CACpB,QACA,WACA,QACA,WACA,QACA,WACA,YACF,EAQE,oBAAAF,EACA,wBAAyB,EACzB,WAAY,CACd,qEClCA,KAAM,CACJ,0BAAAG,EACA,sBAAAC,EACA,WAAAH,CACF,EAAIK,GAAA,EACEC,EAAQC,GAAA,EACdC,EAAUC,EAAA,QAAiB,CAAA,EAG3B,MAAMC,EAAKF,EAAA,GAAa,CAAA,EAClBG,EAASH,EAAA,OAAiB,CAAA,EAC1BI,EAAMJ,EAAA,IAAc,CAAA,EACpBK,EAAUL,EAAA,QAAkB,CAAA,EAC5B,EAAIA,EAAA,EAAY,CAAA,EACtB,IAAIM,EAAI,EAER,MAAMC,EAAmB,eAQnBC,EAAwB,CAC5B,CAAC,MAAO,CAAC,EACT,CAAC,MAAOhB,CAAU,EAClB,CAACe,EAAkBZ,CAAqB,CAC1C,EAEMc,GAAiBC,GAAU,CAC/B,SAAW,CAACC,EAAOC,CAAG,IAAKJ,EACzBE,EAAQA,EACL,MAAM,GAAGC,CAAK,GAAG,EAAE,KAAK,GAAGA,CAAK,MAAMC,CAAG,GAAG,EAC5C,MAAM,GAAGD,CAAK,GAAG,EAAE,KAAK,GAAGA,CAAK,MAAMC,CAAG,GAAG,EAEjD,OAAOF,CACT,EAEMG,EAAc,CAAC5B,EAAMyB,EAAOI,IAAa,CAC7C,MAAMC,EAAON,GAAcC,CAAK,EAC1BM,EAAQV,IACdR,EAAMb,EAAM+B,EAAON,CAAK,EACxB,EAAEzB,CAAI,EAAI+B,EACVZ,EAAIY,CAAK,EAAIN,EACbL,EAAQW,CAAK,EAAID,EACjBb,EAAGc,CAAK,EAAI,IAAI,OAAON,EAAOI,EAAW,IAAM,MAAS,EACxDX,EAAOa,CAAK,EAAI,IAAI,OAAOD,EAAMD,EAAW,IAAM,MAAS,CAC7D,EAQAD,EAAY,oBAAqB,aAAa,EAC9CA,EAAY,yBAA0B,MAAM,EAM5CA,EAAY,uBAAwB,gBAAgBN,CAAgB,GAAG,EAKvEM,EAAY,cAAe,IAAIT,EAAI,EAAE,iBAAiB,CAAC,QAChCA,EAAI,EAAE,iBAAiB,CAAC,QACxBA,EAAI,EAAE,iBAAiB,CAAC,GAAG,EAElDS,EAAY,mBAAoB,IAAIT,EAAI,EAAE,sBAAsB,CAAC,QACrCA,EAAI,EAAE,sBAAsB,CAAC,QAC7BA,EAAI,EAAE,sBAAsB,CAAC,GAAG,EAO5DS,EAAY,uBAAwB,MAAMT,EAAI,EAAE,oBAAoB,KAChEA,EAAI,EAAE,iBAAiB,CAAC,GAAG,EAE/BS,EAAY,4BAA6B,MAAMT,EAAI,EAAE,oBAAoB,KACrEA,EAAI,EAAE,sBAAsB,CAAC,GAAG,EAMpCS,EAAY,aAAc,QAAQT,EAAI,EAAE,oBAAoB,UACnDA,EAAI,EAAE,oBAAoB,CAAC,MAAM,EAE1CS,EAAY,kBAAmB,SAAST,EAAI,EAAE,yBAAyB,UAC9DA,EAAI,EAAE,yBAAyB,CAAC,MAAM,EAK/CS,EAAY,kBAAmB,GAAGN,CAAgB,GAAG,EAMrDM,EAAY,QAAS,UAAUT,EAAI,EAAE,eAAe,UAC3CA,EAAI,EAAE,eAAe,CAAC,MAAM,EAWrCS,EAAY,YAAa,KAAKT,EAAI,EAAE,WAAW,IAC5CA,EAAI,EAAE,UAAU,CAAC,IAClBA,EAAI,EAAE,KAAK,CAAC,GAAG,EAEjBS,EAAY,OAAQ,IAAIT,EAAI,EAAE,SAAS,CAAC,GAAG,EAK3CS,EAAY,aAAc,WAAWT,EAAI,EAAE,gBAAgB,IACxDA,EAAI,EAAE,eAAe,CAAC,IACvBA,EAAI,EAAE,KAAK,CAAC,GAAG,EAEjBS,EAAY,QAAS,IAAIT,EAAI,EAAE,UAAU,CAAC,GAAG,EAE7CS,EAAY,OAAQ,cAAc,EAKlCA,EAAY,wBAAyB,GAAGT,EAAI,EAAE,sBAAsB,CAAC,UAAU,EAC/ES,EAAY,mBAAoB,GAAGT,EAAI,EAAE,iBAAiB,CAAC,UAAU,EAErES,EAAY,cAAe,YAAYT,EAAI,EAAE,gBAAgB,CAAC,WACjCA,EAAI,EAAE,gBAAgB,CAAC,WACvBA,EAAI,EAAE,gBAAgB,CAAC,OAC3BA,EAAI,EAAE,UAAU,CAAC,KACrBA,EAAI,EAAE,KAAK,CAAC,OACR,EAEzBS,EAAY,mBAAoB,YAAYT,EAAI,EAAE,qBAAqB,CAAC,WACtCA,EAAI,EAAE,qBAAqB,CAAC,WAC5BA,EAAI,EAAE,qBAAqB,CAAC,OAChCA,EAAI,EAAE,eAAe,CAAC,KAC1BA,EAAI,EAAE,KAAK,CAAC,OACR,EAE9BS,EAAY,SAAU,IAAIT,EAAI,EAAE,IAAI,CAAC,OAAOA,EAAI,EAAE,WAAW,CAAC,GAAG,EACjES,EAAY,cAAe,IAAIT,EAAI,EAAE,IAAI,CAAC,OAAOA,EAAI,EAAE,gBAAgB,CAAC,GAAG,EAI3ES,EAAY,cAAe,oBACDnB,CAAyB,kBACrBA,CAAyB,oBACzBA,CAAyB,MAAM,EAC7DmB,EAAY,SAAU,GAAGT,EAAI,EAAE,WAAW,CAAC,cAAc,EACzDS,EAAY,aAAcT,EAAI,EAAE,WAAW,EAC7B,MAAMA,EAAI,EAAE,UAAU,CAAC,QACjBA,EAAI,EAAE,KAAK,CAAC,gBACJ,EAC5BS,EAAY,YAAaT,EAAI,EAAE,MAAM,EAAG,EAAI,EAC5CS,EAAY,gBAAiBT,EAAI,EAAE,UAAU,EAAG,EAAI,EAIpDS,EAAY,YAAa,SAAS,EAElCA,EAAY,YAAa,SAAST,EAAI,EAAE,SAAS,CAAC,OAAQ,EAAI,EAC9DJ,EAAA,iBAA2B,MAE3Ba,EAAY,QAAS,IAAIT,EAAI,EAAE,SAAS,CAAC,GAAGA,EAAI,EAAE,WAAW,CAAC,GAAG,EACjES,EAAY,aAAc,IAAIT,EAAI,EAAE,SAAS,CAAC,GAAGA,EAAI,EAAE,gBAAgB,CAAC,GAAG,EAI3ES,EAAY,YAAa,SAAS,EAElCA,EAAY,YAAa,SAAST,EAAI,EAAE,SAAS,CAAC,OAAQ,EAAI,EAC9DJ,EAAA,iBAA2B,MAE3Ba,EAAY,QAAS,IAAIT,EAAI,EAAE,SAAS,CAAC,GAAGA,EAAI,EAAE,WAAW,CAAC,GAAG,EACjES,EAAY,aAAc,IAAIT,EAAI,EAAE,SAAS,CAAC,GAAGA,EAAI,EAAE,gBAAgB,CAAC,GAAG,EAG3ES,EAAY,kBAAmB,IAAIT,EAAI,EAAE,IAAI,CAAC,QAAQA,EAAI,EAAE,UAAU,CAAC,OAAO,EAC9ES,EAAY,aAAc,IAAIT,EAAI,EAAE,IAAI,CAAC,QAAQA,EAAI,EAAE,SAAS,CAAC,OAAO,EAIxES,EAAY,iBAAkB,SAAST,EAAI,EAAE,IAAI,SACzCA,EAAI,EAAE,UAAU,CAAC,IAAIA,EAAI,EAAE,WAAW,CAAC,IAAK,EAAI,EACxDJ,EAAA,sBAAgC,SAMhCa,EAAY,cAAe,SAAST,EAAI,EAAE,WAAW,CAAC,cAE/BA,EAAI,EAAE,WAAW,CAAC,QACf,EAE1BS,EAAY,mBAAoB,SAAST,EAAI,EAAE,gBAAgB,CAAC,cAEpCA,EAAI,EAAE,gBAAgB,CAAC,QACpB,EAG/BS,EAAY,OAAQ,iBAAiB,EAErCA,EAAY,OAAQ,2BAA2B,EAC/CA,EAAY,UAAW,6BAA6B,oEC3NpD,MAAMI,EAAc,OAAO,OAAO,CAAE,MAAO,EAAI,CAAE,EAC3CC,EAAY,OAAO,OAAO,CAAA,CAAG,EAYnC,OAAAC,EAXqBC,GACdA,EAID,OAAOA,GAAY,SACdH,EAGFG,EAPEF,4CCLX,MAAMG,EAAU,WACVC,EAAqB,CAACC,EAAGC,IAAM,CACnC,GAAI,OAAOD,GAAM,UAAY,OAAOC,GAAM,SACxC,OAAOD,IAAMC,EAAI,EAAID,EAAIC,EAAI,GAAK,EAGpC,MAAMC,EAAOJ,EAAQ,KAAKE,CAAC,EACrBG,EAAOL,EAAQ,KAAKG,CAAC,EAE3B,OAAIC,GAAQC,IACVH,EAAI,CAACA,EACLC,EAAI,CAACA,GAGAD,IAAMC,EAAI,EACZC,GAAQ,CAACC,EAAQ,GACjBA,GAAQ,CAACD,EAAQ,EAClBF,EAAIC,EAAI,GACR,CACN,EAIA,OAAAG,EAAiB,CACf,mBAAAL,EACA,oBAJ0B,CAACC,EAAGC,IAAMF,EAAmBE,EAAGD,CAAC,CAK7D,4CC1BA,MAAMzB,EAAQD,GAAA,EACR,CAAE,WAAAL,EAAY,iBAAAC,CAAgB,EAAKM,GAAA,EACnC,CAAE,OAAQG,EAAI,EAAA0B,CAAC,EAAKC,GAAA,EAEpBC,EAAeC,GAAA,EACf,CAAE,mBAAAT,CAAkB,EAAKU,GAAA,EAC/B,MAAMC,CAAO,CACX,YAAaC,EAASd,EAAS,CAG7B,GAFAA,EAAUU,EAAaV,CAAO,EAE1Bc,aAAmBD,EAAQ,CAC7B,GAAIC,EAAQ,QAAU,CAAC,CAACd,EAAQ,OAC9Bc,EAAQ,oBAAsB,CAAC,CAACd,EAAQ,kBACxC,OAAOc,EAEPA,EAAUA,EAAQ,OAE1B,SAAe,OAAOA,GAAY,SAC5B,MAAM,IAAI,UAAU,gDAAgD,OAAOA,CAAO,IAAI,EAGxF,GAAIA,EAAQ,OAAS1C,EACnB,MAAM,IAAI,UACR,0BAA0BA,CAAU,aAC5C,EAGIM,EAAM,SAAUoC,EAASd,CAAO,EAChC,KAAK,QAAUA,EACf,KAAK,MAAQ,CAAC,CAACA,EAAQ,MAGvB,KAAK,kBAAoB,CAAC,CAACA,EAAQ,kBAEnC,MAAMe,EAAID,EAAQ,KAAI,EAAG,MAAMd,EAAQ,MAAQlB,EAAG0B,EAAE,KAAK,EAAI1B,EAAG0B,EAAE,IAAI,CAAC,EAEvE,GAAI,CAACO,EACH,MAAM,IAAI,UAAU,oBAAoBD,CAAO,EAAE,EAUnD,GAPA,KAAK,IAAMA,EAGX,KAAK,MAAQ,CAACC,EAAE,CAAC,EACjB,KAAK,MAAQ,CAACA,EAAE,CAAC,EACjB,KAAK,MAAQ,CAACA,EAAE,CAAC,EAEb,KAAK,MAAQ1C,GAAoB,KAAK,MAAQ,EAChD,MAAM,IAAI,UAAU,uBAAuB,EAG7C,GAAI,KAAK,MAAQA,GAAoB,KAAK,MAAQ,EAChD,MAAM,IAAI,UAAU,uBAAuB,EAG7C,GAAI,KAAK,MAAQA,GAAoB,KAAK,MAAQ,EAChD,MAAM,IAAI,UAAU,uBAAuB,EAIxC0C,EAAE,CAAC,EAGN,KAAK,WAAaA,EAAE,CAAC,EAAE,MAAM,GAAG,EAAE,IAAKC,GAAO,CAC5C,GAAI,WAAW,KAAKA,CAAE,EAAG,CACvB,MAAMC,EAAM,CAACD,EACb,GAAIC,GAAO,GAAKA,EAAM5C,EACpB,OAAO4C,CAEnB,CACQ,OAAOD,CACf,CAAO,EAVD,KAAK,WAAa,CAAA,EAapB,KAAK,MAAQD,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAE,MAAM,GAAG,EAAI,CAAA,EACtC,KAAK,OAAM,CACf,CAEE,QAAU,CACR,OAAA,KAAK,QAAU,GAAG,KAAK,KAAK,IAAI,KAAK,KAAK,IAAI,KAAK,KAAK,GACpD,KAAK,WAAW,SAClB,KAAK,SAAW,IAAI,KAAK,WAAW,KAAK,GAAG,CAAC,IAExC,KAAK,OAChB,CAEE,UAAY,CACV,OAAO,KAAK,OAChB,CAEE,QAASG,EAAO,CAEd,GADAxC,EAAM,iBAAkB,KAAK,QAAS,KAAK,QAASwC,CAAK,EACrD,EAAEA,aAAiBL,GAAS,CAC9B,GAAI,OAAOK,GAAU,UAAYA,IAAU,KAAK,QAC9C,MAAO,GAETA,EAAQ,IAAIL,EAAOK,EAAO,KAAK,OAAO,CAC5C,CAEI,OAAIA,EAAM,UAAY,KAAK,QAClB,EAGF,KAAK,YAAYA,CAAK,GAAK,KAAK,WAAWA,CAAK,CAC3D,CAEE,YAAaA,EAAO,CAKlB,OAJMA,aAAiBL,IACrBK,EAAQ,IAAIL,EAAOK,EAAO,KAAK,OAAO,GAGpC,KAAK,MAAQA,EAAM,MACd,GAEL,KAAK,MAAQA,EAAM,MACd,EAEL,KAAK,MAAQA,EAAM,MACd,GAEL,KAAK,MAAQA,EAAM,MACd,EAEL,KAAK,MAAQA,EAAM,MACd,GAEL,KAAK,MAAQA,EAAM,MACd,EAEF,CACX,CAEE,WAAYA,EAAO,CAMjB,GALMA,aAAiBL,IACrBK,EAAQ,IAAIL,EAAOK,EAAO,KAAK,OAAO,GAIpC,KAAK,WAAW,QAAU,CAACA,EAAM,WAAW,OAC9C,MAAO,GACF,GAAI,CAAC,KAAK,WAAW,QAAUA,EAAM,WAAW,OACrD,SACK,GAAI,CAAC,KAAK,WAAW,QAAU,CAACA,EAAM,WAAW,OACtD,MAAO,GAGT,IAAIzD,EAAI,EACR,EAAG,CACD,MAAM0C,EAAI,KAAK,WAAW1C,CAAC,EACrB2C,EAAIc,EAAM,WAAWzD,CAAC,EAE5B,GADAiB,EAAM,qBAAsBjB,EAAG0C,EAAGC,CAAC,EAC/BD,IAAM,QAAaC,IAAM,OAC3B,MAAO,GACF,GAAIA,IAAM,OACf,SACK,GAAID,IAAM,OACf,MAAO,GACF,GAAIA,IAAMC,EAGf,OAAOF,EAAmBC,EAAGC,CAAC,CAEtC,OAAa,EAAE3C,EACf,CAEE,aAAcyD,EAAO,CACbA,aAAiBL,IACrBK,EAAQ,IAAIL,EAAOK,EAAO,KAAK,OAAO,GAGxC,IAAIzD,EAAI,EACR,EAAG,CACD,MAAM0C,EAAI,KAAK,MAAM1C,CAAC,EAChB2C,EAAIc,EAAM,MAAMzD,CAAC,EAEvB,GADAiB,EAAM,gBAAiBjB,EAAG0C,EAAGC,CAAC,EAC1BD,IAAM,QAAaC,IAAM,OAC3B,SACK,GAAIA,IAAM,OACf,MAAO,GACF,GAAID,IAAM,OACf,MAAO,GACF,GAAIA,IAAMC,EAGf,OAAOF,EAAmBC,EAAGC,CAAC,CAEtC,OAAa,EAAE3C,EACf,CAIE,IAAK0D,EAASC,EAAYC,EAAgB,CACxC,GAAIF,EAAQ,WAAW,KAAK,EAAG,CAC7B,GAAI,CAACC,GAAcC,IAAmB,GACpC,MAAM,IAAI,MAAM,iDAAiD,EAGnE,GAAID,EAAY,CACd,MAAME,EAAQ,IAAIF,CAAU,GAAG,MAAM,KAAK,QAAQ,MAAQtC,EAAG0B,EAAE,eAAe,EAAI1B,EAAG0B,EAAE,UAAU,CAAC,EAClG,GAAI,CAACc,GAASA,EAAM,CAAC,IAAMF,EACzB,MAAM,IAAI,MAAM,uBAAuBA,CAAU,EAAE,CAE7D,CACA,CAEI,OAAQD,EAAO,CACb,IAAK,WACH,KAAK,WAAW,OAAS,EACzB,KAAK,MAAQ,EACb,KAAK,MAAQ,EACb,KAAK,QACL,KAAK,IAAI,MAAOC,EAAYC,CAAc,EAC1C,MACF,IAAK,WACH,KAAK,WAAW,OAAS,EACzB,KAAK,MAAQ,EACb,KAAK,QACL,KAAK,IAAI,MAAOD,EAAYC,CAAc,EAC1C,MACF,IAAK,WAIH,KAAK,WAAW,OAAS,EACzB,KAAK,IAAI,QAASD,EAAYC,CAAc,EAC5C,KAAK,IAAI,MAAOD,EAAYC,CAAc,EAC1C,MAGF,IAAK,aACC,KAAK,WAAW,SAAW,GAC7B,KAAK,IAAI,QAASD,EAAYC,CAAc,EAE9C,KAAK,IAAI,MAAOD,EAAYC,CAAc,EAC1C,MACF,IAAK,UACH,GAAI,KAAK,WAAW,SAAW,EAC7B,MAAM,IAAI,MAAM,WAAW,KAAK,GAAG,sBAAsB,EAE3D,KAAK,WAAW,OAAS,EACzB,MAEF,IAAK,SAMD,KAAK,QAAU,GACf,KAAK,QAAU,GACf,KAAK,WAAW,SAAW,IAE3B,KAAK,QAEP,KAAK,MAAQ,EACb,KAAK,MAAQ,EACb,KAAK,WAAa,CAAA,EAClB,MACF,IAAK,SAKC,KAAK,QAAU,GAAK,KAAK,WAAW,SAAW,IACjD,KAAK,QAEP,KAAK,MAAQ,EACb,KAAK,WAAa,CAAA,EAClB,MACF,IAAK,QAKC,KAAK,WAAW,SAAW,GAC7B,KAAK,QAEP,KAAK,WAAa,CAAA,EAClB,MAGF,IAAK,MAAO,CACV,MAAME,EAAO,OAAOF,CAAc,EAAI,EAAI,EAE1C,GAAI,KAAK,WAAW,SAAW,EAC7B,KAAK,WAAa,CAACE,CAAI,MAClB,CACL,IAAI9D,EAAI,KAAK,WAAW,OACxB,KAAO,EAAEA,GAAK,GACR,OAAO,KAAK,WAAWA,CAAC,GAAM,WAChC,KAAK,WAAWA,CAAC,IACjBA,EAAI,IAGR,GAAIA,IAAM,GAAI,CAEZ,GAAI2D,IAAe,KAAK,WAAW,KAAK,GAAG,GAAKC,IAAmB,GACjE,MAAM,IAAI,MAAM,uDAAuD,EAEzE,KAAK,WAAW,KAAKE,CAAI,CACrC,CACA,CACQ,GAAIH,EAAY,CAGd,IAAII,EAAa,CAACJ,EAAYG,CAAI,EAC9BF,IAAmB,KACrBG,EAAa,CAACJ,CAAU,GAEtBlB,EAAmB,KAAK,WAAW,CAAC,EAAGkB,CAAU,IAAM,EACrD,MAAM,KAAK,WAAW,CAAC,CAAC,IAC1B,KAAK,WAAaI,GAGpB,KAAK,WAAaA,CAE9B,CACQ,KACR,CACM,QACE,MAAM,IAAI,MAAM,+BAA+BL,CAAO,EAAE,CAChE,CACI,YAAK,IAAM,KAAK,OAAM,EAClB,KAAK,MAAM,SACb,KAAK,KAAO,IAAI,KAAK,MAAM,KAAK,GAAG,CAAC,IAE/B,IACX,CACA,CAEA,OAAAM,EAAiBZ,4CC1UjB,MAAMA,EAASpC,GAAA,EAEf,OAAAiD,EADc,CAACvB,EAAGwB,IAAU,IAAId,EAAOV,EAAGwB,CAAK,EAAE,2ECDjD,MAAMd,EAASpC,GAAA,EAef,OAAAmD,EAdc,CAACd,EAASd,EAAS6B,EAAc,KAAU,CACvD,GAAIf,aAAmBD,EACrB,OAAOC,EAET,GAAI,CACF,OAAO,IAAID,EAAOC,EAASd,CAAO,CACtC,OAAW8B,EAAI,CACX,GAAI,CAACD,EACH,OAAO,KAET,MAAMC,CACV,CACA,+CCbA,MAAMC,EAAQtD,GAAA,EAKd,OAAAuD,EAJc,CAAClB,EAASd,IAAY,CAClC,MAAMiC,EAAIF,EAAMjB,EAASd,CAAO,EAChC,OAAOiC,EAAIA,EAAE,QAAU,IACzB,gCCAA,MAAMC,EAAS,CACb,IACA,YAAYC,EAAM,CACZ,OAAOA,EAAK,YAAe,YAAc,CAACC,GAAMD,EAAK,WAAU,CAAE,EACnE,QAAQ,KAAK,0DAA0D,EAC9DE,EAAMF,EAAK,WAAU,CAAE,IAAME,EAAM,KAAK,WAAU,CAAE,GAC7D,QAAQ,KACN,oCAAsCF,EAAK,WAAU,EAAK,SAAW,KAAK,WAAU,CAC5F,EAEI,KAAK,IAAMA,CACb,CACA,YAAa,CACX,MAAO,OACT,CACA,UAAUtE,EAAMyE,EAAS,CACvB,KAAK,IAAI,UAAUzE,EAAMyE,CAAO,CAClC,CACA,YAAYzE,EAAMyE,EAAS,CACzB,KAAK,IAAI,YAAYzE,EAAMyE,CAAO,CACpC,CACA,KAAKzE,KAAS0E,EAAO,CACnB,KAAK,IAAI,KAAK1E,EAAM,GAAG0E,CAAK,CAC9B,CACF,CAKA,MAAMC,EAAU,CACd,SAA2B,IAAI,IAC/B,YAAa,CACX,MAAO,OACT,CACA,UAAU3E,EAAMyE,EAAS,CACvB,KAAK,SAAS,IACZzE,GACC,KAAK,SAAS,IAAIA,CAAI,GAAK,CAAA,GAAI,OAC9ByE,CACR,CACA,CACE,CACA,YAAYzE,EAAMyE,EAAS,CACzB,KAAK,SAAS,IACZzE,GACC,KAAK,SAAS,IAAIA,CAAI,GAAK,CAAA,GAAI,OAAQ4E,GAAMA,IAAMH,CAAO,CACjE,CACE,CACA,KAAKzE,KAAS0E,EAAO,EACF,KAAK,SAAS,IAAI1E,CAAI,GAAK,CAAA,GACnC,QAAS4E,GAAM,CACtB,GAAI,CAEFA,EAAEF,EAAM,CAAC,CAAC,CACZ,OAASG,EAAG,CACV,QAAQ,MAAM,kCAAmCA,CAAC,CACpD,CACF,CAAC,CACH,CACF,CAKA,IAAIC,EAAM,KACV,SAASC,GAAS,CAChB,OAAID,IAAQ,KACHA,EAEL,OAAO,OAAW,IACb,IAAI,MAAM,GAAI,CACnB,IAAK,IACI,IAAM,QAAQ,MACnB,wDACV,CAEA,CAAK,GAEC,OAAO,IAAI,WAAa,OAAO,OAAO,cAAkB,MAC1D,QAAQ,KACN,oEACN,EACI,OAAO,cAAgB,OAAO,GAAG,WAE/B,OAAO,QAAQ,cAAkB,IACnCA,EAAM,IAAIT,GAAS,OAAO,aAAa,EAEvCS,EAAM,OAAO,cAAgB,IAAIH,GAE5BG,EACT,CACA,SAASE,GAAUhF,EAAMyE,EAAS,CAChCM,IAAS,UAAU/E,EAAMyE,CAAO,CAClC,CACA,SAASQ,GAAYjF,EAAMyE,EAAS,CAClCM,IAAS,YAAY/E,EAAMyE,CAAO,CACpC,CACA,SAASS,GAAKlF,KAAS0E,EAAO,CAC5BK,IAAS,KAAK/E,EAAM,GAAG0E,CAAK,CAC9B,CCrGe,MAAMS,CAAc,CAC/B,OAAO,sBAAwB,gBAC/B,OAAO,wBAA0B,gBACjC,MACA,QACA,YAAYC,EAAOC,EAASC,EAAY,CACpC,KAAK,MAAQ,GAAGA,EAAaH,EAAc,wBAA0BA,EAAc,qBAAqB,IAAI,KAAKC,CAAK,CAAC,IACvH,KAAK,QAAUC,CACnB,CACA,SAASE,EAAK,CACV,MAAO,GAAG,KAAK,KAAK,GAAGA,CAAG,EAC9B,CACA,QAAQA,EAAK9D,EAAO,CAChB,KAAK,QAAQ,QAAQ,KAAK,SAAS8D,CAAG,EAAG9D,CAAK,CAClD,CACA,QAAQ8D,EAAK,CACT,OAAO,KAAK,QAAQ,QAAQ,KAAK,SAASA,CAAG,CAAC,CAClD,CACA,WAAWA,EAAK,CACZ,KAAK,QAAQ,WAAW,KAAK,SAASA,CAAG,CAAC,CAC9C,CACA,OAAQ,CACJ,OAAO,KAAK,KAAK,OAAO,EACnB,OAAQA,GAAQA,EAAI,WAAW,KAAK,KAAK,CAAC,EAC1C,IAAI,KAAK,QAAQ,WAAW,KAAK,KAAK,OAAO,CAAC,CACvD,CACJ,CCzBe,MAAMC,EAAe,CAChC,MACA,UAAY,GACZ,gBAAkB,GAClB,YAAYC,EAAO,CACf,KAAK,MAAQA,CACjB,CACA,QAAQC,EAAU,GAAM,CACpB,OAAA,KAAK,UAAYA,EACV,IACX,CACA,cAAcC,EAAQ,GAAM,CACxB,OAAA,KAAK,gBAAkBA,EAChB,IACX,CACA,OAAQ,CACJ,OAAO,IAAIR,EAAc,KAAK,MAAO,KAAK,UAAY,OAAO,aAAe,OAAO,eAAgB,CAAC,KAAK,eAAe,CAC5H,CACJ,CCZO,SAASS,GAAWH,EAAO,CAC9B,OAAO,IAAID,GAAeC,CAAK,CACnC,CCXA,IAAI/D,EACJ,MAAMmE,GAAY,CAAA,EAClB,SAASC,IAAkB,CACzB,OAAIpE,IAAU,SACZA,EAAQ,SAAS,KAAK,QAAQ,cAAgB,MAEzCA,CACT,CACA,SAASqE,GAAqBC,EAAU,CACtCH,GAAU,KAAKG,CAAQ,CACzB,CACAhB,GAAU,oBAAsBH,GAAM,CACpCnD,EAAQmD,EAAE,MACVgB,GAAU,QAASG,GAAa,CAC9B,GAAI,CACFA,EAAStE,CAAK,CAChB,OAASuE,EAAO,CACd,QAAQ,MAAM,qCAAsCA,CAAK,CAC3D,CACF,CAAC,CACH,CAAC,EAasBL,GAAW,QAAQ,EAAE,QAAO,EAAG,MAAK,EAoD3D,IAAIM,EACJ,SAASC,GAAaC,EAAIC,EAAW,CACnC,OAAID,EACKA,EAAG,aAAaC,CAAS,EAE3B,IACT,CACA,SAASC,IAAiB,CACxB,GAAIJ,IAAgB,OAClB,OAAOA,EAET,MAAMK,EAAO,UAAU,qBAAqB,MAAM,EAAE,CAAC,EACrD,GAAI,CAACA,EACH,OAAO,KAET,MAAMC,EAAML,GAAaI,EAAM,WAAW,EAC1C,OAAIC,IAAQ,MACVN,EAAc,KACPA,IAETA,EAAc,CACZ,IAAAM,EACA,YAAaL,GAAaI,EAAM,uBAAuB,EACvD,QAAS,CAAC,CAAC,OAAO,WACtB,EACSL,EACT,CCjHe,SAASO,GAASC,EAAWC,EAAO,IAAKxE,EAAU,CAAA,EAAI,CACrE,GAAI,OAAOuE,GAAc,WACxB,MAAM,IAAI,UAAU,wDAAwD,OAAOA,CAAS,KAAK,EAGlG,GAAIC,EAAO,EACV,MAAM,IAAI,WAAW,8BAA8B,EAGpD,GAAI,OAAOxE,GAAY,UACtB,MAAM,IAAI,UAAU,4FAA4F,EAGjH,KAAM,CAAC,UAAAyE,CAAS,EAAIzE,EAEpB,IAAI0E,EACAC,EACAC,EACAC,EACAC,EAEJ,SAASC,GAAM,CACd,MAAMC,EAAcN,EACdO,EAAgBN,EACtB,OAAAD,EAAgB,OAChBC,EAAkB,OAClBG,EAASP,EAAU,MAAMS,EAAaC,CAAa,EAC5CH,CACR,CAEA,SAASI,GAAQ,CAChB,MAAMC,EAAO,KAAK,IAAG,EAAKN,EAEtBM,EAAOX,GAAQW,GAAQ,EAC1BP,EAAY,WAAWM,EAAOV,EAAOW,CAAI,GAEzCP,EAAY,OAEPH,IACJK,EAASC,EAAG,GAGf,CAEA,MAAMK,EAAY,YAAaC,EAAY,CAC1C,GACCX,GACG,OAASA,GACT,OAAO,eAAe,IAAI,IAAM,OAAO,eAAeA,CAAa,EAEtE,MAAM,IAAI,MAAM,wEAAwE,EAGzFA,EAAgB,KAChBC,EAAkBU,EAClBR,EAAY,KAAK,IAAG,EAEpB,MAAMS,EAAUb,GAAa,CAACG,EAM9B,GAJKA,IACJA,EAAY,WAAWM,EAAOV,CAAI,GAG/Bc,EACH,OAAAR,EAASC,EAAG,EACLD,CAIT,EAEA,OAAA,OAAO,eAAeM,EAAW,YAAa,CAC7C,KAAM,CACL,OAAOR,IAAc,MACtB,CACF,CAAE,EAEDQ,EAAU,MAAQ,IAAM,CAClBR,IAIL,aAAaA,CAAS,EACtBA,EAAY,OACZF,EAAgB,OAChBC,EAAkB,OACnB,EAEAS,EAAU,MAAQ,IAAM,CAClBR,GAILQ,EAAU,QAAO,CAClB,EAEAA,EAAU,QAAU,IAAM,CACzBN,EAASC,EAAG,EAEZK,EAAU,MAAK,CAChB,EAEOA,CACR,CCtGA,IAAIG,GAA6BC,IAC/BA,EAAUA,EAAU,MAAW,CAAC,EAAI,QACpCA,EAAUA,EAAU,KAAU,CAAC,EAAI,OACnCA,EAAUA,EAAU,KAAU,CAAC,EAAI,OACnCA,EAAUA,EAAU,MAAW,CAAC,EAAI,QACpCA,EAAUA,EAAU,MAAW,CAAC,EAAI,QAC7BA,IACND,GAAY,CAAA,CAAE,EACjB,MAAME,EAAc,CAClB,QACA,YAAYC,EAAS,CACnB,KAAK,QAAUA,GAAW,CAAA,CAC5B,CACA,cAAcC,EAASC,EAAOF,EAAS,CACrC,IAAIG,EAAM,IAAMN,EAASK,CAAK,EAAE,YAAW,EAAK,KAIhD,OAHIF,GAAWA,EAAQ,MACrBG,GAAOH,EAAQ,IAAM,MAEnB,OAAOC,GAAY,SAAiBE,EAAMF,GAC9CE,GAAO,cAAcF,EAAQ,IAAI,GAC7BA,EAAQ,UAASE,GAAO,KAAKF,EAAQ,OAAO,KAC5CC,IAAUL,EAAS,OAASI,EAAQ,QAAOE,GAAO;AAAA;AAAA;AAAA,EAGxDF,EAAQ,KAAK,IACJE,EACT,CACA,IAAID,EAAOD,EAASD,EAAS,CAC3B,GAAI,EAAA,OAAO,KAAK,SAAS,OAAU,UAAYE,EAAQ,KAAK,SAAS,OAMrE,OAHI,OAAOD,GAAY,UAAYD,GAAS,QAAU,SACpDA,EAAQ,MAAQC,GAEVC,EAAK,CACX,KAAKL,EAAS,MACZ,QAAQ,MAAM,KAAK,cAAcI,EAASJ,EAAS,MAAOG,CAAO,EAAGA,CAAO,EAC3E,MACF,KAAKH,EAAS,KACZ,QAAQ,KAAK,KAAK,cAAcI,EAASJ,EAAS,KAAMG,CAAO,EAAGA,CAAO,EACzE,MACF,KAAKH,EAAS,KACZ,QAAQ,KAAK,KAAK,cAAcI,EAASJ,EAAS,KAAMG,CAAO,EAAGA,CAAO,EACzE,MACF,KAAKH,EAAS,MACZ,QAAQ,MAAM,KAAK,cAAcI,EAASJ,EAAS,MAAOG,CAAO,EAAGA,CAAO,EAC3E,MACF,KAAKH,EAAS,MACd,QACE,QAAQ,MAAM,KAAK,cAAcI,EAASJ,EAAS,MAAOG,CAAO,EAAGA,CAAO,EAC3E,KACR,CACE,CACA,MAAMC,EAASD,EAAS,CACtB,KAAK,IAAIH,EAAS,MAAOI,EAAS,OAAO,OAAO,GAAI,KAAK,QAASD,CAAO,CAAC,CAC5E,CACA,KAAKC,EAASD,EAAS,CACrB,KAAK,IAAIH,EAAS,KAAMI,EAAS,OAAO,OAAO,GAAI,KAAK,QAASD,CAAO,CAAC,CAC3E,CACA,KAAKC,EAASD,EAAS,CACrB,KAAK,IAAIH,EAAS,KAAMI,EAAS,OAAO,OAAO,GAAI,KAAK,QAASD,CAAO,CAAC,CAC3E,CACA,MAAMC,EAASD,EAAS,CACtB,KAAK,IAAIH,EAAS,MAAOI,EAAS,OAAO,OAAO,GAAI,KAAK,QAASD,CAAO,CAAC,CAC5E,CACA,MAAMC,EAASD,EAAS,CACtB,KAAK,IAAIH,EAAS,MAAOI,EAAS,OAAO,OAAO,GAAI,KAAK,QAASD,CAAO,CAAC,CAC5E,CACF,CACA,SAASI,GAAmBJ,EAAS,CACnC,OAAO,IAAID,GAAcC,CAAO,CAClC,CACA,MAAMK,EAAc,CAClB,QACA,QACA,YAAYC,EAAS,CACnB,KAAK,QAAU,CAAA,EACf,KAAK,QAAUA,CACjB,CAMA,OAAO1C,EAAO,CACZ,YAAK,QAAQ,IAAMA,EACZ,IACT,CAMA,YAAYsC,EAAO,CACjB,YAAK,QAAQ,MAAQA,EACd,IACT,CAQA,OAAOvB,EAAK,CACV,YAAK,QAAQ,IAAMA,EACZ,IACT,CAIA,YAAa,CACX,MAAM4B,EAAO9B,GAAc,EAC3B,OAAI8B,IAAS,OACX,KAAK,QAAQ,IAAMA,EAAK,KAEnB,IACT,CAIA,gBAAiB,CACf,MAAMC,EAAO,KACPC,EAAW,IAAM,CACjB,SAAS,aAAe,YAAc,SAAS,aAAe,eAChED,EAAK,QAAQ,MAAQ,OAAO,YAAY,UAAYX,EAAS,KACzD,OAAO,YACTW,EAAK,QAAQ,MAAQX,EAAS,OAEhC,SAAS,oBAAoB,mBAAoBY,CAAQ,GAEzD,SAAS,iBAAiB,mBAAoBA,CAAQ,CAE1D,EACA,OAAAA,EAAQ,EACD,IACT,CAEA,OAAQ,CACN,OAAI,KAAK,QAAQ,QAAU,QACzB,KAAK,eAAc,EAEd,KAAK,QAAQ,KAAK,OAAO,CAClC,CACF,CACA,SAASC,IAAmB,CAC1B,OAAO,IAAIL,GAAcD,EAAkB,CAC7C","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]} \ No newline at end of file +{"version":3,"file":"index-Bndk0DrU.chunk.mjs","sources":["../node_modules/vite-plugin-node-polyfills/shims/process/dist/index.js","../node_modules/semver/internal/debug.js","../node_modules/semver/internal/constants.js","../node_modules/semver/internal/re.js","../node_modules/semver/internal/parse-options.js","../node_modules/semver/internal/identifiers.js","../node_modules/semver/classes/semver.js","../node_modules/semver/functions/major.js","../node_modules/semver/functions/parse.js","../node_modules/semver/functions/valid.js","../node_modules/@nextcloud/event-bus/dist/index.mjs","../node_modules/@nextcloud/browser-storage/dist/ScopedStorage.js","../node_modules/@nextcloud/browser-storage/dist/StorageBuilder.js","../node_modules/@nextcloud/browser-storage/dist/index.js","../node_modules/@nextcloud/auth/dist/index.mjs","../node_modules/debounce/index.js","../node_modules/@nextcloud/logger/dist/index.mjs"],"sourcesContent":["function getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nvar browser = {exports: {}};\n\n// shim for using process in browser\nvar process = browser.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ());\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] };\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\nvar browserExports = browser.exports;\nconst process$1 = /*@__PURE__*/getDefaultExportFromCjs(browserExports);\n\nexport { process$1 as default, process$1 as process };\n//# sourceMappingURL=index.js.map\n","'use strict'\n\nconst debug = (\n typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n : () => {}\n\nmodule.exports = debug\n","'use strict'\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n/* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\n// Max safe length for a build identifier. The max length minus 6 characters for\n// the shortest version with a build 0.0.0+BUILD.\nconst MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6\n\nconst RELEASE_TYPES = [\n 'major',\n 'premajor',\n 'minor',\n 'preminor',\n 'patch',\n 'prepatch',\n 'prerelease',\n]\n\nmodule.exports = {\n MAX_LENGTH,\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_SAFE_INTEGER,\n RELEASE_TYPES,\n SEMVER_SPEC_VERSION,\n FLAG_INCLUDE_PRERELEASE: 0b001,\n FLAG_LOOSE: 0b010,\n}\n","'use strict'\n\nconst {\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_LENGTH,\n} = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst safeRe = exports.safeRe = []\nconst src = exports.src = []\nconst safeSrc = exports.safeSrc = []\nconst t = exports.t = {}\nlet R = 0\n\nconst LETTERDASHNUMBER = '[a-zA-Z0-9-]'\n\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nconst safeRegexReplacements = [\n ['\\\\s', 1],\n ['\\\\d', MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n]\n\nconst makeSafeRegex = (value) => {\n for (const [token, max] of safeRegexReplacements) {\n value = value\n .split(`${token}*`).join(`${token}{0,${max}}`)\n .split(`${token}+`).join(`${token}{1,${max}}`)\n }\n return value\n}\n\nconst createToken = (name, value, isGlobal) => {\n const safe = makeSafeRegex(value)\n const index = R++\n debug(name, index, value)\n t[name] = index\n src[index] = value\n safeSrc[index] = safe\n re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n safeRe[index] = new RegExp(safe, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '\\\\d+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`)\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n// Non-numberic identifiers include numberic identifiers but can be longer.\n// Therefore non-numberic identifiers must go first.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NONNUMERICIDENTIFIER]\n}|${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NONNUMERICIDENTIFIER]\n}|${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', `${LETTERDASHNUMBER}+`)\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:${src[t.PRERELEASE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:${src[t.PRERELEASELOOSE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCEPLAIN', `${'(^|[^\\\\d])' +\n '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`)\ncreateToken('COERCE', `${src[t.COERCEPLAIN]}(?:$|[^\\\\d])`)\ncreateToken('COERCEFULL', src[t.COERCEPLAIN] +\n `(?:${src[t.PRERELEASE]})?` +\n `(?:${src[t.BUILD]})?` +\n `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\ncreateToken('COERCERTLFULL', src[t.COERCEFULL], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAIN]})` +\n `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$')\n","'use strict'\n\n// parse out just the options we care about\nconst looseOption = Object.freeze({ loose: true })\nconst emptyOpts = Object.freeze({ })\nconst parseOptions = options => {\n if (!options) {\n return emptyOpts\n }\n\n if (typeof options !== 'object') {\n return looseOption\n }\n\n return options\n}\nmodule.exports = parseOptions\n","'use strict'\n\nconst numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n if (typeof a === 'number' && typeof b === 'number') {\n return a === b ? 0 : a < b ? -1 : 1\n }\n\n const anum = numeric.test(a)\n const bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n compareIdentifiers,\n rcompareIdentifiers,\n}\n","'use strict'\n\nconst debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst parseOptions = require('../internal/parse-options')\nconst { compareIdentifiers } = require('../internal/identifiers')\nclass SemVer {\n constructor (version, options) {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose &&\n version.includePrerelease === !!options.includePrerelease) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n )\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease\n\n const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n }\n\n format () {\n this.version = `${this.major}.${this.minor}.${this.patch}`\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join('.')}`\n }\n return this.version\n }\n\n toString () {\n return this.version\n }\n\n compare (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n if (typeof other === 'string' && other === this.version) {\n return 0\n }\n other = new SemVer(other, this.options)\n }\n\n if (other.version === this.version) {\n return 0\n }\n\n return this.compareMain(other) || this.comparePre(other)\n }\n\n compareMain (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n if (this.major < other.major) {\n return -1\n }\n if (this.major > other.major) {\n return 1\n }\n if (this.minor < other.minor) {\n return -1\n }\n if (this.minor > other.minor) {\n return 1\n }\n if (this.patch < other.patch) {\n return -1\n }\n if (this.patch > other.patch) {\n return 1\n }\n return 0\n }\n\n comparePre (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n let i = 0\n do {\n const a = this.prerelease[i]\n const b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n compareBuild (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n let i = 0\n do {\n const a = this.build[i]\n const b = other.build[i]\n debug('build compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc (release, identifier, identifierBase) {\n if (release.startsWith('pre')) {\n if (!identifier && identifierBase === false) {\n throw new Error('invalid increment argument: identifier is empty')\n }\n // Avoid an invalid semver results\n if (identifier) {\n const match = `-${identifier}`.match(this.options.loose ? re[t.PRERELEASELOOSE] : re[t.PRERELEASE])\n if (!match || match[1] !== identifier) {\n throw new Error(`invalid identifier: ${identifier}`)\n }\n }\n }\n\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier, identifierBase)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier, identifierBase)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier, identifierBase)\n this.inc('pre', identifier, identifierBase)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier, identifierBase)\n }\n this.inc('pre', identifier, identifierBase)\n break\n case 'release':\n if (this.prerelease.length === 0) {\n throw new Error(`version ${this.raw} is not a prerelease`)\n }\n this.prerelease.length = 0\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (\n this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0\n ) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case 'pre': {\n const base = Number(identifierBase) ? 1 : 0\n\n if (this.prerelease.length === 0) {\n this.prerelease = [base]\n } else {\n let i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n if (identifier === this.prerelease.join('.') && identifierBase === false) {\n throw new Error('invalid increment argument: identifier already exists')\n }\n this.prerelease.push(base)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n let prerelease = [identifier, base]\n if (identifierBase === false) {\n prerelease = [identifier]\n }\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = prerelease\n }\n } else {\n this.prerelease = prerelease\n }\n }\n break\n }\n default:\n throw new Error(`invalid increment argument: ${release}`)\n }\n this.raw = this.format()\n if (this.build.length) {\n this.raw += `+${this.build.join('.')}`\n }\n return this\n }\n}\n\nmodule.exports = SemVer\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst major = (a, loose) => new SemVer(a, loose).major\nmodule.exports = major\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst parse = (version, options, throwErrors = false) => {\n if (version instanceof SemVer) {\n return version\n }\n try {\n return new SemVer(version, options)\n } catch (er) {\n if (!throwErrors) {\n return null\n }\n throw er\n }\n}\n\nmodule.exports = parse\n","'use strict'\n\nconst parse = require('./parse')\nconst valid = (version, options) => {\n const v = parse(version, options)\n return v ? v.version : null\n}\nmodule.exports = valid\n","import major from \"semver/functions/major.js\";\nimport valid from \"semver/functions/valid.js\";\n/*!\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nclass ProxyBus {\n bus;\n constructor(bus2) {\n if (typeof bus2.getVersion !== \"function\" || !valid(bus2.getVersion())) {\n console.warn(\"Proxying an event bus with an unknown or invalid version\");\n } else if (major(bus2.getVersion()) !== major(this.getVersion())) {\n console.warn(\n \"Proxying an event bus of version \" + bus2.getVersion() + \" with \" + this.getVersion()\n );\n }\n this.bus = bus2;\n }\n getVersion() {\n return \"3.3.3\";\n }\n subscribe(name, handler) {\n this.bus.subscribe(name, handler);\n }\n unsubscribe(name, handler) {\n this.bus.unsubscribe(name, handler);\n }\n emit(name, ...event) {\n this.bus.emit(name, ...event);\n }\n}\n/*!\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nclass SimpleBus {\n handlers = /* @__PURE__ */ new Map();\n getVersion() {\n return \"3.3.3\";\n }\n subscribe(name, handler) {\n this.handlers.set(\n name,\n (this.handlers.get(name) || []).concat(\n handler\n )\n );\n }\n unsubscribe(name, handler) {\n this.handlers.set(\n name,\n (this.handlers.get(name) || []).filter((h) => h !== handler)\n );\n }\n emit(name, ...event) {\n const handlers = this.handlers.get(name) || [];\n handlers.forEach((h) => {\n try {\n ;\n h(event[0]);\n } catch (e) {\n console.error(\"could not invoke event listener\", e);\n }\n });\n }\n}\n/*!\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nlet bus = null;\nfunction getBus() {\n if (bus !== null) {\n return bus;\n }\n if (typeof window === \"undefined\") {\n return new Proxy({}, {\n get: () => {\n return () => console.error(\n \"Window not available, EventBus can not be established!\"\n );\n }\n });\n }\n if (window.OC?._eventBus && typeof window._nc_event_bus === \"undefined\") {\n console.warn(\n \"found old event bus instance at OC._eventBus. Update your version!\"\n );\n window._nc_event_bus = window.OC._eventBus;\n }\n if (typeof window?._nc_event_bus !== \"undefined\") {\n bus = new ProxyBus(window._nc_event_bus);\n } else {\n bus = window._nc_event_bus = new SimpleBus();\n }\n return bus;\n}\nfunction subscribe(name, handler) {\n getBus().subscribe(name, handler);\n}\nfunction unsubscribe(name, handler) {\n getBus().unsubscribe(name, handler);\n}\nfunction emit(name, ...event) {\n getBus().emit(name, ...event);\n}\nexport {\n ProxyBus,\n SimpleBus,\n emit,\n subscribe,\n unsubscribe\n};\n//# sourceMappingURL=index.mjs.map\n","/*\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nexport default class ScopedStorage {\n static GLOBAL_SCOPE_VOLATILE = 'nextcloud_vol';\n static GLOBAL_SCOPE_PERSISTENT = 'nextcloud_per';\n scope;\n wrapped;\n constructor(scope, wrapped, persistent) {\n this.scope = `${persistent ? ScopedStorage.GLOBAL_SCOPE_PERSISTENT : ScopedStorage.GLOBAL_SCOPE_VOLATILE}_${btoa(scope)}_`;\n this.wrapped = wrapped;\n }\n scopeKey(key) {\n return `${this.scope}${key}`;\n }\n setItem(key, value) {\n this.wrapped.setItem(this.scopeKey(key), value);\n }\n getItem(key) {\n return this.wrapped.getItem(this.scopeKey(key));\n }\n removeItem(key) {\n this.wrapped.removeItem(this.scopeKey(key));\n }\n clear() {\n Object.keys(this.wrapped)\n .filter((key) => key.startsWith(this.scope))\n .map(this.wrapped.removeItem.bind(this.wrapped));\n }\n}\n","/*\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nimport ScopedStorage from \"./ScopedStorage.js\";\nexport default class StorageBuilder {\n appId;\n persisted = false;\n clearedOnLogout = false;\n constructor(appId) {\n this.appId = appId;\n }\n persist(persist = true) {\n this.persisted = persist;\n return this;\n }\n clearOnLogout(clear = true) {\n this.clearedOnLogout = clear;\n return this;\n }\n build() {\n return new ScopedStorage(this.appId, this.persisted ? window.localStorage : window.sessionStorage, !this.clearedOnLogout);\n }\n}\n","/*\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nimport ScopedStorage from \"./ScopedStorage.js\";\nimport StorageBuilder from \"./StorageBuilder.js\";\n/**\n * Get the storage builder for an app\n *\n * @param appId App ID to scope storage\n */\nexport function getBuilder(appId) {\n return new StorageBuilder(appId);\n}\n/**\n * Clear values from storage\n *\n * @param storage The storage to clear\n * @param pred Callback to check if value should be cleared\n */\nfunction clearStorage(storage, pred) {\n Object.keys(storage)\n .filter((k) => pred ? pred(k) : true)\n .map(storage.removeItem.bind(storage));\n}\n/**\n * Clear all values from all storages\n */\nexport function clearAll() {\n const storages = [\n window.sessionStorage,\n window.localStorage,\n ];\n storages.map((s) => clearStorage(s));\n}\n/**\n * Clear ony non persistent values\n */\nexport function clearNonPersistent() {\n const storages = [\n window.sessionStorage,\n window.localStorage,\n ];\n storages.map((s) => clearStorage(s, (k) => !k.startsWith(ScopedStorage.GLOBAL_SCOPE_PERSISTENT)));\n}\n","import { subscribe, emit } from \"@nextcloud/event-bus\";\nimport { getBuilder } from \"@nextcloud/browser-storage\";\nlet token;\nconst observers = [];\nfunction getRequestToken() {\n if (token === void 0) {\n token = document.head.dataset.requesttoken ?? null;\n }\n return token;\n}\nfunction onRequestTokenUpdate(observer) {\n observers.push(observer);\n}\nsubscribe(\"csrf-token-update\", (e) => {\n token = e.token;\n observers.forEach((observer) => {\n try {\n observer(token);\n } catch (error) {\n console.error(\"Error updating CSRF token observer\", error);\n }\n });\n});\nfunction getCSPNonce() {\n const meta = document?.querySelector('meta[name=\"csp-nonce\"]');\n if (!meta) {\n const token2 = getRequestToken();\n return token2 ? btoa(token2) : void 0;\n }\n return meta.nonce;\n}\n/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nconst browserStorage = getBuilder(\"public\").persist().build();\nclass GuestUser {\n _displayName;\n uid;\n isAdmin;\n constructor() {\n if (!browserStorage.getItem(\"guestUid\")) {\n browserStorage.setItem(\"guestUid\", randomUUID());\n }\n this._displayName = browserStorage.getItem(\"guestNickname\") || \"\";\n this.uid = browserStorage.getItem(\"guestUid\") || randomUUID();\n this.isAdmin = false;\n subscribe(\"user:info:changed\", (guest) => {\n this._displayName = guest.displayName;\n browserStorage.setItem(\"guestNickname\", guest.displayName || \"\");\n });\n }\n get displayName() {\n return this._displayName;\n }\n set displayName(displayName) {\n this._displayName = displayName;\n browserStorage.setItem(\"guestNickname\", displayName);\n emit(\"user:info:changed\", this);\n }\n}\nlet currentUser$1;\nfunction getGuestUser() {\n if (!currentUser$1) {\n currentUser$1 = new GuestUser();\n }\n return currentUser$1;\n}\nfunction getGuestNickname() {\n return getGuestUser()?.displayName || null;\n}\nfunction setGuestNickname(nickname) {\n if (!nickname || nickname.trim().length === 0) {\n throw new Error(\"Nickname cannot be empty\");\n }\n getGuestUser().displayName = nickname;\n}\nfunction randomUUID() {\n if (globalThis.crypto?.randomUUID) {\n return globalThis.crypto.randomUUID();\n }\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, (c) => {\n const r = Math.random() * 16 | 0;\n const v = c === \"x\" ? r : r & 3 | 8;\n return v.toString(16);\n });\n}\nlet currentUser;\nfunction getAttribute(el, attribute) {\n if (el) {\n return el.getAttribute(attribute);\n }\n return null;\n}\nfunction getCurrentUser() {\n if (currentUser !== void 0) {\n return currentUser;\n }\n const head = document?.getElementsByTagName(\"head\")[0];\n if (!head) {\n return null;\n }\n const uid = getAttribute(head, \"data-user\");\n if (uid === null) {\n currentUser = null;\n return currentUser;\n }\n currentUser = {\n uid,\n displayName: getAttribute(head, \"data-user-displayname\"),\n isAdmin: !!window._oc_isadmin\n };\n return currentUser;\n}\nexport {\n getCSPNonce,\n getCurrentUser,\n getGuestNickname,\n getGuestUser,\n getRequestToken,\n onRequestTokenUpdate,\n setGuestNickname\n};\n//# sourceMappingURL=index.mjs.map\n","export default function debounce(function_, wait = 100, options = {}) {\n\tif (typeof function_ !== 'function') {\n\t\tthrow new TypeError(`Expected the first parameter to be a function, got \\`${typeof function_}\\`.`);\n\t}\n\n\tif (wait < 0) {\n\t\tthrow new RangeError('`wait` must not be negative.');\n\t}\n\n\tif (typeof options === 'boolean') {\n\t\tthrow new TypeError('The `options` parameter must be an object, not a boolean. Use `{immediate: true}` instead.');\n\t}\n\n\tconst {immediate} = options;\n\n\tlet storedContext;\n\tlet storedArguments;\n\tlet timeoutId;\n\tlet timestamp;\n\tlet result;\n\n\tfunction run() {\n\t\tconst callContext = storedContext;\n\t\tconst callArguments = storedArguments;\n\t\tstoredContext = undefined;\n\t\tstoredArguments = undefined;\n\t\tresult = function_.apply(callContext, callArguments);\n\t\treturn result;\n\t}\n\n\tfunction later() {\n\t\tconst last = Date.now() - timestamp;\n\n\t\tif (last < wait && last >= 0) {\n\t\t\ttimeoutId = setTimeout(later, wait - last);\n\t\t} else {\n\t\t\ttimeoutId = undefined;\n\n\t\t\tif (!immediate) {\n\t\t\t\tresult = run();\n\t\t\t}\n\t\t}\n\t}\n\n\tconst debounced = function (...arguments_) {\n\t\tif (\n\t\t\tstoredContext\n\t\t\t&& this !== storedContext\n\t\t\t&& Object.getPrototypeOf(this) === Object.getPrototypeOf(storedContext)\n\t\t) {\n\t\t\tthrow new Error('Debounced method called with different contexts of the same prototype.');\n\t\t}\n\n\t\tstoredContext = this; // eslint-disable-line unicorn/no-this-assignment\n\t\tstoredArguments = arguments_;\n\t\ttimestamp = Date.now();\n\n\t\tconst callNow = immediate && !timeoutId;\n\n\t\tif (!timeoutId) {\n\t\t\ttimeoutId = setTimeout(later, wait);\n\t\t}\n\n\t\tif (callNow) {\n\t\t\tresult = run();\n\t\t\treturn result;\n\t\t}\n\n\t\treturn undefined;\n\t};\n\n\tObject.defineProperty(debounced, 'isPending', {\n\t\tget() {\n\t\t\treturn timeoutId !== undefined;\n\t\t},\n\t});\n\n\tdebounced.clear = () => {\n\t\tif (!timeoutId) {\n\t\t\treturn;\n\t\t}\n\n\t\tclearTimeout(timeoutId);\n\t\ttimeoutId = undefined;\n\t\tstoredContext = undefined;\n\t\tstoredArguments = undefined;\n\t};\n\n\tdebounced.flush = () => {\n\t\tif (!timeoutId) {\n\t\t\treturn;\n\t\t}\n\n\t\tdebounced.trigger();\n\t};\n\n\tdebounced.trigger = () => {\n\t\tresult = run();\n\n\t\tdebounced.clear();\n\t};\n\n\treturn debounced;\n}\n","import { getCurrentUser } from \"@nextcloud/auth\";\nvar LogLevel = /* @__PURE__ */ ((LogLevel2) => {\n LogLevel2[LogLevel2[\"Debug\"] = 0] = \"Debug\";\n LogLevel2[LogLevel2[\"Info\"] = 1] = \"Info\";\n LogLevel2[LogLevel2[\"Warn\"] = 2] = \"Warn\";\n LogLevel2[LogLevel2[\"Error\"] = 3] = \"Error\";\n LogLevel2[LogLevel2[\"Fatal\"] = 4] = \"Fatal\";\n return LogLevel2;\n})(LogLevel || {});\nclass ConsoleLogger {\n context;\n constructor(context) {\n this.context = context || {};\n }\n formatMessage(message, level, context) {\n let msg = \"[\" + LogLevel[level].toUpperCase() + \"] \";\n if (context && context.app) {\n msg += context.app + \": \";\n }\n if (typeof message === \"string\") return msg + message;\n msg += `Unexpected ${message.name}`;\n if (message.message) msg += ` \"${message.message}\"`;\n if (level === LogLevel.Debug && message.stack) msg += `\n\nStack trace:\n${message.stack}`;\n return msg;\n }\n log(level, message, context) {\n if (typeof this.context?.level === \"number\" && level < this.context?.level) {\n return;\n }\n if (typeof message === \"object\" && context?.error === void 0) {\n context.error = message;\n }\n switch (level) {\n case LogLevel.Debug:\n console.debug(this.formatMessage(message, LogLevel.Debug, context), context);\n break;\n case LogLevel.Info:\n console.info(this.formatMessage(message, LogLevel.Info, context), context);\n break;\n case LogLevel.Warn:\n console.warn(this.formatMessage(message, LogLevel.Warn, context), context);\n break;\n case LogLevel.Error:\n console.error(this.formatMessage(message, LogLevel.Error, context), context);\n break;\n case LogLevel.Fatal:\n default:\n console.error(this.formatMessage(message, LogLevel.Fatal, context), context);\n break;\n }\n }\n debug(message, context) {\n this.log(LogLevel.Debug, message, Object.assign({}, this.context, context));\n }\n info(message, context) {\n this.log(LogLevel.Info, message, Object.assign({}, this.context, context));\n }\n warn(message, context) {\n this.log(LogLevel.Warn, message, Object.assign({}, this.context, context));\n }\n error(message, context) {\n this.log(LogLevel.Error, message, Object.assign({}, this.context, context));\n }\n fatal(message, context) {\n this.log(LogLevel.Fatal, message, Object.assign({}, this.context, context));\n }\n}\nfunction buildConsoleLogger(context) {\n return new ConsoleLogger(context);\n}\nclass LoggerBuilder {\n context;\n factory;\n constructor(factory) {\n this.context = {};\n this.factory = factory;\n }\n /**\n * Set the app name within the logging context\n *\n * @param appId App name\n */\n setApp(appId) {\n this.context.app = appId;\n return this;\n }\n /**\n * Set the logging level within the logging context\n *\n * @param level Logging level\n */\n setLogLevel(level) {\n this.context.level = level;\n return this;\n }\n /* eslint-disable jsdoc/no-undefined-types */\n /**\n * Set the user id within the logging context\n * @param uid User ID\n * @see {@link detectUser}\n */\n /* eslint-enable jsdoc/no-undefined-types */\n setUid(uid) {\n this.context.uid = uid;\n return this;\n }\n /**\n * Detect the currently logged in user and set the user id within the logging context\n */\n detectUser() {\n const user = getCurrentUser();\n if (user !== null) {\n this.context.uid = user.uid;\n }\n return this;\n }\n /**\n * Detect and use logging level configured in nextcloud config\n */\n detectLogLevel() {\n const self = this;\n const onLoaded = () => {\n if (document.readyState === \"complete\" || document.readyState === \"interactive\") {\n self.context.level = window._oc_config?.loglevel ?? LogLevel.Warn;\n if (window._oc_debug) {\n self.context.level = LogLevel.Debug;\n }\n document.removeEventListener(\"readystatechange\", onLoaded);\n } else {\n document.addEventListener(\"readystatechange\", onLoaded);\n }\n };\n onLoaded();\n return this;\n }\n /** Build a logger using the logging context and factory */\n build() {\n if (this.context.level === void 0) {\n this.detectLogLevel();\n }\n return this.factory(this.context);\n }\n}\nfunction getLoggerBuilder() {\n return new LoggerBuilder(buildConsoleLogger);\n}\nfunction getLogger() {\n return getLoggerBuilder().build();\n}\nexport {\n LogLevel,\n getLogger,\n getLoggerBuilder\n};\n//# sourceMappingURL=index.mjs.map\n"],"names":["getDefaultExportFromCjs","x","browser","process","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","runClearTimeout","marker","queue","draining","currentQueue","queueIndex","cleanUpNextTick","drainQueue","timeout","len","args","i","Item","array","noop","name","dir","browserExports","process$1","debug_1","define_process_env_default","SEMVER_SPEC_VERSION","MAX_LENGTH","MAX_SAFE_INTEGER","MAX_SAFE_COMPONENT_LENGTH","MAX_SAFE_BUILD_LENGTH","constants","require$$0","debug","require$$1","exports","module","re","safeRe","src","safeSrc","R","LETTERDASHNUMBER","safeRegexReplacements","makeSafeRegex","value","token","max","createToken","isGlobal","safe","index","looseOption","emptyOpts","parseOptions_1","options","numeric","compareIdentifiers","a","b","anum","bnum","identifiers","t","require$$2","parseOptions","require$$3","require$$4","SemVer","version","m","id","num","other","release","identifier","identifierBase","match","base","prerelease","semver","major_1","loose","parse_1","throwErrors","er","parse","valid_1","v","ProxyBus","bus2","valid","major","handler","event","SimpleBus","h","e","bus","getBus","subscribe","unsubscribe","emit","ScopedStorage","scope","wrapped","persistent","key","StorageBuilder","appId","persist","clear","getBuilder","observers","getRequestToken","onRequestTokenUpdate","observer","error","currentUser","getAttribute","el","attribute","getCurrentUser","head","uid","debounce","function_","wait","immediate","storedContext","storedArguments","timeoutId","timestamp","result","run","callContext","callArguments","later","last","debounced","arguments_","callNow","LogLevel","LogLevel2","ConsoleLogger","context","message","level","msg","buildConsoleLogger","LoggerBuilder","factory","user","self","onLoaded","getLoggerBuilder"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]} \ No newline at end of file diff --git a/dist/index-6_gsQFyp.chunk.mjs.map.license b/dist/index-Bndk0DrU.chunk.mjs.map.license similarity index 100% rename from dist/index-6_gsQFyp.chunk.mjs.map.license rename to dist/index-Bndk0DrU.chunk.mjs.map.license diff --git a/dist/index-cDQt1Drw.chunk.mjs b/dist/index-CEFiUoek.chunk.mjs similarity index 98% rename from dist/index-cDQt1Drw.chunk.mjs rename to dist/index-CEFiUoek.chunk.mjs index 94517e27aaf58..80970315089ee 100644 --- a/dist/index-cDQt1Drw.chunk.mjs +++ b/dist/index-CEFiUoek.chunk.mjs @@ -1,2 +1,2 @@ -import{g as T,a as q}from"./index-6_gsQFyp.chunk.mjs";import{i as W,c as z}from"./index-BfylblLb.chunk.mjs";import{e as j,g as _}from"./createElementId-DhjFt1I9--Zqj3wLs.chunk.mjs";import{b as U,N as S}from"./index-JpgrUA2Z-BFiKKJ1W.chunk.mjs";import{N as V}from"./NcPasswordField-djttkA5Q-2g87vOpY.chunk.mjs";import{b as L,A as K,v as I,r as p,x as N,J as A,c as M,o as O,w as H,k as J,e as R,t as Z,u as m}from"./runtime-dom.esm-bundler-BrYCUcZF.chunk.mjs";var o=(s=>(s.Lax="lax",s.Strict="strict",s))(o||{});const G=Date.now();function x(s){if(!window.backendAllowsPasswordConfirmation)return!1;if(s===o.Strict)return!0;const r=G-window.nc_pageLoad*1e3;return Date.now()-(r+window.nc_lastLogin*1e3)>1800*1e3}const F=j().detectLanguage();[{locale:"ar",translations:[{msgid:"Checking password …",msgstr:["يتم التحقق من كلمة المرور..."]},{msgid:"Confirm",msgstr:["تأكيد"]},{msgid:"Confirm your password",msgstr:["تأكيد كلمة المرور"]},{msgid:"Password",msgstr:["كلمة المرور"]},{msgid:"Please enter your password",msgstr:["يرجى إدخال كلمة المرور الخاصة بك"]},{msgid:"This action needs authentication",msgstr:["هذا الإجراء يتطلب التحقق من الهوية"]},{msgid:"Wrong password",msgstr:["كلمة المرور غير صحيحة"]}]},{locale:"ast",translations:[{msgid:"Checking password …",msgstr:["Comprobando la contraseña…"]},{msgid:"Confirm",msgstr:["Confirmación"]},{msgid:"Confirm your password",msgstr:["Confirma la contraseña"]},{msgid:"Password",msgstr:["Contraseña"]},{msgid:"Please enter your password",msgstr:["Introduz la contraseña"]},{msgid:"This action needs authentication",msgstr:["Esta aición precisa l'autenticación"]},{msgid:"Wrong password",msgstr:["La contraseña ye incorreuta"]}]},{locale:"az",translations:[{msgid:"Confirm",msgstr:["Təsdiq edin"]},{msgid:"Confirm your password",msgstr:["Parolunuzu təsdiq edin"]},{msgid:"Password",msgstr:["Parol"]},{msgid:"Password confirmation dialog already mounted",msgstr:["Parolun təsdiqi dialoqu artıq quraşdırılıb"]},{msgid:"This action needs authentication",msgstr:["Bu əməliyyat autentifikasiya tələb edir"]},{msgid:"Wrong password",msgstr:["Səhv parol"]}]},{locale:"be",translations:[{msgid:"Checking password …",msgstr:["Праверка пароля…"]},{msgid:"Confirm",msgstr:["Пацвердзіць"]},{msgid:"Confirm your password",msgstr:["Пацвердзіць пароль"]},{msgid:"Password",msgstr:["Пароль"]},{msgid:"Please enter your password",msgstr:["Калі ласка, увядзіце ваш пароль"]},{msgid:"This action needs authentication",msgstr:["Гэта дзеянне патрабуе аўтэнтыфікацыі"]},{msgid:"Wrong password",msgstr:["Памылковы пароль"]}]},{locale:"ca",translations:[{msgid:"Checking password …",msgstr:["S'està comprovant la contrasenya …"]},{msgid:"Confirm",msgstr:["Confirma"]},{msgid:"Confirm your password",msgstr:["Confirmeu la vostra contrasenya"]},{msgid:"Password",msgstr:["Contrasenya"]},{msgid:"Please enter your password",msgstr:["Introduïu la vostra contrasenya"]},{msgid:"This action needs authentication",msgstr:["Aquesta acció necessita autenticació"]},{msgid:"Wrong password",msgstr:["Contrasenya incorrecta"]}]},{locale:"cs_CZ",translations:[{msgid:"Authentication required",msgstr:["Vyžadováno ověření se"]},{msgid:"Checking password …",msgstr:["Ověřování hesla…"]},{msgid:"Confirm",msgstr:["Potvrdit"]},{msgid:"Password",msgstr:["Heslo"]},{msgid:"Please enter your password",msgstr:["Zadejte heslo"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["Tato akce vyžaduje ověření se – potvrďte ji zadáním svého hesla."]},{msgid:"Unknown error while checking password",msgstr:["Neznámá chyba při kontrolování hesla"]},{msgid:"Wrong password",msgstr:["Nesprávné heslo"]}]},{locale:"da",translations:[{msgid:"Authentication required",msgstr:["Bekræft din identitet"]},{msgid:"Checking password …",msgstr:["Kontrollerer adgangskode …"]},{msgid:"Confirm",msgstr:["Bekræft"]},{msgid:"Password",msgstr:["Adgangskode"]},{msgid:"Please enter your password",msgstr:["Indtast venligst dit kodeord"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["Denne handling kræver godkendelse. Indtast din adgangskode for at bekræfte."]},{msgid:"Unknown error while checking password",msgstr:["Ukendt fejl under kontrol af adgangskode"]},{msgid:"Wrong password",msgstr:["forkert Adgangskode"]}]},{locale:"de",translations:[{msgid:"Authentication required",msgstr:["Authentifizierung erforderlich"]},{msgid:"Checking password …",msgstr:["Passwort prüfen  …"]},{msgid:"Confirm",msgstr:["Bestätigen"]},{msgid:"Password",msgstr:["Passwort"]},{msgid:"Please enter your password",msgstr:["Bitte gib dein Passwort ein"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["Für diese Aktion ist eine Authentifizierung erforderlich. Bitte bestätige diese durch Eingabe deines Passworts."]},{msgid:"Unknown error while checking password",msgstr:["Unbekannter Fehler beim Überprüfen des Passworts"]},{msgid:"Wrong password",msgstr:["Falsches Passwort"]}]},{locale:"de_DE",translations:[{msgid:"Authentication required",msgstr:["Authentifizierung erforderlich"]},{msgid:"Checking password …",msgstr:["Passwort prüfen …"]},{msgid:"Confirm",msgstr:["Bestätigen"]},{msgid:"Password",msgstr:["Passwort"]},{msgid:"Please enter your password",msgstr:["Bitte geben Sie Ihr Passwort ein"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["Für diese Aktion ist eine Authentifizierung erforderlich. Bitte bestätigen Sie diese durch Eingabe Ihres Passworts."]},{msgid:"Unknown error while checking password",msgstr:["Unbekannter Fehler beim Überprüfen des Passworts"]},{msgid:"Wrong password",msgstr:["Falsches Passwort"]}]},{locale:"el",translations:[{msgid:"Authentication required",msgstr:["Απαιτείται πιστοποίηση"]},{msgid:"Checking password …",msgstr:["Έλεγχος κωδικού πρόσβασης …"]},{msgid:"Confirm",msgstr:["Επιβεβαίωση"]},{msgid:"Password",msgstr:["Συνθηματικό"]},{msgid:"Please enter your password",msgstr:["Παρακαλώ εισάγετε το συνθηματικό σας"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["Αυτή η ενέργεια απαιτεί πιστοποίηση. Επιβεβαιώστε την εισάγοντας τον κωδικό πρόσβασής σας."]},{msgid:"Unknown error while checking password",msgstr:["Άγνωστο σφάλμα κατά τον έλεγχο του κωδικού πρόσβασης"]},{msgid:"Wrong password",msgstr:["Λάθος συνθηματικό"]}]},{locale:"en_GB",translations:[{msgid:"Authentication required",msgstr:["Authentication required"]},{msgid:"Checking password …",msgstr:["Checking password …"]},{msgid:"Confirm",msgstr:["Confirm"]},{msgid:"Password",msgstr:["Password"]},{msgid:"Please enter your password",msgstr:["Please enter your password"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["This action needs authentication, please confirm it by entering your password."]},{msgid:"Unknown error while checking password",msgstr:["Unknown error while checking password"]},{msgid:"Wrong password",msgstr:["Wrong password"]}]},{locale:"es",translations:[{msgid:"Authentication required",msgstr:["Se requiere autenticación"]},{msgid:"Checking password …",msgstr:["Verificando contraseña …"]},{msgid:"Confirm",msgstr:["Confirmar"]},{msgid:"Password",msgstr:["Contraseña"]},{msgid:"Please enter your password",msgstr:["Por favor, Introduzca su contraseña"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["Esta acción requiere autenticación, por favor, confírmela ingresado su contraseña."]},{msgid:"Wrong password",msgstr:["Contraseña errónea"]}]},{locale:"es_AR",translations:[{msgid:"Checking password …",msgstr:["Verificando contraseña …"]},{msgid:"Confirm",msgstr:["Confirmar"]},{msgid:"Confirm your password",msgstr:["Confirme su contraseña"]},{msgid:"Password",msgstr:["Contraseña"]},{msgid:"Please enter your password",msgstr:["Por favor, introduzca su contraseña"]},{msgid:"This action needs authentication",msgstr:["Esta acción necesita autenticación"]},{msgid:"Wrong password",msgstr:["Contraseña incorrecta"]}]},{locale:"es_CO",translations:[{msgid:"Authentication required",msgstr:["Autenticación requerida"]},{msgid:"Checking password …",msgstr:["Verificando contraseña …"]},{msgid:"Confirm",msgstr:["Confirmar"]},{msgid:"Password",msgstr:["Contraseña"]},{msgid:"Please enter your password",msgstr:["Por favor introduzca su contraseña"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["Esta acción necesita autentificación, por favor confírmela introduciendo su contraseña."]},{msgid:"Wrong password",msgstr:["Contraseña incorrecta"]}]},{locale:"es_MX",translations:[{msgid:"Checking password …",msgstr:["Verificando contraseña …"]},{msgid:"Confirm",msgstr:["Confirmar"]},{msgid:"Confirm your password",msgstr:["Confirme su contraseña"]},{msgid:"Password",msgstr:["Contraseña"]},{msgid:"Please enter your password",msgstr:["Por favor introduzca su contraseña"]},{msgid:"This action needs authentication",msgstr:["Esta acción necesita autenticación"]},{msgid:"Wrong password",msgstr:["Contraseña incorrecta"]}]},{locale:"et_EE",translations:[{msgid:"Authentication required",msgstr:["Autentimine on vajalik"]},{msgid:"Checking password …",msgstr:["Kontrollin salasõna…"]},{msgid:"Confirm",msgstr:["Kinnita"]},{msgid:"Password",msgstr:["Salasõna"]},{msgid:"Please enter your password",msgstr:["Palun sisesta oma salasõna"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["See tegevus eeldab autentimist, palun tee seda sisestades oma salasõna."]},{msgid:"Unknown error while checking password",msgstr:["Tundmatu viga salasõna kontrollimisel"]},{msgid:"Wrong password",msgstr:["Vale salasõna"]}]},{locale:"fa",translations:[{msgid:"Authentication required",msgstr:["احراز هویت مورد نیاز است"]},{msgid:"Checking password …",msgstr:["در حال بررسی رمز عبور..."]},{msgid:"Confirm",msgstr:["تأیید"]},{msgid:"Password",msgstr:["رمز عبور"]},{msgid:"Please enter your password",msgstr:["لطفاً رمز عبور خود را وارد کنید"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["این عمل نیاز به احراز هویت دارد، لطفاً با وارد کردن رمز عبور خود آن را تأیید کنید."]},{msgid:"Wrong password",msgstr:["رمز عبور اشتباه است"]}]},{locale:"fi_FI",translations:[{msgid:"Authentication required",msgstr:["Tunnistautuminen vaaditaan"]},{msgid:"Checking password …",msgstr:["Tarkistetaan salasanaa …"]},{msgid:"Confirm",msgstr:["Vahvista"]},{msgid:"Password",msgstr:["Salasana"]},{msgid:"Please enter your password",msgstr:["Kirjoita salasanasi"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["Tämä toimenpide vaatii tunnistautumisen. Vahvista kirjoittamalla salasanasi."]},{msgid:"Wrong password",msgstr:["Väärä salasana"]}]},{locale:"fr",translations:[{msgid:"Authentication required",msgstr:["Authentification requise"]},{msgid:"Checking password …",msgstr:["Vérification du mot de passe ..."]},{msgid:"Confirm",msgstr:["Confirmer"]},{msgid:"Password",msgstr:["Mot de passe"]},{msgid:"Please enter your password",msgstr:["Veuillez saisir votre mot de passe"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["Cette action nécessite une authentification, veuillez confirmer en saisissant votre mot de passe."]},{msgid:"Unknown error while checking password",msgstr:["Erreur inconnue lors de la vérification du mot de passe"]},{msgid:"Wrong password",msgstr:["Mot de passe incorrect"]}]},{locale:"ga",translations:[{msgid:"Authentication required",msgstr:["Fíordheimhniú ag teastáil"]},{msgid:"Checking password …",msgstr:["Ag seiceáil an focal faire …"]},{msgid:"Confirm",msgstr:["Deimhnigh"]},{msgid:"Password",msgstr:["Pasfhocal"]},{msgid:"Please enter your password",msgstr:["Cuir isteach do phasfhocal"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["Teastaíonn fíordheimhniú don ghníomh seo, deimhnigh é trí do phasfhocal a iontráil."]},{msgid:"Unknown error while checking password",msgstr:["Earráid anaithnid agus an focal faire á sheiceáil"]},{msgid:"Wrong password",msgstr:["Pasfhocal mícheart"]}]},{locale:"gl",translations:[{msgid:"Authentication required",msgstr:["É necesaria a autenticación"]},{msgid:"Checking password …",msgstr:["Comprobando o contrasinal…"]},{msgid:"Confirm",msgstr:["Confirmar"]},{msgid:"Password",msgstr:["Contrasinal"]},{msgid:"Please enter your password",msgstr:["Introduza o seu contrasinal"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["Esta acción precisa de autenticación, confírmea introducindo o seu contrasinal."]},{msgid:"Unknown error while checking password",msgstr:["Produciuse un erro descoñecido ao comprobar o contrasinal"]},{msgid:"Wrong password",msgstr:["Contrasinal incorrecto"]}]},{locale:"hu_HU",translations:[{msgid:"Authentication required",msgstr:["Azonosítás szükséges"]},{msgid:"Checking password …",msgstr:["Jelszó ellenőrzése ..."]},{msgid:"Confirm",msgstr:["Jóváhagyás"]},{msgid:"Password",msgstr:["Jelszó"]},{msgid:"Please enter your password",msgstr:["Adja meg a jelszavát"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["Ehhez a tevékenységhez azonosítás szükséges. Kérlek hagyd jóvá a jelszavad megadásával."]},{msgid:"Wrong password",msgstr:["Hibás jelszó"]}]},{locale:"id",translations:[{msgid:"Authentication required",msgstr:["Autentikasi diperlukan"]},{msgid:"Checking password …",msgstr:["Memeriksa kata sandi ..."]},{msgid:"Confirm",msgstr:["Konfirmasi"]},{msgid:"Password",msgstr:["Kata sandi"]},{msgid:"Please enter your password",msgstr:["Silahkan masukan kata sandi Anda"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["Aksi ini memerlukan autentikasi, silahkan konfirmasi dengan memasukan kata sandi Anda."]},{msgid:"Wrong password",msgstr:["Kata sandi salah"]}]},{locale:"is",translations:[{msgid:"Checking password …",msgstr:["Athuga lykilorð …"]},{msgid:"Confirm",msgstr:["Staðfesta"]},{msgid:"Confirm your password",msgstr:["Staðfestu lykilorðið þitt"]},{msgid:"Password",msgstr:["Lykilorð"]},{msgid:"Please enter your password",msgstr:["Settu inn lykilorðið þitt"]},{msgid:"This action needs authentication",msgstr:["Þessi aðgerð krefst auðkenningar"]},{msgid:"Wrong password",msgstr:["Rangt lykilorð"]}]},{locale:"it",translations:[{msgid:"Checking password …",msgstr:["Controllo della password…"]},{msgid:"Confirm",msgstr:["Conferma"]},{msgid:"Confirm your password",msgstr:["Conferma la tua password"]},{msgid:"Password",msgstr:["Password"]},{msgid:"Please enter your password",msgstr:["Inserisci la tua password"]},{msgid:"This action needs authentication",msgstr:["Questa azione richiede l'autenticazione"]},{msgid:"Wrong password",msgstr:["Password errata"]}]},{locale:"ja_JP",translations:[{msgid:"Authentication required",msgstr:["認証が必要です"]},{msgid:"Checking password …",msgstr:["パスワードの確認 …"]},{msgid:"Confirm",msgstr:["確認"]},{msgid:"Password",msgstr:["パスワード"]},{msgid:"Please enter your password",msgstr:["パスワードを入力してください"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["この操作には認証が必要です。パスワードを入力して承認してください。"]},{msgid:"Unknown error while checking password",msgstr:["パスワードのチェック中に不明なエラーが発生しました"]},{msgid:"Wrong password",msgstr:["間違ったパスワード"]}]},{locale:"kab",translations:[{msgid:"Authentication required",msgstr:["Asesteb yettwasra"]},{msgid:"Checking password …",msgstr:["Asenqed n wawal n uɛeddi …"]},{msgid:"Confirm",msgstr:["Sentem"]},{msgid:"Password",msgstr:["Awal n uɛeddi"]},{msgid:"Please enter your password",msgstr:["Txil, sekcem-d awal-ik·im n uɛeddi"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["Tigawt-a tesra asesteb, ttxil-k·m, wekked-itt-id s usekcem n wawal-inek·inem n uɛeddi."]},{msgid:"Wrong password",msgstr:["Awal n uɛeddi d arameɣtu"]}]},{locale:"ko",translations:[{msgid:"Authentication required",msgstr:["인증 필요 "]},{msgid:"Checking password …",msgstr:["비밀번호 확인 중 ..."]},{msgid:"Confirm",msgstr:["확인"]},{msgid:"Password",msgstr:["비밀번호"]},{msgid:"Please enter your password",msgstr:["비밀번호를 입력하세요"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["이 작업은 인증이 필요합니다. 비밀번호를 입력하여 확인하십시오. "]},{msgid:"Wrong password",msgstr:["잘못된 비밀번호"]}]},{locale:"lv",translations:[{msgid:"Authentication required",msgstr:["Nepieciešama autentificēšanās"]},{msgid:"Checking password …",msgstr:["Pārbauda paroli..."]},{msgid:"Confirm",msgstr:["Apstiprināt"]},{msgid:"Password",msgstr:["Parole"]},{msgid:"Please enter your password",msgstr:["Lūgums ievadīt savu paroli"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["Šai darbībai ir nepieciešama autentificēšanās. Lūgums to apstiprināt ar savas paroles ievadīšanu."]},{msgid:"Wrong password",msgstr:["Nepareiza parole"]}]},{locale:"mk",translations:[{msgid:"Authentication required",msgstr:["Потребна е автентификација"]},{msgid:"Checking password …",msgstr:["Проверка на лозинка …"]},{msgid:"Confirm",msgstr:["Потврди"]},{msgid:"Password",msgstr:["Лозинка"]},{msgid:"Please enter your password",msgstr:["Внесете ја вашата лозинка"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["Оваа акција бара автентикација, потврдете ја со внесување на вашата лозинка."]},{msgid:"Unknown error while checking password",msgstr:["Непозната грешка додека се проверува лозинката"]},{msgid:"Wrong password",msgstr:["Погрешна лозинка"]}]},{locale:"ms_MY",translations:[{msgid:"Authentication required",msgstr:["Pengesahan diperlukan"]},{msgid:"Checking password …",msgstr:["Menyemak kata laluan …"]},{msgid:"Confirm",msgstr:["Mengesahkan"]},{msgid:"Password",msgstr:["Kata laluan"]},{msgid:"Please enter your password",msgstr:["Sila masukkan kata laluan anda"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["Tindakan ini memerlukan pengesahan, sila sahkan dengan memasukkan kata laluan anda."]},{msgid:"Wrong password",msgstr:["Kata laluan salah"]}]},{locale:"nb_NO",translations:[{msgid:"Checking password …",msgstr:["Sjekker passord …"]},{msgid:"Confirm",msgstr:["Bekreft"]},{msgid:"Confirm your password",msgstr:["Bekreft passordet ditt"]},{msgid:"Password",msgstr:["Passord"]},{msgid:"Please enter your password",msgstr:["Vennligst skriv inn passordet ditt"]},{msgid:"This action needs authentication",msgstr:["Denne handlingen krever autentisering"]},{msgid:"Wrong password",msgstr:["Feil passord"]}]},{locale:"nl",translations:[{msgid:"Authentication required",msgstr:["Authenticatie vereist"]},{msgid:"Checking password …",msgstr:["Wachtwoord controleren…"]},{msgid:"Confirm",msgstr:["Bevestigen"]},{msgid:"Password",msgstr:["Wachtwoord"]},{msgid:"Please enter your password",msgstr:["Voer je wachtwoord in"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["Deze actie vereist authenticatie, voer je wachtwoord in."]},{msgid:"Unknown error while checking password",msgstr:["Onbekende fout bij wachtwoord controleren"]},{msgid:"Wrong password",msgstr:["Incorrect wachtwoord"]}]},{locale:"pl",translations:[{msgid:"Checking password …",msgstr:["Sprawdzanie hasła…"]},{msgid:"Confirm",msgstr:["Potwierdź"]},{msgid:"Confirm your password",msgstr:["Potwierdź swoje hasło"]},{msgid:"Password",msgstr:["Hasło"]},{msgid:"Please enter your password",msgstr:["Wprowadź swoje hasło"]},{msgid:"This action needs authentication",msgstr:["Wykonanie tej czynności wymaga autoryzacji"]},{msgid:"Wrong password",msgstr:["Nieprawidłowe hasło"]}]},{locale:"pt_BR",translations:[{msgid:"Authentication required",msgstr:["Autenticação necessária"]},{msgid:"Checking password …",msgstr:["Verificando a senha …"]},{msgid:"Confirm",msgstr:["Confirmar"]},{msgid:"Password",msgstr:["Senha"]},{msgid:"Please enter your password",msgstr:["Por favor, insira sua senha"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["Esta ação precisa de autenticação. Por favor, confirme-a digitando sua senha."]},{msgid:"Unknown error while checking password",msgstr:["Erro desconhecido ao verificar a senha"]},{msgid:"Wrong password",msgstr:["Senha incorreta"]}]},{locale:"pt_PT",translations:[{msgid:"Authentication required",msgstr:["Autenticação necessária"]},{msgid:"Checking password …",msgstr:["A verificar palavra-passe…"]},{msgid:"Confirm",msgstr:["Confirmar"]},{msgid:"Password",msgstr:["Palavra-passe"]},{msgid:"Please enter your password",msgstr:["Introduza a sua palavra-passe, por favor"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["Esta ação requer autenticação; confirme-a introduzindo a sua palavra-passe."]},{msgid:"Wrong password",msgstr:["Palavra-passe incorreta"]}]},{locale:"ro",translations:[{msgid:"Checking password …",msgstr:["Se verifică parola ..."]},{msgid:"Confirm",msgstr:["Confirmare"]},{msgid:"Confirm your password",msgstr:["Confirmare parolă"]},{msgid:"Password",msgstr:["Parolă"]},{msgid:"Please enter your password",msgstr:["Vă rugăm să introduceți parola"]},{msgid:"This action needs authentication",msgstr:["Această acțiune necesită autentificare"]},{msgid:"Wrong password",msgstr:["Parolă incorectă"]}]},{locale:"ru",translations:[{msgid:"Authentication required",msgstr:["Требуется аутентификация"]},{msgid:"Checking password …",msgstr:["Проверка пароля …"]},{msgid:"Confirm",msgstr:["Подтвердить"]},{msgid:"Password",msgstr:["Пароль"]},{msgid:"Please enter your password",msgstr:["Пожалуйста, введите свой пароль"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["Это действие требует аутентификации, пожалуйста подтвердите его вводом вашего пароля."]},{msgid:"Unknown error while checking password",msgstr:["Неизвестная ошибка при проверке пароля"]},{msgid:"Wrong password",msgstr:["Неправильный пароль"]}]},{locale:"sk_SK",translations:[{msgid:"Checking password …",msgstr:["Kontrola hesla..."]},{msgid:"Confirm",msgstr:["Potvrdiť"]},{msgid:"Confirm your password",msgstr:["Potvrďte svoje heslo"]},{msgid:"Password",msgstr:["Heslo"]},{msgid:"Please enter your password",msgstr:["Zadajte prosím svoje heslo"]},{msgid:"This action needs authentication",msgstr:["Táto akcia vyžaduje overenie"]},{msgid:"Wrong password",msgstr:["Nesprávne heslo"]}]},{locale:"sl",translations:[{msgid:"Checking password …",msgstr:["Poteka preverjanje gesla ..."]},{msgid:"Confirm",msgstr:["Potrdi"]},{msgid:"Confirm your password",msgstr:["Potrdi geslo"]},{msgid:"Password",msgstr:["Geslo"]},{msgid:"Please enter your password",msgstr:["Vpisati je treba geslo"]},{msgid:"This action needs authentication",msgstr:["To dejanje zahteva overitev"]},{msgid:"Wrong password",msgstr:["Napačno geslo"]}]},{locale:"sr",translations:[{msgid:"Authentication required",msgstr:["Потребна је потврда идентитета"]},{msgid:"Checking password …",msgstr:["Проверава се лозинка…"]},{msgid:"Confirm",msgstr:["Потврда"]},{msgid:"Password",msgstr:["Лозинка"]},{msgid:"Please enter your password",msgstr:["Молимо вас да унесете своју лозинку"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["За ову акцију је потребна провера идентитета, молимо вас да га потврдите уносом своје лозинке."]},{msgid:"Unknown error while checking password",msgstr:["Непозната грешка током провере лозинке"]},{msgid:"Wrong password",msgstr:["Погрешна лозинка"]}]},{locale:"sv",translations:[{msgid:"Authentication required",msgstr:["Autentisering krävs"]},{msgid:"Checking password …",msgstr:["Kontrollerar lösenord …"]},{msgid:"Confirm",msgstr:["Bekräfta"]},{msgid:"Password",msgstr:["Lösenord"]},{msgid:"Please enter your password",msgstr:["Ange ditt lösenord"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["Den här åtgärden kräver autentisering, bekräfta genom att ange ditt lösenord."]},{msgid:"Unknown error while checking password",msgstr:["Okänt fel vid kontroll av lösenord"]},{msgid:"Wrong password",msgstr:["Fel lösenord"]}]},{locale:"tr",translations:[{msgid:"Authentication required",msgstr:["Kimlik doğrulaması gerekli"]},{msgid:"Checking password …",msgstr:["Parola denetleniyor…"]},{msgid:"Confirm",msgstr:["Parola onayı"]},{msgid:"Password",msgstr:["Parola"]},{msgid:"Please enter your password",msgstr:["Lütfen parolanızı yazın"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["Bu işlemi yapmak için kimliğinizi doğrulamalısınız. Lütfen parolanızı yazın."]},{msgid:"Unknown error while checking password",msgstr:["Parola denetlenirken bilinmeyen bir sorun çıktı"]},{msgid:"Wrong password",msgstr:["Parola geçersiz"]}]},{locale:"uk",translations:[{msgid:"Authentication required",msgstr:["Потрібна авторизація"]},{msgid:"Checking password …",msgstr:["Перевірка паролю ..."]},{msgid:"Confirm",msgstr:["Підтвердити"]},{msgid:"Password",msgstr:["Пароль"]},{msgid:"Please enter your password",msgstr:["Зазначте ваш пароль"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["Ця дія вимагає авторизацію, зазначте ваш пароль."]},{msgid:"Wrong password",msgstr:["Помилковий пароль"]}]},{locale:"ur_PK",translations:[{msgid:"Authentication required",msgstr:["تصدیق درکار ہے"]},{msgid:"Checking password …",msgstr:["پاس ورڈ چیک ہو رہا ہے …"]},{msgid:"Confirm",msgstr:["تصدیق کریں"]},{msgid:"Password",msgstr:["پاس ورڈ"]},{msgid:"Please enter your password",msgstr:["براہ کرم اپنا پاس ورڈ درج کریں"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["اس عمل کو تصدیق کی ضرورت ہے، براہ کرم پاس ورڈ درج کرکے اس کی تصدیق کریں۔"]},{msgid:"Unknown error while checking password",msgstr:["پاس ورڈ چیک کرنے میں نامعلوم خرابی"]},{msgid:"Wrong password",msgstr:["نادرست پاس ورڈ"]}]},{locale:"uz",translations:[{msgid:"Authentication required",msgstr:["Autentifikatsiya talab qilinadi"]},{msgid:"Checking password …",msgstr:["Parol tekshirilmoqda…"]},{msgid:"Confirm",msgstr:["Tasdiqlang"]},{msgid:"Password",msgstr:["Parol"]},{msgid:"Please enter your password",msgstr:["Iltimos, parolingizni kiriting"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["Ushbu amaliyot autentifikatsiya talab etadi, parolingizni kiritish orqali buni tasdiqlang."]},{msgid:"Unknown error while checking password",msgstr:["Parolni tekshirishda noma'lum xatolik yuz berdi"]},{msgid:"Wrong password",msgstr:["Parol noto'g'ri "]}]},{locale:"vi",translations:[{msgid:"Authentication required",msgstr:["Yêu cầu xác thực"]},{msgid:"Checking password …",msgstr:["Đang kiểm tra mật khẩu ..."]},{msgid:"Confirm",msgstr:["Chấp nhận"]},{msgid:"Password",msgstr:["Mật khẩu"]},{msgid:"Please enter your password",msgstr:["Vui lòng nhập mật khẩu của bạn"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["Thao tác này cần xác thực, vui lòng xác nhận bằng cách nhập mật khẩu của bạn."]},{msgid:"Wrong password",msgstr:["Mật khẩu sai"]}]},{locale:"zh_CN",translations:[{msgid:"Authentication required",msgstr:["需要身份验证"]},{msgid:"Checking password …",msgstr:["正在检查密码 …"]},{msgid:"Confirm",msgstr:["确认"]},{msgid:"Password",msgstr:["密码"]},{msgid:"Please enter your password",msgstr:["请输入您的密码"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["此操作需要身份验证,请输入密码进行确认。"]},{msgid:"Unknown error while checking password",msgstr:["检查密码时出现未知错误"]},{msgid:"Wrong password",msgstr:["密码错误"]}]},{locale:"zh_HK",translations:[{msgid:"Authentication required",msgstr:["需要驗證"]},{msgid:"Checking password …",msgstr:["正在檢查密碼 …"]},{msgid:"Confirm",msgstr:["確認"]},{msgid:"Password",msgstr:["密碼"]},{msgid:"Please enter your password",msgstr:["請輸入您的密碼"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["此操作需要身份驗證,請輸入您的密碼以進行確認。"]},{msgid:"Wrong password",msgstr:["密碼錯誤"]}]},{locale:"zh_TW",translations:[{msgid:"Checking password …",msgstr:["正在檢查密碼……"]},{msgid:"Confirm",msgstr:["確認"]},{msgid:"Confirm your password",msgstr:["確認您的密碼"]},{msgid:"Password",msgstr:["密碼"]},{msgid:"Please enter your password",msgstr:["請輸入您的密碼"]},{msgid:"This action needs authentication",msgstr:["此動作需要驗證"]},{msgid:"Wrong password",msgstr:["密碼錯誤"]}]}].map(({locale:s,translations:r})=>F.addTranslation(s,{headers:{},translations:{"":Object.fromEntries(r.map(u=>[u.msgid,u]))}}));const C=F.build();C.ngettext.bind(C);const e=C.gettext.bind(C),i=T().setApp("@nextcloud/password-confirmation").detectLogLevel().build(),Y=L({__name:"PasswordDialog",props:{validate:{type:Function}},emits:["close"],setup(s,{emit:r}){const u=s,g=r;K(v);const t=I("field"),a=p(""),w=p(!1),n=p(!1),y=[{label:e("Confirm"),type:"submit",variant:"primary",callback:D}],P=N(()=>{if(n.value!==!1){if(a.value==="")return e("Please enter your password");switch(n.value){case!0:return e("Unknown error while checking password");case 403:return e("Wrong password")}}return w.value?e("Checking password …"):""});async function D(){if(n.value=!1,w.value=!0,a.value==="")return n.value=!0,!1;try{return await u.validate(a.value),g("close",!0),!0}catch(d){return W(d)&&d.response?.status===403?n.value=403:n.value=!0,i.error("Exception during password confirmation",{error:d}),b(),!1}finally{w.value=!1}}function v(){A(()=>{t.value.focus()})}function b(){A(()=>{t.value.select()})}return(d,c)=>(O(),M(m(S),{"is-form":"",buttons:y,name:m(e)("Authentication required"),"content-classes":d.$style.passwordDialog,"onUpdate:open":c[1]||(c[1]=h=>g("close",!1))},{default:H(()=>[J("p",null,Z(m(e)("This action needs authentication, please confirm it by entering your password.")),1),R(m(V),{ref:"field",modelValue:a.value,"onUpdate:modelValue":c[0]||(c[0]=h=>a.value=h),label:m(e)("Password"),"helper-text":P.value,error:n.value!==!1,required:""},null,8,["modelValue","label","helper-text","error"])]),_:1},8,["name","content-classes"]))}}),$="_passwordDialog_joix2_2",Q={passwordDialog:$},X=(s,r)=>{const u=s.__vccOpts||s;for(const[g,t]of r)u[g]=t;return u},uu={$style:Q},su=X(Y,[["__cssModules",uu]]);let B=!1;async function ou(){if(!x(o.Lax))return Promise.resolve();await k(async s=>{await f(s)})}async function f(s){i.debug("Confirming password");const r=_("/login/confirm"),{data:u}=await z.post(r,{password:s});window.nc_lastLogin=u.lastLogin,i.debug("Password confirmed")}let l,E;async function k(s){E=s,l||(l=U(su,{validate(u){return E(u)}}));const r=await l;if(l=void 0,!r)throw new Error("Dialog closed")}function gu(s){if(B)return;B=!0;let r;s.interceptors.request.use(async u=>{if(u.confirmPassword===void 0||!x(u.confirmPassword))return u;const{promise:g,resolve:t}=Promise.withResolvers();return k(async a=>{switch(u.confirmPassword){case o.Lax:await f(a),t(u);break;case o.Strict:return r=Promise.withResolvers(),u.auth={username:q()?.uid??"",password:a},i.debug("Adding auth info to the request",{config:u}),t(u),r.promise}}),g}),s.interceptors.response.use(u=>u.config.confirmPassword!==o.Strict?u:r===void 0?(i.debug("Password confirmation not required",{response:u}),u):(i.debug("Password confirmation succeeded",{response:u}),window.nc_lastLogin=Date.now()/1e3,r.resolve(),u),u=>{if(u.config?.confirmPassword!==o.Strict)throw u;if(r===void 0)throw i.debug("Password confirmation not required",{error:u}),u;return i.debug("Password confirmation failed",{error:u}),r.reject(u),i.debug("Triggering new request",{error:u}),s.request(u.config)})}export{o as P,gu as a,ou as c}; -//# sourceMappingURL=index-cDQt1Drw.chunk.mjs.map +import{g as T,a as q}from"./index-Bndk0DrU.chunk.mjs";import{i as W,c as z}from"./index-DVH_Kr3Q.chunk.mjs";import{f as j,g as _}from"./createElementId-DhjFt1I9-DyCVsGNV.chunk.mjs";import{b as U,N as S}from"./index-JpgrUA2Z-BXxDc_if.chunk.mjs";import{N as V}from"./NcPasswordField-djttkA5Q-Dz7uhHFj.chunk.mjs";import{b as L,A as K,v as I,r as p,x as N,K as A,c as M,o as O,w as H,k as R,e as J,t as Z,u as m}from"./runtime-dom.esm-bundler-DdtEg5E9.chunk.mjs";var o=(s=>(s.Lax="lax",s.Strict="strict",s))(o||{});const G=Date.now();function x(s){if(!window.backendAllowsPasswordConfirmation)return!1;if(s===o.Strict)return!0;const r=G-window.nc_pageLoad*1e3;return Date.now()-(r+window.nc_lastLogin*1e3)>1800*1e3}const F=j().detectLanguage();[{locale:"ar",translations:[{msgid:"Checking password …",msgstr:["يتم التحقق من كلمة المرور..."]},{msgid:"Confirm",msgstr:["تأكيد"]},{msgid:"Confirm your password",msgstr:["تأكيد كلمة المرور"]},{msgid:"Password",msgstr:["كلمة المرور"]},{msgid:"Please enter your password",msgstr:["يرجى إدخال كلمة المرور الخاصة بك"]},{msgid:"This action needs authentication",msgstr:["هذا الإجراء يتطلب التحقق من الهوية"]},{msgid:"Wrong password",msgstr:["كلمة المرور غير صحيحة"]}]},{locale:"ast",translations:[{msgid:"Checking password …",msgstr:["Comprobando la contraseña…"]},{msgid:"Confirm",msgstr:["Confirmación"]},{msgid:"Confirm your password",msgstr:["Confirma la contraseña"]},{msgid:"Password",msgstr:["Contraseña"]},{msgid:"Please enter your password",msgstr:["Introduz la contraseña"]},{msgid:"This action needs authentication",msgstr:["Esta aición precisa l'autenticación"]},{msgid:"Wrong password",msgstr:["La contraseña ye incorreuta"]}]},{locale:"az",translations:[{msgid:"Confirm",msgstr:["Təsdiq edin"]},{msgid:"Confirm your password",msgstr:["Parolunuzu təsdiq edin"]},{msgid:"Password",msgstr:["Parol"]},{msgid:"Password confirmation dialog already mounted",msgstr:["Parolun təsdiqi dialoqu artıq quraşdırılıb"]},{msgid:"This action needs authentication",msgstr:["Bu əməliyyat autentifikasiya tələb edir"]},{msgid:"Wrong password",msgstr:["Səhv parol"]}]},{locale:"be",translations:[{msgid:"Checking password …",msgstr:["Праверка пароля…"]},{msgid:"Confirm",msgstr:["Пацвердзіць"]},{msgid:"Confirm your password",msgstr:["Пацвердзіць пароль"]},{msgid:"Password",msgstr:["Пароль"]},{msgid:"Please enter your password",msgstr:["Калі ласка, увядзіце ваш пароль"]},{msgid:"This action needs authentication",msgstr:["Гэта дзеянне патрабуе аўтэнтыфікацыі"]},{msgid:"Wrong password",msgstr:["Памылковы пароль"]}]},{locale:"ca",translations:[{msgid:"Checking password …",msgstr:["S'està comprovant la contrasenya …"]},{msgid:"Confirm",msgstr:["Confirma"]},{msgid:"Confirm your password",msgstr:["Confirmeu la vostra contrasenya"]},{msgid:"Password",msgstr:["Contrasenya"]},{msgid:"Please enter your password",msgstr:["Introduïu la vostra contrasenya"]},{msgid:"This action needs authentication",msgstr:["Aquesta acció necessita autenticació"]},{msgid:"Wrong password",msgstr:["Contrasenya incorrecta"]}]},{locale:"cs_CZ",translations:[{msgid:"Authentication required",msgstr:["Vyžadováno ověření se"]},{msgid:"Checking password …",msgstr:["Ověřování hesla…"]},{msgid:"Confirm",msgstr:["Potvrdit"]},{msgid:"Password",msgstr:["Heslo"]},{msgid:"Please enter your password",msgstr:["Zadejte heslo"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["Tato akce vyžaduje ověření se – potvrďte ji zadáním svého hesla."]},{msgid:"Unknown error while checking password",msgstr:["Neznámá chyba při kontrolování hesla"]},{msgid:"Wrong password",msgstr:["Nesprávné heslo"]}]},{locale:"da",translations:[{msgid:"Authentication required",msgstr:["Bekræft din identitet"]},{msgid:"Checking password …",msgstr:["Kontrollerer adgangskode …"]},{msgid:"Confirm",msgstr:["Bekræft"]},{msgid:"Password",msgstr:["Adgangskode"]},{msgid:"Please enter your password",msgstr:["Indtast venligst dit kodeord"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["Denne handling kræver godkendelse. Indtast din adgangskode for at bekræfte."]},{msgid:"Unknown error while checking password",msgstr:["Ukendt fejl under kontrol af adgangskode"]},{msgid:"Wrong password",msgstr:["forkert Adgangskode"]}]},{locale:"de",translations:[{msgid:"Authentication required",msgstr:["Authentifizierung erforderlich"]},{msgid:"Checking password …",msgstr:["Passwort prüfen  …"]},{msgid:"Confirm",msgstr:["Bestätigen"]},{msgid:"Password",msgstr:["Passwort"]},{msgid:"Please enter your password",msgstr:["Bitte gib dein Passwort ein"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["Für diese Aktion ist eine Authentifizierung erforderlich. Bitte bestätige diese durch Eingabe deines Passworts."]},{msgid:"Unknown error while checking password",msgstr:["Unbekannter Fehler beim Überprüfen des Passworts"]},{msgid:"Wrong password",msgstr:["Falsches Passwort"]}]},{locale:"de_DE",translations:[{msgid:"Authentication required",msgstr:["Authentifizierung erforderlich"]},{msgid:"Checking password …",msgstr:["Passwort prüfen …"]},{msgid:"Confirm",msgstr:["Bestätigen"]},{msgid:"Password",msgstr:["Passwort"]},{msgid:"Please enter your password",msgstr:["Bitte geben Sie Ihr Passwort ein"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["Für diese Aktion ist eine Authentifizierung erforderlich. Bitte bestätigen Sie diese durch Eingabe Ihres Passworts."]},{msgid:"Unknown error while checking password",msgstr:["Unbekannter Fehler beim Überprüfen des Passworts"]},{msgid:"Wrong password",msgstr:["Falsches Passwort"]}]},{locale:"el",translations:[{msgid:"Authentication required",msgstr:["Απαιτείται πιστοποίηση"]},{msgid:"Checking password …",msgstr:["Έλεγχος κωδικού πρόσβασης …"]},{msgid:"Confirm",msgstr:["Επιβεβαίωση"]},{msgid:"Password",msgstr:["Συνθηματικό"]},{msgid:"Please enter your password",msgstr:["Παρακαλώ εισάγετε το συνθηματικό σας"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["Αυτή η ενέργεια απαιτεί πιστοποίηση. Επιβεβαιώστε την εισάγοντας τον κωδικό πρόσβασής σας."]},{msgid:"Unknown error while checking password",msgstr:["Άγνωστο σφάλμα κατά τον έλεγχο του κωδικού πρόσβασης"]},{msgid:"Wrong password",msgstr:["Λάθος συνθηματικό"]}]},{locale:"en_GB",translations:[{msgid:"Authentication required",msgstr:["Authentication required"]},{msgid:"Checking password …",msgstr:["Checking password …"]},{msgid:"Confirm",msgstr:["Confirm"]},{msgid:"Password",msgstr:["Password"]},{msgid:"Please enter your password",msgstr:["Please enter your password"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["This action needs authentication, please confirm it by entering your password."]},{msgid:"Unknown error while checking password",msgstr:["Unknown error while checking password"]},{msgid:"Wrong password",msgstr:["Wrong password"]}]},{locale:"es",translations:[{msgid:"Authentication required",msgstr:["Se requiere autenticación"]},{msgid:"Checking password …",msgstr:["Verificando contraseña …"]},{msgid:"Confirm",msgstr:["Confirmar"]},{msgid:"Password",msgstr:["Contraseña"]},{msgid:"Please enter your password",msgstr:["Por favor, Introduzca su contraseña"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["Esta acción requiere autenticación, por favor, confírmela ingresado su contraseña."]},{msgid:"Wrong password",msgstr:["Contraseña errónea"]}]},{locale:"es_AR",translations:[{msgid:"Checking password …",msgstr:["Verificando contraseña …"]},{msgid:"Confirm",msgstr:["Confirmar"]},{msgid:"Confirm your password",msgstr:["Confirme su contraseña"]},{msgid:"Password",msgstr:["Contraseña"]},{msgid:"Please enter your password",msgstr:["Por favor, introduzca su contraseña"]},{msgid:"This action needs authentication",msgstr:["Esta acción necesita autenticación"]},{msgid:"Wrong password",msgstr:["Contraseña incorrecta"]}]},{locale:"es_CO",translations:[{msgid:"Authentication required",msgstr:["Autenticación requerida"]},{msgid:"Checking password …",msgstr:["Verificando contraseña …"]},{msgid:"Confirm",msgstr:["Confirmar"]},{msgid:"Password",msgstr:["Contraseña"]},{msgid:"Please enter your password",msgstr:["Por favor introduzca su contraseña"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["Esta acción necesita autentificación, por favor confírmela introduciendo su contraseña."]},{msgid:"Wrong password",msgstr:["Contraseña incorrecta"]}]},{locale:"es_MX",translations:[{msgid:"Checking password …",msgstr:["Verificando contraseña …"]},{msgid:"Confirm",msgstr:["Confirmar"]},{msgid:"Confirm your password",msgstr:["Confirme su contraseña"]},{msgid:"Password",msgstr:["Contraseña"]},{msgid:"Please enter your password",msgstr:["Por favor introduzca su contraseña"]},{msgid:"This action needs authentication",msgstr:["Esta acción necesita autenticación"]},{msgid:"Wrong password",msgstr:["Contraseña incorrecta"]}]},{locale:"et_EE",translations:[{msgid:"Authentication required",msgstr:["Autentimine on vajalik"]},{msgid:"Checking password …",msgstr:["Kontrollin salasõna…"]},{msgid:"Confirm",msgstr:["Kinnita"]},{msgid:"Password",msgstr:["Salasõna"]},{msgid:"Please enter your password",msgstr:["Palun sisesta oma salasõna"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["See tegevus eeldab autentimist, palun tee seda sisestades oma salasõna."]},{msgid:"Unknown error while checking password",msgstr:["Tundmatu viga salasõna kontrollimisel"]},{msgid:"Wrong password",msgstr:["Vale salasõna"]}]},{locale:"fa",translations:[{msgid:"Authentication required",msgstr:["احراز هویت مورد نیاز است"]},{msgid:"Checking password …",msgstr:["در حال بررسی رمز عبور..."]},{msgid:"Confirm",msgstr:["تأیید"]},{msgid:"Password",msgstr:["رمز عبور"]},{msgid:"Please enter your password",msgstr:["لطفاً رمز عبور خود را وارد کنید"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["این عمل نیاز به احراز هویت دارد، لطفاً با وارد کردن رمز عبور خود آن را تأیید کنید."]},{msgid:"Wrong password",msgstr:["رمز عبور اشتباه است"]}]},{locale:"fi_FI",translations:[{msgid:"Authentication required",msgstr:["Tunnistautuminen vaaditaan"]},{msgid:"Checking password …",msgstr:["Tarkistetaan salasanaa …"]},{msgid:"Confirm",msgstr:["Vahvista"]},{msgid:"Password",msgstr:["Salasana"]},{msgid:"Please enter your password",msgstr:["Kirjoita salasanasi"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["Tämä toimenpide vaatii tunnistautumisen. Vahvista kirjoittamalla salasanasi."]},{msgid:"Wrong password",msgstr:["Väärä salasana"]}]},{locale:"fr",translations:[{msgid:"Authentication required",msgstr:["Authentification requise"]},{msgid:"Checking password …",msgstr:["Vérification du mot de passe ..."]},{msgid:"Confirm",msgstr:["Confirmer"]},{msgid:"Password",msgstr:["Mot de passe"]},{msgid:"Please enter your password",msgstr:["Veuillez saisir votre mot de passe"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["Cette action nécessite une authentification, veuillez confirmer en saisissant votre mot de passe."]},{msgid:"Unknown error while checking password",msgstr:["Erreur inconnue lors de la vérification du mot de passe"]},{msgid:"Wrong password",msgstr:["Mot de passe incorrect"]}]},{locale:"ga",translations:[{msgid:"Authentication required",msgstr:["Fíordheimhniú ag teastáil"]},{msgid:"Checking password …",msgstr:["Ag seiceáil an focal faire …"]},{msgid:"Confirm",msgstr:["Deimhnigh"]},{msgid:"Password",msgstr:["Pasfhocal"]},{msgid:"Please enter your password",msgstr:["Cuir isteach do phasfhocal"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["Teastaíonn fíordheimhniú don ghníomh seo, deimhnigh é trí do phasfhocal a iontráil."]},{msgid:"Unknown error while checking password",msgstr:["Earráid anaithnid agus an focal faire á sheiceáil"]},{msgid:"Wrong password",msgstr:["Pasfhocal mícheart"]}]},{locale:"gl",translations:[{msgid:"Authentication required",msgstr:["É necesaria a autenticación"]},{msgid:"Checking password …",msgstr:["Comprobando o contrasinal…"]},{msgid:"Confirm",msgstr:["Confirmar"]},{msgid:"Password",msgstr:["Contrasinal"]},{msgid:"Please enter your password",msgstr:["Introduza o seu contrasinal"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["Esta acción precisa de autenticación, confírmea introducindo o seu contrasinal."]},{msgid:"Unknown error while checking password",msgstr:["Produciuse un erro descoñecido ao comprobar o contrasinal"]},{msgid:"Wrong password",msgstr:["Contrasinal incorrecto"]}]},{locale:"hu_HU",translations:[{msgid:"Authentication required",msgstr:["Azonosítás szükséges"]},{msgid:"Checking password …",msgstr:["Jelszó ellenőrzése ..."]},{msgid:"Confirm",msgstr:["Jóváhagyás"]},{msgid:"Password",msgstr:["Jelszó"]},{msgid:"Please enter your password",msgstr:["Adja meg a jelszavát"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["Ehhez a tevékenységhez azonosítás szükséges. Kérlek hagyd jóvá a jelszavad megadásával."]},{msgid:"Wrong password",msgstr:["Hibás jelszó"]}]},{locale:"id",translations:[{msgid:"Authentication required",msgstr:["Autentikasi diperlukan"]},{msgid:"Checking password …",msgstr:["Memeriksa kata sandi ..."]},{msgid:"Confirm",msgstr:["Konfirmasi"]},{msgid:"Password",msgstr:["Kata sandi"]},{msgid:"Please enter your password",msgstr:["Silahkan masukan kata sandi Anda"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["Aksi ini memerlukan autentikasi, silahkan konfirmasi dengan memasukan kata sandi Anda."]},{msgid:"Wrong password",msgstr:["Kata sandi salah"]}]},{locale:"is",translations:[{msgid:"Checking password …",msgstr:["Athuga lykilorð …"]},{msgid:"Confirm",msgstr:["Staðfesta"]},{msgid:"Confirm your password",msgstr:["Staðfestu lykilorðið þitt"]},{msgid:"Password",msgstr:["Lykilorð"]},{msgid:"Please enter your password",msgstr:["Settu inn lykilorðið þitt"]},{msgid:"This action needs authentication",msgstr:["Þessi aðgerð krefst auðkenningar"]},{msgid:"Wrong password",msgstr:["Rangt lykilorð"]}]},{locale:"it",translations:[{msgid:"Checking password …",msgstr:["Controllo della password…"]},{msgid:"Confirm",msgstr:["Conferma"]},{msgid:"Confirm your password",msgstr:["Conferma la tua password"]},{msgid:"Password",msgstr:["Password"]},{msgid:"Please enter your password",msgstr:["Inserisci la tua password"]},{msgid:"This action needs authentication",msgstr:["Questa azione richiede l'autenticazione"]},{msgid:"Wrong password",msgstr:["Password errata"]}]},{locale:"ja_JP",translations:[{msgid:"Authentication required",msgstr:["認証が必要です"]},{msgid:"Checking password …",msgstr:["パスワードの確認 …"]},{msgid:"Confirm",msgstr:["確認"]},{msgid:"Password",msgstr:["パスワード"]},{msgid:"Please enter your password",msgstr:["パスワードを入力してください"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["この操作には認証が必要です。パスワードを入力して承認してください。"]},{msgid:"Unknown error while checking password",msgstr:["パスワードのチェック中に不明なエラーが発生しました"]},{msgid:"Wrong password",msgstr:["間違ったパスワード"]}]},{locale:"kab",translations:[{msgid:"Authentication required",msgstr:["Asesteb yettwasra"]},{msgid:"Checking password …",msgstr:["Asenqed n wawal n uɛeddi …"]},{msgid:"Confirm",msgstr:["Sentem"]},{msgid:"Password",msgstr:["Awal n uɛeddi"]},{msgid:"Please enter your password",msgstr:["Txil, sekcem-d awal-ik·im n uɛeddi"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["Tigawt-a tesra asesteb, ttxil-k·m, wekked-itt-id s usekcem n wawal-inek·inem n uɛeddi."]},{msgid:"Wrong password",msgstr:["Awal n uɛeddi d arameɣtu"]}]},{locale:"ko",translations:[{msgid:"Authentication required",msgstr:["인증 필요 "]},{msgid:"Checking password …",msgstr:["비밀번호 확인 중 ..."]},{msgid:"Confirm",msgstr:["확인"]},{msgid:"Password",msgstr:["비밀번호"]},{msgid:"Please enter your password",msgstr:["비밀번호를 입력하세요"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["이 작업은 인증이 필요합니다. 비밀번호를 입력하여 확인하십시오. "]},{msgid:"Wrong password",msgstr:["잘못된 비밀번호"]}]},{locale:"lv",translations:[{msgid:"Authentication required",msgstr:["Nepieciešama autentificēšanās"]},{msgid:"Checking password …",msgstr:["Pārbauda paroli..."]},{msgid:"Confirm",msgstr:["Apstiprināt"]},{msgid:"Password",msgstr:["Parole"]},{msgid:"Please enter your password",msgstr:["Lūgums ievadīt savu paroli"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["Šai darbībai ir nepieciešama autentificēšanās. Lūgums to apstiprināt ar savas paroles ievadīšanu."]},{msgid:"Wrong password",msgstr:["Nepareiza parole"]}]},{locale:"mk",translations:[{msgid:"Authentication required",msgstr:["Потребна е автентификација"]},{msgid:"Checking password …",msgstr:["Проверка на лозинка …"]},{msgid:"Confirm",msgstr:["Потврди"]},{msgid:"Password",msgstr:["Лозинка"]},{msgid:"Please enter your password",msgstr:["Внесете ја вашата лозинка"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["Оваа акција бара автентикација, потврдете ја со внесување на вашата лозинка."]},{msgid:"Unknown error while checking password",msgstr:["Непозната грешка додека се проверува лозинката"]},{msgid:"Wrong password",msgstr:["Погрешна лозинка"]}]},{locale:"ms_MY",translations:[{msgid:"Authentication required",msgstr:["Pengesahan diperlukan"]},{msgid:"Checking password …",msgstr:["Menyemak kata laluan …"]},{msgid:"Confirm",msgstr:["Mengesahkan"]},{msgid:"Password",msgstr:["Kata laluan"]},{msgid:"Please enter your password",msgstr:["Sila masukkan kata laluan anda"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["Tindakan ini memerlukan pengesahan, sila sahkan dengan memasukkan kata laluan anda."]},{msgid:"Wrong password",msgstr:["Kata laluan salah"]}]},{locale:"nb_NO",translations:[{msgid:"Checking password …",msgstr:["Sjekker passord …"]},{msgid:"Confirm",msgstr:["Bekreft"]},{msgid:"Confirm your password",msgstr:["Bekreft passordet ditt"]},{msgid:"Password",msgstr:["Passord"]},{msgid:"Please enter your password",msgstr:["Vennligst skriv inn passordet ditt"]},{msgid:"This action needs authentication",msgstr:["Denne handlingen krever autentisering"]},{msgid:"Wrong password",msgstr:["Feil passord"]}]},{locale:"nl",translations:[{msgid:"Authentication required",msgstr:["Authenticatie vereist"]},{msgid:"Checking password …",msgstr:["Wachtwoord controleren…"]},{msgid:"Confirm",msgstr:["Bevestigen"]},{msgid:"Password",msgstr:["Wachtwoord"]},{msgid:"Please enter your password",msgstr:["Voer je wachtwoord in"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["Deze actie vereist authenticatie, voer je wachtwoord in."]},{msgid:"Unknown error while checking password",msgstr:["Onbekende fout bij wachtwoord controleren"]},{msgid:"Wrong password",msgstr:["Incorrect wachtwoord"]}]},{locale:"pl",translations:[{msgid:"Checking password …",msgstr:["Sprawdzanie hasła…"]},{msgid:"Confirm",msgstr:["Potwierdź"]},{msgid:"Confirm your password",msgstr:["Potwierdź swoje hasło"]},{msgid:"Password",msgstr:["Hasło"]},{msgid:"Please enter your password",msgstr:["Wprowadź swoje hasło"]},{msgid:"This action needs authentication",msgstr:["Wykonanie tej czynności wymaga autoryzacji"]},{msgid:"Wrong password",msgstr:["Nieprawidłowe hasło"]}]},{locale:"pt_BR",translations:[{msgid:"Authentication required",msgstr:["Autenticação necessária"]},{msgid:"Checking password …",msgstr:["Verificando a senha …"]},{msgid:"Confirm",msgstr:["Confirmar"]},{msgid:"Password",msgstr:["Senha"]},{msgid:"Please enter your password",msgstr:["Por favor, insira sua senha"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["Esta ação precisa de autenticação. Por favor, confirme-a digitando sua senha."]},{msgid:"Unknown error while checking password",msgstr:["Erro desconhecido ao verificar a senha"]},{msgid:"Wrong password",msgstr:["Senha incorreta"]}]},{locale:"pt_PT",translations:[{msgid:"Authentication required",msgstr:["Autenticação necessária"]},{msgid:"Checking password …",msgstr:["A verificar palavra-passe…"]},{msgid:"Confirm",msgstr:["Confirmar"]},{msgid:"Password",msgstr:["Palavra-passe"]},{msgid:"Please enter your password",msgstr:["Introduza a sua palavra-passe, por favor"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["Esta ação requer autenticação; confirme-a introduzindo a sua palavra-passe."]},{msgid:"Wrong password",msgstr:["Palavra-passe incorreta"]}]},{locale:"ro",translations:[{msgid:"Checking password …",msgstr:["Se verifică parola ..."]},{msgid:"Confirm",msgstr:["Confirmare"]},{msgid:"Confirm your password",msgstr:["Confirmare parolă"]},{msgid:"Password",msgstr:["Parolă"]},{msgid:"Please enter your password",msgstr:["Vă rugăm să introduceți parola"]},{msgid:"This action needs authentication",msgstr:["Această acțiune necesită autentificare"]},{msgid:"Wrong password",msgstr:["Parolă incorectă"]}]},{locale:"ru",translations:[{msgid:"Authentication required",msgstr:["Требуется аутентификация"]},{msgid:"Checking password …",msgstr:["Проверка пароля …"]},{msgid:"Confirm",msgstr:["Подтвердить"]},{msgid:"Password",msgstr:["Пароль"]},{msgid:"Please enter your password",msgstr:["Пожалуйста, введите свой пароль"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["Это действие требует аутентификации, пожалуйста подтвердите его вводом вашего пароля."]},{msgid:"Unknown error while checking password",msgstr:["Неизвестная ошибка при проверке пароля"]},{msgid:"Wrong password",msgstr:["Неправильный пароль"]}]},{locale:"sk_SK",translations:[{msgid:"Checking password …",msgstr:["Kontrola hesla..."]},{msgid:"Confirm",msgstr:["Potvrdiť"]},{msgid:"Confirm your password",msgstr:["Potvrďte svoje heslo"]},{msgid:"Password",msgstr:["Heslo"]},{msgid:"Please enter your password",msgstr:["Zadajte prosím svoje heslo"]},{msgid:"This action needs authentication",msgstr:["Táto akcia vyžaduje overenie"]},{msgid:"Wrong password",msgstr:["Nesprávne heslo"]}]},{locale:"sl",translations:[{msgid:"Checking password …",msgstr:["Poteka preverjanje gesla ..."]},{msgid:"Confirm",msgstr:["Potrdi"]},{msgid:"Confirm your password",msgstr:["Potrdi geslo"]},{msgid:"Password",msgstr:["Geslo"]},{msgid:"Please enter your password",msgstr:["Vpisati je treba geslo"]},{msgid:"This action needs authentication",msgstr:["To dejanje zahteva overitev"]},{msgid:"Wrong password",msgstr:["Napačno geslo"]}]},{locale:"sr",translations:[{msgid:"Authentication required",msgstr:["Потребна је потврда идентитета"]},{msgid:"Checking password …",msgstr:["Проверава се лозинка…"]},{msgid:"Confirm",msgstr:["Потврда"]},{msgid:"Password",msgstr:["Лозинка"]},{msgid:"Please enter your password",msgstr:["Молимо вас да унесете своју лозинку"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["За ову акцију је потребна провера идентитета, молимо вас да га потврдите уносом своје лозинке."]},{msgid:"Unknown error while checking password",msgstr:["Непозната грешка током провере лозинке"]},{msgid:"Wrong password",msgstr:["Погрешна лозинка"]}]},{locale:"sv",translations:[{msgid:"Authentication required",msgstr:["Autentisering krävs"]},{msgid:"Checking password …",msgstr:["Kontrollerar lösenord …"]},{msgid:"Confirm",msgstr:["Bekräfta"]},{msgid:"Password",msgstr:["Lösenord"]},{msgid:"Please enter your password",msgstr:["Ange ditt lösenord"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["Den här åtgärden kräver autentisering, bekräfta genom att ange ditt lösenord."]},{msgid:"Unknown error while checking password",msgstr:["Okänt fel vid kontroll av lösenord"]},{msgid:"Wrong password",msgstr:["Fel lösenord"]}]},{locale:"tr",translations:[{msgid:"Authentication required",msgstr:["Kimlik doğrulaması gerekli"]},{msgid:"Checking password …",msgstr:["Parola denetleniyor…"]},{msgid:"Confirm",msgstr:["Parola onayı"]},{msgid:"Password",msgstr:["Parola"]},{msgid:"Please enter your password",msgstr:["Lütfen parolanızı yazın"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["Bu işlemi yapmak için kimliğinizi doğrulamalısınız. Lütfen parolanızı yazın."]},{msgid:"Unknown error while checking password",msgstr:["Parola denetlenirken bilinmeyen bir sorun çıktı"]},{msgid:"Wrong password",msgstr:["Parola geçersiz"]}]},{locale:"uk",translations:[{msgid:"Authentication required",msgstr:["Потрібна авторизація"]},{msgid:"Checking password …",msgstr:["Перевірка паролю ..."]},{msgid:"Confirm",msgstr:["Підтвердити"]},{msgid:"Password",msgstr:["Пароль"]},{msgid:"Please enter your password",msgstr:["Зазначте ваш пароль"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["Ця дія вимагає авторизацію, зазначте ваш пароль."]},{msgid:"Wrong password",msgstr:["Помилковий пароль"]}]},{locale:"ur_PK",translations:[{msgid:"Authentication required",msgstr:["تصدیق درکار ہے"]},{msgid:"Checking password …",msgstr:["پاس ورڈ چیک ہو رہا ہے …"]},{msgid:"Confirm",msgstr:["تصدیق کریں"]},{msgid:"Password",msgstr:["پاس ورڈ"]},{msgid:"Please enter your password",msgstr:["براہ کرم اپنا پاس ورڈ درج کریں"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["اس عمل کو تصدیق کی ضرورت ہے، براہ کرم پاس ورڈ درج کرکے اس کی تصدیق کریں۔"]},{msgid:"Unknown error while checking password",msgstr:["پاس ورڈ چیک کرنے میں نامعلوم خرابی"]},{msgid:"Wrong password",msgstr:["نادرست پاس ورڈ"]}]},{locale:"uz",translations:[{msgid:"Authentication required",msgstr:["Autentifikatsiya talab qilinadi"]},{msgid:"Checking password …",msgstr:["Parol tekshirilmoqda…"]},{msgid:"Confirm",msgstr:["Tasdiqlang"]},{msgid:"Password",msgstr:["Parol"]},{msgid:"Please enter your password",msgstr:["Iltimos, parolingizni kiriting"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["Ushbu amaliyot autentifikatsiya talab etadi, parolingizni kiritish orqali buni tasdiqlang."]},{msgid:"Unknown error while checking password",msgstr:["Parolni tekshirishda noma'lum xatolik yuz berdi"]},{msgid:"Wrong password",msgstr:["Parol noto'g'ri "]}]},{locale:"vi",translations:[{msgid:"Authentication required",msgstr:["Yêu cầu xác thực"]},{msgid:"Checking password …",msgstr:["Đang kiểm tra mật khẩu ..."]},{msgid:"Confirm",msgstr:["Chấp nhận"]},{msgid:"Password",msgstr:["Mật khẩu"]},{msgid:"Please enter your password",msgstr:["Vui lòng nhập mật khẩu của bạn"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["Thao tác này cần xác thực, vui lòng xác nhận bằng cách nhập mật khẩu của bạn."]},{msgid:"Wrong password",msgstr:["Mật khẩu sai"]}]},{locale:"zh_CN",translations:[{msgid:"Authentication required",msgstr:["需要身份验证"]},{msgid:"Checking password …",msgstr:["正在检查密码 …"]},{msgid:"Confirm",msgstr:["确认"]},{msgid:"Password",msgstr:["密码"]},{msgid:"Please enter your password",msgstr:["请输入您的密码"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["此操作需要身份验证,请输入密码进行确认。"]},{msgid:"Unknown error while checking password",msgstr:["检查密码时出现未知错误"]},{msgid:"Wrong password",msgstr:["密码错误"]}]},{locale:"zh_HK",translations:[{msgid:"Authentication required",msgstr:["需要驗證"]},{msgid:"Checking password …",msgstr:["正在檢查密碼 …"]},{msgid:"Confirm",msgstr:["確認"]},{msgid:"Password",msgstr:["密碼"]},{msgid:"Please enter your password",msgstr:["請輸入您的密碼"]},{msgid:"This action needs authentication, please confirm it by entering your password.",msgstr:["此操作需要身份驗證,請輸入您的密碼以進行確認。"]},{msgid:"Wrong password",msgstr:["密碼錯誤"]}]},{locale:"zh_TW",translations:[{msgid:"Checking password …",msgstr:["正在檢查密碼……"]},{msgid:"Confirm",msgstr:["確認"]},{msgid:"Confirm your password",msgstr:["確認您的密碼"]},{msgid:"Password",msgstr:["密碼"]},{msgid:"Please enter your password",msgstr:["請輸入您的密碼"]},{msgid:"This action needs authentication",msgstr:["此動作需要驗證"]},{msgid:"Wrong password",msgstr:["密碼錯誤"]}]}].map(({locale:s,translations:r})=>F.addTranslation(s,{headers:{},translations:{"":Object.fromEntries(r.map(u=>[u.msgid,u]))}}));const C=F.build();C.ngettext.bind(C);const e=C.gettext.bind(C),i=T().setApp("@nextcloud/password-confirmation").detectLogLevel().build(),Y=L({__name:"PasswordDialog",props:{validate:{type:Function}},emits:["close"],setup(s,{emit:r}){const u=s,g=r;K(v);const t=I("field"),a=p(""),w=p(!1),n=p(!1),y=[{label:e("Confirm"),type:"submit",variant:"primary",callback:D}],P=N(()=>{if(n.value!==!1){if(a.value==="")return e("Please enter your password");switch(n.value){case!0:return e("Unknown error while checking password");case 403:return e("Wrong password")}}return w.value?e("Checking password …"):""});async function D(){if(n.value=!1,w.value=!0,a.value==="")return n.value=!0,!1;try{return await u.validate(a.value),g("close",!0),!0}catch(d){return W(d)&&d.response?.status===403?n.value=403:n.value=!0,i.error("Exception during password confirmation",{error:d}),b(),!1}finally{w.value=!1}}function v(){A(()=>{t.value.focus()})}function b(){A(()=>{t.value.select()})}return(d,c)=>(O(),M(m(S),{"is-form":"",buttons:y,name:m(e)("Authentication required"),"content-classes":d.$style.passwordDialog,"onUpdate:open":c[1]||(c[1]=h=>g("close",!1))},{default:H(()=>[R("p",null,Z(m(e)("This action needs authentication, please confirm it by entering your password.")),1),J(m(V),{ref:"field",modelValue:a.value,"onUpdate:modelValue":c[0]||(c[0]=h=>a.value=h),label:m(e)("Password"),"helper-text":P.value,error:n.value!==!1,required:""},null,8,["modelValue","label","helper-text","error"])]),_:1},8,["name","content-classes"]))}}),$="_passwordDialog_joix2_2",Q={passwordDialog:$},X=(s,r)=>{const u=s.__vccOpts||s;for(const[g,t]of r)u[g]=t;return u},uu={$style:Q},su=X(Y,[["__cssModules",uu]]);let B=!1;async function ou(){if(!x(o.Lax))return Promise.resolve();await k(async s=>{await f(s)})}async function f(s){i.debug("Confirming password");const r=_("/login/confirm"),{data:u}=await z.post(r,{password:s});window.nc_lastLogin=u.lastLogin,i.debug("Password confirmed")}let l,E;async function k(s){E=s,l||(l=U(su,{validate(u){return E(u)}}));const r=await l;if(l=void 0,!r)throw new Error("Dialog closed")}function gu(s){if(B)return;B=!0;let r;s.interceptors.request.use(async u=>{if(u.confirmPassword===void 0||!x(u.confirmPassword))return u;const{promise:g,resolve:t}=Promise.withResolvers();return k(async a=>{switch(u.confirmPassword){case o.Lax:await f(a),t(u);break;case o.Strict:return r=Promise.withResolvers(),u.auth={username:q()?.uid??"",password:a},i.debug("Adding auth info to the request",{config:u}),t(u),r.promise}}),g}),s.interceptors.response.use(u=>u.config.confirmPassword!==o.Strict?u:r===void 0?(i.debug("Password confirmation not required",{response:u}),u):(i.debug("Password confirmation succeeded",{response:u}),window.nc_lastLogin=Date.now()/1e3,r.resolve(),u),u=>{if(u.config?.confirmPassword!==o.Strict)throw u;if(r===void 0)throw i.debug("Password confirmation not required",{error:u}),u;return i.debug("Password confirmation failed",{error:u}),r.reject(u),i.debug("Triggering new request",{error:u}),s.request(u.config)})}export{o as P,gu as a,ou as c}; +//# sourceMappingURL=index-CEFiUoek.chunk.mjs.map diff --git a/dist/index-cDQt1Drw.chunk.mjs.license b/dist/index-CEFiUoek.chunk.mjs.license similarity index 100% rename from dist/index-cDQt1Drw.chunk.mjs.license rename to dist/index-CEFiUoek.chunk.mjs.license diff --git a/dist/index-cDQt1Drw.chunk.mjs.map b/dist/index-CEFiUoek.chunk.mjs.map similarity index 99% rename from dist/index-cDQt1Drw.chunk.mjs.map rename to dist/index-CEFiUoek.chunk.mjs.map index 9f775494f2b5c..af7ba4dd04bab 100644 --- a/dist/index-cDQt1Drw.chunk.mjs.map +++ b/dist/index-CEFiUoek.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"index-cDQt1Drw.chunk.mjs","sources":["../node_modules/@nextcloud/password-confirmation/dist/index.mjs"],"sourcesContent":["import { getCurrentUser } from \"@nextcloud/auth\";\nimport axios, { isAxiosError } from \"@nextcloud/axios\";\nimport { generateUrl } from \"@nextcloud/router\";\nimport { spawnDialog } from \"@nextcloud/vue/functions/dialog\";\nimport { defineComponent, onMounted, useTemplateRef, ref, computed, nextTick, createBlock, openBlock, unref, withCtx, createElementVNode, createVNode, toDisplayString } from \"vue\";\nimport NcDialog from \"@nextcloud/vue/components/NcDialog\";\nimport NcPasswordField from \"@nextcloud/vue/components/NcPasswordField\";\nimport { getGettextBuilder } from \"@nextcloud/l10n/gettext\";\nimport { getLoggerBuilder } from \"@nextcloud/logger\";\n/*!\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: MIT\n */\nvar PwdConfirmationMode = /* @__PURE__ */ ((PwdConfirmationMode2) => {\n PwdConfirmationMode2[\"Lax\"] = \"lax\";\n PwdConfirmationMode2[\"Strict\"] = \"strict\";\n return PwdConfirmationMode2;\n})(PwdConfirmationMode || {});\n/*!\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: MIT\n */\nconst PAGE_LOAD_TIME = Date.now();\nfunction isPasswordConfirmationRequired(mode) {\n if (!window.backendAllowsPasswordConfirmation) {\n return false;\n }\n if (mode === PwdConfirmationMode.Strict) {\n return true;\n }\n const serverTimeDiff = PAGE_LOAD_TIME - window.nc_pageLoad * 1e3;\n const timeSinceLogin = Date.now() - (serverTimeDiff + window.nc_lastLogin * 1e3);\n return timeSinceLogin > 30 * 60 * 1e3;\n}\n/*!\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: MIT\n */\nconst gtBuilder = getGettextBuilder().detectLanguage();\n[{ \"locale\": \"ar\", \"translations\": [{ \"msgid\": \"Checking password …\", \"msgstr\": [\"يتم التحقق من كلمة المرور...\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"تأكيد\"] }, { \"msgid\": \"Confirm your password\", \"msgstr\": [\"تأكيد كلمة المرور\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"كلمة المرور\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"يرجى إدخال كلمة المرور الخاصة بك\"] }, { \"msgid\": \"This action needs authentication\", \"msgstr\": [\"هذا الإجراء يتطلب التحقق من الهوية\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"كلمة المرور غير صحيحة\"] }] }, { \"locale\": \"ast\", \"translations\": [{ \"msgid\": \"Checking password …\", \"msgstr\": [\"Comprobando la contraseña…\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Confirmación\"] }, { \"msgid\": \"Confirm your password\", \"msgstr\": [\"Confirma la contraseña\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Contraseña\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Introduz la contraseña\"] }, { \"msgid\": \"This action needs authentication\", \"msgstr\": [\"Esta aición precisa l'autenticación\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"La contraseña ye incorreuta\"] }] }, { \"locale\": \"az\", \"translations\": [{ \"msgid\": \"Confirm\", \"msgstr\": [\"Təsdiq edin\"] }, { \"msgid\": \"Confirm your password\", \"msgstr\": [\"Parolunuzu təsdiq edin\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Parol\"] }, { \"msgid\": \"Password confirmation dialog already mounted\", \"msgstr\": [\"Parolun təsdiqi dialoqu artıq quraşdırılıb\"] }, { \"msgid\": \"This action needs authentication\", \"msgstr\": [\"Bu əməliyyat autentifikasiya tələb edir\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Səhv parol\"] }] }, { \"locale\": \"be\", \"translations\": [{ \"msgid\": \"Checking password …\", \"msgstr\": [\"Праверка пароля…\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Пацвердзіць\"] }, { \"msgid\": \"Confirm your password\", \"msgstr\": [\"Пацвердзіць пароль\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Пароль\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Калі ласка, увядзіце ваш пароль\"] }, { \"msgid\": \"This action needs authentication\", \"msgstr\": [\"Гэта дзеянне патрабуе аўтэнтыфікацыі\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Памылковы пароль\"] }] }, { \"locale\": \"ca\", \"translations\": [{ \"msgid\": \"Checking password …\", \"msgstr\": [\"S'està comprovant la contrasenya …\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Confirma\"] }, { \"msgid\": \"Confirm your password\", \"msgstr\": [\"Confirmeu la vostra contrasenya\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Contrasenya\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Introduïu la vostra contrasenya\"] }, { \"msgid\": \"This action needs authentication\", \"msgstr\": [\"Aquesta acció necessita autenticació\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Contrasenya incorrecta\"] }] }, { \"locale\": \"cs_CZ\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Vyžadováno ověření se\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Ověřování hesla…\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Potvrdit\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Heslo\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Zadejte heslo\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"Tato akce vyžaduje ověření se – potvrďte ji zadáním svého hesla.\"] }, { \"msgid\": \"Unknown error while checking password\", \"msgstr\": [\"Neznámá chyba při kontrolování hesla\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Nesprávné heslo\"] }] }, { \"locale\": \"da\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Bekræft din identitet\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Kontrollerer adgangskode …\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Bekræft\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Adgangskode\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Indtast venligst dit kodeord\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"Denne handling kræver godkendelse. Indtast din adgangskode for at bekræfte.\"] }, { \"msgid\": \"Unknown error while checking password\", \"msgstr\": [\"Ukendt fejl under kontrol af adgangskode\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"forkert Adgangskode\"] }] }, { \"locale\": \"de\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Authentifizierung erforderlich\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Passwort prüfen  …\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Bestätigen\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Passwort\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Bitte gib dein Passwort ein\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"Für diese Aktion ist eine Authentifizierung erforderlich. Bitte bestätige diese durch Eingabe deines Passworts.\"] }, { \"msgid\": \"Unknown error while checking password\", \"msgstr\": [\"Unbekannter Fehler beim Überprüfen des Passworts\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Falsches Passwort\"] }] }, { \"locale\": \"de_DE\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Authentifizierung erforderlich\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Passwort prüfen …\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Bestätigen\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Passwort\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Bitte geben Sie Ihr Passwort ein\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"Für diese Aktion ist eine Authentifizierung erforderlich. Bitte bestätigen Sie diese durch Eingabe Ihres Passworts.\"] }, { \"msgid\": \"Unknown error while checking password\", \"msgstr\": [\"Unbekannter Fehler beim Überprüfen des Passworts\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Falsches Passwort\"] }] }, { \"locale\": \"el\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Απαιτείται πιστοποίηση\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Έλεγχος κωδικού πρόσβασης …\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Επιβεβαίωση\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Συνθηματικό\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Παρακαλώ εισάγετε το συνθηματικό σας\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"Αυτή η ενέργεια απαιτεί πιστοποίηση. Επιβεβαιώστε την εισάγοντας τον κωδικό πρόσβασής σας.\"] }, { \"msgid\": \"Unknown error while checking password\", \"msgstr\": [\"Άγνωστο σφάλμα κατά τον έλεγχο του κωδικού πρόσβασης\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Λάθος συνθηματικό\"] }] }, { \"locale\": \"en_GB\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Authentication required\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Checking password …\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Confirm\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Password\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Please enter your password\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"This action needs authentication, please confirm it by entering your password.\"] }, { \"msgid\": \"Unknown error while checking password\", \"msgstr\": [\"Unknown error while checking password\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Wrong password\"] }] }, { \"locale\": \"es\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Se requiere autenticación\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Verificando contraseña …\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Confirmar\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Contraseña\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Por favor, Introduzca su contraseña\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"Esta acción requiere autenticación, por favor, confírmela ingresado su contraseña.\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Contraseña errónea\"] }] }, { \"locale\": \"es_AR\", \"translations\": [{ \"msgid\": \"Checking password …\", \"msgstr\": [\"Verificando contraseña …\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Confirmar\"] }, { \"msgid\": \"Confirm your password\", \"msgstr\": [\"Confirme su contraseña\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Contraseña\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Por favor, introduzca su contraseña\"] }, { \"msgid\": \"This action needs authentication\", \"msgstr\": [\"Esta acción necesita autenticación\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Contraseña incorrecta\"] }] }, { \"locale\": \"es_CO\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Autenticación requerida\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Verificando contraseña …\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Confirmar\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Contraseña\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Por favor introduzca su contraseña\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"Esta acción necesita autentificación, por favor confírmela introduciendo su contraseña.\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Contraseña incorrecta\"] }] }, { \"locale\": \"es_MX\", \"translations\": [{ \"msgid\": \"Checking password …\", \"msgstr\": [\"Verificando contraseña …\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Confirmar\"] }, { \"msgid\": \"Confirm your password\", \"msgstr\": [\"Confirme su contraseña\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Contraseña\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Por favor introduzca su contraseña\"] }, { \"msgid\": \"This action needs authentication\", \"msgstr\": [\"Esta acción necesita autenticación\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Contraseña incorrecta\"] }] }, { \"locale\": \"et_EE\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Autentimine on vajalik\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Kontrollin salasõna…\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Kinnita\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Salasõna\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Palun sisesta oma salasõna\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"See tegevus eeldab autentimist, palun tee seda sisestades oma salasõna.\"] }, { \"msgid\": \"Unknown error while checking password\", \"msgstr\": [\"Tundmatu viga salasõna kontrollimisel\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Vale salasõna\"] }] }, { \"locale\": \"fa\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"احراز هویت مورد نیاز است\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"در حال بررسی رمز عبور...\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"تأیید\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"رمز عبور\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"لطفاً رمز عبور خود را وارد کنید\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"این عمل نیاز به احراز هویت دارد، لطفاً با وارد کردن رمز عبور خود آن را تأیید کنید.\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"رمز عبور اشتباه است\"] }] }, { \"locale\": \"fi_FI\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Tunnistautuminen vaaditaan\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Tarkistetaan salasanaa …\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Vahvista\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Salasana\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Kirjoita salasanasi\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"Tämä toimenpide vaatii tunnistautumisen. Vahvista kirjoittamalla salasanasi.\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Väärä salasana\"] }] }, { \"locale\": \"fr\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Authentification requise\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Vérification du mot de passe ...\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Confirmer\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Mot de passe\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Veuillez saisir votre mot de passe\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"Cette action nécessite une authentification, veuillez confirmer en saisissant votre mot de passe.\"] }, { \"msgid\": \"Unknown error while checking password\", \"msgstr\": [\"Erreur inconnue lors de la vérification du mot de passe\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Mot de passe incorrect\"] }] }, { \"locale\": \"ga\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Fíordheimhniú ag teastáil\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Ag seiceáil an focal faire …\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Deimhnigh\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Pasfhocal\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Cuir isteach do phasfhocal\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"Teastaíonn fíordheimhniú don ghníomh seo, deimhnigh é trí do phasfhocal a iontráil.\"] }, { \"msgid\": \"Unknown error while checking password\", \"msgstr\": [\"Earráid anaithnid agus an focal faire á sheiceáil\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Pasfhocal mícheart\"] }] }, { \"locale\": \"gl\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"É necesaria a autenticación\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Comprobando o contrasinal…\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Confirmar\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Contrasinal\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Introduza o seu contrasinal\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"Esta acción precisa de autenticación, confírmea introducindo o seu contrasinal.\"] }, { \"msgid\": \"Unknown error while checking password\", \"msgstr\": [\"Produciuse un erro descoñecido ao comprobar o contrasinal\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Contrasinal incorrecto\"] }] }, { \"locale\": \"hu_HU\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Azonosítás szükséges\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Jelszó ellenőrzése ...\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Jóváhagyás\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Jelszó\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Adja meg a jelszavát\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"Ehhez a tevékenységhez azonosítás szükséges. Kérlek hagyd jóvá a jelszavad megadásával.\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Hibás jelszó\"] }] }, { \"locale\": \"id\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Autentikasi diperlukan\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Memeriksa kata sandi ...\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Konfirmasi\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Kata sandi\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Silahkan masukan kata sandi Anda\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"Aksi ini memerlukan autentikasi, silahkan konfirmasi dengan memasukan kata sandi Anda.\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Kata sandi salah\"] }] }, { \"locale\": \"is\", \"translations\": [{ \"msgid\": \"Checking password …\", \"msgstr\": [\"Athuga lykilorð …\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Staðfesta\"] }, { \"msgid\": \"Confirm your password\", \"msgstr\": [\"Staðfestu lykilorðið þitt\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Lykilorð\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Settu inn lykilorðið þitt\"] }, { \"msgid\": \"This action needs authentication\", \"msgstr\": [\"Þessi aðgerð krefst auðkenningar\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Rangt lykilorð\"] }] }, { \"locale\": \"it\", \"translations\": [{ \"msgid\": \"Checking password …\", \"msgstr\": [\"Controllo della password…\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Conferma\"] }, { \"msgid\": \"Confirm your password\", \"msgstr\": [\"Conferma la tua password\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Password\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Inserisci la tua password\"] }, { \"msgid\": \"This action needs authentication\", \"msgstr\": [\"Questa azione richiede l'autenticazione\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Password errata\"] }] }, { \"locale\": \"ja_JP\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"認証が必要です\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"パスワードの確認 …\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"確認\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"パスワード\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"パスワードを入力してください\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"この操作には認証が必要です。パスワードを入力して承認してください。\"] }, { \"msgid\": \"Unknown error while checking password\", \"msgstr\": [\"パスワードのチェック中に不明なエラーが発生しました\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"間違ったパスワード\"] }] }, { \"locale\": \"kab\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Asesteb yettwasra\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Asenqed n wawal n uɛeddi …\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Sentem\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Awal n uɛeddi\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Txil, sekcem-d awal-ik·im n uɛeddi\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"Tigawt-a tesra asesteb, ttxil-k·m, wekked-itt-id s usekcem n wawal-inek·inem n uɛeddi.\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Awal n uɛeddi d arameɣtu\"] }] }, { \"locale\": \"ko\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"인증 필요 \"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"비밀번호 확인 중 ...\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"확인\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"비밀번호\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"비밀번호를 입력하세요\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"이 작업은 인증이 필요합니다. 비밀번호를 입력하여 확인하십시오. \"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"잘못된 비밀번호\"] }] }, { \"locale\": \"lv\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Nepieciešama autentificēšanās\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Pārbauda paroli...\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Apstiprināt\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Parole\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Lūgums ievadīt savu paroli\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"Šai darbībai ir nepieciešama autentificēšanās. Lūgums to apstiprināt ar savas paroles ievadīšanu.\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Nepareiza parole\"] }] }, { \"locale\": \"mk\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Потребна е автентификација\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Проверка на лозинка …\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Потврди\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Лозинка\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Внесете ја вашата лозинка\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"Оваа акција бара автентикација, потврдете ја со внесување на вашата лозинка.\"] }, { \"msgid\": \"Unknown error while checking password\", \"msgstr\": [\"Непозната грешка додека се проверува лозинката\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Погрешна лозинка\"] }] }, { \"locale\": \"ms_MY\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Pengesahan diperlukan\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Menyemak kata laluan …\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Mengesahkan\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Kata laluan\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Sila masukkan kata laluan anda\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"Tindakan ini memerlukan pengesahan, sila sahkan dengan memasukkan kata laluan anda.\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Kata laluan salah\"] }] }, { \"locale\": \"nb_NO\", \"translations\": [{ \"msgid\": \"Checking password …\", \"msgstr\": [\"Sjekker passord …\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Bekreft\"] }, { \"msgid\": \"Confirm your password\", \"msgstr\": [\"Bekreft passordet ditt\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Passord\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Vennligst skriv inn passordet ditt\"] }, { \"msgid\": \"This action needs authentication\", \"msgstr\": [\"Denne handlingen krever autentisering\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Feil passord\"] }] }, { \"locale\": \"nl\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Authenticatie vereist\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Wachtwoord controleren…\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Bevestigen\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Wachtwoord\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Voer je wachtwoord in\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"Deze actie vereist authenticatie, voer je wachtwoord in.\"] }, { \"msgid\": \"Unknown error while checking password\", \"msgstr\": [\"Onbekende fout bij wachtwoord controleren\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Incorrect wachtwoord\"] }] }, { \"locale\": \"pl\", \"translations\": [{ \"msgid\": \"Checking password …\", \"msgstr\": [\"Sprawdzanie hasła…\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Potwierdź\"] }, { \"msgid\": \"Confirm your password\", \"msgstr\": [\"Potwierdź swoje hasło\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Hasło\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Wprowadź swoje hasło\"] }, { \"msgid\": \"This action needs authentication\", \"msgstr\": [\"Wykonanie tej czynności wymaga autoryzacji\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Nieprawidłowe hasło\"] }] }, { \"locale\": \"pt_BR\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Autenticação necessária\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Verificando a senha …\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Confirmar\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Senha\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Por favor, insira sua senha\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"Esta ação precisa de autenticação. Por favor, confirme-a digitando sua senha.\"] }, { \"msgid\": \"Unknown error while checking password\", \"msgstr\": [\"Erro desconhecido ao verificar a senha\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Senha incorreta\"] }] }, { \"locale\": \"pt_PT\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Autenticação necessária\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"A verificar palavra-passe…\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Confirmar\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Palavra-passe\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Introduza a sua palavra-passe, por favor\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"Esta ação requer autenticação; confirme-a introduzindo a sua palavra-passe.\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Palavra-passe incorreta\"] }] }, { \"locale\": \"ro\", \"translations\": [{ \"msgid\": \"Checking password …\", \"msgstr\": [\"Se verifică parola ...\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Confirmare\"] }, { \"msgid\": \"Confirm your password\", \"msgstr\": [\"Confirmare parolă\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Parolă\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Vă rugăm să introduceți parola\"] }, { \"msgid\": \"This action needs authentication\", \"msgstr\": [\"Această acțiune necesită autentificare\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Parolă incorectă\"] }] }, { \"locale\": \"ru\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Требуется аутентификация\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Проверка пароля …\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Подтвердить\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Пароль\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Пожалуйста, введите свой пароль\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"Это действие требует аутентификации, пожалуйста подтвердите его вводом вашего пароля.\"] }, { \"msgid\": \"Unknown error while checking password\", \"msgstr\": [\"Неизвестная ошибка при проверке пароля\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Неправильный пароль\"] }] }, { \"locale\": \"sk_SK\", \"translations\": [{ \"msgid\": \"Checking password …\", \"msgstr\": [\"Kontrola hesla...\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Potvrdiť\"] }, { \"msgid\": \"Confirm your password\", \"msgstr\": [\"Potvrďte svoje heslo\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Heslo\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Zadajte prosím svoje heslo\"] }, { \"msgid\": \"This action needs authentication\", \"msgstr\": [\"Táto akcia vyžaduje overenie\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Nesprávne heslo\"] }] }, { \"locale\": \"sl\", \"translations\": [{ \"msgid\": \"Checking password …\", \"msgstr\": [\"Poteka preverjanje gesla ...\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Potrdi\"] }, { \"msgid\": \"Confirm your password\", \"msgstr\": [\"Potrdi geslo\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Geslo\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Vpisati je treba geslo\"] }, { \"msgid\": \"This action needs authentication\", \"msgstr\": [\"To dejanje zahteva overitev\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Napačno geslo\"] }] }, { \"locale\": \"sr\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Потребна је потврда идентитета\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Проверава се лозинка…\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Потврда\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Лозинка\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Молимо вас да унесете своју лозинку\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"За ову акцију је потребна провера идентитета, молимо вас да га потврдите уносом своје лозинке.\"] }, { \"msgid\": \"Unknown error while checking password\", \"msgstr\": [\"Непозната грешка током провере лозинке\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Погрешна лозинка\"] }] }, { \"locale\": \"sv\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Autentisering krävs\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Kontrollerar lösenord …\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Bekräfta\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Lösenord\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Ange ditt lösenord\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"Den här åtgärden kräver autentisering, bekräfta genom att ange ditt lösenord.\"] }, { \"msgid\": \"Unknown error while checking password\", \"msgstr\": [\"Okänt fel vid kontroll av lösenord\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Fel lösenord\"] }] }, { \"locale\": \"tr\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Kimlik doğrulaması gerekli\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Parola denetleniyor…\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Parola onayı\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Parola\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Lütfen parolanızı yazın\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"Bu işlemi yapmak için kimliğinizi doğrulamalısınız. Lütfen parolanızı yazın.\"] }, { \"msgid\": \"Unknown error while checking password\", \"msgstr\": [\"Parola denetlenirken bilinmeyen bir sorun çıktı\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Parola geçersiz\"] }] }, { \"locale\": \"uk\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Потрібна авторизація\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Перевірка паролю ...\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Підтвердити\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Пароль\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Зазначте ваш пароль\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"Ця дія вимагає авторизацію, зазначте ваш пароль.\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Помилковий пароль\"] }] }, { \"locale\": \"ur_PK\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"تصدیق درکار ہے\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"پاس ورڈ چیک ہو رہا ہے …\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"تصدیق کریں\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"پاس ورڈ\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"براہ کرم اپنا پاس ورڈ درج کریں\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"اس عمل کو تصدیق کی ضرورت ہے، براہ کرم پاس ورڈ درج کرکے اس کی تصدیق کریں۔\"] }, { \"msgid\": \"Unknown error while checking password\", \"msgstr\": [\"پاس ورڈ چیک کرنے میں نامعلوم خرابی\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"نادرست پاس ورڈ\"] }] }, { \"locale\": \"uz\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Autentifikatsiya talab qilinadi\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Parol tekshirilmoqda…\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Tasdiqlang\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Parol\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Iltimos, parolingizni kiriting\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"Ushbu amaliyot autentifikatsiya talab etadi, parolingizni kiritish orqali buni tasdiqlang.\"] }, { \"msgid\": \"Unknown error while checking password\", \"msgstr\": [\"Parolni tekshirishda noma'lum xatolik yuz berdi\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Parol noto'g'ri \"] }] }, { \"locale\": \"vi\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Yêu cầu xác thực\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Đang kiểm tra mật khẩu ...\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Chấp nhận\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Mật khẩu\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Vui lòng nhập mật khẩu của bạn\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"Thao tác này cần xác thực, vui lòng xác nhận bằng cách nhập mật khẩu của bạn.\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Mật khẩu sai\"] }] }, { \"locale\": \"zh_CN\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"需要身份验证\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"正在检查密码 …\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"确认\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"密码\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"请输入您的密码\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"此操作需要身份验证,请输入密码进行确认。\"] }, { \"msgid\": \"Unknown error while checking password\", \"msgstr\": [\"检查密码时出现未知错误\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"密码错误\"] }] }, { \"locale\": \"zh_HK\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"需要驗證\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"正在檢查密碼 …\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"確認\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"密碼\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"請輸入您的密碼\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"此操作需要身份驗證,請輸入您的密碼以進行確認。\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"密碼錯誤\"] }] }, { \"locale\": \"zh_TW\", \"translations\": [{ \"msgid\": \"Checking password …\", \"msgstr\": [\"正在檢查密碼……\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"確認\"] }, { \"msgid\": \"Confirm your password\", \"msgstr\": [\"確認您的密碼\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"密碼\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"請輸入您的密碼\"] }, { \"msgid\": \"This action needs authentication\", \"msgstr\": [\"此動作需要驗證\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"密碼錯誤\"] }] }].map(({ locale, translations }) => gtBuilder.addTranslation(locale, {\n headers: {},\n translations: {\n \"\": Object.fromEntries(translations.map((t2) => [t2.msgid, t2]))\n }\n}));\nconst gt = gtBuilder.build();\ngt.ngettext.bind(gt);\nconst t = gt.gettext.bind(gt);\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: CC0-1.0\n */\nconst logger = getLoggerBuilder().setApp(\"@nextcloud/password-confirmation\").detectLogLevel().build();\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"PasswordDialog\",\n props: {\n validate: { type: Function }\n },\n emits: [\"close\"],\n setup(__props, { emit: __emit }) {\n const props = __props;\n const emit = __emit;\n onMounted(focusPasswordField);\n const passwordInput = useTemplateRef(\"field\");\n const password = ref(\"\");\n const loading = ref(false);\n const hasError = ref(false);\n const buttons = [{\n label: t(\"Confirm\"),\n type: \"submit\",\n variant: \"primary\",\n callback\n }];\n const helperText = computed(() => {\n if (hasError.value !== false) {\n if (password.value === \"\") {\n return t(\"Please enter your password\");\n }\n switch (hasError.value) {\n case true:\n return t(\"Unknown error while checking password\");\n case 403:\n return t(\"Wrong password\");\n }\n }\n if (loading.value) {\n return t(\"Checking password …\");\n }\n return \"\";\n });\n async function callback() {\n hasError.value = false;\n loading.value = true;\n if (password.value === \"\") {\n hasError.value = true;\n return false;\n }\n try {\n await props.validate(password.value);\n emit(\"close\", true);\n return true;\n } catch (error) {\n if (isAxiosError(error) && error.response?.status === 403) {\n hasError.value = 403;\n } else {\n hasError.value = true;\n }\n logger.error(\"Exception during password confirmation\", { error });\n selectPasswordField();\n return false;\n } finally {\n loading.value = false;\n }\n }\n function focusPasswordField() {\n nextTick(() => {\n passwordInput.value.focus();\n });\n }\n function selectPasswordField() {\n nextTick(() => {\n passwordInput.value.select();\n });\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(NcDialog), {\n \"is-form\": \"\",\n buttons,\n name: unref(t)(\"Authentication required\"),\n \"content-classes\": _ctx.$style.passwordDialog,\n \"onUpdate:open\": _cache[1] || (_cache[1] = ($event) => emit(\"close\", false))\n }, {\n default: withCtx(() => [\n createElementVNode(\"p\", null, toDisplayString(unref(t)(\"This action needs authentication, please confirm it by entering your password.\")), 1),\n createVNode(unref(NcPasswordField), {\n ref: \"field\",\n modelValue: password.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => password.value = $event),\n label: unref(t)(\"Password\"),\n \"helper-text\": helperText.value,\n error: hasError.value !== false,\n required: \"\"\n }, null, 8, [\"modelValue\", \"label\", \"helper-text\", \"error\"])\n ]),\n _: 1\n }, 8, [\"name\", \"content-classes\"]);\n };\n }\n});\nconst passwordDialog = \"_passwordDialog_joix2_2\";\nconst style0 = {\n passwordDialog\n};\nconst _export_sfc = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst PasswordDialogVue = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\n/*!\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: MIT\n */\nlet INTERCEPTOR_INITIALIZED = false;\nasync function confirmPassword() {\n if (!isPasswordConfirmationRequired(PwdConfirmationMode.Lax)) {\n return Promise.resolve();\n }\n await promptPassword(async (password) => {\n await _confirmPassword(password);\n });\n}\nasync function _confirmPassword(password) {\n logger.debug(\"Confirming password\");\n const url = generateUrl(\"/login/confirm\");\n const { data } = await axios.post(url, { password });\n window.nc_lastLogin = data.lastLogin;\n logger.debug(\"Password confirmed\");\n}\nlet _passwordDialog;\nlet _dialogCallback;\nasync function promptPassword(validate) {\n _dialogCallback = validate;\n if (!_passwordDialog) {\n _passwordDialog = spawnDialog(PasswordDialogVue, {\n validate(password) {\n return _dialogCallback(password);\n }\n });\n }\n const result = await _passwordDialog;\n _passwordDialog = void 0;\n if (!result) {\n throw new Error(\"Dialog closed\");\n }\n}\nfunction addPasswordConfirmationInterceptors(axios2) {\n if (INTERCEPTOR_INITIALIZED) {\n return;\n }\n INTERCEPTOR_INITIALIZED = true;\n let validatePromise;\n axios2.interceptors.request.use(async (config) => {\n if (config.confirmPassword === void 0) {\n return config;\n }\n if (!isPasswordConfirmationRequired(config.confirmPassword)) {\n return config;\n }\n const { promise, resolve } = Promise.withResolvers();\n promptPassword(async (password) => {\n switch (config.confirmPassword) {\n case PwdConfirmationMode.Lax:\n await _confirmPassword(password);\n resolve(config);\n break;\n case PwdConfirmationMode.Strict:\n validatePromise = Promise.withResolvers();\n config.auth = {\n username: getCurrentUser()?.uid ?? \"\",\n password\n };\n logger.debug(\"Adding auth info to the request\", { config });\n resolve(config);\n return validatePromise.promise;\n }\n });\n return promise;\n });\n axios2.interceptors.response.use(\n (response) => {\n if (response.config.confirmPassword !== PwdConfirmationMode.Strict) {\n return response;\n }\n if (validatePromise === void 0) {\n logger.debug(\"Password confirmation not required\", { response });\n return response;\n }\n logger.debug(\"Password confirmation succeeded\", { response });\n window.nc_lastLogin = Date.now() / 1e3;\n validatePromise.resolve();\n return response;\n },\n (error) => {\n if (error.config?.confirmPassword !== PwdConfirmationMode.Strict) {\n throw error;\n }\n if (validatePromise === void 0) {\n logger.debug(\"Password confirmation not required\", { error });\n throw error;\n }\n logger.debug(\"Password confirmation failed\", { error });\n validatePromise.reject(error);\n logger.debug(\"Triggering new request\", { error });\n return axios2.request(error.config);\n }\n );\n}\nexport {\n PwdConfirmationMode,\n addPasswordConfirmationInterceptors,\n confirmPassword,\n isPasswordConfirmationRequired\n};\n//# sourceMappingURL=index.mjs.map\n"],"names":["PwdConfirmationMode","PwdConfirmationMode2","PAGE_LOAD_TIME","isPasswordConfirmationRequired","mode","serverTimeDiff","gtBuilder","getGettextBuilder","locale","translations","t2","gt","t","logger","getLoggerBuilder","_sfc_main","defineComponent","__props","__emit","props","emit","onMounted","focusPasswordField","passwordInput","useTemplateRef","password","ref","loading","hasError","buttons","callback","helperText","computed","error","isAxiosError","selectPasswordField","nextTick","_ctx","_cache","openBlock","createBlock","unref","NcDialog","$event","withCtx","createElementVNode","toDisplayString","createVNode","NcPasswordField","passwordDialog","style0","_export_sfc","sfc","target","key","val","cssModules","PasswordDialogVue","INTERCEPTOR_INITIALIZED","confirmPassword","promptPassword","_confirmPassword","url","generateUrl","data","axios","_passwordDialog","_dialogCallback","validate","spawnDialog","result","addPasswordConfirmationInterceptors","axios2","validatePromise","config","promise","resolve","getCurrentUser","response"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file +{"version":3,"file":"index-CEFiUoek.chunk.mjs","sources":["../node_modules/@nextcloud/password-confirmation/dist/index.mjs"],"sourcesContent":["import { getCurrentUser } from \"@nextcloud/auth\";\nimport axios, { isAxiosError } from \"@nextcloud/axios\";\nimport { generateUrl } from \"@nextcloud/router\";\nimport { spawnDialog } from \"@nextcloud/vue/functions/dialog\";\nimport { defineComponent, onMounted, useTemplateRef, ref, computed, nextTick, createBlock, openBlock, unref, withCtx, createElementVNode, createVNode, toDisplayString } from \"vue\";\nimport NcDialog from \"@nextcloud/vue/components/NcDialog\";\nimport NcPasswordField from \"@nextcloud/vue/components/NcPasswordField\";\nimport { getGettextBuilder } from \"@nextcloud/l10n/gettext\";\nimport { getLoggerBuilder } from \"@nextcloud/logger\";\n/*!\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: MIT\n */\nvar PwdConfirmationMode = /* @__PURE__ */ ((PwdConfirmationMode2) => {\n PwdConfirmationMode2[\"Lax\"] = \"lax\";\n PwdConfirmationMode2[\"Strict\"] = \"strict\";\n return PwdConfirmationMode2;\n})(PwdConfirmationMode || {});\n/*!\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: MIT\n */\nconst PAGE_LOAD_TIME = Date.now();\nfunction isPasswordConfirmationRequired(mode) {\n if (!window.backendAllowsPasswordConfirmation) {\n return false;\n }\n if (mode === PwdConfirmationMode.Strict) {\n return true;\n }\n const serverTimeDiff = PAGE_LOAD_TIME - window.nc_pageLoad * 1e3;\n const timeSinceLogin = Date.now() - (serverTimeDiff + window.nc_lastLogin * 1e3);\n return timeSinceLogin > 30 * 60 * 1e3;\n}\n/*!\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: MIT\n */\nconst gtBuilder = getGettextBuilder().detectLanguage();\n[{ \"locale\": \"ar\", \"translations\": [{ \"msgid\": \"Checking password …\", \"msgstr\": [\"يتم التحقق من كلمة المرور...\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"تأكيد\"] }, { \"msgid\": \"Confirm your password\", \"msgstr\": [\"تأكيد كلمة المرور\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"كلمة المرور\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"يرجى إدخال كلمة المرور الخاصة بك\"] }, { \"msgid\": \"This action needs authentication\", \"msgstr\": [\"هذا الإجراء يتطلب التحقق من الهوية\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"كلمة المرور غير صحيحة\"] }] }, { \"locale\": \"ast\", \"translations\": [{ \"msgid\": \"Checking password …\", \"msgstr\": [\"Comprobando la contraseña…\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Confirmación\"] }, { \"msgid\": \"Confirm your password\", \"msgstr\": [\"Confirma la contraseña\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Contraseña\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Introduz la contraseña\"] }, { \"msgid\": \"This action needs authentication\", \"msgstr\": [\"Esta aición precisa l'autenticación\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"La contraseña ye incorreuta\"] }] }, { \"locale\": \"az\", \"translations\": [{ \"msgid\": \"Confirm\", \"msgstr\": [\"Təsdiq edin\"] }, { \"msgid\": \"Confirm your password\", \"msgstr\": [\"Parolunuzu təsdiq edin\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Parol\"] }, { \"msgid\": \"Password confirmation dialog already mounted\", \"msgstr\": [\"Parolun təsdiqi dialoqu artıq quraşdırılıb\"] }, { \"msgid\": \"This action needs authentication\", \"msgstr\": [\"Bu əməliyyat autentifikasiya tələb edir\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Səhv parol\"] }] }, { \"locale\": \"be\", \"translations\": [{ \"msgid\": \"Checking password …\", \"msgstr\": [\"Праверка пароля…\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Пацвердзіць\"] }, { \"msgid\": \"Confirm your password\", \"msgstr\": [\"Пацвердзіць пароль\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Пароль\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Калі ласка, увядзіце ваш пароль\"] }, { \"msgid\": \"This action needs authentication\", \"msgstr\": [\"Гэта дзеянне патрабуе аўтэнтыфікацыі\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Памылковы пароль\"] }] }, { \"locale\": \"ca\", \"translations\": [{ \"msgid\": \"Checking password …\", \"msgstr\": [\"S'està comprovant la contrasenya …\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Confirma\"] }, { \"msgid\": \"Confirm your password\", \"msgstr\": [\"Confirmeu la vostra contrasenya\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Contrasenya\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Introduïu la vostra contrasenya\"] }, { \"msgid\": \"This action needs authentication\", \"msgstr\": [\"Aquesta acció necessita autenticació\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Contrasenya incorrecta\"] }] }, { \"locale\": \"cs_CZ\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Vyžadováno ověření se\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Ověřování hesla…\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Potvrdit\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Heslo\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Zadejte heslo\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"Tato akce vyžaduje ověření se – potvrďte ji zadáním svého hesla.\"] }, { \"msgid\": \"Unknown error while checking password\", \"msgstr\": [\"Neznámá chyba při kontrolování hesla\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Nesprávné heslo\"] }] }, { \"locale\": \"da\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Bekræft din identitet\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Kontrollerer adgangskode …\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Bekræft\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Adgangskode\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Indtast venligst dit kodeord\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"Denne handling kræver godkendelse. Indtast din adgangskode for at bekræfte.\"] }, { \"msgid\": \"Unknown error while checking password\", \"msgstr\": [\"Ukendt fejl under kontrol af adgangskode\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"forkert Adgangskode\"] }] }, { \"locale\": \"de\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Authentifizierung erforderlich\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Passwort prüfen  …\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Bestätigen\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Passwort\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Bitte gib dein Passwort ein\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"Für diese Aktion ist eine Authentifizierung erforderlich. Bitte bestätige diese durch Eingabe deines Passworts.\"] }, { \"msgid\": \"Unknown error while checking password\", \"msgstr\": [\"Unbekannter Fehler beim Überprüfen des Passworts\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Falsches Passwort\"] }] }, { \"locale\": \"de_DE\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Authentifizierung erforderlich\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Passwort prüfen …\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Bestätigen\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Passwort\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Bitte geben Sie Ihr Passwort ein\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"Für diese Aktion ist eine Authentifizierung erforderlich. Bitte bestätigen Sie diese durch Eingabe Ihres Passworts.\"] }, { \"msgid\": \"Unknown error while checking password\", \"msgstr\": [\"Unbekannter Fehler beim Überprüfen des Passworts\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Falsches Passwort\"] }] }, { \"locale\": \"el\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Απαιτείται πιστοποίηση\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Έλεγχος κωδικού πρόσβασης …\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Επιβεβαίωση\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Συνθηματικό\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Παρακαλώ εισάγετε το συνθηματικό σας\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"Αυτή η ενέργεια απαιτεί πιστοποίηση. Επιβεβαιώστε την εισάγοντας τον κωδικό πρόσβασής σας.\"] }, { \"msgid\": \"Unknown error while checking password\", \"msgstr\": [\"Άγνωστο σφάλμα κατά τον έλεγχο του κωδικού πρόσβασης\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Λάθος συνθηματικό\"] }] }, { \"locale\": \"en_GB\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Authentication required\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Checking password …\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Confirm\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Password\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Please enter your password\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"This action needs authentication, please confirm it by entering your password.\"] }, { \"msgid\": \"Unknown error while checking password\", \"msgstr\": [\"Unknown error while checking password\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Wrong password\"] }] }, { \"locale\": \"es\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Se requiere autenticación\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Verificando contraseña …\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Confirmar\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Contraseña\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Por favor, Introduzca su contraseña\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"Esta acción requiere autenticación, por favor, confírmela ingresado su contraseña.\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Contraseña errónea\"] }] }, { \"locale\": \"es_AR\", \"translations\": [{ \"msgid\": \"Checking password …\", \"msgstr\": [\"Verificando contraseña …\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Confirmar\"] }, { \"msgid\": \"Confirm your password\", \"msgstr\": [\"Confirme su contraseña\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Contraseña\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Por favor, introduzca su contraseña\"] }, { \"msgid\": \"This action needs authentication\", \"msgstr\": [\"Esta acción necesita autenticación\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Contraseña incorrecta\"] }] }, { \"locale\": \"es_CO\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Autenticación requerida\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Verificando contraseña …\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Confirmar\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Contraseña\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Por favor introduzca su contraseña\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"Esta acción necesita autentificación, por favor confírmela introduciendo su contraseña.\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Contraseña incorrecta\"] }] }, { \"locale\": \"es_MX\", \"translations\": [{ \"msgid\": \"Checking password …\", \"msgstr\": [\"Verificando contraseña …\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Confirmar\"] }, { \"msgid\": \"Confirm your password\", \"msgstr\": [\"Confirme su contraseña\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Contraseña\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Por favor introduzca su contraseña\"] }, { \"msgid\": \"This action needs authentication\", \"msgstr\": [\"Esta acción necesita autenticación\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Contraseña incorrecta\"] }] }, { \"locale\": \"et_EE\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Autentimine on vajalik\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Kontrollin salasõna…\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Kinnita\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Salasõna\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Palun sisesta oma salasõna\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"See tegevus eeldab autentimist, palun tee seda sisestades oma salasõna.\"] }, { \"msgid\": \"Unknown error while checking password\", \"msgstr\": [\"Tundmatu viga salasõna kontrollimisel\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Vale salasõna\"] }] }, { \"locale\": \"fa\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"احراز هویت مورد نیاز است\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"در حال بررسی رمز عبور...\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"تأیید\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"رمز عبور\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"لطفاً رمز عبور خود را وارد کنید\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"این عمل نیاز به احراز هویت دارد، لطفاً با وارد کردن رمز عبور خود آن را تأیید کنید.\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"رمز عبور اشتباه است\"] }] }, { \"locale\": \"fi_FI\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Tunnistautuminen vaaditaan\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Tarkistetaan salasanaa …\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Vahvista\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Salasana\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Kirjoita salasanasi\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"Tämä toimenpide vaatii tunnistautumisen. Vahvista kirjoittamalla salasanasi.\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Väärä salasana\"] }] }, { \"locale\": \"fr\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Authentification requise\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Vérification du mot de passe ...\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Confirmer\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Mot de passe\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Veuillez saisir votre mot de passe\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"Cette action nécessite une authentification, veuillez confirmer en saisissant votre mot de passe.\"] }, { \"msgid\": \"Unknown error while checking password\", \"msgstr\": [\"Erreur inconnue lors de la vérification du mot de passe\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Mot de passe incorrect\"] }] }, { \"locale\": \"ga\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Fíordheimhniú ag teastáil\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Ag seiceáil an focal faire …\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Deimhnigh\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Pasfhocal\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Cuir isteach do phasfhocal\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"Teastaíonn fíordheimhniú don ghníomh seo, deimhnigh é trí do phasfhocal a iontráil.\"] }, { \"msgid\": \"Unknown error while checking password\", \"msgstr\": [\"Earráid anaithnid agus an focal faire á sheiceáil\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Pasfhocal mícheart\"] }] }, { \"locale\": \"gl\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"É necesaria a autenticación\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Comprobando o contrasinal…\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Confirmar\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Contrasinal\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Introduza o seu contrasinal\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"Esta acción precisa de autenticación, confírmea introducindo o seu contrasinal.\"] }, { \"msgid\": \"Unknown error while checking password\", \"msgstr\": [\"Produciuse un erro descoñecido ao comprobar o contrasinal\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Contrasinal incorrecto\"] }] }, { \"locale\": \"hu_HU\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Azonosítás szükséges\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Jelszó ellenőrzése ...\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Jóváhagyás\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Jelszó\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Adja meg a jelszavát\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"Ehhez a tevékenységhez azonosítás szükséges. Kérlek hagyd jóvá a jelszavad megadásával.\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Hibás jelszó\"] }] }, { \"locale\": \"id\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Autentikasi diperlukan\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Memeriksa kata sandi ...\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Konfirmasi\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Kata sandi\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Silahkan masukan kata sandi Anda\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"Aksi ini memerlukan autentikasi, silahkan konfirmasi dengan memasukan kata sandi Anda.\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Kata sandi salah\"] }] }, { \"locale\": \"is\", \"translations\": [{ \"msgid\": \"Checking password …\", \"msgstr\": [\"Athuga lykilorð …\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Staðfesta\"] }, { \"msgid\": \"Confirm your password\", \"msgstr\": [\"Staðfestu lykilorðið þitt\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Lykilorð\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Settu inn lykilorðið þitt\"] }, { \"msgid\": \"This action needs authentication\", \"msgstr\": [\"Þessi aðgerð krefst auðkenningar\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Rangt lykilorð\"] }] }, { \"locale\": \"it\", \"translations\": [{ \"msgid\": \"Checking password …\", \"msgstr\": [\"Controllo della password…\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Conferma\"] }, { \"msgid\": \"Confirm your password\", \"msgstr\": [\"Conferma la tua password\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Password\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Inserisci la tua password\"] }, { \"msgid\": \"This action needs authentication\", \"msgstr\": [\"Questa azione richiede l'autenticazione\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Password errata\"] }] }, { \"locale\": \"ja_JP\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"認証が必要です\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"パスワードの確認 …\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"確認\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"パスワード\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"パスワードを入力してください\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"この操作には認証が必要です。パスワードを入力して承認してください。\"] }, { \"msgid\": \"Unknown error while checking password\", \"msgstr\": [\"パスワードのチェック中に不明なエラーが発生しました\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"間違ったパスワード\"] }] }, { \"locale\": \"kab\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Asesteb yettwasra\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Asenqed n wawal n uɛeddi …\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Sentem\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Awal n uɛeddi\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Txil, sekcem-d awal-ik·im n uɛeddi\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"Tigawt-a tesra asesteb, ttxil-k·m, wekked-itt-id s usekcem n wawal-inek·inem n uɛeddi.\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Awal n uɛeddi d arameɣtu\"] }] }, { \"locale\": \"ko\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"인증 필요 \"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"비밀번호 확인 중 ...\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"확인\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"비밀번호\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"비밀번호를 입력하세요\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"이 작업은 인증이 필요합니다. 비밀번호를 입력하여 확인하십시오. \"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"잘못된 비밀번호\"] }] }, { \"locale\": \"lv\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Nepieciešama autentificēšanās\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Pārbauda paroli...\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Apstiprināt\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Parole\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Lūgums ievadīt savu paroli\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"Šai darbībai ir nepieciešama autentificēšanās. Lūgums to apstiprināt ar savas paroles ievadīšanu.\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Nepareiza parole\"] }] }, { \"locale\": \"mk\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Потребна е автентификација\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Проверка на лозинка …\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Потврди\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Лозинка\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Внесете ја вашата лозинка\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"Оваа акција бара автентикација, потврдете ја со внесување на вашата лозинка.\"] }, { \"msgid\": \"Unknown error while checking password\", \"msgstr\": [\"Непозната грешка додека се проверува лозинката\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Погрешна лозинка\"] }] }, { \"locale\": \"ms_MY\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Pengesahan diperlukan\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Menyemak kata laluan …\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Mengesahkan\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Kata laluan\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Sila masukkan kata laluan anda\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"Tindakan ini memerlukan pengesahan, sila sahkan dengan memasukkan kata laluan anda.\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Kata laluan salah\"] }] }, { \"locale\": \"nb_NO\", \"translations\": [{ \"msgid\": \"Checking password …\", \"msgstr\": [\"Sjekker passord …\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Bekreft\"] }, { \"msgid\": \"Confirm your password\", \"msgstr\": [\"Bekreft passordet ditt\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Passord\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Vennligst skriv inn passordet ditt\"] }, { \"msgid\": \"This action needs authentication\", \"msgstr\": [\"Denne handlingen krever autentisering\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Feil passord\"] }] }, { \"locale\": \"nl\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Authenticatie vereist\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Wachtwoord controleren…\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Bevestigen\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Wachtwoord\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Voer je wachtwoord in\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"Deze actie vereist authenticatie, voer je wachtwoord in.\"] }, { \"msgid\": \"Unknown error while checking password\", \"msgstr\": [\"Onbekende fout bij wachtwoord controleren\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Incorrect wachtwoord\"] }] }, { \"locale\": \"pl\", \"translations\": [{ \"msgid\": \"Checking password …\", \"msgstr\": [\"Sprawdzanie hasła…\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Potwierdź\"] }, { \"msgid\": \"Confirm your password\", \"msgstr\": [\"Potwierdź swoje hasło\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Hasło\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Wprowadź swoje hasło\"] }, { \"msgid\": \"This action needs authentication\", \"msgstr\": [\"Wykonanie tej czynności wymaga autoryzacji\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Nieprawidłowe hasło\"] }] }, { \"locale\": \"pt_BR\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Autenticação necessária\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Verificando a senha …\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Confirmar\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Senha\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Por favor, insira sua senha\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"Esta ação precisa de autenticação. Por favor, confirme-a digitando sua senha.\"] }, { \"msgid\": \"Unknown error while checking password\", \"msgstr\": [\"Erro desconhecido ao verificar a senha\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Senha incorreta\"] }] }, { \"locale\": \"pt_PT\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Autenticação necessária\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"A verificar palavra-passe…\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Confirmar\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Palavra-passe\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Introduza a sua palavra-passe, por favor\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"Esta ação requer autenticação; confirme-a introduzindo a sua palavra-passe.\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Palavra-passe incorreta\"] }] }, { \"locale\": \"ro\", \"translations\": [{ \"msgid\": \"Checking password …\", \"msgstr\": [\"Se verifică parola ...\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Confirmare\"] }, { \"msgid\": \"Confirm your password\", \"msgstr\": [\"Confirmare parolă\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Parolă\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Vă rugăm să introduceți parola\"] }, { \"msgid\": \"This action needs authentication\", \"msgstr\": [\"Această acțiune necesită autentificare\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Parolă incorectă\"] }] }, { \"locale\": \"ru\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Требуется аутентификация\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Проверка пароля …\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Подтвердить\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Пароль\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Пожалуйста, введите свой пароль\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"Это действие требует аутентификации, пожалуйста подтвердите его вводом вашего пароля.\"] }, { \"msgid\": \"Unknown error while checking password\", \"msgstr\": [\"Неизвестная ошибка при проверке пароля\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Неправильный пароль\"] }] }, { \"locale\": \"sk_SK\", \"translations\": [{ \"msgid\": \"Checking password …\", \"msgstr\": [\"Kontrola hesla...\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Potvrdiť\"] }, { \"msgid\": \"Confirm your password\", \"msgstr\": [\"Potvrďte svoje heslo\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Heslo\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Zadajte prosím svoje heslo\"] }, { \"msgid\": \"This action needs authentication\", \"msgstr\": [\"Táto akcia vyžaduje overenie\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Nesprávne heslo\"] }] }, { \"locale\": \"sl\", \"translations\": [{ \"msgid\": \"Checking password …\", \"msgstr\": [\"Poteka preverjanje gesla ...\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Potrdi\"] }, { \"msgid\": \"Confirm your password\", \"msgstr\": [\"Potrdi geslo\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Geslo\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Vpisati je treba geslo\"] }, { \"msgid\": \"This action needs authentication\", \"msgstr\": [\"To dejanje zahteva overitev\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Napačno geslo\"] }] }, { \"locale\": \"sr\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Потребна је потврда идентитета\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Проверава се лозинка…\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Потврда\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Лозинка\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Молимо вас да унесете своју лозинку\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"За ову акцију је потребна провера идентитета, молимо вас да га потврдите уносом своје лозинке.\"] }, { \"msgid\": \"Unknown error while checking password\", \"msgstr\": [\"Непозната грешка током провере лозинке\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Погрешна лозинка\"] }] }, { \"locale\": \"sv\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Autentisering krävs\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Kontrollerar lösenord …\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Bekräfta\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Lösenord\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Ange ditt lösenord\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"Den här åtgärden kräver autentisering, bekräfta genom att ange ditt lösenord.\"] }, { \"msgid\": \"Unknown error while checking password\", \"msgstr\": [\"Okänt fel vid kontroll av lösenord\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Fel lösenord\"] }] }, { \"locale\": \"tr\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Kimlik doğrulaması gerekli\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Parola denetleniyor…\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Parola onayı\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Parola\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Lütfen parolanızı yazın\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"Bu işlemi yapmak için kimliğinizi doğrulamalısınız. Lütfen parolanızı yazın.\"] }, { \"msgid\": \"Unknown error while checking password\", \"msgstr\": [\"Parola denetlenirken bilinmeyen bir sorun çıktı\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Parola geçersiz\"] }] }, { \"locale\": \"uk\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Потрібна авторизація\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Перевірка паролю ...\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Підтвердити\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Пароль\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Зазначте ваш пароль\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"Ця дія вимагає авторизацію, зазначте ваш пароль.\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Помилковий пароль\"] }] }, { \"locale\": \"ur_PK\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"تصدیق درکار ہے\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"پاس ورڈ چیک ہو رہا ہے …\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"تصدیق کریں\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"پاس ورڈ\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"براہ کرم اپنا پاس ورڈ درج کریں\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"اس عمل کو تصدیق کی ضرورت ہے، براہ کرم پاس ورڈ درج کرکے اس کی تصدیق کریں۔\"] }, { \"msgid\": \"Unknown error while checking password\", \"msgstr\": [\"پاس ورڈ چیک کرنے میں نامعلوم خرابی\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"نادرست پاس ورڈ\"] }] }, { \"locale\": \"uz\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Autentifikatsiya talab qilinadi\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Parol tekshirilmoqda…\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Tasdiqlang\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Parol\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Iltimos, parolingizni kiriting\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"Ushbu amaliyot autentifikatsiya talab etadi, parolingizni kiritish orqali buni tasdiqlang.\"] }, { \"msgid\": \"Unknown error while checking password\", \"msgstr\": [\"Parolni tekshirishda noma'lum xatolik yuz berdi\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Parol noto'g'ri \"] }] }, { \"locale\": \"vi\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"Yêu cầu xác thực\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"Đang kiểm tra mật khẩu ...\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"Chấp nhận\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"Mật khẩu\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"Vui lòng nhập mật khẩu của bạn\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"Thao tác này cần xác thực, vui lòng xác nhận bằng cách nhập mật khẩu của bạn.\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"Mật khẩu sai\"] }] }, { \"locale\": \"zh_CN\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"需要身份验证\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"正在检查密码 …\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"确认\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"密码\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"请输入您的密码\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"此操作需要身份验证,请输入密码进行确认。\"] }, { \"msgid\": \"Unknown error while checking password\", \"msgstr\": [\"检查密码时出现未知错误\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"密码错误\"] }] }, { \"locale\": \"zh_HK\", \"translations\": [{ \"msgid\": \"Authentication required\", \"msgstr\": [\"需要驗證\"] }, { \"msgid\": \"Checking password …\", \"msgstr\": [\"正在檢查密碼 …\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"確認\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"密碼\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"請輸入您的密碼\"] }, { \"msgid\": \"This action needs authentication, please confirm it by entering your password.\", \"msgstr\": [\"此操作需要身份驗證,請輸入您的密碼以進行確認。\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"密碼錯誤\"] }] }, { \"locale\": \"zh_TW\", \"translations\": [{ \"msgid\": \"Checking password …\", \"msgstr\": [\"正在檢查密碼……\"] }, { \"msgid\": \"Confirm\", \"msgstr\": [\"確認\"] }, { \"msgid\": \"Confirm your password\", \"msgstr\": [\"確認您的密碼\"] }, { \"msgid\": \"Password\", \"msgstr\": [\"密碼\"] }, { \"msgid\": \"Please enter your password\", \"msgstr\": [\"請輸入您的密碼\"] }, { \"msgid\": \"This action needs authentication\", \"msgstr\": [\"此動作需要驗證\"] }, { \"msgid\": \"Wrong password\", \"msgstr\": [\"密碼錯誤\"] }] }].map(({ locale, translations }) => gtBuilder.addTranslation(locale, {\n headers: {},\n translations: {\n \"\": Object.fromEntries(translations.map((t2) => [t2.msgid, t2]))\n }\n}));\nconst gt = gtBuilder.build();\ngt.ngettext.bind(gt);\nconst t = gt.gettext.bind(gt);\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: CC0-1.0\n */\nconst logger = getLoggerBuilder().setApp(\"@nextcloud/password-confirmation\").detectLogLevel().build();\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"PasswordDialog\",\n props: {\n validate: { type: Function }\n },\n emits: [\"close\"],\n setup(__props, { emit: __emit }) {\n const props = __props;\n const emit = __emit;\n onMounted(focusPasswordField);\n const passwordInput = useTemplateRef(\"field\");\n const password = ref(\"\");\n const loading = ref(false);\n const hasError = ref(false);\n const buttons = [{\n label: t(\"Confirm\"),\n type: \"submit\",\n variant: \"primary\",\n callback\n }];\n const helperText = computed(() => {\n if (hasError.value !== false) {\n if (password.value === \"\") {\n return t(\"Please enter your password\");\n }\n switch (hasError.value) {\n case true:\n return t(\"Unknown error while checking password\");\n case 403:\n return t(\"Wrong password\");\n }\n }\n if (loading.value) {\n return t(\"Checking password …\");\n }\n return \"\";\n });\n async function callback() {\n hasError.value = false;\n loading.value = true;\n if (password.value === \"\") {\n hasError.value = true;\n return false;\n }\n try {\n await props.validate(password.value);\n emit(\"close\", true);\n return true;\n } catch (error) {\n if (isAxiosError(error) && error.response?.status === 403) {\n hasError.value = 403;\n } else {\n hasError.value = true;\n }\n logger.error(\"Exception during password confirmation\", { error });\n selectPasswordField();\n return false;\n } finally {\n loading.value = false;\n }\n }\n function focusPasswordField() {\n nextTick(() => {\n passwordInput.value.focus();\n });\n }\n function selectPasswordField() {\n nextTick(() => {\n passwordInput.value.select();\n });\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(NcDialog), {\n \"is-form\": \"\",\n buttons,\n name: unref(t)(\"Authentication required\"),\n \"content-classes\": _ctx.$style.passwordDialog,\n \"onUpdate:open\": _cache[1] || (_cache[1] = ($event) => emit(\"close\", false))\n }, {\n default: withCtx(() => [\n createElementVNode(\"p\", null, toDisplayString(unref(t)(\"This action needs authentication, please confirm it by entering your password.\")), 1),\n createVNode(unref(NcPasswordField), {\n ref: \"field\",\n modelValue: password.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => password.value = $event),\n label: unref(t)(\"Password\"),\n \"helper-text\": helperText.value,\n error: hasError.value !== false,\n required: \"\"\n }, null, 8, [\"modelValue\", \"label\", \"helper-text\", \"error\"])\n ]),\n _: 1\n }, 8, [\"name\", \"content-classes\"]);\n };\n }\n});\nconst passwordDialog = \"_passwordDialog_joix2_2\";\nconst style0 = {\n passwordDialog\n};\nconst _export_sfc = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst PasswordDialogVue = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\n/*!\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: MIT\n */\nlet INTERCEPTOR_INITIALIZED = false;\nasync function confirmPassword() {\n if (!isPasswordConfirmationRequired(PwdConfirmationMode.Lax)) {\n return Promise.resolve();\n }\n await promptPassword(async (password) => {\n await _confirmPassword(password);\n });\n}\nasync function _confirmPassword(password) {\n logger.debug(\"Confirming password\");\n const url = generateUrl(\"/login/confirm\");\n const { data } = await axios.post(url, { password });\n window.nc_lastLogin = data.lastLogin;\n logger.debug(\"Password confirmed\");\n}\nlet _passwordDialog;\nlet _dialogCallback;\nasync function promptPassword(validate) {\n _dialogCallback = validate;\n if (!_passwordDialog) {\n _passwordDialog = spawnDialog(PasswordDialogVue, {\n validate(password) {\n return _dialogCallback(password);\n }\n });\n }\n const result = await _passwordDialog;\n _passwordDialog = void 0;\n if (!result) {\n throw new Error(\"Dialog closed\");\n }\n}\nfunction addPasswordConfirmationInterceptors(axios2) {\n if (INTERCEPTOR_INITIALIZED) {\n return;\n }\n INTERCEPTOR_INITIALIZED = true;\n let validatePromise;\n axios2.interceptors.request.use(async (config) => {\n if (config.confirmPassword === void 0) {\n return config;\n }\n if (!isPasswordConfirmationRequired(config.confirmPassword)) {\n return config;\n }\n const { promise, resolve } = Promise.withResolvers();\n promptPassword(async (password) => {\n switch (config.confirmPassword) {\n case PwdConfirmationMode.Lax:\n await _confirmPassword(password);\n resolve(config);\n break;\n case PwdConfirmationMode.Strict:\n validatePromise = Promise.withResolvers();\n config.auth = {\n username: getCurrentUser()?.uid ?? \"\",\n password\n };\n logger.debug(\"Adding auth info to the request\", { config });\n resolve(config);\n return validatePromise.promise;\n }\n });\n return promise;\n });\n axios2.interceptors.response.use(\n (response) => {\n if (response.config.confirmPassword !== PwdConfirmationMode.Strict) {\n return response;\n }\n if (validatePromise === void 0) {\n logger.debug(\"Password confirmation not required\", { response });\n return response;\n }\n logger.debug(\"Password confirmation succeeded\", { response });\n window.nc_lastLogin = Date.now() / 1e3;\n validatePromise.resolve();\n return response;\n },\n (error) => {\n if (error.config?.confirmPassword !== PwdConfirmationMode.Strict) {\n throw error;\n }\n if (validatePromise === void 0) {\n logger.debug(\"Password confirmation not required\", { error });\n throw error;\n }\n logger.debug(\"Password confirmation failed\", { error });\n validatePromise.reject(error);\n logger.debug(\"Triggering new request\", { error });\n return axios2.request(error.config);\n }\n );\n}\nexport {\n PwdConfirmationMode,\n addPasswordConfirmationInterceptors,\n confirmPassword,\n isPasswordConfirmationRequired\n};\n//# sourceMappingURL=index.mjs.map\n"],"names":["PwdConfirmationMode","PwdConfirmationMode2","PAGE_LOAD_TIME","isPasswordConfirmationRequired","mode","serverTimeDiff","gtBuilder","getGettextBuilder","locale","translations","t2","gt","t","logger","getLoggerBuilder","_sfc_main","defineComponent","__props","__emit","props","emit","onMounted","focusPasswordField","passwordInput","useTemplateRef","password","ref","loading","hasError","buttons","callback","helperText","computed","error","isAxiosError","selectPasswordField","nextTick","_ctx","_cache","openBlock","createBlock","unref","NcDialog","$event","withCtx","createElementVNode","toDisplayString","createVNode","NcPasswordField","passwordDialog","style0","_export_sfc","sfc","target","key","val","cssModules","PasswordDialogVue","INTERCEPTOR_INITIALIZED","confirmPassword","promptPassword","_confirmPassword","url","generateUrl","data","axios","_passwordDialog","_dialogCallback","validate","spawnDialog","result","addPasswordConfirmationInterceptors","axios2","validatePromise","config","promise","resolve","getCurrentUser","response"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/dist/index-cDQt1Drw.chunk.mjs.map.license b/dist/index-CEFiUoek.chunk.mjs.map.license similarity index 100% rename from dist/index-cDQt1Drw.chunk.mjs.map.license rename to dist/index-CEFiUoek.chunk.mjs.map.license diff --git a/dist/index-BKfQ4diD.chunk.mjs b/dist/index-CfoF28kA.chunk.mjs similarity index 65% rename from dist/index-BKfQ4diD.chunk.mjs rename to dist/index-CfoF28kA.chunk.mjs index c7bfaf2d45d69..6f944dea695e4 100644 --- a/dist/index-BKfQ4diD.chunk.mjs +++ b/dist/index-CfoF28kA.chunk.mjs @@ -1,4 +1,4 @@ -import{g as mi,h as ce,p as X,c as gi}from"./index-6_gsQFyp.chunk.mjs";import{e as kt,c as bi,f as Ei,d as Ut,j as vi}from"./index-xFugdZPW.chunk.mjs";import{a as Dt,r as Lt,B as Oe}from"./string_decoder-BO00msnV.chunk.mjs";import{a as wi}from"./translation-DoG5ZELJ-gw0g4US-.chunk.mjs";const de=mi().setApp("@nextcloud/files").detectUser().build(),Xn=Object.freeze({Folder:"folder",File:"file"}),_e=Object.freeze({NONE:0,READ:1,UPDATE:2,CREATE:4,WRITE:4,DELETE:8,SHARE:16,ALL:31});function Hn(t,n){return t.match(n)!==null}function ue(t,n){if(t.id&&typeof t.id!="number")throw new Error("Invalid id type of value");if(!t.source)throw new Error("Missing mandatory source");try{new URL(t.source)}catch{throw new Error("Invalid source format, source must be a valid URL")}if(!t.source.startsWith("http"))throw new Error("Invalid source format, only http(s) is supported");if(!t.root)throw new Error("Missing mandatory root");if(typeof t.root!="string")throw new Error("Invalid root type");if(!t.root.startsWith("/"))throw new Error("Root must start with a leading slash");if(!t.source.includes(t.root))throw new Error("Root must be part of the source");if(Hn(t.source,n)){const c=t.source.match(n)[0];if(!t.source.includes(vi(c,t.root)))throw new Error("The root must be relative to the service. e.g /files/emma")}if(t.displayname&&typeof t.displayname!="string")throw new Error("Invalid displayname type");if(t.mtime&&!(t.mtime instanceof Date))throw new Error("Invalid mtime type");if(t.crtime&&!(t.crtime instanceof Date))throw new Error("Invalid crtime type");if(!t.mime||typeof t.mime!="string"||!t.mime.match(/^[-\w.]+\/[-+\w.]+$/gi))throw new Error("Missing or invalid mandatory mime");if("size"in t&&typeof t.size!="number"&&t.size!==void 0)throw new Error("Invalid size type");if("permissions"in t&&t.permissions!==void 0&&!(typeof t.permissions=="number"&&t.permissions>=_e.NONE&&t.permissions<=_e.ALL))throw new Error("Invalid permissions");if(t.owner&&t.owner!==null&&typeof t.owner!="string")throw new Error("Invalid owner type");if(t.attributes&&typeof t.attributes!="object")throw new Error("Invalid attributes type");if(t.status&&!Object.values(Ti).includes(t.status))throw new Error("Status must be a valid NodeStatus")}function _i(t){t.mtime&&typeof t.mtime=="string"&&!isNaN(Date.parse(t.mtime))&&JSON.stringify(new Date(t.mtime))===JSON.stringify(t.mtime)&&(t.mtime=new Date(t.mtime)),t.crtime&&typeof t.crtime=="string"&&!isNaN(Date.parse(t.crtime))&&JSON.stringify(new Date(t.crtime))===JSON.stringify(t.crtime)&&(t.crtime=new Date(t.crtime))}function Si(t){if(t instanceof RegExp)return t;const n=t.match(/(\/?)(.+)\1([a-z]*)/i);if(!n)throw new Error("Invalid regular expression format.");const c=Array.from(new Set(n[3])).filter(y=>"gimsuy".includes(y)).join("");return new RegExp(n[2],c)}const Ti=Object.freeze({NEW:"new",FAILED:"failed",LOADING:"loading",LOCKED:"locked"});class Se{_attributes;_data;_knownDavService=/(remote|public)\.php\/(web)?dav/i;readonlyAttributes=Object.entries(Object.getOwnPropertyDescriptors(Se.prototype)).filter(n=>typeof n[1].get=="function"&&n[0]!=="__proto__").map(n=>n[0]);handler={set:(n,c,y)=>this.readonlyAttributes.includes(c)?!1:Reflect.set(n,c,y),deleteProperty:(n,c)=>this.readonlyAttributes.includes(c)?!1:Reflect.deleteProperty(n,c)};constructor(...[n,c]){n.mime||(n.mime="application/octet-stream"),_i(n),c=Si(c||this._knownDavService),ue(n,c),this._data={...n,attributes:{}},this._attributes=new Proxy(this._data.attributes,this.handler),this.update(n.attributes??{}),c&&(this._knownDavService=c)}get source(){return this._data.source.replace(/\/$/i,"")}get encodedSource(){const{origin:n}=new URL(this.source);return n+kt(this.source.slice(n.length))}get basename(){return bi(this.source)}get displayname(){return this._data.displayname||this.basename}set displayname(n){ue({...this._data,displayname:n},this._knownDavService),this._data.displayname=n}get extension(){return Ei(this.source)}get dirname(){return Ut(this.path)}get mime(){return this._data.mime||"application/octet-stream"}set mime(n){n??="application/octet-stream",ue({...this._data,mime:n},this._knownDavService),this._data.mime=n}get mtime(){return this._data.mtime}set mtime(n){ue({...this._data,mtime:n},this._knownDavService),this._data.mtime=n}get crtime(){return this._data.crtime}get size(){return this._data.size}set size(n){ue({...this._data,size:n},this._knownDavService),this.updateMtime(),this._data.size=n}get attributes(){return this._attributes}get permissions(){return this.owner===null&&!this.isDavResource?_e.READ:this._data.permissions!==void 0?this._data.permissions:_e.NONE}set permissions(n){ue({...this._data,permissions:n},this._knownDavService),this.updateMtime(),this._data.permissions=n}get owner(){return this.isDavResource?this._data.owner:null}get isDavResource(){return Hn(this.source,this._knownDavService)}get root(){return this._data.root.replace(/^(.+)\/$/,"$1")}get path(){const n=this.source.indexOf("://"),c=this.source.slice(0,n),y=this.source.slice(n+3),_=y.indexOf("/"),d=y.slice(0,_),E=y.slice(_),f=`${c}://${d}${kt(E)}`,a=new URL(f);let g=decodeURIComponent(a.pathname);this.isDavResource&&(g=g.split(this._knownDavService).pop());const u=g.indexOf(this.root),v=this.root.replace(/\/$/,"");return g.slice(u+v.length)||"/"}get fileid(){return this._data?.id}get status(){return this._data?.status}set status(n){ue({...this._data,status:n},this._knownDavService),this._data.status=n}move(n){ue({...this._data,source:n},this._knownDavService);const c=this.basename;this._data.source=n,this.displayname===c&&this.basename!==c&&(this.displayname=this.basename)}rename(n){if(n.includes("/"))throw new Error("Invalid basename");this.move(Ut(this.source)+"/"+n)}updateMtime(){this._data.mtime&&(this._data.mtime=new Date)}update(n){for(const[c,y]of Object.entries(n))try{y===void 0?delete this.attributes[c]:this.attributes[c]=y}catch(_){if(_ instanceof TypeError)continue;throw _}}clone(){return new this.constructor(structuredClone(this._data),this._knownDavService)}toJSON(){return JSON.stringify([structuredClone(this._data),this._knownDavService.toString()])}}class Co extends Se{constructor(...[n,c]){super(n,c)}get type(){return Xn.File}}class xo extends Se{constructor(...[n,c]){super({...n,mime:"httpd/unix-directory"},c)}get type(){return Xn.Folder}get extension(){return null}get mime(){return"httpd/unix-directory"}}var Ai=class extends EventTarget{dispatchTypedEvent(t,n){return super.dispatchEvent(n)}},Bt={},we={exports:{}},$t;function Pt(){if($t)return we.exports;$t=1;var t=typeof Reflect=="object"?Reflect:null,n=t&&typeof t.apply=="function"?t.apply:function(h,S,O){return Function.prototype.apply.call(h,S,O)},c;t&&typeof t.ownKeys=="function"?c=t.ownKeys:Object.getOwnPropertySymbols?c=function(h){return Object.getOwnPropertyNames(h).concat(Object.getOwnPropertySymbols(h))}:c=function(h){return Object.getOwnPropertyNames(h)};function y(h){console&&console.warn&&console.warn(h)}var _=Number.isNaN||function(h){return h!==h};function d(){d.init.call(this)}we.exports=d,we.exports.once=L,d.EventEmitter=d,d.prototype._events=void 0,d.prototype._eventsCount=0,d.prototype._maxListeners=void 0;var E=10;function f(h){if(typeof h!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof h)}Object.defineProperty(d,"defaultMaxListeners",{enumerable:!0,get:function(){return E},set:function(h){if(typeof h!="number"||h<0||_(h))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+h+".");E=h}}),d.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},d.prototype.setMaxListeners=function(h){if(typeof h!="number"||h<0||_(h))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+h+".");return this._maxListeners=h,this};function a(h){return h._maxListeners===void 0?d.defaultMaxListeners:h._maxListeners}d.prototype.getMaxListeners=function(){return a(this)},d.prototype.emit=function(h){for(var S=[],O=1;O0&&(l=S[0]),l instanceof Error)throw l;var V=new Error("Unhandled error."+(l?" ("+l.message+")":""));throw V.context=l,V}var q=k[h];if(q===void 0)return!1;if(typeof q=="function")n(q,this,S);else for(var G=q.length,H=P(q,G),O=0;O0&&V.length>k&&!V.warned){V.warned=!0;var q=new Error("Possible EventEmitter memory leak detected. "+V.length+" "+String(S)+" listeners added. Use emitter.setMaxListeners() to increase limit");q.name="MaxListenersExceededWarning",q.emitter=h,q.type=S,q.count=V.length,y(q)}return h}d.prototype.addListener=function(h,S){return g(this,h,S,!1)},d.prototype.on=d.prototype.addListener,d.prototype.prependListener=function(h,S){return g(this,h,S,!0)};function u(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function v(h,S,O){var F={fired:!1,wrapFn:void 0,target:h,type:S,listener:O},k=u.bind(F);return k.listener=O,F.wrapFn=k,k}d.prototype.once=function(h,S){return f(S),this.on(h,v(this,h,S)),this},d.prototype.prependOnceListener=function(h,S){return f(S),this.prependListener(h,v(this,h,S)),this},d.prototype.removeListener=function(h,S){var O,F,k,l,V;if(f(S),F=this._events,F===void 0)return this;if(O=F[h],O===void 0)return this;if(O===S||O.listener===S)--this._eventsCount===0?this._events=Object.create(null):(delete F[h],F.removeListener&&this.emit("removeListener",h,O.listener||S));else if(typeof O!="function"){for(k=-1,l=O.length-1;l>=0;l--)if(O[l]===S||O[l].listener===S){V=O[l].listener,k=l;break}if(k<0)return this;k===0?O.shift():b(O,k),O.length===1&&(F[h]=O[0]),F.removeListener!==void 0&&this.emit("removeListener",h,V||S)}return this},d.prototype.off=d.prototype.removeListener,d.prototype.removeAllListeners=function(h){var S,O,F;if(O=this._events,O===void 0)return this;if(O.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):O[h]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete O[h]),this;if(arguments.length===0){var k=Object.keys(O),l;for(F=0;F=0;F--)this.removeListener(h,S[F]);return this};function T(h,S,O){var F=h._events;if(F===void 0)return[];var k=F[S];return k===void 0?[]:typeof k=="function"?O?[k.listener||k]:[k]:O?I(k):P(k,k.length)}d.prototype.listeners=function(h){return T(this,h,!0)},d.prototype.rawListeners=function(h){return T(this,h,!1)},d.listenerCount=function(h,S){return typeof h.listenerCount=="function"?h.listenerCount(S):M.call(h,S)},d.prototype.listenerCount=M;function M(h){var S=this._events;if(S!==void 0){var O=S[h];if(typeof O=="function")return 1;if(O!==void 0)return O.length}return 0}d.prototype.eventNames=function(){return this._eventsCount>0?c(this._events):[]};function P(h,S){for(var O=new Array(S),F=0;F"u"||!F?t:F(Uint8Array),Y={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?t:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?t:ArrayBuffer,"%ArrayIteratorPrototype%":O&&F?F([][Symbol.iterator]()):t,"%AsyncFromSyncIteratorPrototype%":t,"%AsyncFunction%":G,"%AsyncGenerator%":G,"%AsyncGeneratorFunction%":G,"%AsyncIteratorPrototype%":G,"%Atomics%":typeof Atomics>"u"?t:Atomics,"%BigInt%":typeof BigInt>"u"?t:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?t:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?t:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?t:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":c,"%eval%":eval,"%EvalError%":y,"%Float16Array%":typeof Float16Array>"u"?t:Float16Array,"%Float32Array%":typeof Float32Array>"u"?t:Float32Array,"%Float64Array%":typeof Float64Array>"u"?t:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?t:FinalizationRegistry,"%Function%":I,"%GeneratorFunction%":G,"%Int8Array%":typeof Int8Array>"u"?t:Int8Array,"%Int16Array%":typeof Int16Array>"u"?t:Int16Array,"%Int32Array%":typeof Int32Array>"u"?t:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":O&&F?F(F([][Symbol.iterator]())):t,"%JSON%":typeof JSON=="object"?JSON:t,"%Map%":typeof Map>"u"?t:Map,"%MapIteratorPrototype%":typeof Map>"u"||!O||!F?t:F(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":n,"%Object.getOwnPropertyDescriptor%":D,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?t:Promise,"%Proxy%":typeof Proxy>"u"?t:Proxy,"%RangeError%":_,"%ReferenceError%":d,"%Reflect%":typeof Reflect>"u"?t:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?t:Set,"%SetIteratorPrototype%":typeof Set>"u"||!O||!F?t:F(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?t:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":O&&F?F(""[Symbol.iterator]()):t,"%Symbol%":O?Symbol:t,"%SyntaxError%":E,"%ThrowTypeError%":S,"%TypedArray%":H,"%TypeError%":f,"%Uint8Array%":typeof Uint8Array>"u"?t:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?t:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?t:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?t:Uint32Array,"%URIError%":a,"%WeakMap%":typeof WeakMap>"u"?t:WeakMap,"%WeakRef%":typeof WeakRef>"u"?t:WeakRef,"%WeakSet%":typeof WeakSet>"u"?t:WeakSet,"%Function.prototype.call%":q,"%Function.prototype.apply%":V,"%Object.defineProperty%":C,"%Object.getPrototypeOf%":k,"%Math.abs%":g,"%Math.floor%":u,"%Math.max%":v,"%Math.min%":T,"%Math.pow%":M,"%Math.round%":P,"%Math.sign%":b,"%Reflect.getPrototypeOf%":l};if(F)try{null.error}catch(p){var K=F(F(p));Y["%Error.prototype%"]=K}var re=function p(s){var i;if(s==="%AsyncFunction%")i=L("async function () {}");else if(s==="%GeneratorFunction%")i=L("function* () {}");else if(s==="%AsyncGeneratorFunction%")i=L("async function* () {}");else if(s==="%AsyncGenerator%"){var o=p("%AsyncGeneratorFunction%");o&&(i=o.prototype)}else if(s==="%AsyncIteratorPrototype%"){var A=p("%AsyncGenerator%");A&&F&&(i=F(A.prototype))}return Y[s]=i,i},W={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},Z=Ee(),J=ti(),z=Z.call(q,Array.prototype.concat),ee=Z.call(V,Array.prototype.splice),te=Z.call(q,String.prototype.replace),w=Z.call(q,String.prototype.slice),R=Z.call(q,RegExp.prototype.exec),x=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,m=/\\(\\)?/g,r=function(p){var s=w(p,0,1),i=w(p,-1);if(s==="%"&&i!=="%")throw new E("invalid intrinsic syntax, expected closing `%`");if(i==="%"&&s!=="%")throw new E("invalid intrinsic syntax, expected opening `%`");var o=[];return te(p,x,function(A,j,U,B){o[o.length]=U?te(B,m,"$1"):j||A}),o},e=function(p,s){var i=p,o;if(J(W,i)&&(o=W[i],i="%"+o[0]+"%"),J(Y,i)){var A=Y[i];if(A===G&&(A=re(i)),typeof A>"u"&&!s)throw new f("intrinsic "+p+" exists, but is not available. Please file an issue!");return{alias:o,name:i,value:A}}throw new E("intrinsic "+p+" does not exist!")};return Ve=function(p,s){if(typeof p!="string"||p.length===0)throw new f("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof s!="boolean")throw new f('"allowMissing" argument must be a boolean');if(R(/^%?[^%]*%?$/,p)===null)throw new E("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var i=r(p),o=i.length>0?i[0]:"",A=e("%"+o+"%",s),j=A.name,U=A.value,B=!1,$=A.alias;$&&(o=$[0],ee(i,z([0,1],$)));for(var Q=1,N=!0;Q=i.length){var se=D(U,ne);N=!!se,N&&"get"in se&&!("originalValue"in se.get)?U=se.get:U=U[ne]}else N=J(U,ne),U=U[ne];N&&!B&&(Y[j]=U)}}return U},Ve}var We,Yr;function ve(){if(Yr)return We;Yr=1;var t=ri(),n=xt(),c=n([t("%String.prototype.indexOf%")]);return We=function(y,_){var d=t(y,!!_);return typeof d=="function"&&c(y,".prototype.")>-1?n([d]):d},We}var qe,Qr;function Wi(){if(Qr)return qe;Qr=1;var t=Te()(),n=ve(),c=n("Object.prototype.toString"),y=function(E){return t&&E&&typeof E=="object"&&Symbol.toStringTag in E?!1:c(E)==="[object Arguments]"},_=function(E){return y(E)?!0:E!==null&&typeof E=="object"&&"length"in E&&typeof E.length=="number"&&E.length>=0&&c(E)!=="[object Array]"&&"callee"in E&&c(E.callee)==="[object Function]"},d=(function(){return y(arguments)})();return y.isLegacyArguments=_,qe=d?y:_,qe}var Xe,Jr;function qi(){if(Jr)return Xe;Jr=1;var t=ve(),n=Te()(),c=ti(),y=ye(),_;if(n){var d=t("RegExp.prototype.exec"),E={},f=function(){throw E},a={toString:f,valueOf:f};typeof Symbol.toPrimitive=="symbol"&&(a[Symbol.toPrimitive]=f),_=function(v){if(!v||typeof v!="object")return!1;var T=y(v,"lastIndex"),M=T&&c(T,"value");if(!M)return!1;try{d(v,a)}catch(P){return P===E}}}else{var g=t("Object.prototype.toString"),u="[object RegExp]";_=function(v){return!v||typeof v!="object"&&typeof v!="function"?!1:g(v)===u}}return Xe=_,Xe}var He,Kr;function Xi(){if(Kr)return He;Kr=1;var t=ve(),n=qi(),c=t("RegExp.prototype.exec"),y=be();return He=function(_){if(!n(_))throw new y("`regex` must be a RegExp");return function(d){return c(_,d)!==null}},He}var ze,Zr;function Hi(){if(Zr)return ze;Zr=1;const t=function*(){}.constructor;return ze=()=>t,ze}var Ye,en;function zi(){if(en)return Ye;en=1;var t=ve(),n=Xi(),c=n(/^\s*(?:function)?\*/),y=Te()(),_=Mt(),d=t("Object.prototype.toString"),E=t("Function.prototype.toString"),f=Hi();return Ye=function(a){if(typeof a!="function")return!1;if(c(E(a)))return!0;if(!y){var g=d(a);return g==="[object GeneratorFunction]"}if(!_)return!1;var u=f();return u&&_(a)===u.prototype},Ye}var Qe,tn;function Yi(){if(tn)return Qe;tn=1;var t=Function.prototype.toString,n=typeof Reflect=="object"&&Reflect!==null&&Reflect.apply,c,y;if(typeof n=="function"&&typeof Object.defineProperty=="function")try{c=Object.defineProperty({},"length",{get:function(){throw y}}),y={},n(function(){throw 42},null,c)}catch(D){D!==y&&(n=null)}else n=null;var _=/^\s*class\b/,d=function(D){try{var C=t.call(D);return _.test(C)}catch{return!1}},E=function(D){try{return d(D)?!1:(t.call(D),!0)}catch{return!1}},f=Object.prototype.toString,a="[object Object]",g="[object Function]",u="[object GeneratorFunction]",v="[object HTMLAllCollection]",T="[object HTML document.all class]",M="[object HTMLCollection]",P=typeof Symbol=="function"&&!!Symbol.toStringTag,b=!(0 in[,]),I=function(){return!1};if(typeof document=="object"){var L=document.all;f.call(L)===f.call(document.all)&&(I=function(D){if((b||!D)&&(typeof D>"u"||typeof D=="object"))try{var C=f.call(D);return(C===v||C===T||C===M||C===a)&&D("")==null}catch{}return!1})}return Qe=n?function(D){if(I(D))return!0;if(!D||typeof D!="function"&&typeof D!="object")return!1;try{n(D,null,c)}catch(C){if(C!==y)return!1}return!d(D)&&E(D)}:function(D){if(I(D))return!0;if(!D||typeof D!="function"&&typeof D!="object")return!1;if(P)return E(D);if(d(D))return!1;var C=f.call(D);return C!==g&&C!==u&&!/^\[object HTML/.test(C)?!1:E(D)},Qe}var Je,rn;function Qi(){if(rn)return Je;rn=1;var t=Yi(),n=Object.prototype.toString,c=Object.prototype.hasOwnProperty,y=function(f,a,g){for(var u=0,v=f.length;u=3&&(u=g),E(f)?y(f,a,u):typeof f=="string"?_(f,a,u):d(f,a,u)},Je}var nn,on;function Ji(){return on||(on=1,nn=["Float16Array","Float32Array","Float64Array","Int8Array","Int16Array","Int32Array","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array"]),nn}var Ke,an;function Ki(){if(an)return Ke;an=1;var t=Ji(),n=typeof globalThis>"u"?ce:globalThis;return Ke=function(){for(var c=[],y=0;y3&&typeof arguments[3]!="boolean"&&arguments[3]!==null)throw new c("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&typeof arguments[4]!="boolean"&&arguments[4]!==null)throw new c("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&typeof arguments[5]!="boolean"&&arguments[5]!==null)throw new c("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&typeof arguments[6]!="boolean")throw new c("`loose`, if provided, must be a boolean");var f=arguments.length>3?arguments[3]:null,a=arguments.length>4?arguments[4]:null,g=arguments.length>5?arguments[5]:null,u=arguments.length>6?arguments[6]:!1,v=!!y&&y(_,d);if(t)t(_,d,{configurable:g===null&&v?v.configurable:!g,enumerable:f===null&&v?v.enumerable:!f,value:E,writable:a===null&&v?v.writable:!a});else if(u||!f&&!a&&!g)_[d]=E;else throw new n("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.")},Ze}var et,cn;function eo(){if(cn)return et;cn=1;var t=Ae(),n=function(){return!!t};return n.hasArrayLengthDefineBug=function(){if(!t)return null;try{return t([],"length",{value:1}).length!==1}catch{return!0}},et=n,et}var tt,ln;function to(){if(ln)return tt;ln=1;var t=ri(),n=Zi(),c=eo()(),y=ye(),_=be(),d=t("%Math.floor%");return tt=function(E,f){if(typeof E!="function")throw new _("`fn` is not a function");if(typeof f!="number"||f<0||f>4294967295||d(f)!==f)throw new _("`length` must be a positive 32-bit integer");var a=arguments.length>2&&!!arguments[2],g=!0,u=!0;if("length"in E&&y){var v=y(E,"length");v&&!v.configurable&&(g=!1),v&&!v.writable&&(u=!1)}return(g||u||!a)&&(c?n(E,"length",f,!0,!0):n(E,"length",f)),E},tt}var rt,fn;function ro(){if(fn)return rt;fn=1;var t=Ee(),n=Ct(),c=ei();return rt=function(){return c(t,n,arguments)},rt}var pn;function no(){return pn||(pn=1,(function(t){var n=to(),c=Ae(),y=xt(),_=ro();t.exports=function(d){var E=y(arguments),f=d.length-(arguments.length-1);return n(E,1+(f>0?f:0),!0)},c?c(t.exports,"apply",{value:_}):t.exports.apply=_})(sn)),sn.exports}var nt,dn;function ni(){if(dn)return nt;dn=1;var t=Qi(),n=Ki(),c=no(),y=ve(),_=ye(),d=Mt(),E=y("Object.prototype.toString"),f=Te()(),a=typeof globalThis>"u"?ce:globalThis,g=n(),u=y("String.prototype.slice"),v=y("Array.prototype.indexOf",!0)||function(b,I){for(var L=0;L-1?I:I!=="Object"?!1:P(b)}return _?M(b):null},nt}var it,hn;function io(){if(hn)return it;hn=1;var t=ni();return it=function(n){return!!t(n)},it}var yn;function oo(){return yn||(yn=1,(function(t){var n=Wi(),c=zi(),y=ni(),_=io();function d(N){return N.call.bind(N)}var E=typeof BigInt<"u",f=typeof Symbol<"u",a=d(Object.prototype.toString),g=d(Number.prototype.valueOf),u=d(String.prototype.valueOf),v=d(Boolean.prototype.valueOf);if(E)var T=d(BigInt.prototype.valueOf);if(f)var M=d(Symbol.prototype.valueOf);function P(N,ne){if(typeof N!="object")return!1;try{return ne(N),!0}catch{return!1}}t.isArgumentsObject=n,t.isGeneratorFunction=c,t.isTypedArray=_;function b(N){return typeof Promise<"u"&&N instanceof Promise||N!==null&&typeof N=="object"&&typeof N.then=="function"&&typeof N.catch=="function"}t.isPromise=b;function I(N){return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?ArrayBuffer.isView(N):_(N)||w(N)}t.isArrayBufferView=I;function L(N){return y(N)==="Uint8Array"}t.isUint8Array=L;function D(N){return y(N)==="Uint8ClampedArray"}t.isUint8ClampedArray=D;function C(N){return y(N)==="Uint16Array"}t.isUint16Array=C;function h(N){return y(N)==="Uint32Array"}t.isUint32Array=h;function S(N){return y(N)==="Int8Array"}t.isInt8Array=S;function O(N){return y(N)==="Int16Array"}t.isInt16Array=O;function F(N){return y(N)==="Int32Array"}t.isInt32Array=F;function k(N){return y(N)==="Float32Array"}t.isFloat32Array=k;function l(N){return y(N)==="Float64Array"}t.isFloat64Array=l;function V(N){return y(N)==="BigInt64Array"}t.isBigInt64Array=V;function q(N){return y(N)==="BigUint64Array"}t.isBigUint64Array=q;function G(N){return a(N)==="[object Map]"}G.working=typeof Map<"u"&&G(new Map);function H(N){return typeof Map>"u"?!1:G.working?G(N):N instanceof Map}t.isMap=H;function Y(N){return a(N)==="[object Set]"}Y.working=typeof Set<"u"&&Y(new Set);function K(N){return typeof Set>"u"?!1:Y.working?Y(N):N instanceof Set}t.isSet=K;function re(N){return a(N)==="[object WeakMap]"}re.working=typeof WeakMap<"u"&&re(new WeakMap);function W(N){return typeof WeakMap>"u"?!1:re.working?re(N):N instanceof WeakMap}t.isWeakMap=W;function Z(N){return a(N)==="[object WeakSet]"}Z.working=typeof WeakSet<"u"&&Z(new WeakSet);function J(N){return Z(N)}t.isWeakSet=J;function z(N){return a(N)==="[object ArrayBuffer]"}z.working=typeof ArrayBuffer<"u"&&z(new ArrayBuffer);function ee(N){return typeof ArrayBuffer>"u"?!1:z.working?z(N):N instanceof ArrayBuffer}t.isArrayBuffer=ee;function te(N){return a(N)==="[object DataView]"}te.working=typeof ArrayBuffer<"u"&&typeof DataView<"u"&&te(new DataView(new ArrayBuffer(1),0,1));function w(N){return typeof DataView>"u"?!1:te.working?te(N):N instanceof DataView}t.isDataView=w;var R=typeof SharedArrayBuffer<"u"?SharedArrayBuffer:void 0;function x(N){return a(N)==="[object SharedArrayBuffer]"}function m(N){return typeof R>"u"?!1:(typeof x.working>"u"&&(x.working=x(new R)),x.working?x(N):N instanceof R)}t.isSharedArrayBuffer=m;function r(N){return a(N)==="[object AsyncFunction]"}t.isAsyncFunction=r;function e(N){return a(N)==="[object Map Iterator]"}t.isMapIterator=e;function p(N){return a(N)==="[object Set Iterator]"}t.isSetIterator=p;function s(N){return a(N)==="[object Generator]"}t.isGeneratorObject=s;function i(N){return a(N)==="[object WebAssembly.Module]"}t.isWebAssemblyCompiledModule=i;function o(N){return P(N,g)}t.isNumberObject=o;function A(N){return P(N,u)}t.isStringObject=A;function j(N){return P(N,v)}t.isBooleanObject=j;function U(N){return E&&P(N,T)}t.isBigIntObject=U;function B(N){return f&&P(N,M)}t.isSymbolObject=B;function $(N){return o(N)||A(N)||j(N)||U(N)||B(N)}t.isBoxedPrimitive=$;function Q(N){return typeof Uint8Array<"u"&&(ee(N)||m(N))}t.isAnyArrayBuffer=Q,["isProxy","isExternal","isModuleNamespaceObject"].forEach(function(N){Object.defineProperty(t,N,{enumerable:!1,value:function(){throw new Error(N+" is not supported in userland")}})})})(Xt)),Xt}var mn,gn;function ao(){return gn||(gn=1,mn=function(t){return t&&typeof t=="object"&&typeof t.copy=="function"&&typeof t.fill=="function"&&typeof t.readUInt8=="function"}),mn}var bn;function ii(){return bn||(bn=1,(function(t){var n={},c=Object.getOwnPropertyDescriptors||function(w){for(var R=Object.keys(w),x={},m=0;m=r)return i;switch(i){case"%s":return String(m[x++]);case"%d":return Number(m[x++]);case"%j":try{return JSON.stringify(m[x++])}catch{return"[Circular]"}default:return i}}),p=m[x];x"u")return function(){return t.deprecate(w,R).apply(this,arguments)};var x=!1;function m(){if(!x){if(X.throwDeprecation)throw new Error(R);X.traceDeprecation?console.trace(R):console.error(R),x=!0}return w.apply(this,arguments)}return m};var _={},d=/^$/;if(n.NODE_DEBUG){var E=n.NODE_DEBUG;E=E.replace(/[|\\{}()[\]^$+?.]/g,"\\$&").replace(/\*/g,".*").replace(/,/g,"$|^").toUpperCase(),d=new RegExp("^"+E+"$","i")}t.debuglog=function(w){if(w=w.toUpperCase(),!_[w])if(d.test(w)){var R=X.pid;_[w]=function(){var x=t.format.apply(t,arguments);console.error("%s %d: %s",w,R,x)}}else _[w]=function(){};return _[w]};function f(w,R){var x={seen:[],stylize:g};return arguments.length>=3&&(x.depth=arguments[2]),arguments.length>=4&&(x.colors=arguments[3]),D(R)?x.showHidden=R:R&&t._extend(x,R),k(x.showHidden)&&(x.showHidden=!1),k(x.depth)&&(x.depth=2),k(x.colors)&&(x.colors=!1),k(x.customInspect)&&(x.customInspect=!0),x.colors&&(x.stylize=a),v(x,w,x.depth)}t.inspect=f,f.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},f.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};function a(w,R){var x=f.styles[R];return x?"\x1B["+f.colors[x][0]+"m"+w+"\x1B["+f.colors[x][1]+"m":w}function g(w,R){return w}function u(w){var R={};return w.forEach(function(x,m){R[x]=!0}),R}function v(w,R,x){if(w.customInspect&&R&&H(R.inspect)&&R.inspect!==t.inspect&&!(R.constructor&&R.constructor.prototype===R)){var m=R.inspect(x,w);return O(m)||(m=v(w,m,x)),m}var r=T(w,R);if(r)return r;var e=Object.keys(R),p=u(e);if(w.showHidden&&(e=Object.getOwnPropertyNames(R)),G(R)&&(e.indexOf("message")>=0||e.indexOf("description")>=0))return M(R);if(e.length===0){if(H(R)){var s=R.name?": "+R.name:"";return w.stylize("[Function"+s+"]","special")}if(l(R))return w.stylize(RegExp.prototype.toString.call(R),"regexp");if(q(R))return w.stylize(Date.prototype.toString.call(R),"date");if(G(R))return M(R)}var i="",o=!1,A=["{","}"];if(L(R)&&(o=!0,A=["[","]"]),H(R)){var j=R.name?": "+R.name:"";i=" [Function"+j+"]"}if(l(R)&&(i=" "+RegExp.prototype.toString.call(R)),q(R)&&(i=" "+Date.prototype.toUTCString.call(R)),G(R)&&(i=" "+M(R)),e.length===0&&(!o||R.length==0))return A[0]+i+A[1];if(x<0)return l(R)?w.stylize(RegExp.prototype.toString.call(R),"regexp"):w.stylize("[Object]","special");w.seen.push(R);var U;return o?U=P(w,R,x,p,e):U=e.map(function(B){return b(w,R,x,p,B,o)}),w.seen.pop(),I(U,i,A)}function T(w,R){if(k(R))return w.stylize("undefined","undefined");if(O(R)){var x="'"+JSON.stringify(R).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return w.stylize(x,"string")}if(S(R))return w.stylize(""+R,"number");if(D(R))return w.stylize(""+R,"boolean");if(C(R))return w.stylize("null","null")}function M(w){return"["+Error.prototype.toString.call(w)+"]"}function P(w,R,x,m,r){for(var e=[],p=0,s=R.length;p=_e.NONE&&t.permissions<=_e.ALL))throw new Error("Invalid permissions");if(t.owner&&t.owner!==null&&typeof t.owner!="string")throw new Error("Invalid owner type");if(t.attributes&&typeof t.attributes!="object")throw new Error("Invalid attributes type");if(t.status&&!Object.values(Ti).includes(t.status))throw new Error("Status must be a valid NodeStatus")}function _i(t){t.mtime&&typeof t.mtime=="string"&&!isNaN(Date.parse(t.mtime))&&JSON.stringify(new Date(t.mtime))===JSON.stringify(t.mtime)&&(t.mtime=new Date(t.mtime)),t.crtime&&typeof t.crtime=="string"&&!isNaN(Date.parse(t.crtime))&&JSON.stringify(new Date(t.crtime))===JSON.stringify(t.crtime)&&(t.crtime=new Date(t.crtime))}function Si(t){if(t instanceof RegExp)return t;const n=t.match(/(\/?)(.+)\1([a-z]*)/i);if(!n)throw new Error("Invalid regular expression format.");const c=Array.from(new Set(n[3])).filter(y=>"gimsuy".includes(y)).join("");return new RegExp(n[2],c)}const Ti=Object.freeze({NEW:"new",FAILED:"failed",LOADING:"loading",LOCKED:"locked"});class Se{_attributes;_data;_knownDavService=/(remote|public)\.php\/(web)?dav/i;readonlyAttributes=Object.entries(Object.getOwnPropertyDescriptors(Se.prototype)).filter(n=>typeof n[1].get=="function"&&n[0]!=="__proto__").map(n=>n[0]);handler={set:(n,c,y)=>this.readonlyAttributes.includes(c)?!1:Reflect.set(n,c,y),deleteProperty:(n,c)=>this.readonlyAttributes.includes(c)?!1:Reflect.deleteProperty(n,c)};constructor(...[n,c]){n.mime||(n.mime="application/octet-stream"),_i(n),c=Si(c||this._knownDavService),ue(n,c),this._data={...n,attributes:{}},this._attributes=new Proxy(this._data.attributes,this.handler),this.update(n.attributes??{}),c&&(this._knownDavService=c)}get source(){return this._data.source.replace(/\/$/i,"")}get encodedSource(){const{origin:n}=new URL(this.source);return n+kt(this.source.slice(n.length))}get basename(){return bi(this.source)}get displayname(){return this._data.displayname||this.basename}set displayname(n){ue({...this._data,displayname:n},this._knownDavService),this._data.displayname=n}get extension(){return Ei(this.source)}get dirname(){return Ut(this.path)}get mime(){return this._data.mime||"application/octet-stream"}set mime(n){n??="application/octet-stream",ue({...this._data,mime:n},this._knownDavService),this._data.mime=n}get mtime(){return this._data.mtime}set mtime(n){ue({...this._data,mtime:n},this._knownDavService),this._data.mtime=n}get crtime(){return this._data.crtime}get size(){return this._data.size}set size(n){ue({...this._data,size:n},this._knownDavService),this.updateMtime(),this._data.size=n}get attributes(){return this._attributes}get permissions(){return this.owner===null&&!this.isDavResource?_e.READ:this._data.permissions!==void 0?this._data.permissions:_e.NONE}set permissions(n){ue({...this._data,permissions:n},this._knownDavService),this.updateMtime(),this._data.permissions=n}get owner(){return this.isDavResource?this._data.owner:null}get isDavResource(){return Hn(this.source,this._knownDavService)}get root(){return this._data.root.replace(/^(.+)\/$/,"$1")}get path(){const n=this.source.indexOf("://"),c=this.source.slice(0,n),y=this.source.slice(n+3),_=y.indexOf("/"),d=y.slice(0,_),E=y.slice(_),f=`${c}://${d}${kt(E)}`,a=new URL(f);let g=decodeURIComponent(a.pathname);this.isDavResource&&(g=g.split(this._knownDavService).pop());const u=g.indexOf(this.root),v=this.root.replace(/\/$/,"");return g.slice(u+v.length)||"/"}get fileid(){return this._data?.id}get status(){return this._data?.status}set status(n){ue({...this._data,status:n},this._knownDavService),this._data.status=n}move(n){ue({...this._data,source:n},this._knownDavService);const c=this.basename;this._data.source=n,this.displayname===c&&this.basename!==c&&(this.displayname=this.basename)}rename(n){if(n.includes("/"))throw new Error("Invalid basename");this.move(Ut(this.source)+"/"+n)}updateMtime(){this._data.mtime&&(this._data.mtime=new Date)}update(n){for(const[c,y]of Object.entries(n))try{y===void 0?delete this.attributes[c]:this.attributes[c]=y}catch(_){if(_ instanceof TypeError)continue;throw _}}clone(){return new this.constructor(structuredClone(this._data),this._knownDavService)}toJSON(){return JSON.stringify([structuredClone(this._data),this._knownDavService.toString()])}}class Co extends Se{constructor(...[n,c]){super(n,c)}get type(){return Xn.File}}class xo extends Se{constructor(...[n,c]){super({...n,mime:"httpd/unix-directory"},c)}get type(){return Xn.Folder}get extension(){return null}get mime(){return"httpd/unix-directory"}}var Ai=class extends EventTarget{dispatchTypedEvent(t,n){return super.dispatchEvent(n)}},Bt={},we={exports:{}},$t;function Pt(){if($t)return we.exports;$t=1;var t=typeof Reflect=="object"?Reflect:null,n=t&&typeof t.apply=="function"?t.apply:function(h,S,O){return Function.prototype.apply.call(h,S,O)},c;t&&typeof t.ownKeys=="function"?c=t.ownKeys:Object.getOwnPropertySymbols?c=function(h){return Object.getOwnPropertyNames(h).concat(Object.getOwnPropertySymbols(h))}:c=function(h){return Object.getOwnPropertyNames(h)};function y(h){console&&console.warn&&console.warn(h)}var _=Number.isNaN||function(h){return h!==h};function d(){d.init.call(this)}we.exports=d,we.exports.once=L,d.EventEmitter=d,d.prototype._events=void 0,d.prototype._eventsCount=0,d.prototype._maxListeners=void 0;var E=10;function f(h){if(typeof h!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof h)}Object.defineProperty(d,"defaultMaxListeners",{enumerable:!0,get:function(){return E},set:function(h){if(typeof h!="number"||h<0||_(h))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+h+".");E=h}}),d.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},d.prototype.setMaxListeners=function(h){if(typeof h!="number"||h<0||_(h))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+h+".");return this._maxListeners=h,this};function a(h){return h._maxListeners===void 0?d.defaultMaxListeners:h._maxListeners}d.prototype.getMaxListeners=function(){return a(this)},d.prototype.emit=function(h){for(var S=[],O=1;O0&&(l=S[0]),l instanceof Error)throw l;var V=new Error("Unhandled error."+(l?" ("+l.message+")":""));throw V.context=l,V}var q=k[h];if(q===void 0)return!1;if(typeof q=="function")n(q,this,S);else for(var G=q.length,H=P(q,G),O=0;O0&&V.length>k&&!V.warned){V.warned=!0;var q=new Error("Possible EventEmitter memory leak detected. "+V.length+" "+String(S)+" listeners added. Use emitter.setMaxListeners() to increase limit");q.name="MaxListenersExceededWarning",q.emitter=h,q.type=S,q.count=V.length,y(q)}return h}d.prototype.addListener=function(h,S){return g(this,h,S,!1)},d.prototype.on=d.prototype.addListener,d.prototype.prependListener=function(h,S){return g(this,h,S,!0)};function u(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function v(h,S,O){var F={fired:!1,wrapFn:void 0,target:h,type:S,listener:O},k=u.bind(F);return k.listener=O,F.wrapFn=k,k}d.prototype.once=function(h,S){return f(S),this.on(h,v(this,h,S)),this},d.prototype.prependOnceListener=function(h,S){return f(S),this.prependListener(h,v(this,h,S)),this},d.prototype.removeListener=function(h,S){var O,F,k,l,V;if(f(S),F=this._events,F===void 0)return this;if(O=F[h],O===void 0)return this;if(O===S||O.listener===S)--this._eventsCount===0?this._events=Object.create(null):(delete F[h],F.removeListener&&this.emit("removeListener",h,O.listener||S));else if(typeof O!="function"){for(k=-1,l=O.length-1;l>=0;l--)if(O[l]===S||O[l].listener===S){V=O[l].listener,k=l;break}if(k<0)return this;k===0?O.shift():b(O,k),O.length===1&&(F[h]=O[0]),F.removeListener!==void 0&&this.emit("removeListener",h,V||S)}return this},d.prototype.off=d.prototype.removeListener,d.prototype.removeAllListeners=function(h){var S,O,F;if(O=this._events,O===void 0)return this;if(O.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):O[h]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete O[h]),this;if(arguments.length===0){var k=Object.keys(O),l;for(F=0;F=0;F--)this.removeListener(h,S[F]);return this};function T(h,S,O){var F=h._events;if(F===void 0)return[];var k=F[S];return k===void 0?[]:typeof k=="function"?O?[k.listener||k]:[k]:O?I(k):P(k,k.length)}d.prototype.listeners=function(h){return T(this,h,!0)},d.prototype.rawListeners=function(h){return T(this,h,!1)},d.listenerCount=function(h,S){return typeof h.listenerCount=="function"?h.listenerCount(S):M.call(h,S)},d.prototype.listenerCount=M;function M(h){var S=this._events;if(S!==void 0){var O=S[h];if(typeof O=="function")return 1;if(O!==void 0)return O.length}return 0}d.prototype.eventNames=function(){return this._eventsCount>0?c(this._events):[]};function P(h,S){for(var O=new Array(S),F=0;F"u"||!F?t:F(Uint8Array),Y={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?t:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?t:ArrayBuffer,"%ArrayIteratorPrototype%":O&&F?F([][Symbol.iterator]()):t,"%AsyncFromSyncIteratorPrototype%":t,"%AsyncFunction%":G,"%AsyncGenerator%":G,"%AsyncGeneratorFunction%":G,"%AsyncIteratorPrototype%":G,"%Atomics%":typeof Atomics>"u"?t:Atomics,"%BigInt%":typeof BigInt>"u"?t:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?t:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?t:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?t:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":c,"%eval%":eval,"%EvalError%":y,"%Float16Array%":typeof Float16Array>"u"?t:Float16Array,"%Float32Array%":typeof Float32Array>"u"?t:Float32Array,"%Float64Array%":typeof Float64Array>"u"?t:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?t:FinalizationRegistry,"%Function%":I,"%GeneratorFunction%":G,"%Int8Array%":typeof Int8Array>"u"?t:Int8Array,"%Int16Array%":typeof Int16Array>"u"?t:Int16Array,"%Int32Array%":typeof Int32Array>"u"?t:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":O&&F?F(F([][Symbol.iterator]())):t,"%JSON%":typeof JSON=="object"?JSON:t,"%Map%":typeof Map>"u"?t:Map,"%MapIteratorPrototype%":typeof Map>"u"||!O||!F?t:F(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":n,"%Object.getOwnPropertyDescriptor%":D,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?t:Promise,"%Proxy%":typeof Proxy>"u"?t:Proxy,"%RangeError%":_,"%ReferenceError%":d,"%Reflect%":typeof Reflect>"u"?t:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?t:Set,"%SetIteratorPrototype%":typeof Set>"u"||!O||!F?t:F(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?t:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":O&&F?F(""[Symbol.iterator]()):t,"%Symbol%":O?Symbol:t,"%SyntaxError%":E,"%ThrowTypeError%":S,"%TypedArray%":H,"%TypeError%":f,"%Uint8Array%":typeof Uint8Array>"u"?t:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?t:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?t:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?t:Uint32Array,"%URIError%":a,"%WeakMap%":typeof WeakMap>"u"?t:WeakMap,"%WeakRef%":typeof WeakRef>"u"?t:WeakRef,"%WeakSet%":typeof WeakSet>"u"?t:WeakSet,"%Function.prototype.call%":q,"%Function.prototype.apply%":V,"%Object.defineProperty%":C,"%Object.getPrototypeOf%":k,"%Math.abs%":g,"%Math.floor%":u,"%Math.max%":v,"%Math.min%":T,"%Math.pow%":M,"%Math.round%":P,"%Math.sign%":b,"%Reflect.getPrototypeOf%":l};if(F)try{null.error}catch(p){var K=F(F(p));Y["%Error.prototype%"]=K}var re=function p(s){var i;if(s==="%AsyncFunction%")i=L("async function () {}");else if(s==="%GeneratorFunction%")i=L("function* () {}");else if(s==="%AsyncGeneratorFunction%")i=L("async function* () {}");else if(s==="%AsyncGenerator%"){var o=p("%AsyncGeneratorFunction%");o&&(i=o.prototype)}else if(s==="%AsyncIteratorPrototype%"){var A=p("%AsyncGenerator%");A&&F&&(i=F(A.prototype))}return Y[s]=i,i},W={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},Z=Ee(),J=ti(),z=Z.call(q,Array.prototype.concat),ee=Z.call(V,Array.prototype.splice),te=Z.call(q,String.prototype.replace),w=Z.call(q,String.prototype.slice),R=Z.call(q,RegExp.prototype.exec),x=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,m=/\\(\\)?/g,r=function(p){var s=w(p,0,1),i=w(p,-1);if(s==="%"&&i!=="%")throw new E("invalid intrinsic syntax, expected closing `%`");if(i==="%"&&s!=="%")throw new E("invalid intrinsic syntax, expected opening `%`");var o=[];return te(p,x,function(A,j,U,B){o[o.length]=U?te(B,m,"$1"):j||A}),o},e=function(p,s){var i=p,o;if(J(W,i)&&(o=W[i],i="%"+o[0]+"%"),J(Y,i)){var A=Y[i];if(A===G&&(A=re(i)),typeof A>"u"&&!s)throw new f("intrinsic "+p+" exists, but is not available. Please file an issue!");return{alias:o,name:i,value:A}}throw new E("intrinsic "+p+" does not exist!")};return Ve=function(p,s){if(typeof p!="string"||p.length===0)throw new f("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof s!="boolean")throw new f('"allowMissing" argument must be a boolean');if(R(/^%?[^%]*%?$/,p)===null)throw new E("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var i=r(p),o=i.length>0?i[0]:"",A=e("%"+o+"%",s),j=A.name,U=A.value,B=!1,$=A.alias;$&&(o=$[0],ee(i,z([0,1],$)));for(var Q=1,N=!0;Q=i.length){var se=D(U,ne);N=!!se,N&&"get"in se&&!("originalValue"in se.get)?U=se.get:U=U[ne]}else N=J(U,ne),U=U[ne];N&&!B&&(Y[j]=U)}}return U},Ve}var We,Yr;function ve(){if(Yr)return We;Yr=1;var t=ri(),n=xt(),c=n([t("%String.prototype.indexOf%")]);return We=function(y,_){var d=t(y,!!_);return typeof d=="function"&&c(y,".prototype.")>-1?n([d]):d},We}var qe,Qr;function Wi(){if(Qr)return qe;Qr=1;var t=Te()(),n=ve(),c=n("Object.prototype.toString"),y=function(E){return t&&E&&typeof E=="object"&&Symbol.toStringTag in E?!1:c(E)==="[object Arguments]"},_=function(E){return y(E)?!0:E!==null&&typeof E=="object"&&"length"in E&&typeof E.length=="number"&&E.length>=0&&c(E)!=="[object Array]"&&"callee"in E&&c(E.callee)==="[object Function]"},d=(function(){return y(arguments)})();return y.isLegacyArguments=_,qe=d?y:_,qe}var Xe,Jr;function qi(){if(Jr)return Xe;Jr=1;var t=ve(),n=Te()(),c=ti(),y=ye(),_;if(n){var d=t("RegExp.prototype.exec"),E={},f=function(){throw E},a={toString:f,valueOf:f};typeof Symbol.toPrimitive=="symbol"&&(a[Symbol.toPrimitive]=f),_=function(v){if(!v||typeof v!="object")return!1;var T=y(v,"lastIndex"),M=T&&c(T,"value");if(!M)return!1;try{d(v,a)}catch(P){return P===E}}}else{var g=t("Object.prototype.toString"),u="[object RegExp]";_=function(v){return!v||typeof v!="object"&&typeof v!="function"?!1:g(v)===u}}return Xe=_,Xe}var He,Kr;function Xi(){if(Kr)return He;Kr=1;var t=ve(),n=qi(),c=t("RegExp.prototype.exec"),y=be();return He=function(_){if(!n(_))throw new y("`regex` must be a RegExp");return function(d){return c(_,d)!==null}},He}var ze,Zr;function Hi(){if(Zr)return ze;Zr=1;const t=function*(){}.constructor;return ze=()=>t,ze}var Ye,en;function zi(){if(en)return Ye;en=1;var t=ve(),n=Xi(),c=n(/^\s*(?:function)?\*/),y=Te()(),_=Mt(),d=t("Object.prototype.toString"),E=t("Function.prototype.toString"),f=Hi();return Ye=function(a){if(typeof a!="function")return!1;if(c(E(a)))return!0;if(!y){var g=d(a);return g==="[object GeneratorFunction]"}if(!_)return!1;var u=f();return u&&_(a)===u.prototype},Ye}var Qe,tn;function Yi(){if(tn)return Qe;tn=1;var t=Function.prototype.toString,n=typeof Reflect=="object"&&Reflect!==null&&Reflect.apply,c,y;if(typeof n=="function"&&typeof Object.defineProperty=="function")try{c=Object.defineProperty({},"length",{get:function(){throw y}}),y={},n(function(){throw 42},null,c)}catch(D){D!==y&&(n=null)}else n=null;var _=/^\s*class\b/,d=function(D){try{var C=t.call(D);return _.test(C)}catch{return!1}},E=function(D){try{return d(D)?!1:(t.call(D),!0)}catch{return!1}},f=Object.prototype.toString,a="[object Object]",g="[object Function]",u="[object GeneratorFunction]",v="[object HTMLAllCollection]",T="[object HTML document.all class]",M="[object HTMLCollection]",P=typeof Symbol=="function"&&!!Symbol.toStringTag,b=!(0 in[,]),I=function(){return!1};if(typeof document=="object"){var L=document.all;f.call(L)===f.call(document.all)&&(I=function(D){if((b||!D)&&(typeof D>"u"||typeof D=="object"))try{var C=f.call(D);return(C===v||C===T||C===M||C===a)&&D("")==null}catch{}return!1})}return Qe=n?function(D){if(I(D))return!0;if(!D||typeof D!="function"&&typeof D!="object")return!1;try{n(D,null,c)}catch(C){if(C!==y)return!1}return!d(D)&&E(D)}:function(D){if(I(D))return!0;if(!D||typeof D!="function"&&typeof D!="object")return!1;if(P)return E(D);if(d(D))return!1;var C=f.call(D);return C!==g&&C!==u&&!/^\[object HTML/.test(C)?!1:E(D)},Qe}var Je,rn;function Qi(){if(rn)return Je;rn=1;var t=Yi(),n=Object.prototype.toString,c=Object.prototype.hasOwnProperty,y=function(f,a,g){for(var u=0,v=f.length;u=3&&(u=g),E(f)?y(f,a,u):typeof f=="string"?_(f,a,u):d(f,a,u)},Je}var nn,on;function Ji(){return on||(on=1,nn=["Float16Array","Float32Array","Float64Array","Int8Array","Int16Array","Int32Array","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array"]),nn}var Ke,an;function Ki(){if(an)return Ke;an=1;var t=Ji(),n=typeof globalThis>"u"?ce:globalThis;return Ke=function(){for(var c=[],y=0;y3&&typeof arguments[3]!="boolean"&&arguments[3]!==null)throw new c("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&typeof arguments[4]!="boolean"&&arguments[4]!==null)throw new c("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&typeof arguments[5]!="boolean"&&arguments[5]!==null)throw new c("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&typeof arguments[6]!="boolean")throw new c("`loose`, if provided, must be a boolean");var f=arguments.length>3?arguments[3]:null,a=arguments.length>4?arguments[4]:null,g=arguments.length>5?arguments[5]:null,u=arguments.length>6?arguments[6]:!1,v=!!y&&y(_,d);if(t)t(_,d,{configurable:g===null&&v?v.configurable:!g,enumerable:f===null&&v?v.enumerable:!f,value:E,writable:a===null&&v?v.writable:!a});else if(u||!f&&!a&&!g)_[d]=E;else throw new n("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.")},Ze}var et,cn;function eo(){if(cn)return et;cn=1;var t=Ae(),n=function(){return!!t};return n.hasArrayLengthDefineBug=function(){if(!t)return null;try{return t([],"length",{value:1}).length!==1}catch{return!0}},et=n,et}var tt,ln;function to(){if(ln)return tt;ln=1;var t=ri(),n=Zi(),c=eo()(),y=ye(),_=be(),d=t("%Math.floor%");return tt=function(E,f){if(typeof E!="function")throw new _("`fn` is not a function");if(typeof f!="number"||f<0||f>4294967295||d(f)!==f)throw new _("`length` must be a positive 32-bit integer");var a=arguments.length>2&&!!arguments[2],g=!0,u=!0;if("length"in E&&y){var v=y(E,"length");v&&!v.configurable&&(g=!1),v&&!v.writable&&(u=!1)}return(g||u||!a)&&(c?n(E,"length",f,!0,!0):n(E,"length",f)),E},tt}var rt,fn;function ro(){if(fn)return rt;fn=1;var t=Ee(),n=Ct(),c=ei();return rt=function(){return c(t,n,arguments)},rt}var pn;function no(){return pn||(pn=1,(function(t){var n=to(),c=Ae(),y=xt(),_=ro();t.exports=function(d){var E=y(arguments),f=d.length-(arguments.length-1);return n(E,1+(f>0?f:0),!0)},c?c(t.exports,"apply",{value:_}):t.exports.apply=_})(sn)),sn.exports}var nt,dn;function ni(){if(dn)return nt;dn=1;var t=Qi(),n=Ki(),c=no(),y=ve(),_=ye(),d=Mt(),E=y("Object.prototype.toString"),f=Te()(),a=typeof globalThis>"u"?ce:globalThis,g=n(),u=y("String.prototype.slice"),v=y("Array.prototype.indexOf",!0)||function(b,I){for(var L=0;L-1?I:I!=="Object"?!1:P(b)}return _?M(b):null},nt}var it,hn;function io(){if(hn)return it;hn=1;var t=ni();return it=function(n){return!!t(n)},it}var yn;function oo(){return yn||(yn=1,(function(t){var n=Wi(),c=zi(),y=ni(),_=io();function d(N){return N.call.bind(N)}var E=typeof BigInt<"u",f=typeof Symbol<"u",a=d(Object.prototype.toString),g=d(Number.prototype.valueOf),u=d(String.prototype.valueOf),v=d(Boolean.prototype.valueOf);if(E)var T=d(BigInt.prototype.valueOf);if(f)var M=d(Symbol.prototype.valueOf);function P(N,ne){if(typeof N!="object")return!1;try{return ne(N),!0}catch{return!1}}t.isArgumentsObject=n,t.isGeneratorFunction=c,t.isTypedArray=_;function b(N){return typeof Promise<"u"&&N instanceof Promise||N!==null&&typeof N=="object"&&typeof N.then=="function"&&typeof N.catch=="function"}t.isPromise=b;function I(N){return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?ArrayBuffer.isView(N):_(N)||w(N)}t.isArrayBufferView=I;function L(N){return y(N)==="Uint8Array"}t.isUint8Array=L;function D(N){return y(N)==="Uint8ClampedArray"}t.isUint8ClampedArray=D;function C(N){return y(N)==="Uint16Array"}t.isUint16Array=C;function h(N){return y(N)==="Uint32Array"}t.isUint32Array=h;function S(N){return y(N)==="Int8Array"}t.isInt8Array=S;function O(N){return y(N)==="Int16Array"}t.isInt16Array=O;function F(N){return y(N)==="Int32Array"}t.isInt32Array=F;function k(N){return y(N)==="Float32Array"}t.isFloat32Array=k;function l(N){return y(N)==="Float64Array"}t.isFloat64Array=l;function V(N){return y(N)==="BigInt64Array"}t.isBigInt64Array=V;function q(N){return y(N)==="BigUint64Array"}t.isBigUint64Array=q;function G(N){return a(N)==="[object Map]"}G.working=typeof Map<"u"&&G(new Map);function H(N){return typeof Map>"u"?!1:G.working?G(N):N instanceof Map}t.isMap=H;function Y(N){return a(N)==="[object Set]"}Y.working=typeof Set<"u"&&Y(new Set);function K(N){return typeof Set>"u"?!1:Y.working?Y(N):N instanceof Set}t.isSet=K;function re(N){return a(N)==="[object WeakMap]"}re.working=typeof WeakMap<"u"&&re(new WeakMap);function W(N){return typeof WeakMap>"u"?!1:re.working?re(N):N instanceof WeakMap}t.isWeakMap=W;function Z(N){return a(N)==="[object WeakSet]"}Z.working=typeof WeakSet<"u"&&Z(new WeakSet);function J(N){return Z(N)}t.isWeakSet=J;function z(N){return a(N)==="[object ArrayBuffer]"}z.working=typeof ArrayBuffer<"u"&&z(new ArrayBuffer);function ee(N){return typeof ArrayBuffer>"u"?!1:z.working?z(N):N instanceof ArrayBuffer}t.isArrayBuffer=ee;function te(N){return a(N)==="[object DataView]"}te.working=typeof ArrayBuffer<"u"&&typeof DataView<"u"&&te(new DataView(new ArrayBuffer(1),0,1));function w(N){return typeof DataView>"u"?!1:te.working?te(N):N instanceof DataView}t.isDataView=w;var R=typeof SharedArrayBuffer<"u"?SharedArrayBuffer:void 0;function x(N){return a(N)==="[object SharedArrayBuffer]"}function m(N){return typeof R>"u"?!1:(typeof x.working>"u"&&(x.working=x(new R)),x.working?x(N):N instanceof R)}t.isSharedArrayBuffer=m;function r(N){return a(N)==="[object AsyncFunction]"}t.isAsyncFunction=r;function e(N){return a(N)==="[object Map Iterator]"}t.isMapIterator=e;function p(N){return a(N)==="[object Set Iterator]"}t.isSetIterator=p;function s(N){return a(N)==="[object Generator]"}t.isGeneratorObject=s;function i(N){return a(N)==="[object WebAssembly.Module]"}t.isWebAssemblyCompiledModule=i;function o(N){return P(N,g)}t.isNumberObject=o;function A(N){return P(N,u)}t.isStringObject=A;function j(N){return P(N,v)}t.isBooleanObject=j;function U(N){return E&&P(N,T)}t.isBigIntObject=U;function B(N){return f&&P(N,M)}t.isSymbolObject=B;function $(N){return o(N)||A(N)||j(N)||U(N)||B(N)}t.isBoxedPrimitive=$;function Q(N){return typeof Uint8Array<"u"&&(ee(N)||m(N))}t.isAnyArrayBuffer=Q,["isProxy","isExternal","isModuleNamespaceObject"].forEach(function(N){Object.defineProperty(t,N,{enumerable:!1,value:function(){throw new Error(N+" is not supported in userland")}})})})(Xt)),Xt}var mn,gn;function ao(){return gn||(gn=1,mn=function(t){return t&&typeof t=="object"&&typeof t.copy=="function"&&typeof t.fill=="function"&&typeof t.readUInt8=="function"}),mn}var bn;function ii(){return bn||(bn=1,(function(t){var n={},c=Object.getOwnPropertyDescriptors||function(w){for(var R=Object.keys(w),x={},m=0;m=r)return i;switch(i){case"%s":return String(m[x++]);case"%d":return Number(m[x++]);case"%j":try{return JSON.stringify(m[x++])}catch{return"[Circular]"}default:return i}}),p=m[x];x"u")return function(){return t.deprecate(w,R).apply(this,arguments)};var x=!1;function m(){if(!x){if(X.throwDeprecation)throw new Error(R);X.traceDeprecation?console.trace(R):console.error(R),x=!0}return w.apply(this,arguments)}return m};var _={},d=/^$/;if(n.NODE_DEBUG){var E=n.NODE_DEBUG;E=E.replace(/[|\\{}()[\]^$+?.]/g,"\\$&").replace(/\*/g,".*").replace(/,/g,"$|^").toUpperCase(),d=new RegExp("^"+E+"$","i")}t.debuglog=function(w){if(w=w.toUpperCase(),!_[w])if(d.test(w)){var R=X.pid;_[w]=function(){var x=t.format.apply(t,arguments);console.error("%s %d: %s",w,R,x)}}else _[w]=function(){};return _[w]};function f(w,R){var x={seen:[],stylize:g};return arguments.length>=3&&(x.depth=arguments[2]),arguments.length>=4&&(x.colors=arguments[3]),D(R)?x.showHidden=R:R&&t._extend(x,R),k(x.showHidden)&&(x.showHidden=!1),k(x.depth)&&(x.depth=2),k(x.colors)&&(x.colors=!1),k(x.customInspect)&&(x.customInspect=!0),x.colors&&(x.stylize=a),v(x,w,x.depth)}t.inspect=f,f.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},f.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};function a(w,R){var x=f.styles[R];return x?"\x1B["+f.colors[x][0]+"m"+w+"\x1B["+f.colors[x][1]+"m":w}function g(w,R){return w}function u(w){var R={};return w.forEach(function(x,m){R[x]=!0}),R}function v(w,R,x){if(w.customInspect&&R&&H(R.inspect)&&R.inspect!==t.inspect&&!(R.constructor&&R.constructor.prototype===R)){var m=R.inspect(x,w);return O(m)||(m=v(w,m,x)),m}var r=T(w,R);if(r)return r;var e=Object.keys(R),p=u(e);if(w.showHidden&&(e=Object.getOwnPropertyNames(R)),G(R)&&(e.indexOf("message")>=0||e.indexOf("description")>=0))return M(R);if(e.length===0){if(H(R)){var s=R.name?": "+R.name:"";return w.stylize("[Function"+s+"]","special")}if(l(R))return w.stylize(RegExp.prototype.toString.call(R),"regexp");if(q(R))return w.stylize(Date.prototype.toString.call(R),"date");if(G(R))return M(R)}var i="",o=!1,A=["{","}"];if(L(R)&&(o=!0,A=["[","]"]),H(R)){var j=R.name?": "+R.name:"";i=" [Function"+j+"]"}if(l(R)&&(i=" "+RegExp.prototype.toString.call(R)),q(R)&&(i=" "+Date.prototype.toUTCString.call(R)),G(R)&&(i=" "+M(R)),e.length===0&&(!o||R.length==0))return A[0]+i+A[1];if(x<0)return l(R)?w.stylize(RegExp.prototype.toString.call(R),"regexp"):w.stylize("[Object]","special");w.seen.push(R);var U;return o?U=P(w,R,x,p,e):U=e.map(function(B){return b(w,R,x,p,B,o)}),w.seen.pop(),I(U,i,A)}function T(w,R){if(k(R))return w.stylize("undefined","undefined");if(O(R)){var x="'"+JSON.stringify(R).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return w.stylize(x,"string")}if(S(R))return w.stylize(""+R,"number");if(D(R))return w.stylize(""+R,"boolean");if(C(R))return w.stylize("null","null")}function M(w){return"["+Error.prototype.toString.call(w)+"]"}function P(w,R,x,m,r){for(var e=[],p=0,s=R.length;p-1&&(e?s=s.split(` `).map(function(o){return" "+o}).join(` `).slice(2):s=` @@ -16,4 +16,4 @@ Actual: `+r.attribValue);else if(s==="xmlns"&&r.attribValue!==P)W(r,"xmlns: pref Actual: `+r.attribValue);else{var i=r.tag,o=r.tags[r.tags.length-1]||r;i.ns===o.ns&&(i.ns=Object.create(o.ns)),i.ns[s]=r.attribValue}r.attribList.push([r.attribName,r.attribValue])}else r.tag.attributes[r.attribName]=r.attribValue,G(r,"onattribute",{name:r.attribName,value:r.attribValue});r.attribName=r.attribValue=""}function ee(r,e){if(r.opt.xmlns){var p=r.tag,s=J(r.tagName);p.prefix=s.prefix,p.local=s.local,p.uri=p.ns[s.prefix]||"",p.prefix&&!p.uri&&(W(r,"Unbound namespace prefix: "+JSON.stringify(r.tagName)),p.uri=s.prefix);var i=r.tags[r.tags.length-1]||r;p.ns&&i.ns!==p.ns&&Object.keys(p.ns).forEach(function(ae){G(r,"onopennamespace",{prefix:ae,uri:p.ns[ae]})});for(var o=0,A=r.attribList.length;o",r.tagName="",r.state=l.SCRIPT;return}G(r,"onscript",r.script),r.script=""}var e=r.tags.length,p=r.tagName;r.strict||(p=p[r.looseCase]());for(var s=p;e--;){var i=r.tags[e];if(i.name!==s)W(r,"Unexpected close tag");else break}if(e<0){W(r,"Unmatched closing tag: "+r.tagName),r.textNode+="",r.state=l.TEXT;return}r.tagName=p;for(var o=r.tags.length;o-- >e;){var A=r.tag=r.tags.pop();r.tagName=r.tag.name,G(r,"onclosetag",r.tagName);var j={};for(var U in A.ns)j[U]=A.ns[U];var B=r.tags[r.tags.length-1]||r;r.opt.xmlns&&A.ns!==B.ns&&Object.keys(A.ns).forEach(function($){var Q=A.ns[$];G(r,"onclosenamespace",{prefix:$,uri:Q})})}e===0&&(r.closedRoot=!0),r.tagName=r.attribValue=r.attribName="",r.attribList.length=0,r.state=l.TEXT}function w(r){var e=r.entity,p=e.toLowerCase(),s,i="";return r.ENTITIES[e]?r.ENTITIES[e]:r.ENTITIES[p]?r.ENTITIES[p]:(e=p,e.charAt(0)==="#"&&(e.charAt(1)==="x"?(e=e.slice(2),s=parseInt(e,16),i=s.toString(16)):(e=e.slice(1),s=parseInt(e,10),i=s.toString(10))),e=e.replace(/^0+/,""),isNaN(s)||i.toLowerCase()!==e?(W(r,"Invalid character entity"),"&"+r.entity+";"):String.fromCodePoint(s))}function R(r,e){e==="<"?(r.state=l.OPEN_WAKA,r.startTagPosition=r.position):h(e)||(W(r,"Non-whitespace before first tag."),r.textNode=e,r.state=l.TEXT)}function x(r,e){var p="";return e"?(G(e,"onsgmldeclaration",e.sgmlDecl),e.sgmlDecl="",e.state=l.TEXT):(S(s)&&(e.state=l.SGML_DECL_QUOTED),e.sgmlDecl+=s);continue;case l.SGML_DECL_QUOTED:s===e.q&&(e.state=l.SGML_DECL,e.q=""),e.sgmlDecl+=s;continue;case l.DOCTYPE:s===">"?(e.state=l.TEXT,G(e,"ondoctype",e.doctype),e.doctype=!0):(e.doctype+=s,s==="["?e.state=l.DOCTYPE_DTD:S(s)&&(e.state=l.DOCTYPE_QUOTED,e.q=s));continue;case l.DOCTYPE_QUOTED:e.doctype+=s,s===e.q&&(e.q="",e.state=l.DOCTYPE);continue;case l.DOCTYPE_DTD:s==="]"?(e.doctype+=s,e.state=l.DOCTYPE):s==="<"?(e.state=l.OPEN_WAKA,e.startTagPosition=e.position):S(s)?(e.doctype+=s,e.state=l.DOCTYPE_DTD_QUOTED,e.q=s):e.doctype+=s;continue;case l.DOCTYPE_DTD_QUOTED:e.doctype+=s,s===e.q&&(e.state=l.DOCTYPE_DTD,e.q="");continue;case l.COMMENT:s==="-"?e.state=l.COMMENT_ENDING:e.comment+=s;continue;case l.COMMENT_ENDING:s==="-"?(e.state=l.COMMENT_ENDED,e.comment=Y(e.opt,e.comment),e.comment&&G(e,"oncomment",e.comment),e.comment=""):(e.comment+="-"+s,e.state=l.COMMENT);continue;case l.COMMENT_ENDED:s!==">"?(W(e,"Malformed comment"),e.comment+="--"+s,e.state=l.COMMENT):e.doctype&&e.doctype!==!0?e.state=l.DOCTYPE_DTD:e.state=l.TEXT;continue;case l.CDATA:s==="]"?e.state=l.CDATA_ENDING:e.cdata+=s;continue;case l.CDATA_ENDING:s==="]"?e.state=l.CDATA_ENDING_2:(e.cdata+="]"+s,e.state=l.CDATA);continue;case l.CDATA_ENDING_2:s===">"?(e.cdata&&G(e,"oncdata",e.cdata),G(e,"onclosecdata"),e.cdata="",e.state=l.TEXT):s==="]"?e.cdata+="]":(e.cdata+="]]"+s,e.state=l.CDATA);continue;case l.PROC_INST:s==="?"?e.state=l.PROC_INST_ENDING:h(s)?e.state=l.PROC_INST_BODY:e.procInstName+=s;continue;case l.PROC_INST_BODY:if(!e.procInstBody&&h(s))continue;s==="?"?e.state=l.PROC_INST_ENDING:e.procInstBody+=s;continue;case l.PROC_INST_ENDING:s===">"?(G(e,"onprocessinginstruction",{name:e.procInstName,body:e.procInstBody}),e.procInstName=e.procInstBody="",e.state=l.TEXT):(e.procInstBody+="?"+s,e.state=l.PROC_INST_BODY);continue;case l.OPEN_TAG:F(L,s)?e.tagName+=s:(Z(e),s===">"?ee(e):s==="/"?e.state=l.OPEN_TAG_SLASH:(h(s)||W(e,"Invalid character in tag name"),e.state=l.ATTRIB));continue;case l.OPEN_TAG_SLASH:s===">"?(ee(e,!0),te(e)):(W(e,"Forward-slash in opening tag not followed by >"),e.state=l.ATTRIB);continue;case l.ATTRIB:if(h(s))continue;s===">"?ee(e):s==="/"?e.state=l.OPEN_TAG_SLASH:F(I,s)?(e.attribName=s,e.attribValue="",e.state=l.ATTRIB_NAME):W(e,"Invalid attribute name");continue;case l.ATTRIB_NAME:s==="="?e.state=l.ATTRIB_VALUE:s===">"?(W(e,"Attribute without value"),e.attribValue=e.attribName,z(e),ee(e)):h(s)?e.state=l.ATTRIB_NAME_SAW_WHITE:F(L,s)?e.attribName+=s:W(e,"Invalid attribute name");continue;case l.ATTRIB_NAME_SAW_WHITE:if(s==="=")e.state=l.ATTRIB_VALUE;else{if(h(s))continue;W(e,"Attribute without value"),e.tag.attributes[e.attribName]="",e.attribValue="",G(e,"onattribute",{name:e.attribName,value:""}),e.attribName="",s===">"?ee(e):F(I,s)?(e.attribName=s,e.state=l.ATTRIB_NAME):(W(e,"Invalid attribute name"),e.state=l.ATTRIB)}continue;case l.ATTRIB_VALUE:if(h(s))continue;S(s)?(e.q=s,e.state=l.ATTRIB_VALUE_QUOTED):(e.opt.unquotedAttributeValues||K(e,"Unquoted attribute value"),e.state=l.ATTRIB_VALUE_UNQUOTED,e.attribValue=s);continue;case l.ATTRIB_VALUE_QUOTED:if(s!==e.q){s==="&"?e.state=l.ATTRIB_VALUE_ENTITY_Q:e.attribValue+=s;continue}z(e),e.q="",e.state=l.ATTRIB_VALUE_CLOSED;continue;case l.ATTRIB_VALUE_CLOSED:h(s)?e.state=l.ATTRIB:s===">"?ee(e):s==="/"?e.state=l.OPEN_TAG_SLASH:F(I,s)?(W(e,"No whitespace between attributes"),e.attribName=s,e.attribValue="",e.state=l.ATTRIB_NAME):W(e,"Invalid attribute name");continue;case l.ATTRIB_VALUE_UNQUOTED:if(!O(s)){s==="&"?e.state=l.ATTRIB_VALUE_ENTITY_U:e.attribValue+=s;continue}z(e),s===">"?ee(e):e.state=l.ATTRIB;continue;case l.CLOSE_TAG:if(e.tagName)s===">"?te(e):F(L,s)?e.tagName+=s:e.script?(e.script+=""?te(e):W(e,"Invalid characters in closing tag");continue;case l.TEXT_ENTITY:case l.ATTRIB_VALUE_ENTITY_Q:case l.ATTRIB_VALUE_ENTITY_U:var A,j;switch(e.state){case l.TEXT_ENTITY:A=l.TEXT,j="textNode";break;case l.ATTRIB_VALUE_ENTITY_Q:A=l.ATTRIB_VALUE_QUOTED,j="attribValue";break;case l.ATTRIB_VALUE_ENTITY_U:A=l.ATTRIB_VALUE_UNQUOTED,j="attribValue";break}if(s===";"){var U=w(e);e.opt.unparsedEntities&&!Object.values(n.XML_ENTITIES).includes(U)?(e.entity="",e.state=A,e.write(U)):(e[j]+=U,e.entity="",e.state=A)}else F(e.entity.length?C:D,s)?e.entity+=s:(W(e,"Invalid character in entity name"),e[j]+="&"+e.entity+s,e.entity="",e.state=A);continue;default:throw new Error(e,"Unknown state: "+e.state)}return e.position>=e.bufferCheckPosition&&_(e),e}String.fromCodePoint||(function(){var r=String.fromCharCode,e=Math.floor,p=function(){var s=16384,i=[],o,A,j=-1,U=arguments.length;if(!U)return"";for(var B="";++j1114111||e($)!==$)throw RangeError("Invalid code point: "+$);$<=65535?i.push($):($-=65536,o=($>>10)+55296,A=$%1024+56320,i.push(o,A)),(j+1===U||i.length>s)&&(B+=r.apply(null,i),i.length=0)}return B};Object.defineProperty?Object.defineProperty(String,"fromCodePoint",{value:p,configurable:!0,writable:!0}):String.fromCodePoint=p})()})(t)})(Bt)),Bt}var mo=yo();const go=gi(mo),bo={"http://www.w3.org/2000/svg":{ext:"svg",mime:"image/svg+xml"},"http://www.w3.org/1999/xhtml":{ext:"xhtml",mime:"application/xhtml+xml"},"http://www.opengis.net/kml/2.2":{ext:"kml",mime:"application/vnd.google-earth.kml+xml"},"http://www.opengis.net/gml":{ext:"gml",mime:"application/gml+xml"}},Eo={rss:{ext:"rss",mime:"application/rss+xml"},"score-partwise":{ext:"musicxml",mime:"application/vnd.recordare.musicxml+xml"},svg:{ext:"svg",mime:"image/svg+xml"}};class vo{constructor(n){this.options=n??{},this.firstTag=!0,this.onEnd=!1,this.parser=go.parser(!0,{xmlns:!0}),this.nesting=0,this.parser.onerror=c=>{c.message.startsWith("Invalid character entity")||(this.fileType=void 0,this.onEnd=!0)},this.parser.onopentag=c=>{++this.nesting,!(!this.firstTag||this.onEnd)&&(this.firstTag=!1,c.uri?this.fileType=bo[c.uri]:c.name&&(this.fileType=Eo[c.name.toLowerCase()]),this.fileType&&!this.options.fullScan&&(this.onEnd=!0))},this.parser.onclosetag=()=>{--this.nesting}}write(n){this.parser.write(n)}close(){this.parser.close(),this.onEnd=!0}isValid(){return this.nesting===0}}function li(t,{validate:n=!0}={}){if(typeof t!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof t}\``);if(t=t.trim(),t.length===0)return!1;const c=new vo({fullScan:n});if(n){if(c.write(t),!c.isValid())return!1}else{let y=0;for(;t.length>y&&!c.onEnd;)c.write(t.slice(y,Math.min(y+128,t.length))),y+=128}return c.fileType?.ext==="svg"}var Et={};const wo=Object.freeze({DEFAULT:"default",HIDDEN:"hidden"});class Mo{_action;constructor(n){this.validateAction(n),this._action=n}get id(){return this._action.id}get displayName(){return this._action.displayName}get title(){return this._action.title}get iconSvgInline(){return this._action.iconSvgInline}get enabled(){return this._action.enabled}get exec(){return this._action.exec}get execBatch(){return this._action.execBatch}get hotkey(){return this._action.hotkey}get order(){return this._action.order}get parent(){return this._action.parent}get default(){return this._action.default}get destructive(){return this._action.destructive}get inline(){return this._action.inline}get renderInline(){return this._action.renderInline}validateAction(n){if(!n.id||typeof n.id!="string")throw new Error("Invalid id");if(!n.displayName||typeof n.displayName!="function")throw new Error("Invalid displayName function");if("title"in n&&typeof n.title!="function")throw new Error("Invalid title function");if(!n.iconSvgInline||typeof n.iconSvgInline!="function")throw new Error("Invalid iconSvgInline function");if(!n.exec||typeof n.exec!="function")throw new Error("Invalid exec function");if("enabled"in n&&typeof n.enabled!="function")throw new Error("Invalid enabled function");if("execBatch"in n&&typeof n.execBatch!="function")throw new Error("Invalid execBatch function");if("order"in n&&typeof n.order!="number")throw new Error("Invalid order");if(n.destructive!==void 0&&typeof n.destructive!="boolean")throw new Error("Invalid destructive flag");if("parent"in n&&typeof n.parent!="string")throw new Error("Invalid parent");if(n.default&&!Object.values(wo).includes(n.default))throw new Error("Invalid default");if("inline"in n&&typeof n.inline!="function")throw new Error("Invalid inline function");if("renderInline"in n&&typeof n.renderInline!="function")throw new Error("Invalid renderInline function");if("hotkey"in n&&n.hotkey!==void 0){if(typeof n.hotkey!="object")throw new Error("Invalid hotkey configuration");if(typeof n.hotkey.key!="string"||!n.hotkey.key)throw new Error("Missing or invalid hotkey key");if(typeof n.hotkey.description!="string"||!n.hotkey.description)throw new Error("Missing or invalid hotkey description")}}}function Fo(t){if(typeof window._nc_fileactions>"u"&&(window._nc_fileactions=[],de.debug("FileActions initialized")),window._nc_fileactions.find(n=>n.id===t.id)){de.error(`FileAction ${t.id} already registered`,{action:t});return}window._nc_fileactions.push(t)}class ko{_action;constructor(n){this.validateAction(n),this._action=n}get id(){return this._action.id}get displayName(){return this._action.displayName}get iconSvgInline(){return this._action.iconSvgInline}get order(){return this._action.order}get enabled(){return this._action.enabled}get exec(){return this._action.exec}validateAction(n){if(!n.id||typeof n.id!="string")throw new Error("Invalid id");if(!n.displayName||typeof n.displayName!="function")throw new Error("Invalid displayName function");if("iconSvgInline"in n&&typeof n.iconSvgInline!="function")throw new Error("Invalid iconSvgInline function");if("order"in n&&typeof n.order!="number")throw new Error("Invalid order");if("enabled"in n&&typeof n.enabled!="function")throw new Error("Invalid enabled function");if(!n.exec||typeof n.exec!="function")throw new Error("Invalid exec function")}}function Uo(t){if(typeof window._nc_filelistactions>"u"&&(window._nc_filelistactions=[]),window._nc_filelistactions.find(n=>n.id===t.id)){de.error(`FileListAction with id "${t.id}" is already registered`,{action:t});return}window._nc_filelistactions.push(t)}var Mn,Fn;function fi(){return Fn||(Fn=1,Mn=typeof X=="object"&&Et&&Et.NODE_DEBUG&&/\bsemver\b/i.test(Et.NODE_DEBUG)?(...t)=>console.error("SEMVER",...t):()=>{}),Mn}var vt,kn;function pi(){if(kn)return vt;kn=1;const t="2.0.0",n=256,c=Number.MAX_SAFE_INTEGER||9007199254740991,y=16,_=n-6;return vt={MAX_LENGTH:n,MAX_SAFE_COMPONENT_LENGTH:y,MAX_SAFE_BUILD_LENGTH:_,MAX_SAFE_INTEGER:c,RELEASE_TYPES:["major","premajor","minor","preminor","patch","prepatch","prerelease"],SEMVER_SPEC_VERSION:t,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2},vt}var wt={exports:{}},Un;function _o(){return Un||(Un=1,(function(t,n){const{MAX_SAFE_COMPONENT_LENGTH:c,MAX_SAFE_BUILD_LENGTH:y,MAX_LENGTH:_}=pi(),d=fi();n=t.exports={};const E=n.re=[],f=n.safeRe=[],a=n.src=[],g=n.safeSrc=[],u=n.t={};let v=0;const T="[a-zA-Z0-9-]",M=[["\\s",1],["\\d",_],[T,y]],P=I=>{for(const[L,D]of M)I=I.split(`${L}*`).join(`${L}{0,${D}}`).split(`${L}+`).join(`${L}{1,${D}}`);return I},b=(I,L,D)=>{const C=P(L),h=v++;d(I,h,L),u[I]=h,a[h]=L,g[h]=C,E[h]=new RegExp(L,D?"g":void 0),f[h]=new RegExp(C,D?"g":void 0)};b("NUMERICIDENTIFIER","0|[1-9]\\d*"),b("NUMERICIDENTIFIERLOOSE","\\d+"),b("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${T}*`),b("MAINVERSION",`(${a[u.NUMERICIDENTIFIER]})\\.(${a[u.NUMERICIDENTIFIER]})\\.(${a[u.NUMERICIDENTIFIER]})`),b("MAINVERSIONLOOSE",`(${a[u.NUMERICIDENTIFIERLOOSE]})\\.(${a[u.NUMERICIDENTIFIERLOOSE]})\\.(${a[u.NUMERICIDENTIFIERLOOSE]})`),b("PRERELEASEIDENTIFIER",`(?:${a[u.NONNUMERICIDENTIFIER]}|${a[u.NUMERICIDENTIFIER]})`),b("PRERELEASEIDENTIFIERLOOSE",`(?:${a[u.NONNUMERICIDENTIFIER]}|${a[u.NUMERICIDENTIFIERLOOSE]})`),b("PRERELEASE",`(?:-(${a[u.PRERELEASEIDENTIFIER]}(?:\\.${a[u.PRERELEASEIDENTIFIER]})*))`),b("PRERELEASELOOSE",`(?:-?(${a[u.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${a[u.PRERELEASEIDENTIFIERLOOSE]})*))`),b("BUILDIDENTIFIER",`${T}+`),b("BUILD",`(?:\\+(${a[u.BUILDIDENTIFIER]}(?:\\.${a[u.BUILDIDENTIFIER]})*))`),b("FULLPLAIN",`v?${a[u.MAINVERSION]}${a[u.PRERELEASE]}?${a[u.BUILD]}?`),b("FULL",`^${a[u.FULLPLAIN]}$`),b("LOOSEPLAIN",`[v=\\s]*${a[u.MAINVERSIONLOOSE]}${a[u.PRERELEASELOOSE]}?${a[u.BUILD]}?`),b("LOOSE",`^${a[u.LOOSEPLAIN]}$`),b("GTLT","((?:<|>)?=?)"),b("XRANGEIDENTIFIERLOOSE",`${a[u.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),b("XRANGEIDENTIFIER",`${a[u.NUMERICIDENTIFIER]}|x|X|\\*`),b("XRANGEPLAIN",`[v=\\s]*(${a[u.XRANGEIDENTIFIER]})(?:\\.(${a[u.XRANGEIDENTIFIER]})(?:\\.(${a[u.XRANGEIDENTIFIER]})(?:${a[u.PRERELEASE]})?${a[u.BUILD]}?)?)?`),b("XRANGEPLAINLOOSE",`[v=\\s]*(${a[u.XRANGEIDENTIFIERLOOSE]})(?:\\.(${a[u.XRANGEIDENTIFIERLOOSE]})(?:\\.(${a[u.XRANGEIDENTIFIERLOOSE]})(?:${a[u.PRERELEASELOOSE]})?${a[u.BUILD]}?)?)?`),b("XRANGE",`^${a[u.GTLT]}\\s*${a[u.XRANGEPLAIN]}$`),b("XRANGELOOSE",`^${a[u.GTLT]}\\s*${a[u.XRANGEPLAINLOOSE]}$`),b("COERCEPLAIN",`(^|[^\\d])(\\d{1,${c}})(?:\\.(\\d{1,${c}}))?(?:\\.(\\d{1,${c}}))?`),b("COERCE",`${a[u.COERCEPLAIN]}(?:$|[^\\d])`),b("COERCEFULL",a[u.COERCEPLAIN]+`(?:${a[u.PRERELEASE]})?(?:${a[u.BUILD]})?(?:$|[^\\d])`),b("COERCERTL",a[u.COERCE],!0),b("COERCERTLFULL",a[u.COERCEFULL],!0),b("LONETILDE","(?:~>?)"),b("TILDETRIM",`(\\s*)${a[u.LONETILDE]}\\s+`,!0),n.tildeTrimReplace="$1~",b("TILDE",`^${a[u.LONETILDE]}${a[u.XRANGEPLAIN]}$`),b("TILDELOOSE",`^${a[u.LONETILDE]}${a[u.XRANGEPLAINLOOSE]}$`),b("LONECARET","(?:\\^)"),b("CARETTRIM",`(\\s*)${a[u.LONECARET]}\\s+`,!0),n.caretTrimReplace="$1^",b("CARET",`^${a[u.LONECARET]}${a[u.XRANGEPLAIN]}$`),b("CARETLOOSE",`^${a[u.LONECARET]}${a[u.XRANGEPLAINLOOSE]}$`),b("COMPARATORLOOSE",`^${a[u.GTLT]}\\s*(${a[u.LOOSEPLAIN]})$|^$`),b("COMPARATOR",`^${a[u.GTLT]}\\s*(${a[u.FULLPLAIN]})$|^$`),b("COMPARATORTRIM",`(\\s*)${a[u.GTLT]}\\s*(${a[u.LOOSEPLAIN]}|${a[u.XRANGEPLAIN]})`,!0),n.comparatorTrimReplace="$1$2$3",b("HYPHENRANGE",`^\\s*(${a[u.XRANGEPLAIN]})\\s+-\\s+(${a[u.XRANGEPLAIN]})\\s*$`),b("HYPHENRANGELOOSE",`^\\s*(${a[u.XRANGEPLAINLOOSE]})\\s+-\\s+(${a[u.XRANGEPLAINLOOSE]})\\s*$`),b("STAR","(<|>)?=?\\s*\\*"),b("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),b("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")})(wt,wt.exports)),wt.exports}var _t,Bn;function So(){if(Bn)return _t;Bn=1;const t=Object.freeze({loose:!0}),n=Object.freeze({});return _t=c=>c?typeof c!="object"?t:c:n,_t}var St,$n;function To(){if($n)return St;$n=1;const t=/^[0-9]+$/,n=(c,y)=>{if(typeof c=="number"&&typeof y=="number")return c===y?0:cn(y,c)},St}var Tt,Gn;function di(){if(Gn)return Tt;Gn=1;const t=fi(),{MAX_LENGTH:n,MAX_SAFE_INTEGER:c}=pi(),{safeRe:y,t:_}=_o(),d=So(),{compareIdentifiers:E}=To();class f{constructor(g,u){if(u=d(u),g instanceof f){if(g.loose===!!u.loose&&g.includePrerelease===!!u.includePrerelease)return g;g=g.version}else if(typeof g!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof g}".`);if(g.length>n)throw new TypeError(`version is longer than ${n} characters`);t("SemVer",g,u),this.options=u,this.loose=!!u.loose,this.includePrerelease=!!u.includePrerelease;const v=g.trim().match(u.loose?y[_.LOOSE]:y[_.FULL]);if(!v)throw new TypeError(`Invalid Version: ${g}`);if(this.raw=g,this.major=+v[1],this.minor=+v[2],this.patch=+v[3],this.major>c||this.major<0)throw new TypeError("Invalid major version");if(this.minor>c||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>c||this.patch<0)throw new TypeError("Invalid patch version");v[4]?this.prerelease=v[4].split(".").map(T=>{if(/^[0-9]+$/.test(T)){const M=+T;if(M>=0&&Mg.major?1:this.minorg.minor?1:this.patchg.patch?1:0}comparePre(g){if(g instanceof f||(g=new f(g,this.options)),this.prerelease.length&&!g.prerelease.length)return-1;if(!this.prerelease.length&&g.prerelease.length)return 1;if(!this.prerelease.length&&!g.prerelease.length)return 0;let u=0;do{const v=this.prerelease[u],T=g.prerelease[u];if(t("prerelease compare",u,v,T),v===void 0&&T===void 0)return 0;if(T===void 0)return 1;if(v===void 0)return-1;if(v!==T)return E(v,T)}while(++u)}compareBuild(g){g instanceof f||(g=new f(g,this.options));let u=0;do{const v=this.build[u],T=g.build[u];if(t("build compare",u,v,T),v===void 0&&T===void 0)return 0;if(T===void 0)return 1;if(v===void 0)return-1;if(v!==T)return E(v,T)}while(++u)}inc(g,u,v){if(g.startsWith("pre")){if(!u&&v===!1)throw new Error("invalid increment argument: identifier is empty");if(u){const T=`-${u}`.match(this.options.loose?y[_.PRERELEASELOOSE]:y[_.PRERELEASE]);if(!T||T[1]!==u)throw new Error(`invalid identifier: ${u}`)}}switch(g){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",u,v);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",u,v);break;case"prepatch":this.prerelease.length=0,this.inc("patch",u,v),this.inc("pre",u,v);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",u,v),this.inc("pre",u,v);break;case"release":if(this.prerelease.length===0)throw new Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{const T=Number(v)?1:0;if(this.prerelease.length===0)this.prerelease=[T];else{let M=this.prerelease.length;for(;--M>=0;)typeof this.prerelease[M]=="number"&&(this.prerelease[M]++,M=-2);if(M===-1){if(u===this.prerelease.join(".")&&v===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(T)}}if(u){let M=[u,T];v===!1&&(M=[u]),E(this.prerelease[0],u)===0?isNaN(this.prerelease[1])&&(this.prerelease=M):this.prerelease=M}break}default:throw new Error(`invalid increment argument: ${g}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}}return Tt=f,Tt}var At,Vn;function Ao(){if(Vn)return At;Vn=1;const t=di();return At=(n,c)=>new t(n,c).major,At}Ao();var It,Wn;function Io(){if(Wn)return It;Wn=1;const t=di();return It=(n,c,y=!1)=>{if(n instanceof t)return n;try{return new t(n,c)}catch(_){if(!y)return null;throw _}},It}var Rt,qn;function Ro(){if(qn)return Rt;qn=1;const t=Io();return Rt=(n,c)=>{const y=t(n,c);return y?y.version:null},Rt}Ro();function ie(t,n,c){if(typeof t[n]<"u")if(c==="array"){if(!Array.isArray(t[n]))throw new Error(`View ${n} must be an array`)}else{if(typeof t[n]!==c)throw new Error(`View ${n} must be a ${c}`);if(c==="object"&&(t[n]===null||Array.isArray(t[n])))throw new Error(`View ${n} must be an object`)}}class Bo{_column;constructor(n){hi(n),this._column=n}get id(){return this._column.id}get title(){return this._column.title}get render(){return this._column.render}get sort(){return this._column.sort}get summary(){return this._column.summary}}function hi(t){if(typeof t!="object"||t===null)throw new Error("View column must be an object");if(!t.id||typeof t.id!="string")throw new Error("A column id is required");if(!t.title||typeof t.title!="string")throw new Error("A column title is required");if(!t.render||typeof t.render!="function")throw new Error("A render function is required");ie(t,"sort","function"),ie(t,"summary","function")}class $o{_view;constructor(n){yi(n),this._view=n}get id(){return this._view.id}get name(){return this._view.name}get caption(){return this._view.caption}get emptyTitle(){return this._view.emptyTitle}get emptyCaption(){return this._view.emptyCaption}get getContents(){return this._view.getContents}get hidden(){return this._view.hidden}get icon(){return this._view.icon}set icon(n){this._view.icon=n}get order(){return this._view.order}set order(n){this._view.order=n}get params(){return this._view.params}set params(n){this._view.params=n}get columns(){return this._view.columns}get emptyView(){return this._view.emptyView}get parent(){return this._view.parent}get sticky(){return this._view.sticky}get expanded(){return this._view.expanded}set expanded(n){this._view.expanded=n}get defaultSortKey(){return this._view.defaultSortKey}get loadChildViews(){return this._view.loadChildViews}}function yi(t){if(!t.icon||typeof t.icon!="string"||!li(t.icon))throw new Error("View icon is required and must be a valid svg string");if(!t.id||typeof t.id!="string")throw new Error("View id is required and must be a string");if(!t.getContents||typeof t.getContents!="function")throw new Error("View getContents is required and must be a function");if(!t.name||typeof t.name!="string")throw new Error("View name is required and must be a string");if(ie(t,"caption","string"),ie(t,"columns","array"),ie(t,"defaultSortKey","string"),ie(t,"emptyCaption","string"),ie(t,"emptyTitle","string"),ie(t,"emptyView","function"),ie(t,"expanded","boolean"),ie(t,"hidden","boolean"),ie(t,"loadChildViews","function"),ie(t,"order","number"),ie(t,"params","object"),ie(t,"parent","string"),ie(t,"sticky","boolean"),t.columns&&(t.columns.forEach(hi),t.columns.reduce((n,c)=>n.add(c.id),new Set).size!==t.columns.length))throw new Error("View columns must have unique ids")}class Oo extends Ai{_views=[];_currentView=null;register(n){if(this._views.find(c=>c.id===n.id))throw new Error(`IView id ${n.id} is already registered`);yi(n),this._views.push(n),this.dispatchTypedEvent("update",new CustomEvent("update"))}remove(n){const c=this._views.findIndex(y=>y.id===n);c!==-1&&(this._views.splice(c,1),this.dispatchTypedEvent("update",new CustomEvent("update")))}setActive(n){if(n===null)this._currentView=null;else{const y=this._views.find(({id:_})=>_===n);if(!y)throw new Error(`No view with ${n} registered`);this._currentView=y}const c=new CustomEvent("updateActive",{detail:this._currentView});this.dispatchTypedEvent("updateActive",c)}get active(){return this._currentView}get views(){return this._views}}function Go(){return typeof window._nc_navigation>"u"&&(window._nc_navigation=new Oo,de.debug("Navigation service initialized")),window._nc_navigation}function Vo(t){if(No(t),window._nc_files_sidebar_tabs??=new Map,window._nc_files_sidebar_tabs.has(t.id)){de.warn(`Sidebar tab with id "${t.id}" already registered. Skipping.`);return}window._nc_files_sidebar_tabs.set(t.id,t),de.debug(`New sidebar tab with id "${t.id}" registered.`)}function No(t){if(typeof t!="object")throw new Error("Sidebar tab is not an object");if(!t.id||typeof t.id!="string"||t.id!==CSS.escape(t.id))throw new Error("Sidebar tabs need to have an id conforming to the HTML id attribute specifications");if(!t.tagName||typeof t.tagName!="string")throw new Error("Sidebar tabs need to have the tagName name set");if(!t.tagName.match(/^[a-z][a-z0-9-_]+$/))throw new Error("Sidebar tabs tagName name is invalid");if(!t.displayName||typeof t.displayName!="string")throw new Error("Sidebar tabs need to have a name set");if(typeof t.iconSvgInline!="string"||!li(t.iconSvgInline))throw new Error("Sidebar tabs need to have an valid SVG icon");if(typeof t.order!="number")throw new Error("Sidebar tabs need to have a numeric order set");if(typeof t.enabled!="function")throw new Error('Sidebar tabs need to have an "enabled" method')}const Ot=["B","KB","MB","GB","TB","PB"],Nt=["B","KiB","MiB","GiB","TiB","PiB"];function Wo(t,n=!1,c=!1,y=!1){c=c&&!y,typeof t=="string"&&(t=Number(t));let _=t>0?Math.floor(Math.log(t)/Math.log(y?1e3:1024)):0;_=Math.min((c?Nt.length:Ot.length)-1,_);const d=c?Nt[_]:Ot[_];let E=(t/Math.pow(y?1e3:1024,_)).toFixed(1);return n===!0&&_===0?(E!=="0.0"?"< 1 ":"0 ")+(c?Nt[1]:Ot[1]):(_<2?E=parseFloat(E).toFixed(0):E=parseFloat(E).toLocaleString(wi()),E+" "+d)}export{Bo as C,wo as D,Xn as F,Ti as N,_e as P,$o as V,Co as a,xo as b,Mo as c,ko as d,Uo as e,Fo as f,Go as g,Wo as h,de as l,Vo as r}; -//# sourceMappingURL=index-BKfQ4diD.chunk.mjs.map +//# sourceMappingURL=index-CfoF28kA.chunk.mjs.map diff --git a/dist/index-BKfQ4diD.chunk.mjs.license b/dist/index-CfoF28kA.chunk.mjs.license similarity index 100% rename from dist/index-BKfQ4diD.chunk.mjs.license rename to dist/index-CfoF28kA.chunk.mjs.license diff --git a/dist/index-BKfQ4diD.chunk.mjs.map b/dist/index-CfoF28kA.chunk.mjs.map similarity index 99% rename from dist/index-BKfQ4diD.chunk.mjs.map rename to dist/index-CfoF28kA.chunk.mjs.map index a83c796239fbf..cdf7b9ed71d5f 100644 --- a/dist/index-BKfQ4diD.chunk.mjs.map +++ b/dist/index-CfoF28kA.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"index-BKfQ4diD.chunk.mjs","sources":["../node_modules/@nextcloud/files/dist/chunks/folder-CeyZUHai.mjs","../node_modules/typescript-event-target/dist/index.mjs","../node_modules/events/events.js","../node_modules/inherits/inherits_browser.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/stream-browser.js","../node_modules/has-symbols/shams.js","../node_modules/has-tostringtag/shams.js","../node_modules/es-object-atoms/index.js","../node_modules/es-errors/index.js","../node_modules/es-errors/eval.js","../node_modules/es-errors/range.js","../node_modules/es-errors/ref.js","../node_modules/es-errors/syntax.js","../node_modules/es-errors/type.js","../node_modules/es-errors/uri.js","../node_modules/math-intrinsics/abs.js","../node_modules/math-intrinsics/floor.js","../node_modules/math-intrinsics/max.js","../node_modules/math-intrinsics/min.js","../node_modules/math-intrinsics/pow.js","../node_modules/math-intrinsics/round.js","../node_modules/math-intrinsics/isNaN.js","../node_modules/math-intrinsics/sign.js","../node_modules/gopd/gOPD.js","../node_modules/gopd/index.js","../node_modules/es-define-property/index.js","../node_modules/has-symbols/index.js","../node_modules/get-proto/Reflect.getPrototypeOf.js","../node_modules/get-proto/Object.getPrototypeOf.js","../node_modules/function-bind/implementation.js","../node_modules/function-bind/index.js","../node_modules/call-bind-apply-helpers/functionCall.js","../node_modules/call-bind-apply-helpers/functionApply.js","../node_modules/call-bind-apply-helpers/reflectApply.js","../node_modules/call-bind-apply-helpers/actualApply.js","../node_modules/call-bind-apply-helpers/index.js","../node_modules/dunder-proto/get.js","../node_modules/get-proto/index.js","../node_modules/hasown/index.js","../node_modules/get-intrinsic/index.js","../node_modules/call-bound/index.js","../node_modules/is-arguments/index.js","../node_modules/is-regex/index.js","../node_modules/safe-regex-test/index.js","../node_modules/generator-function/index.js","../node_modules/is-generator-function/index.js","../node_modules/is-callable/index.js","../node_modules/for-each/index.js","../node_modules/possible-typed-array-names/index.js","../node_modules/available-typed-arrays/index.js","../node_modules/define-data-property/index.js","../node_modules/has-property-descriptors/index.js","../node_modules/set-function-length/index.js","../node_modules/call-bind-apply-helpers/applyBind.js","../node_modules/call-bind/index.js","../node_modules/which-typed-array/index.js","../node_modules/is-typed-array/index.js","../node_modules/util/support/types.js","../node_modules/util/support/isBufferBrowser.js","../node_modules/util/util.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/buffer_list.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/destroy.js","../node_modules/stream-browserify/node_modules/readable-stream/errors-browser.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/state.js","../node_modules/util-deprecate/browser.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_writable.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_duplex.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/async_iterator.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/from-browser.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_readable.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_transform.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_passthrough.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/pipeline.js","../node_modules/stream-browserify/index.js","../node_modules/sax/lib/sax.js","../node_modules/@file-type/xml/lib/index.js","../node_modules/is-svg/index.js","../node_modules/@nextcloud/files/dist/index.mjs"],"sourcesContent":["import { getLoggerBuilder } from \"@nextcloud/logger\";\nimport { join, encodePath, basename, extname, dirname } from \"@nextcloud/paths\";\nconst logger = getLoggerBuilder().setApp(\"@nextcloud/files\").detectUser().build();\nconst FileType = Object.freeze({\n Folder: \"folder\",\n File: \"file\"\n});\nconst Permission = Object.freeze({\n /**\n * No permissions granted\n */\n NONE: 0,\n /**\n * Can read the file content\n */\n READ: 1,\n /**\n * Can modify the file itself (move, rename, etc)\n */\n UPDATE: 2,\n /**\n * Can create new files/folders inside a folder\n */\n CREATE: 4,\n /**\n * Can change the file content\n */\n WRITE: 4,\n /**\n * Can delete the node\n */\n DELETE: 8,\n /**\n * Can share the node\n */\n SHARE: 16,\n /**\n * All permissions are granted\n */\n ALL: 31\n});\nfunction isDavResource(source, davService) {\n return source.match(davService) !== null;\n}\nfunction validateData(data, davService) {\n if (data.id && typeof data.id !== \"number\") {\n throw new Error(\"Invalid id type of value\");\n }\n if (!data.source) {\n throw new Error(\"Missing mandatory source\");\n }\n try {\n new URL(data.source);\n } catch {\n throw new Error(\"Invalid source format, source must be a valid URL\");\n }\n if (!data.source.startsWith(\"http\")) {\n throw new Error(\"Invalid source format, only http(s) is supported\");\n }\n if (!data.root) {\n throw new Error(\"Missing mandatory root\");\n }\n if (typeof data.root !== \"string\") {\n throw new Error(\"Invalid root type\");\n }\n if (!data.root.startsWith(\"/\")) {\n throw new Error(\"Root must start with a leading slash\");\n }\n if (!data.source.includes(data.root)) {\n throw new Error(\"Root must be part of the source\");\n }\n if (isDavResource(data.source, davService)) {\n const service = data.source.match(davService)[0];\n if (!data.source.includes(join(service, data.root))) {\n throw new Error(\"The root must be relative to the service. e.g /files/emma\");\n }\n }\n if (data.displayname && typeof data.displayname !== \"string\") {\n throw new Error(\"Invalid displayname type\");\n }\n if (data.mtime && !(data.mtime instanceof Date)) {\n throw new Error(\"Invalid mtime type\");\n }\n if (data.crtime && !(data.crtime instanceof Date)) {\n throw new Error(\"Invalid crtime type\");\n }\n if (!data.mime || typeof data.mime !== \"string\" || !data.mime.match(/^[-\\w.]+\\/[-+\\w.]+$/gi)) {\n throw new Error(\"Missing or invalid mandatory mime\");\n }\n if (\"size\" in data && typeof data.size !== \"number\" && data.size !== void 0) {\n throw new Error(\"Invalid size type\");\n }\n if (\"permissions\" in data && data.permissions !== void 0 && !(typeof data.permissions === \"number\" && data.permissions >= Permission.NONE && data.permissions <= Permission.ALL)) {\n throw new Error(\"Invalid permissions\");\n }\n if (data.owner && data.owner !== null && typeof data.owner !== \"string\") {\n throw new Error(\"Invalid owner type\");\n }\n if (data.attributes && typeof data.attributes !== \"object\") {\n throw new Error(\"Invalid attributes type\");\n }\n if (data.status && !Object.values(NodeStatus).includes(data.status)) {\n throw new Error(\"Status must be a valid NodeStatus\");\n }\n}\nfunction fixDates(data) {\n if (data.mtime && typeof data.mtime === \"string\") {\n if (!isNaN(Date.parse(data.mtime)) && JSON.stringify(new Date(data.mtime)) === JSON.stringify(data.mtime)) {\n data.mtime = new Date(data.mtime);\n }\n }\n if (data.crtime && typeof data.crtime === \"string\") {\n if (!isNaN(Date.parse(data.crtime)) && JSON.stringify(new Date(data.crtime)) === JSON.stringify(data.crtime)) {\n data.crtime = new Date(data.crtime);\n }\n }\n}\nfunction fixRegExp(pattern) {\n if (pattern instanceof RegExp) {\n return pattern;\n }\n const matches = pattern.match(/(\\/?)(.+)\\1([a-z]*)/i);\n if (!matches) {\n throw new Error(\"Invalid regular expression format.\");\n }\n const validFlags = Array.from(new Set(matches[3])).filter((flag) => \"gimsuy\".includes(flag)).join(\"\");\n return new RegExp(matches[2], validFlags);\n}\nconst NodeStatus = Object.freeze({\n /** This is a new node and it doesn't exists on the filesystem yet */\n NEW: \"new\",\n /** This node has failed and is unavailable */\n FAILED: \"failed\",\n /** This node is currently loading or have an operation in progress */\n LOADING: \"loading\",\n /** This node is locked and cannot be modified */\n LOCKED: \"locked\"\n});\nclass Node {\n _attributes;\n _data;\n _knownDavService = /(remote|public)\\.php\\/(web)?dav/i;\n readonlyAttributes = Object.entries(Object.getOwnPropertyDescriptors(Node.prototype)).filter((e) => typeof e[1].get === \"function\" && e[0] !== \"__proto__\").map((e) => e[0]);\n handler = {\n set: (target, prop, value) => {\n if (this.readonlyAttributes.includes(prop)) {\n return false;\n }\n return Reflect.set(target, prop, value);\n },\n deleteProperty: (target, prop) => {\n if (this.readonlyAttributes.includes(prop)) {\n return false;\n }\n return Reflect.deleteProperty(target, prop);\n }\n };\n constructor(...[data, davService]) {\n if (!data.mime) {\n data.mime = \"application/octet-stream\";\n }\n fixDates(data);\n davService = fixRegExp(davService || this._knownDavService);\n validateData(data, davService);\n this._data = {\n ...data,\n attributes: {}\n };\n this._attributes = new Proxy(this._data.attributes, this.handler);\n this.update(data.attributes ?? {});\n if (davService) {\n this._knownDavService = davService;\n }\n }\n /**\n * Get the source url to this object\n * There is no setter as the source is not meant to be changed manually.\n * You can use the rename or move method to change the source.\n */\n get source() {\n return this._data.source.replace(/\\/$/i, \"\");\n }\n /**\n * Get the encoded source url to this object for requests purposes\n */\n get encodedSource() {\n const { origin } = new URL(this.source);\n return origin + encodePath(this.source.slice(origin.length));\n }\n /**\n * Get this object name\n * There is no setter as the source is not meant to be changed manually.\n * You can use the rename or move method to change the source.\n */\n get basename() {\n return basename(this.source);\n }\n /**\n * The nodes displayname\n * By default the display name and the `basename` are identical,\n * but it is possible to have a different name. This happens\n * on the files app for example for shared folders.\n */\n get displayname() {\n return this._data.displayname || this.basename;\n }\n /**\n * Set the displayname\n */\n set displayname(displayname) {\n validateData({ ...this._data, displayname }, this._knownDavService);\n this._data.displayname = displayname;\n }\n /**\n * Get this object's extension\n * There is no setter as the source is not meant to be changed manually.\n * You can use the rename or move method to change the source.\n */\n get extension() {\n return extname(this.source);\n }\n /**\n * Get the directory path leading to this object\n * Will use the relative path to root if available\n *\n * There is no setter as the source is not meant to be changed manually.\n * You can use the rename or move method to change the source.\n */\n get dirname() {\n return dirname(this.path);\n }\n /**\n * Get the file mime\n */\n get mime() {\n return this._data.mime || \"application/octet-stream\";\n }\n /**\n * Set the file mime\n * Removing the mime type will set it to `application/octet-stream`\n */\n set mime(mime) {\n mime ??= \"application/octet-stream\";\n validateData({ ...this._data, mime }, this._knownDavService);\n this._data.mime = mime;\n }\n /**\n * Get the file modification time\n */\n get mtime() {\n return this._data.mtime;\n }\n /**\n * Set the file modification time\n */\n set mtime(mtime) {\n validateData({ ...this._data, mtime }, this._knownDavService);\n this._data.mtime = mtime;\n }\n /**\n * Get the file creation time\n * There is no setter as the creation time is not meant to be changed\n */\n get crtime() {\n return this._data.crtime;\n }\n /**\n * Get the file size\n */\n get size() {\n return this._data.size;\n }\n /**\n * Set the file size\n */\n set size(size) {\n validateData({ ...this._data, size }, this._knownDavService);\n this.updateMtime();\n this._data.size = size;\n }\n /**\n * Get the file attribute\n * This contains all additional attributes not provided by the Node class\n */\n get attributes() {\n return this._attributes;\n }\n /**\n * Get the file permissions\n */\n get permissions() {\n if (this.owner === null && !this.isDavResource) {\n return Permission.READ;\n }\n return this._data.permissions !== void 0 ? this._data.permissions : Permission.NONE;\n }\n /**\n * Set the file permissions\n */\n set permissions(permissions) {\n validateData({ ...this._data, permissions }, this._knownDavService);\n this.updateMtime();\n this._data.permissions = permissions;\n }\n /**\n * Get the file owner\n * There is no setter as the owner is not meant to be changed\n */\n get owner() {\n if (!this.isDavResource) {\n return null;\n }\n return this._data.owner;\n }\n /**\n * Is this a dav-related resource ?\n */\n get isDavResource() {\n return isDavResource(this.source, this._knownDavService);\n }\n /**\n * Get the dav root of this object\n * There is no setter as the root is not meant to be changed\n */\n get root() {\n return this._data.root.replace(/^(.+)\\/$/, \"$1\");\n }\n /**\n * Get the absolute path of this object relative to the root\n */\n get path() {\n const idx = this.source.indexOf(\"://\");\n const protocol = this.source.slice(0, idx);\n const remainder = this.source.slice(idx + 3);\n const slashIndex = remainder.indexOf(\"/\");\n const host = remainder.slice(0, slashIndex);\n const rawPath = remainder.slice(slashIndex);\n const safeUrl = `${protocol}://${host}${encodePath(rawPath)}`;\n const url = new URL(safeUrl);\n let source = decodeURIComponent(url.pathname);\n if (this.isDavResource) {\n source = source.split(this._knownDavService).pop();\n }\n const firstMatch = source.indexOf(this.root);\n const root = this.root.replace(/\\/$/, \"\");\n return source.slice(firstMatch + root.length) || \"/\";\n }\n /**\n * Get the node id if defined.\n * There is no setter as the fileid is not meant to be changed\n */\n get fileid() {\n return this._data?.id;\n }\n /**\n * Get the node status.\n */\n get status() {\n return this._data?.status;\n }\n /**\n * Set the node status.\n */\n set status(status) {\n validateData({ ...this._data, status }, this._knownDavService);\n this._data.status = status;\n }\n /**\n * Move the node to a new destination\n *\n * @param destination the new source.\n * e.g. https://cloud.domain.com/remote.php/dav/files/emma/Photos/picture.jpg\n */\n move(destination) {\n validateData({ ...this._data, source: destination }, this._knownDavService);\n const oldBasename = this.basename;\n this._data.source = destination;\n if (this.displayname === oldBasename && this.basename !== oldBasename) {\n this.displayname = this.basename;\n }\n }\n /**\n * Rename the node\n * This aliases the move method for easier usage\n *\n * @param basename The new name of the node\n */\n rename(basename2) {\n if (basename2.includes(\"/\")) {\n throw new Error(\"Invalid basename\");\n }\n this.move(dirname(this.source) + \"/\" + basename2);\n }\n /**\n * Update the mtime if exists\n */\n updateMtime() {\n if (this._data.mtime) {\n this._data.mtime = /* @__PURE__ */ new Date();\n }\n }\n /**\n * Update the attributes of the node\n * Warning, updating attributes will NOT automatically update the mtime.\n *\n * @param attributes The new attributes to update on the Node attributes\n */\n update(attributes) {\n for (const [name, value] of Object.entries(attributes)) {\n try {\n if (value === void 0) {\n delete this.attributes[name];\n } else {\n this.attributes[name] = value;\n }\n } catch (e) {\n if (e instanceof TypeError) {\n continue;\n }\n throw e;\n }\n }\n }\n /**\n * Returns a clone of the node\n */\n clone() {\n return new this.constructor(structuredClone(this._data), this._knownDavService);\n }\n /**\n * JSON representation of the node\n */\n toJSON() {\n return JSON.stringify([structuredClone(this._data), this._knownDavService.toString()]);\n }\n}\nclass File extends Node {\n constructor(...[data, davService]) {\n super(data, davService);\n }\n get type() {\n return FileType.File;\n }\n}\nclass Folder extends Node {\n constructor(...[data, davService]) {\n super({\n ...data,\n mime: \"httpd/unix-directory\"\n }, davService);\n }\n get type() {\n return FileType.Folder;\n }\n get extension() {\n return null;\n }\n get mime() {\n return \"httpd/unix-directory\";\n }\n}\nexport {\n FileType as F,\n Node as N,\n Permission as P,\n File as a,\n Folder as b,\n NodeStatus as c,\n logger as l\n};\n//# sourceMappingURL=folder-CeyZUHai.mjs.map\n","var e=class extends EventTarget{dispatchTypedEvent(s,t){return super.dispatchEvent(t)}};export{e as TypedEventTarget};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","module.exports = require('events').EventEmitter;\n","'use strict';\n\n/** @type {import('./shams')} */\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\t/** @type {{ [k in symbol]?: unknown }} */\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (var _ in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\t// eslint-disable-next-line no-extra-parens\n\t\tvar descriptor = /** @type {PropertyDescriptor} */ (Object.getOwnPropertyDescriptor(obj, sym));\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Object;\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Error;\n","'use strict';\n\n/** @type {import('./eval')} */\nmodule.exports = EvalError;\n","'use strict';\n\n/** @type {import('./range')} */\nmodule.exports = RangeError;\n","'use strict';\n\n/** @type {import('./ref')} */\nmodule.exports = ReferenceError;\n","'use strict';\n\n/** @type {import('./syntax')} */\nmodule.exports = SyntaxError;\n","'use strict';\n\n/** @type {import('./type')} */\nmodule.exports = TypeError;\n","'use strict';\n\n/** @type {import('./uri')} */\nmodule.exports = URIError;\n","'use strict';\n\n/** @type {import('./abs')} */\nmodule.exports = Math.abs;\n","'use strict';\n\n/** @type {import('./floor')} */\nmodule.exports = Math.floor;\n","'use strict';\n\n/** @type {import('./max')} */\nmodule.exports = Math.max;\n","'use strict';\n\n/** @type {import('./min')} */\nmodule.exports = Math.min;\n","'use strict';\n\n/** @type {import('./pow')} */\nmodule.exports = Math.pow;\n","'use strict';\n\n/** @type {import('./round')} */\nmodule.exports = Math.round;\n","'use strict';\n\n/** @type {import('./isNaN')} */\nmodule.exports = Number.isNaN || function isNaN(a) {\n\treturn a !== a;\n};\n","'use strict';\n\nvar $isNaN = require('./isNaN');\n\n/** @type {import('./sign')} */\nmodule.exports = function sign(number) {\n\tif ($isNaN(number) || number === 0) {\n\t\treturn number;\n\t}\n\treturn number < 0 ? -1 : +1;\n};\n","'use strict';\n\n/** @type {import('./gOPD')} */\nmodule.exports = Object.getOwnPropertyDescriptor;\n","'use strict';\n\n/** @type {import('.')} */\nvar $gOPD = require('./gOPD');\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","'use strict';\n\n/** @type {import('.')} */\nvar $defineProperty = Object.defineProperty || false;\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = false;\n\t}\n}\n\nmodule.exports = $defineProperty;\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/** @type {import('./Reflect.getPrototypeOf')} */\nmodule.exports = (typeof Reflect !== 'undefined' && Reflect.getPrototypeOf) || null;\n","'use strict';\n\nvar $Object = require('es-object-atoms');\n\n/** @type {import('./Object.getPrototypeOf')} */\nmodule.exports = $Object.getPrototypeOf || null;\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar toStr = Object.prototype.toString;\nvar max = Math.max;\nvar funcType = '[object Function]';\n\nvar concatty = function concatty(a, b) {\n var arr = [];\n\n for (var i = 0; i < a.length; i += 1) {\n arr[i] = a[i];\n }\n for (var j = 0; j < b.length; j += 1) {\n arr[j + a.length] = b[j];\n }\n\n return arr;\n};\n\nvar slicy = function slicy(arrLike, offset) {\n var arr = [];\n for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {\n arr[j] = arrLike[i];\n }\n return arr;\n};\n\nvar joiny = function (arr, joiner) {\n var str = '';\n for (var i = 0; i < arr.length; i += 1) {\n str += arr[i];\n if (i + 1 < arr.length) {\n str += joiner;\n }\n }\n return str;\n};\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.apply(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slicy(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n concatty(args, arguments)\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n }\n return target.apply(\n that,\n concatty(args, arguments)\n );\n\n };\n\n var boundLength = max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs[i] = '$' + i;\n }\n\n bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\n/** @type {import('./functionCall')} */\nmodule.exports = Function.prototype.call;\n","'use strict';\n\n/** @type {import('./functionApply')} */\nmodule.exports = Function.prototype.apply;\n","'use strict';\n\n/** @type {import('./reflectApply')} */\nmodule.exports = typeof Reflect !== 'undefined' && Reflect && Reflect.apply;\n","'use strict';\n\nvar bind = require('function-bind');\n\nvar $apply = require('./functionApply');\nvar $call = require('./functionCall');\nvar $reflectApply = require('./reflectApply');\n\n/** @type {import('./actualApply')} */\nmodule.exports = $reflectApply || bind.call($call, $apply);\n","'use strict';\n\nvar bind = require('function-bind');\nvar $TypeError = require('es-errors/type');\n\nvar $call = require('./functionCall');\nvar $actualApply = require('./actualApply');\n\n/** @type {(args: [Function, thisArg?: unknown, ...args: unknown[]]) => Function} TODO FIXME, find a way to use import('.') */\nmodule.exports = function callBindBasic(args) {\n\tif (args.length < 1 || typeof args[0] !== 'function') {\n\t\tthrow new $TypeError('a function is required');\n\t}\n\treturn $actualApply(bind, $call, args);\n};\n","'use strict';\n\nvar callBind = require('call-bind-apply-helpers');\nvar gOPD = require('gopd');\n\nvar hasProtoAccessor;\ntry {\n\t// eslint-disable-next-line no-extra-parens, no-proto\n\thasProtoAccessor = /** @type {{ __proto__?: typeof Array.prototype }} */ ([]).__proto__ === Array.prototype;\n} catch (e) {\n\tif (!e || typeof e !== 'object' || !('code' in e) || e.code !== 'ERR_PROTO_ACCESS') {\n\t\tthrow e;\n\t}\n}\n\n// eslint-disable-next-line no-extra-parens\nvar desc = !!hasProtoAccessor && gOPD && gOPD(Object.prototype, /** @type {keyof typeof Object.prototype} */ ('__proto__'));\n\nvar $Object = Object;\nvar $getPrototypeOf = $Object.getPrototypeOf;\n\n/** @type {import('./get')} */\nmodule.exports = desc && typeof desc.get === 'function'\n\t? callBind([desc.get])\n\t: typeof $getPrototypeOf === 'function'\n\t\t? /** @type {import('./get')} */ function getDunder(value) {\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\treturn $getPrototypeOf(value == null ? value : $Object(value));\n\t\t}\n\t\t: false;\n","'use strict';\n\nvar reflectGetProto = require('./Reflect.getPrototypeOf');\nvar originalGetProto = require('./Object.getPrototypeOf');\n\nvar getDunderProto = require('dunder-proto/get');\n\n/** @type {import('.')} */\nmodule.exports = reflectGetProto\n\t? function getProto(O) {\n\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\treturn reflectGetProto(O);\n\t}\n\t: originalGetProto\n\t\t? function getProto(O) {\n\t\t\tif (!O || (typeof O !== 'object' && typeof O !== 'function')) {\n\t\t\t\tthrow new TypeError('getProto: not an object');\n\t\t\t}\n\t\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\t\treturn originalGetProto(O);\n\t\t}\n\t\t: getDunderProto\n\t\t\t? function getProto(O) {\n\t\t\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\t\t\treturn getDunderProto(O);\n\t\t\t}\n\t\t\t: null;\n","'use strict';\n\nvar call = Function.prototype.call;\nvar $hasOwn = Object.prototype.hasOwnProperty;\nvar bind = require('function-bind');\n\n/** @type {import('.')} */\nmodule.exports = bind.call(call, $hasOwn);\n","'use strict';\n\nvar undefined;\n\nvar $Object = require('es-object-atoms');\n\nvar $Error = require('es-errors');\nvar $EvalError = require('es-errors/eval');\nvar $RangeError = require('es-errors/range');\nvar $ReferenceError = require('es-errors/ref');\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\nvar $URIError = require('es-errors/uri');\n\nvar abs = require('math-intrinsics/abs');\nvar floor = require('math-intrinsics/floor');\nvar max = require('math-intrinsics/max');\nvar min = require('math-intrinsics/min');\nvar pow = require('math-intrinsics/pow');\nvar round = require('math-intrinsics/round');\nvar sign = require('math-intrinsics/sign');\n\nvar $Function = Function;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = require('gopd');\nvar $defineProperty = require('es-define-property');\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = require('get-proto');\nvar $ObjectGPO = require('get-proto/Object.getPrototypeOf');\nvar $ReflectGPO = require('get-proto/Reflect.getPrototypeOf');\n\nvar $apply = require('call-bind-apply-helpers/functionApply');\nvar $call = require('call-bind-apply-helpers/functionCall');\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t__proto__: null,\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n\t'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': $Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': $EvalError,\n\t'%Float16Array%': typeof Float16Array === 'undefined' ? undefined : Float16Array,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': $Object,\n\t'%Object.getOwnPropertyDescriptor%': $gOPD,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': $RangeError,\n\t'%ReferenceError%': $ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': $URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet,\n\n\t'%Function.prototype.call%': $call,\n\t'%Function.prototype.apply%': $apply,\n\t'%Object.defineProperty%': $defineProperty,\n\t'%Object.getPrototypeOf%': $ObjectGPO,\n\t'%Math.abs%': abs,\n\t'%Math.floor%': floor,\n\t'%Math.max%': max,\n\t'%Math.min%': min,\n\t'%Math.pow%': pow,\n\t'%Math.round%': round,\n\t'%Math.sign%': sign,\n\t'%Reflect.getPrototypeOf%': $ReflectGPO\n};\n\nif (getProto) {\n\ttry {\n\t\tnull.error; // eslint-disable-line no-unused-expressions\n\t} catch (e) {\n\t\t// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n\t\tvar errorProto = getProto(getProto(e));\n\t\tINTRINSICS['%Error.prototype%'] = errorProto;\n\t}\n}\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen && getProto) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t__proto__: null,\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('hasown');\nvar $concat = bind.call($call, Array.prototype.concat);\nvar $spliceApply = bind.call($apply, Array.prototype.splice);\nvar $replace = bind.call($call, String.prototype.replace);\nvar $strSlice = bind.call($call, String.prototype.slice);\nvar $exec = bind.call($call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBindBasic = require('call-bind-apply-helpers');\n\n/** @type {(thisArg: string, searchString: string, position?: number) => number} */\nvar $indexOf = callBindBasic([GetIntrinsic('%String.prototype.indexOf%')]);\n\n/** @type {import('.')} */\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\t/* eslint no-extra-parens: 0 */\n\n\tvar intrinsic = /** @type {(this: unknown, ...args: unknown[]) => unknown} */ (GetIntrinsic(name, !!allowMissing));\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBindBasic(/** @type {const} */ ([intrinsic]));\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar callBound = require('call-bound');\n\nvar $toString = callBound('Object.prototype.toString');\n\n/** @type {import('.')} */\nvar isStandardArguments = function isArguments(value) {\n\tif (\n\t\thasToStringTag\n\t\t&& value\n\t\t&& typeof value === 'object'\n\t\t&& Symbol.toStringTag in value\n\t) {\n\t\treturn false;\n\t}\n\treturn $toString(value) === '[object Arguments]';\n};\n\n/** @type {import('.')} */\nvar isLegacyArguments = function isArguments(value) {\n\tif (isStandardArguments(value)) {\n\t\treturn true;\n\t}\n\treturn value !== null\n\t\t&& typeof value === 'object'\n\t\t&& 'length' in value\n\t\t&& typeof value.length === 'number'\n\t\t&& value.length >= 0\n\t\t&& $toString(value) !== '[object Array]'\n\t\t&& 'callee' in value\n\t\t&& $toString(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = (function () {\n\treturn isStandardArguments(arguments);\n}());\n\n// @ts-expect-error TODO make this not error\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\n/** @type {import('.')} */\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\n","'use strict';\n\nvar callBound = require('call-bound');\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar hasOwn = require('hasown');\nvar gOPD = require('gopd');\n\n/** @type {import('.')} */\nvar fn;\n\nif (hasToStringTag) {\n\t/** @type {(receiver: ThisParameterType, ...args: Parameters) => ReturnType} */\n\tvar $exec = callBound('RegExp.prototype.exec');\n\t/** @type {object} */\n\tvar isRegexMarker = {};\n\n\tvar throwRegexMarker = function () {\n\t\tthrow isRegexMarker;\n\t};\n\t/** @type {{ toString(): never, valueOf(): never, [Symbol.toPrimitive]?(): never }} */\n\tvar badStringifier = {\n\t\ttoString: throwRegexMarker,\n\t\tvalueOf: throwRegexMarker\n\t};\n\n\tif (typeof Symbol.toPrimitive === 'symbol') {\n\t\tbadStringifier[Symbol.toPrimitive] = throwRegexMarker;\n\t}\n\n\t/** @type {import('.')} */\n\t// @ts-expect-error TS can't figure out that the $exec call always throws\n\t// eslint-disable-next-line consistent-return\n\tfn = function isRegex(value) {\n\t\tif (!value || typeof value !== 'object') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// eslint-disable-next-line no-extra-parens\n\t\tvar descriptor = /** @type {NonNullable} */ (gOPD)(/** @type {{ lastIndex?: unknown }} */ (value), 'lastIndex');\n\t\tvar hasLastIndexDataProperty = descriptor && hasOwn(descriptor, 'value');\n\t\tif (!hasLastIndexDataProperty) {\n\t\t\treturn false;\n\t\t}\n\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\t$exec(value, /** @type {string} */ (/** @type {unknown} */ (badStringifier)));\n\t\t} catch (e) {\n\t\t\treturn e === isRegexMarker;\n\t\t}\n\t};\n} else {\n\t/** @type {(receiver: ThisParameterType, ...args: Parameters) => ReturnType} */\n\tvar $toString = callBound('Object.prototype.toString');\n\t/** @const @type {'[object RegExp]'} */\n\tvar regexClass = '[object RegExp]';\n\n\t/** @type {import('.')} */\n\tfn = function isRegex(value) {\n\t\t// In older browsers, typeof regex incorrectly returns 'function'\n\t\tif (!value || (typeof value !== 'object' && typeof value !== 'function')) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn $toString(value) === regexClass;\n\t};\n}\n\nmodule.exports = fn;\n","'use strict';\n\nvar callBound = require('call-bound');\nvar isRegex = require('is-regex');\n\nvar $exec = callBound('RegExp.prototype.exec');\nvar $TypeError = require('es-errors/type');\n\n/** @type {import('.')} */\nmodule.exports = function regexTester(regex) {\n\tif (!isRegex(regex)) {\n\t\tthrow new $TypeError('`regex` must be a RegExp');\n\t}\n\treturn function test(s) {\n\t\treturn $exec(regex, s) !== null;\n\t};\n};\n","'use strict';\n\n// eslint-disable-next-line no-extra-parens, no-empty-function\nconst cached = /** @type {GeneratorFunctionConstructor} */ (function* () {}.constructor);\n\n/** @type {import('.')} */\nmodule.exports = () => cached;\n\n","'use strict';\n\nvar callBound = require('call-bound');\nvar safeRegexTest = require('safe-regex-test');\nvar isFnRegex = safeRegexTest(/^\\s*(?:function)?\\*/);\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar getProto = require('get-proto');\n\nvar toStr = callBound('Object.prototype.toString');\nvar fnToStr = callBound('Function.prototype.toString');\n\nvar getGeneratorFunction = require('generator-function');\n\n/** @type {import('.')} */\nmodule.exports = function isGeneratorFunction(fn) {\n\tif (typeof fn !== 'function') {\n\t\treturn false;\n\t}\n\tif (isFnRegex(fnToStr(fn))) {\n\t\treturn true;\n\t}\n\tif (!hasToStringTag) {\n\t\tvar str = toStr(fn);\n\t\treturn str === '[object GeneratorFunction]';\n\t}\n\tif (!getProto) {\n\t\treturn false;\n\t}\n\tvar GeneratorFunction = getGeneratorFunction();\n\treturn GeneratorFunction && getProto(fn) === GeneratorFunction.prototype;\n};\n","'use strict';\n\nvar fnToStr = Function.prototype.toString;\nvar reflectApply = typeof Reflect === 'object' && Reflect !== null && Reflect.apply;\nvar badArrayLike;\nvar isCallableMarker;\nif (typeof reflectApply === 'function' && typeof Object.defineProperty === 'function') {\n\ttry {\n\t\tbadArrayLike = Object.defineProperty({}, 'length', {\n\t\t\tget: function () {\n\t\t\t\tthrow isCallableMarker;\n\t\t\t}\n\t\t});\n\t\tisCallableMarker = {};\n\t\t// eslint-disable-next-line no-throw-literal\n\t\treflectApply(function () { throw 42; }, null, badArrayLike);\n\t} catch (_) {\n\t\tif (_ !== isCallableMarker) {\n\t\t\treflectApply = null;\n\t\t}\n\t}\n} else {\n\treflectApply = null;\n}\n\nvar constructorRegex = /^\\s*class\\b/;\nvar isES6ClassFn = function isES6ClassFunction(value) {\n\ttry {\n\t\tvar fnStr = fnToStr.call(value);\n\t\treturn constructorRegex.test(fnStr);\n\t} catch (e) {\n\t\treturn false; // not a function\n\t}\n};\n\nvar tryFunctionObject = function tryFunctionToStr(value) {\n\ttry {\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tfnToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar objectClass = '[object Object]';\nvar fnClass = '[object Function]';\nvar genClass = '[object GeneratorFunction]';\nvar ddaClass = '[object HTMLAllCollection]'; // IE 11\nvar ddaClass2 = '[object HTML document.all class]';\nvar ddaClass3 = '[object HTMLCollection]'; // IE 9-10\nvar hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; // better: use `has-tostringtag`\n\nvar isIE68 = !(0 in [,]); // eslint-disable-line no-sparse-arrays, comma-spacing\n\nvar isDDA = function isDocumentDotAll() { return false; };\nif (typeof document === 'object') {\n\t// Firefox 3 canonicalizes DDA to undefined when it's not accessed directly\n\tvar all = document.all;\n\tif (toStr.call(all) === toStr.call(document.all)) {\n\t\tisDDA = function isDocumentDotAll(value) {\n\t\t\t/* globals document: false */\n\t\t\t// in IE 6-8, typeof document.all is \"object\" and it's truthy\n\t\t\tif ((isIE68 || !value) && (typeof value === 'undefined' || typeof value === 'object')) {\n\t\t\t\ttry {\n\t\t\t\t\tvar str = toStr.call(value);\n\t\t\t\t\treturn (\n\t\t\t\t\t\tstr === ddaClass\n\t\t\t\t\t\t|| str === ddaClass2\n\t\t\t\t\t\t|| str === ddaClass3 // opera 12.16\n\t\t\t\t\t\t|| str === objectClass // IE 6-8\n\t\t\t\t\t) && value('') == null; // eslint-disable-line eqeqeq\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\t}\n}\n\nmodule.exports = reflectApply\n\t? function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\ttry {\n\t\t\treflectApply(value, null, badArrayLike);\n\t\t} catch (e) {\n\t\t\tif (e !== isCallableMarker) { return false; }\n\t\t}\n\t\treturn !isES6ClassFn(value) && tryFunctionObject(value);\n\t}\n\t: function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\tif (hasToStringTag) { return tryFunctionObject(value); }\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tvar strClass = toStr.call(value);\n\t\tif (strClass !== fnClass && strClass !== genClass && !(/^\\[object HTML/).test(strClass)) { return false; }\n\t\treturn tryFunctionObject(value);\n\t};\n","'use strict';\n\nvar isCallable = require('is-callable');\n\nvar toStr = Object.prototype.toString;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/** @type {(arr: A, iterator: (this: This | void, value: A[number], index: number, arr: A) => void, receiver: This | undefined) => void} */\nvar forEachArray = function forEachArray(array, iterator, receiver) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (hasOwnProperty.call(array, i)) {\n if (receiver == null) {\n iterator(array[i], i, array);\n } else {\n iterator.call(receiver, array[i], i, array);\n }\n }\n }\n};\n\n/** @type {(string: S, iterator: (this: This | void, value: S[number], index: number, string: S) => void, receiver: This | undefined) => void} */\nvar forEachString = function forEachString(string, iterator, receiver) {\n for (var i = 0, len = string.length; i < len; i++) {\n // no such thing as a sparse string.\n if (receiver == null) {\n iterator(string.charAt(i), i, string);\n } else {\n iterator.call(receiver, string.charAt(i), i, string);\n }\n }\n};\n\n/** @type {(obj: O, iterator: (this: This | void, value: O[keyof O], index: keyof O, obj: O) => void, receiver: This | undefined) => void} */\nvar forEachObject = function forEachObject(object, iterator, receiver) {\n for (var k in object) {\n if (hasOwnProperty.call(object, k)) {\n if (receiver == null) {\n iterator(object[k], k, object);\n } else {\n iterator.call(receiver, object[k], k, object);\n }\n }\n }\n};\n\n/** @type {(x: unknown) => x is readonly unknown[]} */\nfunction isArray(x) {\n return toStr.call(x) === '[object Array]';\n}\n\n/** @type {import('.')._internal} */\nmodule.exports = function forEach(list, iterator, thisArg) {\n if (!isCallable(iterator)) {\n throw new TypeError('iterator must be a function');\n }\n\n var receiver;\n if (arguments.length >= 3) {\n receiver = thisArg;\n }\n\n if (isArray(list)) {\n forEachArray(list, iterator, receiver);\n } else if (typeof list === 'string') {\n forEachString(list, iterator, receiver);\n } else {\n forEachObject(list, iterator, receiver);\n }\n};\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = [\n\t'Float16Array',\n\t'Float32Array',\n\t'Float64Array',\n\t'Int8Array',\n\t'Int16Array',\n\t'Int32Array',\n\t'Uint8Array',\n\t'Uint8ClampedArray',\n\t'Uint16Array',\n\t'Uint32Array',\n\t'BigInt64Array',\n\t'BigUint64Array'\n];\n","'use strict';\n\nvar possibleNames = require('possible-typed-array-names');\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\n\n/** @type {import('.')} */\nmodule.exports = function availableTypedArrays() {\n\tvar /** @type {ReturnType} */ out = [];\n\tfor (var i = 0; i < possibleNames.length; i++) {\n\t\tif (typeof g[possibleNames[i]] === 'function') {\n\t\t\t// @ts-expect-error\n\t\t\tout[out.length] = possibleNames[i];\n\t\t}\n\t}\n\treturn out;\n};\n","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\n\nvar gopd = require('gopd');\n\n/** @type {import('.')} */\nmodule.exports = function defineDataProperty(\n\tobj,\n\tproperty,\n\tvalue\n) {\n\tif (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {\n\t\tthrow new $TypeError('`obj` must be an object or a function`');\n\t}\n\tif (typeof property !== 'string' && typeof property !== 'symbol') {\n\t\tthrow new $TypeError('`property` must be a string or a symbol`');\n\t}\n\tif (arguments.length > 3 && typeof arguments[3] !== 'boolean' && arguments[3] !== null) {\n\t\tthrow new $TypeError('`nonEnumerable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 4 && typeof arguments[4] !== 'boolean' && arguments[4] !== null) {\n\t\tthrow new $TypeError('`nonWritable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 5 && typeof arguments[5] !== 'boolean' && arguments[5] !== null) {\n\t\tthrow new $TypeError('`nonConfigurable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 6 && typeof arguments[6] !== 'boolean') {\n\t\tthrow new $TypeError('`loose`, if provided, must be a boolean');\n\t}\n\n\tvar nonEnumerable = arguments.length > 3 ? arguments[3] : null;\n\tvar nonWritable = arguments.length > 4 ? arguments[4] : null;\n\tvar nonConfigurable = arguments.length > 5 ? arguments[5] : null;\n\tvar loose = arguments.length > 6 ? arguments[6] : false;\n\n\t/* @type {false | TypedPropertyDescriptor} */\n\tvar desc = !!gopd && gopd(obj, property);\n\n\tif ($defineProperty) {\n\t\t$defineProperty(obj, property, {\n\t\t\tconfigurable: nonConfigurable === null && desc ? desc.configurable : !nonConfigurable,\n\t\t\tenumerable: nonEnumerable === null && desc ? desc.enumerable : !nonEnumerable,\n\t\t\tvalue: value,\n\t\t\twritable: nonWritable === null && desc ? desc.writable : !nonWritable\n\t\t});\n\t} else if (loose || (!nonEnumerable && !nonWritable && !nonConfigurable)) {\n\t\t// must fall back to [[Set]], and was not explicitly asked to make non-enumerable, non-writable, or non-configurable\n\t\tobj[property] = value; // eslint-disable-line no-param-reassign\n\t} else {\n\t\tthrow new $SyntaxError('This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.');\n\t}\n};\n","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\treturn !!$defineProperty;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!$defineProperty) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar define = require('define-data-property');\nvar hasDescriptors = require('has-property-descriptors')();\nvar gOPD = require('gopd');\n\nvar $TypeError = require('es-errors/type');\nvar $floor = GetIntrinsic('%Math.floor%');\n\n/** @type {import('.')} */\nmodule.exports = function setFunctionLength(fn, length) {\n\tif (typeof fn !== 'function') {\n\t\tthrow new $TypeError('`fn` is not a function');\n\t}\n\tif (typeof length !== 'number' || length < 0 || length > 0xFFFFFFFF || $floor(length) !== length) {\n\t\tthrow new $TypeError('`length` must be a positive 32-bit integer');\n\t}\n\n\tvar loose = arguments.length > 2 && !!arguments[2];\n\n\tvar functionLengthIsConfigurable = true;\n\tvar functionLengthIsWritable = true;\n\tif ('length' in fn && gOPD) {\n\t\tvar desc = gOPD(fn, 'length');\n\t\tif (desc && !desc.configurable) {\n\t\t\tfunctionLengthIsConfigurable = false;\n\t\t}\n\t\tif (desc && !desc.writable) {\n\t\t\tfunctionLengthIsWritable = false;\n\t\t}\n\t}\n\n\tif (functionLengthIsConfigurable || functionLengthIsWritable || !loose) {\n\t\tif (hasDescriptors) {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'length', length, true, true);\n\t\t} else {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'length', length);\n\t\t}\n\t}\n\treturn fn;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar $apply = require('./functionApply');\nvar actualApply = require('./actualApply');\n\n/** @type {import('./applyBind')} */\nmodule.exports = function applyBind() {\n\treturn actualApply(bind, $apply, arguments);\n};\n","'use strict';\n\nvar setFunctionLength = require('set-function-length');\n\nvar $defineProperty = require('es-define-property');\n\nvar callBindBasic = require('call-bind-apply-helpers');\nvar applyBind = require('call-bind-apply-helpers/applyBind');\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = callBindBasic(arguments);\n\tvar adjustedLength = originalFunction.length - (arguments.length - 1);\n\treturn setFunctionLength(\n\t\tfunc,\n\t\t1 + (adjustedLength > 0 ? adjustedLength : 0),\n\t\ttrue\n\t);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","'use strict';\n\nvar forEach = require('for-each');\nvar availableTypedArrays = require('available-typed-arrays');\nvar callBind = require('call-bind');\nvar callBound = require('call-bound');\nvar gOPD = require('gopd');\nvar getProto = require('get-proto');\n\nvar $toString = callBound('Object.prototype.toString');\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\nvar typedArrays = availableTypedArrays();\n\nvar $slice = callBound('String.prototype.slice');\n\n/** @type {(array: readonly T[], value: unknown) => number} */\nvar $indexOf = callBound('Array.prototype.indexOf', true) || function indexOf(array, value) {\n\tfor (var i = 0; i < array.length; i += 1) {\n\t\tif (array[i] === value) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n};\n\n/** @typedef {import('./types').Getter} Getter */\n/** @type {import('./types').Cache} */\nvar cache = { __proto__: null };\nif (hasToStringTag && gOPD && getProto) {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tif (Symbol.toStringTag in arr && getProto) {\n\t\t\tvar proto = getProto(arr);\n\t\t\t// @ts-expect-error TS won't narrow inside a closure\n\t\t\tvar descriptor = gOPD(proto, Symbol.toStringTag);\n\t\t\tif (!descriptor && proto) {\n\t\t\t\tvar superProto = getProto(proto);\n\t\t\t\t// @ts-expect-error TS won't narrow inside a closure\n\t\t\t\tdescriptor = gOPD(superProto, Symbol.toStringTag);\n\t\t\t}\n\t\t\t// @ts-expect-error TODO: fix\n\t\t\tcache['$' + typedArray] = callBind(descriptor.get);\n\t\t}\n\t});\n} else {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tvar fn = arr.slice || arr.set;\n\t\tif (fn) {\n\t\t\tcache[\n\t\t\t\t/** @type {`$${import('.').TypedArrayName}`} */ ('$' + typedArray)\n\t\t\t] = /** @type {import('./types').BoundSlice | import('./types').BoundSet} */ (\n\t\t\t\t// @ts-expect-error TODO FIXME\n\t\t\t\tcallBind(fn)\n\t\t\t);\n\t\t}\n\t});\n}\n\n/** @type {(value: object) => false | import('.').TypedArrayName} */\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n\t/** @type {ReturnType} */ var found = false;\n\tforEach(\n\t\t/** @type {Record<`\\$${import('.').TypedArrayName}`, Getter>} */ (cache),\n\t\t/** @type {(getter: Getter, name: `\\$${import('.').TypedArrayName}`) => void} */\n\t\tfunction (getter, typedArray) {\n\t\t\tif (!found) {\n\t\t\t\ttry {\n\t\t\t\t\t// @ts-expect-error a throw is fine here\n\t\t\t\t\tif ('$' + getter(value) === typedArray) {\n\t\t\t\t\t\tfound = /** @type {import('.').TypedArrayName} */ ($slice(typedArray, 1));\n\t\t\t\t\t}\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t}\n\t);\n\treturn found;\n};\n\n/** @type {(value: object) => false | import('.').TypedArrayName} */\nvar trySlices = function tryAllSlices(value) {\n\t/** @type {ReturnType} */ var found = false;\n\tforEach(\n\t\t/** @type {Record<`\\$${import('.').TypedArrayName}`, Getter>} */(cache),\n\t\t/** @type {(getter: Getter, name: `\\$${import('.').TypedArrayName}`) => void} */ function (getter, name) {\n\t\t\tif (!found) {\n\t\t\t\ttry {\n\t\t\t\t\t// @ts-expect-error a throw is fine here\n\t\t\t\t\tgetter(value);\n\t\t\t\t\tfound = /** @type {import('.').TypedArrayName} */ ($slice(name, 1));\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t}\n\t);\n\treturn found;\n};\n\n/** @type {import('.')} */\nmodule.exports = function whichTypedArray(value) {\n\tif (!value || typeof value !== 'object') { return false; }\n\tif (!hasToStringTag) {\n\t\t/** @type {string} */\n\t\tvar tag = $slice($toString(value), 8, -1);\n\t\tif ($indexOf(typedArrays, tag) > -1) {\n\t\t\treturn tag;\n\t\t}\n\t\tif (tag !== 'Object') {\n\t\t\treturn false;\n\t\t}\n\t\t// node < 0.6 hits here on real Typed Arrays\n\t\treturn trySlices(value);\n\t}\n\tif (!gOPD) { return null; } // unknown engine\n\treturn tryTypedArrays(value);\n};\n","'use strict';\n\nvar whichTypedArray = require('which-typed-array');\n\n/** @type {import('.')} */\nmodule.exports = function isTypedArray(value) {\n\treturn !!whichTypedArray(value);\n};\n","// Currently in sync with Node.js lib/internal/util/types.js\n// https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9\n\n'use strict';\n\nvar isArgumentsObject = require('is-arguments');\nvar isGeneratorFunction = require('is-generator-function');\nvar whichTypedArray = require('which-typed-array');\nvar isTypedArray = require('is-typed-array');\n\nfunction uncurryThis(f) {\n return f.call.bind(f);\n}\n\nvar BigIntSupported = typeof BigInt !== 'undefined';\nvar SymbolSupported = typeof Symbol !== 'undefined';\n\nvar ObjectToString = uncurryThis(Object.prototype.toString);\n\nvar numberValue = uncurryThis(Number.prototype.valueOf);\nvar stringValue = uncurryThis(String.prototype.valueOf);\nvar booleanValue = uncurryThis(Boolean.prototype.valueOf);\n\nif (BigIntSupported) {\n var bigIntValue = uncurryThis(BigInt.prototype.valueOf);\n}\n\nif (SymbolSupported) {\n var symbolValue = uncurryThis(Symbol.prototype.valueOf);\n}\n\nfunction checkBoxedPrimitive(value, prototypeValueOf) {\n if (typeof value !== 'object') {\n return false;\n }\n try {\n prototypeValueOf(value);\n return true;\n } catch(e) {\n return false;\n }\n}\n\nexports.isArgumentsObject = isArgumentsObject;\nexports.isGeneratorFunction = isGeneratorFunction;\nexports.isTypedArray = isTypedArray;\n\n// Taken from here and modified for better browser support\n// https://github.com/sindresorhus/p-is-promise/blob/cda35a513bda03f977ad5cde3a079d237e82d7ef/index.js\nfunction isPromise(input) {\n\treturn (\n\t\t(\n\t\t\ttypeof Promise !== 'undefined' &&\n\t\t\tinput instanceof Promise\n\t\t) ||\n\t\t(\n\t\t\tinput !== null &&\n\t\t\ttypeof input === 'object' &&\n\t\t\ttypeof input.then === 'function' &&\n\t\t\ttypeof input.catch === 'function'\n\t\t)\n\t);\n}\nexports.isPromise = isPromise;\n\nfunction isArrayBufferView(value) {\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n return ArrayBuffer.isView(value);\n }\n\n return (\n isTypedArray(value) ||\n isDataView(value)\n );\n}\nexports.isArrayBufferView = isArrayBufferView;\n\n\nfunction isUint8Array(value) {\n return whichTypedArray(value) === 'Uint8Array';\n}\nexports.isUint8Array = isUint8Array;\n\nfunction isUint8ClampedArray(value) {\n return whichTypedArray(value) === 'Uint8ClampedArray';\n}\nexports.isUint8ClampedArray = isUint8ClampedArray;\n\nfunction isUint16Array(value) {\n return whichTypedArray(value) === 'Uint16Array';\n}\nexports.isUint16Array = isUint16Array;\n\nfunction isUint32Array(value) {\n return whichTypedArray(value) === 'Uint32Array';\n}\nexports.isUint32Array = isUint32Array;\n\nfunction isInt8Array(value) {\n return whichTypedArray(value) === 'Int8Array';\n}\nexports.isInt8Array = isInt8Array;\n\nfunction isInt16Array(value) {\n return whichTypedArray(value) === 'Int16Array';\n}\nexports.isInt16Array = isInt16Array;\n\nfunction isInt32Array(value) {\n return whichTypedArray(value) === 'Int32Array';\n}\nexports.isInt32Array = isInt32Array;\n\nfunction isFloat32Array(value) {\n return whichTypedArray(value) === 'Float32Array';\n}\nexports.isFloat32Array = isFloat32Array;\n\nfunction isFloat64Array(value) {\n return whichTypedArray(value) === 'Float64Array';\n}\nexports.isFloat64Array = isFloat64Array;\n\nfunction isBigInt64Array(value) {\n return whichTypedArray(value) === 'BigInt64Array';\n}\nexports.isBigInt64Array = isBigInt64Array;\n\nfunction isBigUint64Array(value) {\n return whichTypedArray(value) === 'BigUint64Array';\n}\nexports.isBigUint64Array = isBigUint64Array;\n\nfunction isMapToString(value) {\n return ObjectToString(value) === '[object Map]';\n}\nisMapToString.working = (\n typeof Map !== 'undefined' &&\n isMapToString(new Map())\n);\n\nfunction isMap(value) {\n if (typeof Map === 'undefined') {\n return false;\n }\n\n return isMapToString.working\n ? isMapToString(value)\n : value instanceof Map;\n}\nexports.isMap = isMap;\n\nfunction isSetToString(value) {\n return ObjectToString(value) === '[object Set]';\n}\nisSetToString.working = (\n typeof Set !== 'undefined' &&\n isSetToString(new Set())\n);\nfunction isSet(value) {\n if (typeof Set === 'undefined') {\n return false;\n }\n\n return isSetToString.working\n ? isSetToString(value)\n : value instanceof Set;\n}\nexports.isSet = isSet;\n\nfunction isWeakMapToString(value) {\n return ObjectToString(value) === '[object WeakMap]';\n}\nisWeakMapToString.working = (\n typeof WeakMap !== 'undefined' &&\n isWeakMapToString(new WeakMap())\n);\nfunction isWeakMap(value) {\n if (typeof WeakMap === 'undefined') {\n return false;\n }\n\n return isWeakMapToString.working\n ? isWeakMapToString(value)\n : value instanceof WeakMap;\n}\nexports.isWeakMap = isWeakMap;\n\nfunction isWeakSetToString(value) {\n return ObjectToString(value) === '[object WeakSet]';\n}\nisWeakSetToString.working = (\n typeof WeakSet !== 'undefined' &&\n isWeakSetToString(new WeakSet())\n);\nfunction isWeakSet(value) {\n return isWeakSetToString(value);\n}\nexports.isWeakSet = isWeakSet;\n\nfunction isArrayBufferToString(value) {\n return ObjectToString(value) === '[object ArrayBuffer]';\n}\nisArrayBufferToString.working = (\n typeof ArrayBuffer !== 'undefined' &&\n isArrayBufferToString(new ArrayBuffer())\n);\nfunction isArrayBuffer(value) {\n if (typeof ArrayBuffer === 'undefined') {\n return false;\n }\n\n return isArrayBufferToString.working\n ? isArrayBufferToString(value)\n : value instanceof ArrayBuffer;\n}\nexports.isArrayBuffer = isArrayBuffer;\n\nfunction isDataViewToString(value) {\n return ObjectToString(value) === '[object DataView]';\n}\nisDataViewToString.working = (\n typeof ArrayBuffer !== 'undefined' &&\n typeof DataView !== 'undefined' &&\n isDataViewToString(new DataView(new ArrayBuffer(1), 0, 1))\n);\nfunction isDataView(value) {\n if (typeof DataView === 'undefined') {\n return false;\n }\n\n return isDataViewToString.working\n ? isDataViewToString(value)\n : value instanceof DataView;\n}\nexports.isDataView = isDataView;\n\n// Store a copy of SharedArrayBuffer in case it's deleted elsewhere\nvar SharedArrayBufferCopy = typeof SharedArrayBuffer !== 'undefined' ? SharedArrayBuffer : undefined;\nfunction isSharedArrayBufferToString(value) {\n return ObjectToString(value) === '[object SharedArrayBuffer]';\n}\nfunction isSharedArrayBuffer(value) {\n if (typeof SharedArrayBufferCopy === 'undefined') {\n return false;\n }\n\n if (typeof isSharedArrayBufferToString.working === 'undefined') {\n isSharedArrayBufferToString.working = isSharedArrayBufferToString(new SharedArrayBufferCopy());\n }\n\n return isSharedArrayBufferToString.working\n ? isSharedArrayBufferToString(value)\n : value instanceof SharedArrayBufferCopy;\n}\nexports.isSharedArrayBuffer = isSharedArrayBuffer;\n\nfunction isAsyncFunction(value) {\n return ObjectToString(value) === '[object AsyncFunction]';\n}\nexports.isAsyncFunction = isAsyncFunction;\n\nfunction isMapIterator(value) {\n return ObjectToString(value) === '[object Map Iterator]';\n}\nexports.isMapIterator = isMapIterator;\n\nfunction isSetIterator(value) {\n return ObjectToString(value) === '[object Set Iterator]';\n}\nexports.isSetIterator = isSetIterator;\n\nfunction isGeneratorObject(value) {\n return ObjectToString(value) === '[object Generator]';\n}\nexports.isGeneratorObject = isGeneratorObject;\n\nfunction isWebAssemblyCompiledModule(value) {\n return ObjectToString(value) === '[object WebAssembly.Module]';\n}\nexports.isWebAssemblyCompiledModule = isWebAssemblyCompiledModule;\n\nfunction isNumberObject(value) {\n return checkBoxedPrimitive(value, numberValue);\n}\nexports.isNumberObject = isNumberObject;\n\nfunction isStringObject(value) {\n return checkBoxedPrimitive(value, stringValue);\n}\nexports.isStringObject = isStringObject;\n\nfunction isBooleanObject(value) {\n return checkBoxedPrimitive(value, booleanValue);\n}\nexports.isBooleanObject = isBooleanObject;\n\nfunction isBigIntObject(value) {\n return BigIntSupported && checkBoxedPrimitive(value, bigIntValue);\n}\nexports.isBigIntObject = isBigIntObject;\n\nfunction isSymbolObject(value) {\n return SymbolSupported && checkBoxedPrimitive(value, symbolValue);\n}\nexports.isSymbolObject = isSymbolObject;\n\nfunction isBoxedPrimitive(value) {\n return (\n isNumberObject(value) ||\n isStringObject(value) ||\n isBooleanObject(value) ||\n isBigIntObject(value) ||\n isSymbolObject(value)\n );\n}\nexports.isBoxedPrimitive = isBoxedPrimitive;\n\nfunction isAnyArrayBuffer(value) {\n return typeof Uint8Array !== 'undefined' && (\n isArrayBuffer(value) ||\n isSharedArrayBuffer(value)\n );\n}\nexports.isAnyArrayBuffer = isAnyArrayBuffer;\n\n['isProxy', 'isExternal', 'isModuleNamespaceObject'].forEach(function(method) {\n Object.defineProperty(exports, method, {\n enumerable: false,\n value: function() {\n throw new Error(method + ' is not supported in userland');\n }\n });\n});\n","module.exports = function isBuffer(arg) {\n return arg && typeof arg === 'object'\n && typeof arg.copy === 'function'\n && typeof arg.fill === 'function'\n && typeof arg.readUInt8 === 'function';\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n if (typeof process !== 'undefined' && process.noDeprecation === true) {\n return fn;\n }\n\n // Allow for deprecating things in the process of starting up.\n if (typeof process === 'undefined') {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnvRegex = /^$/;\n\nif (process.env.NODE_DEBUG) {\n var debugEnv = process.env.NODE_DEBUG;\n debugEnv = debugEnv.replace(/[|\\\\{}()[\\]^$+?.]/g, '\\\\$&')\n .replace(/\\*/g, '.*')\n .replace(/,/g, '$|^')\n .toUpperCase();\n debugEnvRegex = new RegExp('^' + debugEnv + '$', 'i');\n}\nexports.debuglog = function(set) {\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (debugEnvRegex.test(set)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').slice(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.slice(1, -1);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nexports.types = require('./support/types');\n\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\nexports.types.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\nexports.types.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\nexports.types.isNativeError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n if (typeof original !== 'function')\n throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return Object.defineProperties(\n fn,\n getOwnPropertyDescriptors(original)\n );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n }\n\n // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n var self = this;\n var cb = function() {\n return maybeCb.apply(self, arguments);\n };\n // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n original.apply(this, args)\n .then(function(ret) { process.nextTick(cb.bind(null, null, ret)) },\n function(rej) { process.nextTick(callbackifyOnRejected.bind(null, rej, cb)) });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified,\n getOwnPropertyDescriptors(original));\n return callbackified;\n}\nexports.callbackify = callbackify;\n","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\nvar _require2 = require('util'),\n inspect = _require2.inspect;\nvar custom = inspect && inspect.custom || 'inspect';\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\nmodule.exports = /*#__PURE__*/function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) ret += s + p.data;\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n }\n\n // Consumes a specified amount of bytes or characters from the buffered data.\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n }\n\n // Consumes a specified amount of characters from the buffered data.\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Consumes a specified amount of bytes from the buffered data.\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Make sure the linked list only shows the minimal necessary information.\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread(_objectSpread({}, options), {}, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n return BufferList;\n}();","'use strict';\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n return this;\n}\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n return Math.floor(hwm);\n }\n\n // Default value\n return state.objectMode ? 16 : 16 * 1024;\n}\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nrequire('inherits')(Writable, Stream);\nfunction nop() {}\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'finish' (and potentially 'end')\n this.autoDestroy = !!options.autoDestroy;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex);\n\n // legacy.\n this.writable = true;\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END();\n // TODO: defer error events consistently everywhere, not just the cb\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n return true;\n}\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n return ret;\n}\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n if (entry === null) state.lastBufferedRequest = null;\n }\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\nWritable.prototype._writev = null;\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n errorOrDestroy(stream, err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n return need;\n}\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n\n // reuse the free corkReq.\n state.corkedRequestsFree.next = corkReq;\n}\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n};\n/**/\n\nmodule.exports = Duplex;\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\nrequire('inherits')(Duplex, Readable);\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n process.nextTick(onEndNT, this);\n}\nfunction onEndNT(self) {\n self.end();\n}\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n callback.apply(this, args);\n };\n}\nfunction noop() {}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n var writableEnded = stream._writableState && stream._writableState.finished;\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n var onclose = function onclose() {\n var err;\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\nmodule.exports = eos;","'use strict';\n\nvar _Object$setPrototypeO;\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar finished = require('./end-of-stream');\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n if (resolve !== null) {\n var data = iter[kStream].read();\n // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n next: function next() {\n var _this = this;\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n if (error !== null) {\n return Promise.reject(error);\n }\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n }\n\n // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n var lastPromise = this[kLastPromise];\n var promise;\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n promise = new Promise(this[kHandlePromise]);\n }\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject];\n // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n iterator[kError] = err;\n return;\n }\n var resolve = iterator[kLastResolve];\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\nmodule.exports = createReadableStreamAsyncIterator;","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nmodule.exports = Readable;\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\nvar debugUtil = require('util');\nvar debug;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/buffer_list');\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;\n\n// Lazy loaded to improve the startup performance.\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\nrequire('inherits')(Readable, Stream);\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'end' (and potentially 'finish')\n this.autoDestroy = !!options.autoDestroy;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options);\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex);\n\n // legacy\n this.readable = true;\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n Stream.call(this);\n}\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n }\n\n // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n return er;\n}\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder;\n // If setEncoding(null), decoder.encoding equals utf8\n this._readableState.encoding = this._readableState.decoder.encoding;\n\n // Iterate over current buffer to convert already stored Buffers:\n var p = this._readableState.buffer.head;\n var content = '';\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n this._readableState.buffer.clear();\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n};\n\n// Don't raise the hwm > 1GB\nvar MAX_HWM = 0x40000000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n }\n\n // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n return dest;\n};\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n for (var i = 0; i < len; i++) dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0;\n\n // Try start flowing on next tick if stream isn't explicitly paused\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true;\n\n // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n state.paused = false;\n return this;\n};\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n if (!state.reading) {\n stream.read(0);\n }\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n this._readableState.paused = true;\n return this;\n};\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null);\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n return this;\n};\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n return createReadableStreamAsyncIterator(this);\n };\n}\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n});\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length);\n\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n return from(Readable, iterable, opts);\n };\n}\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\nvar Duplex = require('./_stream_duplex');\nrequire('inherits')(Transform, Duplex);\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null)\n // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\nfunction prefinish() {\n var _this = this;\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null)\n // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\nvar Transform = require('./_stream_transform');\nrequire('inherits')(PassThrough, Transform);\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar eos;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true;\n\n // request.destroy just do .end - .abort is what we want\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\nfunction call(fn) {\n fn();\n}\nfunction pipe(from, to) {\n return from.pipe(to);\n}\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\nmodule.exports = pipeline;","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nmodule.exports = Stream;\n\nvar EE = require('events').EventEmitter;\nvar inherits = require('inherits');\n\ninherits(Stream, EE);\nStream.Readable = require('readable-stream/lib/_stream_readable.js');\nStream.Writable = require('readable-stream/lib/_stream_writable.js');\nStream.Duplex = require('readable-stream/lib/_stream_duplex.js');\nStream.Transform = require('readable-stream/lib/_stream_transform.js');\nStream.PassThrough = require('readable-stream/lib/_stream_passthrough.js');\nStream.finished = require('readable-stream/lib/internal/streams/end-of-stream.js')\nStream.pipeline = require('readable-stream/lib/internal/streams/pipeline.js')\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\n\n\n// old-style streams. Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n EE.call(this);\n}\n\nStream.prototype.pipe = function(dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain);\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EE.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n};\n",";(function (sax) { // wrapper for non-node envs\n sax.parser = function (strict, opt) { return new SAXParser(strict, opt) }\n sax.SAXParser = SAXParser\n sax.SAXStream = SAXStream\n sax.createStream = createStream\n\n // When we pass the MAX_BUFFER_LENGTH position, start checking for buffer overruns.\n // When we check, schedule the next check for MAX_BUFFER_LENGTH - (max(buffer lengths)),\n // since that's the earliest that a buffer overrun could occur. This way, checks are\n // as rare as required, but as often as necessary to ensure never crossing this bound.\n // Furthermore, buffers are only tested at most once per write(), so passing a very\n // large string into write() might have undesirable effects, but this is manageable by\n // the caller, so it is assumed to be safe. Thus, a call to write() may, in the extreme\n // edge case, result in creating at most one complete copy of the string passed in.\n // Set to Infinity to have unlimited buffers.\n sax.MAX_BUFFER_LENGTH = 64 * 1024\n\n var buffers = [\n 'comment', 'sgmlDecl', 'textNode', 'tagName', 'doctype',\n 'procInstName', 'procInstBody', 'entity', 'attribName',\n 'attribValue', 'cdata', 'script'\n ]\n\n sax.EVENTS = [\n 'text',\n 'processinginstruction',\n 'sgmldeclaration',\n 'doctype',\n 'comment',\n 'opentagstart',\n 'attribute',\n 'opentag',\n 'closetag',\n 'opencdata',\n 'cdata',\n 'closecdata',\n 'error',\n 'end',\n 'ready',\n 'script',\n 'opennamespace',\n 'closenamespace'\n ]\n\n function SAXParser (strict, opt) {\n if (!(this instanceof SAXParser)) {\n return new SAXParser(strict, opt)\n }\n\n var parser = this\n clearBuffers(parser)\n parser.q = parser.c = ''\n parser.bufferCheckPosition = sax.MAX_BUFFER_LENGTH\n parser.opt = opt || {}\n parser.opt.lowercase = parser.opt.lowercase || parser.opt.lowercasetags\n parser.looseCase = parser.opt.lowercase ? 'toLowerCase' : 'toUpperCase'\n parser.tags = []\n parser.closed = parser.closedRoot = parser.sawRoot = false\n parser.tag = parser.error = null\n parser.strict = !!strict\n parser.noscript = !!(strict || parser.opt.noscript)\n parser.state = S.BEGIN\n parser.strictEntities = parser.opt.strictEntities\n parser.ENTITIES = parser.strictEntities ? Object.create(sax.XML_ENTITIES) : Object.create(sax.ENTITIES)\n parser.attribList = []\n\n // namespaces form a prototype chain.\n // it always points at the current tag,\n // which protos to its parent tag.\n if (parser.opt.xmlns) {\n parser.ns = Object.create(rootNS)\n }\n\n // disallow unquoted attribute values if not otherwise configured\n // and strict mode is true\n if (parser.opt.unquotedAttributeValues === undefined) {\n parser.opt.unquotedAttributeValues = !strict;\n }\n\n // mostly just for error reporting\n parser.trackPosition = parser.opt.position !== false\n if (parser.trackPosition) {\n parser.position = parser.line = parser.column = 0\n }\n emit(parser, 'onready')\n }\n\n if (!Object.create) {\n Object.create = function (o) {\n function F () {}\n F.prototype = o\n var newf = new F()\n return newf\n }\n }\n\n if (!Object.keys) {\n Object.keys = function (o) {\n var a = []\n for (var i in o) if (o.hasOwnProperty(i)) a.push(i)\n return a\n }\n }\n\n function checkBufferLength (parser) {\n var maxAllowed = Math.max(sax.MAX_BUFFER_LENGTH, 10)\n var maxActual = 0\n for (var i = 0, l = buffers.length; i < l; i++) {\n var len = parser[buffers[i]].length\n if (len > maxAllowed) {\n // Text/cdata nodes can get big, and since they're buffered,\n // we can get here under normal conditions.\n // Avoid issues by emitting the text node now,\n // so at least it won't get any bigger.\n switch (buffers[i]) {\n case 'textNode':\n closeText(parser)\n break\n\n case 'cdata':\n emitNode(parser, 'oncdata', parser.cdata)\n parser.cdata = ''\n break\n\n case 'script':\n emitNode(parser, 'onscript', parser.script)\n parser.script = ''\n break\n\n default:\n error(parser, 'Max buffer length exceeded: ' + buffers[i])\n }\n }\n maxActual = Math.max(maxActual, len)\n }\n // schedule the next check for the earliest possible buffer overrun.\n var m = sax.MAX_BUFFER_LENGTH - maxActual\n parser.bufferCheckPosition = m + parser.position\n }\n\n function clearBuffers (parser) {\n for (var i = 0, l = buffers.length; i < l; i++) {\n parser[buffers[i]] = ''\n }\n }\n\n function flushBuffers (parser) {\n closeText(parser)\n if (parser.cdata !== '') {\n emitNode(parser, 'oncdata', parser.cdata)\n parser.cdata = ''\n }\n if (parser.script !== '') {\n emitNode(parser, 'onscript', parser.script)\n parser.script = ''\n }\n }\n\n SAXParser.prototype = {\n end: function () { end(this) },\n write: write,\n resume: function () { this.error = null; return this },\n close: function () { return this.write(null) },\n flush: function () { flushBuffers(this) }\n }\n\n var Stream\n try {\n Stream = require('stream').Stream\n } catch (ex) {\n Stream = function () {}\n }\n if (!Stream) Stream = function () {}\n\n var streamWraps = sax.EVENTS.filter(function (ev) {\n return ev !== 'error' && ev !== 'end'\n })\n\n function createStream (strict, opt) {\n return new SAXStream(strict, opt)\n }\n\n function SAXStream (strict, opt) {\n if (!(this instanceof SAXStream)) {\n return new SAXStream(strict, opt)\n }\n\n Stream.apply(this)\n\n this._parser = new SAXParser(strict, opt)\n this.writable = true\n this.readable = true\n\n var me = this\n\n this._parser.onend = function () {\n me.emit('end')\n }\n\n this._parser.onerror = function (er) {\n me.emit('error', er)\n\n // if didn't throw, then means error was handled.\n // go ahead and clear error, so we can write again.\n me._parser.error = null\n }\n\n this._decoder = null\n\n streamWraps.forEach(function (ev) {\n Object.defineProperty(me, 'on' + ev, {\n get: function () {\n return me._parser['on' + ev]\n },\n set: function (h) {\n if (!h) {\n me.removeAllListeners(ev)\n me._parser['on' + ev] = h\n return h\n }\n me.on(ev, h)\n },\n enumerable: true,\n configurable: false\n })\n })\n }\n\n SAXStream.prototype = Object.create(Stream.prototype, {\n constructor: {\n value: SAXStream\n }\n })\n\n SAXStream.prototype.write = function (data) {\n if (typeof Buffer === 'function' &&\n typeof Buffer.isBuffer === 'function' &&\n Buffer.isBuffer(data)) {\n if (!this._decoder) {\n var SD = require('string_decoder').StringDecoder\n this._decoder = new SD('utf8')\n }\n data = this._decoder.write(data)\n }\n\n this._parser.write(data.toString())\n this.emit('data', data)\n return true\n }\n\n SAXStream.prototype.end = function (chunk) {\n if (chunk && chunk.length) {\n this.write(chunk)\n }\n this._parser.end()\n return true\n }\n\n SAXStream.prototype.on = function (ev, handler) {\n var me = this\n if (!me._parser['on' + ev] && streamWraps.indexOf(ev) !== -1) {\n me._parser['on' + ev] = function () {\n var args = arguments.length === 1 ? [arguments[0]] : Array.apply(null, arguments)\n args.splice(0, 0, ev)\n me.emit.apply(me, args)\n }\n }\n\n return Stream.prototype.on.call(me, ev, handler)\n }\n\n // this really needs to be replaced with character classes.\n // XML allows all manner of ridiculous numbers and digits.\n var CDATA = '[CDATA['\n var DOCTYPE = 'DOCTYPE'\n var XML_NAMESPACE = 'http://www.w3.org/XML/1998/namespace'\n var XMLNS_NAMESPACE = 'http://www.w3.org/2000/xmlns/'\n var rootNS = { xml: XML_NAMESPACE, xmlns: XMLNS_NAMESPACE }\n\n // http://www.w3.org/TR/REC-xml/#NT-NameStartChar\n // This implementation works on strings, a single character at a time\n // as such, it cannot ever support astral-plane characters (10000-EFFFF)\n // without a significant breaking change to either this parser, or the\n // JavaScript language. Implementation of an emoji-capable xml parser\n // is left as an exercise for the reader.\n var nameStart = /[:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/\n\n var nameBody = /[:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\u00B7\\u0300-\\u036F\\u203F-\\u2040.\\d-]/\n\n var entityStart = /[#:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/\n var entityBody = /[#:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\u00B7\\u0300-\\u036F\\u203F-\\u2040.\\d-]/\n\n function isWhitespace (c) {\n return c === ' ' || c === '\\n' || c === '\\r' || c === '\\t'\n }\n\n function isQuote (c) {\n return c === '\"' || c === '\\''\n }\n\n function isAttribEnd (c) {\n return c === '>' || isWhitespace(c)\n }\n\n function isMatch (regex, c) {\n return regex.test(c)\n }\n\n function notMatch (regex, c) {\n return !isMatch(regex, c)\n }\n\n var S = 0\n sax.STATE = {\n BEGIN: S++, // leading byte order mark or whitespace\n BEGIN_WHITESPACE: S++, // leading whitespace\n TEXT: S++, // general stuff\n TEXT_ENTITY: S++, // & and such.\n OPEN_WAKA: S++, // <\n SGML_DECL: S++, // \n SCRIPT: S++, // "],"names":["register","NcActions","t14","t21","t23","t50","t","LOCALHOST","COLON","defaults","noop","Options","opts","defaultRender","o","ignoredTags","uppercaseIgnoredTags","i","ir","token","key","operator","isCallable","option","obj","val","MultiToken","value","tokens","scheme","options","truncate","formatted","protocol","href","formattedHref","tagName","content","attributes","className","target","rel","attrs","eventListeners","createTokenClass","type","props","Token","p","t15","PQueue","_hoisted_1","_hoisted_2","_sfc_main","defineComponent","__props","__emit","emit","slots","useSlots","canClose","computed","hasActions","hasIcon","_ctx","_cache","openBlock","createElementBlock","normalizeClass","renderSlot","createBlock","NcIconSvgWrapper","createCommentVNode","createElementVNode","createTextVNode","toDisplayString","withCtx","NcActionButton","$event","createVNode","unref","mdiClose","NcChip","_export_sfc","t28","t6","t35","millisecondsInWeek","millisecondsInDay","millisecondsInMinute","millisecondsInHour","millisecondsInSecond","constructFromSymbol","constructFrom","date","toDate","argument","context","addDays","amount","_date","addMonths","dayOfMonth","endOfDesiredMonth","daysInMonth","add","duration","years","months","weeks","days","hours","minutes","seconds","dateWithMonths","dateWithDays","minutesToAdd","msToAdd","addMilliseconds","addHours","defaultOptions","getDefaultOptions","startOfWeek","weekStartsOn","day","diff","startOfISOWeek","getISOWeekYear","year","fourthOfJanuaryOfNextYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","getTimezoneOffsetInMilliseconds","utcDate","normalizeDates","dates","normalize","startOfDay","differenceInCalendarDays","laterDate","earlierDate","laterDate_","earlierDate_","laterStartOfDay","earlierStartOfDay","laterTimestamp","earlierTimestamp","startOfISOWeekYear","fourthOfJanuary","addQuarters","addYears","compareAsc","dateLeft","dateRight","isDate","isValid","getQuarter","differenceInCalendarYears","differenceInYears","sign","partial","result","normalizeInterval","interval","start","end","eachDayOfInterval","reversed","endTime","step","startOfQuarter","currentMonth","month","eachQuarterOfInterval","startOfMonth","endOfYear","startOfYear","date_","endOfWeek","endOfQuarter","formatDistanceLocale","formatDistance","count","tokenValue","buildFormatLongFn","args","width","dateFormats","timeFormats","dateTimeFormats","formatLong","formatRelativeLocale","formatRelative","_baseDate","_options","buildLocalizeFn","valuesArray","defaultWidth","index","eraValues","quarterValues","monthValues","dayValues","dayPeriodValues","formattingDayPeriodValues","ordinalNumber","dirtyNumber","number","rem100","localize","quarter","buildMatchFn","string","matchPattern","matchResult","matchedString","parsePatterns","findIndex","pattern","findKey","rest","object","predicate","array","buildMatchPatternFn","parseResult","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","parseEraPatterns","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","match","enUS","getDayOfYear","getISOWeek","getWeekYear","firstWeekContainsDate","firstWeekOfNextYear","firstWeekOfThisYear","startOfWeekYear","firstWeek","getWeek","addLeadingZeros","targetLength","output","lightFormatters","signedYear","dayPeriodEnumValue","numberOfDigits","milliseconds","fractionalSeconds","dayPeriodEnum","formatters","era","signedWeekYear","weekYear","twoDigitYear","isoWeekYear","week","isoWeek","dayOfYear","dayOfWeek","localDayOfWeek","isoDayOfWeek","_localize","timezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","formatTimezoneShort","timestamp","offset","delimiter","absOffset","dateLongFormatter","timeLongFormatter","dateTimeLongFormatter","datePattern","timePattern","dateTimeFormat","longFormatters","dayOfYearTokenRE","weekYearTokenRE","throwTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","warnOrThrowProtectedError","format","input","_message","message","subject","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","formatStr","locale","defaultLocale","originalDate","parts","substring","firstCharacter","longFormatter","cleanEscapedString","formatterOptions","part","formatter","matched","getDay","getDaysInMonth","monthIndex","lastDayOfMonth","getInternalDefaultOptions","getHours","getISODay","getMinutes","getMonth","getSeconds","getYear","isAfter","dateToCompare","isBefore","isEqual","leftDate","rightDate","transpose","constructor","isConstructor","TIMEZONE_UNIT_PRIORITY","Setter","_utcDate","ValueSetter","validateValue","setValue","priority","subPriority","flags","DateTimezoneSetter","reference","Parser","dateString","_value","EraParser","numericPatterns","timezonePatterns","mapValue","parseFnResult","mapFn","parseNumericPattern","parseTimezonePattern","parseAnyDigitsSigned","parseNDigits","n","parseNDigitsSigned","dayPeriodEnumToHours","dayPeriod","normalizeTwoDigitYear","currentYear","isCommonEra","absCurrentYear","rangeEnd","rangeEndCentury","isPreviousCentury","isLeapYearIndex","YearParser","valueCallback","normalizedTwoDigitYear","LocalWeekYearParser","ISOWeekYearParser","_flags","firstWeekOfYear","ExtendedYearParser","QuarterParser","StandAloneQuarterParser","MonthParser","StandAloneMonthParser","setWeek","LocalWeekParser","setISOWeek","ISOWeekParser","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","DateParser","isLeapYear","DayOfYearParser","setDay","currentDay","dayIndex","delta","DayParser","LocalDayParser","wholeWeekDays","StandAloneLocalDayParser","setISODay","ISODayParser","AMPMParser","AMPMMidnightParser","DayPeriodParser","Hour1to12Parser","isPM","Hour0to23Parser","Hour0To11Parser","Hour1To24Parser","MinuteParser","SecondParser","FractionOfSecondParser","ISOTimezoneWithZParser","ISOTimezoneParser","TimestampSecondsParser","TimestampMillisecondsParser","parsers","notWhitespaceRegExp","parse","dateStr","referenceDate","invalidDate","subFnOptions","setters","usedTokens","parser","incompatibleTokens","incompatibleToken","usedToken","uniquePrioritySetters","setter","a","b","setterArray","isSameQuarter","dateLeft_","dateRight_","subDays","setMonth","midMonth","set","values","setHours","setMilliseconds","setMinutes","setSeconds","setYear","subMonths","sub","withoutMonths","withoutDays","minutesToSub","msToSub","subYears","jt","Jn","w","W","he","Sn","Ua","Va","ja","Ka","Ga","Ze","Qa","l","La","H","wl","Fe","Dl","Ml","ot","st","Ot","je","$l","Qe","Re","Lt","un","Al","ft","Tl","f","qa","Ja","Pn","g","d","Sl","Le","s","Pl","Rn","Xa","Ne","dn","cn","Cn","Rl","Zt","Ht","Dt","Cl","Ol","Fa","Za","Ta","ca","Bl","qe","_l","On","Bn","fn","Na","da","dl","Se","Yl","Il","ol","Mt","ul","il","wn","Dn","Be","Ft","$e","Nt","Ee","_t","xt","it","Sa","Bt","yt","$t","zt","_n","ye","Me","Yn","Wt","In","bn","El","Ct","mt","Wa","kn","En","wt","pt","sl","ut","Nn","Jt","Ll","Nl","Ln","It","oa","za","Fl","Pa","Ra","vn","Ca","zl","Hl","Fn","xa","Ha","mn","cl","kt","zn","Kt","ea","Hn","j","Pe","Oa","Z","sa","Ba","_a","Ya","Ve","Ie","At","M","A","P","v","pn","Wl","gn","Ul","Vl","jl","Kl","Gl","Ql","ql","Xl","Jl","Zl","xl","er","Ia","tr","ar","nr","lr","Oe","U","$","C","z","R","h","T","F","_","m","L","rr","qt","rt","x","X","S","fl","B","k","q","le","ee","O","J","ce","pe","Y","te","y","V","se","be","Ae","u","re","G","I","or","Tt","Mn","$n","va","dt","sr","ur","We","Ue","Ut","ie","ze","He","ke","lt","Q","gt","Ke","dr","cr","fr","vr","ta","ga","Zn","at","c","De","Xt","Ce","ua","ia","mr","ma","pr","Qt","gr","Wn","aa","Te","we","xn","tt","Vt","Ge","en","tn","pa","Un","Vn","jn","An","Gt","vl","yr","na","hr","Yt","et","Je","br","kr","wr","Dr","Mr","$r","Ar","Tr","Sr","Pr","r","E","K","oe","Tn","ml","ge","_e","Ye","nt","ne","fa","Rr","Cr","Or","Br","Kn","Gn","_r","Yr","Ir","Er","Nr","Lr","Fr","zr","Hr","Wr","Ur","Vr","jr","Kr","Gr","pl","gl","yn","Qr","ae","ve","N","ue","me","ct","Pt","$a","Rt","ra","Aa","Xn","vt","xe","St","D","de","fe","ht","Xe","ya","ha","la","ba","ka","wa","Da","Ma","qr","Xr","mo","Jr","rn","sn","yl","hl","on","Zr","xr","eo","Qn","to","ao","no","lo","ro","oo","so","uo","io","hn","po","el","Et","co","tl","nn","bt","fo","vo","kl","bl","go","yo","ho","bo","ko","wo","Ea","Do","al","nl","Mo","$o","Ao","To","ll","an","ln","rl","qn","So","formatTimezoneId","timezoneId","getTimezones","tz","mergeModels","createElementId","modelValue","useModel","formattedAdditionalTimezones","label","timezones","filterBy","search","terms","term","NcSelect","getCanonicalLocale","targetElement","useTemplateRef","pickerInstance","time","placeholderFallback","realFormat","pickerType","onUpdateModelValue","value2","formatLibraryTime","data","weekStart","getFirstDay","dayNames","getDayNamesMin","weekNumName","ariaLabels","getDayNames","overlay","selectDate","cancelSelection","VueDatePicker","mergeProps","createSlots","NcButton","clear","mdiCalendarBlank","mdiClock","mdiChevronLeft","mdiChevronRight","mdiChevronDown","mdiChevronUp","_sfc_main$1","Teleport","NcDateTimePicker","margin","defaultSize","NcAvatar","userStatus","margin2","EMAIL_NOTATION","_hoisted_3","_hoisted_4","_sfc_render","$props","$setup","$data","$options","_component_NcAvatar","resolveComponent","_component_NcHighlight","_component_NcIconSvgWrapper","normalizeStyle","NcListItemIcon","t38","t41","getCapabilities","t9","list","length","thisArg","CustomEvent$1","event","params","evt","t34","t37","t0","ref","watch","clickableArea","gridBaseLine","avatarSize","search2","subname","selectedOption","NcSelectUsers","t49","debounce","query","__expose","focus","select","useAttrs","textAreaElement","internalPlaceholder","isLegacy","logger","ariaDescribedby","ariaDescribedby2","handleInput","mdiCheck","mdiAlertCircleOutline","NcTextArea","_createElementBlock","_mergeProps","_createElementVNode","_openBlock"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150]} \ No newline at end of file +{"version":3,"file":"index-FxQbLoUx.chunk.mjs","sources":["../node_modules/@nextcloud/vue/dist/chunks/NcActionButtonGroup-D1cYCNRq.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigation-NSjIVdnb.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationCaption-D4yUe1MX.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcInputConfirmCancel-CSO9hp4z.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationItem-hKUS0nZj.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationSearch-DCgwKEm9.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationSettings-T04pqKfn.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppSettingsDialog-BCVofwA8.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppSettingsShortcutsSection-QPGGYtbC.mjs","../node_modules/linkifyjs/dist/linkify.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppSidebar-BvBvQsXb.mjs","../node_modules/@nextcloud/vue/dist/functions/preloadImage/index.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcChip-D8tGFzRl.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcCollectionList-C-Zxsdgw.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcDashboardWidget-Bz1t6sj0.mjs","../node_modules/date-fns/constants.js","../node_modules/date-fns/constructFrom.js","../node_modules/date-fns/toDate.js","../node_modules/date-fns/addDays.js","../node_modules/date-fns/addMonths.js","../node_modules/date-fns/add.js","../node_modules/date-fns/addMilliseconds.js","../node_modules/date-fns/addHours.js","../node_modules/date-fns/_lib/defaultOptions.js","../node_modules/date-fns/startOfWeek.js","../node_modules/date-fns/startOfISOWeek.js","../node_modules/date-fns/getISOWeekYear.js","../node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js","../node_modules/date-fns/_lib/normalizeDates.js","../node_modules/date-fns/startOfDay.js","../node_modules/date-fns/differenceInCalendarDays.js","../node_modules/date-fns/startOfISOWeekYear.js","../node_modules/date-fns/addQuarters.js","../node_modules/date-fns/addYears.js","../node_modules/date-fns/compareAsc.js","../node_modules/date-fns/isDate.js","../node_modules/date-fns/isValid.js","../node_modules/date-fns/getQuarter.js","../node_modules/date-fns/differenceInCalendarYears.js","../node_modules/date-fns/differenceInYears.js","../node_modules/date-fns/_lib/normalizeInterval.js","../node_modules/date-fns/eachDayOfInterval.js","../node_modules/date-fns/startOfQuarter.js","../node_modules/date-fns/eachQuarterOfInterval.js","../node_modules/date-fns/startOfMonth.js","../node_modules/date-fns/endOfYear.js","../node_modules/date-fns/startOfYear.js","../node_modules/date-fns/endOfWeek.js","../node_modules/date-fns/endOfQuarter.js","../node_modules/date-fns/locale/en-US/_lib/formatDistance.js","../node_modules/date-fns/locale/_lib/buildFormatLongFn.js","../node_modules/date-fns/locale/en-US/_lib/formatLong.js","../node_modules/date-fns/locale/en-US/_lib/formatRelative.js","../node_modules/date-fns/locale/_lib/buildLocalizeFn.js","../node_modules/date-fns/locale/en-US/_lib/localize.js","../node_modules/date-fns/locale/_lib/buildMatchFn.js","../node_modules/date-fns/locale/_lib/buildMatchPatternFn.js","../node_modules/date-fns/locale/en-US/_lib/match.js","../node_modules/date-fns/locale/en-US.js","../node_modules/date-fns/getDayOfYear.js","../node_modules/date-fns/getISOWeek.js","../node_modules/date-fns/getWeekYear.js","../node_modules/date-fns/startOfWeekYear.js","../node_modules/date-fns/getWeek.js","../node_modules/date-fns/_lib/addLeadingZeros.js","../node_modules/date-fns/_lib/format/lightFormatters.js","../node_modules/date-fns/_lib/format/formatters.js","../node_modules/date-fns/_lib/format/longFormatters.js","../node_modules/date-fns/_lib/protectedTokens.js","../node_modules/date-fns/format.js","../node_modules/date-fns/getDay.js","../node_modules/date-fns/getDaysInMonth.js","../node_modules/date-fns/getDefaultOptions.js","../node_modules/date-fns/getHours.js","../node_modules/date-fns/getISODay.js","../node_modules/date-fns/getMinutes.js","../node_modules/date-fns/getMonth.js","../node_modules/date-fns/getSeconds.js","../node_modules/date-fns/getYear.js","../node_modules/date-fns/isAfter.js","../node_modules/date-fns/isBefore.js","../node_modules/date-fns/isEqual.js","../node_modules/date-fns/transpose.js","../node_modules/date-fns/parse/_lib/Setter.js","../node_modules/date-fns/parse/_lib/Parser.js","../node_modules/date-fns/parse/_lib/parsers/EraParser.js","../node_modules/date-fns/parse/_lib/constants.js","../node_modules/date-fns/parse/_lib/utils.js","../node_modules/date-fns/parse/_lib/parsers/YearParser.js","../node_modules/date-fns/parse/_lib/parsers/LocalWeekYearParser.js","../node_modules/date-fns/parse/_lib/parsers/ISOWeekYearParser.js","../node_modules/date-fns/parse/_lib/parsers/ExtendedYearParser.js","../node_modules/date-fns/parse/_lib/parsers/QuarterParser.js","../node_modules/date-fns/parse/_lib/parsers/StandAloneQuarterParser.js","../node_modules/date-fns/parse/_lib/parsers/MonthParser.js","../node_modules/date-fns/parse/_lib/parsers/StandAloneMonthParser.js","../node_modules/date-fns/setWeek.js","../node_modules/date-fns/parse/_lib/parsers/LocalWeekParser.js","../node_modules/date-fns/setISOWeek.js","../node_modules/date-fns/parse/_lib/parsers/ISOWeekParser.js","../node_modules/date-fns/parse/_lib/parsers/DateParser.js","../node_modules/date-fns/parse/_lib/parsers/DayOfYearParser.js","../node_modules/date-fns/setDay.js","../node_modules/date-fns/parse/_lib/parsers/DayParser.js","../node_modules/date-fns/parse/_lib/parsers/LocalDayParser.js","../node_modules/date-fns/parse/_lib/parsers/StandAloneLocalDayParser.js","../node_modules/date-fns/setISODay.js","../node_modules/date-fns/parse/_lib/parsers/ISODayParser.js","../node_modules/date-fns/parse/_lib/parsers/AMPMParser.js","../node_modules/date-fns/parse/_lib/parsers/AMPMMidnightParser.js","../node_modules/date-fns/parse/_lib/parsers/DayPeriodParser.js","../node_modules/date-fns/parse/_lib/parsers/Hour1to12Parser.js","../node_modules/date-fns/parse/_lib/parsers/Hour0to23Parser.js","../node_modules/date-fns/parse/_lib/parsers/Hour0To11Parser.js","../node_modules/date-fns/parse/_lib/parsers/Hour1To24Parser.js","../node_modules/date-fns/parse/_lib/parsers/MinuteParser.js","../node_modules/date-fns/parse/_lib/parsers/SecondParser.js","../node_modules/date-fns/parse/_lib/parsers/FractionOfSecondParser.js","../node_modules/date-fns/parse/_lib/parsers/ISOTimezoneWithZParser.js","../node_modules/date-fns/parse/_lib/parsers/ISOTimezoneParser.js","../node_modules/date-fns/parse/_lib/parsers/TimestampSecondsParser.js","../node_modules/date-fns/parse/_lib/parsers/TimestampMillisecondsParser.js","../node_modules/date-fns/parse/_lib/parsers.js","../node_modules/date-fns/parse.js","../node_modules/date-fns/isSameQuarter.js","../node_modules/date-fns/subDays.js","../node_modules/date-fns/setMonth.js","../node_modules/date-fns/set.js","../node_modules/date-fns/setHours.js","../node_modules/date-fns/setMilliseconds.js","../node_modules/date-fns/setMinutes.js","../node_modules/date-fns/setSeconds.js","../node_modules/date-fns/setYear.js","../node_modules/date-fns/subMonths.js","../node_modules/date-fns/sub.js","../node_modules/date-fns/subYears.js","../node_modules/@vuepic/vue-datepicker/dist/vue-datepicker.js","../node_modules/@nextcloud/vue/dist/chunks/NcTimezonePicker.vue_vue_type_script_setup_true_lang-CGFRZR-3.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcDateTimePicker-DTf51PD8.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcKbd-D3YSTteg.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcHotkeyList-BBE5BqwB.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcListItemIcon-8fWhyS_R.mjs","../node_modules/tributejs/dist/tribute.esm.js","../node_modules/@nextcloud/vue/dist/chunks/NcProgressBar-DDMAo4h-.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcRelatedResourcesPanel-BVGAmIja.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcRichContenteditable-0w6dbJeG.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcSelectTags-DJwqmQ7_.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcSelectUsers-DVTI1DIZ.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcSettingsSelectGroup-CuRTrvVN.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcTextArea-CdtxX_QJ.mjs","../node_modules/vue-material-design-icons/Plus.vue"],"sourcesContent":["import '../assets/NcActionButtonGroup-Bt8kRk79.css';\nimport { defineComponent, createElementBlock, openBlock, createCommentVNode, createElementVNode, toDisplayString, renderSlot } from \"vue\";\nimport { r as register, a as t } from \"./_l10n-DrTiip5c.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { a as NC_ACTIONS_IS_SEMANTIC_MENU } from \"./useNcActions-CiGWxAJE.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister();\nconst _sfc_main = defineComponent({\n name: \"NcActionButtonGroup\",\n inject: {\n isInSemanticMenu: {\n from: NC_ACTIONS_IS_SEMANTIC_MENU,\n default: false\n }\n },\n props: {\n /**\n * Optional text shown below the button group\n */\n name: {\n required: false,\n default: void 0,\n type: String\n }\n },\n setup() {\n return {\n labelId: createElementId()\n };\n },\n methods: {\n t\n }\n});\nconst _hoisted_1 = [\"role\"];\nconst _hoisted_2 = [\"id\"];\nconst _hoisted_3 = [\"aria-labelledby\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"li\", {\n class: \"nc-button-group-base\",\n role: _ctx.isInSemanticMenu && \"presentation\"\n }, [\n _ctx.name ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n id: _ctx.labelId\n }, toDisplayString(_ctx.name), 9, _hoisted_2)) : createCommentVNode(\"\", true),\n createElementVNode(\"ul\", {\n class: \"nc-button-group-content\",\n role: \"group\",\n \"aria-labelledby\": _ctx.name ? _ctx.labelId : void 0\n }, [\n renderSlot(_ctx.$slots, \"default\")\n ], 8, _hoisted_3)\n ], 8, _hoisted_1);\n}\nconst NcActionButtonGroup = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-6a2b8de0\"]]);\nexport {\n NcActionButtonGroup as N\n};\n//# sourceMappingURL=NcActionButtonGroup-D1cYCNRq.mjs.map\n","import '../assets/NcAppNavigation-f2zUqaiQ.css';\nimport { defineComponent, useModel, computed, createElementBlock, openBlock, createVNode, unref, withCtx, inject, warn, useTemplateRef, ref, watchEffect, watch, onMounted, onUnmounted, normalizeClass, createElementVNode, withKeys, createBlock, createCommentVNode, renderSlot } from \"vue\";\nimport { subscribe, emit, unsubscribe } from \"@nextcloud/event-bus\";\nimport { createFocusTrap } from \"focus-trap\";\nimport { N as NcAppNavigationList } from \"./NcAppNavigationList-BX0wE-dB.mjs\";\nimport { E as mdiMenuOpen, F as mdiMenu } from \"./mdi-XFJRiRqJ.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-BvLanNaW.mjs\";\nimport { r as register, a as t } from \"./_l10n-DrTiip5c.mjs\";\nimport { N as NcButton } from \"./NcButton-Dc8V4Urj.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { useIsMobile } from \"../composables/useIsMobile/index.mjs\";\nimport { g as getTrapStack } from \"./focusTrap-HJQ4pqHV.mjs\";\nimport { H as HAS_APP_NAVIGATION_KEY } from \"./constants-DrSznhwy.mjs\";\nregister();\nconst _hoisted_1$1 = { class: \"app-navigation-toggle-wrapper\" };\nconst _sfc_main$1 = /* @__PURE__ */ defineComponent({\n __name: \"NcAppNavigationToggle\",\n props: {\n \"open\": { type: Boolean, ...{ required: true } },\n \"openModifiers\": {}\n },\n emits: [\"update:open\"],\n setup(__props) {\n const open = useModel(__props, \"open\");\n const title = computed(() => open.value ? t(\"Close navigation\") : t(\"Open navigation\"));\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1$1, [\n createVNode(unref(NcButton), {\n class: \"app-navigation-toggle\",\n \"aria-controls\": \"app-navigation-vue\",\n \"aria-expanded\": open.value ? \"true\" : \"false\",\n \"aria-label\": title.value,\n title: title.value,\n variant: \"tertiary\",\n onClick: _cache[0] || (_cache[0] = ($event) => open.value = !open.value)\n }, {\n icon: withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n path: open.value ? unref(mdiMenuOpen) : unref(mdiMenu)\n }, null, 8, [\"path\"])\n ]),\n _: 1\n }, 8, [\"aria-expanded\", \"aria-label\", \"title\"])\n ]);\n };\n }\n});\nconst NcAppNavigationToggle = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"__scopeId\", \"data-v-5a15295d\"]]);\nconst _hoisted_1 = [\"aria-hidden\", \"aria-label\", \"aria-labelledby\", \"inert\"];\nconst _hoisted_2 = { class: \"app-navigation__search\" };\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcAppNavigation\",\n props: {\n ariaLabel: {},\n ariaLabelledby: {}\n },\n setup(__props) {\n const props = __props;\n let focusTrap;\n const setHasAppNavigation = inject(\n HAS_APP_NAVIGATION_KEY,\n () => warn(\"NcAppNavigation is not mounted inside NcContent, this is probably an error.\"),\n false\n );\n const appNavigationContainerElement = useTemplateRef(\"appNavigationContainer\");\n const isMobile = useIsMobile();\n const open = ref(!isMobile.value);\n watchEffect(() => {\n if (!props.ariaLabel && !props.ariaLabelledby) {\n warn(\"NcAppNavigation requires either `ariaLabel` or `ariaLabelledby` to be set for accessibility.\");\n }\n });\n watch(isMobile, () => {\n open.value = !isMobile.value;\n });\n watch(open, () => {\n toggleFocusTrap();\n });\n onMounted(() => {\n setHasAppNavigation(true);\n subscribe(\"toggle-navigation\", toggleNavigationByEventBus);\n emit(\"navigation-toggled\", {\n open: open.value\n });\n focusTrap = createFocusTrap(appNavigationContainerElement.value, {\n allowOutsideClick: true,\n fallbackFocus: appNavigationContainerElement.value,\n trapStack: getTrapStack(),\n escapeDeactivates: false\n });\n toggleFocusTrap();\n });\n onUnmounted(() => {\n setHasAppNavigation(false);\n unsubscribe(\"toggle-navigation\", toggleNavigationByEventBus);\n focusTrap.deactivate();\n });\n function toggleNavigation(state) {\n if (open.value === state) {\n emit(\"navigation-toggled\", {\n open: open.value\n });\n return;\n }\n open.value = state === void 0 ? !open.value : state;\n const bodyStyles = getComputedStyle(document.body);\n const animationLength = parseInt(bodyStyles.getPropertyValue(\"--animation-quick\")) || 100;\n setTimeout(() => {\n emit(\"navigation-toggled\", {\n open: open.value\n });\n }, 1.5 * animationLength);\n }\n function toggleNavigationByEventBus({ open: open2 }) {\n return toggleNavigation(open2);\n }\n function toggleFocusTrap() {\n if (isMobile.value && open.value) {\n focusTrap.activate();\n } else {\n focusTrap.deactivate();\n }\n }\n function handleEsc() {\n if (isMobile.value) {\n toggleNavigation(false);\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n ref: \"appNavigationContainer\",\n class: normalizeClass([\"app-navigation\", { \"app-navigation--closed\": !open.value }])\n }, [\n createElementVNode(\"nav\", {\n id: \"app-navigation-vue\",\n \"aria-hidden\": open.value ? \"false\" : \"true\",\n \"aria-label\": _ctx.ariaLabel || void 0,\n \"aria-labelledby\": _ctx.ariaLabelledby || void 0,\n class: \"app-navigation__content\",\n inert: !open.value || void 0,\n onKeydown: withKeys(handleEsc, [\"esc\"])\n }, [\n createElementVNode(\"div\", _hoisted_2, [\n renderSlot(_ctx.$slots, \"search\", {}, void 0, true)\n ]),\n createElementVNode(\"div\", {\n class: normalizeClass([\"app-navigation__body\", { \"app-navigation__body--no-list\": !_ctx.$slots.list }])\n }, [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ], 2),\n _ctx.$slots.list ? (openBlock(), createBlock(NcAppNavigationList, {\n key: 0,\n class: \"app-navigation__list\"\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"list\", {}, void 0, true)\n ]),\n _: 3\n })) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"footer\", {}, void 0, true)\n ], 40, _hoisted_1),\n createVNode(NcAppNavigationToggle, {\n open: open.value,\n \"onUpdate:open\": toggleNavigation\n }, null, 8, [\"open\"])\n ], 2);\n };\n }\n});\nconst NcAppNavigation = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-d5ce90cd\"]]);\nexport {\n NcAppNavigation as N\n};\n//# sourceMappingURL=NcAppNavigation-NSjIVdnb.mjs.map\n","import '../assets/NcAppNavigationCaption-HUg9fMCm.css';\nimport { N as NcActions } from \"./NcActions-DWmvh7-Y.mjs\";\nimport { resolveComponent, createBlock, openBlock, resolveDynamicComponent, normalizeClass, withCtx, createElementBlock, createCommentVNode, createTextVNode, toDisplayString, createVNode, normalizeProps, guardReactiveProps, renderSlot } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcAppNavigationCaption\",\n components: {\n NcActions\n },\n props: {\n /**\n * The text of the caption\n */\n name: {\n type: String,\n required: true\n },\n /**\n * `id` to set on the inner caption\n * Can be used for connecting the `NcActionCaption` with `NcActionList` using `aria-labelledby`.\n */\n headingId: {\n type: String,\n default: null\n },\n /**\n * Enable when used as a heading\n * e.g. Before NcAppNavigationList\n */\n isHeading: {\n type: Boolean,\n default: false\n },\n /**\n * If `isHeading` is set, this defines the heading level that should be used\n */\n headingLevel: {\n type: Number,\n default: 2\n },\n /**\n * Any [NcActions](#/Components/NcActions?id=ncactions-1) prop\n */\n // Not an actual prop but needed to show in vue-styleguidist docs\n ...NcActions.props\n },\n computed: {\n actionsProps() {\n const actionProps = Object.keys(NcActions.props);\n const props = Object.entries(this.$props).filter(([key, _value]) => actionProps.includes(key));\n return Object.fromEntries(props);\n },\n wrapperTag() {\n return this.isHeading ? \"div\" : \"li\";\n },\n captionTag() {\n const headingLevel = Math.max(2, this.headingLevel);\n return this.isHeading ? `h${headingLevel}` : \"span\";\n }\n }\n};\nconst _hoisted_1 = {\n key: 0,\n class: \"app-navigation-caption__actions\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcActions = resolveComponent(\"NcActions\");\n return openBlock(), createBlock(resolveDynamicComponent($options.wrapperTag), {\n class: normalizeClass([\"app-navigation-caption\", { \"app-navigation-caption--heading\": $props.isHeading }])\n }, {\n default: withCtx(() => [\n (openBlock(), createBlock(resolveDynamicComponent($options.captionTag), {\n id: $props.headingId,\n class: \"app-navigation-caption__name\"\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString($props.name), 1)\n ]),\n _: 1\n }, 8, [\"id\"])),\n !!_ctx.$slots.actions ? (openBlock(), createElementBlock(\"div\", _hoisted_1, [\n createVNode(_component_NcActions, normalizeProps(guardReactiveProps($options.actionsProps)), {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"actionsTriggerIcon\", {}, void 0, true)\n ]),\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"actions\", {}, void 0, true)\n ]),\n _: 3\n }, 16)\n ])) : createCommentVNode(\"\", true)\n ]),\n _: 3\n }, 8, [\"class\"]);\n}\nconst NcAppNavigationCaption = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-21e6b451\"]]);\nexport {\n NcAppNavigationCaption as N\n};\n//# sourceMappingURL=NcAppNavigationCaption-D4yUe1MX.mjs.map\n","import '../assets/NcInputConfirmCancel-BrdZEfr2.css';\nimport { I as IconArrowRight } from \"./ArrowRight-DRKHUZMH.mjs\";\nimport { I as IconClose } from \"./Close-D6ngJ4t9.mjs\";\nimport { r as register, g as t14, a as t } from \"./_l10n-DrTiip5c.mjs\";\nimport { N as NcButton } from \"./NcButton-Dc8V4Urj.mjs\";\nimport { resolveComponent, createElementBlock, openBlock, createElementVNode, withModifiers, withKeys, withDirectives, createVNode, vModelText, withCtx } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t14);\nconst _sfc_main = {\n name: \"NcInputConfirmCancel\",\n components: {\n IconArrowRight,\n IconClose,\n NcButton\n },\n props: {\n /**\n * If this element is used on a primary element set to true for primary styling.\n */\n primary: {\n default: false,\n type: Boolean\n },\n /**\n * Placeholder of the edit field\n */\n placeholder: {\n default: \"\",\n type: String\n },\n /**\n * The current name (model value)\n */\n modelValue: {\n default: \"\",\n type: String\n }\n },\n emits: [\n \"cancel\",\n \"confirm\",\n \"update:modelValue\"\n ],\n data() {\n return {\n labelConfirm: t(\"Confirm changes\"),\n labelCancel: t(\"Cancel changes\")\n };\n },\n computed: {\n valueModel: {\n get() {\n return this.modelValue;\n },\n set(newValue) {\n this.$emit(\"update:modelValue\", newValue);\n }\n }\n },\n methods: {\n confirm() {\n this.$emit(\"confirm\");\n },\n cancel() {\n this.$emit(\"cancel\");\n },\n focusInput() {\n this.$refs.input.focus();\n }\n }\n};\nconst _hoisted_1 = { class: \"app-navigation-input-confirm\" };\nconst _hoisted_2 = [\"placeholder\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_IconArrowRight = resolveComponent(\"IconArrowRight\");\n const _component_NcButton = resolveComponent(\"NcButton\");\n const _component_IconClose = resolveComponent(\"IconClose\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1, [\n createElementVNode(\"form\", {\n onSubmit: _cache[1] || (_cache[1] = withModifiers((...args) => $options.confirm && $options.confirm(...args), [\"prevent\"])),\n onKeydown: _cache[2] || (_cache[2] = withKeys(withModifiers((...args) => $options.cancel && $options.cancel(...args), [\"exact\", \"stop\", \"prevent\"]), [\"esc\"])),\n onClick: _cache[3] || (_cache[3] = withModifiers(() => {\n }, [\"stop\", \"prevent\"]))\n }, [\n withDirectives(createElementVNode(\"input\", {\n ref: \"input\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => $options.valueModel = $event),\n type: \"text\",\n class: \"app-navigation-input-confirm__input\",\n placeholder: $props.placeholder\n }, null, 8, _hoisted_2), [\n [vModelText, $options.valueModel]\n ]),\n createVNode(_component_NcButton, {\n \"aria-label\": $data.labelConfirm,\n type: \"submit\",\n variant: \"primary\",\n onClick: withModifiers($options.confirm, [\"stop\", \"prevent\"])\n }, {\n icon: withCtx(() => [\n createVNode(_component_IconArrowRight, { size: 20 })\n ]),\n _: 1\n }, 8, [\"aria-label\", \"onClick\"]),\n createVNode(_component_NcButton, {\n \"aria-label\": $data.labelCancel,\n type: \"reset\",\n variant: $props.primary ? \"primary\" : \"tertiary\",\n onClick: withModifiers($options.cancel, [\"stop\", \"prevent\"])\n }, {\n icon: withCtx(() => [\n createVNode(_component_IconClose, { size: 20 })\n ]),\n _: 1\n }, 8, [\"aria-label\", \"variant\", \"onClick\"])\n ], 32)\n ]);\n}\nconst NcInputConfirmCancel = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-dd457d48\"]]);\nexport {\n NcInputConfirmCancel as N\n};\n//# sourceMappingURL=NcInputConfirmCancel-CSO9hp4z.mjs.map\n","import '../assets/NcAppNavigationItem-D97Onpd9.css';\nimport { createElementBlock, openBlock, mergeProps, createElementVNode, createCommentVNode, toDisplayString, resolveComponent, createBlock, normalizeClass, withCtx, resolveDynamicComponent, normalizeProps, guardReactiveProps, renderSlot, withKeys, withModifiers, createVNode, createTextVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { C as ChevronDown } from \"./ChevronDown-FiGpp0KT.mjs\";\nimport { C as ChevronUp } from \"./ChevronUp-DPXFp1ss.mjs\";\nimport { r as register, v as t21, a as t, w as t50, x as t23 } from \"./_l10n-DrTiip5c.mjs\";\nimport { N as NcButton } from \"./NcButton-Dc8V4Urj.mjs\";\nimport { N as NcInputConfirmCancel } from \"./NcInputConfirmCancel-CSO9hp4z.mjs\";\nimport { useIsMobile } from \"../composables/useIsMobile/index.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { N as NcActionButton } from \"./NcActionButton-pKOSrlGE.mjs\";\nimport { N as NcActions } from \"./NcActions-DWmvh7-Y.mjs\";\nimport { N as NcLoadingIcon } from \"./NcLoadingIcon-b_ajZ_nQ.mjs\";\nimport { _ as _sfc_main$4 } from \"./NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs\";\nconst _sfc_main$3 = {\n name: \"PencilIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$2 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$2 = { d: \"M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z\" };\nconst _hoisted_4$2 = { key: 0 };\nfunction _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon pencil-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$2, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$2, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$2))\n ], 16, _hoisted_1$2);\n}\nconst Pencil = /* @__PURE__ */ _export_sfc(_sfc_main$3, [[\"render\", _sfc_render$3]]);\nconst _sfc_main$2 = {\n name: \"UndoIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$1 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$1 = { d: \"M12.5,8C9.85,8 7.45,9 5.6,10.6L2,7V16H11L7.38,12.38C8.77,11.22 10.54,10.5 12.5,10.5C16.04,10.5 19.05,12.81 20.1,16L22.47,15.22C21.08,11.03 17.15,8 12.5,8Z\" };\nconst _hoisted_4$1 = { key: 0 };\nfunction _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon undo-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$1, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$1, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$1))\n ], 16, _hoisted_1$1);\n}\nconst Undo = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"render\", _sfc_render$2]]);\nregister(t21);\nconst _sfc_main$1 = {\n name: \"NcAppNavigationIconCollapsible\",\n components: {\n NcButton,\n ChevronDown,\n ChevronUp\n },\n props: {\n /**\n * Is the list currently open (or collapsed)\n */\n open: {\n type: Boolean,\n required: true\n },\n /**\n * Is the navigation item currently active.\n */\n active: {\n type: Boolean,\n required: true\n }\n },\n emits: [\"click\"],\n computed: {\n labelButton() {\n return this.open ? t(\"Collapse menu\") : t(\"Open menu\");\n }\n },\n methods: {\n onClick(e) {\n this.$emit(\"click\", e);\n }\n }\n};\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_ChevronUp = resolveComponent(\"ChevronUp\");\n const _component_ChevronDown = resolveComponent(\"ChevronDown\");\n const _component_NcButton = resolveComponent(\"NcButton\");\n return openBlock(), createBlock(_component_NcButton, {\n class: normalizeClass([\"icon-collapse\", {\n \"icon-collapse--active\": $props.active,\n \"icon-collapse--open\": $props.open\n }]),\n \"aria-label\": $options.labelButton,\n variant: $props.active ? \"tertiary-on-primary\" : \"tertiary\",\n onClick: $options.onClick\n }, {\n icon: withCtx(() => [\n $props.open ? (openBlock(), createBlock(_component_ChevronUp, {\n key: 0,\n size: 20\n })) : (openBlock(), createBlock(_component_ChevronDown, {\n key: 1,\n size: 20\n }))\n ]),\n _: 1\n }, 8, [\"class\", \"aria-label\", \"variant\", \"onClick\"]);\n}\nconst NcAppNavigationIconCollapsible = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1], [\"__scopeId\", \"data-v-e6236e50\"]]);\nregister(t23, t50);\nconst _sfc_main = {\n name: \"NcAppNavigationItem\",\n components: {\n NcActions,\n NcActionButton,\n NcAppNavigationIconCollapsible,\n NcInputConfirmCancel,\n NcLoadingIcon,\n NcVNodes: _sfc_main$4,\n Pencil,\n Undo\n },\n props: {\n /**\n * If you are not using vue-router you can use the property to set this item as the active navigation entry.\n * When using vue-router and the `to` property this is set automatically.\n */\n active: {\n type: Boolean,\n default: false\n },\n /**\n * The main text content of the entry.\n */\n name: {\n type: String,\n required: true\n },\n /**\n * The title attribute of the element.\n */\n title: {\n type: String,\n default: null\n },\n /**\n * id attribute of the list item element\n */\n id: {\n type: String,\n default: () => createElementId(),\n validator: (id) => id.trim() !== \"\"\n },\n /**\n * Refers to the icon on the left, this prop accepts a class\n * like 'icon-category-enabled'.\n */\n icon: {\n type: String,\n default: \"\"\n },\n /**\n * Displays a loading animated icon on the left of the element\n * instead of the icon.\n */\n loading: {\n type: Boolean,\n default: false\n },\n /**\n * Passing in a route will make the root element of this\n * component a `` that points to that route.\n * By leaving this blank, the root element will be a `
  • `.\n */\n to: {\n type: [String, Object],\n default: null\n },\n /**\n * A direct link. This will be used as the `href` attribute.\n * This will ignore any `to` prop being defined.\n */\n href: {\n type: String,\n default: null\n },\n /**\n * Gives the possibility to collapse the children elements into the\n * parent element (true) or expands the children elements (false).\n */\n allowCollapse: {\n type: Boolean,\n default: false\n },\n /**\n * Makes the name of the item editable by providing an `ActionButton`\n * component that toggles a form\n */\n editable: {\n type: Boolean,\n default: false\n },\n /**\n * Only for 'editable' items, sets label for the edit action button.\n */\n editLabel: {\n type: String,\n default: \"\"\n },\n /**\n * Only for items in 'editable' mode, sets the placeholder text for the editing form.\n */\n editPlaceholder: {\n type: String,\n default: \"\"\n },\n /**\n * Pins the item to the bottom left area, above the settings. Do not\n * place 'non-pinned' `AppnavigationItem` components below `pinned`\n * ones.\n */\n pinned: {\n type: Boolean,\n default: false\n },\n /**\n * Puts the item in the 'undo' state.\n */\n undo: {\n type: Boolean,\n default: false\n },\n /**\n * The navigation collapsible state (synced)\n */\n open: {\n type: Boolean,\n default: false\n },\n /**\n * The actions menu open state (synced)\n */\n menuOpen: {\n type: Boolean,\n default: false\n },\n /**\n * Force the actions to display in a three dot menu\n */\n forceMenu: {\n type: Boolean,\n default: false\n },\n /**\n * The action's menu default icon\n */\n menuIcon: {\n type: String,\n default: void 0\n },\n /**\n * The action's menu direction\n */\n menuPlacement: {\n type: String,\n default: \"bottom\"\n },\n /**\n * Entry aria details\n */\n ariaDescription: {\n type: String,\n default: null\n },\n /**\n * To be used only when the elements in the actions menu are very important\n */\n forceDisplayActions: {\n type: Boolean,\n default: false\n },\n /**\n * Number of action items outside the menu\n */\n inlineActions: {\n type: Number,\n default: 0\n }\n },\n emits: [\n \"update:menuOpen\",\n \"update:open\",\n \"update:name\",\n \"click\",\n \"undo\"\n ],\n setup() {\n return {\n isMobile: useIsMobile()\n };\n },\n data() {\n return {\n actionsBoundariesElement: void 0,\n editingValue: \"\",\n opened: this.open,\n // Collapsible state\n editingActive: false,\n /**\n * Tracks the open state of the actions menu\n */\n menuOpenLocalValue: false,\n focused: false\n };\n },\n computed: {\n isRouterLink() {\n return this.to && !this.href;\n },\n // Checks if the component is already a children of another\n // instance of AppNavigationItem\n canHaveChildren() {\n if (this.$parent.$options._componentTag === \"AppNavigationItem\") {\n return false;\n } else {\n return true;\n }\n },\n editButtonAriaLabel() {\n return this.editLabel ? this.editLabel : t(\"Edit item\");\n },\n undoButtonAriaLabel() {\n return t(\"Undo changes\");\n }\n },\n watch: {\n open(newVal) {\n this.opened = newVal;\n }\n },\n mounted() {\n this.actionsBoundariesElement = document.querySelector(\"#content-vue\") || void 0;\n },\n methods: {\n // sync opened menu state with prop\n onMenuToggle(state) {\n this.$emit(\"update:menuOpen\", state);\n this.menuOpenLocalValue = state;\n },\n // toggle the collapsible state\n toggleCollapse() {\n this.opened = !this.opened;\n this.$emit(\"update:open\", this.opened);\n },\n /**\n * Handle link click\n *\n * @param {PointerEvent} event - Native click event\n * @param {Function} [navigate] - VueRouter link's navigate if any\n * @param {string} [routerLinkHref] - VueRouter link's href\n */\n onClick(event, navigate, routerLinkHref) {\n this.$emit(\"click\", event);\n if (event.metaKey || event.altKey || event.ctrlKey || event.shiftKey) {\n return;\n }\n if (routerLinkHref) {\n navigate?.(event);\n event.preventDefault();\n }\n },\n // Edition methods\n handleEdit() {\n this.editingValue = this.name;\n this.editingActive = true;\n this.onMenuToggle(false);\n this.$nextTick(() => {\n this.$refs.editingInput.focusInput();\n });\n },\n cancelEditing() {\n this.editingActive = false;\n },\n handleEditingDone() {\n this.$emit(\"update:name\", this.editingValue);\n this.editingValue = \"\";\n this.editingActive = false;\n },\n // Undo methods\n handleUndo() {\n this.$emit(\"undo\");\n },\n /**\n * Show actions upon focus\n */\n handleFocus() {\n this.focused = true;\n },\n handleBlur() {\n this.focused = false;\n },\n /**\n * This method checks if the root element of the component is focused and\n * if that's the case it focuses the actions button if available\n *\n * @param {Event} e the keydown event\n */\n handleTab(e) {\n if (!this.$refs.actions) {\n return;\n }\n if (this.focused) {\n e.preventDefault();\n this.$refs.actions.$refs.triggerButton.$el.focus();\n this.focused = false;\n } else {\n this.$refs.actions.$refs.triggerButton.$el.blur();\n }\n },\n /**\n * Is this an external link\n *\n * @param {string} href The link to check\n * @return {boolean} Whether it is external or not\n */\n isExternal(href) {\n return href && href.match(/[a-z]+:\\/\\//i);\n }\n }\n};\nconst _hoisted_1 = [\"id\"];\nconst _hoisted_2 = [\"aria-current\", \"aria-description\", \"aria-expanded\", \"href\", \"target\", \"title\", \"onClick\"];\nconst _hoisted_3 = {\n key: 0,\n class: \"editingContainer\"\n};\nconst _hoisted_4 = {\n key: 1,\n class: \"app-navigation-entry__deleted\"\n};\nconst _hoisted_5 = { class: \"app-navigation-entry__deleted-description\" };\nconst _hoisted_6 = {\n key: 0,\n class: \"app-navigation-entry__counter-wrapper\"\n};\nconst _hoisted_7 = {\n key: 0,\n class: \"app-navigation-entry__children\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcLoadingIcon = resolveComponent(\"NcLoadingIcon\");\n const _component_NcInputConfirmCancel = resolveComponent(\"NcInputConfirmCancel\");\n const _component_Pencil = resolveComponent(\"Pencil\");\n const _component_NcActionButton = resolveComponent(\"NcActionButton\");\n const _component_Undo = resolveComponent(\"Undo\");\n const _component_NcActions = resolveComponent(\"NcActions\");\n const _component_NcAppNavigationIconCollapsible = resolveComponent(\"NcAppNavigationIconCollapsible\");\n return openBlock(), createElementBlock(\"li\", {\n id: $props.id,\n class: normalizeClass([{\n \"app-navigation-entry--opened\": $data.opened,\n \"app-navigation-entry--pinned\": $props.pinned,\n \"app-navigation-entry--collapsible\": $props.allowCollapse && !!_ctx.$slots.default\n }, \"app-navigation-entry-wrapper\"])\n }, [\n (openBlock(), createBlock(resolveDynamicComponent($options.isRouterLink ? \"router-link\" : \"NcVNodes\"), normalizeProps(guardReactiveProps({ ...$options.isRouterLink && { custom: true, to: $props.to } })), {\n default: withCtx(({ href: routerLinkHref, navigate, isActive }) => [\n createElementVNode(\"div\", {\n class: normalizeClass([\"app-navigation-entry\", {\n \"app-navigation-entry--editing\": $data.editingActive,\n \"app-navigation-entry--deleted\": $props.undo,\n active: $props.to && isActive || $props.active\n }])\n }, [\n !$props.undo ? (openBlock(), createElementBlock(\"a\", {\n key: 0,\n class: \"app-navigation-entry-link\",\n \"aria-current\": $props.active || $props.to && isActive ? \"page\" : void 0,\n \"aria-description\": $props.ariaDescription,\n \"aria-expanded\": !!_ctx.$slots.default ? $data.opened.toString() : void 0,\n href: $props.href || routerLinkHref || \"#\",\n target: $options.isExternal($props.href) ? \"_blank\" : void 0,\n title: $props.title || $props.name,\n onBlur: _cache[1] || (_cache[1] = (...args) => $options.handleBlur && $options.handleBlur(...args)),\n onClick: ($event) => $options.onClick($event, navigate, routerLinkHref),\n onFocus: _cache[2] || (_cache[2] = (...args) => $options.handleFocus && $options.handleFocus(...args)),\n onKeydown: _cache[3] || (_cache[3] = withKeys(withModifiers((...args) => $options.handleTab && $options.handleTab(...args), [\"exact\"]), [\"tab\"]))\n }, [\n createElementVNode(\"div\", {\n class: normalizeClass([\"app-navigation-entry-icon\", { [$props.icon]: $props.icon }])\n }, [\n $props.loading ? (openBlock(), createBlock(_component_NcLoadingIcon, { key: 0 })) : renderSlot(_ctx.$slots, \"icon\", {\n key: 1,\n active: $props.active || $props.to && isActive\n }, void 0, true)\n ], 2),\n createElementVNode(\"span\", {\n class: normalizeClass([\"app-navigation-entry__name\", { \"hidden-visually\": $data.editingActive }])\n }, toDisplayString($props.name), 3),\n $data.editingActive ? (openBlock(), createElementBlock(\"div\", _hoisted_3, [\n createVNode(_component_NcInputConfirmCancel, {\n ref: \"editingInput\",\n modelValue: $data.editingValue,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => $data.editingValue = $event),\n placeholder: $props.editPlaceholder !== \"\" ? $props.editPlaceholder : $props.name,\n primary: $props.to && isActive || $props.active,\n onCancel: $options.cancelEditing,\n onConfirm: $options.handleEditingDone\n }, null, 8, [\"modelValue\", \"placeholder\", \"primary\", \"onCancel\", \"onConfirm\"])\n ])) : createCommentVNode(\"\", true)\n ], 40, _hoisted_2)) : createCommentVNode(\"\", true),\n $props.undo ? (openBlock(), createElementBlock(\"div\", _hoisted_4, [\n createElementVNode(\"div\", _hoisted_5, toDisplayString($props.name), 1)\n ])) : createCommentVNode(\"\", true),\n (!!_ctx.$slots.actions || !!_ctx.$slots.counter || $props.editable || $props.undo) && !$data.editingActive ? (openBlock(), createElementBlock(\"div\", {\n key: 2,\n class: normalizeClass([\"app-navigation-entry__utils\", { \"app-navigation-entry__utils--display-actions\": $props.forceDisplayActions || $data.menuOpenLocalValue || $props.menuOpen }])\n }, [\n !!_ctx.$slots.counter ? (openBlock(), createElementBlock(\"div\", _hoisted_6, [\n renderSlot(_ctx.$slots, \"counter\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true),\n !!_ctx.$slots.actions || $props.editable && !$data.editingActive || $props.undo ? (openBlock(), createBlock(_component_NcActions, {\n key: 1,\n ref: \"actions\",\n class: \"app-navigation-entry__actions\",\n container: \"#app-navigation-vue\",\n \"boundaries-element\": $data.actionsBoundariesElement,\n inline: $props.inlineActions,\n placement: $props.menuPlacement,\n open: $props.menuOpen,\n \"force-menu\": $props.forceMenu,\n \"default-icon\": $props.menuIcon,\n variant: $props.to && isActive || $props.active ? \"tertiary-on-primary\" : \"tertiary\",\n \"onUpdate:open\": $options.onMenuToggle\n }, {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"menu-icon\", {}, void 0, true)\n ]),\n default: withCtx(() => [\n $props.editable && !$data.editingActive ? (openBlock(), createBlock(_component_NcActionButton, {\n key: 0,\n \"aria-label\": $options.editButtonAriaLabel,\n onClick: $options.handleEdit\n }, {\n icon: withCtx(() => [\n createVNode(_component_Pencil, { size: 20 })\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString($props.editLabel), 1)\n ]),\n _: 1\n }, 8, [\"aria-label\", \"onClick\"])) : createCommentVNode(\"\", true),\n $props.undo ? (openBlock(), createBlock(_component_NcActionButton, {\n key: 1,\n \"aria-label\": $options.undoButtonAriaLabel,\n onClick: $options.handleUndo\n }, {\n icon: withCtx(() => [\n createVNode(_component_Undo, { size: 20 })\n ]),\n _: 1\n }, 8, [\"aria-label\", \"onClick\"])) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"actions\", {}, void 0, true)\n ]),\n _: 2\n }, 1032, [\"boundaries-element\", \"inline\", \"placement\", \"open\", \"force-menu\", \"default-icon\", \"variant\", \"onUpdate:open\"])) : createCommentVNode(\"\", true)\n ], 2)) : createCommentVNode(\"\", true),\n $props.allowCollapse && !!_ctx.$slots.default ? (openBlock(), createBlock(_component_NcAppNavigationIconCollapsible, {\n key: 3,\n active: $props.to && isActive || $props.active,\n open: $data.opened,\n onClick: withModifiers($options.toggleCollapse, [\"prevent\", \"stop\"])\n }, null, 8, [\"active\", \"open\", \"onClick\"])) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"extra\", {}, void 0, true)\n ], 2)\n ]),\n _: 3\n }, 16)),\n $options.canHaveChildren && !!_ctx.$slots.default ? (openBlock(), createElementBlock(\"ul\", _hoisted_7, [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true)\n ], 10, _hoisted_1);\n}\nconst NcAppNavigationItem = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-d600f829\"]]);\nexport {\n NcAppNavigationItem as N\n};\n//# sourceMappingURL=NcAppNavigationItem-hKUS0nZj.mjs.map\n","import '../assets/NcAppNavigationSearch-BH8hBjGe.css';\nimport { defineComponent, mergeModels, useModel, useSlots, ref, useTemplateRef, watch, createElementBlock, openBlock, normalizeClass, createVNode, createCommentVNode, unref, withCtx, renderSlot, nextTick } from \"vue\";\nimport { useFocusWithin } from \"@vueuse/core\";\nimport { I as IconClose } from \"./Close-D6ngJ4t9.mjs\";\nimport { N as NcInputField } from \"./NcInputField-Bwsh2aHY.mjs\";\nimport { r as register, a as t } from \"./_l10n-DrTiip5c.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister();\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcAppNavigationSearch\",\n props: /* @__PURE__ */ mergeModels({\n /**\n * Text used to label the search input\n */\n label: {\n type: String,\n default: t(\"Search …\")\n },\n /**\n * Placeholder of the search input\n * By default the value of `label` is used.\n */\n placeholder: {\n type: String,\n default: null\n }\n }, {\n \"modelValue\": { default: \"\" },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props) {\n const model = useModel(__props, \"modelValue\");\n const slots = useSlots();\n const inputElement = ref();\n const { focused: inputHasFocus } = useFocusWithin(inputElement);\n const transitionTimeout = Number.parseInt(window.getComputedStyle(window.document.body).getPropertyValue(\"--animation-quick\")) || 100;\n const actionsContainerElement = useTemplateRef(\"actionsContainer\");\n const hasActions = () => !!slots.actions?.({});\n const showActions = ref(true);\n const timeoutId = ref();\n const hideActions = ref(false);\n watch(inputHasFocus, () => {\n showActions.value = !inputHasFocus.value;\n window.clearTimeout(timeoutId.value);\n if (showActions.value) {\n hideActions.value = false;\n } else {\n window.setTimeout(() => {\n hideActions.value = !showActions.value;\n }, transitionTimeout);\n }\n });\n function onCloseSearch() {\n model.value = \"\";\n if (hasActions()) {\n showActions.value = true;\n nextTick(() => actionsContainerElement.value?.querySelector(\"button\")?.focus());\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"app-navigation-search\", {\n \"app-navigation-search--has-actions\": hasActions()\n }])\n }, [\n createVNode(NcInputField, {\n ref_key: \"inputElement\",\n ref: inputElement,\n modelValue: model.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => model.value = $event),\n \"aria-label\": __props.label,\n class: \"app-navigation-search__input\",\n \"label-outside\": \"\",\n placeholder: __props.placeholder ?? __props.label,\n \"show-trailing-button\": \"\",\n \"trailing-button-label\": unref(t)(\"Clear search\"),\n type: \"search\",\n onTrailingButtonClick: onCloseSearch\n }, {\n \"trailing-button-icon\": withCtx(() => [\n createVNode(IconClose, { size: 20 })\n ]),\n _: 1\n }, 8, [\"modelValue\", \"aria-label\", \"placeholder\", \"trailing-button-label\"]),\n hasActions() ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n ref: \"actionsContainer\",\n class: normalizeClass([\"app-navigation-search__actions\", {\n \"app-navigation-search__actions--hidden\": !showActions.value,\n \"hidden-visually\": hideActions.value\n }])\n }, [\n renderSlot(_ctx.$slots, \"actions\", {}, void 0, true)\n ], 2)) : createCommentVNode(\"\", true)\n ], 2);\n };\n }\n});\nconst NcAppNavigationSearch = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-f37737bd\"]]);\nexport {\n NcAppNavigationSearch as N\n};\n//# sourceMappingURL=NcAppNavigationSearch-DCgwKEm9.mjs.map\n","import '../assets/NcAppNavigationSettings-Bt0dnsjR.css';\nimport { defineComponent, ref, useTemplateRef, computed, createElementBlock, openBlock, normalizeClass, createElementVNode, createVNode, unref, withCtx, createTextVNode, toDisplayString, Transition, withDirectives, renderSlot, vShow } from \"vue\";\nimport { A as mdiCog, B as mdiCogOutline } from \"./mdi-XFJRiRqJ.mjs\";\nimport { onClickOutside } from \"@vueuse/core\";\nimport { N as NcButton } from \"./NcButton-Dc8V4Urj.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-BvLanNaW.mjs\";\nimport { r as register, a as t } from \"./_l10n-DrTiip5c.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { i as isLegacy } from \"./legacy-DcjXBL_t.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister();\nconst _hoisted_1 = [\"id\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcAppNavigationSettings\",\n props: {\n excludeClickOutsideSelectors: { default: () => [] },\n name: { default: () => t(\"Settings\") }\n },\n setup(__props) {\n const contentId = createElementId();\n const open = ref(false);\n const container2 = useTemplateRef(\"wrapperElement\");\n const ignore = computed(() => Array.isArray(__props.excludeClickOutsideSelectors) ? __props.excludeClickOutsideSelectors : __props.excludeClickOutsideSelectors.split(\" \"));\n onClickOutside(container2, () => {\n open.value = false;\n }, { ignore });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n ref: \"wrapperElement\",\n class: normalizeClass(_ctx.$style.container)\n }, [\n createElementVNode(\"div\", {\n class: normalizeClass(_ctx.$style.header)\n }, [\n createVNode(NcButton, {\n \"aria-controls\": unref(contentId),\n \"aria-expanded\": open.value ? \"true\" : \"false\",\n class: normalizeClass(_ctx.$style.button),\n alignment: \"start\",\n variant: \"tertiary\",\n wide: \"\",\n onClick: _cache[0] || (_cache[0] = ($event) => open.value = !open.value)\n }, {\n icon: withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n path: unref(isLegacy) ? unref(mdiCog) : unref(mdiCogOutline)\n }, null, 8, [\"path\"])\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString(_ctx.name), 1)\n ]),\n _: 1\n }, 8, [\"aria-controls\", \"aria-expanded\", \"class\"])\n ], 2),\n createVNode(Transition, {\n \"enter-active-class\": _ctx.$style.animationActive,\n \"leave-active-class\": _ctx.$style.animationActive,\n \"enter-from-class\": _ctx.$style.animationStop,\n \"leave-to-class\": _ctx.$style.animationStop\n }, {\n default: withCtx(() => [\n withDirectives(createElementVNode(\"div\", {\n id: unref(contentId),\n class: normalizeClass(_ctx.$style.content)\n }, [\n renderSlot(_ctx.$slots, \"default\")\n ], 10, _hoisted_1), [\n [vShow, open.value]\n ])\n ]),\n _: 3\n }, 8, [\"enter-active-class\", \"leave-active-class\", \"enter-from-class\", \"leave-to-class\"])\n ], 2);\n };\n }\n});\nconst container = \"_container_fpy51_2\";\nconst header = \"_header_fpy51_7\";\nconst button = \"_button_fpy51_13\";\nconst content = \"_content_fpy51_21\";\nconst animationActive = \"_animationActive_fpy51_33\";\nconst animationStop = \"_animationStop_fpy51_39\";\nconst style0 = {\n container,\n header,\n button,\n content,\n animationActive,\n animationStop\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcAppNavigationSettings = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\nexport {\n NcAppNavigationSettings as N\n};\n//# sourceMappingURL=NcAppNavigationSettings-T04pqKfn.mjs.map\n","import '../assets/NcAppSettingsDialog-CapZ_qNk.css';\nimport { defineComponent, inject, createElementBlock, openBlock, normalizeClass, unref, toDisplayString, mergeModels, useModel, provide, toRef, useTemplateRef, ref, computed, onBeforeUnmount, warn, createBlock, createCommentVNode, createSlots, withCtx, createElementVNode, renderSlot, Fragment, renderList, withKeys, withModifiers } from \"vue\";\nimport debounce from \"debounce\";\nimport { N as NcDialog } from \"./NcDialog-CM7SCS7Z.mjs\";\nimport { _ as _sfc_main$2 } from \"./NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs\";\nimport { g as getLocalizedAppName, a as APP_VERSION } from \"./appName-DtnLUijR.mjs\";\nimport { A as APP_SETTINGS_LEGACY_DESIGN_KEY, a as APP_SETTINGS_REGISTRATION_KEY } from \"./useAppSettingsDialog-DbtEkXa4.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { useIsMobile } from \"../composables/useIsMobile/index.mjs\";\nimport { r as register, a as t } from \"./_l10n-DrTiip5c.mjs\";\nconst _sfc_main$1 = /* @__PURE__ */ defineComponent({\n __name: \"NcAppSettingsDialogVersion\",\n setup(__props) {\n const legacy = inject(APP_SETTINGS_LEGACY_DESIGN_KEY);\n const localizedAppName = getLocalizedAppName();\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([_ctx.$style.appSettingsDialogVersion, { [_ctx.$style.appSettingsDialogVersion__legacy]: unref(legacy) }])\n }, toDisplayString(unref(localizedAppName)) + \" \" + toDisplayString(unref(APP_VERSION)), 3);\n };\n }\n});\nconst appSettingsDialogVersion = \"_appSettingsDialogVersion_pq4io_20\";\nconst appSettingsDialogVersion__legacy = \"_appSettingsDialogVersion__legacy_pq4io_27\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_pq4io_12\",\n appSettingsDialogVersion,\n appSettingsDialogVersion__legacy\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcAppSettingsDialogVersion = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"__cssModules\", cssModules]]);\nregister();\nconst _hoisted_1 = {\n key: 0,\n class: \"navigation-list\"\n};\nconst _hoisted_2 = [\"aria-current\", \"href\", \"onClick\", \"onKeydown\"];\nconst _hoisted_3 = {\n key: 0,\n class: \"navigation-list__link-icon\"\n};\nconst _hoisted_4 = { class: \"navigation-list__link-text\" };\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcAppSettingsDialog\",\n props: /* @__PURE__ */ mergeModels({\n showNavigation: { type: Boolean },\n container: { default: \"body\" },\n name: { default: \"\" },\n additionalTrapElements: { default: () => [] },\n legacy: { type: Boolean, default: false },\n noVersion: { type: Boolean, default: false }\n }, {\n \"open\": { type: Boolean, ...{ required: true } },\n \"openModifiers\": {}\n }),\n emits: [\"update:open\"],\n setup(__props) {\n const open = useModel(__props, \"open\");\n const props = __props;\n provide(APP_SETTINGS_REGISTRATION_KEY, {\n registerSection,\n unregisterSection\n });\n provide(APP_SETTINGS_LEGACY_DESIGN_KEY, toRef(() => props.legacy));\n const settingsScrollerElement = useTemplateRef(\"settingsScroller\");\n const isMobile = useIsMobile();\n const selectedSection = ref(\"\");\n const linkClicked = ref(false);\n const registeredSections = ref([]);\n const hasNavigation = computed(() => !isMobile.value && props.showNavigation);\n const hasNavigationIcons = computed(() => registeredSections.value.some(({ icon }) => !!icon));\n const unfocusNavigationItem = debounce(() => {\n selectedSection.value = \"\";\n if (document.activeElement?.className.includes(\"navigation-list__link\")) {\n document.activeElement.blur();\n }\n }, 300);\n const sectionsOrderMap = /* @__PURE__ */ new Map();\n onBeforeUnmount(() => {\n sectionsOrderMap.clear();\n });\n function handleSettingsNavigationClick(item) {\n linkClicked.value = true;\n document.getElementById(\"settings-section_\" + item).scrollIntoView({\n behavior: \"smooth\",\n inline: \"nearest\"\n });\n selectedSection.value = item;\n setTimeout(() => {\n linkClicked.value = false;\n }, 1e3);\n }\n function handleCloseModal(isOpen) {\n if (isOpen) {\n return;\n }\n open.value = false;\n settingsScrollerElement.value.scrollTop = 0;\n }\n function handleScroll() {\n if (open.value && !linkClicked.value) {\n unfocusNavigationItem();\n }\n }\n function registerSection(id, name, order, icon) {\n if (registeredSections.value.some(({ id: otherId }) => id === otherId)) {\n throw new Error(`Duplicate section id found: ${id}. Settings navigation sections must have unique section ids.`);\n }\n if (registeredSections.value.some(({ name: otherName }) => name === otherName)) {\n warn(`Duplicate section name found: ${name}. Settings navigation sections must have unique section names.`);\n }\n if (order !== void 0) {\n sectionsOrderMap.set(id, order);\n } else if (sectionsOrderMap.has(id)) {\n order = sectionsOrderMap.get(id);\n } else {\n order = Math.max(0, ...sectionsOrderMap.values()) + 1;\n sectionsOrderMap.set(id, order);\n }\n registeredSections.value = [...registeredSections.value, { id, name, order, icon }].sort(({ order: orderA }, { order: orderB }) => {\n return orderA - orderB;\n });\n if (registeredSections.value.length === 1) {\n selectedSection.value = id;\n }\n }\n function unregisterSection(id) {\n registeredSections.value = registeredSections.value.filter(({ id: otherId }) => id !== otherId);\n if (selectedSection.value === id) {\n selectedSection.value = registeredSections.value[0]?.id ?? \"\";\n }\n }\n return (_ctx, _cache) => {\n return open.value ? (openBlock(), createBlock(NcDialog, {\n key: 0,\n class: \"app-settings\",\n \"content-classes\": \"app-settings__content\",\n \"navigation-classes\": \"app-settings__navigation\",\n \"additional-trap-elements\": _ctx.additionalTrapElements,\n container: _ctx.container,\n \"close-on-click-outside\": \"\",\n \"navigation-aria-label\": unref(t)(\"Settings navigation\"),\n size: \"large\",\n name: _ctx.name,\n \"onUpdate:open\": handleCloseModal\n }, createSlots({\n default: withCtx(() => [\n createElementVNode(\"div\", {\n ref: \"settingsScroller\",\n onScroll: handleScroll\n }, [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true),\n !_ctx.noVersion ? (openBlock(), createBlock(NcAppSettingsDialogVersion, { key: 0 })) : createCommentVNode(\"\", true)\n ], 544)\n ]),\n _: 2\n }, [\n hasNavigation.value ? {\n name: \"navigation\",\n fn: withCtx(({ isCollapsed }) => [\n !isCollapsed ? (openBlock(), createElementBlock(\"ul\", _hoisted_1, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(registeredSections.value, (section) => {\n return openBlock(), createElementBlock(\"li\", {\n key: section.id\n }, [\n createElementVNode(\"a\", {\n \"aria-current\": `${section.id === selectedSection.value}`,\n class: normalizeClass([\"navigation-list__link\", {\n \"navigation-list__link--active\": section.id === selectedSection.value,\n \"navigation-list__link--icon\": hasNavigationIcons.value\n }]),\n href: `#settings-section_${section.id}`,\n tabindex: \"0\",\n onClick: withModifiers(($event) => handleSettingsNavigationClick(section.id), [\"prevent\"]),\n onKeydown: withKeys(($event) => handleSettingsNavigationClick(section.id), [\"enter\"])\n }, [\n hasNavigationIcons.value ? (openBlock(), createElementBlock(\"div\", _hoisted_3, [\n section.icon ? (openBlock(), createBlock(_sfc_main$2, {\n key: 0,\n vnodes: section.icon\n }, null, 8, [\"vnodes\"])) : createCommentVNode(\"\", true)\n ])) : createCommentVNode(\"\", true),\n createElementVNode(\"span\", _hoisted_4, toDisplayString(section.name), 1)\n ], 42, _hoisted_2)\n ]);\n }), 128))\n ])) : createCommentVNode(\"\", true)\n ]),\n key: \"0\"\n } : void 0\n ]), 1032, [\"additional-trap-elements\", \"container\", \"navigation-aria-label\", \"name\"])) : createCommentVNode(\"\", true);\n };\n }\n});\nconst NcAppSettingsDialog = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-ca87a6fd\"]]);\nexport {\n NcAppSettingsDialog as N\n};\n//# sourceMappingURL=NcAppSettingsDialog-BCVofwA8.mjs.map\n","import '../assets/NcAppSettingsShortcutsSection-CRO4RakN.css';\nimport { defineComponent, createBlock, openBlock, unref, withCtx, createElementVNode, normalizeClass, renderSlot } from \"vue\";\nimport { N as NcAppSettingsSection } from \"./NcAppSettingsSection-B9R7enkC.mjs\";\nimport { r as register, a as t } from \"./_l10n-DrTiip5c.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister();\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcAppSettingsShortcutsSection\",\n setup(__props) {\n return (_ctx, _cache) => {\n return openBlock(), createBlock(NcAppSettingsSection, {\n id: \"keyboard-shortcuts\",\n name: unref(t)(\"Keyboard shortcuts\")\n }, {\n default: withCtx(() => [\n createElementVNode(\"div\", {\n class: normalizeClass(_ctx.$style.appSettingsSectionShortcuts)\n }, [\n renderSlot(_ctx.$slots, \"default\")\n ], 2)\n ]),\n _: 3\n }, 8, [\"name\"]);\n };\n }\n});\nconst appSettingsSectionShortcuts = \"_appSettingsSectionShortcuts_1trvh_2\";\nconst style0 = {\n appSettingsSectionShortcuts\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcAppSettingsShortcutsSection = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\nexport {\n NcAppSettingsShortcutsSection as N\n};\n//# sourceMappingURL=NcAppSettingsShortcutsSection-QPGGYtbC.mjs.map\n","// THIS FILE IS AUTOMATICALLY GENERATED DO NOT EDIT DIRECTLY\n// See update-tlds.js for encoding/decoding format\n// https://data.iana.org/TLD/tlds-alpha-by-domain.txt\nconst encodedTlds = 'aaa1rp3bb0ott3vie4c1le2ogado5udhabi7c0ademy5centure6ountant0s9o1tor4d0s1ult4e0g1ro2tna4f0l1rica5g0akhan5ency5i0g1rbus3force5tel5kdn3l0ibaba4pay4lfinanz6state5y2sace3tom5m0azon4ericanexpress7family11x2fam3ica3sterdam8nalytics7droid5quan4z2o0l2partments8p0le4q0uarelle8r0ab1mco4chi3my2pa2t0e3s0da2ia2sociates9t0hleta5torney7u0ction5di0ble3o3spost5thor3o0s4w0s2x0a2z0ure5ba0by2idu3namex4d1k2r0celona5laycard4s5efoot5gains6seball5ketball8uhaus5yern5b0c1t1va3cg1n2d1e0ats2uty4er2rlin4st0buy5t2f1g1h0arti5i0ble3d1ke2ng0o3o1z2j1lack0friday9ockbuster8g1omberg7ue3m0s1w2n0pparibas9o0ats3ehringer8fa2m1nd2o0k0ing5sch2tik2on4t1utique6x2r0adesco6idgestone9oadway5ker3ther5ussels7s1t1uild0ers6siness6y1zz3v1w1y1z0h3ca0b1fe2l0l1vinklein9m0era3p2non3petown5ital0one8r0avan4ds2e0er0s4s2sa1e1h1ino4t0ering5holic7ba1n1re3c1d1enter4o1rn3f0a1d2g1h0anel2nel4rity4se2t2eap3intai5ristmas6ome4urch5i0priani6rcle4sco3tadel4i0c2y3k1l0aims4eaning6ick2nic1que6othing5ud3ub0med6m1n1o0ach3des3ffee4llege4ogne5m0mbank4unity6pany2re3uter5sec4ndos3struction8ulting7tact3ractors9oking4l1p2rsica5untry4pon0s4rses6pa2r0edit0card4union9icket5own3s1uise0s6u0isinella9v1w1x1y0mru3ou3z2dad1nce3ta1e1ing3sun4y2clk3ds2e0al0er2s3gree4livery5l1oitte5ta3mocrat6ntal2ist5si0gn4v2hl2iamonds6et2gital5rect0ory7scount3ver5h2y2j1k1m1np2o0cs1tor4g1mains5t1wnload7rive4tv2ubai3nlop4pont4rban5vag2r2z2earth3t2c0o2deka3u0cation8e1g1mail3erck5nergy4gineer0ing9terprises10pson4quipment8r0icsson6ni3s0q1tate5t1u0rovision8s2vents5xchange6pert3osed4ress5traspace10fage2il1rwinds6th3mily4n0s2rm0ers5shion4t3edex3edback6rrari3ero6i0delity5o2lm2nal1nce1ial7re0stone6mdale6sh0ing5t0ness6j1k1lickr3ghts4r2orist4wers5y2m1o0o0d1tball6rd1ex2sale4um3undation8x2r0ee1senius7l1ogans4ntier7tr2ujitsu5n0d2rniture7tbol5yi3ga0l0lery3o1up4me0s3p1rden4y2b0iz3d0n2e0a1nt0ing5orge5f1g0ee3h1i0ft0s3ves2ing5l0ass3e1obal2o4m0ail3bh2o1x2n1odaddy5ld0point6f2o0dyear5g0le4p1t1v2p1q1r0ainger5phics5tis4een3ipe3ocery4up4s1t1u0cci3ge2ide2tars5ru3w1y2hair2mburg5ngout5us3bo2dfc0bank7ealth0care8lp1sinki6re1mes5iphop4samitsu7tachi5v2k0t2m1n1ockey4ldings5iday5medepot5goods5s0ense7nda3rse3spital5t0ing5t0els3mail5use3w2r1sbc3t1u0ghes5yatt3undai7ibm2cbc2e1u2d1e0ee3fm2kano4l1m0amat4db2mo0bilien9n0c1dustries8finiti5o2g1k1stitute6urance4e4t0ernational10uit4vestments10o1piranga7q1r0ish4s0maili5t0anbul7t0au2v3jaguar4va3cb2e0ep2tzt3welry6io2ll2m0p2nj2o0bs1urg4t1y2p0morgan6rs3uegos4niper7kaufen5ddi3e0rryhotels6properties14fh2g1h1i0a1ds2m1ndle4tchen5wi3m1n1oeln3matsu5sher5p0mg2n2r0d1ed3uokgroup8w1y0oto4z2la0caixa5mborghini8er3nd0rover6xess5salle5t0ino3robe5w0yer5b1c1ds2ease3clerc5frak4gal2o2xus4gbt3i0dl2fe0insurance9style7ghting6ke2lly3mited4o2ncoln4k2ve1ing5k1lc1p2oan0s3cker3us3l1ndon4tte1o3ve3pl0financial11r1s1t0d0a3u0ndbeck6xe1ury5v1y2ma0drid4if1son4keup4n0agement7go3p1rket0ing3s4riott5shalls7ttel5ba2c0kinsey7d1e0d0ia3et2lbourne7me1orial6n0u2rckmsd7g1h1iami3crosoft7l1ni1t2t0subishi9k1l0b1s2m0a2n1o0bi0le4da2e1i1m1nash3ey2ster5rmon3tgage6scow4to0rcycles9v0ie4p1q1r1s0d2t0n1r2u0seum3ic4v1w1x1y1z2na0b1goya4me2vy3ba2c1e0c1t0bank4flix4work5ustar5w0s2xt0direct7us4f0l2g0o2hk2i0co2ke1on3nja3ssan1y5l1o0kia3rton4w0ruz3tv4p1r0a1w2tt2u1yc2z2obi1server7ffice5kinawa6layan0group9lo3m0ega4ne1g1l0ine5oo2pen3racle3nge4g0anic5igins6saka4tsuka4t2vh3pa0ge2nasonic7ris2s1tners4s1y3y2ccw3e0t2f0izer5g1h0armacy6d1ilips5one2to0graphy6s4ysio5ics1tet2ures6d1n0g1k2oneer5zza4k1l0ace2y0station9umbing5s3m1n0c2ohl2ker3litie5rn2st3r0axi3ess3ime3o0d0uctions8f1gressive8mo2perties3y5tection8u0dential9s1t1ub2w0c2y2qa1pon3uebec3st5racing4dio4e0ad1lestate6tor2y4cipes5d0stone5umbrella9hab3ise0n3t2liance6n0t0als5pair3ort3ublican8st0aurant8view0s5xroth6ich0ardli6oh3l1o1p2o0cks3deo3gers4om3s0vp3u0gby3hr2n2w0e2yukyu6sa0arland6fe0ty4kura4le1on3msclub4ung5ndvik0coromant12ofi4p1rl2s1ve2xo3b0i1s2c0b1haeffler7midt4olarships8ol3ule3warz5ience5ot3d1e0arch3t2cure1ity6ek2lect4ner3rvices6ven3w1x0y3fr2g1h0angrila6rp3ell3ia1ksha5oes2p0ping5uji3w3i0lk2na1gles5te3j1k0i0n2y0pe4l0ing4m0art3ile4n0cf3o0ccer3ial4ftbank4ware6hu2lar2utions7ng1y2y2pa0ce3ort2t3r0l2s1t0ada2ples4r1tebank4farm7c0group6ockholm6rage3e3ream4udio2y3yle4u0cks3pplies3y2ort5rf1gery5zuki5v1watch4iss4x1y0dney4stems6z2tab1ipei4lk2obao4rget4tamotors6r2too4x0i3c0i2d0k2eam2ch0nology8l1masek5nnis4va3f1g1h0d1eater2re6iaa2ckets5enda4ps2res2ol4j0maxx4x2k0maxx5l1m0all4n1o0day3kyo3ols3p1ray3shiba5tal3urs3wn2yota3s3r0ade1ing4ining5vel0ers0insurance16ust3v2t1ube2i1nes3shu4v0s2w1z2ua1bank3s2g1k1nicom3versity8o2ol2ps2s1y1z2va0cations7na1guard7c1e0gas3ntures6risign5mögensberater2ung14sicherung10t2g1i0ajes4deo3g1king4llas4n1p1rgin4sa1ion4va1o3laanderen9n1odka3lvo3te1ing3o2yage5u2wales2mart4ter4ng0gou5tch0es6eather0channel12bcam3er2site5d0ding5ibo2r3f1hoswho6ien2ki2lliamhill9n0dows4e1ners6me2olterskluwer11odside6rk0s2ld3w2s1tc1f3xbox3erox4ihuan4n2xx2yz3yachts4hoo3maxun5ndex5e1odobashi7ga2kohama6u0tube6t1un3za0ppos4ra3ero3ip2m1one3uerich6w2';\n// Internationalized domain names containing non-ASCII\nconst encodedUtlds = 'ελ1υ2бг1ел3дети4ею2католик6ом3мкд2он1сква6онлайн5рг3рус2ф2сайт3рб3укр3қаз3հայ3ישראל5קום3ابوظبي5رامكو5لاردن4بحرين5جزائر5سعودية6عليان5مغرب5مارات5یران5بارت2زار4يتك3ھارت5تونس4سودان3رية5شبكة4عراق2ب2مان4فلسطين6قطر3كاثوليك6وم3مصر2ليسيا5وريتانيا7قع4همراه5پاکستان7ڀارت4कॉम3नेट3भारत0म्3ोत5संगठन5বাংলা5ভারত2ৰত4ਭਾਰਤ4ભારત4ଭାରତ4இந்தியா6லங்கை6சிங்கப்பூர்11భారత్5ಭಾರತ4ഭാരതം5ලංකා4คอม3ไทย3ລາວ3გე2みんな3アマゾン4クラウド4グーグル4コム2ストア3セール3ファッション6ポイント4世界2中信1国1國1文网3亚马逊3企业2佛山2信息2健康2八卦2公司1益2台湾1灣2商城1店1标2嘉里0大酒店5在线2大拿2天主教3娱乐2家電2广东2微博2慈善2我爱你3手机2招聘2政务1府2新加坡2闻2时尚2書籍2机构2淡马锡3游戏2澳門2点看2移动2组织机构4网址1店1站1络2联通2谷歌2购物2通販2集团2電訊盈科4飞利浦3食品2餐厅2香格里拉3港2닷넷1컴2삼성2한국2';\n\n/**\n * Finite State Machine generation utilities\n */\n\n/**\n * @template T\n * @typedef {{ [group: string]: T[] }} Collections\n */\n\n/**\n * @typedef {{ [group: string]: true }} Flags\n */\n\n// Keys in scanner Collections instances\nconst numeric = 'numeric';\nconst ascii = 'ascii';\nconst alpha = 'alpha';\nconst asciinumeric = 'asciinumeric';\nconst alphanumeric = 'alphanumeric';\nconst domain = 'domain';\nconst emoji = 'emoji';\nconst scheme = 'scheme';\nconst slashscheme = 'slashscheme';\nconst whitespace = 'whitespace';\n\n/**\n * @template T\n * @param {string} name\n * @param {Collections} groups to register in\n * @returns {T[]} Current list of tokens in the given collection\n */\nfunction registerGroup(name, groups) {\n if (!(name in groups)) {\n groups[name] = [];\n }\n return groups[name];\n}\n\n/**\n * @template T\n * @param {T} t token to add\n * @param {Collections} groups\n * @param {Flags} flags\n */\nfunction addToGroups(t, flags, groups) {\n if (flags[numeric]) {\n flags[asciinumeric] = true;\n flags[alphanumeric] = true;\n }\n if (flags[ascii]) {\n flags[asciinumeric] = true;\n flags[alpha] = true;\n }\n if (flags[asciinumeric]) {\n flags[alphanumeric] = true;\n }\n if (flags[alpha]) {\n flags[alphanumeric] = true;\n }\n if (flags[alphanumeric]) {\n flags[domain] = true;\n }\n if (flags[emoji]) {\n flags[domain] = true;\n }\n for (const k in flags) {\n const group = registerGroup(k, groups);\n if (group.indexOf(t) < 0) {\n group.push(t);\n }\n }\n}\n\n/**\n * @template T\n * @param {T} t token to check\n * @param {Collections} groups\n * @returns {Flags} group flags that contain this token\n */\nfunction flagsForToken(t, groups) {\n const result = {};\n for (const c in groups) {\n if (groups[c].indexOf(t) >= 0) {\n result[c] = true;\n }\n }\n return result;\n}\n\n/**\n * @template T\n * @typedef {null | T } Transition\n */\n\n/**\n * Define a basic state machine state. j is the list of character transitions,\n * jr is the list of regex-match transitions, jd is the default state to\n * transition to t is the accepting token type, if any. If this is the terminal\n * state, then it does not emit a token.\n *\n * The template type T represents the type of the token this state accepts. This\n * should be a string (such as of the token exports in `text.js`) or a\n * MultiToken subclass (from `multi.js`)\n *\n * @template T\n * @param {T} [token] Token that this state emits\n */\nfunction State(token = null) {\n // this.n = null; // DEBUG: State name\n /** @type {{ [input: string]: State }} j */\n this.j = {}; // IMPLEMENTATION 1\n // this.j = []; // IMPLEMENTATION 2\n /** @type {[RegExp, State][]} jr */\n this.jr = [];\n /** @type {?State} jd */\n this.jd = null;\n /** @type {?T} t */\n this.t = token;\n}\n\n/**\n * Scanner token groups\n * @type Collections\n */\nState.groups = {};\nState.prototype = {\n accepts() {\n return !!this.t;\n },\n /**\n * Follow an existing transition from the given input to the next state.\n * Does not mutate.\n * @param {string} input character or token type to transition on\n * @returns {?State} the next state, if any\n */\n go(input) {\n const state = this;\n const nextState = state.j[input];\n if (nextState) {\n return nextState;\n }\n for (let i = 0; i < state.jr.length; i++) {\n const regex = state.jr[i][0];\n const nextState = state.jr[i][1]; // note: might be empty to prevent default jump\n if (nextState && regex.test(input)) {\n return nextState;\n }\n }\n // Nowhere left to jump! Return default, if any\n return state.jd;\n },\n /**\n * Whether the state has a transition for the given input. Set the second\n * argument to true to only look for an exact match (and not a default or\n * regular-expression-based transition)\n * @param {string} input\n * @param {boolean} exactOnly\n */\n has(input, exactOnly = false) {\n return exactOnly ? input in this.j : !!this.go(input);\n },\n /**\n * Short for \"transition all\"; create a transition from the array of items\n * in the given list to the same final resulting state.\n * @param {string | string[]} inputs Group of inputs to transition on\n * @param {Transition | State} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections} [groups] Master list of token groups\n */\n ta(inputs, next, flags, groups) {\n for (let i = 0; i < inputs.length; i++) {\n this.tt(inputs[i], next, flags, groups);\n }\n },\n /**\n * Short for \"take regexp transition\"; defines a transition for this state\n * when it encounters a token which matches the given regular expression\n * @param {RegExp} regexp Regular expression transition (populate first)\n * @param {T | State} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections} [groups] Master list of token groups\n * @returns {State} taken after the given input\n */\n tr(regexp, next, flags, groups) {\n groups = groups || State.groups;\n let nextState;\n if (next && next.j) {\n nextState = next;\n } else {\n // Token with maybe token groups\n nextState = new State(next);\n if (flags && groups) {\n addToGroups(next, flags, groups);\n }\n }\n this.jr.push([regexp, nextState]);\n return nextState;\n },\n /**\n * Short for \"take transitions\", will take as many sequential transitions as\n * the length of the given input and returns the\n * resulting final state.\n * @param {string | string[]} input\n * @param {T | State} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections} [groups] Master list of token groups\n * @returns {State} taken after the given input\n */\n ts(input, next, flags, groups) {\n let state = this;\n const len = input.length;\n if (!len) {\n return state;\n }\n for (let i = 0; i < len - 1; i++) {\n state = state.tt(input[i]);\n }\n return state.tt(input[len - 1], next, flags, groups);\n },\n /**\n * Short for \"take transition\", this is a method for building/working with\n * state machines.\n *\n * If a state already exists for the given input, returns it.\n *\n * If a token is specified, that state will emit that token when reached by\n * the linkify engine.\n *\n * If no state exists, it will be initialized with some default transitions\n * that resemble existing default transitions.\n *\n * If a state is given for the second argument, that state will be\n * transitioned to on the given input regardless of what that input\n * previously did.\n *\n * Specify a token group flags to define groups that this token belongs to.\n * The token will be added to corresponding entires in the given groups\n * object.\n *\n * @param {string} input character, token type to transition on\n * @param {T | State} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections} [groups] Master list of groups\n * @returns {State} taken after the given input\n */\n tt(input, next, flags, groups) {\n groups = groups || State.groups;\n const state = this;\n\n // Check if existing state given, just a basic transition\n if (next && next.j) {\n state.j[input] = next;\n return next;\n }\n const t = next;\n\n // Take the transition with the usual default mechanisms and use that as\n // a template for creating the next state\n let nextState,\n templateState = state.go(input);\n if (templateState) {\n nextState = new State();\n Object.assign(nextState.j, templateState.j);\n nextState.jr.push.apply(nextState.jr, templateState.jr);\n nextState.jd = templateState.jd;\n nextState.t = templateState.t;\n } else {\n nextState = new State();\n }\n if (t) {\n // Ensure newly token is in the same groups as the old token\n if (groups) {\n if (nextState.t && typeof nextState.t === 'string') {\n const allFlags = Object.assign(flagsForToken(nextState.t, groups), flags);\n addToGroups(t, allFlags, groups);\n } else if (flags) {\n addToGroups(t, flags, groups);\n }\n }\n nextState.t = t; // overwrite anything that was previously there\n }\n state.j[input] = nextState;\n return nextState;\n }\n};\n\n// Helper functions to improve minification (not exported outside linkifyjs module)\n\n/**\n * @template T\n * @param {State} state\n * @param {string | string[]} input\n * @param {Flags} [flags]\n * @param {Collections} [groups]\n */\nconst ta = (state, input, next, flags, groups) => state.ta(input, next, flags, groups);\n\n/**\n * @template T\n * @param {State} state\n * @param {RegExp} regexp\n * @param {T | State} [next]\n * @param {Flags} [flags]\n * @param {Collections} [groups]\n */\nconst tr = (state, regexp, next, flags, groups) => state.tr(regexp, next, flags, groups);\n\n/**\n * @template T\n * @param {State} state\n * @param {string | string[]} input\n * @param {T | State} [next]\n * @param {Flags} [flags]\n * @param {Collections} [groups]\n */\nconst ts = (state, input, next, flags, groups) => state.ts(input, next, flags, groups);\n\n/**\n * @template T\n * @param {State} state\n * @param {string} input\n * @param {T | State} [next]\n * @param {Collections} [groups]\n * @param {Flags} [flags]\n */\nconst tt = (state, input, next, flags, groups) => state.tt(input, next, flags, groups);\n\n/******************************************************************************\nText Tokens\nIdentifiers for token outputs from the regexp scanner\n******************************************************************************/\n\n// A valid web domain token\nconst WORD = 'WORD'; // only contains a-z\nconst UWORD = 'UWORD'; // contains letters other than a-z, used for IDN\nconst ASCIINUMERICAL = 'ASCIINUMERICAL'; // contains a-z, 0-9\nconst ALPHANUMERICAL = 'ALPHANUMERICAL'; // contains numbers and letters other than a-z, used for IDN\n\n// Special case of word\nconst LOCALHOST = 'LOCALHOST';\n\n// Valid top-level domain, special case of WORD (see tlds.js)\nconst TLD = 'TLD';\n\n// Valid IDN TLD, special case of UWORD (see tlds.js)\nconst UTLD = 'UTLD';\n\n// The scheme portion of a web URI protocol. Supported types include: `mailto`,\n// `file`, and user-defined custom protocols. Limited to schemes that contain\n// only letters\nconst SCHEME = 'SCHEME';\n\n// Similar to SCHEME, except makes distinction for schemes that must always be\n// followed by `://`, not just `:`. Supported types include `http`, `https`,\n// `ftp`, `ftps`\nconst SLASH_SCHEME = 'SLASH_SCHEME';\n\n// Any sequence of digits 0-9\nconst NUM = 'NUM';\n\n// Any number of consecutive whitespace characters that are not newline\nconst WS = 'WS';\n\n// New line (unix style)\nconst NL = 'NL'; // \\n\n\n// Opening/closing bracket classes\n// TODO: Rename OPEN -> LEFT and CLOSE -> RIGHT in v5 to fit with Unicode names\n// Also rename angle brackes to LESSTHAN and GREATER THAN\nconst OPENBRACE = 'OPENBRACE'; // {\nconst CLOSEBRACE = 'CLOSEBRACE'; // }\nconst OPENBRACKET = 'OPENBRACKET'; // [\nconst CLOSEBRACKET = 'CLOSEBRACKET'; // ]\nconst OPENPAREN = 'OPENPAREN'; // (\nconst CLOSEPAREN = 'CLOSEPAREN'; // )\nconst OPENANGLEBRACKET = 'OPENANGLEBRACKET'; // <\nconst CLOSEANGLEBRACKET = 'CLOSEANGLEBRACKET'; // >\nconst FULLWIDTHLEFTPAREN = 'FULLWIDTHLEFTPAREN'; // (\nconst FULLWIDTHRIGHTPAREN = 'FULLWIDTHRIGHTPAREN'; // )\nconst LEFTCORNERBRACKET = 'LEFTCORNERBRACKET'; // 「\nconst RIGHTCORNERBRACKET = 'RIGHTCORNERBRACKET'; // 」\nconst LEFTWHITECORNERBRACKET = 'LEFTWHITECORNERBRACKET'; // 『\nconst RIGHTWHITECORNERBRACKET = 'RIGHTWHITECORNERBRACKET'; // 』\nconst FULLWIDTHLESSTHAN = 'FULLWIDTHLESSTHAN'; // <\nconst FULLWIDTHGREATERTHAN = 'FULLWIDTHGREATERTHAN'; // >\n\n// Various symbols\nconst AMPERSAND = 'AMPERSAND'; // &\nconst APOSTROPHE = 'APOSTROPHE'; // '\nconst ASTERISK = 'ASTERISK'; // *\nconst AT = 'AT'; // @\nconst BACKSLASH = 'BACKSLASH'; // \\\nconst BACKTICK = 'BACKTICK'; // `\nconst CARET = 'CARET'; // ^\nconst COLON = 'COLON'; // :\nconst COMMA = 'COMMA'; // ,\nconst DOLLAR = 'DOLLAR'; // $\nconst DOT = 'DOT'; // .\nconst EQUALS = 'EQUALS'; // =\nconst EXCLAMATION = 'EXCLAMATION'; // !\nconst HYPHEN = 'HYPHEN'; // -\nconst PERCENT = 'PERCENT'; // %\nconst PIPE = 'PIPE'; // |\nconst PLUS = 'PLUS'; // +\nconst POUND = 'POUND'; // #\nconst QUERY = 'QUERY'; // ?\nconst QUOTE = 'QUOTE'; // \"\nconst FULLWIDTHMIDDLEDOT = 'FULLWIDTHMIDDLEDOT'; // ・\n\nconst SEMI = 'SEMI'; // ;\nconst SLASH = 'SLASH'; // /\nconst TILDE = 'TILDE'; // ~\nconst UNDERSCORE = 'UNDERSCORE'; // _\n\n// Emoji symbol\nconst EMOJI$1 = 'EMOJI';\n\n// Default token - anything that is not one of the above\nconst SYM = 'SYM';\n\nvar tk = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tALPHANUMERICAL: ALPHANUMERICAL,\n\tAMPERSAND: AMPERSAND,\n\tAPOSTROPHE: APOSTROPHE,\n\tASCIINUMERICAL: ASCIINUMERICAL,\n\tASTERISK: ASTERISK,\n\tAT: AT,\n\tBACKSLASH: BACKSLASH,\n\tBACKTICK: BACKTICK,\n\tCARET: CARET,\n\tCLOSEANGLEBRACKET: CLOSEANGLEBRACKET,\n\tCLOSEBRACE: CLOSEBRACE,\n\tCLOSEBRACKET: CLOSEBRACKET,\n\tCLOSEPAREN: CLOSEPAREN,\n\tCOLON: COLON,\n\tCOMMA: COMMA,\n\tDOLLAR: DOLLAR,\n\tDOT: DOT,\n\tEMOJI: EMOJI$1,\n\tEQUALS: EQUALS,\n\tEXCLAMATION: EXCLAMATION,\n\tFULLWIDTHGREATERTHAN: FULLWIDTHGREATERTHAN,\n\tFULLWIDTHLEFTPAREN: FULLWIDTHLEFTPAREN,\n\tFULLWIDTHLESSTHAN: FULLWIDTHLESSTHAN,\n\tFULLWIDTHMIDDLEDOT: FULLWIDTHMIDDLEDOT,\n\tFULLWIDTHRIGHTPAREN: FULLWIDTHRIGHTPAREN,\n\tHYPHEN: HYPHEN,\n\tLEFTCORNERBRACKET: LEFTCORNERBRACKET,\n\tLEFTWHITECORNERBRACKET: LEFTWHITECORNERBRACKET,\n\tLOCALHOST: LOCALHOST,\n\tNL: NL,\n\tNUM: NUM,\n\tOPENANGLEBRACKET: OPENANGLEBRACKET,\n\tOPENBRACE: OPENBRACE,\n\tOPENBRACKET: OPENBRACKET,\n\tOPENPAREN: OPENPAREN,\n\tPERCENT: PERCENT,\n\tPIPE: PIPE,\n\tPLUS: PLUS,\n\tPOUND: POUND,\n\tQUERY: QUERY,\n\tQUOTE: QUOTE,\n\tRIGHTCORNERBRACKET: RIGHTCORNERBRACKET,\n\tRIGHTWHITECORNERBRACKET: RIGHTWHITECORNERBRACKET,\n\tSCHEME: SCHEME,\n\tSEMI: SEMI,\n\tSLASH: SLASH,\n\tSLASH_SCHEME: SLASH_SCHEME,\n\tSYM: SYM,\n\tTILDE: TILDE,\n\tTLD: TLD,\n\tUNDERSCORE: UNDERSCORE,\n\tUTLD: UTLD,\n\tUWORD: UWORD,\n\tWORD: WORD,\n\tWS: WS\n});\n\n// Note that these two Unicode ones expand into a really big one with Babel\nconst ASCII_LETTER = /[a-z]/;\nconst LETTER = /\\p{L}/u; // Any Unicode character with letter data type\nconst EMOJI = /\\p{Emoji}/u; // Any Unicode emoji character\nconst EMOJI_VARIATION$1 = /\\ufe0f/;\nconst DIGIT = /\\d/;\nconst SPACE = /\\s/;\n\nvar regexp = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tASCII_LETTER: ASCII_LETTER,\n\tDIGIT: DIGIT,\n\tEMOJI: EMOJI,\n\tEMOJI_VARIATION: EMOJI_VARIATION$1,\n\tLETTER: LETTER,\n\tSPACE: SPACE\n});\n\n/**\n\tThe scanner provides an interface that takes a string of text as input, and\n\toutputs an array of tokens instances that can be used for easy URL parsing.\n*/\n\nconst CR = '\\r'; // carriage-return character\nconst LF = '\\n'; // line-feed character\nconst EMOJI_VARIATION = '\\ufe0f'; // Variation selector, follows heart and others\nconst EMOJI_JOINER = '\\u200d'; // zero-width joiner\nconst OBJECT_REPLACEMENT = '\\ufffc'; // whitespace placeholder that sometimes appears in rich text editors\n\nlet tlds = null,\n utlds = null; // don't change so only have to be computed once\n\n/**\n * Scanner output token:\n * - `t` is the token name (e.g., 'NUM', 'EMOJI', 'TLD')\n * - `v` is the value of the token (e.g., '123', '❤️', 'com')\n * - `s` is the start index of the token in the original string\n * - `e` is the end index of the token in the original string\n * @typedef {{t: string, v: string, s: number, e: number}} Token\n */\n\n/**\n * @template T\n * @typedef {{ [collection: string]: T[] }} Collections\n */\n\n/**\n * Initialize the scanner character-based state machine for the given start\n * state\n * @param {[string, boolean][]} customSchemes List of custom schemes, where each\n * item is a length-2 tuple with the first element set to the string scheme, and\n * the second element set to `true` if the `://` after the scheme is optional\n */\nfunction init$2(customSchemes = []) {\n // Frequently used states (name argument removed during minification)\n /** @type Collections */\n const groups = {}; // of tokens\n State.groups = groups;\n /** @type State */\n const Start = new State();\n if (tlds == null) {\n tlds = decodeTlds(encodedTlds);\n }\n if (utlds == null) {\n utlds = decodeTlds(encodedUtlds);\n }\n\n // States for special URL symbols that accept immediately after start\n tt(Start, \"'\", APOSTROPHE);\n tt(Start, '{', OPENBRACE);\n tt(Start, '}', CLOSEBRACE);\n tt(Start, '[', OPENBRACKET);\n tt(Start, ']', CLOSEBRACKET);\n tt(Start, '(', OPENPAREN);\n tt(Start, ')', CLOSEPAREN);\n tt(Start, '<', OPENANGLEBRACKET);\n tt(Start, '>', CLOSEANGLEBRACKET);\n tt(Start, '(', FULLWIDTHLEFTPAREN);\n tt(Start, ')', FULLWIDTHRIGHTPAREN);\n tt(Start, '「', LEFTCORNERBRACKET);\n tt(Start, '」', RIGHTCORNERBRACKET);\n tt(Start, '『', LEFTWHITECORNERBRACKET);\n tt(Start, '』', RIGHTWHITECORNERBRACKET);\n tt(Start, '<', FULLWIDTHLESSTHAN);\n tt(Start, '>', FULLWIDTHGREATERTHAN);\n tt(Start, '&', AMPERSAND);\n tt(Start, '*', ASTERISK);\n tt(Start, '@', AT);\n tt(Start, '`', BACKTICK);\n tt(Start, '^', CARET);\n tt(Start, ':', COLON);\n tt(Start, ',', COMMA);\n tt(Start, '$', DOLLAR);\n tt(Start, '.', DOT);\n tt(Start, '=', EQUALS);\n tt(Start, '!', EXCLAMATION);\n tt(Start, '-', HYPHEN);\n tt(Start, '%', PERCENT);\n tt(Start, '|', PIPE);\n tt(Start, '+', PLUS);\n tt(Start, '#', POUND);\n tt(Start, '?', QUERY);\n tt(Start, '\"', QUOTE);\n tt(Start, '/', SLASH);\n tt(Start, ';', SEMI);\n tt(Start, '~', TILDE);\n tt(Start, '_', UNDERSCORE);\n tt(Start, '\\\\', BACKSLASH);\n tt(Start, '・', FULLWIDTHMIDDLEDOT);\n const Num = tr(Start, DIGIT, NUM, {\n [numeric]: true\n });\n tr(Num, DIGIT, Num);\n const Asciinumeric = tr(Num, ASCII_LETTER, ASCIINUMERICAL, {\n [asciinumeric]: true\n });\n const Alphanumeric = tr(Num, LETTER, ALPHANUMERICAL, {\n [alphanumeric]: true\n });\n\n // State which emits a word token\n const Word = tr(Start, ASCII_LETTER, WORD, {\n [ascii]: true\n });\n tr(Word, DIGIT, Asciinumeric);\n tr(Word, ASCII_LETTER, Word);\n tr(Asciinumeric, DIGIT, Asciinumeric);\n tr(Asciinumeric, ASCII_LETTER, Asciinumeric);\n\n // Same as previous, but specific to non-fsm.ascii alphabet words\n const UWord = tr(Start, LETTER, UWORD, {\n [alpha]: true\n });\n tr(UWord, ASCII_LETTER); // Non-accepting\n tr(UWord, DIGIT, Alphanumeric);\n tr(UWord, LETTER, UWord);\n tr(Alphanumeric, DIGIT, Alphanumeric);\n tr(Alphanumeric, ASCII_LETTER); // Non-accepting\n tr(Alphanumeric, LETTER, Alphanumeric); // Non-accepting\n\n // Whitespace jumps\n // Tokens of only non-newline whitespace are arbitrarily long\n // If any whitespace except newline, more whitespace!\n const Nl = tt(Start, LF, NL, {\n [whitespace]: true\n });\n const Cr = tt(Start, CR, WS, {\n [whitespace]: true\n });\n const Ws = tr(Start, SPACE, WS, {\n [whitespace]: true\n });\n tt(Start, OBJECT_REPLACEMENT, Ws);\n tt(Cr, LF, Nl); // \\r\\n\n tt(Cr, OBJECT_REPLACEMENT, Ws);\n tr(Cr, SPACE, Ws);\n tt(Ws, CR); // non-accepting state to avoid mixing whitespaces\n tt(Ws, LF); // non-accepting state to avoid mixing whitespaces\n tr(Ws, SPACE, Ws);\n tt(Ws, OBJECT_REPLACEMENT, Ws);\n\n // Emoji tokens. They are not grouped by the scanner except in cases where a\n // zero-width joiner is present\n const Emoji = tr(Start, EMOJI, EMOJI$1, {\n [emoji]: true\n });\n tt(Emoji, '#'); // no transition, emoji regex seems to match #\n tr(Emoji, EMOJI, Emoji);\n tt(Emoji, EMOJI_VARIATION, Emoji);\n // tt(Start, EMOJI_VARIATION, Emoji); // This one is sketchy\n\n const EmojiJoiner = tt(Emoji, EMOJI_JOINER);\n tt(EmojiJoiner, '#');\n tr(EmojiJoiner, EMOJI, Emoji);\n // tt(EmojiJoiner, EMOJI_VARIATION, Emoji); // also sketchy\n\n // Generates states for top-level domains\n // Note that this is most accurate when tlds are in alphabetical order\n const wordjr = [[ASCII_LETTER, Word], [DIGIT, Asciinumeric]];\n const uwordjr = [[ASCII_LETTER, null], [LETTER, UWord], [DIGIT, Alphanumeric]];\n for (let i = 0; i < tlds.length; i++) {\n fastts(Start, tlds[i], TLD, WORD, wordjr);\n }\n for (let i = 0; i < utlds.length; i++) {\n fastts(Start, utlds[i], UTLD, UWORD, uwordjr);\n }\n addToGroups(TLD, {\n tld: true,\n ascii: true\n }, groups);\n addToGroups(UTLD, {\n utld: true,\n alpha: true\n }, groups);\n\n // Collect the states generated by different protocols. NOTE: If any new TLDs\n // get added that are also protocols, set the token to be the same as the\n // protocol to ensure parsing works as expected.\n fastts(Start, 'file', SCHEME, WORD, wordjr);\n fastts(Start, 'mailto', SCHEME, WORD, wordjr);\n fastts(Start, 'http', SLASH_SCHEME, WORD, wordjr);\n fastts(Start, 'https', SLASH_SCHEME, WORD, wordjr);\n fastts(Start, 'ftp', SLASH_SCHEME, WORD, wordjr);\n fastts(Start, 'ftps', SLASH_SCHEME, WORD, wordjr);\n addToGroups(SCHEME, {\n scheme: true,\n ascii: true\n }, groups);\n addToGroups(SLASH_SCHEME, {\n slashscheme: true,\n ascii: true\n }, groups);\n\n // Register custom schemes. Assumes each scheme is asciinumeric with hyphens\n customSchemes = customSchemes.sort((a, b) => a[0] > b[0] ? 1 : -1);\n for (let i = 0; i < customSchemes.length; i++) {\n const sch = customSchemes[i][0];\n const optionalSlashSlash = customSchemes[i][1];\n const flags = optionalSlashSlash ? {\n [scheme]: true\n } : {\n [slashscheme]: true\n };\n if (sch.indexOf('-') >= 0) {\n flags[domain] = true;\n } else if (!ASCII_LETTER.test(sch)) {\n flags[numeric] = true; // numbers only\n } else if (DIGIT.test(sch)) {\n flags[asciinumeric] = true;\n } else {\n flags[ascii] = true;\n }\n ts(Start, sch, sch, flags);\n }\n\n // Localhost token\n ts(Start, 'localhost', LOCALHOST, {\n ascii: true\n });\n\n // Set default transition for start state (some symbol)\n Start.jd = new State(SYM);\n return {\n start: Start,\n tokens: Object.assign({\n groups\n }, tk)\n };\n}\n\n/**\n\tGiven a string, returns an array of TOKEN instances representing the\n\tcomposition of that string.\n\n\t@method run\n\t@param {State} start scanner starting state\n\t@param {string} str input string to scan\n\t@return {Token[]} list of tokens, each with a type and value\n*/\nfunction run$1(start, str) {\n // State machine is not case sensitive, so input is tokenized in lowercased\n // form (still returns regular case). Uses selective `toLowerCase` because\n // lowercasing the entire string causes the length and character position to\n // vary in some non-English strings with V8-based runtimes.\n const iterable = stringToArray(str.replace(/[A-Z]/g, c => c.toLowerCase()));\n const charCount = iterable.length; // <= len if there are emojis, etc\n const tokens = []; // return value\n\n // cursor through the string itself, accounting for characters that have\n // width with length 2 such as emojis\n let cursor = 0;\n\n // Cursor through the array-representation of the string\n let charCursor = 0;\n\n // Tokenize the string\n while (charCursor < charCount) {\n let state = start;\n let nextState = null;\n let tokenLength = 0;\n let latestAccepting = null;\n let sinceAccepts = -1;\n let charsSinceAccepts = -1;\n while (charCursor < charCount && (nextState = state.go(iterable[charCursor]))) {\n state = nextState;\n\n // Keep track of the latest accepting state\n if (state.accepts()) {\n sinceAccepts = 0;\n charsSinceAccepts = 0;\n latestAccepting = state;\n } else if (sinceAccepts >= 0) {\n sinceAccepts += iterable[charCursor].length;\n charsSinceAccepts++;\n }\n tokenLength += iterable[charCursor].length;\n cursor += iterable[charCursor].length;\n charCursor++;\n }\n\n // Roll back to the latest accepting state\n cursor -= sinceAccepts;\n charCursor -= charsSinceAccepts;\n tokenLength -= sinceAccepts;\n\n // No more jumps, just make a new token from the last accepting one\n tokens.push({\n t: latestAccepting.t,\n // token type/name\n v: str.slice(cursor - tokenLength, cursor),\n // string value\n s: cursor - tokenLength,\n // start index\n e: cursor // end index (excluding)\n });\n }\n return tokens;\n}\n\n/**\n * Convert a String to an Array of characters, taking into account that some\n * characters like emojis take up two string indexes.\n *\n * Adapted from core-js (MIT license)\n * https://github.com/zloirock/core-js/blob/2d69cf5f99ab3ea3463c395df81e5a15b68f49d9/packages/core-js/internals/string-multibyte.js\n *\n * @function stringToArray\n * @param {string} str\n * @returns {string[]}\n */\nfunction stringToArray(str) {\n const result = [];\n const len = str.length;\n let index = 0;\n while (index < len) {\n let first = str.charCodeAt(index);\n let second;\n let char = first < 0xd800 || first > 0xdbff || index + 1 === len || (second = str.charCodeAt(index + 1)) < 0xdc00 || second > 0xdfff ? str[index] // single character\n : str.slice(index, index + 2); // two-index characters\n result.push(char);\n index += char.length;\n }\n return result;\n}\n\n/**\n * Fast version of ts function for when transition defaults are well known\n * @param {State} state\n * @param {string} input\n * @param {string} t\n * @param {string} defaultt\n * @param {[RegExp, State][]} jr\n * @returns {State}\n */\nfunction fastts(state, input, t, defaultt, jr) {\n let next;\n const len = input.length;\n for (let i = 0; i < len - 1; i++) {\n const char = input[i];\n if (state.j[char]) {\n next = state.j[char];\n } else {\n next = new State(defaultt);\n next.jr = jr.slice();\n state.j[char] = next;\n }\n state = next;\n }\n next = new State(t);\n next.jr = jr.slice();\n state.j[input[len - 1]] = next;\n return next;\n}\n\n/**\n * Converts a string of Top-Level Domain names encoded in update-tlds.js back\n * into a list of strings.\n * @param {str} encoded encoded TLDs string\n * @returns {str[]} original TLDs list\n */\nfunction decodeTlds(encoded) {\n const words = [];\n const stack = [];\n let i = 0;\n let digits = '0123456789';\n while (i < encoded.length) {\n let popDigitCount = 0;\n while (digits.indexOf(encoded[i + popDigitCount]) >= 0) {\n popDigitCount++; // encountered some digits, have to pop to go one level up trie\n }\n if (popDigitCount > 0) {\n words.push(stack.join('')); // whatever preceded the pop digits must be a word\n for (let popCount = parseInt(encoded.substring(i, i + popDigitCount), 10); popCount > 0; popCount--) {\n stack.pop();\n }\n i += popDigitCount;\n } else {\n stack.push(encoded[i]); // drop down a level into the trie\n i++;\n }\n }\n return words;\n}\n\n/**\n * An object where each key is a valid DOM Event Name such as `click` or `focus`\n * and each value is an event handler function.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/Element#events\n * @typedef {?{ [event: string]: Function }} EventListeners\n */\n\n/**\n * All formatted properties required to render a link, including `tagName`,\n * `attributes`, `content` and `eventListeners`.\n * @typedef {{ tagName: any, attributes: {[attr: string]: any}, content: string,\n * eventListeners: EventListeners }} IntermediateRepresentation\n */\n\n/**\n * Specify either an object described by the template type `O` or a function.\n *\n * The function takes a string value (usually the link's href attribute), the\n * link type (`'url'`, `'hashtag`', etc.) and an internal token representation\n * of the link. It should return an object of the template type `O`\n * @template O\n * @typedef {O | ((value: string, type: string, token: MultiToken) => O)} OptObj\n */\n\n/**\n * Specify either a function described by template type `F` or an object.\n *\n * Each key in the object should be a link type (`'url'`, `'hashtag`', etc.). Each\n * value should be a function with template type `F` that is called when the\n * corresponding link type is encountered.\n * @template F\n * @typedef {F | { [type: string]: F}} OptFn\n */\n\n/**\n * Specify either a value with template type `V`, a function that returns `V` or\n * an object where each value resolves to `V`.\n *\n * The function takes a string value (usually the link's href attribute), the\n * link type (`'url'`, `'hashtag`', etc.) and an internal token representation\n * of the link. It should return an object of the template type `V`\n *\n * For the object, each key should be a link type (`'url'`, `'hashtag`', etc.).\n * Each value should either have type `V` or a function that returns V. This\n * function similarly takes a string value and a token.\n *\n * Example valid types for `Opt`:\n *\n * ```js\n * 'hello'\n * (value, type, token) => 'world'\n * { url: 'hello', email: (value, token) => 'world'}\n * ```\n * @template V\n * @typedef {V | ((value: string, type: string, token: MultiToken) => V) | { [type: string]: V | ((value: string, token: MultiToken) => V) }} Opt\n */\n\n/**\n * See available options: https://linkify.js.org/docs/options.html\n * @typedef {{\n * \tdefaultProtocol?: string,\n * events?: OptObj,\n * \tformat?: Opt,\n * \tformatHref?: Opt,\n * \tnl2br?: boolean,\n * \ttagName?: Opt,\n * \ttarget?: Opt,\n * \trel?: Opt,\n * \tvalidate?: Opt,\n * \ttruncate?: Opt,\n * \tclassName?: Opt,\n * \tattributes?: OptObj<({ [attr: string]: any })>,\n * ignoreTags?: string[],\n * \trender?: OptFn<((ir: IntermediateRepresentation) => any)>\n * }} Opts\n */\n\n/**\n * @type Required\n */\nconst defaults = {\n defaultProtocol: 'http',\n events: null,\n format: noop,\n formatHref: noop,\n nl2br: false,\n tagName: 'a',\n target: null,\n rel: null,\n validate: true,\n truncate: Infinity,\n className: null,\n attributes: null,\n ignoreTags: [],\n render: null\n};\n\n/**\n * Utility class for linkify interfaces to apply specified\n * {@link Opts formatting and rendering options}.\n *\n * @param {Opts | Options} [opts] Option value overrides.\n * @param {(ir: IntermediateRepresentation) => any} [defaultRender] (For\n * internal use) default render function that determines how to generate an\n * HTML element based on a link token's derived tagName, attributes and HTML.\n * Similar to render option\n */\nfunction Options(opts, defaultRender = null) {\n let o = Object.assign({}, defaults);\n if (opts) {\n o = Object.assign(o, opts instanceof Options ? opts.o : opts);\n }\n\n // Ensure all ignored tags are uppercase\n const ignoredTags = o.ignoreTags;\n const uppercaseIgnoredTags = [];\n for (let i = 0; i < ignoredTags.length; i++) {\n uppercaseIgnoredTags.push(ignoredTags[i].toUpperCase());\n }\n /** @protected */\n this.o = o;\n if (defaultRender) {\n this.defaultRender = defaultRender;\n }\n this.ignoreTags = uppercaseIgnoredTags;\n}\nOptions.prototype = {\n o: defaults,\n /**\n * @type string[]\n */\n ignoreTags: [],\n /**\n * @param {IntermediateRepresentation} ir\n * @returns {any}\n */\n defaultRender(ir) {\n return ir;\n },\n /**\n * Returns true or false based on whether a token should be displayed as a\n * link based on the user options.\n * @param {MultiToken} token\n * @returns {boolean}\n */\n check(token) {\n return this.get('validate', token.toString(), token);\n },\n // Private methods\n\n /**\n * Resolve an option's value based on the value of the option and the given\n * params. If operator and token are specified and the target option is\n * callable, automatically calls the function with the given argument.\n * @template {keyof Opts} K\n * @param {K} key Name of option to use\n * @param {string} [operator] will be passed to the target option if it's a\n * function. If not specified, RAW function value gets returned\n * @param {MultiToken} [token] The token from linkify.tokenize\n * @returns {Opts[K] | any}\n */\n get(key, operator, token) {\n const isCallable = operator != null;\n let option = this.o[key];\n if (!option) {\n return option;\n }\n if (typeof option === 'object') {\n option = token.t in option ? option[token.t] : defaults[key];\n if (typeof option === 'function' && isCallable) {\n option = option(operator, token);\n }\n } else if (typeof option === 'function' && isCallable) {\n option = option(operator, token.t, token);\n }\n return option;\n },\n /**\n * @template {keyof Opts} L\n * @param {L} key Name of options object to use\n * @param {string} [operator]\n * @param {MultiToken} [token]\n * @returns {Opts[L] | any}\n */\n getObj(key, operator, token) {\n let obj = this.o[key];\n if (typeof obj === 'function' && operator != null) {\n obj = obj(operator, token.t, token);\n }\n return obj;\n },\n /**\n * Convert the given token to a rendered element that may be added to the\n * calling-interface's DOM\n * @param {MultiToken} token Token to render to an HTML element\n * @returns {any} Render result; e.g., HTML string, DOM element, React\n * Component, etc.\n */\n render(token) {\n const ir = token.render(this); // intermediate representation\n const renderFn = this.get('render', null, token) || this.defaultRender;\n return renderFn(ir, token.t, token);\n }\n};\nfunction noop(val) {\n return val;\n}\n\nvar options = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tOptions: Options,\n\tdefaults: defaults\n});\n\n/******************************************************************************\n\tMulti-Tokens\n\tTokens composed of arrays of TextTokens\n******************************************************************************/\n\n/**\n * @param {string} value\n * @param {Token[]} tokens\n */\nfunction MultiToken(value, tokens) {\n this.t = 'token';\n this.v = value;\n this.tk = tokens;\n}\n\n/**\n * Abstract class used for manufacturing tokens of text tokens. That is rather\n * than the value for a token being a small string of text, it's value an array\n * of text tokens.\n *\n * Used for grouping together URLs, emails, hashtags, and other potential\n * creations.\n * @class MultiToken\n * @property {string} t\n * @property {string} v\n * @property {Token[]} tk\n * @abstract\n */\nMultiToken.prototype = {\n isLink: false,\n /**\n * Return the string this token represents.\n * @return {string}\n */\n toString() {\n return this.v;\n },\n /**\n * What should the value for this token be in the `href` HTML attribute?\n * Returns the `.toString` value by default.\n * @param {string} [scheme]\n * @return {string}\n */\n toHref(scheme) {\n return this.toString();\n },\n /**\n * @param {Options} options Formatting options\n * @returns {string}\n */\n toFormattedString(options) {\n const val = this.toString();\n const truncate = options.get('truncate', val, this);\n const formatted = options.get('format', val, this);\n return truncate && formatted.length > truncate ? formatted.substring(0, truncate) + '…' : formatted;\n },\n /**\n *\n * @param {Options} options\n * @returns {string}\n */\n toFormattedHref(options) {\n return options.get('formatHref', this.toHref(options.get('defaultProtocol')), this);\n },\n /**\n * The start index of this token in the original input string\n * @returns {number}\n */\n startIndex() {\n return this.tk[0].s;\n },\n /**\n * The end index of this token in the original input string (up to this\n * index but not including it)\n * @returns {number}\n */\n endIndex() {\n return this.tk[this.tk.length - 1].e;\n },\n /**\n \tReturns an object of relevant values for this token, which includes keys\n \t* type - Kind of token ('url', 'email', etc.)\n \t* value - Original text\n \t* href - The value that should be added to the anchor tag's href\n \t\tattribute\n \t\t@method toObject\n \t@param {string} [protocol] `'http'` by default\n */\n toObject(protocol = defaults.defaultProtocol) {\n return {\n type: this.t,\n value: this.toString(),\n isLink: this.isLink,\n href: this.toHref(protocol),\n start: this.startIndex(),\n end: this.endIndex()\n };\n },\n /**\n *\n * @param {Options} options Formatting option\n */\n toFormattedObject(options) {\n return {\n type: this.t,\n value: this.toFormattedString(options),\n isLink: this.isLink,\n href: this.toFormattedHref(options),\n start: this.startIndex(),\n end: this.endIndex()\n };\n },\n /**\n * Whether this token should be rendered as a link according to the given options\n * @param {Options} options\n * @returns {boolean}\n */\n validate(options) {\n return options.get('validate', this.toString(), this);\n },\n /**\n * Return an object that represents how this link should be rendered.\n * @param {Options} options Formattinng options\n */\n render(options) {\n const token = this;\n const href = this.toHref(options.get('defaultProtocol'));\n const formattedHref = options.get('formatHref', href, this);\n const tagName = options.get('tagName', href, token);\n const content = this.toFormattedString(options);\n const attributes = {};\n const className = options.get('className', href, token);\n const target = options.get('target', href, token);\n const rel = options.get('rel', href, token);\n const attrs = options.getObj('attributes', href, token);\n const eventListeners = options.getObj('events', href, token);\n attributes.href = formattedHref;\n if (className) {\n attributes.class = className;\n }\n if (target) {\n attributes.target = target;\n }\n if (rel) {\n attributes.rel = rel;\n }\n if (attrs) {\n Object.assign(attributes, attrs);\n }\n return {\n tagName,\n attributes,\n content,\n eventListeners\n };\n }\n};\n\n/**\n * Create a new token that can be emitted by the parser state machine\n * @param {string} type readable type of the token\n * @param {object} props properties to assign or override, including isLink = true or false\n * @returns {new (value: string, tokens: Token[]) => MultiToken} new token class\n */\nfunction createTokenClass(type, props) {\n class Token extends MultiToken {\n constructor(value, tokens) {\n super(value, tokens);\n this.t = type;\n }\n }\n for (const p in props) {\n Token.prototype[p] = props[p];\n }\n Token.t = type;\n return Token;\n}\n\n/**\n\tRepresents a list of tokens making up a valid email address\n*/\nconst Email = createTokenClass('email', {\n isLink: true,\n toHref() {\n return 'mailto:' + this.toString();\n }\n});\n\n/**\n\tRepresents some plain text\n*/\nconst Text = createTokenClass('text');\n\n/**\n\tMulti-linebreak token - represents a line break\n\t@class Nl\n*/\nconst Nl = createTokenClass('nl');\n\n/**\n\tRepresents a list of text tokens making up a valid URL\n\t@class Url\n*/\nconst Url = createTokenClass('url', {\n isLink: true,\n /**\n \tLowercases relevant parts of the domain and adds the protocol if\n \trequired. Note that this will not escape unsafe HTML characters in the\n \tURL.\n \t\t@param {string} [scheme] default scheme (e.g., 'https')\n \t@return {string} the full href\n */\n toHref(scheme = defaults.defaultProtocol) {\n // Check if already has a prefix scheme\n return this.hasProtocol() ? this.v : `${scheme}://${this.v}`;\n },\n /**\n * Check whether this URL token has a protocol\n * @return {boolean}\n */\n hasProtocol() {\n const tokens = this.tk;\n return tokens.length >= 2 && tokens[0].t !== LOCALHOST && tokens[1].t === COLON;\n }\n});\n\nvar multi = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tBase: MultiToken,\n\tEmail: Email,\n\tMultiToken: MultiToken,\n\tNl: Nl,\n\tText: Text,\n\tUrl: Url,\n\tcreateTokenClass: createTokenClass\n});\n\n/**\n\tNot exactly parser, more like the second-stage scanner (although we can\n\ttheoretically hotswap the code here with a real parser in the future... but\n\tfor a little URL-finding utility abstract syntax trees may be a little\n\toverkill).\n\n\tURL format: http://en.wikipedia.org/wiki/URI_scheme\n\tEmail format: http://en.wikipedia.org/wiki/EmailAddress (links to RFC in\n\treference)\n\n\t@module linkify\n\t@submodule parser\n\t@main run\n*/\n\nconst makeState = arg => new State(arg);\n\n/**\n * Generate the parser multi token-based state machine\n * @param {{ groups: Collections }} tokens\n */\nfunction init$1({\n groups\n}) {\n // Types of characters the URL can definitely end in\n const qsAccepting = groups.domain.concat([AMPERSAND, ASTERISK, AT, BACKSLASH, BACKTICK, CARET, DOLLAR, EQUALS, HYPHEN, NUM, PERCENT, PIPE, PLUS, POUND, SLASH, SYM, TILDE, UNDERSCORE]);\n\n // Types of tokens that can follow a URL and be part of the query string\n // but cannot be the very last characters\n // Characters that cannot appear in the URL at all should be excluded\n const qsNonAccepting = [APOSTROPHE, COLON, COMMA, DOT, EXCLAMATION, PERCENT, QUERY, QUOTE, SEMI, OPENANGLEBRACKET, CLOSEANGLEBRACKET, OPENBRACE, CLOSEBRACE, CLOSEBRACKET, OPENBRACKET, OPENPAREN, CLOSEPAREN, FULLWIDTHLEFTPAREN, FULLWIDTHRIGHTPAREN, LEFTCORNERBRACKET, RIGHTCORNERBRACKET, LEFTWHITECORNERBRACKET, RIGHTWHITECORNERBRACKET, FULLWIDTHLESSTHAN, FULLWIDTHGREATERTHAN];\n\n // For addresses without the mailto prefix\n // Tokens allowed in the localpart of the email\n const localpartAccepting = [AMPERSAND, APOSTROPHE, ASTERISK, BACKSLASH, BACKTICK, CARET, DOLLAR, EQUALS, HYPHEN, OPENBRACE, CLOSEBRACE, PERCENT, PIPE, PLUS, POUND, QUERY, SLASH, SYM, TILDE, UNDERSCORE];\n\n // The universal starting state.\n /**\n * @type State\n */\n const Start = makeState();\n const Localpart = tt(Start, TILDE); // Local part of the email address\n ta(Localpart, localpartAccepting, Localpart);\n ta(Localpart, groups.domain, Localpart);\n const Domain = makeState(),\n Scheme = makeState(),\n SlashScheme = makeState();\n ta(Start, groups.domain, Domain); // parsed string ends with a potential domain name (A)\n ta(Start, groups.scheme, Scheme); // e.g., 'mailto'\n ta(Start, groups.slashscheme, SlashScheme); // e.g., 'http'\n\n ta(Domain, localpartAccepting, Localpart);\n ta(Domain, groups.domain, Domain);\n const LocalpartAt = tt(Domain, AT); // Local part of the email address plus @\n\n tt(Localpart, AT, LocalpartAt); // close to an email address now\n\n // Local part of an email address can be e.g. 'http' or 'mailto'\n tt(Scheme, AT, LocalpartAt);\n tt(SlashScheme, AT, LocalpartAt);\n const LocalpartDot = tt(Localpart, DOT); // Local part of the email address plus '.' (localpart cannot end in .)\n ta(LocalpartDot, localpartAccepting, Localpart);\n ta(LocalpartDot, groups.domain, Localpart);\n const EmailDomain = makeState();\n ta(LocalpartAt, groups.domain, EmailDomain); // parsed string starts with local email info + @ with a potential domain name\n ta(EmailDomain, groups.domain, EmailDomain);\n const EmailDomainDot = tt(EmailDomain, DOT); // domain followed by DOT\n ta(EmailDomainDot, groups.domain, EmailDomain);\n const Email$1 = makeState(Email); // Possible email address (could have more tlds)\n ta(EmailDomainDot, groups.tld, Email$1);\n ta(EmailDomainDot, groups.utld, Email$1);\n tt(LocalpartAt, LOCALHOST, Email$1);\n\n // Hyphen can jump back to a domain name\n const EmailDomainHyphen = tt(EmailDomain, HYPHEN); // parsed string starts with local email info + @ with a potential domain name\n tt(EmailDomainHyphen, HYPHEN, EmailDomainHyphen);\n ta(EmailDomainHyphen, groups.domain, EmailDomain);\n ta(Email$1, groups.domain, EmailDomain);\n tt(Email$1, DOT, EmailDomainDot);\n tt(Email$1, HYPHEN, EmailDomainHyphen);\n\n // Final possible email states\n const EmailColon = tt(Email$1, COLON); // URL followed by colon (potential port number here)\n /*const EmailColonPort = */\n ta(EmailColon, groups.numeric, Email); // URL followed by colon and port number\n\n // Account for dots and hyphens. Hyphens are usually parts of domain names\n // (but not TLDs)\n const DomainHyphen = tt(Domain, HYPHEN); // domain followed by hyphen\n const DomainDot = tt(Domain, DOT); // domain followed by DOT\n tt(DomainHyphen, HYPHEN, DomainHyphen);\n ta(DomainHyphen, groups.domain, Domain);\n ta(DomainDot, localpartAccepting, Localpart);\n ta(DomainDot, groups.domain, Domain);\n const DomainDotTld = makeState(Url); // Simplest possible URL with no query string\n ta(DomainDot, groups.tld, DomainDotTld);\n ta(DomainDot, groups.utld, DomainDotTld);\n ta(DomainDotTld, groups.domain, Domain);\n ta(DomainDotTld, localpartAccepting, Localpart);\n tt(DomainDotTld, DOT, DomainDot);\n tt(DomainDotTld, HYPHEN, DomainHyphen);\n tt(DomainDotTld, AT, LocalpartAt);\n const DomainDotTldColon = tt(DomainDotTld, COLON); // URL followed by colon (potential port number here)\n const DomainDotTldColonPort = makeState(Url); // TLD followed by a port number\n ta(DomainDotTldColon, groups.numeric, DomainDotTldColonPort);\n\n // Long URL with optional port and maybe query string\n const Url$1 = makeState(Url);\n\n // URL with extra symbols at the end, followed by an opening bracket\n const UrlNonaccept = makeState(); // URL followed by some symbols (will not be part of the final URL)\n\n // Query strings\n ta(Url$1, qsAccepting, Url$1);\n ta(Url$1, qsNonAccepting, UrlNonaccept);\n ta(UrlNonaccept, qsAccepting, Url$1);\n ta(UrlNonaccept, qsNonAccepting, UrlNonaccept);\n\n // Become real URLs after `SLASH` or `COLON NUM SLASH`\n // Here works with or without scheme:// prefix\n tt(DomainDotTld, SLASH, Url$1);\n tt(DomainDotTldColonPort, SLASH, Url$1);\n\n // Note that domains that begin with schemes are treated slighly differently\n const SchemeColon = tt(Scheme, COLON); // e.g., 'mailto:'\n const SlashSchemeColon = tt(SlashScheme, COLON); // e.g., 'http:'\n const SlashSchemeColonSlash = tt(SlashSchemeColon, SLASH); // e.g., 'http:/'\n\n const UriPrefix = tt(SlashSchemeColonSlash, SLASH); // e.g., 'http://'\n\n // Scheme states can transition to domain states\n ta(Scheme, groups.domain, Domain);\n tt(Scheme, DOT, DomainDot);\n tt(Scheme, HYPHEN, DomainHyphen);\n ta(SlashScheme, groups.domain, Domain);\n tt(SlashScheme, DOT, DomainDot);\n tt(SlashScheme, HYPHEN, DomainHyphen);\n\n // Force URL with scheme prefix followed by anything sane\n ta(SchemeColon, groups.domain, Url$1);\n tt(SchemeColon, SLASH, Url$1);\n tt(SchemeColon, QUERY, Url$1);\n ta(UriPrefix, groups.domain, Url$1);\n ta(UriPrefix, qsAccepting, Url$1);\n tt(UriPrefix, SLASH, Url$1);\n const bracketPairs = [[OPENBRACE, CLOSEBRACE],\n // {}\n [OPENBRACKET, CLOSEBRACKET],\n // []\n [OPENPAREN, CLOSEPAREN],\n // ()\n [OPENANGLEBRACKET, CLOSEANGLEBRACKET],\n // <>\n [FULLWIDTHLEFTPAREN, FULLWIDTHRIGHTPAREN],\n // ()\n [LEFTCORNERBRACKET, RIGHTCORNERBRACKET],\n // 「」\n [LEFTWHITECORNERBRACKET, RIGHTWHITECORNERBRACKET],\n // 『』\n [FULLWIDTHLESSTHAN, FULLWIDTHGREATERTHAN] // <>\n ];\n for (let i = 0; i < bracketPairs.length; i++) {\n const [OPEN, CLOSE] = bracketPairs[i];\n const UrlOpen = tt(Url$1, OPEN); // URL followed by open bracket\n\n // Continue not accepting for open brackets\n tt(UrlNonaccept, OPEN, UrlOpen);\n\n // Closing bracket component. This character WILL be included in the URL\n tt(UrlOpen, CLOSE, Url$1);\n\n // URL that beings with an opening bracket, followed by a symbols.\n // Note that the final state can still be `UrlOpen` (if the URL has a\n // single opening bracket for some reason).\n const UrlOpenQ = makeState(Url);\n ta(UrlOpen, qsAccepting, UrlOpenQ);\n const UrlOpenSyms = makeState(); // UrlOpen followed by some symbols it cannot end it\n ta(UrlOpen, qsNonAccepting);\n\n // URL that begins with an opening bracket, followed by some symbols\n ta(UrlOpenQ, qsAccepting, UrlOpenQ);\n ta(UrlOpenQ, qsNonAccepting, UrlOpenSyms);\n ta(UrlOpenSyms, qsAccepting, UrlOpenQ);\n ta(UrlOpenSyms, qsNonAccepting, UrlOpenSyms);\n\n // Close brace/bracket to become regular URL\n tt(UrlOpenQ, CLOSE, Url$1);\n tt(UrlOpenSyms, CLOSE, Url$1);\n }\n tt(Start, LOCALHOST, DomainDotTld); // localhost is a valid URL state\n tt(Start, NL, Nl); // single new line\n\n return {\n start: Start,\n tokens: tk\n };\n}\n\n/**\n * Run the parser state machine on a list of scanned string-based tokens to\n * create a list of multi tokens, each of which represents a URL, email address,\n * plain text, etc.\n *\n * @param {State} start parser start state\n * @param {string} input the original input used to generate the given tokens\n * @param {Token[]} tokens list of scanned tokens\n * @returns {MultiToken[]}\n */\nfunction run(start, input, tokens) {\n let len = tokens.length;\n let cursor = 0;\n let multis = [];\n let textTokens = [];\n while (cursor < len) {\n let state = start;\n let secondState = null;\n let nextState = null;\n let multiLength = 0;\n let latestAccepting = null;\n let sinceAccepts = -1;\n while (cursor < len && !(secondState = state.go(tokens[cursor].t))) {\n // Starting tokens with nowhere to jump to.\n // Consider these to be just plain text\n textTokens.push(tokens[cursor++]);\n }\n while (cursor < len && (nextState = secondState || state.go(tokens[cursor].t))) {\n // Get the next state\n secondState = null;\n state = nextState;\n\n // Keep track of the latest accepting state\n if (state.accepts()) {\n sinceAccepts = 0;\n latestAccepting = state;\n } else if (sinceAccepts >= 0) {\n sinceAccepts++;\n }\n cursor++;\n multiLength++;\n }\n if (sinceAccepts < 0) {\n // No accepting state was found, part of a regular text token add\n // the first text token to the text tokens array and try again from\n // the next\n cursor -= multiLength;\n if (cursor < len) {\n textTokens.push(tokens[cursor]);\n cursor++;\n }\n } else {\n // Accepting state!\n // First close off the textTokens (if available)\n if (textTokens.length > 0) {\n multis.push(initMultiToken(Text, input, textTokens));\n textTokens = [];\n }\n\n // Roll back to the latest accepting state\n cursor -= sinceAccepts;\n multiLength -= sinceAccepts;\n\n // Create a new multitoken\n const Multi = latestAccepting.t;\n const subtokens = tokens.slice(cursor - multiLength, cursor);\n multis.push(initMultiToken(Multi, input, subtokens));\n }\n }\n\n // Finally close off the textTokens (if available)\n if (textTokens.length > 0) {\n multis.push(initMultiToken(Text, input, textTokens));\n }\n return multis;\n}\n\n/**\n * Utility function for instantiating a new multitoken with all the relevant\n * fields during parsing.\n * @param {new (value: string, tokens: Token[]) => MultiToken} Multi class to instantiate\n * @param {string} input original input string\n * @param {Token[]} tokens consecutive tokens scanned from input string\n * @returns {MultiToken}\n */\nfunction initMultiToken(Multi, input, tokens) {\n const startIdx = tokens[0].s;\n const endIdx = tokens[tokens.length - 1].e;\n const value = input.slice(startIdx, endIdx);\n return new Multi(value, tokens);\n}\n\nconst warn = typeof console !== 'undefined' && console && console.warn || (() => {});\nconst warnAdvice = 'until manual call of linkify.init(). Register all schemes and plugins before invoking linkify the first time.';\n\n// Side-effect initialization state\nconst INIT = {\n scanner: null,\n parser: null,\n tokenQueue: [],\n pluginQueue: [],\n customSchemes: [],\n initialized: false\n};\n\n/**\n * @typedef {{\n * \tstart: State,\n * \ttokens: { groups: Collections } & typeof tk\n * }} ScannerInit\n */\n\n/**\n * @typedef {{\n * \tstart: State,\n * \ttokens: typeof multi\n * }} ParserInit\n */\n\n/**\n * @typedef {(arg: { scanner: ScannerInit }) => void} TokenPlugin\n */\n\n/**\n * @typedef {(arg: { scanner: ScannerInit, parser: ParserInit }) => void} Plugin\n */\n\n/**\n * De-register all plugins and reset the internal state-machine. Used for\n * testing; not required in practice.\n * @private\n */\nfunction reset() {\n State.groups = {};\n INIT.scanner = null;\n INIT.parser = null;\n INIT.tokenQueue = [];\n INIT.pluginQueue = [];\n INIT.customSchemes = [];\n INIT.initialized = false;\n return INIT;\n}\n\n/**\n * Register a token plugin to allow the scanner to recognize additional token\n * types before the parser state machine is constructed from the results.\n * @param {string} name of plugin to register\n * @param {TokenPlugin} plugin function that accepts the scanner state machine\n * and available scanner tokens and collections and extends the state machine to\n * recognize additional tokens or groups.\n */\nfunction registerTokenPlugin(name, plugin) {\n if (typeof plugin !== 'function') {\n throw new Error(`linkifyjs: Invalid token plugin ${plugin} (expects function)`);\n }\n for (let i = 0; i < INIT.tokenQueue.length; i++) {\n if (name === INIT.tokenQueue[i][0]) {\n warn(`linkifyjs: token plugin \"${name}\" already registered - will be overwritten`);\n INIT.tokenQueue[i] = [name, plugin];\n return;\n }\n }\n INIT.tokenQueue.push([name, plugin]);\n if (INIT.initialized) {\n warn(`linkifyjs: already initialized - will not register token plugin \"${name}\" ${warnAdvice}`);\n }\n}\n\n/**\n * Register a linkify plugin\n * @param {string} name of plugin to register\n * @param {Plugin} plugin function that accepts the parser state machine and\n * extends the parser to recognize additional link types\n */\nfunction registerPlugin(name, plugin) {\n if (typeof plugin !== 'function') {\n throw new Error(`linkifyjs: Invalid plugin ${plugin} (expects function)`);\n }\n for (let i = 0; i < INIT.pluginQueue.length; i++) {\n if (name === INIT.pluginQueue[i][0]) {\n warn(`linkifyjs: plugin \"${name}\" already registered - will be overwritten`);\n INIT.pluginQueue[i] = [name, plugin];\n return;\n }\n }\n INIT.pluginQueue.push([name, plugin]);\n if (INIT.initialized) {\n warn(`linkifyjs: already initialized - will not register plugin \"${name}\" ${warnAdvice}`);\n }\n}\n\n/**\n * Detect URLs with the following additional protocol. Anything with format\n * \"protocol://...\" will be considered a link. If `optionalSlashSlash` is set to\n * `true`, anything with format \"protocol:...\" will be considered a link.\n * @param {string} scheme\n * @param {boolean} [optionalSlashSlash]\n */\nfunction registerCustomProtocol(scheme, optionalSlashSlash = false) {\n if (INIT.initialized) {\n warn(`linkifyjs: already initialized - will not register custom scheme \"${scheme}\" ${warnAdvice}`);\n }\n if (!/^[0-9a-z]+(-[0-9a-z]+)*$/.test(scheme)) {\n throw new Error(`linkifyjs: incorrect scheme format.\n1. Must only contain digits, lowercase ASCII letters or \"-\"\n2. Cannot start or end with \"-\"\n3. \"-\" cannot repeat`);\n }\n INIT.customSchemes.push([scheme, optionalSlashSlash]);\n}\n\n/**\n * Initialize the linkify state machine. Called automatically the first time\n * linkify is called on a string, but may be called manually as well.\n */\nfunction init() {\n // Initialize scanner state machine and plugins\n INIT.scanner = init$2(INIT.customSchemes);\n for (let i = 0; i < INIT.tokenQueue.length; i++) {\n INIT.tokenQueue[i][1]({\n scanner: INIT.scanner\n });\n }\n\n // Initialize parser state machine and plugins\n INIT.parser = init$1(INIT.scanner.tokens);\n for (let i = 0; i < INIT.pluginQueue.length; i++) {\n INIT.pluginQueue[i][1]({\n scanner: INIT.scanner,\n parser: INIT.parser\n });\n }\n INIT.initialized = true;\n return INIT;\n}\n\n/**\n * Parse a string into tokens that represent linkable and non-linkable sub-components\n * @param {string} str\n * @return {MultiToken[]} tokens\n */\nfunction tokenize(str) {\n if (!INIT.initialized) {\n init();\n }\n return run(INIT.parser.start, str, run$1(INIT.scanner.start, str));\n}\ntokenize.scan = run$1; // for testing\n\n/**\n * Find a list of linkable items in the given string.\n * @param {string} str string to find links in\n * @param {string | Opts} [type] either formatting options or specific type of\n * links to find, e.g., 'url' or 'email'\n * @param {Opts} [opts] formatting options for final output. Cannot be specified\n * if opts already provided in `type` argument\n */\nfunction find(str, type = null, opts = null) {\n if (type && typeof type === 'object') {\n if (opts) {\n throw Error(`linkifyjs: Invalid link type ${type}; must be a string`);\n }\n opts = type;\n type = null;\n }\n const options = new Options(opts);\n const tokens = tokenize(str);\n const filtered = [];\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i];\n if (token.isLink && (!type || token.t === type) && options.check(token)) {\n filtered.push(token.toFormattedObject(options));\n }\n }\n return filtered;\n}\n\n/**\n * Is the given string valid linkable text of some sort. Note that this does not\n * trim the text for you.\n *\n * Optionally pass in a second `type` param, which is the type of link to test\n * for.\n *\n * For example,\n *\n * linkify.test(str, 'email');\n *\n * Returns `true` if str is a valid email.\n * @param {string} str string to test for links\n * @param {string} [type] optional specific link type to look for\n * @returns boolean true/false\n */\nfunction test(str, type = null) {\n const tokens = tokenize(str);\n return tokens.length === 1 && tokens[0].isLink && (!type || tokens[0].t === type);\n}\n\nexport { MultiToken, Options, State, createTokenClass, find, init, multi, options, regexp, registerCustomProtocol, registerPlugin, registerTokenPlugin, reset, stringToArray, test, multi as text, tokenize };\n","import '../assets/NcAppSidebar-krHtMwId.css';\nimport { vOnClickOutside } from \"@vueuse/components\";\nimport { createFocusTrap } from \"focus-trap\";\nimport { createElementBlock, openBlock, mergeProps, createElementVNode, createCommentVNode, toDisplayString, defineComponent, mergeModels, useModel, normalizeClass, createVNode, withCtx, resolveComponent, withKeys, withModifiers, Fragment, renderList, createBlock, renderSlot, resolveDirective, Transition, withDirectives, Teleport, normalizeStyle, vShow, createTextVNode, warn, ref, provide } from \"vue\";\nimport { I as IconArrowRight } from \"./ArrowRight-DRKHUZMH.mjs\";\nimport { I as IconClose } from \"./Close-D6ngJ4t9.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { getCanonicalLocale } from \"@nextcloud/l10n\";\nimport { _ as _sfc_main$6 } from \"./NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs\";\nimport { useIsSmallMobile } from \"../composables/useIsMobile/index.mjs\";\nimport directive from \"../directives/Focus/index.mjs\";\nimport { r as register, C as t15, a as t } from \"./_l10n-DrTiip5c.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { g as getTrapStack } from \"./focusTrap-HJQ4pqHV.mjs\";\nimport { i as isSlotPopulated, N as NcActions } from \"./NcActions-DWmvh7-Y.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { _ as _sfc_main$7 } from \"./NcAppSidebarHeader.vue_vue_type_script_setup_true_lang-0j0aFDeK.mjs\";\nimport { N as NcButton } from \"./NcButton-Dc8V4Urj.mjs\";\nimport { C as CONTENT_SELECTOR_KEY } from \"./constants-DrSznhwy.mjs\";\nimport { N as NcEmptyContent } from \"./NcEmptyContent-B8-90BSI.mjs\";\nimport { N as NcLoadingIcon } from \"./NcLoadingIcon-b_ajZ_nQ.mjs\";\nconst _sfc_main$5 = {\n name: \"DockRightIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$5 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$3 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$3 = { d: \"M20 4H4A2 2 0 0 0 2 6V18A2 2 0 0 0 4 20H20A2 2 0 0 0 22 18V6A2 2 0 0 0 20 4M15 18H4V6H15Z\" };\nconst _hoisted_4$3 = { key: 0 };\nfunction _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon dock-right-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$3, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$3, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$3))\n ], 16, _hoisted_1$5);\n}\nconst IconDockRight = /* @__PURE__ */ _export_sfc(_sfc_main$5, [[\"render\", _sfc_render$4]]);\nconst _sfc_main$4 = {\n name: \"StarIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$4 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$2 = { d: \"M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z\" };\nconst _hoisted_4$2 = { key: 0 };\nfunction _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon star-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$2, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$2, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$2))\n ], 16, _hoisted_1$4);\n}\nconst IconStar = /* @__PURE__ */ _export_sfc(_sfc_main$4, [[\"render\", _sfc_render$3]]);\nconst _sfc_main$3 = {\n name: \"StarOutlineIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$3 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$1 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$1 = { d: \"M12,15.39L8.24,17.66L9.23,13.38L5.91,10.5L10.29,10.13L12,6.09L13.71,10.13L18.09,10.5L14.77,13.38L15.76,17.66M22,9.24L14.81,8.63L12,2L9.19,8.63L2,9.24L7.45,13.97L5.82,21L12,17.27L18.18,21L16.54,13.97L22,9.24Z\" };\nconst _hoisted_4$1 = { key: 0 };\nfunction _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon star-outline-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$1, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$1, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$1))\n ], 16, _hoisted_1$3);\n}\nconst IconStarOutline = /* @__PURE__ */ _export_sfc(_sfc_main$3, [[\"render\", _sfc_render$2]]);\nconst _hoisted_1$2 = [\"aria-selected\", \"tabindex\"];\nconst _sfc_main$2 = /* @__PURE__ */ defineComponent({\n __name: \"NcAppSidebarTabsButton\",\n props: /* @__PURE__ */ mergeModels({\n tab: {}\n }, {\n \"selected\": { type: Boolean, ...{ required: true } },\n \"selectedModifiers\": {}\n }),\n emits: [\"update:selected\"],\n setup(__props) {\n const selected = useModel(__props, \"selected\");\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"button\", {\n class: normalizeClass([\"button-vue\", [_ctx.$style.sidebarTabsButton, {\n [_ctx.$style.sidebarTabsButton_selected]: selected.value\n }]]),\n role: \"tab\",\n \"aria-selected\": selected.value,\n tabindex: selected.value ? 0 : -1,\n onClick: _cache[0] || (_cache[0] = ($event) => selected.value = true)\n }, [\n createElementVNode(\"span\", {\n class: normalizeClass(_ctx.$style.sidebarTabsButton__icon)\n }, [\n createVNode(_sfc_main$6, {\n vnodes: _ctx.tab.renderIcon()\n }, {\n default: withCtx(() => [\n createElementVNode(\"span\", {\n class: normalizeClass([_ctx.$style.sidebarTabsButton__legacyIcon, _ctx.tab.icon])\n }, null, 2)\n ]),\n _: 1\n }, 8, [\"vnodes\"])\n ], 2),\n createElementVNode(\"span\", {\n class: normalizeClass(_ctx.$style.sidebarTabsButton__name)\n }, toDisplayString(_ctx.tab.name), 3)\n ], 10, _hoisted_1$2);\n };\n }\n});\nconst sidebarTabsButton = \"_sidebarTabsButton_1y2dv_20\";\nconst sidebarTabsButton_selected = \"_sidebarTabsButton_selected_1y2dv_45\";\nconst sidebarTabsButton__name = \"_sidebarTabsButton__name_1y2dv_59\";\nconst sidebarTabsButton__icon = \"_sidebarTabsButton__icon_1y2dv_70\";\nconst sidebarTabsButton__legacyIcon = \"_sidebarTabsButton__legacyIcon_1y2dv_76\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_1y2dv_12\",\n sidebarTabsButton,\n sidebarTabsButton_selected,\n sidebarTabsButton__name,\n sidebarTabsButton__icon,\n sidebarTabsButton__legacyIcon\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcAppSidebarTabsButton = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"__cssModules\", cssModules]]);\nconst _sfc_main$1 = {\n name: \"NcAppSidebarTabs\",\n components: {\n NcAppSidebarTabsButton\n },\n provide() {\n return {\n registerTab: this.registerTab,\n unregisterTab: this.unregisterTab,\n // Getter as an alternative to Vue 2.7 computed(() => this.activeTab)\n getActiveTab: () => this.activeTab,\n // Used to check whether the tab header is shown so the tabs can reference the tab header for `aria-labelledby` or not\n isTablistShown: () => this.hasMultipleTabs\n };\n },\n props: {\n /**\n * Id of the tab to activate\n */\n active: {\n type: String,\n default: \"\"\n },\n /**\n * Force the tab navigation to display even if there is only one tab\n */\n forceTabs: {\n type: Boolean,\n default: false\n }\n },\n emits: [\"update:active\"],\n data(props) {\n return {\n /**\n * Tab descriptions from the passed NcSidebarTab components' props to build the tab navbar from.\n */\n tabs: [],\n /**\n * Local active (open) tab's ID. It allows to use component without v-model:active\n */\n activeTab: props.active\n };\n },\n computed: {\n /**\n * Has multiple tabs. If only one tab - its content is shown without navigation\n *\n * @return {boolean}\n */\n hasMultipleTabs() {\n return this.tabs.length > 1;\n },\n showForSingleTab() {\n return this.forceTabs && this.tabs.length === 1;\n },\n currentTabIndex() {\n return this.tabs.findIndex((tab) => tab.id === this.activeTab);\n }\n },\n watch: {\n tabs() {\n if (this.active) {\n this.updateActive();\n }\n },\n active(active) {\n if (active !== this.activeTab) {\n this.updateActive();\n }\n }\n },\n methods: {\n /**\n * Set the current active tab\n *\n * @param {string} id the id of the tab\n */\n setActive(id) {\n this.activeTab = id;\n this.$emit(\"update:active\", this.activeTab);\n },\n /**\n * Focus the previous tab\n * and emit to the parent component\n */\n focusPreviousTab() {\n if (this.currentTabIndex > 0) {\n this.setActive(this.tabs[this.currentTabIndex - 1].id);\n }\n this.focusActiveTab();\n },\n /**\n * Focus the next tab\n * and emit to the parent component\n */\n focusNextTab() {\n if (this.currentTabIndex < this.tabs.length - 1) {\n this.setActive(this.tabs[this.currentTabIndex + 1].id);\n }\n this.focusActiveTab();\n },\n /**\n * Focus the first tab\n * and emit to the parent component\n */\n focusFirstTab() {\n this.setActive(this.tabs[0].id);\n this.focusActiveTab();\n },\n /**\n * Focus the last tab\n * and emit to the parent component\n */\n focusLastTab() {\n this.setActive(this.tabs[this.tabs.length - 1].id);\n this.focusActiveTab();\n },\n /**\n * Focus the current active tab\n */\n focusActiveTab() {\n this.$el.querySelector(`#tab-button-${this.activeTab}`).focus();\n },\n /**\n * Focus the content on tab\n * see aria accessibility guidelines\n */\n focusActiveTabContent() {\n this.$el.querySelector(\"#tab-\" + this.activeTab).focus();\n },\n /**\n * Update the current active tab\n */\n updateActive() {\n this.activeTab = this.active && this.tabs.some(({ id }) => id === this.active) ? this.active : this.tabs[0]?.id ?? \"\";\n },\n /**\n * Register child tab in the tabs\n *\n * @param {object} tab child tab passed to slot\n */\n registerTab(tab) {\n this.tabs.push(tab);\n this.tabs.sort((a, b) => {\n if (a.order === b.order) {\n return a.name.localeCompare(b.name, [getCanonicalLocale()]);\n }\n return a.order - b.order;\n });\n this.updateActive();\n },\n /**\n * Unregister child tab from the tabs\n *\n * @param {string} id tab's id\n */\n unregisterTab(id) {\n const tabIndex = this.tabs.findIndex((tab) => tab.id === id);\n if (tabIndex !== -1) {\n this.tabs.splice(tabIndex, 1);\n }\n if (this.activeTab === id) {\n this.updateActive();\n }\n }\n }\n};\nconst _hoisted_1$1 = { class: \"app-sidebar-tabs\" };\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcAppSidebarTabsButton = resolveComponent(\"NcAppSidebarTabsButton\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$1, [\n $options.hasMultipleTabs || $options.showForSingleTab ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n role: \"tablist\",\n class: \"app-sidebar-tabs__nav\",\n onKeydown: [\n _cache[0] || (_cache[0] = withKeys(withModifiers((...args) => $options.focusPreviousTab && $options.focusPreviousTab(...args), [\"exact\", \"prevent\", \"stop\"]), [\"left\"])),\n _cache[1] || (_cache[1] = withKeys(withModifiers((...args) => $options.focusNextTab && $options.focusNextTab(...args), [\"exact\", \"prevent\", \"stop\"]), [\"right\"])),\n _cache[2] || (_cache[2] = withKeys(withModifiers((...args) => $options.focusActiveTabContent && $options.focusActiveTabContent(...args), [\"exact\", \"prevent\", \"stop\"]), [\"tab\"])),\n _cache[3] || (_cache[3] = withKeys(withModifiers((...args) => $options.focusFirstTab && $options.focusFirstTab(...args), [\"exact\", \"prevent\", \"stop\"]), [\"home\"])),\n _cache[4] || (_cache[4] = withKeys(withModifiers((...args) => $options.focusLastTab && $options.focusLastTab(...args), [\"exact\", \"prevent\", \"stop\"]), [\"end\"])),\n _cache[5] || (_cache[5] = withKeys(withModifiers((...args) => $options.focusFirstTab && $options.focusFirstTab(...args), [\"exact\", \"prevent\", \"stop\"]), [\"page-up\"])),\n _cache[6] || (_cache[6] = withKeys(withModifiers((...args) => $options.focusLastTab && $options.focusLastTab(...args), [\"exact\", \"prevent\", \"stop\"]), [\"page-down\"]))\n ]\n }, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($data.tabs, (tab) => {\n return openBlock(), createBlock(_component_NcAppSidebarTabsButton, {\n id: `tab-button-${tab.id}`,\n key: tab.id,\n class: \"app-sidebar-tabs__tab\",\n \"aria-controls\": `tab-${tab.id}`,\n selected: $data.activeTab === tab.id,\n tab,\n \"onUpdate:selected\": ($event) => $options.setActive(tab.id)\n }, null, 8, [\"id\", \"aria-controls\", \"selected\", \"tab\", \"onUpdate:selected\"]);\n }), 128))\n ], 32)) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", {\n class: normalizeClass([\"app-sidebar-tabs__content\", { \"app-sidebar-tabs__content--multiple\": $options.hasMultipleTabs }])\n }, [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ], 2)\n ]);\n}\nconst NcAppSidebarTabs = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1], [\"__scopeId\", \"data-v-1e2d5bfb\"]]);\nregister(t15);\nconst _sfc_main = {\n name: \"NcAppSidebar\",\n components: {\n NcActions,\n NcAppSidebarHeader: _sfc_main$7,\n NcAppSidebarTabs,\n NcButton,\n NcLoadingIcon,\n NcEmptyContent,\n IconArrowRight,\n IconClose,\n IconDockRight,\n IconStar,\n IconStarOutline\n },\n directives: {\n Focus: directive,\n /** @type {import('vue').ObjectDirective} */\n ClickOutside: vOnClickOutside\n },\n inject: {\n ncContentSelector: {\n from: CONTENT_SELECTOR_KEY,\n default: void 0\n }\n },\n props: {\n /**\n * The active tab\n */\n active: {\n type: String,\n default: \"\"\n },\n /**\n * Main text of the sidebar\n */\n name: {\n type: String,\n required: true\n },\n /**\n * Allow to edit the sidebar name.\n */\n nameEditable: {\n type: Boolean,\n default: false\n },\n /**\n * Placeholder in the edit field if the name is editable.\n */\n namePlaceholder: {\n type: String,\n default: \"\"\n },\n /**\n * Secondary name of the sidebar (subline)\n */\n subname: {\n type: String,\n default: \"\"\n },\n /**\n * Title to display for the subname.\n */\n subtitle: {\n type: String,\n default: \"\"\n },\n /**\n * Url to the top header background image\n * Applied with css\n */\n background: {\n type: String,\n default: \"\"\n },\n /**\n * Enable the favourite icon if not null\n * See fired events\n */\n starred: {\n type: Boolean,\n default: null\n },\n /**\n * Show loading spinner instead of the star icon\n */\n starLoading: {\n type: Boolean,\n default: false\n },\n /**\n * Show loading spinner instead of tabs\n */\n loading: {\n type: Boolean,\n default: false\n },\n /**\n * Display the sidebar in compact mode\n */\n compact: {\n type: Boolean,\n default: false\n },\n /**\n * Only display close button and default slot content.\n * Don't display other header content and primary and secondary actions.\n * Useful when showing the EmptyContent component as content.\n */\n empty: {\n type: Boolean,\n default: false\n },\n /**\n * Force the actions to display in a three dot menu\n */\n forceMenu: {\n type: Boolean,\n default: false\n },\n /**\n * Force the tab navigation to display even if there is only one tab\n */\n forceTabs: {\n type: Boolean,\n default: false\n },\n /**\n * Linkify the name\n */\n linkifyName: {\n type: Boolean,\n default: false\n },\n /**\n * Title to display for the name.\n * Can be set to the same text in case it's too long.\n */\n title: {\n type: String,\n default: \"\"\n },\n /**\n * Allow to conditionally show the sidebar\n * You can also use `v-if` on the sidebar, but using the open prop allow to keep\n * the sidebar inside the DOM for performance if it is opened and closed multiple times.\n *\n * When using the `open` property to close the sidebar a built-in toggle button will be shown to reopen it,\n * similar to the app navigation. You can remove this button with the `no-toggle` prop.\n */\n open: {\n type: Boolean,\n default: true\n },\n /**\n * Custom classes to assign to the sidebar toggle button.\n * If needed this can be used to assign styles to the button using `:deep()` selector.\n */\n toggleClasses: {\n type: [String, Array, Object],\n default: \"\"\n },\n /**\n * Custom attrs to assign to the sidebar toggle button.\n */\n toggleAttrs: {\n type: Object,\n default: void 0\n },\n /**\n * Do not add the built-in toggle button with `open` prop.\n */\n noToggle: {\n type: Boolean,\n default: false\n }\n },\n emits: [\n \"close\",\n \"closed\",\n \"opened\",\n // 'figureClick', not emitted on purpose to make \"hasFigureClickListener\" work\n \"update:active\",\n \"update:name\",\n \"update:nameEditable\",\n \"update:open\",\n \"update:starred\",\n \"submitName\",\n \"dismissEditing\"\n ],\n setup() {\n const headerRef = ref(null);\n provide(\"NcAppSidebar:header:ref\", headerRef);\n return {\n uid: createElementId(),\n isMobile: useIsSmallMobile(),\n headerRef\n };\n },\n data() {\n return {\n changeNameTranslated: t(\"Change name\"),\n closeTranslated: t(\"Close sidebar\"),\n favoriteTranslated: t(\"Favorite\"),\n isStarred: this.starred,\n focusTrap: null,\n elementToReturnFocus: null\n };\n },\n computed: {\n canStar() {\n return this.isStarred !== null;\n },\n hasFigureClickListener() {\n return !!this.$attrs.onFigureClick;\n }\n },\n watch: {\n starred() {\n this.isStarred = this.starred;\n },\n isMobile() {\n this.toggleFocusTrap();\n },\n open() {\n this.checkToggleButtonContainerAvailability();\n }\n },\n created() {\n this.preserveElementToReturnFocus();\n this.checkToggleButtonContainerAvailability();\n },\n beforeUnmount() {\n this.$emit(\"closed\");\n this.focusTrap?.deactivate();\n },\n methods: {\n isSlotPopulated,\n t,\n preserveElementToReturnFocus() {\n if (document.activeElement && document.activeElement !== document.body) {\n this.elementToReturnFocus = document.activeElement;\n if (this.elementToReturnFocus.getAttribute(\"role\") === \"menuitem\") {\n const menu = this.elementToReturnFocus.closest('[role=\"menu\"]');\n if (menu) {\n const menuTrigger = document.querySelector(`[aria-controls=\"${menu.id}\"]`);\n this.elementToReturnFocus = menuTrigger;\n }\n }\n }\n },\n initFocusTrap() {\n if (this.focusTrap) {\n return;\n }\n this.focusTrap = createFocusTrap([\n // The sidebar itself\n this.$refs.sidebar,\n // Nextcloud Server header navigation\n document.querySelector(\"#header\")\n ], {\n allowOutsideClick: true,\n fallbackFocus: this.$refs.closeButton.$el,\n trapStack: getTrapStack(),\n escapeDeactivates: false\n });\n },\n /**\n * Activate focus trap if it is currently needed, otherwise deactivate\n */\n toggleFocusTrap() {\n if (this.open && this.isMobile) {\n this.initFocusTrap();\n this.focusTrap.activate();\n } else {\n this.focusTrap?.deactivate();\n }\n },\n /**\n * Close the sidebar on pressing the escape key on mobile\n *\n * @param {KeyboardEvent} event key down event\n */\n onKeydownEsc(event) {\n if (this.isMobile) {\n event.stopPropagation();\n this.closeSidebar();\n }\n },\n onAfterEnter(element) {\n if (this.elementToReturnFocus) {\n this.focus();\n }\n this.toggleFocusTrap();\n this.$emit(\"opened\", element);\n },\n onAfterLeave(element) {\n this.$emit(\"closed\", element);\n this.toggleFocusTrap();\n this.elementToReturnFocus?.focus({ focusVisible: true });\n this.elementToReturnFocus = null;\n },\n /**\n * Used to tell parent component the user asked to close the sidebar\n *\n * @param {Event} e close icon click event\n */\n closeSidebar(e) {\n this.$emit(\"close\", e);\n this.$emit(\"update:open\", false);\n },\n /**\n * Emit figure click event to parent component\n *\n * @param {Event} e click event\n */\n onFigureClick(e) {\n this.$emit(\"figureClick\", e);\n },\n /**\n * Toggle the favourite state\n * and emit to the parent component\n */\n toggleStarred() {\n this.isStarred = !this.isStarred;\n this.$emit(\"update:starred\", this.isStarred);\n },\n async editName() {\n this.$emit(\"update:nameEditable\", true);\n if (this.nameEditable) {\n await this.$nextTick();\n this.$refs.nameInput.focus();\n }\n },\n /**\n * Focus the sidebar\n *\n * @public\n */\n focus() {\n if (!this.open && !this.noToggle) {\n this.$refs.toggle.$el.focus();\n return;\n }\n try {\n this.headerRef.focus();\n } catch {\n warn(\"NcAppSidebar should have focusable header for accessibility reasons. Use NcAppSidebarHeader component.\");\n }\n },\n /**\n * Focus the active tab\n *\n * @public\n */\n focusActiveTabContent() {\n this.preserveElementToReturnFocus();\n this.$refs.tabs.focusActiveTabContent();\n },\n /**\n * Check if the toggle button container is available\n */\n checkToggleButtonContainerAvailability() {\n if (this.open === false && !this.noToggle && !this.ncContentSelector) {\n logger.warn(\"[NcAppSidebar] It looks like you want to use NcAppSidebar with the built-in toggle button. This feature is only available when NcAppSidebar is used in NcContent.\");\n }\n },\n /**\n * Emit name change event to parent component\n *\n * @param {Event} event input event\n */\n onNameInput(event) {\n this.$emit(\"update:name\", event.target.value);\n },\n /**\n * Emit when the name form edit confirm button is pressed in order\n * to change the name.\n *\n * @param {Event} event submit event\n */\n onSubmitName(event) {\n this.$emit(\"update:nameEditable\", false);\n this.$emit(\"submitName\", event);\n },\n onDismissEditing() {\n this.$emit(\"update:nameEditable\", false);\n this.$emit(\"dismissEditing\");\n },\n onUpdateActive(activeTab) {\n this.$emit(\"update:active\", activeTab);\n }\n }\n};\nconst _hoisted_1 = [\"aria-labelledby\"];\nconst _hoisted_2 = { class: \"app-sidebar-header__info\" };\nconst _hoisted_3 = {\n key: 0,\n class: \"app-sidebar-header__tertiary-actions\"\n};\nconst _hoisted_4 = { class: \"app-sidebar-header__name-container\" };\nconst _hoisted_5 = { class: \"app-sidebar-header__mainname-container\" };\nconst _hoisted_6 = [\"placeholder\", \"value\"];\nconst _hoisted_7 = [\"title\"];\nconst _hoisted_8 = {\n key: 2,\n class: \"app-sidebar-header__description\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_IconDockRight = resolveComponent(\"IconDockRight\");\n const _component_NcButton = resolveComponent(\"NcButton\");\n const _component_NcLoadingIcon = resolveComponent(\"NcLoadingIcon\");\n const _component_IconStar = resolveComponent(\"IconStar\");\n const _component_IconStarOutline = resolveComponent(\"IconStarOutline\");\n const _component_NcAppSidebarHeader = resolveComponent(\"NcAppSidebarHeader\");\n const _component_IconArrowRight = resolveComponent(\"IconArrowRight\");\n const _component_NcActions = resolveComponent(\"NcActions\");\n const _component_IconClose = resolveComponent(\"IconClose\");\n const _component_NcAppSidebarTabs = resolveComponent(\"NcAppSidebarTabs\");\n const _component_NcEmptyContent = resolveComponent(\"NcEmptyContent\");\n const _directive_focus = resolveDirective(\"focus\");\n const _directive_click_outside = resolveDirective(\"click-outside\");\n return openBlock(), createBlock(Transition, {\n appear: \"\",\n name: \"slide-right\",\n onAfterEnter: $options.onAfterEnter,\n onAfterLeave: $options.onAfterLeave\n }, {\n default: withCtx(() => [\n withDirectives(createElementVNode(\"aside\", {\n id: \"app-sidebar-vue\",\n ref: \"sidebar\",\n class: \"app-sidebar\",\n \"aria-labelledby\": `app-sidebar-vue-${$setup.uid}__header`,\n onKeydown: _cache[6] || (_cache[6] = withKeys((...args) => $options.onKeydownEsc && $options.onKeydownEsc(...args), [\"esc\"]))\n }, [\n $options.ncContentSelector && !$props.open && !$props.noToggle ? (openBlock(), createBlock(Teleport, {\n key: 0,\n to: $options.ncContentSelector\n }, [\n createVNode(_component_NcButton, mergeProps({\n ref: \"toggle\",\n \"aria-label\": $options.t(\"Open sidebar\"),\n class: [\"app-sidebar__toggle\", $props.toggleClasses],\n variant: \"tertiary\"\n }, $props.toggleAttrs, {\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"update:open\", true))\n }), {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"toggle-icon\", {}, () => [\n createVNode(_component_IconDockRight, { size: 20 })\n ], true)\n ]),\n _: 3\n }, 16, [\"aria-label\", \"class\"])\n ], 8, [\"to\"])) : createCommentVNode(\"\", true),\n createElementVNode(\"header\", {\n class: normalizeClass([\"app-sidebar-header\", {\n \"app-sidebar-header--with-figure\": $options.isSlotPopulated(_ctx.$slots.header?.()) || $props.background,\n \"app-sidebar-header--compact\": $props.compact\n }])\n }, [\n !$props.empty ? renderSlot(_ctx.$slots, \"info\", { key: 0 }, () => [\n createElementVNode(\"div\", _hoisted_2, [\n $options.isSlotPopulated(_ctx.$slots.header?.()) || $props.background ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"app-sidebar-header__figure\", {\n \"app-sidebar-header__figure--with-action\": $options.hasFigureClickListener\n }]),\n style: normalizeStyle({\n backgroundImage: `url(${$props.background})`\n }),\n tabindex: \"0\",\n onClick: _cache[1] || (_cache[1] = (...args) => $options.onFigureClick && $options.onFigureClick(...args)),\n onKeydown: _cache[2] || (_cache[2] = withKeys((...args) => $options.onFigureClick && $options.onFigureClick(...args), [\"enter\"]))\n }, [\n renderSlot(_ctx.$slots, \"header\", { class: \"app-sidebar-header__background\" }, void 0, true)\n ], 38)) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", {\n class: normalizeClass([\"app-sidebar-header__desc\", {\n \"app-sidebar-header__desc--with-tertiary-action\": $options.canStar || $options.isSlotPopulated(_ctx.$slots[\"tertiary-actions\"]?.()),\n \"app-sidebar-header__desc--editable\": $props.nameEditable && !$props.subname,\n \"app-sidebar-header__desc--with-subname--editable\": $props.nameEditable && $props.subname,\n \"app-sidebar-header__desc--without-actions\": !$options.isSlotPopulated(_ctx.$slots[\"secondary-actions\"]?.())\n }])\n }, [\n $options.canStar || $options.isSlotPopulated(_ctx.$slots[\"tertiary-actions\"]?.()) ? (openBlock(), createElementBlock(\"div\", _hoisted_3, [\n renderSlot(_ctx.$slots, \"tertiary-actions\", {}, () => [\n $options.canStar ? (openBlock(), createBlock(_component_NcButton, {\n key: 0,\n \"aria-label\": $data.favoriteTranslated,\n pressed: $data.isStarred,\n class: \"app-sidebar-header__star\",\n variant: \"secondary\",\n onClick: withModifiers($options.toggleStarred, [\"prevent\"])\n }, {\n icon: withCtx(() => [\n $props.starLoading ? (openBlock(), createBlock(_component_NcLoadingIcon, { key: 0 })) : $data.isStarred ? (openBlock(), createBlock(_component_IconStar, {\n key: 1,\n size: 20\n })) : (openBlock(), createBlock(_component_IconStarOutline, {\n key: 2,\n size: 20\n }))\n ]),\n _: 1\n }, 8, [\"aria-label\", \"pressed\", \"onClick\"])) : createCommentVNode(\"\", true)\n ], true)\n ])) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", _hoisted_4, [\n createElementVNode(\"div\", _hoisted_5, [\n withDirectives(createVNode(_component_NcAppSidebarHeader, {\n class: \"app-sidebar-header__mainname\",\n name: $props.name,\n linkify: $props.linkifyName,\n title: $props.title,\n tabindex: $props.nameEditable ? 0 : -1,\n onClick: withModifiers($options.editName, [\"self\"])\n }, null, 8, [\"name\", \"linkify\", \"title\", \"tabindex\", \"onClick\"]), [\n [vShow, !$props.nameEditable]\n ]),\n $props.nameEditable ? withDirectives((openBlock(), createElementBlock(\"form\", {\n key: 0,\n class: \"app-sidebar-header__mainname-form\",\n onSubmit: _cache[5] || (_cache[5] = withModifiers((...args) => $options.onSubmitName && $options.onSubmitName(...args), [\"prevent\"]))\n }, [\n withDirectives(createElementVNode(\"input\", {\n ref: \"nameInput\",\n class: \"app-sidebar-header__mainname-input\",\n type: \"text\",\n placeholder: $props.namePlaceholder,\n value: $props.name,\n onKeydown: _cache[3] || (_cache[3] = withKeys(withModifiers((...args) => $options.onDismissEditing && $options.onDismissEditing(...args), [\"stop\"]), [\"esc\"])),\n onInput: _cache[4] || (_cache[4] = (...args) => $options.onNameInput && $options.onNameInput(...args))\n }, null, 40, _hoisted_6), [\n [_directive_focus]\n ]),\n createVNode(_component_NcButton, {\n \"aria-label\": $data.changeNameTranslated,\n type: \"submit\",\n variant: \"tertiary-no-background\"\n }, {\n icon: withCtx(() => [\n createVNode(_component_IconArrowRight, { size: 20 })\n ]),\n _: 1\n }, 8, [\"aria-label\"])\n ], 32)), [\n [_directive_click_outside, () => $options.onSubmitName()]\n ]) : createCommentVNode(\"\", true),\n $options.isSlotPopulated(_ctx.$slots[\"secondary-actions\"]?.()) ? (openBlock(), createBlock(_component_NcActions, {\n key: 1,\n class: \"app-sidebar-header__menu\",\n \"force-menu\": $props.forceMenu\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"secondary-actions\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"force-menu\"])) : createCommentVNode(\"\", true)\n ]),\n $props.subname.trim() !== \"\" || _ctx.$slots[\"subname\"] ? (openBlock(), createElementBlock(\"p\", {\n key: 0,\n title: $props.subtitle || void 0,\n class: \"app-sidebar-header__subname\"\n }, [\n renderSlot(_ctx.$slots, \"subname\", {}, () => [\n createTextVNode(toDisplayString($props.subname), 1)\n ], true)\n ], 8, _hoisted_7)) : createCommentVNode(\"\", true)\n ])\n ], 2)\n ])\n ], true) : (openBlock(), createBlock(_component_NcAppSidebarHeader, {\n key: 1,\n class: \"app-sidebar-header__mainname--hidden\",\n name: $props.name,\n tabindex: \"-1\"\n }, null, 8, [\"name\"])),\n createVNode(_component_NcButton, {\n ref: \"closeButton\",\n \"aria-label\": $data.closeTranslated,\n title: $data.closeTranslated,\n class: \"app-sidebar__close\",\n variant: \"tertiary\",\n onClick: withModifiers($options.closeSidebar, [\"prevent\"])\n }, {\n icon: withCtx(() => [\n createVNode(_component_IconClose, { size: 20 })\n ]),\n _: 1\n }, 8, [\"aria-label\", \"title\", \"onClick\"]),\n $options.isSlotPopulated(_ctx.$slots.description?.()) && !$props.empty ? (openBlock(), createElementBlock(\"div\", _hoisted_8, [\n renderSlot(_ctx.$slots, \"description\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true)\n ], 2),\n withDirectives(createVNode(_component_NcAppSidebarTabs, {\n ref: \"tabs\",\n active: $props.active,\n \"force-tabs\": $props.forceTabs,\n \"onUpdate:active\": $options.onUpdateActive\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"active\", \"force-tabs\", \"onUpdate:active\"]), [\n [vShow, !$props.loading]\n ]),\n $props.loading ? (openBlock(), createBlock(_component_NcEmptyContent, { key: 1 }, {\n icon: withCtx(() => [\n createVNode(_component_NcLoadingIcon, { size: 64 })\n ]),\n _: 1\n })) : createCommentVNode(\"\", true)\n ], 40, _hoisted_1), [\n [vShow, $props.open]\n ])\n ]),\n _: 3\n }, 8, [\"onAfterEnter\", \"onAfterLeave\"]);\n}\nconst NcAppSidebar = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-104e67d6\"]]);\nexport {\n NcAppSidebar as N\n};\n//# sourceMappingURL=NcAppSidebar-BvBvQsXb.mjs.map\n","import PQueue from \"p-queue\";\nconst queue = new PQueue({ concurrency: 5 });\nfunction preloadImage(url) {\n const { resolve, promise } = Promise.withResolvers();\n queue.add(() => {\n const image = new Image();\n image.onerror = () => resolve(false);\n image.onload = () => resolve(true);\n image.src = url;\n return promise;\n });\n return promise;\n}\nexport {\n preloadImage\n};\n//# sourceMappingURL=index.mjs.map\n","import '../assets/NcChip-DZ8dUSFy.css';\nimport { defineComponent, useSlots, computed, createElementBlock, openBlock, normalizeClass, createCommentVNode, createElementVNode, createBlock, renderSlot, createTextVNode, toDisplayString, withCtx, createVNode, unref } from \"vue\";\nimport { b as mdiClose } from \"./mdi-XFJRiRqJ.mjs\";\nimport { N as NcActionButton } from \"./NcActionButton-pKOSrlGE.mjs\";\nimport { N as NcActions } from \"./NcActions-DWmvh7-Y.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-BvLanNaW.mjs\";\nimport { r as register, a as t } from \"./_l10n-DrTiip5c.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister();\nconst _hoisted_1 = {\n key: 0,\n class: \"nc-chip__icon\"\n};\nconst _hoisted_2 = { class: \"nc-chip__text\" };\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcChip\",\n props: {\n ariaLabelClose: { default: t(\"Close\") },\n actionsContainer: { default: \"body\" },\n text: { default: \"\" },\n iconPath: { default: void 0 },\n iconSvg: { default: void 0 },\n noClose: { type: Boolean },\n variant: { default: \"secondary\" }\n },\n emits: [\"close\"],\n setup(__props, { emit: __emit }) {\n const props = __props;\n const emit = __emit;\n const slots = useSlots();\n const canClose = computed(() => !props.noClose);\n const hasActions = () => !!slots.actions;\n const hasIcon = () => Boolean(props.iconPath || props.iconSvg || !!slots.icon);\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"nc-chip\", {\n [`nc-chip--${_ctx.variant}`]: true,\n \"nc-chip--no-actions\": _ctx.noClose && !hasActions(),\n \"nc-chip--no-icon\": !hasIcon()\n }])\n }, [\n hasIcon() ? (openBlock(), createElementBlock(\"span\", _hoisted_1, [\n renderSlot(_ctx.$slots, \"icon\", {}, () => [\n _ctx.iconPath || _ctx.iconSvg ? (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 0,\n inline: \"\",\n path: _ctx.iconPath,\n svg: _ctx.iconPath ? void 0 : _ctx.iconSvg,\n size: 18\n }, null, 8, [\"path\", \"svg\"])) : createCommentVNode(\"\", true)\n ], true)\n ])) : createCommentVNode(\"\", true),\n createElementVNode(\"span\", _hoisted_2, [\n renderSlot(_ctx.$slots, \"default\", {}, () => [\n createTextVNode(toDisplayString(_ctx.text), 1)\n ], true)\n ]),\n canClose.value || hasActions() ? (openBlock(), createBlock(NcActions, {\n key: 1,\n class: \"nc-chip__actions\",\n container: _ctx.actionsContainer,\n \"force-menu\": !canClose.value,\n variant: \"tertiary-no-background\"\n }, {\n default: withCtx(() => [\n canClose.value ? (openBlock(), createBlock(NcActionButton, {\n key: 0,\n \"close-after-click\": \"\",\n onClick: _cache[0] || (_cache[0] = ($event) => emit(\"close\"))\n }, {\n icon: withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n path: unref(mdiClose),\n size: 20\n }, null, 8, [\"path\"])\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString(_ctx.ariaLabelClose), 1)\n ]),\n _: 1\n })) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"actions\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"container\", \"force-menu\"])) : createCommentVNode(\"\", true)\n ], 2);\n };\n }\n});\nconst NcChip = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-2aa1d7ea\"]]);\nexport {\n NcChip as N\n};\n//# sourceMappingURL=NcChip-D8tGFzRl.mjs.map\n","import '../assets/NcCollectionList-C7OiUQQ-.css';\nimport debounce from \"debounce\";\nimport { resolveComponent, createElementBlock, openBlock, createVNode, createCommentVNode, toDisplayString, withModifiers, normalizeClass, withDirectives, createElementVNode, vModelText, Fragment, renderList, createBlock, resolveDynamicComponent, withCtx, createTextVNode, Transition, ref } from \"vue\";\nimport { r as register, s as t28, a as t, u as t6 } from \"./_l10n-DrTiip5c.mjs\";\nimport { N as NcActionButton } from \"./NcActionButton-pKOSrlGE.mjs\";\nimport { N as NcActions } from \"./NcActions-DWmvh7-Y.mjs\";\nimport { N as NcAvatar } from \"./NcAvatar-DmUGApWA.mjs\";\nimport { g as getRoute } from \"./autolink-U5pBzLgI.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { N as NcSelect } from \"./NcSelect-Czzsi3P_.mjs\";\nimport axios from \"@nextcloud/axios\";\nimport { generateOcsUrl } from \"@nextcloud/router\";\nregister(t28);\nconst _sfc_main$1 = {\n name: \"NcCollectionListItem\",\n components: {\n NcAvatar,\n NcActions,\n NcActionButton\n },\n props: {\n /**\n * The collection\n */\n collection: {\n type: Object,\n default: null\n },\n /**\n * Current error if any\n */\n error: {\n type: String,\n default: void 0\n }\n },\n emits: [\n \"removeResource\",\n \"renameCollection\"\n ],\n data() {\n return {\n detailsOpen: false,\n newName: null\n };\n },\n computed: {\n getIcon() {\n return (resource) => [resource.iconClass];\n },\n typeClass() {\n return (resource) => \"resource-type-\" + resource.type;\n },\n resources() {\n return this.collection.resources?.filter((resource) => !Array.isArray(resource)) ?? [];\n },\n getComponent() {\n return (resource) => {\n const route = getRoute(this.$router, resource.link);\n return route ? { component: \"router-link\", to: route, href: void 0 } : { component: \"a\", to: void 0, href: resource.link };\n };\n },\n iconUrl() {\n return (resource) => {\n if (resource.mimetype) {\n return OC.MimeType.getIconUrl(resource.mimetype);\n }\n if (resource.iconUrl) {\n return resource.iconUrl;\n }\n return \"\";\n };\n }\n },\n methods: {\n t,\n toggleDetails() {\n this.detailsOpen = !this.detailsOpen;\n },\n showDetails() {\n this.detailsOpen = true;\n },\n removeResource(collection, resource) {\n this.$emit(\"removeResource\", {\n collectionId: collection.id,\n resourceType: resource.type,\n resourceId: resource.id\n });\n },\n openRename() {\n this.newName = this.collection.name;\n },\n renameCollection() {\n if (this.newName) {\n this.$emit(\"renameCollection\", {\n collectionId: this.collection.id,\n name: this.newName\n });\n }\n this.newName = null;\n }\n }\n};\nconst _hoisted_1$1 = { class: \"collection-list-item\" };\nconst _hoisted_2$1 = {\n key: 2,\n class: \"linked-icons\"\n};\nconst _hoisted_3$1 = [\"src\", \"alt\"];\nconst _hoisted_4$1 = {\n key: 3,\n class: \"sharingOptionsGroup\"\n};\nconst _hoisted_5$1 = {\n key: 0,\n class: \"error\"\n};\nconst _hoisted_6$1 = {\n key: 0,\n class: \"resource-list-details\"\n};\nconst _hoisted_7$1 = [\"src\", \"alt\"];\nconst _hoisted_8$1 = { class: \"resource-name\" };\nconst _hoisted_9 = [\"onClick\"];\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcAvatar = resolveComponent(\"NcAvatar\");\n const _component_NcActionButton = resolveComponent(\"NcActionButton\");\n const _component_NcActions = resolveComponent(\"NcActions\");\n return openBlock(), createElementBlock(\"li\", _hoisted_1$1, [\n createVNode(_component_NcAvatar, {\n \"display-name\": $props.collection.name,\n \"allow-placeholder\": \"\",\n class: \"collection-avatar\"\n }, null, 8, [\"display-name\"]),\n $data.newName === null ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n class: \"collection-item-name\",\n title: \"\",\n onClick: _cache[0] || (_cache[0] = (...args) => $options.showDetails && $options.showDetails(...args))\n }, toDisplayString($props.collection.name), 1)) : (openBlock(), createElementBlock(\"form\", {\n key: 1,\n class: normalizeClass({ \"should-shake\": $props.error }),\n onSubmit: _cache[2] || (_cache[2] = withModifiers((...args) => $options.renameCollection && $options.renameCollection(...args), [\"prevent\"]))\n }, [\n withDirectives(createElementVNode(\"input\", {\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event) => $data.newName = $event),\n type: \"text\",\n autocomplete: \"off\",\n autocapitalize: \"off\"\n }, null, 512), [\n [vModelText, $data.newName]\n ]),\n _cache[3] || (_cache[3] = createElementVNode(\"input\", {\n type: \"submit\",\n value: \"\",\n class: \"icon-confirm\"\n }, null, -1))\n ], 34)),\n !$data.detailsOpen && $data.newName === null ? (openBlock(), createElementBlock(\"div\", _hoisted_2$1, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.resources.slice(0, 2), (resource) => {\n return openBlock(), createBlock(resolveDynamicComponent($options.getComponent(resource).component), {\n key: resource.type + \"|\" + resource.id,\n title: resource.name,\n to: $options.getComponent(resource).to,\n href: $options.getComponent(resource).href,\n class: normalizeClass($options.typeClass(resource))\n }, {\n default: withCtx(() => [\n createElementVNode(\"img\", {\n src: $options.iconUrl(resource),\n alt: resource.name\n }, null, 8, _hoisted_3$1)\n ]),\n _: 2\n }, 1032, [\"title\", \"to\", \"href\", \"class\"]);\n }), 128))\n ])) : createCommentVNode(\"\", true),\n $data.newName === null ? (openBlock(), createElementBlock(\"span\", _hoisted_4$1, [\n createVNode(_component_NcActions, null, {\n default: withCtx(() => [\n createVNode(_component_NcActionButton, {\n icon: \"icon-info\",\n onClick: withModifiers($options.toggleDetails, [\"prevent\"])\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString($data.detailsOpen ? $options.t(\"Hide details\") : $options.t(\"Show details\")), 1)\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n createVNode(_component_NcActionButton, {\n icon: \"icon-rename\",\n onClick: withModifiers($options.openRename, [\"prevent\"])\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString($options.t(\"Rename project\")), 1)\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ]),\n _: 1\n })\n ])) : createCommentVNode(\"\", true),\n createVNode(Transition, { name: \"fade\" }, {\n default: withCtx(() => [\n $props.error ? (openBlock(), createElementBlock(\"div\", _hoisted_5$1, toDisplayString($props.error), 1)) : createCommentVNode(\"\", true)\n ]),\n _: 1\n }),\n createVNode(Transition, { name: \"fade\" }, {\n default: withCtx(() => [\n $data.detailsOpen ? (openBlock(), createElementBlock(\"ul\", _hoisted_6$1, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.resources, (resource) => {\n return openBlock(), createElementBlock(\"li\", {\n key: resource.type + \"|\" + resource.id,\n class: normalizeClass($options.typeClass(resource))\n }, [\n (openBlock(), createBlock(resolveDynamicComponent($options.getComponent(resource).component), {\n to: $options.getComponent(resource).to,\n href: $options.getComponent(resource).href\n }, {\n default: withCtx(() => [\n createElementVNode(\"img\", {\n src: $options.iconUrl(resource),\n alt: resource.name\n }, null, 8, _hoisted_7$1),\n createElementVNode(\"span\", _hoisted_8$1, toDisplayString(resource.name || \"\"), 1)\n ]),\n _: 2\n }, 1032, [\"to\", \"href\"])),\n createElementVNode(\"span\", {\n class: \"icon-close\",\n onClick: ($event) => $options.removeResource($props.collection, resource)\n }, null, 8, _hoisted_9)\n ], 2);\n }), 128))\n ])) : createCommentVNode(\"\", true)\n ]),\n _: 1\n })\n ]);\n}\nconst NcCollectionListItem = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1], [\"__scopeId\", \"data-v-52d18b4a\"]]);\nregister(t6);\nfunction extractOcsData(response) {\n return response.data.ocs.data;\n}\nfunction renameCollectionService(collectionId, collectionName) {\n return axios.put(generateOcsUrl(\"collaboration/resources/collections/{collectionId}\", { collectionId }), { collectionName }).then(extractOcsData);\n}\nfunction getCollectionsByResourceService(resourceType, resourceId) {\n return axios.get(generateOcsUrl(\"collaboration/resources/{resourceType}/{resourceId}\", { resourceType, resourceId })).then(extractOcsData);\n}\nfunction createCollectionService(resourceType, resourceId, name) {\n return axios.post(generateOcsUrl(\"collaboration/resources/{resourceType}/{resourceId}\", { resourceType, resourceId }), { name }).then(extractOcsData);\n}\nfunction addResourceService(collectionId, resourceType, resourceId) {\n return axios.post(generateOcsUrl(\"collaboration/resources/collections/{collectionId}\", { collectionId }), { resourceType, resourceId }).then(extractOcsData);\n}\nfunction removeResourceService(collectionId, resourceType, resourceId) {\n return axios.delete(generateOcsUrl(\"collaboration/resources/collections/{collectionId}\", { collectionId }), { params: { resourceType, resourceId } }).then(extractOcsData);\n}\nfunction searchService(query) {\n return axios.get(generateOcsUrl(\"collaboration/resources/collections/search/{query}\", { query })).then(extractOcsData);\n}\nfunction useCollections() {\n const storedCollections = ref([]);\n const addCollections = (collections) => {\n storedCollections.value = collections;\n };\n const addCollection = (collection) => {\n storedCollections.value.push(collection);\n };\n const removeCollection = (collectionId) => {\n storedCollections.value = storedCollections.value.filter((item) => item.id !== collectionId);\n };\n const updateCollection = (collection) => {\n const index = storedCollections.value.findIndex((item) => item.id === collection.id);\n if (index !== -1) {\n storedCollections.value[index] = collection;\n } else {\n addCollection(collection);\n }\n };\n const fetchCollectionsByResource = async ({ resourceType, resourceId }) => {\n const collections = await getCollectionsByResourceService(resourceType, resourceId);\n addCollections(collections);\n };\n const createCollection = async ({ baseResourceType, baseResourceId, resourceType, resourceId, name }) => {\n const collection = await createCollectionService(baseResourceType, baseResourceId, name);\n addCollection(collection);\n await addResourceToCollection({\n collectionId: collection.id,\n resourceType,\n resourceId\n });\n };\n const renameCollection = async ({ collectionId, name }) => {\n const collection = await renameCollectionService(collectionId, name);\n updateCollection(collection);\n };\n async function addResourceToCollection({ collectionId, resourceType, resourceId }) {\n const collection = await addResourceService(collectionId, resourceType, String(resourceId));\n updateCollection(collection);\n }\n const removeResourceFromCollection = async ({ collectionId, resourceType, resourceId }) => {\n const collection = await removeResourceService(collectionId, resourceType, String(resourceId));\n if (collection.resources.length > 0) {\n updateCollection(collection);\n } else {\n removeCollection(collectionId);\n }\n };\n return {\n storedCollections,\n fetchCollectionsByResource,\n createCollection,\n renameCollection,\n addResourceToCollection,\n removeResourceFromCollection\n };\n}\nconst METHOD_CREATE_COLLECTION = 0;\nconst METHOD_ADD_TO_COLLECTION = 1;\nconst _sfc_main = {\n name: \"NcCollectionList\",\n components: {\n NcCollectionListItem,\n NcAvatar,\n NcSelect\n },\n props: {\n /**\n * Resource type identifier\n */\n type: {\n type: String,\n default: null\n },\n /**\n * Unique id of the resource\n */\n id: {\n type: String,\n default: null\n },\n /**\n * Name of the resource\n */\n name: {\n type: String,\n default: \"\"\n },\n /**\n * Whether the component is active (to start fetch resources)\n */\n isActive: {\n type: Boolean,\n default: true\n }\n },\n setup() {\n const {\n storedCollections,\n fetchCollectionsByResource,\n createCollection,\n addResourceToCollection,\n removeResourceFromCollection,\n renameCollection\n } = useCollections();\n const searchCollections = ref([]);\n const search = debounce(function(query, loading) {\n if (query !== \"\") {\n loading(true);\n searchService(query).then((collections) => {\n searchCollections.value = collections;\n }).catch((error) => {\n logger.error(\"Failed to search for collections\", { error });\n }).finally(() => {\n loading(false);\n });\n }\n }, 500);\n return {\n storedCollections,\n fetchCollectionsByResource,\n createCollection,\n addResourceToCollection,\n removeResourceFromCollection,\n renameCollection,\n searchCollections,\n search\n };\n },\n data() {\n return {\n selectIsOpen: false,\n generatingCodes: false,\n codes: void 0,\n value: null,\n model: {},\n collectionsError: {},\n error: null,\n isSelectOpen: false\n };\n },\n computed: {\n collections() {\n return this.storedCollections.filter((collection) => collection.resources.some((resource) => resource && resource.id === String(this.id) && resource.type === this.type));\n },\n placeholder() {\n return this.isSelectOpen ? t(\"Type to search for existing projects\") : t(\"Add to a project\");\n },\n options() {\n const options = [];\n window.OCP.Collaboration.getTypes().sort().forEach((type) => {\n options.push({\n method: METHOD_CREATE_COLLECTION,\n type,\n title: window.OCP.Collaboration.getLabel(type),\n class: window.OCP.Collaboration.getIcon(type),\n action: () => window.OCP.Collaboration.trigger(type)\n });\n });\n for (const index in this.searchCollections) {\n if (!this.collections.find((collection) => collection.id === this.searchCollections[index].id)) {\n options.push({\n method: METHOD_ADD_TO_COLLECTION,\n title: this.searchCollections[index].name,\n collectionId: this.searchCollections[index].id\n });\n }\n }\n return options;\n },\n resourceIdentifier() {\n return {\n resourceType: this.type,\n resourceId: this.id,\n isActive: this.isActive\n };\n }\n },\n watch: {\n resourceIdentifier: {\n deep: true,\n immediate: true,\n handler(resourceIdentifier) {\n if (!resourceIdentifier.isActive || !resourceIdentifier.resourceId || !resourceIdentifier.resourceType) {\n return;\n }\n this.fetchCollectionsByResource(resourceIdentifier);\n }\n }\n },\n methods: {\n t,\n select(selectedOption) {\n if (selectedOption.method === METHOD_CREATE_COLLECTION) {\n selectedOption.action().then((resourceId) => {\n this.createCollection({\n baseResourceType: this.type,\n baseResourceId: this.id,\n resourceType: selectedOption.type,\n resourceId,\n name: this.name\n }).catch((e) => {\n this.setError(t(\"Failed to create a project\"), e);\n });\n }).catch((e) => {\n logger.error(\"[NcCollectionList] No resource selected\", e);\n });\n }\n if (selectedOption.method === METHOD_ADD_TO_COLLECTION) {\n this.addResourceToCollection({\n collectionId: selectedOption.collectionId,\n resourceType: this.type,\n resourceId: this.id\n }).catch((e) => {\n this.setError(t(\"Failed to add the item to the project\"), e);\n });\n }\n this.value = null;\n },\n showSelect() {\n this.selectIsOpen = true;\n this.$refs.select.$el.focus();\n },\n setError(error, e) {\n logger.error(error, { error: e });\n this.error = error;\n setTimeout(() => {\n this.error = null;\n }, 5e3);\n },\n renameCollectionFromItem({ collectionId, name }) {\n this.renameCollection({ collectionId, name }).catch((e) => {\n logger.error(t(\"Failed to rename the project\"), { error: e });\n this.collectionsError[collectionId] = t(\"Failed to rename the project\");\n setTimeout(() => {\n this.collectionsError[collectionId] = null;\n }, 5e3);\n });\n }\n }\n};\nconst _hoisted_1 = {\n key: 0,\n id: \"collection-list\",\n class: \"collection-list\"\n};\nconst _hoisted_2 = { id: \"collection-select-container\" };\nconst _hoisted_3 = { class: \"option__desc\" };\nconst _hoisted_4 = { class: \"option__title\" };\nconst _hoisted_5 = { class: \"option__wrapper\" };\nconst _hoisted_6 = { class: \"option__title\" };\nconst _hoisted_7 = { class: \"hint\" };\nconst _hoisted_8 = {\n key: 0,\n class: \"error\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcAvatar = resolveComponent(\"NcAvatar\");\n const _component_NcSelect = resolveComponent(\"NcSelect\");\n const _component_NcCollectionListItem = resolveComponent(\"NcCollectionListItem\");\n return $options.collections && $props.type && $props.id ? (openBlock(), createElementBlock(\"ul\", _hoisted_1, [\n createElementVNode(\"li\", {\n onClick: _cache[3] || (_cache[3] = (...args) => $options.showSelect && $options.showSelect(...args))\n }, [\n _cache[4] || (_cache[4] = createElementVNode(\"div\", { class: \"avatar\" }, [\n createElementVNode(\"span\", { class: \"icon-projects\" })\n ], -1)),\n createElementVNode(\"div\", _hoisted_2, [\n createVNode(_component_NcSelect, {\n ref: \"select\",\n modelValue: $data.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => $data.value = $event),\n \"aria-label-combobox\": $options.t(\"Add to a project\"),\n options: $options.options,\n placeholder: $options.placeholder,\n label: \"title\",\n limit: 5,\n onClose: _cache[1] || (_cache[1] = ($event) => $data.isSelectOpen = false),\n onOpen: _cache[2] || (_cache[2] = ($event) => $data.isSelectOpen = true),\n \"onOption:selected\": $options.select,\n onSearch: $setup.search\n }, {\n \"selected-option\": withCtx((option) => [\n createElementVNode(\"span\", _hoisted_3, [\n createElementVNode(\"span\", _hoisted_4, toDisplayString(option.title), 1)\n ])\n ]),\n option: withCtx((option) => [\n createElementVNode(\"span\", _hoisted_5, [\n option.class ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n class: normalizeClass([option.class, \"avatar\"])\n }, null, 2)) : option.method !== 2 ? (openBlock(), createBlock(_component_NcAvatar, {\n key: 1,\n \"allow-placeholder\": \"\",\n \"display-name\": option.title\n }, null, 8, [\"display-name\"])) : createCommentVNode(\"\", true),\n createElementVNode(\"span\", _hoisted_6, toDisplayString(option.title), 1)\n ])\n ]),\n default: withCtx(() => [\n createElementVNode(\"p\", _hoisted_7, toDisplayString($options.t(\"Connect items to a project to make them easier to find\")), 1)\n ]),\n _: 1\n }, 8, [\"modelValue\", \"aria-label-combobox\", \"options\", \"placeholder\", \"onOption:selected\", \"onSearch\"])\n ])\n ]),\n createVNode(Transition, { name: \"fade\" }, {\n default: withCtx(() => [\n $data.error ? (openBlock(), createElementBlock(\"li\", _hoisted_8, toDisplayString($data.error), 1)) : createCommentVNode(\"\", true)\n ]),\n _: 1\n }),\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.collections, (collection) => {\n return openBlock(), createBlock(_component_NcCollectionListItem, {\n key: collection.id,\n collection,\n error: $data.collectionsError[collection.id],\n onRenameCollection: $options.renameCollectionFromItem,\n onRemoveResource: $setup.removeResourceFromCollection\n }, null, 8, [\"collection\", \"error\", \"onRenameCollection\", \"onRemoveResource\"]);\n }), 128))\n ])) : createCommentVNode(\"\", true);\n}\nconst NcCollectionList = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-047356d6\"]]);\nexport {\n NcCollectionList as N\n};\n//# sourceMappingURL=NcCollectionList-C-Zxsdgw.mjs.map\n","import '../assets/NcDashboardWidget-DFY9GRrd.css';\nimport { createElementBlock, openBlock, mergeProps, createElementVNode, createCommentVNode, toDisplayString, resolveComponent, createBlock, renderSlot, withCtx, createVNode, Fragment, renderList, toHandlers } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { r as register, n as t35, a as t } from \"./_l10n-DrTiip5c.mjs\";\nimport { N as NcAvatar } from \"./NcAvatar-DmUGApWA.mjs\";\nimport { N as NcDashboardWidgetItem } from \"./NcDashboardWidgetItem-C_xl9X2u.mjs\";\nimport { N as NcEmptyContent } from \"./NcEmptyContent-B8-90BSI.mjs\";\nconst _sfc_main$1 = {\n name: \"CheckIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$1 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$1 = { d: \"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z\" };\nconst _hoisted_4 = { key: 0 };\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon check-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$1, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$1))\n ], 16, _hoisted_1$1);\n}\nconst Check = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1]]);\nregister(t35);\nconst _sfc_main = {\n name: \"NcDashboardWidget\",\n components: {\n NcAvatar,\n NcDashboardWidgetItem,\n NcEmptyContent,\n Check\n },\n props: {\n /**\n * An array containing the items to show (specific structure must be respected,\n * except if you override item rendering in the default slot).\n */\n items: {\n type: Array,\n default: () => {\n return [];\n }\n },\n /**\n * If this is set, a \"show more\" text is displayed on the widget's bottom.\n * It's a link pointing to this URL.\n */\n showMoreUrl: {\n type: String,\n default: \"\"\n },\n /**\n * The text of show more button.\n *\n * Expected to be in the form \"More {itemName} …\"\n */\n showMoreLabel: {\n type: String,\n default: t(\"More items …\")\n },\n /**\n * A boolean to put the widget in a loading state.\n */\n loading: {\n type: Boolean,\n default: false\n },\n /**\n * An object containing context menu entries that will be displayed for each item.\n */\n itemMenu: {\n type: Object,\n default: () => {\n return {};\n }\n },\n /**\n * Whether both the items and the empty content message are shown.\n * Usefull for e.g. showing \"No mentions\" and a list of elements.\n */\n showItemsAndEmptyContent: {\n type: Boolean,\n default: false\n },\n /**\n * The text to show in the empty content area.\n */\n emptyContentMessage: {\n type: String,\n default: \"\"\n },\n /**\n * The text to show in the half empty content area.\n */\n halfEmptyContentMessage: {\n type: String,\n default: \"\"\n }\n },\n computed: {\n // forward menu events to my parent\n handlers() {\n const h = {};\n for (const evName in this.itemMenu) {\n h[evName] = (it) => {\n this.$emit(evName, it);\n };\n }\n return h;\n },\n displayedItems() {\n const nbItems = this.showMoreUrl && this.items.length >= this.maxItemNumber ? this.maxItemNumber - 1 : this.maxItemNumber;\n return this.items.slice(0, nbItems);\n },\n showHalfEmptyContentArea() {\n return this.showItemsAndEmptyContent && this.halfEmptyContentString && this.items.length !== 0;\n },\n halfEmptyContentString() {\n return this.halfEmptyContentMessage || this.emptyContentMessage;\n },\n maxItemNumber() {\n return this.showItemsAndEmptyContent ? 5 : 7;\n },\n showMore() {\n return this.showMoreUrl && this.items.length >= this.maxItemNumber;\n }\n }\n};\nconst _hoisted_1 = { class: \"dashboard-widget\" };\nconst _hoisted_2 = { key: 1 };\nconst _hoisted_3 = [\"href\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_Check = resolveComponent(\"Check\");\n const _component_NcEmptyContent = resolveComponent(\"NcEmptyContent\");\n const _component_NcDashboardWidgetItem = resolveComponent(\"NcDashboardWidgetItem\");\n const _component_NcAvatar = resolveComponent(\"NcAvatar\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1, [\n $options.showHalfEmptyContentArea ? (openBlock(), createBlock(_component_NcEmptyContent, {\n key: 0,\n description: $options.halfEmptyContentString,\n class: \"half-screen\"\n }, {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"halfEmptyContentIcon\", {}, () => [\n createVNode(_component_Check)\n ], true)\n ]),\n _: 3\n }, 8, [\"description\"])) : createCommentVNode(\"\", true),\n createElementVNode(\"ul\", null, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.displayedItems, (item) => {\n return openBlock(), createElementBlock(\"li\", {\n key: item.id\n }, [\n renderSlot(_ctx.$slots, \"default\", { item }, () => [\n createVNode(_component_NcDashboardWidgetItem, mergeProps({ ref_for: true }, item, { \"item-menu\": $props.itemMenu }, toHandlers($options.handlers)), null, 16, [\"item-menu\"])\n ], true)\n ]);\n }), 128))\n ]),\n $props.loading ? (openBlock(), createElementBlock(\"div\", _hoisted_2, [\n (openBlock(), createElementBlock(Fragment, null, renderList(7, (i) => {\n return createElementVNode(\"div\", {\n key: i,\n class: \"item-list__entry\"\n }, [\n createVNode(_component_NcAvatar, {\n class: \"item-avatar\",\n size: 44\n }),\n _cache[0] || (_cache[0] = createElementVNode(\"div\", { class: \"item__details\" }, [\n createElementVNode(\"h3\", null, \" \"),\n createElementVNode(\"p\", { class: \"message\" }, \"   \")\n ], -1))\n ]);\n }), 64))\n ])) : $props.items.length === 0 ? renderSlot(_ctx.$slots, \"empty-content\", { key: 2 }, () => [\n $props.emptyContentMessage ? (openBlock(), createBlock(_component_NcEmptyContent, {\n key: 0,\n description: $props.emptyContentMessage\n }, {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"emptyContentIcon\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"description\"])) : createCommentVNode(\"\", true)\n ], true) : $options.showMore ? (openBlock(), createElementBlock(\"a\", {\n key: 3,\n href: $props.showMoreUrl,\n target: \"_blank\",\n class: \"more\",\n tabindex: \"0\"\n }, toDisplayString($props.showMoreLabel), 9, _hoisted_3)) : createCommentVNode(\"\", true)\n ]);\n}\nconst NcDashboardWidget = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-6b5fc397\"]]);\nexport {\n NcDashboardWidget as N\n};\n//# sourceMappingURL=NcDashboardWidget-Bz1t6sj0.mjs.map\n","/**\n * @module constants\n * @summary Useful constants\n * @description\n * Collection of useful date constants.\n *\n * The constants could be imported from `date-fns/constants`:\n *\n * ```ts\n * import { maxTime, minTime } from \"./constants/date-fns/constants\";\n *\n * function isAllowedTime(time) {\n * return time <= maxTime && time >= minTime;\n * }\n * ```\n */\n\n/**\n * @constant\n * @name daysInWeek\n * @summary Days in 1 week.\n */\nexport const daysInWeek = 7;\n\n/**\n * @constant\n * @name daysInYear\n * @summary Days in 1 year.\n *\n * @description\n * How many days in a year.\n *\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occurs every 4 years, except for years that are divisible by 100 and not divisible by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n */\nexport const daysInYear = 365.2425;\n\n/**\n * @constant\n * @name maxTime\n * @summary Maximum allowed time.\n *\n * @example\n * import { maxTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = 8640000000000001 <= maxTime;\n * //=> false\n *\n * new Date(8640000000000001);\n * //=> Invalid Date\n */\nexport const maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * @constant\n * @name minTime\n * @summary Minimum allowed time.\n *\n * @example\n * import { minTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = -8640000000000001 >= minTime;\n * //=> false\n *\n * new Date(-8640000000000001)\n * //=> Invalid Date\n */\nexport const minTime = -maxTime;\n\n/**\n * @constant\n * @name millisecondsInWeek\n * @summary Milliseconds in 1 week.\n */\nexport const millisecondsInWeek = 604800000;\n\n/**\n * @constant\n * @name millisecondsInDay\n * @summary Milliseconds in 1 day.\n */\nexport const millisecondsInDay = 86400000;\n\n/**\n * @constant\n * @name millisecondsInMinute\n * @summary Milliseconds in 1 minute\n */\nexport const millisecondsInMinute = 60000;\n\n/**\n * @constant\n * @name millisecondsInHour\n * @summary Milliseconds in 1 hour\n */\nexport const millisecondsInHour = 3600000;\n\n/**\n * @constant\n * @name millisecondsInSecond\n * @summary Milliseconds in 1 second\n */\nexport const millisecondsInSecond = 1000;\n\n/**\n * @constant\n * @name minutesInYear\n * @summary Minutes in 1 year.\n */\nexport const minutesInYear = 525600;\n\n/**\n * @constant\n * @name minutesInMonth\n * @summary Minutes in 1 month.\n */\nexport const minutesInMonth = 43200;\n\n/**\n * @constant\n * @name minutesInDay\n * @summary Minutes in 1 day.\n */\nexport const minutesInDay = 1440;\n\n/**\n * @constant\n * @name minutesInHour\n * @summary Minutes in 1 hour.\n */\nexport const minutesInHour = 60;\n\n/**\n * @constant\n * @name monthsInQuarter\n * @summary Months in 1 quarter.\n */\nexport const monthsInQuarter = 3;\n\n/**\n * @constant\n * @name monthsInYear\n * @summary Months in 1 year.\n */\nexport const monthsInYear = 12;\n\n/**\n * @constant\n * @name quartersInYear\n * @summary Quarters in 1 year\n */\nexport const quartersInYear = 4;\n\n/**\n * @constant\n * @name secondsInHour\n * @summary Seconds in 1 hour.\n */\nexport const secondsInHour = 3600;\n\n/**\n * @constant\n * @name secondsInMinute\n * @summary Seconds in 1 minute.\n */\nexport const secondsInMinute = 60;\n\n/**\n * @constant\n * @name secondsInDay\n * @summary Seconds in 1 day.\n */\nexport const secondsInDay = secondsInHour * 24;\n\n/**\n * @constant\n * @name secondsInWeek\n * @summary Seconds in 1 week.\n */\nexport const secondsInWeek = secondsInDay * 7;\n\n/**\n * @constant\n * @name secondsInYear\n * @summary Seconds in 1 year.\n */\nexport const secondsInYear = secondsInDay * daysInYear;\n\n/**\n * @constant\n * @name secondsInMonth\n * @summary Seconds in 1 month\n */\nexport const secondsInMonth = secondsInYear / 12;\n\n/**\n * @constant\n * @name secondsInQuarter\n * @summary Seconds in 1 quarter.\n */\nexport const secondsInQuarter = secondsInMonth * 3;\n\n/**\n * @constant\n * @name constructFromSymbol\n * @summary Symbol enabling Date extensions to inherit properties from the reference date.\n *\n * The symbol is used to enable the `constructFrom` function to construct a date\n * using a reference date and a value. It allows to transfer extra properties\n * from the reference date to the new date. It's useful for extensions like\n * [`TZDate`](https://github.com/date-fns/tz) that accept a time zone as\n * a constructor argument.\n */\nexport const constructFromSymbol = Symbol.for(\"constructDateFrom\");\n","import { constructFromSymbol } from \"./constants.js\";\n\n/**\n * @name constructFrom\n * @category Generic Helpers\n * @summary Constructs a date using the reference date and the value\n *\n * @description\n * The function constructs a new date using the constructor from the reference\n * date and the given value. It helps to build generic functions that accept\n * date extensions.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * Starting from v3.7.0, it allows to construct a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The reference date to take constructor from\n * @param value - The value to create the date\n *\n * @returns Date initialized using the given date and value\n *\n * @example\n * import { constructFrom } from \"./constructFrom/date-fns\";\n *\n * // A function that clones a date preserving the original type\n * function cloneDate(date: DateType): DateType {\n * return constructFrom(\n * date, // Use constructor from the given date\n * date.getTime() // Use the date value to create a new date\n * );\n * }\n */\nexport function constructFrom(date, value) {\n if (typeof date === \"function\") return date(value);\n\n if (date && typeof date === \"object\" && constructFromSymbol in date)\n return date[constructFromSymbol](value);\n\n if (date instanceof Date) return new date.constructor(value);\n\n return new Date(value);\n}\n\n// Fallback for modularized imports:\nexport default constructFrom;\n","import { constructFrom } from \"./constructFrom.js\";\n\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * Starting from v3.7.0, it clones a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param argument - The value to convert\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport function toDate(argument, context) {\n // [TODO] Get rid of `toDate` or `constructFrom`?\n return constructFrom(context || argument, argument);\n}\n\n// Fallback for modularized imports:\nexport default toDate;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link addDays} function options.\n */\n\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of days to be added.\n * @param options - An object with options\n *\n * @returns The new date with the days added\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\nexport function addDays(date, amount, options) {\n const _date = toDate(date, options?.in);\n if (isNaN(amount)) return constructFrom(options?.in || date, NaN);\n\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n if (!amount) return _date;\n\n _date.setDate(_date.getDate() + amount);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default addDays;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link addMonths} function options.\n */\n\n/**\n * @name addMonths\n * @category Month Helpers\n * @summary Add the specified number of months to the given date.\n *\n * @description\n * Add the specified number of months to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of months to be added.\n * @param options - The options object\n *\n * @returns The new date with the months added\n *\n * @example\n * // Add 5 months to 1 September 2014:\n * const result = addMonths(new Date(2014, 8, 1), 5)\n * //=> Sun Feb 01 2015 00:00:00\n *\n * // Add one month to 30 January 2023:\n * const result = addMonths(new Date(2023, 0, 30), 1)\n * //=> Tue Feb 28 2023 00:00:00\n */\nexport function addMonths(date, amount, options) {\n const _date = toDate(date, options?.in);\n if (isNaN(amount)) return constructFrom(options?.in || date, NaN);\n if (!amount) {\n // If 0 months, no-op to avoid changing times in the hour before end of DST\n return _date;\n }\n const dayOfMonth = _date.getDate();\n\n // The JS Date object supports date math by accepting out-of-bounds values for\n // month, day, etc. For example, new Date(2020, 0, 0) returns 31 Dec 2019 and\n // new Date(2020, 13, 1) returns 1 Feb 2021. This is *almost* the behavior we\n // want except that dates will wrap around the end of a month, meaning that\n // new Date(2020, 13, 31) will return 3 Mar 2021 not 28 Feb 2021 as desired. So\n // we'll default to the end of the desired month by adding 1 to the desired\n // month and using a date of 0 to back up one day to the end of the desired\n // month.\n const endOfDesiredMonth = constructFrom(options?.in || date, _date.getTime());\n endOfDesiredMonth.setMonth(_date.getMonth() + amount + 1, 0);\n const daysInMonth = endOfDesiredMonth.getDate();\n if (dayOfMonth >= daysInMonth) {\n // If we're already at the end of the month, then this is the correct date\n // and we're done.\n return endOfDesiredMonth;\n } else {\n // Otherwise, we now know that setting the original day-of-month value won't\n // cause an overflow, so set the desired day-of-month. Note that we can't\n // just set the date of `endOfDesiredMonth` because that object may have had\n // its time changed in the unusual case where where a DST transition was on\n // the last day of the month and its local time was in the hour skipped or\n // repeated next to a DST transition. So we use `date` instead which is\n // guaranteed to still have the original time.\n _date.setFullYear(\n endOfDesiredMonth.getFullYear(),\n endOfDesiredMonth.getMonth(),\n dayOfMonth,\n );\n return _date;\n }\n}\n\n// Fallback for modularized imports:\nexport default addMonths;\n","import { addDays } from \"./addDays.js\";\nimport { addMonths } from \"./addMonths.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link add} function options.\n */\n\n/**\n * @name add\n * @category Common Helpers\n * @summary Add the specified years, months, weeks, days, hours, minutes, and seconds to the given date.\n *\n * @description\n * Add the specified years, months, weeks, days, hours, minutes, and seconds to the given date.\n *\n * @typeParam DateType - The `Date` type the function operates on. Gets inferred from passed arguments. Allows using extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param duration - The object with years, months, weeks, days, hours, minutes, and seconds to be added.\n * @param options - An object with options\n *\n * @returns The new date with the seconds added\n *\n * @example\n * // Add the following duration to 1 September 2014, 10:19:50\n * const result = add(new Date(2014, 8, 1, 10, 19, 50), {\n * years: 2,\n * months: 9,\n * weeks: 1,\n * days: 7,\n * hours: 5,\n * minutes: 9,\n * seconds: 30,\n * })\n * //=> Thu Jun 15 2017 15:29:20\n */\nexport function add(date, duration, options) {\n const {\n years = 0,\n months = 0,\n weeks = 0,\n days = 0,\n hours = 0,\n minutes = 0,\n seconds = 0,\n } = duration;\n\n // Add years and months\n const _date = toDate(date, options?.in);\n const dateWithMonths =\n months || years ? addMonths(_date, months + years * 12) : _date;\n\n // Add weeks and days\n const dateWithDays =\n days || weeks ? addDays(dateWithMonths, days + weeks * 7) : dateWithMonths;\n\n // Add days, hours, minutes, and seconds\n const minutesToAdd = minutes + hours * 60;\n const secondsToAdd = seconds + minutesToAdd * 60;\n const msToAdd = secondsToAdd * 1000;\n\n return constructFrom(options?.in || date, +dateWithDays + msToAdd);\n}\n\n// Fallback for modularized imports:\nexport default add;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link addMilliseconds} function options.\n */\n\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of milliseconds to be added.\n * @param options - The options object\n *\n * @returns The new date with the milliseconds added\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\nexport function addMilliseconds(date, amount, options) {\n return constructFrom(options?.in || date, +toDate(date) + amount);\n}\n\n// Fallback for modularized imports:\nexport default addMilliseconds;\n","import { addMilliseconds } from \"./addMilliseconds.js\";\nimport { millisecondsInHour } from \"./constants.js\";\n\n/**\n * The {@link addHours} function options.\n */\n\n/**\n * @name addHours\n * @category Hour Helpers\n * @summary Add the specified number of hours to the given date.\n *\n * @description\n * Add the specified number of hours to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of hours to be added\n * @param options - An object with options\n *\n * @returns The new date with the hours added\n *\n * @example\n * // Add 2 hours to 10 July 2014 23:00:00:\n * const result = addHours(new Date(2014, 6, 10, 23, 0), 2)\n * //=> Fri Jul 11 2014 01:00:00\n */\nexport function addHours(date, amount, options) {\n return addMilliseconds(date, amount * millisecondsInHour, options);\n}\n\n// Fallback for modularized imports:\nexport default addHours;\n","let defaultOptions = {};\n\nexport function getDefaultOptions() {\n return defaultOptions;\n}\n\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfWeek} function options.\n */\n\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfWeek(date, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date, options?.in);\n const day = _date.getDay();\n const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n\n _date.setDate(_date.getDate() - diff);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeek;\n","import { startOfWeek } from \"./startOfWeek.js\";\n\n/**\n * The {@link startOfISOWeek} function options.\n */\n\n/**\n * @name startOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of an ISO week\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * const result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfISOWeek(date, options) {\n return startOfWeek(date, { ...options, weekStartsOn: 1 });\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeek;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getISOWeekYear} function options.\n */\n\n/**\n * @name getISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n *\n * @returns The ISO week-numbering year\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * const result = getISOWeekYear(new Date(2005, 0, 2))\n * //=> 2004\n */\nexport function getISOWeekYear(date, options) {\n const _date = toDate(date, options?.in);\n const year = _date.getFullYear();\n\n const fourthOfJanuaryOfNextYear = constructFrom(_date, 0);\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);\n\n const fourthOfJanuaryOfThisYear = constructFrom(_date, 0);\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);\n\n if (_date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (_date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getISOWeekYear;\n","import { toDate } from \"../toDate.js\";\n\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport function getTimezoneOffsetInMilliseconds(date) {\n const _date = toDate(date);\n const utcDate = new Date(\n Date.UTC(\n _date.getFullYear(),\n _date.getMonth(),\n _date.getDate(),\n _date.getHours(),\n _date.getMinutes(),\n _date.getSeconds(),\n _date.getMilliseconds(),\n ),\n );\n utcDate.setUTCFullYear(_date.getFullYear());\n return +date - +utcDate;\n}\n","import { constructFrom } from \"../constructFrom.js\";\n\nexport function normalizeDates(context, ...dates) {\n const normalize = constructFrom.bind(\n null,\n context || dates.find((date) => typeof date === \"object\"),\n );\n return dates.map(normalize);\n}\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfDay} function options.\n */\n\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The start of a day\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nexport function startOfDay(date, options) {\n const _date = toDate(date, options?.in);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfDay;\n","import { getTimezoneOffsetInMilliseconds } from \"./_lib/getTimezoneOffsetInMilliseconds.js\";\nimport { normalizeDates } from \"./_lib/normalizeDates.js\";\nimport { millisecondsInDay } from \"./constants.js\";\nimport { startOfDay } from \"./startOfDay.js\";\n\n/**\n * The {@link differenceInCalendarDays} function options.\n */\n\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * @param laterDate - The later date\n * @param earlierDate - The earlier date\n * @param options - The options object\n *\n * @returns The number of calendar days\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\nexport function differenceInCalendarDays(laterDate, earlierDate, options) {\n const [laterDate_, earlierDate_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n\n const laterStartOfDay = startOfDay(laterDate_);\n const earlierStartOfDay = startOfDay(earlierDate_);\n\n const laterTimestamp =\n +laterStartOfDay - getTimezoneOffsetInMilliseconds(laterStartOfDay);\n const earlierTimestamp =\n +earlierStartOfDay - getTimezoneOffsetInMilliseconds(earlierStartOfDay);\n\n // Round the number of days to the nearest integer because the number of\n // milliseconds in a day is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round((laterTimestamp - earlierTimestamp) / millisecondsInDay);\n}\n\n// Fallback for modularized imports:\nexport default differenceInCalendarDays;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { getISOWeekYear } from \"./getISOWeekYear.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\n\n/**\n * The {@link startOfISOWeekYear} function options.\n */\n\n/**\n * @name startOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of an ISO week-numbering year\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * const result = startOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfISOWeekYear(date, options) {\n const year = getISOWeekYear(date, options);\n const fourthOfJanuary = constructFrom(options?.in || date, 0);\n fourthOfJanuary.setFullYear(year, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n return startOfISOWeek(fourthOfJanuary);\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeekYear;\n","import { addMonths } from \"./addMonths.js\";\n\n/**\n * The {@link addQuarters} function options.\n */\n\n/**\n * @name addQuarters\n * @category Quarter Helpers\n * @summary Add the specified number of year quarters to the given date.\n *\n * @description\n * Add the specified number of year quarters to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of quarters to be added.\n * @param options - An object with options\n *\n * @returns The new date with the quarters added\n *\n * @example\n * // Add 1 quarter to 1 September 2014:\n * const result = addQuarters(new Date(2014, 8, 1), 1)\n * //=; Mon Dec 01 2014 00:00:00\n */\nexport function addQuarters(date, amount, options) {\n return addMonths(date, amount * 3, options);\n}\n\n// Fallback for modularized imports:\nexport default addQuarters;\n","import { addMonths } from \"./addMonths.js\";\n\n/**\n * The {@link addYears} function options.\n */\n\n/**\n * @name addYears\n * @category Year Helpers\n * @summary Add the specified number of years to the given date.\n *\n * @description\n * Add the specified number of years to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type.\n *\n * @param date - The date to be changed\n * @param amount - The amount of years to be added.\n * @param options - The options\n *\n * @returns The new date with the years added\n *\n * @example\n * // Add 5 years to 1 September 2014:\n * const result = addYears(new Date(2014, 8, 1), 5)\n * //=> Sun Sep 01 2019 00:00:00\n */\nexport function addYears(date, amount, options) {\n return addMonths(date, amount * 12, options);\n}\n\n// Fallback for modularized imports:\nexport default addYears;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * @name compareAsc\n * @category Common Helpers\n * @summary Compare the two dates and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return 1 if the first date is after the second,\n * -1 if the first date is before the second or 0 if dates are equal.\n *\n * @param dateLeft - The first date to compare\n * @param dateRight - The second date to compare\n *\n * @returns The result of the comparison\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989:\n * const result = compareAsc(new Date(1987, 1, 11), new Date(1989, 6, 10))\n * //=> -1\n *\n * @example\n * // Sort the array of dates:\n * const result = [\n * new Date(1995, 6, 2),\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * ].sort(compareAsc)\n * //=> [\n * // Wed Feb 11 1987 00:00:00,\n * // Mon Jul 10 1989 00:00:00,\n * // Sun Jul 02 1995 00:00:00\n * // ]\n */\nexport function compareAsc(dateLeft, dateRight) {\n const diff = +toDate(dateLeft) - +toDate(dateRight);\n\n if (diff < 0) return -1;\n else if (diff > 0) return 1;\n\n // Return 0 if diff is 0; return NaN if diff is NaN\n return diff;\n}\n\n// Fallback for modularized imports:\nexport default compareAsc;\n","/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param value - The value to check\n *\n * @returns True if the given value is a date\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport function isDate(value) {\n return (\n value instanceof Date ||\n (typeof value === \"object\" &&\n Object.prototype.toString.call(value) === \"[object Date]\")\n );\n}\n\n// Fallback for modularized imports:\nexport default isDate;\n","import { isDate } from \"./isDate.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate](https://date-fns.org/docs/toDate)\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param date - The date to check\n *\n * @returns The date is valid\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertible into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport function isValid(date) {\n return !((!isDate(date) && typeof date !== \"number\") || isNaN(+toDate(date)));\n}\n\n// Fallback for modularized imports:\nexport default isValid;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getQuarter} function options.\n */\n\n/**\n * @name getQuarter\n * @category Quarter Helpers\n * @summary Get the year quarter of the given date.\n *\n * @description\n * Get the year quarter of the given date.\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The quarter\n *\n * @example\n * // Which quarter is 2 July 2014?\n * const result = getQuarter(new Date(2014, 6, 2));\n * //=> 3\n */\nexport function getQuarter(date, options) {\n const _date = toDate(date, options?.in);\n const quarter = Math.trunc(_date.getMonth() / 3) + 1;\n return quarter;\n}\n\n// Fallback for modularized imports:\nexport default getQuarter;\n","import { normalizeDates } from \"./_lib/normalizeDates.js\";\n\n/**\n * The {@link differenceInCalendarYears} function options.\n */\n\n/**\n * @name differenceInCalendarYears\n * @category Year Helpers\n * @summary Get the number of calendar years between the given dates.\n *\n * @description\n * Get the number of calendar years between the given dates.\n *\n * @param laterDate - The later date\n * @param earlierDate - The earlier date\n * @param options - An object with options\n\n * @returns The number of calendar years\n *\n * @example\n * // How many calendar years are between 31 December 2013 and 11 February 2015?\n * const result = differenceInCalendarYears(\n * new Date(2015, 1, 11),\n * new Date(2013, 11, 31)\n * );\n * //=> 2\n */\nexport function differenceInCalendarYears(laterDate, earlierDate, options) {\n const [laterDate_, earlierDate_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n return laterDate_.getFullYear() - earlierDate_.getFullYear();\n}\n\n// Fallback for modularized imports:\nexport default differenceInCalendarYears;\n","import { normalizeDates } from \"./_lib/normalizeDates.js\";\nimport { compareAsc } from \"./compareAsc.js\";\nimport { differenceInCalendarYears } from \"./differenceInCalendarYears.js\";\n\n/**\n * The {@link differenceInYears} function options.\n */\n\n/**\n * @name differenceInYears\n * @category Year Helpers\n * @summary Get the number of full years between the given dates.\n *\n * @description\n * Get the number of full years between the given dates.\n *\n * @param laterDate - The later date\n * @param earlierDate - The earlier date\n * @param options - An object with options\n *\n * @returns The number of full years\n *\n * @example\n * // How many full years are between 31 December 2013 and 11 February 2015?\n * const result = differenceInYears(new Date(2015, 1, 11), new Date(2013, 11, 31))\n * //=> 1\n */\nexport function differenceInYears(laterDate, earlierDate, options) {\n const [laterDate_, earlierDate_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n\n // -1 if the left date is earlier than the right date\n // 2023-12-31 - 2024-01-01 = -1\n const sign = compareAsc(laterDate_, earlierDate_);\n\n // First calculate the difference in calendar years\n // 2024-01-01 - 2023-12-31 = 1 year\n const diff = Math.abs(differenceInCalendarYears(laterDate_, earlierDate_));\n\n // Now we need to calculate if the difference is full. To do that we set\n // both dates to the same year and check if the both date's month and day\n // form a full year.\n laterDate_.setFullYear(1584);\n earlierDate_.setFullYear(1584);\n\n // For it to be true, when the later date is indeed later than the earlier date\n // (2026-02-01 - 2023-12-10 = 3 years), the difference is full if\n // the normalized later date is also later than the normalized earlier date.\n // In our example, 1584-02-01 is earlier than 1584-12-10, so the difference\n // is partial, hence we need to subtract 1 from the difference 3 - 1 = 2.\n const partial = compareAsc(laterDate_, earlierDate_) === -sign;\n\n const result = sign * (diff - +partial);\n\n // Prevent negative zero\n return result === 0 ? 0 : result;\n}\n\n// Fallback for modularized imports:\nexport default differenceInYears;\n","import { normalizeDates } from \"./normalizeDates.js\";\n\nexport function normalizeInterval(context, interval) {\n const [start, end] = normalizeDates(context, interval.start, interval.end);\n return { start, end };\n}\n","import { normalizeInterval } from \"./_lib/normalizeInterval.js\";\nimport { constructFrom } from \"./constructFrom.js\";\n\n/**\n * The {@link eachDayOfInterval} function options.\n */\n\n/**\n * The {@link eachDayOfInterval} function result type. It resolves the proper data type.\n * It uses the first argument date object type, starting from the date argument,\n * then the start interval date, and finally the end interval date. If\n * a context function is passed, it uses the context function return type.\n */\n\n/**\n * @name eachDayOfInterval\n * @category Interval Helpers\n * @summary Return the array of dates within the specified time interval.\n *\n * @description\n * Return the array of dates within the specified time interval.\n *\n * @typeParam IntervalType - Interval type.\n * @typeParam Options - Options type.\n *\n * @param interval - The interval.\n * @param options - An object with options.\n *\n * @returns The array with starts of days from the day of the interval start to the day of the interval end\n *\n * @example\n * // Each day between 6 October 2014 and 10 October 2014:\n * const result = eachDayOfInterval({\n * start: new Date(2014, 9, 6),\n * end: new Date(2014, 9, 10)\n * })\n * //=> [\n * // Mon Oct 06 2014 00:00:00,\n * // Tue Oct 07 2014 00:00:00,\n * // Wed Oct 08 2014 00:00:00,\n * // Thu Oct 09 2014 00:00:00,\n * // Fri Oct 10 2014 00:00:00\n * // ]\n */\nexport function eachDayOfInterval(interval, options) {\n const { start, end } = normalizeInterval(options?.in, interval);\n\n let reversed = +start > +end;\n const endTime = reversed ? +start : +end;\n const date = reversed ? end : start;\n date.setHours(0, 0, 0, 0);\n\n let step = options?.step ?? 1;\n if (!step) return [];\n if (step < 0) {\n step = -step;\n reversed = !reversed;\n }\n\n const dates = [];\n\n while (+date <= endTime) {\n dates.push(constructFrom(start, date));\n date.setDate(date.getDate() + step);\n date.setHours(0, 0, 0, 0);\n }\n\n return reversed ? dates.reverse() : dates;\n}\n\n// Fallback for modularized imports:\nexport default eachDayOfInterval;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfQuarter} function options.\n */\n\n/**\n * @name startOfQuarter\n * @category Quarter Helpers\n * @summary Return the start of a year quarter for the given date.\n *\n * @description\n * Return the start of a year quarter for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The start of a quarter\n *\n * @example\n * // The start of a quarter for 2 September 2014 11:55:00:\n * const result = startOfQuarter(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Jul 01 2014 00:00:00\n */\nexport function startOfQuarter(date, options) {\n const _date = toDate(date, options?.in);\n const currentMonth = _date.getMonth();\n const month = currentMonth - (currentMonth % 3);\n _date.setMonth(month, 1);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfQuarter;\n","import { normalizeInterval } from \"./_lib/normalizeInterval.js\";\nimport { addQuarters } from \"./addQuarters.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { startOfQuarter } from \"./startOfQuarter.js\";\n\n/**\n * The {@link eachQuarterOfInterval} function options.\n */\n\n/**\n * The {@link eachQuarterOfInterval} function result type. It resolves the proper data type.\n * It uses the first argument date object type, starting from the date argument,\n * then the start interval date, and finally the end interval date. If\n * a context function is passed, it uses the context function return type.\n */\n\n/**\n * @name eachQuarterOfInterval\n * @category Interval Helpers\n * @summary Return the array of quarters within the specified time interval.\n *\n * @description\n * Return the array of quarters within the specified time interval.\n *\n * @typeParam IntervalType - Interval type.\n * @typeParam Options - Options type.\n *\n * @param interval - The interval\n * @param options - An object with options\n *\n * @returns The array with starts of quarters from the quarter of the interval start to the quarter of the interval end\n *\n * @example\n * // Each quarter within interval 6 February 2014 - 10 August 2014:\n * const result = eachQuarterOfInterval({\n * start: new Date(2014, 1, 6),\n * end: new Date(2014, 7, 10),\n * })\n * //=> [\n * // Wed Jan 01 2014 00:00:00,\n * // Tue Apr 01 2014 00:00:00,\n * // Tue Jul 01 2014 00:00:00,\n * // ]\n */\nexport function eachQuarterOfInterval(interval, options) {\n const { start, end } = normalizeInterval(options?.in, interval);\n\n let reversed = +start > +end;\n const endTime = reversed ? +startOfQuarter(start) : +startOfQuarter(end);\n let date = reversed ? startOfQuarter(end) : startOfQuarter(start);\n\n let step = options?.step ?? 1;\n if (!step) return [];\n if (step < 0) {\n step = -step;\n reversed = !reversed;\n }\n\n const dates = [];\n\n while (+date <= endTime) {\n dates.push(constructFrom(start, date));\n date = addQuarters(date, step);\n }\n\n return reversed ? dates.reverse() : dates;\n}\n\n// Fallback for modularized imports:\nexport default eachQuarterOfInterval;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfMonth} function options.\n */\n\n/**\n * @name startOfMonth\n * @category Month Helpers\n * @summary Return the start of a month for the given date.\n *\n * @description\n * Return the start of a month for the given date. The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments.\n * Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed,\n * or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a month\n *\n * @example\n * // The start of a month for 2 September 2014 11:55:00:\n * const result = startOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfMonth(date, options) {\n const _date = toDate(date, options?.in);\n _date.setDate(1);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfMonth;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link endOfYear} function options.\n */\n\n/**\n * @name endOfYear\n * @category Year Helpers\n * @summary Return the end of a year for the given date.\n *\n * @description\n * Return the end of a year for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The end of a year\n *\n * @example\n * // The end of a year for 2 September 2014 11:55:00:\n * const result = endOfYear(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Wed Dec 31 2014 23:59:59.999\n */\nexport function endOfYear(date, options) {\n const _date = toDate(date, options?.in);\n const year = _date.getFullYear();\n _date.setFullYear(year + 1, 0, 0);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default endOfYear;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfYear} function options.\n */\n\n/**\n * @name startOfYear\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The start of a year\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * const result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\nexport function startOfYear(date, options) {\n const date_ = toDate(date, options?.in);\n date_.setFullYear(date_.getFullYear(), 0, 1);\n date_.setHours(0, 0, 0, 0);\n return date_;\n}\n\n// Fallback for modularized imports:\nexport default startOfYear;\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link endOfWeek} function options.\n */\n\n/**\n * @name endOfWeek\n * @category Week Helpers\n * @summary Return the end of a week for the given date.\n *\n * @description\n * Return the end of a week for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The end of a week\n *\n * @example\n * // The end of a week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sat Sep 06 2014 23:59:59.999\n *\n * @example\n * // If the week starts on Monday, the end of the week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 23:59:59.999\n */\nexport function endOfWeek(date, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date, options?.in);\n const day = _date.getDay();\n const diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn);\n\n _date.setDate(_date.getDate() + diff);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default endOfWeek;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link endOfQuarter} function options.\n */\n\n/**\n * @name endOfQuarter\n * @category Quarter Helpers\n * @summary Return the end of a year quarter for the given date.\n *\n * @description\n * Return the end of a year quarter for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The end of a quarter\n *\n * @example\n * // The end of a quarter for 2 September 2014 11:55:00:\n * const result = endOfQuarter(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\nexport function endOfQuarter(date, options) {\n const _date = toDate(date, options?.in);\n const currentMonth = _date.getMonth();\n const month = currentMonth - (currentMonth % 3) + 3;\n _date.setMonth(month, 0);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default endOfQuarter;\n","const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"less than a second\",\n other: \"less than {{count}} seconds\",\n },\n\n xSeconds: {\n one: \"1 second\",\n other: \"{{count}} seconds\",\n },\n\n halfAMinute: \"half a minute\",\n\n lessThanXMinutes: {\n one: \"less than a minute\",\n other: \"less than {{count}} minutes\",\n },\n\n xMinutes: {\n one: \"1 minute\",\n other: \"{{count}} minutes\",\n },\n\n aboutXHours: {\n one: \"about 1 hour\",\n other: \"about {{count}} hours\",\n },\n\n xHours: {\n one: \"1 hour\",\n other: \"{{count}} hours\",\n },\n\n xDays: {\n one: \"1 day\",\n other: \"{{count}} days\",\n },\n\n aboutXWeeks: {\n one: \"about 1 week\",\n other: \"about {{count}} weeks\",\n },\n\n xWeeks: {\n one: \"1 week\",\n other: \"{{count}} weeks\",\n },\n\n aboutXMonths: {\n one: \"about 1 month\",\n other: \"about {{count}} months\",\n },\n\n xMonths: {\n one: \"1 month\",\n other: \"{{count}} months\",\n },\n\n aboutXYears: {\n one: \"about 1 year\",\n other: \"about {{count}} years\",\n },\n\n xYears: {\n one: \"1 year\",\n other: \"{{count}} years\",\n },\n\n overXYears: {\n one: \"over 1 year\",\n other: \"over {{count}} years\",\n },\n\n almostXYears: {\n one: \"almost 1 year\",\n other: \"almost {{count}} years\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", count.toString());\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"in \" + result;\n } else {\n return result + \" ago\";\n }\n }\n\n return result;\n};\n","export function buildFormatLongFn(args) {\n return (options = {}) => {\n // TODO: Remove String()\n const width = options.width ? String(options.width) : args.defaultWidth;\n const format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n full: \"EEEE, MMMM do, y\",\n long: \"MMMM do, y\",\n medium: \"MMM d, y\",\n short: \"MM/dd/yyyy\",\n};\n\nconst timeFormats = {\n full: \"h:mm:ss a zzzz\",\n long: \"h:mm:ss a z\",\n medium: \"h:mm:ss a\",\n short: \"h:mm a\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: \"{{date}}, {{time}}\",\n short: \"{{date}}, {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","const formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n formatRelativeLocale[token];\n","/**\n * The localize function argument callback which allows to convert raw value to\n * the actual type.\n *\n * @param value - The value to convert\n *\n * @returns The converted value\n */\n\n/**\n * The map of localized values for each width.\n */\n\n/**\n * The index type of the locale unit value. It types conversion of units of\n * values that don't start at 0 (i.e. quarters).\n */\n\n/**\n * Converts the unit value to the tuple of values.\n */\n\n/**\n * The tuple of localized era values. The first element represents BC,\n * the second element represents AD.\n */\n\n/**\n * The tuple of localized quarter values. The first element represents Q1.\n */\n\n/**\n * The tuple of localized day values. The first element represents Sunday.\n */\n\n/**\n * The tuple of localized month values. The first element represents January.\n */\n\nexport function buildLocalizeFn(args) {\n return (value, options) => {\n const context = options?.context ? String(options.context) : \"standalone\";\n\n let valuesArray;\n if (context === \"formatting\" && args.formattingValues) {\n const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n const width = options?.width ? String(options.width) : defaultWidth;\n\n valuesArray =\n args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n const defaultWidth = args.defaultWidth;\n const width = options?.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[width] || args.values[defaultWidth];\n }\n const index = args.argumentCallback ? args.argumentCallback(value) : value;\n\n // @ts-expect-error - For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n narrow: [\"B\", \"A\"],\n abbreviated: [\"BC\", \"AD\"],\n wide: [\"Before Christ\", \"Anno Domini\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n wide: [\"1st quarter\", \"2nd quarter\", \"3rd quarter\", \"4th quarter\"],\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nconst monthValues = {\n narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n abbreviated: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n\n wide: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"],\n short: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n abbreviated: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n wide: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n const number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n const rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + \"st\";\n case 2:\n return number + \"nd\";\n case 3:\n return number + \"rd\";\n }\n }\n return number + \"th\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n","export function buildMatchFn(args) {\n return (string, options = {}) => {\n const width = options.width;\n\n const matchPattern =\n (width && args.matchPatterns[width]) ||\n args.matchPatterns[args.defaultMatchWidth];\n const matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n const matchedString = matchResult[0];\n\n const parsePatterns =\n (width && args.parsePatterns[width]) ||\n args.parsePatterns[args.defaultParseWidth];\n\n const key = Array.isArray(parsePatterns)\n ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString))\n : // [TODO] -- I challenge you to fix the type\n findKey(parsePatterns, (pattern) => pattern.test(matchedString));\n\n let value;\n\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback\n ? // [TODO] -- I challenge you to fix the type\n options.valueCallback(value)\n : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n\nfunction findKey(object, predicate) {\n for (const key in object) {\n if (\n Object.prototype.hasOwnProperty.call(object, key) &&\n predicate(object[key])\n ) {\n return key;\n }\n }\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (let key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}\n","export function buildMatchPatternFn(args) {\n return (string, options = {}) => {\n const matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n const matchedString = matchResult[0];\n\n const parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n let value = args.valueCallback\n ? args.valueCallback(parseResult[0])\n : parseResult[0];\n\n // [TODO] I challenge you to fix the type\n value = options.valueCallback ? options.valueCallback(value) : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i,\n};\nconst parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^f/i,\n /^mar/i,\n /^ap/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^au/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i,\n};\nconst parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","import { formatDistance } from \"./en-US/_lib/formatDistance.js\";\nimport { formatLong } from \"./en-US/_lib/formatLong.js\";\nimport { formatRelative } from \"./en-US/_lib/formatRelative.js\";\nimport { localize } from \"./en-US/_lib/localize.js\";\nimport { match } from \"./en-US/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp](https://github.com/kossnocorp)\n * @author Lesha Koss [@leshakoss](https://github.com/leshakoss)\n */\nexport const enUS = {\n code: \"en-US\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1,\n },\n};\n\n// Fallback for modularized imports:\nexport default enUS;\n","import { differenceInCalendarDays } from \"./differenceInCalendarDays.js\";\nimport { startOfYear } from \"./startOfYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getDayOfYear} function options.\n */\n\n/**\n * @name getDayOfYear\n * @category Day Helpers\n * @summary Get the day of the year of the given date.\n *\n * @description\n * Get the day of the year of the given date.\n *\n * @param date - The given date\n * @param options - The options\n *\n * @returns The day of year\n *\n * @example\n * // Which day of the year is 2 July 2014?\n * const result = getDayOfYear(new Date(2014, 6, 2))\n * //=> 183\n */\nexport function getDayOfYear(date, options) {\n const _date = toDate(date, options?.in);\n const diff = differenceInCalendarDays(_date, startOfYear(_date));\n const dayOfYear = diff + 1;\n return dayOfYear;\n}\n\n// Fallback for modularized imports:\nexport default getDayOfYear;\n","import { millisecondsInWeek } from \"./constants.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\nimport { startOfISOWeekYear } from \"./startOfISOWeekYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getISOWeek} function options.\n */\n\n/**\n * @name getISOWeek\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n * @param options - The options\n *\n * @returns The ISO week\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * const result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\nexport function getISOWeek(date, options) {\n const _date = toDate(date, options?.in);\n const diff = +startOfISOWeek(_date) - +startOfISOWeekYear(_date);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getISOWeek;\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getWeekYear} function options.\n */\n\n/**\n * @name getWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Get the local week-numbering year of the given date.\n *\n * @description\n * Get the local week-numbering year of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @param date - The given date\n * @param options - An object with options.\n *\n * @returns The local week-numbering year\n *\n * @example\n * // Which week numbering year is 26 December 2004 with the default settings?\n * const result = getWeekYear(new Date(2004, 11, 26))\n * //=> 2005\n *\n * @example\n * // Which week numbering year is 26 December 2004 if week starts on Saturday?\n * const result = getWeekYear(new Date(2004, 11, 26), { weekStartsOn: 6 })\n * //=> 2004\n *\n * @example\n * // Which week numbering year is 26 December 2004 if the first week contains 4 January?\n * const result = getWeekYear(new Date(2004, 11, 26), { firstWeekContainsDate: 4 })\n * //=> 2004\n */\nexport function getWeekYear(date, options) {\n const _date = toDate(date, options?.in);\n const year = _date.getFullYear();\n\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const firstWeekOfNextYear = constructFrom(options?.in || date, 0);\n firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfWeek(firstWeekOfNextYear, options);\n\n const firstWeekOfThisYear = constructFrom(options?.in || date, 0);\n firstWeekOfThisYear.setFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfWeek(firstWeekOfThisYear, options);\n\n if (+_date >= +startOfNextYear) {\n return year + 1;\n } else if (+_date >= +startOfThisYear) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getWeekYear;\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { getWeekYear } from \"./getWeekYear.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\n\n/**\n * The {@link startOfWeekYear} function options.\n */\n\n/**\n * @name startOfWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Return the start of a local week-numbering year for the given date.\n *\n * @description\n * Return the start of a local week-numbering year.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week-numbering year\n *\n * @example\n * // The start of an a week-numbering year for 2 July 2005 with default settings:\n * const result = startOfWeekYear(new Date(2005, 6, 2))\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // The start of a week-numbering year for 2 July 2005\n * // if Monday is the first day of week\n * // and 4 January is always in the first week of the year:\n * const result = startOfWeekYear(new Date(2005, 6, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfWeekYear(date, options) {\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const year = getWeekYear(date, options);\n const firstWeek = constructFrom(options?.in || date, 0);\n firstWeek.setFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setHours(0, 0, 0, 0);\n const _date = startOfWeek(firstWeek, options);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeekYear;\n","import { millisecondsInWeek } from \"./constants.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\nimport { startOfWeekYear } from \"./startOfWeekYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getWeek} function options.\n */\n\n/**\n * @name getWeek\n * @category Week Helpers\n * @summary Get the local week index of the given date.\n *\n * @description\n * Get the local week index of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The week\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005 with default options?\n * const result = getWeek(new Date(2005, 0, 2))\n * //=> 2\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January?\n * const result = getWeek(new Date(2005, 0, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> 53\n */\nexport function getWeek(date, options) {\n const _date = toDate(date, options?.in);\n const diff = +startOfWeek(_date, options) - +startOfWeekYear(_date, options);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getWeek;\n","export function addLeadingZeros(number, targetLength) {\n const sign = number < 0 ? \"-\" : \"\";\n const output = Math.abs(number).toString().padStart(targetLength, \"0\");\n return sign + output;\n}\n","import { addLeadingZeros } from \"../addLeadingZeros.js\";\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nexport const lightFormatters = {\n // Year\n y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === \"yy\" ? year % 100 : year, token.length);\n },\n\n // Month\n M(date, token) {\n const month = date.getMonth();\n return token === \"M\" ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n\n // Day of the month\n d(date, token) {\n return addLeadingZeros(date.getDate(), token.length);\n },\n\n // AM or PM\n a(date, token) {\n const dayPeriodEnumValue = date.getHours() / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return dayPeriodEnumValue.toUpperCase();\n case \"aaa\":\n return dayPeriodEnumValue;\n case \"aaaaa\":\n return dayPeriodEnumValue[0];\n case \"aaaa\":\n default:\n return dayPeriodEnumValue === \"am\" ? \"a.m.\" : \"p.m.\";\n }\n },\n\n // Hour [1-12]\n h(date, token) {\n return addLeadingZeros(date.getHours() % 12 || 12, token.length);\n },\n\n // Hour [0-23]\n H(date, token) {\n return addLeadingZeros(date.getHours(), token.length);\n },\n\n // Minute\n m(date, token) {\n return addLeadingZeros(date.getMinutes(), token.length);\n },\n\n // Second\n s(date, token) {\n return addLeadingZeros(date.getSeconds(), token.length);\n },\n\n // Fraction of second\n S(date, token) {\n const numberOfDigits = token.length;\n const milliseconds = date.getMilliseconds();\n const fractionalSeconds = Math.trunc(\n milliseconds * Math.pow(10, numberOfDigits - 3),\n );\n return addLeadingZeros(fractionalSeconds, token.length);\n },\n};\n","import { getDayOfYear } from \"../../getDayOfYear.js\";\nimport { getISOWeek } from \"../../getISOWeek.js\";\nimport { getISOWeekYear } from \"../../getISOWeekYear.js\";\nimport { getWeek } from \"../../getWeek.js\";\nimport { getWeekYear } from \"../../getWeekYear.js\";\n\nimport { addLeadingZeros } from \"../addLeadingZeros.js\";\nimport { lightFormatters } from \"./lightFormatters.js\";\n\nconst dayPeriodEnum = {\n am: \"am\",\n pm: \"pm\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n};\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nexport const formatters = {\n // Era\n G: function (date, token, localize) {\n const era = date.getFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return localize.era(era, { width: \"abbreviated\" });\n // A, B\n case \"GGGGG\":\n return localize.era(era, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return localize.era(era, { width: \"wide\" });\n }\n },\n\n // Year\n y: function (date, token, localize) {\n // Ordinal number\n if (token === \"yo\") {\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, { unit: \"year\" });\n }\n\n return lightFormatters.y(date, token);\n },\n\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n const signedWeekYear = getWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === \"YY\") {\n const twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === \"Yo\") {\n return localize.ordinalNumber(weekYear, { unit: \"year\" });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n\n // ISO week-numbering year\n R: function (date, token) {\n const isoWeekYear = getISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function (date, token) {\n const year = date.getFullYear();\n return addLeadingZeros(year, token.length);\n },\n\n // Quarter\n Q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"QQ\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"QQQ\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"QQQQQ\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone quarter\n q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"qq\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"qqq\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"qqqqq\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // Month\n M: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n case \"M\":\n case \"MM\":\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // J, F, ..., D\n case \"MMMMM\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return localize.month(month, { width: \"wide\", context: \"formatting\" });\n }\n },\n\n // Stand-alone month\n L: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return String(month + 1);\n // 01, 02, ..., 12\n case \"LL\":\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // J, F, ..., D\n case \"LLLLL\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return localize.month(month, { width: \"wide\", context: \"standalone\" });\n }\n },\n\n // Local week of year\n w: function (date, token, localize, options) {\n const week = getWeek(date, options);\n\n if (token === \"wo\") {\n return localize.ordinalNumber(week, { unit: \"week\" });\n }\n\n return addLeadingZeros(week, token.length);\n },\n\n // ISO week of year\n I: function (date, token, localize) {\n const isoWeek = getISOWeek(date);\n\n if (token === \"Io\") {\n return localize.ordinalNumber(isoWeek, { unit: \"week\" });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n\n // Day of the month\n d: function (date, token, localize) {\n if (token === \"do\") {\n return localize.ordinalNumber(date.getDate(), { unit: \"date\" });\n }\n\n return lightFormatters.d(date, token);\n },\n\n // Day of year\n D: function (date, token, localize) {\n const dayOfYear = getDayOfYear(date);\n\n if (token === \"Do\") {\n return localize.ordinalNumber(dayOfYear, { unit: \"dayOfYear\" });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n\n // Day of week\n E: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n switch (token) {\n // Tue\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"EEEEE\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"EEEE\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Local day of week\n e: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case \"e\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"ee\":\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case \"eo\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"eee\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"eeeee\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"eeee\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case \"c\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"cc\":\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case \"co\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"ccc\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // T\n case \"ccccc\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"standalone\",\n });\n // Tuesday\n case \"cccc\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // ISO day of week\n i: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n const isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case \"i\":\n return String(isoDayOfWeek);\n // 02\n case \"ii\":\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case \"io\":\n return localize.ordinalNumber(isoDayOfWeek, { unit: \"day\" });\n // Tue\n case \"iii\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"iiiii\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"iiiiii\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"iiii\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM or PM\n a: function (date, token, localize) {\n const hours = date.getHours();\n const dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"aaa\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"aaaaa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n }\n\n switch (token) {\n case \"b\":\n case \"bb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"bbb\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"bbbbb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"BBBBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Hour [1-12]\n h: function (date, token, localize) {\n if (token === \"ho\") {\n let hours = date.getHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return lightFormatters.h(date, token);\n },\n\n // Hour [0-23]\n H: function (date, token, localize) {\n if (token === \"Ho\") {\n return localize.ordinalNumber(date.getHours(), { unit: \"hour\" });\n }\n\n return lightFormatters.H(date, token);\n },\n\n // Hour [0-11]\n K: function (date, token, localize) {\n const hours = date.getHours() % 12;\n\n if (token === \"Ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Hour [1-24]\n k: function (date, token, localize) {\n let hours = date.getHours();\n if (hours === 0) hours = 24;\n\n if (token === \"ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Minute\n m: function (date, token, localize) {\n if (token === \"mo\") {\n return localize.ordinalNumber(date.getMinutes(), { unit: \"minute\" });\n }\n\n return lightFormatters.m(date, token);\n },\n\n // Second\n s: function (date, token, localize) {\n if (token === \"so\") {\n return localize.ordinalNumber(date.getSeconds(), { unit: \"second\" });\n }\n\n return lightFormatters.s(date, token);\n },\n\n // Fraction of second\n S: function (date, token) {\n return lightFormatters.S(date, token);\n },\n\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return \"Z\";\n }\n\n switch (token) {\n // Hours and optional minutes\n case \"X\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case \"XXXX\":\n case \"XX\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case \"XXXXX\":\n case \"XXX\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case \"x\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case \"xxxx\":\n case \"xx\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case \"xxxxx\":\n case \"xxx\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (GMT)\n O: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"O\":\n case \"OO\":\n case \"OOO\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"OOOO\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (specific non-location)\n z: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"z\":\n case \"zz\":\n case \"zzz\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"zzzz\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Seconds timestamp\n t: function (date, token, _localize) {\n const timestamp = Math.trunc(+date / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n\n // Milliseconds timestamp\n T: function (date, token, _localize) {\n return addLeadingZeros(+date, token.length);\n },\n};\n\nfunction formatTimezoneShort(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = Math.trunc(absOffset / 60);\n const minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, delimiter) {\n if (offset % 60 === 0) {\n const sign = offset > 0 ? \"-\" : \"+\";\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, delimiter);\n}\n\nfunction formatTimezone(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = addLeadingZeros(Math.trunc(absOffset / 60), 2);\n const minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n","const dateLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"P\":\n return formatLong.date({ width: \"short\" });\n case \"PP\":\n return formatLong.date({ width: \"medium\" });\n case \"PPP\":\n return formatLong.date({ width: \"long\" });\n case \"PPPP\":\n default:\n return formatLong.date({ width: \"full\" });\n }\n};\n\nconst timeLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"p\":\n return formatLong.time({ width: \"short\" });\n case \"pp\":\n return formatLong.time({ width: \"medium\" });\n case \"ppp\":\n return formatLong.time({ width: \"long\" });\n case \"pppp\":\n default:\n return formatLong.time({ width: \"full\" });\n }\n};\n\nconst dateTimeLongFormatter = (pattern, formatLong) => {\n const matchResult = pattern.match(/(P+)(p+)?/) || [];\n const datePattern = matchResult[1];\n const timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n let dateTimeFormat;\n\n switch (datePattern) {\n case \"P\":\n dateTimeFormat = formatLong.dateTime({ width: \"short\" });\n break;\n case \"PP\":\n dateTimeFormat = formatLong.dateTime({ width: \"medium\" });\n break;\n case \"PPP\":\n dateTimeFormat = formatLong.dateTime({ width: \"long\" });\n break;\n case \"PPPP\":\n default:\n dateTimeFormat = formatLong.dateTime({ width: \"full\" });\n break;\n }\n\n return dateTimeFormat\n .replace(\"{{date}}\", dateLongFormatter(datePattern, formatLong))\n .replace(\"{{time}}\", timeLongFormatter(timePattern, formatLong));\n};\n\nexport const longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter,\n};\n","const dayOfYearTokenRE = /^D+$/;\nconst weekYearTokenRE = /^Y+$/;\n\nconst throwTokens = [\"D\", \"DD\", \"YY\", \"YYYY\"];\n\nexport function isProtectedDayOfYearToken(token) {\n return dayOfYearTokenRE.test(token);\n}\n\nexport function isProtectedWeekYearToken(token) {\n return weekYearTokenRE.test(token);\n}\n\nexport function warnOrThrowProtectedError(token, format, input) {\n const _message = message(token, format, input);\n console.warn(_message);\n if (throwTokens.includes(token)) throw new RangeError(_message);\n}\n\nfunction message(token, format, input) {\n const subject = token[0] === \"Y\" ? \"years\" : \"days of the month\";\n return `Use \\`${token.toLowerCase()}\\` instead of \\`${token}\\` (in \\`${format}\\`) for formatting ${subject} to the input \\`${input}\\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`;\n}\n","import { defaultLocale } from \"./_lib/defaultLocale.js\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { formatters } from \"./_lib/format/formatters.js\";\nimport { longFormatters } from \"./_lib/format/longFormatters.js\";\nimport {\n isProtectedDayOfYearToken,\n isProtectedWeekYearToken,\n warnOrThrowProtectedError,\n} from \"./_lib/protectedTokens.js\";\nimport { isValid } from \"./isValid.js\";\nimport { toDate } from \"./toDate.js\";\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\nexport { formatters, longFormatters };\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp =\n /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\nexport { format as formatDate };\n\n/**\n * The {@link format} function options.\n */\n\n/**\n * @name format\n * @alias formatDate\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear](https://date-fns.org/docs/getISOWeekYear)\n * and [getWeekYear](https://date-fns.org/docs/getWeekYear)).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param date - The original date\n * @param format - The string of tokens\n * @param options - An object with options\n *\n * @returns The formatted date string\n *\n * @throws `date` must not be Invalid Date\n * @throws `options.locale` must contain `localize` property\n * @throws `options.locale` must contain `formatLong` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\nexport function format(date, formatStr, options) {\n const defaultOptions = getDefaultOptions();\n const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const originalDate = toDate(date, options?.in);\n\n if (!isValid(originalDate)) {\n throw new RangeError(\"Invalid time value\");\n }\n\n let parts = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter === \"p\" || firstCharacter === \"P\") {\n const longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp)\n .map((substring) => {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return { isToken: false, value: \"'\" };\n }\n\n const firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return { isToken: false, value: cleanEscapedString(substring) };\n }\n\n if (formatters[firstCharacter]) {\n return { isToken: true, value: substring };\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n return { isToken: false, value: substring };\n });\n\n // invoke localize preprocessor (only for french locales at the moment)\n if (locale.localize.preprocessor) {\n parts = locale.localize.preprocessor(originalDate, parts);\n }\n\n const formatterOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n return parts\n .map((part) => {\n if (!part.isToken) return part.value;\n\n const token = part.value;\n\n if (\n (!options?.useAdditionalWeekYearTokens &&\n isProtectedWeekYearToken(token)) ||\n (!options?.useAdditionalDayOfYearTokens &&\n isProtectedDayOfYearToken(token))\n ) {\n warnOrThrowProtectedError(token, formatStr, String(date));\n }\n\n const formatter = formatters[token[0]];\n return formatter(originalDate, token, locale.localize, formatterOptions);\n })\n .join(\"\");\n}\n\nfunction cleanEscapedString(input) {\n const matched = input.match(escapedStringRegExp);\n\n if (!matched) {\n return input;\n }\n\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default format;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getDay} function options.\n */\n\n/**\n * @name getDay\n * @category Weekday Helpers\n * @summary Get the day of the week of the given date.\n *\n * @description\n * Get the day of the week of the given date.\n *\n * @param date - The given date\n * @param options - The options\n *\n * @returns The day of week, 0 represents Sunday\n *\n * @example\n * // Which day of the week is 29 February 2012?\n * const result = getDay(new Date(2012, 1, 29))\n * //=> 3\n */\nexport function getDay(date, options) {\n return toDate(date, options?.in).getDay();\n}\n\n// Fallback for modularized imports:\nexport default getDay;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getDaysInMonth} function options.\n */\n\n/**\n * @name getDaysInMonth\n * @category Month Helpers\n * @summary Get the number of days in a month of the given date.\n *\n * @description\n * Get the number of days in a month of the given date, considering the context if provided.\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The number of days in a month\n *\n * @example\n * // How many days are in February 2000?\n * const result = getDaysInMonth(new Date(2000, 1))\n * //=> 29\n */\nexport function getDaysInMonth(date, options) {\n const _date = toDate(date, options?.in);\n const year = _date.getFullYear();\n const monthIndex = _date.getMonth();\n const lastDayOfMonth = constructFrom(_date, 0);\n lastDayOfMonth.setFullYear(year, monthIndex + 1, 0);\n lastDayOfMonth.setHours(0, 0, 0, 0);\n return lastDayOfMonth.getDate();\n}\n\n// Fallback for modularized imports:\nexport default getDaysInMonth;\n","import { getDefaultOptions as getInternalDefaultOptions } from \"./_lib/defaultOptions.js\";\n\n/**\n * @name getDefaultOptions\n * @category Common Helpers\n * @summary Get default options.\n * @pure false\n *\n * @description\n * Returns an object that contains defaults for\n * `options.locale`, `options.weekStartsOn` and `options.firstWeekContainsDate`\n * arguments for all functions.\n *\n * You can change these with [setDefaultOptions](https://date-fns.org/docs/setDefaultOptions).\n *\n * @returns The default options\n *\n * @example\n * const result = getDefaultOptions()\n * //=> {}\n *\n * @example\n * setDefaultOptions({ weekStarsOn: 1, firstWeekContainsDate: 4 })\n * const result = getDefaultOptions()\n * //=> { weekStarsOn: 1, firstWeekContainsDate: 4 }\n */\nexport function getDefaultOptions() {\n return Object.assign({}, getInternalDefaultOptions());\n}\n\n// Fallback for modularized imports:\nexport default getDefaultOptions;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getHours} function options.\n */\n\n/**\n * @name getHours\n * @category Hour Helpers\n * @summary Get the hours of the given date.\n *\n * @description\n * Get the hours of the given date.\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The hours\n *\n * @example\n * // Get the hours of 29 February 2012 11:45:00:\n * const result = getHours(new Date(2012, 1, 29, 11, 45))\n * //=> 11\n */\nexport function getHours(date, options) {\n return toDate(date, options?.in).getHours();\n}\n\n// Fallback for modularized imports:\nexport default getHours;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getISODay} function options.\n */\n\n/**\n * @name getISODay\n * @category Weekday Helpers\n * @summary Get the day of the ISO week of the given date.\n *\n * @description\n * Get the day of the ISO week of the given date,\n * which is 7 for Sunday, 1 for Monday etc.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The day of ISO week\n *\n * @example\n * // Which day of the ISO week is 26 February 2012?\n * const result = getISODay(new Date(2012, 1, 26))\n * //=> 7\n */\nexport function getISODay(date, options) {\n const day = toDate(date, options?.in).getDay();\n return day === 0 ? 7 : day;\n}\n\n// Fallback for modularized imports:\nexport default getISODay;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getMinutes} function options.\n */\n\n/**\n * @name getMinutes\n * @category Minute Helpers\n * @summary Get the minutes of the given date.\n *\n * @description\n * Get the minutes of the given date.\n *\n * @param date - The given date\n * @param options - The options\n *\n * @returns The minutes\n *\n * @example\n * // Get the minutes of 29 February 2012 11:45:05:\n * const result = getMinutes(new Date(2012, 1, 29, 11, 45, 5))\n * //=> 45\n */\nexport function getMinutes(date, options) {\n return toDate(date, options?.in).getMinutes();\n}\n\n// Fallback for modularized imports:\nexport default getMinutes;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getMonth} function options.\n */\n\n/**\n * @name getMonth\n * @category Month Helpers\n * @summary Get the month of the given date.\n *\n * @description\n * Get the month of the given date.\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The month index (0-11)\n *\n * @example\n * // Which month is 29 February 2012?\n * const result = getMonth(new Date(2012, 1, 29))\n * //=> 1\n */\nexport function getMonth(date, options) {\n return toDate(date, options?.in).getMonth();\n}\n\n// Fallback for modularized imports:\nexport default getMonth;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * @name getSeconds\n * @category Second Helpers\n * @summary Get the seconds of the given date.\n *\n * @description\n * Get the seconds of the given date.\n *\n * @param date - The given date\n *\n * @returns The seconds\n *\n * @example\n * // Get the seconds of 29 February 2012 11:45:05.123:\n * const result = getSeconds(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 5\n */\nexport function getSeconds(date) {\n return toDate(date).getSeconds();\n}\n\n// Fallback for modularized imports:\nexport default getSeconds;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getYear} function options.\n */\n\n/**\n * @name getYear\n * @category Year Helpers\n * @summary Get the year of the given date.\n *\n * @description\n * Get the year of the given date.\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The year\n *\n * @example\n * // Which year is 2 July 2014?\n * const result = getYear(new Date(2014, 6, 2))\n * //=> 2014\n */\nexport function getYear(date, options) {\n return toDate(date, options?.in).getFullYear();\n}\n\n// Fallback for modularized imports:\nexport default getYear;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * @name isAfter\n * @category Common Helpers\n * @summary Is the first date after the second one?\n *\n * @description\n * Is the first date after the second one?\n *\n * @param date - The date that should be after the other one to return true\n * @param dateToCompare - The date to compare with\n *\n * @returns The first date is after the second date\n *\n * @example\n * // Is 10 July 1989 after 11 February 1987?\n * const result = isAfter(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> true\n */\nexport function isAfter(date, dateToCompare) {\n return +toDate(date) > +toDate(dateToCompare);\n}\n\n// Fallback for modularized imports:\nexport default isAfter;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * @name isBefore\n * @category Common Helpers\n * @summary Is the first date before the second one?\n *\n * @description\n * Is the first date before the second one?\n *\n * @param date - The date that should be before the other one to return true\n * @param dateToCompare - The date to compare with\n *\n * @returns The first date is before the second date\n *\n * @example\n * // Is 10 July 1989 before 11 February 1987?\n * const result = isBefore(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> false\n */\nexport function isBefore(date, dateToCompare) {\n return +toDate(date) < +toDate(dateToCompare);\n}\n\n// Fallback for modularized imports:\nexport default isBefore;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * @name isEqual\n * @category Common Helpers\n * @summary Are the given dates equal?\n *\n * @description\n * Are the given dates equal?\n *\n * @param dateLeft - The first date to compare\n * @param dateRight - The second date to compare\n *\n * @returns The dates are equal\n *\n * @example\n * // Are 2 July 2014 06:30:45.000 and 2 July 2014 06:30:45.500 equal?\n * const result = isEqual(\n * new Date(2014, 6, 2, 6, 30, 45, 0),\n * new Date(2014, 6, 2, 6, 30, 45, 500)\n * )\n * //=> false\n */\nexport function isEqual(leftDate, rightDate) {\n return +toDate(leftDate) === +toDate(rightDate);\n}\n\n// Fallback for modularized imports:\nexport default isEqual;\n","import { constructFrom } from \"./constructFrom.js\";\n\n/**\n * @name transpose\n * @category Generic Helpers\n * @summary Transpose the date to the given constructor.\n *\n * @description\n * The function transposes the date to the given constructor. It helps you\n * to transpose the date in the system time zone to say `UTCDate` or any other\n * date extension.\n *\n * @typeParam InputDate - The input `Date` type derived from the passed argument.\n * @typeParam ResultDate - The result `Date` type derived from the passed constructor.\n *\n * @param date - The date to use values from\n * @param constructor - The date constructor to use\n *\n * @returns Date transposed to the given constructor\n *\n * @example\n * // Create July 10, 2022 00:00 in locale time zone\n * const date = new Date(2022, 6, 10)\n * //=> 'Sun Jul 10 2022 00:00:00 GMT+0800 (Singapore Standard Time)'\n *\n * @example\n * // Transpose the date to July 10, 2022 00:00 in UTC\n * transpose(date, UTCDate)\n * //=> 'Sun Jul 10 2022 00:00:00 GMT+0000 (Coordinated Universal Time)'\n */\nexport function transpose(date, constructor) {\n const date_ = isConstructor(constructor)\n ? new constructor(0)\n : constructFrom(constructor, 0);\n date_.setFullYear(date.getFullYear(), date.getMonth(), date.getDate());\n date_.setHours(\n date.getHours(),\n date.getMinutes(),\n date.getSeconds(),\n date.getMilliseconds(),\n );\n return date_;\n}\n\nfunction isConstructor(constructor) {\n return (\n typeof constructor === \"function\" &&\n constructor.prototype?.constructor === constructor\n );\n}\n\n// Fallback for modularized imports:\nexport default transpose;\n","import { constructFrom } from \"../../constructFrom.js\";\nimport { transpose } from \"../../transpose.js\";\n\nconst TIMEZONE_UNIT_PRIORITY = 10;\n\nexport class Setter {\n subPriority = 0;\n\n validate(_utcDate, _options) {\n return true;\n }\n}\n\nexport class ValueSetter extends Setter {\n constructor(\n value,\n\n validateValue,\n\n setValue,\n\n priority,\n subPriority,\n ) {\n super();\n this.value = value;\n this.validateValue = validateValue;\n this.setValue = setValue;\n this.priority = priority;\n if (subPriority) {\n this.subPriority = subPriority;\n }\n }\n\n validate(date, options) {\n return this.validateValue(date, this.value, options);\n }\n\n set(date, flags, options) {\n return this.setValue(date, flags, this.value, options);\n }\n}\n\nexport class DateTimezoneSetter extends Setter {\n priority = TIMEZONE_UNIT_PRIORITY;\n subPriority = -1;\n\n constructor(context, reference) {\n super();\n this.context = context || ((date) => constructFrom(reference, date));\n }\n\n set(date, flags) {\n if (flags.timestampIsSet) return date;\n return constructFrom(date, transpose(date, this.context));\n }\n}\n","import { ValueSetter } from \"./Setter.js\";\n\nexport class Parser {\n run(dateString, token, match, options) {\n const result = this.parse(dateString, token, match, options);\n if (!result) {\n return null;\n }\n\n return {\n setter: new ValueSetter(\n result.value,\n this.validate,\n this.set,\n this.priority,\n this.subPriority,\n ),\n rest: result.rest,\n };\n }\n\n validate(_utcDate, _value, _options) {\n return true;\n }\n}\n","import { Parser } from \"../Parser.js\";\n\nexport class EraParser extends Parser {\n priority = 140;\n\n parse(dateString, token, match) {\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return (\n match.era(dateString, { width: \"abbreviated\" }) ||\n match.era(dateString, { width: \"narrow\" })\n );\n\n // A, B\n case \"GGGGG\":\n return match.era(dateString, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return (\n match.era(dateString, { width: \"wide\" }) ||\n match.era(dateString, { width: \"abbreviated\" }) ||\n match.era(dateString, { width: \"narrow\" })\n );\n }\n }\n\n set(date, flags, value) {\n flags.era = value;\n date.setFullYear(value, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"R\", \"u\", \"t\", \"T\"];\n}\n","export const numericPatterns = {\n month: /^(1[0-2]|0?\\d)/, // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/, // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/, // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/, // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/, // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/, // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/, // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/, // 0 to 12\n minute: /^[0-5]?\\d/, // 0 to 59\n second: /^[0-5]?\\d/, // 0 to 59\n\n singleDigit: /^\\d/, // 0 to 9\n twoDigits: /^\\d{1,2}/, // 0 to 99\n threeDigits: /^\\d{1,3}/, // 0 to 999\n fourDigits: /^\\d{1,4}/, // 0 to 9999\n\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/, // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/, // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/, // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/, // 0 to 9999, -0 to -9999\n};\n\nexport const timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/,\n};\n","import {\n millisecondsInHour,\n millisecondsInMinute,\n millisecondsInSecond,\n} from \"../../constants.js\";\n\nimport { numericPatterns } from \"./constants.js\";\n\nexport function mapValue(parseFnResult, mapFn) {\n if (!parseFnResult) {\n return parseFnResult;\n }\n\n return {\n value: mapFn(parseFnResult.value),\n rest: parseFnResult.rest,\n };\n}\n\nexport function parseNumericPattern(pattern, dateString) {\n const matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n return {\n value: parseInt(matchResult[0], 10),\n rest: dateString.slice(matchResult[0].length),\n };\n}\n\nexport function parseTimezonePattern(pattern, dateString) {\n const matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n // Input is 'Z'\n if (matchResult[0] === \"Z\") {\n return {\n value: 0,\n rest: dateString.slice(1),\n };\n }\n\n const sign = matchResult[1] === \"+\" ? 1 : -1;\n const hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n const minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n const seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n\n return {\n value:\n sign *\n (hours * millisecondsInHour +\n minutes * millisecondsInMinute +\n seconds * millisecondsInSecond),\n rest: dateString.slice(matchResult[0].length),\n };\n}\n\nexport function parseAnyDigitsSigned(dateString) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, dateString);\n}\n\nexport function parseNDigits(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, dateString);\n default:\n return parseNumericPattern(new RegExp(\"^\\\\d{1,\" + n + \"}\"), dateString);\n }\n}\n\nexport function parseNDigitsSigned(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, dateString);\n default:\n return parseNumericPattern(new RegExp(\"^-?\\\\d{1,\" + n + \"}\"), dateString);\n }\n}\n\nexport function dayPeriodEnumToHours(dayPeriod) {\n switch (dayPeriod) {\n case \"morning\":\n return 4;\n case \"evening\":\n return 17;\n case \"pm\":\n case \"noon\":\n case \"afternoon\":\n return 12;\n case \"am\":\n case \"midnight\":\n case \"night\":\n default:\n return 0;\n }\n}\n\nexport function normalizeTwoDigitYear(twoDigitYear, currentYear) {\n const isCommonEra = currentYear > 0;\n // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n const absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n\n let result;\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n const rangeEnd = absCurrentYear + 50;\n const rangeEndCentury = Math.trunc(rangeEnd / 100) * 100;\n const isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n\n return isCommonEra ? result : 1 - result;\n}\n\nexport function isLeapYearIndex(year) {\n return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0);\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.js\";\n\n// From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n// | Year | y | yy | yyy | yyyy | yyyyy |\n// |----------|-------|----|-------|-------|-------|\n// | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n// | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n// | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n// | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n// | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\nexport class YearParser extends Parser {\n priority = 130;\n incompatibleTokens = [\"Y\", \"R\", \"u\", \"w\", \"I\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n\n parse(dateString, token, match) {\n const valueCallback = (year) => ({\n year,\n isTwoDigitYear: token === \"yy\",\n });\n\n switch (token) {\n case \"y\":\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case \"yo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"year\",\n }),\n valueCallback,\n );\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n\n validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n\n set(date, flags, value) {\n const currentYear = date.getFullYear();\n\n if (value.isTwoDigitYear) {\n const normalizedTwoDigitYear = normalizeTwoDigitYear(\n value.year,\n currentYear,\n );\n date.setFullYear(normalizedTwoDigitYear, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n const year =\n !(\"era\" in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setFullYear(year, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n}\n","import { getWeekYear } from \"../../../getWeekYear.js\";\n\nimport { startOfWeek } from \"../../../startOfWeek.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.js\";\n\n// Local week-numbering year\nexport class LocalWeekYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token, match) {\n const valueCallback = (year) => ({\n year,\n isTwoDigitYear: token === \"YY\",\n });\n\n switch (token) {\n case \"Y\":\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case \"Yo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"year\",\n }),\n valueCallback,\n );\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n\n validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n\n set(date, flags, value, options) {\n const currentYear = getWeekYear(date, options);\n\n if (value.isTwoDigitYear) {\n const normalizedTwoDigitYear = normalizeTwoDigitYear(\n value.year,\n currentYear,\n );\n date.setFullYear(\n normalizedTwoDigitYear,\n 0,\n options.firstWeekContainsDate,\n );\n date.setHours(0, 0, 0, 0);\n return startOfWeek(date, options);\n }\n\n const year =\n !(\"era\" in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setFullYear(year, 0, options.firstWeekContainsDate);\n date.setHours(0, 0, 0, 0);\n return startOfWeek(date, options);\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"Q\",\n \"q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"t\",\n \"T\",\n ];\n}\n","import { startOfISOWeek } from \"../../../startOfISOWeek.js\";\nimport { constructFrom } from \"../../../constructFrom.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigitsSigned } from \"../utils.js\";\n\n// ISO week-numbering year\nexport class ISOWeekYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token) {\n if (token === \"R\") {\n return parseNDigitsSigned(4, dateString);\n }\n\n return parseNDigitsSigned(token.length, dateString);\n }\n\n set(date, _flags, value) {\n const firstWeekOfYear = constructFrom(date, 0);\n firstWeekOfYear.setFullYear(value, 0, 4);\n firstWeekOfYear.setHours(0, 0, 0, 0);\n return startOfISOWeek(firstWeekOfYear);\n }\n\n incompatibleTokens = [\n \"G\",\n \"y\",\n \"Y\",\n \"u\",\n \"Q\",\n \"q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { parseNDigitsSigned } from \"../utils.js\";\n\nexport class ExtendedYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token) {\n if (token === \"u\") {\n return parseNDigitsSigned(4, dateString);\n }\n\n return parseNDigitsSigned(token.length, dateString);\n }\n\n set(date, _flags, value) {\n date.setFullYear(value, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"G\", \"y\", \"Y\", \"R\", \"w\", \"I\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { parseNDigits } from \"../utils.js\";\n\nexport class QuarterParser extends Parser {\n priority = 120;\n\n parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n case \"QQ\": // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return match.ordinalNumber(dateString, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"QQQ\":\n return (\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"QQQQQ\":\n return match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return (\n match.quarter(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n\n set(date, _flags, value) {\n date.setMonth((value - 1) * 3, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { parseNDigits } from \"../utils.js\";\n\nexport class StandAloneQuarterParser extends Parser {\n priority = 120;\n\n parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n case \"qq\": // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return match.ordinalNumber(dateString, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"qqq\":\n return (\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n })\n );\n\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"qqqqq\":\n return match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return (\n match.quarter(dateString, {\n width: \"wide\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n\n set(date, _flags, value) {\n date.setMonth((value - 1) * 3, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class MonthParser extends Parser {\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"L\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n\n priority = 110;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => value - 1;\n\n switch (token) {\n // 1, 2, ..., 12\n case \"M\":\n return mapValue(\n parseNumericPattern(numericPatterns.month, dateString),\n valueCallback,\n );\n // 01, 02, ..., 12\n case \"MM\":\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"month\",\n }),\n valueCallback,\n );\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return (\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // J, F, ..., D\n case \"MMMMM\":\n return match.month(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return (\n match.month(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n date.setMonth(value, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class StandAloneMonthParser extends Parser {\n priority = 110;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => value - 1;\n\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return mapValue(\n parseNumericPattern(numericPatterns.month, dateString),\n valueCallback,\n );\n // 01, 02, ..., 12\n case \"LL\":\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"month\",\n }),\n valueCallback,\n );\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return (\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // J, F, ..., D\n case \"LLLLL\":\n return match.month(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return (\n match.month(dateString, { width: \"wide\", context: \"standalone\" }) ||\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n date.setMonth(value, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"M\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { getWeek } from \"./getWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setWeek} function options.\n */\n\n/**\n * @name setWeek\n * @category Week Helpers\n * @summary Set the local week to the given date.\n *\n * @description\n * Set the local week to the given date, saving the weekday number.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param week - The week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the local week set\n *\n * @example\n * // Set the 1st week to 2 January 2005 with default options:\n * const result = setWeek(new Date(2005, 0, 2), 1)\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // Set the 1st week to 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January:\n * const result = setWeek(new Date(2005, 0, 2), 1, {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Sun Jan 4 2004 00:00:00\n */\nexport function setWeek(date, week, options) {\n const date_ = toDate(date, options?.in);\n const diff = getWeek(date_, options) - week;\n date_.setDate(date_.getDate() - diff * 7);\n return toDate(date_, options?.in);\n}\n\n// Fallback for modularized imports:\nexport default setWeek;\n","import { setWeek } from \"../../../setWeek.js\";\nimport { startOfWeek } from \"../../../startOfWeek.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\n// Local week of year\nexport class LocalWeekParser extends Parser {\n priority = 100;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"w\":\n return parseNumericPattern(numericPatterns.week, dateString);\n case \"wo\":\n return match.ordinalNumber(dateString, { unit: \"week\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n\n set(date, _flags, value, options) {\n return startOfWeek(setWeek(date, value, options), options);\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"t\",\n \"T\",\n ];\n}\n","import { getISOWeek } from \"./getISOWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setISOWeek} function options.\n */\n\n/**\n * @name setISOWeek\n * @category ISO Week Helpers\n * @summary Set the ISO week to the given date.\n *\n * @description\n * Set the ISO week to the given date, saving the weekday number.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The `Date` type of the context function.\n *\n * @param date - The date to be changed\n * @param week - The ISO week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the ISO week set\n *\n * @example\n * // Set the 53rd ISO week to 7 August 2004:\n * const result = setISOWeek(new Date(2004, 7, 7), 53)\n * //=> Sat Jan 01 2005 00:00:00\n */\nexport function setISOWeek(date, week, options) {\n const _date = toDate(date, options?.in);\n const diff = getISOWeek(_date, options) - week;\n _date.setDate(_date.getDate() - diff * 7);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setISOWeek;\n","import { setISOWeek } from \"../../../setISOWeek.js\";\nimport { startOfISOWeek } from \"../../../startOfISOWeek.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\n// ISO week of year\nexport class ISOWeekParser extends Parser {\n priority = 100;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"I\":\n return parseNumericPattern(numericPatterns.week, dateString);\n case \"Io\":\n return match.ordinalNumber(dateString, { unit: \"week\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n\n set(date, _flags, value) {\n return startOfISOWeek(setISOWeek(date, value));\n }\n\n incompatibleTokens = [\n \"y\",\n \"Y\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport {\n isLeapYearIndex,\n parseNDigits,\n parseNumericPattern,\n} from \"../utils.js\";\n\nconst DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nconst DAYS_IN_MONTH_LEAP_YEAR = [\n 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,\n];\n\n// Day of the month\nexport class DateParser extends Parser {\n priority = 90;\n subPriority = 1;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"d\":\n return parseNumericPattern(numericPatterns.date, dateString);\n case \"do\":\n return match.ordinalNumber(dateString, { unit: \"date\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(date, value) {\n const year = date.getFullYear();\n const isLeapYear = isLeapYearIndex(year);\n const month = date.getMonth();\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n }\n\n set(date, _flags, value) {\n date.setDate(value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport {\n isLeapYearIndex,\n parseNDigits,\n parseNumericPattern,\n} from \"../utils.js\";\n\nexport class DayOfYearParser extends Parser {\n priority = 90;\n\n subpriority = 1;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"D\":\n case \"DD\":\n return parseNumericPattern(numericPatterns.dayOfYear, dateString);\n case \"Do\":\n return match.ordinalNumber(dateString, { unit: \"date\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(date, value) {\n const year = date.getFullYear();\n const isLeapYear = isLeapYearIndex(year);\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n }\n\n set(date, _flags, value) {\n date.setMonth(0, value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"E\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { addDays } from \"./addDays.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setDay} function options.\n */\n\n/**\n * @name setDay\n * @category Weekday Helpers\n * @summary Set the day of the week to the given date.\n *\n * @description\n * Set the day of the week to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param day - The day of the week of the new date\n * @param options - An object with options.\n *\n * @returns The new date with the day of the week set\n *\n * @example\n * // Set week day to Sunday, with the default weekStartsOn of Sunday:\n * const result = setDay(new Date(2014, 8, 1), 0)\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // Set week day to Sunday, with a weekStartsOn of Monday:\n * const result = setDay(new Date(2014, 8, 1), 0, { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 00:00:00\n */\nexport function setDay(date, day, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const date_ = toDate(date, options?.in);\n const currentDay = date_.getDay();\n\n const remainder = day % 7;\n const dayIndex = (remainder + 7) % 7;\n\n const delta = 7 - weekStartsOn;\n const diff =\n day < 0 || day > 6\n ? day - ((currentDay + delta) % 7)\n : ((dayIndex + delta) % 7) - ((currentDay + delta) % 7);\n return addDays(date_, diff, options);\n}\n\n// Fallback for modularized imports:\nexport default setDay;\n","import { setDay } from \"../../../setDay.js\";\nimport { Parser } from \"../Parser.js\";\n\n// Day of week\nexport class DayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match) {\n switch (token) {\n // Tue\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // T\n case \"EEEEE\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return (\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // Tuesday\n case \"EEEE\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"D\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n","import { setDay } from \"../../../setDay.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits } from \"../utils.js\";\n\n// Local day of week\nexport class LocalDayParser extends Parser {\n priority = 90;\n parse(dateString, token, match, options) {\n const valueCallback = (value) => {\n // We want here floor instead of trunc, so we get -7 for value 0 instead of 0\n const wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case \"e\":\n case \"ee\": // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case \"eo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"day\",\n }),\n valueCallback,\n );\n // Tue\n case \"eee\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // T\n case \"eeeee\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return (\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // Tuesday\n case \"eeee\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"E\",\n \"i\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { setDay } from \"../../../setDay.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits } from \"../utils.js\";\n\n// Stand-alone local day of week\nexport class StandAloneLocalDayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match, options) {\n const valueCallback = (value) => {\n // We want here floor instead of trunc, so we get -7 for value 0 instead of 0\n const wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case \"c\":\n case \"cc\": // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case \"co\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"day\",\n }),\n valueCallback,\n );\n // Tue\n case \"ccc\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // T\n case \"ccccc\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return (\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // Tuesday\n case \"cccc\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"standalone\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"E\",\n \"i\",\n \"e\",\n \"t\",\n \"T\",\n ];\n}\n","import { addDays } from \"./addDays.js\";\nimport { getISODay } from \"./getISODay.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setISODay} function options.\n */\n\n/**\n * @name setISODay\n * @category Weekday Helpers\n * @summary Set the day of the ISO week to the given date.\n *\n * @description\n * Set the day of the ISO week to the given date.\n * ISO week starts with Monday.\n * 7 is the index of Sunday, 1 is the index of Monday, etc.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param day - The day of the ISO week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the day of the ISO week set\n *\n * @example\n * // Set Sunday to 1 September 2014:\n * const result = setISODay(new Date(2014, 8, 1), 7)\n * //=> Sun Sep 07 2014 00:00:00\n */\nexport function setISODay(date, day, options) {\n const date_ = toDate(date, options?.in);\n const currentDay = getISODay(date_, options);\n const diff = day - currentDay;\n return addDays(date_, diff, options);\n}\n\n// Fallback for modularized imports:\nexport default setISODay;\n","import { setISODay } from \"../../../setISODay.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits } from \"../utils.js\";\n\n// ISO day of week\nexport class ISODayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => {\n if (value === 0) {\n return 7;\n }\n return value;\n };\n\n switch (token) {\n // 2\n case \"i\":\n case \"ii\": // 02\n return parseNDigits(token.length, dateString);\n // 2nd\n case \"io\":\n return match.ordinalNumber(dateString, { unit: \"day\" });\n // Tue\n case \"iii\":\n return mapValue(\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // T\n case \"iiiii\":\n return mapValue(\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // Tu\n case \"iiiiii\":\n return mapValue(\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // Tuesday\n case \"iiii\":\n default:\n return mapValue(\n match.day(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 7;\n }\n\n set(date, _flags, value) {\n date = setISODay(date, value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"Y\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"E\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { dayPeriodEnumToHours } from \"../utils.js\";\n\nexport class AMPMParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"a\":\n case \"aa\":\n case \"aaa\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"aaaaa\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"b\", \"B\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { dayPeriodEnumToHours } from \"../utils.js\";\n\nexport class AMPMMidnightParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"b\":\n case \"bb\":\n case \"bbb\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"bbbbb\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"B\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { dayPeriodEnumToHours } from \"../utils.js\";\n\n// in the morning, in the afternoon, in the evening, at night\nexport class DayPeriodParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"BBBBB\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class Hour1to12Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"h\":\n return parseNumericPattern(numericPatterns.hour12h, dateString);\n case \"ho\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 12;\n }\n\n set(date, _flags, value) {\n const isPM = date.getHours() >= 12;\n if (isPM && value < 12) {\n date.setHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setHours(0, 0, 0, 0);\n } else {\n date.setHours(value, 0, 0, 0);\n }\n return date;\n }\n\n incompatibleTokens = [\"H\", \"K\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class Hour0to23Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"H\":\n return parseNumericPattern(numericPatterns.hour23h, dateString);\n case \"Ho\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 23;\n }\n\n set(date, _flags, value) {\n date.setHours(value, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"h\", \"K\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class Hour0To11Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"K\":\n return parseNumericPattern(numericPatterns.hour11h, dateString);\n case \"Ko\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n const isPM = date.getHours() >= 12;\n if (isPM && value < 12) {\n date.setHours(value + 12, 0, 0, 0);\n } else {\n date.setHours(value, 0, 0, 0);\n }\n return date;\n }\n\n incompatibleTokens = [\"h\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class Hour1To24Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"k\":\n return parseNumericPattern(numericPatterns.hour24h, dateString);\n case \"ko\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 24;\n }\n\n set(date, _flags, value) {\n const hours = value <= 24 ? value % 24 : value;\n date.setHours(hours, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"h\", \"H\", \"K\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class MinuteParser extends Parser {\n priority = 60;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"m\":\n return parseNumericPattern(numericPatterns.minute, dateString);\n case \"mo\":\n return match.ordinalNumber(dateString, { unit: \"minute\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n\n set(date, _flags, value) {\n date.setMinutes(value, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class SecondParser extends Parser {\n priority = 50;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"s\":\n return parseNumericPattern(numericPatterns.second, dateString);\n case \"so\":\n return match.ordinalNumber(dateString, { unit: \"second\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n\n set(date, _flags, value) {\n date.setSeconds(value, 0);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits } from \"../utils.js\";\n\nexport class FractionOfSecondParser extends Parser {\n priority = 30;\n\n parse(dateString, token) {\n const valueCallback = (value) =>\n Math.trunc(value * Math.pow(10, -token.length + 3));\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n\n set(date, _flags, value) {\n date.setMilliseconds(value);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { constructFrom } from \"../../../constructFrom.js\";\nimport { getTimezoneOffsetInMilliseconds } from \"../../../_lib/getTimezoneOffsetInMilliseconds.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseTimezonePattern } from \"../utils.js\";\n\n// Timezone (ISO-8601. +00:00 is `'Z'`)\nexport class ISOTimezoneWithZParser extends Parser {\n priority = 10;\n\n parse(dateString, token) {\n switch (token) {\n case \"X\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalMinutes,\n dateString,\n );\n case \"XX\":\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case \"XXXX\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalSeconds,\n dateString,\n );\n case \"XXXXX\":\n return parseTimezonePattern(\n timezonePatterns.extendedOptionalSeconds,\n dateString,\n );\n case \"XXX\":\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n\n set(date, flags, value) {\n if (flags.timestampIsSet) return date;\n return constructFrom(\n date,\n date.getTime() - getTimezoneOffsetInMilliseconds(date) - value,\n );\n }\n\n incompatibleTokens = [\"t\", \"T\", \"x\"];\n}\n","import { constructFrom } from \"../../../constructFrom.js\";\nimport { getTimezoneOffsetInMilliseconds } from \"../../../_lib/getTimezoneOffsetInMilliseconds.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseTimezonePattern } from \"../utils.js\";\n\n// Timezone (ISO-8601)\nexport class ISOTimezoneParser extends Parser {\n priority = 10;\n\n parse(dateString, token) {\n switch (token) {\n case \"x\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalMinutes,\n dateString,\n );\n case \"xx\":\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case \"xxxx\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalSeconds,\n dateString,\n );\n case \"xxxxx\":\n return parseTimezonePattern(\n timezonePatterns.extendedOptionalSeconds,\n dateString,\n );\n case \"xxx\":\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n\n set(date, flags, value) {\n if (flags.timestampIsSet) return date;\n return constructFrom(\n date,\n date.getTime() - getTimezoneOffsetInMilliseconds(date) - value,\n );\n }\n\n incompatibleTokens = [\"t\", \"T\", \"X\"];\n}\n","import { constructFrom } from \"../../../constructFrom.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseAnyDigitsSigned } from \"../utils.js\";\n\nexport class TimestampSecondsParser extends Parser {\n priority = 40;\n\n parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n\n set(date, _flags, value) {\n return [constructFrom(date, value * 1000), { timestampIsSet: true }];\n }\n\n incompatibleTokens = \"*\";\n}\n","import { constructFrom } from \"../../../constructFrom.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseAnyDigitsSigned } from \"../utils.js\";\n\nexport class TimestampMillisecondsParser extends Parser {\n priority = 20;\n\n parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n\n set(date, _flags, value) {\n return [constructFrom(date, value), { timestampIsSet: true }];\n }\n\n incompatibleTokens = \"*\";\n}\n","import { EraParser } from \"./parsers/EraParser.js\";\nimport { YearParser } from \"./parsers/YearParser.js\";\nimport { LocalWeekYearParser } from \"./parsers/LocalWeekYearParser.js\";\nimport { ISOWeekYearParser } from \"./parsers/ISOWeekYearParser.js\";\nimport { ExtendedYearParser } from \"./parsers/ExtendedYearParser.js\";\nimport { QuarterParser } from \"./parsers/QuarterParser.js\";\nimport { StandAloneQuarterParser } from \"./parsers/StandAloneQuarterParser.js\";\nimport { MonthParser } from \"./parsers/MonthParser.js\";\nimport { StandAloneMonthParser } from \"./parsers/StandAloneMonthParser.js\";\nimport { LocalWeekParser } from \"./parsers/LocalWeekParser.js\";\nimport { ISOWeekParser } from \"./parsers/ISOWeekParser.js\";\nimport { DateParser } from \"./parsers/DateParser.js\";\nimport { DayOfYearParser } from \"./parsers/DayOfYearParser.js\";\nimport { DayParser } from \"./parsers/DayParser.js\";\nimport { LocalDayParser } from \"./parsers/LocalDayParser.js\";\nimport { StandAloneLocalDayParser } from \"./parsers/StandAloneLocalDayParser.js\";\nimport { ISODayParser } from \"./parsers/ISODayParser.js\";\nimport { AMPMParser } from \"./parsers/AMPMParser.js\";\nimport { AMPMMidnightParser } from \"./parsers/AMPMMidnightParser.js\";\nimport { DayPeriodParser } from \"./parsers/DayPeriodParser.js\";\nimport { Hour1to12Parser } from \"./parsers/Hour1to12Parser.js\";\nimport { Hour0to23Parser } from \"./parsers/Hour0to23Parser.js\";\nimport { Hour0To11Parser } from \"./parsers/Hour0To11Parser.js\";\nimport { Hour1To24Parser } from \"./parsers/Hour1To24Parser.js\";\nimport { MinuteParser } from \"./parsers/MinuteParser.js\";\nimport { SecondParser } from \"./parsers/SecondParser.js\";\nimport { FractionOfSecondParser } from \"./parsers/FractionOfSecondParser.js\";\nimport { ISOTimezoneWithZParser } from \"./parsers/ISOTimezoneWithZParser.js\";\nimport { ISOTimezoneParser } from \"./parsers/ISOTimezoneParser.js\";\nimport { TimestampSecondsParser } from \"./parsers/TimestampSecondsParser.js\";\nimport { TimestampMillisecondsParser } from \"./parsers/TimestampMillisecondsParser.js\";\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\nexport const parsers = {\n G: new EraParser(),\n y: new YearParser(),\n Y: new LocalWeekYearParser(),\n R: new ISOWeekYearParser(),\n u: new ExtendedYearParser(),\n Q: new QuarterParser(),\n q: new StandAloneQuarterParser(),\n M: new MonthParser(),\n L: new StandAloneMonthParser(),\n w: new LocalWeekParser(),\n I: new ISOWeekParser(),\n d: new DateParser(),\n D: new DayOfYearParser(),\n E: new DayParser(),\n e: new LocalDayParser(),\n c: new StandAloneLocalDayParser(),\n i: new ISODayParser(),\n a: new AMPMParser(),\n b: new AMPMMidnightParser(),\n B: new DayPeriodParser(),\n h: new Hour1to12Parser(),\n H: new Hour0to23Parser(),\n K: new Hour0To11Parser(),\n k: new Hour1To24Parser(),\n m: new MinuteParser(),\n s: new SecondParser(),\n S: new FractionOfSecondParser(),\n X: new ISOTimezoneWithZParser(),\n x: new ISOTimezoneParser(),\n t: new TimestampSecondsParser(),\n T: new TimestampMillisecondsParser(),\n};\n","import { defaultLocale } from \"./_lib/defaultLocale.js\";\nimport { longFormatters } from \"./_lib/format/longFormatters.js\";\nimport {\n isProtectedDayOfYearToken,\n isProtectedWeekYearToken,\n warnOrThrowProtectedError,\n} from \"./_lib/protectedTokens.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { getDefaultOptions } from \"./getDefaultOptions.js\";\nimport { toDate } from \"./toDate.js\";\n\nimport { DateTimezoneSetter } from \"./parse/_lib/Setter.js\";\nimport { parsers } from \"./parse/_lib/parsers.js\";\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\nexport { longFormatters, parsers };\n\n/**\n * The {@link parse} function options.\n */\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp =\n /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\n\nconst notWhitespaceRegExp = /\\S/;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Sun | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangeably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear](https://date-fns.org/docs/setISOWeekYear)\n * and [setWeekYear](https://date-fns.org/docs/setWeekYear)).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 7. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param dateStr - The string to parse\n * @param formatStr - The string of tokens\n * @param referenceDate - defines values missing from the parsed dateString\n * @param options - An object with options.\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @returns The parsed date\n *\n * @throws `options.locale` must contain `match` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\nexport function parse(dateStr, formatStr, referenceDate, options) {\n const invalidDate = () => constructFrom(options?.in || referenceDate, NaN);\n const defaultOptions = getDefaultOptions();\n const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n if (!formatStr)\n return dateStr ? invalidDate() : toDate(referenceDate, options?.in);\n\n const subFnOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n // If timezone isn't specified, it will try to use the context or\n // the reference date and fallback to the system time zone.\n const setters = [new DateTimezoneSetter(options?.in, referenceDate)];\n\n const tokens = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter in longFormatters) {\n const longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp);\n\n const usedTokens = [];\n\n for (let token of tokens) {\n if (\n !options?.useAdditionalWeekYearTokens &&\n isProtectedWeekYearToken(token)\n ) {\n warnOrThrowProtectedError(token, formatStr, dateStr);\n }\n if (\n !options?.useAdditionalDayOfYearTokens &&\n isProtectedDayOfYearToken(token)\n ) {\n warnOrThrowProtectedError(token, formatStr, dateStr);\n }\n\n const firstCharacter = token[0];\n const parser = parsers[firstCharacter];\n if (parser) {\n const { incompatibleTokens } = parser;\n if (Array.isArray(incompatibleTokens)) {\n const incompatibleToken = usedTokens.find(\n (usedToken) =>\n incompatibleTokens.includes(usedToken.token) ||\n usedToken.token === firstCharacter,\n );\n if (incompatibleToken) {\n throw new RangeError(\n `The format string mustn't contain \\`${incompatibleToken.fullToken}\\` and \\`${token}\\` at the same time`,\n );\n }\n } else if (parser.incompatibleTokens === \"*\" && usedTokens.length > 0) {\n throw new RangeError(\n `The format string mustn't contain \\`${token}\\` and any other token at the same time`,\n );\n }\n\n usedTokens.push({ token: firstCharacter, fullToken: token });\n\n const parseResult = parser.run(\n dateStr,\n token,\n locale.match,\n subFnOptions,\n );\n\n if (!parseResult) {\n return invalidDate();\n }\n\n setters.push(parseResult.setter);\n\n dateStr = parseResult.rest;\n } else {\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n // Replace two single quote characters with one single quote character\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n }\n\n // Cut token from string, or, if string doesn't match the token, return Invalid Date\n if (dateStr.indexOf(token) === 0) {\n dateStr = dateStr.slice(token.length);\n } else {\n return invalidDate();\n }\n }\n }\n\n // Check if the remaining input contains something other than whitespace\n if (dateStr.length > 0 && notWhitespaceRegExp.test(dateStr)) {\n return invalidDate();\n }\n\n const uniquePrioritySetters = setters\n .map((setter) => setter.priority)\n .sort((a, b) => b - a)\n .filter((priority, index, array) => array.indexOf(priority) === index)\n .map((priority) =>\n setters\n .filter((setter) => setter.priority === priority)\n .sort((a, b) => b.subPriority - a.subPriority),\n )\n .map((setterArray) => setterArray[0]);\n\n let date = toDate(referenceDate, options?.in);\n\n if (isNaN(+date)) return invalidDate();\n\n const flags = {};\n for (const setter of uniquePrioritySetters) {\n if (!setter.validate(date, subFnOptions)) {\n return invalidDate();\n }\n\n const result = setter.set(date, flags, subFnOptions);\n // Result is tuple (date, flags)\n if (Array.isArray(result)) {\n date = result[0];\n Object.assign(flags, result[1]);\n // Result is date\n } else {\n date = result;\n }\n }\n\n return date;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default parse;\n","import { normalizeDates } from \"./_lib/normalizeDates.js\";\nimport { startOfQuarter } from \"./startOfQuarter.js\";\n\n/**\n * The {@link isSameQuarter} function options.\n */\n\n/**\n * @name isSameQuarter\n * @category Quarter Helpers\n * @summary Are the given dates in the same quarter (and year)?\n *\n * @description\n * Are the given dates in the same quarter (and year)?\n *\n * @param laterDate - The first date to check\n * @param earlierDate - The second date to check\n * @param options - An object with options\n *\n * @returns The dates are in the same quarter (and year)\n *\n * @example\n * // Are 1 January 2014 and 8 March 2014 in the same quarter?\n * const result = isSameQuarter(new Date(2014, 0, 1), new Date(2014, 2, 8))\n * //=> true\n *\n * @example\n * // Are 1 January 2014 and 1 January 2015 in the same quarter?\n * const result = isSameQuarter(new Date(2014, 0, 1), new Date(2015, 0, 1))\n * //=> false\n */\nexport function isSameQuarter(laterDate, earlierDate, options) {\n const [dateLeft_, dateRight_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n return +startOfQuarter(dateLeft_) === +startOfQuarter(dateRight_);\n}\n\n// Fallback for modularized imports:\nexport default isSameQuarter;\n","import { addDays } from \"./addDays.js\";\n\n/**\n * The {@link subDays} function options.\n */\n\n/**\n * @name subDays\n * @category Day Helpers\n * @summary Subtract the specified number of days from the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of days to be subtracted.\n * @param options - An object with options\n *\n * @returns The new date with the days subtracted\n *\n * @example\n * // Subtract 10 days from 1 September 2014:\n * const result = subDays(new Date(2014, 8, 1), 10)\n * //=> Fri Aug 22 2014 00:00:00\n */\nexport function subDays(date, amount, options) {\n return addDays(date, -amount, options);\n}\n\n// Fallback for modularized imports:\nexport default subDays;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { getDaysInMonth } from \"./getDaysInMonth.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setMonth} function options.\n */\n\n/**\n * @name setMonth\n * @category Month Helpers\n * @summary Set the month to the given date.\n *\n * @description\n * Set the month to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param month - The month index to set (0-11)\n * @param options - The options\n *\n * @returns The new date with the month set\n *\n * @example\n * // Set February to 1 September 2014:\n * const result = setMonth(new Date(2014, 8, 1), 1)\n * //=> Sat Feb 01 2014 00:00:00\n */\nexport function setMonth(date, month, options) {\n const _date = toDate(date, options?.in);\n const year = _date.getFullYear();\n const day = _date.getDate();\n\n const midMonth = constructFrom(options?.in || date, 0);\n midMonth.setFullYear(year, month, 15);\n midMonth.setHours(0, 0, 0, 0);\n const daysInMonth = getDaysInMonth(midMonth);\n\n // Set the earlier date, allows to wrap Jan 31 to Feb 28\n _date.setMonth(month, Math.min(day, daysInMonth));\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setMonth;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { setMonth } from \"./setMonth.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link set} function options.\n */\n\n/**\n * @name set\n * @category Common Helpers\n * @summary Set date values to a given date.\n *\n * @description\n * Set date values to a given date.\n *\n * Sets time values to date from object `values`.\n * A value is not set if it is undefined or null or doesn't exist in `values`.\n *\n * Note about bundle size: `set` does not internally use `setX` functions from date-fns but instead opts\n * to use native `Date#setX` methods. If you use this function, you may not want to include the\n * other `setX` functions that date-fns provides if you are concerned about the bundle size.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param values - The date values to be set\n * @param options - The options\n *\n * @returns The new date with options set\n *\n * @example\n * // Transform 1 September 2014 into 20 October 2015 in a single line:\n * const result = set(new Date(2014, 8, 20), { year: 2015, month: 9, date: 20 })\n * //=> Tue Oct 20 2015 00:00:00\n *\n * @example\n * // Set 12 PM to 1 September 2014 01:23:45 to 1 September 2014 12:00:00:\n * const result = set(new Date(2014, 8, 1, 1, 23, 45), { hours: 12 })\n * //=> Mon Sep 01 2014 12:23:45\n */\nexport function set(date, values, options) {\n let _date = toDate(date, options?.in);\n\n // Check if date is Invalid Date because Date.prototype.setFullYear ignores the value of Invalid Date\n if (isNaN(+_date)) return constructFrom(options?.in || date, NaN);\n\n if (values.year != null) _date.setFullYear(values.year);\n if (values.month != null) _date = setMonth(_date, values.month);\n if (values.date != null) _date.setDate(values.date);\n if (values.hours != null) _date.setHours(values.hours);\n if (values.minutes != null) _date.setMinutes(values.minutes);\n if (values.seconds != null) _date.setSeconds(values.seconds);\n if (values.milliseconds != null) _date.setMilliseconds(values.milliseconds);\n\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default set;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setHours} function options.\n */\n\n/**\n * @name setHours\n * @category Hour Helpers\n * @summary Set the hours to the given date.\n *\n * @description\n * Set the hours to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param hours - The hours of the new date\n * @param options - An object with options\n *\n * @returns The new date with the hours set\n *\n * @example\n * // Set 4 hours to 1 September 2014 11:30:00:\n * const result = setHours(new Date(2014, 8, 1, 11, 30), 4)\n * //=> Mon Sep 01 2014 04:30:00\n */\nexport function setHours(date, hours, options) {\n const _date = toDate(date, options?.in);\n _date.setHours(hours);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setHours;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setMilliseconds} function options.\n */\n\n/**\n * @name setMilliseconds\n * @category Millisecond Helpers\n * @summary Set the milliseconds to the given date.\n *\n * @description\n * Set the milliseconds to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param milliseconds - The milliseconds of the new date\n * @param options - The options\n *\n * @returns The new date with the milliseconds set\n *\n * @example\n * // Set 300 milliseconds to 1 September 2014 11:30:40.500:\n * const result = setMilliseconds(new Date(2014, 8, 1, 11, 30, 40, 500), 300)\n * //=> Mon Sep 01 2014 11:30:40.300\n */\nexport function setMilliseconds(date, milliseconds, options) {\n const _date = toDate(date, options?.in);\n _date.setMilliseconds(milliseconds);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setMilliseconds;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setMinutes} function options.\n */\n\n/**\n * @name setMinutes\n * @category Minute Helpers\n * @summary Set the minutes to the given date.\n *\n * @description\n * Set the minutes to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows using extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, returned from the context function, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param minutes - The minutes of the new date\n * @param options - An object with options\n *\n * @returns The new date with the minutes set\n *\n * @example\n * // Set 45 minutes to 1 September 2014 11:30:40:\n * const result = setMinutes(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:45:40\n */\nexport function setMinutes(date, minutes, options) {\n const date_ = toDate(date, options?.in);\n date_.setMinutes(minutes);\n return date_;\n}\n\n// Fallback for modularized imports:\nexport default setMinutes;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setSeconds} function options.\n */\n\n/**\n * @name setSeconds\n * @category Second Helpers\n * @summary Set the seconds to the given date, with context support.\n *\n * @description\n * Set the seconds to the given date, with an optional context for time zone specification.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param seconds - The seconds of the new date\n * @param options - An object with options\n *\n * @returns The new date with the seconds set\n *\n * @example\n * // Set 45 seconds to 1 September 2014 11:30:40:\n * const result = setSeconds(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:30:45\n */\nexport function setSeconds(date, seconds, options) {\n const _date = toDate(date, options?.in);\n _date.setSeconds(seconds);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setSeconds;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setYear} function options.\n */\n\n/**\n * @name setYear\n * @category Year Helpers\n * @summary Set the year to the given date.\n *\n * @description\n * Set the year to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param year - The year of the new date\n * @param options - An object with options.\n *\n * @returns The new date with the year set\n *\n * @example\n * // Set year 2013 to 1 September 2014:\n * const result = setYear(new Date(2014, 8, 1), 2013)\n * //=> Sun Sep 01 2013 00:00:00\n */\nexport function setYear(date, year, options) {\n const date_ = toDate(date, options?.in);\n\n // Check if date is Invalid Date because Date.prototype.setFullYear ignores the value of Invalid Date\n if (isNaN(+date_)) return constructFrom(options?.in || date, NaN);\n\n date_.setFullYear(year);\n return date_;\n}\n\n// Fallback for modularized imports:\nexport default setYear;\n","import { addMonths } from \"./addMonths.js\";\n\n/**\n * The subMonths function options.\n */\n\n/**\n * @name subMonths\n * @category Month Helpers\n * @summary Subtract the specified number of months from the given date.\n *\n * @description\n * Subtract the specified number of months from the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of months to be subtracted.\n * @param options - An object with options\n *\n * @returns The new date with the months subtracted\n *\n * @example\n * // Subtract 5 months from 1 February 2015:\n * const result = subMonths(new Date(2015, 1, 1), 5)\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function subMonths(date, amount, options) {\n return addMonths(date, -amount, options);\n}\n\n// Fallback for modularized imports:\nexport default subMonths;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { subDays } from \"./subDays.js\";\nimport { subMonths } from \"./subMonths.js\";\n\n/**\n * The {@link sub} function options.\n */\n\n/**\n * @name sub\n * @category Common Helpers\n * @summary Subtract the specified years, months, weeks, days, hours, minutes and seconds from the given date.\n *\n * @description\n * Subtract the specified years, months, weeks, days, hours, minutes and seconds from the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param duration - The object with years, months, weeks, days, hours, minutes and seconds to be subtracted\n * @param options - An object with options\n *\n * | Key | Description |\n * |---------|------------------------------------|\n * | years | Amount of years to be subtracted |\n * | months | Amount of months to be subtracted |\n * | weeks | Amount of weeks to be subtracted |\n * | days | Amount of days to be subtracted |\n * | hours | Amount of hours to be subtracted |\n * | minutes | Amount of minutes to be subtracted |\n * | seconds | Amount of seconds to be subtracted |\n *\n * All values default to 0\n *\n * @returns The new date with the seconds subtracted\n *\n * @example\n * // Subtract the following duration from 15 June 2017 15:29:20\n * const result = sub(new Date(2017, 5, 15, 15, 29, 20), {\n * years: 2,\n * months: 9,\n * weeks: 1,\n * days: 7,\n * hours: 5,\n * minutes: 9,\n * seconds: 30\n * })\n * //=> Mon Sep 1 2014 10:19:50\n */\nexport function sub(date, duration, options) {\n const {\n years = 0,\n months = 0,\n weeks = 0,\n days = 0,\n hours = 0,\n minutes = 0,\n seconds = 0,\n } = duration;\n\n const withoutMonths = subMonths(date, months + years * 12, options);\n const withoutDays = subDays(withoutMonths, days + weeks * 7, options);\n\n const minutesToSub = minutes + hours * 60;\n const secondsToSub = seconds + minutesToSub * 60;\n const msToSub = secondsToSub * 1000;\n\n return constructFrom(options?.in || date, +withoutDays - msToSub);\n}\n\n// Fallback for modularized imports:\nexport default sub;\n","import { addYears } from \"./addYears.js\";\n\n/**\n * The {@link subYears} function options.\n */\n\n/**\n * @name subYears\n * @category Year Helpers\n * @summary Subtract the specified number of years from the given date.\n *\n * @description\n * Subtract the specified number of years from the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of years to be subtracted.\n * @param options - An object with options\n *\n * @returns The new date with the years subtracted\n *\n * @example\n * // Subtract 5 years from 1 September 2014:\n * const result = subYears(new Date(2014, 8, 1), 5)\n * //=> Tue Sep 01 2009 00:00:00\n */\nexport function subYears(date, amount, options) {\n return addYears(date, -amount, options);\n}\n\n// Fallback for modularized imports:\nexport default subYears;\n","import { useAttrs as Jn, createElementBlock as W, openBlock as w, createElementVNode as he, unref as s, reactive as ea, computed as j, ref as Z, toRef as qt, watch as rt, defineComponent as We, onMounted as Ue, onUnmounted as Ut, renderSlot as ie, normalizeProps as ze, mergeProps as He, Fragment as ke, createCommentVNode as Q, normalizeStyle as lt, createTextVNode as gt, toDisplayString as Ke, onBeforeUpdate as Zn, nextTick as at, withModifiers as Xt, normalizeClass as De, withDirectives as ua, renderList as Ce, vShow as ia, createVNode as tt, createBlock as Te, withCtx as we, withKeys as xn, Transition as Vt, createSlots as Ge, useSlots as Yt, guardReactiveProps as Je, resolveDynamicComponent as fa, toValue as el, h as tl, render as nn, getCurrentScope as al, onScopeDispose as nl, getCurrentInstance as ll, isRef as ln, Teleport as rl } from \"vue\";\nimport { format as ft, isEqual as Nt, isValid as da, addMonths as Ct, subMonths as Jt, getMonth as Me, getYear as ye, set as Se, startOfMonth as ol, setMonth as sl, setYear as ut, isAfter as _t, isBefore as Ft, eachDayOfInterval as bn, getSeconds as zt, getMinutes as $t, getHours as yt, startOfWeek as Wa, endOfWeek as kn, setHours as ul, setMinutes as il, setSeconds as wn, setMilliseconds as Dn, parse as Na, isDate as dl, subDays as cl, addDays as kt, addHours as fl, addYears as Mn, subYears as $n, endOfYear as An, startOfYear as Gt, differenceInYears as vl, add as Tn, sub as ml, getWeek as pl, getISOWeek as gl, isSameQuarter as rn, eachQuarterOfInterval as yl, startOfQuarter as hl, endOfQuarter as on, getQuarter as sn, differenceInCalendarDays as bl, getDay as kl } from \"date-fns\";\nfunction jt() {\n const e = Jn();\n return w(), W(\n \"svg\",\n {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n class: \"dp__icon\",\n role: \"img\",\n ...e\n },\n [\n he(\"path\", {\n d: \"M29.333 8c0-2.208-1.792-4-4-4h-18.667c-2.208 0-4 1.792-4 4v18.667c0 2.208 1.792 4 4 4h18.667c2.208 0 4-1.792 4-4v-18.667zM26.667 8v18.667c0 0.736-0.597 1.333-1.333 1.333 0 0-18.667 0-18.667 0-0.736 0-1.333-0.597-1.333-1.333 0 0 0-18.667 0-18.667 0-0.736 0.597-1.333 1.333-1.333 0 0 18.667 0 18.667 0 0.736 0 1.333 0.597 1.333 1.333z\"\n }),\n he(\"path\", {\n d: \"M20 2.667v5.333c0 0.736 0.597 1.333 1.333 1.333s1.333-0.597 1.333-1.333v-5.333c0-0.736-0.597-1.333-1.333-1.333s-1.333 0.597-1.333 1.333z\"\n }),\n he(\"path\", {\n d: \"M9.333 2.667v5.333c0 0.736 0.597 1.333 1.333 1.333s1.333-0.597 1.333-1.333v-5.333c0-0.736-0.597-1.333-1.333-1.333s-1.333 0.597-1.333 1.333z\"\n }),\n he(\"path\", {\n d: \"M4 14.667h24c0.736 0 1.333-0.597 1.333-1.333s-0.597-1.333-1.333-1.333h-24c-0.736 0-1.333 0.597-1.333 1.333s0.597 1.333 1.333 1.333z\"\n })\n ]\n );\n}\njt.compatConfig = {\n MODE: 3\n};\nfunction Sn() {\n return w(), W(\n \"svg\",\n {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n class: \"dp__icon\",\n role: \"img\"\n },\n [\n he(\"path\", {\n d: \"M23.057 7.057l-16 16c-0.52 0.52-0.52 1.365 0 1.885s1.365 0.52 1.885 0l16-16c0.52-0.52 0.52-1.365 0-1.885s-1.365-0.52-1.885 0z\"\n }),\n he(\"path\", {\n d: \"M7.057 8.943l16 16c0.52 0.52 1.365 0.52 1.885 0s0.52-1.365 0-1.885l-16-16c-0.52-0.52-1.365-0.52-1.885 0s-0.52 1.365 0 1.885z\"\n })\n ]\n );\n}\nSn.compatConfig = {\n MODE: 3\n};\nfunction Ua() {\n return w(), W(\n \"svg\",\n {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n class: \"dp__icon\",\n role: \"img\"\n },\n [\n he(\"path\", {\n d: \"M20.943 23.057l-7.057-7.057c0 0 7.057-7.057 7.057-7.057 0.52-0.52 0.52-1.365 0-1.885s-1.365-0.52-1.885 0l-8 8c-0.521 0.521-0.521 1.365 0 1.885l8 8c0.52 0.52 1.365 0.52 1.885 0s0.52-1.365 0-1.885z\"\n })\n ]\n );\n}\nUa.compatConfig = {\n MODE: 3\n};\nfunction Va() {\n return w(), W(\n \"svg\",\n {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n class: \"dp__icon\",\n role: \"img\"\n },\n [\n he(\"path\", {\n d: \"M12.943 24.943l8-8c0.521-0.521 0.521-1.365 0-1.885l-8-8c-0.52-0.52-1.365-0.52-1.885 0s-0.52 1.365 0 1.885l7.057 7.057c0 0-7.057 7.057-7.057 7.057-0.52 0.52-0.52 1.365 0 1.885s1.365 0.52 1.885 0z\"\n })\n ]\n );\n}\nVa.compatConfig = {\n MODE: 3\n};\nfunction ja() {\n return w(), W(\n \"svg\",\n {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n class: \"dp__icon\",\n role: \"img\"\n },\n [\n he(\"path\", {\n d: \"M16 1.333c-8.095 0-14.667 6.572-14.667 14.667s6.572 14.667 14.667 14.667c8.095 0 14.667-6.572 14.667-14.667s-6.572-14.667-14.667-14.667zM16 4c6.623 0 12 5.377 12 12s-5.377 12-12 12c-6.623 0-12-5.377-12-12s5.377-12 12-12z\"\n }),\n he(\"path\", {\n d: \"M14.667 8v8c0 0.505 0.285 0.967 0.737 1.193l5.333 2.667c0.658 0.329 1.46 0.062 1.789-0.596s0.062-1.46-0.596-1.789l-4.596-2.298c0 0 0-7.176 0-7.176 0-0.736-0.597-1.333-1.333-1.333s-1.333 0.597-1.333 1.333z\"\n })\n ]\n );\n}\nja.compatConfig = {\n MODE: 3\n};\nfunction Ka() {\n return w(), W(\n \"svg\",\n {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n class: \"dp__icon\",\n role: \"img\"\n },\n [\n he(\"path\", {\n d: \"M24.943 19.057l-8-8c-0.521-0.521-1.365-0.521-1.885 0l-8 8c-0.52 0.52-0.52 1.365 0 1.885s1.365 0.52 1.885 0l7.057-7.057c0 0 7.057 7.057 7.057 7.057 0.52 0.52 1.365 0.52 1.885 0s0.52-1.365 0-1.885z\"\n })\n ]\n );\n}\nKa.compatConfig = {\n MODE: 3\n};\nfunction Ga() {\n return w(), W(\n \"svg\",\n {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n class: \"dp__icon\",\n role: \"img\"\n },\n [\n he(\"path\", {\n d: \"M7.057 12.943l8 8c0.521 0.521 1.365 0.521 1.885 0l8-8c0.52-0.52 0.52-1.365 0-1.885s-1.365-0.52-1.885 0l-7.057 7.057c0 0-7.057-7.057-7.057-7.057-0.52-0.52-1.365-0.52-1.885 0s-0.52 1.365 0 1.885z\"\n })\n ]\n );\n}\nGa.compatConfig = {\n MODE: 3\n};\nconst Ze = (e, t) => t ? new Date(e.toLocaleString(\"en-US\", { timeZone: t })) : new Date(e), Qa = (e, t, l) => {\n const n = La(e, t, l);\n return n || H();\n}, wl = (e, t, l) => {\n const n = t.dateInTz ? Ze(new Date(e), t.dateInTz) : H(e);\n return l ? Fe(n, !0) : n;\n}, La = (e, t, l) => {\n if (!e) return null;\n const n = l ? Fe(H(e), !0) : H(e);\n return t ? t.exactMatch ? wl(e, t, l) : Ze(n, t.timezone) : n;\n}, Dl = (e) => {\n const l = new Date(e.getFullYear(), 0, 1).getTimezoneOffset();\n return e.getTimezoneOffset() < l;\n}, Ml = (e, t) => {\n if (!e) return 0;\n const l = /* @__PURE__ */ new Date(), n = new Date(l.toLocaleString(\"en-US\", { timeZone: \"UTC\" })), a = new Date(l.toLocaleString(\"en-US\", { timeZone: e })), i = (Dl(t ?? a) ? a : t ?? a).getTimezoneOffset() / 60;\n return (+n - +a) / (1e3 * 60 * 60) - i;\n};\nvar ot = /* @__PURE__ */ ((e) => (e.month = \"month\", e.year = \"year\", e))(ot || {}), st = /* @__PURE__ */ ((e) => (e.top = \"top\", e.bottom = \"bottom\", e))(st || {}), Ot = /* @__PURE__ */ ((e) => (e.header = \"header\", e.calendar = \"calendar\", e.timePicker = \"timePicker\", e))(Ot || {}), je = /* @__PURE__ */ ((e) => (e.month = \"month\", e.year = \"year\", e.calendar = \"calendar\", e.time = \"time\", e.minutes = \"minutes\", e.hours = \"hours\", e.seconds = \"seconds\", e))(je || {});\nconst $l = [\"timestamp\", \"date\", \"iso\"];\nvar Qe = /* @__PURE__ */ ((e) => (e.up = \"up\", e.down = \"down\", e.left = \"left\", e.right = \"right\", e))(Qe || {}), Re = /* @__PURE__ */ ((e) => (e.arrowUp = \"ArrowUp\", e.arrowDown = \"ArrowDown\", e.arrowLeft = \"ArrowLeft\", e.arrowRight = \"ArrowRight\", e.enter = \"Enter\", e.space = \" \", e.esc = \"Escape\", e.tab = \"Tab\", e.home = \"Home\", e.end = \"End\", e.pageUp = \"PageUp\", e.pageDown = \"PageDown\", e))(Re || {}), Lt = /* @__PURE__ */ ((e) => (e.MONTH_AND_YEAR = \"MM-yyyy\", e.YEAR = \"yyyy\", e.DATE = \"dd-MM-yyyy\", e))(Lt || {});\nfunction un(e) {\n return (t) => {\n const l = new Intl.DateTimeFormat(e, {\n weekday: \"short\",\n timeZone: \"UTC\"\n }).format(/* @__PURE__ */ new Date(`2017-01-0${t}T00:00:00+00:00`));\n return e === \"ar\" ? l.slice(2, 5) : l.slice(0, 2);\n };\n}\nfunction Al(e) {\n return (t) => ft(Ze(/* @__PURE__ */ new Date(`2017-01-0${t}T00:00:00+00:00`), \"UTC\"), \"EEEEEE\", { locale: e });\n}\nconst Tl = (e, t, l) => {\n const n = [1, 2, 3, 4, 5, 6, 7];\n let a;\n if (e !== null)\n try {\n a = n.map(Al(e));\n } catch {\n a = n.map(un(t));\n }\n else\n a = n.map(un(t));\n const f = a.slice(0, l), i = a.slice(l + 1, a.length);\n return [a[l]].concat(...i).concat(...f);\n}, qa = (e, t, l) => {\n const n = [];\n for (let a = +e[0]; a <= +e[1]; a++)\n n.push({ value: +a, text: Ja(a, t) });\n return l ? n.reverse() : n;\n}, Pn = (e, t, l) => {\n const n = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12].map((f) => {\n const i = f < 10 ? `0${f}` : f;\n return /* @__PURE__ */ new Date(`2017-${i}-01T00:00:00+00:00`);\n });\n if (e !== null)\n try {\n const f = l === \"long\" ? \"LLLL\" : \"LLL\";\n return n.map((i, g) => {\n const d = ft(Ze(i, \"UTC\"), f, { locale: e });\n return {\n text: d.charAt(0).toUpperCase() + d.substring(1),\n value: g\n };\n });\n } catch {\n }\n const a = new Intl.DateTimeFormat(t, { month: l, timeZone: \"UTC\" });\n return n.map((f, i) => {\n const g = a.format(f);\n return {\n text: g.charAt(0).toUpperCase() + g.substring(1),\n value: i\n };\n });\n}, Sl = (e) => [12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11][e], Le = (e) => {\n const t = s(e);\n return t?.$el ? t?.$el : t;\n}, Pl = (e) => ({ type: \"dot\", ...e ?? {} }), Rn = (e) => Array.isArray(e) ? !!e[0] && !!e[1] : !1, Xa = {\n prop: (e) => `\"${e}\" prop must be enabled!`,\n dateArr: (e) => `You need to use array as \"model-value\" binding in order to support \"${e}\"`\n}, Ne = (e) => e, dn = (e) => e === 0 ? e : !e || isNaN(+e) ? null : +e, cn = (e) => e === null, Cn = (e) => {\n if (e)\n return [...e.querySelectorAll(\"input, button, select, textarea, a[href]\")][0];\n}, Rl = (e) => {\n const t = [], l = (n) => n.filter((a) => a);\n for (let n = 0; n < e.length; n += 3) {\n const a = [e[n], e[n + 1], e[n + 2]];\n t.push(l(a));\n }\n return t;\n}, Zt = (e, t, l) => {\n const n = l != null, a = t != null;\n if (!n && !a) return !1;\n const f = +l, i = +t;\n return n && a ? +e > f || +e < i : n ? +e > f : a ? +e < i : !1;\n}, Ht = (e, t) => Rl(e).map((l) => l.map((n) => {\n const { active: a, disabled: f, isBetween: i, highlighted: g } = t(n);\n return {\n ...n,\n active: a,\n disabled: f,\n className: {\n dp__overlay_cell_active: a,\n dp__overlay_cell: !a,\n dp__overlay_cell_disabled: f,\n dp__overlay_cell_pad: !0,\n dp__overlay_cell_active_disabled: f && a,\n dp__cell_in_between: i,\n \"dp--highlighted\": g\n }\n };\n})), Dt = (e, t, l = !1) => {\n e && t.allowStopPropagation && (l && e.stopImmediatePropagation(), e.stopPropagation());\n}, Cl = () => [\n \"a[href]\",\n \"area[href]\",\n \"input:not([disabled]):not([type='hidden'])\",\n \"select:not([disabled])\",\n \"textarea:not([disabled])\",\n \"button:not([disabled])\",\n \"[tabindex]:not([tabindex='-1'])\",\n \"[data-datepicker-instance]\"\n].join(\", \");\nfunction Ol(e, t) {\n let l = [...document.querySelectorAll(Cl())];\n l = l.filter((a) => !e.contains(a) || a.hasAttribute(\"data-datepicker-instance\"));\n const n = l.indexOf(e);\n if (n >= 0 && (t ? n - 1 >= 0 : n + 1 <= l.length))\n return l[n + (t ? -1 : 1)];\n}\nconst Fa = (e, t) => e?.querySelector(`[data-dp-element=\"${t}\"]`), Ja = (e, t) => new Intl.NumberFormat(t, { useGrouping: !1, style: \"decimal\" }).format(e), Za = (e, t) => ft(e, t ?? Lt.DATE), Ta = (e) => Array.isArray(e), ca = (e, t, l) => t.get(Za(e, l)), Bl = (e, t) => e ? t ? t instanceof Map ? !!ca(e, t) : t(H(e)) : !1 : !0, qe = (e, t, l = !1, n) => {\n if (e.key === Re.enter || e.key === Re.space)\n return l && e.preventDefault(), t();\n if (n) return n(e);\n}, _l = () => \"ontouchstart\" in window || navigator.maxTouchPoints > 0, On = (e, t) => e ? Lt.MONTH_AND_YEAR : t ? Lt.YEAR : Lt.DATE, Bn = (e) => e < 10 ? `0${e}` : e, fn = (e, t, l, n, a, f) => {\n const i = Na(e, t.slice(0, e.length), /* @__PURE__ */ new Date(), { locale: f });\n return da(i) && dl(i) ? n || a ? i : Se(i, {\n hours: +l.hours,\n minutes: +l?.minutes,\n seconds: +l?.seconds,\n milliseconds: 0\n }) : null;\n}, Yl = (e, t, l, n, a, f) => {\n const i = Array.isArray(l) ? l[0] : l;\n if (typeof t == \"string\")\n return fn(e, t, i, n, a, f);\n if (Array.isArray(t)) {\n let g = null;\n for (const d of t)\n if (g = fn(e, d, i, n, a, f), g)\n break;\n return g;\n }\n return typeof t == \"function\" ? t(e) : null;\n}, H = (e) => e ? new Date(e) : /* @__PURE__ */ new Date(), Il = (e, t, l) => {\n if (t) {\n const a = (e.getMonth() + 1).toString().padStart(2, \"0\"), f = e.getDate().toString().padStart(2, \"0\"), i = e.getHours().toString().padStart(2, \"0\"), g = e.getMinutes().toString().padStart(2, \"0\"), d = l ? e.getSeconds().toString().padStart(2, \"0\") : \"00\";\n return `${e.getFullYear()}-${a}-${f}T${i}:${g}:${d}.000Z`;\n }\n const n = Date.UTC(\n e.getUTCFullYear(),\n e.getUTCMonth(),\n e.getUTCDate(),\n e.getUTCHours(),\n e.getUTCMinutes(),\n e.getUTCSeconds()\n );\n return new Date(n).toISOString();\n}, Fe = (e, t) => {\n const l = H(JSON.parse(JSON.stringify(e))), n = Se(l, { hours: 0, minutes: 0, seconds: 0, milliseconds: 0 });\n return t ? ol(n) : n;\n}, Mt = (e, t, l, n) => {\n let a = e ? H(e) : H();\n return (t || t === 0) && (a = ul(a, +t)), (l || l === 0) && (a = il(a, +l)), (n || n === 0) && (a = wn(a, +n)), Dn(a, 0);\n}, Be = (e, t) => !e || !t ? !1 : Ft(Fe(e), Fe(t)), $e = (e, t) => !e || !t ? !1 : Nt(Fe(e), Fe(t)), Ee = (e, t) => !e || !t ? !1 : _t(Fe(e), Fe(t)), xt = (e, t, l) => e?.[0] && e?.[1] ? Ee(l, e[0]) && Be(l, e[1]) : e?.[0] && t ? Ee(l, e[0]) && Be(l, t) || Be(l, e[0]) && Ee(l, t) : !1, it = (e) => {\n const t = Se(new Date(e), { date: 1 });\n return Fe(t);\n}, Sa = (e, t, l) => t && (l || l === 0) ? Object.fromEntries(\n [\"hours\", \"minutes\", \"seconds\"].map((n) => n === t ? [n, l] : [n, isNaN(+e[n]) ? void 0 : +e[n]])\n) : {\n hours: isNaN(+e.hours) ? void 0 : +e.hours,\n minutes: isNaN(+e.minutes) ? void 0 : +e.minutes,\n seconds: isNaN(+e.seconds) ? void 0 : +e.seconds\n}, Bt = (e) => ({\n hours: yt(e),\n minutes: $t(e),\n seconds: zt(e)\n}), _n = (e, t) => {\n if (t) {\n const l = ye(H(t));\n if (l > e) return 12;\n if (l === e) return Me(H(t));\n }\n}, Yn = (e, t) => {\n if (t) {\n const l = ye(H(t));\n return l < e ? -1 : l === e ? Me(H(t)) : void 0;\n }\n}, Wt = (e) => {\n if (e) return ye(H(e));\n}, In = (e, t) => {\n const l = Ee(e, t) ? t : e, n = Ee(t, e) ? t : e;\n return bn({ start: l, end: n });\n}, El = (e) => {\n const t = Ct(e, 1);\n return { month: Me(t), year: ye(t) };\n}, mt = (e, t) => {\n const l = Wa(e, { weekStartsOn: +t }), n = kn(e, { weekStartsOn: +t });\n return [l, n];\n}, En = (e, t) => {\n const l = {\n hours: yt(H()),\n minutes: $t(H()),\n seconds: t ? zt(H()) : 0\n };\n return Object.assign(l, e);\n}, wt = (e, t, l) => [Se(H(e), { date: 1 }), Se(H(), { month: t, year: l, date: 1 })], pt = (e, t, l) => {\n let n = e ? H(e) : H();\n return (t || t === 0) && (n = sl(n, t)), l && (n = ut(n, l)), n;\n}, Nn = (e, t, l, n, a) => {\n if (!n || a && !t || !a && !l) return !1;\n const f = a ? Ct(e, 1) : Jt(e, 1), i = [Me(f), ye(f)];\n return a ? !Ll(...i, t) : !Nl(...i, l);\n}, Nl = (e, t, l) => Be(...wt(l, e, t)) || $e(...wt(l, e, t)), Ll = (e, t, l) => Ee(...wt(l, e, t)) || $e(...wt(l, e, t)), Ln = (e, t, l, n, a, f, i) => {\n if (typeof t == \"function\" && !i) return t(e);\n const g = l ? { locale: l } : void 0;\n return Array.isArray(e) ? `${ft(e[0], f, g)}${a && !e[1] ? \"\" : n}${e[1] ? ft(e[1], f, g) : \"\"}` : ft(e, f, g);\n}, It = (e) => {\n if (e) return null;\n throw new Error(Xa.prop(\"partial-range\"));\n}, oa = (e, t) => {\n if (t) return e();\n throw new Error(Xa.prop(\"range\"));\n}, za = (e) => Array.isArray(e) ? da(e[0]) && (e[1] ? da(e[1]) : !0) : e ? da(e) : !1, Fl = (e, t) => Se(t ?? H(), {\n hours: +e.hours || 0,\n minutes: +e.minutes || 0,\n seconds: +e.seconds || 0\n}), Pa = (e, t, l, n) => {\n if (!e) return !0;\n if (n) {\n const a = l === \"max\" ? Ft(e, t) : _t(e, t), f = { seconds: 0, milliseconds: 0 };\n return a || Nt(Se(e, f), Se(t, f));\n }\n return l === \"max\" ? e.getTime() <= t.getTime() : e.getTime() >= t.getTime();\n}, Ra = (e, t, l) => e ? Fl(e, t) : H(l ?? t), vn = (e, t, l, n, a) => {\n if (Array.isArray(n)) {\n const i = Ra(e, n[0], t), g = Ra(e, n[1], t);\n return Pa(n[0], i, l, !!t) && Pa(n[1], g, l, !!t) && a;\n }\n const f = Ra(e, n, t);\n return Pa(n, f, l, !!t) && a;\n}, Ca = (e) => Se(H(), Bt(e)), zl = (e, t, l) => {\n if (e instanceof Map) {\n const n = `${Bn(l + 1)}-${t}`;\n return e.size ? e.has(n) : !1;\n }\n return typeof e == \"function\" ? e(Fe(Se(H(), { month: l, year: t }), !0)) : !1;\n}, Hl = (e, t, l) => {\n if (e instanceof Map) {\n const n = `${Bn(l + 1)}-${t}`;\n return e.size ? e.has(n) : !0;\n }\n return !0;\n}, Fn = (e, t, l) => typeof e == \"function\" ? e({ month: t, year: l }) : !!e.months.find((n) => n.month === t && n.year === l), xa = (e, t) => typeof e == \"function\" ? e(t) : e.years.includes(t), Ha = (e) => `dp-${ft(e, \"yyyy-MM-dd\")}`, mn = (e, t) => {\n const l = cl(Fe(t), e), n = kt(Fe(t), e);\n return { before: l, after: n };\n}, zn = (e, t) => t < +e[0] || t > +e[1], Kt = ea({\n menuFocused: !1,\n shiftKeyInMenu: !1\n}), Hn = () => {\n const e = (n) => {\n Kt.menuFocused = n;\n }, t = (n) => {\n Kt.shiftKeyInMenu !== n && (Kt.shiftKeyInMenu = n);\n };\n return {\n control: j(() => ({ shiftKeyInMenu: Kt.shiftKeyInMenu, menuFocused: Kt.menuFocused })),\n setMenuFocused: e,\n setShiftKey: t\n };\n}, Pe = ea({\n monthYear: [],\n calendar: [],\n time: [],\n actionRow: [],\n selectionGrid: [],\n timePicker: {\n 0: [],\n 1: []\n },\n monthPicker: []\n}), Oa = Z(null), sa = Z(!1), Ba = Z(!1), _a = Z(!1), Ya = Z(!1), Ve = Z(0), Ie = Z(0), At = () => {\n const e = j(() => sa.value ? [...Pe.selectionGrid, Pe.actionRow].filter((M) => M.length) : Ba.value ? [\n ...Pe.timePicker[0],\n ...Pe.timePicker[1],\n Ya.value ? [] : [Oa.value],\n Pe.actionRow\n ].filter((M) => M.length) : _a.value ? [...Pe.monthPicker, Pe.actionRow] : [Pe.monthYear, ...Pe.calendar, Pe.time, Pe.actionRow].filter((M) => M.length)), t = (M) => {\n Ve.value = M ? Ve.value + 1 : Ve.value - 1;\n let A = null;\n e.value[Ie.value] && (A = e.value[Ie.value][Ve.value]), !A && e.value[Ie.value + (M ? 1 : -1)] ? (Ie.value = Ie.value + (M ? 1 : -1), Ve.value = M ? 0 : e.value[Ie.value].length - 1) : A || (Ve.value = M ? Ve.value - 1 : Ve.value + 1);\n }, l = (M) => {\n if (Ie.value === 0 && !M || Ie.value === e.value.length && M) return;\n Ie.value = M ? Ie.value + 1 : Ie.value - 1, e.value[Ie.value] ? e.value[Ie.value] && !e.value[Ie.value][Ve.value] && Ve.value !== 0 && (Ve.value = e.value[Ie.value].length - 1) : Ie.value = M ? Ie.value - 1 : Ie.value + 1;\n }, n = (M) => {\n let A = null;\n e.value[Ie.value] && (A = e.value[Ie.value][Ve.value]), A ? A.focus({ preventScroll: !sa.value }) : Ve.value = M ? Ve.value - 1 : Ve.value + 1;\n }, a = () => {\n t(!0), n(!0);\n }, f = () => {\n t(!1), n(!1);\n }, i = () => {\n l(!1), n(!0);\n }, g = () => {\n l(!0), n(!0);\n }, d = (M, A) => {\n Pe[A] = M;\n }, P = (M, A) => {\n Pe[A] = M;\n }, v = () => {\n Ve.value = 0, Ie.value = 0;\n };\n return {\n buildMatrix: d,\n buildMultiLevelMatrix: P,\n setTimePickerBackRef: (M) => {\n Oa.value = M;\n },\n setSelectionGrid: (M) => {\n sa.value = M, v(), M || (Pe.selectionGrid = []);\n },\n setTimePicker: (M, A = !1) => {\n Ba.value = M, Ya.value = A, v(), M || (Pe.timePicker[0] = [], Pe.timePicker[1] = []);\n },\n setTimePickerElements: (M, A = 0) => {\n Pe.timePicker[A] = M;\n },\n arrowRight: a,\n arrowLeft: f,\n arrowUp: i,\n arrowDown: g,\n clearArrowNav: () => {\n Pe.monthYear = [], Pe.calendar = [], Pe.time = [], Pe.actionRow = [], Pe.selectionGrid = [], Pe.timePicker[0] = [], Pe.timePicker[1] = [], sa.value = !1, Ba.value = !1, Ya.value = !1, _a.value = !1, v(), Oa.value = null;\n },\n setMonthPicker: (M) => {\n _a.value = M, v();\n },\n refSets: Pe\n // exposed for testing\n };\n}, pn = (e) => ({\n menuAppearTop: \"dp-menu-appear-top\",\n menuAppearBottom: \"dp-menu-appear-bottom\",\n open: \"dp-slide-down\",\n close: \"dp-slide-up\",\n next: \"calendar-next\",\n previous: \"calendar-prev\",\n vNext: \"dp-slide-up\",\n vPrevious: \"dp-slide-down\",\n ...e ?? {}\n}), Wl = (e) => ({\n toggleOverlay: \"Toggle overlay\",\n menu: \"Datepicker menu\",\n input: \"Datepicker input\",\n openTimePicker: \"Open time picker\",\n closeTimePicker: \"Close time Picker\",\n incrementValue: (t) => `Increment ${t}`,\n decrementValue: (t) => `Decrement ${t}`,\n openTpOverlay: (t) => `Open ${t} overlay`,\n amPmButton: \"Switch AM/PM mode\",\n openYearsOverlay: \"Open years overlay\",\n openMonthsOverlay: \"Open months overlay\",\n nextMonth: \"Next month\",\n prevMonth: \"Previous month\",\n nextYear: \"Next year\",\n prevYear: \"Previous year\",\n day: void 0,\n weekDay: void 0,\n clearInput: \"Clear value\",\n calendarIcon: \"Calendar icon\",\n timePicker: \"Time picker\",\n monthPicker: (t) => `Month picker${t ? \" overlay\" : \"\"}`,\n yearPicker: (t) => `Year picker${t ? \" overlay\" : \"\"}`,\n timeOverlay: (t) => `${t} overlay`,\n ...e ?? {}\n}), gn = (e) => e ? typeof e == \"boolean\" ? e ? 2 : 0 : +e >= 2 ? +e : 2 : 0, Ul = (e) => {\n const t = typeof e == \"object\" && e, l = {\n static: !0,\n solo: !1\n };\n if (!e) return { ...l, count: gn(!1) };\n const n = t ? e : {}, a = t ? n.count ?? !0 : e, f = gn(a);\n return Object.assign(l, n, { count: f });\n}, Vl = (e, t, l) => e || (typeof l == \"string\" ? l : t), jl = (e) => typeof e == \"boolean\" ? e ? pn({}) : !1 : pn(e), Kl = (e) => {\n const t = {\n enterSubmit: !0,\n tabSubmit: !0,\n openMenu: \"open\",\n selectOnFocus: !1,\n rangeSeparator: \" - \",\n escClose: !0\n };\n return typeof e == \"object\" ? { ...t, ...e ?? {}, enabled: !0 } : { ...t, enabled: e };\n}, Gl = (e) => ({\n months: [],\n years: [],\n times: { hours: [], minutes: [], seconds: [] },\n ...e ?? {}\n}), Ql = (e) => ({\n showSelect: !0,\n showCancel: !0,\n showNow: !1,\n showPreview: !0,\n ...e ?? {}\n}), ql = (e) => {\n const t = { input: !1 };\n return typeof e == \"object\" ? { ...t, ...e ?? {}, enabled: !0 } : {\n enabled: e,\n ...t\n };\n}, Xl = (e) => ({ ...{\n allowStopPropagation: !0,\n closeOnScroll: !1,\n modeHeight: 255,\n allowPreventDefault: !1,\n closeOnClearValue: !0,\n closeOnAutoApply: !0,\n noSwipe: !1,\n keepActionRow: !1,\n onClickOutside: void 0,\n tabOutClosesMenu: !0,\n arrowLeft: void 0,\n keepViewOnOffsetClick: !1,\n timeArrowHoldThreshold: 0,\n shadowDom: !1,\n mobileBreakpoint: 600,\n setDateOnMenuClose: !1\n}, ...e ?? {} }), Jl = (e) => {\n const t = {\n dates: Array.isArray(e) ? e.map((l) => H(l)) : [],\n years: [],\n months: [],\n quarters: [],\n weeks: [],\n weekdays: [],\n options: { highlightDisabled: !1 }\n };\n return typeof e == \"function\" ? e : { ...t, ...e ?? {} };\n}, Zl = (e) => typeof e == \"object\" ? {\n type: e?.type ?? \"local\",\n hideOnOffsetDates: e?.hideOnOffsetDates ?? !1\n} : {\n type: e,\n hideOnOffsetDates: !1\n}, xl = (e) => {\n const t = {\n noDisabledRange: !1,\n showLastInRange: !0,\n minMaxRawRange: !1,\n partialRange: !0,\n disableTimeRangeValidation: !1,\n maxRange: void 0,\n minRange: void 0,\n autoRange: void 0,\n fixedStart: !1,\n fixedEnd: !1\n };\n return typeof e == \"object\" ? { enabled: !0, ...t, ...e } : {\n enabled: e,\n ...t\n };\n}, er = (e) => e ? typeof e == \"string\" ? {\n timezone: e,\n exactMatch: !1,\n dateInTz: void 0,\n emitTimezone: void 0,\n convertModel: !0\n} : {\n timezone: e.timezone,\n exactMatch: e.exactMatch ?? !1,\n dateInTz: e.dateInTz ?? void 0,\n emitTimezone: e.emitTimezone ?? void 0,\n convertModel: e.convertModel ?? !0\n} : { timezone: void 0, exactMatch: !1, emitTimezone: void 0 }, Ia = (e, t, l, n) => new Map(\n e.map((a) => {\n const f = Qa(a, t, n);\n return [Za(f, l), f];\n })\n), tr = (e, t) => e.length ? new Map(\n e.map((l) => {\n const n = Qa(l.date, t);\n return [Za(n, Lt.DATE), l];\n })\n) : null, ar = (e) => {\n const t = On(e.isMonthPicker, e.isYearPicker);\n return {\n minDate: La(e.minDate, e.timezone, e.isSpecific),\n maxDate: La(e.maxDate, e.timezone, e.isSpecific),\n disabledDates: Ta(e.disabledDates) ? Ia(e.disabledDates, e.timezone, t, e.isSpecific) : e.disabledDates,\n allowedDates: Ta(e.allowedDates) ? Ia(e.allowedDates, e.timezone, t, e.isSpecific) : null,\n highlight: typeof e.highlight == \"object\" && Ta(e.highlight?.dates) ? Ia(e.highlight.dates, e.timezone, t) : e.highlight,\n markers: tr(e.markers, e.timezone)\n };\n}, nr = (e) => typeof e == \"boolean\" ? { enabled: e, dragSelect: !0, limit: null } : {\n enabled: !!e,\n limit: e.limit ? +e.limit : null,\n dragSelect: e.dragSelect ?? !0\n}, lr = (e) => ({\n ...Object.fromEntries(\n Object.keys(e).map((l) => {\n const n = l, a = e[n], f = typeof e[n] == \"string\" ? { [a]: !0 } : Object.fromEntries(a.map((i) => [i, !0]));\n return [l, f];\n })\n )\n}), Oe = (e) => {\n const t = () => {\n const U = e.enableSeconds ? \":ss\" : \"\", $ = e.enableMinutes ? \":mm\" : \"\";\n return e.is24 ? `HH${$}${U}` : `hh${$}${U} aa`;\n }, l = () => e.format ? e.format : e.monthPicker ? \"MM/yyyy\" : e.timePicker ? t() : e.weekPicker ? `${C.value?.type === \"iso\" ? \"II\" : \"ww\"}-RR` : e.yearPicker ? \"yyyy\" : e.quarterPicker ? \"QQQ/yyyy\" : e.enableTimePicker ? `MM/dd/yyyy, ${t()}` : \"MM/dd/yyyy\", n = (U) => En(U, e.enableSeconds), a = () => z.value.enabled ? e.startTime && Array.isArray(e.startTime) ? [n(e.startTime[0]), n(e.startTime[1])] : null : e.startTime && !Array.isArray(e.startTime) ? n(e.startTime) : null, f = j(() => Ul(e.multiCalendars)), i = j(() => a()), g = j(() => Wl(e.ariaLabels)), d = j(() => Gl(e.filters)), P = j(() => jl(e.transitions)), v = j(() => Ql(e.actionRow)), R = j(\n () => Vl(e.previewFormat, e.format, l())\n ), h = j(() => Kl(e.textInput)), T = j(() => ql(e.inline)), F = j(() => Xl(e.config)), _ = j(() => Jl(e.highlight)), C = j(() => Zl(e.weekNumbers)), M = j(() => er(e.timezone)), A = j(() => nr(e.multiDates)), m = j(\n () => ar({\n minDate: e.minDate,\n maxDate: e.maxDate,\n disabledDates: e.disabledDates,\n allowedDates: e.allowedDates,\n highlight: _.value,\n markers: e.markers,\n timezone: M.value,\n isSpecific: e.monthPicker || e.yearPicker || e.quarterPicker,\n isMonthPicker: e.monthPicker,\n isYearPicker: e.yearPicker\n })\n ), z = j(() => xl(e.range)), L = j(() => lr(e.ui));\n return {\n defaultedTransitions: P,\n defaultedMultiCalendars: f,\n defaultedStartTime: i,\n defaultedAriaLabels: g,\n defaultedFilters: d,\n defaultedActionRow: v,\n defaultedPreviewFormat: R,\n defaultedTextInput: h,\n defaultedInline: T,\n defaultedConfig: F,\n defaultedHighlight: _,\n defaultedWeekNumbers: C,\n defaultedRange: z,\n propDates: m,\n defaultedTz: M,\n defaultedMultiDates: A,\n defaultedUI: L,\n getDefaultPattern: l,\n getDefaultStartTime: a,\n handleEventPropagation: (U) => {\n F.value.allowStopPropagation && U.stopPropagation(), F.value.allowPreventDefault && U.preventDefault();\n }\n };\n}, rr = (e, t, { isInputFocused: l, isTextInputDate: n }) => {\n const a = Z(), { defaultedTextInput: f, defaultedRange: i, defaultedTz: g, defaultedMultiDates: d, getDefaultPattern: P } = Oe(t), v = Z(\"\"), R = qt(t, \"format\"), h = qt(t, \"formatLocale\");\n rt(\n a,\n () => {\n typeof t.onInternalModelChange == \"function\" && e(\"internal-model-change\", a.value, x(!0));\n },\n { deep: !0 }\n ), rt(i, (o, X) => {\n o.enabled !== X.enabled && (a.value = null);\n }), rt(R, () => {\n S();\n });\n const T = (o) => g.value.timezone && g.value.convertModel ? Ze(o, g.value.timezone) : o, F = (o) => {\n if (g.value.timezone && g.value.convertModel) {\n const X = Ml(g.value.timezone, o);\n return fl(o, X);\n }\n return o;\n }, _ = (o, X, B = !1) => Ln(\n o,\n t.format,\n t.formatLocale,\n f.value.rangeSeparator,\n t.modelAuto,\n X ?? P(),\n B\n ), C = (o) => o ? t.modelType ? k(o) : {\n hours: yt(o),\n minutes: $t(o),\n seconds: t.enableSeconds ? zt(o) : 0\n } : null, M = (o) => t.modelType ? k(o) : { month: Me(o), year: ye(o) }, A = (o) => Array.isArray(o) ? d.value.enabled ? o.map((X) => m(X, ut(H(), X))) : oa(\n () => [\n ut(H(), o[0]),\n o[1] ? ut(H(), o[1]) : It(i.value.partialRange)\n ],\n i.value.enabled\n ) : ut(H(), +o), m = (o, X) => (typeof o == \"string\" || typeof o == \"number\") && t.modelType ? q(o) : X, z = (o) => Array.isArray(o) ? [\n m(\n o[0],\n Mt(null, +o[0].hours, +o[0].minutes, o[0].seconds)\n ),\n m(\n o[1],\n Mt(null, +o[1].hours, +o[1].minutes, o[1].seconds)\n )\n ] : m(o, Mt(null, o.hours, o.minutes, o.seconds)), L = (o) => {\n const X = Se(H(), { date: 1 });\n return Array.isArray(o) ? d.value.enabled ? o.map((B) => m(B, pt(X, +B.month, +B.year))) : oa(\n () => [\n m(o[0], pt(X, +o[0].month, +o[0].year)),\n m(\n o[1],\n o[1] ? pt(X, +o[1].month, +o[1].year) : It(i.value.partialRange)\n )\n ],\n i.value.enabled\n ) : m(o, pt(X, +o.month, +o.year));\n }, le = (o) => {\n if (Array.isArray(o))\n return o.map((X) => q(X));\n throw new Error(Xa.dateArr(\"multi-dates\"));\n }, U = (o) => {\n if (Array.isArray(o) && i.value.enabled) {\n const X = o[0], B = o[1];\n return [\n H(Array.isArray(X) ? X[0] : null),\n Array.isArray(B) && B.length ? H(B[0]) : null\n ];\n }\n return H(o[0]);\n }, $ = (o) => t.modelAuto ? Array.isArray(o) ? [q(o[0]), q(o[1])] : t.autoApply ? [q(o)] : [q(o), null] : Array.isArray(o) ? oa(\n () => o[1] ? [\n q(o[0]),\n o[1] ? q(o[1]) : It(i.value.partialRange)\n ] : [q(o[0])],\n i.value.enabled\n ) : q(o), ee = () => {\n Array.isArray(a.value) && i.value.enabled && a.value.length === 1 && a.value.push(It(i.value.partialRange));\n }, O = () => {\n const o = a.value;\n return [\n k(o[0]),\n o[1] ? k(o[1]) : It(i.value.partialRange)\n ];\n }, J = () => Array.isArray(a.value) ? a.value[1] ? O() : k(Ne(a.value[0])) : [], ce = () => (a.value || []).map((o) => k(o)), pe = (o = !1) => (o || ee(), t.modelAuto ? J() : d.value.enabled ? ce() : Array.isArray(a.value) ? oa(() => O(), i.value.enabled) : k(Ne(a.value))), p = (o) => !o || Array.isArray(o) && !o.length ? null : t.timePicker ? z(Ne(o)) : t.monthPicker ? L(Ne(o)) : t.yearPicker ? A(Ne(o)) : d.value.enabled ? le(Ne(o)) : t.weekPicker ? U(Ne(o)) : $(Ne(o)), Y = (o) => {\n if (n.value) return;\n const X = p(o);\n za(Ne(X)) ? (a.value = Ne(X), S()) : (a.value = null, v.value = \"\");\n }, te = () => {\n const o = (X) => ft(X, f.value.format);\n return `${o(a.value[0])} ${f.value.rangeSeparator} ${a.value[1] ? o(a.value[1]) : \"\"}`;\n }, y = () => l.value && a.value ? Array.isArray(a.value) ? te() : ft(a.value, f.value.format) : _(a.value), V = () => a.value ? d.value.enabled ? a.value.map((o) => _(o)).join(\"; \") : f.value.enabled && typeof f.value.format == \"string\" ? y() : _(a.value) : \"\", S = () => {\n !t.format || typeof t.format == \"string\" || f.value.enabled && typeof f.value.format == \"string\" ? v.value = V() : v.value = t.format(a.value);\n }, q = (o) => {\n if (t.utc) {\n const X = new Date(o);\n return t.utc === \"preserve\" ? new Date(X.getTime() + X.getTimezoneOffset() * 6e4) : X;\n }\n return t.modelType ? $l.includes(t.modelType) ? T(new Date(o)) : t.modelType === \"format\" && (typeof t.format == \"string\" || !t.format) ? T(\n Na(o, P(), /* @__PURE__ */ new Date(), { locale: h.value })\n ) : T(\n Na(o, t.modelType, /* @__PURE__ */ new Date(), { locale: h.value })\n ) : T(new Date(o));\n }, k = (o) => o ? t.utc ? Il(o, t.utc === \"preserve\", t.enableSeconds) : t.modelType ? t.modelType === \"timestamp\" ? +F(o) : t.modelType === \"iso\" ? F(o).toISOString() : t.modelType === \"format\" && (typeof t.format == \"string\" || !t.format) ? _(F(o)) : _(F(o), t.modelType, !0) : F(o) : \"\", se = (o, X = !1, B = !1) => {\n if (B) return o;\n if (e(\"update:model-value\", o), g.value.emitTimezone && X) {\n const be = Array.isArray(o) ? o.map((Ae) => Ze(Ne(Ae), g.value.emitTimezone)) : Ze(Ne(o), g.value.emitTimezone);\n e(\"update:model-timezone-value\", be);\n }\n }, u = (o) => Array.isArray(a.value) ? d.value.enabled ? a.value.map((X) => o(X)) : [\n o(a.value[0]),\n a.value[1] ? o(a.value[1]) : It(i.value.partialRange)\n ] : o(Ne(a.value)), re = () => {\n if (Array.isArray(a.value)) {\n const o = mt(a.value[0], t.weekStart), X = a.value[1] ? mt(a.value[1], t.weekStart) : [];\n return [o.map((B) => H(B)), X.map((B) => H(B))];\n }\n return mt(a.value, t.weekStart).map((o) => H(o));\n }, G = (o, X) => se(Ne(u(o)), !1, X), I = (o) => {\n const X = re();\n return o ? X : e(\"update:model-value\", re());\n }, x = (o = !1) => (o || S(), t.monthPicker ? G(M, o) : t.timePicker ? G(C, o) : t.yearPicker ? G(ye, o) : t.weekPicker ? I(o) : se(pe(o), !0, o));\n return {\n inputValue: v,\n internalModelValue: a,\n checkBeforeEmit: () => a.value ? i.value.enabled ? i.value.partialRange ? a.value.length >= 1 : a.value.length === 2 : !!a.value : !1,\n parseExternalModelValue: Y,\n formatInputValue: S,\n emitModelValue: x\n };\n}, or = (e, t) => {\n const { defaultedFilters: l, propDates: n } = Oe(e), { validateMonthYearInRange: a } = Tt(e), f = (v, R) => {\n let h = v;\n return l.value.months.includes(Me(h)) ? (h = R ? Ct(v, 1) : Jt(v, 1), f(h, R)) : h;\n }, i = (v, R) => {\n let h = v;\n return l.value.years.includes(ye(h)) ? (h = R ? Mn(v, 1) : $n(v, 1), i(h, R)) : h;\n }, g = (v, R = !1) => {\n const h = Se(H(), { month: e.month, year: e.year });\n let T = v ? Ct(h, 1) : Jt(h, 1);\n e.disableYearSelect && (T = ut(T, e.year));\n let F = Me(T), _ = ye(T);\n l.value.months.includes(F) && (T = f(T, v), F = Me(T), _ = ye(T)), l.value.years.includes(_) && (T = i(T, v), _ = ye(T)), a(F, _, v, e.preventMinMaxNavigation) && d(F, _, R);\n }, d = (v, R, h) => {\n t(\"update-month-year\", { month: v, year: R, fromNav: h });\n }, P = j(() => (v) => Nn(\n Se(H(), { month: e.month, year: e.year }),\n n.value.maxDate,\n n.value.minDate,\n e.preventMinMaxNavigation,\n v\n ));\n return { handleMonthYearChange: g, isDisabled: P, updateMonthYear: d };\n}, va = {\n multiCalendars: { type: [Boolean, Number, String, Object], default: void 0 },\n modelValue: { type: [String, Date, Array, Object, Number], default: null },\n modelType: { type: String, default: null },\n position: { type: String, default: \"center\" },\n dark: { type: Boolean, default: !1 },\n format: {\n type: [String, Function],\n default: () => null\n },\n autoPosition: { type: [Boolean, String], default: !0 },\n altPosition: { type: Function, default: null },\n transitions: { type: [Boolean, Object], default: !0 },\n formatLocale: { type: Object, default: null },\n utc: { type: [Boolean, String], default: !1 },\n ariaLabels: { type: Object, default: () => ({}) },\n offset: { type: [Number, String], default: 10 },\n hideNavigation: { type: Array, default: () => [] },\n timezone: { type: [String, Object], default: null },\n vertical: { type: Boolean, default: !1 },\n disableMonthYearSelect: { type: Boolean, default: !1 },\n disableYearSelect: { type: Boolean, default: !1 },\n dayClass: {\n type: Function,\n default: null\n },\n yearRange: { type: Array, default: () => [1900, 2100] },\n enableTimePicker: { type: Boolean, default: !0 },\n autoApply: { type: Boolean, default: !1 },\n disabledDates: { type: [Array, Function], default: () => [] },\n monthNameFormat: { type: String, default: \"short\" },\n startDate: { type: [Date, String], default: null },\n startTime: { type: [Object, Array], default: null },\n hideOffsetDates: { type: Boolean, default: !1 },\n noToday: { type: Boolean, default: !1 },\n disabledWeekDays: { type: Array, default: () => [] },\n allowedDates: { type: Array, default: null },\n nowButtonLabel: { type: String, default: \"Now\" },\n markers: { type: Array, default: () => [] },\n escClose: { type: Boolean, default: !0 },\n spaceConfirm: { type: Boolean, default: !0 },\n monthChangeOnArrows: { type: Boolean, default: !0 },\n presetDates: { type: Array, default: () => [] },\n flow: { type: Array, default: () => [] },\n partialFlow: { type: Boolean, default: !1 },\n preventMinMaxNavigation: { type: Boolean, default: !1 },\n reverseYears: { type: Boolean, default: !1 },\n weekPicker: { type: Boolean, default: !1 },\n filters: { type: Object, default: () => ({}) },\n arrowNavigation: { type: Boolean, default: !1 },\n highlight: {\n type: [Function, Object],\n default: null\n },\n teleport: { type: [Boolean, String, Object], default: null },\n teleportCenter: { type: Boolean, default: !1 },\n locale: { type: String, default: \"en-Us\" },\n weekNumName: { type: String, default: \"W\" },\n weekStart: { type: [Number, String], default: 1 },\n weekNumbers: {\n type: [String, Function, Object],\n default: null\n },\n monthChangeOnScroll: { type: [Boolean, String], default: !0 },\n dayNames: {\n type: [Function, Array],\n default: null\n },\n monthPicker: { type: Boolean, default: !1 },\n customProps: { type: Object, default: null },\n yearPicker: { type: Boolean, default: !1 },\n modelAuto: { type: Boolean, default: !1 },\n selectText: { type: String, default: \"Select\" },\n cancelText: { type: String, default: \"Cancel\" },\n previewFormat: {\n type: [String, Function],\n default: () => \"\"\n },\n multiDates: { type: [Object, Boolean], default: !1 },\n ignoreTimeValidation: { type: Boolean, default: !1 },\n minDate: { type: [Date, String], default: null },\n maxDate: { type: [Date, String], default: null },\n minTime: { type: Object, default: null },\n maxTime: { type: Object, default: null },\n name: { type: String, default: null },\n placeholder: { type: String, default: \"\" },\n hideInputIcon: { type: Boolean, default: !1 },\n clearable: { type: Boolean, default: !0 },\n alwaysClearable: { type: Boolean, default: !1 },\n state: { type: Boolean, default: null },\n required: { type: Boolean, default: !1 },\n autocomplete: { type: String, default: \"off\" },\n timePicker: { type: Boolean, default: !1 },\n enableSeconds: { type: Boolean, default: !1 },\n is24: { type: Boolean, default: !0 },\n noHoursOverlay: { type: Boolean, default: !1 },\n noMinutesOverlay: { type: Boolean, default: !1 },\n noSecondsOverlay: { type: Boolean, default: !1 },\n hoursGridIncrement: { type: [String, Number], default: 1 },\n minutesGridIncrement: { type: [String, Number], default: 5 },\n secondsGridIncrement: { type: [String, Number], default: 5 },\n hoursIncrement: { type: [Number, String], default: 1 },\n minutesIncrement: { type: [Number, String], default: 1 },\n secondsIncrement: { type: [Number, String], default: 1 },\n range: { type: [Boolean, Object], default: !1 },\n uid: { type: String, default: null },\n disabled: { type: Boolean, default: !1 },\n readonly: { type: Boolean, default: !1 },\n inline: { type: [Boolean, Object], default: !1 },\n textInput: { type: [Boolean, Object], default: !1 },\n sixWeeks: { type: [Boolean, String], default: !1 },\n actionRow: { type: Object, default: () => ({}) },\n focusStartDate: { type: Boolean, default: !1 },\n disabledTimes: { type: [Function, Array], default: void 0 },\n timePickerInline: { type: Boolean, default: !1 },\n calendar: { type: Function, default: null },\n config: { type: Object, default: void 0 },\n quarterPicker: { type: Boolean, default: !1 },\n yearFirst: { type: Boolean, default: !1 },\n loading: { type: Boolean, default: !1 },\n onInternalModelChange: { type: [Function, Object], default: null },\n enableMinutes: { type: Boolean, default: !0 },\n ui: { type: Object, default: () => ({}) }\n}, dt = {\n ...va,\n shadow: { type: Boolean, default: !1 },\n flowStep: { type: Number, default: 0 },\n internalModelValue: { type: [Date, Array], default: null },\n noOverlayFocus: { type: Boolean, default: !1 },\n collapse: { type: Boolean, default: !1 },\n menuWrapRef: { type: Object, default: null },\n getInputRect: { type: Function, default: () => ({}) },\n isTextInputDate: { type: Boolean, default: !1 },\n isMobile: { type: Boolean, default: void 0 }\n}, sr = [\"title\"], ur = [\"disabled\"], ir = /* @__PURE__ */ We({\n compatConfig: {\n MODE: 3\n },\n __name: \"ActionRow\",\n props: {\n menuMount: { type: Boolean, default: !1 },\n calendarWidth: { type: Number, default: 0 },\n ...dt\n },\n emits: [\"close-picker\", \"select-date\", \"select-now\", \"invalid-select\"],\n setup(e, { emit: t }) {\n const l = t, n = e, {\n defaultedActionRow: a,\n defaultedPreviewFormat: f,\n defaultedMultiCalendars: i,\n defaultedTextInput: g,\n defaultedInline: d,\n defaultedRange: P,\n defaultedMultiDates: v\n } = Oe(n), { isTimeValid: R, isMonthValid: h } = Tt(n), { buildMatrix: T } = At(), F = Z(null), _ = Z(null), C = Z(!1), M = Z({}), A = Z(null), m = Z(null);\n Ue(() => {\n n.arrowNavigation && T([Le(F), Le(_)], \"actionRow\"), z(), window.addEventListener(\"resize\", z);\n }), Ut(() => {\n window.removeEventListener(\"resize\", z);\n });\n const z = () => {\n C.value = !1, setTimeout(() => {\n const p = A.value?.getBoundingClientRect(), Y = m.value?.getBoundingClientRect();\n p && Y && (M.value.maxWidth = `${Y.width - p.width - 20}px`), C.value = !0;\n }, 0);\n }, L = j(() => P.value.enabled && !P.value.partialRange && n.internalModelValue ? n.internalModelValue.length === 2 : !0), le = j(\n () => !R.value(n.internalModelValue) || !h.value(n.internalModelValue) || !L.value\n ), U = () => {\n const p = f.value;\n return n.timePicker || n.monthPicker, p(Ne(n.internalModelValue));\n }, $ = () => {\n const p = n.internalModelValue;\n return i.value.count > 0 ? `${ee(p[0])} - ${ee(p[1])}` : [ee(p[0]), ee(p[1])];\n }, ee = (p) => Ln(\n p,\n f.value,\n n.formatLocale,\n g.value.rangeSeparator,\n n.modelAuto,\n f.value\n ), O = j(() => !n.internalModelValue || !n.menuMount ? \"\" : typeof f.value == \"string\" ? Array.isArray(n.internalModelValue) ? n.internalModelValue.length === 2 && n.internalModelValue[1] ? $() : v.value.enabled ? n.internalModelValue.map((p) => `${ee(p)}`) : n.modelAuto ? `${ee(n.internalModelValue[0])}` : `${ee(n.internalModelValue[0])} -` : ee(n.internalModelValue) : U()), J = () => v.value.enabled ? \"; \" : \" - \", ce = j(\n () => Array.isArray(O.value) ? O.value.join(J()) : O.value\n ), pe = () => {\n R.value(n.internalModelValue) && h.value(n.internalModelValue) && L.value ? l(\"select-date\") : l(\"invalid-select\");\n };\n return (p, Y) => (w(), W(\"div\", {\n ref_key: \"actionRowRef\",\n ref: m,\n class: \"dp__action_row\"\n }, [\n p.$slots[\"action-row\"] ? ie(p.$slots, \"action-row\", ze(He({ key: 0 }, {\n internalModelValue: p.internalModelValue,\n disabled: le.value,\n selectDate: () => p.$emit(\"select-date\"),\n closePicker: () => p.$emit(\"close-picker\")\n }))) : (w(), W(ke, { key: 1 }, [\n s(a).showPreview ? (w(), W(\"div\", {\n key: 0,\n class: \"dp__selection_preview\",\n title: ce.value,\n style: lt(M.value)\n }, [\n p.$slots[\"action-preview\"] && C.value ? ie(p.$slots, \"action-preview\", {\n key: 0,\n value: p.internalModelValue\n }) : Q(\"\", !0),\n !p.$slots[\"action-preview\"] && C.value ? (w(), W(ke, { key: 1 }, [\n gt(Ke(ce.value), 1)\n ], 64)) : Q(\"\", !0)\n ], 12, sr)) : Q(\"\", !0),\n he(\"div\", {\n ref_key: \"actionBtnContainer\",\n ref: A,\n class: \"dp__action_buttons\",\n \"data-dp-element\": \"action-row\"\n }, [\n p.$slots[\"action-buttons\"] ? ie(p.$slots, \"action-buttons\", {\n key: 0,\n value: p.internalModelValue\n }) : Q(\"\", !0),\n p.$slots[\"action-buttons\"] ? Q(\"\", !0) : (w(), W(ke, { key: 1 }, [\n !s(d).enabled && s(a).showCancel ? (w(), W(\"button\", {\n key: 0,\n ref_key: \"cancelButtonRef\",\n ref: F,\n type: \"button\",\n class: \"dp__action_button dp__action_cancel\",\n onClick: Y[0] || (Y[0] = (te) => p.$emit(\"close-picker\")),\n onKeydown: Y[1] || (Y[1] = (te) => s(qe)(te, () => p.$emit(\"close-picker\")))\n }, Ke(p.cancelText), 545)) : Q(\"\", !0),\n s(a).showNow ? (w(), W(\"button\", {\n key: 1,\n type: \"button\",\n class: \"dp__action_button dp__action_cancel\",\n onClick: Y[2] || (Y[2] = (te) => p.$emit(\"select-now\")),\n onKeydown: Y[3] || (Y[3] = (te) => s(qe)(te, () => p.$emit(\"select-now\")))\n }, Ke(p.nowButtonLabel), 33)) : Q(\"\", !0),\n s(a).showSelect ? (w(), W(\"button\", {\n key: 2,\n ref_key: \"selectButtonRef\",\n ref: _,\n type: \"button\",\n class: \"dp__action_button dp__action_select\",\n disabled: le.value,\n \"data-test-id\": \"select-button\",\n onKeydown: Y[4] || (Y[4] = (te) => s(qe)(te, () => pe())),\n onClick: pe\n }, Ke(p.selectText), 41, ur)) : Q(\"\", !0)\n ], 64))\n ], 512)\n ], 64))\n ], 512));\n }\n}), dr = [\"role\", \"aria-label\", \"tabindex\"], cr = { class: \"dp__selection_grid_header\" }, fr = [\"aria-selected\", \"aria-disabled\", \"data-test-id\", \"onClick\", \"onKeydown\", \"onMouseover\"], vr = [\"aria-label\"], ta = /* @__PURE__ */ We({\n __name: \"SelectionOverlay\",\n props: {\n items: {},\n type: {},\n isLast: { type: Boolean },\n arrowNavigation: { type: Boolean },\n skipButtonRef: { type: Boolean },\n headerRefs: {},\n hideNavigation: {},\n escClose: { type: Boolean },\n useRelative: { type: Boolean },\n height: {},\n textInput: { type: [Boolean, Object] },\n config: {},\n noOverlayFocus: { type: Boolean },\n focusValue: {},\n menuWrapRef: {},\n ariaLabels: {},\n overlayLabel: {}\n },\n emits: [\"selected\", \"toggle\", \"reset-flow\", \"hover-value\"],\n setup(e, { expose: t, emit: l }) {\n const { setSelectionGrid: n, buildMultiLevelMatrix: a, setMonthPicker: f } = At(), i = l, g = e, { defaultedAriaLabels: d, defaultedTextInput: P, defaultedConfig: v, handleEventPropagation: R } = Oe(\n g\n ), { hideNavigationButtons: h } = ga(), T = Z(!1), F = Z(null), _ = Z(null), C = Z([]), M = Z(), A = Z(null), m = Z(0), z = Z(null);\n Zn(() => {\n F.value = null;\n }), Ue(() => {\n at().then(() => ce()), g.noOverlayFocus || le(), L(!0);\n }), Ut(() => L(!1));\n const L = (u) => {\n g.arrowNavigation && (g.headerRefs?.length ? f(u) : n(u));\n }, le = () => {\n const u = Le(_);\n u && (P.value.enabled || (F.value ? F.value?.focus({ preventScroll: !0 }) : u.focus({ preventScroll: !0 })), T.value = u.clientHeight < u.scrollHeight);\n }, U = j(\n () => ({\n dp__overlay: !0,\n \"dp--overlay-absolute\": !g.useRelative,\n \"dp--overlay-relative\": g.useRelative\n })\n ), $ = j(\n () => g.useRelative ? { height: `${g.height}px`, width: \"var(--dp-menu-min-width)\" } : void 0\n ), ee = j(() => ({\n dp__overlay_col: !0\n })), O = j(\n () => ({\n dp__btn: !0,\n dp__button: !0,\n dp__overlay_action: !0,\n dp__over_action_scroll: T.value,\n dp__button_bottom: g.isLast\n })\n ), J = j(() => ({\n dp__overlay_container: !0,\n dp__container_flex: g.items?.length <= 6,\n dp__container_block: g.items?.length > 6\n }));\n rt(\n () => g.items,\n () => ce(!1),\n { deep: !0 }\n );\n const ce = (u = !0) => {\n at().then(() => {\n const re = Le(F), G = Le(_), I = Le(A), x = Le(z), c = I ? I.getBoundingClientRect().height : 0;\n G && (G.getBoundingClientRect().height ? m.value = G.getBoundingClientRect().height - c : m.value = v.value.modeHeight - c), re && x && u && (x.scrollTop = re.offsetTop - x.offsetTop - (m.value / 2 - re.getBoundingClientRect().height) - c);\n });\n }, pe = (u) => {\n u.disabled || i(\"selected\", u.value);\n }, p = () => {\n i(\"toggle\"), i(\"reset-flow\");\n }, Y = (u) => {\n g.escClose && (p(), R(u));\n }, te = (u, re, G, I) => {\n u && ((re.active || re.value === g.focusValue) && (F.value = u), g.arrowNavigation && (Array.isArray(C.value[G]) ? C.value[G][I] = u : C.value[G] = [u], y()));\n }, y = () => {\n const u = g.headerRefs?.length ? [g.headerRefs].concat(C.value) : C.value.concat([g.skipButtonRef ? [] : [A.value]]);\n a(Ne(u), g.headerRefs?.length ? \"monthPicker\" : \"selectionGrid\");\n }, V = (u) => {\n g.arrowNavigation || Dt(u, v.value, !0);\n }, S = (u) => {\n M.value = u, i(\"hover-value\", u);\n }, q = () => {\n if (p(), !g.isLast) {\n const u = Fa(g.menuWrapRef ?? null, \"action-row\");\n u && Cn(u)?.focus();\n }\n }, k = (u) => {\n switch (u.key) {\n case Re.esc:\n return Y(u);\n case Re.arrowLeft:\n return V(u);\n case Re.arrowRight:\n return V(u);\n case Re.arrowUp:\n return V(u);\n case Re.arrowDown:\n return V(u);\n default:\n return;\n }\n }, se = (u) => {\n if (u.key === Re.enter) return p();\n if (u.key === Re.tab) return q();\n };\n return t({ focusGrid: le }), (u, re) => (w(), W(\"div\", {\n ref_key: \"gridWrapRef\",\n ref: _,\n class: De(U.value),\n style: lt($.value),\n role: e.useRelative ? void 0 : \"dialog\",\n \"aria-label\": e.overlayLabel,\n tabindex: e.useRelative ? void 0 : \"0\",\n onKeydown: k,\n onClick: re[0] || (re[0] = Xt(() => {\n }, [\"prevent\"]))\n }, [\n he(\"div\", {\n ref_key: \"containerRef\",\n ref: z,\n class: De(J.value),\n style: lt({ \"--dp-overlay-height\": `${m.value}px` }),\n role: \"grid\"\n }, [\n he(\"div\", cr, [\n ie(u.$slots, \"header\")\n ]),\n u.$slots.overlay ? ie(u.$slots, \"overlay\", { key: 0 }) : (w(!0), W(ke, { key: 1 }, Ce(e.items, (G, I) => (w(), W(\"div\", {\n key: I,\n class: De([\"dp__overlay_row\", { dp__flex_row: e.items.length >= 3 }]),\n role: \"row\"\n }, [\n (w(!0), W(ke, null, Ce(G, (x, c) => (w(), W(\"div\", {\n key: x.value,\n ref_for: !0,\n ref: (o) => te(o, x, I, c),\n role: \"gridcell\",\n class: De(ee.value),\n \"aria-selected\": x.active || void 0,\n \"aria-disabled\": x.disabled || void 0,\n tabindex: \"0\",\n \"data-test-id\": x.text,\n onClick: Xt((o) => pe(x), [\"prevent\"]),\n onKeydown: (o) => s(qe)(o, () => pe(x), !0),\n onMouseover: (o) => S(x.value)\n }, [\n he(\"div\", {\n class: De(x.className)\n }, [\n u.$slots.item ? ie(u.$slots, \"item\", {\n key: 0,\n item: x\n }) : Q(\"\", !0),\n u.$slots.item ? Q(\"\", !0) : (w(), W(ke, { key: 1 }, [\n gt(Ke(x.text), 1)\n ], 64))\n ], 2)\n ], 42, fr))), 128))\n ], 2))), 128))\n ], 6),\n u.$slots[\"button-icon\"] ? ua((w(), W(\"button\", {\n key: 0,\n ref_key: \"toggleButton\",\n ref: A,\n type: \"button\",\n \"aria-label\": s(d)?.toggleOverlay,\n class: De(O.value),\n tabindex: \"0\",\n onClick: p,\n onKeydown: se\n }, [\n ie(u.$slots, \"button-icon\")\n ], 42, vr)), [\n [ia, !s(h)(e.hideNavigation, e.type)]\n ]) : Q(\"\", !0)\n ], 46, dr));\n }\n}), mr = [\"data-dp-mobile\"], ma = /* @__PURE__ */ We({\n __name: \"InstanceWrap\",\n props: {\n multiCalendars: {},\n stretch: { type: Boolean },\n collapse: { type: Boolean },\n isMobile: { type: Boolean }\n },\n setup(e) {\n const t = e, l = j(\n () => t.multiCalendars > 0 ? [...Array(t.multiCalendars).keys()] : [0]\n ), n = j(() => ({\n dp__instance_calendar: t.multiCalendars > 0\n }));\n return (a, f) => (w(), W(\"div\", {\n class: De({\n dp__menu_inner: !e.stretch,\n \"dp--menu--inner-stretched\": e.stretch,\n dp__flex_display: e.multiCalendars > 0,\n \"dp--flex-display-collapsed\": e.collapse\n }),\n \"data-dp-mobile\": e.isMobile\n }, [\n (w(!0), W(ke, null, Ce(l.value, (i, g) => (w(), W(\"div\", {\n key: i,\n class: De(n.value)\n }, [\n ie(a.$slots, \"default\", {\n instance: i,\n index: g\n })\n ], 2))), 128))\n ], 10, mr));\n }\n}), pr = [\"data-dp-element\", \"aria-label\", \"aria-disabled\"], Qt = /* @__PURE__ */ We({\n compatConfig: {\n MODE: 3\n },\n __name: \"ArrowBtn\",\n props: {\n ariaLabel: {},\n elName: {},\n disabled: { type: Boolean }\n },\n emits: [\"activate\", \"set-ref\"],\n setup(e, { emit: t }) {\n const l = t, n = Z(null);\n return Ue(() => l(\"set-ref\", n)), (a, f) => (w(), W(\"button\", {\n ref_key: \"elRef\",\n ref: n,\n type: \"button\",\n \"data-dp-element\": e.elName,\n class: \"dp__btn dp--arrow-btn-nav\",\n tabindex: \"0\",\n \"aria-label\": e.ariaLabel,\n \"aria-disabled\": e.disabled || void 0,\n onClick: f[0] || (f[0] = (i) => l(\"activate\")),\n onKeydown: f[1] || (f[1] = (i) => s(qe)(i, () => l(\"activate\"), !0))\n }, [\n he(\"span\", {\n class: De([\"dp__inner_nav\", { dp__inner_nav_disabled: e.disabled }])\n }, [\n ie(a.$slots, \"default\")\n ], 2)\n ], 40, pr));\n }\n}), gr = [\"aria-label\", \"data-test-id\"], Wn = /* @__PURE__ */ We({\n __name: \"YearModePicker\",\n props: {\n ...dt,\n showYearPicker: { type: Boolean, default: !1 },\n items: { type: Array, default: () => [] },\n instance: { type: Number, default: 0 },\n year: { type: Number, default: 0 },\n isDisabled: { type: Function, default: () => !1 }\n },\n emits: [\"toggle-year-picker\", \"year-select\", \"handle-year\"],\n setup(e, { emit: t }) {\n const l = t, n = e, { showRightIcon: a, showLeftIcon: f } = ga(), { defaultedConfig: i, defaultedMultiCalendars: g, defaultedAriaLabels: d, defaultedTransitions: P, defaultedUI: v } = Oe(n), { showTransition: R, transitionName: h } = aa(P), T = Z(!1), F = j(() => Ja(n.year, n.locale)), _ = (A = !1, m) => {\n T.value = !T.value, l(\"toggle-year-picker\", { flow: A, show: m });\n }, C = (A) => {\n T.value = !1, l(\"year-select\", A);\n }, M = (A = !1) => {\n l(\"handle-year\", A);\n };\n return (A, m) => (w(), W(ke, null, [\n he(\"div\", {\n class: De([\"dp--year-mode-picker\", { \"dp--hidden-el\": T.value }])\n }, [\n s(f)(s(g), e.instance) ? (w(), Te(Qt, {\n key: 0,\n ref: \"mpPrevIconRef\",\n \"aria-label\": s(d)?.prevYear,\n disabled: e.isDisabled(!1),\n class: De(s(v)?.navBtnPrev),\n onActivate: m[0] || (m[0] = (z) => M(!1))\n }, {\n default: we(() => [\n A.$slots[\"arrow-left\"] ? ie(A.$slots, \"arrow-left\", { key: 0 }) : Q(\"\", !0),\n A.$slots[\"arrow-left\"] ? Q(\"\", !0) : (w(), Te(s(Ua), { key: 1 }))\n ]),\n _: 3\n }, 8, [\"aria-label\", \"disabled\", \"class\"])) : Q(\"\", !0),\n he(\"button\", {\n ref: \"mpYearButtonRef\",\n class: \"dp__btn dp--year-select\",\n type: \"button\",\n \"aria-label\": `${e.year}-${s(d)?.openYearsOverlay}`,\n \"data-test-id\": `year-mode-btn-${e.instance}`,\n onClick: m[1] || (m[1] = () => _(!1)),\n onKeydown: m[2] || (m[2] = xn(() => _(!1), [\"enter\"]))\n }, [\n A.$slots.year ? ie(A.$slots, \"year\", {\n key: 0,\n year: e.year,\n text: F.value,\n value: e.year\n }) : Q(\"\", !0),\n A.$slots.year ? Q(\"\", !0) : (w(), W(ke, { key: 1 }, [\n gt(Ke(F.value), 1)\n ], 64))\n ], 40, gr),\n s(a)(s(g), e.instance) ? (w(), Te(Qt, {\n key: 1,\n ref: \"mpNextIconRef\",\n \"aria-label\": s(d)?.nextYear,\n disabled: e.isDisabled(!0),\n class: De(s(v)?.navBtnNext),\n onActivate: m[3] || (m[3] = (z) => M(!0))\n }, {\n default: we(() => [\n A.$slots[\"arrow-right\"] ? ie(A.$slots, \"arrow-right\", { key: 0 }) : Q(\"\", !0),\n A.$slots[\"arrow-right\"] ? Q(\"\", !0) : (w(), Te(s(Va), { key: 1 }))\n ]),\n _: 3\n }, 8, [\"aria-label\", \"disabled\", \"class\"])) : Q(\"\", !0)\n ], 2),\n tt(Vt, {\n name: s(h)(e.showYearPicker),\n css: s(R)\n }, {\n default: we(() => [\n e.showYearPicker ? (w(), Te(ta, {\n key: 0,\n items: e.items,\n \"text-input\": A.textInput,\n \"esc-close\": A.escClose,\n config: A.config,\n \"is-last\": A.autoApply && !s(i).keepActionRow,\n \"hide-navigation\": A.hideNavigation,\n \"aria-labels\": A.ariaLabels,\n \"overlay-label\": s(d)?.yearPicker?.(!0),\n type: \"year\",\n onToggle: _,\n onSelected: m[4] || (m[4] = (z) => C(z))\n }, Ge({\n \"button-icon\": we(() => [\n A.$slots[\"calendar-icon\"] ? ie(A.$slots, \"calendar-icon\", { key: 0 }) : Q(\"\", !0),\n A.$slots[\"calendar-icon\"] ? Q(\"\", !0) : (w(), Te(s(jt), { key: 1 }))\n ]),\n _: 2\n }, [\n A.$slots[\"year-overlay-value\"] ? {\n name: \"item\",\n fn: we(({ item: z }) => [\n ie(A.$slots, \"year-overlay-value\", {\n text: z.text,\n value: z.value\n })\n ]),\n key: \"0\"\n } : void 0\n ]), 1032, [\"items\", \"text-input\", \"esc-close\", \"config\", \"is-last\", \"hide-navigation\", \"aria-labels\", \"overlay-label\"])) : Q(\"\", !0)\n ]),\n _: 3\n }, 8, [\"name\", \"css\"])\n ], 64));\n }\n}), en = (e, t, l) => {\n if (t.value && Array.isArray(t.value))\n if (t.value.some((n) => $e(e, n))) {\n const n = t.value.filter((a) => !$e(a, e));\n t.value = n.length ? n : null;\n } else (l && +l > t.value.length || !l) && t.value.push(e);\n else\n t.value = [e];\n}, tn = (e, t, l) => {\n let n = e.value ? e.value.slice() : [];\n return n.length === 2 && n[1] !== null && (n = []), n.length ? (Be(t, n[0]) ? n.unshift(t) : n[1] = t, l(\"range-end\", t)) : (n = [t], l(\"range-start\", t)), n;\n}, pa = (e, t, l, n) => {\n e && (e[0] && e[1] && l && t(\"auto-apply\"), e[0] && !e[1] && n && l && t(\"auto-apply\"));\n}, Un = (e) => {\n Array.isArray(e.value) && e.value.length <= 2 && e.range ? e.modelValue.value = e.value.map((t) => Ze(H(t), e.timezone)) : Array.isArray(e.value) || (e.modelValue.value = Ze(H(e.value), e.timezone));\n}, Vn = (e, t, l, n) => Array.isArray(t.value) && (t.value.length === 2 || t.value.length === 1 && n.value.partialRange) ? n.value.fixedStart && (Ee(e, t.value[0]) || $e(e, t.value[0])) ? [t.value[0], e] : n.value.fixedEnd && (Be(e, t.value[1]) || $e(e, t.value[1])) ? [e, t.value[1]] : (l(\"invalid-fixed-range\", e), t.value) : [], jn = ({\n multiCalendars: e,\n range: t,\n highlight: l,\n propDates: n,\n calendars: a,\n modelValue: f,\n props: i,\n filters: g,\n year: d,\n month: P,\n emit: v\n}) => {\n const R = j(() => qa(i.yearRange, i.locale, i.reverseYears)), h = Z([!1]), T = j(() => (O, J) => {\n const ce = Se(it(/* @__PURE__ */ new Date()), {\n month: P.value(O),\n year: d.value(O)\n }), pe = J ? An(ce) : Gt(ce);\n return Nn(\n pe,\n n.value.maxDate,\n n.value.minDate,\n i.preventMinMaxNavigation,\n J\n );\n }), F = () => Array.isArray(f.value) && e.value.solo && f.value[1], _ = () => {\n for (let O = 0; O < e.value.count; O++)\n if (O === 0)\n a.value[O] = a.value[0];\n else if (O === e.value.count - 1 && F())\n a.value[O] = {\n month: Me(f.value[1]),\n year: ye(f.value[1])\n };\n else {\n const J = Se(H(), a.value[O - 1]);\n a.value[O] = { month: Me(J), year: ye(Mn(J, 1)) };\n }\n }, C = (O) => {\n if (!O) return _();\n const J = Se(H(), a.value[O]);\n return a.value[0].year = ye($n(J, e.value.count - 1)), _();\n }, M = (O, J) => {\n const ce = vl(J, O);\n return t.value.showLastInRange && ce > 1 ? J : O;\n }, A = (O) => i.focusStartDate || e.value.solo ? O[0] : O[1] ? M(O[0], O[1]) : O[0], m = () => {\n if (f.value) {\n const O = Array.isArray(f.value) ? A(f.value) : f.value;\n a.value[0] = { month: Me(O), year: ye(O) };\n }\n }, z = () => {\n m(), e.value.count && _();\n };\n rt(f, (O, J) => {\n i.isTextInputDate && JSON.stringify(O ?? {}) !== JSON.stringify(J ?? {}) && z();\n }), Ue(() => {\n z();\n });\n const L = (O, J) => {\n a.value[J].year = O, v(\"update-month-year\", { instance: J, year: O, month: a.value[J].month }), e.value.count && !e.value.solo && C(J);\n }, le = j(() => (O) => Ht(R.value, (J) => {\n const ce = d.value(O) === J.value, pe = Zt(\n J.value,\n Wt(n.value.minDate),\n Wt(n.value.maxDate)\n ) || g.value.years?.includes(d.value(O)), p = xa(l.value, J.value);\n return { active: ce, disabled: pe, highlighted: p };\n })), U = (O, J) => {\n L(O, J), ee(J);\n }, $ = (O, J = !1) => {\n if (!T.value(O, J)) {\n const ce = J ? d.value(O) + 1 : d.value(O) - 1;\n L(ce, O);\n }\n }, ee = (O, J = !1, ce) => {\n J || v(\"reset-flow\"), ce !== void 0 ? h.value[O] = ce : h.value[O] = !h.value[O], h.value[O] ? v(\"overlay-toggle\", { open: !0, overlay: je.year }) : (v(\"overlay-closed\"), v(\"overlay-toggle\", { open: !1, overlay: je.year }));\n };\n return {\n isDisabled: T,\n groupedYears: le,\n showYearPicker: h,\n selectYear: L,\n toggleYearPicker: ee,\n handleYearSelect: U,\n handleYear: $\n };\n}, yr = (e, t) => {\n const {\n defaultedMultiCalendars: l,\n defaultedAriaLabels: n,\n defaultedTransitions: a,\n defaultedConfig: f,\n defaultedRange: i,\n defaultedHighlight: g,\n propDates: d,\n defaultedTz: P,\n defaultedFilters: v,\n defaultedMultiDates: R\n } = Oe(e), h = () => {\n e.isTextInputDate && z(ye(H(e.startDate)), 0);\n }, { modelValue: T, year: F, month: _, calendars: C } = na(e, t, h), M = j(() => Pn(e.formatLocale, e.locale, e.monthNameFormat)), A = Z(null), { checkMinMaxRange: m } = Tt(e), {\n selectYear: z,\n groupedYears: L,\n showYearPicker: le,\n toggleYearPicker: U,\n handleYearSelect: $,\n handleYear: ee,\n isDisabled: O\n } = jn({\n modelValue: T,\n multiCalendars: l,\n range: i,\n highlight: g,\n calendars: C,\n year: F,\n propDates: d,\n month: _,\n filters: v,\n props: e,\n emit: t\n });\n Ue(() => {\n e.startDate && (T.value && e.focusStartDate || !T.value) && z(ye(H(e.startDate)), 0);\n });\n const J = (I) => I ? { month: Me(I), year: ye(I) } : { month: null, year: null }, ce = () => T.value ? Array.isArray(T.value) ? T.value.map((I) => J(I)) : J(T.value) : J(), pe = (I, x) => {\n const c = C.value[I], o = ce();\n return Array.isArray(o) ? o.some((X) => X.year === c?.year && X.month === x) : c?.year === o.year && x === o.month;\n }, p = (I, x, c) => {\n const o = ce();\n return Array.isArray(o) ? F.value(x) === o[c]?.year && I === o[c]?.month : !1;\n }, Y = (I, x) => {\n if (i.value.enabled) {\n const c = ce();\n if (Array.isArray(T.value) && Array.isArray(c)) {\n const o = p(I, x, 0) || p(I, x, 1), X = pt(it(H()), I, F.value(x));\n return xt(T.value, A.value, X) && !o;\n }\n return !1;\n }\n return !1;\n }, te = j(() => (I) => Ht(M.value, (x) => {\n const c = pe(I, x.value), o = Zt(\n x.value,\n _n(F.value(I), d.value.minDate),\n Yn(F.value(I), d.value.maxDate)\n ) || zl(d.value.disabledDates, F.value(I), x.value) || v.value.months?.includes(x.value) || !Hl(d.value.allowedDates, F.value(I), x.value) || zn(e.yearRange, F.value(I)), X = Y(x.value, I), B = Fn(g.value, x.value, F.value(I));\n return { active: c, disabled: o, isBetween: X, highlighted: B };\n })), y = (I, x) => pt(it(H()), I, F.value(x)), V = (I, x) => {\n const c = T.value ? T.value : it(/* @__PURE__ */ new Date());\n T.value = pt(c, I, F.value(x)), t(\"auto-apply\"), t(\"update-flow-step\");\n }, S = (I, x) => {\n const c = y(I, x);\n i.value.fixedEnd || i.value.fixedStart ? T.value = Vn(c, T, t, i) : T.value ? m(c, T.value) && (T.value = tn(T, y(I, x), t)) : T.value = [y(I, x)], at().then(() => {\n pa(T.value, t, e.autoApply, e.modelAuto);\n });\n }, q = (I, x) => {\n en(y(I, x), T, R.value.limit), t(\"auto-apply\", !0);\n }, k = (I, x) => (C.value[x].month = I, u(x, C.value[x].year, I), R.value.enabled ? q(I, x) : i.value.enabled ? S(I, x) : V(I, x)), se = (I, x) => {\n z(I, x), u(x, I, null);\n }, u = (I, x, c) => {\n let o = c;\n if (!o && o !== 0) {\n const X = ce();\n o = Array.isArray(X) ? X[I].month : X.month;\n }\n t(\"update-month-year\", { instance: I, year: x, month: o });\n };\n return {\n groupedMonths: te,\n groupedYears: L,\n year: F,\n isDisabled: O,\n defaultedMultiCalendars: l,\n defaultedAriaLabels: n,\n defaultedTransitions: a,\n defaultedConfig: f,\n showYearPicker: le,\n modelValue: T,\n presetDate: (I, x) => {\n Un({\n value: I,\n modelValue: T,\n range: i.value.enabled,\n timezone: x ? void 0 : P.value.timezone\n }), t(\"auto-apply\");\n },\n setHoverDate: (I, x) => {\n A.value = y(I, x);\n },\n selectMonth: k,\n selectYear: se,\n toggleYearPicker: U,\n handleYearSelect: $,\n handleYear: ee,\n getModelMonthYear: ce\n };\n}, hr = /* @__PURE__ */ We({\n compatConfig: {\n MODE: 3\n },\n __name: \"MonthPicker\",\n props: {\n ...dt\n },\n emits: [\n \"update:internal-model-value\",\n \"overlay-closed\",\n \"reset-flow\",\n \"range-start\",\n \"range-end\",\n \"auto-apply\",\n \"update-month-year\",\n \"update-flow-step\",\n \"mount\",\n \"invalid-fixed-range\",\n \"overlay-toggle\"\n ],\n setup(e, { expose: t, emit: l }) {\n const n = l, a = Yt(), f = et(a, \"yearMode\"), i = e;\n Ue(() => {\n i.shadow || n(\"mount\", null);\n });\n const {\n groupedMonths: g,\n groupedYears: d,\n year: P,\n isDisabled: v,\n defaultedMultiCalendars: R,\n defaultedConfig: h,\n showYearPicker: T,\n modelValue: F,\n presetDate: _,\n setHoverDate: C,\n selectMonth: M,\n selectYear: A,\n toggleYearPicker: m,\n handleYearSelect: z,\n handleYear: L,\n getModelMonthYear: le\n } = yr(i, n);\n return t({ getSidebarProps: () => ({\n modelValue: F,\n year: P,\n getModelMonthYear: le,\n selectMonth: M,\n selectYear: A,\n handleYear: L\n }), presetDate: _, toggleYearPicker: ($) => m(0, $) }), ($, ee) => (w(), Te(ma, {\n \"multi-calendars\": s(R).count,\n collapse: $.collapse,\n stretch: \"\",\n \"is-mobile\": $.isMobile\n }, {\n default: we(({ instance: O }) => [\n $.$slots[\"top-extra\"] ? ie($.$slots, \"top-extra\", {\n key: 0,\n value: $.internalModelValue\n }) : Q(\"\", !0),\n $.$slots[\"month-year\"] ? ie($.$slots, \"month-year\", ze(He({ key: 1 }, {\n year: s(P),\n months: s(g)(O),\n years: s(d)(O),\n selectMonth: s(M),\n selectYear: s(A),\n instance: O\n }))) : (w(), Te(ta, {\n key: 2,\n items: s(g)(O),\n \"arrow-navigation\": $.arrowNavigation,\n \"is-last\": $.autoApply && !s(h).keepActionRow,\n \"esc-close\": $.escClose,\n height: s(h).modeHeight,\n config: $.config,\n \"no-overlay-focus\": !!($.noOverlayFocus || $.textInput),\n \"use-relative\": \"\",\n type: \"month\",\n onSelected: (J) => s(M)(J, O),\n onHoverValue: (J) => s(C)(J, O)\n }, Ge({\n header: we(() => [\n tt(Wn, He($.$props, {\n items: s(d)(O),\n instance: O,\n \"show-year-picker\": s(T)[O],\n year: s(P)(O),\n \"is-disabled\": (J) => s(v)(O, J),\n onHandleYear: (J) => s(L)(O, J),\n onYearSelect: (J) => s(z)(J, O),\n onToggleYearPicker: (J) => s(m)(O, J?.flow, J?.show)\n }), Ge({ _: 2 }, [\n Ce(s(f), (J, ce) => ({\n name: J,\n fn: we((pe) => [\n ie($.$slots, J, ze(Je(pe)))\n ])\n }))\n ]), 1040, [\"items\", \"instance\", \"show-year-picker\", \"year\", \"is-disabled\", \"onHandleYear\", \"onYearSelect\", \"onToggleYearPicker\"])\n ]),\n _: 2\n }, [\n $.$slots[\"month-overlay-value\"] ? {\n name: \"item\",\n fn: we(({ item: J }) => [\n ie($.$slots, \"month-overlay-value\", {\n text: J.text,\n value: J.value\n })\n ]),\n key: \"0\"\n } : void 0\n ]), 1032, [\"items\", \"arrow-navigation\", \"is-last\", \"esc-close\", \"height\", \"config\", \"no-overlay-focus\", \"onSelected\", \"onHoverValue\"]))\n ]),\n _: 3\n }, 8, [\"multi-calendars\", \"collapse\", \"is-mobile\"]));\n }\n}), br = (e, t) => {\n const l = () => {\n e.isTextInputDate && (v.value = ye(H(e.startDate)));\n }, { modelValue: n } = na(e, t, l), a = Z(null), { defaultedHighlight: f, defaultedMultiDates: i, defaultedFilters: g, defaultedRange: d, propDates: P } = Oe(e), v = Z();\n Ue(() => {\n e.startDate && (n.value && e.focusStartDate || !n.value) && (v.value = ye(H(e.startDate)));\n });\n const R = (m) => Array.isArray(n.value) ? n.value.some((z) => ye(z) === m) : n.value ? ye(n.value) === m : !1, h = (m) => d.value.enabled && Array.isArray(n.value) ? xt(n.value, a.value, C(m)) : !1, T = (m) => P.value.allowedDates instanceof Map ? P.value.allowedDates.size ? P.value.allowedDates.has(`${m}`) : !1 : !0, F = (m) => P.value.disabledDates instanceof Map ? P.value.disabledDates.size ? P.value.disabledDates.has(`${m}`) : !1 : typeof P.value.disabledDates == \"function\" ? P.value.disabledDates(ut(Fe(Gt(H())), m)) : !0, _ = j(() => Ht(qa(e.yearRange, e.locale, e.reverseYears), (m) => {\n const z = R(m.value), L = Zt(\n m.value,\n Wt(P.value.minDate),\n Wt(P.value.maxDate)\n ) || g.value.years.includes(m.value) || !T(m.value) || F(m.value), le = h(m.value) && !z, U = xa(f.value, m.value);\n return { active: z, disabled: L, isBetween: le, highlighted: U };\n })), C = (m) => ut(it(Gt(/* @__PURE__ */ new Date())), m);\n return {\n groupedYears: _,\n modelValue: n,\n focusYear: v,\n setHoverValue: (m) => {\n a.value = ut(it(/* @__PURE__ */ new Date()), m);\n },\n selectYear: (m) => {\n if (t(\"update-month-year\", { instance: 0, year: m }), i.value.enabled)\n return n.value ? Array.isArray(n.value) && ((n.value?.map((L) => ye(L))).includes(m) ? n.value = n.value.filter((L) => ye(L) !== m) : n.value.push(ut(Fe(H()), m))) : n.value = [ut(Fe(Gt(H())), m)], t(\"auto-apply\", !0);\n d.value.enabled ? (n.value = tn(n, C(m), t), at().then(() => {\n pa(n.value, t, e.autoApply, e.modelAuto);\n })) : (n.value = C(m), t(\"auto-apply\"));\n }\n };\n}, kr = /* @__PURE__ */ We({\n compatConfig: {\n MODE: 3\n },\n __name: \"YearPicker\",\n props: {\n ...dt\n },\n emits: [\n \"update:internal-model-value\",\n \"reset-flow\",\n \"range-start\",\n \"range-end\",\n \"auto-apply\",\n \"update-month-year\"\n ],\n setup(e, { expose: t, emit: l }) {\n const n = l, a = e, { groupedYears: f, modelValue: i, focusYear: g, selectYear: d, setHoverValue: P } = br(a, n), { defaultedConfig: v } = Oe(a);\n return t({ getSidebarProps: () => ({\n modelValue: i,\n selectYear: d\n }) }), (h, T) => (w(), W(\"div\", null, [\n h.$slots[\"top-extra\"] ? ie(h.$slots, \"top-extra\", {\n key: 0,\n value: h.internalModelValue\n }) : Q(\"\", !0),\n h.$slots[\"month-year\"] ? ie(h.$slots, \"month-year\", ze(He({ key: 1 }, {\n years: s(f),\n selectYear: s(d)\n }))) : (w(), Te(ta, {\n key: 2,\n items: s(f),\n \"is-last\": h.autoApply && !s(v).keepActionRow,\n height: s(v).modeHeight,\n config: h.config,\n \"no-overlay-focus\": !!(h.noOverlayFocus || h.textInput),\n \"focus-value\": s(g),\n type: \"year\",\n \"use-relative\": \"\",\n onSelected: s(d),\n onHoverValue: s(P)\n }, Ge({ _: 2 }, [\n h.$slots[\"year-overlay-value\"] ? {\n name: \"item\",\n fn: we(({ item: F }) => [\n ie(h.$slots, \"year-overlay-value\", {\n text: F.text,\n value: F.value\n })\n ]),\n key: \"0\"\n } : void 0\n ]), 1032, [\"items\", \"is-last\", \"height\", \"config\", \"no-overlay-focus\", \"focus-value\", \"onSelected\", \"onHoverValue\"]))\n ]));\n }\n}), wr = {\n key: 0,\n class: \"dp__time_input\"\n}, Dr = [\"data-compact\", \"data-collapsed\"], Mr = [\"data-test-id\", \"aria-label\", \"onKeydown\", \"onClick\", \"onMousedown\"], $r = [\"aria-label\", \"disabled\", \"data-test-id\", \"onKeydown\", \"onClick\"], Ar = [\"data-test-id\", \"aria-label\", \"onKeydown\", \"onClick\", \"onMousedown\"], Tr = { key: 0 }, Sr = [\"aria-label\", \"data-compact\"], Pr = /* @__PURE__ */ We({\n compatConfig: {\n MODE: 3\n },\n __name: \"TimeInput\",\n props: {\n hours: { type: Number, default: 0 },\n minutes: { type: Number, default: 0 },\n seconds: { type: Number, default: 0 },\n closeTimePickerBtn: { type: Object, default: null },\n order: { type: Number, default: 0 },\n disabledTimesConfig: { type: Function, default: null },\n validateTime: { type: Function, default: () => !1 },\n ...dt\n },\n emits: [\n \"set-hours\",\n \"set-minutes\",\n \"update:hours\",\n \"update:minutes\",\n \"update:seconds\",\n \"reset-flow\",\n \"mounted\",\n \"overlay-closed\",\n \"overlay-opened\",\n \"am-pm-change\"\n ],\n setup(e, { expose: t, emit: l }) {\n const n = l, a = e, { setTimePickerElements: f, setTimePickerBackRef: i } = At(), {\n defaultedAriaLabels: g,\n defaultedTransitions: d,\n defaultedFilters: P,\n defaultedConfig: v,\n defaultedRange: R,\n defaultedMultiCalendars: h\n } = Oe(a), { transitionName: T, showTransition: F } = aa(d), _ = ea({\n hours: !1,\n minutes: !1,\n seconds: !1\n }), C = Z(\"AM\"), M = Z(null), A = Z([]), m = Z(), z = Z(!1);\n Ue(() => {\n n(\"mounted\");\n });\n const L = (r) => Se(/* @__PURE__ */ new Date(), {\n hours: r.hours,\n minutes: r.minutes,\n seconds: a.enableSeconds ? r.seconds : 0,\n milliseconds: 0\n }), le = j(\n () => (r) => S(r, a[r]) || $(r, a[r])\n ), U = j(() => ({ hours: a.hours, minutes: a.minutes, seconds: a.seconds })), $ = (r, E) => R.value.enabled && !R.value.disableTimeRangeValidation ? !a.validateTime(r, E) : !1, ee = (r, E) => {\n if (R.value.enabled && !R.value.disableTimeRangeValidation) {\n const K = E ? +a[`${r}Increment`] : -+a[`${r}Increment`], oe = a[r] + K;\n return !a.validateTime(r, oe);\n }\n return !1;\n }, O = j(() => (r) => !re(+a[r] + +a[`${r}Increment`], r) || ee(r, !0)), J = j(() => (r) => !re(+a[r] - +a[`${r}Increment`], r) || ee(r, !1)), ce = (r, E) => Tn(Se(H(), r), E), pe = (r, E) => ml(Se(H(), r), E), p = j(\n () => ({\n dp__time_col: !0,\n dp__time_col_block: !a.timePickerInline,\n dp__time_col_reg_block: !a.enableSeconds && a.is24 && !a.timePickerInline,\n dp__time_col_reg_inline: !a.enableSeconds && a.is24 && a.timePickerInline,\n dp__time_col_reg_with_button: !a.enableSeconds && !a.is24,\n dp__time_col_sec: a.enableSeconds && a.is24,\n dp__time_col_sec_with_button: a.enableSeconds && !a.is24\n })\n ), Y = j(\n () => a.timePickerInline && R.value.enabled && !h.value.count\n ), te = j(() => {\n const r = [{ type: \"hours\" }];\n return a.enableMinutes && r.push({ type: \"\", separator: !0 }, {\n type: \"minutes\"\n }), a.enableSeconds && r.push({ type: \"\", separator: !0 }, {\n type: \"seconds\"\n }), r;\n }), y = j(() => te.value.filter((r) => !r.separator)), V = j(() => (r) => {\n if (r === \"hours\") {\n const E = X(+a.hours);\n return { text: E < 10 ? `0${E}` : `${E}`, value: E };\n }\n return { text: a[r] < 10 ? `0${a[r]}` : `${a[r]}`, value: a[r] };\n }), S = (r, E) => {\n if (!a.disabledTimesConfig) return !1;\n const K = a.disabledTimesConfig(a.order, r === \"hours\" ? E : void 0);\n return K[r] ? !!K[r]?.includes(E) : !0;\n }, q = (r, E) => E !== \"hours\" || C.value === \"AM\" ? r : r + 12, k = (r) => {\n const E = a.is24 ? 24 : 12, K = r === \"hours\" ? E : 60, oe = +a[`${r}GridIncrement`], ge = r === \"hours\" && !a.is24 ? oe : 0, _e = [];\n for (let Ye = ge; Ye < K; Ye += oe)\n _e.push({ value: a.is24 ? Ye : q(Ye, r), text: Ye < 10 ? `0${Ye}` : `${Ye}` });\n return r === \"hours\" && !a.is24 && _e.unshift({ value: C.value === \"PM\" ? 12 : 0, text: \"12\" }), Ht(_e, (Ye) => ({ active: !1, disabled: P.value.times[r].includes(Ye.value) || !re(Ye.value, r) || S(r, Ye.value) || $(r, Ye.value) }));\n }, se = (r) => r >= 0 ? r : 59, u = (r) => r >= 0 ? r : 23, re = (r, E) => {\n const K = a.minTime ? L(Sa(a.minTime)) : null, oe = a.maxTime ? L(Sa(a.maxTime)) : null, ge = L(\n Sa(\n U.value,\n E,\n E === \"minutes\" || E === \"seconds\" ? se(r) : u(r)\n )\n );\n return K && oe ? (Ft(ge, oe) || Nt(ge, oe)) && (_t(ge, K) || Nt(ge, K)) : K ? _t(ge, K) || Nt(ge, K) : oe ? Ft(ge, oe) || Nt(ge, oe) : !0;\n }, G = (r) => a[`no${r[0].toUpperCase() + r.slice(1)}Overlay`], I = (r) => {\n G(r) || (_[r] = !_[r], _[r] ? (z.value = !0, n(\"overlay-opened\", r)) : (z.value = !1, n(\"overlay-closed\", r)));\n }, x = (r) => r === \"hours\" ? yt : r === \"minutes\" ? $t : zt, c = () => {\n m.value && clearTimeout(m.value);\n }, o = (r, E = !0, K) => {\n const oe = E ? ce : pe, ge = E ? +a[`${r}Increment`] : -+a[`${r}Increment`];\n re(+a[r] + ge, r) && n(\n `update:${r}`,\n x(r)(oe({ [r]: +a[r] }, { [r]: +a[`${r}Increment`] }))\n ), !K?.keyboard && v.value.timeArrowHoldThreshold && (m.value = setTimeout(() => {\n o(r, E);\n }, v.value.timeArrowHoldThreshold));\n }, X = (r) => a.is24 ? r : (r >= 12 ? C.value = \"PM\" : C.value = \"AM\", Sl(r)), B = () => {\n C.value === \"PM\" ? (C.value = \"AM\", n(\"update:hours\", a.hours - 12)) : (C.value = \"PM\", n(\"update:hours\", a.hours + 12)), n(\"am-pm-change\", C.value);\n }, be = (r) => {\n _[r] = !0;\n }, Ae = (r, E, K) => {\n if (r && a.arrowNavigation) {\n Array.isArray(A.value[E]) ? A.value[E][K] = r : A.value[E] = [r];\n const oe = A.value.reduce(\n (ge, _e) => _e.map((Ye, nt) => [...ge[nt] || [], _e[nt]]),\n []\n );\n i(a.closeTimePickerBtn), M.value && (oe[1] = oe[1].concat(M.value)), f(oe, a.order);\n }\n }, ne = (r, E) => (I(r), n(`update:${r}`, E));\n return t({ openChildCmp: be }), (r, E) => r.disabled ? Q(\"\", !0) : (w(), W(\"div\", wr, [\n (w(!0), W(ke, null, Ce(te.value, (K, oe) => (w(), W(\"div\", {\n key: oe,\n class: De(p.value),\n \"data-compact\": Y.value && !r.enableSeconds,\n \"data-collapsed\": Y.value && r.enableSeconds\n }, [\n K.separator ? (w(), W(ke, { key: 0 }, [\n z.value ? Q(\"\", !0) : (w(), W(ke, { key: 0 }, [\n gt(\":\")\n ], 64))\n ], 64)) : (w(), W(ke, { key: 1 }, [\n he(\"button\", {\n ref_for: !0,\n ref: (ge) => Ae(ge, oe, 0),\n type: \"button\",\n class: De({\n dp__btn: !0,\n dp__inc_dec_button: !r.timePickerInline,\n dp__inc_dec_button_inline: r.timePickerInline,\n dp__tp_inline_btn_top: r.timePickerInline,\n dp__inc_dec_button_disabled: O.value(K.type),\n \"dp--hidden-el\": z.value\n }),\n \"data-test-id\": `${K.type}-time-inc-btn-${a.order}`,\n \"aria-label\": s(g)?.incrementValue(K.type),\n tabindex: \"0\",\n onKeydown: (ge) => s(qe)(ge, () => o(K.type, !0, { keyboard: !0 }), !0),\n onClick: (ge) => s(v).timeArrowHoldThreshold ? void 0 : o(K.type, !0),\n onMousedown: (ge) => s(v).timeArrowHoldThreshold ? o(K.type, !0) : void 0,\n onMouseup: c\n }, [\n a.timePickerInline ? (w(), W(ke, { key: 1 }, [\n r.$slots[\"tp-inline-arrow-up\"] ? ie(r.$slots, \"tp-inline-arrow-up\", { key: 0 }) : (w(), W(ke, { key: 1 }, [\n E[2] || (E[2] = he(\"span\", { class: \"dp__tp_inline_btn_bar dp__tp_btn_in_l\" }, null, -1)),\n E[3] || (E[3] = he(\"span\", { class: \"dp__tp_inline_btn_bar dp__tp_btn_in_r\" }, null, -1))\n ], 64))\n ], 64)) : (w(), W(ke, { key: 0 }, [\n r.$slots[\"arrow-up\"] ? ie(r.$slots, \"arrow-up\", { key: 0 }) : Q(\"\", !0),\n r.$slots[\"arrow-up\"] ? Q(\"\", !0) : (w(), Te(s(Ka), { key: 1 }))\n ], 64))\n ], 42, Mr),\n he(\"button\", {\n ref_for: !0,\n ref: (ge) => Ae(ge, oe, 1),\n type: \"button\",\n \"aria-label\": `${V.value(K.type).text}-${s(g)?.openTpOverlay(K.type)}`,\n class: De({\n dp__time_display: !0,\n dp__time_display_block: !r.timePickerInline,\n dp__time_display_inline: r.timePickerInline,\n \"dp--time-invalid\": le.value(K.type),\n \"dp--time-overlay-btn\": !le.value(K.type),\n \"dp--hidden-el\": z.value\n }),\n disabled: G(K.type),\n tabindex: \"0\",\n \"data-test-id\": `${K.type}-toggle-overlay-btn-${a.order}`,\n onKeydown: (ge) => s(qe)(ge, () => I(K.type), !0),\n onClick: (ge) => I(K.type)\n }, [\n r.$slots[K.type] ? ie(r.$slots, K.type, {\n key: 0,\n text: V.value(K.type).text,\n value: V.value(K.type).value\n }) : Q(\"\", !0),\n r.$slots[K.type] ? Q(\"\", !0) : (w(), W(ke, { key: 1 }, [\n gt(Ke(V.value(K.type).text), 1)\n ], 64))\n ], 42, $r),\n he(\"button\", {\n ref_for: !0,\n ref: (ge) => Ae(ge, oe, 2),\n type: \"button\",\n class: De({\n dp__btn: !0,\n dp__inc_dec_button: !r.timePickerInline,\n dp__inc_dec_button_inline: r.timePickerInline,\n dp__tp_inline_btn_bottom: r.timePickerInline,\n dp__inc_dec_button_disabled: J.value(K.type),\n \"dp--hidden-el\": z.value\n }),\n \"data-test-id\": `${K.type}-time-dec-btn-${a.order}`,\n \"aria-label\": s(g)?.decrementValue(K.type),\n tabindex: \"0\",\n onKeydown: (ge) => s(qe)(ge, () => o(K.type, !1, { keyboard: !0 }), !0),\n onClick: (ge) => s(v).timeArrowHoldThreshold ? void 0 : o(K.type, !1),\n onMousedown: (ge) => s(v).timeArrowHoldThreshold ? o(K.type, !1) : void 0,\n onMouseup: c\n }, [\n a.timePickerInline ? (w(), W(ke, { key: 1 }, [\n r.$slots[\"tp-inline-arrow-down\"] ? ie(r.$slots, \"tp-inline-arrow-down\", { key: 0 }) : (w(), W(ke, { key: 1 }, [\n E[4] || (E[4] = he(\"span\", { class: \"dp__tp_inline_btn_bar dp__tp_btn_in_l\" }, null, -1)),\n E[5] || (E[5] = he(\"span\", { class: \"dp__tp_inline_btn_bar dp__tp_btn_in_r\" }, null, -1))\n ], 64))\n ], 64)) : (w(), W(ke, { key: 0 }, [\n r.$slots[\"arrow-down\"] ? ie(r.$slots, \"arrow-down\", { key: 0 }) : Q(\"\", !0),\n r.$slots[\"arrow-down\"] ? Q(\"\", !0) : (w(), Te(s(Ga), { key: 1 }))\n ], 64))\n ], 42, Ar)\n ], 64))\n ], 10, Dr))), 128)),\n r.is24 ? Q(\"\", !0) : (w(), W(\"div\", Tr, [\n r.$slots[\"am-pm-button\"] ? ie(r.$slots, \"am-pm-button\", {\n key: 0,\n toggle: B,\n value: C.value\n }) : Q(\"\", !0),\n r.$slots[\"am-pm-button\"] ? Q(\"\", !0) : (w(), W(\"button\", {\n key: 1,\n ref_key: \"amPmButton\",\n ref: M,\n type: \"button\",\n class: \"dp__pm_am_button\",\n role: \"button\",\n \"aria-label\": s(g)?.amPmButton,\n tabindex: \"0\",\n \"data-compact\": Y.value,\n onClick: B,\n onKeydown: E[0] || (E[0] = (K) => s(qe)(K, () => B(), !0))\n }, Ke(C.value), 41, Sr))\n ])),\n (w(!0), W(ke, null, Ce(y.value, (K, oe) => (w(), Te(Vt, {\n key: oe,\n name: s(T)(_[K.type]),\n css: s(F)\n }, {\n default: we(() => [\n _[K.type] ? (w(), Te(ta, {\n key: 0,\n items: k(K.type),\n \"is-last\": r.autoApply && !s(v).keepActionRow,\n \"esc-close\": r.escClose,\n type: K.type,\n \"text-input\": r.textInput,\n config: r.config,\n \"arrow-navigation\": r.arrowNavigation,\n \"aria-labels\": r.ariaLabels,\n \"overlay-label\": s(g).timeOverlay?.(K.type),\n onSelected: (ge) => ne(K.type, ge),\n onToggle: (ge) => I(K.type),\n onResetFlow: E[1] || (E[1] = (ge) => r.$emit(\"reset-flow\"))\n }, Ge({\n \"button-icon\": we(() => [\n r.$slots[\"clock-icon\"] ? ie(r.$slots, \"clock-icon\", { key: 0 }) : Q(\"\", !0),\n r.$slots[\"clock-icon\"] ? Q(\"\", !0) : (w(), Te(fa(r.timePickerInline ? s(jt) : s(ja)), { key: 1 }))\n ]),\n _: 2\n }, [\n r.$slots[`${K.type}-overlay-value`] ? {\n name: \"item\",\n fn: we(({ item: ge }) => [\n ie(r.$slots, `${K.type}-overlay-value`, {\n text: ge.text,\n value: ge.value\n })\n ]),\n key: \"0\"\n } : void 0,\n r.$slots[`${K.type}-overlay-header`] ? {\n name: \"header\",\n fn: we(() => [\n ie(r.$slots, `${K.type}-overlay-header`, {\n toggle: () => I(K.type)\n })\n ]),\n key: \"1\"\n } : void 0\n ]), 1032, [\"items\", \"is-last\", \"esc-close\", \"type\", \"text-input\", \"config\", \"arrow-navigation\", \"aria-labels\", \"overlay-label\", \"onSelected\", \"onToggle\"])) : Q(\"\", !0)\n ]),\n _: 2\n }, 1032, [\"name\", \"css\"]))), 128))\n ]));\n }\n}), Rr = [\"data-dp-mobile\"], Cr = [\"aria-label\", \"tabindex\"], Or = [\"role\", \"aria-label\", \"tabindex\"], Br = [\"aria-label\"], Kn = /* @__PURE__ */ We({\n compatConfig: {\n MODE: 3\n },\n __name: \"TimePicker\",\n props: {\n hours: { type: [Number, Array], default: 0 },\n minutes: { type: [Number, Array], default: 0 },\n seconds: { type: [Number, Array], default: 0 },\n disabledTimesConfig: { type: Function, default: null },\n validateTime: {\n type: Function,\n default: () => !1\n },\n ...dt\n },\n emits: [\n \"update:hours\",\n \"update:minutes\",\n \"update:seconds\",\n \"mount\",\n \"reset-flow\",\n \"overlay-opened\",\n \"overlay-closed\",\n \"am-pm-change\"\n ],\n setup(e, { expose: t, emit: l }) {\n const n = l, a = e, { buildMatrix: f, setTimePicker: i } = At(), g = Yt(), { defaultedTransitions: d, defaultedAriaLabels: P, defaultedTextInput: v, defaultedConfig: R, defaultedRange: h } = Oe(a), { transitionName: T, showTransition: F } = aa(d), { hideNavigationButtons: _ } = ga(), C = Z(null), M = Z(null), A = Z([]), m = Z(null), z = Z(!1);\n Ue(() => {\n n(\"mount\"), !a.timePicker && a.arrowNavigation ? f([Le(C.value)], \"time\") : i(!0, a.timePicker);\n });\n const L = j(() => h.value.enabled && a.modelAuto ? Rn(a.internalModelValue) : !0), le = Z(!1), U = (S) => ({\n hours: Array.isArray(a.hours) ? a.hours[S] : a.hours,\n minutes: Array.isArray(a.minutes) ? a.minutes[S] : a.minutes,\n seconds: Array.isArray(a.seconds) ? a.seconds[S] : a.seconds\n }), $ = j(() => {\n const S = [];\n if (h.value.enabled)\n for (let q = 0; q < 2; q++)\n S.push(U(q));\n else\n S.push(U(0));\n return S;\n }), ee = (S, q = !1, k = \"\") => {\n q || n(\"reset-flow\"), le.value = S, n(S ? \"overlay-opened\" : \"overlay-closed\", je.time), a.arrowNavigation && i(S), at(() => {\n k !== \"\" && A.value[0] && A.value[0].openChildCmp(k);\n });\n }, O = j(() => ({\n dp__btn: !0,\n dp__button: !0,\n dp__button_bottom: a.autoApply && !R.value.keepActionRow\n })), J = et(g, \"timePicker\"), ce = (S, q, k) => h.value.enabled ? q === 0 ? [S, $.value[1][k]] : [$.value[0][k], S] : S, pe = (S) => {\n n(\"update:hours\", S);\n }, p = (S) => {\n n(\"update:minutes\", S);\n }, Y = (S) => {\n n(\"update:seconds\", S);\n }, te = () => {\n if (m.value && !v.value.enabled && !a.noOverlayFocus) {\n const S = Cn(m.value);\n S && S.focus({ preventScroll: !0 });\n }\n }, y = (S) => {\n z.value = !1, n(\"overlay-closed\", S);\n }, V = (S) => {\n z.value = !0, n(\"overlay-opened\", S);\n };\n return t({ toggleTimePicker: ee }), (S, q) => (w(), W(\"div\", {\n class: \"dp--tp-wrap\",\n \"data-dp-mobile\": S.isMobile\n }, [\n !S.timePicker && !S.timePickerInline ? ua((w(), W(\"button\", {\n key: 0,\n ref_key: \"openTimePickerBtn\",\n ref: C,\n type: \"button\",\n class: De({ ...O.value, \"dp--hidden-el\": le.value }),\n \"aria-label\": s(P)?.openTimePicker,\n tabindex: S.noOverlayFocus ? void 0 : 0,\n \"data-test-id\": \"open-time-picker-btn\",\n onKeydown: q[0] || (q[0] = (k) => s(qe)(k, () => ee(!0))),\n onClick: q[1] || (q[1] = (k) => ee(!0))\n }, [\n S.$slots[\"clock-icon\"] ? ie(S.$slots, \"clock-icon\", { key: 0 }) : Q(\"\", !0),\n S.$slots[\"clock-icon\"] ? Q(\"\", !0) : (w(), Te(s(ja), { key: 1 }))\n ], 42, Cr)), [\n [ia, !s(_)(S.hideNavigation, \"time\")]\n ]) : Q(\"\", !0),\n tt(Vt, {\n name: s(T)(le.value),\n css: s(F) && !S.timePickerInline\n }, {\n default: we(() => [\n le.value || S.timePicker || S.timePickerInline ? (w(), W(\"div\", {\n key: 0,\n ref_key: \"overlayRef\",\n ref: m,\n role: S.timePickerInline ? void 0 : \"dialog\",\n class: De({\n dp__overlay: !S.timePickerInline,\n \"dp--overlay-absolute\": !a.timePicker && !S.timePickerInline,\n \"dp--overlay-relative\": a.timePicker\n }),\n style: lt(S.timePicker ? { height: `${s(R).modeHeight}px` } : void 0),\n \"aria-label\": s(P)?.timePicker,\n tabindex: S.timePickerInline ? void 0 : 0\n }, [\n he(\"div\", {\n class: De(\n S.timePickerInline ? \"dp__time_picker_inline_container\" : \"dp__overlay_container dp__container_flex dp__time_picker_overlay_container\"\n ),\n style: { display: \"flex\" }\n }, [\n S.$slots[\"time-picker-overlay\"] ? ie(S.$slots, \"time-picker-overlay\", {\n key: 0,\n hours: e.hours,\n minutes: e.minutes,\n seconds: e.seconds,\n setHours: pe,\n setMinutes: p,\n setSeconds: Y\n }) : Q(\"\", !0),\n S.$slots[\"time-picker-overlay\"] ? Q(\"\", !0) : (w(), W(\"div\", {\n key: 1,\n class: De(S.timePickerInline ? \"dp__flex\" : \"dp__overlay_row dp__flex_row\")\n }, [\n (w(!0), W(ke, null, Ce($.value, (k, se) => ua((w(), Te(Pr, He({ key: se }, { ref_for: !0 }, {\n ...S.$props,\n order: se,\n hours: k.hours,\n minutes: k.minutes,\n seconds: k.seconds,\n closeTimePickerBtn: M.value,\n disabledTimesConfig: e.disabledTimesConfig,\n disabled: se === 0 ? s(h).fixedStart : s(h).fixedEnd\n }, {\n ref_for: !0,\n ref_key: \"timeInputRefs\",\n ref: A,\n \"validate-time\": (u, re) => e.validateTime(u, ce(re, se, u)),\n \"onUpdate:hours\": (u) => pe(ce(u, se, \"hours\")),\n \"onUpdate:minutes\": (u) => p(ce(u, se, \"minutes\")),\n \"onUpdate:seconds\": (u) => Y(ce(u, se, \"seconds\")),\n onMounted: te,\n onOverlayClosed: y,\n onOverlayOpened: V,\n onAmPmChange: q[2] || (q[2] = (u) => S.$emit(\"am-pm-change\", u))\n }), Ge({ _: 2 }, [\n Ce(s(J), (u, re) => ({\n name: u,\n fn: we((G) => [\n ie(S.$slots, u, He({ ref_for: !0 }, G))\n ])\n }))\n ]), 1040, [\"validate-time\", \"onUpdate:hours\", \"onUpdate:minutes\", \"onUpdate:seconds\"])), [\n [ia, se === 0 ? !0 : L.value]\n ])), 128))\n ], 2)),\n !S.timePicker && !S.timePickerInline ? ua((w(), W(\"button\", {\n key: 2,\n ref_key: \"closeTimePickerBtn\",\n ref: M,\n type: \"button\",\n class: De({ ...O.value, \"dp--hidden-el\": z.value }),\n \"aria-label\": s(P)?.closeTimePicker,\n tabindex: \"0\",\n onKeydown: q[3] || (q[3] = (k) => s(qe)(k, () => ee(!1))),\n onClick: q[4] || (q[4] = (k) => ee(!1))\n }, [\n S.$slots[\"calendar-icon\"] ? ie(S.$slots, \"calendar-icon\", { key: 0 }) : Q(\"\", !0),\n S.$slots[\"calendar-icon\"] ? Q(\"\", !0) : (w(), Te(s(jt), { key: 1 }))\n ], 42, Br)), [\n [ia, !s(_)(S.hideNavigation, \"time\")]\n ]) : Q(\"\", !0)\n ], 2)\n ], 14, Or)) : Q(\"\", !0)\n ]),\n _: 3\n }, 8, [\"name\", \"css\"])\n ], 8, Rr));\n }\n}), Gn = (e, t, l, n) => {\n const { defaultedRange: a } = Oe(e), f = (m, z) => Array.isArray(t[m]) ? t[m][z] : t[m], i = (m) => e.enableSeconds ? Array.isArray(t.seconds) ? t.seconds[m] : t.seconds : 0, g = (m, z) => m ? z !== void 0 ? Mt(m, f(\"hours\", z), f(\"minutes\", z), i(z)) : Mt(m, t.hours, t.minutes, i()) : wn(H(), i(z)), d = (m, z) => {\n t[m] = z;\n }, P = j(() => e.modelAuto && a.value.enabled ? Array.isArray(l.value) ? l.value.length > 1 : !1 : a.value.enabled), v = (m, z) => {\n const L = Object.fromEntries(\n Object.keys(t).map((le) => le === m ? [le, z] : [le, t[le]].slice())\n );\n if (P.value && !a.value.disableTimeRangeValidation) {\n const le = ($) => l.value ? Mt(\n l.value[$],\n L.hours[$],\n L.minutes[$],\n L.seconds[$]\n ) : null, U = ($) => Dn(l.value[$], 0);\n return !($e(le(0), le(1)) && (_t(le(0), U(1)) || Ft(le(1), U(0))));\n }\n return !0;\n }, R = (m, z) => {\n v(m, z) && (d(m, z), n && n());\n }, h = (m) => {\n R(\"hours\", m);\n }, T = (m) => {\n R(\"minutes\", m);\n }, F = (m) => {\n R(\"seconds\", m);\n }, _ = (m, z, L, le) => {\n z && h(m), !z && !L && T(m), L && F(m), l.value && le(l.value);\n }, C = (m) => {\n if (m) {\n const z = Array.isArray(m), L = z ? [+m[0].hours, +m[1].hours] : +m.hours, le = z ? [+m[0].minutes, +m[1].minutes] : +m.minutes, U = z ? [+m[0].seconds, +m[1].seconds] : +m.seconds;\n d(\"hours\", L), d(\"minutes\", le), e.enableSeconds && d(\"seconds\", U);\n }\n }, M = (m, z) => {\n const L = {\n hours: Array.isArray(t.hours) ? t.hours[m] : t.hours,\n disabledArr: []\n };\n return (z || z === 0) && (L.hours = z), Array.isArray(e.disabledTimes) && (L.disabledArr = a.value.enabled && Array.isArray(e.disabledTimes[m]) ? e.disabledTimes[m] : e.disabledTimes), L;\n }, A = j(() => (m, z) => {\n if (Array.isArray(e.disabledTimes)) {\n const { disabledArr: L, hours: le } = M(m, z), U = L.filter(($) => +$.hours === le);\n return U[0]?.minutes === \"*\" ? { hours: [le], minutes: void 0, seconds: void 0 } : {\n hours: [],\n minutes: U?.map(($) => +$.minutes) ?? [],\n seconds: U?.map(($) => $.seconds ? +$.seconds : void 0) ?? []\n };\n }\n return { hours: [], minutes: [], seconds: [] };\n });\n return {\n setTime: d,\n updateHours: h,\n updateMinutes: T,\n updateSeconds: F,\n getSetDateTime: g,\n updateTimeValues: _,\n getSecondsValue: i,\n assignStartTime: C,\n validateTime: v,\n disabledTimesConfig: A\n };\n}, _r = (e, t) => {\n const l = () => {\n e.isTextInputDate && z();\n }, { modelValue: n, time: a } = na(e, t, l), { defaultedStartTime: f, defaultedRange: i, defaultedTz: g } = Oe(e), { updateTimeValues: d, getSetDateTime: P, setTime: v, assignStartTime: R, disabledTimesConfig: h, validateTime: T } = Gn(e, a, n, F);\n function F() {\n t(\"update-flow-step\");\n }\n const _ = (U) => {\n const { hours: $, minutes: ee, seconds: O } = U;\n return { hours: +$, minutes: +ee, seconds: O ? +O : 0 };\n }, C = () => {\n if (e.startTime) {\n if (Array.isArray(e.startTime)) {\n const $ = _(e.startTime[0]), ee = _(e.startTime[1]);\n return [Se(H(), $), Se(H(), ee)];\n }\n const U = _(e.startTime);\n return Se(H(), U);\n }\n return i.value.enabled ? [null, null] : null;\n }, M = () => {\n if (i.value.enabled) {\n const [U, $] = C();\n n.value = [\n Ze(P(U, 0), g.value.timezone),\n Ze(P($, 1), g.value.timezone)\n ];\n } else\n n.value = Ze(P(C()), g.value.timezone);\n }, A = (U) => Array.isArray(U) ? [Bt(H(U[0])), Bt(H(U[1]))] : [Bt(U ?? H())], m = (U, $, ee) => {\n v(\"hours\", U), v(\"minutes\", $), v(\"seconds\", e.enableSeconds ? ee : 0);\n }, z = () => {\n const [U, $] = A(n.value);\n return i.value.enabled ? m(\n [U.hours, $.hours],\n [U.minutes, $.minutes],\n [U.seconds, $.seconds]\n ) : m(U.hours, U.minutes, U.seconds);\n };\n Ue(() => {\n if (!e.shadow)\n return R(f.value), n.value ? z() : M();\n });\n const L = () => {\n Array.isArray(n.value) ? n.value = n.value.map((U, $) => U && P(U, $)) : n.value = P(n.value), t(\"time-update\");\n };\n return {\n modelValue: n,\n time: a,\n disabledTimesConfig: h,\n updateTime: (U, $ = !0, ee = !1) => {\n d(U, $, ee, L);\n },\n validateTime: T\n };\n}, Yr = /* @__PURE__ */ We({\n compatConfig: {\n MODE: 3\n },\n __name: \"TimePickerSolo\",\n props: {\n ...dt\n },\n emits: [\n \"update:internal-model-value\",\n \"time-update\",\n \"am-pm-change\",\n \"mount\",\n \"reset-flow\",\n \"update-flow-step\",\n \"overlay-toggle\"\n ],\n setup(e, { expose: t, emit: l }) {\n const n = l, a = e, f = Yt(), i = et(f, \"timePicker\"), g = Z(null), { time: d, modelValue: P, disabledTimesConfig: v, updateTime: R, validateTime: h } = _r(a, n);\n return Ue(() => {\n a.shadow || n(\"mount\", null);\n }), t({ getSidebarProps: () => ({\n modelValue: P,\n time: d,\n updateTime: R\n }), toggleTimePicker: (_, C = !1, M = \"\") => {\n g.value?.toggleTimePicker(_, C, M);\n } }), (_, C) => (w(), Te(ma, {\n \"multi-calendars\": 0,\n stretch: \"\",\n \"is-mobile\": _.isMobile\n }, {\n default: we(() => [\n tt(Kn, He({\n ref_key: \"tpRef\",\n ref: g\n }, _.$props, {\n hours: s(d).hours,\n minutes: s(d).minutes,\n seconds: s(d).seconds,\n \"internal-model-value\": _.internalModelValue,\n \"disabled-times-config\": s(v),\n \"validate-time\": s(h),\n \"onUpdate:hours\": C[0] || (C[0] = (M) => s(R)(M)),\n \"onUpdate:minutes\": C[1] || (C[1] = (M) => s(R)(M, !1)),\n \"onUpdate:seconds\": C[2] || (C[2] = (M) => s(R)(M, !1, !0)),\n onAmPmChange: C[3] || (C[3] = (M) => _.$emit(\"am-pm-change\", M)),\n onResetFlow: C[4] || (C[4] = (M) => _.$emit(\"reset-flow\")),\n onOverlayClosed: C[5] || (C[5] = (M) => _.$emit(\"overlay-toggle\", { open: !1, overlay: M })),\n onOverlayOpened: C[6] || (C[6] = (M) => _.$emit(\"overlay-toggle\", { open: !0, overlay: M }))\n }), Ge({ _: 2 }, [\n Ce(s(i), (M, A) => ({\n name: M,\n fn: we((m) => [\n ie(_.$slots, M, ze(Je(m)))\n ])\n }))\n ]), 1040, [\"hours\", \"minutes\", \"seconds\", \"internal-model-value\", \"disabled-times-config\", \"validate-time\"])\n ]),\n _: 3\n }, 8, [\"is-mobile\"]));\n }\n}), Ir = { class: \"dp--header-wrap\" }, Er = {\n key: 0,\n class: \"dp__month_year_wrap\"\n}, Nr = { key: 0 }, Lr = { class: \"dp__month_year_wrap\" }, Fr = [\"data-dp-element\", \"aria-label\", \"data-test-id\", \"onClick\", \"onKeydown\"], zr = /* @__PURE__ */ We({\n compatConfig: {\n MODE: 3\n },\n __name: \"DpHeader\",\n props: {\n month: { type: Number, default: 0 },\n year: { type: Number, default: 0 },\n instance: { type: Number, default: 0 },\n years: { type: Array, default: () => [] },\n months: { type: Array, default: () => [] },\n ...dt\n },\n emits: [\"update-month-year\", \"mount\", \"reset-flow\", \"overlay-closed\", \"overlay-opened\"],\n setup(e, { expose: t, emit: l }) {\n const n = l, a = e, {\n defaultedTransitions: f,\n defaultedAriaLabels: i,\n defaultedMultiCalendars: g,\n defaultedFilters: d,\n defaultedConfig: P,\n defaultedHighlight: v,\n propDates: R,\n defaultedUI: h\n } = Oe(a), { transitionName: T, showTransition: F } = aa(f), { buildMatrix: _ } = At(), { handleMonthYearChange: C, isDisabled: M, updateMonthYear: A } = or(a, n), { showLeftIcon: m, showRightIcon: z } = ga(), L = Z(!1), le = Z(!1), U = Z(!1), $ = Z([null, null, null, null]);\n Ue(() => {\n n(\"mount\");\n });\n const ee = (u) => ({\n get: () => a[u],\n set: (re) => {\n const G = u === ot.month ? ot.year : ot.month;\n n(\"update-month-year\", { [u]: re, [G]: a[G] }), u === ot.month ? y(!0) : V(!0);\n }\n }), O = j(ee(ot.month)), J = j(ee(ot.year)), ce = j(() => (u) => ({\n month: a.month,\n year: a.year,\n items: u === ot.month ? a.months : a.years,\n instance: a.instance,\n updateMonthYear: A,\n toggle: u === ot.month ? y : V\n })), pe = j(() => {\n const u = a.months.find((re) => re.value === a.month);\n return u || { text: \"\", value: 0 };\n }), p = j(() => Ht(a.months, (u) => {\n const re = a.month === u.value, G = Zt(\n u.value,\n _n(a.year, R.value.minDate),\n Yn(a.year, R.value.maxDate)\n ) || d.value.months.includes(u.value), I = Fn(v.value, u.value, a.year);\n return { active: re, disabled: G, highlighted: I };\n })), Y = j(() => Ht(a.years, (u) => {\n const re = a.year === u.value, G = Zt(\n u.value,\n Wt(R.value.minDate),\n Wt(R.value.maxDate)\n ) || d.value.years.includes(u.value), I = xa(v.value, u.value);\n return { active: re, disabled: G, highlighted: I };\n })), te = (u, re, G) => {\n G !== void 0 ? u.value = G : u.value = !u.value, u.value ? (U.value = !0, n(\"overlay-opened\", re)) : (U.value = !1, n(\"overlay-closed\", re));\n }, y = (u = !1, re) => {\n S(u), te(L, je.month, re);\n }, V = (u = !1, re) => {\n S(u), te(le, je.year, re);\n }, S = (u) => {\n u || n(\"reset-flow\");\n }, q = (u, re) => {\n a.arrowNavigation && ($.value[re] = Le(u), _($.value, \"monthYear\"));\n }, k = j(() => [\n {\n type: ot.month,\n index: 1,\n toggle: y,\n modelValue: O.value,\n updateModelValue: (u) => O.value = u,\n text: pe.value.text,\n showSelectionGrid: L.value,\n items: p.value,\n ariaLabel: i.value?.openMonthsOverlay,\n overlayLabel: i.value.monthPicker?.(!0) ?? void 0\n },\n {\n type: ot.year,\n index: 2,\n toggle: V,\n modelValue: J.value,\n updateModelValue: (u) => J.value = u,\n text: Ja(a.year, a.locale),\n showSelectionGrid: le.value,\n items: Y.value,\n ariaLabel: i.value?.openYearsOverlay,\n overlayLabel: i.value.yearPicker?.(!0) ?? void 0\n }\n ]), se = j(() => a.disableYearSelect ? [k.value[0]] : a.yearFirst ? [...k.value].reverse() : k.value);\n return t({\n toggleMonthPicker: y,\n toggleYearPicker: V,\n handleMonthYearChange: C\n }), (u, re) => (w(), W(\"div\", Ir, [\n u.$slots[\"month-year\"] ? (w(), W(\"div\", Er, [\n ie(u.$slots, \"month-year\", ze(Je({\n month: e.month,\n year: e.year,\n months: e.months,\n years: e.years,\n updateMonthYear: s(A),\n handleMonthYearChange: s(C),\n instance: e.instance,\n isDisabled: s(M)\n })))\n ])) : (w(), W(ke, { key: 1 }, [\n u.$slots[\"top-extra\"] ? (w(), W(\"div\", Nr, [\n ie(u.$slots, \"top-extra\", { value: u.internalModelValue })\n ])) : Q(\"\", !0),\n he(\"div\", Lr, [\n s(m)(s(g), e.instance) && !u.vertical ? (w(), Te(Qt, {\n key: 0,\n \"aria-label\": s(i)?.prevMonth,\n disabled: s(M)(!1),\n class: De(s(h)?.navBtnPrev),\n \"el-name\": \"action-prev\",\n onActivate: re[0] || (re[0] = (G) => s(C)(!1, !0)),\n onSetRef: re[1] || (re[1] = (G) => q(G, 0))\n }, {\n default: we(() => [\n u.$slots[\"arrow-left\"] ? ie(u.$slots, \"arrow-left\", { key: 0 }) : Q(\"\", !0),\n u.$slots[\"arrow-left\"] ? Q(\"\", !0) : (w(), Te(s(Ua), { key: 1 }))\n ]),\n _: 3\n }, 8, [\"aria-label\", \"disabled\", \"class\"])) : Q(\"\", !0),\n he(\"div\", {\n class: De([\"dp__month_year_wrap\", {\n dp__year_disable_select: u.disableYearSelect\n }])\n }, [\n (w(!0), W(ke, null, Ce(se.value, (G, I) => (w(), W(ke, {\n key: G.type\n }, [\n he(\"button\", {\n ref_for: !0,\n ref: (x) => q(x, I + 1),\n type: \"button\",\n \"data-dp-element\": `overlay-${G.type}`,\n class: De([\"dp__btn dp__month_year_select\", { \"dp--hidden-el\": U.value }]),\n \"aria-label\": `${G.text}-${G.ariaLabel}`,\n \"data-test-id\": `${G.type}-toggle-overlay-${e.instance}`,\n onClick: G.toggle,\n onKeydown: (x) => s(qe)(x, () => G.toggle(), !0)\n }, [\n u.$slots[G.type] ? ie(u.$slots, G.type, {\n key: 0,\n text: G.text,\n value: a[G.type]\n }) : Q(\"\", !0),\n u.$slots[G.type] ? Q(\"\", !0) : (w(), W(ke, { key: 1 }, [\n gt(Ke(G.text), 1)\n ], 64))\n ], 42, Fr),\n tt(Vt, {\n name: s(T)(G.showSelectionGrid),\n css: s(F)\n }, {\n default: we(() => [\n G.showSelectionGrid ? (w(), Te(ta, {\n key: 0,\n items: G.items,\n \"arrow-navigation\": u.arrowNavigation,\n \"hide-navigation\": u.hideNavigation,\n \"is-last\": u.autoApply && !s(P).keepActionRow,\n \"skip-button-ref\": !1,\n config: u.config,\n type: G.type,\n \"header-refs\": [],\n \"esc-close\": u.escClose,\n \"menu-wrap-ref\": u.menuWrapRef,\n \"text-input\": u.textInput,\n \"aria-labels\": u.ariaLabels,\n \"overlay-label\": G.overlayLabel,\n onSelected: G.updateModelValue,\n onToggle: G.toggle\n }, Ge({\n \"button-icon\": we(() => [\n u.$slots[\"calendar-icon\"] ? ie(u.$slots, \"calendar-icon\", { key: 0 }) : Q(\"\", !0),\n u.$slots[\"calendar-icon\"] ? Q(\"\", !0) : (w(), Te(s(jt), { key: 1 }))\n ]),\n _: 2\n }, [\n u.$slots[`${G.type}-overlay-value`] ? {\n name: \"item\",\n fn: we(({ item: x }) => [\n ie(u.$slots, `${G.type}-overlay-value`, {\n text: x.text,\n value: x.value\n })\n ]),\n key: \"0\"\n } : void 0,\n u.$slots[`${G.type}-overlay`] ? {\n name: \"overlay\",\n fn: we(() => [\n ie(u.$slots, `${G.type}-overlay`, He({ ref_for: !0 }, ce.value(G.type)))\n ]),\n key: \"1\"\n } : void 0,\n u.$slots[`${G.type}-overlay-header`] ? {\n name: \"header\",\n fn: we(() => [\n ie(u.$slots, `${G.type}-overlay-header`, {\n toggle: G.toggle\n })\n ]),\n key: \"2\"\n } : void 0\n ]), 1032, [\"items\", \"arrow-navigation\", \"hide-navigation\", \"is-last\", \"config\", \"type\", \"esc-close\", \"menu-wrap-ref\", \"text-input\", \"aria-labels\", \"overlay-label\", \"onSelected\", \"onToggle\"])) : Q(\"\", !0)\n ]),\n _: 2\n }, 1032, [\"name\", \"css\"])\n ], 64))), 128))\n ], 2),\n s(m)(s(g), e.instance) && u.vertical ? (w(), Te(Qt, {\n key: 1,\n \"aria-label\": s(i)?.prevMonth,\n \"el-name\": \"action-prev\",\n disabled: s(M)(!1),\n class: De(s(h)?.navBtnPrev),\n onActivate: re[2] || (re[2] = (G) => s(C)(!1, !0))\n }, {\n default: we(() => [\n u.$slots[\"arrow-up\"] ? ie(u.$slots, \"arrow-up\", { key: 0 }) : Q(\"\", !0),\n u.$slots[\"arrow-up\"] ? Q(\"\", !0) : (w(), Te(s(Ka), { key: 1 }))\n ]),\n _: 3\n }, 8, [\"aria-label\", \"disabled\", \"class\"])) : Q(\"\", !0),\n s(z)(s(g), e.instance) ? (w(), Te(Qt, {\n key: 2,\n ref: \"rightIcon\",\n \"el-name\": \"action-next\",\n disabled: s(M)(!0),\n \"aria-label\": s(i)?.nextMonth,\n class: De(s(h)?.navBtnNext),\n onActivate: re[3] || (re[3] = (G) => s(C)(!0, !0)),\n onSetRef: re[4] || (re[4] = (G) => q(G, u.disableYearSelect ? 2 : 3))\n }, {\n default: we(() => [\n u.$slots[u.vertical ? \"arrow-down\" : \"arrow-right\"] ? ie(u.$slots, u.vertical ? \"arrow-down\" : \"arrow-right\", { key: 0 }) : Q(\"\", !0),\n u.$slots[u.vertical ? \"arrow-down\" : \"arrow-right\"] ? Q(\"\", !0) : (w(), Te(fa(u.vertical ? s(Ga) : s(Va)), { key: 1 }))\n ]),\n _: 3\n }, 8, [\"disabled\", \"aria-label\", \"class\"])) : Q(\"\", !0)\n ])\n ], 64))\n ]));\n }\n}), Hr = {\n class: \"dp__calendar_header\",\n role: \"row\"\n}, Wr = {\n key: 0,\n class: \"dp__calendar_header_item\",\n role: \"gridcell\"\n}, Ur = [\"aria-label\"], Vr = {\n key: 0,\n class: \"dp__calendar_item dp__week_num\",\n role: \"gridcell\"\n}, jr = { class: \"dp__cell_inner\" }, Kr = [\"id\", \"aria-selected\", \"aria-disabled\", \"aria-label\", \"tabindex\", \"data-test-id\", \"onClick\", \"onTouchend\", \"onKeydown\", \"onMouseenter\", \"onMouseleave\", \"onMousedown\"], Gr = /* @__PURE__ */ We({\n compatConfig: {\n MODE: 3\n },\n __name: \"DpCalendar\",\n props: {\n mappedDates: { type: Array, default: () => [] },\n instance: { type: Number, default: 0 },\n month: { type: Number, default: 0 },\n year: { type: Number, default: 0 },\n ...dt\n },\n emits: [\n \"select-date\",\n \"set-hover-date\",\n \"handle-scroll\",\n \"mount\",\n \"handle-swipe\",\n \"handle-space\",\n \"tooltip-open\",\n \"tooltip-close\"\n ],\n setup(e, { expose: t, emit: l }) {\n const n = l, a = e, { buildMultiLevelMatrix: f } = At(), {\n defaultedTransitions: i,\n defaultedConfig: g,\n defaultedAriaLabels: d,\n defaultedMultiCalendars: P,\n defaultedWeekNumbers: v,\n defaultedMultiDates: R,\n defaultedUI: h\n } = Oe(a), T = Z(null), F = Z({\n bottom: \"\",\n left: \"\",\n transform: \"\"\n }), _ = Z([]), C = Z(null), M = Z(!0), A = Z(\"\"), m = Z({ startX: 0, endX: 0, startY: 0, endY: 0 }), z = Z([]), L = Z({ left: \"50%\" }), le = Z(!1), U = j(() => a.calendar ? a.calendar(a.mappedDates) : a.mappedDates), $ = j(() => a.dayNames ? Array.isArray(a.dayNames) ? a.dayNames : a.dayNames(a.locale, +a.weekStart) : Tl(a.formatLocale, a.locale, +a.weekStart));\n Ue(() => {\n n(\"mount\", { cmp: \"calendar\", refs: _ }), g.value.noSwipe || C.value && (C.value.addEventListener(\"touchstart\", q, { passive: !1 }), C.value.addEventListener(\"touchend\", k, { passive: !1 }), C.value.addEventListener(\"touchmove\", se, { passive: !1 })), a.monthChangeOnScroll && C.value && C.value.addEventListener(\"wheel\", G, { passive: !1 });\n }), Ut(() => {\n g.value.noSwipe || C.value && (C.value.removeEventListener(\"touchstart\", q), C.value.removeEventListener(\"touchend\", k), C.value.removeEventListener(\"touchmove\", se)), a.monthChangeOnScroll && C.value && C.value.removeEventListener(\"wheel\", G);\n });\n const ee = (B) => B ? a.vertical ? \"vNext\" : \"next\" : a.vertical ? \"vPrevious\" : \"previous\", O = (B, be) => {\n if (a.transitions) {\n const Ae = Fe(pt(H(), a.month, a.year));\n A.value = Ee(Fe(pt(H(), B, be)), Ae) ? i.value[ee(!0)] : i.value[ee(!1)], M.value = !1, at(() => {\n M.value = !0;\n });\n }\n }, J = j(\n () => ({\n ...h.value.calendar ?? {}\n })\n ), ce = j(() => (B) => {\n const be = Pl(B);\n return {\n dp__marker_dot: be.type === \"dot\",\n dp__marker_line: be.type === \"line\"\n };\n }), pe = j(() => (B) => $e(B, T.value)), p = j(() => ({\n dp__calendar: !0,\n dp__calendar_next: P.value.count > 0 && a.instance !== 0\n })), Y = j(() => (B) => a.hideOffsetDates ? B.current : !0), te = async (B, be) => {\n const { width: Ae, height: ne } = B.getBoundingClientRect();\n T.value = be.value;\n let r = { left: `${Ae / 2}px` }, E = -50;\n if (await at(), z.value[0]) {\n const { left: K, width: oe } = z.value[0].getBoundingClientRect();\n K < 0 && (r = { left: \"0\" }, E = 0, L.value.left = `${Ae / 2}px`), window.innerWidth < K + oe && (r = { right: \"0\" }, E = 0, L.value.left = `${oe - Ae / 2}px`);\n }\n F.value = {\n bottom: `${ne}px`,\n ...r,\n transform: `translateX(${E}%)`\n };\n }, y = async (B, be, Ae) => {\n const ne = Le(_.value[be][Ae]);\n ne && (B.marker?.customPosition && B.marker?.tooltip?.length ? F.value = B.marker.customPosition(ne) : await te(ne, B), n(\"tooltip-open\", B.marker));\n }, V = async (B, be, Ae) => {\n if (le.value && R.value.enabled && R.value.dragSelect)\n return n(\"select-date\", B);\n if (n(\"set-hover-date\", B), B.marker?.tooltip?.length) {\n if (a.hideOffsetDates && !B.current) return;\n await y(B, be, Ae);\n }\n }, S = (B) => {\n T.value && (T.value = null, F.value = JSON.parse(JSON.stringify({ bottom: \"\", left: \"\", transform: \"\" })), n(\"tooltip-close\", B.marker));\n }, q = (B) => {\n m.value.startX = B.changedTouches[0].screenX, m.value.startY = B.changedTouches[0].screenY;\n }, k = (B) => {\n m.value.endX = B.changedTouches[0].screenX, m.value.endY = B.changedTouches[0].screenY, u();\n }, se = (B) => {\n a.vertical && !a.inline && B.preventDefault();\n }, u = () => {\n const B = a.vertical ? \"Y\" : \"X\";\n Math.abs(m.value[`start${B}`] - m.value[`end${B}`]) > 10 && n(\"handle-swipe\", m.value[`start${B}`] > m.value[`end${B}`] ? \"right\" : \"left\");\n }, re = (B, be, Ae) => {\n B && (Array.isArray(_.value[be]) ? _.value[be][Ae] = B : _.value[be] = [B]), a.arrowNavigation && f(_.value, \"calendar\");\n }, G = (B) => {\n a.monthChangeOnScroll && (B.preventDefault(), n(\"handle-scroll\", B));\n }, I = (B) => v.value.type === \"local\" ? pl(B.value, { weekStartsOn: +a.weekStart }) : v.value.type === \"iso\" ? gl(B.value) : typeof v.value.type == \"function\" ? v.value.type(B.value) : \"\", x = (B) => {\n const be = B[0];\n return v.value.hideOnOffsetDates ? B.some((Ae) => Ae.current) ? I(be) : \"\" : I(be);\n }, c = (B, be, Ae = !0) => {\n !Ae && _l() || (!R.value.enabled || g.value.allowPreventDefault) && (Dt(B, g.value), n(\"select-date\", be));\n }, o = (B) => {\n Dt(B, g.value);\n }, X = (B) => {\n R.value.enabled && R.value.dragSelect ? (le.value = !0, n(\"select-date\", B)) : R.value.enabled && n(\"select-date\", B);\n };\n return t({ triggerTransition: O }), (B, be) => (w(), W(\"div\", {\n class: De(p.value)\n }, [\n he(\"div\", {\n ref_key: \"calendarWrapRef\",\n ref: C,\n class: De(J.value),\n role: \"grid\"\n }, [\n he(\"div\", Hr, [\n B.weekNumbers ? (w(), W(\"div\", Wr, Ke(B.weekNumName), 1)) : Q(\"\", !0),\n (w(!0), W(ke, null, Ce($.value, (Ae, ne) => (w(), W(\"div\", {\n key: ne,\n class: \"dp__calendar_header_item\",\n role: \"gridcell\",\n \"data-test-id\": \"calendar-header\",\n \"aria-label\": s(d)?.weekDay?.(ne)\n }, [\n B.$slots[\"calendar-header\"] ? ie(B.$slots, \"calendar-header\", {\n key: 0,\n day: Ae,\n index: ne\n }) : Q(\"\", !0),\n B.$slots[\"calendar-header\"] ? Q(\"\", !0) : (w(), W(ke, { key: 1 }, [\n gt(Ke(Ae), 1)\n ], 64))\n ], 8, Ur))), 128))\n ]),\n be[2] || (be[2] = he(\"div\", { class: \"dp__calendar_header_separator\" }, null, -1)),\n tt(Vt, {\n name: A.value,\n css: !!B.transitions\n }, {\n default: we(() => [\n M.value ? (w(), W(\"div\", {\n key: 0,\n class: \"dp__calendar\",\n role: \"rowgroup\",\n onMouseleave: be[1] || (be[1] = (Ae) => le.value = !1)\n }, [\n (w(!0), W(ke, null, Ce(U.value, (Ae, ne) => (w(), W(\"div\", {\n key: ne,\n class: \"dp__calendar_row\",\n role: \"row\"\n }, [\n B.weekNumbers ? (w(), W(\"div\", Vr, [\n he(\"div\", jr, Ke(x(Ae.days)), 1)\n ])) : Q(\"\", !0),\n (w(!0), W(ke, null, Ce(Ae.days, (r, E) => (w(), W(\"div\", {\n id: s(Ha)(r.value),\n ref_for: !0,\n ref: (K) => re(K, ne, E),\n key: E + ne,\n role: \"gridcell\",\n class: \"dp__calendar_item\",\n \"aria-selected\": (r.classData.dp__active_date || r.classData.dp__range_start || r.classData.dp__range_end) ?? void 0,\n \"aria-disabled\": r.classData.dp__cell_disabled || void 0,\n \"aria-label\": s(d)?.day?.(r),\n tabindex: !r.current && B.hideOffsetDates ? void 0 : 0,\n \"data-test-id\": s(Ha)(r.value),\n onClick: Xt((K) => c(K, r), [\"prevent\"]),\n onTouchend: (K) => c(K, r, !1),\n onKeydown: (K) => s(qe)(K, () => B.$emit(\"select-date\", r)),\n onMouseenter: (K) => V(r, ne, E),\n onMouseleave: (K) => S(r),\n onMousedown: (K) => X(r),\n onMouseup: be[0] || (be[0] = (K) => le.value = !1)\n }, [\n he(\"div\", {\n class: De([\"dp__cell_inner\", r.classData])\n }, [\n B.$slots.day && Y.value(r) ? ie(B.$slots, \"day\", {\n key: 0,\n day: +r.text,\n date: r.value\n }) : Q(\"\", !0),\n B.$slots.day ? Q(\"\", !0) : (w(), W(ke, { key: 1 }, [\n gt(Ke(r.text), 1)\n ], 64)),\n r.marker && Y.value(r) ? (w(), W(ke, { key: 2 }, [\n B.$slots.marker ? ie(B.$slots, \"marker\", {\n key: 0,\n marker: r.marker,\n day: +r.text,\n date: r.value\n }) : (w(), W(\"div\", {\n key: 1,\n class: De(ce.value(r.marker)),\n style: lt(r.marker.color ? { backgroundColor: r.marker.color } : {})\n }, null, 6))\n ], 64)) : Q(\"\", !0),\n pe.value(r.value) ? (w(), W(\"div\", {\n key: 3,\n ref_for: !0,\n ref_key: \"activeTooltip\",\n ref: z,\n class: \"dp__marker_tooltip\",\n style: lt(F.value)\n }, [\n r.marker?.tooltip ? (w(), W(\"div\", {\n key: 0,\n class: \"dp__tooltip_content\",\n onClick: o\n }, [\n (w(!0), W(ke, null, Ce(r.marker.tooltip, (K, oe) => (w(), W(\"div\", {\n key: oe,\n class: \"dp__tooltip_text\"\n }, [\n B.$slots[\"marker-tooltip\"] ? ie(B.$slots, \"marker-tooltip\", {\n key: 0,\n tooltip: K,\n day: r.value\n }) : Q(\"\", !0),\n B.$slots[\"marker-tooltip\"] ? Q(\"\", !0) : (w(), W(ke, { key: 1 }, [\n he(\"div\", {\n class: \"dp__tooltip_mark\",\n style: lt(K.color ? { backgroundColor: K.color } : {})\n }, null, 4),\n he(\"div\", null, Ke(K.text), 1)\n ], 64))\n ]))), 128)),\n he(\"div\", {\n class: \"dp__arrow_bottom_tp\",\n style: lt(L.value)\n }, null, 4)\n ])) : Q(\"\", !0)\n ], 4)) : Q(\"\", !0)\n ], 2)\n ], 40, Kr))), 128))\n ]))), 128))\n ], 32)) : Q(\"\", !0)\n ]),\n _: 3\n }, 8, [\"name\", \"css\"])\n ], 2)\n ], 2));\n }\n}), yn = (e) => Array.isArray(e), Qr = (e, t, l, n) => {\n const a = Z([]), f = Z(/* @__PURE__ */ new Date()), i = Z(), g = () => k(e.isTextInputDate), { modelValue: d, calendars: P, time: v, today: R } = na(e, t, g), {\n defaultedMultiCalendars: h,\n defaultedStartTime: T,\n defaultedRange: F,\n defaultedConfig: _,\n defaultedTz: C,\n propDates: M,\n defaultedMultiDates: A\n } = Oe(e), { validateMonthYearInRange: m, isDisabled: z, isDateRangeAllowed: L, checkMinMaxRange: le } = Tt(e), { updateTimeValues: U, getSetDateTime: $, setTime: ee, assignStartTime: O, validateTime: J, disabledTimesConfig: ce } = Gn(e, v, d, n), pe = j(\n () => (b) => P.value[b] ? P.value[b].month : 0\n ), p = j(\n () => (b) => P.value[b] ? P.value[b].year : 0\n ), Y = (b) => !_.value.keepViewOnOffsetClick || b ? !0 : !i.value, te = (b, ae, ve, N = !1) => {\n Y(N) && (P.value[b] || (P.value[b] = { month: 0, year: 0 }), P.value[b].month = cn(ae) ? P.value[b]?.month : ae, P.value[b].year = cn(ve) ? P.value[b]?.year : ve);\n }, y = () => {\n e.autoApply && t(\"select-date\");\n }, V = () => {\n T.value && O(T.value);\n };\n Ue(() => {\n e.shadow || (d.value || (be(), V()), k(!0), e.focusStartDate && e.startDate && be());\n });\n const S = j(() => e.flow?.length && !e.partialFlow ? e.flowStep === e.flow.length : !0), q = () => {\n e.autoApply && S.value && t(\"auto-apply\", e.partialFlow ? e.flowStep !== e.flow.length : !1);\n }, k = (b = !1) => {\n if (d.value)\n return Array.isArray(d.value) ? (a.value = d.value, c(b)) : re(d.value, b);\n if (h.value.count && b && !e.startDate)\n return u(H(), b);\n }, se = () => Array.isArray(d.value) && F.value.enabled ? Me(d.value[0]) === Me(d.value[1] ?? d.value[0]) : !1, u = (b = /* @__PURE__ */ new Date(), ae = !1) => {\n if ((!h.value.count || !h.value.static || ae) && te(0, Me(b), ye(b)), h.value.count && (!d.value || se() || !h.value.solo) && (!h.value.solo || ae))\n for (let ve = 1; ve < h.value.count; ve++) {\n const N = Se(H(), { month: pe.value(ve - 1), year: p.value(ve - 1) }), ue = Tn(N, { months: 1 });\n P.value[ve] = { month: Me(ue), year: ye(ue) };\n }\n }, re = (b, ae) => {\n u(b), ee(\"hours\", yt(b)), ee(\"minutes\", $t(b)), ee(\"seconds\", zt(b)), h.value.count && ae && B();\n }, G = (b) => {\n if (h.value.count) {\n if (h.value.solo) return 0;\n const ae = Me(b[0]), ve = Me(b[1]);\n return Math.abs(ve - ae) < h.value.count ? 0 : 1;\n }\n return 1;\n }, I = (b, ae) => {\n b[1] && F.value.showLastInRange ? u(b[G(b)], ae) : u(b[0], ae);\n const ve = (N, ue) => [\n N(b[0]),\n b[1] ? N(b[1]) : v[ue][1]\n ];\n ee(\"hours\", ve(yt, \"hours\")), ee(\"minutes\", ve($t, \"minutes\")), ee(\"seconds\", ve(zt, \"seconds\"));\n }, x = (b, ae) => {\n if ((F.value.enabled || e.weekPicker) && !A.value.enabled)\n return I(b, ae);\n if (A.value.enabled && ae) {\n const ve = b[b.length - 1];\n return re(ve, ae);\n }\n }, c = (b) => {\n const ae = d.value;\n x(ae, b), h.value.count && h.value.solo && B();\n }, o = (b, ae) => {\n const ve = Se(H(), { month: pe.value(ae), year: p.value(ae) }), N = b < 0 ? Ct(ve, 1) : Jt(ve, 1);\n m(Me(N), ye(N), b < 0, e.preventMinMaxNavigation) && (te(ae, Me(N), ye(N)), t(\"update-month-year\", { instance: ae, month: Me(N), year: ye(N) }), h.value.count && !h.value.solo && X(ae), l());\n }, X = (b) => {\n for (let ae = b - 1; ae >= 0; ae--) {\n const ve = Jt(Se(H(), { month: pe.value(ae + 1), year: p.value(ae + 1) }), 1);\n te(ae, Me(ve), ye(ve));\n }\n for (let ae = b + 1; ae <= h.value.count - 1; ae++) {\n const ve = Ct(Se(H(), { month: pe.value(ae - 1), year: p.value(ae - 1) }), 1);\n te(ae, Me(ve), ye(ve));\n }\n }, B = () => {\n if (Array.isArray(d.value) && d.value.length === 2) {\n const b = H(\n H(d.value[1] ? d.value[1] : Ct(d.value[0], 1))\n ), [ae, ve] = [Me(d.value[0]), ye(d.value[0])], [N, ue] = [Me(d.value[1]), ye(d.value[1])];\n (ae !== N || ae === N && ve !== ue) && h.value.solo && te(1, Me(b), ye(b));\n } else d.value && !Array.isArray(d.value) && (te(0, Me(d.value), ye(d.value)), u(H()));\n }, be = () => {\n e.startDate && (te(0, Me(H(e.startDate)), ye(H(e.startDate))), h.value.count && X(0));\n }, Ae = (b, ae) => {\n if (e.monthChangeOnScroll) {\n const ve = (/* @__PURE__ */ new Date()).getTime() - f.value.getTime(), N = Math.abs(b.deltaY);\n let ue = 500;\n N > 1 && (ue = 100), N > 100 && (ue = 0), ve > ue && (f.value = /* @__PURE__ */ new Date(), o(e.monthChangeOnScroll !== \"inverse\" ? -b.deltaY : b.deltaY, ae));\n }\n }, ne = (b, ae, ve = !1) => {\n e.monthChangeOnArrows && e.vertical === ve && r(b, ae);\n }, r = (b, ae) => {\n o(b === \"right\" ? -1 : 1, ae);\n }, E = (b) => {\n if (M.value.markers)\n return ca(b.value, M.value.markers);\n }, K = (b, ae) => {\n switch (e.sixWeeks === !0 ? \"append\" : e.sixWeeks) {\n case \"prepend\":\n return [!0, !1];\n case \"center\":\n return [b == 0, !0];\n case \"fair\":\n return [b == 0 || ae > b, !0];\n case \"append\":\n return [!1, !1];\n default:\n return [!1, !1];\n }\n }, oe = (b, ae, ve, N) => {\n if (e.sixWeeks && b.length < 6) {\n const ue = 6 - b.length, me = (ae.getDay() + 7 - N) % 7, ct = 6 - (ve.getDay() + 7 - N) % 7, [Pt, $a] = K(me, ct);\n for (let Rt = 1; Rt <= ue; Rt++)\n if ($a ? !!(Rt % 2) == Pt : Pt) {\n const ra = b[0].days[0], Aa = ge(kt(ra.value, -7), Me(ae));\n b.unshift({ days: Aa });\n } else {\n const ra = b[b.length - 1], Aa = ra.days[ra.days.length - 1], Xn = ge(kt(Aa.value, 1), Me(ae));\n b.push({ days: Xn });\n }\n }\n return b;\n }, ge = (b, ae) => {\n const ve = H(b), N = [];\n for (let ue = 0; ue < 7; ue++) {\n const me = kt(ve, ue), vt = Me(me) !== ae;\n N.push({\n text: e.hideOffsetDates && vt ? \"\" : me.getDate(),\n value: me,\n current: !vt,\n classData: {}\n });\n }\n return N;\n }, _e = (b, ae) => {\n const ve = [], N = new Date(ae, b), ue = new Date(ae, b + 1, 0), me = e.weekStart, vt = Wa(N, { weekStartsOn: me }), ct = (Pt) => {\n const $a = ge(Pt, b);\n if (ve.push({ days: $a }), !ve[ve.length - 1].days.some(\n (Rt) => $e(Fe(Rt.value), Fe(ue))\n )) {\n const Rt = kt(Pt, 7);\n ct(Rt);\n }\n };\n return ct(vt), oe(ve, N, ue, me);\n }, Ye = (b) => {\n const ae = Mt(H(b.value), v.hours, v.minutes, xe());\n t(\"date-update\", ae), A.value.enabled ? en(ae, d, A.value.limit) : d.value = ae, n(), at().then(() => {\n q();\n });\n }, nt = (b) => F.value.noDisabledRange ? In(a.value[0], b).some((ve) => z(ve)) : !1, St = () => {\n a.value = d.value ? d.value.slice() : [], a.value.length === 2 && !(F.value.fixedStart || F.value.fixedEnd) && (a.value = []);\n }, D = (b, ae) => {\n const ve = [\n H(b.value),\n kt(H(b.value), +F.value.autoRange)\n ];\n L(ve) ? (ae && de(b.value), a.value = ve) : t(\"invalid-date\", b.value);\n }, de = (b) => {\n const ae = Me(H(b)), ve = ye(H(b));\n if (te(0, ae, ve), h.value.count > 0)\n for (let N = 1; N < h.value.count; N++) {\n const ue = El(\n Se(H(b), { year: p.value(N - 1), month: pe.value(N - 1) })\n );\n te(N, ue.month, ue.year);\n }\n }, fe = (b) => {\n if (nt(b.value) || !le(b.value, d.value, F.value.fixedStart ? 0 : 1))\n return t(\"invalid-date\", b.value);\n a.value = Vn(H(b.value), d, t, F);\n }, ht = (b, ae) => {\n if (St(), F.value.autoRange) return D(b, ae);\n if (F.value.fixedStart || F.value.fixedEnd) return fe(b);\n a.value[0] ? le(H(b.value), d.value) && !nt(b.value) ? Be(H(b.value), H(a.value[0])) ? (a.value.unshift(H(b.value)), t(\"range-end\", a.value[0])) : (a.value[1] = H(b.value), t(\"range-end\", a.value[1])) : (e.autoApply && t(\"auto-apply-invalid\", b.value), t(\"invalid-date\", b.value)) : (a.value[0] = H(b.value), t(\"range-start\", a.value[0]));\n }, xe = (b = !0) => e.enableSeconds ? Array.isArray(v.seconds) ? b ? v.seconds[0] : v.seconds[1] : v.seconds : 0, Xe = (b) => {\n a.value[b] = Mt(\n a.value[b],\n v.hours[b],\n v.minutes[b],\n xe(b !== 1)\n );\n }, ya = () => {\n a.value[0] && a.value[1] && +a.value?.[0] > +a.value?.[1] && (a.value.reverse(), t(\"range-start\", a.value[0]), t(\"range-end\", a.value[1]));\n }, ha = () => {\n a.value.length && (a.value[0] && !a.value[1] ? Xe(0) : (Xe(0), Xe(1), n()), ya(), d.value = a.value.slice(), pa(a.value, t, e.autoApply, e.modelAuto));\n }, la = (b, ae = !1) => {\n if (z(b.value) || !b.current && e.hideOffsetDates) return t(\"invalid-date\", b.value);\n if (i.value = JSON.parse(JSON.stringify(b)), !F.value.enabled) return Ye(b);\n yn(v.hours) && yn(v.minutes) && !A.value.enabled && (ht(b, ae), ha());\n }, ba = (b, ae) => {\n te(b, ae.month, ae.year, !0), h.value.count && !h.value.solo && X(b), t(\"update-month-year\", { instance: b, month: ae.month, year: ae.year }), l(h.value.solo ? b : void 0);\n const ve = e.flow?.length ? e.flow[e.flowStep] : void 0;\n !ae.fromNav && (ve === je.month || ve === je.year) && n();\n }, ka = (b, ae) => {\n Un({\n value: b,\n modelValue: d,\n range: F.value.enabled,\n timezone: ae ? void 0 : C.value.timezone\n }), y(), e.multiCalendars && at().then(() => k(!0));\n }, wa = () => {\n const b = Qa(H(), C.value);\n !F.value.enabled && !A.value.enabled ? d.value = b : d.value && Array.isArray(d.value) && d.value[0] ? A.value.enabled ? d.value = [...d.value, b] : d.value = Be(b, d.value[0]) ? [b, d.value[0]] : [d.value[0], b] : d.value = [b], y();\n }, Da = () => {\n if (Array.isArray(d.value))\n if (A.value.enabled) {\n const b = Ma();\n d.value[d.value.length - 1] = $(b);\n } else\n d.value = d.value.map((b, ae) => b && $(b, ae));\n else\n d.value = $(d.value);\n t(\"time-update\");\n }, Ma = () => Array.isArray(d.value) && d.value.length ? d.value[d.value.length - 1] : null;\n return {\n calendars: P,\n modelValue: d,\n month: pe,\n year: p,\n time: v,\n disabledTimesConfig: ce,\n today: R,\n validateTime: J,\n getCalendarDays: _e,\n getMarker: E,\n handleScroll: Ae,\n handleSwipe: r,\n handleArrow: ne,\n selectDate: la,\n updateMonthYear: ba,\n presetDate: ka,\n selectCurrentDate: wa,\n updateTime: (b, ae = !0, ve = !1) => {\n U(b, ae, ve, Da);\n },\n assignMonthAndYear: u,\n setStartTime: V\n };\n}, qr = { key: 0 }, Xr = /* @__PURE__ */ We({\n __name: \"DatePicker\",\n props: {\n ...dt\n },\n emits: [\n \"tooltip-open\",\n \"tooltip-close\",\n \"mount\",\n \"update:internal-model-value\",\n \"update-flow-step\",\n \"reset-flow\",\n \"auto-apply\",\n \"focus-menu\",\n \"select-date\",\n \"range-start\",\n \"range-end\",\n \"invalid-fixed-range\",\n \"time-update\",\n \"am-pm-change\",\n \"time-picker-open\",\n \"time-picker-close\",\n \"recalculate-position\",\n \"update-month-year\",\n \"auto-apply-invalid\",\n \"date-update\",\n \"invalid-date\",\n \"overlay-toggle\"\n ],\n setup(e, { expose: t, emit: l }) {\n const n = l, a = e, {\n calendars: f,\n month: i,\n year: g,\n modelValue: d,\n time: P,\n disabledTimesConfig: v,\n today: R,\n validateTime: h,\n getCalendarDays: T,\n getMarker: F,\n handleArrow: _,\n handleScroll: C,\n handleSwipe: M,\n selectDate: A,\n updateMonthYear: m,\n presetDate: z,\n selectCurrentDate: L,\n updateTime: le,\n assignMonthAndYear: U,\n setStartTime: $\n } = Qr(a, n, se, u), ee = Yt(), { setHoverDate: O, getDayClassData: J, clearHoverDate: ce } = mo(d, a), { defaultedMultiCalendars: pe } = Oe(a), p = Z([]), Y = Z([]), te = Z(null), y = et(ee, \"calendar\"), V = et(ee, \"monthYear\"), S = et(ee, \"timePicker\"), q = (ne) => {\n a.shadow || n(\"mount\", ne);\n };\n rt(\n f,\n () => {\n a.shadow || setTimeout(() => {\n n(\"recalculate-position\");\n }, 0);\n },\n { deep: !0 }\n ), rt(\n pe,\n (ne, r) => {\n ne.count - r.count > 0 && U();\n },\n { deep: !0 }\n );\n const k = j(() => (ne) => T(i.value(ne), g.value(ne)).map((r) => ({\n ...r,\n days: r.days.map((E) => (E.marker = F(E), E.classData = J(E), E))\n })));\n function se(ne) {\n ne || ne === 0 ? Y.value[ne]?.triggerTransition(i.value(ne), g.value(ne)) : Y.value.forEach((r, E) => r.triggerTransition(i.value(E), g.value(E)));\n }\n function u() {\n n(\"update-flow-step\");\n }\n const re = (ne, r = !1) => {\n A(ne, r), a.spaceConfirm && n(\"select-date\");\n }, G = (ne, r, E = 0) => {\n p.value[E]?.toggleMonthPicker(ne, r);\n }, I = (ne, r, E = 0) => {\n p.value[E]?.toggleYearPicker(ne, r);\n }, x = (ne, r, E) => {\n te.value?.toggleTimePicker(ne, r, E);\n }, c = (ne, r) => {\n if (!a.range) {\n const E = d.value ? d.value : R, K = r ? new Date(r) : E, oe = ne ? Wa(K, { weekStartsOn: 1 }) : kn(K, { weekStartsOn: 1 });\n A({\n value: oe,\n current: Me(K) === i.value(0),\n text: \"\",\n classData: {}\n }), document.getElementById(Ha(oe))?.focus();\n }\n }, o = (ne) => {\n p.value[0]?.handleMonthYearChange(ne, !0);\n }, X = (ne) => {\n m(0, { month: i.value(0), year: g.value(0) + (ne ? 1 : -1), fromNav: !0 });\n }, B = (ne, r) => {\n ne === je.time && n(`time-picker-${r ? \"open\" : \"close\"}`), n(\"overlay-toggle\", { open: r, overlay: ne });\n }, be = (ne) => {\n n(\"overlay-toggle\", { open: !1, overlay: ne }), n(\"focus-menu\");\n };\n return t({\n clearHoverDate: ce,\n presetDate: z,\n selectCurrentDate: L,\n toggleMonthPicker: G,\n toggleYearPicker: I,\n toggleTimePicker: x,\n handleArrow: _,\n updateMonthYear: m,\n getSidebarProps: () => ({\n modelValue: d,\n month: i,\n year: g,\n time: P,\n updateTime: le,\n updateMonthYear: m,\n selectDate: A,\n presetDate: z\n }),\n changeMonth: o,\n changeYear: X,\n selectWeekDate: c,\n setStartTime: $\n }), (ne, r) => (w(), W(ke, null, [\n tt(ma, {\n \"multi-calendars\": s(pe).count,\n collapse: ne.collapse,\n \"is-mobile\": ne.isMobile\n }, {\n default: we(({ instance: E, index: K }) => [\n ne.disableMonthYearSelect ? Q(\"\", !0) : (w(), Te(zr, He({\n key: 0,\n ref: (oe) => {\n oe && (p.value[K] = oe);\n },\n months: s(Pn)(ne.formatLocale, ne.locale, ne.monthNameFormat),\n years: s(qa)(ne.yearRange, ne.locale, ne.reverseYears),\n month: s(i)(E),\n year: s(g)(E),\n instance: E\n }, ne.$props, {\n onMount: r[0] || (r[0] = (oe) => q(s(Ot).header)),\n onResetFlow: r[1] || (r[1] = (oe) => ne.$emit(\"reset-flow\")),\n onUpdateMonthYear: (oe) => s(m)(E, oe),\n onOverlayClosed: be,\n onOverlayOpened: r[2] || (r[2] = (oe) => ne.$emit(\"overlay-toggle\", { open: !0, overlay: oe }))\n }), Ge({ _: 2 }, [\n Ce(s(V), (oe, ge) => ({\n name: oe,\n fn: we((_e) => [\n ie(ne.$slots, oe, ze(Je(_e)))\n ])\n }))\n ]), 1040, [\"months\", \"years\", \"month\", \"year\", \"instance\", \"onUpdateMonthYear\"])),\n tt(Gr, He({\n ref: (oe) => {\n oe && (Y.value[K] = oe);\n },\n \"mapped-dates\": k.value(E),\n month: s(i)(E),\n year: s(g)(E),\n instance: E\n }, ne.$props, {\n onSelectDate: (oe) => s(A)(oe, E !== 1),\n onHandleSpace: (oe) => re(oe, E !== 1),\n onSetHoverDate: r[3] || (r[3] = (oe) => s(O)(oe)),\n onHandleScroll: (oe) => s(C)(oe, E),\n onHandleSwipe: (oe) => s(M)(oe, E),\n onMount: r[4] || (r[4] = (oe) => q(s(Ot).calendar)),\n onResetFlow: r[5] || (r[5] = (oe) => ne.$emit(\"reset-flow\")),\n onTooltipOpen: r[6] || (r[6] = (oe) => ne.$emit(\"tooltip-open\", oe)),\n onTooltipClose: r[7] || (r[7] = (oe) => ne.$emit(\"tooltip-close\", oe))\n }), Ge({ _: 2 }, [\n Ce(s(y), (oe, ge) => ({\n name: oe,\n fn: we((_e) => [\n ie(ne.$slots, oe, ze(Je({ ..._e })))\n ])\n }))\n ]), 1040, [\"mapped-dates\", \"month\", \"year\", \"instance\", \"onSelectDate\", \"onHandleSpace\", \"onHandleScroll\", \"onHandleSwipe\"])\n ]),\n _: 3\n }, 8, [\"multi-calendars\", \"collapse\", \"is-mobile\"]),\n ne.enableTimePicker ? (w(), W(\"div\", qr, [\n ne.$slots[\"time-picker\"] ? ie(ne.$slots, \"time-picker\", ze(He({ key: 0 }, { time: s(P), updateTime: s(le) }))) : (w(), Te(Kn, He({\n key: 1,\n ref_key: \"timePickerRef\",\n ref: te\n }, ne.$props, {\n hours: s(P).hours,\n minutes: s(P).minutes,\n seconds: s(P).seconds,\n \"internal-model-value\": ne.internalModelValue,\n \"disabled-times-config\": s(v),\n \"validate-time\": s(h),\n onMount: r[8] || (r[8] = (E) => q(s(Ot).timePicker)),\n \"onUpdate:hours\": r[9] || (r[9] = (E) => s(le)(E)),\n \"onUpdate:minutes\": r[10] || (r[10] = (E) => s(le)(E, !1)),\n \"onUpdate:seconds\": r[11] || (r[11] = (E) => s(le)(E, !1, !0)),\n onResetFlow: r[12] || (r[12] = (E) => ne.$emit(\"reset-flow\")),\n onOverlayClosed: r[13] || (r[13] = (E) => B(E, !1)),\n onOverlayOpened: r[14] || (r[14] = (E) => B(E, !0)),\n onAmPmChange: r[15] || (r[15] = (E) => ne.$emit(\"am-pm-change\", E))\n }), Ge({ _: 2 }, [\n Ce(s(S), (E, K) => ({\n name: E,\n fn: we((oe) => [\n ie(ne.$slots, E, ze(Je(oe)))\n ])\n }))\n ]), 1040, [\"hours\", \"minutes\", \"seconds\", \"internal-model-value\", \"disabled-times-config\", \"validate-time\"]))\n ])) : Q(\"\", !0)\n ], 64));\n }\n}), Jr = (e, t) => {\n const l = Z(), {\n defaultedMultiCalendars: n,\n defaultedConfig: a,\n defaultedHighlight: f,\n defaultedRange: i,\n propDates: g,\n defaultedFilters: d,\n defaultedMultiDates: P\n } = Oe(e), { modelValue: v, year: R, month: h, calendars: T } = na(e, t), { isDisabled: F } = Tt(e), { selectYear: _, groupedYears: C, showYearPicker: M, isDisabled: A, toggleYearPicker: m, handleYearSelect: z, handleYear: L } = jn({\n modelValue: v,\n multiCalendars: n,\n range: i,\n highlight: f,\n calendars: T,\n propDates: g,\n month: h,\n year: R,\n filters: d,\n props: e,\n emit: t\n }), le = (y, V) => [y, V].map((S) => ft(S, \"MMMM\", { locale: e.formatLocale })).join(\"-\"), U = j(() => (y) => v.value ? Array.isArray(v.value) ? v.value.some((V) => rn(y, V)) : rn(v.value, y) : !1), $ = (y) => {\n if (i.value.enabled) {\n if (Array.isArray(v.value)) {\n const V = $e(y, v.value[0]) || $e(y, v.value[1]);\n return xt(v.value, l.value, y) && !V;\n }\n return !1;\n }\n return !1;\n }, ee = (y, V) => y.quarter === sn(V) && y.year === ye(V), O = (y) => typeof f.value == \"function\" ? f.value({ quarter: sn(y), year: ye(y) }) : !!f.value.quarters.find((V) => ee(V, y)), J = j(() => (y) => {\n const V = Se(/* @__PURE__ */ new Date(), { year: R.value(y) });\n return yl({\n start: Gt(V),\n end: An(V)\n }).map((S) => {\n const q = hl(S), k = on(S), se = F(S), u = $(q), re = O(q);\n return {\n text: le(q, k),\n value: q,\n active: U.value(q),\n highlighted: re,\n disabled: se,\n isBetween: u\n };\n });\n }), ce = (y) => {\n en(y, v, P.value.limit), t(\"auto-apply\", !0);\n }, pe = (y) => {\n v.value = tn(v, y, t), pa(v.value, t, e.autoApply, e.modelAuto);\n }, p = (y) => {\n v.value = y, t(\"auto-apply\");\n };\n return {\n defaultedConfig: a,\n defaultedMultiCalendars: n,\n groupedYears: C,\n year: R,\n isDisabled: A,\n quarters: J,\n showYearPicker: M,\n modelValue: v,\n setHoverDate: (y) => {\n l.value = y;\n },\n selectYear: _,\n selectQuarter: (y, V, S) => {\n if (!S)\n return T.value[V].month = Me(on(y)), P.value.enabled ? ce(y) : i.value.enabled ? pe(y) : p(y);\n },\n toggleYearPicker: m,\n handleYearSelect: z,\n handleYear: L\n };\n}, Zr = { class: \"dp--quarter-items\" }, xr = [\"data-test-id\", \"disabled\", \"onClick\", \"onMouseover\"], eo = /* @__PURE__ */ We({\n compatConfig: {\n MODE: 3\n },\n __name: \"QuarterPicker\",\n props: {\n ...dt\n },\n emits: [\n \"update:internal-model-value\",\n \"reset-flow\",\n \"overlay-closed\",\n \"auto-apply\",\n \"range-start\",\n \"range-end\",\n \"overlay-toggle\",\n \"update-month-year\"\n ],\n setup(e, { expose: t, emit: l }) {\n const n = l, a = e, f = Yt(), i = et(f, \"yearMode\"), {\n defaultedMultiCalendars: g,\n defaultedConfig: d,\n groupedYears: P,\n year: v,\n isDisabled: R,\n quarters: h,\n modelValue: T,\n showYearPicker: F,\n setHoverDate: _,\n selectQuarter: C,\n toggleYearPicker: M,\n handleYearSelect: A,\n handleYear: m\n } = Jr(a, n);\n return t({ getSidebarProps: () => ({\n modelValue: T,\n year: v,\n selectQuarter: C,\n handleYearSelect: A,\n handleYear: m\n }) }), (L, le) => (w(), Te(ma, {\n \"multi-calendars\": s(g).count,\n collapse: L.collapse,\n stretch: \"\",\n \"is-mobile\": L.isMobile\n }, {\n default: we(({ instance: U }) => [\n he(\"div\", {\n class: \"dp-quarter-picker-wrap\",\n style: lt({ minHeight: `${s(d).modeHeight}px` })\n }, [\n L.$slots[\"top-extra\"] ? ie(L.$slots, \"top-extra\", {\n key: 0,\n value: L.internalModelValue\n }) : Q(\"\", !0),\n he(\"div\", null, [\n tt(Wn, He(L.$props, {\n items: s(P)(U),\n instance: U,\n \"show-year-picker\": s(F)[U],\n year: s(v)(U),\n \"is-disabled\": ($) => s(R)(U, $),\n onHandleYear: ($) => s(m)(U, $),\n onYearSelect: ($) => s(A)($, U),\n onToggleYearPicker: ($) => s(M)(U, $?.flow, $?.show)\n }), Ge({ _: 2 }, [\n Ce(s(i), ($, ee) => ({\n name: $,\n fn: we((O) => [\n ie(L.$slots, $, ze(Je(O)))\n ])\n }))\n ]), 1040, [\"items\", \"instance\", \"show-year-picker\", \"year\", \"is-disabled\", \"onHandleYear\", \"onYearSelect\", \"onToggleYearPicker\"])\n ]),\n he(\"div\", Zr, [\n (w(!0), W(ke, null, Ce(s(h)(U), ($, ee) => (w(), W(\"div\", { key: ee }, [\n he(\"button\", {\n type: \"button\",\n class: De([\"dp--qr-btn\", {\n \"dp--qr-btn-active\": $.active,\n \"dp--qr-btn-between\": $.isBetween,\n \"dp--qr-btn-disabled\": $.disabled,\n \"dp--highlighted\": $.highlighted\n }]),\n \"data-test-id\": $.value,\n disabled: $.disabled,\n onClick: (O) => s(C)($.value, U, $.disabled),\n onMouseover: (O) => s(_)($.value)\n }, [\n L.$slots.quarter ? ie(L.$slots, \"quarter\", {\n key: 0,\n value: $.value,\n text: $.text\n }) : (w(), W(ke, { key: 1 }, [\n gt(Ke($.text), 1)\n ], 64))\n ], 42, xr)\n ]))), 128))\n ])\n ], 4)\n ]),\n _: 3\n }, 8, [\"multi-calendars\", \"collapse\", \"is-mobile\"]));\n }\n}), Qn = (e, t) => {\n const l = Z(0);\n Ue(() => {\n n(), window.addEventListener(\"resize\", n, { passive: !0 });\n }), Ut(() => {\n window.removeEventListener(\"resize\", n);\n });\n const n = () => {\n l.value = window.document.documentElement.clientWidth;\n };\n return {\n isMobile: j(\n () => l.value <= e.value.mobileBreakpoint && !t ? !0 : void 0\n )\n };\n}, to = [\"id\", \"tabindex\", \"role\", \"aria-label\"], ao = {\n key: 0,\n class: \"dp--menu-load-container\"\n}, no = {\n key: 1,\n class: \"dp--menu-header\"\n}, lo = [\"data-dp-mobile\"], ro = {\n key: 0,\n class: \"dp__sidebar_left\"\n}, oo = [\"data-dp-mobile\"], so = [\"data-test-id\", \"data-dp-mobile\", \"onClick\", \"onKeydown\"], uo = {\n key: 2,\n class: \"dp__sidebar_right\"\n}, io = {\n key: 3,\n class: \"dp__action_extra\"\n}, hn = /* @__PURE__ */ We({\n compatConfig: {\n MODE: 3\n },\n __name: \"DatepickerMenu\",\n props: {\n ...va,\n shadow: { type: Boolean, default: !1 },\n openOnTop: { type: Boolean, default: !1 },\n internalModelValue: { type: [Date, Array], default: null },\n noOverlayFocus: { type: Boolean, default: !1 },\n collapse: { type: Boolean, default: !1 },\n getInputRect: { type: Function, default: () => ({}) },\n isTextInputDate: { type: Boolean, default: !1 }\n },\n emits: [\n \"close-picker\",\n \"select-date\",\n \"auto-apply\",\n \"time-update\",\n \"flow-step\",\n \"update-month-year\",\n \"invalid-select\",\n \"update:internal-model-value\",\n \"recalculate-position\",\n \"invalid-fixed-range\",\n \"tooltip-open\",\n \"tooltip-close\",\n \"time-picker-open\",\n \"time-picker-close\",\n \"am-pm-change\",\n \"range-start\",\n \"range-end\",\n \"auto-apply-invalid\",\n \"date-update\",\n \"invalid-date\",\n \"overlay-toggle\",\n \"menu-blur\"\n ],\n setup(e, { expose: t, emit: l }) {\n const n = l, a = e, f = Z(null), i = j(() => {\n const { openOnTop: D, ...de } = a;\n return {\n ...de,\n isMobile: C.value,\n flowStep: pe.value,\n menuWrapRef: f.value\n };\n }), { setMenuFocused: g, setShiftKey: d, control: P } = Hn(), v = Yt(), { defaultedTextInput: R, defaultedInline: h, defaultedConfig: T, defaultedUI: F, handleEventPropagation: _ } = Oe(a), { isMobile: C } = Qn(T, a.shadow), M = Z(null), A = Z(0), m = Z(null), z = Z(!1), L = Z(null), le = Z(!1), U = (D) => {\n le.value = !0, T.value.allowPreventDefault && D.preventDefault(), Dt(D, T.value, !0);\n };\n Ue(() => {\n if (!a.shadow) {\n z.value = !0, $(), window.addEventListener(\"resize\", $);\n const D = Le(f);\n D && !R.value.enabled && !h.value.enabled && (g(!0), q()), D && (D.addEventListener(\"pointerdown\", U), D.addEventListener(\"mousedown\", U));\n }\n document.addEventListener(\"mousedown\", nt);\n }), Ut(() => {\n window.removeEventListener(\"resize\", $), document.removeEventListener(\"mousedown\", nt);\n const D = Le(f);\n D && (D.removeEventListener(\"pointerdown\", U), D.removeEventListener(\"mousedown\", U));\n });\n const $ = () => {\n const D = Le(m);\n D && (A.value = D.getBoundingClientRect().width);\n }, { arrowRight: ee, arrowLeft: O, arrowDown: J, arrowUp: ce } = At(), { flowStep: pe, updateFlowStep: p, childMount: Y, resetFlow: te, handleFlow: y } = po(a, n, L), V = j(() => a.monthPicker ? hr : a.yearPicker ? kr : a.timePicker ? Yr : a.quarterPicker ? eo : Xr), S = j(() => {\n if (T.value.arrowLeft) return T.value.arrowLeft;\n const D = f.value?.getBoundingClientRect(), de = a.getInputRect();\n return de?.width < A?.value && de?.left <= (D?.left ?? 0) ? `${de?.width / 2}px` : de?.right >= (D?.right ?? 0) && de?.width < A?.value ? `${A?.value - de?.width / 2}px` : \"50%\";\n }), q = () => {\n const D = Le(f);\n D && D.focus({ preventScroll: !0 });\n }, k = j(() => L.value?.getSidebarProps() || {}), se = () => {\n a.openOnTop && n(\"recalculate-position\");\n }, u = et(v, \"action\"), re = j(() => a.monthPicker || a.yearPicker ? et(v, \"monthYear\") : a.timePicker ? et(v, \"timePicker\") : et(v, \"shared\")), G = j(() => a.openOnTop ? \"dp__arrow_bottom\" : \"dp__arrow_top\"), I = j(() => ({\n dp__menu_disabled: a.disabled,\n dp__menu_readonly: a.readonly,\n \"dp-menu-loading\": a.loading\n })), x = j(\n () => ({\n dp__menu: !0,\n dp__menu_index: !h.value.enabled,\n dp__relative: h.value.enabled,\n ...F.value.menu ?? {}\n })\n ), c = (D) => {\n Dt(D, T.value, !0);\n }, o = (D) => {\n a.escClose && (n(\"close-picker\"), _(D));\n }, X = (D) => {\n if (a.arrowNavigation) {\n if (D === Qe.up) return ce();\n if (D === Qe.down) return J();\n if (D === Qe.left) return O();\n if (D === Qe.right) return ee();\n } else D === Qe.left || D === Qe.up ? r(\"handleArrow\", Qe.left, 0, D === Qe.up) : r(\"handleArrow\", Qe.right, 0, D === Qe.down);\n }, B = (D) => {\n d(D.shiftKey), !a.disableMonthYearSelect && D.code === Re.tab && D.target.classList.contains(\"dp__menu\") && P.value.shiftKeyInMenu && (D.preventDefault(), Dt(D, T.value, !0), n(\"close-picker\"));\n }, be = () => {\n q(), n(\"time-picker-close\");\n }, Ae = (D) => {\n L.value?.toggleTimePicker(!1, !1), L.value?.toggleMonthPicker(!1, !1, D), L.value?.toggleYearPicker(!1, !1, D);\n }, ne = (D, de = 0) => D === \"month\" ? L.value?.toggleMonthPicker(!1, !0, de) : D === \"year\" ? L.value?.toggleYearPicker(!1, !0, de) : D === \"time\" ? L.value?.toggleTimePicker(!0, !1) : Ae(de), r = (D, ...de) => {\n L.value?.[D] && L.value?.[D](...de);\n }, E = () => {\n r(\"selectCurrentDate\");\n }, K = (D, de) => {\n r(\"presetDate\", el(D), de);\n }, oe = () => {\n r(\"clearHoverDate\");\n }, ge = (D, de) => {\n r(\"updateMonthYear\", D, de);\n }, _e = (D, de) => {\n D.preventDefault(), X(de);\n }, Ye = (D) => {\n if (B(D), D.key === Re.home || D.key === Re.end)\n return r(\n \"selectWeekDate\",\n D.key === Re.home,\n D.target.getAttribute(\"id\")\n );\n switch ((D.key === Re.pageUp || D.key === Re.pageDown) && (D.shiftKey ? (r(\"changeYear\", D.key === Re.pageUp), Fa(f.value, \"overlay-year\")?.focus()) : (r(\"changeMonth\", D.key === Re.pageUp), Fa(f.value, D.key === Re.pageUp ? \"action-prev\" : \"action-next\")?.focus()), D.target.getAttribute(\"id\") && f.value?.focus({ preventScroll: !0 })), D.key) {\n case Re.esc:\n return o(D);\n case Re.arrowLeft:\n return _e(D, Qe.left);\n case Re.arrowRight:\n return _e(D, Qe.right);\n case Re.arrowUp:\n return _e(D, Qe.up);\n case Re.arrowDown:\n return _e(D, Qe.down);\n default:\n return;\n }\n }, nt = (D) => {\n h.value.enabled && !h.value.input && !f.value?.contains(D.target) && le.value && (le.value = !1, n(\"menu-blur\"));\n };\n return t({\n updateMonthYear: ge,\n switchView: ne,\n handleFlow: y,\n onValueCleared: () => {\n L.value?.setStartTime?.();\n }\n }), (D, de) => (w(), W(\"div\", {\n id: D.uid ? `dp-menu-${D.uid}` : void 0,\n ref_key: \"dpMenuRef\",\n ref: f,\n tabindex: s(h).enabled ? void 0 : \"0\",\n role: s(h).enabled ? void 0 : \"dialog\",\n \"aria-label\": D.ariaLabels?.menu,\n class: De(x.value),\n style: lt({ \"--dp-arrow-left\": S.value }),\n onMouseleave: oe,\n onClick: c,\n onKeydown: Ye\n }, [\n (D.disabled || D.readonly) && s(h).enabled || D.loading ? (w(), W(\"div\", {\n key: 0,\n class: De(I.value)\n }, [\n D.loading ? (w(), W(\"div\", ao, [...de[19] || (de[19] = [\n he(\"span\", { class: \"dp--menu-loader\" }, null, -1)\n ])])) : Q(\"\", !0)\n ], 2)) : Q(\"\", !0),\n D.$slots[\"menu-header\"] ? (w(), W(\"div\", no, [\n ie(D.$slots, \"menu-header\")\n ])) : Q(\"\", !0),\n !s(h).enabled && !D.teleportCenter ? (w(), W(\"div\", {\n key: 2,\n class: De(G.value)\n }, null, 2)) : Q(\"\", !0),\n he(\"div\", {\n ref_key: \"innerMenuRef\",\n ref: m,\n class: De({\n dp__menu_content_wrapper: D.presetDates?.length || !!D.$slots[\"left-sidebar\"] || !!D.$slots[\"right-sidebar\"],\n \"dp--menu-content-wrapper-collapsed\": e.collapse && (D.presetDates?.length || !!D.$slots[\"left-sidebar\"] || !!D.$slots[\"right-sidebar\"])\n }),\n \"data-dp-mobile\": s(C),\n style: lt({ \"--dp-menu-width\": `${A.value}px` })\n }, [\n D.$slots[\"left-sidebar\"] ? (w(), W(\"div\", ro, [\n ie(D.$slots, \"left-sidebar\", ze(Je(k.value)))\n ])) : Q(\"\", !0),\n D.presetDates.length ? (w(), W(\"div\", {\n key: 1,\n class: De({ \"dp--preset-dates-collapsed\": e.collapse, \"dp--preset-dates\": !0 }),\n \"data-dp-mobile\": s(C)\n }, [\n (w(!0), W(ke, null, Ce(D.presetDates, (fe, ht) => (w(), W(ke, { key: ht }, [\n fe.slot ? ie(D.$slots, fe.slot, {\n key: 0,\n presetDate: K,\n label: fe.label,\n value: fe.value\n }) : (w(), W(\"button\", {\n key: 1,\n type: \"button\",\n style: lt(fe.style || {}),\n class: De([\"dp__btn dp--preset-range\", { \"dp--preset-range-collapsed\": e.collapse }]),\n \"data-test-id\": fe.testId ?? void 0,\n \"data-dp-mobile\": s(C),\n onClick: Xt((xe) => K(fe.value, fe.noTz), [\"prevent\"]),\n onKeydown: (xe) => s(qe)(xe, () => K(fe.value, fe.noTz), !0)\n }, Ke(fe.label), 47, so))\n ], 64))), 128))\n ], 10, oo)) : Q(\"\", !0),\n he(\"div\", {\n ref_key: \"calendarWrapperRef\",\n ref: M,\n class: \"dp__instance_calendar\",\n role: \"document\"\n }, [\n (w(), Te(fa(V.value), He({\n ref_key: \"dynCmpRef\",\n ref: L\n }, i.value, {\n \"flow-step\": s(pe),\n onMount: s(Y),\n onUpdateFlowStep: s(p),\n onResetFlow: s(te),\n onFocusMenu: q,\n onSelectDate: de[0] || (de[0] = (fe) => D.$emit(\"select-date\")),\n onDateUpdate: de[1] || (de[1] = (fe) => D.$emit(\"date-update\", fe)),\n onTooltipOpen: de[2] || (de[2] = (fe) => D.$emit(\"tooltip-open\", fe)),\n onTooltipClose: de[3] || (de[3] = (fe) => D.$emit(\"tooltip-close\", fe)),\n onAutoApply: de[4] || (de[4] = (fe) => D.$emit(\"auto-apply\", fe)),\n onRangeStart: de[5] || (de[5] = (fe) => D.$emit(\"range-start\", fe)),\n onRangeEnd: de[6] || (de[6] = (fe) => D.$emit(\"range-end\", fe)),\n onInvalidFixedRange: de[7] || (de[7] = (fe) => D.$emit(\"invalid-fixed-range\", fe)),\n onTimeUpdate: de[8] || (de[8] = (fe) => D.$emit(\"time-update\")),\n onAmPmChange: de[9] || (de[9] = (fe) => D.$emit(\"am-pm-change\", fe)),\n onTimePickerOpen: de[10] || (de[10] = (fe) => D.$emit(\"time-picker-open\", fe)),\n onTimePickerClose: be,\n onRecalculatePosition: se,\n onUpdateMonthYear: de[11] || (de[11] = (fe) => D.$emit(\"update-month-year\", fe)),\n onAutoApplyInvalid: de[12] || (de[12] = (fe) => D.$emit(\"auto-apply-invalid\", fe)),\n onInvalidDate: de[13] || (de[13] = (fe) => D.$emit(\"invalid-date\", fe)),\n onOverlayToggle: de[14] || (de[14] = (fe) => D.$emit(\"overlay-toggle\", fe)),\n \"onUpdate:internalModelValue\": de[15] || (de[15] = (fe) => D.$emit(\"update:internal-model-value\", fe))\n }), Ge({ _: 2 }, [\n Ce(re.value, (fe, ht) => ({\n name: fe,\n fn: we((xe) => [\n ie(D.$slots, fe, ze(Je({ ...xe })))\n ])\n }))\n ]), 1040, [\"flow-step\", \"onMount\", \"onUpdateFlowStep\", \"onResetFlow\"]))\n ], 512),\n D.$slots[\"right-sidebar\"] ? (w(), W(\"div\", uo, [\n ie(D.$slots, \"right-sidebar\", ze(Je(k.value)))\n ])) : Q(\"\", !0),\n D.$slots[\"action-extra\"] ? (w(), W(\"div\", io, [\n D.$slots[\"action-extra\"] ? ie(D.$slots, \"action-extra\", {\n key: 0,\n selectCurrentDate: E\n }) : Q(\"\", !0)\n ])) : Q(\"\", !0)\n ], 14, lo),\n !D.autoApply || s(T).keepActionRow ? (w(), Te(ir, He({\n key: 3,\n \"menu-mount\": z.value\n }, i.value, {\n \"calendar-width\": A.value,\n onClosePicker: de[16] || (de[16] = (fe) => D.$emit(\"close-picker\")),\n onSelectDate: de[17] || (de[17] = (fe) => D.$emit(\"select-date\")),\n onInvalidSelect: de[18] || (de[18] = (fe) => D.$emit(\"invalid-select\")),\n onSelectNow: E\n }), Ge({ _: 2 }, [\n Ce(s(u), (fe, ht) => ({\n name: fe,\n fn: we((xe) => [\n ie(D.$slots, fe, ze(Je({ ...xe })))\n ])\n }))\n ]), 1040, [\"menu-mount\", \"calendar-width\"])) : Q(\"\", !0)\n ], 46, to));\n }\n});\nvar Et = /* @__PURE__ */ ((e) => (e.center = \"center\", e.left = \"left\", e.right = \"right\", e))(Et || {});\nconst co = ({\n menuRef: e,\n menuRefInner: t,\n inputRef: l,\n pickerWrapperRef: n,\n inline: a,\n emit: f,\n props: i,\n slots: g\n}) => {\n const { defaultedConfig: d } = Oe(i), P = Z({}), v = Z(!1), R = Z({\n top: \"0\",\n left: \"0\"\n }), h = Z(!1), T = qt(i, \"teleportCenter\");\n rt(T, () => {\n R.value = JSON.parse(JSON.stringify({})), L();\n });\n const F = (y) => {\n if (i.teleport) {\n const V = y.getBoundingClientRect();\n return {\n left: V.left + window.scrollX,\n top: V.top + window.scrollY\n };\n }\n return { top: 0, left: 0 };\n }, _ = (y, V) => {\n R.value.left = `${y + V - P.value.width}px`;\n }, C = (y) => {\n R.value.left = `${y}px`;\n }, M = (y, V) => {\n i.position === Et.left && C(y), i.position === Et.right && _(y, V), i.position === Et.center && (R.value.left = `${y + V / 2 - P.value.width / 2}px`);\n }, A = (y) => {\n const { width: V, height: S } = y.getBoundingClientRect(), { top: q, left: k } = F(y);\n return { top: +q, left: +k, width: V, height: S };\n }, m = () => {\n R.value.left = \"50%\", R.value.top = \"50%\", R.value.transform = \"translate(-50%, -50%)\", R.value.position = \"fixed\", delete R.value.opacity;\n }, z = () => {\n const y = Le(l);\n R.value = i.altPosition(y);\n }, L = (y = !0) => {\n if (!a.value.enabled) {\n if (T.value) return m();\n if (i.altPosition !== null) return z();\n if (y) {\n const V = i.teleport ? t.value?.$el : e.value;\n V && (P.value = V.getBoundingClientRect()), f(\"recalculate-position\");\n }\n return ce();\n }\n }, le = ({ inputEl: y, left: V, width: S }) => {\n window.screen.width > 768 && !v.value && M(V, S), ee(y);\n }, U = (y) => {\n const { top: V, left: S, height: q, width: k } = A(y);\n R.value.top = `${q + V + +i.offset}px`, h.value = !1, v.value || (R.value.left = `${S + k / 2 - P.value.width / 2}px`), le({ inputEl: y, left: S, width: k });\n }, $ = (y) => {\n const { top: V, left: S, width: q } = A(y);\n R.value.top = `${V - +i.offset - P.value.height}px`, h.value = !0, le({ inputEl: y, left: S, width: q });\n }, ee = (y) => {\n if (i.autoPosition) {\n const { left: V, width: S } = A(y), { left: q, right: k } = P.value;\n if (!v.value) {\n if (Math.abs(q) !== Math.abs(k)) {\n if (q <= 0)\n return v.value = !0, C(V);\n if (k >= document.documentElement.clientWidth)\n return v.value = !0, _(V, S);\n }\n return M(V, S);\n }\n }\n }, O = () => {\n const y = Le(l);\n if (y) {\n if (i.autoPosition === st.top) return st.top;\n if (i.autoPosition === st.bottom) return st.bottom;\n const { height: V } = P.value, { top: S, height: q } = y.getBoundingClientRect(), se = window.innerHeight - S - q, u = S;\n return V <= se ? st.bottom : V > se && V <= u ? st.top : se >= u ? st.bottom : st.top;\n }\n return st.bottom;\n }, J = (y) => O() === st.bottom ? U(y) : $(y), ce = () => {\n const y = Le(l);\n if (y)\n return i.autoPosition ? J(y) : U(y);\n }, pe = function(y) {\n if (y) {\n const V = y.scrollHeight > y.clientHeight, q = window.getComputedStyle(y).overflowY.indexOf(\"hidden\") !== -1;\n return V && !q;\n }\n return !0;\n }, p = function(y) {\n return !y || y === document.body || y.nodeType === Node.DOCUMENT_FRAGMENT_NODE ? window : pe(y) ? y : p(\n y.assignedSlot && d.value.shadowDom ? y.assignedSlot.parentNode : y.parentNode\n );\n }, Y = (y) => {\n if (y)\n switch (i.position) {\n case Et.left:\n return { left: 0, transform: \"translateX(0)\" };\n case Et.right:\n return { left: `${y.width}px`, transform: \"translateX(-100%)\" };\n default:\n return { left: `${y.width / 2}px`, transform: \"translateX(-50%)\" };\n }\n return {};\n };\n return {\n openOnTop: h,\n menuStyle: R,\n xCorrect: v,\n setMenuPosition: L,\n getScrollableParent: p,\n shadowRender: (y, V, S) => {\n const q = document.createElement(\"div\"), k = Le(l)?.getBoundingClientRect();\n q.setAttribute(\"id\", \"dp--temp-container\");\n const se = n.value?.clientWidth ? n.value : document.body;\n se.append(q);\n const u = Y(k), re = d.value.shadowDom ? Object.keys(g).filter(\n (I) => [\"right-sidebar\", \"left-sidebar\", \"top-extra\", \"action-extra\"].includes(I)\n ) : Object.keys(g), G = tl(\n V,\n {\n ...S,\n shadow: !0,\n style: { opacity: 0, position: \"absolute\", ...u }\n },\n Object.fromEntries(re.map((I) => [I, g[I]]))\n );\n y != null && (G.appContext = y.appContext), nn(G, q), P.value = G.el?.getBoundingClientRect(), nn(null, q), se.removeChild(q);\n }\n };\n}, bt = [\n { name: \"clock-icon\", use: [\"time\", \"calendar\", \"shared\"] },\n { name: \"arrow-left\", use: [\"month-year\", \"calendar\", \"shared\", \"year-mode\"] },\n { name: \"arrow-right\", use: [\"month-year\", \"calendar\", \"shared\", \"year-mode\"] },\n { name: \"arrow-up\", use: [\"time\", \"calendar\", \"month-year\", \"shared\"] },\n { name: \"arrow-down\", use: [\"time\", \"calendar\", \"month-year\", \"shared\"] },\n { name: \"calendar-icon\", use: [\"month-year\", \"time\", \"calendar\", \"shared\", \"year-mode\"] },\n { name: \"day\", use: [\"calendar\", \"shared\"] },\n { name: \"month-overlay-value\", use: [\"calendar\", \"month-year\", \"shared\"] },\n { name: \"year-overlay-value\", use: [\"calendar\", \"month-year\", \"shared\", \"year-mode\"] },\n { name: \"year-overlay\", use: [\"month-year\", \"shared\"] },\n { name: \"month-overlay\", use: [\"month-year\", \"shared\"] },\n { name: \"month-overlay-header\", use: [\"month-year\", \"shared\"] },\n { name: \"year-overlay-header\", use: [\"month-year\", \"shared\"] },\n { name: \"hours-overlay-value\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"hours-overlay-header\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"minutes-overlay-value\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"minutes-overlay-header\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"seconds-overlay-value\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"seconds-overlay-header\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"hours\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"minutes\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"month\", use: [\"calendar\", \"month-year\", \"shared\"] },\n { name: \"year\", use: [\"calendar\", \"month-year\", \"shared\", \"year-mode\"] },\n { name: \"action-buttons\", use: [\"action\"] },\n { name: \"action-preview\", use: [\"action\"] },\n { name: \"calendar-header\", use: [\"calendar\", \"shared\"] },\n { name: \"marker-tooltip\", use: [\"calendar\", \"shared\"] },\n { name: \"action-extra\", use: [\"menu\"] },\n { name: \"time-picker-overlay\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"am-pm-button\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"left-sidebar\", use: [\"menu\"] },\n { name: \"right-sidebar\", use: [\"menu\"] },\n { name: \"month-year\", use: [\"month-year\", \"shared\"] },\n { name: \"time-picker\", use: [\"menu\", \"shared\"] },\n { name: \"action-row\", use: [\"action\"] },\n { name: \"marker\", use: [\"calendar\", \"shared\"] },\n { name: \"quarter\", use: [\"shared\"] },\n { name: \"top-extra\", use: [\"shared\", \"month-year\"] },\n { name: \"tp-inline-arrow-up\", use: [\"shared\", \"time\"] },\n { name: \"tp-inline-arrow-down\", use: [\"shared\", \"time\"] },\n { name: \"menu-header\", use: [\"menu\"] }\n], fo = [{ name: \"trigger\" }, { name: \"input-icon\" }, { name: \"clear-icon\" }, { name: \"dp-input\" }], vo = {\n all: () => bt,\n monthYear: () => bt.filter((e) => e.use.includes(\"month-year\")),\n input: () => fo,\n timePicker: () => bt.filter((e) => e.use.includes(\"time\")),\n action: () => bt.filter((e) => e.use.includes(\"action\")),\n calendar: () => bt.filter((e) => e.use.includes(\"calendar\")),\n menu: () => bt.filter((e) => e.use.includes(\"menu\")),\n shared: () => bt.filter((e) => e.use.includes(\"shared\")),\n yearMode: () => bt.filter((e) => e.use.includes(\"year-mode\"))\n}, et = (e, t, l) => {\n const n = [];\n return vo[t]().forEach((a) => {\n e[a.name] && n.push(a.name);\n }), l?.length && l.forEach((a) => {\n a.slot && n.push(a.slot);\n }), n;\n}, aa = (e) => {\n const t = j(() => (n) => e.value ? n ? e.value.open : e.value.close : \"\"), l = j(() => (n) => e.value ? n ? e.value.menuAppearTop : e.value.menuAppearBottom : \"\");\n return { transitionName: t, showTransition: !!e.value, menuTransition: l };\n}, na = (e, t, l) => {\n const { defaultedRange: n, defaultedTz: a } = Oe(e), f = H(Ze(H(), a.value.timezone)), i = Z([{ month: Me(f), year: ye(f) }]), g = (h) => {\n const T = {\n hours: yt(f),\n minutes: $t(f),\n seconds: 0\n };\n return n.value.enabled ? [T[h], T[h]] : T[h];\n }, d = ea({\n hours: g(\"hours\"),\n minutes: g(\"minutes\"),\n seconds: g(\"seconds\")\n });\n rt(\n n,\n (h, T) => {\n h.enabled !== T.enabled && (d.hours = g(\"hours\"), d.minutes = g(\"minutes\"), d.seconds = g(\"seconds\"));\n },\n { deep: !0 }\n );\n const P = j({\n get: () => e.internalModelValue,\n set: (h) => {\n !e.readonly && !e.disabled && t(\"update:internal-model-value\", h);\n }\n }), v = j(\n () => (h) => i.value[h] ? i.value[h].month : 0\n ), R = j(\n () => (h) => i.value[h] ? i.value[h].year : 0\n );\n return rt(\n P,\n (h, T) => {\n l && JSON.stringify(h ?? {}) !== JSON.stringify(T ?? {}) && l();\n },\n { deep: !0 }\n ), {\n calendars: i,\n time: d,\n modelValue: P,\n month: v,\n year: R,\n today: f\n };\n}, mo = (e, t) => {\n const {\n defaultedMultiCalendars: l,\n defaultedMultiDates: n,\n defaultedUI: a,\n defaultedHighlight: f,\n defaultedTz: i,\n propDates: g,\n defaultedRange: d\n } = Oe(t), { isDisabled: P } = Tt(t), v = Z(null), R = Z(Ze(/* @__PURE__ */ new Date(), i.value.timezone)), h = (c) => {\n !c.current && t.hideOffsetDates || (v.value = c.value);\n }, T = () => {\n v.value = null;\n }, F = (c) => Array.isArray(e.value) && d.value.enabled && e.value[0] && v.value ? c ? Ee(v.value, e.value[0]) : Be(v.value, e.value[0]) : !0, _ = (c, o) => {\n const X = () => e.value ? o ? e.value[0] || null : e.value[1] : null, B = e.value && Array.isArray(e.value) ? X() : null;\n return $e(H(c.value), B);\n }, C = (c) => {\n const o = Array.isArray(e.value) ? e.value[0] : null;\n return c ? !Be(v.value ?? null, o) : !0;\n }, M = (c, o = !0) => (d.value.enabled || t.weekPicker) && Array.isArray(e.value) && e.value.length === 2 ? t.hideOffsetDates && !c.current ? !1 : $e(H(c.value), e.value[o ? 0 : 1]) : d.value.enabled ? _(c, o) && C(o) || $e(c.value, Array.isArray(e.value) ? e.value[0] : null) && F(o) : !1, A = (c, o) => {\n if (Array.isArray(e.value) && e.value[0] && e.value.length === 1) {\n const X = $e(c.value, v.value);\n return o ? Ee(e.value[0], c.value) && X : Be(e.value[0], c.value) && X;\n }\n return !1;\n }, m = (c) => !e.value || t.hideOffsetDates && !c.current ? !1 : d.value.enabled ? t.modelAuto && Array.isArray(e.value) ? $e(c.value, e.value[0] ? e.value[0] : R.value) : !1 : n.value.enabled && Array.isArray(e.value) ? e.value.some((o) => $e(o, c.value)) : $e(c.value, e.value ? e.value : R.value), z = (c) => {\n if (d.value.autoRange || t.weekPicker) {\n if (v.value) {\n if (t.hideOffsetDates && !c.current) return !1;\n const o = kt(v.value, +d.value.autoRange), X = mt(H(v.value), t.weekStart);\n return t.weekPicker ? $e(X[1], H(c.value)) : $e(o, H(c.value));\n }\n return !1;\n }\n return !1;\n }, L = (c) => {\n if (d.value.autoRange || t.weekPicker) {\n if (v.value) {\n const o = kt(v.value, +d.value.autoRange);\n if (t.hideOffsetDates && !c.current) return !1;\n const X = mt(H(v.value), t.weekStart);\n return t.weekPicker ? Ee(c.value, X[0]) && Be(c.value, X[1]) : Ee(c.value, v.value) && Be(c.value, o);\n }\n return !1;\n }\n return !1;\n }, le = (c) => {\n if (d.value.autoRange || t.weekPicker) {\n if (v.value) {\n if (t.hideOffsetDates && !c.current) return !1;\n const o = mt(H(v.value), t.weekStart);\n return t.weekPicker ? $e(o[0], c.value) : $e(v.value, c.value);\n }\n return !1;\n }\n return !1;\n }, U = (c) => xt(e.value, v.value, c.value), $ = () => t.modelAuto && Array.isArray(t.internalModelValue) ? !!t.internalModelValue[0] : !1, ee = () => t.modelAuto ? Rn(t.internalModelValue) : !0, O = (c) => {\n if (t.weekPicker) return !1;\n const o = d.value.enabled ? !M(c) && !M(c, !1) : !0;\n return !P(c.value) && !m(c) && !(!c.current && t.hideOffsetDates) && o;\n }, J = (c) => d.value.enabled ? t.modelAuto ? $() && m(c) : !1 : m(c), ce = (c) => f.value ? Bl(c.value, g.value.highlight) : !1, pe = (c) => {\n const o = P(c.value);\n return o && (typeof f.value == \"function\" ? !f.value(c.value, o) : !f.value.options.highlightDisabled);\n }, p = (c) => typeof f.value == \"function\" ? f.value(c.value) : f.value.weekdays?.includes(c.value.getDay()), Y = (c) => (d.value.enabled || t.weekPicker) && (!(l.value.count > 0) || c.current) && ee() && !(!c.current && t.hideOffsetDates) && !m(c) ? U(c) : !1, te = (c) => {\n if (Array.isArray(e.value) && e.value.length === 1) {\n const { before: o, after: X } = mn(+d.value.maxRange, e.value[0]);\n return Ft(c.value, o) || _t(c.value, X);\n }\n return !1;\n }, y = (c) => {\n if (Array.isArray(e.value) && e.value.length === 1) {\n const { before: o, after: X } = mn(+d.value.minRange, e.value[0]);\n return xt([o, X], e.value[0], c.value);\n }\n return !1;\n }, V = (c) => d.value.enabled && (d.value.maxRange || d.value.minRange) ? d.value.maxRange && d.value.minRange ? te(c) || y(c) : d.value.maxRange ? te(c) : y(c) : !1, S = (c) => {\n const { isRangeStart: o, isRangeEnd: X } = u(c), B = d.value.enabled ? o || X : !1;\n return {\n dp__cell_offset: !c.current,\n dp__pointer: !t.disabled && !(!c.current && t.hideOffsetDates) && !P(c.value) && !V(c),\n dp__cell_disabled: P(c.value) || V(c),\n dp__cell_highlight: !pe(c) && (ce(c) || p(c)) && !J(c) && !B && !le(c) && !(Y(c) && t.weekPicker) && !X,\n dp__cell_highlight_active: !pe(c) && (ce(c) || p(c)) && J(c),\n dp__today: !t.noToday && $e(c.value, R.value) && c.current,\n \"dp--past\": Be(c.value, R.value),\n \"dp--future\": Ee(c.value, R.value)\n };\n }, q = (c) => ({\n dp__active_date: J(c),\n dp__date_hover: O(c)\n }), k = (c) => {\n if (e.value && !Array.isArray(e.value)) {\n const o = mt(e.value, t.weekStart);\n return {\n ...G(c),\n dp__range_start: $e(o[0], c.value),\n dp__range_end: $e(o[1], c.value),\n dp__range_between_week: Ee(c.value, o[0]) && Be(c.value, o[1])\n };\n }\n return {\n ...G(c)\n };\n }, se = (c) => {\n if (e.value && Array.isArray(e.value)) {\n const o = mt(e.value[0], t.weekStart), X = e.value[1] ? mt(e.value[1], t.weekStart) : [];\n return {\n ...G(c),\n dp__range_start: $e(o[0], c.value) || $e(X[0], c.value),\n dp__range_end: $e(o[1], c.value) || $e(X[1], c.value),\n dp__range_between_week: Ee(c.value, o[0]) && Be(c.value, o[1]) || Ee(c.value, X[0]) && Be(c.value, X[1]),\n dp__range_between: Ee(c.value, o[1]) && Be(c.value, X[0])\n };\n }\n return {\n ...G(c)\n };\n }, u = (c) => {\n const o = l.value.count > 0 ? c.current && M(c) && ee() : M(c) && ee(), X = l.value.count > 0 ? c.current && M(c, !1) && ee() : M(c, !1) && ee();\n return { isRangeStart: o, isRangeEnd: X };\n }, re = (c) => {\n const { isRangeStart: o, isRangeEnd: X } = u(c);\n return {\n dp__range_start: o,\n dp__range_end: X,\n dp__range_between: Y(c),\n dp__date_hover: $e(c.value, v.value) && !o && !X && !t.weekPicker,\n dp__date_hover_start: A(c, !0),\n dp__date_hover_end: A(c, !1)\n };\n }, G = (c) => ({\n ...re(c),\n dp__cell_auto_range: L(c),\n dp__cell_auto_range_start: le(c),\n dp__cell_auto_range_end: z(c)\n }), I = (c) => d.value.enabled ? d.value.autoRange ? G(c) : t.modelAuto ? { ...q(c), ...re(c) } : t.weekPicker ? se(c) : re(c) : t.weekPicker ? k(c) : q(c);\n return {\n setHoverDate: h,\n clearHoverDate: T,\n getDayClassData: (c) => t.hideOffsetDates && !c.current ? {} : {\n ...S(c),\n ...I(c),\n [t.dayClass ? t.dayClass(c.value, t.internalModelValue) : \"\"]: !0,\n ...a.value.calendarCell ?? {}\n }\n };\n}, Tt = (e) => {\n const { defaultedFilters: t, defaultedRange: l, propDates: n, defaultedMultiDates: a } = Oe(e), f = (p) => n.value.disabledDates ? typeof n.value.disabledDates == \"function\" ? n.value.disabledDates(H(p)) : !!ca(p, n.value.disabledDates) : !1, i = (p) => n.value.maxDate ? e.yearPicker ? ye(p) > ye(n.value.maxDate) : Ee(p, n.value.maxDate) : !1, g = (p) => n.value.minDate ? e.yearPicker ? ye(p) < ye(n.value.minDate) : Be(p, n.value.minDate) : !1, d = (p) => {\n const Y = i(p), te = g(p), y = f(p), S = t.value.months.map((re) => +re).includes(Me(p)), q = e.disabledWeekDays.length ? e.disabledWeekDays.some((re) => +re === kl(p)) : !1, k = T(p), se = ye(p), u = zn(e.yearRange, se);\n return !(Y || te || y || S || u || q || k);\n }, P = (p, Y) => Be(...wt(n.value.minDate, p, Y)) || $e(...wt(n.value.minDate, p, Y)), v = (p, Y) => Ee(...wt(n.value.maxDate, p, Y)) || $e(...wt(n.value.maxDate, p, Y)), R = (p, Y, te) => {\n let y = !1;\n return n.value.maxDate && te && v(p, Y) && (y = !0), n.value.minDate && !te && P(p, Y) && (y = !0), y;\n }, h = (p, Y, te, y) => {\n let V = !1;\n return y && (n.value.minDate || n.value.maxDate) ? n.value.minDate && n.value.maxDate ? V = R(p, Y, te) : (n.value.minDate && P(p, Y) || n.value.maxDate && v(p, Y)) && (V = !0) : V = !0, V;\n }, T = (p) => Array.isArray(n.value.allowedDates) && !n.value.allowedDates.length ? !0 : n.value.allowedDates ? !ca(p, n.value.allowedDates, On(e.monthPicker, e.yearPicker)) : !1, F = (p) => !d(p), _ = (p) => l.value.noDisabledRange ? !bn({ start: p[0], end: p[1] }).some((te) => F(te)) : !0, C = (p) => {\n if (p) {\n const Y = ye(p);\n return Y >= +e.yearRange[0] && Y <= e.yearRange[1];\n }\n return !0;\n }, M = (p, Y) => !!(Array.isArray(p) && p[Y] && (l.value.maxRange || l.value.minRange) && C(p[Y])), A = (p, Y, te = 0) => {\n if (M(Y, te) && C(p)) {\n const y = bl(p, Y[te]), V = In(Y[te], p), S = V.length === 1 ? 0 : V.filter((k) => F(k)).length, q = Math.abs(y) - (l.value.minMaxRawRange ? 0 : S);\n if (l.value.minRange && l.value.maxRange)\n return q >= +l.value.minRange && q <= +l.value.maxRange;\n if (l.value.minRange) return q >= +l.value.minRange;\n if (l.value.maxRange) return q <= +l.value.maxRange;\n }\n return !0;\n }, m = () => !e.enableTimePicker || e.monthPicker || e.yearPicker || e.ignoreTimeValidation, z = (p) => Array.isArray(p) ? [p[0] ? Ca(p[0]) : null, p[1] ? Ca(p[1]) : null] : Ca(p), L = (p, Y, te) => p.find(\n (y) => +y.hours === yt(Y) && y.minutes === \"*\" ? !0 : +y.minutes === $t(Y) && +y.hours === yt(Y)\n ) && te, le = (p, Y, te) => {\n const [y, V] = p, [S, q] = Y;\n return !L(y, S, te) && !L(V, q, te) && te;\n }, U = (p, Y) => {\n const te = Array.isArray(Y) ? Y : [Y];\n return Array.isArray(e.disabledTimes) ? Array.isArray(e.disabledTimes[0]) ? le(e.disabledTimes, te, p) : !te.some((y) => L(e.disabledTimes, y, p)) : p;\n }, $ = (p, Y) => {\n const te = Array.isArray(Y) ? [Bt(Y[0]), Y[1] ? Bt(Y[1]) : void 0] : Bt(Y), y = !e.disabledTimes(te);\n return p && y;\n }, ee = (p, Y) => e.disabledTimes ? Array.isArray(e.disabledTimes) ? U(Y, p) : $(Y, p) : Y, O = (p) => {\n let Y = !0;\n if (!p || m()) return !0;\n const te = !n.value.minDate && !n.value.maxDate ? z(p) : p;\n return (e.maxTime || n.value.maxDate) && (Y = vn(\n e.maxTime,\n n.value.maxDate,\n \"max\",\n Ne(te),\n Y\n )), (e.minTime || n.value.minDate) && (Y = vn(\n e.minTime,\n n.value.minDate,\n \"min\",\n Ne(te),\n Y\n )), ee(p, Y);\n }, J = (p) => {\n if (!e.monthPicker) return !0;\n let Y = !0;\n const te = H(it(p));\n if (n.value.minDate && n.value.maxDate) {\n const y = H(it(n.value.minDate)), V = H(it(n.value.maxDate));\n return Ee(te, y) && Be(te, V) || $e(te, y) || $e(te, V);\n }\n if (n.value.minDate) {\n const y = H(it(n.value.minDate));\n Y = Ee(te, y) || $e(te, y);\n }\n if (n.value.maxDate) {\n const y = H(it(n.value.maxDate));\n Y = Be(te, y) || $e(te, y);\n }\n return Y;\n }, ce = j(() => (p) => !e.enableTimePicker || e.ignoreTimeValidation ? !0 : O(p)), pe = j(() => (p) => e.monthPicker ? Array.isArray(p) && (l.value.enabled || a.value.enabled) ? !p.filter((te) => !J(te)).length : J(p) : !0);\n return {\n isDisabled: F,\n validateDate: d,\n validateMonthYearInRange: h,\n isDateRangeAllowed: _,\n checkMinMaxRange: A,\n isValidTime: O,\n isTimeValid: ce,\n isMonthValid: pe\n };\n}, ga = () => {\n const e = j(() => (n, a) => n?.includes(a)), t = j(() => (n, a) => n.count ? n.solo ? !0 : a === 0 : !0), l = j(() => (n, a) => n.count ? n.solo ? !0 : a === n.count - 1 : !0);\n return { hideNavigationButtons: e, showLeftIcon: t, showRightIcon: l };\n}, po = (e, t, l) => {\n const n = Z(0), a = ea({\n [Ot.timePicker]: !e.enableTimePicker || e.timePicker || e.monthPicker,\n [Ot.calendar]: !1,\n [Ot.header]: !1\n }), f = j(() => e.monthPicker || e.timePicker), i = (R) => {\n if (e.flow?.length) {\n if (!R && f.value) return v();\n a[R] = !0, Object.keys(a).filter((h) => !a[h]).length || v();\n }\n }, g = () => {\n e.flow?.length && n.value !== -1 && (n.value += 1, t(\"flow-step\", n.value), v()), e.flow?.length === n.value && at().then(() => d());\n }, d = () => {\n n.value = -1;\n }, P = (R, h, ...T) => {\n e.flow[n.value] === R && l.value && l.value[h]?.(...T);\n }, v = (R = 0) => {\n R && (n.value += R), P(je.month, \"toggleMonthPicker\", !0), P(je.year, \"toggleYearPicker\", !0), P(je.calendar, \"toggleTimePicker\", !1, !0), P(je.time, \"toggleTimePicker\", !0, !0);\n const h = e.flow[n.value];\n (h === je.hours || h === je.minutes || h === je.seconds) && P(h, \"toggleTimePicker\", !0, !0, h);\n };\n return { childMount: i, updateFlowStep: g, resetFlow: d, handleFlow: v, flowStep: n };\n}, go = {\n key: 1,\n class: \"dp__input_wrap\"\n}, yo = [\"id\", \"name\", \"inputmode\", \"placeholder\", \"disabled\", \"readonly\", \"required\", \"value\", \"autocomplete\", \"aria-label\", \"aria-disabled\", \"aria-invalid\"], ho = {\n key: 2,\n class: \"dp--clear-btn\"\n}, bo = [\"aria-label\"], ko = /* @__PURE__ */ We({\n compatConfig: {\n MODE: 3\n },\n __name: \"DatepickerInput\",\n props: {\n isMenuOpen: { type: Boolean, default: !1 },\n inputValue: { type: String, default: \"\" },\n ...va\n },\n emits: [\n \"clear\",\n \"open\",\n \"update:input-value\",\n \"set-input-date\",\n \"close\",\n \"select-date\",\n \"set-empty-date\",\n \"toggle\",\n \"focus-prev\",\n \"focus\",\n \"blur\",\n \"real-blur\",\n \"text-input\"\n ],\n setup(e, { expose: t, emit: l }) {\n const n = l, a = e, {\n defaultedTextInput: f,\n defaultedAriaLabels: i,\n defaultedInline: g,\n defaultedConfig: d,\n defaultedRange: P,\n defaultedMultiDates: v,\n defaultedUI: R,\n getDefaultPattern: h,\n getDefaultStartTime: T\n } = Oe(a), { checkMinMaxRange: F } = Tt(a), _ = Z(), C = Z(null), M = Z(!1), A = Z(!1), m = j(\n () => ({\n dp__pointer: !a.disabled && !a.readonly && !f.value.enabled,\n dp__disabled: a.disabled,\n dp__input_readonly: !f.value.enabled,\n dp__input: !0,\n dp__input_not_clearable: !a.clearable,\n dp__input_icon_pad: !a.hideInputIcon,\n dp__input_valid: typeof a.state == \"boolean\" ? a.state : !1,\n dp__input_invalid: typeof a.state == \"boolean\" ? !a.state : !1,\n dp__input_focus: M.value || a.isMenuOpen,\n dp__input_reg: !f.value.enabled,\n ...R.value.input ?? {}\n })\n ), z = () => {\n n(\"set-input-date\", null), a.clearable && a.autoApply && (n(\"set-empty-date\"), _.value = null);\n }, L = (k) => {\n const se = T();\n return Yl(\n k,\n f.value.format ?? h(),\n se ?? En({}, a.enableSeconds),\n a.inputValue,\n A.value,\n a.formatLocale\n );\n }, le = (k) => {\n const { rangeSeparator: se } = f.value, [u, re] = k.split(`${se}`);\n if (u) {\n const G = L(u.trim()), I = re ? L(re.trim()) : void 0;\n if (_t(G, I)) return;\n const x = G && I ? [G, I] : [G];\n F(I, x, 0) && (_.value = G ? x : null);\n }\n }, U = () => {\n A.value = !0;\n }, $ = (k) => {\n if (P.value.enabled)\n le(k);\n else if (v.value.enabled) {\n const se = k.split(\";\");\n _.value = se.map((u) => L(u.trim())).filter((u) => u);\n } else\n _.value = L(k);\n }, ee = (k) => {\n const se = typeof k == \"string\" ? k : k.target?.value;\n se !== \"\" ? (f.value.openMenu && !a.isMenuOpen && n(\"open\"), $(se), n(\"set-input-date\", _.value)) : z(), A.value = !1, n(\"update:input-value\", se), n(\"text-input\", k, _.value);\n }, O = (k) => {\n f.value.enabled ? ($(k.target.value), f.value.enterSubmit && za(_.value) && a.inputValue !== \"\" ? (n(\"set-input-date\", _.value, !0), _.value = null) : f.value.enterSubmit && a.inputValue === \"\" && (_.value = null, n(\"clear\"))) : pe(k);\n }, J = (k, se) => {\n f.value.enabled && f.value.tabSubmit && !se && $(k.target.value), f.value.tabSubmit && za(_.value) && a.inputValue !== \"\" ? (n(\"set-input-date\", _.value, !0, !0), _.value = null) : f.value.tabSubmit && a.inputValue === \"\" && (_.value = null, n(\"clear\", !0));\n }, ce = () => {\n M.value = !0, n(\"focus\"), at().then(() => {\n f.value.enabled && f.value.selectOnFocus && C.value?.select();\n });\n }, pe = (k) => {\n if (Dt(k, d.value, !0), f.value.enabled && f.value.openMenu && !g.value.input) {\n if (f.value.openMenu === \"open\" && !a.isMenuOpen) return n(\"open\");\n if (f.value.openMenu === \"toggle\") return n(\"toggle\");\n } else f.value.enabled || n(\"toggle\");\n }, p = () => {\n n(\"real-blur\"), M.value = !1, (!a.isMenuOpen || g.value.enabled && g.value.input) && n(\"blur\"), a.autoApply && f.value.enabled && _.value && !a.isMenuOpen && (n(\"set-input-date\", _.value), n(\"select-date\"), _.value = null);\n }, Y = (k) => {\n Dt(k, d.value, !0), n(\"clear\");\n }, te = () => {\n n(\"close\");\n }, y = (k) => {\n if (k.key === \"Tab\" && J(k), k.key === \"Enter\" && O(k), k.key === \"Escape\" && f.value.escClose && te(), !f.value.enabled) {\n if (k.code === \"Tab\") return;\n k.preventDefault();\n }\n }, V = () => {\n C.value?.focus({ preventScroll: !0 });\n }, S = (k) => {\n _.value = k;\n }, q = (k) => {\n k.key === Re.tab && J(k, !0);\n };\n return t({\n focusInput: V,\n setParsedDate: S\n }), (k, se) => (w(), W(\"div\", { onClick: pe }, [\n k.$slots.trigger && !k.$slots[\"dp-input\"] && !s(g).enabled ? ie(k.$slots, \"trigger\", { key: 0 }) : Q(\"\", !0),\n !k.$slots.trigger && (!s(g).enabled || s(g).input) ? (w(), W(\"div\", go, [\n k.$slots[\"dp-input\"] && !k.$slots.trigger && (!s(g).enabled || s(g).enabled && s(g).input) ? ie(k.$slots, \"dp-input\", {\n key: 0,\n value: e.inputValue,\n isMenuOpen: e.isMenuOpen,\n onInput: ee,\n onEnter: O,\n onTab: J,\n onClear: Y,\n onBlur: p,\n onKeypress: y,\n onPaste: U,\n onFocus: ce,\n openMenu: () => k.$emit(\"open\"),\n closeMenu: () => k.$emit(\"close\"),\n toggleMenu: () => k.$emit(\"toggle\")\n }) : Q(\"\", !0),\n k.$slots[\"dp-input\"] ? Q(\"\", !0) : (w(), W(\"input\", {\n key: 1,\n id: k.uid ? `dp-input-${k.uid}` : void 0,\n ref_key: \"inputRef\",\n ref: C,\n \"data-test-id\": \"dp-input\",\n name: k.name,\n class: De(m.value),\n inputmode: s(f).enabled ? \"text\" : \"none\",\n placeholder: k.placeholder,\n disabled: k.disabled,\n readonly: k.readonly,\n required: k.required,\n value: e.inputValue,\n autocomplete: k.autocomplete,\n \"aria-label\": s(i)?.input,\n \"aria-disabled\": k.disabled || void 0,\n \"aria-invalid\": k.state === !1 ? !0 : void 0,\n onInput: ee,\n onBlur: p,\n onFocus: ce,\n onKeypress: y,\n onKeydown: se[0] || (se[0] = (u) => y(u)),\n onPaste: U\n }, null, 42, yo)),\n he(\"div\", {\n onClick: se[3] || (se[3] = (u) => n(\"toggle\"))\n }, [\n k.$slots[\"input-icon\"] && !k.hideInputIcon ? (w(), W(\"span\", {\n key: 0,\n class: \"dp__input_icon\",\n onClick: se[1] || (se[1] = (u) => n(\"toggle\"))\n }, [\n ie(k.$slots, \"input-icon\")\n ])) : Q(\"\", !0),\n !k.$slots[\"input-icon\"] && !k.hideInputIcon && !k.$slots[\"dp-input\"] ? (w(), Te(s(jt), {\n key: 1,\n \"aria-label\": s(i)?.calendarIcon,\n class: \"dp__input_icon dp__input_icons\",\n onClick: se[2] || (se[2] = (u) => n(\"toggle\"))\n }, null, 8, [\"aria-label\"])) : Q(\"\", !0)\n ]),\n k.$slots[\"clear-icon\"] && (k.alwaysClearable || e.inputValue && k.clearable && !k.disabled && !k.readonly) ? (w(), W(\"span\", ho, [\n ie(k.$slots, \"clear-icon\", { clear: Y })\n ])) : Q(\"\", !0),\n !k.$slots[\"clear-icon\"] && (k.alwaysClearable || k.clearable && e.inputValue && !k.disabled && !k.readonly) ? (w(), W(\"button\", {\n key: 3,\n \"aria-label\": s(i)?.clearInput,\n class: \"dp--clear-btn\",\n type: \"button\",\n onKeydown: se[4] || (se[4] = (u) => s(qe)(u, () => Y(u), !0, q)),\n onClick: se[5] || (se[5] = Xt((u) => Y(u), [\"prevent\"]))\n }, [\n tt(s(Sn), {\n class: \"dp__input_icons\",\n \"data-test-id\": \"clear-icon\"\n })\n ], 40, bo)) : Q(\"\", !0)\n ])) : Q(\"\", !0)\n ]));\n }\n}), wo = typeof window < \"u\" ? window : void 0, Ea = () => {\n}, Do = (e) => al() ? (nl(e), !0) : !1, Mo = (e, t, l, n) => {\n if (!e) return Ea;\n let a = Ea;\n const f = rt(\n () => s(e),\n (g) => {\n a(), g && (g.removeEventListener(t, l), g.addEventListener(t, l, n), a = () => {\n g.removeEventListener(t, l, n), a = Ea;\n });\n },\n { immediate: !0, flush: \"post\" }\n ), i = () => {\n f(), a();\n };\n return Do(i), i;\n}, $o = (e, t, l, n = {}) => {\n const { window: a = wo, event: f = \"pointerdown\" } = n;\n return a ? Mo(a, f, (g) => {\n const d = Le(e), P = Le(t);\n !d || !P || d === g.target || g.composedPath().includes(d) || g.composedPath().includes(P) || l(g);\n }, { passive: !0 }) : void 0;\n}, Ao = [\"data-dp-mobile\"], To = /* @__PURE__ */ We({\n compatConfig: {\n MODE: 3\n },\n __name: \"VueDatePicker\",\n props: {\n ...va\n },\n emits: [\n \"update:model-value\",\n \"update:model-timezone-value\",\n \"text-submit\",\n \"closed\",\n \"cleared\",\n \"open\",\n \"focus\",\n \"blur\",\n \"internal-model-change\",\n \"recalculate-position\",\n \"flow-step\",\n \"update-month-year\",\n \"invalid-select\",\n \"invalid-fixed-range\",\n \"tooltip-open\",\n \"tooltip-close\",\n \"time-picker-open\",\n \"time-picker-close\",\n \"am-pm-change\",\n \"range-start\",\n \"range-end\",\n \"date-update\",\n \"invalid-date\",\n \"overlay-toggle\",\n \"text-input\"\n ],\n setup(e, { expose: t, emit: l }) {\n const n = l, a = e, f = Yt(), i = Z(!1), g = qt(a, \"modelValue\"), d = qt(a, \"timezone\"), P = Z(null), v = Z(null), R = Z(null), h = Z(!1), T = Z(null), F = Z(!1), _ = Z(!1), C = Z(!1), M = Z(!1), { setMenuFocused: A, setShiftKey: m } = Hn(), { clearArrowNav: z } = At(), { validateDate: L, isValidTime: le } = Tt(a), {\n defaultedTransitions: U,\n defaultedTextInput: $,\n defaultedInline: ee,\n defaultedConfig: O,\n defaultedRange: J,\n defaultedMultiDates: ce\n } = Oe(a), { menuTransition: pe, showTransition: p } = aa(U), { isMobile: Y } = Qn(O), te = ll();\n Ue(() => {\n x(a.modelValue), at().then(() => {\n ee.value.enabled || (u(T.value)?.addEventListener(\"scroll\", K), window?.addEventListener(\"resize\", oe));\n }), ee.value.enabled && (i.value = !0), window?.addEventListener(\"keyup\", ge), window?.addEventListener(\"keydown\", _e);\n }), Ut(() => {\n ee.value.enabled || (u(T.value)?.removeEventListener(\"scroll\", K), window?.removeEventListener(\"resize\", oe)), window?.removeEventListener(\"keyup\", ge), window?.removeEventListener(\"keydown\", _e);\n });\n const y = et(f, \"all\", a.presetDates), V = et(f, \"input\");\n rt(\n [g, d],\n () => {\n x(g.value);\n },\n { deep: !0 }\n );\n const { openOnTop: S, menuStyle: q, xCorrect: k, setMenuPosition: se, getScrollableParent: u, shadowRender: re } = co({\n menuRef: P,\n menuRefInner: v,\n inputRef: R,\n pickerWrapperRef: T,\n inline: ee,\n emit: n,\n props: a,\n slots: f\n }), {\n inputValue: G,\n internalModelValue: I,\n parseExternalModelValue: x,\n emitModelValue: c,\n formatInputValue: o,\n checkBeforeEmit: X\n } = rr(n, a, { isInputFocused: h, isTextInputDate: M }), B = j(\n () => ({\n dp__main: !0,\n dp__theme_dark: a.dark,\n dp__theme_light: !a.dark,\n dp__flex_display: ee.value.enabled,\n \"dp--flex-display-collapsed\": C.value,\n dp__flex_display_with_input: ee.value.input\n })\n ), be = j(() => a.dark ? \"dp__theme_dark\" : \"dp__theme_light\"), Ae = j(() => a.teleport ? {\n to: typeof a.teleport == \"boolean\" ? \"body\" : a.teleport,\n disabled: !a.teleport || ee.value.enabled\n } : {}), ne = j(() => ({ class: \"dp__outer_menu_wrap\" })), r = j(() => ee.value.enabled && (a.timePicker || a.monthPicker || a.yearPicker || a.quarterPicker)), E = () => R.value?.$el?.getBoundingClientRect() ?? { width: 0, left: 0, right: 0 }, K = () => {\n i.value && (O.value.closeOnScroll ? Xe() : se());\n }, oe = () => {\n i.value && se();\n const N = v.value?.$el.getBoundingClientRect().width ?? 0;\n C.value = document.body.offsetWidth <= N;\n }, ge = (N) => {\n N.key === \"Tab\" && !ee.value.enabled && !a.teleport && O.value.tabOutClosesMenu && (T.value.contains(document.activeElement) || Xe()), _.value = N.shiftKey;\n }, _e = (N) => {\n _.value = N.shiftKey;\n }, Ye = () => {\n !a.disabled && !a.readonly && (re(te, hn, a), se(!1), i.value = !0, i.value && n(\"open\"), i.value || xe(), x(a.modelValue));\n }, nt = () => {\n G.value = \"\", xe(), v.value?.onValueCleared(), R.value?.setParsedDate(null), n(\"update:model-value\", null), n(\"update:model-timezone-value\", null), n(\"cleared\"), O.value.closeOnClearValue && Xe();\n }, St = () => {\n const N = I.value;\n return !N || !Array.isArray(N) && L(N) ? !0 : Array.isArray(N) ? ce.value.enabled || N.length === 2 && L(N[0]) && L(N[1]) ? !0 : J.value.partialRange && !a.timePicker ? L(N[0]) : !1 : !1;\n }, D = () => {\n X() && St() ? (c(), Xe()) : n(\"invalid-select\", I.value);\n }, de = (N) => {\n fe(), c(), O.value.closeOnAutoApply && !N && Xe();\n }, fe = () => {\n R.value && $.value.enabled && R.value.setParsedDate(I.value);\n }, ht = (N = !1) => {\n a.autoApply && le(I.value) && St() && (J.value.enabled && Array.isArray(I.value) ? (J.value.partialRange || I.value.length === 2) && de(N) : de(N));\n }, xe = () => {\n $.value.enabled || (I.value = null);\n }, Xe = (N = !1) => {\n N && I.value && O.value.setDateOnMenuClose && D(), ee.value.enabled || (i.value && (i.value = !1, k.value = !1, A(!1), m(!1), z(), n(\"closed\"), G.value && x(g.value)), xe(), n(\"blur\"), v.value?.$el?.remove());\n }, ya = (N, ue, me = !1) => {\n if (!N) {\n I.value = null;\n return;\n }\n const vt = Array.isArray(N) ? !N.some((Pt) => !L(Pt)) : L(N), ct = le(N);\n vt && ct ? (M.value = !0, I.value = N, ue ? (F.value = me, D(), n(\"text-submit\")) : a.autoApply && ht(!0), at().then(() => {\n M.value = !1;\n })) : n(\"invalid-date\", N);\n }, ha = () => {\n a.autoApply && le(I.value) && c(), fe();\n }, la = () => i.value ? Xe() : Ye(), ba = (N) => {\n I.value = N;\n }, ka = () => {\n $.value.enabled && (h.value = !0, o()), n(\"focus\");\n }, wa = () => {\n $.value.enabled && (h.value = !1, x(a.modelValue), F.value && Ol(T.value, _.value)?.focus()), n(\"blur\");\n }, Da = (N) => {\n v.value && v.value.updateMonthYear(0, {\n month: dn(N.month),\n year: dn(N.year)\n });\n }, Ma = (N) => {\n x(N ?? a.modelValue);\n }, an = (N, ue) => {\n v.value?.switchView(N, ue);\n }, b = (N, ue) => O.value.onClickOutside ? O.value.onClickOutside(N, ue) : Xe(!0), ae = (N = 0) => {\n v.value?.handleFlow(N);\n }, ve = () => P;\n return $o(\n P,\n R,\n (N) => b(St, N)\n ), t({\n closeMenu: Xe,\n selectDate: D,\n clearValue: nt,\n openMenu: Ye,\n onScroll: K,\n formatInputValue: o,\n // exposed for testing purposes\n updateInternalModelValue: ba,\n // modify internal modelValue\n setMonthYear: Da,\n parseModel: Ma,\n switchView: an,\n toggleMenu: la,\n handleFlow: ae,\n getDpWrapMenuRef: ve\n }), (N, ue) => (w(), W(\"div\", {\n ref_key: \"pickerWrapperRef\",\n ref: T,\n class: De(B.value),\n \"data-datepicker-instance\": \"\",\n \"data-dp-mobile\": s(Y)\n }, [\n tt(ko, He({\n ref_key: \"inputRef\",\n ref: R,\n \"input-value\": s(G),\n \"onUpdate:inputValue\": ue[0] || (ue[0] = (me) => ln(G) ? G.value = me : null),\n \"is-menu-open\": i.value\n }, N.$props, {\n onClear: nt,\n onOpen: Ye,\n onSetInputDate: ya,\n onSetEmptyDate: s(c),\n onSelectDate: D,\n onToggle: la,\n onClose: Xe,\n onFocus: ka,\n onBlur: wa,\n onRealBlur: ue[1] || (ue[1] = (me) => h.value = !1),\n onTextInput: ue[2] || (ue[2] = (me) => N.$emit(\"text-input\", me))\n }), Ge({ _: 2 }, [\n Ce(s(V), (me, vt) => ({\n name: me,\n fn: we((ct) => [\n ie(N.$slots, me, ze(Je(ct)))\n ])\n }))\n ]), 1040, [\"input-value\", \"is-menu-open\", \"onSetEmptyDate\"]),\n (w(), Te(fa(N.teleport ? rl : \"div\"), ze(Je(Ae.value)), {\n default: we(() => [\n tt(Vt, {\n name: s(pe)(s(S)),\n css: s(p) && !s(ee).enabled\n }, {\n default: we(() => [\n i.value ? (w(), W(\"div\", He({\n key: 0,\n ref_key: \"dpWrapMenuRef\",\n ref: P\n }, ne.value, {\n class: { \"dp--menu-wrapper\": !s(ee).enabled },\n style: s(ee).enabled ? void 0 : s(q)\n }), [\n tt(hn, He({\n ref_key: \"dpMenuRef\",\n ref: v\n }, N.$props, {\n \"internal-model-value\": s(I),\n \"onUpdate:internalModelValue\": ue[3] || (ue[3] = (me) => ln(I) ? I.value = me : null),\n class: { [be.value]: !0, \"dp--menu-wrapper\": N.teleport },\n \"open-on-top\": s(S),\n \"no-overlay-focus\": r.value,\n collapse: C.value,\n \"get-input-rect\": E,\n \"is-text-input-date\": M.value,\n onClosePicker: Xe,\n onSelectDate: D,\n onAutoApply: ht,\n onTimeUpdate: ha,\n onFlowStep: ue[4] || (ue[4] = (me) => N.$emit(\"flow-step\", me)),\n onUpdateMonthYear: ue[5] || (ue[5] = (me) => N.$emit(\"update-month-year\", me)),\n onInvalidSelect: ue[6] || (ue[6] = (me) => N.$emit(\"invalid-select\", s(I))),\n onAutoApplyInvalid: ue[7] || (ue[7] = (me) => N.$emit(\"invalid-select\", me)),\n onInvalidFixedRange: ue[8] || (ue[8] = (me) => N.$emit(\"invalid-fixed-range\", me)),\n onRecalculatePosition: s(se),\n onTooltipOpen: ue[9] || (ue[9] = (me) => N.$emit(\"tooltip-open\", me)),\n onTooltipClose: ue[10] || (ue[10] = (me) => N.$emit(\"tooltip-close\", me)),\n onTimePickerOpen: ue[11] || (ue[11] = (me) => N.$emit(\"time-picker-open\", me)),\n onTimePickerClose: ue[12] || (ue[12] = (me) => N.$emit(\"time-picker-close\", me)),\n onAmPmChange: ue[13] || (ue[13] = (me) => N.$emit(\"am-pm-change\", me)),\n onRangeStart: ue[14] || (ue[14] = (me) => N.$emit(\"range-start\", me)),\n onRangeEnd: ue[15] || (ue[15] = (me) => N.$emit(\"range-end\", me)),\n onDateUpdate: ue[16] || (ue[16] = (me) => N.$emit(\"date-update\", me)),\n onInvalidDate: ue[17] || (ue[17] = (me) => N.$emit(\"invalid-date\", me)),\n onOverlayToggle: ue[18] || (ue[18] = (me) => N.$emit(\"overlay-toggle\", me)),\n onMenuBlur: ue[19] || (ue[19] = (me) => N.$emit(\"blur\"))\n }), Ge({ _: 2 }, [\n Ce(s(y), (me, vt) => ({\n name: me,\n fn: we((ct) => [\n ie(N.$slots, me, ze(Je({ ...ct })))\n ])\n }))\n ]), 1040, [\"internal-model-value\", \"class\", \"open-on-top\", \"no-overlay-focus\", \"collapse\", \"is-text-input-date\", \"onRecalculatePosition\"])\n ], 16)) : Q(\"\", !0)\n ]),\n _: 3\n }, 8, [\"name\", \"css\"])\n ]),\n _: 3\n }, 16))\n ], 10, Ao));\n }\n}), qn = /* @__PURE__ */ (() => {\n const e = To;\n return e.install = (t) => {\n t.component(\"Vue3DatePicker\", e);\n }, e;\n})(), So = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: qn\n}, Symbol.toStringTag, { value: \"Module\" }));\nObject.entries(So).forEach(([e, t]) => {\n e !== \"default\" && (qn[e] = t);\n});\nexport {\n qn as default\n};\n","import { defineComponent, mergeModels, useModel, computed, createBlock, openBlock, unref } from \"vue\";\nimport { N as NcSelect } from \"./NcSelect-Czzsi3P_.mjs\";\nimport { r as register, a as t } from \"./_l10n-DrTiip5c.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nregister();\nfunction formatTimezoneId(timezoneId) {\n return timezoneId.slice(timezoneId.indexOf(\"/\") + 1).replaceAll(\"/\", \" - \").replaceAll(\"_\", \" \");\n}\nfunction getTimezones() {\n return Intl.supportedValuesOf(\"timeZone\").filter((tz) => !tz.startsWith(\"Etc/\")).map((timezoneId) => ({\n timezoneId,\n label: formatTimezoneId(timezoneId)\n })).sort((a, b) => a.timezoneId.localeCompare(b.timezoneId));\n}\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcTimezonePicker\",\n props: /* @__PURE__ */ mergeModels({\n additionalTimezones: { default: () => [] },\n uid: { default: createElementId() }\n }, {\n \"modelValue\": { default: \"floating\" },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props) {\n const modelValue = useModel(__props, \"modelValue\");\n const props = __props;\n const formattedAdditionalTimezones = computed(() => {\n return props.additionalTimezones.map(({ timezoneId, label }) => ({\n timezoneId,\n label\n }));\n });\n const options = computed(() => {\n const timezones = getTimezones();\n timezones.unshift(...formattedAdditionalTimezones.value);\n return timezones;\n });\n function filterBy(option, label, search) {\n const terms = search.trim().split(/\\s+/);\n const values = Object.values(option);\n return terms.every((term) => {\n return values.some((value) => value.toLowerCase().includes(term.toLowerCase()));\n });\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(NcSelect, {\n modelValue: modelValue.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event),\n \"aria-label-combobox\": unref(t)(\"Search for time zone\"),\n clearable: false,\n \"filter-by\": filterBy,\n multiple: false,\n options: options.value,\n placeholder: unref(t)(\"Type to search time zone\"),\n uid: _ctx.uid,\n reduce: (option) => option.timezoneId,\n label: \"label\"\n }, null, 8, [\"modelValue\", \"aria-label-combobox\", \"options\", \"placeholder\", \"uid\", \"reduce\"]);\n };\n }\n});\nexport {\n _sfc_main as _\n};\n//# sourceMappingURL=NcTimezonePicker.vue_vue_type_script_setup_true_lang-CGFRZR-3.mjs.map\n","import '../assets/NcDateTimePicker-D6xbEbaC.css';\nimport { defineComponent, mergeModels, useModel, useTemplateRef, computed, createElementBlock, openBlock, createVNode, createBlock, unref, mergeProps, createSlots, withCtx, createTextVNode, toDisplayString, Teleport, createElementVNode } from \"vue\";\nimport { v as mdiChevronUp, w as mdiChevronDown, c as mdiChevronRight, x as mdiChevronLeft, y as mdiClock, z as mdiCalendarBlank, b as mdiClose } from \"./mdi-XFJRiRqJ.mjs\";\nimport { getCanonicalLocale, getFirstDay, getDayNamesMin, getDayNames } from \"@nextcloud/l10n\";\nimport VueDatePicker from \"@vuepic/vue-datepicker\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-BvLanNaW.mjs\";\nimport { _ as _sfc_main$1 } from \"./NcTimezonePicker.vue_vue_type_script_setup_true_lang-CGFRZR-3.mjs\";\nimport { r as register, a as t } from \"./_l10n-DrTiip5c.mjs\";\nimport { N as NcButton } from \"./NcButton-Dc8V4Urj.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister();\nconst _hoisted_1 = { class: \"vue-date-time-picker__wrapper\" };\nconst _hoisted_2 = {\n ref: \"target\",\n class: \"vue-date-time-picker__wrapper vue-date-time-picker__wrapper--teleport\"\n};\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcDateTimePicker\",\n props: /* @__PURE__ */ mergeModels({\n appendToBody: { type: Boolean },\n ariaLabel: { default: t(\"Datepicker input\") },\n ariaLabelMenu: { default: t(\"Datepicker menu\") },\n clearable: { type: Boolean },\n confirm: { type: Boolean },\n format: { type: [String, Function], default: void 0 },\n locale: { default: getCanonicalLocale() },\n minuteStep: { default: 10 },\n modelValue: { default: null },\n placeholder: { default: void 0 },\n showTimezoneSelect: { type: Boolean },\n showWeekNumber: { type: Boolean },\n type: { default: \"date\" }\n }, {\n \"timezoneId\": { default: \"UTC\" },\n \"timezoneIdModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"update:modelValue\", \"update:timezoneId\"], [\"update:timezoneId\"]),\n setup(__props, { emit: __emit }) {\n const timezoneId = useModel(__props, \"timezoneId\");\n const props = __props;\n const emit = __emit;\n const targetElement = useTemplateRef(\"target\");\n const pickerInstance = useTemplateRef(\"picker\");\n const value = computed(() => {\n if (props.modelValue === null && props.clearable) {\n return null;\n }\n if (props.type === \"week\") {\n const date = props.modelValue instanceof Date ? props.modelValue : /* @__PURE__ */ new Date();\n const end = new Date(date);\n end.setUTCDate(date.getUTCDate() + 6);\n return [date, end];\n } else if (props.type === \"year\") {\n const date = props.modelValue instanceof Date ? props.modelValue : /* @__PURE__ */ new Date();\n return date.getUTCFullYear();\n } else if (props.type === \"month\") {\n const date = props.modelValue instanceof Date ? props.modelValue : /* @__PURE__ */ new Date();\n return { year: date.getUTCFullYear(), month: date.getUTCMonth() };\n } else if (props.type === \"time\") {\n const time = props.modelValue instanceof Date ? props.modelValue : /* @__PURE__ */ new Date();\n return {\n hours: time.getHours(),\n minutes: time.getMinutes(),\n seconds: time.getSeconds()\n };\n } else if (props.type === \"time-range\") {\n const time = [props.modelValue].flat();\n if (time.length !== 2) {\n const start = /* @__PURE__ */ new Date();\n const end = new Date(start);\n end.setHours(end.getHours() + 1);\n time.splice(0, 2, start, end);\n }\n return time.map((date) => ({\n hours: date.getHours(),\n minutes: date.getMinutes(),\n seconds: date.getSeconds()\n }));\n } else if (props.type.endsWith(\"-range\")) {\n if (props.modelValue === void 0) {\n const start = /* @__PURE__ */ new Date();\n const end = new Date(start);\n end.setUTCDate(start.getUTCDate() + 7);\n return [start, end];\n }\n return props.modelValue;\n }\n return props.modelValue ?? /* @__PURE__ */ new Date();\n });\n const placeholderFallback = computed(() => {\n if (props.type === \"date\") {\n return t(\"Select date\");\n } else if (props.type === \"time\") {\n return t(\"Select time\");\n } else if (props.type === \"datetime\") {\n return t(\"Select date and time\");\n } else if (props.type === \"week\") {\n return t(\"Select week\");\n } else if (props.type === \"month\") {\n return t(\"Select month\");\n } else if (props.type === \"year\") {\n return t(\"Select year\");\n } else if (props.type.endsWith(\"-range\")) {\n return t(\"Select time range\");\n }\n return t(\"Select date and time\");\n });\n const realFormat = computed(() => {\n if (props.format) {\n return props.format;\n } else if (props.type === \"week\") {\n return \"RR-II\";\n }\n let formatter;\n if (props.type === \"date\" || props.type === \"date-range\") {\n formatter = new Intl.DateTimeFormat(getCanonicalLocale(), { dateStyle: \"medium\" });\n } else if (props.type === \"time\" || props.type === \"time-range\") {\n formatter = new Intl.DateTimeFormat(getCanonicalLocale(), { timeStyle: \"short\" });\n } else if (props.type === \"datetime\" || props.type === \"datetime-range\") {\n formatter = new Intl.DateTimeFormat(getCanonicalLocale(), { dateStyle: \"medium\", timeStyle: \"short\" });\n } else if (props.type === \"month\") {\n formatter = new Intl.DateTimeFormat(getCanonicalLocale(), { year: \"numeric\", month: \"2-digit\" });\n } else if (props.type === \"year\") {\n formatter = new Intl.DateTimeFormat(getCanonicalLocale(), { year: \"numeric\" });\n }\n if (formatter) {\n return (input) => Array.isArray(input) ? formatter.formatRange(input[0], input[1]) : formatter.format(input);\n }\n return void 0;\n });\n const pickerType = computed(() => ({\n timePicker: props.type === \"time\" || props.type === \"time-range\",\n yearPicker: props.type === \"year\",\n monthPicker: props.type === \"month\",\n weekPicker: props.type === \"week\",\n range: props.type.endsWith(\"-range\") && {\n // do not use partial ranges (meaning after selecting the start [Date, null] will be emitted)\n // if this is needed someday we can enable it,\n // but its not covered by our component interface (props / events) documentation so just disabled for now.\n partialRange: false\n },\n enableTimePicker: !(props.type === \"date\" || props.type === \"date-range\"),\n flow: props.type === \"datetime\" ? [\"calendar\", \"time\"] : void 0\n }));\n function onUpdateModelValue(value2) {\n if (value2 === null) {\n return emit(\"update:modelValue\", null);\n }\n if (props.type === \"time\") {\n emit(\"update:modelValue\", formatLibraryTime(value2));\n } else if (props.type === \"time-range\") {\n const start = formatLibraryTime(value2[0]);\n const end = formatLibraryTime(value2[1]);\n if (end.getTime() < start.getTime()) {\n end.setDate(end.getDate() + 1);\n }\n emit(\"update:modelValue\", [start, end]);\n } else if (props.type === \"month\") {\n const data = value2;\n emit(\"update:modelValue\", new Date(data.year, data.month, 1));\n } else if (props.type === \"year\") {\n emit(\"update:modelValue\", new Date(value2, 0));\n } else if (props.type === \"week\") {\n emit(\"update:modelValue\", value2[0]);\n } else {\n emit(\"update:modelValue\", value2);\n }\n }\n function formatLibraryTime(time) {\n const date = /* @__PURE__ */ new Date();\n date.setHours(time.hours);\n date.setMinutes(time.minutes);\n date.setSeconds(time.seconds);\n return date;\n }\n const weekStart = getFirstDay();\n const dayNames = [...getDayNamesMin()];\n for (let i = 0; i < weekStart; i++) {\n dayNames.push(dayNames.shift());\n }\n const weekNumName = t(\"W\");\n const ariaLabels = computed(() => ({\n toggleOverlay: t(\"Toggle overlay\"),\n menu: props.ariaLabelMenu,\n input: props.ariaLabel,\n openTimePicker: t(\"Open time picker\"),\n closeTimePicker: t(\"Close time Picker\"),\n incrementValue: (type) => {\n if (type === \"hours\") {\n return t(\"Increment hours\");\n } else if (type === \"minutes\") {\n return t(\"Increment minutes\");\n }\n return t(\"Increment seconds\");\n },\n decrementValue: (type) => {\n if (type === \"hours\") {\n return t(\"Decrement hours\");\n } else if (type === \"minutes\") {\n return t(\"Decrement minutes\");\n }\n return t(\"Decrement seconds\");\n },\n openTpOverlay: (type) => {\n if (type === \"hours\") {\n return t(\"Open hours overlay\");\n } else if (type === \"minutes\") {\n return t(\"Open minutes overlay\");\n }\n return t(\"Open seconds overlay\");\n },\n amPmButton: t(\"Switch AM/PM mode\"),\n openYearsOverlay: t(\"Open years overlay\"),\n openMonthsOverlay: t(\"Open months overlay\"),\n nextMonth: t(\"Next month\"),\n prevMonth: t(\"Previous month\"),\n nextYear: t(\"Next year\"),\n prevYear: t(\"Previous year\"),\n weekDay: (day) => getDayNames()[day],\n clearInput: t(\"Clear value\"),\n calendarIcon: t(\"Calendar icon\"),\n timePicker: t(\"Time picker\"),\n monthPicker: (overlay) => overlay ? t(\"Month picker overlay\") : t(\"Month picker\"),\n yearPicker: (overlay) => overlay ? t(\"Year picker overlay\") : t(\"Year picker\")\n }));\n function selectDate() {\n pickerInstance.value.selectDate();\n }\n function cancelSelection() {\n pickerInstance.value.closeMenu();\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1, [\n createVNode(unref(VueDatePicker), mergeProps({\n ref: \"picker\",\n \"aria-labels\": ariaLabels.value,\n \"auto-apply\": !_ctx.confirm,\n class: [\"vue-date-time-picker\", { \"vue-date-time-picker--clearable\": _ctx.clearable }],\n \"cancel-text\": unref(t)(\"Cancel\"),\n clearable: _ctx.clearable,\n \"day-names\": dayNames,\n placeholder: _ctx.placeholder ?? placeholderFallback.value,\n format: realFormat.value,\n locale: _ctx.locale,\n \"minutes-increment\": _ctx.minuteStep,\n \"model-value\": value.value,\n \"now-button-label\": unref(t)(\"Now\"),\n \"select-text\": unref(t)(\"Pick\"),\n \"six-weeks\": \"fair\",\n teleport: _ctx.appendToBody ? targetElement.value || void 0 : false,\n \"text-input\": \"\",\n \"week-num-name\": unref(weekNumName),\n \"week-numbers\": _ctx.showWeekNumber ? { type: \"iso\" } : void 0,\n \"week-start\": unref(weekStart)\n }, pickerType.value, { \"onUpdate:modelValue\": onUpdateModelValue }), createSlots({\n \"action-buttons\": withCtx(() => [\n createVNode(unref(NcButton), {\n size: \"small\",\n variant: \"tertiary\",\n onClick: cancelSelection\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(unref(t)(\"Cancel\")), 1)\n ]),\n _: 1\n }),\n createVNode(unref(NcButton), {\n size: \"small\",\n variant: \"primary\",\n onClick: selectDate\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(unref(t)(\"Pick\")), 1)\n ]),\n _: 1\n })\n ]),\n \"clear-icon\": withCtx(({ clear }) => [\n createVNode(unref(NcButton), {\n \"aria-label\": unref(t)(\"Clear value\"),\n variant: \"tertiary-no-background\",\n onClick: clear\n }, {\n icon: withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n inline: \"\",\n path: unref(mdiClose),\n size: 20\n }, null, 8, [\"path\"])\n ]),\n _: 2\n }, 1032, [\"aria-label\", \"onClick\"])\n ]),\n \"input-icon\": withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n path: unref(mdiCalendarBlank),\n size: 20\n }, null, 8, [\"path\"])\n ]),\n \"clock-icon\": withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n inline: \"\",\n path: unref(mdiClock),\n size: 20\n }, null, 8, [\"path\"])\n ]),\n \"arrow-left\": withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n inline: \"\",\n path: unref(mdiChevronLeft),\n size: 20\n }, null, 8, [\"path\"])\n ]),\n \"arrow-right\": withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n inline: \"\",\n path: unref(mdiChevronRight),\n size: 20\n }, null, 8, [\"path\"])\n ]),\n \"arrow-down\": withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n inline: \"\",\n path: unref(mdiChevronDown),\n size: 20\n }, null, 8, [\"path\"])\n ]),\n \"arrow-up\": withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n inline: \"\",\n path: unref(mdiChevronUp),\n size: 20\n }, null, 8, [\"path\"])\n ]),\n _: 2\n }, [\n _ctx.showTimezoneSelect ? {\n name: \"action-extra\",\n fn: withCtx(() => [\n createVNode(_sfc_main$1, {\n modelValue: timezoneId.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => timezoneId.value = $event),\n class: \"vue-date-time-picker__timezone\",\n \"append-to-body\": false,\n \"input-label\": unref(t)(\"Time zone\")\n }, null, 8, [\"modelValue\", \"input-label\"])\n ]),\n key: \"0\"\n } : void 0\n ]), 1040, [\"aria-labels\", \"auto-apply\", \"class\", \"cancel-text\", \"clearable\", \"placeholder\", \"format\", \"locale\", \"minutes-increment\", \"model-value\", \"now-button-label\", \"select-text\", \"teleport\", \"week-num-name\", \"week-numbers\", \"week-start\"]),\n (openBlock(), createBlock(Teleport, {\n to: \"body\",\n disabled: !_ctx.appendToBody\n }, [\n createElementVNode(\"div\", _hoisted_2, null, 512)\n ], 8, [\"disabled\"]))\n ]);\n };\n }\n});\nconst NcDateTimePicker = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-c436522a\"]]);\nexport {\n NcDateTimePicker as N\n};\n//# sourceMappingURL=NcDateTimePicker-DTf51PD8.mjs.map\n","import '../assets/NcKbd-BGW1_Jb7.css';\nimport { defineComponent, computed, createElementBlock, openBlock, normalizeClass, renderSlot, createTextVNode, toDisplayString } from \"vue\";\nimport { r as register, a as t } from \"./_l10n-DrTiip5c.mjs\";\nimport { i as isMac } from \"./platform-CC2ecGvV.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister();\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcKbd\",\n props: {\n symbol: { default: () => void 0 },\n mac: { type: Boolean, default: () => isMac }\n },\n setup(__props) {\n const labels = computed(() => ({\n ArrowUp: \"↑\",\n ArrowDown: \"↓\",\n ArrowLeft: \"←\",\n ArrowRight: \"→\",\n Control: !__props.mac ? t(\"Ctrl\") : \"⌘\",\n Alt: !__props.mac ? t(\"Alt\") : \"⌥\",\n Shift: !__props.mac ? t(\"Shift\") : \"⇧\",\n Enter: !__props.mac ? t(\"Enter\") : \"⏎\",\n Tab: !__props.mac ? t(\"Tab\") : \"⇥\",\n Delete: !__props.mac ? t(\"Delete\") : \"⌫\",\n Escape: !__props.mac ? t(\"Escape\") : \"⎋\",\n Space: t(\"Space\")\n // TRANSLATORS: Space key on keyboard\n }));\n const label = computed(() => __props.symbol && labels.value[__props.symbol] || __props.symbol);\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"kbd\", {\n class: normalizeClass(_ctx.$style.kbd)\n }, [\n renderSlot(_ctx.$slots, \"default\", {}, () => [\n createTextVNode(toDisplayString(label.value), 1)\n ])\n ], 2);\n };\n }\n});\nconst kbd = \"_kbd_lf0a1_20\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_lf0a1_12\",\n kbd\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcKbd = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\nexport {\n NcKbd as N\n};\n//# sourceMappingURL=NcKbd-D3YSTteg.mjs.map\n","import '../assets/NcHotkeyList-gAZN0WIu.css';\nimport { defineComponent, createElementBlock, openBlock, normalizeClass, createElementVNode, toDisplayString, unref, renderSlot } from \"vue\";\nimport { r as register, a as t } from \"./_l10n-DrTiip5c.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister();\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcHotkeyList\",\n props: {\n label: { default: () => void 0 }\n },\n setup(__props) {\n const labelId = `NcHotkeyList_${createElementId()}`;\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass(_ctx.$style.hotkeyList)\n }, [\n createElementVNode(\"div\", {\n id: labelId,\n class: normalizeClass([_ctx.$style.hotkeyList__heading, { \"hidden-visually\": !_ctx.label }])\n }, toDisplayString(_ctx.label || unref(t)(\"Keyboard shortcuts\")), 3),\n createElementVNode(\"ul\", { \"aria-labelledby\": labelId }, [\n renderSlot(_ctx.$slots, \"default\")\n ])\n ], 2);\n };\n }\n});\nconst hotkeyList = \"_hotkeyList_pf97p_2\";\nconst hotkeyList__heading = \"_hotkeyList__heading_pf97p_6\";\nconst style0 = {\n hotkeyList,\n hotkeyList__heading\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcHotkeyList = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\nexport {\n NcHotkeyList as N\n};\n//# sourceMappingURL=NcHotkeyList-BBE5BqwB.mjs.map\n","import '../assets/NcListItemIcon-aquns6B7.css';\nimport \"escape-html\";\nimport \"striptags\";\nimport { resolveComponent, createElementBlock, openBlock, normalizeStyle, normalizeClass, createVNode, createElementVNode, renderSlot, mergeProps, createBlock, createCommentVNode, toDisplayString } from \"vue\";\nimport \"../composables/useIsDarkTheme/index.mjs\";\nimport \"@nextcloud/router\";\nimport \"../functions/isDarkTheme/index.mjs\";\nimport \"./NcMentionBubble.vue_vue_type_style_index_0_scoped_45238efd_lang-D6LzDiYf.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { u as userStatus, N as NcAvatar } from \"./NcAvatar-DmUGApWA.mjs\";\nimport { _ as _sfc_main$1 } from \"./NcHighlight.vue_vue_type_script_lang-DnWQDM_2.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-BvLanNaW.mjs\";\nconst margin = 8;\nconst defaultSize = 32;\nconst _sfc_main = {\n name: \"NcListItemIcon\",\n components: {\n NcAvatar,\n NcHighlight: _sfc_main$1,\n NcIconSvgWrapper\n },\n mixins: [\n userStatus\n ],\n props: {\n /**\n * Default first line text\n */\n name: {\n type: String,\n required: true\n },\n /**\n * Secondary optional line\n * Only visible on size of 32 and above\n */\n subname: {\n type: String,\n default: \"\"\n },\n /**\n * Icon class to be displayed at the end of the component\n */\n icon: {\n type: String,\n default: \"\"\n },\n /**\n * SVG icon to be displayed at the end of the component\n */\n iconSvg: {\n type: String,\n default: \"\"\n },\n /**\n * Descriptive name for the icon\n */\n iconName: {\n type: String,\n default: \"\"\n },\n /**\n * Search within the highlight of name/subname\n */\n search: {\n type: String,\n default: \"\"\n },\n /**\n * Set a size in px that will define the avatar height/width\n * and therefore, the height of the component\n */\n avatarSize: {\n type: Number,\n default: defaultSize\n },\n /**\n * Disable the margins of this component.\n * Useful for integration in `NcSelect` for example\n */\n noMargin: {\n type: Boolean,\n default: false\n },\n /**\n * See the [Avatar](#Avatar) displayName prop\n * Fallback to name\n */\n displayName: {\n type: String,\n default: null\n },\n /**\n * See the [Avatar](#Avatar) isNoUser prop\n * Enable/disable the UserStatus fetching\n */\n isNoUser: {\n type: Boolean,\n default: false\n },\n /**\n * Unique list item ID\n */\n id: {\n type: String,\n default: null\n }\n },\n setup() {\n return {\n margin,\n defaultSize\n };\n },\n computed: {\n hasIcon() {\n return this.icon !== \"\";\n },\n hasIconSvg() {\n return this.iconSvg !== \"\";\n },\n isValidSubname() {\n return this.subname?.trim?.() !== \"\";\n },\n isSizeBigEnough() {\n return this.avatarSize >= 26;\n },\n cssVars() {\n const margin2 = this.noMargin ? 0 : this.margin;\n return {\n \"--height\": this.avatarSize + 2 * margin2 + \"px\",\n \"--margin\": this.margin + \"px\"\n };\n },\n /**\n * Separates the search property into two parts, the first one is the search part on the name, the second on the subname.\n *\n * @return {[string, string]}\n */\n searchParts() {\n const EMAIL_NOTATION = /^([^<]*)<([^>]+)>?$/;\n const match = this.search.match(EMAIL_NOTATION);\n if (this.isNoUser || !match) {\n return [this.search, this.search];\n }\n return [match[1].trim(), match[2]];\n }\n },\n beforeMount() {\n if (!this.isNoUser && !this.subname) {\n this.fetchUserStatus(this.user);\n }\n }\n};\nconst _hoisted_1 = [\"id\"];\nconst _hoisted_2 = { class: \"option__details\" };\nconst _hoisted_3 = { key: 1 };\nconst _hoisted_4 = [\"aria-label\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcAvatar = resolveComponent(\"NcAvatar\");\n const _component_NcHighlight = resolveComponent(\"NcHighlight\");\n const _component_NcIconSvgWrapper = resolveComponent(\"NcIconSvgWrapper\");\n return openBlock(), createElementBlock(\"span\", {\n id: $props.id,\n class: normalizeClass([\"option\", { \"option--compact\": $props.avatarSize < $setup.defaultSize }]),\n style: normalizeStyle($options.cssVars)\n }, [\n createVNode(_component_NcAvatar, mergeProps(_ctx.$attrs, {\n \"disable-menu\": true,\n \"disable-tooltip\": true,\n \"display-name\": $props.displayName || $props.name,\n \"is-no-user\": $props.isNoUser,\n size: $props.avatarSize,\n class: \"option__avatar\"\n }), null, 16, [\"display-name\", \"is-no-user\", \"size\"]),\n createElementVNode(\"div\", _hoisted_2, [\n createVNode(_component_NcHighlight, {\n class: \"option__lineone\",\n text: $props.name,\n search: $options.searchParts[0]\n }, null, 8, [\"text\", \"search\"]),\n $options.isValidSubname && $options.isSizeBigEnough ? (openBlock(), createBlock(_component_NcHighlight, {\n key: 0,\n class: \"option__linetwo\",\n text: $props.subname,\n search: $options.searchParts[1]\n }, null, 8, [\"text\", \"search\"])) : _ctx.hasStatus ? (openBlock(), createElementBlock(\"span\", _hoisted_3, [\n createElementVNode(\"span\", null, toDisplayString(_ctx.userStatus.icon), 1),\n createElementVNode(\"span\", null, toDisplayString(_ctx.userStatus.message), 1)\n ])) : createCommentVNode(\"\", true)\n ]),\n renderSlot(_ctx.$slots, \"default\", {}, () => [\n $options.hasIconSvg ? (openBlock(), createBlock(_component_NcIconSvgWrapper, {\n key: 0,\n class: \"option__icon\",\n svg: $props.iconSvg,\n name: $props.iconName\n }, null, 8, [\"svg\", \"name\"])) : $options.hasIcon ? (openBlock(), createElementBlock(\"span\", {\n key: 1,\n class: normalizeClass([\"icon option__icon\", $props.icon]),\n \"aria-label\": $props.iconName\n }, null, 10, _hoisted_4)) : createCommentVNode(\"\", true)\n ], true)\n ], 14, _hoisted_1);\n}\nconst NcListItemIcon = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-60a83836\"]]);\nexport {\n NcListItemIcon as N\n};\n//# sourceMappingURL=NcListItemIcon-8fWhyS_R.mjs.map\n","if (!Array.prototype.find) {\n Array.prototype.find = function(predicate) {\n if (this === null) {\n throw new TypeError('Array.prototype.find called on null or undefined')\n }\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate must be a function')\n }\n var list = Object(this);\n var length = list.length >>> 0;\n var thisArg = arguments[1];\n var value;\n\n for (var i = 0; i < length; i++) {\n value = list[i];\n if (predicate.call(thisArg, value, i, list)) {\n return value\n }\n }\n return undefined\n };\n}\n\nif (window && typeof window.CustomEvent !== \"function\") {\n function CustomEvent$1(event, params) {\n params = params || {\n bubbles: false,\n cancelable: false,\n detail: undefined\n };\n var evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt\n }\n\n if (typeof window.Event !== 'undefined') {\n CustomEvent$1.prototype = window.Event.prototype;\n }\n\n window.CustomEvent = CustomEvent$1;\n}\n\nclass TributeEvents {\n constructor(tribute) {\n this.tribute = tribute;\n this.tribute.events = this;\n }\n\n static keys() {\n return [\n {\n key: 9,\n value: \"TAB\"\n },\n {\n key: 8,\n value: \"DELETE\"\n },\n {\n key: 13,\n value: \"ENTER\"\n },\n {\n key: 27,\n value: \"ESCAPE\"\n },\n {\n key: 32,\n value: \"SPACE\"\n },\n {\n key: 38,\n value: \"UP\"\n },\n {\n key: 40,\n value: \"DOWN\"\n }\n ];\n }\n\n bind(element) {\n element.boundKeydown = this.keydown.bind(element, this);\n element.boundKeyup = this.keyup.bind(element, this);\n element.boundInput = this.input.bind(element, this);\n\n element.addEventListener(\"keydown\", element.boundKeydown, false);\n element.addEventListener(\"keyup\", element.boundKeyup, false);\n element.addEventListener(\"input\", element.boundInput, false);\n }\n\n unbind(element) {\n element.removeEventListener(\"keydown\", element.boundKeydown, false);\n element.removeEventListener(\"keyup\", element.boundKeyup, false);\n element.removeEventListener(\"input\", element.boundInput, false);\n\n delete element.boundKeydown;\n delete element.boundKeyup;\n delete element.boundInput;\n }\n\n keydown(instance, event) {\n if (instance.shouldDeactivate(event)) {\n instance.tribute.isActive = false;\n instance.tribute.hideMenu();\n }\n\n let element = this;\n instance.commandEvent = false;\n\n TributeEvents.keys().forEach(o => {\n if (o.key === event.keyCode) {\n instance.commandEvent = true;\n instance.callbacks()[o.value.toLowerCase()](event, element);\n }\n });\n }\n\n input(instance, event) {\n instance.inputEvent = true;\n instance.keyup.call(this, instance, event);\n }\n\n click(instance, event) {\n let tribute = instance.tribute;\n if (tribute.menu && tribute.menu.contains(event.target)) {\n let li = event.target;\n event.preventDefault();\n event.stopPropagation();\n while (li.nodeName.toLowerCase() !== \"li\") {\n li = li.parentNode;\n if (!li || li === tribute.menu) {\n throw new Error(\"cannot find the
  • container for the click\");\n }\n }\n tribute.selectItemAtIndex(li.getAttribute(\"data-index\"), event);\n tribute.hideMenu();\n\n // TODO: should fire with externalTrigger and target is outside of menu\n } else if (tribute.current.element && !tribute.current.externalTrigger) {\n tribute.current.externalTrigger = false;\n setTimeout(() => tribute.hideMenu());\n }\n }\n\n keyup(instance, event) {\n if (instance.inputEvent) {\n instance.inputEvent = false;\n }\n instance.updateSelection(this);\n\n if (event.keyCode === 27) return;\n\n if (!instance.tribute.allowSpaces && instance.tribute.hasTrailingSpace) {\n instance.tribute.hasTrailingSpace = false;\n instance.commandEvent = true;\n instance.callbacks()[\"space\"](event, this);\n return;\n }\n\n if (!instance.tribute.isActive) {\n if (instance.tribute.autocompleteMode) {\n instance.callbacks().triggerChar(event, this, \"\");\n } else {\n let keyCode = instance.getKeyCode(instance, this, event);\n\n if (isNaN(keyCode) || !keyCode) return;\n\n let trigger = instance.tribute.triggers().find(trigger => {\n return trigger.charCodeAt(0) === keyCode;\n });\n\n if (typeof trigger !== \"undefined\") {\n instance.callbacks().triggerChar(event, this, trigger);\n }\n }\n }\n\n if (\n instance.tribute.current.mentionText.length <\n instance.tribute.current.collection.menuShowMinLength\n ) {\n return;\n }\n\n if (\n ((instance.tribute.current.trigger ||\n instance.tribute.autocompleteMode) &&\n instance.commandEvent === false) ||\n (instance.tribute.isActive && event.keyCode === 8)\n ) {\n instance.tribute.showMenuFor(this, true);\n }\n }\n\n shouldDeactivate(event) {\n if (!this.tribute.isActive) return false;\n\n if (this.tribute.current.mentionText.length === 0) {\n let eventKeyPressed = false;\n TributeEvents.keys().forEach(o => {\n if (event.keyCode === o.key) eventKeyPressed = true;\n });\n\n return !eventKeyPressed;\n }\n\n return false;\n }\n\n getKeyCode(instance, el, event) {\n let tribute = instance.tribute;\n let info = tribute.range.getTriggerInfo(\n false,\n tribute.hasTrailingSpace,\n true,\n tribute.allowSpaces,\n tribute.autocompleteMode\n );\n\n if (info) {\n return info.mentionTriggerChar.charCodeAt(0);\n } else {\n return false;\n }\n }\n\n updateSelection(el) {\n this.tribute.current.element = el;\n let info = this.tribute.range.getTriggerInfo(\n false,\n this.tribute.hasTrailingSpace,\n true,\n this.tribute.allowSpaces,\n this.tribute.autocompleteMode\n );\n\n if (info) {\n this.tribute.current.selectedPath = info.mentionSelectedPath;\n this.tribute.current.mentionText = info.mentionText;\n this.tribute.current.selectedOffset = info.mentionSelectedOffset;\n }\n }\n\n callbacks() {\n return {\n triggerChar: (e, el, trigger) => {\n let tribute = this.tribute;\n tribute.current.trigger = trigger;\n\n let collectionItem = tribute.collection.find(item => {\n return item.trigger === trigger;\n });\n\n tribute.current.collection = collectionItem;\n\n if (\n tribute.current.mentionText.length >=\n tribute.current.collection.menuShowMinLength &&\n tribute.inputEvent\n ) {\n tribute.showMenuFor(el, true);\n }\n },\n enter: (e, el) => {\n // choose selection\n if (this.tribute.isActive && this.tribute.current.filteredItems) {\n e.preventDefault();\n e.stopPropagation();\n setTimeout(() => {\n this.tribute.selectItemAtIndex(this.tribute.menuSelected, e);\n this.tribute.hideMenu();\n }, 0);\n }\n },\n escape: (e, el) => {\n if (this.tribute.isActive) {\n e.preventDefault();\n e.stopPropagation();\n this.tribute.isActive = false;\n this.tribute.hideMenu();\n }\n },\n tab: (e, el) => {\n // choose first match\n this.callbacks().enter(e, el);\n },\n space: (e, el) => {\n if (this.tribute.isActive) {\n if (this.tribute.spaceSelectsMatch) {\n this.callbacks().enter(e, el);\n } else if (!this.tribute.allowSpaces) {\n e.stopPropagation();\n setTimeout(() => {\n this.tribute.hideMenu();\n this.tribute.isActive = false;\n }, 0);\n }\n }\n },\n up: (e, el) => {\n // navigate up ul\n if (this.tribute.isActive && this.tribute.current.filteredItems) {\n e.preventDefault();\n e.stopPropagation();\n let count = this.tribute.current.filteredItems.length,\n selected = this.tribute.menuSelected;\n\n if (count > selected && selected > 0) {\n this.tribute.menuSelected--;\n this.setActiveLi();\n } else if (selected === 0) {\n this.tribute.menuSelected = count - 1;\n this.setActiveLi();\n this.tribute.menu.scrollTop = this.tribute.menu.scrollHeight;\n }\n }\n },\n down: (e, el) => {\n // navigate down ul\n if (this.tribute.isActive && this.tribute.current.filteredItems) {\n e.preventDefault();\n e.stopPropagation();\n let count = this.tribute.current.filteredItems.length - 1,\n selected = this.tribute.menuSelected;\n\n if (count > selected) {\n this.tribute.menuSelected++;\n this.setActiveLi();\n } else if (count === selected) {\n this.tribute.menuSelected = 0;\n this.setActiveLi();\n this.tribute.menu.scrollTop = 0;\n }\n }\n },\n delete: (e, el) => {\n if (\n this.tribute.isActive &&\n this.tribute.current.mentionText.length < 1\n ) {\n this.tribute.hideMenu();\n } else if (this.tribute.isActive) {\n this.tribute.showMenuFor(el);\n }\n }\n };\n }\n\n setActiveLi(index) {\n let lis = this.tribute.menu.querySelectorAll(\"li\"),\n length = lis.length >>> 0;\n\n if (index) this.tribute.menuSelected = parseInt(index);\n\n for (let i = 0; i < length; i++) {\n let li = lis[i];\n if (i === this.tribute.menuSelected) {\n li.classList.add(this.tribute.current.collection.selectClass);\n\n let liClientRect = li.getBoundingClientRect();\n let menuClientRect = this.tribute.menu.getBoundingClientRect();\n\n if (liClientRect.bottom > menuClientRect.bottom) {\n let scrollDistance = liClientRect.bottom - menuClientRect.bottom;\n this.tribute.menu.scrollTop += scrollDistance;\n } else if (liClientRect.top < menuClientRect.top) {\n let scrollDistance = menuClientRect.top - liClientRect.top;\n this.tribute.menu.scrollTop -= scrollDistance;\n }\n } else {\n li.classList.remove(this.tribute.current.collection.selectClass);\n }\n }\n }\n\n getFullHeight(elem, includeMargin) {\n let height = elem.getBoundingClientRect().height;\n\n if (includeMargin) {\n let style = elem.currentStyle || window.getComputedStyle(elem);\n return (\n height + parseFloat(style.marginTop) + parseFloat(style.marginBottom)\n );\n }\n\n return height;\n }\n}\n\nclass TributeMenuEvents {\n constructor(tribute) {\n this.tribute = tribute;\n this.tribute.menuEvents = this;\n this.menu = this.tribute.menu;\n }\n\n bind(menu) {\n this.menuClickEvent = this.tribute.events.click.bind(null, this);\n this.menuContainerScrollEvent = this.debounce(\n () => {\n if (this.tribute.isActive) {\n this.tribute.showMenuFor(this.tribute.current.element, false);\n }\n },\n 300,\n false\n );\n this.windowResizeEvent = this.debounce(\n () => {\n if (this.tribute.isActive) {\n this.tribute.range.positionMenuAtCaret(true);\n }\n },\n 300,\n false\n );\n\n // fixes IE11 issues with mousedown\n this.tribute.range\n .getDocument()\n .addEventListener(\"MSPointerDown\", this.menuClickEvent, false);\n this.tribute.range\n .getDocument()\n .addEventListener(\"mousedown\", this.menuClickEvent, false);\n window.addEventListener(\"resize\", this.windowResizeEvent);\n\n if (this.menuContainer) {\n this.menuContainer.addEventListener(\n \"scroll\",\n this.menuContainerScrollEvent,\n false\n );\n } else {\n window.addEventListener(\"scroll\", this.menuContainerScrollEvent);\n }\n }\n\n unbind(menu) {\n this.tribute.range\n .getDocument()\n .removeEventListener(\"mousedown\", this.menuClickEvent, false);\n this.tribute.range\n .getDocument()\n .removeEventListener(\"MSPointerDown\", this.menuClickEvent, false);\n window.removeEventListener(\"resize\", this.windowResizeEvent);\n\n if (this.menuContainer) {\n this.menuContainer.removeEventListener(\n \"scroll\",\n this.menuContainerScrollEvent,\n false\n );\n } else {\n window.removeEventListener(\"scroll\", this.menuContainerScrollEvent);\n }\n }\n\n debounce(func, wait, immediate) {\n var timeout;\n return () => {\n var context = this,\n args = arguments;\n var later = () => {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n var callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n }\n}\n\n// Thanks to https://github.com/jeff-collins/ment.io\n\nclass TributeRange {\n constructor(tribute) {\n this.tribute = tribute;\n this.tribute.range = this;\n }\n\n getDocument() {\n let iframe;\n if (this.tribute.current.collection) {\n iframe = this.tribute.current.collection.iframe;\n }\n\n if (!iframe) {\n return document\n }\n\n return iframe.contentWindow.document\n }\n\n positionMenuAtCaret(scrollTo) {\n let context = this.tribute.current,\n coordinates;\n\n let info = this.getTriggerInfo(false, this.tribute.hasTrailingSpace, true, this.tribute.allowSpaces, this.tribute.autocompleteMode);\n\n if (typeof info !== 'undefined') {\n\n if(!this.tribute.positionMenu){\n this.tribute.menu.style.cssText = `display: block;`;\n return\n }\n\n if (!this.isContentEditable(context.element)) {\n coordinates = this.getTextAreaOrInputUnderlinePosition(this.tribute.current.element,\n info.mentionPosition);\n }\n else {\n coordinates = this.getContentEditableCaretPosition(info.mentionPosition);\n }\n\n this.tribute.menu.style.cssText = `top: ${coordinates.top}px;\n left: ${coordinates.left}px;\n right: ${coordinates.right}px;\n bottom: ${coordinates.bottom}px;\n position: absolute;\n display: block;`;\n\n if (coordinates.left === 'auto') {\n this.tribute.menu.style.left = 'auto';\n }\n\n if (coordinates.top === 'auto') {\n this.tribute.menu.style.top = 'auto';\n }\n\n if (scrollTo) this.scrollIntoView();\n\n window.setTimeout(() => {\n let menuDimensions = {\n width: this.tribute.menu.offsetWidth,\n height: this.tribute.menu.offsetHeight\n };\n let menuIsOffScreen = this.isMenuOffScreen(coordinates, menuDimensions);\n\n let menuIsOffScreenHorizontally = window.innerWidth > menuDimensions.width && (menuIsOffScreen.left || menuIsOffScreen.right);\n let menuIsOffScreenVertically = window.innerHeight > menuDimensions.height && (menuIsOffScreen.top || menuIsOffScreen.bottom);\n if (menuIsOffScreenHorizontally || menuIsOffScreenVertically) {\n this.tribute.menu.style.cssText = 'display: none';\n this.positionMenuAtCaret(scrollTo);\n }\n }, 0);\n\n } else {\n this.tribute.menu.style.cssText = 'display: none';\n }\n }\n\n get menuContainerIsBody() {\n return this.tribute.menuContainer === document.body || !this.tribute.menuContainer;\n }\n\n\n selectElement(targetElement, path, offset) {\n let range;\n let elem = targetElement;\n\n if (path) {\n for (var i = 0; i < path.length; i++) {\n elem = elem.childNodes[path[i]];\n if (elem === undefined) {\n return\n }\n while (elem.length < offset) {\n offset -= elem.length;\n elem = elem.nextSibling;\n }\n if (elem.childNodes.length === 0 && !elem.length) {\n elem = elem.previousSibling;\n }\n }\n }\n let sel = this.getWindowSelection();\n\n range = this.getDocument().createRange();\n range.setStart(elem, offset);\n range.setEnd(elem, offset);\n range.collapse(true);\n\n try {\n sel.removeAllRanges();\n } catch (error) {}\n\n sel.addRange(range);\n targetElement.focus();\n }\n\n replaceTriggerText(text, requireLeadingSpace, hasTrailingSpace, originalEvent, item) {\n let info = this.getTriggerInfo(true, hasTrailingSpace, requireLeadingSpace, this.tribute.allowSpaces, this.tribute.autocompleteMode);\n\n if (info !== undefined) {\n let context = this.tribute.current;\n let replaceEvent = new CustomEvent('tribute-replaced', {\n detail: {\n item: item,\n instance: context,\n context: info,\n event: originalEvent,\n }\n });\n\n if (!this.isContentEditable(context.element)) {\n let myField = this.tribute.current.element;\n let textSuffix = typeof this.tribute.replaceTextSuffix == 'string'\n ? this.tribute.replaceTextSuffix\n : ' ';\n text += textSuffix;\n let startPos = info.mentionPosition;\n let endPos = info.mentionPosition + info.mentionText.length + textSuffix.length;\n if (!this.tribute.autocompleteMode) {\n endPos += info.mentionTriggerChar.length - 1;\n }\n myField.value = myField.value.substring(0, startPos) + text +\n myField.value.substring(endPos, myField.value.length);\n myField.selectionStart = startPos + text.length;\n myField.selectionEnd = startPos + text.length;\n } else {\n // add a space to the end of the pasted text\n let textSuffix = typeof this.tribute.replaceTextSuffix == 'string'\n ? this.tribute.replaceTextSuffix\n : '\\xA0';\n text += textSuffix;\n let endPos = info.mentionPosition + info.mentionText.length;\n if (!this.tribute.autocompleteMode) {\n endPos += info.mentionTriggerChar.length;\n }\n this.pasteHtml(text, info.mentionPosition, endPos);\n }\n\n context.element.dispatchEvent(new CustomEvent('input', { bubbles: true }));\n context.element.dispatchEvent(replaceEvent);\n }\n }\n\n pasteHtml(html, startPos, endPos) {\n let range, sel;\n sel = this.getWindowSelection();\n range = this.getDocument().createRange();\n range.setStart(sel.anchorNode, startPos);\n range.setEnd(sel.anchorNode, endPos);\n range.deleteContents();\n\n let el = this.getDocument().createElement('div');\n el.innerHTML = html;\n let frag = this.getDocument().createDocumentFragment(),\n node, lastNode;\n while ((node = el.firstChild)) {\n lastNode = frag.appendChild(node);\n }\n range.insertNode(frag);\n\n // Preserve the selection\n if (lastNode) {\n range = range.cloneRange();\n range.setStartAfter(lastNode);\n range.collapse(true);\n sel.removeAllRanges();\n sel.addRange(range);\n }\n }\n\n getWindowSelection() {\n if (this.tribute.collection.iframe) {\n return this.tribute.collection.iframe.contentWindow.getSelection()\n }\n\n return window.getSelection()\n }\n\n getNodePositionInParent(element) {\n if (element.parentNode === null) {\n return 0\n }\n\n for (var i = 0; i < element.parentNode.childNodes.length; i++) {\n let node = element.parentNode.childNodes[i];\n\n if (node === element) {\n return i\n }\n }\n }\n\n getContentEditableSelectedPath(ctx) {\n let sel = this.getWindowSelection();\n let selected = sel.anchorNode;\n let path = [];\n let offset;\n\n if (selected != null) {\n let i;\n let ce = selected.contentEditable;\n while (selected !== null && ce !== 'true') {\n i = this.getNodePositionInParent(selected);\n path.push(i);\n selected = selected.parentNode;\n if (selected !== null) {\n ce = selected.contentEditable;\n }\n }\n path.reverse();\n\n // getRangeAt may not exist, need alternative\n offset = sel.getRangeAt(0).startOffset;\n\n return {\n selected: selected,\n path: path,\n offset: offset\n }\n }\n }\n\n getTextPrecedingCurrentSelection() {\n let context = this.tribute.current,\n text = '';\n\n if (!this.isContentEditable(context.element)) {\n let textComponent = this.tribute.current.element;\n if (textComponent) {\n let startPos = textComponent.selectionStart;\n if (textComponent.value && startPos >= 0) {\n text = textComponent.value.substring(0, startPos);\n }\n }\n\n } else {\n let selectedElem = this.getWindowSelection().anchorNode;\n\n if (selectedElem != null) {\n let workingNodeContent = selectedElem.textContent;\n let selectStartOffset = this.getWindowSelection().getRangeAt(0).startOffset;\n\n if (workingNodeContent && selectStartOffset >= 0) {\n text = workingNodeContent.substring(0, selectStartOffset);\n }\n }\n }\n\n return text\n }\n\n getLastWordInText(text) {\n text = text.replace(/\\u00A0/g, ' '); // https://stackoverflow.com/questions/29850407/how-do-i-replace-unicode-character-u00a0-with-a-space-in-javascript\n let wordsArray = text.split(/\\s+/);\n let worldsCount = wordsArray.length - 1;\n return wordsArray[worldsCount].trim()\n }\n\n getTriggerInfo(menuAlreadyActive, hasTrailingSpace, requireLeadingSpace, allowSpaces, isAutocomplete) {\n let ctx = this.tribute.current;\n let selected, path, offset;\n\n if (!this.isContentEditable(ctx.element)) {\n selected = this.tribute.current.element;\n } else {\n let selectionInfo = this.getContentEditableSelectedPath(ctx);\n\n if (selectionInfo) {\n selected = selectionInfo.selected;\n path = selectionInfo.path;\n offset = selectionInfo.offset;\n }\n }\n\n let effectiveRange = this.getTextPrecedingCurrentSelection();\n let lastWordOfEffectiveRange = this.getLastWordInText(effectiveRange);\n\n if (isAutocomplete) {\n return {\n mentionPosition: effectiveRange.length - lastWordOfEffectiveRange.length,\n mentionText: lastWordOfEffectiveRange,\n mentionSelectedElement: selected,\n mentionSelectedPath: path,\n mentionSelectedOffset: offset\n }\n }\n\n if (effectiveRange !== undefined && effectiveRange !== null) {\n let mostRecentTriggerCharPos = -1;\n let triggerChar;\n\n this.tribute.collection.forEach(config => {\n let c = config.trigger;\n let idx = config.requireLeadingSpace ?\n this.lastIndexWithLeadingSpace(effectiveRange, c) :\n effectiveRange.lastIndexOf(c);\n\n if (idx > mostRecentTriggerCharPos) {\n mostRecentTriggerCharPos = idx;\n triggerChar = c;\n requireLeadingSpace = config.requireLeadingSpace;\n }\n });\n\n if (mostRecentTriggerCharPos >= 0 &&\n (\n mostRecentTriggerCharPos === 0 ||\n !requireLeadingSpace ||\n /[\\xA0\\s]/g.test(\n effectiveRange.substring(\n mostRecentTriggerCharPos - 1,\n mostRecentTriggerCharPos)\n )\n )\n ) {\n let currentTriggerSnippet = effectiveRange.substring(mostRecentTriggerCharPos + triggerChar.length,\n effectiveRange.length);\n\n triggerChar = effectiveRange.substring(mostRecentTriggerCharPos, mostRecentTriggerCharPos + triggerChar.length);\n let firstSnippetChar = currentTriggerSnippet.substring(0, 1);\n let leadingSpace = currentTriggerSnippet.length > 0 &&\n (\n firstSnippetChar === ' ' ||\n firstSnippetChar === '\\xA0'\n );\n if (hasTrailingSpace) {\n currentTriggerSnippet = currentTriggerSnippet.trim();\n }\n\n let regex = allowSpaces ? /[^\\S ]/g : /[\\xA0\\s]/g;\n\n this.tribute.hasTrailingSpace = regex.test(currentTriggerSnippet);\n\n if (!leadingSpace && (menuAlreadyActive || !(regex.test(currentTriggerSnippet)))) {\n return {\n mentionPosition: mostRecentTriggerCharPos,\n mentionText: currentTriggerSnippet,\n mentionSelectedElement: selected,\n mentionSelectedPath: path,\n mentionSelectedOffset: offset,\n mentionTriggerChar: triggerChar\n }\n }\n }\n }\n }\n\n lastIndexWithLeadingSpace (str, trigger) {\n let reversedStr = str.split('').reverse().join('');\n let index = -1;\n\n for (let cidx = 0, len = str.length; cidx < len; cidx++) {\n let firstChar = cidx === str.length - 1;\n let leadingSpace = /\\s/.test(reversedStr[cidx + 1]);\n\n let match = true;\n for (let triggerIdx = trigger.length - 1; triggerIdx >= 0; triggerIdx--) {\n if (trigger[triggerIdx] !== reversedStr[cidx-triggerIdx]) {\n match = false;\n break\n }\n }\n\n if (match && (firstChar || leadingSpace)) {\n index = str.length - 1 - cidx;\n break\n }\n }\n\n return index\n }\n\n isContentEditable(element) {\n return element.nodeName !== 'INPUT' && element.nodeName !== 'TEXTAREA'\n }\n\n isMenuOffScreen(coordinates, menuDimensions) {\n let windowWidth = window.innerWidth;\n let windowHeight = window.innerHeight;\n let doc = document.documentElement;\n let windowLeft = (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0);\n let windowTop = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\n\n let menuTop = typeof coordinates.top === 'number' ? coordinates.top : windowTop + windowHeight - coordinates.bottom - menuDimensions.height;\n let menuRight = typeof coordinates.right === 'number' ? coordinates.right : coordinates.left + menuDimensions.width;\n let menuBottom = typeof coordinates.bottom === 'number' ? coordinates.bottom : coordinates.top + menuDimensions.height;\n let menuLeft = typeof coordinates.left === 'number' ? coordinates.left : windowLeft + windowWidth - coordinates.right - menuDimensions.width;\n\n return {\n top: menuTop < Math.floor(windowTop),\n right: menuRight > Math.ceil(windowLeft + windowWidth),\n bottom: menuBottom > Math.ceil(windowTop + windowHeight),\n left: menuLeft < Math.floor(windowLeft)\n }\n }\n\n getMenuDimensions() {\n // Width of the menu depends of its contents and position\n // We must check what its width would be without any obstruction\n // This way, we can achieve good positioning for flipping the menu\n let dimensions = {\n width: null,\n height: null\n };\n\n this.tribute.menu.style.cssText = `top: 0px;\n left: 0px;\n position: fixed;\n display: block;\n visibility; hidden;`;\n dimensions.width = this.tribute.menu.offsetWidth;\n dimensions.height = this.tribute.menu.offsetHeight;\n\n this.tribute.menu.style.cssText = `display: none;`;\n\n return dimensions\n }\n\n getTextAreaOrInputUnderlinePosition(element, position, flipped) {\n let properties = ['direction', 'boxSizing', 'width', 'height', 'overflowX',\n 'overflowY', 'borderTopWidth', 'borderRightWidth',\n 'borderBottomWidth', 'borderLeftWidth', 'paddingTop',\n 'paddingRight', 'paddingBottom', 'paddingLeft',\n 'fontStyle', 'fontVariant', 'fontWeight', 'fontStretch',\n 'fontSize', 'fontSizeAdjust', 'lineHeight', 'fontFamily',\n 'textAlign', 'textTransform', 'textIndent',\n 'textDecoration', 'letterSpacing', 'wordSpacing'\n ];\n\n let isFirefox = (window.mozInnerScreenX !== null);\n\n let div = this.getDocument().createElement('div');\n div.id = 'input-textarea-caret-position-mirror-div';\n this.getDocument().body.appendChild(div);\n\n let style = div.style;\n let computed = window.getComputedStyle ? getComputedStyle(element) : element.currentStyle;\n\n style.whiteSpace = 'pre-wrap';\n if (element.nodeName !== 'INPUT') {\n style.wordWrap = 'break-word';\n }\n\n // position off-screen\n style.position = 'absolute';\n style.visibility = 'hidden';\n\n // transfer the element's properties to the div\n properties.forEach(prop => {\n style[prop] = computed[prop];\n });\n\n if (isFirefox) {\n style.width = `${(parseInt(computed.width) - 2)}px`;\n if (element.scrollHeight > parseInt(computed.height))\n style.overflowY = 'scroll';\n } else {\n style.overflow = 'hidden';\n }\n\n div.textContent = element.value.substring(0, position);\n\n if (element.nodeName === 'INPUT') {\n div.textContent = div.textContent.replace(/\\s/g, ' ');\n }\n\n let span = this.getDocument().createElement('span');\n span.textContent = element.value.substring(position) || '.';\n div.appendChild(span);\n\n let rect = element.getBoundingClientRect();\n let doc = document.documentElement;\n let windowLeft = (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0);\n let windowTop = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\n\n let top = 0;\n let left = 0;\n if (this.menuContainerIsBody) {\n top = rect.top;\n left = rect.left;\n }\n\n let coordinates = {\n top: top + windowTop + span.offsetTop + parseInt(computed.borderTopWidth) + parseInt(computed.fontSize) - element.scrollTop,\n left: left + windowLeft + span.offsetLeft + parseInt(computed.borderLeftWidth)\n };\n\n let windowWidth = window.innerWidth;\n let windowHeight = window.innerHeight;\n\n let menuDimensions = this.getMenuDimensions();\n let menuIsOffScreen = this.isMenuOffScreen(coordinates, menuDimensions);\n\n if (menuIsOffScreen.right) {\n coordinates.right = windowWidth - coordinates.left;\n coordinates.left = 'auto';\n }\n\n let parentHeight = this.tribute.menuContainer\n ? this.tribute.menuContainer.offsetHeight\n : this.getDocument().body.offsetHeight;\n\n if (menuIsOffScreen.bottom) {\n let parentRect = this.tribute.menuContainer\n ? this.tribute.menuContainer.getBoundingClientRect()\n : this.getDocument().body.getBoundingClientRect();\n let scrollStillAvailable = parentHeight - (windowHeight - parentRect.top);\n\n coordinates.bottom = scrollStillAvailable + (windowHeight - rect.top - span.offsetTop);\n coordinates.top = 'auto';\n }\n\n menuIsOffScreen = this.isMenuOffScreen(coordinates, menuDimensions);\n if (menuIsOffScreen.left) {\n coordinates.left = windowWidth > menuDimensions.width\n ? windowLeft + windowWidth - menuDimensions.width\n : windowLeft;\n delete coordinates.right;\n }\n if (menuIsOffScreen.top) {\n coordinates.top = windowHeight > menuDimensions.height\n ? windowTop + windowHeight - menuDimensions.height\n : windowTop;\n delete coordinates.bottom;\n }\n\n this.getDocument().body.removeChild(div);\n return coordinates\n }\n\n getContentEditableCaretPosition(selectedNodePosition) {\n let range;\n let sel = this.getWindowSelection();\n\n range = this.getDocument().createRange();\n range.setStart(sel.anchorNode, selectedNodePosition);\n range.setEnd(sel.anchorNode, selectedNodePosition);\n\n range.collapse(false);\n\n let rect = range.getBoundingClientRect();\n let doc = document.documentElement;\n let windowLeft = (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0);\n let windowTop = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\n\n let left = rect.left;\n let top = rect.top;\n\n let coordinates = {\n left: left + windowLeft,\n top: top + rect.height + windowTop\n };\n let windowWidth = window.innerWidth;\n let windowHeight = window.innerHeight;\n\n let menuDimensions = this.getMenuDimensions();\n let menuIsOffScreen = this.isMenuOffScreen(coordinates, menuDimensions);\n\n if (menuIsOffScreen.right) {\n coordinates.left = 'auto';\n coordinates.right = windowWidth - rect.left - windowLeft;\n }\n\n let parentHeight = this.tribute.menuContainer\n ? this.tribute.menuContainer.offsetHeight\n : this.getDocument().body.offsetHeight;\n\n if (menuIsOffScreen.bottom) {\n let parentRect = this.tribute.menuContainer\n ? this.tribute.menuContainer.getBoundingClientRect()\n : this.getDocument().body.getBoundingClientRect();\n let scrollStillAvailable = parentHeight - (windowHeight - parentRect.top);\n\n coordinates.top = 'auto';\n coordinates.bottom = scrollStillAvailable + (windowHeight - rect.top);\n }\n\n menuIsOffScreen = this.isMenuOffScreen(coordinates, menuDimensions);\n if (menuIsOffScreen.left) {\n coordinates.left = windowWidth > menuDimensions.width\n ? windowLeft + windowWidth - menuDimensions.width\n : windowLeft;\n delete coordinates.right;\n }\n if (menuIsOffScreen.top) {\n coordinates.top = windowHeight > menuDimensions.height\n ? windowTop + windowHeight - menuDimensions.height\n : windowTop;\n delete coordinates.bottom;\n }\n\n if (!this.menuContainerIsBody) {\n coordinates.left = coordinates.left ? coordinates.left - this.tribute.menuContainer.offsetLeft : coordinates.left;\n coordinates.top = coordinates.top ? coordinates.top - this.tribute.menuContainer.offsetTop : coordinates.top;\n }\n\n return coordinates\n }\n\n scrollIntoView(elem) {\n let reasonableBuffer = 20,\n clientRect;\n let maxScrollDisplacement = 100;\n let e = this.menu;\n\n if (typeof e === 'undefined') return;\n\n while (clientRect === undefined || clientRect.height === 0) {\n clientRect = e.getBoundingClientRect();\n\n if (clientRect.height === 0) {\n e = e.childNodes[0];\n if (e === undefined || !e.getBoundingClientRect) {\n return\n }\n }\n }\n\n let elemTop = clientRect.top;\n let elemBottom = elemTop + clientRect.height;\n\n if (elemTop < 0) {\n window.scrollTo(0, window.pageYOffset + clientRect.top - reasonableBuffer);\n } else if (elemBottom > window.innerHeight) {\n let maxY = window.pageYOffset + clientRect.top - reasonableBuffer;\n\n if (maxY - window.pageYOffset > maxScrollDisplacement) {\n maxY = window.pageYOffset + maxScrollDisplacement;\n }\n\n let targetY = window.pageYOffset - (window.innerHeight - elemBottom);\n\n if (targetY > maxY) {\n targetY = maxY;\n }\n\n window.scrollTo(0, targetY);\n }\n }\n}\n\n// Thanks to https://github.com/mattyork/fuzzy\nclass TributeSearch {\n constructor(tribute) {\n this.tribute = tribute;\n this.tribute.search = this;\n }\n\n simpleFilter(pattern, array) {\n return array.filter(string => {\n return this.test(pattern, string)\n })\n }\n\n test(pattern, string) {\n return this.match(pattern, string) !== null\n }\n\n match(pattern, string, opts) {\n opts = opts || {};\n let len = string.length,\n pre = opts.pre || '',\n post = opts.post || '',\n compareString = opts.caseSensitive && string || string.toLowerCase();\n\n if (opts.skip) {\n return {rendered: string, score: 0}\n }\n\n pattern = opts.caseSensitive && pattern || pattern.toLowerCase();\n\n let patternCache = this.traverse(compareString, pattern, 0, 0, []);\n if (!patternCache) {\n return null\n }\n return {\n rendered: this.render(string, patternCache.cache, pre, post),\n score: patternCache.score\n }\n }\n\n traverse(string, pattern, stringIndex, patternIndex, patternCache) {\n // if the pattern search at end\n if (pattern.length === patternIndex) {\n\n // calculate score and copy the cache containing the indices where it's found\n return {\n score: this.calculateScore(patternCache),\n cache: patternCache.slice()\n }\n }\n\n // if string at end or remaining pattern > remaining string\n if (string.length === stringIndex || pattern.length - patternIndex > string.length - stringIndex) {\n return undefined\n }\n\n let c = pattern[patternIndex];\n let index = string.indexOf(c, stringIndex);\n let best, temp;\n\n while (index > -1) {\n patternCache.push(index);\n temp = this.traverse(string, pattern, index + 1, patternIndex + 1, patternCache);\n patternCache.pop();\n\n // if downstream traversal failed, return best answer so far\n if (!temp) {\n return best\n }\n\n if (!best || best.score < temp.score) {\n best = temp;\n }\n\n index = string.indexOf(c, index + 1);\n }\n\n return best\n }\n\n calculateScore(patternCache) {\n let score = 0;\n let temp = 1;\n\n patternCache.forEach((index, i) => {\n if (i > 0) {\n if (patternCache[i - 1] + 1 === index) {\n temp += temp + 1;\n }\n else {\n temp = 1;\n }\n }\n\n score += temp;\n });\n\n return score\n }\n\n render(string, indices, pre, post) {\n var rendered = string.substring(0, indices[0]);\n\n indices.forEach((index, i) => {\n rendered += pre + string[index] + post +\n string.substring(index + 1, (indices[i + 1]) ? indices[i + 1] : string.length);\n });\n\n return rendered\n }\n\n filter(pattern, arr, opts) {\n opts = opts || {};\n return arr\n .reduce((prev, element, idx, arr) => {\n let str = element;\n\n if (opts.extract) {\n str = opts.extract(element);\n\n if (!str) { // take care of undefineds / nulls / etc.\n str = '';\n }\n }\n\n let rendered = this.match(pattern, str, opts);\n\n if (rendered != null) {\n prev[prev.length] = {\n string: rendered.rendered,\n score: rendered.score,\n index: idx,\n original: element\n };\n }\n\n return prev\n }, [])\n\n .sort((a, b) => {\n let compare = b.score - a.score;\n if (compare) return compare\n return a.index - b.index\n })\n }\n}\n\nclass Tribute {\n constructor({\n values = null,\n iframe = null,\n selectClass = \"highlight\",\n containerClass = \"tribute-container\",\n itemClass = \"\",\n trigger = \"@\",\n autocompleteMode = false,\n selectTemplate = null,\n menuItemTemplate = null,\n lookup = \"key\",\n fillAttr = \"value\",\n collection = null,\n menuContainer = null,\n noMatchTemplate = null,\n requireLeadingSpace = true,\n allowSpaces = false,\n replaceTextSuffix = null,\n positionMenu = true,\n spaceSelectsMatch = false,\n searchOpts = {},\n menuItemLimit = null,\n menuShowMinLength = 0\n }) {\n this.autocompleteMode = autocompleteMode;\n this.menuSelected = 0;\n this.current = {};\n this.inputEvent = false;\n this.isActive = false;\n this.menuContainer = menuContainer;\n this.allowSpaces = allowSpaces;\n this.replaceTextSuffix = replaceTextSuffix;\n this.positionMenu = positionMenu;\n this.hasTrailingSpace = false;\n this.spaceSelectsMatch = spaceSelectsMatch;\n\n if (this.autocompleteMode) {\n trigger = \"\";\n allowSpaces = false;\n }\n\n if (values) {\n this.collection = [\n {\n // symbol that starts the lookup\n trigger: trigger,\n\n // is it wrapped in an iframe\n iframe: iframe,\n\n // class applied to selected item\n selectClass: selectClass,\n\n // class applied to the Container\n containerClass: containerClass,\n\n // class applied to each item\n itemClass: itemClass,\n\n // function called on select that retuns the content to insert\n selectTemplate: (\n selectTemplate || Tribute.defaultSelectTemplate\n ).bind(this),\n\n // function called that returns content for an item\n menuItemTemplate: (\n menuItemTemplate || Tribute.defaultMenuItemTemplate\n ).bind(this),\n\n // function called when menu is empty, disables hiding of menu.\n noMatchTemplate: (t => {\n if (typeof t === \"string\") {\n if (t.trim() === \"\") return null;\n return t;\n }\n if (typeof t === \"function\") {\n return t.bind(this);\n }\n\n return (\n noMatchTemplate ||\n function() {\n return \"
  • No Match Found!
  • \";\n }.bind(this)\n );\n })(noMatchTemplate),\n\n // column to search against in the object\n lookup: lookup,\n\n // column that contains the content to insert by default\n fillAttr: fillAttr,\n\n // array of objects or a function returning an array of objects\n values: values,\n\n requireLeadingSpace: requireLeadingSpace,\n\n searchOpts: searchOpts,\n\n menuItemLimit: menuItemLimit,\n\n menuShowMinLength: menuShowMinLength\n }\n ];\n } else if (collection) {\n if (this.autocompleteMode)\n console.warn(\n \"Tribute in autocomplete mode does not work for collections\"\n );\n this.collection = collection.map(item => {\n return {\n trigger: item.trigger || trigger,\n iframe: item.iframe || iframe,\n selectClass: item.selectClass || selectClass,\n containerClass: item.containerClass || containerClass,\n itemClass: item.itemClass || itemClass,\n selectTemplate: (\n item.selectTemplate || Tribute.defaultSelectTemplate\n ).bind(this),\n menuItemTemplate: (\n item.menuItemTemplate || Tribute.defaultMenuItemTemplate\n ).bind(this),\n // function called when menu is empty, disables hiding of menu.\n noMatchTemplate: (t => {\n if (typeof t === \"string\") {\n if (t.trim() === \"\") return null;\n return t;\n }\n if (typeof t === \"function\") {\n return t.bind(this);\n }\n\n return (\n noMatchTemplate ||\n function() {\n return \"
  • No Match Found!
  • \";\n }.bind(this)\n );\n })(noMatchTemplate),\n lookup: item.lookup || lookup,\n fillAttr: item.fillAttr || fillAttr,\n values: item.values,\n requireLeadingSpace: item.requireLeadingSpace,\n searchOpts: item.searchOpts || searchOpts,\n menuItemLimit: item.menuItemLimit || menuItemLimit,\n menuShowMinLength: item.menuShowMinLength || menuShowMinLength\n };\n });\n } else {\n throw new Error(\"[Tribute] No collection specified.\");\n }\n\n new TributeRange(this);\n new TributeEvents(this);\n new TributeMenuEvents(this);\n new TributeSearch(this);\n }\n\n get isActive() {\n return this._isActive;\n }\n\n set isActive(val) {\n if (this._isActive != val) {\n this._isActive = val;\n if (this.current.element) {\n let noMatchEvent = new CustomEvent(`tribute-active-${val}`);\n this.current.element.dispatchEvent(noMatchEvent);\n }\n }\n }\n\n static defaultSelectTemplate(item) {\n if (typeof item === \"undefined\")\n return `${this.current.collection.trigger}${this.current.mentionText}`;\n if (this.range.isContentEditable(this.current.element)) {\n return (\n '' +\n (this.current.collection.trigger +\n item.original[this.current.collection.fillAttr]) +\n \"\"\n );\n }\n\n return (\n this.current.collection.trigger +\n item.original[this.current.collection.fillAttr]\n );\n }\n\n static defaultMenuItemTemplate(matchItem) {\n return matchItem.string;\n }\n\n static inputTypes() {\n return [\"TEXTAREA\", \"INPUT\"];\n }\n\n triggers() {\n return this.collection.map(config => {\n return config.trigger;\n });\n }\n\n attach(el) {\n if (!el) {\n throw new Error(\"[Tribute] Must pass in a DOM node or NodeList.\");\n }\n\n // Check if it is a jQuery collection\n if (typeof jQuery !== \"undefined\" && el instanceof jQuery) {\n el = el.get();\n }\n\n // Is el an Array/Array-like object?\n if (\n el.constructor === NodeList ||\n el.constructor === HTMLCollection ||\n el.constructor === Array\n ) {\n let length = el.length;\n for (var i = 0; i < length; ++i) {\n this._attach(el[i]);\n }\n } else {\n this._attach(el);\n }\n }\n\n _attach(el) {\n if (el.hasAttribute(\"data-tribute\")) {\n console.warn(\"Tribute was already bound to \" + el.nodeName);\n }\n\n this.ensureEditable(el);\n this.events.bind(el);\n el.setAttribute(\"data-tribute\", true);\n }\n\n ensureEditable(element) {\n if (Tribute.inputTypes().indexOf(element.nodeName) === -1) {\n if (element.contentEditable) {\n element.contentEditable = true;\n } else {\n throw new Error(\"[Tribute] Cannot bind to \" + element.nodeName);\n }\n }\n }\n\n createMenu(containerClass) {\n let wrapper = this.range.getDocument().createElement(\"div\"),\n ul = this.range.getDocument().createElement(\"ul\");\n wrapper.className = containerClass;\n wrapper.appendChild(ul);\n\n if (this.menuContainer) {\n return this.menuContainer.appendChild(wrapper);\n }\n\n return this.range.getDocument().body.appendChild(wrapper);\n }\n\n showMenuFor(element, scrollTo) {\n // Only proceed if menu isn't already shown for the current element & mentionText\n if (\n this.isActive &&\n this.current.element === element &&\n this.current.mentionText === this.currentMentionTextSnapshot\n ) {\n return;\n }\n this.currentMentionTextSnapshot = this.current.mentionText;\n\n // create the menu if it doesn't exist.\n if (!this.menu) {\n this.menu = this.createMenu(this.current.collection.containerClass);\n element.tributeMenu = this.menu;\n this.menuEvents.bind(this.menu);\n }\n\n this.isActive = true;\n this.menuSelected = 0;\n\n if (!this.current.mentionText) {\n this.current.mentionText = \"\";\n }\n\n const processValues = values => {\n // Tribute may not be active any more by the time the value callback returns\n if (!this.isActive) {\n return;\n }\n\n let items = this.search.filter(this.current.mentionText, values, {\n pre: this.current.collection.searchOpts.pre || \"\",\n post: this.current.collection.searchOpts.post || \"\",\n skip: this.current.collection.searchOpts.skip,\n extract: el => {\n if (typeof this.current.collection.lookup === \"string\") {\n return el[this.current.collection.lookup];\n } else if (typeof this.current.collection.lookup === \"function\") {\n return this.current.collection.lookup(el, this.current.mentionText);\n } else {\n throw new Error(\n \"Invalid lookup attribute, lookup must be string or function.\"\n );\n }\n }\n });\n\n if (this.current.collection.menuItemLimit) {\n items = items.slice(0, this.current.collection.menuItemLimit);\n }\n\n this.current.filteredItems = items;\n\n let ul = this.menu.querySelector(\"ul\");\n\n this.range.positionMenuAtCaret(scrollTo);\n\n if (!items.length) {\n let noMatchEvent = new CustomEvent(\"tribute-no-match\", {\n detail: this.menu\n });\n this.current.element.dispatchEvent(noMatchEvent);\n if (\n (typeof this.current.collection.noMatchTemplate === \"function\" &&\n !this.current.collection.noMatchTemplate()) ||\n !this.current.collection.noMatchTemplate\n ) {\n this.hideMenu();\n } else {\n typeof this.current.collection.noMatchTemplate === \"function\"\n ? (ul.innerHTML = this.current.collection.noMatchTemplate())\n : (ul.innerHTML = this.current.collection.noMatchTemplate);\n }\n\n return;\n }\n\n ul.innerHTML = \"\";\n let fragment = this.range.getDocument().createDocumentFragment();\n\n items.forEach((item, index) => {\n let li = this.range.getDocument().createElement(\"li\");\n li.setAttribute(\"data-index\", index);\n li.className = this.current.collection.itemClass;\n li.addEventListener(\"mousemove\", e => {\n let [li, index] = this._findLiTarget(e.target);\n if (e.movementY !== 0) {\n this.events.setActiveLi(index);\n }\n });\n if (this.menuSelected === index) {\n li.classList.add(this.current.collection.selectClass);\n }\n li.innerHTML = this.current.collection.menuItemTemplate(item);\n fragment.appendChild(li);\n });\n ul.appendChild(fragment);\n };\n\n if (typeof this.current.collection.values === \"function\") {\n this.current.collection.values(this.current.mentionText, processValues);\n } else {\n processValues(this.current.collection.values);\n }\n }\n\n _findLiTarget(el) {\n if (!el) return [];\n const index = el.getAttribute(\"data-index\");\n return !index ? this._findLiTarget(el.parentNode) : [el, index];\n }\n\n showMenuForCollection(element, collectionIndex) {\n if (element !== document.activeElement) {\n this.placeCaretAtEnd(element);\n }\n\n this.current.collection = this.collection[collectionIndex || 0];\n this.current.externalTrigger = true;\n this.current.element = element;\n\n if (element.isContentEditable)\n this.insertTextAtCursor(this.current.collection.trigger);\n else this.insertAtCaret(element, this.current.collection.trigger);\n\n this.showMenuFor(element);\n }\n\n // TODO: make sure this works for inputs/textareas\n placeCaretAtEnd(el) {\n el.focus();\n if (\n typeof window.getSelection != \"undefined\" &&\n typeof document.createRange != \"undefined\"\n ) {\n var range = document.createRange();\n range.selectNodeContents(el);\n range.collapse(false);\n var sel = window.getSelection();\n sel.removeAllRanges();\n sel.addRange(range);\n } else if (typeof document.body.createTextRange != \"undefined\") {\n var textRange = document.body.createTextRange();\n textRange.moveToElementText(el);\n textRange.collapse(false);\n textRange.select();\n }\n }\n\n // for contenteditable\n insertTextAtCursor(text) {\n var sel, range;\n sel = window.getSelection();\n range = sel.getRangeAt(0);\n range.deleteContents();\n var textNode = document.createTextNode(text);\n range.insertNode(textNode);\n range.selectNodeContents(textNode);\n range.collapse(false);\n sel.removeAllRanges();\n sel.addRange(range);\n }\n\n // for regular inputs\n insertAtCaret(textarea, text) {\n var scrollPos = textarea.scrollTop;\n var caretPos = textarea.selectionStart;\n\n var front = textarea.value.substring(0, caretPos);\n var back = textarea.value.substring(\n textarea.selectionEnd,\n textarea.value.length\n );\n textarea.value = front + text + back;\n caretPos = caretPos + text.length;\n textarea.selectionStart = caretPos;\n textarea.selectionEnd = caretPos;\n textarea.focus();\n textarea.scrollTop = scrollPos;\n }\n\n hideMenu() {\n if (this.menu) {\n this.menu.style.cssText = \"display: none;\";\n this.isActive = false;\n this.menuSelected = 0;\n this.current = {};\n }\n }\n\n selectItemAtIndex(index, originalEvent) {\n index = parseInt(index);\n if (typeof index !== \"number\" || isNaN(index)) return;\n let item = this.current.filteredItems[index];\n let content = this.current.collection.selectTemplate(item);\n if (content !== null) this.replaceText(content, originalEvent, item);\n }\n\n replaceText(content, originalEvent, item) {\n this.range.replaceTriggerText(content, true, true, originalEvent, item);\n }\n\n _append(collection, newValues, replace) {\n if (typeof collection.values === \"function\") {\n throw new Error(\"Unable to append to values, as it is a function.\");\n } else if (!replace) {\n collection.values = collection.values.concat(newValues);\n } else {\n collection.values = newValues;\n }\n }\n\n append(collectionIndex, newValues, replace) {\n let index = parseInt(collectionIndex);\n if (typeof index !== \"number\")\n throw new Error(\"please provide an index for the collection to update.\");\n\n let collection = this.collection[index];\n\n this._append(collection, newValues, replace);\n }\n\n appendCurrent(newValues, replace) {\n if (this.isActive) {\n this._append(this.current.collection, newValues, replace);\n } else {\n throw new Error(\n \"No active state. Please use append instead and pass an index.\"\n );\n }\n }\n\n detach(el) {\n if (!el) {\n throw new Error(\"[Tribute] Must pass in a DOM node or NodeList.\");\n }\n\n // Check if it is a jQuery collection\n if (typeof jQuery !== \"undefined\" && el instanceof jQuery) {\n el = el.get();\n }\n\n // Is el an Array/Array-like object?\n if (\n el.constructor === NodeList ||\n el.constructor === HTMLCollection ||\n el.constructor === Array\n ) {\n let length = el.length;\n for (var i = 0; i < length; ++i) {\n this._detach(el[i]);\n }\n } else {\n this._detach(el);\n }\n }\n\n _detach(el) {\n this.events.unbind(el);\n if (el.tributeMenu) {\n this.menuEvents.unbind(el.tributeMenu);\n }\n\n setTimeout(() => {\n el.removeAttribute(\"data-tribute\");\n this.isActive = false;\n if (el.tributeMenu) {\n el.tributeMenu.remove();\n }\n });\n }\n}\n\n/**\n * Tribute.js\n * Native ES6 JavaScript @mention Plugin\n **/\n\nexport default Tribute;\n","import '../assets/NcProgressBar-BAPOXMAL.css';\nimport { defineComponent, useCssVars, computed, createElementBlock, openBlock, normalizeClass, createElementVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = [\"aria-valuenow\"];\nconst _hoisted_2 = [\"height\", \"width\"];\nconst _hoisted_3 = [\"stroke-dasharray\", \"stroke-dashoffset\", \"stroke-width\", \"r\", \"cx\", \"cy\"];\nconst _hoisted_4 = [\"stroke-dasharray\", \"stroke-dashoffset\", \"stroke-width\", \"r\", \"cx\", \"cy\"];\nconst _hoisted_5 = [\"value\"];\nconst gridBaseline = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue(\"--default-grid-baseline\"));\nconst clickableArea = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue(\"--default-clickable-area\"));\nconst clickableAreaSmall = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue(\"--clickable-area-small\"));\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcProgressBar\",\n props: {\n value: { default: 0 },\n size: { default: \"small\" },\n error: { type: Boolean },\n type: { default: \"linear\" },\n color: { default: \"var(--color-primary-element)\" }\n },\n setup(__props) {\n useCssVars((_ctx) => ({\n \"0a7905e8\": _ctx.color,\n \"d7eb5974\": heightPx.value\n }));\n const props = __props;\n const normalizedProgress = computed(() => Math.max(0, Math.min(100, props.value)) / 100);\n const height = computed(() => {\n if (typeof props.size === \"number\") {\n return Math.round(props.size);\n }\n if (props.type === \"circular\") {\n if (props.size === \"medium\") {\n return clickableArea;\n } else {\n return clickableAreaSmall;\n }\n }\n if (props.size === \"medium\") {\n return 1.5 * gridBaseline;\n }\n return gridBaseline;\n });\n const heightPx = computed(() => `${height.value}px`);\n const strokeWidth = computed(() => Math.max(gridBaseline, height.value / clickableArea * gridBaseline));\n const circleCenterPosition = computed(() => height.value / 2);\n const circleRadius = computed(() => height.value / 2 - strokeWidth.value);\n const circumference = computed(() => circleRadius.value * 2 * Math.PI);\n return (_ctx, _cache) => {\n return _ctx.type === \"circular\" ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n role: \"progressbar\",\n \"aria-valuenow\": _ctx.value,\n class: normalizeClass([{ \"progress-bar--error\": _ctx.error }, \"progress-bar progress-bar--circular\"])\n }, [\n (openBlock(), createElementBlock(\"svg\", {\n height: height.value,\n width: height.value\n }, [\n createElementVNode(\"circle\", {\n stroke: \"currentColor\",\n fill: \"transparent\",\n \"stroke-dasharray\": `${normalizedProgress.value * circumference.value} ${(1 - normalizedProgress.value) * circumference.value}`,\n \"stroke-dashoffset\": 0.25 * circumference.value,\n \"stroke-width\": strokeWidth.value,\n r: circleRadius.value,\n cx: circleCenterPosition.value,\n cy: circleCenterPosition.value\n }, null, 8, _hoisted_3),\n createElementVNode(\"circle\", {\n stroke: \"var(--color-background-darker)\",\n fill: \"transparent\",\n \"stroke-dasharray\": `${(1 - normalizedProgress.value) * circumference.value} ${normalizedProgress.value * circumference.value}`,\n \"stroke-dashoffset\": (0.25 - normalizedProgress.value) * circumference.value,\n \"stroke-width\": strokeWidth.value,\n r: circleRadius.value,\n cx: circleCenterPosition.value,\n cy: circleCenterPosition.value\n }, null, 8, _hoisted_4)\n ], 8, _hoisted_2))\n ], 10, _hoisted_1)) : (openBlock(), createElementBlock(\"progress\", {\n key: 1,\n class: normalizeClass([\"progress-bar progress-bar--linear vue\", { \"progress-bar--error\": _ctx.error }]),\n value: _ctx.value,\n max: \"100\"\n }, null, 10, _hoisted_5));\n };\n }\n});\nconst NcProgressBar = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-38ba4aa1\"]]);\nexport {\n NcProgressBar as N\n};\n//# sourceMappingURL=NcProgressBar-DDMAo4h-.mjs.map\n","import '../assets/NcRelatedResourcesPanel-DYB-wrU0.css';\nimport axios from \"@nextcloud/axios\";\nimport { generateOcsUrl } from \"@nextcloud/router\";\nimport { r as register, z as t38, a as t, A as t41, B as t9 } from \"./_l10n-DrTiip5c.mjs\";\nimport { N as NcButton } from \"./NcButton-Dc8V4Urj.mjs\";\nimport { g as getRoute } from \"./autolink-U5pBzLgI.mjs\";\nimport { resolveComponent, createElementBlock, openBlock, createVNode, withCtx, createTextVNode, toDisplayString, createElementVNode, mergeProps, createCommentVNode, Fragment, renderList, createBlock } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport { C as ChevronDown } from \"./ChevronDown-FiGpp0KT.mjs\";\nimport { C as ChevronUp } from \"./ChevronUp-DPXFp1ss.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-BvLanNaW.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nregister(t38);\nconst _sfc_main$4 = {\n name: \"NcResource\",\n components: {\n NcButton\n },\n /* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n props: {\n icon: {\n type: String,\n required: true\n },\n name: {\n type: String,\n required: true\n },\n url: {\n type: String,\n required: true\n }\n },\n data() {\n return {\n labelTranslated: t('Open link to \"{resourceName}\"', { resourceName: this.name })\n };\n },\n computed: {\n route() {\n return getRoute(this.$router, this.url);\n }\n },\n methods: {\n t\n }\n};\nconst _hoisted_1$4 = { class: \"resource\" };\nconst _hoisted_2$4 = { class: \"resource__icon\" };\nconst _hoisted_3$3 = [\"src\"];\nfunction _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcButton = resolveComponent(\"NcButton\");\n return openBlock(), createElementBlock(\"li\", _hoisted_1$4, [\n createVNode(_component_NcButton, {\n class: \"resource__button\",\n \"aria-label\": $data.labelTranslated,\n to: $options.route,\n href: $options.route ? null : $props.url,\n variant: \"tertiary\"\n }, {\n icon: withCtx(() => [\n createElementVNode(\"div\", _hoisted_2$4, [\n createElementVNode(\"img\", { src: $props.icon }, null, 8, _hoisted_3$3)\n ])\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString($props.name), 1)\n ]),\n _: 1\n }, 8, [\"aria-label\", \"to\", \"href\"])\n ]);\n}\nconst NcResource = /* @__PURE__ */ _export_sfc(_sfc_main$4, [[\"render\", _sfc_render$4], [\"__scopeId\", \"data-v-8db55138\"]]);\nconst _sfc_main$3 = {\n name: \"AccountGroupIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$3 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$3 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$2 = { d: \"M12,5.5A3.5,3.5 0 0,1 15.5,9A3.5,3.5 0 0,1 12,12.5A3.5,3.5 0 0,1 8.5,9A3.5,3.5 0 0,1 12,5.5M5,8C5.56,8 6.08,8.15 6.53,8.42C6.38,9.85 6.8,11.27 7.66,12.38C7.16,13.34 6.16,14 5,14A3,3 0 0,1 2,11A3,3 0 0,1 5,8M19,8A3,3 0 0,1 22,11A3,3 0 0,1 19,14C17.84,14 16.84,13.34 16.34,12.38C17.2,11.27 17.62,9.85 17.47,8.42C17.92,8.15 18.44,8 19,8M5.5,18.25C5.5,16.18 8.41,14.5 12,14.5C15.59,14.5 18.5,16.18 18.5,18.25V20H5.5V18.25M0,20V18.5C0,17.11 1.89,15.94 4.45,15.6C3.86,16.28 3.5,17.22 3.5,18.25V20H0M24,20H20.5V18.25C20.5,17.22 20.14,16.28 19.55,15.6C22.11,15.94 24,17.11 24,18.5V20Z\" };\nconst _hoisted_4$2 = { key: 0 };\nfunction _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon account-group-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$2, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$2, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$3))\n ], 16, _hoisted_1$3);\n}\nconst AccountGroup = /* @__PURE__ */ _export_sfc(_sfc_main$3, [[\"render\", _sfc_render$3]]);\nconst _sfc_main$2 = {\n name: \"OpenInNewIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$2 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$1 = { d: \"M14,3V5H17.59L7.76,14.83L9.17,16.24L19,6.41V10H21V3M19,19H5V5H12V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V12H19V19Z\" };\nconst _hoisted_4$1 = { key: 0 };\nfunction _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon open-in-new-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$1, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$1, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$2))\n ], 16, _hoisted_1$2);\n}\nconst OpenInNew = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"render\", _sfc_render$2]]);\nregister(t41);\nconst teamResourceProviders = getCapabilities()?.circles?.teamResourceProviders ?? [];\nconst _sfc_main$1 = {\n name: \"NcTeamResources\",\n components: {\n AccountGroup,\n ChevronDown,\n ChevronUp,\n OpenInNew,\n NcButton,\n NcIconSvgWrapper\n },\n /* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n props: {\n providerId: {\n type: String,\n default: null\n },\n itemId: {\n type: [String, Number],\n default: null\n }\n },\n data() {\n return {\n appEnabled: OC?.appswebroots?.circles !== void 0 && (OC.config.version.split(\".\")[0] ?? 0) >= 29,\n loading: false,\n teamResources: null,\n teamOpen: []\n };\n },\n computed: {\n isVisible() {\n return !this.loading && this.teamResources?.length > 0;\n },\n teamProviders() {\n return (teamId) => {\n const team = this.teamResources.find((t2) => t2.teamId === teamId);\n return team.resources?.reduce((acc, resource) => {\n if (resource.provider.id === this.providerId && resource.id === String(this.itemId)) {\n return acc;\n }\n if (!acc[resource.provider.id]) {\n acc[resource.provider.id] = resource.provider;\n acc[resource.provider.id].resources = [];\n }\n if (resource.provider.id === this.providerId && resource.id === String(this.itemId)) {\n return acc;\n }\n acc[resource.provider.id].resources.push(resource);\n return acc;\n }, {});\n };\n },\n open() {\n return (teamId) => {\n return this.teamOpen.indexOf(teamId) !== -1;\n };\n }\n },\n watch: {\n providerId() {\n this.fetchTeamResources();\n },\n itemId() {\n this.fetchTeamResources();\n }\n },\n created() {\n this.fetchTeamResources();\n },\n methods: {\n t,\n async fetchTeamResources() {\n if (!teamResourceProviders.includes(this.providerId)) {\n return;\n }\n try {\n this.loading = true;\n const response = await axios.get(generateOcsUrl(`/teams/resources/${this.providerId}/${this.itemId}`));\n this.teamResources = response.data.ocs.data.teams;\n this.teamOpen = [this.teamResources[0]?.teamId];\n } catch (error) {\n this.teamResources = null;\n logger.error(\"[NcTeamResources] Failed to fetch resources\", { error });\n } finally {\n this.loading = false;\n }\n },\n toggleOpen(teamId, open) {\n if (open) {\n this.teamOpen.push(teamId);\n } else {\n this.teamOpen.splice(this.teamOpen.indexOf(teamId), 1);\n }\n }\n }\n};\nconst _hoisted_1$1 = {\n key: 0,\n class: \"team-resources\"\n};\nconst _hoisted_2$1 = { class: \"team-resources__header\" };\nconst _hoisted_3 = [\"open\", \"onToggle\"];\nconst _hoisted_4 = { class: \"related-team__header\" };\nconst _hoisted_5 = { class: \"related-team__name\" };\nconst _hoisted_6 = { key: 0 };\nconst _hoisted_7 = [\"href\"];\nconst _hoisted_8 = {\n key: 0,\n class: \"resource__icon\"\n};\nconst _hoisted_9 = {\n key: 2,\n class: \"resource__icon\"\n};\nconst _hoisted_10 = [\"src\"];\nconst _hoisted_11 = { class: \"resource__name\" };\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_AccountGroup = resolveComponent(\"AccountGroup\");\n const _component_OpenInNew = resolveComponent(\"OpenInNew\");\n const _component_NcButton = resolveComponent(\"NcButton\");\n const _component_ChevronUp = resolveComponent(\"ChevronUp\");\n const _component_ChevronDown = resolveComponent(\"ChevronDown\");\n const _component_NcIconSvgWrapper = resolveComponent(\"NcIconSvgWrapper\");\n return $data.appEnabled && $options.isVisible ? (openBlock(), createElementBlock(\"div\", _hoisted_1$1, [\n createElementVNode(\"h5\", _hoisted_2$1, toDisplayString($options.t(\"Related team resources\")), 1),\n (openBlock(true), createElementBlock(Fragment, null, renderList($data.teamResources, (team) => {\n return openBlock(), createElementBlock(\"details\", {\n key: team.teamId,\n name: \"Team resources\",\n class: \"related-team\",\n open: $options.open(team.teamId),\n onToggle: (event) => $options.toggleOpen(team.teamId, event.target.open)\n }, [\n createElementVNode(\"summary\", _hoisted_4, [\n createElementVNode(\"h5\", _hoisted_5, [\n createVNode(_component_AccountGroup, { size: 20 }),\n createTextVNode(\" \" + toDisplayString(team.displayName), 1)\n ]),\n createVNode(_component_NcButton, {\n \"aria-label\": $options.t(\"View team\"),\n href: team.link,\n title: $options.t(\"View team\"),\n variant: \"tertiary\"\n }, {\n icon: withCtx(() => [\n createVNode(_component_OpenInNew, { size: 20 })\n ]),\n _: 2\n }, 1032, [\"aria-label\", \"href\", \"title\"]),\n $options.open(team.teamId) ? (openBlock(), createBlock(_component_ChevronUp, {\n key: 0,\n size: 20\n })) : (openBlock(), createBlock(_component_ChevronDown, {\n key: 1,\n size: 20\n }))\n ]),\n createElementVNode(\"div\", null, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.teamProviders(team.teamId), (provider) => {\n return openBlock(), createElementBlock(\"div\", {\n key: provider.id,\n class: \"related-team-provider\"\n }, [\n provider.resources.length > 0 ? (openBlock(), createElementBlock(\"h6\", _hoisted_6, toDisplayString(provider.name), 1)) : createCommentVNode(\"\", true),\n createElementVNode(\"ul\", null, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(provider.resources, (resource) => {\n return openBlock(), createElementBlock(\"li\", {\n key: resource.url,\n class: \"related-team-resource\"\n }, [\n createElementVNode(\"a\", {\n href: resource.url,\n class: \"related-team-resource__link\"\n }, [\n resource.iconEmoji ? (openBlock(), createElementBlock(\"span\", _hoisted_8, toDisplayString(resource.iconEmoji), 1)) : resource.iconSvg ? (openBlock(), createBlock(_component_NcIconSvgWrapper, {\n key: 1,\n class: \"resource__icon\",\n svg: resource.iconSvg,\n size: 20\n }, null, 8, [\"svg\"])) : resource.iconURL ? (openBlock(), createElementBlock(\"span\", _hoisted_9, [\n createElementVNode(\"img\", {\n src: resource.iconURL,\n alt: \"\"\n }, null, 8, _hoisted_10)\n ])) : createCommentVNode(\"\", true),\n createElementVNode(\"span\", _hoisted_11, toDisplayString(resource.label), 1)\n ], 8, _hoisted_7)\n ]);\n }), 128))\n ])\n ]);\n }), 128))\n ])\n ], 40, _hoisted_3);\n }), 128))\n ])) : createCommentVNode(\"\", true);\n}\nconst NcTeamResources = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1], [\"__scopeId\", \"data-v-a0203ee5\"]]);\nregister(t9);\nconst _sfc_main = {\n name: \"NcRelatedResourcesPanel\",\n components: {\n NcResource,\n NcTeamResources\n },\n /* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n props: {\n /**\n * The provider id implemented with `\\OCA\\RelatedResources\\IRelatedResourceProvider::getProviderId()`\n */\n providerId: {\n type: String,\n default: null\n },\n /**\n * The item id which uniquely identities the e.g. Calendar event, Deck board, file, Talk room, etc.\n */\n itemId: {\n type: [String, Number],\n default: null\n },\n /**\n * Limits to specific resource type. i.e. any provider id implemented with `\\OCA\\RelatedResources\\IRelatedResourceProvider::getProviderId()`\n */\n resourceType: {\n type: String,\n default: \"\"\n },\n /**\n * Set the maximum number of resources to load\n */\n limit: {\n type: Number,\n default: 0\n },\n /**\n * Only used by the files sidebar\n *\n * File info is passed when registered with `OCA.Sharing.ShareTabSections.registerSection()`\n */\n fileInfo: {\n type: Object,\n default: null\n },\n /**\n * Make the header name dynamic\n */\n header: {\n type: String,\n default: t(\"Related resources\")\n },\n description: {\n type: String,\n default: t(\"Anything shared with the same group of people will show up here\")\n },\n /**\n * If this element is used on a primary element set to true for primary styling.\n */\n primary: {\n type: Boolean,\n default: false\n }\n },\n emits: [\n \"hasError\",\n \"hasResources\"\n ],\n data() {\n return {\n appEnabled: OC?.appswebroots?.related_resources !== void 0,\n loading: false,\n error: null,\n resources: []\n };\n },\n computed: {\n isVisible() {\n if (this.loading) {\n return false;\n }\n return this.error ?? this.resources.length > 0;\n },\n subline() {\n if (this.error) {\n return t(\"Error getting related resources. Please contact your system administrator if you have any questions.\");\n }\n return this.description;\n },\n hasResourceInfo() {\n if (this.providerId !== null && this.itemId !== null) {\n return true;\n }\n if (this.fileInfo !== null) {\n return true;\n }\n return false;\n },\n isFiles() {\n return this.fileInfo?.id !== void 0;\n },\n url() {\n let providerId = null;\n let itemId = null;\n if (this.isFiles) {\n providerId = \"files\";\n itemId = this.fileInfo.id;\n } else {\n providerId = this.providerId;\n itemId = this.itemId;\n }\n return generateOcsUrl(\"/apps/related_resources/related/{providerId}?itemId={itemId}&resourceType={resourceType}&limit={limit}&format=json\", {\n providerId,\n itemId,\n resourceType: this.resourceType,\n limit: this.limit\n });\n }\n },\n watch: {\n providerId() {\n this.fetchRelatedResources();\n },\n itemId() {\n this.fetchRelatedResources();\n },\n fileInfo() {\n this.fetchRelatedResources();\n },\n error(error) {\n this.$emit(\"hasError\", Boolean(error));\n },\n resources(resources) {\n this.$emit(\"hasResources\", resources.length > 0);\n }\n },\n created() {\n this.fetchRelatedResources();\n },\n methods: {\n t,\n async fetchRelatedResources() {\n if (!this.appEnabled || !this.hasResourceInfo) {\n return;\n }\n this.loading = true;\n this.error = null;\n this.resources = [];\n try {\n const response = await axios.get(this.url);\n this.resources = response.data.ocs?.data;\n } catch (error) {\n this.error = error;\n logger.error(\"[NcRelatedResourcesPanel] Failed to fetch resources\", { error });\n } finally {\n this.loading = false;\n }\n }\n }\n};\nconst _hoisted_1 = {\n key: 0,\n class: \"related-resources\"\n};\nconst _hoisted_2 = { class: \"related-resources__header\" };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcTeamResources = resolveComponent(\"NcTeamResources\");\n const _component_NcResource = resolveComponent(\"NcResource\");\n return openBlock(), createElementBlock(\"div\", null, [\n createVNode(_component_NcTeamResources, {\n \"provider-id\": $props.providerId,\n \"item-id\": $props.itemId\n }, null, 8, [\"provider-id\", \"item-id\"]),\n $data.appEnabled && $options.isVisible ? (openBlock(), createElementBlock(\"div\", _hoisted_1, [\n createElementVNode(\"div\", _hoisted_2, [\n createElementVNode(\"h5\", null, toDisplayString($props.header), 1),\n createElementVNode(\"p\", null, toDisplayString($options.subline), 1)\n ]),\n (openBlock(true), createElementBlock(Fragment, null, renderList($data.resources, (resource) => {\n return openBlock(), createBlock(_component_NcResource, {\n key: resource.itemId,\n class: \"related-resources__entry\",\n icon: resource.icon,\n name: resource.title,\n url: resource.url\n }, null, 8, [\"icon\", \"name\", \"url\"]);\n }), 128))\n ])) : createCommentVNode(\"\", true)\n ]);\n}\nconst NcRelatedResourcesPanel = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-551fe92c\"]]);\nexport {\n NcRelatedResourcesPanel as N\n};\n//# sourceMappingURL=NcRelatedResourcesPanel-BVGAmIja.mjs.map\n","import '../assets/NcRichContenteditable-BuaWt3Xn.css';\nimport debounce from \"debounce\";\nimport Tribute from \"tributejs/dist/tribute.esm.js\";\nimport { useIsDarkTheme } from \"../composables/useIsDarkTheme/index.mjs\";\nimport { g as getAvatarUrl } from \"./NcMentionBubble.vue_vue_type_style_index_0_scoped_45238efd_lang-D6LzDiYf.mjs\";\nimport { N as NcUserStatusIcon } from \"./NcUserStatusIcon-CGEf7fej.mjs\";\nimport { createElementBlock, openBlock, normalizeClass, createElementVNode, normalizeStyle, toDisplayString, createApp, resolveComponent, createBlock, createCommentVNode, mergeProps, withModifiers, withKeys } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { e as emojiSearch, a as emojiAddRecent } from \"./emoji-BY_D0V5K.mjs\";\nimport { r as register, k as t37, p as t34, a as t, q as n } from \"./_l10n-DrTiip5c.mjs\";\nimport escapeHTML from \"escape-html\";\nimport stripTags from \"striptags\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport \"@nextcloud/auth\";\nimport \"@nextcloud/axios\";\nimport \"@nextcloud/router\";\nimport \"@nextcloud/sharing/public\";\nimport \"@vueuse/core\";\nimport \"vue-router\";\nimport \"./legacy-DcjXBL_t.mjs\";\nimport \"./NcButton-Dc8V4Urj.mjs\";\nimport { g as getLinkWithPicker, s as searchProvider } from \"./referencePickerModal-DmD3-xYB.mjs\";\nimport \"./customPickerElements-4pQTZUnk.mjs\";\nimport \"./autolink-U5pBzLgI.mjs\";\nimport \"./NcRichText-CBMtJzE_.mjs\";\nimport \"./NcEmptyContent-B8-90BSI.mjs\";\nimport \"./NcHighlight.vue_vue_type_script_lang-DnWQDM_2.mjs\";\nimport \"./NcSelect-Czzsi3P_.mjs\";\nimport \"./NcLoadingIcon-b_ajZ_nQ.mjs\";\nimport \"./NcTextField.vue_vue_type_script_setup_true_lang-D1y_LfGJ.mjs\";\nimport \"dompurify\";\nimport \"./NcIconSvgWrapper-BvLanNaW.mjs\";\nimport \"./NcInputField-Bwsh2aHY.mjs\";\nimport \"@nextcloud/event-bus\";\nimport \"focus-trap\";\nimport \"./NcActions-DWmvh7-Y.mjs\";\nimport \"../composables/useFormatDateTime/index.mjs\";\nimport \"../composables/useHotKey/index.mjs\";\nimport \"../composables/useIsFullscreen/index.mjs\";\nimport \"../composables/useIsMobile/index.mjs\";\nimport \"./NcModal-MC_HktJd.mjs\";\nimport \"./rtl-v0UOPAM7.mjs\";\nconst _sfc_main$2 = {\n name: \"NcMentionBubble\",\n /* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n props: {\n /**\n * Id of the bubble\n */\n id: {\n type: String,\n required: true\n },\n /**\n * The main text\n */\n label: {\n type: String,\n required: false,\n default: null\n },\n /**\n * Icon to be applied\n */\n icon: {\n type: String,\n required: true\n },\n /**\n * URL of the icon\n */\n iconUrl: {\n type: [String, null],\n default: null\n },\n source: {\n type: String,\n required: true\n },\n /**\n * Is the bubble shown as primary\n */\n primary: {\n type: Boolean,\n default: false\n }\n },\n setup() {\n const isDarkTheme = useIsDarkTheme();\n return {\n isDarkTheme\n };\n },\n computed: {\n avatarUrl() {\n if (this.iconUrl) {\n return this.iconUrl;\n }\n return this.id && this.source === \"users\" ? getAvatarUrl(this.id, { isDarkTheme: this.isDarkTheme }) : null;\n },\n mentionText() {\n return !this.id.includes(\" \") && !this.id.includes(\"/\") ? `@${this.id}` : `@\"${this.id}\"`;\n }\n }\n};\nconst _hoisted_1$2 = { class: \"mention-bubble__wrapper\" };\nconst _hoisted_2$2 = { class: \"mention-bubble__content\" };\nconst _hoisted_3$1 = [\"title\"];\nconst _hoisted_4$1 = {\n role: \"none\",\n class: \"mention-bubble__select\"\n};\nfunction _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", {\n class: normalizeClass([\"mention-bubble\", { \"mention-bubble--primary\": $props.primary }]),\n contenteditable: \"false\"\n }, [\n createElementVNode(\"span\", _hoisted_1$2, [\n createElementVNode(\"span\", _hoisted_2$2, [\n createElementVNode(\"span\", {\n class: normalizeClass([[$props.icon, `mention-bubble__icon--${$options.avatarUrl ? \"with-avatar\" : \"\"}`], \"mention-bubble__icon\"]),\n style: normalizeStyle($options.avatarUrl ? { backgroundImage: `url(${$options.avatarUrl})` } : null)\n }, null, 6),\n createElementVNode(\"span\", {\n role: \"heading\",\n class: \"mention-bubble__title\",\n title: $props.label\n }, null, 8, _hoisted_3$1)\n ]),\n createElementVNode(\"span\", _hoisted_4$1, toDisplayString($options.mentionText), 1)\n ])\n ], 2);\n}\nconst NcMentionBubble = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"render\", _sfc_render$2], [\"__scopeId\", \"data-v-45238efd\"]]);\nconst MENTION_START = /(?=[a-z0-9_\\-@.'])\\B/.source;\nconst MENTION_SIMPLE = /(@[a-z0-9_\\-@.']+)/.source;\nconst MENTION_GUEST = /@"(?:guest|email){1}\\/[a-f0-9]+"/.source;\nconst MENTION_PREFIXED = /@"(?:federated_)?(?:group|team|user){1}\\/[a-z0-9_\\-@.' /:]+"/.source;\nconst MENTION_WITH_SPACE = /@"[a-z0-9_\\-@.' ]+"/.source;\nconst MENTION_COMPLEX = `(${MENTION_GUEST}|${MENTION_PREFIXED}|${MENTION_WITH_SPACE})`;\nconst USERID_REGEX = new RegExp(`${MENTION_START}${MENTION_SIMPLE}`, \"gi\");\nconst USERID_REGEX_WITH_SPACE = new RegExp(`${MENTION_START}${MENTION_COMPLEX}`, \"gi\");\nconst richEditor = {\n props: {\n userData: {\n type: Object,\n default: () => ({})\n }\n },\n methods: {\n /**\n * Convert the value string to html for the inner content\n *\n * @param {string} value the content without html\n * @return {string} rendered html\n */\n renderContent(value) {\n const sanitizedValue = escapeHTML(value);\n const splitValue = sanitizedValue.split(USERID_REGEX).map((part) => part.split(USERID_REGEX_WITH_SPACE)).flat();\n return splitValue.map((part) => {\n if (!part.startsWith(\"@\")) {\n return part;\n }\n const id = part.slice(1).replace(/"/gi, \"\");\n return this.genSelectTemplate(id);\n }).join(\"\").replace(/\\n/gmi, \"
    \").replace(/&/gmi, \"&\");\n },\n /**\n * Convert the innerHtml content to a string with mentions as text\n *\n * @param {string} content the content without html\n * @return {string}\n */\n parseContent(content) {\n let text = content;\n text = text.replace(/
    /gmi, \"\\n\");\n text = text.replace(/ /gmi, \" \");\n text = text.replace(/&/gmi, \"&\");\n text = text.replace(/<\\/div>/gmi, \"\\n\");\n text = stripTags(text, \"
    \");\n text = stripTags(text);\n return text;\n },\n /**\n * Generate an autocompletion popup entry template\n *\n * @param {string} value the value to match against the userData\n * @return {string}\n */\n genSelectTemplate(value) {\n if (typeof value === \"undefined\") {\n return `${this.autocompleteTribute.current.collection.trigger}${this.autocompleteTribute.current.mentionText}`;\n }\n const data = this.userData[value];\n if (!data) {\n return [\" \", \"/\", \":\"].every((char) => !value.includes(char)) ? `@${value}` : `@\"${value}\"`;\n }\n return this.renderComponentHtml(data, NcMentionBubble).replace(/[\\n\\t]/gmi, \"\").replace(/>\\s+<\");\n },\n /**\n * Render a component and return its html content\n *\n * @param {object} props the props to pass to the component\n * @param {object} component the component to render\n * @return {string} the rendered html\n */\n renderComponentHtml(props, component) {\n const Item = createApp(component, {\n ...props\n });\n const mount = document.createElement(\"div\");\n mount.style.display = \"none\";\n document.body.appendChild(mount);\n Item.mount(mount);\n const renderedHtml = mount.innerHTML;\n Item.unmount();\n mount.remove();\n return renderedHtml;\n }\n }\n};\nconst _sfc_main$1 = {\n name: \"NcAutoCompleteResult\",\n components: {\n NcUserStatusIcon\n },\n /* eslint vue/require-prop-comment: warn -- TODO: Add a proper doc block about what this props do */\n props: {\n /**\n * The label text\n */\n label: {\n type: String,\n required: false,\n default: null\n },\n /**\n * The secondary line of text if any\n */\n subline: {\n type: String,\n default: null\n },\n /**\n * Unique id\n */\n id: {\n type: String,\n default: null\n },\n /**\n * The icon class\n */\n icon: {\n type: String,\n required: true\n },\n /**\n * Icon as external URL\n */\n iconUrl: {\n type: String,\n default: null\n },\n source: {\n type: String,\n required: true\n },\n status: {\n type: [Object, Array],\n default: () => ({})\n }\n },\n setup() {\n const isDarkTheme = useIsDarkTheme();\n return {\n isDarkTheme\n };\n },\n computed: {\n avatarUrl() {\n if (this.iconUrl) {\n return this.iconUrl;\n }\n return this.id && this.source === \"users\" ? getAvatarUrl(this.id, { isDarkTheme: this.isDarkTheme }) : null;\n }\n }\n};\nconst _hoisted_1$1 = { class: \"autocomplete-result\" };\nconst _hoisted_2$1 = {\n key: 0,\n class: \"autocomplete-result__status autocomplete-result__status--icon\"\n};\nconst _hoisted_3 = { class: \"autocomplete-result__content\" };\nconst _hoisted_4 = [\"title\"];\nconst _hoisted_5 = {\n key: 0,\n class: \"autocomplete-result__subline\"\n};\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcUserStatusIcon = resolveComponent(\"NcUserStatusIcon\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$1, [\n createElementVNode(\"div\", {\n class: normalizeClass([[$props.icon, `autocomplete-result__icon--${$options.avatarUrl ? \"with-avatar\" : \"\"}`], \"autocomplete-result__icon\"]),\n style: normalizeStyle($options.avatarUrl ? { backgroundImage: `url(${$options.avatarUrl})` } : null)\n }, [\n $props.status.icon ? (openBlock(), createElementBlock(\"span\", _hoisted_2$1, toDisplayString($props.status && $props.status.icon || \"\"), 1)) : $props.status.status && $props.status.status !== \"offline\" ? (openBlock(), createBlock(_component_NcUserStatusIcon, {\n key: 1,\n class: \"autocomplete-result__status\",\n status: $props.status.status\n }, null, 8, [\"status\"])) : createCommentVNode(\"\", true)\n ], 6),\n createElementVNode(\"span\", _hoisted_3, [\n createElementVNode(\"span\", {\n class: \"autocomplete-result__title\",\n title: $props.label\n }, toDisplayString($props.label), 9, _hoisted_4),\n $props.subline ? (openBlock(), createElementBlock(\"span\", _hoisted_5, toDisplayString($props.subline), 1)) : createCommentVNode(\"\", true)\n ])\n ]);\n}\nconst NcAutoCompleteResult = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1], [\"__scopeId\", \"data-v-ca83b679\"]]);\nregister(t34, t37);\nconst style1 = {\n \"material-design-icon\": \"_material-design-icon_1xkrb_12\",\n \"tribute-container\": \"_tribute-container_1xkrb_20\",\n \"tribute-container__item\": \"_tribute-container__item_1xkrb_41\",\n \"tribute-container--focus-visible\": \"_tribute-container--focus-visible_1xkrb_55\",\n \"tribute-container-autocomplete\": \"_tribute-container-autocomplete_1xkrb_59\",\n \"tribute-container-emoji\": \"_tribute-container-emoji_1xkrb_65\",\n \"tribute-container-link\": \"_tribute-container-link_1xkrb_66\",\n \"tribute-item\": \"_tribute-item_1xkrb_71\",\n \"tribute-item__title\": \"_tribute-item__title_1xkrb_86\",\n \"tribute-item__icon\": \"_tribute-item__icon_1xkrb_91\"\n};\nconst smilesCharacters = [\"d\", \"D\", \"p\", \"P\", \"s\", \"S\", \"x\", \"X\", \")\", \"(\", \"|\", \"/\"];\nconst textSmiles = [];\nsmilesCharacters.forEach((char) => {\n textSmiles.push(\":\" + char);\n textSmiles.push(\":-\" + char);\n});\nconst _sfc_main = {\n name: \"NcRichContenteditable\",\n mixins: [richEditor],\n inheritAttrs: false,\n props: {\n /**\n * The ID attribute of the content editable\n */\n id: {\n type: String,\n default: () => createElementId()\n },\n /**\n * Visual label of the contenteditable\n */\n label: {\n type: String,\n default: \"\"\n },\n /**\n * The text content\n */\n modelValue: {\n type: String,\n required: true\n },\n /**\n * Placeholder to be shown if empty\n */\n placeholder: {\n type: String,\n default: t(\"Write a message …\")\n },\n /**\n * Auto complete function\n */\n autoComplete: {\n type: Function,\n default: () => []\n },\n /**\n * The containing element for the menu popover\n */\n menuContainer: {\n type: Element,\n default: () => document.body\n },\n /**\n * Make the contenteditable looks like a textarea or not.\n * Default looks like a single-line input.\n * This also handle the default enter/shift+enter behaviour.\n * if multiline, enter = newline; otherwise enter = submit\n * shift+enter always add a new line. ctrl+enter always submits\n */\n multiline: {\n type: Boolean,\n default: false\n },\n /**\n * Is the content editable ?\n */\n contenteditable: {\n type: Boolean,\n default: true\n },\n /**\n * Disable the editing and show specific disabled design\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * Max allowed length\n */\n maxlength: {\n type: Number,\n default: null\n },\n /**\n * Enable or disable emoji autocompletion\n */\n emojiAutocomplete: {\n type: Boolean,\n default: true\n },\n /**\n * Enable or disable link autocompletion\n */\n linkAutocomplete: {\n type: Boolean,\n default: true\n },\n /**\n * CSS class to apply to the root element.\n */\n class: {\n type: [String, Array, Object],\n default: \"\"\n }\n },\n emits: [\n \"paste\",\n \"update:modelValue\",\n \"smartPickerSubmit\",\n \"submit\"\n ],\n setup() {\n const segmenter = new Intl.Segmenter();\n return {\n // Constants\n labelId: createElementId(),\n tributeId: createElementId(),\n segmenter,\n /**\n * Non-reactive property to store Tribute instance\n *\n * @type {import('tributejs').default | null}\n */\n tribute: null,\n tributeStyleMutationObserver: null\n };\n },\n data() {\n return {\n // Represent the raw untrimmed text of the contenteditable\n // serves no other purpose than to check whether the\n // content is empty or not\n localValue: this.modelValue,\n // Is in text composition session in IME\n isComposing: false,\n // Tribute autocomplete\n isAutocompleteOpen: false,\n autocompleteActiveId: void 0,\n isTributeIntegrationDone: false\n };\n },\n computed: {\n /**\n * Is the current trimmed value empty?\n *\n * @return {boolean}\n */\n isEmptyValue() {\n return !this.localValue || this.localValue.trim() === \"\";\n },\n /**\n * Is the current value over maxlength?\n *\n * @return {boolean}\n */\n isOverMaxlength() {\n if (this.isEmptyValue || !this.maxlength) {\n return false;\n }\n const length = [...this.segmenter.segment(this.localValue)].length;\n return length > this.maxlength;\n },\n /**\n * Tooltip to show if characters count is over limit\n *\n * @return {string}\n */\n tooltipString() {\n if (!this.isOverMaxlength) {\n return null;\n }\n return n(\"Message limit of %n character reached\", \"Message limit of %n characters reached\", this.maxlength);\n },\n /**\n * Edit is only allowed when contenteditableis true and disabled is false\n *\n * @return {boolean}\n */\n canEdit() {\n return this.contenteditable && !this.disabled;\n },\n /**\n * Compute debounce function for the autocomplete function\n */\n debouncedAutoComplete() {\n return debounce(async (search, callback) => {\n this.autoComplete(search, callback);\n }, 100);\n }\n },\n watch: {\n /**\n * If the parent value change, we compare the plain text rendering\n * If it's different, we render everything and update the main content\n */\n modelValue() {\n const html = this.$refs.contenteditable.innerHTML;\n if (this.modelValue.trim() !== this.parseContent(html).trim()) {\n this.updateContent(this.modelValue);\n }\n }\n },\n mounted() {\n this.initializeTribute();\n this.updateContent(this.modelValue);\n this.$refs.contenteditable.contentEditable = this.canEdit;\n },\n beforeUnmount() {\n if (this.tribute) {\n this.tribute.detach(this.$refs.contenteditable);\n }\n if (this.tributeStyleMutationObserver) {\n this.tributeStyleMutationObserver.disconnect();\n }\n },\n methods: {\n /**\n * Focus the richContenteditable\n *\n * @public\n */\n focus() {\n this.$refs.contenteditable.focus();\n },\n initializeTribute() {\n const renderMenuItem = (content) => `
    ${content}
    `;\n const tributesCollection = [];\n tributesCollection.push({\n fillAttr: \"id\",\n // Search against id and label (display name) (fallback to title for v8.0.0..8.6.1 compatibility)\n lookup: (result) => `${result.id} ${result.label ?? result.title}`,\n requireLeadingSpace: true,\n // Popup mention autocompletion templates\n menuItemTemplate: (item) => renderMenuItem(this.renderComponentHtml(item.original, NcAutoCompleteResult)),\n // Hide if no results\n noMatchTemplate: () => '',\n // Inner display of mentions\n selectTemplate: (item) => this.genSelectTemplate(item?.original?.id),\n // Autocompletion results\n values: this.debouncedAutoComplete,\n // Class added to the menu container\n containerClass: `${this.$style[\"tribute-container\"]} ${this.$style[\"tribute-container-autocomplete\"]}`,\n // Class added to each list item\n itemClass: this.$style[\"tribute-container__item\"]\n });\n if (this.emojiAutocomplete) {\n tributesCollection.push({\n trigger: \":\",\n // Don't use the tribute search function at all\n // We pass search results as values (see below)\n lookup: (result, query) => query,\n requireLeadingSpace: true,\n // Popup mention autocompletion templates\n menuItemTemplate: (item) => {\n if (textSmiles.includes(item.original)) {\n return item.original;\n }\n return renderMenuItem(`${item.original.native} :${item.original.short_name}`);\n },\n // Hide if no results\n noMatchTemplate: () => t(\"No emoji found\"),\n // Display raw emoji along with its name\n selectTemplate: (item) => {\n if (textSmiles.includes(item.original)) {\n return item.original;\n }\n emojiAddRecent(item.original);\n return item.original.native;\n },\n // Pass the search results as values\n values: (text, cb) => {\n const emojiResults = emojiSearch(text);\n if (textSmiles.includes(\":\" + text)) {\n emojiResults.unshift(\":\" + text);\n }\n cb(emojiResults);\n },\n // Class added to the menu container\n containerClass: `${this.$style[\"tribute-container\"]} ${this.$style[\"tribute-container-emoji\"]}`,\n // Class added to each list item\n itemClass: this.$style[\"tribute-container__item\"]\n });\n }\n if (this.linkAutocomplete) {\n tributesCollection.push({\n trigger: \"/\",\n // Don't use the tribute search function at all\n // We pass search results as values (see below)\n lookup: (result, query) => query,\n requireLeadingSpace: true,\n // Popup mention autocompletion templates\n menuItemTemplate: (item) => renderMenuItem(` ${item.original.title}`),\n // Hide if no results\n noMatchTemplate: () => t(\"No link provider found\"),\n selectTemplate: this.getLink,\n // Pass the search results as values\n values: (text, cb) => cb(searchProvider(text)),\n // Class added to the menu container\n containerClass: `${this.$style[\"tribute-container\"]} ${this.$style[\"tribute-container-link\"]}`,\n // Class added to each list item\n itemClass: this.$style[\"tribute-container__item\"]\n });\n }\n this.tribute = new Tribute({\n collection: tributesCollection,\n // FIXME: tributejs doesn't support allowSpaces as a collection option, only as a global one\n // Requires to fork a library to allow spaces only in the middle of mentions ('@' trigger)\n allowSpaces: false,\n // Where to inject the menu popup\n menuContainer: this.menuContainer\n });\n this.tribute.attach(this.$refs.contenteditable);\n },\n getLink(item) {\n getLinkWithPicker(item.original.id).then((result) => {\n const tmpElem = document.getElementById(\"tmp-smart-picker-result-node\");\n const eventData = {\n result,\n insertText: true\n };\n this.$emit(\"smartPickerSubmit\", eventData);\n if (eventData.insertText) {\n const newElem = document.createTextNode(result);\n tmpElem.replaceWith(newElem);\n this.setCursorAfter(newElem);\n this.updateValue(this.$refs.contenteditable.innerHTML);\n } else {\n tmpElem.remove();\n }\n }).catch((error) => {\n logger.debug(\"[NcRichContenteditable] Smart picker promise rejected:\", { error });\n const tmpElem = document.getElementById(\"tmp-smart-picker-result-node\");\n this.setCursorAfter(tmpElem);\n tmpElem.remove();\n });\n return '';\n },\n setCursorAfter(element) {\n const range = document.createRange();\n range.setEndAfter(element);\n range.collapse();\n const selection = window.getSelection();\n selection.removeAllRanges();\n selection.addRange(range);\n },\n moveCursorToEnd() {\n if (!document.createRange) {\n return;\n }\n if (window.getSelection().rangeCount > 0 && this.$refs.contenteditable.contains(window.getSelection().getRangeAt(0).commonAncestorContainer)) {\n return;\n }\n const range = document.createRange();\n range.selectNodeContents(this.$refs.contenteditable);\n range.collapse(false);\n const selection = window.getSelection();\n selection.removeAllRanges();\n selection.addRange(range);\n },\n /**\n * Re-emit the input event to the parent\n *\n * @param {Event} event the input event\n */\n onInput(event) {\n this.updateValue(event.target.innerHTML);\n },\n /**\n * When pasting, sanitize the content, extract text\n * and render it again\n *\n * @param {Event} event the paste event\n * @fires Event paste the original paste event\n */\n onPaste(event) {\n if (!this.canEdit) {\n return;\n }\n event.preventDefault();\n const clipboardData = event.clipboardData;\n this.$emit(\"paste\", event);\n if (clipboardData.files.length !== 0 || !Object.values(clipboardData.items).find((item) => item?.type.startsWith(\"text\"))) {\n return;\n }\n const text = clipboardData.getData(\"text\");\n const selection = window.getSelection();\n const range = selection.getRangeAt(0);\n range.deleteContents();\n range.insertNode(document.createTextNode(text));\n range.collapse(false);\n this.updateValue(this.$refs.contenteditable.innerHTML);\n },\n /**\n * Update the value text from the provided html\n *\n * @param {string} htmlOrText the html content (or raw text with @mentions)\n */\n updateValue(htmlOrText) {\n const text = this.parseContent(htmlOrText).replace(/^\\n$/, \"\");\n this.localValue = text;\n this.$emit(\"update:modelValue\", text);\n },\n /**\n * Update content and local value\n *\n * @param {string} value the message value\n */\n updateContent(value) {\n const renderedContent = this.renderContent(value);\n this.$refs.contenteditable.innerHTML = renderedContent;\n this.localValue = value;\n },\n /**\n * Enter key pressed. Submits if not multiline\n *\n * @param {Event} event the keydown event\n */\n onEnter(event) {\n if (this.multiline || this.isOverMaxlength || this.tribute.isActive || this.isComposing) {\n return;\n }\n event.preventDefault();\n event.stopPropagation();\n this.$emit(\"submit\", event);\n },\n /**\n * Ctrl + Enter key pressed is used to submit\n *\n * @param {Event} event the keydown event\n */\n onCtrlEnter(event) {\n if (this.isOverMaxlength) {\n return;\n }\n this.$emit(\"submit\", event);\n },\n onKeyUp(event) {\n event.stopImmediatePropagation();\n },\n onKeyEsc(event) {\n if (this.tribute && this.isAutocompleteOpen) {\n event.stopImmediatePropagation();\n this.tribute.hideMenu();\n }\n },\n /**\n * Get HTML element with Tribute.js container\n *\n * @return {HTMLElement}\n */\n getTributeContainer() {\n return this.tribute.menu;\n },\n /**\n * Get the currently selected item element id in Tribute.js container\n *\n * @return {HTMLElement}\n */\n getTributeSelectedItem() {\n return this.getTributeContainer().querySelector('.highlight [id^=\"nc-rich-contenteditable-tribute-item-\"]');\n },\n /**\n * Handle Tribute activation\n *\n * @param {boolean} isActive - is active\n */\n onTributeActive(isActive) {\n this.isAutocompleteOpen = isActive;\n if (isActive) {\n this.getTributeContainer().setAttribute(\"class\", this.tribute.current.collection.containerClass || this.$style[\"tribute-container\"]);\n this.setupTributeIntegration();\n document.removeEventListener(\"click\", this.hideTribute, true);\n } else {\n this.debouncedAutoComplete.clear();\n this.autocompleteActiveId = void 0;\n this.setTributeFocusVisible(false);\n }\n },\n onTributeArrowKeyDown() {\n if (!this.isAutocompleteOpen) {\n return;\n }\n this.setTributeFocusVisible(true);\n this.onTributeSelectedItemWillChange();\n },\n onTributeSelectedItemWillChange() {\n requestAnimationFrame(() => {\n this.autocompleteActiveId = this.getTributeSelectedItem()?.id;\n });\n },\n setupTributeIntegration() {\n if (this.isTributeIntegrationDone) {\n return;\n }\n this.isTributeIntegrationDone = true;\n const tributeContainer = this.getTributeContainer();\n tributeContainer.id = this.tributeId;\n tributeContainer.setAttribute(\"role\", \"listbox\");\n const ul = tributeContainer.children[0];\n ul.setAttribute(\"role\", \"presentation\");\n this.tributeStyleMutationObserver = new MutationObserver(([{ target }]) => {\n if (target.style.display !== \"none\") {\n this.onTributeSelectedItemWillChange();\n }\n }).observe(tributeContainer, {\n attributes: true,\n attributeFilter: [\"style\"]\n });\n tributeContainer.addEventListener(\"mousemove\", () => {\n this.setTributeFocusVisible(false);\n this.onTributeSelectedItemWillChange();\n }, { passive: true });\n },\n /**\n * Set tribute-container--focus-visible class on the Tribute container when the user navigates the listbox via keyboard.\n *\n * Because the real focus is kept on the textbox, we cannot use the :focus-visible pseudo-class\n * to style selected options in the autocomplete listbox.\n *\n * @param {boolean} withFocusVisible - should the focus-visible class be added\n */\n setTributeFocusVisible(withFocusVisible) {\n if (withFocusVisible) {\n this.getTributeContainer().classList.add(this.$style[\"tribute-container--focus-visible\"]);\n } else {\n this.getTributeContainer().classList.remove(this.$style[\"tribute-container--focus-visible\"]);\n }\n },\n /**\n * Show tribute menu programmatically.\n *\n * @param {string} trigger - trigger character, can be '/', '@', or ':'\n *\n * @public\n */\n showTribute(trigger) {\n this.focus();\n const index = this.tribute.collection.findIndex((collection) => collection.trigger === trigger);\n this.tribute.showMenuForCollection(this.$refs.contenteditable, index);\n this.updateValue(this.$refs.contenteditable.innerHTML);\n document.addEventListener(\"click\", this.hideTribute, true);\n },\n /**\n * Hide tribute menu programmatically\n *\n */\n hideTribute() {\n this.tribute.hideMenu();\n document.removeEventListener(\"click\", this.hideTribute, true);\n }\n }\n};\nconst _hoisted_1 = [\"id\", \"contenteditable\", \"aria-labelledby\", \"aria-placeholder\", \"aria-controls\", \"aria-expanded\", \"aria-activedescendant\", \"title\"];\nconst _hoisted_2 = [\"id\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"rich-contenteditable\", _ctx.$props.class])\n }, [\n createElementVNode(\"div\", mergeProps({\n id: $props.id,\n ref: \"contenteditable\",\n class: [{\n \"rich-contenteditable__input--empty\": $options.isEmptyValue,\n \"rich-contenteditable__input--multiline\": $props.multiline,\n \"rich-contenteditable__input--has-label\": $props.label,\n \"rich-contenteditable__input--overflow\": $options.isOverMaxlength,\n \"rich-contenteditable__input--disabled\": $props.disabled\n }, \"rich-contenteditable__input\"],\n contenteditable: $options.canEdit,\n \"aria-labelledby\": $props.label ? $setup.labelId : void 0,\n \"aria-placeholder\": $props.placeholder,\n \"aria-multiline\": \"true\",\n role: \"textbox\",\n \"aria-haspopup\": \"listbox\",\n \"aria-autocomplete\": \"inline\",\n \"aria-controls\": $setup.tributeId,\n \"aria-expanded\": $data.isAutocompleteOpen ? \"true\" : \"false\",\n \"aria-activedescendant\": $data.autocompleteActiveId,\n title: $options.tooltipString\n }, _ctx.$attrs, {\n onFocus: _cache[0] || (_cache[0] = (...args) => $options.moveCursorToEnd && $options.moveCursorToEnd(...args)),\n onInput: _cache[1] || (_cache[1] = (...args) => $options.onInput && $options.onInput(...args)),\n onCompositionstart: _cache[2] || (_cache[2] = ($event) => $data.isComposing = true),\n onCompositionend: _cache[3] || (_cache[3] = ($event) => $data.isComposing = false),\n onKeydownCapture: _cache[4] || (_cache[4] = withKeys((...args) => $options.onKeyEsc && $options.onKeyEsc(...args), [\"esc\"])),\n onKeydown: [\n _cache[5] || (_cache[5] = withKeys(withModifiers((...args) => $options.onEnter && $options.onEnter(...args), [\"exact\"]), [\"enter\"])),\n _cache[6] || (_cache[6] = withKeys(withModifiers((...args) => $options.onCtrlEnter && $options.onCtrlEnter(...args), [\"ctrl\", \"exact\", \"stop\", \"prevent\"]), [\"enter\"])),\n _cache[9] || (_cache[9] = withKeys(withModifiers((...args) => $options.onTributeArrowKeyDown && $options.onTributeArrowKeyDown(...args), [\"exact\", \"stop\"]), [\"up\"])),\n _cache[10] || (_cache[10] = withKeys(withModifiers((...args) => $options.onTributeArrowKeyDown && $options.onTributeArrowKeyDown(...args), [\"exact\", \"stop\"]), [\"down\"]))\n ],\n onPaste: _cache[7] || (_cache[7] = (...args) => $options.onPaste && $options.onPaste(...args)),\n onKeyupCapture: _cache[8] || (_cache[8] = withModifiers((...args) => $options.onKeyUp && $options.onKeyUp(...args), [\"stop\", \"prevent\"])),\n onTributeActiveTrue: _cache[11] || (_cache[11] = ($event) => $options.onTributeActive(true)),\n onTributeActiveFalse: _cache[12] || (_cache[12] = ($event) => $options.onTributeActive(false))\n }), null, 16, _hoisted_1),\n $props.label ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n id: $setup.labelId,\n class: \"rich-contenteditable__label\"\n }, toDisplayString($props.label), 9, _hoisted_2)) : createCommentVNode(\"\", true)\n ], 2);\n}\nconst cssModules = {\n \"$style\": style1\n};\nconst NcRichContenteditable = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__cssModules\", cssModules], [\"__scopeId\", \"data-v-faef642b\"]]);\nexport {\n NcMentionBubble as N,\n NcAutoCompleteResult as a,\n NcRichContenteditable as b\n};\n//# sourceMappingURL=NcRichContenteditable-0w6dbJeG.mjs.map\n","import { r as register, f as t0, a as t } from \"./_l10n-DrTiip5c.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { N as NcEllipsisedOption } from \"./NcEllipsisedOption-dT-CtXYp.mjs\";\nimport { N as NcSelect } from \"./NcSelect-Czzsi3P_.mjs\";\nimport axios from \"@nextcloud/axios\";\nimport { generateRemoteUrl } from \"@nextcloud/router\";\nimport { resolveComponent, createBlock, openBlock, mergeProps, createSlots, withCtx, createVNode, renderList, renderSlot, normalizeProps, guardReactiveProps } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t0);\nfunction xmlToJson(xml) {\n let obj = {};\n if (xml.nodeType === 1) {\n if (xml.attributes.length > 0) {\n obj[\"@attributes\"] = {};\n for (let j = 0; j < xml.attributes.length; j++) {\n const attribute = xml.attributes.item(j);\n obj[\"@attributes\"][attribute.nodeName] = attribute.nodeValue;\n }\n }\n } else if (xml.nodeType === 3) {\n obj = xml.nodeValue;\n }\n if (xml.hasChildNodes()) {\n for (let i = 0; i < xml.childNodes.length; i++) {\n const item = xml.childNodes.item(i);\n const nodeName = item.nodeName;\n if (typeof obj[nodeName] === \"undefined\") {\n obj[nodeName] = xmlToJson(item);\n } else {\n if (typeof obj[nodeName].push === \"undefined\") {\n const old = obj[nodeName];\n obj[nodeName] = [];\n obj[nodeName].push(old);\n }\n obj[nodeName].push(xmlToJson(item));\n }\n }\n }\n return obj;\n}\nfunction parseXml(xml) {\n let dom = null;\n try {\n dom = new DOMParser().parseFromString(xml, \"text/xml\");\n } catch (error) {\n logger.error(\"[NcSelectTags] Failed to parse xml document\", { error });\n }\n return dom;\n}\nfunction xmlToTagList(xml) {\n const json = xmlToJson(parseXml(xml));\n const list = json[\"d:multistatus\"][\"d:response\"];\n const result = [];\n for (const index in list) {\n const tag = list[index][\"d:propstat\"];\n if (tag[\"d:status\"][\"#text\"] !== \"HTTP/1.1 200 OK\") {\n continue;\n }\n result.push({\n id: parseInt(tag[\"d:prop\"][\"oc:id\"][\"#text\"]),\n displayName: tag[\"d:prop\"][\"oc:display-name\"][\"#text\"],\n canAssign: tag[\"d:prop\"][\"oc:can-assign\"][\"#text\"] === \"true\",\n userAssignable: tag[\"d:prop\"][\"oc:user-assignable\"][\"#text\"] === \"true\",\n userVisible: tag[\"d:prop\"][\"oc:user-visible\"][\"#text\"] === \"true\"\n });\n }\n return result;\n}\nasync function searchTags() {\n if (window.NextcloudVueDocs) {\n return Promise.resolve(xmlToTagList(window.NextcloudVueDocs.tags));\n }\n const result = await axios({\n method: \"PROPFIND\",\n url: generateRemoteUrl(\"dav\") + \"/systemtags/\",\n data: `\n\t\t\t\t\t\n\t\t\t\t\t \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t \n\t\t\t\t\t`\n });\n return xmlToTagList(result.data);\n}\nconst _sfc_main = {\n name: \"NcSelectTags\",\n components: {\n NcEllipsisedOption,\n NcSelect\n },\n props: {\n // Add NcSelect prop defaults and populate $props\n ...NcSelect.props,\n /**\n * Enable automatic fetching of tags\n *\n * If `false`, available tags must be passed using the `options` prop\n */\n fetchTags: {\n type: Boolean,\n default: true\n },\n /**\n * Callback to generate the label text\n *\n * @see https://vue-select.org/api/props.html#getoptionlabel\n */\n getOptionLabel: {\n type: Function,\n default: (option) => {\n const { displayName, userVisible, userAssignable } = option;\n if (userVisible === false) {\n return t(\"{tag} (invisible)\", { tag: displayName });\n }\n if (userAssignable === false) {\n return t(\"{tag} (restricted)\", { tag: displayName });\n }\n return displayName;\n }\n },\n /**\n * Sets the maximum number of tags to display in the dropdown list\n *\n * Because of compatibility reasons only 5 tag entries are shown by\n * default\n */\n limit: {\n type: Number,\n default: 5\n },\n /**\n * Allow selection of multiple options\n *\n * This prop automatically sets the internal `closeOnSelect` prop to\n * its boolean opposite\n *\n * @see https://vue-select.org/api/props.html#multiple\n */\n multiple: {\n type: Boolean,\n default: true\n },\n /**\n * Callback to filter available options\n */\n optionsFilter: {\n type: Function,\n default: null\n },\n /**\n * Enable passing of `value` prop and emitted `input` events as-is\n * i.e. for usage with `v-model`\n *\n * If `true`, custom internal `value` and `input` handling is disabled\n */\n passthru: {\n type: Boolean,\n default: false\n },\n /**\n * Placeholder text\n *\n * @see https://vue-select.org/api/props.html#placeholder\n */\n placeholder: {\n type: String,\n default: t(\"Select a tag\")\n },\n /**\n * Currently selected value\n */\n modelValue: {\n type: [Number, Array, Object],\n default: null\n },\n /**\n * Any available prop\n *\n * @see https://vue-select.org/api/props.html\n */\n // Not an actual prop but needed to show in vue-styleguidist docs\n // eslint-disable-next-line\n \" \": {}\n },\n emits: [\n \"update:modelValue\",\n /**\n * All events from https://vue-select.org/api/events.html\n */\n // Not an actual event but needed to show in vue-styleguidist docs\n \" \"\n ],\n data() {\n return {\n search: \"\",\n availableTags: []\n };\n },\n computed: {\n availableOptions() {\n if (this.optionsFilter) {\n return this.tags.filter(this.optionsFilter);\n }\n return this.tags;\n },\n localValue() {\n if (this.passthru) {\n return this.modelValue;\n }\n if (this.tags.length === 0) {\n return [];\n }\n if (this.multiple) {\n return this.modelValue.filter((tag) => tag !== \"\").map((id) => this.tags.find((tag2) => tag2.id === id));\n } else {\n return this.tags.find((tag) => tag.id === this.modelValue);\n }\n },\n propsToForward() {\n const propsToForward = { ...this.$props };\n delete propsToForward.fetchTags;\n delete propsToForward.optionsFilter;\n delete propsToForward.passthru;\n return propsToForward;\n },\n tags() {\n if (!this.fetchTags) {\n return this.options;\n }\n return this.availableTags;\n }\n },\n async created() {\n if (!this.fetchTags) {\n return;\n }\n try {\n const result = await searchTags();\n this.availableTags = result;\n } catch (error) {\n logger.error(\"[NcSelectTags] Loading systemtags failed\", error);\n }\n },\n methods: {\n handleInput(value) {\n if (this.passthru) {\n this.$emit(\"update:modelValue\", value);\n return;\n }\n if (this.multiple) {\n this.$emit(\"update:modelValue\", value.map((element) => element.id));\n } else {\n if (value === null) {\n this.$emit(\"update:modelValue\", null);\n } else {\n this.$emit(\"update:modelValue\", value.id);\n }\n }\n }\n }\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcEllipsisedOption = resolveComponent(\"NcEllipsisedOption\");\n const _component_NcSelect = resolveComponent(\"NcSelect\");\n return openBlock(), createBlock(_component_NcSelect, mergeProps($options.propsToForward, {\n options: $options.availableOptions,\n \"close-on-select\": !$props.multiple,\n \"model-value\": $options.localValue,\n onSearch: _cache[0] || (_cache[0] = ($event) => $data.search = $event),\n \"onUpdate:modelValue\": $options.handleInput\n }), createSlots({\n option: withCtx((option) => [\n createVNode(_component_NcEllipsisedOption, {\n name: $props.getOptionLabel(option),\n search: $data.search\n }, null, 8, [\"name\", \"search\"])\n ]),\n \"selected-option\": withCtx((selectedOption) => [\n createVNode(_component_NcEllipsisedOption, {\n name: $props.getOptionLabel(selectedOption),\n search: $data.search\n }, null, 8, [\"name\", \"search\"])\n ]),\n _: 2\n }, [\n renderList(_ctx.$slots, (_, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1040, [\"options\", \"close-on-select\", \"model-value\", \"onUpdate:modelValue\"]);\n}\nconst NcSelectTags = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nexport {\n NcSelectTags as N\n};\n//# sourceMappingURL=NcSelectTags-DJwqmQ7_.mjs.map\n","import '../assets/NcSelectUsers-BWhtNRbI.css';\nimport { defineComponent, mergeModels, useModel, ref, watch, createBlock, openBlock, unref, mergeProps, withCtx, createVNode } from \"vue\";\nimport { N as NcListItemIcon } from \"./NcListItemIcon-8fWhyS_R.mjs\";\nimport { N as NcSelect } from \"./NcSelect-Czzsi3P_.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcSelectUsers\",\n props: /* @__PURE__ */ mergeModels({\n ariaLabelClearSelected: {},\n ariaLabelListbox: {},\n ariaLabelDeselectOption: { type: Function },\n disabled: { type: Boolean },\n inputId: {},\n inputLabel: {},\n labelOutside: { type: Boolean },\n keepOpen: { type: Boolean },\n loading: { type: Boolean },\n multiple: { type: Boolean },\n noWrap: { type: Boolean },\n options: {},\n placeholder: {},\n required: { type: Boolean }\n }, {\n \"modelValue\": {},\n \"modelModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"search\"], [\"update:modelValue\"]),\n setup(__props, { emit: __emit }) {\n const modelValue = useModel(__props, \"modelValue\");\n const emit = __emit;\n const search = ref(\"\");\n watch(search, () => emit(\"search\", search.value));\n const clickableArea = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue(\"--default-clickable-area\"));\n const gridBaseLine = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue(\"--default-grid-baseline\"));\n const avatarSize = clickableArea - 2 * gridBaseLine;\n function filterBy(option, label, search2) {\n const EMAIL_NOTATION = /[^<]*<([^>]+)/;\n const match = search2.match(EMAIL_NOTATION);\n const subname = option.subname?.toLocaleLowerCase() ?? \"\";\n return match && subname.indexOf(match[1].toLocaleLowerCase()) > -1 || `${label} ${option.subname}`.toLocaleLowerCase().indexOf(search2.toLocaleLowerCase()) > -1;\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(NcSelect), mergeProps({\n modelValue: modelValue.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event),\n class: \"nc-select-users\"\n }, _ctx.$props, {\n \"filter-by\": filterBy,\n label: \"displayName\",\n onSearch: _cache[1] || (_cache[1] = ($event) => search.value = $event)\n }), {\n option: withCtx((option) => [\n createVNode(unref(NcListItemIcon), mergeProps(option, {\n \"avatar-size\": 32,\n name: option.displayName,\n search: search.value\n }), null, 16, [\"name\", \"search\"])\n ]),\n \"selected-option\": withCtx((selectedOption) => [\n createVNode(unref(NcListItemIcon), mergeProps(selectedOption, {\n \"avatar-size\": avatarSize,\n name: selectedOption.displayName,\n \"no-margin\": \"\",\n search: search.value\n }), null, 16, [\"name\", \"search\"])\n ]),\n _: 1\n }, 16, [\"modelValue\"]);\n };\n }\n});\nconst NcSelectUsers = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-4fbb6472\"]]);\nexport {\n NcSelectUsers as N\n};\n//# sourceMappingURL=NcSelectUsers-DVTI1DIZ.mjs.map\n","import '../assets/NcSettingsSelectGroup-BxvEAWNm.css';\nimport axios from \"@nextcloud/axios\";\nimport { generateOcsUrl } from \"@nextcloud/router\";\nimport debounce from \"debounce\";\nimport { N as NcSelect } from \"./NcSelect-Czzsi3P_.mjs\";\nimport { r as register, e as t49, a as t } from \"./_l10n-DrTiip5c.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { resolveComponent, createElementBlock, openBlock, createCommentVNode, createVNode, withDirectives, toDisplayString, createElementVNode, vShow } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t49);\nconst _sfc_main = {\n name: \"NcSettingsSelectGroup\",\n components: {\n NcSelect\n },\n props: {\n /**\n * The text of the label element of the select group input\n */\n label: {\n type: String,\n required: true\n },\n /**\n * Placeholder for the input element\n * For backwards compatibility it falls back to the `label` value\n */\n placeholder: {\n type: String,\n default: \"\"\n },\n /**\n * id attribute of the select group element\n */\n id: {\n type: String,\n default: () => \"action-\" + createElementId(),\n validator: (id) => id.trim() !== \"\"\n },\n /**\n * value of the select group input\n * A list of group IDs can be provided\n */\n modelValue: {\n type: Array,\n default: () => []\n },\n /**\n * disabled state of the settings select group input\n */\n disabled: {\n type: Boolean,\n default: false\n }\n },\n emits: [\n \"error\",\n \"input\",\n \"update:modelValue\"\n ],\n data() {\n return {\n /** Temporary store to cache groups */\n groups: {},\n randId: createElementId(),\n errorMessage: \"\"\n };\n },\n computed: {\n /**\n * If the error message should be shown\n */\n hasError() {\n return this.errorMessage !== \"\";\n },\n /**\n * Validate input value and only return valid strings (group IDs)\n *\n * @return {string[]}\n */\n filteredValue() {\n return this.modelValue.filter((group) => group !== \"\" && typeof group === \"string\");\n },\n /**\n * value property converted to an array of group objects used as input for the NcSelect\n */\n inputValue() {\n return this.filteredValue.map((id) => {\n if (typeof this.groups[id] === \"undefined\") {\n return {\n id,\n displayname: id\n };\n }\n return this.groups[id];\n });\n },\n /**\n * Convert groups object to array of groups required for NcSelect.options\n * Filter out currently selected values\n *\n * @return {object[]}\n */\n groupsArray() {\n return Object.values(this.groups).filter((g) => !this.modelValue.includes(g.id));\n }\n },\n watch: {\n /**\n * If the value is changed, check that all groups are loaded so we show the correct display name\n */\n modelValue: {\n handler() {\n const loadedGroupIds = Object.keys(this.groups);\n const missing = this.filteredValue.filter((group) => !loadedGroupIds.includes(group));\n missing.forEach((groupId) => {\n this.loadGroup(groupId);\n });\n },\n // Run the watch handler also when the component is initially mounted\n immediate: true\n }\n },\n /**\n * Load groups matching the empty query to reduce API calls\n */\n async mounted() {\n const storageName = `${appName}:${appVersion}/initialGroups`;\n let savedGroups = window.sessionStorage.getItem(storageName);\n if (savedGroups) {\n savedGroups = Object.fromEntries(JSON.parse(savedGroups).map((group) => [group.id, group]));\n this.groups = { ...this.groups, ...savedGroups };\n } else {\n await this.loadGroup(\"\");\n window.sessionStorage.setItem(storageName, JSON.stringify(Object.values(this.groups)));\n }\n },\n methods: {\n t,\n /**\n * Called when a new group is selected or previous group is deselected to emit the update event\n *\n * @param {object[]} updatedValue Array of selected groups\n */\n update(updatedValue) {\n const value = updatedValue.map((element) => element.id);\n this.$emit(\"update:modelValue\", value);\n },\n /**\n * Use provisioning API to search for given group and save it in the groups object\n *\n * @param {string} query The query like parts of the id oder display name\n * @return {boolean}\n */\n async loadGroup(query) {\n try {\n query = typeof query === \"string\" ? encodeURI(query) : \"\";\n const response = await axios.get(generateOcsUrl(`cloud/groups/details?search=${query}&limit=10`, 2));\n if (this.errorMessage !== \"\") {\n window.setTimeout(() => {\n this.errorMessage = \"\";\n }, 5e3);\n }\n if (Object.keys(response.data.ocs.data.groups).length > 0) {\n const newGroups = Object.fromEntries(response.data.ocs.data.groups.map((element) => [element.id, element]));\n this.groups = { ...this.groups, ...newGroups };\n return true;\n }\n } catch (error) {\n this.$emit(\"error\", error);\n this.errorMessage = t(\"Unable to search the group\");\n }\n return false;\n },\n /**\n * Custom filter function for `NcSelect` to filter by ID *and* display name\n *\n * @param {object} option One of the groups\n * @param {string} label The label property of the group\n * @param {string} search The current search string\n */\n filterGroups(option, label, search) {\n return `${label || \"\"} ${option.id}`.toLocaleLowerCase().indexOf(search.toLocaleLowerCase()) > -1;\n },\n /**\n * Debounce the group search (reduce API calls)\n */\n onSearch: debounce(function(query) {\n this.loadGroup(query);\n }, 200)\n }\n};\nconst _hoisted_1 = [\"for\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcSelect = resolveComponent(\"NcSelect\");\n return openBlock(), createElementBlock(\"div\", null, [\n $props.label ? (openBlock(), createElementBlock(\"label\", {\n key: 0,\n for: $props.id,\n class: \"hidden-visually\"\n }, toDisplayString($props.label), 9, _hoisted_1)) : createCommentVNode(\"\", true),\n createVNode(_component_NcSelect, {\n \"model-value\": $options.inputValue,\n options: $options.groupsArray,\n placeholder: $props.placeholder || $props.label,\n \"filter-by\": $options.filterGroups,\n \"input-id\": $props.id,\n limit: 5,\n label: \"displayname\",\n multiple: true,\n \"close-on-select\": false,\n disabled: $props.disabled,\n \"onUpdate:modelValue\": $options.update,\n onSearch: $options.onSearch\n }, null, 8, [\"model-value\", \"options\", \"placeholder\", \"filter-by\", \"input-id\", \"disabled\", \"onUpdate:modelValue\", \"onSearch\"]),\n withDirectives(createElementVNode(\"div\", { class: \"select-group-error\" }, toDisplayString($data.errorMessage), 513), [\n [vShow, $options.hasError]\n ])\n ]);\n}\nconst NcSettingsSelectGroup = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-21e2bf0c\"]]);\nexport {\n NcSettingsSelectGroup as N\n};\n//# sourceMappingURL=NcSettingsSelectGroup-CuRTrvVN.mjs.map\n","import '../assets/NcTextArea-nivEqHE-.css';\nimport { defineComponent, mergeModels, useModel, useAttrs, useTemplateRef, computed, watch, createElementBlock, openBlock, normalizeClass, unref, createElementVNode, createCommentVNode, mergeProps, toDisplayString, createBlock, createTextVNode } from \"vue\";\nimport { d as mdiCheck, f as mdiAlertCircleOutline } from \"./mdi-XFJRiRqJ.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-BvLanNaW.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { i as isLegacy } from \"./legacy-DcjXBL_t.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = { class: \"textarea__main-wrapper\" };\nconst _hoisted_2 = [\"id\", \"aria-describedby\", \"disabled\", \"placeholder\", \"value\"];\nconst _hoisted_3 = [\"for\"];\nconst _hoisted_4 = [\"id\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...{ inheritAttrs: false },\n __name: \"NcTextArea\",\n props: /* @__PURE__ */ mergeModels({\n disabled: { type: Boolean },\n error: { type: Boolean },\n helperText: { default: void 0 },\n id: { default: () => createElementId() },\n inputClass: { default: \"\" },\n label: { default: void 0 },\n labelOutside: { type: Boolean },\n placeholder: { default: void 0 },\n resize: { default: \"both\" },\n success: { type: Boolean }\n }, {\n \"modelValue\": { required: true },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props, { expose: __expose }) {\n const modelValue = useModel(__props, \"modelValue\");\n const props = __props;\n __expose({\n focus,\n select\n });\n const attrs = useAttrs();\n const textAreaElement = useTemplateRef(\"input\");\n const internalPlaceholder = computed(() => props.placeholder || (isLegacy ? props.label : void 0));\n watch(() => props.labelOutside, () => {\n if (!props.labelOutside && !props.label) {\n logger.warn(\"[NcTextArea] You need to add a label to the NcInputField component. Either use the prop label or use an external one, as per the example in the documentation.\");\n }\n });\n const ariaDescribedby = computed(() => {\n const ariaDescribedby2 = [];\n if (props.helperText) {\n ariaDescribedby2.push(`${props.id}-helper-text`);\n }\n if (typeof attrs[\"aria-describedby\"] === \"string\") {\n ariaDescribedby2.push(attrs[\"aria-describedby\"]);\n }\n return ariaDescribedby2.join(\" \") || void 0;\n });\n function handleInput(event) {\n const { value } = event.target;\n modelValue.value = value;\n }\n function focus(options) {\n textAreaElement.value.focus(options);\n }\n function select() {\n textAreaElement.value.select();\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"textarea\", [\n _ctx.$attrs.class,\n {\n \"textarea--disabled\": _ctx.disabled,\n \"textarea--legacy\": unref(isLegacy)\n }\n ]])\n }, [\n createElementVNode(\"div\", _hoisted_1, [\n createElementVNode(\"textarea\", mergeProps({ ..._ctx.$attrs, class: void 0 }, {\n id: _ctx.id,\n ref: \"input\",\n \"aria-describedby\": ariaDescribedby.value,\n \"aria-live\": \"polite\",\n class: [\"textarea__input\", [\n _ctx.inputClass,\n {\n \"textarea__input--label-outside\": _ctx.labelOutside,\n \"textarea__input--legacy\": unref(isLegacy),\n \"textarea__input--success\": _ctx.success,\n \"textarea__input--error\": _ctx.error\n }\n ]],\n disabled: _ctx.disabled,\n placeholder: internalPlaceholder.value,\n style: { resize: _ctx.resize },\n value: modelValue.value,\n onInput: handleInput\n }), null, 16, _hoisted_2),\n !_ctx.labelOutside ? (openBlock(), createElementBlock(\"label\", {\n key: 0,\n class: \"textarea__label\",\n for: _ctx.id\n }, toDisplayString(_ctx.label), 9, _hoisted_3)) : createCommentVNode(\"\", true)\n ]),\n _ctx.helperText ? (openBlock(), createElementBlock(\"p\", {\n key: 0,\n id: `${_ctx.id}-helper-text`,\n class: normalizeClass([\"textarea__helper-text-message\", {\n \"textarea__helper-text-message--error\": _ctx.error,\n \"textarea__helper-text-message--success\": _ctx.success\n }])\n }, [\n _ctx.success ? (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 0,\n class: \"textarea__helper-text-message__icon\",\n path: unref(mdiCheck),\n inline: \"\"\n }, null, 8, [\"path\"])) : _ctx.error ? (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 1,\n class: \"textarea__helper-text-message__icon\",\n path: unref(mdiAlertCircleOutline),\n inline: \"\"\n }, null, 8, [\"path\"])) : createCommentVNode(\"\", true),\n createTextVNode(\" \" + toDisplayString(_ctx.helperText), 1)\n ], 10, _hoisted_4)) : createCommentVNode(\"\", true)\n ], 2);\n };\n }\n});\nconst NcTextArea = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-a0d5539d\"]]);\nexport {\n NcTextArea as N\n};\n//# sourceMappingURL=NcTextArea-CdtxX_QJ.mjs.map\n","\n\n"],"names":["register","NcActions","t14","t21","t23","t50","t","LOCALHOST","COLON","defaults","noop","Options","opts","defaultRender","o","ignoredTags","uppercaseIgnoredTags","i","ir","token","key","operator","isCallable","option","obj","val","MultiToken","value","tokens","scheme","options","truncate","formatted","protocol","href","formattedHref","tagName","content","attributes","className","target","rel","attrs","eventListeners","createTokenClass","type","props","Token","p","t15","PQueue","_hoisted_1","_hoisted_2","_sfc_main","defineComponent","__props","__emit","emit","slots","useSlots","canClose","computed","hasActions","hasIcon","_ctx","_cache","openBlock","createElementBlock","normalizeClass","renderSlot","createBlock","NcIconSvgWrapper","createCommentVNode","createElementVNode","createTextVNode","toDisplayString","withCtx","NcActionButton","$event","createVNode","unref","mdiClose","NcChip","_export_sfc","t28","t6","t35","millisecondsInWeek","millisecondsInDay","millisecondsInMinute","millisecondsInHour","millisecondsInSecond","constructFromSymbol","constructFrom","date","toDate","argument","context","addDays","amount","_date","addMonths","dayOfMonth","endOfDesiredMonth","daysInMonth","add","duration","years","months","weeks","days","hours","minutes","seconds","dateWithMonths","dateWithDays","minutesToAdd","msToAdd","addMilliseconds","addHours","defaultOptions","getDefaultOptions","startOfWeek","weekStartsOn","day","diff","startOfISOWeek","getISOWeekYear","year","fourthOfJanuaryOfNextYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","getTimezoneOffsetInMilliseconds","utcDate","normalizeDates","dates","normalize","startOfDay","differenceInCalendarDays","laterDate","earlierDate","laterDate_","earlierDate_","laterStartOfDay","earlierStartOfDay","laterTimestamp","earlierTimestamp","startOfISOWeekYear","fourthOfJanuary","addQuarters","addYears","compareAsc","dateLeft","dateRight","isDate","isValid","getQuarter","differenceInCalendarYears","differenceInYears","sign","partial","result","normalizeInterval","interval","start","end","eachDayOfInterval","reversed","endTime","step","startOfQuarter","currentMonth","month","eachQuarterOfInterval","startOfMonth","endOfYear","startOfYear","date_","endOfWeek","endOfQuarter","formatDistanceLocale","formatDistance","count","tokenValue","buildFormatLongFn","args","width","dateFormats","timeFormats","dateTimeFormats","formatLong","formatRelativeLocale","formatRelative","_baseDate","_options","buildLocalizeFn","valuesArray","defaultWidth","index","eraValues","quarterValues","monthValues","dayValues","dayPeriodValues","formattingDayPeriodValues","ordinalNumber","dirtyNumber","number","rem100","localize","quarter","buildMatchFn","string","matchPattern","matchResult","matchedString","parsePatterns","findIndex","pattern","findKey","rest","object","predicate","array","buildMatchPatternFn","parseResult","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","parseEraPatterns","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","match","enUS","getDayOfYear","getISOWeek","getWeekYear","firstWeekContainsDate","firstWeekOfNextYear","firstWeekOfThisYear","startOfWeekYear","firstWeek","getWeek","addLeadingZeros","targetLength","output","lightFormatters","signedYear","dayPeriodEnumValue","numberOfDigits","milliseconds","fractionalSeconds","dayPeriodEnum","formatters","era","signedWeekYear","weekYear","twoDigitYear","isoWeekYear","week","isoWeek","dayOfYear","dayOfWeek","localDayOfWeek","isoDayOfWeek","_localize","timezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","formatTimezoneShort","timestamp","offset","delimiter","absOffset","dateLongFormatter","timeLongFormatter","dateTimeLongFormatter","datePattern","timePattern","dateTimeFormat","longFormatters","dayOfYearTokenRE","weekYearTokenRE","throwTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","warnOrThrowProtectedError","format","input","_message","message","subject","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","formatStr","locale","defaultLocale","originalDate","parts","substring","firstCharacter","longFormatter","cleanEscapedString","formatterOptions","part","formatter","matched","getDay","getDaysInMonth","monthIndex","lastDayOfMonth","getInternalDefaultOptions","getHours","getISODay","getMinutes","getMonth","getSeconds","getYear","isAfter","dateToCompare","isBefore","isEqual","leftDate","rightDate","transpose","constructor","isConstructor","TIMEZONE_UNIT_PRIORITY","Setter","_utcDate","ValueSetter","validateValue","setValue","priority","subPriority","flags","DateTimezoneSetter","reference","Parser","dateString","_value","EraParser","numericPatterns","timezonePatterns","mapValue","parseFnResult","mapFn","parseNumericPattern","parseTimezonePattern","parseAnyDigitsSigned","parseNDigits","n","parseNDigitsSigned","dayPeriodEnumToHours","dayPeriod","normalizeTwoDigitYear","currentYear","isCommonEra","absCurrentYear","rangeEnd","rangeEndCentury","isPreviousCentury","isLeapYearIndex","YearParser","valueCallback","normalizedTwoDigitYear","LocalWeekYearParser","ISOWeekYearParser","_flags","firstWeekOfYear","ExtendedYearParser","QuarterParser","StandAloneQuarterParser","MonthParser","StandAloneMonthParser","setWeek","LocalWeekParser","setISOWeek","ISOWeekParser","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","DateParser","isLeapYear","DayOfYearParser","setDay","currentDay","dayIndex","delta","DayParser","LocalDayParser","wholeWeekDays","StandAloneLocalDayParser","setISODay","ISODayParser","AMPMParser","AMPMMidnightParser","DayPeriodParser","Hour1to12Parser","isPM","Hour0to23Parser","Hour0To11Parser","Hour1To24Parser","MinuteParser","SecondParser","FractionOfSecondParser","ISOTimezoneWithZParser","ISOTimezoneParser","TimestampSecondsParser","TimestampMillisecondsParser","parsers","notWhitespaceRegExp","parse","dateStr","referenceDate","invalidDate","subFnOptions","setters","usedTokens","parser","incompatibleTokens","incompatibleToken","usedToken","uniquePrioritySetters","setter","a","b","setterArray","isSameQuarter","dateLeft_","dateRight_","subDays","setMonth","midMonth","set","values","setHours","setMilliseconds","setMinutes","setSeconds","setYear","subMonths","sub","withoutMonths","withoutDays","minutesToSub","msToSub","subYears","jt","Jn","w","W","he","Sn","Ua","Va","ja","Ka","Ga","Ze","Qa","l","La","H","wl","Fe","Dl","Ml","ot","st","Ot","je","$l","Qe","Re","Lt","un","Al","ft","Tl","f","qa","Ja","Pn","g","d","Sl","Le","s","Pl","Rn","Xa","Ne","dn","cn","Cn","Rl","Zt","Ht","Dt","Cl","Ol","Fa","Za","Ta","ca","Bl","qe","_l","On","Bn","fn","Na","da","dl","Se","Yl","Il","ol","Mt","ul","il","wn","Dn","Be","Ft","$e","Nt","Ee","_t","xt","it","Sa","Bt","yt","$t","zt","_n","ye","Me","Yn","Wt","In","bn","El","Ct","mt","Wa","kn","En","wt","pt","sl","ut","Nn","Jt","Ll","Nl","Ln","It","oa","za","Fl","Pa","Ra","vn","Ca","zl","Hl","Fn","xa","Ha","mn","cl","kt","zn","Kt","ea","Hn","j","Pe","Oa","Z","sa","Ba","_a","Ya","Ve","Ie","At","M","A","P","v","pn","Wl","gn","Ul","Vl","jl","Kl","Gl","Ql","ql","Xl","Jl","Zl","xl","er","Ia","tr","ar","nr","lr","Oe","U","$","C","z","R","h","T","F","_","m","L","rr","qt","rt","x","X","S","fl","B","k","q","le","ee","O","J","ce","pe","Y","te","y","V","se","be","Ae","u","re","G","I","or","Tt","Mn","$n","va","dt","sr","ur","We","Ue","Ut","ie","ze","He","ke","lt","Q","gt","Ke","dr","cr","fr","vr","ta","ga","Zn","at","c","De","Xt","Ce","ua","ia","mr","ma","pr","Qt","gr","Wn","aa","Te","we","xn","tt","Vt","Ge","en","tn","pa","Un","Vn","jn","An","Gt","vl","yr","na","hr","Yt","et","Je","br","kr","wr","Dr","Mr","$r","Ar","Tr","Sr","Pr","r","E","K","oe","Tn","ml","ge","_e","Ye","nt","ne","fa","Rr","Cr","Or","Br","Kn","Gn","_r","Yr","Ir","Er","Nr","Lr","Fr","zr","Hr","Wr","Ur","Vr","jr","Kr","Gr","pl","gl","yn","Qr","ae","ve","N","ue","me","ct","Pt","$a","Rt","ra","Aa","Xn","vt","xe","St","D","de","fe","ht","Xe","ya","ha","la","ba","ka","wa","Da","Ma","qr","Xr","mo","Jr","rn","sn","yl","hl","on","Zr","xr","eo","Qn","to","ao","no","lo","ro","oo","so","uo","io","hn","po","el","Et","co","tl","nn","bt","fo","vo","kl","bl","go","yo","ho","bo","ko","wo","Ea","Do","al","nl","Mo","$o","Ao","To","ll","an","ln","rl","qn","So","formatTimezoneId","timezoneId","getTimezones","tz","mergeModels","createElementId","modelValue","useModel","formattedAdditionalTimezones","label","timezones","filterBy","search","terms","term","NcSelect","getCanonicalLocale","targetElement","useTemplateRef","pickerInstance","time","placeholderFallback","realFormat","pickerType","onUpdateModelValue","value2","formatLibraryTime","data","weekStart","getFirstDay","dayNames","getDayNamesMin","weekNumName","ariaLabels","getDayNames","overlay","selectDate","cancelSelection","VueDatePicker","mergeProps","createSlots","NcButton","clear","mdiCalendarBlank","mdiClock","mdiChevronLeft","mdiChevronRight","mdiChevronDown","mdiChevronUp","_sfc_main$1","Teleport","NcDateTimePicker","margin","defaultSize","NcAvatar","userStatus","margin2","EMAIL_NOTATION","_hoisted_3","_hoisted_4","_sfc_render","$props","$setup","$data","$options","_component_NcAvatar","resolveComponent","_component_NcHighlight","_component_NcIconSvgWrapper","normalizeStyle","NcListItemIcon","t38","t41","getCapabilities","t9","list","length","thisArg","CustomEvent$1","event","params","evt","t34","t37","t0","ref","watch","clickableArea","gridBaseLine","avatarSize","search2","subname","selectedOption","NcSelectUsers","t49","debounce","query","__expose","focus","select","useAttrs","textAreaElement","internalPlaceholder","isLegacy","logger","ariaDescribedby","ariaDescribedby2","handleInput","mdiCheck","mdiAlertCircleOutline","NcTextArea","_createElementBlock","_mergeProps","_createElementVNode","_openBlock"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150]} \ No newline at end of file diff --git a/dist/index-DZnagzmP.chunk.mjs.map.license b/dist/index-FxQbLoUx.chunk.mjs.map.license similarity index 100% rename from dist/index-DZnagzmP.chunk.mjs.map.license rename to dist/index-FxQbLoUx.chunk.mjs.map.license diff --git a/dist/index-JpgrUA2Z-BFiKKJ1W.chunk.mjs.map b/dist/index-JpgrUA2Z-BFiKKJ1W.chunk.mjs.map deleted file mode 100644 index f34b9ae81c658..0000000000000 --- a/dist/index-JpgrUA2Z-BFiKKJ1W.chunk.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"mappings":"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","names":["getFirstDay","intl","getCanonicalLocale","weekInfo","getDayNames","locale","getDayNamesMin","formatRelativeTime","timestamp","opts","options","getLanguage","date","formatter","seconds","minutes","hours","days","weeks","months","format","NC_ACTIONS_IS_SEMANTIC_MENU","NC_ACTIONS_CLOSE_MENU","getTrapStack","createTrapStackController","pausedStack","trap","useTrapStackControl","shouldPause","trapStackController","watch","toValue","onUnmounted","sides","alignments","placements","acc","side","min","max","round","floor","createCoords","v","oppositeSideMap","oppositeAlignmentMap","clamp","start","value","end","evaluate","param","getSide","placement","getAlignment","getOppositeAxis","axis","getAxisLength","yAxisSides","getSideAxis","getAlignmentAxis","getAlignmentSides","rects","rtl","alignment","alignmentAxis","length","mainAlignmentSide","getOppositePlacement","getExpandedPlacements","oppositePlacement","getOppositeAlignmentPlacement","lrPlacement","rlPlacement","tbPlacement","btPlacement","getSideList","isStart","getOppositeAxisPlacements","flipAlignment","direction","list","expandPaddingObject","padding","getPaddingObject","rectToClientRect","rect","x","y","width","height","computeCoordsFromPlacement","_ref","reference","floating","sideAxis","alignLength","isVertical","commonX","commonY","commonAlign","coords","computePosition","config","strategy","middleware","platform","validMiddleware","statefulPlacement","middlewareData","resetCount","i","name","fn","nextX","N","data","reset","nextY","detectOverflow","state","_await$platform$isEle","elements","boundary","rootBoundary","elementContext","altBoundary","paddingObject","element","clippingClientRect","offsetParent","offsetScale","elementClientRect","arrow","arrowDimensions","isYAxis","minProp","maxProp","clientProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","largestPossiblePadding","minPadding","maxPadding","min$1","center","offset","shouldAddOffset","alignmentOffset","getPlacementList","autoAlignment","allowedPlacements","autoPlacement","_middlewareData$autoP","_middlewareData$autoP2","_placementsThatFitOnE","crossAxis","detectOverflowOptions","placements$1","overflow","currentIndex","currentPlacement","alignmentSides","currentOverflows","allOverflows","nextPlacement","placementsSortedByMostSpace","d","a","b","resetPlacement","flip","_middlewareData$arrow","_middlewareData$flip","initialPlacement","checkMainAxis","checkCrossAxis","specifiedFallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","initialSideAxis","isBasePlacement","fallbackPlacements","hasFallbackAxisSideDirection","overflows","overflowsData","_middlewareData$flip2","_overflowsData$filter","nextIndex","_overflowsData$filter2","currentSideAxis","originSides","convertValueToCoords","mainAxisMulti","crossAxisMulti","rawValue","mainAxis","_middlewareData$offse","diffCoords","shift","limiter","mainAxisCoord","crossAxisCoord","minSide","maxSide","limitedCoords","limitShift","rawOffset","computedOffset","len","limitMin","limitMax","_middlewareData$offse2","isOriginSide","size","_state$middlewareData","_state$middlewareData2","apply","heightSide","widthSide","maximumClippingHeight","maximumClippingWidth","overflowAvailableHeight","overflowAvailableWidth","noShift","availableHeight","availableWidth","xMin","xMax","yMin","yMax","nextDimensions","n","t","e","o","r","l","c","s","h","f","u","p","g","m","w","L","E","R","T","C","F","W","D","S","A","H","O","P","B","Ze","re","$","_e","Te","pe","ae","de","G","le","he","Y","q","Q","xe","Ue","Ye","Xe","Ke","Je","Qe","ne","_","ue","fe","tt","Pe","ce","et","ot","it","J","ke","Le","st","nt","z","X","Fe","rt","Re","De","pt","Ie","at","M","Z","dt","lt","ht","ut","ft","ct","mt","je","Ve","se","ee","te","K","gt","wt","$e","I","j","V","Ee","ve","k","Se","Ht","kt","candidateSelectors","candidateSelector","NoElement","matches","getRootNode","_element$getRootNode","_isInert","node","lookUp","_node$getAttribute","inertAtt","inert","result","isContentEditable","_node$getAttribute2","attValue","getCandidates","el","includeContainer","filter","candidates","_getCandidatesIteratively","elementsToCheck","assigned","content","nestedCandidates","validCandidate","shadowRoot","validShadowRoot","_nestedCandidates","hasTabIndex","getTabIndex","getSortOrderTabIndex","isScope","tabIndex","sortOrderedTabbables","isInput","isHiddenInput","isDetailsWithSummary","child","getCheckedRadio","nodes","form","isTabbableRadio","radioScope","queryRadios","radioSet","err","checked","isRadio","isNonTabbableRadio","isNodeAttached","_nodeRoot","nodeRoot","nodeRootHost","attached","_nodeRootHost","_nodeRootHost$ownerDo","_node$ownerDocument","_nodeRoot2","_nodeRootHost2","_nodeRootHost2$ownerD","isZeroArea","_node$getBoundingClie","isHidden","displayCheck","getShadowRoot","visible","isDirectSummary","nodeUnderDetails","originalNode","parentElement","rootNode","isDisabledFromFieldset","parentNode","isNodeMatchingSelectorFocusable","isNodeMatchingSelectorTabbable","isShadowRootTabbable","shadowHostNode","_sortByOrder","regularTabbables","orderedTabbables","item","candidateTabindex","sortable","tabbable","container","focusable","isTabbable","focusableCandidateSelector","isFocusable","_arrayLikeToArray","_arrayWithoutHoles","_defineProperty","_toPropertyKey","_iterableToArray","_nonIterableSpread","ownKeys","_objectSpread2","_toConsumableArray","_unsupportedIterableToArray","_toPrimitive","activeFocusTraps","trapStack","activeTrap","trapIndex","isSelectableInput","isEscapeEvent","isTabEvent","isKeyForward","isKeyBackward","delay","valueOrHandler","_len","params","_key","getActualTarget","event","internalTrapStack","createFocusTrap","userOptions","doc","getOption","configOverrideOptions","optionName","configOptionName","findContainerIndex","composedPath","tabbableNodes","getNodeForOption","_ref2","_ref2$hasFallback","hasFallback","_ref2$params","optionValue","getInitialFocusNode","firstTabbableGroup","firstTabbableNode","updateTabbableNodes","focusableNodes","lastTabbableNode","firstDomTabbableNode","lastDomTabbableNode","posTabIndexesFound","forward","nodeIdx","group","_getActiveElement","activeElement","_tryFocus","getReturnFocusNode","previousActiveElement","findNextNavNode","_ref3","target","_ref3$isBackward","isBackward","destinationNode","containerIndex","containerGroup","startOfGroupIndex","_ref4","destinationGroupIndex","destinationGroup","lastOfGroupIndex","_ref5","_destinationGroupIndex","_destinationGroup","checkPointerDown","checkFocusIn","targetContained","nextNode","navAcrossContainers","mruContainerIdx","mruTabIdx","checkKeyNav","checkTabKey","checkEscapeKey","checkClick","addListeners","removeListeners","checkDomRemoval","mutations","isFocusedNodeRemoved","mutation","removedNodes","mutationObserver","updateObservedNodes","activateOptions","onActivate","onPostActivate","checkCanFocusTrap","finishActivation","deactivateOptions","onDeactivate","onPostDeactivate","checkCanReturnFocus","returnFocus","finishDeactivation","pauseOptions","unpauseOptions","containerElements","elementsAsArray","paused","onPause","onPostPause","onUnpause","onPostUnpause","isRtl","isRTL","_sfc_main$1","defineComponent","ncPopover","style0","theme","_sfc_main","Dropdown","triggerElements","options2","error","logger","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","_component_NcPopoverTriggerProvider","resolveComponent","_component_Dropdown","openBlock","createBlock","$event","withCtx","slotProps","renderSlot","normalizeProps","guardReactiveProps","createVNode","cssModules","NcPopover","_export_sfc","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","createElementBlock","mergeProps","createElementVNode","toDisplayString","createCommentVNode","IconDotsHorizontal","register","t4","isSlotPopulated","vnodes","vnode","Comment","Fragment","Text","focusableSelector","NcButton","computed","createElementId","action","url","focusList","focusIndex","newFocusIndex","currentActiveElement","focusElement","liMenuParent","indexLength","firstCheckedIndex","button","actions","findActions","actions2","validInlineActions","inlineActions","menuActions","menuItemsActions","textInputActions","linkActions","hasTextInputAction","hasMenuItemAction","hasLinkAction","renderInlineAction","iconProp","icon","text","buttonText","title","propsToForward","type","renderActionsPopover","triggerIcon","triggerRandomId","NcActions","tryOnScopeDispose","failSilently","getCurrentScope","onScopeDispose","localProvidedStateMap","injectLocal","args","_getCurrentInstance","key","instance","getCurrentInstance","owner","hasInjectionContext","inject","isClient","notNullish","val","toString","isObject","noop","toRef","toRef$1","readonly","customRef","ref","createFilterWrapper","wrapper","resolve","reject","bypassFilter","invoke$1","debounceFilter","ms","timer","maxTimer","lastRejector","_clearTimeout","timer$1","lastInvoker","duration","maxDuration","pxValue","px","toArray","getLifeCycleTarget","createSharedComposable","composable","subscribers","scope","dispose","effectScope","useDebounceFn","watchWithFilter","source","cb","eventFilter","watchOptions","tryOnMounted","sync","onMounted","nextTick","useIntervalFn","interval","immediate","immediateCallback","isActive","shallowRef","clean","pause","resume","intervalValue","isRef","shallowReadonly","watchDebounced","debounce","maxWait","watchImmediate","defaultWindow","defaultDocument","unrefElement","elRef","_$el","plain","useEventListener","listener","firstParamTargets","test","_firstParamTargets$va","_firstParamTargets$va2","unref","raw_targets","raw_events","raw_listeners","raw_options","onCleanup","optionsClone","cleanups","onClickOutside","handler","window$1","ignore","capture","detectIframe","controls","shouldListen","shouldIgnore","target$1","hasMultipleRoots","vm","checkMultipleRoots","children","isProcessingClick","cleanup","_window$document$acti","stop","useMounted","isMounted","useSupported","callback","useMutationObserver","mutationOptions","observer","isSupported","stopWatch","items","newTargets","takeRecords","onElementRemoval","document$1","flush","stopFn","cleanupAndUpdate","watchEffect","mutationsList","stopHandle","createKeyPredicate","keyFilter","onKeyStroke","eventName","passive","dedupe","predicate","useActiveElement","_options$document","deep","triggerOnRemoval","getDeepActiveElement","_element$shadowRoot","trigger","listenerOptions","ssrWidthSymbol","useSSRWidth","ssrWidth","useMediaQuery","query","ssrSupport","mediaQuery","queryString","not","minWidth","maxWidth","res","usePreferredDark","useResizeObserver","observerOptions","_targets","els","_el","useElementSize","initialSize","box","isSVG","_unrefElement","stop1","entry","boxSize","$elem","formatBoxSize","inlineSize","blockSize","ele","stop2","useIntersectionObserver","root","rootMargin","threshold","targets","targets$1","root$1","EVENT_FOCUS_IN","EVENT_FOCUS_OUT","PSEUDO_CLASS_FOCUS_WITHIN","useFocusWithin","targetElement","_focused","focused","_targetElement$value$","_targetElement$value","_targetElement$value$2","resolveElement","elInitialOverflow","useScrollLock","initialState","isLocked","initialOverflow","lock","unlock","useSwipe","onSwipe","onSwipeEnd","onSwipeStart","coordsStart","reactive","coordsEnd","diffX","diffY","abs","isThresholdExceeded","isSwiping","getTouchEventCoords","updateCoordsStart","updateCoordsEnd","onTouchEnd","stops","MOBILE_BREAKPOINT","MOBILE_SMALL_BREAKPOINT","isLessThanBreakpoint","breakpoint","isMobile","isSmallMobile","useIsMobile","__props","__emit","props","emit","isLoading","handleClick","fallback","NcLoadingIcon","NcIconSvgWrapper","createTextVNode","t2","FEW_SECONDS_AGO","useFormatRelativeTime","timeoutId","language","relativeTime2","ignoreSeconds","relativeTime","updateRelativeTime","diff","useFormatTime","isMac","disableKeyboardShortcuts","derivedKeysRegex","nonAsciiPrintableRegex","shouldIgnoreEvent","eventHandler","useHotKey","keysOrFilter","validateKeyEvent","isKeyInLowerCase","isEventKeyInLowerCase","stopKeyDown","stopKeyUp","checkIfDarkTheme","backgroundInvertIfDark","isFullscreen","checkIfIsFullscreen","getSameNodeParent","getSameNodeAncestors","ancestors","parent","useScopeIdAttrs","scopeIds","instance2","scopeId","_hoisted_5","_hoisted_6","_hoisted_7","mergeModels","useCssVars","cssSlideshowDelay","showModal","useModel","scopeIdAttrs","modalId","maskElement","useTemplateRef","focusTrap","useFocusTrap","clearFocusTrap","isPlaying","stopSlideshow","startSlideshow","nextSlide","animationKey","runSlideshow","stopSwipe","handleSwipe","close","previousSlide","restartSlideshow","handleClickModalWrapper","Teleport","Transition","withDirectives","normalizeClass","mdiPause","mdiPlay","mdiClose","withModifiers","mdiChevronLeft","vShow","mdiChevronRight","NcModal","open","slots","useSlots","wrapperElement","dialogWidth","isNavigationCollapsed","hasNavigation","navigationId","navigationAriaLabelAttr","navigationAriaLabelledbyAttr","dialogRootElement","dialogTagName","dialogListeners","handleButtonClose","handleClosing","handleClosed","modalProps","resolveDynamicComponent","toHandlers","renderList","idx","NcDialog","spawnDialog","dialog","app","createApp","rest","payload","factory","module","this","global","Toastify","version","divElement","property","avatarElement","closeElement","self","getAxisOffsetAValue","xOffset","yOffset","rootElement","elementToInsert","toastElement","topLeftOffsetSize","topRightOffsetSize","offsetSize","allToasts","classUsed","containsClass","elem","yourClass","IconMove","IconCopy","gtBuilder","getGettextBuilder","translations","bundle","translation","getLoggerBuilder","FilePickerClosed","FilePicker","multiSelect","mimeTypeFilter","directoriesAllowed","noMenu","buttons","path","canPick","disabledNavigation","FilePickerVue","__vitePreload","FilePickerBuilder","basename","label","allow","getFilePickerBuilder","LoaderSvg","TOAST_ARIA_LIVE_OFF","TOAST_ARIA_LIVE_POLITE","TOAST_ARIA_LIVE_ASSERTIVE","ToastAriaLive","ToastAriaLive2","TOAST_DEFAULT_TIMEOUT","TOAST_PERMANENT_TIMEOUT","showMessage","classes","isNode","ariaLive","toast","showError","showWarning","showInfo","showSuccess","showLoading","loader","loaderContent","dialogButtons","handleUnload","NcNoteCard","Dialog","#name","#text","#buttons","#severity","severity","DialogBuilder","getDialogBuilder","showConfirmation","promise"],"ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26],"sources":["../node_modules/@nextcloud/l10n/dist/index.mjs","../node_modules/@nextcloud/vue/dist/chunks/useNcActions-CiGWxAJE.mjs","../node_modules/@nextcloud/vue/dist/chunks/focusTrap-HJQ4pqHV.mjs","../node_modules/@nextcloud/vue/dist/chunks/useTrapStackControl-B6cEicto.mjs","../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../node_modules/floating-vue/node_modules/@floating-ui/dom/dist/floating-ui.dom.browser.min.mjs","../node_modules/floating-vue/dist/floating-vue.mjs","../node_modules/tabbable/dist/index.esm.js","../node_modules/focus-trap/dist/focus-trap.esm.js","../node_modules/@nextcloud/vue/dist/chunks/rtl-v0UOPAM7.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcPopover-C-MTaPCs.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcActions-DWmvh7-Y.mjs","../node_modules/@vueuse/shared/dist/index.js","../node_modules/@vueuse/core/dist/index.js","../node_modules/@nextcloud/vue/dist/composables/useIsMobile/index.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcDialogButton.vue_vue_type_script_setup_true_lang-BBumVVme.mjs","../node_modules/@nextcloud/vue/dist/composables/useFormatDateTime/index.mjs","../node_modules/@nextcloud/vue/dist/chunks/platform-CC2ecGvV.mjs","../node_modules/@nextcloud/vue/dist/composables/useHotKey/index.mjs","../node_modules/@nextcloud/vue/dist/functions/isDarkTheme/index.mjs","../node_modules/@nextcloud/vue/dist/composables/useIsFullscreen/index.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcModal-MC_HktJd.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcDialog-CM7SCS7Z.mjs","../node_modules/@nextcloud/vue/dist/functions/dialog/index.mjs","../node_modules/toastify-js/src/toastify.js","../node_modules/@nextcloud/dialogs/dist/chunks/index-JpgrUA2Z.mjs"],"sourcesContent":["import { g as getCanonicalLocale, a as getLanguage } from \"./chunks/translation-DoG5ZELJ.mjs\";\nimport { b, e, i, l, d, r, c, s, t, t as t2, d as d2, u } from \"./chunks/translation-DoG5ZELJ.mjs\";\n/*!\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nfunction getFirstDay() {\n if (typeof globalThis.firstDay !== \"undefined\") {\n return globalThis.firstDay;\n }\n const intl = new Intl.Locale(getCanonicalLocale());\n const weekInfo = intl.getWeekInfo?.() ?? intl.weekInfo;\n if (weekInfo) {\n return weekInfo.firstDay % 7;\n }\n return 1;\n}\nfunction getDayNames() {\n if (typeof globalThis.dayNames !== \"undefined\") {\n return globalThis.dayNames;\n }\n const locale = getCanonicalLocale();\n return [\n new Date(1970, 0, 4).toLocaleDateString(locale, { weekday: \"long\" }),\n new Date(1970, 0, 5).toLocaleDateString(locale, { weekday: \"long\" }),\n new Date(1970, 0, 6).toLocaleDateString(locale, { weekday: \"long\" }),\n new Date(1970, 0, 7).toLocaleDateString(locale, { weekday: \"long\" }),\n new Date(1970, 0, 8).toLocaleDateString(locale, { weekday: \"long\" }),\n new Date(1970, 0, 9).toLocaleDateString(locale, { weekday: \"long\" }),\n new Date(1970, 0, 10).toLocaleDateString(locale, { weekday: \"long\" })\n ];\n}\nfunction getDayNamesShort() {\n if (typeof globalThis.dayNamesShort !== \"undefined\") {\n return globalThis.dayNamesShort;\n }\n const locale = getCanonicalLocale();\n return [\n new Date(1970, 0, 4).toLocaleDateString(locale, { weekday: \"short\" }),\n new Date(1970, 0, 5).toLocaleDateString(locale, { weekday: \"short\" }),\n new Date(1970, 0, 6).toLocaleDateString(locale, { weekday: \"short\" }),\n new Date(1970, 0, 7).toLocaleDateString(locale, { weekday: \"short\" }),\n new Date(1970, 0, 8).toLocaleDateString(locale, { weekday: \"short\" }),\n new Date(1970, 0, 9).toLocaleDateString(locale, { weekday: \"short\" }),\n new Date(1970, 0, 10).toLocaleDateString(locale, { weekday: \"short\" })\n ];\n}\nfunction getDayNamesMin() {\n if (typeof globalThis.dayNamesMin !== \"undefined\") {\n return globalThis.dayNamesMin;\n }\n const locale = getCanonicalLocale();\n return [\n new Date(1970, 0, 4).toLocaleDateString(locale, { weekday: \"narrow\" }),\n new Date(1970, 0, 5).toLocaleDateString(locale, { weekday: \"narrow\" }),\n new Date(1970, 0, 6).toLocaleDateString(locale, { weekday: \"narrow\" }),\n new Date(1970, 0, 7).toLocaleDateString(locale, { weekday: \"narrow\" }),\n new Date(1970, 0, 8).toLocaleDateString(locale, { weekday: \"narrow\" }),\n new Date(1970, 0, 9).toLocaleDateString(locale, { weekday: \"narrow\" }),\n new Date(1970, 0, 10).toLocaleDateString(locale, { weekday: \"narrow\" })\n ];\n}\nfunction getMonthNames() {\n if (typeof globalThis.monthNames !== \"undefined\") {\n return globalThis.monthNames;\n }\n const locale = getCanonicalLocale();\n return [\n new Date(1970, 0).toLocaleDateString(locale, { month: \"long\" }),\n new Date(1970, 1).toLocaleDateString(locale, { month: \"long\" }),\n new Date(1970, 2).toLocaleDateString(locale, { month: \"long\" }),\n new Date(1970, 3).toLocaleDateString(locale, { month: \"long\" }),\n new Date(1970, 4).toLocaleDateString(locale, { month: \"long\" }),\n new Date(1970, 5).toLocaleDateString(locale, { month: \"long\" }),\n new Date(1970, 6).toLocaleDateString(locale, { month: \"long\" }),\n new Date(1970, 7).toLocaleDateString(locale, { month: \"long\" }),\n new Date(1970, 8).toLocaleDateString(locale, { month: \"long\" }),\n new Date(1970, 9).toLocaleDateString(locale, { month: \"long\" }),\n new Date(1970, 10).toLocaleDateString(locale, { month: \"long\" }),\n new Date(1970, 11).toLocaleDateString(locale, { month: \"long\" })\n ];\n}\nfunction getMonthNamesShort() {\n if (typeof globalThis.monthNamesShort !== \"undefined\") {\n return globalThis.monthNamesShort;\n }\n const locale = getCanonicalLocale();\n return [\n new Date(1970, 0).toLocaleDateString(locale, { month: \"short\" }),\n new Date(1970, 1).toLocaleDateString(locale, { month: \"short\" }),\n new Date(1970, 2).toLocaleDateString(locale, { month: \"short\" }),\n new Date(1970, 3).toLocaleDateString(locale, { month: \"short\" }),\n new Date(1970, 4).toLocaleDateString(locale, { month: \"short\" }),\n new Date(1970, 5).toLocaleDateString(locale, { month: \"short\" }),\n new Date(1970, 6).toLocaleDateString(locale, { month: \"short\" }),\n new Date(1970, 7).toLocaleDateString(locale, { month: \"short\" }),\n new Date(1970, 8).toLocaleDateString(locale, { month: \"short\" }),\n new Date(1970, 9).toLocaleDateString(locale, { month: \"short\" }),\n new Date(1970, 10).toLocaleDateString(locale, { month: \"short\" }),\n new Date(1970, 11).toLocaleDateString(locale, { month: \"short\" })\n ];\n}\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nfunction formatRelativeTime(timestamp = Date.now(), opts = {}) {\n const options = {\n ignoreSeconds: false,\n language: getLanguage(),\n relativeTime: \"long\",\n ...opts\n };\n const date = new Date(timestamp);\n const formatter = new Intl.RelativeTimeFormat([options.language, getLanguage()], { numeric: \"auto\", style: options.relativeTime });\n const diff = date.getTime() - Date.now();\n const seconds = diff / 1e3;\n if (Math.abs(seconds) < 59.5) {\n return options.ignoreSeconds || formatter.format(Math.round(seconds), \"second\");\n }\n const minutes = seconds / 60;\n if (Math.abs(minutes) <= 59) {\n return formatter.format(Math.round(minutes), \"minute\");\n }\n const hours = minutes / 60;\n if (Math.abs(hours) < 23.5) {\n return formatter.format(Math.round(hours), \"hour\");\n }\n const days = hours / 24;\n if (Math.abs(days) < 6.5) {\n return formatter.format(Math.round(days), \"day\");\n }\n if (Math.abs(days) < 27.5) {\n const weeks = days / 7;\n return formatter.format(Math.round(weeks), \"week\");\n }\n const months = days / 30;\n const format = Math.abs(months) < 11 ? { month: options.relativeTime, day: \"numeric\" } : { year: options.relativeTime === \"narrow\" ? \"2-digit\" : \"numeric\", month: options.relativeTime };\n const dateTimeFormatter = new Intl.DateTimeFormat([options.language, getLanguage()], format);\n return dateTimeFormatter.format(date);\n}\nexport {\n formatRelativeTime,\n getCanonicalLocale,\n getDayNames,\n getDayNamesMin,\n getDayNamesShort,\n getFirstDay,\n getLanguage,\n b as getLocale,\n getMonthNames,\n getMonthNamesShort,\n e as getPlural,\n i as isRTL,\n l as loadTranslations,\n d as n,\n r as register,\n c as setLanguage,\n s as setLocale,\n t,\n t2 as translate,\n d2 as translatePlural,\n u as unregister\n};\n//# sourceMappingURL=index.mjs.map\n","const NC_ACTIONS_IS_SEMANTIC_MENU = Symbol.for(\"NcActions:isSemanticMenu\");\nconst NC_ACTIONS_CLOSE_MENU = Symbol.for(\"NcActions:closeMenu\");\nexport {\n NC_ACTIONS_CLOSE_MENU as N,\n NC_ACTIONS_IS_SEMANTIC_MENU as a\n};\n//# sourceMappingURL=useNcActions-CiGWxAJE.mjs.map\n","function getTrapStack() {\n window._nc_focus_trap ??= [];\n return window._nc_focus_trap;\n}\nfunction createTrapStackController() {\n let pausedStack = [];\n return {\n /**\n * Pause the current focus-trap stack\n */\n pause() {\n pausedStack = [...getTrapStack()];\n for (const trap of pausedStack) {\n trap.pause();\n }\n },\n /**\n * Unpause the paused focus trap stack\n * If the actual stack is different from the paused one, ignore unpause.\n */\n unpause() {\n if (pausedStack.length === getTrapStack().length) {\n for (const trap of pausedStack) {\n trap.unpause();\n }\n }\n pausedStack = [];\n }\n };\n}\nexport {\n createTrapStackController as c,\n getTrapStack as g\n};\n//# sourceMappingURL=focusTrap-HJQ4pqHV.mjs.map\n","import { watch, toValue, onUnmounted } from \"vue\";\nimport { c as createTrapStackController } from \"./focusTrap-HJQ4pqHV.mjs\";\nfunction useTrapStackControl(shouldPause, options = {}) {\n const trapStackController = createTrapStackController();\n watch(shouldPause, () => {\n if (toValue(options.disabled)) {\n return;\n }\n if (toValue(shouldPause)) {\n trapStackController.pause();\n } else {\n trapStackController.unpause();\n }\n });\n onUnmounted(() => {\n trapStackController.unpause();\n });\n}\nexport {\n useTrapStackControl as u\n};\n//# sourceMappingURL=useTrapStackControl-B6cEicto.mjs.map\n","/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nconst yAxisSides = /*#__PURE__*/new Set(['top', 'bottom']);\nfunction getSideAxis(placement) {\n return yAxisSides.has(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nconst lrPlacement = ['left', 'right'];\nconst rlPlacement = ['right', 'left'];\nconst tbPlacement = ['top', 'bottom'];\nconst btPlacement = ['bottom', 'top'];\nfunction getSideList(side, isStart, rtl) {\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rlPlacement : lrPlacement;\n return isStart ? lrPlacement : rlPlacement;\n case 'left':\n case 'right':\n return isStart ? tbPlacement : btPlacement;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n x,\n y,\n width: rects.floating.width,\n height: rects.floating.height\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements,\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const initialSideAxis = getSideAxis(initialPlacement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n const ignoreCrossAxisOverflow = checkCrossAxis === 'alignment' ? initialSideAxis !== getSideAxis(nextPlacement) : false;\n if (!ignoreCrossAxisOverflow ||\n // We leave the current main axis only if every placement on that axis\n // overflows the main axis.\n overflowsData.every(d => getSideAxis(d.placement) === initialSideAxis ? d.overflows[0] > 0 : true)) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$filter2;\n const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n if (hasFallbackAxisSideDirection) {\n const currentSideAxis = getSideAxis(d.placement);\n return currentSideAxis === initialSideAxis ||\n // Create a bias to the `y` side axis due to horizontal\n // reading directions favoring greater width.\n currentSideAxis === 'y';\n }\n return true;\n }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\nconst originSides = /*#__PURE__*/new Set(['left', 'top']);\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = originSides.has(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: rawValue.mainAxis || 0,\n crossAxis: rawValue.crossAxis || 0,\n alignmentAxis: rawValue.alignmentAxis\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y,\n enabled: {\n [mainAxis]: checkMainAxis,\n [crossAxis]: checkCrossAxis\n }\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = originSides.has(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n var _state$middlewareData, _state$middlewareData2;\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n const maximumClippingWidth = width - overflow.left - overflow.right;\n const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);\n const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {\n availableWidth = maximumClippingWidth;\n }\n if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {\n availableHeight = maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","import{rectToClientRect as t,computePosition as e}from\"@floating-ui/core\";export{arrow,autoPlacement,detectOverflow,flip,hide,inline,limitShift,offset,shift,size}from\"@floating-ui/core\";function n(t){var e;return(null==(e=t.ownerDocument)?void 0:e.defaultView)||window}function o(t){return n(t).getComputedStyle(t)}const i=Math.min,r=Math.max,l=Math.round;function c(t){const e=o(t);let n=parseFloat(e.width),i=parseFloat(e.height);const r=t.offsetWidth,c=t.offsetHeight,s=l(n)!==r||l(i)!==c;return s&&(n=r,i=c),{width:n,height:i,fallback:s}}function s(t){return h(t)?(t.nodeName||\"\").toLowerCase():\"\"}let f;function u(){if(f)return f;const t=navigator.userAgentData;return t&&Array.isArray(t.brands)?(f=t.brands.map((t=>t.brand+\"/\"+t.version)).join(\" \"),f):navigator.userAgent}function a(t){return t instanceof n(t).HTMLElement}function d(t){return t instanceof n(t).Element}function h(t){return t instanceof n(t).Node}function p(t){if(\"undefined\"==typeof ShadowRoot)return!1;return t instanceof n(t).ShadowRoot||t instanceof ShadowRoot}function g(t){const{overflow:e,overflowX:n,overflowY:i,display:r}=o(t);return/auto|scroll|overlay|hidden|clip/.test(e+i+n)&&![\"inline\",\"contents\"].includes(r)}function m(t){return[\"table\",\"td\",\"th\"].includes(s(t))}function y(t){const e=/firefox/i.test(u()),n=o(t),i=n.backdropFilter||n.WebkitBackdropFilter;return\"none\"!==n.transform||\"none\"!==n.perspective||!!i&&\"none\"!==i||e&&\"filter\"===n.willChange||e&&!!n.filter&&\"none\"!==n.filter||[\"transform\",\"perspective\"].some((t=>n.willChange.includes(t)))||[\"paint\",\"layout\",\"strict\",\"content\"].some((t=>{const e=n.contain;return null!=e&&e.includes(t)}))}function x(){return!/^((?!chrome|android).)*safari/i.test(u())}function w(t){return[\"html\",\"body\",\"#document\"].includes(s(t))}function v(t){return d(t)?t:t.contextElement}const b={x:1,y:1};function L(t){const e=v(t);if(!a(e))return b;const n=e.getBoundingClientRect(),{width:o,height:i,fallback:r}=c(e);let s=(r?l(n.width):n.width)/o,f=(r?l(n.height):n.height)/i;return s&&Number.isFinite(s)||(s=1),f&&Number.isFinite(f)||(f=1),{x:s,y:f}}function E(t,e,o,i){var r,l;void 0===e&&(e=!1),void 0===o&&(o=!1);const c=t.getBoundingClientRect(),s=v(t);let f=b;e&&(i?d(i)&&(f=L(i)):f=L(t));const u=s?n(s):window,a=!x()&&o;let h=(c.left+(a&&(null==(r=u.visualViewport)?void 0:r.offsetLeft)||0))/f.x,p=(c.top+(a&&(null==(l=u.visualViewport)?void 0:l.offsetTop)||0))/f.y,g=c.width/f.x,m=c.height/f.y;if(s){const t=n(s),e=i&&d(i)?n(i):i;let o=t.frameElement;for(;o&&i&&e!==t;){const t=L(o),e=o.getBoundingClientRect(),i=getComputedStyle(o);e.x+=(o.clientLeft+parseFloat(i.paddingLeft))*t.x,e.y+=(o.clientTop+parseFloat(i.paddingTop))*t.y,h*=t.x,p*=t.y,g*=t.x,m*=t.y,h+=e.x,p+=e.y,o=n(o).frameElement}}return{width:g,height:m,top:p,right:h+g,bottom:p+m,left:h,x:h,y:p}}function R(t){return((h(t)?t.ownerDocument:t.document)||window.document).documentElement}function T(t){return d(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function C(t){return E(R(t)).left+T(t).scrollLeft}function F(t){if(\"html\"===s(t))return t;const e=t.assignedSlot||t.parentNode||p(t)&&t.host||R(t);return p(e)?e.host:e}function W(t){const e=F(t);return w(e)?e.ownerDocument.body:a(e)&&g(e)?e:W(e)}function D(t,e){var o;void 0===e&&(e=[]);const i=W(t),r=i===(null==(o=t.ownerDocument)?void 0:o.body),l=n(i);return r?e.concat(l,l.visualViewport||[],g(i)?i:[]):e.concat(i,D(i))}function S(e,i,l){return\"viewport\"===i?t(function(t,e){const o=n(t),i=R(t),r=o.visualViewport;let l=i.clientWidth,c=i.clientHeight,s=0,f=0;if(r){l=r.width,c=r.height;const t=x();(t||!t&&\"fixed\"===e)&&(s=r.offsetLeft,f=r.offsetTop)}return{width:l,height:c,x:s,y:f}}(e,l)):d(i)?t(function(t,e){const n=E(t,!0,\"fixed\"===e),o=n.top+t.clientTop,i=n.left+t.clientLeft,r=a(t)?L(t):{x:1,y:1};return{width:t.clientWidth*r.x,height:t.clientHeight*r.y,x:i*r.x,y:o*r.y}}(i,l)):t(function(t){const e=R(t),n=T(t),i=t.ownerDocument.body,l=r(e.scrollWidth,e.clientWidth,i.scrollWidth,i.clientWidth),c=r(e.scrollHeight,e.clientHeight,i.scrollHeight,i.clientHeight);let s=-n.scrollLeft+C(t);const f=-n.scrollTop;return\"rtl\"===o(i).direction&&(s+=r(e.clientWidth,i.clientWidth)-l),{width:l,height:c,x:s,y:f}}(R(e)))}function A(t){return a(t)&&\"fixed\"!==o(t).position?t.offsetParent:null}function H(t){const e=n(t);let i=A(t);for(;i&&m(i)&&\"static\"===o(i).position;)i=A(i);return i&&(\"html\"===s(i)||\"body\"===s(i)&&\"static\"===o(i).position&&!y(i))?e:i||function(t){let e=F(t);for(;a(e)&&!w(e);){if(y(e))return e;e=F(e)}return null}(t)||e}function O(t,e,n){const o=a(e),i=R(e),r=E(t,!0,\"fixed\"===n,e);let l={scrollLeft:0,scrollTop:0};const c={x:0,y:0};if(o||!o&&\"fixed\"!==n)if((\"body\"!==s(e)||g(i))&&(l=T(e)),a(e)){const t=E(e,!0);c.x=t.x+e.clientLeft,c.y=t.y+e.clientTop}else i&&(c.x=C(i));return{x:r.left+l.scrollLeft-c.x,y:r.top+l.scrollTop-c.y,width:r.width,height:r.height}}const P={getClippingRect:function(t){let{element:e,boundary:n,rootBoundary:l,strategy:c}=t;const f=\"clippingAncestors\"===n?function(t,e){const n=e.get(t);if(n)return n;let i=D(t).filter((t=>d(t)&&\"body\"!==s(t))),r=null;const l=\"fixed\"===o(t).position;let c=l?F(t):t;for(;d(c)&&!w(c);){const t=o(c),e=y(c);(l?e||r:e||\"static\"!==t.position||!r||![\"absolute\",\"fixed\"].includes(r.position))?r=t:i=i.filter((t=>t!==c)),c=F(c)}return e.set(t,i),i}(e,this._c):[].concat(n),u=[...f,l],a=u[0],h=u.reduce(((t,n)=>{const o=S(e,n,c);return t.top=r(o.top,t.top),t.right=i(o.right,t.right),t.bottom=i(o.bottom,t.bottom),t.left=r(o.left,t.left),t}),S(e,a,c));return{width:h.right-h.left,height:h.bottom-h.top,x:h.left,y:h.top}},convertOffsetParentRelativeRectToViewportRelativeRect:function(t){let{rect:e,offsetParent:n,strategy:o}=t;const i=a(n),r=R(n);if(n===r)return e;let l={scrollLeft:0,scrollTop:0},c={x:1,y:1};const f={x:0,y:0};if((i||!i&&\"fixed\"!==o)&&((\"body\"!==s(n)||g(r))&&(l=T(n)),a(n))){const t=E(n);c=L(n),f.x=t.x+n.clientLeft,f.y=t.y+n.clientTop}return{width:e.width*c.x,height:e.height*c.y,x:e.x*c.x-l.scrollLeft*c.x+f.x,y:e.y*c.y-l.scrollTop*c.y+f.y}},isElement:d,getDimensions:function(t){return a(t)?c(t):t.getBoundingClientRect()},getOffsetParent:H,getDocumentElement:R,getScale:L,async getElementRects(t){let{reference:e,floating:n,strategy:o}=t;const i=this.getOffsetParent||H,r=this.getDimensions;return{reference:O(e,await i(n),o),floating:{x:0,y:0,...await r(n)}}},getClientRects:t=>Array.from(t.getClientRects()),isRTL:t=>\"rtl\"===o(t).direction};function z(t,e,n,o){void 0===o&&(o={});const{ancestorScroll:i=!0,ancestorResize:r=!0,elementResize:l=!0,animationFrame:c=!1}=o,s=i&&!c,f=s||r?[...d(t)?D(t):t.contextElement?D(t.contextElement):[],...D(e)]:[];f.forEach((t=>{s&&t.addEventListener(\"scroll\",n,{passive:!0}),r&&t.addEventListener(\"resize\",n)}));let u,a=null;if(l){let o=!0;a=new ResizeObserver((()=>{o||n(),o=!1})),d(t)&&!c&&a.observe(t),d(t)||!t.contextElement||c||a.observe(t.contextElement),a.observe(e)}let h=c?E(t):null;return c&&function e(){const o=E(t);!h||o.x===h.x&&o.y===h.y&&o.width===h.width&&o.height===h.height||n();h=o,u=requestAnimationFrame(e)}(),n(),()=>{var t;f.forEach((t=>{s&&t.removeEventListener(\"scroll\",n),r&&t.removeEventListener(\"resize\",n)})),null==(t=a)||t.disconnect(),a=null,c&&cancelAnimationFrame(u)}}const B=(t,n,o)=>{const i=new Map,r={platform:P,...o},l={...r.platform,_c:i};return e(t,n,{...r,platform:l})};export{z as autoUpdate,B as computePosition,D as getOverflowAncestors,P as platform};\n","import { defineComponent as O, openBlock as f, createElementBlock as T, normalizeClass as J, renderSlot as A, normalizeProps as ke, guardReactiveProps as Le, pushScopeId as De, popScopeId as Ie, nextTick as Fe, createBlock as M, withScopeId as Re, resolveComponent as P, normalizeStyle as W, withKeys as je, createElementVNode as w, Fragment as Ve, createCommentVNode as se, mergeProps as $e, withCtx as N, createVNode as ve, toDisplayString as We, ref as U, createApp as Ge, h as qe } from \"vue\";\nimport { offset as xe, autoPlacement as Ue, shift as Ye, flip as Xe, arrow as Ke, size as Je, computePosition as Qe, getOverflowAncestors as ne } from \"@floating-ui/dom\";\nfunction ye(e, t) {\n for (const o in t)\n Object.prototype.hasOwnProperty.call(t, o) && (typeof t[o] == \"object\" && e[o] ? ye(e[o], t[o]) : e[o] = t[o]);\n}\nconst h = {\n // Disable popper components\n disabled: !1,\n // Default position offset along main axis (px)\n distance: 5,\n // Default position offset along cross axis (px)\n skidding: 0,\n // Default container where the tooltip will be appended\n container: \"body\",\n // Element used to compute position and size boundaries\n boundary: void 0,\n // Skip delay & CSS transitions when another popper is shown, so that the popper appear to instanly move to the new position.\n instantMove: !1,\n // Auto destroy tooltip DOM nodes (ms)\n disposeTimeout: 150,\n // Triggers on the popper itself\n popperTriggers: [],\n // Positioning strategy\n strategy: \"absolute\",\n // Prevent overflow\n preventOverflow: !0,\n // Flip to the opposite placement if needed\n flip: !0,\n // Shift on the cross axis to prevent the popper from overflowing\n shift: !0,\n // Overflow padding (px)\n overflowPadding: 0,\n // Arrow padding (px)\n arrowPadding: 0,\n // Compute arrow overflow (useful to hide it)\n arrowOverflow: !0,\n /**\n * By default, compute autohide on 'click'.\n */\n autoHideOnMousedown: !1,\n // Themes\n themes: {\n tooltip: {\n // Default tooltip placement relative to target element\n placement: \"top\",\n // Default events that trigger the tooltip\n triggers: [\"hover\", \"focus\", \"touch\"],\n // Close tooltip on click on tooltip target\n hideTriggers: (e) => [...e, \"click\"],\n // Delay (ms)\n delay: {\n show: 200,\n hide: 0\n },\n // Update popper on content resize\n handleResize: !1,\n // Enable HTML content in directive\n html: !1,\n // Displayed when tooltip content is loading\n loadingContent: \"...\"\n },\n dropdown: {\n // Default dropdown placement relative to target element\n placement: \"bottom\",\n // Default events that trigger the dropdown\n triggers: [\"click\"],\n // Delay (ms)\n delay: 0,\n // Update popper on content resize\n handleResize: !0,\n // Hide on clock outside\n autoHide: !0\n },\n menu: {\n $extend: \"dropdown\",\n triggers: [\"hover\", \"focus\"],\n popperTriggers: [\"hover\"],\n delay: {\n show: 0,\n hide: 400\n }\n }\n }\n};\nfunction S(e, t) {\n let o = h.themes[e] || {}, i;\n do\n i = o[t], typeof i > \"u\" ? o.$extend ? o = h.themes[o.$extend] || {} : (o = null, i = h[t]) : o = null;\n while (o);\n return i;\n}\nfunction Ze(e) {\n const t = [e];\n let o = h.themes[e] || {};\n do\n o.$extend && !o.$resetCss ? (t.push(o.$extend), o = h.themes[o.$extend] || {}) : o = null;\n while (o);\n return t.map((i) => `v-popper--theme-${i}`);\n}\nfunction re(e) {\n const t = [e];\n let o = h.themes[e] || {};\n do\n o.$extend ? (t.push(o.$extend), o = h.themes[o.$extend] || {}) : o = null;\n while (o);\n return t;\n}\nlet $ = !1;\nif (typeof window < \"u\") {\n $ = !1;\n try {\n const e = Object.defineProperty({}, \"passive\", {\n get() {\n $ = !0;\n }\n });\n window.addEventListener(\"test\", null, e);\n } catch {\n }\n}\nlet _e = !1;\ntypeof window < \"u\" && typeof navigator < \"u\" && (_e = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream);\nconst Te = [\"auto\", \"top\", \"bottom\", \"left\", \"right\"].reduce((e, t) => e.concat([\n t,\n `${t}-start`,\n `${t}-end`\n]), []), pe = {\n hover: \"mouseenter\",\n focus: \"focus\",\n click: \"click\",\n touch: \"touchstart\",\n pointer: \"pointerdown\"\n}, ae = {\n hover: \"mouseleave\",\n focus: \"blur\",\n click: \"click\",\n touch: \"touchend\",\n pointer: \"pointerup\"\n};\nfunction de(e, t) {\n const o = e.indexOf(t);\n o !== -1 && e.splice(o, 1);\n}\nfunction G() {\n return new Promise((e) => requestAnimationFrame(() => {\n requestAnimationFrame(e);\n }));\n}\nconst d = [];\nlet g = null;\nconst le = {};\nfunction he(e) {\n let t = le[e];\n return t || (t = le[e] = []), t;\n}\nlet Y = function() {\n};\ntypeof window < \"u\" && (Y = window.Element);\nfunction n(e) {\n return function(t) {\n return S(t.theme, e);\n };\n}\nconst q = \"__floating-vue__popper\", Q = () => O({\n name: \"VPopper\",\n provide() {\n return {\n [q]: {\n parentPopper: this\n }\n };\n },\n inject: {\n [q]: { default: null }\n },\n props: {\n theme: {\n type: String,\n required: !0\n },\n targetNodes: {\n type: Function,\n required: !0\n },\n referenceNode: {\n type: Function,\n default: null\n },\n popperNode: {\n type: Function,\n required: !0\n },\n shown: {\n type: Boolean,\n default: !1\n },\n showGroup: {\n type: String,\n default: null\n },\n // eslint-disable-next-line vue/require-prop-types\n ariaId: {\n default: null\n },\n disabled: {\n type: Boolean,\n default: n(\"disabled\")\n },\n positioningDisabled: {\n type: Boolean,\n default: n(\"positioningDisabled\")\n },\n placement: {\n type: String,\n default: n(\"placement\"),\n validator: (e) => Te.includes(e)\n },\n delay: {\n type: [String, Number, Object],\n default: n(\"delay\")\n },\n distance: {\n type: [Number, String],\n default: n(\"distance\")\n },\n skidding: {\n type: [Number, String],\n default: n(\"skidding\")\n },\n triggers: {\n type: Array,\n default: n(\"triggers\")\n },\n showTriggers: {\n type: [Array, Function],\n default: n(\"showTriggers\")\n },\n hideTriggers: {\n type: [Array, Function],\n default: n(\"hideTriggers\")\n },\n popperTriggers: {\n type: Array,\n default: n(\"popperTriggers\")\n },\n popperShowTriggers: {\n type: [Array, Function],\n default: n(\"popperShowTriggers\")\n },\n popperHideTriggers: {\n type: [Array, Function],\n default: n(\"popperHideTriggers\")\n },\n container: {\n type: [String, Object, Y, Boolean],\n default: n(\"container\")\n },\n boundary: {\n type: [String, Y],\n default: n(\"boundary\")\n },\n strategy: {\n type: String,\n validator: (e) => [\"absolute\", \"fixed\"].includes(e),\n default: n(\"strategy\")\n },\n autoHide: {\n type: [Boolean, Function],\n default: n(\"autoHide\")\n },\n handleResize: {\n type: Boolean,\n default: n(\"handleResize\")\n },\n instantMove: {\n type: Boolean,\n default: n(\"instantMove\")\n },\n eagerMount: {\n type: Boolean,\n default: n(\"eagerMount\")\n },\n popperClass: {\n type: [String, Array, Object],\n default: n(\"popperClass\")\n },\n computeTransformOrigin: {\n type: Boolean,\n default: n(\"computeTransformOrigin\")\n },\n /**\n * @deprecated\n */\n autoMinSize: {\n type: Boolean,\n default: n(\"autoMinSize\")\n },\n autoSize: {\n type: [Boolean, String],\n default: n(\"autoSize\")\n },\n /**\n * @deprecated\n */\n autoMaxSize: {\n type: Boolean,\n default: n(\"autoMaxSize\")\n },\n autoBoundaryMaxSize: {\n type: Boolean,\n default: n(\"autoBoundaryMaxSize\")\n },\n preventOverflow: {\n type: Boolean,\n default: n(\"preventOverflow\")\n },\n overflowPadding: {\n type: [Number, String],\n default: n(\"overflowPadding\")\n },\n arrowPadding: {\n type: [Number, String],\n default: n(\"arrowPadding\")\n },\n arrowOverflow: {\n type: Boolean,\n default: n(\"arrowOverflow\")\n },\n flip: {\n type: Boolean,\n default: n(\"flip\")\n },\n shift: {\n type: Boolean,\n default: n(\"shift\")\n },\n shiftCrossAxis: {\n type: Boolean,\n default: n(\"shiftCrossAxis\")\n },\n noAutoFocus: {\n type: Boolean,\n default: n(\"noAutoFocus\")\n },\n disposeTimeout: {\n type: Number,\n default: n(\"disposeTimeout\")\n }\n },\n emits: {\n show: () => !0,\n hide: () => !0,\n \"update:shown\": (e) => !0,\n \"apply-show\": () => !0,\n \"apply-hide\": () => !0,\n \"close-group\": () => !0,\n \"close-directive\": () => !0,\n \"auto-hide\": () => !0,\n resize: () => !0\n },\n data() {\n return {\n isShown: !1,\n isMounted: !1,\n skipTransition: !1,\n classes: {\n showFrom: !1,\n showTo: !1,\n hideFrom: !1,\n hideTo: !0\n },\n result: {\n x: 0,\n y: 0,\n placement: \"\",\n strategy: this.strategy,\n arrow: {\n x: 0,\n y: 0,\n centerOffset: 0\n },\n transformOrigin: null\n },\n randomId: `popper_${[Math.random(), Date.now()].map((e) => e.toString(36).substring(2, 10)).join(\"_\")}`,\n shownChildren: /* @__PURE__ */ new Set(),\n lastAutoHide: !0,\n pendingHide: !1,\n containsGlobalTarget: !1,\n isDisposed: !0,\n mouseDownContains: !1\n };\n },\n computed: {\n popperId() {\n return this.ariaId != null ? this.ariaId : this.randomId;\n },\n shouldMountContent() {\n return this.eagerMount || this.isMounted;\n },\n slotData() {\n return {\n popperId: this.popperId,\n isShown: this.isShown,\n shouldMountContent: this.shouldMountContent,\n skipTransition: this.skipTransition,\n autoHide: typeof this.autoHide == \"function\" ? this.lastAutoHide : this.autoHide,\n show: this.show,\n hide: this.hide,\n handleResize: this.handleResize,\n onResize: this.onResize,\n classes: {\n ...this.classes,\n popperClass: this.popperClass\n },\n result: this.positioningDisabled ? null : this.result,\n attrs: this.$attrs\n };\n },\n parentPopper() {\n var e;\n return (e = this[q]) == null ? void 0 : e.parentPopper;\n },\n hasPopperShowTriggerHover() {\n var e, t;\n return ((e = this.popperTriggers) == null ? void 0 : e.includes(\"hover\")) || ((t = this.popperShowTriggers) == null ? void 0 : t.includes(\"hover\"));\n }\n },\n watch: {\n shown: \"$_autoShowHide\",\n disabled(e) {\n e ? this.dispose() : this.init();\n },\n async container() {\n this.isShown && (this.$_ensureTeleport(), await this.$_computePosition());\n },\n triggers: {\n handler: \"$_refreshListeners\",\n deep: !0\n },\n positioningDisabled: \"$_refreshListeners\",\n ...[\n \"placement\",\n \"distance\",\n \"skidding\",\n \"boundary\",\n \"strategy\",\n \"overflowPadding\",\n \"arrowPadding\",\n \"preventOverflow\",\n \"shift\",\n \"shiftCrossAxis\",\n \"flip\"\n ].reduce((e, t) => (e[t] = \"$_computePosition\", e), {})\n },\n created() {\n this.autoMinSize && console.warn('[floating-vue] `autoMinSize` option is deprecated. Use `autoSize=\"min\"` instead.'), this.autoMaxSize && console.warn(\"[floating-vue] `autoMaxSize` option is deprecated. Use `autoBoundaryMaxSize` instead.\");\n },\n mounted() {\n this.init(), this.$_detachPopperNode();\n },\n activated() {\n this.$_autoShowHide();\n },\n deactivated() {\n this.hide();\n },\n beforeUnmount() {\n this.dispose();\n },\n methods: {\n show({ event: e = null, skipDelay: t = !1, force: o = !1 } = {}) {\n var i, s;\n (i = this.parentPopper) != null && i.lockedChild && this.parentPopper.lockedChild !== this || (this.pendingHide = !1, (o || !this.disabled) && (((s = this.parentPopper) == null ? void 0 : s.lockedChild) === this && (this.parentPopper.lockedChild = null), this.$_scheduleShow(e, t), this.$emit(\"show\"), this.$_showFrameLocked = !0, requestAnimationFrame(() => {\n this.$_showFrameLocked = !1;\n })), this.$emit(\"update:shown\", !0));\n },\n hide({ event: e = null, skipDelay: t = !1 } = {}) {\n var o;\n if (!this.$_hideInProgress) {\n if (this.shownChildren.size > 0) {\n this.pendingHide = !0;\n return;\n }\n if (this.hasPopperShowTriggerHover && this.$_isAimingPopper()) {\n this.parentPopper && (this.parentPopper.lockedChild = this, clearTimeout(this.parentPopper.lockedChildTimer), this.parentPopper.lockedChildTimer = setTimeout(() => {\n this.parentPopper.lockedChild === this && (this.parentPopper.lockedChild.hide({ skipDelay: t }), this.parentPopper.lockedChild = null);\n }, 1e3));\n return;\n }\n ((o = this.parentPopper) == null ? void 0 : o.lockedChild) === this && (this.parentPopper.lockedChild = null), this.pendingHide = !1, this.$_scheduleHide(e, t), this.$emit(\"hide\"), this.$emit(\"update:shown\", !1);\n }\n },\n init() {\n var e;\n this.isDisposed && (this.isDisposed = !1, this.isMounted = !1, this.$_events = [], this.$_preventShow = !1, this.$_referenceNode = ((e = this.referenceNode) == null ? void 0 : e.call(this)) ?? this.$el, this.$_targetNodes = this.targetNodes().filter((t) => t.nodeType === t.ELEMENT_NODE), this.$_popperNode = this.popperNode(), this.$_innerNode = this.$_popperNode.querySelector(\".v-popper__inner\"), this.$_arrowNode = this.$_popperNode.querySelector(\".v-popper__arrow-container\"), this.$_swapTargetAttrs(\"title\", \"data-original-title\"), this.$_detachPopperNode(), this.triggers.length && this.$_addEventListeners(), this.shown && this.show());\n },\n dispose() {\n this.isDisposed || (this.isDisposed = !0, this.$_removeEventListeners(), this.hide({ skipDelay: !0 }), this.$_detachPopperNode(), this.isMounted = !1, this.isShown = !1, this.$_updateParentShownChildren(!1), this.$_swapTargetAttrs(\"data-original-title\", \"title\"));\n },\n async onResize() {\n this.isShown && (await this.$_computePosition(), this.$emit(\"resize\"));\n },\n async $_computePosition() {\n if (this.isDisposed || this.positioningDisabled)\n return;\n const e = {\n strategy: this.strategy,\n middleware: []\n };\n (this.distance || this.skidding) && e.middleware.push(xe({\n mainAxis: this.distance,\n crossAxis: this.skidding\n }));\n const t = this.placement.startsWith(\"auto\");\n if (t ? e.middleware.push(Ue({\n alignment: this.placement.split(\"-\")[1] ?? \"\"\n })) : e.placement = this.placement, this.preventOverflow && (this.shift && e.middleware.push(Ye({\n padding: this.overflowPadding,\n boundary: this.boundary,\n crossAxis: this.shiftCrossAxis\n })), !t && this.flip && e.middleware.push(Xe({\n padding: this.overflowPadding,\n boundary: this.boundary\n }))), e.middleware.push(Ke({\n element: this.$_arrowNode,\n padding: this.arrowPadding\n })), this.arrowOverflow && e.middleware.push({\n name: \"arrowOverflow\",\n fn: ({ placement: i, rects: s, middlewareData: r }) => {\n let p;\n const { centerOffset: a } = r.arrow;\n return i.startsWith(\"top\") || i.startsWith(\"bottom\") ? p = Math.abs(a) > s.reference.width / 2 : p = Math.abs(a) > s.reference.height / 2, {\n data: {\n overflow: p\n }\n };\n }\n }), this.autoMinSize || this.autoSize) {\n const i = this.autoSize ? this.autoSize : this.autoMinSize ? \"min\" : null;\n e.middleware.push({\n name: \"autoSize\",\n fn: ({ rects: s, placement: r, middlewareData: p }) => {\n var u;\n if ((u = p.autoSize) != null && u.skip)\n return {};\n let a, l;\n return r.startsWith(\"top\") || r.startsWith(\"bottom\") ? a = s.reference.width : l = s.reference.height, this.$_innerNode.style[i === \"min\" ? \"minWidth\" : i === \"max\" ? \"maxWidth\" : \"width\"] = a != null ? `${a}px` : null, this.$_innerNode.style[i === \"min\" ? \"minHeight\" : i === \"max\" ? \"maxHeight\" : \"height\"] = l != null ? `${l}px` : null, {\n data: {\n skip: !0\n },\n reset: {\n rects: !0\n }\n };\n }\n });\n }\n (this.autoMaxSize || this.autoBoundaryMaxSize) && (this.$_innerNode.style.maxWidth = null, this.$_innerNode.style.maxHeight = null, e.middleware.push(Je({\n boundary: this.boundary,\n padding: this.overflowPadding,\n apply: ({ availableWidth: i, availableHeight: s }) => {\n this.$_innerNode.style.maxWidth = i != null ? `${i}px` : null, this.$_innerNode.style.maxHeight = s != null ? `${s}px` : null;\n }\n })));\n const o = await Qe(this.$_referenceNode, this.$_popperNode, e);\n Object.assign(this.result, {\n x: o.x,\n y: o.y,\n placement: o.placement,\n strategy: o.strategy,\n arrow: {\n ...o.middlewareData.arrow,\n ...o.middlewareData.arrowOverflow\n }\n });\n },\n $_scheduleShow(e, t = !1) {\n if (this.$_updateParentShownChildren(!0), this.$_hideInProgress = !1, clearTimeout(this.$_scheduleTimer), g && this.instantMove && g.instantMove && g !== this.parentPopper) {\n g.$_applyHide(!0), this.$_applyShow(!0);\n return;\n }\n t ? this.$_applyShow() : this.$_scheduleTimer = setTimeout(this.$_applyShow.bind(this), this.$_computeDelay(\"show\"));\n },\n $_scheduleHide(e, t = !1) {\n if (this.shownChildren.size > 0) {\n this.pendingHide = !0;\n return;\n }\n this.$_updateParentShownChildren(!1), this.$_hideInProgress = !0, clearTimeout(this.$_scheduleTimer), this.isShown && (g = this), t ? this.$_applyHide() : this.$_scheduleTimer = setTimeout(this.$_applyHide.bind(this), this.$_computeDelay(\"hide\"));\n },\n $_computeDelay(e) {\n const t = this.delay;\n return parseInt(t && t[e] || t || 0);\n },\n async $_applyShow(e = !1) {\n clearTimeout(this.$_disposeTimer), clearTimeout(this.$_scheduleTimer), this.skipTransition = e, !this.isShown && (this.$_ensureTeleport(), await G(), await this.$_computePosition(), await this.$_applyShowEffect(), this.positioningDisabled || this.$_registerEventListeners([\n ...ne(this.$_referenceNode),\n ...ne(this.$_popperNode)\n ], \"scroll\", () => {\n this.$_computePosition();\n }));\n },\n async $_applyShowEffect() {\n if (this.$_hideInProgress)\n return;\n if (this.computeTransformOrigin) {\n const t = this.$_referenceNode.getBoundingClientRect(), o = this.$_popperNode.querySelector(\".v-popper__wrapper\"), i = o.parentNode.getBoundingClientRect(), s = t.x + t.width / 2 - (i.left + o.offsetLeft), r = t.y + t.height / 2 - (i.top + o.offsetTop);\n this.result.transformOrigin = `${s}px ${r}px`;\n }\n this.isShown = !0, this.$_applyAttrsToTarget({\n \"aria-describedby\": this.popperId,\n \"data-popper-shown\": \"\"\n });\n const e = this.showGroup;\n if (e) {\n let t;\n for (let o = 0; o < d.length; o++)\n t = d[o], t.showGroup !== e && (t.hide(), t.$emit(\"close-group\"));\n }\n d.push(this), document.body.classList.add(\"v-popper--some-open\");\n for (const t of re(this.theme))\n he(t).push(this), document.body.classList.add(`v-popper--some-open--${t}`);\n this.$emit(\"apply-show\"), this.classes.showFrom = !0, this.classes.showTo = !1, this.classes.hideFrom = !1, this.classes.hideTo = !1, await G(), this.classes.showFrom = !1, this.classes.showTo = !0, this.noAutoFocus || this.$_popperNode.focus();\n },\n async $_applyHide(e = !1) {\n if (this.shownChildren.size > 0) {\n this.pendingHide = !0, this.$_hideInProgress = !1;\n return;\n }\n if (clearTimeout(this.$_scheduleTimer), !this.isShown)\n return;\n this.skipTransition = e, de(d, this), d.length === 0 && document.body.classList.remove(\"v-popper--some-open\");\n for (const o of re(this.theme)) {\n const i = he(o);\n de(i, this), i.length === 0 && document.body.classList.remove(`v-popper--some-open--${o}`);\n }\n g === this && (g = null), this.isShown = !1, this.$_applyAttrsToTarget({\n \"aria-describedby\": void 0,\n \"data-popper-shown\": void 0\n }), clearTimeout(this.$_disposeTimer);\n const t = this.disposeTimeout;\n t !== null && (this.$_disposeTimer = setTimeout(() => {\n this.$_popperNode && (this.$_detachPopperNode(), this.isMounted = !1);\n }, t)), this.$_removeEventListeners(\"scroll\"), this.$emit(\"apply-hide\"), this.classes.showFrom = !1, this.classes.showTo = !1, this.classes.hideFrom = !0, this.classes.hideTo = !1, await G(), this.classes.hideFrom = !1, this.classes.hideTo = !0;\n },\n $_autoShowHide() {\n this.shown ? this.show() : this.hide();\n },\n $_ensureTeleport() {\n if (this.isDisposed)\n return;\n let e = this.container;\n if (typeof e == \"string\" ? e = window.document.querySelector(e) : e === !1 && (e = this.$_targetNodes[0].parentNode), !e)\n throw new Error(\"No container for popover: \" + this.container);\n e.appendChild(this.$_popperNode), this.isMounted = !0;\n },\n $_addEventListeners() {\n const e = (o) => {\n this.isShown && !this.$_hideInProgress || (o.usedByTooltip = !0, !this.$_preventShow && this.show({ event: o }));\n };\n this.$_registerTriggerListeners(this.$_targetNodes, pe, this.triggers, this.showTriggers, e), this.$_registerTriggerListeners([this.$_popperNode], pe, this.popperTriggers, this.popperShowTriggers, e);\n const t = (o) => {\n o.usedByTooltip || this.hide({ event: o });\n };\n this.$_registerTriggerListeners(this.$_targetNodes, ae, this.triggers, this.hideTriggers, t), this.$_registerTriggerListeners([this.$_popperNode], ae, this.popperTriggers, this.popperHideTriggers, t);\n },\n $_registerEventListeners(e, t, o) {\n this.$_events.push({ targetNodes: e, eventType: t, handler: o }), e.forEach((i) => i.addEventListener(t, o, $ ? {\n passive: !0\n } : void 0));\n },\n $_registerTriggerListeners(e, t, o, i, s) {\n let r = o;\n i != null && (r = typeof i == \"function\" ? i(r) : i), r.forEach((p) => {\n const a = t[p];\n a && this.$_registerEventListeners(e, a, s);\n });\n },\n $_removeEventListeners(e) {\n const t = [];\n this.$_events.forEach((o) => {\n const { targetNodes: i, eventType: s, handler: r } = o;\n !e || e === s ? i.forEach((p) => p.removeEventListener(s, r)) : t.push(o);\n }), this.$_events = t;\n },\n $_refreshListeners() {\n this.isDisposed || (this.$_removeEventListeners(), this.$_addEventListeners());\n },\n $_handleGlobalClose(e, t = !1) {\n this.$_showFrameLocked || (this.hide({ event: e }), e.closePopover ? this.$emit(\"close-directive\") : this.$emit(\"auto-hide\"), t && (this.$_preventShow = !0, setTimeout(() => {\n this.$_preventShow = !1;\n }, 300)));\n },\n $_detachPopperNode() {\n this.$_popperNode.parentNode && this.$_popperNode.parentNode.removeChild(this.$_popperNode);\n },\n $_swapTargetAttrs(e, t) {\n for (const o of this.$_targetNodes) {\n const i = o.getAttribute(e);\n i && (o.removeAttribute(e), o.setAttribute(t, i));\n }\n },\n $_applyAttrsToTarget(e) {\n for (const t of this.$_targetNodes)\n for (const o in e) {\n const i = e[o];\n i == null ? t.removeAttribute(o) : t.setAttribute(o, i);\n }\n },\n $_updateParentShownChildren(e) {\n let t = this.parentPopper;\n for (; t; )\n e ? t.shownChildren.add(this.randomId) : (t.shownChildren.delete(this.randomId), t.pendingHide && t.hide()), t = t.parentPopper;\n },\n $_isAimingPopper() {\n const e = this.$_referenceNode.getBoundingClientRect();\n if (y >= e.left && y <= e.right && _ >= e.top && _ <= e.bottom) {\n const t = this.$_popperNode.getBoundingClientRect(), o = y - c, i = _ - m, r = t.left + t.width / 2 - c + (t.top + t.height / 2) - m + t.width + t.height, p = c + o * r, a = m + i * r;\n return C(c, m, p, a, t.left, t.top, t.left, t.bottom) || // Left edge\n C(c, m, p, a, t.left, t.top, t.right, t.top) || // Top edge\n C(c, m, p, a, t.right, t.top, t.right, t.bottom) || // Right edge\n C(c, m, p, a, t.left, t.bottom, t.right, t.bottom);\n }\n return !1;\n }\n },\n render() {\n return this.$slots.default(this.slotData);\n }\n});\nif (typeof document < \"u\" && typeof window < \"u\") {\n if (_e) {\n const e = $ ? {\n passive: !0,\n capture: !0\n } : !0;\n document.addEventListener(\"touchstart\", (t) => ue(t, !0), e), document.addEventListener(\"touchend\", (t) => fe(t, !0), e);\n } else\n window.addEventListener(\"mousedown\", (e) => ue(e, !1), !0), window.addEventListener(\"click\", (e) => fe(e, !1), !0);\n window.addEventListener(\"resize\", tt);\n}\nfunction ue(e, t) {\n if (h.autoHideOnMousedown)\n Pe(e, t);\n else\n for (let o = 0; o < d.length; o++) {\n const i = d[o];\n try {\n i.mouseDownContains = i.popperNode().contains(e.target);\n } catch {\n }\n }\n}\nfunction fe(e, t) {\n h.autoHideOnMousedown || Pe(e, t);\n}\nfunction Pe(e, t) {\n const o = {};\n for (let i = d.length - 1; i >= 0; i--) {\n const s = d[i];\n try {\n const r = s.containsGlobalTarget = s.mouseDownContains || s.popperNode().contains(e.target);\n s.pendingHide = !1, requestAnimationFrame(() => {\n if (s.pendingHide = !1, !o[s.randomId] && ce(s, r, e)) {\n if (s.$_handleGlobalClose(e, t), !e.closeAllPopover && e.closePopover && r) {\n let a = s.parentPopper;\n for (; a; )\n o[a.randomId] = !0, a = a.parentPopper;\n return;\n }\n let p = s.parentPopper;\n for (; p && ce(p, p.containsGlobalTarget, e); ) {\n p.$_handleGlobalClose(e, t);\n p = p.parentPopper;\n }\n }\n });\n } catch {\n }\n }\n}\nfunction ce(e, t, o) {\n return o.closeAllPopover || o.closePopover && t || et(e, o) && !t;\n}\nfunction et(e, t) {\n if (typeof e.autoHide == \"function\") {\n const o = e.autoHide(t);\n return e.lastAutoHide = o, o;\n }\n return e.autoHide;\n}\nfunction tt() {\n for (let e = 0; e < d.length; e++)\n d[e].$_computePosition();\n}\nfunction Nt() {\n for (let e = 0; e < d.length; e++)\n d[e].hide();\n}\nlet c = 0, m = 0, y = 0, _ = 0;\ntypeof window < \"u\" && window.addEventListener(\"mousemove\", (e) => {\n c = y, m = _, y = e.clientX, _ = e.clientY;\n}, $ ? {\n passive: !0\n} : void 0);\nfunction C(e, t, o, i, s, r, p, a) {\n const l = ((p - s) * (t - r) - (a - r) * (e - s)) / ((a - r) * (o - e) - (p - s) * (i - t)), u = ((o - e) * (t - r) - (i - t) * (e - s)) / ((a - r) * (o - e) - (p - s) * (i - t));\n return l >= 0 && l <= 1 && u >= 0 && u <= 1;\n}\nconst ot = {\n extends: Q()\n}, B = (e, t) => {\n const o = e.__vccOpts || e;\n for (const [i, s] of t)\n o[i] = s;\n return o;\n};\nfunction it(e, t, o, i, s, r) {\n return f(), T(\"div\", {\n ref: \"reference\",\n class: J([\"v-popper\", {\n \"v-popper--shown\": e.slotData.isShown\n }])\n }, [\n A(e.$slots, \"default\", ke(Le(e.slotData)))\n ], 2);\n}\nconst st = /* @__PURE__ */ B(ot, [[\"render\", it]]);\nfunction nt() {\n var e = window.navigator.userAgent, t = e.indexOf(\"MSIE \");\n if (t > 0)\n return parseInt(e.substring(t + 5, e.indexOf(\".\", t)), 10);\n var o = e.indexOf(\"Trident/\");\n if (o > 0) {\n var i = e.indexOf(\"rv:\");\n return parseInt(e.substring(i + 3, e.indexOf(\".\", i)), 10);\n }\n var s = e.indexOf(\"Edge/\");\n return s > 0 ? parseInt(e.substring(s + 5, e.indexOf(\".\", s)), 10) : -1;\n}\nlet z;\nfunction X() {\n X.init || (X.init = !0, z = nt() !== -1);\n}\nvar E = {\n name: \"ResizeObserver\",\n props: {\n emitOnMount: {\n type: Boolean,\n default: !1\n },\n ignoreWidth: {\n type: Boolean,\n default: !1\n },\n ignoreHeight: {\n type: Boolean,\n default: !1\n }\n },\n emits: [\n \"notify\"\n ],\n mounted() {\n X(), Fe(() => {\n this._w = this.$el.offsetWidth, this._h = this.$el.offsetHeight, this.emitOnMount && this.emitSize();\n });\n const e = document.createElement(\"object\");\n this._resizeObject = e, e.setAttribute(\"aria-hidden\", \"true\"), e.setAttribute(\"tabindex\", -1), e.onload = this.addResizeHandlers, e.type = \"text/html\", z && this.$el.appendChild(e), e.data = \"about:blank\", z || this.$el.appendChild(e);\n },\n beforeUnmount() {\n this.removeResizeHandlers();\n },\n methods: {\n compareAndNotify() {\n (!this.ignoreWidth && this._w !== this.$el.offsetWidth || !this.ignoreHeight && this._h !== this.$el.offsetHeight) && (this._w = this.$el.offsetWidth, this._h = this.$el.offsetHeight, this.emitSize());\n },\n emitSize() {\n this.$emit(\"notify\", {\n width: this._w,\n height: this._h\n });\n },\n addResizeHandlers() {\n this._resizeObject.contentDocument.defaultView.addEventListener(\"resize\", this.compareAndNotify), this.compareAndNotify();\n },\n removeResizeHandlers() {\n this._resizeObject && this._resizeObject.onload && (!z && this._resizeObject.contentDocument && this._resizeObject.contentDocument.defaultView.removeEventListener(\"resize\", this.compareAndNotify), this.$el.removeChild(this._resizeObject), this._resizeObject.onload = null, this._resizeObject = null);\n }\n }\n};\nconst rt = /* @__PURE__ */ Re(\"data-v-b329ee4c\");\nDe(\"data-v-b329ee4c\");\nconst pt = {\n class: \"resize-observer\",\n tabindex: \"-1\"\n};\nIe();\nconst at = /* @__PURE__ */ rt((e, t, o, i, s, r) => (f(), M(\"div\", pt)));\nE.render = at;\nE.__scopeId = \"data-v-b329ee4c\";\nE.__file = \"src/components/ResizeObserver.vue\";\nconst Z = (e = \"theme\") => ({\n computed: {\n themeClass() {\n return Ze(this[e]);\n }\n }\n}), dt = O({\n name: \"VPopperContent\",\n components: {\n ResizeObserver: E\n },\n mixins: [\n Z()\n ],\n props: {\n popperId: String,\n theme: String,\n shown: Boolean,\n mounted: Boolean,\n skipTransition: Boolean,\n autoHide: Boolean,\n handleResize: Boolean,\n classes: Object,\n result: Object\n },\n emits: [\n \"hide\",\n \"resize\"\n ],\n methods: {\n toPx(e) {\n return e != null && !isNaN(e) ? `${e}px` : null;\n }\n }\n}), lt = [\"id\", \"aria-hidden\", \"tabindex\", \"data-popper-placement\"], ht = {\n ref: \"inner\",\n class: \"v-popper__inner\"\n}, ut = /* @__PURE__ */ w(\"div\", { class: \"v-popper__arrow-outer\" }, null, -1), ft = /* @__PURE__ */ w(\"div\", { class: \"v-popper__arrow-inner\" }, null, -1), ct = [\n ut,\n ft\n];\nfunction mt(e, t, o, i, s, r) {\n const p = P(\"ResizeObserver\");\n return f(), T(\"div\", {\n id: e.popperId,\n ref: \"popover\",\n class: J([\"v-popper__popper\", [\n e.themeClass,\n e.classes.popperClass,\n {\n \"v-popper__popper--shown\": e.shown,\n \"v-popper__popper--hidden\": !e.shown,\n \"v-popper__popper--show-from\": e.classes.showFrom,\n \"v-popper__popper--show-to\": e.classes.showTo,\n \"v-popper__popper--hide-from\": e.classes.hideFrom,\n \"v-popper__popper--hide-to\": e.classes.hideTo,\n \"v-popper__popper--skip-transition\": e.skipTransition,\n \"v-popper__popper--arrow-overflow\": e.result && e.result.arrow.overflow,\n \"v-popper__popper--no-positioning\": !e.result\n }\n ]]),\n style: W(e.result ? {\n position: e.result.strategy,\n transform: `translate3d(${Math.round(e.result.x)}px,${Math.round(e.result.y)}px,0)`\n } : void 0),\n \"aria-hidden\": e.shown ? \"false\" : \"true\",\n tabindex: e.autoHide ? 0 : void 0,\n \"data-popper-placement\": e.result ? e.result.placement : void 0,\n onKeyup: t[2] || (t[2] = je((a) => e.autoHide && e.$emit(\"hide\"), [\"esc\"]))\n }, [\n w(\"div\", {\n class: \"v-popper__backdrop\",\n onClick: t[0] || (t[0] = (a) => e.autoHide && e.$emit(\"hide\"))\n }),\n w(\"div\", {\n class: \"v-popper__wrapper\",\n style: W(e.result ? {\n transformOrigin: e.result.transformOrigin\n } : void 0)\n }, [\n w(\"div\", ht, [\n e.mounted ? (f(), T(Ve, { key: 0 }, [\n w(\"div\", null, [\n A(e.$slots, \"default\")\n ]),\n e.handleResize ? (f(), M(p, {\n key: 0,\n onNotify: t[1] || (t[1] = (a) => e.$emit(\"resize\", a))\n })) : se(\"\", !0)\n ], 64)) : se(\"\", !0)\n ], 512),\n w(\"div\", {\n ref: \"arrow\",\n class: \"v-popper__arrow-container\",\n style: W(e.result ? {\n left: e.toPx(e.result.arrow.x),\n top: e.toPx(e.result.arrow.y)\n } : void 0)\n }, ct, 4)\n ], 4)\n ], 46, lt);\n}\nconst ee = /* @__PURE__ */ B(dt, [[\"render\", mt]]), te = {\n methods: {\n show(...e) {\n return this.$refs.popper.show(...e);\n },\n hide(...e) {\n return this.$refs.popper.hide(...e);\n },\n dispose(...e) {\n return this.$refs.popper.dispose(...e);\n },\n onResize(...e) {\n return this.$refs.popper.onResize(...e);\n }\n }\n};\nlet K = function() {\n};\ntypeof window < \"u\" && (K = window.Element);\nconst gt = O({\n name: \"VPopperWrapper\",\n components: {\n Popper: st,\n PopperContent: ee\n },\n mixins: [\n te,\n Z(\"finalTheme\")\n ],\n props: {\n theme: {\n type: String,\n default: null\n },\n referenceNode: {\n type: Function,\n default: null\n },\n shown: {\n type: Boolean,\n default: !1\n },\n showGroup: {\n type: String,\n default: null\n },\n // eslint-disable-next-line vue/require-prop-types\n ariaId: {\n default: null\n },\n disabled: {\n type: Boolean,\n default: void 0\n },\n positioningDisabled: {\n type: Boolean,\n default: void 0\n },\n placement: {\n type: String,\n default: void 0\n },\n delay: {\n type: [String, Number, Object],\n default: void 0\n },\n distance: {\n type: [Number, String],\n default: void 0\n },\n skidding: {\n type: [Number, String],\n default: void 0\n },\n triggers: {\n type: Array,\n default: void 0\n },\n showTriggers: {\n type: [Array, Function],\n default: void 0\n },\n hideTriggers: {\n type: [Array, Function],\n default: void 0\n },\n popperTriggers: {\n type: Array,\n default: void 0\n },\n popperShowTriggers: {\n type: [Array, Function],\n default: void 0\n },\n popperHideTriggers: {\n type: [Array, Function],\n default: void 0\n },\n container: {\n type: [String, Object, K, Boolean],\n default: void 0\n },\n boundary: {\n type: [String, K],\n default: void 0\n },\n strategy: {\n type: String,\n default: void 0\n },\n autoHide: {\n type: [Boolean, Function],\n default: void 0\n },\n handleResize: {\n type: Boolean,\n default: void 0\n },\n instantMove: {\n type: Boolean,\n default: void 0\n },\n eagerMount: {\n type: Boolean,\n default: void 0\n },\n popperClass: {\n type: [String, Array, Object],\n default: void 0\n },\n computeTransformOrigin: {\n type: Boolean,\n default: void 0\n },\n /**\n * @deprecated\n */\n autoMinSize: {\n type: Boolean,\n default: void 0\n },\n autoSize: {\n type: [Boolean, String],\n default: void 0\n },\n /**\n * @deprecated\n */\n autoMaxSize: {\n type: Boolean,\n default: void 0\n },\n autoBoundaryMaxSize: {\n type: Boolean,\n default: void 0\n },\n preventOverflow: {\n type: Boolean,\n default: void 0\n },\n overflowPadding: {\n type: [Number, String],\n default: void 0\n },\n arrowPadding: {\n type: [Number, String],\n default: void 0\n },\n arrowOverflow: {\n type: Boolean,\n default: void 0\n },\n flip: {\n type: Boolean,\n default: void 0\n },\n shift: {\n type: Boolean,\n default: void 0\n },\n shiftCrossAxis: {\n type: Boolean,\n default: void 0\n },\n noAutoFocus: {\n type: Boolean,\n default: void 0\n },\n disposeTimeout: {\n type: Number,\n default: void 0\n }\n },\n emits: {\n show: () => !0,\n hide: () => !0,\n \"update:shown\": (e) => !0,\n \"apply-show\": () => !0,\n \"apply-hide\": () => !0,\n \"close-group\": () => !0,\n \"close-directive\": () => !0,\n \"auto-hide\": () => !0,\n resize: () => !0\n },\n computed: {\n finalTheme() {\n return this.theme ?? this.$options.vPopperTheme;\n }\n },\n methods: {\n getTargetNodes() {\n return Array.from(this.$el.children).filter((e) => e !== this.$refs.popperContent.$el);\n }\n }\n});\nfunction wt(e, t, o, i, s, r) {\n const p = P(\"PopperContent\"), a = P(\"Popper\");\n return f(), M(a, $e({ ref: \"popper\" }, e.$props, {\n theme: e.finalTheme,\n \"target-nodes\": e.getTargetNodes,\n \"popper-node\": () => e.$refs.popperContent.$el,\n class: [\n e.themeClass\n ],\n onShow: t[0] || (t[0] = () => e.$emit(\"show\")),\n onHide: t[1] || (t[1] = () => e.$emit(\"hide\")),\n \"onUpdate:shown\": t[2] || (t[2] = (l) => e.$emit(\"update:shown\", l)),\n onApplyShow: t[3] || (t[3] = () => e.$emit(\"apply-show\")),\n onApplyHide: t[4] || (t[4] = () => e.$emit(\"apply-hide\")),\n onCloseGroup: t[5] || (t[5] = () => e.$emit(\"close-group\")),\n onCloseDirective: t[6] || (t[6] = () => e.$emit(\"close-directive\")),\n onAutoHide: t[7] || (t[7] = () => e.$emit(\"auto-hide\")),\n onResize: t[8] || (t[8] = () => e.$emit(\"resize\"))\n }), {\n default: N(({\n popperId: l,\n isShown: u,\n shouldMountContent: L,\n skipTransition: D,\n autoHide: I,\n show: F,\n hide: v,\n handleResize: R,\n onResize: j,\n classes: V,\n result: Ee\n }) => [\n A(e.$slots, \"default\", {\n shown: u,\n show: F,\n hide: v\n }),\n ve(p, {\n ref: \"popperContent\",\n \"popper-id\": l,\n theme: e.finalTheme,\n shown: u,\n mounted: L,\n \"skip-transition\": D,\n \"auto-hide\": I,\n \"handle-resize\": R,\n classes: V,\n result: Ee,\n onHide: v,\n onResize: j\n }, {\n default: N(() => [\n A(e.$slots, \"popper\", {\n shown: u,\n hide: v\n })\n ]),\n _: 2\n }, 1032, [\"popper-id\", \"theme\", \"shown\", \"mounted\", \"skip-transition\", \"auto-hide\", \"handle-resize\", \"classes\", \"result\", \"onHide\", \"onResize\"])\n ]),\n _: 3\n }, 16, [\"theme\", \"target-nodes\", \"popper-node\", \"class\"]);\n}\nconst k = /* @__PURE__ */ B(gt, [[\"render\", wt]]), Se = {\n ...k,\n name: \"VDropdown\",\n vPopperTheme: \"dropdown\"\n}, be = {\n ...k,\n name: \"VMenu\",\n vPopperTheme: \"menu\"\n}, Ce = {\n ...k,\n name: \"VTooltip\",\n vPopperTheme: \"tooltip\"\n}, $t = O({\n name: \"VTooltipDirective\",\n components: {\n Popper: Q(),\n PopperContent: ee\n },\n mixins: [\n te\n ],\n inheritAttrs: !1,\n props: {\n theme: {\n type: String,\n default: \"tooltip\"\n },\n html: {\n type: Boolean,\n default: (e) => S(e.theme, \"html\")\n },\n content: {\n type: [String, Number, Function],\n default: null\n },\n loadingContent: {\n type: String,\n default: (e) => S(e.theme, \"loadingContent\")\n },\n targetNodes: {\n type: Function,\n required: !0\n }\n },\n data() {\n return {\n asyncContent: null\n };\n },\n computed: {\n isContentAsync() {\n return typeof this.content == \"function\";\n },\n loading() {\n return this.isContentAsync && this.asyncContent == null;\n },\n finalContent() {\n return this.isContentAsync ? this.loading ? this.loadingContent : this.asyncContent : this.content;\n }\n },\n watch: {\n content: {\n handler() {\n this.fetchContent(!0);\n },\n immediate: !0\n },\n async finalContent() {\n await this.$nextTick(), this.$refs.popper.onResize();\n }\n },\n created() {\n this.$_fetchId = 0;\n },\n methods: {\n fetchContent(e) {\n if (typeof this.content == \"function\" && this.$_isShown && (e || !this.$_loading && this.asyncContent == null)) {\n this.asyncContent = null, this.$_loading = !0;\n const t = ++this.$_fetchId, o = this.content(this);\n o.then ? o.then((i) => this.onResult(t, i)) : this.onResult(t, o);\n }\n },\n onResult(e, t) {\n e === this.$_fetchId && (this.$_loading = !1, this.asyncContent = t);\n },\n onShow() {\n this.$_isShown = !0, this.fetchContent();\n },\n onHide() {\n this.$_isShown = !1;\n }\n }\n}), vt = [\"innerHTML\"], yt = [\"textContent\"];\nfunction _t(e, t, o, i, s, r) {\n const p = P(\"PopperContent\"), a = P(\"Popper\");\n return f(), M(a, $e({ ref: \"popper\" }, e.$attrs, {\n theme: e.theme,\n \"target-nodes\": e.targetNodes,\n \"popper-node\": () => e.$refs.popperContent.$el,\n onApplyShow: e.onShow,\n onApplyHide: e.onHide\n }), {\n default: N(({\n popperId: l,\n isShown: u,\n shouldMountContent: L,\n skipTransition: D,\n autoHide: I,\n hide: F,\n handleResize: v,\n onResize: R,\n classes: j,\n result: V\n }) => [\n ve(p, {\n ref: \"popperContent\",\n class: J({\n \"v-popper--tooltip-loading\": e.loading\n }),\n \"popper-id\": l,\n theme: e.theme,\n shown: u,\n mounted: L,\n \"skip-transition\": D,\n \"auto-hide\": I,\n \"handle-resize\": v,\n classes: j,\n result: V,\n onHide: F,\n onResize: R\n }, {\n default: N(() => [\n e.html ? (f(), T(\"div\", {\n key: 0,\n innerHTML: e.finalContent\n }, null, 8, vt)) : (f(), T(\"div\", {\n key: 1,\n textContent: We(e.finalContent)\n }, null, 8, yt))\n ]),\n _: 2\n }, 1032, [\"class\", \"popper-id\", \"theme\", \"shown\", \"mounted\", \"skip-transition\", \"auto-hide\", \"handle-resize\", \"classes\", \"result\", \"onHide\", \"onResize\"])\n ]),\n _: 1\n }, 16, [\"theme\", \"target-nodes\", \"popper-node\", \"onApplyShow\", \"onApplyHide\"]);\n}\nconst ze = /* @__PURE__ */ B($t, [[\"render\", _t]]), Ae = \"v-popper--has-tooltip\";\nfunction Tt(e, t) {\n let o = e.placement;\n if (!o && t)\n for (const i of Te)\n t[i] && (o = i);\n return o || (o = S(e.theme || \"tooltip\", \"placement\")), o;\n}\nfunction Ne(e, t, o) {\n let i;\n const s = typeof t;\n return s === \"string\" ? i = { content: t } : t && s === \"object\" ? i = t : i = { content: !1 }, i.placement = Tt(i, o), i.targetNodes = () => [e], i.referenceNode = () => e, i;\n}\nlet x, b, Pt = 0;\nfunction St() {\n if (x)\n return;\n b = U([]), x = Ge({\n name: \"VTooltipDirectiveApp\",\n setup() {\n return {\n directives: b\n };\n },\n render() {\n return this.directives.map((t) => qe(ze, {\n ...t.options,\n shown: t.shown || t.options.shown,\n key: t.id\n }));\n },\n devtools: {\n hide: !0\n }\n });\n const e = document.createElement(\"div\");\n document.body.appendChild(e), x.mount(e);\n}\nfunction bt(e, t, o) {\n St();\n const i = U(Ne(e, t, o)), s = U(!1), r = {\n id: Pt++,\n options: i,\n shown: s\n };\n return b.value.push(r), e.classList && e.classList.add(Ae), e.$_popper = {\n options: i,\n item: r,\n show() {\n s.value = !0;\n },\n hide() {\n s.value = !1;\n }\n };\n}\nfunction He(e) {\n if (e.$_popper) {\n const t = b.value.indexOf(e.$_popper.item);\n t !== -1 && b.value.splice(t, 1), delete e.$_popper, delete e.$_popperOldShown, delete e.$_popperMountTarget;\n }\n e.classList && e.classList.remove(Ae);\n}\nfunction me(e, { value: t, modifiers: o }) {\n const i = Ne(e, t, o);\n if (!i.content || S(i.theme || \"tooltip\", \"disabled\"))\n He(e);\n else {\n let s;\n e.$_popper ? (s = e.$_popper, s.options.value = i) : s = bt(e, t, o), typeof t.shown < \"u\" && t.shown !== e.$_popperOldShown && (e.$_popperOldShown = t.shown, t.shown ? s.show() : s.hide());\n }\n}\nconst oe = {\n beforeMount: me,\n updated: me,\n beforeUnmount(e) {\n He(e);\n }\n};\nfunction ge(e) {\n e.addEventListener(\"mousedown\", H), e.addEventListener(\"click\", H), e.addEventListener(\"touchstart\", Oe, $ ? {\n passive: !0\n } : !1);\n}\nfunction we(e) {\n e.removeEventListener(\"mousedown\", H), e.removeEventListener(\"click\", H), e.removeEventListener(\"touchstart\", Oe), e.removeEventListener(\"touchend\", Me), e.removeEventListener(\"touchcancel\", Be);\n}\nfunction H(e) {\n const t = e.currentTarget;\n e.closePopover = !t.$_vclosepopover_touch, e.closeAllPopover = t.$_closePopoverModifiers && !!t.$_closePopoverModifiers.all;\n}\nfunction Oe(e) {\n if (e.changedTouches.length === 1) {\n const t = e.currentTarget;\n t.$_vclosepopover_touch = !0;\n const o = e.changedTouches[0];\n t.$_vclosepopover_touchPoint = o, t.addEventListener(\"touchend\", Me), t.addEventListener(\"touchcancel\", Be);\n }\n}\nfunction Me(e) {\n const t = e.currentTarget;\n if (t.$_vclosepopover_touch = !1, e.changedTouches.length === 1) {\n const o = e.changedTouches[0], i = t.$_vclosepopover_touchPoint;\n e.closePopover = Math.abs(o.screenY - i.screenY) < 20 && Math.abs(o.screenX - i.screenX) < 20, e.closeAllPopover = t.$_closePopoverModifiers && !!t.$_closePopoverModifiers.all;\n }\n}\nfunction Be(e) {\n const t = e.currentTarget;\n t.$_vclosepopover_touch = !1;\n}\nconst ie = {\n beforeMount(e, { value: t, modifiers: o }) {\n e.$_closePopoverModifiers = o, (typeof t > \"u\" || t) && ge(e);\n },\n updated(e, { value: t, oldValue: o, modifiers: i }) {\n e.$_closePopoverModifiers = i, t !== o && (typeof t > \"u\" || t ? ge(e) : we(e));\n },\n beforeUnmount(e) {\n we(e);\n }\n}, Ht = h, Ot = oe, Mt = oe, Bt = ie, Et = ie, kt = Se, Lt = be, Dt = Q, It = ee, Ft = te, Rt = k, jt = Z, Vt = Ce, Wt = ze;\nfunction Ct(e, t = {}) {\n e.$_vTooltipInstalled || (e.$_vTooltipInstalled = !0, ye(h, t), e.directive(\"tooltip\", oe), e.directive(\"close-popper\", ie), e.component(\"VTooltip\", Ce), e.component(\"VDropdown\", Se), e.component(\"VMenu\", be));\n}\nconst Gt = {\n // eslint-disable-next-line no-undef\n version: \"5.2.2\",\n install: Ct,\n options: h\n};\nexport {\n kt as Dropdown,\n ae as HIDE_EVENT_MAP,\n Lt as Menu,\n Dt as Popper,\n It as PopperContent,\n Ft as PopperMethods,\n Rt as PopperWrapper,\n pe as SHOW_EVENT_MAP,\n jt as ThemeClass,\n Vt as Tooltip,\n Wt as TooltipDirective,\n Bt as VClosePopper,\n Ot as VTooltip,\n bt as createTooltip,\n Gt as default,\n He as destroyTooltip,\n Nt as hideAllPoppers,\n Ct as install,\n Ht as options,\n Te as placements,\n tt as recomputeAllPoppers,\n Et as vClosePopper,\n Mt as vTooltip\n};\n","/*!\n* tabbable 6.3.0\n* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE\n*/\n// NOTE: separate `:not()` selectors has broader browser support than the newer\n// `:not([inert], [inert] *)` (Feb 2023)\n// CAREFUL: JSDom does not support `:not([inert] *)` as a selector; using it causes\n// the entire query to fail, resulting in no nodes found, which will break a lot\n// of things... so we have to rely on JS to identify nodes inside an inert container\nvar candidateSelectors = ['input:not([inert])', 'select:not([inert])', 'textarea:not([inert])', 'a[href]:not([inert])', 'button:not([inert])', '[tabindex]:not(slot):not([inert])', 'audio[controls]:not([inert])', 'video[controls]:not([inert])', '[contenteditable]:not([contenteditable=\"false\"]):not([inert])', 'details>summary:first-of-type:not([inert])', 'details:not([inert])'];\nvar candidateSelector = /* #__PURE__ */candidateSelectors.join(',');\nvar NoElement = typeof Element === 'undefined';\nvar matches = NoElement ? function () {} : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\nvar getRootNode = !NoElement && Element.prototype.getRootNode ? function (element) {\n var _element$getRootNode;\n return element === null || element === void 0 ? void 0 : (_element$getRootNode = element.getRootNode) === null || _element$getRootNode === void 0 ? void 0 : _element$getRootNode.call(element);\n} : function (element) {\n return element === null || element === void 0 ? void 0 : element.ownerDocument;\n};\n\n/**\n * Determines if a node is inert or in an inert ancestor.\n * @param {Element} [node]\n * @param {boolean} [lookUp] If true and `node` is not inert, looks up at ancestors to\n * see if any of them are inert. If false, only `node` itself is considered.\n * @returns {boolean} True if inert itself or by way of being in an inert ancestor.\n * False if `node` is falsy.\n */\nvar _isInert = function isInert(node, lookUp) {\n var _node$getAttribute;\n if (lookUp === void 0) {\n lookUp = true;\n }\n // CAREFUL: JSDom does not support inert at all, so we can't use the `HTMLElement.inert`\n // JS API property; we have to check the attribute, which can either be empty or 'true';\n // if it's `null` (not specified) or 'false', it's an active element\n var inertAtt = node === null || node === void 0 ? void 0 : (_node$getAttribute = node.getAttribute) === null || _node$getAttribute === void 0 ? void 0 : _node$getAttribute.call(node, 'inert');\n var inert = inertAtt === '' || inertAtt === 'true';\n\n // NOTE: this could also be handled with `node.matches('[inert], :is([inert] *)')`\n // if it weren't for `matches()` not being a function on shadow roots; the following\n // code works for any kind of node\n // CAREFUL: JSDom does not appear to support certain selectors like `:not([inert] *)`\n // so it likely would not support `:is([inert] *)` either...\n var result = inert || lookUp && node && _isInert(node.parentNode); // recursive\n\n return result;\n};\n\n/**\n * Determines if a node's content is editable.\n * @param {Element} [node]\n * @returns True if it's content-editable; false if it's not or `node` is falsy.\n */\nvar isContentEditable = function isContentEditable(node) {\n var _node$getAttribute2;\n // CAREFUL: JSDom does not support the `HTMLElement.isContentEditable` API so we have\n // to use the attribute directly to check for this, which can either be empty or 'true';\n // if it's `null` (not specified) or 'false', it's a non-editable element\n var attValue = node === null || node === void 0 ? void 0 : (_node$getAttribute2 = node.getAttribute) === null || _node$getAttribute2 === void 0 ? void 0 : _node$getAttribute2.call(node, 'contenteditable');\n return attValue === '' || attValue === 'true';\n};\n\n/**\n * @param {Element} el container to check in\n * @param {boolean} includeContainer add container to check\n * @param {(node: Element) => boolean} filter filter candidates\n * @returns {Element[]}\n */\nvar getCandidates = function getCandidates(el, includeContainer, filter) {\n // even if `includeContainer=false`, we still have to check it for inertness because\n // if it's inert, all its children are inert\n if (_isInert(el)) {\n return [];\n }\n var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector));\n if (includeContainer && matches.call(el, candidateSelector)) {\n candidates.unshift(el);\n }\n candidates = candidates.filter(filter);\n return candidates;\n};\n\n/**\n * @callback GetShadowRoot\n * @param {Element} element to check for shadow root\n * @returns {ShadowRoot|boolean} ShadowRoot if available or boolean indicating if a shadowRoot is attached but not available.\n */\n\n/**\n * @callback ShadowRootFilter\n * @param {Element} shadowHostNode the element which contains shadow content\n * @returns {boolean} true if a shadow root could potentially contain valid candidates.\n */\n\n/**\n * @typedef {Object} CandidateScope\n * @property {Element} scopeParent contains inner candidates\n * @property {Element[]} candidates list of candidates found in the scope parent\n */\n\n/**\n * @typedef {Object} IterativeOptions\n * @property {GetShadowRoot|boolean} getShadowRoot true if shadow support is enabled; falsy if not;\n * if a function, implies shadow support is enabled and either returns the shadow root of an element\n * or a boolean stating if it has an undisclosed shadow root\n * @property {(node: Element) => boolean} filter filter candidates\n * @property {boolean} flatten if true then result will flatten any CandidateScope into the returned list\n * @property {ShadowRootFilter} shadowRootFilter filter shadow roots;\n */\n\n/**\n * @param {Element[]} elements list of element containers to match candidates from\n * @param {boolean} includeContainer add container list to check\n * @param {IterativeOptions} options\n * @returns {Array.}\n */\nvar _getCandidatesIteratively = function getCandidatesIteratively(elements, includeContainer, options) {\n var candidates = [];\n var elementsToCheck = Array.from(elements);\n while (elementsToCheck.length) {\n var element = elementsToCheck.shift();\n if (_isInert(element, false)) {\n // no need to look up since we're drilling down\n // anything inside this container will also be inert\n continue;\n }\n if (element.tagName === 'SLOT') {\n // add shadow dom slot scope (slot itself cannot be focusable)\n var assigned = element.assignedElements();\n var content = assigned.length ? assigned : element.children;\n var nestedCandidates = _getCandidatesIteratively(content, true, options);\n if (options.flatten) {\n candidates.push.apply(candidates, nestedCandidates);\n } else {\n candidates.push({\n scopeParent: element,\n candidates: nestedCandidates\n });\n }\n } else {\n // check candidate element\n var validCandidate = matches.call(element, candidateSelector);\n if (validCandidate && options.filter(element) && (includeContainer || !elements.includes(element))) {\n candidates.push(element);\n }\n\n // iterate over shadow content if possible\n var shadowRoot = element.shadowRoot ||\n // check for an undisclosed shadow\n typeof options.getShadowRoot === 'function' && options.getShadowRoot(element);\n\n // no inert look up because we're already drilling down and checking for inertness\n // on the way down, so all containers to this root node should have already been\n // vetted as non-inert\n var validShadowRoot = !_isInert(shadowRoot, false) && (!options.shadowRootFilter || options.shadowRootFilter(element));\n if (shadowRoot && validShadowRoot) {\n // add shadow dom scope IIF a shadow root node was given; otherwise, an undisclosed\n // shadow exists, so look at light dom children as fallback BUT create a scope for any\n // child candidates found because they're likely slotted elements (elements that are\n // children of the web component element (which has the shadow), in the light dom, but\n // slotted somewhere _inside_ the undisclosed shadow) -- the scope is created below,\n // _after_ we return from this recursive call\n var _nestedCandidates = _getCandidatesIteratively(shadowRoot === true ? element.children : shadowRoot.children, true, options);\n if (options.flatten) {\n candidates.push.apply(candidates, _nestedCandidates);\n } else {\n candidates.push({\n scopeParent: element,\n candidates: _nestedCandidates\n });\n }\n } else {\n // there's not shadow so just dig into the element's (light dom) children\n // __without__ giving the element special scope treatment\n elementsToCheck.unshift.apply(elementsToCheck, element.children);\n }\n }\n }\n return candidates;\n};\n\n/**\n * @private\n * Determines if the node has an explicitly specified `tabindex` attribute.\n * @param {HTMLElement} node\n * @returns {boolean} True if so; false if not.\n */\nvar hasTabIndex = function hasTabIndex(node) {\n return !isNaN(parseInt(node.getAttribute('tabindex'), 10));\n};\n\n/**\n * Determine the tab index of a given node.\n * @param {HTMLElement} node\n * @returns {number} Tab order (negative, 0, or positive number).\n * @throws {Error} If `node` is falsy.\n */\nvar getTabIndex = function getTabIndex(node) {\n if (!node) {\n throw new Error('No node provided');\n }\n if (node.tabIndex < 0) {\n // in Chrome,
    ,